{"id":"4e2c81bbf7e4f35f5130363b80d54803","_format":"hh-sol-build-info-1","solcVersion":"0.8.28","solcLongVersion":"0.8.28+commit.7893614a","input":{"language":"Solidity","sources":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlUpgradeable.sol\";\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../utils/StringsUpgradeable.sol\";\nimport \"../utils/introspection/ERC165Upgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, IAccessControlUpgradeable, ERC165Upgradeable {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    function __AccessControl_init() internal onlyInitializing {\n    }\n\n    function __AccessControl_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControlUpgradeable).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        StringsUpgradeable.toHexString(account),\n                        \" is missing role \",\n                        StringsUpgradeable.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControlUpgradeable {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822ProxiableUpgradeable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n *\n * _Available since v4.8.3._\n */\ninterface IERC1967Upgradeable {\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Emitted when the beacon is changed.\n     */\n    event BeaconUpgraded(address indexed beacon);\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeaconUpgradeable {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {BeaconProxy} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeaconUpgradeable.sol\";\nimport \"../../interfaces/IERC1967Upgradeable.sol\";\nimport \"../../interfaces/draft-IERC1822Upgradeable.sol\";\nimport \"../../utils/AddressUpgradeable.sol\";\nimport \"../../utils/StorageSlotUpgradeable.sol\";\nimport {Initializable} from \"../utils/Initializable.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n */\nabstract contract ERC1967UpgradeUpgradeable is Initializable, IERC1967Upgradeable {\n    // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    function __ERC1967Upgrade_init() internal onlyInitializing {\n    }\n\n    function __ERC1967Upgrade_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        return StorageSlotUpgradeable.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        require(AddressUpgradeable.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n        StorageSlotUpgradeable.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Perform implementation upgrade\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeTo(address newImplementation) internal {\n        _setImplementation(newImplementation);\n        emit Upgraded(newImplementation);\n    }\n\n    /**\n     * @dev Perform implementation upgrade with additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal {\n        _upgradeTo(newImplementation);\n        if (data.length > 0 || forceCall) {\n            AddressUpgradeable.functionDelegateCall(newImplementation, data);\n        }\n    }\n\n    /**\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal {\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\n        if (StorageSlotUpgradeable.getBooleanSlot(_ROLLBACK_SLOT).value) {\n            _setImplementation(newImplementation);\n        } else {\n            try IERC1822ProxiableUpgradeable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n                require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n            } catch {\n                revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n            }\n            _upgradeToAndCall(newImplementation, data, forceCall);\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _getAdmin() internal view returns (address) {\n        return StorageSlotUpgradeable.getAddressSlot(_ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n        StorageSlotUpgradeable.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     */\n    function _changeAdmin(address newAdmin) internal {\n        emit AdminChanged(_getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n     */\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function _getBeacon() internal view returns (address) {\n        return StorageSlotUpgradeable.getAddressSlot(_BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        require(AddressUpgradeable.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(\n            AddressUpgradeable.isContract(IBeaconUpgradeable(newBeacon).implementation()),\n            \"ERC1967: beacon implementation is not a contract\"\n        );\n        StorageSlotUpgradeable.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }\n\n    /**\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n     *\n     * Emits a {BeaconUpgraded} event.\n     */\n    function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            AddressUpgradeable.functionDelegateCall(IBeaconUpgradeable(newBeacon).implementation(), data);\n        }\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\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 * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\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 */\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     * @custom:oz-retyped-from bool\n     */\n    uint8 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(uint8 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n     * constructor.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !_initializing;\n        require(\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n            \"Initializable: contract is already initialized\"\n        );\n        _initialized = 1;\n        if (isTopLevelCall) {\n            _initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            _initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint8 version) {\n        require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n        _initialized = version;\n        _initializing = true;\n        _;\n        _initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        require(_initializing, \"Initializable: contract is not initializing\");\n        _;\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        require(!_initializing, \"Initializable: contract is initializing\");\n        if (_initialized != type(uint8).max) {\n            _initialized = type(uint8).max;\n            emit Initialized(type(uint8).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint8) {\n        return _initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _initializing;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/UUPSUpgradeable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../interfaces/draft-IERC1822Upgradeable.sol\";\nimport \"../ERC1967/ERC1967UpgradeUpgradeable.sol\";\nimport {Initializable} from \"./Initializable.sol\";\n\n/**\n * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an\n * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.\n *\n * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is\n * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing\n * `UUPSUpgradeable` with a custom implementation of upgrades.\n *\n * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.\n *\n * _Available since v4.1._\n */\nabstract contract UUPSUpgradeable is Initializable, IERC1822ProxiableUpgradeable, ERC1967UpgradeUpgradeable {\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment\n    address private immutable __self = address(this);\n\n    /**\n     * @dev Check that the execution is being performed through a delegatecall call and that the execution context is\n     * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case\n     * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a\n     * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to\n     * fail.\n     */\n    modifier onlyProxy() {\n        require(address(this) != __self, \"Function must be called through delegatecall\");\n        require(_getImplementation() == __self, \"Function must be called through active proxy\");\n        _;\n    }\n\n    /**\n     * @dev Check that the execution is not being performed through a delegate call. This allows a function to be\n     * callable on the implementing contract but not through proxies.\n     */\n    modifier notDelegated() {\n        require(address(this) == __self, \"UUPSUpgradeable: must not be called through delegatecall\");\n        _;\n    }\n\n    function __UUPSUpgradeable_init() internal onlyInitializing {\n    }\n\n    function __UUPSUpgradeable_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the\n     * implementation. It is used to validate the implementation's compatibility when performing an upgrade.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\n     */\n    function proxiableUUID() external view virtual override notDelegated returns (bytes32) {\n        return _IMPLEMENTATION_SLOT;\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy to `newImplementation`.\n     *\n     * Calls {_authorizeUpgrade}.\n     *\n     * Emits an {Upgraded} event.\n     *\n     * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n     */\n    function upgradeTo(address newImplementation) public virtual onlyProxy {\n        _authorizeUpgrade(newImplementation);\n        _upgradeToAndCallUUPS(newImplementation, new bytes(0), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call\n     * encoded in `data`.\n     *\n     * Calls {_authorizeUpgrade}.\n     *\n     * Emits an {Upgraded} event.\n     *\n     * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n     */\n    function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy {\n        _authorizeUpgrade(newImplementation);\n        _upgradeToAndCallUUPS(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by\n     * {upgradeTo} and {upgradeToAndCall}.\n     *\n     * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.\n     *\n     * ```solidity\n     * function _authorizeUpgrade(address) internal override onlyOwner {}\n     * ```\n     */\n    function _authorizeUpgrade(address newImplementation) internal virtual;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    function __Pausable_init() internal onlyInitializing {\n        __Pausable_init_unchained();\n    }\n\n    function __Pausable_init_unchained() internal onlyInitializing {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721Upgradeable.sol\";\nimport \"./IERC721ReceiverUpgradeable.sol\";\nimport \"./extensions/IERC721MetadataUpgradeable.sol\";\nimport \"../../utils/AddressUpgradeable.sol\";\nimport \"../../utils/ContextUpgradeable.sol\";\nimport \"../../utils/StringsUpgradeable.sol\";\nimport \"../../utils/introspection/ERC165Upgradeable.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721Upgradeable, IERC721MetadataUpgradeable {\n    using AddressUpgradeable for address;\n    using StringsUpgradeable for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing {\n        __ERC721_init_unchained(name_, symbol_);\n    }\n\n    function __ERC721_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165Upgradeable) returns (bool) {\n        return\n            interfaceId == type(IERC721Upgradeable).interfaceId ||\n            interfaceId == type(IERC721MetadataUpgradeable).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _ownerOf(tokenId);\n        require(owner != address(0), \"ERC721: invalid token ID\");\n        return owner;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        _requireMinted(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual override {\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n        require(to != owner, \"ERC721: approval to current owner\");\n\n        require(\n            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n            \"ERC721: approve caller is not token owner or approved for all\"\n        );\n\n        _approve(to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual override returns (address) {\n        _requireMinted(tokenId);\n\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual override {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n        //solhint-disable-next-line max-line-length\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n\n        _transfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n        _safeTransfer(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n        _transfer(from, to, tokenId);\n        require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        return _owners[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `tokenId` exists.\n     *\n     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n     *\n     * Tokens start existing when they are minted (`_mint`),\n     * and stop existing when they are burned (`_burn`).\n     */\n    function _exists(uint256 tokenId) internal view virtual returns (bool) {\n        return _ownerOf(tokenId) != address(0);\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Safely mints `tokenId` and transfers it to `to`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal virtual {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n        _mint(to, tokenId);\n        require(\n            _checkOnERC721Received(address(0), to, tokenId, data),\n            \"ERC721: transfer to non ERC721Receiver implementer\"\n        );\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal virtual {\n        require(to != address(0), \"ERC721: mint to the zero address\");\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        _beforeTokenTransfer(address(0), to, tokenId, 1);\n\n        // Check that tokenId was not minted by `_beforeTokenTransfer` hook\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        unchecked {\n            // Will not overflow unless all 2**256 token ids are minted to the same owner.\n            // Given that tokens are minted one by one, it is impossible in practice that\n            // this ever happens. Might change if we allow batch minting.\n            // The ERC fails to describe this case.\n            _balances[to] += 1;\n        }\n\n        _owners[tokenId] = to;\n\n        emit Transfer(address(0), to, tokenId);\n\n        _afterTokenTransfer(address(0), to, tokenId, 1);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal virtual {\n        address owner = ERC721Upgradeable.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n        // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n        owner = ERC721Upgradeable.ownerOf(tokenId);\n\n        // Clear approvals\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // Cannot overflow, as that would require more tokens to be burned/transferred\n            // out than the owner initially received through minting and transferring in.\n            _balances[owner] -= 1;\n        }\n        delete _owners[tokenId];\n\n        emit Transfer(owner, address(0), tokenId);\n\n        _afterTokenTransfer(owner, address(0), tokenId, 1);\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(address from, address to, uint256 tokenId) internal virtual {\n        require(ERC721Upgradeable.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n        require(to != address(0), \"ERC721: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, tokenId, 1);\n\n        // Check that tokenId was not transferred by `_beforeTokenTransfer` hook\n        require(ERC721Upgradeable.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n\n        // Clear approvals from the previous owner\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // `_balances[from]` cannot overflow for the same reason as described in `_burn`:\n            // `from`'s balance is the number of token held, which is at least one before the current\n            // transfer.\n            // `_balances[to]` could overflow in the conditions described in `_mint`. That would require\n            // all 2**256 token ids to be minted, which in practice is impossible.\n            _balances[from] -= 1;\n            _balances[to] += 1;\n        }\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        _afterTokenTransfer(from, to, tokenId, 1);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * Emits an {Approval} event.\n     */\n    function _approve(address to, uint256 tokenId) internal virtual {\n        _tokenApprovals[tokenId] = to;\n        emit Approval(ERC721Upgradeable.ownerOf(tokenId), to, tokenId);\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n        require(owner != operator, \"ERC721: approve to caller\");\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` has not been minted yet.\n     */\n    function _requireMinted(uint256 tokenId) internal view virtual {\n        require(_exists(tokenId), \"ERC721: invalid token ID\");\n    }\n\n    /**\n     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n     * The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param data bytes optional data to send along with the call\n     * @return bool whether the call correctly returned the expected magic value\n     */\n    function _checkOnERC721Received(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) private returns (bool) {\n        if (to.isContract()) {\n            try IERC721ReceiverUpgradeable(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                return retval == IERC721ReceiverUpgradeable.onERC721Received.selector;\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n                } else {\n                    /// @solidity memory-safe-assembly\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        } else {\n            return true;\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n     * - When `from` is zero, the tokens will be minted for `to`.\n     * - When `to` is zero, ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n     * - When `from` is zero, the tokens were minted for `to`.\n     * - When `to` is zero, ``from``'s tokens were burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n     * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n     * that `ownerOf(tokenId)` is `a`.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function __unsafe_increaseBalance(address account, uint256 amount) internal {\n        _balances[account] += amount;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721Upgradeable.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721MetadataUpgradeable is IERC721Upgradeable {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721ReceiverUpgradeable {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165Upgradeable.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721Upgradeable is IERC165Upgradeable {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the caller.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165Upgradeable.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable {\n    function __ERC165_init() internal onlyInitializing {\n    }\n\n    function __ERC165_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165Upgradeable).interfaceId;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165Upgradeable {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary MathUpgradeable {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1, \"Math: mulDiv overflow\");\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMathUpgradeable {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n * _Available since v4.9 for `string`, `bytes`._\n */\nlibrary StorageSlotUpgradeable {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    struct StringSlot {\n        string value;\n    }\n\n    struct BytesSlot {\n        bytes value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n     */\n    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n     */\n    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/MathUpgradeable.sol\";\nimport \"./math/SignedMathUpgradeable.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary StringsUpgradeable {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = MathUpgradeable.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toString(int256 value) internal pure returns (string memory) {\n        return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMathUpgradeable.abs(value))));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, MathUpgradeable.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n *\n * _Available since v4.8.3._\n */\ninterface IERC1967 {\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Emitted when the beacon is changed.\n     */\n    event BeaconUpgraded(address indexed beacon);\n}\n"},"@openzeppelin/contracts/interfaces/IERC4626.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC4626.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC20/IERC20.sol\";\nimport \"../token/ERC20/extensions/IERC20Metadata.sol\";\n\n/**\n * @dev Interface of the ERC4626 \"Tokenized Vault Standard\", as defined in\n * https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].\n *\n * _Available since v4.7._\n */\ninterface IERC4626 is IERC20, IERC20Metadata {\n    event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares);\n\n    event Withdraw(\n        address indexed sender,\n        address indexed receiver,\n        address indexed owner,\n        uint256 assets,\n        uint256 shares\n    );\n\n    /**\n     * @dev Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing.\n     *\n     * - MUST be an ERC-20 token contract.\n     * - MUST NOT revert.\n     */\n    function asset() external view returns (address assetTokenAddress);\n\n    /**\n     * @dev Returns the total amount of the underlying asset that is “managed” by Vault.\n     *\n     * - SHOULD include any compounding that occurs from yield.\n     * - MUST be inclusive of any fees that are charged against assets in the Vault.\n     * - MUST NOT revert.\n     */\n    function totalAssets() external view returns (uint256 totalManagedAssets);\n\n    /**\n     * @dev Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal\n     * scenario where all the conditions are met.\n     *\n     * - MUST NOT be inclusive of any fees that are charged against assets in the Vault.\n     * - MUST NOT show any variations depending on the caller.\n     * - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange.\n     * - MUST NOT revert.\n     *\n     * NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the\n     * “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and\n     * from.\n     */\n    function convertToShares(uint256 assets) external view returns (uint256 shares);\n\n    /**\n     * @dev Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal\n     * scenario where all the conditions are met.\n     *\n     * - MUST NOT be inclusive of any fees that are charged against assets in the Vault.\n     * - MUST NOT show any variations depending on the caller.\n     * - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange.\n     * - MUST NOT revert.\n     *\n     * NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the\n     * “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and\n     * from.\n     */\n    function convertToAssets(uint256 shares) external view returns (uint256 assets);\n\n    /**\n     * @dev Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver,\n     * through a deposit call.\n     *\n     * - MUST return a limited value if receiver is subject to some deposit limit.\n     * - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited.\n     * - MUST NOT revert.\n     */\n    function maxDeposit(address receiver) external view returns (uint256 maxAssets);\n\n    /**\n     * @dev Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given\n     * current on-chain conditions.\n     *\n     * - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit\n     *   call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called\n     *   in the same transaction.\n     * - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the\n     *   deposit would be accepted, regardless if the user has enough tokens approved, etc.\n     * - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees.\n     * - MUST NOT revert.\n     *\n     * NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in\n     * share price or some other type of condition, meaning the depositor will lose assets by depositing.\n     */\n    function previewDeposit(uint256 assets) external view returns (uint256 shares);\n\n    /**\n     * @dev Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens.\n     *\n     * - MUST emit the Deposit event.\n     * - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n     *   deposit execution, and are accounted for during deposit.\n     * - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not\n     *   approving enough underlying tokens to the Vault contract, etc).\n     *\n     * NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token.\n     */\n    function deposit(uint256 assets, address receiver) external returns (uint256 shares);\n\n    /**\n     * @dev Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call.\n     * - MUST return a limited value if receiver is subject to some mint limit.\n     * - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted.\n     * - MUST NOT revert.\n     */\n    function maxMint(address receiver) external view returns (uint256 maxShares);\n\n    /**\n     * @dev Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given\n     * current on-chain conditions.\n     *\n     * - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call\n     *   in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the\n     *   same transaction.\n     * - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint\n     *   would be accepted, regardless if the user has enough tokens approved, etc.\n     * - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees.\n     * - MUST NOT revert.\n     *\n     * NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in\n     * share price or some other type of condition, meaning the depositor will lose assets by minting.\n     */\n    function previewMint(uint256 shares) external view returns (uint256 assets);\n\n    /**\n     * @dev Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens.\n     *\n     * - MUST emit the Deposit event.\n     * - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint\n     *   execution, and are accounted for during mint.\n     * - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not\n     *   approving enough underlying tokens to the Vault contract, etc).\n     *\n     * NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token.\n     */\n    function mint(uint256 shares, address receiver) external returns (uint256 assets);\n\n    /**\n     * @dev Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the\n     * Vault, through a withdraw call.\n     *\n     * - MUST return a limited value if owner is subject to some withdrawal limit or timelock.\n     * - MUST NOT revert.\n     */\n    function maxWithdraw(address owner) external view returns (uint256 maxAssets);\n\n    /**\n     * @dev Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block,\n     * given current on-chain conditions.\n     *\n     * - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw\n     *   call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if\n     *   called\n     *   in the same transaction.\n     * - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though\n     *   the withdrawal would be accepted, regardless if the user has enough shares, etc.\n     * - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees.\n     * - MUST NOT revert.\n     *\n     * NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in\n     * share price or some other type of condition, meaning the depositor will lose assets by depositing.\n     */\n    function previewWithdraw(uint256 assets) external view returns (uint256 shares);\n\n    /**\n     * @dev Burns shares from owner and sends exactly assets of underlying tokens to receiver.\n     *\n     * - MUST emit the Withdraw event.\n     * - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n     *   withdraw execution, and are accounted for during withdraw.\n     * - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner\n     *   not having enough shares, etc).\n     *\n     * Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed.\n     * Those methods should be performed separately.\n     */\n    function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares);\n\n    /**\n     * @dev Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault,\n     * through a redeem call.\n     *\n     * - MUST return a limited value if owner is subject to some withdrawal limit or timelock.\n     * - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock.\n     * - MUST NOT revert.\n     */\n    function maxRedeem(address owner) external view returns (uint256 maxShares);\n\n    /**\n     * @dev Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block,\n     * given current on-chain conditions.\n     *\n     * - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call\n     *   in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the\n     *   same transaction.\n     * - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the\n     *   redemption would be accepted, regardless if the user has enough shares, etc.\n     * - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees.\n     * - MUST NOT revert.\n     *\n     * NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in\n     * share price or some other type of condition, meaning the depositor will lose assets by redeeming.\n     */\n    function previewRedeem(uint256 shares) external view returns (uint256 assets);\n\n    /**\n     * @dev Burns exactly shares from owner and sends assets of underlying tokens to receiver.\n     *\n     * - MUST emit the Withdraw event.\n     * - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n     *   redeem execution, and are accounted for during redeem.\n     * - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner\n     *   not having enough shares, etc).\n     *\n     * NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed.\n     * Those methods should be performed separately.\n     */\n    function redeem(uint256 shares, address receiver, address owner) external returns (uint256 assets);\n}\n"},"@openzeppelin/contracts/interfaces/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC721/IERC721.sol\";\n"},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {BeaconProxy} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializing the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/IERC1967.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n */\nabstract contract ERC1967Upgrade is IERC1967 {\n    // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Perform implementation upgrade\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeTo(address newImplementation) internal {\n        _setImplementation(newImplementation);\n        emit Upgraded(newImplementation);\n    }\n\n    /**\n     * @dev Perform implementation upgrade with additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal {\n        _upgradeTo(newImplementation);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(newImplementation, data);\n        }\n    }\n\n    /**\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal {\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n            _setImplementation(newImplementation);\n        } else {\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n                require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n            } catch {\n                revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n            }\n            _upgradeToAndCall(newImplementation, data, forceCall);\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _getAdmin() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     */\n    function _changeAdmin(address newAdmin) internal {\n        emit AdminChanged(_getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n     */\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function _getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(\n            Address.isContract(IBeacon(newBeacon).implementation()),\n            \"ERC1967: beacon implementation is not a contract\"\n        );\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }\n\n    /**\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n     *\n     * Emits a {BeaconUpgraded} event.\n     */\n    function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        }\n    }\n}\n"},"@openzeppelin/contracts/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n     * and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _beforeFallback();\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n     * is empty.\n     */\n    receive() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n     * call, or as part of the Solidity `fallback` or `receive` functions.\n     *\n     * If overridden should call `super._beforeFallback()`.\n     */\n    function _beforeFallback() internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n    mapping(address => uint256) private _balances;\n\n    mapping(address => mapping(address => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual override returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual override returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `amount`.\n     */\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Emits an {Approval} event indicating the updated allowance. This is not\n     * required by the EIP. See the note at the beginning of {ERC20}.\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `amount`.\n     */\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, amount);\n        _transfer(from, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\n        return true;\n    }\n\n    /**\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `spender` must have allowance for the caller of at least\n     * `subtractedValue`.\n     */\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        uint256 currentAllowance = allowance(owner, spender);\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n        unchecked {\n            _approve(owner, spender, currentAllowance - subtractedValue);\n        }\n\n        return true;\n    }\n\n    /**\n     * @dev Moves `amount` of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     */\n    function _transfer(address from, address to, uint256 amount) internal virtual {\n        require(from != address(0), \"ERC20: transfer from the zero address\");\n        require(to != address(0), \"ERC20: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, amount);\n\n        uint256 fromBalance = _balances[from];\n        require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n        unchecked {\n            _balances[from] = fromBalance - amount;\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n            // decrementing then incrementing.\n            _balances[to] += amount;\n        }\n\n        emit Transfer(from, to, amount);\n\n        _afterTokenTransfer(from, to, amount);\n    }\n\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n     * the total supply.\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     */\n    function _mint(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: mint to the zero address\");\n\n        _beforeTokenTransfer(address(0), account, amount);\n\n        _totalSupply += amount;\n        unchecked {\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n            _balances[account] += amount;\n        }\n        emit Transfer(address(0), account, amount);\n\n        _afterTokenTransfer(address(0), account, amount);\n    }\n\n    /**\n     * @dev Destroys `amount` tokens from `account`, reducing the\n     * total supply.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     * - `account` must have at least `amount` tokens.\n     */\n    function _burn(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: burn from the zero address\");\n\n        _beforeTokenTransfer(account, address(0), amount);\n\n        uint256 accountBalance = _balances[account];\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n        unchecked {\n            _balances[account] = accountBalance - amount;\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\n            _totalSupply -= amount;\n        }\n\n        emit Transfer(account, address(0), amount);\n\n        _afterTokenTransfer(account, address(0), amount);\n    }\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     */\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\n        require(owner != address(0), \"ERC20: approve from the zero address\");\n        require(spender != address(0), \"ERC20: approve to the zero address\");\n\n        _allowances[owner][spender] = amount;\n        emit Approval(owner, spender, amount);\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n     *\n     * Does not update the allowance amount in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Might emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n            unchecked {\n                _approve(owner, spender, currentAllowance - amount);\n            }\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * will be transferred to `to`.\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * has been transferred to `to`.\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC4626.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC20.sol\";\nimport \"../utils/SafeERC20.sol\";\nimport \"../../../interfaces/IERC4626.sol\";\nimport \"../../../utils/math/Math.sol\";\n\n/**\n * @dev Implementation of the ERC4626 \"Tokenized Vault Standard\" as defined in\n * https://eips.ethereum.org/EIPS/eip-4626[EIP-4626].\n *\n * This extension allows the minting and burning of \"shares\" (represented using the ERC20 inheritance) in exchange for\n * underlying \"assets\" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends\n * the ERC20 standard. Any additional extensions included along it would affect the \"shares\" token represented by this\n * contract and not the \"assets\" token which is an independent contract.\n *\n * [CAUTION]\n * ====\n * In empty (or nearly empty) ERC-4626 vaults, deposits are at high risk of being stolen through frontrunning\n * with a \"donation\" to the vault that inflates the price of a share. This is variously known as a donation or inflation\n * attack and is essentially a problem of slippage. Vault deployers can protect against this attack by making an initial\n * deposit of a non-trivial amount of the asset, such that price manipulation becomes infeasible. Withdrawals may\n * similarly be affected by slippage. Users can protect against this attack as well as unexpected slippage in general by\n * verifying the amount received is as expected, using a wrapper that performs these checks such as\n * https://github.com/fei-protocol/ERC4626#erc4626router-and-base[ERC4626Router].\n *\n * Since v4.9, this implementation uses virtual assets and shares to mitigate that risk. The `_decimalsOffset()`\n * corresponds to an offset in the decimal representation between the underlying asset's decimals and the vault\n * decimals. This offset also determines the rate of virtual shares to virtual assets in the vault, which itself\n * determines the initial exchange rate. While not fully preventing the attack, analysis shows that the default offset\n * (0) makes it non-profitable, as a result of the value being captured by the virtual shares (out of the attacker's\n * donation) matching the attacker's expected gains. With a larger offset, the attack becomes orders of magnitude more\n * expensive than it is profitable. More details about the underlying math can be found\n * xref:erc4626.adoc#inflation-attack[here].\n *\n * The drawback of this approach is that the virtual shares do capture (a very small) part of the value being accrued\n * to the vault. Also, if the vault experiences losses, the users try to exit the vault, the virtual shares and assets\n * will cause the first user to exit to experience reduced losses in detriment to the last users that will experience\n * bigger losses. Developers willing to revert back to the pre-v4.9 behavior just need to override the\n * `_convertToShares` and `_convertToAssets` functions.\n *\n * To learn more, check out our xref:ROOT:erc4626.adoc[ERC-4626 guide].\n * ====\n *\n * _Available since v4.7._\n */\nabstract contract ERC4626 is ERC20, IERC4626 {\n    using Math for uint256;\n\n    IERC20 private immutable _asset;\n    uint8 private immutable _underlyingDecimals;\n\n    /**\n     * @dev Set the underlying asset contract. This must be an ERC20-compatible contract (ERC20 or ERC777).\n     */\n    constructor(IERC20 asset_) {\n        (bool success, uint8 assetDecimals) = _tryGetAssetDecimals(asset_);\n        _underlyingDecimals = success ? assetDecimals : 18;\n        _asset = asset_;\n    }\n\n    /**\n     * @dev Attempts to fetch the asset decimals. A return value of false indicates that the attempt failed in some way.\n     */\n    function _tryGetAssetDecimals(IERC20 asset_) private view returns (bool, uint8) {\n        (bool success, bytes memory encodedDecimals) = address(asset_).staticcall(\n            abi.encodeWithSelector(IERC20Metadata.decimals.selector)\n        );\n        if (success && encodedDecimals.length >= 32) {\n            uint256 returnedDecimals = abi.decode(encodedDecimals, (uint256));\n            if (returnedDecimals <= type(uint8).max) {\n                return (true, uint8(returnedDecimals));\n            }\n        }\n        return (false, 0);\n    }\n\n    /**\n     * @dev Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This\n     * \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the\n     * asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals.\n     *\n     * See {IERC20Metadata-decimals}.\n     */\n    function decimals() public view virtual override(IERC20Metadata, ERC20) returns (uint8) {\n        return _underlyingDecimals + _decimalsOffset();\n    }\n\n    /** @dev See {IERC4626-asset}. */\n    function asset() public view virtual override returns (address) {\n        return address(_asset);\n    }\n\n    /** @dev See {IERC4626-totalAssets}. */\n    function totalAssets() public view virtual override returns (uint256) {\n        return _asset.balanceOf(address(this));\n    }\n\n    /** @dev See {IERC4626-convertToShares}. */\n    function convertToShares(uint256 assets) public view virtual override returns (uint256) {\n        return _convertToShares(assets, Math.Rounding.Down);\n    }\n\n    /** @dev See {IERC4626-convertToAssets}. */\n    function convertToAssets(uint256 shares) public view virtual override returns (uint256) {\n        return _convertToAssets(shares, Math.Rounding.Down);\n    }\n\n    /** @dev See {IERC4626-maxDeposit}. */\n    function maxDeposit(address) public view virtual override returns (uint256) {\n        return type(uint256).max;\n    }\n\n    /** @dev See {IERC4626-maxMint}. */\n    function maxMint(address) public view virtual override returns (uint256) {\n        return type(uint256).max;\n    }\n\n    /** @dev See {IERC4626-maxWithdraw}. */\n    function maxWithdraw(address owner) public view virtual override returns (uint256) {\n        return _convertToAssets(balanceOf(owner), Math.Rounding.Down);\n    }\n\n    /** @dev See {IERC4626-maxRedeem}. */\n    function maxRedeem(address owner) public view virtual override returns (uint256) {\n        return balanceOf(owner);\n    }\n\n    /** @dev See {IERC4626-previewDeposit}. */\n    function previewDeposit(uint256 assets) public view virtual override returns (uint256) {\n        return _convertToShares(assets, Math.Rounding.Down);\n    }\n\n    /** @dev See {IERC4626-previewMint}. */\n    function previewMint(uint256 shares) public view virtual override returns (uint256) {\n        return _convertToAssets(shares, Math.Rounding.Up);\n    }\n\n    /** @dev See {IERC4626-previewWithdraw}. */\n    function previewWithdraw(uint256 assets) public view virtual override returns (uint256) {\n        return _convertToShares(assets, Math.Rounding.Up);\n    }\n\n    /** @dev See {IERC4626-previewRedeem}. */\n    function previewRedeem(uint256 shares) public view virtual override returns (uint256) {\n        return _convertToAssets(shares, Math.Rounding.Down);\n    }\n\n    /** @dev See {IERC4626-deposit}. */\n    function deposit(uint256 assets, address receiver) public virtual override returns (uint256) {\n        require(assets <= maxDeposit(receiver), \"ERC4626: deposit more than max\");\n\n        uint256 shares = previewDeposit(assets);\n        _deposit(_msgSender(), receiver, assets, shares);\n\n        return shares;\n    }\n\n    /** @dev See {IERC4626-mint}.\n     *\n     * As opposed to {deposit}, minting is allowed even if the vault is in a state where the price of a share is zero.\n     * In this case, the shares will be minted without requiring any assets to be deposited.\n     */\n    function mint(uint256 shares, address receiver) public virtual override returns (uint256) {\n        require(shares <= maxMint(receiver), \"ERC4626: mint more than max\");\n\n        uint256 assets = previewMint(shares);\n        _deposit(_msgSender(), receiver, assets, shares);\n\n        return assets;\n    }\n\n    /** @dev See {IERC4626-withdraw}. */\n    function withdraw(uint256 assets, address receiver, address owner) public virtual override returns (uint256) {\n        require(assets <= maxWithdraw(owner), \"ERC4626: withdraw more than max\");\n\n        uint256 shares = previewWithdraw(assets);\n        _withdraw(_msgSender(), receiver, owner, assets, shares);\n\n        return shares;\n    }\n\n    /** @dev See {IERC4626-redeem}. */\n    function redeem(uint256 shares, address receiver, address owner) public virtual override returns (uint256) {\n        require(shares <= maxRedeem(owner), \"ERC4626: redeem more than max\");\n\n        uint256 assets = previewRedeem(shares);\n        _withdraw(_msgSender(), receiver, owner, assets, shares);\n\n        return assets;\n    }\n\n    /**\n     * @dev Internal conversion function (from assets to shares) with support for rounding direction.\n     */\n    function _convertToShares(uint256 assets, Math.Rounding rounding) internal view virtual returns (uint256) {\n        return assets.mulDiv(totalSupply() + 10 ** _decimalsOffset(), totalAssets() + 1, rounding);\n    }\n\n    /**\n     * @dev Internal conversion function (from shares to assets) with support for rounding direction.\n     */\n    function _convertToAssets(uint256 shares, Math.Rounding rounding) internal view virtual returns (uint256) {\n        return shares.mulDiv(totalAssets() + 1, totalSupply() + 10 ** _decimalsOffset(), rounding);\n    }\n\n    /**\n     * @dev Deposit/mint common workflow.\n     */\n    function _deposit(address caller, address receiver, uint256 assets, uint256 shares) internal virtual {\n        // If _asset is ERC777, `transferFrom` can trigger a reentrancy BEFORE the transfer happens through the\n        // `tokensToSend` hook. On the other hand, the `tokenReceived` hook, that is triggered after the transfer,\n        // calls the vault, which is assumed not malicious.\n        //\n        // Conclusion: we need to do the transfer before we mint so that any reentrancy would happen before the\n        // assets are transferred and before the shares are minted, which is a valid state.\n        // slither-disable-next-line reentrancy-no-eth\n        SafeERC20.safeTransferFrom(_asset, caller, address(this), assets);\n        _mint(receiver, shares);\n\n        emit Deposit(caller, receiver, assets, shares);\n    }\n\n    /**\n     * @dev Withdraw/redeem common workflow.\n     */\n    function _withdraw(\n        address caller,\n        address receiver,\n        address owner,\n        uint256 assets,\n        uint256 shares\n    ) internal virtual {\n        if (caller != owner) {\n            _spendAllowance(owner, caller, shares);\n        }\n\n        // If _asset is ERC777, `transfer` can trigger a reentrancy AFTER the transfer happens through the\n        // `tokensReceived` hook. On the other hand, the `tokensToSend` hook, that is triggered before the transfer,\n        // calls the vault, which is assumed not malicious.\n        //\n        // Conclusion: we need to do the transfer after the burn so that any reentrancy would happen after the\n        // shares are burned and after the assets are transferred, which is a valid state.\n        _burn(owner, shares);\n        SafeERC20.safeTransfer(_asset, receiver, assets);\n\n        emit Withdraw(caller, receiver, owner, assets, shares);\n    }\n\n    function _decimalsOffset() internal view virtual returns (uint8) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * ==== Security Considerations\n *\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n * generally recommended is:\n *\n * ```solidity\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n *     doThing(..., value);\n * }\n *\n * function doThing(..., uint256 value) public {\n *     token.safeTransferFrom(msg.sender, address(this), value);\n *     ...\n * }\n * ```\n *\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n * {SafeERC20-safeTransferFrom}).\n *\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n * contracts should have entry points that don't rely on permit.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     *\n     * CAUTION: See Security Considerations above.\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n     * Revert on invalid signature.\n     */\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n        // and not revert is the subcall reverts.\n\n        (bool success, bytes memory returndata) = address(token).call(data);\n        return\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the caller.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Strings.sol\";\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n    enum RecoverError {\n        NoError,\n        InvalidSignature,\n        InvalidSignatureLength,\n        InvalidSignatureS,\n        InvalidSignatureV // Deprecated in v4.8\n    }\n\n    function _throwError(RecoverError error) private pure {\n        if (error == RecoverError.NoError) {\n            return; // no error: do nothing\n        } else if (error == RecoverError.InvalidSignature) {\n            revert(\"ECDSA: invalid signature\");\n        } else if (error == RecoverError.InvalidSignatureLength) {\n            revert(\"ECDSA: invalid signature length\");\n        } else if (error == RecoverError.InvalidSignatureS) {\n            revert(\"ECDSA: invalid signature 's' value\");\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature` or error string. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     *\n     * Documentation for signature generation:\n     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {\n        if (signature.length == 65) {\n            bytes32 r;\n            bytes32 s;\n            uint8 v;\n            // ecrecover takes the signature parameters, and the only way to get them\n            // currently is to use assembly.\n            /// @solidity memory-safe-assembly\n            assembly {\n                r := mload(add(signature, 0x20))\n                s := mload(add(signature, 0x40))\n                v := byte(0, mload(add(signature, 0x60)))\n            }\n            return tryRecover(hash, v, r, s);\n        } else {\n            return (address(0), RecoverError.InvalidSignatureLength);\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature`. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     */\n    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, signature);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n     *\n     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError) {\n        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n        uint8 v = uint8((uint256(vs) >> 255) + 27);\n        return tryRecover(hash, v, r, s);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n     *\n     * _Available since v4.2._\n     */\n    function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, r, vs);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address, RecoverError) {\n        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n        // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n        //\n        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n        // these malleable signatures as well.\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n            return (address(0), RecoverError.InvalidSignatureS);\n        }\n\n        // If the signature is valid (and not malleable), return the signer address\n        address signer = ecrecover(hash, v, r, s);\n        if (signer == address(0)) {\n            return (address(0), RecoverError.InvalidSignature);\n        }\n\n        return (signer, RecoverError.NoError);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     */\n    function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 message) {\n        // 32 is the length in bytes of hash,\n        // enforced by the type signature above\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\")\n            mstore(0x1c, hash)\n            message := keccak256(0x00, 0x3c)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from `s`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n\", Strings.toString(s.length), s));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Typed Data, created from a\n     * `domainSeparator` and a `structHash`. This produces hash corresponding\n     * to the one signed with the\n     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n     * JSON-RPC method as part of EIP-712.\n     *\n     * See {recover}.\n     */\n    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 data) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            let ptr := mload(0x40)\n            mstore(ptr, \"\\x19\\x01\")\n            mstore(add(ptr, 0x02), domainSeparator)\n            mstore(add(ptr, 0x22), structHash)\n            data := keccak256(ptr, 0x42)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Data with intended validator, created from a\n     * `validator` and `data` according to the version 0 of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19\\x00\", validator, data));\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/introspection/ERC165Checker.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Library used to query support of an interface declared via {IERC165}.\n *\n * Note that these functions return the actual result of the query: they do not\n * `revert` if an interface is not supported. It is up to the caller to decide\n * what to do in these cases.\n */\nlibrary ERC165Checker {\n    // As per the EIP-165 spec, no interface should ever match 0xffffffff\n    bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff;\n\n    /**\n     * @dev Returns true if `account` supports the {IERC165} interface.\n     */\n    function supportsERC165(address account) internal view returns (bool) {\n        // Any contract that implements ERC165 must explicitly indicate support of\n        // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid\n        return\n            supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) &&\n            !supportsERC165InterfaceUnchecked(account, _INTERFACE_ID_INVALID);\n    }\n\n    /**\n     * @dev Returns true if `account` supports the interface defined by\n     * `interfaceId`. Support for {IERC165} itself is queried automatically.\n     *\n     * See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {\n        // query support of both ERC165 as per the spec and support of _interfaceId\n        return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId);\n    }\n\n    /**\n     * @dev Returns a boolean array where each value corresponds to the\n     * interfaces passed in and whether they're supported or not. This allows\n     * you to batch check interfaces for a contract where your expectation\n     * is that some interfaces may not be supported.\n     *\n     * See {IERC165-supportsInterface}.\n     *\n     * _Available since v3.4._\n     */\n    function getSupportedInterfaces(\n        address account,\n        bytes4[] memory interfaceIds\n    ) internal view returns (bool[] memory) {\n        // an array of booleans corresponding to interfaceIds and whether they're supported or not\n        bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length);\n\n        // query support of ERC165 itself\n        if (supportsERC165(account)) {\n            // query support of each interface in interfaceIds\n            for (uint256 i = 0; i < interfaceIds.length; i++) {\n                interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]);\n            }\n        }\n\n        return interfaceIdsSupported;\n    }\n\n    /**\n     * @dev Returns true if `account` supports all the interfaces defined in\n     * `interfaceIds`. Support for {IERC165} itself is queried automatically.\n     *\n     * Batch-querying can lead to gas savings by skipping repeated checks for\n     * {IERC165} support.\n     *\n     * See {IERC165-supportsInterface}.\n     */\n    function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {\n        // query support of ERC165 itself\n        if (!supportsERC165(account)) {\n            return false;\n        }\n\n        // query support of each interface in interfaceIds\n        for (uint256 i = 0; i < interfaceIds.length; i++) {\n            if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) {\n                return false;\n            }\n        }\n\n        // all interfaces supported\n        return true;\n    }\n\n    /**\n     * @notice Query if a contract implements an interface, does not check ERC165 support\n     * @param account The address of the contract to query for support of an interface\n     * @param interfaceId The interface identifier, as specified in ERC-165\n     * @return true if the contract at account indicates support of the interface with\n     * identifier interfaceId, false otherwise\n     * @dev Assumes that account contains a contract that supports ERC165, otherwise\n     * the behavior of this method is undefined. This precondition can be checked\n     * with {supportsERC165}.\n     *\n     * Some precompiled contracts will falsely indicate support for a given interface, so caution\n     * should be exercised when using this function.\n     *\n     * Interface identification is specified in ERC-165.\n     */\n    function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) {\n        // prepare call\n        bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId);\n\n        // perform static call\n        bool success;\n        uint256 returnSize;\n        uint256 returnValue;\n        assembly {\n            success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20)\n            returnSize := returndatasize()\n            returnValue := mload(0x00)\n        }\n\n        return success && returnSize >= 0x20 && returnValue > 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1, \"Math: mulDiv overflow\");\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n *\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n * all math on `uint256` and `int256` and then downcasting.\n */\nlibrary SafeCast {\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        require(value <= type(uint248).max, \"SafeCast: value doesn't fit in 248 bits\");\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        require(value <= type(uint240).max, \"SafeCast: value doesn't fit in 240 bits\");\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        require(value <= type(uint232).max, \"SafeCast: value doesn't fit in 232 bits\");\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        require(value <= type(uint224).max, \"SafeCast: value doesn't fit in 224 bits\");\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        require(value <= type(uint216).max, \"SafeCast: value doesn't fit in 216 bits\");\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        require(value <= type(uint208).max, \"SafeCast: value doesn't fit in 208 bits\");\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        require(value <= type(uint200).max, \"SafeCast: value doesn't fit in 200 bits\");\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        require(value <= type(uint192).max, \"SafeCast: value doesn't fit in 192 bits\");\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        require(value <= type(uint184).max, \"SafeCast: value doesn't fit in 184 bits\");\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        require(value <= type(uint176).max, \"SafeCast: value doesn't fit in 176 bits\");\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        require(value <= type(uint168).max, \"SafeCast: value doesn't fit in 168 bits\");\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        require(value <= type(uint160).max, \"SafeCast: value doesn't fit in 160 bits\");\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        require(value <= type(uint152).max, \"SafeCast: value doesn't fit in 152 bits\");\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        require(value <= type(uint144).max, \"SafeCast: value doesn't fit in 144 bits\");\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        require(value <= type(uint136).max, \"SafeCast: value doesn't fit in 136 bits\");\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        require(value <= type(uint128).max, \"SafeCast: value doesn't fit in 128 bits\");\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        require(value <= type(uint120).max, \"SafeCast: value doesn't fit in 120 bits\");\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        require(value <= type(uint112).max, \"SafeCast: value doesn't fit in 112 bits\");\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        require(value <= type(uint104).max, \"SafeCast: value doesn't fit in 104 bits\");\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        require(value <= type(uint96).max, \"SafeCast: value doesn't fit in 96 bits\");\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        require(value <= type(uint88).max, \"SafeCast: value doesn't fit in 88 bits\");\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        require(value <= type(uint80).max, \"SafeCast: value doesn't fit in 80 bits\");\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        require(value <= type(uint72).max, \"SafeCast: value doesn't fit in 72 bits\");\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        require(value <= type(uint64).max, \"SafeCast: value doesn't fit in 64 bits\");\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        require(value <= type(uint56).max, \"SafeCast: value doesn't fit in 56 bits\");\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        require(value <= type(uint48).max, \"SafeCast: value doesn't fit in 48 bits\");\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        require(value <= type(uint40).max, \"SafeCast: value doesn't fit in 40 bits\");\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        require(value <= type(uint32).max, \"SafeCast: value doesn't fit in 32 bits\");\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        require(value <= type(uint24).max, \"SafeCast: value doesn't fit in 24 bits\");\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        require(value <= type(uint16).max, \"SafeCast: value doesn't fit in 16 bits\");\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        require(value <= type(uint8).max, \"SafeCast: value doesn't fit in 8 bits\");\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     *\n     * _Available since v3.0._\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        require(value >= 0, \"SafeCast: value must be positive\");\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\n        downcasted = int248(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 248 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\n        downcasted = int240(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 240 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\n        downcasted = int232(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 232 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\n        downcasted = int224(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 224 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\n        downcasted = int216(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 216 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\n        downcasted = int208(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 208 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\n        downcasted = int200(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 200 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\n        downcasted = int192(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 192 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\n        downcasted = int184(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 184 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\n        downcasted = int176(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 176 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\n        downcasted = int168(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 168 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\n        downcasted = int160(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 160 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\n        downcasted = int152(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 152 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\n        downcasted = int144(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 144 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\n        downcasted = int136(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 136 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\n        downcasted = int128(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 128 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\n        downcasted = int120(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 120 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\n        downcasted = int112(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 112 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\n        downcasted = int104(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 104 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\n        downcasted = int96(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 96 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\n        downcasted = int88(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 88 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\n        downcasted = int80(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 80 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\n        downcasted = int72(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 72 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\n        downcasted = int64(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 64 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\n        downcasted = int56(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 56 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\n        downcasted = int48(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 48 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\n        downcasted = int40(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 40 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\n        downcasted = int32(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 32 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\n        downcasted = int24(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 24 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\n        downcasted = int16(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 16 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\n        downcasted = int8(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 8 bits\");\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     *\n     * _Available since v3.0._\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        require(value <= uint256(type(int256).max), \"SafeCast: value doesn't fit in an int256\");\n        return int256(value);\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n * _Available since v4.9 for `string`, `bytes`._\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    struct StringSlot {\n        string value;\n    }\n\n    struct BytesSlot {\n        bytes value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n     */\n    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n     */\n    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toString(int256 value) internal pure returns (string memory) {\n        return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"contracts/AccessManager.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {AccessControlUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport {Initializable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport {UUPSUpgradeable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\n\n/**\n * @title AccessManager - Protocol access roles\n * @dev Contract that holds the access roles for PolicyPool and other components of the protocol.\n *\n * Roles can be delegated globally (traditional OZ's AccessControl) or per-component using component roles.\n *\n * Component roles are computed by doing a bitwise XOR between the component's address (padded to 32\n * bytes with zeros on the right) and the role's hash.\n *\n * For more details and examples see\n * https://docs.ensuro.co/product-docs/smart-contracts/contracts/accessmanager#component-roles\n *\n * [CAUTION]\n * ====\n * Avoid leaving a this contract without DEFAULT_ADMIN_ROLE.\n *\n * This contract includes the methods `revokeRole()` and `renounceRole()` that allow to revoke or renounce to\n * specific roles. Even when there are valid reasons to leave these methods (for example revoking the initial\n * DEFAULT_ADMIN_ROLE of the deployer account to leave just the governance account), it's good to mention these\n * methods have to be used with care, avoiding leaving the contract without any default admin.\n *\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract AccessManager is Initializable, AccessControlUpgradeable, UUPSUpgradeable, IAccessManager {\n  // Core governance roles\n  bytes32 public constant GUARDIAN_ROLE = keccak256(\"GUARDIAN_ROLE\");\n  bytes32 public constant LEVEL1_ROLE = keccak256(\"LEVEL1_ROLE\");\n  bytes32 public constant LEVEL2_ROLE = keccak256(\"LEVEL2_ROLE\");\n\n  //\n  /**\n   * @notice Special address used for setting component-role admin for a specific role on any component.\n   *\n   * Note that granting component roles using this address has no meaning.\n   */\n  address public constant ANY_COMPONENT = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);\n\n  /**\n    @dev Modifier that checks if the caller has either role1 or role2.\n    */\n  modifier onlyRole2(bytes32 role1, bytes32 role2) {\n    if (!hasRole(role1, _msgSender())) _checkRole(role2, _msgSender());\n    _;\n  }\n\n  /**\n    @dev Modifier that checks if the caller has admin access to the specific component-role.\n    */\n  modifier onlyComponentRoleAdmin(address component, bytes32 role) {\n    require(component != address(0), \"AccessManager: invalid address for component\");\n    require(\n      // The caller has admin on this specific component-role\n      hasRole(getRoleAdmin(getComponentRole(component, role)), _msgSender()) ||\n        // or no admin was explicitly defined for this component-role combination and the caller has\n        // admin for the role on any component\n        (getRoleAdmin(getComponentRole(component, role)) == DEFAULT_ADMIN_ROLE &&\n          hasRole(getRoleAdmin(getComponentRole(ANY_COMPONENT, role)), _msgSender())),\n      \"AccessManager: msg.sender needs componentRoleAdmin\"\n    );\n    _;\n  }\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor() {\n    _disableInitializers();\n  }\n\n  function initialize() public initializer {\n    __AccessControl_init();\n    __UUPSUpgradeable_init();\n    __AccessManager_init_unchained();\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __AccessManager_init_unchained() internal onlyInitializing {\n    _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n  }\n\n  // solhint-disable-next-line no-empty-blocks\n  function _authorizeUpgrade(address) internal override onlyRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {}\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(IAccessManager).interfaceId;\n  }\n\n  /**\n   * @dev Computes a component role\n   * @param component The component address\n   * @param role The role to get\n   * @return The component role\n   */\n  function getComponentRole(address component, bytes32 role) public pure override returns (bytes32) {\n    return bytes32(bytes20(component)) ^ role;\n  }\n\n  /**\n   * @dev Checks if an account has a component role\n   * @param component The component address\n   * @param role The role to check\n   * @param account The account to check\n   * @param alsoGlobal If true, check for the global role as well\n   * @return Whether the account has the role\n   */\n  function hasComponentRole(\n    address component,\n    bytes32 role,\n    address account,\n    bool alsoGlobal\n  ) public view override returns (bool) {\n    return (alsoGlobal && hasRole(role, account)) || hasRole(getComponentRole(component, role), account);\n  }\n\n  /**\n   * @dev Checks if an account has a component role and reverts if not\n   * @param component The component address\n   * @param role The role to check\n   * @param account The account to check\n   * @param alsoGlobal If true, check for the global role as well\n   */\n  function checkComponentRole(\n    address component,\n    bytes32 role,\n    address account,\n    bool alsoGlobal\n  ) external view override {\n    if (!alsoGlobal || !hasRole(role, account)) {\n      _checkRole(getComponentRole(component, role), account);\n    }\n  }\n\n  /**\n   * @dev Checks if an account has either of the role1 or role2 component roles and reverts if not\n   * @param component The component address\n   * @param role1 The first role to check\n   * @param role2 The second role to check\n   * @param account The account to check\n   * @param alsoGlobal If true, check for the global role as well\n   */\n  function checkComponentRole2(\n    address component,\n    bytes32 role1,\n    bytes32 role2,\n    address account,\n    bool alsoGlobal\n  ) external view override {\n    if (alsoGlobal && hasRole(role1, account)) return;\n    if (hasRole(getComponentRole(component, role1), account)) return;\n    if (alsoGlobal && hasRole(role2, account)) return;\n    _checkRole(getComponentRole(component, role2), account);\n  }\n\n  /**\n   * @dev Checks if an account has a specific role and revert if not\n   * @param role The role to check.\n   * @param account The account to check for the role.\n   */\n  function checkRole(bytes32 role, address account) external view override {\n    _checkRole(role, account);\n  }\n\n  /**\n   * @dev Checks if an account has a either role1 or role2 and revert if not\n   * @param role1 The first role to check.\n   * @param role2 The second role to check.\n   * @param account The account to check for the role.\n   */\n  function checkRole2(bytes32 role1, bytes32 role2, address account) external view override {\n    if (!hasRole(role1, account)) _checkRole(role2, account);\n  }\n\n  /**\n   * @dev Grants `account` the component role `role` for the component with address `component`.\n   *\n   * Requirements:\n   * - the caller must have role admin for this component-role combination or role admin for any component\n   *\n   * @param component Address of the component for which the role is being granted.\n   * @param role Bytes32 identifier of the role being granted.\n   * @param account Address of the account being granted the role.\n   */\n  function grantComponentRole(\n    address component,\n    bytes32 role,\n    address account\n  ) external onlyComponentRoleAdmin(component, role) {\n    _grantRole(getComponentRole(component, role), account);\n  }\n\n  /**\n   * @dev Sets `adminRole` as the component-role admin for a specific component or for any component.\n   *\n   * To set the admin for any component use the ANY_COMPONENT constant.\n   *\n   * Requirements:\n   * - caller must be the current admin for the role\n   *\n   */\n  function setComponentRoleAdmin(\n    address component,\n    bytes32 role,\n    bytes32 adminRole\n  ) external onlyComponentRoleAdmin(component, role) {\n    _setRoleAdmin(getComponentRole(component, role), adminRole);\n  }\n\n  /**\n   * @dev Set `adminRole` as the admin role of `role`.\n   * Requirements:\n   * - the caller must be the current admin of the given `role`.\n   *\n   * [CAUTION]\n   * This method allows bypassing checks done by setComponentRoleAdmin. It should not be used for component roles.\n   */\n  function setRoleAdmin(bytes32 role, bytes32 adminRole) external onlyRole(getRoleAdmin(role)) {\n    _setRoleAdmin(role, adminRole);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"},"contracts/dependencies/WadRayMath.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\npragma solidity ^0.8.0;\n\n/**\n * @title WadRayMath library\n * @author Aave\n * @notice Provides functions to perform calculations with Wad and Ray units\n * @dev Provides mul and div function for wads (decimal numbers with 18 digits of precision) and rays (decimal numbers\n * with 27 digits of precision)\n * @dev Operations are rounded. If a value is >=.5, will be rounded up, otherwise rounded down.\n **/\nlibrary WadRayMath {\n  // HALF_WAD and HALF_RAY expressed with extended notation as constant with operations are not supported in Yul assembly\n  uint256 internal constant WAD = 1e18;\n  uint256 internal constant HALF_WAD = 0.5e18;\n\n  uint256 internal constant RAY = 1e27;\n  uint256 internal constant HALF_RAY = 0.5e27;\n\n  uint256 internal constant WAD_RAY_RATIO = 1e9;\n\n  /**\n   * @dev Multiplies two wad, rounding half up to the nearest wad\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Wad\n   * @param b Wad\n   * @return c = a*b, in wad\n   **/\n  function wadMul(uint256 a, uint256 b) internal pure returns (uint256 c) {\n    // to avoid overflow, a <= (type(uint256).max - HALF_WAD) / b\n    assembly {\n      if iszero(or(iszero(b), iszero(gt(a, div(sub(not(0), HALF_WAD), b))))) {\n        revert(0, 0)\n      }\n\n      c := div(add(mul(a, b), HALF_WAD), WAD)\n    }\n  }\n\n  /**\n   * @dev Divides two wad, rounding half up to the nearest wad\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Wad\n   * @param b Wad\n   * @return c = a/b, in wad\n   **/\n  function wadDiv(uint256 a, uint256 b) internal pure returns (uint256 c) {\n    // to avoid overflow, a <= (type(uint256).max - halfB) / WAD\n    assembly {\n      if or(iszero(b), iszero(iszero(gt(a, div(sub(not(0), div(b, 2)), WAD))))) {\n        revert(0, 0)\n      }\n\n      c := div(add(mul(a, WAD), div(b, 2)), b)\n    }\n  }\n\n  /**\n   * @notice Multiplies two ray, rounding half up to the nearest ray\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Ray\n   * @param b Ray\n   * @return c = a raymul b\n   **/\n  function rayMul(uint256 a, uint256 b) internal pure returns (uint256 c) {\n    // to avoid overflow, a <= (type(uint256).max - HALF_RAY) / b\n    assembly {\n      if iszero(or(iszero(b), iszero(gt(a, div(sub(not(0), HALF_RAY), b))))) {\n        revert(0, 0)\n      }\n\n      c := div(add(mul(a, b), HALF_RAY), RAY)\n    }\n  }\n\n  /**\n   * @notice Divides two ray, rounding half up to the nearest ray\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Ray\n   * @param b Ray\n   * @return c = a raydiv b\n   **/\n  function rayDiv(uint256 a, uint256 b) internal pure returns (uint256 c) {\n    // to avoid overflow, a <= (type(uint256).max - halfB) / RAY\n    assembly {\n      if or(iszero(b), iszero(iszero(gt(a, div(sub(not(0), div(b, 2)), RAY))))) {\n        revert(0, 0)\n      }\n\n      c := div(add(mul(a, RAY), div(b, 2)), b)\n    }\n  }\n\n  /**\n   * @dev Casts ray down to wad\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Ray\n   * @return b = a converted to wad, rounded half up to the nearest wad\n   **/\n  function rayToWad(uint256 a) internal pure returns (uint256 b) {\n    assembly {\n      b := div(a, WAD_RAY_RATIO)\n      let remainder := mod(a, WAD_RAY_RATIO)\n      if iszero(lt(remainder, div(WAD_RAY_RATIO, 2))) {\n        b := add(b, 1)\n      }\n    }\n  }\n\n  /**\n   * @dev Converts wad up to ray\n   * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n   * @param a Wad\n   * @return b = a converted in ray\n   **/\n  function wadToRay(uint256 a) internal pure returns (uint256 b) {\n    // to avoid overflow, b/WAD_RAY_RATIO == a\n    assembly {\n      b := mul(a, WAD_RAY_RATIO)\n\n      if iszero(eq(div(b, WAD_RAY_RATIO), a)) {\n        revert(0, 0)\n      }\n    }\n  }\n}\n"},"contracts/ERC4626AssetManager.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IERC4626} from \"@openzeppelin/contracts/interfaces/IERC4626.sol\";\nimport {LiquidityThresholdAssetManager} from \"./LiquidityThresholdAssetManager.sol\";\n\n/**\n * @title Asset Manager that deploys the funds into an ERC4626 vault\n * @dev Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into an ERC4626 vault.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n *\n * @notice This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details.\n */\ncontract ERC4626AssetManager is LiquidityThresholdAssetManager {\n  using SafeCast for uint256;\n\n  IERC4626 internal immutable _vault;\n\n  constructor(IERC20Metadata asset_, IERC4626 vault_) LiquidityThresholdAssetManager(asset_) {\n    require(address(vault_) != address(0), \"ERC4626AssetManager: vault cannot be zero address\");\n    require(address(asset_) == vault_.asset(), \"ERC4626AssetManager: vault must have the same asset\");\n    _vault = vault_;\n  }\n\n  function connect() public virtual override {\n    super.connect();\n    _asset.approve(address(_vault), type(uint256).max); // infinite approval to the vault\n  }\n\n  function _invest(uint256 amount) internal virtual override {\n    super._invest(amount);\n    _vault.deposit(amount, address(this));\n  }\n\n  function _deinvest(uint256 amount) internal virtual override {\n    super._deinvest(amount);\n    _vault.withdraw(amount, address(this), address(this));\n  }\n\n  function deinvestAll() external virtual override returns (int256 earnings) {\n    DiamondStorage storage ds = diamondStorage();\n    uint256 assets = _vault.redeem(_vault.balanceOf(address(this)), address(this), address(this));\n    earnings = int256(assets) - int256(uint256(ds.lastInvestmentValue));\n    ds.lastInvestmentValue = 0;\n    emit MoneyDeinvested(assets);\n    emit EarningsRecorded(earnings);\n    return earnings;\n  }\n\n  function getInvestmentValue() public view virtual override returns (uint256) {\n    return _vault.convertToAssets(_vault.balanceOf(address(this)));\n  }\n}\n"},"contracts/ERC4626PlusVaultAssetManager.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IERC4626} from \"@openzeppelin/contracts/interfaces/IERC4626.sol\";\nimport {ERC4626AssetManager} from \"./ERC4626AssetManager.sol\";\nimport {LiquidityThresholdAssetManager} from \"./LiquidityThresholdAssetManager.sol\";\n\n/**\n * @title Asset Manager that deploys the funds into a given ERC4626 but also, at request, can deploy the funds in\n *         another vault, the discretionary vault.\n * @dev Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into _vault.\n *      By request of the administrator it can also deploy the funds in _discretionaryVault. When deinvesting, if\n *      funds in _vault are not enough, it tries to withdraw from _discretionaryVault.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract ERC4626PlusVaultAssetManager is ERC4626AssetManager {\n  IERC4626 internal immutable _discretionaryVault;\n\n  constructor(\n    IERC20Metadata asset_,\n    IERC4626 vault_,\n    IERC4626 discretionaryVault_\n  ) ERC4626AssetManager(asset_, vault_) {\n    require(address(discretionaryVault_) != address(0), \"ERC4626PlusVaultAssetManager: vault cannot be zero address\");\n    require(\n      address(asset_) == discretionaryVault_.asset(),\n      \"ERC4626PlusVaultAssetManager: vault must have the same asset\"\n    );\n    require(vault_ != discretionaryVault_, \"ERC4626PlusVaultAssetManager: vaults must be different\");\n    _discretionaryVault = discretionaryVault_;\n  }\n\n  function _deinvest(uint256 amount) internal virtual override {\n    LiquidityThresholdAssetManager._deinvest(amount);\n    uint256 vaultAmount = Math.min(amount, _vault.maxWithdraw(address(this)));\n    if (vaultAmount != 0) _vault.withdraw(vaultAmount, address(this), address(this));\n    if (amount - vaultAmount != 0) _discretionaryVault.withdraw(amount - vaultAmount, address(this), address(this));\n  }\n\n  function connect() public override {\n    super.connect();\n    _asset.approve(address(_discretionaryVault), type(uint256).max); // infinite approval to the vault\n  }\n\n  function deinvestAll() external virtual override returns (int256 earnings) {\n    DiamondStorage storage ds = diamondStorage();\n    uint256 fromVault = _vault.redeem(_vault.balanceOf(address(this)), address(this), address(this));\n    /**\n     * WARNING: this was implemented withdrawing as much as possible from the vault WITHOUT failing.\n     * This implementation might leave some assets (those that aren't withdrawable) in the vault and those will\n     * be reported as losses.\n     */\n    uint256 redeemable = _discretionaryVault.maxRedeem(address(this));\n    uint256 fromDiscVault = redeemable != 0 ? _discretionaryVault.redeem(redeemable, address(this), address(this)) : 0;\n    earnings = int256(fromVault + fromDiscVault) - int256(uint256(ds.lastInvestmentValue));\n    ds.lastInvestmentValue = 0;\n    emit MoneyDeinvested(fromDiscVault + fromVault);\n    emit EarningsRecorded(earnings);\n    return earnings;\n  }\n\n  function _erc4626Assets(IERC4626 vault) internal view returns (uint256) {\n    return vault.convertToAssets(vault.balanceOf(address(this)));\n  }\n\n  function getInvestmentValue() public view virtual override returns (uint256) {\n    return _erc4626Assets(_vault) + _erc4626Assets(_discretionaryVault);\n  }\n\n  /**\n   * @dev Transfers the given amount from _vault to the _discretionaryVault\n   *\n   * @param amount The amount to transfer. If that amount isn't available in _vault it reverts.\n   *               If amount = type(uint256).max it withdraws all the withdrawable funds from _vault.\n   */\n  function vaultToDiscretionary(uint256 amount) external {\n    if (amount == type(uint256).max) amount = _vault.maxWithdraw(address(this));\n    _vault.withdraw(amount, address(this), address(this));\n    _discretionaryVault.deposit(amount, address(this));\n  }\n\n  /**\n   * @dev Transfers the given amount from the _discretionaryVault to _vault\n   *\n   * @param amount The amount to transfer. If that amount isn't available in the _discretionaryVault it reverts.\n   *               If amount = type(uint256).max it withdraws all the funds withdrawable in the _discretionaryVault\n   */\n  function discretionaryToVault(uint256 amount) external {\n    uint256 withdrawn;\n    if (amount == type(uint256).max) {\n      withdrawn = _discretionaryVault.redeem(\n        _discretionaryVault.maxRedeem(address(this)),\n        address(this),\n        address(this)\n      );\n    } else {\n      _discretionaryVault.withdraw(amount, address(this), address(this));\n      withdrawn = amount;\n    }\n    _vault.deposit(withdrawn, address(this));\n  }\n}\n"},"contracts/EToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {Reserve} from \"./Reserve.sol\";\nimport {IEToken} from \"./interfaces/IEToken.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {IPolicyPoolComponent} from \"./interfaces/IPolicyPoolComponent.sol\";\nimport {ILPWhitelist} from \"./interfaces/ILPWhitelist.sol\";\nimport {IAssetManager} from \"./interfaces/IAssetManager.sol\";\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\nimport {TimeScaled} from \"./TimeScaled.sol\";\n\n/**\n * @title Ensuro ERC20 EToken - interest-bearing token\n * @dev Implementation of the interest/earnings bearing token for the Ensuro protocol.\n *      `_tsScaled.scale` scales the balances stored in _balances. _tsScaled (totalSupply scaled) grows\n *      continuoulsly at tokenInterestRate().\n *      Every operation that changes the utilization rate (_scr.scr/totalSupply) or the _scr.interestRate, updates\n *      first the _tsScaled.scale accumulating the interest accrued since _tsScaled.lastUpdate.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract EToken is Reserve, IERC20Metadata, IEToken {\n  using WadRayMath for uint256;\n  using TimeScaled for TimeScaled.ScaledAmount;\n  using SafeERC20 for IERC20Metadata;\n  using SafeCast for uint256;\n\n  uint256 internal constant FOUR_DECIMAL_TO_WAD = 1e14;\n  uint16 internal constant HUNDRED_PERCENT = 1e4;\n  uint16 internal constant MAX_UR_MIN = 5e3; // 50% - Minimum value for Max Utilization Rate\n  uint16 internal constant LIQ_REQ_MIN = 8e3; // 80%\n  uint16 internal constant LIQ_REQ_MAX = 13e3; // 130%\n  uint16 internal constant INT_LOAN_IR_MAX = 5e3; // 50% - Maximum value for InternalLoan interest rate\n\n  // Attributes taken from ERC20\n  mapping(address => uint256) private _balances;\n  mapping(address => mapping(address => uint256)) private _allowances;\n\n  string private _name;\n  string private _symbol;\n\n  TimeScaled.ScaledAmount internal _tsScaled; // Total Supply scaled\n\n  struct Scr {\n    uint128 scr; // in Wad - Capital locked as Solvency Capital Requirement of backed up policies\n    uint64 interestRate; // in Wad - Interest rate received in exchange of solvency capital\n    uint64 tokenInterestRate; // in Wad - Overall interest rate of the token\n  }\n\n  Scr internal _scr;\n\n  // Mapping that keeps track of allowed borrowers (PremiumsAccount) and their current debt\n  mapping(address => TimeScaled.ScaledAmount) internal _loans;\n\n  struct PackedParams {\n    uint16 liquidityRequirement; // Liquidity requirement to lock more/less than SCR - 4 decimals\n    uint16 minUtilizationRate; // Min utilization rate, to reject deposits that leave UR under this value - 4 decimals\n    uint16 maxUtilizationRate; // Max utilization rate, to reject lockScr that leave UR above this value - 4 decimals\n    uint16 internalLoanInterestRate; // Annualized interest rate charged to internal borrowers (premiums accounts) - 4dec\n    ILPWhitelist whitelist; // Whitelist for deposits and transfers\n  }\n\n  PackedParams internal _params;\n\n  IAssetManager internal _assetManager;\n\n  event InternalLoan(address indexed borrower, uint256 value, uint256 amountAsked);\n  event InternalLoanRepaid(address indexed borrower, uint256 value);\n  event InternalBorrowerAdded(address indexed borrower);\n  event InternalBorrowerRemoved(address indexed borrower, uint256 defaultedDebt);\n\n  modifier onlyBorrower() {\n    require(_loans[_msgSender()].scale != 0, \"The caller must be a borrower\");\n    _;\n  }\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  // solhint-disable-next-line no-empty-blocks\n  constructor(IPolicyPool policyPool_) Reserve(policyPool_) {}\n\n  /**\n   * @dev Initializes the eToken\n   * @param maxUtilizationRate_ Max utilization rate (scr/totalSupply) (in Ray - default=1 Ray)\n   * @param internalLoanInterestRate_ Rate of loans givencrto the policy pool (in Ray)\n   * @param name_ Name of the eToken\n   * @param symbol_ Symbol of the eToken\n   */\n  function initialize(\n    string memory name_,\n    string memory symbol_,\n    uint256 maxUtilizationRate_,\n    uint256 internalLoanInterestRate_\n  ) public initializer {\n    __Reserve_init();\n    __EToken_init_unchained(name_, symbol_, maxUtilizationRate_, internalLoanInterestRate_);\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __EToken_init_unchained(\n    string memory name_,\n    string memory symbol_,\n    uint256 maxUtilizationRate_,\n    uint256 internalLoanInterestRate_\n  ) internal onlyInitializing {\n    require(bytes(name_).length > 0, \"EToken: name cannot be empty\");\n    require(bytes(symbol_).length > 0, \"EToken: symbol cannot be empty\");\n    _name = name_;\n    _symbol = symbol_;\n    _tsScaled.init();\n    /* _scr = Scr({\n      scr: 0,\n      interestRate: 0,\n      tokenInterestRate: 0\n    }); */\n    _params = PackedParams({\n      maxUtilizationRate: _wadTo4(maxUtilizationRate_),\n      liquidityRequirement: HUNDRED_PERCENT,\n      minUtilizationRate: 0,\n      internalLoanInterestRate: _wadTo4(internalLoanInterestRate_),\n      whitelist: ILPWhitelist(address(0))\n    });\n\n    _validateParameters();\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return\n      super.supportsInterface(interfaceId) ||\n      interfaceId == type(IERC20).interfaceId ||\n      interfaceId == type(IERC20Metadata).interfaceId ||\n      interfaceId == type(IEToken).interfaceId;\n  }\n\n  // runs validation on EToken parameters\n  function _validateParameters() internal view override {\n    require(\n      _params.liquidityRequirement >= LIQ_REQ_MIN && _params.liquidityRequirement <= LIQ_REQ_MAX,\n      \"Validation: liquidityRequirement must be [0.8, 1.3]\"\n    );\n    require(\n      _params.maxUtilizationRate >= MAX_UR_MIN && _params.maxUtilizationRate <= HUNDRED_PERCENT,\n      \"Validation: maxUtilizationRate must be [0.5, 1]\"\n    );\n    require(_params.minUtilizationRate <= HUNDRED_PERCENT, \"Validation: minUtilizationRate must be [0, 1]\");\n    /*\n     * We don't validate minUtilizationRate < maxUtilizationRate because the opposite is valid too.\n     * These limits aren't strong limits on the values the utilization rate can take, but instead they are\n     * limits on specific operations.\n     * `minUtilizationRate` is used to avoid new deposits to dilute the yields of existing LPs, but it doesn't\n     * prevent the UR from going down in other operations (`unlockScr` for example).\n     * `maxUtilizationRate` is used to prevent selling more coverage when UR is too high, only checked on `lockScr`\n     * operations, but not in withdrawals or other operations.\n     */\n    require(_params.internalLoanInterestRate <= INT_LOAN_IR_MAX, \"Validation: internalLoanInterestRate must be <= 50%\");\n  }\n\n  /*** BEGIN ERC20 methods - mainly copied from OpenZeppelin but changes in events and scaledAmount */\n\n  /**\n   * @dev Returns the name of the token.\n   */\n  function name() public view virtual override returns (string memory) {\n    return _name;\n  }\n\n  /**\n   * @dev Returns the symbol of the token, usually a shorter version of the\n   * name.\n   */\n  function symbol() public view virtual override returns (string memory) {\n    return _symbol;\n  }\n\n  /**\n   * @dev Returns the number of decimals used to get its user representation.\n   * For example, if `decimals` equals `2`, a balance of `505` tokens should\n   * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n   *\n   * Tokens usually opt for a value of 18, imitating the relationship between\n   * Ether and Wei. This is the value {ERC20} uses, unless this function is\n   * overloaded;\n   *\n   * NOTE: This information is only used for _display_ purposes: it in\n   * no way affects any of the arithmetic of the contract, including\n   * {IERC20-balanceOf} and {IERC20-transfer}.\n   */\n  function decimals() public view virtual override returns (uint8) {\n    return _policyPool.currency().decimals();\n  }\n\n  /**\n   * @dev See {IERC20-totalSupply}.\n   */\n  function totalSupply() public view virtual override returns (uint256) {\n    return _tsScaled.getScaledAmount(tokenInterestRate());\n  }\n\n  /**\n   * @dev See {IERC20-balanceOf}.\n   */\n  function balanceOf(address account) public view virtual override returns (uint256) {\n    uint256 principalBalance = _balances[account];\n    if (principalBalance == 0) return 0;\n    return _tsScaled.getScale(tokenInterestRate()).rayMul(principalBalance.wadToRay()).rayToWad();\n  }\n\n  // Methods following AAVE's IScaledBalanceToken, to simplify future integrations\n\n  /**\n   * @dev Returns the scaled balance of the user. The scaled balance is the sum of all the\n   * updated stored balance divided by the EToken's scale index\n   * @param user The user whose balance is calculated\n   * @return The scaled balance of the user\n   **/\n  function scaledBalanceOf(address user) external view returns (uint256) {\n    return _balances[user];\n  }\n\n  /**\n   * @dev Returns the scaled balance of the user and the scaled total supply.\n   * @param user The address of the user\n   * @return The scaled balance of the user\n   * @return The scaled balance and the scaled total supply\n   **/\n  function getScaledUserBalanceAndSupply(address user) external view returns (uint256, uint256) {\n    return (_balances[user], uint256(_tsScaled.amount));\n  }\n\n  /**\n   * @dev Returns the (un)scaled total supply of the EToken. Equals to the sum of `scaledBalanceOf(x)` of all users\n   * @return The scaled total supply\n   **/\n  function scaledTotalSupply() external view returns (uint256) {\n    return uint256(_tsScaled.amount);\n  }\n\n  /**\n   * @dev See {IERC20-transfer}.\n   *\n   * Requirements:\n   *\n   * - `recipient` cannot be the zero address.\n   * - the caller must have a balance of at least `amount`.\n   */\n  function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\n    _transfer(_msgSender(), recipient, amount);\n    return true;\n  }\n\n  /**\n   * @dev See {IERC20-allowance}.\n   */\n  function allowance(address owner, address spender) public view virtual override returns (uint256) {\n    return _allowances[owner][spender];\n  }\n\n  /**\n   * @dev See {IERC20-approve}.\n   *\n   * Requirements:\n   *\n   * - `spender` cannot be the zero address.\n   */\n  function approve(address spender, uint256 amount) public virtual override returns (bool) {\n    _approve(_msgSender(), spender, amount);\n    return true;\n  }\n\n  /**\n   * @dev See {IERC20-transferFrom}.\n   *\n   * Emits an {Approval} event indicating the updated allowance. This is not\n   * required by the EIP. See the note at the beginning of {ERC20}.\n   *\n   * Requirements:\n   *\n   * - `sender` and `recipient` cannot be the zero address.\n   * - `sender` must have a balance of at least `amount`.\n   * - the caller must have allowance for ``sender``'s tokens of at least\n   * `amount`.\n   */\n  function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\n    address spender = _msgSender();\n    _spendAllowance(sender, spender, amount);\n    _transfer(sender, recipient, amount);\n    return true;\n  }\n\n  /**\n   * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n   *\n   * Does not update the allowance amount in case of infinite allowance.\n   * Revert if not enough allowance is available.\n   *\n   * Might emit an {Approval} event.\n   */\n  function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n    uint256 currentAllowance = allowance(owner, spender);\n    if (currentAllowance != type(uint256).max) {\n      require(currentAllowance >= amount, \"EToken: insufficient allowance\");\n      unchecked {\n        _approve(owner, spender, currentAllowance - amount);\n      }\n    }\n  }\n\n  /**\n   * @dev Atomically increases the allowance granted to `spender` by the caller.\n   *\n   * This is an alternative to {approve} that can be used as a mitigation for\n   * problems described in {IERC20-approve}.\n   *\n   * Emits an {Approval} event indicating the updated allowance.\n   *\n   * Requirements:\n   *\n   * - `spender` cannot be the zero address.\n   */\n  function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n    _approve(_msgSender(), spender, allowance(_msgSender(), spender) + addedValue);\n    return true;\n  }\n\n  /**\n   * @dev Atomically decreases the allowance granted to `spender` by the caller.\n   *\n   * This is an alternative to {approve} that can be used as a mitigation for\n   * problems described in {IERC20-approve}.\n   *\n   * Emits an {Approval} event indicating the updated allowance.\n   *\n   * Requirements:\n   *\n   * - `spender` cannot be the zero address.\n   * - `spender` must have allowance for the caller of at least\n   * `subtractedValue`.\n   */\n  function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n    uint256 currentAllowance = _allowances[_msgSender()][spender];\n    require(currentAllowance >= subtractedValue, \"EToken: decreased allowance below zero\");\n    _approve(_msgSender(), spender, currentAllowance - subtractedValue);\n\n    return true;\n  }\n\n  /**\n   * @dev Moves tokens `amount` from `sender` to `recipient`.\n   *\n   * This is internal function is equivalent to {transfer}, and can be used to\n   * e.g. implement automatic token fees, slashing mechanisms, etc.\n   *\n   * Emits a {Transfer} event.\n   *\n   * Requirements:\n   *\n   * - `sender` cannot be the zero address.\n   * - `recipient` cannot be the zero address.\n   * - `sender` must have a balance of at least `amount`.\n   */\n  function _transfer(address sender, address recipient, uint256 amount) internal virtual {\n    require(sender != address(0), \"EToken: transfer from the zero address\");\n    require(recipient != address(0), \"EToken: transfer to the zero address\");\n\n    _beforeTokenTransfer(sender, recipient, amount);\n    uint256 scaledAmount = _tsScaled.scaleAmountNow(tokenInterestRate(), amount);\n\n    uint256 senderBalance = _balances[sender];\n    require(senderBalance >= scaledAmount, \"EToken: transfer amount exceeds balance\");\n    _balances[sender] = senderBalance - scaledAmount;\n    _balances[recipient] += scaledAmount;\n\n    emit Transfer(sender, recipient, amount);\n  }\n\n  /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n   * the total supply.\n   *\n   * Emits a {Transfer} event with `from` set to the zero address.\n   *\n   * Requirements:\n   *\n   * - `to` cannot be the zero address.\n   */\n  function _mint(address account, uint256 amount) internal virtual {\n    require(account != address(0), \"EToken: mint to the zero address\");\n    require(amount > 0, \"EToken: amount to mint should be greater than zero\");\n\n    _beforeTokenTransfer(address(0), account, amount);\n    uint256 scaledAmount = _tsScaled.add(amount, tokenInterestRate());\n    _balances[account] += scaledAmount;\n    emit Transfer(address(0), account, amount);\n  }\n\n  /**\n   * @dev Destroys `amount` tokens from `account`, reducing the\n   * total supply.\n   *\n   * Emits a {Transfer} event with `to` set to the zero address.\n   *\n   * Requirements:\n   *\n   * - `account` cannot be the zero address.\n   * - `account` must have at least `amount` tokens.\n   */\n  function _burn(address account, uint256 amount) internal virtual {\n    require(account != address(0), \"EToken: burn from the zero address\");\n    _beforeTokenTransfer(account, address(0), amount);\n\n    uint256 scaledAmount = _tsScaled.sub(amount, tokenInterestRate());\n    uint256 accountBalance = _balances[account];\n    require(accountBalance >= scaledAmount, \"EToken: burn amount exceeds balance\");\n    _balances[account] = accountBalance - scaledAmount;\n\n    emit Transfer(account, address(0), amount);\n  }\n\n  /**\n   * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n   *\n   * This internal function is equivalent to `approve`, and can be used to\n   * e.g. set automatic allowances for certain subsystems, etc.\n   *\n   * Emits an {Approval} event.\n   *\n   * Requirements:\n   *\n   * - `owner` cannot be the zero address.\n   * - `spender` cannot be the zero address.\n   */\n  function _approve(address owner, address spender, uint256 amount) internal virtual {\n    require(owner != address(0), \"EToken: approve from the zero address\");\n    require(spender != address(0), \"EToken: approve to the zero address\");\n\n    _allowances[owner][spender] = amount;\n    emit Approval(owner, spender, amount);\n  }\n\n  /**\n   * @dev Hook that is called before any transfer of tokens. This includes\n   * minting and burning.\n   *\n   * Calling conditions:\n   *\n   * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n   * will be to transferred to `to`.\n   * - when `from` is zero, `amount` tokens will be minted for `to`.\n   * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n   * - `from` and `to` are never both zero.\n   *\n   * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n   */\n  function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual whenNotPaused {\n    require(\n      from == address(0) ||\n        to == address(0) ||\n        address(_params.whitelist) == address(0) ||\n        _params.whitelist.acceptsTransfer(this, from, to, amount),\n      \"Transfer not allowed - Liquidity Provider not whitelisted\"\n    );\n  }\n\n  /*** END ERC20 methods - mainly copied from OpenZeppelin but changes in events and scaledAmount */\n\n  function _updateTokenInterestRate() internal {\n    uint256 totalSupply_ = this.totalSupply();\n    if (totalSupply_ == 0) _scr.tokenInterestRate = 0;\n    else {\n      uint256 newTokenInterestRate = uint256(_scr.interestRate).wadMul(uint256(_scr.scr)).wadDiv(totalSupply_);\n      _scr.tokenInterestRate = (newTokenInterestRate > type(uint64).max)\n        ? type(uint64).max\n        : newTokenInterestRate.toUint64();\n      // This is not the mathematically correct value, but the max we can set. The actual value of the total supply\n      // will be adjusted when the policies expire or are resolved and the SCR is unlocked.\n    }\n  }\n\n  function getCurrentScale(bool updated) public view returns (uint256) {\n    if (updated) return _tsScaled.getScale(tokenInterestRate());\n    else return uint256(_tsScaled.scale);\n  }\n\n  function fundsAvailable() public view returns (uint256) {\n    uint256 totalSupply_ = this.totalSupply();\n    if (totalSupply_ > uint256(_scr.scr)) return totalSupply_ - uint256(_scr.scr);\n    else return 0;\n  }\n\n  function fundsAvailableToLock() public view returns (uint256) {\n    uint256 supply = this.totalSupply().wadMul(maxUtilizationRate());\n    if (supply > uint256(_scr.scr)) return supply - uint256(_scr.scr);\n    else return 0;\n  }\n\n  function assetManager() public view override returns (IAssetManager) {\n    return _assetManager;\n  }\n\n  function _setAssetManager(IAssetManager newAM) internal override {\n    _assetManager = newAM;\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function _4toWad(uint16 value) internal pure returns (uint256) {\n    // 4 decimals to Wad (18 decimals)\n    return uint256(value) * FOUR_DECIMAL_TO_WAD;\n  }\n\n  function _wadTo4(uint256 value) internal pure returns (uint16) {\n    // Wad to 4 decimals\n    return (value / FOUR_DECIMAL_TO_WAD).toUint16();\n  }\n\n  function scr() public view virtual override returns (uint256) {\n    return uint256(_scr.scr);\n  }\n\n  function scrInterestRate() public view override returns (uint256) {\n    return uint256(_scr.interestRate);\n  }\n\n  function tokenInterestRate() public view override returns (uint256) {\n    return uint256(_scr.tokenInterestRate);\n  }\n\n  function liquidityRequirement() public view returns (uint256) {\n    return _4toWad(_params.liquidityRequirement);\n  }\n\n  function maxUtilizationRate() public view returns (uint256) {\n    return _4toWad(_params.maxUtilizationRate);\n  }\n\n  function minUtilizationRate() public view returns (uint256) {\n    return _4toWad(_params.minUtilizationRate);\n  }\n\n  function utilizationRate() public view returns (uint256) {\n    return uint256(_scr.scr).wadDiv(this.totalSupply());\n  }\n\n  function lockScr(uint256 scrAmount, uint256 policyInterestRate) external override onlyBorrower whenNotPaused {\n    require(scrAmount <= this.fundsAvailableToLock(), \"Not enough funds available to cover the SCR\");\n    _tsScaled.updateScale(tokenInterestRate());\n    if (_scr.scr == 0) {\n      _scr.scr = scrAmount.toUint128();\n      _scr.interestRate = policyInterestRate.toUint64();\n    } else {\n      uint256 origScr = uint256(_scr.scr);\n      uint256 newScr = origScr + scrAmount;\n      _scr.interestRate = (uint256(_scr.interestRate).wadMul(origScr) + policyInterestRate.wadMul(scrAmount))\n        .wadDiv(newScr)\n        .toUint64();\n      _scr.scr = newScr.toUint128();\n    }\n    emit SCRLocked(policyInterestRate, scrAmount);\n    _updateTokenInterestRate();\n  }\n\n  function unlockScr(\n    uint256 scrAmount,\n    uint256 policyInterestRate,\n    int256 adjustment\n  ) external override onlyBorrower whenNotPaused {\n    require(scrAmount <= uint256(_scr.scr), \"Current SCR less than the amount you want to unlock\");\n    _tsScaled.updateScale(tokenInterestRate());\n\n    if (uint256(_scr.scr) == scrAmount) {\n      _scr.scr = 0;\n      _scr.interestRate = 0;\n    } else {\n      uint256 origScr = uint256(_scr.scr);\n      uint256 newScr = origScr - scrAmount;\n      _scr.interestRate = (uint256(_scr.interestRate).wadMul(origScr) - policyInterestRate.wadMul(scrAmount))\n        .wadDiv(newScr)\n        .toUint64();\n      _scr.scr = newScr.toUint128();\n    }\n    emit SCRUnlocked(policyInterestRate, scrAmount);\n    _discreteChange(adjustment);\n  }\n\n  function _assetEarnings(int256 earnings) internal override {\n    _discreteChange(earnings);\n  }\n\n  function _discreteChange(int256 amount) internal {\n    _tsScaled.discreteChange(amount, tokenInterestRate());\n    _updateTokenInterestRate();\n  }\n\n  function deposit(address provider, uint256 amount) external override onlyPolicyPool returns (uint256) {\n    require(\n      address(_params.whitelist) == address(0) || _params.whitelist.acceptsDeposit(this, provider, amount),\n      \"Liquidity Provider not whitelisted\"\n    );\n    _mint(provider, amount);\n    _updateTokenInterestRate();\n    require(utilizationRate() >= minUtilizationRate(), \"Deposit rejected - Utilization Rate < min\");\n    return balanceOf(provider);\n  }\n\n  function totalWithdrawable() public view virtual override returns (uint256) {\n    uint256 locked = uint256(_scr.scr).wadMul(liquidityRequirement());\n    uint256 totalSupply_ = totalSupply();\n    if (totalSupply_ >= locked) return totalSupply_ - locked;\n    else return 0;\n  }\n\n  function withdraw(address provider, uint256 amount) external override onlyPolicyPool returns (uint256) {\n    /**\n     * Here we don't check for maxUtilizationRate because that limit only affects locking more capital (`lockScr`), but\n     * doesn't affects the right of liquidity providers to withdraw their funds.\n     * The only limit for withdraws is the `totalWithdrawable()` function, that's affected by the relation between the\n     * scr and the totalSupply.\n     */\n    uint256 maxWithdraw = Math.min(balanceOf(provider), totalWithdrawable());\n    if (amount == type(uint256).max) amount = maxWithdraw;\n    if (amount == 0) return 0;\n    require(amount <= maxWithdraw, \"amount > max withdrawable\");\n    require(\n      address(_params.whitelist) == address(0) || _params.whitelist.acceptsWithdrawal(this, provider, amount),\n      \"Liquidity Provider not whitelisted\"\n    );\n    _burn(provider, amount);\n    _updateTokenInterestRate();\n    _transferTo(provider, amount);\n    return amount;\n  }\n\n  function addBorrower(address borrower) external override onlyPolicyPool {\n    require(borrower != address(0), \"EToken: Borrower cannot be the zero address\");\n    TimeScaled.ScaledAmount storage loan = _loans[borrower];\n    if (loan.scale == 0) {\n      loan.init();\n      emit InternalBorrowerAdded(borrower);\n    }\n  }\n\n  function removeBorrower(address borrower) external override onlyPolicyPool {\n    require(borrower != address(0), \"EToken: Borrower cannot be the zero address\");\n    uint256 defaultedDebt = getLoan(borrower);\n    delete _loans[borrower];\n    emit InternalBorrowerRemoved(borrower, defaultedDebt);\n  }\n\n  /**\n   * @dev Returns the maximum negative adjustment (discrete loss) the eToken can accept without breaking consistency.\n   *      The limit comes from limits in the internal scale that takes scaledTotalSupply() to totalSupply()\n   */\n  function maxNegativeAdjustment() public view returns (uint256) {\n    return totalSupply() - _tsScaled.minValue(); // Min value accepted by _tsScaled\n  }\n\n  function internalLoan(\n    uint256 amount,\n    address receiver\n  ) external override onlyBorrower whenNotPaused returns (uint256) {\n    uint256 amountAsked = amount;\n    amount = Math.min(amount, maxNegativeAdjustment());\n    if (amount == 0) return amountAsked;\n    TimeScaled.ScaledAmount storage loan = _loans[_msgSender()];\n    loan.add(amount, internalLoanInterestRate());\n    _discreteChange(-int256(amount));\n    _transferTo(receiver, amount);\n    emit InternalLoan(_msgSender(), amount, amountAsked);\n    return amountAsked - amount;\n  }\n\n  function repayLoan(uint256 amount, address onBehalfOf) external override whenNotPaused {\n    require(amount > 0, \"EToken: amount should be greater than zero.\");\n    // Anyone can call this method, since it has to pay\n    TimeScaled.ScaledAmount storage loan = _loans[onBehalfOf];\n    require(loan.scale != 0, \"Not a registered borrower\");\n    loan.sub(amount, internalLoanInterestRate());\n    _discreteChange(int256(amount));\n    emit InternalLoanRepaid(onBehalfOf, amount);\n    // Interaction at the end for security reasons\n    currency().safeTransferFrom(_msgSender(), address(this), amount);\n  }\n\n  function getLoan(address borrower) public view virtual override returns (uint256) {\n    TimeScaled.ScaledAmount storage loan = _loans[borrower];\n    return loan.getScaledAmount(internalLoanInterestRate());\n  }\n\n  function internalLoanInterestRate() public view returns (uint256) {\n    return _4toWad(_params.internalLoanInterestRate);\n  }\n\n  function setParam(Parameter param, uint256 newValue) external onlyGlobalOrComponentRole(LEVEL2_ROLE) {\n    if (param == Parameter.liquidityRequirement) {\n      _params.liquidityRequirement = _wadTo4(newValue);\n    } else if (param == Parameter.minUtilizationRate) {\n      _params.minUtilizationRate = _wadTo4(newValue);\n    } else if (param == Parameter.maxUtilizationRate) {\n      _params.maxUtilizationRate = _wadTo4(newValue);\n    } else if (param == Parameter.internalLoanInterestRate) {\n      // This call changes the interest rate without updating the current loans up to this point\n      // So, if interest rate goes from 5% to 6%, this change will be retroactive to the lastUpdate of each\n      // loan. Since it's a permissioned call, I'm ok with this. If a caller wants to reduce the impact, it can\n      // issue 1 wei repayLoan to each active loan, forcing the update of the scales\n      _params.internalLoanInterestRate = _wadTo4(newValue);\n    }\n    _parameterChanged(\n      IAccessManager.GovernanceActions(\n        uint256(IAccessManager.GovernanceActions.setLiquidityRequirement) + uint256(param)\n      ),\n      newValue\n    );\n  }\n\n  function setWhitelist(ILPWhitelist lpWhitelist_) external onlyGlobalOrComponentRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    require(\n      address(lpWhitelist_) == address(0) || IPolicyPoolComponent(address(lpWhitelist_)).policyPool() == _policyPool,\n      \"Component not linked to this PolicyPool\"\n    );\n    _params.whitelist = lpWhitelist_;\n    _componentChanged(IAccessManager.GovernanceActions.setLPWhitelist, address(lpWhitelist_));\n  }\n\n  function whitelist() external view returns (ILPWhitelist) {\n    return _params.whitelist;\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[41] private __gap;\n}\n"},"contracts/FullSignedBucketRiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\n\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {Policy} from \"./Policy.sol\";\nimport {SignedBucketRiskModule} from \"./SignedBucketRiskModule.sol\";\n\n/**\n * @title FullSignedBucket Risk Module\n * @dev Variation of SignedBucketRiskModule that also supports the creation of policies receiving all the\n        parameters that affect the price (not just the lossProb). And validates the signature.\n        It requires a new permission, the FULL_PRICER_ROLE.\n  * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract FullSignedBucketRiskModule is SignedBucketRiskModule {\n  bytes32 internal constant FULL_PRICER_ROLE = keccak256(\"FULL_PRICER_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(\n    IPolicyPool policyPool_,\n    IPremiumsAccount premiumsAccount_\n  ) SignedBucketRiskModule(policyPool_, premiumsAccount_) {}\n\n  function _paramsAsUint256(PackedParams memory overrideParams) internal pure returns (uint256) {\n    return\n      (uint256(overrideParams.moc) << 240) |\n      (uint256(overrideParams.jrCollRatio) << 224) |\n      (uint256(overrideParams.collRatio) << 208) |\n      (uint256(overrideParams.ensuroPpFee) << 192) |\n      (uint256(overrideParams.ensuroCocFee) << 176) |\n      (uint256(overrideParams.jrRoc) << 160) |\n      (uint256(overrideParams.srRoc) << 144);\n  }\n\n  function _checkFullSignature(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    PackedParams memory params,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) internal view {\n    if (quoteValidUntil < block.timestamp) revert QuoteExpired();\n\n    /**\n     * Checks the quote has been signed by an authorized user\n     * The \"quote\" is computed as hash of the following fields (encodePacked):\n     * - address(this): the address of this RiskModule\n     * - payout, premium, lossProb, expiration: the base parameters of the policy\n     * - policyData: a hash of the private details of the policy. The calculation should include some\n     *   unique id (quoteId), so each policyData identifies a policy.\n     * - params: packed as a uint256\n     * - quoteValidUntil: the maximum validity of the quote\n     */\n    bytes32 quoteHash = ECDSA.toEthSignedMessageHash(\n      abi.encodePacked(\n        address(this),\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        policyData,\n        _paramsAsUint256(params),\n        quoteValidUntil\n      )\n    );\n    address signer = ECDSA.recover(quoteHash, quoteSignatureR, quoteSignatureVS);\n    _policyPool.access().checkComponentRole(address(this), FULL_PRICER_ROLE, signer, false);\n  }\n\n  /**\n   * @dev Creates a new Policy using a full signed quote that overrides params.\n   *      The caller is the payer of the policy.\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   * - {NewSignedPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the payer\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return createdPolicy Returns the created policy\n   */\n  function newPolicyFullParams(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    bytes32 policyData,\n    PackedParams memory params,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused onlyComponentRole(POLICY_CREATOR_ROLE) returns (Policy.PolicyData memory createdPolicy) {\n    _checkFullSignature(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      policyData,\n      params,\n      quoteSignatureR,\n      quoteSignatureVS,\n      quoteValidUntil\n    );\n    createdPolicy = _newPolicyWithParams(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      _msgSender(),\n      onBehalfOf,\n      _makeInternalId(policyData),\n      _unpackParams(params)\n    );\n    emit NewSignedPolicy(createdPolicy.id, policyData);\n  }\n\n  /**\n   * @dev Replace a policy with a new one, reusing the premium and the capital locked\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   * - The caller has been granted component role REPLACER_ROLE or creation is open\n   *\n   * Emits:\n   * - {PolicyPool.PolicyReplaced}\n   * - {PolicyPool.NewPolicy}\n   *\n   * @param oldPolicy The policy to be replaced\n   * @param payout The exposure (maximum payout) of the new policy\n   * @param premium The premium that will be paid by the caller\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return Returns the id of the created policy\n   */\n  function replacePolicyFullParams(\n    Policy.PolicyData calldata oldPolicy,\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    PackedParams memory params,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused onlyComponentRole(REPLACER_ROLE) returns (uint256) {\n    _checkFullSignature(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      policyData,\n      params,\n      quoteSignatureR,\n      quoteSignatureVS,\n      quoteValidUntil\n    );\n    return\n      _replacePolicy(\n        oldPolicy,\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        _msgSender(),\n        _makeInternalId(policyData),\n        _unpackParams(params)\n      ).id;\n  }\n\n  /**\n   * @dev Computes the minimum premium for fully-customizable params\n   *\n   * @param payout Maximum payout of the policy\n   * @param lossProb Probability of having a loss equal to the maximum payout\n   * @param expiration Expiration date of the policy\n   * @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n   * @return The minimum premium to receive\n   */\n  function getMinimumPremiumFullParams(\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    PackedParams memory params\n  ) public view virtual returns (uint256) {\n    return _getMinimumPremium(payout, lossProb, expiration, uint40(block.timestamp), _unpackParams(params));\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"},"contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport '@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol';\n"},"contracts/interfaces/IAccessManager.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IAccessControlUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\n\n/**\n * @title IAccessManager - Interface for the contract that handles roles for the PolicyPool and components\n * @dev Interface for the contract that handles roles for the PolicyPool and components\n * @author Ensuro\n */\ninterface IAccessManager is IAccessControlUpgradeable {\n  /**\n   * @dev Enum with the different governance actions supported in the protocol.\n   *      It's good to keep actions of the same component consecutive, parts of the code relay on that,\n   *      so we put some fillers in case new actions are added.\n   */\n  enum GovernanceActions {\n    none,\n    setTreasury, // Changes PolicyPool treasury address\n    setAssetManager, // Change in the asset manager strategy of a reserve\n    setAssetManagerForced, // Change in the asset manager strategy of a reserve, forced (deinvest failed)\n    setBaseURI, // Change in the base URI for policy NFTs\n    ppFiller2, // Reserve space for future PolicyPool or AccessManager actions\n    ppFiller3, // Reserve space for future PolicyPool or AccessManager actions\n    ppFiller4, // Reserve space for future PolicyPool or AccessManager actions\n    // RiskModule Governance Actions\n    setMoc,\n    setJrCollRatio,\n    setCollRatio,\n    setEnsuroPpFee,\n    setEnsuroCocFee,\n    setJrRoc,\n    setSrRoc,\n    setMaxPayoutPerPolicy,\n    setExposureLimit,\n    setMaxDuration,\n    setWallet,\n    rmFiller1, // Reserve space for future RM actions\n    rmFiller2, // Reserve space for future RM actions\n    rmFiller3, // Reserve space for future RM actions\n    rmFiller4, // Reserve space for future RM actions\n    // EToken Governance Actions\n    setLPWhitelist, // Changes EToken Liquidity Providers Whitelist\n    setLiquidityRequirement,\n    setMinUtilizationRate,\n    setMaxUtilizationRate,\n    setInternalLoanInterestRate,\n    etkFiller1, // Reserve space for future EToken actions\n    etkFiller2, // Reserve space for future EToken actions\n    etkFiller3, // Reserve space for future EToken actions\n    etkFiller4, // Reserve space for future EToken actions\n    // PremiumsAccount Governance Actions\n    setDeficitRatio,\n    setDeficitRatioWithAdjustment,\n    setJrLoanLimit,\n    setSrLoanLimit,\n    paFiller3, // Reserve space for future PremiumsAccount actions\n    paFiller4, // Reserve space for future PremiumsAccount actions\n    // AssetManager Governance Actions\n    setLiquidityMin,\n    setLiquidityMiddle,\n    setLiquidityMax,\n    amFiller1, // Reserve space for future Asset Manager actions\n    amFiller2, // Reserve space for future Asset Manager actions\n    amFiller3, // Reserve space for future Asset Manager actions\n    amFiller4, // Reserve space for future Asset Manager actions\n    last\n  }\n\n  /**\n   * @dev Gets a role identifier mixing the hash of the global role and the address of the component\n   *\n   * @param component The component where this role will apply\n   * @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @return A new role, mixing (XOR) the component address and the role.\n   */\n  function getComponentRole(address component, bytes32 role) external view returns (bytes32);\n\n  /**\n   * @dev Tells if a user has been granted a given role for a component\n   *\n   * @param component The component where this role will apply\n   * @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @param account The user address for who we want to verify the permission\n   * @param alsoGlobal If true, it will return if the users has either the component role, or the role itself.\n   *                   If false, only the component role is accepted\n   * @return Whether the user has or not any of the roles\n   */\n  function hasComponentRole(\n    address component,\n    bytes32 role,\n    address account,\n    bool alsoGlobal\n  ) external view returns (bool);\n\n  /**\n   * @dev Checks if a user has been granted a given role and reverts if it doesn't\n   *\n   * @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @param account The user address for who we want to verify the permission\n   */\n  function checkRole(bytes32 role, address account) external view;\n\n  /**\n   * @dev Checks if a user has been granted any of the two roles specified and reverts if it doesn't\n   *\n   * @param role1 A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @param role2 Another role such as `keccak256(\"GUARDIAN_ROLE\")` that's global\n   * @param account The user address for who we want to verify the permission\n   */\n  function checkRole2(bytes32 role1, bytes32 role2, address account) external view;\n\n  /**\n   * @dev Checks if a user has been granted a given component role and reverts if it doesn't\n   *\n   * @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @param account The user address for who we want to verify the permission\n   * @param alsoGlobal If true, it will accept not only the component role, but also the (global) `role` itself.\n   *                   If false, only the component role is accepted\n   */\n  function checkComponentRole(address component, bytes32 role, address account, bool alsoGlobal) external view;\n\n  /**\n   * @dev Checks if a user has been granted any of the two component roles specified and reverts if it doesn't\n   *\n   * @param role1 A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n   * @param role2 Another role such as `keccak256(\"GUARDIAN_ROLE\")` that's global\n   * @param account The user address for who we want to verify the permission\n   * @param alsoGlobal If true, it will accept not only the component roles, but also the global ones.\n   *                   If false, only the component roles are accepted\n   */\n  function checkComponentRole2(\n    address component,\n    bytes32 role1,\n    bytes32 role2,\n    address account,\n    bool alsoGlobal\n  ) external view;\n}\n"},"contracts/interfaces/IAssetManager.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\n/**\n * @title IAssetManager - Interface of the asset management strategy that's plugged into the reserves\n * @dev The asset manager is a contract that's plugged and called with `delegatecall` (operates in the context of the\n *      reserve - see {Reserve}). The asset manager contract applies a strategy to invest the reserve funds and\n *      get additional yields.\n *\n *      All implementations of this contract should use the Diamond Storage pattern to avoid overwriting the calling contract's state.\n *      See https://eips.ethereum.org/EIPS/eip-2535#storage\n * @author Ensuro\n */\ninterface IAssetManager is IERC165 {\n  /**\n   * @dev Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\n   * @param amount The amount invested\n   */\n  event MoneyInvested(uint256 amount);\n\n  /**\n   * @dev Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid\n   * funds.\n   *\n   * @param amount The amount de-invested\n   */\n  event MoneyDeinvested(uint256 amount);\n\n  /**\n   * @dev Event emitted when investment yields are accounted in the reserve\n   *\n   * @param earnings The amount of earnings generated since last record. It's positive in the case of earnings or\n   * negative when there are losses.\n   */\n  event EarningsRecorded(int256 earnings);\n\n  /**\n   * @dev Function called when an asset manager is plugged into a reserve. Useful for initialization tasks\n   *\n   * Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you\n   * can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the\n   * diamondStorage might have left some data. So, in the connect method you should initialize the state setting to\n   * zero what's expected to be zero.\n   */\n  function connect() external;\n\n  /**\n   * @dev Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the\n   * reserve balance and those that are invested. Called with delegatecall by the reserve from the external function\n   * rebalance (see {Reserve-rebalance}).\n   *\n   * Events:\n   * - Emits {MoneyInvested} or {MoneyDeinvested}\n   */\n  function rebalance() external;\n\n  /**\n   * @dev Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the\n   * reserve balance and those that are invested. Called with delegatecall by the reserve from the external function\n   * rebalance (see {Reserve-rebalance}).\n   *\n   * Events:\n   * - Emits {MoneyInvested} or {MoneyDeinvested}\n   */\n  function recordEarnings() external returns (int256);\n\n  /**\n   * @dev Refills the reserve balance with enough money to do a payment. Called from the reserve when a payment needs\n   * to be made and there's no enough liquid balance (`currency().balanceOf(reserve) < paymentAmount`)\n   *\n   * Events:\n   * - Emits {MoneyDeinvested} with the amount transferred to the liquid balance.\n   *\n   * @param paymentAmount The total amount of the payment that needs to be made. If this function is called, it's\n   * because paymentAmount > balanceOf(reserve). The minimum amount that needs to be transferred to the reserve is\n   * `paymentAmount - balanceOf(reserve)`, but it can transfer more.\n   * @return Returns the actual amount transferred\n   */\n  function refillWallet(uint256 paymentAmount) external returns (uint256);\n\n  /**\n   * @dev Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset\n   * manager is unplugged.\n   *\n   * Events:\n   * - Emits {MoneyDeinvested} with the amount transferred to the liquid balance.\n   * - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\n   *\n   * @return Returns the earnings or losses (negative) since last time earnings were recorded.\n   */\n  function deinvestAll() external returns (int256);\n}\n"},"contracts/interfaces/IEToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\n/**\n * @title IEToken interface\n * @dev Interface for EToken smart contracts, these are the capital pools.\n * @author Ensuro\n */\ninterface IEToken is IERC20 {\n  /**\n   * @dev Enum of the different parameters that are configurable in an EToken.\n   */\n  enum Parameter {\n    liquidityRequirement,\n    minUtilizationRate,\n    maxUtilizationRate,\n    internalLoanInterestRate\n  }\n\n  /**\n   * @dev Event emitted when part of the funds of the eToken are locked as solvency capital.\n   * @param interestRate The annualized interestRate paid for the capital (wad)\n   * @param value The amount locked\n   */\n  event SCRLocked(uint256 interestRate, uint256 value);\n\n  /**\n   * @dev Event emitted when the locked funds are unlocked and no longer used as solvency capital.\n   * @param interestRate The annualized interestRate that was paid for the capital (wad)\n   * @param value The amount unlocked\n   */\n  event SCRUnlocked(uint256 interestRate, uint256 value);\n\n  /**\n   * @dev Returns the amount of capital that's locked as solvency capital for active policies.\n   */\n  function scr() external view returns (uint256);\n\n  /**\n   * @dev Locks part of the liquidity of the EToken as solvency capital.\n   *\n   * Requirements:\n   * - Must be called by a _borrower_ previously added with `addBorrower`.\n   * - `scrAmount` <= `fundsAvailableToLock()`\n   *\n   * Events:\n   * - Emits {SCRLocked}\n   *\n   * @param scrAmount The amount to lock\n   * @param policyInterestRate The annualized interest rate (wad) to be paid for the `scrAmount`\n   */\n  function lockScr(uint256 scrAmount, uint256 policyInterestRate) external;\n\n  /**\n   * @dev Unlocks solvency capital previously locked with `lockScr`. The capital no longer needed as solvency.\n   *\n   * Requirements:\n   * - Must be called by a _borrower_ previously added with `addBorrower`.\n   * - `scrAmount` <= `scr()`\n   *\n   * Events:\n   * - Emits {SCRUnlocked}\n   *\n   * @param scrAmount The amount to unlock\n   * @param policyInterestRate The annualized interest rate that was paid for the `scrAmount`, must be the same that was\n   * sent in `lockScr` call.\n   */\n  function unlockScr(uint256 scrAmount, uint256 policyInterestRate, int256 adjustment) external;\n\n  /**\n   * @dev Registers a deposit of liquidity in the pool. Called from the PolicyPool, assumes the amount has already been\n   * transferred. `amount` of eToken are minted and given to the provider in exchange of the liquidity provided.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   * - The amount was transferred\n   * - `utilizationRate()` after the deposit is >= `minUtilizationRate()`\n   *\n   * Events:\n   * - Emits {Transfer} with `from` = 0x0 and to = `provider`\n   *\n   * @param provider The address of the liquidity provider\n   * @param amount The amount deposited.\n   * @return The actual balance of the provider\n   */\n  function deposit(address provider, uint256 amount) external returns (uint256);\n\n  /**\n   * @dev Withdraws an amount from an eToken. `withdrawn` eTokens are be burned and the user receives the same amount\n   * in `currency()`. If the asked `amount` can't be withdrawn, it withdraws as much as possible\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - Emits {Transfer} with `from` = `provider` and to = `0x0`\n   *\n   * @param provider The address of the liquidity provider\n   * @param amount The amount to withdraw. If `amount` == `type(uint256).max`, then tries to withdraw all the balance.\n   * @return withdrawn The actual amount that withdrawn. `withdrawn <= amount && withdrawn <= balanceOf(provider)`\n   */\n  function withdraw(address provider, uint256 amount) external returns (uint256 withdrawn);\n\n  /**\n   * @dev Returns the total amount that can be withdrawn\n   */\n  function totalWithdrawable() external view returns (uint256);\n\n  /**\n   * @dev Adds an authorized _borrower_ to the eToken. This _borrower_ will be allowed to lock/unlock funds and to take\n   * loans.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - Emits {InternalBorrowerAdded}\n   *\n   * @param borrower The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\n   */\n  function addBorrower(address borrower) external;\n\n  /**\n   * @dev Removes an authorized _borrower_ to the eToken. The _borrower_ can't no longer lock funds or take loans.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - Emits {InternalBorrowerRemoved} with the defaulted debt\n   *\n   * @param borrower The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\n   */\n  function removeBorrower(address borrower) external;\n\n  /**\n   * @dev Lends `amount` to the borrower (msg.sender), transferring the money to `receiver`. This reduces the\n   * `totalSupply()` of the eToken, and stores a debt that will be repaid (hopefully) with `repayLoan`.\n   *\n   * Requirements:\n   * - Must be called by a _borrower_ previously added with `addBorrower`.\n   *\n   * Events:\n   * - Emits {InternalLoan}\n   * - Emits {ERC20-Transfer} transferring `lent` to `receiver`\n   *\n   * @param amount The amount required\n   * @param receiver The received of the funds lent. This is usually the policyholder if the loan is used for a payout.\n   * @return Returns the amount that wasn't able to fulfil. `amount - lent`\n   */\n  function internalLoan(uint256 amount, address receiver) external returns (uint256);\n\n  /**\n   * @dev Repays a loan taken with `internalLoan`.\n   *\n   * Requirements:\n   * - `msg.sender` approved the spending of `currency()` for at least `amount`\n\n   * Events:\n   * - Emits {InternalLoanRepaid}\n   * - Emits {ERC20-Transfer} transferring `amount` from `msg.sender` to `this`\n   *\n   * @param amount The amount to repaid, that will be transferred from `msg.sender` balance.\n   * @param onBehalfOf The address of the borrower that took the loan. Usually `onBehalfOf == msg.sender` but we keep it\n   * open because in some cases with might need someone else pays the debt.\n   */\n  function repayLoan(uint256 amount, address onBehalfOf) external;\n\n  /**\n   * @dev Returns the updated debt (principal + interest) of the `borrower`.\n   */\n  function getLoan(address borrower) external view returns (uint256);\n\n  /**\n   * @dev The annualized interest rate at which the `totalSupply()` grows\n   */\n  function tokenInterestRate() external view returns (uint256);\n\n  /**\n   * @dev The weighted average annualized interest rate paid by the currently locked `scr()`.\n   */\n  function scrInterestRate() external view returns (uint256);\n}\n"},"contracts/interfaces/ILPWhitelist.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IEToken} from \"./IEToken.sol\";\n\n/**\n * @title ILPWhitelist - Interface that handles the whitelisting of Liquidity Providers\n * @author Ensuro\n */\ninterface ILPWhitelist {\n  /**\n   * @dev Indicates whether or not a liquidity provider can do a deposit in an eToken.\n   *\n   * @param etoken The eToken (see {EToken}) where the provider wants to deposit money.\n   * @param provider The address of the liquidity provider (user) that wants to deposit\n   * @param amount The amount of the deposit\n   * @return true if `provider` deposit is accepted, false if not\n   */\n  function acceptsDeposit(IEToken etoken, address provider, uint256 amount) external view returns (bool);\n\n  /**\n   * @dev Indicates whether or not the eTokens can be transferred from `providerFrom` to `providerTo`\n   *\n   * @param etoken The eToken (see {EToken}) that the LPs have the intention to transfer.\n   * @param providerFrom The current owner of the tokens\n   * @param providerTo The destination of the tokens if the transfer is accepted\n   * @param amount The amount of tokens to be transferred\n   * @return true if the transfer operation is accepted, false if not.\n   */\n  function acceptsTransfer(\n    IEToken etoken,\n    address providerFrom,\n    address providerTo,\n    uint256 amount\n  ) external view returns (bool);\n\n  /**\n   * @dev Indicates whether or not a liquidity provider can withdraw an eToken.\n   *\n   * @param etoken The eToken (see {EToken}) where the provider wants to withdraw money.\n   * @param provider The address of the liquidity provider (user) that wants to withdraw\n   * @param amount The amount of the withdrawal\n   * @return true if `provider` withdraw request is accepted, false if not\n   */\n  function acceptsWithdrawal(IEToken etoken, address provider, uint256 amount) external view returns (bool);\n}\n"},"contracts/interfaces/IPolicyHolder.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC721Receiver} from \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\n\n/**\n * @title Policy holder interface\n * @dev Interface for any contract that wants to be a holder of Ensuro Policies and receive the payouts\n */\ninterface IPolicyHolder is IERC721Receiver {\n  /**\n   * @dev Whenever an Policy is expired or resolved with payout = 0, this function is called\n   *\n   * It should return its Solidity selector to confirm the payout.\n   * If interface is not implemented by the recipient, it will be ignored and the payout will be successful.\n   * No mather what's the return value or even if this function reverts, this function will not revert the policy\n   * expiration.\n   *\n   * The selector can be obtained in Solidity with `IPolicyHolder.onPolicyExpired.selector`.\n   */\n  function onPolicyExpired(address operator, address from, uint256 policyId) external returns (bytes4);\n\n  /**\n   * @dev Whenever an Policy is resolved with payout > 0, this function is called\n   *\n   * It must return its Solidity selector to confirm the payout.\n   * If interface is not implemented by the recipient, it will be ignored and the payout will be successful.\n   * If any other value is returned or it reverts, the policy resolution / payout will be reverted.\n   *\n   * The selector can be obtained in Solidity with `IPolicyHolder.onPayoutReceived.selector`.\n   */\n  function onPayoutReceived(address operator, address from, uint256 policyId, uint256 amount) external returns (bytes4);\n}\n"},"contracts/interfaces/IPolicyHolderV2.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyHolder} from \"./IPolicyHolder.sol\";\n\n/**\n * @title Policy holder interface - V2 of the interface that adds onPolicyReplaced endpoint\n * @dev Interface for any contract that wants to be a holder of Ensuro Policies and receive notification of payouts and\n *      replacements.\n *\n *      Implementors of this interface MUST return true on supportsInterface for both IPolicyHolder and IPolicyHolderV2.\n */\ninterface IPolicyHolderV2 is IPolicyHolder {\n  /**\n   * @dev Whenever a policy is replaced, this function is called\n   *\n   * It must return its Solidity selector to confirm the payout.\n   * If interface is not implemented by the recipient, it will be ignored and the replacement will be successful.\n   * If any other value is returned or it reverts, the policy replacement will be reverted.\n   *\n   * The selector can be obtained in Solidity with `IPolicyHolderV2.onPolicyReplaced.selector`.\n   */\n  function onPolicyReplaced(\n    address operator,\n    address from,\n    uint256 oldPolicyId,\n    uint256 newPolicyId\n  ) external returns (bytes4);\n}\n"},"contracts/interfaces/IPolicyPool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {Policy} from \"../Policy.sol\";\nimport {IEToken} from \"./IEToken.sol\";\nimport {IRiskModule} from \"./IRiskModule.sol\";\nimport {IAccessManager} from \"./IAccessManager.sol\";\n\ninterface IPolicyPool {\n  /**\n   * @dev Event emitted every time a new policy is added to the pool. Contains all the data about the policy that is\n   * later required for doing operations with the policy like resolution or expiration.\n   *\n   * @param riskModule The risk module that created the policy\n   * @param policy The {Policy-PolicyData} struct with all the immutable fields of the policy.\n   */\n  event NewPolicy(IRiskModule indexed riskModule, Policy.PolicyData policy);\n\n  /**\n   * @dev Event emitted every time a new policy replaces an old Policy Contains all the data about the policy that is\n   * later required for doing operations with the policy like resolution or expiration.\n   *\n   * @param riskModule The risk module that created the policy\n   * @param oldPolicyId The id of the replaced policy.\n   * @param newPolicyId The id of the new policy.\n   */\n  event PolicyReplaced(IRiskModule indexed riskModule, uint256 indexed oldPolicyId, uint256 indexed newPolicyId);\n\n  /**\n   * @dev Event emitted every time a policy is removed from the pool. If the policy expired, the `payout` is 0,\n   * otherwise is the amount transferred to the policyholder.\n   *\n   * @param riskModule The risk module where that created the policy initially.\n   * @param policyId The unique id of the policy\n   * @param payout The payout that has been paid to the policy holder. 0 when the policy expired.\n   */\n  event PolicyResolved(IRiskModule indexed riskModule, uint256 indexed policyId, uint256 payout);\n\n  /**\n   * @dev Reference to the main currency (ERC20) used in the protocol\n   * @return The address of the currency (e.g. USDC) token used in the protocol\n   */\n  function currency() external view returns (IERC20Metadata);\n\n  /**\n   * @dev Reference to the {AccessManager} contract, this contract manages the access controls.\n   * @return The address of the AccessManager contract\n   */\n  function access() external view returns (IAccessManager);\n\n  /**\n   * @dev Address of the treasury, that receives protocol fees.\n   * @return The address of the treasury\n   */\n  function treasury() external view returns (address);\n\n  /**\n   * @dev Creates a new Policy. Must be called from an active RiskModule\n   *\n   * Requirements:\n   * - `msg.sender` must be an active RiskModule\n   * - `caller` approved the spending of `currency()` for at least `policy.premium`\n   * - `internalId` must be unique within `policy.riskModule` and not used before\n   *\n   * Events:\n   * - {PolicyPool-NewPolicy}: with all the details about the policy\n   * - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium\n   * (see Premium Split in the docs)\n   *\n   * @param policy A policy created with {Policy-initialize}\n   * @param payer The address that will pay for the premium\n   * @param policyHolder The address of the policy holder\n   * @param internalId A unique id within the RiskModule, that will be used to compute the policy id\n   * @return The policy id, identifying the NFT and the policy\n   */\n  function newPolicy(\n    Policy.PolicyData memory policy,\n    address payer,\n    address policyHolder,\n    uint96 internalId\n  ) external returns (uint256);\n\n  /**\n   * @dev Replaces a policy with another. Must be called from an active RiskModule\n   *\n   * Requirements:\n   * - `msg.sender` must be an active RiskModule\n   * - `caller` approved the spending of `currency()` for at least `newPolicy_.premium - oldPolicy.premium`\n   * - `internalId` must be unique within `policy.riskModule` and not used before\n   *\n   * Events:\n   * - {PolicyPool-PolicyReplaced}: with all the details about the policy\n   * - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium\n   * (see Premium Split in the docs)\n   *\n   * @param oldPolicy A policy created previously and not expired\n   * @param newPolicy_ A policy created with {Policy-initialize}\n   * @param payer The address that will pay for the premium\n   * @param internalId A unique id within the RiskModule, that will be used to compute the policy id\n   * @return The policy id, identifying the NFT and the policy\n   */\n  function replacePolicy(\n    Policy.PolicyData memory oldPolicy,\n    Policy.PolicyData memory newPolicy_,\n    address payer,\n    uint96 internalId\n  ) external returns (uint256);\n\n  /**\n   * @dev Resolves a policy with a payout. Must be called from an active RiskModule\n   *\n   * Requirements:\n   * - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not\n   *   resolved before and not expired (if payout > 0).\n   * - `payout`: must be less than equal to `policy.payout`.\n   *\n   * Events:\n   * - {PolicyPool-PolicyResolved}: with the payout\n   * - {ERC20-Transfer}: to the policyholder with the payout\n   *\n   * @param policy A policy previously created with `newPolicy`\n   * @param payout The amount to paid to the policyholder\n   */\n  function resolvePolicy(Policy.PolicyData calldata policy, uint256 payout) external;\n\n  /**\n   * @dev Resolves a policy with a payout that can be either 0 or the maximum payout of the policy\n   *\n   * Requirements:\n   * - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not\n   *   resolved before and not expired (if customerWon).\n   *\n   * Events:\n   * - {PolicyPool-PolicyResolved}: with the payout\n   * - {ERC20-Transfer}: to the policyholder with the payout\n   *\n   * @param policy A policy previously created with `newPolicy`\n   * @param customerWon Indicated if the payout is zero or the maximum payout\n   */\n  function resolvePolicyFullPayout(Policy.PolicyData calldata policy, bool customerWon) external;\n\n  /**\n   * @dev Resolves a policy with a payout 0, unlocking the solvency. Can be called by anyone, but only after\n   * `Policy.expiration`.\n   *\n   * Requirements:\n   * - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not resolved\n   * before\n   * - Policy expired: `Policy.expiration` <= block.timestamp\n   *\n   * Events:\n   * - {PolicyPool-PolicyResolved}: with payout == 0\n   *\n   * @param policy A policy previously created with `newPolicy`\n   */\n  function expirePolicy(Policy.PolicyData calldata policy) external;\n\n  /**\n   * @dev Returns whether a policy is active, i.e., it's still in the PolicyPool, not yet resolved or expired.\n   *      Be aware that a policy might be active but the `block.timestamp` might be after the expiration date, so it\n   *      can't be triggered with a payout.\n   *\n   * @param policyId The id of the policy queried\n   * @return Whether the policy is active or not\n   */\n  function isActive(uint256 policyId) external view returns (bool);\n\n  /**\n   * @dev Returns the stored hash of the policy. It's `bytes32(0)` is the policy isn't active.\n   *\n   * @param policyId The id of the policy queried\n   * @return Returns the hash of a given policy id\n   */\n  function getPolicyHash(uint256 policyId) external view returns (bytes32);\n\n  /**\n   * @dev Deposits liquidity into an eToken. Forwards the call to {EToken-deposit}, after transferring the funds.\n   * The user will receive etokens for the same amount deposited.\n   *\n   * Requirements:\n   * - `msg.sender` approved the spending of `currency()` for at least `amount`\n   * - `eToken` is an active eToken installed in the pool.\n   *\n   * Events:\n   * - {EToken-Transfer}: from 0x0 to `msg.sender`, reflects the eTokens minted.\n   * - {ERC20-Transfer}: from `msg.sender` to address(eToken)\n   *\n   * @param eToken The address of the eToken to which the user wants to provide liquidity\n   * @param amount The amount to deposit\n   */\n  function deposit(IEToken eToken, uint256 amount) external;\n\n  /**\n   * @dev Withdraws an amount from an eToken. Forwards the call to {EToken-withdraw}.\n   * `amount` of eTokens will be burned and the user will receive the same amount in `currency()`.\n   *\n   * Requirements:\n   * - `eToken` is an active (or deprecated) eToken installed in the pool.\n   *\n   * Events:\n   * - {EToken-Transfer}: from `msg.sender` to `0x0`, reflects the eTokens burned.\n   * - {ERC20-Transfer}: from address(eToken) to `msg.sender`\n   *\n   * @param eToken The address of the eToken from where the user wants to withdraw liquidity\n   * @param amount The amount to withdraw. If equal to type(uint256).max, means full withdrawal.\n   *               If the balance is not enough or can't be withdrawn (locked as SCR), it withdraws\n   *               as much as it can, but doesn't fails.\n   * @return Returns the actual amount withdrawn.\n   */\n  function withdraw(IEToken eToken, uint256 amount) external returns (uint256);\n}\n"},"contracts/interfaces/IPolicyPoolComponent.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"./IPolicyPool.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\n/**\n * @title IPolicyPoolComponent interface\n * @dev Interface for Contracts linked (owned) by a PolicyPool. Useful to avoid cyclic dependencies\n * @author Ensuro\n */\ninterface IPolicyPoolComponent is IERC165 {\n  /**\n   * @dev Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\n   */\n  function policyPool() external view returns (IPolicyPool);\n}\n"},"contracts/interfaces/IPremiumsAccount.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IEToken} from \"./IEToken.sol\";\nimport {Policy} from \"../Policy.sol\";\n\n/**\n * @title IPremiumsAccount interface\n * @dev Interface for Premiums Account contracts.\n * @author Ensuro\n */\ninterface IPremiumsAccount {\n  /**\n   * @dev Adds a policy to the PremiumsAccount. Stores the pure premiums and locks the aditional funds from junior and\n   * senior eTokens.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - {EToken-SCRLocked}\n   *\n   * @param policy The policy to add (created in this transaction)\n   */\n  function policyCreated(Policy.PolicyData memory policy) external;\n\n  /**\n   * @dev Replaces a policy with another in PremiumsAccount. Stores the pure premiums difference and\n   * re-locks the aditional funds from junior and senior eTokens.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - {EToken-SCRUnlocked}\n   * - {EToken-SCRLocked}\n   *\n   * @param oldPolicy The policy to replace (created in a previous transaction)\n   * @param newPolicy The policy that will replace the old one (created in this transaction)\n   */\n  function policyReplaced(Policy.PolicyData memory oldPolicy, Policy.PolicyData memory newPolicy) external;\n\n  /**\n   * @dev The PremiumsAccount is notified that the policy was resolved and issues the payout to the policyHolder.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - {ERC20-Transfer}: `to == policyHolder`, `amount == payout`\n   * - {EToken-InternalLoan}: optional, if a loan needs to be taken\n   * - {EToken-SCRUnlocked}\n   *\n   * @param policyHolder The one that will receive the payout\n   * @param policy The policy that was resolved\n   * @param payout The amount that has to be transferred to `policyHolder`\n   */\n  function policyResolvedWithPayout(address policyHolder, Policy.PolicyData memory policy, uint256 payout) external;\n\n  /**\n   * @dev The PremiumsAccount is notified that the policy has expired, unlocks the SCR and earns the pure premium.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * Events:\n   * - {ERC20-Transfer}: `to == policyHolder`, `amount == payout`\n   * - {EToken-InternalLoanRepaid}: optional, if a loan was taken before\n   *\n   * @param policy The policy that has expired\n   */\n  function policyExpired(Policy.PolicyData memory policy) external;\n\n  /**\n   * @dev The senior eToken, the secondary source of solvency, used if the premiums account is exhausted and junior too\n   */\n  function seniorEtk() external view returns (IEToken);\n\n  /**\n   * @dev The junior eToken, the primary source of solvency, used if the premiums account is exhausted.\n   */\n  function juniorEtk() external view returns (IEToken);\n\n  /**\n   * @dev The total amount of premiums hold by this PremiumsAccount\n   */\n  function purePremiums() external view returns (uint256);\n}\n"},"contracts/interfaces/IRiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPremiumsAccount} from \"./IPremiumsAccount.sol\";\n\n/**\n * @title IRiskModule interface\n * @dev Interface for RiskModule smart contracts. Gives access to RiskModule configuration parameters\n * @author Ensuro\n */\ninterface IRiskModule {\n  /**\n   * @dev Enum with the different parameters of the risk module, used in {RiskModule-setParam}.\n   */\n  enum Parameter {\n    moc,\n    jrCollRatio,\n    collRatio,\n    ensuroPpFee,\n    ensuroCocFee,\n    jrRoc,\n    srRoc,\n    maxPayoutPerPolicy,\n    exposureLimit,\n    maxDuration\n  }\n\n  /**\n   * Struct of the parameters of the risk module that are used to calculate the different Policy fields (see\n   * {Policy-PolicyData}.\n   */\n  struct Params {\n    /**\n     * @dev MoC (Margin of Conservativism) is a factor that multiplies the lossProb to increase or decrease the pure\n     * premium.\n     */\n    uint256 moc;\n    /**\n     * @dev Junior Collateralization Ratio is the percentage of policy exposure (payout) that will be covered with the\n     * purePremium and the Junior EToken\n     */\n    uint256 jrCollRatio;\n    /**\n     * @dev Collateralization Ratio is the percentage of policy exposure (payout) that will be covered by the\n     * purePremium and the Junior and Senior EToken. Usually is calculated as the relation between VAR99.5% and VAR100\n     * (full collateralization).\n     */\n    uint256 collRatio;\n    /**\n     * @dev Ensuro PurePremium Fee is the percentage that will be multiplied by the pure premium to obtain the part of\n     * the Ensuro Fee that's proportional to the pure premium.\n     */\n    uint256 ensuroPpFee;\n    /**\n     * @dev Ensuro Cost of Capital Fee is the percentage that will be multiplied by the cost of capital (CoC) to\n     * obtain the part of the Ensuro Fee that's proportional to the CoC.\n     */\n    uint256 ensuroCocFee;\n    /**\n     * @dev Junior Return on Capital is the annualized interest rate that's charged for the capital locked in the Junior\n     * EToken.\n     */\n    uint256 jrRoc;\n    /**\n     * @dev Senior Return on Capital is the annualized interest rate that's charged for the capital locked in the Senior\n     * EToken.\n     */\n    uint256 srRoc;\n  }\n\n  /**\n   * @dev A readable name of this risk module. Never changes.\n   */\n  function name() external view returns (string memory);\n\n  /**\n   * @dev Returns different parameters of the risk module (see {Params})\n   */\n  function params() external view returns (Params memory);\n\n  /**\n   * @dev Returns the maximum duration (in hours) of the policies of this risk module.\n   *      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\n   */\n  function maxDuration() external view returns (uint256);\n\n  /**\n   * @dev Returns the maximum payout accepted for new policies.\n   */\n  function maxPayoutPerPolicy() external view returns (uint256);\n\n  /**\n   * @dev Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible\n   * amount of money that's exposed for this risk module.\n   */\n  function activeExposure() external view returns (uint256);\n\n  /**\n   * @dev Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module.\n   * `activeExposure() <= exposureLimit()` always\n   */\n  function exposureLimit() external view returns (uint256);\n\n  /**\n   * @dev Returns the address of the partner that receives the partnerCommission\n   */\n  function wallet() external view returns (address);\n\n  /**\n   * @dev Called when a policy expires or is resolved to update the exposure.\n   *\n   * Requirements:\n   * - Must be called by `policyPool()`\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   */\n  function releaseExposure(uint256 payout) external;\n\n  /**\n   * @dev Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\n   */\n  function premiumsAccount() external view returns (IPremiumsAccount);\n}\n"},"contracts/LiquidityThresholdAssetManager.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {IPolicyPoolComponent} from \"./interfaces/IPolicyPoolComponent.sol\";\nimport {IAssetManager} from \"./interfaces/IAssetManager.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\n\n/**\n * @title Base class for asset management strategies that use thresholds for cash and investment balance\n * @dev Base class for asset management strategies that use thresholds for cash and investment balance.\n *      The specific asset management strategy needs to be implemented by child contracts.\n *      Settings liquidityMin, liquidityMiddle, liquidityMax are the thresholds used to define how much liquidity\n *      to keep in the PolicyPool and when to invest/deinvest. Every invest/deinvest operation tries to leave the\n *      cash at liquidityMiddle.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n *\n * @notice This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details.\n */\nabstract contract LiquidityThresholdAssetManager is IAssetManager {\n  using SafeCast for uint256;\n\n  IERC20Metadata internal immutable _asset;\n  event GovernanceAction(IAccessManager.GovernanceActions indexed action, uint256 value);\n\n  struct DiamondStorage {\n    uint32 liquidityMin; // stored with 0 decimals\n    uint32 liquidityMiddle; // stored with 0 decimals\n    uint32 liquidityMax; // stored with 0 decimals\n    uint128 lastInvestmentValue;\n  }\n\n  modifier validateParamsAfterChange() {\n    _;\n    _validateParameters();\n  }\n\n  constructor(IERC20Metadata asset_) {\n    require(address(asset_) != address(0), \"LiquidityThresholdAssetManager: asset cannot be zero address\");\n    _asset = asset_;\n  }\n\n  function diamondStorage() internal pure returns (DiamondStorage storage ds) {\n    // Inspired from https://eips.ethereum.org/EIPS/eip-2535#facets-state-variables-and-diamond-storage\n    // Set the position of our struct in contract storage\n    bytes32 storagePosition = keccak256(\"co.ensuro.LiquidityThresholdAssetManager\");\n    // solhint-disable-next-line no-inline-assembly\n    assembly {\n      ds.slot := storagePosition\n    }\n  }\n\n  function _validateParameters() internal view {\n    DiamondStorage storage ds = diamondStorage();\n\n    require(\n      ds.liquidityMin <= ds.liquidityMiddle && ds.liquidityMiddle <= ds.liquidityMax,\n      \"Validation: Liquidity limits are invalid\"\n    );\n  }\n\n  function connect() public virtual override {\n    require(IPolicyPoolComponent(address(this)).policyPool().currency() == _asset, \"Asset mismatch\");\n    DiamondStorage storage ds = diamondStorage();\n    // When connecting I make sure the storage is clean, to avoid reusing data from previous AM that left\n    // the data in a wrong state.\n    ds.liquidityMin = 0;\n    ds.liquidityMiddle = 0;\n    ds.liquidityMax = 0;\n    ds.lastInvestmentValue = 0;\n  }\n\n  function recordEarnings() external virtual override returns (int256) {\n    uint256 investmentValue = getInvestmentValue();\n    DiamondStorage storage ds = diamondStorage();\n    int256 earnings = int256(investmentValue) - int256(uint256(ds.lastInvestmentValue));\n    ds.lastInvestmentValue = investmentValue.toUint128();\n    emit EarningsRecorded(earnings);\n    return earnings;\n  }\n\n  /**\n   * @dev Returns the current value of the investment portfolio\n   */\n  function getInvestmentValue() public view virtual returns (uint256);\n\n  /**\n   * @dev Rebalances cash between PolicyPool wallet and\n   */\n  function rebalance() external virtual override {\n    uint256 cash = _asset.balanceOf(address(this));\n    if (cash > liquidityMax()) {\n      _invest(cash - liquidityMiddle());\n    } else if (cash < liquidityMin()) {\n      uint256 deinvestAmount = Math.min(getInvestmentValue(), liquidityMiddle() - cash);\n      if (deinvestAmount > 0) {\n        _deinvest(deinvestAmount);\n      }\n    }\n  }\n\n  /**\n   * @dev This is called from PolicyPool when doesn't have enough money for payment.\n   *      After the call, there should be enough money in PolicyPool.currency().balanceOf(this) to\n   *      do the payment\n   * @param paymentAmount The amount of the payment\n   */\n  function refillWallet(uint256 paymentAmount) external override returns (uint256 deinvest) {\n    uint256 cash = _asset.balanceOf(address(this));\n    require(cash < paymentAmount, \"No need to refill the wallet for this payment\");\n    uint256 investmentValue = getInvestmentValue();\n    // try to leave the pool balance at liquidity_middle after the payment\n    deinvest = paymentAmount + liquidityMiddle() - cash;\n    if (deinvest > investmentValue) deinvest = investmentValue;\n    _deinvest(deinvest);\n    return deinvest;\n  }\n\n  function _invest(uint256 amount) internal virtual {\n    DiamondStorage storage ds = diamondStorage();\n    ds.lastInvestmentValue += amount.toUint128();\n    emit MoneyInvested(amount);\n    // must be reimplemented do the actual cash movement\n  }\n\n  function _deinvest(uint256 amount) internal virtual {\n    DiamondStorage storage ds = diamondStorage();\n    ds.lastInvestmentValue -= Math.min(uint256(ds.lastInvestmentValue), amount).toUint128();\n    emit MoneyDeinvested(amount);\n    // must be reimplemented do the actual cash movement\n  }\n\n  function liquidityMin() public view returns (uint256) {\n    return diamondStorage().liquidityMin * 10 ** _asset.decimals();\n  }\n\n  function liquidityMiddle() public view returns (uint256) {\n    return diamondStorage().liquidityMiddle * 10 ** _asset.decimals();\n  }\n\n  function liquidityMax() public view returns (uint256) {\n    return diamondStorage().liquidityMax * 10 ** _asset.decimals();\n  }\n\n  function setLiquidityThresholds(uint256 min, uint256 middle, uint256 max) external validateParamsAfterChange {\n    DiamondStorage storage ds = diamondStorage();\n    if (min != type(uint256).max) {\n      ds.liquidityMin = (min / 10 ** _asset.decimals()).toUint32();\n      emit GovernanceAction(IAccessManager.GovernanceActions.setLiquidityMin, min);\n    }\n    if (middle != type(uint256).max) {\n      ds.liquidityMiddle = (middle / 10 ** _asset.decimals()).toUint32();\n      emit GovernanceAction(IAccessManager.GovernanceActions.setLiquidityMiddle, middle);\n    }\n    if (max != type(uint256).max) {\n      ds.liquidityMax = (max / 10 ** _asset.decimals()).toUint32();\n      emit GovernanceAction(IAccessManager.GovernanceActions.setLiquidityMax, max);\n    }\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return interfaceId == type(IERC165).interfaceId || interfaceId == type(IAssetManager).interfaceId;\n  }\n}\n"},"contracts/LPManualWhitelist.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {PolicyPoolComponent} from \"./PolicyPoolComponent.sol\";\nimport {ILPWhitelist} from \"./interfaces/ILPWhitelist.sol\";\nimport {IEToken} from \"./interfaces/IEToken.sol\";\n\n/**\n * @title Manual Whitelisting contract\n * @dev LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract LPManualWhitelist is ILPWhitelist, PolicyPoolComponent {\n  bytes32 public constant LP_WHITELIST_ROLE = keccak256(\"LP_WHITELIST_ROLE\");\n  bytes32 public constant LP_WHITELIST_ADMIN_ROLE = keccak256(\"LP_WHITELIST_ADMIN_ROLE\");\n\n  /**\n   * @dev Enum with the different options for whitelisting status\n   */\n  enum WhitelistOptions {\n    undefined,\n    whitelisted,\n    blacklisted\n  }\n\n  struct WhitelistStatus {\n    WhitelistOptions deposit;\n    WhitelistOptions withdraw;\n    WhitelistOptions sendTransfer;\n    WhitelistOptions receiveTransfer;\n  }\n\n  mapping(address => WhitelistStatus) private _wlStatus;\n\n  event LPWhitelistStatusChanged(address provider, WhitelistStatus whitelisted);\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  // solhint-disable-next-line no-empty-blocks\n  constructor(IPolicyPool policyPool_) PolicyPoolComponent(policyPool_) {}\n\n  /**\n   * @dev Initializes the Whitelist contract\n   */\n  function initialize(WhitelistStatus calldata defaultStatus) public virtual initializer {\n    __LPManualWhitelist_init(defaultStatus);\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __LPManualWhitelist_init(WhitelistStatus calldata defaultStatus) internal onlyInitializing {\n    __PolicyPoolComponent_init();\n    __LPManualWhitelist_init_unchained(defaultStatus);\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __LPManualWhitelist_init_unchained(WhitelistStatus calldata defaultStatus) internal onlyInitializing {\n    _checkDefaultStatus(defaultStatus);\n    _wlStatus[address(0)] = defaultStatus;\n    emit LPWhitelistStatusChanged(address(0), defaultStatus);\n  }\n\n  function whitelistAddress(\n    address provider,\n    WhitelistStatus calldata newStatus\n  ) external onlyComponentRole(LP_WHITELIST_ROLE) {\n    require(provider != address(0), \"You can't change the defaults\");\n    _whitelistAddress(provider, newStatus);\n  }\n\n  function _checkDefaultStatus(WhitelistStatus calldata newStatus) internal pure {\n    require(\n      newStatus.deposit != WhitelistOptions.undefined &&\n        newStatus.withdraw != WhitelistOptions.undefined &&\n        newStatus.sendTransfer != WhitelistOptions.undefined &&\n        newStatus.receiveTransfer != WhitelistOptions.undefined,\n      \"You need to define the default status for all the operations\"\n    );\n  }\n\n  function setWhitelistDefaults(\n    WhitelistStatus calldata newStatus\n  ) external onlyComponentRole(LP_WHITELIST_ADMIN_ROLE) {\n    _checkDefaultStatus(newStatus);\n    _whitelistAddress(address(0), newStatus);\n  }\n\n  function getWhitelistDefaults() external view returns (WhitelistStatus memory) {\n    return _wlStatus[address(0)];\n  }\n\n  function _whitelistAddress(address provider, WhitelistStatus memory newStatus) internal {\n    _wlStatus[provider] = newStatus;\n    emit LPWhitelistStatusChanged(provider, newStatus);\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(ILPWhitelist).interfaceId;\n  }\n\n  function acceptsDeposit(IEToken, address provider, uint256) external view override returns (bool) {\n    WhitelistOptions wl = _wlStatus[provider].deposit;\n    if (wl == WhitelistOptions.undefined) {\n      wl = _wlStatus[address(0)].deposit;\n    }\n    return wl == WhitelistOptions.whitelisted;\n  }\n\n  function acceptsWithdrawal(IEToken, address provider, uint256) external view override returns (bool) {\n    WhitelistOptions wl = _wlStatus[provider].withdraw;\n    if (wl == WhitelistOptions.undefined) {\n      wl = _wlStatus[address(0)].withdraw;\n    }\n    return wl == WhitelistOptions.whitelisted;\n  }\n\n  function acceptsTransfer(\n    IEToken,\n    address providerFrom,\n    address providerTo,\n    uint256\n  ) external view override returns (bool) {\n    WhitelistOptions wl = _wlStatus[providerFrom].sendTransfer;\n    if (wl == WhitelistOptions.undefined) {\n      wl = _wlStatus[address(0)].sendTransfer;\n    }\n    if (wl != WhitelistOptions.whitelisted) return false;\n    wl = _wlStatus[providerTo].receiveTransfer;\n    if (wl == WhitelistOptions.undefined) {\n      wl = _wlStatus[address(0)].receiveTransfer;\n    }\n    return wl == WhitelistOptions.whitelisted;\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[49] private __gap;\n}\n"},"contracts/migration/LPManualWhitelistV20.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {PolicyPoolComponent} from \"../PolicyPoolComponent.sol\";\nimport {ILPWhitelist} from \"../interfaces/ILPWhitelist.sol\";\nimport {IEToken} from \"../interfaces/IEToken.sol\";\n\n/**\n * @title Manual Whitelisting contract - V2.0\n * @dev LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nabstract contract LPManualWhitelistV20 is ILPWhitelist, PolicyPoolComponent {\n  bytes32 public constant LP_WHITELIST_ROLE = keccak256(\"LP_WHITELIST_ROLE\");\n\n  mapping(address => bool) private _whitelisted;\n\n  event LPWhitelisted(address provider, bool whitelisted);\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  // solhint-disable-next-line no-empty-blocks\n  constructor(IPolicyPool policyPool_) PolicyPoolComponent(policyPool_) {}\n\n  /**\n   * @dev Initializes the Whitelist contract\n   */\n  function initialize() public initializer {\n    __PolicyPoolComponent_init();\n  }\n\n  function whitelistAddress(address provider, bool whitelisted) external onlyComponentRole(LP_WHITELIST_ROLE) {\n    if (_whitelisted[provider] != whitelisted) {\n      _whitelisted[provider] = whitelisted;\n      emit LPWhitelisted(provider, whitelisted);\n    }\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(ILPWhitelist).interfaceId;\n  }\n\n  function acceptsDeposit(IEToken, address provider, uint256) external view override returns (bool) {\n    return _whitelisted[provider];\n  }\n\n  function acceptsTransfer(IEToken, address, address providerTo, uint256) external view override returns (bool) {\n    return _whitelisted[providerTo];\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[49] private __gap;\n}\n"},"contracts/migration/LPManualWhitelistV20Upgraded.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {IEToken} from \"../interfaces/IEToken.sol\";\nimport {LPManualWhitelistV20} from \"./LPManualWhitelistV20.sol\";\n\n/**\n * @title Manual Whitelisting contract - Migration from 2.0 to 2.1\n * @dev Contract with the same storage as the LPManualWhitelist 2.0 but that complies with the new interface\n *      useful for update in place of the current whitelist\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract LPManualWhitelistV20Upgraded is LPManualWhitelistV20 {\n  constructor(IPolicyPool policyPool_) LPManualWhitelistV20(policyPool_) {}\n\n  function acceptsWithdrawal(IEToken etk, address provider, uint256 amount) external view override returns (bool) {\n    return this.acceptsDeposit(etk, provider, amount);\n  }\n}\n"},"contracts/mocks/FixedRateVault.sol":{"content":"//SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport {ERC4626} from \"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IMintableERC20} from \"./IMintableERC20.sol\";\nimport {TimeScaled} from \"../TimeScaled.sol\";\n\ncontract FixedRateVault is ERC4626 {\n  using TimeScaled for TimeScaled.ScaledAmount;\n\n  uint256 internal _interestRate;\n  TimeScaled.ScaledAmount internal _totalAssets;\n  bool internal _broken;\n\n  constructor(\n    string memory name_,\n    string memory symbol_,\n    IERC20Metadata asset_,\n    uint256 interestRate_\n  ) ERC20(name_, symbol_) ERC4626(asset_) {\n    _interestRate = interestRate_;\n    _totalAssets.init();\n  }\n\n  /** @dev See {IERC4262-totalAssets}. */\n  function totalAssets() public view virtual override returns (uint256) {\n    require(!_broken, \"Vault is broken\");\n    return _totalAssets.getScaledAmount(_interestRate);\n  }\n\n  /**\n   * @dev Deposit/mint common workflow.\n   */\n  function _deposit(address caller, address receiver, uint256 assets, uint256 shares) internal virtual override {\n    require(!_broken, \"Vault is broken\");\n    _totalAssets.add(assets, _interestRate);\n    super._deposit(caller, receiver, assets, shares);\n  }\n\n  /**\n   * @dev Withdraw/redeem common workflow.\n   */\n  function _withdraw(\n    address caller,\n    address receiver,\n    address owner,\n    uint256 assets,\n    uint256 shares\n  ) internal virtual override {\n    require(!_broken, \"Vault is broken\");\n    _totalAssets.sub(assets, _interestRate);\n    uint256 balance = IERC20Metadata(asset()).balanceOf(address(this));\n    if (balance < assets) {\n      // Here comes the magic! Free money!\n      IMintableERC20(asset()).mint(address(this), assets - balance);\n    }\n    super._withdraw(caller, receiver, owner, assets, shares);\n  }\n\n  /*\n   * @dev Adds or remove assets not generated by deposits/withdraw - For testing discrete earnings/losses\n   */\n  function discreteEarning(int256 assets) external {\n    if (assets > 0) {\n      _totalAssets.add(uint256(assets), _interestRate);\n    } else {\n      _totalAssets.sub(uint256(-assets), _interestRate);\n    }\n  }\n\n  function setBroken(bool broken_) external {\n    _broken = broken_;\n  }\n\n  function broken() external view returns (bool) {\n    return _broken;\n  }\n}\n"},"contracts/mocks/ForwardProxy.sol":{"content":"//SPDX-License-Identifier: Apache-2.0\n\npragma solidity ^0.8.0;\n\nimport {Proxy} from \"@openzeppelin/contracts/proxy/Proxy.sol\";\n\n/**\n * @dev This contract provides a fallback function that forwards all calls to another contract using the EVM\n * instruction `call`.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\ncontract ForwardProxy is Proxy {\n  address internal _forwardTo;\n\n  constructor(address forwardTo) {\n    _forwardTo = forwardTo;\n  }\n\n  /**\n   * @dev Delegates the current call to `implementation`.\n   *\n   * This function does not return to its internall call site, it will return directly to the external caller.\n   */\n  function _delegate(address implementation) internal virtual override {\n    // solhint-disable-next-line no-inline-assembly\n    assembly {\n      // Copy msg.data. We take full control of memory in this inline assembly\n      // block because it will not return to Solidity code. We overwrite the\n      // Solidity scratch pad at memory position 0.\n      calldatacopy(0, 0, calldatasize())\n\n      // Call the implementation.\n      // out and outsize are 0 because we don't know the size yet.\n      // let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n      let result := call(gas(), implementation, 0, 0, calldatasize(), 0, 0)\n\n      // Copy the returned data.\n      returndatacopy(0, 0, returndatasize())\n\n      switch result\n      // delegatecall returns 0 on error.\n      case 0 {\n        revert(0, returndatasize())\n      }\n      default {\n        return(0, returndatasize())\n      }\n    }\n  }\n\n  /**\n   * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n   * and {_fallback} should delegate.\n   */\n  function _implementation() internal view virtual override returns (address) {\n    return _forwardTo;\n  }\n\n  function setForwardTo(address forwardTo) external {\n    _forwardTo = forwardTo;\n  }\n}\n"},"contracts/mocks/IMintableERC20.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\n/**\n * @title IMintableERC20 interface\n * @dev Interface for mintable / burnable ERC20 - for testing\n * @author Ensuro\n */\ninterface IMintableERC20 {\n  function mint(address recipient, uint256 amount) external;\n\n  function burn(address recipient, uint256 amount) external;\n}\n"},"contracts/mocks/InterfaceIdCalculator.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IERC721} from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport {IAccessControl} from \"@openzeppelin/contracts/access/IAccessControl.sol\";\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {IPolicyPoolComponent} from \"../interfaces/IPolicyPoolComponent.sol\";\nimport {IEToken} from \"../interfaces/IEToken.sol\";\nimport {IRiskModule} from \"../interfaces/IRiskModule.sol\";\nimport {IPolicyHolder} from \"../interfaces/IPolicyHolder.sol\";\nimport {IPremiumsAccount} from \"../interfaces/IPremiumsAccount.sol\";\nimport {ILPWhitelist} from \"../interfaces/ILPWhitelist.sol\";\nimport {IAccessManager} from \"../interfaces/IAccessManager.sol\";\nimport {IAssetManager} from \"../interfaces/IAssetManager.sol\";\n\ncontract InterfaceIdCalculator {\n  bytes4 public constant IERC165_INTERFACEID = type(IERC165).interfaceId;\n  bytes4 public constant IERC20_INTERFACEID = type(IERC20).interfaceId;\n  bytes4 public constant IERC20METADATA_INTERFACEID = type(IERC20Metadata).interfaceId;\n  bytes4 public constant IERC721_INTERFACEID = type(IERC721).interfaceId;\n  bytes4 public constant IACCESSCONTROL_INTERFACEID = type(IAccessControl).interfaceId;\n  bytes4 public constant IPOLICYPOOL_INTERFACEID = type(IPolicyPool).interfaceId;\n  bytes4 public constant IPOLICYPOOLCOMPONENT_INTERFACEID = type(IPolicyPoolComponent).interfaceId;\n  bytes4 public constant IETOKEN_INTERFACEID = type(IEToken).interfaceId;\n  bytes4 public constant IRISKMODULE_INTERFACEID = type(IRiskModule).interfaceId;\n  bytes4 public constant IPREMIUMSACCOUNT_INTERFACEID = type(IPremiumsAccount).interfaceId;\n  bytes4 public constant ILPWHITELIST_INTERFACEID = type(ILPWhitelist).interfaceId;\n  bytes4 public constant IACCESSMANAGER_INTERFACEID = type(IAccessManager).interfaceId;\n  bytes4 public constant IASSETMANAGER_INTERFACEID = type(IAssetManager).interfaceId;\n  bytes4 public constant IPOLICYHOLDER_INTERFACEID = type(IPolicyHolder).interfaceId;\n}\n"},"contracts/mocks/PolicyHolderMock.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyHolder} from \"../interfaces/IPolicyHolder.sol\";\nimport {IPolicyHolderV2} from \"../interfaces/IPolicyHolderV2.sol\";\nimport {IERC721Receiver} from \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {StorageSlot} from \"@openzeppelin/contracts/utils/StorageSlot.sol\";\n\ncontract PolicyHolderMock is IPolicyHolderV2 {\n  uint256 public policyId;\n  uint256 public payout;\n  bool public fail;\n  bool public failReplace;\n  bool public emptyRevert;\n  bool public notImplemented;\n  bool public badlyImplemented;\n  bool public badlyImplementedReplace;\n  bool public noERC165;\n  bool public noV2;\n  uint256 public spendGasCount;\n\n  enum NotificationKind {\n    PolicyReceived,\n    PayoutReceived,\n    PolicyExpired,\n    PolicyReplaced\n  }\n\n  event NotificationReceived(NotificationKind kind, uint256 policyId, address operator, address from);\n\n  constructor() {\n    fail = false;\n    notImplemented = false;\n    badlyImplemented = false;\n    emptyRevert = false;\n    noERC165 = false;\n    payout = type(uint256).max;\n    spendGasCount = 0;\n  }\n\n  function setFail(bool fail_) external {\n    fail = fail_;\n  }\n\n  function setFailReplace(bool failReplace_) external {\n    failReplace = failReplace_;\n  }\n\n  function setSpendGasCount(uint256 spendGasCount_) external {\n    spendGasCount = spendGasCount_;\n  }\n\n  function setNotImplemented(bool notImplemented_) external {\n    notImplemented = notImplemented_;\n  }\n\n  function setBadlyImplemented(bool badlyImplemented_) external {\n    badlyImplemented = badlyImplemented_;\n  }\n\n  function setBadlyImplementedReplace(bool badlyImplementedReplace_) external {\n    badlyImplementedReplace = badlyImplementedReplace_;\n  }\n\n  function setNoV2(bool noV2_) external {\n    noV2 = noV2_;\n  }\n\n  function setNoERC165(bool noERC165_) external {\n    noERC165 = noERC165_;\n  }\n\n  function setEmptyRevert(bool emptyRevert_) external {\n    emptyRevert = emptyRevert_;\n  }\n\n  function spendGas() internal {\n    // Spends gas doing storage writes\n    for (uint256 i = 0; i < spendGasCount; i++) {\n      StorageSlot.getUint256Slot(bytes32(100 + i)).value = i + 1;\n    }\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n    if (noERC165)\n      assembly {\n        revert(0, 0)\n      }\n    if (notImplemented) return false;\n    return\n      interfaceId == type(IPolicyHolder).interfaceId ||\n      (!noV2 && interfaceId == type(IPolicyHolderV2).interfaceId) ||\n      interfaceId == type(IERC165).interfaceId;\n  }\n\n  function onERC721Received(\n    address operator,\n    address from,\n    uint256 policyId_,\n    bytes calldata\n  ) external override returns (bytes4) {\n    if (fail)\n      if (emptyRevert)\n        assembly {\n          revert(0, 0)\n        }\n      else revert(\"onERC721Received: They told me I have to fail\");\n\n    policyId = policyId_;\n    payout = type(uint256).max;\n    emit NotificationReceived(NotificationKind.PolicyReceived, policyId_, operator, from);\n\n    if (badlyImplemented) return bytes4(0x0badf00d);\n\n    spendGas();\n\n    return IERC721Receiver.onERC721Received.selector;\n  }\n\n  function onPolicyExpired(address operator, address from, uint256 policyId_) external override returns (bytes4) {\n    if (fail)\n      if (emptyRevert)\n        assembly {\n          revert(0, 0)\n        }\n      else revert(\"onPolicyExpired: They told me I have to fail\");\n    policyId = policyId_;\n    payout = 0;\n    emit NotificationReceived(NotificationKind.PolicyExpired, policyId_, operator, from);\n\n    if (badlyImplemented) return bytes4(0x0badf00d);\n\n    spendGas();\n\n    return IPolicyHolder.onPolicyExpired.selector;\n  }\n\n  /**\n   * @dev See {IPolicyHolderV2-onPayoutReceived}.\n   */\n  function onPayoutReceived(\n    address operator,\n    address from,\n    uint256 policyId_,\n    uint256 amount\n  ) external override returns (bytes4) {\n    if (fail)\n      if (emptyRevert)\n        assembly {\n          revert(0, 0)\n        }\n      else revert(\"onPayoutReceived: They told me I have to fail\");\n    policyId = policyId_;\n    payout = amount;\n    emit NotificationReceived(NotificationKind.PayoutReceived, policyId_, operator, from);\n\n    if (badlyImplemented) return bytes4(0x0badf00d);\n\n    spendGas();\n\n    return IPolicyHolder.onPayoutReceived.selector;\n  }\n\n  /**\n   * @dev See {IPolicyHolderV2-onPolicyReplaced}.\n   */\n  function onPolicyReplaced(\n    address operator,\n    address from,\n    uint256 oldPolicyId,\n    uint256 newPolicyId\n  ) external override returns (bytes4) {\n    if (noV2) revert(\"Shouldn't call this method if V2 not enabled\");\n    if (failReplace)\n      if (emptyRevert)\n        assembly {\n          revert(0, 0)\n        }\n      else revert(\"onPolicyReplaced: They told me I have to fail\");\n    policyId = oldPolicyId;\n    payout = newPolicyId;\n    emit NotificationReceived(NotificationKind.PolicyReplaced, oldPolicyId, operator, from);\n\n    if (badlyImplementedReplace) return bytes4(0x0badf00d);\n\n    spendGas();\n\n    return IPolicyHolderV2.onPolicyReplaced.selector;\n  }\n}\n"},"contracts/mocks/PolicyPoolComponentMock.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {IPolicyPoolComponent} from \"../interfaces/IPolicyPoolComponent.sol\";\n\ncontract PolicyPoolComponentMock is IPolicyPoolComponent {\n  IPolicyPool internal immutable _policyPool;\n\n  constructor(IPolicyPool policyPool_) {\n    _policyPool = policyPool_;\n  }\n\n  function policyPool() external view override returns (IPolicyPool) {\n    return _policyPool;\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return interfaceId == type(IERC165).interfaceId || interfaceId == type(IPolicyPoolComponent).interfaceId;\n  }\n}\n"},"contracts/mocks/PolicyPoolMock.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {IRiskModule} from \"../interfaces/IRiskModule.sol\";\nimport {IEToken} from \"../interfaces/IEToken.sol\";\nimport {IAccessManager} from \"../interfaces/IAccessManager.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {Policy} from \"../Policy.sol\";\nimport {ForwardProxy} from \"./ForwardProxy.sol\";\n\ncontract PolicyPoolMock is IPolicyPool {\n  using Policy for Policy.PolicyData;\n\n  uint256 public constant MAX_INT = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n  IERC20Metadata internal _currency;\n  IAccessManager internal _access;\n\n  mapping(uint256 => Policy.PolicyData) internal policies;\n  mapping(uint256 => bytes32) internal policyHashes;\n\n  constructor(IERC20Metadata currency_, IAccessManager access_) {\n    _currency = currency_;\n    _access = access_;\n  }\n\n  function currency() external view override returns (IERC20Metadata) {\n    return _currency;\n  }\n\n  function access() external view override returns (IAccessManager) {\n    return _access;\n  }\n\n  function treasury() external pure override returns (address) {\n    return address(0);\n  }\n\n  function newPolicy(\n    Policy.PolicyData memory policy,\n    address /* payer */,\n    address /* policyHolder */,\n    uint96 internalId\n  ) external override returns (uint256) {\n    policy.id = (uint256(uint160(address(policy.riskModule))) << 96) + internalId;\n    policyHashes[policy.id] = policy.hash();\n    emit NewPolicy(IRiskModule(msg.sender), policy);\n    return policy.id;\n  }\n\n  function replacePolicy(\n    Policy.PolicyData memory oldPolicy,\n    Policy.PolicyData memory newPolicy_,\n    address /* payer */,\n    uint96 internalId\n  ) external override returns (uint256) {\n    newPolicy_.id = (uint256(uint160(address(newPolicy_.riskModule))) << 96) + internalId;\n    policyHashes[newPolicy_.id] = newPolicy_.hash();\n    IRiskModule rm = oldPolicy.riskModule;\n    emit NewPolicy(rm, newPolicy_);\n    emit PolicyReplaced(IRiskModule(msg.sender), oldPolicy.id, newPolicy_.id);\n    return newPolicy_.id;\n  }\n\n  function _resolvePolicy(Policy.PolicyData memory policy, uint256 payout) internal {\n    require(policy.id != 0, \"Policy not found\");\n    require(policy.hash() == policyHashes[policy.id], \"Hash doesn't match\");\n    require(msg.sender == address(policy.riskModule), \"Only riskModule is authorized to resolve the policy\");\n    delete policies[policy.id];\n    delete policyHashes[policy.id];\n    emit PolicyResolved(IRiskModule(msg.sender), policy.id, payout);\n  }\n\n  function resolvePolicy(Policy.PolicyData calldata policy, uint256 payout) external override {\n    _resolvePolicy(policy, payout);\n  }\n\n  function expirePolicy(Policy.PolicyData calldata policy) external override {\n    _resolvePolicy(policy, 0);\n  }\n\n  function resolvePolicyFullPayout(Policy.PolicyData calldata policy, bool customerWon) external override {\n    return _resolvePolicy(policy, customerWon ? policy.payout : 0);\n  }\n\n  function isActive(uint256 policyId) external view override returns (bool) {\n    return policyHashes[policyId] != bytes32(0);\n  }\n\n  function getPolicyHash(uint256 policyId) external view override returns (bytes32) {\n    return policyHashes[policyId];\n  }\n\n  function deposit(IEToken, uint256) external pure override {\n    revert(\"Not Implemented deposit\");\n  }\n\n  function withdraw(IEToken, uint256) external pure override returns (uint256) {\n    revert(\"Not Implemented withdraw\");\n  }\n\n  /**\n   * @dev Simple passthrough method for testing Policy.initialize\n   */\n  function initializeAndEmitPolicy(\n    IRiskModule riskModule,\n    IRiskModule.Params memory rmParams,\n    uint256 premium,\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    uint40 start\n  ) external {\n    Policy.PolicyData memory policy = Policy.initialize(\n      riskModule,\n      rmParams,\n      premium,\n      payout,\n      lossProb,\n      expiration,\n      start == 0 ? uint40(block.timestamp) : start\n    );\n\n    emit NewPolicy(riskModule, policy);\n  }\n}\n\n/**\n * @title PolicyPoolMockForward\n * @dev PolicyPool that forwards fallback calls to another contract. Used to simulate calls to EToken\n *      and other contracts that have functions that can be called only from PolicyPool\n */\ncontract PolicyPoolMockForward is ForwardProxy {\n  uint256 public constant MAX_INT = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n  IERC20Metadata internal _currency;\n  IAccessManager internal _access;\n\n  constructor(address forwardTo, IERC20Metadata currency_, IAccessManager access_) ForwardProxy(forwardTo) {\n    _currency = currency_;\n    _access = access_;\n  }\n\n  function currency() external view returns (IERC20Metadata) {\n    return _currency;\n  }\n\n  function access() external view returns (IAccessManager) {\n    return _access;\n  }\n}\n"},"contracts/mocks/RiskModuleMock.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"../interfaces/IPolicyPool.sol\";\nimport {IPremiumsAccount} from \"../interfaces/IPremiumsAccount.sol\";\nimport {RiskModule} from \"../RiskModule.sol\";\nimport {Policy} from \"../Policy.sol\";\nimport {IERC721} from \"@openzeppelin/contracts/interfaces/IERC721.sol\";\n\n/**\n * @title Trustful Risk Module\n * @dev Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by\n        authorized users\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\n\ncontract RiskModuleMock is RiskModule {\n  bytes32 public constant PRICER_ROLE = keccak256(\"PRICER_ROLE\");\n  bytes32 public constant RESOLVER_ROLE = keccak256(\"RESOLVER_ROLE\");\n  bytes32 public constant REPLACER_ROLE = keccak256(\"REPLACER_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  // solhint-disable-next-line no-empty-blocks\n  constructor(IPolicyPool policyPool_, IPremiumsAccount premiumsAccount_) RiskModule(policyPool_, premiumsAccount_) {}\n\n  /**\n   * @dev Initializes the RiskModule\n   * @param name_ Name of the Risk Module\n   * @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n   * @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n   * @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n   * @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n   * @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n   * @param wallet_ Address of the RiskModule provider\n   */\n  function initialize(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) public initializer {\n    __RiskModule_init(name_, collRatio_, ensuroPpFee_, srRoc_, maxPayoutPerPolicy_, exposureLimit_, wallet_);\n  }\n\n  function newPolicy(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address payer,\n    address onBehalfOf,\n    uint96 internalId\n  ) external onlyComponentRole(PRICER_ROLE) returns (uint256) {\n    return _newPolicy(payout, premium, lossProb, expiration, payer, onBehalfOf, internalId).id;\n  }\n\n  function newPolicyRaw(\n    Policy.PolicyData memory policy,\n    address payer,\n    address policyHolder,\n    uint96 internalId\n  ) external returns (uint256) {\n    return _policyPool.newPolicy(policy, payer, policyHolder, internalId);\n  }\n\n  function resolvePolicy(Policy.PolicyData calldata policy, uint256 payout) external onlyComponentRole(RESOLVER_ROLE) {\n    _policyPool.resolvePolicy(policy, payout);\n  }\n\n  function resolvePolicyRaw(Policy.PolicyData calldata policy, uint256 payout) external {\n    return _policyPool.resolvePolicy(policy, payout);\n  }\n\n  function replacePolicy(\n    Policy.PolicyData calldata oldPolicy,\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    uint96 internalId\n  ) external whenNotPaused onlyComponentRole(REPLACER_ROLE) returns (uint256) {\n    address onBehalfOf = IERC721(address(_policyPool)).ownerOf(oldPolicy.id);\n    return _replacePolicy(oldPolicy, payout, premium, lossProb, expiration, onBehalfOf, internalId, params()).id;\n  }\n\n  function replacePolicyRaw(\n    Policy.PolicyData memory oldPolicy,\n    Policy.PolicyData memory newPolicy_,\n    address payer,\n    uint96 internalId\n  ) external returns (uint256) {\n    return _policyPool.replacePolicy(oldPolicy, newPolicy_, payer, internalId);\n  }\n}\n"},"contracts/mocks/TestCurrency.sol":{"content":"//SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {ERC20} from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport {IMintableERC20} from \"./IMintableERC20.sol\";\n\ncontract TestCurrency is ERC20, IMintableERC20 {\n  address private _owner;\n  uint8 internal immutable _decimals;\n\n  constructor(\n    string memory name_,\n    string memory symbol_,\n    uint256 initialSupply,\n    uint8 decimals_\n  ) ERC20(name_, symbol_) {\n    _owner = msg.sender;\n    _decimals = decimals_;\n    _mint(msg.sender, initialSupply);\n  }\n\n  function decimals() public view virtual override returns (uint8) {\n    return _decimals;\n  }\n\n  function mint(address recipient, uint256 amount) external override {\n    // require(msg.sender == _owner, \"Only owner can mint\");\n    return _mint(recipient, amount);\n  }\n\n  function burn(address recipient, uint256 amount) external override {\n    // require(msg.sender == _owner, \"Only owner can burn\");\n    return _burn(recipient, amount);\n  }\n}\n"},"contracts/Policy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\nimport {IRiskModule} from \"./interfaces/IRiskModule.sol\";\n\n/**\n * @title Policy library\n * @dev Library for PolicyData struct. This struct represents an active policy, how the premium is\n *      distributed, the probability of payout, duration and how the capital is locked.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nlibrary Policy {\n  using WadRayMath for uint256;\n\n  uint256 internal constant SECONDS_PER_YEAR = 365 days;\n\n  // Active Policies\n  struct PolicyData {\n    uint256 id;\n    uint256 payout;\n    uint256 premium;\n    uint256 jrScr;\n    uint256 srScr;\n    uint256 lossProb; // original loss probability (in wad)\n    uint256 purePremium; // share of the premium that covers expected losses\n    // equal to payout * lossProb * riskModule.moc\n    uint256 ensuroCommission; // share of the premium that goes for Ensuro\n    uint256 partnerCommission; // share of the premium that goes for the RM\n    uint256 jrCoc; // share of the premium that goes to junior liquidity providers (won or not)\n    uint256 srCoc; // share of the premium that goes to senior liquidity providers (won or not)\n    IRiskModule riskModule;\n    uint40 start;\n    uint40 expiration;\n  }\n\n  struct PremiumComposition {\n    uint256 purePremium;\n    uint256 jrScr;\n    uint256 srScr;\n    uint256 jrCoc;\n    uint256 srCoc;\n    uint256 ensuroCommission;\n    uint256 partnerCommission;\n    uint256 totalPremium;\n  }\n\n  function getMinimumPremium(\n    IRiskModule.Params memory rmParams,\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    uint40 start\n  ) internal pure returns (PremiumComposition memory minPremium) {\n    minPremium.purePremium = payout.wadMul(lossProb.wadMul(rmParams.moc));\n    minPremium.jrScr = payout.wadMul(rmParams.jrCollRatio);\n    if (minPremium.jrScr > minPremium.purePremium) {\n      minPremium.jrScr -= minPremium.purePremium;\n    } else {\n      minPremium.jrScr = 0;\n    }\n\n    minPremium.srScr = payout.wadMul(rmParams.collRatio);\n    if (minPremium.srScr > (minPremium.purePremium + minPremium.jrScr)) {\n      minPremium.srScr -= minPremium.purePremium + minPremium.jrScr;\n    } else {\n      minPremium.srScr = 0;\n    }\n\n    // Calculate CoCs\n    minPremium.jrCoc = minPremium.jrScr.wadMul((rmParams.jrRoc * (expiration - start)) / SECONDS_PER_YEAR);\n    minPremium.srCoc = minPremium.srScr.wadMul((rmParams.srRoc * (expiration - start)) / SECONDS_PER_YEAR);\n    uint256 totalCoc = minPremium.jrCoc + minPremium.srCoc;\n\n    minPremium.ensuroCommission =\n      minPremium.purePremium.wadMul(rmParams.ensuroPpFee) +\n      totalCoc.wadMul(rmParams.ensuroCocFee);\n\n    minPremium.totalPremium = minPremium.purePremium + minPremium.ensuroCommission + totalCoc;\n  }\n\n  function initialize(\n    IRiskModule riskModule,\n    IRiskModule.Params memory rmParams,\n    uint256 premium,\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    uint40 start\n  ) internal pure returns (PolicyData memory newPolicy) {\n    require(premium <= payout, \"Premium cannot be more than payout\");\n    PolicyData memory policy;\n\n    policy.riskModule = riskModule;\n    policy.premium = premium;\n    policy.payout = payout;\n    policy.lossProb = lossProb;\n    policy.start = start;\n    policy.expiration = expiration;\n\n    PremiumComposition memory minPremium = getMinimumPremium(rmParams, payout, lossProb, expiration, start);\n\n    policy.purePremium = minPremium.purePremium;\n    policy.jrScr = minPremium.jrScr;\n    policy.srScr = minPremium.srScr;\n    policy.jrCoc = minPremium.jrCoc;\n    policy.srCoc = minPremium.srCoc;\n    policy.ensuroCommission = minPremium.ensuroCommission;\n\n    require(minPremium.totalPremium <= premium, \"Premium less than minimum\");\n\n    policy.partnerCommission = premium - minPremium.totalPremium;\n    return policy;\n  }\n\n  function jrInterestRate(PolicyData memory policy) internal pure returns (uint256) {\n    return ((policy.jrCoc * SECONDS_PER_YEAR) / (policy.expiration - policy.start)).wadDiv(policy.jrScr);\n  }\n\n  function jrAccruedInterest(PolicyData memory policy) internal view returns (uint256) {\n    return (policy.jrCoc * (block.timestamp - policy.start)) / (policy.expiration - policy.start);\n  }\n\n  function srInterestRate(PolicyData memory policy) internal pure returns (uint256) {\n    return ((policy.srCoc * SECONDS_PER_YEAR) / (policy.expiration - policy.start)).wadDiv(policy.srScr);\n  }\n\n  function srAccruedInterest(PolicyData memory policy) internal view returns (uint256) {\n    return (policy.srCoc * (block.timestamp - policy.start)) / (policy.expiration - policy.start);\n  }\n\n  function hash(PolicyData memory policy) internal pure returns (bytes32 retHash) {\n    retHash = keccak256(abi.encode(policy));\n    require(retHash != bytes32(0), \"Policy: hash cannot be 0\");\n    return retHash;\n  }\n}\n"},"contracts/PolicyPool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {AddressUpgradeable} from \"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\";\nimport {ERC165Checker} from \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport {ERC721Upgradeable} from \"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {PausableUpgradeable} from \"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\";\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {UUPSUpgradeable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\n\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {IEToken} from \"./interfaces/IEToken.sol\";\nimport {IPolicyHolderV2} from \"./interfaces/IPolicyHolderV2.sol\";\nimport {IPolicyHolder} from \"./interfaces/IPolicyHolder.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPolicyPoolComponent} from \"./interfaces/IPolicyPoolComponent.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {IRiskModule} from \"./interfaces/IRiskModule.sol\";\nimport {Policy} from \"./Policy.sol\";\n\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\n\n/**\n * @title Ensuro PolicyPool contract\n * @dev This is the main contract of the protocol, it stores the eTokens (liquidity pools) and has the operations\n *      to interact with them. This is also the contract that receives and sends the underlying asset (currency).\n *      Also this contract keeps track of accumulated premiums in different stages:\n *      - activePurePremiums\n *      - wonPurePremiums (surplus)\n *      - borrowedActivePP (deficit borrowed from activePurePremiums)\n *      This contract also implements the ERC721 standard, because it mints and NFT for each policy created. The\n *      property of the NFT represents the one that will receive the payout.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract PolicyPool is IPolicyPool, PausableUpgradeable, UUPSUpgradeable, ERC721Upgradeable {\n  using WadRayMath for uint256;\n  using Policy for Policy.PolicyData;\n  using SafeERC20 for IERC20Metadata;\n\n  bytes32 public constant GUARDIAN_ROLE = keccak256(\"GUARDIAN_ROLE\");\n  bytes32 public constant LEVEL1_ROLE = keccak256(\"LEVEL1_ROLE\");\n  bytes32 public constant LEVEL2_ROLE = keccak256(\"LEVEL2_ROLE\");\n\n  uint256 internal constant HOLDER_GAS_LIMIT = 150000;\n\n  /**\n   * @dev {AccessManager} that handles the access permissions for the PolicyPool and its components.\n   */\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IAccessManager internal immutable _access;\n\n  /**\n   * @dev {ERC20} token used in PolicyPool as currency. Usually it will be a stablecoin such as USDC.\n   */\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IERC20Metadata internal immutable _currency;\n\n  /**\n   * @dev Address of Ensuro's treasury that receives the protocol fees.\n   */\n  address internal _treasury; // address of Ensuro treasury\n\n  /**\n   * @dev This enum tracks the different status that a component ({PremiumsAccount}, {EToken} or {RiskModule} can have.\n   */\n  enum ComponentStatus {\n    /**\n     * @dev inactive status = 0 means the component doesn't exists - All operations rejected\n     */\n    inactive,\n    /**\n     * @dev active means the component is fully functional, all the component operations are allowed.\n     *      deposit / withdraw for eTokens\n     *      newPolicy / resolvePolicy for riskModules\n     *      policyCreated / policyExpired / policyResolvedWithPayout for premiumsAccount\n     */\n    active,\n    /**\n     * @dev deprecated means the component is in process of being deactivated. Only some operations are allowed:\n     *      withdraw for eTokens\n     *      resolvePolicy / expirePolicy for riskModules\n     *      policyExpired / policyResolvedWithPayout for premiumsAccount\n     */\n    deprecated,\n    /**\n     * @dev suspended means the component is temporarily deactivated. All the operations are rejected. Only GUARDIAN\n     *      can suspend.\n     */\n    suspended\n  }\n\n  /**\n   * @dev Enum of the different kind of top level components that can be plugged into the pool. Each one corresponds\n   * with the {EToken}, {RiskModule} and {PremiumsAccount} respectively.\n   */\n  enum ComponentKind {\n    unknown,\n    eToken,\n    riskModule,\n    premiumsAccount\n  }\n\n  /**\n   * @dev Struct to keep the state and type of the components installed. The `kind` never changes. The `status`\n   * initially is `active` and can be changes with {PolicyPool-changeComponentStatus} and {PolicyPool-removeComponent}.\n   */\n  struct Component {\n    ComponentStatus status;\n    ComponentKind kind;\n  }\n\n  /**\n   * @dev Mapping of installed components (see {EToken}, {RiskModule}, {PremiumsAccount}) in the PolicyPool.\n   */\n  mapping(IPolicyPoolComponent => Component) internal _components;\n\n  /**\n   * @dev Mapping that stores the active policies (the policyId is the key). It just saves the hash of the policies,\n   * the full {Policy-PolicyData} struct has to be sent for each operation (hash is used to verify).\n   */\n  mapping(uint256 => bytes32) internal _policies;\n\n  /**\n   * @dev Base URI for the minted policy NFTs.\n   */\n  string internal _nftBaseURI;\n\n  /**\n   * @dev Constructor error when address(0) is sent as `access()`\n   */\n  error NoZeroAccess();\n\n  /**\n   * @dev Constructor error when address(0) is sent as `currency()`\n   */\n  error NoZeroCurrency();\n\n  /**\n   * @dev Constructor error (or setTreasury) when address(0) is sent as `treasury()`\n   */\n  error NoZeroTreasury();\n\n  /**\n   * @dev Initialization error when empty name for the ERC721 is sent\n   */\n  error NoEmptyName();\n\n  /**\n   * @dev Initialization error when empty symbol for the ERC721 is sent\n   */\n  error NoEmptySymbol();\n\n  /**\n   * @dev Upgrade error when the new implementation contract tries to change the `access()`\n   */\n  error UpgradeCannotChangeAccess();\n\n  /**\n   * @dev Error when trying to add a component that was already added to the PolicyPool\n   */\n  error ComponentAlreadyInThePool();\n\n  /**\n   * @dev Error when trying to add a component that isn't linked to this pool (`.policyPool() != this`)\n   */\n  error ComponentNotLinkedToThisPool();\n\n  /**\n   * @dev Error when a component is not of the right kind, it might happen if a component declared as\n   *      ComponentKind.eToken doesn't support the IEToken interface (or similar) or when in a given operation\n   *      we expect a component to be a risk module and the stored kind is different.\n   */\n  error ComponentNotTheRightKind(IPolicyPoolComponent component, ComponentKind expectedKind);\n\n  /**\n   * @dev Error when a component is expected to be deprecated for the operation (see `removeComponent`) and it isn't.\n   */\n  error ComponentNotDeprecated();\n\n  /**\n   * @dev Error when trying to remove a component that is still in use. The \"in use\" definition can change from one\n   *      component to the other. For eToken in use means `totalSupply() != 0`. For PremiumsAccount means\n   *      `purePremiums() != 0`. For RiskModule means `activeExposure() != 0`.\n   */\n  error ComponentInUseCannotRemove(ComponentKind kind, uint256 amount);\n\n  /**\n   * @dev Error when a component is not found in the pool (status = 0 = inactive)\n   */\n  error ComponentNotFound();\n\n  /**\n   * @dev Error when a component is not found in the pool or is not active (status != active)\n   */\n  error ComponentNotFoundOrNotActive();\n\n  /**\n   * @dev Error when a component is not active or deprecated. Happens on some operations like eToken withdrawals or\n   *      policy resolutions that accept the component might be active or deprecated and isn't on any of those states.\n   */\n  error ComponentMustBeActiveOrDeprecated();\n\n  /**\n   * @dev Error when a method intented to be called by riskModule (and by policy's risk module) is called by someone\n   *      else.\n   */\n  error OnlyRiskModuleAllowed();\n\n  /**\n   * @dev Error raised when IPolicyHolder doesn't return the expected selector answer when notified of policy payout,\n   *      reception or replacement.\n   */\n  error InvalidNotificationResponse(bytes4 response);\n\n  /**\n   * @dev Event emitted when the treasury changes\n   *\n   * @param action The type of governance action (setTreasury or setBaseURI for now)\n   * @param value  The address of the new treasury or the address of the caller (for setBaseURI)\n   */\n  event ComponentChanged(IAccessManager.GovernanceActions indexed action, address value);\n\n  /**\n   * @dev Event emitted when a new component added/removed to the pool or the status changes.\n   *\n   * @param component The address of the component, it can be an {EToken}, {RiskModule} or {PremiumsAccount}\n   * @param kind Value indicating the kind of component. See {ComponentKind}\n   * @param newStatus The status of the component after the operation. See {ComponentStatus}\n   */\n  event ComponentStatusChanged(IPolicyPoolComponent indexed component, ComponentKind kind, ComponentStatus newStatus);\n\n  /**\n   * @dev Event emitted when a IPolicyHolder reverts on the expiration notification. The operation doesn't reverts\n   *\n   * @param policyId The id of the policy being expired\n   * @param holder The address of the contract that owns the policy\n   */\n  event ExpirationNotificationFailed(uint256 indexed policyId, IPolicyHolder holder);\n  /**\n   * @dev Modifier that checks the caller has a given role\n   */\n  modifier onlyRole(bytes32 role) {\n    _access.checkRole(role, _msgSender());\n    _;\n  }\n\n  /**\n   * @dev Modifier that checks the caller has any of the given roles\n   */\n  modifier onlyRole2(bytes32 role1, bytes32 role2) {\n    _access.checkRole2(role1, role2, _msgSender());\n    _;\n  }\n\n  /**\n   * @dev Instantiates a Policy Pool. Sets immutable fields.\n   *\n   * @param access_ The address of the {AccessManager} that manages the access permissions for the pool governance\n   * operations.\n   * @param currency_ The {ERC20} token that's used as a currency in the protocol. Usually a stablecoin such as USDC.\n   */\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IAccessManager access_, IERC20Metadata currency_) {\n    if (address(access_) == address(0)) revert NoZeroAccess();\n    if (address(currency_) == address(0)) revert NoZeroCurrency();\n    _disableInitializers();\n    _access = access_;\n    _currency = currency_;\n  }\n\n  /**\n   * @dev Initializes a Policy Pool\n   *\n   * @param name_ The name of the ERC721 token.\n   * @param symbol_ The symbol of the ERC721 token.\n   * @param treasury_ The address of the treasury that will receive the protocol fees.\n   */\n  function initialize(string memory name_, string memory symbol_, address treasury_) public initializer {\n    if (bytes(name_).length == 0) revert NoEmptyName();\n    if (bytes(symbol_).length == 0) revert NoEmptySymbol();\n    __UUPSUpgradeable_init();\n    __ERC721_init(name_, symbol_);\n    __Pausable_init();\n    __PolicyPool_init_unchained(treasury_);\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(IPolicyPool).interfaceId;\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __PolicyPool_init_unchained(address treasury_) internal onlyInitializing {\n    _setTreasury(treasury_);\n  }\n\n  function _authorizeUpgrade(address newImpl) internal view override onlyRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    IPolicyPool newPool = IPolicyPool(newImpl);\n    if (newPool.access() != _access) revert UpgradeCannotChangeAccess();\n    // if (newPool.currency() != _currency) revert UpgradeCannotChangeCurrency();\n    // We now accept upgrade of the currency. This is a critical operation (as any upgrade), and should be\n    // made carefully checking that all the assets of the protocol are converted to the new currency in the\n    // migration process\n  }\n\n  /**\n   * @dev Pauses the contract. When the contract is paused, several operations are rejected: deposits, withdrawals, new\n   * policies, policy resolution and expiration, nft transfers.\n   *\n   * Requirements:\n   * - Must be executed by a user with the {GUARDIAN_ROLE}.\n   */\n  function pause() public onlyRole(GUARDIAN_ROLE) {\n    _pause();\n  }\n\n  /**\n   * @dev Unpauses the contract. All the operations disabled when the contract was paused are re-enabled.\n   *\n   * Requirements:\n   * - Must be called by a user with either the {GUARDIAN_ROLE} or a {LEVEL1_ROLE}.\n   */\n  function unpause() public onlyRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    _unpause();\n  }\n\n  function access() external view virtual override returns (IAccessManager) {\n    return _access;\n  }\n\n  function currency() external view virtual override returns (IERC20Metadata) {\n    return _currency;\n  }\n\n  function _setTreasury(address treasury_) internal {\n    if (treasury_ == address(0)) revert NoZeroTreasury();\n    _treasury = treasury_;\n    emit ComponentChanged(IAccessManager.GovernanceActions.setTreasury, _treasury);\n  }\n\n  /**\n   * @dev Changes the address of the treasury, the one that receives the protocol fees.\n   *\n   * Requirements:\n   * - Must be called by a user with the {LEVEL1_ROLE}.\n   *\n   * Events:\n   * - Emits {ComponentChanged} with action = setTreasury and the address of the new treasury.\n   */\n  function setTreasury(address treasury_) external onlyRole(LEVEL1_ROLE) {\n    _setTreasury(treasury_);\n  }\n\n  /**\n   * @dev Returns the address of the treasury, the one that receives the protocol fees.\n   */\n  function treasury() external view override returns (address) {\n    return _treasury;\n  }\n\n  /**\n   * @dev Adds a new component (either an {EToken}, {RiskModule} or {PremiumsAccount}) to the protocol. The component\n   * status will be `active`.\n   *\n   * Requirements:\n   * - Must be called by a user with the {LEVEL1_ROLE}\n   * - The component wasn't added before.\n   *\n   * Events:\n   * - Emits {ComponentStatusChanged} with status active.\n   *\n   * @param component The address of component contract. Must be an {EToken}, {RiskModule} or {PremiumsAccount} linked\n   * to this specific {PolicyPool} and matching the `kind` specified in the next paramter.\n   * @param kind The type of component to be added.\n   */\n  function addComponent(IPolicyPoolComponent component, ComponentKind kind) external onlyRole(LEVEL1_ROLE) {\n    Component storage comp = _components[component];\n    if (comp.status != ComponentStatus.inactive) revert ComponentAlreadyInThePool();\n    if (component.policyPool() != this) revert ComponentNotLinkedToThisPool();\n\n    if (\n      (kind == ComponentKind.eToken && !component.supportsInterface(type(IEToken).interfaceId)) ||\n      (kind == ComponentKind.premiumsAccount && !component.supportsInterface(type(IPremiumsAccount).interfaceId)) ||\n      (kind == ComponentKind.riskModule && !component.supportsInterface(type(IRiskModule).interfaceId))\n    ) revert ComponentNotTheRightKind(component, kind);\n\n    comp.status = ComponentStatus.active;\n    comp.kind = kind;\n    if (kind == ComponentKind.premiumsAccount) {\n      IPremiumsAccount pa = IPremiumsAccount(address(component));\n      IEToken etk = pa.juniorEtk();\n      if (address(etk) != address(0)) {\n        etk.addBorrower(address(pa));\n      }\n      etk = pa.seniorEtk();\n      if (address(etk) != address(0)) {\n        etk.addBorrower(address(pa));\n      }\n    }\n    emit ComponentStatusChanged(component, kind, ComponentStatus.active);\n  }\n\n  /**\n   * @dev Removes a component from the protocol. The component needs to be in `deprecated` status before doing this\n   * operation.\n   *\n   * Requirements:\n   * - Must be called by a user with the {LEVEL1_ROLE}\n   * - The component status is `deprecated`.\n   *\n   * Events:\n   * - Emits {ComponentStatusChanged} with status inactive.\n   *\n   * @param component The address of component contract. Must be a component added before.\n   */\n  function removeComponent(IPolicyPoolComponent component) external onlyRole(LEVEL1_ROLE) {\n    Component storage comp = _components[component];\n    if (comp.status != ComponentStatus.deprecated) revert ComponentNotDeprecated();\n    if (comp.kind == ComponentKind.eToken) {\n      if (IEToken(address(component)).totalSupply() != 0)\n        revert ComponentInUseCannotRemove(comp.kind, IEToken(address(component)).totalSupply());\n    } else if (comp.kind == ComponentKind.riskModule) {\n      if (IRiskModule(address(component)).activeExposure() != 0)\n        revert ComponentInUseCannotRemove(comp.kind, IRiskModule(address(component)).activeExposure());\n    } else if (comp.kind == ComponentKind.premiumsAccount) {\n      IPremiumsAccount pa = IPremiumsAccount(address(component));\n      if (pa.purePremiums() != 0) revert ComponentInUseCannotRemove(comp.kind, pa.purePremiums());\n      IEToken etk = pa.juniorEtk();\n      if (address(etk) != address(0)) {\n        etk.removeBorrower(address(pa));\n      }\n      etk = pa.seniorEtk();\n      if (address(etk) != address(0)) {\n        etk.removeBorrower(address(pa));\n      }\n    }\n    emit ComponentStatusChanged(component, comp.kind, ComponentStatus.inactive);\n    delete _components[component];\n  }\n\n  /**\n   * @dev Changes the status of a component.\n   *\n   * Requirements:\n   * - Must be called by a user with the {LEVEL1_ROLE} if the new status is `active` or `deprecated`.\n   * - Must be called by a user with the {GUARDIAN_ROLE} if the new status is `suspended`.\n   *\n   * Events:\n   * - Emits {ComponentStatusChanged} with the new status.\n   *\n   * @param component The address of component contract. Must be a component added before.\n   * @param newStatus The new status, must be either `active`, `deprecated` or `suspended`.\n   */\n  function changeComponentStatus(\n    IPolicyPoolComponent component,\n    ComponentStatus newStatus\n  ) external onlyRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    Component storage comp = _components[component];\n    if (comp.status == ComponentStatus.inactive) revert ComponentNotFound();\n    if (newStatus == ComponentStatus.active || newStatus == ComponentStatus.deprecated) {\n      _access.checkRole(LEVEL1_ROLE, _msgSender());\n    } else {\n      // ComponentStatus.suspended requires GUARDIAN_ROLE\n      _access.checkRole(GUARDIAN_ROLE, _msgSender());\n    }\n    comp.status = newStatus;\n    emit ComponentStatusChanged(component, comp.kind, newStatus);\n  }\n\n  /**\n   * @dev Returns the status of a component.\n   *\n   * @param component The address of the component\n   * @return The status of the component. See {ComponentStatus}\n   */\n  function getComponentStatus(IPolicyPoolComponent component) external view returns (ComponentStatus) {\n    return _components[component].status;\n  }\n\n  function _componentStatus(address component, ComponentKind kind) internal view returns (ComponentStatus) {\n    Component storage comp = _components[IPolicyPoolComponent(component)];\n    if (comp.kind != kind) revert ComponentNotTheRightKind(IPolicyPoolComponent(component), kind);\n    return comp.status;\n  }\n\n  function _requireCompActive(address component, ComponentKind kind) internal view {\n    if (_componentStatus(component, kind) != ComponentStatus.active) revert ComponentNotFoundOrNotActive();\n  }\n\n  function _requireCompActiveOrDeprecated(address component, ComponentKind kind) internal view {\n    ComponentStatus status = _componentStatus(component, kind);\n    if (status != ComponentStatus.active && status != ComponentStatus.deprecated)\n      revert ComponentMustBeActiveOrDeprecated();\n  }\n\n  function deposit(IEToken eToken, uint256 amount) external override whenNotPaused {\n    _requireCompActive(address(eToken), ComponentKind.eToken);\n    uint256 balanceBefore = _currency.balanceOf(address(eToken));\n    _currency.safeTransferFrom(_msgSender(), address(eToken), amount);\n    eToken.deposit(_msgSender(), _currency.balanceOf(address(eToken)) - balanceBefore);\n  }\n\n  function withdraw(IEToken eToken, uint256 amount) external override whenNotPaused returns (uint256) {\n    _requireCompActiveOrDeprecated(address(eToken), ComponentKind.eToken);\n    return eToken.withdraw(_msgSender(), amount);\n  }\n\n  function newPolicy(\n    Policy.PolicyData memory policy,\n    address payer,\n    address policyHolder,\n    uint96 internalId\n  ) external override whenNotPaused returns (uint256) {\n    // Checks\n    IRiskModule rm = policy.riskModule;\n    if (address(rm) != _msgSender()) revert OnlyRiskModuleAllowed();\n    _requireCompActive(address(rm), ComponentKind.riskModule);\n    IPremiumsAccount pa = rm.premiumsAccount();\n    _requireCompActive(address(pa), ComponentKind.premiumsAccount);\n\n    // Effects\n    policy.id = makePolicyId(rm, internalId);\n    require(_policies[policy.id] == bytes32(0), \"Policy already exists\");\n    _policies[policy.id] = policy.hash();\n    _safeMint(policyHolder, policy.id, \"\");\n\n    // Interactions\n    pa.policyCreated(policy);\n\n    // Distribute the premium\n    _currency.safeTransferFrom(payer, address(pa), policy.purePremium);\n    if (policy.srCoc > 0) _currency.safeTransferFrom(payer, address(pa.seniorEtk()), policy.srCoc);\n    if (policy.jrCoc > 0) _currency.safeTransferFrom(payer, address(pa.juniorEtk()), policy.jrCoc);\n    _currency.safeTransferFrom(payer, _treasury, policy.ensuroCommission);\n    if (policy.partnerCommission > 0 && payer != rm.wallet())\n      _currency.safeTransferFrom(payer, rm.wallet(), policy.partnerCommission);\n    /**\n     * This code does up to 5 ERC20 transfers. This can be avoided to reduce the gas cost, by implementing delayed\n     * transfers. This might be considered in the future, but to avoid increasing the complexity and since so far we\n     * operate on low gas-cost blockchains, we keep it as it is.\n     */\n\n    emit NewPolicy(rm, policy);\n    return policy.id;\n  }\n\n  function replacePolicy(\n    Policy.PolicyData memory oldPolicy,\n    Policy.PolicyData memory newPolicy_,\n    address payer,\n    uint96 internalId\n  ) external override whenNotPaused returns (uint256) {\n    // Checks\n    _validatePolicy(oldPolicy);\n    IRiskModule rm = oldPolicy.riskModule;\n    if (address(rm) != _msgSender()) revert OnlyRiskModuleAllowed();\n    _requireCompActive(address(rm), ComponentKind.riskModule);\n    IPremiumsAccount pa = rm.premiumsAccount();\n    _requireCompActive(address(pa), ComponentKind.premiumsAccount);\n    require(oldPolicy.expiration > uint40(block.timestamp), \"Old policy is expired\");\n    require(oldPolicy.start == newPolicy_.start, \"Both policies must have the same starting date\");\n    require(\n      oldPolicy.payout <= newPolicy_.payout &&\n        oldPolicy.purePremium <= newPolicy_.purePremium &&\n        oldPolicy.ensuroCommission <= newPolicy_.ensuroCommission &&\n        oldPolicy.jrCoc <= newPolicy_.jrCoc &&\n        oldPolicy.srCoc <= newPolicy_.srCoc &&\n        oldPolicy.jrScr <= newPolicy_.jrScr &&\n        oldPolicy.srScr <= newPolicy_.srScr &&\n        oldPolicy.partnerCommission <= newPolicy_.partnerCommission &&\n        oldPolicy.expiration <= newPolicy_.expiration &&\n        rm == newPolicy_.riskModule,\n      \"New policy must be greater or equal than old policy\"\n    );\n\n    // Effects\n    newPolicy_.id = makePolicyId(rm, internalId);\n    require(_policies[newPolicy_.id] == bytes32(0), \"Policy already exists\");\n    _policies[newPolicy_.id] = newPolicy_.hash();\n    address policyHolder = ownerOf(oldPolicy.id);\n    _safeMint(policyHolder, newPolicy_.id, \"\");\n    delete _policies[oldPolicy.id];\n\n    // Interactions\n    pa.policyReplaced(oldPolicy, newPolicy_);\n\n    // Distribute the premium\n    uint256 aux = newPolicy_.purePremium - oldPolicy.purePremium;\n    if (aux > 0) _currency.safeTransferFrom(payer, address(pa), aux);\n    aux = newPolicy_.srCoc - oldPolicy.srCoc;\n    if (aux > 0) _currency.safeTransferFrom(payer, address(pa.seniorEtk()), aux);\n    aux = newPolicy_.jrCoc - oldPolicy.jrCoc;\n    if (aux > 0) _currency.safeTransferFrom(payer, address(pa.juniorEtk()), aux);\n    aux = newPolicy_.ensuroCommission - oldPolicy.ensuroCommission;\n    if (aux > 0) _currency.safeTransferFrom(payer, _treasury, aux);\n    aux = newPolicy_.partnerCommission - oldPolicy.partnerCommission;\n    if (aux > 0 && payer != rm.wallet()) _currency.safeTransferFrom(payer, rm.wallet(), aux);\n    /**\n     * This code does up to 5 ERC20 transfers. This can be avoided to reduce the gas cost, by implementing delayed\n     * transfers. This might be considered in the future, but to avoid increasing the complexity and since so far we\n     * operate on low gas-cost blockchains, we keep it as it is.\n     */\n\n    emit NewPolicy(rm, newPolicy_);\n    emit PolicyReplaced(rm, oldPolicy.id, newPolicy_.id);\n    _notifyReplacement(oldPolicy.id, newPolicy_.id);\n    return newPolicy_.id;\n  }\n\n  function _validatePolicy(Policy.PolicyData memory policy) internal view {\n    require(policy.id != 0 && policy.hash() == _policies[policy.id], \"Policy not found\");\n  }\n\n  function makePolicyId(IRiskModule rm, uint96 internalId) public pure returns (uint256) {\n    return (uint256(uint160(address(rm))) << 96) + internalId;\n  }\n\n  function expirePolicy(Policy.PolicyData calldata policy) external override whenNotPaused {\n    require(policy.expiration <= block.timestamp, \"Policy not expired yet\");\n    return _resolvePolicy(policy, 0, true);\n  }\n\n  function expirePolicies(Policy.PolicyData[] calldata policies) external whenNotPaused {\n    for (uint256 i = 0; i < policies.length; i++) {\n      require(policies[i].expiration <= block.timestamp, \"Policy not expired yet\");\n      _resolvePolicy(policies[i], 0, true);\n    }\n  }\n\n  function resolvePolicy(Policy.PolicyData calldata policy, uint256 payout) external override whenNotPaused {\n    return _resolvePolicy(policy, payout, false);\n  }\n\n  function resolvePolicyFullPayout(\n    Policy.PolicyData calldata policy,\n    bool customerWon\n  ) external override whenNotPaused {\n    return _resolvePolicy(policy, customerWon ? policy.payout : 0, false);\n  }\n\n  function isActive(uint256 policyId) external view override returns (bool) {\n    return _policies[policyId] != bytes32(0);\n  }\n\n  function getPolicyHash(uint256 policyId) external view override returns (bytes32) {\n    return _policies[policyId];\n  }\n\n  /**\n   * @dev Internal function that handles the different alternative resolutions for a policy, with or without payout and\n   * expiration.\n   *\n   * Events:\n   * - Emits {PolicyResolved} with the payout\n   *\n   * @param policy A policy created with {Policy-initialize}\n   * @param payout The amount to paid to the policyholder\n   * @param expired True for expiration resolution (`payout` must be 0)\n   */\n  function _resolvePolicy(Policy.PolicyData memory policy, uint256 payout, bool expired) internal {\n    // Checks\n    _validatePolicy(policy);\n    IRiskModule rm = policy.riskModule;\n    if (!expired && address(rm) != _msgSender()) revert OnlyRiskModuleAllowed();\n    require(payout == 0 || policy.expiration > block.timestamp, \"Can't pay expired policy\");\n    _requireCompActiveOrDeprecated(address(rm), ComponentKind.riskModule);\n\n    require(payout <= policy.payout, \"payout > policy.payout\");\n\n    bool customerWon = payout > 0;\n\n    IPremiumsAccount pa = rm.premiumsAccount();\n    _requireCompActiveOrDeprecated(address(pa), ComponentKind.premiumsAccount);\n    // Effects\n    delete _policies[policy.id];\n    // Interactions\n    if (customerWon) {\n      address policyOwner = ownerOf(policy.id);\n      pa.policyResolvedWithPayout(policyOwner, policy, payout);\n    } else {\n      pa.policyExpired(policy);\n    }\n\n    rm.releaseExposure(policy.payout);\n\n    emit PolicyResolved(policy.riskModule, policy.id, payout);\n    if (payout > 0) {\n      _notifyPayout(policy.id, payout);\n    } else {\n      _notifyExpiration(policy.id);\n    }\n  }\n\n  /**\n   * @dev Notifies the payout with a callback if the policyholder is a contract and implementes the IPolicyHolder interface.\n   * Only reverts if the policyholder contract explicitly reverts or it doesn't return the IPolicyHolder.onPayoutReceived selector.\n   */\n  function _notifyPayout(uint256 policyId, uint256 payout) internal {\n    address customer = ownerOf(policyId);\n    if (!AddressUpgradeable.isContract(customer)) return;\n    if (!ERC165Checker.supportsInterface(customer, type(IPolicyHolder).interfaceId)) return;\n\n    bytes4 retval = IPolicyHolder(customer).onPayoutReceived(_msgSender(), address(this), policyId, payout);\n    if (retval != IPolicyHolder.onPayoutReceived.selector) revert InvalidNotificationResponse(retval);\n  }\n\n  /**\n   * @dev Notifies the expiration with a callback if the policyholder is a contract. Never reverts.\n   */\n  function _notifyExpiration(uint256 policyId) internal {\n    address customer = ownerOf(policyId);\n    if (!AddressUpgradeable.isContract(customer)) return;\n    if (!ERC165Checker.supportsInterface(customer, type(IPolicyHolder).interfaceId)) return;\n\n    try IPolicyHolder(customer).onPolicyExpired{gas: HOLDER_GAS_LIMIT}(_msgSender(), address(this), policyId) returns (\n      bytes4\n    ) {\n      return;\n    } catch {\n      emit ExpirationNotificationFailed(policyId, IPolicyHolder(customer));\n      return;\n    }\n  }\n\n  /**\n   * @dev Notifies the replacement with a callback if the policyholder is a contract. Never reverts.\n   */\n  function _notifyReplacement(uint256 oldPolicyId, uint256 newPolicyId) internal {\n    address customer = ownerOf(oldPolicyId);\n    if (!AddressUpgradeable.isContract(customer)) return;\n    if (!ERC165Checker.supportsInterface(customer, type(IPolicyHolderV2).interfaceId)) return;\n\n    bytes4 retval = IPolicyHolderV2(customer).onPolicyReplaced(_msgSender(), address(this), oldPolicyId, newPolicyId);\n    // PolicyHolder can revert and cancel the policy replacement\n    if (retval != IPolicyHolderV2.onPolicyReplaced.selector) revert InvalidNotificationResponse(retval);\n  }\n\n  /**\n   * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n   * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n   * by default, can be modified calling {setBaseURI}.\n   */\n  function _baseURI() internal view virtual override returns (string memory) {\n    return _nftBaseURI;\n  }\n\n  /**\n   * @dev Changes the baseURI of the minted policy NFTs\n   *\n   * Requirements:\n   * - Must be called by a user with the {LEVEL2_ROLE}.\n   *\n   * Events:\n   * - Emits {ComponentChanged} with action = setBaseURI and the address of the caller.\n   */\n  function setBaseURI(string memory nftBaseURI_) external onlyRole(LEVEL2_ROLE) {\n    _nftBaseURI = nftBaseURI_;\n    emit ComponentChanged(IAccessManager.GovernanceActions.setBaseURI, _msgSender());\n  }\n\n  function _beforeTokenTransfer(\n    address from,\n    address to,\n    uint256 tokenId,\n    uint256 batchSize\n  ) internal override whenNotPaused {\n    super._beforeTokenTransfer(from, to, tokenId, batchSize);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[46] private __gap;\n}\n"},"contracts/PolicyPoolComponent.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {UUPSUpgradeable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPolicyPoolComponent} from \"./interfaces/IPolicyPoolComponent.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {PausableUpgradeable} from \"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\";\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\n\n/**\n * @title Base class for PolicyPool components\n * @dev This is the base class of all the components of the protocol that are linked to the PolicyPool and created\n *      after it.\n *      Holds the reference to _policyPool as immutable, also provides access to common admin roles:\n *      - LEVEL1_ROLE: High impact changes like upgrades, adding or removing components or other critical operations\n *      - LEVEL2_ROLE: Mid-impact changes like changing some parameters\n *      - GUARDIAN_ROLE: For emergency operations oriented to protect the protocol in case of attacks or hacking.\n *\n *      This contract also keeps track of the tweaks to avoid two tweaks of the same type are done in a short period.\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nabstract contract PolicyPoolComponent is UUPSUpgradeable, PausableUpgradeable, IPolicyPoolComponent {\n  using WadRayMath for uint256;\n\n  bytes32 internal constant GUARDIAN_ROLE = keccak256(\"GUARDIAN_ROLE\");\n  bytes32 internal constant LEVEL1_ROLE = keccak256(\"LEVEL1_ROLE\");\n  bytes32 internal constant LEVEL2_ROLE = keccak256(\"LEVEL2_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IPolicyPool internal immutable _policyPool;\n\n  event GovernanceAction(IAccessManager.GovernanceActions indexed action, uint256 value);\n  event ComponentChanged(IAccessManager.GovernanceActions indexed action, address value);\n\n  error NoZeroPolicyPool();\n  error UpgradeCannotChangePolicyPool();\n  error OnlyPolicyPool();\n\n  modifier onlyPolicyPool() {\n    require(_msgSender() == address(_policyPool), OnlyPolicyPool());\n    _;\n  }\n\n  modifier onlyComponentRole(bytes32 role) {\n    _policyPool.access().checkComponentRole(address(this), role, _msgSender(), false);\n    _;\n  }\n\n  modifier onlyGlobalOrComponentRole(bytes32 role) {\n    _policyPool.access().checkComponentRole(address(this), role, _msgSender(), true);\n    _;\n  }\n\n  modifier onlyGlobalOrComponentRole2(bytes32 role1, bytes32 role2) {\n    _policyPool.access().checkComponentRole2(address(this), role1, role2, _msgSender(), true);\n    _;\n  }\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IPolicyPool policyPool_) {\n    if (address(policyPool_) == address(0)) revert NoZeroPolicyPool();\n    _disableInitializers();\n    _policyPool = policyPool_;\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __PolicyPoolComponent_init() internal onlyInitializing {\n    __UUPSUpgradeable_init();\n    __Pausable_init();\n  }\n\n  function _authorizeUpgrade(\n    address newImpl\n  ) internal view override onlyGlobalOrComponentRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    _upgradeValidations(newImpl);\n  }\n\n  function _upgradeValidations(address newImpl) internal view virtual {\n    if (IPolicyPoolComponent(newImpl).policyPool() != _policyPool) revert UpgradeCannotChangePolicyPool();\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return interfaceId == type(IERC165).interfaceId || interfaceId == type(IPolicyPoolComponent).interfaceId;\n  }\n\n  function pause() public onlyGlobalOrComponentRole(GUARDIAN_ROLE) {\n    _pause();\n  }\n\n  function unpause() public onlyGlobalOrComponentRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    _unpause();\n  }\n\n  function policyPool() public view override returns (IPolicyPool) {\n    return _policyPool;\n  }\n\n  function currency() public view returns (IERC20Metadata) {\n    return _policyPool.currency();\n  }\n\n  function hasPoolRole(bytes32 role) internal view returns (bool) {\n    return _policyPool.access().hasComponentRole(address(this), role, _msgSender(), true);\n  }\n\n  function _isTweakWad(uint256 oldValue, uint256 newValue, uint256 maxTweak) internal pure returns (bool) {\n    if (oldValue == newValue) return true;\n    if (oldValue == 0) return maxTweak >= WadRayMath.WAD;\n    if (newValue == 0) return false;\n    if (oldValue < newValue) {\n      return (newValue.wadDiv(oldValue) - WadRayMath.WAD) <= maxTweak;\n    } else {\n      return (WadRayMath.WAD - newValue.wadDiv(oldValue)) <= maxTweak;\n    }\n  }\n\n  // solhint-disable-next-line no-empty-blocks\n  function _validateParameters() internal view virtual {} // Must be reimplemented with specific validations\n\n  function _parameterChanged(IAccessManager.GovernanceActions action, uint256 value) internal {\n    _validateParameters();\n    emit GovernanceAction(action, value);\n  }\n\n  function _componentChanged(IAccessManager.GovernanceActions action, address value) internal {\n    _validateParameters();\n    emit ComponentChanged(action, value);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"},"contracts/PremiumsAccount.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {SignedMath} from \"@openzeppelin/contracts/utils/math/SignedMath.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IEToken} from \"./interfaces/IEToken.sol\";\nimport {Reserve} from \"./Reserve.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {Policy} from \"./Policy.sol\";\nimport {IEToken} from \"./interfaces/IEToken.sol\";\nimport {IAssetManager} from \"./interfaces/IAssetManager.sol\";\n\n/**\n * @title Ensuro Premiums Account\n * @dev This contract holds the pure premiums of a set of risk modules. The pure premiums is the part of the premium\n * that is expected to cover the losses. The contract keeps track of the pure premiums of the active policies\n * (_activePurePremiums) and the surplus or deficit generated by the finalized policies (pure premiums collected -\n * losses).\n *\n * Collaborates with a junior {EToken} and a senior {EToken} that act as lenders when the premiums aren't enough to\n * cover the losses.\n *\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract PremiumsAccount is IPremiumsAccount, Reserve {\n  using Policy for Policy.PolicyData;\n  using WadRayMath for uint256;\n  using SafeERC20 for IERC20Metadata;\n  using SafeCast for uint256;\n\n  bytes32 public constant WITHDRAW_WON_PREMIUMS_ROLE = keccak256(\"WITHDRAW_WON_PREMIUMS_ROLE\");\n  bytes32 public constant REPAY_LOANS_ROLE = keccak256(\"REPAY_LOANS_ROLE\");\n  uint256 internal constant FOUR_DECIMAL_TO_WAD = 1e14;\n  uint16 internal constant HUNDRED_PERCENT = 1e4;\n\n  /**\n   * @dev The Junior eToken is the first {EToken} to which the PremiumsAccount will go for credit when it runs out of\n   * money. Optional (address(0)).\n   */\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IEToken internal immutable _juniorEtk;\n\n  /**\n   * @dev The Senior eToken is the second {EToken} to which the PremiumsAccount will go for credit, after trying before\n   * with the junior eToken, when it runs out of money. Optional (address(0)).\n   */\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IEToken internal immutable _seniorEtk;\n\n  /**\n   * @dev The active pure premiums field keeps track of the pure premiums collected by the active policies of risk\n   * modules linked with this PremiumsAccount.\n   */\n  uint256 internal _activePurePremiums; // sum of pure-premiums of active policies - In Wad\n\n  /**\n   * @dev The surplus field keeps track of the surplus or deficit (when negative) of the actual payouts made by the\n   * PremiumsAccount versus the collected pure premiums. On the negative side, it has a limit defined by `_maxDeficit()`,\n   * after that limit, internal loans are taken from the eTokens.\n   */\n  int256 internal _surplus;\n\n  /**\n   * @dev This struct has the parameters that can be modified by governance\n   * @member deficitRatio A value between [0, 1] that defines the percentage of active pure premiums that can be used\n   *                      to cover losses.\n   * @member assetManager This is the implementation contract that manages the PremiumsAccount's funds. See\n   *                      {IAssetManager}\n   * @member jrLoanLimit  This is the maximum amount that can be borrowed from the Junior eToken (without decimals)\n   * @member srLoanLimit  This is the maximum amount that can be borrowed from the Senior eToken (without decimals)\n   */\n  struct PackedParams {\n    uint16 deficitRatio;\n    IAssetManager assetManager;\n    uint32 jrLoanLimit;\n    uint32 srLoanLimit;\n  }\n\n  PackedParams internal _params;\n\n  /**\n   * Premiums can come in (for \"free\", without liability) with receiveGrant.\n   * And can come out (withdrawed to treasury) with withdrawWonPremiums\n   *\n   * @param moneyIn Indicates if money came in or out (false).\n   * @param value The amount of money received or given\n   */\n  event WonPremiumsInOut(bool moneyIn, uint256 value);\n\n  /**\n   * @dev Modifier to make a function callable only by a certain global or component role.\n   * In addition to checking the sender's role, `address(0)` 's role is also\n   * considered. Granting a role to `address(0)` (at global or component level) is equivalent\n   * to enabling this role for everyone.\n   */\n  modifier onlyGlobalOrComponentOrOpenRole(bytes32 role) {\n    if (!_policyPool.access().hasComponentRole(address(this), role, address(0), true)) {\n      _policyPool.access().checkComponentRole(address(this), role, _msgSender(), true);\n    }\n    _;\n  }\n\n  /**\n   * @dev Constructor of the contract, sets the immutable fields.\n   *\n   * @param juniorEtk_ Address of the Junior EToken (first loss lender). `address(0)` if not present.\n   * @param seniorEtk_ Address of the Senior EToken (2nd loss lender). `address(0)` if not present.\n   */\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IPolicyPool policyPool_, IEToken juniorEtk_, IEToken seniorEtk_) Reserve(policyPool_) {\n    _juniorEtk = juniorEtk_;\n    _seniorEtk = seniorEtk_;\n  }\n\n  /**\n   * @dev Initializes the PremiumsAccount\n   */\n  function initialize() public initializer {\n    __PremiumsAccount_init();\n  }\n\n  /**\n   * @dev Initializes the PremiumsAccount (to be called by subclasses)\n   */\n  // solhint-disable-next-line func-name-mixedcase\n  function __PremiumsAccount_init() internal onlyInitializing {\n    __Reserve_init();\n    __PremiumsAccount_init_unchained();\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __PremiumsAccount_init_unchained() internal onlyInitializing {\n    /*\n    _activePurePremiums = 0;\n    */\n    _params = PackedParams({\n      deficitRatio: HUNDRED_PERCENT,\n      assetManager: IAssetManager(address(0)),\n      jrLoanLimit: 0,\n      srLoanLimit: 0\n    });\n    _validateParameters();\n  }\n\n  function _upgradeValidations(address newImpl) internal view virtual override {\n    super._upgradeValidations(newImpl);\n    IPremiumsAccount newPA = IPremiumsAccount(newImpl);\n    require(\n      newPA.juniorEtk() == _juniorEtk || address(_juniorEtk) == address(0),\n      \"Can't upgrade changing the Junior ETK unless to non-zero\"\n    );\n    require(\n      newPA.seniorEtk() == _seniorEtk || address(_seniorEtk) == address(0),\n      \"Can't upgrade changing the Senior ETK unless to non-zero\"\n    );\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(IPremiumsAccount).interfaceId;\n  }\n\n  function assetManager() public view override returns (IAssetManager) {\n    return _params.assetManager;\n  }\n\n  function _setAssetManager(IAssetManager newAM) internal override {\n    _params.assetManager = newAM;\n  }\n\n  /**\n   * @dev This is called by the {Reserve} base class to record the earnings generated by the asset management.\n   *\n   * @param earningsOrLosses Indicates the amount earned since last time earnings where recorded.\n   * - If positive, repays the loans and accumulates the rest in the surplus.\n   * - If negative (losses) substracts it from surplus. It never can exceed _maxDeficit and doesn't takes\n   *   loans to cover asset losses.\n   */\n  function _assetEarnings(int256 earningsOrLosses) internal override {\n    if (earningsOrLosses >= 0) {\n      _storePurePremiumWon(uint256(earningsOrLosses));\n    } else {\n      require(_payFromPremiums(-earningsOrLosses) == 0, \"Losses can't exceed maxDeficit\");\n    }\n  }\n\n  function _validateParameters() internal view override {\n    require(\n      _params.deficitRatio <= HUNDRED_PERCENT && _params.deficitRatio >= 0,\n      \"Validation: deficitRatio must be <= 1\"\n    );\n  }\n\n  function purePremiums() external view override returns (uint256) {\n    return uint256(int256(_activePurePremiums) + _surplus);\n  }\n\n  /**\n   * @dev Returns the total amount of pure premiums that were collected by the active policies of the risk modules\n   * linked to this PremiumsAccount.\n   */\n  function activePurePremiums() external view returns (uint256) {\n    return _activePurePremiums;\n  }\n\n  /**\n   * @dev Returns the surplus between pure premiums collected and payouts of finalized policies. Returns 0 if no surplus\n   * or deficit.\n   */\n  function wonPurePremiums() external view returns (uint256) {\n    return _surplus >= 0 ? uint256(_surplus) : 0;\n  }\n\n  /**\n   * @dev Returns the amount of active pure premiums that was used to cover payouts of finalized policies (in excess of\n   * collected pure premiums). This is limited by `_maxDeficit()`\n   */\n  function borrowedActivePP() external view returns (uint256) {\n    return _surplus >= 0 ? 0 : uint256(-_surplus);\n  }\n\n  /**\n   * @dev Returns the surplus between pure premiums collected and payouts of finalized policies. Losses where more than\n   * premiums collected, returns a negative number that indicates the amount of the active pure premiums that was used\n   * to cover finalized premiums.\n   */\n  function surplus() external view returns (int256) {\n    return _surplus;\n  }\n\n  /**\n   * @dev Returns the amount of funds available to cover losses or repay eToken loans.\n   */\n  function fundsAvailable() public view returns (uint256) {\n    // This is guaranteed to be positive because _maxDeficit is negative and always gte _surplus in absolute value\n    return uint256(_surplus - _maxDeficit(deficitRatio()));\n  }\n\n  function seniorEtk() external view override returns (IEToken) {\n    return _seniorEtk;\n  }\n\n  function juniorEtk() external view override returns (IEToken) {\n    return _juniorEtk;\n  }\n\n  /**\n   * @dev Returns the maximum deficit that's supported by the PremiumsAccount. If more money is needed, it must take\n   * loans from the eTokens. The value is calculated as a fraction of the active pure premiums. The fraction is\n   * regulated by the `deficitRatio` parameter that indicates the percentage of the active pure premiums that can be\n   * used to cover payouts of finalized policies. In many cases is fine to use the active pure premiums to cover the\n   * losses because in most cases the policies with payout are triggered long time before the policies without payout.\n   * But this also can be dangerous because it can be postponing the losses that should impact on liquidity providers.\n   *\n   * @param ratio The ratio used in the calculation of the deficit. It's the deficitRatio parameter (whether the current\n   * one or the new one when it's being modified).\n   */\n  function _maxDeficit(uint256 ratio) internal view returns (int256) {\n    return -int256(_activePurePremiums.wadMul(ratio));\n  }\n\n  function _toAmount(uint32 value) internal view returns (uint256) {\n    // 0 decimals to amount decimals\n    return uint256(value) * 10 ** currency().decimals();\n  }\n\n  function _toZeroDecimals(uint256 amount) internal view returns (uint32) {\n    // Removes the decimals from the amount\n    return (amount / 10 ** currency().decimals()).toUint32();\n  }\n\n  /**\n   * @dev Returns the percentage of the active pure premiums that can be used to cover losses of finalized policies.\n   */\n  function deficitRatio() public view returns (uint256) {\n    return uint256(_params.deficitRatio) * FOUR_DECIMAL_TO_WAD; // 4 -> 18 decimals\n  }\n\n  /**\n   * @dev Returns the limit on the Junior eToken loans (infinite if _params.jrLoanLimit == 0)\n   */\n  function jrLoanLimit() public view returns (uint256) {\n    return _params.jrLoanLimit == 0 ? type(uint256).max : _toAmount(_params.jrLoanLimit);\n  }\n\n  /**\n   * @dev Returns the limit on the Senior eToken loans (infinite if _params.srLoanLimit == 0)\n   */\n  function srLoanLimit() public view returns (uint256) {\n    return _params.srLoanLimit == 0 ? type(uint256).max : _toAmount(_params.srLoanLimit);\n  }\n\n  /**\n   * @dev Changes the `deficitRatio` parameter.\n   *\n   * Requirements:\n   * - onlyGlobalOrComponentRole(LEVEL2_ROLE)\n   *\n   * Events:\n   * - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\n   *\n   * @param adjustment If true and the new ratio leaves `_surplus < -_maxDeficit()`, it adjusts the _surplus to the new\n   *                   `_maxDeficit()` and borrows the difference from the eTokens.\n   *                   If false and the new ratio leaves `_surplus < -_maxDeficit()`, the operation is reverted.\n   */\n  function setDeficitRatio(uint256 newRatio, bool adjustment) external onlyGlobalOrComponentRole(LEVEL2_ROLE) {\n    uint16 truncatedRatio = (newRatio / FOUR_DECIMAL_TO_WAD).toUint16();\n    require(uint256(truncatedRatio) * FOUR_DECIMAL_TO_WAD == newRatio, \"Validation: only up to 4 decimals allowed\");\n\n    int256 maxDeficit = _maxDeficit(newRatio);\n    require(adjustment || _surplus >= maxDeficit, \"Validation: surplus must be >= maxDeficit\");\n    _params.deficitRatio = truncatedRatio;\n    _validateParameters();\n\n    IAccessManager.GovernanceActions action = IAccessManager.GovernanceActions.setDeficitRatio;\n    if (_surplus < maxDeficit) {\n      // Do the adjustment\n      uint256 borrow = uint256(-_surplus + maxDeficit);\n      _surplus = maxDeficit;\n      _borrowFromEtk(borrow, address(this), address(_juniorEtk) != address(0));\n      action = IAccessManager.GovernanceActions.setDeficitRatioWithAdjustment;\n    }\n    _parameterChanged(action, newRatio);\n  }\n\n  /**\n   * @dev Changes the `jrLoanLimit` or `srLoanLimit` parameter.\n   *\n   * Requirements:\n   * - onlyGlobalOrComponentRole(LEVEL2_ROLE)\n   *\n   * Events:\n   * - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\n   *\n   * @param newLimitJr     The new limit to be set for the loans taken from the Junior eToken.\n                           If newLimitJr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded.\n   * @param newLimitSr     The new limit to be set for the loans taken from the Senior eToken.\n                           If newLimitSr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded.\n   */\n  function setLoanLimits(uint256 newLimitJr, uint256 newLimitSr) external onlyGlobalOrComponentRole(LEVEL2_ROLE) {\n    if (newLimitJr != type(uint256).max) {\n      _params.jrLoanLimit = _toZeroDecimals(newLimitJr);\n      require(_toAmount(_params.jrLoanLimit) == newLimitJr, \"Validation: no decimals allowed\");\n      _parameterChanged(IAccessManager.GovernanceActions.setJrLoanLimit, newLimitJr);\n    }\n    if (newLimitSr != type(uint256).max) {\n      _params.srLoanLimit = _toZeroDecimals(newLimitSr);\n      require(_toAmount(_params.srLoanLimit) == newLimitSr, \"Validation: no decimals allowed\");\n      _parameterChanged(IAccessManager.GovernanceActions.setSrLoanLimit, newLimitSr);\n    }\n  }\n\n  /**\n   * @dev Internal function called when money in the PremiumsAccount is not enough and we need to borrow from the\n   * eTokens.\n   *\n   * @param borrow The amount to borrow.\n   * @param receiver The address that will receive the money of the loan. Usually is the policy holder if this is called\n   *                 in the context of a policy payout.\n   * @param jrEtk If true it indicates that the loan is asked first from the junior eToken.\n   */\n  function _borrowFromEtk(uint256 borrow, address receiver, bool jrEtk) internal {\n    uint256 left = borrow;\n    if (jrEtk) {\n      if (_juniorEtk.getLoan(address(this)) + borrow <= jrLoanLimit()) {\n        left = _juniorEtk.internalLoan(borrow, receiver);\n      } else if (_juniorEtk.getLoan(address(this)) < jrLoanLimit()) {\n        // Partial loan\n        uint256 loanExcess = _juniorEtk.getLoan(address(this)) + borrow - jrLoanLimit();\n        left = loanExcess + _juniorEtk.internalLoan(borrow - loanExcess, receiver);\n      }\n    }\n    if (left > NEGLIGIBLE_AMOUNT) {\n      // Consume Senior Pool only up to SCR\n      if (_seniorEtk.getLoan(address(this)) + left < srLoanLimit()) {\n        left = _seniorEtk.internalLoan(left, receiver);\n      } // in the senior eToken doesn't make sense to handle partial loan\n      require(left <= NEGLIGIBLE_AMOUNT, \"Don't know where to source the rest of the money\");\n    }\n  }\n\n  /**\n   * @dev Updates the `_surplus` field with the payment made. Since the _surplus can never exceed `_maxDeficit()`,\n   * returns the remaining amount in case something can't be paid from the PremiumsAccount.\n   *\n   * @param toPay The amount to pay.\n   * @return The amount that couldn't be paid from the premiums account.\n   */\n  function _payFromPremiums(int256 toPay) internal returns (uint256) {\n    int256 newSurplus = _surplus - toPay;\n    int256 maxDeficit = _maxDeficit(deficitRatio());\n    if (newSurplus >= maxDeficit) {\n      _surplus = newSurplus;\n      return 0;\n    }\n    _surplus = maxDeficit;\n    return uint256(-newSurplus + maxDeficit);\n  }\n\n  /**\n   * @dev Stores an earned pure premium. Adds to the surplus, increasing the surplus if it was positive or reducing the\n   * deficit if it was negative.\n   *\n   * @param purePremiumWon The amount earned\n   */\n  function _storePurePremiumWon(uint256 purePremiumWon) internal {\n    _surplus += int256(purePremiumWon);\n  }\n\n  /**\n   *\n   * Endpoint to receive \"free money\" and inject that money into the premium pool.\n   *\n   * Can be used for example if the PolicyPool subscribes an excess loss policy with other company.\n   *\n   * Requirements:\n   * - The sender needs to approve the spending of `currency()` by this contract.\n   *\n   * Events:\n   * - Emits {WonPremiumsInOut} with moneyIn = true\n   *\n   * @param amount The amount to be transferred.\n   */\n  function receiveGrant(uint256 amount) external {\n    _storePurePremiumWon(amount);\n    currency().safeTransferFrom(_msgSender(), address(this), amount);\n    emit WonPremiumsInOut(true, amount);\n  }\n\n  /**\n   *\n   * Withdraws excess premiums (surplus) to the destination.\n   *\n   * This might be needed in some cases for example if we are deprecating the protocol or the excess premiums\n   * are needed to compensate something. Shouldn't be used. Can be disabled revoking role WITHDRAW_WON_PREMIUMS_ROLE\n   *\n   * Requirements:\n   * - onlyGlobalOrComponentRole(WITHDRAW_WON_PREMIUMS_ROLE)\n   * - _surplus > 0\n   *\n   * Events:\n   * - Emits {WonPremiumsInOut} with moneyIn = false\n   *\n   * @param amount The amount to withdraw\n   * @param destination The address that will receive the transferred funds.\n   * @return Returns the actual amount withdrawn.\n   */\n  function withdrawWonPremiums(\n    uint256 amount,\n    address destination\n  ) external onlyGlobalOrComponentRole(WITHDRAW_WON_PREMIUMS_ROLE) returns (uint256) {\n    require(destination != address(0), \"PremiumsAccount: destination cannot be the zero address\");\n    if (_surplus <= 0) {\n      amount = 0;\n    } else {\n      amount = Math.min(amount, uint256(_surplus));\n    }\n    require(amount > 0, \"No premiums to withdraw\");\n    _surplus -= int256(amount);\n    _transferTo(destination, amount);\n    emit WonPremiumsInOut(false, amount);\n    return amount;\n  }\n\n  function policyCreated(Policy.PolicyData memory policy) external override onlyPolicyPool whenNotPaused {\n    _activePurePremiums += policy.purePremium;\n    if (policy.jrScr > 0) _juniorEtk.lockScr(policy.jrScr, policy.jrInterestRate());\n    if (policy.srScr > 0) _seniorEtk.lockScr(policy.srScr, policy.srInterestRate());\n  }\n\n  function policyReplaced(\n    Policy.PolicyData memory oldPolicy,\n    Policy.PolicyData memory newPolicy\n  ) external override onlyPolicyPool whenNotPaused {\n    if (oldPolicy.srScr > 0 && newPolicy.srScr > 0) {\n      int256 diff = int256(oldPolicy.srInterestRate()) - int256(newPolicy.srInterestRate());\n      require(SignedMath.abs(diff) < 1e14, \"Interest rate can't change\");\n    }\n    if (oldPolicy.jrScr > 0 && newPolicy.jrScr > 0) {\n      int256 diff = int256(oldPolicy.jrInterestRate()) - int256(newPolicy.jrInterestRate());\n      require(SignedMath.abs(diff) < 1e14, \"Interest rate can't change\");\n    }\n    /*\n     * Supporting interest rate change is possible, but it would require complex computations.\n     * If new IR > old IR, then we must adjust positivelly to accrue the interests not accrued\n     * If new IR < old IR, then we must adjust negativelly to substract the interests accrued in excess\n     */\n    _activePurePremiums += newPolicy.purePremium - oldPolicy.purePremium;\n    if (oldPolicy.jrScr > 0) _juniorEtk.unlockScr(oldPolicy.jrScr, oldPolicy.jrInterestRate(), 0);\n    if (oldPolicy.srScr > 0) _seniorEtk.unlockScr(oldPolicy.srScr, oldPolicy.srInterestRate(), 0);\n    if (newPolicy.jrScr > 0) _juniorEtk.lockScr(newPolicy.jrScr, newPolicy.jrInterestRate());\n    if (newPolicy.srScr > 0) _seniorEtk.lockScr(newPolicy.srScr, newPolicy.srInterestRate());\n  }\n\n  function policyResolvedWithPayout(\n    address policyHolder,\n    Policy.PolicyData memory policy,\n    uint256 payout\n  ) external override onlyPolicyPool whenNotPaused {\n    _activePurePremiums -= policy.purePremium;\n    uint256 borrowFromScr = _payFromPremiums(int256(payout) - int256(policy.purePremium));\n    if (borrowFromScr != 0) {\n      _unlockScr(policy);\n      _borrowFromEtk(borrowFromScr, policyHolder, policy.jrScr > 0);\n    } else {\n      _unlockScr(policy);\n    }\n    _transferTo(policyHolder, payout - borrowFromScr);\n  }\n\n  /**\n   * @dev Internal function that calls the eTokens to lock the solvency capital when the policy is created.\n   *\n   * @param policy The policy created\n   */\n  function _unlockScr(Policy.PolicyData memory policy) internal {\n    if (policy.jrScr > 0) {\n      _juniorEtk.unlockScr(\n        policy.jrScr,\n        policy.jrInterestRate(),\n        int256(policy.jrCoc) - int256(policy.jrAccruedInterest())\n      );\n    }\n    if (policy.srScr > 0) {\n      _seniorEtk.unlockScr(\n        policy.srScr,\n        policy.srInterestRate(),\n        int256(policy.srCoc) - int256(policy.srAccruedInterest())\n      );\n    }\n  }\n\n  /**\n   * @dev Function that repays the loan(s) if fundsAvailable\n   *\n   * @return available The funds still available after repayment\n   */\n  function repayLoans()\n    external\n    onlyGlobalOrComponentOrOpenRole(REPAY_LOANS_ROLE)\n    whenNotPaused\n    returns (uint256 available)\n  {\n    available = fundsAvailable();\n    if (available != 0 && address(_seniorEtk) != address(0)) available = _repayLoan(available, _seniorEtk);\n    if (available != 0 && address(_juniorEtk) != address(0)) available = _repayLoan(available, _juniorEtk);\n    return available;\n  }\n\n  /**\n   * @dev Internal function that repays a loan taken (if any outstanding) from the an eToken\n   *\n   * @param fundsAvailable_ The amount of funds available for the repayment\n   * @param etk The eToken with the potential debt\n   * @return The excess amount of the purePremiumWon that wasn't used for the loan repayment.\n   */\n  function _repayLoan(uint256 fundsAvailable_, IEToken etk) internal returns (uint256) {\n    uint256 borrowedFromEtk = etk.getLoan(address(this));\n    if (borrowedFromEtk == 0) return fundsAvailable_;\n    uint256 repayAmount = Math.min(fundsAvailable_, borrowedFromEtk);\n    _surplus -= int256(repayAmount);\n\n    // If not enough liquidity, it deinvests from the asset manager\n    if (currency().balanceOf(address(this)) < repayAmount) {\n      /**\n       * I send `repayAmount` because the IAssetManager expects the full amount that's needed, not the missing one.\n       * It uses the value of the full amount to optimize the deinvestment leaving more liquidity if possible to avoid\n       * future deinvestment. It will only fail if it can't refill `repayAmount - currency().balanceOf(address(this))`\n       */\n      _refillWallet(repayAmount);\n    }\n    // Checks the allowance before repayment\n    if (currency().allowance(address(this), address(etk)) < repayAmount) {\n      // If I have to approve, I approve for all the pending debt (not just repayAmount), this way I avoid some\n      // future approvals.\n      currency().approve(address(etk), borrowedFromEtk);\n    }\n    etk.repayLoan(repayAmount, address(this));\n    return fundsAvailable_ - repayAmount;\n  }\n\n  function policyExpired(Policy.PolicyData memory policy) external override onlyPolicyPool whenNotPaused {\n    _activePurePremiums -= policy.purePremium;\n    _storePurePremiumWon(policy.purePremium);\n    _unlockScr(policy);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[47] private __gap;\n}\n"},"contracts/Reserve.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {Address} from \"@openzeppelin/contracts/utils/Address.sol\";\nimport {IERC20Metadata} from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IAssetManager} from \"./interfaces/IAssetManager.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {PolicyPoolComponent} from \"./PolicyPoolComponent.sol\";\n\n/**\n * @title Base contract for Ensuro cash reserves\n * @dev This contract implements the methods related with management of the reserves and payments. {EToken} and\n * {PremiumsAccount} inherit from this contract.\n *\n * These contracts have an asset manager {IAssetManager} that's a strategy contract that runs in the same context\n * (called with delegatecall) that apply some strategy to reinvest the assets managed by the contract to generate\n * additional returns.\n *\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nabstract contract Reserve is PolicyPoolComponent {\n  using SafeERC20 for IERC20Metadata;\n  using Address for address;\n\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  // solhint-disable-next-line var-name-mixedcase\n  uint256 internal immutable NEGLIGIBLE_AMOUNT; // init as 10**(decimals/2) == 0.001 USD\n\n  /**\n   * @dev Reserve constructor. Calculates NEGLIGIBLE_AMOUNT to avoid rounding errors.\n   *\n   * @param policyPool_ The {PolicyPool} where this reserve will be plugged\n   */\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IPolicyPool policyPool_) PolicyPoolComponent(policyPool_) {\n    NEGLIGIBLE_AMOUNT = 10 ** (policyPool_.currency().decimals() / 2);\n  }\n\n  /**\n   * @dev Initializes the Reserve (to be called by subclasses)\n   */\n  // solhint-disable-next-line func-name-mixedcase\n  function __Reserve_init() internal onlyInitializing {\n    __PolicyPoolComponent_init();\n  }\n\n  /**\n   * @dev Refills the reserve's balance, deinvesting from the asset manager to be able to make a payment\n   *\n   * @param amount The amount of the payment that needs to be made\n   * @return Returns the actual amount deinvested (how much the `currency().balanceof(this)` was increased). It might be\n   * more than `amount` because the asset manager might want to give more liquidity to the reserve to avoid further\n   * deinvestments. After the call, the `currency().balanceof(this)` should be greater than `amount` (unless unsolvency\n   * problem).\n   */\n  function _refillWallet(uint256 amount) internal returns (uint256) {\n    address am = address(assetManager());\n    if (am != address(0)) {\n      bytes memory result = am.functionDelegateCall(\n        abi.encodeWithSelector(IAssetManager.refillWallet.selector, amount),\n        \"Error refilling wallet\"\n      );\n      return abi.decode(result, (uint256));\n    }\n    return 0;\n  }\n\n  /**\n   * @dev Internal function that transfers money to a destination. It might need to call `_refillWallet` to deinvest\n   * some money to have enough liquidity for the payment.\n   *\n   * @param destination The destination of the transfer.\n   * @param amount The amount to be transferred.\n   */\n  function _transferTo(address destination, uint256 amount) internal {\n    require(destination != address(0), \"Reserve: transfer to the zero address\");\n    if (amount == 0) return;\n    uint256 balance = currency().balanceOf(address(this));\n    if (balance < amount) {\n      balance += _refillWallet(amount);\n      if (amount > balance) {\n        if ((amount - balance) < NEGLIGIBLE_AMOUNT) {\n          amount = balance;\n        } // else - No need to do anything since safeTransfer will fail anyway\n      }\n    }\n    currency().safeTransfer(destination, amount);\n  }\n\n  /**\n   * @dev Returns the address of the asset manager for this reserve. The asset manager is the contract that manages the\n   * funds to generate additional yields. Can be `address(0)` if no asset manager has been set.\n   */\n  function assetManager() public view virtual returns (IAssetManager);\n\n  /**\n   * @dev Internal function that needs to be implemented by child contracts because they might store the asset manager\n   * address in a different way. This function just stores the value, doesn't do any validation (validations are done on\n   * `setAssetManager`.\n   *\n   * @param newAM The address of the new asset manager for the reserve.\n   */\n  function _setAssetManager(IAssetManager newAM) internal virtual;\n\n  /**\n   * @dev Internal function that needs to be implemented by child contracts to record the earnings (or losses if\n   * negative) generated by the asset management.\n   *\n   * @param earnings The amount of earnings (or losses if negative) generated since last time the earnings were\n   * recorded.\n   */\n  function _assetEarnings(int256 earnings) internal virtual;\n\n  /**\n   * @dev Sets the asset manager for this reserve. If the reserve had previously an asset manager, it will deinvest all\n   * the funds, making all of the liquid in the reserve balance.\n   *\n   * Requirements:\n   * - The caller must have been granted of global or component roles GUARDIAN_ROLE or LEVEL1_ROLE.\n   *\n   * Events:\n   * - Emits ComponentChanged with action setAssetManager or setAssetManagerForced\n   *\n   * @param newAM The address of the new asset manager to assign to the reserve. If is `address(0)` it means the reserve\n   * will not have an asset manager. If not `address(0)` it MUST be a contract following the IAssetManager interface.\n   * @param force When a previous asset manager exists, before setting the new one, the funds are deinvested. When\n   * `force` is true, an error in the deinvestAll() operation is ignored. When `force` is false, if `deinvestAll()`\n   * fails, it reverts.\n   */\n  function setAssetManager(\n    IAssetManager newAM,\n    bool force\n  ) external onlyGlobalOrComponentRole2(GUARDIAN_ROLE, LEVEL1_ROLE) {\n    require(\n      address(newAM) == address(0) || newAM.supportsInterface(type(IAssetManager).interfaceId),\n      \"Reserve: asset manager doesn't implements the required interface\"\n    );\n    address am = address(assetManager());\n    IAccessManager.GovernanceActions action = IAccessManager.GovernanceActions.setAssetManager;\n    if (am != address(0)) {\n      if (force) {\n        // Ignores success or not\n        // solhint-disable-next-line avoid-low-level-calls\n        (bool success, bytes memory result) = am.delegatecall(\n          abi.encodeWithSelector(IAssetManager.deinvestAll.selector)\n        );\n        if (!success) {\n          action = IAccessManager.GovernanceActions.setAssetManagerForced;\n        } else {\n          _assetEarnings(abi.decode(result, (int256)));\n        }\n        /**\n         * WARNING: if you are doing a forced replacement of the AM and you want the new AM\n         * to inherit the storage (just fixing the code), make sure the code of the new AM doesn't clean\n         * the storage in the connect() method (as it is the recommended practice in normal changes of AM).\n         */\n      } else {\n        bytes memory result = am.functionDelegateCall(abi.encodeWithSelector(IAssetManager.deinvestAll.selector));\n        _assetEarnings(abi.decode(result, (int256)));\n      }\n    }\n    _setAssetManager(newAM);\n    am = address(assetManager());\n    if (am != address(0)) {\n      am.functionDelegateCall(abi.encodeWithSelector(IAssetManager.connect.selector));\n    }\n    _componentChanged(action, address(newAM));\n  }\n\n  /**\n   * @dev Calls {IAssetManager-rebalance} of the assigned asset manager (fails if no asset manager). This operation is\n   * intended to give the opportunity to rebalance the liquid and invested for better returns and/or gas optimization.\n   *\n   * - Emits {IAssetManager-MoneyInvested} or {IAssetManager-MoneyDeinvested}\n   */\n  function rebalance() public whenNotPaused {\n    address(assetManager()).functionDelegateCall(abi.encodeWithSelector(IAssetManager.rebalance.selector));\n  }\n\n  /**\n   * @dev Calls {IAssetManager-recordEarnings} of the assigned asset manager (fails if no asset manager). The asset\n   * manager will return the earnings since last time the earnings where recorded. It then calls `_assetEarnings` to\n   * reflect the earnings in the way defined for each reserve.\n   *\n   * - Emits {IAssetManager-EarningsRecorded}\n   */\n  function recordEarnings() public whenNotPaused {\n    bytes memory result = address(assetManager()).functionDelegateCall(\n      abi.encodeWithSelector(IAssetManager.recordEarnings.selector)\n    );\n    _assetEarnings(abi.decode(result, (int256)));\n  }\n\n  /**\n   * @dev Function that calls both `recordEarnings()` and `rebalance()` (in that order). Usually scheduled to run once a\n   * day by a keeper or crontask.\n   */\n  function checkpoint() external whenNotPaused {\n    recordEarnings();\n    rebalance();\n  }\n\n  /**\n   * @dev This function allows to call custom functions of the asset manager (for example for setting parameters).\n   *      This functions will be called with `delegatecall`, in the context of the reserve.\n   *\n   * Requirements:\n   * - The caller must have been granted of global or component roles LEVEL2_ROLE.\n   *\n   * @param functionCall Abi encoded function call to make.\n   * @return Returns the return value of the function called, to be decoded by the receiver.\n   */\n  function forwardToAssetManager(\n    bytes memory functionCall\n  ) external onlyGlobalOrComponentRole(LEVEL2_ROLE) returns (bytes memory) {\n    return address(assetManager()).functionDelegateCall(functionCall);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"},"contracts/RiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {PolicyPoolComponent} from \"./PolicyPoolComponent.sol\";\nimport {IRiskModule} from \"./interfaces/IRiskModule.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {IAccessManager} from \"./interfaces/IAccessManager.sol\";\nimport {Policy} from \"./Policy.sol\";\n\n/**\n * @title Ensuro Risk Module base contract\n * @dev Risk Module that keeps the configuration and is responsible for pricing and policy resolution\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nabstract contract RiskModule is IRiskModule, PolicyPoolComponent {\n  using Policy for Policy.PolicyData;\n  using WadRayMath for uint256;\n  using SafeCast for uint256;\n\n  uint256 internal constant SECONDS_IN_YEAR_WAD = 31536000e18; /* 365 * 24 * 3600 * 10e18 */\n  uint16 internal constant HOURS_PER_YEAR = 8760; /* 24 * 365 */\n\n  uint256 internal constant FOUR_DECIMAL_TO_WAD = 1e14;\n  uint16 internal constant HUNDRED_PERCENT = 1e4;\n  uint16 internal constant MIN_MOC = 5e3; // 50%\n  uint16 internal constant MAX_MOC = 4e4; // 400%\n\n  // For parameters that can be changed by the risk module provider\n  bytes32 internal constant RM_PROVIDER_ROLE = keccak256(\"RM_PROVIDER_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  IPremiumsAccount internal immutable _premiumsAccount;\n\n  string private _name;\n\n  struct PackedParams {\n    uint16 moc; // Margin Of Conservativism - factor that multiplies lossProb - 4 decimals\n    uint16 jrCollRatio; // Collateralization Ratio to compute Junior solvency as % of payout - 4 decimals\n    uint16 collRatio; // Collateralization Ratio to compute solvency requirement as % of payout - 4 decimals\n    uint16 ensuroPpFee; // % of pure premium that will go for Ensuro treasury - 4 decimals\n    uint16 ensuroCocFee; // % of CoC that will go for Ensuro treasury - 4 decimals\n    uint16 jrRoc; // Return on Capital paid to Junior LPs - Annualized Percentage - 4 decimals\n    uint16 srRoc; // Return on Capital paid to Senior LPs - Annualized Percentage - 4 decimals\n    uint32 maxPayoutPerPolicy; // Max Payout per Policy - 2 decimals\n    uint32 exposureLimit; // Max exposure (sum of payouts) to be allocated to this module - 0 decimals\n    uint16 maxDuration; // Max policy duration (in hours)\n  }\n\n  PackedParams internal _params;\n\n  uint256 internal _activeExposure; // in wad - Current exposure of active policies\n\n  address internal _wallet; // Address of the RiskModule provider\n\n  error NoZeroWallet();\n  error ExposureLimitCannotBeLessThanActiveExposure();\n  error PremiumsAccountMustBePartOfThePool();\n  error UpgradeCannotChangePremiumsAccount();\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IPolicyPool policyPool_, IPremiumsAccount premiumsAccount_) PolicyPoolComponent(policyPool_) {\n    if (PolicyPoolComponent(address(premiumsAccount_)).policyPool() != policyPool_) {\n      revert PremiumsAccountMustBePartOfThePool();\n    }\n    _premiumsAccount = premiumsAccount_;\n  }\n\n  /**\n   * @dev Initializes the RiskModule\n   * @param name_ Name of the Risk Module\n   * @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in wad)\n   * @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in wad)\n   * @param srRoc_ return on capital paid to LPs (annualized percentage - in wad)\n   * @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n   * @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n   * @param wallet_ Address of the RiskModule provider\n   */\n  // solhint-disable-next-line func-name-mixedcase\n  function __RiskModule_init(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) internal onlyInitializing {\n    __PolicyPoolComponent_init();\n    __RiskModule_init_unchained(name_, collRatio_, ensuroPpFee_, srRoc_, maxPayoutPerPolicy_, exposureLimit_, wallet_);\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function __RiskModule_init_unchained(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) internal onlyInitializing {\n    _name = name_;\n    _params = PackedParams({\n      moc: HUNDRED_PERCENT,\n      jrCollRatio: 0,\n      collRatio: _wadTo4(collRatio_),\n      ensuroPpFee: _wadTo4(ensuroPpFee_),\n      ensuroCocFee: 0,\n      jrRoc: 0,\n      srRoc: _wadTo4(srRoc_),\n      maxPayoutPerPolicy: _amountToX(2, maxPayoutPerPolicy_),\n      exposureLimit: _amountToX(0, exposureLimit_),\n      maxDuration: HOURS_PER_YEAR\n    });\n    _activeExposure = 0;\n    _wallet = wallet_;\n    _validateParameters();\n  }\n\n  function _upgradeValidations(address newImpl) internal view virtual override {\n    super._upgradeValidations(newImpl);\n    IRiskModule newRM = IRiskModule(newImpl);\n    if (newRM.premiumsAccount() != _premiumsAccount) {\n      revert UpgradeCannotChangePremiumsAccount();\n    }\n  }\n\n  /**\n   * @dev See {IERC165-supportsInterface}.\n   */\n  function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n    return super.supportsInterface(interfaceId) || interfaceId == type(IRiskModule).interfaceId;\n  }\n\n  // runs validation on RiskModule parameters\n  function _validateParameters() internal view virtual override {\n    // _maxPayoutPerPolicy no limits\n    if (exposureLimit() < _activeExposure) {\n      revert ExposureLimitCannotBeLessThanActiveExposure();\n    }\n    if (_wallet == address(0)) {\n      revert NoZeroWallet();\n    }\n    _validatePackedParams(_params);\n  }\n\n  function _validatePackedParams(PackedParams storage params_) internal view {\n    require(params_.jrCollRatio <= HUNDRED_PERCENT, \"Validation: jrCollRatio must be <=1\");\n    require(params_.collRatio <= HUNDRED_PERCENT && params_.collRatio > 0, \"Validation: collRatio must be <=1\");\n    require(params_.collRatio >= params_.jrCollRatio, \"Validation: collRatio >= jrCollRatio\");\n    require(params_.moc <= MAX_MOC && params_.moc >= MIN_MOC, \"Validation: moc must be [0.5, 4]\");\n    require(params_.ensuroPpFee <= HUNDRED_PERCENT, \"Validation: ensuroPpFee must be <= 1\");\n    require(params_.ensuroCocFee <= HUNDRED_PERCENT, \"Validation: ensuroCocFee must be <= 1\");\n    require(params_.srRoc <= HUNDRED_PERCENT, \"Validation: srRoc must be <= 1 (100%)\");\n    require(params_.jrRoc <= HUNDRED_PERCENT, \"Validation: jrRoc must be <= 1 (100%)\");\n    require(params_.exposureLimit > 0 && params_.maxPayoutPerPolicy > 0, \"Exposure and MaxPayout must be >0\");\n  }\n\n  function name() public view override returns (string memory) {\n    return _name;\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function _4toWad(uint16 value) internal pure returns (uint256) {\n    // 4 decimals to Wad (18 decimals)\n    return uint256(value) * FOUR_DECIMAL_TO_WAD;\n  }\n\n  function _wadTo4(uint256 value) internal pure returns (uint16) {\n    // Wad to 4 decimals\n    return (value / FOUR_DECIMAL_TO_WAD).toUint16();\n  }\n\n  // solhint-disable-next-line func-name-mixedcase\n  function _XtoAmount(uint8 decimals, uint32 value) internal view returns (uint256) {\n    // X decimals to currency decimals (6 for USDC)\n    return uint256(value) * 10 ** (currency().decimals() - decimals);\n  }\n\n  function _amountToX(uint8 decimals, uint256 value) internal view returns (uint32) {\n    // currency decimals to X decimals (assuming X < currency decimals)\n    return (value / 10 ** (currency().decimals() - decimals)).toUint32();\n  }\n\n  function maxPayoutPerPolicy() public view override returns (uint256) {\n    return _XtoAmount(2, _params.maxPayoutPerPolicy);\n  }\n\n  function exposureLimit() public view override returns (uint256) {\n    return _XtoAmount(0, _params.exposureLimit);\n  }\n\n  function maxDuration() public view override returns (uint256) {\n    return _params.maxDuration;\n  }\n\n  function activeExposure() public view override returns (uint256) {\n    return _activeExposure;\n  }\n\n  function wallet() public view override returns (address) {\n    return _wallet;\n  }\n\n  function setParam(Parameter param, uint256 newValue) external onlyGlobalOrComponentRole2(LEVEL1_ROLE, LEVEL2_ROLE) {\n    if (param == Parameter.moc) {\n      _params.moc = _wadTo4(newValue);\n    } else if (param == Parameter.jrCollRatio) {\n      _params.jrCollRatio = _wadTo4(newValue);\n    } else if (param == Parameter.collRatio) {\n      _params.collRatio = _wadTo4(newValue);\n    } else if (param == Parameter.ensuroPpFee) {\n      _params.ensuroPpFee = _wadTo4(newValue);\n    } else if (param == Parameter.ensuroCocFee) {\n      _params.ensuroCocFee = _wadTo4(newValue);\n    } else if (param == Parameter.jrRoc) {\n      _params.jrRoc = _wadTo4(newValue);\n    } else if (param == Parameter.srRoc) {\n      _params.srRoc = _wadTo4(newValue);\n    } else if (param == Parameter.maxPayoutPerPolicy) {\n      _params.maxPayoutPerPolicy = _amountToX(2, newValue);\n    } else if (param == Parameter.exposureLimit) {\n      require(newValue >= _activeExposure, \"Can't set exposureLimit less than active exposure\");\n      require(newValue <= exposureLimit() || hasPoolRole(LEVEL1_ROLE), \"Increase requires LEVEL1_ROLE\");\n      _params.exposureLimit = _amountToX(0, newValue);\n    } else if (param == Parameter.maxDuration) {\n      _params.maxDuration = newValue.toUint16();\n    }\n    _parameterChanged(\n      IAccessManager.GovernanceActions(uint256(IAccessManager.GovernanceActions.setMoc) + uint256(param)),\n      newValue\n    );\n  }\n\n  function params() public view virtual override returns (Params memory ret) {\n    return _unpackParams(_params);\n  }\n\n  function _unpackParams(PackedParams memory params_) internal pure returns (Params memory ret) {\n    return\n      Params({\n        moc: _4toWad(params_.moc),\n        jrCollRatio: _4toWad(params_.jrCollRatio),\n        collRatio: _4toWad(params_.collRatio),\n        ensuroPpFee: _4toWad(params_.ensuroPpFee),\n        ensuroCocFee: _4toWad(params_.ensuroCocFee),\n        jrRoc: _4toWad(params_.jrRoc),\n        srRoc: _4toWad(params_.srRoc)\n      });\n  }\n\n  function _makeInternalId(bytes32 policyData) internal pure returns (uint96) {\n    return uint96(uint256(policyData) % 2 ** 96);\n  }\n\n  function setWallet(address wallet_) external onlyComponentRole(RM_PROVIDER_ROLE) {\n    if (wallet_ == address(0)) {\n      revert NoZeroWallet();\n    }\n    _wallet = wallet_;\n    _parameterChanged(IAccessManager.GovernanceActions.setWallet, uint256(uint160(wallet_)));\n  }\n\n  function getMinimumPremium(\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration\n  ) public view virtual returns (uint256) {\n    return _getMinimumPremium(payout, lossProb, expiration, uint40(block.timestamp), params());\n  }\n\n  function _getMinimumPremium(\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    uint40 start,\n    Params memory p\n  ) internal pure returns (uint256) {\n    return Policy.getMinimumPremium(p, payout, lossProb, expiration, start).totalPremium;\n  }\n\n  /**\n   * @dev Called from child contracts to create policies (after they validated the pricing).\n   *      whenNotPaused validation must be done in the external method.\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the policyHolder\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param payer The account that pays for the premium\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param internalId An id that's unique within this module and it will be used to identify the policy\n   */\n  function _newPolicy(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address payer,\n    address onBehalfOf,\n    uint96 internalId\n  ) internal virtual returns (Policy.PolicyData memory) {\n    return _newPolicyWithParams(payout, premium, lossProb, expiration, payer, onBehalfOf, internalId, params());\n  }\n\n  /**\n   * @dev Internal method without whenNotPaused, MUST be called from other function that has this modifier\n   */\n  function _newPolicyWithParams(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address payer,\n    address onBehalfOf,\n    uint96 internalId,\n    Params memory params_\n  ) internal returns (Policy.PolicyData memory policy) {\n    uint40 now_ = uint40(block.timestamp);\n    if (premium == type(uint256).max) {\n      premium = _getMinimumPremium(payout, lossProb, expiration, now_, params_);\n    }\n    require(premium < payout, \"Premium must be less than payout\");\n    require(expiration > now_, \"Expiration must be in the future\");\n    require(((expiration - now_) / 3600) < _params.maxDuration, \"Policy exceeds max duration\");\n    require(onBehalfOf != address(0), \"Customer can't be zero address\");\n    require(\n      _policyPool.currency().allowance(payer, address(_policyPool)) >= premium,\n      \"You must allow ENSURO to transfer the premium\"\n    );\n    require(\n      payer == _msgSender() || _policyPool.currency().allowance(payer, _msgSender()) >= premium,\n      \"Payer must allow caller to transfer the premium\"\n    );\n    require(payout <= maxPayoutPerPolicy(), \"RiskModule: Payout is more than maximum per policy\");\n    policy = Policy.initialize(this, params_, premium, payout, lossProb, expiration, now_);\n    _activeExposure += policy.payout;\n    require(_activeExposure <= exposureLimit(), \"RiskModule: Exposure limit exceeded\");\n    policy.id = _policyPool.newPolicy(policy, payer, onBehalfOf, internalId);\n    return policy;\n  }\n\n  /**\n   * @dev Called from child contracts to replace policies (after they validated the pricing).\n   *      whenNotPaused validation must be done in the external method.\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the policyHolder\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param payer The account that pays for the premium\n   * @param expiration The expiration of the policy (timestamp)\n   * @param internalId An id that's unique within this module and it will be used to identify the policy\n   * @param params_ Params to use to create the new policy\n   */\n  function _replacePolicy(\n    Policy.PolicyData calldata oldPolicy,\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address payer,\n    uint96 internalId,\n    Params memory params_\n  ) internal virtual returns (Policy.PolicyData memory policy) {\n    if (premium == type(uint256).max) {\n      premium = _getMinimumPremium(payout, lossProb, expiration, oldPolicy.start, params_);\n    }\n    require(premium < payout, \"Premium must be less than payout\");\n    require(oldPolicy.expiration > uint40(block.timestamp), \"Old policy is expired\");\n    require(\n      expiration >= oldPolicy.expiration && payout >= oldPolicy.payout && premium >= oldPolicy.premium,\n      \"Policy replacement must be greater or equal than old policy\"\n    );\n    require(((expiration - oldPolicy.start) / 3600) < _params.maxDuration, \"Policy exceeds max duration\");\n    require(\n      _policyPool.currency().allowance(payer, address(_policyPool)) >= (premium - oldPolicy.premium),\n      \"You must allow ENSURO to transfer the premium\"\n    );\n    require(\n      payer == _msgSender() || _policyPool.currency().allowance(payer, _msgSender()) >= (premium - oldPolicy.premium),\n      \"Payer must allow caller to transfer the premium\"\n    );\n    require(payout <= maxPayoutPerPolicy(), \"RiskModule: Payout is more than maximum per policy\");\n    policy = Policy.initialize(this, params_, premium, payout, lossProb, expiration, oldPolicy.start);\n\n    _activeExposure += policy.payout - oldPolicy.payout;\n    require(_activeExposure <= exposureLimit(), \"RiskModule: Exposure limit exceeded\");\n\n    policy.id = _policyPool.replacePolicy(oldPolicy, policy, payer, internalId);\n    return policy;\n  }\n\n  function releaseExposure(uint256 payout) external override onlyPolicyPool {\n    // In the Python protype this function is called `remove_policy` and receives\n    // all the policy. Since we just need the amount, for performance reasons\n    // we just send the amount and the method is called releaseExposure\n    _activeExposure -= payout;\n  }\n\n  function premiumsAccount() external view override returns (IPremiumsAccount) {\n    return _premiumsAccount;\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[46] private __gap;\n}\n"},"contracts/SignedBucketRiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\n\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {Policy} from \"./Policy.sol\";\nimport {RiskModule} from \"./RiskModule.sol\";\n\n/**\n * @title SignedBucket Risk Module\n * @dev Risk Module that for policy creation verifies the different components of the price have been signed by a\n        trusted account (PRICER_ROLE). One of the components of the price is a bucket id that groups policies within\n        a risk module, with different parameters (such as collaterallization levels or fees).\n        For the resolution (resolvePolicy), it has to be called by an authorized user\n  * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract SignedBucketRiskModule is RiskModule {\n  bytes32 internal constant POLICY_CREATOR_ROLE = keccak256(\"POLICY_CREATOR_ROLE\");\n  bytes32 internal constant REPLACER_ROLE = keccak256(\"REPLACER_ROLE\");\n  bytes32 internal constant PRICER_ROLE = keccak256(\"PRICER_ROLE\");\n  bytes32 internal constant RESOLVER_ROLE = keccak256(\"RESOLVER_ROLE\");\n\n  mapping(uint256 => PackedParams) internal _buckets;\n\n  /**\n   * @dev Emitted when a new risk bucket is created (or modified).\n   * @param bucketId The identifier of the group of policies.\n   * @param params The packed parameters of the new bucket.\n   */\n  event NewBucket(uint256 indexed bucketId, Params params);\n\n  /**\n   * @dev Emitted when a risk bucket is deleted.\n   * @param bucketId The identifier of the group of policies.\n   */\n  event BucketDeleted(uint256 indexed bucketId);\n\n  /**\n   * @dev Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\n   *\n   * @param policyId The id of the policy\n   * @param policyData The value sent in `policyData` parameter that's the hash of the off-chain stored data.\n   */\n  event NewSignedPolicy(uint256 indexed policyId, bytes32 policyData);\n\n  error QuoteExpired();\n  error BucketCannotBeZero();\n  error BucketNotFound();\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(IPolicyPool policyPool_, IPremiumsAccount premiumsAccount_) RiskModule(policyPool_, premiumsAccount_) {}\n\n  /**\n   * @dev Initializes the RiskModule\n   * @param name_ Name of the Risk Module\n   * @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n   * @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n   * @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n   * @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n   * @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n   * @param wallet_ Address of the RiskModule provider\n   */\n  function initialize(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) public initializer {\n    __RiskModule_init(name_, collRatio_, ensuroPpFee_, srRoc_, maxPayoutPerPolicy_, exposureLimit_, wallet_);\n  }\n\n  function _checkSignature(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    uint256 bucketId,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) internal view {\n    if (quoteValidUntil < block.timestamp) revert QuoteExpired();\n\n    /**\n     * Checks the quote has been signed by an authorized user\n     * The \"quote\" is computed as hash of the following fields (encodePacked):\n     * - address(this): the address of this RiskModule\n     * - payout, premium, lossProb, expiration: the base parameters of the policy\n     * - policyData: a hash of the private details of the policy. The calculation should include some\n     *   unique id (quoteId), so each policyData identifies a policy.\n     * - quoteValidUntil: the maximum validity of the quote\n     */\n    bytes32 quoteHash = ECDSA.toEthSignedMessageHash(\n      abi.encodePacked(address(this), payout, premium, lossProb, expiration, policyData, bucketId, quoteValidUntil)\n    );\n    address signer = ECDSA.recover(quoteHash, quoteSignatureR, quoteSignatureVS);\n    _policyPool.access().checkComponentRole(address(this), PRICER_ROLE, signer, false);\n  }\n\n  function _newPolicySigned(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    uint256 bucketId,\n    address payer,\n    address onBehalfOf\n  ) internal returns (Policy.PolicyData memory createdPolicy) {\n    createdPolicy = _newPolicyWithParams(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      payer,\n      onBehalfOf,\n      _makeInternalId(policyData),\n      bucketParams(bucketId)\n    );\n    emit NewSignedPolicy(createdPolicy.id, policyData);\n    return createdPolicy;\n  }\n\n  /**\n   * @dev Creates a new Policy using a signed quote. The caller is the payer of the policy.\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   * - {NewSignedPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the payer\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param bucketId Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return Returns the id of the created policy\n   */\n  function newPolicy(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    bytes32 policyData,\n    uint256 bucketId,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused onlyComponentRole(POLICY_CREATOR_ROLE) returns (uint256) {\n    _checkSignature(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      policyData,\n      bucketId,\n      quoteSignatureR,\n      quoteSignatureVS,\n      quoteValidUntil\n    );\n    return _newPolicySigned(payout, premium, lossProb, expiration, policyData, bucketId, _msgSender(), onBehalfOf).id;\n  }\n\n  /**\n   * @dev Replace a policy with a new one, reusing the premium and the capital locked\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   * - The caller has been granted component role REPLACER_ROLE or creation is open\n   *\n   * Emits:\n   * - {PolicyPool.PolicyReplaced}\n   * - {PolicyPool.NewPolicy}\n   *\n   * @param oldPolicy The policy to be replaced\n   * @param payout The exposure (maximum payout) of the new policy\n   * @param premium The premium that will be paid by the caller\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param bucketId Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return Returns the id of the created policy\n   */\n  function replacePolicy(\n    Policy.PolicyData calldata oldPolicy,\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    uint256 bucketId,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused onlyComponentRole(REPLACER_ROLE) returns (uint256) {\n    _checkSignature(\n      payout,\n      premium,\n      lossProb,\n      expiration,\n      policyData,\n      bucketId,\n      quoteSignatureR,\n      quoteSignatureVS,\n      quoteValidUntil\n    );\n    return\n      _replacePolicy(\n        oldPolicy,\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        _msgSender(),\n        _makeInternalId(policyData),\n        bucketParams(bucketId)\n      ).id;\n  }\n\n  function resolvePolicy(\n    Policy.PolicyData calldata policy,\n    uint256 payout\n  ) external onlyComponentRole(RESOLVER_ROLE) whenNotPaused {\n    _policyPool.resolvePolicy(policy, payout);\n  }\n\n  /**\n   * @dev Sets the parameters for a risk bucket.\n   *\n   * Requirements:\n   *\n   * - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\n   *\n   * @param bucketId Group identifier for the policies that will have these parameters\n   * @param params_ The parameters of the new bucket.\n   */\n  function setBucketParams(\n    uint256 bucketId,\n    Params calldata params_\n  ) external onlyGlobalOrComponentRole2(LEVEL1_ROLE, LEVEL2_ROLE) {\n    if (bucketId == 0) revert BucketCannotBeZero();\n    _buckets[bucketId] = PackedParams({\n      moc: _wadTo4(params_.moc),\n      jrCollRatio: _wadTo4(params_.jrCollRatio),\n      collRatio: _wadTo4(params_.collRatio),\n      ensuroPpFee: _wadTo4(params_.ensuroPpFee),\n      ensuroCocFee: _wadTo4(params_.ensuroCocFee),\n      jrRoc: _wadTo4(params_.jrRoc),\n      srRoc: _wadTo4(params_.srRoc),\n      maxPayoutPerPolicy: type(uint32).max, // unused, but needs to be > 0\n      exposureLimit: type(uint32).max, //unused, but needs to be > 0\n      maxDuration: type(uint16).max //unused\n    });\n    _validatePackedParams(_buckets[bucketId]);\n    emit NewBucket(bucketId, params_);\n  }\n\n  /**\n   * @dev Deletes a bucket\n   *\n   * Requirements:\n   *\n   * - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\n   *\n   * @param bucketId Group identifier for the policies that will have these parameters\n   */\n  function deleteBucket(uint256 bucketId) external onlyGlobalOrComponentRole2(LEVEL1_ROLE, LEVEL2_ROLE) {\n    if (bucketId == 0) revert BucketCannotBeZero();\n    if (_buckets[bucketId].moc == 0) revert BucketNotFound();\n    delete _buckets[bucketId];\n    emit BucketDeleted(bucketId);\n  }\n\n  /**\n   * @dev returns the risk bucket parameters for the given bucketId\n   *\n   * @param bucketId Id of the bucket or 0 if you want the default params\n   */\n  function bucketParams(uint256 bucketId) public view returns (Params memory params_) {\n    if (bucketId != 0) {\n      PackedParams storage bucketParams_ = _buckets[bucketId];\n      if (bucketParams_.moc == 0) revert BucketNotFound();\n      params_ = _unpackParams(bucketParams_);\n    } else {\n      params_ = params();\n    }\n  }\n\n  /**\n   * @dev Returns the minimum premium for a given bucket\n   *\n   * @param payout Maximum payout of the policy\n   * @param lossProb Probability of having a loss equal to the maximum payout\n   * @param expiration Expiration date of the policy\n   * @param bucketId Id of the bucket of 0 if you want the default params\n   */\n  function getMinimumPremiumForBucket(\n    uint256 payout,\n    uint256 lossProb,\n    uint40 expiration,\n    uint256 bucketId\n  ) public view virtual returns (uint256) {\n    return _getMinimumPremium(payout, lossProb, expiration, uint40(block.timestamp), bucketParams(bucketId));\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[49] private __gap;\n}\n"},"contracts/SignedQuoteRiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {RiskModule} from \"./RiskModule.sol\";\nimport {Policy} from \"./Policy.sol\";\n\n/**\n * @title SignedQuote Risk Module\n * @dev Risk Module that for policy creation verifies the different components of the price have been signed by a\n        trusted account (PRICER_ROLE). For the resolution (resolvePolicy), it has to be called by an authorized user\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\ncontract SignedQuoteRiskModule is RiskModule {\n  bytes32 public constant POLICY_CREATOR_ROLE = keccak256(\"POLICY_CREATOR_ROLE\");\n  bytes32 public constant PRICER_ROLE = keccak256(\"PRICER_ROLE\");\n  bytes32 public constant RESOLVER_ROLE = keccak256(\"RESOLVER_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n  bool internal immutable _creationIsOpen;\n\n  /**\n   * @dev Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\n   *\n   * @param policyId The id of the policy\n   * @param policyData The value sent in `policyData` parameter that's the hash of the off-chain stored data.\n   */\n  event NewSignedPolicy(uint256 indexed policyId, bytes32 policyData);\n\n  error QuoteExpired();\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  constructor(\n    IPolicyPool policyPool_,\n    IPremiumsAccount premiumsAccount_,\n    bool creationIsOpen_\n  ) RiskModule(policyPool_, premiumsAccount_) {\n    _creationIsOpen = creationIsOpen_;\n  }\n\n  /**\n   * @dev Initializes the RiskModule\n   * @param name_ Name of the Risk Module\n   * @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n   * @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n   * @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n   * @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n   * @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n   * @param wallet_ Address of the RiskModule provider\n   */\n  function initialize(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) public initializer {\n    __RiskModule_init(name_, collRatio_, ensuroPpFee_, srRoc_, maxPayoutPerPolicy_, exposureLimit_, wallet_);\n  }\n\n  function _newPolicySigned(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    bytes32 policyData,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil,\n    address payer,\n    address onBehalfOf\n  ) internal returns (Policy.PolicyData memory createdPolicy) {\n    if (!_creationIsOpen)\n      _policyPool.access().checkComponentRole(address(this), POLICY_CREATOR_ROLE, _msgSender(), false);\n    if (quoteValidUntil < block.timestamp) revert QuoteExpired();\n\n    /**\n     * Checks the quote has been signed by an authorized user\n     * The \"quote\" is computed as hash of the following fields (encodePacked):\n     * - address(this): the address of this RiskModule\n     * - payout, premium, lossProb, expiration: the base parameters of the policy\n     * - policyData: a hash of the private details of the policy. The calculation should include some\n     *   unique id (quoteId), so each policyData identifies a policy.\n     * - quoteValidUntil: the maximum validity of the quote\n     */\n    bytes32 quoteHash = ECDSA.toEthSignedMessageHash(\n      abi.encodePacked(address(this), payout, premium, lossProb, expiration, policyData, quoteValidUntil)\n    );\n    _policyPool.access().checkComponentRole(\n      address(this),\n      PRICER_ROLE,\n      ECDSA.recover(quoteHash, quoteSignatureR, quoteSignatureVS),\n      false\n    );\n\n    createdPolicy = _newPolicy(payout, premium, lossProb, expiration, payer, onBehalfOf, _makeInternalId(policyData));\n    emit NewSignedPolicy(createdPolicy.id, policyData);\n    return createdPolicy;\n  }\n\n  /**\n   * @dev Creates a new Policy using a signed quote. The caller is the payer of the policy. Returns all the struct, not just the id.\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   *\n   *  Emits:\n   * - {PolicyPool.NewPolicy}\n   *  - {NewSignedPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the payer\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return createdPolicy Returns the created policy\n   */\n  function newPolicyFull(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    bytes32 policyData,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused returns (Policy.PolicyData memory createdPolicy) {\n    return\n      _newPolicySigned(\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        policyData,\n        quoteSignatureR,\n        quoteSignatureVS,\n        quoteValidUntil,\n        _msgSender(),\n        onBehalfOf\n      );\n  }\n\n  /**\n   * @dev Creates a new Policy using a signed quote. The caller is the payer of the policy.\n   *\n   * Requirements:\n   * - The caller approved the spending of the premium to the PolicyPool\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   * - {NewSignedPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the payer\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return Returns the id of the created policy\n   */\n  function newPolicy(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    bytes32 policyData,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused returns (uint256) {\n    return\n      _newPolicySigned(\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        policyData,\n        quoteSignatureR,\n        quoteSignatureVS,\n        quoteValidUntil,\n        _msgSender(),\n        onBehalfOf\n      ).id;\n  }\n\n  /**\n   * @dev Creates a new Policy using a signed quote. The payer is the policy holder\n   *\n   * Requirements:\n   * - currency().allowance(onBehalfOf, _msgSender()) > 0\n   * - The quote has been signed by an address with the component role PRICER_ROLE\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   * - {NewSignedPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the payer\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n   * @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n   * @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n   * @param quoteValidUntil The expiration of the quote\n   * @return Returns the id of the created policy\n   */\n  function newPolicyPaidByHolder(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    bytes32 policyData,\n    bytes32 quoteSignatureR,\n    bytes32 quoteSignatureVS,\n    uint40 quoteValidUntil\n  ) external whenNotPaused returns (uint256) {\n    require(\n      onBehalfOf == _msgSender() || currency().allowance(onBehalfOf, _msgSender()) > 0,\n      \"Sender is not authorized to create policies onBehalfOf\"\n    );\n    /**\n     * The standard is the payer should be the _msgSender() but usually, in this type of module,\n     * the sender is an operative account managed by software, where the onBehalfOf is a more\n     * secure account (hardware wallet) that does the cash movements.\n     * This non standard behaviour allows for a more secure setup, where the sender never manages\n     * cash.\n     * We leverage the currency's allowance mechanism to allow the sender access to the payer's\n     * funds.\n     * Note that this allowance won't be spent, so anything above 0 is accepted.\n     */\n    return\n      _newPolicySigned(\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        policyData,\n        quoteSignatureR,\n        quoteSignatureVS,\n        quoteValidUntil,\n        onBehalfOf,\n        onBehalfOf\n      ).id;\n  }\n\n  function resolvePolicy(\n    Policy.PolicyData calldata policy,\n    uint256 payout\n  ) external onlyComponentRole(RESOLVER_ROLE) whenNotPaused {\n    _policyPool.resolvePolicy(policy, payout);\n  }\n\n  function resolvePolicyFullPayout(\n    Policy.PolicyData calldata policy,\n    bool customerWon\n  ) external onlyComponentRole(RESOLVER_ROLE) whenNotPaused {\n    _policyPool.resolvePolicyFullPayout(policy, customerWon);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"},"contracts/TimeScaled.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\n\npragma solidity ^0.8.0;\n\nimport {WadRayMath} from \"./dependencies/WadRayMath.sol\";\nimport {SafeCast} from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\n\n/**\n * @title TimeScaled\n * @dev Library for packed amounts that increase continuoulsly with a scale factor\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\nlibrary TimeScaled {\n  using WadRayMath for uint256;\n  using SafeCast for uint256;\n\n  uint256 private constant SECONDS_PER_YEAR = 365 days;\n  uint112 private constant MIN_SCALE = 1e17; // 0.0000000001 == 1e-10 in ray\n  uint112 private constant RAY112 = 1e27;\n\n  struct ScaledAmount {\n    uint112 scale;\n    uint112 amount;\n    uint32 lastUpdate;\n  }\n\n  function updateScale(ScaledAmount storage scaledAmount, uint256 interestRate) internal {\n    if (scaledAmount.lastUpdate >= uint32(block.timestamp)) return;\n    if (scaledAmount.amount == 0) {\n      scaledAmount.lastUpdate = uint32(block.timestamp);\n    } else {\n      scaledAmount.scale = getScale(scaledAmount, interestRate).toUint112();\n      scaledAmount.lastUpdate = uint32(block.timestamp);\n    }\n  }\n\n  function getScale(ScaledAmount storage scaledAmount, uint256 interestRate) internal view returns (uint256) {\n    uint32 now_ = uint32(block.timestamp);\n    if (scaledAmount.lastUpdate >= now_) {\n      return scaledAmount.scale;\n    }\n    uint256 timeDifference = uint256(now_ - scaledAmount.lastUpdate);\n    return\n      uint256(scaledAmount.scale).rayMul(\n        ((interestRate.wadToRay() * timeDifference) / SECONDS_PER_YEAR) + WadRayMath.RAY\n      );\n  }\n\n  function getScaledAmount(ScaledAmount storage scaledAmount, uint256 interestRate) internal view returns (uint256) {\n    return uint256(scaledAmount.amount).wadToRay().rayMul(getScale(scaledAmount, interestRate)).rayToWad();\n  }\n\n  function init(ScaledAmount storage scaledAmount) internal {\n    scaledAmount.scale = RAY112;\n    scaledAmount.amount = 0;\n    scaledAmount.lastUpdate = uint32(block.timestamp);\n  }\n\n  function scaleAmount(ScaledAmount storage scaledAmount, uint256 toScale) internal view returns (uint256) {\n    return toScale.wadToRay().rayDiv(uint256(scaledAmount.scale)).rayToWad();\n  }\n\n  function scaleAmountNow(\n    ScaledAmount storage scaledAmount,\n    uint256 interestRate,\n    uint256 toScale\n  ) internal view returns (uint256) {\n    return toScale.wadToRay().rayDiv(getScale(scaledAmount, interestRate)).rayToWad();\n  }\n\n  function add(ScaledAmount storage scaledAmount, uint256 amount, uint256 interestRate) internal returns (uint256) {\n    updateScale(scaledAmount, interestRate);\n    uint256 scaledAdd = scaleAmount(scaledAmount, amount);\n    scaledAmount.amount += scaledAdd.toUint96();\n    return scaledAdd;\n  }\n\n  function sub(ScaledAmount storage scaledAmount, uint256 amount, uint256 interestRate) internal returns (uint256) {\n    updateScale(scaledAmount, interestRate);\n    uint256 scaledSub = scaleAmount(scaledAmount, amount);\n    scaledAmount.amount -= scaledSub.toUint96();\n    if (scaledAmount.amount == 0) {\n      // Reset scale if amount == 0\n      scaledAmount.scale = RAY112;\n    }\n    return scaledSub;\n  }\n\n  function discreteChange(ScaledAmount storage scaledAmount, int256 amount, uint256 interestRate) internal {\n    if (scaledAmount.amount == 0) {\n      add(scaledAmount, uint256(amount), interestRate);\n      return;\n    }\n    updateScale(scaledAmount, interestRate);\n    uint256 newScaledAmount = uint256(int256(getScaledAmount(scaledAmount, interestRate)) + amount);\n    scaledAmount.scale = newScaledAmount.wadToRay().rayDiv(uint256(scaledAmount.amount).wadToRay()).toUint112();\n    require(scaledAmount.scale >= MIN_SCALE, \"Scale too small, can lead to rounding errors\");\n  }\n\n  function minValue(ScaledAmount storage scaledAmount) internal view returns (uint256) {\n    return uint256(scaledAmount.amount).wadToRay().rayMul(MIN_SCALE).rayToWad();\n  }\n}\n"},"contracts/TrustfulRiskModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\nimport {IPolicyPool} from \"./interfaces/IPolicyPool.sol\";\nimport {IPremiumsAccount} from \"./interfaces/IPremiumsAccount.sol\";\nimport {RiskModule} from \"./RiskModule.sol\";\nimport {Policy} from \"./Policy.sol\";\nimport {IERC721} from \"@openzeppelin/contracts/interfaces/IERC721.sol\";\n\n/**\n * @title Trustful Risk Module\n * @dev Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by\n        authorized users\n * @custom:security-contact security@ensuro.co\n * @author Ensuro\n */\n\ncontract TrustfulRiskModule is RiskModule {\n  bytes32 public constant PRICER_ROLE = keccak256(\"PRICER_ROLE\");\n  bytes32 public constant RESOLVER_ROLE = keccak256(\"RESOLVER_ROLE\");\n  bytes32 public constant REPLACER_ROLE = keccak256(\"REPLACER_ROLE\");\n\n  /// @custom:oz-upgrades-unsafe-allow constructor\n  // solhint-disable-next-line no-empty-blocks\n  constructor(IPolicyPool policyPool_, IPremiumsAccount premiumsAccount_) RiskModule(policyPool_, premiumsAccount_) {}\n\n  /**\n   * @dev Initializes the RiskModule\n   * @param name_ Name of the Risk Module\n   * @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n   * @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n   * @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n   * @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n   * @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n   * @param wallet_ Address of the RiskModule provider\n   */\n  function initialize(\n    string memory name_,\n    uint256 collRatio_,\n    uint256 ensuroPpFee_,\n    uint256 srRoc_,\n    uint256 maxPayoutPerPolicy_,\n    uint256 exposureLimit_,\n    address wallet_\n  ) public initializer {\n    __RiskModule_init(name_, collRatio_, ensuroPpFee_, srRoc_, maxPayoutPerPolicy_, exposureLimit_, wallet_);\n  }\n\n  /**\n   * @dev Creates a new Policy\n   *\n   * Requirements:\n   * - The caller has been granted componentRole(PRICER_ROLE)\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the policyHolder\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param internalId An id that's unique within this module and it will be used to identify the policy\n   * @return Returns the id of the created policy\n   */\n  function newPolicy(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    uint96 internalId\n  ) external whenNotPaused onlyComponentRole(PRICER_ROLE) returns (uint256) {\n    return _newPolicy(payout, premium, lossProb, expiration, _getPayer(onBehalfOf, premium), onBehalfOf, internalId).id;\n  }\n\n  /**\n   * @dev Creates a new Policy. Version that returns all the PolicyData struct, not just the id.\n   *\n   * Requirements:\n   * - The caller has been granted componentRole(PRICER_ROLE)\n   *\n   * Emits:\n   * - {PolicyPool.NewPolicy}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the policyHolder\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param onBehalfOf The policy holder\n   * @param internalId An id that's unique within this module and it will be used to identify the policy\n   * @return createdPolicy Returns the id of the created policy\n   */\n  function newPolicyFull(\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    address onBehalfOf,\n    uint96 internalId\n  ) external whenNotPaused onlyComponentRole(PRICER_ROLE) returns (Policy.PolicyData memory createdPolicy) {\n    return _newPolicy(payout, premium, lossProb, expiration, _getPayer(onBehalfOf, premium), onBehalfOf, internalId);\n  }\n\n  /**\n   * @dev Replace a policy with a new one, reusing the premium and the capital locked\n   *\n   * Requirements:\n   * - The caller has been granted componentRole(PRICER_ROLE)\n   *\n   * Emits:\n   * - {PolicyPool.PolicyReplaced}\n   *\n   * @param payout The exposure (maximum payout) of the policy\n   * @param premium The premium that will be paid by the policyHolder\n   * @param lossProb The probability of having to pay the maximum payout (wad)\n   * @param expiration The expiration of the policy (timestamp)\n   * @param internalId An id that's unique within this module and it will be used to identify the policy\n   * @return Returns the id of the created policy\n   */\n  function replacePolicy(\n    Policy.PolicyData calldata oldPolicy,\n    uint256 payout,\n    uint256 premium,\n    uint256 lossProb,\n    uint40 expiration,\n    uint96 internalId\n  ) external whenNotPaused onlyComponentRole(REPLACER_ROLE) returns (uint256) {\n    address onBehalfOf = IERC721(address(_policyPool)).ownerOf(oldPolicy.id);\n    return\n      _replacePolicy(\n        oldPolicy,\n        payout,\n        premium,\n        lossProb,\n        expiration,\n        _getPayer(onBehalfOf, premium),\n        internalId,\n        params()\n      ).id;\n  }\n\n  function _getPayer(address onBehalfOf, uint256 premium) internal view returns (address payer) {\n    payer = onBehalfOf;\n    if (payer != _msgSender() && _policyPool.currency().allowance(payer, _msgSender()) < premium)\n      /**\n       * The standard is the payer should be the _msgSender() but usually, in this type of module,\n       * the sender is an operative account managed by software, where the onBehalfOf is a more\n       * secure account (hardware wallet) that does the cash movements.\n       * This non standard behaviour allows for a more secure setup, where the sender never manages\n       * cash.\n       * We leverage the currency's allowance mechanism to allow the sender access to the payer's\n       * funds.\n       * Note that this allowance won't be spent, so it can be set as the maximum amount of a single\n       * premium even for multiple policies.\n       */\n      payer = _msgSender();\n    return payer;\n  }\n\n  /**\n   * @dev Resolves a policy, if payout > 0, it pays to the policy holder.\n   *\n   * Requirements:\n   * - The caller has been granted componentRole(RESOLVER_ROLE)\n   * - payout <= policy.payout\n   * - block.timestamp >= policy.expiration\n   *\n   * Emits:\n   * - {PolicyPool.PolicyResolved}\n   *\n   * @param policy The policy previously created (from {NewPolicy} event)\n   * @param payout The payout to transfer to the policy holder\n   */\n  function resolvePolicy(\n    Policy.PolicyData calldata policy,\n    uint256 payout\n  ) external onlyComponentRole(RESOLVER_ROLE) whenNotPaused {\n    _policyPool.resolvePolicy(policy, payout);\n  }\n\n  /**\n   * @dev Resolves a policy with full payout (policy.payout) if customerWon == true\n   *\n   * Requirements:\n   * - The caller has been granted componentRole(RESOLVER_ROLE)\n   * - block.timestamp >= policy.expiration\n   *\n   * Emits:\n   * - {PolicyPool.PolicyResolved}\n   *\n   * @param policy The policy previously created (from {NewPolicy} event)\n   * @param customerWon If true, policy.payout is transferred to the policy holder. If false, the policy is resolved\n   * without payout and can't be longer claimed.\n   */\n  function resolvePolicyFullPayout(\n    Policy.PolicyData calldata policy,\n    bool customerWon\n  ) external onlyComponentRole(RESOLVER_ROLE) whenNotPaused {\n    _policyPool.resolvePolicyFullPayout(policy, customerWon);\n  }\n\n  /**\n   * @dev This empty reserved space is put in place to allow future versions to add new\n   * variables without shifting down storage in the inheritance chain.\n   * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n   */\n  uint256[50] private __gap;\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","storageLayout"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","exportedSymbols":{"AccessControlUpgradeable":[336],"ContextUpgradeable":[2704],"ERC165Upgradeable":[3088],"IAccessControlUpgradeable":[409],"IERC165Upgradeable":[3100],"Initializable":[944],"MathUpgradeable":[3966],"SignedMathUpgradeable":[4071],"StringsUpgradeable":[3043]},"id":337,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:0"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol","file":"./IAccessControlUpgradeable.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":337,"sourceUnit":410,"src":"133:41:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":337,"sourceUnit":2705,"src":"175:41:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol","file":"../utils/StringsUpgradeable.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":337,"sourceUnit":3044,"src":"217:41:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","file":"../utils/introspection/ERC165Upgradeable.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":337,"sourceUnit":3089,"src":"259:54:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":7,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":337,"sourceUnit":945,"src":"314:63:0","symbolAliases":[{"foreign":{"id":6,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"322:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9,"name":"Initializable","nameLocations":["2086:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"2086:13:0"},"id":10,"nodeType":"InheritanceSpecifier","src":"2086:13:0"},{"baseName":{"id":11,"name":"ContextUpgradeable","nameLocations":["2101:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":2704,"src":"2101:18:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"2101:18:0"},{"baseName":{"id":13,"name":"IAccessControlUpgradeable","nameLocations":["2121:25:0"],"nodeType":"IdentifierPath","referencedDeclaration":409,"src":"2121:25:0"},"id":14,"nodeType":"InheritanceSpecifier","src":"2121:25:0"},{"baseName":{"id":15,"name":"ERC165Upgradeable","nameLocations":["2148:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":3088,"src":"2148:17:0"},"id":16,"nodeType":"InheritanceSpecifier","src":"2148:17:0"}],"canonicalName":"AccessControlUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":8,"nodeType":"StructuredDocumentation","src":"379:1660:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":336,"linearizedBaseContracts":[336,3088,3100,409,2704,944],"name":"AccessControlUpgradeable","nameLocation":"2058:24:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControlUpgradeable.RoleData","id":23,"members":[{"constant":false,"id":20,"mutability":"mutable","name":"members","nameLocation":"2223:7:0","nodeType":"VariableDeclaration","scope":23,"src":"2198:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":19,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17,"name":"address","nodeType":"ElementaryTypeName","src":"2206:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2198:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18,"name":"bool","nodeType":"ElementaryTypeName","src":"2217:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":22,"mutability":"mutable","name":"adminRole","nameLocation":"2248:9:0","nodeType":"VariableDeclaration","scope":23,"src":"2240:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2179:8:0","nodeType":"StructDefinition","scope":336,"src":"2172:92:0","visibility":"public"},{"constant":false,"id":28,"mutability":"mutable","name":"_roles","nameLocation":"2307:6:0","nodeType":"VariableDeclaration","scope":336,"src":"2270:43:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"typeName":{"id":27,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":24,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2278:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2270:28:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":26,"nodeType":"UserDefinedTypeName","pathNode":{"id":25,"name":"RoleData","nameLocations":["2289:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":23,"src":"2289:8:0"},"referencedDeclaration":23,"src":"2289:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage_ptr","typeString":"struct AccessControlUpgradeable.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":31,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2344:18:0","nodeType":"VariableDeclaration","scope":336,"src":"2320:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2320:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":41,"nodeType":"Block","src":"2788:44:0","statements":[{"expression":{"arguments":[{"id":37,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"2809:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":36,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":108,"src":"2798:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":38,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2798:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39,"nodeType":"ExpressionStatement","src":"2798:16:0"},{"id":40,"nodeType":"PlaceholderStatement","src":"2824:1:0"}]},"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"2376:375:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":42,"name":"onlyRole","nameLocation":"2765:8:0","nodeType":"ModifierDefinition","parameters":{"id":35,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"mutability":"mutable","name":"role","nameLocation":"2782:4:0","nodeType":"VariableDeclaration","scope":42,"src":"2774:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2774:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2773:14:0"},"src":"2756:76:0","virtual":false,"visibility":"internal"},{"body":{"id":47,"nodeType":"Block","src":"2896:7:0","statements":[]},"id":48,"implemented":true,"kind":"function","modifiers":[{"id":45,"kind":"modifierInvocation","modifierName":{"id":44,"name":"onlyInitializing","nameLocations":["2879:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"2879:16:0"},"nodeType":"ModifierInvocation","src":"2879:16:0"}],"name":"__AccessControl_init","nameLocation":"2847:20:0","nodeType":"FunctionDefinition","parameters":{"id":43,"nodeType":"ParameterList","parameters":[],"src":"2867:2:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"2896:0:0"},"scope":336,"src":"2838:65:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":53,"nodeType":"Block","src":"2977:7:0","statements":[]},"id":54,"implemented":true,"kind":"function","modifiers":[{"id":51,"kind":"modifierInvocation","modifierName":{"id":50,"name":"onlyInitializing","nameLocations":["2960:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"2960:16:0"},"nodeType":"ModifierInvocation","src":"2960:16:0"}],"name":"__AccessControl_init_unchained","nameLocation":"2918:30:0","nodeType":"FunctionDefinition","parameters":{"id":49,"nodeType":"ParameterList","parameters":[],"src":"2948:2:0"},"returnParameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"2977:0:0"},"scope":336,"src":"2909:75:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3082],"body":{"id":75,"nodeType":"Block","src":"3141:122:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":63,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"3158:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":65,"name":"IAccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"3178:25:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlUpgradeable_$409_$","typeString":"type(contract IAccessControlUpgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlUpgradeable_$409_$","typeString":"type(contract IAccessControlUpgradeable)"}],"id":64,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3173:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":66,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3173:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlUpgradeable_$409","typeString":"type(contract IAccessControlUpgradeable)"}},"id":67,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3205:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"3173:43:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3158:58:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":71,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"3244:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":69,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3220:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlUpgradeable_$336_$","typeString":"type(contract super AccessControlUpgradeable)"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3226:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3082,"src":"3220:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3158:98:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":62,"id":74,"nodeType":"Return","src":"3151:105:0"}]},"documentation":{"id":55,"nodeType":"StructuredDocumentation","src":"2989:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":76,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3059:17:0","nodeType":"FunctionDefinition","overrides":{"id":59,"nodeType":"OverrideSpecifier","overrides":[],"src":"3117:8:0"},"parameters":{"id":58,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57,"mutability":"mutable","name":"interfaceId","nameLocation":"3084:11:0","nodeType":"VariableDeclaration","scope":76,"src":"3077:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":56,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3077:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3076:20:0"},"returnParameters":{"id":62,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76,"src":"3135:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60,"name":"bool","nodeType":"ElementaryTypeName","src":"3135:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3134:6:0"},"scope":336,"src":"3050:213:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[376],"body":{"id":94,"nodeType":"Block","src":"3442:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":87,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"3459:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":89,"indexExpression":{"id":88,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3466:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3459:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":90,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3472:7:0","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":20,"src":"3459:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":92,"indexExpression":{"id":91,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81,"src":"3480:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3459:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86,"id":93,"nodeType":"Return","src":"3452:36:0"}]},"documentation":{"id":77,"nodeType":"StructuredDocumentation","src":"3269:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":95,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3359:7:0","nodeType":"FunctionDefinition","overrides":{"id":83,"nodeType":"OverrideSpecifier","overrides":[],"src":"3418:8:0"},"parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79,"mutability":"mutable","name":"role","nameLocation":"3375:4:0","nodeType":"VariableDeclaration","scope":95,"src":"3367:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3367:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81,"mutability":"mutable","name":"account","nameLocation":"3389:7:0","nodeType":"VariableDeclaration","scope":95,"src":"3381:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"3381:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3366:31:0"},"returnParameters":{"id":86,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":95,"src":"3436:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84,"name":"bool","nodeType":"ElementaryTypeName","src":"3436:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3435:6:0"},"scope":336,"src":"3350:145:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":107,"nodeType":"Block","src":"3845:47:0","statements":[{"expression":{"arguments":[{"id":102,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"3866:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":103,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"3872:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3872:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":101,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"3855:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":106,"nodeType":"ExpressionStatement","src":"3855:30:0"}]},"documentation":{"id":96,"nodeType":"StructuredDocumentation","src":"3501:283:0","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":108,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3798:10:0","nodeType":"FunctionDefinition","parameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"role","nameLocation":"3817:4:0","nodeType":"VariableDeclaration","scope":108,"src":"3809:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3809:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3808:14:0"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[],"src":"3845:0:0"},"scope":336,"src":"3789:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":146,"nodeType":"Block","src":"4246:428:0","statements":[{"condition":{"id":120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4260:23:0","subExpression":{"arguments":[{"id":117,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"4269:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":118,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"4275:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":116,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4261:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":145,"nodeType":"IfStatement","src":"4256:412:0","trueBody":{"id":144,"nodeType":"Block","src":"4285:383:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4393:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":129,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"4475:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":127,"name":"StringsUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"4444:18:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StringsUpgradeable_$3043_$","typeString":"type(library StringsUpgradeable)"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4463:11:0","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":3017,"src":"4444:30:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4444:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4509:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":136,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"4593:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4585:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":134,"name":"uint256","nodeType":"ElementaryTypeName","src":"4585:7:0","typeDescriptions":{}}},"id":137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4600:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":132,"name":"StringsUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"4554:18:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StringsUpgradeable_$3043_$","typeString":"type(library StringsUpgradeable)"}},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4573:11:0","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":2997,"src":"4554:30:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4554:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4351:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4355:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4351:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4351:274:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4323:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":122,"name":"string","nodeType":"ElementaryTypeName","src":"4323:6:0","typeDescriptions":{}}},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4323:320:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":121,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4299:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:358:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"4299:358:0"}]}}]},"documentation":{"id":109,"nodeType":"StructuredDocumentation","src":"3898:270:0","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":147,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"4182:10:0","nodeType":"FunctionDefinition","parameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"mutability":"mutable","name":"role","nameLocation":"4201:4:0","nodeType":"VariableDeclaration","scope":147,"src":"4193:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":113,"mutability":"mutable","name":"account","nameLocation":"4215:7:0","nodeType":"VariableDeclaration","scope":147,"src":"4207:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112,"name":"address","nodeType":"ElementaryTypeName","src":"4207:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4192:31:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[],"src":"4246:0:0"},"scope":336,"src":"4173:501:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[384],"body":{"id":161,"nodeType":"Block","src":"4938:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":156,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"4955:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":158,"indexExpression":{"id":157,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"4962:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4955:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4968:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":22,"src":"4955:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":155,"id":160,"nodeType":"Return","src":"4948:29:0"}]},"documentation":{"id":148,"nodeType":"StructuredDocumentation","src":"4680:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":162,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4864:12:0","nodeType":"FunctionDefinition","overrides":{"id":152,"nodeType":"OverrideSpecifier","overrides":[],"src":"4911:8:0"},"parameters":{"id":151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":150,"mutability":"mutable","name":"role","nameLocation":"4885:4:0","nodeType":"VariableDeclaration","scope":162,"src":"4877:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4877:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4876:14:0"},"returnParameters":{"id":155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":162,"src":"4929:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4929:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4928:9:0"},"scope":336,"src":"4855:129:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[392],"body":{"id":181,"nodeType":"Block","src":"5383:42:0","statements":[{"expression":{"arguments":[{"id":177,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"5404:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":178,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167,"src":"5410:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":176,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"5393:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5393:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":180,"nodeType":"ExpressionStatement","src":"5393:25:0"}]},"documentation":{"id":163,"nodeType":"StructuredDocumentation","src":"4990:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":182,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":172,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"5376:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":171,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"5363:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5363:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":174,"kind":"modifierInvocation","modifierName":{"id":170,"name":"onlyRole","nameLocations":["5354:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":42,"src":"5354:8:0"},"nodeType":"ModifierInvocation","src":"5354:28:0"}],"name":"grantRole","nameLocation":"5289:9:0","nodeType":"FunctionDefinition","overrides":{"id":169,"nodeType":"OverrideSpecifier","overrides":[],"src":"5345:8:0"},"parameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":165,"mutability":"mutable","name":"role","nameLocation":"5307:4:0","nodeType":"VariableDeclaration","scope":182,"src":"5299:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5299:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":167,"mutability":"mutable","name":"account","nameLocation":"5321:7:0","nodeType":"VariableDeclaration","scope":182,"src":"5313:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"5313:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5298:31:0"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[],"src":"5383:0:0"},"scope":336,"src":"5280:145:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[400],"body":{"id":201,"nodeType":"Block","src":"5809:43:0","statements":[{"expression":{"arguments":[{"id":197,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"5831:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":198,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"5837:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":196,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5819:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5819:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":200,"nodeType":"ExpressionStatement","src":"5819:26:0"}]},"documentation":{"id":183,"nodeType":"StructuredDocumentation","src":"5431:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":202,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":192,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"5802:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":191,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"5789:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":194,"kind":"modifierInvocation","modifierName":{"id":190,"name":"onlyRole","nameLocations":["5780:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":42,"src":"5780:8:0"},"nodeType":"ModifierInvocation","src":"5780:28:0"}],"name":"revokeRole","nameLocation":"5714:10:0","nodeType":"FunctionDefinition","overrides":{"id":189,"nodeType":"OverrideSpecifier","overrides":[],"src":"5771:8:0"},"parameters":{"id":188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"role","nameLocation":"5733:4:0","nodeType":"VariableDeclaration","scope":202,"src":"5725:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5725:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"account","nameLocation":"5747:7:0","nodeType":"VariableDeclaration","scope":202,"src":"5739:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":186,"name":"address","nodeType":"ElementaryTypeName","src":"5739:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5724:31:0"},"returnParameters":{"id":195,"nodeType":"ParameterList","parameters":[],"src":"5809:0:0"},"scope":336,"src":"5705:147:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[408],"body":{"id":224,"nodeType":"Block","src":"6466:137:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":212,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"6484:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":213,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6495:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6495:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6484:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6509:49:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":211,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6476:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6476:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":218,"nodeType":"ExpressionStatement","src":"6476:83:0"},{"expression":{"arguments":[{"id":220,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"6582:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":221,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"6588:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":219,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"6570:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6570:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":223,"nodeType":"ExpressionStatement","src":"6570:26:0"}]},"documentation":{"id":203,"nodeType":"StructuredDocumentation","src":"5858:526:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":225,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6398:12:0","nodeType":"FunctionDefinition","overrides":{"id":209,"nodeType":"OverrideSpecifier","overrides":[],"src":"6457:8:0"},"parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"role","nameLocation":"6419:4:0","nodeType":"VariableDeclaration","scope":225,"src":"6411:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6411:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"account","nameLocation":"6433:7:0","nodeType":"VariableDeclaration","scope":225,"src":"6425:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206,"name":"address","nodeType":"ElementaryTypeName","src":"6425:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6410:31:0"},"returnParameters":{"id":210,"nodeType":"ParameterList","parameters":[],"src":"6466:0:0"},"scope":336,"src":"6389:214:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":238,"nodeType":"Block","src":"7356:42:0","statements":[{"expression":{"arguments":[{"id":234,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"7377:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":235,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"7383:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":233,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"7366:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":237,"nodeType":"ExpressionStatement","src":"7366:25:0"}]},"documentation":{"id":226,"nodeType":"StructuredDocumentation","src":"6609:674:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":239,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"7297:10:0","nodeType":"FunctionDefinition","parameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":228,"mutability":"mutable","name":"role","nameLocation":"7316:4:0","nodeType":"VariableDeclaration","scope":239,"src":"7308:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7308:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":230,"mutability":"mutable","name":"account","nameLocation":"7330:7:0","nodeType":"VariableDeclaration","scope":239,"src":"7322:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":229,"name":"address","nodeType":"ElementaryTypeName","src":"7322:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7307:31:0"},"returnParameters":{"id":232,"nodeType":"ParameterList","parameters":[],"src":"7356:0:0"},"scope":336,"src":"7288:110:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"7596:174:0","statements":[{"assignments":[248],"declarations":[{"constant":false,"id":248,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7614:17:0","nodeType":"VariableDeclaration","scope":266,"src":"7606:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7606:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":252,"initialValue":{"arguments":[{"id":250,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"7647:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":249,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"7634:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7634:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7606:46:0"},{"expression":{"id":258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":253,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"7662:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":255,"indexExpression":{"id":254,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"7669:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7662:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7675:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":22,"src":"7662:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":257,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"7687:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7662:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":259,"nodeType":"ExpressionStatement","src":"7662:34:0"},{"eventCall":{"arguments":[{"id":261,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"7728:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":262,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":248,"src":"7734:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":263,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"7753:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":260,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":348,"src":"7711:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7711:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"EmitStatement","src":"7706:57:0"}]},"documentation":{"id":240,"nodeType":"StructuredDocumentation","src":"7404:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7532:13:0","nodeType":"FunctionDefinition","parameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"role","nameLocation":"7554:4:0","nodeType":"VariableDeclaration","scope":267,"src":"7546:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7546:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":244,"mutability":"mutable","name":"adminRole","nameLocation":"7568:9:0","nodeType":"VariableDeclaration","scope":267,"src":"7560:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7560:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7545:33:0"},"returnParameters":{"id":246,"nodeType":"ParameterList","parameters":[],"src":"7596:0:0"},"scope":336,"src":"7523:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":298,"nodeType":"Block","src":"8006:165:0","statements":[{"condition":{"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8020:23:0","subExpression":{"arguments":[{"id":276,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"8029:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":277,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":272,"src":"8035:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":275,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"8021:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8021:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":297,"nodeType":"IfStatement","src":"8016:149:0","trueBody":{"id":296,"nodeType":"Block","src":"8045:120:0","statements":[{"expression":{"id":287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":280,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"8059:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":282,"indexExpression":{"id":281,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"8066:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8059:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8072:7:0","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":20,"src":"8059:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":285,"indexExpression":{"id":284,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":272,"src":"8080:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8059:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8091:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8059:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":288,"nodeType":"ExpressionStatement","src":"8059:36:0"},{"eventCall":{"arguments":[{"id":290,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"8126:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":291,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":272,"src":"8132:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":292,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"8141:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8141:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":289,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"8114:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":295,"nodeType":"EmitStatement","src":"8109:45:0"}]}}]},"documentation":{"id":268,"nodeType":"StructuredDocumentation","src":"7776:157:0","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":299,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7947:10:0","nodeType":"FunctionDefinition","parameters":{"id":273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":270,"mutability":"mutable","name":"role","nameLocation":"7966:4:0","nodeType":"VariableDeclaration","scope":299,"src":"7958:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7958:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":272,"mutability":"mutable","name":"account","nameLocation":"7980:7:0","nodeType":"VariableDeclaration","scope":299,"src":"7972:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":271,"name":"address","nodeType":"ElementaryTypeName","src":"7972:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7957:31:0"},"returnParameters":{"id":274,"nodeType":"ParameterList","parameters":[],"src":"8006:0:0"},"scope":336,"src":"7938:233:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":329,"nodeType":"Block","src":"8411:165:0","statements":[{"condition":{"arguments":[{"id":308,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"8433:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":309,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"8439:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":307,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"8425:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8425:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":328,"nodeType":"IfStatement","src":"8421:149:0","trueBody":{"id":327,"nodeType":"Block","src":"8449:121:0","statements":[{"expression":{"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":311,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"8463:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$23_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":313,"indexExpression":{"id":312,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"8470:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8463:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$23_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8476:7:0","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":20,"src":"8463:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":316,"indexExpression":{"id":315,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"8484:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8463:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8495:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8463:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":319,"nodeType":"ExpressionStatement","src":"8463:37:0"},{"eventCall":{"arguments":[{"id":321,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"8531:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":322,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"8537:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":323,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"8546:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8546:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":320,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"8519:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8519:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":326,"nodeType":"EmitStatement","src":"8514:45:0"}]}}]},"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"8177:160:0","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":330,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"8351:11:0","nodeType":"FunctionDefinition","parameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"role","nameLocation":"8371:4:0","nodeType":"VariableDeclaration","scope":330,"src":"8363:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8363:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":304,"mutability":"mutable","name":"account","nameLocation":"8385:7:0","nodeType":"VariableDeclaration","scope":330,"src":"8377:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":303,"name":"address","nodeType":"ElementaryTypeName","src":"8377:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8362:31:0"},"returnParameters":{"id":306,"nodeType":"ParameterList","parameters":[],"src":"8411:0:0"},"scope":336,"src":"8342:234:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":331,"nodeType":"StructuredDocumentation","src":"8582:254:0","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":335,"mutability":"mutable","name":"__gap","nameLocation":"8861:5:0","nodeType":"VariableDeclaration","scope":336,"src":"8841:25:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":332,"name":"uint256","nodeType":"ElementaryTypeName","src":"8841:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":334,"length":{"hexValue":"3439","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8849:2:0","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"8841:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":337,"src":"2040:6829:0","usedErrors":[],"usedEvents":[348,357,366,790]}],"src":"108:8762:0"},"id":0},"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol","exportedSymbols":{"IAccessControlUpgradeable":[409]},"id":410,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":338,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControlUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":339,"nodeType":"StructuredDocumentation","src":"119:89:1","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":409,"linearizedBaseContracts":[409],"name":"IAccessControlUpgradeable","nameLocation":"219:25:1","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":340,"nodeType":"StructuredDocumentation","src":"251:292:1","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":348,"name":"RoleAdminChanged","nameLocation":"554:16:1","nodeType":"EventDefinition","parameters":{"id":347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":342,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"587:4:1","nodeType":"VariableDeclaration","scope":348,"src":"571:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"571:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"609:17:1","nodeType":"VariableDeclaration","scope":348,"src":"593:33:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"593:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":346,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"644:12:1","nodeType":"VariableDeclaration","scope":348,"src":"628:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"628:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"570:87:1"},"src":"548:110:1"},{"anonymous":false,"documentation":{"id":349,"nodeType":"StructuredDocumentation","src":"664:212:1","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":357,"name":"RoleGranted","nameLocation":"887:11:1","nodeType":"EventDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":351,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"915:4:1","nodeType":"VariableDeclaration","scope":357,"src":"899:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"899:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":353,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"937:7:1","nodeType":"VariableDeclaration","scope":357,"src":"921:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":352,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":355,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"962:6:1","nodeType":"VariableDeclaration","scope":357,"src":"946:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":354,"name":"address","nodeType":"ElementaryTypeName","src":"946:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"898:71:1"},"src":"881:89:1"},{"anonymous":false,"documentation":{"id":358,"nodeType":"StructuredDocumentation","src":"976:275:1","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":366,"name":"RoleRevoked","nameLocation":"1262:11:1","nodeType":"EventDefinition","parameters":{"id":365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":360,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1290:4:1","nodeType":"VariableDeclaration","scope":366,"src":"1274:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1274:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":362,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1312:7:1","nodeType":"VariableDeclaration","scope":366,"src":"1296:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":361,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":364,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1337:6:1","nodeType":"VariableDeclaration","scope":366,"src":"1321:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":363,"name":"address","nodeType":"ElementaryTypeName","src":"1321:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1273:71:1"},"src":"1256:89:1"},{"documentation":{"id":367,"nodeType":"StructuredDocumentation","src":"1351:76:1","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":376,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1441:7:1","nodeType":"FunctionDefinition","parameters":{"id":372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":369,"mutability":"mutable","name":"role","nameLocation":"1457:4:1","nodeType":"VariableDeclaration","scope":376,"src":"1449:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1449:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":371,"mutability":"mutable","name":"account","nameLocation":"1471:7:1","nodeType":"VariableDeclaration","scope":376,"src":"1463:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":370,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1448:31:1"},"returnParameters":{"id":375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":376,"src":"1503:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":373,"name":"bool","nodeType":"ElementaryTypeName","src":"1503:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1502:6:1"},"scope":409,"src":"1432:77:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":377,"nodeType":"StructuredDocumentation","src":"1515:184:1","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":384,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1713:12:1","nodeType":"FunctionDefinition","parameters":{"id":380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":379,"mutability":"mutable","name":"role","nameLocation":"1734:4:1","nodeType":"VariableDeclaration","scope":384,"src":"1726:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1726:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1725:14:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":384,"src":"1763:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1763:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1762:9:1"},"scope":409,"src":"1704:68:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":385,"nodeType":"StructuredDocumentation","src":"1778:239:1","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":392,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2031:9:1","nodeType":"FunctionDefinition","parameters":{"id":390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":387,"mutability":"mutable","name":"role","nameLocation":"2049:4:1","nodeType":"VariableDeclaration","scope":392,"src":"2041:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2041:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":389,"mutability":"mutable","name":"account","nameLocation":"2063:7:1","nodeType":"VariableDeclaration","scope":392,"src":"2055:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":388,"name":"address","nodeType":"ElementaryTypeName","src":"2055:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2040:31:1"},"returnParameters":{"id":391,"nodeType":"ParameterList","parameters":[],"src":"2080:0:1"},"scope":409,"src":"2022:59:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":393,"nodeType":"StructuredDocumentation","src":"2087:223:1","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":400,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2324:10:1","nodeType":"FunctionDefinition","parameters":{"id":398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":395,"mutability":"mutable","name":"role","nameLocation":"2343:4:1","nodeType":"VariableDeclaration","scope":400,"src":"2335:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2335:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":397,"mutability":"mutable","name":"account","nameLocation":"2357:7:1","nodeType":"VariableDeclaration","scope":400,"src":"2349:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":396,"name":"address","nodeType":"ElementaryTypeName","src":"2349:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2334:31:1"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[],"src":"2374:0:1"},"scope":409,"src":"2315:60:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":401,"nodeType":"StructuredDocumentation","src":"2381:480:1","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":408,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2875:12:1","nodeType":"FunctionDefinition","parameters":{"id":406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":403,"mutability":"mutable","name":"role","nameLocation":"2896:4:1","nodeType":"VariableDeclaration","scope":408,"src":"2888:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2888:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":405,"mutability":"mutable","name":"account","nameLocation":"2910:7:1","nodeType":"VariableDeclaration","scope":408,"src":"2902:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":404,"name":"address","nodeType":"ElementaryTypeName","src":"2902:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2887:31:1"},"returnParameters":{"id":407,"nodeType":"ParameterList","parameters":[],"src":"2927:0:1"},"scope":409,"src":"2866:62:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":410,"src":"209:2721:1","usedErrors":[],"usedEvents":[348,357,366]}],"src":"94:2837:1"},"id":1},"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol","exportedSymbols":{"IERC1967Upgradeable":[430]},"id":431,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":411,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1967Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":412,"nodeType":"StructuredDocumentation","src":"132:133:2","text":" @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n _Available since v4.8.3._"},"fullyImplemented":true,"id":430,"linearizedBaseContracts":[430],"name":"IERC1967Upgradeable","nameLocation":"276:19:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":413,"nodeType":"StructuredDocumentation","src":"302:68:2","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":417,"name":"Upgraded","nameLocation":"381:8:2","nodeType":"EventDefinition","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":415,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"406:14:2","nodeType":"VariableDeclaration","scope":417,"src":"390:30:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"390:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"389:32:2"},"src":"375:47:2"},{"anonymous":false,"documentation":{"id":418,"nodeType":"StructuredDocumentation","src":"428:67:2","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":424,"name":"AdminChanged","nameLocation":"506:12:2","nodeType":"EventDefinition","parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"527:13:2","nodeType":"VariableDeclaration","scope":424,"src":"519:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":422,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"550:8:2","nodeType":"VariableDeclaration","scope":424,"src":"542:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"542:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"518:41:2"},"src":"500:60:2"},{"anonymous":false,"documentation":{"id":425,"nodeType":"StructuredDocumentation","src":"566:59:2","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":429,"name":"BeaconUpgraded","nameLocation":"636:14:2","nodeType":"EventDefinition","parameters":{"id":428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":427,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"667:6:2","nodeType":"VariableDeclaration","scope":429,"src":"651:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":426,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"650:24:2"},"src":"630:45:2"}],"scope":431,"src":"266:411:2","usedErrors":[],"usedEvents":[417,424,429]}],"src":"107:571:2"},"id":2},"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol","exportedSymbols":{"IERC1822ProxiableUpgradeable":[440]},"id":441,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":432,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822ProxiableUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"138:203:3","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":440,"linearizedBaseContracts":[440],"name":"IERC1822ProxiableUpgradeable","nameLocation":"352:28:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":434,"nodeType":"StructuredDocumentation","src":"387:438:3","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":439,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"839:13:3","nodeType":"FunctionDefinition","parameters":{"id":435,"nodeType":"ParameterList","parameters":[],"src":"852:2:3"},"returnParameters":{"id":438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":439,"src":"878:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"877:9:3"},"scope":440,"src":"830:57:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":441,"src":"342:547:3","usedErrors":[],"usedEvents":[]}],"src":"113:777:3"},"id":3},"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2653],"ERC1967UpgradeUpgradeable":[765],"IBeaconUpgradeable":[775],"IERC1822ProxiableUpgradeable":[440],"IERC1967Upgradeable":[430],"Initializable":[944],"StorageSlotUpgradeable":[2814]},"id":766,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":442,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"116:23:4"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol","file":"../beacon/IBeaconUpgradeable.sol","id":443,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":776,"src":"141:42:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol","file":"../../interfaces/IERC1967Upgradeable.sol","id":444,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":431,"src":"184:50:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol","file":"../../interfaces/draft-IERC1822Upgradeable.sol","id":445,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":441,"src":"235:56:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":446,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":2654,"src":"292:44:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol","file":"../../utils/StorageSlotUpgradeable.sol","id":447,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":2815,"src":"337:48:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../utils/Initializable.sol","id":449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":766,"sourceUnit":945,"src":"386:57:4","symbolAliases":[{"foreign":{"id":448,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"394:13:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":451,"name":"Initializable","nameLocations":["677:13:4"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"677:13:4"},"id":452,"nodeType":"InheritanceSpecifier","src":"677:13:4"},{"baseName":{"id":453,"name":"IERC1967Upgradeable","nameLocations":["692:19:4"],"nodeType":"IdentifierPath","referencedDeclaration":430,"src":"692:19:4"},"id":454,"nodeType":"InheritanceSpecifier","src":"692:19:4"}],"canonicalName":"ERC1967UpgradeUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":450,"nodeType":"StructuredDocumentation","src":"445:184:4","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._"},"fullyImplemented":true,"id":765,"linearizedBaseContracts":[765,430,944],"name":"ERC1967UpgradeUpgradeable","nameLocation":"648:25:4","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":457,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"822:14:4","nodeType":"VariableDeclaration","scope":765,"src":"797:108:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"797:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"839:66:4","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":458,"nodeType":"StructuredDocumentation","src":"912:214:4","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":461,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1157:20:4","nodeType":"VariableDeclaration","scope":765,"src":"1131:115:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1131:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1180:66:4","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"body":{"id":466,"nodeType":"Block","src":"1312:7:4","statements":[]},"id":467,"implemented":true,"kind":"function","modifiers":[{"id":464,"kind":"modifierInvocation","modifierName":{"id":463,"name":"onlyInitializing","nameLocations":["1295:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1295:16:4"},"nodeType":"ModifierInvocation","src":"1295:16:4"}],"name":"__ERC1967Upgrade_init","nameLocation":"1262:21:4","nodeType":"FunctionDefinition","parameters":{"id":462,"nodeType":"ParameterList","parameters":[],"src":"1283:2:4"},"returnParameters":{"id":465,"nodeType":"ParameterList","parameters":[],"src":"1312:0:4"},"scope":765,"src":"1253:66:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":472,"nodeType":"Block","src":"1394:7:4","statements":[]},"id":473,"implemented":true,"kind":"function","modifiers":[{"id":470,"kind":"modifierInvocation","modifierName":{"id":469,"name":"onlyInitializing","nameLocations":["1377:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1377:16:4"},"nodeType":"ModifierInvocation","src":"1377:16:4"}],"name":"__ERC1967Upgrade_init_unchained","nameLocation":"1334:31:4","nodeType":"FunctionDefinition","parameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"1365:2:4"},"returnParameters":{"id":471,"nodeType":"ParameterList","parameters":[],"src":"1394:0:4"},"scope":765,"src":"1325:76:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":485,"nodeType":"Block","src":"1540:89:4","statements":[{"expression":{"expression":{"arguments":[{"id":481,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"1595:20:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":479,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"1557:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1580:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"1557:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1557:59:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1617:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"1557:65:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":478,"id":484,"nodeType":"Return","src":"1550:72:4"}]},"documentation":{"id":474,"nodeType":"StructuredDocumentation","src":"1406:67:4","text":" @dev Returns the current implementation address."},"id":486,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1487:18:4","nodeType":"FunctionDefinition","parameters":{"id":475,"nodeType":"ParameterList","parameters":[],"src":"1505:2:4"},"returnParameters":{"id":478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":486,"src":"1531:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":476,"name":"address","nodeType":"ElementaryTypeName","src":"1531:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1530:9:4"},"scope":765,"src":"1478:151:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":509,"nodeType":"Block","src":"1783:218:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":495,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"1831:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":493,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"1801:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1820:10:4","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"1801:29:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:48:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1851:47:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1793:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1793:106:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":499,"nodeType":"ExpressionStatement","src":"1793:106:4"},{"expression":{"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":503,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"1947:20:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":500,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"1909:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1932:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"1909:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:59:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1969:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"1909:65:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":506,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"1977:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1909:85:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":508,"nodeType":"ExpressionStatement","src":"1909:85:4"}]},"documentation":{"id":487,"nodeType":"StructuredDocumentation","src":"1635:80:4","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":510,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1729:18:4","nodeType":"FunctionDefinition","parameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":489,"mutability":"mutable","name":"newImplementation","nameLocation":"1756:17:4","nodeType":"VariableDeclaration","scope":510,"src":"1748:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":488,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1747:27:4"},"returnParameters":{"id":491,"nodeType":"ParameterList","parameters":[],"src":"1783:0:4"},"scope":765,"src":"1720:281:4","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":524,"nodeType":"Block","src":"2163:96:4","statements":[{"expression":{"arguments":[{"id":517,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"2192:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":516,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"2173:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2173:37:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":519,"nodeType":"ExpressionStatement","src":"2173:37:4"},{"eventCall":{"arguments":[{"id":521,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"2234:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":520,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2225:8:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2225:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":523,"nodeType":"EmitStatement","src":"2220:32:4"}]},"documentation":{"id":511,"nodeType":"StructuredDocumentation","src":"2007:95:4","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":525,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"2116:10:4","nodeType":"FunctionDefinition","parameters":{"id":514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":513,"mutability":"mutable","name":"newImplementation","nameLocation":"2135:17:4","nodeType":"VariableDeclaration","scope":525,"src":"2127:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":512,"name":"address","nodeType":"ElementaryTypeName","src":"2127:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2126:27:4"},"returnParameters":{"id":515,"nodeType":"ParameterList","parameters":[],"src":"2163:0:4"},"scope":765,"src":"2107:152:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":554,"nodeType":"Block","src":"2491:178:4","statements":[{"expression":{"arguments":[{"id":536,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"2512:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":535,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"2501:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2501:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":538,"nodeType":"ExpressionStatement","src":"2501:29:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":539,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"2544:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2549:6:4","memberName":"length","nodeType":"MemberAccess","src":"2544:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2558:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2544:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":543,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"2563:9:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2544:28:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":553,"nodeType":"IfStatement","src":"2540:123:4","trueBody":{"id":552,"nodeType":"Block","src":"2574:89:4","statements":[{"expression":{"arguments":[{"id":548,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"2628:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":549,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"2647:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":545,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"2588:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2607:20:4","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":2540,"src":"2588:39:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:64:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":551,"nodeType":"ExpressionStatement","src":"2588:64:4"}]}}]},"documentation":{"id":526,"nodeType":"StructuredDocumentation","src":"2265:123:4","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":555,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2402:17:4","nodeType":"FunctionDefinition","parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":528,"mutability":"mutable","name":"newImplementation","nameLocation":"2428:17:4","nodeType":"VariableDeclaration","scope":555,"src":"2420:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":527,"name":"address","nodeType":"ElementaryTypeName","src":"2420:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"data","nameLocation":"2460:4:4","nodeType":"VariableDeclaration","scope":555,"src":"2447:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":529,"name":"bytes","nodeType":"ElementaryTypeName","src":"2447:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":532,"mutability":"mutable","name":"forceCall","nameLocation":"2471:9:4","nodeType":"VariableDeclaration","scope":555,"src":"2466:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":531,"name":"bool","nodeType":"ElementaryTypeName","src":"2466:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2419:62:4"},"returnParameters":{"id":534,"nodeType":"ParameterList","parameters":[],"src":"2491:0:4"},"scope":765,"src":"2393:276:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":607,"nodeType":"Block","src":"2943:842:4","statements":[{"condition":{"expression":{"arguments":[{"id":567,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"3295:14:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":565,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"3257:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3280:14:4","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":2747,"src":"3257:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$2713_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.BooleanSlot storage pointer)"}},"id":568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3257:53:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2713_storage_ptr","typeString":"struct StorageSlotUpgradeable.BooleanSlot storage pointer"}},"id":569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3311:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2712,"src":"3257:59:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":605,"nodeType":"Block","src":"3386:393:4","statements":[{"clauses":[{"block":{"id":590,"nodeType":"Block","src":"3491:115:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":584,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"3517:4:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":585,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3525:20:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3517:28:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3547:43:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3509:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3509:82:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":589,"nodeType":"ExpressionStatement","src":"3509:82:4"}]},"errorName":"","id":591,"nodeType":"TryCatchClause","parameters":{"id":582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":581,"mutability":"mutable","name":"slot","nameLocation":"3485:4:4","nodeType":"VariableDeclaration","scope":591,"src":"3477:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3477:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3476:14:4"},"src":"3468:138:4"},{"block":{"id":596,"nodeType":"Block","src":"3613:89:4","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3638:48:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":592,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3631:6:4","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3631:56:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":595,"nodeType":"ExpressionStatement","src":"3631:56:4"}]},"errorName":"","id":597,"nodeType":"TryCatchClause","src":"3607:95:4"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":576,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"3433:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":575,"name":"IERC1822ProxiableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"3404:28:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822ProxiableUpgradeable_$440_$","typeString":"type(contract IERC1822ProxiableUpgradeable)"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822ProxiableUpgradeable_$440","typeString":"contract IERC1822ProxiableUpgradeable"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3452:13:4","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":439,"src":"3404:61:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:63:4","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":598,"nodeType":"TryStatement","src":"3400:302:4"},{"expression":{"arguments":[{"id":600,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"3733:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":601,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":560,"src":"3752:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":602,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"3758:9:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":599,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":555,"src":"3715:17:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:53:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":604,"nodeType":"ExpressionStatement","src":"3715:53:4"}]},"id":606,"nodeType":"IfStatement","src":"3253:526:4","trueBody":{"id":574,"nodeType":"Block","src":"3318:62:4","statements":[{"expression":{"arguments":[{"id":571,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"3351:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":570,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"3332:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3332:37:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":573,"nodeType":"ExpressionStatement","src":"3332:37:4"}]}}]},"documentation":{"id":556,"nodeType":"StructuredDocumentation","src":"2675:161:4","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":608,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2850:21:4","nodeType":"FunctionDefinition","parameters":{"id":563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":558,"mutability":"mutable","name":"newImplementation","nameLocation":"2880:17:4","nodeType":"VariableDeclaration","scope":608,"src":"2872:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":557,"name":"address","nodeType":"ElementaryTypeName","src":"2872:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":560,"mutability":"mutable","name":"data","nameLocation":"2912:4:4","nodeType":"VariableDeclaration","scope":608,"src":"2899:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":559,"name":"bytes","nodeType":"ElementaryTypeName","src":"2899:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":562,"mutability":"mutable","name":"forceCall","nameLocation":"2923:9:4","nodeType":"VariableDeclaration","scope":608,"src":"2918:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":561,"name":"bool","nodeType":"ElementaryTypeName","src":"2918:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2871:62:4"},"returnParameters":{"id":564,"nodeType":"ParameterList","parameters":[],"src":"2943:0:4"},"scope":765,"src":"2841:944:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":609,"nodeType":"StructuredDocumentation","src":"3791:189:4","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":612,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"4011:11:4","nodeType":"VariableDeclaration","scope":765,"src":"3985:106:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3985:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4025:66:4","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":624,"nodeType":"Block","src":"4206:80:4","statements":[{"expression":{"expression":{"arguments":[{"id":620,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4261:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":618,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"4223:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4246:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"4223:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4223:50:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4274:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"4223:56:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":617,"id":623,"nodeType":"Return","src":"4216:63:4"}]},"documentation":{"id":613,"nodeType":"StructuredDocumentation","src":"4098:50:4","text":" @dev Returns the current admin."},"id":625,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4162:9:4","nodeType":"FunctionDefinition","parameters":{"id":614,"nodeType":"ParameterList","parameters":[],"src":"4171:2:4"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":625,"src":"4197:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":615,"name":"address","nodeType":"ElementaryTypeName","src":"4197:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4196:9:4"},"scope":765,"src":"4153:133:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":650,"nodeType":"Block","src":"4413:167:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":632,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"4431:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4451:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4443:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":633,"name":"address","nodeType":"ElementaryTypeName","src":"4443:7:4","typeDescriptions":{}}},"id":636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4443:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4431:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4455:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4423:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4423:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":640,"nodeType":"ExpressionStatement","src":"4423:73:4"},{"expression":{"id":648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":644,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4544:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":641,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"4506:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4529:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"4506:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4506:50:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4557:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"4506:56:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":647,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"4565:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4506:67:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":649,"nodeType":"ExpressionStatement","src":"4506:67:4"}]},"documentation":{"id":626,"nodeType":"StructuredDocumentation","src":"4292:71:4","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":651,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4377:9:4","nodeType":"FunctionDefinition","parameters":{"id":629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":628,"mutability":"mutable","name":"newAdmin","nameLocation":"4395:8:4","nodeType":"VariableDeclaration","scope":651,"src":"4387:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":627,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4386:18:4"},"returnParameters":{"id":630,"nodeType":"ParameterList","parameters":[],"src":"4413:0:4"},"scope":765,"src":"4368:212:4","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":667,"nodeType":"Block","src":"4740:86:4","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":658,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":625,"src":"4768:9:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4768:11:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":660,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"4781:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":657,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"4755:12:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4755:35:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":662,"nodeType":"EmitStatement","src":"4750:40:4"},{"expression":{"arguments":[{"id":664,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"4810:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"4800:9:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4800:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":666,"nodeType":"ExpressionStatement","src":"4800:19:4"}]},"documentation":{"id":652,"nodeType":"StructuredDocumentation","src":"4586:100:4","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":668,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4700:12:4","nodeType":"FunctionDefinition","parameters":{"id":655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"newAdmin","nameLocation":"4721:8:4","nodeType":"VariableDeclaration","scope":668,"src":"4713:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":653,"name":"address","nodeType":"ElementaryTypeName","src":"4713:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4712:18:4"},"returnParameters":{"id":656,"nodeType":"ParameterList","parameters":[],"src":"4740:0:4"},"scope":765,"src":"4691:135:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":669,"nodeType":"StructuredDocumentation","src":"4832:232:4","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":672,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5095:12:4","nodeType":"VariableDeclaration","scope":765,"src":"5069:107:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5069:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5110:66:4","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"body":{"id":684,"nodeType":"Block","src":"5293:81:4","statements":[{"expression":{"expression":{"arguments":[{"id":680,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"5348:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":678,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"5310:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5333:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"5310:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5310:51:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5362:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"5310:57:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":677,"id":683,"nodeType":"Return","src":"5303:64:4"}]},"documentation":{"id":673,"nodeType":"StructuredDocumentation","src":"5183:51:4","text":" @dev Returns the current beacon."},"id":685,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5248:10:4","nodeType":"FunctionDefinition","parameters":{"id":674,"nodeType":"ParameterList","parameters":[],"src":"5258:2:4"},"returnParameters":{"id":677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":685,"src":"5284:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":675,"name":"address","nodeType":"ElementaryTypeName","src":"5284:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5283:9:4"},"scope":765,"src":"5239:135:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":720,"nodeType":"Block","src":"5503:368:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":694,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":688,"src":"5551:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":692,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"5521:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5540:10:4","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"5521:29:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5521:40:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5563:39:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5513:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5513:90:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":698,"nodeType":"ExpressionStatement","src":"5513:90:4"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":703,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":688,"src":"5683:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":702,"name":"IBeaconUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"5664:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeaconUpgradeable_$775_$","typeString":"type(contract IBeaconUpgradeable)"}},"id":704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5664:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeaconUpgradeable_$775","typeString":"contract IBeaconUpgradeable"}},"id":705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5694:14:4","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":774,"src":"5664:44:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5664:46:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":700,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"5634:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5653:10:4","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"5634:29:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5634:77:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5725:50:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":699,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5613:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:172:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":710,"nodeType":"ExpressionStatement","src":"5613:172:4"},{"expression":{"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":714,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"5833:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":711,"name":"StorageSlotUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2814,"src":"5795:22:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlotUpgradeable_$2814_$","typeString":"type(library StorageSlotUpgradeable)"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5818:14:4","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2736,"src":"5795:37:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2710_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlotUpgradeable.AddressSlot storage pointer)"}},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5795:51:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot storage pointer"}},"id":716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5847:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2709,"src":"5795:57:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":717,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":688,"src":"5855:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5795:69:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":719,"nodeType":"ExpressionStatement","src":"5795:69:4"}]},"documentation":{"id":686,"nodeType":"StructuredDocumentation","src":"5380:71:4","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":721,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5465:10:4","nodeType":"FunctionDefinition","parameters":{"id":689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":688,"mutability":"mutable","name":"newBeacon","nameLocation":"5484:9:4","nodeType":"VariableDeclaration","scope":721,"src":"5476:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":687,"name":"address","nodeType":"ElementaryTypeName","src":"5476:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5475:19:4"},"returnParameters":{"id":690,"nodeType":"ParameterList","parameters":[],"src":"5503:0:4"},"scope":765,"src":"5456:415:4","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":758,"nodeType":"Block","src":"6270:239:4","statements":[{"expression":{"arguments":[{"id":732,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"6291:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":731,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":721,"src":"6280:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6280:21:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":734,"nodeType":"ExpressionStatement","src":"6280:21:4"},{"eventCall":{"arguments":[{"id":736,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"6331:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":735,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"6316:14:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6316:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":738,"nodeType":"EmitStatement","src":"6311:30:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":739,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"6355:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6360:6:4","memberName":"length","nodeType":"MemberAccess","src":"6355:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6355:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":743,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"6374:9:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6355:28:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":757,"nodeType":"IfStatement","src":"6351:152:4","trueBody":{"id":756,"nodeType":"Block","src":"6385:118:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":749,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"6458:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":748,"name":"IBeaconUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"6439:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeaconUpgradeable_$775_$","typeString":"type(contract IBeaconUpgradeable)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeaconUpgradeable_$775","typeString":"contract IBeaconUpgradeable"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:14:4","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":774,"src":"6439:44:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:46:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":753,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"6487:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":745,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"6399:18:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6418:20:4","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":2540,"src":"6399:39:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6399:93:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":755,"nodeType":"ExpressionStatement","src":"6399:93:4"}]}}]},"documentation":{"id":722,"nodeType":"StructuredDocumentation","src":"5877:292:4","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":759,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6183:23:4","nodeType":"FunctionDefinition","parameters":{"id":729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":724,"mutability":"mutable","name":"newBeacon","nameLocation":"6215:9:4","nodeType":"VariableDeclaration","scope":759,"src":"6207:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":723,"name":"address","nodeType":"ElementaryTypeName","src":"6207:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":726,"mutability":"mutable","name":"data","nameLocation":"6239:4:4","nodeType":"VariableDeclaration","scope":759,"src":"6226:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":725,"name":"bytes","nodeType":"ElementaryTypeName","src":"6226:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"forceCall","nameLocation":"6250:9:4","nodeType":"VariableDeclaration","scope":759,"src":"6245:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":727,"name":"bool","nodeType":"ElementaryTypeName","src":"6245:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6206:54:4"},"returnParameters":{"id":730,"nodeType":"ParameterList","parameters":[],"src":"6270:0:4"},"scope":765,"src":"6174:335:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":760,"nodeType":"StructuredDocumentation","src":"6515:254:4","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":764,"mutability":"mutable","name":"__gap","nameLocation":"6794:5:4","nodeType":"VariableDeclaration","scope":765,"src":"6774:25:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":761,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":763,"length":{"hexValue":"3530","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6782:2:4","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"6774:11:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":766,"src":"630:6172:4","usedErrors":[],"usedEvents":[417,424,429,790]}],"src":"116:6687:4"},"id":4},"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol","exportedSymbols":{"IBeaconUpgradeable":[775]},"id":776,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":767,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeaconUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":768,"nodeType":"StructuredDocumentation","src":"118:79:5","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":775,"linearizedBaseContracts":[775],"name":"IBeaconUpgradeable","nameLocation":"208:18:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":769,"nodeType":"StructuredDocumentation","src":"233:162:5","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":774,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"409:14:5","nodeType":"FunctionDefinition","parameters":{"id":770,"nodeType":"ParameterList","parameters":[],"src":"423:2:5"},"returnParameters":{"id":773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":774,"src":"449:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":771,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"448:9:5"},"scope":775,"src":"400:58:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":776,"src":"198:262:5","usedErrors":[],"usedEvents":[]}],"src":"93:368:5"},"id":5},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[2653],"Initializable":[944]},"id":945,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":777,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:6"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":778,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":945,"sourceUnit":2654,"src":"138:44:6","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":779,"nodeType":"StructuredDocumentation","src":"184:2209:6","text":" @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 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 For example:\n [.hljs-theme-light.nopadding]\n ```solidity\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 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 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 [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\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 [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":944,"linearizedBaseContracts":[944],"name":"Initializable","nameLocation":"2412:13:6","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":780,"nodeType":"StructuredDocumentation","src":"2432:109:6","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":782,"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:6","nodeType":"VariableDeclaration","scope":944,"src":"2546:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":781,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":783,"nodeType":"StructuredDocumentation","src":"2579:91:6","text":" @dev Indicates that the contract is in the process of being initialized."},"id":785,"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:6","nodeType":"VariableDeclaration","scope":944,"src":"2675:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":784,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":786,"nodeType":"StructuredDocumentation","src":"2708:90:6","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":790,"name":"Initialized","nameLocation":"2809:11:6","nodeType":"EventDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":788,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:6","nodeType":"VariableDeclaration","scope":790,"src":"2821:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":787,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:6"},"src":"2803:33:6"},{"body":{"id":845,"nodeType":"Block","src":"3269:483:6","statements":[{"assignments":[794],"declarations":[{"constant":false,"id":794,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:6","nodeType":"VariableDeclaration","scope":845,"src":"3279:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":793,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":797,"initialValue":{"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:6","subExpression":{"id":795,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"3302:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":799,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"3347:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":800,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"3365:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":804,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:6","subExpression":{"arguments":[{"arguments":[{"id":809,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$944","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$944","typeString":"contract Initializable"}],"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":807,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:6","typeDescriptions":{}}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":805,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"3388:18:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3407:10:6","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"3388:29:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":813,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"3436:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":817,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":798,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3325:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:201:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":821,"nodeType":"ExpressionStatement","src":"3325:201:6"},{"expression":{"id":824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":822,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"3536:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":825,"nodeType":"ExpressionStatement","src":"3536:16:6"},{"condition":{"id":826,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"3566:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":832,"nodeType":"IfStatement","src":"3562:65:6","trueBody":{"id":831,"nodeType":"Block","src":"3582:45:6","statements":[{"expression":{"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":827,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"3596:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":830,"nodeType":"ExpressionStatement","src":"3596:20:6"}]}},{"id":833,"nodeType":"PlaceholderStatement","src":"3636:1:6"},{"condition":{"id":834,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"3651:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":844,"nodeType":"IfStatement","src":"3647:99:6","trueBody":{"id":843,"nodeType":"Block","src":"3667:79:6","statements":[{"expression":{"id":837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":835,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"3681:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":838,"nodeType":"ExpressionStatement","src":"3681:21:6"},{"eventCall":{"arguments":[{"hexValue":"31","id":840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":839,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3721:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":842,"nodeType":"EmitStatement","src":"3716:19:6"}]}}]},"documentation":{"id":791,"nodeType":"StructuredDocumentation","src":"2842:399:6","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"id":846,"name":"initializer","nameLocation":"3255:11:6","nodeType":"ModifierDefinition","parameters":{"id":792,"nodeType":"ParameterList","parameters":[],"src":"3266:2:6"},"src":"3246:506:6","virtual":false,"visibility":"internal"},{"body":{"id":878,"nodeType":"Block","src":"4863:255:6","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:6","subExpression":{"id":852,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"4882:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":854,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"4899:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":855,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"4914:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4873:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:99:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":860,"nodeType":"ExpressionStatement","src":"4873:99:6"},{"expression":{"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":861,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"4982:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":862,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"4997:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":864,"nodeType":"ExpressionStatement","src":"4982:22:6"},{"expression":{"id":867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":865,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"5014:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":868,"nodeType":"ExpressionStatement","src":"5014:20:6"},{"id":869,"nodeType":"PlaceholderStatement","src":"5044:1:6"},{"expression":{"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":870,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"5055:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":873,"nodeType":"ExpressionStatement","src":"5055:21:6"},{"eventCall":{"arguments":[{"id":875,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"5103:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":874,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"5091:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":877,"nodeType":"EmitStatement","src":"5086:25:6"}]},"documentation":{"id":847,"nodeType":"StructuredDocumentation","src":"3758:1062:6","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":879,"name":"reinitializer","nameLocation":"4834:13:6","nodeType":"ModifierDefinition","parameters":{"id":850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":849,"mutability":"mutable","name":"version","nameLocation":"4854:7:6","nodeType":"VariableDeclaration","scope":879,"src":"4848:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":848,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:6"},"src":"4825:293:6","virtual":false,"visibility":"internal"},{"body":{"id":888,"nodeType":"Block","src":"5356:97:6","statements":[{"expression":{"arguments":[{"id":883,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"5374:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5366:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":886,"nodeType":"ExpressionStatement","src":"5366:69:6"},{"id":887,"nodeType":"PlaceholderStatement","src":"5445:1:6"}]},"documentation":{"id":880,"nodeType":"StructuredDocumentation","src":"5124:199:6","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":889,"name":"onlyInitializing","nameLocation":"5337:16:6","nodeType":"ModifierDefinition","parameters":{"id":881,"nodeType":"ParameterList","parameters":[],"src":"5353:2:6"},"src":"5328:125:6","virtual":false,"visibility":"internal"},{"body":{"id":924,"nodeType":"Block","src":"5988:231:6","statements":[{"expression":{"arguments":[{"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:6","subExpression":{"id":894,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"6007:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":893,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5998:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:66:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":898,"nodeType":"ExpressionStatement","src":"5998:66:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":899,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"6078:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":901,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:6","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":900,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6106:3:6","memberName":"max","nodeType":"MemberAccess","src":"6094:15:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":923,"nodeType":"IfStatement","src":"6074:139:6","trueBody":{"id":922,"nodeType":"Block","src":"6111:102:6","statements":[{"expression":{"id":912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":906,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"6125:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":908,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:6","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":907,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:3:6","memberName":"max","nodeType":"MemberAccess","src":"6140:15:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":913,"nodeType":"ExpressionStatement","src":"6125:30:6"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":916,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:6","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":915,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6198:3:6","memberName":"max","nodeType":"MemberAccess","src":"6186:15:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":914,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"6174:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":921,"nodeType":"EmitStatement","src":"6169:33:6"}]}}]},"documentation":{"id":890,"nodeType":"StructuredDocumentation","src":"5459:475:6","text":" @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 Emits an {Initialized} event the first time it is successfully executed."},"id":925,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:6","nodeType":"FunctionDefinition","parameters":{"id":891,"nodeType":"ParameterList","parameters":[],"src":"5968:2:6"},"returnParameters":{"id":892,"nodeType":"ParameterList","parameters":[],"src":"5988:0:6"},"scope":944,"src":"5939:280:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":933,"nodeType":"Block","src":"6393:36:6","statements":[{"expression":{"id":931,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"6410:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":930,"id":932,"nodeType":"Return","src":"6403:19:6"}]},"documentation":{"id":926,"nodeType":"StructuredDocumentation","src":"6225:99:6","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":934,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:6","nodeType":"FunctionDefinition","parameters":{"id":927,"nodeType":"ParameterList","parameters":[],"src":"6360:2:6"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":934,"src":"6386:5:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":928,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:6"},"scope":944,"src":"6329:100:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":942,"nodeType":"Block","src":"6601:37:6","statements":[{"expression":{"id":940,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"6618:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":939,"id":941,"nodeType":"Return","src":"6611:20:6"}]},"documentation":{"id":935,"nodeType":"StructuredDocumentation","src":"6435:105:6","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":943,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:6","nodeType":"FunctionDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[],"src":"6569:2:6"},"returnParameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":943,"src":"6595:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":937,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:6"},"scope":944,"src":"6545:93:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":945,"src":"2394:4246:6","usedErrors":[],"usedEvents":[790]}],"src":"113:6528:6"},"id":6},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2653],"ERC1967UpgradeUpgradeable":[765],"IBeaconUpgradeable":[775],"IERC1822ProxiableUpgradeable":[440],"IERC1967Upgradeable":[430],"Initializable":[944],"StorageSlotUpgradeable":[2814],"UUPSUpgradeable":[1081]},"id":1082,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":946,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:7"},{"absolutePath":"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol","file":"../../interfaces/draft-IERC1822Upgradeable.sol","id":947,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1082,"sourceUnit":441,"src":"140:56:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol","file":"../ERC1967/ERC1967UpgradeUpgradeable.sol","id":948,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1082,"sourceUnit":766,"src":"197:50:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"./Initializable.sol","id":950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1082,"sourceUnit":945,"src":"248:50:7","symbolAliases":[{"foreign":{"id":949,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"256:13:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":952,"name":"Initializable","nameLocations":["986:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"986:13:7"},"id":953,"nodeType":"InheritanceSpecifier","src":"986:13:7"},{"baseName":{"id":954,"name":"IERC1822ProxiableUpgradeable","nameLocations":["1001:28:7"],"nodeType":"IdentifierPath","referencedDeclaration":440,"src":"1001:28:7"},"id":955,"nodeType":"InheritanceSpecifier","src":"1001:28:7"},{"baseName":{"id":956,"name":"ERC1967UpgradeUpgradeable","nameLocations":["1031:25:7"],"nodeType":"IdentifierPath","referencedDeclaration":765,"src":"1031:25:7"},"id":957,"nodeType":"InheritanceSpecifier","src":"1031:25:7"}],"canonicalName":"UUPSUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":951,"nodeType":"StructuredDocumentation","src":"300:648:7","text":" @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an\n {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.\n A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is\n reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing\n `UUPSUpgradeable` with a custom implementation of upgrades.\n The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.\n _Available since v4.1._"},"fullyImplemented":false,"id":1081,"linearizedBaseContracts":[1081,765,430,440,944],"name":"UUPSUpgradeable","nameLocation":"967:15:7","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":958,"nodeType":"StructuredDocumentation","src":"1063:87:7","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment"},"id":964,"mutability":"immutable","name":"__self","nameLocation":"1181:6:7","nodeType":"VariableDeclaration","scope":1081,"src":"1155:48:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":959,"name":"address","nodeType":"ElementaryTypeName","src":"1155:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"id":962,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1198:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}],"id":961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1190:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":960,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:7","typeDescriptions":{}}},"id":963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1190:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":986,"nodeType":"Block","src":"1729:205:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1755:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}],"id":969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1747:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":968,"name":"address","nodeType":"ElementaryTypeName","src":"1747:7:7","typeDescriptions":{}}},"id":971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1747:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":972,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"1764:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1747:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682064656c656761746563616c6c","id":974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1772:46:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb","typeString":"literal_string \"Function must be called through delegatecall\""},"value":"Function must be called through delegatecall"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb","typeString":"literal_string \"Function must be called through delegatecall\""}],"id":967,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1739:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1739:80:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":976,"nodeType":"ExpressionStatement","src":"1739:80:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":978,"name":"_getImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"1837:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":980,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"1861:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1837:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f756768206163746976652070726f7879","id":982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1869:46:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434","typeString":"literal_string \"Function must be called through active proxy\""},"value":"Function must be called through active proxy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434","typeString":"literal_string \"Function must be called through active proxy\""}],"id":977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1829:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:87:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":984,"nodeType":"ExpressionStatement","src":"1829:87:7"},{"id":985,"nodeType":"PlaceholderStatement","src":"1926:1:7"}]},"documentation":{"id":965,"nodeType":"StructuredDocumentation","src":"1210:493:7","text":" @dev Check that the execution is being performed through a delegatecall call and that the execution context is\n a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case\n for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a\n function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to\n fail."},"id":987,"name":"onlyProxy","nameLocation":"1717:9:7","nodeType":"ModifierDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[],"src":"1726:2:7"},"src":"1708:226:7","virtual":false,"visibility":"internal"},{"body":{"id":1001,"nodeType":"Block","src":"2164:120:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":993,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2190:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UUPSUpgradeable_$1081","typeString":"contract UUPSUpgradeable"}],"id":992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2182:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":991,"name":"address","nodeType":"ElementaryTypeName","src":"2182:7:7","typeDescriptions":{}}},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":995,"name":"__self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"2199:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2182:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c6c6564207468726f7567682064656c656761746563616c6c","id":997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2207:58:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4","typeString":"literal_string \"UUPSUpgradeable: must not be called through delegatecall\""},"value":"UUPSUpgradeable: must not be called through delegatecall"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4","typeString":"literal_string \"UUPSUpgradeable: must not be called through delegatecall\""}],"id":990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2174:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:92:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":999,"nodeType":"ExpressionStatement","src":"2174:92:7"},{"id":1000,"nodeType":"PlaceholderStatement","src":"2276:1:7"}]},"documentation":{"id":988,"nodeType":"StructuredDocumentation","src":"1940:195:7","text":" @dev Check that the execution is not being performed through a delegate call. This allows a function to be\n callable on the implementing contract but not through proxies."},"id":1002,"name":"notDelegated","nameLocation":"2149:12:7","nodeType":"ModifierDefinition","parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"2161:2:7"},"src":"2140:144:7","virtual":false,"visibility":"internal"},{"body":{"id":1007,"nodeType":"Block","src":"2350:7:7","statements":[]},"id":1008,"implemented":true,"kind":"function","modifiers":[{"id":1005,"kind":"modifierInvocation","modifierName":{"id":1004,"name":"onlyInitializing","nameLocations":["2333:16:7"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"2333:16:7"},"nodeType":"ModifierInvocation","src":"2333:16:7"}],"name":"__UUPSUpgradeable_init","nameLocation":"2299:22:7","nodeType":"FunctionDefinition","parameters":{"id":1003,"nodeType":"ParameterList","parameters":[],"src":"2321:2:7"},"returnParameters":{"id":1006,"nodeType":"ParameterList","parameters":[],"src":"2350:0:7"},"scope":1081,"src":"2290:67:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1013,"nodeType":"Block","src":"2433:7:7","statements":[]},"id":1014,"implemented":true,"kind":"function","modifiers":[{"id":1011,"kind":"modifierInvocation","modifierName":{"id":1010,"name":"onlyInitializing","nameLocations":["2416:16:7"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"2416:16:7"},"nodeType":"ModifierInvocation","src":"2416:16:7"}],"name":"__UUPSUpgradeable_init_unchained","nameLocation":"2372:32:7","nodeType":"FunctionDefinition","parameters":{"id":1009,"nodeType":"ParameterList","parameters":[],"src":"2404:2:7"},"returnParameters":{"id":1012,"nodeType":"ParameterList","parameters":[],"src":"2433:0:7"},"scope":1081,"src":"2363:77:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[439],"body":{"id":1025,"nodeType":"Block","src":"3114:44:7","statements":[{"expression":{"id":1023,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3131:20:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1022,"id":1024,"nodeType":"Return","src":"3124:27:7"}]},"documentation":{"id":1015,"nodeType":"StructuredDocumentation","src":"2445:577:7","text":" @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the\n implementation. It is used to validate the implementation's compatibility when performing an upgrade.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"functionSelector":"52d1902d","id":1026,"implemented":true,"kind":"function","modifiers":[{"id":1019,"kind":"modifierInvocation","modifierName":{"id":1018,"name":"notDelegated","nameLocations":["3083:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":1002,"src":"3083:12:7"},"nodeType":"ModifierInvocation","src":"3083:12:7"}],"name":"proxiableUUID","nameLocation":"3036:13:7","nodeType":"FunctionDefinition","overrides":{"id":1017,"nodeType":"OverrideSpecifier","overrides":[],"src":"3074:8:7"},"parameters":{"id":1016,"nodeType":"ParameterList","parameters":[],"src":"3049:2:7"},"returnParameters":{"id":1022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1026,"src":"3105:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3105:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3104:9:7"},"scope":1081,"src":"3027:131:7","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":1047,"nodeType":"Block","src":"3479:124:7","statements":[{"expression":{"arguments":[{"id":1035,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"3507:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1034,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"3489:17:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3489:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1037,"nodeType":"ExpressionStatement","src":"3489:36:7"},{"expression":{"arguments":[{"id":1039,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"3557:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3586:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3576:9:7","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1040,"name":"bytes","nodeType":"ElementaryTypeName","src":"3580:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3576:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":1044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3590:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1038,"name":"_upgradeToAndCallUUPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"3535:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:61:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1046,"nodeType":"ExpressionStatement","src":"3535:61:7"}]},"documentation":{"id":1027,"nodeType":"StructuredDocumentation","src":"3164:239:7","text":" @dev Upgrade the implementation of the proxy to `newImplementation`.\n Calls {_authorizeUpgrade}.\n Emits an {Upgraded} event.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall"},"functionSelector":"3659cfe6","id":1048,"implemented":true,"kind":"function","modifiers":[{"id":1032,"kind":"modifierInvocation","modifierName":{"id":1031,"name":"onlyProxy","nameLocations":["3469:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":987,"src":"3469:9:7"},"nodeType":"ModifierInvocation","src":"3469:9:7"}],"name":"upgradeTo","nameLocation":"3417:9:7","nodeType":"FunctionDefinition","parameters":{"id":1030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1029,"mutability":"mutable","name":"newImplementation","nameLocation":"3435:17:7","nodeType":"VariableDeclaration","scope":1048,"src":"3427:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1028,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:27:7"},"returnParameters":{"id":1033,"nodeType":"ParameterList","parameters":[],"src":"3479:0:7"},"scope":1081,"src":"3408:195:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1068,"nodeType":"Block","src":"4027:115:7","statements":[{"expression":{"arguments":[{"id":1059,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"4055:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1058,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"4037:17:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4037:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1061,"nodeType":"ExpressionStatement","src":"4037:36:7"},{"expression":{"arguments":[{"id":1063,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"4105:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1064,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1053,"src":"4124:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":1065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4130:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1062,"name":"_upgradeToAndCallUUPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"4083:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":1066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4083:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1067,"nodeType":"ExpressionStatement","src":"4083:52:7"}]},"documentation":{"id":1049,"nodeType":"StructuredDocumentation","src":"3609:308:7","text":" @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call\n encoded in `data`.\n Calls {_authorizeUpgrade}.\n Emits an {Upgraded} event.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall"},"functionSelector":"4f1ef286","id":1069,"implemented":true,"kind":"function","modifiers":[{"id":1056,"kind":"modifierInvocation","modifierName":{"id":1055,"name":"onlyProxy","nameLocations":["4017:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":987,"src":"4017:9:7"},"nodeType":"ModifierInvocation","src":"4017:9:7"}],"name":"upgradeToAndCall","nameLocation":"3931:16:7","nodeType":"FunctionDefinition","parameters":{"id":1054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1051,"mutability":"mutable","name":"newImplementation","nameLocation":"3956:17:7","nodeType":"VariableDeclaration","scope":1069,"src":"3948:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1050,"name":"address","nodeType":"ElementaryTypeName","src":"3948:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1053,"mutability":"mutable","name":"data","nameLocation":"3988:4:7","nodeType":"VariableDeclaration","scope":1069,"src":"3975:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1052,"name":"bytes","nodeType":"ElementaryTypeName","src":"3975:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3947:46:7"},"returnParameters":{"id":1057,"nodeType":"ParameterList","parameters":[],"src":"4027:0:7"},"scope":1081,"src":"3922:220:7","stateMutability":"payable","virtual":true,"visibility":"public"},{"documentation":{"id":1070,"nodeType":"StructuredDocumentation","src":"4148:397:7","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by\n {upgradeTo} and {upgradeToAndCall}.\n Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.\n ```solidity\n function _authorizeUpgrade(address) internal override onlyOwner {}\n ```"},"id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","nameLocation":"4559:17:7","nodeType":"FunctionDefinition","parameters":{"id":1073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1072,"mutability":"mutable","name":"newImplementation","nameLocation":"4585:17:7","nodeType":"VariableDeclaration","scope":1075,"src":"4577:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1071,"name":"address","nodeType":"ElementaryTypeName","src":"4577:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4576:27:7"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"4620:0:7"},"scope":1081,"src":"4550:71:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1076,"nodeType":"StructuredDocumentation","src":"4627:254:7","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":1080,"mutability":"mutable","name":"__gap","nameLocation":"4906:5:7","nodeType":"VariableDeclaration","scope":1081,"src":"4886:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1077,"name":"uint256","nodeType":"ElementaryTypeName","src":"4886:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1079,"length":{"hexValue":"3530","id":1078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4894:2:7","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"4886:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":1082,"src":"949:3965:7","usedErrors":[],"usedEvents":[417,424,429,790]}],"src":"115:4800:7"},"id":7},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2704],"Initializable":[944],"PausableUpgradeable":[1209]},"id":1210,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1083,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:8"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":1084,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1210,"sourceUnit":2705,"src":"130:41:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":1086,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1210,"sourceUnit":945,"src":"172:63:8","symbolAliases":[{"foreign":{"id":1085,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"180:13:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1088,"name":"Initializable","nameLocations":["718:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"718:13:8"},"id":1089,"nodeType":"InheritanceSpecifier","src":"718:13:8"},{"baseName":{"id":1090,"name":"ContextUpgradeable","nameLocations":["733:18:8"],"nodeType":"IdentifierPath","referencedDeclaration":2704,"src":"733:18:8"},"id":1091,"nodeType":"InheritanceSpecifier","src":"733:18:8"}],"canonicalName":"PausableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1087,"nodeType":"StructuredDocumentation","src":"237:439:8","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":1209,"linearizedBaseContracts":[1209,2704,944],"name":"PausableUpgradeable","nameLocation":"695:19:8","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1092,"nodeType":"StructuredDocumentation","src":"758:73:8","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":1096,"name":"Paused","nameLocation":"842:6:8","nodeType":"EventDefinition","parameters":{"id":1095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"857:7:8","nodeType":"VariableDeclaration","scope":1096,"src":"849:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1093,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"848:17:8"},"src":"836:30:8"},{"anonymous":false,"documentation":{"id":1097,"nodeType":"StructuredDocumentation","src":"872:70:8","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":1101,"name":"Unpaused","nameLocation":"953:8:8","nodeType":"EventDefinition","parameters":{"id":1100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1099,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"970:7:8","nodeType":"VariableDeclaration","scope":1101,"src":"962:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1098,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"961:17:8"},"src":"947:32:8"},{"constant":false,"id":1103,"mutability":"mutable","name":"_paused","nameLocation":"998:7:8","nodeType":"VariableDeclaration","scope":1209,"src":"985:20:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1102,"name":"bool","nodeType":"ElementaryTypeName","src":"985:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":1112,"nodeType":"Block","src":"1137:44:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1109,"name":"__Pausable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1123,"src":"1147:25:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1111,"nodeType":"ExpressionStatement","src":"1147:27:8"}]},"documentation":{"id":1104,"nodeType":"StructuredDocumentation","src":"1012:67:8","text":" @dev Initializes the contract in unpaused state."},"id":1113,"implemented":true,"kind":"function","modifiers":[{"id":1107,"kind":"modifierInvocation","modifierName":{"id":1106,"name":"onlyInitializing","nameLocations":["1120:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1120:16:8"},"nodeType":"ModifierInvocation","src":"1120:16:8"}],"name":"__Pausable_init","nameLocation":"1093:15:8","nodeType":"FunctionDefinition","parameters":{"id":1105,"nodeType":"ParameterList","parameters":[],"src":"1108:2:8"},"returnParameters":{"id":1108,"nodeType":"ParameterList","parameters":[],"src":"1137:0:8"},"scope":1209,"src":"1084:97:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1122,"nodeType":"Block","src":"1250:32:8","statements":[{"expression":{"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1118,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"1260:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1270:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1260:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1121,"nodeType":"ExpressionStatement","src":"1260:15:8"}]},"id":1123,"implemented":true,"kind":"function","modifiers":[{"id":1116,"kind":"modifierInvocation","modifierName":{"id":1115,"name":"onlyInitializing","nameLocations":["1233:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1233:16:8"},"nodeType":"ModifierInvocation","src":"1233:16:8"}],"name":"__Pausable_init_unchained","nameLocation":"1196:25:8","nodeType":"FunctionDefinition","parameters":{"id":1114,"nodeType":"ParameterList","parameters":[],"src":"1221:2:8"},"returnParameters":{"id":1117,"nodeType":"ParameterList","parameters":[],"src":"1250:0:8"},"scope":1209,"src":"1187:95:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1130,"nodeType":"Block","src":"1493:47:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1126,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"1503:17:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1128,"nodeType":"ExpressionStatement","src":"1503:19:8"},{"id":1129,"nodeType":"PlaceholderStatement","src":"1532:1:8"}]},"documentation":{"id":1124,"nodeType":"StructuredDocumentation","src":"1288:175:8","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":1131,"name":"whenNotPaused","nameLocation":"1477:13:8","nodeType":"ModifierDefinition","parameters":{"id":1125,"nodeType":"ParameterList","parameters":[],"src":"1490:2:8"},"src":"1468:72:8","virtual":false,"visibility":"internal"},{"body":{"id":1138,"nodeType":"Block","src":"1740:44:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1134,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"1750:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1136,"nodeType":"ExpressionStatement","src":"1750:16:8"},{"id":1137,"nodeType":"PlaceholderStatement","src":"1776:1:8"}]},"documentation":{"id":1132,"nodeType":"StructuredDocumentation","src":"1546:167:8","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":1139,"name":"whenPaused","nameLocation":"1727:10:8","nodeType":"ModifierDefinition","parameters":{"id":1133,"nodeType":"ParameterList","parameters":[],"src":"1737:2:8"},"src":"1718:66:8","virtual":false,"visibility":"internal"},{"body":{"id":1147,"nodeType":"Block","src":"1932:31:8","statements":[{"expression":{"id":1145,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"1949:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1144,"id":1146,"nodeType":"Return","src":"1942:14:8"}]},"documentation":{"id":1140,"nodeType":"StructuredDocumentation","src":"1790:84:8","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":1148,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1888:6:8","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[],"src":"1894:2:8"},"returnParameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"1926:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1142,"name":"bool","nodeType":"ElementaryTypeName","src":"1926:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1925:6:8"},"scope":1209,"src":"1879:84:8","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1159,"nodeType":"Block","src":"2082:55:8","statements":[{"expression":{"arguments":[{"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2100:9:8","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1153,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"2101:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":1154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":1156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:18:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":1152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2092:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1158,"nodeType":"ExpressionStatement","src":"2092:38:8"}]},"documentation":{"id":1149,"nodeType":"StructuredDocumentation","src":"1969:57:8","text":" @dev Throws if the contract is paused."},"id":1160,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"2040:17:8","nodeType":"FunctionDefinition","parameters":{"id":1150,"nodeType":"ParameterList","parameters":[],"src":"2057:2:8"},"returnParameters":{"id":1151,"nodeType":"ParameterList","parameters":[],"src":"2082:0:8"},"scope":1209,"src":"2031:106:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1170,"nodeType":"Block","src":"2257:58:8","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1165,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"2275:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2275:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":1167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2285:22:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":1164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2267:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2267:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1169,"nodeType":"ExpressionStatement","src":"2267:41:8"}]},"documentation":{"id":1161,"nodeType":"StructuredDocumentation","src":"2143:61:8","text":" @dev Throws if the contract is not paused."},"id":1171,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"2218:14:8","nodeType":"FunctionDefinition","parameters":{"id":1162,"nodeType":"ParameterList","parameters":[],"src":"2232:2:8"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[],"src":"2257:0:8"},"scope":1209,"src":"2209:106:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1186,"nodeType":"Block","src":"2499:66:8","statements":[{"expression":{"id":1179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1177,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"2509:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2519:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2509:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1180,"nodeType":"ExpressionStatement","src":"2509:14:8"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1182,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2545:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1181,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"2538:6:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1185,"nodeType":"EmitStatement","src":"2533:25:8"}]},"documentation":{"id":1172,"nodeType":"StructuredDocumentation","src":"2321:124:8","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":1187,"implemented":true,"kind":"function","modifiers":[{"id":1175,"kind":"modifierInvocation","modifierName":{"id":1174,"name":"whenNotPaused","nameLocations":["2485:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"2485:13:8"},"nodeType":"ModifierInvocation","src":"2485:13:8"}],"name":"_pause","nameLocation":"2459:6:8","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[],"src":"2465:2:8"},"returnParameters":{"id":1176,"nodeType":"ParameterList","parameters":[],"src":"2499:0:8"},"scope":1209,"src":"2450:115:8","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1202,"nodeType":"Block","src":"2745:69:8","statements":[{"expression":{"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1193,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"2755:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2765:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2755:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1196,"nodeType":"ExpressionStatement","src":"2755:15:8"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1198,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2794:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2794:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1197,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"2785:8:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1201,"nodeType":"EmitStatement","src":"2780:27:8"}]},"documentation":{"id":1188,"nodeType":"StructuredDocumentation","src":"2571:121:8","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":1203,"implemented":true,"kind":"function","modifiers":[{"id":1191,"kind":"modifierInvocation","modifierName":{"id":1190,"name":"whenPaused","nameLocations":["2734:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":1139,"src":"2734:10:8"},"nodeType":"ModifierInvocation","src":"2734:10:8"}],"name":"_unpause","nameLocation":"2706:8:8","nodeType":"FunctionDefinition","parameters":{"id":1189,"nodeType":"ParameterList","parameters":[],"src":"2714:2:8"},"returnParameters":{"id":1192,"nodeType":"ParameterList","parameters":[],"src":"2745:0:8"},"scope":1209,"src":"2697:117:8","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1204,"nodeType":"StructuredDocumentation","src":"2820:254:8","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":1208,"mutability":"mutable","name":"__gap","nameLocation":"3099:5:8","nodeType":"VariableDeclaration","scope":1209,"src":"3079:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":1205,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1207,"length":{"hexValue":"3439","id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3087:2:8","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3079:11:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":1210,"src":"677:2430:8","usedErrors":[],"usedEvents":[790,1096,1101]}],"src":"105:3003:8"},"id":8},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2653],"ContextUpgradeable":[2704],"ERC165Upgradeable":[3088],"ERC721Upgradeable":[2162],"IERC165Upgradeable":[3100],"IERC721MetadataUpgradeable":[2323],"IERC721ReceiverUpgradeable":[2180],"IERC721Upgradeable":[2296],"Initializable":[944],"MathUpgradeable":[3966],"SignedMathUpgradeable":[4071],"StringsUpgradeable":[3043]},"id":2163,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:9"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"./IERC721Upgradeable.sol","id":1212,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":2297,"src":"132:34:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol","file":"./IERC721ReceiverUpgradeable.sol","id":1213,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":2181,"src":"167:42:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","file":"./extensions/IERC721MetadataUpgradeable.sol","id":1214,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":2324,"src":"210:53:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":1215,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":2654,"src":"264:44:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../../utils/ContextUpgradeable.sol","id":1216,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":2705,"src":"309:44:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol","file":"../../utils/StringsUpgradeable.sol","id":1217,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":3044,"src":"354:44:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","file":"../../utils/introspection/ERC165Upgradeable.sol","id":1218,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":3089,"src":"399:57:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":1220,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2163,"sourceUnit":945,"src":"457:66:9","symbolAliases":[{"foreign":{"id":1219,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"465:13:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1222,"name":"Initializable","nameLocations":["802:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"802:13:9"},"id":1223,"nodeType":"InheritanceSpecifier","src":"802:13:9"},{"baseName":{"id":1224,"name":"ContextUpgradeable","nameLocations":["817:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":2704,"src":"817:18:9"},"id":1225,"nodeType":"InheritanceSpecifier","src":"817:18:9"},{"baseName":{"id":1226,"name":"ERC165Upgradeable","nameLocations":["837:17:9"],"nodeType":"IdentifierPath","referencedDeclaration":3088,"src":"837:17:9"},"id":1227,"nodeType":"InheritanceSpecifier","src":"837:17:9"},{"baseName":{"id":1228,"name":"IERC721Upgradeable","nameLocations":["856:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":2296,"src":"856:18:9"},"id":1229,"nodeType":"InheritanceSpecifier","src":"856:18:9"},{"baseName":{"id":1230,"name":"IERC721MetadataUpgradeable","nameLocations":["876:26:9"],"nodeType":"IdentifierPath","referencedDeclaration":2323,"src":"876:26:9"},"id":1231,"nodeType":"InheritanceSpecifier","src":"876:26:9"}],"canonicalName":"ERC721Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1221,"nodeType":"StructuredDocumentation","src":"525:246:9","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":2162,"linearizedBaseContracts":[2162,2323,2296,3088,3100,2704,944],"name":"ERC721Upgradeable","nameLocation":"781:17:9","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1234,"libraryName":{"id":1232,"name":"AddressUpgradeable","nameLocations":["915:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"915:18:9"},"nodeType":"UsingForDirective","src":"909:37:9","typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":1237,"libraryName":{"id":1235,"name":"StringsUpgradeable","nameLocations":["957:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":3043,"src":"957:18:9"},"nodeType":"UsingForDirective","src":"951:37:9","typeName":{"id":1236,"name":"uint256","nodeType":"ElementaryTypeName","src":"980:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":1239,"mutability":"mutable","name":"_name","nameLocation":"1027:5:9","nodeType":"VariableDeclaration","scope":2162,"src":"1012:20:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1238,"name":"string","nodeType":"ElementaryTypeName","src":"1012:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":1241,"mutability":"mutable","name":"_symbol","nameLocation":"1074:7:9","nodeType":"VariableDeclaration","scope":2162,"src":"1059:22:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1240,"name":"string","nodeType":"ElementaryTypeName","src":"1059:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":1245,"mutability":"mutable","name":"_owners","nameLocation":"1170:7:9","nodeType":"VariableDeclaration","scope":2162,"src":"1134:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":1244,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1242,"name":"uint256","nodeType":"ElementaryTypeName","src":"1142:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1134:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"1153:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":1249,"mutability":"mutable","name":"_balances","nameLocation":"1264:9:9","nodeType":"VariableDeclaration","scope":2162,"src":"1228:45:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1248,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1246,"name":"address","nodeType":"ElementaryTypeName","src":"1236:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1228:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1247,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1253,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1365:15:9","nodeType":"VariableDeclaration","scope":2162,"src":"1329:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":1252,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1250,"name":"uint256","nodeType":"ElementaryTypeName","src":"1337:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1329:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1251,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":1259,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1488:18:9","nodeType":"VariableDeclaration","scope":2162,"src":"1435:71:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":1258,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1254,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1435:44:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1257,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1255,"name":"address","nodeType":"ElementaryTypeName","src":"1462:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1454:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1256,"name":"bool","nodeType":"ElementaryTypeName","src":"1473:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":1274,"nodeType":"Block","src":"1719:56:9","statements":[{"expression":{"arguments":[{"id":1270,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"1753:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1271,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"1760:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1269,"name":"__ERC721_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1293,"src":"1729:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:39:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1273,"nodeType":"ExpressionStatement","src":"1729:39:9"}]},"documentation":{"id":1260,"nodeType":"StructuredDocumentation","src":"1513:108:9","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":1275,"implemented":true,"kind":"function","modifiers":[{"id":1267,"kind":"modifierInvocation","modifierName":{"id":1266,"name":"onlyInitializing","nameLocations":["1702:16:9"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1702:16:9"},"nodeType":"ModifierInvocation","src":"1702:16:9"}],"name":"__ERC721_init","nameLocation":"1635:13:9","nodeType":"FunctionDefinition","parameters":{"id":1265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1262,"mutability":"mutable","name":"name_","nameLocation":"1663:5:9","nodeType":"VariableDeclaration","scope":1275,"src":"1649:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1261,"name":"string","nodeType":"ElementaryTypeName","src":"1649:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1264,"mutability":"mutable","name":"symbol_","nameLocation":"1684:7:9","nodeType":"VariableDeclaration","scope":1275,"src":"1670:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1263,"name":"string","nodeType":"ElementaryTypeName","src":"1670:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1648:44:9"},"returnParameters":{"id":1268,"nodeType":"ParameterList","parameters":[],"src":"1719:0:9"},"scope":2162,"src":"1626:149:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1292,"nodeType":"Block","src":"1884:57:9","statements":[{"expression":{"id":1286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1284,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1239,"src":"1894:5:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1285,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"1902:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1894:13:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1287,"nodeType":"ExpressionStatement","src":"1894:13:9"},{"expression":{"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1288,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1241,"src":"1917:7:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1289,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"1927:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1917:17:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1291,"nodeType":"ExpressionStatement","src":"1917:17:9"}]},"id":1293,"implemented":true,"kind":"function","modifiers":[{"id":1282,"kind":"modifierInvocation","modifierName":{"id":1281,"name":"onlyInitializing","nameLocations":["1867:16:9"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1867:16:9"},"nodeType":"ModifierInvocation","src":"1867:16:9"}],"name":"__ERC721_init_unchained","nameLocation":"1790:23:9","nodeType":"FunctionDefinition","parameters":{"id":1280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"mutability":"mutable","name":"name_","nameLocation":"1828:5:9","nodeType":"VariableDeclaration","scope":1293,"src":"1814:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1276,"name":"string","nodeType":"ElementaryTypeName","src":"1814:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1279,"mutability":"mutable","name":"symbol_","nameLocation":"1849:7:9","nodeType":"VariableDeclaration","scope":1293,"src":"1835:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1278,"name":"string","nodeType":"ElementaryTypeName","src":"1835:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1813:44:9"},"returnParameters":{"id":1283,"nodeType":"ParameterList","parameters":[],"src":"1884:0:9"},"scope":2162,"src":"1781:160:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3082,3099],"body":{"id":1323,"nodeType":"Block","src":"2138:214:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1304,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"2167:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1306,"name":"IERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"2187:18:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$2296_$","typeString":"type(contract IERC721Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$2296_$","typeString":"type(contract IERC721Upgradeable)"}],"id":1305,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2182:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Upgradeable_$2296","typeString":"type(contract IERC721Upgradeable)"}},"id":1308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2207:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"2182:36:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2167:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1310,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"2234:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1312,"name":"IERC721MetadataUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"2254:26:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$2323_$","typeString":"type(contract IERC721MetadataUpgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$2323_$","typeString":"type(contract IERC721MetadataUpgradeable)"}],"id":1311,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2249:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721MetadataUpgradeable_$2323","typeString":"type(contract IERC721MetadataUpgradeable)"}},"id":1314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2282:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"2249:44:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2234:59:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2167:126:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1319,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"2333:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1317,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2309:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Upgradeable_$2162_$","typeString":"type(contract super ERC721Upgradeable)"}},"id":1318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2315:17:9","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3082,"src":"2309:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2309:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2167:178:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1303,"id":1322,"nodeType":"Return","src":"2148:197:9"}]},"documentation":{"id":1294,"nodeType":"StructuredDocumentation","src":"1947:56:9","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1324,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2017:17:9","nodeType":"FunctionDefinition","overrides":{"id":1300,"nodeType":"OverrideSpecifier","overrides":[{"id":1298,"name":"ERC165Upgradeable","nameLocations":["2084:17:9"],"nodeType":"IdentifierPath","referencedDeclaration":3088,"src":"2084:17:9"},{"id":1299,"name":"IERC165Upgradeable","nameLocations":["2103:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":3100,"src":"2103:18:9"}],"src":"2075:47:9"},"parameters":{"id":1297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1296,"mutability":"mutable","name":"interfaceId","nameLocation":"2042:11:9","nodeType":"VariableDeclaration","scope":1324,"src":"2035:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1295,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2035:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2034:20:9"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1324,"src":"2132:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1301,"name":"bool","nodeType":"ElementaryTypeName","src":"2132:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2131:6:9"},"scope":2162,"src":"2008:344:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2221],"body":{"id":1347,"nodeType":"Block","src":"2492:123:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1334,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"2510:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2527:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2519:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1335,"name":"address","nodeType":"ElementaryTypeName","src":"2519:7:9","typeDescriptions":{}}},"id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2519:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2510:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2531:43:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":1333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2502:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2502:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1342,"nodeType":"ExpressionStatement","src":"2502:73:9"},{"expression":{"baseExpression":{"id":1343,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"2592:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1345,"indexExpression":{"id":1344,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"2602:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2592:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1332,"id":1346,"nodeType":"Return","src":"2585:23:9"}]},"documentation":{"id":1325,"nodeType":"StructuredDocumentation","src":"2358:48:9","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":1348,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2420:9:9","nodeType":"FunctionDefinition","overrides":{"id":1329,"nodeType":"OverrideSpecifier","overrides":[],"src":"2465:8:9"},"parameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"owner","nameLocation":"2438:5:9","nodeType":"VariableDeclaration","scope":1348,"src":"2430:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1326,"name":"address","nodeType":"ElementaryTypeName","src":"2430:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2429:15:9"},"returnParameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1348,"src":"2483:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1330,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2482:9:9"},"scope":2162,"src":"2411:204:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2229],"body":{"id":1375,"nodeType":"Block","src":"2753:138:9","statements":[{"assignments":[1358],"declarations":[{"constant":false,"id":1358,"mutability":"mutable","name":"owner","nameLocation":"2771:5:9","nodeType":"VariableDeclaration","scope":1375,"src":"2763:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1357,"name":"address","nodeType":"ElementaryTypeName","src":"2763:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1362,"initialValue":{"arguments":[{"id":1360,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"2788:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1359,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"2779:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2763:33:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1364,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"2814:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2831:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2823:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1365,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:9","typeDescriptions":{}}},"id":1368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2823:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2814:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":1370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2835:26:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":1363,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2806:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2806:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1372,"nodeType":"ExpressionStatement","src":"2806:56:9"},{"expression":{"id":1373,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"2879:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1356,"id":1374,"nodeType":"Return","src":"2872:12:9"}]},"documentation":{"id":1349,"nodeType":"StructuredDocumentation","src":"2621:46:9","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":1376,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2681:7:9","nodeType":"FunctionDefinition","overrides":{"id":1353,"nodeType":"OverrideSpecifier","overrides":[],"src":"2726:8:9"},"parameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"mutability":"mutable","name":"tokenId","nameLocation":"2697:7:9","nodeType":"VariableDeclaration","scope":1376,"src":"2689:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1350,"name":"uint256","nodeType":"ElementaryTypeName","src":"2689:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2688:17:9"},"returnParameters":{"id":1356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1376,"src":"2744:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1354,"name":"address","nodeType":"ElementaryTypeName","src":"2744:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2743:9:9"},"scope":2162,"src":"2672:219:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2308],"body":{"id":1385,"nodeType":"Block","src":"3022:29:9","statements":[{"expression":{"id":1383,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1239,"src":"3039:5:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1382,"id":1384,"nodeType":"Return","src":"3032:12:9"}]},"documentation":{"id":1377,"nodeType":"StructuredDocumentation","src":"2897:51:9","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":1386,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2962:4:9","nodeType":"FunctionDefinition","overrides":{"id":1379,"nodeType":"OverrideSpecifier","overrides":[],"src":"2989:8:9"},"parameters":{"id":1378,"nodeType":"ParameterList","parameters":[],"src":"2966:2:9"},"returnParameters":{"id":1382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1386,"src":"3007:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1380,"name":"string","nodeType":"ElementaryTypeName","src":"3007:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3006:15:9"},"scope":2162,"src":"2953:98:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2314],"body":{"id":1395,"nodeType":"Block","src":"3186:31:9","statements":[{"expression":{"id":1393,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1241,"src":"3203:7:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1392,"id":1394,"nodeType":"Return","src":"3196:14:9"}]},"documentation":{"id":1387,"nodeType":"StructuredDocumentation","src":"3057:53:9","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":1396,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"3124:6:9","nodeType":"FunctionDefinition","overrides":{"id":1389,"nodeType":"OverrideSpecifier","overrides":[],"src":"3153:8:9"},"parameters":{"id":1388,"nodeType":"ParameterList","parameters":[],"src":"3130:2:9"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1396,"src":"3171:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1390,"name":"string","nodeType":"ElementaryTypeName","src":"3171:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3170:15:9"},"scope":2162,"src":"3115:102:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2322],"body":{"id":1434,"nodeType":"Block","src":"3371:188:9","statements":[{"expression":{"arguments":[{"id":1406,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"3396:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1405,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"3381:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3381:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1408,"nodeType":"ExpressionStatement","src":"3381:23:9"},{"assignments":[1410],"declarations":[{"constant":false,"id":1410,"mutability":"mutable","name":"baseURI","nameLocation":"3429:7:9","nodeType":"VariableDeclaration","scope":1434,"src":"3415:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1409,"name":"string","nodeType":"ElementaryTypeName","src":"3415:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1413,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1411,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"3439:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3439:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3415:34:9"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1416,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"3472:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3466:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1414,"name":"bytes","nodeType":"ElementaryTypeName","src":"3466:5:9","typeDescriptions":{}}},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3466:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3481:6:9","memberName":"length","nodeType":"MemberAccess","src":"3466:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3466:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3550:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3466:86:9","trueExpression":{"arguments":[{"arguments":[{"id":1425,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1410,"src":"3518:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"3527:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2873,"src":"3527:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3527:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3501:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3505:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3501:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3494:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1421,"name":"string","nodeType":"ElementaryTypeName","src":"3494:6:9","typeDescriptions":{}}},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3494:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1404,"id":1433,"nodeType":"Return","src":"3459:93:9"}]},"documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"3223:55:9","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":1435,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3292:8:9","nodeType":"FunctionDefinition","overrides":{"id":1401,"nodeType":"OverrideSpecifier","overrides":[],"src":"3338:8:9"},"parameters":{"id":1400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1399,"mutability":"mutable","name":"tokenId","nameLocation":"3309:7:9","nodeType":"VariableDeclaration","scope":1435,"src":"3301:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1398,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3300:17:9"},"returnParameters":{"id":1404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1435,"src":"3356:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1402,"name":"string","nodeType":"ElementaryTypeName","src":"3356:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3355:15:9"},"scope":2162,"src":"3283:276:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1443,"nodeType":"Block","src":"3867:26:9","statements":[{"expression":{"hexValue":"","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3884:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":1440,"id":1442,"nodeType":"Return","src":"3877:9:9"}]},"documentation":{"id":1436,"nodeType":"StructuredDocumentation","src":"3565:231:9","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":1444,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3810:8:9","nodeType":"FunctionDefinition","parameters":{"id":1437,"nodeType":"ParameterList","parameters":[],"src":"3818:2:9"},"returnParameters":{"id":1440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1444,"src":"3852:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1438,"name":"string","nodeType":"ElementaryTypeName","src":"3852:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3851:15:9"},"scope":2162,"src":"3801:92:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2269],"body":{"id":1486,"nodeType":"Block","src":"4020:347:9","statements":[{"assignments":[1454],"declarations":[{"constant":false,"id":1454,"mutability":"mutable","name":"owner","nameLocation":"4038:5:9","nodeType":"VariableDeclaration","scope":1486,"src":"4030:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1453,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1459,"initialValue":{"arguments":[{"id":1457,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"4072:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1455,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"4046:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4064:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"4046:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4046:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4030:50:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1461,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"4098:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1462,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"4104:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4098:11:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":1464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4111:35:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":1460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4090:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4090:57:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1466,"nodeType":"ExpressionStatement","src":"4090:57:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1468,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4179:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4179:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1470,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"4195:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4179:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1473,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"4221:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1474,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4228:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1472,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"4204:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4204:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4179:62:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","id":1478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4255:63:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""},"value":"ERC721: approve caller is not token owner or approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""}],"id":1467,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4158:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:170:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1480,"nodeType":"ExpressionStatement","src":"4158:170:9"},{"expression":{"arguments":[{"id":1482,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1447,"src":"4348:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1483,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"4352:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1481,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"4339:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1485,"nodeType":"ExpressionStatement","src":"4339:21:9"}]},"documentation":{"id":1445,"nodeType":"StructuredDocumentation","src":"3899:46:9","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":1487,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3959:7:9","nodeType":"FunctionDefinition","overrides":{"id":1451,"nodeType":"OverrideSpecifier","overrides":[],"src":"4011:8:9"},"parameters":{"id":1450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"to","nameLocation":"3975:2:9","nodeType":"VariableDeclaration","scope":1487,"src":"3967:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1446,"name":"address","nodeType":"ElementaryTypeName","src":"3967:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1449,"mutability":"mutable","name":"tokenId","nameLocation":"3987:7:9","nodeType":"VariableDeclaration","scope":1487,"src":"3979:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"3979:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3966:29:9"},"returnParameters":{"id":1452,"nodeType":"ParameterList","parameters":[],"src":"4020:0:9"},"scope":2162,"src":"3950:417:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2285],"body":{"id":1504,"nodeType":"Block","src":"4513:82:9","statements":[{"expression":{"arguments":[{"id":1497,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4538:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1496,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"4523:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4523:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1499,"nodeType":"ExpressionStatement","src":"4523:23:9"},{"expression":{"baseExpression":{"id":1500,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"4564:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1502,"indexExpression":{"id":1501,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"4580:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4564:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1495,"id":1503,"nodeType":"Return","src":"4557:31:9"}]},"documentation":{"id":1488,"nodeType":"StructuredDocumentation","src":"4373:50:9","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":1505,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4437:11:9","nodeType":"FunctionDefinition","overrides":{"id":1492,"nodeType":"OverrideSpecifier","overrides":[],"src":"4486:8:9"},"parameters":{"id":1491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1490,"mutability":"mutable","name":"tokenId","nameLocation":"4457:7:9","nodeType":"VariableDeclaration","scope":1505,"src":"4449:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4449:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4448:17:9"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1505,"src":"4504:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1493,"name":"address","nodeType":"ElementaryTypeName","src":"4504:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4503:9:9"},"scope":2162,"src":"4428:167:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2277],"body":{"id":1521,"nodeType":"Block","src":"4746:69:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1515,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4775:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1517,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"4789:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1518,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1510,"src":"4799:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1514,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2039,"src":"4756:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4756:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1520,"nodeType":"ExpressionStatement","src":"4756:52:9"}]},"documentation":{"id":1506,"nodeType":"StructuredDocumentation","src":"4601:56:9","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":1522,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4671:17:9","nodeType":"FunctionDefinition","overrides":{"id":1512,"nodeType":"OverrideSpecifier","overrides":[],"src":"4737:8:9"},"parameters":{"id":1511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"operator","nameLocation":"4697:8:9","nodeType":"VariableDeclaration","scope":1522,"src":"4689:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1507,"name":"address","nodeType":"ElementaryTypeName","src":"4689:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1510,"mutability":"mutable","name":"approved","nameLocation":"4712:8:9","nodeType":"VariableDeclaration","scope":1522,"src":"4707:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1509,"name":"bool","nodeType":"ElementaryTypeName","src":"4707:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4688:33:9"},"returnParameters":{"id":1513,"nodeType":"ParameterList","parameters":[],"src":"4746:0:9"},"scope":2162,"src":"4662:153:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2295],"body":{"id":1539,"nodeType":"Block","src":"4984:59:9","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1533,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"5001:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1535,"indexExpression":{"id":1534,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"5020:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5001:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1537,"indexExpression":{"id":1536,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"5027:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5001:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1532,"id":1538,"nodeType":"Return","src":"4994:42:9"}]},"documentation":{"id":1523,"nodeType":"StructuredDocumentation","src":"4821:55:9","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":1540,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4890:16:9","nodeType":"FunctionDefinition","overrides":{"id":1529,"nodeType":"OverrideSpecifier","overrides":[],"src":"4960:8:9"},"parameters":{"id":1528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1525,"mutability":"mutable","name":"owner","nameLocation":"4915:5:9","nodeType":"VariableDeclaration","scope":1540,"src":"4907:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"4907:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1527,"mutability":"mutable","name":"operator","nameLocation":"4930:8:9","nodeType":"VariableDeclaration","scope":1540,"src":"4922:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1526,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4906:33:9"},"returnParameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1540,"src":"4978:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1530,"name":"bool","nodeType":"ElementaryTypeName","src":"4978:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4977:6:9"},"scope":2162,"src":"4881:162:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2261],"body":{"id":1566,"nodeType":"Block","src":"5194:207:9","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1553,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"5283:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5283:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1555,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"5297:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1552,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1710,"src":"5264:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5264:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":1557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5307:47:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":1551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5256:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5256:99:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1559,"nodeType":"ExpressionStatement","src":"5256:99:9"},{"expression":{"arguments":[{"id":1561,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"5376:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1545,"src":"5382:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1563,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"5386:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1560,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1983,"src":"5366:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1565,"nodeType":"ExpressionStatement","src":"5366:28:9"}]},"documentation":{"id":1541,"nodeType":"StructuredDocumentation","src":"5049:51:9","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":1567,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5114:12:9","nodeType":"FunctionDefinition","overrides":{"id":1549,"nodeType":"OverrideSpecifier","overrides":[],"src":"5185:8:9"},"parameters":{"id":1548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1543,"mutability":"mutable","name":"from","nameLocation":"5135:4:9","nodeType":"VariableDeclaration","scope":1567,"src":"5127:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1542,"name":"address","nodeType":"ElementaryTypeName","src":"5127:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1545,"mutability":"mutable","name":"to","nameLocation":"5149:2:9","nodeType":"VariableDeclaration","scope":1567,"src":"5141:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1544,"name":"address","nodeType":"ElementaryTypeName","src":"5141:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1547,"mutability":"mutable","name":"tokenId","nameLocation":"5161:7:9","nodeType":"VariableDeclaration","scope":1567,"src":"5153:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1546,"name":"uint256","nodeType":"ElementaryTypeName","src":"5153:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5126:43:9"},"returnParameters":{"id":1550,"nodeType":"ParameterList","parameters":[],"src":"5194:0:9"},"scope":2162,"src":"5105:296:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2251],"body":{"id":1585,"nodeType":"Block","src":"5560:56:9","statements":[{"expression":{"arguments":[{"id":1579,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1570,"src":"5587:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1580,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"5593:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"5597:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5606:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1578,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[1586,1616],"referencedDeclaration":1616,"src":"5570:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5570:39:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1584,"nodeType":"ExpressionStatement","src":"5570:39:9"}]},"documentation":{"id":1568,"nodeType":"StructuredDocumentation","src":"5407:55:9","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":1586,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5476:16:9","nodeType":"FunctionDefinition","overrides":{"id":1576,"nodeType":"OverrideSpecifier","overrides":[],"src":"5551:8:9"},"parameters":{"id":1575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1570,"mutability":"mutable","name":"from","nameLocation":"5501:4:9","nodeType":"VariableDeclaration","scope":1586,"src":"5493:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1569,"name":"address","nodeType":"ElementaryTypeName","src":"5493:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1572,"mutability":"mutable","name":"to","nameLocation":"5515:2:9","nodeType":"VariableDeclaration","scope":1586,"src":"5507:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1571,"name":"address","nodeType":"ElementaryTypeName","src":"5507:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1574,"mutability":"mutable","name":"tokenId","nameLocation":"5527:7:9","nodeType":"VariableDeclaration","scope":1586,"src":"5519:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"5519:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5492:43:9"},"returnParameters":{"id":1577,"nodeType":"ParameterList","parameters":[],"src":"5560:0:9"},"scope":2162,"src":"5467:149:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2241],"body":{"id":1615,"nodeType":"Block","src":"5794:164:9","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1601,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"5831:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5831:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1603,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1593,"src":"5845:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1600,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1710,"src":"5812:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5812:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5855:47:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":1599,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5804:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5804:99:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1607,"nodeType":"ExpressionStatement","src":"5804:99:9"},{"expression":{"arguments":[{"id":1609,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"5927:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1610,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"5933:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1611,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1593,"src":"5937:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1612,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"5946:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1608,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"5913:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5913:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1614,"nodeType":"ExpressionStatement","src":"5913:38:9"}]},"documentation":{"id":1587,"nodeType":"StructuredDocumentation","src":"5622:55:9","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":1616,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5691:16:9","nodeType":"FunctionDefinition","overrides":{"id":1597,"nodeType":"OverrideSpecifier","overrides":[],"src":"5785:8:9"},"parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1589,"mutability":"mutable","name":"from","nameLocation":"5716:4:9","nodeType":"VariableDeclaration","scope":1616,"src":"5708:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1588,"name":"address","nodeType":"ElementaryTypeName","src":"5708:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1591,"mutability":"mutable","name":"to","nameLocation":"5730:2:9","nodeType":"VariableDeclaration","scope":1616,"src":"5722:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1590,"name":"address","nodeType":"ElementaryTypeName","src":"5722:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1593,"mutability":"mutable","name":"tokenId","nameLocation":"5742:7:9","nodeType":"VariableDeclaration","scope":1616,"src":"5734:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1592,"name":"uint256","nodeType":"ElementaryTypeName","src":"5734:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"data","nameLocation":"5764:4:9","nodeType":"VariableDeclaration","scope":1616,"src":"5751:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1594,"name":"bytes","nodeType":"ElementaryTypeName","src":"5751:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5707:62:9"},"returnParameters":{"id":1598,"nodeType":"ParameterList","parameters":[],"src":"5794:0:9"},"scope":2162,"src":"5682:276:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1644,"nodeType":"Block","src":"6921:165:9","statements":[{"expression":{"arguments":[{"id":1629,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"6941:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1630,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"6947:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1631,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"6951:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1628,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1983,"src":"6931:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1633,"nodeType":"ExpressionStatement","src":"6931:28:9"},{"expression":{"arguments":[{"arguments":[{"id":1636,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"7000:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1637,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"7006:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1638,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"7010:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1639,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"7019:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1635,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"6977:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":1640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6977:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7026:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":1634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6969:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:110:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1643,"nodeType":"ExpressionStatement","src":"6969:110:9"}]},"documentation":{"id":1617,"nodeType":"StructuredDocumentation","src":"5964:850:9","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1645,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6828:13:9","nodeType":"FunctionDefinition","parameters":{"id":1626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1619,"mutability":"mutable","name":"from","nameLocation":"6850:4:9","nodeType":"VariableDeclaration","scope":1645,"src":"6842:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1618,"name":"address","nodeType":"ElementaryTypeName","src":"6842:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1621,"mutability":"mutable","name":"to","nameLocation":"6864:2:9","nodeType":"VariableDeclaration","scope":1645,"src":"6856:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1620,"name":"address","nodeType":"ElementaryTypeName","src":"6856:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1623,"mutability":"mutable","name":"tokenId","nameLocation":"6876:7:9","nodeType":"VariableDeclaration","scope":1645,"src":"6868:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1622,"name":"uint256","nodeType":"ElementaryTypeName","src":"6868:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1625,"mutability":"mutable","name":"data","nameLocation":"6898:4:9","nodeType":"VariableDeclaration","scope":1645,"src":"6885:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1624,"name":"bytes","nodeType":"ElementaryTypeName","src":"6885:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6841:62:9"},"returnParameters":{"id":1627,"nodeType":"ParameterList","parameters":[],"src":"6921:0:9"},"scope":2162,"src":"6819:267:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1657,"nodeType":"Block","src":"7270:40:9","statements":[{"expression":{"baseExpression":{"id":1653,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"7287:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1655,"indexExpression":{"id":1654,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1648,"src":"7295:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7287:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1652,"id":1656,"nodeType":"Return","src":"7280:23:9"}]},"documentation":{"id":1646,"nodeType":"StructuredDocumentation","src":"7092:98:9","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist"},"id":1658,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"7204:8:9","nodeType":"FunctionDefinition","parameters":{"id":1649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1648,"mutability":"mutable","name":"tokenId","nameLocation":"7221:7:9","nodeType":"VariableDeclaration","scope":1658,"src":"7213:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1647,"name":"uint256","nodeType":"ElementaryTypeName","src":"7213:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7212:17:9"},"returnParameters":{"id":1652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1658,"src":"7261:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1650,"name":"address","nodeType":"ElementaryTypeName","src":"7261:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7260:9:9"},"scope":2162,"src":"7195:115:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1675,"nodeType":"Block","src":"7684:55:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1667,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"7710:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1666,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"7701:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7701:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7730:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7722:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1669,"name":"address","nodeType":"ElementaryTypeName","src":"7722:7:9","typeDescriptions":{}}},"id":1672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7722:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7701:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1665,"id":1674,"nodeType":"Return","src":"7694:38:9"}]},"documentation":{"id":1659,"nodeType":"StructuredDocumentation","src":"7316:292:9","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":1676,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7622:7:9","nodeType":"FunctionDefinition","parameters":{"id":1662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1661,"mutability":"mutable","name":"tokenId","nameLocation":"7638:7:9","nodeType":"VariableDeclaration","scope":1676,"src":"7630:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1660,"name":"uint256","nodeType":"ElementaryTypeName","src":"7630:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7629:17:9"},"returnParameters":{"id":1665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1676,"src":"7678:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1663,"name":"bool","nodeType":"ElementaryTypeName","src":"7678:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7677:6:9"},"scope":2162,"src":"7613:126:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1709,"nodeType":"Block","src":"7996:173:9","statements":[{"assignments":[1687],"declarations":[{"constant":false,"id":1687,"mutability":"mutable","name":"owner","nameLocation":"8014:5:9","nodeType":"VariableDeclaration","scope":1709,"src":"8006:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1686,"name":"address","nodeType":"ElementaryTypeName","src":"8006:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1692,"initialValue":{"arguments":[{"id":1690,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1681,"src":"8048:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1688,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"8022:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8040:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"8022:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8022:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8006:50:9"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1693,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"8074:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1694,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"8085:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8074:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1697,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"8111:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1698,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"8118:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1696,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"8094:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8094:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8074:52:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1702,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1681,"src":"8142:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1701,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1505,"src":"8130:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8130:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1704,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"8154:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8130:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8074:87:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1707,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8073:89:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1685,"id":1708,"nodeType":"Return","src":"8066:96:9"}]},"documentation":{"id":1677,"nodeType":"StructuredDocumentation","src":"7745:147:9","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":1710,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7906:18:9","nodeType":"FunctionDefinition","parameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1679,"mutability":"mutable","name":"spender","nameLocation":"7933:7:9","nodeType":"VariableDeclaration","scope":1710,"src":"7925:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1678,"name":"address","nodeType":"ElementaryTypeName","src":"7925:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1681,"mutability":"mutable","name":"tokenId","nameLocation":"7950:7:9","nodeType":"VariableDeclaration","scope":1710,"src":"7942:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1680,"name":"uint256","nodeType":"ElementaryTypeName","src":"7942:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7924:34:9"},"returnParameters":{"id":1685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1710,"src":"7990:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1683,"name":"bool","nodeType":"ElementaryTypeName","src":"7990:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7989:6:9"},"scope":2162,"src":"7897:272:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1724,"nodeType":"Block","src":"8564:43:9","statements":[{"expression":{"arguments":[{"id":1719,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"8584:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1720,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"8588:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1718,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1725,1754],"referencedDeclaration":1754,"src":"8574:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":1722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8574:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1723,"nodeType":"ExpressionStatement","src":"8574:26:9"}]},"documentation":{"id":1711,"nodeType":"StructuredDocumentation","src":"8175:319:9","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1725,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8508:9:9","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1713,"mutability":"mutable","name":"to","nameLocation":"8526:2:9","nodeType":"VariableDeclaration","scope":1725,"src":"8518:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1712,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1715,"mutability":"mutable","name":"tokenId","nameLocation":"8538:7:9","nodeType":"VariableDeclaration","scope":1725,"src":"8530:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1714,"name":"uint256","nodeType":"ElementaryTypeName","src":"8530:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8517:29:9"},"returnParameters":{"id":1717,"nodeType":"ParameterList","parameters":[],"src":"8564:0:9"},"scope":2162,"src":"8499:108:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1753,"nodeType":"Block","src":"8912:195:9","statements":[{"expression":{"arguments":[{"id":1736,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"8928:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1737,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"8932:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1735,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1831,"src":"8922:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8922:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1739,"nodeType":"ExpressionStatement","src":"8922:18:9"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":1744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9002:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8994:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1742,"name":"address","nodeType":"ElementaryTypeName","src":"8994:7:9","typeDescriptions":{}}},"id":1745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8994:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1746,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"9006:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1747,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"9010:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1748,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"9019:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1741,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"8971:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":1749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8971:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9038:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":1740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8950:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8950:150:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1752,"nodeType":"ExpressionStatement","src":"8950:150:9"}]},"documentation":{"id":1726,"nodeType":"StructuredDocumentation","src":"8613:210:9","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1754,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8837:9:9","nodeType":"FunctionDefinition","parameters":{"id":1733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"to","nameLocation":"8855:2:9","nodeType":"VariableDeclaration","scope":1754,"src":"8847:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1727,"name":"address","nodeType":"ElementaryTypeName","src":"8847:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1730,"mutability":"mutable","name":"tokenId","nameLocation":"8867:7:9","nodeType":"VariableDeclaration","scope":1754,"src":"8859:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1729,"name":"uint256","nodeType":"ElementaryTypeName","src":"8859:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1732,"mutability":"mutable","name":"data","nameLocation":"8889:4:9","nodeType":"VariableDeclaration","scope":1754,"src":"8876:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1731,"name":"bytes","nodeType":"ElementaryTypeName","src":"8876:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8846:48:9"},"returnParameters":{"id":1734,"nodeType":"ParameterList","parameters":[],"src":"8912:0:9"},"scope":2162,"src":"8828:279:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1830,"nodeType":"Block","src":"9490:859:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1763,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"9508:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9522:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9514:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1764,"name":"address","nodeType":"ElementaryTypeName","src":"9514:7:9","typeDescriptions":{}}},"id":1767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9514:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9508:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":1769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9526:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":1762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9500:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:61:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1771,"nodeType":"ExpressionStatement","src":"9500:61:9"},{"expression":{"arguments":[{"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9579:17:9","subExpression":{"arguments":[{"id":1774,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"9588:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1773,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"9580:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":1777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9598:30:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":1772,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9571:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9571:58:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1779,"nodeType":"ExpressionStatement","src":"9571:58:9"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9669:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9661:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1781,"name":"address","nodeType":"ElementaryTypeName","src":"9661:7:9","typeDescriptions":{}}},"id":1784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9661:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1785,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"9673:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1786,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"9677:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9686:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1780,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2128,"src":"9640:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1789,"nodeType":"ExpressionStatement","src":"9640:48:9"},{"expression":{"arguments":[{"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9783:17:9","subExpression":{"arguments":[{"id":1792,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"9792:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1791,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"9784:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9784:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":1795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9802:30:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":1790,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9775:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9775:58:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1797,"nodeType":"ExpressionStatement","src":"9775:58:9"},{"id":1804,"nodeType":"UncheckedBlock","src":"9844:360:9","statements":[{"expression":{"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1798,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"10175:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1800,"indexExpression":{"id":1799,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"10185:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10175:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10192:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10175:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1803,"nodeType":"ExpressionStatement","src":"10175:18:9"}]},{"expression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1805,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"10214:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1807,"indexExpression":{"id":1806,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"10222:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10214:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"10233:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10214:21:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1810,"nodeType":"ExpressionStatement","src":"10214:21:9"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10268:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10260:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1812,"name":"address","nodeType":"ElementaryTypeName","src":"10260:7:9","typeDescriptions":{}}},"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10260:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1816,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"10272:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1817,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"10276:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1811,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"10251:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10251:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1819,"nodeType":"EmitStatement","src":"10246:38:9"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10323:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10315:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1821,"name":"address","nodeType":"ElementaryTypeName","src":"10315:7:9","typeDescriptions":{}}},"id":1824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10315:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1825,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"10327:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1826,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"10331:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10340:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1820,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"10295:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10295:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1829,"nodeType":"ExpressionStatement","src":"10295:47:9"}]},"documentation":{"id":1755,"nodeType":"StructuredDocumentation","src":"9113:311:9","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":1831,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9438:5:9","nodeType":"FunctionDefinition","parameters":{"id":1760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1757,"mutability":"mutable","name":"to","nameLocation":"9452:2:9","nodeType":"VariableDeclaration","scope":1831,"src":"9444:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1756,"name":"address","nodeType":"ElementaryTypeName","src":"9444:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1759,"mutability":"mutable","name":"tokenId","nameLocation":"9464:7:9","nodeType":"VariableDeclaration","scope":1831,"src":"9456:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1758,"name":"uint256","nodeType":"ElementaryTypeName","src":"9456:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9443:29:9"},"returnParameters":{"id":1761,"nodeType":"ParameterList","parameters":[],"src":"9490:0:9"},"scope":2162,"src":"9429:920:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1897,"nodeType":"Block","src":"10724:735:9","statements":[{"assignments":[1838],"declarations":[{"constant":false,"id":1838,"mutability":"mutable","name":"owner","nameLocation":"10742:5:9","nodeType":"VariableDeclaration","scope":1897,"src":"10734:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1837,"name":"address","nodeType":"ElementaryTypeName","src":"10734:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1843,"initialValue":{"arguments":[{"id":1841,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"10776:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1839,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"10750:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10768:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"10750:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10750:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10734:50:9"},{"expression":{"arguments":[{"id":1845,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"10816:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10831:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10823:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1846,"name":"address","nodeType":"ElementaryTypeName","src":"10823:7:9","typeDescriptions":{}}},"id":1849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10823:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1850,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"10835:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10844:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1844,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2128,"src":"10795:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10795:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1853,"nodeType":"ExpressionStatement","src":"10795:51:9"},{"expression":{"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1854,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"10948:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1857,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"10982:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1855,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"10956:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10974:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"10956:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10948:42:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1860,"nodeType":"ExpressionStatement","src":"10948:42:9"},{"expression":{"id":1864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11028:31:9","subExpression":{"baseExpression":{"id":1861,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"11035:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1863,"indexExpression":{"id":1862,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"11051:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11035:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1865,"nodeType":"ExpressionStatement","src":"11028:31:9"},{"id":1872,"nodeType":"UncheckedBlock","src":"11070:237:9","statements":[{"expression":{"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1866,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"11275:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1868,"indexExpression":{"id":1867,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"11285:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11275:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11295:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11275:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1871,"nodeType":"ExpressionStatement","src":"11275:21:9"}]},{"expression":{"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11316:23:9","subExpression":{"baseExpression":{"id":1873,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"11323:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1875,"indexExpression":{"id":1874,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"11331:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11323:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1877,"nodeType":"ExpressionStatement","src":"11316:23:9"},{"eventCall":{"arguments":[{"id":1879,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"11364:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11379:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11371:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1880,"name":"address","nodeType":"ElementaryTypeName","src":"11371:7:9","typeDescriptions":{}}},"id":1883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11371:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1884,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"11383:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1878,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"11355:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11355:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1886,"nodeType":"EmitStatement","src":"11350:41:9"},{"expression":{"arguments":[{"id":1888,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"11422:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11437:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11429:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1889,"name":"address","nodeType":"ElementaryTypeName","src":"11429:7:9","typeDescriptions":{}}},"id":1892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1893,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"11441:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11450:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1887,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"11402:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11402:50:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1896,"nodeType":"ExpressionStatement","src":"11402:50:9"}]},"documentation":{"id":1832,"nodeType":"StructuredDocumentation","src":"10355:315:9","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":1898,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10684:5:9","nodeType":"FunctionDefinition","parameters":{"id":1835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1834,"mutability":"mutable","name":"tokenId","nameLocation":"10698:7:9","nodeType":"VariableDeclaration","scope":1898,"src":"10690:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1833,"name":"uint256","nodeType":"ElementaryTypeName","src":"10690:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10689:17:9"},"returnParameters":{"id":1836,"nodeType":"ParameterList","parameters":[],"src":"10724:0:9"},"scope":2162,"src":"10675:784:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1982,"nodeType":"Block","src":"11862:1146:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1911,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"11906:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1909,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"11880:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11898:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"11880:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11880:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1913,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"11918:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11880:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11924:39:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":1908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11872:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11872:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1917,"nodeType":"ExpressionStatement","src":"11872:92:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1919,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"11982:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11996:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11988:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1920,"name":"address","nodeType":"ElementaryTypeName","src":"11988:7:9","typeDescriptions":{}}},"id":1923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11988:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11982:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":1925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12000:38:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":1918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11974:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11974:65:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1927,"nodeType":"ExpressionStatement","src":"11974:65:9"},{"expression":{"arguments":[{"id":1929,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"12071:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1930,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"12077:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1931,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12081:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12090:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1928,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2128,"src":"12050:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12050:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1934,"nodeType":"ExpressionStatement","src":"12050:42:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1938,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12218:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1936,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"12192:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12210:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"12192:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12192:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1940,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"12230:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12192:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12236:39:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":1935,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12184:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12184:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1944,"nodeType":"ExpressionStatement","src":"12184:92:9"},{"expression":{"id":1948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12338:31:9","subExpression":{"baseExpression":{"id":1945,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"12345:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1947,"indexExpression":{"id":1946,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12361:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12345:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1949,"nodeType":"ExpressionStatement","src":"12338:31:9"},{"id":1962,"nodeType":"UncheckedBlock","src":"12380:496:9","statements":[{"expression":{"id":1954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1950,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"12813:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1952,"indexExpression":{"id":1951,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"12823:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12813:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12832:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12813:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1955,"nodeType":"ExpressionStatement","src":"12813:20:9"},{"expression":{"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1956,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"12847:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1958,"indexExpression":{"id":1957,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"12857:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12847:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12864:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12847:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1961,"nodeType":"ExpressionStatement","src":"12847:18:9"}]},{"expression":{"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1963,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"12885:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1965,"indexExpression":{"id":1964,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12893:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12885:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1966,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"12904:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12885:21:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1968,"nodeType":"ExpressionStatement","src":"12885:21:9"},{"eventCall":{"arguments":[{"id":1970,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"12931:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"12937:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1972,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12941:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1969,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"12922:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12922:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1974,"nodeType":"EmitStatement","src":"12917:32:9"},{"expression":{"arguments":[{"id":1976,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"12980:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1977,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"12986:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1978,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"12990:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12999:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1975,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"12960:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12960:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1981,"nodeType":"ExpressionStatement","src":"12960:41:9"}]},"documentation":{"id":1899,"nodeType":"StructuredDocumentation","src":"11465:313:9","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":1983,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"11792:9:9","nodeType":"FunctionDefinition","parameters":{"id":1906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1901,"mutability":"mutable","name":"from","nameLocation":"11810:4:9","nodeType":"VariableDeclaration","scope":1983,"src":"11802:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1900,"name":"address","nodeType":"ElementaryTypeName","src":"11802:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1903,"mutability":"mutable","name":"to","nameLocation":"11824:2:9","nodeType":"VariableDeclaration","scope":1983,"src":"11816:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"11816:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1905,"mutability":"mutable","name":"tokenId","nameLocation":"11836:7:9","nodeType":"VariableDeclaration","scope":1983,"src":"11828:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1904,"name":"uint256","nodeType":"ElementaryTypeName","src":"11828:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11801:43:9"},"returnParameters":{"id":1907,"nodeType":"ParameterList","parameters":[],"src":"11862:0:9"},"scope":2162,"src":"11783:1225:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2006,"nodeType":"Block","src":"13184:118:9","statements":[{"expression":{"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1991,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"13194:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1993,"indexExpression":{"id":1992,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1988,"src":"13210:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13194:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1994,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1986,"src":"13221:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13194:29:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1996,"nodeType":"ExpressionStatement","src":"13194:29:9"},{"eventCall":{"arguments":[{"arguments":[{"id":2000,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1988,"src":"13273:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1998,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"13247:17:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$2162_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13265:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1376,"src":"13247:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13247:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2002,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1986,"src":"13283:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2003,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1988,"src":"13287:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1997,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2204,"src":"13238:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13238:57:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2005,"nodeType":"EmitStatement","src":"13233:62:9"}]},"documentation":{"id":1984,"nodeType":"StructuredDocumentation","src":"13014:101:9","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":2007,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"13129:8:9","nodeType":"FunctionDefinition","parameters":{"id":1989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1986,"mutability":"mutable","name":"to","nameLocation":"13146:2:9","nodeType":"VariableDeclaration","scope":2007,"src":"13138:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1985,"name":"address","nodeType":"ElementaryTypeName","src":"13138:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1988,"mutability":"mutable","name":"tokenId","nameLocation":"13158:7:9","nodeType":"VariableDeclaration","scope":2007,"src":"13150:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1987,"name":"uint256","nodeType":"ElementaryTypeName","src":"13150:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13137:29:9"},"returnParameters":{"id":1990,"nodeType":"ParameterList","parameters":[],"src":"13184:0:9"},"scope":2162,"src":"13120:182:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2038,"nodeType":"Block","src":"13531:184:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2018,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"13549:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2019,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"13558:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13549:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":2021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13568:27:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":2017,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13541:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2023,"nodeType":"ExpressionStatement","src":"13541:55:9"},{"expression":{"id":2030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":2024,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"13606:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":2027,"indexExpression":{"id":2025,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"13625:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13606:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2028,"indexExpression":{"id":2026,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"13632:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13606:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2029,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"13644:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13606:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2031,"nodeType":"ExpressionStatement","src":"13606:46:9"},{"eventCall":{"arguments":[{"id":2033,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"13682:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2034,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"13689:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2035,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"13699:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2032,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2213,"src":"13667:14:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13667:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2037,"nodeType":"EmitStatement","src":"13662:46:9"}]},"documentation":{"id":2008,"nodeType":"StructuredDocumentation","src":"13308:125:9","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":2039,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13447:18:9","nodeType":"FunctionDefinition","parameters":{"id":2015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2010,"mutability":"mutable","name":"owner","nameLocation":"13474:5:9","nodeType":"VariableDeclaration","scope":2039,"src":"13466:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2009,"name":"address","nodeType":"ElementaryTypeName","src":"13466:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2012,"mutability":"mutable","name":"operator","nameLocation":"13489:8:9","nodeType":"VariableDeclaration","scope":2039,"src":"13481:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2011,"name":"address","nodeType":"ElementaryTypeName","src":"13481:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2014,"mutability":"mutable","name":"approved","nameLocation":"13504:8:9","nodeType":"VariableDeclaration","scope":2039,"src":"13499:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2013,"name":"bool","nodeType":"ElementaryTypeName","src":"13499:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13465:48:9"},"returnParameters":{"id":2016,"nodeType":"ParameterList","parameters":[],"src":"13531:0:9"},"scope":2162,"src":"13438:277:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2052,"nodeType":"Block","src":"13862:70:9","statements":[{"expression":{"arguments":[{"arguments":[{"id":2047,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2042,"src":"13888:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2046,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"13880:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13880:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":2049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13898:26:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":2045,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13872:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13872:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2051,"nodeType":"ExpressionStatement","src":"13872:53:9"}]},"documentation":{"id":2040,"nodeType":"StructuredDocumentation","src":"13721:73:9","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":2053,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"13808:14:9","nodeType":"FunctionDefinition","parameters":{"id":2043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2042,"mutability":"mutable","name":"tokenId","nameLocation":"13831:7:9","nodeType":"VariableDeclaration","scope":2053,"src":"13823:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13823:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13822:17:9"},"returnParameters":{"id":2044,"nodeType":"ParameterList","parameters":[],"src":"13862:0:9"},"scope":2162,"src":"13799:133:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2114,"nodeType":"Block","src":"14639:698:9","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2067,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"14653:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14656:10:9","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"14653:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14653:15:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2112,"nodeType":"Block","src":"15295:36:9","statements":[{"expression":{"hexValue":"74727565","id":2110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15316:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2066,"id":2111,"nodeType":"Return","src":"15309:11:9"}]},"id":2113,"nodeType":"IfStatement","src":"14649:682:9","trueBody":{"id":2109,"nodeType":"Block","src":"14670:619:9","statements":[{"clauses":[{"block":{"id":2089,"nodeType":"Block","src":"14795:102:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2083,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2081,"src":"14820:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2084,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"14830:26:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$2180_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14857:16:9","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":2179,"src":"14830:43:9","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721ReceiverUpgradeable.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":2086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14874:8:9","memberName":"selector","nodeType":"MemberAccess","src":"14830:52:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14820:62:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2066,"id":2088,"nodeType":"Return","src":"14813:69:9"}]},"errorName":"","id":2090,"nodeType":"TryCatchClause","parameters":{"id":2082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2081,"mutability":"mutable","name":"retval","nameLocation":"14787:6:9","nodeType":"VariableDeclaration","scope":2090,"src":"14780:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2080,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14780:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14779:15:9"},"src":"14771:126:9"},{"block":{"id":2106,"nodeType":"Block","src":"14926:353:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2094,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"14948:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14955:6:9","memberName":"length","nodeType":"MemberAccess","src":"14948:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14965:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14948:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2104,"nodeType":"Block","src":"15075:190:9","statements":[{"AST":{"nativeSrc":"15161:86:9","nodeType":"YulBlock","src":"15161:86:9","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15198:2:9","nodeType":"YulLiteral","src":"15198:2:9","type":"","value":"32"},{"name":"reason","nativeSrc":"15202:6:9","nodeType":"YulIdentifier","src":"15202:6:9"}],"functionName":{"name":"add","nativeSrc":"15194:3:9","nodeType":"YulIdentifier","src":"15194:3:9"},"nativeSrc":"15194:15:9","nodeType":"YulFunctionCall","src":"15194:15:9"},{"arguments":[{"name":"reason","nativeSrc":"15217:6:9","nodeType":"YulIdentifier","src":"15217:6:9"}],"functionName":{"name":"mload","nativeSrc":"15211:5:9","nodeType":"YulIdentifier","src":"15211:5:9"},"nativeSrc":"15211:13:9","nodeType":"YulFunctionCall","src":"15211:13:9"}],"functionName":{"name":"revert","nativeSrc":"15187:6:9","nodeType":"YulIdentifier","src":"15187:6:9"},"nativeSrc":"15187:38:9","nodeType":"YulFunctionCall","src":"15187:38:9"},"nativeSrc":"15187:38:9","nodeType":"YulExpressionStatement","src":"15187:38:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2092,"isOffset":false,"isSlot":false,"src":"15202:6:9","valueSize":1},{"declaration":2092,"isOffset":false,"isSlot":false,"src":"15217:6:9","valueSize":1}],"id":2103,"nodeType":"InlineAssembly","src":"15152:95:9"}]},"id":2105,"nodeType":"IfStatement","src":"14944:321:9","trueBody":{"id":2102,"nodeType":"Block","src":"14968:101:9","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":2099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14997:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":2098,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14990:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14990:60:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2101,"nodeType":"ExpressionStatement","src":"14990:60:9"}]}}]},"errorName":"","id":2107,"nodeType":"TryCatchClause","parameters":{"id":2093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2092,"mutability":"mutable","name":"reason","nameLocation":"14918:6:9","nodeType":"VariableDeclaration","scope":2107,"src":"14905:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2091,"name":"bytes","nodeType":"ElementaryTypeName","src":"14905:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14904:21:9"},"src":"14898:381:9"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2074,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"14736:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14736:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2076,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"14750:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2077,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"14756:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2078,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"14765:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":2071,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"14715:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2070,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"14688:26:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$2180_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":2072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721ReceiverUpgradeable_$2180","typeString":"contract IERC721ReceiverUpgradeable"}},"id":2073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14719:16:9","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":2179,"src":"14688:47:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:82:9","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":2108,"nodeType":"TryStatement","src":"14684:595:9"}]}}]},"documentation":{"id":2054,"nodeType":"StructuredDocumentation","src":"13938:541:9","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":2115,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"14493:22:9","nodeType":"FunctionDefinition","parameters":{"id":2063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2056,"mutability":"mutable","name":"from","nameLocation":"14533:4:9","nodeType":"VariableDeclaration","scope":2115,"src":"14525:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2055,"name":"address","nodeType":"ElementaryTypeName","src":"14525:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2058,"mutability":"mutable","name":"to","nameLocation":"14555:2:9","nodeType":"VariableDeclaration","scope":2115,"src":"14547:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2057,"name":"address","nodeType":"ElementaryTypeName","src":"14547:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2060,"mutability":"mutable","name":"tokenId","nameLocation":"14575:7:9","nodeType":"VariableDeclaration","scope":2115,"src":"14567:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2059,"name":"uint256","nodeType":"ElementaryTypeName","src":"14567:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2062,"mutability":"mutable","name":"data","nameLocation":"14605:4:9","nodeType":"VariableDeclaration","scope":2115,"src":"14592:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2061,"name":"bytes","nodeType":"ElementaryTypeName","src":"14592:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14515:100:9"},"returnParameters":{"id":2066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2115,"src":"14633:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2064,"name":"bool","nodeType":"ElementaryTypeName","src":"14633:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14632:6:9"},"scope":2162,"src":"14484:853:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2127,"nodeType":"Block","src":"16167:2:9","statements":[]},"documentation":{"id":2116,"nodeType":"StructuredDocumentation","src":"15343:705:9","text":" @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":2128,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"16062:20:9","nodeType":"FunctionDefinition","parameters":{"id":2125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2118,"mutability":"mutable","name":"from","nameLocation":"16091:4:9","nodeType":"VariableDeclaration","scope":2128,"src":"16083:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2117,"name":"address","nodeType":"ElementaryTypeName","src":"16083:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2120,"mutability":"mutable","name":"to","nameLocation":"16105:2:9","nodeType":"VariableDeclaration","scope":2128,"src":"16097:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"16097:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2122,"mutability":"mutable","name":"firstTokenId","nameLocation":"16117:12:9","nodeType":"VariableDeclaration","scope":2128,"src":"16109:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2121,"name":"uint256","nodeType":"ElementaryTypeName","src":"16109:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2124,"mutability":"mutable","name":"batchSize","nameLocation":"16139:9:9","nodeType":"VariableDeclaration","scope":2128,"src":"16131:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"16131:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16082:67:9"},"returnParameters":{"id":2126,"nodeType":"ParameterList","parameters":[],"src":"16167:0:9"},"scope":2162,"src":"16053:116:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2140,"nodeType":"Block","src":"16988:2:9","statements":[]},"documentation":{"id":2129,"nodeType":"StructuredDocumentation","src":"16175:695:9","text":" @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":2141,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"16884:19:9","nodeType":"FunctionDefinition","parameters":{"id":2138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2131,"mutability":"mutable","name":"from","nameLocation":"16912:4:9","nodeType":"VariableDeclaration","scope":2141,"src":"16904:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2130,"name":"address","nodeType":"ElementaryTypeName","src":"16904:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2133,"mutability":"mutable","name":"to","nameLocation":"16926:2:9","nodeType":"VariableDeclaration","scope":2141,"src":"16918:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2132,"name":"address","nodeType":"ElementaryTypeName","src":"16918:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2135,"mutability":"mutable","name":"firstTokenId","nameLocation":"16938:12:9","nodeType":"VariableDeclaration","scope":2141,"src":"16930:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2134,"name":"uint256","nodeType":"ElementaryTypeName","src":"16930:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2137,"mutability":"mutable","name":"batchSize","nameLocation":"16960:9:9","nodeType":"VariableDeclaration","scope":2141,"src":"16952:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2136,"name":"uint256","nodeType":"ElementaryTypeName","src":"16952:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16903:67:9"},"returnParameters":{"id":2139,"nodeType":"ParameterList","parameters":[],"src":"16988:0:9"},"scope":2162,"src":"16875:115:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2155,"nodeType":"Block","src":"17539:45:9","statements":[{"expression":{"id":2153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2149,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1249,"src":"17549:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2151,"indexExpression":{"id":2150,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"17559:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17549:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2152,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2146,"src":"17571:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17549:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2154,"nodeType":"ExpressionStatement","src":"17549:28:9"}]},"documentation":{"id":2142,"nodeType":"StructuredDocumentation","src":"16996:409:9","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n that `ownerOf(tokenId)` is `a`."},"id":2156,"implemented":true,"kind":"function","modifiers":[],"name":"__unsafe_increaseBalance","nameLocation":"17472:24:9","nodeType":"FunctionDefinition","parameters":{"id":2147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2144,"mutability":"mutable","name":"account","nameLocation":"17505:7:9","nodeType":"VariableDeclaration","scope":2156,"src":"17497:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2143,"name":"address","nodeType":"ElementaryTypeName","src":"17497:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2146,"mutability":"mutable","name":"amount","nameLocation":"17522:6:9","nodeType":"VariableDeclaration","scope":2156,"src":"17514:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2145,"name":"uint256","nodeType":"ElementaryTypeName","src":"17514:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17496:33:9"},"returnParameters":{"id":2148,"nodeType":"ParameterList","parameters":[],"src":"17539:0:9"},"scope":2162,"src":"17463:121:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":2157,"nodeType":"StructuredDocumentation","src":"17590:254:9","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":2161,"mutability":"mutable","name":"__gap","nameLocation":"17869:5:9","nodeType":"VariableDeclaration","scope":2162,"src":"17849:25:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":2158,"name":"uint256","nodeType":"ElementaryTypeName","src":"17849:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2160,"length":{"hexValue":"3434","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17857:2:9","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"17849:11:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"}],"scope":2163,"src":"772:17105:9","usedErrors":[],"usedEvents":[790,2195,2204,2213]}],"src":"107:17771:9"},"id":9},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol","exportedSymbols":{"IERC721ReceiverUpgradeable":[2180]},"id":2181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2164,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721ReceiverUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":2165,"nodeType":"StructuredDocumentation","src":"141:152:10","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":2180,"linearizedBaseContracts":[2180],"name":"IERC721ReceiverUpgradeable","nameLocation":"304:26:10","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2166,"nodeType":"StructuredDocumentation","src":"337:493:10","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":2179,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"844:16:10","nodeType":"FunctionDefinition","parameters":{"id":2175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2168,"mutability":"mutable","name":"operator","nameLocation":"878:8:10","nodeType":"VariableDeclaration","scope":2179,"src":"870:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2167,"name":"address","nodeType":"ElementaryTypeName","src":"870:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2170,"mutability":"mutable","name":"from","nameLocation":"904:4:10","nodeType":"VariableDeclaration","scope":2179,"src":"896:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2169,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2172,"mutability":"mutable","name":"tokenId","nameLocation":"926:7:10","nodeType":"VariableDeclaration","scope":2179,"src":"918:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2171,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2174,"mutability":"mutable","name":"data","nameLocation":"958:4:10","nodeType":"VariableDeclaration","scope":2179,"src":"943:19:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2173,"name":"bytes","nodeType":"ElementaryTypeName","src":"943:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"860:108:10"},"returnParameters":{"id":2178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2179,"src":"987:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2176,"name":"bytes4","nodeType":"ElementaryTypeName","src":"987:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"986:8:10"},"scope":2180,"src":"835:160:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2181,"src":"294:703:10","usedErrors":[],"usedEvents":[]}],"src":"116:882:10"},"id":10},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[3100],"IERC721Upgradeable":[2296]},"id":2297,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2182,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:11"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","file":"../../utils/introspection/IERC165Upgradeable.sol","id":2183,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2297,"sourceUnit":3101,"src":"133:58:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2185,"name":"IERC165Upgradeable","nameLocations":["293:18:11"],"nodeType":"IdentifierPath","referencedDeclaration":3100,"src":"293:18:11"},"id":2186,"nodeType":"InheritanceSpecifier","src":"293:18:11"}],"canonicalName":"IERC721Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":2184,"nodeType":"StructuredDocumentation","src":"193:67:11","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":2296,"linearizedBaseContracts":[2296,3100],"name":"IERC721Upgradeable","nameLocation":"271:18:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":2187,"nodeType":"StructuredDocumentation","src":"318:88:11","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":2195,"name":"Transfer","nameLocation":"417:8:11","nodeType":"EventDefinition","parameters":{"id":2194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2189,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"442:4:11","nodeType":"VariableDeclaration","scope":2195,"src":"426:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2188,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2191,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"464:2:11","nodeType":"VariableDeclaration","scope":2195,"src":"448:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2190,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2193,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"484:7:11","nodeType":"VariableDeclaration","scope":2195,"src":"468:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2192,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:67:11"},"src":"411:82:11"},{"anonymous":false,"documentation":{"id":2196,"nodeType":"StructuredDocumentation","src":"499:94:11","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":2204,"name":"Approval","nameLocation":"604:8:11","nodeType":"EventDefinition","parameters":{"id":2203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2198,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"629:5:11","nodeType":"VariableDeclaration","scope":2204,"src":"613:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2197,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2200,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"652:8:11","nodeType":"VariableDeclaration","scope":2204,"src":"636:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2199,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2202,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"678:7:11","nodeType":"VariableDeclaration","scope":2204,"src":"662:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2201,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"612:74:11"},"src":"598:89:11"},{"anonymous":false,"documentation":{"id":2205,"nodeType":"StructuredDocumentation","src":"693:117:11","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":2213,"name":"ApprovalForAll","nameLocation":"821:14:11","nodeType":"EventDefinition","parameters":{"id":2212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2207,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"852:5:11","nodeType":"VariableDeclaration","scope":2213,"src":"836:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2206,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2209,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"875:8:11","nodeType":"VariableDeclaration","scope":2213,"src":"859:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2208,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2211,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"890:8:11","nodeType":"VariableDeclaration","scope":2213,"src":"885:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2210,"name":"bool","nodeType":"ElementaryTypeName","src":"885:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"835:64:11"},"src":"815:85:11"},{"documentation":{"id":2214,"nodeType":"StructuredDocumentation","src":"906:76:11","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":2221,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"996:9:11","nodeType":"FunctionDefinition","parameters":{"id":2217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2216,"mutability":"mutable","name":"owner","nameLocation":"1014:5:11","nodeType":"VariableDeclaration","scope":2221,"src":"1006:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2215,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:15:11"},"returnParameters":{"id":2220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2219,"mutability":"mutable","name":"balance","nameLocation":"1052:7:11","nodeType":"VariableDeclaration","scope":2221,"src":"1044:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1043:17:11"},"scope":2296,"src":"987:74:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2222,"nodeType":"StructuredDocumentation","src":"1067:131:11","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":2229,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1212:7:11","nodeType":"FunctionDefinition","parameters":{"id":2225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2224,"mutability":"mutable","name":"tokenId","nameLocation":"1228:7:11","nodeType":"VariableDeclaration","scope":2229,"src":"1220:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2223,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:17:11"},"returnParameters":{"id":2228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2227,"mutability":"mutable","name":"owner","nameLocation":"1268:5:11","nodeType":"VariableDeclaration","scope":2229,"src":"1260:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2226,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1259:15:11"},"scope":2296,"src":"1203:72:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2230,"nodeType":"StructuredDocumentation","src":"1281:556:11","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":2241,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1851:16:11","nodeType":"FunctionDefinition","parameters":{"id":2239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2232,"mutability":"mutable","name":"from","nameLocation":"1876:4:11","nodeType":"VariableDeclaration","scope":2241,"src":"1868:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2231,"name":"address","nodeType":"ElementaryTypeName","src":"1868:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2234,"mutability":"mutable","name":"to","nameLocation":"1890:2:11","nodeType":"VariableDeclaration","scope":2241,"src":"1882:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2233,"name":"address","nodeType":"ElementaryTypeName","src":"1882:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2236,"mutability":"mutable","name":"tokenId","nameLocation":"1902:7:11","nodeType":"VariableDeclaration","scope":2241,"src":"1894:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2235,"name":"uint256","nodeType":"ElementaryTypeName","src":"1894:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2238,"mutability":"mutable","name":"data","nameLocation":"1926:4:11","nodeType":"VariableDeclaration","scope":2241,"src":"1911:19:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2237,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1867:64:11"},"returnParameters":{"id":2240,"nodeType":"ParameterList","parameters":[],"src":"1940:0:11"},"scope":2296,"src":"1842:99:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2242,"nodeType":"StructuredDocumentation","src":"1947:687:11","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":2251,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2648:16:11","nodeType":"FunctionDefinition","parameters":{"id":2249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2244,"mutability":"mutable","name":"from","nameLocation":"2673:4:11","nodeType":"VariableDeclaration","scope":2251,"src":"2665:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2243,"name":"address","nodeType":"ElementaryTypeName","src":"2665:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2246,"mutability":"mutable","name":"to","nameLocation":"2687:2:11","nodeType":"VariableDeclaration","scope":2251,"src":"2679:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2245,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2248,"mutability":"mutable","name":"tokenId","nameLocation":"2699:7:11","nodeType":"VariableDeclaration","scope":2251,"src":"2691:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2247,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2664:43:11"},"returnParameters":{"id":2250,"nodeType":"ParameterList","parameters":[],"src":"2716:0:11"},"scope":2296,"src":"2639:78:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2252,"nodeType":"StructuredDocumentation","src":"2723:732:11","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":2261,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3469:12:11","nodeType":"FunctionDefinition","parameters":{"id":2259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2254,"mutability":"mutable","name":"from","nameLocation":"3490:4:11","nodeType":"VariableDeclaration","scope":2261,"src":"3482:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2253,"name":"address","nodeType":"ElementaryTypeName","src":"3482:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2256,"mutability":"mutable","name":"to","nameLocation":"3504:2:11","nodeType":"VariableDeclaration","scope":2261,"src":"3496:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2255,"name":"address","nodeType":"ElementaryTypeName","src":"3496:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2258,"mutability":"mutable","name":"tokenId","nameLocation":"3516:7:11","nodeType":"VariableDeclaration","scope":2261,"src":"3508:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2257,"name":"uint256","nodeType":"ElementaryTypeName","src":"3508:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:43:11"},"returnParameters":{"id":2260,"nodeType":"ParameterList","parameters":[],"src":"3533:0:11"},"scope":2296,"src":"3460:74:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2262,"nodeType":"StructuredDocumentation","src":"3540:452:11","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":2269,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4006:7:11","nodeType":"FunctionDefinition","parameters":{"id":2267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2264,"mutability":"mutable","name":"to","nameLocation":"4022:2:11","nodeType":"VariableDeclaration","scope":2269,"src":"4014:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2263,"name":"address","nodeType":"ElementaryTypeName","src":"4014:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"tokenId","nameLocation":"4034:7:11","nodeType":"VariableDeclaration","scope":2269,"src":"4026:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2265,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4013:29:11"},"returnParameters":{"id":2268,"nodeType":"ParameterList","parameters":[],"src":"4051:0:11"},"scope":2296,"src":"3997:55:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2270,"nodeType":"StructuredDocumentation","src":"4058:309:11","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":2277,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4381:17:11","nodeType":"FunctionDefinition","parameters":{"id":2275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2272,"mutability":"mutable","name":"operator","nameLocation":"4407:8:11","nodeType":"VariableDeclaration","scope":2277,"src":"4399:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2271,"name":"address","nodeType":"ElementaryTypeName","src":"4399:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2274,"mutability":"mutable","name":"approved","nameLocation":"4422:8:11","nodeType":"VariableDeclaration","scope":2277,"src":"4417:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2273,"name":"bool","nodeType":"ElementaryTypeName","src":"4417:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4398:33:11"},"returnParameters":{"id":2276,"nodeType":"ParameterList","parameters":[],"src":"4440:0:11"},"scope":2296,"src":"4372:69:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2278,"nodeType":"StructuredDocumentation","src":"4447:139:11","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":2285,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4600:11:11","nodeType":"FunctionDefinition","parameters":{"id":2281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2280,"mutability":"mutable","name":"tokenId","nameLocation":"4620:7:11","nodeType":"VariableDeclaration","scope":2285,"src":"4612:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4611:17:11"},"returnParameters":{"id":2284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2283,"mutability":"mutable","name":"operator","nameLocation":"4660:8:11","nodeType":"VariableDeclaration","scope":2285,"src":"4652:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2282,"name":"address","nodeType":"ElementaryTypeName","src":"4652:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4651:18:11"},"scope":2296,"src":"4591:79:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2286,"nodeType":"StructuredDocumentation","src":"4676:138:11","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":2295,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4828:16:11","nodeType":"FunctionDefinition","parameters":{"id":2291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2288,"mutability":"mutable","name":"owner","nameLocation":"4853:5:11","nodeType":"VariableDeclaration","scope":2295,"src":"4845:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2287,"name":"address","nodeType":"ElementaryTypeName","src":"4845:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2290,"mutability":"mutable","name":"operator","nameLocation":"4868:8:11","nodeType":"VariableDeclaration","scope":2295,"src":"4860:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2289,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4844:33:11"},"returnParameters":{"id":2294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2295,"src":"4901:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2292,"name":"bool","nodeType":"ElementaryTypeName","src":"4901:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4900:6:11"},"scope":2296,"src":"4819:88:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2297,"src":"261:4648:11","usedErrors":[],"usedEvents":[2195,2204,2213]}],"src":"108:4802:11"},"id":11},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[3100],"IERC721MetadataUpgradeable":[2323],"IERC721Upgradeable":[2296]},"id":2324,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2298,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:12"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"../IERC721Upgradeable.sol","id":2299,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2324,"sourceUnit":2297,"src":"137:35:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2301,"name":"IERC721Upgradeable","nameLocations":["348:18:12"],"nodeType":"IdentifierPath","referencedDeclaration":2296,"src":"348:18:12"},"id":2302,"nodeType":"InheritanceSpecifier","src":"348:18:12"}],"canonicalName":"IERC721MetadataUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":2300,"nodeType":"StructuredDocumentation","src":"174:133:12","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":2323,"linearizedBaseContracts":[2323,2296,3100],"name":"IERC721MetadataUpgradeable","nameLocation":"318:26:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2303,"nodeType":"StructuredDocumentation","src":"373:58:12","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":2308,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"445:4:12","nodeType":"FunctionDefinition","parameters":{"id":2304,"nodeType":"ParameterList","parameters":[],"src":"449:2:12"},"returnParameters":{"id":2307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2308,"src":"475:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2305,"name":"string","nodeType":"ElementaryTypeName","src":"475:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"474:15:12"},"scope":2323,"src":"436:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2309,"nodeType":"StructuredDocumentation","src":"496:60:12","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":2314,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"570:6:12","nodeType":"FunctionDefinition","parameters":{"id":2310,"nodeType":"ParameterList","parameters":[],"src":"576:2:12"},"returnParameters":{"id":2313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2314,"src":"602:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2311,"name":"string","nodeType":"ElementaryTypeName","src":"602:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"601:15:12"},"scope":2323,"src":"561:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2315,"nodeType":"StructuredDocumentation","src":"623:90:12","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":2322,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"727:8:12","nodeType":"FunctionDefinition","parameters":{"id":2318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2317,"mutability":"mutable","name":"tokenId","nameLocation":"744:7:12","nodeType":"VariableDeclaration","scope":2322,"src":"736:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2316,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"735:17:12"},"returnParameters":{"id":2321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2322,"src":"776:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2319,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"775:15:12"},"scope":2323,"src":"718:73:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2324,"src":"308:485:12","usedErrors":[],"usedEvents":[2195,2204,2213]}],"src":"112:682:12"},"id":12},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2653]},"id":2654,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2325,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":2326,"nodeType":"StructuredDocumentation","src":"126:67:13","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":2653,"linearizedBaseContracts":[2653],"name":"AddressUpgradeable","nameLocation":"202:18:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":2340,"nodeType":"Block","src":"1489:254:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2334,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"1713:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:4:13","memberName":"code","nodeType":"MemberAccess","src":"1713:12:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:13","memberName":"length","nodeType":"MemberAccess","src":"1713:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2333,"id":2339,"nodeType":"Return","src":"1706:30:13"}]},"documentation":{"id":2327,"nodeType":"StructuredDocumentation","src":"227:1191:13","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":2341,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:13","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"mutability":"mutable","name":"account","nameLocation":"1451:7:13","nodeType":"VariableDeclaration","scope":2341,"src":"1443:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2328,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:13"},"returnParameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2341,"src":"1483:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2331,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:13"},"scope":2653,"src":"1423:320:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2374,"nodeType":"Block","src":"2729:241:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2352,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:13","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$2653","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$2653","typeString":"library AddressUpgradeable"}],"id":2351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2350,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:13","typeDescriptions":{}}},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:7:13","memberName":"balance","nodeType":"MemberAccess","src":"2747:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2355,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2346,"src":"2772:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":2357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":2349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2739:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2359,"nodeType":"ExpressionStatement","src":"2739:73:13"},{"assignments":[2361,null],"declarations":[{"constant":false,"id":2361,"mutability":"mutable","name":"success","nameLocation":"2829:7:13","nodeType":"VariableDeclaration","scope":2374,"src":"2824:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2360,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":2368,"initialValue":{"arguments":[{"hexValue":"","id":2366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":2362,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"2842:9:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:13","memberName":"call","nodeType":"MemberAccess","src":"2842:14:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2364,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2346,"src":"2864:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:33:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:13"},{"expression":{"arguments":[{"id":2370,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"2893:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":2371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":2369,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2885:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2373,"nodeType":"ExpressionStatement","src":"2885:78:13"}]},"documentation":{"id":2342,"nodeType":"StructuredDocumentation","src":"1749:904:13","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":2375,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:13","nodeType":"FunctionDefinition","parameters":{"id":2347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2344,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:13","nodeType":"VariableDeclaration","scope":2375,"src":"2677:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2343,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:13","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":2346,"mutability":"mutable","name":"amount","nameLocation":"2712:6:13","nodeType":"VariableDeclaration","scope":2375,"src":"2704:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2345,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:13"},"returnParameters":{"id":2348,"nodeType":"ParameterList","parameters":[],"src":"2729:0:13"},"scope":2653,"src":"2658:312:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2392,"nodeType":"Block","src":"3801:96:13","statements":[{"expression":{"arguments":[{"id":2386,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2378,"src":"3840:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2387,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"3848:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":2389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":2385,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2433,2477],"referencedDeclaration":2477,"src":"3818:21:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2384,"id":2391,"nodeType":"Return","src":"3811:79:13"}]},"documentation":{"id":2376,"nodeType":"StructuredDocumentation","src":"2976:731:13","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":2393,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:13","nodeType":"FunctionDefinition","parameters":{"id":2381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2378,"mutability":"mutable","name":"target","nameLocation":"3742:6:13","nodeType":"VariableDeclaration","scope":2393,"src":"3734:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2377,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2380,"mutability":"mutable","name":"data","nameLocation":"3763:4:13","nodeType":"VariableDeclaration","scope":2393,"src":"3750:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2379,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:13"},"returnParameters":{"id":2384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2393,"src":"3787:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2382,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:13"},"scope":2653,"src":"3712:185:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2412,"nodeType":"Block","src":"4266:76:13","statements":[{"expression":{"arguments":[{"id":2406,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4305:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2407,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"4313:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2409,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2400,"src":"4322:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2405,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2433,2477],"referencedDeclaration":2477,"src":"4283:21:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4283:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2404,"id":2411,"nodeType":"Return","src":"4276:59:13"}]},"documentation":{"id":2394,"nodeType":"StructuredDocumentation","src":"3903:211:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2413,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:13","nodeType":"FunctionDefinition","parameters":{"id":2401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"mutability":"mutable","name":"target","nameLocation":"4158:6:13","nodeType":"VariableDeclaration","scope":2413,"src":"4150:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2395,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2398,"mutability":"mutable","name":"data","nameLocation":"4187:4:13","nodeType":"VariableDeclaration","scope":2413,"src":"4174:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2397,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2400,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:13","nodeType":"VariableDeclaration","scope":2413,"src":"4201:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2399,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:13"},"returnParameters":{"id":2404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2413,"src":"4252:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2402,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:13"},"scope":2653,"src":"4119:223:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2432,"nodeType":"Block","src":"4817:111:13","statements":[{"expression":{"arguments":[{"id":2426,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2416,"src":"4856:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2427,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"4864:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2420,"src":"4870:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":2429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":2425,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2433,2477],"referencedDeclaration":2477,"src":"4834:21:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2424,"id":2431,"nodeType":"Return","src":"4827:94:13"}]},"documentation":{"id":2414,"nodeType":"StructuredDocumentation","src":"4348:351:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":2433,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:13","nodeType":"FunctionDefinition","parameters":{"id":2421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2416,"mutability":"mutable","name":"target","nameLocation":"4743:6:13","nodeType":"VariableDeclaration","scope":2433,"src":"4735:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2415,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2418,"mutability":"mutable","name":"data","nameLocation":"4764:4:13","nodeType":"VariableDeclaration","scope":2433,"src":"4751:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2417,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2420,"mutability":"mutable","name":"value","nameLocation":"4778:5:13","nodeType":"VariableDeclaration","scope":2433,"src":"4770:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2419,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:13"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2433,"src":"4803:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2422,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:13"},"scope":2653,"src":"4704:224:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2476,"nodeType":"Block","src":"5355:267:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2450,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:13","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$2653","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$2653","typeString":"library AddressUpgradeable"}],"id":2449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2448,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:13","typeDescriptions":{}}},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:7:13","memberName":"balance","nodeType":"MemberAccess","src":"5373:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2440,"src":"5398:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":2455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":2447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5365:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2457,"nodeType":"ExpressionStatement","src":"5365:81:13"},{"assignments":[2459,2461],"declarations":[{"constant":false,"id":2459,"mutability":"mutable","name":"success","nameLocation":"5462:7:13","nodeType":"VariableDeclaration","scope":2476,"src":"5457:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2458,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2461,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:13","nodeType":"VariableDeclaration","scope":2476,"src":"5471:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2460,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2468,"initialValue":{"arguments":[{"id":2466,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"5524:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2462,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"5498:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5505:4:13","memberName":"call","nodeType":"MemberAccess","src":"5498:11:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2464,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2440,"src":"5517:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:13"},{"expression":{"arguments":[{"id":2470,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"5573:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2459,"src":"5581:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2472,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2461,"src":"5590:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2473,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"5602:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2469,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"5546:26:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2446,"id":2475,"nodeType":"Return","src":"5539:76:13"}]},"documentation":{"id":2434,"nodeType":"StructuredDocumentation","src":"4934:237:13","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2477,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:13","nodeType":"FunctionDefinition","parameters":{"id":2443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2436,"mutability":"mutable","name":"target","nameLocation":"5224:6:13","nodeType":"VariableDeclaration","scope":2477,"src":"5216:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2435,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2438,"mutability":"mutable","name":"data","nameLocation":"5253:4:13","nodeType":"VariableDeclaration","scope":2477,"src":"5240:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2437,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2440,"mutability":"mutable","name":"value","nameLocation":"5275:5:13","nodeType":"VariableDeclaration","scope":2477,"src":"5267:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2439,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2442,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:13","nodeType":"VariableDeclaration","scope":2477,"src":"5290:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2441,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:13"},"returnParameters":{"id":2446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2477,"src":"5341:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2444,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:13"},"scope":2653,"src":"5176:446:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2493,"nodeType":"Block","src":"5899:97:13","statements":[{"expression":{"arguments":[{"id":2488,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"5935:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2489,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"5943:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":2490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":2487,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[2494,2523],"referencedDeclaration":2523,"src":"5916:18:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":2491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2486,"id":2492,"nodeType":"Return","src":"5909:80:13"}]},"documentation":{"id":2478,"nodeType":"StructuredDocumentation","src":"5628:166:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2494,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:13","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"mutability":"mutable","name":"target","nameLocation":"5835:6:13","nodeType":"VariableDeclaration","scope":2494,"src":"5827:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2479,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2482,"mutability":"mutable","name":"data","nameLocation":"5856:4:13","nodeType":"VariableDeclaration","scope":2494,"src":"5843:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2481,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:13"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2494,"src":"5885:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2484,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:13"},"scope":2653,"src":"5799:197:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2522,"nodeType":"Block","src":"6338:168:13","statements":[{"assignments":[2507,2509],"declarations":[{"constant":false,"id":2507,"mutability":"mutable","name":"success","nameLocation":"6354:7:13","nodeType":"VariableDeclaration","scope":2522,"src":"6349:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2506,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2509,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:13","nodeType":"VariableDeclaration","scope":2522,"src":"6363:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2508,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2514,"initialValue":{"arguments":[{"id":2512,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"6408:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2510,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"6390:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:13","memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:13","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":2513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:13"},{"expression":{"arguments":[{"id":2516,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"6457:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2517,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2507,"src":"6465:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2518,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2509,"src":"6474:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2519,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"6486:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2515,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"6430:26:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2505,"id":2521,"nodeType":"Return","src":"6423:76:13"}]},"documentation":{"id":2495,"nodeType":"StructuredDocumentation","src":"6002:173:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2523,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:13","nodeType":"FunctionDefinition","parameters":{"id":2502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"target","nameLocation":"6225:6:13","nodeType":"VariableDeclaration","scope":2523,"src":"6217:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2496,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2499,"mutability":"mutable","name":"data","nameLocation":"6254:4:13","nodeType":"VariableDeclaration","scope":2523,"src":"6241:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2498,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2501,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:13","nodeType":"VariableDeclaration","scope":2523,"src":"6268:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2500,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:13"},"returnParameters":{"id":2505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2523,"src":"6324:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2503,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:13"},"scope":2653,"src":"6180:326:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2539,"nodeType":"Block","src":"6782:101:13","statements":[{"expression":{"arguments":[{"id":2534,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2526,"src":"6820:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2535,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2528,"src":"6828:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":2536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":2533,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[2540,2569],"referencedDeclaration":2569,"src":"6799:20:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2532,"id":2538,"nodeType":"Return","src":"6792:84:13"}]},"documentation":{"id":2524,"nodeType":"StructuredDocumentation","src":"6512:168:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2540,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:13","nodeType":"FunctionDefinition","parameters":{"id":2529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2526,"mutability":"mutable","name":"target","nameLocation":"6723:6:13","nodeType":"VariableDeclaration","scope":2540,"src":"6715:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2525,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2528,"mutability":"mutable","name":"data","nameLocation":"6744:4:13","nodeType":"VariableDeclaration","scope":2540,"src":"6731:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2527,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:13"},"returnParameters":{"id":2532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2540,"src":"6768:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2530,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:13"},"scope":2653,"src":"6685:198:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2568,"nodeType":"Block","src":"7224:170:13","statements":[{"assignments":[2553,2555],"declarations":[{"constant":false,"id":2553,"mutability":"mutable","name":"success","nameLocation":"7240:7:13","nodeType":"VariableDeclaration","scope":2568,"src":"7235:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2552,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2555,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:13","nodeType":"VariableDeclaration","scope":2568,"src":"7249:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2554,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2560,"initialValue":{"arguments":[{"id":2558,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"7296:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2556,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"7276:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7283:12:13","memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:13","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7276:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:13"},{"expression":{"arguments":[{"id":2562,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"7345:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2563,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2553,"src":"7353:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2564,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2555,"src":"7362:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2565,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"7374:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2561,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"7318:26:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2551,"id":2567,"nodeType":"Return","src":"7311:76:13"}]},"documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"6889:175:13","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2569,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:13","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"target","nameLocation":"7116:6:13","nodeType":"VariableDeclaration","scope":2569,"src":"7108:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2542,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"data","nameLocation":"7145:4:13","nodeType":"VariableDeclaration","scope":2569,"src":"7132:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2544,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:13","nodeType":"VariableDeclaration","scope":2569,"src":"7159:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2546,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:13"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"7210:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2549,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:13"},"scope":2653,"src":"7069:325:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2607,"nodeType":"Block","src":"7876:434:13","statements":[{"condition":{"id":2583,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"7890:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2605,"nodeType":"Block","src":"8246:58:13","statements":[{"expression":{"arguments":[{"id":2601,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"8268:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2602,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2578,"src":"8280:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2600,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2652,"src":"8260:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8260:33:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2604,"nodeType":"ExpressionStatement","src":"8260:33:13"}]},"id":2606,"nodeType":"IfStatement","src":"7886:418:13","trueBody":{"id":2599,"nodeType":"Block","src":"7899:341:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2584,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"7917:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7928:6:13","memberName":"length","nodeType":"MemberAccess","src":"7917:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2596,"nodeType":"IfStatement","src":"7913:286:13","trueBody":{"id":2595,"nodeType":"Block","src":"7941:258:13","statements":[{"expression":{"arguments":[{"arguments":[{"id":2590,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"8143:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2589,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"8132:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":2588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8124:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8124:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2594,"nodeType":"ExpressionStatement","src":"8124:60:13"}]}},{"expression":{"id":2597,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"8219:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2582,"id":2598,"nodeType":"Return","src":"8212:17:13"}]}}]},"documentation":{"id":2570,"nodeType":"StructuredDocumentation","src":"7400:277:13","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":2608,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:13","nodeType":"FunctionDefinition","parameters":{"id":2579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2572,"mutability":"mutable","name":"target","nameLocation":"7735:6:13","nodeType":"VariableDeclaration","scope":2608,"src":"7727:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2571,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2574,"mutability":"mutable","name":"success","nameLocation":"7756:7:13","nodeType":"VariableDeclaration","scope":2608,"src":"7751:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2573,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2576,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:13","nodeType":"VariableDeclaration","scope":2608,"src":"7773:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2575,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2578,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:13","nodeType":"VariableDeclaration","scope":2608,"src":"7806:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2577,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:13"},"returnParameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2608,"src":"7862:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2580,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:13"},"scope":2653,"src":"7682:628:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2631,"nodeType":"Block","src":"8691:135:13","statements":[{"condition":{"id":2620,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"8705:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2629,"nodeType":"Block","src":"8762:58:13","statements":[{"expression":{"arguments":[{"id":2625,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"8784:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2626,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"8796:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2624,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2652,"src":"8776:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:33:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2628,"nodeType":"ExpressionStatement","src":"8776:33:13"}]},"id":2630,"nodeType":"IfStatement","src":"8701:119:13","trueBody":{"id":2623,"nodeType":"Block","src":"8714:42:13","statements":[{"expression":{"id":2621,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"8735:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2619,"id":2622,"nodeType":"Return","src":"8728:17:13"}]}}]},"documentation":{"id":2609,"nodeType":"StructuredDocumentation","src":"8316:210:13","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":2632,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:13","nodeType":"FunctionDefinition","parameters":{"id":2616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2611,"mutability":"mutable","name":"success","nameLocation":"8571:7:13","nodeType":"VariableDeclaration","scope":2632,"src":"8566:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2610,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2613,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:13","nodeType":"VariableDeclaration","scope":2632,"src":"8588:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2612,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2615,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:13","nodeType":"VariableDeclaration","scope":2632,"src":"8621:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2614,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:13"},"returnParameters":{"id":2619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2632,"src":"8677:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2617,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:13"},"scope":2653,"src":"8531:295:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2651,"nodeType":"Block","src":"8915:457:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2639,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2634,"src":"8991:10:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:6:13","memberName":"length","nodeType":"MemberAccess","src":"8991:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2649,"nodeType":"Block","src":"9321:45:13","statements":[{"expression":{"arguments":[{"id":2646,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"9342:12:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2645,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:13","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:20:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2648,"nodeType":"ExpressionStatement","src":"9335:20:13"}]},"id":2650,"nodeType":"IfStatement","src":"8987:379:13","trueBody":{"id":2644,"nodeType":"Block","src":"9014:301:13","statements":[{"AST":{"nativeSrc":"9172:133:13","nodeType":"YulBlock","src":"9172:133:13","statements":[{"nativeSrc":"9190:40:13","nodeType":"YulVariableDeclaration","src":"9190:40:13","value":{"arguments":[{"name":"returndata","nativeSrc":"9219:10:13","nodeType":"YulIdentifier","src":"9219:10:13"}],"functionName":{"name":"mload","nativeSrc":"9213:5:13","nodeType":"YulIdentifier","src":"9213:5:13"},"nativeSrc":"9213:17:13","nodeType":"YulFunctionCall","src":"9213:17:13"},"variables":[{"name":"returndata_size","nativeSrc":"9194:15:13","nodeType":"YulTypedName","src":"9194:15:13","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9258:2:13","nodeType":"YulLiteral","src":"9258:2:13","type":"","value":"32"},{"name":"returndata","nativeSrc":"9262:10:13","nodeType":"YulIdentifier","src":"9262:10:13"}],"functionName":{"name":"add","nativeSrc":"9254:3:13","nodeType":"YulIdentifier","src":"9254:3:13"},"nativeSrc":"9254:19:13","nodeType":"YulFunctionCall","src":"9254:19:13"},{"name":"returndata_size","nativeSrc":"9275:15:13","nodeType":"YulIdentifier","src":"9275:15:13"}],"functionName":{"name":"revert","nativeSrc":"9247:6:13","nodeType":"YulIdentifier","src":"9247:6:13"},"nativeSrc":"9247:44:13","nodeType":"YulFunctionCall","src":"9247:44:13"},"nativeSrc":"9247:44:13","nodeType":"YulExpressionStatement","src":"9247:44:13"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2634,"isOffset":false,"isSlot":false,"src":"9219:10:13","valueSize":1},{"declaration":2634,"isOffset":false,"isSlot":false,"src":"9262:10:13","valueSize":1}],"id":2643,"nodeType":"InlineAssembly","src":"9163:142:13"}]}}]},"id":2652,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:13","nodeType":"FunctionDefinition","parameters":{"id":2637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2634,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:13","nodeType":"VariableDeclaration","scope":2652,"src":"8849:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2633,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2636,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:13","nodeType":"VariableDeclaration","scope":2652,"src":"8874:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2635,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:13"},"returnParameters":{"id":2638,"nodeType":"ParameterList","parameters":[],"src":"8915:0:13"},"scope":2653,"src":"8832:540:13","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2654,"src":"194:9180:13","usedErrors":[],"usedEvents":[]}],"src":"101:9274:13"},"id":13},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[2704],"Initializable":[944]},"id":2705,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2655,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:14"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2657,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2705,"sourceUnit":945,"src":"125:63:14","symbolAliases":[{"foreign":{"id":2656,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"133:13:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2659,"name":"Initializable","nameLocations":["727:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"727:13:14"},"id":2660,"nodeType":"InheritanceSpecifier","src":"727:13:14"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2658,"nodeType":"StructuredDocumentation","src":"190:496:14","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":2704,"linearizedBaseContracts":[2704,944],"name":"ContextUpgradeable","nameLocation":"705:18:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":2665,"nodeType":"Block","src":"799:7:14","statements":[]},"id":2666,"implemented":true,"kind":"function","modifiers":[{"id":2663,"kind":"modifierInvocation","modifierName":{"id":2662,"name":"onlyInitializing","nameLocations":["782:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"782:16:14"},"nodeType":"ModifierInvocation","src":"782:16:14"}],"name":"__Context_init","nameLocation":"756:14:14","nodeType":"FunctionDefinition","parameters":{"id":2661,"nodeType":"ParameterList","parameters":[],"src":"770:2:14"},"returnParameters":{"id":2664,"nodeType":"ParameterList","parameters":[],"src":"799:0:14"},"scope":2704,"src":"747:59:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2671,"nodeType":"Block","src":"874:7:14","statements":[]},"id":2672,"implemented":true,"kind":"function","modifiers":[{"id":2669,"kind":"modifierInvocation","modifierName":{"id":2668,"name":"onlyInitializing","nameLocations":["857:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"857:16:14"},"nodeType":"ModifierInvocation","src":"857:16:14"}],"name":"__Context_init_unchained","nameLocation":"821:24:14","nodeType":"FunctionDefinition","parameters":{"id":2667,"nodeType":"ParameterList","parameters":[],"src":"845:2:14"},"returnParameters":{"id":2670,"nodeType":"ParameterList","parameters":[],"src":"874:0:14"},"scope":2704,"src":"812:69:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2680,"nodeType":"Block","src":"948:34:14","statements":[{"expression":{"expression":{"id":2677,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"965:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:6:14","memberName":"sender","nodeType":"MemberAccess","src":"965:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2676,"id":2679,"nodeType":"Return","src":"958:17:14"}]},"id":2681,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"895:10:14","nodeType":"FunctionDefinition","parameters":{"id":2673,"nodeType":"ParameterList","parameters":[],"src":"905:2:14"},"returnParameters":{"id":2676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2681,"src":"939:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2674,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"938:9:14"},"scope":2704,"src":"886:96:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2689,"nodeType":"Block","src":"1055:32:14","statements":[{"expression":{"expression":{"id":2686,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1072:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1076:4:14","memberName":"data","nodeType":"MemberAccess","src":"1072:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2685,"id":2688,"nodeType":"Return","src":"1065:15:14"}]},"id":2690,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"997:8:14","nodeType":"FunctionDefinition","parameters":{"id":2682,"nodeType":"ParameterList","parameters":[],"src":"1005:2:14"},"returnParameters":{"id":2685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2690,"src":"1039:14:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2683,"name":"bytes","nodeType":"ElementaryTypeName","src":"1039:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1038:16:14"},"scope":2704,"src":"988:99:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2697,"nodeType":"Block","src":"1165:25:14","statements":[{"expression":{"hexValue":"30","id":2695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1182:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2694,"id":2696,"nodeType":"Return","src":"1175:8:14"}]},"id":2698,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1102:20:14","nodeType":"FunctionDefinition","parameters":{"id":2691,"nodeType":"ParameterList","parameters":[],"src":"1122:2:14"},"returnParameters":{"id":2694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2698,"src":"1156:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2692,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:9:14"},"scope":2704,"src":"1093:97:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":2699,"nodeType":"StructuredDocumentation","src":"1196:254:14","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":2703,"mutability":"mutable","name":"__gap","nameLocation":"1475:5:14","nodeType":"VariableDeclaration","scope":2704,"src":"1455:25:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":2700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2702,"length":{"hexValue":"3530","id":2701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1463:2:14","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1455:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":2705,"src":"687:796:14","usedErrors":[],"usedEvents":[790]}],"src":"101:1383:14"},"id":14},"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol","exportedSymbols":{"StorageSlotUpgradeable":[2814]},"id":2815,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2706,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlotUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":2707,"nodeType":"StructuredDocumentation","src":"218:1201:15","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n _Available since v4.9 for `string`, `bytes`._"},"fullyImplemented":true,"id":2814,"linearizedBaseContracts":[2814],"name":"StorageSlotUpgradeable","nameLocation":"1428:22:15","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlotUpgradeable.AddressSlot","id":2710,"members":[{"constant":false,"id":2709,"mutability":"mutable","name":"value","nameLocation":"1494:5:15","nodeType":"VariableDeclaration","scope":2710,"src":"1486:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2708,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1464:11:15","nodeType":"StructDefinition","scope":2814,"src":"1457:49:15","visibility":"public"},{"canonicalName":"StorageSlotUpgradeable.BooleanSlot","id":2713,"members":[{"constant":false,"id":2712,"mutability":"mutable","name":"value","nameLocation":"1546:5:15","nodeType":"VariableDeclaration","scope":2713,"src":"1541:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2711,"name":"bool","nodeType":"ElementaryTypeName","src":"1541:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1519:11:15","nodeType":"StructDefinition","scope":2814,"src":"1512:46:15","visibility":"public"},{"canonicalName":"StorageSlotUpgradeable.Bytes32Slot","id":2716,"members":[{"constant":false,"id":2715,"mutability":"mutable","name":"value","nameLocation":"1601:5:15","nodeType":"VariableDeclaration","scope":2716,"src":"1593:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1593:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1571:11:15","nodeType":"StructDefinition","scope":2814,"src":"1564:49:15","visibility":"public"},{"canonicalName":"StorageSlotUpgradeable.Uint256Slot","id":2719,"members":[{"constant":false,"id":2718,"mutability":"mutable","name":"value","nameLocation":"1656:5:15","nodeType":"VariableDeclaration","scope":2719,"src":"1648:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2717,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1626:11:15","nodeType":"StructDefinition","scope":2814,"src":"1619:49:15","visibility":"public"},{"canonicalName":"StorageSlotUpgradeable.StringSlot","id":2722,"members":[{"constant":false,"id":2721,"mutability":"mutable","name":"value","nameLocation":"1709:5:15","nodeType":"VariableDeclaration","scope":2722,"src":"1702:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2720,"name":"string","nodeType":"ElementaryTypeName","src":"1702:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1681:10:15","nodeType":"StructDefinition","scope":2814,"src":"1674:47:15","visibility":"public"},{"canonicalName":"StorageSlotUpgradeable.BytesSlot","id":2725,"members":[{"constant":false,"id":2724,"mutability":"mutable","name":"value","nameLocation":"1760:5:15","nodeType":"VariableDeclaration","scope":2725,"src":"1754:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2723,"name":"bytes","nodeType":"ElementaryTypeName","src":"1754:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1734:9:15","nodeType":"StructDefinition","scope":2814,"src":"1727:45:15","visibility":"public"},{"body":{"id":2735,"nodeType":"Block","src":"1954:106:15","statements":[{"AST":{"nativeSrc":"2016:38:15","nodeType":"YulBlock","src":"2016:38:15","statements":[{"nativeSrc":"2030:14:15","nodeType":"YulAssignment","src":"2030:14:15","value":{"name":"slot","nativeSrc":"2040:4:15","nodeType":"YulIdentifier","src":"2040:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"2030:6:15","nodeType":"YulIdentifier","src":"2030:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2732,"isOffset":false,"isSlot":true,"src":"2030:6:15","suffix":"slot","valueSize":1},{"declaration":2728,"isOffset":false,"isSlot":false,"src":"2040:4:15","valueSize":1}],"id":2734,"nodeType":"InlineAssembly","src":"2007:47:15"}]},"documentation":{"id":2726,"nodeType":"StructuredDocumentation","src":"1778:87:15","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":2736,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1879:14:15","nodeType":"FunctionDefinition","parameters":{"id":2729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2728,"mutability":"mutable","name":"slot","nameLocation":"1902:4:15","nodeType":"VariableDeclaration","scope":2736,"src":"1894:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1894:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1893:14:15"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2732,"mutability":"mutable","name":"r","nameLocation":"1951:1:15","nodeType":"VariableDeclaration","scope":2736,"src":"1931:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot"},"typeName":{"id":2731,"nodeType":"UserDefinedTypeName","pathNode":{"id":2730,"name":"AddressSlot","nameLocations":["1931:11:15"],"nodeType":"IdentifierPath","referencedDeclaration":2710,"src":"1931:11:15"},"referencedDeclaration":2710,"src":"1931:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2710_storage_ptr","typeString":"struct StorageSlotUpgradeable.AddressSlot"}},"visibility":"internal"}],"src":"1930:23:15"},"scope":2814,"src":"1870:190:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2746,"nodeType":"Block","src":"2242:106:15","statements":[{"AST":{"nativeSrc":"2304:38:15","nodeType":"YulBlock","src":"2304:38:15","statements":[{"nativeSrc":"2318:14:15","nodeType":"YulAssignment","src":"2318:14:15","value":{"name":"slot","nativeSrc":"2328:4:15","nodeType":"YulIdentifier","src":"2328:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"2318:6:15","nodeType":"YulIdentifier","src":"2318:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2743,"isOffset":false,"isSlot":true,"src":"2318:6:15","suffix":"slot","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"2328:4:15","valueSize":1}],"id":2745,"nodeType":"InlineAssembly","src":"2295:47:15"}]},"documentation":{"id":2737,"nodeType":"StructuredDocumentation","src":"2066:87:15","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":2747,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2167:14:15","nodeType":"FunctionDefinition","parameters":{"id":2740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2739,"mutability":"mutable","name":"slot","nameLocation":"2190:4:15","nodeType":"VariableDeclaration","scope":2747,"src":"2182:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2182:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2181:14:15"},"returnParameters":{"id":2744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2743,"mutability":"mutable","name":"r","nameLocation":"2239:1:15","nodeType":"VariableDeclaration","scope":2747,"src":"2219:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2713_storage_ptr","typeString":"struct StorageSlotUpgradeable.BooleanSlot"},"typeName":{"id":2742,"nodeType":"UserDefinedTypeName","pathNode":{"id":2741,"name":"BooleanSlot","nameLocations":["2219:11:15"],"nodeType":"IdentifierPath","referencedDeclaration":2713,"src":"2219:11:15"},"referencedDeclaration":2713,"src":"2219:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2713_storage_ptr","typeString":"struct StorageSlotUpgradeable.BooleanSlot"}},"visibility":"internal"}],"src":"2218:23:15"},"scope":2814,"src":"2158:190:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2757,"nodeType":"Block","src":"2530:106:15","statements":[{"AST":{"nativeSrc":"2592:38:15","nodeType":"YulBlock","src":"2592:38:15","statements":[{"nativeSrc":"2606:14:15","nodeType":"YulAssignment","src":"2606:14:15","value":{"name":"slot","nativeSrc":"2616:4:15","nodeType":"YulIdentifier","src":"2616:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"2606:6:15","nodeType":"YulIdentifier","src":"2606:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2754,"isOffset":false,"isSlot":true,"src":"2606:6:15","suffix":"slot","valueSize":1},{"declaration":2750,"isOffset":false,"isSlot":false,"src":"2616:4:15","valueSize":1}],"id":2756,"nodeType":"InlineAssembly","src":"2583:47:15"}]},"documentation":{"id":2748,"nodeType":"StructuredDocumentation","src":"2354:87:15","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":2758,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2455:14:15","nodeType":"FunctionDefinition","parameters":{"id":2751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2750,"mutability":"mutable","name":"slot","nameLocation":"2478:4:15","nodeType":"VariableDeclaration","scope":2758,"src":"2470:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2470:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2469:14:15"},"returnParameters":{"id":2755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2754,"mutability":"mutable","name":"r","nameLocation":"2527:1:15","nodeType":"VariableDeclaration","scope":2758,"src":"2507:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2716_storage_ptr","typeString":"struct StorageSlotUpgradeable.Bytes32Slot"},"typeName":{"id":2753,"nodeType":"UserDefinedTypeName","pathNode":{"id":2752,"name":"Bytes32Slot","nameLocations":["2507:11:15"],"nodeType":"IdentifierPath","referencedDeclaration":2716,"src":"2507:11:15"},"referencedDeclaration":2716,"src":"2507:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2716_storage_ptr","typeString":"struct StorageSlotUpgradeable.Bytes32Slot"}},"visibility":"internal"}],"src":"2506:23:15"},"scope":2814,"src":"2446:190:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2768,"nodeType":"Block","src":"2818:106:15","statements":[{"AST":{"nativeSrc":"2880:38:15","nodeType":"YulBlock","src":"2880:38:15","statements":[{"nativeSrc":"2894:14:15","nodeType":"YulAssignment","src":"2894:14:15","value":{"name":"slot","nativeSrc":"2904:4:15","nodeType":"YulIdentifier","src":"2904:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"2894:6:15","nodeType":"YulIdentifier","src":"2894:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2765,"isOffset":false,"isSlot":true,"src":"2894:6:15","suffix":"slot","valueSize":1},{"declaration":2761,"isOffset":false,"isSlot":false,"src":"2904:4:15","valueSize":1}],"id":2767,"nodeType":"InlineAssembly","src":"2871:47:15"}]},"documentation":{"id":2759,"nodeType":"StructuredDocumentation","src":"2642:87:15","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":2769,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2743:14:15","nodeType":"FunctionDefinition","parameters":{"id":2762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2761,"mutability":"mutable","name":"slot","nameLocation":"2766:4:15","nodeType":"VariableDeclaration","scope":2769,"src":"2758:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2758:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2757:14:15"},"returnParameters":{"id":2766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2765,"mutability":"mutable","name":"r","nameLocation":"2815:1:15","nodeType":"VariableDeclaration","scope":2769,"src":"2795:21:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2719_storage_ptr","typeString":"struct StorageSlotUpgradeable.Uint256Slot"},"typeName":{"id":2764,"nodeType":"UserDefinedTypeName","pathNode":{"id":2763,"name":"Uint256Slot","nameLocations":["2795:11:15"],"nodeType":"IdentifierPath","referencedDeclaration":2719,"src":"2795:11:15"},"referencedDeclaration":2719,"src":"2795:11:15","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2719_storage_ptr","typeString":"struct StorageSlotUpgradeable.Uint256Slot"}},"visibility":"internal"}],"src":"2794:23:15"},"scope":2814,"src":"2734:190:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2779,"nodeType":"Block","src":"3103:106:15","statements":[{"AST":{"nativeSrc":"3165:38:15","nodeType":"YulBlock","src":"3165:38:15","statements":[{"nativeSrc":"3179:14:15","nodeType":"YulAssignment","src":"3179:14:15","value":{"name":"slot","nativeSrc":"3189:4:15","nodeType":"YulIdentifier","src":"3189:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"3179:6:15","nodeType":"YulIdentifier","src":"3179:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2776,"isOffset":false,"isSlot":true,"src":"3179:6:15","suffix":"slot","valueSize":1},{"declaration":2772,"isOffset":false,"isSlot":false,"src":"3189:4:15","valueSize":1}],"id":2778,"nodeType":"InlineAssembly","src":"3156:47:15"}]},"documentation":{"id":2770,"nodeType":"StructuredDocumentation","src":"2930:86:15","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":2780,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3030:13:15","nodeType":"FunctionDefinition","parameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"slot","nameLocation":"3052:4:15","nodeType":"VariableDeclaration","scope":2780,"src":"3044:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3044:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3043:14:15"},"returnParameters":{"id":2777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2776,"mutability":"mutable","name":"r","nameLocation":"3100:1:15","nodeType":"VariableDeclaration","scope":2780,"src":"3081:20:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2722_storage_ptr","typeString":"struct StorageSlotUpgradeable.StringSlot"},"typeName":{"id":2775,"nodeType":"UserDefinedTypeName","pathNode":{"id":2774,"name":"StringSlot","nameLocations":["3081:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":2722,"src":"3081:10:15"},"referencedDeclaration":2722,"src":"3081:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2722_storage_ptr","typeString":"struct StorageSlotUpgradeable.StringSlot"}},"visibility":"internal"}],"src":"3080:22:15"},"scope":2814,"src":"3021:188:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2790,"nodeType":"Block","src":"3411:112:15","statements":[{"AST":{"nativeSrc":"3473:44:15","nodeType":"YulBlock","src":"3473:44:15","statements":[{"nativeSrc":"3487:20:15","nodeType":"YulAssignment","src":"3487:20:15","value":{"name":"store.slot","nativeSrc":"3497:10:15","nodeType":"YulIdentifier","src":"3497:10:15"},"variableNames":[{"name":"r.slot","nativeSrc":"3487:6:15","nodeType":"YulIdentifier","src":"3487:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2787,"isOffset":false,"isSlot":true,"src":"3487:6:15","suffix":"slot","valueSize":1},{"declaration":2783,"isOffset":false,"isSlot":true,"src":"3497:10:15","suffix":"slot","valueSize":1}],"id":2789,"nodeType":"InlineAssembly","src":"3464:53:15"}]},"documentation":{"id":2781,"nodeType":"StructuredDocumentation","src":"3215:101:15","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":2791,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3330:13:15","nodeType":"FunctionDefinition","parameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2783,"mutability":"mutable","name":"store","nameLocation":"3359:5:15","nodeType":"VariableDeclaration","scope":2791,"src":"3344:20:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2782,"name":"string","nodeType":"ElementaryTypeName","src":"3344:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3343:22:15"},"returnParameters":{"id":2788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2787,"mutability":"mutable","name":"r","nameLocation":"3408:1:15","nodeType":"VariableDeclaration","scope":2791,"src":"3389:20:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2722_storage_ptr","typeString":"struct StorageSlotUpgradeable.StringSlot"},"typeName":{"id":2786,"nodeType":"UserDefinedTypeName","pathNode":{"id":2785,"name":"StringSlot","nameLocations":["3389:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":2722,"src":"3389:10:15"},"referencedDeclaration":2722,"src":"3389:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2722_storage_ptr","typeString":"struct StorageSlotUpgradeable.StringSlot"}},"visibility":"internal"}],"src":"3388:22:15"},"scope":2814,"src":"3321:202:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2801,"nodeType":"Block","src":"3699:106:15","statements":[{"AST":{"nativeSrc":"3761:38:15","nodeType":"YulBlock","src":"3761:38:15","statements":[{"nativeSrc":"3775:14:15","nodeType":"YulAssignment","src":"3775:14:15","value":{"name":"slot","nativeSrc":"3785:4:15","nodeType":"YulIdentifier","src":"3785:4:15"},"variableNames":[{"name":"r.slot","nativeSrc":"3775:6:15","nodeType":"YulIdentifier","src":"3775:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2798,"isOffset":false,"isSlot":true,"src":"3775:6:15","suffix":"slot","valueSize":1},{"declaration":2794,"isOffset":false,"isSlot":false,"src":"3785:4:15","valueSize":1}],"id":2800,"nodeType":"InlineAssembly","src":"3752:47:15"}]},"documentation":{"id":2792,"nodeType":"StructuredDocumentation","src":"3529:85:15","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":2802,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3628:12:15","nodeType":"FunctionDefinition","parameters":{"id":2795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2794,"mutability":"mutable","name":"slot","nameLocation":"3649:4:15","nodeType":"VariableDeclaration","scope":2802,"src":"3641:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3641:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3640:14:15"},"returnParameters":{"id":2799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2798,"mutability":"mutable","name":"r","nameLocation":"3696:1:15","nodeType":"VariableDeclaration","scope":2802,"src":"3678:19:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2725_storage_ptr","typeString":"struct StorageSlotUpgradeable.BytesSlot"},"typeName":{"id":2797,"nodeType":"UserDefinedTypeName","pathNode":{"id":2796,"name":"BytesSlot","nameLocations":["3678:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2725,"src":"3678:9:15"},"referencedDeclaration":2725,"src":"3678:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2725_storage_ptr","typeString":"struct StorageSlotUpgradeable.BytesSlot"}},"visibility":"internal"}],"src":"3677:21:15"},"scope":2814,"src":"3619:186:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2812,"nodeType":"Block","src":"4002:112:15","statements":[{"AST":{"nativeSrc":"4064:44:15","nodeType":"YulBlock","src":"4064:44:15","statements":[{"nativeSrc":"4078:20:15","nodeType":"YulAssignment","src":"4078:20:15","value":{"name":"store.slot","nativeSrc":"4088:10:15","nodeType":"YulIdentifier","src":"4088:10:15"},"variableNames":[{"name":"r.slot","nativeSrc":"4078:6:15","nodeType":"YulIdentifier","src":"4078:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2809,"isOffset":false,"isSlot":true,"src":"4078:6:15","suffix":"slot","valueSize":1},{"declaration":2805,"isOffset":false,"isSlot":true,"src":"4088:10:15","suffix":"slot","valueSize":1}],"id":2811,"nodeType":"InlineAssembly","src":"4055:53:15"}]},"documentation":{"id":2803,"nodeType":"StructuredDocumentation","src":"3811:99:15","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":2813,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3924:12:15","nodeType":"FunctionDefinition","parameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"store","nameLocation":"3951:5:15","nodeType":"VariableDeclaration","scope":2813,"src":"3937:19:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2804,"name":"bytes","nodeType":"ElementaryTypeName","src":"3937:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3936:21:15"},"returnParameters":{"id":2810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2809,"mutability":"mutable","name":"r","nameLocation":"3999:1:15","nodeType":"VariableDeclaration","scope":2813,"src":"3981:19:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2725_storage_ptr","typeString":"struct StorageSlotUpgradeable.BytesSlot"},"typeName":{"id":2808,"nodeType":"UserDefinedTypeName","pathNode":{"id":2807,"name":"BytesSlot","nameLocations":["3981:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2725,"src":"3981:9:15"},"referencedDeclaration":2725,"src":"3981:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2725_storage_ptr","typeString":"struct StorageSlotUpgradeable.BytesSlot"}},"visibility":"internal"}],"src":"3980:21:15"},"scope":2814,"src":"3915:199:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2815,"src":"1420:2696:15","usedErrors":[],"usedEvents":[]}],"src":"193:3924:15"},"id":15},"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol","exportedSymbols":{"MathUpgradeable":[3966],"SignedMathUpgradeable":[4071],"StringsUpgradeable":[3043]},"id":3044,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2816,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:16"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol","file":"./math/MathUpgradeable.sol","id":2817,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3044,"sourceUnit":3967,"src":"126:36:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol","file":"./math/SignedMathUpgradeable.sol","id":2818,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3044,"sourceUnit":4072,"src":"163:42:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"StringsUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":2819,"nodeType":"StructuredDocumentation","src":"207:34:16","text":" @dev String operations."},"fullyImplemented":true,"id":3043,"linearizedBaseContracts":[3043],"name":"StringsUpgradeable","nameLocation":"250:18:16","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2822,"mutability":"constant","name":"_SYMBOLS","nameLocation":"300:8:16","nodeType":"VariableDeclaration","scope":3043,"src":"275:54:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2820,"name":"bytes16","nodeType":"ElementaryTypeName","src":"275:7:16","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":2825,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"358:15:16","nodeType":"VariableDeclaration","scope":3043,"src":"335:43:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2823,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":2824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"376:2:16","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":2872,"nodeType":"Block","src":"551:636:16","statements":[{"id":2871,"nodeType":"UncheckedBlock","src":"561:620:16","statements":[{"assignments":[2834],"declarations":[{"constant":false,"id":2834,"mutability":"mutable","name":"length","nameLocation":"593:6:16","nodeType":"VariableDeclaration","scope":2871,"src":"585:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2833,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2841,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2837,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"624:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2835,"name":"MathUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3966,"src":"602:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MathUpgradeable_$3966_$","typeString":"type(library MathUpgradeable)"}},"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"618:5:16","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3803,"src":"602:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"602:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"633:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"602:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"585:49:16"},{"assignments":[2843],"declarations":[{"constant":false,"id":2843,"mutability":"mutable","name":"buffer","nameLocation":"662:6:16","nodeType":"VariableDeclaration","scope":2871,"src":"648:20:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2842,"name":"string","nodeType":"ElementaryTypeName","src":"648:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2848,"initialValue":{"arguments":[{"id":2846,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2834,"src":"682:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"671:10:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2844,"name":"string","nodeType":"ElementaryTypeName","src":"675:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"671:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"648:41:16"},{"assignments":[2850],"declarations":[{"constant":false,"id":2850,"mutability":"mutable","name":"ptr","nameLocation":"711:3:16","nodeType":"VariableDeclaration","scope":2871,"src":"703:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2849,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2851,"nodeType":"VariableDeclarationStatement","src":"703:11:16"},{"AST":{"nativeSrc":"784:67:16","nodeType":"YulBlock","src":"784:67:16","statements":[{"nativeSrc":"802:35:16","nodeType":"YulAssignment","src":"802:35:16","value":{"arguments":[{"name":"buffer","nativeSrc":"813:6:16","nodeType":"YulIdentifier","src":"813:6:16"},{"arguments":[{"kind":"number","nativeSrc":"825:2:16","nodeType":"YulLiteral","src":"825:2:16","type":"","value":"32"},{"name":"length","nativeSrc":"829:6:16","nodeType":"YulIdentifier","src":"829:6:16"}],"functionName":{"name":"add","nativeSrc":"821:3:16","nodeType":"YulIdentifier","src":"821:3:16"},"nativeSrc":"821:15:16","nodeType":"YulFunctionCall","src":"821:15:16"}],"functionName":{"name":"add","nativeSrc":"809:3:16","nodeType":"YulIdentifier","src":"809:3:16"},"nativeSrc":"809:28:16","nodeType":"YulFunctionCall","src":"809:28:16"},"variableNames":[{"name":"ptr","nativeSrc":"802:3:16","nodeType":"YulIdentifier","src":"802:3:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2843,"isOffset":false,"isSlot":false,"src":"813:6:16","valueSize":1},{"declaration":2834,"isOffset":false,"isSlot":false,"src":"829:6:16","valueSize":1},{"declaration":2850,"isOffset":false,"isSlot":false,"src":"802:3:16","valueSize":1}],"id":2852,"nodeType":"InlineAssembly","src":"775:76:16"},{"body":{"id":2867,"nodeType":"Block","src":"877:267:16","statements":[{"expression":{"id":2855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"895:5:16","subExpression":{"id":2854,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"895:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2856,"nodeType":"ExpressionStatement","src":"895:5:16"},{"AST":{"nativeSrc":"978:84:16","nodeType":"YulBlock","src":"978:84:16","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"1008:3:16","nodeType":"YulIdentifier","src":"1008:3:16"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1022:5:16","nodeType":"YulIdentifier","src":"1022:5:16"},{"kind":"number","nativeSrc":"1029:2:16","nodeType":"YulLiteral","src":"1029:2:16","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"1018:3:16","nodeType":"YulIdentifier","src":"1018:3:16"},"nativeSrc":"1018:14:16","nodeType":"YulFunctionCall","src":"1018:14:16"},{"name":"_SYMBOLS","nativeSrc":"1034:8:16","nodeType":"YulIdentifier","src":"1034:8:16"}],"functionName":{"name":"byte","nativeSrc":"1013:4:16","nodeType":"YulIdentifier","src":"1013:4:16"},"nativeSrc":"1013:30:16","nodeType":"YulFunctionCall","src":"1013:30:16"}],"functionName":{"name":"mstore8","nativeSrc":"1000:7:16","nodeType":"YulIdentifier","src":"1000:7:16"},"nativeSrc":"1000:44:16","nodeType":"YulFunctionCall","src":"1000:44:16"},"nativeSrc":"1000:44:16","nodeType":"YulExpressionStatement","src":"1000:44:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2822,"isOffset":false,"isSlot":false,"src":"1034:8:16","valueSize":1},{"declaration":2850,"isOffset":false,"isSlot":false,"src":"1008:3:16","valueSize":1},{"declaration":2828,"isOffset":false,"isSlot":false,"src":"1022:5:16","valueSize":1}],"id":2857,"nodeType":"InlineAssembly","src":"969:93:16"},{"expression":{"id":2860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"1079:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1079:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2861,"nodeType":"ExpressionStatement","src":"1079:11:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2862,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"1112:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1121:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1112:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2866,"nodeType":"IfStatement","src":"1108:21:16","trueBody":{"id":2865,"nodeType":"Break","src":"1124:5:16"}}]},"condition":{"hexValue":"74727565","id":2853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"871:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":2868,"nodeType":"WhileStatement","src":"864:280:16"},{"expression":{"id":2869,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"1164:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2832,"id":2870,"nodeType":"Return","src":"1157:13:16"}]}]},"documentation":{"id":2826,"nodeType":"StructuredDocumentation","src":"385:90:16","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":2873,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"489:8:16","nodeType":"FunctionDefinition","parameters":{"id":2829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2828,"mutability":"mutable","name":"value","nameLocation":"506:5:16","nodeType":"VariableDeclaration","scope":2873,"src":"498:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2827,"name":"uint256","nodeType":"ElementaryTypeName","src":"498:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"497:15:16"},"returnParameters":{"id":2832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2873,"src":"536:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2830,"name":"string","nodeType":"ElementaryTypeName","src":"536:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"535:15:16"},"scope":3043,"src":"480:707:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2900,"nodeType":"Block","src":"1357:114:16","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"1398:5:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":2886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1406:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1398:9:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":2889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1416:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1398:20:16","trueExpression":{"hexValue":"2d","id":2888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1410:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":2894,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"1455:5:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2892,"name":"SignedMathUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4071,"src":"1429:21:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMathUpgradeable_$4071_$","typeString":"type(library SignedMathUpgradeable)"}},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1451:3:16","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":4070,"src":"1429:25:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1429:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2891,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[2873,2901],"referencedDeclaration":2873,"src":"1420:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1420:42:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1381:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1385:12:16","memberName":"encodePacked","nodeType":"MemberAccess","src":"1381:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1381:82:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1374:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2881,"name":"string","nodeType":"ElementaryTypeName","src":"1374:6:16","typeDescriptions":{}}},"id":2898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1374:90:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2880,"id":2899,"nodeType":"Return","src":"1367:97:16"}]},"documentation":{"id":2874,"nodeType":"StructuredDocumentation","src":"1193:89:16","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":2901,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1296:8:16","nodeType":"FunctionDefinition","parameters":{"id":2877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2876,"mutability":"mutable","name":"value","nameLocation":"1312:5:16","nodeType":"VariableDeclaration","scope":2901,"src":"1305:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2875,"name":"int256","nodeType":"ElementaryTypeName","src":"1305:6:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1304:14:16"},"returnParameters":{"id":2880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2901,"src":"1342:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2878,"name":"string","nodeType":"ElementaryTypeName","src":"1342:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1341:15:16"},"scope":3043,"src":"1287:184:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2920,"nodeType":"Block","src":"1650:111:16","statements":[{"id":2919,"nodeType":"UncheckedBlock","src":"1660:95:16","statements":[{"expression":{"arguments":[{"id":2910,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1703:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"1733:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2911,"name":"MathUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3966,"src":"1710:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MathUpgradeable_$3966_$","typeString":"type(library MathUpgradeable)"}},"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:16","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3926,"src":"1710:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1710:33:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2909,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2921,2997,3017],"referencedDeclaration":2997,"src":"1691:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:53:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2908,"id":2918,"nodeType":"Return","src":"1684:60:16"}]}]},"documentation":{"id":2902,"nodeType":"StructuredDocumentation","src":"1477:94:16","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":2921,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1585:11:16","nodeType":"FunctionDefinition","parameters":{"id":2905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2904,"mutability":"mutable","name":"value","nameLocation":"1605:5:16","nodeType":"VariableDeclaration","scope":2921,"src":"1597:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2903,"name":"uint256","nodeType":"ElementaryTypeName","src":"1597:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1596:15:16"},"returnParameters":{"id":2908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2921,"src":"1635:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2906,"name":"string","nodeType":"ElementaryTypeName","src":"1635:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1634:15:16"},"scope":3043,"src":"1576:185:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2996,"nodeType":"Block","src":"1974:347:16","statements":[{"assignments":[2932],"declarations":[{"constant":false,"id":2932,"mutability":"mutable","name":"buffer","nameLocation":"1997:6:16","nodeType":"VariableDeclaration","scope":2996,"src":"1984:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2931,"name":"bytes","nodeType":"ElementaryTypeName","src":"1984:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2941,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2016:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2936,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"2020:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2016:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2029:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2016:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2006:9:16","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2933,"name":"bytes","nodeType":"ElementaryTypeName","src":"2010:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1984:47:16"},{"expression":{"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2942,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"2041:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2944,"indexExpression":{"hexValue":"30","id":2943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2041:9:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2053:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2041:15:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2947,"nodeType":"ExpressionStatement","src":"2041:15:16"},{"expression":{"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2948,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"2066:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2950,"indexExpression":{"hexValue":"31","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2073:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2066:9:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":2951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2078:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2066:15:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2953,"nodeType":"ExpressionStatement","src":"2066:15:16"},{"body":{"id":2982,"nodeType":"Block","src":"2136:83:16","statements":[{"expression":{"id":2976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2968,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"2150:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2970,"indexExpression":{"id":2969,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2157:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2150:9:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2971,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"2162:8:16","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2975,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2972,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"2171:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:3:16","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2171:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2162:21:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2150:33:16","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2977,"nodeType":"ExpressionStatement","src":"2150:33:16"},{"expression":{"id":2980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"2197:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2207:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2197:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2981,"nodeType":"ExpressionStatement","src":"2197:11:16"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2962,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2124:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":2963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2128:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2124:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2983,"initializationExpression":{"assignments":[2955],"declarations":[{"constant":false,"id":2955,"mutability":"mutable","name":"i","nameLocation":"2104:1:16","nodeType":"VariableDeclaration","scope":2983,"src":"2096:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2954,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2961,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2108:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2957,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"2112:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2108:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2121:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2108:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2096:26:16"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2131:3:16","subExpression":{"id":2965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"2133:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2967,"nodeType":"ExpressionStatement","src":"2131:3:16"},"nodeType":"ForStatement","src":"2091:128:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2985,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"2236:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":2988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2248:34:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":2984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2228:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:55:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2990,"nodeType":"ExpressionStatement","src":"2228:55:16"},{"expression":{"arguments":[{"id":2993,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"2307:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2300:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2991,"name":"string","nodeType":"ElementaryTypeName","src":"2300:6:16","typeDescriptions":{}}},"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2300:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2930,"id":2995,"nodeType":"Return","src":"2293:21:16"}]},"documentation":{"id":2922,"nodeType":"StructuredDocumentation","src":"1767:112:16","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":2997,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1893:11:16","nodeType":"FunctionDefinition","parameters":{"id":2927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"mutability":"mutable","name":"value","nameLocation":"1913:5:16","nodeType":"VariableDeclaration","scope":2997,"src":"1905:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2923,"name":"uint256","nodeType":"ElementaryTypeName","src":"1905:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2926,"mutability":"mutable","name":"length","nameLocation":"1928:6:16","nodeType":"VariableDeclaration","scope":2997,"src":"1920:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1920:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1904:31:16"},"returnParameters":{"id":2930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2997,"src":"1959:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2928,"name":"string","nodeType":"ElementaryTypeName","src":"1959:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1958:15:16"},"scope":3043,"src":"1884:437:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3016,"nodeType":"Block","src":"2546:76:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":3010,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3000,"src":"2591:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2583:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3008,"name":"uint160","nodeType":"ElementaryTypeName","src":"2583:7:16","typeDescriptions":{}}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2583:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2575:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3006,"name":"uint256","nodeType":"ElementaryTypeName","src":"2575:7:16","typeDescriptions":{}}},"id":3012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2575:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3013,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2825,"src":"2599:15:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3005,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2921,2997,3017],"referencedDeclaration":2997,"src":"2563:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3004,"id":3015,"nodeType":"Return","src":"2556:59:16"}]},"documentation":{"id":2998,"nodeType":"StructuredDocumentation","src":"2327:141:16","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":3017,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2482:11:16","nodeType":"FunctionDefinition","parameters":{"id":3001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3000,"mutability":"mutable","name":"addr","nameLocation":"2502:4:16","nodeType":"VariableDeclaration","scope":3017,"src":"2494:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2999,"name":"address","nodeType":"ElementaryTypeName","src":"2494:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2493:14:16"},"returnParameters":{"id":3004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3017,"src":"2531:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3002,"name":"string","nodeType":"ElementaryTypeName","src":"2531:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2530:15:16"},"scope":3043,"src":"2473:149:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3041,"nodeType":"Block","src":"2777:66:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3030,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"2810:1:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2804:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3028,"name":"bytes","nodeType":"ElementaryTypeName","src":"2804:5:16","typeDescriptions":{}}},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2804:8:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3027,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2794:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2794:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":3036,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"2833:1:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2827:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3034,"name":"bytes","nodeType":"ElementaryTypeName","src":"2827:5:16","typeDescriptions":{}}},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2827:8:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3033,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2817:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2817:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2794:42:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3026,"id":3040,"nodeType":"Return","src":"2787:49:16"}]},"documentation":{"id":3018,"nodeType":"StructuredDocumentation","src":"2628:66:16","text":" @dev Returns true if the two strings are equal."},"id":3042,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2708:5:16","nodeType":"FunctionDefinition","parameters":{"id":3023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3020,"mutability":"mutable","name":"a","nameLocation":"2728:1:16","nodeType":"VariableDeclaration","scope":3042,"src":"2714:15:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3019,"name":"string","nodeType":"ElementaryTypeName","src":"2714:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3022,"mutability":"mutable","name":"b","nameLocation":"2745:1:16","nodeType":"VariableDeclaration","scope":3042,"src":"2731:15:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3021,"name":"string","nodeType":"ElementaryTypeName","src":"2731:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2713:34:16"},"returnParameters":{"id":3026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3042,"src":"2771:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3024,"name":"bool","nodeType":"ElementaryTypeName","src":"2771:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2770:6:16"},"scope":3043,"src":"2699:144:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3044,"src":"242:2603:16","usedErrors":[],"usedEvents":[]}],"src":"101:2745:16"},"id":16},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","exportedSymbols":{"ERC165Upgradeable":[3088],"IERC165Upgradeable":[3100],"Initializable":[944]},"id":3089,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3045,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:17"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","file":"./IERC165Upgradeable.sol","id":3046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3089,"sourceUnit":3101,"src":"124:34:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":3048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3089,"sourceUnit":945,"src":"159:66:17","symbolAliases":[{"foreign":{"id":3047,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"167:13:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3050,"name":"Initializable","nameLocations":["843:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"843:13:17"},"id":3051,"nodeType":"InheritanceSpecifier","src":"843:13:17"},{"baseName":{"id":3052,"name":"IERC165Upgradeable","nameLocations":["858:18:17"],"nodeType":"IdentifierPath","referencedDeclaration":3100,"src":"858:18:17"},"id":3053,"nodeType":"InheritanceSpecifier","src":"858:18:17"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3049,"nodeType":"StructuredDocumentation","src":"227:576:17","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":3088,"linearizedBaseContracts":[3088,3100,944],"name":"ERC165Upgradeable","nameLocation":"822:17:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":3058,"nodeType":"Block","src":"934:7:17","statements":[]},"id":3059,"implemented":true,"kind":"function","modifiers":[{"id":3056,"kind":"modifierInvocation","modifierName":{"id":3055,"name":"onlyInitializing","nameLocations":["917:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"917:16:17"},"nodeType":"ModifierInvocation","src":"917:16:17"}],"name":"__ERC165_init","nameLocation":"892:13:17","nodeType":"FunctionDefinition","parameters":{"id":3054,"nodeType":"ParameterList","parameters":[],"src":"905:2:17"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[],"src":"934:0:17"},"scope":3088,"src":"883:58:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3064,"nodeType":"Block","src":"1008:7:17","statements":[]},"id":3065,"implemented":true,"kind":"function","modifiers":[{"id":3062,"kind":"modifierInvocation","modifierName":{"id":3061,"name":"onlyInitializing","nameLocations":["991:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"991:16:17"},"nodeType":"ModifierInvocation","src":"991:16:17"}],"name":"__ERC165_init_unchained","nameLocation":"956:23:17","nodeType":"FunctionDefinition","parameters":{"id":3060,"nodeType":"ParameterList","parameters":[],"src":"979:2:17"},"returnParameters":{"id":3063,"nodeType":"ParameterList","parameters":[],"src":"1008:0:17"},"scope":3088,"src":"947:68:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3099],"body":{"id":3081,"nodeType":"Block","src":"1172:75:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3074,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3068,"src":"1189:11:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3076,"name":"IERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3100,"src":"1209:18:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$3100_$","typeString":"type(contract IERC165Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$3100_$","typeString":"type(contract IERC165Upgradeable)"}],"id":3075,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1204:4:17","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165Upgradeable_$3100","typeString":"type(contract IERC165Upgradeable)"}},"id":3078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1229:11:17","memberName":"interfaceId","nodeType":"MemberAccess","src":"1204:36:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1189:51:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3073,"id":3080,"nodeType":"Return","src":"1182:58:17"}]},"documentation":{"id":3066,"nodeType":"StructuredDocumentation","src":"1020:56:17","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3082,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1090:17:17","nodeType":"FunctionDefinition","overrides":{"id":3070,"nodeType":"OverrideSpecifier","overrides":[],"src":"1148:8:17"},"parameters":{"id":3069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3068,"mutability":"mutable","name":"interfaceId","nameLocation":"1115:11:17","nodeType":"VariableDeclaration","scope":3082,"src":"1108:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3067,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1108:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1107:20:17"},"returnParameters":{"id":3073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3082,"src":"1166:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3071,"name":"bool","nodeType":"ElementaryTypeName","src":"1166:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1165:6:17"},"scope":3088,"src":"1081:166:17","stateMutability":"view","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":3083,"nodeType":"StructuredDocumentation","src":"1253:254:17","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":3087,"mutability":"mutable","name":"__gap","nameLocation":"1532:5:17","nodeType":"VariableDeclaration","scope":3088,"src":"1512:25:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":3084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3086,"length":{"hexValue":"3530","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1520:2:17","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1512:11:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":3089,"src":"804:736:17","usedErrors":[],"usedEvents":[790]}],"src":"99:1442:17"},"id":17},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[3100]},"id":3101,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3090,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":3091,"nodeType":"StructuredDocumentation","src":"125:279:18","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":3100,"linearizedBaseContracts":[3100],"name":"IERC165Upgradeable","nameLocation":"415:18:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3092,"nodeType":"StructuredDocumentation","src":"440:340:18","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":3099,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"794:17:18","nodeType":"FunctionDefinition","parameters":{"id":3095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3094,"mutability":"mutable","name":"interfaceId","nameLocation":"819:11:18","nodeType":"VariableDeclaration","scope":3099,"src":"812:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3093,"name":"bytes4","nodeType":"ElementaryTypeName","src":"812:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"811:20:18"},"returnParameters":{"id":3098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3099,"src":"855:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3096,"name":"bool","nodeType":"ElementaryTypeName","src":"855:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"854:6:18"},"scope":3100,"src":"785:76:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3101,"src":"405:458:18","usedErrors":[],"usedEvents":[]}],"src":"100:764:18"},"id":18},"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol","exportedSymbols":{"MathUpgradeable":[3966]},"id":3967,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3102,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:19"},{"abstract":false,"baseContracts":[],"canonicalName":"MathUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":3103,"nodeType":"StructuredDocumentation","src":"128:73:19","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3966,"linearizedBaseContracts":[3966],"name":"MathUpgradeable","nameLocation":"210:15:19","nodeType":"ContractDefinition","nodes":[{"canonicalName":"MathUpgradeable.Rounding","id":3107,"members":[{"id":3104,"name":"Down","nameLocation":"256:4:19","nodeType":"EnumValue","src":"256:4:19"},{"id":3105,"name":"Up","nameLocation":"298:2:19","nodeType":"EnumValue","src":"298:2:19"},{"id":3106,"name":"Zero","nameLocation":"329:4:19","nodeType":"EnumValue","src":"329:4:19"}],"name":"Rounding","nameLocation":"237:8:19","nodeType":"EnumDefinition","src":"232:122:19"},{"body":{"id":3124,"nodeType":"Block","src":"491:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3117,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3110,"src":"508:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3118,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3112,"src":"512:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"508:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3121,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3112,"src":"520:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"508:13:19","trueExpression":{"id":3120,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3110,"src":"516:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3116,"id":3123,"nodeType":"Return","src":"501:20:19"}]},"documentation":{"id":3108,"nodeType":"StructuredDocumentation","src":"360:59:19","text":" @dev Returns the largest of two numbers."},"id":3125,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"433:3:19","nodeType":"FunctionDefinition","parameters":{"id":3113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3110,"mutability":"mutable","name":"a","nameLocation":"445:1:19","nodeType":"VariableDeclaration","scope":3125,"src":"437:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3109,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3112,"mutability":"mutable","name":"b","nameLocation":"456:1:19","nodeType":"VariableDeclaration","scope":3125,"src":"448:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3111,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"436:22:19"},"returnParameters":{"id":3116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3125,"src":"482:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3114,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"481:9:19"},"scope":3966,"src":"424:104:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3142,"nodeType":"Block","src":"666:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3135,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"683:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3136,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"687:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"683:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3139,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"695:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"683:13:19","trueExpression":{"id":3138,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"691:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3134,"id":3141,"nodeType":"Return","src":"676:20:19"}]},"documentation":{"id":3126,"nodeType":"StructuredDocumentation","src":"534:60:19","text":" @dev Returns the smallest of two numbers."},"id":3143,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"608:3:19","nodeType":"FunctionDefinition","parameters":{"id":3131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3128,"mutability":"mutable","name":"a","nameLocation":"620:1:19","nodeType":"VariableDeclaration","scope":3143,"src":"612:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3127,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3130,"mutability":"mutable","name":"b","nameLocation":"631:1:19","nodeType":"VariableDeclaration","scope":3143,"src":"623:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3129,"name":"uint256","nodeType":"ElementaryTypeName","src":"623:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"611:22:19"},"returnParameters":{"id":3134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3143,"src":"657:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3132,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:9:19"},"scope":3966,"src":"599:104:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3165,"nodeType":"Block","src":"887:82:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3153,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"942:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3154,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"946:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"942:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3156,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"941:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3157,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"952:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3158,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"956:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"952:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"951:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"961:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"951:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3152,"id":3164,"nodeType":"Return","src":"934:28:19"}]},"documentation":{"id":3144,"nodeType":"StructuredDocumentation","src":"709:102:19","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":3166,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"825:7:19","nodeType":"FunctionDefinition","parameters":{"id":3149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3146,"mutability":"mutable","name":"a","nameLocation":"841:1:19","nodeType":"VariableDeclaration","scope":3166,"src":"833:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3145,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3148,"mutability":"mutable","name":"b","nameLocation":"852:1:19","nodeType":"VariableDeclaration","scope":3166,"src":"844:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3147,"name":"uint256","nodeType":"ElementaryTypeName","src":"844:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:22:19"},"returnParameters":{"id":3152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3166,"src":"878:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3150,"name":"uint256","nodeType":"ElementaryTypeName","src":"878:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"877:9:19"},"scope":3966,"src":"816:153:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3190,"nodeType":"Block","src":"1239:123:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3176,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"1327:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1332:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1327:6:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3180,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"1341:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1341:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1340:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3184,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3171,"src":"1350:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1340:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1354:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1340:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1327:28:19","trueExpression":{"hexValue":"30","id":3179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1336:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3175,"id":3189,"nodeType":"Return","src":"1320:35:19"}]},"documentation":{"id":3167,"nodeType":"StructuredDocumentation","src":"975:188:19","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":3191,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1177:7:19","nodeType":"FunctionDefinition","parameters":{"id":3172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3169,"mutability":"mutable","name":"a","nameLocation":"1193:1:19","nodeType":"VariableDeclaration","scope":3191,"src":"1185:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3171,"mutability":"mutable","name":"b","nameLocation":"1204:1:19","nodeType":"VariableDeclaration","scope":3191,"src":"1196:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3170,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1184:22:19"},"returnParameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3191,"src":"1230:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:19"},"scope":3966,"src":"1168:194:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3313,"nodeType":"Block","src":"1776:4115:19","statements":[{"id":3312,"nodeType":"UncheckedBlock","src":"1786:4099:19","statements":[{"assignments":[3204],"declarations":[{"constant":false,"id":3204,"mutability":"mutable","name":"prod0","nameLocation":"2115:5:19","nodeType":"VariableDeclaration","scope":3312,"src":"2107:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2107:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3205,"nodeType":"VariableDeclarationStatement","src":"2107:13:19"},{"assignments":[3207],"declarations":[{"constant":false,"id":3207,"mutability":"mutable","name":"prod1","nameLocation":"2187:5:19","nodeType":"VariableDeclaration","scope":3312,"src":"2179:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"2179:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3208,"nodeType":"VariableDeclarationStatement","src":"2179:13:19"},{"AST":{"nativeSrc":"2259:157:19","nodeType":"YulBlock","src":"2259:157:19","statements":[{"nativeSrc":"2277:30:19","nodeType":"YulVariableDeclaration","src":"2277:30:19","value":{"arguments":[{"name":"x","nativeSrc":"2294:1:19","nodeType":"YulIdentifier","src":"2294:1:19"},{"name":"y","nativeSrc":"2297:1:19","nodeType":"YulIdentifier","src":"2297:1:19"},{"arguments":[{"kind":"number","nativeSrc":"2304:1:19","nodeType":"YulLiteral","src":"2304:1:19","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2300:3:19","nodeType":"YulIdentifier","src":"2300:3:19"},"nativeSrc":"2300:6:19","nodeType":"YulFunctionCall","src":"2300:6:19"}],"functionName":{"name":"mulmod","nativeSrc":"2287:6:19","nodeType":"YulIdentifier","src":"2287:6:19"},"nativeSrc":"2287:20:19","nodeType":"YulFunctionCall","src":"2287:20:19"},"variables":[{"name":"mm","nativeSrc":"2281:2:19","nodeType":"YulTypedName","src":"2281:2:19","type":""}]},{"nativeSrc":"2324:18:19","nodeType":"YulAssignment","src":"2324:18:19","value":{"arguments":[{"name":"x","nativeSrc":"2337:1:19","nodeType":"YulIdentifier","src":"2337:1:19"},{"name":"y","nativeSrc":"2340:1:19","nodeType":"YulIdentifier","src":"2340:1:19"}],"functionName":{"name":"mul","nativeSrc":"2333:3:19","nodeType":"YulIdentifier","src":"2333:3:19"},"nativeSrc":"2333:9:19","nodeType":"YulFunctionCall","src":"2333:9:19"},"variableNames":[{"name":"prod0","nativeSrc":"2324:5:19","nodeType":"YulIdentifier","src":"2324:5:19"}]},{"nativeSrc":"2359:43:19","nodeType":"YulAssignment","src":"2359:43:19","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2376:2:19","nodeType":"YulIdentifier","src":"2376:2:19"},{"name":"prod0","nativeSrc":"2380:5:19","nodeType":"YulIdentifier","src":"2380:5:19"}],"functionName":{"name":"sub","nativeSrc":"2372:3:19","nodeType":"YulIdentifier","src":"2372:3:19"},"nativeSrc":"2372:14:19","nodeType":"YulFunctionCall","src":"2372:14:19"},{"arguments":[{"name":"mm","nativeSrc":"2391:2:19","nodeType":"YulIdentifier","src":"2391:2:19"},{"name":"prod0","nativeSrc":"2395:5:19","nodeType":"YulIdentifier","src":"2395:5:19"}],"functionName":{"name":"lt","nativeSrc":"2388:2:19","nodeType":"YulIdentifier","src":"2388:2:19"},"nativeSrc":"2388:13:19","nodeType":"YulFunctionCall","src":"2388:13:19"}],"functionName":{"name":"sub","nativeSrc":"2368:3:19","nodeType":"YulIdentifier","src":"2368:3:19"},"nativeSrc":"2368:34:19","nodeType":"YulFunctionCall","src":"2368:34:19"},"variableNames":[{"name":"prod1","nativeSrc":"2359:5:19","nodeType":"YulIdentifier","src":"2359:5:19"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3204,"isOffset":false,"isSlot":false,"src":"2324:5:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"2380:5:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"2395:5:19","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"2359:5:19","valueSize":1},{"declaration":3194,"isOffset":false,"isSlot":false,"src":"2294:1:19","valueSize":1},{"declaration":3194,"isOffset":false,"isSlot":false,"src":"2337:1:19","valueSize":1},{"declaration":3196,"isOffset":false,"isSlot":false,"src":"2297:1:19","valueSize":1},{"declaration":3196,"isOffset":false,"isSlot":false,"src":"2340:1:19","valueSize":1}],"id":3209,"nodeType":"InlineAssembly","src":"2250:166:19"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3210,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"2497:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2506:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2497:10:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3218,"nodeType":"IfStatement","src":"2493:368:19","trueBody":{"id":3217,"nodeType":"Block","src":"2509:352:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3213,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3204,"src":"2827:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3214,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"2835:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2827:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3202,"id":3216,"nodeType":"Return","src":"2820:26:19"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3220,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"2971:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3221,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"2985:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2971:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2992:23:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":3219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2963:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:53:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3225,"nodeType":"ExpressionStatement","src":"2963:53:19"},{"assignments":[3227],"declarations":[{"constant":false,"id":3227,"mutability":"mutable","name":"remainder","nameLocation":"3280:9:19","nodeType":"VariableDeclaration","scope":3312,"src":"3272:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3272:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3228,"nodeType":"VariableDeclarationStatement","src":"3272:17:19"},{"AST":{"nativeSrc":"3312:291:19","nodeType":"YulBlock","src":"3312:291:19","statements":[{"nativeSrc":"3381:38:19","nodeType":"YulAssignment","src":"3381:38:19","value":{"arguments":[{"name":"x","nativeSrc":"3401:1:19","nodeType":"YulIdentifier","src":"3401:1:19"},{"name":"y","nativeSrc":"3404:1:19","nodeType":"YulIdentifier","src":"3404:1:19"},{"name":"denominator","nativeSrc":"3407:11:19","nodeType":"YulIdentifier","src":"3407:11:19"}],"functionName":{"name":"mulmod","nativeSrc":"3394:6:19","nodeType":"YulIdentifier","src":"3394:6:19"},"nativeSrc":"3394:25:19","nodeType":"YulFunctionCall","src":"3394:25:19"},"variableNames":[{"name":"remainder","nativeSrc":"3381:9:19","nodeType":"YulIdentifier","src":"3381:9:19"}]},{"nativeSrc":"3501:41:19","nodeType":"YulAssignment","src":"3501:41:19","value":{"arguments":[{"name":"prod1","nativeSrc":"3514:5:19","nodeType":"YulIdentifier","src":"3514:5:19"},{"arguments":[{"name":"remainder","nativeSrc":"3524:9:19","nodeType":"YulIdentifier","src":"3524:9:19"},{"name":"prod0","nativeSrc":"3535:5:19","nodeType":"YulIdentifier","src":"3535:5:19"}],"functionName":{"name":"gt","nativeSrc":"3521:2:19","nodeType":"YulIdentifier","src":"3521:2:19"},"nativeSrc":"3521:20:19","nodeType":"YulFunctionCall","src":"3521:20:19"}],"functionName":{"name":"sub","nativeSrc":"3510:3:19","nodeType":"YulIdentifier","src":"3510:3:19"},"nativeSrc":"3510:32:19","nodeType":"YulFunctionCall","src":"3510:32:19"},"variableNames":[{"name":"prod1","nativeSrc":"3501:5:19","nodeType":"YulIdentifier","src":"3501:5:19"}]},{"nativeSrc":"3559:30:19","nodeType":"YulAssignment","src":"3559:30:19","value":{"arguments":[{"name":"prod0","nativeSrc":"3572:5:19","nodeType":"YulIdentifier","src":"3572:5:19"},{"name":"remainder","nativeSrc":"3579:9:19","nodeType":"YulIdentifier","src":"3579:9:19"}],"functionName":{"name":"sub","nativeSrc":"3568:3:19","nodeType":"YulIdentifier","src":"3568:3:19"},"nativeSrc":"3568:21:19","nodeType":"YulFunctionCall","src":"3568:21:19"},"variableNames":[{"name":"prod0","nativeSrc":"3559:5:19","nodeType":"YulIdentifier","src":"3559:5:19"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3198,"isOffset":false,"isSlot":false,"src":"3407:11:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"3535:5:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"3559:5:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"3572:5:19","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"3501:5:19","valueSize":1},{"declaration":3207,"isOffset":false,"isSlot":false,"src":"3514:5:19","valueSize":1},{"declaration":3227,"isOffset":false,"isSlot":false,"src":"3381:9:19","valueSize":1},{"declaration":3227,"isOffset":false,"isSlot":false,"src":"3524:9:19","valueSize":1},{"declaration":3227,"isOffset":false,"isSlot":false,"src":"3579:9:19","valueSize":1},{"declaration":3194,"isOffset":false,"isSlot":false,"src":"3401:1:19","valueSize":1},{"declaration":3196,"isOffset":false,"isSlot":false,"src":"3404:1:19","valueSize":1}],"id":3229,"nodeType":"InlineAssembly","src":"3303:300:19"},{"assignments":[3231],"declarations":[{"constant":false,"id":3231,"mutability":"mutable","name":"twos","nameLocation":"3918:4:19","nodeType":"VariableDeclaration","scope":3312,"src":"3910:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3230,"name":"uint256","nodeType":"ElementaryTypeName","src":"3910:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3239,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3232,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"3925:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3940:12:19","subExpression":{"id":3233,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"3941:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3955:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3940:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3939:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3925:32:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3910:47:19"},{"AST":{"nativeSrc":"3980:362:19","nodeType":"YulBlock","src":"3980:362:19","statements":[{"nativeSrc":"4045:37:19","nodeType":"YulAssignment","src":"4045:37:19","value":{"arguments":[{"name":"denominator","nativeSrc":"4064:11:19","nodeType":"YulIdentifier","src":"4064:11:19"},{"name":"twos","nativeSrc":"4077:4:19","nodeType":"YulIdentifier","src":"4077:4:19"}],"functionName":{"name":"div","nativeSrc":"4060:3:19","nodeType":"YulIdentifier","src":"4060:3:19"},"nativeSrc":"4060:22:19","nodeType":"YulFunctionCall","src":"4060:22:19"},"variableNames":[{"name":"denominator","nativeSrc":"4045:11:19","nodeType":"YulIdentifier","src":"4045:11:19"}]},{"nativeSrc":"4149:25:19","nodeType":"YulAssignment","src":"4149:25:19","value":{"arguments":[{"name":"prod0","nativeSrc":"4162:5:19","nodeType":"YulIdentifier","src":"4162:5:19"},{"name":"twos","nativeSrc":"4169:4:19","nodeType":"YulIdentifier","src":"4169:4:19"}],"functionName":{"name":"div","nativeSrc":"4158:3:19","nodeType":"YulIdentifier","src":"4158:3:19"},"nativeSrc":"4158:16:19","nodeType":"YulFunctionCall","src":"4158:16:19"},"variableNames":[{"name":"prod0","nativeSrc":"4149:5:19","nodeType":"YulIdentifier","src":"4149:5:19"}]},{"nativeSrc":"4289:39:19","nodeType":"YulAssignment","src":"4289:39:19","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4309:1:19","nodeType":"YulLiteral","src":"4309:1:19","type":"","value":"0"},{"name":"twos","nativeSrc":"4312:4:19","nodeType":"YulIdentifier","src":"4312:4:19"}],"functionName":{"name":"sub","nativeSrc":"4305:3:19","nodeType":"YulIdentifier","src":"4305:3:19"},"nativeSrc":"4305:12:19","nodeType":"YulFunctionCall","src":"4305:12:19"},{"name":"twos","nativeSrc":"4319:4:19","nodeType":"YulIdentifier","src":"4319:4:19"}],"functionName":{"name":"div","nativeSrc":"4301:3:19","nodeType":"YulIdentifier","src":"4301:3:19"},"nativeSrc":"4301:23:19","nodeType":"YulFunctionCall","src":"4301:23:19"},{"kind":"number","nativeSrc":"4326:1:19","nodeType":"YulLiteral","src":"4326:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4297:3:19","nodeType":"YulIdentifier","src":"4297:3:19"},"nativeSrc":"4297:31:19","nodeType":"YulFunctionCall","src":"4297:31:19"},"variableNames":[{"name":"twos","nativeSrc":"4289:4:19","nodeType":"YulIdentifier","src":"4289:4:19"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3198,"isOffset":false,"isSlot":false,"src":"4045:11:19","valueSize":1},{"declaration":3198,"isOffset":false,"isSlot":false,"src":"4064:11:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"4149:5:19","valueSize":1},{"declaration":3204,"isOffset":false,"isSlot":false,"src":"4162:5:19","valueSize":1},{"declaration":3231,"isOffset":false,"isSlot":false,"src":"4077:4:19","valueSize":1},{"declaration":3231,"isOffset":false,"isSlot":false,"src":"4169:4:19","valueSize":1},{"declaration":3231,"isOffset":false,"isSlot":false,"src":"4289:4:19","valueSize":1},{"declaration":3231,"isOffset":false,"isSlot":false,"src":"4312:4:19","valueSize":1},{"declaration":3231,"isOffset":false,"isSlot":false,"src":"4319:4:19","valueSize":1}],"id":3240,"nodeType":"InlineAssembly","src":"3971:371:19"},{"expression":{"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3241,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3204,"src":"4408:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3242,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"4417:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3243,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3231,"src":"4425:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4417:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4408:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3246,"nodeType":"ExpressionStatement","src":"4408:21:19"},{"assignments":[3248],"declarations":[{"constant":false,"id":3248,"mutability":"mutable","name":"inverse","nameLocation":"4755:7:19","nodeType":"VariableDeclaration","scope":3312,"src":"4747:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3247,"name":"uint256","nodeType":"ElementaryTypeName","src":"4747:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3255,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4766:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3250,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"4770:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4766:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4765:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4785:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4765:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4747:39:19"},{"expression":{"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3256,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5003:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5014:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3258,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5018:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3259,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5032:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5018:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5014:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3263,"nodeType":"ExpressionStatement","src":"5003:36:19"},{"expression":{"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3264,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5072:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5083:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3266,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5087:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3267,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5101:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5087:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5083:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3271,"nodeType":"ExpressionStatement","src":"5072:36:19"},{"expression":{"id":3278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3272,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5142:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5153:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3274,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5157:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3275,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5171:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5153:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3279,"nodeType":"ExpressionStatement","src":"5142:36:19"},{"expression":{"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3280,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5212:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5223:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3282,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5227:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3283,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5241:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5227:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5223:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3287,"nodeType":"ExpressionStatement","src":"5212:36:19"},{"expression":{"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3288,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5282:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5293:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3290,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5297:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3291,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5311:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5297:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5293:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3295,"nodeType":"ExpressionStatement","src":"5282:36:19"},{"expression":{"id":3302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3296,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5353:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5364:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3298,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5368:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3299,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5382:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5368:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5364:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3303,"nodeType":"ExpressionStatement","src":"5353:36:19"},{"expression":{"id":3308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3304,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"5823:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3305,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3204,"src":"5832:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3306,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3248,"src":"5840:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5832:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5823:24:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3309,"nodeType":"ExpressionStatement","src":"5823:24:19"},{"expression":{"id":3310,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"5868:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3202,"id":3311,"nodeType":"Return","src":"5861:13:19"}]}]},"documentation":{"id":3192,"nodeType":"StructuredDocumentation","src":"1368:305:19","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":3314,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1687:6:19","nodeType":"FunctionDefinition","parameters":{"id":3199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3194,"mutability":"mutable","name":"x","nameLocation":"1702:1:19","nodeType":"VariableDeclaration","scope":3314,"src":"1694:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3196,"mutability":"mutable","name":"y","nameLocation":"1713:1:19","nodeType":"VariableDeclaration","scope":3314,"src":"1705:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3198,"mutability":"mutable","name":"denominator","nameLocation":"1724:11:19","nodeType":"VariableDeclaration","scope":3314,"src":"1716:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3197,"name":"uint256","nodeType":"ElementaryTypeName","src":"1716:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1693:43:19"},"returnParameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3201,"mutability":"mutable","name":"result","nameLocation":"1768:6:19","nodeType":"VariableDeclaration","scope":3314,"src":"1760:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3200,"name":"uint256","nodeType":"ElementaryTypeName","src":"1760:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1759:16:19"},"scope":3966,"src":"1678:4213:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3357,"nodeType":"Block","src":"6133:189:19","statements":[{"assignments":[3330],"declarations":[{"constant":false,"id":3330,"mutability":"mutable","name":"result","nameLocation":"6151:6:19","nodeType":"VariableDeclaration","scope":3357,"src":"6143:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3329,"name":"uint256","nodeType":"ElementaryTypeName","src":"6143:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3336,"initialValue":{"arguments":[{"id":3332,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"6167:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3333,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3319,"src":"6170:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3334,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"6173:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3331,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[3314,3358],"referencedDeclaration":3314,"src":"6160:6:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6160:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6143:42:19"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3337,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3324,"src":"6199:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3338,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"6211:8:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3107_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6220:2:19","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3105,"src":"6211:11:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"src":"6199:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3342,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"6233:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3343,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3319,"src":"6236:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3344,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"6239:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3341,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6226:6:19","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6226:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6254:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6226:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6199:56:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3354,"nodeType":"IfStatement","src":"6195:98:19","trueBody":{"id":3353,"nodeType":"Block","src":"6257:36:19","statements":[{"expression":{"id":3351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"6271:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6281:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6271:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3352,"nodeType":"ExpressionStatement","src":"6271:11:19"}]}},{"expression":{"id":3355,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"6309:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3328,"id":3356,"nodeType":"Return","src":"6302:13:19"}]},"documentation":{"id":3315,"nodeType":"StructuredDocumentation","src":"5897:121:19","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":3358,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6032:6:19","nodeType":"FunctionDefinition","parameters":{"id":3325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3317,"mutability":"mutable","name":"x","nameLocation":"6047:1:19","nodeType":"VariableDeclaration","scope":3358,"src":"6039:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3316,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3319,"mutability":"mutable","name":"y","nameLocation":"6058:1:19","nodeType":"VariableDeclaration","scope":3358,"src":"6050:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3318,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"denominator","nameLocation":"6069:11:19","nodeType":"VariableDeclaration","scope":3358,"src":"6061:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3320,"name":"uint256","nodeType":"ElementaryTypeName","src":"6061:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3324,"mutability":"mutable","name":"rounding","nameLocation":"6091:8:19","nodeType":"VariableDeclaration","scope":3358,"src":"6082:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3323,"nodeType":"UserDefinedTypeName","pathNode":{"id":3322,"name":"Rounding","nameLocations":["6082:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":3107,"src":"6082:8:19"},"referencedDeclaration":3107,"src":"6082:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"6038:62:19"},"returnParameters":{"id":3328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3358,"src":"6124:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3326,"name":"uint256","nodeType":"ElementaryTypeName","src":"6124:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6123:9:19"},"scope":3966,"src":"6023:299:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3469,"nodeType":"Block","src":"6598:1585:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3366,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"6612:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6617:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6612:6:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3372,"nodeType":"IfStatement","src":"6608:45:19","trueBody":{"id":3371,"nodeType":"Block","src":"6620:33:19","statements":[{"expression":{"hexValue":"30","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6641:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3365,"id":3370,"nodeType":"Return","src":"6634:8:19"}]}},{"assignments":[3374],"declarations":[{"constant":false,"id":3374,"mutability":"mutable","name":"result","nameLocation":"7340:6:19","nodeType":"VariableDeclaration","scope":3469,"src":"7332:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3373,"name":"uint256","nodeType":"ElementaryTypeName","src":"7332:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3383,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7349:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3377,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"7360:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3376,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3638,3674],"referencedDeclaration":3638,"src":"7355:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7355:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7366:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7355:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7354:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7349:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7332:36:19"},{"id":3468,"nodeType":"UncheckedBlock","src":"7769:408:19","statements":[{"expression":{"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3384,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7793:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3385,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7803:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3386,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"7812:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3387,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7816:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7812:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7803:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3390,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7802:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7827:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7802:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7793:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3394,"nodeType":"ExpressionStatement","src":"7793:35:19"},{"expression":{"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3395,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7842:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3396,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7852:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3397,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"7861:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3398,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7865:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7861:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7852:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3401,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7851:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7876:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7851:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7842:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3405,"nodeType":"ExpressionStatement","src":"7842:35:19"},{"expression":{"id":3415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3406,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7891:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3407,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7901:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3408,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"7910:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7914:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7910:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7901:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7900:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7925:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7900:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7891:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3416,"nodeType":"ExpressionStatement","src":"7891:35:19"},{"expression":{"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3417,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7940:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3418,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7950:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3419,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"7959:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3420,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7963:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7959:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7950:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7949:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7974:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7949:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7940:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3427,"nodeType":"ExpressionStatement","src":"7940:35:19"},{"expression":{"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3428,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7989:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3429,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"7999:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3430,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"8008:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3431,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8012:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8008:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7999:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3434,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7998:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8023:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7998:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7989:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3438,"nodeType":"ExpressionStatement","src":"7989:35:19"},{"expression":{"id":3448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3439,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8038:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3440,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8048:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3441,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"8057:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3442,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8061:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8057:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8048:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3445,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8047:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8072:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8047:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8038:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3449,"nodeType":"ExpressionStatement","src":"8038:35:19"},{"expression":{"id":3459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3450,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8087:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3451,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8097:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3452,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"8106:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3453,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8110:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8106:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8097:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8096:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8121:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8096:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8087:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3460,"nodeType":"ExpressionStatement","src":"8087:35:19"},{"expression":{"arguments":[{"id":3462,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8147:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3463,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"8155:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3464,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3374,"src":"8159:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8155:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3461,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"8143:3:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8143:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3365,"id":3467,"nodeType":"Return","src":"8136:30:19"}]}]},"documentation":{"id":3359,"nodeType":"StructuredDocumentation","src":"6328:208:19","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":3470,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6550:4:19","nodeType":"FunctionDefinition","parameters":{"id":3362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3361,"mutability":"mutable","name":"a","nameLocation":"6563:1:19","nodeType":"VariableDeclaration","scope":3470,"src":"6555:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3360,"name":"uint256","nodeType":"ElementaryTypeName","src":"6555:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6554:11:19"},"returnParameters":{"id":3365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3470,"src":"6589:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3363,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6588:9:19"},"scope":3966,"src":"6541:1642:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3505,"nodeType":"Block","src":"8359:161:19","statements":[{"id":3504,"nodeType":"UncheckedBlock","src":"8369:145:19","statements":[{"assignments":[3482],"declarations":[{"constant":false,"id":3482,"mutability":"mutable","name":"result","nameLocation":"8401:6:19","nodeType":"VariableDeclaration","scope":3504,"src":"8393:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3481,"name":"uint256","nodeType":"ElementaryTypeName","src":"8393:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3486,"initialValue":{"arguments":[{"id":3484,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"8415:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3483,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3470,3506],"referencedDeclaration":3470,"src":"8410:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8410:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8393:24:19"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3487,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3482,"src":"8438:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3488,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8448:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3489,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"8460:8:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3107_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8469:2:19","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3105,"src":"8460:11:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"src":"8448:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3492,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3482,"src":"8475:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3493,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3482,"src":"8484:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8475:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3495,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"8493:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8475:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8448:46:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8501:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8448:54:19","trueExpression":{"hexValue":"31","id":3498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8497:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3501,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8447:56:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8438:65:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3480,"id":3503,"nodeType":"Return","src":"8431:72:19"}]}]},"documentation":{"id":3471,"nodeType":"StructuredDocumentation","src":"8189:89:19","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":3506,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8292:4:19","nodeType":"FunctionDefinition","parameters":{"id":3477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"a","nameLocation":"8305:1:19","nodeType":"VariableDeclaration","scope":3506,"src":"8297:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3472,"name":"uint256","nodeType":"ElementaryTypeName","src":"8297:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3476,"mutability":"mutable","name":"rounding","nameLocation":"8317:8:19","nodeType":"VariableDeclaration","scope":3506,"src":"8308:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3475,"nodeType":"UserDefinedTypeName","pathNode":{"id":3474,"name":"Rounding","nameLocations":["8308:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":3107,"src":"8308:8:19"},"referencedDeclaration":3107,"src":"8308:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"8296:30:19"},"returnParameters":{"id":3480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3506,"src":"8350:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3478,"name":"uint256","nodeType":"ElementaryTypeName","src":"8350:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8349:9:19"},"scope":3966,"src":"8283:237:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3637,"nodeType":"Block","src":"8705:922:19","statements":[{"assignments":[3515],"declarations":[{"constant":false,"id":3515,"mutability":"mutable","name":"result","nameLocation":"8723:6:19","nodeType":"VariableDeclaration","scope":3637,"src":"8715:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3514,"name":"uint256","nodeType":"ElementaryTypeName","src":"8715:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3517,"initialValue":{"hexValue":"30","id":3516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8732:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8715:18:19"},{"id":3634,"nodeType":"UncheckedBlock","src":"8743:855:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3518,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"8771:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8780:3:19","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8771:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8786:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8771:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3532,"nodeType":"IfStatement","src":"8767:99:19","trueBody":{"id":3531,"nodeType":"Block","src":"8789:77:19","statements":[{"expression":{"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"8807:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8817:3:19","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8807:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3526,"nodeType":"ExpressionStatement","src":"8807:13:19"},{"expression":{"id":3529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3527,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"8838:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8848:3:19","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8838:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3530,"nodeType":"ExpressionStatement","src":"8838:13:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"8883:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8892:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8883:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8897:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8883:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3547,"nodeType":"IfStatement","src":"8879:96:19","trueBody":{"id":3546,"nodeType":"Block","src":"8900:75:19","statements":[{"expression":{"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3538,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"8918:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8928:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8918:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3541,"nodeType":"ExpressionStatement","src":"8918:12:19"},{"expression":{"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3542,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"8948:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8958:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8948:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3545,"nodeType":"ExpressionStatement","src":"8948:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"8992:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9001:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8992:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9006:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8992:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3562,"nodeType":"IfStatement","src":"8988:96:19","trueBody":{"id":3561,"nodeType":"Block","src":"9009:75:19","statements":[{"expression":{"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9027:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9037:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9027:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3556,"nodeType":"ExpressionStatement","src":"9027:12:19"},{"expression":{"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3557,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9057:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9067:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9057:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3560,"nodeType":"ExpressionStatement","src":"9057:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9101:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9110:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9101:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9101:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3577,"nodeType":"IfStatement","src":"9097:96:19","trueBody":{"id":3576,"nodeType":"Block","src":"9118:75:19","statements":[{"expression":{"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3568,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9136:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9146:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9136:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3571,"nodeType":"ExpressionStatement","src":"9136:12:19"},{"expression":{"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3572,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9166:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9176:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9166:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3575,"nodeType":"ExpressionStatement","src":"9166:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3578,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9210:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9219:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9210:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9223:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9210:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3592,"nodeType":"IfStatement","src":"9206:93:19","trueBody":{"id":3591,"nodeType":"Block","src":"9226:73:19","statements":[{"expression":{"id":3585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3583,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9244:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9254:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9244:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3586,"nodeType":"ExpressionStatement","src":"9244:11:19"},{"expression":{"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3587,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9273:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9283:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9273:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3590,"nodeType":"ExpressionStatement","src":"9273:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9316:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9325:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9316:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9329:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9316:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3607,"nodeType":"IfStatement","src":"9312:93:19","trueBody":{"id":3606,"nodeType":"Block","src":"9332:73:19","statements":[{"expression":{"id":3600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9350:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9360:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9350:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3601,"nodeType":"ExpressionStatement","src":"9350:11:19"},{"expression":{"id":3604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3602,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9379:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9389:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9379:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3605,"nodeType":"ExpressionStatement","src":"9379:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3608,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9422:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9431:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9422:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9435:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9422:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3622,"nodeType":"IfStatement","src":"9418:93:19","trueBody":{"id":3621,"nodeType":"Block","src":"9438:73:19","statements":[{"expression":{"id":3615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3613,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9456:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9466:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9456:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3616,"nodeType":"ExpressionStatement","src":"9456:11:19"},{"expression":{"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3617,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9485:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9495:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9485:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3620,"nodeType":"ExpressionStatement","src":"9485:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3623,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"9528:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9537:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9528:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9541:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9528:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3633,"nodeType":"IfStatement","src":"9524:64:19","trueBody":{"id":3632,"nodeType":"Block","src":"9544:44:19","statements":[{"expression":{"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3628,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9562:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9572:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9562:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3631,"nodeType":"ExpressionStatement","src":"9562:11:19"}]}}]},{"expression":{"id":3635,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"9614:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3513,"id":3636,"nodeType":"Return","src":"9607:13:19"}]},"documentation":{"id":3507,"nodeType":"StructuredDocumentation","src":"8526:113:19","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3638,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8653:4:19","nodeType":"FunctionDefinition","parameters":{"id":3510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3509,"mutability":"mutable","name":"value","nameLocation":"8666:5:19","nodeType":"VariableDeclaration","scope":3638,"src":"8658:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3508,"name":"uint256","nodeType":"ElementaryTypeName","src":"8658:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8657:15:19"},"returnParameters":{"id":3513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3638,"src":"8696:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3511,"name":"uint256","nodeType":"ElementaryTypeName","src":"8696:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8695:9:19"},"scope":3966,"src":"8644:983:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3673,"nodeType":"Block","src":"9860:165:19","statements":[{"id":3672,"nodeType":"UncheckedBlock","src":"9870:149:19","statements":[{"assignments":[3650],"declarations":[{"constant":false,"id":3650,"mutability":"mutable","name":"result","nameLocation":"9902:6:19","nodeType":"VariableDeclaration","scope":3672,"src":"9894:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3649,"name":"uint256","nodeType":"ElementaryTypeName","src":"9894:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3654,"initialValue":{"arguments":[{"id":3652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"9916:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3651,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3638,3674],"referencedDeclaration":3638,"src":"9911:4:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9911:11:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9894:28:19"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3655,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3650,"src":"9943:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3656,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3644,"src":"9953:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3657,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"9965:8:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3107_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9974:2:19","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3105,"src":"9965:11:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"src":"9953:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9980:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3661,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3650,"src":"9985:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9980:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"9994:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9980:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9953:46:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10006:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9953:54:19","trueExpression":{"hexValue":"31","id":3666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10002:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9952:56:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9943:65:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3648,"id":3671,"nodeType":"Return","src":"9936:72:19"}]}]},"documentation":{"id":3639,"nodeType":"StructuredDocumentation","src":"9633:142:19","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3674,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9789:4:19","nodeType":"FunctionDefinition","parameters":{"id":3645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3641,"mutability":"mutable","name":"value","nameLocation":"9802:5:19","nodeType":"VariableDeclaration","scope":3674,"src":"9794:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3640,"name":"uint256","nodeType":"ElementaryTypeName","src":"9794:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3644,"mutability":"mutable","name":"rounding","nameLocation":"9818:8:19","nodeType":"VariableDeclaration","scope":3674,"src":"9809:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3643,"nodeType":"UserDefinedTypeName","pathNode":{"id":3642,"name":"Rounding","nameLocations":["9809:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":3107,"src":"9809:8:19"},"referencedDeclaration":3107,"src":"9809:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"9793:34:19"},"returnParameters":{"id":3648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3674,"src":"9851:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3646,"name":"uint256","nodeType":"ElementaryTypeName","src":"9851:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9850:9:19"},"scope":3966,"src":"9780:245:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3802,"nodeType":"Block","src":"10212:854:19","statements":[{"assignments":[3683],"declarations":[{"constant":false,"id":3683,"mutability":"mutable","name":"result","nameLocation":"10230:6:19","nodeType":"VariableDeclaration","scope":3802,"src":"10222:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3682,"name":"uint256","nodeType":"ElementaryTypeName","src":"10222:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3685,"initialValue":{"hexValue":"30","id":3684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10239:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10222:18:19"},{"id":3799,"nodeType":"UncheckedBlock","src":"10250:787:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10278:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10287:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10293:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10287:8:19","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10278:17:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3702,"nodeType":"IfStatement","src":"10274:103:19","trueBody":{"id":3701,"nodeType":"Block","src":"10297:80:19","statements":[{"expression":{"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3691,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10315:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":3694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10324:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10330:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10324:8:19","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10315:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3696,"nodeType":"ExpressionStatement","src":"10315:17:19"},{"expression":{"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3697,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10350:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10360:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10350:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3700,"nodeType":"ExpressionStatement","src":"10350:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10394:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10403:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10409:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10403:8:19","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10394:17:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3719,"nodeType":"IfStatement","src":"10390:103:19","trueBody":{"id":3718,"nodeType":"Block","src":"10413:80:19","statements":[{"expression":{"id":3712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3708,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10431:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":3711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10440:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10446:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10440:8:19","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10431:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3713,"nodeType":"ExpressionStatement","src":"10431:17:19"},{"expression":{"id":3716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3714,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10466:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10476:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10466:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3717,"nodeType":"ExpressionStatement","src":"10466:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3720,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10510:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10519:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10525:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10519:8:19","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10510:17:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3736,"nodeType":"IfStatement","src":"10506:103:19","trueBody":{"id":3735,"nodeType":"Block","src":"10529:80:19","statements":[{"expression":{"id":3729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3725,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10547:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10556:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10562:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10556:8:19","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10547:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3730,"nodeType":"ExpressionStatement","src":"10547:17:19"},{"expression":{"id":3733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3731,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10582:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10592:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10582:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3734,"nodeType":"ExpressionStatement","src":"10582:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10626:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10635:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10641:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10635:7:19","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10626:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3753,"nodeType":"IfStatement","src":"10622:100:19","trueBody":{"id":3752,"nodeType":"Block","src":"10644:78:19","statements":[{"expression":{"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10662:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10671:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10677:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10671:7:19","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10662:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3747,"nodeType":"ExpressionStatement","src":"10662:16:19"},{"expression":{"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3748,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10696:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10706:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10696:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3751,"nodeType":"ExpressionStatement","src":"10696:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10739:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10748:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10754:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10748:7:19","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10739:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3770,"nodeType":"IfStatement","src":"10735:100:19","trueBody":{"id":3769,"nodeType":"Block","src":"10757:78:19","statements":[{"expression":{"id":3763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10775:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10784:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10790:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10784:7:19","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10775:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3764,"nodeType":"ExpressionStatement","src":"10775:16:19"},{"expression":{"id":3767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3765,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10809:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10819:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10809:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3768,"nodeType":"ExpressionStatement","src":"10809:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10852:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10861:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10867:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10861:7:19","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10852:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3787,"nodeType":"IfStatement","src":"10848:100:19","trueBody":{"id":3786,"nodeType":"Block","src":"10870:78:19","statements":[{"expression":{"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3776,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10888:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10897:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10897:7:19","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10888:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3781,"nodeType":"ExpressionStatement","src":"10888:16:19"},{"expression":{"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3782,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"10922:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10932:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10922:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3785,"nodeType":"ExpressionStatement","src":"10922:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"10965:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10974:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10980:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10974:7:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10965:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3798,"nodeType":"IfStatement","src":"10961:66:19","trueBody":{"id":3797,"nodeType":"Block","src":"10983:44:19","statements":[{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3793,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"11001:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11011:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11001:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3796,"nodeType":"ExpressionStatement","src":"11001:11:19"}]}}]},{"expression":{"id":3800,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"11053:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3681,"id":3801,"nodeType":"Return","src":"11046:13:19"}]},"documentation":{"id":3675,"nodeType":"StructuredDocumentation","src":"10031:114:19","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3803,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10159:5:19","nodeType":"FunctionDefinition","parameters":{"id":3678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"value","nameLocation":"10173:5:19","nodeType":"VariableDeclaration","scope":3803,"src":"10165:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3676,"name":"uint256","nodeType":"ElementaryTypeName","src":"10165:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10164:15:19"},"returnParameters":{"id":3681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3803,"src":"10203:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"10203:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10202:9:19"},"scope":3966,"src":"10150:916:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3838,"nodeType":"Block","src":"11301:167:19","statements":[{"id":3837,"nodeType":"UncheckedBlock","src":"11311:151:19","statements":[{"assignments":[3815],"declarations":[{"constant":false,"id":3815,"mutability":"mutable","name":"result","nameLocation":"11343:6:19","nodeType":"VariableDeclaration","scope":3837,"src":"11335:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3814,"name":"uint256","nodeType":"ElementaryTypeName","src":"11335:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3819,"initialValue":{"arguments":[{"id":3817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"11358:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3816,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3803,3839],"referencedDeclaration":3803,"src":"11352:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11352:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11335:29:19"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3820,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"11385:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"id":3824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3821,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3809,"src":"11395:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3822,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"11407:8:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3107_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11416:2:19","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3105,"src":"11407:11:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"src":"11395:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11422:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3826,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"11428:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11422:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"11437:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11422:20:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11395:47:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11449:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11395:55:19","trueExpression":{"hexValue":"31","id":3831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11445:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11394:57:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11385:66:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3813,"id":3836,"nodeType":"Return","src":"11378:73:19"}]}]},"documentation":{"id":3804,"nodeType":"StructuredDocumentation","src":"11072:143:19","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3839,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11229:5:19","nodeType":"FunctionDefinition","parameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3806,"mutability":"mutable","name":"value","nameLocation":"11243:5:19","nodeType":"VariableDeclaration","scope":3839,"src":"11235:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3805,"name":"uint256","nodeType":"ElementaryTypeName","src":"11235:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3809,"mutability":"mutable","name":"rounding","nameLocation":"11259:8:19","nodeType":"VariableDeclaration","scope":3839,"src":"11250:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3808,"nodeType":"UserDefinedTypeName","pathNode":{"id":3807,"name":"Rounding","nameLocations":["11250:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":3107,"src":"11250:8:19"},"referencedDeclaration":3107,"src":"11250:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"11234:34:19"},"returnParameters":{"id":3813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3839,"src":"11292:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3811,"name":"uint256","nodeType":"ElementaryTypeName","src":"11292:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11291:9:19"},"scope":3966,"src":"11220:248:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3925,"nodeType":"Block","src":"11782:600:19","statements":[{"assignments":[3848],"declarations":[{"constant":false,"id":3848,"mutability":"mutable","name":"result","nameLocation":"11800:6:19","nodeType":"VariableDeclaration","scope":3925,"src":"11792:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3847,"name":"uint256","nodeType":"ElementaryTypeName","src":"11792:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3850,"initialValue":{"hexValue":"30","id":3849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11809:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11792:18:19"},{"id":3922,"nodeType":"UncheckedBlock","src":"11820:533:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"11848:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11857:3:19","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11848:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11863:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11848:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3865,"nodeType":"IfStatement","src":"11844:98:19","trueBody":{"id":3864,"nodeType":"Block","src":"11866:76:19","statements":[{"expression":{"id":3858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"11884:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11894:3:19","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11884:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3859,"nodeType":"ExpressionStatement","src":"11884:13:19"},{"expression":{"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3860,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"11915:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11925:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11915:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3863,"nodeType":"ExpressionStatement","src":"11915:12:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3866,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"11959:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11968:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11959:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11973:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11959:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3880,"nodeType":"IfStatement","src":"11955:95:19","trueBody":{"id":3879,"nodeType":"Block","src":"11976:74:19","statements":[{"expression":{"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"11994:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12004:2:19","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11994:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3874,"nodeType":"ExpressionStatement","src":"11994:12:19"},{"expression":{"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3875,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"12024:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12034:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12024:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3878,"nodeType":"ExpressionStatement","src":"12024:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"12067:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12076:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12067:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12081:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12067:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3895,"nodeType":"IfStatement","src":"12063:95:19","trueBody":{"id":3894,"nodeType":"Block","src":"12084:74:19","statements":[{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"12102:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12112:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12102:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3889,"nodeType":"ExpressionStatement","src":"12102:12:19"},{"expression":{"id":3892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"12132:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12142:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12132:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3893,"nodeType":"ExpressionStatement","src":"12132:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"12175:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12184:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12175:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12189:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12175:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3910,"nodeType":"IfStatement","src":"12171:95:19","trueBody":{"id":3909,"nodeType":"Block","src":"12192:74:19","statements":[{"expression":{"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"12210:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12220:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12210:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3904,"nodeType":"ExpressionStatement","src":"12210:12:19"},{"expression":{"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3905,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"12240:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12250:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12240:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3908,"nodeType":"ExpressionStatement","src":"12240:11:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3911,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3842,"src":"12283:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12292:1:19","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12283:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12296:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12283:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3921,"nodeType":"IfStatement","src":"12279:64:19","trueBody":{"id":3920,"nodeType":"Block","src":"12299:44:19","statements":[{"expression":{"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3916,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"12317:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12327:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12317:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3919,"nodeType":"ExpressionStatement","src":"12317:11:19"}]}}]},{"expression":{"id":3923,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"12369:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3846,"id":3924,"nodeType":"Return","src":"12362:13:19"}]},"documentation":{"id":3840,"nodeType":"StructuredDocumentation","src":"11474:240:19","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":3926,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11728:6:19","nodeType":"FunctionDefinition","parameters":{"id":3843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3842,"mutability":"mutable","name":"value","nameLocation":"11743:5:19","nodeType":"VariableDeclaration","scope":3926,"src":"11735:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3841,"name":"uint256","nodeType":"ElementaryTypeName","src":"11735:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11734:15:19"},"returnParameters":{"id":3846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3926,"src":"11773:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3844,"name":"uint256","nodeType":"ElementaryTypeName","src":"11773:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11772:9:19"},"scope":3966,"src":"11719:663:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3964,"nodeType":"Block","src":"12619:174:19","statements":[{"id":3963,"nodeType":"UncheckedBlock","src":"12629:158:19","statements":[{"assignments":[3938],"declarations":[{"constant":false,"id":3938,"mutability":"mutable","name":"result","nameLocation":"12661:6:19","nodeType":"VariableDeclaration","scope":3963,"src":"12653:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3937,"name":"uint256","nodeType":"ElementaryTypeName","src":"12653:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3942,"initialValue":{"arguments":[{"id":3940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3929,"src":"12677:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3939,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3926,3965],"referencedDeclaration":3926,"src":"12670:6:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12670:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12653:30:19"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3943,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"12704:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3944,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3932,"src":"12714:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3945,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"12726:8:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3107_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12735:2:19","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3105,"src":"12726:11:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"src":"12714:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3949,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"12747:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12757:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12747:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12746:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12741:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3954,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3929,"src":"12762:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12741:26:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12714:53:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12774:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12714:61:19","trueExpression":{"hexValue":"31","id":3957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12713:63:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12704:72:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3936,"id":3962,"nodeType":"Return","src":"12697:79:19"}]}]},"documentation":{"id":3927,"nodeType":"StructuredDocumentation","src":"12388:144:19","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3965,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12546:6:19","nodeType":"FunctionDefinition","parameters":{"id":3933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3929,"mutability":"mutable","name":"value","nameLocation":"12561:5:19","nodeType":"VariableDeclaration","scope":3965,"src":"12553:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3928,"name":"uint256","nodeType":"ElementaryTypeName","src":"12553:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3932,"mutability":"mutable","name":"rounding","nameLocation":"12577:8:19","nodeType":"VariableDeclaration","scope":3965,"src":"12568:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3931,"nodeType":"UserDefinedTypeName","pathNode":{"id":3930,"name":"Rounding","nameLocations":["12568:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":3107,"src":"12568:8:19"},"referencedDeclaration":3107,"src":"12568:8:19","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3107","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"12552:34:19"},"returnParameters":{"id":3936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3965,"src":"12610:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3934,"name":"uint256","nodeType":"ElementaryTypeName","src":"12610:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12609:9:19"},"scope":3966,"src":"12537:256:19","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3967,"src":"202:12593:19","usedErrors":[],"usedEvents":[]}],"src":"103:12693:19"},"id":19},"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol","exportedSymbols":{"SignedMathUpgradeable":[4071]},"id":4072,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3968,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:20"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMathUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":3969,"nodeType":"StructuredDocumentation","src":"134:80:20","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4071,"linearizedBaseContracts":[4071],"name":"SignedMathUpgradeable","nameLocation":"223:21:20","nodeType":"ContractDefinition","nodes":[{"body":{"id":3986,"nodeType":"Block","src":"386:37:20","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3979,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3972,"src":"403:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3980,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3974,"src":"407:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"403:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3983,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3974,"src":"415:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"403:13:20","trueExpression":{"id":3982,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3972,"src":"411:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3978,"id":3985,"nodeType":"Return","src":"396:20:20"}]},"documentation":{"id":3970,"nodeType":"StructuredDocumentation","src":"251:66:20","text":" @dev Returns the largest of two signed numbers."},"id":3987,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"331:3:20","nodeType":"FunctionDefinition","parameters":{"id":3975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3972,"mutability":"mutable","name":"a","nameLocation":"342:1:20","nodeType":"VariableDeclaration","scope":3987,"src":"335:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3971,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3974,"mutability":"mutable","name":"b","nameLocation":"352:1:20","nodeType":"VariableDeclaration","scope":3987,"src":"345:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3973,"name":"int256","nodeType":"ElementaryTypeName","src":"345:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"334:20:20"},"returnParameters":{"id":3978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3987,"src":"378:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3976,"name":"int256","nodeType":"ElementaryTypeName","src":"378:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"377:8:20"},"scope":4071,"src":"322:101:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4004,"nodeType":"Block","src":"565:37:20","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3997,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"582:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3998,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"586:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"582:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4001,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"594:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"582:13:20","trueExpression":{"id":4000,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"590:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3996,"id":4003,"nodeType":"Return","src":"575:20:20"}]},"documentation":{"id":3988,"nodeType":"StructuredDocumentation","src":"429:67:20","text":" @dev Returns the smallest of two signed numbers."},"id":4005,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"510:3:20","nodeType":"FunctionDefinition","parameters":{"id":3993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3990,"mutability":"mutable","name":"a","nameLocation":"521:1:20","nodeType":"VariableDeclaration","scope":4005,"src":"514:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3989,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3992,"mutability":"mutable","name":"b","nameLocation":"531:1:20","nodeType":"VariableDeclaration","scope":4005,"src":"524:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3991,"name":"int256","nodeType":"ElementaryTypeName","src":"524:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"513:20:20"},"returnParameters":{"id":3996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4005,"src":"557:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3994,"name":"int256","nodeType":"ElementaryTypeName","src":"557:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"556:8:20"},"scope":4071,"src":"501:101:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4048,"nodeType":"Block","src":"807:162:20","statements":[{"assignments":[4016],"declarations":[{"constant":false,"id":4016,"mutability":"mutable","name":"x","nameLocation":"876:1:20","nodeType":"VariableDeclaration","scope":4048,"src":"869:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4015,"name":"int256","nodeType":"ElementaryTypeName","src":"869:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":4029,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4017,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"881:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4018,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"885:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4021,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"892:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4022,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"896:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"892:5:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"891:7:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"902:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"891:12:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4027,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"890:14:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"880:24:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"869:35:20"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4030,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4016,"src":"921:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4035,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4016,"src":"941:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"933:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4033,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:20","typeDescriptions":{}}},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"933:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":4037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"947:3:20","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"933:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"926:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":4031,"name":"int256","nodeType":"ElementaryTypeName","src":"926:6:20","typeDescriptions":{}}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4040,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"955:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4041,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"959:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"955:5:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"954:7:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"926:35:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"925:37:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"921:41:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4014,"id":4047,"nodeType":"Return","src":"914:48:20"}]},"documentation":{"id":4006,"nodeType":"StructuredDocumentation","src":"608:126:20","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":4049,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"748:7:20","nodeType":"FunctionDefinition","parameters":{"id":4011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4008,"mutability":"mutable","name":"a","nameLocation":"763:1:20","nodeType":"VariableDeclaration","scope":4049,"src":"756:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4007,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4010,"mutability":"mutable","name":"b","nameLocation":"773:1:20","nodeType":"VariableDeclaration","scope":4049,"src":"766:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4009,"name":"int256","nodeType":"ElementaryTypeName","src":"766:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"755:20:20"},"returnParameters":{"id":4014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4049,"src":"799:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4012,"name":"int256","nodeType":"ElementaryTypeName","src":"799:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"798:8:20"},"scope":4071,"src":"739:230:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4069,"nodeType":"Block","src":"1113:158:20","statements":[{"id":4068,"nodeType":"UncheckedBlock","src":"1123:142:20","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4059,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4052,"src":"1238:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":4060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1238:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1251:2:20","subExpression":{"id":4063,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4052,"src":"1252:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1238:15:20","trueExpression":{"id":4062,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4052,"src":"1247:1:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1230:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4057,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:20","typeDescriptions":{}}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4056,"id":4067,"nodeType":"Return","src":"1223:31:20"}]}]},"documentation":{"id":4050,"nodeType":"StructuredDocumentation","src":"975:78:20","text":" @dev Returns the absolute unsigned value of a signed value."},"id":4070,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1067:3:20","nodeType":"FunctionDefinition","parameters":{"id":4053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4052,"mutability":"mutable","name":"n","nameLocation":"1078:1:20","nodeType":"VariableDeclaration","scope":4070,"src":"1071:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4051,"name":"int256","nodeType":"ElementaryTypeName","src":"1071:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1070:10:20"},"returnParameters":{"id":4056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4070,"src":"1104:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1103:9:20"},"scope":4071,"src":"1058:213:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4072,"src":"215:1058:20","usedErrors":[],"usedEvents":[]}],"src":"109:1165:20"},"id":20},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[4144]},"id":4145,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4073,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:21"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":4074,"nodeType":"StructuredDocumentation","src":"119:89:21","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":4144,"linearizedBaseContracts":[4144],"name":"IAccessControl","nameLocation":"219:14:21","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4075,"nodeType":"StructuredDocumentation","src":"240:292:21","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":4083,"name":"RoleAdminChanged","nameLocation":"543:16:21","nodeType":"EventDefinition","parameters":{"id":4082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4077,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:21","nodeType":"VariableDeclaration","scope":4083,"src":"560:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4079,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:21","nodeType":"VariableDeclaration","scope":4083,"src":"582:33:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4081,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:21","nodeType":"VariableDeclaration","scope":4083,"src":"617:28:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:21"},"src":"537:110:21"},{"anonymous":false,"documentation":{"id":4084,"nodeType":"StructuredDocumentation","src":"653:212:21","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":4092,"name":"RoleGranted","nameLocation":"876:11:21","nodeType":"EventDefinition","parameters":{"id":4091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4086,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:21","nodeType":"VariableDeclaration","scope":4092,"src":"888:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4088,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:21","nodeType":"VariableDeclaration","scope":4092,"src":"910:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4087,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4090,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:21","nodeType":"VariableDeclaration","scope":4092,"src":"935:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4089,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:21"},"src":"870:89:21"},{"anonymous":false,"documentation":{"id":4093,"nodeType":"StructuredDocumentation","src":"965:275:21","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":4101,"name":"RoleRevoked","nameLocation":"1251:11:21","nodeType":"EventDefinition","parameters":{"id":4100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4095,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:21","nodeType":"VariableDeclaration","scope":4101,"src":"1263:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4097,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:21","nodeType":"VariableDeclaration","scope":4101,"src":"1285:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4096,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4099,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:21","nodeType":"VariableDeclaration","scope":4101,"src":"1310:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4098,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:21"},"src":"1245:89:21"},{"documentation":{"id":4102,"nodeType":"StructuredDocumentation","src":"1340:76:21","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":4111,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:21","nodeType":"FunctionDefinition","parameters":{"id":4107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4104,"mutability":"mutable","name":"role","nameLocation":"1446:4:21","nodeType":"VariableDeclaration","scope":4111,"src":"1438:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4106,"mutability":"mutable","name":"account","nameLocation":"1460:7:21","nodeType":"VariableDeclaration","scope":4111,"src":"1452:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4105,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:21"},"returnParameters":{"id":4110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4111,"src":"1492:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4108,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:21"},"scope":4144,"src":"1421:77:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4112,"nodeType":"StructuredDocumentation","src":"1504:184:21","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":4119,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:21","nodeType":"FunctionDefinition","parameters":{"id":4115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4114,"mutability":"mutable","name":"role","nameLocation":"1723:4:21","nodeType":"VariableDeclaration","scope":4119,"src":"1715:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:21"},"returnParameters":{"id":4118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4119,"src":"1752:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:21"},"scope":4144,"src":"1693:68:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4120,"nodeType":"StructuredDocumentation","src":"1767:239:21","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":4127,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:21","nodeType":"FunctionDefinition","parameters":{"id":4125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4122,"mutability":"mutable","name":"role","nameLocation":"2038:4:21","nodeType":"VariableDeclaration","scope":4127,"src":"2030:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4124,"mutability":"mutable","name":"account","nameLocation":"2052:7:21","nodeType":"VariableDeclaration","scope":4127,"src":"2044:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4123,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:21"},"returnParameters":{"id":4126,"nodeType":"ParameterList","parameters":[],"src":"2069:0:21"},"scope":4144,"src":"2011:59:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4128,"nodeType":"StructuredDocumentation","src":"2076:223:21","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":4135,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:21","nodeType":"FunctionDefinition","parameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"role","nameLocation":"2332:4:21","nodeType":"VariableDeclaration","scope":4135,"src":"2324:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"account","nameLocation":"2346:7:21","nodeType":"VariableDeclaration","scope":4135,"src":"2338:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4131,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:21"},"returnParameters":{"id":4134,"nodeType":"ParameterList","parameters":[],"src":"2363:0:21"},"scope":4144,"src":"2304:60:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4136,"nodeType":"StructuredDocumentation","src":"2370:480:21","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":4143,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:21","nodeType":"FunctionDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4138,"mutability":"mutable","name":"role","nameLocation":"2885:4:21","nodeType":"VariableDeclaration","scope":4143,"src":"2877:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4140,"mutability":"mutable","name":"account","nameLocation":"2899:7:21","nodeType":"VariableDeclaration","scope":4143,"src":"2891:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4139,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:21"},"returnParameters":{"id":4142,"nodeType":"ParameterList","parameters":[],"src":"2916:0:21"},"scope":4144,"src":"2855:62:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4145,"src":"209:2710:21","usedErrors":[],"usedEvents":[4083,4092,4101]}],"src":"94:2826:21"},"id":21},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","exportedSymbols":{"IERC1967":[4165]},"id":4166,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4146,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1967","contractDependencies":[],"contractKind":"interface","documentation":{"id":4147,"nodeType":"StructuredDocumentation","src":"132:133:22","text":" @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n _Available since v4.8.3._"},"fullyImplemented":true,"id":4165,"linearizedBaseContracts":[4165],"name":"IERC1967","nameLocation":"276:8:22","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4148,"nodeType":"StructuredDocumentation","src":"291:68:22","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":4152,"name":"Upgraded","nameLocation":"370:8:22","nodeType":"EventDefinition","parameters":{"id":4151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4150,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"395:14:22","nodeType":"VariableDeclaration","scope":4152,"src":"379:30:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4149,"name":"address","nodeType":"ElementaryTypeName","src":"379:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"378:32:22"},"src":"364:47:22"},{"anonymous":false,"documentation":{"id":4153,"nodeType":"StructuredDocumentation","src":"417:67:22","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":4159,"name":"AdminChanged","nameLocation":"495:12:22","nodeType":"EventDefinition","parameters":{"id":4158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4155,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"516:13:22","nodeType":"VariableDeclaration","scope":4159,"src":"508:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4154,"name":"address","nodeType":"ElementaryTypeName","src":"508:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4157,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"539:8:22","nodeType":"VariableDeclaration","scope":4159,"src":"531:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4156,"name":"address","nodeType":"ElementaryTypeName","src":"531:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"507:41:22"},"src":"489:60:22"},{"anonymous":false,"documentation":{"id":4160,"nodeType":"StructuredDocumentation","src":"555:59:22","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":4164,"name":"BeaconUpgraded","nameLocation":"625:14:22","nodeType":"EventDefinition","parameters":{"id":4163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4162,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"656:6:22","nodeType":"VariableDeclaration","scope":4164,"src":"640:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4161,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"639:24:22"},"src":"619:45:22"}],"scope":4166,"src":"266:400:22","usedErrors":[],"usedEvents":[4152,4159,4164]}],"src":"107:560:22"},"id":22},"@openzeppelin/contracts/interfaces/IERC4626.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4626.sol","exportedSymbols":{"IERC20":[5414],"IERC20Metadata":[6066],"IERC4626":[4333]},"id":4334,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4167,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../token/ERC20/IERC20.sol","id":4168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4334,"sourceUnit":5415,"src":"132:35:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"../token/ERC20/extensions/IERC20Metadata.sol","id":4169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4334,"sourceUnit":6067,"src":"168:54:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4171,"name":"IERC20","nameLocations":["413:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"413:6:23"},"id":4172,"nodeType":"InheritanceSpecifier","src":"413:6:23"},{"baseName":{"id":4173,"name":"IERC20Metadata","nameLocations":["421:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"421:14:23"},"id":4174,"nodeType":"InheritanceSpecifier","src":"421:14:23"}],"canonicalName":"IERC4626","contractDependencies":[],"contractKind":"interface","documentation":{"id":4170,"nodeType":"StructuredDocumentation","src":"224:166:23","text":" @dev Interface of the ERC4626 \"Tokenized Vault Standard\", as defined in\n https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].\n _Available since v4.7._"},"fullyImplemented":false,"id":4333,"linearizedBaseContracts":[4333,6066,5414],"name":"IERC4626","nameLocation":"401:8:23","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"dcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7","id":4184,"name":"Deposit","nameLocation":"448:7:23","nodeType":"EventDefinition","parameters":{"id":4183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4176,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"472:6:23","nodeType":"VariableDeclaration","scope":4184,"src":"456:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4175,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4178,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"496:5:23","nodeType":"VariableDeclaration","scope":4184,"src":"480:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4177,"name":"address","nodeType":"ElementaryTypeName","src":"480:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4180,"indexed":false,"mutability":"mutable","name":"assets","nameLocation":"511:6:23","nodeType":"VariableDeclaration","scope":4184,"src":"503:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4179,"name":"uint256","nodeType":"ElementaryTypeName","src":"503:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4182,"indexed":false,"mutability":"mutable","name":"shares","nameLocation":"527:6:23","nodeType":"VariableDeclaration","scope":4184,"src":"519:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4181,"name":"uint256","nodeType":"ElementaryTypeName","src":"519:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"455:79:23"},"src":"442:93:23"},{"anonymous":false,"eventSelector":"fbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db","id":4196,"name":"Withdraw","nameLocation":"547:8:23","nodeType":"EventDefinition","parameters":{"id":4195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4186,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"581:6:23","nodeType":"VariableDeclaration","scope":4196,"src":"565:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4185,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4188,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"613:8:23","nodeType":"VariableDeclaration","scope":4196,"src":"597:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4187,"name":"address","nodeType":"ElementaryTypeName","src":"597:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4190,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"647:5:23","nodeType":"VariableDeclaration","scope":4196,"src":"631:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4189,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4192,"indexed":false,"mutability":"mutable","name":"assets","nameLocation":"670:6:23","nodeType":"VariableDeclaration","scope":4196,"src":"662:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4191,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4194,"indexed":false,"mutability":"mutable","name":"shares","nameLocation":"694:6:23","nodeType":"VariableDeclaration","scope":4196,"src":"686:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4193,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"555:151:23"},"src":"541:166:23"},{"documentation":{"id":4197,"nodeType":"StructuredDocumentation","src":"713:207:23","text":" @dev Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing.\n - MUST be an ERC-20 token contract.\n - MUST NOT revert."},"functionSelector":"38d52e0f","id":4202,"implemented":false,"kind":"function","modifiers":[],"name":"asset","nameLocation":"934:5:23","nodeType":"FunctionDefinition","parameters":{"id":4198,"nodeType":"ParameterList","parameters":[],"src":"939:2:23"},"returnParameters":{"id":4201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4200,"mutability":"mutable","name":"assetTokenAddress","nameLocation":"973:17:23","nodeType":"VariableDeclaration","scope":4202,"src":"965:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4199,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"964:27:23"},"scope":4333,"src":"925:67:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4203,"nodeType":"StructuredDocumentation","src":"998:286:23","text":" @dev Returns the total amount of the underlying asset that is “managed” by Vault.\n - SHOULD include any compounding that occurs from yield.\n - MUST be inclusive of any fees that are charged against assets in the Vault.\n - MUST NOT revert."},"functionSelector":"01e1d114","id":4208,"implemented":false,"kind":"function","modifiers":[],"name":"totalAssets","nameLocation":"1298:11:23","nodeType":"FunctionDefinition","parameters":{"id":4204,"nodeType":"ParameterList","parameters":[],"src":"1309:2:23"},"returnParameters":{"id":4207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4206,"mutability":"mutable","name":"totalManagedAssets","nameLocation":"1343:18:23","nodeType":"VariableDeclaration","scope":4208,"src":"1335:26:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1335:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:28:23"},"scope":4333,"src":"1289:74:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4209,"nodeType":"StructuredDocumentation","src":"1369:720:23","text":" @dev Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal\n scenario where all the conditions are met.\n - MUST NOT be inclusive of any fees that are charged against assets in the Vault.\n - MUST NOT show any variations depending on the caller.\n - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange.\n - MUST NOT revert.\n NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the\n “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and\n from."},"functionSelector":"c6e6f592","id":4216,"implemented":false,"kind":"function","modifiers":[],"name":"convertToShares","nameLocation":"2103:15:23","nodeType":"FunctionDefinition","parameters":{"id":4212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4211,"mutability":"mutable","name":"assets","nameLocation":"2127:6:23","nodeType":"VariableDeclaration","scope":4216,"src":"2119:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4210,"name":"uint256","nodeType":"ElementaryTypeName","src":"2119:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2118:16:23"},"returnParameters":{"id":4215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4214,"mutability":"mutable","name":"shares","nameLocation":"2166:6:23","nodeType":"VariableDeclaration","scope":4216,"src":"2158:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2157:16:23"},"scope":4333,"src":"2094:80:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4217,"nodeType":"StructuredDocumentation","src":"2180:720:23","text":" @dev Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal\n scenario where all the conditions are met.\n - MUST NOT be inclusive of any fees that are charged against assets in the Vault.\n - MUST NOT show any variations depending on the caller.\n - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange.\n - MUST NOT revert.\n NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the\n “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and\n from."},"functionSelector":"07a2d13a","id":4224,"implemented":false,"kind":"function","modifiers":[],"name":"convertToAssets","nameLocation":"2914:15:23","nodeType":"FunctionDefinition","parameters":{"id":4220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4219,"mutability":"mutable","name":"shares","nameLocation":"2938:6:23","nodeType":"VariableDeclaration","scope":4224,"src":"2930:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:16:23"},"returnParameters":{"id":4223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4222,"mutability":"mutable","name":"assets","nameLocation":"2977:6:23","nodeType":"VariableDeclaration","scope":4224,"src":"2969:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4221,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2968:16:23"},"scope":4333,"src":"2905:80:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4225,"nodeType":"StructuredDocumentation","src":"2991:386:23","text":" @dev Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver,\n through a deposit call.\n - MUST return a limited value if receiver is subject to some deposit limit.\n - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited.\n - MUST NOT revert."},"functionSelector":"402d267d","id":4232,"implemented":false,"kind":"function","modifiers":[],"name":"maxDeposit","nameLocation":"3391:10:23","nodeType":"FunctionDefinition","parameters":{"id":4228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"receiver","nameLocation":"3410:8:23","nodeType":"VariableDeclaration","scope":4232,"src":"3402:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4226,"name":"address","nodeType":"ElementaryTypeName","src":"3402:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3401:18:23"},"returnParameters":{"id":4231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4230,"mutability":"mutable","name":"maxAssets","nameLocation":"3451:9:23","nodeType":"VariableDeclaration","scope":4232,"src":"3443:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3443:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3442:19:23"},"scope":4333,"src":"3382:80:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4233,"nodeType":"StructuredDocumentation","src":"3468:1012:23","text":" @dev Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given\n current on-chain conditions.\n - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit\n   call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called\n   in the same transaction.\n - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the\n   deposit would be accepted, regardless if the user has enough tokens approved, etc.\n - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees.\n - MUST NOT revert.\n NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in\n share price or some other type of condition, meaning the depositor will lose assets by depositing."},"functionSelector":"ef8b30f7","id":4240,"implemented":false,"kind":"function","modifiers":[],"name":"previewDeposit","nameLocation":"4494:14:23","nodeType":"FunctionDefinition","parameters":{"id":4236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4235,"mutability":"mutable","name":"assets","nameLocation":"4517:6:23","nodeType":"VariableDeclaration","scope":4240,"src":"4509:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4509:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4508:16:23"},"returnParameters":{"id":4239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4238,"mutability":"mutable","name":"shares","nameLocation":"4556:6:23","nodeType":"VariableDeclaration","scope":4240,"src":"4548:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4237,"name":"uint256","nodeType":"ElementaryTypeName","src":"4548:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4547:16:23"},"scope":4333,"src":"4485:79:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4241,"nodeType":"StructuredDocumentation","src":"4570:651:23","text":" @dev Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens.\n - MUST emit the Deposit event.\n - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n   deposit execution, and are accounted for during deposit.\n - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not\n   approving enough underlying tokens to the Vault contract, etc).\n NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token."},"functionSelector":"6e553f65","id":4250,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"5235:7:23","nodeType":"FunctionDefinition","parameters":{"id":4246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4243,"mutability":"mutable","name":"assets","nameLocation":"5251:6:23","nodeType":"VariableDeclaration","scope":4250,"src":"5243:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4242,"name":"uint256","nodeType":"ElementaryTypeName","src":"5243:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4245,"mutability":"mutable","name":"receiver","nameLocation":"5267:8:23","nodeType":"VariableDeclaration","scope":4250,"src":"5259:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4244,"name":"address","nodeType":"ElementaryTypeName","src":"5259:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5242:34:23"},"returnParameters":{"id":4249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4248,"mutability":"mutable","name":"shares","nameLocation":"5303:6:23","nodeType":"VariableDeclaration","scope":4250,"src":"5295:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5295:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5294:16:23"},"scope":4333,"src":"5226:85:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4251,"nodeType":"StructuredDocumentation","src":"5317:341:23","text":" @dev Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call.\n - MUST return a limited value if receiver is subject to some mint limit.\n - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted.\n - MUST NOT revert."},"functionSelector":"c63d75b6","id":4258,"implemented":false,"kind":"function","modifiers":[],"name":"maxMint","nameLocation":"5672:7:23","nodeType":"FunctionDefinition","parameters":{"id":4254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4253,"mutability":"mutable","name":"receiver","nameLocation":"5688:8:23","nodeType":"VariableDeclaration","scope":4258,"src":"5680:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4252,"name":"address","nodeType":"ElementaryTypeName","src":"5680:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5679:18:23"},"returnParameters":{"id":4257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4256,"mutability":"mutable","name":"maxShares","nameLocation":"5729:9:23","nodeType":"VariableDeclaration","scope":4258,"src":"5721:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4255,"name":"uint256","nodeType":"ElementaryTypeName","src":"5721:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5720:19:23"},"scope":4333,"src":"5663:77:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4259,"nodeType":"StructuredDocumentation","src":"5746:984:23","text":" @dev Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given\n current on-chain conditions.\n - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call\n   in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the\n   same transaction.\n - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint\n   would be accepted, regardless if the user has enough tokens approved, etc.\n - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees.\n - MUST NOT revert.\n NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in\n share price or some other type of condition, meaning the depositor will lose assets by minting."},"functionSelector":"b3d7f6b9","id":4266,"implemented":false,"kind":"function","modifiers":[],"name":"previewMint","nameLocation":"6744:11:23","nodeType":"FunctionDefinition","parameters":{"id":4262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4261,"mutability":"mutable","name":"shares","nameLocation":"6764:6:23","nodeType":"VariableDeclaration","scope":4266,"src":"6756:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4260,"name":"uint256","nodeType":"ElementaryTypeName","src":"6756:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6755:16:23"},"returnParameters":{"id":4265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4264,"mutability":"mutable","name":"assets","nameLocation":"6803:6:23","nodeType":"VariableDeclaration","scope":4266,"src":"6795:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4263,"name":"uint256","nodeType":"ElementaryTypeName","src":"6795:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6794:16:23"},"scope":4333,"src":"6735:76:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4267,"nodeType":"StructuredDocumentation","src":"6817:642:23","text":" @dev Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens.\n - MUST emit the Deposit event.\n - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint\n   execution, and are accounted for during mint.\n - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not\n   approving enough underlying tokens to the Vault contract, etc).\n NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token."},"functionSelector":"94bf804d","id":4276,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"7473:4:23","nodeType":"FunctionDefinition","parameters":{"id":4272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4269,"mutability":"mutable","name":"shares","nameLocation":"7486:6:23","nodeType":"VariableDeclaration","scope":4276,"src":"7478:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"7478:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4271,"mutability":"mutable","name":"receiver","nameLocation":"7502:8:23","nodeType":"VariableDeclaration","scope":4276,"src":"7494:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4270,"name":"address","nodeType":"ElementaryTypeName","src":"7494:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7477:34:23"},"returnParameters":{"id":4275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4274,"mutability":"mutable","name":"assets","nameLocation":"7538:6:23","nodeType":"VariableDeclaration","scope":4276,"src":"7530:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4273,"name":"uint256","nodeType":"ElementaryTypeName","src":"7530:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7529:16:23"},"scope":4333,"src":"7464:82:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4277,"nodeType":"StructuredDocumentation","src":"7552:293:23","text":" @dev Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the\n Vault, through a withdraw call.\n - MUST return a limited value if owner is subject to some withdrawal limit or timelock.\n - MUST NOT revert."},"functionSelector":"ce96cb77","id":4284,"implemented":false,"kind":"function","modifiers":[],"name":"maxWithdraw","nameLocation":"7859:11:23","nodeType":"FunctionDefinition","parameters":{"id":4280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"owner","nameLocation":"7879:5:23","nodeType":"VariableDeclaration","scope":4284,"src":"7871:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4278,"name":"address","nodeType":"ElementaryTypeName","src":"7871:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7870:15:23"},"returnParameters":{"id":4283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4282,"mutability":"mutable","name":"maxAssets","nameLocation":"7917:9:23","nodeType":"VariableDeclaration","scope":4284,"src":"7909:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4281,"name":"uint256","nodeType":"ElementaryTypeName","src":"7909:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7908:19:23"},"scope":4333,"src":"7850:78:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4285,"nodeType":"StructuredDocumentation","src":"7934:1034:23","text":" @dev Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block,\n given current on-chain conditions.\n - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw\n   call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if\n   called\n   in the same transaction.\n - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though\n   the withdrawal would be accepted, regardless if the user has enough shares, etc.\n - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees.\n - MUST NOT revert.\n NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in\n share price or some other type of condition, meaning the depositor will lose assets by depositing."},"functionSelector":"0a28a477","id":4292,"implemented":false,"kind":"function","modifiers":[],"name":"previewWithdraw","nameLocation":"8982:15:23","nodeType":"FunctionDefinition","parameters":{"id":4288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4287,"mutability":"mutable","name":"assets","nameLocation":"9006:6:23","nodeType":"VariableDeclaration","scope":4292,"src":"8998:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4286,"name":"uint256","nodeType":"ElementaryTypeName","src":"8998:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8997:16:23"},"returnParameters":{"id":4291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4290,"mutability":"mutable","name":"shares","nameLocation":"9045:6:23","nodeType":"VariableDeclaration","scope":4292,"src":"9037:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4289,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9036:16:23"},"scope":4333,"src":"8973:80:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4293,"nodeType":"StructuredDocumentation","src":"9059:670:23","text":" @dev Burns shares from owner and sends exactly assets of underlying tokens to receiver.\n - MUST emit the Withdraw event.\n - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n   withdraw execution, and are accounted for during withdraw.\n - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner\n   not having enough shares, etc).\n Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed.\n Those methods should be performed separately."},"functionSelector":"b460af94","id":4304,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"9743:8:23","nodeType":"FunctionDefinition","parameters":{"id":4300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4295,"mutability":"mutable","name":"assets","nameLocation":"9760:6:23","nodeType":"VariableDeclaration","scope":4304,"src":"9752:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4294,"name":"uint256","nodeType":"ElementaryTypeName","src":"9752:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4297,"mutability":"mutable","name":"receiver","nameLocation":"9776:8:23","nodeType":"VariableDeclaration","scope":4304,"src":"9768:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4296,"name":"address","nodeType":"ElementaryTypeName","src":"9768:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4299,"mutability":"mutable","name":"owner","nameLocation":"9794:5:23","nodeType":"VariableDeclaration","scope":4304,"src":"9786:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4298,"name":"address","nodeType":"ElementaryTypeName","src":"9786:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9751:49:23"},"returnParameters":{"id":4303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4302,"mutability":"mutable","name":"shares","nameLocation":"9827:6:23","nodeType":"VariableDeclaration","scope":4304,"src":"9819:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4301,"name":"uint256","nodeType":"ElementaryTypeName","src":"9819:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9818:16:23"},"scope":4333,"src":"9734:101:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4305,"nodeType":"StructuredDocumentation","src":"9841:381:23","text":" @dev Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault,\n through a redeem call.\n - MUST return a limited value if owner is subject to some withdrawal limit or timelock.\n - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock.\n - MUST NOT revert."},"functionSelector":"d905777e","id":4312,"implemented":false,"kind":"function","modifiers":[],"name":"maxRedeem","nameLocation":"10236:9:23","nodeType":"FunctionDefinition","parameters":{"id":4308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4307,"mutability":"mutable","name":"owner","nameLocation":"10254:5:23","nodeType":"VariableDeclaration","scope":4312,"src":"10246:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4306,"name":"address","nodeType":"ElementaryTypeName","src":"10246:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10245:15:23"},"returnParameters":{"id":4311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4310,"mutability":"mutable","name":"maxShares","nameLocation":"10292:9:23","nodeType":"VariableDeclaration","scope":4312,"src":"10284:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4309,"name":"uint256","nodeType":"ElementaryTypeName","src":"10284:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10283:19:23"},"scope":4333,"src":"10227:76:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4313,"nodeType":"StructuredDocumentation","src":"10309:1010:23","text":" @dev Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block,\n given current on-chain conditions.\n - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call\n   in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the\n   same transaction.\n - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the\n   redemption would be accepted, regardless if the user has enough shares, etc.\n - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees.\n - MUST NOT revert.\n NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in\n share price or some other type of condition, meaning the depositor will lose assets by redeeming."},"functionSelector":"4cdad506","id":4320,"implemented":false,"kind":"function","modifiers":[],"name":"previewRedeem","nameLocation":"11333:13:23","nodeType":"FunctionDefinition","parameters":{"id":4316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4315,"mutability":"mutable","name":"shares","nameLocation":"11355:6:23","nodeType":"VariableDeclaration","scope":4320,"src":"11347:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4314,"name":"uint256","nodeType":"ElementaryTypeName","src":"11347:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11346:16:23"},"returnParameters":{"id":4319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4318,"mutability":"mutable","name":"assets","nameLocation":"11394:6:23","nodeType":"VariableDeclaration","scope":4320,"src":"11386:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4317,"name":"uint256","nodeType":"ElementaryTypeName","src":"11386:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11385:16:23"},"scope":4333,"src":"11324:78:23","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4321,"nodeType":"StructuredDocumentation","src":"11408:661:23","text":" @dev Burns exactly shares from owner and sends assets of underlying tokens to receiver.\n - MUST emit the Withdraw event.\n - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the\n   redeem execution, and are accounted for during redeem.\n - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner\n   not having enough shares, etc).\n NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed.\n Those methods should be performed separately."},"functionSelector":"ba087652","id":4332,"implemented":false,"kind":"function","modifiers":[],"name":"redeem","nameLocation":"12083:6:23","nodeType":"FunctionDefinition","parameters":{"id":4328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4323,"mutability":"mutable","name":"shares","nameLocation":"12098:6:23","nodeType":"VariableDeclaration","scope":4332,"src":"12090:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4322,"name":"uint256","nodeType":"ElementaryTypeName","src":"12090:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4325,"mutability":"mutable","name":"receiver","nameLocation":"12114:8:23","nodeType":"VariableDeclaration","scope":4332,"src":"12106:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4324,"name":"address","nodeType":"ElementaryTypeName","src":"12106:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4327,"mutability":"mutable","name":"owner","nameLocation":"12132:5:23","nodeType":"VariableDeclaration","scope":4332,"src":"12124:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4326,"name":"address","nodeType":"ElementaryTypeName","src":"12124:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12089:49:23"},"returnParameters":{"id":4331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4330,"mutability":"mutable","name":"assets","nameLocation":"12165:6:23","nodeType":"VariableDeclaration","scope":4332,"src":"12157:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4329,"name":"uint256","nodeType":"ElementaryTypeName","src":"12157:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12156:16:23"},"scope":4333,"src":"12074:99:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4334,"src":"391:11784:23","usedErrors":[],"usedEvents":[4184,4196,5348,5357]}],"src":"107:12069:23"},"id":23},"@openzeppelin/contracts/interfaces/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","exportedSymbols":{"IERC165":[7883],"IERC721":[6594]},"id":4337,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4335,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"91:23:24"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../token/ERC721/IERC721.sol","id":4336,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4337,"sourceUnit":6595,"src":"116:37:24","symbolAliases":[],"unitAlias":""}],"src":"91:63:24"},"id":24},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[4346]},"id":4347,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4338,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":4339,"nodeType":"StructuredDocumentation","src":"138:203:25","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":4346,"linearizedBaseContracts":[4346],"name":"IERC1822Proxiable","nameLocation":"352:17:25","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4340,"nodeType":"StructuredDocumentation","src":"376:438:25","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":4345,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"828:13:25","nodeType":"FunctionDefinition","parameters":{"id":4341,"nodeType":"ParameterList","parameters":[],"src":"841:2:25"},"returnParameters":{"id":4344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4345,"src":"867:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"867:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"866:9:25"},"scope":4346,"src":"819:57:25","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4347,"src":"342:536:25","usedErrors":[],"usedEvents":[]}],"src":"113:766:25"},"id":25},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[6942],"ERC1967Proxy":[4383],"ERC1967Upgrade":[4687],"IBeacon":[4749],"IERC1822Proxiable":[4346],"IERC1967":[4165],"Proxy":[4739],"StorageSlot":[7082]},"id":4384,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4348,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:26"},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"../Proxy.sol","id":4349,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4384,"sourceUnit":4740,"src":"139:22:26","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":4350,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4384,"sourceUnit":4688,"src":"162:30:26","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4352,"name":"Proxy","nameLocations":["592:5:26"],"nodeType":"IdentifierPath","referencedDeclaration":4739,"src":"592:5:26"},"id":4353,"nodeType":"InheritanceSpecifier","src":"592:5:26"},{"baseName":{"id":4354,"name":"ERC1967Upgrade","nameLocations":["599:14:26"],"nodeType":"IdentifierPath","referencedDeclaration":4687,"src":"599:14:26"},"id":4355,"nodeType":"InheritanceSpecifier","src":"599:14:26"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":4351,"nodeType":"StructuredDocumentation","src":"194:372:26","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":4383,"linearizedBaseContracts":[4383,4687,4165,4739],"name":"ERC1967Proxy","nameLocation":"576:12:26","nodeType":"ContractDefinition","nodes":[{"body":{"id":4369,"nodeType":"Block","src":"1014:56:26","statements":[{"expression":{"arguments":[{"id":4364,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4358,"src":"1042:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4365,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"1050:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":4366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1057:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4363,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"1024:17:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":4367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1024:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4368,"nodeType":"ExpressionStatement","src":"1024:39:26"}]},"documentation":{"id":4356,"nodeType":"StructuredDocumentation","src":"620:333:26","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializing the storage of the proxy like a Solidity constructor."},"id":4370,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4358,"mutability":"mutable","name":"_logic","nameLocation":"978:6:26","nodeType":"VariableDeclaration","scope":4370,"src":"970:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4357,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4360,"mutability":"mutable","name":"_data","nameLocation":"999:5:26","nodeType":"VariableDeclaration","scope":4370,"src":"986:18:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4359,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"969:36:26"},"returnParameters":{"id":4362,"nodeType":"ParameterList","parameters":[],"src":"1014:0:26"},"scope":4383,"src":"958:112:26","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[4704],"body":{"id":4381,"nodeType":"Block","src":"1229:59:26","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4377,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4687,"src":"1246:14:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$4687_$","typeString":"type(contract ERC1967Upgrade)"}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:18:26","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":4413,"src":"1246:33:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:35:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4376,"id":4380,"nodeType":"Return","src":"1239:42:26"}]},"documentation":{"id":4371,"nodeType":"StructuredDocumentation","src":"1076:67:26","text":" @dev Returns the current implementation address."},"id":4382,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1157:15:26","nodeType":"FunctionDefinition","overrides":{"id":4373,"nodeType":"OverrideSpecifier","overrides":[],"src":"1197:8:26"},"parameters":{"id":4372,"nodeType":"ParameterList","parameters":[],"src":"1172:2:26"},"returnParameters":{"id":4376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4375,"mutability":"mutable","name":"impl","nameLocation":"1223:4:26","nodeType":"VariableDeclaration","scope":4382,"src":"1215:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4374,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1214:14:26"},"scope":4383,"src":"1148:140:26","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4384,"src":"567:723:26","usedErrors":[],"usedEvents":[4152,4159,4164]}],"src":"114:1177:26"},"id":26},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[6942],"ERC1967Upgrade":[4687],"IBeacon":[4749],"IERC1822Proxiable":[4346],"IERC1967":[4165],"StorageSlot":[7082]},"id":4688,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4385,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"116:23:27"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":4386,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4688,"sourceUnit":4750,"src":"141:31:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","id":4387,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4688,"sourceUnit":4166,"src":"173:39:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":4388,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4688,"sourceUnit":4347,"src":"213:45:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":4389,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4688,"sourceUnit":6943,"src":"259:33:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":4390,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4688,"sourceUnit":7083,"src":"293:37:27","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4392,"name":"IERC1967","nameLocations":["553:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":4165,"src":"553:8:27"},"id":4393,"nodeType":"InheritanceSpecifier","src":"553:8:27"}],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":4391,"nodeType":"StructuredDocumentation","src":"332:184:27","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._"},"fullyImplemented":true,"id":4687,"linearizedBaseContracts":[4687,4165],"name":"ERC1967Upgrade","nameLocation":"535:14:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4396,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"672:14:27","nodeType":"VariableDeclaration","scope":4687,"src":"647:108:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"647:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":4395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:66:27","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":4397,"nodeType":"StructuredDocumentation","src":"762:214:27","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":4400,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1007:20:27","nodeType":"VariableDeclaration","scope":4687,"src":"981:115:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":4399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1030:66:27","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"body":{"id":4412,"nodeType":"Block","src":"1237:78:27","statements":[{"expression":{"expression":{"arguments":[{"id":4408,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"1281:20:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4406,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"1254:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1266:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"1254:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1303:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"1254:54:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4405,"id":4411,"nodeType":"Return","src":"1247:61:27"}]},"documentation":{"id":4401,"nodeType":"StructuredDocumentation","src":"1103:67:27","text":" @dev Returns the current implementation address."},"id":4413,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1184:18:27","nodeType":"FunctionDefinition","parameters":{"id":4402,"nodeType":"ParameterList","parameters":[],"src":"1202:2:27"},"returnParameters":{"id":4405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4413,"src":"1228:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4403,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:9:27"},"scope":4687,"src":"1175:140:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4436,"nodeType":"Block","src":"1469:196:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":4422,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"1506:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4420,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"1487:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":4421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1495:10:27","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6630,"src":"1487:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1487:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":4424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1526:47:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":4419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1479:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1479:95:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4426,"nodeType":"ExpressionStatement","src":"1479:95:27"},{"expression":{"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":4430,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"1611:20:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4427,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"1584:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1596:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"1584:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1633:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"1584:54:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4433,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"1641:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1584:74:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4435,"nodeType":"ExpressionStatement","src":"1584:74:27"}]},"documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"1321:80:27","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":4437,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1415:18:27","nodeType":"FunctionDefinition","parameters":{"id":4417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"newImplementation","nameLocation":"1442:17:27","nodeType":"VariableDeclaration","scope":4437,"src":"1434:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4415,"name":"address","nodeType":"ElementaryTypeName","src":"1434:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1433:27:27"},"returnParameters":{"id":4418,"nodeType":"ParameterList","parameters":[],"src":"1469:0:27"},"scope":4687,"src":"1406:259:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4451,"nodeType":"Block","src":"1827:96:27","statements":[{"expression":{"arguments":[{"id":4444,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4440,"src":"1856:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4443,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"1837:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4446,"nodeType":"ExpressionStatement","src":"1837:37:27"},{"eventCall":{"arguments":[{"id":4448,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4440,"src":"1898:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4447,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4152,"src":"1889:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4450,"nodeType":"EmitStatement","src":"1884:32:27"}]},"documentation":{"id":4438,"nodeType":"StructuredDocumentation","src":"1671:95:27","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":4452,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1780:10:27","nodeType":"FunctionDefinition","parameters":{"id":4441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4440,"mutability":"mutable","name":"newImplementation","nameLocation":"1799:17:27","nodeType":"VariableDeclaration","scope":4452,"src":"1791:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4439,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1790:27:27"},"returnParameters":{"id":4442,"nodeType":"ParameterList","parameters":[],"src":"1827:0:27"},"scope":4687,"src":"1771:152:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4481,"nodeType":"Block","src":"2155:167:27","statements":[{"expression":{"arguments":[{"id":4463,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"2176:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4462,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"2165:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2165:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4465,"nodeType":"ExpressionStatement","src":"2165:29:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4466,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4457,"src":"2208:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:6:27","memberName":"length","nodeType":"MemberAccess","src":"2208:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2222:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2208:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":4470,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4459,"src":"2227:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2208:28:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4480,"nodeType":"IfStatement","src":"2204:112:27","trueBody":{"id":4479,"nodeType":"Block","src":"2238:78:27","statements":[{"expression":{"arguments":[{"id":4475,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"2281:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4476,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4457,"src":"2300:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4472,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"2252:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2260:20:27","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"2252:28:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2252:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4478,"nodeType":"ExpressionStatement","src":"2252:53:27"}]}}]},"documentation":{"id":4453,"nodeType":"StructuredDocumentation","src":"1929:123:27","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":4482,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2066:17:27","nodeType":"FunctionDefinition","parameters":{"id":4460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"newImplementation","nameLocation":"2092:17:27","nodeType":"VariableDeclaration","scope":4482,"src":"2084:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4454,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4457,"mutability":"mutable","name":"data","nameLocation":"2124:4:27","nodeType":"VariableDeclaration","scope":4482,"src":"2111:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4456,"name":"bytes","nodeType":"ElementaryTypeName","src":"2111:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4459,"mutability":"mutable","name":"forceCall","nameLocation":"2135:9:27","nodeType":"VariableDeclaration","scope":4482,"src":"2130:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4458,"name":"bool","nodeType":"ElementaryTypeName","src":"2130:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2083:62:27"},"returnParameters":{"id":4461,"nodeType":"ParameterList","parameters":[],"src":"2155:0:27"},"scope":4687,"src":"2057:265:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4534,"nodeType":"Block","src":"2596:820:27","statements":[{"condition":{"expression":{"arguments":[{"id":4494,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4396,"src":"2937:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4492,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"2910:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2922:14:27","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":7015,"src":"2910:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$6981_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$6981_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":4496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2953:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6980,"src":"2910:48:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4532,"nodeType":"Block","src":"3028:382:27","statements":[{"clauses":[{"block":{"id":4517,"nodeType":"Block","src":"3122:115:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4511,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4508,"src":"3148:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4512,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"3156:20:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3148:28:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":4514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3178:43:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":4510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3140:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3140:82:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4516,"nodeType":"ExpressionStatement","src":"3140:82:27"}]},"errorName":"","id":4518,"nodeType":"TryCatchClause","parameters":{"id":4509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4508,"mutability":"mutable","name":"slot","nameLocation":"3116:4:27","nodeType":"VariableDeclaration","scope":4518,"src":"3108:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3108:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3107:14:27"},"src":"3099:138:27"},{"block":{"id":4523,"nodeType":"Block","src":"3244:89:27","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":4520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3269:48:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":4519,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3262:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3262:56:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4522,"nodeType":"ExpressionStatement","src":"3262:56:27"}]},"errorName":"","id":4524,"nodeType":"TryCatchClause","src":"3238:95:27"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4503,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"3064:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4502,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"3046:17:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$4346_$","typeString":"type(contract IERC1822Proxiable)"}},"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3046:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$4346","typeString":"contract IERC1822Proxiable"}},"id":4505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:13:27","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":4345,"src":"3046:50:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3046:52:27","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4525,"nodeType":"TryStatement","src":"3042:291:27"},{"expression":{"arguments":[{"id":4527,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"3364:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4528,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4487,"src":"3383:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4529,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"3389:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4526,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"3346:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4531,"nodeType":"ExpressionStatement","src":"3346:53:27"}]},"id":4533,"nodeType":"IfStatement","src":"2906:504:27","trueBody":{"id":4501,"nodeType":"Block","src":"2960:62:27","statements":[{"expression":{"arguments":[{"id":4498,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"2993:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4497,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"2974:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2974:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4500,"nodeType":"ExpressionStatement","src":"2974:37:27"}]}}]},"documentation":{"id":4483,"nodeType":"StructuredDocumentation","src":"2328:161:27","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":4535,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2503:21:27","nodeType":"FunctionDefinition","parameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4485,"mutability":"mutable","name":"newImplementation","nameLocation":"2533:17:27","nodeType":"VariableDeclaration","scope":4535,"src":"2525:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4484,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4487,"mutability":"mutable","name":"data","nameLocation":"2565:4:27","nodeType":"VariableDeclaration","scope":4535,"src":"2552:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4486,"name":"bytes","nodeType":"ElementaryTypeName","src":"2552:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4489,"mutability":"mutable","name":"forceCall","nameLocation":"2576:9:27","nodeType":"VariableDeclaration","scope":4535,"src":"2571:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4488,"name":"bool","nodeType":"ElementaryTypeName","src":"2571:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2524:62:27"},"returnParameters":{"id":4491,"nodeType":"ParameterList","parameters":[],"src":"2596:0:27"},"scope":4687,"src":"2494:922:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":4536,"nodeType":"StructuredDocumentation","src":"3422:189:27","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":4539,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3642:11:27","nodeType":"VariableDeclaration","scope":4687,"src":"3616:106:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3616:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":4538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:66:27","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":4551,"nodeType":"Block","src":"3837:69:27","statements":[{"expression":{"expression":{"arguments":[{"id":4547,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"3881:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4545,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"3854:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3866:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"3854:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3854:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3894:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"3854:45:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4544,"id":4550,"nodeType":"Return","src":"3847:52:27"}]},"documentation":{"id":4540,"nodeType":"StructuredDocumentation","src":"3729:50:27","text":" @dev Returns the current admin."},"id":4552,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"3793:9:27","nodeType":"FunctionDefinition","parameters":{"id":4541,"nodeType":"ParameterList","parameters":[],"src":"3802:2:27"},"returnParameters":{"id":4544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4552,"src":"3828:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4542,"name":"address","nodeType":"ElementaryTypeName","src":"3828:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3827:9:27"},"scope":4687,"src":"3784:122:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4577,"nodeType":"Block","src":"4033:156:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4559,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"4051:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4071:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4063:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4560,"name":"address","nodeType":"ElementaryTypeName","src":"4063:7:27","typeDescriptions":{}}},"id":4563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4051:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":4565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4075:40:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":4558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4043:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4567,"nodeType":"ExpressionStatement","src":"4043:73:27"},{"expression":{"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":4571,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"4153:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4568,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"4126:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"4126:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4126:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4166:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"4126:45:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4574,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"4174:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4126:56:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4576,"nodeType":"ExpressionStatement","src":"4126:56:27"}]},"documentation":{"id":4553,"nodeType":"StructuredDocumentation","src":"3912:71:27","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":4578,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3997:9:27","nodeType":"FunctionDefinition","parameters":{"id":4556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4555,"mutability":"mutable","name":"newAdmin","nameLocation":"4015:8:27","nodeType":"VariableDeclaration","scope":4578,"src":"4007:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4554,"name":"address","nodeType":"ElementaryTypeName","src":"4007:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4006:18:27"},"returnParameters":{"id":4557,"nodeType":"ParameterList","parameters":[],"src":"4033:0:27"},"scope":4687,"src":"3988:201:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4594,"nodeType":"Block","src":"4349:86:27","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4585,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4552,"src":"4377:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4377:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4587,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4581,"src":"4390:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4584,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4159,"src":"4364:12:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4364:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4589,"nodeType":"EmitStatement","src":"4359:40:27"},{"expression":{"arguments":[{"id":4591,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4581,"src":"4419:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4590,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"4409:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4593,"nodeType":"ExpressionStatement","src":"4409:19:27"}]},"documentation":{"id":4579,"nodeType":"StructuredDocumentation","src":"4195:100:27","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":4595,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4309:12:27","nodeType":"FunctionDefinition","parameters":{"id":4582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4581,"mutability":"mutable","name":"newAdmin","nameLocation":"4330:8:27","nodeType":"VariableDeclaration","scope":4595,"src":"4322:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4580,"name":"address","nodeType":"ElementaryTypeName","src":"4322:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4321:18:27"},"returnParameters":{"id":4583,"nodeType":"ParameterList","parameters":[],"src":"4349:0:27"},"scope":4687,"src":"4300:135:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":4596,"nodeType":"StructuredDocumentation","src":"4441:232:27","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":4599,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"4704:12:27","nodeType":"VariableDeclaration","scope":4687,"src":"4678:107:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4678:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":4598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4719:66:27","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"body":{"id":4611,"nodeType":"Block","src":"4902:70:27","statements":[{"expression":{"expression":{"arguments":[{"id":4607,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4599,"src":"4946:12:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4605,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"4919:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4931:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"4919:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4960:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"4919:46:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4604,"id":4610,"nodeType":"Return","src":"4912:53:27"}]},"documentation":{"id":4600,"nodeType":"StructuredDocumentation","src":"4792:51:27","text":" @dev Returns the current beacon."},"id":4612,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"4857:10:27","nodeType":"FunctionDefinition","parameters":{"id":4601,"nodeType":"ParameterList","parameters":[],"src":"4867:2:27"},"returnParameters":{"id":4604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4612,"src":"4893:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4602,"name":"address","nodeType":"ElementaryTypeName","src":"4893:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4892:9:27"},"scope":4687,"src":"4848:124:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4647,"nodeType":"Block","src":"5101:324:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":4621,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"5138:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4619,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"5119:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5127:10:27","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6630,"src":"5119:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5119:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5150:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":4618,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5111:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5111:79:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4625,"nodeType":"ExpressionStatement","src":"5111:79:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4630,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"5248:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4629,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"5240:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$4749_$","typeString":"type(contract IBeacon)"}},"id":4631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5240:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$4749","typeString":"contract IBeacon"}},"id":4632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5259:14:27","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":4748,"src":"5240:33:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5240:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4627,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"5221:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5229:10:27","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6630,"src":"5221:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5221:55:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":4635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5290:50:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":4626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5200:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5200:150:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4637,"nodeType":"ExpressionStatement","src":"5200:150:27"},{"expression":{"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":4641,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4599,"src":"5387:12:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4638,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"5360:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5372:14:27","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":7004,"src":"5360:26:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6978_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5360:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":4643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5401:5:27","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6977,"src":"5360:46:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4644,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4615,"src":"5409:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5360:58:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4646,"nodeType":"ExpressionStatement","src":"5360:58:27"}]},"documentation":{"id":4613,"nodeType":"StructuredDocumentation","src":"4978:71:27","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":4648,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5063:10:27","nodeType":"FunctionDefinition","parameters":{"id":4616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4615,"mutability":"mutable","name":"newBeacon","nameLocation":"5082:9:27","nodeType":"VariableDeclaration","scope":4648,"src":"5074:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4614,"name":"address","nodeType":"ElementaryTypeName","src":"5074:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5073:19:27"},"returnParameters":{"id":4617,"nodeType":"ParameterList","parameters":[],"src":"5101:0:27"},"scope":4687,"src":"5054:371:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4685,"nodeType":"Block","src":"5824:217:27","statements":[{"expression":{"arguments":[{"id":4659,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4651,"src":"5845:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4658,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4648,"src":"5834:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5834:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4661,"nodeType":"ExpressionStatement","src":"5834:21:27"},{"eventCall":{"arguments":[{"id":4663,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4651,"src":"5885:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4662,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4164,"src":"5870:14:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5870:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4665,"nodeType":"EmitStatement","src":"5865:30:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4666,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4653,"src":"5909:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5914:6:27","memberName":"length","nodeType":"MemberAccess","src":"5909:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5923:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5909:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":4670,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4655,"src":"5928:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5909:28:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4684,"nodeType":"IfStatement","src":"5905:130:27","trueBody":{"id":4683,"nodeType":"Block","src":"5939:96:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4676,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4651,"src":"5990:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4675,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"5982:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$4749_$","typeString":"type(contract IBeacon)"}},"id":4677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5982:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$4749","typeString":"contract IBeacon"}},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:14:27","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":4748,"src":"5982:33:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5982:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4680,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4653,"src":"6019:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4672,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"5953:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5961:20:27","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"5953:28:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":4681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5953:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4682,"nodeType":"ExpressionStatement","src":"5953:71:27"}]}}]},"documentation":{"id":4649,"nodeType":"StructuredDocumentation","src":"5431:292:27","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":4686,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"5737:23:27","nodeType":"FunctionDefinition","parameters":{"id":4656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4651,"mutability":"mutable","name":"newBeacon","nameLocation":"5769:9:27","nodeType":"VariableDeclaration","scope":4686,"src":"5761:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4650,"name":"address","nodeType":"ElementaryTypeName","src":"5761:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4653,"mutability":"mutable","name":"data","nameLocation":"5793:4:27","nodeType":"VariableDeclaration","scope":4686,"src":"5780:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4652,"name":"bytes","nodeType":"ElementaryTypeName","src":"5780:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4655,"mutability":"mutable","name":"forceCall","nameLocation":"5804:9:27","nodeType":"VariableDeclaration","scope":4686,"src":"5799:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4654,"name":"bool","nodeType":"ElementaryTypeName","src":"5799:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5760:54:27"},"returnParameters":{"id":4657,"nodeType":"ParameterList","parameters":[],"src":"5824:0:27"},"scope":4687,"src":"5728:313:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":4688,"src":"517:5526:27","usedErrors":[],"usedEvents":[4152,4159,4164]}],"src":"116:5928:27"},"id":27},"@openzeppelin/contracts/proxy/Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","exportedSymbols":{"Proxy":[4739]},"id":4740,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4689,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:28"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":4690,"nodeType":"StructuredDocumentation","src":"124:598:28","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":4739,"linearizedBaseContracts":[4739],"name":"Proxy","nameLocation":"741:5:28","nodeType":"ContractDefinition","nodes":[{"body":{"id":4697,"nodeType":"Block","src":"1008:835:28","statements":[{"AST":{"nativeSrc":"1027:810:28","nodeType":"YulBlock","src":"1027:810:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1280:1:28","nodeType":"YulLiteral","src":"1280:1:28","type":"","value":"0"},{"kind":"number","nativeSrc":"1283:1:28","nodeType":"YulLiteral","src":"1283:1:28","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1286:12:28","nodeType":"YulIdentifier","src":"1286:12:28"},"nativeSrc":"1286:14:28","nodeType":"YulFunctionCall","src":"1286:14:28"}],"functionName":{"name":"calldatacopy","nativeSrc":"1267:12:28","nodeType":"YulIdentifier","src":"1267:12:28"},"nativeSrc":"1267:34:28","nodeType":"YulFunctionCall","src":"1267:34:28"},"nativeSrc":"1267:34:28","nodeType":"YulExpressionStatement","src":"1267:34:28"},{"nativeSrc":"1428:74:28","nodeType":"YulVariableDeclaration","src":"1428:74:28","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1455:3:28","nodeType":"YulIdentifier","src":"1455:3:28"},"nativeSrc":"1455:5:28","nodeType":"YulFunctionCall","src":"1455:5:28"},{"name":"implementation","nativeSrc":"1462:14:28","nodeType":"YulIdentifier","src":"1462:14:28"},{"kind":"number","nativeSrc":"1478:1:28","nodeType":"YulLiteral","src":"1478:1:28","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1481:12:28","nodeType":"YulIdentifier","src":"1481:12:28"},"nativeSrc":"1481:14:28","nodeType":"YulFunctionCall","src":"1481:14:28"},{"kind":"number","nativeSrc":"1497:1:28","nodeType":"YulLiteral","src":"1497:1:28","type":"","value":"0"},{"kind":"number","nativeSrc":"1500:1:28","nodeType":"YulLiteral","src":"1500:1:28","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1442:12:28","nodeType":"YulIdentifier","src":"1442:12:28"},"nativeSrc":"1442:60:28","nodeType":"YulFunctionCall","src":"1442:60:28"},"variables":[{"name":"result","nativeSrc":"1432:6:28","nodeType":"YulTypedName","src":"1432:6:28","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1570:1:28","nodeType":"YulLiteral","src":"1570:1:28","type":"","value":"0"},{"kind":"number","nativeSrc":"1573:1:28","nodeType":"YulLiteral","src":"1573:1:28","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1576:14:28","nodeType":"YulIdentifier","src":"1576:14:28"},"nativeSrc":"1576:16:28","nodeType":"YulFunctionCall","src":"1576:16:28"}],"functionName":{"name":"returndatacopy","nativeSrc":"1555:14:28","nodeType":"YulIdentifier","src":"1555:14:28"},"nativeSrc":"1555:38:28","nodeType":"YulFunctionCall","src":"1555:38:28"},"nativeSrc":"1555:38:28","nodeType":"YulExpressionStatement","src":"1555:38:28"},{"cases":[{"body":{"nativeSrc":"1688:59:28","nodeType":"YulBlock","src":"1688:59:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1713:1:28","nodeType":"YulLiteral","src":"1713:1:28","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1716:14:28","nodeType":"YulIdentifier","src":"1716:14:28"},"nativeSrc":"1716:16:28","nodeType":"YulFunctionCall","src":"1716:16:28"}],"functionName":{"name":"revert","nativeSrc":"1706:6:28","nodeType":"YulIdentifier","src":"1706:6:28"},"nativeSrc":"1706:27:28","nodeType":"YulFunctionCall","src":"1706:27:28"},"nativeSrc":"1706:27:28","nodeType":"YulExpressionStatement","src":"1706:27:28"}]},"nativeSrc":"1681:66:28","nodeType":"YulCase","src":"1681:66:28","value":{"kind":"number","nativeSrc":"1686:1:28","nodeType":"YulLiteral","src":"1686:1:28","type":"","value":"0"}},{"body":{"nativeSrc":"1768:59:28","nodeType":"YulBlock","src":"1768:59:28","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1793:1:28","nodeType":"YulLiteral","src":"1793:1:28","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1796:14:28","nodeType":"YulIdentifier","src":"1796:14:28"},"nativeSrc":"1796:16:28","nodeType":"YulFunctionCall","src":"1796:16:28"}],"functionName":{"name":"return","nativeSrc":"1786:6:28","nodeType":"YulIdentifier","src":"1786:6:28"},"nativeSrc":"1786:27:28","nodeType":"YulFunctionCall","src":"1786:27:28"},"nativeSrc":"1786:27:28","nodeType":"YulExpressionStatement","src":"1786:27:28"}]},"nativeSrc":"1760:67:28","nodeType":"YulCase","src":"1760:67:28","value":"default"}],"expression":{"name":"result","nativeSrc":"1614:6:28","nodeType":"YulIdentifier","src":"1614:6:28"},"nativeSrc":"1607:220:28","nodeType":"YulSwitch","src":"1607:220:28"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4693,"isOffset":false,"isSlot":false,"src":"1462:14:28","valueSize":1}],"id":4696,"nodeType":"InlineAssembly","src":"1018:819:28"}]},"documentation":{"id":4691,"nodeType":"StructuredDocumentation","src":"753:190:28","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":4698,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"957:9:28","nodeType":"FunctionDefinition","parameters":{"id":4694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4693,"mutability":"mutable","name":"implementation","nameLocation":"975:14:28","nodeType":"VariableDeclaration","scope":4698,"src":"967:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4692,"name":"address","nodeType":"ElementaryTypeName","src":"967:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"966:24:28"},"returnParameters":{"id":4695,"nodeType":"ParameterList","parameters":[],"src":"1008:0:28"},"scope":4739,"src":"948:895:28","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":4699,"nodeType":"StructuredDocumentation","src":"1849:173:28","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":4704,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2036:15:28","nodeType":"FunctionDefinition","parameters":{"id":4700,"nodeType":"ParameterList","parameters":[],"src":"2051:2:28"},"returnParameters":{"id":4703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4704,"src":"2085:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4701,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2084:9:28"},"scope":4739,"src":"2027:67:28","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4716,"nodeType":"Block","src":"2360:72:28","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4708,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"2370:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:17:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4710,"nodeType":"ExpressionStatement","src":"2370:17:28"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4712,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"2407:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:17:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4711,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4698,"src":"2397:9:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2397:28:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4715,"nodeType":"ExpressionStatement","src":"2397:28:28"}]},"documentation":{"id":4705,"nodeType":"StructuredDocumentation","src":"2100:217:28","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":4717,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2331:9:28","nodeType":"FunctionDefinition","parameters":{"id":4706,"nodeType":"ParameterList","parameters":[],"src":"2340:2:28"},"returnParameters":{"id":4707,"nodeType":"ParameterList","parameters":[],"src":"2360:0:28"},"scope":4739,"src":"2322:110:28","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4724,"nodeType":"Block","src":"2665:28:28","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4721,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4717,"src":"2675:9:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4723,"nodeType":"ExpressionStatement","src":"2675:11:28"}]},"documentation":{"id":4718,"nodeType":"StructuredDocumentation","src":"2438:186:28","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":4725,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4719,"nodeType":"ParameterList","parameters":[],"src":"2637:2:28"},"returnParameters":{"id":4720,"nodeType":"ParameterList","parameters":[],"src":"2665:0:28"},"scope":4739,"src":"2629:64:28","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":4732,"nodeType":"Block","src":"2888:28:28","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4729,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4717,"src":"2898:9:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2898:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4731,"nodeType":"ExpressionStatement","src":"2898:11:28"}]},"documentation":{"id":4726,"nodeType":"StructuredDocumentation","src":"2699:149:28","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":4733,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4727,"nodeType":"ParameterList","parameters":[],"src":"2860:2:28"},"returnParameters":{"id":4728,"nodeType":"ParameterList","parameters":[],"src":"2888:0:28"},"scope":4739,"src":"2853:63:28","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":4737,"nodeType":"Block","src":"3242:2:28","statements":[]},"documentation":{"id":4734,"nodeType":"StructuredDocumentation","src":"2922:271:28","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overridden should call `super._beforeFallback()`."},"id":4738,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3207:15:28","nodeType":"FunctionDefinition","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[],"src":"3222:2:28"},"returnParameters":{"id":4736,"nodeType":"ParameterList","parameters":[],"src":"3242:0:28"},"scope":4739,"src":"3198:46:28","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4740,"src":"723:2523:28","usedErrors":[],"usedEvents":[]}],"src":"99:3148:28"},"id":28},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[4749]},"id":4750,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4741,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:29"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":4742,"nodeType":"StructuredDocumentation","src":"118:79:29","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":4749,"linearizedBaseContracts":[4749],"name":"IBeacon","nameLocation":"208:7:29","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4743,"nodeType":"StructuredDocumentation","src":"222:162:29","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":4748,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:29","nodeType":"FunctionDefinition","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[],"src":"412:2:29"},"returnParameters":{"id":4747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4748,"src":"438:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4745,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:29"},"scope":4749,"src":"389:58:29","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4750,"src":"198:251:29","usedErrors":[],"usedEvents":[]}],"src":"93:357:29"},"id":29},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[6972],"ERC20":[5336],"IERC20":[5414],"IERC20Metadata":[6066]},"id":5337,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4751,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:30"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":4752,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5337,"sourceUnit":5415,"src":"130:22:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":4753,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5337,"sourceUnit":6067,"src":"153:41:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":4754,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5337,"sourceUnit":6973,"src":"195:33:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4756,"name":"Context","nameLocations":["1550:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":6972,"src":"1550:7:30"},"id":4757,"nodeType":"InheritanceSpecifier","src":"1550:7:30"},{"baseName":{"id":4758,"name":"IERC20","nameLocations":["1559:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"1559:6:30"},"id":4759,"nodeType":"InheritanceSpecifier","src":"1559:6:30"},{"baseName":{"id":4760,"name":"IERC20Metadata","nameLocations":["1567:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1567:14:30"},"id":4761,"nodeType":"InheritanceSpecifier","src":"1567:14:30"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":4755,"nodeType":"StructuredDocumentation","src":"230:1301:30","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":5336,"linearizedBaseContracts":[5336,6066,5414,6972],"name":"ERC20","nameLocation":"1541:5:30","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4765,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:30","nodeType":"VariableDeclaration","scope":5336,"src":"1588:45:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4764,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4762,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":4771,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:30","nodeType":"VariableDeclaration","scope":5336,"src":"1640:67:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4770,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4766,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4769,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4767,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4768,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":4773,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:30","nodeType":"VariableDeclaration","scope":5336,"src":"1714:28:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4772,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4775,"mutability":"mutable","name":"_name","nameLocation":"1764:5:30","nodeType":"VariableDeclaration","scope":5336,"src":"1749:20:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":4774,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":4777,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:30","nodeType":"VariableDeclaration","scope":5336,"src":"1775:22:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":4776,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":4793,"nodeType":"Block","src":"2036:57:30","statements":[{"expression":{"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4785,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"2046:5:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4786,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"2054:5:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4788,"nodeType":"ExpressionStatement","src":"2046:13:30"},{"expression":{"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4789,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2069:7:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4790,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4782,"src":"2079:7:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4792,"nodeType":"ExpressionStatement","src":"2069:17:30"}]},"documentation":{"id":4778,"nodeType":"StructuredDocumentation","src":"1804:171:30","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":4794,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4780,"mutability":"mutable","name":"name_","nameLocation":"2006:5:30","nodeType":"VariableDeclaration","scope":4794,"src":"1992:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4779,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4782,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:30","nodeType":"VariableDeclaration","scope":4794,"src":"2013:21:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4781,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:30"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[],"src":"2036:0:30"},"scope":5336,"src":"1980:113:30","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6053],"body":{"id":4803,"nodeType":"Block","src":"2227:29:30","statements":[{"expression":{"id":4801,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4775,"src":"2244:5:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":4800,"id":4802,"nodeType":"Return","src":"2237:12:30"}]},"documentation":{"id":4795,"nodeType":"StructuredDocumentation","src":"2099:54:30","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":4804,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:30","nodeType":"FunctionDefinition","overrides":{"id":4797,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:30"},"parameters":{"id":4796,"nodeType":"ParameterList","parameters":[],"src":"2171:2:30"},"returnParameters":{"id":4800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4804,"src":"2212:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4798,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:30"},"scope":5336,"src":"2158:98:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6059],"body":{"id":4813,"nodeType":"Block","src":"2440:31:30","statements":[{"expression":{"id":4811,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2457:7:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":4810,"id":4812,"nodeType":"Return","src":"2450:14:30"}]},"documentation":{"id":4805,"nodeType":"StructuredDocumentation","src":"2262:102:30","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":4814,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:30","nodeType":"FunctionDefinition","overrides":{"id":4807,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:30"},"parameters":{"id":4806,"nodeType":"ParameterList","parameters":[],"src":"2384:2:30"},"returnParameters":{"id":4810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4814,"src":"2425:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4808,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:30"},"scope":5336,"src":"2369:102:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6065],"body":{"id":4823,"nodeType":"Block","src":"3169:26:30","statements":[{"expression":{"hexValue":"3138","id":4821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:30","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":4820,"id":4822,"nodeType":"Return","src":"3179:9:30"}]},"documentation":{"id":4815,"nodeType":"StructuredDocumentation","src":"2477:622:30","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":4824,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:30","nodeType":"FunctionDefinition","overrides":{"id":4817,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:30"},"parameters":{"id":4816,"nodeType":"ParameterList","parameters":[],"src":"3121:2:30"},"returnParameters":{"id":4820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4824,"src":"3162:5:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4818,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:30"},"scope":5336,"src":"3104:91:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5363],"body":{"id":4833,"nodeType":"Block","src":"3325:36:30","statements":[{"expression":{"id":4831,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"3342:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4830,"id":4832,"nodeType":"Return","src":"3335:19:30"}]},"documentation":{"id":4825,"nodeType":"StructuredDocumentation","src":"3201:49:30","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":4834,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:30","nodeType":"FunctionDefinition","overrides":{"id":4827,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:30"},"parameters":{"id":4826,"nodeType":"ParameterList","parameters":[],"src":"3275:2:30"},"returnParameters":{"id":4830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4834,"src":"3316:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4828,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:30"},"scope":5336,"src":"3255:106:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5371],"body":{"id":4847,"nodeType":"Block","src":"3502:42:30","statements":[{"expression":{"baseExpression":{"id":4843,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"3519:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4845,"indexExpression":{"id":4844,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4837,"src":"3529:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4842,"id":4846,"nodeType":"Return","src":"3512:25:30"}]},"documentation":{"id":4835,"nodeType":"StructuredDocumentation","src":"3367:47:30","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":4848,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:30","nodeType":"FunctionDefinition","overrides":{"id":4839,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:30"},"parameters":{"id":4838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4837,"mutability":"mutable","name":"account","nameLocation":"3446:7:30","nodeType":"VariableDeclaration","scope":4848,"src":"3438:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4836,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:30"},"returnParameters":{"id":4842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4848,"src":"3493:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4840,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:30"},"scope":5336,"src":"3419:125:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5381],"body":{"id":4872,"nodeType":"Block","src":"3825:104:30","statements":[{"assignments":[4860],"declarations":[{"constant":false,"id":4860,"mutability":"mutable","name":"owner","nameLocation":"3843:5:30","nodeType":"VariableDeclaration","scope":4872,"src":"3835:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4859,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4863,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4861,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"3851:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:30"},{"expression":{"arguments":[{"id":4865,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4860,"src":"3883:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4866,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4851,"src":"3890:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4853,"src":"3894:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4864,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"3873:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4869,"nodeType":"ExpressionStatement","src":"3873:28:30"},{"expression":{"hexValue":"74727565","id":4870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4858,"id":4871,"nodeType":"Return","src":"3911:11:30"}]},"documentation":{"id":4849,"nodeType":"StructuredDocumentation","src":"3550:185:30","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":4873,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:30","nodeType":"FunctionDefinition","overrides":{"id":4855,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:30"},"parameters":{"id":4854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4851,"mutability":"mutable","name":"to","nameLocation":"3766:2:30","nodeType":"VariableDeclaration","scope":4873,"src":"3758:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4850,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4853,"mutability":"mutable","name":"amount","nameLocation":"3778:6:30","nodeType":"VariableDeclaration","scope":4873,"src":"3770:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4852,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:30"},"returnParameters":{"id":4858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4873,"src":"3819:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4856,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:30"},"scope":5336,"src":"3740:189:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5391],"body":{"id":4890,"nodeType":"Block","src":"4085:51:30","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4884,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4771,"src":"4102:11:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":4886,"indexExpression":{"id":4885,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"4114:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4888,"indexExpression":{"id":4887,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"4121:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4883,"id":4889,"nodeType":"Return","src":"4095:34:30"}]},"documentation":{"id":4874,"nodeType":"StructuredDocumentation","src":"3935:47:30","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":4891,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:30","nodeType":"FunctionDefinition","overrides":{"id":4880,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:30"},"parameters":{"id":4879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4876,"mutability":"mutable","name":"owner","nameLocation":"4014:5:30","nodeType":"VariableDeclaration","scope":4891,"src":"4006:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4875,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4878,"mutability":"mutable","name":"spender","nameLocation":"4029:7:30","nodeType":"VariableDeclaration","scope":4891,"src":"4021:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4877,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:30"},"returnParameters":{"id":4883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4891,"src":"4076:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:30"},"scope":5336,"src":"3987:149:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5401],"body":{"id":4915,"nodeType":"Block","src":"4533:108:30","statements":[{"assignments":[4903],"declarations":[{"constant":false,"id":4903,"mutability":"mutable","name":"owner","nameLocation":"4551:5:30","nodeType":"VariableDeclaration","scope":4915,"src":"4543:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4902,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4906,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4904,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"4559:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:30"},{"expression":{"arguments":[{"id":4908,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4903,"src":"4590:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4909,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4894,"src":"4597:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4910,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"4606:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4907,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"4581:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4912,"nodeType":"ExpressionStatement","src":"4581:32:30"},{"expression":{"hexValue":"74727565","id":4913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4901,"id":4914,"nodeType":"Return","src":"4623:11:30"}]},"documentation":{"id":4892,"nodeType":"StructuredDocumentation","src":"4142:297:30","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":4916,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:30","nodeType":"FunctionDefinition","overrides":{"id":4898,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:30"},"parameters":{"id":4897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4894,"mutability":"mutable","name":"spender","nameLocation":"4469:7:30","nodeType":"VariableDeclaration","scope":4916,"src":"4461:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4893,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4896,"mutability":"mutable","name":"amount","nameLocation":"4486:6:30","nodeType":"VariableDeclaration","scope":4916,"src":"4478:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4895,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:30"},"returnParameters":{"id":4901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4916,"src":"4527:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4899,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:30"},"scope":5336,"src":"4444:197:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5413],"body":{"id":4948,"nodeType":"Block","src":"5306:153:30","statements":[{"assignments":[4930],"declarations":[{"constant":false,"id":4930,"mutability":"mutable","name":"spender","nameLocation":"5324:7:30","nodeType":"VariableDeclaration","scope":4948,"src":"5316:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4929,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4933,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4931,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"5334:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:30"},{"expression":{"arguments":[{"id":4935,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4919,"src":"5372:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4936,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4930,"src":"5378:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4923,"src":"5387:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4934,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"5356:15:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4939,"nodeType":"ExpressionStatement","src":"5356:38:30"},{"expression":{"arguments":[{"id":4941,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4919,"src":"5414:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4942,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4921,"src":"5420:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4923,"src":"5424:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4940,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"5404:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4945,"nodeType":"ExpressionStatement","src":"5404:27:30"},{"expression":{"hexValue":"74727565","id":4946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4928,"id":4947,"nodeType":"Return","src":"5441:11:30"}]},"documentation":{"id":4917,"nodeType":"StructuredDocumentation","src":"4647:551:30","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":4949,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:30","nodeType":"FunctionDefinition","overrides":{"id":4925,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:30"},"parameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4919,"mutability":"mutable","name":"from","nameLocation":"5233:4:30","nodeType":"VariableDeclaration","scope":4949,"src":"5225:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4918,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4921,"mutability":"mutable","name":"to","nameLocation":"5247:2:30","nodeType":"VariableDeclaration","scope":4949,"src":"5239:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4920,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4923,"mutability":"mutable","name":"amount","nameLocation":"5259:6:30","nodeType":"VariableDeclaration","scope":4949,"src":"5251:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4922,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:30"},"returnParameters":{"id":4928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4949,"src":"5300:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4926,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:30"},"scope":5336,"src":"5203:256:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4977,"nodeType":"Block","src":"5948:140:30","statements":[{"assignments":[4960],"declarations":[{"constant":false,"id":4960,"mutability":"mutable","name":"owner","nameLocation":"5966:5:30","nodeType":"VariableDeclaration","scope":4977,"src":"5958:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4959,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4963,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4961,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"5974:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:30"},{"expression":{"arguments":[{"id":4965,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"6005:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4966,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"6012:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4968,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"6031:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4969,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"6038:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4967,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"6021:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4971,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4954,"src":"6049:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4964,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"5996:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4974,"nodeType":"ExpressionStatement","src":"5996:64:30"},{"expression":{"hexValue":"74727565","id":4975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4958,"id":4976,"nodeType":"Return","src":"6070:11:30"}]},"documentation":{"id":4950,"nodeType":"StructuredDocumentation","src":"5465:384:30","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":4978,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:30","nodeType":"FunctionDefinition","parameters":{"id":4955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4952,"mutability":"mutable","name":"spender","nameLocation":"5889:7:30","nodeType":"VariableDeclaration","scope":4978,"src":"5881:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4951,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4954,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:30","nodeType":"VariableDeclaration","scope":4978,"src":"5898:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4953,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:30"},"returnParameters":{"id":4958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4978,"src":"5942:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4956,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:30"},"scope":5336,"src":"5854:234:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5018,"nodeType":"Block","src":"6674:328:30","statements":[{"assignments":[4989],"declarations":[{"constant":false,"id":4989,"mutability":"mutable","name":"owner","nameLocation":"6692:5:30","nodeType":"VariableDeclaration","scope":5018,"src":"6684:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4988,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4992,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4990,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"6700:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:30"},{"assignments":[4994],"declarations":[{"constant":false,"id":4994,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:30","nodeType":"VariableDeclaration","scope":5018,"src":"6722:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4993,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4999,"initialValue":{"arguments":[{"id":4996,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"6759:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4997,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4981,"src":"6766:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4995,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"6749:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5001,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"6792:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5002,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"6812:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":5000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6784:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5006,"nodeType":"ExpressionStatement","src":"6784:85:30"},{"id":5015,"nodeType":"UncheckedBlock","src":"6879:95:30","statements":[{"expression":{"arguments":[{"id":5008,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"6912:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5009,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4981,"src":"6919:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5010,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"6928:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5011,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"6947:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5007,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"6903:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5014,"nodeType":"ExpressionStatement","src":"6903:60:30"}]},{"expression":{"hexValue":"74727565","id":5016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4987,"id":5017,"nodeType":"Return","src":"6984:11:30"}]},"documentation":{"id":4979,"nodeType":"StructuredDocumentation","src":"6094:476:30","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":5019,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:30","nodeType":"FunctionDefinition","parameters":{"id":4984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4981,"mutability":"mutable","name":"spender","nameLocation":"6610:7:30","nodeType":"VariableDeclaration","scope":5019,"src":"6602:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4980,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4983,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:30","nodeType":"VariableDeclaration","scope":5019,"src":"6619:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4982,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:30"},"returnParameters":{"id":4987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5019,"src":"6668:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4985,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:30"},"scope":5336,"src":"6575:427:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5095,"nodeType":"Block","src":"7534:710:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5030,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7552:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5031,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:30","typeDescriptions":{}}},"id":5034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":5036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":5029,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7544:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5038,"nodeType":"ExpressionStatement","src":"7544:68:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5040,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"7630:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5041,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:30","typeDescriptions":{}}},"id":5044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":5046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":5039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7622:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5048,"nodeType":"ExpressionStatement","src":"7622:64:30"},{"expression":{"arguments":[{"id":5050,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7718:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5051,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"7724:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5052,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"7728:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5049,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5324,"src":"7697:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5054,"nodeType":"ExpressionStatement","src":"7697:38:30"},{"assignments":[5056],"declarations":[{"constant":false,"id":5056,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:30","nodeType":"VariableDeclaration","scope":5095,"src":"7746:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5055,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5060,"initialValue":{"baseExpression":{"id":5057,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"7768:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5059,"indexExpression":{"id":5058,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7778:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5062,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"7801:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5063,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"7816:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":5065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":5061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7793:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5067,"nodeType":"ExpressionStatement","src":"7793:72:30"},{"id":5082,"nodeType":"UncheckedBlock","src":"7875:273:30","statements":[{"expression":{"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5068,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"7899:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5070,"indexExpression":{"id":5069,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7909:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5071,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"7917:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5072,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"7931:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5075,"nodeType":"ExpressionStatement","src":"7899:38:30"},{"expression":{"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5076,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"8114:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5078,"indexExpression":{"id":5077,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"8124:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5079,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"8131:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5081,"nodeType":"ExpressionStatement","src":"8114:23:30"}]},{"eventCall":{"arguments":[{"id":5084,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"8172:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5085,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"8178:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"8182:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5083,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"8163:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5088,"nodeType":"EmitStatement","src":"8158:31:30"},{"expression":{"arguments":[{"id":5090,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"8220:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5091,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"8226:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5092,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"8230:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5089,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"8200:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5094,"nodeType":"ExpressionStatement","src":"8200:37:30"}]},"documentation":{"id":5020,"nodeType":"StructuredDocumentation","src":"7008:443:30","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":5096,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:30","nodeType":"FunctionDefinition","parameters":{"id":5027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5022,"mutability":"mutable","name":"from","nameLocation":"7483:4:30","nodeType":"VariableDeclaration","scope":5096,"src":"7475:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5021,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5024,"mutability":"mutable","name":"to","nameLocation":"7497:2:30","nodeType":"VariableDeclaration","scope":5096,"src":"7489:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5023,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5026,"mutability":"mutable","name":"amount","nameLocation":"7509:6:30","nodeType":"VariableDeclaration","scope":5096,"src":"7501:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5025,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:30"},"returnParameters":{"id":5028,"nodeType":"ParameterList","parameters":[],"src":"7534:0:30"},"scope":5336,"src":"7456:788:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5152,"nodeType":"Block","src":"8585:470:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5105,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"8603:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5106,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:30","typeDescriptions":{}}},"id":5109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":5111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":5104,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8595:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5113,"nodeType":"ExpressionStatement","src":"8595:65:30"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5115,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:30","typeDescriptions":{}}},"id":5118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5119,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"8704:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5120,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"8713:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5114,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5324,"src":"8671:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5122,"nodeType":"ExpressionStatement","src":"8671:49:30"},{"expression":{"id":5125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5123,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"8731:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5124,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"8747:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5126,"nodeType":"ExpressionStatement","src":"8731:22:30"},{"id":5133,"nodeType":"UncheckedBlock","src":"8763:175:30","statements":[{"expression":{"id":5131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5127,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"8899:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5129,"indexExpression":{"id":5128,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"8909:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5130,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"8921:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5132,"nodeType":"ExpressionStatement","src":"8899:28:30"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5135,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:30","typeDescriptions":{}}},"id":5138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5139,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"8973:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"8982:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5134,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"8952:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5142,"nodeType":"EmitStatement","src":"8947:42:30"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5144,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:30","typeDescriptions":{}}},"id":5147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5148,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"9032:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5149,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"9041:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5143,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"9000:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5151,"nodeType":"ExpressionStatement","src":"9000:48:30"}]},"documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"8250:265:30","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":5153,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:30","nodeType":"FunctionDefinition","parameters":{"id":5102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5099,"mutability":"mutable","name":"account","nameLocation":"8543:7:30","nodeType":"VariableDeclaration","scope":5153,"src":"8535:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5098,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5101,"mutability":"mutable","name":"amount","nameLocation":"8560:6:30","nodeType":"VariableDeclaration","scope":5153,"src":"8552:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5100,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:30"},"returnParameters":{"id":5103,"nodeType":"ParameterList","parameters":[],"src":"8585:0:30"},"scope":5336,"src":"8520:535:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5224,"nodeType":"Block","src":"9440:594:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9458:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5163,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:30","typeDescriptions":{}}},"id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":5161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9450:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5170,"nodeType":"ExpressionStatement","src":"9450:67:30"},{"expression":{"arguments":[{"id":5172,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9549:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5173,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:30","typeDescriptions":{}}},"id":5176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"9570:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5171,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5324,"src":"9528:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5179,"nodeType":"ExpressionStatement","src":"9528:49:30"},{"assignments":[5181],"declarations":[{"constant":false,"id":5181,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:30","nodeType":"VariableDeclaration","scope":5224,"src":"9588:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5185,"initialValue":{"baseExpression":{"id":5182,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"9613:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5184,"indexExpression":{"id":5183,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9623:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5187,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"9649:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"9667:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":5190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":5186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9641:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5192,"nodeType":"ExpressionStatement","src":"9641:71:30"},{"id":5205,"nodeType":"UncheckedBlock","src":"9722:194:30","statements":[{"expression":{"id":5199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5193,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"9746:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5195,"indexExpression":{"id":5194,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9756:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5196,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"9767:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5197,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"9784:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5200,"nodeType":"ExpressionStatement","src":"9746:44:30"},{"expression":{"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5201,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"9883:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5202,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"9899:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5204,"nodeType":"ExpressionStatement","src":"9883:22:30"}]},{"eventCall":{"arguments":[{"id":5207,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9940:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5208,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:30","typeDescriptions":{}}},"id":5211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"9961:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5206,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"9931:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5214,"nodeType":"EmitStatement","src":"9926:42:30"},{"expression":{"arguments":[{"id":5216,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"9999:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:30","typeDescriptions":{}}},"id":5220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5221,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"10020:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5215,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"9979:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5223,"nodeType":"ExpressionStatement","src":"9979:48:30"}]},"documentation":{"id":5154,"nodeType":"StructuredDocumentation","src":"9061:309:30","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":5225,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:30","nodeType":"FunctionDefinition","parameters":{"id":5159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5156,"mutability":"mutable","name":"account","nameLocation":"9398:7:30","nodeType":"VariableDeclaration","scope":5225,"src":"9390:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5155,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5158,"mutability":"mutable","name":"amount","nameLocation":"9415:6:30","nodeType":"VariableDeclaration","scope":5225,"src":"9407:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5157,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:30"},"returnParameters":{"id":5160,"nodeType":"ParameterList","parameters":[],"src":"9440:0:30"},"scope":5336,"src":"9375:659:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5269,"nodeType":"Block","src":"10540:257:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5236,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"10558:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5237,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:30","typeDescriptions":{}}},"id":5240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":5242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":5235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10550:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5244,"nodeType":"ExpressionStatement","src":"10550:68:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5246,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5230,"src":"10636:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5247,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:30","typeDescriptions":{}}},"id":5250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":5252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":5245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10628:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5254,"nodeType":"ExpressionStatement","src":"10628:68:30"},{"expression":{"id":5261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5255,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4771,"src":"10707:11:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5258,"indexExpression":{"id":5256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"10719:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5259,"indexExpression":{"id":5257,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5230,"src":"10726:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5260,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"10737:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5262,"nodeType":"ExpressionStatement","src":"10707:36:30"},{"eventCall":{"arguments":[{"id":5264,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"10767:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5265,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5230,"src":"10774:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5266,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"10783:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5263,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"10758:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5268,"nodeType":"EmitStatement","src":"10753:37:30"}]},"documentation":{"id":5226,"nodeType":"StructuredDocumentation","src":"10040:412:30","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":5270,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:30","nodeType":"FunctionDefinition","parameters":{"id":5233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5228,"mutability":"mutable","name":"owner","nameLocation":"10483:5:30","nodeType":"VariableDeclaration","scope":5270,"src":"10475:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5227,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5230,"mutability":"mutable","name":"spender","nameLocation":"10498:7:30","nodeType":"VariableDeclaration","scope":5270,"src":"10490:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5229,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5232,"mutability":"mutable","name":"amount","nameLocation":"10515:6:30","nodeType":"VariableDeclaration","scope":5270,"src":"10507:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5231,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:30"},"returnParameters":{"id":5234,"nodeType":"ParameterList","parameters":[],"src":"10540:0:30"},"scope":5336,"src":"10457:340:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5312,"nodeType":"Block","src":"11168:321:30","statements":[{"assignments":[5281],"declarations":[{"constant":false,"id":5281,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:30","nodeType":"VariableDeclaration","scope":5312,"src":"11178:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5286,"initialValue":{"arguments":[{"id":5283,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"11215:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5284,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"11222:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5282,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"11205:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5287,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"11244:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":5290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5289,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:30","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5288,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:30","memberName":"max","nodeType":"MemberAccess","src":"11264:17:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5311,"nodeType":"IfStatement","src":"11240:243:30","trueBody":{"id":5310,"nodeType":"Block","src":"11283:200:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5295,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"11305:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"11325:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":5298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":5294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11297:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5300,"nodeType":"ExpressionStatement","src":"11297:68:30"},{"id":5309,"nodeType":"UncheckedBlock","src":"11379:94:30","statements":[{"expression":{"arguments":[{"id":5302,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"11416:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5303,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"11423:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5304,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"11432:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"11451:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5301,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"11407:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5308,"nodeType":"ExpressionStatement","src":"11407:51:30"}]}]}}]},"documentation":{"id":5271,"nodeType":"StructuredDocumentation","src":"10803:270:30","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":5313,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:30","nodeType":"FunctionDefinition","parameters":{"id":5278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5273,"mutability":"mutable","name":"owner","nameLocation":"11111:5:30","nodeType":"VariableDeclaration","scope":5313,"src":"11103:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5272,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5275,"mutability":"mutable","name":"spender","nameLocation":"11126:7:30","nodeType":"VariableDeclaration","scope":5313,"src":"11118:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5274,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5277,"mutability":"mutable","name":"amount","nameLocation":"11143:6:30","nodeType":"VariableDeclaration","scope":5313,"src":"11135:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5276,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:30"},"returnParameters":{"id":5279,"nodeType":"ParameterList","parameters":[],"src":"11168:0:30"},"scope":5336,"src":"11078:411:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5323,"nodeType":"Block","src":"12162:2:30","statements":[]},"documentation":{"id":5314,"nodeType":"StructuredDocumentation","src":"11495:573:30","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":5324,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:30","nodeType":"FunctionDefinition","parameters":{"id":5321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5316,"mutability":"mutable","name":"from","nameLocation":"12111:4:30","nodeType":"VariableDeclaration","scope":5324,"src":"12103:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5315,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5318,"mutability":"mutable","name":"to","nameLocation":"12125:2:30","nodeType":"VariableDeclaration","scope":5324,"src":"12117:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5317,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5320,"mutability":"mutable","name":"amount","nameLocation":"12137:6:30","nodeType":"VariableDeclaration","scope":5324,"src":"12129:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5319,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:30"},"returnParameters":{"id":5322,"nodeType":"ParameterList","parameters":[],"src":"12162:0:30"},"scope":5336,"src":"12073:91:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5334,"nodeType":"Block","src":"12840:2:30","statements":[]},"documentation":{"id":5325,"nodeType":"StructuredDocumentation","src":"12170:577:30","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":5335,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:30","nodeType":"FunctionDefinition","parameters":{"id":5332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5327,"mutability":"mutable","name":"from","nameLocation":"12789:4:30","nodeType":"VariableDeclaration","scope":5335,"src":"12781:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5326,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5329,"mutability":"mutable","name":"to","nameLocation":"12803:2:30","nodeType":"VariableDeclaration","scope":5335,"src":"12795:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5328,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5331,"mutability":"mutable","name":"amount","nameLocation":"12815:6:30","nodeType":"VariableDeclaration","scope":5335,"src":"12807:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5330,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:30"},"returnParameters":{"id":5333,"nodeType":"ParameterList","parameters":[],"src":"12840:0:30"},"scope":5336,"src":"12752:90:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5337,"src":"1532:11312:30","usedErrors":[],"usedEvents":[5348,5357]}],"src":"105:12740:30"},"id":30},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[5414]},"id":5415,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5338,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":5339,"nodeType":"StructuredDocumentation","src":"131:70:31","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":5414,"linearizedBaseContracts":[5414],"name":"IERC20","nameLocation":"212:6:31","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5340,"nodeType":"StructuredDocumentation","src":"225:158:31","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":5348,"name":"Transfer","nameLocation":"394:8:31","nodeType":"EventDefinition","parameters":{"id":5347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5342,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:31","nodeType":"VariableDeclaration","scope":5348,"src":"403:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5341,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5344,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:31","nodeType":"VariableDeclaration","scope":5348,"src":"425:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5343,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5346,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:31","nodeType":"VariableDeclaration","scope":5348,"src":"445:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5345,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:31"},"src":"388:72:31"},{"anonymous":false,"documentation":{"id":5349,"nodeType":"StructuredDocumentation","src":"466:148:31","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":5357,"name":"Approval","nameLocation":"625:8:31","nodeType":"EventDefinition","parameters":{"id":5356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5351,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:31","nodeType":"VariableDeclaration","scope":5357,"src":"634:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5350,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5353,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:31","nodeType":"VariableDeclaration","scope":5357,"src":"657:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5352,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5355,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:31","nodeType":"VariableDeclaration","scope":5357,"src":"682:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5354,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:31"},"src":"619:78:31"},{"documentation":{"id":5358,"nodeType":"StructuredDocumentation","src":"703:66:31","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":5363,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:31","nodeType":"FunctionDefinition","parameters":{"id":5359,"nodeType":"ParameterList","parameters":[],"src":"794:2:31"},"returnParameters":{"id":5362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5363,"src":"820:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5360,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:31"},"scope":5414,"src":"774:55:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5364,"nodeType":"StructuredDocumentation","src":"835:72:31","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":5371,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:31","nodeType":"FunctionDefinition","parameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"account","nameLocation":"939:7:31","nodeType":"VariableDeclaration","scope":5371,"src":"931:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5365,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:31"},"returnParameters":{"id":5370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5371,"src":"971:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5368,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:31"},"scope":5414,"src":"912:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5372,"nodeType":"StructuredDocumentation","src":"986:202:31","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":5381,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:31","nodeType":"FunctionDefinition","parameters":{"id":5377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5374,"mutability":"mutable","name":"to","nameLocation":"1219:2:31","nodeType":"VariableDeclaration","scope":5381,"src":"1211:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5373,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5376,"mutability":"mutable","name":"amount","nameLocation":"1231:6:31","nodeType":"VariableDeclaration","scope":5381,"src":"1223:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:31"},"returnParameters":{"id":5380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5381,"src":"1257:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5378,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:31"},"scope":5414,"src":"1193:70:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5382,"nodeType":"StructuredDocumentation","src":"1269:264:31","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":5391,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:31","nodeType":"FunctionDefinition","parameters":{"id":5387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5384,"mutability":"mutable","name":"owner","nameLocation":"1565:5:31","nodeType":"VariableDeclaration","scope":5391,"src":"1557:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5383,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5386,"mutability":"mutable","name":"spender","nameLocation":"1580:7:31","nodeType":"VariableDeclaration","scope":5391,"src":"1572:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5385,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:31"},"returnParameters":{"id":5390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5391,"src":"1612:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:31"},"scope":5414,"src":"1538:83:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5392,"nodeType":"StructuredDocumentation","src":"1627:642:31","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":5401,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:31","nodeType":"FunctionDefinition","parameters":{"id":5397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5394,"mutability":"mutable","name":"spender","nameLocation":"2299:7:31","nodeType":"VariableDeclaration","scope":5401,"src":"2291:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5393,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5396,"mutability":"mutable","name":"amount","nameLocation":"2316:6:31","nodeType":"VariableDeclaration","scope":5401,"src":"2308:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:31"},"returnParameters":{"id":5400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5401,"src":"2342:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5398,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:31"},"scope":5414,"src":"2274:74:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5402,"nodeType":"StructuredDocumentation","src":"2354:287:31","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":5413,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:31","nodeType":"FunctionDefinition","parameters":{"id":5409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"mutability":"mutable","name":"from","nameLocation":"2676:4:31","nodeType":"VariableDeclaration","scope":5413,"src":"2668:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5403,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5406,"mutability":"mutable","name":"to","nameLocation":"2690:2:31","nodeType":"VariableDeclaration","scope":5413,"src":"2682:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5405,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5408,"mutability":"mutable","name":"amount","nameLocation":"2702:6:31","nodeType":"VariableDeclaration","scope":5413,"src":"2694:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5407,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:31"},"returnParameters":{"id":5412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5413,"src":"2728:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5410,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:31"},"scope":5414,"src":"2646:88:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5415,"src":"202:2534:31","usedErrors":[],"usedEvents":[5348,5357]}],"src":"106:2631:31"},"id":31},"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol","exportedSymbols":{"Address":[6942],"Context":[6972],"ERC20":[5336],"ERC4626":[6041],"IERC20":[5414],"IERC20Metadata":[6066],"IERC20Permit":[6102],"IERC4626":[4333],"Math":[8749],"SafeERC20":[6478]},"id":6042,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5416,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:32"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":5417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6042,"sourceUnit":5337,"src":"143:22:32","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"../utils/SafeERC20.sol","id":5418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6042,"sourceUnit":6479,"src":"166:32:32","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4626.sol","file":"../../../interfaces/IERC4626.sol","id":5419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6042,"sourceUnit":4334,"src":"199:42:32","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"../../../utils/math/Math.sol","id":5420,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6042,"sourceUnit":8750,"src":"242:38:32","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5422,"name":"ERC20","nameLocations":["3134:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":5336,"src":"3134:5:32"},"id":5423,"nodeType":"InheritanceSpecifier","src":"3134:5:32"},{"baseName":{"id":5424,"name":"IERC4626","nameLocations":["3141:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"3141:8:32"},"id":5425,"nodeType":"InheritanceSpecifier","src":"3141:8:32"}],"canonicalName":"ERC4626","contractDependencies":[],"contractKind":"contract","documentation":{"id":5421,"nodeType":"StructuredDocumentation","src":"282:2822:32","text":" @dev Implementation of the ERC4626 \"Tokenized Vault Standard\" as defined in\n https://eips.ethereum.org/EIPS/eip-4626[EIP-4626].\n This extension allows the minting and burning of \"shares\" (represented using the ERC20 inheritance) in exchange for\n underlying \"assets\" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends\n the ERC20 standard. Any additional extensions included along it would affect the \"shares\" token represented by this\n contract and not the \"assets\" token which is an independent contract.\n [CAUTION]\n ====\n In empty (or nearly empty) ERC-4626 vaults, deposits are at high risk of being stolen through frontrunning\n with a \"donation\" to the vault that inflates the price of a share. This is variously known as a donation or inflation\n attack and is essentially a problem of slippage. Vault deployers can protect against this attack by making an initial\n deposit of a non-trivial amount of the asset, such that price manipulation becomes infeasible. Withdrawals may\n similarly be affected by slippage. Users can protect against this attack as well as unexpected slippage in general by\n verifying the amount received is as expected, using a wrapper that performs these checks such as\n https://github.com/fei-protocol/ERC4626#erc4626router-and-base[ERC4626Router].\n Since v4.9, this implementation uses virtual assets and shares to mitigate that risk. The `_decimalsOffset()`\n corresponds to an offset in the decimal representation between the underlying asset's decimals and the vault\n decimals. This offset also determines the rate of virtual shares to virtual assets in the vault, which itself\n determines the initial exchange rate. While not fully preventing the attack, analysis shows that the default offset\n (0) makes it non-profitable, as a result of the value being captured by the virtual shares (out of the attacker's\n donation) matching the attacker's expected gains. With a larger offset, the attack becomes orders of magnitude more\n expensive than it is profitable. More details about the underlying math can be found\n xref:erc4626.adoc#inflation-attack[here].\n The drawback of this approach is that the virtual shares do capture (a very small) part of the value being accrued\n to the vault. Also, if the vault experiences losses, the users try to exit the vault, the virtual shares and assets\n will cause the first user to exit to experience reduced losses in detriment to the last users that will experience\n bigger losses. Developers willing to revert back to the pre-v4.9 behavior just need to override the\n `_convertToShares` and `_convertToAssets` functions.\n To learn more, check out our xref:ROOT:erc4626.adoc[ERC-4626 guide].\n ====\n _Available since v4.7._"},"fullyImplemented":true,"id":6041,"linearizedBaseContracts":[6041,4333,5336,6066,5414,6972],"name":"ERC4626","nameLocation":"3123:7:32","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5428,"libraryName":{"id":5426,"name":"Math","nameLocations":["3162:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":8749,"src":"3162:4:32"},"nodeType":"UsingForDirective","src":"3156:23:32","typeName":{"id":5427,"name":"uint256","nodeType":"ElementaryTypeName","src":"3171:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":5431,"mutability":"immutable","name":"_asset","nameLocation":"3210:6:32","nodeType":"VariableDeclaration","scope":6041,"src":"3185:31:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":5430,"nodeType":"UserDefinedTypeName","pathNode":{"id":5429,"name":"IERC20","nameLocations":["3185:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"3185:6:32"},"referencedDeclaration":5414,"src":"3185:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"private"},{"constant":false,"id":5433,"mutability":"immutable","name":"_underlyingDecimals","nameLocation":"3246:19:32","nodeType":"VariableDeclaration","scope":6041,"src":"3222:43:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5432,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":5459,"nodeType":"Block","src":"3423:168:32","statements":[{"assignments":[5441,5443],"declarations":[{"constant":false,"id":5441,"mutability":"mutable","name":"success","nameLocation":"3439:7:32","nodeType":"VariableDeclaration","scope":5459,"src":"3434:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5440,"name":"bool","nodeType":"ElementaryTypeName","src":"3434:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5443,"mutability":"mutable","name":"assetDecimals","nameLocation":"3454:13:32","nodeType":"VariableDeclaration","scope":5459,"src":"3448:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5442,"name":"uint8","nodeType":"ElementaryTypeName","src":"3448:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5447,"initialValue":{"arguments":[{"id":5445,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5437,"src":"3492:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":5444,"name":"_tryGetAssetDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"3471:20:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC20_$5414_$returns$_t_bool_$_t_uint8_$","typeString":"function (contract IERC20) view returns (bool,uint8)"}},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3471:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint8_$","typeString":"tuple(bool,uint8)"}},"nodeType":"VariableDeclarationStatement","src":"3433:66:32"},{"expression":{"id":5453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5448,"name":"_underlyingDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"3509:19:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":5449,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"3531:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"3138","id":5451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3557:2:32","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"id":5452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3531:28:32","trueExpression":{"id":5450,"name":"assetDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"3541:13:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3509:50:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5454,"nodeType":"ExpressionStatement","src":"3509:50:32"},{"expression":{"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5455,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"3569:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5456,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5437,"src":"3578:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"src":"3569:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":5458,"nodeType":"ExpressionStatement","src":"3569:15:32"}]},"documentation":{"id":5434,"nodeType":"StructuredDocumentation","src":"3272:119:32","text":" @dev Set the underlying asset contract. This must be an ERC20-compatible contract (ERC20 or ERC777)."},"id":5460,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5437,"mutability":"mutable","name":"asset_","nameLocation":"3415:6:32","nodeType":"VariableDeclaration","scope":5460,"src":"3408:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":5436,"nodeType":"UserDefinedTypeName","pathNode":{"id":5435,"name":"IERC20","nameLocations":["3408:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"3408:6:32"},"referencedDeclaration":5414,"src":"3408:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"3407:15:32"},"returnParameters":{"id":5439,"nodeType":"ParameterList","parameters":[],"src":"3423:0:32"},"scope":6041,"src":"3396:195:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5526,"nodeType":"Block","src":"3814:466:32","statements":[{"assignments":[5472,5474],"declarations":[{"constant":false,"id":5472,"mutability":"mutable","name":"success","nameLocation":"3830:7:32","nodeType":"VariableDeclaration","scope":5526,"src":"3825:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5471,"name":"bool","nodeType":"ElementaryTypeName","src":"3825:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"encodedDecimals","nameLocation":"3852:15:32","nodeType":"VariableDeclaration","scope":5526,"src":"3839:28:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5473,"name":"bytes","nodeType":"ElementaryTypeName","src":"3839:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5487,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":5482,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"3934:14:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}},"id":5483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3949:8:32","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"3934:23:32","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$__$returns$_t_uint8_$","typeString":"function IERC20Metadata.decimals() view returns (uint8)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3958:8:32","memberName":"selector","nodeType":"MemberAccess","src":"3934:32:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3911:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3915:18:32","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3911:22:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":5477,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5464,"src":"3879:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":5476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5475,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:32","typeDescriptions":{}}},"id":5478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:15:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:10:32","memberName":"staticcall","nodeType":"MemberAccess","src":"3871:26:32","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:106:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3824:153:32"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5488,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"3991:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5489,"name":"encodedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"4002:15:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4018:6:32","memberName":"length","nodeType":"MemberAccess","src":"4002:22:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":5491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4028:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4002:28:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3991:39:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5521,"nodeType":"IfStatement","src":"3987:260:32","trueBody":{"id":5520,"nodeType":"Block","src":"4032:215:32","statements":[{"assignments":[5495],"declarations":[{"constant":false,"id":5495,"mutability":"mutable","name":"returnedDecimals","nameLocation":"4054:16:32","nodeType":"VariableDeclaration","scope":5520,"src":"4046:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5494,"name":"uint256","nodeType":"ElementaryTypeName","src":"4046:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5503,"initialValue":{"arguments":[{"id":5498,"name":"encodedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"4084:15:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4102:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5499,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:32","typeDescriptions":{}}}],"id":5501,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4101:9:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4073:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4077:6:32","memberName":"decode","nodeType":"MemberAccess","src":"4073:10:32","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4073:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4046:65:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5504,"name":"returnedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5495,"src":"4129:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":5507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4154:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5506,"name":"uint8","nodeType":"ElementaryTypeName","src":"4154:5:32","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":5505,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4149:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4149:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":5509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4161:3:32","memberName":"max","nodeType":"MemberAccess","src":"4149:15:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4129:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5519,"nodeType":"IfStatement","src":"4125:112:32","trueBody":{"id":5518,"nodeType":"Block","src":"4166:71:32","statements":[{"expression":{"components":[{"hexValue":"74727565","id":5511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4192:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"arguments":[{"id":5514,"name":"returnedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5495,"src":"4204:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4198:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5512,"name":"uint8","nodeType":"ElementaryTypeName","src":"4198:5:32","typeDescriptions":{}}},"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":5516,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4191:31:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint8_$","typeString":"tuple(bool,uint8)"}},"functionReturnParameters":5470,"id":5517,"nodeType":"Return","src":"4184:38:32"}]}}]}},{"expression":{"components":[{"hexValue":"66616c7365","id":5522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4264:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":5523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4271:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5524,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4263:10:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":5470,"id":5525,"nodeType":"Return","src":"4256:17:32"}]},"documentation":{"id":5461,"nodeType":"StructuredDocumentation","src":"3597:132:32","text":" @dev Attempts to fetch the asset decimals. A return value of false indicates that the attempt failed in some way."},"id":5527,"implemented":true,"kind":"function","modifiers":[],"name":"_tryGetAssetDecimals","nameLocation":"3743:20:32","nodeType":"FunctionDefinition","parameters":{"id":5465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5464,"mutability":"mutable","name":"asset_","nameLocation":"3771:6:32","nodeType":"VariableDeclaration","scope":5527,"src":"3764:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":5463,"nodeType":"UserDefinedTypeName","pathNode":{"id":5462,"name":"IERC20","nameLocations":["3764:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"3764:6:32"},"referencedDeclaration":5414,"src":"3764:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"3763:15:32"},"returnParameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5527,"src":"3801:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5466,"name":"bool","nodeType":"ElementaryTypeName","src":"3801:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5527,"src":"3807:5:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5468,"name":"uint8","nodeType":"ElementaryTypeName","src":"3807:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3800:13:32"},"scope":6041,"src":"3734:546:32","stateMutability":"view","virtual":false,"visibility":"private"},{"baseFunctions":[4824,6065],"body":{"id":5541,"nodeType":"Block","src":"4773:63:32","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5536,"name":"_underlyingDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"4790:19:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5537,"name":"_decimalsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6040,"src":"4812:15:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":5538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4790:39:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":5535,"id":5540,"nodeType":"Return","src":"4783:46:32"}]},"documentation":{"id":5528,"nodeType":"StructuredDocumentation","src":"4286:394:32","text":" @dev Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This\n \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the\n asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals.\n See {IERC20Metadata-decimals}."},"functionSelector":"313ce567","id":5542,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"4694:8:32","nodeType":"FunctionDefinition","overrides":{"id":5532,"nodeType":"OverrideSpecifier","overrides":[{"id":5530,"name":"IERC20Metadata","nameLocations":["4734:14:32"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"4734:14:32"},{"id":5531,"name":"ERC20","nameLocations":["4750:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":5336,"src":"4750:5:32"}],"src":"4725:31:32"},"parameters":{"id":5529,"nodeType":"ParameterList","parameters":[],"src":"4702:2:32"},"returnParameters":{"id":5535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5542,"src":"4766:5:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5533,"name":"uint8","nodeType":"ElementaryTypeName","src":"4766:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4765:7:32"},"scope":6041,"src":"4685:151:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4202],"body":{"id":5554,"nodeType":"Block","src":"4944:39:32","statements":[{"expression":{"arguments":[{"id":5551,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"4969:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":5550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4961:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5549,"name":"address","nodeType":"ElementaryTypeName","src":"4961:7:32","typeDescriptions":{}}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4961:15:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5548,"id":5553,"nodeType":"Return","src":"4954:22:32"}]},"documentation":{"id":5543,"nodeType":"StructuredDocumentation","src":"4842:33:32","text":"@dev See {IERC4626-asset}. "},"functionSelector":"38d52e0f","id":5555,"implemented":true,"kind":"function","modifiers":[],"name":"asset","nameLocation":"4889:5:32","nodeType":"FunctionDefinition","overrides":{"id":5545,"nodeType":"OverrideSpecifier","overrides":[],"src":"4917:8:32"},"parameters":{"id":5544,"nodeType":"ParameterList","parameters":[],"src":"4894:2:32"},"returnParameters":{"id":5548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5555,"src":"4935:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5546,"name":"address","nodeType":"ElementaryTypeName","src":"4935:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4934:9:32"},"scope":6041,"src":"4880:103:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4208],"body":{"id":5570,"nodeType":"Block","src":"5103:55:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":5566,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5145:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626_$6041","typeString":"contract ERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626_$6041","typeString":"contract ERC4626"}],"id":5565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5137:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5564,"name":"address","nodeType":"ElementaryTypeName","src":"5137:7:32","typeDescriptions":{}}},"id":5567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5562,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"5120:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5127:9:32","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"5120:16:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5120:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5561,"id":5569,"nodeType":"Return","src":"5113:38:32"}]},"documentation":{"id":5556,"nodeType":"StructuredDocumentation","src":"4989:39:32","text":"@dev See {IERC4626-totalAssets}. "},"functionSelector":"01e1d114","id":5571,"implemented":true,"kind":"function","modifiers":[],"name":"totalAssets","nameLocation":"5042:11:32","nodeType":"FunctionDefinition","overrides":{"id":5558,"nodeType":"OverrideSpecifier","overrides":[],"src":"5076:8:32"},"parameters":{"id":5557,"nodeType":"ParameterList","parameters":[],"src":"5053:2:32"},"returnParameters":{"id":5561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5571,"src":"5094:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5559,"name":"uint256","nodeType":"ElementaryTypeName","src":"5094:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5093:9:32"},"scope":6041,"src":"5033:125:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4216],"body":{"id":5587,"nodeType":"Block","src":"5300:68:32","statements":[{"expression":{"arguments":[{"id":5581,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"5334:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5582,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"5342:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5347:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"5342:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5356:4:32","memberName":"Down","nodeType":"MemberAccess","referencedDeclaration":7887,"src":"5342:18:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5580,"name":"_convertToShares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5317:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5317:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5579,"id":5586,"nodeType":"Return","src":"5310:51:32"}]},"documentation":{"id":5572,"nodeType":"StructuredDocumentation","src":"5164:43:32","text":"@dev See {IERC4626-convertToShares}. "},"functionSelector":"c6e6f592","id":5588,"implemented":true,"kind":"function","modifiers":[],"name":"convertToShares","nameLocation":"5221:15:32","nodeType":"FunctionDefinition","overrides":{"id":5576,"nodeType":"OverrideSpecifier","overrides":[],"src":"5273:8:32"},"parameters":{"id":5575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"mutability":"mutable","name":"assets","nameLocation":"5245:6:32","nodeType":"VariableDeclaration","scope":5588,"src":"5237:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5573,"name":"uint256","nodeType":"ElementaryTypeName","src":"5237:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5236:16:32"},"returnParameters":{"id":5579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5588,"src":"5291:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5577,"name":"uint256","nodeType":"ElementaryTypeName","src":"5291:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5290:9:32"},"scope":6041,"src":"5212:156:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4224],"body":{"id":5604,"nodeType":"Block","src":"5510:68:32","statements":[{"expression":{"arguments":[{"id":5598,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"5544:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5599,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"5552:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5557:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"5552:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5566:4:32","memberName":"Down","nodeType":"MemberAccess","referencedDeclaration":7887,"src":"5552:18:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5597,"name":"_convertToAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"5527:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5527:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5596,"id":5603,"nodeType":"Return","src":"5520:51:32"}]},"documentation":{"id":5589,"nodeType":"StructuredDocumentation","src":"5374:43:32","text":"@dev See {IERC4626-convertToAssets}. "},"functionSelector":"07a2d13a","id":5605,"implemented":true,"kind":"function","modifiers":[],"name":"convertToAssets","nameLocation":"5431:15:32","nodeType":"FunctionDefinition","overrides":{"id":5593,"nodeType":"OverrideSpecifier","overrides":[],"src":"5483:8:32"},"parameters":{"id":5592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5591,"mutability":"mutable","name":"shares","nameLocation":"5455:6:32","nodeType":"VariableDeclaration","scope":5605,"src":"5447:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5590,"name":"uint256","nodeType":"ElementaryTypeName","src":"5447:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5446:16:32"},"returnParameters":{"id":5596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5605,"src":"5501:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5594,"name":"uint256","nodeType":"ElementaryTypeName","src":"5501:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5500:9:32"},"scope":6041,"src":"5422:156:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4232],"body":{"id":5620,"nodeType":"Block","src":"5703:41:32","statements":[{"expression":{"expression":{"arguments":[{"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5725:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5615,"name":"uint256","nodeType":"ElementaryTypeName","src":"5725:7:32","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5614,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5720:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5734:3:32","memberName":"max","nodeType":"MemberAccess","src":"5720:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5613,"id":5619,"nodeType":"Return","src":"5713:24:32"}]},"documentation":{"id":5606,"nodeType":"StructuredDocumentation","src":"5584:38:32","text":"@dev See {IERC4626-maxDeposit}. "},"functionSelector":"402d267d","id":5621,"implemented":true,"kind":"function","modifiers":[],"name":"maxDeposit","nameLocation":"5636:10:32","nodeType":"FunctionDefinition","overrides":{"id":5610,"nodeType":"OverrideSpecifier","overrides":[],"src":"5676:8:32"},"parameters":{"id":5609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5621,"src":"5647:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5607,"name":"address","nodeType":"ElementaryTypeName","src":"5647:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5646:9:32"},"returnParameters":{"id":5613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5621,"src":"5694:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5611,"name":"uint256","nodeType":"ElementaryTypeName","src":"5694:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5693:9:32"},"scope":6041,"src":"5627:117:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4258],"body":{"id":5636,"nodeType":"Block","src":"5863:41:32","statements":[{"expression":{"expression":{"arguments":[{"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5885:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5631,"name":"uint256","nodeType":"ElementaryTypeName","src":"5885:7:32","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5630,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5880:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5880:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5894:3:32","memberName":"max","nodeType":"MemberAccess","src":"5880:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5629,"id":5635,"nodeType":"Return","src":"5873:24:32"}]},"documentation":{"id":5622,"nodeType":"StructuredDocumentation","src":"5750:35:32","text":"@dev See {IERC4626-maxMint}. "},"functionSelector":"c63d75b6","id":5637,"implemented":true,"kind":"function","modifiers":[],"name":"maxMint","nameLocation":"5799:7:32","nodeType":"FunctionDefinition","overrides":{"id":5626,"nodeType":"OverrideSpecifier","overrides":[],"src":"5836:8:32"},"parameters":{"id":5625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5637,"src":"5807:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5623,"name":"address","nodeType":"ElementaryTypeName","src":"5807:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5806:9:32"},"returnParameters":{"id":5629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5637,"src":"5854:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5627,"name":"uint256","nodeType":"ElementaryTypeName","src":"5854:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5853:9:32"},"scope":6041,"src":"5790:114:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4284],"body":{"id":5655,"nodeType":"Block","src":"6037:78:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":5648,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5640,"src":"6081:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5647,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"6071:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6071:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5650,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"6089:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6094:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"6089:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6103:4:32","memberName":"Down","nodeType":"MemberAccess","referencedDeclaration":7887,"src":"6089:18:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5646,"name":"_convertToAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"6054:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6054:54:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5645,"id":5654,"nodeType":"Return","src":"6047:61:32"}]},"documentation":{"id":5638,"nodeType":"StructuredDocumentation","src":"5910:39:32","text":"@dev See {IERC4626-maxWithdraw}. "},"functionSelector":"ce96cb77","id":5656,"implemented":true,"kind":"function","modifiers":[],"name":"maxWithdraw","nameLocation":"5963:11:32","nodeType":"FunctionDefinition","overrides":{"id":5642,"nodeType":"OverrideSpecifier","overrides":[],"src":"6010:8:32"},"parameters":{"id":5641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"owner","nameLocation":"5983:5:32","nodeType":"VariableDeclaration","scope":5656,"src":"5975:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5639,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5974:15:32"},"returnParameters":{"id":5645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5656,"src":"6028:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5643,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6027:9:32"},"scope":6041,"src":"5954:161:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4312],"body":{"id":5669,"nodeType":"Block","src":"6244:40:32","statements":[{"expression":{"arguments":[{"id":5666,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"6271:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5665,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"6261:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6261:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5664,"id":5668,"nodeType":"Return","src":"6254:23:32"}]},"documentation":{"id":5657,"nodeType":"StructuredDocumentation","src":"6121:37:32","text":"@dev See {IERC4626-maxRedeem}. "},"functionSelector":"d905777e","id":5670,"implemented":true,"kind":"function","modifiers":[],"name":"maxRedeem","nameLocation":"6172:9:32","nodeType":"FunctionDefinition","overrides":{"id":5661,"nodeType":"OverrideSpecifier","overrides":[],"src":"6217:8:32"},"parameters":{"id":5660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5659,"mutability":"mutable","name":"owner","nameLocation":"6190:5:32","nodeType":"VariableDeclaration","scope":5670,"src":"6182:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5658,"name":"address","nodeType":"ElementaryTypeName","src":"6182:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6181:15:32"},"returnParameters":{"id":5664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5670,"src":"6235:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5662,"name":"uint256","nodeType":"ElementaryTypeName","src":"6235:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6234:9:32"},"scope":6041,"src":"6163:121:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4240],"body":{"id":5686,"nodeType":"Block","src":"6424:68:32","statements":[{"expression":{"arguments":[{"id":5680,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5673,"src":"6458:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5681,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"6466:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6471:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"6466:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6480:4:32","memberName":"Down","nodeType":"MemberAccess","referencedDeclaration":7887,"src":"6466:18:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5679,"name":"_convertToShares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"6441:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5678,"id":5685,"nodeType":"Return","src":"6434:51:32"}]},"documentation":{"id":5671,"nodeType":"StructuredDocumentation","src":"6290:42:32","text":"@dev See {IERC4626-previewDeposit}. "},"functionSelector":"ef8b30f7","id":5687,"implemented":true,"kind":"function","modifiers":[],"name":"previewDeposit","nameLocation":"6346:14:32","nodeType":"FunctionDefinition","overrides":{"id":5675,"nodeType":"OverrideSpecifier","overrides":[],"src":"6397:8:32"},"parameters":{"id":5674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"assets","nameLocation":"6369:6:32","nodeType":"VariableDeclaration","scope":5687,"src":"6361:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5672,"name":"uint256","nodeType":"ElementaryTypeName","src":"6361:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6360:16:32"},"returnParameters":{"id":5678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5687,"src":"6415:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5676,"name":"uint256","nodeType":"ElementaryTypeName","src":"6415:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6414:9:32"},"scope":6041,"src":"6337:155:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4266],"body":{"id":5703,"nodeType":"Block","src":"6626:66:32","statements":[{"expression":{"arguments":[{"id":5697,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5690,"src":"6660:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5698,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"6668:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6673:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"6668:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6682:2:32","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"6668:16:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5696,"name":"_convertToAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"6643:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6643:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5695,"id":5702,"nodeType":"Return","src":"6636:49:32"}]},"documentation":{"id":5688,"nodeType":"StructuredDocumentation","src":"6498:39:32","text":"@dev See {IERC4626-previewMint}. "},"functionSelector":"b3d7f6b9","id":5704,"implemented":true,"kind":"function","modifiers":[],"name":"previewMint","nameLocation":"6551:11:32","nodeType":"FunctionDefinition","overrides":{"id":5692,"nodeType":"OverrideSpecifier","overrides":[],"src":"6599:8:32"},"parameters":{"id":5691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5690,"mutability":"mutable","name":"shares","nameLocation":"6571:6:32","nodeType":"VariableDeclaration","scope":5704,"src":"6563:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5689,"name":"uint256","nodeType":"ElementaryTypeName","src":"6563:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6562:16:32"},"returnParameters":{"id":5695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5704,"src":"6617:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5693,"name":"uint256","nodeType":"ElementaryTypeName","src":"6617:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6616:9:32"},"scope":6041,"src":"6542:150:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4292],"body":{"id":5720,"nodeType":"Block","src":"6834:66:32","statements":[{"expression":{"arguments":[{"id":5714,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5707,"src":"6868:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5715,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"6876:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6881:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"6876:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6890:2:32","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"6876:16:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5713,"name":"_convertToShares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"6851:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6851:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5712,"id":5719,"nodeType":"Return","src":"6844:49:32"}]},"documentation":{"id":5705,"nodeType":"StructuredDocumentation","src":"6698:43:32","text":"@dev See {IERC4626-previewWithdraw}. "},"functionSelector":"0a28a477","id":5721,"implemented":true,"kind":"function","modifiers":[],"name":"previewWithdraw","nameLocation":"6755:15:32","nodeType":"FunctionDefinition","overrides":{"id":5709,"nodeType":"OverrideSpecifier","overrides":[],"src":"6807:8:32"},"parameters":{"id":5708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5707,"mutability":"mutable","name":"assets","nameLocation":"6779:6:32","nodeType":"VariableDeclaration","scope":5721,"src":"6771:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5706,"name":"uint256","nodeType":"ElementaryTypeName","src":"6771:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6770:16:32"},"returnParameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5721,"src":"6825:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5710,"name":"uint256","nodeType":"ElementaryTypeName","src":"6825:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6824:9:32"},"scope":6041,"src":"6746:154:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4320],"body":{"id":5737,"nodeType":"Block","src":"7038:68:32","statements":[{"expression":{"arguments":[{"id":5731,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5724,"src":"7072:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5732,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"7080:4:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":5733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7085:8:32","memberName":"Rounding","nodeType":"MemberAccess","referencedDeclaration":7890,"src":"7080:13:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":5734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7094:4:32","memberName":"Down","nodeType":"MemberAccess","referencedDeclaration":7887,"src":"7080:18:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"id":5730,"name":"_convertToAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"7055:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$","typeString":"function (uint256,enum Math.Rounding) view returns (uint256)"}},"id":5735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7055:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5729,"id":5736,"nodeType":"Return","src":"7048:51:32"}]},"documentation":{"id":5722,"nodeType":"StructuredDocumentation","src":"6906:41:32","text":"@dev See {IERC4626-previewRedeem}. "},"functionSelector":"4cdad506","id":5738,"implemented":true,"kind":"function","modifiers":[],"name":"previewRedeem","nameLocation":"6961:13:32","nodeType":"FunctionDefinition","overrides":{"id":5726,"nodeType":"OverrideSpecifier","overrides":[],"src":"7011:8:32"},"parameters":{"id":5725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5724,"mutability":"mutable","name":"shares","nameLocation":"6983:6:32","nodeType":"VariableDeclaration","scope":5738,"src":"6975:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5723,"name":"uint256","nodeType":"ElementaryTypeName","src":"6975:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6974:16:32"},"returnParameters":{"id":5729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5728,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5738,"src":"7029:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5727,"name":"uint256","nodeType":"ElementaryTypeName","src":"7029:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7028:9:32"},"scope":6041,"src":"6952:154:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4250],"body":{"id":5774,"nodeType":"Block","src":"7245:222:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5750,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5741,"src":"7263:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":5752,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5743,"src":"7284:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5751,"name":"maxDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5621,"src":"7273:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7273:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7263:30:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243343632363a206465706f736974206d6f7265207468616e206d6178","id":5755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7295:32:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_942dfdb1d5d5ae526782b9f85d1470d0ba794a7c694ad01b5b8d1ba2521ed1a1","typeString":"literal_string \"ERC4626: deposit more than max\""},"value":"ERC4626: deposit more than max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_942dfdb1d5d5ae526782b9f85d1470d0ba794a7c694ad01b5b8d1ba2521ed1a1","typeString":"literal_string \"ERC4626: deposit more than max\""}],"id":5749,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7255:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7255:73:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5757,"nodeType":"ExpressionStatement","src":"7255:73:32"},{"assignments":[5759],"declarations":[{"constant":false,"id":5759,"mutability":"mutable","name":"shares","nameLocation":"7347:6:32","nodeType":"VariableDeclaration","scope":5774,"src":"7339:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5758,"name":"uint256","nodeType":"ElementaryTypeName","src":"7339:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5763,"initialValue":{"arguments":[{"id":5761,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5741,"src":"7371:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5760,"name":"previewDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"7356:14:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7339:39:32"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5765,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"7397:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7397:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5767,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5743,"src":"7411:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5768,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5741,"src":"7421:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5769,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5759,"src":"7429:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5764,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"7388:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":5770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7388:48:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5771,"nodeType":"ExpressionStatement","src":"7388:48:32"},{"expression":{"id":5772,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5759,"src":"7454:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5748,"id":5773,"nodeType":"Return","src":"7447:13:32"}]},"documentation":{"id":5739,"nodeType":"StructuredDocumentation","src":"7112:35:32","text":"@dev See {IERC4626-deposit}. "},"functionSelector":"6e553f65","id":5775,"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"7161:7:32","nodeType":"FunctionDefinition","overrides":{"id":5745,"nodeType":"OverrideSpecifier","overrides":[],"src":"7218:8:32"},"parameters":{"id":5744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5741,"mutability":"mutable","name":"assets","nameLocation":"7177:6:32","nodeType":"VariableDeclaration","scope":5775,"src":"7169:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5740,"name":"uint256","nodeType":"ElementaryTypeName","src":"7169:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5743,"mutability":"mutable","name":"receiver","nameLocation":"7193:8:32","nodeType":"VariableDeclaration","scope":5775,"src":"7185:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5742,"name":"address","nodeType":"ElementaryTypeName","src":"7185:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7168:34:32"},"returnParameters":{"id":5748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5775,"src":"7236:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5746,"name":"uint256","nodeType":"ElementaryTypeName","src":"7236:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7235:9:32"},"scope":6041,"src":"7152:315:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4276],"body":{"id":5811,"nodeType":"Block","src":"7824:213:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5787,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"7842:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":5789,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5780,"src":"7860:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5788,"name":"maxMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"7852:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7852:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7842:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243343632363a206d696e74206d6f7265207468616e206d6178","id":5792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:29:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4a897ed07dc1191e15e1ac5726d86067d87f89bebeded2b310bdf1e25a3dac3","typeString":"literal_string \"ERC4626: mint more than max\""},"value":"ERC4626: mint more than max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4a897ed07dc1191e15e1ac5726d86067d87f89bebeded2b310bdf1e25a3dac3","typeString":"literal_string \"ERC4626: mint more than max\""}],"id":5786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7834:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7834:67:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5794,"nodeType":"ExpressionStatement","src":"7834:67:32"},{"assignments":[5796],"declarations":[{"constant":false,"id":5796,"mutability":"mutable","name":"assets","nameLocation":"7920:6:32","nodeType":"VariableDeclaration","scope":5811,"src":"7912:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5795,"name":"uint256","nodeType":"ElementaryTypeName","src":"7912:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5800,"initialValue":{"arguments":[{"id":5798,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"7941:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5797,"name":"previewMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5704,"src":"7929:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7929:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7912:36:32"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5802,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"7967:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7967:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5804,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5780,"src":"7981:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5805,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"7991:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5806,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"7999:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5801,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"7958:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7958:48:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5808,"nodeType":"ExpressionStatement","src":"7958:48:32"},{"expression":{"id":5809,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"8024:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5785,"id":5810,"nodeType":"Return","src":"8017:13:32"}]},"documentation":{"id":5776,"nodeType":"StructuredDocumentation","src":"7473:256:32","text":"@dev See {IERC4626-mint}.\n As opposed to {deposit}, minting is allowed even if the vault is in a state where the price of a share is zero.\n In this case, the shares will be minted without requiring any assets to be deposited."},"functionSelector":"94bf804d","id":5812,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"7743:4:32","nodeType":"FunctionDefinition","overrides":{"id":5782,"nodeType":"OverrideSpecifier","overrides":[],"src":"7797:8:32"},"parameters":{"id":5781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5778,"mutability":"mutable","name":"shares","nameLocation":"7756:6:32","nodeType":"VariableDeclaration","scope":5812,"src":"7748:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7748:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5780,"mutability":"mutable","name":"receiver","nameLocation":"7772:8:32","nodeType":"VariableDeclaration","scope":5812,"src":"7764:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5779,"name":"address","nodeType":"ElementaryTypeName","src":"7764:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7747:34:32"},"returnParameters":{"id":5785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5812,"src":"7815:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5783,"name":"uint256","nodeType":"ElementaryTypeName","src":"7815:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7814:9:32"},"scope":6041,"src":"7734:303:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4304],"body":{"id":5851,"nodeType":"Block","src":"8193:230:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5826,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"8211:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":5828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5819,"src":"8233:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5827,"name":"maxWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5656,"src":"8221:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8221:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8211:28:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243343632363a207769746864726177206d6f7265207468616e206d6178","id":5831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8241:33:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d33bd82b6352ef75960e453c6162657943d72f718df3c8a607eeb1427f0aa42","typeString":"literal_string \"ERC4626: withdraw more than max\""},"value":"ERC4626: withdraw more than max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d33bd82b6352ef75960e453c6162657943d72f718df3c8a607eeb1427f0aa42","typeString":"literal_string \"ERC4626: withdraw more than max\""}],"id":5825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8203:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8203:72:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5833,"nodeType":"ExpressionStatement","src":"8203:72:32"},{"assignments":[5835],"declarations":[{"constant":false,"id":5835,"mutability":"mutable","name":"shares","nameLocation":"8294:6:32","nodeType":"VariableDeclaration","scope":5851,"src":"8286:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5834,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5839,"initialValue":{"arguments":[{"id":5837,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"8319:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5836,"name":"previewWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5721,"src":"8303:15:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8303:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8286:40:32"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5841,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"8346:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8346:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5843,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"8360:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5844,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5819,"src":"8370:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5845,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"8377:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5846,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5835,"src":"8385:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5840,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6032,"src":"8336:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8336:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5848,"nodeType":"ExpressionStatement","src":"8336:56:32"},{"expression":{"id":5849,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5835,"src":"8410:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5824,"id":5850,"nodeType":"Return","src":"8403:13:32"}]},"documentation":{"id":5813,"nodeType":"StructuredDocumentation","src":"8043:36:32","text":"@dev See {IERC4626-withdraw}. "},"functionSelector":"b460af94","id":5852,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"8093:8:32","nodeType":"FunctionDefinition","overrides":{"id":5821,"nodeType":"OverrideSpecifier","overrides":[],"src":"8166:8:32"},"parameters":{"id":5820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5815,"mutability":"mutable","name":"assets","nameLocation":"8110:6:32","nodeType":"VariableDeclaration","scope":5852,"src":"8102:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5814,"name":"uint256","nodeType":"ElementaryTypeName","src":"8102:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5817,"mutability":"mutable","name":"receiver","nameLocation":"8126:8:32","nodeType":"VariableDeclaration","scope":5852,"src":"8118:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5816,"name":"address","nodeType":"ElementaryTypeName","src":"8118:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5819,"mutability":"mutable","name":"owner","nameLocation":"8144:5:32","nodeType":"VariableDeclaration","scope":5852,"src":"8136:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5818,"name":"address","nodeType":"ElementaryTypeName","src":"8136:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8101:49:32"},"returnParameters":{"id":5824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5852,"src":"8184:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5822,"name":"uint256","nodeType":"ElementaryTypeName","src":"8184:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8183:9:32"},"scope":6041,"src":"8084:339:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4332],"body":{"id":5891,"nodeType":"Block","src":"8575:224:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5866,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"8593:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":5868,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"8613:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5867,"name":"maxRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"8603:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8603:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8593:26:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243343632363a2072656465656d206d6f7265207468616e206d6178","id":5871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8621:31:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cf75848883fee8cd3a46e6e14bbbd331bc8d0caaef08fbe607c62e5fba35c6d","typeString":"literal_string \"ERC4626: redeem more than max\""},"value":"ERC4626: redeem more than max"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cf75848883fee8cd3a46e6e14bbbd331bc8d0caaef08fbe607c62e5fba35c6d","typeString":"literal_string \"ERC4626: redeem more than max\""}],"id":5865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:68:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5873,"nodeType":"ExpressionStatement","src":"8585:68:32"},{"assignments":[5875],"declarations":[{"constant":false,"id":5875,"mutability":"mutable","name":"assets","nameLocation":"8672:6:32","nodeType":"VariableDeclaration","scope":5891,"src":"8664:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5874,"name":"uint256","nodeType":"ElementaryTypeName","src":"8664:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5879,"initialValue":{"arguments":[{"id":5877,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"8695:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5876,"name":"previewRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5738,"src":"8681:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8681:21:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8664:38:32"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5881,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6954,"src":"8722:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8722:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5883,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"8736:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5884,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"8746:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5885,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"8753:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5886,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"8761:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5880,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6032,"src":"8712:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8712:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5888,"nodeType":"ExpressionStatement","src":"8712:56:32"},{"expression":{"id":5889,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"8786:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5864,"id":5890,"nodeType":"Return","src":"8779:13:32"}]},"documentation":{"id":5853,"nodeType":"StructuredDocumentation","src":"8429:34:32","text":"@dev See {IERC4626-redeem}. "},"functionSelector":"ba087652","id":5892,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nameLocation":"8477:6:32","nodeType":"FunctionDefinition","overrides":{"id":5861,"nodeType":"OverrideSpecifier","overrides":[],"src":"8548:8:32"},"parameters":{"id":5860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5855,"mutability":"mutable","name":"shares","nameLocation":"8492:6:32","nodeType":"VariableDeclaration","scope":5892,"src":"8484:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5854,"name":"uint256","nodeType":"ElementaryTypeName","src":"8484:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"receiver","nameLocation":"8508:8:32","nodeType":"VariableDeclaration","scope":5892,"src":"8500:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5856,"name":"address","nodeType":"ElementaryTypeName","src":"8500:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5859,"mutability":"mutable","name":"owner","nameLocation":"8526:5:32","nodeType":"VariableDeclaration","scope":5892,"src":"8518:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5858,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8483:49:32"},"returnParameters":{"id":5864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5892,"src":"8566:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5862,"name":"uint256","nodeType":"ElementaryTypeName","src":"8566:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8565:9:32"},"scope":6041,"src":"8468:331:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5919,"nodeType":"Block","src":"9029:107:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5905,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4834,"src":"9060:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9060:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9076:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5908,"name":"_decimalsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6040,"src":"9082:15:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":5909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9082:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9076:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9060:39:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5912,"name":"totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"9101:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9101:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9117:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9101:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5916,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5898,"src":"9120:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"expression":{"id":5903,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"9046:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9053:6:32","memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":8141,"src":"9046:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256,enum Math.Rounding) pure returns (uint256)"}},"id":5917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9046:83:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5902,"id":5918,"nodeType":"Return","src":"9039:90:32"}]},"documentation":{"id":5893,"nodeType":"StructuredDocumentation","src":"8805:113:32","text":" @dev Internal conversion function (from assets to shares) with support for rounding direction."},"id":5920,"implemented":true,"kind":"function","modifiers":[],"name":"_convertToShares","nameLocation":"8932:16:32","nodeType":"FunctionDefinition","parameters":{"id":5899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5895,"mutability":"mutable","name":"assets","nameLocation":"8957:6:32","nodeType":"VariableDeclaration","scope":5920,"src":"8949:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5894,"name":"uint256","nodeType":"ElementaryTypeName","src":"8949:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5898,"mutability":"mutable","name":"rounding","nameLocation":"8979:8:32","nodeType":"VariableDeclaration","scope":5920,"src":"8965:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":5897,"nodeType":"UserDefinedTypeName","pathNode":{"id":5896,"name":"Math.Rounding","nameLocations":["8965:4:32","8970:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"8965:13:32"},"referencedDeclaration":7890,"src":"8965:13:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8948:40:32"},"returnParameters":{"id":5902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5920,"src":"9020:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5900,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9019:9:32"},"scope":6041,"src":"8923:213:32","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5947,"nodeType":"Block","src":"9366:107:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5933,"name":"totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"9397:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9397:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9413:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9397:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5937,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4834,"src":"9416:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9416:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9432:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5940,"name":"_decimalsOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6040,"src":"9438:15:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":5941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9432:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9416:39:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5944,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5926,"src":"9457:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}],"expression":{"id":5931,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5923,"src":"9383:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9390:6:32","memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":8141,"src":"9383:13:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Rounding_$7890_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256,enum Math.Rounding) pure returns (uint256)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:83:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5930,"id":5946,"nodeType":"Return","src":"9376:90:32"}]},"documentation":{"id":5921,"nodeType":"StructuredDocumentation","src":"9142:113:32","text":" @dev Internal conversion function (from shares to assets) with support for rounding direction."},"id":5948,"implemented":true,"kind":"function","modifiers":[],"name":"_convertToAssets","nameLocation":"9269:16:32","nodeType":"FunctionDefinition","parameters":{"id":5927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5923,"mutability":"mutable","name":"shares","nameLocation":"9294:6:32","nodeType":"VariableDeclaration","scope":5948,"src":"9286:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5922,"name":"uint256","nodeType":"ElementaryTypeName","src":"9286:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5926,"mutability":"mutable","name":"rounding","nameLocation":"9316:8:32","nodeType":"VariableDeclaration","scope":5948,"src":"9302:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":5925,"nodeType":"UserDefinedTypeName","pathNode":{"id":5924,"name":"Math.Rounding","nameLocations":["9302:4:32","9307:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"9302:13:32"},"referencedDeclaration":7890,"src":"9302:13:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9285:40:32"},"returnParameters":{"id":5930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5948,"src":"9357:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5928,"name":"uint256","nodeType":"ElementaryTypeName","src":"9357:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9356:9:32"},"scope":6041,"src":"9260:213:32","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5984,"nodeType":"Block","src":"9638:729:32","statements":[{"expression":{"arguments":[{"id":5963,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"10232:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"id":5964,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"10240:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5967,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10256:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626_$6041","typeString":"contract ERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626_$6041","typeString":"contract ERC4626"}],"id":5966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10248:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5965,"name":"address","nodeType":"ElementaryTypeName","src":"10248:7:32","typeDescriptions":{}}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10248:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5969,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"10263:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5960,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"10205:9:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeERC20_$6478_$","typeString":"type(library SafeERC20)"}},"id":5962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10215:16:32","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"10205:26:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10205:65:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5971,"nodeType":"ExpressionStatement","src":"10205:65:32"},{"expression":{"arguments":[{"id":5973,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"10286:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5974,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5957,"src":"10296:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5972,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"10280:5:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10280:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5976,"nodeType":"ExpressionStatement","src":"10280:23:32"},{"eventCall":{"arguments":[{"id":5978,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"10327:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5979,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"10335:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5980,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"10345:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5981,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5957,"src":"10353:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5977,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4184,"src":"10319:7:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":5982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10319:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5983,"nodeType":"EmitStatement","src":"10314:46:32"}]},"documentation":{"id":5949,"nodeType":"StructuredDocumentation","src":"9479:53:32","text":" @dev Deposit/mint common workflow."},"id":5985,"implemented":true,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"9546:8:32","nodeType":"FunctionDefinition","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5951,"mutability":"mutable","name":"caller","nameLocation":"9563:6:32","nodeType":"VariableDeclaration","scope":5985,"src":"9555:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5950,"name":"address","nodeType":"ElementaryTypeName","src":"9555:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5953,"mutability":"mutable","name":"receiver","nameLocation":"9579:8:32","nodeType":"VariableDeclaration","scope":5985,"src":"9571:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5952,"name":"address","nodeType":"ElementaryTypeName","src":"9571:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"assets","nameLocation":"9597:6:32","nodeType":"VariableDeclaration","scope":5985,"src":"9589:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5954,"name":"uint256","nodeType":"ElementaryTypeName","src":"9589:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5957,"mutability":"mutable","name":"shares","nameLocation":"9613:6:32","nodeType":"VariableDeclaration","scope":5985,"src":"9605:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5956,"name":"uint256","nodeType":"ElementaryTypeName","src":"9605:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9554:66:32"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[],"src":"9638:0:32"},"scope":6041,"src":"9537:830:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6031,"nodeType":"Block","src":"10597:751:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5999,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5988,"src":"10611:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6000,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"10621:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10611:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6009,"nodeType":"IfStatement","src":"10607:84:32","trueBody":{"id":6008,"nodeType":"Block","src":"10628:63:32","statements":[{"expression":{"arguments":[{"id":6003,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"10658:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6004,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5988,"src":"10665:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6005,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"10673:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6002,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"10642:15:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10642:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6007,"nodeType":"ExpressionStatement","src":"10642:38:32"}]}},{"expression":{"arguments":[{"id":6011,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"11204:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6012,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"11211:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6010,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"11198:5:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11198:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6014,"nodeType":"ExpressionStatement","src":"11198:20:32"},{"expression":{"arguments":[{"id":6018,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5431,"src":"11251:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"id":6019,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"11259:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6020,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"11269:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6015,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"11228:9:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeERC20_$6478_$","typeString":"type(library SafeERC20)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11238:12:32","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6135,"src":"11228:22:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":6021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11228:48:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6022,"nodeType":"ExpressionStatement","src":"11228:48:32"},{"eventCall":{"arguments":[{"id":6024,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5988,"src":"11301:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6025,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"11309:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6026,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"11319:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6027,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"11326:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6028,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"11334:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6023,"name":"Withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4196,"src":"11292:8:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11292:49:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6030,"nodeType":"EmitStatement","src":"11287:54:32"}]},"documentation":{"id":5986,"nodeType":"StructuredDocumentation","src":"10373:56:32","text":" @dev Withdraw/redeem common workflow."},"id":6032,"implemented":true,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"10443:9:32","nodeType":"FunctionDefinition","parameters":{"id":5997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5988,"mutability":"mutable","name":"caller","nameLocation":"10470:6:32","nodeType":"VariableDeclaration","scope":6032,"src":"10462:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5987,"name":"address","nodeType":"ElementaryTypeName","src":"10462:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5990,"mutability":"mutable","name":"receiver","nameLocation":"10494:8:32","nodeType":"VariableDeclaration","scope":6032,"src":"10486:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5989,"name":"address","nodeType":"ElementaryTypeName","src":"10486:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5992,"mutability":"mutable","name":"owner","nameLocation":"10520:5:32","nodeType":"VariableDeclaration","scope":6032,"src":"10512:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5991,"name":"address","nodeType":"ElementaryTypeName","src":"10512:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5994,"mutability":"mutable","name":"assets","nameLocation":"10543:6:32","nodeType":"VariableDeclaration","scope":6032,"src":"10535:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5993,"name":"uint256","nodeType":"ElementaryTypeName","src":"10535:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5996,"mutability":"mutable","name":"shares","nameLocation":"10567:6:32","nodeType":"VariableDeclaration","scope":6032,"src":"10559:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5995,"name":"uint256","nodeType":"ElementaryTypeName","src":"10559:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10452:127:32"},"returnParameters":{"id":5998,"nodeType":"ParameterList","parameters":[],"src":"10597:0:32"},"scope":6041,"src":"10434:914:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6039,"nodeType":"Block","src":"11419:25:32","statements":[{"expression":{"hexValue":"30","id":6037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11436:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":6036,"id":6038,"nodeType":"Return","src":"11429:8:32"}]},"id":6040,"implemented":true,"kind":"function","modifiers":[],"name":"_decimalsOffset","nameLocation":"11363:15:32","nodeType":"FunctionDefinition","parameters":{"id":6033,"nodeType":"ParameterList","parameters":[],"src":"11378:2:32"},"returnParameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6040,"src":"11412:5:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6034,"name":"uint8","nodeType":"ElementaryTypeName","src":"11412:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"11411:7:32"},"scope":6041,"src":"11354:90:32","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":6042,"src":"3105:8341:32","usedErrors":[],"usedEvents":[4184,4196,5348,5357]}],"src":"118:11329:32"},"id":32},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[5414],"IERC20Metadata":[6066]},"id":6067,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6043,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:33"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6044,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6067,"sourceUnit":5415,"src":"135:23:33","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6046,"name":"IERC20","nameLocations":["305:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"305:6:33"},"id":6047,"nodeType":"InheritanceSpecifier","src":"305:6:33"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6045,"nodeType":"StructuredDocumentation","src":"160:116:33","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":6066,"linearizedBaseContracts":[6066,5414],"name":"IERC20Metadata","nameLocation":"287:14:33","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6048,"nodeType":"StructuredDocumentation","src":"318:54:33","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":6053,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:33","nodeType":"FunctionDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[],"src":"390:2:33"},"returnParameters":{"id":6052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6053,"src":"416:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6050,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:33"},"scope":6066,"src":"377:54:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6054,"nodeType":"StructuredDocumentation","src":"437:56:33","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":6059,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:33","nodeType":"FunctionDefinition","parameters":{"id":6055,"nodeType":"ParameterList","parameters":[],"src":"513:2:33"},"returnParameters":{"id":6058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6059,"src":"539:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6056,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:33"},"scope":6066,"src":"498:56:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6060,"nodeType":"StructuredDocumentation","src":"560:65:33","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":6065,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:33","nodeType":"FunctionDefinition","parameters":{"id":6061,"nodeType":"ParameterList","parameters":[],"src":"647:2:33"},"returnParameters":{"id":6064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6065,"src":"673:5:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6062,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:33"},"scope":6066,"src":"630:50:33","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6067,"src":"277:405:33","usedErrors":[],"usedEvents":[5348,5357]}],"src":"110:573:33"},"id":33},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[6102]},"id":6103,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6068,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":6069,"nodeType":"StructuredDocumentation","src":"148:1963:34","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n     doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n     token.safeTransferFrom(msg.sender, address(this), value);\n     ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"id":6102,"linearizedBaseContracts":[6102],"name":"IERC20Permit","nameLocation":"2122:12:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6070,"nodeType":"StructuredDocumentation","src":"2141:850:34","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","id":6087,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3005:6:34","nodeType":"FunctionDefinition","parameters":{"id":6085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6072,"mutability":"mutable","name":"owner","nameLocation":"3029:5:34","nodeType":"VariableDeclaration","scope":6087,"src":"3021:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6071,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6074,"mutability":"mutable","name":"spender","nameLocation":"3052:7:34","nodeType":"VariableDeclaration","scope":6087,"src":"3044:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6073,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"value","nameLocation":"3077:5:34","nodeType":"VariableDeclaration","scope":6087,"src":"3069:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6078,"mutability":"mutable","name":"deadline","nameLocation":"3100:8:34","nodeType":"VariableDeclaration","scope":6087,"src":"3092:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6077,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6080,"mutability":"mutable","name":"v","nameLocation":"3124:1:34","nodeType":"VariableDeclaration","scope":6087,"src":"3118:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6079,"name":"uint8","nodeType":"ElementaryTypeName","src":"3118:5:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6082,"mutability":"mutable","name":"r","nameLocation":"3143:1:34","nodeType":"VariableDeclaration","scope":6087,"src":"3135:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3135:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6084,"mutability":"mutable","name":"s","nameLocation":"3162:1:34","nodeType":"VariableDeclaration","scope":6087,"src":"3154:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3154:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3011:158:34"},"returnParameters":{"id":6086,"nodeType":"ParameterList","parameters":[],"src":"3178:0:34"},"scope":6102,"src":"2996:183:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6088,"nodeType":"StructuredDocumentation","src":"3185:294:34","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":6095,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3493:6:34","nodeType":"FunctionDefinition","parameters":{"id":6091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6090,"mutability":"mutable","name":"owner","nameLocation":"3508:5:34","nodeType":"VariableDeclaration","scope":6095,"src":"3500:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6089,"name":"address","nodeType":"ElementaryTypeName","src":"3500:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3499:15:34"},"returnParameters":{"id":6094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6095,"src":"3538:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3538:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3537:9:34"},"scope":6102,"src":"3484:63:34","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6096,"nodeType":"StructuredDocumentation","src":"3553:128:34","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":6101,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3748:16:34","nodeType":"FunctionDefinition","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[],"src":"3764:2:34"},"returnParameters":{"id":6100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6101,"src":"3790:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3790:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3789:9:34"},"scope":6102,"src":"3739:60:34","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6103,"src":"2112:1689:34","usedErrors":[],"usedEvents":[]}],"src":"123:3679:34"},"id":34},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[6942],"IERC20":[5414],"IERC20Permit":[6102],"SafeERC20":[6478]},"id":6479,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6104,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:35"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6105,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6479,"sourceUnit":5415,"src":"140:23:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":6106,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6479,"sourceUnit":6103,"src":"164:40:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":6107,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6479,"sourceUnit":6943,"src":"205:36:35","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":6108,"nodeType":"StructuredDocumentation","src":"243:457:35","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":6478,"linearizedBaseContracts":[6478],"name":"SafeERC20","nameLocation":"709:9:35","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6111,"libraryName":{"id":6109,"name":"Address","nameLocations":["731:7:35"],"nodeType":"IdentifierPath","referencedDeclaration":6942,"src":"731:7:35"},"nodeType":"UsingForDirective","src":"725:26:35","typeName":{"id":6110,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":6134,"nodeType":"Block","src":"1013:103:35","statements":[{"expression":{"arguments":[{"id":6123,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"1043:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6126,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"1073:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:35","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5381,"src":"1073:14:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:35","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6129,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"1098:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6119,"src":"1102:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6122,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"1023:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6133,"nodeType":"ExpressionStatement","src":"1023:86:35"}]},"documentation":{"id":6112,"nodeType":"StructuredDocumentation","src":"757:179:35","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6135,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:35","nodeType":"FunctionDefinition","parameters":{"id":6120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6115,"mutability":"mutable","name":"token","nameLocation":"970:5:35","nodeType":"VariableDeclaration","scope":6135,"src":"963:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6114,"nodeType":"UserDefinedTypeName","pathNode":{"id":6113,"name":"IERC20","nameLocations":["963:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"963:6:35"},"referencedDeclaration":5414,"src":"963:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6117,"mutability":"mutable","name":"to","nameLocation":"985:2:35","nodeType":"VariableDeclaration","scope":6135,"src":"977:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6116,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6119,"mutability":"mutable","name":"value","nameLocation":"997:5:35","nodeType":"VariableDeclaration","scope":6135,"src":"989:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6118,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:35"},"returnParameters":{"id":6121,"nodeType":"ParameterList","parameters":[],"src":"1013:0:35"},"scope":6478,"src":"941:175:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6161,"nodeType":"Block","src":"1445:113:35","statements":[{"expression":{"arguments":[{"id":6149,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"1475:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6152,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"1505:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:35","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5413,"src":"1505:18:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:35","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6155,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"1534:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6156,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1540:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"1544:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6148,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"1455:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6160,"nodeType":"ExpressionStatement","src":"1455:96:35"}]},"documentation":{"id":6136,"nodeType":"StructuredDocumentation","src":"1122:228:35","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":6162,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:35","nodeType":"FunctionDefinition","parameters":{"id":6146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6139,"mutability":"mutable","name":"token","nameLocation":"1388:5:35","nodeType":"VariableDeclaration","scope":6162,"src":"1381:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6138,"nodeType":"UserDefinedTypeName","pathNode":{"id":6137,"name":"IERC20","nameLocations":["1381:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"1381:6:35"},"referencedDeclaration":5414,"src":"1381:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6141,"mutability":"mutable","name":"from","nameLocation":"1403:4:35","nodeType":"VariableDeclaration","scope":6162,"src":"1395:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6140,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6143,"mutability":"mutable","name":"to","nameLocation":"1417:2:35","nodeType":"VariableDeclaration","scope":6162,"src":"1409:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6142,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6145,"mutability":"mutable","name":"value","nameLocation":"1429:5:35","nodeType":"VariableDeclaration","scope":6162,"src":"1421:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:35"},"returnParameters":{"id":6147,"nodeType":"ParameterList","parameters":[],"src":"1445:0:35"},"scope":6478,"src":"1355:203:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6205,"nodeType":"Block","src":"1894:497:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"2143:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6182,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}],"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6180,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:35","typeDescriptions":{}}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6184,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6168,"src":"2190:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6178,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6166,"src":"2159:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:35","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"2159:15:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6188,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":6173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2121:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6192,"nodeType":"ExpressionStatement","src":"2121:163:35"},{"expression":{"arguments":[{"id":6194,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6166,"src":"2314:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6197,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6166,"src":"2344:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:35","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"2344:13:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:35","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6200,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6168,"src":"2368:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6201,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"2377:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6193,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"2294:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6204,"nodeType":"ExpressionStatement","src":"2294:90:35"}]},"documentation":{"id":6163,"nodeType":"StructuredDocumentation","src":"1564:249:35","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":6206,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:35","nodeType":"FunctionDefinition","parameters":{"id":6171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6166,"mutability":"mutable","name":"token","nameLocation":"1846:5:35","nodeType":"VariableDeclaration","scope":6206,"src":"1839:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6165,"nodeType":"UserDefinedTypeName","pathNode":{"id":6164,"name":"IERC20","nameLocations":["1839:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"1839:6:35"},"referencedDeclaration":5414,"src":"1839:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6168,"mutability":"mutable","name":"spender","nameLocation":"1861:7:35","nodeType":"VariableDeclaration","scope":6206,"src":"1853:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6167,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6170,"mutability":"mutable","name":"value","nameLocation":"1878:5:35","nodeType":"VariableDeclaration","scope":6206,"src":"1870:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:35"},"returnParameters":{"id":6172,"nodeType":"ParameterList","parameters":[],"src":"1894:0:35"},"scope":6478,"src":"1818:573:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6242,"nodeType":"Block","src":"2668:194:35","statements":[{"assignments":[6218],"declarations":[{"constant":false,"id":6218,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:35","nodeType":"VariableDeclaration","scope":6242,"src":"2678:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6217,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6227,"initialValue":{"arguments":[{"arguments":[{"id":6223,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}],"id":6222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6221,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:35","typeDescriptions":{}}},"id":6224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6225,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"2732:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6219,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"2701:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:35","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"2701:15:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:35"},{"expression":{"arguments":[{"id":6229,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"2770:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6232,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"2800:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:35","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"2800:13:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:35","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6235,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"2824:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6236,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"2833:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"2848:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6228,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"2750:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6241,"nodeType":"ExpressionStatement","src":"2750:105:35"}]},"documentation":{"id":6207,"nodeType":"StructuredDocumentation","src":"2397:180:35","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6243,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:35","nodeType":"FunctionDefinition","parameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"token","nameLocation":"2620:5:35","nodeType":"VariableDeclaration","scope":6243,"src":"2613:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6209,"nodeType":"UserDefinedTypeName","pathNode":{"id":6208,"name":"IERC20","nameLocations":["2613:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"2613:6:35"},"referencedDeclaration":5414,"src":"2613:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6212,"mutability":"mutable","name":"spender","nameLocation":"2635:7:35","nodeType":"VariableDeclaration","scope":6243,"src":"2627:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6211,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6214,"mutability":"mutable","name":"value","nameLocation":"2652:5:35","nodeType":"VariableDeclaration","scope":6243,"src":"2644:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:35"},"returnParameters":{"id":6216,"nodeType":"ParameterList","parameters":[],"src":"2668:0:35"},"scope":6478,"src":"2582:280:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6287,"nodeType":"Block","src":"3139:321:35","statements":[{"id":6286,"nodeType":"UncheckedBlock","src":"3149:305:35","statements":[{"assignments":[6255],"declarations":[{"constant":false,"id":6255,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:35","nodeType":"VariableDeclaration","scope":6286,"src":"3173:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6254,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6264,"initialValue":{"arguments":[{"arguments":[{"id":6260,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6478","typeString":"library SafeERC20"}],"id":6259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6258,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:35","typeDescriptions":{}}},"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6262,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6249,"src":"3227:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6256,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6247,"src":"3196:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:35","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"3196:15:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6266,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"3257:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6267,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"3273:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":6265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3249:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6271,"nodeType":"ExpressionStatement","src":"3249:75:35"},{"expression":{"arguments":[{"id":6273,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6247,"src":"3358:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6276,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6247,"src":"3388:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:35","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"3388:13:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:35","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6279,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6249,"src":"3412:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6280,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"3421:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6281,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"3436:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6272,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"3338:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6285,"nodeType":"ExpressionStatement","src":"3338:105:35"}]}]},"documentation":{"id":6244,"nodeType":"StructuredDocumentation","src":"2868:180:35","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6288,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:35","nodeType":"FunctionDefinition","parameters":{"id":6252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6247,"mutability":"mutable","name":"token","nameLocation":"3091:5:35","nodeType":"VariableDeclaration","scope":6288,"src":"3084:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6246,"nodeType":"UserDefinedTypeName","pathNode":{"id":6245,"name":"IERC20","nameLocations":["3084:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"3084:6:35"},"referencedDeclaration":5414,"src":"3084:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6249,"mutability":"mutable","name":"spender","nameLocation":"3106:7:35","nodeType":"VariableDeclaration","scope":6288,"src":"3098:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6248,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6251,"mutability":"mutable","name":"value","nameLocation":"3123:5:35","nodeType":"VariableDeclaration","scope":6288,"src":"3115:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6250,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:35"},"returnParameters":{"id":6253,"nodeType":"ParameterList","parameters":[],"src":"3139:0:35"},"scope":6478,"src":"3053:407:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6334,"nodeType":"Block","src":"3856:333:35","statements":[{"assignments":[6300],"declarations":[{"constant":false,"id":6300,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:35","nodeType":"VariableDeclaration","scope":6334,"src":"3866:25:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6299,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6309,"initialValue":{"arguments":[{"expression":{"expression":{"id":6303,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"3917:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:35","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"3917:13:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:35","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6306,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6294,"src":"3941:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6307,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6296,"src":"3950:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:35"},{"condition":{"id":6314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:35","subExpression":{"arguments":[{"id":6311,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"3996:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"id":6312,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6300,"src":"4003:12:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6310,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"3972:23:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":6313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6333,"nodeType":"IfStatement","src":"3967:216:35","trueBody":{"id":6332,"nodeType":"Block","src":"4018:165:35","statements":[{"expression":{"arguments":[{"id":6316,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"4052:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6319,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"4082:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:35","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"4082:13:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:35","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6322,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6294,"src":"4106:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":6323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":6317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:35","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6315,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"4032:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6326,"nodeType":"ExpressionStatement","src":"4032:86:35"},{"expression":{"arguments":[{"id":6328,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6292,"src":"4152:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},{"id":6329,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6300,"src":"4159:12:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6327,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"4132:19:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6331,"nodeType":"ExpressionStatement","src":"4132:40:35"}]}}]},"documentation":{"id":6289,"nodeType":"StructuredDocumentation","src":"3466:308:35","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"id":6335,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:35","nodeType":"FunctionDefinition","parameters":{"id":6297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6292,"mutability":"mutable","name":"token","nameLocation":"3808:5:35","nodeType":"VariableDeclaration","scope":6335,"src":"3801:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6291,"nodeType":"UserDefinedTypeName","pathNode":{"id":6290,"name":"IERC20","nameLocations":["3801:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"3801:6:35"},"referencedDeclaration":5414,"src":"3801:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6294,"mutability":"mutable","name":"spender","nameLocation":"3823:7:35","nodeType":"VariableDeclaration","scope":6335,"src":"3815:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6293,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6296,"mutability":"mutable","name":"value","nameLocation":"3840:5:35","nodeType":"VariableDeclaration","scope":6335,"src":"3832:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6295,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:35"},"returnParameters":{"id":6298,"nodeType":"ParameterList","parameters":[],"src":"3856:0:35"},"scope":6478,"src":"3779:410:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6391,"nodeType":"Block","src":"4556:257:35","statements":[{"assignments":[6357],"declarations":[{"constant":false,"id":6357,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:35","nodeType":"VariableDeclaration","scope":6391,"src":"4566:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6356,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6362,"initialValue":{"arguments":[{"id":6360,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6341,"src":"4601:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6358,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"4588:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6102","typeString":"contract IERC20Permit"}},"id":6359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:35","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":6095,"src":"4588:12:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:35"},{"expression":{"arguments":[{"id":6366,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6341,"src":"4630:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6367,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6343,"src":"4637:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"4646:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6369,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6347,"src":"4653:8:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6370,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6349,"src":"4663:1:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6371,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"4666:1:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6372,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6353,"src":"4669:1:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6363,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"4617:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6102","typeString":"contract IERC20Permit"}},"id":6365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:35","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":6087,"src":"4617:12:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":6373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6374,"nodeType":"ExpressionStatement","src":"4617:54:35"},{"assignments":[6376],"declarations":[{"constant":false,"id":6376,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:35","nodeType":"VariableDeclaration","scope":6391,"src":"4681:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6375,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6381,"initialValue":{"arguments":[{"id":6379,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6341,"src":"4715:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6377,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"4702:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6102","typeString":"contract IERC20Permit"}},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:35","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":6095,"src":"4702:12:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6383,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"4739:10:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6384,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"4753:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":6388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":6382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4731:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6390,"nodeType":"ExpressionStatement","src":"4731:75:35"}]},"documentation":{"id":6336,"nodeType":"StructuredDocumentation","src":"4195:141:35","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"id":6392,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:35","nodeType":"FunctionDefinition","parameters":{"id":6354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6339,"mutability":"mutable","name":"token","nameLocation":"4383:5:35","nodeType":"VariableDeclaration","scope":6392,"src":"4370:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6102","typeString":"contract IERC20Permit"},"typeName":{"id":6338,"nodeType":"UserDefinedTypeName","pathNode":{"id":6337,"name":"IERC20Permit","nameLocations":["4370:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":6102,"src":"4370:12:35"},"referencedDeclaration":6102,"src":"4370:12:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6102","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":6341,"mutability":"mutable","name":"owner","nameLocation":"4406:5:35","nodeType":"VariableDeclaration","scope":6392,"src":"4398:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6340,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6343,"mutability":"mutable","name":"spender","nameLocation":"4429:7:35","nodeType":"VariableDeclaration","scope":6392,"src":"4421:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6342,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6345,"mutability":"mutable","name":"value","nameLocation":"4454:5:35","nodeType":"VariableDeclaration","scope":6392,"src":"4446:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6344,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6347,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:35","nodeType":"VariableDeclaration","scope":6392,"src":"4469:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6346,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6349,"mutability":"mutable","name":"v","nameLocation":"4501:1:35","nodeType":"VariableDeclaration","scope":6392,"src":"4495:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6348,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6351,"mutability":"mutable","name":"r","nameLocation":"4520:1:35","nodeType":"VariableDeclaration","scope":6392,"src":"4512:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6353,"mutability":"mutable","name":"s","nameLocation":"4539:1:35","nodeType":"VariableDeclaration","scope":6392,"src":"4531:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:35"},"returnParameters":{"id":6355,"nodeType":"ParameterList","parameters":[],"src":"4556:0:35"},"scope":6478,"src":"4341:472:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6428,"nodeType":"Block","src":"5266:572:35","statements":[{"assignments":[6402],"declarations":[{"constant":false,"id":6402,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:35","nodeType":"VariableDeclaration","scope":6428,"src":"5615:23:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6401,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6411,"initialValue":{"arguments":[{"id":6408,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6398,"src":"5669:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":6409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":6405,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"5649:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":6404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6403,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:35","typeDescriptions":{}}},"id":6406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:35","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":6702,"src":"5641:27:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6413,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"5728:10:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:35","memberName":"length","nodeType":"MemberAccess","src":"5728:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6419,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"5765:10:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6420,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:35","typeDescriptions":{}}}],"id":6422,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":6417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:35","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":6425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":6412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5720:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6427,"nodeType":"ExpressionStatement","src":"5720:111:35"}]},"documentation":{"id":6393,"nodeType":"StructuredDocumentation","src":"4819:372:35","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":6429,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:35","nodeType":"FunctionDefinition","parameters":{"id":6399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6396,"mutability":"mutable","name":"token","nameLocation":"5232:5:35","nodeType":"VariableDeclaration","scope":6429,"src":"5225:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6395,"nodeType":"UserDefinedTypeName","pathNode":{"id":6394,"name":"IERC20","nameLocations":["5225:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"5225:6:35"},"referencedDeclaration":5414,"src":"5225:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6398,"mutability":"mutable","name":"data","nameLocation":"5252:4:35","nodeType":"VariableDeclaration","scope":6429,"src":"5239:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6397,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:35"},"returnParameters":{"id":6400,"nodeType":"ParameterList","parameters":[],"src":"5266:0:35"},"scope":6478,"src":"5196:642:35","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6476,"nodeType":"Block","src":"6428:505:35","statements":[{"assignments":[6441,6443],"declarations":[{"constant":false,"id":6441,"mutability":"mutable","name":"success","nameLocation":"6729:7:35","nodeType":"VariableDeclaration","scope":6476,"src":"6724:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6440,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6443,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:35","nodeType":"VariableDeclaration","scope":6476,"src":"6738:23:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6442,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6451,"initialValue":{"arguments":[{"id":6449,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6435,"src":"6785:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6446,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"6773:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":6445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6444,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:35","typeDescriptions":{}}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:35","memberName":"call","nodeType":"MemberAccess","src":"6765:19:35","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:35"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6452,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6441,"src":"6819:7:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6453,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6443,"src":"6831:10:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:35","memberName":"length","nodeType":"MemberAccess","src":"6831:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6459,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6443,"src":"6868:10:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6460,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:35","typeDescriptions":{}}}],"id":6462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":6457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:35","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":6471,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"6919:5:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}],"id":6470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6469,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:35","typeDescriptions":{}}},"id":6472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6467,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"6892:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$6942_$","typeString":"type(library Address)"}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:35","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6630,"src":"6892:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6439,"id":6475,"nodeType":"Return","src":"6800:126:35"}]},"documentation":{"id":6430,"nodeType":"StructuredDocumentation","src":"5844:490:35","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"id":6477,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:35","nodeType":"FunctionDefinition","parameters":{"id":6436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"mutability":"mutable","name":"token","nameLocation":"6379:5:35","nodeType":"VariableDeclaration","scope":6477,"src":"6372:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"},"typeName":{"id":6432,"nodeType":"UserDefinedTypeName","pathNode":{"id":6431,"name":"IERC20","nameLocations":["6372:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"6372:6:35"},"referencedDeclaration":5414,"src":"6372:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6435,"mutability":"mutable","name":"data","nameLocation":"6399:4:35","nodeType":"VariableDeclaration","scope":6477,"src":"6386:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6434,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:35"},"returnParameters":{"id":6439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6477,"src":"6422:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6437,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:35"},"scope":6478,"src":"6339:594:35","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6479,"src":"701:6234:35","usedErrors":[],"usedEvents":[]}],"src":"115:6821:35"},"id":35},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[7883],"IERC721":[6594]},"id":6595,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6480,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:36"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":6481,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6595,"sourceUnit":7884,"src":"133:47:36","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6483,"name":"IERC165","nameLocations":["271:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":7883,"src":"271:7:36"},"id":6484,"nodeType":"InheritanceSpecifier","src":"271:7:36"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":6482,"nodeType":"StructuredDocumentation","src":"182:67:36","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":6594,"linearizedBaseContracts":[6594,7883],"name":"IERC721","nameLocation":"260:7:36","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6485,"nodeType":"StructuredDocumentation","src":"285:88:36","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":6493,"name":"Transfer","nameLocation":"384:8:36","nodeType":"EventDefinition","parameters":{"id":6492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6487,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:36","nodeType":"VariableDeclaration","scope":6493,"src":"393:20:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6486,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6489,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:36","nodeType":"VariableDeclaration","scope":6493,"src":"415:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6488,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6491,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:36","nodeType":"VariableDeclaration","scope":6493,"src":"435:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6490,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:36"},"src":"378:82:36"},{"anonymous":false,"documentation":{"id":6494,"nodeType":"StructuredDocumentation","src":"466:94:36","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":6502,"name":"Approval","nameLocation":"571:8:36","nodeType":"EventDefinition","parameters":{"id":6501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6496,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:36","nodeType":"VariableDeclaration","scope":6502,"src":"580:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6495,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6498,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:36","nodeType":"VariableDeclaration","scope":6502,"src":"603:24:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6497,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6500,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:36","nodeType":"VariableDeclaration","scope":6502,"src":"629:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6499,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:36"},"src":"565:89:36"},{"anonymous":false,"documentation":{"id":6503,"nodeType":"StructuredDocumentation","src":"660:117:36","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":6511,"name":"ApprovalForAll","nameLocation":"788:14:36","nodeType":"EventDefinition","parameters":{"id":6510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6505,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:36","nodeType":"VariableDeclaration","scope":6511,"src":"803:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6504,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6507,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:36","nodeType":"VariableDeclaration","scope":6511,"src":"826:24:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6506,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6509,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:36","nodeType":"VariableDeclaration","scope":6511,"src":"852:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6508,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:36"},"src":"782:85:36"},{"documentation":{"id":6512,"nodeType":"StructuredDocumentation","src":"873:76:36","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":6519,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:36","nodeType":"FunctionDefinition","parameters":{"id":6515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6514,"mutability":"mutable","name":"owner","nameLocation":"981:5:36","nodeType":"VariableDeclaration","scope":6519,"src":"973:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6513,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:36"},"returnParameters":{"id":6518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6517,"mutability":"mutable","name":"balance","nameLocation":"1019:7:36","nodeType":"VariableDeclaration","scope":6519,"src":"1011:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:36"},"scope":6594,"src":"954:74:36","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6520,"nodeType":"StructuredDocumentation","src":"1034:131:36","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":6527,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:36","nodeType":"FunctionDefinition","parameters":{"id":6523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6522,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:36","nodeType":"VariableDeclaration","scope":6527,"src":"1187:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6521,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:36"},"returnParameters":{"id":6526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"owner","nameLocation":"1235:5:36","nodeType":"VariableDeclaration","scope":6527,"src":"1227:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6524,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:36"},"scope":6594,"src":"1170:72:36","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6528,"nodeType":"StructuredDocumentation","src":"1248:556:36","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":6539,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:36","nodeType":"FunctionDefinition","parameters":{"id":6537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6530,"mutability":"mutable","name":"from","nameLocation":"1843:4:36","nodeType":"VariableDeclaration","scope":6539,"src":"1835:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6529,"name":"address","nodeType":"ElementaryTypeName","src":"1835:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6532,"mutability":"mutable","name":"to","nameLocation":"1857:2:36","nodeType":"VariableDeclaration","scope":6539,"src":"1849:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6531,"name":"address","nodeType":"ElementaryTypeName","src":"1849:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6534,"mutability":"mutable","name":"tokenId","nameLocation":"1869:7:36","nodeType":"VariableDeclaration","scope":6539,"src":"1861:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6533,"name":"uint256","nodeType":"ElementaryTypeName","src":"1861:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6536,"mutability":"mutable","name":"data","nameLocation":"1893:4:36","nodeType":"VariableDeclaration","scope":6539,"src":"1878:19:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6535,"name":"bytes","nodeType":"ElementaryTypeName","src":"1878:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:64:36"},"returnParameters":{"id":6538,"nodeType":"ParameterList","parameters":[],"src":"1907:0:36"},"scope":6594,"src":"1809:99:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6540,"nodeType":"StructuredDocumentation","src":"1914:687:36","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":6549,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2615:16:36","nodeType":"FunctionDefinition","parameters":{"id":6547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6542,"mutability":"mutable","name":"from","nameLocation":"2640:4:36","nodeType":"VariableDeclaration","scope":6549,"src":"2632:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6541,"name":"address","nodeType":"ElementaryTypeName","src":"2632:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6544,"mutability":"mutable","name":"to","nameLocation":"2654:2:36","nodeType":"VariableDeclaration","scope":6549,"src":"2646:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6543,"name":"address","nodeType":"ElementaryTypeName","src":"2646:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6546,"mutability":"mutable","name":"tokenId","nameLocation":"2666:7:36","nodeType":"VariableDeclaration","scope":6549,"src":"2658:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6545,"name":"uint256","nodeType":"ElementaryTypeName","src":"2658:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2631:43:36"},"returnParameters":{"id":6548,"nodeType":"ParameterList","parameters":[],"src":"2683:0:36"},"scope":6594,"src":"2606:78:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6550,"nodeType":"StructuredDocumentation","src":"2690:732:36","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":6559,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3436:12:36","nodeType":"FunctionDefinition","parameters":{"id":6557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6552,"mutability":"mutable","name":"from","nameLocation":"3457:4:36","nodeType":"VariableDeclaration","scope":6559,"src":"3449:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6551,"name":"address","nodeType":"ElementaryTypeName","src":"3449:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6554,"mutability":"mutable","name":"to","nameLocation":"3471:2:36","nodeType":"VariableDeclaration","scope":6559,"src":"3463:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6553,"name":"address","nodeType":"ElementaryTypeName","src":"3463:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6556,"mutability":"mutable","name":"tokenId","nameLocation":"3483:7:36","nodeType":"VariableDeclaration","scope":6559,"src":"3475:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3475:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3448:43:36"},"returnParameters":{"id":6558,"nodeType":"ParameterList","parameters":[],"src":"3500:0:36"},"scope":6594,"src":"3427:74:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6560,"nodeType":"StructuredDocumentation","src":"3507:452:36","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":6567,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3973:7:36","nodeType":"FunctionDefinition","parameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6562,"mutability":"mutable","name":"to","nameLocation":"3989:2:36","nodeType":"VariableDeclaration","scope":6567,"src":"3981:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6561,"name":"address","nodeType":"ElementaryTypeName","src":"3981:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6564,"mutability":"mutable","name":"tokenId","nameLocation":"4001:7:36","nodeType":"VariableDeclaration","scope":6567,"src":"3993:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"3993:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3980:29:36"},"returnParameters":{"id":6566,"nodeType":"ParameterList","parameters":[],"src":"4018:0:36"},"scope":6594,"src":"3964:55:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6568,"nodeType":"StructuredDocumentation","src":"4025:309:36","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":6575,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4348:17:36","nodeType":"FunctionDefinition","parameters":{"id":6573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6570,"mutability":"mutable","name":"operator","nameLocation":"4374:8:36","nodeType":"VariableDeclaration","scope":6575,"src":"4366:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6569,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6572,"mutability":"mutable","name":"approved","nameLocation":"4389:8:36","nodeType":"VariableDeclaration","scope":6575,"src":"4384:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6571,"name":"bool","nodeType":"ElementaryTypeName","src":"4384:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4365:33:36"},"returnParameters":{"id":6574,"nodeType":"ParameterList","parameters":[],"src":"4407:0:36"},"scope":6594,"src":"4339:69:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6576,"nodeType":"StructuredDocumentation","src":"4414:139:36","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":6583,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4567:11:36","nodeType":"FunctionDefinition","parameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"tokenId","nameLocation":"4587:7:36","nodeType":"VariableDeclaration","scope":6583,"src":"4579:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6577,"name":"uint256","nodeType":"ElementaryTypeName","src":"4579:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4578:17:36"},"returnParameters":{"id":6582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6581,"mutability":"mutable","name":"operator","nameLocation":"4627:8:36","nodeType":"VariableDeclaration","scope":6583,"src":"4619:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6580,"name":"address","nodeType":"ElementaryTypeName","src":"4619:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4618:18:36"},"scope":6594,"src":"4558:79:36","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6584,"nodeType":"StructuredDocumentation","src":"4643:138:36","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":6593,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4795:16:36","nodeType":"FunctionDefinition","parameters":{"id":6589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6586,"mutability":"mutable","name":"owner","nameLocation":"4820:5:36","nodeType":"VariableDeclaration","scope":6593,"src":"4812:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6585,"name":"address","nodeType":"ElementaryTypeName","src":"4812:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6588,"mutability":"mutable","name":"operator","nameLocation":"4835:8:36","nodeType":"VariableDeclaration","scope":6593,"src":"4827:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6587,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4811:33:36"},"returnParameters":{"id":6592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6593,"src":"4868:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6590,"name":"bool","nodeType":"ElementaryTypeName","src":"4868:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4867:6:36"},"scope":6594,"src":"4786:88:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6595,"src":"250:4626:36","usedErrors":[],"usedEvents":[6493,6502,6511]}],"src":"108:4769:36"},"id":36},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[6612]},"id":6613,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6596,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:37"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":6597,"nodeType":"StructuredDocumentation","src":"141:152:37","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":6612,"linearizedBaseContracts":[6612],"name":"IERC721Receiver","nameLocation":"304:15:37","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6598,"nodeType":"StructuredDocumentation","src":"326:493:37","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":6611,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:37","nodeType":"FunctionDefinition","parameters":{"id":6607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6600,"mutability":"mutable","name":"operator","nameLocation":"867:8:37","nodeType":"VariableDeclaration","scope":6611,"src":"859:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6599,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6602,"mutability":"mutable","name":"from","nameLocation":"893:4:37","nodeType":"VariableDeclaration","scope":6611,"src":"885:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6601,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6604,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:37","nodeType":"VariableDeclaration","scope":6611,"src":"907:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6603,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6606,"mutability":"mutable","name":"data","nameLocation":"947:4:37","nodeType":"VariableDeclaration","scope":6611,"src":"932:19:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6605,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:37"},"returnParameters":{"id":6610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6611,"src":"976:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6608,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:37"},"scope":6612,"src":"824:160:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6613,"src":"294:692:37","usedErrors":[],"usedEvents":[]}],"src":"116:871:37"},"id":37},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[6942]},"id":6943,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6614,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:38"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":6615,"nodeType":"StructuredDocumentation","src":"126:67:38","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":6942,"linearizedBaseContracts":[6942],"name":"Address","nameLocation":"202:7:38","nodeType":"ContractDefinition","nodes":[{"body":{"id":6629,"nodeType":"Block","src":"1478:254:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6623,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6618,"src":"1702:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:4:38","memberName":"code","nodeType":"MemberAccess","src":"1702:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1715:6:38","memberName":"length","nodeType":"MemberAccess","src":"1702:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1702:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6622,"id":6628,"nodeType":"Return","src":"1695:30:38"}]},"documentation":{"id":6616,"nodeType":"StructuredDocumentation","src":"216:1191:38","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":6630,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1421:10:38","nodeType":"FunctionDefinition","parameters":{"id":6619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6618,"mutability":"mutable","name":"account","nameLocation":"1440:7:38","nodeType":"VariableDeclaration","scope":6630,"src":"1432:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6617,"name":"address","nodeType":"ElementaryTypeName","src":"1432:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1431:17:38"},"returnParameters":{"id":6622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6630,"src":"1472:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6620,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:6:38"},"scope":6942,"src":"1412:320:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6663,"nodeType":"Block","src":"2718:241:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6641,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2744:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6942","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6942","typeString":"library Address"}],"id":6640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2736:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6639,"name":"address","nodeType":"ElementaryTypeName","src":"2736:7:38","typeDescriptions":{}}},"id":6642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2750:7:38","memberName":"balance","nodeType":"MemberAccess","src":"2736:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6644,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"2761:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":6646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2769:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":6638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2728:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6648,"nodeType":"ExpressionStatement","src":"2728:73:38"},{"assignments":[6650,null],"declarations":[{"constant":false,"id":6650,"mutability":"mutable","name":"success","nameLocation":"2818:7:38","nodeType":"VariableDeclaration","scope":6663,"src":"2813:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6649,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6657,"initialValue":{"arguments":[{"hexValue":"","id":6655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":6651,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"2831:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:4:38","memberName":"call","nodeType":"MemberAccess","src":"2831:14:38","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6653,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"2853:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2831:29:38","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2812:52:38"},{"expression":{"arguments":[{"id":6659,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6650,"src":"2882:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":6660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2891:60:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":6658,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2874:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:78:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6662,"nodeType":"ExpressionStatement","src":"2874:78:38"}]},"documentation":{"id":6631,"nodeType":"StructuredDocumentation","src":"1738:904:38","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":6664,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2656:9:38","nodeType":"FunctionDefinition","parameters":{"id":6636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"recipient","nameLocation":"2682:9:38","nodeType":"VariableDeclaration","scope":6664,"src":"2666:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6632,"name":"address","nodeType":"ElementaryTypeName","src":"2666:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6635,"mutability":"mutable","name":"amount","nameLocation":"2701:6:38","nodeType":"VariableDeclaration","scope":6664,"src":"2693:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:43:38"},"returnParameters":{"id":6637,"nodeType":"ParameterList","parameters":[],"src":"2718:0:38"},"scope":6942,"src":"2647:312:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6681,"nodeType":"Block","src":"3790:96:38","statements":[{"expression":{"arguments":[{"id":6675,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6667,"src":"3829:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6676,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6669,"src":"3837:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":6678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3846:32:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":6674,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6722,6766],"referencedDeclaration":6766,"src":"3807:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:72:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6673,"id":6680,"nodeType":"Return","src":"3800:79:38"}]},"documentation":{"id":6665,"nodeType":"StructuredDocumentation","src":"2965:731:38","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":6682,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3710:12:38","nodeType":"FunctionDefinition","parameters":{"id":6670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6667,"mutability":"mutable","name":"target","nameLocation":"3731:6:38","nodeType":"VariableDeclaration","scope":6682,"src":"3723:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6666,"name":"address","nodeType":"ElementaryTypeName","src":"3723:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6669,"mutability":"mutable","name":"data","nameLocation":"3752:4:38","nodeType":"VariableDeclaration","scope":6682,"src":"3739:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6668,"name":"bytes","nodeType":"ElementaryTypeName","src":"3739:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3722:35:38"},"returnParameters":{"id":6673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6682,"src":"3776:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6671,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:14:38"},"scope":6942,"src":"3701:185:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6701,"nodeType":"Block","src":"4255:76:38","statements":[{"expression":{"arguments":[{"id":6695,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"4294:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6696,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6687,"src":"4302:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6698,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"4311:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6694,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6722,6766],"referencedDeclaration":6766,"src":"4272:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6693,"id":6700,"nodeType":"Return","src":"4265:59:38"}]},"documentation":{"id":6683,"nodeType":"StructuredDocumentation","src":"3892:211:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6702,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4117:12:38","nodeType":"FunctionDefinition","parameters":{"id":6690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6685,"mutability":"mutable","name":"target","nameLocation":"4147:6:38","nodeType":"VariableDeclaration","scope":6702,"src":"4139:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6684,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6687,"mutability":"mutable","name":"data","nameLocation":"4176:4:38","nodeType":"VariableDeclaration","scope":6702,"src":"4163:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6686,"name":"bytes","nodeType":"ElementaryTypeName","src":"4163:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6689,"mutability":"mutable","name":"errorMessage","nameLocation":"4204:12:38","nodeType":"VariableDeclaration","scope":6702,"src":"4190:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6688,"name":"string","nodeType":"ElementaryTypeName","src":"4190:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4129:93:38"},"returnParameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6702,"src":"4241:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6691,"name":"bytes","nodeType":"ElementaryTypeName","src":"4241:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4240:14:38"},"scope":6942,"src":"4108:223:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6721,"nodeType":"Block","src":"4806:111:38","statements":[{"expression":{"arguments":[{"id":6715,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6705,"src":"4845:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6716,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6707,"src":"4853:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6717,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"4859:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":6718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4866:43:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":6714,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6722,6766],"referencedDeclaration":6766,"src":"4823:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:87:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6713,"id":6720,"nodeType":"Return","src":"4816:94:38"}]},"documentation":{"id":6703,"nodeType":"StructuredDocumentation","src":"4337:351:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":6722,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4702:21:38","nodeType":"FunctionDefinition","parameters":{"id":6710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"target","nameLocation":"4732:6:38","nodeType":"VariableDeclaration","scope":6722,"src":"4724:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6704,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6707,"mutability":"mutable","name":"data","nameLocation":"4753:4:38","nodeType":"VariableDeclaration","scope":6722,"src":"4740:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6706,"name":"bytes","nodeType":"ElementaryTypeName","src":"4740:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6709,"mutability":"mutable","name":"value","nameLocation":"4767:5:38","nodeType":"VariableDeclaration","scope":6722,"src":"4759:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6708,"name":"uint256","nodeType":"ElementaryTypeName","src":"4759:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4723:50:38"},"returnParameters":{"id":6713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6722,"src":"4792:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6711,"name":"bytes","nodeType":"ElementaryTypeName","src":"4792:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4791:14:38"},"scope":6942,"src":"4693:224:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6765,"nodeType":"Block","src":"5344:267:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5370:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$6942","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$6942","typeString":"library Address"}],"id":6738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6737,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:38","typeDescriptions":{}}},"id":6740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5376:7:38","memberName":"balance","nodeType":"MemberAccess","src":"5362:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"5387:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5362:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":6744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:40:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":6736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5354:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5354:81:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6746,"nodeType":"ExpressionStatement","src":"5354:81:38"},{"assignments":[6748,6750],"declarations":[{"constant":false,"id":6748,"mutability":"mutable","name":"success","nameLocation":"5451:7:38","nodeType":"VariableDeclaration","scope":6765,"src":"5446:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6747,"name":"bool","nodeType":"ElementaryTypeName","src":"5446:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6750,"mutability":"mutable","name":"returndata","nameLocation":"5473:10:38","nodeType":"VariableDeclaration","scope":6765,"src":"5460:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6749,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6757,"initialValue":{"arguments":[{"id":6755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"5513:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6751,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6725,"src":"5487:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5494:4:38","memberName":"call","nodeType":"MemberAccess","src":"5487:11:38","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6753,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"5506:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5487:25:38","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5445:73:38"},{"expression":{"arguments":[{"id":6759,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6725,"src":"5562:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6760,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6748,"src":"5570:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6761,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"5579:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6762,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6731,"src":"5591:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6758,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"5535:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6735,"id":6764,"nodeType":"Return","src":"5528:76:38"}]},"documentation":{"id":6723,"nodeType":"StructuredDocumentation","src":"4923:237:38","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6766,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5174:21:38","nodeType":"FunctionDefinition","parameters":{"id":6732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6725,"mutability":"mutable","name":"target","nameLocation":"5213:6:38","nodeType":"VariableDeclaration","scope":6766,"src":"5205:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6724,"name":"address","nodeType":"ElementaryTypeName","src":"5205:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6727,"mutability":"mutable","name":"data","nameLocation":"5242:4:38","nodeType":"VariableDeclaration","scope":6766,"src":"5229:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6726,"name":"bytes","nodeType":"ElementaryTypeName","src":"5229:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6729,"mutability":"mutable","name":"value","nameLocation":"5264:5:38","nodeType":"VariableDeclaration","scope":6766,"src":"5256:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6728,"name":"uint256","nodeType":"ElementaryTypeName","src":"5256:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6731,"mutability":"mutable","name":"errorMessage","nameLocation":"5293:12:38","nodeType":"VariableDeclaration","scope":6766,"src":"5279:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6730,"name":"string","nodeType":"ElementaryTypeName","src":"5279:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5195:116:38"},"returnParameters":{"id":6735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6766,"src":"5330:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6733,"name":"bytes","nodeType":"ElementaryTypeName","src":"5330:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5329:14:38"},"scope":6942,"src":"5165:446:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6782,"nodeType":"Block","src":"5888:97:38","statements":[{"expression":{"arguments":[{"id":6777,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"5924:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6778,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"5932:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":6779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5938:39:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":6776,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[6783,6812],"referencedDeclaration":6812,"src":"5905:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":6780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6775,"id":6781,"nodeType":"Return","src":"5898:80:38"}]},"documentation":{"id":6767,"nodeType":"StructuredDocumentation","src":"5617:166:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6783,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5797:18:38","nodeType":"FunctionDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6769,"mutability":"mutable","name":"target","nameLocation":"5824:6:38","nodeType":"VariableDeclaration","scope":6783,"src":"5816:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6768,"name":"address","nodeType":"ElementaryTypeName","src":"5816:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6771,"mutability":"mutable","name":"data","nameLocation":"5845:4:38","nodeType":"VariableDeclaration","scope":6783,"src":"5832:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6770,"name":"bytes","nodeType":"ElementaryTypeName","src":"5832:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5815:35:38"},"returnParameters":{"id":6775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6783,"src":"5874:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6773,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5873:14:38"},"scope":6942,"src":"5788:197:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6811,"nodeType":"Block","src":"6327:168:38","statements":[{"assignments":[6796,6798],"declarations":[{"constant":false,"id":6796,"mutability":"mutable","name":"success","nameLocation":"6343:7:38","nodeType":"VariableDeclaration","scope":6811,"src":"6338:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6795,"name":"bool","nodeType":"ElementaryTypeName","src":"6338:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6798,"mutability":"mutable","name":"returndata","nameLocation":"6365:10:38","nodeType":"VariableDeclaration","scope":6811,"src":"6352:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6797,"name":"bytes","nodeType":"ElementaryTypeName","src":"6352:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6803,"initialValue":{"arguments":[{"id":6801,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6788,"src":"6397:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6799,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6786,"src":"6379:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6386:10:38","memberName":"staticcall","nodeType":"MemberAccess","src":"6379:17:38","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6379:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6337:65:38"},{"expression":{"arguments":[{"id":6805,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6786,"src":"6446:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6806,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"6454:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6807,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"6463:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6808,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6790,"src":"6475:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6804,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"6419:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6794,"id":6810,"nodeType":"Return","src":"6412:76:38"}]},"documentation":{"id":6784,"nodeType":"StructuredDocumentation","src":"5991:173:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6812,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6178:18:38","nodeType":"FunctionDefinition","parameters":{"id":6791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6786,"mutability":"mutable","name":"target","nameLocation":"6214:6:38","nodeType":"VariableDeclaration","scope":6812,"src":"6206:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6785,"name":"address","nodeType":"ElementaryTypeName","src":"6206:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6788,"mutability":"mutable","name":"data","nameLocation":"6243:4:38","nodeType":"VariableDeclaration","scope":6812,"src":"6230:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6787,"name":"bytes","nodeType":"ElementaryTypeName","src":"6230:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6790,"mutability":"mutable","name":"errorMessage","nameLocation":"6271:12:38","nodeType":"VariableDeclaration","scope":6812,"src":"6257:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6789,"name":"string","nodeType":"ElementaryTypeName","src":"6257:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6196:93:38"},"returnParameters":{"id":6794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6812,"src":"6313:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6792,"name":"bytes","nodeType":"ElementaryTypeName","src":"6313:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6312:14:38"},"scope":6942,"src":"6169:326:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6828,"nodeType":"Block","src":"6771:101:38","statements":[{"expression":{"arguments":[{"id":6823,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"6809:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6824,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"6817:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":6825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6823:41:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":6822,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[6829,6858],"referencedDeclaration":6858,"src":"6788:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6788:77:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6821,"id":6827,"nodeType":"Return","src":"6781:84:38"}]},"documentation":{"id":6813,"nodeType":"StructuredDocumentation","src":"6501:168:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":6829,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6683:20:38","nodeType":"FunctionDefinition","parameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6815,"mutability":"mutable","name":"target","nameLocation":"6712:6:38","nodeType":"VariableDeclaration","scope":6829,"src":"6704:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6814,"name":"address","nodeType":"ElementaryTypeName","src":"6704:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6817,"mutability":"mutable","name":"data","nameLocation":"6733:4:38","nodeType":"VariableDeclaration","scope":6829,"src":"6720:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6816,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6703:35:38"},"returnParameters":{"id":6821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6829,"src":"6757:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6819,"name":"bytes","nodeType":"ElementaryTypeName","src":"6757:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6756:14:38"},"scope":6942,"src":"6674:198:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6857,"nodeType":"Block","src":"7213:170:38","statements":[{"assignments":[6842,6844],"declarations":[{"constant":false,"id":6842,"mutability":"mutable","name":"success","nameLocation":"7229:7:38","nodeType":"VariableDeclaration","scope":6857,"src":"7224:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6841,"name":"bool","nodeType":"ElementaryTypeName","src":"7224:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6844,"mutability":"mutable","name":"returndata","nameLocation":"7251:10:38","nodeType":"VariableDeclaration","scope":6857,"src":"7238:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6843,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6849,"initialValue":{"arguments":[{"id":6847,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6834,"src":"7285:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6845,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"7265:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7272:12:38","memberName":"delegatecall","nodeType":"MemberAccess","src":"7265:19:38","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7265:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7223:67:38"},{"expression":{"arguments":[{"id":6851,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"7334:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6852,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"7342:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6853,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6844,"src":"7351:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6854,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6836,"src":"7363:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6850,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"7307:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7307:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6840,"id":6856,"nodeType":"Return","src":"7300:76:38"}]},"documentation":{"id":6830,"nodeType":"StructuredDocumentation","src":"6878:175:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":6858,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7067:20:38","nodeType":"FunctionDefinition","parameters":{"id":6837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"target","nameLocation":"7105:6:38","nodeType":"VariableDeclaration","scope":6858,"src":"7097:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6831,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6834,"mutability":"mutable","name":"data","nameLocation":"7134:4:38","nodeType":"VariableDeclaration","scope":6858,"src":"7121:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6833,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6836,"mutability":"mutable","name":"errorMessage","nameLocation":"7162:12:38","nodeType":"VariableDeclaration","scope":6858,"src":"7148:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6835,"name":"string","nodeType":"ElementaryTypeName","src":"7148:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7087:93:38"},"returnParameters":{"id":6840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6858,"src":"7199:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6838,"name":"bytes","nodeType":"ElementaryTypeName","src":"7199:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7198:14:38"},"scope":6942,"src":"7058:325:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6896,"nodeType":"Block","src":"7865:434:38","statements":[{"condition":{"id":6872,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"7879:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6894,"nodeType":"Block","src":"8235:58:38","statements":[{"expression":{"arguments":[{"id":6890,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6865,"src":"8257:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6891,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"8269:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6889,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6941,"src":"8249:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":6892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8249:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6893,"nodeType":"ExpressionStatement","src":"8249:33:38"}]},"id":6895,"nodeType":"IfStatement","src":"7875:418:38","trueBody":{"id":6888,"nodeType":"Block","src":"7888:341:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6873,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6865,"src":"7906:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:6:38","memberName":"length","nodeType":"MemberAccess","src":"7906:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7906:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6885,"nodeType":"IfStatement","src":"7902:286:38","trueBody":{"id":6884,"nodeType":"Block","src":"7930:258:38","statements":[{"expression":{"arguments":[{"arguments":[{"id":6879,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"8132:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6878,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"8121:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":6881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8141:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":6877,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8113:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6883,"nodeType":"ExpressionStatement","src":"8113:60:38"}]}},{"expression":{"id":6886,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6865,"src":"8208:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6871,"id":6887,"nodeType":"Return","src":"8201:17:38"}]}}]},"documentation":{"id":6859,"nodeType":"StructuredDocumentation","src":"7389:277:38","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":6897,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7680:26:38","nodeType":"FunctionDefinition","parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6861,"mutability":"mutable","name":"target","nameLocation":"7724:6:38","nodeType":"VariableDeclaration","scope":6897,"src":"7716:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6860,"name":"address","nodeType":"ElementaryTypeName","src":"7716:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6863,"mutability":"mutable","name":"success","nameLocation":"7745:7:38","nodeType":"VariableDeclaration","scope":6897,"src":"7740:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6862,"name":"bool","nodeType":"ElementaryTypeName","src":"7740:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6865,"mutability":"mutable","name":"returndata","nameLocation":"7775:10:38","nodeType":"VariableDeclaration","scope":6897,"src":"7762:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6864,"name":"bytes","nodeType":"ElementaryTypeName","src":"7762:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6867,"mutability":"mutable","name":"errorMessage","nameLocation":"7809:12:38","nodeType":"VariableDeclaration","scope":6897,"src":"7795:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6866,"name":"string","nodeType":"ElementaryTypeName","src":"7795:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7706:121:38"},"returnParameters":{"id":6871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6897,"src":"7851:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6869,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7850:14:38"},"scope":6942,"src":"7671:628:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6920,"nodeType":"Block","src":"8680:135:38","statements":[{"condition":{"id":6909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6900,"src":"8694:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6918,"nodeType":"Block","src":"8751:58:38","statements":[{"expression":{"arguments":[{"id":6914,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6902,"src":"8773:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6915,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6904,"src":"8785:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6913,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6941,"src":"8765:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":6916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6917,"nodeType":"ExpressionStatement","src":"8765:33:38"}]},"id":6919,"nodeType":"IfStatement","src":"8690:119:38","trueBody":{"id":6912,"nodeType":"Block","src":"8703:42:38","statements":[{"expression":{"id":6910,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6902,"src":"8724:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6908,"id":6911,"nodeType":"Return","src":"8717:17:38"}]}}]},"documentation":{"id":6898,"nodeType":"StructuredDocumentation","src":"8305:210:38","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":6921,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8529:16:38","nodeType":"FunctionDefinition","parameters":{"id":6905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6900,"mutability":"mutable","name":"success","nameLocation":"8560:7:38","nodeType":"VariableDeclaration","scope":6921,"src":"8555:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6899,"name":"bool","nodeType":"ElementaryTypeName","src":"8555:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6902,"mutability":"mutable","name":"returndata","nameLocation":"8590:10:38","nodeType":"VariableDeclaration","scope":6921,"src":"8577:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6901,"name":"bytes","nodeType":"ElementaryTypeName","src":"8577:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6904,"mutability":"mutable","name":"errorMessage","nameLocation":"8624:12:38","nodeType":"VariableDeclaration","scope":6921,"src":"8610:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6903,"name":"string","nodeType":"ElementaryTypeName","src":"8610:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8545:97:38"},"returnParameters":{"id":6908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6921,"src":"8666:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6906,"name":"bytes","nodeType":"ElementaryTypeName","src":"8666:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8665:14:38"},"scope":6942,"src":"8520:295:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6940,"nodeType":"Block","src":"8904:457:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6928,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"8980:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:6:38","memberName":"length","nodeType":"MemberAccess","src":"8980:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9000:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8980:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6938,"nodeType":"Block","src":"9310:45:38","statements":[{"expression":{"arguments":[{"id":6935,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6925,"src":"9331:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6934,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9324:6:38","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:20:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6937,"nodeType":"ExpressionStatement","src":"9324:20:38"}]},"id":6939,"nodeType":"IfStatement","src":"8976:379:38","trueBody":{"id":6933,"nodeType":"Block","src":"9003:301:38","statements":[{"AST":{"nativeSrc":"9161:133:38","nodeType":"YulBlock","src":"9161:133:38","statements":[{"nativeSrc":"9179:40:38","nodeType":"YulVariableDeclaration","src":"9179:40:38","value":{"arguments":[{"name":"returndata","nativeSrc":"9208:10:38","nodeType":"YulIdentifier","src":"9208:10:38"}],"functionName":{"name":"mload","nativeSrc":"9202:5:38","nodeType":"YulIdentifier","src":"9202:5:38"},"nativeSrc":"9202:17:38","nodeType":"YulFunctionCall","src":"9202:17:38"},"variables":[{"name":"returndata_size","nativeSrc":"9183:15:38","nodeType":"YulTypedName","src":"9183:15:38","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9247:2:38","nodeType":"YulLiteral","src":"9247:2:38","type":"","value":"32"},{"name":"returndata","nativeSrc":"9251:10:38","nodeType":"YulIdentifier","src":"9251:10:38"}],"functionName":{"name":"add","nativeSrc":"9243:3:38","nodeType":"YulIdentifier","src":"9243:3:38"},"nativeSrc":"9243:19:38","nodeType":"YulFunctionCall","src":"9243:19:38"},{"name":"returndata_size","nativeSrc":"9264:15:38","nodeType":"YulIdentifier","src":"9264:15:38"}],"functionName":{"name":"revert","nativeSrc":"9236:6:38","nodeType":"YulIdentifier","src":"9236:6:38"},"nativeSrc":"9236:44:38","nodeType":"YulFunctionCall","src":"9236:44:38"},"nativeSrc":"9236:44:38","nodeType":"YulExpressionStatement","src":"9236:44:38"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6923,"isOffset":false,"isSlot":false,"src":"9208:10:38","valueSize":1},{"declaration":6923,"isOffset":false,"isSlot":false,"src":"9251:10:38","valueSize":1}],"id":6932,"nodeType":"InlineAssembly","src":"9152:142:38"}]}}]},"id":6941,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8830:7:38","nodeType":"FunctionDefinition","parameters":{"id":6926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6923,"mutability":"mutable","name":"returndata","nameLocation":"8851:10:38","nodeType":"VariableDeclaration","scope":6941,"src":"8838:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6922,"name":"bytes","nodeType":"ElementaryTypeName","src":"8838:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6925,"mutability":"mutable","name":"errorMessage","nameLocation":"8877:12:38","nodeType":"VariableDeclaration","scope":6941,"src":"8863:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6924,"name":"string","nodeType":"ElementaryTypeName","src":"8863:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8837:53:38"},"returnParameters":{"id":6927,"nodeType":"ParameterList","parameters":[],"src":"8904:0:38"},"scope":6942,"src":"8821:540:38","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":6943,"src":"194:9169:38","usedErrors":[],"usedEvents":[]}],"src":"101:9263:38"},"id":38},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[6972]},"id":6973,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6944,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:39"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":6945,"nodeType":"StructuredDocumentation","src":"126:496:39","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":6972,"linearizedBaseContracts":[6972],"name":"Context","nameLocation":"641:7:39","nodeType":"ContractDefinition","nodes":[{"body":{"id":6953,"nodeType":"Block","src":"717:34:39","statements":[{"expression":{"expression":{"id":6950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"734:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"738:6:39","memberName":"sender","nodeType":"MemberAccess","src":"734:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6949,"id":6952,"nodeType":"Return","src":"727:17:39"}]},"id":6954,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"664:10:39","nodeType":"FunctionDefinition","parameters":{"id":6946,"nodeType":"ParameterList","parameters":[],"src":"674:2:39"},"returnParameters":{"id":6949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6954,"src":"708:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6947,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"707:9:39"},"scope":6972,"src":"655:96:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6962,"nodeType":"Block","src":"824:32:39","statements":[{"expression":{"expression":{"id":6959,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"841:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:4:39","memberName":"data","nodeType":"MemberAccess","src":"841:8:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":6958,"id":6961,"nodeType":"Return","src":"834:15:39"}]},"id":6963,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"766:8:39","nodeType":"FunctionDefinition","parameters":{"id":6955,"nodeType":"ParameterList","parameters":[],"src":"774:2:39"},"returnParameters":{"id":6958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6963,"src":"808:14:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6956,"name":"bytes","nodeType":"ElementaryTypeName","src":"808:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"807:16:39"},"scope":6972,"src":"757:99:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6970,"nodeType":"Block","src":"934:25:39","statements":[{"expression":{"hexValue":"30","id":6968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":6967,"id":6969,"nodeType":"Return","src":"944:8:39"}]},"id":6971,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"871:20:39","nodeType":"FunctionDefinition","parameters":{"id":6964,"nodeType":"ParameterList","parameters":[],"src":"891:2:39"},"returnParameters":{"id":6967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6971,"src":"925:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6965,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"924:9:39"},"scope":6972,"src":"862:97:39","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":6973,"src":"623:338:39","usedErrors":[],"usedEvents":[]}],"src":"101:861:39"},"id":39},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[7082]},"id":7083,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6974,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:40"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":6975,"nodeType":"StructuredDocumentation","src":"218:1201:40","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n _Available since v4.9 for `string`, `bytes`._"},"fullyImplemented":true,"id":7082,"linearizedBaseContracts":[7082],"name":"StorageSlot","nameLocation":"1428:11:40","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":6978,"members":[{"constant":false,"id":6977,"mutability":"mutable","name":"value","nameLocation":"1483:5:40","nodeType":"VariableDeclaration","scope":6978,"src":"1475:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6976,"name":"address","nodeType":"ElementaryTypeName","src":"1475:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1453:11:40","nodeType":"StructDefinition","scope":7082,"src":"1446:49:40","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":6981,"members":[{"constant":false,"id":6980,"mutability":"mutable","name":"value","nameLocation":"1535:5:40","nodeType":"VariableDeclaration","scope":6981,"src":"1530:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6979,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1508:11:40","nodeType":"StructDefinition","scope":7082,"src":"1501:46:40","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":6984,"members":[{"constant":false,"id":6983,"mutability":"mutable","name":"value","nameLocation":"1590:5:40","nodeType":"VariableDeclaration","scope":6984,"src":"1582:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1582:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1560:11:40","nodeType":"StructDefinition","scope":7082,"src":"1553:49:40","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":6987,"members":[{"constant":false,"id":6986,"mutability":"mutable","name":"value","nameLocation":"1645:5:40","nodeType":"VariableDeclaration","scope":6987,"src":"1637:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6985,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1615:11:40","nodeType":"StructDefinition","scope":7082,"src":"1608:49:40","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":6990,"members":[{"constant":false,"id":6989,"mutability":"mutable","name":"value","nameLocation":"1698:5:40","nodeType":"VariableDeclaration","scope":6990,"src":"1691:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":6988,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1670:10:40","nodeType":"StructDefinition","scope":7082,"src":"1663:47:40","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":6993,"members":[{"constant":false,"id":6992,"mutability":"mutable","name":"value","nameLocation":"1749:5:40","nodeType":"VariableDeclaration","scope":6993,"src":"1743:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":6991,"name":"bytes","nodeType":"ElementaryTypeName","src":"1743:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1723:9:40","nodeType":"StructDefinition","scope":7082,"src":"1716:45:40","visibility":"public"},{"body":{"id":7003,"nodeType":"Block","src":"1943:106:40","statements":[{"AST":{"nativeSrc":"2005:38:40","nodeType":"YulBlock","src":"2005:38:40","statements":[{"nativeSrc":"2019:14:40","nodeType":"YulAssignment","src":"2019:14:40","value":{"name":"slot","nativeSrc":"2029:4:40","nodeType":"YulIdentifier","src":"2029:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"2019:6:40","nodeType":"YulIdentifier","src":"2019:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7000,"isOffset":false,"isSlot":true,"src":"2019:6:40","suffix":"slot","valueSize":1},{"declaration":6996,"isOffset":false,"isSlot":false,"src":"2029:4:40","valueSize":1}],"id":7002,"nodeType":"InlineAssembly","src":"1996:47:40"}]},"documentation":{"id":6994,"nodeType":"StructuredDocumentation","src":"1767:87:40","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":7004,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1868:14:40","nodeType":"FunctionDefinition","parameters":{"id":6997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6996,"mutability":"mutable","name":"slot","nameLocation":"1891:4:40","nodeType":"VariableDeclaration","scope":7004,"src":"1883:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1882:14:40"},"returnParameters":{"id":7001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7000,"mutability":"mutable","name":"r","nameLocation":"1940:1:40","nodeType":"VariableDeclaration","scope":7004,"src":"1920:21:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":6999,"nodeType":"UserDefinedTypeName","pathNode":{"id":6998,"name":"AddressSlot","nameLocations":["1920:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":6978,"src":"1920:11:40"},"referencedDeclaration":6978,"src":"1920:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6978_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1919:23:40"},"scope":7082,"src":"1859:190:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7014,"nodeType":"Block","src":"2231:106:40","statements":[{"AST":{"nativeSrc":"2293:38:40","nodeType":"YulBlock","src":"2293:38:40","statements":[{"nativeSrc":"2307:14:40","nodeType":"YulAssignment","src":"2307:14:40","value":{"name":"slot","nativeSrc":"2317:4:40","nodeType":"YulIdentifier","src":"2317:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"2307:6:40","nodeType":"YulIdentifier","src":"2307:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7011,"isOffset":false,"isSlot":true,"src":"2307:6:40","suffix":"slot","valueSize":1},{"declaration":7007,"isOffset":false,"isSlot":false,"src":"2317:4:40","valueSize":1}],"id":7013,"nodeType":"InlineAssembly","src":"2284:47:40"}]},"documentation":{"id":7005,"nodeType":"StructuredDocumentation","src":"2055:87:40","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":7015,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2156:14:40","nodeType":"FunctionDefinition","parameters":{"id":7008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7007,"mutability":"mutable","name":"slot","nameLocation":"2179:4:40","nodeType":"VariableDeclaration","scope":7015,"src":"2171:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2171:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2170:14:40"},"returnParameters":{"id":7012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7011,"mutability":"mutable","name":"r","nameLocation":"2228:1:40","nodeType":"VariableDeclaration","scope":7015,"src":"2208:21:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$6981_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":7010,"nodeType":"UserDefinedTypeName","pathNode":{"id":7009,"name":"BooleanSlot","nameLocations":["2208:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":6981,"src":"2208:11:40"},"referencedDeclaration":6981,"src":"2208:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$6981_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2207:23:40"},"scope":7082,"src":"2147:190:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7025,"nodeType":"Block","src":"2519:106:40","statements":[{"AST":{"nativeSrc":"2581:38:40","nodeType":"YulBlock","src":"2581:38:40","statements":[{"nativeSrc":"2595:14:40","nodeType":"YulAssignment","src":"2595:14:40","value":{"name":"slot","nativeSrc":"2605:4:40","nodeType":"YulIdentifier","src":"2605:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"2595:6:40","nodeType":"YulIdentifier","src":"2595:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7022,"isOffset":false,"isSlot":true,"src":"2595:6:40","suffix":"slot","valueSize":1},{"declaration":7018,"isOffset":false,"isSlot":false,"src":"2605:4:40","valueSize":1}],"id":7024,"nodeType":"InlineAssembly","src":"2572:47:40"}]},"documentation":{"id":7016,"nodeType":"StructuredDocumentation","src":"2343:87:40","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":7026,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2444:14:40","nodeType":"FunctionDefinition","parameters":{"id":7019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7018,"mutability":"mutable","name":"slot","nameLocation":"2467:4:40","nodeType":"VariableDeclaration","scope":7026,"src":"2459:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2459:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2458:14:40"},"returnParameters":{"id":7023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7022,"mutability":"mutable","name":"r","nameLocation":"2516:1:40","nodeType":"VariableDeclaration","scope":7026,"src":"2496:21:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6984_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":7021,"nodeType":"UserDefinedTypeName","pathNode":{"id":7020,"name":"Bytes32Slot","nameLocations":["2496:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":6984,"src":"2496:11:40"},"referencedDeclaration":6984,"src":"2496:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6984_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2495:23:40"},"scope":7082,"src":"2435:190:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7036,"nodeType":"Block","src":"2807:106:40","statements":[{"AST":{"nativeSrc":"2869:38:40","nodeType":"YulBlock","src":"2869:38:40","statements":[{"nativeSrc":"2883:14:40","nodeType":"YulAssignment","src":"2883:14:40","value":{"name":"slot","nativeSrc":"2893:4:40","nodeType":"YulIdentifier","src":"2893:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"2883:6:40","nodeType":"YulIdentifier","src":"2883:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7033,"isOffset":false,"isSlot":true,"src":"2883:6:40","suffix":"slot","valueSize":1},{"declaration":7029,"isOffset":false,"isSlot":false,"src":"2893:4:40","valueSize":1}],"id":7035,"nodeType":"InlineAssembly","src":"2860:47:40"}]},"documentation":{"id":7027,"nodeType":"StructuredDocumentation","src":"2631:87:40","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":7037,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2732:14:40","nodeType":"FunctionDefinition","parameters":{"id":7030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7029,"mutability":"mutable","name":"slot","nameLocation":"2755:4:40","nodeType":"VariableDeclaration","scope":7037,"src":"2747:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2747:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2746:14:40"},"returnParameters":{"id":7034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7033,"mutability":"mutable","name":"r","nameLocation":"2804:1:40","nodeType":"VariableDeclaration","scope":7037,"src":"2784:21:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$6987_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":7032,"nodeType":"UserDefinedTypeName","pathNode":{"id":7031,"name":"Uint256Slot","nameLocations":["2784:11:40"],"nodeType":"IdentifierPath","referencedDeclaration":6987,"src":"2784:11:40"},"referencedDeclaration":6987,"src":"2784:11:40","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$6987_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2783:23:40"},"scope":7082,"src":"2723:190:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7047,"nodeType":"Block","src":"3092:106:40","statements":[{"AST":{"nativeSrc":"3154:38:40","nodeType":"YulBlock","src":"3154:38:40","statements":[{"nativeSrc":"3168:14:40","nodeType":"YulAssignment","src":"3168:14:40","value":{"name":"slot","nativeSrc":"3178:4:40","nodeType":"YulIdentifier","src":"3178:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"3168:6:40","nodeType":"YulIdentifier","src":"3168:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7044,"isOffset":false,"isSlot":true,"src":"3168:6:40","suffix":"slot","valueSize":1},{"declaration":7040,"isOffset":false,"isSlot":false,"src":"3178:4:40","valueSize":1}],"id":7046,"nodeType":"InlineAssembly","src":"3145:47:40"}]},"documentation":{"id":7038,"nodeType":"StructuredDocumentation","src":"2919:86:40","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":7048,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3019:13:40","nodeType":"FunctionDefinition","parameters":{"id":7041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7040,"mutability":"mutable","name":"slot","nameLocation":"3041:4:40","nodeType":"VariableDeclaration","scope":7048,"src":"3033:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3033:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3032:14:40"},"returnParameters":{"id":7045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7044,"mutability":"mutable","name":"r","nameLocation":"3089:1:40","nodeType":"VariableDeclaration","scope":7048,"src":"3070:20:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6990_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":7043,"nodeType":"UserDefinedTypeName","pathNode":{"id":7042,"name":"StringSlot","nameLocations":["3070:10:40"],"nodeType":"IdentifierPath","referencedDeclaration":6990,"src":"3070:10:40"},"referencedDeclaration":6990,"src":"3070:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6990_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3069:22:40"},"scope":7082,"src":"3010:188:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7058,"nodeType":"Block","src":"3400:112:40","statements":[{"AST":{"nativeSrc":"3462:44:40","nodeType":"YulBlock","src":"3462:44:40","statements":[{"nativeSrc":"3476:20:40","nodeType":"YulAssignment","src":"3476:20:40","value":{"name":"store.slot","nativeSrc":"3486:10:40","nodeType":"YulIdentifier","src":"3486:10:40"},"variableNames":[{"name":"r.slot","nativeSrc":"3476:6:40","nodeType":"YulIdentifier","src":"3476:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7055,"isOffset":false,"isSlot":true,"src":"3476:6:40","suffix":"slot","valueSize":1},{"declaration":7051,"isOffset":false,"isSlot":true,"src":"3486:10:40","suffix":"slot","valueSize":1}],"id":7057,"nodeType":"InlineAssembly","src":"3453:53:40"}]},"documentation":{"id":7049,"nodeType":"StructuredDocumentation","src":"3204:101:40","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":7059,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3319:13:40","nodeType":"FunctionDefinition","parameters":{"id":7052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7051,"mutability":"mutable","name":"store","nameLocation":"3348:5:40","nodeType":"VariableDeclaration","scope":7059,"src":"3333:20:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":7050,"name":"string","nodeType":"ElementaryTypeName","src":"3333:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3332:22:40"},"returnParameters":{"id":7056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7055,"mutability":"mutable","name":"r","nameLocation":"3397:1:40","nodeType":"VariableDeclaration","scope":7059,"src":"3378:20:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6990_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":7054,"nodeType":"UserDefinedTypeName","pathNode":{"id":7053,"name":"StringSlot","nameLocations":["3378:10:40"],"nodeType":"IdentifierPath","referencedDeclaration":6990,"src":"3378:10:40"},"referencedDeclaration":6990,"src":"3378:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$6990_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3377:22:40"},"scope":7082,"src":"3310:202:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7069,"nodeType":"Block","src":"3688:106:40","statements":[{"AST":{"nativeSrc":"3750:38:40","nodeType":"YulBlock","src":"3750:38:40","statements":[{"nativeSrc":"3764:14:40","nodeType":"YulAssignment","src":"3764:14:40","value":{"name":"slot","nativeSrc":"3774:4:40","nodeType":"YulIdentifier","src":"3774:4:40"},"variableNames":[{"name":"r.slot","nativeSrc":"3764:6:40","nodeType":"YulIdentifier","src":"3764:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7066,"isOffset":false,"isSlot":true,"src":"3764:6:40","suffix":"slot","valueSize":1},{"declaration":7062,"isOffset":false,"isSlot":false,"src":"3774:4:40","valueSize":1}],"id":7068,"nodeType":"InlineAssembly","src":"3741:47:40"}]},"documentation":{"id":7060,"nodeType":"StructuredDocumentation","src":"3518:85:40","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":7070,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3617:12:40","nodeType":"FunctionDefinition","parameters":{"id":7063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7062,"mutability":"mutable","name":"slot","nameLocation":"3638:4:40","nodeType":"VariableDeclaration","scope":7070,"src":"3630:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3630:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3629:14:40"},"returnParameters":{"id":7067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7066,"mutability":"mutable","name":"r","nameLocation":"3685:1:40","nodeType":"VariableDeclaration","scope":7070,"src":"3667:19:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6993_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":7065,"nodeType":"UserDefinedTypeName","pathNode":{"id":7064,"name":"BytesSlot","nameLocations":["3667:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6993,"src":"3667:9:40"},"referencedDeclaration":6993,"src":"3667:9:40","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6993_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3666:21:40"},"scope":7082,"src":"3608:186:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7080,"nodeType":"Block","src":"3991:112:40","statements":[{"AST":{"nativeSrc":"4053:44:40","nodeType":"YulBlock","src":"4053:44:40","statements":[{"nativeSrc":"4067:20:40","nodeType":"YulAssignment","src":"4067:20:40","value":{"name":"store.slot","nativeSrc":"4077:10:40","nodeType":"YulIdentifier","src":"4077:10:40"},"variableNames":[{"name":"r.slot","nativeSrc":"4067:6:40","nodeType":"YulIdentifier","src":"4067:6:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7077,"isOffset":false,"isSlot":true,"src":"4067:6:40","suffix":"slot","valueSize":1},{"declaration":7073,"isOffset":false,"isSlot":true,"src":"4077:10:40","suffix":"slot","valueSize":1}],"id":7079,"nodeType":"InlineAssembly","src":"4044:53:40"}]},"documentation":{"id":7071,"nodeType":"StructuredDocumentation","src":"3800:99:40","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":7081,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3913:12:40","nodeType":"FunctionDefinition","parameters":{"id":7074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7073,"mutability":"mutable","name":"store","nameLocation":"3940:5:40","nodeType":"VariableDeclaration","scope":7081,"src":"3926:19:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":7072,"name":"bytes","nodeType":"ElementaryTypeName","src":"3926:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3925:21:40"},"returnParameters":{"id":7078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7077,"mutability":"mutable","name":"r","nameLocation":"3988:1:40","nodeType":"VariableDeclaration","scope":7081,"src":"3970:19:40","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6993_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":7076,"nodeType":"UserDefinedTypeName","pathNode":{"id":7075,"name":"BytesSlot","nameLocations":["3970:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6993,"src":"3970:9:40"},"referencedDeclaration":6993,"src":"3970:9:40","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$6993_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3969:21:40"},"scope":7082,"src":"3904:199:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7083,"src":"1420:2685:40","usedErrors":[],"usedEvents":[]}],"src":"193:3913:40"},"id":40},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[8749],"SignedMath":[10395],"Strings":[7311]},"id":7312,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7084,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:41"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":7085,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7312,"sourceUnit":8750,"src":"126:25:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":7086,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7312,"sourceUnit":10396,"src":"152:31:41","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":7087,"nodeType":"StructuredDocumentation","src":"185:34:41","text":" @dev String operations."},"fullyImplemented":true,"id":7311,"linearizedBaseContracts":[7311],"name":"Strings","nameLocation":"228:7:41","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7090,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:41","nodeType":"VariableDeclaration","scope":7311,"src":"242:54:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":7088,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:41","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":7089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":7093,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:41","nodeType":"VariableDeclaration","scope":7311,"src":"302:43:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7091,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:41","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":7140,"nodeType":"Block","src":"518:625:41","statements":[{"id":7139,"nodeType":"UncheckedBlock","src":"528:609:41","statements":[{"assignments":[7102],"declarations":[{"constant":false,"id":7102,"mutability":"mutable","name":"length","nameLocation":"560:6:41","nodeType":"VariableDeclaration","scope":7139,"src":"552:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7101,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7109,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7096,"src":"580:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7103,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"569:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":7104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:41","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":8586,"src":"569:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:41"},{"assignments":[7111],"declarations":[{"constant":false,"id":7111,"mutability":"mutable","name":"buffer","nameLocation":"618:6:41","nodeType":"VariableDeclaration","scope":7139,"src":"604:20:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7110,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7116,"initialValue":{"arguments":[{"id":7114,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"638:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":7112,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:41"},{"assignments":[7118],"declarations":[{"constant":false,"id":7118,"mutability":"mutable","name":"ptr","nameLocation":"667:3:41","nodeType":"VariableDeclaration","scope":7139,"src":"659:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7117,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7119,"nodeType":"VariableDeclarationStatement","src":"659:11:41"},{"AST":{"nativeSrc":"740:67:41","nodeType":"YulBlock","src":"740:67:41","statements":[{"nativeSrc":"758:35:41","nodeType":"YulAssignment","src":"758:35:41","value":{"arguments":[{"name":"buffer","nativeSrc":"769:6:41","nodeType":"YulIdentifier","src":"769:6:41"},{"arguments":[{"kind":"number","nativeSrc":"781:2:41","nodeType":"YulLiteral","src":"781:2:41","type":"","value":"32"},{"name":"length","nativeSrc":"785:6:41","nodeType":"YulIdentifier","src":"785:6:41"}],"functionName":{"name":"add","nativeSrc":"777:3:41","nodeType":"YulIdentifier","src":"777:3:41"},"nativeSrc":"777:15:41","nodeType":"YulFunctionCall","src":"777:15:41"}],"functionName":{"name":"add","nativeSrc":"765:3:41","nodeType":"YulIdentifier","src":"765:3:41"},"nativeSrc":"765:28:41","nodeType":"YulFunctionCall","src":"765:28:41"},"variableNames":[{"name":"ptr","nativeSrc":"758:3:41","nodeType":"YulIdentifier","src":"758:3:41"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7111,"isOffset":false,"isSlot":false,"src":"769:6:41","valueSize":1},{"declaration":7102,"isOffset":false,"isSlot":false,"src":"785:6:41","valueSize":1},{"declaration":7118,"isOffset":false,"isSlot":false,"src":"758:3:41","valueSize":1}],"id":7120,"nodeType":"InlineAssembly","src":"731:76:41"},{"body":{"id":7135,"nodeType":"Block","src":"833:267:41","statements":[{"expression":{"id":7123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:41","subExpression":{"id":7122,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"851:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7124,"nodeType":"ExpressionStatement","src":"851:5:41"},{"AST":{"nativeSrc":"934:84:41","nodeType":"YulBlock","src":"934:84:41","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"964:3:41","nodeType":"YulIdentifier","src":"964:3:41"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"978:5:41","nodeType":"YulIdentifier","src":"978:5:41"},{"kind":"number","nativeSrc":"985:2:41","nodeType":"YulLiteral","src":"985:2:41","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"974:3:41","nodeType":"YulIdentifier","src":"974:3:41"},"nativeSrc":"974:14:41","nodeType":"YulFunctionCall","src":"974:14:41"},{"name":"_SYMBOLS","nativeSrc":"990:8:41","nodeType":"YulIdentifier","src":"990:8:41"}],"functionName":{"name":"byte","nativeSrc":"969:4:41","nodeType":"YulIdentifier","src":"969:4:41"},"nativeSrc":"969:30:41","nodeType":"YulFunctionCall","src":"969:30:41"}],"functionName":{"name":"mstore8","nativeSrc":"956:7:41","nodeType":"YulIdentifier","src":"956:7:41"},"nativeSrc":"956:44:41","nodeType":"YulFunctionCall","src":"956:44:41"},"nativeSrc":"956:44:41","nodeType":"YulExpressionStatement","src":"956:44:41"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7090,"isOffset":false,"isSlot":false,"src":"990:8:41","valueSize":1},{"declaration":7118,"isOffset":false,"isSlot":false,"src":"964:3:41","valueSize":1},{"declaration":7096,"isOffset":false,"isSlot":false,"src":"978:5:41","valueSize":1}],"id":7125,"nodeType":"InlineAssembly","src":"925:93:41"},{"expression":{"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7096,"src":"1035:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":7127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:41","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7129,"nodeType":"ExpressionStatement","src":"1035:11:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7096,"src":"1068:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7134,"nodeType":"IfStatement","src":"1064:21:41","trueBody":{"id":7133,"nodeType":"Break","src":"1080:5:41"}}]},"condition":{"hexValue":"74727565","id":7121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":7136,"nodeType":"WhileStatement","src":"820:280:41"},{"expression":{"id":7137,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"1120:6:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7100,"id":7138,"nodeType":"Return","src":"1113:13:41"}]}]},"documentation":{"id":7094,"nodeType":"StructuredDocumentation","src":"352:90:41","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":7141,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:41","nodeType":"FunctionDefinition","parameters":{"id":7097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7096,"mutability":"mutable","name":"value","nameLocation":"473:5:41","nodeType":"VariableDeclaration","scope":7141,"src":"465:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7095,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:41"},"returnParameters":{"id":7100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7141,"src":"503:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7098,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:41"},"scope":7311,"src":"447:696:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7168,"nodeType":"Block","src":"1313:103:41","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"1354:5:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":7158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:41","trueExpression":{"hexValue":"2d","id":7156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":7162,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"1400:5:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7160,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"1385:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$10395_$","typeString":"type(library SignedMath)"}},"id":7161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:41","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":10394,"src":"1385:14:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7159,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[7141,7169],"referencedDeclaration":7141,"src":"1376:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7149,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:41","typeDescriptions":{}}},"id":7166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7148,"id":7167,"nodeType":"Return","src":"1323:86:41"}]},"documentation":{"id":7142,"nodeType":"StructuredDocumentation","src":"1149:89:41","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":7169,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:41","nodeType":"FunctionDefinition","parameters":{"id":7145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7144,"mutability":"mutable","name":"value","nameLocation":"1268:5:41","nodeType":"VariableDeclaration","scope":7169,"src":"1261:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7143,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:41"},"returnParameters":{"id":7148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7169,"src":"1298:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7146,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:41"},"scope":7311,"src":"1243:173:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7188,"nodeType":"Block","src":"1595:100:41","statements":[{"id":7187,"nodeType":"UncheckedBlock","src":"1605:84:41","statements":[{"expression":{"arguments":[{"id":7178,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7172,"src":"1648:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7181,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7172,"src":"1667:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7179,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1655:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:41","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":8709,"src":"1655:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7177,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7189,7265,7285],"referencedDeclaration":7265,"src":"1636:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7176,"id":7186,"nodeType":"Return","src":"1629:49:41"}]}]},"documentation":{"id":7170,"nodeType":"StructuredDocumentation","src":"1422:94:41","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":7189,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:41","nodeType":"FunctionDefinition","parameters":{"id":7173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7172,"mutability":"mutable","name":"value","nameLocation":"1550:5:41","nodeType":"VariableDeclaration","scope":7189,"src":"1542:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7171,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:41"},"returnParameters":{"id":7176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7189,"src":"1580:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7174,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:41"},"scope":7311,"src":"1521:174:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7264,"nodeType":"Block","src":"1908:347:41","statements":[{"assignments":[7200],"declarations":[{"constant":false,"id":7200,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:41","nodeType":"VariableDeclaration","scope":7264,"src":"1918:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7199,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7209,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:41","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7204,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"1954:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:41","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7201,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:41"},{"expression":{"id":7214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7210,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1975:6:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7212,"indexExpression":{"hexValue":"30","id":7211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7215,"nodeType":"ExpressionStatement","src":"1975:15:41"},{"expression":{"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7216,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2000:6:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7218,"indexExpression":{"hexValue":"31","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":7219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7221,"nodeType":"ExpressionStatement","src":"2000:15:41"},{"body":{"id":7250,"nodeType":"Block","src":"2070:83:41","statements":[{"expression":{"id":7244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7236,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2084:6:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7238,"indexExpression":{"id":7237,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2091:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7239,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7090,"src":"2096:8:41","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":7243,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"2105:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":7241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:41","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:41","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7245,"nodeType":"ExpressionStatement","src":"2084:33:41"},{"expression":{"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7246,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"2131:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:41","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7249,"nodeType":"ExpressionStatement","src":"2131:11:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7230,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2058:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":7231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7251,"initializationExpression":{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"mutability":"mutable","name":"i","nameLocation":"2038:1:41","nodeType":"VariableDeclaration","scope":7251,"src":"2030:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7229,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:41","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7225,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"2046:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:41"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":7234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:41","subExpression":{"id":7233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2067:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7235,"nodeType":"ExpressionStatement","src":"2065:3:41"},"nodeType":"ForStatement","src":"2025:128:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"2170:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":7256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":7252,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2162:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7258,"nodeType":"ExpressionStatement","src":"2162:55:41"},{"expression":{"arguments":[{"id":7261,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2241:6:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7259,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:41","typeDescriptions":{}}},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7198,"id":7263,"nodeType":"Return","src":"2227:21:41"}]},"documentation":{"id":7190,"nodeType":"StructuredDocumentation","src":"1701:112:41","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":7265,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:41","nodeType":"FunctionDefinition","parameters":{"id":7195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7192,"mutability":"mutable","name":"value","nameLocation":"1847:5:41","nodeType":"VariableDeclaration","scope":7265,"src":"1839:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7194,"mutability":"mutable","name":"length","nameLocation":"1862:6:41","nodeType":"VariableDeclaration","scope":7265,"src":"1854:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:41"},"returnParameters":{"id":7198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7265,"src":"1893:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7196,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:41"},"scope":7311,"src":"1818:437:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7284,"nodeType":"Block","src":"2480:76:41","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7278,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"2525:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7276,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:41","typeDescriptions":{}}},"id":7279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:41","typeDescriptions":{}}},"id":7280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7281,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7093,"src":"2533:15:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7273,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7189,7265,7285],"referencedDeclaration":7265,"src":"2497:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7272,"id":7283,"nodeType":"Return","src":"2490:59:41"}]},"documentation":{"id":7266,"nodeType":"StructuredDocumentation","src":"2261:141:41","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":7285,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:41","nodeType":"FunctionDefinition","parameters":{"id":7269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7268,"mutability":"mutable","name":"addr","nameLocation":"2436:4:41","nodeType":"VariableDeclaration","scope":7285,"src":"2428:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7267,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:41"},"returnParameters":{"id":7272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7285,"src":"2465:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7270,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:41"},"scope":7311,"src":"2407:149:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7309,"nodeType":"Block","src":"2711:66:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7298,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"2744:1:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7296,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:41","typeDescriptions":{}}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7295,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7304,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"2767:1:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7302,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:41","typeDescriptions":{}}},"id":7305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7301,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7294,"id":7308,"nodeType":"Return","src":"2721:49:41"}]},"documentation":{"id":7286,"nodeType":"StructuredDocumentation","src":"2562:66:41","text":" @dev Returns true if the two strings are equal."},"id":7310,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:41","nodeType":"FunctionDefinition","parameters":{"id":7291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7288,"mutability":"mutable","name":"a","nameLocation":"2662:1:41","nodeType":"VariableDeclaration","scope":7310,"src":"2648:15:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7287,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7290,"mutability":"mutable","name":"b","nameLocation":"2679:1:41","nodeType":"VariableDeclaration","scope":7310,"src":"2665:15:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7289,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:41"},"returnParameters":{"id":7294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7310,"src":"2705:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7292,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:41"},"scope":7311,"src":"2633:144:41","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7312,"src":"220:2559:41","usedErrors":[],"usedEvents":[]}],"src":"101:2679:41"},"id":41},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[7677],"Math":[8749],"SignedMath":[10395],"Strings":[7311]},"id":7678,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7313,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:42"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":7314,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7678,"sourceUnit":7312,"src":"137:24:42","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":7315,"nodeType":"StructuredDocumentation","src":"163:205:42","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":7677,"linearizedBaseContracts":[7677],"name":"ECDSA","nameLocation":"377:5:42","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":7321,"members":[{"id":7316,"name":"NoError","nameLocation":"417:7:42","nodeType":"EnumValue","src":"417:7:42"},{"id":7317,"name":"InvalidSignature","nameLocation":"434:16:42","nodeType":"EnumValue","src":"434:16:42"},{"id":7318,"name":"InvalidSignatureLength","nameLocation":"460:22:42","nodeType":"EnumValue","src":"460:22:42"},{"id":7319,"name":"InvalidSignatureS","nameLocation":"492:17:42","nodeType":"EnumValue","src":"492:17:42"},{"id":7320,"name":"InvalidSignatureV","nameLocation":"519:17:42","nodeType":"EnumValue","src":"519:17:42"}],"name":"RecoverError","nameLocation":"394:12:42","nodeType":"EnumDefinition","src":"389:175:42"},{"body":{"id":7364,"nodeType":"Block","src":"624:457:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"id":7330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7327,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"638:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7328,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"647:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"660:7:42","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":7316,"src":"647:20:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"id":7336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7333,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"734:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7334,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"743:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"756:16:42","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":7317,"src":"743:29:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"id":7345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7342,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"843:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7343,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"852:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"865:22:42","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":7318,"src":"852:35:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7351,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"965:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7352,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"974:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"987:17:42","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":7319,"src":"974:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7360,"nodeType":"IfStatement","src":"961:114:42","trueBody":{"id":7359,"nodeType":"Block","src":"1006:69:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":7356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""},"value":"ECDSA: invalid signature 's' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""}],"id":7355,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:44:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7358,"nodeType":"ExpressionStatement","src":"1020:44:42"}]}},"id":7361,"nodeType":"IfStatement","src":"839:236:42","trueBody":{"id":7350,"nodeType":"Block","src":"889:66:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":7347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""},"value":"ECDSA: invalid signature length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""}],"id":7346,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"903:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7349,"nodeType":"ExpressionStatement","src":"903:41:42"}]}},"id":7362,"nodeType":"IfStatement","src":"730:345:42","trueBody":{"id":7341,"nodeType":"Block","src":"774:59:42","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":7338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""},"value":"ECDSA: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""}],"id":7337,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:42","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7340,"nodeType":"ExpressionStatement","src":"788:34:42"}]}},"id":7363,"nodeType":"IfStatement","src":"634:441:42","trueBody":{"id":7332,"nodeType":"Block","src":"669:55:42","statements":[{"functionReturnParameters":7326,"id":7331,"nodeType":"Return","src":"683:7:42"}]}}]},"id":7365,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:42","nodeType":"FunctionDefinition","parameters":{"id":7325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7324,"mutability":"mutable","name":"error","nameLocation":"604:5:42","nodeType":"VariableDeclaration","scope":7365,"src":"591:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7323,"nodeType":"UserDefinedTypeName","pathNode":{"id":7322,"name":"RecoverError","nameLocations":["591:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"591:12:42"},"referencedDeclaration":7321,"src":"591:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:42"},"returnParameters":{"id":7326,"nodeType":"ParameterList","parameters":[],"src":"624:0:42"},"scope":7677,"src":"570:511:42","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":7410,"nodeType":"Block","src":"2249:626:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7378,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"2263:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2273:6:42","memberName":"length","nodeType":"MemberAccess","src":"2263:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":7380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:42","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7408,"nodeType":"Block","src":"2788:81:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":7402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7400,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:42","typeDescriptions":{}}},"id":7403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7404,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"2822:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2835:22:42","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":7318,"src":"2822:35:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"id":7406,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7377,"id":7407,"nodeType":"Return","src":"2802:56:42"}]},"id":7409,"nodeType":"IfStatement","src":"2259:610:42","trueBody":{"id":7399,"nodeType":"Block","src":"2287:495:42","statements":[{"assignments":[7383],"declarations":[{"constant":false,"id":7383,"mutability":"mutable","name":"r","nameLocation":"2309:1:42","nodeType":"VariableDeclaration","scope":7399,"src":"2301:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7384,"nodeType":"VariableDeclarationStatement","src":"2301:9:42"},{"assignments":[7386],"declarations":[{"constant":false,"id":7386,"mutability":"mutable","name":"s","nameLocation":"2332:1:42","nodeType":"VariableDeclaration","scope":7399,"src":"2324:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7387,"nodeType":"VariableDeclarationStatement","src":"2324:9:42"},{"assignments":[7389],"declarations":[{"constant":false,"id":7389,"mutability":"mutable","name":"v","nameLocation":"2353:1:42","nodeType":"VariableDeclaration","scope":7399,"src":"2347:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7388,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":7390,"nodeType":"VariableDeclarationStatement","src":"2347:7:42"},{"AST":{"nativeSrc":"2555:171:42","nodeType":"YulBlock","src":"2555:171:42","statements":[{"nativeSrc":"2573:32:42","nodeType":"YulAssignment","src":"2573:32:42","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2588:9:42","nodeType":"YulIdentifier","src":"2588:9:42"},{"kind":"number","nativeSrc":"2599:4:42","nodeType":"YulLiteral","src":"2599:4:42","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2584:3:42","nodeType":"YulIdentifier","src":"2584:3:42"},"nativeSrc":"2584:20:42","nodeType":"YulFunctionCall","src":"2584:20:42"}],"functionName":{"name":"mload","nativeSrc":"2578:5:42","nodeType":"YulIdentifier","src":"2578:5:42"},"nativeSrc":"2578:27:42","nodeType":"YulFunctionCall","src":"2578:27:42"},"variableNames":[{"name":"r","nativeSrc":"2573:1:42","nodeType":"YulIdentifier","src":"2573:1:42"}]},{"nativeSrc":"2622:32:42","nodeType":"YulAssignment","src":"2622:32:42","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2637:9:42","nodeType":"YulIdentifier","src":"2637:9:42"},{"kind":"number","nativeSrc":"2648:4:42","nodeType":"YulLiteral","src":"2648:4:42","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2633:3:42","nodeType":"YulIdentifier","src":"2633:3:42"},"nativeSrc":"2633:20:42","nodeType":"YulFunctionCall","src":"2633:20:42"}],"functionName":{"name":"mload","nativeSrc":"2627:5:42","nodeType":"YulIdentifier","src":"2627:5:42"},"nativeSrc":"2627:27:42","nodeType":"YulFunctionCall","src":"2627:27:42"},"variableNames":[{"name":"s","nativeSrc":"2622:1:42","nodeType":"YulIdentifier","src":"2622:1:42"}]},{"nativeSrc":"2671:41:42","nodeType":"YulAssignment","src":"2671:41:42","value":{"arguments":[{"kind":"number","nativeSrc":"2681:1:42","nodeType":"YulLiteral","src":"2681:1:42","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2694:9:42","nodeType":"YulIdentifier","src":"2694:9:42"},{"kind":"number","nativeSrc":"2705:4:42","nodeType":"YulLiteral","src":"2705:4:42","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"2690:3:42","nodeType":"YulIdentifier","src":"2690:3:42"},"nativeSrc":"2690:20:42","nodeType":"YulFunctionCall","src":"2690:20:42"}],"functionName":{"name":"mload","nativeSrc":"2684:5:42","nodeType":"YulIdentifier","src":"2684:5:42"},"nativeSrc":"2684:27:42","nodeType":"YulFunctionCall","src":"2684:27:42"}],"functionName":{"name":"byte","nativeSrc":"2676:4:42","nodeType":"YulIdentifier","src":"2676:4:42"},"nativeSrc":"2676:36:42","nodeType":"YulFunctionCall","src":"2676:36:42"},"variableNames":[{"name":"v","nativeSrc":"2671:1:42","nodeType":"YulIdentifier","src":"2671:1:42"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7383,"isOffset":false,"isSlot":false,"src":"2573:1:42","valueSize":1},{"declaration":7386,"isOffset":false,"isSlot":false,"src":"2622:1:42","valueSize":1},{"declaration":7370,"isOffset":false,"isSlot":false,"src":"2588:9:42","valueSize":1},{"declaration":7370,"isOffset":false,"isSlot":false,"src":"2637:9:42","valueSize":1},{"declaration":7370,"isOffset":false,"isSlot":false,"src":"2694:9:42","valueSize":1},{"declaration":7389,"isOffset":false,"isSlot":false,"src":"2671:1:42","valueSize":1}],"id":7391,"nodeType":"InlineAssembly","src":"2546:180:42"},{"expression":{"arguments":[{"id":7393,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7368,"src":"2757:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7394,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"2763:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7395,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7383,"src":"2766:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7396,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7386,"src":"2769:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7392,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[7411,7485,7579],"referencedDeclaration":7579,"src":"2746:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":7397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7377,"id":7398,"nodeType":"Return","src":"2739:32:42"}]}}]},"documentation":{"id":7366,"nodeType":"StructuredDocumentation","src":"1087:1053:42","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"id":7411,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:42","nodeType":"FunctionDefinition","parameters":{"id":7371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7368,"mutability":"mutable","name":"hash","nameLocation":"2173:4:42","nodeType":"VariableDeclaration","scope":7411,"src":"2165:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7370,"mutability":"mutable","name":"signature","nameLocation":"2192:9:42","nodeType":"VariableDeclaration","scope":7411,"src":"2179:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7369,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:42"},"returnParameters":{"id":7377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7411,"src":"2226:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7372,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7411,"src":"2235:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7375,"nodeType":"UserDefinedTypeName","pathNode":{"id":7374,"name":"RecoverError","nameLocations":["2235:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"2235:12:42"},"referencedDeclaration":7321,"src":"2235:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:42"},"scope":7677,"src":"2145:730:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7437,"nodeType":"Block","src":"3748:140:42","statements":[{"assignments":[7422,7425],"declarations":[{"constant":false,"id":7422,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:42","nodeType":"VariableDeclaration","scope":7437,"src":"3759:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7421,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7425,"mutability":"mutable","name":"error","nameLocation":"3791:5:42","nodeType":"VariableDeclaration","scope":7437,"src":"3778:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7424,"nodeType":"UserDefinedTypeName","pathNode":{"id":7423,"name":"RecoverError","nameLocations":["3778:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"3778:12:42"},"referencedDeclaration":7321,"src":"3778:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":7430,"initialValue":{"arguments":[{"id":7427,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7414,"src":"3811:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7428,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7416,"src":"3817:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7426,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[7411,7485,7579],"referencedDeclaration":7411,"src":"3800:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":7429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:42"},{"expression":{"arguments":[{"id":7432,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"3849:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}],"id":7431,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"3837:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$7321_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":7433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3837:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7434,"nodeType":"ExpressionStatement","src":"3837:18:42"},{"expression":{"id":7435,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7422,"src":"3872:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7420,"id":7436,"nodeType":"Return","src":"3865:16:42"}]},"documentation":{"id":7412,"nodeType":"StructuredDocumentation","src":"2881:775:42","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"id":7438,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:42","nodeType":"FunctionDefinition","parameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7414,"mutability":"mutable","name":"hash","nameLocation":"3686:4:42","nodeType":"VariableDeclaration","scope":7438,"src":"3678:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7416,"mutability":"mutable","name":"signature","nameLocation":"3705:9:42","nodeType":"VariableDeclaration","scope":7438,"src":"3692:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7415,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:42"},"returnParameters":{"id":7420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7438,"src":"3739:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7418,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:42"},"scope":7677,"src":"3661:227:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7484,"nodeType":"Block","src":"4245:203:42","statements":[{"assignments":[7454],"declarations":[{"constant":false,"id":7454,"mutability":"mutable","name":"s","nameLocation":"4263:1:42","nodeType":"VariableDeclaration","scope":7484,"src":"4255:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4255:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7461,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7455,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7445,"src":"4267:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":7458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:66:42","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":7457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4272:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4272:7:42","typeDescriptions":{}}},"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:75:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4267:80:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4255:92:42"},{"assignments":[7463],"declarations":[{"constant":false,"id":7463,"mutability":"mutable","name":"v","nameLocation":"4363:1:42","nodeType":"VariableDeclaration","scope":7484,"src":"4357:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7462,"name":"uint8","nodeType":"ElementaryTypeName","src":"4357:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":7476,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7468,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7445,"src":"4382:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4374:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7466,"name":"uint256","nodeType":"ElementaryTypeName","src":"4374:7:42","typeDescriptions":{}}},"id":7469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4374:11:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":7470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4389:3:42","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4374:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7472,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4373:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":7473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:2:42","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4373:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4367:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7464,"name":"uint8","nodeType":"ElementaryTypeName","src":"4367:5:42","typeDescriptions":{}}},"id":7475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4357:42:42"},{"expression":{"arguments":[{"id":7478,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7441,"src":"4427:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7479,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"4433:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7480,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7443,"src":"4436:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7481,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7454,"src":"4439:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7477,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[7411,7485,7579],"referencedDeclaration":7579,"src":"4416:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":7482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7452,"id":7483,"nodeType":"Return","src":"4409:32:42"}]},"documentation":{"id":7439,"nodeType":"StructuredDocumentation","src":"3894:243:42","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"id":7485,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:42","nodeType":"FunctionDefinition","parameters":{"id":7446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7441,"mutability":"mutable","name":"hash","nameLocation":"4170:4:42","nodeType":"VariableDeclaration","scope":7485,"src":"4162:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7443,"mutability":"mutable","name":"r","nameLocation":"4184:1:42","nodeType":"VariableDeclaration","scope":7485,"src":"4176:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7445,"mutability":"mutable","name":"vs","nameLocation":"4195:2:42","nodeType":"VariableDeclaration","scope":7485,"src":"4187:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4187:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:37:42"},"returnParameters":{"id":7452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7485,"src":"4222:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7447,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7485,"src":"4231:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7450,"nodeType":"UserDefinedTypeName","pathNode":{"id":7449,"name":"RecoverError","nameLocations":["4231:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"4231:12:42"},"referencedDeclaration":7321,"src":"4231:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4221:23:42"},"scope":7677,"src":"4142:306:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7514,"nodeType":"Block","src":"4699:136:42","statements":[{"assignments":[7498,7501],"declarations":[{"constant":false,"id":7498,"mutability":"mutable","name":"recovered","nameLocation":"4718:9:42","nodeType":"VariableDeclaration","scope":7514,"src":"4710:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7497,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7501,"mutability":"mutable","name":"error","nameLocation":"4742:5:42","nodeType":"VariableDeclaration","scope":7514,"src":"4729:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7500,"nodeType":"UserDefinedTypeName","pathNode":{"id":7499,"name":"RecoverError","nameLocations":["4729:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"4729:12:42"},"referencedDeclaration":7321,"src":"4729:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":7507,"initialValue":{"arguments":[{"id":7503,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"4762:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7504,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"4768:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7505,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"4771:2:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7502,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[7411,7485,7579],"referencedDeclaration":7485,"src":"4751:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":7506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:23:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4709:65:42"},{"expression":{"arguments":[{"id":7509,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7501,"src":"4796:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}],"id":7508,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"4784:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$7321_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":7510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4784:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7511,"nodeType":"ExpressionStatement","src":"4784:18:42"},{"expression":{"id":7512,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7498,"src":"4819:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7496,"id":7513,"nodeType":"Return","src":"4812:16:42"}]},"documentation":{"id":7486,"nodeType":"StructuredDocumentation","src":"4454:154:42","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":7515,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4622:7:42","nodeType":"FunctionDefinition","parameters":{"id":7493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7488,"mutability":"mutable","name":"hash","nameLocation":"4638:4:42","nodeType":"VariableDeclaration","scope":7515,"src":"4630:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7490,"mutability":"mutable","name":"r","nameLocation":"4652:1:42","nodeType":"VariableDeclaration","scope":7515,"src":"4644:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4644:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7492,"mutability":"mutable","name":"vs","nameLocation":"4663:2:42","nodeType":"VariableDeclaration","scope":7515,"src":"4655:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4655:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4629:37:42"},"returnParameters":{"id":7496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7515,"src":"4690:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7494,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4689:9:42"},"scope":7677,"src":"4613:222:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7578,"nodeType":"Block","src":"5120:1345:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7534,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7524,"src":"6016:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6008:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7532,"name":"uint256","nodeType":"ElementaryTypeName","src":"6008:7:42","typeDescriptions":{}}},"id":7535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6008:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":7536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6021:66:42","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6008:79:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7547,"nodeType":"IfStatement","src":"6004:161:42","trueBody":{"id":7546,"nodeType":"Block","src":"6089:76:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":7540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6111:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7538,"name":"address","nodeType":"ElementaryTypeName","src":"6111:7:42","typeDescriptions":{}}},"id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6111:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7542,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"6123:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6136:17:42","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":7319,"src":"6123:30:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"id":7544,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6110:44:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7531,"id":7545,"nodeType":"Return","src":"6103:51:42"}]}},{"assignments":[7549],"declarations":[{"constant":false,"id":7549,"mutability":"mutable","name":"signer","nameLocation":"6267:6:42","nodeType":"VariableDeclaration","scope":7578,"src":"6259:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7548,"name":"address","nodeType":"ElementaryTypeName","src":"6259:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7556,"initialValue":{"arguments":[{"id":7551,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"6286:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7552,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"6292:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7553,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"6295:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7554,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7524,"src":"6298:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7550,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6276:9:42","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6259:41:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7557,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"6314:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6332:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6324:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7558,"name":"address","nodeType":"ElementaryTypeName","src":"6324:7:42","typeDescriptions":{}}},"id":7561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6324:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6314:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7572,"nodeType":"IfStatement","src":"6310:101:42","trueBody":{"id":7571,"nodeType":"Block","src":"6336:75:42","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":7565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6366:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6358:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7563,"name":"address","nodeType":"ElementaryTypeName","src":"6358:7:42","typeDescriptions":{}}},"id":7566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6358:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7567,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"6370:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6383:16:42","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":7317,"src":"6370:29:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"id":7569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6357:43:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7531,"id":7570,"nodeType":"Return","src":"6350:50:42"}]}},{"expression":{"components":[{"id":7573,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"6429:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7574,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7321,"src":"6437:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$7321_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":7575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6450:7:42","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":7316,"src":"6437:20:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"id":7576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6428:30:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":7531,"id":7577,"nodeType":"Return","src":"6421:37:42"}]},"documentation":{"id":7516,"nodeType":"StructuredDocumentation","src":"4841:163:42","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":7579,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5018:10:42","nodeType":"FunctionDefinition","parameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7518,"mutability":"mutable","name":"hash","nameLocation":"5037:4:42","nodeType":"VariableDeclaration","scope":7579,"src":"5029:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5029:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7520,"mutability":"mutable","name":"v","nameLocation":"5049:1:42","nodeType":"VariableDeclaration","scope":7579,"src":"5043:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7519,"name":"uint8","nodeType":"ElementaryTypeName","src":"5043:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7522,"mutability":"mutable","name":"r","nameLocation":"5060:1:42","nodeType":"VariableDeclaration","scope":7579,"src":"5052:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5052:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7524,"mutability":"mutable","name":"s","nameLocation":"5071:1:42","nodeType":"VariableDeclaration","scope":7579,"src":"5063:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5063:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5028:45:42"},"returnParameters":{"id":7531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7579,"src":"5097:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7526,"name":"address","nodeType":"ElementaryTypeName","src":"5097:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7579,"src":"5106:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7529,"nodeType":"UserDefinedTypeName","pathNode":{"id":7528,"name":"RecoverError","nameLocations":["5106:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"5106:12:42"},"referencedDeclaration":7321,"src":"5106:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5096:23:42"},"scope":7677,"src":"5009:1456:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7611,"nodeType":"Block","src":"6692:138:42","statements":[{"assignments":[7594,7597],"declarations":[{"constant":false,"id":7594,"mutability":"mutable","name":"recovered","nameLocation":"6711:9:42","nodeType":"VariableDeclaration","scope":7611,"src":"6703:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7593,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7597,"mutability":"mutable","name":"error","nameLocation":"6735:5:42","nodeType":"VariableDeclaration","scope":7611,"src":"6722:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":7596,"nodeType":"UserDefinedTypeName","pathNode":{"id":7595,"name":"RecoverError","nameLocations":["6722:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":7321,"src":"6722:12:42"},"referencedDeclaration":7321,"src":"6722:12:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":7604,"initialValue":{"arguments":[{"id":7599,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7582,"src":"6755:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7600,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"6761:1:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7601,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7586,"src":"6764:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7588,"src":"6767:1:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7598,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[7411,7485,7579],"referencedDeclaration":7579,"src":"6744:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":7603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6744:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$7321_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6702:67:42"},{"expression":{"arguments":[{"id":7606,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7597,"src":"6791:5:42","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$7321","typeString":"enum ECDSA.RecoverError"}],"id":7605,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"6779:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$7321_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":7607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6779:18:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7608,"nodeType":"ExpressionStatement","src":"6779:18:42"},{"expression":{"id":7609,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7594,"src":"6814:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7592,"id":7610,"nodeType":"Return","src":"6807:16:42"}]},"documentation":{"id":7580,"nodeType":"StructuredDocumentation","src":"6471:122:42","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":7612,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6607:7:42","nodeType":"FunctionDefinition","parameters":{"id":7589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7582,"mutability":"mutable","name":"hash","nameLocation":"6623:4:42","nodeType":"VariableDeclaration","scope":7612,"src":"6615:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6615:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7584,"mutability":"mutable","name":"v","nameLocation":"6635:1:42","nodeType":"VariableDeclaration","scope":7612,"src":"6629:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7583,"name":"uint8","nodeType":"ElementaryTypeName","src":"6629:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7586,"mutability":"mutable","name":"r","nameLocation":"6646:1:42","nodeType":"VariableDeclaration","scope":7612,"src":"6638:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6638:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7588,"mutability":"mutable","name":"s","nameLocation":"6657:1:42","nodeType":"VariableDeclaration","scope":7612,"src":"6649:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6649:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6614:45:42"},"returnParameters":{"id":7592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7612,"src":"6683:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7590,"name":"address","nodeType":"ElementaryTypeName","src":"6683:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6682:9:42"},"scope":7677,"src":"6598:232:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7621,"nodeType":"Block","src":"7206:310:42","statements":[{"AST":{"nativeSrc":"7362:148:42","nodeType":"YulBlock","src":"7362:148:42","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7383:4:42","nodeType":"YulLiteral","src":"7383:4:42","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nativeSrc":"7389:34:42","nodeType":"YulLiteral","src":"7389:34:42","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nativeSrc":"7376:6:42","nodeType":"YulIdentifier","src":"7376:6:42"},"nativeSrc":"7376:48:42","nodeType":"YulFunctionCall","src":"7376:48:42"},"nativeSrc":"7376:48:42","nodeType":"YulExpressionStatement","src":"7376:48:42"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7444:4:42","nodeType":"YulLiteral","src":"7444:4:42","type":"","value":"0x1c"},{"name":"hash","nativeSrc":"7450:4:42","nodeType":"YulIdentifier","src":"7450:4:42"}],"functionName":{"name":"mstore","nativeSrc":"7437:6:42","nodeType":"YulIdentifier","src":"7437:6:42"},"nativeSrc":"7437:18:42","nodeType":"YulFunctionCall","src":"7437:18:42"},"nativeSrc":"7437:18:42","nodeType":"YulExpressionStatement","src":"7437:18:42"},{"nativeSrc":"7468:32:42","nodeType":"YulAssignment","src":"7468:32:42","value":{"arguments":[{"kind":"number","nativeSrc":"7489:4:42","nodeType":"YulLiteral","src":"7489:4:42","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7495:4:42","nodeType":"YulLiteral","src":"7495:4:42","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nativeSrc":"7479:9:42","nodeType":"YulIdentifier","src":"7479:9:42"},"nativeSrc":"7479:21:42","nodeType":"YulFunctionCall","src":"7479:21:42"},"variableNames":[{"name":"message","nativeSrc":"7468:7:42","nodeType":"YulIdentifier","src":"7468:7:42"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7615,"isOffset":false,"isSlot":false,"src":"7450:4:42","valueSize":1},{"declaration":7618,"isOffset":false,"isSlot":false,"src":"7468:7:42","valueSize":1}],"id":7620,"nodeType":"InlineAssembly","src":"7353:157:42"}]},"documentation":{"id":7613,"nodeType":"StructuredDocumentation","src":"6836:279:42","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":7622,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7129:22:42","nodeType":"FunctionDefinition","parameters":{"id":7616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7615,"mutability":"mutable","name":"hash","nameLocation":"7160:4:42","nodeType":"VariableDeclaration","scope":7622,"src":"7152:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7152:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7151:14:42"},"returnParameters":{"id":7619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7618,"mutability":"mutable","name":"message","nameLocation":"7197:7:42","nodeType":"VariableDeclaration","scope":7622,"src":"7189:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7188:17:42"},"scope":7677,"src":"7120:396:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7643,"nodeType":"Block","src":"7881:116:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":7633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7925:32:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":7636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7625,"src":"7976:1:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7978:6:42","memberName":"length","nodeType":"MemberAccess","src":"7976:8:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7634,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7311,"src":"7959:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$7311_$","typeString":"type(library Strings)"}},"id":7635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7967:8:42","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":7141,"src":"7959:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":7638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7959:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7639,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7625,"src":"7987:1:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7908:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7912:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"7908:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7908:81:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7630,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7898:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:92:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7629,"id":7642,"nodeType":"Return","src":"7891:99:42"}]},"documentation":{"id":7623,"nodeType":"StructuredDocumentation","src":"7522:274:42","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":7644,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7810:22:42","nodeType":"FunctionDefinition","parameters":{"id":7626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7625,"mutability":"mutable","name":"s","nameLocation":"7846:1:42","nodeType":"VariableDeclaration","scope":7644,"src":"7833:14:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7624,"name":"bytes","nodeType":"ElementaryTypeName","src":"7833:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7832:16:42"},"returnParameters":{"id":7629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7644,"src":"7872:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7872:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7871:9:42"},"scope":7677,"src":"7801:196:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7655,"nodeType":"Block","src":"8443:290:42","statements":[{"AST":{"nativeSrc":"8505:222:42","nodeType":"YulBlock","src":"8505:222:42","statements":[{"nativeSrc":"8519:22:42","nodeType":"YulVariableDeclaration","src":"8519:22:42","value":{"arguments":[{"kind":"number","nativeSrc":"8536:4:42","nodeType":"YulLiteral","src":"8536:4:42","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8530:5:42","nodeType":"YulIdentifier","src":"8530:5:42"},"nativeSrc":"8530:11:42","nodeType":"YulFunctionCall","src":"8530:11:42"},"variables":[{"name":"ptr","nativeSrc":"8523:3:42","nodeType":"YulTypedName","src":"8523:3:42","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8561:3:42","nodeType":"YulIdentifier","src":"8561:3:42"},{"hexValue":"1901","kind":"string","nativeSrc":"8566:10:42","nodeType":"YulLiteral","src":"8566:10:42","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nativeSrc":"8554:6:42","nodeType":"YulIdentifier","src":"8554:6:42"},"nativeSrc":"8554:23:42","nodeType":"YulFunctionCall","src":"8554:23:42"},"nativeSrc":"8554:23:42","nodeType":"YulExpressionStatement","src":"8554:23:42"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"8601:3:42","nodeType":"YulIdentifier","src":"8601:3:42"},{"kind":"number","nativeSrc":"8606:4:42","nodeType":"YulLiteral","src":"8606:4:42","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"8597:3:42","nodeType":"YulIdentifier","src":"8597:3:42"},"nativeSrc":"8597:14:42","nodeType":"YulFunctionCall","src":"8597:14:42"},{"name":"domainSeparator","nativeSrc":"8613:15:42","nodeType":"YulIdentifier","src":"8613:15:42"}],"functionName":{"name":"mstore","nativeSrc":"8590:6:42","nodeType":"YulIdentifier","src":"8590:6:42"},"nativeSrc":"8590:39:42","nodeType":"YulFunctionCall","src":"8590:39:42"},"nativeSrc":"8590:39:42","nodeType":"YulExpressionStatement","src":"8590:39:42"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"8653:3:42","nodeType":"YulIdentifier","src":"8653:3:42"},{"kind":"number","nativeSrc":"8658:4:42","nodeType":"YulLiteral","src":"8658:4:42","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"8649:3:42","nodeType":"YulIdentifier","src":"8649:3:42"},"nativeSrc":"8649:14:42","nodeType":"YulFunctionCall","src":"8649:14:42"},{"name":"structHash","nativeSrc":"8665:10:42","nodeType":"YulIdentifier","src":"8665:10:42"}],"functionName":{"name":"mstore","nativeSrc":"8642:6:42","nodeType":"YulIdentifier","src":"8642:6:42"},"nativeSrc":"8642:34:42","nodeType":"YulFunctionCall","src":"8642:34:42"},"nativeSrc":"8642:34:42","nodeType":"YulExpressionStatement","src":"8642:34:42"},{"nativeSrc":"8689:28:42","nodeType":"YulAssignment","src":"8689:28:42","value":{"arguments":[{"name":"ptr","nativeSrc":"8707:3:42","nodeType":"YulIdentifier","src":"8707:3:42"},{"kind":"number","nativeSrc":"8712:4:42","nodeType":"YulLiteral","src":"8712:4:42","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nativeSrc":"8697:9:42","nodeType":"YulIdentifier","src":"8697:9:42"},"nativeSrc":"8697:20:42","nodeType":"YulFunctionCall","src":"8697:20:42"},"variableNames":[{"name":"data","nativeSrc":"8689:4:42","nodeType":"YulIdentifier","src":"8689:4:42"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7652,"isOffset":false,"isSlot":false,"src":"8689:4:42","valueSize":1},{"declaration":7647,"isOffset":false,"isSlot":false,"src":"8613:15:42","valueSize":1},{"declaration":7649,"isOffset":false,"isSlot":false,"src":"8665:10:42","valueSize":1}],"id":7654,"nodeType":"InlineAssembly","src":"8496:231:42"}]},"documentation":{"id":7645,"nodeType":"StructuredDocumentation","src":"8003:328:42","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"id":7656,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8345:15:42","nodeType":"FunctionDefinition","parameters":{"id":7650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7647,"mutability":"mutable","name":"domainSeparator","nameLocation":"8369:15:42","nodeType":"VariableDeclaration","scope":7656,"src":"8361:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8361:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7649,"mutability":"mutable","name":"structHash","nameLocation":"8394:10:42","nodeType":"VariableDeclaration","scope":7656,"src":"8386:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8386:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8360:45:42"},"returnParameters":{"id":7653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7652,"mutability":"mutable","name":"data","nameLocation":"8437:4:42","nodeType":"VariableDeclaration","scope":7656,"src":"8429:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8429:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8428:14:42"},"scope":7677,"src":"8336:397:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7675,"nodeType":"Block","src":"9048:80:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":7669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9092:10:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":7670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"9104:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7671,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"9115:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9075:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9079:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"9075:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9075:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7666,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9065:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9065:56:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7665,"id":7674,"nodeType":"Return","src":"9058:63:42"}]},"documentation":{"id":7657,"nodeType":"StructuredDocumentation","src":"8739:193:42","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"id":7676,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"8946:31:42","nodeType":"FunctionDefinition","parameters":{"id":7662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7659,"mutability":"mutable","name":"validator","nameLocation":"8986:9:42","nodeType":"VariableDeclaration","scope":7676,"src":"8978:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7658,"name":"address","nodeType":"ElementaryTypeName","src":"8978:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7661,"mutability":"mutable","name":"data","nameLocation":"9010:4:42","nodeType":"VariableDeclaration","scope":7676,"src":"8997:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7660,"name":"bytes","nodeType":"ElementaryTypeName","src":"8997:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8977:38:42"},"returnParameters":{"id":7665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7676,"src":"9039:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9038:9:42"},"scope":7677,"src":"8937:191:42","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7678,"src":"369:8761:42","usedErrors":[],"usedEvents":[]}],"src":"112:9019:42"},"id":42},"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","exportedSymbols":{"ERC165Checker":[7871],"IERC165":[7883]},"id":7872,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7679,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"121:23:43"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":7680,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7872,"sourceUnit":7884,"src":"146:23:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC165Checker","contractDependencies":[],"contractKind":"library","documentation":{"id":7681,"nodeType":"StructuredDocumentation","src":"171:277:43","text":" @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases."},"fullyImplemented":true,"id":7871,"linearizedBaseContracts":[7871],"name":"ERC165Checker","nameLocation":"457:13:43","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7684,"mutability":"constant","name":"_INTERFACE_ID_INVALID","nameLocation":"575:21:43","nodeType":"VariableDeclaration","scope":7871,"src":"551:58:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7682,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30786666666666666666","id":7683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"599:10:43","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"private"},{"body":{"id":7706,"nodeType":"Block","src":"774:357:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7693,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7687,"src":"1008:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":7695,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"1022:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":7694,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1017:4:43","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":7697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1031:11:43","memberName":"interfaceId","nodeType":"MemberAccess","src":"1017:25:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":7692,"name":"supportsERC165InterfaceUnchecked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"975:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":7698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"975:68:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":7703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1059:65:43","subExpression":{"arguments":[{"id":7700,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7687,"src":"1093:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7701,"name":"_INTERFACE_ID_INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"1102:21:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":7699,"name":"supportsERC165InterfaceUnchecked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"1060:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1060:64:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"975:149:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7691,"id":7705,"nodeType":"Return","src":"956:168:43"}]},"documentation":{"id":7685,"nodeType":"StructuredDocumentation","src":"616:83:43","text":" @dev Returns true if `account` supports the {IERC165} interface."},"id":7707,"implemented":true,"kind":"function","modifiers":[],"name":"supportsERC165","nameLocation":"713:14:43","nodeType":"FunctionDefinition","parameters":{"id":7688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7687,"mutability":"mutable","name":"account","nameLocation":"736:7:43","nodeType":"VariableDeclaration","scope":7707,"src":"728:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7686,"name":"address","nodeType":"ElementaryTypeName","src":"728:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"727:17:43"},"returnParameters":{"id":7691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7707,"src":"768:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7689,"name":"bool","nodeType":"ElementaryTypeName","src":"768:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"767:6:43"},"scope":7871,"src":"704:427:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7726,"nodeType":"Block","src":"1442:189:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7718,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"1558:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7717,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"1543:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":7721,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"1603:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7722,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"1612:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":7720,"name":"supportsERC165InterfaceUnchecked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"1570:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":7723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1570:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1543:81:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7716,"id":7725,"nodeType":"Return","src":"1536:88:43"}]},"documentation":{"id":7708,"nodeType":"StructuredDocumentation","src":"1137:207:43","text":" @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}."},"id":7727,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1358:17:43","nodeType":"FunctionDefinition","parameters":{"id":7713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7710,"mutability":"mutable","name":"account","nameLocation":"1384:7:43","nodeType":"VariableDeclaration","scope":7727,"src":"1376:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7709,"name":"address","nodeType":"ElementaryTypeName","src":"1376:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7712,"mutability":"mutable","name":"interfaceId","nameLocation":"1400:11:43","nodeType":"VariableDeclaration","scope":7727,"src":"1393:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7711,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1393:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1375:37:43"},"returnParameters":{"id":7716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7727,"src":"1436:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7714,"name":"bool","nodeType":"ElementaryTypeName","src":"1436:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1435:6:43"},"scope":7871,"src":"1349:282:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7782,"nodeType":"Block","src":"2155:560:43","statements":[{"assignments":[7743],"declarations":[{"constant":false,"id":7743,"mutability":"mutable","name":"interfaceIdsSupported","nameLocation":"2278:21:43","nodeType":"VariableDeclaration","scope":7782,"src":"2264:35:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7741,"name":"bool","nodeType":"ElementaryTypeName","src":"2264:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7742,"nodeType":"ArrayTypeName","src":"2264:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":7750,"initialValue":{"arguments":[{"expression":{"id":7747,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7733,"src":"2313:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":7748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2326:6:43","memberName":"length","nodeType":"MemberAccess","src":"2313:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2302:10:43","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":7744,"name":"bool","nodeType":"ElementaryTypeName","src":"2306:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7745,"nodeType":"ArrayTypeName","src":"2306:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2302:31:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2264:69:43"},{"condition":{"arguments":[{"id":7752,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"2405:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7751,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"2390:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2390:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7779,"nodeType":"IfStatement","src":"2386:284:43","trueBody":{"id":7778,"nodeType":"Block","src":"2415:255:43","statements":[{"body":{"id":7776,"nodeType":"Block","src":"2542:118:43","statements":[{"expression":{"id":7774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7765,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2560:21:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":7767,"indexExpression":{"id":7766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"2582:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2560:24:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7769,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"2620:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7770,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7733,"src":"2629:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":7772,"indexExpression":{"id":7771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"2642:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2629:15:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":7768,"name":"supportsERC165InterfaceUnchecked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"2587:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":7773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2560:85:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7775,"nodeType":"ExpressionStatement","src":"2560:85:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"2512:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7759,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7733,"src":"2516:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2529:6:43","memberName":"length","nodeType":"MemberAccess","src":"2516:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2512:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7777,"initializationExpression":{"assignments":[7755],"declarations":[{"constant":false,"id":7755,"mutability":"mutable","name":"i","nameLocation":"2505:1:43","nodeType":"VariableDeclaration","scope":7777,"src":"2497:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7754,"name":"uint256","nodeType":"ElementaryTypeName","src":"2497:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7757,"initialValue":{"hexValue":"30","id":7756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2509:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2497:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2537:3:43","subExpression":{"id":7762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"2537:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7764,"nodeType":"ExpressionStatement","src":"2537:3:43"},"nodeType":"ForStatement","src":"2492:168:43"}]}},{"expression":{"id":7780,"name":"interfaceIdsSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2687:21:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":7738,"id":7781,"nodeType":"Return","src":"2680:28:43"}]},"documentation":{"id":7728,"nodeType":"StructuredDocumentation","src":"1637:374:43","text":" @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}.\n _Available since v3.4._"},"id":7783,"implemented":true,"kind":"function","modifiers":[],"name":"getSupportedInterfaces","nameLocation":"2025:22:43","nodeType":"FunctionDefinition","parameters":{"id":7734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7730,"mutability":"mutable","name":"account","nameLocation":"2065:7:43","nodeType":"VariableDeclaration","scope":7783,"src":"2057:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7729,"name":"address","nodeType":"ElementaryTypeName","src":"2057:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7733,"mutability":"mutable","name":"interfaceIds","nameLocation":"2098:12:43","nodeType":"VariableDeclaration","scope":7783,"src":"2082:28:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":7731,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2082:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":7732,"nodeType":"ArrayTypeName","src":"2082:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2047:69:43"},"returnParameters":{"id":7738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7783,"src":"2140:13:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":7735,"name":"bool","nodeType":"ElementaryTypeName","src":"2140:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7736,"nodeType":"ArrayTypeName","src":"2140:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2139:15:43"},"scope":7871,"src":"2016:699:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7828,"nodeType":"Block","src":"3157:436:43","statements":[{"condition":{"id":7797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3213:24:43","subExpression":{"arguments":[{"id":7795,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7786,"src":"3229:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7794,"name":"supportsERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"3214:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3214:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7801,"nodeType":"IfStatement","src":"3209:67:43","trueBody":{"id":7800,"nodeType":"Block","src":"3239:37:43","statements":[{"expression":{"hexValue":"66616c7365","id":7798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3260:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":7793,"id":7799,"nodeType":"Return","src":"3253:12:43"}]}},{"body":{"id":7824,"nodeType":"Block","src":"3395:134:43","statements":[{"condition":{"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3413:59:43","subExpression":{"arguments":[{"id":7814,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7786,"src":"3447:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7815,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7789,"src":"3456:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":7817,"indexExpression":{"id":7816,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"3469:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3456:15:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":7813,"name":"supportsERC165InterfaceUnchecked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"3414:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7823,"nodeType":"IfStatement","src":"3409:110:43","trueBody":{"id":7822,"nodeType":"Block","src":"3474:45:43","statements":[{"expression":{"hexValue":"66616c7365","id":7820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3499:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":7793,"id":7821,"nodeType":"Return","src":"3492:12:43"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"3365:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7807,"name":"interfaceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7789,"src":"3369:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3382:6:43","memberName":"length","nodeType":"MemberAccess","src":"3369:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3365:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7825,"initializationExpression":{"assignments":[7803],"declarations":[{"constant":false,"id":7803,"mutability":"mutable","name":"i","nameLocation":"3358:1:43","nodeType":"VariableDeclaration","scope":7825,"src":"3350:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7802,"name":"uint256","nodeType":"ElementaryTypeName","src":"3350:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7805,"initialValue":{"hexValue":"30","id":7804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3362:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3350:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3390:3:43","subExpression":{"id":7810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"3390:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7812,"nodeType":"ExpressionStatement","src":"3390:3:43"},"nodeType":"ForStatement","src":"3345:184:43"},{"expression":{"hexValue":"74727565","id":7826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3582:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7793,"id":7827,"nodeType":"Return","src":"3575:11:43"}]},"documentation":{"id":7784,"nodeType":"StructuredDocumentation","src":"2721:324:43","text":" @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}."},"id":7829,"implemented":true,"kind":"function","modifiers":[],"name":"supportsAllInterfaces","nameLocation":"3059:21:43","nodeType":"FunctionDefinition","parameters":{"id":7790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7786,"mutability":"mutable","name":"account","nameLocation":"3089:7:43","nodeType":"VariableDeclaration","scope":7829,"src":"3081:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7785,"name":"address","nodeType":"ElementaryTypeName","src":"3081:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7789,"mutability":"mutable","name":"interfaceIds","nameLocation":"3114:12:43","nodeType":"VariableDeclaration","scope":7829,"src":"3098:28:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":7787,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3098:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":7788,"nodeType":"ArrayTypeName","src":"3098:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3080:47:43"},"returnParameters":{"id":7793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7829,"src":"3151:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7791,"name":"bool","nodeType":"ElementaryTypeName","src":"3151:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3150:6:43"},"scope":7871,"src":"3050:543:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7869,"nodeType":"Block","src":"4529:539:43","statements":[{"assignments":[7840],"declarations":[{"constant":false,"id":7840,"mutability":"mutable","name":"encodedParams","nameLocation":"4576:13:43","nodeType":"VariableDeclaration","scope":7869,"src":"4563:26:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7839,"name":"bytes","nodeType":"ElementaryTypeName","src":"4563:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7848,"initialValue":{"arguments":[{"expression":{"expression":{"id":7843,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"4615:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}},"id":7844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4623:17:43","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7882,"src":"4615:25:43","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes4_$returns$_t_bool_$","typeString":"function IERC165.supportsInterface(bytes4) view returns (bool)"}},"id":7845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4641:8:43","memberName":"selector","nodeType":"MemberAccess","src":"4615:34:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7846,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7834,"src":"4651:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4592:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4596:18:43","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4592:22:43","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4592:71:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4563:100:43"},{"assignments":[7850],"declarations":[{"constant":false,"id":7850,"mutability":"mutable","name":"success","nameLocation":"4710:7:43","nodeType":"VariableDeclaration","scope":7869,"src":"4705:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7849,"name":"bool","nodeType":"ElementaryTypeName","src":"4705:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7851,"nodeType":"VariableDeclarationStatement","src":"4705:12:43"},{"assignments":[7853],"declarations":[{"constant":false,"id":7853,"mutability":"mutable","name":"returnSize","nameLocation":"4735:10:43","nodeType":"VariableDeclaration","scope":7869,"src":"4727:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7852,"name":"uint256","nodeType":"ElementaryTypeName","src":"4727:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7854,"nodeType":"VariableDeclarationStatement","src":"4727:18:43"},{"assignments":[7856],"declarations":[{"constant":false,"id":7856,"mutability":"mutable","name":"returnValue","nameLocation":"4763:11:43","nodeType":"VariableDeclaration","scope":7869,"src":"4755:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7855,"name":"uint256","nodeType":"ElementaryTypeName","src":"4755:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7857,"nodeType":"VariableDeclarationStatement","src":"4755:19:43"},{"AST":{"nativeSrc":"4793:203:43","nodeType":"YulBlock","src":"4793:203:43","statements":[{"nativeSrc":"4807:97:43","nodeType":"YulAssignment","src":"4807:97:43","value":{"arguments":[{"kind":"number","nativeSrc":"4829:5:43","nodeType":"YulLiteral","src":"4829:5:43","type":"","value":"30000"},{"name":"account","nativeSrc":"4836:7:43","nodeType":"YulIdentifier","src":"4836:7:43"},{"arguments":[{"name":"encodedParams","nativeSrc":"4849:13:43","nodeType":"YulIdentifier","src":"4849:13:43"},{"kind":"number","nativeSrc":"4864:4:43","nodeType":"YulLiteral","src":"4864:4:43","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4845:3:43","nodeType":"YulIdentifier","src":"4845:3:43"},"nativeSrc":"4845:24:43","nodeType":"YulFunctionCall","src":"4845:24:43"},{"arguments":[{"name":"encodedParams","nativeSrc":"4877:13:43","nodeType":"YulIdentifier","src":"4877:13:43"}],"functionName":{"name":"mload","nativeSrc":"4871:5:43","nodeType":"YulIdentifier","src":"4871:5:43"},"nativeSrc":"4871:20:43","nodeType":"YulFunctionCall","src":"4871:20:43"},{"kind":"number","nativeSrc":"4893:4:43","nodeType":"YulLiteral","src":"4893:4:43","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4899:4:43","nodeType":"YulLiteral","src":"4899:4:43","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"4818:10:43","nodeType":"YulIdentifier","src":"4818:10:43"},"nativeSrc":"4818:86:43","nodeType":"YulFunctionCall","src":"4818:86:43"},"variableNames":[{"name":"success","nativeSrc":"4807:7:43","nodeType":"YulIdentifier","src":"4807:7:43"}]},{"nativeSrc":"4917:30:43","nodeType":"YulAssignment","src":"4917:30:43","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4931:14:43","nodeType":"YulIdentifier","src":"4931:14:43"},"nativeSrc":"4931:16:43","nodeType":"YulFunctionCall","src":"4931:16:43"},"variableNames":[{"name":"returnSize","nativeSrc":"4917:10:43","nodeType":"YulIdentifier","src":"4917:10:43"}]},{"nativeSrc":"4960:26:43","nodeType":"YulAssignment","src":"4960:26:43","value":{"arguments":[{"kind":"number","nativeSrc":"4981:4:43","nodeType":"YulLiteral","src":"4981:4:43","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"4975:5:43","nodeType":"YulIdentifier","src":"4975:5:43"},"nativeSrc":"4975:11:43","nodeType":"YulFunctionCall","src":"4975:11:43"},"variableNames":[{"name":"returnValue","nativeSrc":"4960:11:43","nodeType":"YulIdentifier","src":"4960:11:43"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":7832,"isOffset":false,"isSlot":false,"src":"4836:7:43","valueSize":1},{"declaration":7840,"isOffset":false,"isSlot":false,"src":"4849:13:43","valueSize":1},{"declaration":7840,"isOffset":false,"isSlot":false,"src":"4877:13:43","valueSize":1},{"declaration":7853,"isOffset":false,"isSlot":false,"src":"4917:10:43","valueSize":1},{"declaration":7856,"isOffset":false,"isSlot":false,"src":"4960:11:43","valueSize":1},{"declaration":7850,"isOffset":false,"isSlot":false,"src":"4807:7:43","valueSize":1}],"id":7858,"nodeType":"InlineAssembly","src":"4784:212:43"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7859,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7850,"src":"5013:7:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7860,"name":"returnSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7853,"src":"5024:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783230","id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5038:4:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5024:18:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5013:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7864,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"5046:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5060:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5046:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5013:48:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7838,"id":7868,"nodeType":"Return","src":"5006:55:43"}]},"documentation":{"id":7830,"nodeType":"StructuredDocumentation","src":"3599:817:43","text":" @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Some precompiled contracts will falsely indicate support for a given interface, so caution\n should be exercised when using this function.\n Interface identification is specified in ERC-165."},"id":7870,"implemented":true,"kind":"function","modifiers":[],"name":"supportsERC165InterfaceUnchecked","nameLocation":"4430:32:43","nodeType":"FunctionDefinition","parameters":{"id":7835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7832,"mutability":"mutable","name":"account","nameLocation":"4471:7:43","nodeType":"VariableDeclaration","scope":7870,"src":"4463:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7831,"name":"address","nodeType":"ElementaryTypeName","src":"4463:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7834,"mutability":"mutable","name":"interfaceId","nameLocation":"4487:11:43","nodeType":"VariableDeclaration","scope":7870,"src":"4480:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7833,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4480:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4462:37:43"},"returnParameters":{"id":7838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7870,"src":"4523:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7836,"name":"bool","nodeType":"ElementaryTypeName","src":"4523:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4522:6:43"},"scope":7871,"src":"4421:647:43","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":7872,"src":"449:4621:43","usedErrors":[],"usedEvents":[]}],"src":"121:4950:43"},"id":43},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[7883]},"id":7884,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7873,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:44"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":7874,"nodeType":"StructuredDocumentation","src":"125:279:44","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":7883,"linearizedBaseContracts":[7883],"name":"IERC165","nameLocation":"415:7:44","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7875,"nodeType":"StructuredDocumentation","src":"429:340:44","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":7882,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:44","nodeType":"FunctionDefinition","parameters":{"id":7878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7877,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:44","nodeType":"VariableDeclaration","scope":7882,"src":"801:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7876,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:44"},"returnParameters":{"id":7881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7882,"src":"844:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7879,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:44"},"scope":7883,"src":"774:76:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7884,"src":"405:447:44","usedErrors":[],"usedEvents":[]}],"src":"100:753:44"},"id":44},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[8749]},"id":8750,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7885,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:45"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":7886,"nodeType":"StructuredDocumentation","src":"128:73:45","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":8749,"linearizedBaseContracts":[8749],"name":"Math","nameLocation":"210:4:45","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":7890,"members":[{"id":7887,"name":"Down","nameLocation":"245:4:45","nodeType":"EnumValue","src":"245:4:45"},{"id":7888,"name":"Up","nameLocation":"287:2:45","nodeType":"EnumValue","src":"287:2:45"},{"id":7889,"name":"Zero","nameLocation":"318:4:45","nodeType":"EnumValue","src":"318:4:45"}],"name":"Rounding","nameLocation":"226:8:45","nodeType":"EnumDefinition","src":"221:122:45"},{"body":{"id":7907,"nodeType":"Block","src":"480:37:45","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7900,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"497:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7901,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"501:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7904,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"509:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:45","trueExpression":{"id":7903,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"505:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7899,"id":7906,"nodeType":"Return","src":"490:20:45"}]},"documentation":{"id":7891,"nodeType":"StructuredDocumentation","src":"349:59:45","text":" @dev Returns the largest of two numbers."},"id":7908,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:45","nodeType":"FunctionDefinition","parameters":{"id":7896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7893,"mutability":"mutable","name":"a","nameLocation":"434:1:45","nodeType":"VariableDeclaration","scope":7908,"src":"426:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7895,"mutability":"mutable","name":"b","nameLocation":"445:1:45","nodeType":"VariableDeclaration","scope":7908,"src":"437:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7894,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:45"},"returnParameters":{"id":7899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7908,"src":"471:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7897,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:45"},"scope":8749,"src":"413:104:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7925,"nodeType":"Block","src":"655:37:45","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7918,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"672:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7919,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"676:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7922,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"684:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:45","trueExpression":{"id":7921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"680:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7917,"id":7924,"nodeType":"Return","src":"665:20:45"}]},"documentation":{"id":7909,"nodeType":"StructuredDocumentation","src":"523:60:45","text":" @dev Returns the smallest of two numbers."},"id":7926,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:45","nodeType":"FunctionDefinition","parameters":{"id":7914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7911,"mutability":"mutable","name":"a","nameLocation":"609:1:45","nodeType":"VariableDeclaration","scope":7926,"src":"601:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7910,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7913,"mutability":"mutable","name":"b","nameLocation":"620:1:45","nodeType":"VariableDeclaration","scope":7926,"src":"612:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7912,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:45"},"returnParameters":{"id":7917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7926,"src":"646:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7915,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:45"},"scope":8749,"src":"588:104:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7948,"nodeType":"Block","src":"876:82:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7936,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7929,"src":"931:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":7937,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"935:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7939,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7940,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7929,"src":"941:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7941,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"945:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7943,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":7944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7935,"id":7947,"nodeType":"Return","src":"923:28:45"}]},"documentation":{"id":7927,"nodeType":"StructuredDocumentation","src":"698:102:45","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":7949,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:45","nodeType":"FunctionDefinition","parameters":{"id":7932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7929,"mutability":"mutable","name":"a","nameLocation":"830:1:45","nodeType":"VariableDeclaration","scope":7949,"src":"822:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7928,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7931,"mutability":"mutable","name":"b","nameLocation":"841:1:45","nodeType":"VariableDeclaration","scope":7949,"src":"833:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7930,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:45"},"returnParameters":{"id":7935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7949,"src":"867:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7933,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:45"},"scope":8749,"src":"805:153:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7973,"nodeType":"Block","src":"1228:123:45","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7959,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"1316:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7963,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"1330:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7966,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7967,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7954,"src":"1339:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:45","trueExpression":{"hexValue":"30","id":7962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7958,"id":7972,"nodeType":"Return","src":"1309:35:45"}]},"documentation":{"id":7950,"nodeType":"StructuredDocumentation","src":"964:188:45","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":7974,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:45","nodeType":"FunctionDefinition","parameters":{"id":7955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7952,"mutability":"mutable","name":"a","nameLocation":"1182:1:45","nodeType":"VariableDeclaration","scope":7974,"src":"1174:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7954,"mutability":"mutable","name":"b","nameLocation":"1193:1:45","nodeType":"VariableDeclaration","scope":7974,"src":"1185:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7953,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:45"},"returnParameters":{"id":7958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7974,"src":"1219:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:45"},"scope":8749,"src":"1157:194:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8096,"nodeType":"Block","src":"1765:4115:45","statements":[{"id":8095,"nodeType":"UncheckedBlock","src":"1775:4099:45","statements":[{"assignments":[7987],"declarations":[{"constant":false,"id":7987,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:45","nodeType":"VariableDeclaration","scope":8095,"src":"2096:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7986,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7988,"nodeType":"VariableDeclarationStatement","src":"2096:13:45"},{"assignments":[7990],"declarations":[{"constant":false,"id":7990,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:45","nodeType":"VariableDeclaration","scope":8095,"src":"2168:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7991,"nodeType":"VariableDeclarationStatement","src":"2168:13:45"},{"AST":{"nativeSrc":"2248:157:45","nodeType":"YulBlock","src":"2248:157:45","statements":[{"nativeSrc":"2266:30:45","nodeType":"YulVariableDeclaration","src":"2266:30:45","value":{"arguments":[{"name":"x","nativeSrc":"2283:1:45","nodeType":"YulIdentifier","src":"2283:1:45"},{"name":"y","nativeSrc":"2286:1:45","nodeType":"YulIdentifier","src":"2286:1:45"},{"arguments":[{"kind":"number","nativeSrc":"2293:1:45","nodeType":"YulLiteral","src":"2293:1:45","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2289:3:45","nodeType":"YulIdentifier","src":"2289:3:45"},"nativeSrc":"2289:6:45","nodeType":"YulFunctionCall","src":"2289:6:45"}],"functionName":{"name":"mulmod","nativeSrc":"2276:6:45","nodeType":"YulIdentifier","src":"2276:6:45"},"nativeSrc":"2276:20:45","nodeType":"YulFunctionCall","src":"2276:20:45"},"variables":[{"name":"mm","nativeSrc":"2270:2:45","nodeType":"YulTypedName","src":"2270:2:45","type":""}]},{"nativeSrc":"2313:18:45","nodeType":"YulAssignment","src":"2313:18:45","value":{"arguments":[{"name":"x","nativeSrc":"2326:1:45","nodeType":"YulIdentifier","src":"2326:1:45"},{"name":"y","nativeSrc":"2329:1:45","nodeType":"YulIdentifier","src":"2329:1:45"}],"functionName":{"name":"mul","nativeSrc":"2322:3:45","nodeType":"YulIdentifier","src":"2322:3:45"},"nativeSrc":"2322:9:45","nodeType":"YulFunctionCall","src":"2322:9:45"},"variableNames":[{"name":"prod0","nativeSrc":"2313:5:45","nodeType":"YulIdentifier","src":"2313:5:45"}]},{"nativeSrc":"2348:43:45","nodeType":"YulAssignment","src":"2348:43:45","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2365:2:45","nodeType":"YulIdentifier","src":"2365:2:45"},{"name":"prod0","nativeSrc":"2369:5:45","nodeType":"YulIdentifier","src":"2369:5:45"}],"functionName":{"name":"sub","nativeSrc":"2361:3:45","nodeType":"YulIdentifier","src":"2361:3:45"},"nativeSrc":"2361:14:45","nodeType":"YulFunctionCall","src":"2361:14:45"},{"arguments":[{"name":"mm","nativeSrc":"2380:2:45","nodeType":"YulIdentifier","src":"2380:2:45"},{"name":"prod0","nativeSrc":"2384:5:45","nodeType":"YulIdentifier","src":"2384:5:45"}],"functionName":{"name":"lt","nativeSrc":"2377:2:45","nodeType":"YulIdentifier","src":"2377:2:45"},"nativeSrc":"2377:13:45","nodeType":"YulFunctionCall","src":"2377:13:45"}],"functionName":{"name":"sub","nativeSrc":"2357:3:45","nodeType":"YulIdentifier","src":"2357:3:45"},"nativeSrc":"2357:34:45","nodeType":"YulFunctionCall","src":"2357:34:45"},"variableNames":[{"name":"prod1","nativeSrc":"2348:5:45","nodeType":"YulIdentifier","src":"2348:5:45"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":7987,"isOffset":false,"isSlot":false,"src":"2313:5:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"2369:5:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"2384:5:45","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"2348:5:45","valueSize":1},{"declaration":7977,"isOffset":false,"isSlot":false,"src":"2283:1:45","valueSize":1},{"declaration":7977,"isOffset":false,"isSlot":false,"src":"2326:1:45","valueSize":1},{"declaration":7979,"isOffset":false,"isSlot":false,"src":"2286:1:45","valueSize":1},{"declaration":7979,"isOffset":false,"isSlot":false,"src":"2329:1:45","valueSize":1}],"id":7992,"nodeType":"InlineAssembly","src":"2239:166:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7993,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7990,"src":"2486:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8001,"nodeType":"IfStatement","src":"2482:368:45","trueBody":{"id":8000,"nodeType":"Block","src":"2498:352:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7996,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7987,"src":"2816:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7997,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"2824:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7985,"id":7999,"nodeType":"Return","src":"2809:26:45"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8003,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"2960:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8004,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7990,"src":"2974:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":8006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":8002,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2952:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8008,"nodeType":"ExpressionStatement","src":"2952:53:45"},{"assignments":[8010],"declarations":[{"constant":false,"id":8010,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:45","nodeType":"VariableDeclaration","scope":8095,"src":"3261:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8009,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8011,"nodeType":"VariableDeclarationStatement","src":"3261:17:45"},{"AST":{"nativeSrc":"3301:291:45","nodeType":"YulBlock","src":"3301:291:45","statements":[{"nativeSrc":"3370:38:45","nodeType":"YulAssignment","src":"3370:38:45","value":{"arguments":[{"name":"x","nativeSrc":"3390:1:45","nodeType":"YulIdentifier","src":"3390:1:45"},{"name":"y","nativeSrc":"3393:1:45","nodeType":"YulIdentifier","src":"3393:1:45"},{"name":"denominator","nativeSrc":"3396:11:45","nodeType":"YulIdentifier","src":"3396:11:45"}],"functionName":{"name":"mulmod","nativeSrc":"3383:6:45","nodeType":"YulIdentifier","src":"3383:6:45"},"nativeSrc":"3383:25:45","nodeType":"YulFunctionCall","src":"3383:25:45"},"variableNames":[{"name":"remainder","nativeSrc":"3370:9:45","nodeType":"YulIdentifier","src":"3370:9:45"}]},{"nativeSrc":"3490:41:45","nodeType":"YulAssignment","src":"3490:41:45","value":{"arguments":[{"name":"prod1","nativeSrc":"3503:5:45","nodeType":"YulIdentifier","src":"3503:5:45"},{"arguments":[{"name":"remainder","nativeSrc":"3513:9:45","nodeType":"YulIdentifier","src":"3513:9:45"},{"name":"prod0","nativeSrc":"3524:5:45","nodeType":"YulIdentifier","src":"3524:5:45"}],"functionName":{"name":"gt","nativeSrc":"3510:2:45","nodeType":"YulIdentifier","src":"3510:2:45"},"nativeSrc":"3510:20:45","nodeType":"YulFunctionCall","src":"3510:20:45"}],"functionName":{"name":"sub","nativeSrc":"3499:3:45","nodeType":"YulIdentifier","src":"3499:3:45"},"nativeSrc":"3499:32:45","nodeType":"YulFunctionCall","src":"3499:32:45"},"variableNames":[{"name":"prod1","nativeSrc":"3490:5:45","nodeType":"YulIdentifier","src":"3490:5:45"}]},{"nativeSrc":"3548:30:45","nodeType":"YulAssignment","src":"3548:30:45","value":{"arguments":[{"name":"prod0","nativeSrc":"3561:5:45","nodeType":"YulIdentifier","src":"3561:5:45"},{"name":"remainder","nativeSrc":"3568:9:45","nodeType":"YulIdentifier","src":"3568:9:45"}],"functionName":{"name":"sub","nativeSrc":"3557:3:45","nodeType":"YulIdentifier","src":"3557:3:45"},"nativeSrc":"3557:21:45","nodeType":"YulFunctionCall","src":"3557:21:45"},"variableNames":[{"name":"prod0","nativeSrc":"3548:5:45","nodeType":"YulIdentifier","src":"3548:5:45"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":7981,"isOffset":false,"isSlot":false,"src":"3396:11:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"3524:5:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"3548:5:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"3561:5:45","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"3490:5:45","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"3503:5:45","valueSize":1},{"declaration":8010,"isOffset":false,"isSlot":false,"src":"3370:9:45","valueSize":1},{"declaration":8010,"isOffset":false,"isSlot":false,"src":"3513:9:45","valueSize":1},{"declaration":8010,"isOffset":false,"isSlot":false,"src":"3568:9:45","valueSize":1},{"declaration":7977,"isOffset":false,"isSlot":false,"src":"3390:1:45","valueSize":1},{"declaration":7979,"isOffset":false,"isSlot":false,"src":"3393:1:45","valueSize":1}],"id":8012,"nodeType":"InlineAssembly","src":"3292:300:45"},{"assignments":[8014],"declarations":[{"constant":false,"id":8014,"mutability":"mutable","name":"twos","nameLocation":"3907:4:45","nodeType":"VariableDeclaration","scope":8095,"src":"3899:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8013,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8022,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8015,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"3914:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:45","subExpression":{"id":8016,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"3930:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:45"},{"AST":{"nativeSrc":"3969:362:45","nodeType":"YulBlock","src":"3969:362:45","statements":[{"nativeSrc":"4034:37:45","nodeType":"YulAssignment","src":"4034:37:45","value":{"arguments":[{"name":"denominator","nativeSrc":"4053:11:45","nodeType":"YulIdentifier","src":"4053:11:45"},{"name":"twos","nativeSrc":"4066:4:45","nodeType":"YulIdentifier","src":"4066:4:45"}],"functionName":{"name":"div","nativeSrc":"4049:3:45","nodeType":"YulIdentifier","src":"4049:3:45"},"nativeSrc":"4049:22:45","nodeType":"YulFunctionCall","src":"4049:22:45"},"variableNames":[{"name":"denominator","nativeSrc":"4034:11:45","nodeType":"YulIdentifier","src":"4034:11:45"}]},{"nativeSrc":"4138:25:45","nodeType":"YulAssignment","src":"4138:25:45","value":{"arguments":[{"name":"prod0","nativeSrc":"4151:5:45","nodeType":"YulIdentifier","src":"4151:5:45"},{"name":"twos","nativeSrc":"4158:4:45","nodeType":"YulIdentifier","src":"4158:4:45"}],"functionName":{"name":"div","nativeSrc":"4147:3:45","nodeType":"YulIdentifier","src":"4147:3:45"},"nativeSrc":"4147:16:45","nodeType":"YulFunctionCall","src":"4147:16:45"},"variableNames":[{"name":"prod0","nativeSrc":"4138:5:45","nodeType":"YulIdentifier","src":"4138:5:45"}]},{"nativeSrc":"4278:39:45","nodeType":"YulAssignment","src":"4278:39:45","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4298:1:45","nodeType":"YulLiteral","src":"4298:1:45","type":"","value":"0"},{"name":"twos","nativeSrc":"4301:4:45","nodeType":"YulIdentifier","src":"4301:4:45"}],"functionName":{"name":"sub","nativeSrc":"4294:3:45","nodeType":"YulIdentifier","src":"4294:3:45"},"nativeSrc":"4294:12:45","nodeType":"YulFunctionCall","src":"4294:12:45"},{"name":"twos","nativeSrc":"4308:4:45","nodeType":"YulIdentifier","src":"4308:4:45"}],"functionName":{"name":"div","nativeSrc":"4290:3:45","nodeType":"YulIdentifier","src":"4290:3:45"},"nativeSrc":"4290:23:45","nodeType":"YulFunctionCall","src":"4290:23:45"},{"kind":"number","nativeSrc":"4315:1:45","nodeType":"YulLiteral","src":"4315:1:45","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4286:3:45","nodeType":"YulIdentifier","src":"4286:3:45"},"nativeSrc":"4286:31:45","nodeType":"YulFunctionCall","src":"4286:31:45"},"variableNames":[{"name":"twos","nativeSrc":"4278:4:45","nodeType":"YulIdentifier","src":"4278:4:45"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":7981,"isOffset":false,"isSlot":false,"src":"4034:11:45","valueSize":1},{"declaration":7981,"isOffset":false,"isSlot":false,"src":"4053:11:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"4138:5:45","valueSize":1},{"declaration":7987,"isOffset":false,"isSlot":false,"src":"4151:5:45","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"4066:4:45","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"4158:4:45","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"4278:4:45","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"4301:4:45","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"4308:4:45","valueSize":1}],"id":8023,"nodeType":"InlineAssembly","src":"3960:371:45"},{"expression":{"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8024,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7987,"src":"4397:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8025,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7990,"src":"4406:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8026,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8014,"src":"4414:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8029,"nodeType":"ExpressionStatement","src":"4397:21:45"},{"assignments":[8031],"declarations":[{"constant":false,"id":8031,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:45","nodeType":"VariableDeclaration","scope":8095,"src":"4736:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8030,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8038,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":8032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8033,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"4759:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:45"},{"expression":{"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8039,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"4992:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8041,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5007:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8042,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5021:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8046,"nodeType":"ExpressionStatement","src":"4992:36:45"},{"expression":{"id":8053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8047,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5061:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8049,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5076:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8050,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5090:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8054,"nodeType":"ExpressionStatement","src":"5061:36:45"},{"expression":{"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8055,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5131:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8057,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5146:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8058,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5160:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8062,"nodeType":"ExpressionStatement","src":"5131:36:45"},{"expression":{"id":8069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8063,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5201:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8065,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5216:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8066,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5230:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8070,"nodeType":"ExpressionStatement","src":"5201:36:45"},{"expression":{"id":8077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8071,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5271:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8073,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5286:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8074,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5300:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8078,"nodeType":"ExpressionStatement","src":"5271:36:45"},{"expression":{"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8079,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5342:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8081,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7981,"src":"5357:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8082,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5371:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8086,"nodeType":"ExpressionStatement","src":"5342:36:45"},{"expression":{"id":8091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8087,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7984,"src":"5812:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8088,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7987,"src":"5821:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8089,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"5829:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8092,"nodeType":"ExpressionStatement","src":"5812:24:45"},{"expression":{"id":8093,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7984,"src":"5857:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7985,"id":8094,"nodeType":"Return","src":"5850:13:45"}]}]},"documentation":{"id":7975,"nodeType":"StructuredDocumentation","src":"1357:305:45","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":8097,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:45","nodeType":"FunctionDefinition","parameters":{"id":7982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7977,"mutability":"mutable","name":"x","nameLocation":"1691:1:45","nodeType":"VariableDeclaration","scope":8097,"src":"1683:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7976,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7979,"mutability":"mutable","name":"y","nameLocation":"1702:1:45","nodeType":"VariableDeclaration","scope":8097,"src":"1694:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7981,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:45","nodeType":"VariableDeclaration","scope":8097,"src":"1705:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7980,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:45"},"returnParameters":{"id":7985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7984,"mutability":"mutable","name":"result","nameLocation":"1757:6:45","nodeType":"VariableDeclaration","scope":8097,"src":"1749:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7983,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:45"},"scope":8749,"src":"1667:4213:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8140,"nodeType":"Block","src":"6122:189:45","statements":[{"assignments":[8113],"declarations":[{"constant":false,"id":8113,"mutability":"mutable","name":"result","nameLocation":"6140:6:45","nodeType":"VariableDeclaration","scope":8140,"src":"6132:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8112,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8119,"initialValue":{"arguments":[{"id":8115,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"6156:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8116,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"6159:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8117,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"6162:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8114,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[8097,8141],"referencedDeclaration":8097,"src":"6149:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"id":8123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8120,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8107,"src":"6188:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8121,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"6200:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:45","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"6200:11:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"src":"6188:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8125,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"6222:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8126,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"6225:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8127,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"6228:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8124,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:45","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8137,"nodeType":"IfStatement","src":"6184:98:45","trueBody":{"id":8136,"nodeType":"Block","src":"6246:36:45","statements":[{"expression":{"id":8134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8132,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"6260:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8135,"nodeType":"ExpressionStatement","src":"6260:11:45"}]}},{"expression":{"id":8138,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"6298:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8111,"id":8139,"nodeType":"Return","src":"6291:13:45"}]},"documentation":{"id":8098,"nodeType":"StructuredDocumentation","src":"5886:121:45","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":8141,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:45","nodeType":"FunctionDefinition","parameters":{"id":8108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"x","nameLocation":"6036:1:45","nodeType":"VariableDeclaration","scope":8141,"src":"6028:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8099,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"y","nameLocation":"6047:1:45","nodeType":"VariableDeclaration","scope":8141,"src":"6039:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8101,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8104,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:45","nodeType":"VariableDeclaration","scope":8141,"src":"6050:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8103,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8107,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:45","nodeType":"VariableDeclaration","scope":8141,"src":"6071:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":8106,"nodeType":"UserDefinedTypeName","pathNode":{"id":8105,"name":"Rounding","nameLocations":["6071:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"6071:8:45"},"referencedDeclaration":7890,"src":"6071:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:45"},"returnParameters":{"id":8111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8141,"src":"6113:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8109,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:45"},"scope":8749,"src":"6012:299:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8252,"nodeType":"Block","src":"6587:1585:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8149,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"6601:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8155,"nodeType":"IfStatement","src":"6597:45:45","trueBody":{"id":8154,"nodeType":"Block","src":"6609:33:45","statements":[{"expression":{"hexValue":"30","id":8152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8148,"id":8153,"nodeType":"Return","src":"6623:8:45"}]}},{"assignments":[8157],"declarations":[{"constant":false,"id":8157,"mutability":"mutable","name":"result","nameLocation":"7329:6:45","nodeType":"VariableDeclaration","scope":8252,"src":"7321:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8156,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8166,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7349:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8159,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8421,8457],"referencedDeclaration":8421,"src":"7344:4:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:45"},{"id":8251,"nodeType":"UncheckedBlock","src":"7758:408:45","statements":[{"expression":{"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8167,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7782:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8168,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7792:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8169,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7801:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8170,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7805:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8173,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8177,"nodeType":"ExpressionStatement","src":"7782:35:45"},{"expression":{"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8178,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7831:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8179,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7841:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8180,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7850:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8181,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7854:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8188,"nodeType":"ExpressionStatement","src":"7831:35:45"},{"expression":{"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8189,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7880:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8190,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7890:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8191,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7899:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8192,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7903:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8199,"nodeType":"ExpressionStatement","src":"7880:35:45"},{"expression":{"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8200,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7929:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8201,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7939:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8202,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7948:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8203,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7952:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8206,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8210,"nodeType":"ExpressionStatement","src":"7929:35:45"},{"expression":{"id":8220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8211,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7978:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8212,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7988:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8213,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"7997:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8214,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8001:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8221,"nodeType":"ExpressionStatement","src":"7978:35:45"},{"expression":{"id":8231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8222,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8027:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8223,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8037:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8224,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"8046:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8225,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8050:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8232,"nodeType":"ExpressionStatement","src":"8027:35:45"},{"expression":{"id":8242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8233,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8076:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8234,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8086:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8235,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"8095:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8236,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8099:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8243,"nodeType":"ExpressionStatement","src":"8076:35:45"},{"expression":{"arguments":[{"id":8245,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8136:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8246,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"8144:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8247,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"8148:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8244,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"8132:3:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8148,"id":8250,"nodeType":"Return","src":"8125:30:45"}]}]},"documentation":{"id":8142,"nodeType":"StructuredDocumentation","src":"6317:208:45","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":8253,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:45","nodeType":"FunctionDefinition","parameters":{"id":8145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8144,"mutability":"mutable","name":"a","nameLocation":"6552:1:45","nodeType":"VariableDeclaration","scope":8253,"src":"6544:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8143,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:45"},"returnParameters":{"id":8148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8253,"src":"6578:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8146,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:45"},"scope":8749,"src":"6530:1642:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8288,"nodeType":"Block","src":"8348:161:45","statements":[{"id":8287,"nodeType":"UncheckedBlock","src":"8358:145:45","statements":[{"assignments":[8265],"declarations":[{"constant":false,"id":8265,"mutability":"mutable","name":"result","nameLocation":"8390:6:45","nodeType":"VariableDeclaration","scope":8287,"src":"8382:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8264,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8269,"initialValue":{"arguments":[{"id":8267,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"8404:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8266,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[8253,8289],"referencedDeclaration":8253,"src":"8399:4:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:45"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8270,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8265,"src":"8427:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"id":8274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8271,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"8437:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8272,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"8449:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":8273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:45","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"8449:11:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"src":"8437:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8275,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8265,"src":"8464:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8276,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8265,"src":"8473:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8278,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"8482:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:45","trueExpression":{"hexValue":"31","id":8281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8284,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8263,"id":8286,"nodeType":"Return","src":"8420:72:45"}]}]},"documentation":{"id":8254,"nodeType":"StructuredDocumentation","src":"8178:89:45","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":8289,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:45","nodeType":"FunctionDefinition","parameters":{"id":8260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"a","nameLocation":"8294:1:45","nodeType":"VariableDeclaration","scope":8289,"src":"8286:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8255,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8259,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:45","nodeType":"VariableDeclaration","scope":8289,"src":"8297:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":8258,"nodeType":"UserDefinedTypeName","pathNode":{"id":8257,"name":"Rounding","nameLocations":["8297:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"8297:8:45"},"referencedDeclaration":7890,"src":"8297:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:45"},"returnParameters":{"id":8263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8289,"src":"8339:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8261,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:45"},"scope":8749,"src":"8272:237:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8420,"nodeType":"Block","src":"8694:922:45","statements":[{"assignments":[8298],"declarations":[{"constant":false,"id":8298,"mutability":"mutable","name":"result","nameLocation":"8712:6:45","nodeType":"VariableDeclaration","scope":8420,"src":"8704:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8297,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8300,"initialValue":{"hexValue":"30","id":8299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:45"},{"id":8417,"nodeType":"UncheckedBlock","src":"8732:855:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8301,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"8760:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":8302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8315,"nodeType":"IfStatement","src":"8756:99:45","trueBody":{"id":8314,"nodeType":"Block","src":"8778:77:45","statements":[{"expression":{"id":8308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"8796:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":8307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8309,"nodeType":"ExpressionStatement","src":"8796:13:45"},{"expression":{"id":8312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8310,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8827:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":8311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8313,"nodeType":"ExpressionStatement","src":"8827:13:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8316,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"8872:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":8317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8330,"nodeType":"IfStatement","src":"8868:96:45","trueBody":{"id":8329,"nodeType":"Block","src":"8889:75:45","statements":[{"expression":{"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"8907:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8324,"nodeType":"ExpressionStatement","src":"8907:12:45"},{"expression":{"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8325,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8937:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8328,"nodeType":"ExpressionStatement","src":"8937:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8331,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"8981:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8345,"nodeType":"IfStatement","src":"8977:96:45","trueBody":{"id":8344,"nodeType":"Block","src":"8998:75:45","statements":[{"expression":{"id":8338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8336,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9016:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8339,"nodeType":"ExpressionStatement","src":"9016:12:45"},{"expression":{"id":8342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8340,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9046:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8343,"nodeType":"ExpressionStatement","src":"9046:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9090:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8360,"nodeType":"IfStatement","src":"9086:96:45","trueBody":{"id":8359,"nodeType":"Block","src":"9107:75:45","statements":[{"expression":{"id":8353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8351,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9125:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8354,"nodeType":"ExpressionStatement","src":"9125:12:45"},{"expression":{"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8355,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9155:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8358,"nodeType":"ExpressionStatement","src":"9155:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8361,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9199:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8375,"nodeType":"IfStatement","src":"9195:93:45","trueBody":{"id":8374,"nodeType":"Block","src":"9215:73:45","statements":[{"expression":{"id":8368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8366,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9233:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8369,"nodeType":"ExpressionStatement","src":"9233:11:45"},{"expression":{"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8370,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9262:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8373,"nodeType":"ExpressionStatement","src":"9262:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8376,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9305:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":8377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8390,"nodeType":"IfStatement","src":"9301:93:45","trueBody":{"id":8389,"nodeType":"Block","src":"9321:73:45","statements":[{"expression":{"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9339:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8384,"nodeType":"ExpressionStatement","src":"9339:11:45"},{"expression":{"id":8387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8385,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9368:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8388,"nodeType":"ExpressionStatement","src":"9368:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8391,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9411:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":8392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8405,"nodeType":"IfStatement","src":"9407:93:45","trueBody":{"id":8404,"nodeType":"Block","src":"9427:73:45","statements":[{"expression":{"id":8398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9445:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":8397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8399,"nodeType":"ExpressionStatement","src":"9445:11:45"},{"expression":{"id":8402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8400,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9474:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8403,"nodeType":"ExpressionStatement","src":"9474:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"9517:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8416,"nodeType":"IfStatement","src":"9513:64:45","trueBody":{"id":8415,"nodeType":"Block","src":"9533:44:45","statements":[{"expression":{"id":8413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8411,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9551:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8414,"nodeType":"ExpressionStatement","src":"9551:11:45"}]}}]},{"expression":{"id":8418,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"9603:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8296,"id":8419,"nodeType":"Return","src":"9596:13:45"}]},"documentation":{"id":8290,"nodeType":"StructuredDocumentation","src":"8515:113:45","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":8421,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:45","nodeType":"FunctionDefinition","parameters":{"id":8293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8292,"mutability":"mutable","name":"value","nameLocation":"8655:5:45","nodeType":"VariableDeclaration","scope":8421,"src":"8647:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8291,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:45"},"returnParameters":{"id":8296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8421,"src":"8685:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8294,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:45"},"scope":8749,"src":"8633:983:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8456,"nodeType":"Block","src":"9849:165:45","statements":[{"id":8455,"nodeType":"UncheckedBlock","src":"9859:149:45","statements":[{"assignments":[8433],"declarations":[{"constant":false,"id":8433,"mutability":"mutable","name":"result","nameLocation":"9891:6:45","nodeType":"VariableDeclaration","scope":8455,"src":"9883:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8432,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8437,"initialValue":{"arguments":[{"id":8435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"9905:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8434,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8421,8457],"referencedDeclaration":8421,"src":"9900:4:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:45"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8438,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"9932:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"id":8442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8439,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8427,"src":"9942:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8440,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"9954:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":8441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:45","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"9954:11:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"src":"9942:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":8444,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"9974:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8446,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"9983:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:45","trueExpression":{"hexValue":"31","id":8449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8431,"id":8454,"nodeType":"Return","src":"9925:72:45"}]}]},"documentation":{"id":8422,"nodeType":"StructuredDocumentation","src":"9622:142:45","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8457,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:45","nodeType":"FunctionDefinition","parameters":{"id":8428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8424,"mutability":"mutable","name":"value","nameLocation":"9791:5:45","nodeType":"VariableDeclaration","scope":8457,"src":"9783:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8423,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8427,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:45","nodeType":"VariableDeclaration","scope":8457,"src":"9798:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":8426,"nodeType":"UserDefinedTypeName","pathNode":{"id":8425,"name":"Rounding","nameLocations":["9798:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"9798:8:45"},"referencedDeclaration":7890,"src":"9798:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:45"},"returnParameters":{"id":8431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8457,"src":"9840:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8429,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:45"},"scope":8749,"src":"9769:245:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8585,"nodeType":"Block","src":"10201:854:45","statements":[{"assignments":[8466],"declarations":[{"constant":false,"id":8466,"mutability":"mutable","name":"result","nameLocation":"10219:6:45","nodeType":"VariableDeclaration","scope":8585,"src":"10211:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8465,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8468,"initialValue":{"hexValue":"30","id":8467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:45"},{"id":8582,"nodeType":"UncheckedBlock","src":"10239:787:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8469,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10267:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:45","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8485,"nodeType":"IfStatement","src":"10263:103:45","trueBody":{"id":8484,"nodeType":"Block","src":"10286:80:45","statements":[{"expression":{"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8474,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10304:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:45","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8479,"nodeType":"ExpressionStatement","src":"10304:17:45"},{"expression":{"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8480,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10339:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8483,"nodeType":"ExpressionStatement","src":"10339:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10383:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:45","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8502,"nodeType":"IfStatement","src":"10379:103:45","trueBody":{"id":8501,"nodeType":"Block","src":"10402:80:45","statements":[{"expression":{"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10420:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:45","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8496,"nodeType":"ExpressionStatement","src":"10420:17:45"},{"expression":{"id":8499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8497,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10455:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8500,"nodeType":"ExpressionStatement","src":"10455:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8503,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10499:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:45","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8519,"nodeType":"IfStatement","src":"10495:103:45","trueBody":{"id":8518,"nodeType":"Block","src":"10518:80:45","statements":[{"expression":{"id":8512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10536:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:45","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8513,"nodeType":"ExpressionStatement","src":"10536:17:45"},{"expression":{"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8514,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10571:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8517,"nodeType":"ExpressionStatement","src":"10571:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8520,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10615:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":8523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":8522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:45","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8536,"nodeType":"IfStatement","src":"10611:100:45","trueBody":{"id":8535,"nodeType":"Block","src":"10633:78:45","statements":[{"expression":{"id":8529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8525,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10651:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":8528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":8527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:45","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8530,"nodeType":"ExpressionStatement","src":"10651:16:45"},{"expression":{"id":8533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8531,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10685:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8534,"nodeType":"ExpressionStatement","src":"10685:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10728:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":8540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":8539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:45","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8553,"nodeType":"IfStatement","src":"10724:100:45","trueBody":{"id":8552,"nodeType":"Block","src":"10746:78:45","statements":[{"expression":{"id":8546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10764:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":8545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":8544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:45","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8547,"nodeType":"ExpressionStatement","src":"10764:16:45"},{"expression":{"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8548,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10798:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8551,"nodeType":"ExpressionStatement","src":"10798:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10841:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":8557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":8556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:45","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8570,"nodeType":"IfStatement","src":"10837:100:45","trueBody":{"id":8569,"nodeType":"Block","src":"10859:78:45","statements":[{"expression":{"id":8563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8559,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10877:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":8561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:45","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8564,"nodeType":"ExpressionStatement","src":"10877:16:45"},{"expression":{"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8565,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10911:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8568,"nodeType":"ExpressionStatement","src":"10911:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8460,"src":"10954:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":8574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":8573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8581,"nodeType":"IfStatement","src":"10950:66:45","trueBody":{"id":8580,"nodeType":"Block","src":"10972:44:45","statements":[{"expression":{"id":8578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8576,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"10990:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8579,"nodeType":"ExpressionStatement","src":"10990:11:45"}]}}]},{"expression":{"id":8583,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8466,"src":"11042:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8464,"id":8584,"nodeType":"Return","src":"11035:13:45"}]},"documentation":{"id":8458,"nodeType":"StructuredDocumentation","src":"10020:114:45","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":8586,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:45","nodeType":"FunctionDefinition","parameters":{"id":8461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8460,"mutability":"mutable","name":"value","nameLocation":"10162:5:45","nodeType":"VariableDeclaration","scope":8586,"src":"10154:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8459,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:45"},"returnParameters":{"id":8464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8586,"src":"10192:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8462,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:45"},"scope":8749,"src":"10139:916:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8621,"nodeType":"Block","src":"11290:167:45","statements":[{"id":8620,"nodeType":"UncheckedBlock","src":"11300:151:45","statements":[{"assignments":[8598],"declarations":[{"constant":false,"id":8598,"mutability":"mutable","name":"result","nameLocation":"11332:6:45","nodeType":"VariableDeclaration","scope":8620,"src":"11324:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8597,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8602,"initialValue":{"arguments":[{"id":8600,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"11347:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8599,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[8586,8622],"referencedDeclaration":8586,"src":"11341:5:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:45"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8603,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"11374:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"id":8607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8604,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8592,"src":"11384:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8605,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"11396:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":8606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:45","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"11396:11:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"src":"11384:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":8609,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"11417:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"11426:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:45","trueExpression":{"hexValue":"31","id":8614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8596,"id":8619,"nodeType":"Return","src":"11367:73:45"}]}]},"documentation":{"id":8587,"nodeType":"StructuredDocumentation","src":"11061:143:45","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8622,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:45","nodeType":"FunctionDefinition","parameters":{"id":8593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8589,"mutability":"mutable","name":"value","nameLocation":"11232:5:45","nodeType":"VariableDeclaration","scope":8622,"src":"11224:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8588,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8592,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:45","nodeType":"VariableDeclaration","scope":8622,"src":"11239:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":8591,"nodeType":"UserDefinedTypeName","pathNode":{"id":8590,"name":"Rounding","nameLocations":["11239:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"11239:8:45"},"referencedDeclaration":7890,"src":"11239:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:45"},"returnParameters":{"id":8596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8622,"src":"11281:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8594,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:45"},"scope":8749,"src":"11209:248:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8708,"nodeType":"Block","src":"11771:600:45","statements":[{"assignments":[8631],"declarations":[{"constant":false,"id":8631,"mutability":"mutable","name":"result","nameLocation":"11789:6:45","nodeType":"VariableDeclaration","scope":8708,"src":"11781:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8633,"initialValue":{"hexValue":"30","id":8632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:45"},{"id":8705,"nodeType":"UncheckedBlock","src":"11809:533:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8634,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"11837:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":8635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8648,"nodeType":"IfStatement","src":"11833:98:45","trueBody":{"id":8647,"nodeType":"Block","src":"11855:76:45","statements":[{"expression":{"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8639,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"11873:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":8640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8642,"nodeType":"ExpressionStatement","src":"11873:13:45"},{"expression":{"id":8645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8643,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11904:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8646,"nodeType":"ExpressionStatement","src":"11904:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"11948:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":8650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8663,"nodeType":"IfStatement","src":"11944:95:45","trueBody":{"id":8662,"nodeType":"Block","src":"11965:74:45","statements":[{"expression":{"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"11983:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8657,"nodeType":"ExpressionStatement","src":"11983:12:45"},{"expression":{"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8658,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"12013:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8661,"nodeType":"ExpressionStatement","src":"12013:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8664,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"12056:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8678,"nodeType":"IfStatement","src":"12052:95:45","trueBody":{"id":8677,"nodeType":"Block","src":"12073:74:45","statements":[{"expression":{"id":8671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"12091:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8672,"nodeType":"ExpressionStatement","src":"12091:12:45"},{"expression":{"id":8675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8673,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"12121:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8676,"nodeType":"ExpressionStatement","src":"12121:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8679,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"12164:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8693,"nodeType":"IfStatement","src":"12160:95:45","trueBody":{"id":8692,"nodeType":"Block","src":"12181:74:45","statements":[{"expression":{"id":8686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"12199:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8687,"nodeType":"ExpressionStatement","src":"12199:12:45"},{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8688,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"12229:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8691,"nodeType":"ExpressionStatement","src":"12229:11:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"12272:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8704,"nodeType":"IfStatement","src":"12268:64:45","trueBody":{"id":8703,"nodeType":"Block","src":"12288:44:45","statements":[{"expression":{"id":8701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8699,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"12306:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8702,"nodeType":"ExpressionStatement","src":"12306:11:45"}]}}]},{"expression":{"id":8706,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"12358:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8629,"id":8707,"nodeType":"Return","src":"12351:13:45"}]},"documentation":{"id":8623,"nodeType":"StructuredDocumentation","src":"11463:240:45","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":8709,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:45","nodeType":"FunctionDefinition","parameters":{"id":8626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8625,"mutability":"mutable","name":"value","nameLocation":"11732:5:45","nodeType":"VariableDeclaration","scope":8709,"src":"11724:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8624,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:45"},"returnParameters":{"id":8629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8709,"src":"11762:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8627,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:45"},"scope":8749,"src":"11708:663:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8747,"nodeType":"Block","src":"12608:174:45","statements":[{"id":8746,"nodeType":"UncheckedBlock","src":"12618:158:45","statements":[{"assignments":[8721],"declarations":[{"constant":false,"id":8721,"mutability":"mutable","name":"result","nameLocation":"12650:6:45","nodeType":"VariableDeclaration","scope":8746,"src":"12642:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8720,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8725,"initialValue":{"arguments":[{"id":8723,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"12666:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8722,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[8709,8748],"referencedDeclaration":8709,"src":"12659:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:45"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8726,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"12693:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"id":8730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8727,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"12703:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8728,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"12715:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7890_$","typeString":"type(enum Math.Rounding)"}},"id":8729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:45","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7888,"src":"12715:11:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"src":"12703:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8732,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"12736:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":8733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8735,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"12751:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:45","trueExpression":{"hexValue":"31","id":8740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8743,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8719,"id":8745,"nodeType":"Return","src":"12686:79:45"}]}]},"documentation":{"id":8710,"nodeType":"StructuredDocumentation","src":"12377:144:45","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8748,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:45","nodeType":"FunctionDefinition","parameters":{"id":8716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"value","nameLocation":"12550:5:45","nodeType":"VariableDeclaration","scope":8748,"src":"12542:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8711,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8715,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:45","nodeType":"VariableDeclaration","scope":8748,"src":"12557:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"},"typeName":{"id":8714,"nodeType":"UserDefinedTypeName","pathNode":{"id":8713,"name":"Rounding","nameLocations":["12557:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":7890,"src":"12557:8:45"},"referencedDeclaration":7890,"src":"12557:8:45","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7890","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:45"},"returnParameters":{"id":8719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8748,"src":"12599:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8717,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:45"},"scope":8749,"src":"12526:256:45","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8750,"src":"202:12582:45","usedErrors":[],"usedEvents":[]}],"src":"103:12682:45"},"id":45},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[10290]},"id":10291,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8751,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"192:23:46"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":8752,"nodeType":"StructuredDocumentation","src":"217:709:46","text":" @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always.\n Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n all math on `uint256` and `int256` and then downcasting."},"fullyImplemented":true,"id":10290,"linearizedBaseContracts":[10290],"name":"SafeCast","nameLocation":"935:8:46","nodeType":"ContractDefinition","nodes":[{"body":{"id":8776,"nodeType":"Block","src":"1339:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8755,"src":"1357:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":8763,"name":"uint248","nodeType":"ElementaryTypeName","src":"1371:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":8762,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1366:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":8766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1380:3:46","memberName":"max","nodeType":"MemberAccess","src":"1366:17:46","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1357:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":8768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1385:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":8760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1349:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8770,"nodeType":"ExpressionStatement","src":"1349:78:46"},{"expression":{"arguments":[{"id":8773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8755,"src":"1452:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1444:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":8771,"name":"uint248","nodeType":"ElementaryTypeName","src":"1444:7:46","typeDescriptions":{}}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1444:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":8759,"id":8775,"nodeType":"Return","src":"1437:21:46"}]},"documentation":{"id":8753,"nodeType":"StructuredDocumentation","src":"950:318:46","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":8777,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1282:9:46","nodeType":"FunctionDefinition","parameters":{"id":8756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8755,"mutability":"mutable","name":"value","nameLocation":"1300:5:46","nodeType":"VariableDeclaration","scope":8777,"src":"1292:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1292:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1291:15:46"},"returnParameters":{"id":8759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8777,"src":"1330:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":8757,"name":"uint248","nodeType":"ElementaryTypeName","src":"1330:7:46","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1329:9:46"},"scope":10290,"src":"1273:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8801,"nodeType":"Block","src":"1860:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8786,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8780,"src":"1878:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1892:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":8788,"name":"uint240","nodeType":"ElementaryTypeName","src":"1892:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":8787,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1887:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":8791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1901:3:46","memberName":"max","nodeType":"MemberAccess","src":"1887:17:46","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"1878:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":8793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1906:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":8785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1870:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"ExpressionStatement","src":"1870:78:46"},{"expression":{"arguments":[{"id":8798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8780,"src":"1973:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1965:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":8796,"name":"uint240","nodeType":"ElementaryTypeName","src":"1965:7:46","typeDescriptions":{}}},"id":8799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1965:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":8784,"id":8800,"nodeType":"Return","src":"1958:21:46"}]},"documentation":{"id":8778,"nodeType":"StructuredDocumentation","src":"1471:318:46","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":8802,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"1803:9:46","nodeType":"FunctionDefinition","parameters":{"id":8781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8780,"mutability":"mutable","name":"value","nameLocation":"1821:5:46","nodeType":"VariableDeclaration","scope":8802,"src":"1813:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:15:46"},"returnParameters":{"id":8784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8802,"src":"1851:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":8782,"name":"uint240","nodeType":"ElementaryTypeName","src":"1851:7:46","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"1850:9:46"},"scope":10290,"src":"1794:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8826,"nodeType":"Block","src":"2381:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8811,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"2399:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2413:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":8813,"name":"uint232","nodeType":"ElementaryTypeName","src":"2413:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":8812,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2408:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2408:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":8816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2422:3:46","memberName":"max","nodeType":"MemberAccess","src":"2408:17:46","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2399:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":8818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2427:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":8810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2391:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8820,"nodeType":"ExpressionStatement","src":"2391:78:46"},{"expression":{"arguments":[{"id":8823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"2494:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2486:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":8821,"name":"uint232","nodeType":"ElementaryTypeName","src":"2486:7:46","typeDescriptions":{}}},"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":8809,"id":8825,"nodeType":"Return","src":"2479:21:46"}]},"documentation":{"id":8803,"nodeType":"StructuredDocumentation","src":"1992:318:46","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":8827,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2324:9:46","nodeType":"FunctionDefinition","parameters":{"id":8806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8805,"mutability":"mutable","name":"value","nameLocation":"2342:5:46","nodeType":"VariableDeclaration","scope":8827,"src":"2334:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8804,"name":"uint256","nodeType":"ElementaryTypeName","src":"2334:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2333:15:46"},"returnParameters":{"id":8809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8827,"src":"2372:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":8807,"name":"uint232","nodeType":"ElementaryTypeName","src":"2372:7:46","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2371:9:46"},"scope":10290,"src":"2315:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8851,"nodeType":"Block","src":"2902:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8836,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8830,"src":"2920:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2934:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8838,"name":"uint224","nodeType":"ElementaryTypeName","src":"2934:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":8837,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2929:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":8841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2943:3:46","memberName":"max","nodeType":"MemberAccess","src":"2929:17:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2920:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":8843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2948:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":8835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2912:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8845,"nodeType":"ExpressionStatement","src":"2912:78:46"},{"expression":{"arguments":[{"id":8848,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8830,"src":"3015:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3007:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8846,"name":"uint224","nodeType":"ElementaryTypeName","src":"3007:7:46","typeDescriptions":{}}},"id":8849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":8834,"id":8850,"nodeType":"Return","src":"3000:21:46"}]},"documentation":{"id":8828,"nodeType":"StructuredDocumentation","src":"2513:318:46","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.2._"},"id":8852,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"2845:9:46","nodeType":"FunctionDefinition","parameters":{"id":8831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8830,"mutability":"mutable","name":"value","nameLocation":"2863:5:46","nodeType":"VariableDeclaration","scope":8852,"src":"2855:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8829,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2854:15:46"},"returnParameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8852,"src":"2893:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8832,"name":"uint224","nodeType":"ElementaryTypeName","src":"2893:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2892:9:46"},"scope":10290,"src":"2836:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8876,"nodeType":"Block","src":"3423:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8861,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"3441:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3455:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":8863,"name":"uint216","nodeType":"ElementaryTypeName","src":"3455:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":8862,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3450:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":8866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3464:3:46","memberName":"max","nodeType":"MemberAccess","src":"3450:17:46","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3441:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":8868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3469:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":8860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3433:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8870,"nodeType":"ExpressionStatement","src":"3433:78:46"},{"expression":{"arguments":[{"id":8873,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"3536:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3528:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":8871,"name":"uint216","nodeType":"ElementaryTypeName","src":"3528:7:46","typeDescriptions":{}}},"id":8874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":8859,"id":8875,"nodeType":"Return","src":"3521:21:46"}]},"documentation":{"id":8853,"nodeType":"StructuredDocumentation","src":"3034:318:46","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":8877,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3366:9:46","nodeType":"FunctionDefinition","parameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8855,"mutability":"mutable","name":"value","nameLocation":"3384:5:46","nodeType":"VariableDeclaration","scope":8877,"src":"3376:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8854,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:15:46"},"returnParameters":{"id":8859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8877,"src":"3414:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":8857,"name":"uint216","nodeType":"ElementaryTypeName","src":"3414:7:46","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3413:9:46"},"scope":10290,"src":"3357:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8901,"nodeType":"Block","src":"3944:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"3962:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":8888,"name":"uint208","nodeType":"ElementaryTypeName","src":"3976:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":8887,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3971:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":8891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3985:3:46","memberName":"max","nodeType":"MemberAccess","src":"3971:17:46","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"3962:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":8893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3990:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":8885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3954:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8895,"nodeType":"ExpressionStatement","src":"3954:78:46"},{"expression":{"arguments":[{"id":8898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"4057:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4049:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":8896,"name":"uint208","nodeType":"ElementaryTypeName","src":"4049:7:46","typeDescriptions":{}}},"id":8899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":8884,"id":8900,"nodeType":"Return","src":"4042:21:46"}]},"documentation":{"id":8878,"nodeType":"StructuredDocumentation","src":"3555:318:46","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":8902,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"3887:9:46","nodeType":"FunctionDefinition","parameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8880,"mutability":"mutable","name":"value","nameLocation":"3905:5:46","nodeType":"VariableDeclaration","scope":8902,"src":"3897:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8879,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:15:46"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8902,"src":"3935:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":8882,"name":"uint208","nodeType":"ElementaryTypeName","src":"3935:7:46","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"3934:9:46"},"scope":10290,"src":"3878:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8926,"nodeType":"Block","src":"4465:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8911,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"4483:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4497:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":8913,"name":"uint200","nodeType":"ElementaryTypeName","src":"4497:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":8912,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4492:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4506:3:46","memberName":"max","nodeType":"MemberAccess","src":"4492:17:46","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4483:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":8918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4511:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":8910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4475:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4475:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8920,"nodeType":"ExpressionStatement","src":"4475:78:46"},{"expression":{"arguments":[{"id":8923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"4578:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4570:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":8921,"name":"uint200","nodeType":"ElementaryTypeName","src":"4570:7:46","typeDescriptions":{}}},"id":8924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":8909,"id":8925,"nodeType":"Return","src":"4563:21:46"}]},"documentation":{"id":8903,"nodeType":"StructuredDocumentation","src":"4076:318:46","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":8927,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4408:9:46","nodeType":"FunctionDefinition","parameters":{"id":8906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8905,"mutability":"mutable","name":"value","nameLocation":"4426:5:46","nodeType":"VariableDeclaration","scope":8927,"src":"4418:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8904,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:15:46"},"returnParameters":{"id":8909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8927,"src":"4456:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":8907,"name":"uint200","nodeType":"ElementaryTypeName","src":"4456:7:46","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4455:9:46"},"scope":10290,"src":"4399:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8951,"nodeType":"Block","src":"4986:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8930,"src":"5004:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5018:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8938,"name":"uint192","nodeType":"ElementaryTypeName","src":"5018:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":8937,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5013:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5013:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":8941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5027:3:46","memberName":"max","nodeType":"MemberAccess","src":"5013:17:46","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5004:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":8943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5032:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":8935,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4996:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4996:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8945,"nodeType":"ExpressionStatement","src":"4996:78:46"},{"expression":{"arguments":[{"id":8948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8930,"src":"5099:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5091:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8946,"name":"uint192","nodeType":"ElementaryTypeName","src":"5091:7:46","typeDescriptions":{}}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":8934,"id":8950,"nodeType":"Return","src":"5084:21:46"}]},"documentation":{"id":8928,"nodeType":"StructuredDocumentation","src":"4597:318:46","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":8952,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"4929:9:46","nodeType":"FunctionDefinition","parameters":{"id":8931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8930,"mutability":"mutable","name":"value","nameLocation":"4947:5:46","nodeType":"VariableDeclaration","scope":8952,"src":"4939:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8929,"name":"uint256","nodeType":"ElementaryTypeName","src":"4939:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4938:15:46"},"returnParameters":{"id":8934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8952,"src":"4977:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8932,"name":"uint192","nodeType":"ElementaryTypeName","src":"4977:7:46","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"4976:9:46"},"scope":10290,"src":"4920:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8976,"nodeType":"Block","src":"5507:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8961,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"5525:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5539:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":8963,"name":"uint184","nodeType":"ElementaryTypeName","src":"5539:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":8962,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5534:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5534:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":8966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5548:3:46","memberName":"max","nodeType":"MemberAccess","src":"5534:17:46","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5525:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":8968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5553:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":8960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5517:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8970,"nodeType":"ExpressionStatement","src":"5517:78:46"},{"expression":{"arguments":[{"id":8973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"5620:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5612:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":8971,"name":"uint184","nodeType":"ElementaryTypeName","src":"5612:7:46","typeDescriptions":{}}},"id":8974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5612:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":8959,"id":8975,"nodeType":"Return","src":"5605:21:46"}]},"documentation":{"id":8953,"nodeType":"StructuredDocumentation","src":"5118:318:46","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":8977,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5450:9:46","nodeType":"FunctionDefinition","parameters":{"id":8956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8955,"mutability":"mutable","name":"value","nameLocation":"5468:5:46","nodeType":"VariableDeclaration","scope":8977,"src":"5460:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5460:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5459:15:46"},"returnParameters":{"id":8959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8977,"src":"5498:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":8957,"name":"uint184","nodeType":"ElementaryTypeName","src":"5498:7:46","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5497:9:46"},"scope":10290,"src":"5441:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9001,"nodeType":"Block","src":"6028:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8980,"src":"6046:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6060:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":8988,"name":"uint176","nodeType":"ElementaryTypeName","src":"6060:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":8987,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6055:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":8991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6069:3:46","memberName":"max","nodeType":"MemberAccess","src":"6055:17:46","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6046:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":8993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6074:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":8985,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6038:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8995,"nodeType":"ExpressionStatement","src":"6038:78:46"},{"expression":{"arguments":[{"id":8998,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8980,"src":"6141:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":8996,"name":"uint176","nodeType":"ElementaryTypeName","src":"6133:7:46","typeDescriptions":{}}},"id":8999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":8984,"id":9000,"nodeType":"Return","src":"6126:21:46"}]},"documentation":{"id":8978,"nodeType":"StructuredDocumentation","src":"5639:318:46","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":9002,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"5971:9:46","nodeType":"FunctionDefinition","parameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8980,"mutability":"mutable","name":"value","nameLocation":"5989:5:46","nodeType":"VariableDeclaration","scope":9002,"src":"5981:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8979,"name":"uint256","nodeType":"ElementaryTypeName","src":"5981:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5980:15:46"},"returnParameters":{"id":8984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9002,"src":"6019:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":8982,"name":"uint176","nodeType":"ElementaryTypeName","src":"6019:7:46","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6018:9:46"},"scope":10290,"src":"5962:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9026,"nodeType":"Block","src":"6549:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9011,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"6567:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6581:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":9013,"name":"uint168","nodeType":"ElementaryTypeName","src":"6581:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":9012,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6576:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6576:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":9016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6590:3:46","memberName":"max","nodeType":"MemberAccess","src":"6576:17:46","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6567:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":9018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6595:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":9010,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6559:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6559:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9020,"nodeType":"ExpressionStatement","src":"6559:78:46"},{"expression":{"arguments":[{"id":9023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"6662:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6654:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":9021,"name":"uint168","nodeType":"ElementaryTypeName","src":"6654:7:46","typeDescriptions":{}}},"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6654:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":9009,"id":9025,"nodeType":"Return","src":"6647:21:46"}]},"documentation":{"id":9003,"nodeType":"StructuredDocumentation","src":"6160:318:46","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":9027,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6492:9:46","nodeType":"FunctionDefinition","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"value","nameLocation":"6510:5:46","nodeType":"VariableDeclaration","scope":9027,"src":"6502:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6501:15:46"},"returnParameters":{"id":9009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9027,"src":"6540:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":9007,"name":"uint168","nodeType":"ElementaryTypeName","src":"6540:7:46","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6539:9:46"},"scope":10290,"src":"6483:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9051,"nodeType":"Block","src":"7070:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9036,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9030,"src":"7088:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7102:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9038,"name":"uint160","nodeType":"ElementaryTypeName","src":"7102:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":9037,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7097:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7097:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":9041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7111:3:46","memberName":"max","nodeType":"MemberAccess","src":"7097:17:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7088:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":9043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":9035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7080:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9045,"nodeType":"ExpressionStatement","src":"7080:78:46"},{"expression":{"arguments":[{"id":9048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9030,"src":"7183:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7175:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9046,"name":"uint160","nodeType":"ElementaryTypeName","src":"7175:7:46","typeDescriptions":{}}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7175:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":9034,"id":9050,"nodeType":"Return","src":"7168:21:46"}]},"documentation":{"id":9028,"nodeType":"StructuredDocumentation","src":"6681:318:46","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":9052,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7013:9:46","nodeType":"FunctionDefinition","parameters":{"id":9031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9030,"mutability":"mutable","name":"value","nameLocation":"7031:5:46","nodeType":"VariableDeclaration","scope":9052,"src":"7023:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9029,"name":"uint256","nodeType":"ElementaryTypeName","src":"7023:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7022:15:46"},"returnParameters":{"id":9034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9052,"src":"7061:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":9032,"name":"uint160","nodeType":"ElementaryTypeName","src":"7061:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7060:9:46"},"scope":10290,"src":"7004:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9076,"nodeType":"Block","src":"7591:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"7609:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7623:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":9063,"name":"uint152","nodeType":"ElementaryTypeName","src":"7623:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":9062,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7618:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":9066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7632:3:46","memberName":"max","nodeType":"MemberAccess","src":"7618:17:46","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7609:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":9068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7637:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":9060,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7601:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7601:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9070,"nodeType":"ExpressionStatement","src":"7601:78:46"},{"expression":{"arguments":[{"id":9073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"7704:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7696:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":9071,"name":"uint152","nodeType":"ElementaryTypeName","src":"7696:7:46","typeDescriptions":{}}},"id":9074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7696:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":9059,"id":9075,"nodeType":"Return","src":"7689:21:46"}]},"documentation":{"id":9053,"nodeType":"StructuredDocumentation","src":"7202:318:46","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":9077,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7534:9:46","nodeType":"FunctionDefinition","parameters":{"id":9056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9055,"mutability":"mutable","name":"value","nameLocation":"7552:5:46","nodeType":"VariableDeclaration","scope":9077,"src":"7544:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9054,"name":"uint256","nodeType":"ElementaryTypeName","src":"7544:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7543:15:46"},"returnParameters":{"id":9059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9077,"src":"7582:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":9057,"name":"uint152","nodeType":"ElementaryTypeName","src":"7582:7:46","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7581:9:46"},"scope":10290,"src":"7525:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9101,"nodeType":"Block","src":"8112:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9086,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"8130:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8144:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":9088,"name":"uint144","nodeType":"ElementaryTypeName","src":"8144:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":9087,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8139:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8139:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8153:3:46","memberName":"max","nodeType":"MemberAccess","src":"8139:17:46","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8130:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":9093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8158:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":9085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8122:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8122:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9095,"nodeType":"ExpressionStatement","src":"8122:78:46"},{"expression":{"arguments":[{"id":9098,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"8225:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8217:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":9096,"name":"uint144","nodeType":"ElementaryTypeName","src":"8217:7:46","typeDescriptions":{}}},"id":9099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8217:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":9084,"id":9100,"nodeType":"Return","src":"8210:21:46"}]},"documentation":{"id":9078,"nodeType":"StructuredDocumentation","src":"7723:318:46","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":9102,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8055:9:46","nodeType":"FunctionDefinition","parameters":{"id":9081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9080,"mutability":"mutable","name":"value","nameLocation":"8073:5:46","nodeType":"VariableDeclaration","scope":9102,"src":"8065:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9079,"name":"uint256","nodeType":"ElementaryTypeName","src":"8065:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8064:15:46"},"returnParameters":{"id":9084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9102,"src":"8103:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":9082,"name":"uint144","nodeType":"ElementaryTypeName","src":"8103:7:46","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8102:9:46"},"scope":10290,"src":"8046:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9126,"nodeType":"Block","src":"8633:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9105,"src":"8651:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8665:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":9113,"name":"uint136","nodeType":"ElementaryTypeName","src":"8665:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":9112,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8660:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8660:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":9116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8674:3:46","memberName":"max","nodeType":"MemberAccess","src":"8660:17:46","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8651:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":9118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8679:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":9110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8643:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9120,"nodeType":"ExpressionStatement","src":"8643:78:46"},{"expression":{"arguments":[{"id":9123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9105,"src":"8746:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8738:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":9121,"name":"uint136","nodeType":"ElementaryTypeName","src":"8738:7:46","typeDescriptions":{}}},"id":9124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8738:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":9109,"id":9125,"nodeType":"Return","src":"8731:21:46"}]},"documentation":{"id":9103,"nodeType":"StructuredDocumentation","src":"8244:318:46","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":9127,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8576:9:46","nodeType":"FunctionDefinition","parameters":{"id":9106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9105,"mutability":"mutable","name":"value","nameLocation":"8594:5:46","nodeType":"VariableDeclaration","scope":9127,"src":"8586:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9104,"name":"uint256","nodeType":"ElementaryTypeName","src":"8586:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8585:15:46"},"returnParameters":{"id":9109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9127,"src":"8624:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":9107,"name":"uint136","nodeType":"ElementaryTypeName","src":"8624:7:46","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8623:9:46"},"scope":10290,"src":"8567:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9151,"nodeType":"Block","src":"9154:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9136,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"9172:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9186:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":9138,"name":"uint128","nodeType":"ElementaryTypeName","src":"9186:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":9137,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9181:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9181:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9195:3:46","memberName":"max","nodeType":"MemberAccess","src":"9181:17:46","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9172:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":9143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9200:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":9135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9164:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9145,"nodeType":"ExpressionStatement","src":"9164:78:46"},{"expression":{"arguments":[{"id":9148,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"9267:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9259:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":9146,"name":"uint128","nodeType":"ElementaryTypeName","src":"9259:7:46","typeDescriptions":{}}},"id":9149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9259:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":9134,"id":9150,"nodeType":"Return","src":"9252:21:46"}]},"documentation":{"id":9128,"nodeType":"StructuredDocumentation","src":"8765:318:46","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v2.5._"},"id":9152,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9097:9:46","nodeType":"FunctionDefinition","parameters":{"id":9131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9130,"mutability":"mutable","name":"value","nameLocation":"9115:5:46","nodeType":"VariableDeclaration","scope":9152,"src":"9107:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9129,"name":"uint256","nodeType":"ElementaryTypeName","src":"9107:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9106:15:46"},"returnParameters":{"id":9134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9152,"src":"9145:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":9132,"name":"uint128","nodeType":"ElementaryTypeName","src":"9145:7:46","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9144:9:46"},"scope":10290,"src":"9088:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9176,"nodeType":"Block","src":"9675:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9155,"src":"9693:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9707:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":9163,"name":"uint120","nodeType":"ElementaryTypeName","src":"9707:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":9162,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9702:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":9166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9716:3:46","memberName":"max","nodeType":"MemberAccess","src":"9702:17:46","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9693:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":9168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9721:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":9160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9685:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9685:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9170,"nodeType":"ExpressionStatement","src":"9685:78:46"},{"expression":{"arguments":[{"id":9173,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9155,"src":"9788:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9780:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":9171,"name":"uint120","nodeType":"ElementaryTypeName","src":"9780:7:46","typeDescriptions":{}}},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":9159,"id":9175,"nodeType":"Return","src":"9773:21:46"}]},"documentation":{"id":9153,"nodeType":"StructuredDocumentation","src":"9286:318:46","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":9177,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9618:9:46","nodeType":"FunctionDefinition","parameters":{"id":9156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9155,"mutability":"mutable","name":"value","nameLocation":"9636:5:46","nodeType":"VariableDeclaration","scope":9177,"src":"9628:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9154,"name":"uint256","nodeType":"ElementaryTypeName","src":"9628:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9627:15:46"},"returnParameters":{"id":9159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9177,"src":"9666:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":9157,"name":"uint120","nodeType":"ElementaryTypeName","src":"9666:7:46","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9665:9:46"},"scope":10290,"src":"9609:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9201,"nodeType":"Block","src":"10196:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9180,"src":"10214:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10228:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":9188,"name":"uint112","nodeType":"ElementaryTypeName","src":"10228:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":9187,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10223:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":9191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10237:3:46","memberName":"max","nodeType":"MemberAccess","src":"10223:17:46","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10214:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":9193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10242:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":9185,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10206:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10206:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9195,"nodeType":"ExpressionStatement","src":"10206:78:46"},{"expression":{"arguments":[{"id":9198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9180,"src":"10309:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10301:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":9196,"name":"uint112","nodeType":"ElementaryTypeName","src":"10301:7:46","typeDescriptions":{}}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10301:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":9184,"id":9200,"nodeType":"Return","src":"10294:21:46"}]},"documentation":{"id":9178,"nodeType":"StructuredDocumentation","src":"9807:318:46","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":9202,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10139:9:46","nodeType":"FunctionDefinition","parameters":{"id":9181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9180,"mutability":"mutable","name":"value","nameLocation":"10157:5:46","nodeType":"VariableDeclaration","scope":9202,"src":"10149:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9179,"name":"uint256","nodeType":"ElementaryTypeName","src":"10149:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10148:15:46"},"returnParameters":{"id":9184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9202,"src":"10187:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":9182,"name":"uint112","nodeType":"ElementaryTypeName","src":"10187:7:46","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10186:9:46"},"scope":10290,"src":"10130:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9226,"nodeType":"Block","src":"10717:126:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9211,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"10735:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":9213,"name":"uint104","nodeType":"ElementaryTypeName","src":"10749:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":9212,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10744:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10744:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":9216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10758:3:46","memberName":"max","nodeType":"MemberAccess","src":"10744:17:46","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10735:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":9218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10763:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":9210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10727:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10727:78:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9220,"nodeType":"ExpressionStatement","src":"10727:78:46"},{"expression":{"arguments":[{"id":9223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"10830:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10822:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":9221,"name":"uint104","nodeType":"ElementaryTypeName","src":"10822:7:46","typeDescriptions":{}}},"id":9224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10822:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":9209,"id":9225,"nodeType":"Return","src":"10815:21:46"}]},"documentation":{"id":9203,"nodeType":"StructuredDocumentation","src":"10328:318:46","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":9227,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10660:9:46","nodeType":"FunctionDefinition","parameters":{"id":9206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9205,"mutability":"mutable","name":"value","nameLocation":"10678:5:46","nodeType":"VariableDeclaration","scope":9227,"src":"10670:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9204,"name":"uint256","nodeType":"ElementaryTypeName","src":"10670:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10669:15:46"},"returnParameters":{"id":9209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9227,"src":"10708:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":9207,"name":"uint104","nodeType":"ElementaryTypeName","src":"10708:7:46","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10707:9:46"},"scope":10290,"src":"10651:192:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9251,"nodeType":"Block","src":"11232:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9236,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9230,"src":"11250:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11264:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9238,"name":"uint96","nodeType":"ElementaryTypeName","src":"11264:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":9237,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11259:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":9241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11272:3:46","memberName":"max","nodeType":"MemberAccess","src":"11259:16:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11250:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":9243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11277:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":9235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11242:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11242:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9245,"nodeType":"ExpressionStatement","src":"11242:76:46"},{"expression":{"arguments":[{"id":9248,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9230,"src":"11342:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11335:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9246,"name":"uint96","nodeType":"ElementaryTypeName","src":"11335:6:46","typeDescriptions":{}}},"id":9249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11335:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":9234,"id":9250,"nodeType":"Return","src":"11328:20:46"}]},"documentation":{"id":9228,"nodeType":"StructuredDocumentation","src":"10849:314:46","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.2._"},"id":9252,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11177:8:46","nodeType":"FunctionDefinition","parameters":{"id":9231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9230,"mutability":"mutable","name":"value","nameLocation":"11194:5:46","nodeType":"VariableDeclaration","scope":9252,"src":"11186:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9229,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11185:15:46"},"returnParameters":{"id":9234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9252,"src":"11224:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9232,"name":"uint96","nodeType":"ElementaryTypeName","src":"11224:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11223:8:46"},"scope":10290,"src":"11168:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9276,"nodeType":"Block","src":"11744:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"11762:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9263,"name":"uint88","nodeType":"ElementaryTypeName","src":"11776:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":9262,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11771:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11771:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":9266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11784:3:46","memberName":"max","nodeType":"MemberAccess","src":"11771:16:46","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11762:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":9268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11789:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":9260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11754:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11754:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9270,"nodeType":"ExpressionStatement","src":"11754:76:46"},{"expression":{"arguments":[{"id":9273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"11854:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9271,"name":"uint88","nodeType":"ElementaryTypeName","src":"11847:6:46","typeDescriptions":{}}},"id":9274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11847:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":9259,"id":9275,"nodeType":"Return","src":"11840:20:46"}]},"documentation":{"id":9253,"nodeType":"StructuredDocumentation","src":"11361:314:46","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":9277,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11689:8:46","nodeType":"FunctionDefinition","parameters":{"id":9256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9255,"mutability":"mutable","name":"value","nameLocation":"11706:5:46","nodeType":"VariableDeclaration","scope":9277,"src":"11698:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9254,"name":"uint256","nodeType":"ElementaryTypeName","src":"11698:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11697:15:46"},"returnParameters":{"id":9259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9277,"src":"11736:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":9257,"name":"uint88","nodeType":"ElementaryTypeName","src":"11736:6:46","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11735:8:46"},"scope":10290,"src":"11680:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9301,"nodeType":"Block","src":"12256:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9286,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9280,"src":"12274:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12288:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9288,"name":"uint80","nodeType":"ElementaryTypeName","src":"12288:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":9287,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12283:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12283:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":9291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12296:3:46","memberName":"max","nodeType":"MemberAccess","src":"12283:16:46","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12274:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":9293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12301:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":9285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12266:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12266:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9295,"nodeType":"ExpressionStatement","src":"12266:76:46"},{"expression":{"arguments":[{"id":9298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9280,"src":"12366:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12359:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9296,"name":"uint80","nodeType":"ElementaryTypeName","src":"12359:6:46","typeDescriptions":{}}},"id":9299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12359:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":9284,"id":9300,"nodeType":"Return","src":"12352:20:46"}]},"documentation":{"id":9278,"nodeType":"StructuredDocumentation","src":"11873:314:46","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":9302,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12201:8:46","nodeType":"FunctionDefinition","parameters":{"id":9281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9280,"mutability":"mutable","name":"value","nameLocation":"12218:5:46","nodeType":"VariableDeclaration","scope":9302,"src":"12210:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9279,"name":"uint256","nodeType":"ElementaryTypeName","src":"12210:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:15:46"},"returnParameters":{"id":9284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9302,"src":"12248:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":9282,"name":"uint80","nodeType":"ElementaryTypeName","src":"12248:6:46","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12247:8:46"},"scope":10290,"src":"12192:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9326,"nodeType":"Block","src":"12768:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9305,"src":"12786:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9313,"name":"uint72","nodeType":"ElementaryTypeName","src":"12800:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":9312,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12795:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12795:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":9316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12808:3:46","memberName":"max","nodeType":"MemberAccess","src":"12795:16:46","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12786:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":9318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12813:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":9310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12778:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12778:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9320,"nodeType":"ExpressionStatement","src":"12778:76:46"},{"expression":{"arguments":[{"id":9323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9305,"src":"12878:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12871:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9321,"name":"uint72","nodeType":"ElementaryTypeName","src":"12871:6:46","typeDescriptions":{}}},"id":9324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12871:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":9309,"id":9325,"nodeType":"Return","src":"12864:20:46"}]},"documentation":{"id":9303,"nodeType":"StructuredDocumentation","src":"12385:314:46","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":9327,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12713:8:46","nodeType":"FunctionDefinition","parameters":{"id":9306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9305,"mutability":"mutable","name":"value","nameLocation":"12730:5:46","nodeType":"VariableDeclaration","scope":9327,"src":"12722:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9304,"name":"uint256","nodeType":"ElementaryTypeName","src":"12722:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12721:15:46"},"returnParameters":{"id":9309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9327,"src":"12760:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":9307,"name":"uint72","nodeType":"ElementaryTypeName","src":"12760:6:46","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12759:8:46"},"scope":10290,"src":"12704:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9351,"nodeType":"Block","src":"13280:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9336,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"13298:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13312:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9338,"name":"uint64","nodeType":"ElementaryTypeName","src":"13312:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":9337,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13307:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13307:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":9341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13320:3:46","memberName":"max","nodeType":"MemberAccess","src":"13307:16:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13298:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":9343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13325:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":9335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13290:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13290:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9345,"nodeType":"ExpressionStatement","src":"13290:76:46"},{"expression":{"arguments":[{"id":9348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"13390:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13383:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9346,"name":"uint64","nodeType":"ElementaryTypeName","src":"13383:6:46","typeDescriptions":{}}},"id":9349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13383:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":9334,"id":9350,"nodeType":"Return","src":"13376:20:46"}]},"documentation":{"id":9328,"nodeType":"StructuredDocumentation","src":"12897:314:46","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v2.5._"},"id":9352,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13225:8:46","nodeType":"FunctionDefinition","parameters":{"id":9331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9330,"mutability":"mutable","name":"value","nameLocation":"13242:5:46","nodeType":"VariableDeclaration","scope":9352,"src":"13234:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9329,"name":"uint256","nodeType":"ElementaryTypeName","src":"13234:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13233:15:46"},"returnParameters":{"id":9334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9352,"src":"13272:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9332,"name":"uint64","nodeType":"ElementaryTypeName","src":"13272:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13271:8:46"},"scope":10290,"src":"13216:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9376,"nodeType":"Block","src":"13792:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9361,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"13810:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13824:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9363,"name":"uint56","nodeType":"ElementaryTypeName","src":"13824:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":9362,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13819:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13819:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":9366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13832:3:46","memberName":"max","nodeType":"MemberAccess","src":"13819:16:46","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13810:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":9368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13837:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":9360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13802:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9370,"nodeType":"ExpressionStatement","src":"13802:76:46"},{"expression":{"arguments":[{"id":9373,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"13902:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13895:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9371,"name":"uint56","nodeType":"ElementaryTypeName","src":"13895:6:46","typeDescriptions":{}}},"id":9374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13895:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":9359,"id":9375,"nodeType":"Return","src":"13888:20:46"}]},"documentation":{"id":9353,"nodeType":"StructuredDocumentation","src":"13409:314:46","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":9377,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13737:8:46","nodeType":"FunctionDefinition","parameters":{"id":9356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9355,"mutability":"mutable","name":"value","nameLocation":"13754:5:46","nodeType":"VariableDeclaration","scope":9377,"src":"13746:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9354,"name":"uint256","nodeType":"ElementaryTypeName","src":"13746:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13745:15:46"},"returnParameters":{"id":9359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9377,"src":"13784:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":9357,"name":"uint56","nodeType":"ElementaryTypeName","src":"13784:6:46","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13783:8:46"},"scope":10290,"src":"13728:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9401,"nodeType":"Block","src":"14304:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9380,"src":"14322:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14336:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9388,"name":"uint48","nodeType":"ElementaryTypeName","src":"14336:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":9387,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14331:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14331:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":9391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14344:3:46","memberName":"max","nodeType":"MemberAccess","src":"14331:16:46","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14322:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":9393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14349:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":9385,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14314:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14314:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9395,"nodeType":"ExpressionStatement","src":"14314:76:46"},{"expression":{"arguments":[{"id":9398,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9380,"src":"14414:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14407:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9396,"name":"uint48","nodeType":"ElementaryTypeName","src":"14407:6:46","typeDescriptions":{}}},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14407:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":9384,"id":9400,"nodeType":"Return","src":"14400:20:46"}]},"documentation":{"id":9378,"nodeType":"StructuredDocumentation","src":"13921:314:46","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":9402,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14249:8:46","nodeType":"FunctionDefinition","parameters":{"id":9381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9380,"mutability":"mutable","name":"value","nameLocation":"14266:5:46","nodeType":"VariableDeclaration","scope":9402,"src":"14258:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9379,"name":"uint256","nodeType":"ElementaryTypeName","src":"14258:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14257:15:46"},"returnParameters":{"id":9384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9402,"src":"14296:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":9382,"name":"uint48","nodeType":"ElementaryTypeName","src":"14296:6:46","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14295:8:46"},"scope":10290,"src":"14240:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9426,"nodeType":"Block","src":"14816:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9411,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"14834:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14848:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9413,"name":"uint40","nodeType":"ElementaryTypeName","src":"14848:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":9412,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14843:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14843:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":9416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14856:3:46","memberName":"max","nodeType":"MemberAccess","src":"14843:16:46","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14834:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":9418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14861:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":9410,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14826:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14826:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9420,"nodeType":"ExpressionStatement","src":"14826:76:46"},{"expression":{"arguments":[{"id":9423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"14926:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9421,"name":"uint40","nodeType":"ElementaryTypeName","src":"14919:6:46","typeDescriptions":{}}},"id":9424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14919:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":9409,"id":9425,"nodeType":"Return","src":"14912:20:46"}]},"documentation":{"id":9403,"nodeType":"StructuredDocumentation","src":"14433:314:46","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":9427,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14761:8:46","nodeType":"FunctionDefinition","parameters":{"id":9406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9405,"mutability":"mutable","name":"value","nameLocation":"14778:5:46","nodeType":"VariableDeclaration","scope":9427,"src":"14770:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9404,"name":"uint256","nodeType":"ElementaryTypeName","src":"14770:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14769:15:46"},"returnParameters":{"id":9409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9427,"src":"14808:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9407,"name":"uint40","nodeType":"ElementaryTypeName","src":"14808:6:46","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14807:8:46"},"scope":10290,"src":"14752:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9451,"nodeType":"Block","src":"15328:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"15346:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15360:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9438,"name":"uint32","nodeType":"ElementaryTypeName","src":"15360:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":9437,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15355:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15355:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":9441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15368:3:46","memberName":"max","nodeType":"MemberAccess","src":"15355:16:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15346:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":9443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15373:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":9435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15338:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9445,"nodeType":"ExpressionStatement","src":"15338:76:46"},{"expression":{"arguments":[{"id":9448,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"15438:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15431:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9446,"name":"uint32","nodeType":"ElementaryTypeName","src":"15431:6:46","typeDescriptions":{}}},"id":9449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15431:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":9434,"id":9450,"nodeType":"Return","src":"15424:20:46"}]},"documentation":{"id":9428,"nodeType":"StructuredDocumentation","src":"14945:314:46","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v2.5._"},"id":9452,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15273:8:46","nodeType":"FunctionDefinition","parameters":{"id":9431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9430,"mutability":"mutable","name":"value","nameLocation":"15290:5:46","nodeType":"VariableDeclaration","scope":9452,"src":"15282:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9429,"name":"uint256","nodeType":"ElementaryTypeName","src":"15282:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15281:15:46"},"returnParameters":{"id":9434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9452,"src":"15320:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9432,"name":"uint32","nodeType":"ElementaryTypeName","src":"15320:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15319:8:46"},"scope":10290,"src":"15264:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9476,"nodeType":"Block","src":"15840:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9461,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9455,"src":"15858:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15872:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9463,"name":"uint24","nodeType":"ElementaryTypeName","src":"15872:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":9462,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15867:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15867:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":9466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15880:3:46","memberName":"max","nodeType":"MemberAccess","src":"15867:16:46","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15858:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":9468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15885:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":9460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15850:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15850:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9470,"nodeType":"ExpressionStatement","src":"15850:76:46"},{"expression":{"arguments":[{"id":9473,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9455,"src":"15950:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15943:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9471,"name":"uint24","nodeType":"ElementaryTypeName","src":"15943:6:46","typeDescriptions":{}}},"id":9474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15943:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":9459,"id":9475,"nodeType":"Return","src":"15936:20:46"}]},"documentation":{"id":9453,"nodeType":"StructuredDocumentation","src":"15457:314:46","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":9477,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15785:8:46","nodeType":"FunctionDefinition","parameters":{"id":9456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9455,"mutability":"mutable","name":"value","nameLocation":"15802:5:46","nodeType":"VariableDeclaration","scope":9477,"src":"15794:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9454,"name":"uint256","nodeType":"ElementaryTypeName","src":"15794:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15793:15:46"},"returnParameters":{"id":9459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9477,"src":"15832:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":9457,"name":"uint24","nodeType":"ElementaryTypeName","src":"15832:6:46","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15831:8:46"},"scope":10290,"src":"15776:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9501,"nodeType":"Block","src":"16352:123:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"16370:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16384:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9488,"name":"uint16","nodeType":"ElementaryTypeName","src":"16384:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":9487,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16379:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16379:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":9491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16392:3:46","memberName":"max","nodeType":"MemberAccess","src":"16379:16:46","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16370:25:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":9493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16397:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":9485,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16362:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16362:76:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9495,"nodeType":"ExpressionStatement","src":"16362:76:46"},{"expression":{"arguments":[{"id":9498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"16462:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16455:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9496,"name":"uint16","nodeType":"ElementaryTypeName","src":"16455:6:46","typeDescriptions":{}}},"id":9499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16455:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":9484,"id":9500,"nodeType":"Return","src":"16448:20:46"}]},"documentation":{"id":9478,"nodeType":"StructuredDocumentation","src":"15969:314:46","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v2.5._"},"id":9502,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16297:8:46","nodeType":"FunctionDefinition","parameters":{"id":9481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9480,"mutability":"mutable","name":"value","nameLocation":"16314:5:46","nodeType":"VariableDeclaration","scope":9502,"src":"16306:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9479,"name":"uint256","nodeType":"ElementaryTypeName","src":"16306:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16305:15:46"},"returnParameters":{"id":9484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9502,"src":"16344:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9482,"name":"uint16","nodeType":"ElementaryTypeName","src":"16344:6:46","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16343:8:46"},"scope":10290,"src":"16288:187:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9526,"nodeType":"Block","src":"16858:120:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"16876:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16890:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9513,"name":"uint8","nodeType":"ElementaryTypeName","src":"16890:5:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":9512,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16885:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16885:11:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":9516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16897:3:46","memberName":"max","nodeType":"MemberAccess","src":"16885:15:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16876:24:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":9518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16902:39:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":9510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16868:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16868:74:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9520,"nodeType":"ExpressionStatement","src":"16868:74:46"},{"expression":{"arguments":[{"id":9523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"16965:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16959:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9521,"name":"uint8","nodeType":"ElementaryTypeName","src":"16959:5:46","typeDescriptions":{}}},"id":9524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9509,"id":9525,"nodeType":"Return","src":"16952:19:46"}]},"documentation":{"id":9503,"nodeType":"StructuredDocumentation","src":"16481:310:46","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v2.5._"},"id":9527,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16805:7:46","nodeType":"FunctionDefinition","parameters":{"id":9506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9505,"mutability":"mutable","name":"value","nameLocation":"16821:5:46","nodeType":"VariableDeclaration","scope":9527,"src":"16813:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9504,"name":"uint256","nodeType":"ElementaryTypeName","src":"16813:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16812:15:46"},"returnParameters":{"id":9509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9527,"src":"16851:5:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9507,"name":"uint8","nodeType":"ElementaryTypeName","src":"16851:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16850:7:46"},"scope":10290,"src":"16796:182:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9547,"nodeType":"Block","src":"17252:103:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"17270:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":9537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17279:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17270:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c7565206d75737420626520706f736974697665","id":9539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17282:34:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""},"value":"SafeCast: value must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""}],"id":9535,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17262:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17262:55:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9541,"nodeType":"ExpressionStatement","src":"17262:55:46"},{"expression":{"arguments":[{"id":9544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"17342:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17334:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9542,"name":"uint256","nodeType":"ElementaryTypeName","src":"17334:7:46","typeDescriptions":{}}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17334:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9534,"id":9546,"nodeType":"Return","src":"17327:21:46"}]},"documentation":{"id":9528,"nodeType":"StructuredDocumentation","src":"16984:198:46","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0.\n _Available since v3.0._"},"id":9548,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17196:9:46","nodeType":"FunctionDefinition","parameters":{"id":9531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9530,"mutability":"mutable","name":"value","nameLocation":"17213:5:46","nodeType":"VariableDeclaration","scope":9548,"src":"17206:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9529,"name":"int256","nodeType":"ElementaryTypeName","src":"17206:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17205:14:46"},"returnParameters":{"id":9534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9548,"src":"17243:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9532,"name":"uint256","nodeType":"ElementaryTypeName","src":"17243:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17242:9:46"},"scope":10290,"src":"17187:168:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9570,"nodeType":"Block","src":"17790:124:46","statements":[{"expression":{"id":9561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9556,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9554,"src":"17800:10:46","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9559,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"17820:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17813:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":9557,"name":"int248","nodeType":"ElementaryTypeName","src":"17813:6:46","typeDescriptions":{}}},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17813:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17800:26:46","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":9562,"nodeType":"ExpressionStatement","src":"17800:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9564,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9554,"src":"17844:10:46","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"17858:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17844:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":9567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17865:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":9563,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17836:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17836:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9569,"nodeType":"ExpressionStatement","src":"17836:71:46"}]},"documentation":{"id":9549,"nodeType":"StructuredDocumentation","src":"17361:350:46","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":9571,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17725:8:46","nodeType":"FunctionDefinition","parameters":{"id":9552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9551,"mutability":"mutable","name":"value","nameLocation":"17741:5:46","nodeType":"VariableDeclaration","scope":9571,"src":"17734:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9550,"name":"int256","nodeType":"ElementaryTypeName","src":"17734:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17733:14:46"},"returnParameters":{"id":9555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9554,"mutability":"mutable","name":"downcasted","nameLocation":"17778:10:46","nodeType":"VariableDeclaration","scope":9571,"src":"17771:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":9553,"name":"int248","nodeType":"ElementaryTypeName","src":"17771:6:46","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17770:19:46"},"scope":10290,"src":"17716:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9593,"nodeType":"Block","src":"18349:124:46","statements":[{"expression":{"id":9584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9579,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"18359:10:46","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"18379:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18372:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":9580,"name":"int240","nodeType":"ElementaryTypeName","src":"18372:6:46","typeDescriptions":{}}},"id":9583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18372:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18359:26:46","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":9585,"nodeType":"ExpressionStatement","src":"18359:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9587,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"18403:10:46","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"18417:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18403:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":9590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18424:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":9586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18395:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18395:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9592,"nodeType":"ExpressionStatement","src":"18395:71:46"}]},"documentation":{"id":9572,"nodeType":"StructuredDocumentation","src":"17920:350:46","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":9594,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18284:8:46","nodeType":"FunctionDefinition","parameters":{"id":9575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9574,"mutability":"mutable","name":"value","nameLocation":"18300:5:46","nodeType":"VariableDeclaration","scope":9594,"src":"18293:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9573,"name":"int256","nodeType":"ElementaryTypeName","src":"18293:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18292:14:46"},"returnParameters":{"id":9578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9577,"mutability":"mutable","name":"downcasted","nameLocation":"18337:10:46","nodeType":"VariableDeclaration","scope":9594,"src":"18330:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":9576,"name":"int240","nodeType":"ElementaryTypeName","src":"18330:6:46","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18329:19:46"},"scope":10290,"src":"18275:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9616,"nodeType":"Block","src":"18908:124:46","statements":[{"expression":{"id":9607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9602,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9600,"src":"18918:10:46","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9597,"src":"18938:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18931:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":9603,"name":"int232","nodeType":"ElementaryTypeName","src":"18931:6:46","typeDescriptions":{}}},"id":9606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18931:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18918:26:46","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":9608,"nodeType":"ExpressionStatement","src":"18918:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9610,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9600,"src":"18962:10:46","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9597,"src":"18976:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18962:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":9613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18983:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":9609,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18954:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18954:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9615,"nodeType":"ExpressionStatement","src":"18954:71:46"}]},"documentation":{"id":9595,"nodeType":"StructuredDocumentation","src":"18479:350:46","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":9617,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18843:8:46","nodeType":"FunctionDefinition","parameters":{"id":9598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9597,"mutability":"mutable","name":"value","nameLocation":"18859:5:46","nodeType":"VariableDeclaration","scope":9617,"src":"18852:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9596,"name":"int256","nodeType":"ElementaryTypeName","src":"18852:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18851:14:46"},"returnParameters":{"id":9601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9600,"mutability":"mutable","name":"downcasted","nameLocation":"18896:10:46","nodeType":"VariableDeclaration","scope":9617,"src":"18889:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":9599,"name":"int232","nodeType":"ElementaryTypeName","src":"18889:6:46","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18888:19:46"},"scope":10290,"src":"18834:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9639,"nodeType":"Block","src":"19467:124:46","statements":[{"expression":{"id":9630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9625,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9623,"src":"19477:10:46","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9628,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"19497:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19490:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":9626,"name":"int224","nodeType":"ElementaryTypeName","src":"19490:6:46","typeDescriptions":{}}},"id":9629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19490:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19477:26:46","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":9631,"nodeType":"ExpressionStatement","src":"19477:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9633,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9623,"src":"19521:10:46","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9634,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"19535:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19521:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":9636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19542:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":9632,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19513:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19513:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9638,"nodeType":"ExpressionStatement","src":"19513:71:46"}]},"documentation":{"id":9618,"nodeType":"StructuredDocumentation","src":"19038:350:46","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.7._"},"id":9640,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19402:8:46","nodeType":"FunctionDefinition","parameters":{"id":9621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9620,"mutability":"mutable","name":"value","nameLocation":"19418:5:46","nodeType":"VariableDeclaration","scope":9640,"src":"19411:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9619,"name":"int256","nodeType":"ElementaryTypeName","src":"19411:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19410:14:46"},"returnParameters":{"id":9624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9623,"mutability":"mutable","name":"downcasted","nameLocation":"19455:10:46","nodeType":"VariableDeclaration","scope":9640,"src":"19448:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":9622,"name":"int224","nodeType":"ElementaryTypeName","src":"19448:6:46","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19447:19:46"},"scope":10290,"src":"19393:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9662,"nodeType":"Block","src":"20026:124:46","statements":[{"expression":{"id":9653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9648,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9646,"src":"20036:10:46","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9651,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"20056:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20049:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":9649,"name":"int216","nodeType":"ElementaryTypeName","src":"20049:6:46","typeDescriptions":{}}},"id":9652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20049:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20036:26:46","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":9654,"nodeType":"ExpressionStatement","src":"20036:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9656,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9646,"src":"20080:10:46","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"20094:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20080:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":9659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20101:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":9655,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20072:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20072:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9661,"nodeType":"ExpressionStatement","src":"20072:71:46"}]},"documentation":{"id":9641,"nodeType":"StructuredDocumentation","src":"19597:350:46","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":9663,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19961:8:46","nodeType":"FunctionDefinition","parameters":{"id":9644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9643,"mutability":"mutable","name":"value","nameLocation":"19977:5:46","nodeType":"VariableDeclaration","scope":9663,"src":"19970:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9642,"name":"int256","nodeType":"ElementaryTypeName","src":"19970:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19969:14:46"},"returnParameters":{"id":9647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9646,"mutability":"mutable","name":"downcasted","nameLocation":"20014:10:46","nodeType":"VariableDeclaration","scope":9663,"src":"20007:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":9645,"name":"int216","nodeType":"ElementaryTypeName","src":"20007:6:46","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"20006:19:46"},"scope":10290,"src":"19952:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9685,"nodeType":"Block","src":"20585:124:46","statements":[{"expression":{"id":9676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9671,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9669,"src":"20595:10:46","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"20615:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20608:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":9672,"name":"int208","nodeType":"ElementaryTypeName","src":"20608:6:46","typeDescriptions":{}}},"id":9675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20608:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20595:26:46","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":9677,"nodeType":"ExpressionStatement","src":"20595:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9679,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9669,"src":"20639:10:46","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9680,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"20653:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20639:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":9682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20660:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":9678,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20631:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20631:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9684,"nodeType":"ExpressionStatement","src":"20631:71:46"}]},"documentation":{"id":9664,"nodeType":"StructuredDocumentation","src":"20156:350:46","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":9686,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20520:8:46","nodeType":"FunctionDefinition","parameters":{"id":9667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"mutability":"mutable","name":"value","nameLocation":"20536:5:46","nodeType":"VariableDeclaration","scope":9686,"src":"20529:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9665,"name":"int256","nodeType":"ElementaryTypeName","src":"20529:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20528:14:46"},"returnParameters":{"id":9670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9669,"mutability":"mutable","name":"downcasted","nameLocation":"20573:10:46","nodeType":"VariableDeclaration","scope":9686,"src":"20566:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":9668,"name":"int208","nodeType":"ElementaryTypeName","src":"20566:6:46","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20565:19:46"},"scope":10290,"src":"20511:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9708,"nodeType":"Block","src":"21144:124:46","statements":[{"expression":{"id":9699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9694,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"21154:10:46","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9697,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"21174:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21167:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":9695,"name":"int200","nodeType":"ElementaryTypeName","src":"21167:6:46","typeDescriptions":{}}},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21167:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21154:26:46","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":9700,"nodeType":"ExpressionStatement","src":"21154:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9702,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"21198:10:46","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"21212:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21198:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":9705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21219:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":9701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21190:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21190:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9707,"nodeType":"ExpressionStatement","src":"21190:71:46"}]},"documentation":{"id":9687,"nodeType":"StructuredDocumentation","src":"20715:350:46","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":9709,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"21079:8:46","nodeType":"FunctionDefinition","parameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9689,"mutability":"mutable","name":"value","nameLocation":"21095:5:46","nodeType":"VariableDeclaration","scope":9709,"src":"21088:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9688,"name":"int256","nodeType":"ElementaryTypeName","src":"21088:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21087:14:46"},"returnParameters":{"id":9693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9692,"mutability":"mutable","name":"downcasted","nameLocation":"21132:10:46","nodeType":"VariableDeclaration","scope":9709,"src":"21125:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":9691,"name":"int200","nodeType":"ElementaryTypeName","src":"21125:6:46","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21124:19:46"},"scope":10290,"src":"21070:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9731,"nodeType":"Block","src":"21703:124:46","statements":[{"expression":{"id":9722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9717,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"21713:10:46","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9720,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9712,"src":"21733:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21726:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":9718,"name":"int192","nodeType":"ElementaryTypeName","src":"21726:6:46","typeDescriptions":{}}},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21726:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21713:26:46","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":9723,"nodeType":"ExpressionStatement","src":"21713:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9725,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9715,"src":"21757:10:46","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9726,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9712,"src":"21771:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21757:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":9728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21778:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":9724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21749:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21749:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9730,"nodeType":"ExpressionStatement","src":"21749:71:46"}]},"documentation":{"id":9710,"nodeType":"StructuredDocumentation","src":"21274:350:46","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":9732,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21638:8:46","nodeType":"FunctionDefinition","parameters":{"id":9713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9712,"mutability":"mutable","name":"value","nameLocation":"21654:5:46","nodeType":"VariableDeclaration","scope":9732,"src":"21647:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9711,"name":"int256","nodeType":"ElementaryTypeName","src":"21647:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21646:14:46"},"returnParameters":{"id":9716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9715,"mutability":"mutable","name":"downcasted","nameLocation":"21691:10:46","nodeType":"VariableDeclaration","scope":9732,"src":"21684:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":9714,"name":"int192","nodeType":"ElementaryTypeName","src":"21684:6:46","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21683:19:46"},"scope":10290,"src":"21629:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9754,"nodeType":"Block","src":"22262:124:46","statements":[{"expression":{"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9740,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9738,"src":"22272:10:46","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9743,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"22292:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22285:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":9741,"name":"int184","nodeType":"ElementaryTypeName","src":"22285:6:46","typeDescriptions":{}}},"id":9744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22285:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22272:26:46","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":9746,"nodeType":"ExpressionStatement","src":"22272:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9748,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9738,"src":"22316:10:46","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9749,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"22330:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22316:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":9751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22337:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":9747,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22308:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22308:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9753,"nodeType":"ExpressionStatement","src":"22308:71:46"}]},"documentation":{"id":9733,"nodeType":"StructuredDocumentation","src":"21833:350:46","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":9755,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22197:8:46","nodeType":"FunctionDefinition","parameters":{"id":9736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9735,"mutability":"mutable","name":"value","nameLocation":"22213:5:46","nodeType":"VariableDeclaration","scope":9755,"src":"22206:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9734,"name":"int256","nodeType":"ElementaryTypeName","src":"22206:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22205:14:46"},"returnParameters":{"id":9739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9738,"mutability":"mutable","name":"downcasted","nameLocation":"22250:10:46","nodeType":"VariableDeclaration","scope":9755,"src":"22243:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":9737,"name":"int184","nodeType":"ElementaryTypeName","src":"22243:6:46","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22242:19:46"},"scope":10290,"src":"22188:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9777,"nodeType":"Block","src":"22821:124:46","statements":[{"expression":{"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9763,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9761,"src":"22831:10:46","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22851:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22844:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":9764,"name":"int176","nodeType":"ElementaryTypeName","src":"22844:6:46","typeDescriptions":{}}},"id":9767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22844:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22831:26:46","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":9769,"nodeType":"ExpressionStatement","src":"22831:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9771,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9761,"src":"22875:10:46","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9772,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22889:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22875:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":9774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22896:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":9770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22867:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22867:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9776,"nodeType":"ExpressionStatement","src":"22867:71:46"}]},"documentation":{"id":9756,"nodeType":"StructuredDocumentation","src":"22392:350:46","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":9778,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22756:8:46","nodeType":"FunctionDefinition","parameters":{"id":9759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9758,"mutability":"mutable","name":"value","nameLocation":"22772:5:46","nodeType":"VariableDeclaration","scope":9778,"src":"22765:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9757,"name":"int256","nodeType":"ElementaryTypeName","src":"22765:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22764:14:46"},"returnParameters":{"id":9762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9761,"mutability":"mutable","name":"downcasted","nameLocation":"22809:10:46","nodeType":"VariableDeclaration","scope":9778,"src":"22802:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":9760,"name":"int176","nodeType":"ElementaryTypeName","src":"22802:6:46","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22801:19:46"},"scope":10290,"src":"22747:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9800,"nodeType":"Block","src":"23380:124:46","statements":[{"expression":{"id":9791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9786,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9784,"src":"23390:10:46","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9789,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9781,"src":"23410:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23403:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":9787,"name":"int168","nodeType":"ElementaryTypeName","src":"23403:6:46","typeDescriptions":{}}},"id":9790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23403:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23390:26:46","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":9792,"nodeType":"ExpressionStatement","src":"23390:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9794,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9784,"src":"23434:10:46","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9795,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9781,"src":"23448:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23434:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":9797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23455:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":9793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23426:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23426:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9799,"nodeType":"ExpressionStatement","src":"23426:71:46"}]},"documentation":{"id":9779,"nodeType":"StructuredDocumentation","src":"22951:350:46","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":9801,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23315:8:46","nodeType":"FunctionDefinition","parameters":{"id":9782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9781,"mutability":"mutable","name":"value","nameLocation":"23331:5:46","nodeType":"VariableDeclaration","scope":9801,"src":"23324:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9780,"name":"int256","nodeType":"ElementaryTypeName","src":"23324:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23323:14:46"},"returnParameters":{"id":9785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9784,"mutability":"mutable","name":"downcasted","nameLocation":"23368:10:46","nodeType":"VariableDeclaration","scope":9801,"src":"23361:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":9783,"name":"int168","nodeType":"ElementaryTypeName","src":"23361:6:46","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23360:19:46"},"scope":10290,"src":"23306:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9823,"nodeType":"Block","src":"23939:124:46","statements":[{"expression":{"id":9814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9809,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9807,"src":"23949:10:46","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9812,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"23969:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23962:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":9810,"name":"int160","nodeType":"ElementaryTypeName","src":"23962:6:46","typeDescriptions":{}}},"id":9813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23962:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23949:26:46","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":9815,"nodeType":"ExpressionStatement","src":"23949:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9817,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9807,"src":"23993:10:46","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9818,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"24007:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23993:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":9820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24014:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":9816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23985:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23985:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9822,"nodeType":"ExpressionStatement","src":"23985:71:46"}]},"documentation":{"id":9802,"nodeType":"StructuredDocumentation","src":"23510:350:46","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":9824,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23874:8:46","nodeType":"FunctionDefinition","parameters":{"id":9805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9804,"mutability":"mutable","name":"value","nameLocation":"23890:5:46","nodeType":"VariableDeclaration","scope":9824,"src":"23883:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9803,"name":"int256","nodeType":"ElementaryTypeName","src":"23883:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23882:14:46"},"returnParameters":{"id":9808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9807,"mutability":"mutable","name":"downcasted","nameLocation":"23927:10:46","nodeType":"VariableDeclaration","scope":9824,"src":"23920:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":9806,"name":"int160","nodeType":"ElementaryTypeName","src":"23920:6:46","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23919:19:46"},"scope":10290,"src":"23865:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9846,"nodeType":"Block","src":"24498:124:46","statements":[{"expression":{"id":9837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9832,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9830,"src":"24508:10:46","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9835,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9827,"src":"24528:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24521:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":9833,"name":"int152","nodeType":"ElementaryTypeName","src":"24521:6:46","typeDescriptions":{}}},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24521:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24508:26:46","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":9838,"nodeType":"ExpressionStatement","src":"24508:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9840,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9830,"src":"24552:10:46","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9827,"src":"24566:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24552:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":9843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24573:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":9839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24544:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24544:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9845,"nodeType":"ExpressionStatement","src":"24544:71:46"}]},"documentation":{"id":9825,"nodeType":"StructuredDocumentation","src":"24069:350:46","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":9847,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24433:8:46","nodeType":"FunctionDefinition","parameters":{"id":9828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9827,"mutability":"mutable","name":"value","nameLocation":"24449:5:46","nodeType":"VariableDeclaration","scope":9847,"src":"24442:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9826,"name":"int256","nodeType":"ElementaryTypeName","src":"24442:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24441:14:46"},"returnParameters":{"id":9831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9830,"mutability":"mutable","name":"downcasted","nameLocation":"24486:10:46","nodeType":"VariableDeclaration","scope":9847,"src":"24479:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":9829,"name":"int152","nodeType":"ElementaryTypeName","src":"24479:6:46","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24478:19:46"},"scope":10290,"src":"24424:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9869,"nodeType":"Block","src":"25057:124:46","statements":[{"expression":{"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9855,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9853,"src":"25067:10:46","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"25087:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25080:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":9856,"name":"int144","nodeType":"ElementaryTypeName","src":"25080:6:46","typeDescriptions":{}}},"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25080:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25067:26:46","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":9861,"nodeType":"ExpressionStatement","src":"25067:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9863,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9853,"src":"25111:10:46","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9864,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"25125:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25111:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":9866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25132:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":9862,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25103:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25103:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9868,"nodeType":"ExpressionStatement","src":"25103:71:46"}]},"documentation":{"id":9848,"nodeType":"StructuredDocumentation","src":"24628:350:46","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":9870,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24992:8:46","nodeType":"FunctionDefinition","parameters":{"id":9851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9850,"mutability":"mutable","name":"value","nameLocation":"25008:5:46","nodeType":"VariableDeclaration","scope":9870,"src":"25001:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9849,"name":"int256","nodeType":"ElementaryTypeName","src":"25001:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25000:14:46"},"returnParameters":{"id":9854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9853,"mutability":"mutable","name":"downcasted","nameLocation":"25045:10:46","nodeType":"VariableDeclaration","scope":9870,"src":"25038:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":9852,"name":"int144","nodeType":"ElementaryTypeName","src":"25038:6:46","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"25037:19:46"},"scope":10290,"src":"24983:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9892,"nodeType":"Block","src":"25616:124:46","statements":[{"expression":{"id":9883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9878,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9876,"src":"25626:10:46","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"25646:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25639:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":9879,"name":"int136","nodeType":"ElementaryTypeName","src":"25639:6:46","typeDescriptions":{}}},"id":9882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25639:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25626:26:46","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":9884,"nodeType":"ExpressionStatement","src":"25626:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9886,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9876,"src":"25670:10:46","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9887,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"25684:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25670:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":9889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25691:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":9885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25662:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25662:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9891,"nodeType":"ExpressionStatement","src":"25662:71:46"}]},"documentation":{"id":9871,"nodeType":"StructuredDocumentation","src":"25187:350:46","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":9893,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25551:8:46","nodeType":"FunctionDefinition","parameters":{"id":9874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9873,"mutability":"mutable","name":"value","nameLocation":"25567:5:46","nodeType":"VariableDeclaration","scope":9893,"src":"25560:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9872,"name":"int256","nodeType":"ElementaryTypeName","src":"25560:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25559:14:46"},"returnParameters":{"id":9877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9876,"mutability":"mutable","name":"downcasted","nameLocation":"25604:10:46","nodeType":"VariableDeclaration","scope":9893,"src":"25597:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":9875,"name":"int136","nodeType":"ElementaryTypeName","src":"25597:6:46","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25596:19:46"},"scope":10290,"src":"25542:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9915,"nodeType":"Block","src":"26175:124:46","statements":[{"expression":{"id":9906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9901,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"26185:10:46","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9904,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"26205:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26198:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":9902,"name":"int128","nodeType":"ElementaryTypeName","src":"26198:6:46","typeDescriptions":{}}},"id":9905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26198:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26185:26:46","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":9907,"nodeType":"ExpressionStatement","src":"26185:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9909,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"26229:10:46","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9910,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"26243:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26229:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":9912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26250:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":9908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26221:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26221:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9914,"nodeType":"ExpressionStatement","src":"26221:71:46"}]},"documentation":{"id":9894,"nodeType":"StructuredDocumentation","src":"25746:350:46","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v3.1._"},"id":9916,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"26110:8:46","nodeType":"FunctionDefinition","parameters":{"id":9897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9896,"mutability":"mutable","name":"value","nameLocation":"26126:5:46","nodeType":"VariableDeclaration","scope":9916,"src":"26119:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9895,"name":"int256","nodeType":"ElementaryTypeName","src":"26119:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26118:14:46"},"returnParameters":{"id":9900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9899,"mutability":"mutable","name":"downcasted","nameLocation":"26163:10:46","nodeType":"VariableDeclaration","scope":9916,"src":"26156:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":9898,"name":"int128","nodeType":"ElementaryTypeName","src":"26156:6:46","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"26155:19:46"},"scope":10290,"src":"26101:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9938,"nodeType":"Block","src":"26734:124:46","statements":[{"expression":{"id":9929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9924,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9922,"src":"26744:10:46","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"26764:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26757:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":9925,"name":"int120","nodeType":"ElementaryTypeName","src":"26757:6:46","typeDescriptions":{}}},"id":9928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26757:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26744:26:46","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":9930,"nodeType":"ExpressionStatement","src":"26744:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9932,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9922,"src":"26788:10:46","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9933,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"26802:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26788:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":9935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26809:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":9931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26780:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26780:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9937,"nodeType":"ExpressionStatement","src":"26780:71:46"}]},"documentation":{"id":9917,"nodeType":"StructuredDocumentation","src":"26305:350:46","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":9939,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26669:8:46","nodeType":"FunctionDefinition","parameters":{"id":9920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9919,"mutability":"mutable","name":"value","nameLocation":"26685:5:46","nodeType":"VariableDeclaration","scope":9939,"src":"26678:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9918,"name":"int256","nodeType":"ElementaryTypeName","src":"26678:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26677:14:46"},"returnParameters":{"id":9923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9922,"mutability":"mutable","name":"downcasted","nameLocation":"26722:10:46","nodeType":"VariableDeclaration","scope":9939,"src":"26715:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":9921,"name":"int120","nodeType":"ElementaryTypeName","src":"26715:6:46","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26714:19:46"},"scope":10290,"src":"26660:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9961,"nodeType":"Block","src":"27293:124:46","statements":[{"expression":{"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9947,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9945,"src":"27303:10:46","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9942,"src":"27323:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27316:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":9948,"name":"int112","nodeType":"ElementaryTypeName","src":"27316:6:46","typeDescriptions":{}}},"id":9951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27316:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27303:26:46","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":9953,"nodeType":"ExpressionStatement","src":"27303:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9955,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9945,"src":"27347:10:46","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9942,"src":"27361:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27347:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":9958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27368:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":9954,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27339:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27339:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9960,"nodeType":"ExpressionStatement","src":"27339:71:46"}]},"documentation":{"id":9940,"nodeType":"StructuredDocumentation","src":"26864:350:46","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":9962,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"27228:8:46","nodeType":"FunctionDefinition","parameters":{"id":9943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9942,"mutability":"mutable","name":"value","nameLocation":"27244:5:46","nodeType":"VariableDeclaration","scope":9962,"src":"27237:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9941,"name":"int256","nodeType":"ElementaryTypeName","src":"27237:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27236:14:46"},"returnParameters":{"id":9946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9945,"mutability":"mutable","name":"downcasted","nameLocation":"27281:10:46","nodeType":"VariableDeclaration","scope":9962,"src":"27274:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":9944,"name":"int112","nodeType":"ElementaryTypeName","src":"27274:6:46","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27273:19:46"},"scope":10290,"src":"27219:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9984,"nodeType":"Block","src":"27852:124:46","statements":[{"expression":{"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9970,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9968,"src":"27862:10:46","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"27882:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27875:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":9971,"name":"int104","nodeType":"ElementaryTypeName","src":"27875:6:46","typeDescriptions":{}}},"id":9974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27862:26:46","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":9976,"nodeType":"ExpressionStatement","src":"27862:26:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9978,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9968,"src":"27906:10:46","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"27920:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27906:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":9981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27927:41:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":9977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27898:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27898:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9983,"nodeType":"ExpressionStatement","src":"27898:71:46"}]},"documentation":{"id":9963,"nodeType":"StructuredDocumentation","src":"27423:350:46","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":9985,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27787:8:46","nodeType":"FunctionDefinition","parameters":{"id":9966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9965,"mutability":"mutable","name":"value","nameLocation":"27803:5:46","nodeType":"VariableDeclaration","scope":9985,"src":"27796:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9964,"name":"int256","nodeType":"ElementaryTypeName","src":"27796:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27795:14:46"},"returnParameters":{"id":9969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9968,"mutability":"mutable","name":"downcasted","nameLocation":"27840:10:46","nodeType":"VariableDeclaration","scope":9985,"src":"27833:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":9967,"name":"int104","nodeType":"ElementaryTypeName","src":"27833:6:46","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27832:19:46"},"scope":10290,"src":"27778:198:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10007,"nodeType":"Block","src":"28404:122:46","statements":[{"expression":{"id":9998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9993,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9991,"src":"28414:10:46","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9996,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"28433:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28427:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":9994,"name":"int96","nodeType":"ElementaryTypeName","src":"28427:5:46","typeDescriptions":{}}},"id":9997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28427:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28414:25:46","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":9999,"nodeType":"ExpressionStatement","src":"28414:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10001,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9991,"src":"28457:10:46","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"28471:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28457:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":10004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28478:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":10000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28449:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28449:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10006,"nodeType":"ExpressionStatement","src":"28449:70:46"}]},"documentation":{"id":9986,"nodeType":"StructuredDocumentation","src":"27982:345:46","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.7._"},"id":10008,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28341:7:46","nodeType":"FunctionDefinition","parameters":{"id":9989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9988,"mutability":"mutable","name":"value","nameLocation":"28356:5:46","nodeType":"VariableDeclaration","scope":10008,"src":"28349:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9987,"name":"int256","nodeType":"ElementaryTypeName","src":"28349:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28348:14:46"},"returnParameters":{"id":9992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9991,"mutability":"mutable","name":"downcasted","nameLocation":"28392:10:46","nodeType":"VariableDeclaration","scope":10008,"src":"28386:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":9990,"name":"int96","nodeType":"ElementaryTypeName","src":"28386:5:46","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28385:18:46"},"scope":10290,"src":"28332:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10030,"nodeType":"Block","src":"28954:122:46","statements":[{"expression":{"id":10021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10016,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"28964:10:46","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"28983:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28977:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":10017,"name":"int88","nodeType":"ElementaryTypeName","src":"28977:5:46","typeDescriptions":{}}},"id":10020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28977:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28964:25:46","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":10022,"nodeType":"ExpressionStatement","src":"28964:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10024,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"29007:10:46","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"29021:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29007:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":10027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29028:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":10023,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28999:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28999:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10029,"nodeType":"ExpressionStatement","src":"28999:70:46"}]},"documentation":{"id":10009,"nodeType":"StructuredDocumentation","src":"28532:345:46","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":10031,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28891:7:46","nodeType":"FunctionDefinition","parameters":{"id":10012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10011,"mutability":"mutable","name":"value","nameLocation":"28906:5:46","nodeType":"VariableDeclaration","scope":10031,"src":"28899:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10010,"name":"int256","nodeType":"ElementaryTypeName","src":"28899:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28898:14:46"},"returnParameters":{"id":10015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"downcasted","nameLocation":"28942:10:46","nodeType":"VariableDeclaration","scope":10031,"src":"28936:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":10013,"name":"int88","nodeType":"ElementaryTypeName","src":"28936:5:46","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28935:18:46"},"scope":10290,"src":"28882:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10053,"nodeType":"Block","src":"29504:122:46","statements":[{"expression":{"id":10044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10039,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"29514:10:46","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10042,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10034,"src":"29533:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29527:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":10040,"name":"int80","nodeType":"ElementaryTypeName","src":"29527:5:46","typeDescriptions":{}}},"id":10043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29527:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29514:25:46","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":10045,"nodeType":"ExpressionStatement","src":"29514:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10047,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"29557:10:46","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10034,"src":"29571:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29557:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":10050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29578:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":10046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"29549:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10052,"nodeType":"ExpressionStatement","src":"29549:70:46"}]},"documentation":{"id":10032,"nodeType":"StructuredDocumentation","src":"29082:345:46","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":10054,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29441:7:46","nodeType":"FunctionDefinition","parameters":{"id":10035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10034,"mutability":"mutable","name":"value","nameLocation":"29456:5:46","nodeType":"VariableDeclaration","scope":10054,"src":"29449:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10033,"name":"int256","nodeType":"ElementaryTypeName","src":"29449:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29448:14:46"},"returnParameters":{"id":10038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10037,"mutability":"mutable","name":"downcasted","nameLocation":"29492:10:46","nodeType":"VariableDeclaration","scope":10054,"src":"29486:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":10036,"name":"int80","nodeType":"ElementaryTypeName","src":"29486:5:46","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29485:18:46"},"scope":10290,"src":"29432:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10076,"nodeType":"Block","src":"30054:122:46","statements":[{"expression":{"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10062,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10060,"src":"30064:10:46","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10057,"src":"30083:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30077:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":10063,"name":"int72","nodeType":"ElementaryTypeName","src":"30077:5:46","typeDescriptions":{}}},"id":10066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30077:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30064:25:46","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":10068,"nodeType":"ExpressionStatement","src":"30064:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10070,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10060,"src":"30107:10:46","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10057,"src":"30121:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30107:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":10073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30128:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":10069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30099:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30099:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10075,"nodeType":"ExpressionStatement","src":"30099:70:46"}]},"documentation":{"id":10055,"nodeType":"StructuredDocumentation","src":"29632:345:46","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":10077,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29991:7:46","nodeType":"FunctionDefinition","parameters":{"id":10058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10057,"mutability":"mutable","name":"value","nameLocation":"30006:5:46","nodeType":"VariableDeclaration","scope":10077,"src":"29999:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10056,"name":"int256","nodeType":"ElementaryTypeName","src":"29999:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29998:14:46"},"returnParameters":{"id":10061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10060,"mutability":"mutable","name":"downcasted","nameLocation":"30042:10:46","nodeType":"VariableDeclaration","scope":10077,"src":"30036:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":10059,"name":"int72","nodeType":"ElementaryTypeName","src":"30036:5:46","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"30035:18:46"},"scope":10290,"src":"29982:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10099,"nodeType":"Block","src":"30604:122:46","statements":[{"expression":{"id":10090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10085,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10083,"src":"30614:10:46","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"30633:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30627:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":10086,"name":"int64","nodeType":"ElementaryTypeName","src":"30627:5:46","typeDescriptions":{}}},"id":10089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30627:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30614:25:46","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":10091,"nodeType":"ExpressionStatement","src":"30614:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10093,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10083,"src":"30657:10:46","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10094,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"30671:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30657:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":10096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30678:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":10092,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30649:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30649:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10098,"nodeType":"ExpressionStatement","src":"30649:70:46"}]},"documentation":{"id":10078,"nodeType":"StructuredDocumentation","src":"30182:345:46","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v3.1._"},"id":10100,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30541:7:46","nodeType":"FunctionDefinition","parameters":{"id":10081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10080,"mutability":"mutable","name":"value","nameLocation":"30556:5:46","nodeType":"VariableDeclaration","scope":10100,"src":"30549:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10079,"name":"int256","nodeType":"ElementaryTypeName","src":"30549:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30548:14:46"},"returnParameters":{"id":10084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10083,"mutability":"mutable","name":"downcasted","nameLocation":"30592:10:46","nodeType":"VariableDeclaration","scope":10100,"src":"30586:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":10082,"name":"int64","nodeType":"ElementaryTypeName","src":"30586:5:46","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30585:18:46"},"scope":10290,"src":"30532:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10122,"nodeType":"Block","src":"31154:122:46","statements":[{"expression":{"id":10113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10108,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10106,"src":"31164:10:46","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"31183:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31177:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":10109,"name":"int56","nodeType":"ElementaryTypeName","src":"31177:5:46","typeDescriptions":{}}},"id":10112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31177:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31164:25:46","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":10114,"nodeType":"ExpressionStatement","src":"31164:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10116,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10106,"src":"31207:10:46","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10117,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"31221:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31207:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":10119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31228:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":10115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31199:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31199:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10121,"nodeType":"ExpressionStatement","src":"31199:70:46"}]},"documentation":{"id":10101,"nodeType":"StructuredDocumentation","src":"30732:345:46","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":10123,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"31091:7:46","nodeType":"FunctionDefinition","parameters":{"id":10104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10103,"mutability":"mutable","name":"value","nameLocation":"31106:5:46","nodeType":"VariableDeclaration","scope":10123,"src":"31099:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10102,"name":"int256","nodeType":"ElementaryTypeName","src":"31099:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31098:14:46"},"returnParameters":{"id":10107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10106,"mutability":"mutable","name":"downcasted","nameLocation":"31142:10:46","nodeType":"VariableDeclaration","scope":10123,"src":"31136:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":10105,"name":"int56","nodeType":"ElementaryTypeName","src":"31136:5:46","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"31135:18:46"},"scope":10290,"src":"31082:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10145,"nodeType":"Block","src":"31704:122:46","statements":[{"expression":{"id":10136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10131,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"31714:10:46","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"31733:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31727:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":10132,"name":"int48","nodeType":"ElementaryTypeName","src":"31727:5:46","typeDescriptions":{}}},"id":10135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31727:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31714:25:46","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":10137,"nodeType":"ExpressionStatement","src":"31714:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10139,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"31757:10:46","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"31771:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31757:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":10142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31778:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":10138,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31749:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31749:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10144,"nodeType":"ExpressionStatement","src":"31749:70:46"}]},"documentation":{"id":10124,"nodeType":"StructuredDocumentation","src":"31282:345:46","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":10146,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31641:7:46","nodeType":"FunctionDefinition","parameters":{"id":10127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10126,"mutability":"mutable","name":"value","nameLocation":"31656:5:46","nodeType":"VariableDeclaration","scope":10146,"src":"31649:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10125,"name":"int256","nodeType":"ElementaryTypeName","src":"31649:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31648:14:46"},"returnParameters":{"id":10130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"downcasted","nameLocation":"31692:10:46","nodeType":"VariableDeclaration","scope":10146,"src":"31686:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":10128,"name":"int48","nodeType":"ElementaryTypeName","src":"31686:5:46","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31685:18:46"},"scope":10290,"src":"31632:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10168,"nodeType":"Block","src":"32254:122:46","statements":[{"expression":{"id":10159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10154,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10152,"src":"32264:10:46","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"32283:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32277:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":10155,"name":"int40","nodeType":"ElementaryTypeName","src":"32277:5:46","typeDescriptions":{}}},"id":10158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32277:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32264:25:46","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":10160,"nodeType":"ExpressionStatement","src":"32264:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10162,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10152,"src":"32307:10:46","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10163,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"32321:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32307:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":10165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32328:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":10161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"32299:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32299:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10167,"nodeType":"ExpressionStatement","src":"32299:70:46"}]},"documentation":{"id":10147,"nodeType":"StructuredDocumentation","src":"31832:345:46","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":10169,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"32191:7:46","nodeType":"FunctionDefinition","parameters":{"id":10150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10149,"mutability":"mutable","name":"value","nameLocation":"32206:5:46","nodeType":"VariableDeclaration","scope":10169,"src":"32199:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10148,"name":"int256","nodeType":"ElementaryTypeName","src":"32199:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32198:14:46"},"returnParameters":{"id":10153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10152,"mutability":"mutable","name":"downcasted","nameLocation":"32242:10:46","nodeType":"VariableDeclaration","scope":10169,"src":"32236:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":10151,"name":"int40","nodeType":"ElementaryTypeName","src":"32236:5:46","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"32235:18:46"},"scope":10290,"src":"32182:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10191,"nodeType":"Block","src":"32804:122:46","statements":[{"expression":{"id":10182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10177,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10175,"src":"32814:10:46","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10180,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10172,"src":"32833:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32827:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":10178,"name":"int32","nodeType":"ElementaryTypeName","src":"32827:5:46","typeDescriptions":{}}},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32827:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32814:25:46","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":10183,"nodeType":"ExpressionStatement","src":"32814:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10185,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10175,"src":"32857:10:46","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10172,"src":"32871:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32857:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":10188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32878:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":10184,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"32849:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32849:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10190,"nodeType":"ExpressionStatement","src":"32849:70:46"}]},"documentation":{"id":10170,"nodeType":"StructuredDocumentation","src":"32382:345:46","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v3.1._"},"id":10192,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32741:7:46","nodeType":"FunctionDefinition","parameters":{"id":10173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10172,"mutability":"mutable","name":"value","nameLocation":"32756:5:46","nodeType":"VariableDeclaration","scope":10192,"src":"32749:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10171,"name":"int256","nodeType":"ElementaryTypeName","src":"32749:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32748:14:46"},"returnParameters":{"id":10176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10175,"mutability":"mutable","name":"downcasted","nameLocation":"32792:10:46","nodeType":"VariableDeclaration","scope":10192,"src":"32786:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":10174,"name":"int32","nodeType":"ElementaryTypeName","src":"32786:5:46","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32785:18:46"},"scope":10290,"src":"32732:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10214,"nodeType":"Block","src":"33354:122:46","statements":[{"expression":{"id":10205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10200,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"33364:10:46","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"33383:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33377:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":10201,"name":"int24","nodeType":"ElementaryTypeName","src":"33377:5:46","typeDescriptions":{}}},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33364:25:46","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":10206,"nodeType":"ExpressionStatement","src":"33364:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10208,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"33407:10:46","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"33421:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33407:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":10211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33428:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":10207,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"33399:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33399:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10213,"nodeType":"ExpressionStatement","src":"33399:70:46"}]},"documentation":{"id":10193,"nodeType":"StructuredDocumentation","src":"32932:345:46","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":10215,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"33291:7:46","nodeType":"FunctionDefinition","parameters":{"id":10196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10195,"mutability":"mutable","name":"value","nameLocation":"33306:5:46","nodeType":"VariableDeclaration","scope":10215,"src":"33299:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10194,"name":"int256","nodeType":"ElementaryTypeName","src":"33299:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33298:14:46"},"returnParameters":{"id":10199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"downcasted","nameLocation":"33342:10:46","nodeType":"VariableDeclaration","scope":10215,"src":"33336:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":10197,"name":"int24","nodeType":"ElementaryTypeName","src":"33336:5:46","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"33335:18:46"},"scope":10290,"src":"33282:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10237,"nodeType":"Block","src":"33904:122:46","statements":[{"expression":{"id":10228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10223,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10221,"src":"33914:10:46","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10218,"src":"33933:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33927:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":10224,"name":"int16","nodeType":"ElementaryTypeName","src":"33927:5:46","typeDescriptions":{}}},"id":10227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33927:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33914:25:46","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":10229,"nodeType":"ExpressionStatement","src":"33914:25:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10231,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10221,"src":"33957:10:46","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10232,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10218,"src":"33971:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33957:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":10234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33978:40:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":10230,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"33949:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33949:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10236,"nodeType":"ExpressionStatement","src":"33949:70:46"}]},"documentation":{"id":10216,"nodeType":"StructuredDocumentation","src":"33482:345:46","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v3.1._"},"id":10238,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33841:7:46","nodeType":"FunctionDefinition","parameters":{"id":10219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10218,"mutability":"mutable","name":"value","nameLocation":"33856:5:46","nodeType":"VariableDeclaration","scope":10238,"src":"33849:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10217,"name":"int256","nodeType":"ElementaryTypeName","src":"33849:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33848:14:46"},"returnParameters":{"id":10222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10221,"mutability":"mutable","name":"downcasted","nameLocation":"33892:10:46","nodeType":"VariableDeclaration","scope":10238,"src":"33886:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":10220,"name":"int16","nodeType":"ElementaryTypeName","src":"33886:5:46","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33885:18:46"},"scope":10290,"src":"33832:194:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10260,"nodeType":"Block","src":"34447:120:46","statements":[{"expression":{"id":10251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10246,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10244,"src":"34457:10:46","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"34475:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34470:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":10247,"name":"int8","nodeType":"ElementaryTypeName","src":"34470:4:46","typeDescriptions":{}}},"id":10250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34470:11:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34457:24:46","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":10252,"nodeType":"ExpressionStatement","src":"34457:24:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10254,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10244,"src":"34499:10:46","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"34513:5:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34499:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":10257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34520:39:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":10253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"34491:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34491:69:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10259,"nodeType":"ExpressionStatement","src":"34491:69:46"}]},"documentation":{"id":10239,"nodeType":"StructuredDocumentation","src":"34032:340:46","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v3.1._"},"id":10261,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"34386:6:46","nodeType":"FunctionDefinition","parameters":{"id":10242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10241,"mutability":"mutable","name":"value","nameLocation":"34400:5:46","nodeType":"VariableDeclaration","scope":10261,"src":"34393:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10240,"name":"int256","nodeType":"ElementaryTypeName","src":"34393:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34392:14:46"},"returnParameters":{"id":10245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10244,"mutability":"mutable","name":"downcasted","nameLocation":"34435:10:46","nodeType":"VariableDeclaration","scope":10261,"src":"34430:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":10243,"name":"int8","nodeType":"ElementaryTypeName","src":"34430:4:46","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34429:17:46"},"scope":10290,"src":"34377:190:46","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10288,"nodeType":"Block","src":"34845:233:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"34962:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":10275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34984:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10274,"name":"int256","nodeType":"ElementaryTypeName","src":"34984:6:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":10273,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34979:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34979:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":10277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34992:3:46","memberName":"max","nodeType":"MemberAccess","src":"34979:16:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34971:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10271,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:46","typeDescriptions":{}}},"id":10278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34971:25:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34962:34:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e74323536","id":10280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34998:42:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""},"value":"SafeCast: value doesn't fit in an int256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""}],"id":10269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"34954:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34954:87:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10282,"nodeType":"ExpressionStatement","src":"34954:87:46"},{"expression":{"arguments":[{"id":10285,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"35065:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35058:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10283,"name":"int256","nodeType":"ElementaryTypeName","src":"35058:6:46","typeDescriptions":{}}},"id":10286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35058:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10268,"id":10287,"nodeType":"Return","src":"35051:20:46"}]},"documentation":{"id":10262,"nodeType":"StructuredDocumentation","src":"34573:203:46","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256.\n _Available since v3.0._"},"id":10289,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34790:8:46","nodeType":"FunctionDefinition","parameters":{"id":10265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10264,"mutability":"mutable","name":"value","nameLocation":"34807:5:46","nodeType":"VariableDeclaration","scope":10289,"src":"34799:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10263,"name":"uint256","nodeType":"ElementaryTypeName","src":"34799:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34798:15:46"},"returnParameters":{"id":10268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10289,"src":"34837:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10266,"name":"int256","nodeType":"ElementaryTypeName","src":"34837:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34836:8:46"},"scope":10290,"src":"34781:297:46","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10291,"src":"927:34153:46","usedErrors":[],"usedEvents":[]}],"src":"192:34889:46"},"id":46},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[10395]},"id":10396,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10292,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:47"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":10293,"nodeType":"StructuredDocumentation","src":"134:80:47","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":10395,"linearizedBaseContracts":[10395],"name":"SignedMath","nameLocation":"223:10:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":10310,"nodeType":"Block","src":"375:37:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10303,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10296,"src":"392:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10304,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10298,"src":"396:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10307,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10298,"src":"404:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:47","trueExpression":{"id":10306,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10296,"src":"400:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10302,"id":10309,"nodeType":"Return","src":"385:20:47"}]},"documentation":{"id":10294,"nodeType":"StructuredDocumentation","src":"240:66:47","text":" @dev Returns the largest of two signed numbers."},"id":10311,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:47","nodeType":"FunctionDefinition","parameters":{"id":10299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10296,"mutability":"mutable","name":"a","nameLocation":"331:1:47","nodeType":"VariableDeclaration","scope":10311,"src":"324:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10295,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10298,"mutability":"mutable","name":"b","nameLocation":"341:1:47","nodeType":"VariableDeclaration","scope":10311,"src":"334:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10297,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:47"},"returnParameters":{"id":10302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10311,"src":"367:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10300,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:47"},"scope":10395,"src":"311:101:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10328,"nodeType":"Block","src":"554:37:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10321,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10314,"src":"571:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10322,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10316,"src":"575:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10325,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10316,"src":"583:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:47","trueExpression":{"id":10324,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10314,"src":"579:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10320,"id":10327,"nodeType":"Return","src":"564:20:47"}]},"documentation":{"id":10312,"nodeType":"StructuredDocumentation","src":"418:67:47","text":" @dev Returns the smallest of two signed numbers."},"id":10329,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:47","nodeType":"FunctionDefinition","parameters":{"id":10317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10314,"mutability":"mutable","name":"a","nameLocation":"510:1:47","nodeType":"VariableDeclaration","scope":10329,"src":"503:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10313,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10316,"mutability":"mutable","name":"b","nameLocation":"520:1:47","nodeType":"VariableDeclaration","scope":10329,"src":"513:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10315,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:47"},"returnParameters":{"id":10320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10329,"src":"546:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10318,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:47"},"scope":10395,"src":"490:101:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10372,"nodeType":"Block","src":"796:162:47","statements":[{"assignments":[10340],"declarations":[{"constant":false,"id":10340,"mutability":"mutable","name":"x","nameLocation":"865:1:47","nodeType":"VariableDeclaration","scope":10372,"src":"858:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10339,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":10353,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10341,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"870:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10342,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"874:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10344,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10345,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"881:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10346,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"885:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10351,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:47"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10354,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10340,"src":"910:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10359,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10340,"src":"930:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10357,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:47","typeDescriptions":{}}},"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":10361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:47","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10355,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:47","typeDescriptions":{}}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10364,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"944:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10365,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"948:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10367,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10338,"id":10371,"nodeType":"Return","src":"903:48:47"}]},"documentation":{"id":10330,"nodeType":"StructuredDocumentation","src":"597:126:47","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":10373,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:47","nodeType":"FunctionDefinition","parameters":{"id":10335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10332,"mutability":"mutable","name":"a","nameLocation":"752:1:47","nodeType":"VariableDeclaration","scope":10373,"src":"745:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10331,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10334,"mutability":"mutable","name":"b","nameLocation":"762:1:47","nodeType":"VariableDeclaration","scope":10373,"src":"755:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10333,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:47"},"returnParameters":{"id":10338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10373,"src":"788:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10336,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:47"},"scope":10395,"src":"728:230:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10393,"nodeType":"Block","src":"1102:158:47","statements":[{"id":10392,"nodeType":"UncheckedBlock","src":"1112:142:47","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10383,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10376,"src":"1227:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:47","subExpression":{"id":10387,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10376,"src":"1241:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:47","trueExpression":{"id":10386,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10376,"src":"1236:1:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10381,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:47","typeDescriptions":{}}},"id":10390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10380,"id":10391,"nodeType":"Return","src":"1212:31:47"}]}]},"documentation":{"id":10374,"nodeType":"StructuredDocumentation","src":"964:78:47","text":" @dev Returns the absolute unsigned value of a signed value."},"id":10394,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:47","nodeType":"FunctionDefinition","parameters":{"id":10377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10376,"mutability":"mutable","name":"n","nameLocation":"1067:1:47","nodeType":"VariableDeclaration","scope":10394,"src":"1060:8:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10375,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:47"},"returnParameters":{"id":10380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10394,"src":"1093:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10378,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:47"},"scope":10395,"src":"1047:213:47","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10396,"src":"215:1047:47","usedErrors":[],"usedEvents":[]}],"src":"109:1154:47"},"id":47},"contracts/AccessManager.sol":{"ast":{"absolutePath":"contracts/AccessManager.sol","exportedSymbols":{"AccessControlUpgradeable":[336],"AccessManager":[10824],"IAccessManager":[23370],"Initializable":[944],"UUPSUpgradeable":[1081]},"id":10825,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10397,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:48"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","id":10399,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10825,"sourceUnit":337,"src":"57:113:48","symbolAliases":[{"foreign":{"id":10398,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"65:24:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":10401,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10825,"sourceUnit":945,"src":"171:96:48","symbolAliases":[{"foreign":{"id":10400,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"179:13:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":10403,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10825,"sourceUnit":1082,"src":"268:100:48","symbolAliases":[{"foreign":{"id":10402,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"276:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":10405,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10825,"sourceUnit":23371,"src":"369:63:48","symbolAliases":[{"foreign":{"id":10404,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"377:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10407,"name":"Initializable","nameLocations":["1602:13:48"],"nodeType":"IdentifierPath","referencedDeclaration":944,"src":"1602:13:48"},"id":10408,"nodeType":"InheritanceSpecifier","src":"1602:13:48"},{"baseName":{"id":10409,"name":"AccessControlUpgradeable","nameLocations":["1617:24:48"],"nodeType":"IdentifierPath","referencedDeclaration":336,"src":"1617:24:48"},"id":10410,"nodeType":"InheritanceSpecifier","src":"1617:24:48"},{"baseName":{"id":10411,"name":"UUPSUpgradeable","nameLocations":["1643:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"1643:15:48"},"id":10412,"nodeType":"InheritanceSpecifier","src":"1643:15:48"},{"baseName":{"id":10413,"name":"IAccessManager","nameLocations":["1660:14:48"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"1660:14:48"},"id":10414,"nodeType":"InheritanceSpecifier","src":"1660:14:48"}],"canonicalName":"AccessManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":10406,"nodeType":"StructuredDocumentation","src":"434:1141:48","text":" @title AccessManager - Protocol access roles\n @dev Contract that holds the access roles for PolicyPool and other components of the protocol.\n Roles can be delegated globally (traditional OZ's AccessControl) or per-component using component roles.\n Component roles are computed by doing a bitwise XOR between the component's address (padded to 32\n bytes with zeros on the right) and the role's hash.\n For more details and examples see\n https://docs.ensuro.co/product-docs/smart-contracts/contracts/accessmanager#component-roles\n [CAUTION]\n ====\n Avoid leaving a this contract without DEFAULT_ADMIN_ROLE.\n This contract includes the methods `revokeRole()` and `renounceRole()` that allow to revoke or renounce to\n specific roles. Even when there are valid reasons to leave these methods (for example revoking the initial\n DEFAULT_ADMIN_ROLE of the deployer account to leave just the governance account), it's good to mention these\n methods have to be used with care, avoiding leaving the contract without any default admin.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":10824,"linearizedBaseContracts":[10824,23370,1081,765,430,440,336,3088,3100,409,2704,944],"name":"AccessManager","nameLocation":"1585:13:48","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"24ea54f4","id":10419,"mutability":"constant","name":"GUARDIAN_ROLE","nameLocation":"1730:13:48","nodeType":"VariableDeclaration","scope":10824,"src":"1706:66:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1706:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"475541524449414e5f524f4c45","id":10417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1756:15:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""},"value":"GUARDIAN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""}],"id":10416,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1746:9:48","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"f67b2bad","id":10424,"mutability":"constant","name":"LEVEL1_ROLE","nameLocation":"1800:11:48","nodeType":"VariableDeclaration","scope":10824,"src":"1776:62:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1776:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c315f524f4c45","id":10422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1824:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""},"value":"LEVEL1_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""}],"id":10421,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1814:9:48","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"4a47a3e0","id":10429,"mutability":"constant","name":"LEVEL2_ROLE","nameLocation":"1866:11:48","nodeType":"VariableDeclaration","scope":10824,"src":"1842:62:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1842:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c325f524f4c45","id":10427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1890:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""},"value":"LEVEL2_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""}],"id":10426,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1880:9:48","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"documentation":{"id":10430,"nodeType":"StructuredDocumentation","src":"1914:194:48","text":" @notice Special address used for setting component-role admin for a specific role on any component.\n Note that granting component roles using this address has no meaning."},"functionSelector":"ad358f07","id":10436,"mutability":"constant","name":"ANY_COMPONENT","nameLocation":"2135:13:48","nodeType":"VariableDeclaration","scope":10824,"src":"2111:91:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10431,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":10434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2159:42:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2151:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10432,"name":"address","nodeType":"ElementaryTypeName","src":"2151:7:48","typeDescriptions":{}}},"id":10435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2151:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":10457,"nodeType":"Block","src":"2340:84:48","statements":[{"condition":{"id":10448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2350:29:48","subExpression":{"arguments":[{"id":10444,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"2359:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10445,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2366:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10443,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2351:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2351:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10455,"nodeType":"IfStatement","src":"2346:66:48","trueBody":{"expression":{"arguments":[{"id":10450,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10441,"src":"2392:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10451,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2399:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10449,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"2381:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:31:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10454,"nodeType":"ExpressionStatement","src":"2381:31:48"}},{"id":10456,"nodeType":"PlaceholderStatement","src":"2418:1:48"}]},"documentation":{"id":10437,"nodeType":"StructuredDocumentation","src":"2207:81:48","text":"@dev Modifier that checks if the caller has either role1 or role2."},"id":10458,"name":"onlyRole2","nameLocation":"2300:9:48","nodeType":"ModifierDefinition","parameters":{"id":10442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10439,"mutability":"mutable","name":"role1","nameLocation":"2318:5:48","nodeType":"VariableDeclaration","scope":10458,"src":"2310:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2310:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10441,"mutability":"mutable","name":"role2","nameLocation":"2333:5:48","nodeType":"VariableDeclaration","scope":10458,"src":"2325:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2325:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2309:30:48"},"src":"2291:133:48","virtual":false,"visibility":"internal"},{"body":{"id":10511,"nodeType":"Block","src":"2599:636:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10466,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10461,"src":"2613:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2634:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2626:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10467,"name":"address","nodeType":"ElementaryTypeName","src":"2626:7:48","typeDescriptions":{}}},"id":10470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2626:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2613:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4163636573734d616e616765723a20696e76616c6964206164647265737320666f7220636f6d706f6e656e74","id":10472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2638:46:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_139e7460e861361a043a6a300a0adb9f37e8681b280e3f9f258dba9bc5ed8726","typeString":"literal_string \"AccessManager: invalid address for component\""},"value":"AccessManager: invalid address for component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_139e7460e861361a043a6a300a0adb9f37e8681b280e3f9f258dba9bc5ed8726","typeString":"literal_string \"AccessManager: invalid address for component\""}],"id":10465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2605:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:80:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10474,"nodeType":"ExpressionStatement","src":"2605:80:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":10479,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10461,"src":"2806:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10480,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10463,"src":"2817:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10478,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"2789:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2789:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10477,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2776:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2776:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10483,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2825:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2825:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10476,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2768:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2768:70:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":10488,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10461,"src":"3029:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10489,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10463,"src":"3040:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10487,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"3012:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10486,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2999:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10492,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"3050:18:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2999:69:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":10497,"name":"ANY_COMPONENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10436,"src":"3120:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10498,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10463,"src":"3135:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10496,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"3103:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3103:37:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10495,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"3090:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3090:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10501,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"3143:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3143:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10494,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3082:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:74:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2999:157:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2998:159:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2768:389:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4163636573734d616e616765723a206d73672e73656e646572206e6565647320636f6d706f6e656e74526f6c6541646d696e","id":10507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3165:52:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe9fbc8261f2f4efe11c4301badc79ec09bf8356cfeea91de99d438db405983","typeString":"literal_string \"AccessManager: msg.sender needs componentRoleAdmin\""},"value":"AccessManager: msg.sender needs componentRoleAdmin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe9fbc8261f2f4efe11c4301badc79ec09bf8356cfeea91de99d438db405983","typeString":"literal_string \"AccessManager: msg.sender needs componentRoleAdmin\""}],"id":10475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2691:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2691:532:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10509,"nodeType":"ExpressionStatement","src":"2691:532:48"},{"id":10510,"nodeType":"PlaceholderStatement","src":"3229:1:48"}]},"documentation":{"id":10459,"nodeType":"StructuredDocumentation","src":"2428:103:48","text":"@dev Modifier that checks if the caller has admin access to the specific component-role."},"id":10512,"name":"onlyComponentRoleAdmin","nameLocation":"2543:22:48","nodeType":"ModifierDefinition","parameters":{"id":10464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10461,"mutability":"mutable","name":"component","nameLocation":"2574:9:48","nodeType":"VariableDeclaration","scope":10512,"src":"2566:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10460,"name":"address","nodeType":"ElementaryTypeName","src":"2566:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10463,"mutability":"mutable","name":"role","nameLocation":"2593:4:48","nodeType":"VariableDeclaration","scope":10512,"src":"2585:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2585:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2565:33:48"},"src":"2534:701:48","virtual":false,"visibility":"internal"},{"body":{"id":10519,"nodeType":"Block","src":"3304:33:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10516,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"3310:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3310:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10518,"nodeType":"ExpressionStatement","src":"3310:22:48"}]},"documentation":{"id":10513,"nodeType":"StructuredDocumentation","src":"3239:48:48","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":10520,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10514,"nodeType":"ParameterList","parameters":[],"src":"3301:2:48"},"returnParameters":{"id":10515,"nodeType":"ParameterList","parameters":[],"src":"3304:0:48"},"scope":10824,"src":"3290:47:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10534,"nodeType":"Block","src":"3382:101:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10525,"name":"__AccessControl_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"3388:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10527,"nodeType":"ExpressionStatement","src":"3388:22:48"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10528,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1008,"src":"3416:22:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10530,"nodeType":"ExpressionStatement","src":"3416:24:48"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10531,"name":"__AccessManager_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10547,"src":"3446:30:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3446:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10533,"nodeType":"ExpressionStatement","src":"3446:32:48"}]},"functionSelector":"8129fc1c","id":10535,"implemented":true,"kind":"function","modifiers":[{"id":10523,"kind":"modifierInvocation","modifierName":{"id":10522,"name":"initializer","nameLocations":["3370:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"3370:11:48"},"nodeType":"ModifierInvocation","src":"3370:11:48"}],"name":"initialize","nameLocation":"3350:10:48","nodeType":"FunctionDefinition","parameters":{"id":10521,"nodeType":"ParameterList","parameters":[],"src":"3360:2:48"},"returnParameters":{"id":10524,"nodeType":"ParameterList","parameters":[],"src":"3382:0:48"},"scope":10824,"src":"3341:142:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10546,"nodeType":"Block","src":"3606:55:48","statements":[{"expression":{"arguments":[{"id":10541,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"3623:18:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10542,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"3643:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3643:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10540,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"3612:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3612:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10545,"nodeType":"ExpressionStatement","src":"3612:44:48"}]},"id":10547,"implemented":true,"kind":"function","modifiers":[{"id":10538,"kind":"modifierInvocation","modifierName":{"id":10537,"name":"onlyInitializing","nameLocations":["3589:16:48"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"3589:16:48"},"nodeType":"ModifierInvocation","src":"3589:16:48"}],"name":"__AccessManager_init_unchained","nameLocation":"3547:30:48","nodeType":"FunctionDefinition","parameters":{"id":10536,"nodeType":"ParameterList","parameters":[],"src":"3577:2:48"},"returnParameters":{"id":10539,"nodeType":"ParameterList","parameters":[],"src":"3606:0:48"},"scope":10824,"src":"3538:123:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1075],"body":{"id":10557,"nodeType":"Block","src":"3804:2:48","statements":[]},"id":10558,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10553,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10419,"src":"3776:13:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10554,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10424,"src":"3791:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10555,"kind":"modifierInvocation","modifierName":{"id":10552,"name":"onlyRole2","nameLocations":["3766:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":10458,"src":"3766:9:48"},"nodeType":"ModifierInvocation","src":"3766:37:48"}],"name":"_authorizeUpgrade","nameLocation":"3721:17:48","nodeType":"FunctionDefinition","overrides":{"id":10551,"nodeType":"OverrideSpecifier","overrides":[],"src":"3757:8:48"},"parameters":{"id":10550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10558,"src":"3739:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10548,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:48"},"returnParameters":{"id":10556,"nodeType":"ParameterList","parameters":[],"src":"3804:0:48"},"scope":10824,"src":"3712:94:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[76],"body":{"id":10579,"nodeType":"Block","src":"3956:105:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10569,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"3993:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":10567,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3969:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessManager_$10824_$","typeString":"type(contract super AccessManager)"}},"id":10568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3975:17:48","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":76,"src":"3969:23:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":10570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10571,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"4009:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10573,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"4029:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}],"id":10572,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4024:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4024:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessManager_$23370","typeString":"type(contract IAccessManager)"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4045:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"4024:32:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4009:47:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3969:87:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10566,"id":10578,"nodeType":"Return","src":"3962:94:48"}]},"documentation":{"id":10559,"nodeType":"StructuredDocumentation","src":"3810:52:48","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":10580,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3874:17:48","nodeType":"FunctionDefinition","overrides":{"id":10563,"nodeType":"OverrideSpecifier","overrides":[],"src":"3932:8:48"},"parameters":{"id":10562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10561,"mutability":"mutable","name":"interfaceId","nameLocation":"3899:11:48","nodeType":"VariableDeclaration","scope":10580,"src":"3892:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10560,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3892:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3891:20:48"},"returnParameters":{"id":10566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10580,"src":"3950:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10564,"name":"bool","nodeType":"ElementaryTypeName","src":"3950:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3949:6:48"},"scope":10824,"src":"3865:196:48","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23311],"body":{"id":10601,"nodeType":"Block","src":"4320:52:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":10595,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10583,"src":"4349:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4341:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":10593,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4341:7:48","typeDescriptions":{}}},"id":10596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4341:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":10592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4333:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4333:7:48","typeDescriptions":{}}},"id":10597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4333:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10598,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10585,"src":"4363:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4333:34:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10590,"id":10600,"nodeType":"Return","src":"4326:41:48"}]},"documentation":{"id":10581,"nodeType":"StructuredDocumentation","src":"4065:154:48","text":" @dev Computes a component role\n @param component The component address\n @param role The role to get\n @return The component role"},"functionSelector":"374c96c8","id":10602,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentRole","nameLocation":"4231:16:48","nodeType":"FunctionDefinition","overrides":{"id":10587,"nodeType":"OverrideSpecifier","overrides":[],"src":"4293:8:48"},"parameters":{"id":10586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10583,"mutability":"mutable","name":"component","nameLocation":"4256:9:48","nodeType":"VariableDeclaration","scope":10602,"src":"4248:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10582,"name":"address","nodeType":"ElementaryTypeName","src":"4248:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10585,"mutability":"mutable","name":"role","nameLocation":"4275:4:48","nodeType":"VariableDeclaration","scope":10602,"src":"4267:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4267:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4247:33:48"},"returnParameters":{"id":10590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10602,"src":"4311:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4311:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4310:9:48"},"scope":10824,"src":"4222:150:48","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[23325],"body":{"id":10633,"nodeType":"Block","src":"4821:111:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10617,"name":"alsoGlobal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10611,"src":"4835:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":10619,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"4857:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10620,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"4863:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10618,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4849:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4849:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4835:36:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10623,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4834:38:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"arguments":[{"id":10626,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10605,"src":"4901:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10627,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"4912:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10625,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"4884:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10629,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"4919:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10624,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4876:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4876:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4834:93:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10616,"id":10632,"nodeType":"Return","src":"4827:100:48"}]},"documentation":{"id":10603,"nodeType":"StructuredDocumentation","src":"4376:293:48","text":" @dev Checks if an account has a component role\n @param component The component address\n @param role The role to check\n @param account The account to check\n @param alsoGlobal If true, check for the global role as well\n @return Whether the account has the role"},"functionSelector":"b3efcbd2","id":10634,"implemented":true,"kind":"function","modifiers":[],"name":"hasComponentRole","nameLocation":"4681:16:48","nodeType":"FunctionDefinition","overrides":{"id":10613,"nodeType":"OverrideSpecifier","overrides":[],"src":"4797:8:48"},"parameters":{"id":10612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10605,"mutability":"mutable","name":"component","nameLocation":"4711:9:48","nodeType":"VariableDeclaration","scope":10634,"src":"4703:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10604,"name":"address","nodeType":"ElementaryTypeName","src":"4703:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10607,"mutability":"mutable","name":"role","nameLocation":"4734:4:48","nodeType":"VariableDeclaration","scope":10634,"src":"4726:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4726:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10609,"mutability":"mutable","name":"account","nameLocation":"4752:7:48","nodeType":"VariableDeclaration","scope":10634,"src":"4744:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10608,"name":"address","nodeType":"ElementaryTypeName","src":"4744:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10611,"mutability":"mutable","name":"alsoGlobal","nameLocation":"4770:10:48","nodeType":"VariableDeclaration","scope":10634,"src":"4765:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10610,"name":"bool","nodeType":"ElementaryTypeName","src":"4765:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4697:87:48"},"returnParameters":{"id":10616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10634,"src":"4815:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10614,"name":"bool","nodeType":"ElementaryTypeName","src":"4815:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4814:6:48"},"scope":10824,"src":"4672:260:48","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23355],"body":{"id":10665,"nodeType":"Block","src":"5343:123:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5353:11:48","subExpression":{"id":10647,"name":"alsoGlobal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10643,"src":"5354:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5368:23:48","subExpression":{"arguments":[{"id":10650,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10639,"src":"5377:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10651,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10641,"src":"5383:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10649,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"5369:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5369:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5353:38:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10664,"nodeType":"IfStatement","src":"5349:113:48","trueBody":{"id":10663,"nodeType":"Block","src":"5393:69:48","statements":[{"expression":{"arguments":[{"arguments":[{"id":10657,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10637,"src":"5429:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10658,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10639,"src":"5440:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10656,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"5412:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5412:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10660,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10641,"src":"5447:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10655,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"5401:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":10661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5401:54:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10662,"nodeType":"ExpressionStatement","src":"5401:54:48"}]}}]},"documentation":{"id":10635,"nodeType":"StructuredDocumentation","src":"4936:266:48","text":" @dev Checks if an account has a component role and reverts if not\n @param component The component address\n @param role The role to check\n @param account The account to check\n @param alsoGlobal If true, check for the global role as well"},"functionSelector":"5ff57d20","id":10666,"implemented":true,"kind":"function","modifiers":[],"name":"checkComponentRole","nameLocation":"5214:18:48","nodeType":"FunctionDefinition","overrides":{"id":10645,"nodeType":"OverrideSpecifier","overrides":[],"src":"5334:8:48"},"parameters":{"id":10644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10637,"mutability":"mutable","name":"component","nameLocation":"5246:9:48","nodeType":"VariableDeclaration","scope":10666,"src":"5238:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10636,"name":"address","nodeType":"ElementaryTypeName","src":"5238:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10639,"mutability":"mutable","name":"role","nameLocation":"5269:4:48","nodeType":"VariableDeclaration","scope":10666,"src":"5261:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5261:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10641,"mutability":"mutable","name":"account","nameLocation":"5287:7:48","nodeType":"VariableDeclaration","scope":10666,"src":"5279:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10640,"name":"address","nodeType":"ElementaryTypeName","src":"5279:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10643,"mutability":"mutable","name":"alsoGlobal","nameLocation":"5305:10:48","nodeType":"VariableDeclaration","scope":10666,"src":"5300:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10642,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5232:87:48"},"returnParameters":{"id":10646,"nodeType":"ParameterList","parameters":[],"src":"5343:0:48"},"scope":10824,"src":"5205:261:48","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23369],"body":{"id":10714,"nodeType":"Block","src":"5976:246:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10681,"name":"alsoGlobal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10677,"src":"5986:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":10683,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10671,"src":"6008:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10684,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10675,"src":"6015:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10682,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"6000:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6000:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5986:37:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10688,"nodeType":"IfStatement","src":"5982:50:48","trueBody":{"functionReturnParameters":10680,"id":10687,"nodeType":"Return","src":"6025:7:48"}},{"condition":{"arguments":[{"arguments":[{"id":10691,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"6066:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10692,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10671,"src":"6077:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10690,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"6049:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10694,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10675,"src":"6085:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10689,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"6041:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6041:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10697,"nodeType":"IfStatement","src":"6037:65:48","trueBody":{"functionReturnParameters":10680,"id":10696,"nodeType":"Return","src":"6095:7:48"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10698,"name":"alsoGlobal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10677,"src":"6111:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":10700,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"6133:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10701,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10675,"src":"6140:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10699,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"6125:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6111:37:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10705,"nodeType":"IfStatement","src":"6107:50:48","trueBody":{"functionReturnParameters":10680,"id":10704,"nodeType":"Return","src":"6150:7:48"}},{"expression":{"arguments":[{"arguments":[{"id":10708,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"6190:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10709,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"6201:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10707,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"6173:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10711,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10675,"src":"6209:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10706,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"6162:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":10712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6162:55:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10713,"nodeType":"ExpressionStatement","src":"6162:55:48"}]},"documentation":{"id":10667,"nodeType":"StructuredDocumentation","src":"5470:344:48","text":" @dev Checks if an account has either of the role1 or role2 component roles and reverts if not\n @param component The component address\n @param role1 The first role to check\n @param role2 The second role to check\n @param account The account to check\n @param alsoGlobal If true, check for the global role as well"},"functionSelector":"2b1cff1f","id":10715,"implemented":true,"kind":"function","modifiers":[],"name":"checkComponentRole2","nameLocation":"5826:19:48","nodeType":"FunctionDefinition","overrides":{"id":10679,"nodeType":"OverrideSpecifier","overrides":[],"src":"5967:8:48"},"parameters":{"id":10678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10669,"mutability":"mutable","name":"component","nameLocation":"5859:9:48","nodeType":"VariableDeclaration","scope":10715,"src":"5851:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10668,"name":"address","nodeType":"ElementaryTypeName","src":"5851:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10671,"mutability":"mutable","name":"role1","nameLocation":"5882:5:48","nodeType":"VariableDeclaration","scope":10715,"src":"5874:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10670,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5874:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10673,"mutability":"mutable","name":"role2","nameLocation":"5901:5:48","nodeType":"VariableDeclaration","scope":10715,"src":"5893:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5893:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10675,"mutability":"mutable","name":"account","nameLocation":"5920:7:48","nodeType":"VariableDeclaration","scope":10715,"src":"5912:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10674,"name":"address","nodeType":"ElementaryTypeName","src":"5912:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10677,"mutability":"mutable","name":"alsoGlobal","nameLocation":"5938:10:48","nodeType":"VariableDeclaration","scope":10715,"src":"5933:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10676,"name":"bool","nodeType":"ElementaryTypeName","src":"5933:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5845:107:48"},"returnParameters":{"id":10680,"nodeType":"ParameterList","parameters":[],"src":"5976:0:48"},"scope":10824,"src":"5817:405:48","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23333],"body":{"id":10729,"nodeType":"Block","src":"6471:36:48","statements":[{"expression":{"arguments":[{"id":10725,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"6488:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10726,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10720,"src":"6494:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10724,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"6477:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":10727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6477:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10728,"nodeType":"ExpressionStatement","src":"6477:25:48"}]},"documentation":{"id":10716,"nodeType":"StructuredDocumentation","src":"6226:169:48","text":" @dev Checks if an account has a specific role and revert if not\n @param role The role to check.\n @param account The account to check for the role."},"functionSelector":"12d9a6ad","id":10730,"implemented":true,"kind":"function","modifiers":[],"name":"checkRole","nameLocation":"6407:9:48","nodeType":"FunctionDefinition","overrides":{"id":10722,"nodeType":"OverrideSpecifier","overrides":[],"src":"6462:8:48"},"parameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10718,"mutability":"mutable","name":"role","nameLocation":"6425:4:48","nodeType":"VariableDeclaration","scope":10730,"src":"6417:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6417:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10720,"mutability":"mutable","name":"account","nameLocation":"6439:7:48","nodeType":"VariableDeclaration","scope":10730,"src":"6431:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10719,"name":"address","nodeType":"ElementaryTypeName","src":"6431:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6416:31:48"},"returnParameters":{"id":10723,"nodeType":"ParameterList","parameters":[],"src":"6471:0:48"},"scope":10824,"src":"6398:109:48","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23343],"body":{"id":10752,"nodeType":"Block","src":"6832:67:48","statements":[{"condition":{"id":10745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6842:24:48","subExpression":{"arguments":[{"id":10742,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10733,"src":"6851:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10743,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10737,"src":"6858:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10741,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"6843:7:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10751,"nodeType":"IfStatement","src":"6838:56:48","trueBody":{"expression":{"arguments":[{"id":10747,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10735,"src":"6879:5:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10748,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10737,"src":"6886:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10746,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[108,147],"referencedDeclaration":147,"src":"6868:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":10749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6868:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10750,"nodeType":"ExpressionStatement","src":"6868:26:48"}}]},"documentation":{"id":10731,"nodeType":"StructuredDocumentation","src":"6511:228:48","text":" @dev Checks if an account has a either role1 or role2 and revert if not\n @param role1 The first role to check.\n @param role2 The second role to check.\n @param account The account to check for the role."},"functionSelector":"c5b8f5cf","id":10753,"implemented":true,"kind":"function","modifiers":[],"name":"checkRole2","nameLocation":"6751:10:48","nodeType":"FunctionDefinition","overrides":{"id":10739,"nodeType":"OverrideSpecifier","overrides":[],"src":"6823:8:48"},"parameters":{"id":10738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10733,"mutability":"mutable","name":"role1","nameLocation":"6770:5:48","nodeType":"VariableDeclaration","scope":10753,"src":"6762:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6762:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10735,"mutability":"mutable","name":"role2","nameLocation":"6785:5:48","nodeType":"VariableDeclaration","scope":10753,"src":"6777:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6777:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10737,"mutability":"mutable","name":"account","nameLocation":"6800:7:48","nodeType":"VariableDeclaration","scope":10753,"src":"6792:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10736,"name":"address","nodeType":"ElementaryTypeName","src":"6792:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6761:47:48"},"returnParameters":{"id":10740,"nodeType":"ParameterList","parameters":[],"src":"6832:0:48"},"scope":10824,"src":"6742:157:48","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":10775,"nodeType":"Block","src":"7505:65:48","statements":[{"expression":{"arguments":[{"arguments":[{"id":10769,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10756,"src":"7539:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10770,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10758,"src":"7550:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10768,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"7522:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10772,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10760,"src":"7557:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10767,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"7511:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7511:54:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10774,"nodeType":"ExpressionStatement","src":"7511:54:48"}]},"documentation":{"id":10754,"nodeType":"StructuredDocumentation","src":"6903:456:48","text":" @dev Grants `account` the component role `role` for the component with address `component`.\n Requirements:\n - the caller must have role admin for this component-role combination or role admin for any component\n @param component Address of the component for which the role is being granted.\n @param role Bytes32 identifier of the role being granted.\n @param account Address of the account being granted the role."},"functionSelector":"f6a421fc","id":10776,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10763,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10756,"src":"7488:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10764,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10758,"src":"7499:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10765,"kind":"modifierInvocation","modifierName":{"id":10762,"name":"onlyComponentRoleAdmin","nameLocations":["7465:22:48"],"nodeType":"IdentifierPath","referencedDeclaration":10512,"src":"7465:22:48"},"nodeType":"ModifierInvocation","src":"7465:39:48"}],"name":"grantComponentRole","nameLocation":"7371:18:48","nodeType":"FunctionDefinition","parameters":{"id":10761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10756,"mutability":"mutable","name":"component","nameLocation":"7403:9:48","nodeType":"VariableDeclaration","scope":10776,"src":"7395:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10755,"name":"address","nodeType":"ElementaryTypeName","src":"7395:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10758,"mutability":"mutable","name":"role","nameLocation":"7426:4:48","nodeType":"VariableDeclaration","scope":10776,"src":"7418:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7418:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10760,"mutability":"mutable","name":"account","nameLocation":"7444:7:48","nodeType":"VariableDeclaration","scope":10776,"src":"7436:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10759,"name":"address","nodeType":"ElementaryTypeName","src":"7436:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7389:66:48"},"returnParameters":{"id":10766,"nodeType":"ParameterList","parameters":[],"src":"7505:0:48"},"scope":10824,"src":"7362:208:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10798,"nodeType":"Block","src":"7995:70:48","statements":[{"expression":{"arguments":[{"arguments":[{"id":10792,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10779,"src":"8032:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10793,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10781,"src":"8043:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10791,"name":"getComponentRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10602,"src":"8015:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":10794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10795,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10783,"src":"8050:9:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10790,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":267,"src":"8001:13:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":10796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8001:59:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10797,"nodeType":"ExpressionStatement","src":"8001:59:48"}]},"documentation":{"id":10777,"nodeType":"StructuredDocumentation","src":"7574:270:48","text":" @dev Sets `adminRole` as the component-role admin for a specific component or for any component.\n To set the admin for any component use the ANY_COMPONENT constant.\n Requirements:\n - caller must be the current admin for the role"},"functionSelector":"d0b18256","id":10799,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10786,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10779,"src":"7978:9:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10787,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10781,"src":"7989:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10788,"kind":"modifierInvocation","modifierName":{"id":10785,"name":"onlyComponentRoleAdmin","nameLocations":["7955:22:48"],"nodeType":"IdentifierPath","referencedDeclaration":10512,"src":"7955:22:48"},"nodeType":"ModifierInvocation","src":"7955:39:48"}],"name":"setComponentRoleAdmin","nameLocation":"7856:21:48","nodeType":"FunctionDefinition","parameters":{"id":10784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10779,"mutability":"mutable","name":"component","nameLocation":"7891:9:48","nodeType":"VariableDeclaration","scope":10799,"src":"7883:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10778,"name":"address","nodeType":"ElementaryTypeName","src":"7883:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10781,"mutability":"mutable","name":"role","nameLocation":"7914:4:48","nodeType":"VariableDeclaration","scope":10799,"src":"7906:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7906:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10783,"mutability":"mutable","name":"adminRole","nameLocation":"7932:9:48","nodeType":"VariableDeclaration","scope":10799,"src":"7924:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7924:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7877:68:48"},"returnParameters":{"id":10789,"nodeType":"ParameterList","parameters":[],"src":"7995:0:48"},"scope":10824,"src":"7847:218:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10817,"nodeType":"Block","src":"8448:41:48","statements":[{"expression":{"arguments":[{"id":10813,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"8468:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10814,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"8474:9:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10812,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":267,"src":"8454:13:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":10815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8454:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10816,"nodeType":"ExpressionStatement","src":"8454:30:48"}]},"documentation":{"id":10800,"nodeType":"StructuredDocumentation","src":"8069:283:48","text":" @dev Set `adminRole` as the admin role of `role`.\n Requirements:\n - the caller must be the current admin of the given `role`.\n [CAUTION]\n This method allows bypassing checks done by setComponentRoleAdmin. It should not be used for component roles."},"functionSelector":"1e4e0091","id":10818,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":10808,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"8441:4:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10807,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"8428:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8428:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10810,"kind":"modifierInvocation","modifierName":{"id":10806,"name":"onlyRole","nameLocations":["8419:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":42,"src":"8419:8:48"},"nodeType":"ModifierInvocation","src":"8419:28:48"}],"name":"setRoleAdmin","nameLocation":"8364:12:48","nodeType":"FunctionDefinition","parameters":{"id":10805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10802,"mutability":"mutable","name":"role","nameLocation":"8385:4:48","nodeType":"VariableDeclaration","scope":10818,"src":"8377:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8377:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10804,"mutability":"mutable","name":"adminRole","nameLocation":"8399:9:48","nodeType":"VariableDeclaration","scope":10818,"src":"8391:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8391:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8376:33:48"},"returnParameters":{"id":10811,"nodeType":"ParameterList","parameters":[],"src":"8448:0:48"},"scope":10824,"src":"8355:134:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":10819,"nodeType":"StructuredDocumentation","src":"8493:246:48","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":10823,"mutability":"mutable","name":"__gap","nameLocation":"8762:5:48","nodeType":"VariableDeclaration","scope":10824,"src":"8742:25:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":10820,"name":"uint256","nodeType":"ElementaryTypeName","src":"8742:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10822,"length":{"hexValue":"3530","id":10821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8750:2:48","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"8742:11:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":10825,"src":"1576:7194:48","usedErrors":[],"usedEvents":[348,357,366,417,424,429,790]}],"src":"32:8739:48"},"id":48},"contracts/ERC4626AssetManager.sol":{"ast":{"absolutePath":"contracts/ERC4626AssetManager.sol","exportedSymbols":{"ERC4626AssetManager":[11044],"IERC20Metadata":[6066],"IERC4626":[4333],"LiquidityThresholdAssetManager":[14923],"SafeCast":[10290]},"id":11045,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":10826,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:49"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":10828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11045,"sourceUnit":10291,"src":"64:73:49","symbolAliases":[{"foreign":{"id":10827,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"72:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":10830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11045,"sourceUnit":6067,"src":"138:97:49","symbolAliases":[{"foreign":{"id":10829,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"146:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4626.sol","file":"@openzeppelin/contracts/interfaces/IERC4626.sol","id":10832,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11045,"sourceUnit":4334,"src":"236:73:49","symbolAliases":[{"foreign":{"id":10831,"name":"IERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"244:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/LiquidityThresholdAssetManager.sol","file":"./LiquidityThresholdAssetManager.sol","id":10834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11045,"sourceUnit":14924,"src":"310:84:49","symbolAliases":[{"foreign":{"id":10833,"name":"LiquidityThresholdAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14923,"src":"318:30:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10836,"name":"LiquidityThresholdAssetManager","nameLocations":["844:30:49"],"nodeType":"IdentifierPath","referencedDeclaration":14923,"src":"844:30:49"},"id":10837,"nodeType":"InheritanceSpecifier","src":"844:30:49"}],"canonicalName":"ERC4626AssetManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":10835,"nodeType":"StructuredDocumentation","src":"396:415:49","text":" @title Asset Manager that deploys the funds into an ERC4626 vault\n @dev Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into an ERC4626 vault.\n @custom:security-contact security@ensuro.co\n @author Ensuro\n @notice This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details."},"fullyImplemented":true,"id":11044,"linearizedBaseContracts":[11044,14923,23421,7883],"name":"ERC4626AssetManager","nameLocation":"821:19:49","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10840,"libraryName":{"id":10838,"name":"SafeCast","nameLocations":["885:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"885:8:49"},"nodeType":"UsingForDirective","src":"879:27:49","typeName":{"id":10839,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":10843,"mutability":"immutable","name":"_vault","nameLocation":"938:6:49","nodeType":"VariableDeclaration","scope":11044,"src":"910:34:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":10842,"nodeType":"UserDefinedTypeName","pathNode":{"id":10841,"name":"IERC4626","nameLocations":["910:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"910:8:49"},"referencedDeclaration":4333,"src":"910:8:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"},{"body":{"id":10884,"nodeType":"Block","src":"1040:226:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10858,"name":"vault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10849,"src":"1062:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":10857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10856,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:49","typeDescriptions":{}}},"id":10859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1081:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1073:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10860,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:49","typeDescriptions":{}}},"id":10863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1054:29:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433436323641737365744d616e616765723a207661756c742063616e6e6f74206265207a65726f2061646472657373","id":10865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1085:51:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc","typeString":"literal_string \"ERC4626AssetManager: vault cannot be zero address\""},"value":"ERC4626AssetManager: vault cannot be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc","typeString":"literal_string \"ERC4626AssetManager: vault cannot be zero address\""}],"id":10855,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1046:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1046:91:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10867,"nodeType":"ExpressionStatement","src":"1046:91:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10871,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10846,"src":"1159:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}],"id":10870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1151:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10869,"name":"address","nodeType":"ElementaryTypeName","src":"1151:7:49","typeDescriptions":{}}},"id":10872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10873,"name":"vault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10849,"src":"1170:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1177:5:49","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"1170:12:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1170:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1151:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433436323641737365744d616e616765723a207661756c74206d7573742068617665207468652073616d65206173736574","id":10877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1186:53:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66","typeString":"literal_string \"ERC4626AssetManager: vault must have the same asset\""},"value":"ERC4626AssetManager: vault must have the same asset"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66","typeString":"literal_string \"ERC4626AssetManager: vault must have the same asset\""}],"id":10868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1143:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1143:97:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10879,"nodeType":"ExpressionStatement","src":"1143:97:49"},{"expression":{"id":10882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10880,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1246:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10881,"name":"vault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10849,"src":"1255:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"src":"1246:15:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10883,"nodeType":"ExpressionStatement","src":"1246:15:49"}]},"id":10885,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10852,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10846,"src":"1032:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"id":10853,"kind":"baseConstructorSpecifier","modifierName":{"id":10851,"name":"LiquidityThresholdAssetManager","nameLocations":["1001:30:49"],"nodeType":"IdentifierPath","referencedDeclaration":14923,"src":"1001:30:49"},"nodeType":"ModifierInvocation","src":"1001:38:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10846,"mutability":"mutable","name":"asset_","nameLocation":"976:6:49","nodeType":"VariableDeclaration","scope":10885,"src":"961:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":10845,"nodeType":"UserDefinedTypeName","pathNode":{"id":10844,"name":"IERC20Metadata","nameLocations":["961:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"961:14:49"},"referencedDeclaration":6066,"src":"961:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":10849,"mutability":"mutable","name":"vault_","nameLocation":"993:6:49","nodeType":"VariableDeclaration","scope":10885,"src":"984:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":10848,"nodeType":"UserDefinedTypeName","pathNode":{"id":10847,"name":"IERC4626","nameLocations":["984:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"984:8:49"},"referencedDeclaration":4333,"src":"984:8:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"}],"src":"960:40:49"},"returnParameters":{"id":10854,"nodeType":"ParameterList","parameters":[],"src":"1040:0:49"},"scope":11044,"src":"949:317:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[14518],"body":{"id":10908,"nodeType":"Block","src":"1313:116:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10889,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1319:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC4626AssetManager_$11044_$","typeString":"type(contract super ERC4626AssetManager)"}},"id":10891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:49","memberName":"connect","nodeType":"MemberAccess","referencedDeclaration":14518,"src":"1319:13:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1319:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10893,"nodeType":"ExpressionStatement","src":"1319:15:49"},{"expression":{"arguments":[{"arguments":[{"id":10899,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1363:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":10898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1355:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10897,"name":"address","nodeType":"ElementaryTypeName","src":"1355:7:49","typeDescriptions":{}}},"id":10900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":10903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1377:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10902,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":10901,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1372:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":10905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1386:3:49","memberName":"max","nodeType":"MemberAccess","src":"1372:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10894,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"1340:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":10896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:7:49","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"1340:14:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":10906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1340:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10907,"nodeType":"ExpressionStatement","src":"1340:50:49"}]},"functionSelector":"948cb719","id":10909,"implemented":true,"kind":"function","modifiers":[],"name":"connect","nameLocation":"1279:7:49","nodeType":"FunctionDefinition","overrides":{"id":10887,"nodeType":"OverrideSpecifier","overrides":[],"src":"1304:8:49"},"parameters":{"id":10886,"nodeType":"ParameterList","parameters":[],"src":"1286:2:49"},"returnParameters":{"id":10888,"nodeType":"ParameterList","parameters":[],"src":"1313:0:49"},"scope":11044,"src":"1270:159:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[14707],"body":{"id":10931,"nodeType":"Block","src":"1492:75:49","statements":[{"expression":{"arguments":[{"id":10918,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10911,"src":"1512:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10915,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1498:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC4626AssetManager_$11044_$","typeString":"type(contract super ERC4626AssetManager)"}},"id":10917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1504:7:49","memberName":"_invest","nodeType":"MemberAccess","referencedDeclaration":14707,"src":"1498:13:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":10919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10920,"nodeType":"ExpressionStatement","src":"1498:21:49"},{"expression":{"arguments":[{"id":10924,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10911,"src":"1540:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":10927,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1556:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1548:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10925,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:49","typeDescriptions":{}}},"id":10928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1548:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10921,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1525:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1532:7:49","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":4250,"src":"1525:14:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":10929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1525:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10930,"nodeType":"ExpressionStatement","src":"1525:37:49"}]},"id":10932,"implemented":true,"kind":"function","modifiers":[],"name":"_invest","nameLocation":"1442:7:49","nodeType":"FunctionDefinition","overrides":{"id":10913,"nodeType":"OverrideSpecifier","overrides":[],"src":"1483:8:49"},"parameters":{"id":10912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10911,"mutability":"mutable","name":"amount","nameLocation":"1458:6:49","nodeType":"VariableDeclaration","scope":10932,"src":"1450:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10910,"name":"uint256","nodeType":"ElementaryTypeName","src":"1450:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1449:16:49"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[],"src":"1492:0:49"},"scope":11044,"src":"1433:134:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[14739],"body":{"id":10958,"nodeType":"Block","src":"1632:93:49","statements":[{"expression":{"arguments":[{"id":10941,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"1654:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10938,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1638:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC4626AssetManager_$11044_$","typeString":"type(contract super ERC4626AssetManager)"}},"id":10940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1644:9:49","memberName":"_deinvest","nodeType":"MemberAccess","referencedDeclaration":14739,"src":"1638:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":10942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1638:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10943,"nodeType":"ExpressionStatement","src":"1638:23:49"},{"expression":{"arguments":[{"id":10947,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"1683:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":10950,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1699:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1691:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10948,"name":"address","nodeType":"ElementaryTypeName","src":"1691:7:49","typeDescriptions":{}}},"id":10951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":10954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1714:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1706:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10952,"name":"address","nodeType":"ElementaryTypeName","src":"1706:7:49","typeDescriptions":{}}},"id":10955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1706:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10944,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1667:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1674:8:49","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":4304,"src":"1667:15:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":10956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1667:53:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10957,"nodeType":"ExpressionStatement","src":"1667:53:49"}]},"id":10959,"implemented":true,"kind":"function","modifiers":[],"name":"_deinvest","nameLocation":"1580:9:49","nodeType":"FunctionDefinition","overrides":{"id":10936,"nodeType":"OverrideSpecifier","overrides":[],"src":"1623:8:49"},"parameters":{"id":10935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10934,"mutability":"mutable","name":"amount","nameLocation":"1598:6:49","nodeType":"VariableDeclaration","scope":10959,"src":"1590:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1590:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1589:16:49"},"returnParameters":{"id":10937,"nodeType":"ParameterList","parameters":[],"src":"1632:0:49"},"scope":11044,"src":"1571:154:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[23420],"body":{"id":11024,"nodeType":"Block","src":"1804:351:49","statements":[{"assignments":[10967],"declarations":[{"constant":false,"id":10967,"mutability":"mutable","name":"ds","nameLocation":"1833:2:49","nodeType":"VariableDeclaration","scope":11024,"src":"1810:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":10966,"nodeType":"UserDefinedTypeName","pathNode":{"id":10965,"name":"DiamondStorage","nameLocations":["1810:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"1810:14:49"},"referencedDeclaration":14397,"src":"1810:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":10970,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10968,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"1838:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":10969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1810:44:49"},{"assignments":[10972],"declarations":[{"constant":false,"id":10972,"mutability":"mutable","name":"assets","nameLocation":"1868:6:49","nodeType":"VariableDeclaration","scope":11024,"src":"1860:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1860:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10991,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":10979,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1916:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1908:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10977,"name":"address","nodeType":"ElementaryTypeName","src":"1908:7:49","typeDescriptions":{}}},"id":10980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10975,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1891:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1898:9:49","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"1891:16:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":10981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":10984,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1932:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1924:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10982,"name":"address","nodeType":"ElementaryTypeName","src":"1924:7:49","typeDescriptions":{}}},"id":10985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1924:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":10988,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1947:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":10987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1939:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10986,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:49","typeDescriptions":{}}},"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1939:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10973,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1877:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":10974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1884:6:49","memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":4332,"src":"1877:13:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":10990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1877:76:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1860:93:49"},{"expression":{"id":11006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10992,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10963,"src":"1959:8:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10995,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10972,"src":"1977:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1970:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10993,"name":"int256","nodeType":"ElementaryTypeName","src":"1970:6:49","typeDescriptions":{}}},"id":10996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1970:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":11001,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10967,"src":"2002:2:49","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":11002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2005:19:49","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"2002:22:49","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":11000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1994:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1994:7:49","typeDescriptions":{}}},"id":11003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1994:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1987:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10997,"name":"int256","nodeType":"ElementaryTypeName","src":"1987:6:49","typeDescriptions":{}}},"id":11004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1987:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1970:56:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1959:67:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11007,"nodeType":"ExpressionStatement","src":"1959:67:49"},{"expression":{"id":11012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11008,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10967,"src":"2032:2:49","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":11010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:19:49","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"2032:22:49","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":11011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2057:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2032:26:49","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":11013,"nodeType":"ExpressionStatement","src":"2032:26:49"},{"eventCall":{"arguments":[{"id":11015,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10972,"src":"2085:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11014,"name":"MoneyDeinvested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23387,"src":"2069:15:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":11016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11017,"nodeType":"EmitStatement","src":"2064:28:49"},{"eventCall":{"arguments":[{"id":11019,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10963,"src":"2120:8:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11018,"name":"EarningsRecorded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23392,"src":"2103:16:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":11020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11021,"nodeType":"EmitStatement","src":"2098:31:49"},{"expression":{"id":11022,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10963,"src":"2142:8:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10964,"id":11023,"nodeType":"Return","src":"2135:15:49"}]},"functionSelector":"cec16f3f","id":11025,"implemented":true,"kind":"function","modifiers":[],"name":"deinvestAll","nameLocation":"1738:11:49","nodeType":"FunctionDefinition","overrides":{"id":10961,"nodeType":"OverrideSpecifier","overrides":[],"src":"1769:8:49"},"parameters":{"id":10960,"nodeType":"ParameterList","parameters":[],"src":"1749:2:49"},"returnParameters":{"id":10964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10963,"mutability":"mutable","name":"earnings","nameLocation":"1794:8:49","nodeType":"VariableDeclaration","scope":11025,"src":"1787:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10962,"name":"int256","nodeType":"ElementaryTypeName","src":"1787:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1786:17:49"},"scope":11044,"src":"1729:426:49","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[14572],"body":{"id":11042,"nodeType":"Block","src":"2236:73:49","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":11037,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2297:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626AssetManager_$11044","typeString":"contract ERC4626AssetManager"}],"id":11036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2289:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11035,"name":"address","nodeType":"ElementaryTypeName","src":"2289:7:49","typeDescriptions":{}}},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11033,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"2272:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:9:49","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"2272:16:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2272:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11031,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"2249:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2256:15:49","memberName":"convertToAssets","nodeType":"MemberAccess","referencedDeclaration":4224,"src":"2249:22:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":11040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11030,"id":11041,"nodeType":"Return","src":"2242:62:49"}]},"functionSelector":"4dd93bd3","id":11043,"implemented":true,"kind":"function","modifiers":[],"name":"getInvestmentValue","nameLocation":"2168:18:49","nodeType":"FunctionDefinition","overrides":{"id":11027,"nodeType":"OverrideSpecifier","overrides":[],"src":"2209:8:49"},"parameters":{"id":11026,"nodeType":"ParameterList","parameters":[],"src":"2186:2:49"},"returnParameters":{"id":11030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11043,"src":"2227:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2227:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2226:9:49"},"scope":11044,"src":"2159:150:49","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":11045,"src":"812:1499:49","usedErrors":[],"usedEvents":[14388,23382,23387,23392]}],"src":"39:2273:49"},"id":49},"contracts/ERC4626PlusVaultAssetManager.sol":{"ast":{"absolutePath":"contracts/ERC4626PlusVaultAssetManager.sol","exportedSymbols":{"ERC4626AssetManager":[11044],"ERC4626PlusVaultAssetManager":[11461],"IERC20Metadata":[6066],"IERC4626":[4333],"LiquidityThresholdAssetManager":[14923],"Math":[8749]},"id":11462,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":11046,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:50"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":11048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11462,"sourceUnit":8750,"src":"64:65:50","symbolAliases":[{"foreign":{"id":11047,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"72:4:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":11050,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11462,"sourceUnit":6067,"src":"130:97:50","symbolAliases":[{"foreign":{"id":11049,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"138:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4626.sol","file":"@openzeppelin/contracts/interfaces/IERC4626.sol","id":11052,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11462,"sourceUnit":4334,"src":"228:73:50","symbolAliases":[{"foreign":{"id":11051,"name":"IERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"236:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ERC4626AssetManager.sol","file":"./ERC4626AssetManager.sol","id":11054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11462,"sourceUnit":11045,"src":"302:62:50","symbolAliases":[{"foreign":{"id":11053,"name":"ERC4626AssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"310:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/LiquidityThresholdAssetManager.sol","file":"./LiquidityThresholdAssetManager.sol","id":11056,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11462,"sourceUnit":14924,"src":"365:84:50","symbolAliases":[{"foreign":{"id":11055,"name":"LiquidityThresholdAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14923,"src":"373:30:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11058,"name":"ERC4626AssetManager","nameLocations":["1042:19:50"],"nodeType":"IdentifierPath","referencedDeclaration":11044,"src":"1042:19:50"},"id":11059,"nodeType":"InheritanceSpecifier","src":"1042:19:50"}],"canonicalName":"ERC4626PlusVaultAssetManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":11057,"nodeType":"StructuredDocumentation","src":"451:549:50","text":" @title Asset Manager that deploys the funds into a given ERC4626 but also, at request, can deploy the funds in\n         another vault, the discretionary vault.\n @dev Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into _vault.\n      By request of the administrator it can also deploy the funds in _discretionaryVault. When deinvesting, if\n      funds in _vault are not enough, it tries to withdraw from _discretionaryVault.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":11461,"linearizedBaseContracts":[11461,11044,14923,23421,7883],"name":"ERC4626PlusVaultAssetManager","nameLocation":"1010:28:50","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":11062,"mutability":"immutable","name":"_discretionaryVault","nameLocation":"1094:19:50","nodeType":"VariableDeclaration","scope":11461,"src":"1066:47:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":11061,"nodeType":"UserDefinedTypeName","pathNode":{"id":11060,"name":"IERC4626","nameLocations":["1066:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"1066:8:50"},"referencedDeclaration":4333,"src":"1066:8:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"},{"body":{"id":11114,"nodeType":"Block","src":"1252:416:50","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11081,"name":"discretionaryVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1274:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":11080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1266:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11079,"name":"address","nodeType":"ElementaryTypeName","src":"1266:7:50","typeDescriptions":{}}},"id":11082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1266:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1306:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1298:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11083,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:50","typeDescriptions":{}}},"id":11086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1266:42:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661756c742063616e6e6f74206265207a65726f2061646472657373","id":11088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1310:60:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccdbdb985a5db0989525665d9ff730f9071cdbe1407a042756a3c2c7ee8ac8ec","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vault cannot be zero address\""},"value":"ERC4626PlusVaultAssetManager: vault cannot be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ccdbdb985a5db0989525665d9ff730f9071cdbe1407a042756a3c2c7ee8ac8ec","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vault cannot be zero address\""}],"id":11078,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1258:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:113:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11090,"nodeType":"ExpressionStatement","src":"1258:113:50"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11094,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11065,"src":"1400:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}],"id":11093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1392:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11092,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:50","typeDescriptions":{}}},"id":11095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:15:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11096,"name":"discretionaryVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1411:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1431:5:50","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"1411:25:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1411:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1392:46:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661756c74206d7573742068617665207468652073616d65206173736574","id":11100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1446:62:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a96d99cc06ab45ec66e02948e60da0d0be3c012cf33ad7a518f8179a5f94f22","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vault must have the same asset\""},"value":"ERC4626PlusVaultAssetManager: vault must have the same asset"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a96d99cc06ab45ec66e02948e60da0d0be3c012cf33ad7a518f8179a5f94f22","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vault must have the same asset\""}],"id":11091,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1377:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:137:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11102,"nodeType":"ExpressionStatement","src":"1377:137:50"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"id":11106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11104,"name":"vault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11068,"src":"1528:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11105,"name":"discretionaryVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1538:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"src":"1528:29:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661756c7473206d75737420626520646966666572656e74","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1559:56:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_3837e6b29379623560507373e5d272dc231d11477358b20fb8016ae7c69b62d2","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vaults must be different\""},"value":"ERC4626PlusVaultAssetManager: vaults must be different"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3837e6b29379623560507373e5d272dc231d11477358b20fb8016ae7c69b62d2","typeString":"literal_string \"ERC4626PlusVaultAssetManager: vaults must be different\""}],"id":11103,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1520:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:96:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11109,"nodeType":"ExpressionStatement","src":"1520:96:50"},{"expression":{"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11110,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"1622:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11111,"name":"discretionaryVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1644:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"src":"1622:41:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11113,"nodeType":"ExpressionStatement","src":"1622:41:50"}]},"id":11115,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11074,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11065,"src":"1236:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},{"id":11075,"name":"vault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11068,"src":"1244:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"id":11076,"kind":"baseConstructorSpecifier","modifierName":{"id":11073,"name":"ERC4626AssetManager","nameLocations":["1216:19:50"],"nodeType":"IdentifierPath","referencedDeclaration":11044,"src":"1216:19:50"},"nodeType":"ModifierInvocation","src":"1216:35:50"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11065,"mutability":"mutable","name":"asset_","nameLocation":"1150:6:50","nodeType":"VariableDeclaration","scope":11115,"src":"1135:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":11064,"nodeType":"UserDefinedTypeName","pathNode":{"id":11063,"name":"IERC20Metadata","nameLocations":["1135:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1135:14:50"},"referencedDeclaration":6066,"src":"1135:14:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":11068,"mutability":"mutable","name":"vault_","nameLocation":"1171:6:50","nodeType":"VariableDeclaration","scope":11115,"src":"1162:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":11067,"nodeType":"UserDefinedTypeName","pathNode":{"id":11066,"name":"IERC4626","nameLocations":["1162:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"1162:8:50"},"referencedDeclaration":4333,"src":"1162:8:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"discretionaryVault_","nameLocation":"1192:19:50","nodeType":"VariableDeclaration","scope":11115,"src":"1183:28:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":11070,"nodeType":"UserDefinedTypeName","pathNode":{"id":11069,"name":"IERC4626","nameLocations":["1183:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"1183:8:50"},"referencedDeclaration":4333,"src":"1183:8:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"}],"src":"1129:86:50"},"returnParameters":{"id":11077,"nodeType":"ParameterList","parameters":[],"src":"1252:0:50"},"scope":11461,"src":"1118:550:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[10959],"body":{"id":11181,"nodeType":"Block","src":"1733:341:50","statements":[{"expression":{"arguments":[{"id":11124,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"1780:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11121,"name":"LiquidityThresholdAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14923,"src":"1739:30:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidityThresholdAssetManager_$14923_$","typeString":"type(contract LiquidityThresholdAssetManager)"}},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:9:50","memberName":"_deinvest","nodeType":"MemberAccess","referencedDeclaration":14739,"src":"1739:40:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":11125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1739:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11126,"nodeType":"ExpressionStatement","src":"1739:48:50"},{"assignments":[11128],"declarations":[{"constant":false,"id":11128,"mutability":"mutable","name":"vaultAmount","nameLocation":"1801:11:50","nodeType":"VariableDeclaration","scope":11181,"src":"1793:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1793:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11140,"initialValue":{"arguments":[{"id":11131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"1824:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":11136,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1859:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1851:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11134,"name":"address","nodeType":"ElementaryTypeName","src":"1851:7:50","typeDescriptions":{}}},"id":11137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11132,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1832:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1839:11:50","memberName":"maxWithdraw","nodeType":"MemberAccess","referencedDeclaration":4284,"src":"1832:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11129,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1815:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":11130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1820:3:50","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"1815:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":11139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1815:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1793:73:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11141,"name":"vaultAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"1876:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1891:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1876:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11158,"nodeType":"IfStatement","src":"1872:80:50","trueBody":{"expression":{"arguments":[{"id":11147,"name":"vaultAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"1910:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11150,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1931:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1923:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11148,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:50","typeDescriptions":{}}},"id":11151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1923:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1946:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1938:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11152,"name":"address","nodeType":"ElementaryTypeName","src":"1938:7:50","typeDescriptions":{}}},"id":11155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11144,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"1894:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:8:50","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":4304,"src":"1894:15:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:58:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11157,"nodeType":"ExpressionStatement","src":"1894:58:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11159,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"1962:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11160,"name":"vaultAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"1971:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1962:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1962:25:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11180,"nodeType":"IfStatement","src":"1958:111:50","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11167,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"2018:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11168,"name":"vaultAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"2027:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2018:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11172,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2048:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2040:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11170,"name":"address","nodeType":"ElementaryTypeName","src":"2040:7:50","typeDescriptions":{}}},"id":11173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2040:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11176,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2063:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2055:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11174,"name":"address","nodeType":"ElementaryTypeName","src":"2055:7:50","typeDescriptions":{}}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2055:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11164,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"1989:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2009:8:50","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":4304,"src":"1989:28:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1989:80:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11179,"nodeType":"ExpressionStatement","src":"1989:80:50"}}]},"id":11182,"implemented":true,"kind":"function","modifiers":[],"name":"_deinvest","nameLocation":"1681:9:50","nodeType":"FunctionDefinition","overrides":{"id":11119,"nodeType":"OverrideSpecifier","overrides":[],"src":"1724:8:50"},"parameters":{"id":11118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11117,"mutability":"mutable","name":"amount","nameLocation":"1699:6:50","nodeType":"VariableDeclaration","scope":11182,"src":"1691:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11116,"name":"uint256","nodeType":"ElementaryTypeName","src":"1691:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1690:16:50"},"returnParameters":{"id":11120,"nodeType":"ParameterList","parameters":[],"src":"1733:0:50"},"scope":11461,"src":"1672:402:50","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[10909],"body":{"id":11205,"nodeType":"Block","src":"2113:129:50","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11186,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2119:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC4626PlusVaultAssetManager_$11461_$","typeString":"type(contract super ERC4626PlusVaultAssetManager)"}},"id":11188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2125:7:50","memberName":"connect","nodeType":"MemberAccess","referencedDeclaration":10909,"src":"2119:13:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:15:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11190,"nodeType":"ExpressionStatement","src":"2119:15:50"},{"expression":{"arguments":[{"arguments":[{"id":11196,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"2163:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":11195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2155:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11194,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:50","typeDescriptions":{}}},"id":11197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":11200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2190:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11199,"name":"uint256","nodeType":"ElementaryTypeName","src":"2190:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11198,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2185:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2199:3:50","memberName":"max","nodeType":"MemberAccess","src":"2185:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11191,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"2140:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":11193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2147:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"2140:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2140:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11204,"nodeType":"ExpressionStatement","src":"2140:63:50"}]},"functionSelector":"948cb719","id":11206,"implemented":true,"kind":"function","modifiers":[],"name":"connect","nameLocation":"2087:7:50","nodeType":"FunctionDefinition","overrides":{"id":11184,"nodeType":"OverrideSpecifier","overrides":[],"src":"2104:8:50"},"parameters":{"id":11183,"nodeType":"ParameterList","parameters":[],"src":"2094:2:50"},"returnParameters":{"id":11185,"nodeType":"ParameterList","parameters":[],"src":"2113:0:50"},"scope":11461,"src":"2078:164:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[11025],"body":{"id":11306,"nodeType":"Block","src":"2321:842:50","statements":[{"assignments":[11214],"declarations":[{"constant":false,"id":11214,"mutability":"mutable","name":"ds","nameLocation":"2350:2:50","nodeType":"VariableDeclaration","scope":11306,"src":"2327:25:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":11213,"nodeType":"UserDefinedTypeName","pathNode":{"id":11212,"name":"DiamondStorage","nameLocations":["2327:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"2327:14:50"},"referencedDeclaration":14397,"src":"2327:14:50","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":11217,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11215,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"2355:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":11216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2327:44:50"},{"assignments":[11219],"declarations":[{"constant":false,"id":11219,"mutability":"mutable","name":"fromVault","nameLocation":"2385:9:50","nodeType":"VariableDeclaration","scope":11306,"src":"2377:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11238,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":11226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2436:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2428:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11224,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:50","typeDescriptions":{}}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2428:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11222,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"2411:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2418:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"2411:16:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2411:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11231,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2452:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2444:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11229,"name":"address","nodeType":"ElementaryTypeName","src":"2444:7:50","typeDescriptions":{}}},"id":11232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11235,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2467:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2459:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11233,"name":"address","nodeType":"ElementaryTypeName","src":"2459:7:50","typeDescriptions":{}}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11220,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"2397:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2404:6:50","memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":4332,"src":"2397:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2397:76:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2377:96:50"},{"assignments":[11241],"declarations":[{"constant":false,"id":11241,"mutability":"mutable","name":"redeemable","nameLocation":"2746:10:50","nodeType":"VariableDeclaration","scope":11306,"src":"2738:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2738:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" WARNING: this was implemented withdrawing as much as possible from the vault WITHOUT failing.\n This implementation might leave some assets (those that aren't withdrawable) in the vault and those will\n be reported as losses.","id":11249,"initialValue":{"arguments":[{"arguments":[{"id":11246,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2797:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2789:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11244,"name":"address","nodeType":"ElementaryTypeName","src":"2789:7:50","typeDescriptions":{}}},"id":11247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2789:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11242,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"2759:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2779:9:50","memberName":"maxRedeem","nodeType":"MemberAccess","referencedDeclaration":4312,"src":"2759:29:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2759:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2738:65:50"},{"assignments":[11251],"declarations":[{"constant":false,"id":11251,"mutability":"mutable","name":"fromDiscVault","nameLocation":"2817:13:50","nodeType":"VariableDeclaration","scope":11306,"src":"2809:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11250,"name":"uint256","nodeType":"ElementaryTypeName","src":"2809:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11269,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11252,"name":"redeemable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11241,"src":"2833:10:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2833:15:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":11267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2922:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2833:90:50","trueExpression":{"arguments":[{"id":11257,"name":"redeemable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11241,"src":"2878:10:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11260,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2898:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2890:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11258,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:50","typeDescriptions":{}}},"id":11261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2890:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11264,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2913:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2905:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11262,"name":"address","nodeType":"ElementaryTypeName","src":"2905:7:50","typeDescriptions":{}}},"id":11265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2905:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11255,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"2851:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2871:6:50","memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":4332,"src":"2851:26:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2851:68:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2809:114:50"},{"expression":{"id":11286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11270,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11210,"src":"2929:8:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11273,"name":"fromVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11219,"src":"2947:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11274,"name":"fromDiscVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"2959:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2947:25:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2940:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11271,"name":"int256","nodeType":"ElementaryTypeName","src":"2940:6:50","typeDescriptions":{}}},"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2940:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":11281,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11214,"src":"2991:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":11282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2994:19:50","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"2991:22:50","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":11280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2983:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2983:7:50","typeDescriptions":{}}},"id":11283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2983:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2976:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11277,"name":"int256","nodeType":"ElementaryTypeName","src":"2976:6:50","typeDescriptions":{}}},"id":11284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2976:39:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2940:75:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2929:86:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11287,"nodeType":"ExpressionStatement","src":"2929:86:50"},{"expression":{"id":11292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11288,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11214,"src":"3021:2:50","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":11290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3024:19:50","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"3021:22:50","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":11291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3046:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3021:26:50","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":11293,"nodeType":"ExpressionStatement","src":"3021:26:50"},{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11295,"name":"fromDiscVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"3074:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11296,"name":"fromVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11219,"src":"3090:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3074:25:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11294,"name":"MoneyDeinvested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23387,"src":"3058:15:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3058:42:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11299,"nodeType":"EmitStatement","src":"3053:47:50"},{"eventCall":{"arguments":[{"id":11301,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11210,"src":"3128:8:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11300,"name":"EarningsRecorded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23392,"src":"3111:16:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":11302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3111:26:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11303,"nodeType":"EmitStatement","src":"3106:31:50"},{"expression":{"id":11304,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11210,"src":"3150:8:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":11211,"id":11305,"nodeType":"Return","src":"3143:15:50"}]},"functionSelector":"cec16f3f","id":11307,"implemented":true,"kind":"function","modifiers":[],"name":"deinvestAll","nameLocation":"2255:11:50","nodeType":"FunctionDefinition","overrides":{"id":11208,"nodeType":"OverrideSpecifier","overrides":[],"src":"2286:8:50"},"parameters":{"id":11207,"nodeType":"ParameterList","parameters":[],"src":"2266:2:50"},"returnParameters":{"id":11211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11210,"mutability":"mutable","name":"earnings","nameLocation":"2311:8:50","nodeType":"VariableDeclaration","scope":11307,"src":"2304:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11209,"name":"int256","nodeType":"ElementaryTypeName","src":"2304:6:50","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2303:17:50"},"scope":11461,"src":"2246:917:50","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":11326,"nodeType":"Block","src":"3239:71:50","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":11321,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3298:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3290:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11319,"name":"address","nodeType":"ElementaryTypeName","src":"3290:7:50","typeDescriptions":{}}},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3290:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11317,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11310,"src":"3274:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3280:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"3274:15:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11315,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11310,"src":"3252:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:15:50","memberName":"convertToAssets","nodeType":"MemberAccess","referencedDeclaration":4224,"src":"3252:21:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":11324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:53:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11314,"id":11325,"nodeType":"Return","src":"3245:60:50"}]},"id":11327,"implemented":true,"kind":"function","modifiers":[],"name":"_erc4626Assets","nameLocation":"3176:14:50","nodeType":"FunctionDefinition","parameters":{"id":11311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11310,"mutability":"mutable","name":"vault","nameLocation":"3200:5:50","nodeType":"VariableDeclaration","scope":11327,"src":"3191:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"},"typeName":{"id":11309,"nodeType":"UserDefinedTypeName","pathNode":{"id":11308,"name":"IERC4626","nameLocations":["3191:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":4333,"src":"3191:8:50"},"referencedDeclaration":4333,"src":"3191:8:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"visibility":"internal"}],"src":"3190:16:50"},"returnParameters":{"id":11314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11313,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11327,"src":"3230:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11312,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3229:9:50"},"scope":11461,"src":"3167:143:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[11043],"body":{"id":11341,"nodeType":"Block","src":"3391:78:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11334,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"3419:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":11333,"name":"_erc4626Assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11327,"src":"3404:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC4626_$4333_$returns$_t_uint256_$","typeString":"function (contract IERC4626) view returns (uint256)"}},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":11337,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"3444:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}],"id":11336,"name":"_erc4626Assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11327,"src":"3429:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_IERC4626_$4333_$returns$_t_uint256_$","typeString":"function (contract IERC4626) view returns (uint256)"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3429:35:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3404:60:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11332,"id":11340,"nodeType":"Return","src":"3397:67:50"}]},"functionSelector":"4dd93bd3","id":11342,"implemented":true,"kind":"function","modifiers":[],"name":"getInvestmentValue","nameLocation":"3323:18:50","nodeType":"FunctionDefinition","overrides":{"id":11329,"nodeType":"OverrideSpecifier","overrides":[],"src":"3364:8:50"},"parameters":{"id":11328,"nodeType":"ParameterList","parameters":[],"src":"3341:2:50"},"returnParameters":{"id":11332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11342,"src":"3382:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11330,"name":"uint256","nodeType":"ElementaryTypeName","src":"3382:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3381:9:50"},"scope":11461,"src":"3314:155:50","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":11390,"nodeType":"Block","src":"3819:201:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11348,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"3829:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3844:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11350,"name":"uint256","nodeType":"ElementaryTypeName","src":"3844:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11349,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3839:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3839:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3853:3:50","memberName":"max","nodeType":"MemberAccess","src":"3839:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3829:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11365,"nodeType":"IfStatement","src":"3825:75:50","trueBody":{"expression":{"id":11363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11355,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"3858:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":11360,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3894:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3886:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11358,"name":"address","nodeType":"ElementaryTypeName","src":"3886:7:50","typeDescriptions":{}}},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3886:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11356,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"3867:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3874:11:50","memberName":"maxWithdraw","nodeType":"MemberAccess","referencedDeclaration":4284,"src":"3867:18:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3858:42:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11364,"nodeType":"ExpressionStatement","src":"3858:42:50"}},{"expression":{"arguments":[{"id":11369,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"3922:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11372,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3938:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3930:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11370,"name":"address","nodeType":"ElementaryTypeName","src":"3930:7:50","typeDescriptions":{}}},"id":11373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11376,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3953:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3945:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11374,"name":"address","nodeType":"ElementaryTypeName","src":"3945:7:50","typeDescriptions":{}}},"id":11377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3945:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11366,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"3906:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3913:8:50","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":4304,"src":"3906:15:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3906:53:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11379,"nodeType":"ExpressionStatement","src":"3906:53:50"},{"expression":{"arguments":[{"id":11383,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"3993:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11386,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4009:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4001:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11384,"name":"address","nodeType":"ElementaryTypeName","src":"4001:7:50","typeDescriptions":{}}},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11380,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"3965:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3985:7:50","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":4250,"src":"3965:27:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":11388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:50:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11389,"nodeType":"ExpressionStatement","src":"3965:50:50"}]},"documentation":{"id":11343,"nodeType":"StructuredDocumentation","src":"3473:288:50","text":" @dev Transfers the given amount from _vault to the _discretionaryVault\n @param amount The amount to transfer. If that amount isn't available in _vault it reverts.\n               If amount = type(uint256).max it withdraws all the withdrawable funds from _vault."},"functionSelector":"8831c06e","id":11391,"implemented":true,"kind":"function","modifiers":[],"name":"vaultToDiscretionary","nameLocation":"3773:20:50","nodeType":"FunctionDefinition","parameters":{"id":11346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11345,"mutability":"mutable","name":"amount","nameLocation":"3802:6:50","nodeType":"VariableDeclaration","scope":11391,"src":"3794:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11344,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3793:16:50"},"returnParameters":{"id":11347,"nodeType":"ParameterList","parameters":[],"src":"3819:0:50"},"scope":11461,"src":"3764:256:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11459,"nodeType":"Block","src":"4401:386:50","statements":[{"assignments":[11398],"declarations":[{"constant":false,"id":11398,"mutability":"mutable","name":"withdrawn","nameLocation":"4415:9:50","nodeType":"VariableDeclaration","scope":11459,"src":"4407:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11397,"name":"uint256","nodeType":"ElementaryTypeName","src":"4407:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11399,"nodeType":"VariableDeclarationStatement","src":"4407:17:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11394,"src":"4434:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4449:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11402,"name":"uint256","nodeType":"ElementaryTypeName","src":"4449:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11401,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4444:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4444:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4458:3:50","memberName":"max","nodeType":"MemberAccess","src":"4444:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4434:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11447,"nodeType":"Block","src":"4630:107:50","statements":[{"expression":{"arguments":[{"id":11432,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11394,"src":"4667:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11435,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4683:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4675:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11433,"name":"address","nodeType":"ElementaryTypeName","src":"4675:7:50","typeDescriptions":{}}},"id":11436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4675:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11439,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4698:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4690:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11437,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:50","typeDescriptions":{}}},"id":11440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4690:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11429,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"4638:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4658:8:50","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":4304,"src":"4638:28:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4638:66:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11442,"nodeType":"ExpressionStatement","src":"4638:66:50"},{"expression":{"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11443,"name":"withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11398,"src":"4712:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11394,"src":"4724:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4712:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11446,"nodeType":"ExpressionStatement","src":"4712:18:50"}]},"id":11448,"nodeType":"IfStatement","src":"4430:307:50","trueBody":{"id":11428,"nodeType":"Block","src":"4463:161:50","statements":[{"expression":{"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11407,"name":"withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11398,"src":"4471:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":11414,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4557:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4549:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11412,"name":"address","nodeType":"ElementaryTypeName","src":"4549:7:50","typeDescriptions":{}}},"id":11415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11410,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"4519:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4539:9:50","memberName":"maxRedeem","nodeType":"MemberAccess","referencedDeclaration":4312,"src":"4519:29:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4519:44:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11419,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4581:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4573:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11417,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:50","typeDescriptions":{}}},"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11423,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4604:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4596:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11421,"name":"address","nodeType":"ElementaryTypeName","src":"4596:7:50","typeDescriptions":{}}},"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11408,"name":"_discretionaryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"4483:19:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4503:6:50","memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":4332,"src":"4483:26:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":11425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4483:134:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4471:146:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11427,"nodeType":"ExpressionStatement","src":"4471:146:50"}]}},{"expression":{"arguments":[{"id":11452,"name":"withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11398,"src":"4757:9:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":11455,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4776:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC4626PlusVaultAssetManager_$11461","typeString":"contract ERC4626PlusVaultAssetManager"}],"id":11454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4768:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11453,"name":"address","nodeType":"ElementaryTypeName","src":"4768:7:50","typeDescriptions":{}}},"id":11456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4768:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11449,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"4742:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$4333","typeString":"contract IERC4626"}},"id":11451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4749:7:50","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":4250,"src":"4742:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":11457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4742:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11458,"nodeType":"ExpressionStatement","src":"4742:40:50"}]},"documentation":{"id":11392,"nodeType":"StructuredDocumentation","src":"4024:319:50","text":" @dev Transfers the given amount from the _discretionaryVault to _vault\n @param amount The amount to transfer. If that amount isn't available in the _discretionaryVault it reverts.\n               If amount = type(uint256).max it withdraws all the funds withdrawable in the _discretionaryVault"},"functionSelector":"3db77cb8","id":11460,"implemented":true,"kind":"function","modifiers":[],"name":"discretionaryToVault","nameLocation":"4355:20:50","nodeType":"FunctionDefinition","parameters":{"id":11395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11394,"mutability":"mutable","name":"amount","nameLocation":"4384:6:50","nodeType":"VariableDeclaration","scope":11460,"src":"4376:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11393,"name":"uint256","nodeType":"ElementaryTypeName","src":"4376:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4375:16:50"},"returnParameters":{"id":11396,"nodeType":"ParameterList","parameters":[],"src":"4401:0:50"},"scope":11461,"src":"4346:441:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11462,"src":"1001:3788:50","usedErrors":[],"usedEvents":[14388,23382,23387,23392]}],"src":"39:4751:50"},"id":50},"contracts/EToken.sol":{"ast":{"absolutePath":"contracts/EToken.sol","exportedSymbols":{"EToken":[13571],"IAccessManager":[23370],"IAssetManager":[23421],"IERC20":[5414],"IERC20Metadata":[6066],"IEToken":[23549],"ILPWhitelist":[23596],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823],"Math":[8749],"Reserve":[20137],"SafeCast":[10290],"SafeERC20":[6478],"TimeScaled":[22863],"WadRayMath":[23243]},"id":13572,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":11463,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:51"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":11465,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":5415,"src":"64:70:51","symbolAliases":[{"foreign":{"id":11464,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"72:6:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":11467,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":6067,"src":"135:97:51","symbolAliases":[{"foreign":{"id":11466,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"143:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":11469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":6479,"src":"233:82:51","symbolAliases":[{"foreign":{"id":11468,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"241:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":11471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":10291,"src":"316:73:51","symbolAliases":[{"foreign":{"id":11470,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"324:8:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":11473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":8750,"src":"390:65:51","symbolAliases":[{"foreign":{"id":11472,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"398:4:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":11475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23807,"src":"456:57:51","symbolAliases":[{"foreign":{"id":11474,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"464:11:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Reserve.sol","file":"./Reserve.sol","id":11477,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":20138,"src":"514:38:51","symbolAliases":[{"foreign":{"id":11476,"name":"Reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20137,"src":"522:7:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./interfaces/IEToken.sol","id":11479,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23550,"src":"553:49:51","symbolAliases":[{"foreign":{"id":11478,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"561:7:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":11481,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23371,"src":"603:63:51","symbolAliases":[{"foreign":{"id":11480,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"611:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"./interfaces/IPolicyPoolComponent.sol","id":11483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23824,"src":"667:75:51","symbolAliases":[{"foreign":{"id":11482,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"675:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ILPWhitelist.sol","file":"./interfaces/ILPWhitelist.sol","id":11485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23597,"src":"743:59:51","symbolAliases":[{"foreign":{"id":11484,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"751:12:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAssetManager.sol","file":"./interfaces/IAssetManager.sol","id":11487,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23422,"src":"803:61:51","symbolAliases":[{"foreign":{"id":11486,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"811:13:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":11489,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":23244,"src":"865:57:51","symbolAliases":[{"foreign":{"id":11488,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"873:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/TimeScaled.sol","file":"./TimeScaled.sol","id":11491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13572,"sourceUnit":22864,"src":"923:44:51","symbolAliases":[{"foreign":{"id":11490,"name":"TimeScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22863,"src":"931:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11493,"name":"Reserve","nameLocations":["1564:7:51"],"nodeType":"IdentifierPath","referencedDeclaration":20137,"src":"1564:7:51"},"id":11494,"nodeType":"InheritanceSpecifier","src":"1564:7:51"},{"baseName":{"id":11495,"name":"IERC20Metadata","nameLocations":["1573:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1573:14:51"},"id":11496,"nodeType":"InheritanceSpecifier","src":"1573:14:51"},{"baseName":{"id":11497,"name":"IEToken","nameLocations":["1589:7:51"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"1589:7:51"},"id":11498,"nodeType":"InheritanceSpecifier","src":"1589:7:51"}],"canonicalName":"EToken","contractDependencies":[],"contractKind":"contract","documentation":{"id":11492,"nodeType":"StructuredDocumentation","src":"969:575:51","text":" @title Ensuro ERC20 EToken - interest-bearing token\n @dev Implementation of the interest/earnings bearing token for the Ensuro protocol.\n      `_tsScaled.scale` scales the balances stored in _balances. _tsScaled (totalSupply scaled) grows\n      continuoulsly at tokenInterestRate().\n      Every operation that changes the utilization rate (_scr.scr/totalSupply) or the _scr.interestRate, updates\n      first the _tsScaled.scale accumulating the interest accrued since _tsScaled.lastUpdate.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":13571,"linearizedBaseContracts":[13571,23549,6066,5414,20137,18100,23823,7883,1209,2704,1081,765,430,440,944],"name":"EToken","nameLocation":"1554:6:51","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11501,"libraryName":{"id":11499,"name":"WadRayMath","nameLocations":["1607:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"1607:10:51"},"nodeType":"UsingForDirective","src":"1601:29:51","typeName":{"id":11500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1622:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":11505,"libraryName":{"id":11502,"name":"TimeScaled","nameLocations":["1639:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":22863,"src":"1639:10:51"},"nodeType":"UsingForDirective","src":"1633:45:51","typeName":{"id":11504,"nodeType":"UserDefinedTypeName","pathNode":{"id":11503,"name":"TimeScaled.ScaledAmount","nameLocations":["1654:10:51","1665:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"1654:23:51"},"referencedDeclaration":22464,"src":"1654:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}}},{"global":false,"id":11509,"libraryName":{"id":11506,"name":"SafeERC20","nameLocations":["1687:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":6478,"src":"1687:9:51"},"nodeType":"UsingForDirective","src":"1681:35:51","typeName":{"id":11508,"nodeType":"UserDefinedTypeName","pathNode":{"id":11507,"name":"IERC20Metadata","nameLocations":["1701:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1701:14:51"},"referencedDeclaration":6066,"src":"1701:14:51","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}},{"global":false,"id":11512,"libraryName":{"id":11510,"name":"SafeCast","nameLocations":["1725:8:51"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"1725:8:51"},"nodeType":"UsingForDirective","src":"1719:27:51","typeName":{"id":11511,"name":"uint256","nodeType":"ElementaryTypeName","src":"1738:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":11515,"mutability":"constant","name":"FOUR_DECIMAL_TO_WAD","nameLocation":"1776:19:51","nodeType":"VariableDeclaration","scope":13571,"src":"1750:52:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11513,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653134","id":11514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1798:4:51","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"1e14"},"visibility":"internal"},{"constant":true,"id":11518,"mutability":"constant","name":"HUNDRED_PERCENT","nameLocation":"1831:15:51","nodeType":"VariableDeclaration","scope":13571,"src":"1806:46:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11516,"name":"uint16","nodeType":"ElementaryTypeName","src":"1806:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"316534","id":11517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1849:3:51","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"1e4"},"visibility":"internal"},{"constant":true,"id":11521,"mutability":"constant","name":"MAX_UR_MIN","nameLocation":"1881:10:51","nodeType":"VariableDeclaration","scope":13571,"src":"1856:41:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11519,"name":"uint16","nodeType":"ElementaryTypeName","src":"1856:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"356533","id":11520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1894:3:51","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5e3"},"visibility":"internal"},{"constant":true,"id":11524,"mutability":"constant","name":"LIQ_REQ_MIN","nameLocation":"1974:11:51","nodeType":"VariableDeclaration","scope":13571,"src":"1949:42:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11522,"name":"uint16","nodeType":"ElementaryTypeName","src":"1949:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"386533","id":11523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1988:3:51","typeDescriptions":{"typeIdentifier":"t_rational_8000_by_1","typeString":"int_const 8000"},"value":"8e3"},"visibility":"internal"},{"constant":true,"id":11527,"mutability":"constant","name":"LIQ_REQ_MAX","nameLocation":"2027:11:51","nodeType":"VariableDeclaration","scope":13571,"src":"2002:43:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11525,"name":"uint16","nodeType":"ElementaryTypeName","src":"2002:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31336533","id":11526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:4:51","typeDescriptions":{"typeIdentifier":"t_rational_13000_by_1","typeString":"int_const 13000"},"value":"13e3"},"visibility":"internal"},{"constant":true,"id":11530,"mutability":"constant","name":"INT_LOAN_IR_MAX","nameLocation":"2082:15:51","nodeType":"VariableDeclaration","scope":13571,"src":"2057:46:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11528,"name":"uint16","nodeType":"ElementaryTypeName","src":"2057:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"356533","id":11529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:3:51","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5e3"},"visibility":"internal"},{"constant":false,"id":11534,"mutability":"mutable","name":"_balances","nameLocation":"2231:9:51","nodeType":"VariableDeclaration","scope":13571,"src":"2195:45:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":11533,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11531,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2195:27:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2214:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":11540,"mutability":"mutable","name":"_allowances","nameLocation":"2300:11:51","nodeType":"VariableDeclaration","scope":13571,"src":"2244:67:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":11539,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11535,"name":"address","nodeType":"ElementaryTypeName","src":"2252:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2244:47:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11538,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11536,"name":"address","nodeType":"ElementaryTypeName","src":"2271:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2263:27:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2282:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":11542,"mutability":"mutable","name":"_name","nameLocation":"2331:5:51","nodeType":"VariableDeclaration","scope":13571,"src":"2316:20:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":11541,"name":"string","nodeType":"ElementaryTypeName","src":"2316:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":11544,"mutability":"mutable","name":"_symbol","nameLocation":"2355:7:51","nodeType":"VariableDeclaration","scope":13571,"src":"2340:22:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":11543,"name":"string","nodeType":"ElementaryTypeName","src":"2340:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":11547,"mutability":"mutable","name":"_tsScaled","nameLocation":"2400:9:51","nodeType":"VariableDeclaration","scope":13571,"src":"2367:42:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":11546,"nodeType":"UserDefinedTypeName","pathNode":{"id":11545,"name":"TimeScaled.ScaledAmount","nameLocations":["2367:10:51","2378:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2367:23:51"},"referencedDeclaration":22464,"src":"2367:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"canonicalName":"EToken.Scr","id":11554,"members":[{"constant":false,"id":11549,"mutability":"mutable","name":"scr","nameLocation":"2462:3:51","nodeType":"VariableDeclaration","scope":11554,"src":"2454:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":11548,"name":"uint128","nodeType":"ElementaryTypeName","src":"2454:7:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":11551,"mutability":"mutable","name":"interestRate","nameLocation":"2559:12:51","nodeType":"VariableDeclaration","scope":11554,"src":"2552:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11550,"name":"uint64","nodeType":"ElementaryTypeName","src":"2552:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11553,"mutability":"mutable","name":"tokenInterestRate","nameLocation":"2651:17:51","nodeType":"VariableDeclaration","scope":11554,"src":"2644:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11552,"name":"uint64","nodeType":"ElementaryTypeName","src":"2644:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Scr","nameLocation":"2444:3:51","nodeType":"StructDefinition","scope":13571,"src":"2437:283:51","visibility":"public"},{"constant":false,"id":11557,"mutability":"mutable","name":"_scr","nameLocation":"2737:4:51","nodeType":"VariableDeclaration","scope":13571,"src":"2724:17:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr"},"typeName":{"id":11556,"nodeType":"UserDefinedTypeName","pathNode":{"id":11555,"name":"Scr","nameLocations":["2724:3:51"],"nodeType":"IdentifierPath","referencedDeclaration":11554,"src":"2724:3:51"},"referencedDeclaration":11554,"src":"2724:3:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage_ptr","typeString":"struct EToken.Scr"}},"visibility":"internal"},{"constant":false,"id":11562,"mutability":"mutable","name":"_loans","nameLocation":"2891:6:51","nodeType":"VariableDeclaration","scope":13571,"src":"2838:59:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount)"},"typeName":{"id":11561,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11558,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2838:43:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11560,"nodeType":"UserDefinedTypeName","pathNode":{"id":11559,"name":"TimeScaled.ScaledAmount","nameLocations":["2857:10:51","2868:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2857:23:51"},"referencedDeclaration":22464,"src":"2857:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}}},"visibility":"internal"},{"canonicalName":"EToken.PackedParams","id":11574,"members":[{"constant":false,"id":11564,"mutability":"mutable","name":"liquidityRequirement","nameLocation":"2935:20:51","nodeType":"VariableDeclaration","scope":11574,"src":"2928:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11563,"name":"uint16","nodeType":"ElementaryTypeName","src":"2928:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11566,"mutability":"mutable","name":"minUtilizationRate","nameLocation":"3033:18:51","nodeType":"VariableDeclaration","scope":11574,"src":"3026:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11565,"name":"uint16","nodeType":"ElementaryTypeName","src":"3026:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11568,"mutability":"mutable","name":"maxUtilizationRate","nameLocation":"3152:18:51","nodeType":"VariableDeclaration","scope":11574,"src":"3145:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11567,"name":"uint16","nodeType":"ElementaryTypeName","src":"3145:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11570,"mutability":"mutable","name":"internalLoanInterestRate","nameLocation":"3270:24:51","nodeType":"VariableDeclaration","scope":11574,"src":"3263:31:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11569,"name":"uint16","nodeType":"ElementaryTypeName","src":"3263:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11573,"mutability":"mutable","name":"whitelist","nameLocation":"3398:9:51","nodeType":"VariableDeclaration","scope":11574,"src":"3385:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"},"typeName":{"id":11572,"nodeType":"UserDefinedTypeName","pathNode":{"id":11571,"name":"ILPWhitelist","nameLocations":["3385:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":23596,"src":"3385:12:51"},"referencedDeclaration":23596,"src":"3385:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"visibility":"internal"}],"name":"PackedParams","nameLocation":"2909:12:51","nodeType":"StructDefinition","scope":13571,"src":"2902:550:51","visibility":"public"},{"constant":false,"id":11577,"mutability":"mutable","name":"_params","nameLocation":"3478:7:51","nodeType":"VariableDeclaration","scope":13571,"src":"3456:29:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams"},"typeName":{"id":11576,"nodeType":"UserDefinedTypeName","pathNode":{"id":11575,"name":"PackedParams","nameLocations":["3456:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":11574,"src":"3456:12:51"},"referencedDeclaration":11574,"src":"3456:12:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage_ptr","typeString":"struct EToken.PackedParams"}},"visibility":"internal"},{"constant":false,"id":11580,"mutability":"mutable","name":"_assetManager","nameLocation":"3513:13:51","nodeType":"VariableDeclaration","scope":13571,"src":"3490:36:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":11579,"nodeType":"UserDefinedTypeName","pathNode":{"id":11578,"name":"IAssetManager","nameLocations":["3490:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"3490:13:51"},"referencedDeclaration":23421,"src":"3490:13:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"},{"anonymous":false,"eventSelector":"98697a4799dbd9db66c7168304c43cba77a27a50d2785625e09072e0d91fdd53","id":11588,"name":"InternalLoan","nameLocation":"3537:12:51","nodeType":"EventDefinition","parameters":{"id":11587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11582,"indexed":true,"mutability":"mutable","name":"borrower","nameLocation":"3566:8:51","nodeType":"VariableDeclaration","scope":11588,"src":"3550:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11581,"name":"address","nodeType":"ElementaryTypeName","src":"3550:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11584,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3584:5:51","nodeType":"VariableDeclaration","scope":11588,"src":"3576:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11583,"name":"uint256","nodeType":"ElementaryTypeName","src":"3576:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11586,"indexed":false,"mutability":"mutable","name":"amountAsked","nameLocation":"3599:11:51","nodeType":"VariableDeclaration","scope":11588,"src":"3591:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11585,"name":"uint256","nodeType":"ElementaryTypeName","src":"3591:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3549:62:51"},"src":"3531:81:51"},{"anonymous":false,"eventSelector":"a1aeb41f04a9a2aa1450e8edd0fa1a0a7971ff65c7bbb7b2ca0379b9327edbaf","id":11594,"name":"InternalLoanRepaid","nameLocation":"3621:18:51","nodeType":"EventDefinition","parameters":{"id":11593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11590,"indexed":true,"mutability":"mutable","name":"borrower","nameLocation":"3656:8:51","nodeType":"VariableDeclaration","scope":11594,"src":"3640:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11589,"name":"address","nodeType":"ElementaryTypeName","src":"3640:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11592,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3674:5:51","nodeType":"VariableDeclaration","scope":11594,"src":"3666:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11591,"name":"uint256","nodeType":"ElementaryTypeName","src":"3666:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3639:41:51"},"src":"3615:66:51"},{"anonymous":false,"eventSelector":"66c0f28249c4fc4db79872a4405be78a93f19c65ac9ef2f173867a149065bcf2","id":11598,"name":"InternalBorrowerAdded","nameLocation":"3690:21:51","nodeType":"EventDefinition","parameters":{"id":11597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11596,"indexed":true,"mutability":"mutable","name":"borrower","nameLocation":"3728:8:51","nodeType":"VariableDeclaration","scope":11598,"src":"3712:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11595,"name":"address","nodeType":"ElementaryTypeName","src":"3712:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3711:26:51"},"src":"3684:54:51"},{"anonymous":false,"eventSelector":"e2ebfbed0df9004eae018a4ae91b24baa0cd1d83f495fab6dde3a1493f9dc6c6","id":11604,"name":"InternalBorrowerRemoved","nameLocation":"3747:23:51","nodeType":"EventDefinition","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11600,"indexed":true,"mutability":"mutable","name":"borrower","nameLocation":"3787:8:51","nodeType":"VariableDeclaration","scope":11604,"src":"3771:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11599,"name":"address","nodeType":"ElementaryTypeName","src":"3771:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11602,"indexed":false,"mutability":"mutable","name":"defaultedDebt","nameLocation":"3805:13:51","nodeType":"VariableDeclaration","scope":11604,"src":"3797:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11601,"name":"uint256","nodeType":"ElementaryTypeName","src":"3797:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3770:49:51"},"src":"3741:79:51"},{"body":{"id":11618,"nodeType":"Block","src":"3848:91:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":11607,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"3862:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":11610,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11608,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"3869:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3869:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3862:20:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3883:5:51","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"3862:26:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3862:31:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468652063616c6c6572206d757374206265206120626f72726f776572","id":11614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3895:31:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fc949ae25110667b87c481d2b4db0ccd0143bf4577ebd2d92c71ac972ca62f9","typeString":"literal_string \"The caller must be a borrower\""},"value":"The caller must be a borrower"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8fc949ae25110667b87c481d2b4db0ccd0143bf4577ebd2d92c71ac972ca62f9","typeString":"literal_string \"The caller must be a borrower\""}],"id":11606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3854:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3854:73:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11616,"nodeType":"ExpressionStatement","src":"3854:73:51"},{"id":11617,"nodeType":"PlaceholderStatement","src":"3933:1:51"}]},"id":11619,"name":"onlyBorrower","nameLocation":"3833:12:51","nodeType":"ModifierDefinition","parameters":{"id":11605,"nodeType":"ParameterList","parameters":[],"src":"3845:2:51"},"src":"3824:115:51","virtual":false,"visibility":"internal"},{"body":{"id":11629,"nodeType":"Block","src":"4099:2:51","statements":[]},"documentation":{"id":11620,"nodeType":"StructuredDocumentation","src":"3943:48:51","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":11630,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11626,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11623,"src":"4086:11:51","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":11627,"kind":"baseConstructorSpecifier","modifierName":{"id":11625,"name":"Reserve","nameLocations":["4078:7:51"],"nodeType":"IdentifierPath","referencedDeclaration":20137,"src":"4078:7:51"},"nodeType":"ModifierInvocation","src":"4078:20:51"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11623,"mutability":"mutable","name":"policyPool_","nameLocation":"4065:11:51","nodeType":"VariableDeclaration","scope":11630,"src":"4053:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":11622,"nodeType":"UserDefinedTypeName","pathNode":{"id":11621,"name":"IPolicyPool","nameLocations":["4053:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"4053:11:51"},"referencedDeclaration":23806,"src":"4053:11:51","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"4052:25:51"},"returnParameters":{"id":11628,"nodeType":"ParameterList","parameters":[],"src":"4099:0:51"},"scope":13571,"src":"4041:60:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11654,"nodeType":"Block","src":"4578:120:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11644,"name":"__Reserve_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19744,"src":"4584:14:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:16:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11646,"nodeType":"ExpressionStatement","src":"4584:16:51"},{"expression":{"arguments":[{"id":11648,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11633,"src":"4630:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11649,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11635,"src":"4637:7:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11650,"name":"maxUtilizationRate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"4646:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11651,"name":"internalLoanInterestRate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"4667:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11647,"name":"__EToken_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11726,"src":"4606:23:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,string memory,uint256,uint256)"}},"id":11652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:87:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11653,"nodeType":"ExpressionStatement","src":"4606:87:51"}]},"documentation":{"id":11631,"nodeType":"StructuredDocumentation","src":"4105:303:51","text":" @dev Initializes the eToken\n @param maxUtilizationRate_ Max utilization rate (scr/totalSupply) (in Ray - default=1 Ray)\n @param internalLoanInterestRate_ Rate of loans givencrto the policy pool (in Ray)\n @param name_ Name of the eToken\n @param symbol_ Symbol of the eToken"},"functionSelector":"6fe0e395","id":11655,"implemented":true,"kind":"function","modifiers":[{"id":11642,"kind":"modifierInvocation","modifierName":{"id":11641,"name":"initializer","nameLocations":["4566:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"4566:11:51"},"nodeType":"ModifierInvocation","src":"4566:11:51"}],"name":"initialize","nameLocation":"4420:10:51","nodeType":"FunctionDefinition","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11633,"mutability":"mutable","name":"name_","nameLocation":"4450:5:51","nodeType":"VariableDeclaration","scope":11655,"src":"4436:19:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11632,"name":"string","nodeType":"ElementaryTypeName","src":"4436:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11635,"mutability":"mutable","name":"symbol_","nameLocation":"4475:7:51","nodeType":"VariableDeclaration","scope":11655,"src":"4461:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11634,"name":"string","nodeType":"ElementaryTypeName","src":"4461:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11637,"mutability":"mutable","name":"maxUtilizationRate_","nameLocation":"4496:19:51","nodeType":"VariableDeclaration","scope":11655,"src":"4488:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11636,"name":"uint256","nodeType":"ElementaryTypeName","src":"4488:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"internalLoanInterestRate_","nameLocation":"4529:25:51","nodeType":"VariableDeclaration","scope":11655,"src":"4521:33:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4430:128:51"},"returnParameters":{"id":11643,"nodeType":"ParameterList","parameters":[],"src":"4578:0:51"},"scope":13571,"src":"4411:287:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11725,"nodeType":"Block","src":"4940:613:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":11671,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"4960:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4954:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11669,"name":"bytes","nodeType":"ElementaryTypeName","src":"4954:5:51","typeDescriptions":{}}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4954:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4967:6:51","memberName":"length","nodeType":"MemberAccess","src":"4954:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4976:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4954:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a206e616d652063616e6e6f7420626520656d707479","id":11676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4979:30:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_09cd67821602a67e6869db7fdf6f889c81d8f4753f4bbab0d8ffed14a386f25a","typeString":"literal_string \"EToken: name cannot be empty\""},"value":"EToken: name cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_09cd67821602a67e6869db7fdf6f889c81d8f4753f4bbab0d8ffed14a386f25a","typeString":"literal_string \"EToken: name cannot be empty\""}],"id":11668,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4946:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:64:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11678,"nodeType":"ExpressionStatement","src":"4946:64:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":11682,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"5030:7:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5024:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11680,"name":"bytes","nodeType":"ElementaryTypeName","src":"5024:5:51","typeDescriptions":{}}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5039:6:51","memberName":"length","nodeType":"MemberAccess","src":"5024:21:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5048:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5024:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a2073796d626f6c2063616e6e6f7420626520656d707479","id":11687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5051:32:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_73e0940cdd0dffdba87d1c2e460c0dadb528289849600fb24e2f2253f9b58f4d","typeString":"literal_string \"EToken: symbol cannot be empty\""},"value":"EToken: symbol cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73e0940cdd0dffdba87d1c2e460c0dadb528289849600fb24e2f2253f9b58f4d","typeString":"literal_string \"EToken: symbol cannot be empty\""}],"id":11679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5016:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5016:68:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11689,"nodeType":"ExpressionStatement","src":"5016:68:51"},{"expression":{"id":11692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11690,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"5090:5:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11691,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"5098:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5090:13:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11693,"nodeType":"ExpressionStatement","src":"5090:13:51"},{"expression":{"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11694,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11544,"src":"5109:7:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11695,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"5119:7:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5109:17:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11697,"nodeType":"ExpressionStatement","src":"5109:17:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11698,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"5132:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5142:4:51","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":22635,"src":"5132:14:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer)"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5132:16:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11702,"nodeType":"ExpressionStatement","src":"5132:16:51"},{"expression":{"id":11720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11703,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"5249:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":11706,"name":"maxUtilizationRate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"5308:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11705,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"5300:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5300:28:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11708,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"5358:15:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"30","id":11709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5401:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":11711,"name":"internalLoanInterestRate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5444:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11710,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"5436:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5436:34:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":11716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5510:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5502:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11714,"name":"address","nodeType":"ElementaryTypeName","src":"5502:7:51","typeDescriptions":{}}},"id":11717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5502:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11713,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"5489:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}},"id":11718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5489:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":11704,"name":"PackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11574,"src":"5259:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PackedParams_$11574_storage_ptr_$","typeString":"type(struct EToken.PackedParams storage pointer)"}},"id":11719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5280:18:51","5336:20:51","5381:18:51","5410:24:51","5478:9:51"],"names":["maxUtilizationRate","liquidityRequirement","minUtilizationRate","internalLoanInterestRate","whitelist"],"nodeType":"FunctionCall","src":"5259:261:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_memory_ptr","typeString":"struct EToken.PackedParams memory"}},"src":"5249:271:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11721,"nodeType":"ExpressionStatement","src":"5249:271:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11722,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[11809],"referencedDeclaration":11809,"src":"5527:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":11723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5527:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11724,"nodeType":"ExpressionStatement","src":"5527:21:51"}]},"id":11726,"implemented":true,"kind":"function","modifiers":[{"id":11666,"kind":"modifierInvocation","modifierName":{"id":11665,"name":"onlyInitializing","nameLocations":["4923:16:51"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"4923:16:51"},"nodeType":"ModifierInvocation","src":"4923:16:51"}],"name":"__EToken_init_unchained","nameLocation":"4762:23:51","nodeType":"FunctionDefinition","parameters":{"id":11664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11657,"mutability":"mutable","name":"name_","nameLocation":"4805:5:51","nodeType":"VariableDeclaration","scope":11726,"src":"4791:19:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11656,"name":"string","nodeType":"ElementaryTypeName","src":"4791:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11659,"mutability":"mutable","name":"symbol_","nameLocation":"4830:7:51","nodeType":"VariableDeclaration","scope":11726,"src":"4816:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11658,"name":"string","nodeType":"ElementaryTypeName","src":"4816:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11661,"mutability":"mutable","name":"maxUtilizationRate_","nameLocation":"4851:19:51","nodeType":"VariableDeclaration","scope":11726,"src":"4843:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11660,"name":"uint256","nodeType":"ElementaryTypeName","src":"4843:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11663,"mutability":"mutable","name":"internalLoanInterestRate_","nameLocation":"4884:25:51","nodeType":"VariableDeclaration","scope":11726,"src":"4876:33:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11662,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4785:128:51"},"returnParameters":{"id":11667,"nodeType":"ParameterList","parameters":[],"src":"4940:0:51"},"scope":13571,"src":"4753:800:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17931],"body":{"id":11761,"nodeType":"Block","src":"5703:216:51","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11737,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11729,"src":"5746:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":11735,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5722:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_EToken_$13571_$","typeString":"type(contract super EToken)"}},"id":11736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:17:51","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17931,"src":"5722:23:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":11738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5722:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11739,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11729,"src":"5768:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11741,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"5788:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5414_$","typeString":"type(contract IERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC20_$5414_$","typeString":"type(contract IERC20)"}],"id":11740,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5783:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5783:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC20_$5414","typeString":"type(contract IERC20)"}},"id":11743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5796:11:51","memberName":"interfaceId","nodeType":"MemberAccess","src":"5783:24:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5768:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5722:85:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11746,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11729,"src":"5817:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11748,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"5837:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}],"id":11747,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5832:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5832:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC20Metadata_$6066","typeString":"type(contract IERC20Metadata)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5853:11:51","memberName":"interfaceId","nodeType":"MemberAccess","src":"5832:32:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5817:47:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5722:142:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11753,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11729,"src":"5874:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11755,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"5894:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}],"id":11754,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5889:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5889:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IEToken_$23549","typeString":"type(contract IEToken)"}},"id":11757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5903:11:51","memberName":"interfaceId","nodeType":"MemberAccess","src":"5889:25:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5874:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5722:192:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11734,"id":11760,"nodeType":"Return","src":"5709:205:51"}]},"documentation":{"id":11727,"nodeType":"StructuredDocumentation","src":"5557:52:51","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":11762,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5621:17:51","nodeType":"FunctionDefinition","overrides":{"id":11731,"nodeType":"OverrideSpecifier","overrides":[],"src":"5679:8:51"},"parameters":{"id":11730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11729,"mutability":"mutable","name":"interfaceId","nameLocation":"5646:11:51","nodeType":"VariableDeclaration","scope":11762,"src":"5639:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11728,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5639:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5638:20:51"},"returnParameters":{"id":11734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11762,"src":"5697:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11732,"name":"bool","nodeType":"ElementaryTypeName","src":"5697:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5696:6:51"},"scope":13571,"src":"5612:307:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18060],"body":{"id":11808,"nodeType":"Block","src":"6019:1221:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11767,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"6040:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6048:20:51","memberName":"liquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":11564,"src":"6040:28:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11769,"name":"LIQ_REQ_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11524,"src":"6072:11:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6040:43:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11771,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"6087:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6095:20:51","memberName":"liquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":11564,"src":"6087:28:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11773,"name":"LIQ_REQ_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"6119:11:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6087:43:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6040:90:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206c6971756964697479526571756972656d656e74206d757374206265205b302e382c20312e335d","id":11776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6138:53:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce2f886aa6f4a7c4a12260f96967c0c0bbf0de5a1ffbc7579742ee06be1b2f07","typeString":"literal_string \"Validation: liquidityRequirement must be [0.8, 1.3]\""},"value":"Validation: liquidityRequirement must be [0.8, 1.3]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce2f886aa6f4a7c4a12260f96967c0c0bbf0de5a1ffbc7579742ee06be1b2f07","typeString":"literal_string \"Validation: liquidityRequirement must be [0.8, 1.3]\""}],"id":11766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6025:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:172:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11778,"nodeType":"ExpressionStatement","src":"6025:172:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11780,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"6218:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6226:18:51","memberName":"maxUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11568,"src":"6218:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11782,"name":"MAX_UR_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"6248:10:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6218:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11784,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"6262:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6270:18:51","memberName":"maxUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11568,"src":"6262:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11786,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"6292:15:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6262:45:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6218:89:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206d61785574696c697a6174696f6e52617465206d757374206265205b302e352c20315d","id":11789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6315:49:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_111ada2e996f715d2077bb2234aa57f237cb218f36507eb4780a69c700bee9ff","typeString":"literal_string \"Validation: maxUtilizationRate must be [0.5, 1]\""},"value":"Validation: maxUtilizationRate must be [0.5, 1]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_111ada2e996f715d2077bb2234aa57f237cb218f36507eb4780a69c700bee9ff","typeString":"literal_string \"Validation: maxUtilizationRate must be [0.5, 1]\""}],"id":11779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6203:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:167:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11791,"nodeType":"ExpressionStatement","src":"6203:167:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11793,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"6384:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6392:18:51","memberName":"minUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11566,"src":"6384:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11795,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"6414:15:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6384:45:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206d696e5574696c697a6174696f6e52617465206d757374206265205b302c20315d","id":11797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6431:47:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_589184136a3b919d9f00ff2f2274337cfa9fb4d8f034bde634ff7a801349f9d6","typeString":"literal_string \"Validation: minUtilizationRate must be [0, 1]\""},"value":"Validation: minUtilizationRate must be [0, 1]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_589184136a3b919d9f00ff2f2274337cfa9fb4d8f034bde634ff7a801349f9d6","typeString":"literal_string \"Validation: minUtilizationRate must be [0, 1]\""}],"id":11792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6376:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6376:103:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11799,"nodeType":"ExpressionStatement","src":"6376:103:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11801,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"7128:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":11802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7136:24:51","memberName":"internalLoanInterestRate","nodeType":"MemberAccess","referencedDeclaration":11570,"src":"7128:32:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11803,"name":"INT_LOAN_IR_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11530,"src":"7164:15:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7128:51:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20696e7465726e616c4c6f616e496e74657265737452617465206d757374206265203c3d20353025","id":11805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7181:53:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c6787565a0ce9e399f754cca5a3dff36739caf63c11aea68e06f0210b1b136d","typeString":"literal_string \"Validation: internalLoanInterestRate must be <= 50%\""},"value":"Validation: internalLoanInterestRate must be <= 50%"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c6787565a0ce9e399f754cca5a3dff36739caf63c11aea68e06f0210b1b136d","typeString":"literal_string \"Validation: internalLoanInterestRate must be <= 50%\""}],"id":11800,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7120:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7120:115:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11807,"nodeType":"ExpressionStatement","src":"7120:115:51"}]},"id":11809,"implemented":true,"kind":"function","modifiers":[],"name":"_validateParameters","nameLocation":"5974:19:51","nodeType":"FunctionDefinition","overrides":{"id":11764,"nodeType":"OverrideSpecifier","overrides":[],"src":"6010:8:51"},"parameters":{"id":11763,"nodeType":"ParameterList","parameters":[],"src":"5993:2:51"},"returnParameters":{"id":11765,"nodeType":"ParameterList","parameters":[],"src":"6019:0:51"},"scope":13571,"src":"5965:1275:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[6053],"body":{"id":11818,"nodeType":"Block","src":"7470:23:51","statements":[{"expression":{"id":11816,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"7483:5:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":11815,"id":11817,"nodeType":"Return","src":"7476:12:51"}]},"documentation":{"id":11810,"nodeType":"StructuredDocumentation","src":"7348:50:51","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":11819,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"7410:4:51","nodeType":"FunctionDefinition","overrides":{"id":11812,"nodeType":"OverrideSpecifier","overrides":[],"src":"7437:8:51"},"parameters":{"id":11811,"nodeType":"ParameterList","parameters":[],"src":"7414:2:51"},"returnParameters":{"id":11815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11819,"src":"7455:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11813,"name":"string","nodeType":"ElementaryTypeName","src":"7455:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7454:15:51"},"scope":13571,"src":"7401:92:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6059],"body":{"id":11828,"nodeType":"Block","src":"7667:25:51","statements":[{"expression":{"id":11826,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11544,"src":"7680:7:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":11825,"id":11827,"nodeType":"Return","src":"7673:14:51"}]},"documentation":{"id":11820,"nodeType":"StructuredDocumentation","src":"7497:96:51","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":11829,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"7605:6:51","nodeType":"FunctionDefinition","overrides":{"id":11822,"nodeType":"OverrideSpecifier","overrides":[],"src":"7634:8:51"},"parameters":{"id":11821,"nodeType":"ParameterList","parameters":[],"src":"7611:2:51"},"returnParameters":{"id":11825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11829,"src":"7652:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11823,"name":"string","nodeType":"ElementaryTypeName","src":"7652:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7651:15:51"},"scope":13571,"src":"7596:96:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6065],"body":{"id":11842,"nodeType":"Block","src":"8353:51:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11836,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"8366:11:51","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":11837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8378:8:51","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"8366:20:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":11838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8366:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":11839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8389:8:51","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"8366:31:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":11840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8366:33:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":11835,"id":11841,"nodeType":"Return","src":"8359:40:51"}]},"documentation":{"id":11830,"nodeType":"StructuredDocumentation","src":"7696:589:51","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overloaded;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":11843,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"8297:8:51","nodeType":"FunctionDefinition","overrides":{"id":11832,"nodeType":"OverrideSpecifier","overrides":[],"src":"8328:8:51"},"parameters":{"id":11831,"nodeType":"ParameterList","parameters":[],"src":"8305:2:51"},"returnParameters":{"id":11835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11843,"src":"8346:5:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11833,"name":"uint8","nodeType":"ElementaryTypeName","src":"8346:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8345:7:51"},"scope":13571,"src":"8288:116:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5363],"body":{"id":11856,"nodeType":"Block","src":"8526:64:51","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11852,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"8565:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":11853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8565:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11850,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"8539:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8549:15:51","memberName":"getScaledAmount","nodeType":"MemberAccess","referencedDeclaration":22606,"src":"8539:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":11854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8539:46:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11849,"id":11855,"nodeType":"Return","src":"8532:53:51"}]},"documentation":{"id":11844,"nodeType":"StructuredDocumentation","src":"8408:45:51","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":11857,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"8465:11:51","nodeType":"FunctionDefinition","overrides":{"id":11846,"nodeType":"OverrideSpecifier","overrides":[],"src":"8499:8:51"},"parameters":{"id":11845,"nodeType":"ParameterList","parameters":[],"src":"8476:2:51"},"returnParameters":{"id":11849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11857,"src":"8517:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11847,"name":"uint256","nodeType":"ElementaryTypeName","src":"8517:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8516:9:51"},"scope":13571,"src":"8456:134:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5371],"body":{"id":11891,"nodeType":"Block","src":"8723:196:51","statements":[{"assignments":[11867],"declarations":[{"constant":false,"id":11867,"mutability":"mutable","name":"principalBalance","nameLocation":"8737:16:51","nodeType":"VariableDeclaration","scope":11891,"src":"8729:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11866,"name":"uint256","nodeType":"ElementaryTypeName","src":"8729:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11871,"initialValue":{"baseExpression":{"id":11868,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"8756:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11870,"indexExpression":{"id":11869,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"8766:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8756:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8729:45:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11872,"name":"principalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11867,"src":"8784:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8804:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8784:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11877,"nodeType":"IfStatement","src":"8780:35:51","trueBody":{"expression":{"hexValue":"30","id":11875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8814:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":11865,"id":11876,"nodeType":"Return","src":"8807:8:51"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11884,"name":"principalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11867,"src":"8875:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:8:51","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"8875:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":11886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8875:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11880,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"8847:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":11881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8847:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11878,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"8828:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8838:8:51","memberName":"getScale","nodeType":"MemberAccess","referencedDeclaration":22579,"src":"8828:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":11882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8828:39:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8868:6:51","memberName":"rayMul","nodeType":"MemberAccess","referencedDeclaration":23210,"src":"8828:46:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":11887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8828:75:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8904:8:51","memberName":"rayToWad","nodeType":"MemberAccess","referencedDeclaration":23232,"src":"8828:84:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":11889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8828:86:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11865,"id":11890,"nodeType":"Return","src":"8821:93:51"}]},"documentation":{"id":11858,"nodeType":"StructuredDocumentation","src":"8594:43:51","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":11892,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"8649:9:51","nodeType":"FunctionDefinition","overrides":{"id":11862,"nodeType":"OverrideSpecifier","overrides":[],"src":"8696:8:51"},"parameters":{"id":11861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11860,"mutability":"mutable","name":"account","nameLocation":"8667:7:51","nodeType":"VariableDeclaration","scope":11892,"src":"8659:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11859,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8658:17:51"},"returnParameters":{"id":11865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11892,"src":"8714:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11863,"name":"uint256","nodeType":"ElementaryTypeName","src":"8714:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8713:9:51"},"scope":13571,"src":"8640:279:51","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":11904,"nodeType":"Block","src":"9344:33:51","statements":[{"expression":{"baseExpression":{"id":11900,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"9357:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11902,"indexExpression":{"id":11901,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"9367:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9357:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11899,"id":11903,"nodeType":"Return","src":"9350:22:51"}]},"documentation":{"id":11893,"nodeType":"StructuredDocumentation","src":"9007:263:51","text":" @dev Returns the scaled balance of the user. The scaled balance is the sum of all the\n updated stored balance divided by the EToken's scale index\n @param user The user whose balance is calculated\n @return The scaled balance of the user*"},"functionSelector":"1da24f3e","id":11905,"implemented":true,"kind":"function","modifiers":[],"name":"scaledBalanceOf","nameLocation":"9282:15:51","nodeType":"FunctionDefinition","parameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"user","nameLocation":"9306:4:51","nodeType":"VariableDeclaration","scope":11905,"src":"9298:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11894,"name":"address","nodeType":"ElementaryTypeName","src":"9298:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9297:14:51"},"returnParameters":{"id":11899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11905,"src":"9335:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11897,"name":"uint256","nodeType":"ElementaryTypeName","src":"9335:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9334:9:51"},"scope":13571,"src":"9273:104:51","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11925,"nodeType":"Block","src":"9711:62:51","statements":[{"expression":{"components":[{"baseExpression":{"id":11915,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"9725:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11917,"indexExpression":{"id":11916,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11908,"src":"9735:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9725:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":11920,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"9750:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9760:6:51","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"9750:16:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":11919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9742:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11918,"name":"uint256","nodeType":"ElementaryTypeName","src":"9742:7:51","typeDescriptions":{}}},"id":11922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9742:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11923,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9724:44:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":11914,"id":11924,"nodeType":"Return","src":"9717:51:51"}]},"documentation":{"id":11906,"nodeType":"StructuredDocumentation","src":"9381:233:51","text":" @dev Returns the scaled balance of the user and the scaled total supply.\n @param user The address of the user\n @return The scaled balance of the user\n @return The scaled balance and the scaled total supply*"},"functionSelector":"0afbcdc9","id":11926,"implemented":true,"kind":"function","modifiers":[],"name":"getScaledUserBalanceAndSupply","nameLocation":"9626:29:51","nodeType":"FunctionDefinition","parameters":{"id":11909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11908,"mutability":"mutable","name":"user","nameLocation":"9664:4:51","nodeType":"VariableDeclaration","scope":11926,"src":"9656:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11907,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9655:14:51"},"returnParameters":{"id":11914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11926,"src":"9693:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11910,"name":"uint256","nodeType":"ElementaryTypeName","src":"9693:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11926,"src":"9702:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11912,"name":"uint256","nodeType":"ElementaryTypeName","src":"9702:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9692:18:51"},"scope":13571,"src":"9617:156:51","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11938,"nodeType":"Block","src":"10004:43:51","statements":[{"expression":{"arguments":[{"expression":{"id":11934,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"10025:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":11935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10035:6:51","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"10025:16:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":11933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10017:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11932,"name":"uint256","nodeType":"ElementaryTypeName","src":"10017:7:51","typeDescriptions":{}}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10017:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11931,"id":11937,"nodeType":"Return","src":"10010:32:51"}]},"documentation":{"id":11927,"nodeType":"StructuredDocumentation","src":"9777:163:51","text":" @dev Returns the (un)scaled total supply of the EToken. Equals to the sum of `scaledBalanceOf(x)` of all users\n @return The scaled total supply*"},"functionSelector":"b1bf962d","id":11939,"implemented":true,"kind":"function","modifiers":[],"name":"scaledTotalSupply","nameLocation":"9952:17:51","nodeType":"FunctionDefinition","parameters":{"id":11928,"nodeType":"ParameterList","parameters":[],"src":"9969:2:51"},"returnParameters":{"id":11931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11939,"src":"9995:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11929,"name":"uint256","nodeType":"ElementaryTypeName","src":"9995:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9994:9:51"},"scope":13571,"src":"9943:104:51","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5381],"body":{"id":11959,"nodeType":"Block","src":"10324:70:51","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11951,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"10340:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10340:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11953,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"10354:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11954,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11944,"src":"10365:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11950,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"10330:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10330:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11956,"nodeType":"ExpressionStatement","src":"10330:42:51"},{"expression":{"hexValue":"74727565","id":11957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10385:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11949,"id":11958,"nodeType":"Return","src":"10378:11:51"}]},"documentation":{"id":11940,"nodeType":"StructuredDocumentation","src":"10051:178:51","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":11960,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"10241:8:51","nodeType":"FunctionDefinition","overrides":{"id":11946,"nodeType":"OverrideSpecifier","overrides":[],"src":"10300:8:51"},"parameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11942,"mutability":"mutable","name":"recipient","nameLocation":"10258:9:51","nodeType":"VariableDeclaration","scope":11960,"src":"10250:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11941,"name":"address","nodeType":"ElementaryTypeName","src":"10250:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11944,"mutability":"mutable","name":"amount","nameLocation":"10277:6:51","nodeType":"VariableDeclaration","scope":11960,"src":"10269:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10269:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10249:35:51"},"returnParameters":{"id":11949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11960,"src":"10318:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11947,"name":"bool","nodeType":"ElementaryTypeName","src":"10318:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10317:6:51"},"scope":13571,"src":"10232:162:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5391],"body":{"id":11977,"nodeType":"Block","src":"10542:45:51","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":11971,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"10555:11:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":11973,"indexExpression":{"id":11972,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"10567:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10555:18:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11975,"indexExpression":{"id":11974,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11965,"src":"10574:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10555:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11970,"id":11976,"nodeType":"Return","src":"10548:34:51"}]},"documentation":{"id":11961,"nodeType":"StructuredDocumentation","src":"10398:43:51","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":11978,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"10453:9:51","nodeType":"FunctionDefinition","overrides":{"id":11967,"nodeType":"OverrideSpecifier","overrides":[],"src":"10515:8:51"},"parameters":{"id":11966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11963,"mutability":"mutable","name":"owner","nameLocation":"10471:5:51","nodeType":"VariableDeclaration","scope":11978,"src":"10463:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11962,"name":"address","nodeType":"ElementaryTypeName","src":"10463:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11965,"mutability":"mutable","name":"spender","nameLocation":"10486:7:51","nodeType":"VariableDeclaration","scope":11978,"src":"10478:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11964,"name":"address","nodeType":"ElementaryTypeName","src":"10478:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10462:32:51"},"returnParameters":{"id":11970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11978,"src":"10533:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11968,"name":"uint256","nodeType":"ElementaryTypeName","src":"10533:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10532:9:51"},"scope":13571,"src":"10444:143:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5401],"body":{"id":11998,"nodeType":"Block","src":"10798:67:51","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11990,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"10813:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10813:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11992,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11981,"src":"10827:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11993,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11983,"src":"10836:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11989,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"10804:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10804:39:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11995,"nodeType":"ExpressionStatement","src":"10804:39:51"},{"expression":{"hexValue":"74727565","id":11996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10856:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11988,"id":11997,"nodeType":"Return","src":"10849:11:51"}]},"documentation":{"id":11979,"nodeType":"StructuredDocumentation","src":"10591:115:51","text":" @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":11999,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"10718:7:51","nodeType":"FunctionDefinition","overrides":{"id":11985,"nodeType":"OverrideSpecifier","overrides":[],"src":"10774:8:51"},"parameters":{"id":11984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11981,"mutability":"mutable","name":"spender","nameLocation":"10734:7:51","nodeType":"VariableDeclaration","scope":11999,"src":"10726:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11980,"name":"address","nodeType":"ElementaryTypeName","src":"10726:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11983,"mutability":"mutable","name":"amount","nameLocation":"10751:6:51","nodeType":"VariableDeclaration","scope":11999,"src":"10743:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11982,"name":"uint256","nodeType":"ElementaryTypeName","src":"10743:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10725:33:51"},"returnParameters":{"id":11988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11999,"src":"10792:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11986,"name":"bool","nodeType":"ElementaryTypeName","src":"10792:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10791:6:51"},"scope":13571,"src":"10709:156:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5413],"body":{"id":12031,"nodeType":"Block","src":"11416:146:51","statements":[{"assignments":[12013],"declarations":[{"constant":false,"id":12013,"mutability":"mutable","name":"spender","nameLocation":"11430:7:51","nodeType":"VariableDeclaration","scope":12031,"src":"11422:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12012,"name":"address","nodeType":"ElementaryTypeName","src":"11422:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12016,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12014,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"11440:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11440:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11422:30:51"},{"expression":{"arguments":[{"id":12018,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"11474:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12019,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"11482:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12020,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12006,"src":"11491:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12017,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"11458:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11458:40:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12022,"nodeType":"ExpressionStatement","src":"11458:40:51"},{"expression":{"arguments":[{"id":12024,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"11514:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12025,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12004,"src":"11522:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12026,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12006,"src":"11533:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12023,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12218,"src":"11504:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11504:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12028,"nodeType":"ExpressionStatement","src":"11504:36:51"},{"expression":{"hexValue":"74727565","id":12029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11553:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12011,"id":12030,"nodeType":"Return","src":"11546:11:51"}]},"documentation":{"id":12000,"nodeType":"StructuredDocumentation","src":"10869:432:51","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":12032,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"11313:12:51","nodeType":"FunctionDefinition","overrides":{"id":12008,"nodeType":"OverrideSpecifier","overrides":[],"src":"11392:8:51"},"parameters":{"id":12007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12002,"mutability":"mutable","name":"sender","nameLocation":"11334:6:51","nodeType":"VariableDeclaration","scope":12032,"src":"11326:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12001,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12004,"mutability":"mutable","name":"recipient","nameLocation":"11350:9:51","nodeType":"VariableDeclaration","scope":12032,"src":"11342:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12003,"name":"address","nodeType":"ElementaryTypeName","src":"11342:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12006,"mutability":"mutable","name":"amount","nameLocation":"11369:6:51","nodeType":"VariableDeclaration","scope":12032,"src":"11361:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12005,"name":"uint256","nodeType":"ElementaryTypeName","src":"11361:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11325:51:51"},"returnParameters":{"id":12011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12032,"src":"11410:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12009,"name":"bool","nodeType":"ElementaryTypeName","src":"11410:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11409:6:51"},"scope":13571,"src":"11304:258:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":12074,"nodeType":"Block","src":"11915:282:51","statements":[{"assignments":[12043],"declarations":[{"constant":false,"id":12043,"mutability":"mutable","name":"currentAllowance","nameLocation":"11929:16:51","nodeType":"VariableDeclaration","scope":12074,"src":"11921:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12042,"name":"uint256","nodeType":"ElementaryTypeName","src":"11921:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12048,"initialValue":{"arguments":[{"id":12045,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12035,"src":"11958:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12046,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12037,"src":"11965:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12044,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11978,"src":"11948:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":12047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11948:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11921:52:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12049,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"11983:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":12052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12008:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12051,"name":"uint256","nodeType":"ElementaryTypeName","src":"12008:7:51","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":12050,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12003:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":12054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12017:3:51","memberName":"max","nodeType":"MemberAccess","src":"12003:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11983:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12073,"nodeType":"IfStatement","src":"11979:214:51","trueBody":{"id":12072,"nodeType":"Block","src":"12022:171:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12057,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"12038:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12058,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12039,"src":"12058:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20696e73756666696369656e7420616c6c6f77616e6365","id":12060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12066:32:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_3406c0466d0912ad8f34c77eb032a772c722fa4ced2b9160a821ce7a76316ecb","typeString":"literal_string \"EToken: insufficient allowance\""},"value":"EToken: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3406c0466d0912ad8f34c77eb032a772c722fa4ced2b9160a821ce7a76316ecb","typeString":"literal_string \"EToken: insufficient allowance\""}],"id":12056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12030:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12030:69:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12062,"nodeType":"ExpressionStatement","src":"12030:69:51"},{"id":12071,"nodeType":"UncheckedBlock","src":"12107:80:51","statements":[{"expression":{"arguments":[{"id":12064,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12035,"src":"12136:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12065,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12037,"src":"12143:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12066,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"12152:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12067,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12039,"src":"12171:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12152:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12063,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"12127:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12127:51:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12070,"nodeType":"ExpressionStatement","src":"12127:51:51"}]}]}}]},"documentation":{"id":12033,"nodeType":"StructuredDocumentation","src":"11566:256:51","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":12075,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11834:15:51","nodeType":"FunctionDefinition","parameters":{"id":12040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12035,"mutability":"mutable","name":"owner","nameLocation":"11858:5:51","nodeType":"VariableDeclaration","scope":12075,"src":"11850:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12034,"name":"address","nodeType":"ElementaryTypeName","src":"11850:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12037,"mutability":"mutable","name":"spender","nameLocation":"11873:7:51","nodeType":"VariableDeclaration","scope":12075,"src":"11865:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12036,"name":"address","nodeType":"ElementaryTypeName","src":"11865:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12039,"mutability":"mutable","name":"amount","nameLocation":"11890:6:51","nodeType":"VariableDeclaration","scope":12075,"src":"11882:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12038,"name":"uint256","nodeType":"ElementaryTypeName","src":"11882:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11849:48:51"},"returnParameters":{"id":12041,"nodeType":"ParameterList","parameters":[],"src":"11915:0:51"},"scope":13571,"src":"11825:372:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12100,"nodeType":"Block","src":"12660:106:51","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12086,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"12675:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12675:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12088,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"12689:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12090,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"12708:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12708:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12092,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"12722:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12089,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11978,"src":"12698:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":12093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12698:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12094,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"12733:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12698:45:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12085,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"12666:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12666:78:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12097,"nodeType":"ExpressionStatement","src":"12666:78:51"},{"expression":{"hexValue":"74727565","id":12098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12757:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12084,"id":12099,"nodeType":"Return","src":"12750:11:51"}]},"documentation":{"id":12076,"nodeType":"StructuredDocumentation","src":"12201:362:51","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":12101,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"12575:17:51","nodeType":"FunctionDefinition","parameters":{"id":12081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12078,"mutability":"mutable","name":"spender","nameLocation":"12601:7:51","nodeType":"VariableDeclaration","scope":12101,"src":"12593:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12077,"name":"address","nodeType":"ElementaryTypeName","src":"12593:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12080,"mutability":"mutable","name":"addedValue","nameLocation":"12618:10:51","nodeType":"VariableDeclaration","scope":12101,"src":"12610:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12079,"name":"uint256","nodeType":"ElementaryTypeName","src":"12610:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12592:37:51"},"returnParameters":{"id":12084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12101,"src":"12654:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12082,"name":"bool","nodeType":"ElementaryTypeName","src":"12654:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12653:6:51"},"scope":13571,"src":"12566:200:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":12138,"nodeType":"Block","src":"13322:255:51","statements":[{"assignments":[12112],"declarations":[{"constant":false,"id":12112,"mutability":"mutable","name":"currentAllowance","nameLocation":"13336:16:51","nodeType":"VariableDeclaration","scope":12138,"src":"13328:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12111,"name":"uint256","nodeType":"ElementaryTypeName","src":"13328:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12119,"initialValue":{"baseExpression":{"baseExpression":{"id":12113,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"13355:11:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12116,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12114,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"13367:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13367:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13355:25:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12118,"indexExpression":{"id":12117,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"13381:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13355:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13328:61:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12121,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"13403:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12122,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12106,"src":"13423:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13403:35:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":12124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13440:40:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e71d7bfeeadcffefd2e7f551031f6769c33c0ba79cbf34d01052008213b61e","typeString":"literal_string \"EToken: decreased allowance below zero\""},"value":"EToken: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_33e71d7bfeeadcffefd2e7f551031f6769c33c0ba79cbf34d01052008213b61e","typeString":"literal_string \"EToken: decreased allowance below zero\""}],"id":12120,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13395:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13395:86:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12126,"nodeType":"ExpressionStatement","src":"13395:86:51"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12128,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"13496:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13496:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12130,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"13510:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12131,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"13519:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12132,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12106,"src":"13538:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13519:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12127,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"13487:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13487:67:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12135,"nodeType":"ExpressionStatement","src":"13487:67:51"},{"expression":{"hexValue":"74727565","id":12136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13568:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12110,"id":12137,"nodeType":"Return","src":"13561:11:51"}]},"documentation":{"id":12102,"nodeType":"StructuredDocumentation","src":"12770:450:51","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":12139,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"13232:17:51","nodeType":"FunctionDefinition","parameters":{"id":12107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12104,"mutability":"mutable","name":"spender","nameLocation":"13258:7:51","nodeType":"VariableDeclaration","scope":12139,"src":"13250:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12103,"name":"address","nodeType":"ElementaryTypeName","src":"13250:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"subtractedValue","nameLocation":"13275:15:51","nodeType":"VariableDeclaration","scope":12139,"src":"13267:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12105,"name":"uint256","nodeType":"ElementaryTypeName","src":"13267:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13249:42:51"},"returnParameters":{"id":12110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12139,"src":"13316:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12108,"name":"bool","nodeType":"ElementaryTypeName","src":"13316:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13315:6:51"},"scope":13571,"src":"13223:354:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":12217,"nodeType":"Block","src":"14108:574:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12150,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12142,"src":"14122:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14140:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14132:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12151,"name":"address","nodeType":"ElementaryTypeName","src":"14132:7:51","typeDescriptions":{}}},"id":12154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14132:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14122:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":12156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14144:40:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae4199242667364260c775cebec97ad3ad9108abef60e71dd3b366486b317dbe","typeString":"literal_string \"EToken: transfer from the zero address\""},"value":"EToken: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae4199242667364260c775cebec97ad3ad9108abef60e71dd3b366486b317dbe","typeString":"literal_string \"EToken: transfer from the zero address\""}],"id":12149,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14114:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14114:71:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12158,"nodeType":"ExpressionStatement","src":"14114:71:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12160,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12144,"src":"14199:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14220:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14212:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12161,"name":"address","nodeType":"ElementaryTypeName","src":"14212:7:51","typeDescriptions":{}}},"id":12164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14212:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14199:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a207472616e7366657220746f20746865207a65726f2061646472657373","id":12166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14224:38:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4e62c43d6dc168374092f2c8d3a0a07ef5767b05389925edc989db39e9a46f7","typeString":"literal_string \"EToken: transfer to the zero address\""},"value":"EToken: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d4e62c43d6dc168374092f2c8d3a0a07ef5767b05389925edc989db39e9a46f7","typeString":"literal_string \"EToken: transfer to the zero address\""}],"id":12159,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14191:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14191:72:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12168,"nodeType":"ExpressionStatement","src":"14191:72:51"},{"expression":{"arguments":[{"id":12170,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12142,"src":"14291:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12171,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12144,"src":"14299:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12172,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"14310:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12169,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12439,"src":"14270:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14270:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12174,"nodeType":"ExpressionStatement","src":"14270:47:51"},{"assignments":[12176],"declarations":[{"constant":false,"id":12176,"mutability":"mutable","name":"scaledAmount","nameLocation":"14331:12:51","nodeType":"VariableDeclaration","scope":12217,"src":"14323:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12175,"name":"uint256","nodeType":"ElementaryTypeName","src":"14323:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12183,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12179,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"14371:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12181,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"14392:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12177,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"14346:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:14:51","memberName":"scaleAmountNow","nodeType":"MemberAccess","referencedDeclaration":22684,"src":"14346:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) view returns (uint256)"}},"id":12182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14346:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14323:76:51"},{"assignments":[12185],"declarations":[{"constant":false,"id":12185,"mutability":"mutable","name":"senderBalance","nameLocation":"14414:13:51","nodeType":"VariableDeclaration","scope":12217,"src":"14406:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12184,"name":"uint256","nodeType":"ElementaryTypeName","src":"14406:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12189,"initialValue":{"baseExpression":{"id":12186,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"14430:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12188,"indexExpression":{"id":12187,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12142,"src":"14440:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14430:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14406:41:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12191,"name":"senderBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"14461:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12192,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12176,"src":"14478:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14461:29:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":12194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14492:41:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_3020e2e2e5d51ac5ca552375a258790bbdeb16e01029ecb426ea961f96df04d6","typeString":"literal_string \"EToken: transfer amount exceeds balance\""},"value":"EToken: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3020e2e2e5d51ac5ca552375a258790bbdeb16e01029ecb426ea961f96df04d6","typeString":"literal_string \"EToken: transfer amount exceeds balance\""}],"id":12190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14453:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14453:81:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12196,"nodeType":"ExpressionStatement","src":"14453:81:51"},{"expression":{"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12197,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"14540:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12199,"indexExpression":{"id":12198,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12142,"src":"14550:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14540:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12200,"name":"senderBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"14560:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12201,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12176,"src":"14576:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14560:28:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14540:48:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12204,"nodeType":"ExpressionStatement","src":"14540:48:51"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12205,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"14594:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12207,"indexExpression":{"id":12206,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12144,"src":"14604:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14594:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12208,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12176,"src":"14618:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14594:36:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12210,"nodeType":"ExpressionStatement","src":"14594:36:51"},{"eventCall":{"arguments":[{"id":12212,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12142,"src":"14651:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12213,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12144,"src":"14659:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12214,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"14670:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12211,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"14642:8:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14642:35:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12216,"nodeType":"EmitStatement","src":"14637:40:51"}]},"documentation":{"id":12140,"nodeType":"StructuredDocumentation","src":"13581:437:51","text":" @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."},"id":12218,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"14030:9:51","nodeType":"FunctionDefinition","parameters":{"id":12147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12142,"mutability":"mutable","name":"sender","nameLocation":"14048:6:51","nodeType":"VariableDeclaration","scope":12218,"src":"14040:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12141,"name":"address","nodeType":"ElementaryTypeName","src":"14040:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12144,"mutability":"mutable","name":"recipient","nameLocation":"14064:9:51","nodeType":"VariableDeclaration","scope":12218,"src":"14056:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12143,"name":"address","nodeType":"ElementaryTypeName","src":"14056:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12146,"mutability":"mutable","name":"amount","nameLocation":"14083:6:51","nodeType":"VariableDeclaration","scope":12218,"src":"14075:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12145,"name":"uint256","nodeType":"ElementaryTypeName","src":"14075:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14039:51:51"},"returnParameters":{"id":12148,"nodeType":"ParameterList","parameters":[],"src":"14108:0:51"},"scope":13571,"src":"14021:661:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12276,"nodeType":"Block","src":"14998:371:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12227,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"15012:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15031:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15023:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12228,"name":"address","nodeType":"ElementaryTypeName","src":"15023:7:51","typeDescriptions":{}}},"id":12231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15023:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15012:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a206d696e7420746f20746865207a65726f2061646472657373","id":12233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15035:34:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_c092a48c5eeae749b2c36eb0157cd57f63b61df63925be968fc9a4b317f67bd1","typeString":"literal_string \"EToken: mint to the zero address\""},"value":"EToken: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c092a48c5eeae749b2c36eb0157cd57f63b61df63925be968fc9a4b317f67bd1","typeString":"literal_string \"EToken: mint to the zero address\""}],"id":12226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15004:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15004:66:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12235,"nodeType":"ExpressionStatement","src":"15004:66:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12237,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"15084:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15093:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15084:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20616d6f756e7420746f206d696e742073686f756c642062652067726561746572207468616e207a65726f","id":12240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15096:52:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4873caaa3c69fd270042095be0af896c3dfb019459ae29b1f19ebb714595cfd","typeString":"literal_string \"EToken: amount to mint should be greater than zero\""},"value":"EToken: amount to mint should be greater than zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f4873caaa3c69fd270042095be0af896c3dfb019459ae29b1f19ebb714595cfd","typeString":"literal_string \"EToken: amount to mint should be greater than zero\""}],"id":12236,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15076:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15076:73:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12242,"nodeType":"ExpressionStatement","src":"15076:73:51"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":12246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15185:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15177:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12244,"name":"address","nodeType":"ElementaryTypeName","src":"15177:7:51","typeDescriptions":{}}},"id":12247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15177:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12248,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"15189:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12249,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"15198:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12243,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12439,"src":"15156:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15156:49:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12251,"nodeType":"ExpressionStatement","src":"15156:49:51"},{"assignments":[12253],"declarations":[{"constant":false,"id":12253,"mutability":"mutable","name":"scaledAmount","nameLocation":"15219:12:51","nodeType":"VariableDeclaration","scope":12276,"src":"15211:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12252,"name":"uint256","nodeType":"ElementaryTypeName","src":"15211:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12260,"initialValue":{"arguments":[{"id":12256,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"15248:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":12257,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"15256:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15256:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12254,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"15234:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15244:3:51","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":22719,"src":"15234:13:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15234:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15211:65:51"},{"expression":{"id":12265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12261,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"15282:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12263,"indexExpression":{"id":12262,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"15292:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15282:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12264,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12253,"src":"15304:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15282:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12266,"nodeType":"ExpressionStatement","src":"15282:34:51"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":12270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15344:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15336:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12268,"name":"address","nodeType":"ElementaryTypeName","src":"15336:7:51","typeDescriptions":{}}},"id":12271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15336:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12272,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"15348:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12273,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"15357:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12267,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"15327:8:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15327:37:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12275,"nodeType":"EmitStatement","src":"15322:42:51"}]},"documentation":{"id":12219,"nodeType":"StructuredDocumentation","src":"14686:244:51","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `to` cannot be the zero address."},"id":12277,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"14942:5:51","nodeType":"FunctionDefinition","parameters":{"id":12224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12221,"mutability":"mutable","name":"account","nameLocation":"14956:7:51","nodeType":"VariableDeclaration","scope":12277,"src":"14948:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12220,"name":"address","nodeType":"ElementaryTypeName","src":"14948:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12223,"mutability":"mutable","name":"amount","nameLocation":"14973:6:51","nodeType":"VariableDeclaration","scope":12277,"src":"14965:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12222,"name":"uint256","nodeType":"ElementaryTypeName","src":"14965:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14947:33:51"},"returnParameters":{"id":12225,"nodeType":"ParameterList","parameters":[],"src":"14998:0:51"},"scope":13571,"src":"14933:436:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12343,"nodeType":"Block","src":"15730:444:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12286,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"15744:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15763:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15755:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12287,"name":"address","nodeType":"ElementaryTypeName","src":"15755:7:51","typeDescriptions":{}}},"id":12290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15755:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15744:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a206275726e2066726f6d20746865207a65726f2061646472657373","id":12292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15767:36:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_b76e407d663bf824398ea9cf3672c614c9d61dd7fa70376ae2b86de2f90ab5d9","typeString":"literal_string \"EToken: burn from the zero address\""},"value":"EToken: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b76e407d663bf824398ea9cf3672c614c9d61dd7fa70376ae2b86de2f90ab5d9","typeString":"literal_string \"EToken: burn from the zero address\""}],"id":12285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15736:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15736:68:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12294,"nodeType":"ExpressionStatement","src":"15736:68:51"},{"expression":{"arguments":[{"id":12296,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"15831:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":12299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15848:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15840:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12297,"name":"address","nodeType":"ElementaryTypeName","src":"15840:7:51","typeDescriptions":{}}},"id":12300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15840:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12301,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"15852:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12295,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12439,"src":"15810:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15810:49:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12303,"nodeType":"ExpressionStatement","src":"15810:49:51"},{"assignments":[12305],"declarations":[{"constant":false,"id":12305,"mutability":"mutable","name":"scaledAmount","nameLocation":"15874:12:51","nodeType":"VariableDeclaration","scope":12343,"src":"15866:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12304,"name":"uint256","nodeType":"ElementaryTypeName","src":"15866:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12312,"initialValue":{"arguments":[{"id":12308,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"15903:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":12309,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"15911:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15911:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12306,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"15889:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15899:3:51","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":22766,"src":"15889:13:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":12311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15889:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15866:65:51"},{"assignments":[12314],"declarations":[{"constant":false,"id":12314,"mutability":"mutable","name":"accountBalance","nameLocation":"15945:14:51","nodeType":"VariableDeclaration","scope":12343,"src":"15937:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12313,"name":"uint256","nodeType":"ElementaryTypeName","src":"15937:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12318,"initialValue":{"baseExpression":{"id":12315,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"15962:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12317,"indexExpression":{"id":12316,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"15972:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15962:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15937:43:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12320,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12314,"src":"15994:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12321,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12305,"src":"16012:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15994:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e6365","id":12323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16026:37:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_1cbf7542358884c15d276707c7804fa59675a48013fdf3bc6c452d05bb62300a","typeString":"literal_string \"EToken: burn amount exceeds balance\""},"value":"EToken: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1cbf7542358884c15d276707c7804fa59675a48013fdf3bc6c452d05bb62300a","typeString":"literal_string \"EToken: burn amount exceeds balance\""}],"id":12319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15986:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15986:78:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12325,"nodeType":"ExpressionStatement","src":"15986:78:51"},{"expression":{"id":12332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12326,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11534,"src":"16070:9:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12328,"indexExpression":{"id":12327,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"16080:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16070:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12329,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12314,"src":"16091:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12330,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12305,"src":"16108:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16091:29:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16070:50:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12333,"nodeType":"ExpressionStatement","src":"16070:50:51"},{"eventCall":{"arguments":[{"id":12335,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12280,"src":"16141:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":12338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16158:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16150:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12336,"name":"address","nodeType":"ElementaryTypeName","src":"16150:7:51","typeDescriptions":{}}},"id":12339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16150:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12340,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"16162:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12334,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5348,"src":"16132:8:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:37:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12342,"nodeType":"EmitStatement","src":"16127:42:51"}]},"documentation":{"id":12278,"nodeType":"StructuredDocumentation","src":"15373:289:51","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":12344,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"15674:5:51","nodeType":"FunctionDefinition","parameters":{"id":12283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12280,"mutability":"mutable","name":"account","nameLocation":"15688:7:51","nodeType":"VariableDeclaration","scope":12344,"src":"15680:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12279,"name":"address","nodeType":"ElementaryTypeName","src":"15680:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12282,"mutability":"mutable","name":"amount","nameLocation":"15705:6:51","nodeType":"VariableDeclaration","scope":12344,"src":"15697:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12281,"name":"uint256","nodeType":"ElementaryTypeName","src":"15697:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15679:33:51"},"returnParameters":{"id":12284,"nodeType":"ParameterList","parameters":[],"src":"15730:0:51"},"scope":13571,"src":"15665:509:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12388,"nodeType":"Block","src":"16652:241:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12355,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"16666:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16683:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16675:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12356,"name":"address","nodeType":"ElementaryTypeName","src":"16675:7:51","typeDescriptions":{}}},"id":12359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16675:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16666:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":12361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16687:39:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_e22d4b76cddf749021acbaffeb21586d2eddcc3413a241b2458b22b9d569598d","typeString":"literal_string \"EToken: approve from the zero address\""},"value":"EToken: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e22d4b76cddf749021acbaffeb21586d2eddcc3413a241b2458b22b9d569598d","typeString":"literal_string \"EToken: approve from the zero address\""}],"id":12354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16658:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16658:69:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12363,"nodeType":"ExpressionStatement","src":"16658:69:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12365,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12349,"src":"16741:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16760:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16752:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12366,"name":"address","nodeType":"ElementaryTypeName","src":"16752:7:51","typeDescriptions":{}}},"id":12369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16752:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16741:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20617070726f766520746f20746865207a65726f2061646472657373","id":12371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16764:37:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f2f6229ccd48e6ded11f90b09020d2d605afd986dfc1dc96af3fe98ef412b14","typeString":"literal_string \"EToken: approve to the zero address\""},"value":"EToken: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f2f6229ccd48e6ded11f90b09020d2d605afd986dfc1dc96af3fe98ef412b14","typeString":"literal_string \"EToken: approve to the zero address\""}],"id":12364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16733:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16733:69:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12373,"nodeType":"ExpressionStatement","src":"16733:69:51"},{"expression":{"id":12380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":12374,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"16809:11:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12377,"indexExpression":{"id":12375,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"16821:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16809:18:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12378,"indexExpression":{"id":12376,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12349,"src":"16828:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16809:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12379,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12351,"src":"16839:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16809:36:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12381,"nodeType":"ExpressionStatement","src":"16809:36:51"},{"eventCall":{"arguments":[{"id":12383,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"16865:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12384,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12349,"src":"16872:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12385,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12351,"src":"16881:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12382,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"16856:8:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16856:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12387,"nodeType":"EmitStatement","src":"16851:37:51"}]},"documentation":{"id":12345,"nodeType":"StructuredDocumentation","src":"16178:388:51","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":12389,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"16578:8:51","nodeType":"FunctionDefinition","parameters":{"id":12352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12347,"mutability":"mutable","name":"owner","nameLocation":"16595:5:51","nodeType":"VariableDeclaration","scope":12389,"src":"16587:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12346,"name":"address","nodeType":"ElementaryTypeName","src":"16587:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12349,"mutability":"mutable","name":"spender","nameLocation":"16610:7:51","nodeType":"VariableDeclaration","scope":12389,"src":"16602:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12348,"name":"address","nodeType":"ElementaryTypeName","src":"16602:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12351,"mutability":"mutable","name":"amount","nameLocation":"16627:6:51","nodeType":"VariableDeclaration","scope":12389,"src":"16619:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12350,"name":"uint256","nodeType":"ElementaryTypeName","src":"16619:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16586:48:51"},"returnParameters":{"id":12353,"nodeType":"ParameterList","parameters":[],"src":"16652:0:51"},"scope":13571,"src":"16569:324:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12438,"nodeType":"Block","src":"17553:266:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12402,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"17574:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17590:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17582:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12403,"name":"address","nodeType":"ElementaryTypeName","src":"17582:7:51","typeDescriptions":{}}},"id":12406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17574:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12408,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"17604:2:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17618:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17610:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12409,"name":"address","nodeType":"ElementaryTypeName","src":"17610:7:51","typeDescriptions":{}}},"id":12412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17610:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17604:16:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17574:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12417,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"17640:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17648:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"17640:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":12416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17632:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12415,"name":"address","nodeType":"ElementaryTypeName","src":"17632:7:51","typeDescriptions":{}}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17632:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17670:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17662:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12420,"name":"address","nodeType":"ElementaryTypeName","src":"17662:7:51","typeDescriptions":{}}},"id":12423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17662:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17632:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17574:98:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12429,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17718:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},{"id":12430,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"17724:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12431,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"17730:2:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12432,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12396,"src":"17734:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12426,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"17684:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17692:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"17684:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"id":12428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17702:15:51","memberName":"acceptsTransfer","nodeType":"MemberAccess","referencedDeclaration":23582,"src":"17684:33:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IEToken_$23549_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IEToken,address,address,uint256) view external returns (bool)"}},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17684:57:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17574:167:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206e6f7420616c6c6f776564202d204c69717569646974792050726f7669646572206e6f742077686974656c6973746564","id":12435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17749:59:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_2376e8656d108fa259440a6257d5c2afd65e5925665da06a3ef148c4e812fffb","typeString":"literal_string \"Transfer not allowed - Liquidity Provider not whitelisted\""},"value":"Transfer not allowed - Liquidity Provider not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2376e8656d108fa259440a6257d5c2afd65e5925665da06a3ef148c4e812fffb","typeString":"literal_string \"Transfer not allowed - Liquidity Provider not whitelisted\""}],"id":12401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17559:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17559:255:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12437,"nodeType":"ExpressionStatement","src":"17559:255:51"}]},"documentation":{"id":12390,"nodeType":"StructuredDocumentation","src":"16897:550:51","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":12439,"implemented":true,"kind":"function","modifiers":[{"id":12399,"kind":"modifierInvocation","modifierName":{"id":12398,"name":"whenNotPaused","nameLocations":["17539:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"17539:13:51"},"nodeType":"ModifierInvocation","src":"17539:13:51"}],"name":"_beforeTokenTransfer","nameLocation":"17459:20:51","nodeType":"FunctionDefinition","parameters":{"id":12397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12392,"mutability":"mutable","name":"from","nameLocation":"17488:4:51","nodeType":"VariableDeclaration","scope":12439,"src":"17480:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12391,"name":"address","nodeType":"ElementaryTypeName","src":"17480:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12394,"mutability":"mutable","name":"to","nameLocation":"17502:2:51","nodeType":"VariableDeclaration","scope":12439,"src":"17494:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12393,"name":"address","nodeType":"ElementaryTypeName","src":"17494:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12396,"mutability":"mutable","name":"amount","nameLocation":"17514:6:51","nodeType":"VariableDeclaration","scope":12439,"src":"17506:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12395,"name":"uint256","nodeType":"ElementaryTypeName","src":"17506:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17479:42:51"},"returnParameters":{"id":12400,"nodeType":"ParameterList","parameters":[],"src":"17553:0:51"},"scope":13571,"src":"17450:369:51","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12499,"nodeType":"Block","src":"17970:587:51","statements":[{"assignments":[12443],"declarations":[{"constant":false,"id":12443,"mutability":"mutable","name":"totalSupply_","nameLocation":"17984:12:51","nodeType":"VariableDeclaration","scope":12499,"src":"17976:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12442,"name":"uint256","nodeType":"ElementaryTypeName","src":"17976:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12447,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12444,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17999:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},"id":12445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18004:11:51","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":11857,"src":"17999:16:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17999:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17976:41:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12448,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12443,"src":"18027:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18043:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18027:17:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12497,"nodeType":"Block","src":"18083:470:51","statements":[{"assignments":[12458],"declarations":[{"constant":false,"id":12458,"mutability":"mutable","name":"newTokenInterestRate","nameLocation":"18099:20:51","nodeType":"VariableDeclaration","scope":12497,"src":"18091:28:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12457,"name":"uint256","nodeType":"ElementaryTypeName","src":"18091:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12474,"initialValue":{"arguments":[{"id":12472,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12443,"src":"18182:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"expression":{"id":12467,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18164:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18169:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"18164:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18156:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12465,"name":"uint256","nodeType":"ElementaryTypeName","src":"18156:7:51","typeDescriptions":{}}},"id":12469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18156:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":12461,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18130:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"18130:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":12460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18122:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12459,"name":"uint256","nodeType":"ElementaryTypeName","src":"18122:7:51","typeDescriptions":{}}},"id":12463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18122:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18149:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"18122:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18122:52:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:6:51","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"18122:59:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18122:73:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18091:104:51"},{"expression":{"id":12495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12475,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18203:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18208:17:51","memberName":"tokenInterestRate","nodeType":"MemberAccess","referencedDeclaration":11553,"src":"18203:22:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12478,"name":"newTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12458,"src":"18229:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":12481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18257:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":12480,"name":"uint64","nodeType":"ElementaryTypeName","src":"18257:6:51","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":12479,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18252:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18252:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":12483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18265:3:51","memberName":"max","nodeType":"MemberAccess","src":"18252:16:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18229:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18228:41:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12491,"name":"newTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12458,"src":"18307:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18328:8:51","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"18307:29:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18307:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"18228:110:51","trueExpression":{"expression":{"arguments":[{"id":12488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18285:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":12487,"name":"uint64","nodeType":"ElementaryTypeName","src":"18285:6:51","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":12486,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18280:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18280:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":12490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18293:3:51","memberName":"max","nodeType":"MemberAccess","src":"18280:16:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18203:135:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12496,"nodeType":"ExpressionStatement","src":"18203:135:51"}]},"id":12498,"nodeType":"IfStatement","src":"18023:530:51","trueBody":{"expression":{"id":12455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12451,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18046:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18051:17:51","memberName":"tokenInterestRate","nodeType":"MemberAccess","referencedDeclaration":11553,"src":"18046:22:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18071:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18046:26:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12456,"nodeType":"ExpressionStatement","src":"18046:26:51"}}]},"id":12500,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTokenInterestRate","nameLocation":"17934:24:51","nodeType":"FunctionDefinition","parameters":{"id":12440,"nodeType":"ParameterList","parameters":[],"src":"17958:2:51"},"returnParameters":{"id":12441,"nodeType":"ParameterList","parameters":[],"src":"17970:0:51"},"scope":13571,"src":"17925:632:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12521,"nodeType":"Block","src":"18630:112:51","statements":[{"condition":{"id":12507,"name":"updated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12502,"src":"18640:7:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"expression":{"id":12516,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"18721:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18731:5:51","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"18721:15:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":12515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18713:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12514,"name":"uint256","nodeType":"ElementaryTypeName","src":"18713:7:51","typeDescriptions":{}}},"id":12518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18713:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12506,"id":12519,"nodeType":"Return","src":"18706:31:51"},"id":12520,"nodeType":"IfStatement","src":"18636:101:51","trueBody":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12510,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"18675:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18675:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12508,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"18656:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18666:8:51","memberName":"getScale","nodeType":"MemberAccess","referencedDeclaration":22579,"src":"18656:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18656:39:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12506,"id":12513,"nodeType":"Return","src":"18649:46:51"}}]},"functionSelector":"79d989fb","id":12522,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentScale","nameLocation":"18570:15:51","nodeType":"FunctionDefinition","parameters":{"id":12503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12502,"mutability":"mutable","name":"updated","nameLocation":"18591:7:51","nodeType":"VariableDeclaration","scope":12522,"src":"18586:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12501,"name":"bool","nodeType":"ElementaryTypeName","src":"18586:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18585:14:51"},"returnParameters":{"id":12506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12522,"src":"18621:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12504,"name":"uint256","nodeType":"ElementaryTypeName","src":"18621:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18620:9:51"},"scope":13571,"src":"18561:181:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12551,"nodeType":"Block","src":"18802:154:51","statements":[{"assignments":[12528],"declarations":[{"constant":false,"id":12528,"mutability":"mutable","name":"totalSupply_","nameLocation":"18816:12:51","nodeType":"VariableDeclaration","scope":12551,"src":"18808:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12527,"name":"uint256","nodeType":"ElementaryTypeName","src":"18808:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12532,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12529,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18831:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},"id":12530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18836:11:51","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":11857,"src":"18831:16:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18831:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18808:41:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12533,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"18859:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"id":12536,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18882:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18887:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"18882:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18874:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12534,"name":"uint256","nodeType":"ElementaryTypeName","src":"18874:7:51","typeDescriptions":{}}},"id":12538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18874:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18859:32:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"hexValue":"30","id":12548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18950:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":12526,"id":12549,"nodeType":"Return","src":"18943:8:51"},"id":12550,"nodeType":"IfStatement","src":"18855:96:51","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12540,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12528,"src":"18900:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":12543,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"18923:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18928:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"18923:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18915:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18915:7:51","typeDescriptions":{}}},"id":12545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18915:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18900:32:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12526,"id":12547,"nodeType":"Return","src":"18893:39:51"}}]},"functionSelector":"4fe0bd1e","id":12552,"implemented":true,"kind":"function","modifiers":[],"name":"fundsAvailable","nameLocation":"18755:14:51","nodeType":"FunctionDefinition","parameters":{"id":12523,"nodeType":"ParameterList","parameters":[],"src":"18769:2:51"},"returnParameters":{"id":12526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12552,"src":"18793:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12524,"name":"uint256","nodeType":"ElementaryTypeName","src":"18793:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18792:9:51"},"scope":13571,"src":"18746:210:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12585,"nodeType":"Block","src":"19022:165:51","statements":[{"assignments":[12558],"declarations":[{"constant":false,"id":12558,"mutability":"mutable","name":"supply","nameLocation":"19036:6:51","nodeType":"VariableDeclaration","scope":12585,"src":"19028:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12557,"name":"uint256","nodeType":"ElementaryTypeName","src":"19028:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12563,"name":"maxUtilizationRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12699,"src":"19071:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12559,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19045:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19050:11:51","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":11857,"src":"19045:16:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19045:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19064:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"19045:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19045:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19028:64:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12567,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12558,"src":"19102:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"id":12570,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"19119:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19124:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"19119:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19111:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12568,"name":"uint256","nodeType":"ElementaryTypeName","src":"19111:7:51","typeDescriptions":{}}},"id":12572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19111:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19102:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"hexValue":"30","id":12582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19181:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":12556,"id":12583,"nodeType":"Return","src":"19174:8:51"},"id":12584,"nodeType":"IfStatement","src":"19098:84:51","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12574,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12558,"src":"19137:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":12577,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"19154:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19159:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"19154:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19146:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12575,"name":"uint256","nodeType":"ElementaryTypeName","src":"19146:7:51","typeDescriptions":{}}},"id":12579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19146:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19137:26:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12556,"id":12581,"nodeType":"Return","src":"19130:33:51"}}]},"functionSelector":"a08f2203","id":12586,"implemented":true,"kind":"function","modifiers":[],"name":"fundsAvailableToLock","nameLocation":"18969:20:51","nodeType":"FunctionDefinition","parameters":{"id":12553,"nodeType":"ParameterList","parameters":[],"src":"18989:2:51"},"returnParameters":{"id":12556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12586,"src":"19013:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12554,"name":"uint256","nodeType":"ElementaryTypeName","src":"19013:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19012:9:51"},"scope":13571,"src":"18960:227:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[19870],"body":{"id":12595,"nodeType":"Block","src":"19260:31:51","statements":[{"expression":{"id":12593,"name":"_assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11580,"src":"19273:13:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"functionReturnParameters":12592,"id":12594,"nodeType":"Return","src":"19266:20:51"}]},"functionSelector":"94217ad1","id":12596,"implemented":true,"kind":"function","modifiers":[],"name":"assetManager","nameLocation":"19200:12:51","nodeType":"FunctionDefinition","overrides":{"id":12588,"nodeType":"OverrideSpecifier","overrides":[],"src":"19227:8:51"},"parameters":{"id":12587,"nodeType":"ParameterList","parameters":[],"src":"19212:2:51"},"returnParameters":{"id":12592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12596,"src":"19245:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":12590,"nodeType":"UserDefinedTypeName","pathNode":{"id":12589,"name":"IAssetManager","nameLocations":["19245:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"19245:13:51"},"referencedDeclaration":23421,"src":"19245:13:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"19244:15:51"},"scope":13571,"src":"19191:100:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[19877],"body":{"id":12607,"nodeType":"Block","src":"19360:32:51","statements":[{"expression":{"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12603,"name":"_assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11580,"src":"19366:13:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12604,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12599,"src":"19382:5:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"src":"19366:21:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"id":12606,"nodeType":"ExpressionStatement","src":"19366:21:51"}]},"id":12608,"implemented":true,"kind":"function","modifiers":[],"name":"_setAssetManager","nameLocation":"19304:16:51","nodeType":"FunctionDefinition","overrides":{"id":12601,"nodeType":"OverrideSpecifier","overrides":[],"src":"19351:8:51"},"parameters":{"id":12600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12599,"mutability":"mutable","name":"newAM","nameLocation":"19335:5:51","nodeType":"VariableDeclaration","scope":12608,"src":"19321:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":12598,"nodeType":"UserDefinedTypeName","pathNode":{"id":12597,"name":"IAssetManager","nameLocations":["19321:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"19321:13:51"},"referencedDeclaration":23421,"src":"19321:13:51","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"19320:21:51"},"returnParameters":{"id":12602,"nodeType":"ParameterList","parameters":[],"src":"19360:0:51"},"scope":13571,"src":"19295:97:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12622,"nodeType":"Block","src":"19510:93:51","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"19570:5:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":12616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19562:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12615,"name":"uint256","nodeType":"ElementaryTypeName","src":"19562:7:51","typeDescriptions":{}}},"id":12618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19562:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12619,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11515,"src":"19579:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19562:36:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12614,"id":12621,"nodeType":"Return","src":"19555:43:51"}]},"id":12623,"implemented":true,"kind":"function","modifiers":[],"name":"_4toWad","nameLocation":"19456:7:51","nodeType":"FunctionDefinition","parameters":{"id":12611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12610,"mutability":"mutable","name":"value","nameLocation":"19471:5:51","nodeType":"VariableDeclaration","scope":12623,"src":"19464:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12609,"name":"uint16","nodeType":"ElementaryTypeName","src":"19464:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19463:14:51"},"returnParameters":{"id":12614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12623,"src":"19501:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12612,"name":"uint256","nodeType":"ElementaryTypeName","src":"19501:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19500:9:51"},"scope":13571,"src":"19447:156:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12637,"nodeType":"Block","src":"19670:83:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12630,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"19709:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12631,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11515,"src":"19717:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19709:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12633,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19708:29:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19738:8:51","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9502,"src":"19708:38:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":12635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:40:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":12629,"id":12636,"nodeType":"Return","src":"19701:47:51"}]},"id":12638,"implemented":true,"kind":"function","modifiers":[],"name":"_wadTo4","nameLocation":"19616:7:51","nodeType":"FunctionDefinition","parameters":{"id":12626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12625,"mutability":"mutable","name":"value","nameLocation":"19632:5:51","nodeType":"VariableDeclaration","scope":12638,"src":"19624:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12624,"name":"uint256","nodeType":"ElementaryTypeName","src":"19624:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19623:15:51"},"returnParameters":{"id":12629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12638,"src":"19662:6:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12627,"name":"uint16","nodeType":"ElementaryTypeName","src":"19662:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19661:8:51"},"scope":13571,"src":"19607:146:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[23454],"body":{"id":12650,"nodeType":"Block","src":"19819:35:51","statements":[{"expression":{"arguments":[{"expression":{"id":12646,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"19840:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19845:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"19840:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19832:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12644,"name":"uint256","nodeType":"ElementaryTypeName","src":"19832:7:51","typeDescriptions":{}}},"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19832:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12643,"id":12649,"nodeType":"Return","src":"19825:24:51"}]},"functionSelector":"6c6f4542","id":12651,"implemented":true,"kind":"function","modifiers":[],"name":"scr","nameLocation":"19766:3:51","nodeType":"FunctionDefinition","overrides":{"id":12640,"nodeType":"OverrideSpecifier","overrides":[],"src":"19792:8:51"},"parameters":{"id":12639,"nodeType":"ParameterList","parameters":[],"src":"19769:2:51"},"returnParameters":{"id":12643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12651,"src":"19810:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12641,"name":"uint256","nodeType":"ElementaryTypeName","src":"19810:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19809:9:51"},"scope":13571,"src":"19757:97:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23548],"body":{"id":12663,"nodeType":"Block","src":"19924:44:51","statements":[{"expression":{"arguments":[{"expression":{"id":12659,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"19945:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"19945:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":12658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19937:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12657,"name":"uint256","nodeType":"ElementaryTypeName","src":"19937:7:51","typeDescriptions":{}}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19937:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12656,"id":12662,"nodeType":"Return","src":"19930:33:51"}]},"functionSelector":"9d90724d","id":12664,"implemented":true,"kind":"function","modifiers":[],"name":"scrInterestRate","nameLocation":"19867:15:51","nodeType":"FunctionDefinition","overrides":{"id":12653,"nodeType":"OverrideSpecifier","overrides":[],"src":"19897:8:51"},"parameters":{"id":12652,"nodeType":"ParameterList","parameters":[],"src":"19882:2:51"},"returnParameters":{"id":12656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12664,"src":"19915:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12654,"name":"uint256","nodeType":"ElementaryTypeName","src":"19915:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19914:9:51"},"scope":13571,"src":"19858:110:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23542],"body":{"id":12676,"nodeType":"Block","src":"20040:49:51","statements":[{"expression":{"arguments":[{"expression":{"id":12672,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20061:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20066:17:51","memberName":"tokenInterestRate","nodeType":"MemberAccess","referencedDeclaration":11553,"src":"20061:22:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":12671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20053:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12670,"name":"uint256","nodeType":"ElementaryTypeName","src":"20053:7:51","typeDescriptions":{}}},"id":12674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20053:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12669,"id":12675,"nodeType":"Return","src":"20046:38:51"}]},"functionSelector":"159ec2df","id":12677,"implemented":true,"kind":"function","modifiers":[],"name":"tokenInterestRate","nameLocation":"19981:17:51","nodeType":"FunctionDefinition","overrides":{"id":12666,"nodeType":"OverrideSpecifier","overrides":[],"src":"20013:8:51"},"parameters":{"id":12665,"nodeType":"ParameterList","parameters":[],"src":"19998:2:51"},"returnParameters":{"id":12669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12677,"src":"20031:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12667,"name":"uint256","nodeType":"ElementaryTypeName","src":"20031:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20030:9:51"},"scope":13571,"src":"19972:117:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12687,"nodeType":"Block","src":"20155:55:51","statements":[{"expression":{"arguments":[{"expression":{"id":12683,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"20176:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20184:20:51","memberName":"liquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":11564,"src":"20176:28:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":12682,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12623,"src":"20168:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":12685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:37:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12681,"id":12686,"nodeType":"Return","src":"20161:44:51"}]},"functionSelector":"ba4e8df5","id":12688,"implemented":true,"kind":"function","modifiers":[],"name":"liquidityRequirement","nameLocation":"20102:20:51","nodeType":"FunctionDefinition","parameters":{"id":12678,"nodeType":"ParameterList","parameters":[],"src":"20122:2:51"},"returnParameters":{"id":12681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12688,"src":"20146:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12679,"name":"uint256","nodeType":"ElementaryTypeName","src":"20146:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20145:9:51"},"scope":13571,"src":"20093:117:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12698,"nodeType":"Block","src":"20274:53:51","statements":[{"expression":{"arguments":[{"expression":{"id":12694,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"20295:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20303:18:51","memberName":"maxUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11568,"src":"20295:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":12693,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12623,"src":"20287:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":12696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20287:35:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12692,"id":12697,"nodeType":"Return","src":"20280:42:51"}]},"functionSelector":"dfcb48bd","id":12699,"implemented":true,"kind":"function","modifiers":[],"name":"maxUtilizationRate","nameLocation":"20223:18:51","nodeType":"FunctionDefinition","parameters":{"id":12689,"nodeType":"ParameterList","parameters":[],"src":"20241:2:51"},"returnParameters":{"id":12692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12699,"src":"20265:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12690,"name":"uint256","nodeType":"ElementaryTypeName","src":"20265:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20264:9:51"},"scope":13571,"src":"20214:113:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12709,"nodeType":"Block","src":"20391:53:51","statements":[{"expression":{"arguments":[{"expression":{"id":12705,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"20412:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20420:18:51","memberName":"minUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11566,"src":"20412:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":12704,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12623,"src":"20404:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":12707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:35:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12703,"id":12708,"nodeType":"Return","src":"20397:42:51"}]},"functionSelector":"ee01a183","id":12710,"implemented":true,"kind":"function","modifiers":[],"name":"minUtilizationRate","nameLocation":"20340:18:51","nodeType":"FunctionDefinition","parameters":{"id":12700,"nodeType":"ParameterList","parameters":[],"src":"20358:2:51"},"returnParameters":{"id":12703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12710,"src":"20382:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12701,"name":"uint256","nodeType":"ElementaryTypeName","src":"20382:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20381:9:51"},"scope":13571,"src":"20331:113:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12726,"nodeType":"Block","src":"20505:62:51","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12721,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20543:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},"id":12722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20548:11:51","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":11857,"src":"20543:16:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20543:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":12717,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20526:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20531:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"20526:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20518:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12715,"name":"uint256","nodeType":"ElementaryTypeName","src":"20518:7:51","typeDescriptions":{}}},"id":12719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20518:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20536:6:51","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"20518:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20518:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12714,"id":12725,"nodeType":"Return","src":"20511:51:51"}]},"functionSelector":"6c321c8a","id":12727,"implemented":true,"kind":"function","modifiers":[],"name":"utilizationRate","nameLocation":"20457:15:51","nodeType":"FunctionDefinition","parameters":{"id":12711,"nodeType":"ParameterList","parameters":[],"src":"20472:2:51"},"returnParameters":{"id":12714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12727,"src":"20496:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12712,"name":"uint256","nodeType":"ElementaryTypeName","src":"20496:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20495:9:51"},"scope":13571,"src":"20448:119:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23462],"body":{"id":12832,"nodeType":"Block","src":"20680:658:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12740,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"20694:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12741,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20707:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},"id":12742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20712:20:51","memberName":"fundsAvailableToLock","nodeType":"MemberAccess","referencedDeclaration":12586,"src":"20707:25:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20707:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20694:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420656e6f7567682066756e647320617661696c61626c6520746f20636f7665722074686520534352","id":12745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20736:45:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_03581280538719c2020c894a210ef9aa558c82c902fd12bce0931000f73b74ae","typeString":"literal_string \"Not enough funds available to cover the SCR\""},"value":"Not enough funds available to cover the SCR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03581280538719c2020c894a210ef9aa558c82c902fd12bce0931000f73b74ae","typeString":"literal_string \"Not enough funds available to cover the SCR\""}],"id":12739,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20686:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20686:96:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12747,"nodeType":"ExpressionStatement","src":"20686:96:51"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12751,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"20810:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20810:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12748,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"20788:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20798:11:51","memberName":"updateScale","nodeType":"MemberAccess","referencedDeclaration":22521,"src":"20788:21:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256)"}},"id":12753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20788:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12754,"nodeType":"ExpressionStatement","src":"20788:42:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":12758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12755,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20840:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20845:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"20840:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20852:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20840:13:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12822,"nodeType":"Block","src":"20965:286:51","statements":[{"assignments":[12777],"declarations":[{"constant":false,"id":12777,"mutability":"mutable","name":"origScr","nameLocation":"20981:7:51","nodeType":"VariableDeclaration","scope":12822,"src":"20973:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12776,"name":"uint256","nodeType":"ElementaryTypeName","src":"20973:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12783,"initialValue":{"arguments":[{"expression":{"id":12780,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20999:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21004:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"20999:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20991:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12778,"name":"uint256","nodeType":"ElementaryTypeName","src":"20991:7:51","typeDescriptions":{}}},"id":12782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20991:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20973:35:51"},{"assignments":[12785],"declarations":[{"constant":false,"id":12785,"mutability":"mutable","name":"newScr","nameLocation":"21024:6:51","nodeType":"VariableDeclaration","scope":12822,"src":"21016:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12784,"name":"uint256","nodeType":"ElementaryTypeName","src":"21016:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12789,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12786,"name":"origScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"21033:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12787,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"21043:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21033:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21016:36:51"},{"expression":{"id":12812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12790,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21060:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21065:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"21060:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12808,"name":"newScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"21180:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12799,"name":"origScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"21115:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":12795,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21089:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21094:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"21089:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":12794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21081:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12793,"name":"uint256","nodeType":"ElementaryTypeName","src":"21081:7:51","typeDescriptions":{}}},"id":12797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21081:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21108:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"21081:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21081:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":12803,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"21152:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12801,"name":"policyInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"21126:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21145:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"21126:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21126:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21081:81:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12806,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21080:83:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21173:6:51","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"21080:99:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21080:107:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21197:8:51","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"21080:125:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":12811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21080:127:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21060:147:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12813,"nodeType":"ExpressionStatement","src":"21060:147:51"},{"expression":{"id":12820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12814,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21215:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21220:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21215:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12817,"name":"newScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"21226:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21233:9:51","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"21226:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21226:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"21215:29:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":12821,"nodeType":"ExpressionStatement","src":"21215:29:51"}]},"id":12823,"nodeType":"IfStatement","src":"20836:415:51","trueBody":{"id":12775,"nodeType":"Block","src":"20855:104:51","statements":[{"expression":{"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12759,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20863:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20868:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"20863:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12762,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"20874:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20884:9:51","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"20874:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":12764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20874:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"20863:32:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":12766,"nodeType":"ExpressionStatement","src":"20863:32:51"},{"expression":{"id":12773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12767,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"20903:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20908:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"20903:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12770,"name":"policyInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"20923:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20942:8:51","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"20923:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20923:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"20903:49:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12774,"nodeType":"ExpressionStatement","src":"20903:49:51"}]}},{"eventCall":{"arguments":[{"id":12825,"name":"policyInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"21271:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12826,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"21291:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12824,"name":"SCRLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"21261:9:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21261:40:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12828,"nodeType":"EmitStatement","src":"21256:45:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12829,"name":"_updateTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"21307:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21307:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12831,"nodeType":"ExpressionStatement","src":"21307:26:51"}]},"functionSelector":"837c83a3","id":12833,"implemented":true,"kind":"function","modifiers":[{"id":12735,"kind":"modifierInvocation","modifierName":{"id":12734,"name":"onlyBorrower","nameLocations":["20653:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":11619,"src":"20653:12:51"},"nodeType":"ModifierInvocation","src":"20653:12:51"},{"id":12737,"kind":"modifierInvocation","modifierName":{"id":12736,"name":"whenNotPaused","nameLocations":["20666:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"20666:13:51"},"nodeType":"ModifierInvocation","src":"20666:13:51"}],"name":"lockScr","nameLocation":"20580:7:51","nodeType":"FunctionDefinition","overrides":{"id":12733,"nodeType":"OverrideSpecifier","overrides":[],"src":"20644:8:51"},"parameters":{"id":12732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12729,"mutability":"mutable","name":"scrAmount","nameLocation":"20596:9:51","nodeType":"VariableDeclaration","scope":12833,"src":"20588:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12728,"name":"uint256","nodeType":"ElementaryTypeName","src":"20588:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12731,"mutability":"mutable","name":"policyInterestRate","nameLocation":"20615:18:51","nodeType":"VariableDeclaration","scope":12833,"src":"20607:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12730,"name":"uint256","nodeType":"ElementaryTypeName","src":"20607:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20587:47:51"},"returnParameters":{"id":12738,"nodeType":"ParameterList","parameters":[],"src":"20680:0:51"},"scope":13571,"src":"20571:767:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23472],"body":{"id":12942,"nodeType":"Block","src":"21488:629:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12848,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"21502:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"id":12851,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21523:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21528:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21523:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21515:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12849,"name":"uint256","nodeType":"ElementaryTypeName","src":"21515:7:51","typeDescriptions":{}}},"id":12853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21515:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21502:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43757272656e7420534352206c657373207468616e2074686520616d6f756e7420796f752077616e7420746f20756e6c6f636b","id":12855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21534:53:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_24ef78e89ef45c3eec4ad876eb521dca8aa5807bbc61071cdd2ffeab164da79e","typeString":"literal_string \"Current SCR less than the amount you want to unlock\""},"value":"Current SCR less than the amount you want to unlock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24ef78e89ef45c3eec4ad876eb521dca8aa5807bbc61071cdd2ffeab164da79e","typeString":"literal_string \"Current SCR less than the amount you want to unlock\""}],"id":12847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21494:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:94:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12857,"nodeType":"ExpressionStatement","src":"21494:94:51"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12861,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"21616:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21616:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12858,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"21594:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21604:11:51","memberName":"updateScale","nodeType":"MemberAccess","referencedDeclaration":22521,"src":"21594:21:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256)"}},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21594:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12864,"nodeType":"ExpressionStatement","src":"21594:42:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12867,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21655:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21660:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21655:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21647:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12865,"name":"uint256","nodeType":"ElementaryTypeName","src":"21647:7:51","typeDescriptions":{}}},"id":12869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21647:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12870,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"21668:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21647:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12931,"nodeType":"Block","src":"21741:286:51","statements":[{"assignments":[12886],"declarations":[{"constant":false,"id":12886,"mutability":"mutable","name":"origScr","nameLocation":"21757:7:51","nodeType":"VariableDeclaration","scope":12931,"src":"21749:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12885,"name":"uint256","nodeType":"ElementaryTypeName","src":"21749:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12892,"initialValue":{"arguments":[{"expression":{"id":12889,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21775:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21780:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21775:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":12888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21767:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12887,"name":"uint256","nodeType":"ElementaryTypeName","src":"21767:7:51","typeDescriptions":{}}},"id":12891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21767:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21749:35:51"},{"assignments":[12894],"declarations":[{"constant":false,"id":12894,"mutability":"mutable","name":"newScr","nameLocation":"21800:6:51","nodeType":"VariableDeclaration","scope":12931,"src":"21792:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12893,"name":"uint256","nodeType":"ElementaryTypeName","src":"21792:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12898,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12895,"name":"origScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"21809:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12896,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"21819:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21809:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21792:36:51"},{"expression":{"id":12921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12899,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21836:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21841:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"21836:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12917,"name":"newScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"21956:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12908,"name":"origScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"21891:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":12904,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21865:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21870:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"21865:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":12903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21857:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12902,"name":"uint256","nodeType":"ElementaryTypeName","src":"21857:7:51","typeDescriptions":{}}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21857:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21884:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"21857:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21857:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":12912,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"21928:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12910,"name":"policyInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12837,"src":"21902:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21921:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"21902:25:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21902:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21857:81:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21856:83:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21949:6:51","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"21856:99:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21856:107:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21973:8:51","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":9352,"src":"21856:125:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":12920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21856:127:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21836:147:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12922,"nodeType":"ExpressionStatement","src":"21836:147:51"},{"expression":{"id":12929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12923,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21991:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21996:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21991:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12926,"name":"newScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"22002:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22009:9:51","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"22002:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22002:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"21991:29:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":12930,"nodeType":"ExpressionStatement","src":"21991:29:51"}]},"id":12932,"nodeType":"IfStatement","src":"21643:384:51","trueBody":{"id":12884,"nodeType":"Block","src":"21679:56:51","statements":[{"expression":{"id":12876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12872,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21687:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21692:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"21687:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21698:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21687:12:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":12877,"nodeType":"ExpressionStatement","src":"21687:12:51"},{"expression":{"id":12882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12878,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"21707:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":12880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21712:12:51","memberName":"interestRate","nodeType":"MemberAccess","referencedDeclaration":11551,"src":"21707:17:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21727:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21707:21:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":12883,"nodeType":"ExpressionStatement","src":"21707:21:51"}]}},{"eventCall":{"arguments":[{"id":12934,"name":"policyInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12837,"src":"22049:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12935,"name":"scrAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"22069:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12933,"name":"SCRUnlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23448,"src":"22037:11:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22037:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12937,"nodeType":"EmitStatement","src":"22032:47:51"},{"expression":{"arguments":[{"id":12939,"name":"adjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12839,"src":"22101:10:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12938,"name":"_discreteChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12971,"src":"22085:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":12940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22085:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12941,"nodeType":"ExpressionStatement","src":"22085:27:51"}]},"functionSelector":"b1081ccf","id":12943,"implemented":true,"kind":"function","modifiers":[{"id":12843,"kind":"modifierInvocation","modifierName":{"id":12842,"name":"onlyBorrower","nameLocations":["21461:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":11619,"src":"21461:12:51"},"nodeType":"ModifierInvocation","src":"21461:12:51"},{"id":12845,"kind":"modifierInvocation","modifierName":{"id":12844,"name":"whenNotPaused","nameLocations":["21474:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"21474:13:51"},"nodeType":"ModifierInvocation","src":"21474:13:51"}],"name":"unlockScr","nameLocation":"21351:9:51","nodeType":"FunctionDefinition","overrides":{"id":12841,"nodeType":"OverrideSpecifier","overrides":[],"src":"21452:8:51"},"parameters":{"id":12840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12835,"mutability":"mutable","name":"scrAmount","nameLocation":"21374:9:51","nodeType":"VariableDeclaration","scope":12943,"src":"21366:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12834,"name":"uint256","nodeType":"ElementaryTypeName","src":"21366:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12837,"mutability":"mutable","name":"policyInterestRate","nameLocation":"21397:18:51","nodeType":"VariableDeclaration","scope":12943,"src":"21389:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12836,"name":"uint256","nodeType":"ElementaryTypeName","src":"21389:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12839,"mutability":"mutable","name":"adjustment","nameLocation":"21428:10:51","nodeType":"VariableDeclaration","scope":12943,"src":"21421:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12838,"name":"int256","nodeType":"ElementaryTypeName","src":"21421:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21360:82:51"},"returnParameters":{"id":12846,"nodeType":"ParameterList","parameters":[],"src":"21488:0:51"},"scope":13571,"src":"21342:775:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[19883],"body":{"id":12953,"nodeType":"Block","src":"22180:36:51","statements":[{"expression":{"arguments":[{"id":12950,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12945,"src":"22202:8:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12949,"name":"_discreteChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12971,"src":"22186:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":12951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22186:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12952,"nodeType":"ExpressionStatement","src":"22186:25:51"}]},"id":12954,"implemented":true,"kind":"function","modifiers":[],"name":"_assetEarnings","nameLocation":"22130:14:51","nodeType":"FunctionDefinition","overrides":{"id":12947,"nodeType":"OverrideSpecifier","overrides":[],"src":"22171:8:51"},"parameters":{"id":12946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12945,"mutability":"mutable","name":"earnings","nameLocation":"22152:8:51","nodeType":"VariableDeclaration","scope":12954,"src":"22145:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12944,"name":"int256","nodeType":"ElementaryTypeName","src":"22145:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22144:17:51"},"returnParameters":{"id":12948,"nodeType":"ParameterList","parameters":[],"src":"22180:0:51"},"scope":13571,"src":"22121:95:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12970,"nodeType":"Block","src":"22269:96:51","statements":[{"expression":{"arguments":[{"id":12962,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12956,"src":"22300:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":12963,"name":"tokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"22308:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22308:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12959,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"22275:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":12961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:14:51","memberName":"discreteChange","nodeType":"MemberAccess","referencedDeclaration":22840,"src":"22275:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_int256_$_t_uint256_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,int256,uint256)"}},"id":12965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12966,"nodeType":"ExpressionStatement","src":"22275:53:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12967,"name":"_updateTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"22334:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22334:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12969,"nodeType":"ExpressionStatement","src":"22334:26:51"}]},"id":12971,"implemented":true,"kind":"function","modifiers":[],"name":"_discreteChange","nameLocation":"22229:15:51","nodeType":"FunctionDefinition","parameters":{"id":12957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12956,"mutability":"mutable","name":"amount","nameLocation":"22252:6:51","nodeType":"VariableDeclaration","scope":12971,"src":"22245:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12955,"name":"int256","nodeType":"ElementaryTypeName","src":"22245:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22244:15:51"},"returnParameters":{"id":12958,"nodeType":"ParameterList","parameters":[],"src":"22269:0:51"},"scope":13571,"src":"22220:145:51","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[23482],"body":{"id":13026,"nodeType":"Block","src":"22471:370:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12986,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"22500:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22508:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"22500:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":12985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22492:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12984,"name":"address","nodeType":"ElementaryTypeName","src":"22492:7:51","typeDescriptions":{}}},"id":12988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22492:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22530:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22522:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12989,"name":"address","nodeType":"ElementaryTypeName","src":"22522:7:51","typeDescriptions":{}}},"id":12992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22522:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22492:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12997,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22569:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},{"id":12998,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12973,"src":"22575:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12999,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12975,"src":"22585:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12994,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"22536:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":12995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22544:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"22536:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"id":12996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22554:14:51","memberName":"acceptsDeposit","nodeType":"MemberAccess","referencedDeclaration":23567,"src":"22536:32:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IEToken_$23549_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IEToken,address,uint256) view external returns (bool)"}},"id":13000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22536:56:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22492:100:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69717569646974792050726f7669646572206e6f742077686974656c6973746564","id":13002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22600:36:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628","typeString":"literal_string \"Liquidity Provider not whitelisted\""},"value":"Liquidity Provider not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628","typeString":"literal_string \"Liquidity Provider not whitelisted\""}],"id":12983,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22477:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22477:165:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13004,"nodeType":"ExpressionStatement","src":"22477:165:51"},{"expression":{"arguments":[{"id":13006,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12973,"src":"22654:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13007,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12975,"src":"22664:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13005,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12277,"src":"22648:5:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22648:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13009,"nodeType":"ExpressionStatement","src":"22648:23:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13010,"name":"_updateTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"22677:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22677:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13012,"nodeType":"ExpressionStatement","src":"22677:26:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13014,"name":"utilizationRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"22717:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22717:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13016,"name":"minUtilizationRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"22738:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22738:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22717:41:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706f7369742072656a6563746564202d205574696c697a6174696f6e2052617465203c206d696e","id":13019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22760:43:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_1cf1ab238fe0c20d0965ab656551a00d67270e19d01bff76f89ab5be56d067ea","typeString":"literal_string \"Deposit rejected - Utilization Rate < min\""},"value":"Deposit rejected - Utilization Rate < min"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1cf1ab238fe0c20d0965ab656551a00d67270e19d01bff76f89ab5be56d067ea","typeString":"literal_string \"Deposit rejected - Utilization Rate < min\""}],"id":13013,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22709:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22709:95:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13021,"nodeType":"ExpressionStatement","src":"22709:95:51"},{"expression":{"arguments":[{"id":13023,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12973,"src":"22827:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13022,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"22817:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22817:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12982,"id":13025,"nodeType":"Return","src":"22810:26:51"}]},"functionSelector":"47e7ef24","id":13027,"implemented":true,"kind":"function","modifiers":[{"id":12979,"kind":"modifierInvocation","modifierName":{"id":12978,"name":"onlyPolicyPool","nameLocations":["22438:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"22438:14:51"},"nodeType":"ModifierInvocation","src":"22438:14:51"}],"name":"deposit","nameLocation":"22378:7:51","nodeType":"FunctionDefinition","overrides":{"id":12977,"nodeType":"OverrideSpecifier","overrides":[],"src":"22429:8:51"},"parameters":{"id":12976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12973,"mutability":"mutable","name":"provider","nameLocation":"22394:8:51","nodeType":"VariableDeclaration","scope":13027,"src":"22386:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12972,"name":"address","nodeType":"ElementaryTypeName","src":"22386:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12975,"mutability":"mutable","name":"amount","nameLocation":"22412:6:51","nodeType":"VariableDeclaration","scope":13027,"src":"22404:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12974,"name":"uint256","nodeType":"ElementaryTypeName","src":"22404:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22385:34:51"},"returnParameters":{"id":12982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13027,"src":"22462:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12980,"name":"uint256","nodeType":"ElementaryTypeName","src":"22462:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22461:9:51"},"scope":13571,"src":"22369:472:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23498],"body":{"id":13060,"nodeType":"Block","src":"22921:199:51","statements":[{"assignments":[13034],"declarations":[{"constant":false,"id":13034,"mutability":"mutable","name":"locked","nameLocation":"22935:6:51","nodeType":"VariableDeclaration","scope":13060,"src":"22927:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13033,"name":"uint256","nodeType":"ElementaryTypeName","src":"22927:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13044,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13041,"name":"liquidityRequirement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12688,"src":"22969:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22969:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13037,"name":"_scr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11557,"src":"22952:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_Scr_$11554_storage","typeString":"struct EToken.Scr storage ref"}},"id":13038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22957:3:51","memberName":"scr","nodeType":"MemberAccess","referencedDeclaration":11549,"src":"22952:8:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":13036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22944:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13035,"name":"uint256","nodeType":"ElementaryTypeName","src":"22944:7:51","typeDescriptions":{}}},"id":13039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22944:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22962:6:51","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"22944:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22944:48:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22927:65:51"},{"assignments":[13046],"declarations":[{"constant":false,"id":13046,"mutability":"mutable","name":"totalSupply_","nameLocation":"23006:12:51","nodeType":"VariableDeclaration","scope":13060,"src":"22998:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13045,"name":"uint256","nodeType":"ElementaryTypeName","src":"22998:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13049,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13047,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11857,"src":"23021:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23021:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22998:36:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13050,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13046,"src":"23044:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13051,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"23060:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23044:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"hexValue":"30","id":13057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23114:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":13032,"id":13058,"nodeType":"Return","src":"23107:8:51"},"id":13059,"nodeType":"IfStatement","src":"23040:75:51","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13053,"name":"totalSupply_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13046,"src":"23075:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13054,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"23090:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23075:21:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13032,"id":13056,"nodeType":"Return","src":"23068:28:51"}}]},"functionSelector":"0600a865","id":13061,"implemented":true,"kind":"function","modifiers":[],"name":"totalWithdrawable","nameLocation":"22854:17:51","nodeType":"FunctionDefinition","overrides":{"id":13029,"nodeType":"OverrideSpecifier","overrides":[],"src":"22894:8:51"},"parameters":{"id":13028,"nodeType":"ParameterList","parameters":[],"src":"22871:2:51"},"returnParameters":{"id":13032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13061,"src":"22912:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13030,"name":"uint256","nodeType":"ElementaryTypeName","src":"22912:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22911:9:51"},"scope":13571,"src":"22845:275:51","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23492],"body":{"id":13147,"nodeType":"Block","src":"23227:895:51","statements":[{"assignments":[13075],"declarations":[{"constant":false,"id":13075,"mutability":"mutable","name":"maxWithdraw","nameLocation":"23609:11:51","nodeType":"VariableDeclaration","scope":13147,"src":"23601:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13074,"name":"uint256","nodeType":"ElementaryTypeName","src":"23601:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" Here we don't check for maxUtilizationRate because that limit only affects locking more capital (`lockScr`), but\n doesn't affects the right of liquidity providers to withdraw their funds.\n The only limit for withdraws is the `totalWithdrawable()` function, that's affected by the relation between the\n scr and the totalSupply.","id":13084,"initialValue":{"arguments":[{"arguments":[{"id":13079,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"23642:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13078,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"23632:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":13080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13081,"name":"totalWithdrawable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"23653:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23653:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13076,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"23623:4:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":13077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23628:3:51","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"23623:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23623:50:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23601:72:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13085,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"23683:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23698:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13087,"name":"uint256","nodeType":"ElementaryTypeName","src":"23698:7:51","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":13086,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"23693:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23693:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":13090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23707:3:51","memberName":"max","nodeType":"MemberAccess","src":"23693:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23683:27:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13096,"nodeType":"IfStatement","src":"23679:53:51","trueBody":{"expression":{"id":13094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13092,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"23712:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13093,"name":"maxWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13075,"src":"23721:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23712:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13095,"nodeType":"ExpressionStatement","src":"23712:20:51"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"23742:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23752:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23742:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13102,"nodeType":"IfStatement","src":"23738:25:51","trueBody":{"expression":{"hexValue":"30","id":13100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23762:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":13072,"id":13101,"nodeType":"Return","src":"23755:8:51"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13104,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"23777:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13105,"name":"maxWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13075,"src":"23787:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23777:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616d6f756e74203e206d617820776974686472617761626c65","id":13107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23800:27:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_77f7550e99cfae6f48d896697b1fd5549402978fb8c71ca77dd0631d76531f0d","typeString":"literal_string \"amount > max withdrawable\""},"value":"amount > max withdrawable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77f7550e99cfae6f48d896697b1fd5549402978fb8c71ca77dd0631d76531f0d","typeString":"literal_string \"amount > max withdrawable\""}],"id":13103,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23769:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23769:59:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13109,"nodeType":"ExpressionStatement","src":"23769:59:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13113,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"23857:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"23857:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":13112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23849:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13111,"name":"address","nodeType":"ElementaryTypeName","src":"23849:7:51","typeDescriptions":{}}},"id":13115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23849:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23887:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23879:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13116,"name":"address","nodeType":"ElementaryTypeName","src":"23879:7:51","typeDescriptions":{}}},"id":13119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23879:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23849:40:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13124,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23929:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}},{"id":13125,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"23935:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"23945:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13121,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"23893:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23901:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"23893:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"id":13123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23911:17:51","memberName":"acceptsWithdrawal","nodeType":"MemberAccess","referencedDeclaration":23595,"src":"23893:35:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IEToken_$23549_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IEToken,address,uint256) view external returns (bool)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23893:59:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23849:103:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69717569646974792050726f7669646572206e6f742077686974656c6973746564","id":13129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23960:36:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628","typeString":"literal_string \"Liquidity Provider not whitelisted\""},"value":"Liquidity Provider not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628","typeString":"literal_string \"Liquidity Provider not whitelisted\""}],"id":13110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23834:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23834:168:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13131,"nodeType":"ExpressionStatement","src":"23834:168:51"},{"expression":{"arguments":[{"id":13133,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"24014:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"24024:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13132,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12344,"src":"24008:5:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24008:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13136,"nodeType":"ExpressionStatement","src":"24008:23:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13137,"name":"_updateTokenInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"24037:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24037:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13139,"nodeType":"ExpressionStatement","src":"24037:26:51"},{"expression":{"arguments":[{"id":13141,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13063,"src":"24081:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13142,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"24091:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13140,"name":"_transferTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19863,"src":"24069:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24069:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13144,"nodeType":"ExpressionStatement","src":"24069:29:51"},{"expression":{"id":13145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"24111:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13072,"id":13146,"nodeType":"Return","src":"24104:13:51"}]},"functionSelector":"f3fef3a3","id":13148,"implemented":true,"kind":"function","modifiers":[{"id":13069,"kind":"modifierInvocation","modifierName":{"id":13068,"name":"onlyPolicyPool","nameLocations":["23194:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"23194:14:51"},"nodeType":"ModifierInvocation","src":"23194:14:51"}],"name":"withdraw","nameLocation":"23133:8:51","nodeType":"FunctionDefinition","overrides":{"id":13067,"nodeType":"OverrideSpecifier","overrides":[],"src":"23185:8:51"},"parameters":{"id":13066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13063,"mutability":"mutable","name":"provider","nameLocation":"23150:8:51","nodeType":"VariableDeclaration","scope":13148,"src":"23142:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13062,"name":"address","nodeType":"ElementaryTypeName","src":"23142:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13065,"mutability":"mutable","name":"amount","nameLocation":"23168:6:51","nodeType":"VariableDeclaration","scope":13148,"src":"23160:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13064,"name":"uint256","nodeType":"ElementaryTypeName","src":"23160:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23141:34:51"},"returnParameters":{"id":13072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13148,"src":"23218:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13070,"name":"uint256","nodeType":"ElementaryTypeName","src":"23218:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23217:9:51"},"scope":13571,"src":"23124:998:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23504],"body":{"id":13190,"nodeType":"Block","src":"24198:246:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13157,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13150,"src":"24212:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24232:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24224:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13158,"name":"address","nodeType":"ElementaryTypeName","src":"24224:7:51","typeDescriptions":{}}},"id":13161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24224:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24212:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20426f72726f7765722063616e6e6f7420626520746865207a65726f2061646472657373","id":13163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24236:45:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1","typeString":"literal_string \"EToken: Borrower cannot be the zero address\""},"value":"EToken: Borrower cannot be the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1","typeString":"literal_string \"EToken: Borrower cannot be the zero address\""}],"id":13156,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24204:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24204:78:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13165,"nodeType":"ExpressionStatement","src":"24204:78:51"},{"assignments":[13170],"declarations":[{"constant":false,"id":13170,"mutability":"mutable","name":"loan","nameLocation":"24320:4:51","nodeType":"VariableDeclaration","scope":13190,"src":"24288:36:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":13169,"nodeType":"UserDefinedTypeName","pathNode":{"id":13168,"name":"TimeScaled.ScaledAmount","nameLocations":["24288:10:51","24299:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"24288:23:51"},"referencedDeclaration":22464,"src":"24288:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"id":13174,"initialValue":{"baseExpression":{"id":13171,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"24327:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":13173,"indexExpression":{"id":13172,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13150,"src":"24334:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24327:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24288:55:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":13178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13175,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"24353:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24358:5:51","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"24353:10:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24367:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24353:15:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13189,"nodeType":"IfStatement","src":"24349:91:51","trueBody":{"id":13188,"nodeType":"Block","src":"24370:70:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13179,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"24378:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24383:4:51","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":22635,"src":"24378:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer)"}},"id":13182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24378:11:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13183,"nodeType":"ExpressionStatement","src":"24378:11:51"},{"eventCall":{"arguments":[{"id":13185,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13150,"src":"24424:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13184,"name":"InternalBorrowerAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"24402:21:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24402:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13187,"nodeType":"EmitStatement","src":"24397:36:51"}]}}]},"functionSelector":"e3a8e29c","id":13191,"implemented":true,"kind":"function","modifiers":[{"id":13154,"kind":"modifierInvocation","modifierName":{"id":13153,"name":"onlyPolicyPool","nameLocations":["24183:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"24183:14:51"},"nodeType":"ModifierInvocation","src":"24183:14:51"}],"name":"addBorrower","nameLocation":"24135:11:51","nodeType":"FunctionDefinition","overrides":{"id":13152,"nodeType":"OverrideSpecifier","overrides":[],"src":"24174:8:51"},"parameters":{"id":13151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13150,"mutability":"mutable","name":"borrower","nameLocation":"24155:8:51","nodeType":"VariableDeclaration","scope":13191,"src":"24147:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13149,"name":"address","nodeType":"ElementaryTypeName","src":"24147:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24146:18:51"},"returnParameters":{"id":13155,"nodeType":"ParameterList","parameters":[],"src":"24198:0:51"},"scope":13571,"src":"24126:318:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23510],"body":{"id":13225,"nodeType":"Block","src":"24523:224:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13200,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"24537:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24557:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24549:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13201,"name":"address","nodeType":"ElementaryTypeName","src":"24549:7:51","typeDescriptions":{}}},"id":13204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24549:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24537:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20426f72726f7765722063616e6e6f7420626520746865207a65726f2061646472657373","id":13206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24561:45:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1","typeString":"literal_string \"EToken: Borrower cannot be the zero address\""},"value":"EToken: Borrower cannot be the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1","typeString":"literal_string \"EToken: Borrower cannot be the zero address\""}],"id":13199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24529:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24529:78:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13208,"nodeType":"ExpressionStatement","src":"24529:78:51"},{"assignments":[13210],"declarations":[{"constant":false,"id":13210,"mutability":"mutable","name":"defaultedDebt","nameLocation":"24621:13:51","nodeType":"VariableDeclaration","scope":13225,"src":"24613:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13209,"name":"uint256","nodeType":"ElementaryTypeName","src":"24613:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13214,"initialValue":{"arguments":[{"id":13212,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"24645:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13211,"name":"getLoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13407,"src":"24637:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":13213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24637:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24613:41:51"},{"expression":{"id":13218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"24660:23:51","subExpression":{"baseExpression":{"id":13215,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"24667:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":13217,"indexExpression":{"id":13216,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"24674:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24667:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13219,"nodeType":"ExpressionStatement","src":"24660:23:51"},{"eventCall":{"arguments":[{"id":13221,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"24718:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13222,"name":"defaultedDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13210,"src":"24728:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13220,"name":"InternalBorrowerRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11604,"src":"24694:23:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24694:48:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13224,"nodeType":"EmitStatement","src":"24689:53:51"}]},"functionSelector":"76c7fc55","id":13226,"implemented":true,"kind":"function","modifiers":[{"id":13197,"kind":"modifierInvocation","modifierName":{"id":13196,"name":"onlyPolicyPool","nameLocations":["24508:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"24508:14:51"},"nodeType":"ModifierInvocation","src":"24508:14:51"}],"name":"removeBorrower","nameLocation":"24457:14:51","nodeType":"FunctionDefinition","overrides":{"id":13195,"nodeType":"OverrideSpecifier","overrides":[],"src":"24499:8:51"},"parameters":{"id":13194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13193,"mutability":"mutable","name":"borrower","nameLocation":"24480:8:51","nodeType":"VariableDeclaration","scope":13226,"src":"24472:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13192,"name":"address","nodeType":"ElementaryTypeName","src":"24472:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24471:18:51"},"returnParameters":{"id":13198,"nodeType":"ParameterList","parameters":[],"src":"24523:0:51"},"scope":13571,"src":"24448:299:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13239,"nodeType":"Block","src":"25052:89:51","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13232,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11857,"src":"25065:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25065:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13234,"name":"_tsScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"25081:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":13235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25091:8:51","memberName":"minValue","nodeType":"MemberAccess","referencedDeclaration":22862,"src":"25081:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer) view returns (uint256)"}},"id":13236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25081:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25065:36:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13231,"id":13238,"nodeType":"Return","src":"25058:43:51"}]},"documentation":{"id":13227,"nodeType":"StructuredDocumentation","src":"24751:235:51","text":" @dev Returns the maximum negative adjustment (discrete loss) the eToken can accept without breaking consistency.\n      The limit comes from limits in the internal scale that takes scaledTotalSupply() to totalSupply()"},"functionSelector":"16db000f","id":13240,"implemented":true,"kind":"function","modifiers":[],"name":"maxNegativeAdjustment","nameLocation":"24998:21:51","nodeType":"FunctionDefinition","parameters":{"id":13228,"nodeType":"ParameterList","parameters":[],"src":"25019:2:51"},"returnParameters":{"id":13231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13240,"src":"25043:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13229,"name":"uint256","nodeType":"ElementaryTypeName","src":"25043:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25042:9:51"},"scope":13571,"src":"24989:152:51","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23520],"body":{"id":13315,"nodeType":"Block","src":"25276:415:51","statements":[{"assignments":[13255],"declarations":[{"constant":false,"id":13255,"mutability":"mutable","name":"amountAsked","nameLocation":"25290:11:51","nodeType":"VariableDeclaration","scope":13315,"src":"25282:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13254,"name":"uint256","nodeType":"ElementaryTypeName","src":"25282:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13257,"initialValue":{"id":13256,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25304:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25282:28:51"},{"expression":{"id":13265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13258,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25316:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13261,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25334:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13262,"name":"maxNegativeAdjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"25342:21:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25342:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13259,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"25325:4:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25330:3:51","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"25325:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25325:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25316:50:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13266,"nodeType":"ExpressionStatement","src":"25316:50:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13267,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25376:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25386:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25376:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13272,"nodeType":"IfStatement","src":"25372:35:51","trueBody":{"expression":{"id":13270,"name":"amountAsked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13255,"src":"25396:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13253,"id":13271,"nodeType":"Return","src":"25389:18:51"}},{"assignments":[13277],"declarations":[{"constant":false,"id":13277,"mutability":"mutable","name":"loan","nameLocation":"25445:4:51","nodeType":"VariableDeclaration","scope":13315,"src":"25413:36:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":13276,"nodeType":"UserDefinedTypeName","pathNode":{"id":13275,"name":"TimeScaled.ScaledAmount","nameLocations":["25413:10:51","25424:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"25413:23:51"},"referencedDeclaration":22464,"src":"25413:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"id":13282,"initialValue":{"baseExpression":{"id":13278,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"25452:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":13281,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13279,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"25459:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25459:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25452:20:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25413:59:51"},{"expression":{"arguments":[{"id":13286,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25487:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13287,"name":"internalLoanInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"25495:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25495:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13283,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13277,"src":"25478:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25483:3:51","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":22719,"src":"25478:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25478:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13290,"nodeType":"ExpressionStatement","src":"25478:44:51"},{"expression":{"arguments":[{"id":13296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"25544:15:51","subExpression":{"arguments":[{"id":13294,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25552:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25545:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":13292,"name":"int256","nodeType":"ElementaryTypeName","src":"25545:6:51","typeDescriptions":{}}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25545:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":13291,"name":"_discreteChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12971,"src":"25528:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":13297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25528:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13298,"nodeType":"ExpressionStatement","src":"25528:32:51"},{"expression":{"arguments":[{"id":13300,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13244,"src":"25578:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13301,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25588:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13299,"name":"_transferTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19863,"src":"25566:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25566:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13303,"nodeType":"ExpressionStatement","src":"25566:29:51"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13305,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"25619:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25619:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13307,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25633:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13308,"name":"amountAsked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13255,"src":"25641:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13304,"name":"InternalLoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11588,"src":"25606:12:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":13309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25606:47:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13310,"nodeType":"EmitStatement","src":"25601:52:51"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13311,"name":"amountAsked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13255,"src":"25666:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13312,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13242,"src":"25680:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25666:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13253,"id":13314,"nodeType":"Return","src":"25659:27:51"}]},"functionSelector":"c3df9dac","id":13316,"implemented":true,"kind":"function","modifiers":[{"id":13248,"kind":"modifierInvocation","modifierName":{"id":13247,"name":"onlyBorrower","nameLocations":["25231:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":11619,"src":"25231:12:51"},"nodeType":"ModifierInvocation","src":"25231:12:51"},{"id":13250,"kind":"modifierInvocation","modifierName":{"id":13249,"name":"whenNotPaused","nameLocations":["25244:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25244:13:51"},"nodeType":"ModifierInvocation","src":"25244:13:51"}],"name":"internalLoan","nameLocation":"25154:12:51","nodeType":"FunctionDefinition","overrides":{"id":13246,"nodeType":"OverrideSpecifier","overrides":[],"src":"25222:8:51"},"parameters":{"id":13245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13242,"mutability":"mutable","name":"amount","nameLocation":"25180:6:51","nodeType":"VariableDeclaration","scope":13316,"src":"25172:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13241,"name":"uint256","nodeType":"ElementaryTypeName","src":"25172:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13244,"mutability":"mutable","name":"receiver","nameLocation":"25200:8:51","nodeType":"VariableDeclaration","scope":13316,"src":"25192:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13243,"name":"address","nodeType":"ElementaryTypeName","src":"25192:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25166:46:51"},"returnParameters":{"id":13253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13316,"src":"25267:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13251,"name":"uint256","nodeType":"ElementaryTypeName","src":"25267:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25266:9:51"},"scope":13571,"src":"25145:546:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23528],"body":{"id":13382,"nodeType":"Block","src":"25782:512:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13327,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"25796:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25805:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25796:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45546f6b656e3a20616d6f756e742073686f756c642062652067726561746572207468616e207a65726f2e","id":13330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25808:45:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_babc3112dd6ff1c8e9dfffb357f2e4b17a7ff714d277263ea98972627be8be19","typeString":"literal_string \"EToken: amount should be greater than zero.\""},"value":"EToken: amount should be greater than zero."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_babc3112dd6ff1c8e9dfffb357f2e4b17a7ff714d277263ea98972627be8be19","typeString":"literal_string \"EToken: amount should be greater than zero.\""}],"id":13326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25788:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25788:66:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13332,"nodeType":"ExpressionStatement","src":"25788:66:51"},{"assignments":[13337],"declarations":[{"constant":false,"id":13337,"mutability":"mutable","name":"loan","nameLocation":"25948:4:51","nodeType":"VariableDeclaration","scope":13382,"src":"25916:36:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":13336,"nodeType":"UserDefinedTypeName","pathNode":{"id":13335,"name":"TimeScaled.ScaledAmount","nameLocations":["25916:10:51","25927:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"25916:23:51"},"referencedDeclaration":22464,"src":"25916:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"id":13341,"initialValue":{"baseExpression":{"id":13338,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"25955:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":13340,"indexExpression":{"id":13339,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13320,"src":"25962:10:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25955:18:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25916:57:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":13346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13343,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13337,"src":"25987:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25992:5:51","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"25987:10:51","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26001:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25987:15:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f742061207265676973746572656420626f72726f776572","id":13347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26004:27:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_660103f2c97657862acfcfb2c2e75a895efcedaeb2e8c4df1f6eced083faf0ec","typeString":"literal_string \"Not a registered borrower\""},"value":"Not a registered borrower"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_660103f2c97657862acfcfb2c2e75a895efcedaeb2e8c4df1f6eced083faf0ec","typeString":"literal_string \"Not a registered borrower\""}],"id":13342,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25979:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25979:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13349,"nodeType":"ExpressionStatement","src":"25979:53:51"},{"expression":{"arguments":[{"id":13353,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"26047:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13354,"name":"internalLoanInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"26055:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26055:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13350,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13337,"src":"26038:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26043:3:51","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":22766,"src":"26038:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26038:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13357,"nodeType":"ExpressionStatement","src":"26038:44:51"},{"expression":{"arguments":[{"arguments":[{"id":13361,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"26111:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26104:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":13359,"name":"int256","nodeType":"ElementaryTypeName","src":"26104:6:51","typeDescriptions":{}}},"id":13362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26104:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":13358,"name":"_discreteChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12971,"src":"26088:15:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":13363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26088:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13364,"nodeType":"ExpressionStatement","src":"26088:31:51"},{"eventCall":{"arguments":[{"id":13366,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13320,"src":"26149:10:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13367,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"26161:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13365,"name":"InternalLoanRepaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11594,"src":"26130:18:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26130:38:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13369,"nodeType":"EmitStatement","src":"26125:43:51"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13373,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"26253:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26253:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13377,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26275:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EToken_$13571","typeString":"contract EToken"}],"id":13376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26267:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13375,"name":"address","nodeType":"ElementaryTypeName","src":"26267:7:51","typeDescriptions":{}}},"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26267:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13379,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13318,"src":"26282:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13370,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"26225:8:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":13371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26225:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":13372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26236:16:51","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"26225:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":13380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26225:64:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13381,"nodeType":"ExpressionStatement","src":"26225:64:51"}]},"functionSelector":"918344d3","id":13383,"implemented":true,"kind":"function","modifiers":[{"id":13324,"kind":"modifierInvocation","modifierName":{"id":13323,"name":"whenNotPaused","nameLocations":["25768:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25768:13:51"},"nodeType":"ModifierInvocation","src":"25768:13:51"}],"name":"repayLoan","nameLocation":"25704:9:51","nodeType":"FunctionDefinition","overrides":{"id":13322,"nodeType":"OverrideSpecifier","overrides":[],"src":"25759:8:51"},"parameters":{"id":13321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13318,"mutability":"mutable","name":"amount","nameLocation":"25722:6:51","nodeType":"VariableDeclaration","scope":13383,"src":"25714:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13317,"name":"uint256","nodeType":"ElementaryTypeName","src":"25714:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13320,"mutability":"mutable","name":"onBehalfOf","nameLocation":"25738:10:51","nodeType":"VariableDeclaration","scope":13383,"src":"25730:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13319,"name":"address","nodeType":"ElementaryTypeName","src":"25730:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25713:36:51"},"returnParameters":{"id":13325,"nodeType":"ParameterList","parameters":[],"src":"25782:0:51"},"scope":13571,"src":"25695:599:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23536],"body":{"id":13406,"nodeType":"Block","src":"26380:127:51","statements":[{"assignments":[13395],"declarations":[{"constant":false,"id":13395,"mutability":"mutable","name":"loan","nameLocation":"26418:4:51","nodeType":"VariableDeclaration","scope":13406,"src":"26386:36:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":13394,"nodeType":"UserDefinedTypeName","pathNode":{"id":13393,"name":"TimeScaled.ScaledAmount","nameLocations":["26386:10:51","26397:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"26386:23:51"},"referencedDeclaration":22464,"src":"26386:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"id":13399,"initialValue":{"baseExpression":{"id":13396,"name":"_loans","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"26425:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ScaledAmount_$22464_storage_$","typeString":"mapping(address => struct TimeScaled.ScaledAmount storage ref)"}},"id":13398,"indexExpression":{"id":13397,"name":"borrower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13385,"src":"26432:8:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26425:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26386:55:51"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13402,"name":"internalLoanInterestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13418,"src":"26475:24:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26475:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13400,"name":"loan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13395,"src":"26454:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":13401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26459:15:51","memberName":"getScaledAmount","nodeType":"MemberAccess","referencedDeclaration":22606,"src":"26454:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":13404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26454:48:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13390,"id":13405,"nodeType":"Return","src":"26447:55:51"}]},"functionSelector":"33481fc9","id":13407,"implemented":true,"kind":"function","modifiers":[],"name":"getLoan","nameLocation":"26307:7:51","nodeType":"FunctionDefinition","overrides":{"id":13387,"nodeType":"OverrideSpecifier","overrides":[],"src":"26353:8:51"},"parameters":{"id":13386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13385,"mutability":"mutable","name":"borrower","nameLocation":"26323:8:51","nodeType":"VariableDeclaration","scope":13407,"src":"26315:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13384,"name":"address","nodeType":"ElementaryTypeName","src":"26315:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26314:18:51"},"returnParameters":{"id":13390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13407,"src":"26371:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13388,"name":"uint256","nodeType":"ElementaryTypeName","src":"26371:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26370:9:51"},"scope":13571,"src":"26298:209:51","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":13417,"nodeType":"Block","src":"26577:59:51","statements":[{"expression":{"arguments":[{"expression":{"id":13413,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"26598:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26606:24:51","memberName":"internalLoanInterestRate","nodeType":"MemberAccess","referencedDeclaration":11570,"src":"26598:32:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13412,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12623,"src":"26590:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":13415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26590:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13411,"id":13416,"nodeType":"Return","src":"26583:48:51"}]},"functionSelector":"cda4bcc2","id":13418,"implemented":true,"kind":"function","modifiers":[],"name":"internalLoanInterestRate","nameLocation":"26520:24:51","nodeType":"FunctionDefinition","parameters":{"id":13408,"nodeType":"ParameterList","parameters":[],"src":"26544:2:51"},"returnParameters":{"id":13411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13418,"src":"26568:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13409,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26567:9:51"},"scope":13571,"src":"26511:125:51","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":13503,"nodeType":"Block","src":"26741:1047:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"},"id":13432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13429,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"26751:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13430,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23434,"src":"26760:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23434_$","typeString":"type(enum IEToken.Parameter)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26770:20:51","memberName":"liquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":23430,"src":"26760:30:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"src":"26751:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"},"id":13445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13442,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"26865:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13443,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23434,"src":"26874:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23434_$","typeString":"type(enum IEToken.Parameter)"}},"id":13444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26884:18:51","memberName":"minUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":23431,"src":"26874:28:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"src":"26865:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"},"id":13458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13455,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"26975:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13456,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23434,"src":"26984:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23434_$","typeString":"type(enum IEToken.Parameter)"}},"id":13457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26994:18:51","memberName":"maxUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":23432,"src":"26984:28:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"src":"26975:37:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13468,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"27085:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13469,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23434,"src":"27094:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23434_$","typeString":"type(enum IEToken.Parameter)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27104:24:51","memberName":"internalLoanInterestRate","nodeType":"MemberAccess","referencedDeclaration":23433,"src":"27094:34:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"src":"27085:43:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13481,"nodeType":"IfStatement","src":"27081:518:51","trueBody":{"id":13480,"nodeType":"Block","src":"27130:469:51","statements":[{"expression":{"id":13478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13472,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"27540:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27548:24:51","memberName":"internalLoanInterestRate","nodeType":"MemberAccess","referencedDeclaration":11570,"src":"27540:32:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13476,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13423,"src":"27583:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13475,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"27575:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":13477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27575:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"27540:52:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":13479,"nodeType":"ExpressionStatement","src":"27540:52:51"}]}},"id":13482,"nodeType":"IfStatement","src":"26971:628:51","trueBody":{"id":13467,"nodeType":"Block","src":"27014:61:51","statements":[{"expression":{"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13459,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"27022:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27030:18:51","memberName":"maxUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11568,"src":"27022:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13463,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13423,"src":"27059:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13462,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"27051:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":13464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27051:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"27022:46:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":13466,"nodeType":"ExpressionStatement","src":"27022:46:51"}]}},"id":13483,"nodeType":"IfStatement","src":"26861:738:51","trueBody":{"id":13454,"nodeType":"Block","src":"26904:61:51","statements":[{"expression":{"id":13452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13446,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"26912:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"26920:18:51","memberName":"minUtilizationRate","nodeType":"MemberAccess","referencedDeclaration":11566,"src":"26912:26:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13450,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13423,"src":"26949:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13449,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"26941:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":13451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26941:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"26912:46:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":13453,"nodeType":"ExpressionStatement","src":"26912:46:51"}]}},"id":13484,"nodeType":"IfStatement","src":"26747:852:51","trueBody":{"id":13441,"nodeType":"Block","src":"26792:63:51","statements":[{"expression":{"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13433,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"26800:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"26808:20:51","memberName":"liquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":11564,"src":"26800:28:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13437,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13423,"src":"26839:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13436,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12638,"src":"26831:7:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":13438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26831:17:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"26800:48:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":13440,"nodeType":"ExpressionStatement","src":"26800:48:51"}]}},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"expression":{"id":13490,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"27679:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":13491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27694:17:51","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"27679:32:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":13492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27712:23:51","memberName":"setLiquidityRequirement","nodeType":"MemberAccess","referencedDeclaration":23279,"src":"27679:56:51","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}],"id":13489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27671:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13488,"name":"uint256","nodeType":"ElementaryTypeName","src":"27671:7:51","typeDescriptions":{}}},"id":13493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27671:65:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":13496,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"27747:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}],"id":13495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27739:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13494,"name":"uint256","nodeType":"ElementaryTypeName","src":"27739:7:51","typeDescriptions":{}}},"id":13497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27739:14:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27671:82:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13486,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"27629:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":13487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27644:17:51","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"27629:32:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27629:132:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":13500,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13423,"src":"27769:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13485,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"27604:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27604:179:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13502,"nodeType":"ExpressionStatement","src":"27604:179:51"}]},"functionSelector":"c1cca2b3","id":13504,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13426,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"26728:11:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13427,"kind":"modifierInvocation","modifierName":{"id":13425,"name":"onlyGlobalOrComponentRole","nameLocations":["26702:25:51"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"26702:25:51"},"nodeType":"ModifierInvocation","src":"26702:38:51"}],"name":"setParam","nameLocation":"26649:8:51","nodeType":"FunctionDefinition","parameters":{"id":13424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13421,"mutability":"mutable","name":"param","nameLocation":"26668:5:51","nodeType":"VariableDeclaration","scope":13504,"src":"26658:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"},"typeName":{"id":13420,"nodeType":"UserDefinedTypeName","pathNode":{"id":13419,"name":"Parameter","nameLocations":["26658:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":23434,"src":"26658:9:51"},"referencedDeclaration":23434,"src":"26658:9:51","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23434","typeString":"enum IEToken.Parameter"}},"visibility":"internal"},{"constant":false,"id":13423,"mutability":"mutable","name":"newValue","nameLocation":"26683:8:51","nodeType":"VariableDeclaration","scope":13504,"src":"26675:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13422,"name":"uint256","nodeType":"ElementaryTypeName","src":"26675:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26657:35:51"},"returnParameters":{"id":13428,"nodeType":"ParameterList","parameters":[],"src":"26741:0:51"},"scope":13571,"src":"26640:1148:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13554,"nodeType":"Block","src":"27905:324:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13517,"name":"lpWhitelist_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"27934:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":13516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27926:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13515,"name":"address","nodeType":"ElementaryTypeName","src":"27926:7:51","typeDescriptions":{}}},"id":13518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27926:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27959:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27951:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13519,"name":"address","nodeType":"ElementaryTypeName","src":"27951:7:51","typeDescriptions":{}}},"id":13522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27951:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27926:35:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"id":13533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":13527,"name":"lpWhitelist_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"27994:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":13526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27986:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13525,"name":"address","nodeType":"ElementaryTypeName","src":"27986:7:51","typeDescriptions":{}}},"id":13528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13524,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"27965:20:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}},"id":13529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27965:43:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28009:10:51","memberName":"policyPool","nodeType":"MemberAccess","referencedDeclaration":23822,"src":"27965:54:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPolicyPool_$23806_$","typeString":"function () view external returns (contract IPolicyPool)"}},"id":13531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27965:56:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13532,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"28025:11:51","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"src":"27965:71:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27926:110:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320506f6c696379506f6f6c","id":13535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28044:41:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_03a1e1b89e58377f2c0f6a93d779f49357e1a1620aec4af8836f21e8fdf00fbd","typeString":"literal_string \"Component not linked to this PolicyPool\""},"value":"Component not linked to this PolicyPool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03a1e1b89e58377f2c0f6a93d779f49357e1a1620aec4af8836f21e8fdf00fbd","typeString":"literal_string \"Component not linked to this PolicyPool\""}],"id":13514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27911:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27911:180:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13537,"nodeType":"ExpressionStatement","src":"27911:180:51"},{"expression":{"id":13542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13538,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"28097:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28105:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"28097:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13541,"name":"lpWhitelist_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"28117:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"src":"28097:32:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"id":13543,"nodeType":"ExpressionStatement","src":"28097:32:51"},{"expression":{"arguments":[{"expression":{"expression":{"id":13545,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"28153:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":13546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28168:17:51","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"28153:32:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":13547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28186:14:51","memberName":"setLPWhitelist","nodeType":"MemberAccess","referencedDeclaration":23278,"src":"28153:47:51","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"arguments":[{"id":13550,"name":"lpWhitelist_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"28210:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}],"id":13549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28202:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13548,"name":"address","nodeType":"ElementaryTypeName","src":"28202:7:51","typeDescriptions":{}}},"id":13551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28202:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13544,"name":"_componentChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"28135:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_address_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,address)"}},"id":13552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28135:89:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13553,"nodeType":"ExpressionStatement","src":"28135:89:51"}]},"functionSelector":"854cff2f","id":13555,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13510,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"27877:13:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13511,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"27892:11:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13512,"kind":"modifierInvocation","modifierName":{"id":13509,"name":"onlyGlobalOrComponentRole2","nameLocations":["27850:26:51"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"27850:26:51"},"nodeType":"ModifierInvocation","src":"27850:54:51"}],"name":"setWhitelist","nameLocation":"27801:12:51","nodeType":"FunctionDefinition","parameters":{"id":13508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13507,"mutability":"mutable","name":"lpWhitelist_","nameLocation":"27827:12:51","nodeType":"VariableDeclaration","scope":13555,"src":"27814:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"},"typeName":{"id":13506,"nodeType":"UserDefinedTypeName","pathNode":{"id":13505,"name":"ILPWhitelist","nameLocations":["27814:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":23596,"src":"27814:12:51"},"referencedDeclaration":23596,"src":"27814:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"visibility":"internal"}],"src":"27813:27:51"},"returnParameters":{"id":13513,"nodeType":"ParameterList","parameters":[],"src":"27905:0:51"},"scope":13571,"src":"27792:437:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13564,"nodeType":"Block","src":"28291:35:51","statements":[{"expression":{"expression":{"id":13561,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"28304:7:51","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$11574_storage","typeString":"struct EToken.PackedParams storage ref"}},"id":13562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:9:51","memberName":"whitelist","nodeType":"MemberAccess","referencedDeclaration":11573,"src":"28304:17:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"functionReturnParameters":13560,"id":13563,"nodeType":"Return","src":"28297:24:51"}]},"functionSelector":"93e59dc1","id":13565,"implemented":true,"kind":"function","modifiers":[],"name":"whitelist","nameLocation":"28242:9:51","nodeType":"FunctionDefinition","parameters":{"id":13556,"nodeType":"ParameterList","parameters":[],"src":"28251:2:51"},"returnParameters":{"id":13560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13565,"src":"28277:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"},"typeName":{"id":13558,"nodeType":"UserDefinedTypeName","pathNode":{"id":13557,"name":"ILPWhitelist","nameLocations":["28277:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":23596,"src":"28277:12:51"},"referencedDeclaration":23596,"src":"28277:12:51","typeDescriptions":{"typeIdentifier":"t_contract$_ILPWhitelist_$23596","typeString":"contract ILPWhitelist"}},"visibility":"internal"}],"src":"28276:14:51"},"scope":13571,"src":"28233:93:51","stateMutability":"view","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":13566,"nodeType":"StructuredDocumentation","src":"28330:246:51","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":13570,"mutability":"mutable","name":"__gap","nameLocation":"28599:5:51","nodeType":"VariableDeclaration","scope":13571,"src":"28579:25:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$41_storage","typeString":"uint256[41]"},"typeName":{"baseType":{"id":13567,"name":"uint256","nodeType":"ElementaryTypeName","src":"28579:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13569,"length":{"hexValue":"3431","id":13568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28587:2:51","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"nodeType":"ArrayTypeName","src":"28579:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$41_storage_ptr","typeString":"uint256[41]"}},"visibility":"private"}],"scope":13572,"src":"1545:27062:51","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,5348,5357,11588,11594,11598,11604,17740,17747,23441,23448]}],"src":"39:28569:51"},"id":51},"contracts/FullSignedBucketRiskModule.sol":{"ast":{"absolutePath":"contracts/FullSignedBucketRiskModule.sol","exportedSymbols":{"ECDSA":[7677],"FullSignedBucketRiskModule":[13924],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Policy":[15439],"SignedBucketRiskModule":[22036]},"id":13925,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":13573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:52"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":13575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13925,"sourceUnit":7678,"src":"64:75:52","symbolAliases":[{"foreign":{"id":13574,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"72:5:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":13577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13925,"sourceUnit":23807,"src":"141:57:52","symbolAliases":[{"foreign":{"id":13576,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"149:11:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":13579,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13925,"sourceUnit":23887,"src":"199:67:52","symbolAliases":[{"foreign":{"id":13578,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"207:16:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":13581,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13925,"sourceUnit":15440,"src":"267:36:52","symbolAliases":[{"foreign":{"id":13580,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"275:6:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/SignedBucketRiskModule.sol","file":"./SignedBucketRiskModule.sol","id":13583,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13925,"sourceUnit":22037,"src":"304:68:52","symbolAliases":[{"foreign":{"id":13582,"name":"SignedBucketRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22036,"src":"312:22:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13585,"name":"SignedBucketRiskModule","nameLocations":["787:22:52"],"nodeType":"IdentifierPath","referencedDeclaration":22036,"src":"787:22:52"},"id":13586,"nodeType":"InheritanceSpecifier","src":"787:22:52"}],"canonicalName":"FullSignedBucketRiskModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":13584,"nodeType":"StructuredDocumentation","src":"374:373:52","text":" @title FullSignedBucket Risk Module\n @dev Variation of SignedBucketRiskModule that also supports the creation of policies receiving all the\nparameters that affect the price (not just the lossProb). And validates the signature.\nIt requires a new permission, the FULL_PRICER_ROLE.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":13924,"linearizedBaseContracts":[13924,22036,21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"FullSignedBucketRiskModule","nameLocation":"757:26:52","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":13591,"mutability":"constant","name":"FULL_PRICER_ROLE","nameLocation":"840:16:52","nodeType":"VariableDeclaration","scope":13924,"src":"814:74:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"814:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"46554c4c5f5052494345525f524f4c45","id":13589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"869:18:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d8f7a4041cf31e35e40569643a02f20f7706179aaa0b7764c077c3a607b275","typeString":"literal_string \"FULL_PRICER_ROLE\""},"value":"FULL_PRICER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5d8f7a4041cf31e35e40569643a02f20f7706179aaa0b7764c077c3a607b275","typeString":"literal_string \"FULL_PRICER_ROLE\""}],"id":13588,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"859:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"859:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":13605,"nodeType":"Block","src":"1082:2:52","statements":[]},"documentation":{"id":13592,"nodeType":"StructuredDocumentation","src":"893:48:52","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":13606,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":13601,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13595,"src":"1051:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},{"id":13602,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13598,"src":"1064:16:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"id":13603,"kind":"baseConstructorSpecifier","modifierName":{"id":13600,"name":"SignedBucketRiskModule","nameLocations":["1028:22:52"],"nodeType":"IdentifierPath","referencedDeclaration":22036,"src":"1028:22:52"},"nodeType":"ModifierInvocation","src":"1028:53:52"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13595,"mutability":"mutable","name":"policyPool_","nameLocation":"973:11:52","nodeType":"VariableDeclaration","scope":13606,"src":"961:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":13594,"nodeType":"UserDefinedTypeName","pathNode":{"id":13593,"name":"IPolicyPool","nameLocations":["961:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"961:11:52"},"referencedDeclaration":23806,"src":"961:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":13598,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"1007:16:52","nodeType":"VariableDeclaration","scope":13606,"src":"990:33:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":13597,"nodeType":"UserDefinedTypeName","pathNode":{"id":13596,"name":"IPremiumsAccount","nameLocations":["990:16:52"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"990:16:52"},"referencedDeclaration":23886,"src":"990:16:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"955:72:52"},"returnParameters":{"id":13604,"nodeType":"ParameterList","parameters":[],"src":"1082:0:52"},"scope":13924,"src":"944:140:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13677,"nodeType":"Block","src":"1182:365:52","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13616,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1210:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1225:3:52","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"1210:18:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1202:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13614,"name":"uint256","nodeType":"ElementaryTypeName","src":"1202:7:52","typeDescriptions":{}}},"id":13618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":13619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:3:52","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"1202:34:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13621,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1201:36:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13624,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1255:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1270:11:52","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":20203,"src":"1255:26:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1247:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:52","typeDescriptions":{}}},"id":13626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1247:35:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":13627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1286:3:52","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"1247:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:44:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:89:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13633,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1308:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1323:9:52","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"1308:24:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1300:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13631,"name":"uint256","nodeType":"ElementaryTypeName","src":"1300:7:52","typeDescriptions":{}}},"id":13635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1300:33:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323038","id":13636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1337:3:52","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},"src":"1300:40:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1299:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:140:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13642,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1359:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1374:11:52","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":20207,"src":"1359:26:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1351:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1351:7:52","typeDescriptions":{}}},"id":13644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:35:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":13645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1390:3:52","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"1351:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13647,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1350:44:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:193:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13651,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1412:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1427:12:52","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":20209,"src":"1412:27:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1404:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13649,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:52","typeDescriptions":{}}},"id":13653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1404:36:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313736","id":13654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1444:3:52","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},"src":"1404:43:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1403:45:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:247:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13660,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1466:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1481:5:52","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":20211,"src":"1466:20:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1458:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13658,"name":"uint256","nodeType":"ElementaryTypeName","src":"1458:7:52","typeDescriptions":{}}},"id":13662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1458:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313630","id":13663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1491:3:52","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"src":"1458:36:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1457:38:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:294:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":13669,"name":"overrideParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"1513:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":13670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1528:5:52","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":20213,"src":"1513:20:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":13668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1505:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13667,"name":"uint256","nodeType":"ElementaryTypeName","src":"1505:7:52","typeDescriptions":{}}},"id":13671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1505:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313434","id":13672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1538:3:52","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},"src":"1505:36:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13674,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1504:38:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1201:341:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13613,"id":13676,"nodeType":"Return","src":"1188:354:52"}]},"id":13678,"implemented":true,"kind":"function","modifiers":[],"name":"_paramsAsUint256","nameLocation":"1097:16:52","nodeType":"FunctionDefinition","parameters":{"id":13610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13609,"mutability":"mutable","name":"overrideParams","nameLocation":"1134:14:52","nodeType":"VariableDeclaration","scope":13678,"src":"1114:34:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":13608,"nodeType":"UserDefinedTypeName","pathNode":{"id":13607,"name":"PackedParams","nameLocations":["1114:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"1114:12:52"},"referencedDeclaration":20220,"src":"1114:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"}],"src":"1113:36:52"},"returnParameters":{"id":13613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13678,"src":"1173:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1173:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1172:9:52"},"scope":13924,"src":"1088:459:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13754,"nodeType":"Block","src":"1827:1075:52","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13700,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13697,"src":"1837:15:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13701,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1855:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1861:9:52","memberName":"timestamp","nodeType":"MemberAccess","src":"1855:15:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1837:33:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13707,"nodeType":"IfStatement","src":"1833:60:52","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13704,"name":"QuoteExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21528,"src":"1879:12:52","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:14:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13706,"nodeType":"RevertStatement","src":"1872:21:52"}},{"assignments":[13710],"declarations":[{"constant":false,"id":13710,"mutability":"mutable","name":"quoteHash","nameLocation":"2471:9:52","nodeType":"VariableDeclaration","scope":13754,"src":"2463:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2463:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" Checks the quote has been signed by an authorized user\n The \"quote\" is computed as hash of the following fields (encodePacked):\n - address(this): the address of this RiskModule\n - payout, premium, lossProb, expiration: the base parameters of the policy\n - policyData: a hash of the private details of the policy. The calculation should include some\n   unique id (quoteId), so each policyData identifies a policy.\n - params: packed as a uint256\n - quoteValidUntil: the maximum validity of the quote","id":13730,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":13717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2553:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_FullSignedBucketRiskModule_$13924","typeString":"contract FullSignedBucketRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FullSignedBucketRiskModule_$13924","typeString":"contract FullSignedBucketRiskModule"}],"id":13716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2545:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13715,"name":"address","nodeType":"ElementaryTypeName","src":"2545:7:52","typeDescriptions":{}}},"id":13718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13719,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"2568:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13720,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"2584:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13721,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"2601:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13722,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13686,"src":"2619:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13723,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13688,"src":"2639:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":13725,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13691,"src":"2676:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}],"id":13724,"name":"_paramsAsUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"2659:16:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (uint256)"}},"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:24:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13727,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13697,"src":"2693:15:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":13713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2519:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2523:12:52","memberName":"encodePacked","nodeType":"MemberAccess","src":"2519:16:52","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2519:197:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13711,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"2483:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":13712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:22:52","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":7644,"src":"2483:28:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:239:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2463:259:52"},{"assignments":[13732],"declarations":[{"constant":false,"id":13732,"mutability":"mutable","name":"signer","nameLocation":"2736:6:52","nodeType":"VariableDeclaration","scope":13754,"src":"2728:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13731,"name":"address","nodeType":"ElementaryTypeName","src":"2728:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13739,"initialValue":{"arguments":[{"id":13735,"name":"quoteHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"2759:9:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13736,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13693,"src":"2770:15:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13737,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13695,"src":"2787:16:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13733,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"2745:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":13734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2751:7:52","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":7515,"src":"2745:13:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address)"}},"id":13738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:59:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2728:76:52"},{"expression":{"arguments":[{"arguments":[{"id":13747,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2858:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_FullSignedBucketRiskModule_$13924","typeString":"contract FullSignedBucketRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FullSignedBucketRiskModule_$13924","typeString":"contract FullSignedBucketRiskModule"}],"id":13746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2850:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13745,"name":"address","nodeType":"ElementaryTypeName","src":"2850:7:52","typeDescriptions":{}}},"id":13748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13749,"name":"FULL_PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13591,"src":"2865:16:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13750,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13732,"src":"2883:6:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":13751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2891:5:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13740,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2810:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":13742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2822:6:52","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"2810:18:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":13743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:20:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":13744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2831:18:52","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"2810:39:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":13752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:87:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13753,"nodeType":"ExpressionStatement","src":"2810:87:52"}]},"id":13755,"implemented":true,"kind":"function","modifiers":[],"name":"_checkFullSignature","nameLocation":"1560:19:52","nodeType":"FunctionDefinition","parameters":{"id":13698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13680,"mutability":"mutable","name":"payout","nameLocation":"1593:6:52","nodeType":"VariableDeclaration","scope":13755,"src":"1585:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"premium","nameLocation":"1613:7:52","nodeType":"VariableDeclaration","scope":13755,"src":"1605:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13681,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13684,"mutability":"mutable","name":"lossProb","nameLocation":"1634:8:52","nodeType":"VariableDeclaration","scope":13755,"src":"1626:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13683,"name":"uint256","nodeType":"ElementaryTypeName","src":"1626:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13686,"mutability":"mutable","name":"expiration","nameLocation":"1655:10:52","nodeType":"VariableDeclaration","scope":13755,"src":"1648:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13685,"name":"uint40","nodeType":"ElementaryTypeName","src":"1648:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13688,"mutability":"mutable","name":"policyData","nameLocation":"1679:10:52","nodeType":"VariableDeclaration","scope":13755,"src":"1671:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1671:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13691,"mutability":"mutable","name":"params","nameLocation":"1715:6:52","nodeType":"VariableDeclaration","scope":13755,"src":"1695:26:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":13690,"nodeType":"UserDefinedTypeName","pathNode":{"id":13689,"name":"PackedParams","nameLocations":["1695:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"1695:12:52"},"referencedDeclaration":20220,"src":"1695:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"},{"constant":false,"id":13693,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"1735:15:52","nodeType":"VariableDeclaration","scope":13755,"src":"1727:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1727:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13695,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"1764:16:52","nodeType":"VariableDeclaration","scope":13755,"src":"1756:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1756:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13697,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"1793:15:52","nodeType":"VariableDeclaration","scope":13755,"src":"1786:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13696,"name":"uint40","nodeType":"ElementaryTypeName","src":"1786:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"1579:233:52"},"returnParameters":{"id":13699,"nodeType":"ParameterList","parameters":[],"src":"1827:0:52"},"scope":13924,"src":"1551:1351:52","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13824,"nodeType":"Block","src":"4503:470:52","statements":[{"expression":{"arguments":[{"id":13789,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13758,"src":"4536:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13790,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13760,"src":"4550:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13791,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13762,"src":"4565:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13792,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"4581:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13793,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13768,"src":"4599:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13794,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13771,"src":"4617:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},{"id":13795,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"4631:15:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13796,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13775,"src":"4654:16:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13797,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13777,"src":"4678:15:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":13788,"name":"_checkFullSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13755,"src":"4509:19:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_struct$_PackedParams_$20220_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint40_$returns$__$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,struct RiskModule.PackedParams memory,bytes32,bytes32,uint40) view"}},"id":13798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4509:190:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13799,"nodeType":"ExpressionStatement","src":"4509:190:52"},{"expression":{"id":13816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13800,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13786,"src":"4705:13:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13802,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13758,"src":"4749:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13803,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13760,"src":"4763:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13804,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13762,"src":"4778:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13805,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"4794:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13806,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4812:10:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:12:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13808,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"4832:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13810,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13768,"src":"4866:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13809,"name":"_makeInternalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"4850:15:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint96_$","typeString":"function (bytes32) pure returns (uint96)"}},"id":13811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4850:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[{"id":13813,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13771,"src":"4899:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}],"id":13812,"name":"_unpackParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"4885:13:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (struct IRiskModule.Params memory)"}},"id":13814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4885:21:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":13801,"name":"_newPolicyWithParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21244,"src":"4721:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":13815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4721:191:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"src":"4705:207:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":13817,"nodeType":"ExpressionStatement","src":"4705:207:52"},{"eventCall":{"arguments":[{"expression":{"id":13819,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13786,"src":"4939:13:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":13820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4953:2:52","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"4939:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13821,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13768,"src":"4957:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13818,"name":"NewSignedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21526,"src":"4923:15:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":13822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4923:45:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13823,"nodeType":"EmitStatement","src":"4918:50:52"}]},"documentation":{"id":13756,"nodeType":"StructuredDocumentation","src":"2906:1197:52","text":" @dev Creates a new Policy using a full signed quote that overrides params.\n      The caller is the payer of the policy.\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n Emits:\n - {PolicyPool.NewPolicy}\n - {NewSignedPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the payer\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return createdPolicy Returns the created policy"},"functionSelector":"9014d171","id":13825,"implemented":true,"kind":"function","modifiers":[{"id":13780,"kind":"modifierInvocation","modifierName":{"id":13779,"name":"whenNotPaused","nameLocations":["4401:13:52"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"4401:13:52"},"nodeType":"ModifierInvocation","src":"4401:13:52"},{"arguments":[{"id":13782,"name":"POLICY_CREATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21486,"src":"4433:19:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13783,"kind":"modifierInvocation","modifierName":{"id":13781,"name":"onlyComponentRole","nameLocations":["4415:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"4415:17:52"},"nodeType":"ModifierInvocation","src":"4415:38:52"}],"name":"newPolicyFullParams","nameLocation":"4115:19:52","nodeType":"FunctionDefinition","parameters":{"id":13778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13758,"mutability":"mutable","name":"payout","nameLocation":"4148:6:52","nodeType":"VariableDeclaration","scope":13825,"src":"4140:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13757,"name":"uint256","nodeType":"ElementaryTypeName","src":"4140:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13760,"mutability":"mutable","name":"premium","nameLocation":"4168:7:52","nodeType":"VariableDeclaration","scope":13825,"src":"4160:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13759,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13762,"mutability":"mutable","name":"lossProb","nameLocation":"4189:8:52","nodeType":"VariableDeclaration","scope":13825,"src":"4181:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4181:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13764,"mutability":"mutable","name":"expiration","nameLocation":"4210:10:52","nodeType":"VariableDeclaration","scope":13825,"src":"4203:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13763,"name":"uint40","nodeType":"ElementaryTypeName","src":"4203:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13766,"mutability":"mutable","name":"onBehalfOf","nameLocation":"4234:10:52","nodeType":"VariableDeclaration","scope":13825,"src":"4226:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13765,"name":"address","nodeType":"ElementaryTypeName","src":"4226:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13768,"mutability":"mutable","name":"policyData","nameLocation":"4258:10:52","nodeType":"VariableDeclaration","scope":13825,"src":"4250:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4250:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13771,"mutability":"mutable","name":"params","nameLocation":"4294:6:52","nodeType":"VariableDeclaration","scope":13825,"src":"4274:26:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":13770,"nodeType":"UserDefinedTypeName","pathNode":{"id":13769,"name":"PackedParams","nameLocations":["4274:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"4274:12:52"},"referencedDeclaration":20220,"src":"4274:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"},{"constant":false,"id":13773,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"4314:15:52","nodeType":"VariableDeclaration","scope":13825,"src":"4306:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4306:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13775,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"4343:16:52","nodeType":"VariableDeclaration","scope":13825,"src":"4335:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4335:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13777,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"4372:15:52","nodeType":"VariableDeclaration","scope":13825,"src":"4365:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13776,"name":"uint40","nodeType":"ElementaryTypeName","src":"4365:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"4134:257:52"},"returnParameters":{"id":13787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13786,"mutability":"mutable","name":"createdPolicy","nameLocation":"4488:13:52","nodeType":"VariableDeclaration","scope":13825,"src":"4463:38:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":13785,"nodeType":"UserDefinedTypeName","pathNode":{"id":13784,"name":"Policy.PolicyData","nameLocations":["4463:6:52","4470:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4463:17:52"},"referencedDeclaration":14966,"src":"4463:17:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4462:40:52"},"scope":13924,"src":"4106:867:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13887,"nodeType":"Block","src":"6618:425:52","statements":[{"expression":{"arguments":[{"id":13859,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13831,"src":"6651:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13860,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13833,"src":"6665:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13861,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13835,"src":"6680:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13862,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"6696:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13863,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"6714:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13864,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13842,"src":"6732:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},{"id":13865,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13844,"src":"6746:15:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13866,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13846,"src":"6769:16:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13867,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13848,"src":"6793:15:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":13858,"name":"_checkFullSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13755,"src":"6624:19:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_struct$_PackedParams_$20220_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint40_$returns$__$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,struct RiskModule.PackedParams memory,bytes32,bytes32,uint40) view"}},"id":13868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6624:190:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13869,"nodeType":"ExpressionStatement","src":"6624:190:52"},{"expression":{"expression":{"arguments":[{"id":13871,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13829,"src":"6857:9:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":13872,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13831,"src":"6876:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13873,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13833,"src":"6892:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13874,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13835,"src":"6909:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13875,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"6927:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13876,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6947:10:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6947:12:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13879,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"6985:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13878,"name":"_makeInternalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"6969:15:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint96_$","typeString":"function (bytes32) pure returns (uint96)"}},"id":13880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[{"id":13882,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13842,"src":"7020:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}],"id":13881,"name":"_unpackParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"7006:13:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (struct IRiskModule.Params memory)"}},"id":13883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7006:21:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":13870,"name":"_replacePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"6833:14:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData calldata,uint256,uint256,uint256,uint40,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":13884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6833:202:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":13885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7036:2:52","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"6833:205:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13857,"id":13886,"nodeType":"Return","src":"6820:218:52"}]},"documentation":{"id":13826,"nodeType":"StructuredDocumentation","src":"4977:1256:52","text":" @dev Replace a policy with a new one, reusing the premium and the capital locked\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n - The caller has been granted component role REPLACER_ROLE or creation is open\n Emits:\n - {PolicyPool.PolicyReplaced}\n - {PolicyPool.NewPolicy}\n @param oldPolicy The policy to be replaced\n @param payout The exposure (maximum payout) of the new policy\n @param premium The premium that will be paid by the caller\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return Returns the id of the created policy"},"functionSelector":"3f961587","id":13888,"implemented":true,"kind":"function","modifiers":[{"id":13851,"kind":"modifierInvocation","modifierName":{"id":13850,"name":"whenNotPaused","nameLocations":["6553:13:52"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"6553:13:52"},"nodeType":"ModifierInvocation","src":"6553:13:52"},{"arguments":[{"id":13853,"name":"REPLACER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21491,"src":"6585:13:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13854,"kind":"modifierInvocation","modifierName":{"id":13852,"name":"onlyComponentRole","nameLocations":["6567:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"6567:17:52"},"nodeType":"ModifierInvocation","src":"6567:32:52"}],"name":"replacePolicyFullParams","nameLocation":"6245:23:52","nodeType":"FunctionDefinition","parameters":{"id":13849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13829,"mutability":"mutable","name":"oldPolicy","nameLocation":"6301:9:52","nodeType":"VariableDeclaration","scope":13888,"src":"6274:36:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":13828,"nodeType":"UserDefinedTypeName","pathNode":{"id":13827,"name":"Policy.PolicyData","nameLocations":["6274:6:52","6281:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"6274:17:52"},"referencedDeclaration":14966,"src":"6274:17:52","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":13831,"mutability":"mutable","name":"payout","nameLocation":"6324:6:52","nodeType":"VariableDeclaration","scope":13888,"src":"6316:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13830,"name":"uint256","nodeType":"ElementaryTypeName","src":"6316:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13833,"mutability":"mutable","name":"premium","nameLocation":"6344:7:52","nodeType":"VariableDeclaration","scope":13888,"src":"6336:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13832,"name":"uint256","nodeType":"ElementaryTypeName","src":"6336:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13835,"mutability":"mutable","name":"lossProb","nameLocation":"6365:8:52","nodeType":"VariableDeclaration","scope":13888,"src":"6357:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13834,"name":"uint256","nodeType":"ElementaryTypeName","src":"6357:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13837,"mutability":"mutable","name":"expiration","nameLocation":"6386:10:52","nodeType":"VariableDeclaration","scope":13888,"src":"6379:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13836,"name":"uint40","nodeType":"ElementaryTypeName","src":"6379:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13839,"mutability":"mutable","name":"policyData","nameLocation":"6410:10:52","nodeType":"VariableDeclaration","scope":13888,"src":"6402:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6402:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13842,"mutability":"mutable","name":"params","nameLocation":"6446:6:52","nodeType":"VariableDeclaration","scope":13888,"src":"6426:26:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":13841,"nodeType":"UserDefinedTypeName","pathNode":{"id":13840,"name":"PackedParams","nameLocations":["6426:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"6426:12:52"},"referencedDeclaration":20220,"src":"6426:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"},{"constant":false,"id":13844,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"6466:15:52","nodeType":"VariableDeclaration","scope":13888,"src":"6458:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6458:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13846,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"6495:16:52","nodeType":"VariableDeclaration","scope":13888,"src":"6487:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6487:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13848,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"6524:15:52","nodeType":"VariableDeclaration","scope":13888,"src":"6517:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13847,"name":"uint40","nodeType":"ElementaryTypeName","src":"6517:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"6268:275:52"},"returnParameters":{"id":13857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13888,"src":"6609:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13855,"name":"uint256","nodeType":"ElementaryTypeName","src":"6609:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6608:9:52"},"scope":13924,"src":"6236:807:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13917,"nodeType":"Block","src":"7622:114:52","statements":[{"expression":{"arguments":[{"id":13904,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13891,"src":"7654:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13905,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13893,"src":"7662:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13906,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"7672:10:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"expression":{"id":13909,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7691:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7697:9:52","memberName":"timestamp","nodeType":"MemberAccess","src":"7691:15:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7684:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":13907,"name":"uint40","nodeType":"ElementaryTypeName","src":"7684:6:52","typeDescriptions":{}}},"id":13911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7684:23:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"id":13913,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"7723:6:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}],"id":13912,"name":"_unpackParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"7709:13:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (struct IRiskModule.Params memory)"}},"id":13914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7709:21:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":13903,"name":"_getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21037,"src":"7635:18:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint40,uint40,struct IRiskModule.Params memory) pure returns (uint256)"}},"id":13915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7635:96:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13902,"id":13916,"nodeType":"Return","src":"7628:103:52"}]},"documentation":{"id":13889,"nodeType":"StructuredDocumentation","src":"7047:396:52","text":" @dev Computes the minimum premium for fully-customizable params\n @param payout Maximum payout of the policy\n @param lossProb Probability of having a loss equal to the maximum payout\n @param expiration Expiration date of the policy\n @param params The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\n @return The minimum premium to receive"},"functionSelector":"cf19171e","id":13918,"implemented":true,"kind":"function","modifiers":[],"name":"getMinimumPremiumFullParams","nameLocation":"7455:27:52","nodeType":"FunctionDefinition","parameters":{"id":13899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13891,"mutability":"mutable","name":"payout","nameLocation":"7496:6:52","nodeType":"VariableDeclaration","scope":13918,"src":"7488:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13890,"name":"uint256","nodeType":"ElementaryTypeName","src":"7488:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13893,"mutability":"mutable","name":"lossProb","nameLocation":"7516:8:52","nodeType":"VariableDeclaration","scope":13918,"src":"7508:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13892,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13895,"mutability":"mutable","name":"expiration","nameLocation":"7537:10:52","nodeType":"VariableDeclaration","scope":13918,"src":"7530:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13894,"name":"uint40","nodeType":"ElementaryTypeName","src":"7530:6:52","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13898,"mutability":"mutable","name":"params","nameLocation":"7573:6:52","nodeType":"VariableDeclaration","scope":13918,"src":"7553:26:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":13897,"nodeType":"UserDefinedTypeName","pathNode":{"id":13896,"name":"PackedParams","nameLocations":["7553:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"7553:12:52"},"referencedDeclaration":20220,"src":"7553:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"}],"src":"7482:101:52"},"returnParameters":{"id":13902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13918,"src":"7613:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13900,"name":"uint256","nodeType":"ElementaryTypeName","src":"7613:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7612:9:52"},"scope":13924,"src":"7446:290:52","stateMutability":"view","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":13919,"nodeType":"StructuredDocumentation","src":"7740:246:52","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":13923,"mutability":"mutable","name":"__gap","nameLocation":"8009:5:52","nodeType":"VariableDeclaration","scope":13924,"src":"7989:25:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":13920,"name":"uint256","nodeType":"ElementaryTypeName","src":"7989:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13922,"length":{"hexValue":"3530","id":13921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7997:2:52","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"7989:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":13925,"src":"748:7269:52","usedErrors":[17749,17751,17753,20229,20231,20233,20235,21528,21530,21532],"usedEvents":[417,424,429,790,1096,1101,17740,17747,21514,21519,21526]}],"src":"39:7979:52"},"id":52},"contracts/LPManualWhitelist.sol":{"ast":{"absolutePath":"contracts/LPManualWhitelist.sol","exportedSymbols":{"IEToken":[23549],"ILPWhitelist":[23596],"IPolicyPool":[23806],"LPManualWhitelist":[14356],"PolicyPoolComponent":[18100]},"id":14357,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":13926,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:53"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":13928,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14357,"sourceUnit":23807,"src":"64:57:53","symbolAliases":[{"foreign":{"id":13927,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/PolicyPoolComponent.sol","file":"./PolicyPoolComponent.sol","id":13930,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14357,"sourceUnit":18101,"src":"122:62:53","symbolAliases":[{"foreign":{"id":13929,"name":"PolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"130:19:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ILPWhitelist.sol","file":"./interfaces/ILPWhitelist.sol","id":13932,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14357,"sourceUnit":23597,"src":"185:59:53","symbolAliases":[{"foreign":{"id":13931,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"193:12:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./interfaces/IEToken.sol","id":13934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14357,"sourceUnit":23550,"src":"245:49:53","symbolAliases":[{"foreign":{"id":13933,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"253:7:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13936,"name":"ILPWhitelist","nameLocations":["547:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":23596,"src":"547:12:53"},"id":13937,"nodeType":"InheritanceSpecifier","src":"547:12:53"},{"baseName":{"id":13938,"name":"PolicyPoolComponent","nameLocations":["561:19:53"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"561:19:53"},"id":13939,"nodeType":"InheritanceSpecifier","src":"561:19:53"}],"canonicalName":"LPManualWhitelist","contractDependencies":[],"contractKind":"contract","documentation":{"id":13935,"nodeType":"StructuredDocumentation","src":"296:220:53","text":" @title Manual Whitelisting contract\n @dev LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":14356,"linearizedBaseContracts":[14356,18100,23823,7883,1209,2704,1081,765,430,440,944,23596],"name":"LPManualWhitelist","nameLocation":"526:17:53","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"aad4148c","id":13944,"mutability":"constant","name":"LP_WHITELIST_ROLE","nameLocation":"609:17:53","nodeType":"VariableDeclaration","scope":14356,"src":"585:74:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"585:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c505f57484954454c4953545f524f4c45","id":13942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"639:19:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_b494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f3235","typeString":"literal_string \"LP_WHITELIST_ROLE\""},"value":"LP_WHITELIST_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f3235","typeString":"literal_string \"LP_WHITELIST_ROLE\""}],"id":13941,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"629:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"629:30:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"1e3b9c5e","id":13949,"mutability":"constant","name":"LP_WHITELIST_ADMIN_ROLE","nameLocation":"687:23:53","nodeType":"VariableDeclaration","scope":14356,"src":"663:86:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"663:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c505f57484954454c4953545f41444d494e5f524f4c45","id":13947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"723:25:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b","typeString":"literal_string \"LP_WHITELIST_ADMIN_ROLE\""},"value":"LP_WHITELIST_ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b","typeString":"literal_string \"LP_WHITELIST_ADMIN_ROLE\""}],"id":13946,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"713:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"713:36:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"canonicalName":"LPManualWhitelist.WhitelistOptions","documentation":{"id":13950,"nodeType":"StructuredDocumentation","src":"754:75:53","text":" @dev Enum with the different options for whitelisting status"},"id":13954,"members":[{"id":13951,"name":"undefined","nameLocation":"860:9:53","nodeType":"EnumValue","src":"860:9:53"},{"id":13952,"name":"whitelisted","nameLocation":"875:11:53","nodeType":"EnumValue","src":"875:11:53"},{"id":13953,"name":"blacklisted","nameLocation":"892:11:53","nodeType":"EnumValue","src":"892:11:53"}],"name":"WhitelistOptions","nameLocation":"837:16:53","nodeType":"EnumDefinition","src":"832:75:53"},{"canonicalName":"LPManualWhitelist.WhitelistStatus","id":13967,"members":[{"constant":false,"id":13957,"mutability":"mutable","name":"deposit","nameLocation":"957:7:53","nodeType":"VariableDeclaration","scope":13967,"src":"940:24:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":13956,"nodeType":"UserDefinedTypeName","pathNode":{"id":13955,"name":"WhitelistOptions","nameLocations":["940:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"940:16:53"},"referencedDeclaration":13954,"src":"940:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"},{"constant":false,"id":13960,"mutability":"mutable","name":"withdraw","nameLocation":"987:8:53","nodeType":"VariableDeclaration","scope":13967,"src":"970:25:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":13959,"nodeType":"UserDefinedTypeName","pathNode":{"id":13958,"name":"WhitelistOptions","nameLocations":["970:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"970:16:53"},"referencedDeclaration":13954,"src":"970:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"},{"constant":false,"id":13963,"mutability":"mutable","name":"sendTransfer","nameLocation":"1018:12:53","nodeType":"VariableDeclaration","scope":13967,"src":"1001:29:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":13962,"nodeType":"UserDefinedTypeName","pathNode":{"id":13961,"name":"WhitelistOptions","nameLocations":["1001:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"1001:16:53"},"referencedDeclaration":13954,"src":"1001:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"},{"constant":false,"id":13966,"mutability":"mutable","name":"receiveTransfer","nameLocation":"1053:15:53","nodeType":"VariableDeclaration","scope":13967,"src":"1036:32:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":13965,"nodeType":"UserDefinedTypeName","pathNode":{"id":13964,"name":"WhitelistOptions","nameLocations":["1036:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"1036:16:53"},"referencedDeclaration":13954,"src":"1036:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"}],"name":"WhitelistStatus","nameLocation":"918:15:53","nodeType":"StructDefinition","scope":14356,"src":"911:162:53","visibility":"public"},{"constant":false,"id":13972,"mutability":"mutable","name":"_wlStatus","nameLocation":"1121:9:53","nodeType":"VariableDeclaration","scope":14356,"src":"1077:53:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus)"},"typeName":{"id":13971,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13968,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1077:35:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13970,"nodeType":"UserDefinedTypeName","pathNode":{"id":13969,"name":"WhitelistStatus","nameLocations":["1096:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"1096:15:53"},"referencedDeclaration":13967,"src":"1096:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a","id":13979,"name":"LPWhitelistStatusChanged","nameLocation":"1141:24:53","nodeType":"EventDefinition","parameters":{"id":13978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13974,"indexed":false,"mutability":"mutable","name":"provider","nameLocation":"1174:8:53","nodeType":"VariableDeclaration","scope":13979,"src":"1166:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13973,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13977,"indexed":false,"mutability":"mutable","name":"whitelisted","nameLocation":"1200:11:53","nodeType":"VariableDeclaration","scope":13979,"src":"1184:27:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":13976,"nodeType":"UserDefinedTypeName","pathNode":{"id":13975,"name":"WhitelistStatus","nameLocations":["1184:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"1184:15:53"},"referencedDeclaration":13967,"src":"1184:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"1165:47:53"},"src":"1135:78:53"},{"body":{"id":13989,"nodeType":"Block","src":"1385:2:53","statements":[]},"documentation":{"id":13980,"nodeType":"StructuredDocumentation","src":"1217:48:53","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":13990,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":13986,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"1372:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":13987,"kind":"baseConstructorSpecifier","modifierName":{"id":13985,"name":"PolicyPoolComponent","nameLocations":["1352:19:53"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"1352:19:53"},"nodeType":"ModifierInvocation","src":"1352:32:53"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13983,"mutability":"mutable","name":"policyPool_","nameLocation":"1339:11:53","nodeType":"VariableDeclaration","scope":13990,"src":"1327:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":13982,"nodeType":"UserDefinedTypeName","pathNode":{"id":13981,"name":"IPolicyPool","nameLocations":["1327:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"1327:11:53"},"referencedDeclaration":23806,"src":"1327:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"1326:25:53"},"returnParameters":{"id":13988,"nodeType":"ParameterList","parameters":[],"src":"1385:0:53"},"scope":14356,"src":"1315:72:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14003,"nodeType":"Block","src":"1535:50:53","statements":[{"expression":{"arguments":[{"id":14000,"name":"defaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"1566:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":13999,"name":"__LPManualWhitelist_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"1541:24:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_WhitelistStatus_$13967_calldata_ptr_$returns$__$","typeString":"function (struct LPManualWhitelist.WhitelistStatus calldata)"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1541:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14002,"nodeType":"ExpressionStatement","src":"1541:39:53"}]},"documentation":{"id":13991,"nodeType":"StructuredDocumentation","src":"1391:54:53","text":" @dev Initializes the Whitelist contract"},"functionSelector":"aa2f92fb","id":14004,"implemented":true,"kind":"function","modifiers":[{"id":13997,"kind":"modifierInvocation","modifierName":{"id":13996,"name":"initializer","nameLocations":["1523:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"1523:11:53"},"nodeType":"ModifierInvocation","src":"1523:11:53"}],"name":"initialize","nameLocation":"1457:10:53","nodeType":"FunctionDefinition","parameters":{"id":13995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13994,"mutability":"mutable","name":"defaultStatus","nameLocation":"1493:13:53","nodeType":"VariableDeclaration","scope":14004,"src":"1468:38:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":13993,"nodeType":"UserDefinedTypeName","pathNode":{"id":13992,"name":"WhitelistStatus","nameLocations":["1468:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"1468:15:53"},"referencedDeclaration":13967,"src":"1468:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"1467:40:53"},"returnParameters":{"id":13998,"nodeType":"ParameterList","parameters":[],"src":"1535:0:53"},"scope":14356,"src":"1448:137:53","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":14019,"nodeType":"Block","src":"1740:94:53","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14012,"name":"__PolicyPoolComponent_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17875,"src":"1746:26:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:28:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14014,"nodeType":"ExpressionStatement","src":"1746:28:53"},{"expression":{"arguments":[{"id":14016,"name":"defaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14007,"src":"1815:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14015,"name":"__LPManualWhitelist_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14050,"src":"1780:34:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_WhitelistStatus_$13967_calldata_ptr_$returns$__$","typeString":"function (struct LPManualWhitelist.WhitelistStatus calldata)"}},"id":14017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:49:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14018,"nodeType":"ExpressionStatement","src":"1780:49:53"}]},"id":14020,"implemented":true,"kind":"function","modifiers":[{"id":14010,"kind":"modifierInvocation","modifierName":{"id":14009,"name":"onlyInitializing","nameLocations":["1723:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1723:16:53"},"nodeType":"ModifierInvocation","src":"1723:16:53"}],"name":"__LPManualWhitelist_init","nameLocation":"1649:24:53","nodeType":"FunctionDefinition","parameters":{"id":14008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14007,"mutability":"mutable","name":"defaultStatus","nameLocation":"1699:13:53","nodeType":"VariableDeclaration","scope":14020,"src":"1674:38:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14006,"nodeType":"UserDefinedTypeName","pathNode":{"id":14005,"name":"WhitelistStatus","nameLocations":["1674:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"1674:15:53"},"referencedDeclaration":13967,"src":"1674:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"1673:40:53"},"returnParameters":{"id":14011,"nodeType":"ParameterList","parameters":[],"src":"1740:0:53"},"scope":14356,"src":"1640:194:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14049,"nodeType":"Block","src":"1999:150:53","statements":[{"expression":{"arguments":[{"id":14029,"name":"defaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14023,"src":"2025:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14028,"name":"_checkDefaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"2005:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WhitelistStatus_$13967_calldata_ptr_$returns$__$","typeString":"function (struct LPManualWhitelist.WhitelistStatus calldata) pure"}},"id":14030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:34:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14031,"nodeType":"ExpressionStatement","src":"2005:34:53"},{"expression":{"id":14039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14032,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"2045:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14037,"indexExpression":{"arguments":[{"hexValue":"30","id":14035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2055:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14033,"name":"address","nodeType":"ElementaryTypeName","src":"2055:7:53","typeDescriptions":{}}},"id":14036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2055:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2045:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14038,"name":"defaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14023,"src":"2069:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}},"src":"2045:37:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14040,"nodeType":"ExpressionStatement","src":"2045:37:53"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":14044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2126:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14042,"name":"address","nodeType":"ElementaryTypeName","src":"2118:7:53","typeDescriptions":{}}},"id":14045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14046,"name":"defaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14023,"src":"2130:13:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14041,"name":"LPWhitelistStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13979,"src":"2093:24:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_WhitelistStatus_$13967_memory_ptr_$returns$__$","typeString":"function (address,struct LPManualWhitelist.WhitelistStatus memory)"}},"id":14047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:51:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14048,"nodeType":"EmitStatement","src":"2088:56:53"}]},"id":14050,"implemented":true,"kind":"function","modifiers":[{"id":14026,"kind":"modifierInvocation","modifierName":{"id":14025,"name":"onlyInitializing","nameLocations":["1982:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1982:16:53"},"nodeType":"ModifierInvocation","src":"1982:16:53"}],"name":"__LPManualWhitelist_init_unchained","nameLocation":"1898:34:53","nodeType":"FunctionDefinition","parameters":{"id":14024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14023,"mutability":"mutable","name":"defaultStatus","nameLocation":"1958:13:53","nodeType":"VariableDeclaration","scope":14050,"src":"1933:38:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14022,"nodeType":"UserDefinedTypeName","pathNode":{"id":14021,"name":"WhitelistStatus","nameLocations":["1933:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"1933:15:53"},"referencedDeclaration":13967,"src":"1933:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"1932:40:53"},"returnParameters":{"id":14027,"nodeType":"ParameterList","parameters":[],"src":"1999:0:53"},"scope":14356,"src":"1889:260:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14076,"nodeType":"Block","src":"2291:119:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14062,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14052,"src":"2305:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":14065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2325:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2317:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14063,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:53","typeDescriptions":{}}},"id":14066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2305:22:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e2774206368616e6765207468652064656661756c7473","id":14068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2329:31:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_25aad5c16fa3ed8e98c47d58aff8703d9bebbc6fbf387f5dc501db51eba3c1e3","typeString":"literal_string \"You can't change the defaults\""},"value":"You can't change the defaults"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25aad5c16fa3ed8e98c47d58aff8703d9bebbc6fbf387f5dc501db51eba3c1e3","typeString":"literal_string \"You can't change the defaults\""}],"id":14061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2297:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:64:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14070,"nodeType":"ExpressionStatement","src":"2297:64:53"},{"expression":{"arguments":[{"id":14072,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14052,"src":"2385:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14073,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14055,"src":"2395:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14071,"name":"_whitelistAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14167,"src":"2367:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_WhitelistStatus_$13967_memory_ptr_$returns$__$","typeString":"function (address,struct LPManualWhitelist.WhitelistStatus memory)"}},"id":14074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2367:38:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14075,"nodeType":"ExpressionStatement","src":"2367:38:53"}]},"functionSelector":"896ce44c","id":14077,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14058,"name":"LP_WHITELIST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13944,"src":"2272:17:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14059,"kind":"modifierInvocation","modifierName":{"id":14057,"name":"onlyComponentRole","nameLocations":["2254:17:53"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"2254:17:53"},"nodeType":"ModifierInvocation","src":"2254:36:53"}],"name":"whitelistAddress","nameLocation":"2162:16:53","nodeType":"FunctionDefinition","parameters":{"id":14056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14052,"mutability":"mutable","name":"provider","nameLocation":"2192:8:53","nodeType":"VariableDeclaration","scope":14077,"src":"2184:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14051,"name":"address","nodeType":"ElementaryTypeName","src":"2184:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14055,"mutability":"mutable","name":"newStatus","nameLocation":"2231:9:53","nodeType":"VariableDeclaration","scope":14077,"src":"2206:34:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14054,"nodeType":"UserDefinedTypeName","pathNode":{"id":14053,"name":"WhitelistStatus","nameLocations":["2206:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"2206:15:53"},"referencedDeclaration":13967,"src":"2206:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"2178:66:53"},"returnParameters":{"id":14060,"nodeType":"ParameterList","parameters":[],"src":"2291:0:53"},"scope":14356,"src":"2153:257:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14110,"nodeType":"Block","src":"2493:340:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14084,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"2514:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}},"id":14085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:7:53","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":13957,"src":"2514:17:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14086,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"2535:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2552:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"2535:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"2514:47:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14089,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"2573:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}},"id":14090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2583:8:53","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":13960,"src":"2573:18:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14091,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"2595:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2612:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"2595:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"2573:48:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2514:107:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14095,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"2633:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2643:12:53","memberName":"sendTransfer","nodeType":"MemberAccess","referencedDeclaration":13963,"src":"2633:22:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14097,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"2659:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2676:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"2659:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"2633:52:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2514:171:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14101,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14080,"src":"2697:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}},"id":14102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:15:53","memberName":"receiveTransfer","nodeType":"MemberAccess","referencedDeclaration":13966,"src":"2697:25:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14103,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"2726:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2743:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"2726:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"2697:55:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2514:238:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f75206e65656420746f20646566696e65207468652064656661756c742073746174757320666f7220616c6c20746865206f7065726174696f6e73","id":14107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2760:62:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_b448ca61d16cc0abd607458d5a05d416229fd99256fc517d81a1c8428839788e","typeString":"literal_string \"You need to define the default status for all the operations\""},"value":"You need to define the default status for all the operations"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b448ca61d16cc0abd607458d5a05d416229fd99256fc517d81a1c8428839788e","typeString":"literal_string \"You need to define the default status for all the operations\""}],"id":14083,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2499:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:329:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14109,"nodeType":"ExpressionStatement","src":"2499:329:53"}]},"id":14111,"implemented":true,"kind":"function","modifiers":[],"name":"_checkDefaultStatus","nameLocation":"2423:19:53","nodeType":"FunctionDefinition","parameters":{"id":14081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14080,"mutability":"mutable","name":"newStatus","nameLocation":"2468:9:53","nodeType":"VariableDeclaration","scope":14111,"src":"2443:34:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14079,"nodeType":"UserDefinedTypeName","pathNode":{"id":14078,"name":"WhitelistStatus","nameLocations":["2443:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"2443:15:53"},"referencedDeclaration":13967,"src":"2443:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"2442:36:53"},"returnParameters":{"id":14082,"nodeType":"ParameterList","parameters":[],"src":"2493:0:53"},"scope":14356,"src":"2414:419:53","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14132,"nodeType":"Block","src":"2963:87:53","statements":[{"expression":{"arguments":[{"id":14121,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14114,"src":"2989:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14120,"name":"_checkDefaultStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"2969:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WhitelistStatus_$13967_calldata_ptr_$returns$__$","typeString":"function (struct LPManualWhitelist.WhitelistStatus calldata) pure"}},"id":14122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2969:30:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14123,"nodeType":"ExpressionStatement","src":"2969:30:53"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":14127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3031:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3023:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14125,"name":"address","nodeType":"ElementaryTypeName","src":"3023:7:53","typeDescriptions":{}}},"id":14128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14129,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14114,"src":"3035:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus calldata"}],"id":14124,"name":"_whitelistAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14167,"src":"3005:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_WhitelistStatus_$13967_memory_ptr_$returns$__$","typeString":"function (address,struct LPManualWhitelist.WhitelistStatus memory)"}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3005:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14131,"nodeType":"ExpressionStatement","src":"3005:40:53"}]},"functionSelector":"cf273ca6","id":14133,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14117,"name":"LP_WHITELIST_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13949,"src":"2938:23:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14118,"kind":"modifierInvocation","modifierName":{"id":14116,"name":"onlyComponentRole","nameLocations":["2920:17:53"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"2920:17:53"},"nodeType":"ModifierInvocation","src":"2920:42:53"}],"name":"setWhitelistDefaults","nameLocation":"2846:20:53","nodeType":"FunctionDefinition","parameters":{"id":14115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14114,"mutability":"mutable","name":"newStatus","nameLocation":"2897:9:53","nodeType":"VariableDeclaration","scope":14133,"src":"2872:34:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_calldata_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14113,"nodeType":"UserDefinedTypeName","pathNode":{"id":14112,"name":"WhitelistStatus","nameLocations":["2872:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"2872:15:53"},"referencedDeclaration":13967,"src":"2872:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"2866:44:53"},"returnParameters":{"id":14119,"nodeType":"ParameterList","parameters":[],"src":"2963:0:53"},"scope":14356,"src":"2837:213:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14146,"nodeType":"Block","src":"3133:39:53","statements":[{"expression":{"baseExpression":{"id":14139,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"3146:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14144,"indexExpression":{"arguments":[{"hexValue":"30","id":14142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14140,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:53","typeDescriptions":{}}},"id":14143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3146:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"functionReturnParameters":14138,"id":14145,"nodeType":"Return","src":"3139:28:53"}]},"functionSelector":"ed716bf4","id":14147,"implemented":true,"kind":"function","modifiers":[],"name":"getWhitelistDefaults","nameLocation":"3063:20:53","nodeType":"FunctionDefinition","parameters":{"id":14134,"nodeType":"ParameterList","parameters":[],"src":"3083:2:53"},"returnParameters":{"id":14138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14147,"src":"3109:22:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14136,"nodeType":"UserDefinedTypeName","pathNode":{"id":14135,"name":"WhitelistStatus","nameLocations":["3109:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"3109:15:53"},"referencedDeclaration":13967,"src":"3109:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"3108:24:53"},"scope":14356,"src":"3054:118:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":14166,"nodeType":"Block","src":"3264:98:53","statements":[{"expression":{"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14155,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"3270:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14157,"indexExpression":{"id":14156,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14149,"src":"3280:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3270:19:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14158,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"3292:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus memory"}},"src":"3270:31:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14160,"nodeType":"ExpressionStatement","src":"3270:31:53"},{"eventCall":{"arguments":[{"id":14162,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14149,"src":"3337:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14163,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"3347:9:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus memory"}],"id":14161,"name":"LPWhitelistStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13979,"src":"3312:24:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_WhitelistStatus_$13967_memory_ptr_$returns$__$","typeString":"function (address,struct LPManualWhitelist.WhitelistStatus memory)"}},"id":14164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3312:45:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14165,"nodeType":"EmitStatement","src":"3307:50:53"}]},"id":14167,"implemented":true,"kind":"function","modifiers":[],"name":"_whitelistAddress","nameLocation":"3185:17:53","nodeType":"FunctionDefinition","parameters":{"id":14153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14149,"mutability":"mutable","name":"provider","nameLocation":"3211:8:53","nodeType":"VariableDeclaration","scope":14167,"src":"3203:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14148,"name":"address","nodeType":"ElementaryTypeName","src":"3203:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14152,"mutability":"mutable","name":"newStatus","nameLocation":"3244:9:53","nodeType":"VariableDeclaration","scope":14167,"src":"3221:32:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_memory_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"},"typeName":{"id":14151,"nodeType":"UserDefinedTypeName","pathNode":{"id":14150,"name":"WhitelistStatus","nameLocations":["3221:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":13967,"src":"3221:15:53"},"referencedDeclaration":13967,"src":"3221:15:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage_ptr","typeString":"struct LPManualWhitelist.WhitelistStatus"}},"visibility":"internal"}],"src":"3202:52:53"},"returnParameters":{"id":14154,"nodeType":"ParameterList","parameters":[],"src":"3264:0:53"},"scope":14356,"src":"3176:186:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17931],"body":{"id":14188,"nodeType":"Block","src":"3512:103:53","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14178,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14170,"src":"3549:11:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14176,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3525:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LPManualWhitelist_$14356_$","typeString":"type(contract super LPManualWhitelist)"}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3531:17:53","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17931,"src":"3525:23:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3525:36:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14180,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14170,"src":"3565:11:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14182,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"3585:12:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}],"id":14181,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3580:4:53","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:18:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ILPWhitelist_$23596","typeString":"type(contract ILPWhitelist)"}},"id":14184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3599:11:53","memberName":"interfaceId","nodeType":"MemberAccess","src":"3580:30:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3565:45:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3525:85:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14175,"id":14187,"nodeType":"Return","src":"3518:92:53"}]},"documentation":{"id":14168,"nodeType":"StructuredDocumentation","src":"3366:52:53","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":14189,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3430:17:53","nodeType":"FunctionDefinition","overrides":{"id":14172,"nodeType":"OverrideSpecifier","overrides":[],"src":"3488:8:53"},"parameters":{"id":14171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14170,"mutability":"mutable","name":"interfaceId","nameLocation":"3455:11:53","nodeType":"VariableDeclaration","scope":14189,"src":"3448:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14169,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3448:6:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3447:20:53"},"returnParameters":{"id":14175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14189,"src":"3506:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14173,"name":"bool","nodeType":"ElementaryTypeName","src":"3506:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3505:6:53"},"scope":14356,"src":"3421:194:53","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23567],"body":{"id":14231,"nodeType":"Block","src":"3717:199:53","statements":[{"assignments":[14204],"declarations":[{"constant":false,"id":14204,"mutability":"mutable","name":"wl","nameLocation":"3740:2:53","nodeType":"VariableDeclaration","scope":14231,"src":"3723:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":14203,"nodeType":"UserDefinedTypeName","pathNode":{"id":14202,"name":"WhitelistOptions","nameLocations":["3723:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"3723:16:53"},"referencedDeclaration":13954,"src":"3723:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"}],"id":14209,"initialValue":{"expression":{"baseExpression":{"id":14205,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"3745:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14207,"indexExpression":{"id":14206,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14194,"src":"3755:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3745:19:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3765:7:53","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":13957,"src":"3745:27:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"VariableDeclarationStatement","src":"3723:49:53"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14210,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"3782:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14211,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"3788:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3805:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"3788:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"3782:32:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14225,"nodeType":"IfStatement","src":"3778:87:53","trueBody":{"id":14224,"nodeType":"Block","src":"3816:49:53","statements":[{"expression":{"id":14222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14214,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"3824:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":14215,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"3829:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14220,"indexExpression":{"arguments":[{"hexValue":"30","id":14218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3839:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14216,"name":"address","nodeType":"ElementaryTypeName","src":"3839:7:53","typeDescriptions":{}}},"id":14219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3839:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3829:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3851:7:53","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":13957,"src":"3829:29:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"3824:34:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"id":14223,"nodeType":"ExpressionStatement","src":"3824:34:53"}]}},{"expression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14226,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"3877:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14227,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"3883:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3900:11:53","memberName":"whitelisted","nodeType":"MemberAccess","referencedDeclaration":13952,"src":"3883:28:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"3877:34:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14201,"id":14230,"nodeType":"Return","src":"3870:41:53"}]},"functionSelector":"37ee20dd","id":14232,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsDeposit","nameLocation":"3628:14:53","nodeType":"FunctionDefinition","overrides":{"id":14198,"nodeType":"OverrideSpecifier","overrides":[],"src":"3693:8:53"},"parameters":{"id":14197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14232,"src":"3643:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":14191,"nodeType":"UserDefinedTypeName","pathNode":{"id":14190,"name":"IEToken","nameLocations":["3643:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"3643:7:53"},"referencedDeclaration":23549,"src":"3643:7:53","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":14194,"mutability":"mutable","name":"provider","nameLocation":"3660:8:53","nodeType":"VariableDeclaration","scope":14232,"src":"3652:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14193,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14232,"src":"3670:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14195,"name":"uint256","nodeType":"ElementaryTypeName","src":"3670:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3642:36:53"},"returnParameters":{"id":14201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14232,"src":"3711:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14199,"name":"bool","nodeType":"ElementaryTypeName","src":"3711:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3710:6:53"},"scope":14356,"src":"3619:297:53","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23595],"body":{"id":14274,"nodeType":"Block","src":"4021:201:53","statements":[{"assignments":[14247],"declarations":[{"constant":false,"id":14247,"mutability":"mutable","name":"wl","nameLocation":"4044:2:53","nodeType":"VariableDeclaration","scope":14274,"src":"4027:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":14246,"nodeType":"UserDefinedTypeName","pathNode":{"id":14245,"name":"WhitelistOptions","nameLocations":["4027:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"4027:16:53"},"referencedDeclaration":13954,"src":"4027:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"}],"id":14252,"initialValue":{"expression":{"baseExpression":{"id":14248,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4049:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14250,"indexExpression":{"id":14249,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14237,"src":"4059:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4049:19:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4069:8:53","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":13960,"src":"4049:28:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"VariableDeclarationStatement","src":"4027:50:53"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14253,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14247,"src":"4087:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14254,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4093:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4110:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"4093:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4087:32:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14268,"nodeType":"IfStatement","src":"4083:88:53","trueBody":{"id":14267,"nodeType":"Block","src":"4121:50:53","statements":[{"expression":{"id":14265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14257,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14247,"src":"4129:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":14258,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4134:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14263,"indexExpression":{"arguments":[{"hexValue":"30","id":14261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4152:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4144:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14259,"name":"address","nodeType":"ElementaryTypeName","src":"4144:7:53","typeDescriptions":{}}},"id":14262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4144:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4134:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4156:8:53","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":13960,"src":"4134:30:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4129:35:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"id":14266,"nodeType":"ExpressionStatement","src":"4129:35:53"}]}},{"expression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14269,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14247,"src":"4183:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14270,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4189:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4206:11:53","memberName":"whitelisted","nodeType":"MemberAccess","referencedDeclaration":13952,"src":"4189:28:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4183:34:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14244,"id":14273,"nodeType":"Return","src":"4176:41:53"}]},"functionSelector":"9051c763","id":14275,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsWithdrawal","nameLocation":"3929:17:53","nodeType":"FunctionDefinition","overrides":{"id":14241,"nodeType":"OverrideSpecifier","overrides":[],"src":"3997:8:53"},"parameters":{"id":14240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14275,"src":"3947:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":14234,"nodeType":"UserDefinedTypeName","pathNode":{"id":14233,"name":"IEToken","nameLocations":["3947:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"3947:7:53"},"referencedDeclaration":23549,"src":"3947:7:53","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":14237,"mutability":"mutable","name":"provider","nameLocation":"3964:8:53","nodeType":"VariableDeclaration","scope":14275,"src":"3956:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14236,"name":"address","nodeType":"ElementaryTypeName","src":"3956:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14275,"src":"3974:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14238,"name":"uint256","nodeType":"ElementaryTypeName","src":"3974:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3946:36:53"},"returnParameters":{"id":14244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14275,"src":"4015:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14242,"name":"bool","nodeType":"ElementaryTypeName","src":"4015:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4014:6:53"},"scope":14356,"src":"3920:302:53","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23582],"body":{"id":14349,"nodeType":"Block","src":"4369:419:53","statements":[{"assignments":[14292],"declarations":[{"constant":false,"id":14292,"mutability":"mutable","name":"wl","nameLocation":"4392:2:53","nodeType":"VariableDeclaration","scope":14349,"src":"4375:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"typeName":{"id":14291,"nodeType":"UserDefinedTypeName","pathNode":{"id":14290,"name":"WhitelistOptions","nameLocations":["4375:16:53"],"nodeType":"IdentifierPath","referencedDeclaration":13954,"src":"4375:16:53"},"referencedDeclaration":13954,"src":"4375:16:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"visibility":"internal"}],"id":14297,"initialValue":{"expression":{"baseExpression":{"id":14293,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4397:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14295,"indexExpression":{"id":14294,"name":"providerFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"4407:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4397:23:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4421:12:53","memberName":"sendTransfer","nodeType":"MemberAccess","referencedDeclaration":13963,"src":"4397:36:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"VariableDeclarationStatement","src":"4375:58:53"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14298,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4443:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14299,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4449:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4466:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"4449:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4443:32:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14313,"nodeType":"IfStatement","src":"4439:92:53","trueBody":{"id":14312,"nodeType":"Block","src":"4477:54:53","statements":[{"expression":{"id":14310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14302,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4485:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":14303,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4490:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14308,"indexExpression":{"arguments":[{"hexValue":"30","id":14306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4508:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4500:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14304,"name":"address","nodeType":"ElementaryTypeName","src":"4500:7:53","typeDescriptions":{}}},"id":14307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4500:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4490:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4512:12:53","memberName":"sendTransfer","nodeType":"MemberAccess","referencedDeclaration":13963,"src":"4490:34:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4485:39:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"id":14311,"nodeType":"ExpressionStatement","src":"4485:39:53"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14314,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4540:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14315,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4546:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4563:11:53","memberName":"whitelisted","nodeType":"MemberAccess","referencedDeclaration":13952,"src":"4546:28:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4540:34:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14320,"nodeType":"IfStatement","src":"4536:52:53","trueBody":{"expression":{"hexValue":"66616c7365","id":14318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4583:5:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14289,"id":14319,"nodeType":"Return","src":"4576:12:53"}},{"expression":{"id":14326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14321,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4594:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":14322,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4599:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14324,"indexExpression":{"id":14323,"name":"providerTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14282,"src":"4609:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4599:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4621:15:53","memberName":"receiveTransfer","nodeType":"MemberAccess","referencedDeclaration":13966,"src":"4599:37:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4594:42:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"id":14327,"nodeType":"ExpressionStatement","src":"4594:42:53"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14328,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4646:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14329,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4652:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4669:9:53","memberName":"undefined","nodeType":"MemberAccess","referencedDeclaration":13951,"src":"4652:26:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4646:32:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14343,"nodeType":"IfStatement","src":"4642:95:53","trueBody":{"id":14342,"nodeType":"Block","src":"4680:57:53","statements":[{"expression":{"id":14340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14332,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4688:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":14333,"name":"_wlStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13972,"src":"4693:9:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_WhitelistStatus_$13967_storage_$","typeString":"mapping(address => struct LPManualWhitelist.WhitelistStatus storage ref)"}},"id":14338,"indexExpression":{"arguments":[{"hexValue":"30","id":14336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4711:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4703:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14334,"name":"address","nodeType":"ElementaryTypeName","src":"4703:7:53","typeDescriptions":{}}},"id":14337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4703:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4693:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_WhitelistStatus_$13967_storage","typeString":"struct LPManualWhitelist.WhitelistStatus storage ref"}},"id":14339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4715:15:53","memberName":"receiveTransfer","nodeType":"MemberAccess","referencedDeclaration":13966,"src":"4693:37:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4688:42:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"id":14341,"nodeType":"ExpressionStatement","src":"4688:42:53"}]}},{"expression":{"commonType":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"},"id":14347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14344,"name":"wl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14292,"src":"4749:2:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14345,"name":"WhitelistOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"4755:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_WhitelistOptions_$13954_$","typeString":"type(enum LPManualWhitelist.WhitelistOptions)"}},"id":14346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4772:11:53","memberName":"whitelisted","nodeType":"MemberAccess","referencedDeclaration":13952,"src":"4755:28:53","typeDescriptions":{"typeIdentifier":"t_enum$_WhitelistOptions_$13954","typeString":"enum LPManualWhitelist.WhitelistOptions"}},"src":"4749:34:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14289,"id":14348,"nodeType":"Return","src":"4742:41:53"}]},"functionSelector":"5fcdca37","id":14350,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsTransfer","nameLocation":"4235:15:53","nodeType":"FunctionDefinition","overrides":{"id":14286,"nodeType":"OverrideSpecifier","overrides":[],"src":"4345:8:53"},"parameters":{"id":14285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14350,"src":"4256:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":14277,"nodeType":"UserDefinedTypeName","pathNode":{"id":14276,"name":"IEToken","nameLocations":["4256:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"4256:7:53"},"referencedDeclaration":23549,"src":"4256:7:53","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":14280,"mutability":"mutable","name":"providerFrom","nameLocation":"4277:12:53","nodeType":"VariableDeclaration","scope":14350,"src":"4269:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14279,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14282,"mutability":"mutable","name":"providerTo","nameLocation":"4303:10:53","nodeType":"VariableDeclaration","scope":14350,"src":"4295:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14281,"name":"address","nodeType":"ElementaryTypeName","src":"4295:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14350,"src":"4319:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14283,"name":"uint256","nodeType":"ElementaryTypeName","src":"4319:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4250:80:53"},"returnParameters":{"id":14289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14350,"src":"4363:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14287,"name":"bool","nodeType":"ElementaryTypeName","src":"4363:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4362:6:53"},"scope":14356,"src":"4226:562:53","stateMutability":"view","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":14351,"nodeType":"StructuredDocumentation","src":"4792:246:53","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":14355,"mutability":"mutable","name":"__gap","nameLocation":"5061:5:53","nodeType":"VariableDeclaration","scope":14356,"src":"5041:25:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":14352,"name":"uint256","nodeType":"ElementaryTypeName","src":"5041:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14354,"length":{"hexValue":"3439","id":14353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5049:2:53","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"5041:11:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":14357,"src":"517:4552:53","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,13979,17740,17747]}],"src":"39:5031:53"},"id":53},"contracts/LiquidityThresholdAssetManager.sol":{"ast":{"absolutePath":"contracts/LiquidityThresholdAssetManager.sol","exportedSymbols":{"IAccessManager":[23370],"IAssetManager":[23421],"IERC165":[7883],"IERC20Metadata":[6066],"IPolicyPoolComponent":[23823],"LiquidityThresholdAssetManager":[14923],"Math":[8749],"SafeCast":[10290]},"id":14924,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":14358,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:54"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":14360,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":10291,"src":"64:73:54","symbolAliases":[{"foreign":{"id":14359,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"72:8:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":14362,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":6067,"src":"138:97:54","symbolAliases":[{"foreign":{"id":14361,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"146:14:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":14364,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":7884,"src":"236:80:54","symbolAliases":[{"foreign":{"id":14363,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"244:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"./interfaces/IPolicyPoolComponent.sol","id":14366,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":23824,"src":"317:75:54","symbolAliases":[{"foreign":{"id":14365,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"325:20:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAssetManager.sol","file":"./interfaces/IAssetManager.sol","id":14368,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":23422,"src":"393:61:54","symbolAliases":[{"foreign":{"id":14367,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"401:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":14370,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":23371,"src":"455:63:54","symbolAliases":[{"foreign":{"id":14369,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"463:14:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":14372,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14924,"sourceUnit":8750,"src":"519:65:54","symbolAliases":[{"foreign":{"id":14371,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"527:4:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":14374,"name":"IAssetManager","nameLocations":["1425:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"1425:13:54"},"id":14375,"nodeType":"InheritanceSpecifier","src":"1425:13:54"}],"canonicalName":"LiquidityThresholdAssetManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":14373,"nodeType":"StructuredDocumentation","src":"586:786:54","text":" @title Base class for asset management strategies that use thresholds for cash and investment balance\n @dev Base class for asset management strategies that use thresholds for cash and investment balance.\n      The specific asset management strategy needs to be implemented by child contracts.\n      Settings liquidityMin, liquidityMiddle, liquidityMax are the thresholds used to define how much liquidity\n      to keep in the PolicyPool and when to invest/deinvest. Every invest/deinvest operation tries to leave the\n      cash at liquidityMiddle.\n @custom:security-contact security@ensuro.co\n @author Ensuro\n @notice This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details."},"fullyImplemented":false,"id":14923,"linearizedBaseContracts":[14923,23421,7883],"name":"LiquidityThresholdAssetManager","nameLocation":"1391:30:54","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14378,"libraryName":{"id":14376,"name":"SafeCast","nameLocations":["1449:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"1449:8:54"},"nodeType":"UsingForDirective","src":"1443:27:54","typeName":{"id":14377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":14381,"mutability":"immutable","name":"_asset","nameLocation":"1508:6:54","nodeType":"VariableDeclaration","scope":14923,"src":"1474:40:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":14380,"nodeType":"UserDefinedTypeName","pathNode":{"id":14379,"name":"IERC20Metadata","nameLocations":["1474:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1474:14:54"},"referencedDeclaration":6066,"src":"1474:14:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"anonymous":false,"eventSelector":"7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb13","id":14388,"name":"GovernanceAction","nameLocation":"1524:16:54","nodeType":"EventDefinition","parameters":{"id":14387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14384,"indexed":true,"mutability":"mutable","name":"action","nameLocation":"1582:6:54","nodeType":"VariableDeclaration","scope":14388,"src":"1541:47:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":14383,"nodeType":"UserDefinedTypeName","pathNode":{"id":14382,"name":"IAccessManager.GovernanceActions","nameLocations":["1541:14:54","1556:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"1541:32:54"},"referencedDeclaration":23301,"src":"1541:32:54","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":14386,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1598:5:54","nodeType":"VariableDeclaration","scope":14388,"src":"1590:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14385,"name":"uint256","nodeType":"ElementaryTypeName","src":"1590:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:64:54"},"src":"1518:87:54"},{"canonicalName":"LiquidityThresholdAssetManager.DiamondStorage","id":14397,"members":[{"constant":false,"id":14390,"mutability":"mutable","name":"liquidityMin","nameLocation":"1644:12:54","nodeType":"VariableDeclaration","scope":14397,"src":"1637:19:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14389,"name":"uint32","nodeType":"ElementaryTypeName","src":"1637:6:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14392,"mutability":"mutable","name":"liquidityMiddle","nameLocation":"1695:15:54","nodeType":"VariableDeclaration","scope":14397,"src":"1688:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14391,"name":"uint32","nodeType":"ElementaryTypeName","src":"1688:6:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14394,"mutability":"mutable","name":"liquidityMax","nameLocation":"1749:12:54","nodeType":"VariableDeclaration","scope":14397,"src":"1742:19:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14393,"name":"uint32","nodeType":"ElementaryTypeName","src":"1742:6:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14396,"mutability":"mutable","name":"lastInvestmentValue","nameLocation":"1801:19:54","nodeType":"VariableDeclaration","scope":14397,"src":"1793:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14395,"name":"uint128","nodeType":"ElementaryTypeName","src":"1793:7:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1616:14:54","nodeType":"StructDefinition","scope":14923,"src":"1609:216:54","visibility":"public"},{"body":{"id":14403,"nodeType":"Block","src":"1866:39:54","statements":[{"id":14399,"nodeType":"PlaceholderStatement","src":"1872:1:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14400,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14467,"src":"1879:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":14401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14402,"nodeType":"ExpressionStatement","src":"1879:21:54"}]},"id":14404,"name":"validateParamsAfterChange","nameLocation":"1838:25:54","nodeType":"ModifierDefinition","parameters":{"id":14398,"nodeType":"ParameterList","parameters":[],"src":"1863:2:54"},"src":"1829:76:54","virtual":false,"visibility":"internal"},{"body":{"id":14427,"nodeType":"Block","src":"1944:134:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14413,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14407,"src":"1966:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}],"id":14412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1958:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14411,"name":"address","nodeType":"ElementaryTypeName","src":"1958:7:54","typeDescriptions":{}}},"id":14414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1958:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":14417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1985:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1977:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14415,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:54","typeDescriptions":{}}},"id":14418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1958:29:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69717569646974795468726573686f6c6441737365744d616e616765723a2061737365742063616e6e6f74206265207a65726f2061646472657373","id":14420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1989:62:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd","typeString":"literal_string \"LiquidityThresholdAssetManager: asset cannot be zero address\""},"value":"LiquidityThresholdAssetManager: asset cannot be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd","typeString":"literal_string \"LiquidityThresholdAssetManager: asset cannot be zero address\""}],"id":14410,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1950:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1950:102:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14422,"nodeType":"ExpressionStatement","src":"1950:102:54"},{"expression":{"id":14425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14423,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"2058:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14424,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14407,"src":"2067:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"src":"2058:15:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14426,"nodeType":"ExpressionStatement","src":"2058:15:54"}]},"id":14428,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14407,"mutability":"mutable","name":"asset_","nameLocation":"1936:6:54","nodeType":"VariableDeclaration","scope":14428,"src":"1921:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":14406,"nodeType":"UserDefinedTypeName","pathNode":{"id":14405,"name":"IERC20Metadata","nameLocations":["1921:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1921:14:54"},"referencedDeclaration":6066,"src":"1921:14:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"1920:23:54"},"returnParameters":{"id":14409,"nodeType":"ParameterList","parameters":[],"src":"1944:0:54"},"scope":14923,"src":"1909:169:54","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14441,"nodeType":"Block","src":"2158:358:54","statements":[{"assignments":[14435],"declarations":[{"constant":false,"id":14435,"mutability":"mutable","name":"storagePosition","nameLocation":"2334:15:54","nodeType":"VariableDeclaration","scope":14441,"src":"2326:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2326:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14439,"initialValue":{"arguments":[{"hexValue":"636f2e656e7375726f2e4c69717569646974795468726573686f6c6441737365744d616e61676572","id":14437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2362:42:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46","typeString":"literal_string \"co.ensuro.LiquidityThresholdAssetManager\""},"value":"co.ensuro.LiquidityThresholdAssetManager"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46","typeString":"literal_string \"co.ensuro.LiquidityThresholdAssetManager\""}],"id":14436,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2352:9:54","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2352:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2326:79:54"},{"AST":{"nativeSrc":"2472:40:54","nodeType":"YulBlock","src":"2472:40:54","statements":[{"nativeSrc":"2480:26:54","nodeType":"YulAssignment","src":"2480:26:54","value":{"name":"storagePosition","nativeSrc":"2491:15:54","nodeType":"YulIdentifier","src":"2491:15:54"},"variableNames":[{"name":"ds.slot","nativeSrc":"2480:7:54","nodeType":"YulIdentifier","src":"2480:7:54"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":14432,"isOffset":false,"isSlot":true,"src":"2480:7:54","suffix":"slot","valueSize":1},{"declaration":14435,"isOffset":false,"isSlot":false,"src":"2491:15:54","valueSize":1}],"id":14440,"nodeType":"InlineAssembly","src":"2463:49:54"}]},"id":14442,"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"2091:14:54","nodeType":"FunctionDefinition","parameters":{"id":14429,"nodeType":"ParameterList","parameters":[],"src":"2105:2:54"},"returnParameters":{"id":14433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14432,"mutability":"mutable","name":"ds","nameLocation":"2154:2:54","nodeType":"VariableDeclaration","scope":14442,"src":"2131:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14431,"nodeType":"UserDefinedTypeName","pathNode":{"id":14430,"name":"DiamondStorage","nameLocations":["2131:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"2131:14:54"},"referencedDeclaration":14397,"src":"2131:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"src":"2130:27:54"},"scope":14923,"src":"2082:434:54","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14466,"nodeType":"Block","src":"2565:211:54","statements":[{"assignments":[14447],"declarations":[{"constant":false,"id":14447,"mutability":"mutable","name":"ds","nameLocation":"2594:2:54","nodeType":"VariableDeclaration","scope":14466,"src":"2571:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14446,"nodeType":"UserDefinedTypeName","pathNode":{"id":14445,"name":"DiamondStorage","nameLocations":["2571:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"2571:14:54"},"referencedDeclaration":14397,"src":"2571:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14450,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14448,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"2599:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2571:44:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":14456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14452,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14447,"src":"2637:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2640:12:54","memberName":"liquidityMin","nodeType":"MemberAccess","referencedDeclaration":14390,"src":"2637:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":14454,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14447,"src":"2656:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2659:15:54","memberName":"liquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"2656:18:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2637:37:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":14461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14457,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14447,"src":"2678:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2681:15:54","memberName":"liquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"2678:18:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":14459,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14447,"src":"2700:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2703:12:54","memberName":"liquidityMax","nodeType":"MemberAccess","referencedDeclaration":14394,"src":"2700:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2678:37:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2637:78:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a204c6971756964697479206c696d6974732061726520696e76616c6964","id":14463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2723:42:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76","typeString":"literal_string \"Validation: Liquidity limits are invalid\""},"value":"Validation: Liquidity limits are invalid"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76","typeString":"literal_string \"Validation: Liquidity limits are invalid\""}],"id":14451,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2622:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2622:149:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14465,"nodeType":"ExpressionStatement","src":"2622:149:54"}]},"id":14467,"implemented":true,"kind":"function","modifiers":[],"name":"_validateParameters","nameLocation":"2529:19:54","nodeType":"FunctionDefinition","parameters":{"id":14443,"nodeType":"ParameterList","parameters":[],"src":"2548:2:54"},"returnParameters":{"id":14444,"nodeType":"ParameterList","parameters":[],"src":"2565:0:54"},"scope":14923,"src":"2520:256:54","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[23396],"body":{"id":14517,"nodeType":"Block","src":"2823:407:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"id":14483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":14475,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2866:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}],"id":14474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2858:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14473,"name":"address","nodeType":"ElementaryTypeName","src":"2858:7:54","typeDescriptions":{}}},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14472,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"2837:20:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}},"id":14477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2837:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":14478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:10:54","memberName":"policyPool","nodeType":"MemberAccess","referencedDeclaration":23822,"src":"2837:46:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPolicyPool_$23806_$","typeString":"function () view external returns (contract IPolicyPool)"}},"id":14479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2837:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2886:8:54","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"2837:57:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2837:59:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14482,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"2900:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"src":"2837:69:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4173736574206d69736d61746368","id":14484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2908:16:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e","typeString":"literal_string \"Asset mismatch\""},"value":"Asset mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e","typeString":"literal_string \"Asset mismatch\""}],"id":14471,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2829:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2829:96:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14486,"nodeType":"ExpressionStatement","src":"2829:96:54"},{"assignments":[14489],"declarations":[{"constant":false,"id":14489,"mutability":"mutable","name":"ds","nameLocation":"2954:2:54","nodeType":"VariableDeclaration","scope":14517,"src":"2931:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14488,"nodeType":"UserDefinedTypeName","pathNode":{"id":14487,"name":"DiamondStorage","nameLocations":["2931:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"2931:14:54"},"referencedDeclaration":14397,"src":"2931:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14492,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14490,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"2959:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2959:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2931:44:54"},{"expression":{"id":14497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14493,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14489,"src":"3121:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3124:12:54","memberName":"liquidityMin","nodeType":"MemberAccess","referencedDeclaration":14390,"src":"3121:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3139:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3121:19:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14498,"nodeType":"ExpressionStatement","src":"3121:19:54"},{"expression":{"id":14503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14499,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14489,"src":"3146:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3149:15:54","memberName":"liquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"3146:18:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3167:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3146:22:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14504,"nodeType":"ExpressionStatement","src":"3146:22:54"},{"expression":{"id":14509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14505,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14489,"src":"3174:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3177:12:54","memberName":"liquidityMax","nodeType":"MemberAccess","referencedDeclaration":14394,"src":"3174:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3192:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3174:19:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14510,"nodeType":"ExpressionStatement","src":"3174:19:54"},{"expression":{"id":14515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14511,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14489,"src":"3199:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3202:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"3199:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3199:26:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14516,"nodeType":"ExpressionStatement","src":"3199:26:54"}]},"functionSelector":"948cb719","id":14518,"implemented":true,"kind":"function","modifiers":[],"name":"connect","nameLocation":"2789:7:54","nodeType":"FunctionDefinition","overrides":{"id":14469,"nodeType":"OverrideSpecifier","overrides":[],"src":"2814:8:54"},"parameters":{"id":14468,"nodeType":"ParameterList","parameters":[],"src":"2796:2:54"},"returnParameters":{"id":14470,"nodeType":"ParameterList","parameters":[],"src":"2823:0:54"},"scope":14923,"src":"2780:450:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[23406],"body":{"id":14565,"nodeType":"Block","src":"3303:312:54","statements":[{"assignments":[14525],"declarations":[{"constant":false,"id":14525,"mutability":"mutable","name":"investmentValue","nameLocation":"3317:15:54","nodeType":"VariableDeclaration","scope":14565,"src":"3309:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14524,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14526,"name":"getInvestmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14572,"src":"3335:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3335:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3309:46:54"},{"assignments":[14531],"declarations":[{"constant":false,"id":14531,"mutability":"mutable","name":"ds","nameLocation":"3384:2:54","nodeType":"VariableDeclaration","scope":14565,"src":"3361:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14530,"nodeType":"UserDefinedTypeName","pathNode":{"id":14529,"name":"DiamondStorage","nameLocations":["3361:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"3361:14:54"},"referencedDeclaration":14397,"src":"3361:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14534,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14532,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"3389:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3389:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3361:44:54"},{"assignments":[14536],"declarations":[{"constant":false,"id":14536,"mutability":"mutable","name":"earnings","nameLocation":"3418:8:54","nodeType":"VariableDeclaration","scope":14565,"src":"3411:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14535,"name":"int256","nodeType":"ElementaryTypeName","src":"3411:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":14550,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14539,"name":"investmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14525,"src":"3436:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3429:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14537,"name":"int256","nodeType":"ElementaryTypeName","src":"3429:6:54","typeDescriptions":{}}},"id":14540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3429:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":14545,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14531,"src":"3470:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3473:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"3470:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":14544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3462:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14543,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:54","typeDescriptions":{}}},"id":14547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3455:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14541,"name":"int256","nodeType":"ElementaryTypeName","src":"3455:6:54","typeDescriptions":{}}},"id":14548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3429:65:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3411:83:54"},{"expression":{"id":14557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14551,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14531,"src":"3500:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3503:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"3500:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14554,"name":"investmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14525,"src":"3525:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3541:9:54","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"3525:25:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":14556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3525:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3500:52:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14558,"nodeType":"ExpressionStatement","src":"3500:52:54"},{"eventCall":{"arguments":[{"id":14560,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"3580:8:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":14559,"name":"EarningsRecorded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23392,"src":"3563:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":14561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3563:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14562,"nodeType":"EmitStatement","src":"3558:31:54"},{"expression":{"id":14563,"name":"earnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"3602:8:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":14523,"id":14564,"nodeType":"Return","src":"3595:15:54"}]},"functionSelector":"4eb978a4","id":14566,"implemented":true,"kind":"function","modifiers":[],"name":"recordEarnings","nameLocation":"3243:14:54","nodeType":"FunctionDefinition","overrides":{"id":14520,"nodeType":"OverrideSpecifier","overrides":[],"src":"3277:8:54"},"parameters":{"id":14519,"nodeType":"ParameterList","parameters":[],"src":"3257:2:54"},"returnParameters":{"id":14523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14566,"src":"3295:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14521,"name":"int256","nodeType":"ElementaryTypeName","src":"3295:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3294:8:54"},"scope":14923,"src":"3234:381:54","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":14567,"nodeType":"StructuredDocumentation","src":"3619:73:54","text":" @dev Returns the current value of the investment portfolio"},"functionSelector":"4dd93bd3","id":14572,"implemented":false,"kind":"function","modifiers":[],"name":"getInvestmentValue","nameLocation":"3704:18:54","nodeType":"FunctionDefinition","parameters":{"id":14568,"nodeType":"ParameterList","parameters":[],"src":"3722:2:54"},"returnParameters":{"id":14571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14572,"src":"3754:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3754:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3753:9:54"},"scope":14923,"src":"3695:68:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23400],"body":{"id":14627,"nodeType":"Block","src":"3882:341:54","statements":[{"assignments":[14578],"declarations":[{"constant":false,"id":14578,"mutability":"mutable","name":"cash","nameLocation":"3896:4:54","nodeType":"VariableDeclaration","scope":14627,"src":"3888:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14577,"name":"uint256","nodeType":"ElementaryTypeName","src":"3888:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14586,"initialValue":{"arguments":[{"arguments":[{"id":14583,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3928:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}],"id":14582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3920:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14581,"name":"address","nodeType":"ElementaryTypeName","src":"3920:7:54","typeDescriptions":{}}},"id":14584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3920:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14579,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"3903:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3910:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"3903:16:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3888:46:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14587,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"3944:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14588,"name":"liquidityMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14787,"src":"3951:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3944:21:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14599,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"4025:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14600,"name":"liquidityMin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"4032:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4025:21:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14625,"nodeType":"IfStatement","src":"4021:198:54","trueBody":{"id":14624,"nodeType":"Block","src":"4048:171:54","statements":[{"assignments":[14604],"declarations":[{"constant":false,"id":14604,"mutability":"mutable","name":"deinvestAmount","nameLocation":"4064:14:54","nodeType":"VariableDeclaration","scope":14624,"src":"4056:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14603,"name":"uint256","nodeType":"ElementaryTypeName","src":"4056:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14614,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":14607,"name":"getInvestmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14572,"src":"4090:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4090:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14609,"name":"liquidityMiddle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"4112:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4112:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14611,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"4132:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4112:24:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14605,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"4081:4:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4086:3:54","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"4081:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:56:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4056:81:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14615,"name":"deinvestAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14604,"src":"4149:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4166:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4149:18:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14623,"nodeType":"IfStatement","src":"4145:68:54","trueBody":{"id":14622,"nodeType":"Block","src":"4169:44:54","statements":[{"expression":{"arguments":[{"id":14619,"name":"deinvestAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14604,"src":"4189:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14618,"name":"_deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"4179:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4179:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14621,"nodeType":"ExpressionStatement","src":"4179:25:54"}]}}]}},"id":14626,"nodeType":"IfStatement","src":"3940:279:54","trueBody":{"id":14598,"nodeType":"Block","src":"3967:48:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14592,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14578,"src":"3983:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14593,"name":"liquidityMiddle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"3990:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3990:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3983:24:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14591,"name":"_invest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14707,"src":"3975:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14597,"nodeType":"ExpressionStatement","src":"3975:33:54"}]}}]},"documentation":{"id":14573,"nodeType":"StructuredDocumentation","src":"3767:65:54","text":" @dev Rebalances cash between PolicyPool wallet and"},"functionSelector":"7d7c2a1c","id":14628,"implemented":true,"kind":"function","modifiers":[],"name":"rebalance","nameLocation":"3844:9:54","nodeType":"FunctionDefinition","overrides":{"id":14575,"nodeType":"OverrideSpecifier","overrides":[],"src":"3873:8:54"},"parameters":{"id":14574,"nodeType":"ParameterList","parameters":[],"src":"3853:2:54"},"returnParameters":{"id":14576,"nodeType":"ParameterList","parameters":[],"src":"3882:0:54"},"scope":14923,"src":"3835:388:54","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[23414],"body":{"id":14682,"nodeType":"Block","src":"4590:435:54","statements":[{"assignments":[14638],"declarations":[{"constant":false,"id":14638,"mutability":"mutable","name":"cash","nameLocation":"4604:4:54","nodeType":"VariableDeclaration","scope":14682,"src":"4596:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14637,"name":"uint256","nodeType":"ElementaryTypeName","src":"4596:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14646,"initialValue":{"arguments":[{"arguments":[{"id":14643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4636:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LiquidityThresholdAssetManager_$14923","typeString":"contract LiquidityThresholdAssetManager"}],"id":14642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4628:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14641,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:54","typeDescriptions":{}}},"id":14644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4628:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14639,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"4611:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4618:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"4611:16:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4596:46:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14648,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14638,"src":"4656:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14649,"name":"paymentAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14631,"src":"4663:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4656:20:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f722074686973207061796d656e74","id":14651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4678:47:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062","typeString":"literal_string \"No need to refill the wallet for this payment\""},"value":"No need to refill the wallet for this payment"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062","typeString":"literal_string \"No need to refill the wallet for this payment\""}],"id":14647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4648:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4648:78:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14653,"nodeType":"ExpressionStatement","src":"4648:78:54"},{"assignments":[14655],"declarations":[{"constant":false,"id":14655,"mutability":"mutable","name":"investmentValue","nameLocation":"4740:15:54","nodeType":"VariableDeclaration","scope":14682,"src":"4732:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14654,"name":"uint256","nodeType":"ElementaryTypeName","src":"4732:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14658,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14656,"name":"getInvestmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14572,"src":"4758:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4758:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4732:46:54"},{"expression":{"id":14666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14659,"name":"deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"4859:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14660,"name":"paymentAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14631,"src":"4870:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14661,"name":"liquidityMiddle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"4886:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4886:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4870:33:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14664,"name":"cash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14638,"src":"4906:4:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4870:40:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4859:51:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14667,"nodeType":"ExpressionStatement","src":"4859:51:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14668,"name":"deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"4920:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14669,"name":"investmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14655,"src":"4931:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4920:26:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14675,"nodeType":"IfStatement","src":"4916:58:54","trueBody":{"expression":{"id":14673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14671,"name":"deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"4948:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14672,"name":"investmentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14655,"src":"4959:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4948:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14674,"nodeType":"ExpressionStatement","src":"4948:26:54"}},{"expression":{"arguments":[{"id":14677,"name":"deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"4990:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14676,"name":"_deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14739,"src":"4980:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14679,"nodeType":"ExpressionStatement","src":"4980:19:54"},{"expression":{"id":14680,"name":"deinvest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14635,"src":"5012:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14636,"id":14681,"nodeType":"Return","src":"5005:15:54"}]},"documentation":{"id":14629,"nodeType":"StructuredDocumentation","src":"4227:270:54","text":" @dev This is called from PolicyPool when doesn't have enough money for payment.\n      After the call, there should be enough money in PolicyPool.currency().balanceOf(this) to\n      do the payment\n @param paymentAmount The amount of the payment"},"functionSelector":"1014a0c2","id":14683,"implemented":true,"kind":"function","modifiers":[],"name":"refillWallet","nameLocation":"4509:12:54","nodeType":"FunctionDefinition","overrides":{"id":14633,"nodeType":"OverrideSpecifier","overrides":[],"src":"4554:8:54"},"parameters":{"id":14632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14631,"mutability":"mutable","name":"paymentAmount","nameLocation":"4530:13:54","nodeType":"VariableDeclaration","scope":14683,"src":"4522:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14630,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4521:23:54"},"returnParameters":{"id":14636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14635,"mutability":"mutable","name":"deinvest","nameLocation":"4580:8:54","nodeType":"VariableDeclaration","scope":14683,"src":"4572:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14634,"name":"uint256","nodeType":"ElementaryTypeName","src":"4572:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4571:18:54"},"scope":14923,"src":"4500:525:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14706,"nodeType":"Block","src":"5079:194:54","statements":[{"assignments":[14690],"declarations":[{"constant":false,"id":14690,"mutability":"mutable","name":"ds","nameLocation":"5108:2:54","nodeType":"VariableDeclaration","scope":14706,"src":"5085:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14689,"nodeType":"UserDefinedTypeName","pathNode":{"id":14688,"name":"DiamondStorage","nameLocations":["5085:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"5085:14:54"},"referencedDeclaration":14397,"src":"5085:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14693,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14691,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"5113:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5113:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5085:44:54"},{"expression":{"id":14700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14694,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14690,"src":"5135:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5138:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"5135:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14697,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"5161:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5168:9:54","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"5161:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":14699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5161:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5135:44:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14701,"nodeType":"ExpressionStatement","src":"5135:44:54"},{"eventCall":{"arguments":[{"id":14703,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"5204:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14702,"name":"MoneyInvested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23382,"src":"5190:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5190:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14705,"nodeType":"EmitStatement","src":"5185:26:54"}]},"id":14707,"implemented":true,"kind":"function","modifiers":[],"name":"_invest","nameLocation":"5038:7:54","nodeType":"FunctionDefinition","parameters":{"id":14686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14685,"mutability":"mutable","name":"amount","nameLocation":"5054:6:54","nodeType":"VariableDeclaration","scope":14707,"src":"5046:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14684,"name":"uint256","nodeType":"ElementaryTypeName","src":"5046:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5045:16:54"},"returnParameters":{"id":14687,"nodeType":"ParameterList","parameters":[],"src":"5079:0:54"},"scope":14923,"src":"5029:244:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":14738,"nodeType":"Block","src":"5329:239:54","statements":[{"assignments":[14714],"declarations":[{"constant":false,"id":14714,"mutability":"mutable","name":"ds","nameLocation":"5358:2:54","nodeType":"VariableDeclaration","scope":14738,"src":"5335:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14713,"nodeType":"UserDefinedTypeName","pathNode":{"id":14712,"name":"DiamondStorage","nameLocations":["5335:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"5335:14:54"},"referencedDeclaration":14397,"src":"5335:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14717,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14715,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"5363:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5363:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5335:44:54"},{"expression":{"id":14732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14718,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"5385:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5388:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"5385:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"expression":{"id":14725,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"5428:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5431:19:54","memberName":"lastInvestmentValue","nodeType":"MemberAccess","referencedDeclaration":14396,"src":"5428:22:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":14724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5420:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14723,"name":"uint256","nodeType":"ElementaryTypeName","src":"5420:7:54","typeDescriptions":{}}},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5420:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14728,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14709,"src":"5453:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14721,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"5411:4:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":14722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5416:3:54","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"5411:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5411:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5461:9:54","memberName":"toUint128","nodeType":"MemberAccess","referencedDeclaration":9152,"src":"5411:59:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint128_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint128)"}},"id":14731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5411:61:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5385:87:54","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14733,"nodeType":"ExpressionStatement","src":"5385:87:54"},{"eventCall":{"arguments":[{"id":14735,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14709,"src":"5499:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14734,"name":"MoneyDeinvested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23387,"src":"5483:15:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5483:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14737,"nodeType":"EmitStatement","src":"5478:28:54"}]},"id":14739,"implemented":true,"kind":"function","modifiers":[],"name":"_deinvest","nameLocation":"5286:9:54","nodeType":"FunctionDefinition","parameters":{"id":14710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14709,"mutability":"mutable","name":"amount","nameLocation":"5304:6:54","nodeType":"VariableDeclaration","scope":14739,"src":"5296:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14708,"name":"uint256","nodeType":"ElementaryTypeName","src":"5296:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5295:16:54"},"returnParameters":{"id":14711,"nodeType":"ParameterList","parameters":[],"src":"5329:0:54"},"scope":14923,"src":"5277:291:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":14754,"nodeType":"Block","src":"5626:73:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14744,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"5639:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5639:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:54","memberName":"liquidityMin","nodeType":"MemberAccess","referencedDeclaration":14390,"src":"5639:29:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5671:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14748,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"5677:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5684:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"5677:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5671:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5639:55:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14743,"id":14753,"nodeType":"Return","src":"5632:62:54"}]},"functionSelector":"8d7ddd90","id":14755,"implemented":true,"kind":"function","modifiers":[],"name":"liquidityMin","nameLocation":"5581:12:54","nodeType":"FunctionDefinition","parameters":{"id":14740,"nodeType":"ParameterList","parameters":[],"src":"5593:2:54"},"returnParameters":{"id":14743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14755,"src":"5617:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14741,"name":"uint256","nodeType":"ElementaryTypeName","src":"5617:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5616:9:54"},"scope":14923,"src":"5572:127:54","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14770,"nodeType":"Block","src":"5760:76:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14760,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"5773:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5790:15:54","memberName":"liquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"5773:32:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5808:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14764,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"5814:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5821:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"5814:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5814:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5808:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5773:58:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14759,"id":14769,"nodeType":"Return","src":"5766:65:54"}]},"functionSelector":"f9c4fd1b","id":14771,"implemented":true,"kind":"function","modifiers":[],"name":"liquidityMiddle","nameLocation":"5712:15:54","nodeType":"FunctionDefinition","parameters":{"id":14756,"nodeType":"ParameterList","parameters":[],"src":"5727:2:54"},"returnParameters":{"id":14759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14771,"src":"5751:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5751:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5750:9:54"},"scope":14923,"src":"5703:133:54","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14786,"nodeType":"Block","src":"5894:73:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14776,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"5907:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5924:12:54","memberName":"liquidityMax","nodeType":"MemberAccess","referencedDeclaration":14394,"src":"5907:29:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5939:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14780,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"5945:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5952:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"5945:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5939:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5907:55:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14775,"id":14785,"nodeType":"Return","src":"5900:62:54"}]},"functionSelector":"3b6612c8","id":14787,"implemented":true,"kind":"function","modifiers":[],"name":"liquidityMax","nameLocation":"5849:12:54","nodeType":"FunctionDefinition","parameters":{"id":14772,"nodeType":"ParameterList","parameters":[],"src":"5861:2:54"},"returnParameters":{"id":14775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14787,"src":"5885:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14773,"name":"uint256","nodeType":"ElementaryTypeName","src":"5885:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5884:9:54"},"scope":14923,"src":"5840:127:54","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14897,"nodeType":"Block","src":"6080:652:54","statements":[{"assignments":[14800],"declarations":[{"constant":false,"id":14800,"mutability":"mutable","name":"ds","nameLocation":"6109:2:54","nodeType":"VariableDeclaration","scope":14897,"src":"6086:25:54","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"},"typeName":{"id":14799,"nodeType":"UserDefinedTypeName","pathNode":{"id":14798,"name":"DiamondStorage","nameLocations":["6086:14:54"],"nodeType":"IdentifierPath","referencedDeclaration":14397,"src":"6086:14:54"},"referencedDeclaration":14397,"src":"6086:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage"}},"visibility":"internal"}],"id":14803,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14801,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14442,"src":"6114:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$14397_storage_ptr_$","typeString":"function () pure returns (struct LiquidityThresholdAssetManager.DiamondStorage storage pointer)"}},"id":14802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6086:44:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14804,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14789,"src":"6140:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":14807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6152:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14806,"name":"uint256","nodeType":"ElementaryTypeName","src":"6152:7:54","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14805,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6147:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6161:3:54","memberName":"max","nodeType":"MemberAccess","src":"6147:17:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6140:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14834,"nodeType":"IfStatement","src":"6136:189:54","trueBody":{"id":14833,"nodeType":"Block","src":"6166:159:54","statements":[{"expression":{"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14811,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"6174:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6177:12:54","memberName":"liquidityMin","nodeType":"MemberAccess","referencedDeclaration":14390,"src":"6174:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14814,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14789,"src":"6193:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14816,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"6205:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6212:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"6205:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6205:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6199:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6193:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14821,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6192:31:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6224:8:54","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":9452,"src":"6192:40:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint32)"}},"id":14823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"6174:60:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14825,"nodeType":"ExpressionStatement","src":"6174:60:54"},{"eventCall":{"arguments":[{"expression":{"expression":{"id":14827,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"6264:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":14828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6279:17:54","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"6264:32:54","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":14829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6297:15:54","memberName":"setLiquidityMin","nodeType":"MemberAccess","referencedDeclaration":23293,"src":"6264:48:54","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":14830,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14789,"src":"6314:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14826,"name":"GovernanceAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14388,"src":"6247:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":14831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:71:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14832,"nodeType":"EmitStatement","src":"6242:76:54"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14835,"name":"middle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14791,"src":"6334:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":14838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6349:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14837,"name":"uint256","nodeType":"ElementaryTypeName","src":"6349:7:54","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14836,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6344:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6344:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6358:3:54","memberName":"max","nodeType":"MemberAccess","src":"6344:17:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6334:27:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14865,"nodeType":"IfStatement","src":"6330:204:54","trueBody":{"id":14864,"nodeType":"Block","src":"6363:171:54","statements":[{"expression":{"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14842,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"6371:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6374:15:54","memberName":"liquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"6371:18:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14845,"name":"middle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14791,"src":"6393:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6402:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14847,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"6408:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6415:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"6408:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6408:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6402:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6393:32:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6392:34:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6427:8:54","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":9452,"src":"6392:43:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint32)"}},"id":14854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6392:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"6371:66:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14856,"nodeType":"ExpressionStatement","src":"6371:66:54"},{"eventCall":{"arguments":[{"expression":{"expression":{"id":14858,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"6467:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":14859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6482:17:54","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"6467:32:54","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6500:18:54","memberName":"setLiquidityMiddle","nodeType":"MemberAccess","referencedDeclaration":23294,"src":"6467:51:54","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":14861,"name":"middle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14791,"src":"6520:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14857,"name":"GovernanceAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14388,"src":"6450:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":14862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6450:77:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14863,"nodeType":"EmitStatement","src":"6445:82:54"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14866,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14793,"src":"6543:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":14869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6555:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14868,"name":"uint256","nodeType":"ElementaryTypeName","src":"6555:7:54","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14867,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6550:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6550:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:3:54","memberName":"max","nodeType":"MemberAccess","src":"6550:17:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6543:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14896,"nodeType":"IfStatement","src":"6539:189:54","trueBody":{"id":14895,"nodeType":"Block","src":"6569:159:54","statements":[{"expression":{"id":14886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14873,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"6577:2:54","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$14397_storage_ptr","typeString":"struct LiquidityThresholdAssetManager.DiamondStorage storage pointer"}},"id":14875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6580:12:54","memberName":"liquidityMax","nodeType":"MemberAccess","referencedDeclaration":14394,"src":"6577:15:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14876,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14793,"src":"6596:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":14877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6602:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14878,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"6608:6:54","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":14879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6615:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"6608:15:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":14880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:17:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6602:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6596:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6595:31:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6627:8:54","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":9452,"src":"6595:40:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint32)"}},"id":14885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6595:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"6577:60:54","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14887,"nodeType":"ExpressionStatement","src":"6577:60:54"},{"eventCall":{"arguments":[{"expression":{"expression":{"id":14889,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"6667:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":14890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6682:17:54","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"6667:32:54","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":14891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6700:15:54","memberName":"setLiquidityMax","nodeType":"MemberAccess","referencedDeclaration":23295,"src":"6667:48:54","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":14892,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14793,"src":"6717:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14888,"name":"GovernanceAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14388,"src":"6650:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":14893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6650:71:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14894,"nodeType":"EmitStatement","src":"6645:76:54"}]}}]},"functionSelector":"00a9bb8d","id":14898,"implemented":true,"kind":"function","modifiers":[{"id":14796,"kind":"modifierInvocation","modifierName":{"id":14795,"name":"validateParamsAfterChange","nameLocations":["6054:25:54"],"nodeType":"IdentifierPath","referencedDeclaration":14404,"src":"6054:25:54"},"nodeType":"ModifierInvocation","src":"6054:25:54"}],"name":"setLiquidityThresholds","nameLocation":"5980:22:54","nodeType":"FunctionDefinition","parameters":{"id":14794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14789,"mutability":"mutable","name":"min","nameLocation":"6011:3:54","nodeType":"VariableDeclaration","scope":14898,"src":"6003:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14788,"name":"uint256","nodeType":"ElementaryTypeName","src":"6003:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14791,"mutability":"mutable","name":"middle","nameLocation":"6024:6:54","nodeType":"VariableDeclaration","scope":14898,"src":"6016:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14790,"name":"uint256","nodeType":"ElementaryTypeName","src":"6016:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14793,"mutability":"mutable","name":"max","nameLocation":"6040:3:54","nodeType":"VariableDeclaration","scope":14898,"src":"6032:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14792,"name":"uint256","nodeType":"ElementaryTypeName","src":"6032:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6002:42:54"},"returnParameters":{"id":14797,"nodeType":"ParameterList","parameters":[],"src":"6080:0:54"},"scope":14923,"src":"5971:761:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7882],"body":{"id":14921,"nodeType":"Block","src":"6882:108:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14907,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14901,"src":"6895:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14909,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"6915:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":14908,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6910:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6910:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":14911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6924:11:54","memberName":"interfaceId","nodeType":"MemberAccess","src":"6910:25:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6895:40:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14913,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14901,"src":"6939:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14915,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"6959:13:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}],"id":14914,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6954:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6954:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAssetManager_$23421","typeString":"type(contract IAssetManager)"}},"id":14917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6974:11:54","memberName":"interfaceId","nodeType":"MemberAccess","src":"6954:31:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6939:46:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6895:90:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14906,"id":14920,"nodeType":"Return","src":"6888:97:54"}]},"documentation":{"id":14899,"nodeType":"StructuredDocumentation","src":"6736:52:54","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":14922,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6800:17:54","nodeType":"FunctionDefinition","overrides":{"id":14903,"nodeType":"OverrideSpecifier","overrides":[],"src":"6858:8:54"},"parameters":{"id":14902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14901,"mutability":"mutable","name":"interfaceId","nameLocation":"6825:11:54","nodeType":"VariableDeclaration","scope":14922,"src":"6818:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14900,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6818:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6817:20:54"},"returnParameters":{"id":14906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14922,"src":"6876:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14904,"name":"bool","nodeType":"ElementaryTypeName","src":"6876:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6875:6:54"},"scope":14923,"src":"6791:199:54","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14924,"src":"1373:5619:54","usedErrors":[],"usedEvents":[14388,23382,23387,23392]}],"src":"39:6954:54"},"id":54},"contracts/Policy.sol":{"ast":{"absolutePath":"contracts/Policy.sol","exportedSymbols":{"IRiskModule":[23983],"Policy":[15439],"WadRayMath":[23243]},"id":15440,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":14925,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:55"},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":14927,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15440,"sourceUnit":23244,"src":"63:57:55","symbolAliases":[{"foreign":{"id":14926,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"71:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"./interfaces/IRiskModule.sol","id":14929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15440,"sourceUnit":23984,"src":"121:57:55","symbolAliases":[{"foreign":{"id":14928,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"129:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Policy","contractDependencies":[],"contractKind":"library","documentation":{"id":14930,"nodeType":"StructuredDocumentation","src":"180:284:55","text":" @title Policy library\n @dev Library for PolicyData struct. This struct represents an active policy, how the premium is\n      distributed, the probability of payout, duration and how the capital is locked.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":15439,"linearizedBaseContracts":[15439],"name":"Policy","nameLocation":"473:6:55","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14933,"libraryName":{"id":14931,"name":"WadRayMath","nameLocations":["490:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"490:10:55"},"nodeType":"UsingForDirective","src":"484:29:55","typeName":{"id":14932,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":14936,"mutability":"constant","name":"SECONDS_PER_YEAR","nameLocation":"543:16:55","nodeType":"VariableDeclaration","scope":15439,"src":"517:53:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14934,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"333635","id":14935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"562:8:55","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"365"},"visibility":"internal"},{"canonicalName":"Policy.PolicyData","id":14966,"members":[{"constant":false,"id":14938,"mutability":"mutable","name":"id","nameLocation":"628:2:55","nodeType":"VariableDeclaration","scope":14966,"src":"620:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14937,"name":"uint256","nodeType":"ElementaryTypeName","src":"620:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14940,"mutability":"mutable","name":"payout","nameLocation":"644:6:55","nodeType":"VariableDeclaration","scope":14966,"src":"636:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14939,"name":"uint256","nodeType":"ElementaryTypeName","src":"636:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14942,"mutability":"mutable","name":"premium","nameLocation":"664:7:55","nodeType":"VariableDeclaration","scope":14966,"src":"656:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14941,"name":"uint256","nodeType":"ElementaryTypeName","src":"656:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14944,"mutability":"mutable","name":"jrScr","nameLocation":"685:5:55","nodeType":"VariableDeclaration","scope":14966,"src":"677:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14943,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14946,"mutability":"mutable","name":"srScr","nameLocation":"704:5:55","nodeType":"VariableDeclaration","scope":14966,"src":"696:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14945,"name":"uint256","nodeType":"ElementaryTypeName","src":"696:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14948,"mutability":"mutable","name":"lossProb","nameLocation":"723:8:55","nodeType":"VariableDeclaration","scope":14966,"src":"715:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14947,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14950,"mutability":"mutable","name":"purePremium","nameLocation":"783:11:55","nodeType":"VariableDeclaration","scope":14966,"src":"775:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14949,"name":"uint256","nodeType":"ElementaryTypeName","src":"775:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14952,"mutability":"mutable","name":"ensuroCommission","nameLocation":"911:16:55","nodeType":"VariableDeclaration","scope":14966,"src":"903:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14951,"name":"uint256","nodeType":"ElementaryTypeName","src":"903:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14954,"mutability":"mutable","name":"partnerCommission","nameLocation":"986:17:55","nodeType":"VariableDeclaration","scope":14966,"src":"978:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14953,"name":"uint256","nodeType":"ElementaryTypeName","src":"978:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14956,"mutability":"mutable","name":"jrCoc","nameLocation":"1062:5:55","nodeType":"VariableDeclaration","scope":14966,"src":"1054:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14958,"mutability":"mutable","name":"srCoc","nameLocation":"1158:5:55","nodeType":"VariableDeclaration","scope":14966,"src":"1150:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1150:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14961,"mutability":"mutable","name":"riskModule","nameLocation":"1258:10:55","nodeType":"VariableDeclaration","scope":14966,"src":"1246:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":14960,"nodeType":"UserDefinedTypeName","pathNode":{"id":14959,"name":"IRiskModule","nameLocations":["1246:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"1246:11:55"},"referencedDeclaration":23983,"src":"1246:11:55","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":14963,"mutability":"mutable","name":"start","nameLocation":"1281:5:55","nodeType":"VariableDeclaration","scope":14966,"src":"1274:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":14962,"name":"uint40","nodeType":"ElementaryTypeName","src":"1274:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":14965,"mutability":"mutable","name":"expiration","nameLocation":"1299:10:55","nodeType":"VariableDeclaration","scope":14966,"src":"1292:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":14964,"name":"uint40","nodeType":"ElementaryTypeName","src":"1292:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"name":"PolicyData","nameLocation":"603:10:55","nodeType":"StructDefinition","scope":15439,"src":"596:718:55","visibility":"public"},{"canonicalName":"Policy.PremiumComposition","id":14983,"members":[{"constant":false,"id":14968,"mutability":"mutable","name":"purePremium","nameLocation":"1358:11:55","nodeType":"VariableDeclaration","scope":14983,"src":"1350:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14967,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14970,"mutability":"mutable","name":"jrScr","nameLocation":"1383:5:55","nodeType":"VariableDeclaration","scope":14983,"src":"1375:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1375:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14972,"mutability":"mutable","name":"srScr","nameLocation":"1402:5:55","nodeType":"VariableDeclaration","scope":14983,"src":"1394:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14974,"mutability":"mutable","name":"jrCoc","nameLocation":"1421:5:55","nodeType":"VariableDeclaration","scope":14983,"src":"1413:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14976,"mutability":"mutable","name":"srCoc","nameLocation":"1440:5:55","nodeType":"VariableDeclaration","scope":14983,"src":"1432:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1432:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14978,"mutability":"mutable","name":"ensuroCommission","nameLocation":"1459:16:55","nodeType":"VariableDeclaration","scope":14983,"src":"1451:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1451:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14980,"mutability":"mutable","name":"partnerCommission","nameLocation":"1489:17:55","nodeType":"VariableDeclaration","scope":14983,"src":"1481:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14982,"mutability":"mutable","name":"totalPremium","nameLocation":"1520:12:55","nodeType":"VariableDeclaration","scope":14983,"src":"1512:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14981,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PremiumComposition","nameLocation":"1325:18:55","nodeType":"StructDefinition","scope":15439,"src":"1318:219:55","visibility":"public"},{"body":{"id":15157,"nodeType":"Block","src":"1756:1075:55","statements":[{"expression":{"id":15011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15000,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1762:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1773:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"1762:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":15007,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"1817:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1826:3:55","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":23907,"src":"1817:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15005,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14990,"src":"1801:8:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"1801:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:29:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15003,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14988,"src":"1787:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1794:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"1787:13:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1787:44:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1762:69:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15012,"nodeType":"ExpressionStatement","src":"1762:69:55"},{"expression":{"id":15021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15013,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1837:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1848:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"1837:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15018,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"1870:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1879:11:55","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":23910,"src":"1870:20:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15016,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14988,"src":"1856:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"1856:13:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1837:54:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15022,"nodeType":"ExpressionStatement","src":"1837:54:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15023,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1901:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1912:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"1901:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15025,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1920:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1931:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"1920:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1901:41:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15042,"nodeType":"Block","src":"2007:35:55","statements":[{"expression":{"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15036,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2015:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2026:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"2015:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2034:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2015:20:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15041,"nodeType":"ExpressionStatement","src":"2015:20:55"}]},"id":15043,"nodeType":"IfStatement","src":"1897:145:55","trueBody":{"id":15035,"nodeType":"Block","src":"1944:57:55","statements":[{"expression":{"id":15033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15028,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1952:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1963:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"1952:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":15031,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"1972:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1983:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"1972:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1952:42:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15034,"nodeType":"ExpressionStatement","src":"1952:42:55"}]}},{"expression":{"id":15052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15044,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2048:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2059:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"2048:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15049,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"2081:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2090:9:55","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":23913,"src":"2081:18:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15047,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14988,"src":"2067:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2074:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"2067:13:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2048:52:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15053,"nodeType":"ExpressionStatement","src":"2048:52:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15054,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2110:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2121:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"2110:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15056,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2130:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2141:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"2130:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15058,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2155:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2166:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"2155:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2130:41:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15061,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2129:43:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2110:62:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15080,"nodeType":"Block","src":"2256:35:55","statements":[{"expression":{"id":15078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15074,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2264:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2275:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"2264:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2264:20:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15079,"nodeType":"ExpressionStatement","src":"2264:20:55"}]},"id":15081,"nodeType":"IfStatement","src":"2106:185:55","trueBody":{"id":15073,"nodeType":"Block","src":"2174:76:55","statements":[{"expression":{"id":15071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15063,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2182:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2193:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"2182:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15066,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2202:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"2202:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15068,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2227:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2238:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"2227:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2202:41:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2182:61:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15072,"nodeType":"ExpressionStatement","src":"2182:61:55"}]}},{"expression":{"id":15099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15082,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2319:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2330:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14974,"src":"2319:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15088,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"2363:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2372:5:55","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":23922,"src":"2363:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15090,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14992,"src":"2381:10:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15091,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14994,"src":"2394:5:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"2381:18:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2380:20:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"2363:37:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2362:39:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15096,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"2404:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2362:58:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":15085,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2338:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"2338:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2355:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"2338:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:83:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2319:102:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15100,"nodeType":"ExpressionStatement","src":"2319:102:55"},{"expression":{"id":15118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15101,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2427:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2438:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14976,"src":"2427:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15107,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"2471:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2480:5:55","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":23925,"src":"2471:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15109,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14992,"src":"2489:10:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15110,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14994,"src":"2502:5:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"2489:18:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2488:20:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"2471:37:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2470:39:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15115,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"2512:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2470:58:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":15104,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2446:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2457:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"2446:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2463:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"2446:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2446:83:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2427:102:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15119,"nodeType":"ExpressionStatement","src":"2427:102:55"},{"assignments":[15121],"declarations":[{"constant":false,"id":15121,"mutability":"mutable","name":"totalCoc","nameLocation":"2543:8:55","nodeType":"VariableDeclaration","scope":15157,"src":"2535:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15120,"name":"uint256","nodeType":"ElementaryTypeName","src":"2535:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15127,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15122,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2554:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2565:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14974,"src":"2554:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15124,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2573:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2584:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14976,"src":"2573:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2554:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2535:54:55"},{"expression":{"id":15143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15128,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2596:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2607:16:55","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14978,"src":"2596:27:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":15134,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"2662:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2671:11:55","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":23916,"src":"2662:20:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":15131,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2632:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2643:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"2632:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2655:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"2632:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2632:51:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":15139,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"2708:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":15140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2717:12:55","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":23919,"src":"2708:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15137,"name":"totalCoc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15121,"src":"2692:8:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2701:6:55","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"2692:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2632:98:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2596:134:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15144,"nodeType":"ExpressionStatement","src":"2596:134:55"},{"expression":{"id":15155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15145,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2737:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:12:55","memberName":"totalPremium","nodeType":"MemberAccess","referencedDeclaration":14982,"src":"2737:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15148,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2763:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2774:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"2763:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15150,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"2788:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:16:55","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14978,"src":"2788:27:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2763:52:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15153,"name":"totalCoc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15121,"src":"2818:8:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2763:63:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2737:89:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15156,"nodeType":"ExpressionStatement","src":"2737:89:55"}]},"id":15158,"implemented":true,"kind":"function","modifiers":[],"name":"getMinimumPremium","nameLocation":"1550:17:55","nodeType":"FunctionDefinition","parameters":{"id":14995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14986,"mutability":"mutable","name":"rmParams","nameLocation":"1599:8:55","nodeType":"VariableDeclaration","scope":15158,"src":"1573:34:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":14985,"nodeType":"UserDefinedTypeName","pathNode":{"id":14984,"name":"IRiskModule.Params","nameLocations":["1573:11:55","1585:6:55"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"1573:18:55"},"referencedDeclaration":23926,"src":"1573:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"},{"constant":false,"id":14988,"mutability":"mutable","name":"payout","nameLocation":"1621:6:55","nodeType":"VariableDeclaration","scope":15158,"src":"1613:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1613:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14990,"mutability":"mutable","name":"lossProb","nameLocation":"1641:8:55","nodeType":"VariableDeclaration","scope":15158,"src":"1633:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14989,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14992,"mutability":"mutable","name":"expiration","nameLocation":"1662:10:55","nodeType":"VariableDeclaration","scope":15158,"src":"1655:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":14991,"name":"uint40","nodeType":"ElementaryTypeName","src":"1655:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":14994,"mutability":"mutable","name":"start","nameLocation":"1685:5:55","nodeType":"VariableDeclaration","scope":15158,"src":"1678:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":14993,"name":"uint40","nodeType":"ElementaryTypeName","src":"1678:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"1567:127:55"},"returnParameters":{"id":14999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14998,"mutability":"mutable","name":"minPremium","nameLocation":"1744:10:55","nodeType":"VariableDeclaration","scope":15158,"src":"1718:36:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition"},"typeName":{"id":14997,"nodeType":"UserDefinedTypeName","pathNode":{"id":14996,"name":"PremiumComposition","nameLocations":["1718:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":14983,"src":"1718:18:55"},"referencedDeclaration":14983,"src":"1718:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_storage_ptr","typeString":"struct Policy.PremiumComposition"}},"visibility":"internal"}],"src":"1717:38:55"},"scope":15439,"src":"1541:1290:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15299,"nodeType":"Block","src":"3083:826:55","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15181,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"3097:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15182,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"3108:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3097:17:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f7574","id":15184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3116:36:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0","typeString":"literal_string \"Premium cannot be more than payout\""},"value":"Premium cannot be more than payout"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0","typeString":"literal_string \"Premium cannot be more than payout\""}],"id":15180,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3089:7:55","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:64:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15186,"nodeType":"ExpressionStatement","src":"3089:64:55"},{"assignments":[15189],"declarations":[{"constant":false,"id":15189,"mutability":"mutable","name":"policy","nameLocation":"3177:6:55","nodeType":"VariableDeclaration","scope":15299,"src":"3159:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15188,"nodeType":"UserDefinedTypeName","pathNode":{"id":15187,"name":"PolicyData","nameLocations":["3159:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3159:10:55"},"referencedDeclaration":14966,"src":"3159:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"id":15190,"nodeType":"VariableDeclarationStatement","src":"3159:24:55"},{"expression":{"id":15195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15191,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3190:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3197:10:55","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"3190:17:55","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15194,"name":"riskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"3210:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"src":"3190:30:55","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":15196,"nodeType":"ExpressionStatement","src":"3190:30:55"},{"expression":{"id":15201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15197,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3226:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3233:7:55","memberName":"premium","nodeType":"MemberAccess","referencedDeclaration":14942,"src":"3226:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15200,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"3243:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:24:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15202,"nodeType":"ExpressionStatement","src":"3226:24:55"},{"expression":{"id":15207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15203,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3256:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3263:6:55","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"3256:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15206,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"3272:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3256:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15208,"nodeType":"ExpressionStatement","src":"3256:22:55"},{"expression":{"id":15213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15209,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3284:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3291:8:55","memberName":"lossProb","nodeType":"MemberAccess","referencedDeclaration":14948,"src":"3284:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15212,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15170,"src":"3302:8:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3284:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15214,"nodeType":"ExpressionStatement","src":"3284:26:55"},{"expression":{"id":15219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15215,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3316:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3323:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"3316:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15218,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15174,"src":"3331:5:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"3316:20:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":15220,"nodeType":"ExpressionStatement","src":"3316:20:55"},{"expression":{"id":15225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15221,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3342:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3349:10:55","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"3342:17:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15224,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15172,"src":"3362:10:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"3342:30:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":15226,"nodeType":"ExpressionStatement","src":"3342:30:55"},{"assignments":[15229],"declarations":[{"constant":false,"id":15229,"mutability":"mutable","name":"minPremium","nameLocation":"3405:10:55","nodeType":"VariableDeclaration","scope":15299,"src":"3379:36:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition"},"typeName":{"id":15228,"nodeType":"UserDefinedTypeName","pathNode":{"id":15227,"name":"PremiumComposition","nameLocations":["3379:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":14983,"src":"3379:18:55"},"referencedDeclaration":14983,"src":"3379:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_storage_ptr","typeString":"struct Policy.PremiumComposition"}},"visibility":"internal"}],"id":15237,"initialValue":{"arguments":[{"id":15231,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15164,"src":"3436:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},{"id":15232,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"3446:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15233,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15170,"src":"3454:8:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15234,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15172,"src":"3464:10:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":15235,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15174,"src":"3476:5:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":15230,"name":"getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15158,"src":"3418:17:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Params_$23926_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$returns$_t_struct$_PremiumComposition_$14983_memory_ptr_$","typeString":"function (struct IRiskModule.Params memory,uint256,uint256,uint40,uint40) pure returns (struct Policy.PremiumComposition memory)"}},"id":15236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:64:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"nodeType":"VariableDeclarationStatement","src":"3379:103:55"},{"expression":{"id":15243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15238,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3489:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3496:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"3489:18:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15241,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3510:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3521:11:55","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14968,"src":"3510:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3489:43:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15244,"nodeType":"ExpressionStatement","src":"3489:43:55"},{"expression":{"id":15250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15245,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3538:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3545:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"3538:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15248,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3553:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3564:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14970,"src":"3553:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3538:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15251,"nodeType":"ExpressionStatement","src":"3538:31:55"},{"expression":{"id":15257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15252,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3575:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3582:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"3575:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15255,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3590:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3601:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14972,"src":"3590:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3575:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15258,"nodeType":"ExpressionStatement","src":"3575:31:55"},{"expression":{"id":15264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15259,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3612:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3619:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"3612:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15262,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3627:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3638:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14974,"src":"3627:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3612:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15265,"nodeType":"ExpressionStatement","src":"3612:31:55"},{"expression":{"id":15271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15266,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3649:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3656:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"3649:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15269,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3664:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3675:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14976,"src":"3664:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3649:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15272,"nodeType":"ExpressionStatement","src":"3649:31:55"},{"expression":{"id":15278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15273,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3686:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3693:16:55","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"3686:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15276,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3712:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:16:55","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14978,"src":"3712:27:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3686:53:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15279,"nodeType":"ExpressionStatement","src":"3686:53:55"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15281,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3754:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3765:12:55","memberName":"totalPremium","nodeType":"MemberAccess","referencedDeclaration":14982,"src":"3754:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":15283,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"3781:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3754:34:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","id":15285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3790:27:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a","typeString":"literal_string \"Premium less than minimum\""},"value":"Premium less than minimum"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a","typeString":"literal_string \"Premium less than minimum\""}],"id":15280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3746:7:55","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3746:72:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15287,"nodeType":"ExpressionStatement","src":"3746:72:55"},{"expression":{"id":15295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15288,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3825:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3832:17:55","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"3825:24:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15291,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"3852:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15292,"name":"minPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15229,"src":"3862:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":15293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3873:12:55","memberName":"totalPremium","nodeType":"MemberAccess","referencedDeclaration":14982,"src":"3862:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3852:33:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3825:60:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15296,"nodeType":"ExpressionStatement","src":"3825:60:55"},{"expression":{"id":15297,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15189,"src":"3898:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":15179,"id":15298,"nodeType":"Return","src":"3891:13:55"}]},"id":15300,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2844:10:55","nodeType":"FunctionDefinition","parameters":{"id":15175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15161,"mutability":"mutable","name":"riskModule","nameLocation":"2872:10:55","nodeType":"VariableDeclaration","scope":15300,"src":"2860:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":15160,"nodeType":"UserDefinedTypeName","pathNode":{"id":15159,"name":"IRiskModule","nameLocations":["2860:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"2860:11:55"},"referencedDeclaration":23983,"src":"2860:11:55","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":15164,"mutability":"mutable","name":"rmParams","nameLocation":"2914:8:55","nodeType":"VariableDeclaration","scope":15300,"src":"2888:34:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":15163,"nodeType":"UserDefinedTypeName","pathNode":{"id":15162,"name":"IRiskModule.Params","nameLocations":["2888:11:55","2900:6:55"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"2888:18:55"},"referencedDeclaration":23926,"src":"2888:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"},{"constant":false,"id":15166,"mutability":"mutable","name":"premium","nameLocation":"2936:7:55","nodeType":"VariableDeclaration","scope":15300,"src":"2928:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15165,"name":"uint256","nodeType":"ElementaryTypeName","src":"2928:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15168,"mutability":"mutable","name":"payout","nameLocation":"2957:6:55","nodeType":"VariableDeclaration","scope":15300,"src":"2949:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2949:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15170,"mutability":"mutable","name":"lossProb","nameLocation":"2977:8:55","nodeType":"VariableDeclaration","scope":15300,"src":"2969:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15169,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15172,"mutability":"mutable","name":"expiration","nameLocation":"2998:10:55","nodeType":"VariableDeclaration","scope":15300,"src":"2991:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":15171,"name":"uint40","nodeType":"ElementaryTypeName","src":"2991:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":15174,"mutability":"mutable","name":"start","nameLocation":"3021:5:55","nodeType":"VariableDeclaration","scope":15300,"src":"3014:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":15173,"name":"uint40","nodeType":"ElementaryTypeName","src":"3014:6:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"2854:176:55"},"returnParameters":{"id":15179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15178,"mutability":"mutable","name":"newPolicy","nameLocation":"3072:9:55","nodeType":"VariableDeclaration","scope":15300,"src":"3054:27:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15177,"nodeType":"UserDefinedTypeName","pathNode":{"id":15176,"name":"PolicyData","nameLocations":["3054:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3054:10:55"},"referencedDeclaration":14966,"src":"3054:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"3053:29:55"},"scope":15439,"src":"2835:1074:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15326,"nodeType":"Block","src":"3995:111:55","statements":[{"expression":{"arguments":[{"expression":{"id":15322,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"4088:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4095:5:55","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"4088:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15308,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"4010:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4017:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"4010:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15310,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"4025:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4010:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4009:33:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15313,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"4046:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4053:10:55","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"4046:17:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15315,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"4066:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4073:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4066:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4046:32:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15318,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4045:34:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4009:70:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4008:72:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4081:6:55","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"4008:79:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4008:93:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15307,"id":15325,"nodeType":"Return","src":"4001:100:55"}]},"id":15327,"implemented":true,"kind":"function","modifiers":[],"name":"jrInterestRate","nameLocation":"3922:14:55","nodeType":"FunctionDefinition","parameters":{"id":15304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15303,"mutability":"mutable","name":"policy","nameLocation":"3955:6:55","nodeType":"VariableDeclaration","scope":15327,"src":"3937:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15302,"nodeType":"UserDefinedTypeName","pathNode":{"id":15301,"name":"PolicyData","nameLocations":["3937:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3937:10:55"},"referencedDeclaration":14966,"src":"3937:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"3936:26:55"},"returnParameters":{"id":15307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15327,"src":"3986:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:9:55"},"scope":15439,"src":"3913:193:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15353,"nodeType":"Block","src":"4195:104:55","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15335,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"4209:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4216:5:55","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"4209:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15337,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4225:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4231:9:55","memberName":"timestamp","nodeType":"MemberAccess","src":"4225:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15339,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"4243:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4250:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4243:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4225:30:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15342,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4224:32:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4209:47:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15344,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4208:49:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15345,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"4261:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4268:10:55","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"4261:17:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15347,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"4281:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4288:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4281:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4261:32:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4260:34:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4208:86:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15334,"id":15352,"nodeType":"Return","src":"4201:93:55"}]},"id":15354,"implemented":true,"kind":"function","modifiers":[],"name":"jrAccruedInterest","nameLocation":"4119:17:55","nodeType":"FunctionDefinition","parameters":{"id":15331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15330,"mutability":"mutable","name":"policy","nameLocation":"4155:6:55","nodeType":"VariableDeclaration","scope":15354,"src":"4137:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15329,"nodeType":"UserDefinedTypeName","pathNode":{"id":15328,"name":"PolicyData","nameLocations":["4137:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4137:10:55"},"referencedDeclaration":14966,"src":"4137:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4136:26:55"},"returnParameters":{"id":15334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15354,"src":"4186:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4186:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4185:9:55"},"scope":15439,"src":"4110:189:55","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15380,"nodeType":"Block","src":"4385:111:55","statements":[{"expression":{"arguments":[{"expression":{"id":15376,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"4478:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4485:5:55","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"4478:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15362,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"4400:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"4400:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15364,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"4415:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4400:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15366,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4399:33:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15367,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"4436:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4443:10:55","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"4436:17:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15369,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"4456:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4463:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4456:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4436:32:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15372,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4435:34:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4399:70:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4398:72:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4471:6:55","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"4398:79:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:93:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15361,"id":15379,"nodeType":"Return","src":"4391:100:55"}]},"id":15381,"implemented":true,"kind":"function","modifiers":[],"name":"srInterestRate","nameLocation":"4312:14:55","nodeType":"FunctionDefinition","parameters":{"id":15358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15357,"mutability":"mutable","name":"policy","nameLocation":"4345:6:55","nodeType":"VariableDeclaration","scope":15381,"src":"4327:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15356,"nodeType":"UserDefinedTypeName","pathNode":{"id":15355,"name":"PolicyData","nameLocations":["4327:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4327:10:55"},"referencedDeclaration":14966,"src":"4327:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4326:26:55"},"returnParameters":{"id":15361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15381,"src":"4376:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15359,"name":"uint256","nodeType":"ElementaryTypeName","src":"4376:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4375:9:55"},"scope":15439,"src":"4303:193:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15407,"nodeType":"Block","src":"4585:104:55","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15389,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"4599:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4606:5:55","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"4599:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15391,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4615:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4621:9:55","memberName":"timestamp","nodeType":"MemberAccess","src":"4615:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15393,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"4633:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4640:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4633:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4615:30:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15396,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4614:32:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4599:47:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4598:49:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":15403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15399,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"4651:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4658:10:55","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"4651:17:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15401,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"4671:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":15402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4678:5:55","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"4671:12:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4651:32:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":15404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4650:34:55","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4598:86:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15388,"id":15406,"nodeType":"Return","src":"4591:93:55"}]},"id":15408,"implemented":true,"kind":"function","modifiers":[],"name":"srAccruedInterest","nameLocation":"4509:17:55","nodeType":"FunctionDefinition","parameters":{"id":15385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15384,"mutability":"mutable","name":"policy","nameLocation":"4545:6:55","nodeType":"VariableDeclaration","scope":15408,"src":"4527:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15383,"nodeType":"UserDefinedTypeName","pathNode":{"id":15382,"name":"PolicyData","nameLocations":["4527:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4527:10:55"},"referencedDeclaration":14966,"src":"4527:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4526:26:55"},"returnParameters":{"id":15388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15408,"src":"4576:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15386,"name":"uint256","nodeType":"ElementaryTypeName","src":"4576:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4575:9:55"},"scope":15439,"src":"4500:189:55","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15437,"nodeType":"Block","src":"4773:134:55","statements":[{"expression":{"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15416,"name":"retHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15414,"src":"4779:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":15420,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15411,"src":"4810:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"expression":{"id":15418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4799:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4803:6:55","memberName":"encode","nodeType":"MemberAccess","src":"4799:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4799:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15417,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4789:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4789:29:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4779:39:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15424,"nodeType":"ExpressionStatement","src":"4779:39:55"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":15431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15426,"name":"retHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15414,"src":"4832:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":15429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4851:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4843:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":15427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4843:7:55","typeDescriptions":{}}},"id":15430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:10:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4832:21:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c6963793a20686173682063616e6e6f742062652030","id":15432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4855:26:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b","typeString":"literal_string \"Policy: hash cannot be 0\""},"value":"Policy: hash cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b","typeString":"literal_string \"Policy: hash cannot be 0\""}],"id":15425,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4824:7:55","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:58:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15434,"nodeType":"ExpressionStatement","src":"4824:58:55"},{"expression":{"id":15435,"name":"retHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15414,"src":"4895:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15415,"id":15436,"nodeType":"Return","src":"4888:14:55"}]},"id":15438,"implemented":true,"kind":"function","modifiers":[],"name":"hash","nameLocation":"4702:4:55","nodeType":"FunctionDefinition","parameters":{"id":15412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15411,"mutability":"mutable","name":"policy","nameLocation":"4725:6:55","nodeType":"VariableDeclaration","scope":15438,"src":"4707:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":15410,"nodeType":"UserDefinedTypeName","pathNode":{"id":15409,"name":"PolicyData","nameLocations":["4707:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4707:10:55"},"referencedDeclaration":14966,"src":"4707:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4706:26:55"},"returnParameters":{"id":15415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15414,"mutability":"mutable","name":"retHash","nameLocation":"4764:7:55","nodeType":"VariableDeclaration","scope":15438,"src":"4756:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4756:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4755:17:55"},"scope":15439,"src":"4693:214:55","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":15440,"src":"465:4444:55","usedErrors":[],"usedEvents":[]}],"src":"39:4871:55"},"id":55},"contracts/PolicyPool.sol":{"ast":{"absolutePath":"contracts/PolicyPool.sol","exportedSymbols":{"AddressUpgradeable":[2653],"ERC165Checker":[7871],"ERC721Upgradeable":[2162],"IAccessManager":[23370],"IERC20Metadata":[6066],"IEToken":[23549],"IPolicyHolder":[23630],"IPolicyHolderV2":[23652],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823],"IPremiumsAccount":[23886],"IRiskModule":[23983],"PausableUpgradeable":[1209],"Policy":[15439],"PolicyPool":[17686],"SafeERC20":[6478],"UUPSUpgradeable":[1081],"WadRayMath":[23243]},"id":17687,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":15441,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:56"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","id":15443,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":2654,"src":"64:100:56","symbolAliases":[{"foreign":{"id":15442,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"72:18:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","id":15445,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":7872,"src":"165:92:56","symbolAliases":[{"foreign":{"id":15444,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7871,"src":"173:13:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","id":15447,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":2163,"src":"258:105:56","symbolAliases":[{"foreign":{"id":15446,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"266:17:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":15449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":6067,"src":"364:97:56","symbolAliases":[{"foreign":{"id":15448,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"372:14:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","id":15451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":1210,"src":"462:105:56","symbolAliases":[{"foreign":{"id":15450,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"470:19:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":15453,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":6479,"src":"568:82:56","symbolAliases":[{"foreign":{"id":15452,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"576:9:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":15455,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":1082,"src":"651:100:56","symbolAliases":[{"foreign":{"id":15454,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"659:15:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":15457,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23371,"src":"753:63:56","symbolAliases":[{"foreign":{"id":15456,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"761:14:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./interfaces/IEToken.sol","id":15459,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23550,"src":"817:49:56","symbolAliases":[{"foreign":{"id":15458,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"825:7:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyHolderV2.sol","file":"./interfaces/IPolicyHolderV2.sol","id":15461,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23653,"src":"867:65:56","symbolAliases":[{"foreign":{"id":15460,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"875:15:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyHolder.sol","file":"./interfaces/IPolicyHolder.sol","id":15463,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23631,"src":"933:61:56","symbolAliases":[{"foreign":{"id":15462,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"941:13:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":15465,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23807,"src":"995:57:56","symbolAliases":[{"foreign":{"id":15464,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"1003:11:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"./interfaces/IPolicyPoolComponent.sol","id":15467,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23824,"src":"1053:75:56","symbolAliases":[{"foreign":{"id":15466,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"1061:20:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":15469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23887,"src":"1129:67:56","symbolAliases":[{"foreign":{"id":15468,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"1137:16:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"./interfaces/IRiskModule.sol","id":15471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23984,"src":"1197:57:56","symbolAliases":[{"foreign":{"id":15470,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"1205:11:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":15473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":15440,"src":"1255:36:56","symbolAliases":[{"foreign":{"id":15472,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"1263:6:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":15475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17687,"sourceUnit":23244,"src":"1293:57:56","symbolAliases":[{"foreign":{"id":15474,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"1301:10:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15477,"name":"IPolicyPool","nameLocations":["2122:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"2122:11:56"},"id":15478,"nodeType":"InheritanceSpecifier","src":"2122:11:56"},{"baseName":{"id":15479,"name":"PausableUpgradeable","nameLocations":["2135:19:56"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"2135:19:56"},"id":15480,"nodeType":"InheritanceSpecifier","src":"2135:19:56"},{"baseName":{"id":15481,"name":"UUPSUpgradeable","nameLocations":["2156:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"2156:15:56"},"id":15482,"nodeType":"InheritanceSpecifier","src":"2156:15:56"},{"baseName":{"id":15483,"name":"ERC721Upgradeable","nameLocations":["2173:17:56"],"nodeType":"IdentifierPath","referencedDeclaration":2162,"src":"2173:17:56"},"id":15484,"nodeType":"InheritanceSpecifier","src":"2173:17:56"}],"canonicalName":"PolicyPool","contractDependencies":[],"contractKind":"contract","documentation":{"id":15476,"nodeType":"StructuredDocumentation","src":"1352:746:56","text":" @title Ensuro PolicyPool contract\n @dev This is the main contract of the protocol, it stores the eTokens (liquidity pools) and has the operations\n      to interact with them. This is also the contract that receives and sends the underlying asset (currency).\n      Also this contract keeps track of accumulated premiums in different stages:\n      - activePurePremiums\n      - wonPurePremiums (surplus)\n      - borrowedActivePP (deficit borrowed from activePurePremiums)\n      This contract also implements the ERC721 standard, because it mints and NFT for each policy created. The\n      property of the NFT represents the one that will receive the payout.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":17686,"linearizedBaseContracts":[17686,2162,2323,2296,3088,3100,1081,765,430,440,1209,2704,944,23806],"name":"PolicyPool","nameLocation":"2108:10:56","nodeType":"ContractDefinition","nodes":[{"global":false,"id":15487,"libraryName":{"id":15485,"name":"WadRayMath","nameLocations":["2201:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"2201:10:56"},"nodeType":"UsingForDirective","src":"2195:29:56","typeName":{"id":15486,"name":"uint256","nodeType":"ElementaryTypeName","src":"2216:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":15491,"libraryName":{"id":15488,"name":"Policy","nameLocations":["2233:6:56"],"nodeType":"IdentifierPath","referencedDeclaration":15439,"src":"2233:6:56"},"nodeType":"UsingForDirective","src":"2227:35:56","typeName":{"id":15490,"nodeType":"UserDefinedTypeName","pathNode":{"id":15489,"name":"Policy.PolicyData","nameLocations":["2244:6:56","2251:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2244:17:56"},"referencedDeclaration":14966,"src":"2244:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}}},{"global":false,"id":15495,"libraryName":{"id":15492,"name":"SafeERC20","nameLocations":["2271:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":6478,"src":"2271:9:56"},"nodeType":"UsingForDirective","src":"2265:35:56","typeName":{"id":15494,"nodeType":"UserDefinedTypeName","pathNode":{"id":15493,"name":"IERC20Metadata","nameLocations":["2285:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"2285:14:56"},"referencedDeclaration":6066,"src":"2285:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}},{"constant":true,"functionSelector":"24ea54f4","id":15500,"mutability":"constant","name":"GUARDIAN_ROLE","nameLocation":"2328:13:56","nodeType":"VariableDeclaration","scope":17686,"src":"2304:66:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2304:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"475541524449414e5f524f4c45","id":15498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2354:15:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""},"value":"GUARDIAN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""}],"id":15497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2344:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:26:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"f67b2bad","id":15505,"mutability":"constant","name":"LEVEL1_ROLE","nameLocation":"2398:11:56","nodeType":"VariableDeclaration","scope":17686,"src":"2374:62:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2374:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c315f524f4c45","id":15503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2422:13:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""},"value":"LEVEL1_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""}],"id":15502,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2412:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"4a47a3e0","id":15510,"mutability":"constant","name":"LEVEL2_ROLE","nameLocation":"2464:11:56","nodeType":"VariableDeclaration","scope":17686,"src":"2440:62:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2440:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c325f524f4c45","id":15508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2488:13:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""},"value":"LEVEL2_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""}],"id":15507,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2478:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2478:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":15513,"mutability":"constant","name":"HOLDER_GAS_LIMIT","nameLocation":"2533:16:56","nodeType":"VariableDeclaration","scope":17686,"src":"2507:51:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15511,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313530303030","id":15512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2552:6:56","typeDescriptions":{"typeIdentifier":"t_rational_150000_by_1","typeString":"int_const 150000"},"value":"150000"},"visibility":"internal"},{"constant":false,"documentation":{"id":15514,"nodeType":"StructuredDocumentation","src":"2676:61:56","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":15517,"mutability":"immutable","name":"_access","nameLocation":"2774:7:56","nodeType":"VariableDeclaration","scope":17686,"src":"2740:41:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":15516,"nodeType":"UserDefinedTypeName","pathNode":{"id":15515,"name":"IAccessManager","nameLocations":["2740:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"2740:14:56"},"referencedDeclaration":23370,"src":"2740:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"},{"constant":false,"documentation":{"id":15518,"nodeType":"StructuredDocumentation","src":"2900:61:56","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":15521,"mutability":"immutable","name":"_currency","nameLocation":"2998:9:56","nodeType":"VariableDeclaration","scope":17686,"src":"2964:43:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":15520,"nodeType":"UserDefinedTypeName","pathNode":{"id":15519,"name":"IERC20Metadata","nameLocations":["2964:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"2964:14:56"},"referencedDeclaration":6066,"src":"2964:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"documentation":{"id":15522,"nodeType":"StructuredDocumentation","src":"3012:81:56","text":" @dev Address of Ensuro's treasury that receives the protocol fees."},"id":15524,"mutability":"mutable","name":"_treasury","nameLocation":"3113:9:56","nodeType":"VariableDeclaration","scope":17686,"src":"3096:26:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15523,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"canonicalName":"PolicyPool.ComponentStatus","documentation":{"id":15525,"nodeType":"StructuredDocumentation","src":"3157:129:56","text":" @dev This enum tracks the different status that a component ({PremiumsAccount}, {EToken} or {RiskModule} can have."},"id":15530,"members":[{"id":15526,"name":"inactive","nameLocation":"3425:8:56","nodeType":"EnumValue","src":"3425:8:56"},{"id":15527,"name":"active","nameLocation":"3743:6:56","nodeType":"EnumValue","src":"3743:6:56"},{"id":15528,"name":"deprecated","nameLocation":"4047:10:56","nodeType":"EnumValue","src":"4047:10:56"},{"id":15529,"name":"suspended","nameLocation":"4221:9:56","nodeType":"EnumValue","src":"4221:9:56"}],"name":"ComponentStatus","nameLocation":"3294:15:56","nodeType":"EnumDefinition","src":"3289:945:56"},{"canonicalName":"PolicyPool.ComponentKind","documentation":{"id":15531,"nodeType":"StructuredDocumentation","src":"4238:199:56","text":" @dev Enum of the different kind of top level components that can be plugged into the pool. Each one corresponds\n with the {EToken}, {RiskModule} and {PremiumsAccount} respectively."},"id":15536,"members":[{"id":15532,"name":"unknown","nameLocation":"4465:7:56","nodeType":"EnumValue","src":"4465:7:56"},{"id":15533,"name":"eToken","nameLocation":"4478:6:56","nodeType":"EnumValue","src":"4478:6:56"},{"id":15534,"name":"riskModule","nameLocation":"4490:10:56","nodeType":"EnumValue","src":"4490:10:56"},{"id":15535,"name":"premiumsAccount","nameLocation":"4506:15:56","nodeType":"EnumValue","src":"4506:15:56"}],"name":"ComponentKind","nameLocation":"4445:13:56","nodeType":"EnumDefinition","src":"4440:85:56"},{"canonicalName":"PolicyPool.Component","documentation":{"id":15537,"nodeType":"StructuredDocumentation","src":"4529:241:56","text":" @dev Struct to keep the state and type of the components installed. The `kind` never changes. The `status`\n initially is `active` and can be changes with {PolicyPool-changeComponentStatus} and {PolicyPool-removeComponent}."},"id":15544,"members":[{"constant":false,"id":15540,"mutability":"mutable","name":"status","nameLocation":"4812:6:56","nodeType":"VariableDeclaration","scope":15544,"src":"4796:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":15539,"nodeType":"UserDefinedTypeName","pathNode":{"id":15538,"name":"ComponentStatus","nameLocations":["4796:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"4796:15:56"},"referencedDeclaration":15530,"src":"4796:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"kind","nameLocation":"4838:4:56","nodeType":"VariableDeclaration","scope":15544,"src":"4824:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":15542,"nodeType":"UserDefinedTypeName","pathNode":{"id":15541,"name":"ComponentKind","nameLocations":["4824:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"4824:13:56"},"referencedDeclaration":15536,"src":"4824:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"name":"Component","nameLocation":"4780:9:56","nodeType":"StructDefinition","scope":17686,"src":"4773:74:56","visibility":"public"},{"constant":false,"documentation":{"id":15545,"nodeType":"StructuredDocumentation","src":"4851:118:56","text":" @dev Mapping of installed components (see {EToken}, {RiskModule}, {PremiumsAccount}) in the PolicyPool."},"id":15551,"mutability":"mutable","name":"_components","nameLocation":"5024:11:56","nodeType":"VariableDeclaration","scope":17686,"src":"4972:63:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component)"},"typeName":{"id":15550,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15547,"nodeType":"UserDefinedTypeName","pathNode":{"id":15546,"name":"IPolicyPoolComponent","nameLocations":["4980:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"4980:20:56"},"referencedDeclaration":23823,"src":"4980:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"nodeType":"Mapping","src":"4972:42:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15549,"nodeType":"UserDefinedTypeName","pathNode":{"id":15548,"name":"Component","nameLocations":["5004:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15544,"src":"5004:9:56"},"referencedDeclaration":15544,"src":"5004:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":15552,"nodeType":"StructuredDocumentation","src":"5040:227:56","text":" @dev Mapping that stores the active policies (the policyId is the key). It just saves the hash of the policies,\n the full {Policy-PolicyData} struct has to be sent for each operation (hash is used to verify)."},"id":15556,"mutability":"mutable","name":"_policies","nameLocation":"5307:9:56","nodeType":"VariableDeclaration","scope":17686,"src":"5270:46:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":15555,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15553,"name":"uint256","nodeType":"ElementaryTypeName","src":"5278:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"5270:27:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5289:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":15557,"nodeType":"StructuredDocumentation","src":"5321:56:56","text":" @dev Base URI for the minted policy NFTs."},"id":15559,"mutability":"mutable","name":"_nftBaseURI","nameLocation":"5396:11:56","nodeType":"VariableDeclaration","scope":17686,"src":"5380:27:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":15558,"name":"string","nodeType":"ElementaryTypeName","src":"5380:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"documentation":{"id":15560,"nodeType":"StructuredDocumentation","src":"5412:75:56","text":" @dev Constructor error when address(0) is sent as `access()`"},"errorSelector":"a9f283c9","id":15562,"name":"NoZeroAccess","nameLocation":"5496:12:56","nodeType":"ErrorDefinition","parameters":{"id":15561,"nodeType":"ParameterList","parameters":[],"src":"5508:2:56"},"src":"5490:21:56"},{"documentation":{"id":15563,"nodeType":"StructuredDocumentation","src":"5515:77:56","text":" @dev Constructor error when address(0) is sent as `currency()`"},"errorSelector":"559a03cd","id":15565,"name":"NoZeroCurrency","nameLocation":"5601:14:56","nodeType":"ErrorDefinition","parameters":{"id":15564,"nodeType":"ParameterList","parameters":[],"src":"5615:2:56"},"src":"5595:23:56"},{"documentation":{"id":15566,"nodeType":"StructuredDocumentation","src":"5622:94:56","text":" @dev Constructor error (or setTreasury) when address(0) is sent as `treasury()`"},"errorSelector":"0f45dd16","id":15568,"name":"NoZeroTreasury","nameLocation":"5725:14:56","nodeType":"ErrorDefinition","parameters":{"id":15567,"nodeType":"ParameterList","parameters":[],"src":"5739:2:56"},"src":"5719:23:56"},{"documentation":{"id":15569,"nodeType":"StructuredDocumentation","src":"5746:79:56","text":" @dev Initialization error when empty name for the ERC721 is sent"},"errorSelector":"000beefb","id":15571,"name":"NoEmptyName","nameLocation":"5834:11:56","nodeType":"ErrorDefinition","parameters":{"id":15570,"nodeType":"ParameterList","parameters":[],"src":"5845:2:56"},"src":"5828:20:56"},{"documentation":{"id":15572,"nodeType":"StructuredDocumentation","src":"5852:81:56","text":" @dev Initialization error when empty symbol for the ERC721 is sent"},"errorSelector":"43b47bcb","id":15574,"name":"NoEmptySymbol","nameLocation":"5942:13:56","nodeType":"ErrorDefinition","parameters":{"id":15573,"nodeType":"ParameterList","parameters":[],"src":"5955:2:56"},"src":"5936:22:56"},{"documentation":{"id":15575,"nodeType":"StructuredDocumentation","src":"5962:101:56","text":" @dev Upgrade error when the new implementation contract tries to change the `access()`"},"errorSelector":"0f130817","id":15577,"name":"UpgradeCannotChangeAccess","nameLocation":"6072:25:56","nodeType":"ErrorDefinition","parameters":{"id":15576,"nodeType":"ParameterList","parameters":[],"src":"6097:2:56"},"src":"6066:34:56"},{"documentation":{"id":15578,"nodeType":"StructuredDocumentation","src":"6104:97:56","text":" @dev Error when trying to add a component that was already added to the PolicyPool"},"errorSelector":"cf9a96f3","id":15580,"name":"ComponentAlreadyInThePool","nameLocation":"6210:25:56","nodeType":"ErrorDefinition","parameters":{"id":15579,"nodeType":"ParameterList","parameters":[],"src":"6235:2:56"},"src":"6204:34:56"},{"documentation":{"id":15581,"nodeType":"StructuredDocumentation","src":"6242:113:56","text":" @dev Error when trying to add a component that isn't linked to this pool (`.policyPool() != this`)"},"errorSelector":"1fbdc486","id":15583,"name":"ComponentNotLinkedToThisPool","nameLocation":"6364:28:56","nodeType":"ErrorDefinition","parameters":{"id":15582,"nodeType":"ParameterList","parameters":[],"src":"6392:2:56"},"src":"6358:37:56"},{"documentation":{"id":15584,"nodeType":"StructuredDocumentation","src":"6399:308:56","text":" @dev Error when a component is not of the right kind, it might happen if a component declared as\n      ComponentKind.eToken doesn't support the IEToken interface (or similar) or when in a given operation\n      we expect a component to be a risk module and the stored kind is different."},"errorSelector":"502c9a5f","id":15592,"name":"ComponentNotTheRightKind","nameLocation":"6716:24:56","nodeType":"ErrorDefinition","parameters":{"id":15591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15587,"mutability":"mutable","name":"component","nameLocation":"6762:9:56","nodeType":"VariableDeclaration","scope":15592,"src":"6741:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":15586,"nodeType":"UserDefinedTypeName","pathNode":{"id":15585,"name":"IPolicyPoolComponent","nameLocations":["6741:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"6741:20:56"},"referencedDeclaration":23823,"src":"6741:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"},{"constant":false,"id":15590,"mutability":"mutable","name":"expectedKind","nameLocation":"6787:12:56","nodeType":"VariableDeclaration","scope":15592,"src":"6773:26:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":15589,"nodeType":"UserDefinedTypeName","pathNode":{"id":15588,"name":"ComponentKind","nameLocations":["6773:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"6773:13:56"},"referencedDeclaration":15536,"src":"6773:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"src":"6740:60:56"},"src":"6710:91:56"},{"documentation":{"id":15593,"nodeType":"StructuredDocumentation","src":"6805:127:56","text":" @dev Error when a component is expected to be deprecated for the operation (see `removeComponent`) and it isn't."},"errorSelector":"b9256472","id":15595,"name":"ComponentNotDeprecated","nameLocation":"6941:22:56","nodeType":"ErrorDefinition","parameters":{"id":15594,"nodeType":"ParameterList","parameters":[],"src":"6963:2:56"},"src":"6935:31:56"},{"documentation":{"id":15596,"nodeType":"StructuredDocumentation","src":"6970:310:56","text":" @dev Error when trying to remove a component that is still in use. The \"in use\" definition can change from one\n      component to the other. For eToken in use means `totalSupply() != 0`. For PremiumsAccount means\n      `purePremiums() != 0`. For RiskModule means `activeExposure() != 0`."},"errorSelector":"1d0ec0ab","id":15603,"name":"ComponentInUseCannotRemove","nameLocation":"7289:26:56","nodeType":"ErrorDefinition","parameters":{"id":15602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15599,"mutability":"mutable","name":"kind","nameLocation":"7330:4:56","nodeType":"VariableDeclaration","scope":15603,"src":"7316:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":15598,"nodeType":"UserDefinedTypeName","pathNode":{"id":15597,"name":"ComponentKind","nameLocations":["7316:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"7316:13:56"},"referencedDeclaration":15536,"src":"7316:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"},{"constant":false,"id":15601,"mutability":"mutable","name":"amount","nameLocation":"7344:6:56","nodeType":"VariableDeclaration","scope":15603,"src":"7336:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15600,"name":"uint256","nodeType":"ElementaryTypeName","src":"7336:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7315:36:56"},"src":"7283:69:56"},{"documentation":{"id":15604,"nodeType":"StructuredDocumentation","src":"7356:91:56","text":" @dev Error when a component is not found in the pool (status = 0 = inactive)"},"errorSelector":"7d918563","id":15606,"name":"ComponentNotFound","nameLocation":"7456:17:56","nodeType":"ErrorDefinition","parameters":{"id":15605,"nodeType":"ParameterList","parameters":[],"src":"7473:2:56"},"src":"7450:26:56"},{"documentation":{"id":15607,"nodeType":"StructuredDocumentation","src":"7480:103:56","text":" @dev Error when a component is not found in the pool or is not active (status != active)"},"errorSelector":"0422f25f","id":15609,"name":"ComponentNotFoundOrNotActive","nameLocation":"7592:28:56","nodeType":"ErrorDefinition","parameters":{"id":15608,"nodeType":"ParameterList","parameters":[],"src":"7620:2:56"},"src":"7586:37:56"},{"documentation":{"id":15610,"nodeType":"StructuredDocumentation","src":"7627:244:56","text":" @dev Error when a component is not active or deprecated. Happens on some operations like eToken withdrawals or\n      policy resolutions that accept the component might be active or deprecated and isn't on any of those states."},"errorSelector":"d08ef1ff","id":15612,"name":"ComponentMustBeActiveOrDeprecated","nameLocation":"7880:33:56","nodeType":"ErrorDefinition","parameters":{"id":15611,"nodeType":"ParameterList","parameters":[],"src":"7913:2:56"},"src":"7874:42:56"},{"documentation":{"id":15613,"nodeType":"StructuredDocumentation","src":"7920:142:56","text":" @dev Error when a method intented to be called by riskModule (and by policy's risk module) is called by someone\n      else."},"errorSelector":"4ace04f9","id":15615,"name":"OnlyRiskModuleAllowed","nameLocation":"8071:21:56","nodeType":"ErrorDefinition","parameters":{"id":15614,"nodeType":"ParameterList","parameters":[],"src":"8092:2:56"},"src":"8065:30:56"},{"documentation":{"id":15616,"nodeType":"StructuredDocumentation","src":"8099:163:56","text":" @dev Error raised when IPolicyHolder doesn't return the expected selector answer when notified of policy payout,\n      reception or replacement."},"errorSelector":"81784a51","id":15620,"name":"InvalidNotificationResponse","nameLocation":"8271:27:56","nodeType":"ErrorDefinition","parameters":{"id":15619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15618,"mutability":"mutable","name":"response","nameLocation":"8306:8:56","nodeType":"VariableDeclaration","scope":15620,"src":"8299:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15617,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8299:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"8298:17:56"},"src":"8265:51:56"},{"anonymous":false,"documentation":{"id":15621,"nodeType":"StructuredDocumentation","src":"8320:246:56","text":" @dev Event emitted when the treasury changes\n @param action The type of governance action (setTreasury or setBaseURI for now)\n @param value  The address of the new treasury or the address of the caller (for setBaseURI)"},"eventSelector":"b6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f","id":15628,"name":"ComponentChanged","nameLocation":"8575:16:56","nodeType":"EventDefinition","parameters":{"id":15627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15624,"indexed":true,"mutability":"mutable","name":"action","nameLocation":"8633:6:56","nodeType":"VariableDeclaration","scope":15628,"src":"8592:47:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":15623,"nodeType":"UserDefinedTypeName","pathNode":{"id":15622,"name":"IAccessManager.GovernanceActions","nameLocations":["8592:14:56","8607:17:56"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"8592:32:56"},"referencedDeclaration":23301,"src":"8592:32:56","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":15626,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"8649:5:56","nodeType":"VariableDeclaration","scope":15628,"src":"8641:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15625,"name":"address","nodeType":"ElementaryTypeName","src":"8641:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8591:64:56"},"src":"8569:87:56"},{"anonymous":false,"documentation":{"id":15629,"nodeType":"StructuredDocumentation","src":"8660:387:56","text":" @dev Event emitted when a new component added/removed to the pool or the status changes.\n @param component The address of the component, it can be an {EToken}, {RiskModule} or {PremiumsAccount}\n @param kind Value indicating the kind of component. See {ComponentKind}\n @param newStatus The status of the component after the operation. See {ComponentStatus}"},"eventSelector":"fe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef","id":15640,"name":"ComponentStatusChanged","nameLocation":"9056:22:56","nodeType":"EventDefinition","parameters":{"id":15639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15632,"indexed":true,"mutability":"mutable","name":"component","nameLocation":"9108:9:56","nodeType":"VariableDeclaration","scope":15640,"src":"9079:38:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":15631,"nodeType":"UserDefinedTypeName","pathNode":{"id":15630,"name":"IPolicyPoolComponent","nameLocations":["9079:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"9079:20:56"},"referencedDeclaration":23823,"src":"9079:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"},{"constant":false,"id":15635,"indexed":false,"mutability":"mutable","name":"kind","nameLocation":"9133:4:56","nodeType":"VariableDeclaration","scope":15640,"src":"9119:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":15634,"nodeType":"UserDefinedTypeName","pathNode":{"id":15633,"name":"ComponentKind","nameLocations":["9119:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"9119:13:56"},"referencedDeclaration":15536,"src":"9119:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"},{"constant":false,"id":15638,"indexed":false,"mutability":"mutable","name":"newStatus","nameLocation":"9155:9:56","nodeType":"VariableDeclaration","scope":15640,"src":"9139:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":15637,"nodeType":"UserDefinedTypeName","pathNode":{"id":15636,"name":"ComponentStatus","nameLocations":["9139:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"9139:15:56"},"referencedDeclaration":15530,"src":"9139:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"}],"src":"9078:87:56"},"src":"9050:116:56"},{"anonymous":false,"documentation":{"id":15641,"nodeType":"StructuredDocumentation","src":"9170:253:56","text":" @dev Event emitted when a IPolicyHolder reverts on the expiration notification. The operation doesn't reverts\n @param policyId The id of the policy being expired\n @param holder The address of the contract that owns the policy"},"eventSelector":"6ce8016f81523f240956bca9a698e643d09e84e7d0e931470b1016baf1027bd0","id":15648,"name":"ExpirationNotificationFailed","nameLocation":"9432:28:56","nodeType":"EventDefinition","parameters":{"id":15647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15643,"indexed":true,"mutability":"mutable","name":"policyId","nameLocation":"9477:8:56","nodeType":"VariableDeclaration","scope":15648,"src":"9461:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15642,"name":"uint256","nodeType":"ElementaryTypeName","src":"9461:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15646,"indexed":false,"mutability":"mutable","name":"holder","nameLocation":"9501:6:56","nodeType":"VariableDeclaration","scope":15648,"src":"9487:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"},"typeName":{"id":15645,"nodeType":"UserDefinedTypeName","pathNode":{"id":15644,"name":"IPolicyHolder","nameLocations":["9487:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":23630,"src":"9487:13:56"},"referencedDeclaration":23630,"src":"9487:13:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"}},"visibility":"internal"}],"src":"9460:48:56"},"src":"9426:83:56"},{"body":{"id":15662,"nodeType":"Block","src":"9615:55:56","statements":[{"expression":{"arguments":[{"id":15656,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15651,"src":"9639:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":15657,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"9645:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15653,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"9621:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":15655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9629:9:56","memberName":"checkRole","nodeType":"MemberAccess","referencedDeclaration":23333,"src":"9621:17:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view external"}},"id":15659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9621:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15660,"nodeType":"ExpressionStatement","src":"9621:37:56"},{"id":15661,"nodeType":"PlaceholderStatement","src":"9664:1:56"}]},"documentation":{"id":15649,"nodeType":"StructuredDocumentation","src":"9512:68:56","text":" @dev Modifier that checks the caller has a given role"},"id":15663,"name":"onlyRole","nameLocation":"9592:8:56","nodeType":"ModifierDefinition","parameters":{"id":15652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15651,"mutability":"mutable","name":"role","nameLocation":"9609:4:56","nodeType":"VariableDeclaration","scope":15663,"src":"9601:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9601:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9600:14:56"},"src":"9583:87:56","virtual":false,"visibility":"internal"},{"body":{"id":15680,"nodeType":"Block","src":"9804:64:56","statements":[{"expression":{"arguments":[{"id":15673,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15666,"src":"9829:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15674,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15668,"src":"9836:5:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":15675,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"9843:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9843:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15670,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"9810:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":15672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9818:10:56","memberName":"checkRole2","nodeType":"MemberAccess","referencedDeclaration":23343,"src":"9810:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,address) view external"}},"id":15677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9810:46:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15678,"nodeType":"ExpressionStatement","src":"9810:46:56"},{"id":15679,"nodeType":"PlaceholderStatement","src":"9862:1:56"}]},"documentation":{"id":15664,"nodeType":"StructuredDocumentation","src":"9674:78:56","text":" @dev Modifier that checks the caller has any of the given roles"},"id":15681,"name":"onlyRole2","nameLocation":"9764:9:56","nodeType":"ModifierDefinition","parameters":{"id":15669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15666,"mutability":"mutable","name":"role1","nameLocation":"9782:5:56","nodeType":"VariableDeclaration","scope":15681,"src":"9774:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9774:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15668,"mutability":"mutable","name":"role2","nameLocation":"9797:5:56","nodeType":"VariableDeclaration","scope":15681,"src":"9789:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9789:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9773:30:56"},"src":"9755:113:56","virtual":false,"visibility":"internal"},{"body":{"id":15728,"nodeType":"Block","src":"10313:213:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15693,"name":"access_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15685,"src":"10331:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}],"id":15692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10323:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15691,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:56","typeDescriptions":{}}},"id":15694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10323:16:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10351:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10343:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15695,"name":"address","nodeType":"ElementaryTypeName","src":"10343:7:56","typeDescriptions":{}}},"id":15698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10323:30:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15703,"nodeType":"IfStatement","src":"10319:57:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15700,"name":"NoZeroAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15562,"src":"10362:12:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10362:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15702,"nodeType":"RevertStatement","src":"10355:21:56"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15706,"name":"currency_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15688,"src":"10394:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}],"id":15705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10386:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15704,"name":"address","nodeType":"ElementaryTypeName","src":"10386:7:56","typeDescriptions":{}}},"id":15707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10386:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10416:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10408:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15708,"name":"address","nodeType":"ElementaryTypeName","src":"10408:7:56","typeDescriptions":{}}},"id":15711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10408:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10386:32:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15716,"nodeType":"IfStatement","src":"10382:61:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15713,"name":"NoZeroCurrency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15565,"src":"10427:14:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10427:16:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15715,"nodeType":"RevertStatement","src":"10420:23:56"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15717,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"10449:20:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10449:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15719,"nodeType":"ExpressionStatement","src":"10449:22:56"},{"expression":{"id":15722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15720,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"10477:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15721,"name":"access_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15685,"src":"10487:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"src":"10477:17:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":15723,"nodeType":"ExpressionStatement","src":"10477:17:56"},{"expression":{"id":15726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15724,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"10500:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15725,"name":"currency_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15688,"src":"10512:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"src":"10500:21:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":15727,"nodeType":"ExpressionStatement","src":"10500:21:56"}]},"documentation":{"id":15682,"nodeType":"StructuredDocumentation","src":"10200:48:56","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":15729,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15685,"mutability":"mutable","name":"access_","nameLocation":"10278:7:56","nodeType":"VariableDeclaration","scope":15729,"src":"10263:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":15684,"nodeType":"UserDefinedTypeName","pathNode":{"id":15683,"name":"IAccessManager","nameLocations":["10263:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"10263:14:56"},"referencedDeclaration":23370,"src":"10263:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"},{"constant":false,"id":15688,"mutability":"mutable","name":"currency_","nameLocation":"10302:9:56","nodeType":"VariableDeclaration","scope":15729,"src":"10287:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":15687,"nodeType":"UserDefinedTypeName","pathNode":{"id":15686,"name":"IERC20Metadata","nameLocations":["10287:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"10287:14:56"},"referencedDeclaration":6066,"src":"10287:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"10262:50:56"},"returnParameters":{"id":15690,"nodeType":"ParameterList","parameters":[],"src":"10313:0:56"},"scope":17686,"src":"10251:275:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":15778,"nodeType":"Block","src":"10872:253:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":15743,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15732,"src":"10888:5:56","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10882:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15741,"name":"bytes","nodeType":"ElementaryTypeName","src":"10882:5:56","typeDescriptions":{}}},"id":15744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10882:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10895:6:56","memberName":"length","nodeType":"MemberAccess","src":"10882:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10905:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10882:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15751,"nodeType":"IfStatement","src":"10878:50:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15748,"name":"NoEmptyName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15571,"src":"10915:11:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10915:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15750,"nodeType":"RevertStatement","src":"10908:20:56"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":15754,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15734,"src":"10944:7:56","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10938:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15752,"name":"bytes","nodeType":"ElementaryTypeName","src":"10938:5:56","typeDescriptions":{}}},"id":15755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10938:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10953:6:56","memberName":"length","nodeType":"MemberAccess","src":"10938:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15762,"nodeType":"IfStatement","src":"10934:54:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15759,"name":"NoEmptySymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15574,"src":"10973:13:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10973:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15761,"nodeType":"RevertStatement","src":"10966:22:56"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15763,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1008,"src":"10994:22:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10994:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15765,"nodeType":"ExpressionStatement","src":"10994:24:56"},{"expression":{"arguments":[{"id":15767,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15732,"src":"11038:5:56","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15768,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15734,"src":"11045:7:56","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15766,"name":"__ERC721_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"11024:13:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":15769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11024:29:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15770,"nodeType":"ExpressionStatement","src":"11024:29:56"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15771,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"11059:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11059:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15773,"nodeType":"ExpressionStatement","src":"11059:17:56"},{"expression":{"arguments":[{"id":15775,"name":"treasury_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15736,"src":"11110:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15774,"name":"__PolicyPool_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15813,"src":"11082:27:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11082:38:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15777,"nodeType":"ExpressionStatement","src":"11082:38:56"}]},"documentation":{"id":15730,"nodeType":"StructuredDocumentation","src":"10530:237:56","text":" @dev Initializes a Policy Pool\n @param name_ The name of the ERC721 token.\n @param symbol_ The symbol of the ERC721 token.\n @param treasury_ The address of the treasury that will receive the protocol fees."},"functionSelector":"077f224a","id":15779,"implemented":true,"kind":"function","modifiers":[{"id":15739,"kind":"modifierInvocation","modifierName":{"id":15738,"name":"initializer","nameLocations":["10860:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"10860:11:56"},"nodeType":"ModifierInvocation","src":"10860:11:56"}],"name":"initialize","nameLocation":"10779:10:56","nodeType":"FunctionDefinition","parameters":{"id":15737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15732,"mutability":"mutable","name":"name_","nameLocation":"10804:5:56","nodeType":"VariableDeclaration","scope":15779,"src":"10790:19:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15731,"name":"string","nodeType":"ElementaryTypeName","src":"10790:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15734,"mutability":"mutable","name":"symbol_","nameLocation":"10825:7:56","nodeType":"VariableDeclaration","scope":15779,"src":"10811:21:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15733,"name":"string","nodeType":"ElementaryTypeName","src":"10811:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15736,"mutability":"mutable","name":"treasury_","nameLocation":"10842:9:56","nodeType":"VariableDeclaration","scope":15779,"src":"10834:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15735,"name":"address","nodeType":"ElementaryTypeName","src":"10834:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10789:63:56"},"returnParameters":{"id":15740,"nodeType":"ParameterList","parameters":[],"src":"10872:0:56"},"scope":17686,"src":"10770:355:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1324],"body":{"id":15800,"nodeType":"Block","src":"11275:102:56","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15790,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"11312:11:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15788,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"11288:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PolicyPool_$17686_$","typeString":"type(contract super PolicyPool)"}},"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11294:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1324,"src":"11288:23:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11288:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":15797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15792,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"11328:11:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":15794,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"11348:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPool_$23806_$","typeString":"type(contract IPolicyPool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyPool_$23806_$","typeString":"type(contract IPolicyPool)"}],"id":15793,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11343:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11343:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyPool_$23806","typeString":"type(contract IPolicyPool)"}},"id":15796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11361:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"11343:29:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"11328:44:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11288:84:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15787,"id":15799,"nodeType":"Return","src":"11281:91:56"}]},"documentation":{"id":15780,"nodeType":"StructuredDocumentation","src":"11129:52:56","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":15801,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"11193:17:56","nodeType":"FunctionDefinition","overrides":{"id":15784,"nodeType":"OverrideSpecifier","overrides":[],"src":"11251:8:56"},"parameters":{"id":15783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15782,"mutability":"mutable","name":"interfaceId","nameLocation":"11218:11:56","nodeType":"VariableDeclaration","scope":15801,"src":"11211:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15781,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11211:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"11210:20:56"},"returnParameters":{"id":15787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15801,"src":"11269:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15785,"name":"bool","nodeType":"ElementaryTypeName","src":"11269:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11268:6:56"},"scope":17686,"src":"11184:193:56","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15812,"nodeType":"Block","src":"11514:34:56","statements":[{"expression":{"arguments":[{"id":15809,"name":"treasury_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15803,"src":"11533:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15808,"name":"_setTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15910,"src":"11520:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11520:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15811,"nodeType":"ExpressionStatement","src":"11520:23:56"}]},"id":15813,"implemented":true,"kind":"function","modifiers":[{"id":15806,"kind":"modifierInvocation","modifierName":{"id":15805,"name":"onlyInitializing","nameLocations":["11497:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"11497:16:56"},"nodeType":"ModifierInvocation","src":"11497:16:56"}],"name":"__PolicyPool_init_unchained","nameLocation":"11441:27:56","nodeType":"FunctionDefinition","parameters":{"id":15804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15803,"mutability":"mutable","name":"treasury_","nameLocation":"11477:9:56","nodeType":"VariableDeclaration","scope":15813,"src":"11469:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15802,"name":"address","nodeType":"ElementaryTypeName","src":"11469:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11468:19:56"},"returnParameters":{"id":15807,"nodeType":"ParameterList","parameters":[],"src":"11514:0:56"},"scope":17686,"src":"11432:116:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1075],"body":{"id":15839,"nodeType":"Block","src":"11657:448:56","statements":[{"assignments":[15825],"declarations":[{"constant":false,"id":15825,"mutability":"mutable","name":"newPool","nameLocation":"11675:7:56","nodeType":"VariableDeclaration","scope":15839,"src":"11663:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":15824,"nodeType":"UserDefinedTypeName","pathNode":{"id":15823,"name":"IPolicyPool","nameLocations":["11663:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"11663:11:56"},"referencedDeclaration":23806,"src":"11663:11:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"id":15829,"initialValue":{"arguments":[{"id":15827,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15815,"src":"11697:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15826,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"11685:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPool_$23806_$","typeString":"type(contract IPolicyPool)"}},"id":15828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11685:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"VariableDeclarationStatement","src":"11663:42:56"},{"condition":{"commonType":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"id":15834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15830,"name":"newPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15825,"src":"11715:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":15831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11723:6:56","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"11715:14:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":15832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11715:16:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":15833,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"11735:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"src":"11715:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15838,"nodeType":"IfStatement","src":"11711:67:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15835,"name":"UpgradeCannotChangeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"11751:25:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15837,"nodeType":"RevertStatement","src":"11744:34:56"}}]},"id":15840,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15819,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"11629:13:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15820,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"11644:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15821,"kind":"modifierInvocation","modifierName":{"id":15818,"name":"onlyRole2","nameLocations":["11619:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15681,"src":"11619:9:56"},"nodeType":"ModifierInvocation","src":"11619:37:56"}],"name":"_authorizeUpgrade","nameLocation":"11561:17:56","nodeType":"FunctionDefinition","overrides":{"id":15817,"nodeType":"OverrideSpecifier","overrides":[],"src":"11610:8:56"},"parameters":{"id":15816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15815,"mutability":"mutable","name":"newImpl","nameLocation":"11587:7:56","nodeType":"VariableDeclaration","scope":15840,"src":"11579:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15814,"name":"address","nodeType":"ElementaryTypeName","src":"11579:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11578:17:56"},"returnParameters":{"id":15822,"nodeType":"ParameterList","parameters":[],"src":"11657:0:56"},"scope":17686,"src":"11552:553:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15850,"nodeType":"Block","src":"12437:19:56","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15847,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"12443:6:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12443:8:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15849,"nodeType":"ExpressionStatement","src":"12443:8:56"}]},"documentation":{"id":15841,"nodeType":"StructuredDocumentation","src":"12109:277:56","text":" @dev Pauses the contract. When the contract is paused, several operations are rejected: deposits, withdrawals, new\n policies, policy resolution and expiration, nft transfers.\n Requirements:\n - Must be executed by a user with the {GUARDIAN_ROLE}."},"functionSelector":"8456cb59","id":15851,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15844,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"12422:13:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15845,"kind":"modifierInvocation","modifierName":{"id":15843,"name":"onlyRole","nameLocations":["12413:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":15663,"src":"12413:8:56"},"nodeType":"ModifierInvocation","src":"12413:23:56"}],"name":"pause","nameLocation":"12398:5:56","nodeType":"FunctionDefinition","parameters":{"id":15842,"nodeType":"ParameterList","parameters":[],"src":"12403:2:56"},"returnParameters":{"id":15846,"nodeType":"ParameterList","parameters":[],"src":"12437:0:56"},"scope":17686,"src":"12389:67:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":15862,"nodeType":"Block","src":"12750:21:56","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15859,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"12756:8:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12756:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15861,"nodeType":"ExpressionStatement","src":"12756:10:56"}]},"documentation":{"id":15852,"nodeType":"StructuredDocumentation","src":"12460:223:56","text":" @dev Unpauses the contract. All the operations disabled when the contract was paused are re-enabled.\n Requirements:\n - Must be called by a user with either the {GUARDIAN_ROLE} or a {LEVEL1_ROLE}."},"functionSelector":"3f4ba83a","id":15863,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15855,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"12722:13:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15856,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"12737:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15857,"kind":"modifierInvocation","modifierName":{"id":15854,"name":"onlyRole2","nameLocations":["12712:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15681,"src":"12712:9:56"},"nodeType":"ModifierInvocation","src":"12712:37:56"}],"name":"unpause","nameLocation":"12695:7:56","nodeType":"FunctionDefinition","parameters":{"id":15853,"nodeType":"ParameterList","parameters":[],"src":"12702:2:56"},"returnParameters":{"id":15858,"nodeType":"ParameterList","parameters":[],"src":"12750:0:56"},"scope":17686,"src":"12686:85:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[23707],"body":{"id":15872,"nodeType":"Block","src":"12849:25:56","statements":[{"expression":{"id":15870,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"12862:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"functionReturnParameters":15869,"id":15871,"nodeType":"Return","src":"12855:14:56"}]},"functionSelector":"71907f17","id":15873,"implemented":true,"kind":"function","modifiers":[],"name":"access","nameLocation":"12784:6:56","nodeType":"FunctionDefinition","overrides":{"id":15865,"nodeType":"OverrideSpecifier","overrides":[],"src":"12815:8:56"},"parameters":{"id":15864,"nodeType":"ParameterList","parameters":[],"src":"12790:2:56"},"returnParameters":{"id":15869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15873,"src":"12833:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":15867,"nodeType":"UserDefinedTypeName","pathNode":{"id":15866,"name":"IAccessManager","nameLocations":["12833:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"12833:14:56"},"referencedDeclaration":23370,"src":"12833:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"12832:16:56"},"scope":17686,"src":"12775:99:56","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[23700],"body":{"id":15882,"nodeType":"Block","src":"12954:27:56","statements":[{"expression":{"id":15880,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"12967:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"functionReturnParameters":15879,"id":15881,"nodeType":"Return","src":"12960:16:56"}]},"functionSelector":"e5a6b10f","id":15883,"implemented":true,"kind":"function","modifiers":[],"name":"currency","nameLocation":"12887:8:56","nodeType":"FunctionDefinition","overrides":{"id":15875,"nodeType":"OverrideSpecifier","overrides":[],"src":"12920:8:56"},"parameters":{"id":15874,"nodeType":"ParameterList","parameters":[],"src":"12895:2:56"},"returnParameters":{"id":15879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15883,"src":"12938:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":15877,"nodeType":"UserDefinedTypeName","pathNode":{"id":15876,"name":"IERC20Metadata","nameLocations":["12938:14:56"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"12938:14:56"},"referencedDeclaration":6066,"src":"12938:14:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"12937:16:56"},"scope":17686,"src":"12878:103:56","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":15909,"nodeType":"Block","src":"13035:174:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15888,"name":"treasury_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"13045:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13066:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13058:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15889,"name":"address","nodeType":"ElementaryTypeName","src":"13058:7:56","typeDescriptions":{}}},"id":15892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13058:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13045:23:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15897,"nodeType":"IfStatement","src":"13041:52:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15894,"name":"NoZeroTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"13077:14:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13077:16:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15896,"nodeType":"RevertStatement","src":"13070:23:56"}},{"expression":{"id":15900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15898,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15524,"src":"13099:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15899,"name":"treasury_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"13111:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13099:21:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15901,"nodeType":"ExpressionStatement","src":"13099:21:56"},{"eventCall":{"arguments":[{"expression":{"expression":{"id":15903,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"13148:14:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":15904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13163:17:56","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"13148:32:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":15905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13181:11:56","memberName":"setTreasury","nodeType":"MemberAccess","referencedDeclaration":23256,"src":"13148:44:56","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":15906,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15524,"src":"13194:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15902,"name":"ComponentChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15628,"src":"13131:16:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_address_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,address)"}},"id":15907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13131:73:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15908,"nodeType":"EmitStatement","src":"13126:78:56"}]},"id":15910,"implemented":true,"kind":"function","modifiers":[],"name":"_setTreasury","nameLocation":"12994:12:56","nodeType":"FunctionDefinition","parameters":{"id":15886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15885,"mutability":"mutable","name":"treasury_","nameLocation":"13015:9:56","nodeType":"VariableDeclaration","scope":15910,"src":"13007:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15884,"name":"address","nodeType":"ElementaryTypeName","src":"13007:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13006:19:56"},"returnParameters":{"id":15887,"nodeType":"ParameterList","parameters":[],"src":"13035:0:56"},"scope":17686,"src":"12985:224:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":15923,"nodeType":"Block","src":"13577:34:56","statements":[{"expression":{"arguments":[{"id":15920,"name":"treasury_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15913,"src":"13596:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15919,"name":"_setTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15910,"src":"13583:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13583:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15922,"nodeType":"ExpressionStatement","src":"13583:23:56"}]},"documentation":{"id":15911,"nodeType":"StructuredDocumentation","src":"13213:290:56","text":" @dev Changes the address of the treasury, the one that receives the protocol fees.\n Requirements:\n - Must be called by a user with the {LEVEL1_ROLE}.\n Events:\n - Emits {ComponentChanged} with action = setTreasury and the address of the new treasury."},"functionSelector":"f0f44260","id":15924,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15916,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"13564:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15917,"kind":"modifierInvocation","modifierName":{"id":15915,"name":"onlyRole","nameLocations":["13555:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":15663,"src":"13555:8:56"},"nodeType":"ModifierInvocation","src":"13555:21:56"}],"name":"setTreasury","nameLocation":"13515:11:56","nodeType":"FunctionDefinition","parameters":{"id":15914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15913,"mutability":"mutable","name":"treasury_","nameLocation":"13535:9:56","nodeType":"VariableDeclaration","scope":15924,"src":"13527:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15912,"name":"address","nodeType":"ElementaryTypeName","src":"13527:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13526:19:56"},"returnParameters":{"id":15918,"nodeType":"ParameterList","parameters":[],"src":"13577:0:56"},"scope":17686,"src":"13506:105:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23713],"body":{"id":15933,"nodeType":"Block","src":"13776:27:56","statements":[{"expression":{"id":15931,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15524,"src":"13789:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":15930,"id":15932,"nodeType":"Return","src":"13782:16:56"}]},"documentation":{"id":15925,"nodeType":"StructuredDocumentation","src":"13615:97:56","text":" @dev Returns the address of the treasury, the one that receives the protocol fees."},"functionSelector":"61d027b3","id":15934,"implemented":true,"kind":"function","modifiers":[],"name":"treasury","nameLocation":"13724:8:56","nodeType":"FunctionDefinition","overrides":{"id":15927,"nodeType":"OverrideSpecifier","overrides":[],"src":"13749:8:56"},"parameters":{"id":15926,"nodeType":"ParameterList","parameters":[],"src":"13732:2:56"},"returnParameters":{"id":15930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15934,"src":"13767:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15928,"name":"address","nodeType":"ElementaryTypeName","src":"13767:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13766:9:56"},"scope":17686,"src":"13715:88:56","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16111,"nodeType":"Block","src":"14536:1104:56","statements":[{"assignments":[15949],"declarations":[{"constant":false,"id":15949,"mutability":"mutable","name":"comp","nameLocation":"14560:4:56","nodeType":"VariableDeclaration","scope":16111,"src":"14542:22:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"},"typeName":{"id":15948,"nodeType":"UserDefinedTypeName","pathNode":{"id":15947,"name":"Component","nameLocations":["14542:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15544,"src":"14542:9:56"},"referencedDeclaration":15544,"src":"14542:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"}},"visibility":"internal"}],"id":15953,"initialValue":{"baseExpression":{"id":15950,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"14567:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":15952,"indexExpression":{"id":15951,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"14579:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14567:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14542:47:56"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":15958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15954,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"14599:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":15955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14604:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"14599:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15956,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"14614:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":15957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14630:8:56","memberName":"inactive","nodeType":"MemberAccess","referencedDeclaration":15526,"src":"14614:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"14599:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15962,"nodeType":"IfStatement","src":"14595:79:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15959,"name":"ComponentAlreadyInThePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15580,"src":"14647:25:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14647:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15961,"nodeType":"RevertStatement","src":"14640:34:56"}},{"condition":{"commonType":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"id":15967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15963,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"14684:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":15964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14694:10:56","memberName":"policyPool","nodeType":"MemberAccess","referencedDeclaration":23822,"src":"14684:20:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPolicyPool_$23806_$","typeString":"function () view external returns (contract IPolicyPool)"}},"id":15965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":15966,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14710:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}},"src":"14684:30:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15971,"nodeType":"IfStatement","src":"14680:73:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15968,"name":"ComponentNotLinkedToThisPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15583,"src":"14723:28:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14723:30:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15970,"nodeType":"RevertStatement","src":"14716:37:56"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":15975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15972,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"14772:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15973,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"14780:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":15974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14794:6:56","memberName":"eToken","nodeType":"MemberAccess","referencedDeclaration":15533,"src":"14780:20:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"14772:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14804:55:56","subExpression":{"arguments":[{"expression":{"arguments":[{"id":15979,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"14838:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}],"id":15978,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14833:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14833:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IEToken_$23549","typeString":"type(contract IEToken)"}},"id":15981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14847:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"14833:25:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15976,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"14805:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":15977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14815:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7882,"src":"14805:27:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":15982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14805:54:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14772:87:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15985,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14771:89:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":15989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15986,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"14871:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15987,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"14879:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":15988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14893:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"14879:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"14871:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14912:64:56","subExpression":{"arguments":[{"expression":{"arguments":[{"id":15993,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"14946:16:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}],"id":15992,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14941:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14941:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPremiumsAccount_$23886","typeString":"type(contract IPremiumsAccount)"}},"id":15995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14964:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"14941:34:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15990,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"14913:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":15991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14923:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7882,"src":"14913:27:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":15996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14913:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14871:105:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15999,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14870:107:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:206:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16001,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"14988:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16002,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"14996:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15010:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":15534,"src":"14996:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"14988:32:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":16012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15024:59:56","subExpression":{"arguments":[{"expression":{"arguments":[{"id":16008,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"15058:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}],"id":16007,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15053:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15053:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IRiskModule_$23983","typeString":"type(contract IRiskModule)"}},"id":16010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15071:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"15053:29:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16005,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"15025:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":16006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15035:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7882,"src":"15025:27:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":16011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15025:58:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14988:95:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":16014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14987:97:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:313:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16021,"nodeType":"IfStatement","src":"14760:379:56","trueBody":{"errorCall":{"arguments":[{"id":16017,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"15123:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},{"id":16018,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"15134:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16016,"name":"ComponentNotTheRightKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"15098:24:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_contract$_IPolicyPoolComponent_$23823_$_t_enum$_ComponentKind_$15536_$returns$_t_error_$","typeString":"function (contract IPolicyPoolComponent,enum PolicyPool.ComponentKind) pure returns (error)"}},"id":16019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15098:41:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16020,"nodeType":"RevertStatement","src":"15091:48:56"}},{"expression":{"id":16027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16022,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"15146:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15151:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"15146:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16025,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"15160:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15176:6:56","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":15527,"src":"15160:22:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"15146:36:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"id":16028,"nodeType":"ExpressionStatement","src":"15146:36:56"},{"expression":{"id":16033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16029,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"15188:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15193:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"15188:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16032,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"15200:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"15188:16:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"id":16034,"nodeType":"ExpressionStatement","src":"15188:16:56"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16035,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"15214:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16036,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"15222:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15236:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"15222:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"15214:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16103,"nodeType":"IfStatement","src":"15210:352:56","trueBody":{"id":16102,"nodeType":"Block","src":"15253:309:56","statements":[{"assignments":[16041],"declarations":[{"constant":false,"id":16041,"mutability":"mutable","name":"pa","nameLocation":"15278:2:56","nodeType":"VariableDeclaration","scope":16102,"src":"15261:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":16040,"nodeType":"UserDefinedTypeName","pathNode":{"id":16039,"name":"IPremiumsAccount","nameLocations":["15261:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"15261:16:56"},"referencedDeclaration":23886,"src":"15261:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":16048,"initialValue":{"arguments":[{"arguments":[{"id":16045,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"15308:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15300:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16043,"name":"address","nodeType":"ElementaryTypeName","src":"15300:7:56","typeDescriptions":{}}},"id":16046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15300:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16042,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"15283:16:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}},"id":16047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15283:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"15261:58:56"},{"assignments":[16051],"declarations":[{"constant":false,"id":16051,"mutability":"mutable","name":"etk","nameLocation":"15335:3:56","nodeType":"VariableDeclaration","scope":16102,"src":"15327:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":16050,"nodeType":"UserDefinedTypeName","pathNode":{"id":16049,"name":"IEToken","nameLocations":["15327:7:56"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"15327:7:56"},"referencedDeclaration":23549,"src":"15327:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"id":16055,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16052,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"15341:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15344:9:56","memberName":"juniorEtk","nodeType":"MemberAccess","referencedDeclaration":23879,"src":"15341:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15341:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"VariableDeclarationStatement","src":"15327:28:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16058,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"15375:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15367:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16056,"name":"address","nodeType":"ElementaryTypeName","src":"15367:7:56","typeDescriptions":{}}},"id":16059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15367:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15391:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15383:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16060,"name":"address","nodeType":"ElementaryTypeName","src":"15383:7:56","typeDescriptions":{}}},"id":16063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15383:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15367:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16075,"nodeType":"IfStatement","src":"15363:79:56","trueBody":{"id":16074,"nodeType":"Block","src":"15395:47:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16070,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"15429:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15421:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16068,"name":"address","nodeType":"ElementaryTypeName","src":"15421:7:56","typeDescriptions":{}}},"id":16071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16065,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"15405:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15409:11:56","memberName":"addBorrower","nodeType":"MemberAccess","referencedDeclaration":23504,"src":"15405:15:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15405:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16073,"nodeType":"ExpressionStatement","src":"15405:28:56"}]}},{"expression":{"id":16080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16076,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"15449:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16077,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"15455:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15458:9:56","memberName":"seniorEtk","nodeType":"MemberAccess","referencedDeclaration":23872,"src":"15455:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15455:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"15449:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16081,"nodeType":"ExpressionStatement","src":"15449:20:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16084,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"15489:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15481:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16082,"name":"address","nodeType":"ElementaryTypeName","src":"15481:7:56","typeDescriptions":{}}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15481:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15505:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15497:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16086,"name":"address","nodeType":"ElementaryTypeName","src":"15497:7:56","typeDescriptions":{}}},"id":16089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15497:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15481:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16101,"nodeType":"IfStatement","src":"15477:79:56","trueBody":{"id":16100,"nodeType":"Block","src":"15509:47:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16096,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"15543:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15535:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16094,"name":"address","nodeType":"ElementaryTypeName","src":"15535:7:56","typeDescriptions":{}}},"id":16097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15535:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16091,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"15519:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15523:11:56","memberName":"addBorrower","nodeType":"MemberAccess","referencedDeclaration":23504,"src":"15519:15:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":16098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15519:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16099,"nodeType":"ExpressionStatement","src":"15519:28:56"}]}}]}},{"eventCall":{"arguments":[{"id":16105,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15938,"src":"15595:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},{"id":16106,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15941,"src":"15606:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"expression":{"id":16107,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"15612:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15628:6:56","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":15527,"src":"15612:22:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}],"id":16104,"name":"ComponentStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15640,"src":"15572:22:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IPolicyPoolComponent_$23823_$_t_enum$_ComponentKind_$15536_$_t_enum$_ComponentStatus_$15530_$returns$__$","typeString":"function (contract IPolicyPoolComponent,enum PolicyPool.ComponentKind,enum PolicyPool.ComponentStatus)"}},"id":16109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15572:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16110,"nodeType":"EmitStatement","src":"15567:68:56"}]},"documentation":{"id":15935,"nodeType":"StructuredDocumentation","src":"13807:621:56","text":" @dev Adds a new component (either an {EToken}, {RiskModule} or {PremiumsAccount}) to the protocol. The component\n status will be `active`.\n Requirements:\n - Must be called by a user with the {LEVEL1_ROLE}\n - The component wasn't added before.\n Events:\n - Emits {ComponentStatusChanged} with status active.\n @param component The address of component contract. Must be an {EToken}, {RiskModule} or {PremiumsAccount} linked\n to this specific {PolicyPool} and matching the `kind` specified in the next paramter.\n @param kind The type of component to be added."},"functionSelector":"6b8734e7","id":16112,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15944,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"14523:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15945,"kind":"modifierInvocation","modifierName":{"id":15943,"name":"onlyRole","nameLocations":["14514:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":15663,"src":"14514:8:56"},"nodeType":"ModifierInvocation","src":"14514:21:56"}],"name":"addComponent","nameLocation":"14440:12:56","nodeType":"FunctionDefinition","parameters":{"id":15942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15938,"mutability":"mutable","name":"component","nameLocation":"14474:9:56","nodeType":"VariableDeclaration","scope":16112,"src":"14453:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":15937,"nodeType":"UserDefinedTypeName","pathNode":{"id":15936,"name":"IPolicyPoolComponent","nameLocations":["14453:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"14453:20:56"},"referencedDeclaration":23823,"src":"14453:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"},{"constant":false,"id":15941,"mutability":"mutable","name":"kind","nameLocation":"14499:4:56","nodeType":"VariableDeclaration","scope":16112,"src":"14485:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":15940,"nodeType":"UserDefinedTypeName","pathNode":{"id":15939,"name":"ComponentKind","nameLocations":["14485:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"14485:13:56"},"referencedDeclaration":15536,"src":"14485:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"src":"14452:52:56"},"returnParameters":{"id":15946,"nodeType":"ParameterList","parameters":[],"src":"14536:0:56"},"scope":17686,"src":"14431:1209:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16297,"nodeType":"Block","src":"16174:1157:56","statements":[{"assignments":[16124],"declarations":[{"constant":false,"id":16124,"mutability":"mutable","name":"comp","nameLocation":"16198:4:56","nodeType":"VariableDeclaration","scope":16297,"src":"16180:22:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"},"typeName":{"id":16123,"nodeType":"UserDefinedTypeName","pathNode":{"id":16122,"name":"Component","nameLocations":["16180:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15544,"src":"16180:9:56"},"referencedDeclaration":15544,"src":"16180:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"}},"visibility":"internal"}],"id":16128,"initialValue":{"baseExpression":{"id":16125,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"16205:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":16127,"indexExpression":{"id":16126,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16217:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16205:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16180:47:56"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16129,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16237:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16242:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"16237:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16131,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"16252:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16268:10:56","memberName":"deprecated","nodeType":"MemberAccess","referencedDeclaration":15528,"src":"16252:26:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"16237:41:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16137,"nodeType":"IfStatement","src":"16233:78:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16134,"name":"ComponentNotDeprecated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15595,"src":"16287:22:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16287:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16136,"nodeType":"RevertStatement","src":"16280:31:56"}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16138,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16321:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16326:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16321:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16140,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"16334:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16348:6:56","memberName":"eToken","nodeType":"MemberAccess","referencedDeclaration":15533,"src":"16334:20:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"16321:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16168,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16528:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16533:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16528:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16170,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"16541:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16555:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":15534,"src":"16541:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"16528:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16198,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16753:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16758:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16753:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16200,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"16766:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16780:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"16766:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"16753:42:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16281,"nodeType":"IfStatement","src":"16749:462:56","trueBody":{"id":16280,"nodeType":"Block","src":"16797:414:56","statements":[{"assignments":[16205],"declarations":[{"constant":false,"id":16205,"mutability":"mutable","name":"pa","nameLocation":"16822:2:56","nodeType":"VariableDeclaration","scope":16280,"src":"16805:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":16204,"nodeType":"UserDefinedTypeName","pathNode":{"id":16203,"name":"IPremiumsAccount","nameLocations":["16805:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"16805:16:56"},"referencedDeclaration":23886,"src":"16805:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":16212,"initialValue":{"arguments":[{"arguments":[{"id":16209,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16852:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16844:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16207,"name":"address","nodeType":"ElementaryTypeName","src":"16844:7:56","typeDescriptions":{}}},"id":16210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16844:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16206,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"16827:16:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}},"id":16211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16827:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"16805:58:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16213,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"16875:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16878:12:56","memberName":"purePremiums","nodeType":"MemberAccess","referencedDeclaration":23885,"src":"16875:15:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16875:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16896:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16875:22:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16226,"nodeType":"IfStatement","src":"16871:91:56","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16219,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16933:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16938:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16933:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16221,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"16944:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16947:12:56","memberName":"purePremiums","nodeType":"MemberAccess","referencedDeclaration":23885,"src":"16944:15:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16944:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16218,"name":"ComponentInUseCannotRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15603,"src":"16906:26:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_ComponentKind_$15536_$_t_uint256_$returns$_t_error_$","typeString":"function (enum PolicyPool.ComponentKind,uint256) pure returns (error)"}},"id":16224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16906:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16225,"nodeType":"RevertStatement","src":"16899:63:56"}},{"assignments":[16229],"declarations":[{"constant":false,"id":16229,"mutability":"mutable","name":"etk","nameLocation":"16978:3:56","nodeType":"VariableDeclaration","scope":16280,"src":"16970:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":16228,"nodeType":"UserDefinedTypeName","pathNode":{"id":16227,"name":"IEToken","nameLocations":["16970:7:56"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"16970:7:56"},"referencedDeclaration":23549,"src":"16970:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"id":16233,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16230,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"16984:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:9:56","memberName":"juniorEtk","nodeType":"MemberAccess","referencedDeclaration":23879,"src":"16984:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16984:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"VariableDeclarationStatement","src":"16970:28:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16236,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"17018:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17010:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16234,"name":"address","nodeType":"ElementaryTypeName","src":"17010:7:56","typeDescriptions":{}}},"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17010:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17034:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17026:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16238,"name":"address","nodeType":"ElementaryTypeName","src":"17026:7:56","typeDescriptions":{}}},"id":16241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17026:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17010:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16253,"nodeType":"IfStatement","src":"17006:82:56","trueBody":{"id":16252,"nodeType":"Block","src":"17038:50:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16248,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"17075:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17067:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16246,"name":"address","nodeType":"ElementaryTypeName","src":"17067:7:56","typeDescriptions":{}}},"id":16249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16243,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"17048:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17052:14:56","memberName":"removeBorrower","nodeType":"MemberAccess","referencedDeclaration":23510,"src":"17048:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":16250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17048:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16251,"nodeType":"ExpressionStatement","src":"17048:31:56"}]}},{"expression":{"id":16258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16254,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"17095:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16255,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"17101:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17104:9:56","memberName":"seniorEtk","nodeType":"MemberAccess","referencedDeclaration":23872,"src":"17101:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17101:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"17095:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16259,"nodeType":"ExpressionStatement","src":"17095:20:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16262,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"17135:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17127:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16260,"name":"address","nodeType":"ElementaryTypeName","src":"17127:7:56","typeDescriptions":{}}},"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17127:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17151:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17143:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16264,"name":"address","nodeType":"ElementaryTypeName","src":"17143:7:56","typeDescriptions":{}}},"id":16267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17143:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17127:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16279,"nodeType":"IfStatement","src":"17123:82:56","trueBody":{"id":16278,"nodeType":"Block","src":"17155:50:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16274,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16205,"src":"17192:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17184:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16272,"name":"address","nodeType":"ElementaryTypeName","src":"17184:7:56","typeDescriptions":{}}},"id":16275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17184:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16269,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"17165:3:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17169:14:56","memberName":"removeBorrower","nodeType":"MemberAccess","referencedDeclaration":23510,"src":"17165:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":16276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17165:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16277,"nodeType":"ExpressionStatement","src":"17165:31:56"}]}}]}},"id":16282,"nodeType":"IfStatement","src":"16524:687:56","trueBody":{"id":16197,"nodeType":"Block","src":"16567:176:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":16176,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16599:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16591:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16174,"name":"address","nodeType":"ElementaryTypeName","src":"16591:7:56","typeDescriptions":{}}},"id":16177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16591:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16173,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"16579:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16579:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16611:14:56","memberName":"activeExposure","nodeType":"MemberAccess","referencedDeclaration":23957,"src":"16579:46:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16579:48:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16631:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16579:53:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16196,"nodeType":"IfStatement","src":"16575:161:56","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16184,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16676:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16681:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16676:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":16189,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16707:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16699:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16187,"name":"address","nodeType":"ElementaryTypeName","src":"16699:7:56","typeDescriptions":{}}},"id":16190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16699:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16186,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"16687:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":16191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16687:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16719:14:56","memberName":"activeExposure","nodeType":"MemberAccess","referencedDeclaration":23957,"src":"16687:46:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16687:48:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16183,"name":"ComponentInUseCannotRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15603,"src":"16649:26:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_ComponentKind_$15536_$_t_uint256_$returns$_t_error_$","typeString":"function (enum PolicyPool.ComponentKind,uint256) pure returns (error)"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16649:87:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16195,"nodeType":"RevertStatement","src":"16642:94:56"}}]}},"id":16283,"nodeType":"IfStatement","src":"16317:894:56","trueBody":{"id":16167,"nodeType":"Block","src":"16356:162:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":16146,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16384:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16376:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16144,"name":"address","nodeType":"ElementaryTypeName","src":"16376:7:56","typeDescriptions":{}}},"id":16147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16376:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16143,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"16368:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}},"id":16148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16368:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16396:11:56","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":5363,"src":"16368:39:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16368:41:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16413:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16368:46:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16166,"nodeType":"IfStatement","src":"16364:147:56","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16154,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"16458:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16463:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"16458:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":16159,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"16485:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}],"id":16158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16477:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16157,"name":"address","nodeType":"ElementaryTypeName","src":"16477:7:56","typeDescriptions":{}}},"id":16160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16477:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16156,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"16469:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}},"id":16161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16469:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16497:11:56","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":5363,"src":"16469:39:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":16163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16469:41:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16153,"name":"ComponentInUseCannotRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15603,"src":"16431:26:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_ComponentKind_$15536_$_t_uint256_$returns$_t_error_$","typeString":"function (enum PolicyPool.ComponentKind,uint256) pure returns (error)"}},"id":16164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16431:80:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16165,"nodeType":"RevertStatement","src":"16424:87:56"}}]}},{"eventCall":{"arguments":[{"id":16285,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"17244:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},{"expression":{"id":16286,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"17255:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17260:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"17255:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"expression":{"id":16288,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"17266:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17282:8:56","memberName":"inactive","nodeType":"MemberAccess","referencedDeclaration":15526,"src":"17266:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}],"id":16284,"name":"ComponentStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15640,"src":"17221:22:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IPolicyPoolComponent_$23823_$_t_enum$_ComponentKind_$15536_$_t_enum$_ComponentStatus_$15530_$returns$__$","typeString":"function (contract IPolicyPoolComponent,enum PolicyPool.ComponentKind,enum PolicyPool.ComponentStatus)"}},"id":16290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17221:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16291,"nodeType":"EmitStatement","src":"17216:75:56"},{"expression":{"id":16295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17297:29:56","subExpression":{"baseExpression":{"id":16292,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"17304:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":16294,"indexExpression":{"id":16293,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"17316:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17304:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16296,"nodeType":"ExpressionStatement","src":"17297:29:56"}]},"documentation":{"id":16113,"nodeType":"StructuredDocumentation","src":"15644:439:56","text":" @dev Removes a component from the protocol. The component needs to be in `deprecated` status before doing this\n operation.\n Requirements:\n - Must be called by a user with the {LEVEL1_ROLE}\n - The component status is `deprecated`.\n Events:\n - Emits {ComponentStatusChanged} with status inactive.\n @param component The address of component contract. Must be a component added before."},"functionSelector":"6f86c897","id":16298,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16119,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"16161:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16120,"kind":"modifierInvocation","modifierName":{"id":16118,"name":"onlyRole","nameLocations":["16152:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":15663,"src":"16152:8:56"},"nodeType":"ModifierInvocation","src":"16152:21:56"}],"name":"removeComponent","nameLocation":"16095:15:56","nodeType":"FunctionDefinition","parameters":{"id":16117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16116,"mutability":"mutable","name":"component","nameLocation":"16132:9:56","nodeType":"VariableDeclaration","scope":16298,"src":"16111:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":16115,"nodeType":"UserDefinedTypeName","pathNode":{"id":16114,"name":"IPolicyPoolComponent","nameLocations":["16111:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"16111:20:56"},"referencedDeclaration":23823,"src":"16111:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"}],"src":"16110:32:56"},"returnParameters":{"id":16121,"nodeType":"ParameterList","parameters":[],"src":"16174:0:56"},"scope":17686,"src":"16086:1245:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16369,"nodeType":"Block","src":"18023:503:56","statements":[{"assignments":[16314],"declarations":[{"constant":false,"id":16314,"mutability":"mutable","name":"comp","nameLocation":"18047:4:56","nodeType":"VariableDeclaration","scope":16369,"src":"18029:22:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"},"typeName":{"id":16313,"nodeType":"UserDefinedTypeName","pathNode":{"id":16312,"name":"Component","nameLocations":["18029:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15544,"src":"18029:9:56"},"referencedDeclaration":15544,"src":"18029:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"}},"visibility":"internal"}],"id":16318,"initialValue":{"baseExpression":{"id":16315,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"18054:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":16317,"indexExpression":{"id":16316,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"18066:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18054:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18029:47:56"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16319,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16314,"src":"18086:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18091:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"18086:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16321,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"18101:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18117:8:56","memberName":"inactive","nodeType":"MemberAccess","referencedDeclaration":15526,"src":"18101:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"18086:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16327,"nodeType":"IfStatement","src":"18082:71:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16324,"name":"ComponentNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15606,"src":"18134:17:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18134:19:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16326,"nodeType":"RevertStatement","src":"18127:26:56"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16328,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16305,"src":"18163:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16329,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"18176:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18192:6:56","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":15527,"src":"18176:22:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"18163:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16332,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16305,"src":"18202:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16333,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"18215:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18231:10:56","memberName":"deprecated","nodeType":"MemberAccess","referencedDeclaration":15528,"src":"18215:26:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"18202:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18163:78:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16354,"nodeType":"Block","src":"18308:119:56","statements":[{"expression":{"arguments":[{"id":16349,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"18392:13:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":16350,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"18407:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18407:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16346,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"18374:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":16348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18382:9:56","memberName":"checkRole","nodeType":"MemberAccess","referencedDeclaration":23333,"src":"18374:17:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view external"}},"id":16352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18374:46:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16353,"nodeType":"ExpressionStatement","src":"18374:46:56"}]},"id":16355,"nodeType":"IfStatement","src":"18159:268:56","trueBody":{"id":16345,"nodeType":"Block","src":"18243:59:56","statements":[{"expression":{"arguments":[{"id":16340,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"18269:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":16341,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"18282:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18282:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16337,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15517,"src":"18251:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":16339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18259:9:56","memberName":"checkRole","nodeType":"MemberAccess","referencedDeclaration":23333,"src":"18251:17:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view external"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18251:44:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16344,"nodeType":"ExpressionStatement","src":"18251:44:56"}]}},{"expression":{"id":16360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16356,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16314,"src":"18432:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18437:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"18432:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16359,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16305,"src":"18446:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"18432:23:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"id":16361,"nodeType":"ExpressionStatement","src":"18432:23:56"},{"eventCall":{"arguments":[{"id":16363,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"18489:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},{"expression":{"id":16364,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16314,"src":"18500:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18505:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"18500:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},{"id":16366,"name":"newStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16305,"src":"18511:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}],"id":16362,"name":"ComponentStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15640,"src":"18466:22:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IPolicyPoolComponent_$23823_$_t_enum$_ComponentKind_$15536_$_t_enum$_ComponentStatus_$15530_$returns$__$","typeString":"function (contract IPolicyPoolComponent,enum PolicyPool.ComponentKind,enum PolicyPool.ComponentStatus)"}},"id":16367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18466:55:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16368,"nodeType":"EmitStatement","src":"18461:60:56"}]},"documentation":{"id":16299,"nodeType":"StructuredDocumentation","src":"17335:536:56","text":" @dev Changes the status of a component.\n Requirements:\n - Must be called by a user with the {LEVEL1_ROLE} if the new status is `active` or `deprecated`.\n - Must be called by a user with the {GUARDIAN_ROLE} if the new status is `suspended`.\n Events:\n - Emits {ComponentStatusChanged} with the new status.\n @param component The address of component contract. Must be a component added before.\n @param newStatus The new status, must be either `active`, `deprecated` or `suspended`."},"functionSelector":"5fcbf445","id":16370,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16308,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"17995:13:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16309,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"18010:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16310,"kind":"modifierInvocation","modifierName":{"id":16307,"name":"onlyRole2","nameLocations":["17985:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15681,"src":"17985:9:56"},"nodeType":"ModifierInvocation","src":"17985:37:56"}],"name":"changeComponentStatus","nameLocation":"17883:21:56","nodeType":"FunctionDefinition","parameters":{"id":16306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16302,"mutability":"mutable","name":"component","nameLocation":"17931:9:56","nodeType":"VariableDeclaration","scope":16370,"src":"17910:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":16301,"nodeType":"UserDefinedTypeName","pathNode":{"id":16300,"name":"IPolicyPoolComponent","nameLocations":["17910:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"17910:20:56"},"referencedDeclaration":23823,"src":"17910:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"},{"constant":false,"id":16305,"mutability":"mutable","name":"newStatus","nameLocation":"17962:9:56","nodeType":"VariableDeclaration","scope":16370,"src":"17946:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":16304,"nodeType":"UserDefinedTypeName","pathNode":{"id":16303,"name":"ComponentStatus","nameLocations":["17946:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"17946:15:56"},"referencedDeclaration":15530,"src":"17946:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"}],"src":"17904:71:56"},"returnParameters":{"id":16311,"nodeType":"ParameterList","parameters":[],"src":"18023:0:56"},"scope":17686,"src":"17874:652:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16385,"nodeType":"Block","src":"18807:47:56","statements":[{"expression":{"expression":{"baseExpression":{"id":16380,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"18820:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":16382,"indexExpression":{"id":16381,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16374,"src":"18832:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18820:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"id":16383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18843:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"18820:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"functionReturnParameters":16379,"id":16384,"nodeType":"Return","src":"18813:36:56"}]},"documentation":{"id":16371,"nodeType":"StructuredDocumentation","src":"18530:174:56","text":" @dev Returns the status of a component.\n @param component The address of the component\n @return The status of the component. See {ComponentStatus}"},"functionSelector":"33d6157a","id":16386,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentStatus","nameLocation":"18716:18:56","nodeType":"FunctionDefinition","parameters":{"id":16375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16374,"mutability":"mutable","name":"component","nameLocation":"18756:9:56","nodeType":"VariableDeclaration","scope":16386,"src":"18735:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},"typeName":{"id":16373,"nodeType":"UserDefinedTypeName","pathNode":{"id":16372,"name":"IPolicyPoolComponent","nameLocations":["18735:20:56"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"18735:20:56"},"referencedDeclaration":23823,"src":"18735:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"visibility":"internal"}],"src":"18734:32:56"},"returnParameters":{"id":16379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16386,"src":"18790:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":16377,"nodeType":"UserDefinedTypeName","pathNode":{"id":16376,"name":"ComponentStatus","nameLocations":["18790:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"18790:15:56"},"referencedDeclaration":15530,"src":"18790:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"}],"src":"18789:17:56"},"scope":17686,"src":"18707:147:56","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16421,"nodeType":"Block","src":"18963:203:56","statements":[{"assignments":[16399],"declarations":[{"constant":false,"id":16399,"mutability":"mutable","name":"comp","nameLocation":"18987:4:56","nodeType":"VariableDeclaration","scope":16421,"src":"18969:22:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"},"typeName":{"id":16398,"nodeType":"UserDefinedTypeName","pathNode":{"id":16397,"name":"Component","nameLocations":["18969:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":15544,"src":"18969:9:56"},"referencedDeclaration":15544,"src":"18969:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component"}},"visibility":"internal"}],"id":16405,"initialValue":{"baseExpression":{"id":16400,"name":"_components","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"18994:11:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_contract$_IPolicyPoolComponent_$23823_$_t_struct$_Component_$15544_storage_$","typeString":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component storage ref)"}},"id":16404,"indexExpression":{"arguments":[{"id":16402,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"19027:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16401,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"19006:20:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}},"id":16403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19006:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18994:44:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage","typeString":"struct PolicyPool.Component storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18969:69:56"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"id":16409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16406,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"19048:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19053:4:56","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":15543,"src":"19048:9:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16408,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16391,"src":"19061:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"src":"19048:17:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16417,"nodeType":"IfStatement","src":"19044:93:56","trueBody":{"errorCall":{"arguments":[{"arguments":[{"id":16412,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"19120:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16411,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"19099:20:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}},"id":16413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19099:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},{"id":16414,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16391,"src":"19132:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16410,"name":"ComponentNotTheRightKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15592,"src":"19074:24:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_contract$_IPolicyPoolComponent_$23823_$_t_enum$_ComponentKind_$15536_$returns$_t_error_$","typeString":"function (contract IPolicyPoolComponent,enum PolicyPool.ComponentKind) pure returns (error)"}},"id":16415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19074:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16416,"nodeType":"RevertStatement","src":"19067:70:56"}},{"expression":{"expression":{"id":16418,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"19150:4:56","typeDescriptions":{"typeIdentifier":"t_struct$_Component_$15544_storage_ptr","typeString":"struct PolicyPool.Component storage pointer"}},"id":16419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19155:6:56","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":15540,"src":"19150:11:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"functionReturnParameters":16396,"id":16420,"nodeType":"Return","src":"19143:18:56"}]},"id":16422,"implemented":true,"kind":"function","modifiers":[],"name":"_componentStatus","nameLocation":"18867:16:56","nodeType":"FunctionDefinition","parameters":{"id":16392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16388,"mutability":"mutable","name":"component","nameLocation":"18892:9:56","nodeType":"VariableDeclaration","scope":16422,"src":"18884:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16387,"name":"address","nodeType":"ElementaryTypeName","src":"18884:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16391,"mutability":"mutable","name":"kind","nameLocation":"18917:4:56","nodeType":"VariableDeclaration","scope":16422,"src":"18903:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":16390,"nodeType":"UserDefinedTypeName","pathNode":{"id":16389,"name":"ComponentKind","nameLocations":["18903:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"18903:13:56"},"referencedDeclaration":15536,"src":"18903:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"src":"18883:39:56"},"returnParameters":{"id":16396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16422,"src":"18946:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":16394,"nodeType":"UserDefinedTypeName","pathNode":{"id":16393,"name":"ComponentStatus","nameLocations":["18946:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"18946:15:56"},"referencedDeclaration":15530,"src":"18946:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"}],"src":"18945:17:56"},"scope":17686,"src":"18858:308:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16441,"nodeType":"Block","src":"19251:113:56","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16431,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16424,"src":"19278:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16432,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16427,"src":"19289:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16430,"name":"_componentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16422,"src":"19261:16:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$_t_enum$_ComponentStatus_$15530_$","typeString":"function (address,enum PolicyPool.ComponentKind) view returns (enum PolicyPool.ComponentStatus)"}},"id":16433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19261:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16434,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"19298:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19314:6:56","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":15527,"src":"19298:22:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"19261:59:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16440,"nodeType":"IfStatement","src":"19257:102:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16437,"name":"ComponentNotFoundOrNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15609,"src":"19329:28:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19329:30:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16439,"nodeType":"RevertStatement","src":"19322:37:56"}}]},"id":16442,"implemented":true,"kind":"function","modifiers":[],"name":"_requireCompActive","nameLocation":"19179:18:56","nodeType":"FunctionDefinition","parameters":{"id":16428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16424,"mutability":"mutable","name":"component","nameLocation":"19206:9:56","nodeType":"VariableDeclaration","scope":16442,"src":"19198:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16423,"name":"address","nodeType":"ElementaryTypeName","src":"19198:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16427,"mutability":"mutable","name":"kind","nameLocation":"19231:4:56","nodeType":"VariableDeclaration","scope":16442,"src":"19217:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":16426,"nodeType":"UserDefinedTypeName","pathNode":{"id":16425,"name":"ComponentKind","nameLocations":["19217:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"19217:13:56"},"referencedDeclaration":15536,"src":"19217:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"src":"19197:39:56"},"returnParameters":{"id":16429,"nodeType":"ParameterList","parameters":[],"src":"19251:0:56"},"scope":17686,"src":"19170:194:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16471,"nodeType":"Block","src":"19461:201:56","statements":[{"assignments":[16452],"declarations":[{"constant":false,"id":16452,"mutability":"mutable","name":"status","nameLocation":"19483:6:56","nodeType":"VariableDeclaration","scope":16471,"src":"19467:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"typeName":{"id":16451,"nodeType":"UserDefinedTypeName","pathNode":{"id":16450,"name":"ComponentStatus","nameLocations":["19467:15:56"],"nodeType":"IdentifierPath","referencedDeclaration":15530,"src":"19467:15:56"},"referencedDeclaration":15530,"src":"19467:15:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"visibility":"internal"}],"id":16457,"initialValue":{"arguments":[{"id":16454,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16444,"src":"19509:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16455,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16447,"src":"19520:4:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16453,"name":"_componentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16422,"src":"19492:16:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$_t_enum$_ComponentStatus_$15530_$","typeString":"function (address,enum PolicyPool.ComponentKind) view returns (enum PolicyPool.ComponentStatus)"}},"id":16456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19492:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"VariableDeclarationStatement","src":"19467:58:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16458,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16452,"src":"19535:6:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16459,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"19545:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19561:6:56","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":15527,"src":"19545:22:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"19535:32:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16462,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16452,"src":"19571:6:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":16463,"name":"ComponentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"19581:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentStatus_$15530_$","typeString":"type(enum PolicyPool.ComponentStatus)"}},"id":16464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19597:10:56","memberName":"deprecated","nodeType":"MemberAccess","referencedDeclaration":15528,"src":"19581:26:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentStatus_$15530","typeString":"enum PolicyPool.ComponentStatus"}},"src":"19571:36:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19535:72:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16470,"nodeType":"IfStatement","src":"19531:126:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16467,"name":"ComponentMustBeActiveOrDeprecated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15612,"src":"19622:33:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19622:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16469,"nodeType":"RevertStatement","src":"19615:42:56"}}]},"id":16472,"implemented":true,"kind":"function","modifiers":[],"name":"_requireCompActiveOrDeprecated","nameLocation":"19377:30:56","nodeType":"FunctionDefinition","parameters":{"id":16448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16444,"mutability":"mutable","name":"component","nameLocation":"19416:9:56","nodeType":"VariableDeclaration","scope":16472,"src":"19408:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16443,"name":"address","nodeType":"ElementaryTypeName","src":"19408:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16447,"mutability":"mutable","name":"kind","nameLocation":"19441:4:56","nodeType":"VariableDeclaration","scope":16472,"src":"19427:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"},"typeName":{"id":16446,"nodeType":"UserDefinedTypeName","pathNode":{"id":16445,"name":"ComponentKind","nameLocations":["19427:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":15536,"src":"19427:13:56"},"referencedDeclaration":15536,"src":"19427:13:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}},"visibility":"internal"}],"src":"19407:39:56"},"returnParameters":{"id":16449,"nodeType":"ParameterList","parameters":[],"src":"19461:0:56"},"scope":17686,"src":"19368:294:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[23794],"body":{"id":16530,"nodeType":"Block","src":"19747:293:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16486,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16475,"src":"19780:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19772:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16484,"name":"address","nodeType":"ElementaryTypeName","src":"19772:7:56","typeDescriptions":{}}},"id":16487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19772:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16488,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"19789:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19803:6:56","memberName":"eToken","nodeType":"MemberAccess","referencedDeclaration":15533,"src":"19789:20:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16483,"name":"_requireCompActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"19753:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19753:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16491,"nodeType":"ExpressionStatement","src":"19753:57:56"},{"assignments":[16493],"declarations":[{"constant":false,"id":16493,"mutability":"mutable","name":"balanceBefore","nameLocation":"19824:13:56","nodeType":"VariableDeclaration","scope":16530,"src":"19816:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16492,"name":"uint256","nodeType":"ElementaryTypeName","src":"19816:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16501,"initialValue":{"arguments":[{"arguments":[{"id":16498,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16475,"src":"19868:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19860:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16496,"name":"address","nodeType":"ElementaryTypeName","src":"19860:7:56","typeDescriptions":{}}},"id":16499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19860:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16494,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"19840:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19850:9:56","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"19840:19:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19840:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19816:60:56"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":16505,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"19909:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16509,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16475,"src":"19931:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19923:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16507,"name":"address","nodeType":"ElementaryTypeName","src":"19923:7:56","typeDescriptions":{}}},"id":16510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19923:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16511,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16477,"src":"19940:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16502,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"19882:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19892:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"19882:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19882:65:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16513,"nodeType":"ExpressionStatement","src":"19882:65:56"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":16517,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"19968:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19968:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16523,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16475,"src":"20010:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20002:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16521,"name":"address","nodeType":"ElementaryTypeName","src":"20002:7:56","typeDescriptions":{}}},"id":16524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20002:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16519,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"19982:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19992:9:56","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"19982:19:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":16525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19982:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":16526,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16493,"src":"20021:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19982:52:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16514,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16475,"src":"19953:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19960:7:56","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":23482,"src":"19953:14:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19953:82:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16529,"nodeType":"ExpressionStatement","src":"19953:82:56"}]},"functionSelector":"47e7ef24","id":16531,"implemented":true,"kind":"function","modifiers":[{"id":16481,"kind":"modifierInvocation","modifierName":{"id":16480,"name":"whenNotPaused","nameLocations":["19733:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"19733:13:56"},"nodeType":"ModifierInvocation","src":"19733:13:56"}],"name":"deposit","nameLocation":"19675:7:56","nodeType":"FunctionDefinition","overrides":{"id":16479,"nodeType":"OverrideSpecifier","overrides":[],"src":"19724:8:56"},"parameters":{"id":16478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16475,"mutability":"mutable","name":"eToken","nameLocation":"19691:6:56","nodeType":"VariableDeclaration","scope":16531,"src":"19683:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":16474,"nodeType":"UserDefinedTypeName","pathNode":{"id":16473,"name":"IEToken","nameLocations":["19683:7:56"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"19683:7:56"},"referencedDeclaration":23549,"src":"19683:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":16477,"mutability":"mutable","name":"amount","nameLocation":"19707:6:56","nodeType":"VariableDeclaration","scope":16531,"src":"19699:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16476,"name":"uint256","nodeType":"ElementaryTypeName","src":"19699:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19682:32:56"},"returnParameters":{"id":16482,"nodeType":"ParameterList","parameters":[],"src":"19747:0:56"},"scope":17686,"src":"19666:374:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23805],"body":{"id":16560,"nodeType":"Block","src":"20144:130:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":16547,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"20189:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20181:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16545,"name":"address","nodeType":"ElementaryTypeName","src":"20181:7:56","typeDescriptions":{}}},"id":16548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20181:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16549,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"20198:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20212:6:56","memberName":"eToken","nodeType":"MemberAccess","referencedDeclaration":15533,"src":"20198:20:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16544,"name":"_requireCompActiveOrDeprecated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"20150:30:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20150:69:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16552,"nodeType":"ExpressionStatement","src":"20150:69:56"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":16555,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"20248:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20248:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16557,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"20262:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16553,"name":"eToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"20232:6:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":16554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20239:8:56","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":23492,"src":"20232:15:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":16558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20232:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16543,"id":16559,"nodeType":"Return","src":"20225:44:56"}]},"functionSelector":"f3fef3a3","id":16561,"implemented":true,"kind":"function","modifiers":[{"id":16540,"kind":"modifierInvocation","modifierName":{"id":16539,"name":"whenNotPaused","nameLocations":["20112:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"20112:13:56"},"nodeType":"ModifierInvocation","src":"20112:13:56"}],"name":"withdraw","nameLocation":"20053:8:56","nodeType":"FunctionDefinition","overrides":{"id":16538,"nodeType":"OverrideSpecifier","overrides":[],"src":"20103:8:56"},"parameters":{"id":16537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16534,"mutability":"mutable","name":"eToken","nameLocation":"20070:6:56","nodeType":"VariableDeclaration","scope":16561,"src":"20062:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":16533,"nodeType":"UserDefinedTypeName","pathNode":{"id":16532,"name":"IEToken","nameLocations":["20062:7:56"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"20062:7:56"},"referencedDeclaration":23549,"src":"20062:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":16536,"mutability":"mutable","name":"amount","nameLocation":"20086:6:56","nodeType":"VariableDeclaration","scope":16561,"src":"20078:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16535,"name":"uint256","nodeType":"ElementaryTypeName","src":"20078:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20061:32:56"},"returnParameters":{"id":16543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16561,"src":"20135:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16541,"name":"uint256","nodeType":"ElementaryTypeName","src":"20135:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20134:9:56"},"scope":17686,"src":"20044:230:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23728],"body":{"id":16753,"nodeType":"Block","src":"20456:1468:56","statements":[{"assignments":[16580],"declarations":[{"constant":false,"id":16580,"mutability":"mutable","name":"rm","nameLocation":"20488:2:56","nodeType":"VariableDeclaration","scope":16753,"src":"20476:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":16579,"nodeType":"UserDefinedTypeName","pathNode":{"id":16578,"name":"IRiskModule","nameLocations":["20476:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"20476:11:56"},"referencedDeclaration":23983,"src":"20476:11:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"}],"id":16583,"initialValue":{"expression":{"id":16581,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20493:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20500:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"20493:17:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"VariableDeclarationStatement","src":"20476:34:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16586,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"20528:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":16585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20520:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16584,"name":"address","nodeType":"ElementaryTypeName","src":"20520:7:56","typeDescriptions":{}}},"id":16587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20520:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":16588,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"20535:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20535:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20520:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16594,"nodeType":"IfStatement","src":"20516:63:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16591,"name":"OnlyRiskModuleAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15615,"src":"20556:21:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20556:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16593,"nodeType":"RevertStatement","src":"20549:30:56"}},{"expression":{"arguments":[{"arguments":[{"id":16598,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"20612:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":16597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20604:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16596,"name":"address","nodeType":"ElementaryTypeName","src":"20604:7:56","typeDescriptions":{}}},"id":16599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20604:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16600,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"20617:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20631:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":15534,"src":"20617:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16595,"name":"_requireCompActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"20585:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20585:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16603,"nodeType":"ExpressionStatement","src":"20585:57:56"},{"assignments":[16606],"declarations":[{"constant":false,"id":16606,"mutability":"mutable","name":"pa","nameLocation":"20665:2:56","nodeType":"VariableDeclaration","scope":16753,"src":"20648:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":16605,"nodeType":"UserDefinedTypeName","pathNode":{"id":16604,"name":"IPremiumsAccount","nameLocations":["20648:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"20648:16:56"},"referencedDeclaration":23886,"src":"20648:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":16610,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16607,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"20670:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20673:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":23982,"src":"20670:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPremiumsAccount_$23886_$","typeString":"function () view external returns (contract IPremiumsAccount)"}},"id":16609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20670:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"20648:42:56"},{"expression":{"arguments":[{"arguments":[{"id":16614,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16606,"src":"20723:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20715:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16612,"name":"address","nodeType":"ElementaryTypeName","src":"20715:7:56","typeDescriptions":{}}},"id":16615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20715:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16616,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"20728:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20742:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"20728:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16611,"name":"_requireCompActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"20696:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20696:62:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16619,"nodeType":"ExpressionStatement","src":"20696:62:56"},{"expression":{"id":16627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16620,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20780:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20787:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"20780:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16624,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"20805:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":16625,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16570,"src":"20809:10:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":16623,"name":"makePolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17155,"src":"20792:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IRiskModule_$23983_$_t_uint96_$returns$_t_uint256_$","typeString":"function (contract IRiskModule,uint96) pure returns (uint256)"}},"id":16626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20792:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20780:40:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16628,"nodeType":"ExpressionStatement","src":"20780:40:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16630,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"20834:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":16633,"indexExpression":{"expression":{"id":16631,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20844:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20851:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"20844:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20834:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":16636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20866:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20858:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":16634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20858:7:56","typeDescriptions":{}}},"id":16637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20834:34:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616c726561647920657869737473","id":16639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20870:23:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26","typeString":"literal_string \"Policy already exists\""},"value":"Policy already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26","typeString":"literal_string \"Policy already exists\""}],"id":16629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20826:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20826:68:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16641,"nodeType":"ExpressionStatement","src":"20826:68:56"},{"expression":{"id":16649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16642,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"20900:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":16645,"indexExpression":{"expression":{"id":16643,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20910:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20917:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"20910:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20900:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16646,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20923:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20930:4:56","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"20923:11:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":16648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20923:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20900:36:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16650,"nodeType":"ExpressionStatement","src":"20900:36:56"},{"expression":{"arguments":[{"id":16652,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"20952:12:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16653,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"20966:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20973:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"20966:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":16655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20977:2:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":16651,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1725,1754],"referencedDeclaration":1754,"src":"20942:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":16656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20942:38:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16657,"nodeType":"ExpressionStatement","src":"20942:38:56"},{"expression":{"arguments":[{"id":16661,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21024:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"expression":{"id":16658,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16606,"src":"21007:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21010:13:56","memberName":"policyCreated","nodeType":"MemberAccess","referencedDeclaration":23837,"src":"21007:16:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory) external"}},"id":16662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21007:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16663,"nodeType":"ExpressionStatement","src":"21007:24:56"},{"expression":{"arguments":[{"id":16667,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21095:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16670,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16606,"src":"21110:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21102:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16668,"name":"address","nodeType":"ElementaryTypeName","src":"21102:7:56","typeDescriptions":{}}},"id":16671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21102:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16672,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21115:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21122:11:56","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"21115:18:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16664,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"21068:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21078:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"21068:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21068:66:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16675,"nodeType":"ExpressionStatement","src":"21068:66:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16676,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21144:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21151:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"21144:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21159:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21144:16:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16694,"nodeType":"IfStatement","src":"21140:94:56","trueBody":{"expression":{"arguments":[{"id":16683,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21189:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16686,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16606,"src":"21204:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21207:9:56","memberName":"seniorEtk","nodeType":"MemberAccess","referencedDeclaration":23872,"src":"21204:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21204:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21196:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16684,"name":"address","nodeType":"ElementaryTypeName","src":"21196:7:56","typeDescriptions":{}}},"id":16689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21196:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16690,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21221:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21228:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"21221:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16680,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"21162:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21172:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"21162:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21162:72:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16693,"nodeType":"ExpressionStatement","src":"21162:72:56"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16695,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21244:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21251:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"21244:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21259:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21244:16:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16713,"nodeType":"IfStatement","src":"21240:94:56","trueBody":{"expression":{"arguments":[{"id":16702,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21289:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16705,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16606,"src":"21304:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21307:9:56","memberName":"juniorEtk","nodeType":"MemberAccess","referencedDeclaration":23879,"src":"21304:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21304:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21296:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16703,"name":"address","nodeType":"ElementaryTypeName","src":"21296:7:56","typeDescriptions":{}}},"id":16708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21296:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16709,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21321:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21328:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"21321:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16699,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"21262:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21272:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"21262:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:72:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16712,"nodeType":"ExpressionStatement","src":"21262:72:56"}},{"expression":{"arguments":[{"id":16717,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21367:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16718,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15524,"src":"21374:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16719,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21385:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21392:16:56","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"21385:23:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16714,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"21340:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21350:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"21340:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21340:69:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16722,"nodeType":"ExpressionStatement","src":"21340:69:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16723,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21419:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21426:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"21419:24:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21446:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21419:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16727,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21451:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16728,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"21460:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21463:6:56","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":23969,"src":"21460:9:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21460:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21451:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21419:52:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16744,"nodeType":"IfStatement","src":"21415:136:56","trueBody":{"expression":{"arguments":[{"id":16736,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"21506:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16737,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"21513:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21516:6:56","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":23969,"src":"21513:9:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21513:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16740,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21526:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21533:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"21526:24:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16733,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"21479:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21489:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"21479:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21479:72:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16743,"nodeType":"ExpressionStatement","src":"21479:72:56"}},{"documentation":" This code does up to 5 ERC20 transfers. This can be avoided to reduce the gas cost, by implementing delayed\n transfers. This might be considered in the future, but to avoid increasing the complexity and since so far we\n operate on low gas-cost blockchains, we keep it as it is.","eventCall":{"arguments":[{"id":16746,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"21886:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":16747,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21890:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":16745,"name":"NewPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"21876:9:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (contract IRiskModule,struct Policy.PolicyData memory)"}},"id":16748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21876:21:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16749,"nodeType":"EmitStatement","src":"21871:26:56"},{"expression":{"expression":{"id":16750,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16564,"src":"21910:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21917:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"21910:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16577,"id":16752,"nodeType":"Return","src":"21903:16:56"}]},"functionSelector":"6769a76f","id":16754,"implemented":true,"kind":"function","modifiers":[{"id":16574,"kind":"modifierInvocation","modifierName":{"id":16573,"name":"whenNotPaused","nameLocations":["20424:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"20424:13:56"},"nodeType":"ModifierInvocation","src":"20424:13:56"}],"name":"newPolicy","nameLocation":"20287:9:56","nodeType":"FunctionDefinition","overrides":{"id":16572,"nodeType":"OverrideSpecifier","overrides":[],"src":"20415:8:56"},"parameters":{"id":16571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16564,"mutability":"mutable","name":"policy","nameLocation":"20327:6:56","nodeType":"VariableDeclaration","scope":16754,"src":"20302:31:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":16563,"nodeType":"UserDefinedTypeName","pathNode":{"id":16562,"name":"Policy.PolicyData","nameLocations":["20302:6:56","20309:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"20302:17:56"},"referencedDeclaration":14966,"src":"20302:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":16566,"mutability":"mutable","name":"payer","nameLocation":"20347:5:56","nodeType":"VariableDeclaration","scope":16754,"src":"20339:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16565,"name":"address","nodeType":"ElementaryTypeName","src":"20339:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16568,"mutability":"mutable","name":"policyHolder","nameLocation":"20366:12:56","nodeType":"VariableDeclaration","scope":16754,"src":"20358:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16567,"name":"address","nodeType":"ElementaryTypeName","src":"20358:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16570,"mutability":"mutable","name":"internalId","nameLocation":"20391:10:56","nodeType":"VariableDeclaration","scope":16754,"src":"20384:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16569,"name":"uint96","nodeType":"ElementaryTypeName","src":"20384:6:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"20296:109:56"},"returnParameters":{"id":16577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16754,"src":"20447:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16575,"name":"uint256","nodeType":"ElementaryTypeName","src":"20447:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20446:9:56"},"scope":17686,"src":"20278:1646:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23744],"body":{"id":17103,"nodeType":"Block","src":"22128:2741:56","statements":[{"expression":{"arguments":[{"id":16773,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22164:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":16772,"name":"_validatePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17128,"src":"22148:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory) view"}},"id":16774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22148:26:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16775,"nodeType":"ExpressionStatement","src":"22148:26:56"},{"assignments":[16778],"declarations":[{"constant":false,"id":16778,"mutability":"mutable","name":"rm","nameLocation":"22192:2:56","nodeType":"VariableDeclaration","scope":17103,"src":"22180:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":16777,"nodeType":"UserDefinedTypeName","pathNode":{"id":16776,"name":"IRiskModule","nameLocations":["22180:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"22180:11:56"},"referencedDeclaration":23983,"src":"22180:11:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"}],"id":16781,"initialValue":{"expression":{"id":16779,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22197:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"22197:20:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"VariableDeclarationStatement","src":"22180:37:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16784,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"22235:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":16783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22227:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16782,"name":"address","nodeType":"ElementaryTypeName","src":"22227:7:56","typeDescriptions":{}}},"id":16785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22227:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":16786,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"22242:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22242:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22227:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16792,"nodeType":"IfStatement","src":"22223:63:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16789,"name":"OnlyRiskModuleAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15615,"src":"22263:21:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22263:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16791,"nodeType":"RevertStatement","src":"22256:30:56"}},{"expression":{"arguments":[{"arguments":[{"id":16796,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"22319:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":16795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22311:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16794,"name":"address","nodeType":"ElementaryTypeName","src":"22311:7:56","typeDescriptions":{}}},"id":16797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22311:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16798,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"22324:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22338:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":15534,"src":"22324:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16793,"name":"_requireCompActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"22292:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22292:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16801,"nodeType":"ExpressionStatement","src":"22292:57:56"},{"assignments":[16804],"declarations":[{"constant":false,"id":16804,"mutability":"mutable","name":"pa","nameLocation":"22372:2:56","nodeType":"VariableDeclaration","scope":17103,"src":"22355:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":16803,"nodeType":"UserDefinedTypeName","pathNode":{"id":16802,"name":"IPremiumsAccount","nameLocations":["22355:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"22355:16:56"},"referencedDeclaration":23886,"src":"22355:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":16808,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16805,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"22377:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":16806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22380:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":23982,"src":"22377:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPremiumsAccount_$23886_$","typeString":"function () view external returns (contract IPremiumsAccount)"}},"id":16807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22377:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"22355:42:56"},{"expression":{"arguments":[{"arguments":[{"id":16812,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"22430:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22422:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16810,"name":"address","nodeType":"ElementaryTypeName","src":"22422:7:56","typeDescriptions":{}}},"id":16813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22422:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16814,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"22435:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22449:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"22435:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":16809,"name":"_requireCompActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"22403:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":16816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22403:62:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16817,"nodeType":"ExpressionStatement","src":"22403:62:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":16826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16819,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22479:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22489:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"22479:20:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"id":16823,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22509:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"22509:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22502:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16821,"name":"uint40","nodeType":"ElementaryTypeName","src":"22502:6:56","typeDescriptions":{}}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22502:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"22479:46:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","id":16827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22527:23:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28","typeString":"literal_string \"Old policy is expired\""},"value":"Old policy is expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28","typeString":"literal_string \"Old policy is expired\""}],"id":16818,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22471:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22471:80:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16829,"nodeType":"ExpressionStatement","src":"22471:80:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16831,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22565:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22575:5:56","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"22565:15:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16833,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22584:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22595:5:56","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"22584:16:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"22565:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"426f746820706f6c6963696573206d7573742068617665207468652073616d65207374617274696e672064617465","id":16836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22602:48:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e87e56359fa2526540650e2139138b7e293eed59c4b4b2e8327e8e5ebcd0b33","typeString":"literal_string \"Both policies must have the same starting date\""},"value":"Both policies must have the same starting date"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0e87e56359fa2526540650e2139138b7e293eed59c4b4b2e8327e8e5ebcd0b33","typeString":"literal_string \"Both policies must have the same starting date\""}],"id":16830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22557:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22557:94:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16838,"nodeType":"ExpressionStatement","src":"22557:94:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16840,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22672:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22682:6:56","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"22672:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16842,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22692:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22703:6:56","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"22692:17:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22672:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16845,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22721:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22731:11:56","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"22721:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16847,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22746:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22757:11:56","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"22746:22:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22721:47:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:96:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16851,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22780:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22790:16:56","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"22780:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16853,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22810:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22821:16:56","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"22810:27:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22780:57:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:165:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16857,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22849:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22859:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"22849:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16859,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22868:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22879:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"22868:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22849:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:212:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16863,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22896:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22906:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"22896:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16865,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22915:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22926:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"22915:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22896:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:259:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16869,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22943:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22953:5:56","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"22943:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16871,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"22962:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22973:5:56","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"22962:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22943:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:306:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16875,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"22990:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23000:5:56","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"22990:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16877,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23009:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23020:5:56","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"23009:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22990:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:353:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16881,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23037:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23047:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"23037:27:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16883,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23068:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23079:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"23068:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23037:59:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:424:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":16891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16887,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23108:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23118:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"23108:20:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":16889,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23132:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23143:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"23132:21:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"23108:45:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:481:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"id":16896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16893,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"23165:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16894,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23171:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23182:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"23171:21:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"src":"23165:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22672:520:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e657720706f6c696379206d7573742062652067726561746572206f7220657175616c207468616e206f6c6420706f6c696379","id":16898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23200:53:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d3b3746791a6b0b7dfd79946411ee9df69dc2115b94a363d0f83c50da62a2b6","typeString":"literal_string \"New policy must be greater or equal than old policy\""},"value":"New policy must be greater or equal than old policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d3b3746791a6b0b7dfd79946411ee9df69dc2115b94a363d0f83c50da62a2b6","typeString":"literal_string \"New policy must be greater or equal than old policy\""}],"id":16839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22657:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22657:602:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16900,"nodeType":"ExpressionStatement","src":"22657:602:56"},{"expression":{"id":16908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16901,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23281:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23292:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23281:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16905,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"23310:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":16906,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16764,"src":"23314:10:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":16904,"name":"makePolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17155,"src":"23297:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IRiskModule_$23983_$_t_uint96_$returns$_t_uint256_$","typeString":"function (contract IRiskModule,uint96) pure returns (uint256)"}},"id":16907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23297:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23281:44:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16909,"nodeType":"ExpressionStatement","src":"23281:44:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16911,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"23339:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":16914,"indexExpression":{"expression":{"id":16912,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23349:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23360:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23349:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23339:24:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":16917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23375:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23367:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":16915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23367:7:56","typeDescriptions":{}}},"id":16918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23367:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23339:38:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616c726561647920657869737473","id":16920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23379:23:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26","typeString":"literal_string \"Policy already exists\""},"value":"Policy already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26","typeString":"literal_string \"Policy already exists\""}],"id":16910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23331:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23331:72:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16922,"nodeType":"ExpressionStatement","src":"23331:72:56"},{"expression":{"id":16930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16923,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"23409:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":16926,"indexExpression":{"expression":{"id":16924,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23419:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23430:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23419:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23409:24:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16927,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23436:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23447:4:56","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"23436:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23436:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23409:44:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16931,"nodeType":"ExpressionStatement","src":"23409:44:56"},{"assignments":[16933],"declarations":[{"constant":false,"id":16933,"mutability":"mutable","name":"policyHolder","nameLocation":"23467:12:56","nodeType":"VariableDeclaration","scope":17103,"src":"23459:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16932,"name":"address","nodeType":"ElementaryTypeName","src":"23459:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16938,"initialValue":{"arguments":[{"expression":{"id":16935,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23490:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23500:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23490:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16934,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"23482:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":16937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23482:21:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"23459:44:56"},{"expression":{"arguments":[{"id":16940,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16933,"src":"23519:12:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16941,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23533:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23544:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23533:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":16943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23548:2:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":16939,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1725,1754],"referencedDeclaration":1754,"src":"23509:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23509:42:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16945,"nodeType":"ExpressionStatement","src":"23509:42:56"},{"expression":{"id":16950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"23557:30:56","subExpression":{"baseExpression":{"id":16946,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"23564:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":16949,"indexExpression":{"expression":{"id":16947,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23574:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23584:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"23574:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23564:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16951,"nodeType":"ExpressionStatement","src":"23557:30:56"},{"expression":{"arguments":[{"id":16955,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23632:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":16956,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23643:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"expression":{"id":16952,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"23614:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":16954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23617:14:56","memberName":"policyReplaced","nodeType":"MemberAccess","referencedDeclaration":23847,"src":"23614:17:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory,struct Policy.PolicyData memory) external"}},"id":16957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:40:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16958,"nodeType":"ExpressionStatement","src":"23614:40:56"},{"assignments":[16960],"declarations":[{"constant":false,"id":16960,"mutability":"mutable","name":"aux","nameLocation":"23699:3:56","nodeType":"VariableDeclaration","scope":17103,"src":"23691:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16959,"name":"uint256","nodeType":"ElementaryTypeName","src":"23691:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16966,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16961,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23705:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23716:11:56","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"23705:22:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16963,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23730:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23740:11:56","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"23730:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23705:46:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23691:60:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16967,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23761:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23767:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23761:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16981,"nodeType":"IfStatement","src":"23757:64:56","trueBody":{"expression":{"arguments":[{"id":16973,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"23797:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16976,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"23812:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":16975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23804:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16974,"name":"address","nodeType":"ElementaryTypeName","src":"23804:7:56","typeDescriptions":{}}},"id":16977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23804:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16978,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23817:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16970,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"23770:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23780:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"23770:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":16979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23770:51:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16980,"nodeType":"ExpressionStatement","src":"23770:51:56"}},{"expression":{"id":16988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16982,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23827:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16983,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23833:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23844:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"23833:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16985,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23852:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":16986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23862:5:56","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"23852:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23833:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23827:40:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16989,"nodeType":"ExpressionStatement","src":"23827:40:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16990,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23877:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23883:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23877:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17006,"nodeType":"IfStatement","src":"23873:76:56","trueBody":{"expression":{"arguments":[{"id":16996,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"23913:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":16999,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"23928:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":17000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23931:9:56","memberName":"seniorEtk","nodeType":"MemberAccess","referencedDeclaration":23872,"src":"23928:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":17001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23928:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":16998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23920:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16997,"name":"address","nodeType":"ElementaryTypeName","src":"23920:7:56","typeDescriptions":{}}},"id":17002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23920:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17003,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23945:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16993,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"23886:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":16995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23896:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"23886:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23886:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17005,"nodeType":"ExpressionStatement","src":"23886:63:56"}},{"expression":{"id":17013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17007,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"23955:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17008,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"23961:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23972:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"23961:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17010,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"23980:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23990:5:56","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"23980:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23961:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23955:40:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17014,"nodeType":"ExpressionStatement","src":"23955:40:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17015,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24005:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24011:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24005:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17031,"nodeType":"IfStatement","src":"24001:76:56","trueBody":{"expression":{"arguments":[{"id":17021,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"24041:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17024,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"24056:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":17025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24059:9:56","memberName":"juniorEtk","nodeType":"MemberAccess","referencedDeclaration":23879,"src":"24056:12:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":17026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24056:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":17023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24048:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17022,"name":"address","nodeType":"ElementaryTypeName","src":"24048:7:56","typeDescriptions":{}}},"id":17027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24048:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17028,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24073:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17018,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"24014:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24024:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"24014:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24014:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17030,"nodeType":"ExpressionStatement","src":"24014:63:56"}},{"expression":{"id":17038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17032,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24083:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17033,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24089:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24100:16:56","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"24089:27:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17035,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"24119:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24129:16:56","memberName":"ensuroCommission","nodeType":"MemberAccess","referencedDeclaration":14952,"src":"24119:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24089:56:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24083:62:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17039,"nodeType":"ExpressionStatement","src":"24083:62:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17040,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24155:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24161:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24155:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17051,"nodeType":"IfStatement","src":"24151:62:56","trueBody":{"expression":{"arguments":[{"id":17046,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"24191:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17047,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15524,"src":"24198:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17048,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24209:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17043,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"24164:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24174:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"24164:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24164:49:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17050,"nodeType":"ExpressionStatement","src":"24164:49:56"}},{"expression":{"id":17058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17052,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24219:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17053,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24225:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24236:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"24225:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":17055,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"24256:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24266:17:56","memberName":"partnerCommission","nodeType":"MemberAccess","referencedDeclaration":14954,"src":"24256:27:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24225:58:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24219:64:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17059,"nodeType":"ExpressionStatement","src":"24219:64:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17060,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24293:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24299:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24293:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17063,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"24304:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17064,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"24313:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":17065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24316:6:56","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":23969,"src":"24313:9:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24313:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24304:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24293:31:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17079,"nodeType":"IfStatement","src":"24289:88:56","trueBody":{"expression":{"arguments":[{"id":17072,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"24353:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17073,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"24360:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24363:6:56","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":23969,"src":"24360:9:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24360:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17076,"name":"aux","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16960,"src":"24373:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17069,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"24326:9:56","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":17071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24336:16:56","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"24326:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":17077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24326:51:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17078,"nodeType":"ExpressionStatement","src":"24326:51:56"}},{"documentation":" This code does up to 5 ERC20 transfers. This can be avoided to reduce the gas cost, by implementing delayed\n transfers. This might be considered in the future, but to avoid increasing the complexity and since so far we\n operate on low gas-cost blockchains, we keep it as it is.","eventCall":{"arguments":[{"id":17081,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"24712:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":17082,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24716:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":17080,"name":"NewPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"24702:9:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (contract IRiskModule,struct Policy.PolicyData memory)"}},"id":17083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24702:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17084,"nodeType":"EmitStatement","src":"24697:30:56"},{"eventCall":{"arguments":[{"id":17086,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16778,"src":"24753:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"expression":{"id":17087,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"24757:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24767:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24757:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17089,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24771:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24782:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24771:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17085,"name":"PolicyReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23683,"src":"24738:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (contract IRiskModule,uint256,uint256)"}},"id":17091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24738:47:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17092,"nodeType":"EmitStatement","src":"24733:52:56"},{"expression":{"arguments":[{"expression":{"id":17094,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"24810:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24820:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24810:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17096,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24824:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24835:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24824:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17093,"name":"_notifyReplacement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17624,"src":"24791:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":17098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24791:47:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17099,"nodeType":"ExpressionStatement","src":"24791:47:56"},{"expression":{"expression":{"id":17100,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"24851:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24862:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24851:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16771,"id":17102,"nodeType":"Return","src":"24844:20:56"}]},"functionSelector":"3ed7c1ae","id":17104,"implemented":true,"kind":"function","modifiers":[{"id":16768,"kind":"modifierInvocation","modifierName":{"id":16767,"name":"whenNotPaused","nameLocations":["22096:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"22096:13:56"},"nodeType":"ModifierInvocation","src":"22096:13:56"}],"name":"replacePolicy","nameLocation":"21937:13:56","nodeType":"FunctionDefinition","overrides":{"id":16766,"nodeType":"OverrideSpecifier","overrides":[],"src":"22087:8:56"},"parameters":{"id":16765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16757,"mutability":"mutable","name":"oldPolicy","nameLocation":"21981:9:56","nodeType":"VariableDeclaration","scope":17104,"src":"21956:34:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":16756,"nodeType":"UserDefinedTypeName","pathNode":{"id":16755,"name":"Policy.PolicyData","nameLocations":["21956:6:56","21963:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"21956:17:56"},"referencedDeclaration":14966,"src":"21956:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":16760,"mutability":"mutable","name":"newPolicy_","nameLocation":"22021:10:56","nodeType":"VariableDeclaration","scope":17104,"src":"21996:35:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":16759,"nodeType":"UserDefinedTypeName","pathNode":{"id":16758,"name":"Policy.PolicyData","nameLocations":["21996:6:56","22003:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"21996:17:56"},"referencedDeclaration":14966,"src":"21996:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":16762,"mutability":"mutable","name":"payer","nameLocation":"22045:5:56","nodeType":"VariableDeclaration","scope":17104,"src":"22037:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16761,"name":"address","nodeType":"ElementaryTypeName","src":"22037:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16764,"mutability":"mutable","name":"internalId","nameLocation":"22063:10:56","nodeType":"VariableDeclaration","scope":17104,"src":"22056:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16763,"name":"uint96","nodeType":"ElementaryTypeName","src":"22056:6:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"21950:127:56"},"returnParameters":{"id":16771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17104,"src":"22119:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16769,"name":"uint256","nodeType":"ElementaryTypeName","src":"22119:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22118:9:56"},"scope":17686,"src":"21928:2941:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17127,"nodeType":"Block","src":"24945:95:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17111,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"24959:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24966:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"24959:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24972:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24959:14:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17115,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"24977:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24984:4:56","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"24977:11:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":17117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24977:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":17118,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"24994:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":17121,"indexExpression":{"expression":{"id":17119,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"25004:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25011:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"25004:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24994:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24977:37:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24959:55:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c696379206e6f7420666f756e64","id":17124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25016:18:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79","typeString":"literal_string \"Policy not found\""},"value":"Policy not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79","typeString":"literal_string \"Policy not found\""}],"id":17110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24951:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24951:84:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17126,"nodeType":"ExpressionStatement","src":"24951:84:56"}]},"id":17128,"implemented":true,"kind":"function","modifiers":[],"name":"_validatePolicy","nameLocation":"24882:15:56","nodeType":"FunctionDefinition","parameters":{"id":17108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17107,"mutability":"mutable","name":"policy","nameLocation":"24923:6:56","nodeType":"VariableDeclaration","scope":17128,"src":"24898:31:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":17106,"nodeType":"UserDefinedTypeName","pathNode":{"id":17105,"name":"Policy.PolicyData","nameLocations":["24898:6:56","24905:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"24898:17:56"},"referencedDeclaration":14966,"src":"24898:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"24897:33:56"},"returnParameters":{"id":17109,"nodeType":"ParameterList","parameters":[],"src":"24945:0:56"},"scope":17686,"src":"24873:167:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17154,"nodeType":"Block","src":"25131:68:56","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":17144,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17131,"src":"25169:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":17143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25161:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17142,"name":"address","nodeType":"ElementaryTypeName","src":"25161:7:56","typeDescriptions":{}}},"id":17145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25161:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25153:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":17140,"name":"uint160","nodeType":"ElementaryTypeName","src":"25153:7:56","typeDescriptions":{}}},"id":17146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25153:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":17139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25145:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17138,"name":"uint256","nodeType":"ElementaryTypeName","src":"25145:7:56","typeDescriptions":{}}},"id":17147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25145:29:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":17148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:2:56","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"25145:35:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17150,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25144:37:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17151,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17133,"src":"25184:10:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"25144:50:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17137,"id":17153,"nodeType":"Return","src":"25137:57:56"}]},"functionSelector":"c016f88a","id":17155,"implemented":true,"kind":"function","modifiers":[],"name":"makePolicyId","nameLocation":"25053:12:56","nodeType":"FunctionDefinition","parameters":{"id":17134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17131,"mutability":"mutable","name":"rm","nameLocation":"25078:2:56","nodeType":"VariableDeclaration","scope":17155,"src":"25066:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":17130,"nodeType":"UserDefinedTypeName","pathNode":{"id":17129,"name":"IRiskModule","nameLocations":["25066:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"25066:11:56"},"referencedDeclaration":23983,"src":"25066:11:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":17133,"mutability":"mutable","name":"internalId","nameLocation":"25089:10:56","nodeType":"VariableDeclaration","scope":17155,"src":"25082:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":17132,"name":"uint96","nodeType":"ElementaryTypeName","src":"25082:6:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"25065:35:56"},"returnParameters":{"id":17137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17155,"src":"25122:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17135,"name":"uint256","nodeType":"ElementaryTypeName","src":"25122:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25121:9:56"},"scope":17686,"src":"25044:155:56","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[23769],"body":{"id":17179,"nodeType":"Block","src":"25292:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17165,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17158,"src":"25306:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":17166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25313:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"25306:17:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":17167,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25327:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25333:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"25327:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25306:36:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c696379206e6f74206578706972656420796574","id":17170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25344:24:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881","typeString":"literal_string \"Policy not expired yet\""},"value":"Policy not expired yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881","typeString":"literal_string \"Policy not expired yet\""}],"id":17164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25298:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25298:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17172,"nodeType":"ExpressionStatement","src":"25298:71:56"},{"expression":{"arguments":[{"id":17174,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17158,"src":"25397:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"hexValue":"30","id":17175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25405:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"74727565","id":17176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"25408:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17173,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17444,"src":"25382:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256,bool)"}},"id":17177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25382:31:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":17163,"id":17178,"nodeType":"Return","src":"25375:38:56"}]},"functionSelector":"6af6f1ef","id":17180,"implemented":true,"kind":"function","modifiers":[{"id":17162,"kind":"modifierInvocation","modifierName":{"id":17161,"name":"whenNotPaused","nameLocations":["25278:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25278:13:56"},"nodeType":"ModifierInvocation","src":"25278:13:56"}],"name":"expirePolicy","nameLocation":"25212:12:56","nodeType":"FunctionDefinition","overrides":{"id":17160,"nodeType":"OverrideSpecifier","overrides":[],"src":"25269:8:56"},"parameters":{"id":17159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17158,"mutability":"mutable","name":"policy","nameLocation":"25252:6:56","nodeType":"VariableDeclaration","scope":17180,"src":"25225:33:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":17157,"nodeType":"UserDefinedTypeName","pathNode":{"id":17156,"name":"Policy.PolicyData","nameLocations":["25225:6:56","25232:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"25225:17:56"},"referencedDeclaration":14966,"src":"25225:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"25224:35:56"},"returnParameters":{"id":17163,"nodeType":"ParameterList","parameters":[],"src":"25292:0:56"},"scope":17686,"src":"25203:215:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17221,"nodeType":"Block","src":"25508:191:56","statements":[{"body":{"id":17219,"nodeType":"Block","src":"25560:135:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":17201,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17184,"src":"25576:8:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Policy.PolicyData calldata[] calldata"}},"id":17203,"indexExpression":{"id":17202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17190,"src":"25585:1:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25576:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25588:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"25576:22:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":17205,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25602:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25608:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"25602:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25576:41:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c696379206e6f74206578706972656420796574","id":17208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25619:24:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881","typeString":"literal_string \"Policy not expired yet\""},"value":"Policy not expired yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881","typeString":"literal_string \"Policy not expired yet\""}],"id":17200,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25568:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25568:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17210,"nodeType":"ExpressionStatement","src":"25568:76:56"},{"expression":{"arguments":[{"baseExpression":{"id":17212,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17184,"src":"25667:8:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Policy.PolicyData calldata[] calldata"}},"id":17214,"indexExpression":{"id":17213,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17190,"src":"25676:1:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25667:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"hexValue":"30","id":17215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25680:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"74727565","id":17216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"25683:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17211,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17444,"src":"25652:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256,bool)"}},"id":17217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25652:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17218,"nodeType":"ExpressionStatement","src":"25652:36:56"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17190,"src":"25534:1:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17194,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17184,"src":"25538:8:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Policy.PolicyData calldata[] calldata"}},"id":17195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25547:6:56","memberName":"length","nodeType":"MemberAccess","src":"25538:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25534:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17220,"initializationExpression":{"assignments":[17190],"declarations":[{"constant":false,"id":17190,"mutability":"mutable","name":"i","nameLocation":"25527:1:56","nodeType":"VariableDeclaration","scope":17220,"src":"25519:9:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17189,"name":"uint256","nodeType":"ElementaryTypeName","src":"25519:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17192,"initialValue":{"hexValue":"30","id":17191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25531:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25519:13:56"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":17198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25555:3:56","subExpression":{"id":17197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17190,"src":"25555:1:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17199,"nodeType":"ExpressionStatement","src":"25555:3:56"},"nodeType":"ForStatement","src":"25514:181:56"}]},"functionSelector":"8c916d46","id":17222,"implemented":true,"kind":"function","modifiers":[{"id":17187,"kind":"modifierInvocation","modifierName":{"id":17186,"name":"whenNotPaused","nameLocations":["25494:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25494:13:56"},"nodeType":"ModifierInvocation","src":"25494:13:56"}],"name":"expirePolicies","nameLocation":"25431:14:56","nodeType":"FunctionDefinition","parameters":{"id":17185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17184,"mutability":"mutable","name":"policies","nameLocation":"25475:8:56","nodeType":"VariableDeclaration","scope":17222,"src":"25446:37:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Policy.PolicyData[]"},"typeName":{"baseType":{"id":17182,"nodeType":"UserDefinedTypeName","pathNode":{"id":17181,"name":"Policy.PolicyData","nameLocations":["25446:6:56","25453:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"25446:17:56"},"referencedDeclaration":14966,"src":"25446:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"id":17183,"nodeType":"ArrayTypeName","src":"25446:19:56","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyData_$14966_storage_$dyn_storage_ptr","typeString":"struct Policy.PolicyData[]"}},"visibility":"internal"}],"src":"25445:39:56"},"returnParameters":{"id":17188,"nodeType":"ParameterList","parameters":[],"src":"25508:0:56"},"scope":17686,"src":"25422:277:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23753],"body":{"id":17239,"nodeType":"Block","src":"25809:55:56","statements":[{"expression":{"arguments":[{"id":17234,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17225,"src":"25837:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":17235,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"25845:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":17236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"25853:5:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17233,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17444,"src":"25822:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256,bool)"}},"id":17237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25822:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":17232,"id":17238,"nodeType":"Return","src":"25815:44:56"}]},"functionSelector":"7a702b3c","id":17240,"implemented":true,"kind":"function","modifiers":[{"id":17231,"kind":"modifierInvocation","modifierName":{"id":17230,"name":"whenNotPaused","nameLocations":["25795:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25795:13:56"},"nodeType":"ModifierInvocation","src":"25795:13:56"}],"name":"resolvePolicy","nameLocation":"25712:13:56","nodeType":"FunctionDefinition","overrides":{"id":17229,"nodeType":"OverrideSpecifier","overrides":[],"src":"25786:8:56"},"parameters":{"id":17228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17225,"mutability":"mutable","name":"policy","nameLocation":"25753:6:56","nodeType":"VariableDeclaration","scope":17240,"src":"25726:33:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":17224,"nodeType":"UserDefinedTypeName","pathNode":{"id":17223,"name":"Policy.PolicyData","nameLocations":["25726:6:56","25733:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"25726:17:56"},"referencedDeclaration":14966,"src":"25726:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":17227,"mutability":"mutable","name":"payout","nameLocation":"25769:6:56","nodeType":"VariableDeclaration","scope":17240,"src":"25761:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17226,"name":"uint256","nodeType":"ElementaryTypeName","src":"25761:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25725:51:56"},"returnParameters":{"id":17232,"nodeType":"ParameterList","parameters":[],"src":"25809:0:56"},"scope":17686,"src":"25703:161:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23762],"body":{"id":17261,"nodeType":"Block","src":"25998:80:56","statements":[{"expression":{"arguments":[{"id":17252,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17243,"src":"26026:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"condition":{"id":17253,"name":"customerWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17245,"src":"26034:11:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":17256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26064:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":17257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"26034:31:56","trueExpression":{"expression":{"id":17254,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17243,"src":"26048:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":17255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26055:6:56","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"26048:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":17258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26067:5:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17251,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17444,"src":"26011:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256,bool)"}},"id":17259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26011:62:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":17250,"id":17260,"nodeType":"Return","src":"26004:69:56"}]},"functionSelector":"ffa600e3","id":17262,"implemented":true,"kind":"function","modifiers":[{"id":17249,"kind":"modifierInvocation","modifierName":{"id":17248,"name":"whenNotPaused","nameLocations":["25984:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"25984:13:56"},"nodeType":"ModifierInvocation","src":"25984:13:56"}],"name":"resolvePolicyFullPayout","nameLocation":"25877:23:56","nodeType":"FunctionDefinition","overrides":{"id":17247,"nodeType":"OverrideSpecifier","overrides":[],"src":"25975:8:56"},"parameters":{"id":17246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17243,"mutability":"mutable","name":"policy","nameLocation":"25933:6:56","nodeType":"VariableDeclaration","scope":17262,"src":"25906:33:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":17242,"nodeType":"UserDefinedTypeName","pathNode":{"id":17241,"name":"Policy.PolicyData","nameLocations":["25906:6:56","25913:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"25906:17:56"},"referencedDeclaration":14966,"src":"25906:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":17245,"mutability":"mutable","name":"customerWon","nameLocation":"25950:11:56","nodeType":"VariableDeclaration","scope":17262,"src":"25945:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17244,"name":"bool","nodeType":"ElementaryTypeName","src":"25945:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25900:65:56"},"returnParameters":{"id":17250,"nodeType":"ParameterList","parameters":[],"src":"25998:0:56"},"scope":17686,"src":"25868:210:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23777],"body":{"id":17279,"nodeType":"Block","src":"26156:51:56","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17270,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"26169:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":17272,"indexExpression":{"id":17271,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17264,"src":"26179:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26169:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26200:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26192:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":17273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26192:7:56","typeDescriptions":{}}},"id":17276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26192:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26169:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17269,"id":17278,"nodeType":"Return","src":"26162:40:56"}]},"functionSelector":"82afd23b","id":17280,"implemented":true,"kind":"function","modifiers":[],"name":"isActive","nameLocation":"26091:8:56","nodeType":"FunctionDefinition","overrides":{"id":17266,"nodeType":"OverrideSpecifier","overrides":[],"src":"26132:8:56"},"parameters":{"id":17265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17264,"mutability":"mutable","name":"policyId","nameLocation":"26108:8:56","nodeType":"VariableDeclaration","scope":17280,"src":"26100:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17263,"name":"uint256","nodeType":"ElementaryTypeName","src":"26100:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26099:18:56"},"returnParameters":{"id":17269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17280,"src":"26150:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17267,"name":"bool","nodeType":"ElementaryTypeName","src":"26150:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26149:6:56"},"scope":17686,"src":"26082:125:56","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23785],"body":{"id":17292,"nodeType":"Block","src":"26293:37:56","statements":[{"expression":{"baseExpression":{"id":17288,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"26306:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":17290,"indexExpression":{"id":17289,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17282,"src":"26316:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26306:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17287,"id":17291,"nodeType":"Return","src":"26299:26:56"}]},"functionSelector":"792da09e","id":17293,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyHash","nameLocation":"26220:13:56","nodeType":"FunctionDefinition","overrides":{"id":17284,"nodeType":"OverrideSpecifier","overrides":[],"src":"26266:8:56"},"parameters":{"id":17283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17282,"mutability":"mutable","name":"policyId","nameLocation":"26242:8:56","nodeType":"VariableDeclaration","scope":17293,"src":"26234:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17281,"name":"uint256","nodeType":"ElementaryTypeName","src":"26234:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26233:18:56"},"returnParameters":{"id":17287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17293,"src":"26284:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26284:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26283:9:56"},"scope":17686,"src":"26211:119:56","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17443,"nodeType":"Block","src":"26839:1042:56","statements":[{"expression":{"arguments":[{"id":17305,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"26875:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":17304,"name":"_validatePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17128,"src":"26859:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory) view"}},"id":17306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26859:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17307,"nodeType":"ExpressionStatement","src":"26859:23:56"},{"assignments":[17310],"declarations":[{"constant":false,"id":17310,"mutability":"mutable","name":"rm","nameLocation":"26900:2:56","nodeType":"VariableDeclaration","scope":17443,"src":"26888:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":17309,"nodeType":"UserDefinedTypeName","pathNode":{"id":17308,"name":"IRiskModule","nameLocations":["26888:11:56"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"26888:11:56"},"referencedDeclaration":23983,"src":"26888:11:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"}],"id":17313,"initialValue":{"expression":{"id":17311,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"26905:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26912:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"26905:17:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"VariableDeclarationStatement","src":"26888:34:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26932:8:56","subExpression":{"id":17314,"name":"expired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17301,"src":"26933:7:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17318,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"26952:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":17317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26944:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17316,"name":"address","nodeType":"ElementaryTypeName","src":"26944:7:56","typeDescriptions":{}}},"id":17319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26944:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17320,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"26959:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26959:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26944:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26932:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17327,"nodeType":"IfStatement","src":"26928:75:56","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17324,"name":"OnlyRiskModuleAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15615,"src":"26980:21:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26980:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17326,"nodeType":"RevertStatement","src":"26973:30:56"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17329,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27017:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27027:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27017:11:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17332,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27032:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27039:10:56","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"27032:17:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":17334,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27052:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27058:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"27052:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27032:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27017:50:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e277420706179206578706972656420706f6c696379","id":17338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27069:26:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_8936f923c8d57cefbc1d85a8336fe08180318e8f5ff0798ebb9c587ef446aad2","typeString":"literal_string \"Can't pay expired policy\""},"value":"Can't pay expired policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8936f923c8d57cefbc1d85a8336fe08180318e8f5ff0798ebb9c587ef446aad2","typeString":"literal_string \"Can't pay expired policy\""}],"id":17328,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27009:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27009:87:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17340,"nodeType":"ExpressionStatement","src":"27009:87:56"},{"expression":{"arguments":[{"arguments":[{"id":17344,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"27141:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":17343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27133:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17342,"name":"address","nodeType":"ElementaryTypeName","src":"27133:7:56","typeDescriptions":{}}},"id":17345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27133:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17346,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"27146:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":17347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27160:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":15534,"src":"27146:24:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":17341,"name":"_requireCompActiveOrDeprecated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"27102:30:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27102:69:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17349,"nodeType":"ExpressionStatement","src":"27102:69:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17351,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27186:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":17352,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27196:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27203:6:56","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"27196:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27186:23:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061796f7574203e20706f6c6963792e7061796f7574","id":17355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27211:24:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b59f45c7a76e3f8ea29ffa631ac18db16134d43739485ba56421b066418784a","typeString":"literal_string \"payout > policy.payout\""},"value":"payout > policy.payout"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b59f45c7a76e3f8ea29ffa631ac18db16134d43739485ba56421b066418784a","typeString":"literal_string \"payout > policy.payout\""}],"id":17350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27178:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27178:58:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17357,"nodeType":"ExpressionStatement","src":"27178:58:56"},{"assignments":[17359],"declarations":[{"constant":false,"id":17359,"mutability":"mutable","name":"customerWon","nameLocation":"27248:11:56","nodeType":"VariableDeclaration","scope":17443,"src":"27243:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17358,"name":"bool","nodeType":"ElementaryTypeName","src":"27243:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17363,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17360,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27262:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27271:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27262:10:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27243:29:56"},{"assignments":[17366],"declarations":[{"constant":false,"id":17366,"mutability":"mutable","name":"pa","nameLocation":"27296:2:56","nodeType":"VariableDeclaration","scope":17443,"src":"27279:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":17365,"nodeType":"UserDefinedTypeName","pathNode":{"id":17364,"name":"IPremiumsAccount","nameLocations":["27279:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"27279:16:56"},"referencedDeclaration":23886,"src":"27279:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":17370,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17367,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"27301:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":17368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27304:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":23982,"src":"27301:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPremiumsAccount_$23886_$","typeString":"function () view external returns (contract IPremiumsAccount)"}},"id":17369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27301:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"27279:42:56"},{"expression":{"arguments":[{"arguments":[{"id":17374,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17366,"src":"27366:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":17373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27358:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17372,"name":"address","nodeType":"ElementaryTypeName","src":"27358:7:56","typeDescriptions":{}}},"id":17375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27358:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17376,"name":"ComponentKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15536,"src":"27371:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentKind_$15536_$","typeString":"type(enum PolicyPool.ComponentKind)"}},"id":17377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27385:15:56","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":15535,"src":"27371:29:56","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ComponentKind_$15536","typeString":"enum PolicyPool.ComponentKind"}],"id":17371,"name":"_requireCompActiveOrDeprecated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16472,"src":"27327:30:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_ComponentKind_$15536_$returns$__$","typeString":"function (address,enum PolicyPool.ComponentKind) view"}},"id":17378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27327:74:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17379,"nodeType":"ExpressionStatement","src":"27327:74:56"},{"expression":{"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"27422:27:56","subExpression":{"baseExpression":{"id":17380,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"27429:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":17383,"indexExpression":{"expression":{"id":17381,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27439:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27446:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"27439:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27429:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17385,"nodeType":"ExpressionStatement","src":"27422:27:56"},{"condition":{"id":17386,"name":"customerWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17359,"src":"27479:11:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17409,"nodeType":"Block","src":"27617:39:56","statements":[{"expression":{"arguments":[{"id":17406,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27642:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"expression":{"id":17403,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17366,"src":"27625:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":17405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27628:13:56","memberName":"policyExpired","nodeType":"MemberAccess","referencedDeclaration":23865,"src":"27625:16:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory) external"}},"id":17407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27625:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17408,"nodeType":"ExpressionStatement","src":"27625:24:56"}]},"id":17410,"nodeType":"IfStatement","src":"27475:181:56","trueBody":{"id":17402,"nodeType":"Block","src":"27492:119:56","statements":[{"assignments":[17388],"declarations":[{"constant":false,"id":17388,"mutability":"mutable","name":"policyOwner","nameLocation":"27508:11:56","nodeType":"VariableDeclaration","scope":17402,"src":"27500:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17387,"name":"address","nodeType":"ElementaryTypeName","src":"27500:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17393,"initialValue":{"arguments":[{"expression":{"id":17390,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27530:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27537:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"27530:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17389,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"27522:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27522:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27500:40:56"},{"expression":{"arguments":[{"id":17397,"name":"policyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17388,"src":"27576:11:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17398,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27589:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":17399,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27597:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17394,"name":"pa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17366,"src":"27548:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27551:24:56","memberName":"policyResolvedWithPayout","nodeType":"MemberAccess","referencedDeclaration":23858,"src":"27548:27:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,struct Policy.PolicyData memory,uint256) external"}},"id":17400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27548:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17401,"nodeType":"ExpressionStatement","src":"27548:56:56"}]}},{"expression":{"arguments":[{"expression":{"id":17414,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27681:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27688:6:56","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"27681:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17411,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"27662:2:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27665:15:56","memberName":"releaseExposure","nodeType":"MemberAccess","referencedDeclaration":23975,"src":"27662:18:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":17416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27662:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17417,"nodeType":"ExpressionStatement","src":"27662:33:56"},{"eventCall":{"arguments":[{"expression":{"id":17419,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27722:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27729:10:56","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"27722:17:56","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"expression":{"id":17421,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27741:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27748:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"27741:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17423,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27752:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17418,"name":"PolicyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23693,"src":"27707:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (contract IRiskModule,uint256,uint256)"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27707:52:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17425,"nodeType":"EmitStatement","src":"27702:57:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17426,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27769:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27778:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27769:10:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17441,"nodeType":"Block","src":"27834:43:56","statements":[{"expression":{"arguments":[{"expression":{"id":17437,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27860:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27867:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"27860:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17436,"name":"_notifyExpiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17565,"src":"27842:17:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27842:28:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17440,"nodeType":"ExpressionStatement","src":"27842:28:56"}]},"id":17442,"nodeType":"IfStatement","src":"27765:112:56","trueBody":{"id":17435,"nodeType":"Block","src":"27781:47:56","statements":[{"expression":{"arguments":[{"expression":{"id":17430,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"27803:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":17431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27810:2:56","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"27803:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17432,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17299,"src":"27814:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17429,"name":"_notifyPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17503,"src":"27789:13:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27789:32:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17434,"nodeType":"ExpressionStatement","src":"27789:32:56"}]}}]},"documentation":{"id":17294,"nodeType":"StructuredDocumentation","src":"26334:406:56","text":" @dev Internal function that handles the different alternative resolutions for a policy, with or without payout and\n expiration.\n Events:\n - Emits {PolicyResolved} with the payout\n @param policy A policy created with {Policy-initialize}\n @param payout The amount to paid to the policyholder\n @param expired True for expiration resolution (`payout` must be 0)"},"id":17444,"implemented":true,"kind":"function","modifiers":[],"name":"_resolvePolicy","nameLocation":"26752:14:56","nodeType":"FunctionDefinition","parameters":{"id":17302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17297,"mutability":"mutable","name":"policy","nameLocation":"26792:6:56","nodeType":"VariableDeclaration","scope":17444,"src":"26767:31:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":17296,"nodeType":"UserDefinedTypeName","pathNode":{"id":17295,"name":"Policy.PolicyData","nameLocations":["26767:6:56","26774:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"26767:17:56"},"referencedDeclaration":14966,"src":"26767:17:56","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":17299,"mutability":"mutable","name":"payout","nameLocation":"26808:6:56","nodeType":"VariableDeclaration","scope":17444,"src":"26800:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17298,"name":"uint256","nodeType":"ElementaryTypeName","src":"26800:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17301,"mutability":"mutable","name":"expired","nameLocation":"26821:7:56","nodeType":"VariableDeclaration","scope":17444,"src":"26816:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17300,"name":"bool","nodeType":"ElementaryTypeName","src":"26816:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26766:63:56"},"returnParameters":{"id":17303,"nodeType":"ParameterList","parameters":[],"src":"26839:0:56"},"scope":17686,"src":"26743:1138:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17502,"nodeType":"Block","src":"28220:411:56","statements":[{"assignments":[17453],"declarations":[{"constant":false,"id":17453,"mutability":"mutable","name":"customer","nameLocation":"28234:8:56","nodeType":"VariableDeclaration","scope":17502,"src":"28226:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17452,"name":"address","nodeType":"ElementaryTypeName","src":"28226:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17457,"initialValue":{"arguments":[{"id":17455,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17447,"src":"28253:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17454,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"28245:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":17456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28245:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28226:36:56"},{"condition":{"id":17462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28272:40:56","subExpression":{"arguments":[{"id":17460,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17453,"src":"28303:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17458,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"28273:18:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28292:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"28273:29:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28273:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17464,"nodeType":"IfStatement","src":"28268:53:56","trueBody":{"functionReturnParameters":17451,"id":17463,"nodeType":"Return","src":"28314:7:56"}},{"condition":{"id":17473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28330:75:56","subExpression":{"arguments":[{"id":17467,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17453,"src":"28363:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":17469,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"28378:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}],"id":17468,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28373:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28373:19:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolder_$23630","typeString":"type(contract IPolicyHolder)"}},"id":17471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28393:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"28373:31:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17465,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7871,"src":"28331:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$7871_$","typeString":"type(library ERC165Checker)"}},"id":17466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28345:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"28331:31:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":17472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28331:74:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17475,"nodeType":"IfStatement","src":"28326:88:56","trueBody":{"functionReturnParameters":17451,"id":17474,"nodeType":"Return","src":"28407:7:56"}},{"assignments":[17477],"declarations":[{"constant":false,"id":17477,"mutability":"mutable","name":"retval","nameLocation":"28427:6:56","nodeType":"VariableDeclaration","scope":17502,"src":"28420:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17476,"name":"bytes4","nodeType":"ElementaryTypeName","src":"28420:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":17491,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17482,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"28477:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28477:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17486,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28499:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}],"id":17485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28491:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17484,"name":"address","nodeType":"ElementaryTypeName","src":"28491:7:56","typeDescriptions":{}}},"id":17487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28491:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17488,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17447,"src":"28506:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17489,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17449,"src":"28516:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":17479,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17453,"src":"28450:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17478,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"28436:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":17480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28436:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"}},"id":17481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28460:16:56","memberName":"onPayoutReceived","nodeType":"MemberAccess","referencedDeclaration":23629,"src":"28436:40:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256) external returns (bytes4)"}},"id":17490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28436:87:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"28420:103:56"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17492,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17477,"src":"28533:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":17493,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"28543:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":17494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28557:16:56","memberName":"onPayoutReceived","nodeType":"MemberAccess","referencedDeclaration":23629,"src":"28543:30:56","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function IPolicyHolder.onPayoutReceived(address,address,uint256,uint256) returns (bytes4)"}},"id":17495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28574:8:56","memberName":"selector","nodeType":"MemberAccess","src":"28543:39:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"28533:49:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17501,"nodeType":"IfStatement","src":"28529:97:56","trueBody":{"errorCall":{"arguments":[{"id":17498,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17477,"src":"28619:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":17497,"name":"InvalidNotificationResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15620,"src":"28591:27:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$_t_error_$","typeString":"function (bytes4) pure returns (error)"}},"id":17499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28591:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17500,"nodeType":"RevertStatement","src":"28584:42:56"}}]},"documentation":{"id":17445,"nodeType":"StructuredDocumentation","src":"27885:266:56","text":" @dev Notifies the payout with a callback if the policyholder is a contract and implementes the IPolicyHolder interface.\n Only reverts if the policyholder contract explicitly reverts or it doesn't return the IPolicyHolder.onPayoutReceived selector."},"id":17503,"implemented":true,"kind":"function","modifiers":[],"name":"_notifyPayout","nameLocation":"28163:13:56","nodeType":"FunctionDefinition","parameters":{"id":17450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17447,"mutability":"mutable","name":"policyId","nameLocation":"28185:8:56","nodeType":"VariableDeclaration","scope":17503,"src":"28177:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17446,"name":"uint256","nodeType":"ElementaryTypeName","src":"28177:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17449,"mutability":"mutable","name":"payout","nameLocation":"28203:6:56","nodeType":"VariableDeclaration","scope":17503,"src":"28195:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17448,"name":"uint256","nodeType":"ElementaryTypeName","src":"28195:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28176:34:56"},"returnParameters":{"id":17451,"nodeType":"ParameterList","parameters":[],"src":"28220:0:56"},"scope":17686,"src":"28154:477:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17564,"nodeType":"Block","src":"28801:464:56","statements":[{"assignments":[17510],"declarations":[{"constant":false,"id":17510,"mutability":"mutable","name":"customer","nameLocation":"28815:8:56","nodeType":"VariableDeclaration","scope":17564,"src":"28807:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17509,"name":"address","nodeType":"ElementaryTypeName","src":"28807:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17514,"initialValue":{"arguments":[{"id":17512,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17506,"src":"28834:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17511,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"28826:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":17513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28826:17:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28807:36:56"},{"condition":{"id":17519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28853:40:56","subExpression":{"arguments":[{"id":17517,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"28884:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17515,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"28854:18:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28873:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"28854:29:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28854:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17521,"nodeType":"IfStatement","src":"28849:53:56","trueBody":{"functionReturnParameters":17508,"id":17520,"nodeType":"Return","src":"28895:7:56"}},{"condition":{"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28911:75:56","subExpression":{"arguments":[{"id":17524,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"28944:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":17526,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"28959:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}],"id":17525,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"28954:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28954:19:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolder_$23630","typeString":"type(contract IPolicyHolder)"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28974:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"28954:31:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17522,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7871,"src":"28912:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$7871_$","typeString":"type(library ERC165Checker)"}},"id":17523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28926:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"28912:31:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":17529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28912:74:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17532,"nodeType":"IfStatement","src":"28907:88:56","trueBody":{"functionReturnParameters":17508,"id":17531,"nodeType":"Return","src":"28988:7:56"}},{"clauses":[{"block":{"id":17551,"nodeType":"Block","src":"29136:21:56","statements":[{"functionReturnParameters":17508,"id":17550,"nodeType":"Return","src":"29144:7:56"}]},"errorName":"","id":17552,"nodeType":"TryCatchClause","parameters":{"id":17549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17552,"src":"29123:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17547,"name":"bytes4","nodeType":"ElementaryTypeName","src":"29123:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"29115:20:56"},"src":"29107:50:56"},{"block":{"id":17561,"nodeType":"Block","src":"29164:97:56","statements":[{"eventCall":{"arguments":[{"id":17554,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17506,"src":"29206:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":17556,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"29230:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17555,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"29216:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":17557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29216:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"}],"id":17553,"name":"ExpirationNotificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15648,"src":"29177:28:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_contract$_IPolicyHolder_$23630_$returns$__$","typeString":"function (uint256,contract IPolicyHolder)"}},"id":17558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29177:63:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17559,"nodeType":"EmitStatement","src":"29172:68:56"},{"functionReturnParameters":17508,"id":17560,"nodeType":"Return","src":"29248:7:56"}]},"errorName":"","id":17562,"nodeType":"TryCatchClause","src":"29158:103:56"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17539,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"29068:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29068:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17543,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"29090:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}],"id":17542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29082:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17541,"name":"address","nodeType":"ElementaryTypeName","src":"29082:7:56","typeDescriptions":{}}},"id":17544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29082:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17545,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17506,"src":"29097:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":17534,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"29019:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17533,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"29005:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":17535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29005:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolder_$23630","typeString":"contract IPolicyHolder"}},"id":17536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29029:15:56","memberName":"onPolicyExpired","nodeType":"MemberAccess","referencedDeclaration":23615,"src":"29005:39:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes4_$","typeString":"function (address,address,uint256) external returns (bytes4)"}},"id":17538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":17537,"name":"HOLDER_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15513,"src":"29050:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29005:62:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes4_$gas","typeString":"function (address,address,uint256) external returns (bytes4)"}},"id":17546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29005:101:56","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":17563,"nodeType":"TryStatement","src":"29001:260:56"}]},"documentation":{"id":17504,"nodeType":"StructuredDocumentation","src":"28635:109:56","text":" @dev Notifies the expiration with a callback if the policyholder is a contract. Never reverts."},"id":17565,"implemented":true,"kind":"function","modifiers":[],"name":"_notifyExpiration","nameLocation":"28756:17:56","nodeType":"FunctionDefinition","parameters":{"id":17507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17506,"mutability":"mutable","name":"policyId","nameLocation":"28782:8:56","nodeType":"VariableDeclaration","scope":17565,"src":"28774:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17505,"name":"uint256","nodeType":"ElementaryTypeName","src":"28774:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28773:18:56"},"returnParameters":{"id":17508,"nodeType":"ParameterList","parameters":[],"src":"28801:0:56"},"scope":17686,"src":"28747:518:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17623,"nodeType":"Block","src":"29461:493:56","statements":[{"assignments":[17574],"declarations":[{"constant":false,"id":17574,"mutability":"mutable","name":"customer","nameLocation":"29475:8:56","nodeType":"VariableDeclaration","scope":17623,"src":"29467:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17573,"name":"address","nodeType":"ElementaryTypeName","src":"29467:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17578,"initialValue":{"arguments":[{"id":17576,"name":"oldPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"29494:11:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17575,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"29486:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":17577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29486:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"29467:39:56"},{"condition":{"id":17583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29516:40:56","subExpression":{"arguments":[{"id":17581,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17574,"src":"29547:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17579,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"29517:18:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2653_$","typeString":"type(library AddressUpgradeable)"}},"id":17580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29536:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2341,"src":"29517:29:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29517:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17585,"nodeType":"IfStatement","src":"29512:53:56","trueBody":{"functionReturnParameters":17572,"id":17584,"nodeType":"Return","src":"29558:7:56"}},{"condition":{"id":17594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29574:77:56","subExpression":{"arguments":[{"id":17588,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17574,"src":"29607:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":17590,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"29622:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}],"id":17589,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"29617:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29617:21:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolderV2_$23652","typeString":"type(contract IPolicyHolderV2)"}},"id":17592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29639:11:56","memberName":"interfaceId","nodeType":"MemberAccess","src":"29617:33:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17586,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7871,"src":"29575:13:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$7871_$","typeString":"type(library ERC165Checker)"}},"id":17587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29589:17:56","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7727,"src":"29575:31:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":17593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29575:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17596,"nodeType":"IfStatement","src":"29570:90:56","trueBody":{"functionReturnParameters":17572,"id":17595,"nodeType":"Return","src":"29653:7:56"}},{"assignments":[17598],"declarations":[{"constant":false,"id":17598,"mutability":"mutable","name":"retval","nameLocation":"29673:6:56","nodeType":"VariableDeclaration","scope":17623,"src":"29666:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17597,"name":"bytes4","nodeType":"ElementaryTypeName","src":"29666:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":17612,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":17603,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"29725:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29725:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17607,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"29747:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPool_$17686","typeString":"contract PolicyPool"}],"id":17606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29739:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17605,"name":"address","nodeType":"ElementaryTypeName","src":"29739:7:56","typeDescriptions":{}}},"id":17608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29739:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17609,"name":"oldPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17568,"src":"29754:11:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17610,"name":"newPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17570,"src":"29767:11:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":17600,"name":"customer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17574,"src":"29698:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17599,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"29682:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}},"id":17601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29682:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyHolderV2_$23652","typeString":"contract IPolicyHolderV2"}},"id":17602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29708:16:56","memberName":"onPolicyReplaced","nodeType":"MemberAccess","referencedDeclaration":23651,"src":"29682:42:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256) external returns (bytes4)"}},"id":17611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29682:97:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"29666:113:56"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17613,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17598,"src":"29854:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":17614,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"29864:15:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}},"id":17615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29880:16:56","memberName":"onPolicyReplaced","nodeType":"MemberAccess","referencedDeclaration":23651,"src":"29864:32:56","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function IPolicyHolderV2.onPolicyReplaced(address,address,uint256,uint256) returns (bytes4)"}},"id":17616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29897:8:56","memberName":"selector","nodeType":"MemberAccess","src":"29864:41:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"29854:51:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17622,"nodeType":"IfStatement","src":"29850:99:56","trueBody":{"errorCall":{"arguments":[{"id":17619,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17598,"src":"29942:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":17618,"name":"InvalidNotificationResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15620,"src":"29914:27:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$_t_error_$","typeString":"function (bytes4) pure returns (error)"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29914:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17621,"nodeType":"RevertStatement","src":"29907:42:56"}}]},"documentation":{"id":17566,"nodeType":"StructuredDocumentation","src":"29269:110:56","text":" @dev Notifies the replacement with a callback if the policyholder is a contract. Never reverts."},"id":17624,"implemented":true,"kind":"function","modifiers":[],"name":"_notifyReplacement","nameLocation":"29391:18:56","nodeType":"FunctionDefinition","parameters":{"id":17571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17568,"mutability":"mutable","name":"oldPolicyId","nameLocation":"29418:11:56","nodeType":"VariableDeclaration","scope":17624,"src":"29410:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17567,"name":"uint256","nodeType":"ElementaryTypeName","src":"29410:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17570,"mutability":"mutable","name":"newPolicyId","nameLocation":"29439:11:56","nodeType":"VariableDeclaration","scope":17624,"src":"29431:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17569,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29409:42:56"},"returnParameters":{"id":17572,"nodeType":"ParameterList","parameters":[],"src":"29461:0:56"},"scope":17686,"src":"29382:572:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1444],"body":{"id":17633,"nodeType":"Block","src":"30259:29:56","statements":[{"expression":{"id":17631,"name":"_nftBaseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15559,"src":"30272:11:56","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":17630,"id":17632,"nodeType":"Return","src":"30265:18:56"}]},"documentation":{"id":17625,"nodeType":"StructuredDocumentation","src":"29958:223:56","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be modified calling {setBaseURI}."},"id":17634,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"30193:8:56","nodeType":"FunctionDefinition","overrides":{"id":17627,"nodeType":"OverrideSpecifier","overrides":[],"src":"30226:8:56"},"parameters":{"id":17626,"nodeType":"ParameterList","parameters":[],"src":"30201:2:56"},"returnParameters":{"id":17630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17634,"src":"30244:13:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17628,"name":"string","nodeType":"ElementaryTypeName","src":"30244:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30243:15:56"},"scope":17686,"src":"30184:104:56","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":17655,"nodeType":"Block","src":"30624:122:56","statements":[{"expression":{"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17643,"name":"_nftBaseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15559,"src":"30630:11:56","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17644,"name":"nftBaseURI_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17637,"src":"30644:11:56","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"30630:25:56","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17646,"nodeType":"ExpressionStatement","src":"30630:25:56"},{"eventCall":{"arguments":[{"expression":{"expression":{"id":17648,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"30683:14:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":17649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30698:17:56","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"30683:32:56","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":17650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30716:10:56","memberName":"setBaseURI","nodeType":"MemberAccess","referencedDeclaration":23259,"src":"30683:43:56","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17651,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"30728:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30728:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17647,"name":"ComponentChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15628,"src":"30666:16:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_address_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,address)"}},"id":17653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30666:75:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17654,"nodeType":"EmitStatement","src":"30661:80:56"}]},"documentation":{"id":17635,"nodeType":"StructuredDocumentation","src":"30292:251:56","text":" @dev Changes the baseURI of the minted policy NFTs\n Requirements:\n - Must be called by a user with the {LEVEL2_ROLE}.\n Events:\n - Emits {ComponentChanged} with action = setBaseURI and the address of the caller."},"functionSelector":"55f804b3","id":17656,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17640,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"30611:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17641,"kind":"modifierInvocation","modifierName":{"id":17639,"name":"onlyRole","nameLocations":["30602:8:56"],"nodeType":"IdentifierPath","referencedDeclaration":15663,"src":"30602:8:56"},"nodeType":"ModifierInvocation","src":"30602:21:56"}],"name":"setBaseURI","nameLocation":"30555:10:56","nodeType":"FunctionDefinition","parameters":{"id":17638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17637,"mutability":"mutable","name":"nftBaseURI_","nameLocation":"30580:11:56","nodeType":"VariableDeclaration","scope":17656,"src":"30566:25:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17636,"name":"string","nodeType":"ElementaryTypeName","src":"30566:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30565:27:56"},"returnParameters":{"id":17642,"nodeType":"ParameterList","parameters":[],"src":"30624:0:56"},"scope":17686,"src":"30546:200:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2128],"body":{"id":17679,"nodeType":"Block","src":"30894:67:56","statements":[{"expression":{"arguments":[{"id":17673,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17658,"src":"30927:4:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17674,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17660,"src":"30933:2:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17675,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17662,"src":"30937:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17676,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17664,"src":"30946:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17670,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"30900:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PolicyPool_$17686_$","typeString":"type(contract super PolicyPool)"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30906:20:56","memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"30900:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":17677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30900:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17678,"nodeType":"ExpressionStatement","src":"30900:56:56"}]},"id":17680,"implemented":true,"kind":"function","modifiers":[{"id":17668,"kind":"modifierInvocation","modifierName":{"id":17667,"name":"whenNotPaused","nameLocations":["30880:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"30880:13:56"},"nodeType":"ModifierInvocation","src":"30880:13:56"}],"name":"_beforeTokenTransfer","nameLocation":"30759:20:56","nodeType":"FunctionDefinition","overrides":{"id":17666,"nodeType":"OverrideSpecifier","overrides":[],"src":"30871:8:56"},"parameters":{"id":17665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17658,"mutability":"mutable","name":"from","nameLocation":"30793:4:56","nodeType":"VariableDeclaration","scope":17680,"src":"30785:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17657,"name":"address","nodeType":"ElementaryTypeName","src":"30785:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17660,"mutability":"mutable","name":"to","nameLocation":"30811:2:56","nodeType":"VariableDeclaration","scope":17680,"src":"30803:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17659,"name":"address","nodeType":"ElementaryTypeName","src":"30803:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17662,"mutability":"mutable","name":"tokenId","nameLocation":"30827:7:56","nodeType":"VariableDeclaration","scope":17680,"src":"30819:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17661,"name":"uint256","nodeType":"ElementaryTypeName","src":"30819:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17664,"mutability":"mutable","name":"batchSize","nameLocation":"30848:9:56","nodeType":"VariableDeclaration","scope":17680,"src":"30840:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17663,"name":"uint256","nodeType":"ElementaryTypeName","src":"30840:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30779:82:56"},"returnParameters":{"id":17669,"nodeType":"ParameterList","parameters":[],"src":"30894:0:56"},"scope":17686,"src":"30750:211:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":17681,"nodeType":"StructuredDocumentation","src":"30965:246:56","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":17685,"mutability":"mutable","name":"__gap","nameLocation":"31234:5:56","nodeType":"VariableDeclaration","scope":17686,"src":"31214:25:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage","typeString":"uint256[46]"},"typeName":{"baseType":{"id":17682,"name":"uint256","nodeType":"ElementaryTypeName","src":"31214:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17684,"length":{"hexValue":"3436","id":17683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31222:2:56","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"nodeType":"ArrayTypeName","src":"31214:11:56","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage_ptr","typeString":"uint256[46]"}},"visibility":"private"}],"scope":17687,"src":"2099:29143:56","usedErrors":[15562,15565,15568,15571,15574,15577,15580,15583,15592,15595,15603,15606,15609,15612,15615,15620],"usedEvents":[417,424,429,790,1096,1101,2195,2204,2213,15628,15640,15648,23673,23683,23693]}],"src":"39:31204:56"},"id":56},"contracts/PolicyPoolComponent.sol":{"ast":{"absolutePath":"contracts/PolicyPoolComponent.sol","exportedSymbols":{"IAccessManager":[23370],"IERC165":[7883],"IERC20Metadata":[6066],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823],"PausableUpgradeable":[1209],"PolicyPoolComponent":[18100],"UUPSUpgradeable":[1081],"WadRayMath":[23243]},"id":18101,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":17688,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:57"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","id":17690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":1082,"src":"64:100:57","symbolAliases":[{"foreign":{"id":17689,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"72:15:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":17692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":6067,"src":"165:97:57","symbolAliases":[{"foreign":{"id":17691,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"173:14:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":17694,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":7884,"src":"263:80:57","symbolAliases":[{"foreign":{"id":17693,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"271:7:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":17696,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":23807,"src":"344:57:57","symbolAliases":[{"foreign":{"id":17695,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"352:11:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"./interfaces/IPolicyPoolComponent.sol","id":17698,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":23824,"src":"402:75:57","symbolAliases":[{"foreign":{"id":17697,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"410:20:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":17700,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":23371,"src":"478:63:57","symbolAliases":[{"foreign":{"id":17699,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"486:14:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","id":17702,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":1210,"src":"542:105:57","symbolAliases":[{"foreign":{"id":17701,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"550:19:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":17704,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18101,"sourceUnit":23244,"src":"648:57:57","symbolAliases":[{"foreign":{"id":17703,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"656:10:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17706,"name":"UUPSUpgradeable","nameLocations":["1526:15:57"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"1526:15:57"},"id":17707,"nodeType":"InheritanceSpecifier","src":"1526:15:57"},{"baseName":{"id":17708,"name":"PausableUpgradeable","nameLocations":["1543:19:57"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"1543:19:57"},"id":17709,"nodeType":"InheritanceSpecifier","src":"1543:19:57"},{"baseName":{"id":17710,"name":"IPolicyPoolComponent","nameLocations":["1564:20:57"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"1564:20:57"},"id":17711,"nodeType":"InheritanceSpecifier","src":"1564:20:57"}],"canonicalName":"PolicyPoolComponent","contractDependencies":[],"contractKind":"contract","documentation":{"id":17705,"nodeType":"StructuredDocumentation","src":"707:777:57","text":" @title Base class for PolicyPool components\n @dev This is the base class of all the components of the protocol that are linked to the PolicyPool and created\n      after it.\n      Holds the reference to _policyPool as immutable, also provides access to common admin roles:\n      - LEVEL1_ROLE: High impact changes like upgrades, adding or removing components or other critical operations\n      - LEVEL2_ROLE: Mid-impact changes like changing some parameters\n      - GUARDIAN_ROLE: For emergency operations oriented to protect the protocol in case of attacks or hacking.\n      This contract also keeps track of the tweaks to avoid two tweaks of the same type are done in a short period.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":18100,"linearizedBaseContracts":[18100,23823,7883,1209,2704,1081,765,430,440,944],"name":"PolicyPoolComponent","nameLocation":"1503:19:57","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17714,"libraryName":{"id":17712,"name":"WadRayMath","nameLocations":["1595:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"1595:10:57"},"nodeType":"UsingForDirective","src":"1589:29:57","typeName":{"id":17713,"name":"uint256","nodeType":"ElementaryTypeName","src":"1610:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":17719,"mutability":"constant","name":"GUARDIAN_ROLE","nameLocation":"1648:13:57","nodeType":"VariableDeclaration","scope":18100,"src":"1622:68:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1622:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"475541524449414e5f524f4c45","id":17717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1674:15:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""},"value":"GUARDIAN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041","typeString":"literal_string \"GUARDIAN_ROLE\""}],"id":17716,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1664:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:26:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17724,"mutability":"constant","name":"LEVEL1_ROLE","nameLocation":"1720:11:57","nodeType":"VariableDeclaration","scope":18100,"src":"1694:64:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1694:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c315f524f4c45","id":17722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1744:13:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""},"value":"LEVEL1_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2","typeString":"literal_string \"LEVEL1_ROLE\""}],"id":17721,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1734:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":17729,"mutability":"constant","name":"LEVEL2_ROLE","nameLocation":"1788:11:57","nodeType":"VariableDeclaration","scope":18100,"src":"1762:64:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1762:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c4556454c325f524f4c45","id":17727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1812:13:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""},"value":"LEVEL2_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c0","typeString":"literal_string \"LEVEL2_ROLE\""}],"id":17726,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1802:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"documentation":{"id":17730,"nodeType":"StructuredDocumentation","src":"1831:61:57","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":17733,"mutability":"immutable","name":"_policyPool","nameLocation":"1926:11:57","nodeType":"VariableDeclaration","scope":18100,"src":"1895:42:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":17732,"nodeType":"UserDefinedTypeName","pathNode":{"id":17731,"name":"IPolicyPool","nameLocations":["1895:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"1895:11:57"},"referencedDeclaration":23806,"src":"1895:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"anonymous":false,"eventSelector":"7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb13","id":17740,"name":"GovernanceAction","nameLocation":"1948:16:57","nodeType":"EventDefinition","parameters":{"id":17739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17736,"indexed":true,"mutability":"mutable","name":"action","nameLocation":"2006:6:57","nodeType":"VariableDeclaration","scope":17740,"src":"1965:47:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":17735,"nodeType":"UserDefinedTypeName","pathNode":{"id":17734,"name":"IAccessManager.GovernanceActions","nameLocations":["1965:14:57","1980:17:57"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"1965:32:57"},"referencedDeclaration":23301,"src":"1965:32:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":17738,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2022:5:57","nodeType":"VariableDeclaration","scope":17740,"src":"2014:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17737,"name":"uint256","nodeType":"ElementaryTypeName","src":"2014:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1964:64:57"},"src":"1942:87:57"},{"anonymous":false,"eventSelector":"b6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f","id":17747,"name":"ComponentChanged","nameLocation":"2038:16:57","nodeType":"EventDefinition","parameters":{"id":17746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17743,"indexed":true,"mutability":"mutable","name":"action","nameLocation":"2096:6:57","nodeType":"VariableDeclaration","scope":17747,"src":"2055:47:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":17742,"nodeType":"UserDefinedTypeName","pathNode":{"id":17741,"name":"IAccessManager.GovernanceActions","nameLocations":["2055:14:57","2070:17:57"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"2055:32:57"},"referencedDeclaration":23301,"src":"2055:32:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":17745,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2112:5:57","nodeType":"VariableDeclaration","scope":17747,"src":"2104:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17744,"name":"address","nodeType":"ElementaryTypeName","src":"2104:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2054:64:57"},"src":"2032:87:57"},{"errorSelector":"6b23cf01","id":17749,"name":"NoZeroPolicyPool","nameLocation":"2129:16:57","nodeType":"ErrorDefinition","parameters":{"id":17748,"nodeType":"ParameterList","parameters":[],"src":"2145:2:57"},"src":"2123:25:57"},{"errorSelector":"d2b3d33f","id":17751,"name":"UpgradeCannotChangePolicyPool","nameLocation":"2157:29:57","nodeType":"ErrorDefinition","parameters":{"id":17750,"nodeType":"ParameterList","parameters":[],"src":"2186:2:57"},"src":"2151:38:57"},{"errorSelector":"799e780f","id":17753,"name":"OnlyPolicyPool","nameLocation":"2198:14:57","nodeType":"ErrorDefinition","parameters":{"id":17752,"nodeType":"ParameterList","parameters":[],"src":"2212:2:57"},"src":"2192:23:57"},{"body":{"id":17768,"nodeType":"Block","src":"2245:81:57","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17756,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2259:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":17760,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2283:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":17759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2275:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17758,"name":"address","nodeType":"ElementaryTypeName","src":"2275:7:57","typeDescriptions":{}}},"id":17761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2275:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2259:36:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17763,"name":"OnlyPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17753,"src":"2297:14:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":17755,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2251:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2251:63:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"2251:63:57"},{"id":17767,"nodeType":"PlaceholderStatement","src":"2320:1:57"}]},"id":17769,"name":"onlyPolicyPool","nameLocation":"2228:14:57","nodeType":"ModifierDefinition","parameters":{"id":17754,"nodeType":"ParameterList","parameters":[],"src":"2242:2:57"},"src":"2219:107:57","virtual":false,"visibility":"internal"},{"body":{"id":17789,"nodeType":"Block","src":"2371:99:57","statements":[{"expression":{"arguments":[{"arguments":[{"id":17780,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2425:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}],"id":17779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2417:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17778,"name":"address","nodeType":"ElementaryTypeName","src":"2417:7:57","typeDescriptions":{}}},"id":17781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2417:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17782,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17771,"src":"2432:4:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17783,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2438:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2438:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":17785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2452:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17773,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2377:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2389:6:57","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"2377:18:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":17776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2377:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":17777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2398:18:57","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"2377:39:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":17786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2377:81:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17787,"nodeType":"ExpressionStatement","src":"2377:81:57"},{"id":17788,"nodeType":"PlaceholderStatement","src":"2464:1:57"}]},"id":17790,"name":"onlyComponentRole","nameLocation":"2339:17:57","nodeType":"ModifierDefinition","parameters":{"id":17772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17771,"mutability":"mutable","name":"role","nameLocation":"2365:4:57","nodeType":"VariableDeclaration","scope":17790,"src":"2357:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2357:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2356:14:57"},"src":"2330:140:57","virtual":false,"visibility":"internal"},{"body":{"id":17810,"nodeType":"Block","src":"2523:98:57","statements":[{"expression":{"arguments":[{"arguments":[{"id":17801,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2577:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}],"id":17800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2569:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17799,"name":"address","nodeType":"ElementaryTypeName","src":"2569:7:57","typeDescriptions":{}}},"id":17802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2569:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17803,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17792,"src":"2584:4:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17804,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2590:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2590:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":17806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2604:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17794,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2529:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2541:6:57","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"2529:18:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":17797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2529:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":17798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2550:18:57","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"2529:39:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":17807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2529:80:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17808,"nodeType":"ExpressionStatement","src":"2529:80:57"},{"id":17809,"nodeType":"PlaceholderStatement","src":"2615:1:57"}]},"id":17811,"name":"onlyGlobalOrComponentRole","nameLocation":"2483:25:57","nodeType":"ModifierDefinition","parameters":{"id":17793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17792,"mutability":"mutable","name":"role","nameLocation":"2517:4:57","nodeType":"VariableDeclaration","scope":17811,"src":"2509:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2509:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2508:14:57"},"src":"2474:147:57","virtual":false,"visibility":"internal"},{"body":{"id":17834,"nodeType":"Block","src":"2691:107:57","statements":[{"expression":{"arguments":[{"arguments":[{"id":17824,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2746:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}],"id":17823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17822,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:57","typeDescriptions":{}}},"id":17825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17826,"name":"role1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17813,"src":"2753:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17827,"name":"role2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"2760:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17828,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"2767:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":17830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2781:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17817,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2697:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2709:6:57","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"2697:18:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":17820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":17821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2718:19:57","memberName":"checkComponentRole2","nodeType":"MemberAccess","referencedDeclaration":23369,"src":"2697:40:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,bytes32,address,bool) view external"}},"id":17831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:89:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17832,"nodeType":"ExpressionStatement","src":"2697:89:57"},{"id":17833,"nodeType":"PlaceholderStatement","src":"2792:1:57"}]},"id":17835,"name":"onlyGlobalOrComponentRole2","nameLocation":"2634:26:57","nodeType":"ModifierDefinition","parameters":{"id":17816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17813,"mutability":"mutable","name":"role1","nameLocation":"2669:5:57","nodeType":"VariableDeclaration","scope":17835,"src":"2661:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2661:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17815,"mutability":"mutable","name":"role2","nameLocation":"2684:5:57","nodeType":"VariableDeclaration","scope":17835,"src":"2676:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2676:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2660:30:57"},"src":"2625:173:57","virtual":false,"visibility":"internal"},{"body":{"id":17862,"nodeType":"Block","src":"2890:135:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17844,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17839,"src":"2908:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":17843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2900:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17842,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:57","typeDescriptions":{}}},"id":17845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2900:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":17848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2932:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2924:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17846,"name":"address","nodeType":"ElementaryTypeName","src":"2924:7:57","typeDescriptions":{}}},"id":17849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2900:34:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17854,"nodeType":"IfStatement","src":"2896:65:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17851,"name":"NoZeroPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17749,"src":"2943:16:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17853,"nodeType":"RevertStatement","src":"2936:25:57"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17855,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"2967:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:22:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17857,"nodeType":"ExpressionStatement","src":"2967:22:57"},{"expression":{"id":17860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17858,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2995:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17859,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17839,"src":"3009:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"src":"2995:25:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17861,"nodeType":"ExpressionStatement","src":"2995:25:57"}]},"documentation":{"id":17836,"nodeType":"StructuredDocumentation","src":"2802:48:57","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":17863,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17839,"mutability":"mutable","name":"policyPool_","nameLocation":"2877:11:57","nodeType":"VariableDeclaration","scope":17863,"src":"2865:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":17838,"nodeType":"UserDefinedTypeName","pathNode":{"id":17837,"name":"IPolicyPool","nameLocations":["2865:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"2865:11:57"},"referencedDeclaration":23806,"src":"2865:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"2864:25:57"},"returnParameters":{"id":17841,"nodeType":"ParameterList","parameters":[],"src":"2890:0:57"},"scope":18100,"src":"2853:172:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17874,"nodeType":"Block","src":"3144:58:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17868,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1008,"src":"3150:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3150:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17870,"nodeType":"ExpressionStatement","src":"3150:24:57"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17871,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"3180:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3180:17:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17873,"nodeType":"ExpressionStatement","src":"3180:17:57"}]},"id":17875,"implemented":true,"kind":"function","modifiers":[{"id":17866,"kind":"modifierInvocation","modifierName":{"id":17865,"name":"onlyInitializing","nameLocations":["3127:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"3127:16:57"},"nodeType":"ModifierInvocation","src":"3127:16:57"}],"name":"__PolicyPoolComponent_init","nameLocation":"3089:26:57","nodeType":"FunctionDefinition","parameters":{"id":17864,"nodeType":"ParameterList","parameters":[],"src":"3115:2:57"},"returnParameters":{"id":17867,"nodeType":"ParameterList","parameters":[],"src":"3144:0:57"},"scope":18100,"src":"3080:122:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1075],"body":{"id":17889,"nodeType":"Block","src":"3336:39:57","statements":[{"expression":{"arguments":[{"id":17886,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17877,"src":"3362:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17885,"name":"_upgradeValidations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17907,"src":"3342:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":17887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3342:28:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17888,"nodeType":"ExpressionStatement","src":"3342:28:57"}]},"id":17890,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17881,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"3308:13:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17882,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"3323:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17883,"kind":"modifierInvocation","modifierName":{"id":17880,"name":"onlyGlobalOrComponentRole2","nameLocations":["3281:26:57"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"3281:26:57"},"nodeType":"ModifierInvocation","src":"3281:54:57"}],"name":"_authorizeUpgrade","nameLocation":"3215:17:57","nodeType":"FunctionDefinition","overrides":{"id":17879,"nodeType":"OverrideSpecifier","overrides":[],"src":"3272:8:57"},"parameters":{"id":17878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17877,"mutability":"mutable","name":"newImpl","nameLocation":"3246:7:57","nodeType":"VariableDeclaration","scope":17890,"src":"3238:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17876,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:25:57"},"returnParameters":{"id":17884,"nodeType":"ParameterList","parameters":[],"src":"3336:0:57"},"scope":18100,"src":"3206:169:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17906,"nodeType":"Block","src":"3447:112:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"id":17901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":17896,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17892,"src":"3478:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17895,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"3457:20:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}},"id":17897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:29:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPoolComponent_$23823","typeString":"contract IPolicyPoolComponent"}},"id":17898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:10:57","memberName":"policyPool","nodeType":"MemberAccess","referencedDeclaration":23822,"src":"3457:40:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPolicyPool_$23806_$","typeString":"function () view external returns (contract IPolicyPool)"}},"id":17899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3457:42:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17900,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"3503:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"src":"3457:57:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17905,"nodeType":"IfStatement","src":"3453:101:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17902,"name":"UpgradeCannotChangePolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"3523:29:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3523:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17904,"nodeType":"RevertStatement","src":"3516:38:57"}}]},"id":17907,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeValidations","nameLocation":"3388:19:57","nodeType":"FunctionDefinition","parameters":{"id":17893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17892,"mutability":"mutable","name":"newImpl","nameLocation":"3416:7:57","nodeType":"VariableDeclaration","scope":17907,"src":"3408:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17891,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3407:17:57"},"returnParameters":{"id":17894,"nodeType":"ParameterList","parameters":[],"src":"3447:0:57"},"scope":18100,"src":"3379:180:57","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7882],"body":{"id":17930,"nodeType":"Block","src":"3709:115:57","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17916,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17910,"src":"3722:11:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17918,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"3742:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":17917,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3737:4:57","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":17920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3751:11:57","memberName":"interfaceId","nodeType":"MemberAccess","src":"3737:25:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3722:40:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17922,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17910,"src":"3766:11:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17924,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"3786:20:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}],"id":17923,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3781:4:57","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:26:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyPoolComponent_$23823","typeString":"type(contract IPolicyPoolComponent)"}},"id":17926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3808:11:57","memberName":"interfaceId","nodeType":"MemberAccess","src":"3781:38:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3766:53:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3722:97:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17915,"id":17929,"nodeType":"Return","src":"3715:104:57"}]},"documentation":{"id":17908,"nodeType":"StructuredDocumentation","src":"3563:52:57","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":17931,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3627:17:57","nodeType":"FunctionDefinition","overrides":{"id":17912,"nodeType":"OverrideSpecifier","overrides":[],"src":"3685:8:57"},"parameters":{"id":17911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17910,"mutability":"mutable","name":"interfaceId","nameLocation":"3652:11:57","nodeType":"VariableDeclaration","scope":17931,"src":"3645:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17909,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3645:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3644:20:57"},"returnParameters":{"id":17915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17931,"src":"3703:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17913,"name":"bool","nodeType":"ElementaryTypeName","src":"3703:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3702:6:57"},"scope":18100,"src":"3618:206:57","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":17940,"nodeType":"Block","src":"3893:19:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17937,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"3899:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3899:8:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17939,"nodeType":"ExpressionStatement","src":"3899:8:57"}]},"functionSelector":"8456cb59","id":17941,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17934,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"3878:13:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17935,"kind":"modifierInvocation","modifierName":{"id":17933,"name":"onlyGlobalOrComponentRole","nameLocations":["3852:25:57"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"3852:25:57"},"nodeType":"ModifierInvocation","src":"3852:40:57"}],"name":"pause","nameLocation":"3837:5:57","nodeType":"FunctionDefinition","parameters":{"id":17932,"nodeType":"ParameterList","parameters":[],"src":"3842:2:57"},"returnParameters":{"id":17936,"nodeType":"ParameterList","parameters":[],"src":"3893:0:57"},"scope":18100,"src":"3828:84:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17951,"nodeType":"Block","src":"3997:21:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17948,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"4003:8:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17950,"nodeType":"ExpressionStatement","src":"4003:10:57"}]},"functionSelector":"3f4ba83a","id":17952,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17944,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"3969:13:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17945,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"3984:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17946,"kind":"modifierInvocation","modifierName":{"id":17943,"name":"onlyGlobalOrComponentRole2","nameLocations":["3942:26:57"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"3942:26:57"},"nodeType":"ModifierInvocation","src":"3942:54:57"}],"name":"unpause","nameLocation":"3925:7:57","nodeType":"FunctionDefinition","parameters":{"id":17942,"nodeType":"ParameterList","parameters":[],"src":"3932:2:57"},"returnParameters":{"id":17947,"nodeType":"ParameterList","parameters":[],"src":"3997:0:57"},"scope":18100,"src":"3916:102:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[23822],"body":{"id":17961,"nodeType":"Block","src":"4087:29:57","statements":[{"expression":{"id":17959,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4100:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"functionReturnParameters":17958,"id":17960,"nodeType":"Return","src":"4093:18:57"}]},"functionSelector":"4d15eb03","id":17962,"implemented":true,"kind":"function","modifiers":[],"name":"policyPool","nameLocation":"4031:10:57","nodeType":"FunctionDefinition","overrides":{"id":17954,"nodeType":"OverrideSpecifier","overrides":[],"src":"4056:8:57"},"parameters":{"id":17953,"nodeType":"ParameterList","parameters":[],"src":"4041:2:57"},"returnParameters":{"id":17958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17962,"src":"4074:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":17956,"nodeType":"UserDefinedTypeName","pathNode":{"id":17955,"name":"IPolicyPool","nameLocations":["4074:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"4074:11:57"},"referencedDeclaration":23806,"src":"4074:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"4073:13:57"},"scope":18100,"src":"4022:94:57","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17972,"nodeType":"Block","src":"4177:40:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17968,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4190:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4202:8:57","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"4190:20:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":17970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:22:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"functionReturnParameters":17967,"id":17971,"nodeType":"Return","src":"4183:29:57"}]},"functionSelector":"e5a6b10f","id":17973,"implemented":true,"kind":"function","modifiers":[],"name":"currency","nameLocation":"4129:8:57","nodeType":"FunctionDefinition","parameters":{"id":17963,"nodeType":"ParameterList","parameters":[],"src":"4137:2:57"},"returnParameters":{"id":17967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17973,"src":"4161:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":17965,"nodeType":"UserDefinedTypeName","pathNode":{"id":17964,"name":"IERC20Metadata","nameLocations":["4161:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"4161:14:57"},"referencedDeclaration":6066,"src":"4161:14:57","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"4160:16:57"},"scope":18100,"src":"4120:97:57","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17994,"nodeType":"Block","src":"4285:96:57","statements":[{"expression":{"arguments":[{"arguments":[{"id":17986,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4344:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}],"id":17985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17984,"name":"address","nodeType":"ElementaryTypeName","src":"4336:7:57","typeDescriptions":{}}},"id":17987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17988,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17975,"src":"4351:4:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":17989,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4357:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4357:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":17991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4371:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17980,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4298:11:57","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":17981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4310:6:57","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"4298:18:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":17982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4298:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":17983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:16:57","memberName":"hasComponentRole","nodeType":"MemberAccess","referencedDeclaration":23325,"src":"4298:37:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$_t_bool_$","typeString":"function (address,bytes32,address,bool) view external returns (bool)"}},"id":17992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4298:78:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17979,"id":17993,"nodeType":"Return","src":"4291:85:57"}]},"id":17995,"implemented":true,"kind":"function","modifiers":[],"name":"hasPoolRole","nameLocation":"4230:11:57","nodeType":"FunctionDefinition","parameters":{"id":17976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17975,"mutability":"mutable","name":"role","nameLocation":"4250:4:57","nodeType":"VariableDeclaration","scope":17995,"src":"4242:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4242:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4241:14:57"},"returnParameters":{"id":17979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17995,"src":"4279:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17977,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4278:6:57"},"scope":18100,"src":"4221:160:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18055,"nodeType":"Block","src":"4489:335:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18006,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17997,"src":"4499:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18007,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"4511:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4499:20:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18011,"nodeType":"IfStatement","src":"4495:37:57","trueBody":{"expression":{"hexValue":"74727565","id":18009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4528:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":18005,"id":18010,"nodeType":"Return","src":"4521:11:57"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18012,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17997,"src":"4542:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4554:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4542:13:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18020,"nodeType":"IfStatement","src":"4538:52:57","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18015,"name":"maxTweak","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"4564:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":18016,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"4576:10:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WadRayMath_$23243_$","typeString":"type(library WadRayMath)"}},"id":18017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4587:3:57","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":23162,"src":"4576:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4564:26:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18005,"id":18019,"nodeType":"Return","src":"4557:33:57"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18021,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"4600:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4612:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4600:13:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18026,"nodeType":"IfStatement","src":"4596:31:57","trueBody":{"expression":{"hexValue":"66616c7365","id":18024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4622:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":18005,"id":18025,"nodeType":"Return","src":"4615:12:57"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18027,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17997,"src":"4637:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18028,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"4648:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4637:19:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18053,"nodeType":"Block","src":"4742:78:57","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18042,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"4758:10:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WadRayMath_$23243_$","typeString":"type(library WadRayMath)"}},"id":18043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4769:3:57","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":23162,"src":"4758:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":18046,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17997,"src":"4791:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18044,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"4775:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4784:6:57","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"4775:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:25:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4758:42:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4757:44:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18050,"name":"maxTweak","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"4805:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4757:56:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18005,"id":18052,"nodeType":"Return","src":"4750:63:57"}]},"id":18054,"nodeType":"IfStatement","src":"4633:187:57","trueBody":{"id":18041,"nodeType":"Block","src":"4658:78:57","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18032,"name":"oldValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17997,"src":"4690:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18030,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17999,"src":"4674:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4683:6:57","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":23198,"src":"4674:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4674:25:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":18034,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"4702:10:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WadRayMath_$23243_$","typeString":"type(library WadRayMath)"}},"id":18035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4713:3:57","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":23162,"src":"4702:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4674:42:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4673:44:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18038,"name":"maxTweak","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18001,"src":"4721:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4673:56:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18005,"id":18040,"nodeType":"Return","src":"4666:63:57"}]}}]},"id":18056,"implemented":true,"kind":"function","modifiers":[],"name":"_isTweakWad","nameLocation":"4394:11:57","nodeType":"FunctionDefinition","parameters":{"id":18002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17997,"mutability":"mutable","name":"oldValue","nameLocation":"4414:8:57","nodeType":"VariableDeclaration","scope":18056,"src":"4406:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17996,"name":"uint256","nodeType":"ElementaryTypeName","src":"4406:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17999,"mutability":"mutable","name":"newValue","nameLocation":"4432:8:57","nodeType":"VariableDeclaration","scope":18056,"src":"4424:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17998,"name":"uint256","nodeType":"ElementaryTypeName","src":"4424:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18001,"mutability":"mutable","name":"maxTweak","nameLocation":"4450:8:57","nodeType":"VariableDeclaration","scope":18056,"src":"4442:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18000,"name":"uint256","nodeType":"ElementaryTypeName","src":"4442:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4405:54:57"},"returnParameters":{"id":18005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18056,"src":"4483:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18003,"name":"bool","nodeType":"ElementaryTypeName","src":"4483:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4482:6:57"},"scope":18100,"src":"4385:439:57","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18059,"nodeType":"Block","src":"4928:2:57","statements":[]},"id":18060,"implemented":true,"kind":"function","modifiers":[],"name":"_validateParameters","nameLocation":"4884:19:57","nodeType":"FunctionDefinition","parameters":{"id":18057,"nodeType":"ParameterList","parameters":[],"src":"4903:2:57"},"returnParameters":{"id":18058,"nodeType":"ParameterList","parameters":[],"src":"4928:0:57"},"scope":18100,"src":"4875:55:57","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":18076,"nodeType":"Block","src":"5077:74:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18068,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18060,"src":"5083:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":18069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5083:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18070,"nodeType":"ExpressionStatement","src":"5083:21:57"},{"eventCall":{"arguments":[{"id":18072,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"5132:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":18073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18065,"src":"5140:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18071,"name":"GovernanceAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17740,"src":"5115:16:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":18074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5115:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18075,"nodeType":"EmitStatement","src":"5110:36:57"}]},"id":18077,"implemented":true,"kind":"function","modifiers":[],"name":"_parameterChanged","nameLocation":"4994:17:57","nodeType":"FunctionDefinition","parameters":{"id":18066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18063,"mutability":"mutable","name":"action","nameLocation":"5045:6:57","nodeType":"VariableDeclaration","scope":18077,"src":"5012:39:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":18062,"nodeType":"UserDefinedTypeName","pathNode":{"id":18061,"name":"IAccessManager.GovernanceActions","nameLocations":["5012:14:57","5027:17:57"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"5012:32:57"},"referencedDeclaration":23301,"src":"5012:32:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":18065,"mutability":"mutable","name":"value","nameLocation":"5061:5:57","nodeType":"VariableDeclaration","scope":18077,"src":"5053:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18064,"name":"uint256","nodeType":"ElementaryTypeName","src":"5053:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:56:57"},"returnParameters":{"id":18067,"nodeType":"ParameterList","parameters":[],"src":"5077:0:57"},"scope":18100,"src":"4985:166:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18093,"nodeType":"Block","src":"5247:74:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18085,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18060,"src":"5253:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":18086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18087,"nodeType":"ExpressionStatement","src":"5253:21:57"},{"eventCall":{"arguments":[{"id":18089,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"5302:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":18090,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"5310:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_address","typeString":"address"}],"id":18088,"name":"ComponentChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17747,"src":"5285:16:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_address_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,address)"}},"id":18091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18092,"nodeType":"EmitStatement","src":"5280:36:57"}]},"id":18094,"implemented":true,"kind":"function","modifiers":[],"name":"_componentChanged","nameLocation":"5164:17:57","nodeType":"FunctionDefinition","parameters":{"id":18083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18080,"mutability":"mutable","name":"action","nameLocation":"5215:6:57","nodeType":"VariableDeclaration","scope":18094,"src":"5182:39:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":18079,"nodeType":"UserDefinedTypeName","pathNode":{"id":18078,"name":"IAccessManager.GovernanceActions","nameLocations":["5182:14:57","5197:17:57"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"5182:32:57"},"referencedDeclaration":23301,"src":"5182:32:57","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"},{"constant":false,"id":18082,"mutability":"mutable","name":"value","nameLocation":"5231:5:57","nodeType":"VariableDeclaration","scope":18094,"src":"5223:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18081,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5181:56:57"},"returnParameters":{"id":18084,"nodeType":"ParameterList","parameters":[],"src":"5247:0:57"},"scope":18100,"src":"5155:166:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":18095,"nodeType":"StructuredDocumentation","src":"5325:246:57","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":18099,"mutability":"mutable","name":"__gap","nameLocation":"5594:5:57","nodeType":"VariableDeclaration","scope":18100,"src":"5574:25:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":18096,"name":"uint256","nodeType":"ElementaryTypeName","src":"5574:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18098,"length":{"hexValue":"3530","id":18097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5582:2:57","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"5574:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":18101,"src":"1485:4117:57","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,17740,17747]}],"src":"39:5564:57"},"id":57},"contracts/PremiumsAccount.sol":{"ast":{"absolutePath":"contracts/PremiumsAccount.sol","exportedSymbols":{"IAccessManager":[23370],"IAssetManager":[23421],"IERC20Metadata":[6066],"IEToken":[23549],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Math":[8749],"Policy":[15439],"PremiumsAccount":[19681],"Reserve":[20137],"SafeCast":[10290],"SafeERC20":[6478],"SignedMath":[10395],"WadRayMath":[23243]},"id":19682,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":18102,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:58"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","id":18104,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":8750,"src":"64:65:58","symbolAliases":[{"foreign":{"id":18103,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"72:4:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"@openzeppelin/contracts/utils/math/SignedMath.sol","id":18106,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":10396,"src":"130:77:58","symbolAliases":[{"foreign":{"id":18105,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"138:10:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":18108,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":6067,"src":"208:97:58","symbolAliases":[{"foreign":{"id":18107,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"216:14:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":18110,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":6479,"src":"306:82:58","symbolAliases":[{"foreign":{"id":18109,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"314:9:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":18112,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":10291,"src":"389:73:58","symbolAliases":[{"foreign":{"id":18111,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"397:8:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":18114,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23244,"src":"463:57:58","symbolAliases":[{"foreign":{"id":18113,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"471:10:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":18116,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23807,"src":"521:57:58","symbolAliases":[{"foreign":{"id":18115,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"529:11:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./interfaces/IEToken.sol","id":18118,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23550,"src":"579:49:58","symbolAliases":[{"foreign":{"id":18117,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"587:7:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Reserve.sol","file":"./Reserve.sol","id":18120,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":20138,"src":"629:38:58","symbolAliases":[{"foreign":{"id":18119,"name":"Reserve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20137,"src":"637:7:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":18122,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23371,"src":"668:63:58","symbolAliases":[{"foreign":{"id":18121,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"676:14:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":18124,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23887,"src":"732:67:58","symbolAliases":[{"foreign":{"id":18123,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"740:16:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":18126,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":15440,"src":"800:36:58","symbolAliases":[{"foreign":{"id":18125,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"808:6:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./interfaces/IEToken.sol","id":18128,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23550,"src":"837:49:58","symbolAliases":[{"foreign":{"id":18127,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"845:7:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAssetManager.sol","file":"./interfaces/IAssetManager.sol","id":18130,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19682,"sourceUnit":23422,"src":"887:61:58","symbolAliases":[{"foreign":{"id":18129,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"895:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18132,"name":"IPremiumsAccount","nameLocations":["1582:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"1582:16:58"},"id":18133,"nodeType":"InheritanceSpecifier","src":"1582:16:58"},{"baseName":{"id":18134,"name":"Reserve","nameLocations":["1600:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":20137,"src":"1600:7:58"},"id":18135,"nodeType":"InheritanceSpecifier","src":"1600:7:58"}],"canonicalName":"PremiumsAccount","contractDependencies":[],"contractKind":"contract","documentation":{"id":18131,"nodeType":"StructuredDocumentation","src":"950:603:58","text":" @title Ensuro Premiums Account\n @dev This contract holds the pure premiums of a set of risk modules. The pure premiums is the part of the premium\n that is expected to cover the losses. The contract keeps track of the pure premiums of the active policies\n (_activePurePremiums) and the surplus or deficit generated by the finalized policies (pure premiums collected -\n losses).\n Collaborates with a junior {EToken} and a senior {EToken} that act as lenders when the premiums aren't enough to\n cover the losses.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":19681,"linearizedBaseContracts":[19681,20137,18100,23823,7883,1209,2704,1081,765,430,440,944,23886],"name":"PremiumsAccount","nameLocation":"1563:15:58","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18139,"libraryName":{"id":18136,"name":"Policy","nameLocations":["1618:6:58"],"nodeType":"IdentifierPath","referencedDeclaration":15439,"src":"1618:6:58"},"nodeType":"UsingForDirective","src":"1612:35:58","typeName":{"id":18138,"nodeType":"UserDefinedTypeName","pathNode":{"id":18137,"name":"Policy.PolicyData","nameLocations":["1629:6:58","1636:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1629:17:58"},"referencedDeclaration":14966,"src":"1629:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}}},{"global":false,"id":18142,"libraryName":{"id":18140,"name":"WadRayMath","nameLocations":["1656:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"1656:10:58"},"nodeType":"UsingForDirective","src":"1650:29:58","typeName":{"id":18141,"name":"uint256","nodeType":"ElementaryTypeName","src":"1671:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":18146,"libraryName":{"id":18143,"name":"SafeERC20","nameLocations":["1688:9:58"],"nodeType":"IdentifierPath","referencedDeclaration":6478,"src":"1688:9:58"},"nodeType":"UsingForDirective","src":"1682:35:58","typeName":{"id":18145,"nodeType":"UserDefinedTypeName","pathNode":{"id":18144,"name":"IERC20Metadata","nameLocations":["1702:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1702:14:58"},"referencedDeclaration":6066,"src":"1702:14:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}},{"global":false,"id":18149,"libraryName":{"id":18147,"name":"SafeCast","nameLocations":["1726:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"1726:8:58"},"nodeType":"UsingForDirective","src":"1720:27:58","typeName":{"id":18148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1739:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"functionSelector":"8ca23bc9","id":18154,"mutability":"constant","name":"WITHDRAW_WON_PREMIUMS_ROLE","nameLocation":"1775:26:58","nodeType":"VariableDeclaration","scope":19681,"src":"1751:92:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1751:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"57495448445241575f574f4e5f5052454d49554d535f524f4c45","id":18152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1814:28:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_a23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057","typeString":"literal_string \"WITHDRAW_WON_PREMIUMS_ROLE\""},"value":"WITHDRAW_WON_PREMIUMS_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057","typeString":"literal_string \"WITHDRAW_WON_PREMIUMS_ROLE\""}],"id":18151,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1804:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1804:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"aac0cfaf","id":18159,"mutability":"constant","name":"REPAY_LOANS_ROLE","nameLocation":"1871:16:58","nodeType":"VariableDeclaration","scope":19681,"src":"1847:72:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1847:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"52455041595f4c4f414e535f524f4c45","id":18157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1900:18:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa","typeString":"literal_string \"REPAY_LOANS_ROLE\""},"value":"REPAY_LOANS_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa","typeString":"literal_string \"REPAY_LOANS_ROLE\""}],"id":18156,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1890:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1890:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":18162,"mutability":"constant","name":"FOUR_DECIMAL_TO_WAD","nameLocation":"1949:19:58","nodeType":"VariableDeclaration","scope":19681,"src":"1923:52:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18160,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653134","id":18161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1971:4:58","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"1e14"},"visibility":"internal"},{"constant":true,"id":18165,"mutability":"constant","name":"HUNDRED_PERCENT","nameLocation":"2004:15:58","nodeType":"VariableDeclaration","scope":19681,"src":"1979:46:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":18163,"name":"uint16","nodeType":"ElementaryTypeName","src":"1979:6:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"316534","id":18164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2022:3:58","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"1e4"},"visibility":"internal"},{"constant":false,"documentation":{"id":18166,"nodeType":"StructuredDocumentation","src":"2195:61:58","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":18169,"mutability":"immutable","name":"_juniorEtk","nameLocation":"2286:10:58","nodeType":"VariableDeclaration","scope":19681,"src":"2259:37:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18168,"nodeType":"UserDefinedTypeName","pathNode":{"id":18167,"name":"IEToken","nameLocations":["2259:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"2259:7:58"},"referencedDeclaration":23549,"src":"2259:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"documentation":{"id":18170,"nodeType":"StructuredDocumentation","src":"2512:61:58","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":18173,"mutability":"immutable","name":"_seniorEtk","nameLocation":"2603:10:58","nodeType":"VariableDeclaration","scope":19681,"src":"2576:37:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18172,"nodeType":"UserDefinedTypeName","pathNode":{"id":18171,"name":"IEToken","nameLocations":["2576:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"2576:7:58"},"referencedDeclaration":23549,"src":"2576:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"documentation":{"id":18174,"nodeType":"StructuredDocumentation","src":"2618:171:58","text":" @dev The active pure premiums field keeps track of the pure premiums collected by the active policies of risk\n modules linked with this PremiumsAccount."},"id":18176,"mutability":"mutable","name":"_activePurePremiums","nameLocation":"2809:19:58","nodeType":"VariableDeclaration","scope":19681,"src":"2792:36:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2792:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"documentation":{"id":18177,"nodeType":"StructuredDocumentation","src":"2885:313:58","text":" @dev The surplus field keeps track of the surplus or deficit (when negative) of the actual payouts made by the\n PremiumsAccount versus the collected pure premiums. On the negative side, it has a limit defined by `_maxDeficit()`,\n after that limit, internal loans are taken from the eTokens."},"id":18179,"mutability":"mutable","name":"_surplus","nameLocation":"3217:8:58","nodeType":"VariableDeclaration","scope":19681,"src":"3201:24:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18178,"name":"int256","nodeType":"ElementaryTypeName","src":"3201:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"canonicalName":"PremiumsAccount.PackedParams","documentation":{"id":18180,"nodeType":"StructuredDocumentation","src":"3230:628:58","text":" @dev This struct has the parameters that can be modified by governance\n @member deficitRatio A value between [0, 1] that defines the percentage of active pure premiums that can be used\n                      to cover losses.\n @member assetManager This is the implementation contract that manages the PremiumsAccount's funds. See\n                      {IAssetManager}\n @member jrLoanLimit  This is the maximum amount that can be borrowed from the Junior eToken (without decimals)\n @member srLoanLimit  This is the maximum amount that can be borrowed from the Senior eToken (without decimals)"},"id":18190,"members":[{"constant":false,"id":18182,"mutability":"mutable","name":"deficitRatio","nameLocation":"3894:12:58","nodeType":"VariableDeclaration","scope":18190,"src":"3887:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":18181,"name":"uint16","nodeType":"ElementaryTypeName","src":"3887:6:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":18185,"mutability":"mutable","name":"assetManager","nameLocation":"3926:12:58","nodeType":"VariableDeclaration","scope":18190,"src":"3912:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":18184,"nodeType":"UserDefinedTypeName","pathNode":{"id":18183,"name":"IAssetManager","nameLocations":["3912:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"3912:13:58"},"referencedDeclaration":23421,"src":"3912:13:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"},{"constant":false,"id":18187,"mutability":"mutable","name":"jrLoanLimit","nameLocation":"3951:11:58","nodeType":"VariableDeclaration","scope":18190,"src":"3944:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18186,"name":"uint32","nodeType":"ElementaryTypeName","src":"3944:6:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":18189,"mutability":"mutable","name":"srLoanLimit","nameLocation":"3975:11:58","nodeType":"VariableDeclaration","scope":18190,"src":"3968:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18188,"name":"uint32","nodeType":"ElementaryTypeName","src":"3968:6:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"name":"PackedParams","nameLocation":"3868:12:58","nodeType":"StructDefinition","scope":19681,"src":"3861:130:58","visibility":"public"},{"constant":false,"id":18193,"mutability":"mutable","name":"_params","nameLocation":"4017:7:58","nodeType":"VariableDeclaration","scope":19681,"src":"3995:29:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams"},"typeName":{"id":18192,"nodeType":"UserDefinedTypeName","pathNode":{"id":18191,"name":"PackedParams","nameLocations":["3995:12:58"],"nodeType":"IdentifierPath","referencedDeclaration":18190,"src":"3995:12:58"},"referencedDeclaration":18190,"src":"3995:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage_ptr","typeString":"struct PremiumsAccount.PackedParams"}},"visibility":"internal"},{"anonymous":false,"documentation":{"id":18194,"nodeType":"StructuredDocumentation","src":"4029:282:58","text":" Premiums can come in (for \"free\", without liability) with receiveGrant.\n And can come out (withdrawed to treasury) with withdrawWonPremiums\n @param moneyIn Indicates if money came in or out (false).\n @param value The amount of money received or given"},"eventSelector":"d60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199","id":18200,"name":"WonPremiumsInOut","nameLocation":"4320:16:58","nodeType":"EventDefinition","parameters":{"id":18199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18196,"indexed":false,"mutability":"mutable","name":"moneyIn","nameLocation":"4342:7:58","nodeType":"VariableDeclaration","scope":18200,"src":"4337:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18195,"name":"bool","nodeType":"ElementaryTypeName","src":"4337:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18198,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"4359:5:58","nodeType":"VariableDeclaration","scope":18200,"src":"4351:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18197,"name":"uint256","nodeType":"ElementaryTypeName","src":"4351:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4336:29:58"},"src":"4314:52:58"},{"body":{"id":18239,"nodeType":"Block","src":"4740:195:58","statements":[{"condition":{"id":18220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4750:77:58","subExpression":{"arguments":[{"arguments":[{"id":18211,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4797:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4789:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18209,"name":"address","nodeType":"ElementaryTypeName","src":"4789:7:58","typeDescriptions":{}}},"id":18212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4789:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18213,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18203,"src":"4804:4:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":18216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4818:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18214,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:58","typeDescriptions":{}}},"id":18217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":18218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4822:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18205,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4751:11:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":18206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4763:6:58","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"4751:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":18207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:16:58","memberName":"hasComponentRole","nodeType":"MemberAccess","referencedDeclaration":23325,"src":"4751:37:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$_t_bool_$","typeString":"function (address,bytes32,address,bool) view external returns (bool)"}},"id":18219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:76:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18237,"nodeType":"IfStatement","src":"4746:178:58","trueBody":{"id":18236,"nodeType":"Block","src":"4829:95:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":18228,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4885:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4877:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18226,"name":"address","nodeType":"ElementaryTypeName","src":"4877:7:58","typeDescriptions":{}}},"id":18229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18230,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18203,"src":"4892:4:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":18231,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"4898:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4898:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":18233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4912:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18221,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4837:11:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":18223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4849:6:58","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"4837:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":18224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4837:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":18225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4858:18:58","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"4837:39:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":18234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4837:80:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18235,"nodeType":"ExpressionStatement","src":"4837:80:58"}]}},{"id":18238,"nodeType":"PlaceholderStatement","src":"4929:1:58"}]},"documentation":{"id":18201,"nodeType":"StructuredDocumentation","src":"4370:312:58","text":" @dev Modifier to make a function callable only by a certain global or component role.\n In addition to checking the sender's role, `address(0)` 's role is also\n considered. Granting a role to `address(0)` (at global or component level) is equivalent\n to enabling this role for everyone."},"id":18240,"name":"onlyGlobalOrComponentOrOpenRole","nameLocation":"4694:31:58","nodeType":"ModifierDefinition","parameters":{"id":18204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18203,"mutability":"mutable","name":"role","nameLocation":"4734:4:58","nodeType":"VariableDeclaration","scope":18240,"src":"4726:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4726:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4725:14:58"},"src":"4685:250:58","virtual":false,"visibility":"internal"},{"body":{"id":18264,"nodeType":"Block","src":"5373:63:58","statements":[{"expression":{"id":18258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18256,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"5379:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18257,"name":"juniorEtk_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18247,"src":"5392:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"5379:23:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18259,"nodeType":"ExpressionStatement","src":"5379:23:58"},{"expression":{"id":18262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18260,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"5408:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18261,"name":"seniorEtk_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18250,"src":"5421:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"5408:23:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18263,"nodeType":"ExpressionStatement","src":"5408:23:58"}]},"documentation":{"id":18241,"nodeType":"StructuredDocumentation","src":"5224:48:58","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":18265,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":18253,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"5360:11:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":18254,"kind":"baseConstructorSpecifier","modifierName":{"id":18252,"name":"Reserve","nameLocations":["5352:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":20137,"src":"5352:7:58"},"nodeType":"ModifierInvocation","src":"5352:20:58"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18244,"mutability":"mutable","name":"policyPool_","nameLocation":"5299:11:58","nodeType":"VariableDeclaration","scope":18265,"src":"5287:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":18243,"nodeType":"UserDefinedTypeName","pathNode":{"id":18242,"name":"IPolicyPool","nameLocations":["5287:11:58"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"5287:11:58"},"referencedDeclaration":23806,"src":"5287:11:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":18247,"mutability":"mutable","name":"juniorEtk_","nameLocation":"5320:10:58","nodeType":"VariableDeclaration","scope":18265,"src":"5312:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18246,"nodeType":"UserDefinedTypeName","pathNode":{"id":18245,"name":"IEToken","nameLocations":["5312:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"5312:7:58"},"referencedDeclaration":23549,"src":"5312:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":18250,"mutability":"mutable","name":"seniorEtk_","nameLocation":"5340:10:58","nodeType":"VariableDeclaration","scope":18265,"src":"5332:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18249,"nodeType":"UserDefinedTypeName","pathNode":{"id":18248,"name":"IEToken","nameLocations":["5332:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"5332:7:58"},"referencedDeclaration":23549,"src":"5332:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"5286:65:58"},"returnParameters":{"id":18255,"nodeType":"ParameterList","parameters":[],"src":"5373:0:58"},"scope":19681,"src":"5275:161:58","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18274,"nodeType":"Block","src":"5535:35:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18271,"name":"__PremiumsAccount_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18288,"src":"5541:22:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5541:24:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18273,"nodeType":"ExpressionStatement","src":"5541:24:58"}]},"documentation":{"id":18266,"nodeType":"StructuredDocumentation","src":"5440:51:58","text":" @dev Initializes the PremiumsAccount"},"functionSelector":"8129fc1c","id":18275,"implemented":true,"kind":"function","modifiers":[{"id":18269,"kind":"modifierInvocation","modifierName":{"id":18268,"name":"initializer","nameLocations":["5523:11:58"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"5523:11:58"},"nodeType":"ModifierInvocation","src":"5523:11:58"}],"name":"initialize","nameLocation":"5503:10:58","nodeType":"FunctionDefinition","parameters":{"id":18267,"nodeType":"ParameterList","parameters":[],"src":"5513:2:58"},"returnParameters":{"id":18270,"nodeType":"ParameterList","parameters":[],"src":"5535:0:58"},"scope":19681,"src":"5494:76:58","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18287,"nodeType":"Block","src":"5768:67:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18281,"name":"__Reserve_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19744,"src":"5774:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5774:16:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18283,"nodeType":"ExpressionStatement","src":"5774:16:58"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18284,"name":"__PremiumsAccount_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18311,"src":"5796:32:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18286,"nodeType":"ExpressionStatement","src":"5796:34:58"}]},"documentation":{"id":18276,"nodeType":"StructuredDocumentation","src":"5574:80:58","text":" @dev Initializes the PremiumsAccount (to be called by subclasses)"},"id":18288,"implemented":true,"kind":"function","modifiers":[{"id":18279,"kind":"modifierInvocation","modifierName":{"id":18278,"name":"onlyInitializing","nameLocations":["5751:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"5751:16:58"},"nodeType":"ModifierInvocation","src":"5751:16:58"}],"name":"__PremiumsAccount_init","nameLocation":"5717:22:58","nodeType":"FunctionDefinition","parameters":{"id":18277,"nodeType":"ParameterList","parameters":[],"src":"5739:2:58"},"returnParameters":{"id":18280,"nodeType":"ParameterList","parameters":[],"src":"5768:0:58"},"scope":19681,"src":"5708:127:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18310,"nodeType":"Block","src":"5960:239:58","statements":[{"expression":{"id":18305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18293,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"6009:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18295,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18165,"src":"6054:15:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":18299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6113:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6105:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18297,"name":"address","nodeType":"ElementaryTypeName","src":"6105:7:58","typeDescriptions":{}}},"id":18300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6105:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18296,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"6091:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":18301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},{"hexValue":"30","id":18302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6137:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":18303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6159:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18294,"name":"PackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18190,"src":"6019:12:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PackedParams_$18190_storage_ptr_$","typeString":"type(struct PremiumsAccount.PackedParams storage pointer)"}},"id":18304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6040:12:58","6077:12:58","6124:11:58","6146:11:58"],"names":["deficitRatio","assetManager","jrLoanLimit","srLoanLimit"],"nodeType":"FunctionCall","src":"6019:148:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_memory_ptr","typeString":"struct PremiumsAccount.PackedParams memory"}},"src":"6009:158:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18306,"nodeType":"ExpressionStatement","src":"6009:158:58"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18307,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[18465],"referencedDeclaration":18465,"src":"6173:19:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":18308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18309,"nodeType":"ExpressionStatement","src":"6173:21:58"}]},"id":18311,"implemented":true,"kind":"function","modifiers":[{"id":18291,"kind":"modifierInvocation","modifierName":{"id":18290,"name":"onlyInitializing","nameLocations":["5943:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"5943:16:58"},"nodeType":"ModifierInvocation","src":"5943:16:58"}],"name":"__PremiumsAccount_init_unchained","nameLocation":"5899:32:58","nodeType":"FunctionDefinition","parameters":{"id":18289,"nodeType":"ParameterList","parameters":[],"src":"5931:2:58"},"returnParameters":{"id":18292,"nodeType":"ParameterList","parameters":[],"src":"5960:0:58"},"scope":19681,"src":"5890:309:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17907],"body":{"id":18368,"nodeType":"Block","src":"6280:423:58","statements":[{"expression":{"arguments":[{"id":18320,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18313,"src":"6312:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18317,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6286:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PremiumsAccount_$19681_$","typeString":"type(contract super PremiumsAccount)"}},"id":18319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6292:19:58","memberName":"_upgradeValidations","nodeType":"MemberAccess","referencedDeclaration":17907,"src":"6286:25:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":18321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6286:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18322,"nodeType":"ExpressionStatement","src":"6286:34:58"},{"assignments":[18325],"declarations":[{"constant":false,"id":18325,"mutability":"mutable","name":"newPA","nameLocation":"6343:5:58","nodeType":"VariableDeclaration","scope":18368,"src":"6326:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":18324,"nodeType":"UserDefinedTypeName","pathNode":{"id":18323,"name":"IPremiumsAccount","nameLocations":["6326:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"6326:16:58"},"referencedDeclaration":23886,"src":"6326:16:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"id":18329,"initialValue":{"arguments":[{"id":18327,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18313,"src":"6368:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18326,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"6351:16:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}},"id":18328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"VariableDeclarationStatement","src":"6326:50:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"id":18335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18331,"name":"newPA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18325,"src":"6397:5:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":18332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6403:9:58","memberName":"juniorEtk","nodeType":"MemberAccess","referencedDeclaration":23879,"src":"6397:15:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":18333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18334,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"6418:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"6397:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18338,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"6440:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":18337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6432:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18336,"name":"address","nodeType":"ElementaryTypeName","src":"6432:7:58","typeDescriptions":{}}},"id":18339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6432:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6463:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6455:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18340,"name":"address","nodeType":"ElementaryTypeName","src":"6455:7:58","typeDescriptions":{}}},"id":18343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6455:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6432:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6397:68:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e27742075706772616465206368616e67696e6720746865204a756e696f722045544b20756e6c65737320746f206e6f6e2d7a65726f","id":18346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6473:58:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fb52a6adba91dbdb89dd23972f573b9fba4a5c7c6cf1978d8becbf69230f76c","typeString":"literal_string \"Can't upgrade changing the Junior ETK unless to non-zero\""},"value":"Can't upgrade changing the Junior ETK unless to non-zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fb52a6adba91dbdb89dd23972f573b9fba4a5c7c6cf1978d8becbf69230f76c","typeString":"literal_string \"Can't upgrade changing the Junior ETK unless to non-zero\""}],"id":18330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6382:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6382:155:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18348,"nodeType":"ExpressionStatement","src":"6382:155:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"id":18354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18350,"name":"newPA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18325,"src":"6558:5:58","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":18351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6564:9:58","memberName":"seniorEtk","nodeType":"MemberAccess","referencedDeclaration":23872,"src":"6558:15:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IEToken_$23549_$","typeString":"function () view external returns (contract IEToken)"}},"id":18352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6558:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18353,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"6579:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"src":"6558:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18357,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"6601:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":18356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6593:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18355,"name":"address","nodeType":"ElementaryTypeName","src":"6593:7:58","typeDescriptions":{}}},"id":18358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6616:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18359,"name":"address","nodeType":"ElementaryTypeName","src":"6616:7:58","typeDescriptions":{}}},"id":18362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6616:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6593:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6558:68:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e27742075706772616465206368616e67696e67207468652053656e696f722045544b20756e6c65737320746f206e6f6e2d7a65726f","id":18365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6634:58:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_495e5d5ae96f4a92de4c7e46823cf0f415aec3a853b962248cd8fe1c513de6db","typeString":"literal_string \"Can't upgrade changing the Senior ETK unless to non-zero\""},"value":"Can't upgrade changing the Senior ETK unless to non-zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_495e5d5ae96f4a92de4c7e46823cf0f415aec3a853b962248cd8fe1c513de6db","typeString":"literal_string \"Can't upgrade changing the Senior ETK unless to non-zero\""}],"id":18349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6543:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6543:155:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18367,"nodeType":"ExpressionStatement","src":"6543:155:58"}]},"id":18369,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeValidations","nameLocation":"6212:19:58","nodeType":"FunctionDefinition","overrides":{"id":18315,"nodeType":"OverrideSpecifier","overrides":[],"src":"6271:8:58"},"parameters":{"id":18314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18313,"mutability":"mutable","name":"newImpl","nameLocation":"6240:7:58","nodeType":"VariableDeclaration","scope":18369,"src":"6232:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18312,"name":"address","nodeType":"ElementaryTypeName","src":"6232:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6231:17:58"},"returnParameters":{"id":18316,"nodeType":"ParameterList","parameters":[],"src":"6280:0:58"},"scope":19681,"src":"6203:500:58","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[17931],"body":{"id":18390,"nodeType":"Block","src":"6853:107:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18380,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"6890:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18378,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6866:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PremiumsAccount_$19681_$","typeString":"type(contract super PremiumsAccount)"}},"id":18379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6872:17:58","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17931,"src":"6866:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6866:36:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18382,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"6906:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18384,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"6926:16:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}],"id":18383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6921:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6921:22:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPremiumsAccount_$23886","typeString":"type(contract IPremiumsAccount)"}},"id":18386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6944:11:58","memberName":"interfaceId","nodeType":"MemberAccess","src":"6921:34:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6906:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6866:89:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18377,"id":18389,"nodeType":"Return","src":"6859:96:58"}]},"documentation":{"id":18370,"nodeType":"StructuredDocumentation","src":"6707:52:58","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":18391,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6771:17:58","nodeType":"FunctionDefinition","overrides":{"id":18374,"nodeType":"OverrideSpecifier","overrides":[],"src":"6829:8:58"},"parameters":{"id":18373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18372,"mutability":"mutable","name":"interfaceId","nameLocation":"6796:11:58","nodeType":"VariableDeclaration","scope":18391,"src":"6789:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18371,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6789:6:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6788:20:58"},"returnParameters":{"id":18377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18391,"src":"6847:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18375,"name":"bool","nodeType":"ElementaryTypeName","src":"6847:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6846:6:58"},"scope":19681,"src":"6762:198:58","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[19870],"body":{"id":18401,"nodeType":"Block","src":"7033:38:58","statements":[{"expression":{"expression":{"id":18398,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"7046:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7054:12:58","memberName":"assetManager","nodeType":"MemberAccess","referencedDeclaration":18185,"src":"7046:20:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"functionReturnParameters":18397,"id":18400,"nodeType":"Return","src":"7039:27:58"}]},"functionSelector":"94217ad1","id":18402,"implemented":true,"kind":"function","modifiers":[],"name":"assetManager","nameLocation":"6973:12:58","nodeType":"FunctionDefinition","overrides":{"id":18393,"nodeType":"OverrideSpecifier","overrides":[],"src":"7000:8:58"},"parameters":{"id":18392,"nodeType":"ParameterList","parameters":[],"src":"6985:2:58"},"returnParameters":{"id":18397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18402,"src":"7018:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":18395,"nodeType":"UserDefinedTypeName","pathNode":{"id":18394,"name":"IAssetManager","nameLocations":["7018:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"7018:13:58"},"referencedDeclaration":23421,"src":"7018:13:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"7017:15:58"},"scope":19681,"src":"6964:107:58","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[19877],"body":{"id":18415,"nodeType":"Block","src":"7140:39:58","statements":[{"expression":{"id":18413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18409,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"7146:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7154:12:58","memberName":"assetManager","nodeType":"MemberAccess","referencedDeclaration":18185,"src":"7146:20:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18412,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18405,"src":"7169:5:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"src":"7146:28:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"id":18414,"nodeType":"ExpressionStatement","src":"7146:28:58"}]},"id":18416,"implemented":true,"kind":"function","modifiers":[],"name":"_setAssetManager","nameLocation":"7084:16:58","nodeType":"FunctionDefinition","overrides":{"id":18407,"nodeType":"OverrideSpecifier","overrides":[],"src":"7131:8:58"},"parameters":{"id":18406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18405,"mutability":"mutable","name":"newAM","nameLocation":"7115:5:58","nodeType":"VariableDeclaration","scope":18416,"src":"7101:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":18404,"nodeType":"UserDefinedTypeName","pathNode":{"id":18403,"name":"IAssetManager","nameLocations":["7101:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"7101:13:58"},"referencedDeclaration":23421,"src":"7101:13:58","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"7100:21:58"},"returnParameters":{"id":18408,"nodeType":"ParameterList","parameters":[],"src":"7140:0:58"},"scope":19681,"src":"7075:104:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[19883],"body":{"id":18446,"nodeType":"Block","src":"7696:203:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18423,"name":"earningsOrLosses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"7706:16:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":18424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7726:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7706:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18444,"nodeType":"Block","src":"7797:98:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7830:17:58","subExpression":{"id":18436,"name":"earningsOrLosses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"7831:16:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18435,"name":"_payFromPremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19040,"src":"7813:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) returns (uint256)"}},"id":18438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7813:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7852:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7813:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6f737365732063616e277420657863656564206d617844656669636974","id":18441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7855:32:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_d9febc2e3b479326be2b800bd244e6d2b8f8e42fd77d5f1d40526272a67a0efb","typeString":"literal_string \"Losses can't exceed maxDeficit\""},"value":"Losses can't exceed maxDeficit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d9febc2e3b479326be2b800bd244e6d2b8f8e42fd77d5f1d40526272a67a0efb","typeString":"literal_string \"Losses can't exceed maxDeficit\""}],"id":18434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7805:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7805:83:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18443,"nodeType":"ExpressionStatement","src":"7805:83:58"}]},"id":18445,"nodeType":"IfStatement","src":"7702:193:58","trueBody":{"id":18433,"nodeType":"Block","src":"7729:62:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":18429,"name":"earningsOrLosses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"7766:16:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7758:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18427,"name":"uint256","nodeType":"ElementaryTypeName","src":"7758:7:58","typeDescriptions":{}}},"id":18430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7758:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18426,"name":"_storePurePremiumWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19054,"src":"7737:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":18431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7737:47:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18432,"nodeType":"ExpressionStatement","src":"7737:47:58"}]}}]},"documentation":{"id":18417,"nodeType":"StructuredDocumentation","src":"7183:443:58","text":" @dev This is called by the {Reserve} base class to record the earnings generated by the asset management.\n @param earningsOrLosses Indicates the amount earned since last time earnings where recorded.\n - If positive, repays the loans and accumulates the rest in the surplus.\n - If negative (losses) substracts it from surplus. It never can exceed _maxDeficit and doesn't takes\n   loans to cover asset losses."},"id":18447,"implemented":true,"kind":"function","modifiers":[],"name":"_assetEarnings","nameLocation":"7638:14:58","nodeType":"FunctionDefinition","overrides":{"id":18421,"nodeType":"OverrideSpecifier","overrides":[],"src":"7687:8:58"},"parameters":{"id":18420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18419,"mutability":"mutable","name":"earningsOrLosses","nameLocation":"7660:16:58","nodeType":"VariableDeclaration","scope":18447,"src":"7653:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18418,"name":"int256","nodeType":"ElementaryTypeName","src":"7653:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7652:25:58"},"returnParameters":{"id":18422,"nodeType":"ParameterList","parameters":[],"src":"7696:0:58"},"scope":19681,"src":"7629:270:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[18060],"body":{"id":18464,"nodeType":"Block","src":"7957:147:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":18455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18452,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"7978:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7986:12:58","memberName":"deficitRatio","nodeType":"MemberAccess","referencedDeclaration":18182,"src":"7978:20:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18454,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18165,"src":"8002:15:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7978:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":18459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18456,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"8021:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8029:12:58","memberName":"deficitRatio","nodeType":"MemberAccess","referencedDeclaration":18182,"src":"8021:20:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":18458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8045:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8021:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7978:68:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a2064656669636974526174696f206d757374206265203c3d2031","id":18461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8054:39:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a00a823022fd2dc99b7021ea998105a0aa4e34f3bb6534c0f1bbb341b534786","typeString":"literal_string \"Validation: deficitRatio must be <= 1\""},"value":"Validation: deficitRatio must be <= 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a00a823022fd2dc99b7021ea998105a0aa4e34f3bb6534c0f1bbb341b534786","typeString":"literal_string \"Validation: deficitRatio must be <= 1\""}],"id":18451,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7963:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7963:136:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18463,"nodeType":"ExpressionStatement","src":"7963:136:58"}]},"id":18465,"implemented":true,"kind":"function","modifiers":[],"name":"_validateParameters","nameLocation":"7912:19:58","nodeType":"FunctionDefinition","overrides":{"id":18449,"nodeType":"OverrideSpecifier","overrides":[],"src":"7948:8:58"},"parameters":{"id":18448,"nodeType":"ParameterList","parameters":[],"src":"7931:2:58"},"returnParameters":{"id":18450,"nodeType":"ParameterList","parameters":[],"src":"7957:0:58"},"scope":19681,"src":"7903:201:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[23885],"body":{"id":18481,"nodeType":"Block","src":"8173:65:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18475,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"8201:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8194:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18473,"name":"int256","nodeType":"ElementaryTypeName","src":"8194:6:58","typeDescriptions":{}}},"id":18476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8194:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18477,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"8224:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8194:38:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8186:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18471,"name":"uint256","nodeType":"ElementaryTypeName","src":"8186:7:58","typeDescriptions":{}}},"id":18479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8186:47:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18470,"id":18480,"nodeType":"Return","src":"8179:54:58"}]},"functionSelector":"26ccbd22","id":18482,"implemented":true,"kind":"function","modifiers":[],"name":"purePremiums","nameLocation":"8117:12:58","nodeType":"FunctionDefinition","overrides":{"id":18467,"nodeType":"OverrideSpecifier","overrides":[],"src":"8146:8:58"},"parameters":{"id":18466,"nodeType":"ParameterList","parameters":[],"src":"8129:2:58"},"returnParameters":{"id":18470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18482,"src":"8164:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18468,"name":"uint256","nodeType":"ElementaryTypeName","src":"8164:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8163:9:58"},"scope":19681,"src":"8108:130:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18490,"nodeType":"Block","src":"8468:37:58","statements":[{"expression":{"id":18488,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"8481:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18487,"id":18489,"nodeType":"Return","src":"8474:26:58"}]},"documentation":{"id":18483,"nodeType":"StructuredDocumentation","src":"8242:161:58","text":" @dev Returns the total amount of pure premiums that were collected by the active policies of the risk modules\n linked to this PremiumsAccount."},"functionSelector":"1a548a27","id":18491,"implemented":true,"kind":"function","modifiers":[],"name":"activePurePremiums","nameLocation":"8415:18:58","nodeType":"FunctionDefinition","parameters":{"id":18484,"nodeType":"ParameterList","parameters":[],"src":"8433:2:58"},"returnParameters":{"id":18487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18491,"src":"8459:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18485,"name":"uint256","nodeType":"ElementaryTypeName","src":"8459:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8458:9:58"},"scope":19681,"src":"8406:99:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18507,"nodeType":"Block","src":"8718:55:58","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18497,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"8731:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":18498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8743:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8731:13:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":18504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8767:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":18505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8731:37:58","trueExpression":{"arguments":[{"id":18502,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"8755:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8747:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18500,"name":"uint256","nodeType":"ElementaryTypeName","src":"8747:7:58","typeDescriptions":{}}},"id":18503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8747:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18496,"id":18506,"nodeType":"Return","src":"8724:44:58"}]},"documentation":{"id":18492,"nodeType":"StructuredDocumentation","src":"8509:147:58","text":" @dev Returns the surplus between pure premiums collected and payouts of finalized policies. Returns 0 if no surplus\n or deficit."},"functionSelector":"536c9a43","id":18508,"implemented":true,"kind":"function","modifiers":[],"name":"wonPurePremiums","nameLocation":"8668:15:58","nodeType":"FunctionDefinition","parameters":{"id":18493,"nodeType":"ParameterList","parameters":[],"src":"8683:2:58"},"returnParameters":{"id":18496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18508,"src":"8709:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18494,"name":"uint256","nodeType":"ElementaryTypeName","src":"8709:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8708:9:58"},"scope":19681,"src":"8659:114:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18525,"nodeType":"Block","src":"9035:56:58","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18514,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"9048:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":18515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9060:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9048:13:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":18521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"9076:9:58","subExpression":{"id":18520,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"9077:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9068:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18518,"name":"uint256","nodeType":"ElementaryTypeName","src":"9068:7:58","typeDescriptions":{}}},"id":18522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9048:38:58","trueExpression":{"hexValue":"30","id":18517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18513,"id":18524,"nodeType":"Return","src":"9041:45:58"}]},"documentation":{"id":18509,"nodeType":"StructuredDocumentation","src":"8777:195:58","text":" @dev Returns the amount of active pure premiums that was used to cover payouts of finalized policies (in excess of\n collected pure premiums). This is limited by `_maxDeficit()`"},"functionSelector":"e823584a","id":18526,"implemented":true,"kind":"function","modifiers":[],"name":"borrowedActivePP","nameLocation":"8984:16:58","nodeType":"FunctionDefinition","parameters":{"id":18510,"nodeType":"ParameterList","parameters":[],"src":"9000:2:58"},"returnParameters":{"id":18513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18526,"src":"9026:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18511,"name":"uint256","nodeType":"ElementaryTypeName","src":"9026:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9025:9:58"},"scope":19681,"src":"8975:116:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18534,"nodeType":"Block","src":"9430:26:58","statements":[{"expression":{"id":18532,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"9443:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":18531,"id":18533,"nodeType":"Return","src":"9436:15:58"}]},"documentation":{"id":18527,"nodeType":"StructuredDocumentation","src":"9095:282:58","text":" @dev Returns the surplus between pure premiums collected and payouts of finalized policies. Losses where more than\n premiums collected, returns a negative number that indicates the amount of the active pure premiums that was used\n to cover finalized premiums."},"functionSelector":"13888565","id":18535,"implemented":true,"kind":"function","modifiers":[],"name":"surplus","nameLocation":"9389:7:58","nodeType":"FunctionDefinition","parameters":{"id":18528,"nodeType":"ParameterList","parameters":[],"src":"9396:2:58"},"returnParameters":{"id":18531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18535,"src":"9422:6:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18529,"name":"int256","nodeType":"ElementaryTypeName","src":"9422:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9421:8:58"},"scope":19681,"src":"9380:76:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18551,"nodeType":"Block","src":"9615:180:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18543,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"9751:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18545,"name":"deficitRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18645,"src":"9774:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":18546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18544,"name":"_maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"9762:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256) view returns (int256)"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9762:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9751:38:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9743:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18541,"name":"uint256","nodeType":"ElementaryTypeName","src":"9743:7:58","typeDescriptions":{}}},"id":18549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:47:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18540,"id":18550,"nodeType":"Return","src":"9736:54:58"}]},"documentation":{"id":18536,"nodeType":"StructuredDocumentation","src":"9460:96:58","text":" @dev Returns the amount of funds available to cover losses or repay eToken loans."},"functionSelector":"4fe0bd1e","id":18552,"implemented":true,"kind":"function","modifiers":[],"name":"fundsAvailable","nameLocation":"9568:14:58","nodeType":"FunctionDefinition","parameters":{"id":18537,"nodeType":"ParameterList","parameters":[],"src":"9582:2:58"},"returnParameters":{"id":18540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18552,"src":"9606:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18538,"name":"uint256","nodeType":"ElementaryTypeName","src":"9606:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9605:9:58"},"scope":19681,"src":"9559:236:58","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23872],"body":{"id":18561,"nodeType":"Block","src":"9861:28:58","statements":[{"expression":{"id":18559,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"9874:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"functionReturnParameters":18558,"id":18560,"nodeType":"Return","src":"9867:17:58"}]},"functionSelector":"7b83037b","id":18562,"implemented":true,"kind":"function","modifiers":[],"name":"seniorEtk","nameLocation":"9808:9:58","nodeType":"FunctionDefinition","overrides":{"id":18554,"nodeType":"OverrideSpecifier","overrides":[],"src":"9834:8:58"},"parameters":{"id":18553,"nodeType":"ParameterList","parameters":[],"src":"9817:2:58"},"returnParameters":{"id":18558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18562,"src":"9852:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18556,"nodeType":"UserDefinedTypeName","pathNode":{"id":18555,"name":"IEToken","nameLocations":["9852:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"9852:7:58"},"referencedDeclaration":23549,"src":"9852:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"9851:9:58"},"scope":19681,"src":"9799:90:58","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23879],"body":{"id":18571,"nodeType":"Block","src":"9955:28:58","statements":[{"expression":{"id":18569,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"9968:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"functionReturnParameters":18568,"id":18570,"nodeType":"Return","src":"9961:17:58"}]},"functionSelector":"536ebbfc","id":18572,"implemented":true,"kind":"function","modifiers":[],"name":"juniorEtk","nameLocation":"9902:9:58","nodeType":"FunctionDefinition","overrides":{"id":18564,"nodeType":"OverrideSpecifier","overrides":[],"src":"9928:8:58"},"parameters":{"id":18563,"nodeType":"ParameterList","parameters":[],"src":"9911:2:58"},"returnParameters":{"id":18568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18572,"src":"9946:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":18566,"nodeType":"UserDefinedTypeName","pathNode":{"id":18565,"name":"IEToken","nameLocations":["9946:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"9946:7:58"},"referencedDeclaration":23549,"src":"9946:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"9945:9:58"},"scope":19681,"src":"9893:90:58","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18589,"nodeType":"Block","src":"10944:60:58","statements":[{"expression":{"id":18587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"10957:42:58","subExpression":{"arguments":[{"arguments":[{"id":18584,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18575,"src":"10992:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18582,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"10965:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10985:6:58","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":23186,"src":"10965:26:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10965:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10958:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18580,"name":"int256","nodeType":"ElementaryTypeName","src":"10958:6:58","typeDescriptions":{}}},"id":18586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10958:41:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":18579,"id":18588,"nodeType":"Return","src":"10950:49:58"}]},"documentation":{"id":18573,"nodeType":"StructuredDocumentation","src":"9987:887:58","text":" @dev Returns the maximum deficit that's supported by the PremiumsAccount. If more money is needed, it must take\n loans from the eTokens. The value is calculated as a fraction of the active pure premiums. The fraction is\n regulated by the `deficitRatio` parameter that indicates the percentage of the active pure premiums that can be\n used to cover payouts of finalized policies. In many cases is fine to use the active pure premiums to cover the\n losses because in most cases the policies with payout are triggered long time before the policies without payout.\n But this also can be dangerous because it can be postponing the losses that should impact on liquidity providers.\n @param ratio The ratio used in the calculation of the deficit. It's the deficitRatio parameter (whether the current\n one or the new one when it's being modified)."},"id":18590,"implemented":true,"kind":"function","modifiers":[],"name":"_maxDeficit","nameLocation":"10886:11:58","nodeType":"FunctionDefinition","parameters":{"id":18576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18575,"mutability":"mutable","name":"ratio","nameLocation":"10906:5:58","nodeType":"VariableDeclaration","scope":18590,"src":"10898:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18574,"name":"uint256","nodeType":"ElementaryTypeName","src":"10898:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10897:15:58"},"returnParameters":{"id":18579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18590,"src":"10936:6:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18577,"name":"int256","nodeType":"ElementaryTypeName","src":"10936:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10935:8:58"},"scope":19681,"src":"10877:127:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18609,"nodeType":"Block","src":"11073:99:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18599,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18592,"src":"11131:5:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":18598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11123:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18597,"name":"uint256","nodeType":"ElementaryTypeName","src":"11123:7:58","typeDescriptions":{}}},"id":18600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":18601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11140:2:58","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18602,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"11146:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":18603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11146:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":18604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11157:8:58","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"11146:19:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":18605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11146:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11140:27:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11123:44:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18596,"id":18608,"nodeType":"Return","src":"11116:51:58"}]},"id":18610,"implemented":true,"kind":"function","modifiers":[],"name":"_toAmount","nameLocation":"11017:9:58","nodeType":"FunctionDefinition","parameters":{"id":18593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18592,"mutability":"mutable","name":"value","nameLocation":"11034:5:58","nodeType":"VariableDeclaration","scope":18610,"src":"11027:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18591,"name":"uint32","nodeType":"ElementaryTypeName","src":"11027:6:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"11026:14:58"},"returnParameters":{"id":18596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18610,"src":"11064:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18594,"name":"uint256","nodeType":"ElementaryTypeName","src":"11064:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11063:9:58"},"scope":19681,"src":"11008:164:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18629,"nodeType":"Block","src":"11248:111:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18612,"src":"11306:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":18618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11315:2:58","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18619,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"11321:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":18620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11321:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":18621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11332:8:58","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"11321:19:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":18622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11321:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11315:27:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11306:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11305:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11344:8:58","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":9452,"src":"11305:47:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint32)"}},"id":18627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11305:49:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":18616,"id":18628,"nodeType":"Return","src":"11298:56:58"}]},"id":18630,"implemented":true,"kind":"function","modifiers":[],"name":"_toZeroDecimals","nameLocation":"11185:15:58","nodeType":"FunctionDefinition","parameters":{"id":18613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18612,"mutability":"mutable","name":"amount","nameLocation":"11209:6:58","nodeType":"VariableDeclaration","scope":18630,"src":"11201:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18611,"name":"uint256","nodeType":"ElementaryTypeName","src":"11201:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11200:16:58"},"returnParameters":{"id":18616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18630,"src":"11240:6:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18614,"name":"uint32","nodeType":"ElementaryTypeName","src":"11240:6:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"11239:8:58"},"scope":19681,"src":"11176:183:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18644,"nodeType":"Block","src":"11546:89:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":18638,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"11567:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11575:12:58","memberName":"deficitRatio","nodeType":"MemberAccess","referencedDeclaration":18182,"src":"11567:20:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":18637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11559:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18636,"name":"uint256","nodeType":"ElementaryTypeName","src":"11559:7:58","typeDescriptions":{}}},"id":18640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11559:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18641,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18162,"src":"11591:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11559:51:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18635,"id":18643,"nodeType":"Return","src":"11552:58:58"}]},"documentation":{"id":18631,"nodeType":"StructuredDocumentation","src":"11363:126:58","text":" @dev Returns the percentage of the active pure premiums that can be used to cover losses of finalized policies."},"functionSelector":"4863c8b0","id":18645,"implemented":true,"kind":"function","modifiers":[],"name":"deficitRatio","nameLocation":"11501:12:58","nodeType":"FunctionDefinition","parameters":{"id":18632,"nodeType":"ParameterList","parameters":[],"src":"11513:2:58"},"returnParameters":{"id":18635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18645,"src":"11537:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18633,"name":"uint256","nodeType":"ElementaryTypeName","src":"11537:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11536:9:58"},"scope":19681,"src":"11492:143:58","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18666,"nodeType":"Block","src":"11798:95:58","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":18654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18651,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"11811:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11819:11:58","memberName":"jrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18187,"src":"11811:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11834:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11811:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":18661,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"11868:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11876:11:58","memberName":"jrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18187,"src":"11868:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":18660,"name":"_toAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"11858:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint32) view returns (uint256)"}},"id":18663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11858:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11811:77:58","trueExpression":{"expression":{"arguments":[{"id":18657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11843:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18656,"name":"uint256","nodeType":"ElementaryTypeName","src":"11843:7:58","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":18655,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11838:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11838:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":18659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11852:3:58","memberName":"max","nodeType":"MemberAccess","src":"11838:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18650,"id":18665,"nodeType":"Return","src":"11804:84:58"}]},"documentation":{"id":18646,"nodeType":"StructuredDocumentation","src":"11639:103:58","text":" @dev Returns the limit on the Junior eToken loans (infinite if _params.jrLoanLimit == 0)"},"functionSelector":"2d8f892a","id":18667,"implemented":true,"kind":"function","modifiers":[],"name":"jrLoanLimit","nameLocation":"11754:11:58","nodeType":"FunctionDefinition","parameters":{"id":18647,"nodeType":"ParameterList","parameters":[],"src":"11765:2:58"},"returnParameters":{"id":18650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18667,"src":"11789:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18648,"name":"uint256","nodeType":"ElementaryTypeName","src":"11789:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11788:9:58"},"scope":19681,"src":"11745:148:58","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18688,"nodeType":"Block","src":"12056:95:58","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":18676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18673,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"12069:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12077:11:58","memberName":"srLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18189,"src":"12069:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12092:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12069:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":18683,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"12126:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12134:11:58","memberName":"srLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18189,"src":"12126:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":18682,"name":"_toAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"12116:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint32) view returns (uint256)"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12116:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12069:77:58","trueExpression":{"expression":{"arguments":[{"id":18679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12101:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18678,"name":"uint256","nodeType":"ElementaryTypeName","src":"12101:7:58","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":18677,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12096:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12096:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":18681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12110:3:58","memberName":"max","nodeType":"MemberAccess","src":"12096:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18672,"id":18687,"nodeType":"Return","src":"12062:84:58"}]},"documentation":{"id":18668,"nodeType":"StructuredDocumentation","src":"11897:103:58","text":" @dev Returns the limit on the Senior eToken loans (infinite if _params.srLoanLimit == 0)"},"functionSelector":"7bb62319","id":18689,"implemented":true,"kind":"function","modifiers":[],"name":"srLoanLimit","nameLocation":"12012:11:58","nodeType":"FunctionDefinition","parameters":{"id":18669,"nodeType":"ParameterList","parameters":[],"src":"12023:2:58"},"returnParameters":{"id":18672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18689,"src":"12047:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18670,"name":"uint256","nodeType":"ElementaryTypeName","src":"12047:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12046:9:58"},"scope":19681,"src":"12003:148:58","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18801,"nodeType":"Block","src":"12853:857:58","statements":[{"assignments":[18701],"declarations":[{"constant":false,"id":18701,"mutability":"mutable","name":"truncatedRatio","nameLocation":"12866:14:58","nodeType":"VariableDeclaration","scope":18801,"src":"12859:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":18700,"name":"uint16","nodeType":"ElementaryTypeName","src":"12859:6:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":18708,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18702,"name":"newRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"12884:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":18703,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18162,"src":"12895:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12884:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18705,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12883:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12916:8:58","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9502,"src":"12883:41:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":18707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12883:43:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"12859:67:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18712,"name":"truncatedRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18701,"src":"12948:14:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":18711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12940:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18710,"name":"uint256","nodeType":"ElementaryTypeName","src":"12940:7:58","typeDescriptions":{}}},"id":18713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12940:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18714,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18162,"src":"12966:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12940:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18716,"name":"newRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"12989:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12940:57:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206f6e6c7920757020746f203420646563696d616c7320616c6c6f776564","id":18718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12999:43:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_beb1a2cdae0d6b157b904c90c0fabe52f538ee148f0a030c572031892eca9034","typeString":"literal_string \"Validation: only up to 4 decimals allowed\""},"value":"Validation: only up to 4 decimals allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_beb1a2cdae0d6b157b904c90c0fabe52f538ee148f0a030c572031892eca9034","typeString":"literal_string \"Validation: only up to 4 decimals allowed\""}],"id":18709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12932:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12932:111:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18720,"nodeType":"ExpressionStatement","src":"12932:111:58"},{"assignments":[18722],"declarations":[{"constant":false,"id":18722,"mutability":"mutable","name":"maxDeficit","nameLocation":"13057:10:58","nodeType":"VariableDeclaration","scope":18801,"src":"13050:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18721,"name":"int256","nodeType":"ElementaryTypeName","src":"13050:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":18726,"initialValue":{"arguments":[{"id":18724,"name":"newRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"13082:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18723,"name":"_maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"13070:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256) view returns (int256)"}},"id":18725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13070:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13050:41:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18728,"name":"adjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18694,"src":"13105:10:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18729,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"13119:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18730,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"13131:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13119:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13105:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20737572706c7573206d757374206265203e3d206d617844656669636974","id":18733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13143:43:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_48dfafddd549e64c761b83ac8b5580b6b870825350af14c44e86b9dab59e527b","typeString":"literal_string \"Validation: surplus must be >= maxDeficit\""},"value":"Validation: surplus must be >= maxDeficit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_48dfafddd549e64c761b83ac8b5580b6b870825350af14c44e86b9dab59e527b","typeString":"literal_string \"Validation: surplus must be >= maxDeficit\""}],"id":18727,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13097:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13097:90:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18735,"nodeType":"ExpressionStatement","src":"13097:90:58"},{"expression":{"id":18740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18736,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"13193:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13201:12:58","memberName":"deficitRatio","nodeType":"MemberAccess","referencedDeclaration":18182,"src":"13193:20:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18739,"name":"truncatedRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18701,"src":"13216:14:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"13193:37:58","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":18741,"nodeType":"ExpressionStatement","src":"13193:37:58"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18742,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[18465],"referencedDeclaration":18465,"src":"13236:19:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":18743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13236:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18744,"nodeType":"ExpressionStatement","src":"13236:21:58"},{"assignments":[18749],"declarations":[{"constant":false,"id":18749,"mutability":"mutable","name":"action","nameLocation":"13297:6:58","nodeType":"VariableDeclaration","scope":18801,"src":"13264:39:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":18748,"nodeType":"UserDefinedTypeName","pathNode":{"id":18747,"name":"IAccessManager.GovernanceActions","nameLocations":["13264:14:58","13279:17:58"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"13264:32:58"},"referencedDeclaration":23301,"src":"13264:32:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"}],"id":18753,"initialValue":{"expression":{"expression":{"id":18750,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"13306:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":18751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13321:17:58","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"13306:32:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":18752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13339:15:58","memberName":"setDeficitRatio","nodeType":"MemberAccess","referencedDeclaration":23287,"src":"13306:48:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"nodeType":"VariableDeclarationStatement","src":"13264:90:58"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18754,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"13364:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18755,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"13375:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13364:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18795,"nodeType":"IfStatement","src":"13360:305:58","trueBody":{"id":18794,"nodeType":"Block","src":"13387:278:58","statements":[{"assignments":[18758],"declarations":[{"constant":false,"id":18758,"mutability":"mutable","name":"borrow","nameLocation":"13430:6:58","nodeType":"VariableDeclaration","scope":18794,"src":"13422:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18757,"name":"uint256","nodeType":"ElementaryTypeName","src":"13422:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18766,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13447:9:58","subExpression":{"id":18761,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"13448:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18763,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"13459:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13447:22:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13439:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18759,"name":"uint256","nodeType":"ElementaryTypeName","src":"13439:7:58","typeDescriptions":{}}},"id":18765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:31:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13422:48:58"},{"expression":{"id":18769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18767,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"13478:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18768,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"13489:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13478:21:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":18770,"nodeType":"ExpressionStatement","src":"13478:21:58"},{"expression":{"arguments":[{"id":18772,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18758,"src":"13522:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":18775,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13538:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13530:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18773,"name":"address","nodeType":"ElementaryTypeName","src":"13530:7:58","typeDescriptions":{}}},"id":18776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13530:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18779,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"13553:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":18778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13545:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18777,"name":"address","nodeType":"ElementaryTypeName","src":"13545:7:58","typeDescriptions":{}}},"id":18780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13545:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13576:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13568:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18781,"name":"address","nodeType":"ElementaryTypeName","src":"13568:7:58","typeDescriptions":{}}},"id":18784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13568:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13545:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18771,"name":"_borrowFromEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18995,"src":"13507:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (uint256,address,bool)"}},"id":18786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13507:72:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18787,"nodeType":"ExpressionStatement","src":"13507:72:58"},{"expression":{"id":18792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18788,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18749,"src":"13587:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":18789,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"13596:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":18790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13611:17:58","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"13596:32:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":18791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13629:29:58","memberName":"setDeficitRatioWithAdjustment","nodeType":"MemberAccess","referencedDeclaration":23288,"src":"13596:62:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"src":"13587:71:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"id":18793,"nodeType":"ExpressionStatement","src":"13587:71:58"}]}},{"expression":{"arguments":[{"id":18797,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18749,"src":"13688:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":18798,"name":"newRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"13696:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18796,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"13670:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13670:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18800,"nodeType":"ExpressionStatement","src":"13670:35:58"}]},"documentation":{"id":18690,"nodeType":"StructuredDocumentation","src":"12155:587:58","text":" @dev Changes the `deficitRatio` parameter.\n Requirements:\n - onlyGlobalOrComponentRole(LEVEL2_ROLE)\n Events:\n - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\n @param adjustment If true and the new ratio leaves `_surplus < -_maxDeficit()`, it adjusts the _surplus to the new\n                   `_maxDeficit()` and borrows the difference from the eTokens.\n                   If false and the new ratio leaves `_surplus < -_maxDeficit()`, the operation is reverted."},"functionSelector":"50093f04","id":18802,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":18697,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"12840:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18698,"kind":"modifierInvocation","modifierName":{"id":18696,"name":"onlyGlobalOrComponentRole","nameLocations":["12814:25:58"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"12814:25:58"},"nodeType":"ModifierInvocation","src":"12814:38:58"}],"name":"setDeficitRatio","nameLocation":"12754:15:58","nodeType":"FunctionDefinition","parameters":{"id":18695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18692,"mutability":"mutable","name":"newRatio","nameLocation":"12778:8:58","nodeType":"VariableDeclaration","scope":18802,"src":"12770:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18691,"name":"uint256","nodeType":"ElementaryTypeName","src":"12770:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18694,"mutability":"mutable","name":"adjustment","nameLocation":"12793:10:58","nodeType":"VariableDeclaration","scope":18802,"src":"12788:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18693,"name":"bool","nodeType":"ElementaryTypeName","src":"12788:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12769:35:58"},"returnParameters":{"id":18699,"nodeType":"ParameterList","parameters":[],"src":"12853:0:58"},"scope":19681,"src":"12745:965:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18881,"nodeType":"Block","src":"14520:581:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18813,"name":"newLimitJr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"14530:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":18816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14549:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18815,"name":"uint256","nodeType":"ElementaryTypeName","src":"14549:7:58","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":18814,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14544:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14544:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":18818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14558:3:58","memberName":"max","nodeType":"MemberAccess","src":"14544:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14530:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18846,"nodeType":"IfStatement","src":"14526:283:58","trueBody":{"id":18845,"nodeType":"Block","src":"14563:246:58","statements":[{"expression":{"id":18826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18820,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"14571:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14579:11:58","memberName":"jrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18187,"src":"14571:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18824,"name":"newLimitJr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"14609:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18823,"name":"_toZeroDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18630,"src":"14593:15:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) view returns (uint32)"}},"id":18825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14593:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"14571:49:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":18827,"nodeType":"ExpressionStatement","src":"14571:49:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":18830,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"14646:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14654:11:58","memberName":"jrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18187,"src":"14646:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":18829,"name":"_toAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"14636:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint32) view returns (uint256)"}},"id":18832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14636:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18833,"name":"newLimitJr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"14670:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14636:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564","id":18835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14682:33:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d","typeString":"literal_string \"Validation: no decimals allowed\""},"value":"Validation: no decimals allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d","typeString":"literal_string \"Validation: no decimals allowed\""}],"id":18828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14628:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14628:88:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18837,"nodeType":"ExpressionStatement","src":"14628:88:58"},{"expression":{"arguments":[{"expression":{"expression":{"id":18839,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"14742:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14757:17:58","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"14742:32:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":18841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14775:14:58","memberName":"setJrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":23289,"src":"14742:47:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":18842,"name":"newLimitJr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"14791:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18838,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"14724:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":18843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14724:78:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18844,"nodeType":"ExpressionStatement","src":"14724:78:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18847,"name":"newLimitSr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"14818:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":18850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14837:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18849,"name":"uint256","nodeType":"ElementaryTypeName","src":"14837:7:58","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":18848,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14832:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14832:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":18852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14846:3:58","memberName":"max","nodeType":"MemberAccess","src":"14832:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14818:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18880,"nodeType":"IfStatement","src":"14814:283:58","trueBody":{"id":18879,"nodeType":"Block","src":"14851:246:58","statements":[{"expression":{"id":18860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18854,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"14859:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14867:11:58","memberName":"srLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18189,"src":"14859:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18858,"name":"newLimitSr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"14897:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18857,"name":"_toZeroDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18630,"src":"14881:15:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) view returns (uint32)"}},"id":18859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14881:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"14859:49:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":18861,"nodeType":"ExpressionStatement","src":"14859:49:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":18864,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18193,"src":"14934:7:58","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$18190_storage","typeString":"struct PremiumsAccount.PackedParams storage ref"}},"id":18865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14942:11:58","memberName":"srLoanLimit","nodeType":"MemberAccess","referencedDeclaration":18189,"src":"14934:19:58","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":18863,"name":"_toAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"14924:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint32) view returns (uint256)"}},"id":18866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14924:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18867,"name":"newLimitSr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"14958:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14924:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564","id":18869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14970:33:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d","typeString":"literal_string \"Validation: no decimals allowed\""},"value":"Validation: no decimals allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d","typeString":"literal_string \"Validation: no decimals allowed\""}],"id":18862,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14916:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:88:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18871,"nodeType":"ExpressionStatement","src":"14916:88:58"},{"expression":{"arguments":[{"expression":{"expression":{"id":18873,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"15030:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":18874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15045:17:58","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"15030:32:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15063:14:58","memberName":"setSrLoanLimit","nodeType":"MemberAccess","referencedDeclaration":23290,"src":"15030:47:58","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":18876,"name":"newLimitSr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"15079:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18872,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"15012:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":18877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15012:78:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18878,"nodeType":"ExpressionStatement","src":"15012:78:58"}]}}]},"documentation":{"id":18803,"nodeType":"StructuredDocumentation","src":"13714:692:58","text":" @dev Changes the `jrLoanLimit` or `srLoanLimit` parameter.\n Requirements:\n - onlyGlobalOrComponentRole(LEVEL2_ROLE)\n Events:\n - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\n @param newLimitJr     The new limit to be set for the loans taken from the Junior eToken.\nIf newLimitJr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded.\n @param newLimitSr     The new limit to be set for the loans taken from the Senior eToken.\nIf newLimitSr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded."},"functionSelector":"97a146c0","id":18882,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":18810,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"14507:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18811,"kind":"modifierInvocation","modifierName":{"id":18809,"name":"onlyGlobalOrComponentRole","nameLocations":["14481:25:58"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"14481:25:58"},"nodeType":"ModifierInvocation","src":"14481:38:58"}],"name":"setLoanLimits","nameLocation":"14418:13:58","nodeType":"FunctionDefinition","parameters":{"id":18808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18805,"mutability":"mutable","name":"newLimitJr","nameLocation":"14440:10:58","nodeType":"VariableDeclaration","scope":18882,"src":"14432:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18804,"name":"uint256","nodeType":"ElementaryTypeName","src":"14432:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18807,"mutability":"mutable","name":"newLimitSr","nameLocation":"14460:10:58","nodeType":"VariableDeclaration","scope":18882,"src":"14452:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18806,"name":"uint256","nodeType":"ElementaryTypeName","src":"14452:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14431:40:58"},"returnParameters":{"id":18812,"nodeType":"ParameterList","parameters":[],"src":"14520:0:58"},"scope":19681,"src":"14409:692:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18994,"nodeType":"Block","src":"15639:841:58","statements":[{"assignments":[18893],"declarations":[{"constant":false,"id":18893,"mutability":"mutable","name":"left","nameLocation":"15653:4:58","nodeType":"VariableDeclaration","scope":18994,"src":"15645:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18892,"name":"uint256","nodeType":"ElementaryTypeName","src":"15645:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18895,"initialValue":{"id":18894,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"15660:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15645:21:58"},{"condition":{"id":18896,"name":"jrEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"15676:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18959,"nodeType":"IfStatement","src":"15672:424:58","trueBody":{"id":18958,"nodeType":"Block","src":"15683:413:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":18901,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15722:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15714:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18899,"name":"address","nodeType":"ElementaryTypeName","src":"15714:7:58","typeDescriptions":{}}},"id":18902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15714:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18897,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"15695:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15706:7:58","memberName":"getLoan","nodeType":"MemberAccess","referencedDeclaration":23536,"src":"15695:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15695:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18904,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"15731:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15695:42:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18906,"name":"jrLoanLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"15741:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":18907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15741:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15695:59:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":18922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15860:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15852:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18920,"name":"address","nodeType":"ElementaryTypeName","src":"15852:7:58","typeDescriptions":{}}},"id":18923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15852:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18918,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"15833:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15844:7:58","memberName":"getLoan","nodeType":"MemberAccess","referencedDeclaration":23536,"src":"15833:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":18924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15833:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18925,"name":"jrLoanLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"15869:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":18926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15869:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15833:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18956,"nodeType":"IfStatement","src":"15829:261:58","trueBody":{"id":18955,"nodeType":"Block","src":"15884:206:58","statements":[{"assignments":[18929],"declarations":[{"constant":false,"id":18929,"mutability":"mutable","name":"loanExcess","nameLocation":"15926:10:58","nodeType":"VariableDeclaration","scope":18955,"src":"15918:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18928,"name":"uint256","nodeType":"ElementaryTypeName","src":"15918:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18942,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":18934,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15966:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15958:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18932,"name":"address","nodeType":"ElementaryTypeName","src":"15958:7:58","typeDescriptions":{}}},"id":18935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15958:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18930,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"15939:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15950:7:58","memberName":"getLoan","nodeType":"MemberAccess","referencedDeclaration":23536,"src":"15939:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":18936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15939:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18937,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"15975:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15939:42:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18939,"name":"jrLoanLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"15984:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":18940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15984:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15939:58:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15918:79:58"},{"expression":{"id":18953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18943,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16007:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18944,"name":"loanExcess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18929,"src":"16014:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18947,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"16051:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":18948,"name":"loanExcess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18929,"src":"16060:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16051:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18950,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18887,"src":"16072:8:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18945,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"16027:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16038:12:58","memberName":"internalLoan","nodeType":"MemberAccess","referencedDeclaration":23520,"src":"16027:23:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":18951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16027:54:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16014:67:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16007:74:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18954,"nodeType":"ExpressionStatement","src":"16007:74:58"}]}},"id":18957,"nodeType":"IfStatement","src":"15691:399:58","trueBody":{"id":18917,"nodeType":"Block","src":"15756:67:58","statements":[{"expression":{"id":18915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18909,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"15766:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18912,"name":"borrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"15797:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18913,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18887,"src":"15805:8:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18910,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"15773:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15784:12:58","memberName":"internalLoan","nodeType":"MemberAccess","referencedDeclaration":23520,"src":"15773:23:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":18914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15773:41:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15766:48:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18916,"nodeType":"ExpressionStatement","src":"15766:48:58"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18960,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16105:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":18961,"name":"NEGLIGIBLE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19710,"src":"16112:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16105:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18993,"nodeType":"IfStatement","src":"16101:375:58","trueBody":{"id":18992,"nodeType":"Block","src":"16131:345:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":18967,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16214:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":18966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16206:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18965,"name":"address","nodeType":"ElementaryTypeName","src":"16206:7:58","typeDescriptions":{}}},"id":18968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16206:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18963,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"16187:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16198:7:58","memberName":"getLoan","nodeType":"MemberAccess","referencedDeclaration":23536,"src":"16187:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":18969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16187:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18970,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16223:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16187:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18972,"name":"srLoanLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"16230:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":18973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16230:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16187:56:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18984,"nodeType":"IfStatement","src":"16183:127:58","trueBody":{"id":18983,"nodeType":"Block","src":"16245:65:58","statements":[{"expression":{"id":18981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18975,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16255:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18978,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16286:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18979,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18887,"src":"16292:8:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18976,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"16262:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":18977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16273:12:58","memberName":"internalLoan","nodeType":"MemberAccess","referencedDeclaration":23520,"src":"16262:23:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":18980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16262:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16255:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18982,"nodeType":"ExpressionStatement","src":"16255:46:58"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18986,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"16391:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":18987,"name":"NEGLIGIBLE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19710,"src":"16399:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16391:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"446f6e2774206b6e6f7720776865726520746f20736f75726365207468652072657374206f6620746865206d6f6e6579","id":18989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16418:50:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d1a4de2b1a192a07e8c03dbae7805a4a293287ee451ffc5c57af97d34258cdc","typeString":"literal_string \"Don't know where to source the rest of the money\""},"value":"Don't know where to source the rest of the money"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d1a4de2b1a192a07e8c03dbae7805a4a293287ee451ffc5c57af97d34258cdc","typeString":"literal_string \"Don't know where to source the rest of the money\""}],"id":18985,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16383:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16383:86:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18991,"nodeType":"ExpressionStatement","src":"16383:86:58"}]}}]},"documentation":{"id":18883,"nodeType":"StructuredDocumentation","src":"15105:452:58","text":" @dev Internal function called when money in the PremiumsAccount is not enough and we need to borrow from the\n eTokens.\n @param borrow The amount to borrow.\n @param receiver The address that will receive the money of the loan. Usually is the policy holder if this is called\n                 in the context of a policy payout.\n @param jrEtk If true it indicates that the loan is asked first from the junior eToken."},"id":18995,"implemented":true,"kind":"function","modifiers":[],"name":"_borrowFromEtk","nameLocation":"15569:14:58","nodeType":"FunctionDefinition","parameters":{"id":18890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18885,"mutability":"mutable","name":"borrow","nameLocation":"15592:6:58","nodeType":"VariableDeclaration","scope":18995,"src":"15584:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18884,"name":"uint256","nodeType":"ElementaryTypeName","src":"15584:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18887,"mutability":"mutable","name":"receiver","nameLocation":"15608:8:58","nodeType":"VariableDeclaration","scope":18995,"src":"15600:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18886,"name":"address","nodeType":"ElementaryTypeName","src":"15600:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18889,"mutability":"mutable","name":"jrEtk","nameLocation":"15623:5:58","nodeType":"VariableDeclaration","scope":18995,"src":"15618:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18888,"name":"bool","nodeType":"ElementaryTypeName","src":"15618:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15583:46:58"},"returnParameters":{"id":18891,"nodeType":"ParameterList","parameters":[],"src":"15639:0:58"},"scope":19681,"src":"15560:920:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19039,"nodeType":"Block","src":"16885:260:58","statements":[{"assignments":[19004],"declarations":[{"constant":false,"id":19004,"mutability":"mutable","name":"newSurplus","nameLocation":"16898:10:58","nodeType":"VariableDeclaration","scope":19039,"src":"16891:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19003,"name":"int256","nodeType":"ElementaryTypeName","src":"16891:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":19008,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19005,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"16911:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":19006,"name":"toPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18998,"src":"16922:5:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"16911:16:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"16891:36:58"},{"assignments":[19010],"declarations":[{"constant":false,"id":19010,"mutability":"mutable","name":"maxDeficit","nameLocation":"16940:10:58","nodeType":"VariableDeclaration","scope":19039,"src":"16933:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19009,"name":"int256","nodeType":"ElementaryTypeName","src":"16933:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":19015,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":19012,"name":"deficitRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18645,"src":"16965:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16965:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19011,"name":"_maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"16953:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256) view returns (int256)"}},"id":19014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16953:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"16933:47:58"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19016,"name":"newSurplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19004,"src":"16990:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":19017,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19010,"src":"17004:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"16990:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19026,"nodeType":"IfStatement","src":"16986:82:58","trueBody":{"id":19025,"nodeType":"Block","src":"17016:52:58","statements":[{"expression":{"id":19021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19019,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"17024:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19020,"name":"newSurplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19004,"src":"17035:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17024:21:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":19022,"nodeType":"ExpressionStatement","src":"17024:21:58"},{"expression":{"hexValue":"30","id":19023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17060:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":19002,"id":19024,"nodeType":"Return","src":"17053:8:58"}]}},{"expression":{"id":19029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19027,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"17073:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19028,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19010,"src":"17084:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17073:21:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":19030,"nodeType":"ExpressionStatement","src":"17073:21:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17115:11:58","subExpression":{"id":19033,"name":"newSurplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19004,"src":"17116:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19035,"name":"maxDeficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19010,"src":"17129:10:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17115:24:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17107:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19031,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:58","typeDescriptions":{}}},"id":19037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17107:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19002,"id":19038,"nodeType":"Return","src":"17100:40:58"}]},"documentation":{"id":18996,"nodeType":"StructuredDocumentation","src":"16484:331:58","text":" @dev Updates the `_surplus` field with the payment made. Since the _surplus can never exceed `_maxDeficit()`,\n returns the remaining amount in case something can't be paid from the PremiumsAccount.\n @param toPay The amount to pay.\n @return The amount that couldn't be paid from the premiums account."},"id":19040,"implemented":true,"kind":"function","modifiers":[],"name":"_payFromPremiums","nameLocation":"16827:16:58","nodeType":"FunctionDefinition","parameters":{"id":18999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18998,"mutability":"mutable","name":"toPay","nameLocation":"16851:5:58","nodeType":"VariableDeclaration","scope":19040,"src":"16844:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18997,"name":"int256","nodeType":"ElementaryTypeName","src":"16844:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"16843:14:58"},"returnParameters":{"id":19002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19040,"src":"16876:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19000,"name":"uint256","nodeType":"ElementaryTypeName","src":"16876:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16875:9:58"},"scope":19681,"src":"16818:327:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19053,"nodeType":"Block","src":"17427:45:58","statements":[{"expression":{"id":19051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19046,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"17433:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":19049,"name":"purePremiumWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19043,"src":"17452:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17445:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19047,"name":"int256","nodeType":"ElementaryTypeName","src":"17445:6:58","typeDescriptions":{}}},"id":19050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17445:22:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17433:34:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":19052,"nodeType":"ExpressionStatement","src":"17433:34:58"}]},"documentation":{"id":19041,"nodeType":"StructuredDocumentation","src":"17149:212:58","text":" @dev Stores an earned pure premium. Adds to the surplus, increasing the surplus if it was positive or reducing the\n deficit if it was negative.\n @param purePremiumWon The amount earned"},"id":19054,"implemented":true,"kind":"function","modifiers":[],"name":"_storePurePremiumWon","nameLocation":"17373:20:58","nodeType":"FunctionDefinition","parameters":{"id":19044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19043,"mutability":"mutable","name":"purePremiumWon","nameLocation":"17402:14:58","nodeType":"VariableDeclaration","scope":19054,"src":"17394:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19042,"name":"uint256","nodeType":"ElementaryTypeName","src":"17394:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17393:24:58"},"returnParameters":{"id":19045,"nodeType":"ParameterList","parameters":[],"src":"17427:0:58"},"scope":19681,"src":"17364:108:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19081,"nodeType":"Block","src":"17958:150:58","statements":[{"expression":{"arguments":[{"id":19061,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"17985:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19060,"name":"_storePurePremiumWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19054,"src":"17964:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17964:28:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19063,"nodeType":"ExpressionStatement","src":"17964:28:58"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":19067,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"18026:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":19068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18026:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":19071,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18048:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":19070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18040:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19069,"name":"address","nodeType":"ElementaryTypeName","src":"18040:7:58","typeDescriptions":{}}},"id":19072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18040:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"18055:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19064,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"17998:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17998:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18009:16:58","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6162,"src":"17998:27:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":19074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17998:64:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19075,"nodeType":"ExpressionStatement","src":"17998:64:58"},{"eventCall":{"arguments":[{"hexValue":"74727565","id":19077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18090:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":19078,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"18096:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19076,"name":"WonPremiumsInOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"18073:16:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":19079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18073:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19080,"nodeType":"EmitStatement","src":"18068:35:58"}]},"documentation":{"id":19055,"nodeType":"StructuredDocumentation","src":"17476:432:58","text":" Endpoint to receive \"free money\" and inject that money into the premium pool.\n Can be used for example if the PolicyPool subscribes an excess loss policy with other company.\n Requirements:\n - The sender needs to approve the spending of `currency()` by this contract.\n Events:\n - Emits {WonPremiumsInOut} with moneyIn = true\n @param amount The amount to be transferred."},"functionSelector":"81ced71f","id":19082,"implemented":true,"kind":"function","modifiers":[],"name":"receiveGrant","nameLocation":"17920:12:58","nodeType":"FunctionDefinition","parameters":{"id":19058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19057,"mutability":"mutable","name":"amount","nameLocation":"17941:6:58","nodeType":"VariableDeclaration","scope":19082,"src":"17933:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19056,"name":"uint256","nodeType":"ElementaryTypeName","src":"17933:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17932:16:58"},"returnParameters":{"id":19059,"nodeType":"ParameterList","parameters":[],"src":"17958:0:58"},"scope":19681,"src":"17911:197:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19152,"nodeType":"Block","src":"18931:401:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19096,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19087,"src":"18945:11:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18960:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19097,"name":"address","nodeType":"ElementaryTypeName","src":"18960:7:58","typeDescriptions":{}}},"id":19100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18960:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18945:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5072656d69756d734163636f756e743a2064657374696e6174696f6e2063616e6e6f7420626520746865207a65726f2061646472657373","id":19102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18972:57:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_05c3a31a2f127d85ad0695421cb22bc9d1a6204afb4738d719d773ecd2796be9","typeString":"literal_string \"PremiumsAccount: destination cannot be the zero address\""},"value":"PremiumsAccount: destination cannot be the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_05c3a31a2f127d85ad0695421cb22bc9d1a6204afb4738d719d773ecd2796be9","typeString":"literal_string \"PremiumsAccount: destination cannot be the zero address\""}],"id":19095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18937:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18937:93:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19104,"nodeType":"ExpressionStatement","src":"18937:93:58"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19105,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"19040:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":19106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19052:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19040:13:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19124,"nodeType":"Block","src":"19086:59:58","statements":[{"expression":{"id":19122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19113,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19094:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19116,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19112:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":19119,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"19128:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19120:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19117,"name":"uint256","nodeType":"ElementaryTypeName","src":"19120:7:58","typeDescriptions":{}}},"id":19120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19120:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19114,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"19103:4:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":19115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19108:3:58","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"19103:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19094:44:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19123,"nodeType":"ExpressionStatement","src":"19094:44:58"}]},"id":19125,"nodeType":"IfStatement","src":"19036:109:58","trueBody":{"id":19112,"nodeType":"Block","src":"19055:25:58","statements":[{"expression":{"id":19110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19108,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19063:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":19109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19072:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19063:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19111,"nodeType":"ExpressionStatement","src":"19063:10:58"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19127,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19158:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19167:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19158:10:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f207072656d69756d7320746f207769746864726177","id":19130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19170:25:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd17c9d4ecea5478e08d5e7aae2580c553b0dd1578809a01b859af596738c4a","typeString":"literal_string \"No premiums to withdraw\""},"value":"No premiums to withdraw"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2dd17c9d4ecea5478e08d5e7aae2580c553b0dd1578809a01b859af596738c4a","typeString":"literal_string \"No premiums to withdraw\""}],"id":19126,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19150:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19150:46:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19132,"nodeType":"ExpressionStatement","src":"19150:46:58"},{"expression":{"id":19138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19133,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"19202:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":19136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19221:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19214:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19134,"name":"int256","nodeType":"ElementaryTypeName","src":"19214:6:58","typeDescriptions":{}}},"id":19137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19214:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19202:26:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":19139,"nodeType":"ExpressionStatement","src":"19202:26:58"},{"expression":{"arguments":[{"id":19141,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19087,"src":"19246:11:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19142,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19259:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19140,"name":"_transferTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19863,"src":"19234:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":19143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19234:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19144,"nodeType":"ExpressionStatement","src":"19234:32:58"},{"eventCall":{"arguments":[{"hexValue":"66616c7365","id":19146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19294:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":19147,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19301:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19145,"name":"WonPremiumsInOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"19277:16:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":19148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19277:31:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19149,"nodeType":"EmitStatement","src":"19272:36:58"},{"expression":{"id":19150,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"19321:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19094,"id":19151,"nodeType":"Return","src":"19314:13:58"}]},"documentation":{"id":19083,"nodeType":"StructuredDocumentation","src":"18112:657:58","text":" Withdraws excess premiums (surplus) to the destination.\n This might be needed in some cases for example if we are deprecating the protocol or the excess premiums\n are needed to compensate something. Shouldn't be used. Can be disabled revoking role WITHDRAW_WON_PREMIUMS_ROLE\n Requirements:\n - onlyGlobalOrComponentRole(WITHDRAW_WON_PREMIUMS_ROLE)\n - _surplus > 0\n Events:\n - Emits {WonPremiumsInOut} with moneyIn = false\n @param amount The amount to withdraw\n @param destination The address that will receive the transferred funds.\n @return Returns the actual amount withdrawn."},"functionSelector":"a0ce58b8","id":19153,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":19090,"name":"WITHDRAW_WON_PREMIUMS_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18154,"src":"18885:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19091,"kind":"modifierInvocation","modifierName":{"id":19089,"name":"onlyGlobalOrComponentRole","nameLocations":["18859:25:58"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"18859:25:58"},"nodeType":"ModifierInvocation","src":"18859:53:58"}],"name":"withdrawWonPremiums","nameLocation":"18781:19:58","nodeType":"FunctionDefinition","parameters":{"id":19088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19085,"mutability":"mutable","name":"amount","nameLocation":"18814:6:58","nodeType":"VariableDeclaration","scope":19153,"src":"18806:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19084,"name":"uint256","nodeType":"ElementaryTypeName","src":"18806:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19087,"mutability":"mutable","name":"destination","nameLocation":"18834:11:58","nodeType":"VariableDeclaration","scope":19153,"src":"18826:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19086,"name":"address","nodeType":"ElementaryTypeName","src":"18826:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18800:49:58"},"returnParameters":{"id":19094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19153,"src":"18922:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19092,"name":"uint256","nodeType":"ElementaryTypeName","src":"18922:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18921:9:58"},"scope":19681,"src":"18772:560:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23837],"body":{"id":19199,"nodeType":"Block","src":"19439:222:58","statements":[{"expression":{"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19164,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"19445:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":19165,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19468:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19475:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"19468:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19445:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19168,"nodeType":"ExpressionStatement","src":"19445:41:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19169,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19496:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19503:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"19496:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19511:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19496:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19183,"nodeType":"IfStatement","src":"19492:79:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19176,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19533:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19540:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"19533:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19178,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19547:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19554:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"19547:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19547:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19173,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"19514:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19525:7:58","memberName":"lockScr","nodeType":"MemberAccess","referencedDeclaration":23462,"src":"19514:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":19181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19514:57:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19182,"nodeType":"ExpressionStatement","src":"19514:57:58"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19184,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19581:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19588:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"19581:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19596:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19581:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19198,"nodeType":"IfStatement","src":"19577:79:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19191,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19618:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19625:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"19618:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19193,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"19632:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19639:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"19632:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19632:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19188,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"19599:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19610:7:58","memberName":"lockScr","nodeType":"MemberAccess","referencedDeclaration":23462,"src":"19599:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19599:57:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19197,"nodeType":"ExpressionStatement","src":"19599:57:58"}}]},"functionSelector":"e3638ea3","id":19200,"implemented":true,"kind":"function","modifiers":[{"id":19160,"kind":"modifierInvocation","modifierName":{"id":19159,"name":"onlyPolicyPool","nameLocations":["19410:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"19410:14:58"},"nodeType":"ModifierInvocation","src":"19410:14:58"},{"id":19162,"kind":"modifierInvocation","modifierName":{"id":19161,"name":"whenNotPaused","nameLocations":["19425:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"19425:13:58"},"nodeType":"ModifierInvocation","src":"19425:13:58"}],"name":"policyCreated","nameLocation":"19345:13:58","nodeType":"FunctionDefinition","overrides":{"id":19158,"nodeType":"OverrideSpecifier","overrides":[],"src":"19401:8:58"},"parameters":{"id":19157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19156,"mutability":"mutable","name":"policy","nameLocation":"19384:6:58","nodeType":"VariableDeclaration","scope":19200,"src":"19359:31:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19155,"nodeType":"UserDefinedTypeName","pathNode":{"id":19154,"name":"Policy.PolicyData","nameLocations":["19359:6:58","19366:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"19359:17:58"},"referencedDeclaration":14966,"src":"19359:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"19358:33:58"},"returnParameters":{"id":19163,"nodeType":"ParameterList","parameters":[],"src":"19439:0:58"},"scope":19681,"src":"19336:325:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23847],"body":{"id":19358,"nodeType":"Block","src":"19820:1228:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19214,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"19830:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19840:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"19830:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19848:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19830:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19218,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"19853:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19863:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"19853:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19871:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19853:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19830:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19250,"nodeType":"IfStatement","src":"19826:222:58","trueBody":{"id":19249,"nodeType":"Block","src":"19874:174:58","statements":[{"assignments":[19224],"declarations":[{"constant":false,"id":19224,"mutability":"mutable","name":"diff","nameLocation":"19889:4:58","nodeType":"VariableDeclaration","scope":19249,"src":"19882:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19223,"name":"int256","nodeType":"ElementaryTypeName","src":"19882:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":19238,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19227,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"19903:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19913:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"19903:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19903:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19896:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19225,"name":"int256","nodeType":"ElementaryTypeName","src":"19896:6:58","typeDescriptions":{}}},"id":19230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19896:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19233,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"19940:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"19940:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19940:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19933:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19231,"name":"int256","nodeType":"ElementaryTypeName","src":"19933:6:58","typeDescriptions":{}}},"id":19236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19933:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19896:71:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"19882:85:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19242,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19224,"src":"19998:4:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":19240,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"19983:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$10395_$","typeString":"type(library SignedMath)"}},"id":19241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19994:3:58","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":10394,"src":"19983:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":19243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19983:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31653134","id":19244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20006:4:58","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"1e14"},"src":"19983:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e74657265737420726174652063616e2774206368616e6765","id":19246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20012:28:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff","typeString":"literal_string \"Interest rate can't change\""},"value":"Interest rate can't change"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff","typeString":"literal_string \"Interest rate can't change\""}],"id":19239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19975:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19975:66:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19248,"nodeType":"ExpressionStatement","src":"19975:66:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19251,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20057:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20067:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20057:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20075:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20057:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19255,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20080:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20090:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20080:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20098:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20080:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20057:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19287,"nodeType":"IfStatement","src":"20053:222:58","trueBody":{"id":19286,"nodeType":"Block","src":"20101:174:58","statements":[{"assignments":[19261],"declarations":[{"constant":false,"id":19261,"mutability":"mutable","name":"diff","nameLocation":"20116:4:58","nodeType":"VariableDeclaration","scope":19286,"src":"20109:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19260,"name":"int256","nodeType":"ElementaryTypeName","src":"20109:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":19275,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19264,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20130:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20140:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"20130:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20130:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20123:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19262,"name":"int256","nodeType":"ElementaryTypeName","src":"20123:6:58","typeDescriptions":{}}},"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20123:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19270,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20167:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20177:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"20167:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20167:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20160:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19268,"name":"int256","nodeType":"ElementaryTypeName","src":"20160:6:58","typeDescriptions":{}}},"id":19273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20160:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20123:71:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"20109:85:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19279,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19261,"src":"20225:4:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":19277,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"20210:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$10395_$","typeString":"type(library SignedMath)"}},"id":19278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20221:3:58","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":10394,"src":"20210:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20210:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31653134","id":19281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20233:4:58","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"1e14"},"src":"20210:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e74657265737420726174652063616e2774206368616e6765","id":19283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20239:28:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff","typeString":"literal_string \"Interest rate can't change\""},"value":"Interest rate can't change"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff","typeString":"literal_string \"Interest rate can't change\""}],"id":19276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20202:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20202:66:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19285,"nodeType":"ExpressionStatement","src":"20202:66:58"}]}},{"expression":{"id":19294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19288,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"20589:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19289,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20612:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20622:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"20612:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":19291,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20636:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20646:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"20636:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20612:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20589:68:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19295,"nodeType":"ExpressionStatement","src":"20589:68:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19296,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20667:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20677:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20667:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20685:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20667:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19311,"nodeType":"IfStatement","src":"20663:93:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19303,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20709:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20719:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20709:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19305,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20726:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20736:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"20726:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":19308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20754:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":19300,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"20688:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20699:9:58","memberName":"unlockScr","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"20688:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,int256) external"}},"id":19309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20688:68:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19310,"nodeType":"ExpressionStatement","src":"20688:68:58"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19312,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20766:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20776:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"20766:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20784:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20766:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19327,"nodeType":"IfStatement","src":"20762:93:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19319,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20808:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20818:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"20808:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19321,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19203,"src":"20825:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20835:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"20825:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20825:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":19324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20853:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":19316,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"20787:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20798:9:58","memberName":"unlockScr","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"20787:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,int256) external"}},"id":19325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20787:68:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19326,"nodeType":"ExpressionStatement","src":"20787:68:58"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19328,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20865:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20875:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20865:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20883:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20865:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19342,"nodeType":"IfStatement","src":"20861:88:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19335,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20905:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20915:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"20905:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19337,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20922:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20932:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"20922:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20922:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19332,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"20886:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20897:7:58","memberName":"lockScr","nodeType":"MemberAccess","referencedDeclaration":23462,"src":"20886:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":19340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20886:63:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19341,"nodeType":"ExpressionStatement","src":"20886:63:58"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19343,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20959:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20969:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"20959:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20977:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20959:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19357,"nodeType":"IfStatement","src":"20955:88:58","trueBody":{"expression":{"arguments":[{"expression":{"id":19350,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"20999:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21009:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"20999:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19352,"name":"newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19206,"src":"21016:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21026:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"21016:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21016:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19347,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"20980:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20991:7:58","memberName":"lockScr","nodeType":"MemberAccess","referencedDeclaration":23462,"src":"20980:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":19355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:63:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19356,"nodeType":"ExpressionStatement","src":"20980:63:58"}}]},"functionSelector":"ab83b4be","id":19359,"implemented":true,"kind":"function","modifiers":[{"id":19210,"kind":"modifierInvocation","modifierName":{"id":19209,"name":"onlyPolicyPool","nameLocations":["19791:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"19791:14:58"},"nodeType":"ModifierInvocation","src":"19791:14:58"},{"id":19212,"kind":"modifierInvocation","modifierName":{"id":19211,"name":"whenNotPaused","nameLocations":["19806:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"19806:13:58"},"nodeType":"ModifierInvocation","src":"19806:13:58"}],"name":"policyReplaced","nameLocation":"19674:14:58","nodeType":"FunctionDefinition","overrides":{"id":19208,"nodeType":"OverrideSpecifier","overrides":[],"src":"19782:8:58"},"parameters":{"id":19207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19203,"mutability":"mutable","name":"oldPolicy","nameLocation":"19719:9:58","nodeType":"VariableDeclaration","scope":19359,"src":"19694:34:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19202,"nodeType":"UserDefinedTypeName","pathNode":{"id":19201,"name":"Policy.PolicyData","nameLocations":["19694:6:58","19701:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"19694:17:58"},"referencedDeclaration":14966,"src":"19694:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":19206,"mutability":"mutable","name":"newPolicy","nameLocation":"19759:9:58","nodeType":"VariableDeclaration","scope":19359,"src":"19734:34:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19205,"nodeType":"UserDefinedTypeName","pathNode":{"id":19204,"name":"Policy.PolicyData","nameLocations":["19734:6:58","19741:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"19734:17:58"},"referencedDeclaration":14966,"src":"19734:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"19688:84:58"},"returnParameters":{"id":19213,"nodeType":"ParameterList","parameters":[],"src":"19820:0:58"},"scope":19681,"src":"19665:1383:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23858],"body":{"id":19424,"nodeType":"Block","src":"21220:368:58","statements":[{"expression":{"id":19377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19374,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"21226:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":19375,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19364,"src":"21249:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21256:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"21249:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21226:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19378,"nodeType":"ExpressionStatement","src":"21226:41:58"},{"assignments":[19380],"declarations":[{"constant":false,"id":19380,"mutability":"mutable","name":"borrowFromScr","nameLocation":"21281:13:58","nodeType":"VariableDeclaration","scope":19424,"src":"21273:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19379,"name":"uint256","nodeType":"ElementaryTypeName","src":"21273:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19393,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19384,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19366,"src":"21321:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21314:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19382,"name":"int256","nodeType":"ElementaryTypeName","src":"21314:6:58","typeDescriptions":{}}},"id":19385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21314:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":19388,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19364,"src":"21338:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21345:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"21338:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21331:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19386,"name":"int256","nodeType":"ElementaryTypeName","src":"21331:6:58","typeDescriptions":{}}},"id":19390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21331:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21314:43:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19381,"name":"_payFromPremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19040,"src":"21297:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) returns (uint256)"}},"id":19392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21297:61:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21273:85:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19394,"name":"borrowFromScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19380,"src":"21368:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21385:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21368:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19415,"nodeType":"Block","src":"21496:33:58","statements":[{"expression":{"arguments":[{"id":19412,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19364,"src":"21515:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":19411,"name":"_unlockScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"21504:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory)"}},"id":19413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21504:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19414,"nodeType":"ExpressionStatement","src":"21504:18:58"}]},"id":19416,"nodeType":"IfStatement","src":"21364:165:58","trueBody":{"id":19410,"nodeType":"Block","src":"21388:102:58","statements":[{"expression":{"arguments":[{"id":19398,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19364,"src":"21407:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":19397,"name":"_unlockScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"21396:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory)"}},"id":19399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21396:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19400,"nodeType":"ExpressionStatement","src":"21396:18:58"},{"expression":{"arguments":[{"id":19402,"name":"borrowFromScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19380,"src":"21437:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19403,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19361,"src":"21452:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19404,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19364,"src":"21466:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21473:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"21466:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21481:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21466:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19401,"name":"_borrowFromEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18995,"src":"21422:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (uint256,address,bool)"}},"id":19408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21422:61:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19409,"nodeType":"ExpressionStatement","src":"21422:61:58"}]}},{"expression":{"arguments":[{"id":19418,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19361,"src":"21546:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19419,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19366,"src":"21560:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":19420,"name":"borrowFromScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19380,"src":"21569:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21560:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19417,"name":"_transferTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19863,"src":"21534:11:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":19422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21534:49:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19423,"nodeType":"ExpressionStatement","src":"21534:49:58"}]},"functionSelector":"9d8c5ee7","id":19425,"implemented":true,"kind":"function","modifiers":[{"id":19370,"kind":"modifierInvocation","modifierName":{"id":19369,"name":"onlyPolicyPool","nameLocations":["21191:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"21191:14:58"},"nodeType":"ModifierInvocation","src":"21191:14:58"},{"id":19372,"kind":"modifierInvocation","modifierName":{"id":19371,"name":"whenNotPaused","nameLocations":["21206:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"21206:13:58"},"nodeType":"ModifierInvocation","src":"21206:13:58"}],"name":"policyResolvedWithPayout","nameLocation":"21061:24:58","nodeType":"FunctionDefinition","overrides":{"id":19368,"nodeType":"OverrideSpecifier","overrides":[],"src":"21182:8:58"},"parameters":{"id":19367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19361,"mutability":"mutable","name":"policyHolder","nameLocation":"21099:12:58","nodeType":"VariableDeclaration","scope":19425,"src":"21091:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19360,"name":"address","nodeType":"ElementaryTypeName","src":"21091:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19364,"mutability":"mutable","name":"policy","nameLocation":"21142:6:58","nodeType":"VariableDeclaration","scope":19425,"src":"21117:31:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19363,"nodeType":"UserDefinedTypeName","pathNode":{"id":19362,"name":"Policy.PolicyData","nameLocations":["21117:6:58","21124:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"21117:17:58"},"referencedDeclaration":14966,"src":"21117:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":19366,"mutability":"mutable","name":"payout","nameLocation":"21162:6:58","nodeType":"VariableDeclaration","scope":19425,"src":"21154:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19365,"name":"uint256","nodeType":"ElementaryTypeName","src":"21154:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21085:87:58"},"returnParameters":{"id":19373,"nodeType":"ParameterList","parameters":[],"src":"21220:0:58"},"scope":19681,"src":"21052:536:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19488,"nodeType":"Block","src":"21817:389:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19432,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"21827:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21834:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"21827:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21842:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21827:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19459,"nodeType":"IfStatement","src":"21823:187:58","trueBody":{"id":19458,"nodeType":"Block","src":"21845:165:58","statements":[{"expression":{"arguments":[{"expression":{"id":19439,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"21883:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21890:5:58","memberName":"jrScr","nodeType":"MemberAccess","referencedDeclaration":14944,"src":"21883:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19441,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"21905:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21912:14:58","memberName":"jrInterestRate","nodeType":"MemberAccess","referencedDeclaration":15327,"src":"21905:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21905:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":19446,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"21945:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21952:5:58","memberName":"jrCoc","nodeType":"MemberAccess","referencedDeclaration":14956,"src":"21945:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21938:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19444,"name":"int256","nodeType":"ElementaryTypeName","src":"21938:6:58","typeDescriptions":{}}},"id":19448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21938:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19451,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"21968:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21975:17:58","memberName":"jrAccruedInterest","nodeType":"MemberAccess","referencedDeclaration":15354,"src":"21968:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) view returns (uint256)"}},"id":19453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21968:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21961:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19449,"name":"int256","nodeType":"ElementaryTypeName","src":"21961:6:58","typeDescriptions":{}}},"id":19454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21961:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21938:57:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":19436,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"21853:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21864:9:58","memberName":"unlockScr","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"21853:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,int256) external"}},"id":19456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21853:150:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19457,"nodeType":"ExpressionStatement","src":"21853:150:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19460,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"22019:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22026:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"22019:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22034:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22019:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19487,"nodeType":"IfStatement","src":"22015:187:58","trueBody":{"id":19486,"nodeType":"Block","src":"22037:165:58","statements":[{"expression":{"arguments":[{"expression":{"id":19467,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"22075:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22082:5:58","memberName":"srScr","nodeType":"MemberAccess","referencedDeclaration":14946,"src":"22075:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19469,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"22097:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22104:14:58","memberName":"srInterestRate","nodeType":"MemberAccess","referencedDeclaration":15381,"src":"22097:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (uint256)"}},"id":19471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22097:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":19483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":19474,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"22137:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22144:5:58","memberName":"srCoc","nodeType":"MemberAccess","referencedDeclaration":14958,"src":"22137:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22130:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19472,"name":"int256","nodeType":"ElementaryTypeName","src":"22130:6:58","typeDescriptions":{}}},"id":19476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22130:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19479,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"22160:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22167:17:58","memberName":"srAccruedInterest","nodeType":"MemberAccess","referencedDeclaration":15408,"src":"22160:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) view returns (uint256)"}},"id":19481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22153:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19477,"name":"int256","nodeType":"ElementaryTypeName","src":"22153:6:58","typeDescriptions":{}}},"id":19482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22153:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22130:57:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":19464,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"22045:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22056:9:58","memberName":"unlockScr","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"22045:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,int256) external"}},"id":19484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22045:150:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19485,"nodeType":"ExpressionStatement","src":"22045:150:58"}]}}]},"documentation":{"id":19426,"nodeType":"StructuredDocumentation","src":"21592:160:58","text":" @dev Internal function that calls the eTokens to lock the solvency capital when the policy is created.\n @param policy The policy created"},"id":19489,"implemented":true,"kind":"function","modifiers":[],"name":"_unlockScr","nameLocation":"21764:10:58","nodeType":"FunctionDefinition","parameters":{"id":19430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19429,"mutability":"mutable","name":"policy","nameLocation":"21800:6:58","nodeType":"VariableDeclaration","scope":19489,"src":"21775:31:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19428,"nodeType":"UserDefinedTypeName","pathNode":{"id":19427,"name":"Policy.PolicyData","nameLocations":["21775:6:58","21782:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"21775:17:58"},"referencedDeclaration":14966,"src":"21775:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"21774:33:58"},"returnParameters":{"id":19431,"nodeType":"ParameterList","parameters":[],"src":"21817:0:58"},"scope":19681,"src":"21755:451:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19549,"nodeType":"Block","src":"22494:277:58","statements":[{"expression":{"id":19503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19500,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22500:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":19501,"name":"fundsAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18552,"src":"22512:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":19502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22512:16:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22500:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19504,"nodeType":"ExpressionStatement","src":"22500:28:58"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19505,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22538:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22551:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22538:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19510,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"22564:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22556:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19508,"name":"address","nodeType":"ElementaryTypeName","src":"22556:7:58","typeDescriptions":{}}},"id":19511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22556:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22587:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22579:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19512,"name":"address","nodeType":"ElementaryTypeName","src":"22579:7:58","typeDescriptions":{}}},"id":19515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22579:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22556:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22538:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19525,"nodeType":"IfStatement","src":"22534:102:58","trueBody":{"expression":{"id":19523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19518,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22591:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19520,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22614:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19521,"name":"_seniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18173,"src":"22625:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19519,"name":"_repayLoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19649,"src":"22603:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_contract$_IEToken_$23549_$returns$_t_uint256_$","typeString":"function (uint256,contract IEToken) returns (uint256)"}},"id":19522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22603:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22591:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19524,"nodeType":"ExpressionStatement","src":"22591:45:58"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19526,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22646:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22659:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22646:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19531,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"22672:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22664:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19529,"name":"address","nodeType":"ElementaryTypeName","src":"22664:7:58","typeDescriptions":{}}},"id":19532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22664:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22695:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22687:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19533,"name":"address","nodeType":"ElementaryTypeName","src":"22687:7:58","typeDescriptions":{}}},"id":19536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22687:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22664:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22646:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19546,"nodeType":"IfStatement","src":"22642:102:58","trueBody":{"expression":{"id":19544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19539,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22699:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19541,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22722:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19542,"name":"_juniorEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18169,"src":"22733:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19540,"name":"_repayLoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19649,"src":"22711:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_contract$_IEToken_$23549_$returns$_t_uint256_$","typeString":"function (uint256,contract IEToken) returns (uint256)"}},"id":19543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22711:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22699:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19545,"nodeType":"ExpressionStatement","src":"22699:45:58"}},{"expression":{"id":19547,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"22757:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19499,"id":19548,"nodeType":"Return","src":"22750:16:58"}]},"documentation":{"id":19490,"nodeType":"StructuredDocumentation","src":"22210:140:58","text":" @dev Function that repays the loan(s) if fundsAvailable\n @return available The funds still available after repayment"},"functionSelector":"f39a4bc5","id":19550,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":19493,"name":"REPAY_LOANS_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18159,"src":"22424:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19494,"kind":"modifierInvocation","modifierName":{"id":19492,"name":"onlyGlobalOrComponentOrOpenRole","nameLocations":["22392:31:58"],"nodeType":"IdentifierPath","referencedDeclaration":18240,"src":"22392:31:58"},"nodeType":"ModifierInvocation","src":"22392:49:58"},{"id":19496,"kind":"modifierInvocation","modifierName":{"id":19495,"name":"whenNotPaused","nameLocations":["22446:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"22446:13:58"},"nodeType":"ModifierInvocation","src":"22446:13:58"}],"name":"repayLoans","nameLocation":"22362:10:58","nodeType":"FunctionDefinition","parameters":{"id":19491,"nodeType":"ParameterList","parameters":[],"src":"22372:2:58"},"returnParameters":{"id":19499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19498,"mutability":"mutable","name":"available","nameLocation":"22481:9:58","nodeType":"VariableDeclaration","scope":19550,"src":"22473:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19497,"name":"uint256","nodeType":"ElementaryTypeName","src":"22473:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22472:19:58"},"scope":19681,"src":"22353:418:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19648,"nodeType":"Block","src":"23191:1179:58","statements":[{"assignments":[19562],"declarations":[{"constant":false,"id":19562,"mutability":"mutable","name":"borrowedFromEtk","nameLocation":"23205:15:58","nodeType":"VariableDeclaration","scope":19648,"src":"23197:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19561,"name":"uint256","nodeType":"ElementaryTypeName","src":"23197:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19570,"initialValue":{"arguments":[{"arguments":[{"id":19567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23243:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":19566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23235:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19565,"name":"address","nodeType":"ElementaryTypeName","src":"23235:7:58","typeDescriptions":{}}},"id":19568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23235:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19563,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19556,"src":"23223:3:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23227:7:58","memberName":"getLoan","nodeType":"MemberAccess","referencedDeclaration":23536,"src":"23223:11:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":19569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23223:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23197:52:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19571,"name":"borrowedFromEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19562,"src":"23259:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23278:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23259:20:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19576,"nodeType":"IfStatement","src":"23255:48:58","trueBody":{"expression":{"id":19574,"name":"fundsAvailable_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19553,"src":"23288:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19560,"id":19575,"nodeType":"Return","src":"23281:22:58"}},{"assignments":[19578],"declarations":[{"constant":false,"id":19578,"mutability":"mutable","name":"repayAmount","nameLocation":"23317:11:58","nodeType":"VariableDeclaration","scope":19648,"src":"23309:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19577,"name":"uint256","nodeType":"ElementaryTypeName","src":"23309:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19584,"initialValue":{"arguments":[{"id":19581,"name":"fundsAvailable_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19553,"src":"23340:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19582,"name":"borrowedFromEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19562,"src":"23357:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19579,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"23331:4:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8749_$","typeString":"type(library Math)"}},"id":19580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23336:3:58","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":7926,"src":"23331:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23331:42:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23309:64:58"},{"expression":{"id":19590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19585,"name":"_surplus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18179,"src":"23379:8:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":19588,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"23398:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23391:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19586,"name":"int256","nodeType":"ElementaryTypeName","src":"23391:6:58","typeDescriptions":{}}},"id":19589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23391:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23379:31:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":19591,"nodeType":"ExpressionStatement","src":"23379:31:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":19597,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23518:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":19596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23510:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19595,"name":"address","nodeType":"ElementaryTypeName","src":"23510:7:58","typeDescriptions":{}}},"id":19598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23510:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19592,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"23489:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23500:9:58","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"23489:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":19599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19600,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"23527:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23489:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19607,"nodeType":"IfStatement","src":"23485:470:58","trueBody":{"id":19606,"nodeType":"Block","src":"23540:415:58","statements":[{"documentation":" I send `repayAmount` because the IAssetManager expects the full amount that's needed, not the missing one.\n It uses the value of the full amount to optimize the deinvestment leaving more liquidity if possible to avoid\n future deinvestment. It will only fail if it can't refill `repayAmount - currency().balanceOf(address(this))`","expression":{"arguments":[{"id":19603,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"23936:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19602,"name":"_refillWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19793,"src":"23922:13:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":19604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23922:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19605,"nodeType":"ExpressionStatement","src":"23922:26:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":19613,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24038:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":19612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24030:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19611,"name":"address","nodeType":"ElementaryTypeName","src":"24030:7:58","typeDescriptions":{}}},"id":19614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24030:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":19617,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19556,"src":"24053:3:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24045:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19615,"name":"address","nodeType":"ElementaryTypeName","src":"24045:7:58","typeDescriptions":{}}},"id":19618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24045:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19608,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"24009:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24020:9:58","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"24009:20:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":19619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:49:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19620,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"24061:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24009:63:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19633,"nodeType":"IfStatement","src":"24005:272:58","trueBody":{"id":19632,"nodeType":"Block","src":"24074:203:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":19627,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19556,"src":"24248:3:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}],"id":19626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24240:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19625,"name":"address","nodeType":"ElementaryTypeName","src":"24240:7:58","typeDescriptions":{}}},"id":19628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24240:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19629,"name":"borrowedFromEtk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19562,"src":"24254:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19622,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"24221:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24221:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24232:7:58","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5401,"src":"24221:18:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":19630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24221:49:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19631,"nodeType":"ExpressionStatement","src":"24221:49:58"}]}},{"expression":{"arguments":[{"id":19637,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"24296:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":19640,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24317:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PremiumsAccount_$19681","typeString":"contract PremiumsAccount"}],"id":19639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24309:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19638,"name":"address","nodeType":"ElementaryTypeName","src":"24309:7:58","typeDescriptions":{}}},"id":19641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19634,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19556,"src":"24282:3:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"id":19636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24286:9:58","memberName":"repayLoan","nodeType":"MemberAccess","referencedDeclaration":23528,"src":"24282:13:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":19642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24282:41:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19643,"nodeType":"ExpressionStatement","src":"24282:41:58"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19644,"name":"fundsAvailable_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19553,"src":"24336:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":19645,"name":"repayAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19578,"src":"24354:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24336:29:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19560,"id":19647,"nodeType":"Return","src":"24329:36:58"}]},"documentation":{"id":19551,"nodeType":"StructuredDocumentation","src":"22775:328:58","text":" @dev Internal function that repays a loan taken (if any outstanding) from the an eToken\n @param fundsAvailable_ The amount of funds available for the repayment\n @param etk The eToken with the potential debt\n @return The excess amount of the purePremiumWon that wasn't used for the loan repayment."},"id":19649,"implemented":true,"kind":"function","modifiers":[],"name":"_repayLoan","nameLocation":"23115:10:58","nodeType":"FunctionDefinition","parameters":{"id":19557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19553,"mutability":"mutable","name":"fundsAvailable_","nameLocation":"23134:15:58","nodeType":"VariableDeclaration","scope":19649,"src":"23126:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19552,"name":"uint256","nodeType":"ElementaryTypeName","src":"23126:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19556,"mutability":"mutable","name":"etk","nameLocation":"23159:3:58","nodeType":"VariableDeclaration","scope":19649,"src":"23151:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":19555,"nodeType":"UserDefinedTypeName","pathNode":{"id":19554,"name":"IEToken","nameLocations":["23151:7:58"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"23151:7:58"},"referencedDeclaration":23549,"src":"23151:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"23125:38:58"},"returnParameters":{"id":19560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19649,"src":"23182:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19558,"name":"uint256","nodeType":"ElementaryTypeName","src":"23182:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23181:9:58"},"scope":19681,"src":"23106:1264:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[23865],"body":{"id":19674,"nodeType":"Block","src":"24477:122:58","statements":[{"expression":{"id":19663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19660,"name":"_activePurePremiums","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"24483:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":19661,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"24506:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24513:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"24506:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24483:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19664,"nodeType":"ExpressionStatement","src":"24483:41:58"},{"expression":{"arguments":[{"expression":{"id":19666,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"24551:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":19667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24558:11:58","memberName":"purePremium","nodeType":"MemberAccess","referencedDeclaration":14950,"src":"24551:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19665,"name":"_storePurePremiumWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19054,"src":"24530:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24530:40:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19669,"nodeType":"ExpressionStatement","src":"24530:40:58"},{"expression":{"arguments":[{"id":19671,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"24587:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":19670,"name":"_unlockScr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"24576:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (struct Policy.PolicyData memory)"}},"id":19672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24576:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19673,"nodeType":"ExpressionStatement","src":"24576:18:58"}]},"functionSelector":"c7a9c70d","id":19675,"implemented":true,"kind":"function","modifiers":[{"id":19656,"kind":"modifierInvocation","modifierName":{"id":19655,"name":"onlyPolicyPool","nameLocations":["24448:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"24448:14:58"},"nodeType":"ModifierInvocation","src":"24448:14:58"},{"id":19658,"kind":"modifierInvocation","modifierName":{"id":19657,"name":"whenNotPaused","nameLocations":["24463:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"24463:13:58"},"nodeType":"ModifierInvocation","src":"24463:13:58"}],"name":"policyExpired","nameLocation":"24383:13:58","nodeType":"FunctionDefinition","overrides":{"id":19654,"nodeType":"OverrideSpecifier","overrides":[],"src":"24439:8:58"},"parameters":{"id":19653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19652,"mutability":"mutable","name":"policy","nameLocation":"24422:6:58","nodeType":"VariableDeclaration","scope":19675,"src":"24397:31:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":19651,"nodeType":"UserDefinedTypeName","pathNode":{"id":19650,"name":"Policy.PolicyData","nameLocations":["24397:6:58","24404:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"24397:17:58"},"referencedDeclaration":14966,"src":"24397:17:58","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"24396:33:58"},"returnParameters":{"id":19659,"nodeType":"ParameterList","parameters":[],"src":"24477:0:58"},"scope":19681,"src":"24374:225:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":19676,"nodeType":"StructuredDocumentation","src":"24603:246:58","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":19680,"mutability":"mutable","name":"__gap","nameLocation":"24872:5:58","nodeType":"VariableDeclaration","scope":19681,"src":"24852:25:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$47_storage","typeString":"uint256[47]"},"typeName":{"baseType":{"id":19677,"name":"uint256","nodeType":"ElementaryTypeName","src":"24852:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19679,"length":{"hexValue":"3437","id":19678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24860:2:58","typeDescriptions":{"typeIdentifier":"t_rational_47_by_1","typeString":"int_const 47"},"value":"47"},"nodeType":"ArrayTypeName","src":"24852:11:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$47_storage_ptr","typeString":"uint256[47]"}},"visibility":"private"}],"scope":19682,"src":"1554:23326:58","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,17740,17747,18200]}],"src":"39:24842:58"},"id":58},"contracts/Reserve.sol":{"ast":{"absolutePath":"contracts/Reserve.sol","exportedSymbols":{"Address":[6942],"IAccessManager":[23370],"IAssetManager":[23421],"IERC20Metadata":[6066],"IPolicyPool":[23806],"PolicyPoolComponent":[18100],"Reserve":[20137],"SafeERC20":[6478]},"id":20138,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":19683,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:59"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":19685,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":6479,"src":"64:82:59","symbolAliases":[{"foreign":{"id":19684,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6478,"src":"72:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","id":19687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":6943,"src":"147:66:59","symbolAliases":[{"foreign":{"id":19686,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"155:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":19689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":6067,"src":"214:97:59","symbolAliases":[{"foreign":{"id":19688,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"222:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":19691,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":23807,"src":"312:57:59","symbolAliases":[{"foreign":{"id":19690,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"320:11:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAssetManager.sol","file":"./interfaces/IAssetManager.sol","id":19693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":23422,"src":"370:61:59","symbolAliases":[{"foreign":{"id":19692,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"378:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":19695,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":23371,"src":"432:63:59","symbolAliases":[{"foreign":{"id":19694,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"440:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/PolicyPoolComponent.sol","file":"./PolicyPoolComponent.sol","id":19697,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20138,"sourceUnit":18101,"src":"496:62:59","symbolAliases":[{"foreign":{"id":19696,"name":"PolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"504:19:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":19699,"name":"PolicyPoolComponent","nameLocations":["1129:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"1129:19:59"},"id":19700,"nodeType":"InheritanceSpecifier","src":"1129:19:59"}],"canonicalName":"Reserve","contractDependencies":[],"contractKind":"contract","documentation":{"id":19698,"nodeType":"StructuredDocumentation","src":"560:539:59","text":" @title Base contract for Ensuro cash reserves\n @dev This contract implements the methods related with management of the reserves and payments. {EToken} and\n {PremiumsAccount} inherit from this contract.\n These contracts have an asset manager {IAssetManager} that's a strategy contract that runs in the same context\n (called with delegatecall) that apply some strategy to reinvest the assets managed by the contract to generate\n additional returns.\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":false,"id":20137,"linearizedBaseContracts":[20137,18100,23823,7883,1209,2704,1081,765,430,440,944],"name":"Reserve","nameLocation":"1118:7:59","nodeType":"ContractDefinition","nodes":[{"global":false,"id":19704,"libraryName":{"id":19701,"name":"SafeERC20","nameLocations":["1159:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":6478,"src":"1159:9:59"},"nodeType":"UsingForDirective","src":"1153:35:59","typeName":{"id":19703,"nodeType":"UserDefinedTypeName","pathNode":{"id":19702,"name":"IERC20Metadata","nameLocations":["1173:14:59"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1173:14:59"},"referencedDeclaration":6066,"src":"1173:14:59","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}},{"global":false,"id":19707,"libraryName":{"id":19705,"name":"Address","nameLocations":["1197:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":6942,"src":"1197:7:59"},"nodeType":"UsingForDirective","src":"1191:26:59","typeName":{"id":19706,"name":"address","nodeType":"ElementaryTypeName","src":"1209:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":19708,"nodeType":"StructuredDocumentation","src":"1221:61:59","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":19710,"mutability":"immutable","name":"NEGLIGIBLE_AMOUNT","nameLocation":"1362:17:59","nodeType":"VariableDeclaration","scope":20137,"src":"1335:44:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1335:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"body":{"id":19733,"nodeType":"Block","src":"1725:76:59","statements":[{"expression":{"id":19731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19720,"name":"NEGLIGIBLE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19710,"src":"1731:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":19721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1751:2:59","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":19728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19722,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19714,"src":"1758:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":19723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1770:8:59","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"1758:20:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":19724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1758:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1781:8:59","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"1758:31:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":19726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1758:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":19727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1794:1:59","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1758:37:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":19729,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1757:39:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1751:45:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1731:65:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19732,"nodeType":"ExpressionStatement","src":"1731:65:59"}]},"documentation":{"id":19711,"nodeType":"StructuredDocumentation","src":"1604:48:59","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":19734,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":19717,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19714,"src":"1712:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":19718,"kind":"baseConstructorSpecifier","modifierName":{"id":19716,"name":"PolicyPoolComponent","nameLocations":["1692:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"1692:19:59"},"nodeType":"ModifierInvocation","src":"1692:32:59"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19714,"mutability":"mutable","name":"policyPool_","nameLocation":"1679:11:59","nodeType":"VariableDeclaration","scope":19734,"src":"1667:23:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":19713,"nodeType":"UserDefinedTypeName","pathNode":{"id":19712,"name":"IPolicyPool","nameLocations":["1667:11:59"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"1667:11:59"},"referencedDeclaration":23806,"src":"1667:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"1666:25:59"},"returnParameters":{"id":19719,"nodeType":"ParameterList","parameters":[],"src":"1725:0:59"},"scope":20137,"src":"1655:146:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19743,"nodeType":"Block","src":"1983:39:59","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19740,"name":"__PolicyPoolComponent_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17875,"src":"1989:26:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":19741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1989:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19742,"nodeType":"ExpressionStatement","src":"1989:28:59"}]},"documentation":{"id":19735,"nodeType":"StructuredDocumentation","src":"1805:72:59","text":" @dev Initializes the Reserve (to be called by subclasses)"},"id":19744,"implemented":true,"kind":"function","modifiers":[{"id":19738,"kind":"modifierInvocation","modifierName":{"id":19737,"name":"onlyInitializing","nameLocations":["1966:16:59"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"1966:16:59"},"nodeType":"ModifierInvocation","src":"1966:16:59"}],"name":"__Reserve_init","nameLocation":"1940:14:59","nodeType":"FunctionDefinition","parameters":{"id":19736,"nodeType":"ParameterList","parameters":[],"src":"1954:2:59"},"returnParameters":{"id":19739,"nodeType":"ParameterList","parameters":[],"src":"1983:0:59"},"scope":20137,"src":"1931:91:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19792,"nodeType":"Block","src":"2653:311:59","statements":[{"assignments":[19753],"declarations":[{"constant":false,"id":19753,"mutability":"mutable","name":"am","nameLocation":"2667:2:59","nodeType":"VariableDeclaration","scope":19792,"src":"2659:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19752,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":19759,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":19756,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"2680:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":19757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":19755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2672:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19754,"name":"address","nodeType":"ElementaryTypeName","src":"2672:7:59","typeDescriptions":{}}},"id":19758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2659:36:59"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19760,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19753,"src":"2705:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2719:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2711:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19761,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:59","typeDescriptions":{}}},"id":19764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2711:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2705:16:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19789,"nodeType":"IfStatement","src":"2701:245:59","trueBody":{"id":19788,"nodeType":"Block","src":"2723:223:59","statements":[{"assignments":[19767],"declarations":[{"constant":false,"id":19767,"mutability":"mutable","name":"result","nameLocation":"2744:6:59","nodeType":"VariableDeclaration","scope":19788,"src":"2731:19:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19766,"name":"bytes","nodeType":"ElementaryTypeName","src":"2731:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19779,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":19772,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"2809:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":19773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2823:12:59","memberName":"refillWallet","nodeType":"MemberAccess","referencedDeclaration":23414,"src":"2809:26:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function IAssetManager.refillWallet(uint256) returns (uint256)"}},"id":19774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2836:8:59","memberName":"selector","nodeType":"MemberAccess","src":"2809:35:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":19775,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19747,"src":"2846:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2786:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2790:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2786:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":19776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2786:67:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"4572726f7220726566696c6c696e672077616c6c6574","id":19777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:24:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f7d7110067f43868e8c8a28d9efebc4d6e47c06603d42787e1cb68b1ec3712d","typeString":"literal_string \"Error refilling wallet\""},"value":"Error refilling wallet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9f7d7110067f43868e8c8a28d9efebc4d6e47c06603d42787e1cb68b1ec3712d","typeString":"literal_string \"Error refilling wallet\""}],"expression":{"id":19768,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19753,"src":"2753:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6858,"src":"2753:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":19778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:142:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2731:164:59"},{"expression":{"arguments":[{"id":19782,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19767,"src":"2921:6:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":19784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2930:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:59","typeDescriptions":{}}}],"id":19785,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2929:9:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":19780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2910:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2914:6:59","memberName":"decode","nodeType":"MemberAccess","src":"2910:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":19786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:29:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19751,"id":19787,"nodeType":"Return","src":"2903:36:59"}]}},{"expression":{"hexValue":"30","id":19790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2958:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":19751,"id":19791,"nodeType":"Return","src":"2951:8:59"}]},"documentation":{"id":19745,"nodeType":"StructuredDocumentation","src":"2026:558:59","text":" @dev Refills the reserve's balance, deinvesting from the asset manager to be able to make a payment\n @param amount The amount of the payment that needs to be made\n @return Returns the actual amount deinvested (how much the `currency().balanceof(this)` was increased). It might be\n more than `amount` because the asset manager might want to give more liquidity to the reserve to avoid further\n deinvestments. After the call, the `currency().balanceof(this)` should be greater than `amount` (unless unsolvency\n problem)."},"id":19793,"implemented":true,"kind":"function","modifiers":[],"name":"_refillWallet","nameLocation":"2596:13:59","nodeType":"FunctionDefinition","parameters":{"id":19748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19747,"mutability":"mutable","name":"amount","nameLocation":"2618:6:59","nodeType":"VariableDeclaration","scope":19793,"src":"2610:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19746,"name":"uint256","nodeType":"ElementaryTypeName","src":"2610:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2609:16:59"},"returnParameters":{"id":19751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19793,"src":"2644:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19749,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2643:9:59"},"scope":20137,"src":"2587:377:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19862,"nodeType":"Block","src":"3333:497:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19802,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19796,"src":"3347:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3370:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3362:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19803,"name":"address","nodeType":"ElementaryTypeName","src":"3362:7:59","typeDescriptions":{}}},"id":19806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3362:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3347:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526573657276653a207472616e7366657220746f20746865207a65726f2061646472657373","id":19808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3374:39:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f","typeString":"literal_string \"Reserve: transfer to the zero address\""},"value":"Reserve: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f","typeString":"literal_string \"Reserve: transfer to the zero address\""}],"id":19801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3339:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3339:75:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19810,"nodeType":"ExpressionStatement","src":"3339:75:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19811,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3424:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3424:11:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19815,"nodeType":"IfStatement","src":"3420:24:59","trueBody":{"functionReturnParameters":19800,"id":19814,"nodeType":"Return","src":"3437:7:59"}},{"assignments":[19817],"declarations":[{"constant":false,"id":19817,"mutability":"mutable","name":"balance","nameLocation":"3457:7:59","nodeType":"VariableDeclaration","scope":19862,"src":"3449:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19816,"name":"uint256","nodeType":"ElementaryTypeName","src":"3449:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19826,"initialValue":{"arguments":[{"arguments":[{"id":19823,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3496:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_Reserve_$20137","typeString":"contract Reserve"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reserve_$20137","typeString":"contract Reserve"}],"id":19822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3488:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19821,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:59","typeDescriptions":{}}},"id":19824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19818,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"3467:8:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3478:9:59","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"3467:20:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":19825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:35:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3449:53:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19827,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19817,"src":"3512:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19828,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3522:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3512:16:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19854,"nodeType":"IfStatement","src":"3508:268:59","trueBody":{"id":19853,"nodeType":"Block","src":"3530:246:59","statements":[{"expression":{"id":19834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19830,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19817,"src":"3538:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":19832,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3563:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19831,"name":"_refillWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19793,"src":"3549:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":19833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3549:21:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3538:32:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19835,"nodeType":"ExpressionStatement","src":"3538:32:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19836,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3582:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":19837,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19817,"src":"3591:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3582:16:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19852,"nodeType":"IfStatement","src":"3578:192:59","trueBody":{"id":19851,"nodeType":"Block","src":"3600:170:59","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19839,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3615:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":19840,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19817,"src":"3624:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3615:16:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19842,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3614:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19843,"name":"NEGLIGIBLE_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19710,"src":"3635:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3614:38:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19850,"nodeType":"IfStatement","src":"3610:83:59","trueBody":{"id":19849,"nodeType":"Block","src":"3654:39:59","statements":[{"expression":{"id":19847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19845,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3666:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19846,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19817,"src":"3675:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3666:16:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19848,"nodeType":"ExpressionStatement","src":"3666:16:59"}]}}]}}]}},{"expression":{"arguments":[{"id":19858,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19796,"src":"3805:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19798,"src":"3818:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19855,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"3781:8:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":19856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":19857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:12:59","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6135,"src":"3781:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5414_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5414_$","typeString":"function (contract IERC20,address,uint256)"}},"id":19860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19861,"nodeType":"ExpressionStatement","src":"3781:44:59"}]},"documentation":{"id":19794,"nodeType":"StructuredDocumentation","src":"2968:295:59","text":" @dev Internal function that transfers money to a destination. It might need to call `_refillWallet` to deinvest\n some money to have enough liquidity for the payment.\n @param destination The destination of the transfer.\n @param amount The amount to be transferred."},"id":19863,"implemented":true,"kind":"function","modifiers":[],"name":"_transferTo","nameLocation":"3275:11:59","nodeType":"FunctionDefinition","parameters":{"id":19799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19796,"mutability":"mutable","name":"destination","nameLocation":"3295:11:59","nodeType":"VariableDeclaration","scope":19863,"src":"3287:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19795,"name":"address","nodeType":"ElementaryTypeName","src":"3287:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19798,"mutability":"mutable","name":"amount","nameLocation":"3316:6:59","nodeType":"VariableDeclaration","scope":19863,"src":"3308:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19797,"name":"uint256","nodeType":"ElementaryTypeName","src":"3308:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3286:37:59"},"returnParameters":{"id":19800,"nodeType":"ParameterList","parameters":[],"src":"3333:0:59"},"scope":20137,"src":"3266:564:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":19864,"nodeType":"StructuredDocumentation","src":"3834:225:59","text":" @dev Returns the address of the asset manager for this reserve. The asset manager is the contract that manages the\n funds to generate additional yields. Can be `address(0)` if no asset manager has been set."},"functionSelector":"94217ad1","id":19870,"implemented":false,"kind":"function","modifiers":[],"name":"assetManager","nameLocation":"4071:12:59","nodeType":"FunctionDefinition","parameters":{"id":19865,"nodeType":"ParameterList","parameters":[],"src":"4083:2:59"},"returnParameters":{"id":19869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19870,"src":"4115:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":19867,"nodeType":"UserDefinedTypeName","pathNode":{"id":19866,"name":"IAssetManager","nameLocations":["4115:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"4115:13:59"},"referencedDeclaration":23421,"src":"4115:13:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"4114:15:59"},"scope":20137,"src":"4062:68:59","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":19871,"nodeType":"StructuredDocumentation","src":"4134:350:59","text":" @dev Internal function that needs to be implemented by child contracts because they might store the asset manager\n address in a different way. This function just stores the value, doesn't do any validation (validations are done on\n `setAssetManager`.\n @param newAM The address of the new asset manager for the reserve."},"id":19877,"implemented":false,"kind":"function","modifiers":[],"name":"_setAssetManager","nameLocation":"4496:16:59","nodeType":"FunctionDefinition","parameters":{"id":19875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19874,"mutability":"mutable","name":"newAM","nameLocation":"4527:5:59","nodeType":"VariableDeclaration","scope":19877,"src":"4513:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":19873,"nodeType":"UserDefinedTypeName","pathNode":{"id":19872,"name":"IAssetManager","nameLocations":["4513:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"4513:13:59"},"referencedDeclaration":23421,"src":"4513:13:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"}],"src":"4512:21:59"},"returnParameters":{"id":19876,"nodeType":"ParameterList","parameters":[],"src":"4550:0:59"},"scope":20137,"src":"4487:64:59","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":19878,"nodeType":"StructuredDocumentation","src":"4555:304:59","text":" @dev Internal function that needs to be implemented by child contracts to record the earnings (or losses if\n negative) generated by the asset management.\n @param earnings The amount of earnings (or losses if negative) generated since last time the earnings were\n recorded."},"id":19883,"implemented":false,"kind":"function","modifiers":[],"name":"_assetEarnings","nameLocation":"4871:14:59","nodeType":"FunctionDefinition","parameters":{"id":19881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19880,"mutability":"mutable","name":"earnings","nameLocation":"4893:8:59","nodeType":"VariableDeclaration","scope":19883,"src":"4886:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19879,"name":"int256","nodeType":"ElementaryTypeName","src":"4886:6:59","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4885:17:59"},"returnParameters":{"id":19882,"nodeType":"ParameterList","parameters":[],"src":"4919:0:59"},"scope":20137,"src":"4862:58:59","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":20042,"nodeType":"Block","src":"5979:1555:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":19899,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"6008:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":19898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6000:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19897,"name":"address","nodeType":"ElementaryTypeName","src":"6000:7:59","typeDescriptions":{}}},"id":19900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6000:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":19903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6026:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6018:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19901,"name":"address","nodeType":"ElementaryTypeName","src":"6018:7:59","typeDescriptions":{}}},"id":19904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6000:28:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":19909,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"6061:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}],"id":19908,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6056:4:59","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":19910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6056:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAssetManager_$23421","typeString":"type(contract IAssetManager)"}},"id":19911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6076:11:59","memberName":"interfaceId","nodeType":"MemberAccess","src":"6056:31:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":19906,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"6032:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"id":19907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6038:17:59","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7882,"src":"6032:23:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":19912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:56:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6000:88:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526573657276653a206173736574206d616e6167657220646f65736e277420696d706c656d656e74732074686520726571756972656420696e74657266616365","id":19914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6096:66:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7","typeString":"literal_string \"Reserve: asset manager doesn't implements the required interface\""},"value":"Reserve: asset manager doesn't implements the required interface"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7","typeString":"literal_string \"Reserve: asset manager doesn't implements the required interface\""}],"id":19896,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5985:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5985:183:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19916,"nodeType":"ExpressionStatement","src":"5985:183:59"},{"assignments":[19918],"declarations":[{"constant":false,"id":19918,"mutability":"mutable","name":"am","nameLocation":"6182:2:59","nodeType":"VariableDeclaration","scope":20042,"src":"6174:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19917,"name":"address","nodeType":"ElementaryTypeName","src":"6174:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":19924,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":19921,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"6195:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":19922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6195:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":19920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6187:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19919,"name":"address","nodeType":"ElementaryTypeName","src":"6187:7:59","typeDescriptions":{}}},"id":19923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6187:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6174:36:59"},{"assignments":[19929],"declarations":[{"constant":false,"id":19929,"mutability":"mutable","name":"action","nameLocation":"6249:6:59","nodeType":"VariableDeclaration","scope":20042,"src":"6216:39:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},"typeName":{"id":19928,"nodeType":"UserDefinedTypeName","pathNode":{"id":19927,"name":"IAccessManager.GovernanceActions","nameLocations":["6216:14:59","6231:17:59"],"nodeType":"IdentifierPath","referencedDeclaration":23301,"src":"6216:32:59"},"referencedDeclaration":23301,"src":"6216:32:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"visibility":"internal"}],"id":19933,"initialValue":{"expression":{"expression":{"id":19930,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"6258:14:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":19931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6273:17:59","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"6258:32:59","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":19932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6291:15:59","memberName":"setAssetManager","nodeType":"MemberAccess","referencedDeclaration":23257,"src":"6258:48:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"nodeType":"VariableDeclarationStatement","src":"6216:90:59"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19934,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"6316:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":19937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6330:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6322:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19935,"name":"address","nodeType":"ElementaryTypeName","src":"6322:7:59","typeDescriptions":{}}},"id":19938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6322:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6316:16:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20002,"nodeType":"IfStatement","src":"6312:987:59","trueBody":{"id":20001,"nodeType":"Block","src":"6334:965:59","statements":[{"condition":{"id":19940,"name":"force","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19889,"src":"6346:5:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19999,"nodeType":"Block","src":"7115:178:59","statements":[{"assignments":[19978],"declarations":[{"constant":false,"id":19978,"mutability":"mutable","name":"result","nameLocation":"7138:6:59","nodeType":"VariableDeclaration","scope":19999,"src":"7125:19:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19977,"name":"bytes","nodeType":"ElementaryTypeName","src":"7125:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19988,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":19983,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"7194:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":19984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7208:11:59","memberName":"deinvestAll","nodeType":"MemberAccess","referencedDeclaration":23420,"src":"7194:25:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$__$returns$_t_int256_$","typeString":"function IAssetManager.deinvestAll() returns (int256)"}},"id":19985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7220:8:59","memberName":"selector","nodeType":"MemberAccess","src":"7194:34:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":19981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7171:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7175:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7171:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":19986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7171:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":19979,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"7147:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7150:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"7147:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":19987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7147:83:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7125:105:59"},{"expression":{"arguments":[{"arguments":[{"id":19992,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19978,"src":"7266:6:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":19994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7275:6:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19993,"name":"int256","nodeType":"ElementaryTypeName","src":"7275:6:59","typeDescriptions":{}}}],"id":19995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7274:8:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":19990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7255:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7259:6:59","memberName":"decode","nodeType":"MemberAccess","src":"7255:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":19996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7255:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19989,"name":"_assetEarnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19883,"src":"7240:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":19997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7240:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19998,"nodeType":"ExpressionStatement","src":"7240:44:59"}]},"id":20000,"nodeType":"IfStatement","src":"6342:951:59","trueBody":{"id":19976,"nodeType":"Block","src":"6353:756:59","statements":[{"assignments":[19942,19944],"declarations":[{"constant":false,"id":19942,"mutability":"mutable","name":"success","nameLocation":"6462:7:59","nodeType":"VariableDeclaration","scope":19976,"src":"6457:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19941,"name":"bool","nodeType":"ElementaryTypeName","src":"6457:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19944,"mutability":"mutable","name":"result","nameLocation":"6484:6:59","nodeType":"VariableDeclaration","scope":19976,"src":"6471:19:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19943,"name":"bytes","nodeType":"ElementaryTypeName","src":"6471:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19954,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":19949,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"6544:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":19950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6558:11:59","memberName":"deinvestAll","nodeType":"MemberAccess","referencedDeclaration":23420,"src":"6544:25:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$__$returns$_t_int256_$","typeString":"function IAssetManager.deinvestAll() returns (int256)"}},"id":19951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6570:8:59","memberName":"selector","nodeType":"MemberAccess","src":"6544:34:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":19947,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6521:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6525:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"6521:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":19952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6521:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":19945,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"6494:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6497:12:59","memberName":"delegatecall","nodeType":"MemberAccess","src":"6494:15:59","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":19953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:95:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6456:133:59"},{"condition":{"id":19956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6603:8:59","subExpression":{"id":19955,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19942,"src":"6604:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19974,"nodeType":"Block","src":"6705:67:59","statements":[{"expression":{"arguments":[{"arguments":[{"id":19967,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19944,"src":"6743:6:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":19969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6752:6:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":19968,"name":"int256","nodeType":"ElementaryTypeName","src":"6752:6:59","typeDescriptions":{}}}],"id":19970,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6751:8:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":19965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6732:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6736:6:59","memberName":"decode","nodeType":"MemberAccess","src":"6732:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":19971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6732:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":19964,"name":"_assetEarnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19883,"src":"6717:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":19972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6717:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19973,"nodeType":"ExpressionStatement","src":"6717:44:59"}]},"id":19975,"nodeType":"IfStatement","src":"6599:173:59","trueBody":{"id":19963,"nodeType":"Block","src":"6613:86:59","statements":[{"expression":{"id":19961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19957,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19929,"src":"6625:6:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19958,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"6634:14:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":19959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6649:17:59","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"6634:32:59","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":19960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6667:21:59","memberName":"setAssetManagerForced","nodeType":"MemberAccess","referencedDeclaration":23258,"src":"6634:54:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"src":"6625:63:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},"id":19962,"nodeType":"ExpressionStatement","src":"6625:63:59"}]}}]}}]}},{"expression":{"arguments":[{"id":20004,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"7321:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20003,"name":"_setAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19877,"src":"7304:16:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IAssetManager_$23421_$returns$__$","typeString":"function (contract IAssetManager)"}},"id":20005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7304:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20006,"nodeType":"ExpressionStatement","src":"7304:23:59"},{"expression":{"id":20013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20007,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"7333:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20010,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"7346:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":20011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7346:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7338:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20008,"name":"address","nodeType":"ElementaryTypeName","src":"7338:7:59","typeDescriptions":{}}},"id":20012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7338:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7333:28:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20014,"nodeType":"ExpressionStatement","src":"7333:28:59"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20015,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"7371:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7385:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7377:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20016,"name":"address","nodeType":"ElementaryTypeName","src":"7377:7:59","typeDescriptions":{}}},"id":20019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7377:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7371:16:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20033,"nodeType":"IfStatement","src":"7367:116:59","trueBody":{"id":20032,"nodeType":"Block","src":"7389:94:59","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":20026,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"7444:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":20027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7458:7:59","memberName":"connect","nodeType":"MemberAccess","referencedDeclaration":23396,"src":"7444:21:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$__$returns$__$","typeString":"function IAssetManager.connect()"}},"id":20028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7466:8:59","memberName":"selector","nodeType":"MemberAccess","src":"7444:30:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":20024,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7421:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7425:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7421:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":20029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7421:54:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":20021,"name":"am","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"7397:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7400:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"7397:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":20030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7397:79:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20031,"nodeType":"ExpressionStatement","src":"7397:79:59"}]}},{"expression":{"arguments":[{"id":20035,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19929,"src":"7506:6:59","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"arguments":[{"id":20038,"name":"newAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"7522:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7514:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20036,"name":"address","nodeType":"ElementaryTypeName","src":"7514:7:59","typeDescriptions":{}}},"id":20039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7514:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20034,"name":"_componentChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"7488:17:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_address_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,address)"}},"id":20040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7488:41:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20041,"nodeType":"ExpressionStatement","src":"7488:41:59"}]},"documentation":{"id":19884,"nodeType":"StructuredDocumentation","src":"4924:918:59","text":" @dev Sets the asset manager for this reserve. If the reserve had previously an asset manager, it will deinvest all\n the funds, making all of the liquid in the reserve balance.\n Requirements:\n - The caller must have been granted of global or component roles GUARDIAN_ROLE or LEVEL1_ROLE.\n Events:\n - Emits ComponentChanged with action setAssetManager or setAssetManagerForced\n @param newAM The address of the new asset manager to assign to the reserve. If is `address(0)` it means the reserve\n will not have an asset manager. If not `address(0)` it MUST be a contract following the IAssetManager interface.\n @param force When a previous asset manager exists, before setting the new one, the funds are deinvested. When\n `force` is true, an error in the deinvestAll() operation is ignored. When `force` is false, if `deinvestAll()`\n fails, it reverts."},"functionSelector":"d80359f1","id":20043,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":19892,"name":"GUARDIAN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17719,"src":"5951:13:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19893,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"5966:11:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19894,"kind":"modifierInvocation","modifierName":{"id":19891,"name":"onlyGlobalOrComponentRole2","nameLocations":["5924:26:59"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"5924:26:59"},"nodeType":"ModifierInvocation","src":"5924:54:59"}],"name":"setAssetManager","nameLocation":"5854:15:59","nodeType":"FunctionDefinition","parameters":{"id":19890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19887,"mutability":"mutable","name":"newAM","nameLocation":"5889:5:59","nodeType":"VariableDeclaration","scope":20043,"src":"5875:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"},"typeName":{"id":19886,"nodeType":"UserDefinedTypeName","pathNode":{"id":19885,"name":"IAssetManager","nameLocations":["5875:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":23421,"src":"5875:13:59"},"referencedDeclaration":23421,"src":"5875:13:59","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}},"visibility":"internal"},{"constant":false,"id":19889,"mutability":"mutable","name":"force","nameLocation":"5905:5:59","nodeType":"VariableDeclaration","scope":20043,"src":"5900:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19888,"name":"bool","nodeType":"ElementaryTypeName","src":"5900:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5869:45:59"},"returnParameters":{"id":19895,"nodeType":"ParameterList","parameters":[],"src":"5979:0:59"},"scope":20137,"src":"5845:1689:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20063,"nodeType":"Block","src":"7913:113:59","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":20057,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"7987:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":20058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8001:9:59","memberName":"rebalance","nodeType":"MemberAccess","referencedDeclaration":23400,"src":"7987:23:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$__$returns$__$","typeString":"function IAssetManager.rebalance()"}},"id":20059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8011:8:59","memberName":"selector","nodeType":"MemberAccess","src":"7987:32:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":20055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7964:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7968:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7964:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":20060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:56:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20051,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"7927:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":20052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7927:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7919:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20049,"name":"address","nodeType":"ElementaryTypeName","src":"7919:7:59","typeDescriptions":{}}},"id":20053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7919:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7943:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"7919:44:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":20061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7919:102:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20062,"nodeType":"ExpressionStatement","src":"7919:102:59"}]},"documentation":{"id":20044,"nodeType":"StructuredDocumentation","src":"7538:330:59","text":" @dev Calls {IAssetManager-rebalance} of the assigned asset manager (fails if no asset manager). This operation is\n intended to give the opportunity to rebalance the liquid and invested for better returns and/or gas optimization.\n - Emits {IAssetManager-MoneyInvested} or {IAssetManager-MoneyDeinvested}"},"functionSelector":"7d7c2a1c","id":20064,"implemented":true,"kind":"function","modifiers":[{"id":20047,"kind":"modifierInvocation","modifierName":{"id":20046,"name":"whenNotPaused","nameLocations":["7899:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"7899:13:59"},"nodeType":"ModifierInvocation","src":"7899:13:59"}],"name":"rebalance","nameLocation":"7880:9:59","nodeType":"FunctionDefinition","parameters":{"id":20045,"nodeType":"ParameterList","parameters":[],"src":"7889:2:59"},"returnParameters":{"id":20048,"nodeType":"ParameterList","parameters":[],"src":"7913:0:59"},"scope":20137,"src":"7871:155:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20096,"nodeType":"Block","src":"8436:202:59","statements":[{"assignments":[20071],"declarations":[{"constant":false,"id":20071,"mutability":"mutable","name":"result","nameLocation":"8455:6:59","nodeType":"VariableDeclaration","scope":20096,"src":"8442:19:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20070,"name":"bytes","nodeType":"ElementaryTypeName","src":"8442:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":20085,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":20080,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"8539:13:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}},"id":20081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8553:14:59","memberName":"recordEarnings","nodeType":"MemberAccess","referencedDeclaration":23406,"src":"8539:28:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$__$returns$_t_int256_$","typeString":"function IAssetManager.recordEarnings() returns (int256)"}},"id":20082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8568:8:59","memberName":"selector","nodeType":"MemberAccess","src":"8539:37:59","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":20078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8516:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8520:18:59","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"8516:22:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":20083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8516:61:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20074,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"8472:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":20075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8472:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8464:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20072,"name":"address","nodeType":"ElementaryTypeName","src":"8464:7:59","typeDescriptions":{}}},"id":20076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8464:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8488:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"8464:44:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":20084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8464:119:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8442:141:59"},{"expression":{"arguments":[{"arguments":[{"id":20089,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20071,"src":"8615:6:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":20091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8624:6:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":20090,"name":"int256","nodeType":"ElementaryTypeName","src":"8624:6:59","typeDescriptions":{}}}],"id":20092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8623:8:59","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":20087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8604:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8608:6:59","memberName":"decode","nodeType":"MemberAccess","src":"8604:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":20093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8604:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":20086,"name":"_assetEarnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19883,"src":"8589:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":20094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8589:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20095,"nodeType":"ExpressionStatement","src":"8589:44:59"}]},"documentation":{"id":20065,"nodeType":"StructuredDocumentation","src":"8030:356:59","text":" @dev Calls {IAssetManager-recordEarnings} of the assigned asset manager (fails if no asset manager). The asset\n manager will return the earnings since last time the earnings where recorded. It then calls `_assetEarnings` to\n reflect the earnings in the way defined for each reserve.\n - Emits {IAssetManager-EarningsRecorded}"},"functionSelector":"4eb978a4","id":20097,"implemented":true,"kind":"function","modifiers":[{"id":20068,"kind":"modifierInvocation","modifierName":{"id":20067,"name":"whenNotPaused","nameLocations":["8422:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"8422:13:59"},"nodeType":"ModifierInvocation","src":"8422:13:59"}],"name":"recordEarnings","nameLocation":"8398:14:59","nodeType":"FunctionDefinition","parameters":{"id":20066,"nodeType":"ParameterList","parameters":[],"src":"8412:2:59"},"returnParameters":{"id":20069,"nodeType":"ParameterList","parameters":[],"src":"8436:0:59"},"scope":20137,"src":"8389:249:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20109,"nodeType":"Block","src":"8854:44:59","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20103,"name":"recordEarnings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20097,"src":"8860:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":20104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8860:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20105,"nodeType":"ExpressionStatement","src":"8860:16:59"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20106,"name":"rebalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20064,"src":"8882:9:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":20107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8882:11:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20108,"nodeType":"ExpressionStatement","src":"8882:11:59"}]},"documentation":{"id":20098,"nodeType":"StructuredDocumentation","src":"8642:164:59","text":" @dev Function that calls both `recordEarnings()` and `rebalance()` (in that order). Usually scheduled to run once a\n day by a keeper or crontask."},"functionSelector":"c2c4c5c1","id":20110,"implemented":true,"kind":"function","modifiers":[{"id":20101,"kind":"modifierInvocation","modifierName":{"id":20100,"name":"whenNotPaused","nameLocations":["8840:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"8840:13:59"},"nodeType":"ModifierInvocation","src":"8840:13:59"}],"name":"checkpoint","nameLocation":"8818:10:59","nodeType":"FunctionDefinition","parameters":{"id":20099,"nodeType":"ParameterList","parameters":[],"src":"8828:2:59"},"returnParameters":{"id":20102,"nodeType":"ParameterList","parameters":[],"src":"8854:0:59"},"scope":20137,"src":"8809:89:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20130,"nodeType":"Block","src":"9523:76:59","statements":[{"expression":{"arguments":[{"id":20127,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20113,"src":"9581:12:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":20123,"name":"assetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"9544:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAssetManager_$23421_$","typeString":"function () view returns (contract IAssetManager)"}},"id":20124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9544:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAssetManager_$23421","typeString":"contract IAssetManager"}],"id":20122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9536:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20121,"name":"address","nodeType":"ElementaryTypeName","src":"9536:7:59","typeDescriptions":{}}},"id":20125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9560:20:59","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":6829,"src":"9536:44:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":20128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":20120,"id":20129,"nodeType":"Return","src":"9529:65:59"}]},"documentation":{"id":20111,"nodeType":"StructuredDocumentation","src":"8902:481:59","text":" @dev This function allows to call custom functions of the asset manager (for example for setting parameters).\n      This functions will be called with `delegatecall`, in the context of the reserve.\n Requirements:\n - The caller must have been granted of global or component roles LEVEL2_ROLE.\n @param functionCall Abi encoded function call to make.\n @return Returns the return value of the function called, to be decoded by the receiver."},"functionSelector":"1e9c4658","id":20131,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":20116,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"9487:11:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20117,"kind":"modifierInvocation","modifierName":{"id":20115,"name":"onlyGlobalOrComponentRole","nameLocations":["9461:25:59"],"nodeType":"IdentifierPath","referencedDeclaration":17811,"src":"9461:25:59"},"nodeType":"ModifierInvocation","src":"9461:38:59"}],"name":"forwardToAssetManager","nameLocation":"9395:21:59","nodeType":"FunctionDefinition","parameters":{"id":20114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20113,"mutability":"mutable","name":"functionCall","nameLocation":"9435:12:59","nodeType":"VariableDeclaration","scope":20131,"src":"9422:25:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20112,"name":"bytes","nodeType":"ElementaryTypeName","src":"9422:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9416:35:59"},"returnParameters":{"id":20120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20131,"src":"9509:12:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20118,"name":"bytes","nodeType":"ElementaryTypeName","src":"9509:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9508:14:59"},"scope":20137,"src":"9386:213:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":20132,"nodeType":"StructuredDocumentation","src":"9603:246:59","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":20136,"mutability":"mutable","name":"__gap","nameLocation":"9872:5:59","nodeType":"VariableDeclaration","scope":20137,"src":"9852:25:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":20133,"name":"uint256","nodeType":"ElementaryTypeName","src":"9852:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20135,"length":{"hexValue":"3530","id":20134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9860:2:59","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"9852:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":20138,"src":"1100:8780:59","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,17740,17747]}],"src":"39:9842:59"},"id":59},"contracts/RiskModule.sol":{"ast":{"absolutePath":"contracts/RiskModule.sol","exportedSymbols":{"IAccessManager":[23370],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"IRiskModule":[23983],"Policy":[15439],"PolicyPoolComponent":[18100],"RiskModule":[21466],"SafeCast":[10290],"WadRayMath":[23243]},"id":21467,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":20139,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:60"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":20141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":10291,"src":"64:73:60","symbolAliases":[{"foreign":{"id":20140,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"72:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":20143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":23244,"src":"138:57:60","symbolAliases":[{"foreign":{"id":20142,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"146:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":20145,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":23807,"src":"196:57:60","symbolAliases":[{"foreign":{"id":20144,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"204:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/PolicyPoolComponent.sol","file":"./PolicyPoolComponent.sol","id":20147,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":18101,"src":"254:62:60","symbolAliases":[{"foreign":{"id":20146,"name":"PolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"262:19:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"./interfaces/IRiskModule.sol","id":20149,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":23984,"src":"317:57:60","symbolAliases":[{"foreign":{"id":20148,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"325:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":20151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":23887,"src":"375:67:60","symbolAliases":[{"foreign":{"id":20150,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"383:16:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./interfaces/IAccessManager.sol","id":20153,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":23371,"src":"443:63:60","symbolAliases":[{"foreign":{"id":20152,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"451:14:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":20155,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21467,"sourceUnit":15440,"src":"507:36:60","symbolAliases":[{"foreign":{"id":20154,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"515:6:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":20157,"name":"IRiskModule","nameLocations":["795:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"795:11:60"},"id":20158,"nodeType":"InheritanceSpecifier","src":"795:11:60"},{"baseName":{"id":20159,"name":"PolicyPoolComponent","nameLocations":["808:19:60"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"808:19:60"},"id":20160,"nodeType":"InheritanceSpecifier","src":"808:19:60"}],"canonicalName":"RiskModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":20156,"nodeType":"StructuredDocumentation","src":"545:217:60","text":" @title Ensuro Risk Module base contract\n @dev Risk Module that keeps the configuration and is responsible for pricing and policy resolution\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":21466,"linearizedBaseContracts":[21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"RiskModule","nameLocation":"781:10:60","nodeType":"ContractDefinition","nodes":[{"global":false,"id":20164,"libraryName":{"id":20161,"name":"Policy","nameLocations":["838:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":15439,"src":"838:6:60"},"nodeType":"UsingForDirective","src":"832:35:60","typeName":{"id":20163,"nodeType":"UserDefinedTypeName","pathNode":{"id":20162,"name":"Policy.PolicyData","nameLocations":["849:6:60","856:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"849:17:60"},"referencedDeclaration":14966,"src":"849:17:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}}},{"global":false,"id":20167,"libraryName":{"id":20165,"name":"WadRayMath","nameLocations":["876:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"876:10:60"},"nodeType":"UsingForDirective","src":"870:29:60","typeName":{"id":20166,"name":"uint256","nodeType":"ElementaryTypeName","src":"891:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":20170,"libraryName":{"id":20168,"name":"SafeCast","nameLocations":["908:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"908:8:60"},"nodeType":"UsingForDirective","src":"902:27:60","typeName":{"id":20169,"name":"uint256","nodeType":"ElementaryTypeName","src":"921:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":20173,"mutability":"constant","name":"SECONDS_IN_YEAR_WAD","nameLocation":"959:19:60","nodeType":"VariableDeclaration","scope":21466,"src":"933:59:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20171,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3331353336303030653138","id":20172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:11:60","typeDescriptions":{"typeIdentifier":"t_rational_31536000000000000000000000_by_1","typeString":"int_const 31536000000000000000000000"},"value":"31536000e18"},"visibility":"internal"},{"constant":true,"id":20176,"mutability":"constant","name":"HOURS_PER_YEAR","nameLocation":"1051:14:60","nodeType":"VariableDeclaration","scope":21466,"src":"1026:46:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20174,"name":"uint16","nodeType":"ElementaryTypeName","src":"1026:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"38373630","id":20175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1068:4:60","typeDescriptions":{"typeIdentifier":"t_rational_8760_by_1","typeString":"int_const 8760"},"value":"8760"},"visibility":"internal"},{"constant":true,"id":20179,"mutability":"constant","name":"FOUR_DECIMAL_TO_WAD","nameLocation":"1118:19:60","nodeType":"VariableDeclaration","scope":21466,"src":"1092:52:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1092:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653134","id":20178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:4:60","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"1e14"},"visibility":"internal"},{"constant":true,"id":20182,"mutability":"constant","name":"HUNDRED_PERCENT","nameLocation":"1173:15:60","nodeType":"VariableDeclaration","scope":21466,"src":"1148:46:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20180,"name":"uint16","nodeType":"ElementaryTypeName","src":"1148:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"316534","id":20181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1191:3:60","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"1e4"},"visibility":"internal"},{"constant":true,"id":20185,"mutability":"constant","name":"MIN_MOC","nameLocation":"1223:7:60","nodeType":"VariableDeclaration","scope":21466,"src":"1198:38:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20183,"name":"uint16","nodeType":"ElementaryTypeName","src":"1198:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"356533","id":20184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:3:60","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5e3"},"visibility":"internal"},{"constant":true,"id":20188,"mutability":"constant","name":"MAX_MOC","nameLocation":"1272:7:60","nodeType":"VariableDeclaration","scope":21466,"src":"1247:38:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20186,"name":"uint16","nodeType":"ElementaryTypeName","src":"1247:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"346534","id":20187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1282:3:60","typeDescriptions":{"typeIdentifier":"t_rational_40000_by_1","typeString":"int_const 40000"},"value":"4e4"},"visibility":"internal"},{"constant":true,"id":20193,"mutability":"constant","name":"RM_PROVIDER_ROLE","nameLocation":"1392:16:60","nodeType":"VariableDeclaration","scope":21466,"src":"1366:74:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1366:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"524d5f50524f56494445525f524f4c45","id":20191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1421:18:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1","typeString":"literal_string \"RM_PROVIDER_ROLE\""},"value":"RM_PROVIDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1","typeString":"literal_string \"RM_PROVIDER_ROLE\""}],"id":20190,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1411:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":20192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1411:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"documentation":{"id":20194,"nodeType":"StructuredDocumentation","src":"1445:61:60","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":20197,"mutability":"immutable","name":"_premiumsAccount","nameLocation":"1545:16:60","nodeType":"VariableDeclaration","scope":21466,"src":"1509:52:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":20196,"nodeType":"UserDefinedTypeName","pathNode":{"id":20195,"name":"IPremiumsAccount","nameLocations":["1509:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"1509:16:60"},"referencedDeclaration":23886,"src":"1509:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"},{"constant":false,"id":20199,"mutability":"mutable","name":"_name","nameLocation":"1581:5:60","nodeType":"VariableDeclaration","scope":21466,"src":"1566:20:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":20198,"name":"string","nodeType":"ElementaryTypeName","src":"1566:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"canonicalName":"RiskModule.PackedParams","id":20220,"members":[{"constant":false,"id":20201,"mutability":"mutable","name":"moc","nameLocation":"1624:3:60","nodeType":"VariableDeclaration","scope":20220,"src":"1617:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20200,"name":"uint16","nodeType":"ElementaryTypeName","src":"1617:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20203,"mutability":"mutable","name":"jrCollRatio","nameLocation":"1715:11:60","nodeType":"VariableDeclaration","scope":20220,"src":"1708:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20202,"name":"uint16","nodeType":"ElementaryTypeName","src":"1708:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20205,"mutability":"mutable","name":"collRatio","nameLocation":"1821:9:60","nodeType":"VariableDeclaration","scope":20220,"src":"1814:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20204,"name":"uint16","nodeType":"ElementaryTypeName","src":"1814:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20207,"mutability":"mutable","name":"ensuroPpFee","nameLocation":"1930:11:60","nodeType":"VariableDeclaration","scope":20220,"src":"1923:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20206,"name":"uint16","nodeType":"ElementaryTypeName","src":"1923:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20209,"mutability":"mutable","name":"ensuroCocFee","nameLocation":"2021:12:60","nodeType":"VariableDeclaration","scope":20220,"src":"2014:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20208,"name":"uint16","nodeType":"ElementaryTypeName","src":"2014:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20211,"mutability":"mutable","name":"jrRoc","nameLocation":"2104:5:60","nodeType":"VariableDeclaration","scope":20220,"src":"2097:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20210,"name":"uint16","nodeType":"ElementaryTypeName","src":"2097:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20213,"mutability":"mutable","name":"srRoc","nameLocation":"2199:5:60","nodeType":"VariableDeclaration","scope":20220,"src":"2192:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20212,"name":"uint16","nodeType":"ElementaryTypeName","src":"2192:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":20215,"mutability":"mutable","name":"maxPayoutPerPolicy","nameLocation":"2294:18:60","nodeType":"VariableDeclaration","scope":20220,"src":"2287:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":20214,"name":"uint32","nodeType":"ElementaryTypeName","src":"2287:6:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":20217,"mutability":"mutable","name":"exposureLimit","nameLocation":"2363:13:60","nodeType":"VariableDeclaration","scope":20220,"src":"2356:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":20216,"name":"uint32","nodeType":"ElementaryTypeName","src":"2356:6:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":20219,"mutability":"mutable","name":"maxDuration","nameLocation":"2466:11:60","nodeType":"VariableDeclaration","scope":20220,"src":"2459:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20218,"name":"uint16","nodeType":"ElementaryTypeName","src":"2459:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"PackedParams","nameLocation":"1598:12:60","nodeType":"StructDefinition","scope":21466,"src":"1591:925:60","visibility":"public"},{"constant":false,"id":20223,"mutability":"mutable","name":"_params","nameLocation":"2542:7:60","nodeType":"VariableDeclaration","scope":21466,"src":"2520:29:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":20222,"nodeType":"UserDefinedTypeName","pathNode":{"id":20221,"name":"PackedParams","nameLocations":["2520:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"2520:12:60"},"referencedDeclaration":20220,"src":"2520:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"},{"constant":false,"id":20225,"mutability":"mutable","name":"_activeExposure","nameLocation":"2571:15:60","nodeType":"VariableDeclaration","scope":21466,"src":"2554:32:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20224,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20227,"mutability":"mutable","name":"_wallet","nameLocation":"2656:7:60","nodeType":"VariableDeclaration","scope":21466,"src":"2639:24:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20226,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"errorSelector":"9a3850d2","id":20229,"name":"NoZeroWallet","nameLocation":"2712:12:60","nodeType":"ErrorDefinition","parameters":{"id":20228,"nodeType":"ParameterList","parameters":[],"src":"2724:2:60"},"src":"2706:21:60"},{"errorSelector":"35b9948a","id":20231,"name":"ExposureLimitCannotBeLessThanActiveExposure","nameLocation":"2736:43:60","nodeType":"ErrorDefinition","parameters":{"id":20230,"nodeType":"ParameterList","parameters":[],"src":"2779:2:60"},"src":"2730:52:60"},{"errorSelector":"fec343d5","id":20233,"name":"PremiumsAccountMustBePartOfThePool","nameLocation":"2791:34:60","nodeType":"ErrorDefinition","parameters":{"id":20232,"nodeType":"ParameterList","parameters":[],"src":"2825:2:60"},"src":"2785:43:60"},{"errorSelector":"143e1f84","id":20235,"name":"UpgradeCannotChangePremiumsAccount","nameLocation":"2837:34:60","nodeType":"ErrorDefinition","parameters":{"id":20234,"nodeType":"ParameterList","parameters":[],"src":"2871:2:60"},"src":"2831:43:60"},{"body":{"id":20267,"nodeType":"Block","src":"3034:189:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"id":20257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":20251,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20242,"src":"3072:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}],"id":20250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3064:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20249,"name":"address","nodeType":"ElementaryTypeName","src":"3064:7:60","typeDescriptions":{}}},"id":20252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3064:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20248,"name":"PolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"3044:19:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyPoolComponent_$18100_$","typeString":"type(contract PolicyPoolComponent)"}},"id":20253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyPoolComponent_$18100","typeString":"contract PolicyPoolComponent"}},"id":20254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3091:10:60","memberName":"policyPool","nodeType":"MemberAccess","referencedDeclaration":17962,"src":"3044:57:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPolicyPool_$23806_$","typeString":"function () view external returns (contract IPolicyPool)"}},"id":20255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:59:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":20256,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20239,"src":"3107:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"src":"3044:74:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20262,"nodeType":"IfStatement","src":"3040:138:60","trueBody":{"id":20261,"nodeType":"Block","src":"3120:58:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20258,"name":"PremiumsAccountMustBePartOfThePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20233,"src":"3135:34:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":20259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:36:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20260,"nodeType":"RevertStatement","src":"3128:43:60"}]}},{"expression":{"id":20265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20263,"name":"_premiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20197,"src":"3183:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20264,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20242,"src":"3202:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"src":"3183:35:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"id":20266,"nodeType":"ExpressionStatement","src":"3183:35:60"}]},"documentation":{"id":20236,"nodeType":"StructuredDocumentation","src":"2878:48:60","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":20268,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":20245,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20239,"src":"3021:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":20246,"kind":"baseConstructorSpecifier","modifierName":{"id":20244,"name":"PolicyPoolComponent","nameLocations":["3001:19:60"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"3001:19:60"},"nodeType":"ModifierInvocation","src":"3001:32:60"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":20243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20239,"mutability":"mutable","name":"policyPool_","nameLocation":"2953:11:60","nodeType":"VariableDeclaration","scope":20268,"src":"2941:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":20238,"nodeType":"UserDefinedTypeName","pathNode":{"id":20237,"name":"IPolicyPool","nameLocations":["2941:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"2941:11:60"},"referencedDeclaration":23806,"src":"2941:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":20242,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"2983:16:60","nodeType":"VariableDeclaration","scope":20268,"src":"2966:33:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":20241,"nodeType":"UserDefinedTypeName","pathNode":{"id":20240,"name":"IPremiumsAccount","nameLocations":["2966:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"2966:16:60"},"referencedDeclaration":23886,"src":"2966:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"2940:60:60"},"returnParameters":{"id":20247,"nodeType":"ParameterList","parameters":[],"src":"3034:0:60"},"scope":21466,"src":"2929:294:60","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20301,"nodeType":"Block","src":"4092:159:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20288,"name":"__PolicyPoolComponent_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17875,"src":"4098:26:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":20289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4098:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20290,"nodeType":"ExpressionStatement","src":"4098:28:60"},{"expression":{"arguments":[{"id":20292,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20271,"src":"4160:5:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20293,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20273,"src":"4167:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20294,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20275,"src":"4179:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20295,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20277,"src":"4193:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20296,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20279,"src":"4201:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20297,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20281,"src":"4222:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20298,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20283,"src":"4238:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20291,"name":"__RiskModule_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20364,"src":"4132:27:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,uint256,uint256,uint256,uint256,uint256,address)"}},"id":20299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:114:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20300,"nodeType":"ExpressionStatement","src":"4132:114:60"}]},"documentation":{"id":20269,"nodeType":"StructuredDocumentation","src":"3227:577:60","text":" @dev Initializes the RiskModule\n @param name_ Name of the Risk Module\n @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in wad)\n @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in wad)\n @param srRoc_ return on capital paid to LPs (annualized percentage - in wad)\n @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n @param wallet_ Address of the RiskModule provider"},"id":20302,"implemented":true,"kind":"function","modifiers":[{"id":20286,"kind":"modifierInvocation","modifierName":{"id":20285,"name":"onlyInitializing","nameLocations":["4075:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"4075:16:60"},"nodeType":"ModifierInvocation","src":"4075:16:60"}],"name":"__RiskModule_init","nameLocation":"3867:17:60","nodeType":"FunctionDefinition","parameters":{"id":20284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20271,"mutability":"mutable","name":"name_","nameLocation":"3904:5:60","nodeType":"VariableDeclaration","scope":20302,"src":"3890:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20270,"name":"string","nodeType":"ElementaryTypeName","src":"3890:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20273,"mutability":"mutable","name":"collRatio_","nameLocation":"3923:10:60","nodeType":"VariableDeclaration","scope":20302,"src":"3915:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20272,"name":"uint256","nodeType":"ElementaryTypeName","src":"3915:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20275,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"3947:12:60","nodeType":"VariableDeclaration","scope":20302,"src":"3939:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20274,"name":"uint256","nodeType":"ElementaryTypeName","src":"3939:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20277,"mutability":"mutable","name":"srRoc_","nameLocation":"3973:6:60","nodeType":"VariableDeclaration","scope":20302,"src":"3965:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20279,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"3993:19:60","nodeType":"VariableDeclaration","scope":20302,"src":"3985:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3985:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20281,"mutability":"mutable","name":"exposureLimit_","nameLocation":"4026:14:60","nodeType":"VariableDeclaration","scope":20302,"src":"4018:22:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20280,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20283,"mutability":"mutable","name":"wallet_","nameLocation":"4054:7:60","nodeType":"VariableDeclaration","scope":20302,"src":"4046:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20282,"name":"address","nodeType":"ElementaryTypeName","src":"4046:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3884:181:60"},"returnParameters":{"id":20287,"nodeType":"ParameterList","parameters":[],"src":"4092:0:60"},"scope":21466,"src":"3858:393:60","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":20363,"nodeType":"Block","src":"4550:483:60","statements":[{"expression":{"id":20323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20321,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20199,"src":"4556:5:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20322,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20304,"src":"4564:5:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"4556:13:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":20324,"nodeType":"ExpressionStatement","src":"4556:13:60"},{"expression":{"id":20350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20325,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"4575:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20327,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"4611:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"30","id":20328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4647:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":20330,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20306,"src":"4675:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20329,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"4667:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4667:19:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":20333,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20308,"src":"4715:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20332,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"4707:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4707:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"30","id":20335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4750:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":20336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4766:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":20338,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"4790:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20337,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"4782:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:15:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"hexValue":"32","id":20341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4836:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"id":20342,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"4839:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20340,"name":"_amountToX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20629,"src":"4825:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint8,uint256) view returns (uint32)"}},"id":20343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4825:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"hexValue":"30","id":20345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4893:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":20346,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20314,"src":"4896:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20344,"name":"_amountToX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20629,"src":"4882:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint8,uint256) view returns (uint32)"}},"id":20347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4882:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":20348,"name":"HOURS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20176,"src":"4932:14:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20326,"name":"PackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"4585:12:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PackedParams_$20220_storage_ptr_$","typeString":"type(struct RiskModule.PackedParams storage pointer)"}},"id":20349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4606:3:60","4634:11:60","4656:9:60","4694:11:60","4736:12:60","4759:5:60","4775:5:60","4805:18:60","4867:13:60","4919:11:60"],"names":["moc","jrCollRatio","collRatio","ensuroPpFee","ensuroCocFee","jrRoc","srRoc","maxPayoutPerPolicy","exposureLimit","maxDuration"],"nodeType":"FunctionCall","src":"4585:368:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"src":"4575:378:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20351,"nodeType":"ExpressionStatement","src":"4575:378:60"},{"expression":{"id":20354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20352,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"4959:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4977:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4959:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20355,"nodeType":"ExpressionStatement","src":"4959:19:60"},{"expression":{"id":20358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20356,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20227,"src":"4984:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20357,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20316,"src":"4994:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4984:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20359,"nodeType":"ExpressionStatement","src":"4984:17:60"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20360,"name":"_validateParameters","nodeType":"Identifier","overloadedDeclarations":[20445],"referencedDeclaration":20445,"src":"5007:19:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":20361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5007:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20362,"nodeType":"ExpressionStatement","src":"5007:21:60"}]},"id":20364,"implemented":true,"kind":"function","modifiers":[{"id":20319,"kind":"modifierInvocation","modifierName":{"id":20318,"name":"onlyInitializing","nameLocations":["4533:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":889,"src":"4533:16:60"},"nodeType":"ModifierInvocation","src":"4533:16:60"}],"name":"__RiskModule_init_unchained","nameLocation":"4315:27:60","nodeType":"FunctionDefinition","parameters":{"id":20317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20304,"mutability":"mutable","name":"name_","nameLocation":"4362:5:60","nodeType":"VariableDeclaration","scope":20364,"src":"4348:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20303,"name":"string","nodeType":"ElementaryTypeName","src":"4348:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20306,"mutability":"mutable","name":"collRatio_","nameLocation":"4381:10:60","nodeType":"VariableDeclaration","scope":20364,"src":"4373:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20305,"name":"uint256","nodeType":"ElementaryTypeName","src":"4373:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20308,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"4405:12:60","nodeType":"VariableDeclaration","scope":20364,"src":"4397:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20307,"name":"uint256","nodeType":"ElementaryTypeName","src":"4397:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20310,"mutability":"mutable","name":"srRoc_","nameLocation":"4431:6:60","nodeType":"VariableDeclaration","scope":20364,"src":"4423:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20309,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20312,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"4451:19:60","nodeType":"VariableDeclaration","scope":20364,"src":"4443:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20311,"name":"uint256","nodeType":"ElementaryTypeName","src":"4443:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20314,"mutability":"mutable","name":"exposureLimit_","nameLocation":"4484:14:60","nodeType":"VariableDeclaration","scope":20364,"src":"4476:22:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20313,"name":"uint256","nodeType":"ElementaryTypeName","src":"4476:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20316,"mutability":"mutable","name":"wallet_","nameLocation":"4512:7:60","nodeType":"VariableDeclaration","scope":20364,"src":"4504:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20315,"name":"address","nodeType":"ElementaryTypeName","src":"4504:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4342:181:60"},"returnParameters":{"id":20320,"nodeType":"ParameterList","parameters":[],"src":"4550:0:60"},"scope":21466,"src":"4306:727:60","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[17907],"body":{"id":20393,"nodeType":"Block","src":"5114:203:60","statements":[{"expression":{"arguments":[{"id":20373,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"5146:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20370,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5120:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_RiskModule_$21466_$","typeString":"type(contract super RiskModule)"}},"id":20372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5126:19:60","memberName":"_upgradeValidations","nodeType":"MemberAccess","referencedDeclaration":17907,"src":"5120:25:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":20374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5120:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20375,"nodeType":"ExpressionStatement","src":"5120:34:60"},{"assignments":[20378],"declarations":[{"constant":false,"id":20378,"mutability":"mutable","name":"newRM","nameLocation":"5172:5:60","nodeType":"VariableDeclaration","scope":20393,"src":"5160:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":20377,"nodeType":"UserDefinedTypeName","pathNode":{"id":20376,"name":"IRiskModule","nameLocations":["5160:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"5160:11:60"},"referencedDeclaration":23983,"src":"5160:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"}],"id":20382,"initialValue":{"arguments":[{"id":20380,"name":"newImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"5192:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20379,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"5180:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":20381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5180:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"VariableDeclarationStatement","src":"5160:40:60"},{"condition":{"commonType":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"id":20387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20383,"name":"newRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20378,"src":"5210:5:60","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"id":20384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5216:15:60","memberName":"premiumsAccount","nodeType":"MemberAccess","referencedDeclaration":23982,"src":"5210:21:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IPremiumsAccount_$23886_$","typeString":"function () view external returns (contract IPremiumsAccount)"}},"id":20385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":20386,"name":"_premiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20197,"src":"5237:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"src":"5210:43:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20392,"nodeType":"IfStatement","src":"5206:107:60","trueBody":{"id":20391,"nodeType":"Block","src":"5255:58:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20388,"name":"UpgradeCannotChangePremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20235,"src":"5270:34:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":20389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:36:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20390,"nodeType":"RevertStatement","src":"5263:43:60"}]}}]},"id":20394,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeValidations","nameLocation":"5046:19:60","nodeType":"FunctionDefinition","overrides":{"id":20368,"nodeType":"OverrideSpecifier","overrides":[],"src":"5105:8:60"},"parameters":{"id":20367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20366,"mutability":"mutable","name":"newImpl","nameLocation":"5074:7:60","nodeType":"VariableDeclaration","scope":20394,"src":"5066:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20365,"name":"address","nodeType":"ElementaryTypeName","src":"5066:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5065:17:60"},"returnParameters":{"id":20369,"nodeType":"ParameterList","parameters":[],"src":"5114:0:60"},"scope":21466,"src":"5037:280:60","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[17931],"body":{"id":20415,"nodeType":"Block","src":"5467:102:60","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20405,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20397,"src":"5504:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":20403,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5480:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_RiskModule_$21466_$","typeString":"type(contract super RiskModule)"}},"id":20404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5486:17:60","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17931,"src":"5480:23:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":20406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5480:36:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":20412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20407,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20397,"src":"5520:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":20409,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"5540:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}],"id":20408,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5535:4:60","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":20410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IRiskModule_$23983","typeString":"type(contract IRiskModule)"}},"id":20411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5553:11:60","memberName":"interfaceId","nodeType":"MemberAccess","src":"5535:29:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5520:44:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5480:84:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":20402,"id":20414,"nodeType":"Return","src":"5473:91:60"}]},"documentation":{"id":20395,"nodeType":"StructuredDocumentation","src":"5321:52:60","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":20416,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5385:17:60","nodeType":"FunctionDefinition","overrides":{"id":20399,"nodeType":"OverrideSpecifier","overrides":[],"src":"5443:8:60"},"parameters":{"id":20398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20397,"mutability":"mutable","name":"interfaceId","nameLocation":"5410:11:60","nodeType":"VariableDeclaration","scope":20416,"src":"5403:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":20396,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5403:6:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5402:20:60"},"returnParameters":{"id":20402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20416,"src":"5461:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20400,"name":"bool","nodeType":"ElementaryTypeName","src":"5461:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5460:6:60"},"scope":21466,"src":"5376:193:60","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18060],"body":{"id":20444,"nodeType":"Block","src":"5681:257:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20420,"name":"exposureLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20655,"src":"5728:13:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5728:15:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20422,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"5746:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5728:33:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20428,"nodeType":"IfStatement","src":"5724:106:60","trueBody":{"id":20427,"nodeType":"Block","src":"5763:67:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20424,"name":"ExposureLimitCannotBeLessThanActiveExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20231,"src":"5778:43:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":20425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5778:45:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20426,"nodeType":"RevertStatement","src":"5771:52:60"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20429,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20227,"src":"5839:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":20432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5858:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5850:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20430,"name":"address","nodeType":"ElementaryTypeName","src":"5850:7:60","typeDescriptions":{}}},"id":20433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5839:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20439,"nodeType":"IfStatement","src":"5835:63:60","trueBody":{"id":20438,"nodeType":"Block","src":"5862:36:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20435,"name":"NoZeroWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20229,"src":"5877:12:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":20436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20437,"nodeType":"RevertStatement","src":"5870:21:60"}]}},{"expression":{"arguments":[{"id":20441,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"5925:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}],"id":20440,"name":"_validatePackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"5903:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PackedParams_$20220_storage_ptr_$returns$__$","typeString":"function (struct RiskModule.PackedParams storage pointer) view"}},"id":20442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5903:30:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20443,"nodeType":"ExpressionStatement","src":"5903:30:60"}]},"id":20445,"implemented":true,"kind":"function","modifiers":[],"name":"_validateParameters","nameLocation":"5628:19:60","nodeType":"FunctionDefinition","overrides":{"id":20418,"nodeType":"OverrideSpecifier","overrides":[],"src":"5672:8:60"},"parameters":{"id":20417,"nodeType":"ParameterList","parameters":[],"src":"5647:2:60"},"returnParameters":{"id":20419,"nodeType":"ParameterList","parameters":[],"src":"5681:0:60"},"scope":21466,"src":"5619:319:60","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":20539,"nodeType":"Block","src":"6017:879:60","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20452,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6031:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6039:11:60","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":20203,"src":"6031:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20454,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6054:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6031:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265203c3d31","id":20456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6071:37:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a","typeString":"literal_string \"Validation: jrCollRatio must be <=1\""},"value":"Validation: jrCollRatio must be <=1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a","typeString":"literal_string \"Validation: jrCollRatio must be <=1\""}],"id":20451,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6023:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6023:86:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20458,"nodeType":"ExpressionStatement","src":"6023:86:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20460,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6123:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6131:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"6123:17:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20462,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6144:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6123:36:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20464,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6163:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6171:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"6163:17:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6183:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6163:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6123:61:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d31","id":20469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6186:35:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5","typeString":"literal_string \"Validation: collRatio must be <=1\""},"value":"Validation: collRatio must be <=1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5","typeString":"literal_string \"Validation: collRatio must be <=1\""}],"id":20459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6115:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6115:107:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20471,"nodeType":"ExpressionStatement","src":"6115:107:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20473,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6236:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6244:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"6236:17:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":20475,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6257:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6265:11:60","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":20203,"src":"6257:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6236:40:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526174696f","id":20478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6278:38:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d","typeString":"literal_string \"Validation: collRatio >= jrCollRatio\""},"value":"Validation: collRatio >= jrCollRatio"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d","typeString":"literal_string \"Validation: collRatio >= jrCollRatio\""}],"id":20472,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6228:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:89:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20480,"nodeType":"ExpressionStatement","src":"6228:89:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20482,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6331:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6339:3:60","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"6331:11:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20484,"name":"MAX_MOC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20188,"src":"6346:7:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6331:22:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20486,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6357:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6365:3:60","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"6357:11:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20488,"name":"MIN_MOC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20185,"src":"6372:7:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6357:22:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6331:48:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","id":20491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6381:34:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92","typeString":"literal_string \"Validation: moc must be [0.5, 4]\""},"value":"Validation: moc must be [0.5, 4]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92","typeString":"literal_string \"Validation: moc must be [0.5, 4]\""}],"id":20481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6323:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6323:93:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20493,"nodeType":"ExpressionStatement","src":"6323:93:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20495,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6430:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6438:11:60","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":20207,"src":"6430:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20497,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6453:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6430:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d757374206265203c3d2031","id":20499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6470:38:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574","typeString":"literal_string \"Validation: ensuroPpFee must be <= 1\""},"value":"Validation: ensuroPpFee must be <= 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574","typeString":"literal_string \"Validation: ensuroPpFee must be <= 1\""}],"id":20494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6422:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6422:87:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20501,"nodeType":"ExpressionStatement","src":"6422:87:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20503,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6523:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6531:12:60","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":20209,"src":"6523:20:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20505,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6547:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6523:39:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265203c3d2031","id":20507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6564:39:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06","typeString":"literal_string \"Validation: ensuroCocFee must be <= 1\""},"value":"Validation: ensuroCocFee must be <= 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06","typeString":"literal_string \"Validation: ensuroCocFee must be <= 1\""}],"id":20502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6515:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6515:89:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20509,"nodeType":"ExpressionStatement","src":"6515:89:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20511,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6618:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6626:5:60","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":20213,"src":"6618:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20513,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6635:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6618:32:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d203120283130302529","id":20515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6652:39:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2","typeString":"literal_string \"Validation: srRoc must be <= 1 (100%)\""},"value":"Validation: srRoc must be <= 1 (100%)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2","typeString":"literal_string \"Validation: srRoc must be <= 1 (100%)\""}],"id":20510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6610:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6610:82:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20517,"nodeType":"ExpressionStatement","src":"6610:82:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":20522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20519,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6706:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6714:5:60","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":20211,"src":"6706:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20521,"name":"HUNDRED_PERCENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"6723:15:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6706:32:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d203120283130302529","id":20523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6740:39:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f","typeString":"literal_string \"Validation: jrRoc must be <= 1 (100%)\""},"value":"Validation: jrRoc must be <= 1 (100%)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f","typeString":"literal_string \"Validation: jrRoc must be <= 1 (100%)\""}],"id":20518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6698:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6698:82:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20525,"nodeType":"ExpressionStatement","src":"6698:82:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":20530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20527,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6794:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6802:13:60","memberName":"exposureLimit","nodeType":"MemberAccess","referencedDeclaration":20217,"src":"6794:21:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6818:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6794:25:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":20534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20531,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20448,"src":"6823:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":20532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6831:18:60","memberName":"maxPayoutPerPolicy","nodeType":"MemberAccess","referencedDeclaration":20215,"src":"6823:26:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6823:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6794:59:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e30","id":20536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6855:35:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53","typeString":"literal_string \"Exposure and MaxPayout must be >0\""},"value":"Exposure and MaxPayout must be >0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53","typeString":"literal_string \"Exposure and MaxPayout must be >0\""}],"id":20526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6786:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6786:105:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20538,"nodeType":"ExpressionStatement","src":"6786:105:60"}]},"id":20540,"implemented":true,"kind":"function","modifiers":[],"name":"_validatePackedParams","nameLocation":"5951:21:60","nodeType":"FunctionDefinition","parameters":{"id":20449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20448,"mutability":"mutable","name":"params_","nameLocation":"5994:7:60","nodeType":"VariableDeclaration","scope":20540,"src":"5973:28:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":20447,"nodeType":"UserDefinedTypeName","pathNode":{"id":20446,"name":"PackedParams","nameLocations":["5973:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"5973:12:60"},"referencedDeclaration":20220,"src":"5973:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"}],"src":"5972:30:60"},"returnParameters":{"id":20450,"nodeType":"ParameterList","parameters":[],"src":"6017:0:60"},"scope":21466,"src":"5942:954:60","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[23932],"body":{"id":20548,"nodeType":"Block","src":"6961:23:60","statements":[{"expression":{"id":20546,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20199,"src":"6974:5:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":20545,"id":20547,"nodeType":"Return","src":"6967:12:60"}]},"functionSelector":"06fdde03","id":20549,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"6909:4:60","nodeType":"FunctionDefinition","overrides":{"id":20542,"nodeType":"OverrideSpecifier","overrides":[],"src":"6928:8:60"},"parameters":{"id":20541,"nodeType":"ParameterList","parameters":[],"src":"6913:2:60"},"returnParameters":{"id":20545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20549,"src":"6946:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20543,"name":"string","nodeType":"ElementaryTypeName","src":"6946:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6945:15:60"},"scope":21466,"src":"6900:84:60","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":20563,"nodeType":"Block","src":"7102:93:60","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20551,"src":"7162:5:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7154:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20556,"name":"uint256","nodeType":"ElementaryTypeName","src":"7154:7:60","typeDescriptions":{}}},"id":20559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":20560,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"7171:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7154:36:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20555,"id":20562,"nodeType":"Return","src":"7147:43:60"}]},"id":20564,"implemented":true,"kind":"function","modifiers":[],"name":"_4toWad","nameLocation":"7048:7:60","nodeType":"FunctionDefinition","parameters":{"id":20552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20551,"mutability":"mutable","name":"value","nameLocation":"7063:5:60","nodeType":"VariableDeclaration","scope":20564,"src":"7056:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20550,"name":"uint16","nodeType":"ElementaryTypeName","src":"7056:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"7055:14:60"},"returnParameters":{"id":20555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20564,"src":"7093:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20553,"name":"uint256","nodeType":"ElementaryTypeName","src":"7093:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7092:9:60"},"scope":21466,"src":"7039:156:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":20578,"nodeType":"Block","src":"7262:83:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20566,"src":"7301:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":20572,"name":"FOUR_DECIMAL_TO_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"7309:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7301:27:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20574,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7300:29:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7330:8:60","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9502,"src":"7300:38:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7300:40:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":20570,"id":20577,"nodeType":"Return","src":"7293:47:60"}]},"id":20579,"implemented":true,"kind":"function","modifiers":[],"name":"_wadTo4","nameLocation":"7208:7:60","nodeType":"FunctionDefinition","parameters":{"id":20567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20566,"mutability":"mutable","name":"value","nameLocation":"7224:5:60","nodeType":"VariableDeclaration","scope":20579,"src":"7216:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20565,"name":"uint256","nodeType":"ElementaryTypeName","src":"7216:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7215:15:60"},"returnParameters":{"id":20570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20579,"src":"7254:6:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":20568,"name":"uint16","nodeType":"ElementaryTypeName","src":"7254:6:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"7253:8:60"},"scope":21466,"src":"7199:146:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":20603,"nodeType":"Block","src":"7482:127:60","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20583,"src":"7555:5:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":20589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7547:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7547:7:60","typeDescriptions":{}}},"id":20591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7547:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":20592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7564:2:60","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20593,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"7571:8:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":20594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7571:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":20595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7582:8:60","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"7571:19:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":20596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7571:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":20597,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20581,"src":"7595:8:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7571:32:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":20599,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7570:34:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7564:40:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7547:57:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20587,"id":20602,"nodeType":"Return","src":"7540:64:60"}]},"id":20604,"implemented":true,"kind":"function","modifiers":[],"name":"_XtoAmount","nameLocation":"7409:10:60","nodeType":"FunctionDefinition","parameters":{"id":20584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20581,"mutability":"mutable","name":"decimals","nameLocation":"7426:8:60","nodeType":"VariableDeclaration","scope":20604,"src":"7420:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20580,"name":"uint8","nodeType":"ElementaryTypeName","src":"7420:5:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":20583,"mutability":"mutable","name":"value","nameLocation":"7443:5:60","nodeType":"VariableDeclaration","scope":20604,"src":"7436:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":20582,"name":"uint32","nodeType":"ElementaryTypeName","src":"7436:6:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"7419:30:60"},"returnParameters":{"id":20587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20604,"src":"7473:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20585,"name":"uint256","nodeType":"ElementaryTypeName","src":"7473:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7472:9:60"},"scope":21466,"src":"7400:209:60","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":20628,"nodeType":"Block","src":"7695:151:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20613,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20608,"src":"7781:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":20614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7789:2:60","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":20615,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"7796:8:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":20616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7796:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":20617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7807:8:60","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":6065,"src":"7796:19:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":20618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7796:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":20619,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20606,"src":"7820:8:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7796:32:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":20621,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7795:34:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7789:40:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7781:48:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20624,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7780:50:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7831:8:60","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":9452,"src":"7780:59:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint32)"}},"id":20626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7780:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":20612,"id":20627,"nodeType":"Return","src":"7773:68:60"}]},"id":20629,"implemented":true,"kind":"function","modifiers":[],"name":"_amountToX","nameLocation":"7622:10:60","nodeType":"FunctionDefinition","parameters":{"id":20609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20606,"mutability":"mutable","name":"decimals","nameLocation":"7639:8:60","nodeType":"VariableDeclaration","scope":20629,"src":"7633:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20605,"name":"uint8","nodeType":"ElementaryTypeName","src":"7633:5:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":20608,"mutability":"mutable","name":"value","nameLocation":"7657:5:60","nodeType":"VariableDeclaration","scope":20629,"src":"7649:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20607,"name":"uint256","nodeType":"ElementaryTypeName","src":"7649:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7632:31:60"},"returnParameters":{"id":20612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20629,"src":"7687:6:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":20610,"name":"uint32","nodeType":"ElementaryTypeName","src":"7687:6:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"7686:8:60"},"scope":21466,"src":"7613:233:60","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[23951],"body":{"id":20641,"nodeType":"Block","src":"7919:59:60","statements":[{"expression":{"arguments":[{"hexValue":"32","id":20636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7943:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"expression":{"id":20637,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"7946:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7954:18:60","memberName":"maxPayoutPerPolicy","nodeType":"MemberAccess","referencedDeclaration":20215,"src":"7946:26:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":20635,"name":"_XtoAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20604,"src":"7932:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint8,uint32) view returns (uint256)"}},"id":20639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7932:41:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20634,"id":20640,"nodeType":"Return","src":"7925:48:60"}]},"functionSelector":"cfd4c606","id":20642,"implemented":true,"kind":"function","modifiers":[],"name":"maxPayoutPerPolicy","nameLocation":"7859:18:60","nodeType":"FunctionDefinition","overrides":{"id":20631,"nodeType":"OverrideSpecifier","overrides":[],"src":"7892:8:60"},"parameters":{"id":20630,"nodeType":"ParameterList","parameters":[],"src":"7877:2:60"},"returnParameters":{"id":20634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20642,"src":"7910:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20632,"name":"uint256","nodeType":"ElementaryTypeName","src":"7910:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7909:9:60"},"scope":21466,"src":"7850:128:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23963],"body":{"id":20654,"nodeType":"Block","src":"8046:54:60","statements":[{"expression":{"arguments":[{"hexValue":"30","id":20649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":20650,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8073:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:13:60","memberName":"exposureLimit","nodeType":"MemberAccess","referencedDeclaration":20217,"src":"8073:21:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":20648,"name":"_XtoAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20604,"src":"8059:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint32_$returns$_t_uint256_$","typeString":"function (uint8,uint32) view returns (uint256)"}},"id":20652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8059:36:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20647,"id":20653,"nodeType":"Return","src":"8052:43:60"}]},"functionSelector":"85272a6e","id":20655,"implemented":true,"kind":"function","modifiers":[],"name":"exposureLimit","nameLocation":"7991:13:60","nodeType":"FunctionDefinition","overrides":{"id":20644,"nodeType":"OverrideSpecifier","overrides":[],"src":"8019:8:60"},"parameters":{"id":20643,"nodeType":"ParameterList","parameters":[],"src":"8004:2:60"},"returnParameters":{"id":20647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20655,"src":"8037:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20645,"name":"uint256","nodeType":"ElementaryTypeName","src":"8037:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8036:9:60"},"scope":21466,"src":"7982:118:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23945],"body":{"id":20664,"nodeType":"Block","src":"8166:37:60","statements":[{"expression":{"expression":{"id":20661,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8179:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8187:11:60","memberName":"maxDuration","nodeType":"MemberAccess","referencedDeclaration":20219,"src":"8179:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":20660,"id":20663,"nodeType":"Return","src":"8172:26:60"}]},"functionSelector":"6db5c8fd","id":20665,"implemented":true,"kind":"function","modifiers":[],"name":"maxDuration","nameLocation":"8113:11:60","nodeType":"FunctionDefinition","overrides":{"id":20657,"nodeType":"OverrideSpecifier","overrides":[],"src":"8139:8:60"},"parameters":{"id":20656,"nodeType":"ParameterList","parameters":[],"src":"8124:2:60"},"returnParameters":{"id":20660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20665,"src":"8157:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20658,"name":"uint256","nodeType":"ElementaryTypeName","src":"8157:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8156:9:60"},"scope":21466,"src":"8104:99:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23957],"body":{"id":20673,"nodeType":"Block","src":"8272:33:60","statements":[{"expression":{"id":20671,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"8285:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20670,"id":20672,"nodeType":"Return","src":"8278:22:60"}]},"functionSelector":"7ff8bf25","id":20674,"implemented":true,"kind":"function","modifiers":[],"name":"activeExposure","nameLocation":"8216:14:60","nodeType":"FunctionDefinition","overrides":{"id":20667,"nodeType":"OverrideSpecifier","overrides":[],"src":"8245:8:60"},"parameters":{"id":20666,"nodeType":"ParameterList","parameters":[],"src":"8230:2:60"},"returnParameters":{"id":20670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20674,"src":"8263:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20668,"name":"uint256","nodeType":"ElementaryTypeName","src":"8263:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8262:9:60"},"scope":21466,"src":"8207:98:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[23969],"body":{"id":20682,"nodeType":"Block","src":"8366:25:60","statements":[{"expression":{"id":20680,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20227,"src":"8379:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20679,"id":20681,"nodeType":"Return","src":"8372:14:60"}]},"functionSelector":"521eb273","id":20683,"implemented":true,"kind":"function","modifiers":[],"name":"wallet","nameLocation":"8318:6:60","nodeType":"FunctionDefinition","overrides":{"id":20676,"nodeType":"OverrideSpecifier","overrides":[],"src":"8339:8:60"},"parameters":{"id":20675,"nodeType":"ParameterList","parameters":[],"src":"8324:2:60"},"returnParameters":{"id":20679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20683,"src":"8357:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20677,"name":"address","nodeType":"ElementaryTypeName","src":"8357:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8356:9:60"},"scope":21466,"src":"8309:82:60","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":20874,"nodeType":"Block","src":"8510:1308:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20695,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8520:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20696,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8529:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8539:3:60","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":23893,"src":"8529:13:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8520:22:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20708,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8600:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20709,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8609:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8619:11:60","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":23894,"src":"8609:21:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8600:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20721,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8696:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20722,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8705:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8715:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":23895,"src":"8705:19:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8696:28:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20734,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8788:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20735,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8797:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8807:11:60","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":23896,"src":"8797:21:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8788:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20747,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8884:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20748,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8893:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8903:12:60","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":23897,"src":"8893:22:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8884:31:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20760,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"8982:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20761,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"8991:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9001:5:60","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":23898,"src":"8991:15:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"8982:24:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20773,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"9066:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20774,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"9075:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9085:5:60","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":23899,"src":"9075:15:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"9066:24:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20786,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"9150:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20787,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"9159:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9169:18:60","memberName":"maxPayoutPerPolicy","nodeType":"MemberAccess","referencedDeclaration":23900,"src":"9159:28:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"9150:37:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20800,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"9266:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20801,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"9275:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9285:13:60","memberName":"exposureLimit","nodeType":"MemberAccess","referencedDeclaration":23901,"src":"9275:23:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"9266:32:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"id":20836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20833,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"9574:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":20834,"name":"Parameter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"9583:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Parameter_$23903_$","typeString":"type(enum IRiskModule.Parameter)"}},"id":20835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9593:11:60","memberName":"maxDuration","nodeType":"MemberAccess","referencedDeclaration":23902,"src":"9583:21:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"src":"9574:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20846,"nodeType":"IfStatement","src":"9570:92:60","trueBody":{"id":20845,"nodeType":"Block","src":"9606:56:60","statements":[{"expression":{"id":20843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20837,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9614:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9622:11:60","memberName":"maxDuration","nodeType":"MemberAccess","referencedDeclaration":20219,"src":"9614:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20840,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9636:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9645:8:60","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9502,"src":"9636:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9636:19:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9614:41:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20844,"nodeType":"ExpressionStatement","src":"9614:41:60"}]}},"id":20847,"nodeType":"IfStatement","src":"9262:400:60","trueBody":{"id":20832,"nodeType":"Block","src":"9300:264:60","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20805,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9316:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20806,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"9328:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9316:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c657373207468616e20616374697665206578706f73757265","id":20808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9345:51:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143","typeString":"literal_string \"Can't set exposureLimit less than active exposure\""},"value":"Can't set exposureLimit less than active exposure"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143","typeString":"literal_string \"Can't set exposureLimit less than active exposure\""}],"id":20804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9308:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9308:89:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20810,"nodeType":"ExpressionStatement","src":"9308:89:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20812,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9413:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20813,"name":"exposureLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20655,"src":"9425:13:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9425:15:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9413:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":20817,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"9456:11:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20816,"name":"hasPoolRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17995,"src":"9444:11:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":20818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9444:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9413:55:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","id":20820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9470:31:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439","typeString":"literal_string \"Increase requires LEVEL1_ROLE\""},"value":"Increase requires LEVEL1_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439","typeString":"literal_string \"Increase requires LEVEL1_ROLE\""}],"id":20811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9405:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9405:97:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20822,"nodeType":"ExpressionStatement","src":"9405:97:60"},{"expression":{"id":20830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20823,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9510:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9518:13:60","memberName":"exposureLimit","nodeType":"MemberAccess","referencedDeclaration":20217,"src":"9510:21:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":20827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9545:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":20828,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9548:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20826,"name":"_amountToX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20629,"src":"9534:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint8,uint256) view returns (uint32)"}},"id":20829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9534:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"9510:47:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":20831,"nodeType":"ExpressionStatement","src":"9510:47:60"}]}},"id":20848,"nodeType":"IfStatement","src":"9146:516:60","trueBody":{"id":20799,"nodeType":"Block","src":"9189:67:60","statements":[{"expression":{"id":20797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20790,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9197:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9205:18:60","memberName":"maxPayoutPerPolicy","nodeType":"MemberAccess","referencedDeclaration":20215,"src":"9197:26:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":20794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9237:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"id":20795,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9240:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20793,"name":"_amountToX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20629,"src":"9226:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint8,uint256) view returns (uint32)"}},"id":20796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"9197:52:60","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":20798,"nodeType":"ExpressionStatement","src":"9197:52:60"}]}},"id":20849,"nodeType":"IfStatement","src":"9062:600:60","trueBody":{"id":20785,"nodeType":"Block","src":"9092:48:60","statements":[{"expression":{"id":20783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20777,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9100:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9108:5:60","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":20213,"src":"9100:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20781,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9124:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20780,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9116:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9116:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9100:33:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20784,"nodeType":"ExpressionStatement","src":"9100:33:60"}]}},"id":20850,"nodeType":"IfStatement","src":"8978:684:60","trueBody":{"id":20772,"nodeType":"Block","src":"9008:48:60","statements":[{"expression":{"id":20770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20764,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9016:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9024:5:60","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":20211,"src":"9016:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20768,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9040:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20767,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9032:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9032:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9016:33:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20771,"nodeType":"ExpressionStatement","src":"9016:33:60"}]}},"id":20851,"nodeType":"IfStatement","src":"8880:782:60","trueBody":{"id":20759,"nodeType":"Block","src":"8917:55:60","statements":[{"expression":{"id":20757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20751,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8925:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8933:12:60","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":20209,"src":"8925:20:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20755,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"8956:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20754,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"8948:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8948:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8925:40:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20758,"nodeType":"ExpressionStatement","src":"8925:40:60"}]}},"id":20852,"nodeType":"IfStatement","src":"8784:878:60","trueBody":{"id":20746,"nodeType":"Block","src":"8820:54:60","statements":[{"expression":{"id":20744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20738,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8828:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8836:11:60","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":20207,"src":"8828:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20742,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"8858:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20741,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"8850:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8850:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8828:39:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20745,"nodeType":"ExpressionStatement","src":"8828:39:60"}]}},"id":20853,"nodeType":"IfStatement","src":"8692:970:60","trueBody":{"id":20733,"nodeType":"Block","src":"8726:52:60","statements":[{"expression":{"id":20731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20725,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8734:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8742:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"8734:17:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20729,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"8762:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20728,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"8754:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8754:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8734:37:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20732,"nodeType":"ExpressionStatement","src":"8734:37:60"}]}},"id":20854,"nodeType":"IfStatement","src":"8596:1066:60","trueBody":{"id":20720,"nodeType":"Block","src":"8632:54:60","statements":[{"expression":{"id":20718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20712,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8640:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8648:11:60","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":20203,"src":"8640:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20716,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"8670:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20715,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"8662:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8662:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8640:39:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20719,"nodeType":"ExpressionStatement","src":"8640:39:60"}]}},"id":20855,"nodeType":"IfStatement","src":"8516:1146:60","trueBody":{"id":20707,"nodeType":"Block","src":"8544:46:60","statements":[{"expression":{"id":20705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20699,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"8552:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":20701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8560:3:60","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"8552:11:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20703,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"8574:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20702,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"8566:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":20704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8566:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8552:31:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":20706,"nodeType":"ExpressionStatement","src":"8552:31:60"}]}},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"expression":{"id":20861,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"9733:14:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":20862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9748:17:60","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"9733:32:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":20863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9766:6:60","memberName":"setMoc","nodeType":"MemberAccess","referencedDeclaration":23263,"src":"9733:39:60","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}],"id":20860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9725:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20859,"name":"uint256","nodeType":"ElementaryTypeName","src":"9725:7:60","typeDescriptions":{}}},"id":20864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9725:48:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":20867,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20686,"src":"9784:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}],"id":20866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9776:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20865,"name":"uint256","nodeType":"ElementaryTypeName","src":"9776:7:60","typeDescriptions":{}}},"id":20868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9725:65:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20857,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"9692:14:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":20858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9707:17:60","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"9692:32:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":20870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9692:99:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"id":20871,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"9799:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20856,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"9667:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":20872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9667:146:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20873,"nodeType":"ExpressionStatement","src":"9667:146:60"}]},"functionSelector":"c1cca2b3","id":20875,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":20691,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"8484:11:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20692,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"8497:11:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20693,"kind":"modifierInvocation","modifierName":{"id":20690,"name":"onlyGlobalOrComponentRole2","nameLocations":["8457:26:60"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"8457:26:60"},"nodeType":"ModifierInvocation","src":"8457:52:60"}],"name":"setParam","nameLocation":"8404:8:60","nodeType":"FunctionDefinition","parameters":{"id":20689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20686,"mutability":"mutable","name":"param","nameLocation":"8423:5:60","nodeType":"VariableDeclaration","scope":20875,"src":"8413:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"},"typeName":{"id":20685,"nodeType":"UserDefinedTypeName","pathNode":{"id":20684,"name":"Parameter","nameLocations":["8413:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":23903,"src":"8413:9:60"},"referencedDeclaration":23903,"src":"8413:9:60","typeDescriptions":{"typeIdentifier":"t_enum$_Parameter_$23903","typeString":"enum IRiskModule.Parameter"}},"visibility":"internal"},{"constant":false,"id":20688,"mutability":"mutable","name":"newValue","nameLocation":"8438:8:60","nodeType":"VariableDeclaration","scope":20875,"src":"8430:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20687,"name":"uint256","nodeType":"ElementaryTypeName","src":"8430:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8412:35:60"},"returnParameters":{"id":20694,"nodeType":"ParameterList","parameters":[],"src":"8510:0:60"},"scope":21466,"src":"8395:1423:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23939],"body":{"id":20886,"nodeType":"Block","src":"9897:40:60","statements":[{"expression":{"arguments":[{"id":20883,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"9924:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}],"id":20882,"name":"_unpackParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"9910:13:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (struct IRiskModule.Params memory)"}},"id":20884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9910:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"functionReturnParameters":20881,"id":20885,"nodeType":"Return","src":"9903:29:60"}]},"functionSelector":"cff0ab96","id":20887,"implemented":true,"kind":"function","modifiers":[],"name":"params","nameLocation":"9831:6:60","nodeType":"FunctionDefinition","overrides":{"id":20877,"nodeType":"OverrideSpecifier","overrides":[],"src":"9860:8:60"},"parameters":{"id":20876,"nodeType":"ParameterList","parameters":[],"src":"9837:2:60"},"returnParameters":{"id":20881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20880,"mutability":"mutable","name":"ret","nameLocation":"9892:3:60","nodeType":"VariableDeclaration","scope":20887,"src":"9878:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":20879,"nodeType":"UserDefinedTypeName","pathNode":{"id":20878,"name":"Params","nameLocations":["9878:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"9878:6:60"},"referencedDeclaration":23926,"src":"9878:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"9877:19:60"},"scope":21466,"src":"9822:115:60","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":20927,"nodeType":"Block","src":"10035:355:60","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":20898,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10084:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10092:3:60","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"10084:11:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20897,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10076:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10076:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20902,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10127:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10135:11:60","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":20203,"src":"10127:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20901,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10119:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10119:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20906,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10176:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10184:9:60","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":20205,"src":"10176:17:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20905,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10168:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10168:26:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20910,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10225:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10233:11:60","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":20207,"src":"10225:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20909,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10217:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10217:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20914,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10277:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10285:12:60","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":20209,"src":"10277:20:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20913,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10269:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20918,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10323:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10331:5:60","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":20211,"src":"10323:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20917,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10315:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10315:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":20922,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"10362:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"id":20923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10370:5:60","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":20213,"src":"10362:13:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":20921,"name":"_4toWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"10354:7:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint16) pure returns (uint256)"}},"id":20924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10354:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20896,"name":"Params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"10054:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Params_$23926_storage_ptr_$","typeString":"type(struct IRiskModule.Params storage pointer)"}},"id":20925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10071:3:60","10106:11:60","10157:9:60","10204:11:60","10255:12:60","10308:5:60","10347:5:60"],"names":["moc","jrCollRatio","collRatio","ensuroPpFee","ensuroCocFee","jrRoc","srRoc"],"nodeType":"FunctionCall","src":"10054:331:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"functionReturnParameters":20895,"id":20926,"nodeType":"Return","src":"10041:344:60"}]},"id":20928,"implemented":true,"kind":"function","modifiers":[],"name":"_unpackParams","nameLocation":"9950:13:60","nodeType":"FunctionDefinition","parameters":{"id":20891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20890,"mutability":"mutable","name":"params_","nameLocation":"9984:7:60","nodeType":"VariableDeclaration","scope":20928,"src":"9964:27:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":20889,"nodeType":"UserDefinedTypeName","pathNode":{"id":20888,"name":"PackedParams","nameLocations":["9964:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"9964:12:60"},"referencedDeclaration":20220,"src":"9964:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"}],"src":"9963:29:60"},"returnParameters":{"id":20895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20894,"mutability":"mutable","name":"ret","nameLocation":"10030:3:60","nodeType":"VariableDeclaration","scope":20928,"src":"10016:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":20893,"nodeType":"UserDefinedTypeName","pathNode":{"id":20892,"name":"Params","nameLocations":["10016:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"10016:6:60"},"referencedDeclaration":23926,"src":"10016:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"10015:19:60"},"scope":21466,"src":"9941:449:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":20947,"nodeType":"Block","src":"10470:55:60","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20939,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20930,"src":"10498:10:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10490:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20937,"name":"uint256","nodeType":"ElementaryTypeName","src":"10490:7:60","typeDescriptions":{}}},"id":20940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10490:19:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"commonType":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"},"id":20943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":20941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10512:1:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3936","id":20942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10517:2:60","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10512:7:60","typeDescriptions":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"}},"src":"10490:29:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10483:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":20935,"name":"uint96","nodeType":"ElementaryTypeName","src":"10483:6:60","typeDescriptions":{}}},"id":20945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10483:37:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":20934,"id":20946,"nodeType":"Return","src":"10476:44:60"}]},"id":20948,"implemented":true,"kind":"function","modifiers":[],"name":"_makeInternalId","nameLocation":"10403:15:60","nodeType":"FunctionDefinition","parameters":{"id":20931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20930,"mutability":"mutable","name":"policyData","nameLocation":"10427:10:60","nodeType":"VariableDeclaration","scope":20948,"src":"10419:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10419:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10418:20:60"},"returnParameters":{"id":20934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20948,"src":"10462:6:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20932,"name":"uint96","nodeType":"ElementaryTypeName","src":"10462:6:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"10461:8:60"},"scope":21466,"src":"10394:131:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":20984,"nodeType":"Block","src":"10610:190:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20956,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20950,"src":"10620:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":20959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10639:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10631:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20957,"name":"address","nodeType":"ElementaryTypeName","src":"10631:7:60","typeDescriptions":{}}},"id":20960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10620:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20966,"nodeType":"IfStatement","src":"10616:63:60","trueBody":{"id":20965,"nodeType":"Block","src":"10643:36:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20962,"name":"NoZeroWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20229,"src":"10658:12:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":20963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10658:14:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":20964,"nodeType":"RevertStatement","src":"10651:21:60"}]}},{"expression":{"id":20969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20967,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20227,"src":"10684:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20968,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20950,"src":"10694:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10684:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20970,"nodeType":"ExpressionStatement","src":"10684:17:60"},{"expression":{"arguments":[{"expression":{"expression":{"id":20972,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"10725:14:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}},"id":20973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10740:17:60","memberName":"GovernanceActions","nodeType":"MemberAccess","referencedDeclaration":23301,"src":"10725:32:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_GovernanceActions_$23301_$","typeString":"type(enum IAccessManager.GovernanceActions)"}},"id":20974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10758:9:60","memberName":"setWallet","nodeType":"MemberAccess","referencedDeclaration":23273,"src":"10725:42:60","typeDescriptions":{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"}},{"arguments":[{"arguments":[{"id":20979,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20950,"src":"10785:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10777:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":20977,"name":"uint160","nodeType":"ElementaryTypeName","src":"10777:7:60","typeDescriptions":{}}},"id":20980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10777:16:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":20976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10769:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":20975,"name":"uint256","nodeType":"ElementaryTypeName","src":"10769:7:60","typeDescriptions":{}}},"id":20981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10769:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_GovernanceActions_$23301","typeString":"enum IAccessManager.GovernanceActions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20971,"name":"_parameterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"10707:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_enum$_GovernanceActions_$23301_$_t_uint256_$returns$__$","typeString":"function (enum IAccessManager.GovernanceActions,uint256)"}},"id":20982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10707:88:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20983,"nodeType":"ExpressionStatement","src":"10707:88:60"}]},"functionSelector":"deaa59df","id":20985,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":20953,"name":"RM_PROVIDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20193,"src":"10592:16:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20954,"kind":"modifierInvocation","modifierName":{"id":20952,"name":"onlyComponentRole","nameLocations":["10574:17:60"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"10574:17:60"},"nodeType":"ModifierInvocation","src":"10574:35:60"}],"name":"setWallet","nameLocation":"10538:9:60","nodeType":"FunctionDefinition","parameters":{"id":20951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20950,"mutability":"mutable","name":"wallet_","nameLocation":"10556:7:60","nodeType":"VariableDeclaration","scope":20985,"src":"10548:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20949,"name":"address","nodeType":"ElementaryTypeName","src":"10548:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10547:17:60"},"returnParameters":{"id":20955,"nodeType":"ParameterList","parameters":[],"src":"10610:0:60"},"scope":21466,"src":"10529:271:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21009,"nodeType":"Block","src":"10938:101:60","statements":[{"expression":{"arguments":[{"id":20997,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20987,"src":"10970:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20998,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20989,"src":"10978:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20999,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"10988:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"expression":{"id":21002,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11007:5:60","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11013:9:60","memberName":"timestamp","nodeType":"MemberAccess","src":"11007:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11000:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":21000,"name":"uint40","nodeType":"ElementaryTypeName","src":"11000:6:60","typeDescriptions":{}}},"id":21004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21005,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20887,"src":"11025:6:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function () view returns (struct IRiskModule.Params memory)"}},"id":21006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11025:8:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":20996,"name":"_getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21037,"src":"10951:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint40,uint40,struct IRiskModule.Params memory) pure returns (uint256)"}},"id":21007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10951:83:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20995,"id":21008,"nodeType":"Return","src":"10944:90:60"}]},"functionSelector":"8bac3a24","id":21010,"implemented":true,"kind":"function","modifiers":[],"name":"getMinimumPremium","nameLocation":"10813:17:60","nodeType":"FunctionDefinition","parameters":{"id":20992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20987,"mutability":"mutable","name":"payout","nameLocation":"10844:6:60","nodeType":"VariableDeclaration","scope":21010,"src":"10836:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20986,"name":"uint256","nodeType":"ElementaryTypeName","src":"10836:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20989,"mutability":"mutable","name":"lossProb","nameLocation":"10864:8:60","nodeType":"VariableDeclaration","scope":21010,"src":"10856:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20988,"name":"uint256","nodeType":"ElementaryTypeName","src":"10856:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20991,"mutability":"mutable","name":"expiration","nameLocation":"10885:10:60","nodeType":"VariableDeclaration","scope":21010,"src":"10878:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":20990,"name":"uint40","nodeType":"ElementaryTypeName","src":"10878:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"10830:69:60"},"returnParameters":{"id":20995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21010,"src":"10929:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20993,"name":"uint256","nodeType":"ElementaryTypeName","src":"10929:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10928:9:60"},"scope":21466,"src":"10804:235:60","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":21036,"nodeType":"Block","src":"11211:95:60","statements":[{"expression":{"expression":{"arguments":[{"id":21028,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21021,"src":"11249:1:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},{"id":21029,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21012,"src":"11252:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21030,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21014,"src":"11260:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21031,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21016,"src":"11270:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21032,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21018,"src":"11282:5:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":21026,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"11224:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Policy_$15439_$","typeString":"type(library Policy)"}},"id":21027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11231:17:60","memberName":"getMinimumPremium","nodeType":"MemberAccess","referencedDeclaration":15158,"src":"11224:24:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Params_$23926_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$returns$_t_struct$_PremiumComposition_$14983_memory_ptr_$","typeString":"function (struct IRiskModule.Params memory,uint256,uint256,uint40,uint40) pure returns (struct Policy.PremiumComposition memory)"}},"id":21033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11224:64:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PremiumComposition_$14983_memory_ptr","typeString":"struct Policy.PremiumComposition memory"}},"id":21034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11289:12:60","memberName":"totalPremium","nodeType":"MemberAccess","referencedDeclaration":14982,"src":"11224:77:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21025,"id":21035,"nodeType":"Return","src":"11217:84:60"}]},"id":21037,"implemented":true,"kind":"function","modifiers":[],"name":"_getMinimumPremium","nameLocation":"11052:18:60","nodeType":"FunctionDefinition","parameters":{"id":21022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21012,"mutability":"mutable","name":"payout","nameLocation":"11084:6:60","nodeType":"VariableDeclaration","scope":21037,"src":"11076:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21011,"name":"uint256","nodeType":"ElementaryTypeName","src":"11076:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21014,"mutability":"mutable","name":"lossProb","nameLocation":"11104:8:60","nodeType":"VariableDeclaration","scope":21037,"src":"11096:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21013,"name":"uint256","nodeType":"ElementaryTypeName","src":"11096:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21016,"mutability":"mutable","name":"expiration","nameLocation":"11125:10:60","nodeType":"VariableDeclaration","scope":21037,"src":"11118:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21015,"name":"uint40","nodeType":"ElementaryTypeName","src":"11118:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21018,"mutability":"mutable","name":"start","nameLocation":"11148:5:60","nodeType":"VariableDeclaration","scope":21037,"src":"11141:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21017,"name":"uint40","nodeType":"ElementaryTypeName","src":"11141:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21021,"mutability":"mutable","name":"p","nameLocation":"11173:1:60","nodeType":"VariableDeclaration","scope":21037,"src":"11159:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21020,"nodeType":"UserDefinedTypeName","pathNode":{"id":21019,"name":"Params","nameLocations":["11159:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"11159:6:60"},"referencedDeclaration":23926,"src":"11159:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"11070:108:60"},"returnParameters":{"id":21025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21037,"src":"11202:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21023,"name":"uint256","nodeType":"ElementaryTypeName","src":"11202:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11201:9:60"},"scope":21466,"src":"11043:263:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":21070,"nodeType":"Block","src":"12198:118:60","statements":[{"expression":{"arguments":[{"id":21059,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21040,"src":"12232:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21060,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21042,"src":"12240:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21061,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21044,"src":"12249:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21062,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21046,"src":"12259:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21063,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21048,"src":"12271:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21064,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21050,"src":"12278:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21065,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21052,"src":"12290:10:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21066,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20887,"src":"12302:6:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function () view returns (struct IRiskModule.Params memory)"}},"id":21067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12302:8:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":21058,"name":"_newPolicyWithParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21244,"src":"12211:20:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":21068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12211:100:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":21057,"id":21069,"nodeType":"Return","src":"12204:107:60"}]},"documentation":{"id":21038,"nodeType":"StructuredDocumentation","src":"11310:657:60","text":" @dev Called from child contracts to create policies (after they validated the pricing).\n      whenNotPaused validation must be done in the external method.\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the policyHolder\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param payer The account that pays for the premium\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param internalId An id that's unique within this module and it will be used to identify the policy"},"id":21071,"implemented":true,"kind":"function","modifiers":[],"name":"_newPolicy","nameLocation":"11979:10:60","nodeType":"FunctionDefinition","parameters":{"id":21053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21040,"mutability":"mutable","name":"payout","nameLocation":"12003:6:60","nodeType":"VariableDeclaration","scope":21071,"src":"11995:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21039,"name":"uint256","nodeType":"ElementaryTypeName","src":"11995:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21042,"mutability":"mutable","name":"premium","nameLocation":"12023:7:60","nodeType":"VariableDeclaration","scope":21071,"src":"12015:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21041,"name":"uint256","nodeType":"ElementaryTypeName","src":"12015:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21044,"mutability":"mutable","name":"lossProb","nameLocation":"12044:8:60","nodeType":"VariableDeclaration","scope":21071,"src":"12036:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21043,"name":"uint256","nodeType":"ElementaryTypeName","src":"12036:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21046,"mutability":"mutable","name":"expiration","nameLocation":"12065:10:60","nodeType":"VariableDeclaration","scope":21071,"src":"12058:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21045,"name":"uint40","nodeType":"ElementaryTypeName","src":"12058:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21048,"mutability":"mutable","name":"payer","nameLocation":"12089:5:60","nodeType":"VariableDeclaration","scope":21071,"src":"12081:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21047,"name":"address","nodeType":"ElementaryTypeName","src":"12081:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21050,"mutability":"mutable","name":"onBehalfOf","nameLocation":"12108:10:60","nodeType":"VariableDeclaration","scope":21071,"src":"12100:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21049,"name":"address","nodeType":"ElementaryTypeName","src":"12100:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21052,"mutability":"mutable","name":"internalId","nameLocation":"12131:10:60","nodeType":"VariableDeclaration","scope":21071,"src":"12124:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21051,"name":"uint96","nodeType":"ElementaryTypeName","src":"12124:6:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11989:156:60"},"returnParameters":{"id":21057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21071,"src":"12172:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21055,"nodeType":"UserDefinedTypeName","pathNode":{"id":21054,"name":"Policy.PolicyData","nameLocations":["12172:6:60","12179:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"12172:17:60"},"referencedDeclaration":14966,"src":"12172:17:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"12171:26:60"},"scope":21466,"src":"11970:346:60","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":21243,"nodeType":"Block","src":"12703:1220:60","statements":[{"assignments":[21096],"declarations":[{"constant":false,"id":21096,"mutability":"mutable","name":"now_","nameLocation":"12716:4:60","nodeType":"VariableDeclaration","scope":21243,"src":"12709:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21095,"name":"uint40","nodeType":"ElementaryTypeName","src":"12709:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"id":21102,"initialValue":{"arguments":[{"expression":{"id":21099,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12730:5:60","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12736:9:60","memberName":"timestamp","nodeType":"MemberAccess","src":"12730:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12723:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":21097,"name":"uint40","nodeType":"ElementaryTypeName","src":"12723:6:60","typeDescriptions":{}}},"id":21101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12723:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"12709:37:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21103,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"12756:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":21106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12772:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":21105,"name":"uint256","nodeType":"ElementaryTypeName","src":"12772:7:60","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":21104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12767:4:60","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12767:13:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":21108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12781:3:60","memberName":"max","nodeType":"MemberAccess","src":"12767:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12756:28:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21121,"nodeType":"IfStatement","src":"12752:122:60","trueBody":{"id":21120,"nodeType":"Block","src":"12786:88:60","statements":[{"expression":{"id":21118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21110,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"12794:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21112,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"12823:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21113,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21078,"src":"12831:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21114,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21080,"src":"12841:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21115,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"12853:4:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21116,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21089,"src":"12859:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":21111,"name":"_getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21037,"src":"12804:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint40,uint40,struct IRiskModule.Params memory) pure returns (uint256)"}},"id":21117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12804:63:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12794:73:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21119,"nodeType":"ExpressionStatement","src":"12794:73:60"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21123,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"12887:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21124,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"12897:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12887:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","id":21126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12905:34:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a","typeString":"literal_string \"Premium must be less than payout\""},"value":"Premium must be less than payout"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a","typeString":"literal_string \"Premium must be less than payout\""}],"id":21122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12879:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12879:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21128,"nodeType":"ExpressionStatement","src":"12879:61:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21130,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21080,"src":"12954:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":21131,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"12967:4:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"12954:17:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","id":21133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12973:34:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f","typeString":"literal_string \"Expiration must be in the future\""},"value":"Expiration must be in the future"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f","typeString":"literal_string \"Expiration must be in the future\""}],"id":21129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12946:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12946:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21135,"nodeType":"ExpressionStatement","src":"12946:62:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21137,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21080,"src":"13024:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":21138,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"13037:4:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"13024:17:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":21140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13023:19:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33363030","id":21141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13045:4:60","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"13023:26:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":21143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13022:28:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21144,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"13053:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":21145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13061:11:60","memberName":"maxDuration","nodeType":"MemberAccess","referencedDeclaration":20219,"src":"13053:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"13022:50:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","id":21147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13074:29:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27","typeString":"literal_string \"Policy exceeds max duration\""},"value":"Policy exceeds max duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27","typeString":"literal_string \"Policy exceeds max duration\""}],"id":21136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13014:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13014:90:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21149,"nodeType":"ExpressionStatement","src":"13014:90:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21151,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21084,"src":"13118:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":21154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13140:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":21153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13132:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21152,"name":"address","nodeType":"ElementaryTypeName","src":"13132:7:60","typeDescriptions":{}}},"id":21155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13132:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13118:24:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","id":21157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13144:32:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9","typeString":"literal_string \"Customer can't be zero address\""},"value":"Customer can't be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9","typeString":"literal_string \"Customer can't be zero address\""}],"id":21150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13110:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13110:67:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21159,"nodeType":"ExpressionStatement","src":"13110:67:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21165,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21082,"src":"13231:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":21168,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"13246:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":21167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13238:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21166,"name":"address","nodeType":"ElementaryTypeName","src":"13238:7:60","typeDescriptions":{}}},"id":21169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13238:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21161,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"13198:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13210:8:60","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"13198:20:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":21163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13198:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":21164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13221:9:60","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"13198:32:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":21170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13198:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":21171,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"13263:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13198:72:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e7366657220746865207072656d69756d","id":21173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13278:47:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29","typeString":"literal_string \"You must allow ENSURO to transfer the premium\""},"value":"You must allow ENSURO to transfer the premium"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29","typeString":"literal_string \"You must allow ENSURO to transfer the premium\""}],"id":21160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13183:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13183:148:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21175,"nodeType":"ExpressionStatement","src":"13183:148:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21177,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21082,"src":"13352:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"13361:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13361:12:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13352:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21185,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21082,"src":"13410:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21186,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"13417:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13417:12:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21181,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"13377:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13389:8:60","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"13377:20:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":21183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13377:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":21184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13400:9:60","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"13377:32:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":21188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13377:53:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":21189,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"13434:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13377:64:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13352:89:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7366657220746865207072656d69756d","id":21192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13449:49:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0","typeString":"literal_string \"Payer must allow caller to transfer the premium\""},"value":"Payer must allow caller to transfer the premium"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0","typeString":"literal_string \"Payer must allow caller to transfer the premium\""}],"id":21176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13337:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13337:167:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21194,"nodeType":"ExpressionStatement","src":"13337:167:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21196,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"13518:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21197,"name":"maxPayoutPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20642,"src":"13528:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":21198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13528:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13518:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206d6178696d756d2070657220706f6c696379","id":21200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13550:52:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e","typeString":"literal_string \"RiskModule: Payout is more than maximum per policy\""},"value":"RiskModule: Payout is more than maximum per policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e","typeString":"literal_string \"RiskModule: Payout is more than maximum per policy\""}],"id":21195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13510:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13510:93:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21202,"nodeType":"ExpressionStatement","src":"13510:93:60"},{"expression":{"id":21214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21203,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"13609:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21206,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13636:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_RiskModule_$21466","typeString":"contract RiskModule"}},{"id":21207,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21089,"src":"13642:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},{"id":21208,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"13651:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21209,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"13660:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21210,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21078,"src":"13668:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21211,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21080,"src":"13678:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21212,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"13690:4:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RiskModule_$21466","typeString":"contract RiskModule"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":21204,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"13618:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Policy_$15439_$","typeString":"type(library Policy)"}},"id":21205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13625:10:60","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"13618:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IRiskModule_$23983_$_t_struct$_Params_$23926_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (contract IRiskModule,struct IRiskModule.Params memory,uint256,uint256,uint256,uint40,uint40) pure returns (struct Policy.PolicyData memory)"}},"id":21213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13618:77:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"src":"13609:86:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21215,"nodeType":"ExpressionStatement","src":"13609:86:60"},{"expression":{"id":21219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21216,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"13701:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":21217,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"13720:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13727:6:60","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"13720:13:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13701:32:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21220,"nodeType":"ExpressionStatement","src":"13701:32:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21222,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"13747:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21223,"name":"exposureLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20655,"src":"13766:13:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":21224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:15:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13747:34:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565646564","id":21226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13783:37:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17","typeString":"literal_string \"RiskModule: Exposure limit exceeded\""},"value":"RiskModule: Exposure limit exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17","typeString":"literal_string \"RiskModule: Exposure limit exceeded\""}],"id":21221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13739:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13739:82:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21228,"nodeType":"ExpressionStatement","src":"13739:82:60"},{"expression":{"id":21239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21229,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"13827:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13834:2:60","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"13827:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21234,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"13861:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":21235,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21082,"src":"13869:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21236,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21084,"src":"13876:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21237,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21086,"src":"13888:10:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":21232,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"13839:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13851:9:60","memberName":"newPolicy","nodeType":"MemberAccess","referencedDeclaration":23728,"src":"13839:21:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_address_$_t_address_$_t_uint96_$returns$_t_uint256_$","typeString":"function (struct Policy.PolicyData memory,address,address,uint96) external returns (uint256)"}},"id":21238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13839:60:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13827:72:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21240,"nodeType":"ExpressionStatement","src":"13827:72:60"},{"expression":{"id":21241,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"13912:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":21094,"id":21242,"nodeType":"Return","src":"13905:13:60"}]},"documentation":{"id":21072,"nodeType":"StructuredDocumentation","src":"12320:116:60","text":" @dev Internal method without whenNotPaused, MUST be called from other function that has this modifier"},"id":21244,"implemented":true,"kind":"function","modifiers":[],"name":"_newPolicyWithParams","nameLocation":"12448:20:60","nodeType":"FunctionDefinition","parameters":{"id":21090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21074,"mutability":"mutable","name":"payout","nameLocation":"12482:6:60","nodeType":"VariableDeclaration","scope":21244,"src":"12474:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21073,"name":"uint256","nodeType":"ElementaryTypeName","src":"12474:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21076,"mutability":"mutable","name":"premium","nameLocation":"12502:7:60","nodeType":"VariableDeclaration","scope":21244,"src":"12494:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21075,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21078,"mutability":"mutable","name":"lossProb","nameLocation":"12523:8:60","nodeType":"VariableDeclaration","scope":21244,"src":"12515:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21077,"name":"uint256","nodeType":"ElementaryTypeName","src":"12515:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21080,"mutability":"mutable","name":"expiration","nameLocation":"12544:10:60","nodeType":"VariableDeclaration","scope":21244,"src":"12537:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21079,"name":"uint40","nodeType":"ElementaryTypeName","src":"12537:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21082,"mutability":"mutable","name":"payer","nameLocation":"12568:5:60","nodeType":"VariableDeclaration","scope":21244,"src":"12560:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21081,"name":"address","nodeType":"ElementaryTypeName","src":"12560:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21084,"mutability":"mutable","name":"onBehalfOf","nameLocation":"12587:10:60","nodeType":"VariableDeclaration","scope":21244,"src":"12579:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21083,"name":"address","nodeType":"ElementaryTypeName","src":"12579:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21086,"mutability":"mutable","name":"internalId","nameLocation":"12610:10:60","nodeType":"VariableDeclaration","scope":21244,"src":"12603:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21085,"name":"uint96","nodeType":"ElementaryTypeName","src":"12603:6:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":21089,"mutability":"mutable","name":"params_","nameLocation":"12640:7:60","nodeType":"VariableDeclaration","scope":21244,"src":"12626:21:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21088,"nodeType":"UserDefinedTypeName","pathNode":{"id":21087,"name":"Params","nameLocations":["12626:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"12626:6:60"},"referencedDeclaration":23926,"src":"12626:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"12468:183:60"},"returnParameters":{"id":21094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21093,"mutability":"mutable","name":"policy","nameLocation":"12695:6:60","nodeType":"VariableDeclaration","scope":21244,"src":"12670:31:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21092,"nodeType":"UserDefinedTypeName","pathNode":{"id":21091,"name":"Policy.PolicyData","nameLocations":["12670:6:60","12677:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"12670:17:60"},"referencedDeclaration":14966,"src":"12670:17:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"12669:33:60"},"scope":21466,"src":"12439:1484:60","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21436,"nodeType":"Block","src":"14890:1415:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21269,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"14900:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":21272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14916:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":21271,"name":"uint256","nodeType":"ElementaryTypeName","src":"14916:7:60","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":21270,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14911:4:60","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14911:13:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":21274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14925:3:60","memberName":"max","nodeType":"MemberAccess","src":"14911:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14900:28:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21288,"nodeType":"IfStatement","src":"14896:133:60","trueBody":{"id":21287,"nodeType":"Block","src":"14930:99:60","statements":[{"expression":{"id":21285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21276,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"14938:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21278,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21250,"src":"14967:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21279,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21254,"src":"14975:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21280,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21256,"src":"14985:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"expression":{"id":21281,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"14997:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15007:5:60","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"14997:15:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21283,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"15014:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":21277,"name":"_getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21037,"src":"14948:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint40,uint40,struct IRiskModule.Params memory) pure returns (uint256)"}},"id":21284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14948:74:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14938:84:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21286,"nodeType":"ExpressionStatement","src":"14938:84:60"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21290,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"15042:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21291,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21250,"src":"15052:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15042:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","id":21293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15060:34:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a","typeString":"literal_string \"Premium must be less than payout\""},"value":"Premium must be less than payout"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a","typeString":"literal_string \"Premium must be less than payout\""}],"id":21289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15034:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15034:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21295,"nodeType":"ExpressionStatement","src":"15034:61:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21297,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15109:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15119:10:60","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"15109:20:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"id":21301,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15139:5:60","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15145:9:60","memberName":"timestamp","nodeType":"MemberAccess","src":"15139:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15132:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":21299,"name":"uint40","nodeType":"ElementaryTypeName","src":"15132:6:60","typeDescriptions":{}}},"id":21303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15132:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"15109:46:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","id":21305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15157:23:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28","typeString":"literal_string \"Old policy is expired\""},"value":"Old policy is expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28","typeString":"literal_string \"Old policy is expired\""}],"id":21296,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15101:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15101:80:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21307,"nodeType":"ExpressionStatement","src":"15101:80:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21309,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21256,"src":"15202:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":21310,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15216:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15226:10:60","memberName":"expiration","nodeType":"MemberAccess","referencedDeclaration":14965,"src":"15216:20:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"15202:34:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21313,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21250,"src":"15240:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":21314,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15250:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15260:6:60","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"15250:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15240:26:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15202:64:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21318,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"15270:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":21319,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15281:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15291:7:60","memberName":"premium","nodeType":"MemberAccess","referencedDeclaration":14942,"src":"15281:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15270:28:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15202:96:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c696379207265706c6163656d656e74206d7573742062652067726561746572206f7220657175616c207468616e206f6c6420706f6c696379","id":21323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15306:61:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7","typeString":"literal_string \"Policy replacement must be greater or equal than old policy\""},"value":"Policy replacement must be greater or equal than old policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7","typeString":"literal_string \"Policy replacement must be greater or equal than old policy\""}],"id":21308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15187:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15187:186:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21325,"nodeType":"ExpressionStatement","src":"15187:186:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":21330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21327,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21256,"src":"15389:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":21328,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15402:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15412:5:60","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"15402:15:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"15389:28:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":21331,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15388:30:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33363030","id":21332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15421:4:60","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"15388:37:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"id":21334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15387:39:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21335,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"15429:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":21336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15437:11:60","memberName":"maxDuration","nodeType":"MemberAccess","referencedDeclaration":20219,"src":"15429:19:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15387:61:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","id":21338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15450:29:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27","typeString":"literal_string \"Policy exceeds max duration\""},"value":"Policy exceeds max duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27","typeString":"literal_string \"Policy exceeds max duration\""}],"id":21326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15379:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15379:101:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21340,"nodeType":"ExpressionStatement","src":"15379:101:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21346,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"15534:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":21349,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"15549:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":21348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15541:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21347,"name":"address","nodeType":"ElementaryTypeName","src":"15541:7:60","typeDescriptions":{}}},"id":21350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15541:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21342,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"15501:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15513:8:60","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"15501:20:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":21344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15501:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":21345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15524:9:60","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"15501:32:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":21351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15501:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21352,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"15567:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":21353,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15577:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15587:7:60","memberName":"premium","nodeType":"MemberAccess","referencedDeclaration":14942,"src":"15577:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15567:27:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15566:29:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15501:94:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e7366657220746865207072656d69756d","id":21358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15603:47:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29","typeString":"literal_string \"You must allow ENSURO to transfer the premium\""},"value":"You must allow ENSURO to transfer the premium"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29","typeString":"literal_string \"You must allow ENSURO to transfer the premium\""}],"id":21341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15486:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15486:170:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21360,"nodeType":"ExpressionStatement","src":"15486:170:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21362,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"15677:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21363,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"15686:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15686:12:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15677:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21370,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"15735:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21371,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"15742:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15742:12:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21366,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"15702:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15714:8:60","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"15702:20:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":21368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15702:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":21369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15725:9:60","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"15702:32:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":21373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15702:53:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21374,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"15760:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":21375,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"15770:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15780:7:60","memberName":"premium","nodeType":"MemberAccess","referencedDeclaration":14942,"src":"15770:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15760:27:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21378,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15759:29:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15702:86:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15677:111:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7366657220746865207072656d69756d","id":21381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15796:49:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0","typeString":"literal_string \"Payer must allow caller to transfer the premium\""},"value":"Payer must allow caller to transfer the premium"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0","typeString":"literal_string \"Payer must allow caller to transfer the premium\""}],"id":21361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15662:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15662:189:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21383,"nodeType":"ExpressionStatement","src":"15662:189:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21385,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21250,"src":"15865:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21386,"name":"maxPayoutPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20642,"src":"15875:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":21387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15875:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15865:30:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206d6178696d756d2070657220706f6c696379","id":21389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15897:52:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e","typeString":"literal_string \"RiskModule: Payout is more than maximum per policy\""},"value":"RiskModule: Payout is more than maximum per policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e","typeString":"literal_string \"RiskModule: Payout is more than maximum per policy\""}],"id":21384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15857:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15857:93:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21391,"nodeType":"ExpressionStatement","src":"15857:93:60"},{"expression":{"id":21404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21392,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21267,"src":"15956:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15983:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_RiskModule_$21466","typeString":"contract RiskModule"}},{"id":21396,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"15989:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},{"id":21397,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21252,"src":"15998:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21398,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21250,"src":"16007:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21399,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21254,"src":"16015:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21400,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21256,"src":"16025:10:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"expression":{"id":21401,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"16037:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16047:5:60","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":14963,"src":"16037:15:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RiskModule_$21466","typeString":"contract RiskModule"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":21393,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"15965:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Policy_$15439_$","typeString":"type(library Policy)"}},"id":21394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15972:10:60","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"15965:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IRiskModule_$23983_$_t_struct$_Params_$23926_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (contract IRiskModule,struct IRiskModule.Params memory,uint256,uint256,uint256,uint40,uint40) pure returns (struct Policy.PolicyData memory)"}},"id":21403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15965:88:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"src":"15956:97:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21405,"nodeType":"ExpressionStatement","src":"15956:97:60"},{"expression":{"id":21412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21406,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"16060:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21407,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21267,"src":"16079:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16086:6:60","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"16079:13:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":21409,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"16095:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":21410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16105:6:60","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"16095:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16079:32:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16060:51:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21413,"nodeType":"ExpressionStatement","src":"16060:51:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21415,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"16125:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21416,"name":"exposureLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20655,"src":"16144:13:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":21417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16144:15:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16125:34:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565646564","id":21419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16161:37:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17","typeString":"literal_string \"RiskModule: Exposure limit exceeded\""},"value":"RiskModule: Exposure limit exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17","typeString":"literal_string \"RiskModule: Exposure limit exceeded\""}],"id":21414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16117:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16117:82:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21421,"nodeType":"ExpressionStatement","src":"16117:82:60"},{"expression":{"id":21432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21422,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21267,"src":"16206:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16213:2:60","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"16206:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21427,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21248,"src":"16244:9:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":21428,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21267,"src":"16255:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":21429,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"16263:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21430,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21260,"src":"16270:10:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":21425,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"16218:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16230:13:60","memberName":"replacePolicy","nodeType":"MemberAccess","referencedDeclaration":23744,"src":"16218:25:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_struct$_PolicyData_$14966_memory_ptr_$_t_address_$_t_uint96_$returns$_t_uint256_$","typeString":"function (struct Policy.PolicyData memory,struct Policy.PolicyData memory,address,uint96) external returns (uint256)"}},"id":21431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16218:63:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16206:75:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21433,"nodeType":"ExpressionStatement","src":"16206:75:60"},{"expression":{"id":21434,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21267,"src":"16294:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":21268,"id":21435,"nodeType":"Return","src":"16287:13:60"}]},"documentation":{"id":21245,"nodeType":"StructuredDocumentation","src":"13927:676:60","text":" @dev Called from child contracts to replace policies (after they validated the pricing).\n      whenNotPaused validation must be done in the external method.\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the policyHolder\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param payer The account that pays for the premium\n @param expiration The expiration of the policy (timestamp)\n @param internalId An id that's unique within this module and it will be used to identify the policy\n @param params_ Params to use to create the new policy"},"id":21437,"implemented":true,"kind":"function","modifiers":[],"name":"_replacePolicy","nameLocation":"14615:14:60","nodeType":"FunctionDefinition","parameters":{"id":21264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21248,"mutability":"mutable","name":"oldPolicy","nameLocation":"14662:9:60","nodeType":"VariableDeclaration","scope":21437,"src":"14635:36:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21247,"nodeType":"UserDefinedTypeName","pathNode":{"id":21246,"name":"Policy.PolicyData","nameLocations":["14635:6:60","14642:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"14635:17:60"},"referencedDeclaration":14966,"src":"14635:17:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":21250,"mutability":"mutable","name":"payout","nameLocation":"14685:6:60","nodeType":"VariableDeclaration","scope":21437,"src":"14677:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21249,"name":"uint256","nodeType":"ElementaryTypeName","src":"14677:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21252,"mutability":"mutable","name":"premium","nameLocation":"14705:7:60","nodeType":"VariableDeclaration","scope":21437,"src":"14697:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21251,"name":"uint256","nodeType":"ElementaryTypeName","src":"14697:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21254,"mutability":"mutable","name":"lossProb","nameLocation":"14726:8:60","nodeType":"VariableDeclaration","scope":21437,"src":"14718:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21253,"name":"uint256","nodeType":"ElementaryTypeName","src":"14718:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21256,"mutability":"mutable","name":"expiration","nameLocation":"14747:10:60","nodeType":"VariableDeclaration","scope":21437,"src":"14740:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21255,"name":"uint40","nodeType":"ElementaryTypeName","src":"14740:6:60","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21258,"mutability":"mutable","name":"payer","nameLocation":"14771:5:60","nodeType":"VariableDeclaration","scope":21437,"src":"14763:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21257,"name":"address","nodeType":"ElementaryTypeName","src":"14763:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21260,"mutability":"mutable","name":"internalId","nameLocation":"14789:10:60","nodeType":"VariableDeclaration","scope":21437,"src":"14782:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21259,"name":"uint96","nodeType":"ElementaryTypeName","src":"14782:6:60","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":21263,"mutability":"mutable","name":"params_","nameLocation":"14819:7:60","nodeType":"VariableDeclaration","scope":21437,"src":"14805:21:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21262,"nodeType":"UserDefinedTypeName","pathNode":{"id":21261,"name":"Params","nameLocations":["14805:6:60"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"14805:6:60"},"referencedDeclaration":23926,"src":"14805:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"14629:201:60"},"returnParameters":{"id":21268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21267,"mutability":"mutable","name":"policy","nameLocation":"14882:6:60","nodeType":"VariableDeclaration","scope":21437,"src":"14857:31:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21266,"nodeType":"UserDefinedTypeName","pathNode":{"id":21265,"name":"Policy.PolicyData","nameLocations":["14857:6:60","14864:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"14857:17:60"},"referencedDeclaration":14966,"src":"14857:17:60","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"14856:33:60"},"scope":21466,"src":"14606:1699:60","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[23975],"body":{"id":21449,"nodeType":"Block","src":"16383:268:60","statements":[{"expression":{"id":21447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21445,"name":"_activeExposure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"16621:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":21446,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21439,"src":"16640:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16621:25:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21448,"nodeType":"ExpressionStatement","src":"16621:25:60"}]},"functionSelector":"6a448ef1","id":21450,"implemented":true,"kind":"function","modifiers":[{"id":21443,"kind":"modifierInvocation","modifierName":{"id":21442,"name":"onlyPolicyPool","nameLocations":["16368:14:60"],"nodeType":"IdentifierPath","referencedDeclaration":17769,"src":"16368:14:60"},"nodeType":"ModifierInvocation","src":"16368:14:60"}],"name":"releaseExposure","nameLocation":"16318:15:60","nodeType":"FunctionDefinition","overrides":{"id":21441,"nodeType":"OverrideSpecifier","overrides":[],"src":"16359:8:60"},"parameters":{"id":21440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21439,"mutability":"mutable","name":"payout","nameLocation":"16342:6:60","nodeType":"VariableDeclaration","scope":21450,"src":"16334:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21438,"name":"uint256","nodeType":"ElementaryTypeName","src":"16334:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16333:16:60"},"returnParameters":{"id":21444,"nodeType":"ParameterList","parameters":[],"src":"16383:0:60"},"scope":21466,"src":"16309:342:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23982],"body":{"id":21459,"nodeType":"Block","src":"16732:34:60","statements":[{"expression":{"id":21457,"name":"_premiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20197,"src":"16745:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"functionReturnParameters":21456,"id":21458,"nodeType":"Return","src":"16738:23:60"}]},"functionSelector":"73a952e8","id":21460,"implemented":true,"kind":"function","modifiers":[],"name":"premiumsAccount","nameLocation":"16664:15:60","nodeType":"FunctionDefinition","overrides":{"id":21452,"nodeType":"OverrideSpecifier","overrides":[],"src":"16696:8:60"},"parameters":{"id":21451,"nodeType":"ParameterList","parameters":[],"src":"16679:2:60"},"returnParameters":{"id":21456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21460,"src":"16714:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":21454,"nodeType":"UserDefinedTypeName","pathNode":{"id":21453,"name":"IPremiumsAccount","nameLocations":["16714:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"16714:16:60"},"referencedDeclaration":23886,"src":"16714:16:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"16713:18:60"},"scope":21466,"src":"16655:111:60","stateMutability":"view","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":21461,"nodeType":"StructuredDocumentation","src":"16770:246:60","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":21465,"mutability":"mutable","name":"__gap","nameLocation":"17039:5:60","nodeType":"VariableDeclaration","scope":21466,"src":"17019:25:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage","typeString":"uint256[46]"},"typeName":{"baseType":{"id":21462,"name":"uint256","nodeType":"ElementaryTypeName","src":"17019:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21464,"length":{"hexValue":"3436","id":21463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17027:2:60","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"nodeType":"ArrayTypeName","src":"17019:11:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage_ptr","typeString":"uint256[46]"}},"visibility":"private"}],"scope":21467,"src":"763:16284:60","usedErrors":[17749,17751,17753,20229,20231,20233,20235],"usedEvents":[417,424,429,790,1096,1101,17740,17747]}],"src":"39:17009:60"},"id":60},"contracts/SignedBucketRiskModule.sol":{"ast":{"absolutePath":"contracts/SignedBucketRiskModule.sol","exportedSymbols":{"ECDSA":[7677],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Policy":[15439],"RiskModule":[21466],"SignedBucketRiskModule":[22036]},"id":22037,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":21468,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:61"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":21470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22037,"sourceUnit":7678,"src":"64:75:61","symbolAliases":[{"foreign":{"id":21469,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"72:5:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":21472,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22037,"sourceUnit":23807,"src":"141:57:61","symbolAliases":[{"foreign":{"id":21471,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"149:11:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":21474,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22037,"sourceUnit":23887,"src":"199:67:61","symbolAliases":[{"foreign":{"id":21473,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"207:16:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":21476,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22037,"sourceUnit":15440,"src":"267:36:61","symbolAliases":[{"foreign":{"id":21475,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"275:6:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskModule.sol","file":"./RiskModule.sol","id":21478,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22037,"sourceUnit":21467,"src":"304:44:61","symbolAliases":[{"foreign":{"id":21477,"name":"RiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21466,"src":"312:10:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21480,"name":"RiskModule","nameLocations":["905:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"905:10:61"},"id":21481,"nodeType":"InheritanceSpecifier","src":"905:10:61"}],"canonicalName":"SignedBucketRiskModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":21479,"nodeType":"StructuredDocumentation","src":"350:519:61","text":" @title SignedBucket Risk Module\n @dev Risk Module that for policy creation verifies the different components of the price have been signed by a\ntrusted account (PRICER_ROLE). One of the components of the price is a bucket id that groups policies within\na risk module, with different parameters (such as collaterallization levels or fees).\nFor the resolution (resolvePolicy), it has to be called by an authorized user\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":22036,"linearizedBaseContracts":[22036,21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"SignedBucketRiskModule","nameLocation":"879:22:61","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":21486,"mutability":"constant","name":"POLICY_CREATOR_ROLE","nameLocation":"946:19:61","nodeType":"VariableDeclaration","scope":22036,"src":"920:80:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"920:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"504f4c4943595f43524541544f525f524f4c45","id":21484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"978:21:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb","typeString":"literal_string \"POLICY_CREATOR_ROLE\""},"value":"POLICY_CREATOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb","typeString":"literal_string \"POLICY_CREATOR_ROLE\""}],"id":21483,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"968:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"968:32:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":21491,"mutability":"constant","name":"REPLACER_ROLE","nameLocation":"1030:13:61","nodeType":"VariableDeclaration","scope":22036,"src":"1004:68:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1004:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245504c414345525f524f4c45","id":21489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1056:15:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""},"value":"REPLACER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""}],"id":21488,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1046:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1046:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":21496,"mutability":"constant","name":"PRICER_ROLE","nameLocation":"1102:11:61","nodeType":"VariableDeclaration","scope":22036,"src":"1076:64:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1076:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5052494345525f524f4c45","id":21494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1126:13:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""},"value":"PRICER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""}],"id":21493,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1116:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":21501,"mutability":"constant","name":"RESOLVER_ROLE","nameLocation":"1170:13:61","nodeType":"VariableDeclaration","scope":22036,"src":"1144:68:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1144:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245534f4c5645525f524f4c45","id":21499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:15:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""},"value":"RESOLVER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""}],"id":21498,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1186:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1186:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21506,"mutability":"mutable","name":"_buckets","nameLocation":"1259:8:61","nodeType":"VariableDeclaration","scope":22036,"src":"1217:50:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams)"},"typeName":{"id":21505,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":21502,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1217:32:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":21504,"nodeType":"UserDefinedTypeName","pathNode":{"id":21503,"name":"PackedParams","nameLocations":["1236:12:61"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"1236:12:61"},"referencedDeclaration":20220,"src":"1236:12:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}}},"visibility":"internal"},{"anonymous":false,"documentation":{"id":21507,"nodeType":"StructuredDocumentation","src":"1272:198:61","text":" @dev Emitted when a new risk bucket is created (or modified).\n @param bucketId The identifier of the group of policies.\n @param params The packed parameters of the new bucket."},"eventSelector":"1f02d2d352ddbf27121545f4d4730d7656c038f9ce75851410c9ef6982728975","id":21514,"name":"NewBucket","nameLocation":"1479:9:61","nodeType":"EventDefinition","parameters":{"id":21513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21509,"indexed":true,"mutability":"mutable","name":"bucketId","nameLocation":"1505:8:61","nodeType":"VariableDeclaration","scope":21514,"src":"1489:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21508,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21512,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"1522:6:61","nodeType":"VariableDeclaration","scope":21514,"src":"1515:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21511,"nodeType":"UserDefinedTypeName","pathNode":{"id":21510,"name":"Params","nameLocations":["1515:6:61"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"1515:6:61"},"referencedDeclaration":23926,"src":"1515:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"1488:41:61"},"src":"1473:57:61"},{"anonymous":false,"documentation":{"id":21515,"nodeType":"StructuredDocumentation","src":"1534:120:61","text":" @dev Emitted when a risk bucket is deleted.\n @param bucketId The identifier of the group of policies."},"eventSelector":"da8c8883e1b3ead63d3ef64674f8fc499048554f6fa36776af0ab41d2f998346","id":21519,"name":"BucketDeleted","nameLocation":"1663:13:61","nodeType":"EventDefinition","parameters":{"id":21518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21517,"indexed":true,"mutability":"mutable","name":"bucketId","nameLocation":"1693:8:61","nodeType":"VariableDeclaration","scope":21519,"src":"1677:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1677:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1676:26:61"},"src":"1657:46:61"},{"anonymous":false,"documentation":{"id":21520,"nodeType":"StructuredDocumentation","src":"1707:284:61","text":" @dev Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\n @param policyId The id of the policy\n @param policyData The value sent in `policyData` parameter that's the hash of the off-chain stored data."},"eventSelector":"3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f70","id":21526,"name":"NewSignedPolicy","nameLocation":"2000:15:61","nodeType":"EventDefinition","parameters":{"id":21525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21522,"indexed":true,"mutability":"mutable","name":"policyId","nameLocation":"2032:8:61","nodeType":"VariableDeclaration","scope":21526,"src":"2016:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21521,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21524,"indexed":false,"mutability":"mutable","name":"policyData","nameLocation":"2050:10:61","nodeType":"VariableDeclaration","scope":21526,"src":"2042:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2042:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2015:46:61"},"src":"1994:68:61"},{"errorSelector":"8727a7f9","id":21528,"name":"QuoteExpired","nameLocation":"2072:12:61","nodeType":"ErrorDefinition","parameters":{"id":21527,"nodeType":"ParameterList","parameters":[],"src":"2084:2:61"},"src":"2066:21:61"},{"errorSelector":"c9744226","id":21530,"name":"BucketCannotBeZero","nameLocation":"2096:18:61","nodeType":"ErrorDefinition","parameters":{"id":21529,"nodeType":"ParameterList","parameters":[],"src":"2114:2:61"},"src":"2090:27:61"},{"errorSelector":"c4c1a0c5","id":21532,"name":"BucketNotFound","nameLocation":"2126:14:61","nodeType":"ErrorDefinition","parameters":{"id":21531,"nodeType":"ParameterList","parameters":[],"src":"2140:2:61"},"src":"2120:23:61"},{"body":{"id":21546,"nodeType":"Block","src":"2312:2:61","statements":[]},"documentation":{"id":21533,"nodeType":"StructuredDocumentation","src":"2147:48:61","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":21547,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":21542,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21536,"src":"2281:11:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},{"id":21543,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"2294:16:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"id":21544,"kind":"baseConstructorSpecifier","modifierName":{"id":21541,"name":"RiskModule","nameLocations":["2270:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"2270:10:61"},"nodeType":"ModifierInvocation","src":"2270:41:61"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21536,"mutability":"mutable","name":"policyPool_","nameLocation":"2222:11:61","nodeType":"VariableDeclaration","scope":21547,"src":"2210:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":21535,"nodeType":"UserDefinedTypeName","pathNode":{"id":21534,"name":"IPolicyPool","nameLocations":["2210:11:61"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"2210:11:61"},"referencedDeclaration":23806,"src":"2210:11:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":21539,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"2252:16:61","nodeType":"VariableDeclaration","scope":21547,"src":"2235:33:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":21538,"nodeType":"UserDefinedTypeName","pathNode":{"id":21537,"name":"IPremiumsAccount","nameLocations":["2235:16:61"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"2235:16:61"},"referencedDeclaration":23886,"src":"2235:16:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"2209:60:61"},"returnParameters":{"id":21545,"nodeType":"ParameterList","parameters":[],"src":"2312:0:61"},"scope":22036,"src":"2198:116:61","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21577,"nodeType":"Block","src":"3125:115:61","statements":[{"expression":{"arguments":[{"id":21568,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21550,"src":"3149:5:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21569,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21552,"src":"3156:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21570,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21554,"src":"3168:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21571,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21556,"src":"3182:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21572,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"3190:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21573,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21560,"src":"3211:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21574,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21562,"src":"3227:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21567,"name":"__RiskModule_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20302,"src":"3131:17:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,uint256,uint256,uint256,uint256,uint256,address)"}},"id":21575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3131:104:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21576,"nodeType":"ExpressionStatement","src":"3131:104:61"}]},"documentation":{"id":21548,"nodeType":"StructuredDocumentation","src":"2318:584:61","text":" @dev Initializes the RiskModule\n @param name_ Name of the Risk Module\n @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n @param wallet_ Address of the RiskModule provider"},"functionSelector":"6f0dbe6f","id":21578,"implemented":true,"kind":"function","modifiers":[{"id":21565,"kind":"modifierInvocation","modifierName":{"id":21564,"name":"initializer","nameLocations":["3113:11:61"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"3113:11:61"},"nodeType":"ModifierInvocation","src":"3113:11:61"}],"name":"initialize","nameLocation":"2914:10:61","nodeType":"FunctionDefinition","parameters":{"id":21563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21550,"mutability":"mutable","name":"name_","nameLocation":"2944:5:61","nodeType":"VariableDeclaration","scope":21578,"src":"2930:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21549,"name":"string","nodeType":"ElementaryTypeName","src":"2930:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21552,"mutability":"mutable","name":"collRatio_","nameLocation":"2963:10:61","nodeType":"VariableDeclaration","scope":21578,"src":"2955:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21551,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21554,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"2987:12:61","nodeType":"VariableDeclaration","scope":21578,"src":"2979:20:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21553,"name":"uint256","nodeType":"ElementaryTypeName","src":"2979:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21556,"mutability":"mutable","name":"srRoc_","nameLocation":"3013:6:61","nodeType":"VariableDeclaration","scope":21578,"src":"3005:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3005:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21558,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"3033:19:61","nodeType":"VariableDeclaration","scope":21578,"src":"3025:27:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21557,"name":"uint256","nodeType":"ElementaryTypeName","src":"3025:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21560,"mutability":"mutable","name":"exposureLimit_","nameLocation":"3066:14:61","nodeType":"VariableDeclaration","scope":21578,"src":"3058:22:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21559,"name":"uint256","nodeType":"ElementaryTypeName","src":"3058:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21562,"mutability":"mutable","name":"wallet_","nameLocation":"3094:7:61","nodeType":"VariableDeclaration","scope":21578,"src":"3086:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21561,"name":"address","nodeType":"ElementaryTypeName","src":"3086:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2924:181:61"},"returnParameters":{"id":21566,"nodeType":"ParameterList","parameters":[],"src":"3125:0:61"},"scope":22036,"src":"2905:335:61","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21651,"nodeType":"Block","src":"3506:945:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21599,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21596,"src":"3516:15:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":21600,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3534:5:61","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3540:9:61","memberName":"timestamp","nodeType":"MemberAccess","src":"3534:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3516:33:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21606,"nodeType":"IfStatement","src":"3512:60:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":21603,"name":"QuoteExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21528,"src":"3558:12:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":21604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3558:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":21605,"nodeType":"RevertStatement","src":"3551:21:61"}},{"assignments":[21609],"declarations":[{"constant":false,"id":21609,"mutability":"mutable","name":"quoteHash","nameLocation":"4113:9:61","nodeType":"VariableDeclaration","scope":21651,"src":"4105:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4105:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" Checks the quote has been signed by an authorized user\n The \"quote\" is computed as hash of the following fields (encodePacked):\n - address(this): the address of this RiskModule\n - payout, premium, lossProb, expiration: the base parameters of the policy\n - policyData: a hash of the private details of the policy. The calculation should include some\n   unique id (quoteId), so each policyData identifies a policy.\n - quoteValidUntil: the maximum validity of the quote","id":21627,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":21616,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4186:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_SignedBucketRiskModule_$22036","typeString":"contract SignedBucketRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignedBucketRiskModule_$22036","typeString":"contract SignedBucketRiskModule"}],"id":21615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4178:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21614,"name":"address","nodeType":"ElementaryTypeName","src":"4178:7:61","typeDescriptions":{}}},"id":21617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21618,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21580,"src":"4193:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21619,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21582,"src":"4201:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21620,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21584,"src":"4210:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21621,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"4220:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21622,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21588,"src":"4232:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21623,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21590,"src":"4244:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21624,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21596,"src":"4254:15:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":21612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4161:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4165:12:61","memberName":"encodePacked","nodeType":"MemberAccess","src":"4161:16:61","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":21625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4161:109:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":21610,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"4125:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":21611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4131:22:61","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":7644,"src":"4125:28:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4125:151:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4105:171:61"},{"assignments":[21629],"declarations":[{"constant":false,"id":21629,"mutability":"mutable","name":"signer","nameLocation":"4290:6:61","nodeType":"VariableDeclaration","scope":21651,"src":"4282:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21628,"name":"address","nodeType":"ElementaryTypeName","src":"4282:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":21636,"initialValue":{"arguments":[{"id":21632,"name":"quoteHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21609,"src":"4313:9:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21633,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21592,"src":"4324:15:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21634,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21594,"src":"4341:16:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21630,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"4299:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":21631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4305:7:61","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":7515,"src":"4299:13:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address)"}},"id":21635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:59:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4282:76:61"},{"expression":{"arguments":[{"arguments":[{"id":21644,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4412:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_SignedBucketRiskModule_$22036","typeString":"contract SignedBucketRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignedBucketRiskModule_$22036","typeString":"contract SignedBucketRiskModule"}],"id":21643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4404:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21642,"name":"address","nodeType":"ElementaryTypeName","src":"4404:7:61","typeDescriptions":{}}},"id":21645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21646,"name":"PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21496,"src":"4419:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21647,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21629,"src":"4432:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":21648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4440:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21637,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"4364:11:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4376:6:61","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"4364:18:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":21640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4364:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":21641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4385:18:61","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"4364:39:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":21649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4364:82:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21650,"nodeType":"ExpressionStatement","src":"4364:82:61"}]},"id":21652,"implemented":true,"kind":"function","modifiers":[],"name":"_checkSignature","nameLocation":"3253:15:61","nodeType":"FunctionDefinition","parameters":{"id":21597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21580,"mutability":"mutable","name":"payout","nameLocation":"3282:6:61","nodeType":"VariableDeclaration","scope":21652,"src":"3274:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21579,"name":"uint256","nodeType":"ElementaryTypeName","src":"3274:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21582,"mutability":"mutable","name":"premium","nameLocation":"3302:7:61","nodeType":"VariableDeclaration","scope":21652,"src":"3294:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21581,"name":"uint256","nodeType":"ElementaryTypeName","src":"3294:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21584,"mutability":"mutable","name":"lossProb","nameLocation":"3323:8:61","nodeType":"VariableDeclaration","scope":21652,"src":"3315:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21583,"name":"uint256","nodeType":"ElementaryTypeName","src":"3315:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21586,"mutability":"mutable","name":"expiration","nameLocation":"3344:10:61","nodeType":"VariableDeclaration","scope":21652,"src":"3337:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21585,"name":"uint40","nodeType":"ElementaryTypeName","src":"3337:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21588,"mutability":"mutable","name":"policyData","nameLocation":"3368:10:61","nodeType":"VariableDeclaration","scope":21652,"src":"3360:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3360:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21590,"mutability":"mutable","name":"bucketId","nameLocation":"3392:8:61","nodeType":"VariableDeclaration","scope":21652,"src":"3384:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21589,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21592,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"3414:15:61","nodeType":"VariableDeclaration","scope":21652,"src":"3406:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3406:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21594,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"3443:16:61","nodeType":"VariableDeclaration","scope":21652,"src":"3435:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3435:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21596,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"3472:15:61","nodeType":"VariableDeclaration","scope":21652,"src":"3465:22:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21595,"name":"uint40","nodeType":"ElementaryTypeName","src":"3465:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"3268:223:61"},"returnParameters":{"id":21598,"nodeType":"ParameterList","parameters":[],"src":"3506:0:61"},"scope":22036,"src":"3244:1207:61","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":21699,"nodeType":"Block","src":"4718:294:61","statements":[{"expression":{"id":21689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21674,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21672,"src":"4724:13:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21676,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21654,"src":"4768:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21677,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21656,"src":"4782:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21678,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21658,"src":"4797:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21679,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21660,"src":"4813:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21680,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21666,"src":"4831:5:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21681,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21668,"src":"4844:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":21683,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21662,"src":"4878:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21682,"name":"_makeInternalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"4862:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint96_$","typeString":"function (bytes32) pure returns (uint96)"}},"id":21684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:27:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[{"id":21686,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21664,"src":"4910:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21685,"name":"bucketParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22001,"src":"4897:12:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (uint256) view returns (struct IRiskModule.Params memory)"}},"id":21687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4897:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":21675,"name":"_newPolicyWithParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21244,"src":"4740:20:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":21688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4740:185:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"src":"4724:201:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21690,"nodeType":"ExpressionStatement","src":"4724:201:61"},{"eventCall":{"arguments":[{"expression":{"id":21692,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21672,"src":"4952:13:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4966:2:61","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"4952:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21694,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21662,"src":"4970:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21691,"name":"NewSignedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21526,"src":"4936:15:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":21695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4936:45:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21696,"nodeType":"EmitStatement","src":"4931:50:61"},{"expression":{"id":21697,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21672,"src":"4994:13:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":21673,"id":21698,"nodeType":"Return","src":"4987:20:61"}]},"id":21700,"implemented":true,"kind":"function","modifiers":[],"name":"_newPolicySigned","nameLocation":"4464:16:61","nodeType":"FunctionDefinition","parameters":{"id":21669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21654,"mutability":"mutable","name":"payout","nameLocation":"4494:6:61","nodeType":"VariableDeclaration","scope":21700,"src":"4486:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21653,"name":"uint256","nodeType":"ElementaryTypeName","src":"4486:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21656,"mutability":"mutable","name":"premium","nameLocation":"4514:7:61","nodeType":"VariableDeclaration","scope":21700,"src":"4506:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21655,"name":"uint256","nodeType":"ElementaryTypeName","src":"4506:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21658,"mutability":"mutable","name":"lossProb","nameLocation":"4535:8:61","nodeType":"VariableDeclaration","scope":21700,"src":"4527:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21657,"name":"uint256","nodeType":"ElementaryTypeName","src":"4527:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21660,"mutability":"mutable","name":"expiration","nameLocation":"4556:10:61","nodeType":"VariableDeclaration","scope":21700,"src":"4549:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21659,"name":"uint40","nodeType":"ElementaryTypeName","src":"4549:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21662,"mutability":"mutable","name":"policyData","nameLocation":"4580:10:61","nodeType":"VariableDeclaration","scope":21700,"src":"4572:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4572:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21664,"mutability":"mutable","name":"bucketId","nameLocation":"4604:8:61","nodeType":"VariableDeclaration","scope":21700,"src":"4596:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21663,"name":"uint256","nodeType":"ElementaryTypeName","src":"4596:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21666,"mutability":"mutable","name":"payer","nameLocation":"4626:5:61","nodeType":"VariableDeclaration","scope":21700,"src":"4618:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21665,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21668,"mutability":"mutable","name":"onBehalfOf","nameLocation":"4645:10:61","nodeType":"VariableDeclaration","scope":21700,"src":"4637:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21667,"name":"address","nodeType":"ElementaryTypeName","src":"4637:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4480:179:61"},"returnParameters":{"id":21673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21672,"mutability":"mutable","name":"createdPolicy","nameLocation":"4703:13:61","nodeType":"VariableDeclaration","scope":21700,"src":"4678:38:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21671,"nodeType":"UserDefinedTypeName","pathNode":{"id":21670,"name":"Policy.PolicyData","nameLocations":["4678:6:61","4685:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4678:17:61"},"referencedDeclaration":14966,"src":"4678:17:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"4677:40:61"},"scope":22036,"src":"4455:557:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21756,"nodeType":"Block","src":"6551:318:61","statements":[{"expression":{"arguments":[{"id":21732,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21703,"src":"6580:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21733,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21705,"src":"6594:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21734,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21707,"src":"6609:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21735,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21709,"src":"6625:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21736,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21713,"src":"6643:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21737,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21715,"src":"6661:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21738,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21717,"src":"6677:15:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21739,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21719,"src":"6700:16:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21740,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21721,"src":"6724:15:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":21731,"name":"_checkSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21652,"src":"6557:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint40_$returns$__$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40) view"}},"id":21741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6557:188:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21742,"nodeType":"ExpressionStatement","src":"6557:188:61"},{"expression":{"expression":{"arguments":[{"id":21744,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21703,"src":"6775:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21745,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21705,"src":"6783:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21746,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21707,"src":"6792:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21747,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21709,"src":"6802:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21748,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21713,"src":"6814:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21749,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21715,"src":"6826:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21750,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6836:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6836:12:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21752,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21711,"src":"6850:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21743,"name":"_newPolicySigned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21700,"src":"6758:16:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,uint256,address,address) returns (struct Policy.PolicyData memory)"}},"id":21753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6758:103:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6862:2:61","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"6758:106:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21730,"id":21755,"nodeType":"Return","src":"6751:113:61"}]},"documentation":{"id":21701,"nodeType":"StructuredDocumentation","src":"5016:1186:61","text":" @dev Creates a new Policy using a signed quote. The caller is the payer of the policy.\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n Emits:\n - {PolicyPool.NewPolicy}\n - {NewSignedPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the payer\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param bucketId Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return Returns the id of the created policy"},"functionSelector":"766dbc56","id":21757,"implemented":true,"kind":"function","modifiers":[{"id":21724,"kind":"modifierInvocation","modifierName":{"id":21723,"name":"whenNotPaused","nameLocations":["6480:13:61"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"6480:13:61"},"nodeType":"ModifierInvocation","src":"6480:13:61"},{"arguments":[{"id":21726,"name":"POLICY_CREATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21486,"src":"6512:19:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":21727,"kind":"modifierInvocation","modifierName":{"id":21725,"name":"onlyComponentRole","nameLocations":["6494:17:61"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"6494:17:61"},"nodeType":"ModifierInvocation","src":"6494:38:61"}],"name":"newPolicy","nameLocation":"6214:9:61","nodeType":"FunctionDefinition","parameters":{"id":21722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21703,"mutability":"mutable","name":"payout","nameLocation":"6237:6:61","nodeType":"VariableDeclaration","scope":21757,"src":"6229:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21702,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21705,"mutability":"mutable","name":"premium","nameLocation":"6257:7:61","nodeType":"VariableDeclaration","scope":21757,"src":"6249:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21704,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21707,"mutability":"mutable","name":"lossProb","nameLocation":"6278:8:61","nodeType":"VariableDeclaration","scope":21757,"src":"6270:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21706,"name":"uint256","nodeType":"ElementaryTypeName","src":"6270:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21709,"mutability":"mutable","name":"expiration","nameLocation":"6299:10:61","nodeType":"VariableDeclaration","scope":21757,"src":"6292:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21708,"name":"uint40","nodeType":"ElementaryTypeName","src":"6292:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21711,"mutability":"mutable","name":"onBehalfOf","nameLocation":"6323:10:61","nodeType":"VariableDeclaration","scope":21757,"src":"6315:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21710,"name":"address","nodeType":"ElementaryTypeName","src":"6315:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21713,"mutability":"mutable","name":"policyData","nameLocation":"6347:10:61","nodeType":"VariableDeclaration","scope":21757,"src":"6339:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6339:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21715,"mutability":"mutable","name":"bucketId","nameLocation":"6371:8:61","nodeType":"VariableDeclaration","scope":21757,"src":"6363:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21714,"name":"uint256","nodeType":"ElementaryTypeName","src":"6363:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21717,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"6393:15:61","nodeType":"VariableDeclaration","scope":21757,"src":"6385:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6385:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21719,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"6422:16:61","nodeType":"VariableDeclaration","scope":21757,"src":"6414:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6414:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21721,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"6451:15:61","nodeType":"VariableDeclaration","scope":21757,"src":"6444:22:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21720,"name":"uint40","nodeType":"ElementaryTypeName","src":"6444:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"6223:247:61"},"returnParameters":{"id":21730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21757,"src":"6542:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21728,"name":"uint256","nodeType":"ElementaryTypeName","src":"6542:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6541:9:61"},"scope":22036,"src":"6205:664:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21818,"nodeType":"Block","src":"8524:424:61","statements":[{"expression":{"arguments":[{"id":21790,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21763,"src":"8553:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21791,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21765,"src":"8567:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21792,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21767,"src":"8582:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21793,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21769,"src":"8598:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":21794,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21771,"src":"8616:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21795,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21773,"src":"8634:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21796,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21775,"src":"8650:15:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21797,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21777,"src":"8673:16:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21798,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21779,"src":"8697:15:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":21789,"name":"_checkSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21652,"src":"8530:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint40_$returns$__$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40) view"}},"id":21799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8530:188:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21800,"nodeType":"ExpressionStatement","src":"8530:188:61"},{"expression":{"expression":{"arguments":[{"id":21802,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21761,"src":"8761:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":21803,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21763,"src":"8780:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21804,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21765,"src":"8796:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21805,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21767,"src":"8813:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21806,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21769,"src":"8831:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":21807,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"8851:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8851:12:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":21810,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21771,"src":"8889:10:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21809,"name":"_makeInternalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"8873:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint96_$","typeString":"function (bytes32) pure returns (uint96)"}},"id":21811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8873:27:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[{"id":21813,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21773,"src":"8923:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21812,"name":"bucketParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22001,"src":"8910:12:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (uint256) view returns (struct IRiskModule.Params memory)"}},"id":21814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8910:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":21801,"name":"_replacePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"8737:14:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData calldata,uint256,uint256,uint256,uint40,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":21815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:203:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":21816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8941:2:61","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"8737:206:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21788,"id":21817,"nodeType":"Return","src":"8724:219:61"}]},"documentation":{"id":21758,"nodeType":"StructuredDocumentation","src":"6873:1286:61","text":" @dev Replace a policy with a new one, reusing the premium and the capital locked\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n - The caller has been granted component role REPLACER_ROLE or creation is open\n Emits:\n - {PolicyPool.PolicyReplaced}\n - {PolicyPool.NewPolicy}\n @param oldPolicy The policy to be replaced\n @param payout The exposure (maximum payout) of the new policy\n @param premium The premium that will be paid by the caller\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param bucketId Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return Returns the id of the created policy"},"functionSelector":"82ff9c8c","id":21819,"implemented":true,"kind":"function","modifiers":[{"id":21782,"kind":"modifierInvocation","modifierName":{"id":21781,"name":"whenNotPaused","nameLocations":["8459:13:61"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"8459:13:61"},"nodeType":"ModifierInvocation","src":"8459:13:61"},{"arguments":[{"id":21784,"name":"REPLACER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21491,"src":"8491:13:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":21785,"kind":"modifierInvocation","modifierName":{"id":21783,"name":"onlyComponentRole","nameLocations":["8473:17:61"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"8473:17:61"},"nodeType":"ModifierInvocation","src":"8473:32:61"}],"name":"replacePolicy","nameLocation":"8171:13:61","nodeType":"FunctionDefinition","parameters":{"id":21780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21761,"mutability":"mutable","name":"oldPolicy","nameLocation":"8217:9:61","nodeType":"VariableDeclaration","scope":21819,"src":"8190:36:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21760,"nodeType":"UserDefinedTypeName","pathNode":{"id":21759,"name":"Policy.PolicyData","nameLocations":["8190:6:61","8197:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"8190:17:61"},"referencedDeclaration":14966,"src":"8190:17:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":21763,"mutability":"mutable","name":"payout","nameLocation":"8240:6:61","nodeType":"VariableDeclaration","scope":21819,"src":"8232:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21762,"name":"uint256","nodeType":"ElementaryTypeName","src":"8232:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21765,"mutability":"mutable","name":"premium","nameLocation":"8260:7:61","nodeType":"VariableDeclaration","scope":21819,"src":"8252:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21764,"name":"uint256","nodeType":"ElementaryTypeName","src":"8252:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21767,"mutability":"mutable","name":"lossProb","nameLocation":"8281:8:61","nodeType":"VariableDeclaration","scope":21819,"src":"8273:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21766,"name":"uint256","nodeType":"ElementaryTypeName","src":"8273:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21769,"mutability":"mutable","name":"expiration","nameLocation":"8302:10:61","nodeType":"VariableDeclaration","scope":21819,"src":"8295:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21768,"name":"uint40","nodeType":"ElementaryTypeName","src":"8295:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":21771,"mutability":"mutable","name":"policyData","nameLocation":"8326:10:61","nodeType":"VariableDeclaration","scope":21819,"src":"8318:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8318:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21773,"mutability":"mutable","name":"bucketId","nameLocation":"8350:8:61","nodeType":"VariableDeclaration","scope":21819,"src":"8342:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21772,"name":"uint256","nodeType":"ElementaryTypeName","src":"8342:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21775,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"8372:15:61","nodeType":"VariableDeclaration","scope":21819,"src":"8364:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8364:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21777,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"8401:16:61","nodeType":"VariableDeclaration","scope":21819,"src":"8393:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8393:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21779,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"8430:15:61","nodeType":"VariableDeclaration","scope":21819,"src":"8423:22:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":21778,"name":"uint40","nodeType":"ElementaryTypeName","src":"8423:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"8184:265:61"},"returnParameters":{"id":21788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21819,"src":"8515:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21786,"name":"uint256","nodeType":"ElementaryTypeName","src":"8515:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8514:9:61"},"scope":22036,"src":"8162:786:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21839,"nodeType":"Block","src":"9094:52:61","statements":[{"expression":{"arguments":[{"id":21835,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21822,"src":"9126:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":21836,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21824,"src":"9134:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21832,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"9100:11:61","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":21834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9112:13:61","memberName":"resolvePolicy","nodeType":"MemberAccess","referencedDeclaration":23753,"src":"9100:25:61","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256) external"}},"id":21837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9100:41:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21838,"nodeType":"ExpressionStatement","src":"9100:41:61"}]},"functionSelector":"7a702b3c","id":21840,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":21827,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21501,"src":"9065:13:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":21828,"kind":"modifierInvocation","modifierName":{"id":21826,"name":"onlyComponentRole","nameLocations":["9047:17:61"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"9047:17:61"},"nodeType":"ModifierInvocation","src":"9047:32:61"},{"id":21830,"kind":"modifierInvocation","modifierName":{"id":21829,"name":"whenNotPaused","nameLocations":["9080:13:61"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"9080:13:61"},"nodeType":"ModifierInvocation","src":"9080:13:61"}],"name":"resolvePolicy","nameLocation":"8961:13:61","nodeType":"FunctionDefinition","parameters":{"id":21825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21822,"mutability":"mutable","name":"policy","nameLocation":"9007:6:61","nodeType":"VariableDeclaration","scope":21840,"src":"8980:33:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":21821,"nodeType":"UserDefinedTypeName","pathNode":{"id":21820,"name":"Policy.PolicyData","nameLocations":["8980:6:61","8987:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"8980:17:61"},"referencedDeclaration":14966,"src":"8980:17:61","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":21824,"mutability":"mutable","name":"payout","nameLocation":"9027:6:61","nodeType":"VariableDeclaration","scope":21840,"src":"9019:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21823,"name":"uint256","nodeType":"ElementaryTypeName","src":"9019:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8974:63:61"},"returnParameters":{"id":21831,"nodeType":"ParameterList","parameters":[],"src":"9094:0:61"},"scope":22036,"src":"8952:194:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21921,"nodeType":"Block","src":"9587:681:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21853,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21843,"src":"9597:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9609:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9597:13:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21859,"nodeType":"IfStatement","src":"9593:46:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":21856,"name":"BucketCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21530,"src":"9619:18:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":21857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":21858,"nodeType":"RevertStatement","src":"9612:27:61"}},{"expression":{"id":21908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21860,"name":"_buckets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21506,"src":"9645:8:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams storage ref)"}},"id":21862,"indexExpression":{"id":21861,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21843,"src":"9654:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9645:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":21865,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9700:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9708:3:61","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":23907,"src":"9700:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21864,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9692:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9692:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21869,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9741:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9749:11:61","memberName":"jrCollRatio","nodeType":"MemberAccess","referencedDeclaration":23910,"src":"9741:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21868,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9733:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9733:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21873,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9788:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9796:9:61","memberName":"collRatio","nodeType":"MemberAccess","referencedDeclaration":23913,"src":"9788:17:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21872,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9780:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21877,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9835:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9843:11:61","memberName":"ensuroPpFee","nodeType":"MemberAccess","referencedDeclaration":23916,"src":"9835:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21876,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9827:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9827:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21881,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9885:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:12:61","memberName":"ensuroCocFee","nodeType":"MemberAccess","referencedDeclaration":23919,"src":"9885:20:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21880,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9877:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9877:29:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21885,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9929:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9937:5:61","memberName":"jrRoc","nodeType":"MemberAccess","referencedDeclaration":23922,"src":"9929:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21884,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9921:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9921:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"expression":{"id":21889,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"9966:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}},"id":21890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9974:5:61","memberName":"srRoc","nodeType":"MemberAccess","referencedDeclaration":23925,"src":"9966:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21888,"name":"_wadTo4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9958:7:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256) pure returns (uint16)"}},"id":21891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9958:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"arguments":[{"id":21894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10013:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":21893,"name":"uint32","nodeType":"ElementaryTypeName","src":"10013:6:61","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":21892,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10008:4:61","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:12:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":21896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10021:3:61","memberName":"max","nodeType":"MemberAccess","src":"10008:16:61","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"arguments":[{"id":21899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10083:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":21898,"name":"uint32","nodeType":"ElementaryTypeName","src":"10083:6:61","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":21897,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10078:4:61","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10078:12:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":21901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10091:3:61","memberName":"max","nodeType":"MemberAccess","src":"10078:16:61","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"arguments":[{"id":21904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10150:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":21903,"name":"uint16","nodeType":"ElementaryTypeName","src":"10150:6:61","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":21902,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10145:4:61","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":21905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10145:12:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":21906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10158:3:61","memberName":"max","nodeType":"MemberAccess","src":"10145:16:61","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":21863,"name":"PackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"9666:12:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PackedParams_$20220_storage_ptr_$","typeString":"type(struct RiskModule.PackedParams storage pointer)"}},"id":21907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9687:3:61","9720:11:61","9769:9:61","9814:11:61","9863:12:61","9914:5:61","9951:5:61","9988:18:61","10063:13:61","10132:11:61"],"names":["moc","jrCollRatio","collRatio","ensuroPpFee","ensuroCocFee","jrRoc","srRoc","maxPayoutPerPolicy","exposureLimit","maxDuration"],"nodeType":"FunctionCall","src":"9666:511:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_memory_ptr","typeString":"struct RiskModule.PackedParams memory"}},"src":"9645:532:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":21909,"nodeType":"ExpressionStatement","src":"9645:532:61"},{"expression":{"arguments":[{"baseExpression":{"id":21911,"name":"_buckets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21506,"src":"10205:8:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams storage ref)"}},"id":21913,"indexExpression":{"id":21912,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21843,"src":"10214:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10205:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}],"id":21910,"name":"_validatePackedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20540,"src":"10183:21:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PackedParams_$20220_storage_ptr_$returns$__$","typeString":"function (struct RiskModule.PackedParams storage pointer) view"}},"id":21914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10183:41:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21915,"nodeType":"ExpressionStatement","src":"10183:41:61"},{"eventCall":{"arguments":[{"id":21917,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21843,"src":"10245:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21918,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21846,"src":"10255:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params calldata"}],"id":21916,"name":"NewBucket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21514,"src":"10235:9:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_Params_$23926_memory_ptr_$returns$__$","typeString":"function (uint256,struct IRiskModule.Params memory)"}},"id":21919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21920,"nodeType":"EmitStatement","src":"10230:33:61"}]},"documentation":{"id":21841,"nodeType":"StructuredDocumentation","src":"9150:292:61","text":" @dev Sets the parameters for a risk bucket.\n Requirements:\n - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\n @param bucketId Group identifier for the policies that will have these parameters\n @param params_ The parameters of the new bucket."},"functionSelector":"571e8bcc","id":21922,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":21849,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"9561:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21850,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"9574:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":21851,"kind":"modifierInvocation","modifierName":{"id":21848,"name":"onlyGlobalOrComponentRole2","nameLocations":["9534:26:61"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"9534:26:61"},"nodeType":"ModifierInvocation","src":"9534:52:61"}],"name":"setBucketParams","nameLocation":"9454:15:61","nodeType":"FunctionDefinition","parameters":{"id":21847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21843,"mutability":"mutable","name":"bucketId","nameLocation":"9483:8:61","nodeType":"VariableDeclaration","scope":21922,"src":"9475:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21842,"name":"uint256","nodeType":"ElementaryTypeName","src":"9475:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21846,"mutability":"mutable","name":"params_","nameLocation":"9513:7:61","nodeType":"VariableDeclaration","scope":21922,"src":"9497:23:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_calldata_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21845,"nodeType":"UserDefinedTypeName","pathNode":{"id":21844,"name":"Params","nameLocations":["9497:6:61"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"9497:6:61"},"referencedDeclaration":23926,"src":"9497:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"9469:55:61"},"returnParameters":{"id":21852,"nodeType":"ParameterList","parameters":[],"src":"9587:0:61"},"scope":22036,"src":"9445:823:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21958,"nodeType":"Block","src":"10593:184:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21932,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"10603:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10615:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10603:13:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21938,"nodeType":"IfStatement","src":"10599:46:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":21935,"name":"BucketCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21530,"src":"10625:18:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":21936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10625:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":21937,"nodeType":"RevertStatement","src":"10618:27:61"}},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":21944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":21939,"name":"_buckets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21506,"src":"10655:8:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams storage ref)"}},"id":21941,"indexExpression":{"id":21940,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"10664:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10655:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"id":21942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10674:3:61","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"10655:22:61","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10681:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10655:27:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21948,"nodeType":"IfStatement","src":"10651:56:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":21945,"name":"BucketNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21532,"src":"10691:14:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":21946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10691:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":21947,"nodeType":"RevertStatement","src":"10684:23:61"}},{"expression":{"id":21952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10713:25:61","subExpression":{"baseExpression":{"id":21949,"name":"_buckets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21506,"src":"10720:8:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams storage ref)"}},"id":21951,"indexExpression":{"id":21950,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"10729:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10720:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21953,"nodeType":"ExpressionStatement","src":"10713:25:61"},{"eventCall":{"arguments":[{"id":21955,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"10763:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21954,"name":"BucketDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21519,"src":"10749:13:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":21956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:23:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21957,"nodeType":"EmitStatement","src":"10744:28:61"}]},"documentation":{"id":21923,"nodeType":"StructuredDocumentation","src":"10272:216:61","text":" @dev Deletes a bucket\n Requirements:\n - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\n @param bucketId Group identifier for the policies that will have these parameters"},"functionSelector":"18e26bb9","id":21959,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":21928,"name":"LEVEL1_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"10567:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21929,"name":"LEVEL2_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17729,"src":"10580:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":21930,"kind":"modifierInvocation","modifierName":{"id":21927,"name":"onlyGlobalOrComponentRole2","nameLocations":["10540:26:61"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"10540:26:61"},"nodeType":"ModifierInvocation","src":"10540:52:61"}],"name":"deleteBucket","nameLocation":"10500:12:61","nodeType":"FunctionDefinition","parameters":{"id":21926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21925,"mutability":"mutable","name":"bucketId","nameLocation":"10521:8:61","nodeType":"VariableDeclaration","scope":21959,"src":"10513:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21924,"name":"uint256","nodeType":"ElementaryTypeName","src":"10513:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10512:18:61"},"returnParameters":{"id":21931,"nodeType":"ParameterList","parameters":[],"src":"10593:0:61"},"scope":22036,"src":"10491:286:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22000,"nodeType":"Block","src":"11024:243:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21968,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21962,"src":"11034:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":21969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11046:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11034:13:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21998,"nodeType":"Block","src":"11230:33:61","statements":[{"expression":{"id":21996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21993,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21966,"src":"11238:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":21994,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20887,"src":"11248:6:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function () view returns (struct IRiskModule.Params memory)"}},"id":21995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11248:8:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"src":"11238:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":21997,"nodeType":"ExpressionStatement","src":"11238:18:61"}]},"id":21999,"nodeType":"IfStatement","src":"11030:233:61","trueBody":{"id":21992,"nodeType":"Block","src":"11049:175:61","statements":[{"assignments":[21973],"declarations":[{"constant":false,"id":21973,"mutability":"mutable","name":"bucketParams_","nameLocation":"11078:13:61","nodeType":"VariableDeclaration","scope":21992,"src":"11057:34:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"},"typeName":{"id":21972,"nodeType":"UserDefinedTypeName","pathNode":{"id":21971,"name":"PackedParams","nameLocations":["11057:12:61"],"nodeType":"IdentifierPath","referencedDeclaration":20220,"src":"11057:12:61"},"referencedDeclaration":20220,"src":"11057:12:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams"}},"visibility":"internal"}],"id":21977,"initialValue":{"baseExpression":{"id":21974,"name":"_buckets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21506,"src":"11094:8:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PackedParams_$20220_storage_$","typeString":"mapping(uint256 => struct RiskModule.PackedParams storage ref)"}},"id":21976,"indexExpression":{"id":21975,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21962,"src":"11103:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11094:18:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage","typeString":"struct RiskModule.PackedParams storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11057:55:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":21981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21978,"name":"bucketParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21973,"src":"11124:13:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}},"id":21979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11138:3:61","memberName":"moc","nodeType":"MemberAccess","referencedDeclaration":20201,"src":"11124:17:61","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11145:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11124:22:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21985,"nodeType":"IfStatement","src":"11120:51:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":21982,"name":"BucketNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21532,"src":"11155:14:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":21983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":21984,"nodeType":"RevertStatement","src":"11148:23:61"}},{"expression":{"id":21990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21986,"name":"params_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21966,"src":"11179:7:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21988,"name":"bucketParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21973,"src":"11203:13:61","typeDescriptions":{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PackedParams_$20220_storage_ptr","typeString":"struct RiskModule.PackedParams storage pointer"}],"id":21987,"name":"_unpackParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"11189:13:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PackedParams_$20220_memory_ptr_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (struct RiskModule.PackedParams memory) pure returns (struct IRiskModule.Params memory)"}},"id":21989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11189:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"src":"11179:38:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},"id":21991,"nodeType":"ExpressionStatement","src":"11179:38:61"}]}}]},"documentation":{"id":21960,"nodeType":"StructuredDocumentation","src":"10781:156:61","text":" @dev returns the risk bucket parameters for the given bucketId\n @param bucketId Id of the bucket or 0 if you want the default params"},"functionSelector":"ceddac6f","id":22001,"implemented":true,"kind":"function","modifiers":[],"name":"bucketParams","nameLocation":"10949:12:61","nodeType":"FunctionDefinition","parameters":{"id":21963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21962,"mutability":"mutable","name":"bucketId","nameLocation":"10970:8:61","nodeType":"VariableDeclaration","scope":22001,"src":"10962:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21961,"name":"uint256","nodeType":"ElementaryTypeName","src":"10962:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10961:18:61"},"returnParameters":{"id":21967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21966,"mutability":"mutable","name":"params_","nameLocation":"11015:7:61","nodeType":"VariableDeclaration","scope":22001,"src":"11001:21:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":21965,"nodeType":"UserDefinedTypeName","pathNode":{"id":21964,"name":"Params","nameLocations":["11001:6:61"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"11001:6:61"},"referencedDeclaration":23926,"src":"11001:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"11000:23:61"},"scope":22036,"src":"10940:327:61","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":22029,"nodeType":"Block","src":"11763:115:61","statements":[{"expression":{"arguments":[{"id":22016,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22004,"src":"11795:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22017,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22006,"src":"11803:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22018,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22008,"src":"11813:10:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"expression":{"id":22021,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11832:5:61","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:9:61","memberName":"timestamp","nodeType":"MemberAccess","src":"11832:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11825:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":22019,"name":"uint40","nodeType":"ElementaryTypeName","src":"11825:6:61","typeDescriptions":{}}},"id":22023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11825:23:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"id":22025,"name":"bucketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"11863:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22024,"name":"bucketParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22001,"src":"11850:12:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function (uint256) view returns (struct IRiskModule.Params memory)"}},"id":22026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11850:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":22015,"name":"_getMinimumPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21037,"src":"11776:18:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint40,uint40,struct IRiskModule.Params memory) pure returns (uint256)"}},"id":22027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:97:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22014,"id":22028,"nodeType":"Return","src":"11769:104:61"}]},"documentation":{"id":22002,"nodeType":"StructuredDocumentation","src":"11271:324:61","text":" @dev Returns the minimum premium for a given bucket\n @param payout Maximum payout of the policy\n @param lossProb Probability of having a loss equal to the maximum payout\n @param expiration Expiration date of the policy\n @param bucketId Id of the bucket of 0 if you want the default params"},"functionSelector":"b9b28f2a","id":22030,"implemented":true,"kind":"function","modifiers":[],"name":"getMinimumPremiumForBucket","nameLocation":"11607:26:61","nodeType":"FunctionDefinition","parameters":{"id":22011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22004,"mutability":"mutable","name":"payout","nameLocation":"11647:6:61","nodeType":"VariableDeclaration","scope":22030,"src":"11639:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22003,"name":"uint256","nodeType":"ElementaryTypeName","src":"11639:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22006,"mutability":"mutable","name":"lossProb","nameLocation":"11667:8:61","nodeType":"VariableDeclaration","scope":22030,"src":"11659:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22005,"name":"uint256","nodeType":"ElementaryTypeName","src":"11659:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22008,"mutability":"mutable","name":"expiration","nameLocation":"11688:10:61","nodeType":"VariableDeclaration","scope":22030,"src":"11681:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22007,"name":"uint40","nodeType":"ElementaryTypeName","src":"11681:6:61","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22010,"mutability":"mutable","name":"bucketId","nameLocation":"11712:8:61","nodeType":"VariableDeclaration","scope":22030,"src":"11704:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22009,"name":"uint256","nodeType":"ElementaryTypeName","src":"11704:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11633:91:61"},"returnParameters":{"id":22014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22030,"src":"11754:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22012,"name":"uint256","nodeType":"ElementaryTypeName","src":"11754:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11753:9:61"},"scope":22036,"src":"11598:280:61","stateMutability":"view","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":22031,"nodeType":"StructuredDocumentation","src":"11882:246:61","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":22035,"mutability":"mutable","name":"__gap","nameLocation":"12151:5:61","nodeType":"VariableDeclaration","scope":22036,"src":"12131:25:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":22032,"name":"uint256","nodeType":"ElementaryTypeName","src":"12131:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22034,"length":{"hexValue":"3439","id":22033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12139:2:61","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"12131:11:61","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":22037,"src":"870:11289:61","usedErrors":[17749,17751,17753,20229,20231,20233,20235,21528,21530,21532],"usedEvents":[417,424,429,790,1096,1101,17740,17747,21514,21519,21526]}],"src":"39:12121:61"},"id":61},"contracts/SignedQuoteRiskModule.sol":{"ast":{"absolutePath":"contracts/SignedQuoteRiskModule.sol","exportedSymbols":{"ECDSA":[7677],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Policy":[15439],"RiskModule":[21466],"SignedQuoteRiskModule":[22435]},"id":22436,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":22038,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:62"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":22040,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22436,"sourceUnit":7678,"src":"64:75:62","symbolAliases":[{"foreign":{"id":22039,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"72:5:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":22042,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22436,"sourceUnit":23807,"src":"140:57:62","symbolAliases":[{"foreign":{"id":22041,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"148:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":22044,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22436,"sourceUnit":23887,"src":"198:67:62","symbolAliases":[{"foreign":{"id":22043,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"206:16:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskModule.sol","file":"./RiskModule.sol","id":22046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22436,"sourceUnit":21467,"src":"266:44:62","symbolAliases":[{"foreign":{"id":22045,"name":"RiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21466,"src":"274:10:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":22048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22436,"sourceUnit":15440,"src":"311:36:62","symbolAliases":[{"foreign":{"id":22047,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"319:6:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22050,"name":"RiskModule","nameLocations":["721:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"721:10:62"},"id":22051,"nodeType":"InheritanceSpecifier","src":"721:10:62"}],"canonicalName":"SignedQuoteRiskModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":22049,"nodeType":"StructuredDocumentation","src":"349:337:62","text":" @title SignedQuote Risk Module\n @dev Risk Module that for policy creation verifies the different components of the price have been signed by a\ntrusted account (PRICER_ROLE). For the resolution (resolvePolicy), it has to be called by an authorized user\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":22435,"linearizedBaseContracts":[22435,21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"SignedQuoteRiskModule","nameLocation":"696:21:62","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"45f739ff","id":22056,"mutability":"constant","name":"POLICY_CREATOR_ROLE","nameLocation":"760:19:62","nodeType":"VariableDeclaration","scope":22435,"src":"736:78:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"736:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"504f4c4943595f43524541544f525f524f4c45","id":22054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"792:21:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb","typeString":"literal_string \"POLICY_CREATOR_ROLE\""},"value":"POLICY_CREATOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb","typeString":"literal_string \"POLICY_CREATOR_ROLE\""}],"id":22053,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"782:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:32:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"fbb81279","id":22061,"mutability":"constant","name":"PRICER_ROLE","nameLocation":"842:11:62","nodeType":"VariableDeclaration","scope":22435,"src":"818:62:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"818:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5052494345525f524f4c45","id":22059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"866:13:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""},"value":"PRICER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""}],"id":22058,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"856:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"856:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"78fab260","id":22066,"mutability":"constant","name":"RESOLVER_ROLE","nameLocation":"908:13:62","nodeType":"VariableDeclaration","scope":22435,"src":"884:66:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"884:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245534f4c5645525f524f4c45","id":22064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"934:15:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""},"value":"RESOLVER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""}],"id":22063,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"924:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"924:26:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":22067,"nodeType":"StructuredDocumentation","src":"955:61:62","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":22069,"mutability":"immutable","name":"_creationIsOpen","nameLocation":"1043:15:62","nodeType":"VariableDeclaration","scope":22435,"src":"1019:39:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22068,"name":"bool","nodeType":"ElementaryTypeName","src":"1019:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"anonymous":false,"documentation":{"id":22070,"nodeType":"StructuredDocumentation","src":"1063:284:62","text":" @dev Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\n @param policyId The id of the policy\n @param policyData The value sent in `policyData` parameter that's the hash of the off-chain stored data."},"eventSelector":"3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f70","id":22076,"name":"NewSignedPolicy","nameLocation":"1356:15:62","nodeType":"EventDefinition","parameters":{"id":22075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22072,"indexed":true,"mutability":"mutable","name":"policyId","nameLocation":"1388:8:62","nodeType":"VariableDeclaration","scope":22076,"src":"1372:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1372:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22074,"indexed":false,"mutability":"mutable","name":"policyData","nameLocation":"1406:10:62","nodeType":"VariableDeclaration","scope":22076,"src":"1398:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1398:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1371:46:62"},"src":"1350:68:62"},{"errorSelector":"8727a7f9","id":22078,"name":"QuoteExpired","nameLocation":"1428:12:62","nodeType":"ErrorDefinition","parameters":{"id":22077,"nodeType":"ParameterList","parameters":[],"src":"1440:2:62"},"src":"1422:21:62"},{"body":{"id":22098,"nodeType":"Block","src":"1650:44:62","statements":[{"expression":{"id":22096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22094,"name":"_creationIsOpen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22069,"src":"1656:15:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22095,"name":"creationIsOpen_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22087,"src":"1674:15:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1656:33:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22097,"nodeType":"ExpressionStatement","src":"1656:33:62"}]},"documentation":{"id":22079,"nodeType":"StructuredDocumentation","src":"1447:48:62","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":22099,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":22090,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22082,"src":"1619:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},{"id":22091,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22085,"src":"1632:16:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"id":22092,"kind":"baseConstructorSpecifier","modifierName":{"id":22089,"name":"RiskModule","nameLocations":["1608:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"1608:10:62"},"nodeType":"ModifierInvocation","src":"1608:41:62"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22082,"mutability":"mutable","name":"policyPool_","nameLocation":"1527:11:62","nodeType":"VariableDeclaration","scope":22099,"src":"1515:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":22081,"nodeType":"UserDefinedTypeName","pathNode":{"id":22080,"name":"IPolicyPool","nameLocations":["1515:11:62"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"1515:11:62"},"referencedDeclaration":23806,"src":"1515:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":22085,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"1561:16:62","nodeType":"VariableDeclaration","scope":22099,"src":"1544:33:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":22084,"nodeType":"UserDefinedTypeName","pathNode":{"id":22083,"name":"IPremiumsAccount","nameLocations":["1544:16:62"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"1544:16:62"},"referencedDeclaration":23886,"src":"1544:16:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"},{"constant":false,"id":22087,"mutability":"mutable","name":"creationIsOpen_","nameLocation":"1588:15:62","nodeType":"VariableDeclaration","scope":22099,"src":"1583:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22086,"name":"bool","nodeType":"ElementaryTypeName","src":"1583:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1509:98:62"},"returnParameters":{"id":22093,"nodeType":"ParameterList","parameters":[],"src":"1650:0:62"},"scope":22435,"src":"1498:196:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22129,"nodeType":"Block","src":"2505:115:62","statements":[{"expression":{"arguments":[{"id":22120,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22102,"src":"2529:5:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22121,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22104,"src":"2536:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22122,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22106,"src":"2548:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22123,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22108,"src":"2562:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22124,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22110,"src":"2570:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22125,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22112,"src":"2591:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22126,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22114,"src":"2607:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22119,"name":"__RiskModule_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20302,"src":"2511:17:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,uint256,uint256,uint256,uint256,uint256,address)"}},"id":22127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:104:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22128,"nodeType":"ExpressionStatement","src":"2511:104:62"}]},"documentation":{"id":22100,"nodeType":"StructuredDocumentation","src":"1698:584:62","text":" @dev Initializes the RiskModule\n @param name_ Name of the Risk Module\n @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n @param wallet_ Address of the RiskModule provider"},"functionSelector":"6f0dbe6f","id":22130,"implemented":true,"kind":"function","modifiers":[{"id":22117,"kind":"modifierInvocation","modifierName":{"id":22116,"name":"initializer","nameLocations":["2493:11:62"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"2493:11:62"},"nodeType":"ModifierInvocation","src":"2493:11:62"}],"name":"initialize","nameLocation":"2294:10:62","nodeType":"FunctionDefinition","parameters":{"id":22115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22102,"mutability":"mutable","name":"name_","nameLocation":"2324:5:62","nodeType":"VariableDeclaration","scope":22130,"src":"2310:19:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22101,"name":"string","nodeType":"ElementaryTypeName","src":"2310:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22104,"mutability":"mutable","name":"collRatio_","nameLocation":"2343:10:62","nodeType":"VariableDeclaration","scope":22130,"src":"2335:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2335:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22106,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"2367:12:62","nodeType":"VariableDeclaration","scope":22130,"src":"2359:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22105,"name":"uint256","nodeType":"ElementaryTypeName","src":"2359:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22108,"mutability":"mutable","name":"srRoc_","nameLocation":"2393:6:62","nodeType":"VariableDeclaration","scope":22130,"src":"2385:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2385:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22110,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"2413:19:62","nodeType":"VariableDeclaration","scope":22130,"src":"2405:27:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22109,"name":"uint256","nodeType":"ElementaryTypeName","src":"2405:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22112,"mutability":"mutable","name":"exposureLimit_","nameLocation":"2446:14:62","nodeType":"VariableDeclaration","scope":22130,"src":"2438:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22111,"name":"uint256","nodeType":"ElementaryTypeName","src":"2438:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22114,"mutability":"mutable","name":"wallet_","nameLocation":"2474:7:62","nodeType":"VariableDeclaration","scope":22130,"src":"2466:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22113,"name":"address","nodeType":"ElementaryTypeName","src":"2466:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2304:181:62"},"returnParameters":{"id":22118,"nodeType":"ParameterList","parameters":[],"src":"2505:0:62"},"scope":22435,"src":"2285:335:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22243,"nodeType":"Block","src":"2952:1268:62","statements":[{"condition":{"id":22157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2962:16:62","subExpression":{"id":22156,"name":"_creationIsOpen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22069,"src":"2963:15:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22173,"nodeType":"IfStatement","src":"2958:124:62","trueBody":{"expression":{"arguments":[{"arguments":[{"id":22165,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3034:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}],"id":22164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3026:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22163,"name":"address","nodeType":"ElementaryTypeName","src":"3026:7:62","typeDescriptions":{}}},"id":22166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22167,"name":"POLICY_CREATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22056,"src":"3041:19:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":22168,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"3062:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3062:12:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":22170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3076:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22158,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2986:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":22160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2998:6:62","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"2986:18:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":22161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2986:20:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":22162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3007:18:62","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"2986:39:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":22171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2986:96:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22172,"nodeType":"ExpressionStatement","src":"2986:96:62"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22174,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22146,"src":"3092:15:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":22175,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3110:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3116:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"3110:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:33:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22181,"nodeType":"IfStatement","src":"3088:60:62","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":22178,"name":"QuoteExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22078,"src":"3134:12:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":22179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:14:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":22180,"nodeType":"RevertStatement","src":"3127:21:62"}},{"assignments":[22184],"declarations":[{"constant":false,"id":22184,"mutability":"mutable","name":"quoteHash","nameLocation":"3689:9:62","nodeType":"VariableDeclaration","scope":22243,"src":"3681:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3681:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" Checks the quote has been signed by an authorized user\n The \"quote\" is computed as hash of the following fields (encodePacked):\n - address(this): the address of this RiskModule\n - payout, premium, lossProb, expiration: the base parameters of the policy\n - policyData: a hash of the private details of the policy. The calculation should include some\n   unique id (quoteId), so each policyData identifies a policy.\n - quoteValidUntil: the maximum validity of the quote","id":22201,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":22191,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3762:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}],"id":22190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3754:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22189,"name":"address","nodeType":"ElementaryTypeName","src":"3754:7:62","typeDescriptions":{}}},"id":22192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3754:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22193,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22132,"src":"3769:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22194,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22134,"src":"3777:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22195,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22136,"src":"3786:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22196,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22138,"src":"3796:10:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22197,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22140,"src":"3808:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22198,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22146,"src":"3820:15:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":22187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3737:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3741:12:62","memberName":"encodePacked","nodeType":"MemberAccess","src":"3737:16:62","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":22199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3737:99:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22185,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"3701:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":22186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:22:62","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":7644,"src":"3701:28:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:141:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3681:161:62"},{"expression":{"arguments":[{"arguments":[{"id":22209,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3903:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignedQuoteRiskModule_$22435","typeString":"contract SignedQuoteRiskModule"}],"id":22208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3895:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22207,"name":"address","nodeType":"ElementaryTypeName","src":"3895:7:62","typeDescriptions":{}}},"id":22210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3895:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22211,"name":"PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22061,"src":"3916:11:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":22214,"name":"quoteHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22184,"src":"3949:9:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22215,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22142,"src":"3960:15:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22216,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22144,"src":"3977:16:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22212,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"3935:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$7677_$","typeString":"type(library ECDSA)"}},"id":22213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3941:7:62","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":7515,"src":"3935:13:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address)"}},"id":22217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3935:59:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":22218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4002:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22202,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"3848:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":22204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3860:6:62","memberName":"access","nodeType":"MemberAccess","referencedDeclaration":23707,"src":"3848:18:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAccessManager_$23370_$","typeString":"function () view external returns (contract IAccessManager)"}},"id":22205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:20:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":22206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3869:18:62","memberName":"checkComponentRole","nodeType":"MemberAccess","referencedDeclaration":23355,"src":"3848:39:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bytes32,address,bool) view external"}},"id":22219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:165:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22220,"nodeType":"ExpressionStatement","src":"3848:165:62"},{"expression":{"id":22233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22221,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"4020:13:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22223,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22132,"src":"4047:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22224,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22134,"src":"4055:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22225,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22136,"src":"4064:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22226,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22138,"src":"4074:10:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22227,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22148,"src":"4086:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22228,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22150,"src":"4093:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22230,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22140,"src":"4121:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22229,"name":"_makeInternalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20948,"src":"4105:15:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint96_$","typeString":"function (bytes32) pure returns (uint96)"}},"id":22231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":22222,"name":"_newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21071,"src":"4036:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96) returns (struct Policy.PolicyData memory)"}},"id":22232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4036:97:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"src":"4020:113:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":22234,"nodeType":"ExpressionStatement","src":"4020:113:62"},{"eventCall":{"arguments":[{"expression":{"id":22236,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"4160:13:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":22237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4174:2:62","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"4160:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22238,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22140,"src":"4178:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22235,"name":"NewSignedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22076,"src":"4144:15:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":22239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4144:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22240,"nodeType":"EmitStatement","src":"4139:50:62"},{"expression":{"id":22241,"name":"createdPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"4202:13:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":22155,"id":22242,"nodeType":"Return","src":"4195:20:62"}]},"id":22244,"implemented":true,"kind":"function","modifiers":[],"name":"_newPolicySigned","nameLocation":"2633:16:62","nodeType":"FunctionDefinition","parameters":{"id":22151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22132,"mutability":"mutable","name":"payout","nameLocation":"2663:6:62","nodeType":"VariableDeclaration","scope":22244,"src":"2655:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22131,"name":"uint256","nodeType":"ElementaryTypeName","src":"2655:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22134,"mutability":"mutable","name":"premium","nameLocation":"2683:7:62","nodeType":"VariableDeclaration","scope":22244,"src":"2675:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22133,"name":"uint256","nodeType":"ElementaryTypeName","src":"2675:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22136,"mutability":"mutable","name":"lossProb","nameLocation":"2704:8:62","nodeType":"VariableDeclaration","scope":22244,"src":"2696:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2696:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22138,"mutability":"mutable","name":"expiration","nameLocation":"2725:10:62","nodeType":"VariableDeclaration","scope":22244,"src":"2718:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22137,"name":"uint40","nodeType":"ElementaryTypeName","src":"2718:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22140,"mutability":"mutable","name":"policyData","nameLocation":"2749:10:62","nodeType":"VariableDeclaration","scope":22244,"src":"2741:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2741:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22142,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"2773:15:62","nodeType":"VariableDeclaration","scope":22244,"src":"2765:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2765:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22144,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"2802:16:62","nodeType":"VariableDeclaration","scope":22244,"src":"2794:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2794:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22146,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"2831:15:62","nodeType":"VariableDeclaration","scope":22244,"src":"2824:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22145,"name":"uint40","nodeType":"ElementaryTypeName","src":"2824:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22148,"mutability":"mutable","name":"payer","nameLocation":"2860:5:62","nodeType":"VariableDeclaration","scope":22244,"src":"2852:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22147,"name":"address","nodeType":"ElementaryTypeName","src":"2852:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22150,"mutability":"mutable","name":"onBehalfOf","nameLocation":"2879:10:62","nodeType":"VariableDeclaration","scope":22244,"src":"2871:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22149,"name":"address","nodeType":"ElementaryTypeName","src":"2871:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2649:244:62"},"returnParameters":{"id":22155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22154,"mutability":"mutable","name":"createdPolicy","nameLocation":"2937:13:62","nodeType":"VariableDeclaration","scope":22244,"src":"2912:38:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":22153,"nodeType":"UserDefinedTypeName","pathNode":{"id":22152,"name":"Policy.PolicyData","nameLocations":["2912:6:62","2919:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2912:17:62"},"referencedDeclaration":14966,"src":"2912:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"2911:40:62"},"scope":22435,"src":"2624:1596:62","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22285,"nodeType":"Block","src":"5660:257:62","statements":[{"expression":{"arguments":[{"id":22272,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22247,"src":"5705:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22273,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22249,"src":"5721:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22274,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22251,"src":"5738:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22275,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22253,"src":"5756:10:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22276,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22257,"src":"5776:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22277,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22259,"src":"5796:15:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22278,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22261,"src":"5821:16:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22279,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22263,"src":"5847:15:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":22280,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"5872:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5872:12:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22282,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22255,"src":"5894:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22271,"name":"_newPolicySigned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22244,"src":"5679:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint40_$_t_address_$_t_address_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,bytes32,bytes32,uint40,address,address) returns (struct Policy.PolicyData memory)"}},"id":22283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5679:233:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":22270,"id":22284,"nodeType":"Return","src":"5666:246:62"}]},"documentation":{"id":22245,"nodeType":"StructuredDocumentation","src":"4224:1113:62","text":" @dev Creates a new Policy using a signed quote. The caller is the payer of the policy. Returns all the struct, not just the id.\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n  Emits:\n - {PolicyPool.NewPolicy}\n  - {NewSignedPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the payer\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return createdPolicy Returns the created policy"},"functionSelector":"3711bbf5","id":22286,"implemented":true,"kind":"function","modifiers":[{"id":22266,"kind":"modifierInvocation","modifierName":{"id":22265,"name":"whenNotPaused","nameLocations":["5597:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"5597:13:62"},"nodeType":"ModifierInvocation","src":"5597:13:62"}],"name":"newPolicyFull","nameLocation":"5349:13:62","nodeType":"FunctionDefinition","parameters":{"id":22264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22247,"mutability":"mutable","name":"payout","nameLocation":"5376:6:62","nodeType":"VariableDeclaration","scope":22286,"src":"5368:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22246,"name":"uint256","nodeType":"ElementaryTypeName","src":"5368:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22249,"mutability":"mutable","name":"premium","nameLocation":"5396:7:62","nodeType":"VariableDeclaration","scope":22286,"src":"5388:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22248,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22251,"mutability":"mutable","name":"lossProb","nameLocation":"5417:8:62","nodeType":"VariableDeclaration","scope":22286,"src":"5409:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22250,"name":"uint256","nodeType":"ElementaryTypeName","src":"5409:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22253,"mutability":"mutable","name":"expiration","nameLocation":"5438:10:62","nodeType":"VariableDeclaration","scope":22286,"src":"5431:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22252,"name":"uint40","nodeType":"ElementaryTypeName","src":"5431:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22255,"mutability":"mutable","name":"onBehalfOf","nameLocation":"5462:10:62","nodeType":"VariableDeclaration","scope":22286,"src":"5454:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22254,"name":"address","nodeType":"ElementaryTypeName","src":"5454:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22257,"mutability":"mutable","name":"policyData","nameLocation":"5486:10:62","nodeType":"VariableDeclaration","scope":22286,"src":"5478:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5478:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22259,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"5510:15:62","nodeType":"VariableDeclaration","scope":22286,"src":"5502:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5502:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22261,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"5539:16:62","nodeType":"VariableDeclaration","scope":22286,"src":"5531:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5531:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22263,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"5568:15:62","nodeType":"VariableDeclaration","scope":22286,"src":"5561:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22262,"name":"uint40","nodeType":"ElementaryTypeName","src":"5561:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"5362:225:62"},"returnParameters":{"id":22270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22269,"mutability":"mutable","name":"createdPolicy","nameLocation":"5645:13:62","nodeType":"VariableDeclaration","scope":22286,"src":"5620:38:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":22268,"nodeType":"UserDefinedTypeName","pathNode":{"id":22267,"name":"Policy.PolicyData","nameLocations":["5620:6:62","5627:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"5620:17:62"},"referencedDeclaration":14966,"src":"5620:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"5619:40:62"},"scope":22435,"src":"5340:577:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22327,"nodeType":"Block","src":"7275:260:62","statements":[{"expression":{"expression":{"arguments":[{"id":22313,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22289,"src":"7320:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22314,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22291,"src":"7336:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22315,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"7353:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22316,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"7371:10:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22317,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"7391:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22318,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22301,"src":"7411:15:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22319,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22303,"src":"7436:16:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22320,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22305,"src":"7462:15:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[],"expression":{"argumentTypes":[],"id":22321,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"7487:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7487:12:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22323,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"7509:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22312,"name":"_newPolicySigned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22244,"src":"7294:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint40_$_t_address_$_t_address_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,bytes32,bytes32,uint40,address,address) returns (struct Policy.PolicyData memory)"}},"id":22324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7294:233:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":22325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7528:2:62","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"7294:236:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22311,"id":22326,"nodeType":"Return","src":"7281:249:62"}]},"documentation":{"id":22287,"nodeType":"StructuredDocumentation","src":"5921:1066:62","text":" @dev Creates a new Policy using a signed quote. The caller is the payer of the policy.\n Requirements:\n - The caller approved the spending of the premium to the PolicyPool\n - The quote has been signed by an address with the component role PRICER_ROLE\n Emits:\n - {PolicyPool.NewPolicy}\n - {NewSignedPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the payer\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return Returns the id of the created policy"},"functionSelector":"05918a79","id":22328,"implemented":true,"kind":"function","modifiers":[{"id":22308,"kind":"modifierInvocation","modifierName":{"id":22307,"name":"whenNotPaused","nameLocations":["7243:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"7243:13:62"},"nodeType":"ModifierInvocation","src":"7243:13:62"}],"name":"newPolicy","nameLocation":"6999:9:62","nodeType":"FunctionDefinition","parameters":{"id":22306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22289,"mutability":"mutable","name":"payout","nameLocation":"7022:6:62","nodeType":"VariableDeclaration","scope":22328,"src":"7014:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22288,"name":"uint256","nodeType":"ElementaryTypeName","src":"7014:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22291,"mutability":"mutable","name":"premium","nameLocation":"7042:7:62","nodeType":"VariableDeclaration","scope":22328,"src":"7034:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22290,"name":"uint256","nodeType":"ElementaryTypeName","src":"7034:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22293,"mutability":"mutable","name":"lossProb","nameLocation":"7063:8:62","nodeType":"VariableDeclaration","scope":22328,"src":"7055:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22292,"name":"uint256","nodeType":"ElementaryTypeName","src":"7055:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22295,"mutability":"mutable","name":"expiration","nameLocation":"7084:10:62","nodeType":"VariableDeclaration","scope":22328,"src":"7077:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22294,"name":"uint40","nodeType":"ElementaryTypeName","src":"7077:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22297,"mutability":"mutable","name":"onBehalfOf","nameLocation":"7108:10:62","nodeType":"VariableDeclaration","scope":22328,"src":"7100:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22296,"name":"address","nodeType":"ElementaryTypeName","src":"7100:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22299,"mutability":"mutable","name":"policyData","nameLocation":"7132:10:62","nodeType":"VariableDeclaration","scope":22328,"src":"7124:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7124:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22301,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"7156:15:62","nodeType":"VariableDeclaration","scope":22328,"src":"7148:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7148:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22303,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"7185:16:62","nodeType":"VariableDeclaration","scope":22328,"src":"7177:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7177:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22305,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"7214:15:62","nodeType":"VariableDeclaration","scope":22328,"src":"7207:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22304,"name":"uint40","nodeType":"ElementaryTypeName","src":"7207:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"7008:225:62"},"returnParameters":{"id":22311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22328,"src":"7266:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22309,"name":"uint256","nodeType":"ElementaryTypeName","src":"7266:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7265:9:62"},"scope":22435,"src":"6990:545:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22386,"nodeType":"Block","src":"8882:1008:62","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22355,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"8903:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22356,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"8917:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8917:12:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8903:26:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":22362,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"8954:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":22363,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"8966:10:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8966:12:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22359,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17973,"src":"8933:8:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view returns (contract IERC20Metadata)"}},"id":22360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8933:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":22361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8944:9:62","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"8933:20:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":22365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8933:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8982:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8933:50:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8903:80:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53656e646572206973206e6f7420617574686f72697a656420746f2063726561746520706f6c6963696573206f6e426568616c664f66","id":22369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8991:56:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_480764f09f359bc6962cdebf3d411f712e4a569376eab47f7b4f2b9d5b018433","typeString":"literal_string \"Sender is not authorized to create policies onBehalfOf\""},"value":"Sender is not authorized to create policies onBehalfOf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_480764f09f359bc6962cdebf3d411f712e4a569376eab47f7b4f2b9d5b018433","typeString":"literal_string \"Sender is not authorized to create policies onBehalfOf\""}],"id":22354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8888:7:62","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8888:165:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22371,"nodeType":"ExpressionStatement","src":"8888:165:62"},{"documentation":" The standard is the payer should be the _msgSender() but usually, in this type of module,\n the sender is an operative account managed by software, where the onBehalfOf is a more\n secure account (hardware wallet) that does the cash movements.\n This non standard behaviour allows for a more secure setup, where the sender never manages\n cash.\n We leverage the currency's allowance mechanism to allow the sender access to the payer's\n funds.\n Note that this allowance won't be spent, so anything above 0 is accepted.","expression":{"expression":{"arguments":[{"id":22373,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22331,"src":"9677:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22374,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22333,"src":"9693:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22375,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22335,"src":"9710:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22376,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22337,"src":"9728:10:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22377,"name":"policyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22341,"src":"9748:10:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22378,"name":"quoteSignatureR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22343,"src":"9768:15:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22379,"name":"quoteSignatureVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22345,"src":"9793:16:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22380,"name":"quoteValidUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22347,"src":"9819:15:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":22381,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"9844:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22382,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"9864:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22372,"name":"_newPolicySigned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22244,"src":"9651:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint40_$_t_address_$_t_address_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,bytes32,bytes32,bytes32,uint40,address,address) returns (struct Policy.PolicyData memory)"}},"id":22383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9651:231:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":22384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9883:2:62","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"9651:234:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22353,"id":22385,"nodeType":"Return","src":"9638:247:62"}]},"documentation":{"id":22329,"nodeType":"StructuredDocumentation","src":"7539:1043:62","text":" @dev Creates a new Policy using a signed quote. The payer is the policy holder\n Requirements:\n - currency().allowance(onBehalfOf, _msgSender()) > 0\n - The quote has been signed by an address with the component role PRICER_ROLE\n Emits:\n - {PolicyPool.NewPolicy}\n - {NewSignedPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the payer\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param policyData A hash of the private details of the policy. The last 96 bits will be used as internalId\n @param quoteSignatureR The signature of the quote. R component (EIP-2098 signature)\n @param quoteSignatureVS The signature of the quote. VS component (EIP-2098 signature)\n @param quoteValidUntil The expiration of the quote\n @return Returns the id of the created policy"},"functionSelector":"65533024","id":22387,"implemented":true,"kind":"function","modifiers":[{"id":22350,"kind":"modifierInvocation","modifierName":{"id":22349,"name":"whenNotPaused","nameLocations":["8850:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"8850:13:62"},"nodeType":"ModifierInvocation","src":"8850:13:62"}],"name":"newPolicyPaidByHolder","nameLocation":"8594:21:62","nodeType":"FunctionDefinition","parameters":{"id":22348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22331,"mutability":"mutable","name":"payout","nameLocation":"8629:6:62","nodeType":"VariableDeclaration","scope":22387,"src":"8621:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22330,"name":"uint256","nodeType":"ElementaryTypeName","src":"8621:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22333,"mutability":"mutable","name":"premium","nameLocation":"8649:7:62","nodeType":"VariableDeclaration","scope":22387,"src":"8641:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22332,"name":"uint256","nodeType":"ElementaryTypeName","src":"8641:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22335,"mutability":"mutable","name":"lossProb","nameLocation":"8670:8:62","nodeType":"VariableDeclaration","scope":22387,"src":"8662:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22334,"name":"uint256","nodeType":"ElementaryTypeName","src":"8662:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22337,"mutability":"mutable","name":"expiration","nameLocation":"8691:10:62","nodeType":"VariableDeclaration","scope":22387,"src":"8684:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22336,"name":"uint40","nodeType":"ElementaryTypeName","src":"8684:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22339,"mutability":"mutable","name":"onBehalfOf","nameLocation":"8715:10:62","nodeType":"VariableDeclaration","scope":22387,"src":"8707:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22338,"name":"address","nodeType":"ElementaryTypeName","src":"8707:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22341,"mutability":"mutable","name":"policyData","nameLocation":"8739:10:62","nodeType":"VariableDeclaration","scope":22387,"src":"8731:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8731:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22343,"mutability":"mutable","name":"quoteSignatureR","nameLocation":"8763:15:62","nodeType":"VariableDeclaration","scope":22387,"src":"8755:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8755:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22345,"mutability":"mutable","name":"quoteSignatureVS","nameLocation":"8792:16:62","nodeType":"VariableDeclaration","scope":22387,"src":"8784:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8784:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22347,"mutability":"mutable","name":"quoteValidUntil","nameLocation":"8821:15:62","nodeType":"VariableDeclaration","scope":22387,"src":"8814:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22346,"name":"uint40","nodeType":"ElementaryTypeName","src":"8814:6:62","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"8615:225:62"},"returnParameters":{"id":22353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22387,"src":"8873:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22351,"name":"uint256","nodeType":"ElementaryTypeName","src":"8873:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8872:9:62"},"scope":22435,"src":"8585:1305:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22407,"nodeType":"Block","src":"10036:52:62","statements":[{"expression":{"arguments":[{"id":22403,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22390,"src":"10068:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":22404,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22392,"src":"10076:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22400,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"10042:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":22402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10054:13:62","memberName":"resolvePolicy","nodeType":"MemberAccess","referencedDeclaration":23753,"src":"10042:25:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256) external"}},"id":22405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10042:41:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22406,"nodeType":"ExpressionStatement","src":"10042:41:62"}]},"functionSelector":"7a702b3c","id":22408,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":22395,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22066,"src":"10007:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22396,"kind":"modifierInvocation","modifierName":{"id":22394,"name":"onlyComponentRole","nameLocations":["9989:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"9989:17:62"},"nodeType":"ModifierInvocation","src":"9989:32:62"},{"id":22398,"kind":"modifierInvocation","modifierName":{"id":22397,"name":"whenNotPaused","nameLocations":["10022:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"10022:13:62"},"nodeType":"ModifierInvocation","src":"10022:13:62"}],"name":"resolvePolicy","nameLocation":"9903:13:62","nodeType":"FunctionDefinition","parameters":{"id":22393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22390,"mutability":"mutable","name":"policy","nameLocation":"9949:6:62","nodeType":"VariableDeclaration","scope":22408,"src":"9922:33:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":22389,"nodeType":"UserDefinedTypeName","pathNode":{"id":22388,"name":"Policy.PolicyData","nameLocations":["9922:6:62","9929:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"9922:17:62"},"referencedDeclaration":14966,"src":"9922:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":22392,"mutability":"mutable","name":"payout","nameLocation":"9969:6:62","nodeType":"VariableDeclaration","scope":22408,"src":"9961:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9916:63:62"},"returnParameters":{"id":22399,"nodeType":"ParameterList","parameters":[],"src":"10036:0:62"},"scope":22435,"src":"9894:194:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22428,"nodeType":"Block","src":"10246:67:62","statements":[{"expression":{"arguments":[{"id":22424,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22411,"src":"10288:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":22425,"name":"customerWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22413,"src":"10296:11:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22421,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"10252:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":22423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10264:23:62","memberName":"resolvePolicyFullPayout","nodeType":"MemberAccess","referencedDeclaration":23762,"src":"10252:35:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,bool) external"}},"id":22426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10252:56:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22427,"nodeType":"ExpressionStatement","src":"10252:56:62"}]},"functionSelector":"ffa600e3","id":22429,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":22416,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22066,"src":"10217:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22417,"kind":"modifierInvocation","modifierName":{"id":22415,"name":"onlyComponentRole","nameLocations":["10199:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"10199:17:62"},"nodeType":"ModifierInvocation","src":"10199:32:62"},{"id":22419,"kind":"modifierInvocation","modifierName":{"id":22418,"name":"whenNotPaused","nameLocations":["10232:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"10232:13:62"},"nodeType":"ModifierInvocation","src":"10232:13:62"}],"name":"resolvePolicyFullPayout","nameLocation":"10101:23:62","nodeType":"FunctionDefinition","parameters":{"id":22414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22411,"mutability":"mutable","name":"policy","nameLocation":"10157:6:62","nodeType":"VariableDeclaration","scope":22429,"src":"10130:33:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":22410,"nodeType":"UserDefinedTypeName","pathNode":{"id":22409,"name":"Policy.PolicyData","nameLocations":["10130:6:62","10137:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"10130:17:62"},"referencedDeclaration":14966,"src":"10130:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":22413,"mutability":"mutable","name":"customerWon","nameLocation":"10174:11:62","nodeType":"VariableDeclaration","scope":22429,"src":"10169:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22412,"name":"bool","nodeType":"ElementaryTypeName","src":"10169:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10124:65:62"},"returnParameters":{"id":22420,"nodeType":"ParameterList","parameters":[],"src":"10246:0:62"},"scope":22435,"src":"10092:221:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":22430,"nodeType":"StructuredDocumentation","src":"10317:246:62","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":22434,"mutability":"mutable","name":"__gap","nameLocation":"10586:5:62","nodeType":"VariableDeclaration","scope":22435,"src":"10566:25:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":22431,"name":"uint256","nodeType":"ElementaryTypeName","src":"10566:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22433,"length":{"hexValue":"3530","id":22432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10574:2:62","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"10566:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":22436,"src":"687:9907:62","usedErrors":[17749,17751,17753,20229,20231,20233,20235,22078],"usedEvents":[417,424,429,790,1096,1101,17740,17747,22076]}],"src":"39:10556:62"},"id":62},"contracts/TimeScaled.sol":{"ast":{"absolutePath":"contracts/TimeScaled.sol","exportedSymbols":{"SafeCast":[10290],"TimeScaled":[22863],"WadRayMath":[23243]},"id":22864,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":22437,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"40:23:63"},{"absolutePath":"contracts/dependencies/WadRayMath.sol","file":"./dependencies/WadRayMath.sol","id":22439,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22864,"sourceUnit":23244,"src":"65:57:63","symbolAliases":[{"foreign":{"id":22438,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"73:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":22441,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22864,"sourceUnit":10291,"src":"123:73:63","symbolAliases":[{"foreign":{"id":22440,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10290,"src":"131:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"TimeScaled","contractDependencies":[],"contractKind":"library","documentation":{"id":22442,"nodeType":"StructuredDocumentation","src":"198:176:63","text":" @title TimeScaled\n @dev Library for packed amounts that increase continuoulsly with a scale factor\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":22863,"linearizedBaseContracts":[22863],"name":"TimeScaled","nameLocation":"383:10:63","nodeType":"ContractDefinition","nodes":[{"global":false,"id":22445,"libraryName":{"id":22443,"name":"WadRayMath","nameLocations":["404:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":23243,"src":"404:10:63"},"nodeType":"UsingForDirective","src":"398:29:63","typeName":{"id":22444,"name":"uint256","nodeType":"ElementaryTypeName","src":"419:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":22448,"libraryName":{"id":22446,"name":"SafeCast","nameLocations":["436:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":10290,"src":"436:8:63"},"nodeType":"UsingForDirective","src":"430:27:63","typeName":{"id":22447,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":22451,"mutability":"constant","name":"SECONDS_PER_YEAR","nameLocation":"486:16:63","nodeType":"VariableDeclaration","scope":22863,"src":"461:52:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22449,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"333635","id":22450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"505:8:63","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"365"},"visibility":"private"},{"constant":true,"id":22454,"mutability":"constant","name":"MIN_SCALE","nameLocation":"542:9:63","nodeType":"VariableDeclaration","scope":22863,"src":"517:41:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":22452,"name":"uint112","nodeType":"ElementaryTypeName","src":"517:7:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":{"hexValue":"31653137","id":22453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"554:4:63","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"1e17"},"visibility":"private"},{"constant":true,"id":22457,"mutability":"constant","name":"RAY112","nameLocation":"619:6:63","nodeType":"VariableDeclaration","scope":22863,"src":"594:38:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":22455,"name":"uint112","nodeType":"ElementaryTypeName","src":"594:7:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"value":{"hexValue":"31653237","id":22456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"628:4:63","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"},"value":"1e27"},"visibility":"private"},{"canonicalName":"TimeScaled.ScaledAmount","id":22464,"members":[{"constant":false,"id":22459,"mutability":"mutable","name":"scale","nameLocation":"671:5:63","nodeType":"VariableDeclaration","scope":22464,"src":"663:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":22458,"name":"uint112","nodeType":"ElementaryTypeName","src":"663:7:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":22461,"mutability":"mutable","name":"amount","nameLocation":"690:6:63","nodeType":"VariableDeclaration","scope":22464,"src":"682:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":22460,"name":"uint112","nodeType":"ElementaryTypeName","src":"682:7:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":22463,"mutability":"mutable","name":"lastUpdate","nameLocation":"709:10:63","nodeType":"VariableDeclaration","scope":22464,"src":"702:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":22462,"name":"uint32","nodeType":"ElementaryTypeName","src":"702:6:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"name":"ScaledAmount","nameLocation":"644:12:63","nodeType":"StructDefinition","scope":22863,"src":"637:87:63","visibility":"public"},{"body":{"id":22520,"nodeType":"Block","src":"815:319:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":22479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22472,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"825:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"838:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"825:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"expression":{"id":22476,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"859:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"865:9:63","memberName":"timestamp","nodeType":"MemberAccess","src":"859:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"852:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":22474,"name":"uint32","nodeType":"ElementaryTypeName","src":"852:6:63","typeDescriptions":{}}},"id":22478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"852:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"825:50:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22481,"nodeType":"IfStatement","src":"821:63:63","trueBody":{"functionReturnParameters":22471,"id":22480,"nodeType":"Return","src":"877:7:63"}},{"condition":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":22485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22482,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"893:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"906:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"893:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"916:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"893:24:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22518,"nodeType":"Block","src":"989:141:63","statements":[{"expression":{"id":22506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22497,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"997:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1010:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"997:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":22501,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"1027:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22502,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22469,"src":"1041:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22500,"name":"getScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22579,"src":"1018:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1055:9:63","memberName":"toUint112","nodeType":"MemberAccess","referencedDeclaration":9202,"src":"1018:46:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint112_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint112)"}},"id":22505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"997:69:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22507,"nodeType":"ExpressionStatement","src":"997:69:63"},{"expression":{"id":22516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22508,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"1074:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1087:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"1074:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":22513,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1107:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1113:9:63","memberName":"timestamp","nodeType":"MemberAccess","src":"1107:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":22511,"name":"uint32","nodeType":"ElementaryTypeName","src":"1100:6:63","typeDescriptions":{}}},"id":22515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1074:49:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":22517,"nodeType":"ExpressionStatement","src":"1074:49:63"}]},"id":22519,"nodeType":"IfStatement","src":"889:241:63","trueBody":{"id":22496,"nodeType":"Block","src":"919:64:63","statements":[{"expression":{"id":22494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22486,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22467,"src":"927:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"940:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"927:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":22491,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"960:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"966:9:63","memberName":"timestamp","nodeType":"MemberAccess","src":"960:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"953:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":22489,"name":"uint32","nodeType":"ElementaryTypeName","src":"953:6:63","typeDescriptions":{}}},"id":22493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"953:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"927:49:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":22495,"nodeType":"ExpressionStatement","src":"927:49:63"}]}}]},"id":22521,"implemented":true,"kind":"function","modifiers":[],"name":"updateScale","nameLocation":"737:11:63","nodeType":"FunctionDefinition","parameters":{"id":22470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22467,"mutability":"mutable","name":"scaledAmount","nameLocation":"770:12:63","nodeType":"VariableDeclaration","scope":22521,"src":"749:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22466,"nodeType":"UserDefinedTypeName","pathNode":{"id":22465,"name":"ScaledAmount","nameLocations":["749:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"749:12:63"},"referencedDeclaration":22464,"src":"749:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22469,"mutability":"mutable","name":"interestRate","nameLocation":"792:12:63","nodeType":"VariableDeclaration","scope":22521,"src":"784:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22468,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"748:57:63"},"returnParameters":{"id":22471,"nodeType":"ParameterList","parameters":[],"src":"815:0:63"},"scope":22863,"src":"728:406:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22578,"nodeType":"Block","src":"1245:351:63","statements":[{"assignments":[22532],"declarations":[{"constant":false,"id":22532,"mutability":"mutable","name":"now_","nameLocation":"1258:4:63","nodeType":"VariableDeclaration","scope":22578,"src":"1251:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":22531,"name":"uint32","nodeType":"ElementaryTypeName","src":"1251:6:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":22538,"initialValue":{"arguments":[{"expression":{"id":22535,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1272:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1278:9:63","memberName":"timestamp","nodeType":"MemberAccess","src":"1272:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":22533,"name":"uint32","nodeType":"ElementaryTypeName","src":"1265:6:63","typeDescriptions":{}}},"id":22537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"1251:37:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":22542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22539,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22524,"src":"1298:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"1298:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":22541,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22532,"src":"1325:4:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1298:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22547,"nodeType":"IfStatement","src":"1294:77:63","trueBody":{"id":22546,"nodeType":"Block","src":"1331:40:63","statements":[{"expression":{"expression":{"id":22543,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22524,"src":"1346:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1359:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"1346:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":22530,"id":22545,"nodeType":"Return","src":"1339:25:63"}]}},{"assignments":[22549],"declarations":[{"constant":false,"id":22549,"mutability":"mutable","name":"timeDifference","nameLocation":"1384:14:63","nodeType":"VariableDeclaration","scope":22578,"src":"1376:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22548,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22557,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":22555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22552,"name":"now_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22532,"src":"1409:4:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":22553,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22524,"src":"1416:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1429:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"1416:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1409:30:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":22551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1401:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22550,"name":"uint256","nodeType":"ElementaryTypeName","src":"1401:7:63","typeDescriptions":{}}},"id":22556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1401:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1376:64:63"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22564,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22526,"src":"1505:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1518:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"1505:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1505:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":22567,"name":"timeDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"1531:14:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:40:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1504:42:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":22570,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22451,"src":"1549:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1504:61:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1503:63:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":22573,"name":"WadRayMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23243,"src":"1569:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WadRayMath_$23243_$","typeString":"type(library WadRayMath)"}},"id":22574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1580:3:63","memberName":"RAY","nodeType":"MemberAccess","referencedDeclaration":23168,"src":"1569:14:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1503:80:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":22560,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22524,"src":"1467:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1480:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"1467:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":22559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1459:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22558,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:63","typeDescriptions":{}}},"id":22562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1459:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1487:6:63","memberName":"rayMul","nodeType":"MemberAccess","referencedDeclaration":23210,"src":"1459:34:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1459:132:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22530,"id":22577,"nodeType":"Return","src":"1446:145:63"}]},"id":22579,"implemented":true,"kind":"function","modifiers":[],"name":"getScale","nameLocation":"1147:8:63","nodeType":"FunctionDefinition","parameters":{"id":22527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22524,"mutability":"mutable","name":"scaledAmount","nameLocation":"1177:12:63","nodeType":"VariableDeclaration","scope":22579,"src":"1156:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22523,"nodeType":"UserDefinedTypeName","pathNode":{"id":22522,"name":"ScaledAmount","nameLocations":["1156:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"1156:12:63"},"referencedDeclaration":22464,"src":"1156:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22526,"mutability":"mutable","name":"interestRate","nameLocation":"1199:12:63","nodeType":"VariableDeclaration","scope":22579,"src":"1191:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1191:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:57:63"},"returnParameters":{"id":22530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22579,"src":"1236:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22528,"name":"uint256","nodeType":"ElementaryTypeName","src":"1236:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1235:9:63"},"scope":22863,"src":"1138:458:63","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22605,"nodeType":"Block","src":"1714:113:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":22598,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22582,"src":"1783:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22599,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22584,"src":"1797:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22597,"name":"getScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22579,"src":"1774:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":22591,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22582,"src":"1735:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"1735:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":22590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1727:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22589,"name":"uint256","nodeType":"ElementaryTypeName","src":"1727:7:63","typeDescriptions":{}}},"id":22593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:28:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1756:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"1727:37:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1767:6:63","memberName":"rayMul","nodeType":"MemberAccess","referencedDeclaration":23210,"src":"1727:46:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:84:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:8:63","memberName":"rayToWad","nodeType":"MemberAccess","referencedDeclaration":23232,"src":"1727:93:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:95:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22588,"id":22604,"nodeType":"Return","src":"1720:102:63"}]},"id":22606,"implemented":true,"kind":"function","modifiers":[],"name":"getScaledAmount","nameLocation":"1609:15:63","nodeType":"FunctionDefinition","parameters":{"id":22585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22582,"mutability":"mutable","name":"scaledAmount","nameLocation":"1646:12:63","nodeType":"VariableDeclaration","scope":22606,"src":"1625:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22581,"nodeType":"UserDefinedTypeName","pathNode":{"id":22580,"name":"ScaledAmount","nameLocations":["1625:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"1625:12:63"},"referencedDeclaration":22464,"src":"1625:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22584,"mutability":"mutable","name":"interestRate","nameLocation":"1668:12:63","nodeType":"VariableDeclaration","scope":22606,"src":"1660:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1660:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1624:57:63"},"returnParameters":{"id":22588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22606,"src":"1705:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22586,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1704:9:63"},"scope":22863,"src":"1600:227:63","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22634,"nodeType":"Block","src":"1889:122:63","statements":[{"expression":{"id":22616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22612,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22609,"src":"1895:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1908:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"1895:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22615,"name":"RAY112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22457,"src":"1916:6:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"1895:27:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22617,"nodeType":"ExpressionStatement","src":"1895:27:63"},{"expression":{"id":22622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22618,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22609,"src":"1928:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1941:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"1928:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":22621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1928:23:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22623,"nodeType":"ExpressionStatement","src":"1928:23:63"},{"expression":{"id":22632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22624,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22609,"src":"1957:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1970:10:63","memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":22463,"src":"1957:23:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":22629,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1990:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1996:9:63","memberName":"timestamp","nodeType":"MemberAccess","src":"1990:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1983:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":22627,"name":"uint32","nodeType":"ElementaryTypeName","src":"1983:6:63","typeDescriptions":{}}},"id":22631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1957:49:63","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":22633,"nodeType":"ExpressionStatement","src":"1957:49:63"}]},"id":22635,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1840:4:63","nodeType":"FunctionDefinition","parameters":{"id":22610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22609,"mutability":"mutable","name":"scaledAmount","nameLocation":"1866:12:63","nodeType":"VariableDeclaration","scope":22635,"src":"1845:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22608,"nodeType":"UserDefinedTypeName","pathNode":{"id":22607,"name":"ScaledAmount","nameLocations":["1845:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"1845:12:63"},"referencedDeclaration":22464,"src":"1845:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"src":"1844:35:63"},"returnParameters":{"id":22611,"nodeType":"ParameterList","parameters":[],"src":"1889:0:63"},"scope":22863,"src":"1831:180:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22658,"nodeType":"Block","src":"2120:83:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"expression":{"id":22651,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22638,"src":"2167:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2180:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"2167:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":22650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2159:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22649,"name":"uint256","nodeType":"ElementaryTypeName","src":"2159:7:63","typeDescriptions":{}}},"id":22653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22645,"name":"toScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22640,"src":"2133:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2141:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"2133:16:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2133:18:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2152:6:63","memberName":"rayDiv","nodeType":"MemberAccess","referencedDeclaration":23222,"src":"2133:25:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2133:54:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2188:8:63","memberName":"rayToWad","nodeType":"MemberAccess","referencedDeclaration":23232,"src":"2133:63:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2133:65:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22644,"id":22657,"nodeType":"Return","src":"2126:72:63"}]},"id":22659,"implemented":true,"kind":"function","modifiers":[],"name":"scaleAmount","nameLocation":"2024:11:63","nodeType":"FunctionDefinition","parameters":{"id":22641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22638,"mutability":"mutable","name":"scaledAmount","nameLocation":"2057:12:63","nodeType":"VariableDeclaration","scope":22659,"src":"2036:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22637,"nodeType":"UserDefinedTypeName","pathNode":{"id":22636,"name":"ScaledAmount","nameLocations":["2036:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2036:12:63"},"referencedDeclaration":22464,"src":"2036:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22640,"mutability":"mutable","name":"toScale","nameLocation":"2079:7:63","nodeType":"VariableDeclaration","scope":22659,"src":"2071:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22639,"name":"uint256","nodeType":"ElementaryTypeName","src":"2071:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2035:52:63"},"returnParameters":{"id":22644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22659,"src":"2111:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22642,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2110:9:63"},"scope":22863,"src":"2015:188:63","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22683,"nodeType":"Block","src":"2353:92:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":22676,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22662,"src":"2401:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22677,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22664,"src":"2415:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22675,"name":"getScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22579,"src":"2392:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2392:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22671,"name":"toScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22666,"src":"2366:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"2366:16:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:18:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:6:63","memberName":"rayDiv","nodeType":"MemberAccess","referencedDeclaration":23222,"src":"2366:25:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:63:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2430:8:63","memberName":"rayToWad","nodeType":"MemberAccess","referencedDeclaration":23232,"src":"2366:72:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:74:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22670,"id":22682,"nodeType":"Return","src":"2359:81:63"}]},"id":22684,"implemented":true,"kind":"function","modifiers":[],"name":"scaleAmountNow","nameLocation":"2216:14:63","nodeType":"FunctionDefinition","parameters":{"id":22667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22662,"mutability":"mutable","name":"scaledAmount","nameLocation":"2257:12:63","nodeType":"VariableDeclaration","scope":22684,"src":"2236:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22661,"nodeType":"UserDefinedTypeName","pathNode":{"id":22660,"name":"ScaledAmount","nameLocations":["2236:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2236:12:63"},"referencedDeclaration":22464,"src":"2236:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22664,"mutability":"mutable","name":"interestRate","nameLocation":"2283:12:63","nodeType":"VariableDeclaration","scope":22684,"src":"2275:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22663,"name":"uint256","nodeType":"ElementaryTypeName","src":"2275:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22666,"mutability":"mutable","name":"toScale","nameLocation":"2309:7:63","nodeType":"VariableDeclaration","scope":22684,"src":"2301:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22665,"name":"uint256","nodeType":"ElementaryTypeName","src":"2301:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2230:90:63"},"returnParameters":{"id":22670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22684,"src":"2344:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2343:9:63"},"scope":22863,"src":"2207:238:63","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22718,"nodeType":"Block","src":"2562:180:63","statements":[{"expression":{"arguments":[{"id":22697,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22687,"src":"2580:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22698,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22691,"src":"2594:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22696,"name":"updateScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22521,"src":"2568:11:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256)"}},"id":22699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2568:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22700,"nodeType":"ExpressionStatement","src":"2568:39:63"},{"assignments":[22702],"declarations":[{"constant":false,"id":22702,"mutability":"mutable","name":"scaledAdd","nameLocation":"2621:9:63","nodeType":"VariableDeclaration","scope":22718,"src":"2613:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22701,"name":"uint256","nodeType":"ElementaryTypeName","src":"2613:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22707,"initialValue":{"arguments":[{"id":22704,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22687,"src":"2645:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22705,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22689,"src":"2659:6:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22703,"name":"scaleAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22659,"src":"2633:11:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2633:33:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2613:53:63"},{"expression":{"id":22714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22708,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22687,"src":"2672:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2685:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"2672:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22711,"name":"scaledAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22702,"src":"2695:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2705:8:63","memberName":"toUint96","nodeType":"MemberAccess","referencedDeclaration":9252,"src":"2695:18:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint96_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint96)"}},"id":22713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2672:43:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22715,"nodeType":"ExpressionStatement","src":"2672:43:63"},{"expression":{"id":22716,"name":"scaledAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22702,"src":"2728:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22695,"id":22717,"nodeType":"Return","src":"2721:16:63"}]},"id":22719,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"2458:3:63","nodeType":"FunctionDefinition","parameters":{"id":22692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22687,"mutability":"mutable","name":"scaledAmount","nameLocation":"2483:12:63","nodeType":"VariableDeclaration","scope":22719,"src":"2462:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22686,"nodeType":"UserDefinedTypeName","pathNode":{"id":22685,"name":"ScaledAmount","nameLocations":["2462:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2462:12:63"},"referencedDeclaration":22464,"src":"2462:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22689,"mutability":"mutable","name":"amount","nameLocation":"2505:6:63","nodeType":"VariableDeclaration","scope":22719,"src":"2497:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22688,"name":"uint256","nodeType":"ElementaryTypeName","src":"2497:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22691,"mutability":"mutable","name":"interestRate","nameLocation":"2521:12:63","nodeType":"VariableDeclaration","scope":22719,"src":"2513:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22690,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2461:73:63"},"returnParameters":{"id":22695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22719,"src":"2553:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2553:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2552:9:63"},"scope":22863,"src":"2449:293:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22765,"nodeType":"Block","src":"2859:293:63","statements":[{"expression":{"arguments":[{"id":22732,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22722,"src":"2877:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22733,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22726,"src":"2891:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22731,"name":"updateScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22521,"src":"2865:11:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256)"}},"id":22734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2865:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22735,"nodeType":"ExpressionStatement","src":"2865:39:63"},{"assignments":[22737],"declarations":[{"constant":false,"id":22737,"mutability":"mutable","name":"scaledSub","nameLocation":"2918:9:63","nodeType":"VariableDeclaration","scope":22765,"src":"2910:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22736,"name":"uint256","nodeType":"ElementaryTypeName","src":"2910:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22742,"initialValue":{"arguments":[{"id":22739,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22722,"src":"2942:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22740,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22724,"src":"2956:6:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22738,"name":"scaleAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22659,"src":"2930:11:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2930:33:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2910:53:63"},{"expression":{"id":22749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22743,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22722,"src":"2969:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2982:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"2969:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22746,"name":"scaledSub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22737,"src":"2992:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3002:8:63","memberName":"toUint96","nodeType":"MemberAccess","referencedDeclaration":9252,"src":"2992:18:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint96_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint96)"}},"id":22748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2969:43:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22750,"nodeType":"ExpressionStatement","src":"2969:43:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":22754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22751,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22722,"src":"3022:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"3022:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3045:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3022:24:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22762,"nodeType":"IfStatement","src":"3018:108:63","trueBody":{"id":22761,"nodeType":"Block","src":"3048:78:63","statements":[{"expression":{"id":22759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22755,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22722,"src":"3092:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3105:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"3092:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22758,"name":"RAY112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22457,"src":"3113:6:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3092:27:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22760,"nodeType":"ExpressionStatement","src":"3092:27:63"}]}},{"expression":{"id":22763,"name":"scaledSub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22737,"src":"3138:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22730,"id":22764,"nodeType":"Return","src":"3131:16:63"}]},"id":22766,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"2755:3:63","nodeType":"FunctionDefinition","parameters":{"id":22727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22722,"mutability":"mutable","name":"scaledAmount","nameLocation":"2780:12:63","nodeType":"VariableDeclaration","scope":22766,"src":"2759:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22721,"nodeType":"UserDefinedTypeName","pathNode":{"id":22720,"name":"ScaledAmount","nameLocations":["2759:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"2759:12:63"},"referencedDeclaration":22464,"src":"2759:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22724,"mutability":"mutable","name":"amount","nameLocation":"2802:6:63","nodeType":"VariableDeclaration","scope":22766,"src":"2794:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22723,"name":"uint256","nodeType":"ElementaryTypeName","src":"2794:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22726,"mutability":"mutable","name":"interestRate","nameLocation":"2818:12:63","nodeType":"VariableDeclaration","scope":22766,"src":"2810:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22725,"name":"uint256","nodeType":"ElementaryTypeName","src":"2810:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2758:73:63"},"returnParameters":{"id":22730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22766,"src":"2850:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2850:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2849:9:63"},"scope":22863,"src":"2746:406:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22839,"nodeType":"Block","src":"3261:470:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":22779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22776,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3271:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3284:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"3271:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":22778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3294:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3271:24:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22791,"nodeType":"IfStatement","src":"3267:107:63","trueBody":{"id":22790,"nodeType":"Block","src":"3297:77:63","statements":[{"expression":{"arguments":[{"id":22781,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3309:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"arguments":[{"id":22784,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"3331:6:63","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":22783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3323:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22782,"name":"uint256","nodeType":"ElementaryTypeName","src":"3323:7:63","typeDescriptions":{}}},"id":22785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:15:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22786,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22773,"src":"3340:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22780,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22719,"src":"3305:3:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":22787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3305:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22788,"nodeType":"ExpressionStatement","src":"3305:48:63"},{"functionReturnParameters":22775,"id":22789,"nodeType":"Return","src":"3361:7:63"}]}},{"expression":{"arguments":[{"id":22793,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3391:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22794,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22773,"src":"3405:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22792,"name":"updateScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22521,"src":"3379:11:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256)"}},"id":22795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3379:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22796,"nodeType":"ExpressionStatement","src":"3379:39:63"},{"assignments":[22798],"declarations":[{"constant":false,"id":22798,"mutability":"mutable","name":"newScaledAmount","nameLocation":"3432:15:63","nodeType":"VariableDeclaration","scope":22839,"src":"3424:23:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22797,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22811,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":22809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":22804,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3481:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},{"id":22805,"name":"interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22773,"src":"3495:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22803,"name":"getScaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22606,"src":"3465:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":22806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3465:43:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3458:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":22801,"name":"int256","nodeType":"ElementaryTypeName","src":"3458:6:63","typeDescriptions":{}}},"id":22807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:51:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"3512:6:63","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3458:60:63","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":22800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3450:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22799,"name":"uint256","nodeType":"ElementaryTypeName","src":"3450:7:63","typeDescriptions":{}}},"id":22810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:69:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3424:95:63"},{"expression":{"id":22829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":22812,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3525:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3538:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"3525:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":22821,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3588:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3601:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"3588:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":22820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3580:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22819,"name":"uint256","nodeType":"ElementaryTypeName","src":"3580:7:63","typeDescriptions":{}}},"id":22823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:28:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3609:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"3580:37:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22815,"name":"newScaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22798,"src":"3546:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3562:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"3546:24:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3573:6:63","memberName":"rayDiv","nodeType":"MemberAccess","referencedDeclaration":23222,"src":"3546:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:74:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3621:9:63","memberName":"toUint112","nodeType":"MemberAccess","referencedDeclaration":9202,"src":"3546:84:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint112_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint112)"}},"id":22828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:86:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3525:107:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":22830,"nodeType":"ExpressionStatement","src":"3525:107:63"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":22835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22832,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22769,"src":"3646:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3659:5:63","memberName":"scale","nodeType":"MemberAccess","referencedDeclaration":22459,"src":"3646:18:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":22834,"name":"MIN_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22454,"src":"3668:9:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3646:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5363616c6520746f6f20736d616c6c2c2063616e206c65616420746f20726f756e64696e67206572726f7273","id":22836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3679:46:63","typeDescriptions":{"typeIdentifier":"t_stringliteral_d369f1e0591c8baf1c39294b2efa376640bb78056cd7ce3183f426fa44af6ddc","typeString":"literal_string \"Scale too small, can lead to rounding errors\""},"value":"Scale too small, can lead to rounding errors"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d369f1e0591c8baf1c39294b2efa376640bb78056cd7ce3183f426fa44af6ddc","typeString":"literal_string \"Scale too small, can lead to rounding errors\""}],"id":22831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3638:7:63","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:88:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22838,"nodeType":"ExpressionStatement","src":"3638:88:63"}]},"id":22840,"implemented":true,"kind":"function","modifiers":[],"name":"discreteChange","nameLocation":"3165:14:63","nodeType":"FunctionDefinition","parameters":{"id":22774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22769,"mutability":"mutable","name":"scaledAmount","nameLocation":"3201:12:63","nodeType":"VariableDeclaration","scope":22840,"src":"3180:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22768,"nodeType":"UserDefinedTypeName","pathNode":{"id":22767,"name":"ScaledAmount","nameLocations":["3180:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"3180:12:63"},"referencedDeclaration":22464,"src":"3180:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":22771,"mutability":"mutable","name":"amount","nameLocation":"3222:6:63","nodeType":"VariableDeclaration","scope":22840,"src":"3215:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":22770,"name":"int256","nodeType":"ElementaryTypeName","src":"3215:6:63","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":22773,"mutability":"mutable","name":"interestRate","nameLocation":"3238:12:63","nodeType":"VariableDeclaration","scope":22840,"src":"3230:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22772,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:72:63"},"returnParameters":{"id":22775,"nodeType":"ParameterList","parameters":[],"src":"3261:0:63"},"scope":22863,"src":"3156:575:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22861,"nodeType":"Block","src":"3820:86:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":22856,"name":"MIN_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22454,"src":"3880:9:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":22850,"name":"scaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22843,"src":"3841:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount storage pointer"}},"id":22851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3854:6:63","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"3841:19:63","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":22849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3833:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22848,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:63","typeDescriptions":{}}},"id":22852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3833:28:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3862:8:63","memberName":"wadToRay","nodeType":"MemberAccess","referencedDeclaration":23242,"src":"3833:37:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3833:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3873:6:63","memberName":"rayMul","nodeType":"MemberAccess","referencedDeclaration":23210,"src":"3833:46:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":22857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3833:57:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3891:8:63","memberName":"rayToWad","nodeType":"MemberAccess","referencedDeclaration":23232,"src":"3833:66:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":22859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3833:68:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22847,"id":22860,"nodeType":"Return","src":"3826:75:63"}]},"id":22862,"implemented":true,"kind":"function","modifiers":[],"name":"minValue","nameLocation":"3744:8:63","nodeType":"FunctionDefinition","parameters":{"id":22844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22843,"mutability":"mutable","name":"scaledAmount","nameLocation":"3774:12:63","nodeType":"VariableDeclaration","scope":22862,"src":"3753:33:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":22842,"nodeType":"UserDefinedTypeName","pathNode":{"id":22841,"name":"ScaledAmount","nameLocations":["3753:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"3753:12:63"},"referencedDeclaration":22464,"src":"3753:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"}],"src":"3752:35:63"},"returnParameters":{"id":22847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22862,"src":"3811:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22845,"name":"uint256","nodeType":"ElementaryTypeName","src":"3811:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3810:9:63"},"scope":22863,"src":"3735:171:63","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":22864,"src":"375:3533:63","usedErrors":[],"usedEvents":[]}],"src":"40:3869:63"},"id":63},"contracts/TrustfulRiskModule.sol":{"ast":{"absolutePath":"contracts/TrustfulRiskModule.sol","exportedSymbols":{"IERC721":[6594],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Policy":[15439],"RiskModule":[21466],"TrustfulRiskModule":[23156]},"id":23157,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":22865,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:64"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./interfaces/IPolicyPool.sol","id":22867,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23157,"sourceUnit":23807,"src":"64:57:64","symbolAliases":[{"foreign":{"id":22866,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./interfaces/IPremiumsAccount.sol","id":22869,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23157,"sourceUnit":23887,"src":"122:67:64","symbolAliases":[{"foreign":{"id":22868,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"130:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskModule.sol","file":"./RiskModule.sol","id":22871,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23157,"sourceUnit":21467,"src":"190:44:64","symbolAliases":[{"foreign":{"id":22870,"name":"RiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21466,"src":"198:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"./Policy.sol","id":22873,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23157,"sourceUnit":15440,"src":"235:36:64","symbolAliases":[{"foreign":{"id":22872,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"243:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"@openzeppelin/contracts/interfaces/IERC721.sol","id":22875,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23157,"sourceUnit":4337,"src":"272:71:64","symbolAliases":[{"foreign":{"id":22874,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"280:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22877,"name":"RiskModule","nameLocations":["608:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"608:10:64"},"id":22878,"nodeType":"InheritanceSpecifier","src":"608:10:64"}],"canonicalName":"TrustfulRiskModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":22876,"nodeType":"StructuredDocumentation","src":"345:230:64","text":" @title Trustful Risk Module\n @dev Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by\nauthorized users\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":23156,"linearizedBaseContracts":[23156,21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"TrustfulRiskModule","nameLocation":"586:18:64","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"fbb81279","id":22883,"mutability":"constant","name":"PRICER_ROLE","nameLocation":"647:11:64","nodeType":"VariableDeclaration","scope":23156,"src":"623:62:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"623:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5052494345525f524f4c45","id":22881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"671:13:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""},"value":"PRICER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""}],"id":22880,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"661:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"78fab260","id":22888,"mutability":"constant","name":"RESOLVER_ROLE","nameLocation":"713:13:64","nodeType":"VariableDeclaration","scope":23156,"src":"689:66:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"689:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245534f4c5645525f524f4c45","id":22886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"739:15:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""},"value":"RESOLVER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""}],"id":22885,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"729:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"729:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"af0e7e0c","id":22893,"mutability":"constant","name":"REPLACER_ROLE","nameLocation":"783:13:64","nodeType":"VariableDeclaration","scope":23156,"src":"759:66:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245504c414345525f524f4c45","id":22891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"809:15:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""},"value":"REPLACER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""}],"id":22890,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"799:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":22907,"nodeType":"Block","src":"1042:2:64","statements":[]},"documentation":{"id":22894,"nodeType":"StructuredDocumentation","src":"830:48:64","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":22908,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":22903,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22897,"src":"1011:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},{"id":22904,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22900,"src":"1024:16:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"id":22905,"kind":"baseConstructorSpecifier","modifierName":{"id":22902,"name":"RiskModule","nameLocations":["1000:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"1000:10:64"},"nodeType":"ModifierInvocation","src":"1000:41:64"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22897,"mutability":"mutable","name":"policyPool_","nameLocation":"952:11:64","nodeType":"VariableDeclaration","scope":22908,"src":"940:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":22896,"nodeType":"UserDefinedTypeName","pathNode":{"id":22895,"name":"IPolicyPool","nameLocations":["940:11:64"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"940:11:64"},"referencedDeclaration":23806,"src":"940:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":22900,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"982:16:64","nodeType":"VariableDeclaration","scope":22908,"src":"965:33:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":22899,"nodeType":"UserDefinedTypeName","pathNode":{"id":22898,"name":"IPremiumsAccount","nameLocations":["965:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"965:16:64"},"referencedDeclaration":23886,"src":"965:16:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"939:60:64"},"returnParameters":{"id":22906,"nodeType":"ParameterList","parameters":[],"src":"1042:0:64"},"scope":23156,"src":"928:116:64","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22938,"nodeType":"Block","src":"1855:115:64","statements":[{"expression":{"arguments":[{"id":22929,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22911,"src":"1879:5:64","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22930,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22913,"src":"1886:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22931,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22915,"src":"1898:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22932,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22917,"src":"1912:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22933,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22919,"src":"1920:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22934,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22921,"src":"1941:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22935,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22923,"src":"1957:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22928,"name":"__RiskModule_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20302,"src":"1861:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,uint256,uint256,uint256,uint256,uint256,address)"}},"id":22936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:104:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22937,"nodeType":"ExpressionStatement","src":"1861:104:64"}]},"documentation":{"id":22909,"nodeType":"StructuredDocumentation","src":"1048:584:64","text":" @dev Initializes the RiskModule\n @param name_ Name of the Risk Module\n @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n @param wallet_ Address of the RiskModule provider"},"functionSelector":"6f0dbe6f","id":22939,"implemented":true,"kind":"function","modifiers":[{"id":22926,"kind":"modifierInvocation","modifierName":{"id":22925,"name":"initializer","nameLocations":["1843:11:64"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"1843:11:64"},"nodeType":"ModifierInvocation","src":"1843:11:64"}],"name":"initialize","nameLocation":"1644:10:64","nodeType":"FunctionDefinition","parameters":{"id":22924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22911,"mutability":"mutable","name":"name_","nameLocation":"1674:5:64","nodeType":"VariableDeclaration","scope":22939,"src":"1660:19:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22910,"name":"string","nodeType":"ElementaryTypeName","src":"1660:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22913,"mutability":"mutable","name":"collRatio_","nameLocation":"1693:10:64","nodeType":"VariableDeclaration","scope":22939,"src":"1685:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22912,"name":"uint256","nodeType":"ElementaryTypeName","src":"1685:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22915,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"1717:12:64","nodeType":"VariableDeclaration","scope":22939,"src":"1709:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22914,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22917,"mutability":"mutable","name":"srRoc_","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":22939,"src":"1735:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22916,"name":"uint256","nodeType":"ElementaryTypeName","src":"1735:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22919,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"1763:19:64","nodeType":"VariableDeclaration","scope":22939,"src":"1755:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22918,"name":"uint256","nodeType":"ElementaryTypeName","src":"1755:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22921,"mutability":"mutable","name":"exposureLimit_","nameLocation":"1796:14:64","nodeType":"VariableDeclaration","scope":22939,"src":"1788:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22920,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22923,"mutability":"mutable","name":"wallet_","nameLocation":"1824:7:64","nodeType":"VariableDeclaration","scope":22939,"src":"1816:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22922,"name":"address","nodeType":"ElementaryTypeName","src":"1816:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1654:181:64"},"returnParameters":{"id":22927,"nodeType":"ParameterList","parameters":[],"src":"1855:0:64"},"scope":23156,"src":"1635:335:64","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22976,"nodeType":"Block","src":"2855:126:64","statements":[{"expression":{"expression":{"arguments":[{"id":22963,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22942,"src":"2879:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22964,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22944,"src":"2887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22965,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22946,"src":"2896:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22966,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22948,"src":"2906:10:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"id":22968,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22950,"src":"2928:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22969,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22944,"src":"2940:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22967,"name":"_getPayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23106,"src":"2918:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) view returns (address)"}},"id":22970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22971,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22950,"src":"2950:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22972,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22952,"src":"2962:10:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":22962,"name":"_newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21071,"src":"2868:10:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96) returns (struct Policy.PolicyData memory)"}},"id":22973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2868:105:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":22974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2974:2:64","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2868:108:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22961,"id":22975,"nodeType":"Return","src":"2861:115:64"}]},"documentation":{"id":22940,"nodeType":"StructuredDocumentation","src":"1974:650:64","text":" @dev Creates a new Policy\n Requirements:\n - The caller has been granted componentRole(PRICER_ROLE)\n Emits:\n - {PolicyPool.NewPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the policyHolder\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param internalId An id that's unique within this module and it will be used to identify the policy\n @return Returns the id of the created policy"},"functionSelector":"406f7f6f","id":22977,"implemented":true,"kind":"function","modifiers":[{"id":22955,"kind":"modifierInvocation","modifierName":{"id":22954,"name":"whenNotPaused","nameLocations":["2792:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"2792:13:64"},"nodeType":"ModifierInvocation","src":"2792:13:64"},{"arguments":[{"id":22957,"name":"PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22883,"src":"2824:11:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22958,"kind":"modifierInvocation","modifierName":{"id":22956,"name":"onlyComponentRole","nameLocations":["2806:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"2806:17:64"},"nodeType":"ModifierInvocation","src":"2806:30:64"}],"name":"newPolicy","nameLocation":"2636:9:64","nodeType":"FunctionDefinition","parameters":{"id":22953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22942,"mutability":"mutable","name":"payout","nameLocation":"2659:6:64","nodeType":"VariableDeclaration","scope":22977,"src":"2651:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22941,"name":"uint256","nodeType":"ElementaryTypeName","src":"2651:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22944,"mutability":"mutable","name":"premium","nameLocation":"2679:7:64","nodeType":"VariableDeclaration","scope":22977,"src":"2671:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22943,"name":"uint256","nodeType":"ElementaryTypeName","src":"2671:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22946,"mutability":"mutable","name":"lossProb","nameLocation":"2700:8:64","nodeType":"VariableDeclaration","scope":22977,"src":"2692:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22945,"name":"uint256","nodeType":"ElementaryTypeName","src":"2692:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22948,"mutability":"mutable","name":"expiration","nameLocation":"2721:10:64","nodeType":"VariableDeclaration","scope":22977,"src":"2714:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22947,"name":"uint40","nodeType":"ElementaryTypeName","src":"2714:6:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22950,"mutability":"mutable","name":"onBehalfOf","nameLocation":"2745:10:64","nodeType":"VariableDeclaration","scope":22977,"src":"2737:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22949,"name":"address","nodeType":"ElementaryTypeName","src":"2737:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22952,"mutability":"mutable","name":"internalId","nameLocation":"2768:10:64","nodeType":"VariableDeclaration","scope":22977,"src":"2761:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":22951,"name":"uint96","nodeType":"ElementaryTypeName","src":"2761:6:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2645:137:64"},"returnParameters":{"id":22961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22977,"src":"2846:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22959,"name":"uint256","nodeType":"ElementaryTypeName","src":"2846:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2845:9:64"},"scope":23156,"src":"2627:354:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":23014,"nodeType":"Block","src":"3981:123:64","statements":[{"expression":{"arguments":[{"id":23002,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22980,"src":"4005:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23003,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22982,"src":"4013:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23004,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22984,"src":"4022:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23005,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22986,"src":"4032:10:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"id":23007,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22988,"src":"4054:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23008,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22982,"src":"4066:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23006,"name":"_getPayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23106,"src":"4044:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) view returns (address)"}},"id":23009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23010,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22988,"src":"4076:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23011,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22990,"src":"4088:10:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":23001,"name":"_newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21071,"src":"3994:10:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96) returns (struct Policy.PolicyData memory)"}},"id":23012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:105:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"functionReturnParameters":23000,"id":23013,"nodeType":"Return","src":"3987:112:64"}]},"documentation":{"id":22978,"nodeType":"StructuredDocumentation","src":"2985:730:64","text":" @dev Creates a new Policy. Version that returns all the PolicyData struct, not just the id.\n Requirements:\n - The caller has been granted componentRole(PRICER_ROLE)\n Emits:\n - {PolicyPool.NewPolicy}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the policyHolder\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param onBehalfOf The policy holder\n @param internalId An id that's unique within this module and it will be used to identify the policy\n @return createdPolicy Returns the id of the created policy"},"functionSelector":"1d177dc4","id":23015,"implemented":true,"kind":"function","modifiers":[{"id":22993,"kind":"modifierInvocation","modifierName":{"id":22992,"name":"whenNotPaused","nameLocations":["3887:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"3887:13:64"},"nodeType":"ModifierInvocation","src":"3887:13:64"},{"arguments":[{"id":22995,"name":"PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22883,"src":"3919:11:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22996,"kind":"modifierInvocation","modifierName":{"id":22994,"name":"onlyComponentRole","nameLocations":["3901:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"3901:17:64"},"nodeType":"ModifierInvocation","src":"3901:30:64"}],"name":"newPolicyFull","nameLocation":"3727:13:64","nodeType":"FunctionDefinition","parameters":{"id":22991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22980,"mutability":"mutable","name":"payout","nameLocation":"3754:6:64","nodeType":"VariableDeclaration","scope":23015,"src":"3746:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22979,"name":"uint256","nodeType":"ElementaryTypeName","src":"3746:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22982,"mutability":"mutable","name":"premium","nameLocation":"3774:7:64","nodeType":"VariableDeclaration","scope":23015,"src":"3766:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22981,"name":"uint256","nodeType":"ElementaryTypeName","src":"3766:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22984,"mutability":"mutable","name":"lossProb","nameLocation":"3795:8:64","nodeType":"VariableDeclaration","scope":23015,"src":"3787:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22983,"name":"uint256","nodeType":"ElementaryTypeName","src":"3787:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22986,"mutability":"mutable","name":"expiration","nameLocation":"3816:10:64","nodeType":"VariableDeclaration","scope":23015,"src":"3809:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":22985,"name":"uint40","nodeType":"ElementaryTypeName","src":"3809:6:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":22988,"mutability":"mutable","name":"onBehalfOf","nameLocation":"3840:10:64","nodeType":"VariableDeclaration","scope":23015,"src":"3832:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22987,"name":"address","nodeType":"ElementaryTypeName","src":"3832:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22990,"mutability":"mutable","name":"internalId","nameLocation":"3863:10:64","nodeType":"VariableDeclaration","scope":23015,"src":"3856:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":22989,"name":"uint96","nodeType":"ElementaryTypeName","src":"3856:6:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3740:137:64"},"returnParameters":{"id":23000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22999,"mutability":"mutable","name":"createdPolicy","nameLocation":"3966:13:64","nodeType":"VariableDeclaration","scope":23015,"src":"3941:38:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":22998,"nodeType":"UserDefinedTypeName","pathNode":{"id":22997,"name":"Policy.PolicyData","nameLocations":["3941:6:64","3948:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3941:17:64"},"referencedDeclaration":14966,"src":"3941:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"3940:40:64"},"scope":23156,"src":"3718:386:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":23068,"nodeType":"Block","src":"5032:295:64","statements":[{"assignments":[23040],"declarations":[{"constant":false,"id":23040,"mutability":"mutable","name":"onBehalfOf","nameLocation":"5046:10:64","nodeType":"VariableDeclaration","scope":23068,"src":"5038:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23039,"name":"address","nodeType":"ElementaryTypeName","src":"5038:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23051,"initialValue":{"arguments":[{"expression":{"id":23048,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23019,"src":"5097:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":23049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5107:2:64","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"5097:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":23044,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"5075:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":23043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5067:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23042,"name":"address","nodeType":"ElementaryTypeName","src":"5067:7:64","typeDescriptions":{}}},"id":23045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5067:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23041,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"5059:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6594_$","typeString":"type(contract IERC721)"}},"id":23046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5059:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6594","typeString":"contract IERC721"}},"id":23047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5089:7:64","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6527,"src":"5059:37:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":23050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5059:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5038:72:64"},{"expression":{"expression":{"arguments":[{"id":23053,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23019,"src":"5153:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":23054,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23021,"src":"5172:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23055,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23023,"src":"5188:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23056,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23025,"src":"5205:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23057,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23027,"src":"5223:10:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"arguments":[{"id":23059,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23040,"src":"5253:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23060,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23023,"src":"5265:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23058,"name":"_getPayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23106,"src":"5243:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) view returns (address)"}},"id":23061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5243:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23062,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23029,"src":"5283:10:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[],"expression":{"argumentTypes":[],"id":23063,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20887,"src":"5303:6:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function () view returns (struct IRiskModule.Params memory)"}},"id":23064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5303:8:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":23052,"name":"_replacePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"5129:14:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData calldata,uint256,uint256,uint256,uint40,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":23065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5129:190:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":23066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5320:2:64","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"5129:193:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23038,"id":23067,"nodeType":"Return","src":"5116:206:64"}]},"documentation":{"id":23016,"nodeType":"StructuredDocumentation","src":"4108:669:64","text":" @dev Replace a policy with a new one, reusing the premium and the capital locked\n Requirements:\n - The caller has been granted componentRole(PRICER_ROLE)\n Emits:\n - {PolicyPool.PolicyReplaced}\n @param payout The exposure (maximum payout) of the policy\n @param premium The premium that will be paid by the policyHolder\n @param lossProb The probability of having to pay the maximum payout (wad)\n @param expiration The expiration of the policy (timestamp)\n @param internalId An id that's unique within this module and it will be used to identify the policy\n @return Returns the id of the created policy"},"functionSelector":"0bc872d9","id":23069,"implemented":true,"kind":"function","modifiers":[{"id":23032,"kind":"modifierInvocation","modifierName":{"id":23031,"name":"whenNotPaused","nameLocations":["4967:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"4967:13:64"},"nodeType":"ModifierInvocation","src":"4967:13:64"},{"arguments":[{"id":23034,"name":"REPLACER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22893,"src":"4999:13:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":23035,"kind":"modifierInvocation","modifierName":{"id":23033,"name":"onlyComponentRole","nameLocations":["4981:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"4981:17:64"},"nodeType":"ModifierInvocation","src":"4981:32:64"}],"name":"replacePolicy","nameLocation":"4789:13:64","nodeType":"FunctionDefinition","parameters":{"id":23030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23019,"mutability":"mutable","name":"oldPolicy","nameLocation":"4835:9:64","nodeType":"VariableDeclaration","scope":23069,"src":"4808:36:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23018,"nodeType":"UserDefinedTypeName","pathNode":{"id":23017,"name":"Policy.PolicyData","nameLocations":["4808:6:64","4815:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4808:17:64"},"referencedDeclaration":14966,"src":"4808:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23021,"mutability":"mutable","name":"payout","nameLocation":"4858:6:64","nodeType":"VariableDeclaration","scope":23069,"src":"4850:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23020,"name":"uint256","nodeType":"ElementaryTypeName","src":"4850:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23023,"mutability":"mutable","name":"premium","nameLocation":"4878:7:64","nodeType":"VariableDeclaration","scope":23069,"src":"4870:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23022,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23025,"mutability":"mutable","name":"lossProb","nameLocation":"4899:8:64","nodeType":"VariableDeclaration","scope":23069,"src":"4891:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23024,"name":"uint256","nodeType":"ElementaryTypeName","src":"4891:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23027,"mutability":"mutable","name":"expiration","nameLocation":"4920:10:64","nodeType":"VariableDeclaration","scope":23069,"src":"4913:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":23026,"name":"uint40","nodeType":"ElementaryTypeName","src":"4913:6:64","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":23029,"mutability":"mutable","name":"internalId","nameLocation":"4943:10:64","nodeType":"VariableDeclaration","scope":23069,"src":"4936:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":23028,"name":"uint96","nodeType":"ElementaryTypeName","src":"4936:6:64","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"4802:155:64"},"returnParameters":{"id":23038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23069,"src":"5023:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23036,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5022:9:64"},"scope":23156,"src":"4780:547:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":23105,"nodeType":"Block","src":"5425:835:64","statements":[{"expression":{"id":23080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23078,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23076,"src":"5431:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23079,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"5439:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5431:18:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23081,"nodeType":"ExpressionStatement","src":"5431:18:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23082,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23076,"src":"5459:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23083,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"5468:10:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5468:12:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5459:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23090,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23076,"src":"5517:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":23091,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"5524:10:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5524:12:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23086,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"5484:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":23087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5496:8:64","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":23700,"src":"5484:20:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$6066_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":23088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5484:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":23089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5507:9:64","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"5484:32:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5484:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23094,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23073,"src":"5540:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5484:63:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5459:88:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23102,"nodeType":"IfStatement","src":"5455:782:64","trueBody":{"documentation":" The standard is the payer should be the _msgSender() but usually, in this type of module,\n the sender is an operative account managed by software, where the onBehalfOf is a more\n secure account (hardware wallet) that does the cash movements.\n This non standard behaviour allows for a more secure setup, where the sender never manages\n cash.\n We leverage the currency's allowance mechanism to allow the sender access to the payer's\n funds.\n Note that this allowance won't be spent, so it can be set as the maximum amount of a single\n premium even for multiple policies.","expression":{"id":23100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23097,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23076,"src":"6217:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":23098,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6225:10:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:12:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6217:20:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23101,"nodeType":"ExpressionStatement","src":"6217:20:64"}},{"expression":{"id":23103,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23076,"src":"6250:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":23077,"id":23104,"nodeType":"Return","src":"6243:12:64"}]},"id":23106,"implemented":true,"kind":"function","modifiers":[],"name":"_getPayer","nameLocation":"5340:9:64","nodeType":"FunctionDefinition","parameters":{"id":23074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23071,"mutability":"mutable","name":"onBehalfOf","nameLocation":"5358:10:64","nodeType":"VariableDeclaration","scope":23106,"src":"5350:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23070,"name":"address","nodeType":"ElementaryTypeName","src":"5350:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23073,"mutability":"mutable","name":"premium","nameLocation":"5378:7:64","nodeType":"VariableDeclaration","scope":23106,"src":"5370:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23072,"name":"uint256","nodeType":"ElementaryTypeName","src":"5370:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5349:37:64"},"returnParameters":{"id":23077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23076,"mutability":"mutable","name":"payer","nameLocation":"5418:5:64","nodeType":"VariableDeclaration","scope":23106,"src":"5410:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23075,"name":"address","nodeType":"ElementaryTypeName","src":"5410:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5409:15:64"},"scope":23156,"src":"5331:929:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":23127,"nodeType":"Block","src":"6849:52:64","statements":[{"expression":{"arguments":[{"id":23123,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23110,"src":"6881:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":23124,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23112,"src":"6889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23120,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"6855:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":23122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6867:13:64","memberName":"resolvePolicy","nodeType":"MemberAccess","referencedDeclaration":23753,"src":"6855:25:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256) external"}},"id":23125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6855:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23126,"nodeType":"ExpressionStatement","src":"6855:41:64"}]},"documentation":{"id":23107,"nodeType":"StructuredDocumentation","src":"6264:440:64","text":" @dev Resolves a policy, if payout > 0, it pays to the policy holder.\n Requirements:\n - The caller has been granted componentRole(RESOLVER_ROLE)\n - payout <= policy.payout\n - block.timestamp >= policy.expiration\n Emits:\n - {PolicyPool.PolicyResolved}\n @param policy The policy previously created (from {NewPolicy} event)\n @param payout The payout to transfer to the policy holder"},"functionSelector":"7a702b3c","id":23128,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23115,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22888,"src":"6820:13:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":23116,"kind":"modifierInvocation","modifierName":{"id":23114,"name":"onlyComponentRole","nameLocations":["6802:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"6802:17:64"},"nodeType":"ModifierInvocation","src":"6802:32:64"},{"id":23118,"kind":"modifierInvocation","modifierName":{"id":23117,"name":"whenNotPaused","nameLocations":["6835:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"6835:13:64"},"nodeType":"ModifierInvocation","src":"6835:13:64"}],"name":"resolvePolicy","nameLocation":"6716:13:64","nodeType":"FunctionDefinition","parameters":{"id":23113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23110,"mutability":"mutable","name":"policy","nameLocation":"6762:6:64","nodeType":"VariableDeclaration","scope":23128,"src":"6735:33:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23109,"nodeType":"UserDefinedTypeName","pathNode":{"id":23108,"name":"Policy.PolicyData","nameLocations":["6735:6:64","6742:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"6735:17:64"},"referencedDeclaration":14966,"src":"6735:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23112,"mutability":"mutable","name":"payout","nameLocation":"6782:6:64","nodeType":"VariableDeclaration","scope":23128,"src":"6774:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6729:63:64"},"returnParameters":{"id":23119,"nodeType":"ParameterList","parameters":[],"src":"6849:0:64"},"scope":23156,"src":"6707:194:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":23149,"nodeType":"Block","src":"7584:67:64","statements":[{"expression":{"arguments":[{"id":23145,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"7626:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":23146,"name":"customerWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"7634:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23142,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"7590:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":23144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7602:23:64","memberName":"resolvePolicyFullPayout","nodeType":"MemberAccess","referencedDeclaration":23762,"src":"7590:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_bool_$returns$__$","typeString":"function (struct Policy.PolicyData memory,bool) external"}},"id":23147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7590:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23148,"nodeType":"ExpressionStatement","src":"7590:56:64"}]},"documentation":{"id":23129,"nodeType":"StructuredDocumentation","src":"6905:522:64","text":" @dev Resolves a policy with full payout (policy.payout) if customerWon == true\n Requirements:\n - The caller has been granted componentRole(RESOLVER_ROLE)\n - block.timestamp >= policy.expiration\n Emits:\n - {PolicyPool.PolicyResolved}\n @param policy The policy previously created (from {NewPolicy} event)\n @param customerWon If true, policy.payout is transferred to the policy holder. If false, the policy is resolved\n without payout and can't be longer claimed."},"functionSelector":"ffa600e3","id":23150,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23137,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22888,"src":"7555:13:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":23138,"kind":"modifierInvocation","modifierName":{"id":23136,"name":"onlyComponentRole","nameLocations":["7537:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"7537:17:64"},"nodeType":"ModifierInvocation","src":"7537:32:64"},{"id":23140,"kind":"modifierInvocation","modifierName":{"id":23139,"name":"whenNotPaused","nameLocations":["7570:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"7570:13:64"},"nodeType":"ModifierInvocation","src":"7570:13:64"}],"name":"resolvePolicyFullPayout","nameLocation":"7439:23:64","nodeType":"FunctionDefinition","parameters":{"id":23135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23132,"mutability":"mutable","name":"policy","nameLocation":"7495:6:64","nodeType":"VariableDeclaration","scope":23150,"src":"7468:33:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23131,"nodeType":"UserDefinedTypeName","pathNode":{"id":23130,"name":"Policy.PolicyData","nameLocations":["7468:6:64","7475:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"7468:17:64"},"referencedDeclaration":14966,"src":"7468:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23134,"mutability":"mutable","name":"customerWon","nameLocation":"7512:11:64","nodeType":"VariableDeclaration","scope":23150,"src":"7507:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23133,"name":"bool","nodeType":"ElementaryTypeName","src":"7507:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7462:65:64"},"returnParameters":{"id":23141,"nodeType":"ParameterList","parameters":[],"src":"7584:0:64"},"scope":23156,"src":"7430:221:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":23151,"nodeType":"StructuredDocumentation","src":"7655:246:64","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":23155,"mutability":"mutable","name":"__gap","nameLocation":"7924:5:64","nodeType":"VariableDeclaration","scope":23156,"src":"7904:25:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":23152,"name":"uint256","nodeType":"ElementaryTypeName","src":"7904:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23154,"length":{"hexValue":"3530","id":23153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7912:2:64","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"7904:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":23157,"src":"577:7355:64","usedErrors":[17749,17751,17753,20229,20231,20233,20235],"usedEvents":[417,424,429,790,1096,1101,17740,17747]}],"src":"39:7894:64"},"id":64},"contracts/dependencies/WadRayMath.sol":{"ast":{"absolutePath":"contracts/dependencies/WadRayMath.sol","exportedSymbols":{"WadRayMath":[23243]},"id":23244,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":23158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:65"},{"abstract":false,"baseContracts":[],"canonicalName":"WadRayMath","contractDependencies":[],"contractKind":"library","documentation":{"id":23159,"nodeType":"StructuredDocumentation","src":"62:377:65","text":" @title WadRayMath library\n @author Aave\n @notice Provides functions to perform calculations with Wad and Ray units\n @dev Provides mul and div function for wads (decimal numbers with 18 digits of precision) and rays (decimal numbers\n with 27 digits of precision)\n @dev Operations are rounded. If a value is >=.5, will be rounded up, otherwise rounded down.*"},"fullyImplemented":true,"id":23243,"linearizedBaseContracts":[23243],"name":"WadRayMath","nameLocation":"448:10:65","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":23162,"mutability":"constant","name":"WAD","nameLocation":"611:3:65","nodeType":"VariableDeclaration","scope":23243,"src":"585:36:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23160,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":23161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"617:4:65","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"constant":true,"id":23165,"mutability":"constant","name":"HALF_WAD","nameLocation":"651:8:65","nodeType":"VariableDeclaration","scope":23243,"src":"625:43:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23163,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e35653138","id":23164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:6:65","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5e18"},"visibility":"internal"},{"constant":true,"id":23168,"mutability":"constant","name":"RAY","nameLocation":"699:3:65","nodeType":"VariableDeclaration","scope":23243,"src":"673:36:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23166,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653237","id":23167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"705:4:65","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000000"},"value":"1e27"},"visibility":"internal"},{"constant":true,"id":23171,"mutability":"constant","name":"HALF_RAY","nameLocation":"739:8:65","nodeType":"VariableDeclaration","scope":23243,"src":"713:43:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23169,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e35653237","id":23170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"750:6:65","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000000000000_by_1","typeString":"int_const 500000000000000000000000000"},"value":"0.5e27"},"visibility":"internal"},{"constant":true,"id":23174,"mutability":"constant","name":"WAD_RAY_RATIO","nameLocation":"787:13:65","nodeType":"VariableDeclaration","scope":23243,"src":"761:45:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23172,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"316539","id":23173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:3:65","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"visibility":"internal"},{"body":{"id":23185,"nodeType":"Block","src":"1149:247:65","statements":[{"AST":{"nativeSrc":"1230:162:65","nodeType":"YulBlock","src":"1230:162:65","statements":[{"body":{"nativeSrc":"1309:30:65","nodeType":"YulBlock","src":"1309:30:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1326:1:65","nodeType":"YulLiteral","src":"1326:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1329:1:65","nodeType":"YulLiteral","src":"1329:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1319:6:65","nodeType":"YulIdentifier","src":"1319:6:65"},"nativeSrc":"1319:12:65","nodeType":"YulFunctionCall","src":"1319:12:65"},"nativeSrc":"1319:12:65","nodeType":"YulExpressionStatement","src":"1319:12:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"1258:1:65","nodeType":"YulIdentifier","src":"1258:1:65"}],"functionName":{"name":"iszero","nativeSrc":"1251:6:65","nodeType":"YulIdentifier","src":"1251:6:65"},"nativeSrc":"1251:9:65","nodeType":"YulFunctionCall","src":"1251:9:65"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"1272:1:65","nodeType":"YulIdentifier","src":"1272:1:65"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1287:1:65","nodeType":"YulLiteral","src":"1287:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1283:3:65","nodeType":"YulIdentifier","src":"1283:3:65"},"nativeSrc":"1283:6:65","nodeType":"YulFunctionCall","src":"1283:6:65"},{"name":"HALF_WAD","nativeSrc":"1291:8:65","nodeType":"YulIdentifier","src":"1291:8:65"}],"functionName":{"name":"sub","nativeSrc":"1279:3:65","nodeType":"YulIdentifier","src":"1279:3:65"},"nativeSrc":"1279:21:65","nodeType":"YulFunctionCall","src":"1279:21:65"},{"name":"b","nativeSrc":"1302:1:65","nodeType":"YulIdentifier","src":"1302:1:65"}],"functionName":{"name":"div","nativeSrc":"1275:3:65","nodeType":"YulIdentifier","src":"1275:3:65"},"nativeSrc":"1275:29:65","nodeType":"YulFunctionCall","src":"1275:29:65"}],"functionName":{"name":"gt","nativeSrc":"1269:2:65","nodeType":"YulIdentifier","src":"1269:2:65"},"nativeSrc":"1269:36:65","nodeType":"YulFunctionCall","src":"1269:36:65"}],"functionName":{"name":"iszero","nativeSrc":"1262:6:65","nodeType":"YulIdentifier","src":"1262:6:65"},"nativeSrc":"1262:44:65","nodeType":"YulFunctionCall","src":"1262:44:65"}],"functionName":{"name":"or","nativeSrc":"1248:2:65","nodeType":"YulIdentifier","src":"1248:2:65"},"nativeSrc":"1248:59:65","nodeType":"YulFunctionCall","src":"1248:59:65"}],"functionName":{"name":"iszero","nativeSrc":"1241:6:65","nodeType":"YulIdentifier","src":"1241:6:65"},"nativeSrc":"1241:67:65","nodeType":"YulFunctionCall","src":"1241:67:65"},"nativeSrc":"1238:101:65","nodeType":"YulIf","src":"1238:101:65"},{"nativeSrc":"1347:39:65","nodeType":"YulAssignment","src":"1347:39:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"1364:1:65","nodeType":"YulIdentifier","src":"1364:1:65"},{"name":"b","nativeSrc":"1367:1:65","nodeType":"YulIdentifier","src":"1367:1:65"}],"functionName":{"name":"mul","nativeSrc":"1360:3:65","nodeType":"YulIdentifier","src":"1360:3:65"},"nativeSrc":"1360:9:65","nodeType":"YulFunctionCall","src":"1360:9:65"},{"name":"HALF_WAD","nativeSrc":"1371:8:65","nodeType":"YulIdentifier","src":"1371:8:65"}],"functionName":{"name":"add","nativeSrc":"1356:3:65","nodeType":"YulIdentifier","src":"1356:3:65"},"nativeSrc":"1356:24:65","nodeType":"YulFunctionCall","src":"1356:24:65"},{"name":"WAD","nativeSrc":"1382:3:65","nodeType":"YulIdentifier","src":"1382:3:65"}],"functionName":{"name":"div","nativeSrc":"1352:3:65","nodeType":"YulIdentifier","src":"1352:3:65"},"nativeSrc":"1352:34:65","nodeType":"YulFunctionCall","src":"1352:34:65"},"variableNames":[{"name":"c","nativeSrc":"1347:1:65","nodeType":"YulIdentifier","src":"1347:1:65"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":23165,"isOffset":false,"isSlot":false,"src":"1291:8:65","valueSize":1},{"declaration":23165,"isOffset":false,"isSlot":false,"src":"1371:8:65","valueSize":1},{"declaration":23162,"isOffset":false,"isSlot":false,"src":"1382:3:65","valueSize":1},{"declaration":23177,"isOffset":false,"isSlot":false,"src":"1272:1:65","valueSize":1},{"declaration":23177,"isOffset":false,"isSlot":false,"src":"1364:1:65","valueSize":1},{"declaration":23179,"isOffset":false,"isSlot":false,"src":"1258:1:65","valueSize":1},{"declaration":23179,"isOffset":false,"isSlot":false,"src":"1302:1:65","valueSize":1},{"declaration":23179,"isOffset":false,"isSlot":false,"src":"1367:1:65","valueSize":1},{"declaration":23182,"isOffset":false,"isSlot":false,"src":"1347:1:65","valueSize":1}],"id":23184,"nodeType":"InlineAssembly","src":"1221:171:65"}]},"documentation":{"id":23175,"nodeType":"StructuredDocumentation","src":"811:263:65","text":" @dev Multiplies two wad, rounding half up to the nearest wad\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Wad\n @param b Wad\n @return c = a*b, in wad*"},"id":23186,"implemented":true,"kind":"function","modifiers":[],"name":"wadMul","nameLocation":"1086:6:65","nodeType":"FunctionDefinition","parameters":{"id":23180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23177,"mutability":"mutable","name":"a","nameLocation":"1101:1:65","nodeType":"VariableDeclaration","scope":23186,"src":"1093:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23179,"mutability":"mutable","name":"b","nameLocation":"1112:1:65","nodeType":"VariableDeclaration","scope":23186,"src":"1104:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:22:65"},"returnParameters":{"id":23183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23182,"mutability":"mutable","name":"c","nameLocation":"1146:1:65","nodeType":"VariableDeclaration","scope":23186,"src":"1138:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1138:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1137:11:65"},"scope":23243,"src":"1077:319:65","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23197,"nodeType":"Block","src":"1735:250:65","statements":[{"AST":{"nativeSrc":"1815:166:65","nodeType":"YulBlock","src":"1815:166:65","statements":[{"body":{"nativeSrc":"1897:30:65","nodeType":"YulBlock","src":"1897:30:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1914:1:65","nodeType":"YulLiteral","src":"1914:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1917:1:65","nodeType":"YulLiteral","src":"1917:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1907:6:65","nodeType":"YulIdentifier","src":"1907:6:65"},"nativeSrc":"1907:12:65","nodeType":"YulFunctionCall","src":"1907:12:65"},"nativeSrc":"1907:12:65","nodeType":"YulExpressionStatement","src":"1907:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"1836:1:65","nodeType":"YulIdentifier","src":"1836:1:65"}],"functionName":{"name":"iszero","nativeSrc":"1829:6:65","nodeType":"YulIdentifier","src":"1829:6:65"},"nativeSrc":"1829:9:65","nodeType":"YulFunctionCall","src":"1829:9:65"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"1857:1:65","nodeType":"YulIdentifier","src":"1857:1:65"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1872:1:65","nodeType":"YulLiteral","src":"1872:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1868:3:65","nodeType":"YulIdentifier","src":"1868:3:65"},"nativeSrc":"1868:6:65","nodeType":"YulFunctionCall","src":"1868:6:65"},{"arguments":[{"name":"b","nativeSrc":"1880:1:65","nodeType":"YulIdentifier","src":"1880:1:65"},{"kind":"number","nativeSrc":"1883:1:65","nodeType":"YulLiteral","src":"1883:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"1876:3:65","nodeType":"YulIdentifier","src":"1876:3:65"},"nativeSrc":"1876:9:65","nodeType":"YulFunctionCall","src":"1876:9:65"}],"functionName":{"name":"sub","nativeSrc":"1864:3:65","nodeType":"YulIdentifier","src":"1864:3:65"},"nativeSrc":"1864:22:65","nodeType":"YulFunctionCall","src":"1864:22:65"},{"name":"WAD","nativeSrc":"1888:3:65","nodeType":"YulIdentifier","src":"1888:3:65"}],"functionName":{"name":"div","nativeSrc":"1860:3:65","nodeType":"YulIdentifier","src":"1860:3:65"},"nativeSrc":"1860:32:65","nodeType":"YulFunctionCall","src":"1860:32:65"}],"functionName":{"name":"gt","nativeSrc":"1854:2:65","nodeType":"YulIdentifier","src":"1854:2:65"},"nativeSrc":"1854:39:65","nodeType":"YulFunctionCall","src":"1854:39:65"}],"functionName":{"name":"iszero","nativeSrc":"1847:6:65","nodeType":"YulIdentifier","src":"1847:6:65"},"nativeSrc":"1847:47:65","nodeType":"YulFunctionCall","src":"1847:47:65"}],"functionName":{"name":"iszero","nativeSrc":"1840:6:65","nodeType":"YulIdentifier","src":"1840:6:65"},"nativeSrc":"1840:55:65","nodeType":"YulFunctionCall","src":"1840:55:65"}],"functionName":{"name":"or","nativeSrc":"1826:2:65","nodeType":"YulIdentifier","src":"1826:2:65"},"nativeSrc":"1826:70:65","nodeType":"YulFunctionCall","src":"1826:70:65"},"nativeSrc":"1823:104:65","nodeType":"YulIf","src":"1823:104:65"},{"nativeSrc":"1935:40:65","nodeType":"YulAssignment","src":"1935:40:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"1952:1:65","nodeType":"YulIdentifier","src":"1952:1:65"},{"name":"WAD","nativeSrc":"1955:3:65","nodeType":"YulIdentifier","src":"1955:3:65"}],"functionName":{"name":"mul","nativeSrc":"1948:3:65","nodeType":"YulIdentifier","src":"1948:3:65"},"nativeSrc":"1948:11:65","nodeType":"YulFunctionCall","src":"1948:11:65"},{"arguments":[{"name":"b","nativeSrc":"1965:1:65","nodeType":"YulIdentifier","src":"1965:1:65"},{"kind":"number","nativeSrc":"1968:1:65","nodeType":"YulLiteral","src":"1968:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"1961:3:65","nodeType":"YulIdentifier","src":"1961:3:65"},"nativeSrc":"1961:9:65","nodeType":"YulFunctionCall","src":"1961:9:65"}],"functionName":{"name":"add","nativeSrc":"1944:3:65","nodeType":"YulIdentifier","src":"1944:3:65"},"nativeSrc":"1944:27:65","nodeType":"YulFunctionCall","src":"1944:27:65"},{"name":"b","nativeSrc":"1973:1:65","nodeType":"YulIdentifier","src":"1973:1:65"}],"functionName":{"name":"div","nativeSrc":"1940:3:65","nodeType":"YulIdentifier","src":"1940:3:65"},"nativeSrc":"1940:35:65","nodeType":"YulFunctionCall","src":"1940:35:65"},"variableNames":[{"name":"c","nativeSrc":"1935:1:65","nodeType":"YulIdentifier","src":"1935:1:65"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":23162,"isOffset":false,"isSlot":false,"src":"1888:3:65","valueSize":1},{"declaration":23162,"isOffset":false,"isSlot":false,"src":"1955:3:65","valueSize":1},{"declaration":23189,"isOffset":false,"isSlot":false,"src":"1857:1:65","valueSize":1},{"declaration":23189,"isOffset":false,"isSlot":false,"src":"1952:1:65","valueSize":1},{"declaration":23191,"isOffset":false,"isSlot":false,"src":"1836:1:65","valueSize":1},{"declaration":23191,"isOffset":false,"isSlot":false,"src":"1880:1:65","valueSize":1},{"declaration":23191,"isOffset":false,"isSlot":false,"src":"1965:1:65","valueSize":1},{"declaration":23191,"isOffset":false,"isSlot":false,"src":"1973:1:65","valueSize":1},{"declaration":23194,"isOffset":false,"isSlot":false,"src":"1935:1:65","valueSize":1}],"id":23196,"nodeType":"InlineAssembly","src":"1806:175:65"}]},"documentation":{"id":23187,"nodeType":"StructuredDocumentation","src":"1400:260:65","text":" @dev Divides two wad, rounding half up to the nearest wad\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Wad\n @param b Wad\n @return c = a/b, in wad*"},"id":23198,"implemented":true,"kind":"function","modifiers":[],"name":"wadDiv","nameLocation":"1672:6:65","nodeType":"FunctionDefinition","parameters":{"id":23192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23189,"mutability":"mutable","name":"a","nameLocation":"1687:1:65","nodeType":"VariableDeclaration","scope":23198,"src":"1679:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23191,"mutability":"mutable","name":"b","nameLocation":"1698:1:65","nodeType":"VariableDeclaration","scope":23198,"src":"1690:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1678:22:65"},"returnParameters":{"id":23195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23194,"mutability":"mutable","name":"c","nameLocation":"1732:1:65","nodeType":"VariableDeclaration","scope":23198,"src":"1724:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1723:11:65"},"scope":23243,"src":"1663:322:65","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23209,"nodeType":"Block","src":"2329:247:65","statements":[{"AST":{"nativeSrc":"2410:162:65","nodeType":"YulBlock","src":"2410:162:65","statements":[{"body":{"nativeSrc":"2489:30:65","nodeType":"YulBlock","src":"2489:30:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2506:1:65","nodeType":"YulLiteral","src":"2506:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2509:1:65","nodeType":"YulLiteral","src":"2509:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2499:6:65","nodeType":"YulIdentifier","src":"2499:6:65"},"nativeSrc":"2499:12:65","nodeType":"YulFunctionCall","src":"2499:12:65"},"nativeSrc":"2499:12:65","nodeType":"YulExpressionStatement","src":"2499:12:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"2438:1:65","nodeType":"YulIdentifier","src":"2438:1:65"}],"functionName":{"name":"iszero","nativeSrc":"2431:6:65","nodeType":"YulIdentifier","src":"2431:6:65"},"nativeSrc":"2431:9:65","nodeType":"YulFunctionCall","src":"2431:9:65"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"2452:1:65","nodeType":"YulIdentifier","src":"2452:1:65"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2467:1:65","nodeType":"YulLiteral","src":"2467:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2463:3:65","nodeType":"YulIdentifier","src":"2463:3:65"},"nativeSrc":"2463:6:65","nodeType":"YulFunctionCall","src":"2463:6:65"},{"name":"HALF_RAY","nativeSrc":"2471:8:65","nodeType":"YulIdentifier","src":"2471:8:65"}],"functionName":{"name":"sub","nativeSrc":"2459:3:65","nodeType":"YulIdentifier","src":"2459:3:65"},"nativeSrc":"2459:21:65","nodeType":"YulFunctionCall","src":"2459:21:65"},{"name":"b","nativeSrc":"2482:1:65","nodeType":"YulIdentifier","src":"2482:1:65"}],"functionName":{"name":"div","nativeSrc":"2455:3:65","nodeType":"YulIdentifier","src":"2455:3:65"},"nativeSrc":"2455:29:65","nodeType":"YulFunctionCall","src":"2455:29:65"}],"functionName":{"name":"gt","nativeSrc":"2449:2:65","nodeType":"YulIdentifier","src":"2449:2:65"},"nativeSrc":"2449:36:65","nodeType":"YulFunctionCall","src":"2449:36:65"}],"functionName":{"name":"iszero","nativeSrc":"2442:6:65","nodeType":"YulIdentifier","src":"2442:6:65"},"nativeSrc":"2442:44:65","nodeType":"YulFunctionCall","src":"2442:44:65"}],"functionName":{"name":"or","nativeSrc":"2428:2:65","nodeType":"YulIdentifier","src":"2428:2:65"},"nativeSrc":"2428:59:65","nodeType":"YulFunctionCall","src":"2428:59:65"}],"functionName":{"name":"iszero","nativeSrc":"2421:6:65","nodeType":"YulIdentifier","src":"2421:6:65"},"nativeSrc":"2421:67:65","nodeType":"YulFunctionCall","src":"2421:67:65"},"nativeSrc":"2418:101:65","nodeType":"YulIf","src":"2418:101:65"},{"nativeSrc":"2527:39:65","nodeType":"YulAssignment","src":"2527:39:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"2544:1:65","nodeType":"YulIdentifier","src":"2544:1:65"},{"name":"b","nativeSrc":"2547:1:65","nodeType":"YulIdentifier","src":"2547:1:65"}],"functionName":{"name":"mul","nativeSrc":"2540:3:65","nodeType":"YulIdentifier","src":"2540:3:65"},"nativeSrc":"2540:9:65","nodeType":"YulFunctionCall","src":"2540:9:65"},{"name":"HALF_RAY","nativeSrc":"2551:8:65","nodeType":"YulIdentifier","src":"2551:8:65"}],"functionName":{"name":"add","nativeSrc":"2536:3:65","nodeType":"YulIdentifier","src":"2536:3:65"},"nativeSrc":"2536:24:65","nodeType":"YulFunctionCall","src":"2536:24:65"},{"name":"RAY","nativeSrc":"2562:3:65","nodeType":"YulIdentifier","src":"2562:3:65"}],"functionName":{"name":"div","nativeSrc":"2532:3:65","nodeType":"YulIdentifier","src":"2532:3:65"},"nativeSrc":"2532:34:65","nodeType":"YulFunctionCall","src":"2532:34:65"},"variableNames":[{"name":"c","nativeSrc":"2527:1:65","nodeType":"YulIdentifier","src":"2527:1:65"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":23171,"isOffset":false,"isSlot":false,"src":"2471:8:65","valueSize":1},{"declaration":23171,"isOffset":false,"isSlot":false,"src":"2551:8:65","valueSize":1},{"declaration":23168,"isOffset":false,"isSlot":false,"src":"2562:3:65","valueSize":1},{"declaration":23201,"isOffset":false,"isSlot":false,"src":"2452:1:65","valueSize":1},{"declaration":23201,"isOffset":false,"isSlot":false,"src":"2544:1:65","valueSize":1},{"declaration":23203,"isOffset":false,"isSlot":false,"src":"2438:1:65","valueSize":1},{"declaration":23203,"isOffset":false,"isSlot":false,"src":"2482:1:65","valueSize":1},{"declaration":23203,"isOffset":false,"isSlot":false,"src":"2547:1:65","valueSize":1},{"declaration":23206,"isOffset":false,"isSlot":false,"src":"2527:1:65","valueSize":1}],"id":23208,"nodeType":"InlineAssembly","src":"2401:171:65"}]},"documentation":{"id":23199,"nodeType":"StructuredDocumentation","src":"1989:265:65","text":" @notice Multiplies two ray, rounding half up to the nearest ray\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Ray\n @param b Ray\n @return c = a raymul b*"},"id":23210,"implemented":true,"kind":"function","modifiers":[],"name":"rayMul","nameLocation":"2266:6:65","nodeType":"FunctionDefinition","parameters":{"id":23204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23201,"mutability":"mutable","name":"a","nameLocation":"2281:1:65","nodeType":"VariableDeclaration","scope":23210,"src":"2273:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23203,"mutability":"mutable","name":"b","nameLocation":"2292:1:65","nodeType":"VariableDeclaration","scope":23210,"src":"2284:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2284:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2272:22:65"},"returnParameters":{"id":23207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23206,"mutability":"mutable","name":"c","nameLocation":"2326:1:65","nodeType":"VariableDeclaration","scope":23210,"src":"2318:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2318:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2317:11:65"},"scope":23243,"src":"2257:319:65","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23221,"nodeType":"Block","src":"2917:250:65","statements":[{"AST":{"nativeSrc":"2997:166:65","nodeType":"YulBlock","src":"2997:166:65","statements":[{"body":{"nativeSrc":"3079:30:65","nodeType":"YulBlock","src":"3079:30:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3096:1:65","nodeType":"YulLiteral","src":"3096:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3099:1:65","nodeType":"YulLiteral","src":"3099:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3089:6:65","nodeType":"YulIdentifier","src":"3089:6:65"},"nativeSrc":"3089:12:65","nodeType":"YulFunctionCall","src":"3089:12:65"},"nativeSrc":"3089:12:65","nodeType":"YulExpressionStatement","src":"3089:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"3018:1:65","nodeType":"YulIdentifier","src":"3018:1:65"}],"functionName":{"name":"iszero","nativeSrc":"3011:6:65","nodeType":"YulIdentifier","src":"3011:6:65"},"nativeSrc":"3011:9:65","nodeType":"YulFunctionCall","src":"3011:9:65"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"3039:1:65","nodeType":"YulIdentifier","src":"3039:1:65"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3054:1:65","nodeType":"YulLiteral","src":"3054:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3050:3:65","nodeType":"YulIdentifier","src":"3050:3:65"},"nativeSrc":"3050:6:65","nodeType":"YulFunctionCall","src":"3050:6:65"},{"arguments":[{"name":"b","nativeSrc":"3062:1:65","nodeType":"YulIdentifier","src":"3062:1:65"},{"kind":"number","nativeSrc":"3065:1:65","nodeType":"YulLiteral","src":"3065:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"3058:3:65","nodeType":"YulIdentifier","src":"3058:3:65"},"nativeSrc":"3058:9:65","nodeType":"YulFunctionCall","src":"3058:9:65"}],"functionName":{"name":"sub","nativeSrc":"3046:3:65","nodeType":"YulIdentifier","src":"3046:3:65"},"nativeSrc":"3046:22:65","nodeType":"YulFunctionCall","src":"3046:22:65"},{"name":"RAY","nativeSrc":"3070:3:65","nodeType":"YulIdentifier","src":"3070:3:65"}],"functionName":{"name":"div","nativeSrc":"3042:3:65","nodeType":"YulIdentifier","src":"3042:3:65"},"nativeSrc":"3042:32:65","nodeType":"YulFunctionCall","src":"3042:32:65"}],"functionName":{"name":"gt","nativeSrc":"3036:2:65","nodeType":"YulIdentifier","src":"3036:2:65"},"nativeSrc":"3036:39:65","nodeType":"YulFunctionCall","src":"3036:39:65"}],"functionName":{"name":"iszero","nativeSrc":"3029:6:65","nodeType":"YulIdentifier","src":"3029:6:65"},"nativeSrc":"3029:47:65","nodeType":"YulFunctionCall","src":"3029:47:65"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:65","nodeType":"YulIdentifier","src":"3022:6:65"},"nativeSrc":"3022:55:65","nodeType":"YulFunctionCall","src":"3022:55:65"}],"functionName":{"name":"or","nativeSrc":"3008:2:65","nodeType":"YulIdentifier","src":"3008:2:65"},"nativeSrc":"3008:70:65","nodeType":"YulFunctionCall","src":"3008:70:65"},"nativeSrc":"3005:104:65","nodeType":"YulIf","src":"3005:104:65"},{"nativeSrc":"3117:40:65","nodeType":"YulAssignment","src":"3117:40:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"3134:1:65","nodeType":"YulIdentifier","src":"3134:1:65"},{"name":"RAY","nativeSrc":"3137:3:65","nodeType":"YulIdentifier","src":"3137:3:65"}],"functionName":{"name":"mul","nativeSrc":"3130:3:65","nodeType":"YulIdentifier","src":"3130:3:65"},"nativeSrc":"3130:11:65","nodeType":"YulFunctionCall","src":"3130:11:65"},{"arguments":[{"name":"b","nativeSrc":"3147:1:65","nodeType":"YulIdentifier","src":"3147:1:65"},{"kind":"number","nativeSrc":"3150:1:65","nodeType":"YulLiteral","src":"3150:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"3143:3:65","nodeType":"YulIdentifier","src":"3143:3:65"},"nativeSrc":"3143:9:65","nodeType":"YulFunctionCall","src":"3143:9:65"}],"functionName":{"name":"add","nativeSrc":"3126:3:65","nodeType":"YulIdentifier","src":"3126:3:65"},"nativeSrc":"3126:27:65","nodeType":"YulFunctionCall","src":"3126:27:65"},{"name":"b","nativeSrc":"3155:1:65","nodeType":"YulIdentifier","src":"3155:1:65"}],"functionName":{"name":"div","nativeSrc":"3122:3:65","nodeType":"YulIdentifier","src":"3122:3:65"},"nativeSrc":"3122:35:65","nodeType":"YulFunctionCall","src":"3122:35:65"},"variableNames":[{"name":"c","nativeSrc":"3117:1:65","nodeType":"YulIdentifier","src":"3117:1:65"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":23168,"isOffset":false,"isSlot":false,"src":"3070:3:65","valueSize":1},{"declaration":23168,"isOffset":false,"isSlot":false,"src":"3137:3:65","valueSize":1},{"declaration":23213,"isOffset":false,"isSlot":false,"src":"3039:1:65","valueSize":1},{"declaration":23213,"isOffset":false,"isSlot":false,"src":"3134:1:65","valueSize":1},{"declaration":23215,"isOffset":false,"isSlot":false,"src":"3018:1:65","valueSize":1},{"declaration":23215,"isOffset":false,"isSlot":false,"src":"3062:1:65","valueSize":1},{"declaration":23215,"isOffset":false,"isSlot":false,"src":"3147:1:65","valueSize":1},{"declaration":23215,"isOffset":false,"isSlot":false,"src":"3155:1:65","valueSize":1},{"declaration":23218,"isOffset":false,"isSlot":false,"src":"3117:1:65","valueSize":1}],"id":23220,"nodeType":"InlineAssembly","src":"2988:175:65"}]},"documentation":{"id":23211,"nodeType":"StructuredDocumentation","src":"2580:262:65","text":" @notice Divides two ray, rounding half up to the nearest ray\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Ray\n @param b Ray\n @return c = a raydiv b*"},"id":23222,"implemented":true,"kind":"function","modifiers":[],"name":"rayDiv","nameLocation":"2854:6:65","nodeType":"FunctionDefinition","parameters":{"id":23216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23213,"mutability":"mutable","name":"a","nameLocation":"2869:1:65","nodeType":"VariableDeclaration","scope":23222,"src":"2861:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23212,"name":"uint256","nodeType":"ElementaryTypeName","src":"2861:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23215,"mutability":"mutable","name":"b","nameLocation":"2880:1:65","nodeType":"VariableDeclaration","scope":23222,"src":"2872:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23214,"name":"uint256","nodeType":"ElementaryTypeName","src":"2872:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2860:22:65"},"returnParameters":{"id":23219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23218,"mutability":"mutable","name":"c","nameLocation":"2914:1:65","nodeType":"VariableDeclaration","scope":23222,"src":"2906:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23217,"name":"uint256","nodeType":"ElementaryTypeName","src":"2906:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2905:11:65"},"scope":23243,"src":"2845:322:65","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23231,"nodeType":"Block","src":"3491:191:65","statements":[{"AST":{"nativeSrc":"3506:172:65","nodeType":"YulBlock","src":"3506:172:65","statements":[{"nativeSrc":"3514:26:65","nodeType":"YulAssignment","src":"3514:26:65","value":{"arguments":[{"name":"a","nativeSrc":"3523:1:65","nodeType":"YulIdentifier","src":"3523:1:65"},{"name":"WAD_RAY_RATIO","nativeSrc":"3526:13:65","nodeType":"YulIdentifier","src":"3526:13:65"}],"functionName":{"name":"div","nativeSrc":"3519:3:65","nodeType":"YulIdentifier","src":"3519:3:65"},"nativeSrc":"3519:21:65","nodeType":"YulFunctionCall","src":"3519:21:65"},"variableNames":[{"name":"b","nativeSrc":"3514:1:65","nodeType":"YulIdentifier","src":"3514:1:65"}]},{"nativeSrc":"3547:38:65","nodeType":"YulVariableDeclaration","src":"3547:38:65","value":{"arguments":[{"name":"a","nativeSrc":"3568:1:65","nodeType":"YulIdentifier","src":"3568:1:65"},{"name":"WAD_RAY_RATIO","nativeSrc":"3571:13:65","nodeType":"YulIdentifier","src":"3571:13:65"}],"functionName":{"name":"mod","nativeSrc":"3564:3:65","nodeType":"YulIdentifier","src":"3564:3:65"},"nativeSrc":"3564:21:65","nodeType":"YulFunctionCall","src":"3564:21:65"},"variables":[{"name":"remainder","nativeSrc":"3551:9:65","nodeType":"YulTypedName","src":"3551:9:65","type":""}]},{"body":{"nativeSrc":"3640:32:65","nodeType":"YulBlock","src":"3640:32:65","statements":[{"nativeSrc":"3650:14:65","nodeType":"YulAssignment","src":"3650:14:65","value":{"arguments":[{"name":"b","nativeSrc":"3659:1:65","nodeType":"YulIdentifier","src":"3659:1:65"},{"kind":"number","nativeSrc":"3662:1:65","nodeType":"YulLiteral","src":"3662:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3655:3:65","nodeType":"YulIdentifier","src":"3655:3:65"},"nativeSrc":"3655:9:65","nodeType":"YulFunctionCall","src":"3655:9:65"},"variableNames":[{"name":"b","nativeSrc":"3650:1:65","nodeType":"YulIdentifier","src":"3650:1:65"}]}]},"condition":{"arguments":[{"arguments":[{"name":"remainder","nativeSrc":"3605:9:65","nodeType":"YulIdentifier","src":"3605:9:65"},{"arguments":[{"name":"WAD_RAY_RATIO","nativeSrc":"3620:13:65","nodeType":"YulIdentifier","src":"3620:13:65"},{"kind":"number","nativeSrc":"3635:1:65","nodeType":"YulLiteral","src":"3635:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"3616:3:65","nodeType":"YulIdentifier","src":"3616:3:65"},"nativeSrc":"3616:21:65","nodeType":"YulFunctionCall","src":"3616:21:65"}],"functionName":{"name":"lt","nativeSrc":"3602:2:65","nodeType":"YulIdentifier","src":"3602:2:65"},"nativeSrc":"3602:36:65","nodeType":"YulFunctionCall","src":"3602:36:65"}],"functionName":{"name":"iszero","nativeSrc":"3595:6:65","nodeType":"YulIdentifier","src":"3595:6:65"},"nativeSrc":"3595:44:65","nodeType":"YulFunctionCall","src":"3595:44:65"},"nativeSrc":"3592:80:65","nodeType":"YulIf","src":"3592:80:65"}]},"evmVersion":"cancun","externalReferences":[{"declaration":23174,"isOffset":false,"isSlot":false,"src":"3526:13:65","valueSize":1},{"declaration":23174,"isOffset":false,"isSlot":false,"src":"3571:13:65","valueSize":1},{"declaration":23174,"isOffset":false,"isSlot":false,"src":"3620:13:65","valueSize":1},{"declaration":23225,"isOffset":false,"isSlot":false,"src":"3523:1:65","valueSize":1},{"declaration":23225,"isOffset":false,"isSlot":false,"src":"3568:1:65","valueSize":1},{"declaration":23228,"isOffset":false,"isSlot":false,"src":"3514:1:65","valueSize":1},{"declaration":23228,"isOffset":false,"isSlot":false,"src":"3650:1:65","valueSize":1},{"declaration":23228,"isOffset":false,"isSlot":false,"src":"3659:1:65","valueSize":1}],"id":23230,"nodeType":"InlineAssembly","src":"3497:181:65"}]},"documentation":{"id":23223,"nodeType":"StructuredDocumentation","src":"3171:254:65","text":" @dev Casts ray down to wad\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Ray\n @return b = a converted to wad, rounded half up to the nearest wad*"},"id":23232,"implemented":true,"kind":"function","modifiers":[],"name":"rayToWad","nameLocation":"3437:8:65","nodeType":"FunctionDefinition","parameters":{"id":23226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23225,"mutability":"mutable","name":"a","nameLocation":"3454:1:65","nodeType":"VariableDeclaration","scope":23232,"src":"3446:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23224,"name":"uint256","nodeType":"ElementaryTypeName","src":"3446:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3445:11:65"},"returnParameters":{"id":23229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23228,"mutability":"mutable","name":"b","nameLocation":"3488:1:65","nodeType":"VariableDeclaration","scope":23232,"src":"3480:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23227,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:11:65"},"scope":23243,"src":"3428:254:65","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23241,"nodeType":"Block","src":"3971:184:65","statements":[{"AST":{"nativeSrc":"4033:118:65","nodeType":"YulBlock","src":"4033:118:65","statements":[{"nativeSrc":"4041:26:65","nodeType":"YulAssignment","src":"4041:26:65","value":{"arguments":[{"name":"a","nativeSrc":"4050:1:65","nodeType":"YulIdentifier","src":"4050:1:65"},{"name":"WAD_RAY_RATIO","nativeSrc":"4053:13:65","nodeType":"YulIdentifier","src":"4053:13:65"}],"functionName":{"name":"mul","nativeSrc":"4046:3:65","nodeType":"YulIdentifier","src":"4046:3:65"},"nativeSrc":"4046:21:65","nodeType":"YulFunctionCall","src":"4046:21:65"},"variableNames":[{"name":"b","nativeSrc":"4041:1:65","nodeType":"YulIdentifier","src":"4041:1:65"}]},{"body":{"nativeSrc":"4115:30:65","nodeType":"YulBlock","src":"4115:30:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4132:1:65","nodeType":"YulLiteral","src":"4132:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4135:1:65","nodeType":"YulLiteral","src":"4135:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4125:6:65","nodeType":"YulIdentifier","src":"4125:6:65"},"nativeSrc":"4125:12:65","nodeType":"YulFunctionCall","src":"4125:12:65"},"nativeSrc":"4125:12:65","nodeType":"YulExpressionStatement","src":"4125:12:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"4092:1:65","nodeType":"YulIdentifier","src":"4092:1:65"},{"name":"WAD_RAY_RATIO","nativeSrc":"4095:13:65","nodeType":"YulIdentifier","src":"4095:13:65"}],"functionName":{"name":"div","nativeSrc":"4088:3:65","nodeType":"YulIdentifier","src":"4088:3:65"},"nativeSrc":"4088:21:65","nodeType":"YulFunctionCall","src":"4088:21:65"},{"name":"a","nativeSrc":"4111:1:65","nodeType":"YulIdentifier","src":"4111:1:65"}],"functionName":{"name":"eq","nativeSrc":"4085:2:65","nodeType":"YulIdentifier","src":"4085:2:65"},"nativeSrc":"4085:28:65","nodeType":"YulFunctionCall","src":"4085:28:65"}],"functionName":{"name":"iszero","nativeSrc":"4078:6:65","nodeType":"YulIdentifier","src":"4078:6:65"},"nativeSrc":"4078:36:65","nodeType":"YulFunctionCall","src":"4078:36:65"},"nativeSrc":"4075:70:65","nodeType":"YulIf","src":"4075:70:65"}]},"evmVersion":"cancun","externalReferences":[{"declaration":23174,"isOffset":false,"isSlot":false,"src":"4053:13:65","valueSize":1},{"declaration":23174,"isOffset":false,"isSlot":false,"src":"4095:13:65","valueSize":1},{"declaration":23235,"isOffset":false,"isSlot":false,"src":"4050:1:65","valueSize":1},{"declaration":23235,"isOffset":false,"isSlot":false,"src":"4111:1:65","valueSize":1},{"declaration":23238,"isOffset":false,"isSlot":false,"src":"4041:1:65","valueSize":1},{"declaration":23238,"isOffset":false,"isSlot":false,"src":"4092:1:65","valueSize":1}],"id":23240,"nodeType":"InlineAssembly","src":"4024:127:65"}]},"documentation":{"id":23233,"nodeType":"StructuredDocumentation","src":"3686:219:65","text":" @dev Converts wad up to ray\n @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328\n @param a Wad\n @return b = a converted in ray*"},"id":23242,"implemented":true,"kind":"function","modifiers":[],"name":"wadToRay","nameLocation":"3917:8:65","nodeType":"FunctionDefinition","parameters":{"id":23236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23235,"mutability":"mutable","name":"a","nameLocation":"3934:1:65","nodeType":"VariableDeclaration","scope":23242,"src":"3926:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23234,"name":"uint256","nodeType":"ElementaryTypeName","src":"3926:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3925:11:65"},"returnParameters":{"id":23239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23238,"mutability":"mutable","name":"b","nameLocation":"3968:1:65","nodeType":"VariableDeclaration","scope":23242,"src":"3960:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23237,"name":"uint256","nodeType":"ElementaryTypeName","src":"3960:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3959:11:65"},"scope":23243,"src":"3908:247:65","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":23244,"src":"440:3717:65","usedErrors":[],"usedEvents":[]}],"src":"37:4121:65"},"id":65},"contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[6942],"ERC1967Proxy":[4383],"ERC1967Upgrade":[4687],"IBeacon":[4749],"IERC1822Proxiable":[4346],"IERC1967":[4165],"Proxy":[4739],"StorageSlot":[7082]},"id":23247,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":23245,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:66"},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":23246,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23247,"sourceUnit":4384,"src":"63:64:66","symbolAliases":[],"unitAlias":""}],"src":"39:89:66"},"id":66},"contracts/interfaces/IAccessManager.sol":{"ast":{"absolutePath":"contracts/interfaces/IAccessManager.sol","exportedSymbols":{"IAccessControlUpgradeable":[409],"IAccessManager":[23370]},"id":23371,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23248,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:67"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol","id":23250,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23371,"sourceUnit":337,"src":"64:114:67","symbolAliases":[{"foreign":{"id":23249,"name":"IAccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"72:25:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23252,"name":"IAccessControlUpgradeable","nameLocations":["429:25:67"],"nodeType":"IdentifierPath","referencedDeclaration":409,"src":"429:25:67"},"id":23253,"nodeType":"InheritanceSpecifier","src":"429:25:67"}],"canonicalName":"IAccessManager","contractDependencies":[],"contractKind":"interface","documentation":{"id":23251,"nodeType":"StructuredDocumentation","src":"180:220:67","text":" @title IAccessManager - Interface for the contract that handles roles for the PolicyPool and components\n @dev Interface for the contract that handles roles for the PolicyPool and components\n @author Ensuro"},"fullyImplemented":false,"id":23370,"linearizedBaseContracts":[23370,409],"name":"IAccessManager","nameLocation":"411:14:67","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IAccessManager.GovernanceActions","documentation":{"id":23254,"nodeType":"StructuredDocumentation","src":"459:257:67","text":" @dev Enum with the different governance actions supported in the protocol.\n      It's good to keep actions of the same component consecutive, parts of the code relay on that,\n      so we put some fillers in case new actions are added."},"id":23301,"members":[{"id":23255,"name":"none","nameLocation":"748:4:67","nodeType":"EnumValue","src":"748:4:67"},{"id":23256,"name":"setTreasury","nameLocation":"758:11:67","nodeType":"EnumValue","src":"758:11:67"},{"id":23257,"name":"setAssetManager","nameLocation":"814:15:67","nodeType":"EnumValue","src":"814:15:67"},{"id":23258,"name":"setAssetManagerForced","nameLocation":"888:21:67","nodeType":"EnumValue","src":"888:21:67"},{"id":23259,"name":"setBaseURI","nameLocation":"994:10:67","nodeType":"EnumValue","src":"994:10:67"},{"id":23260,"name":"ppFiller2","nameLocation":"1052:9:67","nodeType":"EnumValue","src":"1052:9:67"},{"id":23261,"name":"ppFiller3","nameLocation":"1131:9:67","nodeType":"EnumValue","src":"1131:9:67"},{"id":23262,"name":"ppFiller4","nameLocation":"1210:9:67","nodeType":"EnumValue","src":"1210:9:67"},{"id":23263,"name":"setMoc","nameLocation":"1326:6:67","nodeType":"EnumValue","src":"1326:6:67"},{"id":23264,"name":"setJrCollRatio","nameLocation":"1338:14:67","nodeType":"EnumValue","src":"1338:14:67"},{"id":23265,"name":"setCollRatio","nameLocation":"1358:12:67","nodeType":"EnumValue","src":"1358:12:67"},{"id":23266,"name":"setEnsuroPpFee","nameLocation":"1376:14:67","nodeType":"EnumValue","src":"1376:14:67"},{"id":23267,"name":"setEnsuroCocFee","nameLocation":"1396:15:67","nodeType":"EnumValue","src":"1396:15:67"},{"id":23268,"name":"setJrRoc","nameLocation":"1417:8:67","nodeType":"EnumValue","src":"1417:8:67"},{"id":23269,"name":"setSrRoc","nameLocation":"1431:8:67","nodeType":"EnumValue","src":"1431:8:67"},{"id":23270,"name":"setMaxPayoutPerPolicy","nameLocation":"1445:21:67","nodeType":"EnumValue","src":"1445:21:67"},{"id":23271,"name":"setExposureLimit","nameLocation":"1472:16:67","nodeType":"EnumValue","src":"1472:16:67"},{"id":23272,"name":"setMaxDuration","nameLocation":"1494:14:67","nodeType":"EnumValue","src":"1494:14:67"},{"id":23273,"name":"setWallet","nameLocation":"1514:9:67","nodeType":"EnumValue","src":"1514:9:67"},{"id":23274,"name":"rmFiller1","nameLocation":"1529:9:67","nodeType":"EnumValue","src":"1529:9:67"},{"id":23275,"name":"rmFiller2","nameLocation":"1583:9:67","nodeType":"EnumValue","src":"1583:9:67"},{"id":23276,"name":"rmFiller3","nameLocation":"1637:9:67","nodeType":"EnumValue","src":"1637:9:67"},{"id":23277,"name":"rmFiller4","nameLocation":"1691:9:67","nodeType":"EnumValue","src":"1691:9:67"},{"id":23278,"name":"setLPWhitelist","nameLocation":"1778:14:67","nodeType":"EnumValue","src":"1778:14:67"},{"id":23279,"name":"setLiquidityRequirement","nameLocation":"1846:23:67","nodeType":"EnumValue","src":"1846:23:67"},{"id":23280,"name":"setMinUtilizationRate","nameLocation":"1875:21:67","nodeType":"EnumValue","src":"1875:21:67"},{"id":23281,"name":"setMaxUtilizationRate","nameLocation":"1902:21:67","nodeType":"EnumValue","src":"1902:21:67"},{"id":23282,"name":"setInternalLoanInterestRate","nameLocation":"1929:27:67","nodeType":"EnumValue","src":"1929:27:67"},{"id":23283,"name":"etkFiller1","nameLocation":"1962:10:67","nodeType":"EnumValue","src":"1962:10:67"},{"id":23284,"name":"etkFiller2","nameLocation":"2021:10:67","nodeType":"EnumValue","src":"2021:10:67"},{"id":23285,"name":"etkFiller3","nameLocation":"2080:10:67","nodeType":"EnumValue","src":"2080:10:67"},{"id":23286,"name":"etkFiller4","nameLocation":"2139:10:67","nodeType":"EnumValue","src":"2139:10:67"},{"id":23287,"name":"setDeficitRatio","nameLocation":"2240:15:67","nodeType":"EnumValue","src":"2240:15:67"},{"id":23288,"name":"setDeficitRatioWithAdjustment","nameLocation":"2261:29:67","nodeType":"EnumValue","src":"2261:29:67"},{"id":23289,"name":"setJrLoanLimit","nameLocation":"2296:14:67","nodeType":"EnumValue","src":"2296:14:67"},{"id":23290,"name":"setSrLoanLimit","nameLocation":"2316:14:67","nodeType":"EnumValue","src":"2316:14:67"},{"id":23291,"name":"paFiller3","nameLocation":"2336:9:67","nodeType":"EnumValue","src":"2336:9:67"},{"id":23292,"name":"paFiller4","nameLocation":"2403:9:67","nodeType":"EnumValue","src":"2403:9:67"},{"id":23293,"name":"setLiquidityMin","nameLocation":"2509:15:67","nodeType":"EnumValue","src":"2509:15:67"},{"id":23294,"name":"setLiquidityMiddle","nameLocation":"2530:18:67","nodeType":"EnumValue","src":"2530:18:67"},{"id":23295,"name":"setLiquidityMax","nameLocation":"2554:15:67","nodeType":"EnumValue","src":"2554:15:67"},{"id":23296,"name":"amFiller1","nameLocation":"2575:9:67","nodeType":"EnumValue","src":"2575:9:67"},{"id":23297,"name":"amFiller2","nameLocation":"2640:9:67","nodeType":"EnumValue","src":"2640:9:67"},{"id":23298,"name":"amFiller3","nameLocation":"2705:9:67","nodeType":"EnumValue","src":"2705:9:67"},{"id":23299,"name":"amFiller4","nameLocation":"2770:9:67","nodeType":"EnumValue","src":"2770:9:67"},{"id":23300,"name":"last","nameLocation":"2835:4:67","nodeType":"EnumValue","src":"2835:4:67"}],"name":"GovernanceActions","nameLocation":"724:17:67","nodeType":"EnumDefinition","src":"719:2124:67"},{"documentation":{"id":23302,"nodeType":"StructuredDocumentation","src":"2847:325:67","text":" @dev Gets a role identifier mixing the hash of the global role and the address of the component\n @param component The component where this role will apply\n @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @return A new role, mixing (XOR) the component address and the role."},"functionSelector":"374c96c8","id":23311,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentRole","nameLocation":"3184:16:67","nodeType":"FunctionDefinition","parameters":{"id":23307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23304,"mutability":"mutable","name":"component","nameLocation":"3209:9:67","nodeType":"VariableDeclaration","scope":23311,"src":"3201:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23303,"name":"address","nodeType":"ElementaryTypeName","src":"3201:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23306,"mutability":"mutable","name":"role","nameLocation":"3228:4:67","nodeType":"VariableDeclaration","scope":23311,"src":"3220:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3220:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3200:33:67"},"returnParameters":{"id":23310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23311,"src":"3257:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3257:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3256:9:67"},"scope":23370,"src":"3175:91:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23312,"nodeType":"StructuredDocumentation","src":"3270:538:67","text":" @dev Tells if a user has been granted a given role for a component\n @param component The component where this role will apply\n @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @param account The user address for who we want to verify the permission\n @param alsoGlobal If true, it will return if the users has either the component role, or the role itself.\n                   If false, only the component role is accepted\n @return Whether the user has or not any of the roles"},"functionSelector":"b3efcbd2","id":23325,"implemented":false,"kind":"function","modifiers":[],"name":"hasComponentRole","nameLocation":"3820:16:67","nodeType":"FunctionDefinition","parameters":{"id":23321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23314,"mutability":"mutable","name":"component","nameLocation":"3850:9:67","nodeType":"VariableDeclaration","scope":23325,"src":"3842:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23313,"name":"address","nodeType":"ElementaryTypeName","src":"3842:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23316,"mutability":"mutable","name":"role","nameLocation":"3873:4:67","nodeType":"VariableDeclaration","scope":23325,"src":"3865:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3865:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23318,"mutability":"mutable","name":"account","nameLocation":"3891:7:67","nodeType":"VariableDeclaration","scope":23325,"src":"3883:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23317,"name":"address","nodeType":"ElementaryTypeName","src":"3883:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23320,"mutability":"mutable","name":"alsoGlobal","nameLocation":"3909:10:67","nodeType":"VariableDeclaration","scope":23325,"src":"3904:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23319,"name":"bool","nodeType":"ElementaryTypeName","src":"3904:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3836:87:67"},"returnParameters":{"id":23324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23325,"src":"3947:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23322,"name":"bool","nodeType":"ElementaryTypeName","src":"3947:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3946:6:67"},"scope":23370,"src":"3811:142:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23326,"nodeType":"StructuredDocumentation","src":"3957:248:67","text":" @dev Checks if a user has been granted a given role and reverts if it doesn't\n @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @param account The user address for who we want to verify the permission"},"functionSelector":"12d9a6ad","id":23333,"implemented":false,"kind":"function","modifiers":[],"name":"checkRole","nameLocation":"4217:9:67","nodeType":"FunctionDefinition","parameters":{"id":23331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23328,"mutability":"mutable","name":"role","nameLocation":"4235:4:67","nodeType":"VariableDeclaration","scope":23333,"src":"4227:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4227:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23330,"mutability":"mutable","name":"account","nameLocation":"4249:7:67","nodeType":"VariableDeclaration","scope":23333,"src":"4241:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23329,"name":"address","nodeType":"ElementaryTypeName","src":"4241:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4226:31:67"},"returnParameters":{"id":23332,"nodeType":"ParameterList","parameters":[],"src":"4271:0:67"},"scope":23370,"src":"4208:64:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23334,"nodeType":"StructuredDocumentation","src":"4276:349:67","text":" @dev Checks if a user has been granted any of the two roles specified and reverts if it doesn't\n @param role1 A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @param role2 Another role such as `keccak256(\"GUARDIAN_ROLE\")` that's global\n @param account The user address for who we want to verify the permission"},"functionSelector":"c5b8f5cf","id":23343,"implemented":false,"kind":"function","modifiers":[],"name":"checkRole2","nameLocation":"4637:10:67","nodeType":"FunctionDefinition","parameters":{"id":23341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23336,"mutability":"mutable","name":"role1","nameLocation":"4656:5:67","nodeType":"VariableDeclaration","scope":23343,"src":"4648:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4648:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23338,"mutability":"mutable","name":"role2","nameLocation":"4671:5:67","nodeType":"VariableDeclaration","scope":23343,"src":"4663:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4663:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23340,"mutability":"mutable","name":"account","nameLocation":"4686:7:67","nodeType":"VariableDeclaration","scope":23343,"src":"4678:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23339,"name":"address","nodeType":"ElementaryTypeName","src":"4678:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4647:47:67"},"returnParameters":{"id":23342,"nodeType":"ParameterList","parameters":[],"src":"4708:0:67"},"scope":23370,"src":"4628:81:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23344,"nodeType":"StructuredDocumentation","src":"4713:440:67","text":" @dev Checks if a user has been granted a given component role and reverts if it doesn't\n @param role A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @param account The user address for who we want to verify the permission\n @param alsoGlobal If true, it will accept not only the component role, but also the (global) `role` itself.\n                   If false, only the component role is accepted"},"functionSelector":"5ff57d20","id":23355,"implemented":false,"kind":"function","modifiers":[],"name":"checkComponentRole","nameLocation":"5165:18:67","nodeType":"FunctionDefinition","parameters":{"id":23353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23346,"mutability":"mutable","name":"component","nameLocation":"5192:9:67","nodeType":"VariableDeclaration","scope":23355,"src":"5184:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23345,"name":"address","nodeType":"ElementaryTypeName","src":"5184:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23348,"mutability":"mutable","name":"role","nameLocation":"5211:4:67","nodeType":"VariableDeclaration","scope":23355,"src":"5203:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5203:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23350,"mutability":"mutable","name":"account","nameLocation":"5225:7:67","nodeType":"VariableDeclaration","scope":23355,"src":"5217:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23349,"name":"address","nodeType":"ElementaryTypeName","src":"5217:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23352,"mutability":"mutable","name":"alsoGlobal","nameLocation":"5239:10:67","nodeType":"VariableDeclaration","scope":23355,"src":"5234:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23351,"name":"bool","nodeType":"ElementaryTypeName","src":"5234:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5183:67:67"},"returnParameters":{"id":23354,"nodeType":"ParameterList","parameters":[],"src":"5264:0:67"},"scope":23370,"src":"5156:109:67","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23356,"nodeType":"StructuredDocumentation","src":"5269:533:67","text":" @dev Checks if a user has been granted any of the two component roles specified and reverts if it doesn't\n @param role1 A role such as `keccak256(\"LEVEL1_ROLE\")` that's global\n @param role2 Another role such as `keccak256(\"GUARDIAN_ROLE\")` that's global\n @param account The user address for who we want to verify the permission\n @param alsoGlobal If true, it will accept not only the component roles, but also the global ones.\n                   If false, only the component roles are accepted"},"functionSelector":"2b1cff1f","id":23369,"implemented":false,"kind":"function","modifiers":[],"name":"checkComponentRole2","nameLocation":"5814:19:67","nodeType":"FunctionDefinition","parameters":{"id":23367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23358,"mutability":"mutable","name":"component","nameLocation":"5847:9:67","nodeType":"VariableDeclaration","scope":23369,"src":"5839:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23357,"name":"address","nodeType":"ElementaryTypeName","src":"5839:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23360,"mutability":"mutable","name":"role1","nameLocation":"5870:5:67","nodeType":"VariableDeclaration","scope":23369,"src":"5862:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5862:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23362,"mutability":"mutable","name":"role2","nameLocation":"5889:5:67","nodeType":"VariableDeclaration","scope":23369,"src":"5881:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5881:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23364,"mutability":"mutable","name":"account","nameLocation":"5908:7:67","nodeType":"VariableDeclaration","scope":23369,"src":"5900:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23363,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23366,"mutability":"mutable","name":"alsoGlobal","nameLocation":"5926:10:67","nodeType":"VariableDeclaration","scope":23369,"src":"5921:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23365,"name":"bool","nodeType":"ElementaryTypeName","src":"5921:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5833:107:67"},"returnParameters":{"id":23368,"nodeType":"ParameterList","parameters":[],"src":"5954:0:67"},"scope":23370,"src":"5805:150:67","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23371,"src":"401:5556:67","usedErrors":[],"usedEvents":[348,357,366]}],"src":"39:5919:67"},"id":67},"contracts/interfaces/IAssetManager.sol":{"ast":{"absolutePath":"contracts/interfaces/IAssetManager.sol","exportedSymbols":{"IAssetManager":[23421],"IERC165":[7883]},"id":23422,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:68"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":23374,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23422,"sourceUnit":7884,"src":"64:80:68","symbolAliases":[{"foreign":{"id":23373,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"72:7:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23376,"name":"IERC165","nameLocations":["760:7:68"],"nodeType":"IdentifierPath","referencedDeclaration":7883,"src":"760:7:68"},"id":23377,"nodeType":"InheritanceSpecifier","src":"760:7:68"}],"canonicalName":"IAssetManager","contractDependencies":[],"contractKind":"interface","documentation":{"id":23375,"nodeType":"StructuredDocumentation","src":"146:586:68","text":" @title IAssetManager - Interface of the asset management strategy that's plugged into the reserves\n @dev The asset manager is a contract that's plugged and called with `delegatecall` (operates in the context of the\n      reserve - see {Reserve}). The asset manager contract applies a strategy to invest the reserve funds and\n      get additional yields.\n      All implementations of this contract should use the Diamond Storage pattern to avoid overwriting the calling contract's state.\n      See https://eips.ethereum.org/EIPS/eip-2535#storage\n @author Ensuro"},"fullyImplemented":false,"id":23421,"linearizedBaseContracts":[23421,7883],"name":"IAssetManager","nameLocation":"743:13:68","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":23378,"nodeType":"StructuredDocumentation","src":"772:159:68","text":" @dev Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\n @param amount The amount invested"},"eventSelector":"0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf4","id":23382,"name":"MoneyInvested","nameLocation":"940:13:68","nodeType":"EventDefinition","parameters":{"id":23381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23380,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"962:6:68","nodeType":"VariableDeclaration","scope":23382,"src":"954:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23379,"name":"uint256","nodeType":"ElementaryTypeName","src":"954:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"953:16:68"},"src":"934:36:68"},{"anonymous":false,"documentation":{"id":23383,"nodeType":"StructuredDocumentation","src":"974:185:68","text":" @dev Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid\n funds.\n @param amount The amount de-invested"},"eventSelector":"b82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c65","id":23387,"name":"MoneyDeinvested","nameLocation":"1168:15:68","nodeType":"EventDefinition","parameters":{"id":23386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23385,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1192:6:68","nodeType":"VariableDeclaration","scope":23387,"src":"1184:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23384,"name":"uint256","nodeType":"ElementaryTypeName","src":"1184:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1183:16:68"},"src":"1162:38:68"},{"anonymous":false,"documentation":{"id":23388,"nodeType":"StructuredDocumentation","src":"1204:241:68","text":" @dev Event emitted when investment yields are accounted in the reserve\n @param earnings The amount of earnings generated since last record. It's positive in the case of earnings or\n negative when there are losses."},"eventSelector":"731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf","id":23392,"name":"EarningsRecorded","nameLocation":"1454:16:68","nodeType":"EventDefinition","parameters":{"id":23391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23390,"indexed":false,"mutability":"mutable","name":"earnings","nameLocation":"1478:8:68","nodeType":"VariableDeclaration","scope":23392,"src":"1471:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":23389,"name":"int256","nodeType":"ElementaryTypeName","src":"1471:6:68","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1470:17:68"},"src":"1448:40:68"},{"documentation":{"id":23393,"nodeType":"StructuredDocumentation","src":"1492:501:68","text":" @dev Function called when an asset manager is plugged into a reserve. Useful for initialization tasks\n Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you\n can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the\n diamondStorage might have left some data. So, in the connect method you should initialize the state setting to\n zero what's expected to be zero."},"functionSelector":"948cb719","id":23396,"implemented":false,"kind":"function","modifiers":[],"name":"connect","nameLocation":"2005:7:68","nodeType":"FunctionDefinition","parameters":{"id":23394,"nodeType":"ParameterList","parameters":[],"src":"2012:2:68"},"returnParameters":{"id":23395,"nodeType":"ParameterList","parameters":[],"src":"2023:0:68"},"scope":23421,"src":"1996:28:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23397,"nodeType":"StructuredDocumentation","src":"2028:354:68","text":" @dev Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the\n reserve balance and those that are invested. Called with delegatecall by the reserve from the external function\n rebalance (see {Reserve-rebalance}).\n Events:\n - Emits {MoneyInvested} or {MoneyDeinvested}"},"functionSelector":"7d7c2a1c","id":23400,"implemented":false,"kind":"function","modifiers":[],"name":"rebalance","nameLocation":"2394:9:68","nodeType":"FunctionDefinition","parameters":{"id":23398,"nodeType":"ParameterList","parameters":[],"src":"2403:2:68"},"returnParameters":{"id":23399,"nodeType":"ParameterList","parameters":[],"src":"2414:0:68"},"scope":23421,"src":"2385:30:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23401,"nodeType":"StructuredDocumentation","src":"2419:354:68","text":" @dev Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the\n reserve balance and those that are invested. Called with delegatecall by the reserve from the external function\n rebalance (see {Reserve-rebalance}).\n Events:\n - Emits {MoneyInvested} or {MoneyDeinvested}"},"functionSelector":"4eb978a4","id":23406,"implemented":false,"kind":"function","modifiers":[],"name":"recordEarnings","nameLocation":"2785:14:68","nodeType":"FunctionDefinition","parameters":{"id":23402,"nodeType":"ParameterList","parameters":[],"src":"2799:2:68"},"returnParameters":{"id":23405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23406,"src":"2820:6:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":23403,"name":"int256","nodeType":"ElementaryTypeName","src":"2820:6:68","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2819:8:68"},"scope":23421,"src":"2776:52:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23407,"nodeType":"StructuredDocumentation","src":"2832:684:68","text":" @dev Refills the reserve balance with enough money to do a payment. Called from the reserve when a payment needs\n to be made and there's no enough liquid balance (`currency().balanceOf(reserve) < paymentAmount`)\n Events:\n - Emits {MoneyDeinvested} with the amount transferred to the liquid balance.\n @param paymentAmount The total amount of the payment that needs to be made. If this function is called, it's\n because paymentAmount > balanceOf(reserve). The minimum amount that needs to be transferred to the reserve is\n `paymentAmount - balanceOf(reserve)`, but it can transfer more.\n @return Returns the actual amount transferred"},"functionSelector":"1014a0c2","id":23414,"implemented":false,"kind":"function","modifiers":[],"name":"refillWallet","nameLocation":"3528:12:68","nodeType":"FunctionDefinition","parameters":{"id":23410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23409,"mutability":"mutable","name":"paymentAmount","nameLocation":"3549:13:68","nodeType":"VariableDeclaration","scope":23414,"src":"3541:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23408,"name":"uint256","nodeType":"ElementaryTypeName","src":"3541:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3540:23:68"},"returnParameters":{"id":23413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23414,"src":"3582:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3582:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3581:9:68"},"scope":23421,"src":"3519:72:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23415,"nodeType":"StructuredDocumentation","src":"3595:456:68","text":" @dev Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset\n manager is unplugged.\n Events:\n - Emits {MoneyDeinvested} with the amount transferred to the liquid balance.\n - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\n @return Returns the earnings or losses (negative) since last time earnings were recorded."},"functionSelector":"cec16f3f","id":23420,"implemented":false,"kind":"function","modifiers":[],"name":"deinvestAll","nameLocation":"4063:11:68","nodeType":"FunctionDefinition","parameters":{"id":23416,"nodeType":"ParameterList","parameters":[],"src":"4074:2:68"},"returnParameters":{"id":23419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23420,"src":"4095:6:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":23417,"name":"int256","nodeType":"ElementaryTypeName","src":"4095:6:68","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4094:8:68"},"scope":23421,"src":"4054:49:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23422,"src":"733:3372:68","usedErrors":[],"usedEvents":[23382,23387,23392]}],"src":"39:4067:68"},"id":68},"contracts/interfaces/IEToken.sol":{"ast":{"absolutePath":"contracts/interfaces/IEToken.sol","exportedSymbols":{"IERC20":[5414],"IEToken":[23549]},"id":23550,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23423,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:69"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":23425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23550,"sourceUnit":5415,"src":"64:70:69","symbolAliases":[{"foreign":{"id":23424,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"72:6:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23427,"name":"IERC20","nameLocations":["286:6:69"],"nodeType":"IdentifierPath","referencedDeclaration":5414,"src":"286:6:69"},"id":23428,"nodeType":"InheritanceSpecifier","src":"286:6:69"}],"canonicalName":"IEToken","contractDependencies":[],"contractKind":"interface","documentation":{"id":23426,"nodeType":"StructuredDocumentation","src":"136:128:69","text":" @title IEToken interface\n @dev Interface for EToken smart contracts, these are the capital pools.\n @author Ensuro"},"fullyImplemented":false,"id":23549,"linearizedBaseContracts":[23549,5414],"name":"IEToken","nameLocation":"275:7:69","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IEToken.Parameter","documentation":{"id":23429,"nodeType":"StructuredDocumentation","src":"297:88:69","text":" @dev Enum of the different parameters that are configurable in an EToken."},"id":23434,"members":[{"id":23430,"name":"liquidityRequirement","nameLocation":"409:20:69","nodeType":"EnumValue","src":"409:20:69"},{"id":23431,"name":"minUtilizationRate","nameLocation":"435:18:69","nodeType":"EnumValue","src":"435:18:69"},{"id":23432,"name":"maxUtilizationRate","nameLocation":"459:18:69","nodeType":"EnumValue","src":"459:18:69"},{"id":23433,"name":"internalLoanInterestRate","nameLocation":"483:24:69","nodeType":"EnumValue","src":"483:24:69"}],"name":"Parameter","nameLocation":"393:9:69","nodeType":"EnumDefinition","src":"388:123:69"},{"anonymous":false,"documentation":{"id":23435,"nodeType":"StructuredDocumentation","src":"515:218:69","text":" @dev Event emitted when part of the funds of the eToken are locked as solvency capital.\n @param interestRate The annualized interestRate paid for the capital (wad)\n @param value The amount locked"},"eventSelector":"333478c2835efe2f226b0d334f71bdf18c977621845f20d21fff75321fc8ab27","id":23441,"name":"SCRLocked","nameLocation":"742:9:69","nodeType":"EventDefinition","parameters":{"id":23440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23437,"indexed":false,"mutability":"mutable","name":"interestRate","nameLocation":"760:12:69","nodeType":"VariableDeclaration","scope":23441,"src":"752:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23436,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23439,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"782:5:69","nodeType":"VariableDeclaration","scope":23441,"src":"774:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23438,"name":"uint256","nodeType":"ElementaryTypeName","src":"774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"751:37:69"},"src":"736:53:69"},{"anonymous":false,"documentation":{"id":23442,"nodeType":"StructuredDocumentation","src":"793:235:69","text":" @dev Event emitted when the locked funds are unlocked and no longer used as solvency capital.\n @param interestRate The annualized interestRate that was paid for the capital (wad)\n @param value The amount unlocked"},"eventSelector":"7b9d63ccbb37347ce0fe73e3663c640d22364d8c733839777f1729e59af1967f","id":23448,"name":"SCRUnlocked","nameLocation":"1037:11:69","nodeType":"EventDefinition","parameters":{"id":23447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23444,"indexed":false,"mutability":"mutable","name":"interestRate","nameLocation":"1057:12:69","nodeType":"VariableDeclaration","scope":23448,"src":"1049:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23446,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1079:5:69","nodeType":"VariableDeclaration","scope":23448,"src":"1071:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23445,"name":"uint256","nodeType":"ElementaryTypeName","src":"1071:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1048:37:69"},"src":"1031:55:69"},{"documentation":{"id":23449,"nodeType":"StructuredDocumentation","src":"1090:104:69","text":" @dev Returns the amount of capital that's locked as solvency capital for active policies."},"functionSelector":"6c6f4542","id":23454,"implemented":false,"kind":"function","modifiers":[],"name":"scr","nameLocation":"1206:3:69","nodeType":"FunctionDefinition","parameters":{"id":23450,"nodeType":"ParameterList","parameters":[],"src":"1209:2:69"},"returnParameters":{"id":23453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23454,"src":"1235:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23451,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1234:9:69"},"scope":23549,"src":"1197:47:69","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23455,"nodeType":"StructuredDocumentation","src":"1248:414:69","text":" @dev Locks part of the liquidity of the EToken as solvency capital.\n Requirements:\n - Must be called by a _borrower_ previously added with `addBorrower`.\n - `scrAmount` <= `fundsAvailableToLock()`\n Events:\n - Emits {SCRLocked}\n @param scrAmount The amount to lock\n @param policyInterestRate The annualized interest rate (wad) to be paid for the `scrAmount`"},"functionSelector":"837c83a3","id":23462,"implemented":false,"kind":"function","modifiers":[],"name":"lockScr","nameLocation":"1674:7:69","nodeType":"FunctionDefinition","parameters":{"id":23460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23457,"mutability":"mutable","name":"scrAmount","nameLocation":"1690:9:69","nodeType":"VariableDeclaration","scope":23462,"src":"1682:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1682:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23459,"mutability":"mutable","name":"policyInterestRate","nameLocation":"1709:18:69","nodeType":"VariableDeclaration","scope":23462,"src":"1701:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1701:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1681:47:69"},"returnParameters":{"id":23461,"nodeType":"ParameterList","parameters":[],"src":"1737:0:69"},"scope":23549,"src":"1665:73:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23463,"nodeType":"StructuredDocumentation","src":"1742:492:69","text":" @dev Unlocks solvency capital previously locked with `lockScr`. The capital no longer needed as solvency.\n Requirements:\n - Must be called by a _borrower_ previously added with `addBorrower`.\n - `scrAmount` <= `scr()`\n Events:\n - Emits {SCRUnlocked}\n @param scrAmount The amount to unlock\n @param policyInterestRate The annualized interest rate that was paid for the `scrAmount`, must be the same that was\n sent in `lockScr` call."},"functionSelector":"b1081ccf","id":23472,"implemented":false,"kind":"function","modifiers":[],"name":"unlockScr","nameLocation":"2246:9:69","nodeType":"FunctionDefinition","parameters":{"id":23470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23465,"mutability":"mutable","name":"scrAmount","nameLocation":"2264:9:69","nodeType":"VariableDeclaration","scope":23472,"src":"2256:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23464,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23467,"mutability":"mutable","name":"policyInterestRate","nameLocation":"2283:18:69","nodeType":"VariableDeclaration","scope":23472,"src":"2275:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23466,"name":"uint256","nodeType":"ElementaryTypeName","src":"2275:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23469,"mutability":"mutable","name":"adjustment","nameLocation":"2310:10:69","nodeType":"VariableDeclaration","scope":23472,"src":"2303:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":23468,"name":"int256","nodeType":"ElementaryTypeName","src":"2303:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2255:66:69"},"returnParameters":{"id":23471,"nodeType":"ParameterList","parameters":[],"src":"2330:0:69"},"scope":23549,"src":"2237:94:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23473,"nodeType":"StructuredDocumentation","src":"2335:647:69","text":" @dev Registers a deposit of liquidity in the pool. Called from the PolicyPool, assumes the amount has already been\n transferred. `amount` of eToken are minted and given to the provider in exchange of the liquidity provided.\n Requirements:\n - Must be called by `policyPool()`\n - The amount was transferred\n - `utilizationRate()` after the deposit is >= `minUtilizationRate()`\n Events:\n - Emits {Transfer} with `from` = 0x0 and to = `provider`\n @param provider The address of the liquidity provider\n @param amount The amount deposited.\n @return The actual balance of the provider"},"functionSelector":"47e7ef24","id":23482,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"2994:7:69","nodeType":"FunctionDefinition","parameters":{"id":23478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23475,"mutability":"mutable","name":"provider","nameLocation":"3010:8:69","nodeType":"VariableDeclaration","scope":23482,"src":"3002:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23474,"name":"address","nodeType":"ElementaryTypeName","src":"3002:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23477,"mutability":"mutable","name":"amount","nameLocation":"3028:6:69","nodeType":"VariableDeclaration","scope":23482,"src":"3020:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23476,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3001:34:69"},"returnParameters":{"id":23481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23482,"src":"3054:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23479,"name":"uint256","nodeType":"ElementaryTypeName","src":"3054:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3053:9:69"},"scope":23549,"src":"2985:78:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23483,"nodeType":"StructuredDocumentation","src":"3067:668:69","text":" @dev Withdraws an amount from an eToken. `withdrawn` eTokens are be burned and the user receives the same amount\n in `currency()`. If the asked `amount` can't be withdrawn, it withdraws as much as possible\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - Emits {Transfer} with `from` = `provider` and to = `0x0`\n @param provider The address of the liquidity provider\n @param amount The amount to withdraw. If `amount` == `type(uint256).max`, then tries to withdraw all the balance.\n @return withdrawn The actual amount that withdrawn. `withdrawn <= amount && withdrawn <= balanceOf(provider)`"},"functionSelector":"f3fef3a3","id":23492,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"3747:8:69","nodeType":"FunctionDefinition","parameters":{"id":23488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23485,"mutability":"mutable","name":"provider","nameLocation":"3764:8:69","nodeType":"VariableDeclaration","scope":23492,"src":"3756:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23484,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23487,"mutability":"mutable","name":"amount","nameLocation":"3782:6:69","nodeType":"VariableDeclaration","scope":23492,"src":"3774:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23486,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:34:69"},"returnParameters":{"id":23491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23490,"mutability":"mutable","name":"withdrawn","nameLocation":"3816:9:69","nodeType":"VariableDeclaration","scope":23492,"src":"3808:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23489,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3807:19:69"},"scope":23549,"src":"3738:89:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23493,"nodeType":"StructuredDocumentation","src":"3831:66:69","text":" @dev Returns the total amount that can be withdrawn"},"functionSelector":"0600a865","id":23498,"implemented":false,"kind":"function","modifiers":[],"name":"totalWithdrawable","nameLocation":"3909:17:69","nodeType":"FunctionDefinition","parameters":{"id":23494,"nodeType":"ParameterList","parameters":[],"src":"3926:2:69"},"returnParameters":{"id":23497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23498,"src":"3952:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23495,"name":"uint256","nodeType":"ElementaryTypeName","src":"3952:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3951:9:69"},"scope":23549,"src":"3900:61:69","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23499,"nodeType":"StructuredDocumentation","src":"3965:384:69","text":" @dev Adds an authorized _borrower_ to the eToken. This _borrower_ will be allowed to lock/unlock funds and to take\n loans.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - Emits {InternalBorrowerAdded}\n @param borrower The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken."},"functionSelector":"e3a8e29c","id":23504,"implemented":false,"kind":"function","modifiers":[],"name":"addBorrower","nameLocation":"4361:11:69","nodeType":"FunctionDefinition","parameters":{"id":23502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23501,"mutability":"mutable","name":"borrower","nameLocation":"4381:8:69","nodeType":"VariableDeclaration","scope":23504,"src":"4373:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23500,"name":"address","nodeType":"ElementaryTypeName","src":"4373:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4372:18:69"},"returnParameters":{"id":23503,"nodeType":"ParameterList","parameters":[],"src":"4399:0:69"},"scope":23549,"src":"4352:48:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23505,"nodeType":"StructuredDocumentation","src":"4404:393:69","text":" @dev Removes an authorized _borrower_ to the eToken. The _borrower_ can't no longer lock funds or take loans.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - Emits {InternalBorrowerRemoved} with the defaulted debt\n @param borrower The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken."},"functionSelector":"76c7fc55","id":23510,"implemented":false,"kind":"function","modifiers":[],"name":"removeBorrower","nameLocation":"4809:14:69","nodeType":"FunctionDefinition","parameters":{"id":23508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23507,"mutability":"mutable","name":"borrower","nameLocation":"4832:8:69","nodeType":"VariableDeclaration","scope":23510,"src":"4824:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23506,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4823:18:69"},"returnParameters":{"id":23509,"nodeType":"ParameterList","parameters":[],"src":"4850:0:69"},"scope":23549,"src":"4800:51:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23511,"nodeType":"StructuredDocumentation","src":"4855:672:69","text":" @dev Lends `amount` to the borrower (msg.sender), transferring the money to `receiver`. This reduces the\n `totalSupply()` of the eToken, and stores a debt that will be repaid (hopefully) with `repayLoan`.\n Requirements:\n - Must be called by a _borrower_ previously added with `addBorrower`.\n Events:\n - Emits {InternalLoan}\n - Emits {ERC20-Transfer} transferring `lent` to `receiver`\n @param amount The amount required\n @param receiver The received of the funds lent. This is usually the policyholder if the loan is used for a payout.\n @return Returns the amount that wasn't able to fulfil. `amount - lent`"},"functionSelector":"c3df9dac","id":23520,"implemented":false,"kind":"function","modifiers":[],"name":"internalLoan","nameLocation":"5539:12:69","nodeType":"FunctionDefinition","parameters":{"id":23516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23513,"mutability":"mutable","name":"amount","nameLocation":"5560:6:69","nodeType":"VariableDeclaration","scope":23520,"src":"5552:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23512,"name":"uint256","nodeType":"ElementaryTypeName","src":"5552:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23515,"mutability":"mutable","name":"receiver","nameLocation":"5576:8:69","nodeType":"VariableDeclaration","scope":23520,"src":"5568:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23514,"name":"address","nodeType":"ElementaryTypeName","src":"5568:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5551:34:69"},"returnParameters":{"id":23519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23520,"src":"5604:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5604:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5603:9:69"},"scope":23549,"src":"5530:83:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23521,"nodeType":"StructuredDocumentation","src":"5617:587:69","text":" @dev Repays a loan taken with `internalLoan`.\n Requirements:\n - `msg.sender` approved the spending of `currency()` for at least `amount`\n Events:\n - Emits {InternalLoanRepaid}\n - Emits {ERC20-Transfer} transferring `amount` from `msg.sender` to `this`\n @param amount The amount to repaid, that will be transferred from `msg.sender` balance.\n @param onBehalfOf The address of the borrower that took the loan. Usually `onBehalfOf == msg.sender` but we keep it\n open because in some cases with might need someone else pays the debt."},"functionSelector":"918344d3","id":23528,"implemented":false,"kind":"function","modifiers":[],"name":"repayLoan","nameLocation":"6216:9:69","nodeType":"FunctionDefinition","parameters":{"id":23526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23523,"mutability":"mutable","name":"amount","nameLocation":"6234:6:69","nodeType":"VariableDeclaration","scope":23528,"src":"6226:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23522,"name":"uint256","nodeType":"ElementaryTypeName","src":"6226:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23525,"mutability":"mutable","name":"onBehalfOf","nameLocation":"6250:10:69","nodeType":"VariableDeclaration","scope":23528,"src":"6242:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23524,"name":"address","nodeType":"ElementaryTypeName","src":"6242:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6225:36:69"},"returnParameters":{"id":23527,"nodeType":"ParameterList","parameters":[],"src":"6270:0:69"},"scope":23549,"src":"6207:64:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23529,"nodeType":"StructuredDocumentation","src":"6275:86:69","text":" @dev Returns the updated debt (principal + interest) of the `borrower`."},"functionSelector":"33481fc9","id":23536,"implemented":false,"kind":"function","modifiers":[],"name":"getLoan","nameLocation":"6373:7:69","nodeType":"FunctionDefinition","parameters":{"id":23532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23531,"mutability":"mutable","name":"borrower","nameLocation":"6389:8:69","nodeType":"VariableDeclaration","scope":23536,"src":"6381:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23530,"name":"address","nodeType":"ElementaryTypeName","src":"6381:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6380:18:69"},"returnParameters":{"id":23535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23536,"src":"6422:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23533,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6421:9:69"},"scope":23549,"src":"6364:67:69","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23537,"nodeType":"StructuredDocumentation","src":"6435:83:69","text":" @dev The annualized interest rate at which the `totalSupply()` grows"},"functionSelector":"159ec2df","id":23542,"implemented":false,"kind":"function","modifiers":[],"name":"tokenInterestRate","nameLocation":"6530:17:69","nodeType":"FunctionDefinition","parameters":{"id":23538,"nodeType":"ParameterList","parameters":[],"src":"6547:2:69"},"returnParameters":{"id":23541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23542,"src":"6573:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23539,"name":"uint256","nodeType":"ElementaryTypeName","src":"6573:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6572:9:69"},"scope":23549,"src":"6521:61:69","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23543,"nodeType":"StructuredDocumentation","src":"6586:103:69","text":" @dev The weighted average annualized interest rate paid by the currently locked `scr()`."},"functionSelector":"9d90724d","id":23548,"implemented":false,"kind":"function","modifiers":[],"name":"scrInterestRate","nameLocation":"6701:15:69","nodeType":"FunctionDefinition","parameters":{"id":23544,"nodeType":"ParameterList","parameters":[],"src":"6716:2:69"},"returnParameters":{"id":23547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23548,"src":"6742:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23545,"name":"uint256","nodeType":"ElementaryTypeName","src":"6742:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6741:9:69"},"scope":23549,"src":"6692:59:69","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23550,"src":"265:6488:69","usedErrors":[],"usedEvents":[5348,5357,23441,23448]}],"src":"39:6715:69"},"id":69},"contracts/interfaces/ILPWhitelist.sol":{"ast":{"absolutePath":"contracts/interfaces/ILPWhitelist.sol","exportedSymbols":{"IEToken":[23549],"ILPWhitelist":[23596]},"id":23597,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23551,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:70"},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./IEToken.sol","id":23553,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23597,"sourceUnit":23550,"src":"64:38:70","symbolAliases":[{"foreign":{"id":23552,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"72:7:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ILPWhitelist","contractDependencies":[],"contractKind":"interface","documentation":{"id":23554,"nodeType":"StructuredDocumentation","src":"104:113:70","text":" @title ILPWhitelist - Interface that handles the whitelisting of Liquidity Providers\n @author Ensuro"},"fullyImplemented":false,"id":23596,"linearizedBaseContracts":[23596],"name":"ILPWhitelist","nameLocation":"228:12:70","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":23555,"nodeType":"StructuredDocumentation","src":"245:388:70","text":" @dev Indicates whether or not a liquidity provider can do a deposit in an eToken.\n @param etoken The eToken (see {EToken}) where the provider wants to deposit money.\n @param provider The address of the liquidity provider (user) that wants to deposit\n @param amount The amount of the deposit\n @return true if `provider` deposit is accepted, false if not"},"functionSelector":"37ee20dd","id":23567,"implemented":false,"kind":"function","modifiers":[],"name":"acceptsDeposit","nameLocation":"645:14:70","nodeType":"FunctionDefinition","parameters":{"id":23563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23558,"mutability":"mutable","name":"etoken","nameLocation":"668:6:70","nodeType":"VariableDeclaration","scope":23567,"src":"660:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23557,"nodeType":"UserDefinedTypeName","pathNode":{"id":23556,"name":"IEToken","nameLocations":["660:7:70"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"660:7:70"},"referencedDeclaration":23549,"src":"660:7:70","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":23560,"mutability":"mutable","name":"provider","nameLocation":"684:8:70","nodeType":"VariableDeclaration","scope":23567,"src":"676:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23559,"name":"address","nodeType":"ElementaryTypeName","src":"676:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23562,"mutability":"mutable","name":"amount","nameLocation":"702:6:70","nodeType":"VariableDeclaration","scope":23567,"src":"694:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23561,"name":"uint256","nodeType":"ElementaryTypeName","src":"694:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"659:50:70"},"returnParameters":{"id":23566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23567,"src":"733:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23564,"name":"bool","nodeType":"ElementaryTypeName","src":"733:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"732:6:70"},"scope":23596,"src":"636:103:70","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23568,"nodeType":"StructuredDocumentation","src":"743:473:70","text":" @dev Indicates whether or not the eTokens can be transferred from `providerFrom` to `providerTo`\n @param etoken The eToken (see {EToken}) that the LPs have the intention to transfer.\n @param providerFrom The current owner of the tokens\n @param providerTo The destination of the tokens if the transfer is accepted\n @param amount The amount of tokens to be transferred\n @return true if the transfer operation is accepted, false if not."},"functionSelector":"5fcdca37","id":23582,"implemented":false,"kind":"function","modifiers":[],"name":"acceptsTransfer","nameLocation":"1228:15:70","nodeType":"FunctionDefinition","parameters":{"id":23578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23571,"mutability":"mutable","name":"etoken","nameLocation":"1257:6:70","nodeType":"VariableDeclaration","scope":23582,"src":"1249:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23570,"nodeType":"UserDefinedTypeName","pathNode":{"id":23569,"name":"IEToken","nameLocations":["1249:7:70"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"1249:7:70"},"referencedDeclaration":23549,"src":"1249:7:70","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":23573,"mutability":"mutable","name":"providerFrom","nameLocation":"1277:12:70","nodeType":"VariableDeclaration","scope":23582,"src":"1269:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23572,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23575,"mutability":"mutable","name":"providerTo","nameLocation":"1303:10:70","nodeType":"VariableDeclaration","scope":23582,"src":"1295:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23574,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23577,"mutability":"mutable","name":"amount","nameLocation":"1327:6:70","nodeType":"VariableDeclaration","scope":23582,"src":"1319:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23576,"name":"uint256","nodeType":"ElementaryTypeName","src":"1319:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1243:94:70"},"returnParameters":{"id":23581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23582,"src":"1361:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23579,"name":"bool","nodeType":"ElementaryTypeName","src":"1361:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1360:6:70"},"scope":23596,"src":"1219:148:70","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23583,"nodeType":"StructuredDocumentation","src":"1371:395:70","text":" @dev Indicates whether or not a liquidity provider can withdraw an eToken.\n @param etoken The eToken (see {EToken}) where the provider wants to withdraw money.\n @param provider The address of the liquidity provider (user) that wants to withdraw\n @param amount The amount of the withdrawal\n @return true if `provider` withdraw request is accepted, false if not"},"functionSelector":"9051c763","id":23595,"implemented":false,"kind":"function","modifiers":[],"name":"acceptsWithdrawal","nameLocation":"1778:17:70","nodeType":"FunctionDefinition","parameters":{"id":23591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23586,"mutability":"mutable","name":"etoken","nameLocation":"1804:6:70","nodeType":"VariableDeclaration","scope":23595,"src":"1796:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23585,"nodeType":"UserDefinedTypeName","pathNode":{"id":23584,"name":"IEToken","nameLocations":["1796:7:70"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"1796:7:70"},"referencedDeclaration":23549,"src":"1796:7:70","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":23588,"mutability":"mutable","name":"provider","nameLocation":"1820:8:70","nodeType":"VariableDeclaration","scope":23595,"src":"1812:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23587,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23590,"mutability":"mutable","name":"amount","nameLocation":"1838:6:70","nodeType":"VariableDeclaration","scope":23595,"src":"1830:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23589,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1795:50:70"},"returnParameters":{"id":23594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23595,"src":"1869:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23592,"name":"bool","nodeType":"ElementaryTypeName","src":"1869:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1868:6:70"},"scope":23596,"src":"1769:106:70","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23597,"src":"218:1659:70","usedErrors":[],"usedEvents":[]}],"src":"39:1839:70"},"id":70},"contracts/interfaces/IPolicyHolder.sol":{"ast":{"absolutePath":"contracts/interfaces/IPolicyHolder.sol","exportedSymbols":{"IERC721Receiver":[6612],"IPolicyHolder":[23630]},"id":23631,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23598,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:71"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":23600,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23631,"sourceUnit":6613,"src":"64:89:71","symbolAliases":[{"foreign":{"id":23599,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6612,"src":"72:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23602,"name":"IERC721Receiver","nameLocations":["328:15:71"],"nodeType":"IdentifierPath","referencedDeclaration":6612,"src":"328:15:71"},"id":23603,"nodeType":"InheritanceSpecifier","src":"328:15:71"}],"canonicalName":"IPolicyHolder","contractDependencies":[],"contractKind":"interface","documentation":{"id":23601,"nodeType":"StructuredDocumentation","src":"155:145:71","text":" @title Policy holder interface\n @dev Interface for any contract that wants to be a holder of Ensuro Policies and receive the payouts"},"fullyImplemented":false,"id":23630,"linearizedBaseContracts":[23630,6612],"name":"IPolicyHolder","nameLocation":"311:13:71","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":23604,"nodeType":"StructuredDocumentation","src":"348:512:71","text":" @dev Whenever an Policy is expired or resolved with payout = 0, this function is called\n It should return its Solidity selector to confirm the payout.\n If interface is not implemented by the recipient, it will be ignored and the payout will be successful.\n No mather what's the return value or even if this function reverts, this function will not revert the policy\n expiration.\n The selector can be obtained in Solidity with `IPolicyHolder.onPolicyExpired.selector`."},"functionSelector":"e8e617b7","id":23615,"implemented":false,"kind":"function","modifiers":[],"name":"onPolicyExpired","nameLocation":"872:15:71","nodeType":"FunctionDefinition","parameters":{"id":23611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23606,"mutability":"mutable","name":"operator","nameLocation":"896:8:71","nodeType":"VariableDeclaration","scope":23615,"src":"888:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23605,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23608,"mutability":"mutable","name":"from","nameLocation":"914:4:71","nodeType":"VariableDeclaration","scope":23615,"src":"906:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23607,"name":"address","nodeType":"ElementaryTypeName","src":"906:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23610,"mutability":"mutable","name":"policyId","nameLocation":"928:8:71","nodeType":"VariableDeclaration","scope":23615,"src":"920:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23609,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"887:50:71"},"returnParameters":{"id":23614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23615,"src":"956:6:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":23612,"name":"bytes4","nodeType":"ElementaryTypeName","src":"956:6:71","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"955:8:71"},"scope":23630,"src":"863:101:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23616,"nodeType":"StructuredDocumentation","src":"968:469:71","text":" @dev Whenever an Policy is resolved with payout > 0, this function is called\n It must return its Solidity selector to confirm the payout.\n If interface is not implemented by the recipient, it will be ignored and the payout will be successful.\n If any other value is returned or it reverts, the policy resolution / payout will be reverted.\n The selector can be obtained in Solidity with `IPolicyHolder.onPayoutReceived.selector`."},"functionSelector":"d6281d3e","id":23629,"implemented":false,"kind":"function","modifiers":[],"name":"onPayoutReceived","nameLocation":"1449:16:71","nodeType":"FunctionDefinition","parameters":{"id":23625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23618,"mutability":"mutable","name":"operator","nameLocation":"1474:8:71","nodeType":"VariableDeclaration","scope":23629,"src":"1466:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23617,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23620,"mutability":"mutable","name":"from","nameLocation":"1492:4:71","nodeType":"VariableDeclaration","scope":23629,"src":"1484:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23619,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23622,"mutability":"mutable","name":"policyId","nameLocation":"1506:8:71","nodeType":"VariableDeclaration","scope":23629,"src":"1498:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23621,"name":"uint256","nodeType":"ElementaryTypeName","src":"1498:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23624,"mutability":"mutable","name":"amount","nameLocation":"1524:6:71","nodeType":"VariableDeclaration","scope":23629,"src":"1516:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1516:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1465:66:71"},"returnParameters":{"id":23628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23629,"src":"1550:6:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":23626,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1550:6:71","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1549:8:71"},"scope":23630,"src":"1440:118:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23631,"src":"301:1259:71","usedErrors":[],"usedEvents":[]}],"src":"39:1522:71"},"id":71},"contracts/interfaces/IPolicyHolderV2.sol":{"ast":{"absolutePath":"contracts/interfaces/IPolicyHolderV2.sol","exportedSymbols":{"IPolicyHolder":[23630],"IPolicyHolderV2":[23652]},"id":23653,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23632,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:72"},{"absolutePath":"contracts/interfaces/IPolicyHolder.sol","file":"./IPolicyHolder.sol","id":23634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23653,"sourceUnit":23631,"src":"64:50:72","symbolAliases":[{"foreign":{"id":23633,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"72:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23636,"name":"IPolicyHolder","nameLocations":["511:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":23630,"src":"511:13:72"},"id":23637,"nodeType":"InheritanceSpecifier","src":"511:13:72"}],"canonicalName":"IPolicyHolderV2","contractDependencies":[],"contractKind":"interface","documentation":{"id":23635,"nodeType":"StructuredDocumentation","src":"116:365:72","text":" @title Policy holder interface - V2 of the interface that adds onPolicyReplaced endpoint\n @dev Interface for any contract that wants to be a holder of Ensuro Policies and receive notification of payouts and\n      replacements.\n      Implementors of this interface MUST return true on supportsInterface for both IPolicyHolder and IPolicyHolderV2."},"fullyImplemented":false,"id":23652,"linearizedBaseContracts":[23652,23630,6612],"name":"IPolicyHolderV2","nameLocation":"492:15:72","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":23638,"nodeType":"StructuredDocumentation","src":"529:451:72","text":" @dev Whenever a policy is replaced, this function is called\n It must return its Solidity selector to confirm the payout.\n If interface is not implemented by the recipient, it will be ignored and the replacement will be successful.\n If any other value is returned or it reverts, the policy replacement will be reverted.\n The selector can be obtained in Solidity with `IPolicyHolderV2.onPolicyReplaced.selector`."},"functionSelector":"5ee0c7dd","id":23651,"implemented":false,"kind":"function","modifiers":[],"name":"onPolicyReplaced","nameLocation":"992:16:72","nodeType":"FunctionDefinition","parameters":{"id":23647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23640,"mutability":"mutable","name":"operator","nameLocation":"1022:8:72","nodeType":"VariableDeclaration","scope":23651,"src":"1014:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23639,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23642,"mutability":"mutable","name":"from","nameLocation":"1044:4:72","nodeType":"VariableDeclaration","scope":23651,"src":"1036:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23641,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23644,"mutability":"mutable","name":"oldPolicyId","nameLocation":"1062:11:72","nodeType":"VariableDeclaration","scope":23651,"src":"1054:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23646,"mutability":"mutable","name":"newPolicyId","nameLocation":"1087:11:72","nodeType":"VariableDeclaration","scope":23651,"src":"1079:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23645,"name":"uint256","nodeType":"ElementaryTypeName","src":"1079:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1008:94:72"},"returnParameters":{"id":23650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23651,"src":"1121:6:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":23648,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1121:6:72","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1120:8:72"},"scope":23652,"src":"983:146:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23653,"src":"482:649:72","usedErrors":[],"usedEvents":[]}],"src":"39:1093:72"},"id":72},"contracts/interfaces/IPolicyPool.sol":{"ast":{"absolutePath":"contracts/interfaces/IPolicyPool.sol","exportedSymbols":{"IAccessManager":[23370],"IERC20Metadata":[6066],"IEToken":[23549],"IPolicyPool":[23806],"IRiskModule":[23983],"Policy":[15439]},"id":23807,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23654,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:73"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":23656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23807,"sourceUnit":6067,"src":"64:97:73","symbolAliases":[{"foreign":{"id":23655,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"72:14:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"../Policy.sol","id":23658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23807,"sourceUnit":15440,"src":"162:37:73","symbolAliases":[{"foreign":{"id":23657,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"170:6:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./IEToken.sol","id":23660,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23807,"sourceUnit":23550,"src":"200:38:73","symbolAliases":[{"foreign":{"id":23659,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"208:7:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"./IRiskModule.sol","id":23662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23807,"sourceUnit":23984,"src":"239:46:73","symbolAliases":[{"foreign":{"id":23661,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"247:11:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"./IAccessManager.sol","id":23664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23807,"sourceUnit":23371,"src":"286:52:73","symbolAliases":[{"foreign":{"id":23663,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"294:14:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPolicyPool","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":23806,"linearizedBaseContracts":[23806],"name":"IPolicyPool","nameLocation":"350:11:73","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":23665,"nodeType":"StructuredDocumentation","src":"366:377:73","text":" @dev Event emitted every time a new policy is added to the pool. Contains all the data about the policy that is\n later required for doing operations with the policy like resolution or expiration.\n @param riskModule The risk module that created the policy\n @param policy The {Policy-PolicyData} struct with all the immutable fields of the policy."},"eventSelector":"38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b","id":23673,"name":"NewPolicy","nameLocation":"752:9:73","nodeType":"EventDefinition","parameters":{"id":23672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23668,"indexed":true,"mutability":"mutable","name":"riskModule","nameLocation":"782:10:73","nodeType":"VariableDeclaration","scope":23673,"src":"762:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":23667,"nodeType":"UserDefinedTypeName","pathNode":{"id":23666,"name":"IRiskModule","nameLocations":["762:11:73"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"762:11:73"},"referencedDeclaration":23983,"src":"762:11:73","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":23671,"indexed":false,"mutability":"mutable","name":"policy","nameLocation":"812:6:73","nodeType":"VariableDeclaration","scope":23673,"src":"794:24:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23670,"nodeType":"UserDefinedTypeName","pathNode":{"id":23669,"name":"Policy.PolicyData","nameLocations":["794:6:73","801:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"794:17:73"},"referencedDeclaration":14966,"src":"794:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"761:58:73"},"src":"746:74:73"},{"anonymous":false,"documentation":{"id":23674,"nodeType":"StructuredDocumentation","src":"824:388:73","text":" @dev Event emitted every time a new policy replaces an old Policy Contains all the data about the policy that is\n later required for doing operations with the policy like resolution or expiration.\n @param riskModule The risk module that created the policy\n @param oldPolicyId The id of the replaced policy.\n @param newPolicyId The id of the new policy."},"eventSelector":"4ff4ac703cb703b7ea535d47e65e64b4cabf11b3e2eb41f152dab17971953add","id":23683,"name":"PolicyReplaced","nameLocation":"1221:14:73","nodeType":"EventDefinition","parameters":{"id":23682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23677,"indexed":true,"mutability":"mutable","name":"riskModule","nameLocation":"1256:10:73","nodeType":"VariableDeclaration","scope":23683,"src":"1236:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":23676,"nodeType":"UserDefinedTypeName","pathNode":{"id":23675,"name":"IRiskModule","nameLocations":["1236:11:73"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"1236:11:73"},"referencedDeclaration":23983,"src":"1236:11:73","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":23679,"indexed":true,"mutability":"mutable","name":"oldPolicyId","nameLocation":"1284:11:73","nodeType":"VariableDeclaration","scope":23683,"src":"1268:27:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23678,"name":"uint256","nodeType":"ElementaryTypeName","src":"1268:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23681,"indexed":true,"mutability":"mutable","name":"newPolicyId","nameLocation":"1313:11:73","nodeType":"VariableDeclaration","scope":23683,"src":"1297:27:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23680,"name":"uint256","nodeType":"ElementaryTypeName","src":"1297:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1235:90:73"},"src":"1215:111:73"},{"anonymous":false,"documentation":{"id":23684,"nodeType":"StructuredDocumentation","src":"1330:415:73","text":" @dev Event emitted every time a policy is removed from the pool. If the policy expired, the `payout` is 0,\n otherwise is the amount transferred to the policyholder.\n @param riskModule The risk module where that created the policy initially.\n @param policyId The unique id of the policy\n @param payout The payout that has been paid to the policy holder. 0 when the policy expired."},"eventSelector":"54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e","id":23693,"name":"PolicyResolved","nameLocation":"1754:14:73","nodeType":"EventDefinition","parameters":{"id":23692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23687,"indexed":true,"mutability":"mutable","name":"riskModule","nameLocation":"1789:10:73","nodeType":"VariableDeclaration","scope":23693,"src":"1769:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":23686,"nodeType":"UserDefinedTypeName","pathNode":{"id":23685,"name":"IRiskModule","nameLocations":["1769:11:73"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"1769:11:73"},"referencedDeclaration":23983,"src":"1769:11:73","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":23689,"indexed":true,"mutability":"mutable","name":"policyId","nameLocation":"1817:8:73","nodeType":"VariableDeclaration","scope":23693,"src":"1801:24:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23688,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23691,"indexed":false,"mutability":"mutable","name":"payout","nameLocation":"1835:6:73","nodeType":"VariableDeclaration","scope":23693,"src":"1827:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23690,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1768:74:73"},"src":"1748:95:73"},{"documentation":{"id":23694,"nodeType":"StructuredDocumentation","src":"1847:159:73","text":" @dev Reference to the main currency (ERC20) used in the protocol\n @return The address of the currency (e.g. USDC) token used in the protocol"},"functionSelector":"e5a6b10f","id":23700,"implemented":false,"kind":"function","modifiers":[],"name":"currency","nameLocation":"2018:8:73","nodeType":"FunctionDefinition","parameters":{"id":23695,"nodeType":"ParameterList","parameters":[],"src":"2026:2:73"},"returnParameters":{"id":23699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23700,"src":"2052:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":23697,"nodeType":"UserDefinedTypeName","pathNode":{"id":23696,"name":"IERC20Metadata","nameLocations":["2052:14:73"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"2052:14:73"},"referencedDeclaration":6066,"src":"2052:14:73","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"2051:16:73"},"scope":23806,"src":"2009:59:73","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23701,"nodeType":"StructuredDocumentation","src":"2072:160:73","text":" @dev Reference to the {AccessManager} contract, this contract manages the access controls.\n @return The address of the AccessManager contract"},"functionSelector":"71907f17","id":23707,"implemented":false,"kind":"function","modifiers":[],"name":"access","nameLocation":"2244:6:73","nodeType":"FunctionDefinition","parameters":{"id":23702,"nodeType":"ParameterList","parameters":[],"src":"2250:2:73"},"returnParameters":{"id":23706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23707,"src":"2276:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":23704,"nodeType":"UserDefinedTypeName","pathNode":{"id":23703,"name":"IAccessManager","nameLocations":["2276:14:73"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"2276:14:73"},"referencedDeclaration":23370,"src":"2276:14:73","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"2275:16:73"},"scope":23806,"src":"2235:57:73","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23708,"nodeType":"StructuredDocumentation","src":"2296:114:73","text":" @dev Address of the treasury, that receives protocol fees.\n @return The address of the treasury"},"functionSelector":"61d027b3","id":23713,"implemented":false,"kind":"function","modifiers":[],"name":"treasury","nameLocation":"2422:8:73","nodeType":"FunctionDefinition","parameters":{"id":23709,"nodeType":"ParameterList","parameters":[],"src":"2430:2:73"},"returnParameters":{"id":23712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23713,"src":"2456:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23710,"name":"address","nodeType":"ElementaryTypeName","src":"2456:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2455:9:73"},"scope":23806,"src":"2413:52:73","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23714,"nodeType":"StructuredDocumentation","src":"2469:903:73","text":" @dev Creates a new Policy. Must be called from an active RiskModule\n Requirements:\n - `msg.sender` must be an active RiskModule\n - `caller` approved the spending of `currency()` for at least `policy.premium`\n - `internalId` must be unique within `policy.riskModule` and not used before\n Events:\n - {PolicyPool-NewPolicy}: with all the details about the policy\n - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium\n (see Premium Split in the docs)\n @param policy A policy created with {Policy-initialize}\n @param payer The address that will pay for the premium\n @param policyHolder The address of the policy holder\n @param internalId A unique id within the RiskModule, that will be used to compute the policy id\n @return The policy id, identifying the NFT and the policy"},"functionSelector":"6769a76f","id":23728,"implemented":false,"kind":"function","modifiers":[],"name":"newPolicy","nameLocation":"3384:9:73","nodeType":"FunctionDefinition","parameters":{"id":23724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23717,"mutability":"mutable","name":"policy","nameLocation":"3424:6:73","nodeType":"VariableDeclaration","scope":23728,"src":"3399:31:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23716,"nodeType":"UserDefinedTypeName","pathNode":{"id":23715,"name":"Policy.PolicyData","nameLocations":["3399:6:73","3406:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3399:17:73"},"referencedDeclaration":14966,"src":"3399:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23719,"mutability":"mutable","name":"payer","nameLocation":"3444:5:73","nodeType":"VariableDeclaration","scope":23728,"src":"3436:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23718,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23721,"mutability":"mutable","name":"policyHolder","nameLocation":"3463:12:73","nodeType":"VariableDeclaration","scope":23728,"src":"3455:20:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23720,"name":"address","nodeType":"ElementaryTypeName","src":"3455:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23723,"mutability":"mutable","name":"internalId","nameLocation":"3488:10:73","nodeType":"VariableDeclaration","scope":23728,"src":"3481:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":23722,"name":"uint96","nodeType":"ElementaryTypeName","src":"3481:6:73","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3393:109:73"},"returnParameters":{"id":23727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23728,"src":"3521:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23725,"name":"uint256","nodeType":"ElementaryTypeName","src":"3521:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3520:9:73"},"scope":23806,"src":"3375:155:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23729,"nodeType":"StructuredDocumentation","src":"3534:954:73","text":" @dev Replaces a policy with another. Must be called from an active RiskModule\n Requirements:\n - `msg.sender` must be an active RiskModule\n - `caller` approved the spending of `currency()` for at least `newPolicy_.premium - oldPolicy.premium`\n - `internalId` must be unique within `policy.riskModule` and not used before\n Events:\n - {PolicyPool-PolicyReplaced}: with all the details about the policy\n - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium\n (see Premium Split in the docs)\n @param oldPolicy A policy created previously and not expired\n @param newPolicy_ A policy created with {Policy-initialize}\n @param payer The address that will pay for the premium\n @param internalId A unique id within the RiskModule, that will be used to compute the policy id\n @return The policy id, identifying the NFT and the policy"},"functionSelector":"3ed7c1ae","id":23744,"implemented":false,"kind":"function","modifiers":[],"name":"replacePolicy","nameLocation":"4500:13:73","nodeType":"FunctionDefinition","parameters":{"id":23740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23732,"mutability":"mutable","name":"oldPolicy","nameLocation":"4544:9:73","nodeType":"VariableDeclaration","scope":23744,"src":"4519:34:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23731,"nodeType":"UserDefinedTypeName","pathNode":{"id":23730,"name":"Policy.PolicyData","nameLocations":["4519:6:73","4526:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4519:17:73"},"referencedDeclaration":14966,"src":"4519:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23735,"mutability":"mutable","name":"newPolicy_","nameLocation":"4584:10:73","nodeType":"VariableDeclaration","scope":23744,"src":"4559:35:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23734,"nodeType":"UserDefinedTypeName","pathNode":{"id":23733,"name":"Policy.PolicyData","nameLocations":["4559:6:73","4566:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"4559:17:73"},"referencedDeclaration":14966,"src":"4559:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23737,"mutability":"mutable","name":"payer","nameLocation":"4608:5:73","nodeType":"VariableDeclaration","scope":23744,"src":"4600:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23736,"name":"address","nodeType":"ElementaryTypeName","src":"4600:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23739,"mutability":"mutable","name":"internalId","nameLocation":"4626:10:73","nodeType":"VariableDeclaration","scope":23744,"src":"4619:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":23738,"name":"uint96","nodeType":"ElementaryTypeName","src":"4619:6:73","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"4513:127:73"},"returnParameters":{"id":23743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23744,"src":"4659:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23741,"name":"uint256","nodeType":"ElementaryTypeName","src":"4659:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4658:9:73"},"scope":23806,"src":"4491:177:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23745,"nodeType":"StructuredDocumentation","src":"4672:601:73","text":" @dev Resolves a policy with a payout. Must be called from an active RiskModule\n Requirements:\n - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not\n   resolved before and not expired (if payout > 0).\n - `payout`: must be less than equal to `policy.payout`.\n Events:\n - {PolicyPool-PolicyResolved}: with the payout\n - {ERC20-Transfer}: to the policyholder with the payout\n @param policy A policy previously created with `newPolicy`\n @param payout The amount to paid to the policyholder"},"functionSelector":"7a702b3c","id":23753,"implemented":false,"kind":"function","modifiers":[],"name":"resolvePolicy","nameLocation":"5285:13:73","nodeType":"FunctionDefinition","parameters":{"id":23751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23748,"mutability":"mutable","name":"policy","nameLocation":"5326:6:73","nodeType":"VariableDeclaration","scope":23753,"src":"5299:33:73","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23747,"nodeType":"UserDefinedTypeName","pathNode":{"id":23746,"name":"Policy.PolicyData","nameLocations":["5299:6:73","5306:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"5299:17:73"},"referencedDeclaration":14966,"src":"5299:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23750,"mutability":"mutable","name":"payout","nameLocation":"5342:6:73","nodeType":"VariableDeclaration","scope":23753,"src":"5334:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23749,"name":"uint256","nodeType":"ElementaryTypeName","src":"5334:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5298:51:73"},"returnParameters":{"id":23752,"nodeType":"ParameterList","parameters":[],"src":"5358:0:73"},"scope":23806,"src":"5276:83:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23754,"nodeType":"StructuredDocumentation","src":"5363:576:73","text":" @dev Resolves a policy with a payout that can be either 0 or the maximum payout of the policy\n Requirements:\n - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not\n   resolved before and not expired (if customerWon).\n Events:\n - {PolicyPool-PolicyResolved}: with the payout\n - {ERC20-Transfer}: to the policyholder with the payout\n @param policy A policy previously created with `newPolicy`\n @param customerWon Indicated if the payout is zero or the maximum payout"},"functionSelector":"ffa600e3","id":23762,"implemented":false,"kind":"function","modifiers":[],"name":"resolvePolicyFullPayout","nameLocation":"5951:23:73","nodeType":"FunctionDefinition","parameters":{"id":23760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23757,"mutability":"mutable","name":"policy","nameLocation":"6002:6:73","nodeType":"VariableDeclaration","scope":23762,"src":"5975:33:73","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23756,"nodeType":"UserDefinedTypeName","pathNode":{"id":23755,"name":"Policy.PolicyData","nameLocations":["5975:6:73","5982:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"5975:17:73"},"referencedDeclaration":14966,"src":"5975:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23759,"mutability":"mutable","name":"customerWon","nameLocation":"6015:11:73","nodeType":"VariableDeclaration","scope":23762,"src":"6010:16:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23758,"name":"bool","nodeType":"ElementaryTypeName","src":"6010:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5974:53:73"},"returnParameters":{"id":23761,"nodeType":"ParameterList","parameters":[],"src":"6036:0:73"},"scope":23806,"src":"5942:95:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23763,"nodeType":"StructuredDocumentation","src":"6041:500:73","text":" @dev Resolves a policy with a payout 0, unlocking the solvency. Can be called by anyone, but only after\n `Policy.expiration`.\n Requirements:\n - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not resolved\n before\n - Policy expired: `Policy.expiration` <= block.timestamp\n Events:\n - {PolicyPool-PolicyResolved}: with payout == 0\n @param policy A policy previously created with `newPolicy`"},"functionSelector":"6af6f1ef","id":23769,"implemented":false,"kind":"function","modifiers":[],"name":"expirePolicy","nameLocation":"6553:12:73","nodeType":"FunctionDefinition","parameters":{"id":23767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23766,"mutability":"mutable","name":"policy","nameLocation":"6593:6:73","nodeType":"VariableDeclaration","scope":23769,"src":"6566:33:73","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23765,"nodeType":"UserDefinedTypeName","pathNode":{"id":23764,"name":"Policy.PolicyData","nameLocations":["6566:6:73","6573:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"6566:17:73"},"referencedDeclaration":14966,"src":"6566:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"6565:35:73"},"returnParameters":{"id":23768,"nodeType":"ParameterList","parameters":[],"src":"6609:0:73"},"scope":23806,"src":"6544:66:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23770,"nodeType":"StructuredDocumentation","src":"6614:385:73","text":" @dev Returns whether a policy is active, i.e., it's still in the PolicyPool, not yet resolved or expired.\n      Be aware that a policy might be active but the `block.timestamp` might be after the expiration date, so it\n      can't be triggered with a payout.\n @param policyId The id of the policy queried\n @return Whether the policy is active or not"},"functionSelector":"82afd23b","id":23777,"implemented":false,"kind":"function","modifiers":[],"name":"isActive","nameLocation":"7011:8:73","nodeType":"FunctionDefinition","parameters":{"id":23773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23772,"mutability":"mutable","name":"policyId","nameLocation":"7028:8:73","nodeType":"VariableDeclaration","scope":23777,"src":"7020:16:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23771,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7019:18:73"},"returnParameters":{"id":23776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23777,"src":"7061:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23774,"name":"bool","nodeType":"ElementaryTypeName","src":"7061:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7060:6:73"},"scope":23806,"src":"7002:65:73","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23778,"nodeType":"StructuredDocumentation","src":"7071:210:73","text":" @dev Returns the stored hash of the policy. It's `bytes32(0)` is the policy isn't active.\n @param policyId The id of the policy queried\n @return Returns the hash of a given policy id"},"functionSelector":"792da09e","id":23785,"implemented":false,"kind":"function","modifiers":[],"name":"getPolicyHash","nameLocation":"7293:13:73","nodeType":"FunctionDefinition","parameters":{"id":23781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23780,"mutability":"mutable","name":"policyId","nameLocation":"7315:8:73","nodeType":"VariableDeclaration","scope":23785,"src":"7307:16:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23779,"name":"uint256","nodeType":"ElementaryTypeName","src":"7307:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7306:18:73"},"returnParameters":{"id":23784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23785,"src":"7348:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7348:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7347:9:73"},"scope":23806,"src":"7284:73:73","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23786,"nodeType":"StructuredDocumentation","src":"7361:649:73","text":" @dev Deposits liquidity into an eToken. Forwards the call to {EToken-deposit}, after transferring the funds.\n The user will receive etokens for the same amount deposited.\n Requirements:\n - `msg.sender` approved the spending of `currency()` for at least `amount`\n - `eToken` is an active eToken installed in the pool.\n Events:\n - {EToken-Transfer}: from 0x0 to `msg.sender`, reflects the eTokens minted.\n - {ERC20-Transfer}: from `msg.sender` to address(eToken)\n @param eToken The address of the eToken to which the user wants to provide liquidity\n @param amount The amount to deposit"},"functionSelector":"47e7ef24","id":23794,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"8022:7:73","nodeType":"FunctionDefinition","parameters":{"id":23792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23789,"mutability":"mutable","name":"eToken","nameLocation":"8038:6:73","nodeType":"VariableDeclaration","scope":23794,"src":"8030:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23788,"nodeType":"UserDefinedTypeName","pathNode":{"id":23787,"name":"IEToken","nameLocations":["8030:7:73"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"8030:7:73"},"referencedDeclaration":23549,"src":"8030:7:73","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":23791,"mutability":"mutable","name":"amount","nameLocation":"8054:6:73","nodeType":"VariableDeclaration","scope":23794,"src":"8046:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23790,"name":"uint256","nodeType":"ElementaryTypeName","src":"8046:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8029:32:73"},"returnParameters":{"id":23793,"nodeType":"ParameterList","parameters":[],"src":"8070:0:73"},"scope":23806,"src":"8013:58:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23795,"nodeType":"StructuredDocumentation","src":"8075:858:73","text":" @dev Withdraws an amount from an eToken. Forwards the call to {EToken-withdraw}.\n `amount` of eTokens will be burned and the user will receive the same amount in `currency()`.\n Requirements:\n - `eToken` is an active (or deprecated) eToken installed in the pool.\n Events:\n - {EToken-Transfer}: from `msg.sender` to `0x0`, reflects the eTokens burned.\n - {ERC20-Transfer}: from address(eToken) to `msg.sender`\n @param eToken The address of the eToken from where the user wants to withdraw liquidity\n @param amount The amount to withdraw. If equal to type(uint256).max, means full withdrawal.\n               If the balance is not enough or can't be withdrawn (locked as SCR), it withdraws\n               as much as it can, but doesn't fails.\n @return Returns the actual amount withdrawn."},"functionSelector":"f3fef3a3","id":23805,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"8945:8:73","nodeType":"FunctionDefinition","parameters":{"id":23801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23798,"mutability":"mutable","name":"eToken","nameLocation":"8962:6:73","nodeType":"VariableDeclaration","scope":23805,"src":"8954:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23797,"nodeType":"UserDefinedTypeName","pathNode":{"id":23796,"name":"IEToken","nameLocations":["8954:7:73"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"8954:7:73"},"referencedDeclaration":23549,"src":"8954:7:73","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":23800,"mutability":"mutable","name":"amount","nameLocation":"8978:6:73","nodeType":"VariableDeclaration","scope":23805,"src":"8970:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23799,"name":"uint256","nodeType":"ElementaryTypeName","src":"8970:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8953:32:73"},"returnParameters":{"id":23804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23805,"src":"9004:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23802,"name":"uint256","nodeType":"ElementaryTypeName","src":"9004:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9003:9:73"},"scope":23806,"src":"8936:77:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23807,"src":"340:8675:73","usedErrors":[],"usedEvents":[23673,23683,23693]}],"src":"39:8977:73"},"id":73},"contracts/interfaces/IPolicyPoolComponent.sol":{"ast":{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","exportedSymbols":{"IERC165":[7883],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823]},"id":23824,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23808,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:74"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"./IPolicyPool.sol","id":23810,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23824,"sourceUnit":23807,"src":"64:46:74","symbolAliases":[{"foreign":{"id":23809,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":23812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23824,"sourceUnit":7884,"src":"111:80:74","symbolAliases":[{"foreign":{"id":23811,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"119:7:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23814,"name":"IERC165","nameLocations":["394:7:74"],"nodeType":"IdentifierPath","referencedDeclaration":7883,"src":"394:7:74"},"id":23815,"nodeType":"InheritanceSpecifier","src":"394:7:74"}],"canonicalName":"IPolicyPoolComponent","contractDependencies":[],"contractKind":"interface","documentation":{"id":23813,"nodeType":"StructuredDocumentation","src":"193:166:74","text":" @title IPolicyPoolComponent interface\n @dev Interface for Contracts linked (owned) by a PolicyPool. Useful to avoid cyclic dependencies\n @author Ensuro"},"fullyImplemented":false,"id":23823,"linearizedBaseContracts":[23823,7883],"name":"IPolicyPoolComponent","nameLocation":"370:20:74","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":23816,"nodeType":"StructuredDocumentation","src":"406:106:74","text":" @dev Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs."},"functionSelector":"4d15eb03","id":23822,"implemented":false,"kind":"function","modifiers":[],"name":"policyPool","nameLocation":"524:10:74","nodeType":"FunctionDefinition","parameters":{"id":23817,"nodeType":"ParameterList","parameters":[],"src":"534:2:74"},"returnParameters":{"id":23821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23822,"src":"560:11:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":23819,"nodeType":"UserDefinedTypeName","pathNode":{"id":23818,"name":"IPolicyPool","nameLocations":["560:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"560:11:74"},"referencedDeclaration":23806,"src":"560:11:74","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"559:13:74"},"scope":23823,"src":"515:58:74","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23824,"src":"360:215:74","usedErrors":[],"usedEvents":[]}],"src":"39:537:74"},"id":74},"contracts/interfaces/IPremiumsAccount.sol":{"ast":{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","exportedSymbols":{"IEToken":[23549],"IPremiumsAccount":[23886],"Policy":[15439]},"id":23887,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23825,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:75"},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"./IEToken.sol","id":23827,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23887,"sourceUnit":23550,"src":"64:38:75","symbolAliases":[{"foreign":{"id":23826,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"72:7:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"../Policy.sol","id":23829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23887,"sourceUnit":15440,"src":"103:37:75","symbolAliases":[{"foreign":{"id":23828,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"111:6:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPremiumsAccount","contractDependencies":[],"contractKind":"interface","documentation":{"id":23830,"nodeType":"StructuredDocumentation","src":"142:112:75","text":" @title IPremiumsAccount interface\n @dev Interface for Premiums Account contracts.\n @author Ensuro"},"fullyImplemented":false,"id":23886,"linearizedBaseContracts":[23886],"name":"IPremiumsAccount","nameLocation":"265:16:75","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":23831,"nodeType":"StructuredDocumentation","src":"286:329:75","text":" @dev Adds a policy to the PremiumsAccount. Stores the pure premiums and locks the aditional funds from junior and\n senior eTokens.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - {EToken-SCRLocked}\n @param policy The policy to add (created in this transaction)"},"functionSelector":"e3638ea3","id":23837,"implemented":false,"kind":"function","modifiers":[],"name":"policyCreated","nameLocation":"627:13:75","nodeType":"FunctionDefinition","parameters":{"id":23835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23834,"mutability":"mutable","name":"policy","nameLocation":"666:6:75","nodeType":"VariableDeclaration","scope":23837,"src":"641:31:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23833,"nodeType":"UserDefinedTypeName","pathNode":{"id":23832,"name":"Policy.PolicyData","nameLocations":["641:6:75","648:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"641:17:75"},"referencedDeclaration":14966,"src":"641:17:75","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"640:33:75"},"returnParameters":{"id":23836,"nodeType":"ParameterList","parameters":[],"src":"682:0:75"},"scope":23886,"src":"618:65:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23838,"nodeType":"StructuredDocumentation","src":"687:490:75","text":" @dev Replaces a policy with another in PremiumsAccount. Stores the pure premiums difference and\n re-locks the aditional funds from junior and senior eTokens.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - {EToken-SCRUnlocked}\n - {EToken-SCRLocked}\n @param oldPolicy The policy to replace (created in a previous transaction)\n @param newPolicy The policy that will replace the old one (created in this transaction)"},"functionSelector":"ab83b4be","id":23847,"implemented":false,"kind":"function","modifiers":[],"name":"policyReplaced","nameLocation":"1189:14:75","nodeType":"FunctionDefinition","parameters":{"id":23845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23841,"mutability":"mutable","name":"oldPolicy","nameLocation":"1229:9:75","nodeType":"VariableDeclaration","scope":23847,"src":"1204:34:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23840,"nodeType":"UserDefinedTypeName","pathNode":{"id":23839,"name":"Policy.PolicyData","nameLocations":["1204:6:75","1211:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1204:17:75"},"referencedDeclaration":14966,"src":"1204:17:75","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23844,"mutability":"mutable","name":"newPolicy","nameLocation":"1265:9:75","nodeType":"VariableDeclaration","scope":23847,"src":"1240:34:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23843,"nodeType":"UserDefinedTypeName","pathNode":{"id":23842,"name":"Policy.PolicyData","nameLocations":["1240:6:75","1247:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1240:17:75"},"referencedDeclaration":14966,"src":"1240:17:75","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"1203:72:75"},"returnParameters":{"id":23846,"nodeType":"ParameterList","parameters":[],"src":"1284:0:75"},"scope":23886,"src":"1180:105:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23848,"nodeType":"StructuredDocumentation","src":"1289:557:75","text":" @dev The PremiumsAccount is notified that the policy was resolved and issues the payout to the policyHolder.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - {ERC20-Transfer}: `to == policyHolder`, `amount == payout`\n - {EToken-InternalLoan}: optional, if a loan needs to be taken\n - {EToken-SCRUnlocked}\n @param policyHolder The one that will receive the payout\n @param policy The policy that was resolved\n @param payout The amount that has to be transferred to `policyHolder`"},"functionSelector":"9d8c5ee7","id":23858,"implemented":false,"kind":"function","modifiers":[],"name":"policyResolvedWithPayout","nameLocation":"1858:24:75","nodeType":"FunctionDefinition","parameters":{"id":23856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23850,"mutability":"mutable","name":"policyHolder","nameLocation":"1891:12:75","nodeType":"VariableDeclaration","scope":23858,"src":"1883:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23849,"name":"address","nodeType":"ElementaryTypeName","src":"1883:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23853,"mutability":"mutable","name":"policy","nameLocation":"1930:6:75","nodeType":"VariableDeclaration","scope":23858,"src":"1905:31:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23852,"nodeType":"UserDefinedTypeName","pathNode":{"id":23851,"name":"Policy.PolicyData","nameLocations":["1905:6:75","1912:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1905:17:75"},"referencedDeclaration":14966,"src":"1905:17:75","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":23855,"mutability":"mutable","name":"payout","nameLocation":"1946:6:75","nodeType":"VariableDeclaration","scope":23858,"src":"1938:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23854,"name":"uint256","nodeType":"ElementaryTypeName","src":"1938:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1882:71:75"},"returnParameters":{"id":23857,"nodeType":"ParameterList","parameters":[],"src":"1962:0:75"},"scope":23886,"src":"1849:114:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23859,"nodeType":"StructuredDocumentation","src":"1967:397:75","text":" @dev The PremiumsAccount is notified that the policy has expired, unlocks the SCR and earns the pure premium.\n Requirements:\n - Must be called by `policyPool()`\n Events:\n - {ERC20-Transfer}: `to == policyHolder`, `amount == payout`\n - {EToken-InternalLoanRepaid}: optional, if a loan was taken before\n @param policy The policy that has expired"},"functionSelector":"c7a9c70d","id":23865,"implemented":false,"kind":"function","modifiers":[],"name":"policyExpired","nameLocation":"2376:13:75","nodeType":"FunctionDefinition","parameters":{"id":23863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23862,"mutability":"mutable","name":"policy","nameLocation":"2415:6:75","nodeType":"VariableDeclaration","scope":23865,"src":"2390:31:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":23861,"nodeType":"UserDefinedTypeName","pathNode":{"id":23860,"name":"Policy.PolicyData","nameLocations":["2390:6:75","2397:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2390:17:75"},"referencedDeclaration":14966,"src":"2390:17:75","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"2389:33:75"},"returnParameters":{"id":23864,"nodeType":"ParameterList","parameters":[],"src":"2431:0:75"},"scope":23886,"src":"2367:65:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23866,"nodeType":"StructuredDocumentation","src":"2436:129:75","text":" @dev The senior eToken, the secondary source of solvency, used if the premiums account is exhausted and junior too"},"functionSelector":"7b83037b","id":23872,"implemented":false,"kind":"function","modifiers":[],"name":"seniorEtk","nameLocation":"2577:9:75","nodeType":"FunctionDefinition","parameters":{"id":23867,"nodeType":"ParameterList","parameters":[],"src":"2586:2:75"},"returnParameters":{"id":23871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23872,"src":"2612:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23869,"nodeType":"UserDefinedTypeName","pathNode":{"id":23868,"name":"IEToken","nameLocations":["2612:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"2612:7:75"},"referencedDeclaration":23549,"src":"2612:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"2611:9:75"},"scope":23886,"src":"2568:53:75","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23873,"nodeType":"StructuredDocumentation","src":"2625:113:75","text":" @dev The junior eToken, the primary source of solvency, used if the premiums account is exhausted."},"functionSelector":"536ebbfc","id":23879,"implemented":false,"kind":"function","modifiers":[],"name":"juniorEtk","nameLocation":"2750:9:75","nodeType":"FunctionDefinition","parameters":{"id":23874,"nodeType":"ParameterList","parameters":[],"src":"2759:2:75"},"returnParameters":{"id":23878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23879,"src":"2785:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":23876,"nodeType":"UserDefinedTypeName","pathNode":{"id":23875,"name":"IEToken","nameLocations":["2785:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"2785:7:75"},"referencedDeclaration":23549,"src":"2785:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"}],"src":"2784:9:75"},"scope":23886,"src":"2741:53:75","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23880,"nodeType":"StructuredDocumentation","src":"2798:77:75","text":" @dev The total amount of premiums hold by this PremiumsAccount"},"functionSelector":"26ccbd22","id":23885,"implemented":false,"kind":"function","modifiers":[],"name":"purePremiums","nameLocation":"2887:12:75","nodeType":"FunctionDefinition","parameters":{"id":23881,"nodeType":"ParameterList","parameters":[],"src":"2899:2:75"},"returnParameters":{"id":23884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23885,"src":"2925:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23882,"name":"uint256","nodeType":"ElementaryTypeName","src":"2925:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2924:9:75"},"scope":23886,"src":"2878:56:75","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23887,"src":"255:2681:75","usedErrors":[],"usedEvents":[]}],"src":"39:2898:75"},"id":75},"contracts/interfaces/IRiskModule.sol":{"ast":{"absolutePath":"contracts/interfaces/IRiskModule.sol","exportedSymbols":{"IPremiumsAccount":[23886],"IRiskModule":[23983]},"id":23984,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23888,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:76"},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"./IPremiumsAccount.sol","id":23890,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23984,"sourceUnit":23887,"src":"64:56:76","symbolAliases":[{"foreign":{"id":23889,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"72:16:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IRiskModule","contractDependencies":[],"contractKind":"interface","documentation":{"id":23891,"nodeType":"StructuredDocumentation","src":"122:159:76","text":" @title IRiskModule interface\n @dev Interface for RiskModule smart contracts. Gives access to RiskModule configuration parameters\n @author Ensuro"},"fullyImplemented":false,"id":23983,"linearizedBaseContracts":[23983],"name":"IRiskModule","nameLocation":"292:11:76","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IRiskModule.Parameter","documentation":{"id":23892,"nodeType":"StructuredDocumentation","src":"308:105:76","text":" @dev Enum with the different parameters of the risk module, used in {RiskModule-setParam}."},"id":23903,"members":[{"id":23893,"name":"moc","nameLocation":"437:3:76","nodeType":"EnumValue","src":"437:3:76"},{"id":23894,"name":"jrCollRatio","nameLocation":"446:11:76","nodeType":"EnumValue","src":"446:11:76"},{"id":23895,"name":"collRatio","nameLocation":"463:9:76","nodeType":"EnumValue","src":"463:9:76"},{"id":23896,"name":"ensuroPpFee","nameLocation":"478:11:76","nodeType":"EnumValue","src":"478:11:76"},{"id":23897,"name":"ensuroCocFee","nameLocation":"495:12:76","nodeType":"EnumValue","src":"495:12:76"},{"id":23898,"name":"jrRoc","nameLocation":"513:5:76","nodeType":"EnumValue","src":"513:5:76"},{"id":23899,"name":"srRoc","nameLocation":"524:5:76","nodeType":"EnumValue","src":"524:5:76"},{"id":23900,"name":"maxPayoutPerPolicy","nameLocation":"535:18:76","nodeType":"EnumValue","src":"535:18:76"},{"id":23901,"name":"exposureLimit","nameLocation":"559:13:76","nodeType":"EnumValue","src":"559:13:76"},{"id":23902,"name":"maxDuration","nameLocation":"578:11:76","nodeType":"EnumValue","src":"578:11:76"}],"name":"Parameter","nameLocation":"421:9:76","nodeType":"EnumDefinition","src":"416:177:76"},{"canonicalName":"IRiskModule.Params","documentation":{"id":23904,"nodeType":"StructuredDocumentation","src":"597:144:76","text":" Struct of the parameters of the risk module that are used to calculate the different Policy fields (see\n {Policy-PolicyData}."},"id":23926,"members":[{"constant":false,"id":23907,"mutability":"mutable","name":"moc","nameLocation":"921:3:76","nodeType":"VariableDeclaration","scope":23926,"src":"913:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23906,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23910,"mutability":"mutable","name":"jrCollRatio","nameLocation":"1114:11:76","nodeType":"VariableDeclaration","scope":23926,"src":"1106:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23909,"name":"uint256","nodeType":"ElementaryTypeName","src":"1106:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23913,"mutability":"mutable","name":"collRatio","nameLocation":"1417:9:76","nodeType":"VariableDeclaration","scope":23926,"src":"1409:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23912,"name":"uint256","nodeType":"ElementaryTypeName","src":"1409:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23916,"mutability":"mutable","name":"ensuroPpFee","nameLocation":"1638:11:76","nodeType":"VariableDeclaration","scope":23926,"src":"1630:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23915,"name":"uint256","nodeType":"ElementaryTypeName","src":"1630:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23919,"mutability":"mutable","name":"ensuroCocFee","nameLocation":"1865:12:76","nodeType":"VariableDeclaration","scope":23926,"src":"1857:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23918,"name":"uint256","nodeType":"ElementaryTypeName","src":"1857:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23922,"mutability":"mutable","name":"jrRoc","nameLocation":"2043:5:76","nodeType":"VariableDeclaration","scope":23926,"src":"2035:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2035:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23925,"mutability":"mutable","name":"srRoc","nameLocation":"2214:5:76","nodeType":"VariableDeclaration","scope":23926,"src":"2206:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23924,"name":"uint256","nodeType":"ElementaryTypeName","src":"2206:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Params","nameLocation":"751:6:76","nodeType":"StructDefinition","scope":23983,"src":"744:1480:76","visibility":"public"},{"documentation":{"id":23927,"nodeType":"StructuredDocumentation","src":"2228:71:76","text":" @dev A readable name of this risk module. Never changes."},"functionSelector":"06fdde03","id":23932,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"2311:4:76","nodeType":"FunctionDefinition","parameters":{"id":23928,"nodeType":"ParameterList","parameters":[],"src":"2315:2:76"},"returnParameters":{"id":23931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23932,"src":"2341:13:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23929,"name":"string","nodeType":"ElementaryTypeName","src":"2341:6:76","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2340:15:76"},"scope":23983,"src":"2302:54:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23933,"nodeType":"StructuredDocumentation","src":"2360:82:76","text":" @dev Returns different parameters of the risk module (see {Params})"},"functionSelector":"cff0ab96","id":23939,"implemented":false,"kind":"function","modifiers":[],"name":"params","nameLocation":"2454:6:76","nodeType":"FunctionDefinition","parameters":{"id":23934,"nodeType":"ParameterList","parameters":[],"src":"2460:2:76"},"returnParameters":{"id":23938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23939,"src":"2486:13:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":23936,"nodeType":"UserDefinedTypeName","pathNode":{"id":23935,"name":"Params","nameLocations":["2486:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"2486:6:76"},"referencedDeclaration":23926,"src":"2486:6:76","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"}],"src":"2485:15:76"},"scope":23983,"src":"2445:56:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23940,"nodeType":"StructuredDocumentation","src":"2505:195:76","text":" @dev Returns the maximum duration (in hours) of the policies of this risk module.\n      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`"},"functionSelector":"6db5c8fd","id":23945,"implemented":false,"kind":"function","modifiers":[],"name":"maxDuration","nameLocation":"2712:11:76","nodeType":"FunctionDefinition","parameters":{"id":23941,"nodeType":"ParameterList","parameters":[],"src":"2723:2:76"},"returnParameters":{"id":23944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23945,"src":"2749:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23942,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2748:9:76"},"scope":23983,"src":"2703:55:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23946,"nodeType":"StructuredDocumentation","src":"2762:73:76","text":" @dev Returns the maximum payout accepted for new policies."},"functionSelector":"cfd4c606","id":23951,"implemented":false,"kind":"function","modifiers":[],"name":"maxPayoutPerPolicy","nameLocation":"2847:18:76","nodeType":"FunctionDefinition","parameters":{"id":23947,"nodeType":"ParameterList","parameters":[],"src":"2865:2:76"},"returnParameters":{"id":23950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23951,"src":"2891:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23948,"name":"uint256","nodeType":"ElementaryTypeName","src":"2891:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2890:9:76"},"scope":23983,"src":"2838:62:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23952,"nodeType":"StructuredDocumentation","src":"2904:183:76","text":" @dev Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible\n amount of money that's exposed for this risk module."},"functionSelector":"7ff8bf25","id":23957,"implemented":false,"kind":"function","modifiers":[],"name":"activeExposure","nameLocation":"3099:14:76","nodeType":"FunctionDefinition","parameters":{"id":23953,"nodeType":"ParameterList","parameters":[],"src":"3113:2:76"},"returnParameters":{"id":23956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23957,"src":"3139:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23954,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3138:9:76"},"scope":23983,"src":"3090:58:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23958,"nodeType":"StructuredDocumentation","src":"3152:168:76","text":" @dev Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module.\n `activeExposure() <= exposureLimit()` always"},"functionSelector":"85272a6e","id":23963,"implemented":false,"kind":"function","modifiers":[],"name":"exposureLimit","nameLocation":"3332:13:76","nodeType":"FunctionDefinition","parameters":{"id":23959,"nodeType":"ParameterList","parameters":[],"src":"3345:2:76"},"returnParameters":{"id":23962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23963,"src":"3371:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23960,"name":"uint256","nodeType":"ElementaryTypeName","src":"3371:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3370:9:76"},"scope":23983,"src":"3323:57:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23964,"nodeType":"StructuredDocumentation","src":"3384:90:76","text":" @dev Returns the address of the partner that receives the partnerCommission"},"functionSelector":"521eb273","id":23969,"implemented":false,"kind":"function","modifiers":[],"name":"wallet","nameLocation":"3486:6:76","nodeType":"FunctionDefinition","parameters":{"id":23965,"nodeType":"ParameterList","parameters":[],"src":"3492:2:76"},"returnParameters":{"id":23968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23969,"src":"3518:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23966,"name":"address","nodeType":"ElementaryTypeName","src":"3518:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3517:9:76"},"scope":23983,"src":"3477:50:76","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":23970,"nodeType":"StructuredDocumentation","src":"3531:219:76","text":" @dev Called when a policy expires or is resolved to update the exposure.\n Requirements:\n - Must be called by `policyPool()`\n @param payout The exposure (maximum payout) of the policy"},"functionSelector":"6a448ef1","id":23975,"implemented":false,"kind":"function","modifiers":[],"name":"releaseExposure","nameLocation":"3762:15:76","nodeType":"FunctionDefinition","parameters":{"id":23973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23972,"mutability":"mutable","name":"payout","nameLocation":"3786:6:76","nodeType":"VariableDeclaration","scope":23975,"src":"3778:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23971,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3777:16:76"},"returnParameters":{"id":23974,"nodeType":"ParameterList","parameters":[],"src":"3802:0:76"},"scope":23983,"src":"3753:50:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":23976,"nodeType":"StructuredDocumentation","src":"3807:118:76","text":" @dev Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes."},"functionSelector":"73a952e8","id":23982,"implemented":false,"kind":"function","modifiers":[],"name":"premiumsAccount","nameLocation":"3937:15:76","nodeType":"FunctionDefinition","parameters":{"id":23977,"nodeType":"ParameterList","parameters":[],"src":"3952:2:76"},"returnParameters":{"id":23981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23982,"src":"3978:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":23979,"nodeType":"UserDefinedTypeName","pathNode":{"id":23978,"name":"IPremiumsAccount","nameLocations":["3978:16:76"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"3978:16:76"},"referencedDeclaration":23886,"src":"3978:16:76","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"3977:18:76"},"scope":23983,"src":"3928:68:76","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":23984,"src":"282:3716:76","usedErrors":[],"usedEvents":[]}],"src":"39:3960:76"},"id":76},"contracts/migration/LPManualWhitelistV20.sol":{"ast":{"absolutePath":"contracts/migration/LPManualWhitelistV20.sol","exportedSymbols":{"IEToken":[23549],"ILPWhitelist":[23596],"IPolicyPool":[23806],"LPManualWhitelistV20":[24129],"PolicyPoolComponent":[18100]},"id":24130,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23985,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:77"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":23987,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24130,"sourceUnit":23807,"src":"64:58:77","symbolAliases":[{"foreign":{"id":23986,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/PolicyPoolComponent.sol","file":"../PolicyPoolComponent.sol","id":23989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24130,"sourceUnit":18101,"src":"123:63:77","symbolAliases":[{"foreign":{"id":23988,"name":"PolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"131:19:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ILPWhitelist.sol","file":"../interfaces/ILPWhitelist.sol","id":23991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24130,"sourceUnit":23597,"src":"187:60:77","symbolAliases":[{"foreign":{"id":23990,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"195:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"../interfaces/IEToken.sol","id":23993,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24130,"sourceUnit":23550,"src":"248:50:77","symbolAliases":[{"foreign":{"id":23992,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"256:7:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":23995,"name":"ILPWhitelist","nameLocations":["570:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":23596,"src":"570:12:77"},"id":23996,"nodeType":"InheritanceSpecifier","src":"570:12:77"},{"baseName":{"id":23997,"name":"PolicyPoolComponent","nameLocations":["584:19:77"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"584:19:77"},"id":23998,"nodeType":"InheritanceSpecifier","src":"584:19:77"}],"canonicalName":"LPManualWhitelistV20","contractDependencies":[],"contractKind":"contract","documentation":{"id":23994,"nodeType":"StructuredDocumentation","src":"300:227:77","text":" @title Manual Whitelisting contract - V2.0\n @dev LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":false,"id":24129,"linearizedBaseContracts":[24129,18100,23823,7883,1209,2704,1081,765,430,440,944,23596],"name":"LPManualWhitelistV20","nameLocation":"546:20:77","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"aad4148c","id":24003,"mutability":"constant","name":"LP_WHITELIST_ROLE","nameLocation":"632:17:77","nodeType":"VariableDeclaration","scope":24129,"src":"608:74:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"608:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4c505f57484954454c4953545f524f4c45","id":24001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"662:19:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_b494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f3235","typeString":"literal_string \"LP_WHITELIST_ROLE\""},"value":"LP_WHITELIST_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f3235","typeString":"literal_string \"LP_WHITELIST_ROLE\""}],"id":24000,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"652:9:77","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":24002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"652:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":24007,"mutability":"mutable","name":"_whitelisted","nameLocation":"720:12:77","nodeType":"VariableDeclaration","scope":24129,"src":"687:45:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":24006,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":24004,"name":"address","nodeType":"ElementaryTypeName","src":"695:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"687:24:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":24005,"name":"bool","nodeType":"ElementaryTypeName","src":"706:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f","id":24013,"name":"LPWhitelisted","nameLocation":"743:13:77","nodeType":"EventDefinition","parameters":{"id":24012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24009,"indexed":false,"mutability":"mutable","name":"provider","nameLocation":"765:8:77","nodeType":"VariableDeclaration","scope":24013,"src":"757:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24008,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24011,"indexed":false,"mutability":"mutable","name":"whitelisted","nameLocation":"780:11:77","nodeType":"VariableDeclaration","scope":24013,"src":"775:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24010,"name":"bool","nodeType":"ElementaryTypeName","src":"775:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"756:36:77"},"src":"737:56:77"},{"body":{"id":24023,"nodeType":"Block","src":"965:2:77","statements":[]},"documentation":{"id":24014,"nodeType":"StructuredDocumentation","src":"797:48:77","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":24024,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":24020,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24017,"src":"952:11:77","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":24021,"kind":"baseConstructorSpecifier","modifierName":{"id":24019,"name":"PolicyPoolComponent","nameLocations":["932:19:77"],"nodeType":"IdentifierPath","referencedDeclaration":18100,"src":"932:19:77"},"nodeType":"ModifierInvocation","src":"932:32:77"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24017,"mutability":"mutable","name":"policyPool_","nameLocation":"919:11:77","nodeType":"VariableDeclaration","scope":24024,"src":"907:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":24016,"nodeType":"UserDefinedTypeName","pathNode":{"id":24015,"name":"IPolicyPool","nameLocations":["907:11:77"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"907:11:77"},"referencedDeclaration":23806,"src":"907:11:77","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"906:25:77"},"returnParameters":{"id":24022,"nodeType":"ParameterList","parameters":[],"src":"965:0:77"},"scope":24129,"src":"895:72:77","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24033,"nodeType":"Block","src":"1069:39:77","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24030,"name":"__PolicyPoolComponent_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17875,"src":"1075:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24032,"nodeType":"ExpressionStatement","src":"1075:28:77"}]},"documentation":{"id":24025,"nodeType":"StructuredDocumentation","src":"971:54:77","text":" @dev Initializes the Whitelist contract"},"functionSelector":"8129fc1c","id":24034,"implemented":true,"kind":"function","modifiers":[{"id":24028,"kind":"modifierInvocation","modifierName":{"id":24027,"name":"initializer","nameLocations":["1057:11:77"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"1057:11:77"},"nodeType":"ModifierInvocation","src":"1057:11:77"}],"name":"initialize","nameLocation":"1037:10:77","nodeType":"FunctionDefinition","parameters":{"id":24026,"nodeType":"ParameterList","parameters":[],"src":"1047:2:77"},"returnParameters":{"id":24029,"nodeType":"ParameterList","parameters":[],"src":"1069:0:77"},"scope":24129,"src":"1028:80:77","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":24062,"nodeType":"Block","src":"1220:153:77","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24044,"name":"_whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24007,"src":"1230:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24046,"indexExpression":{"id":24045,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24036,"src":"1243:8:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1230:22:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":24047,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"1256:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1230:37:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24061,"nodeType":"IfStatement","src":"1226:143:77","trueBody":{"id":24060,"nodeType":"Block","src":"1269:100:77","statements":[{"expression":{"id":24053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24049,"name":"_whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24007,"src":"1277:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24051,"indexExpression":{"id":24050,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24036,"src":"1290:8:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1277:22:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24052,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"1302:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1277:36:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24054,"nodeType":"ExpressionStatement","src":"1277:36:77"},{"eventCall":{"arguments":[{"id":24056,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24036,"src":"1340:8:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24057,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24038,"src":"1350:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":24055,"name":"LPWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24013,"src":"1326:13:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":24058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24059,"nodeType":"EmitStatement","src":"1321:41:77"}]}}]},"functionSelector":"b9a45aac","id":24063,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":24041,"name":"LP_WHITELIST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24003,"src":"1201:17:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":24042,"kind":"modifierInvocation","modifierName":{"id":24040,"name":"onlyComponentRole","nameLocations":["1183:17:77"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"1183:17:77"},"nodeType":"ModifierInvocation","src":"1183:36:77"}],"name":"whitelistAddress","nameLocation":"1121:16:77","nodeType":"FunctionDefinition","parameters":{"id":24039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24036,"mutability":"mutable","name":"provider","nameLocation":"1146:8:77","nodeType":"VariableDeclaration","scope":24063,"src":"1138:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24035,"name":"address","nodeType":"ElementaryTypeName","src":"1138:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24038,"mutability":"mutable","name":"whitelisted","nameLocation":"1161:11:77","nodeType":"VariableDeclaration","scope":24063,"src":"1156:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24037,"name":"bool","nodeType":"ElementaryTypeName","src":"1156:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1137:36:77"},"returnParameters":{"id":24043,"nodeType":"ParameterList","parameters":[],"src":"1220:0:77"},"scope":24129,"src":"1112:261:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17931],"body":{"id":24084,"nodeType":"Block","src":"1523:103:77","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":24074,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24066,"src":"1560:11:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":24072,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1536:5:77","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LPManualWhitelistV20_$24129_$","typeString":"type(contract super LPManualWhitelistV20)"}},"id":24073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:17:77","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":17931,"src":"1536:23:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":24075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1536:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":24081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24076,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24066,"src":"1576:11:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":24078,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"1596:12:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}],"id":24077,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1591:4:77","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:18:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ILPWhitelist_$23596","typeString":"type(contract ILPWhitelist)"}},"id":24080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1610:11:77","memberName":"interfaceId","nodeType":"MemberAccess","src":"1591:30:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1576:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1536:85:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24071,"id":24083,"nodeType":"Return","src":"1529:92:77"}]},"documentation":{"id":24064,"nodeType":"StructuredDocumentation","src":"1377:52:77","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":24085,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1441:17:77","nodeType":"FunctionDefinition","overrides":{"id":24068,"nodeType":"OverrideSpecifier","overrides":[],"src":"1499:8:77"},"parameters":{"id":24067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24066,"mutability":"mutable","name":"interfaceId","nameLocation":"1466:11:77","nodeType":"VariableDeclaration","scope":24085,"src":"1459:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24065,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1459:6:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1458:20:77"},"returnParameters":{"id":24071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24085,"src":"1517:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24069,"name":"bool","nodeType":"ElementaryTypeName","src":"1517:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1516:6:77"},"scope":24129,"src":"1432:194:77","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[23567],"body":{"id":24102,"nodeType":"Block","src":"1728:40:77","statements":[{"expression":{"baseExpression":{"id":24098,"name":"_whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24007,"src":"1741:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24100,"indexExpression":{"id":24099,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24090,"src":"1754:8:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1741:22:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24097,"id":24101,"nodeType":"Return","src":"1734:29:77"}]},"functionSelector":"37ee20dd","id":24103,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsDeposit","nameLocation":"1639:14:77","nodeType":"FunctionDefinition","overrides":{"id":24094,"nodeType":"OverrideSpecifier","overrides":[],"src":"1704:8:77"},"parameters":{"id":24093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24103,"src":"1654:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":24087,"nodeType":"UserDefinedTypeName","pathNode":{"id":24086,"name":"IEToken","nameLocations":["1654:7:77"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"1654:7:77"},"referencedDeclaration":23549,"src":"1654:7:77","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":24090,"mutability":"mutable","name":"provider","nameLocation":"1671:8:77","nodeType":"VariableDeclaration","scope":24103,"src":"1663:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24089,"name":"address","nodeType":"ElementaryTypeName","src":"1663:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24103,"src":"1681:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24091,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1653:36:77"},"returnParameters":{"id":24097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24103,"src":"1722:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24095,"name":"bool","nodeType":"ElementaryTypeName","src":"1722:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1721:6:77"},"scope":24129,"src":"1630:138:77","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23582],"body":{"id":24122,"nodeType":"Block","src":"1882:42:77","statements":[{"expression":{"baseExpression":{"id":24118,"name":"_whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24007,"src":"1895:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":24120,"indexExpression":{"id":24119,"name":"providerTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24110,"src":"1908:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1895:24:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24117,"id":24121,"nodeType":"Return","src":"1888:31:77"}]},"functionSelector":"5fcdca37","id":24123,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsTransfer","nameLocation":"1781:15:77","nodeType":"FunctionDefinition","overrides":{"id":24114,"nodeType":"OverrideSpecifier","overrides":[],"src":"1858:8:77"},"parameters":{"id":24113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24123,"src":"1797:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":24105,"nodeType":"UserDefinedTypeName","pathNode":{"id":24104,"name":"IEToken","nameLocations":["1797:7:77"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"1797:7:77"},"referencedDeclaration":23549,"src":"1797:7:77","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":24108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24123,"src":"1806:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24107,"name":"address","nodeType":"ElementaryTypeName","src":"1806:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24110,"mutability":"mutable","name":"providerTo","nameLocation":"1823:10:77","nodeType":"VariableDeclaration","scope":24123,"src":"1815:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24109,"name":"address","nodeType":"ElementaryTypeName","src":"1815:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24123,"src":"1835:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24111,"name":"uint256","nodeType":"ElementaryTypeName","src":"1835:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1796:47:77"},"returnParameters":{"id":24117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24123,"src":"1876:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24115,"name":"bool","nodeType":"ElementaryTypeName","src":"1876:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1875:6:77"},"scope":24129,"src":"1772:152:77","stateMutability":"view","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":24124,"nodeType":"StructuredDocumentation","src":"1928:246:77","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":24128,"mutability":"mutable","name":"__gap","nameLocation":"2197:5:77","nodeType":"VariableDeclaration","scope":24129,"src":"2177:25:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":24125,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24127,"length":{"hexValue":"3439","id":24126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:2:77","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2177:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":24130,"src":"528:1677:77","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,17740,17747,24013]}],"src":"39:2167:77"},"id":77},"contracts/migration/LPManualWhitelistV20Upgraded.sol":{"ast":{"absolutePath":"contracts/migration/LPManualWhitelistV20Upgraded.sol","exportedSymbols":{"IEToken":[23549],"IPolicyPool":[23806],"LPManualWhitelistV20":[24129],"LPManualWhitelistV20Upgraded":[24172]},"id":24173,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24131,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:78"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":24133,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24173,"sourceUnit":23807,"src":"64:58:78","symbolAliases":[{"foreign":{"id":24132,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"../interfaces/IEToken.sol","id":24135,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24173,"sourceUnit":23550,"src":"123:50:78","symbolAliases":[{"foreign":{"id":24134,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"131:7:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/migration/LPManualWhitelistV20.sol","file":"./LPManualWhitelistV20.sol","id":24137,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24173,"sourceUnit":24130,"src":"174:64:78","symbolAliases":[{"foreign":{"id":24136,"name":"LPManualWhitelistV20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24129,"src":"182:20:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24139,"name":"LPManualWhitelistV20","nameLocations":["590:20:78"],"nodeType":"IdentifierPath","referencedDeclaration":24129,"src":"590:20:78"},"id":24140,"nodeType":"InheritanceSpecifier","src":"590:20:78"}],"canonicalName":"LPManualWhitelistV20Upgraded","contractDependencies":[],"contractKind":"contract","documentation":{"id":24138,"nodeType":"StructuredDocumentation","src":"240:308:78","text":" @title Manual Whitelisting contract - Migration from 2.0 to 2.1\n @dev Contract with the same storage as the LPManualWhitelist 2.0 but that complies with the new interface\n      useful for update in place of the current whitelist\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":24172,"linearizedBaseContracts":[24172,24129,18100,23823,7883,1209,2704,1081,765,430,440,944,23596],"name":"LPManualWhitelistV20Upgraded","nameLocation":"558:28:78","nodeType":"ContractDefinition","nodes":[{"body":{"id":24149,"nodeType":"Block","src":"686:2:78","statements":[]},"id":24150,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":24146,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24143,"src":"673:11:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"id":24147,"kind":"baseConstructorSpecifier","modifierName":{"id":24145,"name":"LPManualWhitelistV20","nameLocations":["652:20:78"],"nodeType":"IdentifierPath","referencedDeclaration":24129,"src":"652:20:78"},"nodeType":"ModifierInvocation","src":"652:33:78"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24143,"mutability":"mutable","name":"policyPool_","nameLocation":"639:11:78","nodeType":"VariableDeclaration","scope":24150,"src":"627:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":24142,"nodeType":"UserDefinedTypeName","pathNode":{"id":24141,"name":"IPolicyPool","nameLocations":["627:11:78"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"627:11:78"},"referencedDeclaration":23806,"src":"627:11:78","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"626:25:78"},"returnParameters":{"id":24148,"nodeType":"ParameterList","parameters":[],"src":"686:0:78"},"scope":24172,"src":"615:73:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[23595],"body":{"id":24170,"nodeType":"Block","src":"804:60:78","statements":[{"expression":{"arguments":[{"id":24165,"name":"etk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24153,"src":"837:3:78","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},{"id":24166,"name":"provider","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24155,"src":"842:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24167,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24157,"src":"852:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24163,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"817:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_LPManualWhitelistV20Upgraded_$24172","typeString":"contract LPManualWhitelistV20Upgraded"}},"id":24164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"822:14:78","memberName":"acceptsDeposit","nodeType":"MemberAccess","referencedDeclaration":24103,"src":"817:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IEToken_$23549_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IEToken,address,uint256) view external returns (bool)"}},"id":24168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:42:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24162,"id":24169,"nodeType":"Return","src":"810:49:78"}]},"functionSelector":"9051c763","id":24171,"implemented":true,"kind":"function","modifiers":[],"name":"acceptsWithdrawal","nameLocation":"701:17:78","nodeType":"FunctionDefinition","overrides":{"id":24159,"nodeType":"OverrideSpecifier","overrides":[],"src":"780:8:78"},"parameters":{"id":24158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24153,"mutability":"mutable","name":"etk","nameLocation":"727:3:78","nodeType":"VariableDeclaration","scope":24171,"src":"719:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":24152,"nodeType":"UserDefinedTypeName","pathNode":{"id":24151,"name":"IEToken","nameLocations":["719:7:78"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"719:7:78"},"referencedDeclaration":23549,"src":"719:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":24155,"mutability":"mutable","name":"provider","nameLocation":"740:8:78","nodeType":"VariableDeclaration","scope":24171,"src":"732:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24154,"name":"address","nodeType":"ElementaryTypeName","src":"732:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24157,"mutability":"mutable","name":"amount","nameLocation":"758:6:78","nodeType":"VariableDeclaration","scope":24171,"src":"750:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24156,"name":"uint256","nodeType":"ElementaryTypeName","src":"750:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"718:47:78"},"returnParameters":{"id":24162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24171,"src":"798:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24160,"name":"bool","nodeType":"ElementaryTypeName","src":"798:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"797:6:78"},"scope":24172,"src":"692:172:78","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":24173,"src":"549:317:78","usedErrors":[17749,17751,17753],"usedEvents":[417,424,429,790,1096,1101,17740,17747,24013]}],"src":"39:828:78"},"id":78},"contracts/mocks/FixedRateVault.sol":{"ast":{"absolutePath":"contracts/mocks/FixedRateVault.sol","exportedSymbols":{"ERC20":[5336],"ERC4626":[6041],"FixedRateVault":[24404],"IERC20Metadata":[6066],"IMintableERC20":[24471],"TimeScaled":[22863]},"id":24405,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24174,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:79"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":24176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24405,"sourceUnit":5337,"src":"63:68:79","symbolAliases":[{"foreign":{"id":24175,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"71:5:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol","id":24178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24405,"sourceUnit":6042,"src":"132:83:79","symbolAliases":[{"foreign":{"id":24177,"name":"ERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"140:7:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":24180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24405,"sourceUnit":6067,"src":"216:97:79","symbolAliases":[{"foreign":{"id":24179,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"224:14:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/mocks/IMintableERC20.sol","file":"./IMintableERC20.sol","id":24182,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24405,"sourceUnit":24472,"src":"314:52:79","symbolAliases":[{"foreign":{"id":24181,"name":"IMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24471,"src":"322:14:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/TimeScaled.sol","file":"../TimeScaled.sol","id":24184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24405,"sourceUnit":22864,"src":"367:45:79","symbolAliases":[{"foreign":{"id":24183,"name":"TimeScaled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22863,"src":"375:10:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24185,"name":"ERC4626","nameLocations":["441:7:79"],"nodeType":"IdentifierPath","referencedDeclaration":6041,"src":"441:7:79"},"id":24186,"nodeType":"InheritanceSpecifier","src":"441:7:79"}],"canonicalName":"FixedRateVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":24404,"linearizedBaseContracts":[24404,6041,4333,5336,6066,5414,6972],"name":"FixedRateVault","nameLocation":"423:14:79","nodeType":"ContractDefinition","nodes":[{"global":false,"id":24190,"libraryName":{"id":24187,"name":"TimeScaled","nameLocations":["459:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":22863,"src":"459:10:79"},"nodeType":"UsingForDirective","src":"453:45:79","typeName":{"id":24189,"nodeType":"UserDefinedTypeName","pathNode":{"id":24188,"name":"TimeScaled.ScaledAmount","nameLocations":["474:10:79","485:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"474:23:79"},"referencedDeclaration":22464,"src":"474:23:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}}},{"constant":false,"id":24192,"mutability":"mutable","name":"_interestRate","nameLocation":"519:13:79","nodeType":"VariableDeclaration","scope":24404,"src":"502:30:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24191,"name":"uint256","nodeType":"ElementaryTypeName","src":"502:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24195,"mutability":"mutable","name":"_totalAssets","nameLocation":"569:12:79","nodeType":"VariableDeclaration","scope":24404,"src":"536:45:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount"},"typeName":{"id":24194,"nodeType":"UserDefinedTypeName","pathNode":{"id":24193,"name":"TimeScaled.ScaledAmount","nameLocations":["536:10:79","547:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":22464,"src":"536:23:79"},"referencedDeclaration":22464,"src":"536:23:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage_ptr","typeString":"struct TimeScaled.ScaledAmount"}},"visibility":"internal"},{"constant":false,"id":24197,"mutability":"mutable","name":"_broken","nameLocation":"599:7:79","nodeType":"VariableDeclaration","scope":24404,"src":"585:21:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24196,"name":"bool","nodeType":"ElementaryTypeName","src":"585:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"body":{"id":24225,"nodeType":"Block","src":"771:65:79","statements":[{"expression":{"id":24218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24216,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"777:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24217,"name":"interestRate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24206,"src":"793:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"777:29:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24219,"nodeType":"ExpressionStatement","src":"777:29:79"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24220,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"812:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:4:79","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":22635,"src":"812:17:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$returns$__$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer)"}},"id":24223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"812:19:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24224,"nodeType":"ExpressionStatement","src":"812:19:79"}]},"id":24226,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":24209,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24199,"src":"739:5:79","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24210,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24201,"src":"746:7:79","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":24211,"kind":"baseConstructorSpecifier","modifierName":{"id":24208,"name":"ERC20","nameLocations":["733:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":5336,"src":"733:5:79"},"nodeType":"ModifierInvocation","src":"733:21:79"},{"arguments":[{"id":24213,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24204,"src":"763:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}}],"id":24214,"kind":"baseConstructorSpecifier","modifierName":{"id":24212,"name":"ERC4626","nameLocations":["755:7:79"],"nodeType":"IdentifierPath","referencedDeclaration":6041,"src":"755:7:79"},"nodeType":"ModifierInvocation","src":"755:15:79"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24199,"mutability":"mutable","name":"name_","nameLocation":"642:5:79","nodeType":"VariableDeclaration","scope":24226,"src":"628:19:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24198,"name":"string","nodeType":"ElementaryTypeName","src":"628:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24201,"mutability":"mutable","name":"symbol_","nameLocation":"667:7:79","nodeType":"VariableDeclaration","scope":24226,"src":"653:21:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24200,"name":"string","nodeType":"ElementaryTypeName","src":"653:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24204,"mutability":"mutable","name":"asset_","nameLocation":"695:6:79","nodeType":"VariableDeclaration","scope":24226,"src":"680:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":24203,"nodeType":"UserDefinedTypeName","pathNode":{"id":24202,"name":"IERC20Metadata","nameLocations":["680:14:79"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"680:14:79"},"referencedDeclaration":6066,"src":"680:14:79","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":24206,"mutability":"mutable","name":"interestRate_","nameLocation":"715:13:79","nodeType":"VariableDeclaration","scope":24226,"src":"707:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24205,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"622:110:79"},"returnParameters":{"id":24215,"nodeType":"ParameterList","parameters":[],"src":"771:0:79"},"scope":24404,"src":"611:225:79","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5571],"body":{"id":24244,"nodeType":"Block","src":"952:103:79","statements":[{"expression":{"arguments":[{"id":24235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"966:8:79","subExpression":{"id":24234,"name":"_broken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24197,"src":"967:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5661756c742069732062726f6b656e","id":24236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"976:17:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""},"value":"Vault is broken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""}],"id":24233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"958:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"958:36:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24238,"nodeType":"ExpressionStatement","src":"958:36:79"},{"expression":{"arguments":[{"id":24241,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"1036:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24239,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"1007:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1020:15:79","memberName":"getScaledAmount","nodeType":"MemberAccess","referencedDeclaration":22606,"src":"1007:28:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256) view returns (uint256)"}},"id":24242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1007:43:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24232,"id":24243,"nodeType":"Return","src":"1000:50:79"}]},"documentation":{"id":24227,"nodeType":"StructuredDocumentation","src":"840:39:79","text":"@dev See {IERC4262-totalAssets}. "},"functionSelector":"01e1d114","id":24245,"implemented":true,"kind":"function","modifiers":[],"name":"totalAssets","nameLocation":"891:11:79","nodeType":"FunctionDefinition","overrides":{"id":24229,"nodeType":"OverrideSpecifier","overrides":[],"src":"925:8:79"},"parameters":{"id":24228,"nodeType":"ParameterList","parameters":[],"src":"902:2:79"},"returnParameters":{"id":24232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24245,"src":"943:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24230,"name":"uint256","nodeType":"ElementaryTypeName","src":"943:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"942:9:79"},"scope":24404,"src":"882:173:79","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5985],"body":{"id":24280,"nodeType":"Block","src":"1221:146:79","statements":[{"expression":{"arguments":[{"id":24260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1235:8:79","subExpression":{"id":24259,"name":"_broken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24197,"src":"1236:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5661756c742069732062726f6b656e","id":24261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1245:17:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""},"value":"Vault is broken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""}],"id":24258,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1227:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:36:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24263,"nodeType":"ExpressionStatement","src":"1227:36:79"},{"expression":{"arguments":[{"id":24267,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24252,"src":"1286:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24268,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"1294:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24264,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"1269:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1282:3:79","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":22719,"src":"1269:16:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":24269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24270,"nodeType":"ExpressionStatement","src":"1269:39:79"},{"expression":{"arguments":[{"id":24274,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24248,"src":"1329:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24275,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24250,"src":"1337:8:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24276,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24252,"src":"1347:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24277,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24254,"src":"1355:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24271,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1314:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_FixedRateVault_$24404_$","typeString":"type(contract super FixedRateVault)"}},"id":24273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1320:8:79","memberName":"_deposit","nodeType":"MemberAccess","referencedDeclaration":5985,"src":"1314:14:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":24278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1314:48:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24279,"nodeType":"ExpressionStatement","src":"1314:48:79"}]},"documentation":{"id":24246,"nodeType":"StructuredDocumentation","src":"1059:49:79","text":" @dev Deposit/mint common workflow."},"id":24281,"implemented":true,"kind":"function","modifiers":[],"name":"_deposit","nameLocation":"1120:8:79","nodeType":"FunctionDefinition","overrides":{"id":24256,"nodeType":"OverrideSpecifier","overrides":[],"src":"1212:8:79"},"parameters":{"id":24255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24248,"mutability":"mutable","name":"caller","nameLocation":"1137:6:79","nodeType":"VariableDeclaration","scope":24281,"src":"1129:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24247,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24250,"mutability":"mutable","name":"receiver","nameLocation":"1153:8:79","nodeType":"VariableDeclaration","scope":24281,"src":"1145:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24249,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24252,"mutability":"mutable","name":"assets","nameLocation":"1171:6:79","nodeType":"VariableDeclaration","scope":24281,"src":"1163:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24251,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24254,"mutability":"mutable","name":"shares","nameLocation":"1187:6:79","nodeType":"VariableDeclaration","scope":24281,"src":"1179:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24253,"name":"uint256","nodeType":"ElementaryTypeName","src":"1179:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1128:66:79"},"returnParameters":{"id":24257,"nodeType":"ParameterList","parameters":[],"src":"1221:0:79"},"scope":24404,"src":"1111:256:79","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[6032],"body":{"id":24351,"nodeType":"Block","src":"1576:372:79","statements":[{"expression":{"arguments":[{"id":24298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1590:8:79","subExpression":{"id":24297,"name":"_broken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24197,"src":"1591:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5661756c742069732062726f6b656e","id":24299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1600:17:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""},"value":"Vault is broken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0","typeString":"literal_string \"Vault is broken\""}],"id":24296,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1582:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1582:36:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24301,"nodeType":"ExpressionStatement","src":"1582:36:79"},{"expression":{"arguments":[{"id":24305,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24290,"src":"1641:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24306,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"1649:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24302,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"1624:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1637:3:79","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":22766,"src":"1624:16:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":24307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24308,"nodeType":"ExpressionStatement","src":"1624:39:79"},{"assignments":[24310],"declarations":[{"constant":false,"id":24310,"mutability":"mutable","name":"balance","nameLocation":"1677:7:79","nodeType":"VariableDeclaration","scope":24351,"src":"1669:15:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24309,"name":"uint256","nodeType":"ElementaryTypeName","src":"1669:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24321,"initialValue":{"arguments":[{"arguments":[{"id":24318,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1729:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_FixedRateVault_$24404","typeString":"contract FixedRateVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FixedRateVault_$24404","typeString":"contract FixedRateVault"}],"id":24317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1721:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24316,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:79","typeDescriptions":{}}},"id":24319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1721:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":24312,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5555,"src":"1702:5:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":24313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1702:7:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24311,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"1687:14:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}},"id":24314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:23:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":24315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1711:9:79","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":5371,"src":"1687:33:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":24320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:48:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1669:66:79"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24322,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24310,"src":"1745:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":24323,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24290,"src":"1755:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1745:16:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24340,"nodeType":"IfStatement","src":"1741:141:79","trueBody":{"id":24339,"nodeType":"Block","src":"1763:119:79","statements":[{"expression":{"arguments":[{"arguments":[{"id":24332,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1851:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_FixedRateVault_$24404","typeString":"contract FixedRateVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FixedRateVault_$24404","typeString":"contract FixedRateVault"}],"id":24331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1843:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24330,"name":"address","nodeType":"ElementaryTypeName","src":"1843:7:79","typeDescriptions":{}}},"id":24333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1843:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24334,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24290,"src":"1858:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":24335,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24310,"src":"1867:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1858:16:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":24326,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5555,"src":"1829:5:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":24327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:7:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24325,"name":"IMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24471,"src":"1814:14:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMintableERC20_$24471_$","typeString":"type(contract IMintableERC20)"}},"id":24328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:23:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMintableERC20_$24471","typeString":"contract IMintableERC20"}},"id":24329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:4:79","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":24463,"src":"1814:28:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":24337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:61:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24338,"nodeType":"ExpressionStatement","src":"1814:61:79"}]}},{"expression":{"arguments":[{"id":24344,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24284,"src":"1903:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24345,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24286,"src":"1911:8:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24346,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24288,"src":"1921:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24347,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24290,"src":"1928:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24348,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24292,"src":"1936:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24341,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1887:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_FixedRateVault_$24404_$","typeString":"type(contract super FixedRateVault)"}},"id":24343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1893:9:79","memberName":"_withdraw","nodeType":"MemberAccess","referencedDeclaration":6032,"src":"1887:15:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":24349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:56:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24350,"nodeType":"ExpressionStatement","src":"1887:56:79"}]},"documentation":{"id":24282,"nodeType":"StructuredDocumentation","src":"1371:52:79","text":" @dev Withdraw/redeem common workflow."},"id":24352,"implemented":true,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"1435:9:79","nodeType":"FunctionDefinition","overrides":{"id":24294,"nodeType":"OverrideSpecifier","overrides":[],"src":"1567:8:79"},"parameters":{"id":24293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24284,"mutability":"mutable","name":"caller","nameLocation":"1458:6:79","nodeType":"VariableDeclaration","scope":24352,"src":"1450:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24283,"name":"address","nodeType":"ElementaryTypeName","src":"1450:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24286,"mutability":"mutable","name":"receiver","nameLocation":"1478:8:79","nodeType":"VariableDeclaration","scope":24352,"src":"1470:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24285,"name":"address","nodeType":"ElementaryTypeName","src":"1470:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24288,"mutability":"mutable","name":"owner","nameLocation":"1500:5:79","nodeType":"VariableDeclaration","scope":24352,"src":"1492:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24287,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24290,"mutability":"mutable","name":"assets","nameLocation":"1519:6:79","nodeType":"VariableDeclaration","scope":24352,"src":"1511:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1511:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24292,"mutability":"mutable","name":"shares","nameLocation":"1539:6:79","nodeType":"VariableDeclaration","scope":24352,"src":"1531:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1444:105:79"},"returnParameters":{"id":24295,"nodeType":"ParameterList","parameters":[],"src":"1576:0:79"},"scope":24404,"src":"1426:522:79","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":24384,"nodeType":"Block","src":"2118:159:79","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":24359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24357,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24354,"src":"2128:6:79","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2128:10:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":24382,"nodeType":"Block","src":"2209:64:79","statements":[{"expression":{"arguments":[{"arguments":[{"id":24377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2242:7:79","subExpression":{"id":24376,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24354,"src":"2243:6:79","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":24375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":24374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2234:7:79","typeDescriptions":{}}},"id":24378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:16:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24379,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"2252:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24371,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"2217:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2230:3:79","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":22766,"src":"2217:16:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":24380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2217:49:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24381,"nodeType":"ExpressionStatement","src":"2217:49:79"}]},"id":24383,"nodeType":"IfStatement","src":"2124:149:79","trueBody":{"id":24370,"nodeType":"Block","src":"2140:63:79","statements":[{"expression":{"arguments":[{"arguments":[{"id":24365,"name":"assets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24354,"src":"2173:6:79","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":24364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2165:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":24363,"name":"uint256","nodeType":"ElementaryTypeName","src":"2165:7:79","typeDescriptions":{}}},"id":24366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2165:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24367,"name":"_interestRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24192,"src":"2182:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24360,"name":"_totalAssets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24195,"src":"2148:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ScaledAmount_$22464_storage","typeString":"struct TimeScaled.ScaledAmount storage ref"}},"id":24362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2161:3:79","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":22719,"src":"2148:16:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ScaledAmount_$22464_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_struct$_ScaledAmount_$22464_storage_ptr_$","typeString":"function (struct TimeScaled.ScaledAmount storage pointer,uint256,uint256) returns (uint256)"}},"id":24368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:48:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24369,"nodeType":"ExpressionStatement","src":"2148:48:79"}]}}]},"functionSelector":"c7361ed2","id":24385,"implemented":true,"kind":"function","modifiers":[],"name":"discreteEarning","nameLocation":"2078:15:79","nodeType":"FunctionDefinition","parameters":{"id":24355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24354,"mutability":"mutable","name":"assets","nameLocation":"2101:6:79","nodeType":"VariableDeclaration","scope":24385,"src":"2094:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":24353,"name":"int256","nodeType":"ElementaryTypeName","src":"2094:6:79","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2093:15:79"},"returnParameters":{"id":24356,"nodeType":"ParameterList","parameters":[],"src":"2118:0:79"},"scope":24404,"src":"2069:208:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24394,"nodeType":"Block","src":"2323:28:79","statements":[{"expression":{"id":24392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24390,"name":"_broken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24197,"src":"2329:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24391,"name":"broken_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24387,"src":"2339:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24393,"nodeType":"ExpressionStatement","src":"2329:17:79"}]},"functionSelector":"86de9e4f","id":24395,"implemented":true,"kind":"function","modifiers":[],"name":"setBroken","nameLocation":"2290:9:79","nodeType":"FunctionDefinition","parameters":{"id":24388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24387,"mutability":"mutable","name":"broken_","nameLocation":"2305:7:79","nodeType":"VariableDeclaration","scope":24395,"src":"2300:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24386,"name":"bool","nodeType":"ElementaryTypeName","src":"2300:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2299:14:79"},"returnParameters":{"id":24389,"nodeType":"ParameterList","parameters":[],"src":"2323:0:79"},"scope":24404,"src":"2281:70:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24402,"nodeType":"Block","src":"2402:25:79","statements":[{"expression":{"id":24400,"name":"_broken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24197,"src":"2415:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24399,"id":24401,"nodeType":"Return","src":"2408:14:79"}]},"functionSelector":"7fb1ad62","id":24403,"implemented":true,"kind":"function","modifiers":[],"name":"broken","nameLocation":"2364:6:79","nodeType":"FunctionDefinition","parameters":{"id":24396,"nodeType":"ParameterList","parameters":[],"src":"2370:2:79"},"returnParameters":{"id":24399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24403,"src":"2396:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24397,"name":"bool","nodeType":"ElementaryTypeName","src":"2396:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2395:6:79"},"scope":24404,"src":"2355:72:79","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":24405,"src":"414:2015:79","usedErrors":[],"usedEvents":[4184,4196,5348,5357]}],"src":"38:2392:79"},"id":79},"contracts/mocks/ForwardProxy.sol":{"ast":{"absolutePath":"contracts/mocks/ForwardProxy.sol","exportedSymbols":{"ForwardProxy":[24453],"Proxy":[4739]},"id":24454,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24406,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:80"},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","id":24408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24454,"sourceUnit":4740,"src":"64:62:80","symbolAliases":[{"foreign":{"id":24407,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4739,"src":"72:5:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24410,"name":"Proxy","nameLocations":["576:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":4739,"src":"576:5:80"},"id":24411,"nodeType":"InheritanceSpecifier","src":"576:5:80"}],"canonicalName":"ForwardProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":24409,"nodeType":"StructuredDocumentation","src":"128:422:80","text":" @dev This contract provides a fallback function that forwards all calls to another contract using the EVM\n instruction `call`.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":true,"id":24453,"linearizedBaseContracts":[24453,4739],"name":"ForwardProxy","nameLocation":"560:12:80","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":24413,"mutability":"mutable","name":"_forwardTo","nameLocation":"603:10:80","nodeType":"VariableDeclaration","scope":24453,"src":"586:27:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24412,"name":"address","nodeType":"ElementaryTypeName","src":"586:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":24422,"nodeType":"Block","src":"649:33:80","statements":[{"expression":{"id":24420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24418,"name":"_forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24413,"src":"655:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24419,"name":"forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24415,"src":"668:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"655:22:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24421,"nodeType":"ExpressionStatement","src":"655:22:80"}]},"id":24423,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24415,"mutability":"mutable","name":"forwardTo","nameLocation":"638:9:80","nodeType":"VariableDeclaration","scope":24423,"src":"630:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24414,"name":"address","nodeType":"ElementaryTypeName","src":"630:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"629:19:80"},"returnParameters":{"id":24417,"nodeType":"ParameterList","parameters":[],"src":"649:0:80"},"scope":24453,"src":"618:64:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4698],"body":{"id":24431,"nodeType":"Block","src":"941:850:80","statements":[{"AST":{"nativeSrc":"1008:779:80","nodeType":"YulBlock","src":"1008:779:80","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1237:1:80","nodeType":"YulLiteral","src":"1237:1:80","type":"","value":"0"},{"kind":"number","nativeSrc":"1240:1:80","nodeType":"YulLiteral","src":"1240:1:80","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1243:12:80","nodeType":"YulIdentifier","src":"1243:12:80"},"nativeSrc":"1243:14:80","nodeType":"YulFunctionCall","src":"1243:14:80"}],"functionName":{"name":"calldatacopy","nativeSrc":"1224:12:80","nodeType":"YulIdentifier","src":"1224:12:80"},"nativeSrc":"1224:34:80","nodeType":"YulFunctionCall","src":"1224:34:80"},"nativeSrc":"1224:34:80","nodeType":"YulExpressionStatement","src":"1224:34:80"},{"nativeSrc":"1451:69:80","nodeType":"YulVariableDeclaration","src":"1451:69:80","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1470:3:80","nodeType":"YulIdentifier","src":"1470:3:80"},"nativeSrc":"1470:5:80","nodeType":"YulFunctionCall","src":"1470:5:80"},{"name":"implementation","nativeSrc":"1477:14:80","nodeType":"YulIdentifier","src":"1477:14:80"},{"kind":"number","nativeSrc":"1493:1:80","nodeType":"YulLiteral","src":"1493:1:80","type":"","value":"0"},{"kind":"number","nativeSrc":"1496:1:80","nodeType":"YulLiteral","src":"1496:1:80","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1499:12:80","nodeType":"YulIdentifier","src":"1499:12:80"},"nativeSrc":"1499:14:80","nodeType":"YulFunctionCall","src":"1499:14:80"},{"kind":"number","nativeSrc":"1515:1:80","nodeType":"YulLiteral","src":"1515:1:80","type":"","value":"0"},{"kind":"number","nativeSrc":"1518:1:80","nodeType":"YulLiteral","src":"1518:1:80","type":"","value":"0"}],"functionName":{"name":"call","nativeSrc":"1465:4:80","nodeType":"YulIdentifier","src":"1465:4:80"},"nativeSrc":"1465:55:80","nodeType":"YulFunctionCall","src":"1465:55:80"},"variables":[{"name":"result","nativeSrc":"1455:6:80","nodeType":"YulTypedName","src":"1455:6:80","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1576:1:80","nodeType":"YulLiteral","src":"1576:1:80","type":"","value":"0"},{"kind":"number","nativeSrc":"1579:1:80","nodeType":"YulLiteral","src":"1579:1:80","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1582:14:80","nodeType":"YulIdentifier","src":"1582:14:80"},"nativeSrc":"1582:16:80","nodeType":"YulFunctionCall","src":"1582:16:80"}],"functionName":{"name":"returndatacopy","nativeSrc":"1561:14:80","nodeType":"YulIdentifier","src":"1561:14:80"},"nativeSrc":"1561:38:80","nodeType":"YulFunctionCall","src":"1561:38:80"},"nativeSrc":"1561:38:80","nodeType":"YulExpressionStatement","src":"1561:38:80"},{"cases":[{"body":{"nativeSrc":"1676:45:80","nodeType":"YulBlock","src":"1676:45:80","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1693:1:80","nodeType":"YulLiteral","src":"1693:1:80","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1696:14:80","nodeType":"YulIdentifier","src":"1696:14:80"},"nativeSrc":"1696:16:80","nodeType":"YulFunctionCall","src":"1696:16:80"}],"functionName":{"name":"revert","nativeSrc":"1686:6:80","nodeType":"YulIdentifier","src":"1686:6:80"},"nativeSrc":"1686:27:80","nodeType":"YulFunctionCall","src":"1686:27:80"},"nativeSrc":"1686:27:80","nodeType":"YulExpressionStatement","src":"1686:27:80"}]},"nativeSrc":"1669:52:80","nodeType":"YulCase","src":"1669:52:80","value":{"kind":"number","nativeSrc":"1674:1:80","nodeType":"YulLiteral","src":"1674:1:80","type":"","value":"0"}},{"body":{"nativeSrc":"1736:45:80","nodeType":"YulBlock","src":"1736:45:80","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1753:1:80","nodeType":"YulLiteral","src":"1753:1:80","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1756:14:80","nodeType":"YulIdentifier","src":"1756:14:80"},"nativeSrc":"1756:16:80","nodeType":"YulFunctionCall","src":"1756:16:80"}],"functionName":{"name":"return","nativeSrc":"1746:6:80","nodeType":"YulIdentifier","src":"1746:6:80"},"nativeSrc":"1746:27:80","nodeType":"YulFunctionCall","src":"1746:27:80"},"nativeSrc":"1746:27:80","nodeType":"YulExpressionStatement","src":"1746:27:80"}]},"nativeSrc":"1728:53:80","nodeType":"YulCase","src":"1728:53:80","value":"default"}],"expression":{"name":"result","nativeSrc":"1614:6:80","nodeType":"YulIdentifier","src":"1614:6:80"},"nativeSrc":"1607:174:80","nodeType":"YulSwitch","src":"1607:174:80"}]},"evmVersion":"cancun","externalReferences":[{"declaration":24426,"isOffset":false,"isSlot":false,"src":"1477:14:80","valueSize":1}],"id":24430,"nodeType":"InlineAssembly","src":"999:788:80"}]},"documentation":{"id":24424,"nodeType":"StructuredDocumentation","src":"686:183:80","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internall call site, it will return directly to the external caller."},"id":24432,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"881:9:80","nodeType":"FunctionDefinition","overrides":{"id":24428,"nodeType":"OverrideSpecifier","overrides":[],"src":"932:8:80"},"parameters":{"id":24427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24426,"mutability":"mutable","name":"implementation","nameLocation":"899:14:80","nodeType":"VariableDeclaration","scope":24432,"src":"891:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24425,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:24:80"},"returnParameters":{"id":24429,"nodeType":"ParameterList","parameters":[],"src":"941:0:80"},"scope":24453,"src":"872:919:80","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4704],"body":{"id":24441,"nodeType":"Block","src":"2040:28:80","statements":[{"expression":{"id":24439,"name":"_forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24413,"src":"2053:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":24438,"id":24440,"nodeType":"Return","src":"2046:17:80"}]},"documentation":{"id":24433,"nodeType":"StructuredDocumentation","src":"1795:166:80","text":" @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":24442,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1973:15:80","nodeType":"FunctionDefinition","overrides":{"id":24435,"nodeType":"OverrideSpecifier","overrides":[],"src":"2013:8:80"},"parameters":{"id":24434,"nodeType":"ParameterList","parameters":[],"src":"1988:2:80"},"returnParameters":{"id":24438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24442,"src":"2031:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24436,"name":"address","nodeType":"ElementaryTypeName","src":"2031:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2030:9:80"},"scope":24453,"src":"1964:104:80","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":24451,"nodeType":"Block","src":"2122:33:80","statements":[{"expression":{"id":24449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24447,"name":"_forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24413,"src":"2128:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24448,"name":"forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24444,"src":"2141:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2128:22:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":24450,"nodeType":"ExpressionStatement","src":"2128:22:80"}]},"functionSelector":"d4b27001","id":24452,"implemented":true,"kind":"function","modifiers":[],"name":"setForwardTo","nameLocation":"2081:12:80","nodeType":"FunctionDefinition","parameters":{"id":24445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24444,"mutability":"mutable","name":"forwardTo","nameLocation":"2102:9:80","nodeType":"VariableDeclaration","scope":24452,"src":"2094:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24443,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2093:19:80"},"returnParameters":{"id":24446,"nodeType":"ParameterList","parameters":[],"src":"2122:0:80"},"scope":24453,"src":"2072:83:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24454,"src":"551:1606:80","usedErrors":[],"usedEvents":[]}],"src":"39:2119:80"},"id":80},"contracts/mocks/IMintableERC20.sol":{"ast":{"absolutePath":"contracts/mocks/IMintableERC20.sol","exportedSymbols":{"IMintableERC20":[24471]},"id":24472,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24455,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:81"},{"abstract":false,"baseContracts":[],"canonicalName":"IMintableERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":24456,"nodeType":"StructuredDocumentation","src":"64:122:81","text":" @title IMintableERC20 interface\n @dev Interface for mintable / burnable ERC20 - for testing\n @author Ensuro"},"fullyImplemented":false,"id":24471,"linearizedBaseContracts":[24471],"name":"IMintableERC20","nameLocation":"197:14:81","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40c10f19","id":24463,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"225:4:81","nodeType":"FunctionDefinition","parameters":{"id":24461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24458,"mutability":"mutable","name":"recipient","nameLocation":"238:9:81","nodeType":"VariableDeclaration","scope":24463,"src":"230:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24457,"name":"address","nodeType":"ElementaryTypeName","src":"230:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24460,"mutability":"mutable","name":"amount","nameLocation":"257:6:81","nodeType":"VariableDeclaration","scope":24463,"src":"249:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24459,"name":"uint256","nodeType":"ElementaryTypeName","src":"249:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"229:35:81"},"returnParameters":{"id":24462,"nodeType":"ParameterList","parameters":[],"src":"273:0:81"},"scope":24471,"src":"216:58:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9dc29fac","id":24470,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"287:4:81","nodeType":"FunctionDefinition","parameters":{"id":24468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24465,"mutability":"mutable","name":"recipient","nameLocation":"300:9:81","nodeType":"VariableDeclaration","scope":24470,"src":"292:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24464,"name":"address","nodeType":"ElementaryTypeName","src":"292:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24467,"mutability":"mutable","name":"amount","nameLocation":"319:6:81","nodeType":"VariableDeclaration","scope":24470,"src":"311:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24466,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"291:35:81"},"returnParameters":{"id":24469,"nodeType":"ParameterList","parameters":[],"src":"335:0:81"},"scope":24471,"src":"278:58:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24472,"src":"187:151:81","usedErrors":[],"usedEvents":[]}],"src":"39:300:81"},"id":81},"contracts/mocks/InterfaceIdCalculator.sol":{"ast":{"absolutePath":"contracts/mocks/InterfaceIdCalculator.sol","exportedSymbols":{"IAccessControl":[4144],"IAccessManager":[23370],"IAssetManager":[23421],"IERC165":[7883],"IERC20":[5414],"IERC20Metadata":[6066],"IERC721":[6594],"IEToken":[23549],"ILPWhitelist":[23596],"IPolicyHolder":[23630],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823],"IPremiumsAccount":[23886],"IRiskModule":[23983],"InterfaceIdCalculator":[24586]},"id":24587,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24473,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:82"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":24475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":7884,"src":"64:80:82","symbolAliases":[{"foreign":{"id":24474,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"72:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":24477,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":5415,"src":"145:70:82","symbolAliases":[{"foreign":{"id":24476,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"153:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":24479,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":6067,"src":"216:97:82","symbolAliases":[{"foreign":{"id":24478,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"224:14:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":24481,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":6595,"src":"314:73:82","symbolAliases":[{"foreign":{"id":24480,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"322:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":24483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":4145,"src":"388:81:82","symbolAliases":[{"foreign":{"id":24482,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"396:14:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":24485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23807,"src":"470:58:82","symbolAliases":[{"foreign":{"id":24484,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"478:11:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"../interfaces/IPolicyPoolComponent.sol","id":24487,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23824,"src":"529:76:82","symbolAliases":[{"foreign":{"id":24486,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"537:20:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"../interfaces/IEToken.sol","id":24489,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23550,"src":"606:50:82","symbolAliases":[{"foreign":{"id":24488,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"614:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"../interfaces/IRiskModule.sol","id":24491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23984,"src":"657:58:82","symbolAliases":[{"foreign":{"id":24490,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"665:11:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyHolder.sol","file":"../interfaces/IPolicyHolder.sol","id":24493,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23631,"src":"716:62:82","symbolAliases":[{"foreign":{"id":24492,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"724:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"../interfaces/IPremiumsAccount.sol","id":24495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23887,"src":"779:68:82","symbolAliases":[{"foreign":{"id":24494,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"787:16:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ILPWhitelist.sol","file":"../interfaces/ILPWhitelist.sol","id":24497,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23597,"src":"848:60:82","symbolAliases":[{"foreign":{"id":24496,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"856:12:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"../interfaces/IAccessManager.sol","id":24499,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23371,"src":"909:64:82","symbolAliases":[{"foreign":{"id":24498,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"917:14:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAssetManager.sol","file":"../interfaces/IAssetManager.sol","id":24501,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24587,"sourceUnit":23422,"src":"974:62:82","symbolAliases":[{"foreign":{"id":24500,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"982:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"InterfaceIdCalculator","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":24586,"linearizedBaseContracts":[24586],"name":"InterfaceIdCalculator","nameLocation":"1047:21:82","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a23a1661","id":24507,"mutability":"constant","name":"IERC165_INTERFACEID","nameLocation":"1096:19:82","nodeType":"VariableDeclaration","scope":24586,"src":"1073:70:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24502,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1073:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24504,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"1123:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":24503,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1118:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1118:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":24506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1132:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1118:25:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"c1bd03a6","id":24513,"mutability":"constant","name":"IERC20_INTERFACEID","nameLocation":"1170:18:82","nodeType":"VariableDeclaration","scope":24586,"src":"1147:68:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24508,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1147:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24510,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5414,"src":"1196:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5414_$","typeString":"type(contract IERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC20_$5414_$","typeString":"type(contract IERC20)"}],"id":24509,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1191:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC20_$5414","typeString":"type(contract IERC20)"}},"id":24512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1204:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1191:24:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"731e0f7f","id":24519,"mutability":"constant","name":"IERC20METADATA_INTERFACEID","nameLocation":"1242:26:82","nodeType":"VariableDeclaration","scope":24586,"src":"1219:84:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24514,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1219:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24516,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"1276:14:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$6066_$","typeString":"type(contract IERC20Metadata)"}],"id":24515,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1271:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1271:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC20Metadata_$6066","typeString":"type(contract IERC20Metadata)"}},"id":24518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1292:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1271:32:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"96047c99","id":24525,"mutability":"constant","name":"IERC721_INTERFACEID","nameLocation":"1330:19:82","nodeType":"VariableDeclaration","scope":24586,"src":"1307:70:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24520,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1307:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24522,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"1357:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6594_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6594_$","typeString":"type(contract IERC721)"}],"id":24521,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1352:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1352:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6594","typeString":"type(contract IERC721)"}},"id":24524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1366:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1352:25:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"933c234b","id":24531,"mutability":"constant","name":"IACCESSCONTROL_INTERFACEID","nameLocation":"1404:26:82","nodeType":"VariableDeclaration","scope":24586,"src":"1381:84:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24526,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1381:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24528,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1438:14:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$4144_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$4144_$","typeString":"type(contract IAccessControl)"}],"id":24527,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1433:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$4144","typeString":"type(contract IAccessControl)"}},"id":24530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1454:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1433:32:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"fef87f0b","id":24537,"mutability":"constant","name":"IPOLICYPOOL_INTERFACEID","nameLocation":"1492:23:82","nodeType":"VariableDeclaration","scope":24586,"src":"1469:78:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24532,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1469:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24534,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"1523:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPool_$23806_$","typeString":"type(contract IPolicyPool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyPool_$23806_$","typeString":"type(contract IPolicyPool)"}],"id":24533,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1518:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:17:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyPool_$23806","typeString":"type(contract IPolicyPool)"}},"id":24536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1536:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1518:29:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"362466de","id":24543,"mutability":"constant","name":"IPOLICYPOOLCOMPONENT_INTERFACEID","nameLocation":"1574:32:82","nodeType":"VariableDeclaration","scope":24586,"src":"1551:96:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24538,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1551:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24540,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"1614:20:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}],"id":24539,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1609:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyPoolComponent_$23823","typeString":"type(contract IPolicyPoolComponent)"}},"id":24542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1636:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1609:38:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"7874bf98","id":24549,"mutability":"constant","name":"IETOKEN_INTERFACEID","nameLocation":"1674:19:82","nodeType":"VariableDeclaration","scope":24586,"src":"1651:70:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24544,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1651:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24546,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"1701:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IEToken_$23549_$","typeString":"type(contract IEToken)"}],"id":24545,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1696:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IEToken_$23549","typeString":"type(contract IEToken)"}},"id":24548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1710:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1696:25:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"8b98dad0","id":24555,"mutability":"constant","name":"IRISKMODULE_INTERFACEID","nameLocation":"1748:23:82","nodeType":"VariableDeclaration","scope":24586,"src":"1725:78:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24550,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1725:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24552,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"1779:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}],"id":24551,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1774:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:17:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IRiskModule_$23983","typeString":"type(contract IRiskModule)"}},"id":24554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1792:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1774:29:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"11f34418","id":24561,"mutability":"constant","name":"IPREMIUMSACCOUNT_INTERFACEID","nameLocation":"1830:28:82","nodeType":"VariableDeclaration","scope":24586,"src":"1807:88:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24556,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1807:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24558,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"1866:16:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPremiumsAccount_$23886_$","typeString":"type(contract IPremiumsAccount)"}],"id":24557,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1861:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPremiumsAccount_$23886","typeString":"type(contract IPremiumsAccount)"}},"id":24560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1884:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1861:34:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"800915a5","id":24567,"mutability":"constant","name":"ILPWHITELIST_INTERFACEID","nameLocation":"1922:24:82","nodeType":"VariableDeclaration","scope":24586,"src":"1899:80:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24562,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1899:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24564,"name":"ILPWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23596,"src":"1954:12:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ILPWhitelist_$23596_$","typeString":"type(contract ILPWhitelist)"}],"id":24563,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1949:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1949:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ILPWhitelist_$23596","typeString":"type(contract ILPWhitelist)"}},"id":24566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1968:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"1949:30:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"2bac8ca3","id":24573,"mutability":"constant","name":"IACCESSMANAGER_INTERFACEID","nameLocation":"2006:26:82","nodeType":"VariableDeclaration","scope":24586,"src":"1983:84:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24568,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1983:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24570,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"2040:14:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessManager_$23370_$","typeString":"type(contract IAccessManager)"}],"id":24569,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2035:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2035:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessManager_$23370","typeString":"type(contract IAccessManager)"}},"id":24572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2056:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"2035:32:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"a88ecaa2","id":24579,"mutability":"constant","name":"IASSETMANAGER_INTERFACEID","nameLocation":"2094:25:82","nodeType":"VariableDeclaration","scope":24586,"src":"2071:82:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24574,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2071:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24576,"name":"IAssetManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23421,"src":"2127:13:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAssetManager_$23421_$","typeString":"type(contract IAssetManager)"}],"id":24575,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2122:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAssetManager_$23421","typeString":"type(contract IAssetManager)"}},"id":24578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2142:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"2122:31:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":true,"functionSelector":"8786bcbd","id":24585,"mutability":"constant","name":"IPOLICYHOLDER_INTERFACEID","nameLocation":"2180:25:82","nodeType":"VariableDeclaration","scope":24586,"src":"2157:82:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24580,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2157:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"arguments":[{"id":24582,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"2213:13:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}],"id":24581,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2208:4:82","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolder_$23630","typeString":"type(contract IPolicyHolder)"}},"id":24584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2228:11:82","memberName":"interfaceId","nodeType":"MemberAccess","src":"2208:31:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"}],"scope":24587,"src":"1038:1204:82","usedErrors":[],"usedEvents":[]}],"src":"39:2204:82"},"id":82},"contracts/mocks/PolicyHolderMock.sol":{"ast":{"absolutePath":"contracts/mocks/PolicyHolderMock.sol","exportedSymbols":{"IERC165":[7883],"IERC721Receiver":[6612],"IPolicyHolder":[23630],"IPolicyHolderV2":[23652],"PolicyHolderMock":[25064],"StorageSlot":[7082]},"id":25065,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24588,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:83"},{"absolutePath":"contracts/interfaces/IPolicyHolder.sol","file":"../interfaces/IPolicyHolder.sol","id":24590,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25065,"sourceUnit":23631,"src":"64:62:83","symbolAliases":[{"foreign":{"id":24589,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"72:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyHolderV2.sol","file":"../interfaces/IPolicyHolderV2.sol","id":24592,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25065,"sourceUnit":23653,"src":"127:66:83","symbolAliases":[{"foreign":{"id":24591,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"135:15:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","id":24594,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25065,"sourceUnit":6613,"src":"194:89:83","symbolAliases":[{"foreign":{"id":24593,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6612,"src":"202:15:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":24596,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25065,"sourceUnit":7884,"src":"284:80:83","symbolAliases":[{"foreign":{"id":24595,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"292:7:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","id":24598,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25065,"sourceUnit":7083,"src":"365:74:83","symbolAliases":[{"foreign":{"id":24597,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"373:11:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24599,"name":"IPolicyHolderV2","nameLocations":["470:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":23652,"src":"470:15:83"},"id":24600,"nodeType":"InheritanceSpecifier","src":"470:15:83"}],"canonicalName":"PolicyHolderMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25064,"linearizedBaseContracts":[25064,23652,23630,6612],"name":"PolicyHolderMock","nameLocation":"450:16:83","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"ee89ef3a","id":24602,"mutability":"mutable","name":"policyId","nameLocation":"505:8:83","nodeType":"VariableDeclaration","scope":25064,"src":"490:23:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24601,"name":"uint256","nodeType":"ElementaryTypeName","src":"490:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"63bd1d4a","id":24604,"mutability":"mutable","name":"payout","nameLocation":"532:6:83","nodeType":"VariableDeclaration","scope":25064,"src":"517:21:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24603,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"a9cc4718","id":24606,"mutability":"mutable","name":"fail","nameLocation":"554:4:83","nodeType":"VariableDeclaration","scope":25064,"src":"542:16:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24605,"name":"bool","nodeType":"ElementaryTypeName","src":"542:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"9568ca0f","id":24608,"mutability":"mutable","name":"failReplace","nameLocation":"574:11:83","nodeType":"VariableDeclaration","scope":25064,"src":"562:23:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24607,"name":"bool","nodeType":"ElementaryTypeName","src":"562:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"6db65619","id":24610,"mutability":"mutable","name":"emptyRevert","nameLocation":"601:11:83","nodeType":"VariableDeclaration","scope":25064,"src":"589:23:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24609,"name":"bool","nodeType":"ElementaryTypeName","src":"589:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"35287014","id":24612,"mutability":"mutable","name":"notImplemented","nameLocation":"628:14:83","nodeType":"VariableDeclaration","scope":25064,"src":"616:26:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24611,"name":"bool","nodeType":"ElementaryTypeName","src":"616:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"c3af904e","id":24614,"mutability":"mutable","name":"badlyImplemented","nameLocation":"658:16:83","nodeType":"VariableDeclaration","scope":25064,"src":"646:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24613,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"d99ba408","id":24616,"mutability":"mutable","name":"badlyImplementedReplace","nameLocation":"690:23:83","nodeType":"VariableDeclaration","scope":25064,"src":"678:35:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24615,"name":"bool","nodeType":"ElementaryTypeName","src":"678:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"bcce5399","id":24618,"mutability":"mutable","name":"noERC165","nameLocation":"729:8:83","nodeType":"VariableDeclaration","scope":25064,"src":"717:20:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24617,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"0dc13e99","id":24620,"mutability":"mutable","name":"noV2","nameLocation":"753:4:83","nodeType":"VariableDeclaration","scope":25064,"src":"741:16:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24619,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"f57c302e","id":24622,"mutability":"mutable","name":"spendGasCount","nameLocation":"776:13:83","nodeType":"VariableDeclaration","scope":25064,"src":"761:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24621,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"canonicalName":"PolicyHolderMock.NotificationKind","id":24627,"members":[{"id":24623,"name":"PolicyReceived","nameLocation":"822:14:83","nodeType":"EnumValue","src":"822:14:83"},{"id":24624,"name":"PayoutReceived","nameLocation":"842:14:83","nodeType":"EnumValue","src":"842:14:83"},{"id":24625,"name":"PolicyExpired","nameLocation":"862:13:83","nodeType":"EnumValue","src":"862:13:83"},{"id":24626,"name":"PolicyReplaced","nameLocation":"881:14:83","nodeType":"EnumValue","src":"881:14:83"}],"name":"NotificationKind","nameLocation":"799:16:83","nodeType":"EnumDefinition","src":"794:105:83"},{"anonymous":false,"eventSelector":"cb6442f1752a34d49fd946725ee915eae9914b3fe3f3193b98232c772393e7c5","id":24638,"name":"NotificationReceived","nameLocation":"909:20:83","nodeType":"EventDefinition","parameters":{"id":24637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24630,"indexed":false,"mutability":"mutable","name":"kind","nameLocation":"947:4:83","nodeType":"VariableDeclaration","scope":24638,"src":"930:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"},"typeName":{"id":24629,"nodeType":"UserDefinedTypeName","pathNode":{"id":24628,"name":"NotificationKind","nameLocations":["930:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":24627,"src":"930:16:83"},"referencedDeclaration":24627,"src":"930:16:83","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"}},"visibility":"internal"},{"constant":false,"id":24632,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"961:8:83","nodeType":"VariableDeclaration","scope":24638,"src":"953:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24631,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24634,"indexed":false,"mutability":"mutable","name":"operator","nameLocation":"979:8:83","nodeType":"VariableDeclaration","scope":24638,"src":"971:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24633,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24636,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"997:4:83","nodeType":"VariableDeclaration","scope":24638,"src":"989:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24635,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:73:83"},"src":"903:100:83"},{"body":{"id":24673,"nodeType":"Block","src":"1021:183:83","statements":[{"expression":{"id":24643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24641,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24606,"src":"1027:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":24642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1034:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1027:12:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24644,"nodeType":"ExpressionStatement","src":"1027:12:83"},{"expression":{"id":24647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24645,"name":"notImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24612,"src":"1045:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":24646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1062:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1045:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24648,"nodeType":"ExpressionStatement","src":"1045:22:83"},{"expression":{"id":24651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24649,"name":"badlyImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24614,"src":"1073:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":24650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1092:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1073:24:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24652,"nodeType":"ExpressionStatement","src":"1073:24:83"},{"expression":{"id":24655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24653,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"1103:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":24654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1117:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1103:19:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24656,"nodeType":"ExpressionStatement","src":"1103:19:83"},{"expression":{"id":24659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24657,"name":"noERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"1128:8:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":24658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1139:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1128:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24660,"nodeType":"ExpressionStatement","src":"1128:16:83"},{"expression":{"id":24667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24661,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24604,"src":"1150:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":24664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1164:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":24663,"name":"uint256","nodeType":"ElementaryTypeName","src":"1164:7:83","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":24662,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1159:4:83","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1159:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":24666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1173:3:83","memberName":"max","nodeType":"MemberAccess","src":"1159:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1150:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24668,"nodeType":"ExpressionStatement","src":"1150:26:83"},{"expression":{"id":24671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24669,"name":"spendGasCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24622,"src":"1182:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":24670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1198:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1182:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24672,"nodeType":"ExpressionStatement","src":"1182:17:83"}]},"id":24674,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":24639,"nodeType":"ParameterList","parameters":[],"src":"1018:2:83"},"returnParameters":{"id":24640,"nodeType":"ParameterList","parameters":[],"src":"1021:0:83"},"scope":25064,"src":"1007:197:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":24683,"nodeType":"Block","src":"1246:23:83","statements":[{"expression":{"id":24681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24679,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24606,"src":"1252:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24680,"name":"fail_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24676,"src":"1259:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1252:12:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24682,"nodeType":"ExpressionStatement","src":"1252:12:83"}]},"functionSelector":"9d769402","id":24684,"implemented":true,"kind":"function","modifiers":[],"name":"setFail","nameLocation":"1217:7:83","nodeType":"FunctionDefinition","parameters":{"id":24677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24676,"mutability":"mutable","name":"fail_","nameLocation":"1230:5:83","nodeType":"VariableDeclaration","scope":24684,"src":"1225:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24675,"name":"bool","nodeType":"ElementaryTypeName","src":"1225:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1224:12:83"},"returnParameters":{"id":24678,"nodeType":"ParameterList","parameters":[],"src":"1246:0:83"},"scope":25064,"src":"1208:61:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24693,"nodeType":"Block","src":"1325:37:83","statements":[{"expression":{"id":24691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24689,"name":"failReplace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24608,"src":"1331:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24690,"name":"failReplace_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24686,"src":"1345:12:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1331:26:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24692,"nodeType":"ExpressionStatement","src":"1331:26:83"}]},"functionSelector":"286ee351","id":24694,"implemented":true,"kind":"function","modifiers":[],"name":"setFailReplace","nameLocation":"1282:14:83","nodeType":"FunctionDefinition","parameters":{"id":24687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24686,"mutability":"mutable","name":"failReplace_","nameLocation":"1302:12:83","nodeType":"VariableDeclaration","scope":24694,"src":"1297:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24685,"name":"bool","nodeType":"ElementaryTypeName","src":"1297:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1296:19:83"},"returnParameters":{"id":24688,"nodeType":"ParameterList","parameters":[],"src":"1325:0:83"},"scope":25064,"src":"1273:89:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24703,"nodeType":"Block","src":"1425:41:83","statements":[{"expression":{"id":24701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24699,"name":"spendGasCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24622,"src":"1431:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24700,"name":"spendGasCount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24696,"src":"1447:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1431:30:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24702,"nodeType":"ExpressionStatement","src":"1431:30:83"}]},"functionSelector":"7806ce81","id":24704,"implemented":true,"kind":"function","modifiers":[],"name":"setSpendGasCount","nameLocation":"1375:16:83","nodeType":"FunctionDefinition","parameters":{"id":24697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24696,"mutability":"mutable","name":"spendGasCount_","nameLocation":"1400:14:83","nodeType":"VariableDeclaration","scope":24704,"src":"1392:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1392:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1391:24:83"},"returnParameters":{"id":24698,"nodeType":"ParameterList","parameters":[],"src":"1425:0:83"},"scope":25064,"src":"1366:100:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24713,"nodeType":"Block","src":"1528:43:83","statements":[{"expression":{"id":24711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24709,"name":"notImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24612,"src":"1534:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24710,"name":"notImplemented_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24706,"src":"1551:15:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1534:32:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24712,"nodeType":"ExpressionStatement","src":"1534:32:83"}]},"functionSelector":"aeec8f9d","id":24714,"implemented":true,"kind":"function","modifiers":[],"name":"setNotImplemented","nameLocation":"1479:17:83","nodeType":"FunctionDefinition","parameters":{"id":24707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24706,"mutability":"mutable","name":"notImplemented_","nameLocation":"1502:15:83","nodeType":"VariableDeclaration","scope":24714,"src":"1497:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24705,"name":"bool","nodeType":"ElementaryTypeName","src":"1497:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1496:22:83"},"returnParameters":{"id":24708,"nodeType":"ParameterList","parameters":[],"src":"1528:0:83"},"scope":25064,"src":"1470:101:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24723,"nodeType":"Block","src":"1637:47:83","statements":[{"expression":{"id":24721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24719,"name":"badlyImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24614,"src":"1643:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24720,"name":"badlyImplemented_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24716,"src":"1662:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1643:36:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24722,"nodeType":"ExpressionStatement","src":"1643:36:83"}]},"functionSelector":"2bb2adb3","id":24724,"implemented":true,"kind":"function","modifiers":[],"name":"setBadlyImplemented","nameLocation":"1584:19:83","nodeType":"FunctionDefinition","parameters":{"id":24717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24716,"mutability":"mutable","name":"badlyImplemented_","nameLocation":"1609:17:83","nodeType":"VariableDeclaration","scope":24724,"src":"1604:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24715,"name":"bool","nodeType":"ElementaryTypeName","src":"1604:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1603:24:83"},"returnParameters":{"id":24718,"nodeType":"ParameterList","parameters":[],"src":"1637:0:83"},"scope":25064,"src":"1575:109:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24733,"nodeType":"Block","src":"1764:61:83","statements":[{"expression":{"id":24731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24729,"name":"badlyImplementedReplace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"1770:23:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24730,"name":"badlyImplementedReplace_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24726,"src":"1796:24:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1770:50:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24732,"nodeType":"ExpressionStatement","src":"1770:50:83"}]},"functionSelector":"5177cd13","id":24734,"implemented":true,"kind":"function","modifiers":[],"name":"setBadlyImplementedReplace","nameLocation":"1697:26:83","nodeType":"FunctionDefinition","parameters":{"id":24727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24726,"mutability":"mutable","name":"badlyImplementedReplace_","nameLocation":"1729:24:83","nodeType":"VariableDeclaration","scope":24734,"src":"1724:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24725,"name":"bool","nodeType":"ElementaryTypeName","src":"1724:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1723:31:83"},"returnParameters":{"id":24728,"nodeType":"ParameterList","parameters":[],"src":"1764:0:83"},"scope":25064,"src":"1688:137:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24743,"nodeType":"Block","src":"1867:23:83","statements":[{"expression":{"id":24741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24739,"name":"noV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24620,"src":"1873:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24740,"name":"noV2_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24736,"src":"1880:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1873:12:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24742,"nodeType":"ExpressionStatement","src":"1873:12:83"}]},"functionSelector":"75d475f9","id":24744,"implemented":true,"kind":"function","modifiers":[],"name":"setNoV2","nameLocation":"1838:7:83","nodeType":"FunctionDefinition","parameters":{"id":24737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24736,"mutability":"mutable","name":"noV2_","nameLocation":"1851:5:83","nodeType":"VariableDeclaration","scope":24744,"src":"1846:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24735,"name":"bool","nodeType":"ElementaryTypeName","src":"1846:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1845:12:83"},"returnParameters":{"id":24738,"nodeType":"ParameterList","parameters":[],"src":"1867:0:83"},"scope":25064,"src":"1829:61:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24753,"nodeType":"Block","src":"1940:31:83","statements":[{"expression":{"id":24751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24749,"name":"noERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"1946:8:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24750,"name":"noERC165_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24746,"src":"1957:9:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1946:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24752,"nodeType":"ExpressionStatement","src":"1946:20:83"}]},"functionSelector":"2fb64362","id":24754,"implemented":true,"kind":"function","modifiers":[],"name":"setNoERC165","nameLocation":"1903:11:83","nodeType":"FunctionDefinition","parameters":{"id":24747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24746,"mutability":"mutable","name":"noERC165_","nameLocation":"1920:9:83","nodeType":"VariableDeclaration","scope":24754,"src":"1915:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24745,"name":"bool","nodeType":"ElementaryTypeName","src":"1915:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1914:16:83"},"returnParameters":{"id":24748,"nodeType":"ParameterList","parameters":[],"src":"1940:0:83"},"scope":25064,"src":"1894:77:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24763,"nodeType":"Block","src":"2027:37:83","statements":[{"expression":{"id":24761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24759,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"2033:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24760,"name":"emptyRevert_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24756,"src":"2047:12:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2033:26:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24762,"nodeType":"ExpressionStatement","src":"2033:26:83"}]},"functionSelector":"31ca2944","id":24764,"implemented":true,"kind":"function","modifiers":[],"name":"setEmptyRevert","nameLocation":"1984:14:83","nodeType":"FunctionDefinition","parameters":{"id":24757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24756,"mutability":"mutable","name":"emptyRevert_","nameLocation":"2004:12:83","nodeType":"VariableDeclaration","scope":24764,"src":"1999:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24755,"name":"bool","nodeType":"ElementaryTypeName","src":"1999:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1998:19:83"},"returnParameters":{"id":24758,"nodeType":"ParameterList","parameters":[],"src":"2027:0:83"},"scope":25064,"src":"1975:89:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24795,"nodeType":"Block","src":"2097:166:83","statements":[{"body":{"id":24793,"nodeType":"Block","src":"2186:73:83","statements":[{"expression":{"id":24791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":24782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:3:83","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":24783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24768,"src":"2235:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2229:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2221:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":24780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2221:7:83","typeDescriptions":{}}},"id":24785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:16:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24777,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"2194:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$7082_$","typeString":"type(library StorageSlot)"}},"id":24779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2206:14:83","memberName":"getUint256Slot","nodeType":"MemberAccess","referencedDeclaration":7037,"src":"2194:26:83","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$6987_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":24786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:44:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$6987_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":24787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2239:5:83","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6986,"src":"2194:50:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24768,"src":"2247:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":24789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2251:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2247:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2194:58:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24792,"nodeType":"ExpressionStatement","src":"2194:58:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24768,"src":"2162:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":24772,"name":"spendGasCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24622,"src":"2166:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2162:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24794,"initializationExpression":{"assignments":[24768],"declarations":[{"constant":false,"id":24768,"mutability":"mutable","name":"i","nameLocation":"2155:1:83","nodeType":"VariableDeclaration","scope":24794,"src":"2147:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24767,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24770,"initialValue":{"hexValue":"30","id":24769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2159:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2147:13:83"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":24775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2181:3:83","subExpression":{"id":24774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24768,"src":"2181:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24776,"nodeType":"ExpressionStatement","src":"2181:3:83"},"nodeType":"ForStatement","src":"2142:117:83"}]},"id":24796,"implemented":true,"kind":"function","modifiers":[],"name":"spendGas","nameLocation":"2077:8:83","nodeType":"FunctionDefinition","parameters":{"id":24765,"nodeType":"ParameterList","parameters":[],"src":"2085:2:83"},"returnParameters":{"id":24766,"nodeType":"ParameterList","parameters":[],"src":"2097:0:83"},"scope":25064,"src":"2068:195:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24836,"nodeType":"Block","src":"2404:291:83","statements":[{"condition":{"id":24804,"name":"noERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"2414:8:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24806,"nodeType":"IfStatement","src":"2410:59:83","trueBody":{"AST":{"nativeSrc":"2439:30:83","nodeType":"YulBlock","src":"2439:30:83","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2456:1:83","nodeType":"YulLiteral","src":"2456:1:83","type":"","value":"0"},{"kind":"number","nativeSrc":"2459:1:83","nodeType":"YulLiteral","src":"2459:1:83","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2449:6:83","nodeType":"YulIdentifier","src":"2449:6:83"},"nativeSrc":"2449:12:83","nodeType":"YulFunctionCall","src":"2449:12:83"},"nativeSrc":"2449:12:83","nodeType":"YulExpressionStatement","src":"2449:12:83"}]},"evmVersion":"cancun","externalReferences":[],"id":24805,"nodeType":"InlineAssembly","src":"2430:39:83"}},{"condition":{"id":24807,"name":"notImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24612,"src":"2478:14:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24810,"nodeType":"IfStatement","src":"2474:32:83","trueBody":{"expression":{"hexValue":"66616c7365","id":24808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":24803,"id":24809,"nodeType":"Return","src":"2494:12:83"}},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":24816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24811,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"2525:11:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":24813,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"2545:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}],"id":24812,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2540:4:83","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2540:19:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolder_$23630","typeString":"type(contract IPolicyHolder)"}},"id":24815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2560:11:83","memberName":"interfaceId","nodeType":"MemberAccess","src":"2540:31:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2525:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2582:5:83","subExpression":{"id":24817,"name":"noV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24620,"src":"2583:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":24824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24819,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"2591:11:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":24821,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"2611:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}],"id":24820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2606:4:83","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyHolderV2_$23652","typeString":"type(contract IPolicyHolderV2)"}},"id":24823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2628:11:83","memberName":"interfaceId","nodeType":"MemberAccess","src":"2606:33:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2591:48:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2582:57:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":24826,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2581:59:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2525:115:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":24833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24828,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"2650:11:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":24830,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"2670:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":24829,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2665:4:83","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2665:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":24832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2679:11:83","memberName":"interfaceId","nodeType":"MemberAccess","src":"2665:25:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2650:40:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2525:165:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24803,"id":24835,"nodeType":"Return","src":"2512:178:83"}]},"documentation":{"id":24797,"nodeType":"StructuredDocumentation","src":"2267:52:83","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":24837,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2331:17:83","nodeType":"FunctionDefinition","parameters":{"id":24800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24799,"mutability":"mutable","name":"interfaceId","nameLocation":"2356:11:83","nodeType":"VariableDeclaration","scope":24837,"src":"2349:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24798,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2349:6:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2348:20:83"},"returnParameters":{"id":24803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24837,"src":"2398:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24801,"name":"bool","nodeType":"ElementaryTypeName","src":"2398:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2397:6:83"},"scope":25064,"src":"2322:373:83","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6611],"body":{"id":24894,"nodeType":"Block","src":"2847:438:83","statements":[{"condition":{"id":24851,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24606,"src":"2857:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24859,"nodeType":"IfStatement","src":"2853:151:83","trueBody":{"condition":{"id":24852,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"2873:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"hexValue":"6f6e45524337323152656365697665643a205468657920746f6c64206d652049206861766520746f206661696c","id":24855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2956:47:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_46ae0231b151a29cb76b0eb0bfc0feea3dce0b818e71e3685082cfa188eaf63d","typeString":"literal_string \"onERC721Received: They told me I have to fail\""},"value":"onERC721Received: They told me I have to fail"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46ae0231b151a29cb76b0eb0bfc0feea3dce0b818e71e3685082cfa188eaf63d","typeString":"literal_string \"onERC721Received: They told me I have to fail\""}],"id":24854,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2949:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2949:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24857,"nodeType":"ExpressionStatement","src":"2949:55:83"},"id":24858,"nodeType":"IfStatement","src":"2869:135:83","trueBody":{"AST":{"nativeSrc":"2903:34:83","nodeType":"YulBlock","src":"2903:34:83","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2922:1:83","nodeType":"YulLiteral","src":"2922:1:83","type":"","value":"0"},{"kind":"number","nativeSrc":"2925:1:83","nodeType":"YulLiteral","src":"2925:1:83","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2915:6:83","nodeType":"YulIdentifier","src":"2915:6:83"},"nativeSrc":"2915:12:83","nodeType":"YulFunctionCall","src":"2915:12:83"},"nativeSrc":"2915:12:83","nodeType":"YulExpressionStatement","src":"2915:12:83"}]},"evmVersion":"cancun","externalReferences":[],"id":24853,"nodeType":"InlineAssembly","src":"2894:43:83"}}},{"expression":{"id":24862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24860,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24602,"src":"3011:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24861,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24843,"src":"3022:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3011:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24863,"nodeType":"ExpressionStatement","src":"3011:20:83"},{"expression":{"id":24870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24864,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24604,"src":"3037:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":24867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3051:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":24866,"name":"uint256","nodeType":"ElementaryTypeName","src":"3051:7:83","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":24865,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3046:4:83","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":24868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3046:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":24869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3060:3:83","memberName":"max","nodeType":"MemberAccess","src":"3046:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3037:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24871,"nodeType":"ExpressionStatement","src":"3037:26:83"},{"eventCall":{"arguments":[{"expression":{"id":24873,"name":"NotificationKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24627,"src":"3095:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_NotificationKind_$24627_$","typeString":"type(enum PolicyHolderMock.NotificationKind)"}},"id":24874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3112:14:83","memberName":"PolicyReceived","nodeType":"MemberAccess","referencedDeclaration":24623,"src":"3095:31:83","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"}},{"id":24875,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24843,"src":"3128:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24876,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24839,"src":"3139:8:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24877,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24841,"src":"3149:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":24872,"name":"NotificationReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24638,"src":"3074:20:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_NotificationKind_$24627_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (enum PolicyHolderMock.NotificationKind,uint256,address,address)"}},"id":24878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3074:80:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24879,"nodeType":"EmitStatement","src":"3069:85:83"},{"condition":{"id":24880,"name":"badlyImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24614,"src":"3165:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24886,"nodeType":"IfStatement","src":"3161:47:83","trueBody":{"expression":{"arguments":[{"hexValue":"30783062616466303064","id":24883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3197:10:83","typeDescriptions":{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"},"value":"0x0badf00d"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"}],"id":24882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3190:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":24881,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3190:6:83","typeDescriptions":{}}},"id":24884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3190:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24850,"id":24885,"nodeType":"Return","src":"3183:25:83"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24887,"name":"spendGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24796,"src":"3215:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3215:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24889,"nodeType":"ExpressionStatement","src":"3215:10:83"},{"expression":{"expression":{"expression":{"id":24890,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6612,"src":"3239:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$6612_$","typeString":"type(contract IERC721Receiver)"}},"id":24891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3255:16:83","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6611,"src":"3239:32:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":24892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3272:8:83","memberName":"selector","nodeType":"MemberAccess","src":"3239:41:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24850,"id":24893,"nodeType":"Return","src":"3232:48:83"}]},"functionSelector":"150b7a02","id":24895,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"2708:16:83","nodeType":"FunctionDefinition","overrides":{"id":24847,"nodeType":"OverrideSpecifier","overrides":[],"src":"2821:8:83"},"parameters":{"id":24846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24839,"mutability":"mutable","name":"operator","nameLocation":"2738:8:83","nodeType":"VariableDeclaration","scope":24895,"src":"2730:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24838,"name":"address","nodeType":"ElementaryTypeName","src":"2730:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24841,"mutability":"mutable","name":"from","nameLocation":"2760:4:83","nodeType":"VariableDeclaration","scope":24895,"src":"2752:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24840,"name":"address","nodeType":"ElementaryTypeName","src":"2752:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24843,"mutability":"mutable","name":"policyId_","nameLocation":"2778:9:83","nodeType":"VariableDeclaration","scope":24895,"src":"2770:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24842,"name":"uint256","nodeType":"ElementaryTypeName","src":"2770:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24895,"src":"2793:14:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24844,"name":"bytes","nodeType":"ElementaryTypeName","src":"2793:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2724:87:83"},"returnParameters":{"id":24850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24895,"src":"2839:6:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24848,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2839:6:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2838:8:83"},"scope":25064,"src":"2699:586:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23615],"body":{"id":24946,"nodeType":"Block","src":"3400:416:83","statements":[{"condition":{"id":24907,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24606,"src":"3410:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24915,"nodeType":"IfStatement","src":"3406:150:83","trueBody":{"condition":{"id":24908,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"3426:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"hexValue":"6f6e506f6c696379457870697265643a205468657920746f6c64206d652049206861766520746f206661696c","id":24911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3509:46:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_66a42fcc0cb3a241433f702d08559d4868da600fb6c417c0d22bf3e4e199a226","typeString":"literal_string \"onPolicyExpired: They told me I have to fail\""},"value":"onPolicyExpired: They told me I have to fail"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66a42fcc0cb3a241433f702d08559d4868da600fb6c417c0d22bf3e4e199a226","typeString":"literal_string \"onPolicyExpired: They told me I have to fail\""}],"id":24910,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3502:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3502:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24913,"nodeType":"ExpressionStatement","src":"3502:54:83"},"id":24914,"nodeType":"IfStatement","src":"3422:134:83","trueBody":{"AST":{"nativeSrc":"3456:34:83","nodeType":"YulBlock","src":"3456:34:83","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3475:1:83","nodeType":"YulLiteral","src":"3475:1:83","type":"","value":"0"},{"kind":"number","nativeSrc":"3478:1:83","nodeType":"YulLiteral","src":"3478:1:83","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3468:6:83","nodeType":"YulIdentifier","src":"3468:6:83"},"nativeSrc":"3468:12:83","nodeType":"YulFunctionCall","src":"3468:12:83"},"nativeSrc":"3468:12:83","nodeType":"YulExpressionStatement","src":"3468:12:83"}]},"evmVersion":"cancun","externalReferences":[],"id":24909,"nodeType":"InlineAssembly","src":"3447:43:83"}}},{"expression":{"id":24918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24916,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24602,"src":"3562:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24917,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24901,"src":"3573:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3562:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24919,"nodeType":"ExpressionStatement","src":"3562:20:83"},{"expression":{"id":24922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24920,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24604,"src":"3588:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":24921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3597:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3588:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24923,"nodeType":"ExpressionStatement","src":"3588:10:83"},{"eventCall":{"arguments":[{"expression":{"id":24925,"name":"NotificationKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24627,"src":"3630:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_NotificationKind_$24627_$","typeString":"type(enum PolicyHolderMock.NotificationKind)"}},"id":24926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3647:13:83","memberName":"PolicyExpired","nodeType":"MemberAccess","referencedDeclaration":24625,"src":"3630:30:83","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"}},{"id":24927,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24901,"src":"3662:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24928,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24897,"src":"3673:8:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24929,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24899,"src":"3683:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":24924,"name":"NotificationReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24638,"src":"3609:20:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_NotificationKind_$24627_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (enum PolicyHolderMock.NotificationKind,uint256,address,address)"}},"id":24930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:79:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24931,"nodeType":"EmitStatement","src":"3604:84:83"},{"condition":{"id":24932,"name":"badlyImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24614,"src":"3699:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24938,"nodeType":"IfStatement","src":"3695:47:83","trueBody":{"expression":{"arguments":[{"hexValue":"30783062616466303064","id":24935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3731:10:83","typeDescriptions":{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"},"value":"0x0badf00d"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"}],"id":24934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3724:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":24933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3724:6:83","typeDescriptions":{}}},"id":24936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3724:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24906,"id":24937,"nodeType":"Return","src":"3717:25:83"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24939,"name":"spendGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24796,"src":"3749:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24941,"nodeType":"ExpressionStatement","src":"3749:10:83"},{"expression":{"expression":{"expression":{"id":24942,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"3773:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":24943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3787:15:83","memberName":"onPolicyExpired","nodeType":"MemberAccess","referencedDeclaration":23615,"src":"3773:29:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes4_$","typeString":"function IPolicyHolder.onPolicyExpired(address,address,uint256) returns (bytes4)"}},"id":24944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3803:8:83","memberName":"selector","nodeType":"MemberAccess","src":"3773:38:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24906,"id":24945,"nodeType":"Return","src":"3766:45:83"}]},"functionSelector":"e8e617b7","id":24947,"implemented":true,"kind":"function","modifiers":[],"name":"onPolicyExpired","nameLocation":"3298:15:83","nodeType":"FunctionDefinition","overrides":{"id":24903,"nodeType":"OverrideSpecifier","overrides":[],"src":"3374:8:83"},"parameters":{"id":24902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24897,"mutability":"mutable","name":"operator","nameLocation":"3322:8:83","nodeType":"VariableDeclaration","scope":24947,"src":"3314:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24896,"name":"address","nodeType":"ElementaryTypeName","src":"3314:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24899,"mutability":"mutable","name":"from","nameLocation":"3340:4:83","nodeType":"VariableDeclaration","scope":24947,"src":"3332:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24898,"name":"address","nodeType":"ElementaryTypeName","src":"3332:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24901,"mutability":"mutable","name":"policyId_","nameLocation":"3354:9:83","nodeType":"VariableDeclaration","scope":24947,"src":"3346:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24900,"name":"uint256","nodeType":"ElementaryTypeName","src":"3346:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3313:51:83"},"returnParameters":{"id":24906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24947,"src":"3392:6:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24904,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3392:6:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3391:8:83"},"scope":25064,"src":"3289:527:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23629],"body":{"id":25001,"nodeType":"Block","src":"4030:424:83","statements":[{"condition":{"id":24962,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24606,"src":"4040:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24970,"nodeType":"IfStatement","src":"4036:151:83","trueBody":{"condition":{"id":24963,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"4056:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"hexValue":"6f6e5061796f757452656365697665643a205468657920746f6c64206d652049206861766520746f206661696c","id":24966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4139:47:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_58698f5e11d9176307777359c7e820c4c719f9fb53f283df2e9b7afae0920593","typeString":"literal_string \"onPayoutReceived: They told me I have to fail\""},"value":"onPayoutReceived: They told me I have to fail"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58698f5e11d9176307777359c7e820c4c719f9fb53f283df2e9b7afae0920593","typeString":"literal_string \"onPayoutReceived: They told me I have to fail\""}],"id":24965,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4132:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24968,"nodeType":"ExpressionStatement","src":"4132:55:83"},"id":24969,"nodeType":"IfStatement","src":"4052:135:83","trueBody":{"AST":{"nativeSrc":"4086:34:83","nodeType":"YulBlock","src":"4086:34:83","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4105:1:83","nodeType":"YulLiteral","src":"4105:1:83","type":"","value":"0"},{"kind":"number","nativeSrc":"4108:1:83","nodeType":"YulLiteral","src":"4108:1:83","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4098:6:83","nodeType":"YulIdentifier","src":"4098:6:83"},"nativeSrc":"4098:12:83","nodeType":"YulFunctionCall","src":"4098:12:83"},"nativeSrc":"4098:12:83","nodeType":"YulExpressionStatement","src":"4098:12:83"}]},"evmVersion":"cancun","externalReferences":[],"id":24964,"nodeType":"InlineAssembly","src":"4077:43:83"}}},{"expression":{"id":24973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24971,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24602,"src":"4193:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24972,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24954,"src":"4204:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4193:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24974,"nodeType":"ExpressionStatement","src":"4193:20:83"},{"expression":{"id":24977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24975,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24604,"src":"4219:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24976,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24956,"src":"4228:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4219:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24978,"nodeType":"ExpressionStatement","src":"4219:15:83"},{"eventCall":{"arguments":[{"expression":{"id":24980,"name":"NotificationKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24627,"src":"4266:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_NotificationKind_$24627_$","typeString":"type(enum PolicyHolderMock.NotificationKind)"}},"id":24981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4283:14:83","memberName":"PayoutReceived","nodeType":"MemberAccess","referencedDeclaration":24624,"src":"4266:31:83","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"}},{"id":24982,"name":"policyId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24954,"src":"4299:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24983,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24950,"src":"4310:8:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24984,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24952,"src":"4320:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":24979,"name":"NotificationReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24638,"src":"4245:20:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_NotificationKind_$24627_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (enum PolicyHolderMock.NotificationKind,uint256,address,address)"}},"id":24985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4245:80:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24986,"nodeType":"EmitStatement","src":"4240:85:83"},{"condition":{"id":24987,"name":"badlyImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24614,"src":"4336:16:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24993,"nodeType":"IfStatement","src":"4332:47:83","trueBody":{"expression":{"arguments":[{"hexValue":"30783062616466303064","id":24990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4368:10:83","typeDescriptions":{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"},"value":"0x0badf00d"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"}],"id":24989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4361:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":24988,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4361:6:83","typeDescriptions":{}}},"id":24991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4361:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24961,"id":24992,"nodeType":"Return","src":"4354:25:83"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24994,"name":"spendGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24796,"src":"4386:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4386:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24996,"nodeType":"ExpressionStatement","src":"4386:10:83"},{"expression":{"expression":{"expression":{"id":24997,"name":"IPolicyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23630,"src":"4410:13:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolder_$23630_$","typeString":"type(contract IPolicyHolder)"}},"id":24998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4424:16:83","memberName":"onPayoutReceived","nodeType":"MemberAccess","referencedDeclaration":23629,"src":"4410:30:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function IPolicyHolder.onPayoutReceived(address,address,uint256,uint256) returns (bytes4)"}},"id":24999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4441:8:83","memberName":"selector","nodeType":"MemberAccess","src":"4410:39:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":24961,"id":25000,"nodeType":"Return","src":"4403:46:83"}]},"documentation":{"id":24948,"nodeType":"StructuredDocumentation","src":"3820:59:83","text":" @dev See {IPolicyHolderV2-onPayoutReceived}."},"functionSelector":"d6281d3e","id":25002,"implemented":true,"kind":"function","modifiers":[],"name":"onPayoutReceived","nameLocation":"3891:16:83","nodeType":"FunctionDefinition","overrides":{"id":24958,"nodeType":"OverrideSpecifier","overrides":[],"src":"4004:8:83"},"parameters":{"id":24957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24950,"mutability":"mutable","name":"operator","nameLocation":"3921:8:83","nodeType":"VariableDeclaration","scope":25002,"src":"3913:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24949,"name":"address","nodeType":"ElementaryTypeName","src":"3913:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24952,"mutability":"mutable","name":"from","nameLocation":"3943:4:83","nodeType":"VariableDeclaration","scope":25002,"src":"3935:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24951,"name":"address","nodeType":"ElementaryTypeName","src":"3935:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24954,"mutability":"mutable","name":"policyId_","nameLocation":"3961:9:83","nodeType":"VariableDeclaration","scope":25002,"src":"3953:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24953,"name":"uint256","nodeType":"ElementaryTypeName","src":"3953:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24956,"mutability":"mutable","name":"amount","nameLocation":"3984:6:83","nodeType":"VariableDeclaration","scope":25002,"src":"3976:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24955,"name":"uint256","nodeType":"ElementaryTypeName","src":"3976:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:87:83"},"returnParameters":{"id":24961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25002,"src":"4022:6:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24959,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4022:6:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4021:8:83"},"scope":25064,"src":"3882:572:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23651],"body":{"id":25062,"nodeType":"Block","src":"4675:519:83","statements":[{"condition":{"id":25017,"name":"noV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24620,"src":"4685:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25022,"nodeType":"IfStatement","src":"4681:64:83","trueBody":{"expression":{"arguments":[{"hexValue":"53686f756c646e27742063616c6c2074686973206d6574686f64206966205632206e6f7420656e61626c6564","id":25019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4698:46:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ab3b890edc2e3a20f2e8014d51f519c243000d3ee24cd1631a05b868a89f13","typeString":"literal_string \"Shouldn't call this method if V2 not enabled\""},"value":"Shouldn't call this method if V2 not enabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40ab3b890edc2e3a20f2e8014d51f519c243000d3ee24cd1631a05b868a89f13","typeString":"literal_string \"Shouldn't call this method if V2 not enabled\""}],"id":25018,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4691:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":25020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4691:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25021,"nodeType":"ExpressionStatement","src":"4691:54:83"}},{"condition":{"id":25023,"name":"failReplace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24608,"src":"4755:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25031,"nodeType":"IfStatement","src":"4751:158:83","trueBody":{"condition":{"id":25024,"name":"emptyRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"4778:11:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"hexValue":"6f6e506f6c6963795265706c616365643a205468657920746f6c64206d652049206861766520746f206661696c","id":25027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4861:47:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ddfbdd1d4ac69255d0a55452a77fbdbf1242396b0bad9544763e87828ab15fb","typeString":"literal_string \"onPolicyReplaced: They told me I have to fail\""},"value":"onPolicyReplaced: They told me I have to fail"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7ddfbdd1d4ac69255d0a55452a77fbdbf1242396b0bad9544763e87828ab15fb","typeString":"literal_string \"onPolicyReplaced: They told me I have to fail\""}],"id":25026,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4854:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":25028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4854:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25029,"nodeType":"ExpressionStatement","src":"4854:55:83"},"id":25030,"nodeType":"IfStatement","src":"4774:135:83","trueBody":{"AST":{"nativeSrc":"4808:34:83","nodeType":"YulBlock","src":"4808:34:83","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4827:1:83","nodeType":"YulLiteral","src":"4827:1:83","type":"","value":"0"},{"kind":"number","nativeSrc":"4830:1:83","nodeType":"YulLiteral","src":"4830:1:83","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4820:6:83","nodeType":"YulIdentifier","src":"4820:6:83"},"nativeSrc":"4820:12:83","nodeType":"YulFunctionCall","src":"4820:12:83"},"nativeSrc":"4820:12:83","nodeType":"YulExpressionStatement","src":"4820:12:83"}]},"evmVersion":"cancun","externalReferences":[],"id":25025,"nodeType":"InlineAssembly","src":"4799:43:83"}}},{"expression":{"id":25034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25032,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24602,"src":"4915:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25033,"name":"oldPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25009,"src":"4926:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4915:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25035,"nodeType":"ExpressionStatement","src":"4915:22:83"},{"expression":{"id":25038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25036,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24604,"src":"4943:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25037,"name":"newPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25011,"src":"4952:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4943:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25039,"nodeType":"ExpressionStatement","src":"4943:20:83"},{"eventCall":{"arguments":[{"expression":{"id":25041,"name":"NotificationKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24627,"src":"4995:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_NotificationKind_$24627_$","typeString":"type(enum PolicyHolderMock.NotificationKind)"}},"id":25042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5012:14:83","memberName":"PolicyReplaced","nodeType":"MemberAccess","referencedDeclaration":24626,"src":"4995:31:83","typeDescriptions":{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"}},{"id":25043,"name":"oldPolicyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25009,"src":"5028:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25044,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25005,"src":"5041:8:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25045,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25007,"src":"5051:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_NotificationKind_$24627","typeString":"enum PolicyHolderMock.NotificationKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":25040,"name":"NotificationReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24638,"src":"4974:20:83","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_NotificationKind_$24627_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (enum PolicyHolderMock.NotificationKind,uint256,address,address)"}},"id":25046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4974:82:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25047,"nodeType":"EmitStatement","src":"4969:87:83"},{"condition":{"id":25048,"name":"badlyImplementedReplace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"5067:23:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25054,"nodeType":"IfStatement","src":"5063:54:83","trueBody":{"expression":{"arguments":[{"hexValue":"30783062616466303064","id":25051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5106:10:83","typeDescriptions":{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"},"value":"0x0badf00d"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_195948557_by_1","typeString":"int_const 195948557"}],"id":25050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5099:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":25049,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5099:6:83","typeDescriptions":{}}},"id":25052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":25016,"id":25053,"nodeType":"Return","src":"5092:25:83"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":25055,"name":"spendGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24796,"src":"5124:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":25056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5124:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25057,"nodeType":"ExpressionStatement","src":"5124:10:83"},{"expression":{"expression":{"expression":{"id":25058,"name":"IPolicyHolderV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"5148:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyHolderV2_$23652_$","typeString":"type(contract IPolicyHolderV2)"}},"id":25059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5164:16:83","memberName":"onPolicyReplaced","nodeType":"MemberAccess","referencedDeclaration":23651,"src":"5148:32:83","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bytes4_$","typeString":"function IPolicyHolderV2.onPolicyReplaced(address,address,uint256,uint256) returns (bytes4)"}},"id":25060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5181:8:83","memberName":"selector","nodeType":"MemberAccess","src":"5148:41:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":25016,"id":25061,"nodeType":"Return","src":"5141:48:83"}]},"documentation":{"id":25003,"nodeType":"StructuredDocumentation","src":"4458:59:83","text":" @dev See {IPolicyHolderV2-onPolicyReplaced}."},"functionSelector":"5ee0c7dd","id":25063,"implemented":true,"kind":"function","modifiers":[],"name":"onPolicyReplaced","nameLocation":"4529:16:83","nodeType":"FunctionDefinition","overrides":{"id":25013,"nodeType":"OverrideSpecifier","overrides":[],"src":"4649:8:83"},"parameters":{"id":25012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25005,"mutability":"mutable","name":"operator","nameLocation":"4559:8:83","nodeType":"VariableDeclaration","scope":25063,"src":"4551:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25004,"name":"address","nodeType":"ElementaryTypeName","src":"4551:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25007,"mutability":"mutable","name":"from","nameLocation":"4581:4:83","nodeType":"VariableDeclaration","scope":25063,"src":"4573:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25006,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25009,"mutability":"mutable","name":"oldPolicyId","nameLocation":"4599:11:83","nodeType":"VariableDeclaration","scope":25063,"src":"4591:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25008,"name":"uint256","nodeType":"ElementaryTypeName","src":"4591:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25011,"mutability":"mutable","name":"newPolicyId","nameLocation":"4624:11:83","nodeType":"VariableDeclaration","scope":25063,"src":"4616:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25010,"name":"uint256","nodeType":"ElementaryTypeName","src":"4616:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4545:94:83"},"returnParameters":{"id":25016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25063,"src":"4667:6:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":25014,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4667:6:83","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4666:8:83"},"scope":25064,"src":"4520:674:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25065,"src":"441:4755:83","usedErrors":[],"usedEvents":[24638]}],"src":"39:5158:83"},"id":83},"contracts/mocks/PolicyPoolComponentMock.sol":{"ast":{"absolutePath":"contracts/mocks/PolicyPoolComponentMock.sol","exportedSymbols":{"IERC165":[7883],"IPolicyPool":[23806],"IPolicyPoolComponent":[23823],"PolicyPoolComponentMock":[25123]},"id":25124,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25066,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:84"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":25068,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25124,"sourceUnit":7884,"src":"64:80:84","symbolAliases":[{"foreign":{"id":25067,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"72:7:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":25070,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25124,"sourceUnit":23807,"src":"145:58:84","symbolAliases":[{"foreign":{"id":25069,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"153:11:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPolicyPoolComponent.sol","file":"../interfaces/IPolicyPoolComponent.sol","id":25072,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25124,"sourceUnit":23824,"src":"204:76:84","symbolAliases":[{"foreign":{"id":25071,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"212:20:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25073,"name":"IPolicyPoolComponent","nameLocations":["318:20:84"],"nodeType":"IdentifierPath","referencedDeclaration":23823,"src":"318:20:84"},"id":25074,"nodeType":"InheritanceSpecifier","src":"318:20:84"}],"canonicalName":"PolicyPoolComponentMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25123,"linearizedBaseContracts":[25123,23823,7883],"name":"PolicyPoolComponentMock","nameLocation":"291:23:84","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":25077,"mutability":"immutable","name":"_policyPool","nameLocation":"374:11:84","nodeType":"VariableDeclaration","scope":25123,"src":"343:42:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":25076,"nodeType":"UserDefinedTypeName","pathNode":{"id":25075,"name":"IPolicyPool","nameLocations":["343:11:84"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"343:11:84"},"referencedDeclaration":23806,"src":"343:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"body":{"id":25087,"nodeType":"Block","src":"427:36:84","statements":[{"expression":{"id":25085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25083,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25077,"src":"433:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25084,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"447:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"src":"433:25:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":25086,"nodeType":"ExpressionStatement","src":"433:25:84"}]},"id":25088,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25080,"mutability":"mutable","name":"policyPool_","nameLocation":"414:11:84","nodeType":"VariableDeclaration","scope":25088,"src":"402:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":25079,"nodeType":"UserDefinedTypeName","pathNode":{"id":25078,"name":"IPolicyPool","nameLocations":["402:11:84"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"402:11:84"},"referencedDeclaration":23806,"src":"402:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"401:25:84"},"returnParameters":{"id":25082,"nodeType":"ParameterList","parameters":[],"src":"427:0:84"},"scope":25123,"src":"390:73:84","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[23822],"body":{"id":25097,"nodeType":"Block","src":"534:29:84","statements":[{"expression":{"id":25095,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25077,"src":"547:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"functionReturnParameters":25094,"id":25096,"nodeType":"Return","src":"540:18:84"}]},"functionSelector":"4d15eb03","id":25098,"implemented":true,"kind":"function","modifiers":[],"name":"policyPool","nameLocation":"476:10:84","nodeType":"FunctionDefinition","overrides":{"id":25090,"nodeType":"OverrideSpecifier","overrides":[],"src":"503:8:84"},"parameters":{"id":25089,"nodeType":"ParameterList","parameters":[],"src":"486:2:84"},"returnParameters":{"id":25094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25098,"src":"521:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":25092,"nodeType":"UserDefinedTypeName","pathNode":{"id":25091,"name":"IPolicyPool","nameLocations":["521:11:84"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"521:11:84"},"referencedDeclaration":23806,"src":"521:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"}],"src":"520:13:84"},"scope":25123,"src":"467:96:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[7882],"body":{"id":25121,"nodeType":"Block","src":"713:115:84","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":25112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25107,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25101,"src":"726:11:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":25109,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7883,"src":"746:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7883_$","typeString":"type(contract IERC165)"}],"id":25108,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"741:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":25110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7883","typeString":"type(contract IERC165)"}},"id":25111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"755:11:84","memberName":"interfaceId","nodeType":"MemberAccess","src":"741:25:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"726:40:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":25118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25113,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25101,"src":"770:11:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":25115,"name":"IPolicyPoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23823,"src":"790:20:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPolicyPoolComponent_$23823_$","typeString":"type(contract IPolicyPoolComponent)"}],"id":25114,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"785:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":25116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"785:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPolicyPoolComponent_$23823","typeString":"type(contract IPolicyPoolComponent)"}},"id":25117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:11:84","memberName":"interfaceId","nodeType":"MemberAccess","src":"785:38:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"770:53:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"726:97:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":25106,"id":25120,"nodeType":"Return","src":"719:104:84"}]},"documentation":{"id":25099,"nodeType":"StructuredDocumentation","src":"567:52:84","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":25122,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"631:17:84","nodeType":"FunctionDefinition","overrides":{"id":25103,"nodeType":"OverrideSpecifier","overrides":[],"src":"689:8:84"},"parameters":{"id":25102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25101,"mutability":"mutable","name":"interfaceId","nameLocation":"656:11:84","nodeType":"VariableDeclaration","scope":25122,"src":"649:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":25100,"name":"bytes4","nodeType":"ElementaryTypeName","src":"649:6:84","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"648:20:84"},"returnParameters":{"id":25106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25122,"src":"707:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25104,"name":"bool","nodeType":"ElementaryTypeName","src":"707:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"706:6:84"},"scope":25123,"src":"622:206:84","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":25124,"src":"282:548:84","usedErrors":[],"usedEvents":[]}],"src":"39:792:84"},"id":84},"contracts/mocks/PolicyPoolMock.sol":{"ast":{"absolutePath":"contracts/mocks/PolicyPoolMock.sol","exportedSymbols":{"ForwardProxy":[24453],"IAccessManager":[23370],"IERC20Metadata":[6066],"IEToken":[23549],"IPolicyPool":[23806],"IRiskModule":[23983],"Policy":[15439],"PolicyPoolMock":[25565],"PolicyPoolMockForward":[25619]},"id":25620,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25125,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:85"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":25127,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":23807,"src":"64:58:85","symbolAliases":[{"foreign":{"id":25126,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IRiskModule.sol","file":"../interfaces/IRiskModule.sol","id":25129,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":23984,"src":"123:58:85","symbolAliases":[{"foreign":{"id":25128,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"131:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEToken.sol","file":"../interfaces/IEToken.sol","id":25131,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":23550,"src":"182:50:85","symbolAliases":[{"foreign":{"id":25130,"name":"IEToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23549,"src":"190:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccessManager.sol","file":"../interfaces/IAccessManager.sol","id":25133,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":23371,"src":"233:64:85","symbolAliases":[{"foreign":{"id":25132,"name":"IAccessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"241:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":25135,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":6067,"src":"298:97:85","symbolAliases":[{"foreign":{"id":25134,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"306:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"../Policy.sol","id":25137,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":15440,"src":"396:37:85","symbolAliases":[{"foreign":{"id":25136,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"404:6:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/mocks/ForwardProxy.sol","file":"./ForwardProxy.sol","id":25139,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25620,"sourceUnit":24454,"src":"434:48:85","symbolAliases":[{"foreign":{"id":25138,"name":"ForwardProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24453,"src":"442:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25140,"name":"IPolicyPool","nameLocations":["511:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"511:11:85"},"id":25141,"nodeType":"InheritanceSpecifier","src":"511:11:85"}],"canonicalName":"PolicyPoolMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25565,"linearizedBaseContracts":[25565,23806],"name":"PolicyPoolMock","nameLocation":"493:14:85","nodeType":"ContractDefinition","nodes":[{"global":false,"id":25145,"libraryName":{"id":25142,"name":"Policy","nameLocations":["533:6:85"],"nodeType":"IdentifierPath","referencedDeclaration":15439,"src":"533:6:85"},"nodeType":"UsingForDirective","src":"527:35:85","typeName":{"id":25144,"nodeType":"UserDefinedTypeName","pathNode":{"id":25143,"name":"Policy.PolicyData","nameLocations":["544:6:85","551:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"544:17:85"},"referencedDeclaration":14966,"src":"544:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}}},{"constant":true,"functionSelector":"098d3228","id":25148,"mutability":"constant","name":"MAX_INT","nameLocation":"590:7:85","nodeType":"VariableDeclaration","scope":25565,"src":"566:100:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25146,"name":"uint256","nodeType":"ElementaryTypeName","src":"566:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":25147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:66:85","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"public"},{"constant":false,"id":25151,"mutability":"mutable","name":"_currency","nameLocation":"695:9:85","nodeType":"VariableDeclaration","scope":25565,"src":"671:33:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25150,"nodeType":"UserDefinedTypeName","pathNode":{"id":25149,"name":"IERC20Metadata","nameLocations":["671:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"671:14:85"},"referencedDeclaration":6066,"src":"671:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":25154,"mutability":"mutable","name":"_access","nameLocation":"732:7:85","nodeType":"VariableDeclaration","scope":25565,"src":"708:31:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25153,"nodeType":"UserDefinedTypeName","pathNode":{"id":25152,"name":"IAccessManager","nameLocations":["708:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"708:14:85"},"referencedDeclaration":23370,"src":"708:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"},{"constant":false,"id":25159,"mutability":"mutable","name":"policies","nameLocation":"791:8:85","nodeType":"VariableDeclaration","scope":25565,"src":"744:55:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PolicyData_$14966_storage_$","typeString":"mapping(uint256 => struct Policy.PolicyData)"},"typeName":{"id":25158,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25155,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"744:37:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PolicyData_$14966_storage_$","typeString":"mapping(uint256 => struct Policy.PolicyData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25157,"nodeType":"UserDefinedTypeName","pathNode":{"id":25156,"name":"Policy.PolicyData","nameLocations":["763:6:85","770:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"763:17:85"},"referencedDeclaration":14966,"src":"763:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}}},"visibility":"internal"},{"constant":false,"id":25163,"mutability":"mutable","name":"policyHashes","nameLocation":"840:12:85","nodeType":"VariableDeclaration","scope":25565,"src":"803:49:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":25162,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25160,"name":"uint256","nodeType":"ElementaryTypeName","src":"811:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"803:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"body":{"id":25180,"nodeType":"Block","src":"919:55:85","statements":[{"expression":{"id":25174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25172,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25151,"src":"925:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25173,"name":"currency_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25166,"src":"937:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"src":"925:21:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":25175,"nodeType":"ExpressionStatement","src":"925:21:85"},{"expression":{"id":25178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25176,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25154,"src":"952:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25177,"name":"access_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25169,"src":"962:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"src":"952:17:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":25179,"nodeType":"ExpressionStatement","src":"952:17:85"}]},"id":25181,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25166,"mutability":"mutable","name":"currency_","nameLocation":"884:9:85","nodeType":"VariableDeclaration","scope":25181,"src":"869:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25165,"nodeType":"UserDefinedTypeName","pathNode":{"id":25164,"name":"IERC20Metadata","nameLocations":["869:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"869:14:85"},"referencedDeclaration":6066,"src":"869:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":25169,"mutability":"mutable","name":"access_","nameLocation":"910:7:85","nodeType":"VariableDeclaration","scope":25181,"src":"895:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25168,"nodeType":"UserDefinedTypeName","pathNode":{"id":25167,"name":"IAccessManager","nameLocations":["895:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"895:14:85"},"referencedDeclaration":23370,"src":"895:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"868:50:85"},"returnParameters":{"id":25171,"nodeType":"ParameterList","parameters":[],"src":"919:0:85"},"scope":25565,"src":"857:117:85","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[23700],"body":{"id":25190,"nodeType":"Block","src":"1046:27:85","statements":[{"expression":{"id":25188,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25151,"src":"1059:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"functionReturnParameters":25187,"id":25189,"nodeType":"Return","src":"1052:16:85"}]},"functionSelector":"e5a6b10f","id":25191,"implemented":true,"kind":"function","modifiers":[],"name":"currency","nameLocation":"987:8:85","nodeType":"FunctionDefinition","overrides":{"id":25183,"nodeType":"OverrideSpecifier","overrides":[],"src":"1012:8:85"},"parameters":{"id":25182,"nodeType":"ParameterList","parameters":[],"src":"995:2:85"},"returnParameters":{"id":25187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25191,"src":"1030:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25185,"nodeType":"UserDefinedTypeName","pathNode":{"id":25184,"name":"IERC20Metadata","nameLocations":["1030:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"1030:14:85"},"referencedDeclaration":6066,"src":"1030:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"1029:16:85"},"scope":25565,"src":"978:95:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23707],"body":{"id":25200,"nodeType":"Block","src":"1143:25:85","statements":[{"expression":{"id":25198,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25154,"src":"1156:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"functionReturnParameters":25197,"id":25199,"nodeType":"Return","src":"1149:14:85"}]},"functionSelector":"71907f17","id":25201,"implemented":true,"kind":"function","modifiers":[],"name":"access","nameLocation":"1086:6:85","nodeType":"FunctionDefinition","overrides":{"id":25193,"nodeType":"OverrideSpecifier","overrides":[],"src":"1109:8:85"},"parameters":{"id":25192,"nodeType":"ParameterList","parameters":[],"src":"1092:2:85"},"returnParameters":{"id":25197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25201,"src":"1127:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25195,"nodeType":"UserDefinedTypeName","pathNode":{"id":25194,"name":"IAccessManager","nameLocations":["1127:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"1127:14:85"},"referencedDeclaration":23370,"src":"1127:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"1126:16:85"},"scope":25565,"src":"1077:91:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23713],"body":{"id":25212,"nodeType":"Block","src":"1233:28:85","statements":[{"expression":{"arguments":[{"hexValue":"30","id":25209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1254:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1246:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25207,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:85","typeDescriptions":{}}},"id":25210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25206,"id":25211,"nodeType":"Return","src":"1239:17:85"}]},"functionSelector":"61d027b3","id":25213,"implemented":true,"kind":"function","modifiers":[],"name":"treasury","nameLocation":"1181:8:85","nodeType":"FunctionDefinition","overrides":{"id":25203,"nodeType":"OverrideSpecifier","overrides":[],"src":"1206:8:85"},"parameters":{"id":25202,"nodeType":"ParameterList","parameters":[],"src":"1189:2:85"},"returnParameters":{"id":25206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25213,"src":"1224:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25204,"name":"address","nodeType":"ElementaryTypeName","src":"1224:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1223:9:85"},"scope":25565,"src":"1172:89:85","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[23728],"body":{"id":25269,"nodeType":"Block","src":"1441:208:85","statements":[{"expression":{"id":25247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":25228,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1447:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1454:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"1447:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":25237,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1484:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1491:10:85","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"1484:17:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":25236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1476:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25235,"name":"address","nodeType":"ElementaryTypeName","src":"1476:7:85","typeDescriptions":{}}},"id":25239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1476:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1468:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":25233,"name":"uint160","nodeType":"ElementaryTypeName","src":"1468:7:85","typeDescriptions":{}}},"id":25240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1468:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":25232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1460:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":25231,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:85","typeDescriptions":{}}},"id":25241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1460:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":25242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1508:2:85","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"1460:50:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25244,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1459:52:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25245,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25222,"src":"1514:10:85","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1459:65:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1447:77:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25248,"nodeType":"ExpressionStatement","src":"1447:77:85"},{"expression":{"id":25256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25249,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"1530:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25252,"indexExpression":{"expression":{"id":25250,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1543:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1550:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"1543:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1530:23:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25253,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1556:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1563:4:85","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"1556:11:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":25255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1556:13:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1530:39:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":25257,"nodeType":"ExpressionStatement","src":"1530:39:85"},{"eventCall":{"arguments":[{"arguments":[{"expression":{"id":25260,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1602:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1606:6:85","memberName":"sender","nodeType":"MemberAccess","src":"1602:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25259,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"1590:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":25262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":25263,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1615:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":25258,"name":"NewPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"1580:9:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (contract IRiskModule,struct Policy.PolicyData memory)"}},"id":25264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:42:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25265,"nodeType":"EmitStatement","src":"1575:47:85"},{"expression":{"expression":{"id":25266,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"1635:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1642:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"1635:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25227,"id":25268,"nodeType":"Return","src":"1628:16:85"}]},"functionSelector":"6769a76f","id":25270,"implemented":true,"kind":"function","modifiers":[],"name":"newPolicy","nameLocation":"1274:9:85","nodeType":"FunctionDefinition","overrides":{"id":25224,"nodeType":"OverrideSpecifier","overrides":[],"src":"1414:8:85"},"parameters":{"id":25223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25216,"mutability":"mutable","name":"policy","nameLocation":"1314:6:85","nodeType":"VariableDeclaration","scope":25270,"src":"1289:31:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25215,"nodeType":"UserDefinedTypeName","pathNode":{"id":25214,"name":"Policy.PolicyData","nameLocations":["1289:6:85","1296:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1289:17:85"},"referencedDeclaration":14966,"src":"1289:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25270,"src":"1326:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25217,"name":"address","nodeType":"ElementaryTypeName","src":"1326:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25270,"src":"1351:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25219,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25222,"mutability":"mutable","name":"internalId","nameLocation":"1390:10:85","nodeType":"VariableDeclaration","scope":25270,"src":"1383:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25221,"name":"uint96","nodeType":"ElementaryTypeName","src":"1383:6:85","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1283:121:85"},"returnParameters":{"id":25227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25270,"src":"1432:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1432:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1431:9:85"},"scope":25565,"src":"1265:384:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23744],"body":{"id":25341,"nodeType":"Block","src":"1845:333:85","statements":[{"expression":{"id":25305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":25286,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"1851:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1862:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"1851:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":25295,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"1892:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1903:10:85","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"1892:21:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":25294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1884:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25293,"name":"address","nodeType":"ElementaryTypeName","src":"1884:7:85","typeDescriptions":{}}},"id":25297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1884:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1876:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":25291,"name":"uint160","nodeType":"ElementaryTypeName","src":"1876:7:85","typeDescriptions":{}}},"id":25298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":25290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1868:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":25289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1868:7:85","typeDescriptions":{}}},"id":25299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1868:48:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":25300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1920:2:85","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"1868:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1867:56:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25303,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25280,"src":"1926:10:85","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1867:69:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1851:85:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25306,"nodeType":"ExpressionStatement","src":"1851:85:85"},{"expression":{"id":25314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25307,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"1942:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25310,"indexExpression":{"expression":{"id":25308,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"1955:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1966:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"1955:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1942:27:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25311,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"1972:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1983:4:85","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"1972:15:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":25313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1972:17:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1942:47:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":25315,"nodeType":"ExpressionStatement","src":"1942:47:85"},{"assignments":[25318],"declarations":[{"constant":false,"id":25318,"mutability":"mutable","name":"rm","nameLocation":"2007:2:85","nodeType":"VariableDeclaration","scope":25341,"src":"1995:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":25317,"nodeType":"UserDefinedTypeName","pathNode":{"id":25316,"name":"IRiskModule","nameLocations":["1995:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"1995:11:85"},"referencedDeclaration":23983,"src":"1995:11:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"}],"id":25321,"initialValue":{"expression":{"id":25319,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25273,"src":"2012:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2022:10:85","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"2012:20:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"nodeType":"VariableDeclarationStatement","src":"1995:37:85"},{"eventCall":{"arguments":[{"id":25323,"name":"rm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25318,"src":"2053:2:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":25324,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"2057:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":25322,"name":"NewPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"2043:9:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (contract IRiskModule,struct Policy.PolicyData memory)"}},"id":25325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:25:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25326,"nodeType":"EmitStatement","src":"2038:30:85"},{"eventCall":{"arguments":[{"arguments":[{"expression":{"id":25329,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2106:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2110:6:85","memberName":"sender","nodeType":"MemberAccess","src":"2106:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25328,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"2094:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":25331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2094:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"expression":{"id":25332,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25273,"src":"2119:9:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2129:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2119:12:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":25334,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"2133:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2144:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2133:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25327,"name":"PolicyReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23683,"src":"2079:14:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (contract IRiskModule,uint256,uint256)"}},"id":25336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2079:68:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25337,"nodeType":"EmitStatement","src":"2074:73:85"},{"expression":{"expression":{"id":25338,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25276,"src":"2160:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2171:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2160:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25285,"id":25340,"nodeType":"Return","src":"2153:20:85"}]},"functionSelector":"3ed7c1ae","id":25342,"implemented":true,"kind":"function","modifiers":[],"name":"replacePolicy","nameLocation":"1662:13:85","nodeType":"FunctionDefinition","overrides":{"id":25282,"nodeType":"OverrideSpecifier","overrides":[],"src":"1818:8:85"},"parameters":{"id":25281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25273,"mutability":"mutable","name":"oldPolicy","nameLocation":"1706:9:85","nodeType":"VariableDeclaration","scope":25342,"src":"1681:34:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25272,"nodeType":"UserDefinedTypeName","pathNode":{"id":25271,"name":"Policy.PolicyData","nameLocations":["1681:6:85","1688:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1681:17:85"},"referencedDeclaration":14966,"src":"1681:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25276,"mutability":"mutable","name":"newPolicy_","nameLocation":"1746:10:85","nodeType":"VariableDeclaration","scope":25342,"src":"1721:35:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25275,"nodeType":"UserDefinedTypeName","pathNode":{"id":25274,"name":"Policy.PolicyData","nameLocations":["1721:6:85","1728:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"1721:17:85"},"referencedDeclaration":14966,"src":"1721:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25342,"src":"1762:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25277,"name":"address","nodeType":"ElementaryTypeName","src":"1762:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25280,"mutability":"mutable","name":"internalId","nameLocation":"1794:10:85","nodeType":"VariableDeclaration","scope":25342,"src":"1787:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25279,"name":"uint96","nodeType":"ElementaryTypeName","src":"1787:6:85","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1675:133:85"},"returnParameters":{"id":25285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25342,"src":"1836:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25283,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1835:9:85"},"scope":25565,"src":"1653:525:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25404,"nodeType":"Block","src":"2264:378:85","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25351,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2278:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2285:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2278:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":25353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2291:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2278:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c696379206e6f7420666f756e64","id":25355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2294:18:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79","typeString":"literal_string \"Policy not found\""},"value":"Policy not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79","typeString":"literal_string \"Policy not found\""}],"id":25350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2270:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2270:43:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25357,"nodeType":"ExpressionStatement","src":"2270:43:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":25366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25359,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2327:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:4:85","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":15438,"src":"2327:11:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PolicyData_$14966_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData memory) pure returns (bytes32)"}},"id":25361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2327:13:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":25362,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"2344:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25365,"indexExpression":{"expression":{"id":25363,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2357:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2364:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2357:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2344:23:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2327:40:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4861736820646f65736e2774206d61746368","id":25367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2369:20:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfce19cc5c9d715e1c1447fc4d85b7dd2f48c5fc48e7b8cdfb74121bafc6775d","typeString":"literal_string \"Hash doesn't match\""},"value":"Hash doesn't match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfce19cc5c9d715e1c1447fc4d85b7dd2f48c5fc48e7b8cdfb74121bafc6775d","typeString":"literal_string \"Hash doesn't match\""}],"id":25358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2319:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:71:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25369,"nodeType":"ExpressionStatement","src":"2319:71:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2404:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2408:6:85","memberName":"sender","nodeType":"MemberAccess","src":"2404:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":25375,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2426:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2433:10:85","memberName":"riskModule","nodeType":"MemberAccess","referencedDeclaration":14961,"src":"2426:17:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}],"id":25374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2418:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25373,"name":"address","nodeType":"ElementaryTypeName","src":"2418:7:85","typeDescriptions":{}}},"id":25377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2418:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2404:40:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f207265736f6c76652074686520706f6c696379","id":25379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2446:53:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c6e8f8f1986f173d0b52c2c973e7c4feadfc6927d78aa5a06bfebe82321d431","typeString":"literal_string \"Only riskModule is authorized to resolve the policy\""},"value":"Only riskModule is authorized to resolve the policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c6e8f8f1986f173d0b52c2c973e7c4feadfc6927d78aa5a06bfebe82321d431","typeString":"literal_string \"Only riskModule is authorized to resolve the policy\""}],"id":25370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2396:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2396:104:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25381,"nodeType":"ExpressionStatement","src":"2396:104:85"},{"expression":{"id":25386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2506:26:85","subExpression":{"baseExpression":{"id":25382,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25159,"src":"2513:8:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PolicyData_$14966_storage_$","typeString":"mapping(uint256 => struct Policy.PolicyData storage ref)"}},"id":25385,"indexExpression":{"expression":{"id":25383,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2522:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2529:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2522:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2513:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage","typeString":"struct Policy.PolicyData storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25387,"nodeType":"ExpressionStatement","src":"2506:26:85"},{"expression":{"id":25392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2538:30:85","subExpression":{"baseExpression":{"id":25388,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"2545:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25391,"indexExpression":{"expression":{"id":25389,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2558:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2565:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2558:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2545:23:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25393,"nodeType":"ExpressionStatement","src":"2538:30:85"},{"eventCall":{"arguments":[{"arguments":[{"expression":{"id":25396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2606:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2610:6:85","memberName":"sender","nodeType":"MemberAccess","src":"2606:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25395,"name":"IRiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23983,"src":"2594:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskModule_$23983_$","typeString":"type(contract IRiskModule)"}},"id":25398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"expression":{"id":25399,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25345,"src":"2619:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2626:2:85","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2619:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25401,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25347,"src":"2630:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25394,"name":"PolicyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23693,"src":"2579:14:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (contract IRiskModule,uint256,uint256)"}},"id":25402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:58:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25403,"nodeType":"EmitStatement","src":"2574:63:85"}]},"id":25405,"implemented":true,"kind":"function","modifiers":[],"name":"_resolvePolicy","nameLocation":"2191:14:85","nodeType":"FunctionDefinition","parameters":{"id":25348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25345,"mutability":"mutable","name":"policy","nameLocation":"2231:6:85","nodeType":"VariableDeclaration","scope":25405,"src":"2206:31:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25344,"nodeType":"UserDefinedTypeName","pathNode":{"id":25343,"name":"Policy.PolicyData","nameLocations":["2206:6:85","2213:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2206:17:85"},"referencedDeclaration":14966,"src":"2206:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25347,"mutability":"mutable","name":"payout","nameLocation":"2247:6:85","nodeType":"VariableDeclaration","scope":25405,"src":"2239:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25346,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2205:49:85"},"returnParameters":{"id":25349,"nodeType":"ParameterList","parameters":[],"src":"2264:0:85"},"scope":25565,"src":"2182:460:85","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[23753],"body":{"id":25419,"nodeType":"Block","src":"2738:41:85","statements":[{"expression":{"arguments":[{"id":25415,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25408,"src":"2759:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":25416,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25410,"src":"2767:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25414,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25405,"src":"2744:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256)"}},"id":25417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2744:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25418,"nodeType":"ExpressionStatement","src":"2744:30:85"}]},"functionSelector":"7a702b3c","id":25420,"implemented":true,"kind":"function","modifiers":[],"name":"resolvePolicy","nameLocation":"2655:13:85","nodeType":"FunctionDefinition","overrides":{"id":25412,"nodeType":"OverrideSpecifier","overrides":[],"src":"2729:8:85"},"parameters":{"id":25411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25408,"mutability":"mutable","name":"policy","nameLocation":"2696:6:85","nodeType":"VariableDeclaration","scope":25420,"src":"2669:33:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25407,"nodeType":"UserDefinedTypeName","pathNode":{"id":25406,"name":"Policy.PolicyData","nameLocations":["2669:6:85","2676:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2669:17:85"},"referencedDeclaration":14966,"src":"2669:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25410,"mutability":"mutable","name":"payout","nameLocation":"2712:6:85","nodeType":"VariableDeclaration","scope":25420,"src":"2704:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25409,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2668:51:85"},"returnParameters":{"id":25413,"nodeType":"ParameterList","parameters":[],"src":"2738:0:85"},"scope":25565,"src":"2646:133:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23769],"body":{"id":25432,"nodeType":"Block","src":"2858:36:85","statements":[{"expression":{"arguments":[{"id":25428,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25423,"src":"2879:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"hexValue":"30","id":25429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2887:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25427,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25405,"src":"2864:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256)"}},"id":25430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2864:25:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25431,"nodeType":"ExpressionStatement","src":"2864:25:85"}]},"functionSelector":"6af6f1ef","id":25433,"implemented":true,"kind":"function","modifiers":[],"name":"expirePolicy","nameLocation":"2792:12:85","nodeType":"FunctionDefinition","overrides":{"id":25425,"nodeType":"OverrideSpecifier","overrides":[],"src":"2849:8:85"},"parameters":{"id":25424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25423,"mutability":"mutable","name":"policy","nameLocation":"2832:6:85","nodeType":"VariableDeclaration","scope":25433,"src":"2805:33:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25422,"nodeType":"UserDefinedTypeName","pathNode":{"id":25421,"name":"Policy.PolicyData","nameLocations":["2805:6:85","2812:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2805:17:85"},"referencedDeclaration":14966,"src":"2805:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"src":"2804:35:85"},"returnParameters":{"id":25426,"nodeType":"ParameterList","parameters":[],"src":"2858:0:85"},"scope":25565,"src":"2783:111:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23762],"body":{"id":25451,"nodeType":"Block","src":"3002:73:85","statements":[{"expression":{"arguments":[{"id":25443,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25436,"src":"3030:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"condition":{"id":25444,"name":"customerWon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25438,"src":"3038:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":25447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3068:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":25448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3038:31:85","trueExpression":{"expression":{"id":25445,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25436,"src":"3052:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":25446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3059:6:85","memberName":"payout","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"3052:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25442,"name":"_resolvePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25405,"src":"3015:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256)"}},"id":25449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":25441,"id":25450,"nodeType":"Return","src":"3008:62:85"}]},"functionSelector":"ffa600e3","id":25452,"implemented":true,"kind":"function","modifiers":[],"name":"resolvePolicyFullPayout","nameLocation":"2907:23:85","nodeType":"FunctionDefinition","overrides":{"id":25440,"nodeType":"OverrideSpecifier","overrides":[],"src":"2993:8:85"},"parameters":{"id":25439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25436,"mutability":"mutable","name":"policy","nameLocation":"2958:6:85","nodeType":"VariableDeclaration","scope":25452,"src":"2931:33:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25435,"nodeType":"UserDefinedTypeName","pathNode":{"id":25434,"name":"Policy.PolicyData","nameLocations":["2931:6:85","2938:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2931:17:85"},"referencedDeclaration":14966,"src":"2931:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25438,"mutability":"mutable","name":"customerWon","nameLocation":"2971:11:85","nodeType":"VariableDeclaration","scope":25452,"src":"2966:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25437,"name":"bool","nodeType":"ElementaryTypeName","src":"2966:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2930:53:85"},"returnParameters":{"id":25441,"nodeType":"ParameterList","parameters":[],"src":"3002:0:85"},"scope":25565,"src":"2898:177:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[23777],"body":{"id":25469,"nodeType":"Block","src":"3153:54:85","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":25467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":25460,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"3166:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25462,"indexExpression":{"id":25461,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25454,"src":"3179:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3166:22:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":25465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3200:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3192:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":25463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3192:7:85","typeDescriptions":{}}},"id":25466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3192:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3166:36:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":25459,"id":25468,"nodeType":"Return","src":"3159:43:85"}]},"functionSelector":"82afd23b","id":25470,"implemented":true,"kind":"function","modifiers":[],"name":"isActive","nameLocation":"3088:8:85","nodeType":"FunctionDefinition","overrides":{"id":25456,"nodeType":"OverrideSpecifier","overrides":[],"src":"3129:8:85"},"parameters":{"id":25455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25454,"mutability":"mutable","name":"policyId","nameLocation":"3105:8:85","nodeType":"VariableDeclaration","scope":25470,"src":"3097:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25453,"name":"uint256","nodeType":"ElementaryTypeName","src":"3097:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3096:18:85"},"returnParameters":{"id":25459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25470,"src":"3147:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25457,"name":"bool","nodeType":"ElementaryTypeName","src":"3147:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3146:6:85"},"scope":25565,"src":"3079:128:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23785],"body":{"id":25482,"nodeType":"Block","src":"3293:40:85","statements":[{"expression":{"baseExpression":{"id":25478,"name":"policyHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25163,"src":"3306:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":25480,"indexExpression":{"id":25479,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25472,"src":"3319:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3306:22:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":25477,"id":25481,"nodeType":"Return","src":"3299:29:85"}]},"functionSelector":"792da09e","id":25483,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyHash","nameLocation":"3220:13:85","nodeType":"FunctionDefinition","overrides":{"id":25474,"nodeType":"OverrideSpecifier","overrides":[],"src":"3266:8:85"},"parameters":{"id":25473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25472,"mutability":"mutable","name":"policyId","nameLocation":"3242:8:85","nodeType":"VariableDeclaration","scope":25483,"src":"3234:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25471,"name":"uint256","nodeType":"ElementaryTypeName","src":"3234:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3233:18:85"},"returnParameters":{"id":25477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25483,"src":"3284:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3284:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3283:9:85"},"scope":25565,"src":"3211:122:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[23794],"body":{"id":25496,"nodeType":"Block","src":"3395:44:85","statements":[{"expression":{"arguments":[{"hexValue":"4e6f7420496d706c656d656e746564206465706f736974","id":25493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3408:25:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_4056b1a890a2c3818b7771ad8e47567b7f58fbbd321bfc4356d4990f533b901a","typeString":"literal_string \"Not Implemented deposit\""},"value":"Not Implemented deposit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4056b1a890a2c3818b7771ad8e47567b7f58fbbd321bfc4356d4990f533b901a","typeString":"literal_string \"Not Implemented deposit\""}],"id":25492,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3401:6:85","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":25494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3401:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25495,"nodeType":"ExpressionStatement","src":"3401:33:85"}]},"functionSelector":"47e7ef24","id":25497,"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"3346:7:85","nodeType":"FunctionDefinition","overrides":{"id":25490,"nodeType":"OverrideSpecifier","overrides":[],"src":"3386:8:85"},"parameters":{"id":25489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25497,"src":"3354:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":25485,"nodeType":"UserDefinedTypeName","pathNode":{"id":25484,"name":"IEToken","nameLocations":["3354:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"3354:7:85"},"referencedDeclaration":23549,"src":"3354:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":25488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25497,"src":"3363:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25487,"name":"uint256","nodeType":"ElementaryTypeName","src":"3363:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3353:18:85"},"returnParameters":{"id":25491,"nodeType":"ParameterList","parameters":[],"src":"3395:0:85"},"scope":25565,"src":"3337:102:85","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[23805],"body":{"id":25512,"nodeType":"Block","src":"3520:45:85","statements":[{"expression":{"arguments":[{"hexValue":"4e6f7420496d706c656d656e746564207769746864726177","id":25509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3533:26:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1c133ca691942c2b9c7b9bbdea503640377a82463f9986cfe69df5983647c2d","typeString":"literal_string \"Not Implemented withdraw\""},"value":"Not Implemented withdraw"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1c133ca691942c2b9c7b9bbdea503640377a82463f9986cfe69df5983647c2d","typeString":"literal_string \"Not Implemented withdraw\""}],"id":25508,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3526:6:85","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":25510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3526:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25511,"nodeType":"ExpressionStatement","src":"3526:34:85"}]},"functionSelector":"f3fef3a3","id":25513,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"3452:8:85","nodeType":"FunctionDefinition","overrides":{"id":25504,"nodeType":"OverrideSpecifier","overrides":[],"src":"3493:8:85"},"parameters":{"id":25503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25513,"src":"3461:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"},"typeName":{"id":25499,"nodeType":"UserDefinedTypeName","pathNode":{"id":25498,"name":"IEToken","nameLocations":["3461:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":23549,"src":"3461:7:85"},"referencedDeclaration":23549,"src":"3461:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IEToken_$23549","typeString":"contract IEToken"}},"visibility":"internal"},{"constant":false,"id":25502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25513,"src":"3470:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25501,"name":"uint256","nodeType":"ElementaryTypeName","src":"3470:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3460:18:85"},"returnParameters":{"id":25507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25513,"src":"3511:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25505,"name":"uint256","nodeType":"ElementaryTypeName","src":"3511:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3510:9:85"},"scope":25565,"src":"3443:122:85","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":25563,"nodeType":"Block","src":"3865:258:85","statements":[{"assignments":[25537],"declarations":[{"constant":false,"id":25537,"mutability":"mutable","name":"policy","nameLocation":"3896:6:85","nodeType":"VariableDeclaration","scope":25563,"src":"3871:31:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25536,"nodeType":"UserDefinedTypeName","pathNode":{"id":25535,"name":"Policy.PolicyData","nameLocations":["3871:6:85","3878:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3871:17:85"},"referencedDeclaration":14966,"src":"3871:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"}],"id":25557,"initialValue":{"arguments":[{"id":25540,"name":"riskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25517,"src":"3930:10:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":25541,"name":"rmParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25520,"src":"3948:8:85","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}},{"id":25542,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"3964:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25543,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25524,"src":"3979:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25544,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25526,"src":"3993:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25545,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"4009:10:85","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":25548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25546,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25530,"src":"4027:5:85","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":25547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4036:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4027:10:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":25554,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25530,"src":"4066:5:85","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":25555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4027:44:85","trueExpression":{"arguments":[{"expression":{"id":25551,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4047:5:85","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4053:9:85","memberName":"timestamp","nodeType":"MemberAccess","src":"4047:15:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4040:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":25549,"name":"uint40","nodeType":"ElementaryTypeName","src":"4040:6:85","typeDescriptions":{}}},"id":25553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":25538,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"3905:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Policy_$15439_$","typeString":"type(library Policy)"}},"id":25539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3912:10:85","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":15300,"src":"3905:17:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IRiskModule_$23983_$_t_struct$_Params_$23926_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_uint40_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (contract IRiskModule,struct IRiskModule.Params memory,uint256,uint256,uint256,uint40,uint40) pure returns (struct Policy.PolicyData memory)"}},"id":25556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3905:172:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"nodeType":"VariableDeclarationStatement","src":"3871:206:85"},{"eventCall":{"arguments":[{"id":25559,"name":"riskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25517,"src":"4099:10:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},{"id":25560,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25537,"src":"4111:6:85","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}],"id":25558,"name":"NewPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"4089:9:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_IRiskModule_$23983_$_t_struct$_PolicyData_$14966_memory_ptr_$returns$__$","typeString":"function (contract IRiskModule,struct Policy.PolicyData memory)"}},"id":25561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25562,"nodeType":"EmitStatement","src":"4084:34:85"}]},"documentation":{"id":25514,"nodeType":"StructuredDocumentation","src":"3569:75:85","text":" @dev Simple passthrough method for testing Policy.initialize"},"functionSelector":"68d9523c","id":25564,"implemented":true,"kind":"function","modifiers":[],"name":"initializeAndEmitPolicy","nameLocation":"3656:23:85","nodeType":"FunctionDefinition","parameters":{"id":25531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25517,"mutability":"mutable","name":"riskModule","nameLocation":"3697:10:85","nodeType":"VariableDeclaration","scope":25564,"src":"3685:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"},"typeName":{"id":25516,"nodeType":"UserDefinedTypeName","pathNode":{"id":25515,"name":"IRiskModule","nameLocations":["3685:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":23983,"src":"3685:11:85"},"referencedDeclaration":23983,"src":"3685:11:85","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskModule_$23983","typeString":"contract IRiskModule"}},"visibility":"internal"},{"constant":false,"id":25520,"mutability":"mutable","name":"rmParams","nameLocation":"3739:8:85","nodeType":"VariableDeclaration","scope":25564,"src":"3713:34:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params"},"typeName":{"id":25519,"nodeType":"UserDefinedTypeName","pathNode":{"id":25518,"name":"IRiskModule.Params","nameLocations":["3713:11:85","3725:6:85"],"nodeType":"IdentifierPath","referencedDeclaration":23926,"src":"3713:18:85"},"referencedDeclaration":23926,"src":"3713:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_storage_ptr","typeString":"struct IRiskModule.Params"}},"visibility":"internal"},{"constant":false,"id":25522,"mutability":"mutable","name":"premium","nameLocation":"3761:7:85","nodeType":"VariableDeclaration","scope":25564,"src":"3753:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25521,"name":"uint256","nodeType":"ElementaryTypeName","src":"3753:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25524,"mutability":"mutable","name":"payout","nameLocation":"3782:6:85","nodeType":"VariableDeclaration","scope":25564,"src":"3774:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25523,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25526,"mutability":"mutable","name":"lossProb","nameLocation":"3802:8:85","nodeType":"VariableDeclaration","scope":25564,"src":"3794:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25525,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25528,"mutability":"mutable","name":"expiration","nameLocation":"3823:10:85","nodeType":"VariableDeclaration","scope":25564,"src":"3816:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":25527,"name":"uint40","nodeType":"ElementaryTypeName","src":"3816:6:85","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":25530,"mutability":"mutable","name":"start","nameLocation":"3846:5:85","nodeType":"VariableDeclaration","scope":25564,"src":"3839:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":25529,"name":"uint40","nodeType":"ElementaryTypeName","src":"3839:6:85","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"3679:176:85"},"returnParameters":{"id":25532,"nodeType":"ParameterList","parameters":[],"src":"3865:0:85"},"scope":25565,"src":"3647:476:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25620,"src":"484:3641:85","usedErrors":[],"usedEvents":[23673,23683,23693]},{"abstract":false,"baseContracts":[{"baseName":{"id":25567,"name":"ForwardProxy","nameLocations":["4391:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":24453,"src":"4391:12:85"},"id":25568,"nodeType":"InheritanceSpecifier","src":"4391:12:85"}],"canonicalName":"PolicyPoolMockForward","contractDependencies":[],"contractKind":"contract","documentation":{"id":25566,"nodeType":"StructuredDocumentation","src":"4127:229:85","text":" @title PolicyPoolMockForward\n @dev PolicyPool that forwards fallback calls to another contract. Used to simulate calls to EToken\n      and other contracts that have functions that can be called only from PolicyPool"},"fullyImplemented":true,"id":25619,"linearizedBaseContracts":[25619,24453,4739],"name":"PolicyPoolMockForward","nameLocation":"4366:21:85","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"098d3228","id":25571,"mutability":"constant","name":"MAX_INT","nameLocation":"4432:7:85","nodeType":"VariableDeclaration","scope":25619,"src":"4408:100:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25569,"name":"uint256","nodeType":"ElementaryTypeName","src":"4408:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":25570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4442:66:85","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"public"},{"constant":false,"id":25574,"mutability":"mutable","name":"_currency","nameLocation":"4537:9:85","nodeType":"VariableDeclaration","scope":25619,"src":"4513:33:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25573,"nodeType":"UserDefinedTypeName","pathNode":{"id":25572,"name":"IERC20Metadata","nameLocations":["4513:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"4513:14:85"},"referencedDeclaration":6066,"src":"4513:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":25577,"mutability":"mutable","name":"_access","nameLocation":"4574:7:85","nodeType":"VariableDeclaration","scope":25619,"src":"4550:31:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25576,"nodeType":"UserDefinedTypeName","pathNode":{"id":25575,"name":"IAccessManager","nameLocations":["4550:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"4550:14:85"},"referencedDeclaration":23370,"src":"4550:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"},{"body":{"id":25599,"nodeType":"Block","src":"4691:55:85","statements":[{"expression":{"id":25593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25591,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25574,"src":"4697:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25592,"name":"currency_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25582,"src":"4709:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"src":"4697:21:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"id":25594,"nodeType":"ExpressionStatement","src":"4697:21:85"},{"expression":{"id":25597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25595,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25577,"src":"4724:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25596,"name":"access_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25585,"src":"4734:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"src":"4724:17:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"id":25598,"nodeType":"ExpressionStatement","src":"4724:17:85"}]},"id":25600,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25588,"name":"forwardTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25579,"src":"4680:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":25589,"kind":"baseConstructorSpecifier","modifierName":{"id":25587,"name":"ForwardProxy","nameLocations":["4667:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":24453,"src":"4667:12:85"},"nodeType":"ModifierInvocation","src":"4667:23:85"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25579,"mutability":"mutable","name":"forwardTo","nameLocation":"4606:9:85","nodeType":"VariableDeclaration","scope":25600,"src":"4598:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25578,"name":"address","nodeType":"ElementaryTypeName","src":"4598:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25582,"mutability":"mutable","name":"currency_","nameLocation":"4632:9:85","nodeType":"VariableDeclaration","scope":25600,"src":"4617:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25581,"nodeType":"UserDefinedTypeName","pathNode":{"id":25580,"name":"IERC20Metadata","nameLocations":["4617:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"4617:14:85"},"referencedDeclaration":6066,"src":"4617:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"},{"constant":false,"id":25585,"mutability":"mutable","name":"access_","nameLocation":"4658:7:85","nodeType":"VariableDeclaration","scope":25600,"src":"4643:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25584,"nodeType":"UserDefinedTypeName","pathNode":{"id":25583,"name":"IAccessManager","nameLocations":["4643:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"4643:14:85"},"referencedDeclaration":23370,"src":"4643:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"4597:69:85"},"returnParameters":{"id":25590,"nodeType":"ParameterList","parameters":[],"src":"4691:0:85"},"scope":25619,"src":"4586:160:85","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25608,"nodeType":"Block","src":"4809:27:85","statements":[{"expression":{"id":25606,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25574,"src":"4822:9:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"functionReturnParameters":25605,"id":25607,"nodeType":"Return","src":"4815:16:85"}]},"functionSelector":"e5a6b10f","id":25609,"implemented":true,"kind":"function","modifiers":[],"name":"currency","nameLocation":"4759:8:85","nodeType":"FunctionDefinition","parameters":{"id":25601,"nodeType":"ParameterList","parameters":[],"src":"4767:2:85"},"returnParameters":{"id":25605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25609,"src":"4793:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"},"typeName":{"id":25603,"nodeType":"UserDefinedTypeName","pathNode":{"id":25602,"name":"IERC20Metadata","nameLocations":["4793:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":6066,"src":"4793:14:85"},"referencedDeclaration":6066,"src":"4793:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$6066","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"4792:16:85"},"scope":25619,"src":"4750:86:85","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":25617,"nodeType":"Block","src":"4897:25:85","statements":[{"expression":{"id":25615,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25577,"src":"4910:7:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"functionReturnParameters":25614,"id":25616,"nodeType":"Return","src":"4903:14:85"}]},"functionSelector":"71907f17","id":25618,"implemented":true,"kind":"function","modifiers":[],"name":"access","nameLocation":"4849:6:85","nodeType":"FunctionDefinition","parameters":{"id":25610,"nodeType":"ParameterList","parameters":[],"src":"4855:2:85"},"returnParameters":{"id":25614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25618,"src":"4881:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"},"typeName":{"id":25612,"nodeType":"UserDefinedTypeName","pathNode":{"id":25611,"name":"IAccessManager","nameLocations":["4881:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":23370,"src":"4881:14:85"},"referencedDeclaration":23370,"src":"4881:14:85","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessManager_$23370","typeString":"contract IAccessManager"}},"visibility":"internal"}],"src":"4880:16:85"},"scope":25619,"src":"4840:82:85","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":25620,"src":"4357:567:85","usedErrors":[],"usedEvents":[]}],"src":"39:4886:85"},"id":85},"contracts/mocks/RiskModuleMock.sol":{"ast":{"absolutePath":"contracts/mocks/RiskModuleMock.sol","exportedSymbols":{"IERC721":[6594],"IPolicyPool":[23806],"IPremiumsAccount":[23886],"Policy":[15439],"RiskModule":[21466],"RiskModuleMock":[25861]},"id":25862,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25621,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:86"},{"absolutePath":"contracts/interfaces/IPolicyPool.sol","file":"../interfaces/IPolicyPool.sol","id":25623,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25862,"sourceUnit":23807,"src":"64:58:86","symbolAliases":[{"foreign":{"id":25622,"name":"IPolicyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"72:11:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IPremiumsAccount.sol","file":"../interfaces/IPremiumsAccount.sol","id":25625,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25862,"sourceUnit":23887,"src":"123:68:86","symbolAliases":[{"foreign":{"id":25624,"name":"IPremiumsAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"131:16:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskModule.sol","file":"../RiskModule.sol","id":25627,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25862,"sourceUnit":21467,"src":"192:45:86","symbolAliases":[{"foreign":{"id":25626,"name":"RiskModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21466,"src":"200:10:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Policy.sol","file":"../Policy.sol","id":25629,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25862,"sourceUnit":15440,"src":"238:37:86","symbolAliases":[{"foreign":{"id":25628,"name":"Policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"246:6:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"@openzeppelin/contracts/interfaces/IERC721.sol","id":25631,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25862,"sourceUnit":4337,"src":"276:71:86","symbolAliases":[{"foreign":{"id":25630,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"284:7:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25633,"name":"RiskModule","nameLocations":["608:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"608:10:86"},"id":25634,"nodeType":"InheritanceSpecifier","src":"608:10:86"}],"canonicalName":"RiskModuleMock","contractDependencies":[],"contractKind":"contract","documentation":{"id":25632,"nodeType":"StructuredDocumentation","src":"349:230:86","text":" @title Trustful Risk Module\n @dev Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by\nauthorized users\n @custom:security-contact security@ensuro.co\n @author Ensuro"},"fullyImplemented":true,"id":25861,"linearizedBaseContracts":[25861,21466,18100,23823,7883,1209,2704,1081,765,430,440,944,23983],"name":"RiskModuleMock","nameLocation":"590:14:86","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"fbb81279","id":25639,"mutability":"constant","name":"PRICER_ROLE","nameLocation":"647:11:86","nodeType":"VariableDeclaration","scope":25861,"src":"623:62:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"623:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5052494345525f524f4c45","id":25637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"671:13:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""},"value":"PRICER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a","typeString":"literal_string \"PRICER_ROLE\""}],"id":25636,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"661:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"78fab260","id":25644,"mutability":"constant","name":"RESOLVER_ROLE","nameLocation":"713:13:86","nodeType":"VariableDeclaration","scope":25861,"src":"689:66:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"689:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245534f4c5645525f524f4c45","id":25642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"739:15:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""},"value":"RESOLVER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb1","typeString":"literal_string \"RESOLVER_ROLE\""}],"id":25641,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"729:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"729:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"af0e7e0c","id":25649,"mutability":"constant","name":"REPLACER_ROLE","nameLocation":"783:13:86","nodeType":"VariableDeclaration","scope":25861,"src":"759:66:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245504c414345525f524f4c45","id":25647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"809:15:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""},"value":"REPLACER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d074555","typeString":"literal_string \"REPLACER_ROLE\""}],"id":25646,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"799:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":25663,"nodeType":"Block","src":"1042:2:86","statements":[]},"documentation":{"id":25650,"nodeType":"StructuredDocumentation","src":"830:48:86","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":25664,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25659,"name":"policyPool_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25653,"src":"1011:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},{"id":25660,"name":"premiumsAccount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25656,"src":"1024:16:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}}],"id":25661,"kind":"baseConstructorSpecifier","modifierName":{"id":25658,"name":"RiskModule","nameLocations":["1000:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":21466,"src":"1000:10:86"},"nodeType":"ModifierInvocation","src":"1000:41:86"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25653,"mutability":"mutable","name":"policyPool_","nameLocation":"952:11:86","nodeType":"VariableDeclaration","scope":25664,"src":"940:23:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"},"typeName":{"id":25652,"nodeType":"UserDefinedTypeName","pathNode":{"id":25651,"name":"IPolicyPool","nameLocations":["940:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":23806,"src":"940:11:86"},"referencedDeclaration":23806,"src":"940:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"visibility":"internal"},{"constant":false,"id":25656,"mutability":"mutable","name":"premiumsAccount_","nameLocation":"982:16:86","nodeType":"VariableDeclaration","scope":25664,"src":"965:33:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"},"typeName":{"id":25655,"nodeType":"UserDefinedTypeName","pathNode":{"id":25654,"name":"IPremiumsAccount","nameLocations":["965:16:86"],"nodeType":"IdentifierPath","referencedDeclaration":23886,"src":"965:16:86"},"referencedDeclaration":23886,"src":"965:16:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPremiumsAccount_$23886","typeString":"contract IPremiumsAccount"}},"visibility":"internal"}],"src":"939:60:86"},"returnParameters":{"id":25662,"nodeType":"ParameterList","parameters":[],"src":"1042:0:86"},"scope":25861,"src":"928:116:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25694,"nodeType":"Block","src":"1855:115:86","statements":[{"expression":{"arguments":[{"id":25685,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25667,"src":"1879:5:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25686,"name":"collRatio_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25669,"src":"1886:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25687,"name":"ensuroPpFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25671,"src":"1898:12:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25688,"name":"srRoc_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25673,"src":"1912:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25689,"name":"maxPayoutPerPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"1920:19:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25690,"name":"exposureLimit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25677,"src":"1941:14:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25691,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25679,"src":"1957:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":25684,"name":"__RiskModule_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20302,"src":"1861:17:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,uint256,uint256,uint256,uint256,uint256,address)"}},"id":25692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:104:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25693,"nodeType":"ExpressionStatement","src":"1861:104:86"}]},"documentation":{"id":25665,"nodeType":"StructuredDocumentation","src":"1048:584:86","text":" @dev Initializes the RiskModule\n @param name_ Name of the Risk Module\n @param collRatio_ Collateralization ratio to compute solvency requirement as % of payout (in ray)\n @param ensuroPpFee_ % of pure premium that will go for Ensuro treasury (in ray)\n @param srRoc_ return on capital paid to Senior LPs (annualized percentage - in ray)\n @param maxPayoutPerPolicy_ Maximum payout per policy (in wad)\n @param exposureLimit_ Max exposure (sum of payouts) to be allocated to this module (in wad)\n @param wallet_ Address of the RiskModule provider"},"functionSelector":"6f0dbe6f","id":25695,"implemented":true,"kind":"function","modifiers":[{"id":25682,"kind":"modifierInvocation","modifierName":{"id":25681,"name":"initializer","nameLocations":["1843:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":846,"src":"1843:11:86"},"nodeType":"ModifierInvocation","src":"1843:11:86"}],"name":"initialize","nameLocation":"1644:10:86","nodeType":"FunctionDefinition","parameters":{"id":25680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25667,"mutability":"mutable","name":"name_","nameLocation":"1674:5:86","nodeType":"VariableDeclaration","scope":25695,"src":"1660:19:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25666,"name":"string","nodeType":"ElementaryTypeName","src":"1660:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25669,"mutability":"mutable","name":"collRatio_","nameLocation":"1693:10:86","nodeType":"VariableDeclaration","scope":25695,"src":"1685:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1685:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25671,"mutability":"mutable","name":"ensuroPpFee_","nameLocation":"1717:12:86","nodeType":"VariableDeclaration","scope":25695,"src":"1709:20:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25673,"mutability":"mutable","name":"srRoc_","nameLocation":"1743:6:86","nodeType":"VariableDeclaration","scope":25695,"src":"1735:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1735:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25675,"mutability":"mutable","name":"maxPayoutPerPolicy_","nameLocation":"1763:19:86","nodeType":"VariableDeclaration","scope":25695,"src":"1755:27:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25674,"name":"uint256","nodeType":"ElementaryTypeName","src":"1755:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25677,"mutability":"mutable","name":"exposureLimit_","nameLocation":"1796:14:86","nodeType":"VariableDeclaration","scope":25695,"src":"1788:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25676,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25679,"mutability":"mutable","name":"wallet_","nameLocation":"1824:7:86","nodeType":"VariableDeclaration","scope":25695,"src":"1816:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25678,"name":"address","nodeType":"ElementaryTypeName","src":"1816:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1654:181:86"},"returnParameters":{"id":25683,"nodeType":"ParameterList","parameters":[],"src":"1855:0:86"},"scope":25861,"src":"1635:335:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25728,"nodeType":"Block","src":"2207:101:86","statements":[{"expression":{"expression":{"arguments":[{"id":25718,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25697,"src":"2231:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25719,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25699,"src":"2239:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25720,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25701,"src":"2248:8:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25721,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25703,"src":"2258:10:86","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":25722,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25705,"src":"2270:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25723,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25707,"src":"2277:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25724,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25709,"src":"2289:10:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":25717,"name":"_newPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21071,"src":"2220:10:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_address_$_t_uint96_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint40,address,address,uint96) returns (struct Policy.PolicyData memory)"}},"id":25725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:80:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:2:86","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"2220:83:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25716,"id":25727,"nodeType":"Return","src":"2213:90:86"}]},"functionSelector":"86e7db4d","id":25729,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25712,"name":"PRICER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25639,"src":"2176:11:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":25713,"kind":"modifierInvocation","modifierName":{"id":25711,"name":"onlyComponentRole","nameLocations":["2158:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"2158:17:86"},"nodeType":"ModifierInvocation","src":"2158:30:86"}],"name":"newPolicy","nameLocation":"1983:9:86","nodeType":"FunctionDefinition","parameters":{"id":25710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25697,"mutability":"mutable","name":"payout","nameLocation":"2006:6:86","nodeType":"VariableDeclaration","scope":25729,"src":"1998:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1998:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25699,"mutability":"mutable","name":"premium","nameLocation":"2026:7:86","nodeType":"VariableDeclaration","scope":25729,"src":"2018:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25698,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25701,"mutability":"mutable","name":"lossProb","nameLocation":"2047:8:86","nodeType":"VariableDeclaration","scope":25729,"src":"2039:16:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25700,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25703,"mutability":"mutable","name":"expiration","nameLocation":"2068:10:86","nodeType":"VariableDeclaration","scope":25729,"src":"2061:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":25702,"name":"uint40","nodeType":"ElementaryTypeName","src":"2061:6:86","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":25705,"mutability":"mutable","name":"payer","nameLocation":"2092:5:86","nodeType":"VariableDeclaration","scope":25729,"src":"2084:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25704,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25707,"mutability":"mutable","name":"onBehalfOf","nameLocation":"2111:10:86","nodeType":"VariableDeclaration","scope":25729,"src":"2103:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25706,"name":"address","nodeType":"ElementaryTypeName","src":"2103:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25709,"mutability":"mutable","name":"internalId","nameLocation":"2134:10:86","nodeType":"VariableDeclaration","scope":25729,"src":"2127:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25708,"name":"uint96","nodeType":"ElementaryTypeName","src":"2127:6:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1992:156:86"},"returnParameters":{"id":25716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25729,"src":"2198:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25714,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2197:9:86"},"scope":25861,"src":"1974:334:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25751,"nodeType":"Block","src":"2470:80:86","statements":[{"expression":{"arguments":[{"id":25745,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25732,"src":"2505:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":25746,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25734,"src":"2513:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25747,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25736,"src":"2520:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25748,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25738,"src":"2534:10:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":25743,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2483:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":25744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2495:9:86","memberName":"newPolicy","nodeType":"MemberAccess","referencedDeclaration":23728,"src":"2483:21:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_address_$_t_address_$_t_uint96_$returns$_t_uint256_$","typeString":"function (struct Policy.PolicyData memory,address,address,uint96) external returns (uint256)"}},"id":25749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:62:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25742,"id":25750,"nodeType":"Return","src":"2476:69:86"}]},"functionSelector":"f6c507d4","id":25752,"implemented":true,"kind":"function","modifiers":[],"name":"newPolicyRaw","nameLocation":"2321:12:86","nodeType":"FunctionDefinition","parameters":{"id":25739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25732,"mutability":"mutable","name":"policy","nameLocation":"2364:6:86","nodeType":"VariableDeclaration","scope":25752,"src":"2339:31:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25731,"nodeType":"UserDefinedTypeName","pathNode":{"id":25730,"name":"Policy.PolicyData","nameLocations":["2339:6:86","2346:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2339:17:86"},"referencedDeclaration":14966,"src":"2339:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25734,"mutability":"mutable","name":"payer","nameLocation":"2384:5:86","nodeType":"VariableDeclaration","scope":25752,"src":"2376:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25733,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25736,"mutability":"mutable","name":"policyHolder","nameLocation":"2403:12:86","nodeType":"VariableDeclaration","scope":25752,"src":"2395:20:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25735,"name":"address","nodeType":"ElementaryTypeName","src":"2395:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25738,"mutability":"mutable","name":"internalId","nameLocation":"2428:10:86","nodeType":"VariableDeclaration","scope":25752,"src":"2421:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25737,"name":"uint96","nodeType":"ElementaryTypeName","src":"2421:6:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2333:109:86"},"returnParameters":{"id":25742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25752,"src":"2461:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2461:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2460:9:86"},"scope":25861,"src":"2312:238:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25770,"nodeType":"Block","src":"2670:52:86","statements":[{"expression":{"arguments":[{"id":25766,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25755,"src":"2702:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":25767,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25757,"src":"2710:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25763,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2676:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":25765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2688:13:86","memberName":"resolvePolicy","nodeType":"MemberAccess","referencedDeclaration":23753,"src":"2676:25:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256) external"}},"id":25768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2676:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25769,"nodeType":"ExpressionStatement","src":"2676:41:86"}]},"functionSelector":"7a702b3c","id":25771,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25760,"name":"RESOLVER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25644,"src":"2655:13:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":25761,"kind":"modifierInvocation","modifierName":{"id":25759,"name":"onlyComponentRole","nameLocations":["2637:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"2637:17:86"},"nodeType":"ModifierInvocation","src":"2637:32:86"}],"name":"resolvePolicy","nameLocation":"2563:13:86","nodeType":"FunctionDefinition","parameters":{"id":25758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25755,"mutability":"mutable","name":"policy","nameLocation":"2604:6:86","nodeType":"VariableDeclaration","scope":25771,"src":"2577:33:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25754,"nodeType":"UserDefinedTypeName","pathNode":{"id":25753,"name":"Policy.PolicyData","nameLocations":["2577:6:86","2584:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2577:17:86"},"referencedDeclaration":14966,"src":"2577:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25757,"mutability":"mutable","name":"payout","nameLocation":"2620:6:86","nodeType":"VariableDeclaration","scope":25771,"src":"2612:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25756,"name":"uint256","nodeType":"ElementaryTypeName","src":"2612:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2576:51:86"},"returnParameters":{"id":25762,"nodeType":"ParameterList","parameters":[],"src":"2670:0:86"},"scope":25861,"src":"2554:168:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25785,"nodeType":"Block","src":"2812:59:86","statements":[{"expression":{"arguments":[{"id":25781,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25774,"src":"2851:6:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":25782,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25776,"src":"2859:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25779,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"2825:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":25780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2837:13:86","memberName":"resolvePolicy","nodeType":"MemberAccess","referencedDeclaration":23753,"src":"2825:25:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Policy.PolicyData memory,uint256) external"}},"id":25783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2825:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":25778,"id":25784,"nodeType":"Return","src":"2818:48:86"}]},"functionSelector":"cb1719a1","id":25786,"implemented":true,"kind":"function","modifiers":[],"name":"resolvePolicyRaw","nameLocation":"2735:16:86","nodeType":"FunctionDefinition","parameters":{"id":25777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25774,"mutability":"mutable","name":"policy","nameLocation":"2779:6:86","nodeType":"VariableDeclaration","scope":25786,"src":"2752:33:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25773,"nodeType":"UserDefinedTypeName","pathNode":{"id":25772,"name":"Policy.PolicyData","nameLocations":["2752:6:86","2759:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2752:17:86"},"referencedDeclaration":14966,"src":"2752:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25776,"mutability":"mutable","name":"payout","nameLocation":"2795:6:86","nodeType":"VariableDeclaration","scope":25786,"src":"2787:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2787:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2751:51:86"},"returnParameters":{"id":25778,"nodeType":"ParameterList","parameters":[],"src":"2812:0:86"},"scope":25861,"src":"2726:145:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25835,"nodeType":"Block","src":"3127:197:86","statements":[{"assignments":[25810],"declarations":[{"constant":false,"id":25810,"mutability":"mutable","name":"onBehalfOf","nameLocation":"3141:10:86","nodeType":"VariableDeclaration","scope":25835,"src":"3133:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25809,"name":"address","nodeType":"ElementaryTypeName","src":"3133:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":25821,"initialValue":{"arguments":[{"expression":{"id":25818,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25789,"src":"3192:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},"id":25819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:2:86","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"3192:12:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":25814,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"3170:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}],"id":25813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3162:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25812,"name":"address","nodeType":"ElementaryTypeName","src":"3162:7:86","typeDescriptions":{}}},"id":25815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3162:20:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25811,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"3154:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6594_$","typeString":"type(contract IERC721)"}},"id":25816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3154:29:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$6594","typeString":"contract IERC721"}},"id":25817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3184:7:86","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6527,"src":"3154:37:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":25820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3154:51:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3133:72:86"},{"expression":{"expression":{"arguments":[{"id":25823,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25789,"src":"3233:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"}},{"id":25824,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25791,"src":"3244:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25825,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25793,"src":"3252:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25826,"name":"lossProb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25795,"src":"3261:8:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25827,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25797,"src":"3271:10:86","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":25828,"name":"onBehalfOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25810,"src":"3283:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25829,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25799,"src":"3295:10:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"arguments":[],"expression":{"argumentTypes":[],"id":25830,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20887,"src":"3307:6:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Params_$23926_memory_ptr_$","typeString":"function () view returns (struct IRiskModule.Params memory)"}},"id":25831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3307:8:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_Params_$23926_memory_ptr","typeString":"struct IRiskModule.Params memory"}],"id":25822,"name":"_replacePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21437,"src":"3218:14:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PolicyData_$14966_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint40_$_t_address_$_t_uint96_$_t_struct$_Params_$23926_memory_ptr_$returns$_t_struct$_PolicyData_$14966_memory_ptr_$","typeString":"function (struct Policy.PolicyData calldata,uint256,uint256,uint256,uint40,address,uint96,struct IRiskModule.Params memory) returns (struct Policy.PolicyData memory)"}},"id":25832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3218:98:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},"id":25833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3317:2:86","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":14938,"src":"3218:101:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25808,"id":25834,"nodeType":"Return","src":"3211:108:86"}]},"functionSelector":"0bc872d9","id":25836,"implemented":true,"kind":"function","modifiers":[{"id":25802,"kind":"modifierInvocation","modifierName":{"id":25801,"name":"whenNotPaused","nameLocations":["3062:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"3062:13:86"},"nodeType":"ModifierInvocation","src":"3062:13:86"},{"arguments":[{"id":25804,"name":"REPLACER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25649,"src":"3094:13:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":25805,"kind":"modifierInvocation","modifierName":{"id":25803,"name":"onlyComponentRole","nameLocations":["3076:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":17790,"src":"3076:17:86"},"nodeType":"ModifierInvocation","src":"3076:32:86"}],"name":"replacePolicy","nameLocation":"2884:13:86","nodeType":"FunctionDefinition","parameters":{"id":25800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25789,"mutability":"mutable","name":"oldPolicy","nameLocation":"2930:9:86","nodeType":"VariableDeclaration","scope":25836,"src":"2903:36:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_calldata_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25788,"nodeType":"UserDefinedTypeName","pathNode":{"id":25787,"name":"Policy.PolicyData","nameLocations":["2903:6:86","2910:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2903:17:86"},"referencedDeclaration":14966,"src":"2903:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25791,"mutability":"mutable","name":"payout","nameLocation":"2953:6:86","nodeType":"VariableDeclaration","scope":25836,"src":"2945:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25790,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25793,"mutability":"mutable","name":"premium","nameLocation":"2973:7:86","nodeType":"VariableDeclaration","scope":25836,"src":"2965:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25792,"name":"uint256","nodeType":"ElementaryTypeName","src":"2965:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25795,"mutability":"mutable","name":"lossProb","nameLocation":"2994:8:86","nodeType":"VariableDeclaration","scope":25836,"src":"2986:16:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25794,"name":"uint256","nodeType":"ElementaryTypeName","src":"2986:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25797,"mutability":"mutable","name":"expiration","nameLocation":"3015:10:86","nodeType":"VariableDeclaration","scope":25836,"src":"3008:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":25796,"name":"uint40","nodeType":"ElementaryTypeName","src":"3008:6:86","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":25799,"mutability":"mutable","name":"internalId","nameLocation":"3038:10:86","nodeType":"VariableDeclaration","scope":25836,"src":"3031:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25798,"name":"uint96","nodeType":"ElementaryTypeName","src":"3031:6:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2897:155:86"},"returnParameters":{"id":25808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25836,"src":"3118:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25806,"name":"uint256","nodeType":"ElementaryTypeName","src":"3118:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3117:9:86"},"scope":25861,"src":"2875:449:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25859,"nodeType":"Block","src":"3508:85:86","statements":[{"expression":{"arguments":[{"id":25853,"name":"oldPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25839,"src":"3547:9:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":25854,"name":"newPolicy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25842,"src":"3558:10:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"}},{"id":25855,"name":"payer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25844,"src":"3570:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25856,"name":"internalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25846,"src":"3577:10:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":25851,"name":"_policyPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"3521:11:86","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyPool_$23806","typeString":"contract IPolicyPool"}},"id":25852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3533:13:86","memberName":"replacePolicy","nodeType":"MemberAccess","referencedDeclaration":23744,"src":"3521:25:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_PolicyData_$14966_memory_ptr_$_t_struct$_PolicyData_$14966_memory_ptr_$_t_address_$_t_uint96_$returns$_t_uint256_$","typeString":"function (struct Policy.PolicyData memory,struct Policy.PolicyData memory,address,uint96) external returns (uint256)"}},"id":25857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3521:67:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25850,"id":25858,"nodeType":"Return","src":"3514:74:86"}]},"functionSelector":"cf8cf491","id":25860,"implemented":true,"kind":"function","modifiers":[],"name":"replacePolicyRaw","nameLocation":"3337:16:86","nodeType":"FunctionDefinition","parameters":{"id":25847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25839,"mutability":"mutable","name":"oldPolicy","nameLocation":"3384:9:86","nodeType":"VariableDeclaration","scope":25860,"src":"3359:34:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25838,"nodeType":"UserDefinedTypeName","pathNode":{"id":25837,"name":"Policy.PolicyData","nameLocations":["3359:6:86","3366:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3359:17:86"},"referencedDeclaration":14966,"src":"3359:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25842,"mutability":"mutable","name":"newPolicy_","nameLocation":"3424:10:86","nodeType":"VariableDeclaration","scope":25860,"src":"3399:35:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_memory_ptr","typeString":"struct Policy.PolicyData"},"typeName":{"id":25841,"nodeType":"UserDefinedTypeName","pathNode":{"id":25840,"name":"Policy.PolicyData","nameLocations":["3399:6:86","3406:10:86"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"3399:17:86"},"referencedDeclaration":14966,"src":"3399:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyData_$14966_storage_ptr","typeString":"struct Policy.PolicyData"}},"visibility":"internal"},{"constant":false,"id":25844,"mutability":"mutable","name":"payer","nameLocation":"3448:5:86","nodeType":"VariableDeclaration","scope":25860,"src":"3440:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25843,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25846,"mutability":"mutable","name":"internalId","nameLocation":"3466:10:86","nodeType":"VariableDeclaration","scope":25860,"src":"3459:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":25845,"name":"uint96","nodeType":"ElementaryTypeName","src":"3459:6:86","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3353:127:86"},"returnParameters":{"id":25850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25860,"src":"3499:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25848,"name":"uint256","nodeType":"ElementaryTypeName","src":"3499:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3498:9:86"},"scope":25861,"src":"3328:265:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25862,"src":"581:3014:86","usedErrors":[17749,17751,17753,20229,20231,20233,20235],"usedEvents":[417,424,429,790,1096,1101,17740,17747]}],"src":"39:3557:86"},"id":86},"contracts/mocks/TestCurrency.sol":{"ast":{"absolutePath":"contracts/mocks/TestCurrency.sol","exportedSymbols":{"ERC20":[5336],"IMintableERC20":[24471],"TestCurrency":[25944]},"id":25945,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:87"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":25865,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25945,"sourceUnit":5337,"src":"63:68:87","symbolAliases":[{"foreign":{"id":25864,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"71:5:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/mocks/IMintableERC20.sol","file":"./IMintableERC20.sol","id":25867,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25945,"sourceUnit":24472,"src":"132:52:87","symbolAliases":[{"foreign":{"id":25866,"name":"IMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24471,"src":"140:14:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25868,"name":"ERC20","nameLocations":["211:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":5336,"src":"211:5:87"},"id":25869,"nodeType":"InheritanceSpecifier","src":"211:5:87"},{"baseName":{"id":25870,"name":"IMintableERC20","nameLocations":["218:14:87"],"nodeType":"IdentifierPath","referencedDeclaration":24471,"src":"218:14:87"},"id":25871,"nodeType":"InheritanceSpecifier","src":"218:14:87"}],"canonicalName":"TestCurrency","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25944,"linearizedBaseContracts":[25944,24471,5336,6066,5414,6972],"name":"TestCurrency","nameLocation":"195:12:87","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":25873,"mutability":"mutable","name":"_owner","nameLocation":"253:6:87","nodeType":"VariableDeclaration","scope":25944,"src":"237:22:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25872,"name":"address","nodeType":"ElementaryTypeName","src":"237:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":25875,"mutability":"immutable","name":"_decimals","nameLocation":"288:9:87","nodeType":"VariableDeclaration","scope":25944,"src":"263:34:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25874,"name":"uint8","nodeType":"ElementaryTypeName","src":"263:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"body":{"id":25905,"nodeType":"Block","src":"440:95:87","statements":[{"expression":{"id":25893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25890,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"446:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":25891,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"455:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"459:6:87","memberName":"sender","nodeType":"MemberAccess","src":"455:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"446:19:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":25894,"nodeType":"ExpressionStatement","src":"446:19:87"},{"expression":{"id":25897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25895,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25875,"src":"471:9:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25896,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25883,"src":"483:9:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"471:21:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":25898,"nodeType":"ExpressionStatement","src":"471:21:87"},{"expression":{"arguments":[{"expression":{"id":25900,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"504:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"508:6:87","memberName":"sender","nodeType":"MemberAccess","src":"504:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25902,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25881,"src":"516:13:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25899,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"498:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"498:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25904,"nodeType":"ExpressionStatement","src":"498:32:87"}]},"id":25906,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25886,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25877,"src":"424:5:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25887,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25879,"src":"431:7:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":25888,"kind":"baseConstructorSpecifier","modifierName":{"id":25885,"name":"ERC20","nameLocations":["418:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":5336,"src":"418:5:87"},"nodeType":"ModifierInvocation","src":"418:21:87"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25877,"mutability":"mutable","name":"name_","nameLocation":"333:5:87","nodeType":"VariableDeclaration","scope":25906,"src":"319:19:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25876,"name":"string","nodeType":"ElementaryTypeName","src":"319:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25879,"mutability":"mutable","name":"symbol_","nameLocation":"358:7:87","nodeType":"VariableDeclaration","scope":25906,"src":"344:21:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25878,"name":"string","nodeType":"ElementaryTypeName","src":"344:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25881,"mutability":"mutable","name":"initialSupply","nameLocation":"379:13:87","nodeType":"VariableDeclaration","scope":25906,"src":"371:21:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25880,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25883,"mutability":"mutable","name":"decimals_","nameLocation":"404:9:87","nodeType":"VariableDeclaration","scope":25906,"src":"398:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25882,"name":"uint8","nodeType":"ElementaryTypeName","src":"398:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"313:104:87"},"returnParameters":{"id":25889,"nodeType":"ParameterList","parameters":[],"src":"440:0:87"},"scope":25944,"src":"302:233:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4824],"body":{"id":25914,"nodeType":"Block","src":"604:27:87","statements":[{"expression":{"id":25912,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25875,"src":"617:9:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":25911,"id":25913,"nodeType":"Return","src":"610:16:87"}]},"functionSelector":"313ce567","id":25915,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"548:8:87","nodeType":"FunctionDefinition","overrides":{"id":25908,"nodeType":"OverrideSpecifier","overrides":[],"src":"579:8:87"},"parameters":{"id":25907,"nodeType":"ParameterList","parameters":[],"src":"556:2:87"},"returnParameters":{"id":25911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25915,"src":"597:5:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25909,"name":"uint8","nodeType":"ElementaryTypeName","src":"597:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"596:7:87"},"scope":25944,"src":"539:92:87","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[24463],"body":{"id":25928,"nodeType":"Block","src":"702:103:87","statements":[{"expression":{"arguments":[{"id":25924,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25917,"src":"782:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25925,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"793:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25923,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"776:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"776:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":25922,"id":25927,"nodeType":"Return","src":"769:31:87"}]},"functionSelector":"40c10f19","id":25929,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"644:4:87","nodeType":"FunctionDefinition","overrides":{"id":25921,"nodeType":"OverrideSpecifier","overrides":[],"src":"693:8:87"},"parameters":{"id":25920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25917,"mutability":"mutable","name":"recipient","nameLocation":"657:9:87","nodeType":"VariableDeclaration","scope":25929,"src":"649:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25916,"name":"address","nodeType":"ElementaryTypeName","src":"649:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25919,"mutability":"mutable","name":"amount","nameLocation":"676:6:87","nodeType":"VariableDeclaration","scope":25929,"src":"668:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25918,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"648:35:87"},"returnParameters":{"id":25922,"nodeType":"ParameterList","parameters":[],"src":"702:0:87"},"scope":25944,"src":"635:170:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[24470],"body":{"id":25942,"nodeType":"Block","src":"876:103:87","statements":[{"expression":{"arguments":[{"id":25938,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25931,"src":"956:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25939,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25933,"src":"967:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25937,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"950:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"950:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":25936,"id":25941,"nodeType":"Return","src":"943:31:87"}]},"functionSelector":"9dc29fac","id":25943,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"818:4:87","nodeType":"FunctionDefinition","overrides":{"id":25935,"nodeType":"OverrideSpecifier","overrides":[],"src":"867:8:87"},"parameters":{"id":25934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25931,"mutability":"mutable","name":"recipient","nameLocation":"831:9:87","nodeType":"VariableDeclaration","scope":25943,"src":"823:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25930,"name":"address","nodeType":"ElementaryTypeName","src":"823:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25933,"mutability":"mutable","name":"amount","nameLocation":"850:6:87","nodeType":"VariableDeclaration","scope":25943,"src":"842:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25932,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"822:35:87"},"returnParameters":{"id":25936,"nodeType":"ParameterList","parameters":[],"src":"876:0:87"},"scope":25944,"src":"809:170:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25945,"src":"186:795:87","usedErrors":[],"usedEvents":[5348,5357]}],"src":"38:944:87"},"id":87}},"contracts":{"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"AccessControlUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":\"AccessControlUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3087,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":28,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)23_storage)"},{"astId":335,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)23_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)23_storage"},"t_struct(RoleData)23_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","members":[{"astId":20,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":22,"contract":"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:AccessControlUpgradeable","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol":{"IAccessControlUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":\"IAccessControlUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol":{"IERC1967Upgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC. _Available since v4.8.3._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":\"IERC1967Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol":{"IERC1822ProxiableUpgradeable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":\"IERC1822ProxiableUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"ERC1967UpgradeUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"},\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":\"ERC1967UpgradeUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:ERC1967UpgradeUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol":{"IBeaconUpgradeable":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":\"IBeaconUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"UUPSUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing `UUPSUpgradeable` with a custom implementation of upgrades. The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"__self\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable state-variable-assignment\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":\"UUPSUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:UUPSUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"PausableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":\"PausableUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_paused","offset":0,"slot":"51","type":"t_bool"},{"astId":1208,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ERC721Upgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b506110928061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c80636352211e11610088578063a22cb46511610063578063a22cb465146101ae578063b88d4fde146101c1578063c87b56dd146101d4578063e985e9c5146101e7575f5ffd5b80636352211e1461017257806370a082311461018557806395d89b41146101a6575f5ffd5b806301ffc9a7146100cf57806306fdde03146100f7578063081812fc1461010c578063095ea7b31461013757806323b872dd1461014c57806342842e0e1461015f575b5f5ffd5b6100e26100dd366004610c5b565b610222565b60405190151581526020015b60405180910390f35b6100ff610273565b6040516100ee9190610ca4565b61011f61011a366004610cb6565b610303565b6040516001600160a01b0390911681526020016100ee565b61014a610145366004610ce8565b610328565b005b61014a61015a366004610d10565b610441565b61014a61016d366004610d10565b610472565b61011f610180366004610cb6565b61048c565b610198610193366004610d4a565b6104eb565b6040519081526020016100ee565b6100ff61056f565b61014a6101bc366004610d63565b61057e565b61014a6101cf366004610db0565b61058d565b6100ff6101e2366004610cb6565b6105c5565b6100e26101f5366004610e8d565b6001600160a01b039182165f908152606a6020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061025257506001600160e01b03198216635b5e139f60e01b145b8061026d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461028290610ebe565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610ebe565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f61030d82610635565b505f908152606960205260409020546001600160a01b031690565b5f6103328261048c565b9050806001600160a01b0316836001600160a01b0316036103a45760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103c057506103c081336101f5565b6104325760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161039b565b61043c8383610696565b505050565b61044b3382610703565b6104675760405162461bcd60e51b815260040161039b90610ef6565b61043c838383610780565b61043c83838360405180602001604052805f81525061058d565b5f818152606760205260408120546001600160a01b03168061026d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161039b565b5f6001600160a01b0382166105545760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161039b565b506001600160a01b03165f9081526068602052604090205490565b60606066805461028290610ebe565b6105893383836108e2565b5050565b6105973383610703565b6105b35760405162461bcd60e51b815260040161039b90610ef6565b6105bf848484846109af565b50505050565b60606105d082610635565b5f6105e560408051602081019091525f815290565b90505f8151116106035760405180602001604052805f81525061062e565b8061060d846109e2565b60405160200161061e929190610f5a565b6040516020818303038152906040525b9392505050565b5f818152606760205260409020546001600160a01b03166106935760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161039b565b50565b5f81815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106ca8261048c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f5f61070e8361048c565b9050806001600160a01b0316846001600160a01b0316148061075457506001600160a01b038082165f908152606a602090815260408083209388168352929052205460ff165b806107785750836001600160a01b031661076d84610303565b6001600160a01b0316145b949350505050565b826001600160a01b03166107938261048c565b6001600160a01b0316146107b95760405162461bcd60e51b815260040161039b90610f6e565b6001600160a01b03821661081b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161039b565b826001600160a01b031661082e8261048c565b6001600160a01b0316146108545760405162461bcd60e51b815260040161039b90610f6e565b5f81815260696020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526068855283862080545f1901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b0316036109435760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161039b565b6001600160a01b038381165f818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109ba848484610780565b6109c684848484610a72565b6105bf5760405162461bcd60e51b815260040161039b90610fb3565b60605f6109ee83610b6f565b60010190505f8167ffffffffffffffff811115610a0d57610a0d610d9c565b6040519080825280601f01601f191660200182016040528015610a37576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a4157509392505050565b5f6001600160a01b0384163b15610b6457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ab5903390899088908890600401611005565b6020604051808303815f875af1925050508015610aef575060408051601f3d908101601f19168201909252610aec91810190611041565b60015b610b4a573d808015610b1c576040519150601f19603f3d011682016040523d82523d5f602084013e610b21565b606091505b5080515f03610b425760405162461bcd60e51b815260040161039b90610fb3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610778565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bad5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bd9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bf757662386f26fc10000830492506010015b6305f5e1008310610c0f576305f5e100830492506008015b6127108310610c2357612710830492506004015b60648310610c35576064830492506002015b600a831061026d5760010192915050565b6001600160e01b031981168114610693575f5ffd5b5f60208284031215610c6b575f5ffd5b813561062e81610c46565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61062e6020830184610c76565b5f60208284031215610cc6575f5ffd5b5035919050565b80356001600160a01b0381168114610ce3575f5ffd5b919050565b5f5f60408385031215610cf9575f5ffd5b610d0283610ccd565b946020939093013593505050565b5f5f5f60608486031215610d22575f5ffd5b610d2b84610ccd565b9250610d3960208501610ccd565b929592945050506040919091013590565b5f60208284031215610d5a575f5ffd5b61062e82610ccd565b5f5f60408385031215610d74575f5ffd5b610d7d83610ccd565b915060208301358015158114610d91575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f60808587031215610dc3575f5ffd5b610dcc85610ccd565b9350610dda60208601610ccd565b925060408501359150606085013567ffffffffffffffff811115610dfc575f5ffd5b8501601f81018713610e0c575f5ffd5b803567ffffffffffffffff811115610e2657610e26610d9c565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610e5557610e55610d9c565b604052818152828201602001891015610e6c575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f60408385031215610e9e575f5ffd5b610ea783610ccd565b9150610eb560208401610ccd565b90509250929050565b600181811c90821680610ed257607f821691505b602082108103610ef057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f81518060208401855e5f93019283525090919050565b5f610778610f688386610f43565b84610f43565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061103790830184610c76565b9695505050505050565b5f60208284031215611051575f5ffd5b815161062e81610c4656fea26469706673582212202ea168ec01740555e616ece36d58cfd85130b102c5d14b2d8698b593320684f264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1092 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1E7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x15F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE2 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0xC5B JUMP JUMPDEST PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFF PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEE SWAP2 SWAP1 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEE JUMP JUMPDEST PUSH2 0x14A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14A PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0xD10 JUMP JUMPDEST PUSH2 0x441 JUMP JUMPDEST PUSH2 0x14A PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0xD10 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH2 0x198 PUSH2 0x193 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEE JUMP JUMPDEST PUSH2 0xFF PUSH2 0x56F JUMP JUMPDEST PUSH2 0x14A PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x57E JUMP JUMPDEST PUSH2 0x14A PUSH2 0x1CF CALLDATASIZE PUSH1 0x4 PUSH2 0xDB0 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST PUSH2 0xFF PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xE8D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x252 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x26D JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x65 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xEBE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xEBE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x30D DUP3 PUSH2 0x635 JUMP JUMPDEST POP PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x332 DUP3 PUSH2 0x48C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x3A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3C0 JUMPI POP PUSH2 0x3C0 DUP2 CALLER PUSH2 0x1F5 JUMP JUMPDEST PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 PUSH2 0x696 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x44B CALLER DUP3 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x467 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 DUP4 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x58D JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x26D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x554 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x66 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x589 CALLER DUP4 DUP4 PUSH2 0x8E2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x597 CALLER DUP4 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x5B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x5BF DUP5 DUP5 DUP5 DUP5 PUSH2 0x9AF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5D0 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH0 PUSH2 0x5E5 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD GT PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x62E JUMP JUMPDEST DUP1 PUSH2 0x60D DUP5 PUSH2 0x9E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x61E SWAP3 SWAP2 SWAP1 PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x693 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6CA DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x70E DUP4 PUSH2 0x48C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x754 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x778 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76D DUP5 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x793 DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xF6E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x81B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x82E DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xF6E JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x68 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x67 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x9BA DUP5 DUP5 DUP5 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x9C6 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x5BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xFB3 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x9EE DUP4 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA0D JUMPI PUSH2 0xA0D PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA37 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xA41 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xB64 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xAB5 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1005 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xAEF JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xAEC SWAP2 DUP2 ADD SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB4A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xB1C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB21 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH0 SUB PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xFB3 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x778 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xBAD JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xBD9 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBF7 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC0F JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC23 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xC35 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x26D JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x693 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62E DUP2 PUSH2 0xC46 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x62E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC76 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCE3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD02 DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD2B DUP5 PUSH2 0xCCD JUMP JUMPDEST SWAP3 POP PUSH2 0xD39 PUSH1 0x20 DUP6 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x62E DUP3 PUSH2 0xCCD JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD74 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD7D DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD91 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xDC3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xDCC DUP6 PUSH2 0xCCD JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0xE0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE26 JUMPI PUSH2 0xE26 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE55 JUMPI PUSH2 0xE55 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP10 LT ISZERO PUSH2 0xE6C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE9E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xEA7 DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP2 POP PUSH2 0xEB5 PUSH1 0x20 DUP5 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xED2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEF0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x778 PUSH2 0xF68 DUP4 DUP7 PUSH2 0xF43 JUMP JUMPDEST DUP5 PUSH2 0xF43 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x1037 SWAP1 DUP4 ADD DUP5 PUSH2 0xC76 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1051 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62E DUP2 PUSH2 0xC46 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E LOG1 PUSH9 0xEC01740555E616ECE3 PUSH14 0x58CFD85130B102C5D14B2D8698B5 SWAP4 ORIGIN MOD DUP5 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"772:17105:9:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_2141":{"entryPoint":null,"id":2141,"parameterSlots":4,"returnSlots":0},"@_approve_2007":{"entryPoint":1686,"id":2007,"parameterSlots":2,"returnSlots":0},"@_baseURI_1444":{"entryPoint":null,"id":1444,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_2128":{"entryPoint":null,"id":2128,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_2115":{"entryPoint":2674,"id":2115,"parameterSlots":4,"returnSlots":1},"@_exists_1676":{"entryPoint":null,"id":1676,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_1710":{"entryPoint":1795,"id":1710,"parameterSlots":2,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_ownerOf_1658":{"entryPoint":null,"id":1658,"parameterSlots":1,"returnSlots":1},"@_requireMinted_2053":{"entryPoint":1589,"id":2053,"parameterSlots":1,"returnSlots":0},"@_safeTransfer_1645":{"entryPoint":2479,"id":1645,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_2039":{"entryPoint":2274,"id":2039,"parameterSlots":3,"returnSlots":0},"@_transfer_1983":{"entryPoint":1920,"id":1983,"parameterSlots":3,"returnSlots":0},"@approve_1487":{"entryPoint":808,"id":1487,"parameterSlots":2,"returnSlots":0},"@balanceOf_1348":{"entryPoint":1259,"id":1348,"parameterSlots":1,"returnSlots":1},"@getApproved_1505":{"entryPoint":771,"id":1505,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_1540":{"entryPoint":null,"id":1540,"parameterSlots":2,"returnSlots":1},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@log10_3803":{"entryPoint":2927,"id":3803,"parameterSlots":1,"returnSlots":1},"@name_1386":{"entryPoint":627,"id":1386,"parameterSlots":0,"returnSlots":1},"@ownerOf_1376":{"entryPoint":1164,"id":1376,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_1586":{"entryPoint":1138,"id":1586,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_1616":{"entryPoint":1421,"id":1616,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_1522":{"entryPoint":1406,"id":1522,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1324":{"entryPoint":546,"id":1324,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3082":{"entryPoint":null,"id":3082,"parameterSlots":1,"returnSlots":1},"@symbol_1396":{"entryPoint":1391,"id":1396,"parameterSlots":0,"returnSlots":1},"@toString_2873":{"entryPoint":2530,"id":2873,"parameterSlots":1,"returnSlots":1},"@tokenURI_1435":{"entryPoint":1477,"id":1435,"parameterSlots":1,"returnSlots":1},"@transferFrom_1567":{"entryPoint":1089,"id":1567,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3277,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3402,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3725,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3344,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3504,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3427,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3304,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3163,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":4161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3254,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_memory_ptr":{"entryPoint":3190,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3930,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4101,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3236,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3830,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4019,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3950,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":3774,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3484,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3142,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10119:88","nodeType":"YulBlock","src":"0:10119:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"58:87:88","nodeType":"YulBlock","src":"58:87:88","statements":[{"body":{"nativeSrc":"123:16:88","nodeType":"YulBlock","src":"123:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:88","nodeType":"YulLiteral","src":"132:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:88","nodeType":"YulLiteral","src":"135:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:88","nodeType":"YulIdentifier","src":"125:6:88"},"nativeSrc":"125:12:88","nodeType":"YulFunctionCall","src":"125:12:88"},"nativeSrc":"125:12:88","nodeType":"YulExpressionStatement","src":"125:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:88","nodeType":"YulIdentifier","src":"81:5:88"},{"arguments":[{"name":"value","nativeSrc":"92:5:88","nodeType":"YulIdentifier","src":"92:5:88"},{"arguments":[{"kind":"number","nativeSrc":"103:3:88","nodeType":"YulLiteral","src":"103:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:88","nodeType":"YulLiteral","src":"108:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:88","nodeType":"YulIdentifier","src":"99:3:88"},"nativeSrc":"99:20:88","nodeType":"YulFunctionCall","src":"99:20:88"}],"functionName":{"name":"and","nativeSrc":"88:3:88","nodeType":"YulIdentifier","src":"88:3:88"},"nativeSrc":"88:32:88","nodeType":"YulFunctionCall","src":"88:32:88"}],"functionName":{"name":"eq","nativeSrc":"78:2:88","nodeType":"YulIdentifier","src":"78:2:88"},"nativeSrc":"78:43:88","nodeType":"YulFunctionCall","src":"78:43:88"}],"functionName":{"name":"iszero","nativeSrc":"71:6:88","nodeType":"YulIdentifier","src":"71:6:88"},"nativeSrc":"71:51:88","nodeType":"YulFunctionCall","src":"71:51:88"},"nativeSrc":"68:71:88","nodeType":"YulIf","src":"68:71:88"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:88","nodeType":"YulTypedName","src":"47:5:88","type":""}],"src":"14:131:88"},{"body":{"nativeSrc":"219:176:88","nodeType":"YulBlock","src":"219:176:88","statements":[{"body":{"nativeSrc":"265:16:88","nodeType":"YulBlock","src":"265:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:88","nodeType":"YulLiteral","src":"274:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:88","nodeType":"YulLiteral","src":"277:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:88","nodeType":"YulIdentifier","src":"267:6:88"},"nativeSrc":"267:12:88","nodeType":"YulFunctionCall","src":"267:12:88"},"nativeSrc":"267:12:88","nodeType":"YulExpressionStatement","src":"267:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:88","nodeType":"YulIdentifier","src":"240:7:88"},{"name":"headStart","nativeSrc":"249:9:88","nodeType":"YulIdentifier","src":"249:9:88"}],"functionName":{"name":"sub","nativeSrc":"236:3:88","nodeType":"YulIdentifier","src":"236:3:88"},"nativeSrc":"236:23:88","nodeType":"YulFunctionCall","src":"236:23:88"},{"kind":"number","nativeSrc":"261:2:88","nodeType":"YulLiteral","src":"261:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:88","nodeType":"YulIdentifier","src":"232:3:88"},"nativeSrc":"232:32:88","nodeType":"YulFunctionCall","src":"232:32:88"},"nativeSrc":"229:52:88","nodeType":"YulIf","src":"229:52:88"},{"nativeSrc":"290:36:88","nodeType":"YulVariableDeclaration","src":"290:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:88","nodeType":"YulIdentifier","src":"316:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:88","nodeType":"YulIdentifier","src":"303:12:88"},"nativeSrc":"303:23:88","nodeType":"YulFunctionCall","src":"303:23:88"},"variables":[{"name":"value","nativeSrc":"294:5:88","nodeType":"YulTypedName","src":"294:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:88","nodeType":"YulIdentifier","src":"359:5:88"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:88","nodeType":"YulIdentifier","src":"335:23:88"},"nativeSrc":"335:30:88","nodeType":"YulFunctionCall","src":"335:30:88"},"nativeSrc":"335:30:88","nodeType":"YulExpressionStatement","src":"335:30:88"},{"nativeSrc":"374:15:88","nodeType":"YulAssignment","src":"374:15:88","value":{"name":"value","nativeSrc":"384:5:88","nodeType":"YulIdentifier","src":"384:5:88"},"variableNames":[{"name":"value0","nativeSrc":"374:6:88","nodeType":"YulIdentifier","src":"374:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:88","nodeType":"YulTypedName","src":"185:9:88","type":""},{"name":"dataEnd","nativeSrc":"196:7:88","nodeType":"YulTypedName","src":"196:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:88","nodeType":"YulTypedName","src":"208:6:88","type":""}],"src":"150:245:88"},{"body":{"nativeSrc":"495:92:88","nodeType":"YulBlock","src":"495:92:88","statements":[{"nativeSrc":"505:26:88","nodeType":"YulAssignment","src":"505:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:88","nodeType":"YulIdentifier","src":"517:9:88"},{"kind":"number","nativeSrc":"528:2:88","nodeType":"YulLiteral","src":"528:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:88","nodeType":"YulIdentifier","src":"513:3:88"},"nativeSrc":"513:18:88","nodeType":"YulFunctionCall","src":"513:18:88"},"variableNames":[{"name":"tail","nativeSrc":"505:4:88","nodeType":"YulIdentifier","src":"505:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:88","nodeType":"YulIdentifier","src":"547:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:88","nodeType":"YulIdentifier","src":"572:6:88"}],"functionName":{"name":"iszero","nativeSrc":"565:6:88","nodeType":"YulIdentifier","src":"565:6:88"},"nativeSrc":"565:14:88","nodeType":"YulFunctionCall","src":"565:14:88"}],"functionName":{"name":"iszero","nativeSrc":"558:6:88","nodeType":"YulIdentifier","src":"558:6:88"},"nativeSrc":"558:22:88","nodeType":"YulFunctionCall","src":"558:22:88"}],"functionName":{"name":"mstore","nativeSrc":"540:6:88","nodeType":"YulIdentifier","src":"540:6:88"},"nativeSrc":"540:41:88","nodeType":"YulFunctionCall","src":"540:41:88"},"nativeSrc":"540:41:88","nodeType":"YulExpressionStatement","src":"540:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:88","nodeType":"YulTypedName","src":"464:9:88","type":""},{"name":"value0","nativeSrc":"475:6:88","nodeType":"YulTypedName","src":"475:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:88","nodeType":"YulTypedName","src":"486:4:88","type":""}],"src":"400:187:88"},{"body":{"nativeSrc":"653:239:88","nodeType":"YulBlock","src":"653:239:88","statements":[{"nativeSrc":"663:26:88","nodeType":"YulVariableDeclaration","src":"663:26:88","value":{"arguments":[{"name":"value","nativeSrc":"683:5:88","nodeType":"YulIdentifier","src":"683:5:88"}],"functionName":{"name":"mload","nativeSrc":"677:5:88","nodeType":"YulIdentifier","src":"677:5:88"},"nativeSrc":"677:12:88","nodeType":"YulFunctionCall","src":"677:12:88"},"variables":[{"name":"length","nativeSrc":"667:6:88","nodeType":"YulTypedName","src":"667:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"705:3:88","nodeType":"YulIdentifier","src":"705:3:88"},{"name":"length","nativeSrc":"710:6:88","nodeType":"YulIdentifier","src":"710:6:88"}],"functionName":{"name":"mstore","nativeSrc":"698:6:88","nodeType":"YulIdentifier","src":"698:6:88"},"nativeSrc":"698:19:88","nodeType":"YulFunctionCall","src":"698:19:88"},"nativeSrc":"698:19:88","nodeType":"YulExpressionStatement","src":"698:19:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"736:3:88","nodeType":"YulIdentifier","src":"736:3:88"},{"kind":"number","nativeSrc":"741:4:88","nodeType":"YulLiteral","src":"741:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"732:3:88","nodeType":"YulIdentifier","src":"732:3:88"},"nativeSrc":"732:14:88","nodeType":"YulFunctionCall","src":"732:14:88"},{"arguments":[{"name":"value","nativeSrc":"752:5:88","nodeType":"YulIdentifier","src":"752:5:88"},{"kind":"number","nativeSrc":"759:4:88","nodeType":"YulLiteral","src":"759:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"748:3:88","nodeType":"YulIdentifier","src":"748:3:88"},"nativeSrc":"748:16:88","nodeType":"YulFunctionCall","src":"748:16:88"},{"name":"length","nativeSrc":"766:6:88","nodeType":"YulIdentifier","src":"766:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"726:5:88","nodeType":"YulIdentifier","src":"726:5:88"},"nativeSrc":"726:47:88","nodeType":"YulFunctionCall","src":"726:47:88"},"nativeSrc":"726:47:88","nodeType":"YulExpressionStatement","src":"726:47:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"797:3:88","nodeType":"YulIdentifier","src":"797:3:88"},{"name":"length","nativeSrc":"802:6:88","nodeType":"YulIdentifier","src":"802:6:88"}],"functionName":{"name":"add","nativeSrc":"793:3:88","nodeType":"YulIdentifier","src":"793:3:88"},"nativeSrc":"793:16:88","nodeType":"YulFunctionCall","src":"793:16:88"},{"kind":"number","nativeSrc":"811:4:88","nodeType":"YulLiteral","src":"811:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"789:3:88","nodeType":"YulIdentifier","src":"789:3:88"},"nativeSrc":"789:27:88","nodeType":"YulFunctionCall","src":"789:27:88"},{"kind":"number","nativeSrc":"818:1:88","nodeType":"YulLiteral","src":"818:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"782:6:88","nodeType":"YulIdentifier","src":"782:6:88"},"nativeSrc":"782:38:88","nodeType":"YulFunctionCall","src":"782:38:88"},"nativeSrc":"782:38:88","nodeType":"YulExpressionStatement","src":"782:38:88"},{"nativeSrc":"829:57:88","nodeType":"YulAssignment","src":"829:57:88","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"844:3:88","nodeType":"YulIdentifier","src":"844:3:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"857:6:88","nodeType":"YulIdentifier","src":"857:6:88"},{"kind":"number","nativeSrc":"865:2:88","nodeType":"YulLiteral","src":"865:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"853:3:88","nodeType":"YulIdentifier","src":"853:3:88"},"nativeSrc":"853:15:88","nodeType":"YulFunctionCall","src":"853:15:88"},{"arguments":[{"kind":"number","nativeSrc":"874:2:88","nodeType":"YulLiteral","src":"874:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"870:3:88","nodeType":"YulIdentifier","src":"870:3:88"},"nativeSrc":"870:7:88","nodeType":"YulFunctionCall","src":"870:7:88"}],"functionName":{"name":"and","nativeSrc":"849:3:88","nodeType":"YulIdentifier","src":"849:3:88"},"nativeSrc":"849:29:88","nodeType":"YulFunctionCall","src":"849:29:88"}],"functionName":{"name":"add","nativeSrc":"840:3:88","nodeType":"YulIdentifier","src":"840:3:88"},"nativeSrc":"840:39:88","nodeType":"YulFunctionCall","src":"840:39:88"},{"kind":"number","nativeSrc":"881:4:88","nodeType":"YulLiteral","src":"881:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"836:3:88","nodeType":"YulIdentifier","src":"836:3:88"},"nativeSrc":"836:50:88","nodeType":"YulFunctionCall","src":"836:50:88"},"variableNames":[{"name":"end","nativeSrc":"829:3:88","nodeType":"YulIdentifier","src":"829:3:88"}]}]},"name":"abi_encode_string_memory_ptr","nativeSrc":"592:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"630:5:88","nodeType":"YulTypedName","src":"630:5:88","type":""},{"name":"pos","nativeSrc":"637:3:88","nodeType":"YulTypedName","src":"637:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"645:3:88","nodeType":"YulTypedName","src":"645:3:88","type":""}],"src":"592:300:88"},{"body":{"nativeSrc":"1018:110:88","nodeType":"YulBlock","src":"1018:110:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1035:9:88","nodeType":"YulIdentifier","src":"1035:9:88"},{"kind":"number","nativeSrc":"1046:2:88","nodeType":"YulLiteral","src":"1046:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1028:6:88","nodeType":"YulIdentifier","src":"1028:6:88"},"nativeSrc":"1028:21:88","nodeType":"YulFunctionCall","src":"1028:21:88"},"nativeSrc":"1028:21:88","nodeType":"YulExpressionStatement","src":"1028:21:88"},{"nativeSrc":"1058:64:88","nodeType":"YulAssignment","src":"1058:64:88","value":{"arguments":[{"name":"value0","nativeSrc":"1095:6:88","nodeType":"YulIdentifier","src":"1095:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1103:3:88","nodeType":"YulIdentifier","src":"1103:3:88"},"nativeSrc":"1103:18:88","nodeType":"YulFunctionCall","src":"1103:18:88"}],"functionName":{"name":"abi_encode_string_memory_ptr","nativeSrc":"1066:28:88","nodeType":"YulIdentifier","src":"1066:28:88"},"nativeSrc":"1066:56:88","nodeType":"YulFunctionCall","src":"1066:56:88"},"variableNames":[{"name":"tail","nativeSrc":"1058:4:88","nodeType":"YulIdentifier","src":"1058:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"897:231:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"987:9:88","nodeType":"YulTypedName","src":"987:9:88","type":""},{"name":"value0","nativeSrc":"998:6:88","nodeType":"YulTypedName","src":"998:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1009:4:88","nodeType":"YulTypedName","src":"1009:4:88","type":""}],"src":"897:231:88"},{"body":{"nativeSrc":"1203:156:88","nodeType":"YulBlock","src":"1203:156:88","statements":[{"body":{"nativeSrc":"1249:16:88","nodeType":"YulBlock","src":"1249:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1258:1:88","nodeType":"YulLiteral","src":"1258:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1261:1:88","nodeType":"YulLiteral","src":"1261:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1251:6:88","nodeType":"YulIdentifier","src":"1251:6:88"},"nativeSrc":"1251:12:88","nodeType":"YulFunctionCall","src":"1251:12:88"},"nativeSrc":"1251:12:88","nodeType":"YulExpressionStatement","src":"1251:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1224:7:88","nodeType":"YulIdentifier","src":"1224:7:88"},{"name":"headStart","nativeSrc":"1233:9:88","nodeType":"YulIdentifier","src":"1233:9:88"}],"functionName":{"name":"sub","nativeSrc":"1220:3:88","nodeType":"YulIdentifier","src":"1220:3:88"},"nativeSrc":"1220:23:88","nodeType":"YulFunctionCall","src":"1220:23:88"},{"kind":"number","nativeSrc":"1245:2:88","nodeType":"YulLiteral","src":"1245:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1216:3:88","nodeType":"YulIdentifier","src":"1216:3:88"},"nativeSrc":"1216:32:88","nodeType":"YulFunctionCall","src":"1216:32:88"},"nativeSrc":"1213:52:88","nodeType":"YulIf","src":"1213:52:88"},{"nativeSrc":"1274:14:88","nodeType":"YulVariableDeclaration","src":"1274:14:88","value":{"kind":"number","nativeSrc":"1287:1:88","nodeType":"YulLiteral","src":"1287:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1278:5:88","nodeType":"YulTypedName","src":"1278:5:88","type":""}]},{"nativeSrc":"1297:32:88","nodeType":"YulAssignment","src":"1297:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1319:9:88","nodeType":"YulIdentifier","src":"1319:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1306:12:88","nodeType":"YulIdentifier","src":"1306:12:88"},"nativeSrc":"1306:23:88","nodeType":"YulFunctionCall","src":"1306:23:88"},"variableNames":[{"name":"value","nativeSrc":"1297:5:88","nodeType":"YulIdentifier","src":"1297:5:88"}]},{"nativeSrc":"1338:15:88","nodeType":"YulAssignment","src":"1338:15:88","value":{"name":"value","nativeSrc":"1348:5:88","nodeType":"YulIdentifier","src":"1348:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1338:6:88","nodeType":"YulIdentifier","src":"1338:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1133:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1169:9:88","nodeType":"YulTypedName","src":"1169:9:88","type":""},{"name":"dataEnd","nativeSrc":"1180:7:88","nodeType":"YulTypedName","src":"1180:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1192:6:88","nodeType":"YulTypedName","src":"1192:6:88","type":""}],"src":"1133:226:88"},{"body":{"nativeSrc":"1465:102:88","nodeType":"YulBlock","src":"1465:102:88","statements":[{"nativeSrc":"1475:26:88","nodeType":"YulAssignment","src":"1475:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1487:9:88","nodeType":"YulIdentifier","src":"1487:9:88"},{"kind":"number","nativeSrc":"1498:2:88","nodeType":"YulLiteral","src":"1498:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1483:3:88","nodeType":"YulIdentifier","src":"1483:3:88"},"nativeSrc":"1483:18:88","nodeType":"YulFunctionCall","src":"1483:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1475:4:88","nodeType":"YulIdentifier","src":"1475:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1517:9:88","nodeType":"YulIdentifier","src":"1517:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1532:6:88","nodeType":"YulIdentifier","src":"1532:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1548:3:88","nodeType":"YulLiteral","src":"1548:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1553:1:88","nodeType":"YulLiteral","src":"1553:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1544:3:88","nodeType":"YulIdentifier","src":"1544:3:88"},"nativeSrc":"1544:11:88","nodeType":"YulFunctionCall","src":"1544:11:88"},{"kind":"number","nativeSrc":"1557:1:88","nodeType":"YulLiteral","src":"1557:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1540:3:88","nodeType":"YulIdentifier","src":"1540:3:88"},"nativeSrc":"1540:19:88","nodeType":"YulFunctionCall","src":"1540:19:88"}],"functionName":{"name":"and","nativeSrc":"1528:3:88","nodeType":"YulIdentifier","src":"1528:3:88"},"nativeSrc":"1528:32:88","nodeType":"YulFunctionCall","src":"1528:32:88"}],"functionName":{"name":"mstore","nativeSrc":"1510:6:88","nodeType":"YulIdentifier","src":"1510:6:88"},"nativeSrc":"1510:51:88","nodeType":"YulFunctionCall","src":"1510:51:88"},"nativeSrc":"1510:51:88","nodeType":"YulExpressionStatement","src":"1510:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1364:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1434:9:88","nodeType":"YulTypedName","src":"1434:9:88","type":""},{"name":"value0","nativeSrc":"1445:6:88","nodeType":"YulTypedName","src":"1445:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1456:4:88","nodeType":"YulTypedName","src":"1456:4:88","type":""}],"src":"1364:203:88"},{"body":{"nativeSrc":"1621:124:88","nodeType":"YulBlock","src":"1621:124:88","statements":[{"nativeSrc":"1631:29:88","nodeType":"YulAssignment","src":"1631:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1653:6:88","nodeType":"YulIdentifier","src":"1653:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1640:12:88","nodeType":"YulIdentifier","src":"1640:12:88"},"nativeSrc":"1640:20:88","nodeType":"YulFunctionCall","src":"1640:20:88"},"variableNames":[{"name":"value","nativeSrc":"1631:5:88","nodeType":"YulIdentifier","src":"1631:5:88"}]},{"body":{"nativeSrc":"1723:16:88","nodeType":"YulBlock","src":"1723:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1732:1:88","nodeType":"YulLiteral","src":"1732:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1735:1:88","nodeType":"YulLiteral","src":"1735:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1725:6:88","nodeType":"YulIdentifier","src":"1725:6:88"},"nativeSrc":"1725:12:88","nodeType":"YulFunctionCall","src":"1725:12:88"},"nativeSrc":"1725:12:88","nodeType":"YulExpressionStatement","src":"1725:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1682:5:88","nodeType":"YulIdentifier","src":"1682:5:88"},{"arguments":[{"name":"value","nativeSrc":"1693:5:88","nodeType":"YulIdentifier","src":"1693:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1708:3:88","nodeType":"YulLiteral","src":"1708:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1713:1:88","nodeType":"YulLiteral","src":"1713:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1704:3:88","nodeType":"YulIdentifier","src":"1704:3:88"},"nativeSrc":"1704:11:88","nodeType":"YulFunctionCall","src":"1704:11:88"},{"kind":"number","nativeSrc":"1717:1:88","nodeType":"YulLiteral","src":"1717:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1700:3:88","nodeType":"YulIdentifier","src":"1700:3:88"},"nativeSrc":"1700:19:88","nodeType":"YulFunctionCall","src":"1700:19:88"}],"functionName":{"name":"and","nativeSrc":"1689:3:88","nodeType":"YulIdentifier","src":"1689:3:88"},"nativeSrc":"1689:31:88","nodeType":"YulFunctionCall","src":"1689:31:88"}],"functionName":{"name":"eq","nativeSrc":"1679:2:88","nodeType":"YulIdentifier","src":"1679:2:88"},"nativeSrc":"1679:42:88","nodeType":"YulFunctionCall","src":"1679:42:88"}],"functionName":{"name":"iszero","nativeSrc":"1672:6:88","nodeType":"YulIdentifier","src":"1672:6:88"},"nativeSrc":"1672:50:88","nodeType":"YulFunctionCall","src":"1672:50:88"},"nativeSrc":"1669:70:88","nodeType":"YulIf","src":"1669:70:88"}]},"name":"abi_decode_address","nativeSrc":"1572:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1600:6:88","nodeType":"YulTypedName","src":"1600:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1611:5:88","nodeType":"YulTypedName","src":"1611:5:88","type":""}],"src":"1572:173:88"},{"body":{"nativeSrc":"1837:213:88","nodeType":"YulBlock","src":"1837:213:88","statements":[{"body":{"nativeSrc":"1883:16:88","nodeType":"YulBlock","src":"1883:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1892:1:88","nodeType":"YulLiteral","src":"1892:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1895:1:88","nodeType":"YulLiteral","src":"1895:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1885:6:88","nodeType":"YulIdentifier","src":"1885:6:88"},"nativeSrc":"1885:12:88","nodeType":"YulFunctionCall","src":"1885:12:88"},"nativeSrc":"1885:12:88","nodeType":"YulExpressionStatement","src":"1885:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1858:7:88","nodeType":"YulIdentifier","src":"1858:7:88"},{"name":"headStart","nativeSrc":"1867:9:88","nodeType":"YulIdentifier","src":"1867:9:88"}],"functionName":{"name":"sub","nativeSrc":"1854:3:88","nodeType":"YulIdentifier","src":"1854:3:88"},"nativeSrc":"1854:23:88","nodeType":"YulFunctionCall","src":"1854:23:88"},{"kind":"number","nativeSrc":"1879:2:88","nodeType":"YulLiteral","src":"1879:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1850:3:88","nodeType":"YulIdentifier","src":"1850:3:88"},"nativeSrc":"1850:32:88","nodeType":"YulFunctionCall","src":"1850:32:88"},"nativeSrc":"1847:52:88","nodeType":"YulIf","src":"1847:52:88"},{"nativeSrc":"1908:39:88","nodeType":"YulAssignment","src":"1908:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1937:9:88","nodeType":"YulIdentifier","src":"1937:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1918:18:88","nodeType":"YulIdentifier","src":"1918:18:88"},"nativeSrc":"1918:29:88","nodeType":"YulFunctionCall","src":"1918:29:88"},"variableNames":[{"name":"value0","nativeSrc":"1908:6:88","nodeType":"YulIdentifier","src":"1908:6:88"}]},{"nativeSrc":"1956:14:88","nodeType":"YulVariableDeclaration","src":"1956:14:88","value":{"kind":"number","nativeSrc":"1969:1:88","nodeType":"YulLiteral","src":"1969:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1960:5:88","nodeType":"YulTypedName","src":"1960:5:88","type":""}]},{"nativeSrc":"1979:41:88","nodeType":"YulAssignment","src":"1979:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2005:9:88","nodeType":"YulIdentifier","src":"2005:9:88"},{"kind":"number","nativeSrc":"2016:2:88","nodeType":"YulLiteral","src":"2016:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2001:3:88","nodeType":"YulIdentifier","src":"2001:3:88"},"nativeSrc":"2001:18:88","nodeType":"YulFunctionCall","src":"2001:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1988:12:88","nodeType":"YulIdentifier","src":"1988:12:88"},"nativeSrc":"1988:32:88","nodeType":"YulFunctionCall","src":"1988:32:88"},"variableNames":[{"name":"value","nativeSrc":"1979:5:88","nodeType":"YulIdentifier","src":"1979:5:88"}]},{"nativeSrc":"2029:15:88","nodeType":"YulAssignment","src":"2029:15:88","value":{"name":"value","nativeSrc":"2039:5:88","nodeType":"YulIdentifier","src":"2039:5:88"},"variableNames":[{"name":"value1","nativeSrc":"2029:6:88","nodeType":"YulIdentifier","src":"2029:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1750:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:88","nodeType":"YulTypedName","src":"1795:9:88","type":""},{"name":"dataEnd","nativeSrc":"1806:7:88","nodeType":"YulTypedName","src":"1806:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1818:6:88","nodeType":"YulTypedName","src":"1818:6:88","type":""},{"name":"value1","nativeSrc":"1826:6:88","nodeType":"YulTypedName","src":"1826:6:88","type":""}],"src":"1750:300:88"},{"body":{"nativeSrc":"2159:270:88","nodeType":"YulBlock","src":"2159:270:88","statements":[{"body":{"nativeSrc":"2205:16:88","nodeType":"YulBlock","src":"2205:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2214:1:88","nodeType":"YulLiteral","src":"2214:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2217:1:88","nodeType":"YulLiteral","src":"2217:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2207:6:88","nodeType":"YulIdentifier","src":"2207:6:88"},"nativeSrc":"2207:12:88","nodeType":"YulFunctionCall","src":"2207:12:88"},"nativeSrc":"2207:12:88","nodeType":"YulExpressionStatement","src":"2207:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2180:7:88","nodeType":"YulIdentifier","src":"2180:7:88"},{"name":"headStart","nativeSrc":"2189:9:88","nodeType":"YulIdentifier","src":"2189:9:88"}],"functionName":{"name":"sub","nativeSrc":"2176:3:88","nodeType":"YulIdentifier","src":"2176:3:88"},"nativeSrc":"2176:23:88","nodeType":"YulFunctionCall","src":"2176:23:88"},{"kind":"number","nativeSrc":"2201:2:88","nodeType":"YulLiteral","src":"2201:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2172:3:88","nodeType":"YulIdentifier","src":"2172:3:88"},"nativeSrc":"2172:32:88","nodeType":"YulFunctionCall","src":"2172:32:88"},"nativeSrc":"2169:52:88","nodeType":"YulIf","src":"2169:52:88"},{"nativeSrc":"2230:39:88","nodeType":"YulAssignment","src":"2230:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2259:9:88","nodeType":"YulIdentifier","src":"2259:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2240:18:88","nodeType":"YulIdentifier","src":"2240:18:88"},"nativeSrc":"2240:29:88","nodeType":"YulFunctionCall","src":"2240:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2230:6:88","nodeType":"YulIdentifier","src":"2230:6:88"}]},{"nativeSrc":"2278:48:88","nodeType":"YulAssignment","src":"2278:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2311:9:88","nodeType":"YulIdentifier","src":"2311:9:88"},{"kind":"number","nativeSrc":"2322:2:88","nodeType":"YulLiteral","src":"2322:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2307:3:88","nodeType":"YulIdentifier","src":"2307:3:88"},"nativeSrc":"2307:18:88","nodeType":"YulFunctionCall","src":"2307:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2288:18:88","nodeType":"YulIdentifier","src":"2288:18:88"},"nativeSrc":"2288:38:88","nodeType":"YulFunctionCall","src":"2288:38:88"},"variableNames":[{"name":"value1","nativeSrc":"2278:6:88","nodeType":"YulIdentifier","src":"2278:6:88"}]},{"nativeSrc":"2335:14:88","nodeType":"YulVariableDeclaration","src":"2335:14:88","value":{"kind":"number","nativeSrc":"2348:1:88","nodeType":"YulLiteral","src":"2348:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2339:5:88","nodeType":"YulTypedName","src":"2339:5:88","type":""}]},{"nativeSrc":"2358:41:88","nodeType":"YulAssignment","src":"2358:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2384:9:88","nodeType":"YulIdentifier","src":"2384:9:88"},{"kind":"number","nativeSrc":"2395:2:88","nodeType":"YulLiteral","src":"2395:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2380:3:88","nodeType":"YulIdentifier","src":"2380:3:88"},"nativeSrc":"2380:18:88","nodeType":"YulFunctionCall","src":"2380:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2367:12:88","nodeType":"YulIdentifier","src":"2367:12:88"},"nativeSrc":"2367:32:88","nodeType":"YulFunctionCall","src":"2367:32:88"},"variableNames":[{"name":"value","nativeSrc":"2358:5:88","nodeType":"YulIdentifier","src":"2358:5:88"}]},{"nativeSrc":"2408:15:88","nodeType":"YulAssignment","src":"2408:15:88","value":{"name":"value","nativeSrc":"2418:5:88","nodeType":"YulIdentifier","src":"2418:5:88"},"variableNames":[{"name":"value2","nativeSrc":"2408:6:88","nodeType":"YulIdentifier","src":"2408:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2055:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2109:9:88","nodeType":"YulTypedName","src":"2109:9:88","type":""},{"name":"dataEnd","nativeSrc":"2120:7:88","nodeType":"YulTypedName","src":"2120:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2132:6:88","nodeType":"YulTypedName","src":"2132:6:88","type":""},{"name":"value1","nativeSrc":"2140:6:88","nodeType":"YulTypedName","src":"2140:6:88","type":""},{"name":"value2","nativeSrc":"2148:6:88","nodeType":"YulTypedName","src":"2148:6:88","type":""}],"src":"2055:374:88"},{"body":{"nativeSrc":"2504:116:88","nodeType":"YulBlock","src":"2504:116:88","statements":[{"body":{"nativeSrc":"2550:16:88","nodeType":"YulBlock","src":"2550:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2559:1:88","nodeType":"YulLiteral","src":"2559:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2562:1:88","nodeType":"YulLiteral","src":"2562:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2552:6:88","nodeType":"YulIdentifier","src":"2552:6:88"},"nativeSrc":"2552:12:88","nodeType":"YulFunctionCall","src":"2552:12:88"},"nativeSrc":"2552:12:88","nodeType":"YulExpressionStatement","src":"2552:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2525:7:88","nodeType":"YulIdentifier","src":"2525:7:88"},{"name":"headStart","nativeSrc":"2534:9:88","nodeType":"YulIdentifier","src":"2534:9:88"}],"functionName":{"name":"sub","nativeSrc":"2521:3:88","nodeType":"YulIdentifier","src":"2521:3:88"},"nativeSrc":"2521:23:88","nodeType":"YulFunctionCall","src":"2521:23:88"},{"kind":"number","nativeSrc":"2546:2:88","nodeType":"YulLiteral","src":"2546:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2517:3:88","nodeType":"YulIdentifier","src":"2517:3:88"},"nativeSrc":"2517:32:88","nodeType":"YulFunctionCall","src":"2517:32:88"},"nativeSrc":"2514:52:88","nodeType":"YulIf","src":"2514:52:88"},{"nativeSrc":"2575:39:88","nodeType":"YulAssignment","src":"2575:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2604:9:88","nodeType":"YulIdentifier","src":"2604:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2585:18:88","nodeType":"YulIdentifier","src":"2585:18:88"},"nativeSrc":"2585:29:88","nodeType":"YulFunctionCall","src":"2585:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2575:6:88","nodeType":"YulIdentifier","src":"2575:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2434:186:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2470:9:88","nodeType":"YulTypedName","src":"2470:9:88","type":""},{"name":"dataEnd","nativeSrc":"2481:7:88","nodeType":"YulTypedName","src":"2481:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2493:6:88","nodeType":"YulTypedName","src":"2493:6:88","type":""}],"src":"2434:186:88"},{"body":{"nativeSrc":"2726:76:88","nodeType":"YulBlock","src":"2726:76:88","statements":[{"nativeSrc":"2736:26:88","nodeType":"YulAssignment","src":"2736:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2748:9:88","nodeType":"YulIdentifier","src":"2748:9:88"},{"kind":"number","nativeSrc":"2759:2:88","nodeType":"YulLiteral","src":"2759:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2744:3:88","nodeType":"YulIdentifier","src":"2744:3:88"},"nativeSrc":"2744:18:88","nodeType":"YulFunctionCall","src":"2744:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2736:4:88","nodeType":"YulIdentifier","src":"2736:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2778:9:88","nodeType":"YulIdentifier","src":"2778:9:88"},{"name":"value0","nativeSrc":"2789:6:88","nodeType":"YulIdentifier","src":"2789:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2771:6:88","nodeType":"YulIdentifier","src":"2771:6:88"},"nativeSrc":"2771:25:88","nodeType":"YulFunctionCall","src":"2771:25:88"},"nativeSrc":"2771:25:88","nodeType":"YulExpressionStatement","src":"2771:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2625:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2695:9:88","nodeType":"YulTypedName","src":"2695:9:88","type":""},{"name":"value0","nativeSrc":"2706:6:88","nodeType":"YulTypedName","src":"2706:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2717:4:88","nodeType":"YulTypedName","src":"2717:4:88","type":""}],"src":"2625:177:88"},{"body":{"nativeSrc":"2891:263:88","nodeType":"YulBlock","src":"2891:263:88","statements":[{"body":{"nativeSrc":"2937:16:88","nodeType":"YulBlock","src":"2937:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2946:1:88","nodeType":"YulLiteral","src":"2946:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2949:1:88","nodeType":"YulLiteral","src":"2949:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2939:6:88","nodeType":"YulIdentifier","src":"2939:6:88"},"nativeSrc":"2939:12:88","nodeType":"YulFunctionCall","src":"2939:12:88"},"nativeSrc":"2939:12:88","nodeType":"YulExpressionStatement","src":"2939:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2912:7:88","nodeType":"YulIdentifier","src":"2912:7:88"},{"name":"headStart","nativeSrc":"2921:9:88","nodeType":"YulIdentifier","src":"2921:9:88"}],"functionName":{"name":"sub","nativeSrc":"2908:3:88","nodeType":"YulIdentifier","src":"2908:3:88"},"nativeSrc":"2908:23:88","nodeType":"YulFunctionCall","src":"2908:23:88"},{"kind":"number","nativeSrc":"2933:2:88","nodeType":"YulLiteral","src":"2933:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2904:3:88","nodeType":"YulIdentifier","src":"2904:3:88"},"nativeSrc":"2904:32:88","nodeType":"YulFunctionCall","src":"2904:32:88"},"nativeSrc":"2901:52:88","nodeType":"YulIf","src":"2901:52:88"},{"nativeSrc":"2962:39:88","nodeType":"YulAssignment","src":"2962:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2991:9:88","nodeType":"YulIdentifier","src":"2991:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2972:18:88","nodeType":"YulIdentifier","src":"2972:18:88"},"nativeSrc":"2972:29:88","nodeType":"YulFunctionCall","src":"2972:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2962:6:88","nodeType":"YulIdentifier","src":"2962:6:88"}]},{"nativeSrc":"3010:45:88","nodeType":"YulVariableDeclaration","src":"3010:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3040:9:88","nodeType":"YulIdentifier","src":"3040:9:88"},{"kind":"number","nativeSrc":"3051:2:88","nodeType":"YulLiteral","src":"3051:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3036:3:88","nodeType":"YulIdentifier","src":"3036:3:88"},"nativeSrc":"3036:18:88","nodeType":"YulFunctionCall","src":"3036:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3023:12:88","nodeType":"YulIdentifier","src":"3023:12:88"},"nativeSrc":"3023:32:88","nodeType":"YulFunctionCall","src":"3023:32:88"},"variables":[{"name":"value","nativeSrc":"3014:5:88","nodeType":"YulTypedName","src":"3014:5:88","type":""}]},{"body":{"nativeSrc":"3108:16:88","nodeType":"YulBlock","src":"3108:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3117:1:88","nodeType":"YulLiteral","src":"3117:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3120:1:88","nodeType":"YulLiteral","src":"3120:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3110:6:88","nodeType":"YulIdentifier","src":"3110:6:88"},"nativeSrc":"3110:12:88","nodeType":"YulFunctionCall","src":"3110:12:88"},"nativeSrc":"3110:12:88","nodeType":"YulExpressionStatement","src":"3110:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3077:5:88","nodeType":"YulIdentifier","src":"3077:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3098:5:88","nodeType":"YulIdentifier","src":"3098:5:88"}],"functionName":{"name":"iszero","nativeSrc":"3091:6:88","nodeType":"YulIdentifier","src":"3091:6:88"},"nativeSrc":"3091:13:88","nodeType":"YulFunctionCall","src":"3091:13:88"}],"functionName":{"name":"iszero","nativeSrc":"3084:6:88","nodeType":"YulIdentifier","src":"3084:6:88"},"nativeSrc":"3084:21:88","nodeType":"YulFunctionCall","src":"3084:21:88"}],"functionName":{"name":"eq","nativeSrc":"3074:2:88","nodeType":"YulIdentifier","src":"3074:2:88"},"nativeSrc":"3074:32:88","nodeType":"YulFunctionCall","src":"3074:32:88"}],"functionName":{"name":"iszero","nativeSrc":"3067:6:88","nodeType":"YulIdentifier","src":"3067:6:88"},"nativeSrc":"3067:40:88","nodeType":"YulFunctionCall","src":"3067:40:88"},"nativeSrc":"3064:60:88","nodeType":"YulIf","src":"3064:60:88"},{"nativeSrc":"3133:15:88","nodeType":"YulAssignment","src":"3133:15:88","value":{"name":"value","nativeSrc":"3143:5:88","nodeType":"YulIdentifier","src":"3143:5:88"},"variableNames":[{"name":"value1","nativeSrc":"3133:6:88","nodeType":"YulIdentifier","src":"3133:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"2807:347:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2849:9:88","nodeType":"YulTypedName","src":"2849:9:88","type":""},{"name":"dataEnd","nativeSrc":"2860:7:88","nodeType":"YulTypedName","src":"2860:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2872:6:88","nodeType":"YulTypedName","src":"2872:6:88","type":""},{"name":"value1","nativeSrc":"2880:6:88","nodeType":"YulTypedName","src":"2880:6:88","type":""}],"src":"2807:347:88"},{"body":{"nativeSrc":"3191:95:88","nodeType":"YulBlock","src":"3191:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3208:1:88","nodeType":"YulLiteral","src":"3208:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3215:3:88","nodeType":"YulLiteral","src":"3215:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3220:10:88","nodeType":"YulLiteral","src":"3220:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3211:3:88","nodeType":"YulIdentifier","src":"3211:3:88"},"nativeSrc":"3211:20:88","nodeType":"YulFunctionCall","src":"3211:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3201:6:88","nodeType":"YulIdentifier","src":"3201:6:88"},"nativeSrc":"3201:31:88","nodeType":"YulFunctionCall","src":"3201:31:88"},"nativeSrc":"3201:31:88","nodeType":"YulExpressionStatement","src":"3201:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3248:1:88","nodeType":"YulLiteral","src":"3248:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3251:4:88","nodeType":"YulLiteral","src":"3251:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3241:6:88","nodeType":"YulIdentifier","src":"3241:6:88"},"nativeSrc":"3241:15:88","nodeType":"YulFunctionCall","src":"3241:15:88"},"nativeSrc":"3241:15:88","nodeType":"YulExpressionStatement","src":"3241:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3272:1:88","nodeType":"YulLiteral","src":"3272:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3275:4:88","nodeType":"YulLiteral","src":"3275:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3265:6:88","nodeType":"YulIdentifier","src":"3265:6:88"},"nativeSrc":"3265:15:88","nodeType":"YulFunctionCall","src":"3265:15:88"},"nativeSrc":"3265:15:88","nodeType":"YulExpressionStatement","src":"3265:15:88"}]},"name":"panic_error_0x41","nativeSrc":"3159:127:88","nodeType":"YulFunctionDefinition","src":"3159:127:88"},{"body":{"nativeSrc":"3421:1077:88","nodeType":"YulBlock","src":"3421:1077:88","statements":[{"body":{"nativeSrc":"3468:16:88","nodeType":"YulBlock","src":"3468:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3477:1:88","nodeType":"YulLiteral","src":"3477:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3480:1:88","nodeType":"YulLiteral","src":"3480:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3470:6:88","nodeType":"YulIdentifier","src":"3470:6:88"},"nativeSrc":"3470:12:88","nodeType":"YulFunctionCall","src":"3470:12:88"},"nativeSrc":"3470:12:88","nodeType":"YulExpressionStatement","src":"3470:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3442:7:88","nodeType":"YulIdentifier","src":"3442:7:88"},{"name":"headStart","nativeSrc":"3451:9:88","nodeType":"YulIdentifier","src":"3451:9:88"}],"functionName":{"name":"sub","nativeSrc":"3438:3:88","nodeType":"YulIdentifier","src":"3438:3:88"},"nativeSrc":"3438:23:88","nodeType":"YulFunctionCall","src":"3438:23:88"},{"kind":"number","nativeSrc":"3463:3:88","nodeType":"YulLiteral","src":"3463:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3434:3:88","nodeType":"YulIdentifier","src":"3434:3:88"},"nativeSrc":"3434:33:88","nodeType":"YulFunctionCall","src":"3434:33:88"},"nativeSrc":"3431:53:88","nodeType":"YulIf","src":"3431:53:88"},{"nativeSrc":"3493:39:88","nodeType":"YulAssignment","src":"3493:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3522:9:88","nodeType":"YulIdentifier","src":"3522:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3503:18:88","nodeType":"YulIdentifier","src":"3503:18:88"},"nativeSrc":"3503:29:88","nodeType":"YulFunctionCall","src":"3503:29:88"},"variableNames":[{"name":"value0","nativeSrc":"3493:6:88","nodeType":"YulIdentifier","src":"3493:6:88"}]},{"nativeSrc":"3541:48:88","nodeType":"YulAssignment","src":"3541:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3574:9:88","nodeType":"YulIdentifier","src":"3574:9:88"},{"kind":"number","nativeSrc":"3585:2:88","nodeType":"YulLiteral","src":"3585:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3570:3:88","nodeType":"YulIdentifier","src":"3570:3:88"},"nativeSrc":"3570:18:88","nodeType":"YulFunctionCall","src":"3570:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3551:18:88","nodeType":"YulIdentifier","src":"3551:18:88"},"nativeSrc":"3551:38:88","nodeType":"YulFunctionCall","src":"3551:38:88"},"variableNames":[{"name":"value1","nativeSrc":"3541:6:88","nodeType":"YulIdentifier","src":"3541:6:88"}]},{"nativeSrc":"3598:14:88","nodeType":"YulVariableDeclaration","src":"3598:14:88","value":{"kind":"number","nativeSrc":"3611:1:88","nodeType":"YulLiteral","src":"3611:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3602:5:88","nodeType":"YulTypedName","src":"3602:5:88","type":""}]},{"nativeSrc":"3621:41:88","nodeType":"YulAssignment","src":"3621:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3647:9:88","nodeType":"YulIdentifier","src":"3647:9:88"},{"kind":"number","nativeSrc":"3658:2:88","nodeType":"YulLiteral","src":"3658:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3643:3:88","nodeType":"YulIdentifier","src":"3643:3:88"},"nativeSrc":"3643:18:88","nodeType":"YulFunctionCall","src":"3643:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3630:12:88","nodeType":"YulIdentifier","src":"3630:12:88"},"nativeSrc":"3630:32:88","nodeType":"YulFunctionCall","src":"3630:32:88"},"variableNames":[{"name":"value","nativeSrc":"3621:5:88","nodeType":"YulIdentifier","src":"3621:5:88"}]},{"nativeSrc":"3671:15:88","nodeType":"YulAssignment","src":"3671:15:88","value":{"name":"value","nativeSrc":"3681:5:88","nodeType":"YulIdentifier","src":"3681:5:88"},"variableNames":[{"name":"value2","nativeSrc":"3671:6:88","nodeType":"YulIdentifier","src":"3671:6:88"}]},{"nativeSrc":"3695:46:88","nodeType":"YulVariableDeclaration","src":"3695:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3726:9:88","nodeType":"YulIdentifier","src":"3726:9:88"},{"kind":"number","nativeSrc":"3737:2:88","nodeType":"YulLiteral","src":"3737:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3722:3:88","nodeType":"YulIdentifier","src":"3722:3:88"},"nativeSrc":"3722:18:88","nodeType":"YulFunctionCall","src":"3722:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3709:12:88","nodeType":"YulIdentifier","src":"3709:12:88"},"nativeSrc":"3709:32:88","nodeType":"YulFunctionCall","src":"3709:32:88"},"variables":[{"name":"offset","nativeSrc":"3699:6:88","nodeType":"YulTypedName","src":"3699:6:88","type":""}]},{"body":{"nativeSrc":"3784:16:88","nodeType":"YulBlock","src":"3784:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3793:1:88","nodeType":"YulLiteral","src":"3793:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3796:1:88","nodeType":"YulLiteral","src":"3796:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3786:6:88","nodeType":"YulIdentifier","src":"3786:6:88"},"nativeSrc":"3786:12:88","nodeType":"YulFunctionCall","src":"3786:12:88"},"nativeSrc":"3786:12:88","nodeType":"YulExpressionStatement","src":"3786:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3756:6:88","nodeType":"YulIdentifier","src":"3756:6:88"},{"kind":"number","nativeSrc":"3764:18:88","nodeType":"YulLiteral","src":"3764:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3753:2:88","nodeType":"YulIdentifier","src":"3753:2:88"},"nativeSrc":"3753:30:88","nodeType":"YulFunctionCall","src":"3753:30:88"},"nativeSrc":"3750:50:88","nodeType":"YulIf","src":"3750:50:88"},{"nativeSrc":"3809:32:88","nodeType":"YulVariableDeclaration","src":"3809:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3823:9:88","nodeType":"YulIdentifier","src":"3823:9:88"},{"name":"offset","nativeSrc":"3834:6:88","nodeType":"YulIdentifier","src":"3834:6:88"}],"functionName":{"name":"add","nativeSrc":"3819:3:88","nodeType":"YulIdentifier","src":"3819:3:88"},"nativeSrc":"3819:22:88","nodeType":"YulFunctionCall","src":"3819:22:88"},"variables":[{"name":"_1","nativeSrc":"3813:2:88","nodeType":"YulTypedName","src":"3813:2:88","type":""}]},{"body":{"nativeSrc":"3889:16:88","nodeType":"YulBlock","src":"3889:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3898:1:88","nodeType":"YulLiteral","src":"3898:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3901:1:88","nodeType":"YulLiteral","src":"3901:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3891:6:88","nodeType":"YulIdentifier","src":"3891:6:88"},"nativeSrc":"3891:12:88","nodeType":"YulFunctionCall","src":"3891:12:88"},"nativeSrc":"3891:12:88","nodeType":"YulExpressionStatement","src":"3891:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3868:2:88","nodeType":"YulIdentifier","src":"3868:2:88"},{"kind":"number","nativeSrc":"3872:4:88","nodeType":"YulLiteral","src":"3872:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3864:3:88","nodeType":"YulIdentifier","src":"3864:3:88"},"nativeSrc":"3864:13:88","nodeType":"YulFunctionCall","src":"3864:13:88"},{"name":"dataEnd","nativeSrc":"3879:7:88","nodeType":"YulIdentifier","src":"3879:7:88"}],"functionName":{"name":"slt","nativeSrc":"3860:3:88","nodeType":"YulIdentifier","src":"3860:3:88"},"nativeSrc":"3860:27:88","nodeType":"YulFunctionCall","src":"3860:27:88"}],"functionName":{"name":"iszero","nativeSrc":"3853:6:88","nodeType":"YulIdentifier","src":"3853:6:88"},"nativeSrc":"3853:35:88","nodeType":"YulFunctionCall","src":"3853:35:88"},"nativeSrc":"3850:55:88","nodeType":"YulIf","src":"3850:55:88"},{"nativeSrc":"3914:30:88","nodeType":"YulVariableDeclaration","src":"3914:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"3941:2:88","nodeType":"YulIdentifier","src":"3941:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"3928:12:88","nodeType":"YulIdentifier","src":"3928:12:88"},"nativeSrc":"3928:16:88","nodeType":"YulFunctionCall","src":"3928:16:88"},"variables":[{"name":"length","nativeSrc":"3918:6:88","nodeType":"YulTypedName","src":"3918:6:88","type":""}]},{"body":{"nativeSrc":"3987:22:88","nodeType":"YulBlock","src":"3987:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3989:16:88","nodeType":"YulIdentifier","src":"3989:16:88"},"nativeSrc":"3989:18:88","nodeType":"YulFunctionCall","src":"3989:18:88"},"nativeSrc":"3989:18:88","nodeType":"YulExpressionStatement","src":"3989:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3959:6:88","nodeType":"YulIdentifier","src":"3959:6:88"},{"kind":"number","nativeSrc":"3967:18:88","nodeType":"YulLiteral","src":"3967:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3956:2:88","nodeType":"YulIdentifier","src":"3956:2:88"},"nativeSrc":"3956:30:88","nodeType":"YulFunctionCall","src":"3956:30:88"},"nativeSrc":"3953:56:88","nodeType":"YulIf","src":"3953:56:88"},{"nativeSrc":"4018:23:88","nodeType":"YulVariableDeclaration","src":"4018:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"4038:2:88","nodeType":"YulLiteral","src":"4038:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4032:5:88","nodeType":"YulIdentifier","src":"4032:5:88"},"nativeSrc":"4032:9:88","nodeType":"YulFunctionCall","src":"4032:9:88"},"variables":[{"name":"memPtr","nativeSrc":"4022:6:88","nodeType":"YulTypedName","src":"4022:6:88","type":""}]},{"nativeSrc":"4050:85:88","nodeType":"YulVariableDeclaration","src":"4050:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"4072:6:88","nodeType":"YulIdentifier","src":"4072:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4096:6:88","nodeType":"YulIdentifier","src":"4096:6:88"},{"kind":"number","nativeSrc":"4104:4:88","nodeType":"YulLiteral","src":"4104:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4092:3:88","nodeType":"YulIdentifier","src":"4092:3:88"},"nativeSrc":"4092:17:88","nodeType":"YulFunctionCall","src":"4092:17:88"},{"arguments":[{"kind":"number","nativeSrc":"4115:2:88","nodeType":"YulLiteral","src":"4115:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4111:3:88","nodeType":"YulIdentifier","src":"4111:3:88"},"nativeSrc":"4111:7:88","nodeType":"YulFunctionCall","src":"4111:7:88"}],"functionName":{"name":"and","nativeSrc":"4088:3:88","nodeType":"YulIdentifier","src":"4088:3:88"},"nativeSrc":"4088:31:88","nodeType":"YulFunctionCall","src":"4088:31:88"},{"kind":"number","nativeSrc":"4121:2:88","nodeType":"YulLiteral","src":"4121:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"4084:3:88","nodeType":"YulIdentifier","src":"4084:3:88"},"nativeSrc":"4084:40:88","nodeType":"YulFunctionCall","src":"4084:40:88"},{"arguments":[{"kind":"number","nativeSrc":"4130:2:88","nodeType":"YulLiteral","src":"4130:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4126:3:88","nodeType":"YulIdentifier","src":"4126:3:88"},"nativeSrc":"4126:7:88","nodeType":"YulFunctionCall","src":"4126:7:88"}],"functionName":{"name":"and","nativeSrc":"4080:3:88","nodeType":"YulIdentifier","src":"4080:3:88"},"nativeSrc":"4080:54:88","nodeType":"YulFunctionCall","src":"4080:54:88"}],"functionName":{"name":"add","nativeSrc":"4068:3:88","nodeType":"YulIdentifier","src":"4068:3:88"},"nativeSrc":"4068:67:88","nodeType":"YulFunctionCall","src":"4068:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"4054:10:88","nodeType":"YulTypedName","src":"4054:10:88","type":""}]},{"body":{"nativeSrc":"4210:22:88","nodeType":"YulBlock","src":"4210:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4212:16:88","nodeType":"YulIdentifier","src":"4212:16:88"},"nativeSrc":"4212:18:88","nodeType":"YulFunctionCall","src":"4212:18:88"},"nativeSrc":"4212:18:88","nodeType":"YulExpressionStatement","src":"4212:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"4153:10:88","nodeType":"YulIdentifier","src":"4153:10:88"},{"kind":"number","nativeSrc":"4165:18:88","nodeType":"YulLiteral","src":"4165:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4150:2:88","nodeType":"YulIdentifier","src":"4150:2:88"},"nativeSrc":"4150:34:88","nodeType":"YulFunctionCall","src":"4150:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"4189:10:88","nodeType":"YulIdentifier","src":"4189:10:88"},{"name":"memPtr","nativeSrc":"4201:6:88","nodeType":"YulIdentifier","src":"4201:6:88"}],"functionName":{"name":"lt","nativeSrc":"4186:2:88","nodeType":"YulIdentifier","src":"4186:2:88"},"nativeSrc":"4186:22:88","nodeType":"YulFunctionCall","src":"4186:22:88"}],"functionName":{"name":"or","nativeSrc":"4147:2:88","nodeType":"YulIdentifier","src":"4147:2:88"},"nativeSrc":"4147:62:88","nodeType":"YulFunctionCall","src":"4147:62:88"},"nativeSrc":"4144:88:88","nodeType":"YulIf","src":"4144:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4248:2:88","nodeType":"YulLiteral","src":"4248:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"4252:10:88","nodeType":"YulIdentifier","src":"4252:10:88"}],"functionName":{"name":"mstore","nativeSrc":"4241:6:88","nodeType":"YulIdentifier","src":"4241:6:88"},"nativeSrc":"4241:22:88","nodeType":"YulFunctionCall","src":"4241:22:88"},"nativeSrc":"4241:22:88","nodeType":"YulExpressionStatement","src":"4241:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"4279:6:88","nodeType":"YulIdentifier","src":"4279:6:88"},{"name":"length","nativeSrc":"4287:6:88","nodeType":"YulIdentifier","src":"4287:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4272:6:88","nodeType":"YulIdentifier","src":"4272:6:88"},"nativeSrc":"4272:22:88","nodeType":"YulFunctionCall","src":"4272:22:88"},"nativeSrc":"4272:22:88","nodeType":"YulExpressionStatement","src":"4272:22:88"},{"body":{"nativeSrc":"4344:16:88","nodeType":"YulBlock","src":"4344:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4353:1:88","nodeType":"YulLiteral","src":"4353:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4356:1:88","nodeType":"YulLiteral","src":"4356:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4346:6:88","nodeType":"YulIdentifier","src":"4346:6:88"},"nativeSrc":"4346:12:88","nodeType":"YulFunctionCall","src":"4346:12:88"},"nativeSrc":"4346:12:88","nodeType":"YulExpressionStatement","src":"4346:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4317:2:88","nodeType":"YulIdentifier","src":"4317:2:88"},{"name":"length","nativeSrc":"4321:6:88","nodeType":"YulIdentifier","src":"4321:6:88"}],"functionName":{"name":"add","nativeSrc":"4313:3:88","nodeType":"YulIdentifier","src":"4313:3:88"},"nativeSrc":"4313:15:88","nodeType":"YulFunctionCall","src":"4313:15:88"},{"kind":"number","nativeSrc":"4330:2:88","nodeType":"YulLiteral","src":"4330:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4309:3:88","nodeType":"YulIdentifier","src":"4309:3:88"},"nativeSrc":"4309:24:88","nodeType":"YulFunctionCall","src":"4309:24:88"},{"name":"dataEnd","nativeSrc":"4335:7:88","nodeType":"YulIdentifier","src":"4335:7:88"}],"functionName":{"name":"gt","nativeSrc":"4306:2:88","nodeType":"YulIdentifier","src":"4306:2:88"},"nativeSrc":"4306:37:88","nodeType":"YulFunctionCall","src":"4306:37:88"},"nativeSrc":"4303:57:88","nodeType":"YulIf","src":"4303:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4386:6:88","nodeType":"YulIdentifier","src":"4386:6:88"},{"kind":"number","nativeSrc":"4394:2:88","nodeType":"YulLiteral","src":"4394:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4382:3:88","nodeType":"YulIdentifier","src":"4382:3:88"},"nativeSrc":"4382:15:88","nodeType":"YulFunctionCall","src":"4382:15:88"},{"arguments":[{"name":"_1","nativeSrc":"4403:2:88","nodeType":"YulIdentifier","src":"4403:2:88"},{"kind":"number","nativeSrc":"4407:2:88","nodeType":"YulLiteral","src":"4407:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4399:3:88","nodeType":"YulIdentifier","src":"4399:3:88"},"nativeSrc":"4399:11:88","nodeType":"YulFunctionCall","src":"4399:11:88"},{"name":"length","nativeSrc":"4412:6:88","nodeType":"YulIdentifier","src":"4412:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"4369:12:88","nodeType":"YulIdentifier","src":"4369:12:88"},"nativeSrc":"4369:50:88","nodeType":"YulFunctionCall","src":"4369:50:88"},"nativeSrc":"4369:50:88","nodeType":"YulExpressionStatement","src":"4369:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4443:6:88","nodeType":"YulIdentifier","src":"4443:6:88"},{"name":"length","nativeSrc":"4451:6:88","nodeType":"YulIdentifier","src":"4451:6:88"}],"functionName":{"name":"add","nativeSrc":"4439:3:88","nodeType":"YulIdentifier","src":"4439:3:88"},"nativeSrc":"4439:19:88","nodeType":"YulFunctionCall","src":"4439:19:88"},{"kind":"number","nativeSrc":"4460:2:88","nodeType":"YulLiteral","src":"4460:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4435:3:88","nodeType":"YulIdentifier","src":"4435:3:88"},"nativeSrc":"4435:28:88","nodeType":"YulFunctionCall","src":"4435:28:88"},{"kind":"number","nativeSrc":"4465:1:88","nodeType":"YulLiteral","src":"4465:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4428:6:88","nodeType":"YulIdentifier","src":"4428:6:88"},"nativeSrc":"4428:39:88","nodeType":"YulFunctionCall","src":"4428:39:88"},"nativeSrc":"4428:39:88","nodeType":"YulExpressionStatement","src":"4428:39:88"},{"nativeSrc":"4476:16:88","nodeType":"YulAssignment","src":"4476:16:88","value":{"name":"memPtr","nativeSrc":"4486:6:88","nodeType":"YulIdentifier","src":"4486:6:88"},"variableNames":[{"name":"value3","nativeSrc":"4476:6:88","nodeType":"YulIdentifier","src":"4476:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"3291:1207:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3363:9:88","nodeType":"YulTypedName","src":"3363:9:88","type":""},{"name":"dataEnd","nativeSrc":"3374:7:88","nodeType":"YulTypedName","src":"3374:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3386:6:88","nodeType":"YulTypedName","src":"3386:6:88","type":""},{"name":"value1","nativeSrc":"3394:6:88","nodeType":"YulTypedName","src":"3394:6:88","type":""},{"name":"value2","nativeSrc":"3402:6:88","nodeType":"YulTypedName","src":"3402:6:88","type":""},{"name":"value3","nativeSrc":"3410:6:88","nodeType":"YulTypedName","src":"3410:6:88","type":""}],"src":"3291:1207:88"},{"body":{"nativeSrc":"4590:173:88","nodeType":"YulBlock","src":"4590:173:88","statements":[{"body":{"nativeSrc":"4636:16:88","nodeType":"YulBlock","src":"4636:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4645:1:88","nodeType":"YulLiteral","src":"4645:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4648:1:88","nodeType":"YulLiteral","src":"4648:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4638:6:88","nodeType":"YulIdentifier","src":"4638:6:88"},"nativeSrc":"4638:12:88","nodeType":"YulFunctionCall","src":"4638:12:88"},"nativeSrc":"4638:12:88","nodeType":"YulExpressionStatement","src":"4638:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4611:7:88","nodeType":"YulIdentifier","src":"4611:7:88"},{"name":"headStart","nativeSrc":"4620:9:88","nodeType":"YulIdentifier","src":"4620:9:88"}],"functionName":{"name":"sub","nativeSrc":"4607:3:88","nodeType":"YulIdentifier","src":"4607:3:88"},"nativeSrc":"4607:23:88","nodeType":"YulFunctionCall","src":"4607:23:88"},{"kind":"number","nativeSrc":"4632:2:88","nodeType":"YulLiteral","src":"4632:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4603:3:88","nodeType":"YulIdentifier","src":"4603:3:88"},"nativeSrc":"4603:32:88","nodeType":"YulFunctionCall","src":"4603:32:88"},"nativeSrc":"4600:52:88","nodeType":"YulIf","src":"4600:52:88"},{"nativeSrc":"4661:39:88","nodeType":"YulAssignment","src":"4661:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4690:9:88","nodeType":"YulIdentifier","src":"4690:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4671:18:88","nodeType":"YulIdentifier","src":"4671:18:88"},"nativeSrc":"4671:29:88","nodeType":"YulFunctionCall","src":"4671:29:88"},"variableNames":[{"name":"value0","nativeSrc":"4661:6:88","nodeType":"YulIdentifier","src":"4661:6:88"}]},{"nativeSrc":"4709:48:88","nodeType":"YulAssignment","src":"4709:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4742:9:88","nodeType":"YulIdentifier","src":"4742:9:88"},{"kind":"number","nativeSrc":"4753:2:88","nodeType":"YulLiteral","src":"4753:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4738:3:88","nodeType":"YulIdentifier","src":"4738:3:88"},"nativeSrc":"4738:18:88","nodeType":"YulFunctionCall","src":"4738:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4719:18:88","nodeType":"YulIdentifier","src":"4719:18:88"},"nativeSrc":"4719:38:88","nodeType":"YulFunctionCall","src":"4719:38:88"},"variableNames":[{"name":"value1","nativeSrc":"4709:6:88","nodeType":"YulIdentifier","src":"4709:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"4503:260:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4548:9:88","nodeType":"YulTypedName","src":"4548:9:88","type":""},{"name":"dataEnd","nativeSrc":"4559:7:88","nodeType":"YulTypedName","src":"4559:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4571:6:88","nodeType":"YulTypedName","src":"4571:6:88","type":""},{"name":"value1","nativeSrc":"4579:6:88","nodeType":"YulTypedName","src":"4579:6:88","type":""}],"src":"4503:260:88"},{"body":{"nativeSrc":"4823:325:88","nodeType":"YulBlock","src":"4823:325:88","statements":[{"nativeSrc":"4833:22:88","nodeType":"YulAssignment","src":"4833:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"4847:1:88","nodeType":"YulLiteral","src":"4847:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"4850:4:88","nodeType":"YulIdentifier","src":"4850:4:88"}],"functionName":{"name":"shr","nativeSrc":"4843:3:88","nodeType":"YulIdentifier","src":"4843:3:88"},"nativeSrc":"4843:12:88","nodeType":"YulFunctionCall","src":"4843:12:88"},"variableNames":[{"name":"length","nativeSrc":"4833:6:88","nodeType":"YulIdentifier","src":"4833:6:88"}]},{"nativeSrc":"4864:38:88","nodeType":"YulVariableDeclaration","src":"4864:38:88","value":{"arguments":[{"name":"data","nativeSrc":"4894:4:88","nodeType":"YulIdentifier","src":"4894:4:88"},{"kind":"number","nativeSrc":"4900:1:88","nodeType":"YulLiteral","src":"4900:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4890:3:88","nodeType":"YulIdentifier","src":"4890:3:88"},"nativeSrc":"4890:12:88","nodeType":"YulFunctionCall","src":"4890:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4868:18:88","nodeType":"YulTypedName","src":"4868:18:88","type":""}]},{"body":{"nativeSrc":"4941:31:88","nodeType":"YulBlock","src":"4941:31:88","statements":[{"nativeSrc":"4943:27:88","nodeType":"YulAssignment","src":"4943:27:88","value":{"arguments":[{"name":"length","nativeSrc":"4957:6:88","nodeType":"YulIdentifier","src":"4957:6:88"},{"kind":"number","nativeSrc":"4965:4:88","nodeType":"YulLiteral","src":"4965:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4953:3:88","nodeType":"YulIdentifier","src":"4953:3:88"},"nativeSrc":"4953:17:88","nodeType":"YulFunctionCall","src":"4953:17:88"},"variableNames":[{"name":"length","nativeSrc":"4943:6:88","nodeType":"YulIdentifier","src":"4943:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4921:18:88","nodeType":"YulIdentifier","src":"4921:18:88"}],"functionName":{"name":"iszero","nativeSrc":"4914:6:88","nodeType":"YulIdentifier","src":"4914:6:88"},"nativeSrc":"4914:26:88","nodeType":"YulFunctionCall","src":"4914:26:88"},"nativeSrc":"4911:61:88","nodeType":"YulIf","src":"4911:61:88"},{"body":{"nativeSrc":"5031:111:88","nodeType":"YulBlock","src":"5031:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5052:1:88","nodeType":"YulLiteral","src":"5052:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5059:3:88","nodeType":"YulLiteral","src":"5059:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"5064:10:88","nodeType":"YulLiteral","src":"5064:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5055:3:88","nodeType":"YulIdentifier","src":"5055:3:88"},"nativeSrc":"5055:20:88","nodeType":"YulFunctionCall","src":"5055:20:88"}],"functionName":{"name":"mstore","nativeSrc":"5045:6:88","nodeType":"YulIdentifier","src":"5045:6:88"},"nativeSrc":"5045:31:88","nodeType":"YulFunctionCall","src":"5045:31:88"},"nativeSrc":"5045:31:88","nodeType":"YulExpressionStatement","src":"5045:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5096:1:88","nodeType":"YulLiteral","src":"5096:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"5099:4:88","nodeType":"YulLiteral","src":"5099:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5089:6:88","nodeType":"YulIdentifier","src":"5089:6:88"},"nativeSrc":"5089:15:88","nodeType":"YulFunctionCall","src":"5089:15:88"},"nativeSrc":"5089:15:88","nodeType":"YulExpressionStatement","src":"5089:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5124:1:88","nodeType":"YulLiteral","src":"5124:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5127:4:88","nodeType":"YulLiteral","src":"5127:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5117:6:88","nodeType":"YulIdentifier","src":"5117:6:88"},"nativeSrc":"5117:15:88","nodeType":"YulFunctionCall","src":"5117:15:88"},"nativeSrc":"5117:15:88","nodeType":"YulExpressionStatement","src":"5117:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4987:18:88","nodeType":"YulIdentifier","src":"4987:18:88"},{"arguments":[{"name":"length","nativeSrc":"5010:6:88","nodeType":"YulIdentifier","src":"5010:6:88"},{"kind":"number","nativeSrc":"5018:2:88","nodeType":"YulLiteral","src":"5018:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5007:2:88","nodeType":"YulIdentifier","src":"5007:2:88"},"nativeSrc":"5007:14:88","nodeType":"YulFunctionCall","src":"5007:14:88"}],"functionName":{"name":"eq","nativeSrc":"4984:2:88","nodeType":"YulIdentifier","src":"4984:2:88"},"nativeSrc":"4984:38:88","nodeType":"YulFunctionCall","src":"4984:38:88"},"nativeSrc":"4981:161:88","nodeType":"YulIf","src":"4981:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"4768:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4803:4:88","nodeType":"YulTypedName","src":"4803:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4812:6:88","nodeType":"YulTypedName","src":"4812:6:88","type":""}],"src":"4768:380:88"},{"body":{"nativeSrc":"5327:223:88","nodeType":"YulBlock","src":"5327:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5344:9:88","nodeType":"YulIdentifier","src":"5344:9:88"},{"kind":"number","nativeSrc":"5355:2:88","nodeType":"YulLiteral","src":"5355:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5337:6:88","nodeType":"YulIdentifier","src":"5337:6:88"},"nativeSrc":"5337:21:88","nodeType":"YulFunctionCall","src":"5337:21:88"},"nativeSrc":"5337:21:88","nodeType":"YulExpressionStatement","src":"5337:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5378:9:88","nodeType":"YulIdentifier","src":"5378:9:88"},{"kind":"number","nativeSrc":"5389:2:88","nodeType":"YulLiteral","src":"5389:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5374:3:88","nodeType":"YulIdentifier","src":"5374:3:88"},"nativeSrc":"5374:18:88","nodeType":"YulFunctionCall","src":"5374:18:88"},{"kind":"number","nativeSrc":"5394:2:88","nodeType":"YulLiteral","src":"5394:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:88","nodeType":"YulIdentifier","src":"5367:6:88"},"nativeSrc":"5367:30:88","nodeType":"YulFunctionCall","src":"5367:30:88"},"nativeSrc":"5367:30:88","nodeType":"YulExpressionStatement","src":"5367:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5417:9:88","nodeType":"YulIdentifier","src":"5417:9:88"},{"kind":"number","nativeSrc":"5428:2:88","nodeType":"YulLiteral","src":"5428:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5413:3:88","nodeType":"YulIdentifier","src":"5413:3:88"},"nativeSrc":"5413:18:88","nodeType":"YulFunctionCall","src":"5413:18:88"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nativeSrc":"5433:34:88","nodeType":"YulLiteral","src":"5433:34:88","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nativeSrc":"5406:6:88","nodeType":"YulIdentifier","src":"5406:6:88"},"nativeSrc":"5406:62:88","nodeType":"YulFunctionCall","src":"5406:62:88"},"nativeSrc":"5406:62:88","nodeType":"YulExpressionStatement","src":"5406:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5488:9:88","nodeType":"YulIdentifier","src":"5488:9:88"},{"kind":"number","nativeSrc":"5499:2:88","nodeType":"YulLiteral","src":"5499:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5484:3:88","nodeType":"YulIdentifier","src":"5484:3:88"},"nativeSrc":"5484:18:88","nodeType":"YulFunctionCall","src":"5484:18:88"},{"hexValue":"72","kind":"string","nativeSrc":"5504:3:88","nodeType":"YulLiteral","src":"5504:3:88","type":"","value":"r"}],"functionName":{"name":"mstore","nativeSrc":"5477:6:88","nodeType":"YulIdentifier","src":"5477:6:88"},"nativeSrc":"5477:31:88","nodeType":"YulFunctionCall","src":"5477:31:88"},"nativeSrc":"5477:31:88","nodeType":"YulExpressionStatement","src":"5477:31:88"},{"nativeSrc":"5517:27:88","nodeType":"YulAssignment","src":"5517:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5529:9:88","nodeType":"YulIdentifier","src":"5529:9:88"},{"kind":"number","nativeSrc":"5540:3:88","nodeType":"YulLiteral","src":"5540:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5525:3:88","nodeType":"YulIdentifier","src":"5525:3:88"},"nativeSrc":"5525:19:88","nodeType":"YulFunctionCall","src":"5525:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5517:4:88","nodeType":"YulIdentifier","src":"5517:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5153:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5304:9:88","nodeType":"YulTypedName","src":"5304:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5318:4:88","nodeType":"YulTypedName","src":"5318:4:88","type":""}],"src":"5153:397:88"},{"body":{"nativeSrc":"5729:251:88","nodeType":"YulBlock","src":"5729:251:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5746:9:88","nodeType":"YulIdentifier","src":"5746:9:88"},{"kind":"number","nativeSrc":"5757:2:88","nodeType":"YulLiteral","src":"5757:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5739:6:88","nodeType":"YulIdentifier","src":"5739:6:88"},"nativeSrc":"5739:21:88","nodeType":"YulFunctionCall","src":"5739:21:88"},"nativeSrc":"5739:21:88","nodeType":"YulExpressionStatement","src":"5739:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5780:9:88","nodeType":"YulIdentifier","src":"5780:9:88"},{"kind":"number","nativeSrc":"5791:2:88","nodeType":"YulLiteral","src":"5791:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5776:3:88","nodeType":"YulIdentifier","src":"5776:3:88"},"nativeSrc":"5776:18:88","nodeType":"YulFunctionCall","src":"5776:18:88"},{"kind":"number","nativeSrc":"5796:2:88","nodeType":"YulLiteral","src":"5796:2:88","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"5769:6:88","nodeType":"YulIdentifier","src":"5769:6:88"},"nativeSrc":"5769:30:88","nodeType":"YulFunctionCall","src":"5769:30:88"},"nativeSrc":"5769:30:88","nodeType":"YulExpressionStatement","src":"5769:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5819:9:88","nodeType":"YulIdentifier","src":"5819:9:88"},{"kind":"number","nativeSrc":"5830:2:88","nodeType":"YulLiteral","src":"5830:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5815:3:88","nodeType":"YulIdentifier","src":"5815:3:88"},"nativeSrc":"5815:18:88","nodeType":"YulFunctionCall","src":"5815:18:88"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nativeSrc":"5835:34:88","nodeType":"YulLiteral","src":"5835:34:88","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nativeSrc":"5808:6:88","nodeType":"YulIdentifier","src":"5808:6:88"},"nativeSrc":"5808:62:88","nodeType":"YulFunctionCall","src":"5808:62:88"},"nativeSrc":"5808:62:88","nodeType":"YulExpressionStatement","src":"5808:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5890:9:88","nodeType":"YulIdentifier","src":"5890:9:88"},{"kind":"number","nativeSrc":"5901:2:88","nodeType":"YulLiteral","src":"5901:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5886:3:88","nodeType":"YulIdentifier","src":"5886:3:88"},"nativeSrc":"5886:18:88","nodeType":"YulFunctionCall","src":"5886:18:88"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nativeSrc":"5906:31:88","nodeType":"YulLiteral","src":"5906:31:88","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nativeSrc":"5879:6:88","nodeType":"YulIdentifier","src":"5879:6:88"},"nativeSrc":"5879:59:88","nodeType":"YulFunctionCall","src":"5879:59:88"},"nativeSrc":"5879:59:88","nodeType":"YulExpressionStatement","src":"5879:59:88"},{"nativeSrc":"5947:27:88","nodeType":"YulAssignment","src":"5947:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5959:9:88","nodeType":"YulIdentifier","src":"5959:9:88"},{"kind":"number","nativeSrc":"5970:3:88","nodeType":"YulLiteral","src":"5970:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5955:3:88","nodeType":"YulIdentifier","src":"5955:3:88"},"nativeSrc":"5955:19:88","nodeType":"YulFunctionCall","src":"5955:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5947:4:88","nodeType":"YulIdentifier","src":"5947:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5555:425:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5706:9:88","nodeType":"YulTypedName","src":"5706:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5720:4:88","nodeType":"YulTypedName","src":"5720:4:88","type":""}],"src":"5555:425:88"},{"body":{"nativeSrc":"6159:235:88","nodeType":"YulBlock","src":"6159:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6176:9:88","nodeType":"YulIdentifier","src":"6176:9:88"},{"kind":"number","nativeSrc":"6187:2:88","nodeType":"YulLiteral","src":"6187:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6169:6:88","nodeType":"YulIdentifier","src":"6169:6:88"},"nativeSrc":"6169:21:88","nodeType":"YulFunctionCall","src":"6169:21:88"},"nativeSrc":"6169:21:88","nodeType":"YulExpressionStatement","src":"6169:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6210:9:88","nodeType":"YulIdentifier","src":"6210:9:88"},{"kind":"number","nativeSrc":"6221:2:88","nodeType":"YulLiteral","src":"6221:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6206:3:88","nodeType":"YulIdentifier","src":"6206:3:88"},"nativeSrc":"6206:18:88","nodeType":"YulFunctionCall","src":"6206:18:88"},{"kind":"number","nativeSrc":"6226:2:88","nodeType":"YulLiteral","src":"6226:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"6199:6:88","nodeType":"YulIdentifier","src":"6199:6:88"},"nativeSrc":"6199:30:88","nodeType":"YulFunctionCall","src":"6199:30:88"},"nativeSrc":"6199:30:88","nodeType":"YulExpressionStatement","src":"6199:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6249:9:88","nodeType":"YulIdentifier","src":"6249:9:88"},{"kind":"number","nativeSrc":"6260:2:88","nodeType":"YulLiteral","src":"6260:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6245:3:88","nodeType":"YulIdentifier","src":"6245:3:88"},"nativeSrc":"6245:18:88","nodeType":"YulFunctionCall","src":"6245:18:88"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nativeSrc":"6265:34:88","nodeType":"YulLiteral","src":"6265:34:88","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nativeSrc":"6238:6:88","nodeType":"YulIdentifier","src":"6238:6:88"},"nativeSrc":"6238:62:88","nodeType":"YulFunctionCall","src":"6238:62:88"},"nativeSrc":"6238:62:88","nodeType":"YulExpressionStatement","src":"6238:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6320:9:88","nodeType":"YulIdentifier","src":"6320:9:88"},{"kind":"number","nativeSrc":"6331:2:88","nodeType":"YulLiteral","src":"6331:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6316:3:88","nodeType":"YulIdentifier","src":"6316:3:88"},"nativeSrc":"6316:18:88","nodeType":"YulFunctionCall","src":"6316:18:88"},{"hexValue":"72206f7220617070726f766564","kind":"string","nativeSrc":"6336:15:88","nodeType":"YulLiteral","src":"6336:15:88","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nativeSrc":"6309:6:88","nodeType":"YulIdentifier","src":"6309:6:88"},"nativeSrc":"6309:43:88","nodeType":"YulFunctionCall","src":"6309:43:88"},"nativeSrc":"6309:43:88","nodeType":"YulExpressionStatement","src":"6309:43:88"},{"nativeSrc":"6361:27:88","nodeType":"YulAssignment","src":"6361:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6373:9:88","nodeType":"YulIdentifier","src":"6373:9:88"},{"kind":"number","nativeSrc":"6384:3:88","nodeType":"YulLiteral","src":"6384:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6369:3:88","nodeType":"YulIdentifier","src":"6369:3:88"},"nativeSrc":"6369:19:88","nodeType":"YulFunctionCall","src":"6369:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6361:4:88","nodeType":"YulIdentifier","src":"6361:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5985:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6136:9:88","nodeType":"YulTypedName","src":"6136:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6150:4:88","nodeType":"YulTypedName","src":"6150:4:88","type":""}],"src":"5985:409:88"},{"body":{"nativeSrc":"6573:174:88","nodeType":"YulBlock","src":"6573:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6590:9:88","nodeType":"YulIdentifier","src":"6590:9:88"},{"kind":"number","nativeSrc":"6601:2:88","nodeType":"YulLiteral","src":"6601:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6583:6:88","nodeType":"YulIdentifier","src":"6583:6:88"},"nativeSrc":"6583:21:88","nodeType":"YulFunctionCall","src":"6583:21:88"},"nativeSrc":"6583:21:88","nodeType":"YulExpressionStatement","src":"6583:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6624:9:88","nodeType":"YulIdentifier","src":"6624:9:88"},{"kind":"number","nativeSrc":"6635:2:88","nodeType":"YulLiteral","src":"6635:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6620:3:88","nodeType":"YulIdentifier","src":"6620:3:88"},"nativeSrc":"6620:18:88","nodeType":"YulFunctionCall","src":"6620:18:88"},{"kind":"number","nativeSrc":"6640:2:88","nodeType":"YulLiteral","src":"6640:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"6613:6:88","nodeType":"YulIdentifier","src":"6613:6:88"},"nativeSrc":"6613:30:88","nodeType":"YulFunctionCall","src":"6613:30:88"},"nativeSrc":"6613:30:88","nodeType":"YulExpressionStatement","src":"6613:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6663:9:88","nodeType":"YulIdentifier","src":"6663:9:88"},{"kind":"number","nativeSrc":"6674:2:88","nodeType":"YulLiteral","src":"6674:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6659:3:88","nodeType":"YulIdentifier","src":"6659:3:88"},"nativeSrc":"6659:18:88","nodeType":"YulFunctionCall","src":"6659:18:88"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nativeSrc":"6679:26:88","nodeType":"YulLiteral","src":"6679:26:88","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nativeSrc":"6652:6:88","nodeType":"YulIdentifier","src":"6652:6:88"},"nativeSrc":"6652:54:88","nodeType":"YulFunctionCall","src":"6652:54:88"},"nativeSrc":"6652:54:88","nodeType":"YulExpressionStatement","src":"6652:54:88"},{"nativeSrc":"6715:26:88","nodeType":"YulAssignment","src":"6715:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6727:9:88","nodeType":"YulIdentifier","src":"6727:9:88"},{"kind":"number","nativeSrc":"6738:2:88","nodeType":"YulLiteral","src":"6738:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6723:3:88","nodeType":"YulIdentifier","src":"6723:3:88"},"nativeSrc":"6723:18:88","nodeType":"YulFunctionCall","src":"6723:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6715:4:88","nodeType":"YulIdentifier","src":"6715:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6399:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6550:9:88","nodeType":"YulTypedName","src":"6550:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6564:4:88","nodeType":"YulTypedName","src":"6564:4:88","type":""}],"src":"6399:348:88"},{"body":{"nativeSrc":"6926:231:88","nodeType":"YulBlock","src":"6926:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6943:9:88","nodeType":"YulIdentifier","src":"6943:9:88"},{"kind":"number","nativeSrc":"6954:2:88","nodeType":"YulLiteral","src":"6954:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6936:6:88","nodeType":"YulIdentifier","src":"6936:6:88"},"nativeSrc":"6936:21:88","nodeType":"YulFunctionCall","src":"6936:21:88"},"nativeSrc":"6936:21:88","nodeType":"YulExpressionStatement","src":"6936:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6977:9:88","nodeType":"YulIdentifier","src":"6977:9:88"},{"kind":"number","nativeSrc":"6988:2:88","nodeType":"YulLiteral","src":"6988:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6973:3:88","nodeType":"YulIdentifier","src":"6973:3:88"},"nativeSrc":"6973:18:88","nodeType":"YulFunctionCall","src":"6973:18:88"},{"kind":"number","nativeSrc":"6993:2:88","nodeType":"YulLiteral","src":"6993:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"6966:6:88","nodeType":"YulIdentifier","src":"6966:6:88"},"nativeSrc":"6966:30:88","nodeType":"YulFunctionCall","src":"6966:30:88"},"nativeSrc":"6966:30:88","nodeType":"YulExpressionStatement","src":"6966:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7016:9:88","nodeType":"YulIdentifier","src":"7016:9:88"},{"kind":"number","nativeSrc":"7027:2:88","nodeType":"YulLiteral","src":"7027:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7012:3:88","nodeType":"YulIdentifier","src":"7012:3:88"},"nativeSrc":"7012:18:88","nodeType":"YulFunctionCall","src":"7012:18:88"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nativeSrc":"7032:34:88","nodeType":"YulLiteral","src":"7032:34:88","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nativeSrc":"7005:6:88","nodeType":"YulIdentifier","src":"7005:6:88"},"nativeSrc":"7005:62:88","nodeType":"YulFunctionCall","src":"7005:62:88"},"nativeSrc":"7005:62:88","nodeType":"YulExpressionStatement","src":"7005:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7087:9:88","nodeType":"YulIdentifier","src":"7087:9:88"},{"kind":"number","nativeSrc":"7098:2:88","nodeType":"YulLiteral","src":"7098:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7083:3:88","nodeType":"YulIdentifier","src":"7083:3:88"},"nativeSrc":"7083:18:88","nodeType":"YulFunctionCall","src":"7083:18:88"},{"hexValue":"6c6964206f776e6572","kind":"string","nativeSrc":"7103:11:88","nodeType":"YulLiteral","src":"7103:11:88","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nativeSrc":"7076:6:88","nodeType":"YulIdentifier","src":"7076:6:88"},"nativeSrc":"7076:39:88","nodeType":"YulFunctionCall","src":"7076:39:88"},"nativeSrc":"7076:39:88","nodeType":"YulExpressionStatement","src":"7076:39:88"},{"nativeSrc":"7124:27:88","nodeType":"YulAssignment","src":"7124:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7136:9:88","nodeType":"YulIdentifier","src":"7136:9:88"},{"kind":"number","nativeSrc":"7147:3:88","nodeType":"YulLiteral","src":"7147:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7132:3:88","nodeType":"YulIdentifier","src":"7132:3:88"},"nativeSrc":"7132:19:88","nodeType":"YulFunctionCall","src":"7132:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7124:4:88","nodeType":"YulIdentifier","src":"7124:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6752:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6903:9:88","nodeType":"YulTypedName","src":"6903:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6917:4:88","nodeType":"YulTypedName","src":"6917:4:88","type":""}],"src":"6752:405:88"},{"body":{"nativeSrc":"7212:162:88","nodeType":"YulBlock","src":"7212:162:88","statements":[{"nativeSrc":"7222:26:88","nodeType":"YulVariableDeclaration","src":"7222:26:88","value":{"arguments":[{"name":"value","nativeSrc":"7242:5:88","nodeType":"YulIdentifier","src":"7242:5:88"}],"functionName":{"name":"mload","nativeSrc":"7236:5:88","nodeType":"YulIdentifier","src":"7236:5:88"},"nativeSrc":"7236:12:88","nodeType":"YulFunctionCall","src":"7236:12:88"},"variables":[{"name":"length","nativeSrc":"7226:6:88","nodeType":"YulTypedName","src":"7226:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7263:3:88","nodeType":"YulIdentifier","src":"7263:3:88"},{"arguments":[{"name":"value","nativeSrc":"7272:5:88","nodeType":"YulIdentifier","src":"7272:5:88"},{"kind":"number","nativeSrc":"7279:4:88","nodeType":"YulLiteral","src":"7279:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7268:3:88","nodeType":"YulIdentifier","src":"7268:3:88"},"nativeSrc":"7268:16:88","nodeType":"YulFunctionCall","src":"7268:16:88"},{"name":"length","nativeSrc":"7286:6:88","nodeType":"YulIdentifier","src":"7286:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"7257:5:88","nodeType":"YulIdentifier","src":"7257:5:88"},"nativeSrc":"7257:36:88","nodeType":"YulFunctionCall","src":"7257:36:88"},"nativeSrc":"7257:36:88","nodeType":"YulExpressionStatement","src":"7257:36:88"},{"nativeSrc":"7302:26:88","nodeType":"YulVariableDeclaration","src":"7302:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"7316:3:88","nodeType":"YulIdentifier","src":"7316:3:88"},{"name":"length","nativeSrc":"7321:6:88","nodeType":"YulIdentifier","src":"7321:6:88"}],"functionName":{"name":"add","nativeSrc":"7312:3:88","nodeType":"YulIdentifier","src":"7312:3:88"},"nativeSrc":"7312:16:88","nodeType":"YulFunctionCall","src":"7312:16:88"},"variables":[{"name":"_1","nativeSrc":"7306:2:88","nodeType":"YulTypedName","src":"7306:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7344:2:88","nodeType":"YulIdentifier","src":"7344:2:88"},{"kind":"number","nativeSrc":"7348:1:88","nodeType":"YulLiteral","src":"7348:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7337:6:88","nodeType":"YulIdentifier","src":"7337:6:88"},"nativeSrc":"7337:13:88","nodeType":"YulFunctionCall","src":"7337:13:88"},"nativeSrc":"7337:13:88","nodeType":"YulExpressionStatement","src":"7337:13:88"},{"nativeSrc":"7359:9:88","nodeType":"YulAssignment","src":"7359:9:88","value":{"name":"_1","nativeSrc":"7366:2:88","nodeType":"YulIdentifier","src":"7366:2:88"},"variableNames":[{"name":"end","nativeSrc":"7359:3:88","nodeType":"YulIdentifier","src":"7359:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"7162:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7189:5:88","nodeType":"YulTypedName","src":"7189:5:88","type":""},{"name":"pos","nativeSrc":"7196:3:88","nodeType":"YulTypedName","src":"7196:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7204:3:88","nodeType":"YulTypedName","src":"7204:3:88","type":""}],"src":"7162:212:88"},{"body":{"nativeSrc":"7566:80:88","nodeType":"YulBlock","src":"7566:80:88","statements":[{"nativeSrc":"7576:64:88","nodeType":"YulAssignment","src":"7576:64:88","value":{"arguments":[{"name":"value1","nativeSrc":"7601:6:88","nodeType":"YulIdentifier","src":"7601:6:88"},{"arguments":[{"name":"value0","nativeSrc":"7627:6:88","nodeType":"YulIdentifier","src":"7627:6:88"},{"name":"pos","nativeSrc":"7635:3:88","nodeType":"YulIdentifier","src":"7635:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7609:17:88","nodeType":"YulIdentifier","src":"7609:17:88"},"nativeSrc":"7609:30:88","nodeType":"YulFunctionCall","src":"7609:30:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7583:17:88","nodeType":"YulIdentifier","src":"7583:17:88"},"nativeSrc":"7583:57:88","nodeType":"YulFunctionCall","src":"7583:57:88"},"variableNames":[{"name":"end","nativeSrc":"7576:3:88","nodeType":"YulIdentifier","src":"7576:3:88"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7379:267:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7534:3:88","nodeType":"YulTypedName","src":"7534:3:88","type":""},{"name":"value1","nativeSrc":"7539:6:88","nodeType":"YulTypedName","src":"7539:6:88","type":""},{"name":"value0","nativeSrc":"7547:6:88","nodeType":"YulTypedName","src":"7547:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7558:3:88","nodeType":"YulTypedName","src":"7558:3:88","type":""}],"src":"7379:267:88"},{"body":{"nativeSrc":"7825:227:88","nodeType":"YulBlock","src":"7825:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7842:9:88","nodeType":"YulIdentifier","src":"7842:9:88"},{"kind":"number","nativeSrc":"7853:2:88","nodeType":"YulLiteral","src":"7853:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7835:6:88","nodeType":"YulIdentifier","src":"7835:6:88"},"nativeSrc":"7835:21:88","nodeType":"YulFunctionCall","src":"7835:21:88"},"nativeSrc":"7835:21:88","nodeType":"YulExpressionStatement","src":"7835:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7876:9:88","nodeType":"YulIdentifier","src":"7876:9:88"},{"kind":"number","nativeSrc":"7887:2:88","nodeType":"YulLiteral","src":"7887:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7872:3:88","nodeType":"YulIdentifier","src":"7872:3:88"},"nativeSrc":"7872:18:88","nodeType":"YulFunctionCall","src":"7872:18:88"},{"kind":"number","nativeSrc":"7892:2:88","nodeType":"YulLiteral","src":"7892:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"7865:6:88","nodeType":"YulIdentifier","src":"7865:6:88"},"nativeSrc":"7865:30:88","nodeType":"YulFunctionCall","src":"7865:30:88"},"nativeSrc":"7865:30:88","nodeType":"YulExpressionStatement","src":"7865:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7915:9:88","nodeType":"YulIdentifier","src":"7915:9:88"},{"kind":"number","nativeSrc":"7926:2:88","nodeType":"YulLiteral","src":"7926:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7911:3:88","nodeType":"YulIdentifier","src":"7911:3:88"},"nativeSrc":"7911:18:88","nodeType":"YulFunctionCall","src":"7911:18:88"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nativeSrc":"7931:34:88","nodeType":"YulLiteral","src":"7931:34:88","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nativeSrc":"7904:6:88","nodeType":"YulIdentifier","src":"7904:6:88"},"nativeSrc":"7904:62:88","nodeType":"YulFunctionCall","src":"7904:62:88"},"nativeSrc":"7904:62:88","nodeType":"YulExpressionStatement","src":"7904:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7986:9:88","nodeType":"YulIdentifier","src":"7986:9:88"},{"kind":"number","nativeSrc":"7997:2:88","nodeType":"YulLiteral","src":"7997:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7982:3:88","nodeType":"YulIdentifier","src":"7982:3:88"},"nativeSrc":"7982:18:88","nodeType":"YulFunctionCall","src":"7982:18:88"},{"hexValue":"6f776e6572","kind":"string","nativeSrc":"8002:7:88","nodeType":"YulLiteral","src":"8002:7:88","type":"","value":"owner"}],"functionName":{"name":"mstore","nativeSrc":"7975:6:88","nodeType":"YulIdentifier","src":"7975:6:88"},"nativeSrc":"7975:35:88","nodeType":"YulFunctionCall","src":"7975:35:88"},"nativeSrc":"7975:35:88","nodeType":"YulExpressionStatement","src":"7975:35:88"},{"nativeSrc":"8019:27:88","nodeType":"YulAssignment","src":"8019:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8031:9:88","nodeType":"YulIdentifier","src":"8031:9:88"},{"kind":"number","nativeSrc":"8042:3:88","nodeType":"YulLiteral","src":"8042:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8027:3:88","nodeType":"YulIdentifier","src":"8027:3:88"},"nativeSrc":"8027:19:88","nodeType":"YulFunctionCall","src":"8027:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8019:4:88","nodeType":"YulIdentifier","src":"8019:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7651:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7802:9:88","nodeType":"YulTypedName","src":"7802:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7816:4:88","nodeType":"YulTypedName","src":"7816:4:88","type":""}],"src":"7651:401:88"},{"body":{"nativeSrc":"8231:226:88","nodeType":"YulBlock","src":"8231:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8248:9:88","nodeType":"YulIdentifier","src":"8248:9:88"},{"kind":"number","nativeSrc":"8259:2:88","nodeType":"YulLiteral","src":"8259:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8241:6:88","nodeType":"YulIdentifier","src":"8241:6:88"},"nativeSrc":"8241:21:88","nodeType":"YulFunctionCall","src":"8241:21:88"},"nativeSrc":"8241:21:88","nodeType":"YulExpressionStatement","src":"8241:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8282:9:88","nodeType":"YulIdentifier","src":"8282:9:88"},{"kind":"number","nativeSrc":"8293:2:88","nodeType":"YulLiteral","src":"8293:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8278:3:88","nodeType":"YulIdentifier","src":"8278:3:88"},"nativeSrc":"8278:18:88","nodeType":"YulFunctionCall","src":"8278:18:88"},{"kind":"number","nativeSrc":"8298:2:88","nodeType":"YulLiteral","src":"8298:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"8271:6:88","nodeType":"YulIdentifier","src":"8271:6:88"},"nativeSrc":"8271:30:88","nodeType":"YulFunctionCall","src":"8271:30:88"},"nativeSrc":"8271:30:88","nodeType":"YulExpressionStatement","src":"8271:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8321:9:88","nodeType":"YulIdentifier","src":"8321:9:88"},{"kind":"number","nativeSrc":"8332:2:88","nodeType":"YulLiteral","src":"8332:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8317:3:88","nodeType":"YulIdentifier","src":"8317:3:88"},"nativeSrc":"8317:18:88","nodeType":"YulFunctionCall","src":"8317:18:88"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nativeSrc":"8337:34:88","nodeType":"YulLiteral","src":"8337:34:88","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nativeSrc":"8310:6:88","nodeType":"YulIdentifier","src":"8310:6:88"},"nativeSrc":"8310:62:88","nodeType":"YulFunctionCall","src":"8310:62:88"},"nativeSrc":"8310:62:88","nodeType":"YulExpressionStatement","src":"8310:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8392:9:88","nodeType":"YulIdentifier","src":"8392:9:88"},{"kind":"number","nativeSrc":"8403:2:88","nodeType":"YulLiteral","src":"8403:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8388:3:88","nodeType":"YulIdentifier","src":"8388:3:88"},"nativeSrc":"8388:18:88","nodeType":"YulFunctionCall","src":"8388:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"8408:6:88","nodeType":"YulLiteral","src":"8408:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8381:6:88","nodeType":"YulIdentifier","src":"8381:6:88"},"nativeSrc":"8381:34:88","nodeType":"YulFunctionCall","src":"8381:34:88"},"nativeSrc":"8381:34:88","nodeType":"YulExpressionStatement","src":"8381:34:88"},{"nativeSrc":"8424:27:88","nodeType":"YulAssignment","src":"8424:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8436:9:88","nodeType":"YulIdentifier","src":"8436:9:88"},{"kind":"number","nativeSrc":"8447:3:88","nodeType":"YulLiteral","src":"8447:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8432:3:88","nodeType":"YulIdentifier","src":"8432:3:88"},"nativeSrc":"8432:19:88","nodeType":"YulFunctionCall","src":"8432:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8424:4:88","nodeType":"YulIdentifier","src":"8424:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8057:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8208:9:88","nodeType":"YulTypedName","src":"8208:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8222:4:88","nodeType":"YulTypedName","src":"8222:4:88","type":""}],"src":"8057:400:88"},{"body":{"nativeSrc":"8636:175:88","nodeType":"YulBlock","src":"8636:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8653:9:88","nodeType":"YulIdentifier","src":"8653:9:88"},{"kind":"number","nativeSrc":"8664:2:88","nodeType":"YulLiteral","src":"8664:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8646:6:88","nodeType":"YulIdentifier","src":"8646:6:88"},"nativeSrc":"8646:21:88","nodeType":"YulFunctionCall","src":"8646:21:88"},"nativeSrc":"8646:21:88","nodeType":"YulExpressionStatement","src":"8646:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8687:9:88","nodeType":"YulIdentifier","src":"8687:9:88"},{"kind":"number","nativeSrc":"8698:2:88","nodeType":"YulLiteral","src":"8698:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8683:3:88","nodeType":"YulIdentifier","src":"8683:3:88"},"nativeSrc":"8683:18:88","nodeType":"YulFunctionCall","src":"8683:18:88"},{"kind":"number","nativeSrc":"8703:2:88","nodeType":"YulLiteral","src":"8703:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"8676:6:88","nodeType":"YulIdentifier","src":"8676:6:88"},"nativeSrc":"8676:30:88","nodeType":"YulFunctionCall","src":"8676:30:88"},"nativeSrc":"8676:30:88","nodeType":"YulExpressionStatement","src":"8676:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8726:9:88","nodeType":"YulIdentifier","src":"8726:9:88"},{"kind":"number","nativeSrc":"8737:2:88","nodeType":"YulLiteral","src":"8737:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8722:3:88","nodeType":"YulIdentifier","src":"8722:3:88"},"nativeSrc":"8722:18:88","nodeType":"YulFunctionCall","src":"8722:18:88"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nativeSrc":"8742:27:88","nodeType":"YulLiteral","src":"8742:27:88","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nativeSrc":"8715:6:88","nodeType":"YulIdentifier","src":"8715:6:88"},"nativeSrc":"8715:55:88","nodeType":"YulFunctionCall","src":"8715:55:88"},"nativeSrc":"8715:55:88","nodeType":"YulExpressionStatement","src":"8715:55:88"},{"nativeSrc":"8779:26:88","nodeType":"YulAssignment","src":"8779:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8791:9:88","nodeType":"YulIdentifier","src":"8791:9:88"},{"kind":"number","nativeSrc":"8802:2:88","nodeType":"YulLiteral","src":"8802:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8787:3:88","nodeType":"YulIdentifier","src":"8787:3:88"},"nativeSrc":"8787:18:88","nodeType":"YulFunctionCall","src":"8787:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8779:4:88","nodeType":"YulIdentifier","src":"8779:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8462:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8613:9:88","nodeType":"YulTypedName","src":"8613:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8627:4:88","nodeType":"YulTypedName","src":"8627:4:88","type":""}],"src":"8462:349:88"},{"body":{"nativeSrc":"8990:240:88","nodeType":"YulBlock","src":"8990:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9007:9:88","nodeType":"YulIdentifier","src":"9007:9:88"},{"kind":"number","nativeSrc":"9018:2:88","nodeType":"YulLiteral","src":"9018:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9000:6:88","nodeType":"YulIdentifier","src":"9000:6:88"},"nativeSrc":"9000:21:88","nodeType":"YulFunctionCall","src":"9000:21:88"},"nativeSrc":"9000:21:88","nodeType":"YulExpressionStatement","src":"9000:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9041:9:88","nodeType":"YulIdentifier","src":"9041:9:88"},{"kind":"number","nativeSrc":"9052:2:88","nodeType":"YulLiteral","src":"9052:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9037:3:88","nodeType":"YulIdentifier","src":"9037:3:88"},"nativeSrc":"9037:18:88","nodeType":"YulFunctionCall","src":"9037:18:88"},{"kind":"number","nativeSrc":"9057:2:88","nodeType":"YulLiteral","src":"9057:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"9030:6:88","nodeType":"YulIdentifier","src":"9030:6:88"},"nativeSrc":"9030:30:88","nodeType":"YulFunctionCall","src":"9030:30:88"},"nativeSrc":"9030:30:88","nodeType":"YulExpressionStatement","src":"9030:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9080:9:88","nodeType":"YulIdentifier","src":"9080:9:88"},{"kind":"number","nativeSrc":"9091:2:88","nodeType":"YulLiteral","src":"9091:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9076:3:88","nodeType":"YulIdentifier","src":"9076:3:88"},"nativeSrc":"9076:18:88","nodeType":"YulFunctionCall","src":"9076:18:88"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nativeSrc":"9096:34:88","nodeType":"YulLiteral","src":"9096:34:88","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nativeSrc":"9069:6:88","nodeType":"YulIdentifier","src":"9069:6:88"},"nativeSrc":"9069:62:88","nodeType":"YulFunctionCall","src":"9069:62:88"},"nativeSrc":"9069:62:88","nodeType":"YulExpressionStatement","src":"9069:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9151:9:88","nodeType":"YulIdentifier","src":"9151:9:88"},{"kind":"number","nativeSrc":"9162:2:88","nodeType":"YulLiteral","src":"9162:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9147:3:88","nodeType":"YulIdentifier","src":"9147:3:88"},"nativeSrc":"9147:18:88","nodeType":"YulFunctionCall","src":"9147:18:88"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nativeSrc":"9167:20:88","nodeType":"YulLiteral","src":"9167:20:88","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nativeSrc":"9140:6:88","nodeType":"YulIdentifier","src":"9140:6:88"},"nativeSrc":"9140:48:88","nodeType":"YulFunctionCall","src":"9140:48:88"},"nativeSrc":"9140:48:88","nodeType":"YulExpressionStatement","src":"9140:48:88"},{"nativeSrc":"9197:27:88","nodeType":"YulAssignment","src":"9197:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9209:9:88","nodeType":"YulIdentifier","src":"9209:9:88"},{"kind":"number","nativeSrc":"9220:3:88","nodeType":"YulLiteral","src":"9220:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9205:3:88","nodeType":"YulIdentifier","src":"9205:3:88"},"nativeSrc":"9205:19:88","nodeType":"YulFunctionCall","src":"9205:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9197:4:88","nodeType":"YulIdentifier","src":"9197:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8816:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8967:9:88","nodeType":"YulTypedName","src":"8967:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8981:4:88","nodeType":"YulTypedName","src":"8981:4:88","type":""}],"src":"8816:414:88"},{"body":{"nativeSrc":"9267:95:88","nodeType":"YulBlock","src":"9267:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9284:1:88","nodeType":"YulLiteral","src":"9284:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9291:3:88","nodeType":"YulLiteral","src":"9291:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"9296:10:88","nodeType":"YulLiteral","src":"9296:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9287:3:88","nodeType":"YulIdentifier","src":"9287:3:88"},"nativeSrc":"9287:20:88","nodeType":"YulFunctionCall","src":"9287:20:88"}],"functionName":{"name":"mstore","nativeSrc":"9277:6:88","nodeType":"YulIdentifier","src":"9277:6:88"},"nativeSrc":"9277:31:88","nodeType":"YulFunctionCall","src":"9277:31:88"},"nativeSrc":"9277:31:88","nodeType":"YulExpressionStatement","src":"9277:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9324:1:88","nodeType":"YulLiteral","src":"9324:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"9327:4:88","nodeType":"YulLiteral","src":"9327:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"9317:6:88","nodeType":"YulIdentifier","src":"9317:6:88"},"nativeSrc":"9317:15:88","nodeType":"YulFunctionCall","src":"9317:15:88"},"nativeSrc":"9317:15:88","nodeType":"YulExpressionStatement","src":"9317:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9348:1:88","nodeType":"YulLiteral","src":"9348:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9351:4:88","nodeType":"YulLiteral","src":"9351:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9341:6:88","nodeType":"YulIdentifier","src":"9341:6:88"},"nativeSrc":"9341:15:88","nodeType":"YulFunctionCall","src":"9341:15:88"},"nativeSrc":"9341:15:88","nodeType":"YulExpressionStatement","src":"9341:15:88"}]},"name":"panic_error_0x12","nativeSrc":"9235:127:88","nodeType":"YulFunctionDefinition","src":"9235:127:88"},{"body":{"nativeSrc":"9570:293:88","nodeType":"YulBlock","src":"9570:293:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9587:9:88","nodeType":"YulIdentifier","src":"9587:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9602:6:88","nodeType":"YulIdentifier","src":"9602:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9618:3:88","nodeType":"YulLiteral","src":"9618:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"9623:1:88","nodeType":"YulLiteral","src":"9623:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9614:3:88","nodeType":"YulIdentifier","src":"9614:3:88"},"nativeSrc":"9614:11:88","nodeType":"YulFunctionCall","src":"9614:11:88"},{"kind":"number","nativeSrc":"9627:1:88","nodeType":"YulLiteral","src":"9627:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9610:3:88","nodeType":"YulIdentifier","src":"9610:3:88"},"nativeSrc":"9610:19:88","nodeType":"YulFunctionCall","src":"9610:19:88"}],"functionName":{"name":"and","nativeSrc":"9598:3:88","nodeType":"YulIdentifier","src":"9598:3:88"},"nativeSrc":"9598:32:88","nodeType":"YulFunctionCall","src":"9598:32:88"}],"functionName":{"name":"mstore","nativeSrc":"9580:6:88","nodeType":"YulIdentifier","src":"9580:6:88"},"nativeSrc":"9580:51:88","nodeType":"YulFunctionCall","src":"9580:51:88"},"nativeSrc":"9580:51:88","nodeType":"YulExpressionStatement","src":"9580:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9651:9:88","nodeType":"YulIdentifier","src":"9651:9:88"},{"kind":"number","nativeSrc":"9662:2:88","nodeType":"YulLiteral","src":"9662:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9647:3:88","nodeType":"YulIdentifier","src":"9647:3:88"},"nativeSrc":"9647:18:88","nodeType":"YulFunctionCall","src":"9647:18:88"},{"arguments":[{"name":"value1","nativeSrc":"9671:6:88","nodeType":"YulIdentifier","src":"9671:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9687:3:88","nodeType":"YulLiteral","src":"9687:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"9692:1:88","nodeType":"YulLiteral","src":"9692:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9683:3:88","nodeType":"YulIdentifier","src":"9683:3:88"},"nativeSrc":"9683:11:88","nodeType":"YulFunctionCall","src":"9683:11:88"},{"kind":"number","nativeSrc":"9696:1:88","nodeType":"YulLiteral","src":"9696:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9679:3:88","nodeType":"YulIdentifier","src":"9679:3:88"},"nativeSrc":"9679:19:88","nodeType":"YulFunctionCall","src":"9679:19:88"}],"functionName":{"name":"and","nativeSrc":"9667:3:88","nodeType":"YulIdentifier","src":"9667:3:88"},"nativeSrc":"9667:32:88","nodeType":"YulFunctionCall","src":"9667:32:88"}],"functionName":{"name":"mstore","nativeSrc":"9640:6:88","nodeType":"YulIdentifier","src":"9640:6:88"},"nativeSrc":"9640:60:88","nodeType":"YulFunctionCall","src":"9640:60:88"},"nativeSrc":"9640:60:88","nodeType":"YulExpressionStatement","src":"9640:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9720:9:88","nodeType":"YulIdentifier","src":"9720:9:88"},{"kind":"number","nativeSrc":"9731:2:88","nodeType":"YulLiteral","src":"9731:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9716:3:88","nodeType":"YulIdentifier","src":"9716:3:88"},"nativeSrc":"9716:18:88","nodeType":"YulFunctionCall","src":"9716:18:88"},{"name":"value2","nativeSrc":"9736:6:88","nodeType":"YulIdentifier","src":"9736:6:88"}],"functionName":{"name":"mstore","nativeSrc":"9709:6:88","nodeType":"YulIdentifier","src":"9709:6:88"},"nativeSrc":"9709:34:88","nodeType":"YulFunctionCall","src":"9709:34:88"},"nativeSrc":"9709:34:88","nodeType":"YulExpressionStatement","src":"9709:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9763:9:88","nodeType":"YulIdentifier","src":"9763:9:88"},{"kind":"number","nativeSrc":"9774:2:88","nodeType":"YulLiteral","src":"9774:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9759:3:88","nodeType":"YulIdentifier","src":"9759:3:88"},"nativeSrc":"9759:18:88","nodeType":"YulFunctionCall","src":"9759:18:88"},{"kind":"number","nativeSrc":"9779:3:88","nodeType":"YulLiteral","src":"9779:3:88","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"9752:6:88","nodeType":"YulIdentifier","src":"9752:6:88"},"nativeSrc":"9752:31:88","nodeType":"YulFunctionCall","src":"9752:31:88"},"nativeSrc":"9752:31:88","nodeType":"YulExpressionStatement","src":"9752:31:88"},{"nativeSrc":"9792:65:88","nodeType":"YulAssignment","src":"9792:65:88","value":{"arguments":[{"name":"value3","nativeSrc":"9829:6:88","nodeType":"YulIdentifier","src":"9829:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"9841:9:88","nodeType":"YulIdentifier","src":"9841:9:88"},{"kind":"number","nativeSrc":"9852:3:88","nodeType":"YulLiteral","src":"9852:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9837:3:88","nodeType":"YulIdentifier","src":"9837:3:88"},"nativeSrc":"9837:19:88","nodeType":"YulFunctionCall","src":"9837:19:88"}],"functionName":{"name":"abi_encode_string_memory_ptr","nativeSrc":"9800:28:88","nodeType":"YulIdentifier","src":"9800:28:88"},"nativeSrc":"9800:57:88","nodeType":"YulFunctionCall","src":"9800:57:88"},"variableNames":[{"name":"tail","nativeSrc":"9792:4:88","nodeType":"YulIdentifier","src":"9792:4:88"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9367:496:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9515:9:88","nodeType":"YulTypedName","src":"9515:9:88","type":""},{"name":"value3","nativeSrc":"9526:6:88","nodeType":"YulTypedName","src":"9526:6:88","type":""},{"name":"value2","nativeSrc":"9534:6:88","nodeType":"YulTypedName","src":"9534:6:88","type":""},{"name":"value1","nativeSrc":"9542:6:88","nodeType":"YulTypedName","src":"9542:6:88","type":""},{"name":"value0","nativeSrc":"9550:6:88","nodeType":"YulTypedName","src":"9550:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9561:4:88","nodeType":"YulTypedName","src":"9561:4:88","type":""}],"src":"9367:496:88"},{"body":{"nativeSrc":"9948:169:88","nodeType":"YulBlock","src":"9948:169:88","statements":[{"body":{"nativeSrc":"9994:16:88","nodeType":"YulBlock","src":"9994:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10003:1:88","nodeType":"YulLiteral","src":"10003:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10006:1:88","nodeType":"YulLiteral","src":"10006:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9996:6:88","nodeType":"YulIdentifier","src":"9996:6:88"},"nativeSrc":"9996:12:88","nodeType":"YulFunctionCall","src":"9996:12:88"},"nativeSrc":"9996:12:88","nodeType":"YulExpressionStatement","src":"9996:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9969:7:88","nodeType":"YulIdentifier","src":"9969:7:88"},{"name":"headStart","nativeSrc":"9978:9:88","nodeType":"YulIdentifier","src":"9978:9:88"}],"functionName":{"name":"sub","nativeSrc":"9965:3:88","nodeType":"YulIdentifier","src":"9965:3:88"},"nativeSrc":"9965:23:88","nodeType":"YulFunctionCall","src":"9965:23:88"},{"kind":"number","nativeSrc":"9990:2:88","nodeType":"YulLiteral","src":"9990:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9961:3:88","nodeType":"YulIdentifier","src":"9961:3:88"},"nativeSrc":"9961:32:88","nodeType":"YulFunctionCall","src":"9961:32:88"},"nativeSrc":"9958:52:88","nodeType":"YulIf","src":"9958:52:88"},{"nativeSrc":"10019:29:88","nodeType":"YulVariableDeclaration","src":"10019:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10038:9:88","nodeType":"YulIdentifier","src":"10038:9:88"}],"functionName":{"name":"mload","nativeSrc":"10032:5:88","nodeType":"YulIdentifier","src":"10032:5:88"},"nativeSrc":"10032:16:88","nodeType":"YulFunctionCall","src":"10032:16:88"},"variables":[{"name":"value","nativeSrc":"10023:5:88","nodeType":"YulTypedName","src":"10023:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10081:5:88","nodeType":"YulIdentifier","src":"10081:5:88"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"10057:23:88","nodeType":"YulIdentifier","src":"10057:23:88"},"nativeSrc":"10057:30:88","nodeType":"YulFunctionCall","src":"10057:30:88"},"nativeSrc":"10057:30:88","nodeType":"YulExpressionStatement","src":"10057:30:88"},{"nativeSrc":"10096:15:88","nodeType":"YulAssignment","src":"10096:15:88","value":{"name":"value","nativeSrc":"10106:5:88","nodeType":"YulIdentifier","src":"10106:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10096:6:88","nodeType":"YulIdentifier","src":"10096:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"9868:249:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9914:9:88","nodeType":"YulTypedName","src":"9914:9:88","type":""},{"name":"dataEnd","nativeSrc":"9925:7:88","nodeType":"YulTypedName","src":"9925:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9937:6:88","nodeType":"YulTypedName","src":"9937:6:88","type":""}],"src":"9868:249:88"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_string_memory_ptr(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string(value1, abi_encode_string(value0, pos))\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string_memory_ptr(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c80636352211e11610088578063a22cb46511610063578063a22cb465146101ae578063b88d4fde146101c1578063c87b56dd146101d4578063e985e9c5146101e7575f5ffd5b80636352211e1461017257806370a082311461018557806395d89b41146101a6575f5ffd5b806301ffc9a7146100cf57806306fdde03146100f7578063081812fc1461010c578063095ea7b31461013757806323b872dd1461014c57806342842e0e1461015f575b5f5ffd5b6100e26100dd366004610c5b565b610222565b60405190151581526020015b60405180910390f35b6100ff610273565b6040516100ee9190610ca4565b61011f61011a366004610cb6565b610303565b6040516001600160a01b0390911681526020016100ee565b61014a610145366004610ce8565b610328565b005b61014a61015a366004610d10565b610441565b61014a61016d366004610d10565b610472565b61011f610180366004610cb6565b61048c565b610198610193366004610d4a565b6104eb565b6040519081526020016100ee565b6100ff61056f565b61014a6101bc366004610d63565b61057e565b61014a6101cf366004610db0565b61058d565b6100ff6101e2366004610cb6565b6105c5565b6100e26101f5366004610e8d565b6001600160a01b039182165f908152606a6020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061025257506001600160e01b03198216635b5e139f60e01b145b8061026d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461028290610ebe565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610ebe565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f61030d82610635565b505f908152606960205260409020546001600160a01b031690565b5f6103328261048c565b9050806001600160a01b0316836001600160a01b0316036103a45760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103c057506103c081336101f5565b6104325760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161039b565b61043c8383610696565b505050565b61044b3382610703565b6104675760405162461bcd60e51b815260040161039b90610ef6565b61043c838383610780565b61043c83838360405180602001604052805f81525061058d565b5f818152606760205260408120546001600160a01b03168061026d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161039b565b5f6001600160a01b0382166105545760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161039b565b506001600160a01b03165f9081526068602052604090205490565b60606066805461028290610ebe565b6105893383836108e2565b5050565b6105973383610703565b6105b35760405162461bcd60e51b815260040161039b90610ef6565b6105bf848484846109af565b50505050565b60606105d082610635565b5f6105e560408051602081019091525f815290565b90505f8151116106035760405180602001604052805f81525061062e565b8061060d846109e2565b60405160200161061e929190610f5a565b6040516020818303038152906040525b9392505050565b5f818152606760205260409020546001600160a01b03166106935760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161039b565b50565b5f81815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106ca8261048c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f5f61070e8361048c565b9050806001600160a01b0316846001600160a01b0316148061075457506001600160a01b038082165f908152606a602090815260408083209388168352929052205460ff165b806107785750836001600160a01b031661076d84610303565b6001600160a01b0316145b949350505050565b826001600160a01b03166107938261048c565b6001600160a01b0316146107b95760405162461bcd60e51b815260040161039b90610f6e565b6001600160a01b03821661081b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161039b565b826001600160a01b031661082e8261048c565b6001600160a01b0316146108545760405162461bcd60e51b815260040161039b90610f6e565b5f81815260696020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526068855283862080545f1901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b0316036109435760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161039b565b6001600160a01b038381165f818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109ba848484610780565b6109c684848484610a72565b6105bf5760405162461bcd60e51b815260040161039b90610fb3565b60605f6109ee83610b6f565b60010190505f8167ffffffffffffffff811115610a0d57610a0d610d9c565b6040519080825280601f01601f191660200182016040528015610a37576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a4157509392505050565b5f6001600160a01b0384163b15610b6457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ab5903390899088908890600401611005565b6020604051808303815f875af1925050508015610aef575060408051601f3d908101601f19168201909252610aec91810190611041565b60015b610b4a573d808015610b1c576040519150601f19603f3d011682016040523d82523d5f602084013e610b21565b606091505b5080515f03610b425760405162461bcd60e51b815260040161039b90610fb3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610778565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bad5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bd9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610bf757662386f26fc10000830492506010015b6305f5e1008310610c0f576305f5e100830492506008015b6127108310610c2357612710830492506004015b60648310610c35576064830492506002015b600a831061026d5760010192915050565b6001600160e01b031981168114610693575f5ffd5b5f60208284031215610c6b575f5ffd5b813561062e81610c46565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61062e6020830184610c76565b5f60208284031215610cc6575f5ffd5b5035919050565b80356001600160a01b0381168114610ce3575f5ffd5b919050565b5f5f60408385031215610cf9575f5ffd5b610d0283610ccd565b946020939093013593505050565b5f5f5f60608486031215610d22575f5ffd5b610d2b84610ccd565b9250610d3960208501610ccd565b929592945050506040919091013590565b5f60208284031215610d5a575f5ffd5b61062e82610ccd565b5f5f60408385031215610d74575f5ffd5b610d7d83610ccd565b915060208301358015158114610d91575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f60808587031215610dc3575f5ffd5b610dcc85610ccd565b9350610dda60208601610ccd565b925060408501359150606085013567ffffffffffffffff811115610dfc575f5ffd5b8501601f81018713610e0c575f5ffd5b803567ffffffffffffffff811115610e2657610e26610d9c565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610e5557610e55610d9c565b604052818152828201602001891015610e6c575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f60408385031215610e9e575f5ffd5b610ea783610ccd565b9150610eb560208401610ccd565b90509250929050565b600181811c90821680610ed257607f821691505b602082108103610ef057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f81518060208401855e5f93019283525090919050565b5f610778610f688386610f43565b84610f43565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061103790830184610c76565b9695505050505050565b5f60208284031215611051575f5ffd5b815161062e81610c4656fea26469706673582212202ea168ec01740555e616ece36d58cfd85130b102c5d14b2d8698b593320684f264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1E7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x15F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE2 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0xC5B JUMP JUMPDEST PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFF PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEE SWAP2 SWAP1 PUSH2 0xCA4 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEE JUMP JUMPDEST PUSH2 0x14A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xCE8 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14A PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0xD10 JUMP JUMPDEST PUSH2 0x441 JUMP JUMPDEST PUSH2 0x14A PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0xD10 JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH2 0x198 PUSH2 0x193 CALLDATASIZE PUSH1 0x4 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEE JUMP JUMPDEST PUSH2 0xFF PUSH2 0x56F JUMP JUMPDEST PUSH2 0x14A PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x57E JUMP JUMPDEST PUSH2 0x14A PUSH2 0x1CF CALLDATASIZE PUSH1 0x4 PUSH2 0xDB0 JUMP JUMPDEST PUSH2 0x58D JUMP JUMPDEST PUSH2 0xFF PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB6 JUMP JUMPDEST PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xE8D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x252 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x26D JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x65 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xEBE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xEBE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x30D DUP3 PUSH2 0x635 JUMP JUMPDEST POP PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x332 DUP3 PUSH2 0x48C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x3A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3C0 JUMPI POP PUSH2 0x3C0 DUP2 CALLER PUSH2 0x1F5 JUMP JUMPDEST PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 PUSH2 0x696 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x44B CALLER DUP3 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x467 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 DUP4 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x43C DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x58D JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x26D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x554 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x66 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x589 CALLER DUP4 DUP4 PUSH2 0x8E2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x597 CALLER DUP4 PUSH2 0x703 JUMP JUMPDEST PUSH2 0x5B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xEF6 JUMP JUMPDEST PUSH2 0x5BF DUP5 DUP5 DUP5 DUP5 PUSH2 0x9AF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5D0 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH0 PUSH2 0x5E5 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD GT PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x62E JUMP JUMPDEST DUP1 PUSH2 0x60D DUP5 PUSH2 0x9E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x61E SWAP3 SWAP2 SWAP1 PUSH2 0xF5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x693 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6CA DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x70E DUP4 PUSH2 0x48C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x754 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x778 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76D DUP5 PUSH2 0x303 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x793 DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xF6E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x81B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x82E DUP3 PUSH2 0x48C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xF6E JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x68 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x67 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x9BA DUP5 DUP5 DUP5 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x9C6 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x5BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xFB3 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x9EE DUP4 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA0D JUMPI PUSH2 0xA0D PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA37 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xA41 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xB64 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xAB5 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1005 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xAEF JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xAEC SWAP2 DUP2 ADD SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB4A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xB1C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xB21 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH0 SUB PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP1 PUSH2 0xFB3 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x778 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xBAD JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xBD9 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBF7 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC0F JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC23 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xC35 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x26D JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x693 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62E DUP2 PUSH2 0xC46 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x62E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xC76 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCE3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD02 DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD22 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD2B DUP5 PUSH2 0xCCD JUMP JUMPDEST SWAP3 POP PUSH2 0xD39 PUSH1 0x20 DUP6 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x62E DUP3 PUSH2 0xCCD JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD74 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD7D DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD91 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xDC3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xDCC DUP6 PUSH2 0xCCD JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDFC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0xE0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE26 JUMPI PUSH2 0xE26 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE55 JUMPI PUSH2 0xE55 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP10 LT ISZERO PUSH2 0xE6C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE9E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xEA7 DUP4 PUSH2 0xCCD JUMP JUMPDEST SWAP2 POP PUSH2 0xEB5 PUSH1 0x20 DUP5 ADD PUSH2 0xCCD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xED2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xEF0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x778 PUSH2 0xF68 DUP4 DUP7 PUSH2 0xF43 JUMP JUMPDEST DUP5 PUSH2 0xF43 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x1037 SWAP1 DUP4 ADD DUP5 PUSH2 0xC76 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1051 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62E DUP2 PUSH2 0xC46 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E LOG1 PUSH9 0xEC01740555E616ECE3 PUSH14 0x58CFD85130B102C5D14B2D8698B5 SWAP4 ORIGIN MOD DUP5 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"772:17105:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:344;;;;;;:::i;:::-;;:::i;:::-;;;565:14:88;;558:22;540:41;;528:2;513:18;2008:344:9;;;;;;;;2953:98;;;:::i;:::-;;;;;;;:::i;4428:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1528:32:88;;;1510:51;;1498:2;1483:18;4428:167:9;1364:203:88;3950:417:9;;;;;;:::i;:::-;;:::i;:::-;;5105:296;;;;;;:::i;:::-;;:::i;5467:149::-;;;;;;:::i;:::-;;:::i;2672:219::-;;;;;;:::i;:::-;;:::i;2411:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2771:25:88;;;2759:2;2744:18;2411:204:9;2625:177:88;3115:102:9;;;:::i;4662:153::-;;;;;;:::i;:::-;;:::i;5682:276::-;;;;;;:::i;:::-;;:::i;3283:::-;;;;;;:::i;:::-;;:::i;4881:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5001:25:9;;;4978:4;5001:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4881:162;2008:344;2132:4;-1:-1:-1;;;;;;2167:51:9;;-1:-1:-1;;;2167:51:9;;:126;;-1:-1:-1;;;;;;;2234:59:9;;-1:-1:-1;;;2234:59:9;2167:126;:178;;;-1:-1:-1;;;;;;;;;;1189:51:17;;;2309:36:9;2148:197;2008:344;-1:-1:-1;;2008:344:9:o;2953:98::-;3007:13;3039:5;3032:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:98;:::o;4428:167::-;4504:7;4523:23;4538:7;4523:14;:23::i;:::-;-1:-1:-1;4564:24:9;;;;:15;:24;;;;;;-1:-1:-1;;;;;4564:24:9;;4428:167::o;3950:417::-;4030:13;4046:34;4072:7;4046:25;:34::i;:::-;4030:50;;4104:5;-1:-1:-1;;;;;4098:11:9;:2;-1:-1:-1;;;;;4098:11:9;;4090:57;;;;-1:-1:-1;;;4090:57:9;;5355:2:88;4090:57:9;;;5337:21:88;5394:2;5374:18;;;5367:30;5433:34;5413:18;;;5406:62;-1:-1:-1;;;5484:18:88;;;5477:31;5525:19;;4090:57:9;;;;;;;;;965:10:14;-1:-1:-1;;;;;4179:21:9;;;;:62;;-1:-1:-1;4204:37:9;4221:5;965:10:14;4881:162:9;:::i;4204:37::-;4158:170;;;;-1:-1:-1;;;4158:170:9;;5757:2:88;4158:170:9;;;5739:21:88;5796:2;5776:18;;;5769:30;5835:34;5815:18;;;5808:62;5906:31;5886:18;;;5879:59;5955:19;;4158:170:9;5555:425:88;4158:170:9;4339:21;4348:2;4352:7;4339:8;:21::i;:::-;4020:347;3950:417;;:::o;5105:296::-;5264:41;965:10:14;5297:7:9;5264:18;:41::i;:::-;5256:99;;;;-1:-1:-1;;;5256:99:9;;;;;;;:::i;:::-;5366:28;5376:4;5382:2;5386:7;5366:9;:28::i;5467:149::-;5570:39;5587:4;5593:2;5597:7;5570:39;;;;;;;;;;;;:16;:39::i;2672:219::-;2744:7;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;;2806:56;;;;-1:-1:-1;;;2806:56:9;;6601:2:88;2806:56:9;;;6583:21:88;6640:2;6620:18;;;6613:30;-1:-1:-1;;;6659:18:88;;;6652:54;6723:18;;2806:56:9;6399:348:88;2411:204:9;2483:7;-1:-1:-1;;;;;2510:19:9;;2502:73;;;;-1:-1:-1;;;2502:73:9;;6954:2:88;2502:73:9;;;6936:21:88;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;-1:-1:-1;;;7083:18:88;;;7076:39;7132:19;;2502:73:9;6752:405:88;2502:73:9;-1:-1:-1;;;;;;2592:16:9;;;;;:9;:16;;;;;;;2411:204::o;3115:102::-;3171:13;3203:7;3196:14;;;;;:::i;4662:153::-;4756:52;965:10:14;4789:8:9;4799;4756:18;:52::i;:::-;4662:153;;:::o;5682:276::-;5812:41;965:10:14;5845:7:9;5812:18;:41::i;:::-;5804:99;;;;-1:-1:-1;;;5804:99:9;;;;;;;:::i;:::-;5913:38;5927:4;5933:2;5937:7;5946:4;5913:13;:38::i;:::-;5682:276;;;;:::o;3283:::-;3356:13;3381:23;3396:7;3381:14;:23::i;:::-;3415:21;3439:10;3877:9;;;;;;;;;-1:-1:-1;3877:9:9;;;3801:92;3439:10;3415:34;;3490:1;3472:7;3466:21;:25;:86;;;;;;;;;;;;;;;;;3518:7;3527:18;:7;:16;:18::i;:::-;3501:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3466:86;3459:93;3283:276;-1:-1:-1;;;3283:276:9:o;13799:133::-;7678:4;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;13872:53;;;;-1:-1:-1;;;13872:53:9;;6601:2:88;13872:53:9;;;6583:21:88;6640:2;6620:18;;;6613:30;-1:-1:-1;;;6659:18:88;;;6652:54;6723:18;;13872:53:9;6399:348:88;13872:53:9;13799:133;:::o;13120:182::-;13194:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13194:29:9;-1:-1:-1;;;;;13194:29:9;;;;;;;;:24;;13247:34;13194:24;13247:25;:34::i;:::-;-1:-1:-1;;;;;13238:57:9;;;;;;;;;;;13120:182;;:::o;7897:272::-;7990:4;8006:13;8022:34;8048:7;8022:25;:34::i;:::-;8006:50;;8085:5;-1:-1:-1;;;;;8074:16:9;:7;-1:-1:-1;;;;;8074:16:9;;:52;;;-1:-1:-1;;;;;;5001:25:9;;;4978:4;5001:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8094:32;8074:87;;;;8154:7;-1:-1:-1;;;;;8130:31:9;:20;8142:7;8130:11;:20::i;:::-;-1:-1:-1;;;;;8130:31:9;;8074:87;8066:96;7897:272;-1:-1:-1;;;;7897:272:9:o;11783:1225::-;11918:4;-1:-1:-1;;;;;11880:42:9;:34;11906:7;11880:25;:34::i;:::-;-1:-1:-1;;;;;11880:42:9;;11872:92;;;;-1:-1:-1;;;11872:92:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;11982:16:9;;11974:65;;;;-1:-1:-1;;;11974:65:9;;8259:2:88;11974:65:9;;;8241:21:88;8298:2;8278:18;;;8271:30;8337:34;8317:18;;;8310:62;-1:-1:-1;;;8388:18:88;;;8381:34;8432:19;;11974:65:9;8057:400:88;11974:65:9;12230:4;-1:-1:-1;;;;;12192:42:9;:34;12218:7;12192:25;:34::i;:::-;-1:-1:-1;;;;;12192:42:9;;12184:92;;;;-1:-1:-1;;;12184:92:9;;;;;;;:::i;:::-;12345:24;;;;:15;:24;;;;;;;;12338:31;;-1:-1:-1;;;;;;12338:31:9;;;;;;-1:-1:-1;;;;;12813:15:9;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12813:20:9;;;12847:13;;;;;;;;;:18;;12338:31;12847:18;;;12885:16;;;:7;:16;;;;;;:21;;;;;;;;;;12922:27;;12361:7;;12922:27;;;4020:347;3950:417;;:::o;13438:277::-;13558:8;-1:-1:-1;;;;;13549:17:9;:5;-1:-1:-1;;;;;13549:17:9;;13541:55;;;;-1:-1:-1;;;13541:55:9;;8664:2:88;13541:55:9;;;8646:21:88;8703:2;8683:18;;;8676:30;8742:27;8722:18;;;8715:55;8787:18;;13541:55:9;8462:349:88;13541:55:9;-1:-1:-1;;;;;13606:25:9;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13606:46:9;;;;;;;;;;13667:41;;540::88;;;13667::9;;513:18:88;13667:41:9;;;;;;;13438:277;;;:::o;6819:267::-;6931:28;6941:4;6947:2;6951:7;6931:9;:28::i;:::-;6977:47;7000:4;7006:2;7010:7;7019:4;6977:22;:47::i;:::-;6969:110;;;;-1:-1:-1;;;6969:110:9;;;;;;;:::i;480:707:16:-;536:13;585:14;602:28;624:5;602:21;:28::i;:::-;633:1;602:32;585:49;;648:20;682:6;671:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;671:18:16;-1:-1:-1;648:41:16;-1:-1:-1;809:28:16;;;825:2;809:28;864:280;-1:-1:-1;;895:5:16;-1:-1:-1;;;1029:2:16;1018:14;;1013:30;895:5;1000:44;1088:2;1079:11;;;-1:-1:-1;1108:21:16;864:280;1108:21;-1:-1:-1;1164:6:16;480:707;-1:-1:-1;;;480:707:16:o;14484:853:9:-;14633:4;-1:-1:-1;;;;;14653:13:9;;1713:19:13;:23;14649:682:9;;14688:82;;-1:-1:-1;;;14688:82:9;;-1:-1:-1;;;;;14688:47:9;;;;;:82;;965:10:14;;14750:4:9;;14756:7;;14765:4;;14688:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14688:82:9;;;;;;;;-1:-1:-1;;14688:82:9;;;;;;;;;;;;:::i;:::-;;;14684:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14948:6;:13;14965:1;14948:18;14944:321;;14990:60;;-1:-1:-1;;;14990:60:9;;;;;;;:::i;14944:321::-;15217:6;15211:13;15202:6;15198:2;15194:15;15187:38;14684:595;-1:-1:-1;;;;;;14820:62:9;-1:-1:-1;;;14820:62:9;;-1:-1:-1;14813:69:9;;14649:682;-1:-1:-1;15316:4:9;14484:853;;;;;;:::o;10150:916:19:-;10203:7;;-1:-1:-1;;;10278:17:19;;10274:103;;-1:-1:-1;;;10315:17:19;;;-1:-1:-1;10360:2:19;10350:12;10274:103;10403:8;10394:5;:17;10390:103;;10440:8;10431:17;;;-1:-1:-1;10476:2:19;10466:12;10390:103;10519:8;10510:5;:17;10506:103;;10556:8;10547:17;;;-1:-1:-1;10592:2:19;10582:12;10506:103;10635:7;10626:5;:16;10622:100;;10671:7;10662:16;;;-1:-1:-1;10706:1:19;10696:11;10622:100;10748:7;10739:5;:16;10735:100;;10784:7;10775:16;;;-1:-1:-1;10819:1:19;10809:11;10735:100;10861:7;10852:5;:16;10848:100;;10897:7;10888:16;;;-1:-1:-1;10932:1:19;10922:11;10848:100;10974:7;10965:5;:16;10961:66;;11011:1;11001:11;11053:6;10150:916;-1:-1:-1;;10150:916:19:o;14:131:88:-;-1:-1:-1;;;;;;88:32:88;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:300::-;645:3;683:5;677:12;710:6;705:3;698:19;766:6;759:4;752:5;748:16;741:4;736:3;732:14;726:47;818:1;811:4;802:6;797:3;793:16;789:27;782:38;881:4;874:2;870:7;865:2;857:6;853:15;849:29;844:3;840:39;836:50;829:57;;;592:300;;;;:::o;897:231::-;1046:2;1035:9;1028:21;1009:4;1066:56;1118:2;1107:9;1103:18;1095:6;1066:56;:::i;1133:226::-;1192:6;1245:2;1233:9;1224:7;1220:23;1216:32;1213:52;;;1261:1;1258;1251:12;1213:52;-1:-1:-1;1306:23:88;;1133:226;-1:-1:-1;1133:226:88:o;1572:173::-;1640:20;;-1:-1:-1;;;;;1689:31:88;;1679:42;;1669:70;;1735:1;1732;1725:12;1669:70;1572:173;;;:::o;1750:300::-;1818:6;1826;1879:2;1867:9;1858:7;1854:23;1850:32;1847:52;;;1895:1;1892;1885:12;1847:52;1918:29;1937:9;1918:29;:::i;:::-;1908:39;2016:2;2001:18;;;;1988:32;;-1:-1:-1;;;1750:300:88:o;2055:374::-;2132:6;2140;2148;2201:2;2189:9;2180:7;2176:23;2172:32;2169:52;;;2217:1;2214;2207:12;2169:52;2240:29;2259:9;2240:29;:::i;:::-;2230:39;;2288:38;2322:2;2311:9;2307:18;2288:38;:::i;:::-;2055:374;;2278:48;;-1:-1:-1;;;2395:2:88;2380:18;;;;2367:32;;2055:374::o;2434:186::-;2493:6;2546:2;2534:9;2525:7;2521:23;2517:32;2514:52;;;2562:1;2559;2552:12;2514:52;2585:29;2604:9;2585:29;:::i;2807:347::-;2872:6;2880;2933:2;2921:9;2912:7;2908:23;2904:32;2901:52;;;2949:1;2946;2939:12;2901:52;2972:29;2991:9;2972:29;:::i;:::-;2962:39;;3051:2;3040:9;3036:18;3023:32;3098:5;3091:13;3084:21;3077:5;3074:32;3064:60;;3120:1;3117;3110:12;3064:60;3143:5;3133:15;;;2807:347;;;;;:::o;3159:127::-;3220:10;3215:3;3211:20;3208:1;3201:31;3251:4;3248:1;3241:15;3275:4;3272:1;3265:15;3291:1207;3386:6;3394;3402;3410;3463:3;3451:9;3442:7;3438:23;3434:33;3431:53;;;3480:1;3477;3470:12;3431:53;3503:29;3522:9;3503:29;:::i;:::-;3493:39;;3551:38;3585:2;3574:9;3570:18;3551:38;:::i;:::-;3541:48;-1:-1:-1;3658:2:88;3643:18;;3630:32;;-1:-1:-1;3737:2:88;3722:18;;3709:32;3764:18;3753:30;;3750:50;;;3796:1;3793;3786:12;3750:50;3819:22;;3872:4;3864:13;;3860:27;-1:-1:-1;3850:55:88;;3901:1;3898;3891:12;3850:55;3941:2;3928:16;3967:18;3959:6;3956:30;3953:56;;;3989:18;;:::i;:::-;4038:2;4032:9;4130:2;4092:17;;-1:-1:-1;;4088:31:88;;;4121:2;4084:40;4080:54;4068:67;;4165:18;4150:34;;4186:22;;;4147:62;4144:88;;;4212:18;;:::i;:::-;4248:2;4241:22;4272;;;4313:15;;;4330:2;4309:24;4306:37;-1:-1:-1;4303:57:88;;;4356:1;4353;4346:12;4303:57;4412:6;4407:2;4403;4399:11;4394:2;4386:6;4382:15;4369:50;4465:1;4460:2;4451:6;4443;4439:19;4435:28;4428:39;4486:6;4476:16;;;;;3291:1207;;;;;;;:::o;4503:260::-;4571:6;4579;4632:2;4620:9;4611:7;4607:23;4603:32;4600:52;;;4648:1;4645;4638:12;4600:52;4671:29;4690:9;4671:29;:::i;:::-;4661:39;;4719:38;4753:2;4742:9;4738:18;4719:38;:::i;:::-;4709:48;;4503:260;;;;;:::o;4768:380::-;4847:1;4843:12;;;;4890;;;4911:61;;4965:4;4957:6;4953:17;4943:27;;4911:61;5018:2;5010:6;5007:14;4987:18;4984:38;4981:161;;5064:10;5059:3;5055:20;5052:1;5045:31;5099:4;5096:1;5089:15;5127:4;5124:1;5117:15;4981:161;;4768:380;;;:::o;5985:409::-;6187:2;6169:21;;;6226:2;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;-1:-1:-1;;;6331:2:88;6316:18;;6309:43;6384:3;6369:19;;5985:409::o;7162:212::-;7204:3;7242:5;7236:12;7286:6;7279:4;7272:5;7268:16;7263:3;7257:36;7348:1;7312:16;;7337:13;;;-1:-1:-1;7312:16:88;;7162:212;-1:-1:-1;7162:212:88:o;7379:267::-;7558:3;7583:57;7609:30;7635:3;7627:6;7609:30;:::i;:::-;7601:6;7583:57;:::i;7651:401::-;7853:2;7835:21;;;7892:2;7872:18;;;7865:30;7931:34;7926:2;7911:18;;7904:62;-1:-1:-1;;;7997:2:88;7982:18;;7975:35;8042:3;8027:19;;7651:401::o;8816:414::-;9018:2;9000:21;;;9057:2;9037:18;;;9030:30;9096:34;9091:2;9076:18;;9069:62;-1:-1:-1;;;9162:2:88;9147:18;;9140:48;9220:3;9205:19;;8816:414::o;9367:496::-;-1:-1:-1;;;;;9598:32:88;;;9580:51;;9667:32;;9662:2;9647:18;;9640:60;9731:2;9716:18;;9709:34;;;9779:3;9774:2;9759:18;;9752:31;;;-1:-1:-1;;9800:57:88;;9837:19;;9829:6;9800:57;:::i;:::-;9792:65;9367:496;-1:-1:-1;;;;;;9367:496:88:o;9868:249::-;9937:6;9990:2;9978:9;9969:7;9965:23;9961:32;9958:52;;;10006:1;10003;9996:12;9958:52;10038:9;10032:16;10057:30;10081:5;10057:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":\"ERC721Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xd6e2dc520133229f192493fc0a53c0cfb0cbcee1e45bf0817c34e416486d9359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bda0b8ba2463ef7a8d1189ce54139691f5986aab83a3c502614dd2f29996fe8\",\"dweb:/ipfs/QmapEyXhDZCJL4ho7BQMmZUHtkhyJzABn4iWxyJYae1Kom\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0xbe63437e37e32162d5d11ea8f11a44378c092b4bcbb05b51a813fe4bf33297d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68a514febde6ffd8afe3cb5b40815d10c0a926063237d5d167cbaa90239f75ae\",\"dweb:/ipfs/QmVBvYeR6oGBw7K7vu5FMotr8josejtaGwugM68VTZacww\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3087,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":1239,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":1241,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":1245,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":1249,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":1253,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":1259,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":2161,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol":{"IERC721ReceiverUpgradeable":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol":{"IERC721Upgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0xbe63437e37e32162d5d11ea8f11a44378c092b4bcbb05b51a813fe4bf33297d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68a514febde6ffd8afe3cb5b40815d10c0a926063237d5d167cbaa90239f75ae\",\"dweb:/ipfs/QmVBvYeR6oGBw7K7vu5FMotr8josejtaGwugM68VTZacww\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"IERC721MetadataUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0xbe63437e37e32162d5d11ea8f11a44378c092b4bcbb05b51a813fe4bf33297d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68a514febde6ffd8afe3cb5b40815d10c0a926063237d5d167cbaa90239f75ae\",\"dweb:/ipfs/QmVBvYeR6oGBw7K7vu5FMotr8josejtaGwugM68VTZacww\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122024301ff0a7b71760f1f93596611f06b9a26e2952265da77720c3a0e6f1e903b364736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 ADDRESS 0x1F CREATE 0xA7 0xB7 OR PUSH1 0xF1 0xF9 CALLDATALOAD SWAP7 PUSH2 0x1F06 0xB9 LOG2 PUSH15 0x2952265DA77720C3A0E6F1E903B364 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"194:9180:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9180:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122024301ff0a7b71760f1f93596611f06b9a26e2952265da77720c3a0e6f1e903b364736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 ADDRESS 0x1F CREATE 0xA7 0xB7 OR PUSH1 0xF1 0xF9 CALLDATALOAD SWAP7 PUSH2 0x1F06 0xB9 LOG2 PUSH15 0x2952265DA77720C3A0E6F1E903B364 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"194:9180:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol":{"StorageSlotUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220d9b4aa84147c0e2536c937fa8d58af7e0e60566ca3cb68c850eccc542fc6000964736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xB4 0xAA DUP5 EQ PUSH29 0xE2536C937FA8D58AF7E0E60566CA3CB68C850ECCC542FC6000964736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"1420:2696:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1420:2696:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220d9b4aa84147c0e2536c937fa8d58af7e0e60566ca3cb68c850eccc542fc6000964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 0xB4 0xAA DUP5 EQ PUSH29 0xE2536C937FA8D58AF7E0E60566CA3CB68C850ECCC542FC6000964736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"1420:2696:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ _Available since v4.9 for `string`, `bytes`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":\"StorageSlotUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"StringsUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220676681a530607da66dd69065bc821d3813c4fbcc35b340f77a91b5414cfb20c364736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0x6681A530607DA66D 0xD6 SWAP1 PUSH6 0xBC821D3813C4 0xFB 0xCC CALLDATALOAD 0xB3 BLOCKHASH 0xF7 PUSH27 0x91B5414CFB20C364736F6C634300081C0033000000000000000000 ","sourceMap":"242:2603:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;242:2603:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220676681a530607da66dd69065bc821d3813c4fbcc35b340f77a91b5414cfb20c364736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0x6681A530607DA66D 0xD6 SWAP1 PUSH6 0xBC821D3813C4 0xFB 0xCC CALLDATALOAD 0xB3 BLOCKHASH 0xF7 PUSH27 0x91B5414CFB20C364736F6C634300081C0033000000000000000000 ","sourceMap":"242:2603:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ERC165Upgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3087,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"IERC165Upgradeable":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"MathUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122005ee3423ae67857eb0bf6ef9498be11daca55c9339b6c1ef36d9ecbad06a8b5c64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xEE CALLVALUE 0x23 0xAE PUSH8 0x857EB0BF6EF9498B 0xE1 SAR 0xAC 0xA5 TLOAD SWAP4 CODECOPY 0xB6 0xC1 0xEF CALLDATASIZE 0xD9 0xEC 0xBA 0xD0 PUSH11 0x8B5C64736F6C634300081C STOP CALLER ","sourceMap":"202:12593:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12593:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122005ee3423ae67857eb0bf6ef9498be11daca55c9339b6c1ef36d9ecbad06a8b5c64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xEE CALLVALUE 0x23 0xAE PUSH8 0x857EB0BF6EF9498B 0xE1 SAR 0xAC 0xA5 TLOAD SWAP4 CODECOPY 0xB6 0xC1 0xEF CALLDATASIZE 0xD9 0xEC 0xBA 0xD0 PUSH11 0x8B5C64736F6C634300081C STOP CALLER ","sourceMap":"202:12593:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":\"MathUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol":{"SignedMathUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207b67af843c3374db5d3e583cdb763cf767cc71f2d7e02d91c90a8af81bf1de2c64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x67AF843C3374DB5D3E583CDB763CF767CC71F2D7E02D91C90A8AF81B CALL 0xDE 0x2C PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"215:1058:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1058:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207b67af843c3374db5d3e583cdb763cf767cc71f2d7e02d91c90a8af81bf1de2c64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x67AF843C3374DB5D3E583CDB763CF767CC71F2D7E02D91C90A8AF81B CALL 0xDE 0x2C PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"215:1058:20:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":\"SignedMathUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"IERC1967":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC. _Available since v4.8.3._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":\"IERC1967\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/IERC4626.sol":{"IERC4626":{"abi":[{"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":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"assetTokenAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"totalManagedAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC4626 \\\"Tokenized Vault Standard\\\", as defined in https://eips.ethereum.org/EIPS/eip-4626[ERC-4626]. _Available since v4.7._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"asset()\":{\"details\":\"Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing. - MUST be an ERC-20 token contract. - MUST NOT revert.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the \\u201cper-user\\u201d price-per-share, and instead should reflect the \\u201caverage-user\\u2019s\\u201d price-per-share, meaning what the average user should expect to see when exchanging to and from.\"},\"convertToShares(uint256)\":{\"details\":\"Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the \\u201cper-user\\u201d price-per-share, and instead should reflect the \\u201caverage-user\\u2019s\\u201d price-per-share, meaning what the average user should expect to see when exchanging to and from.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"deposit(uint256,address)\":{\"details\":\"Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the   deposit execution, and are accounted for during deposit. - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not   approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault\\u2019s underlying asset token.\"},\"maxDeposit(address)\":{\"details\":\"Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver, through a deposit call. - MUST return a limited value if receiver is subject to some deposit limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited. - MUST NOT revert.\"},\"maxMint(address)\":{\"details\":\"Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call. - MUST return a limited value if receiver is subject to some mint limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted. - MUST NOT revert.\"},\"maxRedeem(address)\":{\"details\":\"Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault, through a redeem call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock. - MUST NOT revert.\"},\"maxWithdraw(address)\":{\"details\":\"Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the Vault, through a withdraw call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST NOT revert.\"},\"mint(uint256,address)\":{\"details\":\"Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint   execution, and are accounted for during mint. - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not   approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault\\u2019s underlying asset token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit   call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called   in the same transaction. - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the   deposit would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing.\"},\"previewMint(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call   in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the   same transaction. - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint   would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by minting.\"},\"previewRedeem(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call   in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the   same transaction. - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the   redemption would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by redeeming.\"},\"previewWithdraw(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw   call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if   called   in the same transaction. - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though   the withdrawal would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing.\"},\"redeem(uint256,address,address)\":{\"details\":\"Burns exactly shares from owner and sends assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the   redeem execution, and are accounted for during redeem. - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner   not having enough shares, etc). NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalAssets()\":{\"details\":\"Returns the total amount of the underlying asset that is \\u201cmanaged\\u201d by Vault. - SHOULD include any compounding that occurs from yield. - MUST be inclusive of any fees that are charged against assets in the Vault. - MUST NOT revert.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"withdraw(uint256,address,address)\":{\"details\":\"Burns shares from owner and sends exactly assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the   withdraw execution, and are accounted for during withdraw. - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner   not having enough shares, etc). Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x5a173dcd1c1f0074e4df6a9cdab3257e17f2e64f7b8f30ca9e17a8c5ea250e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7883819ce2b72264a756063ae578661f62b23f4104b08e9565ac075e619f6ce3\",\"dweb:/ipfs/QmcSZdFiEQkWRmZQhnCdfH9ychooV81pBjr7hfaiYiNZT2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_4370":{"entryPoint":null,"id":4370,"parameterSlots":2,"returnSlots":0},"@_revert_6941":{"entryPoint":626,"id":6941,"parameterSlots":2,"returnSlots":0},"@_setImplementation_4437":{"entryPoint":202,"id":4437,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_4482":{"entryPoint":52,"id":4482,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_4452":{"entryPoint":95,"id":4452,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_6829":{"entryPoint":158,"id":6829,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_6858":{"entryPoint":381,"id":6858,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_7004":{"entryPoint":null,"id":7004,"parameterSlots":1,"returnSlots":1},"@isContract_6630":{"entryPoint":null,"id":6630,"parameterSlots":1,"returnSlots":1},"@verifyCallResultFromTarget_6897":{"entryPoint":498,"id":6897,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":688,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":917,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":668,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2750:88","nodeType":"YulBlock","src":"0:2750:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"46:95:88","nodeType":"YulBlock","src":"46:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:88","nodeType":"YulLiteral","src":"63:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:88","nodeType":"YulLiteral","src":"70:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:88","nodeType":"YulLiteral","src":"75:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:88","nodeType":"YulIdentifier","src":"66:3:88"},"nativeSrc":"66:20:88","nodeType":"YulFunctionCall","src":"66:20:88"}],"functionName":{"name":"mstore","nativeSrc":"56:6:88","nodeType":"YulIdentifier","src":"56:6:88"},"nativeSrc":"56:31:88","nodeType":"YulFunctionCall","src":"56:31:88"},"nativeSrc":"56:31:88","nodeType":"YulExpressionStatement","src":"56:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:88","nodeType":"YulLiteral","src":"103:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:88","nodeType":"YulLiteral","src":"106:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:88","nodeType":"YulIdentifier","src":"96:6:88"},"nativeSrc":"96:15:88","nodeType":"YulFunctionCall","src":"96:15:88"},"nativeSrc":"96:15:88","nodeType":"YulExpressionStatement","src":"96:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:88","nodeType":"YulLiteral","src":"127:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:88","nodeType":"YulLiteral","src":"130:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:88","nodeType":"YulIdentifier","src":"120:6:88"},"nativeSrc":"120:15:88","nodeType":"YulFunctionCall","src":"120:15:88"},"nativeSrc":"120:15:88","nodeType":"YulExpressionStatement","src":"120:15:88"}]},"name":"panic_error_0x41","nativeSrc":"14:127:88","nodeType":"YulFunctionDefinition","src":"14:127:88"},{"body":{"nativeSrc":"253:994:88","nodeType":"YulBlock","src":"253:994:88","statements":[{"body":{"nativeSrc":"299:16:88","nodeType":"YulBlock","src":"299:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"308:1:88","nodeType":"YulLiteral","src":"308:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"311:1:88","nodeType":"YulLiteral","src":"311:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"301:6:88","nodeType":"YulIdentifier","src":"301:6:88"},"nativeSrc":"301:12:88","nodeType":"YulFunctionCall","src":"301:12:88"},"nativeSrc":"301:12:88","nodeType":"YulExpressionStatement","src":"301:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"274:7:88","nodeType":"YulIdentifier","src":"274:7:88"},{"name":"headStart","nativeSrc":"283:9:88","nodeType":"YulIdentifier","src":"283:9:88"}],"functionName":{"name":"sub","nativeSrc":"270:3:88","nodeType":"YulIdentifier","src":"270:3:88"},"nativeSrc":"270:23:88","nodeType":"YulFunctionCall","src":"270:23:88"},{"kind":"number","nativeSrc":"295:2:88","nodeType":"YulLiteral","src":"295:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"266:3:88","nodeType":"YulIdentifier","src":"266:3:88"},"nativeSrc":"266:32:88","nodeType":"YulFunctionCall","src":"266:32:88"},"nativeSrc":"263:52:88","nodeType":"YulIf","src":"263:52:88"},{"nativeSrc":"324:29:88","nodeType":"YulVariableDeclaration","src":"324:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"343:9:88","nodeType":"YulIdentifier","src":"343:9:88"}],"functionName":{"name":"mload","nativeSrc":"337:5:88","nodeType":"YulIdentifier","src":"337:5:88"},"nativeSrc":"337:16:88","nodeType":"YulFunctionCall","src":"337:16:88"},"variables":[{"name":"value","nativeSrc":"328:5:88","nodeType":"YulTypedName","src":"328:5:88","type":""}]},{"body":{"nativeSrc":"416:16:88","nodeType":"YulBlock","src":"416:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"425:1:88","nodeType":"YulLiteral","src":"425:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"428:1:88","nodeType":"YulLiteral","src":"428:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"418:6:88","nodeType":"YulIdentifier","src":"418:6:88"},"nativeSrc":"418:12:88","nodeType":"YulFunctionCall","src":"418:12:88"},"nativeSrc":"418:12:88","nodeType":"YulExpressionStatement","src":"418:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"375:5:88","nodeType":"YulIdentifier","src":"375:5:88"},{"arguments":[{"name":"value","nativeSrc":"386:5:88","nodeType":"YulIdentifier","src":"386:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"401:3:88","nodeType":"YulLiteral","src":"401:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"406:1:88","nodeType":"YulLiteral","src":"406:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"397:3:88","nodeType":"YulIdentifier","src":"397:3:88"},"nativeSrc":"397:11:88","nodeType":"YulFunctionCall","src":"397:11:88"},{"kind":"number","nativeSrc":"410:1:88","nodeType":"YulLiteral","src":"410:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"393:3:88","nodeType":"YulIdentifier","src":"393:3:88"},"nativeSrc":"393:19:88","nodeType":"YulFunctionCall","src":"393:19:88"}],"functionName":{"name":"and","nativeSrc":"382:3:88","nodeType":"YulIdentifier","src":"382:3:88"},"nativeSrc":"382:31:88","nodeType":"YulFunctionCall","src":"382:31:88"}],"functionName":{"name":"eq","nativeSrc":"372:2:88","nodeType":"YulIdentifier","src":"372:2:88"},"nativeSrc":"372:42:88","nodeType":"YulFunctionCall","src":"372:42:88"}],"functionName":{"name":"iszero","nativeSrc":"365:6:88","nodeType":"YulIdentifier","src":"365:6:88"},"nativeSrc":"365:50:88","nodeType":"YulFunctionCall","src":"365:50:88"},"nativeSrc":"362:70:88","nodeType":"YulIf","src":"362:70:88"},{"nativeSrc":"441:15:88","nodeType":"YulAssignment","src":"441:15:88","value":{"name":"value","nativeSrc":"451:5:88","nodeType":"YulIdentifier","src":"451:5:88"},"variableNames":[{"name":"value0","nativeSrc":"441:6:88","nodeType":"YulIdentifier","src":"441:6:88"}]},{"nativeSrc":"465:39:88","nodeType":"YulVariableDeclaration","src":"465:39:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"489:9:88","nodeType":"YulIdentifier","src":"489:9:88"},{"kind":"number","nativeSrc":"500:2:88","nodeType":"YulLiteral","src":"500:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"485:3:88","nodeType":"YulIdentifier","src":"485:3:88"},"nativeSrc":"485:18:88","nodeType":"YulFunctionCall","src":"485:18:88"}],"functionName":{"name":"mload","nativeSrc":"479:5:88","nodeType":"YulIdentifier","src":"479:5:88"},"nativeSrc":"479:25:88","nodeType":"YulFunctionCall","src":"479:25:88"},"variables":[{"name":"offset","nativeSrc":"469:6:88","nodeType":"YulTypedName","src":"469:6:88","type":""}]},{"body":{"nativeSrc":"547:16:88","nodeType":"YulBlock","src":"547:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"556:1:88","nodeType":"YulLiteral","src":"556:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"559:1:88","nodeType":"YulLiteral","src":"559:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"549:6:88","nodeType":"YulIdentifier","src":"549:6:88"},"nativeSrc":"549:12:88","nodeType":"YulFunctionCall","src":"549:12:88"},"nativeSrc":"549:12:88","nodeType":"YulExpressionStatement","src":"549:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"519:6:88","nodeType":"YulIdentifier","src":"519:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"535:2:88","nodeType":"YulLiteral","src":"535:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"539:1:88","nodeType":"YulLiteral","src":"539:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"531:3:88","nodeType":"YulIdentifier","src":"531:3:88"},"nativeSrc":"531:10:88","nodeType":"YulFunctionCall","src":"531:10:88"},{"kind":"number","nativeSrc":"543:1:88","nodeType":"YulLiteral","src":"543:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"527:3:88","nodeType":"YulIdentifier","src":"527:3:88"},"nativeSrc":"527:18:88","nodeType":"YulFunctionCall","src":"527:18:88"}],"functionName":{"name":"gt","nativeSrc":"516:2:88","nodeType":"YulIdentifier","src":"516:2:88"},"nativeSrc":"516:30:88","nodeType":"YulFunctionCall","src":"516:30:88"},"nativeSrc":"513:50:88","nodeType":"YulIf","src":"513:50:88"},{"nativeSrc":"572:32:88","nodeType":"YulVariableDeclaration","src":"572:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"586:9:88","nodeType":"YulIdentifier","src":"586:9:88"},{"name":"offset","nativeSrc":"597:6:88","nodeType":"YulIdentifier","src":"597:6:88"}],"functionName":{"name":"add","nativeSrc":"582:3:88","nodeType":"YulIdentifier","src":"582:3:88"},"nativeSrc":"582:22:88","nodeType":"YulFunctionCall","src":"582:22:88"},"variables":[{"name":"_1","nativeSrc":"576:2:88","nodeType":"YulTypedName","src":"576:2:88","type":""}]},{"body":{"nativeSrc":"652:16:88","nodeType":"YulBlock","src":"652:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"661:1:88","nodeType":"YulLiteral","src":"661:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"664:1:88","nodeType":"YulLiteral","src":"664:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"},"nativeSrc":"654:12:88","nodeType":"YulFunctionCall","src":"654:12:88"},"nativeSrc":"654:12:88","nodeType":"YulExpressionStatement","src":"654:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"631:2:88","nodeType":"YulIdentifier","src":"631:2:88"},{"kind":"number","nativeSrc":"635:4:88","nodeType":"YulLiteral","src":"635:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"627:3:88","nodeType":"YulIdentifier","src":"627:3:88"},"nativeSrc":"627:13:88","nodeType":"YulFunctionCall","src":"627:13:88"},{"name":"dataEnd","nativeSrc":"642:7:88","nodeType":"YulIdentifier","src":"642:7:88"}],"functionName":{"name":"slt","nativeSrc":"623:3:88","nodeType":"YulIdentifier","src":"623:3:88"},"nativeSrc":"623:27:88","nodeType":"YulFunctionCall","src":"623:27:88"}],"functionName":{"name":"iszero","nativeSrc":"616:6:88","nodeType":"YulIdentifier","src":"616:6:88"},"nativeSrc":"616:35:88","nodeType":"YulFunctionCall","src":"616:35:88"},"nativeSrc":"613:55:88","nodeType":"YulIf","src":"613:55:88"},{"nativeSrc":"677:23:88","nodeType":"YulVariableDeclaration","src":"677:23:88","value":{"arguments":[{"name":"_1","nativeSrc":"697:2:88","nodeType":"YulIdentifier","src":"697:2:88"}],"functionName":{"name":"mload","nativeSrc":"691:5:88","nodeType":"YulIdentifier","src":"691:5:88"},"nativeSrc":"691:9:88","nodeType":"YulFunctionCall","src":"691:9:88"},"variables":[{"name":"length","nativeSrc":"681:6:88","nodeType":"YulTypedName","src":"681:6:88","type":""}]},{"body":{"nativeSrc":"743:22:88","nodeType":"YulBlock","src":"743:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"745:16:88","nodeType":"YulIdentifier","src":"745:16:88"},"nativeSrc":"745:18:88","nodeType":"YulFunctionCall","src":"745:18:88"},"nativeSrc":"745:18:88","nodeType":"YulExpressionStatement","src":"745:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"715:6:88","nodeType":"YulIdentifier","src":"715:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"731:2:88","nodeType":"YulLiteral","src":"731:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"735:1:88","nodeType":"YulLiteral","src":"735:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"727:3:88","nodeType":"YulIdentifier","src":"727:3:88"},"nativeSrc":"727:10:88","nodeType":"YulFunctionCall","src":"727:10:88"},{"kind":"number","nativeSrc":"739:1:88","nodeType":"YulLiteral","src":"739:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"723:3:88","nodeType":"YulIdentifier","src":"723:3:88"},"nativeSrc":"723:18:88","nodeType":"YulFunctionCall","src":"723:18:88"}],"functionName":{"name":"gt","nativeSrc":"712:2:88","nodeType":"YulIdentifier","src":"712:2:88"},"nativeSrc":"712:30:88","nodeType":"YulFunctionCall","src":"712:30:88"},"nativeSrc":"709:56:88","nodeType":"YulIf","src":"709:56:88"},{"nativeSrc":"774:23:88","nodeType":"YulVariableDeclaration","src":"774:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"794:2:88","nodeType":"YulLiteral","src":"794:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"788:5:88","nodeType":"YulIdentifier","src":"788:5:88"},"nativeSrc":"788:9:88","nodeType":"YulFunctionCall","src":"788:9:88"},"variables":[{"name":"memPtr","nativeSrc":"778:6:88","nodeType":"YulTypedName","src":"778:6:88","type":""}]},{"nativeSrc":"806:85:88","nodeType":"YulVariableDeclaration","src":"806:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"828:6:88","nodeType":"YulIdentifier","src":"828:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"852:6:88","nodeType":"YulIdentifier","src":"852:6:88"},{"kind":"number","nativeSrc":"860:4:88","nodeType":"YulLiteral","src":"860:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"848:3:88","nodeType":"YulIdentifier","src":"848:3:88"},"nativeSrc":"848:17:88","nodeType":"YulFunctionCall","src":"848:17:88"},{"arguments":[{"kind":"number","nativeSrc":"871:2:88","nodeType":"YulLiteral","src":"871:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"867:3:88","nodeType":"YulIdentifier","src":"867:3:88"},"nativeSrc":"867:7:88","nodeType":"YulFunctionCall","src":"867:7:88"}],"functionName":{"name":"and","nativeSrc":"844:3:88","nodeType":"YulIdentifier","src":"844:3:88"},"nativeSrc":"844:31:88","nodeType":"YulFunctionCall","src":"844:31:88"},{"kind":"number","nativeSrc":"877:2:88","nodeType":"YulLiteral","src":"877:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"840:3:88","nodeType":"YulIdentifier","src":"840:3:88"},"nativeSrc":"840:40:88","nodeType":"YulFunctionCall","src":"840:40:88"},{"arguments":[{"kind":"number","nativeSrc":"886:2:88","nodeType":"YulLiteral","src":"886:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"882:3:88","nodeType":"YulIdentifier","src":"882:3:88"},"nativeSrc":"882:7:88","nodeType":"YulFunctionCall","src":"882:7:88"}],"functionName":{"name":"and","nativeSrc":"836:3:88","nodeType":"YulIdentifier","src":"836:3:88"},"nativeSrc":"836:54:88","nodeType":"YulFunctionCall","src":"836:54:88"}],"functionName":{"name":"add","nativeSrc":"824:3:88","nodeType":"YulIdentifier","src":"824:3:88"},"nativeSrc":"824:67:88","nodeType":"YulFunctionCall","src":"824:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"810:10:88","nodeType":"YulTypedName","src":"810:10:88","type":""}]},{"body":{"nativeSrc":"966:22:88","nodeType":"YulBlock","src":"966:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"968:16:88","nodeType":"YulIdentifier","src":"968:16:88"},"nativeSrc":"968:18:88","nodeType":"YulFunctionCall","src":"968:18:88"},"nativeSrc":"968:18:88","nodeType":"YulExpressionStatement","src":"968:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"909:10:88","nodeType":"YulIdentifier","src":"909:10:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"929:2:88","nodeType":"YulLiteral","src":"929:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"933:1:88","nodeType":"YulLiteral","src":"933:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"925:3:88","nodeType":"YulIdentifier","src":"925:3:88"},"nativeSrc":"925:10:88","nodeType":"YulFunctionCall","src":"925:10:88"},{"kind":"number","nativeSrc":"937:1:88","nodeType":"YulLiteral","src":"937:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"921:3:88","nodeType":"YulIdentifier","src":"921:3:88"},"nativeSrc":"921:18:88","nodeType":"YulFunctionCall","src":"921:18:88"}],"functionName":{"name":"gt","nativeSrc":"906:2:88","nodeType":"YulIdentifier","src":"906:2:88"},"nativeSrc":"906:34:88","nodeType":"YulFunctionCall","src":"906:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"945:10:88","nodeType":"YulIdentifier","src":"945:10:88"},{"name":"memPtr","nativeSrc":"957:6:88","nodeType":"YulIdentifier","src":"957:6:88"}],"functionName":{"name":"lt","nativeSrc":"942:2:88","nodeType":"YulIdentifier","src":"942:2:88"},"nativeSrc":"942:22:88","nodeType":"YulFunctionCall","src":"942:22:88"}],"functionName":{"name":"or","nativeSrc":"903:2:88","nodeType":"YulIdentifier","src":"903:2:88"},"nativeSrc":"903:62:88","nodeType":"YulFunctionCall","src":"903:62:88"},"nativeSrc":"900:88:88","nodeType":"YulIf","src":"900:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1004:2:88","nodeType":"YulLiteral","src":"1004:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1008:10:88","nodeType":"YulIdentifier","src":"1008:10:88"}],"functionName":{"name":"mstore","nativeSrc":"997:6:88","nodeType":"YulIdentifier","src":"997:6:88"},"nativeSrc":"997:22:88","nodeType":"YulFunctionCall","src":"997:22:88"},"nativeSrc":"997:22:88","nodeType":"YulExpressionStatement","src":"997:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1035:6:88","nodeType":"YulIdentifier","src":"1035:6:88"},{"name":"length","nativeSrc":"1043:6:88","nodeType":"YulIdentifier","src":"1043:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1028:6:88","nodeType":"YulIdentifier","src":"1028:6:88"},"nativeSrc":"1028:22:88","nodeType":"YulFunctionCall","src":"1028:22:88"},"nativeSrc":"1028:22:88","nodeType":"YulExpressionStatement","src":"1028:22:88"},{"body":{"nativeSrc":"1100:16:88","nodeType":"YulBlock","src":"1100:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1109:1:88","nodeType":"YulLiteral","src":"1109:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1112:1:88","nodeType":"YulLiteral","src":"1112:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1102:6:88","nodeType":"YulIdentifier","src":"1102:6:88"},"nativeSrc":"1102:12:88","nodeType":"YulFunctionCall","src":"1102:12:88"},"nativeSrc":"1102:12:88","nodeType":"YulExpressionStatement","src":"1102:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1073:2:88","nodeType":"YulIdentifier","src":"1073:2:88"},{"name":"length","nativeSrc":"1077:6:88","nodeType":"YulIdentifier","src":"1077:6:88"}],"functionName":{"name":"add","nativeSrc":"1069:3:88","nodeType":"YulIdentifier","src":"1069:3:88"},"nativeSrc":"1069:15:88","nodeType":"YulFunctionCall","src":"1069:15:88"},{"kind":"number","nativeSrc":"1086:2:88","nodeType":"YulLiteral","src":"1086:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1065:3:88","nodeType":"YulIdentifier","src":"1065:3:88"},"nativeSrc":"1065:24:88","nodeType":"YulFunctionCall","src":"1065:24:88"},{"name":"dataEnd","nativeSrc":"1091:7:88","nodeType":"YulIdentifier","src":"1091:7:88"}],"functionName":{"name":"gt","nativeSrc":"1062:2:88","nodeType":"YulIdentifier","src":"1062:2:88"},"nativeSrc":"1062:37:88","nodeType":"YulFunctionCall","src":"1062:37:88"},"nativeSrc":"1059:57:88","nodeType":"YulIf","src":"1059:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1135:6:88","nodeType":"YulIdentifier","src":"1135:6:88"},{"kind":"number","nativeSrc":"1143:2:88","nodeType":"YulLiteral","src":"1143:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1131:3:88","nodeType":"YulIdentifier","src":"1131:3:88"},"nativeSrc":"1131:15:88","nodeType":"YulFunctionCall","src":"1131:15:88"},{"arguments":[{"name":"_1","nativeSrc":"1152:2:88","nodeType":"YulIdentifier","src":"1152:2:88"},{"kind":"number","nativeSrc":"1156:2:88","nodeType":"YulLiteral","src":"1156:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1148:3:88","nodeType":"YulIdentifier","src":"1148:3:88"},"nativeSrc":"1148:11:88","nodeType":"YulFunctionCall","src":"1148:11:88"},{"name":"length","nativeSrc":"1161:6:88","nodeType":"YulIdentifier","src":"1161:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"1125:5:88","nodeType":"YulIdentifier","src":"1125:5:88"},"nativeSrc":"1125:43:88","nodeType":"YulFunctionCall","src":"1125:43:88"},"nativeSrc":"1125:43:88","nodeType":"YulExpressionStatement","src":"1125:43:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1192:6:88","nodeType":"YulIdentifier","src":"1192:6:88"},{"name":"length","nativeSrc":"1200:6:88","nodeType":"YulIdentifier","src":"1200:6:88"}],"functionName":{"name":"add","nativeSrc":"1188:3:88","nodeType":"YulIdentifier","src":"1188:3:88"},"nativeSrc":"1188:19:88","nodeType":"YulFunctionCall","src":"1188:19:88"},{"kind":"number","nativeSrc":"1209:2:88","nodeType":"YulLiteral","src":"1209:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1184:3:88","nodeType":"YulIdentifier","src":"1184:3:88"},"nativeSrc":"1184:28:88","nodeType":"YulFunctionCall","src":"1184:28:88"},{"kind":"number","nativeSrc":"1214:1:88","nodeType":"YulLiteral","src":"1214:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1177:6:88","nodeType":"YulIdentifier","src":"1177:6:88"},"nativeSrc":"1177:39:88","nodeType":"YulFunctionCall","src":"1177:39:88"},"nativeSrc":"1177:39:88","nodeType":"YulExpressionStatement","src":"1177:39:88"},{"nativeSrc":"1225:16:88","nodeType":"YulAssignment","src":"1225:16:88","value":{"name":"memPtr","nativeSrc":"1235:6:88","nodeType":"YulIdentifier","src":"1235:6:88"},"variableNames":[{"name":"value1","nativeSrc":"1225:6:88","nodeType":"YulIdentifier","src":"1225:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"146:1101:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"211:9:88","nodeType":"YulTypedName","src":"211:9:88","type":""},{"name":"dataEnd","nativeSrc":"222:7:88","nodeType":"YulTypedName","src":"222:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"234:6:88","nodeType":"YulTypedName","src":"234:6:88","type":""},{"name":"value1","nativeSrc":"242:6:88","nodeType":"YulTypedName","src":"242:6:88","type":""}],"src":"146:1101:88"},{"body":{"nativeSrc":"1426:235:88","nodeType":"YulBlock","src":"1426:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1443:9:88","nodeType":"YulIdentifier","src":"1443:9:88"},{"kind":"number","nativeSrc":"1454:2:88","nodeType":"YulLiteral","src":"1454:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1436:6:88","nodeType":"YulIdentifier","src":"1436:6:88"},"nativeSrc":"1436:21:88","nodeType":"YulFunctionCall","src":"1436:21:88"},"nativeSrc":"1436:21:88","nodeType":"YulExpressionStatement","src":"1436:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1477:9:88","nodeType":"YulIdentifier","src":"1477:9:88"},{"kind":"number","nativeSrc":"1488:2:88","nodeType":"YulLiteral","src":"1488:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1473:3:88","nodeType":"YulIdentifier","src":"1473:3:88"},"nativeSrc":"1473:18:88","nodeType":"YulFunctionCall","src":"1473:18:88"},{"kind":"number","nativeSrc":"1493:2:88","nodeType":"YulLiteral","src":"1493:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"},"nativeSrc":"1466:30:88","nodeType":"YulFunctionCall","src":"1466:30:88"},"nativeSrc":"1466:30:88","nodeType":"YulExpressionStatement","src":"1466:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1516:9:88","nodeType":"YulIdentifier","src":"1516:9:88"},{"kind":"number","nativeSrc":"1527:2:88","nodeType":"YulLiteral","src":"1527:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1512:3:88","nodeType":"YulIdentifier","src":"1512:3:88"},"nativeSrc":"1512:18:88","nodeType":"YulFunctionCall","src":"1512:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"1532:34:88","nodeType":"YulLiteral","src":"1532:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"1505:6:88","nodeType":"YulIdentifier","src":"1505:6:88"},"nativeSrc":"1505:62:88","nodeType":"YulFunctionCall","src":"1505:62:88"},"nativeSrc":"1505:62:88","nodeType":"YulExpressionStatement","src":"1505:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1587:9:88","nodeType":"YulIdentifier","src":"1587:9:88"},{"kind":"number","nativeSrc":"1598:2:88","nodeType":"YulLiteral","src":"1598:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1583:3:88","nodeType":"YulIdentifier","src":"1583:3:88"},"nativeSrc":"1583:18:88","nodeType":"YulFunctionCall","src":"1583:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"1603:15:88","nodeType":"YulLiteral","src":"1603:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"1576:6:88","nodeType":"YulIdentifier","src":"1576:6:88"},"nativeSrc":"1576:43:88","nodeType":"YulFunctionCall","src":"1576:43:88"},"nativeSrc":"1576:43:88","nodeType":"YulExpressionStatement","src":"1576:43:88"},{"nativeSrc":"1628:27:88","nodeType":"YulAssignment","src":"1628:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1640:9:88","nodeType":"YulIdentifier","src":"1640:9:88"},{"kind":"number","nativeSrc":"1651:3:88","nodeType":"YulLiteral","src":"1651:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1636:3:88","nodeType":"YulIdentifier","src":"1636:3:88"},"nativeSrc":"1636:19:88","nodeType":"YulFunctionCall","src":"1636:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1628:4:88","nodeType":"YulIdentifier","src":"1628:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1252:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1403:9:88","nodeType":"YulTypedName","src":"1403:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1417:4:88","nodeType":"YulTypedName","src":"1417:4:88","type":""}],"src":"1252:409:88"},{"body":{"nativeSrc":"1803:164:88","nodeType":"YulBlock","src":"1803:164:88","statements":[{"nativeSrc":"1813:27:88","nodeType":"YulVariableDeclaration","src":"1813:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"1833:6:88","nodeType":"YulIdentifier","src":"1833:6:88"}],"functionName":{"name":"mload","nativeSrc":"1827:5:88","nodeType":"YulIdentifier","src":"1827:5:88"},"nativeSrc":"1827:13:88","nodeType":"YulFunctionCall","src":"1827:13:88"},"variables":[{"name":"length","nativeSrc":"1817:6:88","nodeType":"YulTypedName","src":"1817:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1855:3:88","nodeType":"YulIdentifier","src":"1855:3:88"},{"arguments":[{"name":"value0","nativeSrc":"1864:6:88","nodeType":"YulIdentifier","src":"1864:6:88"},{"kind":"number","nativeSrc":"1872:4:88","nodeType":"YulLiteral","src":"1872:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1860:3:88","nodeType":"YulIdentifier","src":"1860:3:88"},"nativeSrc":"1860:17:88","nodeType":"YulFunctionCall","src":"1860:17:88"},{"name":"length","nativeSrc":"1879:6:88","nodeType":"YulIdentifier","src":"1879:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"1849:5:88","nodeType":"YulIdentifier","src":"1849:5:88"},"nativeSrc":"1849:37:88","nodeType":"YulFunctionCall","src":"1849:37:88"},"nativeSrc":"1849:37:88","nodeType":"YulExpressionStatement","src":"1849:37:88"},{"nativeSrc":"1895:26:88","nodeType":"YulVariableDeclaration","src":"1895:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"1909:3:88","nodeType":"YulIdentifier","src":"1909:3:88"},{"name":"length","nativeSrc":"1914:6:88","nodeType":"YulIdentifier","src":"1914:6:88"}],"functionName":{"name":"add","nativeSrc":"1905:3:88","nodeType":"YulIdentifier","src":"1905:3:88"},"nativeSrc":"1905:16:88","nodeType":"YulFunctionCall","src":"1905:16:88"},"variables":[{"name":"_1","nativeSrc":"1899:2:88","nodeType":"YulTypedName","src":"1899:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"1937:2:88","nodeType":"YulIdentifier","src":"1937:2:88"},{"kind":"number","nativeSrc":"1941:1:88","nodeType":"YulLiteral","src":"1941:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1930:6:88","nodeType":"YulIdentifier","src":"1930:6:88"},"nativeSrc":"1930:13:88","nodeType":"YulFunctionCall","src":"1930:13:88"},"nativeSrc":"1930:13:88","nodeType":"YulExpressionStatement","src":"1930:13:88"},{"nativeSrc":"1952:9:88","nodeType":"YulAssignment","src":"1952:9:88","value":{"name":"_1","nativeSrc":"1959:2:88","nodeType":"YulIdentifier","src":"1959:2:88"},"variableNames":[{"name":"end","nativeSrc":"1952:3:88","nodeType":"YulIdentifier","src":"1952:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"1666:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1779:3:88","nodeType":"YulTypedName","src":"1779:3:88","type":""},{"name":"value0","nativeSrc":"1784:6:88","nodeType":"YulTypedName","src":"1784:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1795:3:88","nodeType":"YulTypedName","src":"1795:3:88","type":""}],"src":"1666:301:88"},{"body":{"nativeSrc":"2146:179:88","nodeType":"YulBlock","src":"2146:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2163:9:88","nodeType":"YulIdentifier","src":"2163:9:88"},{"kind":"number","nativeSrc":"2174:2:88","nodeType":"YulLiteral","src":"2174:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2156:6:88","nodeType":"YulIdentifier","src":"2156:6:88"},"nativeSrc":"2156:21:88","nodeType":"YulFunctionCall","src":"2156:21:88"},"nativeSrc":"2156:21:88","nodeType":"YulExpressionStatement","src":"2156:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2197:9:88","nodeType":"YulIdentifier","src":"2197:9:88"},{"kind":"number","nativeSrc":"2208:2:88","nodeType":"YulLiteral","src":"2208:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2193:3:88","nodeType":"YulIdentifier","src":"2193:3:88"},"nativeSrc":"2193:18:88","nodeType":"YulFunctionCall","src":"2193:18:88"},{"kind":"number","nativeSrc":"2213:2:88","nodeType":"YulLiteral","src":"2213:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"2186:6:88","nodeType":"YulIdentifier","src":"2186:6:88"},"nativeSrc":"2186:30:88","nodeType":"YulFunctionCall","src":"2186:30:88"},"nativeSrc":"2186:30:88","nodeType":"YulExpressionStatement","src":"2186:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2236:9:88","nodeType":"YulIdentifier","src":"2236:9:88"},{"kind":"number","nativeSrc":"2247:2:88","nodeType":"YulLiteral","src":"2247:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2232:3:88","nodeType":"YulIdentifier","src":"2232:3:88"},"nativeSrc":"2232:18:88","nodeType":"YulFunctionCall","src":"2232:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"2252:31:88","nodeType":"YulLiteral","src":"2252:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:88","nodeType":"YulIdentifier","src":"2225:6:88"},"nativeSrc":"2225:59:88","nodeType":"YulFunctionCall","src":"2225:59:88"},"nativeSrc":"2225:59:88","nodeType":"YulExpressionStatement","src":"2225:59:88"},{"nativeSrc":"2293:26:88","nodeType":"YulAssignment","src":"2293:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2305:9:88","nodeType":"YulIdentifier","src":"2305:9:88"},{"kind":"number","nativeSrc":"2316:2:88","nodeType":"YulLiteral","src":"2316:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2301:3:88","nodeType":"YulIdentifier","src":"2301:3:88"},"nativeSrc":"2301:18:88","nodeType":"YulFunctionCall","src":"2301:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2293:4:88","nodeType":"YulIdentifier","src":"2293:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1972:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2123:9:88","nodeType":"YulTypedName","src":"2123:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2137:4:88","nodeType":"YulTypedName","src":"2137:4:88","type":""}],"src":"1972:353:88"},{"body":{"nativeSrc":"2451:297:88","nodeType":"YulBlock","src":"2451:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2468:9:88","nodeType":"YulIdentifier","src":"2468:9:88"},{"kind":"number","nativeSrc":"2479:2:88","nodeType":"YulLiteral","src":"2479:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2461:6:88","nodeType":"YulIdentifier","src":"2461:6:88"},"nativeSrc":"2461:21:88","nodeType":"YulFunctionCall","src":"2461:21:88"},"nativeSrc":"2461:21:88","nodeType":"YulExpressionStatement","src":"2461:21:88"},{"nativeSrc":"2491:27:88","nodeType":"YulVariableDeclaration","src":"2491:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"2511:6:88","nodeType":"YulIdentifier","src":"2511:6:88"}],"functionName":{"name":"mload","nativeSrc":"2505:5:88","nodeType":"YulIdentifier","src":"2505:5:88"},"nativeSrc":"2505:13:88","nodeType":"YulFunctionCall","src":"2505:13:88"},"variables":[{"name":"length","nativeSrc":"2495:6:88","nodeType":"YulTypedName","src":"2495:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2538:9:88","nodeType":"YulIdentifier","src":"2538:9:88"},{"kind":"number","nativeSrc":"2549:2:88","nodeType":"YulLiteral","src":"2549:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2534:3:88","nodeType":"YulIdentifier","src":"2534:3:88"},"nativeSrc":"2534:18:88","nodeType":"YulFunctionCall","src":"2534:18:88"},{"name":"length","nativeSrc":"2554:6:88","nodeType":"YulIdentifier","src":"2554:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2527:6:88","nodeType":"YulIdentifier","src":"2527:6:88"},"nativeSrc":"2527:34:88","nodeType":"YulFunctionCall","src":"2527:34:88"},"nativeSrc":"2527:34:88","nodeType":"YulExpressionStatement","src":"2527:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2580:9:88","nodeType":"YulIdentifier","src":"2580:9:88"},{"kind":"number","nativeSrc":"2591:2:88","nodeType":"YulLiteral","src":"2591:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2576:3:88","nodeType":"YulIdentifier","src":"2576:3:88"},"nativeSrc":"2576:18:88","nodeType":"YulFunctionCall","src":"2576:18:88"},{"arguments":[{"name":"value0","nativeSrc":"2600:6:88","nodeType":"YulIdentifier","src":"2600:6:88"},{"kind":"number","nativeSrc":"2608:2:88","nodeType":"YulLiteral","src":"2608:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2596:3:88","nodeType":"YulIdentifier","src":"2596:3:88"},"nativeSrc":"2596:15:88","nodeType":"YulFunctionCall","src":"2596:15:88"},{"name":"length","nativeSrc":"2613:6:88","nodeType":"YulIdentifier","src":"2613:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"2570:5:88","nodeType":"YulIdentifier","src":"2570:5:88"},"nativeSrc":"2570:50:88","nodeType":"YulFunctionCall","src":"2570:50:88"},"nativeSrc":"2570:50:88","nodeType":"YulExpressionStatement","src":"2570:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2644:9:88","nodeType":"YulIdentifier","src":"2644:9:88"},{"name":"length","nativeSrc":"2655:6:88","nodeType":"YulIdentifier","src":"2655:6:88"}],"functionName":{"name":"add","nativeSrc":"2640:3:88","nodeType":"YulIdentifier","src":"2640:3:88"},"nativeSrc":"2640:22:88","nodeType":"YulFunctionCall","src":"2640:22:88"},{"kind":"number","nativeSrc":"2664:2:88","nodeType":"YulLiteral","src":"2664:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2636:3:88","nodeType":"YulIdentifier","src":"2636:3:88"},"nativeSrc":"2636:31:88","nodeType":"YulFunctionCall","src":"2636:31:88"},{"kind":"number","nativeSrc":"2669:1:88","nodeType":"YulLiteral","src":"2669:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2629:6:88","nodeType":"YulIdentifier","src":"2629:6:88"},"nativeSrc":"2629:42:88","nodeType":"YulFunctionCall","src":"2629:42:88"},"nativeSrc":"2629:42:88","nodeType":"YulExpressionStatement","src":"2629:42:88"},{"nativeSrc":"2680:62:88","nodeType":"YulAssignment","src":"2680:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2696:9:88","nodeType":"YulIdentifier","src":"2696:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2715:6:88","nodeType":"YulIdentifier","src":"2715:6:88"},{"kind":"number","nativeSrc":"2723:2:88","nodeType":"YulLiteral","src":"2723:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2711:3:88","nodeType":"YulIdentifier","src":"2711:3:88"},"nativeSrc":"2711:15:88","nodeType":"YulFunctionCall","src":"2711:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2732:2:88","nodeType":"YulLiteral","src":"2732:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2728:3:88","nodeType":"YulIdentifier","src":"2728:3:88"},"nativeSrc":"2728:7:88","nodeType":"YulFunctionCall","src":"2728:7:88"}],"functionName":{"name":"and","nativeSrc":"2707:3:88","nodeType":"YulIdentifier","src":"2707:3:88"},"nativeSrc":"2707:29:88","nodeType":"YulFunctionCall","src":"2707:29:88"}],"functionName":{"name":"add","nativeSrc":"2692:3:88","nodeType":"YulIdentifier","src":"2692:3:88"},"nativeSrc":"2692:45:88","nodeType":"YulFunctionCall","src":"2692:45:88"},{"kind":"number","nativeSrc":"2739:2:88","nodeType":"YulLiteral","src":"2739:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2688:3:88","nodeType":"YulIdentifier","src":"2688:3:88"},"nativeSrc":"2688:54:88","nodeType":"YulFunctionCall","src":"2688:54:88"},"variableNames":[{"name":"tail","nativeSrc":"2680:4:88","nodeType":"YulIdentifier","src":"2680:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2330:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2420:9:88","nodeType":"YulTypedName","src":"2420:9:88","type":""},{"name":"value0","nativeSrc":"2431:6:88","nodeType":"YulTypedName","src":"2431:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2442:4:88","nodeType":"YulTypedName","src":"2442:4:88","type":""}],"src":"2330:418:88"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let offset := mload(add(headStart, 32))\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        mcopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value1 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516104a73803806104a7833981016040819052610022916102b0565b61002d82825f610034565b50506103ca565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c383836040518060600160405280602781526020016104806027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f856001600160a01b031685604051610199919061037f565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b81526004016101339190610395565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156102c1575f5ffd5b82516001600160a01b03811681146102d7575f5ffd5b60208401519092506001600160401b038111156102f2575f5ffd5b8301601f81018513610302575f5ffd5b80516001600160401b0381111561031b5761031b61029c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103495761034961029c565b604052818152828201602001871015610360575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60aa806103d65f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156070573d5ff35b3d5ffdfea2646970667358221220f88e5167cdfc0f0be784e8e75dc4cf1728f64ca4cc3c8c01c3cfedf77b74754f64736f6c634300081c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x4A7 CODESIZE SUB DUP1 PUSH2 0x4A7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x2B0 JUMP JUMPDEST PUSH2 0x2D DUP3 DUP3 PUSH0 PUSH2 0x34 JUMP JUMPDEST POP POP PUSH2 0x3CA JUMP JUMPDEST PUSH2 0x3D DUP4 PUSH2 0x5F JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x49 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x5A JUMPI PUSH2 0x58 DUP4 DUP4 PUSH2 0x9E JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x68 DUP2 PUSH2 0xCA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x480 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x17D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x13C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x37F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1D1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x1E8 DUP7 DUP4 DUP4 DUP8 PUSH2 0x1F2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x260 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x259 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x133 JUMP JUMPDEST POP DUP2 PUSH2 0x26A JUMP JUMPDEST PUSH2 0x26A DUP4 DUP4 PUSH2 0x272 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x282 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x133 SWAP2 SWAP1 PUSH2 0x395 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2D7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x302 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x31B JUMPI PUSH2 0x31B PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x349 JUMPI PUSH2 0x349 PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x360 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD MCOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xAA DUP1 PUSH2 0x3D6 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 DUP15 MLOAD PUSH8 0xCDFC0F0BE784E8E7 TSTORE 0xC4 0xCF OR 0x28 0xF6 0x4C LOG4 0xCC EXTCODECOPY DUP13 ADD 0xC3 0xCF 0xED 0xF7 PUSH28 0x74754F64736F6C634300081C0033416464726573733A206C6F772D6C PUSH6 0x76656C206465 PUSH13 0x65676174652063616C6C206661 PUSH10 0x6C656400000000000000 ","sourceMap":"567:723:26:-:0;;;958:112;;;;;;;;;;;;;;;;;;:::i;:::-;1024:39;1042:6;1050:5;1057;1024:17;:39::i;:::-;958:112;;567:723;;2057:265:27;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2204:112;2057:265;;;:::o;1771:152::-;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:27;;;;;;;;1771:152;:::o;6674:198:38:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:38:o;1406:259:27:-;-1:-1:-1;;;;;1702:19:38;;;1479:95:27;;;;-1:-1:-1;;;1479:95:27;;1454:2:88;1479:95:27;;;1436:21:88;1493:2;1473:18;;;1466:30;1532:34;1512:18;;;1505:62;-1:-1:-1;;;1583:18:88;;;1576:43;1636:19;;1479:95:27;;;;;;;;;1030:66;1584:74;;-1:-1:-1;;;;;;1584:74:27;-1:-1:-1;;;;;1584:74:27;;;;;;;;;;1406:259::o;7058:325:38:-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:38;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7223:67:38;;-1:-1:-1;7223:67:38;-1:-1:-1;7307:69:38;7334:6;7223:67;;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:38:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:38;;;8113:60;;;;-1:-1:-1;;;8113:60:38;;2174:2:88;8113:60:38;;;2156:21:88;2213:2;2193:18;;;2186:30;2252:31;2232:18;;;2225:59;2301:18;;8113:60:38;1972:353:88;8113:60:38;-1:-1:-1;8208:10:38;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:38;;;;;;;;:::i;14:127:88:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1101;234:6;242;295:2;283:9;274:7;270:23;266:32;263:52;;;311:1;308;301:12;263:52;337:16;;-1:-1:-1;;;;;382:31:88;;372:42;;362:70;;428:1;425;418:12;362:70;500:2;485:18;;479:25;451:5;;-1:-1:-1;;;;;;516:30:88;;513:50;;;559:1;556;549:12;513:50;582:22;;635:4;627:13;;623:27;-1:-1:-1;613:55:88;;664:1;661;654:12;613:55;691:9;;-1:-1:-1;;;;;712:30:88;;709:56;;;745:18;;:::i;:::-;794:2;788:9;886:2;848:17;;-1:-1:-1;;844:31:88;;;877:2;840:40;836:54;824:67;;-1:-1:-1;;;;;906:34:88;;942:22;;;903:62;900:88;;;968:18;;:::i;:::-;1004:2;997:22;1028;;;1069:15;;;1086:2;1065:24;1062:37;-1:-1:-1;1059:57:88;;;1112:1;1109;1102:12;1059:57;1161:6;1156:2;1152;1148:11;1143:2;1135:6;1131:15;1125:43;1214:1;1209:2;1200:6;1192;1188:19;1184:28;1177:39;1235:6;1225:16;;;;;146:1101;;;;;:::o;1666:301::-;1795:3;1833:6;1827:13;1879:6;1872:4;1864:6;1860:17;1855:3;1849:37;1941:1;1905:16;;1930:13;;;-1:-1:-1;1905:16:88;1666:301;-1:-1:-1;1666:301:88:o;2330:418::-;2479:2;2468:9;2461:21;2442:4;2511:6;2505:13;2554:6;2549:2;2538:9;2534:18;2527:34;2613:6;2608:2;2600:6;2596:15;2591:2;2580:9;2576:18;2570:50;2669:1;2664:2;2655:6;2644:9;2640:22;2636:31;2629:42;2739:2;2732;2728:7;2723:2;2715:6;2711:15;2707:29;2696:9;2692:45;2688:54;2680:62;;;2330:418;;;;:::o;:::-;567:723:26;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_4725":{"entryPoint":null,"id":4725,"parameterSlots":0,"returnSlots":0},"@_4733":{"entryPoint":null,"id":4733,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_4738":{"entryPoint":null,"id":4738,"parameterSlots":0,"returnSlots":0},"@_delegate_4698":{"entryPoint":87,"id":4698,"parameterSlots":1,"returnSlots":0},"@_fallback_4717":{"entryPoint":19,"id":4717,"parameterSlots":0,"returnSlots":0},"@_getImplementation_4413":{"entryPoint":null,"id":4413,"parameterSlots":0,"returnSlots":1},"@_implementation_4382":{"entryPoint":33,"id":4382,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_7004":{"entryPoint":null,"id":7004,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156070573d5ff35b3d5ffdfea2646970667358221220f88e5167cdfc0f0be784e8e75dc4cf1728f64ca4cc3c8c01c3cfedf77b74754f64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 DUP15 MLOAD PUSH8 0xCDFC0F0BE784E8E7 TSTORE 0xC4 0xCF OR 0x28 0xF6 0x4C LOG4 0xCC EXTCODECOPY DUP13 ADD 0xC3 0xCF 0xED 0xF7 PUSH28 0x74754F64736F6C634300081C00330000000000000000000000000000 ","sourceMap":"567:723:26:-:0;;;;;;2898:11:28;:9;:11::i;:::-;567:723:26;;2675:11:28;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;1148:140:26:-;1215:12;1246:35;1030:66:27;1254:54;-1:-1:-1;;;;;1254:54:27;;1175:140;1246:35:26;1239:42;;1148:140;:::o;948:895:28:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":[{"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":"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":[{"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4794":{"entryPoint":null,"id":4794,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":99,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":236,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":393,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":469,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":337,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":79,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3942:88","nodeType":"YulBlock","src":"0:3942:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"46:95:88","nodeType":"YulBlock","src":"46:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:88","nodeType":"YulLiteral","src":"63:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:88","nodeType":"YulLiteral","src":"70:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:88","nodeType":"YulLiteral","src":"75:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:88","nodeType":"YulIdentifier","src":"66:3:88"},"nativeSrc":"66:20:88","nodeType":"YulFunctionCall","src":"66:20:88"}],"functionName":{"name":"mstore","nativeSrc":"56:6:88","nodeType":"YulIdentifier","src":"56:6:88"},"nativeSrc":"56:31:88","nodeType":"YulFunctionCall","src":"56:31:88"},"nativeSrc":"56:31:88","nodeType":"YulExpressionStatement","src":"56:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:88","nodeType":"YulLiteral","src":"103:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:88","nodeType":"YulLiteral","src":"106:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:88","nodeType":"YulIdentifier","src":"96:6:88"},"nativeSrc":"96:15:88","nodeType":"YulFunctionCall","src":"96:15:88"},"nativeSrc":"96:15:88","nodeType":"YulExpressionStatement","src":"96:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:88","nodeType":"YulLiteral","src":"127:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:88","nodeType":"YulLiteral","src":"130:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:88","nodeType":"YulIdentifier","src":"120:6:88"},"nativeSrc":"120:15:88","nodeType":"YulFunctionCall","src":"120:15:88"},"nativeSrc":"120:15:88","nodeType":"YulExpressionStatement","src":"120:15:88"}]},"name":"panic_error_0x41","nativeSrc":"14:127:88","nodeType":"YulFunctionDefinition","src":"14:127:88"},{"body":{"nativeSrc":"210:659:88","nodeType":"YulBlock","src":"210:659:88","statements":[{"body":{"nativeSrc":"259:16:88","nodeType":"YulBlock","src":"259:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:88","nodeType":"YulLiteral","src":"268:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:88","nodeType":"YulLiteral","src":"271:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:88","nodeType":"YulIdentifier","src":"261:6:88"},"nativeSrc":"261:12:88","nodeType":"YulFunctionCall","src":"261:12:88"},"nativeSrc":"261:12:88","nodeType":"YulExpressionStatement","src":"261:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:88","nodeType":"YulIdentifier","src":"238:6:88"},{"kind":"number","nativeSrc":"246:4:88","nodeType":"YulLiteral","src":"246:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:88","nodeType":"YulIdentifier","src":"234:3:88"},"nativeSrc":"234:17:88","nodeType":"YulFunctionCall","src":"234:17:88"},{"name":"end","nativeSrc":"253:3:88","nodeType":"YulIdentifier","src":"253:3:88"}],"functionName":{"name":"slt","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:27:88","nodeType":"YulFunctionCall","src":"230:27:88"}],"functionName":{"name":"iszero","nativeSrc":"223:6:88","nodeType":"YulIdentifier","src":"223:6:88"},"nativeSrc":"223:35:88","nodeType":"YulFunctionCall","src":"223:35:88"},"nativeSrc":"220:55:88","nodeType":"YulIf","src":"220:55:88"},{"nativeSrc":"284:27:88","nodeType":"YulVariableDeclaration","src":"284:27:88","value":{"arguments":[{"name":"offset","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}],"functionName":{"name":"mload","nativeSrc":"298:5:88","nodeType":"YulIdentifier","src":"298:5:88"},"nativeSrc":"298:13:88","nodeType":"YulFunctionCall","src":"298:13:88"},"variables":[{"name":"length","nativeSrc":"288:6:88","nodeType":"YulTypedName","src":"288:6:88","type":""}]},{"body":{"nativeSrc":"354:22:88","nodeType":"YulBlock","src":"354:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"356:16:88","nodeType":"YulIdentifier","src":"356:16:88"},"nativeSrc":"356:18:88","nodeType":"YulFunctionCall","src":"356:18:88"},"nativeSrc":"356:18:88","nodeType":"YulExpressionStatement","src":"356:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"326:6:88","nodeType":"YulIdentifier","src":"326:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:2:88","nodeType":"YulLiteral","src":"342:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"346:1:88","nodeType":"YulLiteral","src":"346:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:88","nodeType":"YulIdentifier","src":"338:3:88"},"nativeSrc":"338:10:88","nodeType":"YulFunctionCall","src":"338:10:88"},{"kind":"number","nativeSrc":"350:1:88","nodeType":"YulLiteral","src":"350:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:88","nodeType":"YulIdentifier","src":"334:3:88"},"nativeSrc":"334:18:88","nodeType":"YulFunctionCall","src":"334:18:88"}],"functionName":{"name":"gt","nativeSrc":"323:2:88","nodeType":"YulIdentifier","src":"323:2:88"},"nativeSrc":"323:30:88","nodeType":"YulFunctionCall","src":"323:30:88"},"nativeSrc":"320:56:88","nodeType":"YulIf","src":"320:56:88"},{"nativeSrc":"385:23:88","nodeType":"YulVariableDeclaration","src":"385:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"405:2:88","nodeType":"YulLiteral","src":"405:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"399:5:88","nodeType":"YulIdentifier","src":"399:5:88"},"nativeSrc":"399:9:88","nodeType":"YulFunctionCall","src":"399:9:88"},"variables":[{"name":"memPtr","nativeSrc":"389:6:88","nodeType":"YulTypedName","src":"389:6:88","type":""}]},{"nativeSrc":"417:85:88","nodeType":"YulVariableDeclaration","src":"417:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"439:6:88","nodeType":"YulIdentifier","src":"439:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},{"kind":"number","nativeSrc":"471:4:88","nodeType":"YulLiteral","src":"471:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"459:3:88","nodeType":"YulIdentifier","src":"459:3:88"},"nativeSrc":"459:17:88","nodeType":"YulFunctionCall","src":"459:17:88"},{"arguments":[{"kind":"number","nativeSrc":"482:2:88","nodeType":"YulLiteral","src":"482:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"478:3:88","nodeType":"YulIdentifier","src":"478:3:88"},"nativeSrc":"478:7:88","nodeType":"YulFunctionCall","src":"478:7:88"}],"functionName":{"name":"and","nativeSrc":"455:3:88","nodeType":"YulIdentifier","src":"455:3:88"},"nativeSrc":"455:31:88","nodeType":"YulFunctionCall","src":"455:31:88"},{"kind":"number","nativeSrc":"488:2:88","nodeType":"YulLiteral","src":"488:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"451:3:88","nodeType":"YulIdentifier","src":"451:3:88"},"nativeSrc":"451:40:88","nodeType":"YulFunctionCall","src":"451:40:88"},{"arguments":[{"kind":"number","nativeSrc":"497:2:88","nodeType":"YulLiteral","src":"497:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"493:3:88","nodeType":"YulIdentifier","src":"493:3:88"},"nativeSrc":"493:7:88","nodeType":"YulFunctionCall","src":"493:7:88"}],"functionName":{"name":"and","nativeSrc":"447:3:88","nodeType":"YulIdentifier","src":"447:3:88"},"nativeSrc":"447:54:88","nodeType":"YulFunctionCall","src":"447:54:88"}],"functionName":{"name":"add","nativeSrc":"435:3:88","nodeType":"YulIdentifier","src":"435:3:88"},"nativeSrc":"435:67:88","nodeType":"YulFunctionCall","src":"435:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"421:10:88","nodeType":"YulTypedName","src":"421:10:88","type":""}]},{"body":{"nativeSrc":"577:22:88","nodeType":"YulBlock","src":"577:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"579:16:88","nodeType":"YulIdentifier","src":"579:16:88"},"nativeSrc":"579:18:88","nodeType":"YulFunctionCall","src":"579:18:88"},"nativeSrc":"579:18:88","nodeType":"YulExpressionStatement","src":"579:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"520:10:88","nodeType":"YulIdentifier","src":"520:10:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"540:2:88","nodeType":"YulLiteral","src":"540:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"544:1:88","nodeType":"YulLiteral","src":"544:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"536:3:88","nodeType":"YulIdentifier","src":"536:3:88"},"nativeSrc":"536:10:88","nodeType":"YulFunctionCall","src":"536:10:88"},{"kind":"number","nativeSrc":"548:1:88","nodeType":"YulLiteral","src":"548:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"532:3:88","nodeType":"YulIdentifier","src":"532:3:88"},"nativeSrc":"532:18:88","nodeType":"YulFunctionCall","src":"532:18:88"}],"functionName":{"name":"gt","nativeSrc":"517:2:88","nodeType":"YulIdentifier","src":"517:2:88"},"nativeSrc":"517:34:88","nodeType":"YulFunctionCall","src":"517:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"556:10:88","nodeType":"YulIdentifier","src":"556:10:88"},{"name":"memPtr","nativeSrc":"568:6:88","nodeType":"YulIdentifier","src":"568:6:88"}],"functionName":{"name":"lt","nativeSrc":"553:2:88","nodeType":"YulIdentifier","src":"553:2:88"},"nativeSrc":"553:22:88","nodeType":"YulFunctionCall","src":"553:22:88"}],"functionName":{"name":"or","nativeSrc":"514:2:88","nodeType":"YulIdentifier","src":"514:2:88"},"nativeSrc":"514:62:88","nodeType":"YulFunctionCall","src":"514:62:88"},"nativeSrc":"511:88:88","nodeType":"YulIf","src":"511:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:2:88","nodeType":"YulLiteral","src":"615:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"619:10:88","nodeType":"YulIdentifier","src":"619:10:88"}],"functionName":{"name":"mstore","nativeSrc":"608:6:88","nodeType":"YulIdentifier","src":"608:6:88"},"nativeSrc":"608:22:88","nodeType":"YulFunctionCall","src":"608:22:88"},"nativeSrc":"608:22:88","nodeType":"YulExpressionStatement","src":"608:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"646:6:88","nodeType":"YulIdentifier","src":"646:6:88"},{"name":"length","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"}],"functionName":{"name":"mstore","nativeSrc":"639:6:88","nodeType":"YulIdentifier","src":"639:6:88"},"nativeSrc":"639:22:88","nodeType":"YulFunctionCall","src":"639:22:88"},"nativeSrc":"639:22:88","nodeType":"YulExpressionStatement","src":"639:22:88"},{"body":{"nativeSrc":"713:16:88","nodeType":"YulBlock","src":"713:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"722:1:88","nodeType":"YulLiteral","src":"722:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"725:1:88","nodeType":"YulLiteral","src":"725:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"715:6:88","nodeType":"YulIdentifier","src":"715:6:88"},"nativeSrc":"715:12:88","nodeType":"YulFunctionCall","src":"715:12:88"},"nativeSrc":"715:12:88","nodeType":"YulExpressionStatement","src":"715:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"684:6:88","nodeType":"YulIdentifier","src":"684:6:88"},{"name":"length","nativeSrc":"692:6:88","nodeType":"YulIdentifier","src":"692:6:88"}],"functionName":{"name":"add","nativeSrc":"680:3:88","nodeType":"YulIdentifier","src":"680:3:88"},"nativeSrc":"680:19:88","nodeType":"YulFunctionCall","src":"680:19:88"},{"kind":"number","nativeSrc":"701:4:88","nodeType":"YulLiteral","src":"701:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"676:3:88","nodeType":"YulIdentifier","src":"676:3:88"},"nativeSrc":"676:30:88","nodeType":"YulFunctionCall","src":"676:30:88"},{"name":"end","nativeSrc":"708:3:88","nodeType":"YulIdentifier","src":"708:3:88"}],"functionName":{"name":"gt","nativeSrc":"673:2:88","nodeType":"YulIdentifier","src":"673:2:88"},"nativeSrc":"673:39:88","nodeType":"YulFunctionCall","src":"673:39:88"},"nativeSrc":"670:59:88","nodeType":"YulIf","src":"670:59:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"748:6:88","nodeType":"YulIdentifier","src":"748:6:88"},{"kind":"number","nativeSrc":"756:4:88","nodeType":"YulLiteral","src":"756:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"744:3:88","nodeType":"YulIdentifier","src":"744:3:88"},"nativeSrc":"744:17:88","nodeType":"YulFunctionCall","src":"744:17:88"},{"arguments":[{"name":"offset","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:4:88","nodeType":"YulLiteral","src":"775:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:17:88","nodeType":"YulFunctionCall","src":"763:17:88"},{"name":"length","nativeSrc":"782:6:88","nodeType":"YulIdentifier","src":"782:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"738:5:88","nodeType":"YulIdentifier","src":"738:5:88"},"nativeSrc":"738:51:88","nodeType":"YulFunctionCall","src":"738:51:88"},"nativeSrc":"738:51:88","nodeType":"YulExpressionStatement","src":"738:51:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"813:6:88","nodeType":"YulIdentifier","src":"813:6:88"},{"name":"length","nativeSrc":"821:6:88","nodeType":"YulIdentifier","src":"821:6:88"}],"functionName":{"name":"add","nativeSrc":"809:3:88","nodeType":"YulIdentifier","src":"809:3:88"},"nativeSrc":"809:19:88","nodeType":"YulFunctionCall","src":"809:19:88"},{"kind":"number","nativeSrc":"830:4:88","nodeType":"YulLiteral","src":"830:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"805:3:88","nodeType":"YulIdentifier","src":"805:3:88"},"nativeSrc":"805:30:88","nodeType":"YulFunctionCall","src":"805:30:88"},{"kind":"number","nativeSrc":"837:1:88","nodeType":"YulLiteral","src":"837:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"798:6:88","nodeType":"YulIdentifier","src":"798:6:88"},"nativeSrc":"798:41:88","nodeType":"YulFunctionCall","src":"798:41:88"},"nativeSrc":"798:41:88","nodeType":"YulExpressionStatement","src":"798:41:88"},{"nativeSrc":"848:15:88","nodeType":"YulAssignment","src":"848:15:88","value":{"name":"memPtr","nativeSrc":"857:6:88","nodeType":"YulIdentifier","src":"857:6:88"},"variableNames":[{"name":"array","nativeSrc":"848:5:88","nodeType":"YulIdentifier","src":"848:5:88"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:723:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:88","nodeType":"YulTypedName","src":"184:6:88","type":""},{"name":"end","nativeSrc":"192:3:88","nodeType":"YulTypedName","src":"192:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:88","nodeType":"YulTypedName","src":"200:5:88","type":""}],"src":"146:723:88"},{"body":{"nativeSrc":"992:439:88","nodeType":"YulBlock","src":"992:439:88","statements":[{"body":{"nativeSrc":"1038:16:88","nodeType":"YulBlock","src":"1038:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1047:1:88","nodeType":"YulLiteral","src":"1047:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1050:1:88","nodeType":"YulLiteral","src":"1050:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1040:6:88","nodeType":"YulIdentifier","src":"1040:6:88"},"nativeSrc":"1040:12:88","nodeType":"YulFunctionCall","src":"1040:12:88"},"nativeSrc":"1040:12:88","nodeType":"YulExpressionStatement","src":"1040:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1013:7:88","nodeType":"YulIdentifier","src":"1013:7:88"},{"name":"headStart","nativeSrc":"1022:9:88","nodeType":"YulIdentifier","src":"1022:9:88"}],"functionName":{"name":"sub","nativeSrc":"1009:3:88","nodeType":"YulIdentifier","src":"1009:3:88"},"nativeSrc":"1009:23:88","nodeType":"YulFunctionCall","src":"1009:23:88"},{"kind":"number","nativeSrc":"1034:2:88","nodeType":"YulLiteral","src":"1034:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1005:3:88","nodeType":"YulIdentifier","src":"1005:3:88"},"nativeSrc":"1005:32:88","nodeType":"YulFunctionCall","src":"1005:32:88"},"nativeSrc":"1002:52:88","nodeType":"YulIf","src":"1002:52:88"},{"nativeSrc":"1063:30:88","nodeType":"YulVariableDeclaration","src":"1063:30:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1083:9:88","nodeType":"YulIdentifier","src":"1083:9:88"}],"functionName":{"name":"mload","nativeSrc":"1077:5:88","nodeType":"YulIdentifier","src":"1077:5:88"},"nativeSrc":"1077:16:88","nodeType":"YulFunctionCall","src":"1077:16:88"},"variables":[{"name":"offset","nativeSrc":"1067:6:88","nodeType":"YulTypedName","src":"1067:6:88","type":""}]},{"body":{"nativeSrc":"1136:16:88","nodeType":"YulBlock","src":"1136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1145:1:88","nodeType":"YulLiteral","src":"1145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1148:1:88","nodeType":"YulLiteral","src":"1148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1138:6:88","nodeType":"YulIdentifier","src":"1138:6:88"},"nativeSrc":"1138:12:88","nodeType":"YulFunctionCall","src":"1138:12:88"},"nativeSrc":"1138:12:88","nodeType":"YulExpressionStatement","src":"1138:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1108:6:88","nodeType":"YulIdentifier","src":"1108:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1124:2:88","nodeType":"YulLiteral","src":"1124:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1128:1:88","nodeType":"YulLiteral","src":"1128:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1120:3:88","nodeType":"YulIdentifier","src":"1120:3:88"},"nativeSrc":"1120:10:88","nodeType":"YulFunctionCall","src":"1120:10:88"},{"kind":"number","nativeSrc":"1132:1:88","nodeType":"YulLiteral","src":"1132:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1116:3:88","nodeType":"YulIdentifier","src":"1116:3:88"},"nativeSrc":"1116:18:88","nodeType":"YulFunctionCall","src":"1116:18:88"}],"functionName":{"name":"gt","nativeSrc":"1105:2:88","nodeType":"YulIdentifier","src":"1105:2:88"},"nativeSrc":"1105:30:88","nodeType":"YulFunctionCall","src":"1105:30:88"},"nativeSrc":"1102:50:88","nodeType":"YulIf","src":"1102:50:88"},{"nativeSrc":"1161:71:88","nodeType":"YulAssignment","src":"1161:71:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1204:9:88","nodeType":"YulIdentifier","src":"1204:9:88"},{"name":"offset","nativeSrc":"1215:6:88","nodeType":"YulIdentifier","src":"1215:6:88"}],"functionName":{"name":"add","nativeSrc":"1200:3:88","nodeType":"YulIdentifier","src":"1200:3:88"},"nativeSrc":"1200:22:88","nodeType":"YulFunctionCall","src":"1200:22:88"},{"name":"dataEnd","nativeSrc":"1224:7:88","nodeType":"YulIdentifier","src":"1224:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1171:28:88","nodeType":"YulIdentifier","src":"1171:28:88"},"nativeSrc":"1171:61:88","nodeType":"YulFunctionCall","src":"1171:61:88"},"variableNames":[{"name":"value0","nativeSrc":"1161:6:88","nodeType":"YulIdentifier","src":"1161:6:88"}]},{"nativeSrc":"1241:41:88","nodeType":"YulVariableDeclaration","src":"1241:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1267:9:88","nodeType":"YulIdentifier","src":"1267:9:88"},{"kind":"number","nativeSrc":"1278:2:88","nodeType":"YulLiteral","src":"1278:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1263:3:88","nodeType":"YulIdentifier","src":"1263:3:88"},"nativeSrc":"1263:18:88","nodeType":"YulFunctionCall","src":"1263:18:88"}],"functionName":{"name":"mload","nativeSrc":"1257:5:88","nodeType":"YulIdentifier","src":"1257:5:88"},"nativeSrc":"1257:25:88","nodeType":"YulFunctionCall","src":"1257:25:88"},"variables":[{"name":"offset_1","nativeSrc":"1245:8:88","nodeType":"YulTypedName","src":"1245:8:88","type":""}]},{"body":{"nativeSrc":"1327:16:88","nodeType":"YulBlock","src":"1327:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1336:1:88","nodeType":"YulLiteral","src":"1336:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1339:1:88","nodeType":"YulLiteral","src":"1339:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1329:6:88","nodeType":"YulIdentifier","src":"1329:6:88"},"nativeSrc":"1329:12:88","nodeType":"YulFunctionCall","src":"1329:12:88"},"nativeSrc":"1329:12:88","nodeType":"YulExpressionStatement","src":"1329:12:88"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1297:8:88","nodeType":"YulIdentifier","src":"1297:8:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1315:2:88","nodeType":"YulLiteral","src":"1315:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1319:1:88","nodeType":"YulLiteral","src":"1319:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1311:3:88","nodeType":"YulIdentifier","src":"1311:3:88"},"nativeSrc":"1311:10:88","nodeType":"YulFunctionCall","src":"1311:10:88"},{"kind":"number","nativeSrc":"1323:1:88","nodeType":"YulLiteral","src":"1323:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1307:3:88","nodeType":"YulIdentifier","src":"1307:3:88"},"nativeSrc":"1307:18:88","nodeType":"YulFunctionCall","src":"1307:18:88"}],"functionName":{"name":"gt","nativeSrc":"1294:2:88","nodeType":"YulIdentifier","src":"1294:2:88"},"nativeSrc":"1294:32:88","nodeType":"YulFunctionCall","src":"1294:32:88"},"nativeSrc":"1291:52:88","nodeType":"YulIf","src":"1291:52:88"},{"nativeSrc":"1352:73:88","nodeType":"YulAssignment","src":"1352:73:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1395:9:88","nodeType":"YulIdentifier","src":"1395:9:88"},{"name":"offset_1","nativeSrc":"1406:8:88","nodeType":"YulIdentifier","src":"1406:8:88"}],"functionName":{"name":"add","nativeSrc":"1391:3:88","nodeType":"YulIdentifier","src":"1391:3:88"},"nativeSrc":"1391:24:88","nodeType":"YulFunctionCall","src":"1391:24:88"},{"name":"dataEnd","nativeSrc":"1417:7:88","nodeType":"YulIdentifier","src":"1417:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1362:28:88","nodeType":"YulIdentifier","src":"1362:28:88"},"nativeSrc":"1362:63:88","nodeType":"YulFunctionCall","src":"1362:63:88"},"variableNames":[{"name":"value1","nativeSrc":"1352:6:88","nodeType":"YulIdentifier","src":"1352:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"874:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"950:9:88","nodeType":"YulTypedName","src":"950:9:88","type":""},{"name":"dataEnd","nativeSrc":"961:7:88","nodeType":"YulTypedName","src":"961:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"973:6:88","nodeType":"YulTypedName","src":"973:6:88","type":""},{"name":"value1","nativeSrc":"981:6:88","nodeType":"YulTypedName","src":"981:6:88","type":""}],"src":"874:557:88"},{"body":{"nativeSrc":"1491:325:88","nodeType":"YulBlock","src":"1491:325:88","statements":[{"nativeSrc":"1501:22:88","nodeType":"YulAssignment","src":"1501:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"1515:1:88","nodeType":"YulLiteral","src":"1515:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"1518:4:88","nodeType":"YulIdentifier","src":"1518:4:88"}],"functionName":{"name":"shr","nativeSrc":"1511:3:88","nodeType":"YulIdentifier","src":"1511:3:88"},"nativeSrc":"1511:12:88","nodeType":"YulFunctionCall","src":"1511:12:88"},"variableNames":[{"name":"length","nativeSrc":"1501:6:88","nodeType":"YulIdentifier","src":"1501:6:88"}]},{"nativeSrc":"1532:38:88","nodeType":"YulVariableDeclaration","src":"1532:38:88","value":{"arguments":[{"name":"data","nativeSrc":"1562:4:88","nodeType":"YulIdentifier","src":"1562:4:88"},{"kind":"number","nativeSrc":"1568:1:88","nodeType":"YulLiteral","src":"1568:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1558:3:88","nodeType":"YulIdentifier","src":"1558:3:88"},"nativeSrc":"1558:12:88","nodeType":"YulFunctionCall","src":"1558:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1536:18:88","nodeType":"YulTypedName","src":"1536:18:88","type":""}]},{"body":{"nativeSrc":"1609:31:88","nodeType":"YulBlock","src":"1609:31:88","statements":[{"nativeSrc":"1611:27:88","nodeType":"YulAssignment","src":"1611:27:88","value":{"arguments":[{"name":"length","nativeSrc":"1625:6:88","nodeType":"YulIdentifier","src":"1625:6:88"},{"kind":"number","nativeSrc":"1633:4:88","nodeType":"YulLiteral","src":"1633:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1621:3:88","nodeType":"YulIdentifier","src":"1621:3:88"},"nativeSrc":"1621:17:88","nodeType":"YulFunctionCall","src":"1621:17:88"},"variableNames":[{"name":"length","nativeSrc":"1611:6:88","nodeType":"YulIdentifier","src":"1611:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1589:18:88","nodeType":"YulIdentifier","src":"1589:18:88"}],"functionName":{"name":"iszero","nativeSrc":"1582:6:88","nodeType":"YulIdentifier","src":"1582:6:88"},"nativeSrc":"1582:26:88","nodeType":"YulFunctionCall","src":"1582:26:88"},"nativeSrc":"1579:61:88","nodeType":"YulIf","src":"1579:61:88"},{"body":{"nativeSrc":"1699:111:88","nodeType":"YulBlock","src":"1699:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1720:1:88","nodeType":"YulLiteral","src":"1720:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1727:3:88","nodeType":"YulLiteral","src":"1727:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1732:10:88","nodeType":"YulLiteral","src":"1732:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1723:3:88","nodeType":"YulIdentifier","src":"1723:3:88"},"nativeSrc":"1723:20:88","nodeType":"YulFunctionCall","src":"1723:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1713:6:88","nodeType":"YulIdentifier","src":"1713:6:88"},"nativeSrc":"1713:31:88","nodeType":"YulFunctionCall","src":"1713:31:88"},"nativeSrc":"1713:31:88","nodeType":"YulExpressionStatement","src":"1713:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1764:1:88","nodeType":"YulLiteral","src":"1764:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1767:4:88","nodeType":"YulLiteral","src":"1767:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1757:6:88","nodeType":"YulIdentifier","src":"1757:6:88"},"nativeSrc":"1757:15:88","nodeType":"YulFunctionCall","src":"1757:15:88"},"nativeSrc":"1757:15:88","nodeType":"YulExpressionStatement","src":"1757:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1792:1:88","nodeType":"YulLiteral","src":"1792:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1795:4:88","nodeType":"YulLiteral","src":"1795:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1785:6:88","nodeType":"YulIdentifier","src":"1785:6:88"},"nativeSrc":"1785:15:88","nodeType":"YulFunctionCall","src":"1785:15:88"},"nativeSrc":"1785:15:88","nodeType":"YulExpressionStatement","src":"1785:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1655:18:88","nodeType":"YulIdentifier","src":"1655:18:88"},{"arguments":[{"name":"length","nativeSrc":"1678:6:88","nodeType":"YulIdentifier","src":"1678:6:88"},{"kind":"number","nativeSrc":"1686:2:88","nodeType":"YulLiteral","src":"1686:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1675:2:88","nodeType":"YulIdentifier","src":"1675:2:88"},"nativeSrc":"1675:14:88","nodeType":"YulFunctionCall","src":"1675:14:88"}],"functionName":{"name":"eq","nativeSrc":"1652:2:88","nodeType":"YulIdentifier","src":"1652:2:88"},"nativeSrc":"1652:38:88","nodeType":"YulFunctionCall","src":"1652:38:88"},"nativeSrc":"1649:161:88","nodeType":"YulIf","src":"1649:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"1436:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1471:4:88","nodeType":"YulTypedName","src":"1471:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1480:6:88","nodeType":"YulTypedName","src":"1480:6:88","type":""}],"src":"1436:380:88"},{"body":{"nativeSrc":"1877:65:88","nodeType":"YulBlock","src":"1877:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1894:1:88","nodeType":"YulLiteral","src":"1894:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"1897:3:88","nodeType":"YulIdentifier","src":"1897:3:88"}],"functionName":{"name":"mstore","nativeSrc":"1887:6:88","nodeType":"YulIdentifier","src":"1887:6:88"},"nativeSrc":"1887:14:88","nodeType":"YulFunctionCall","src":"1887:14:88"},"nativeSrc":"1887:14:88","nodeType":"YulExpressionStatement","src":"1887:14:88"},{"nativeSrc":"1910:26:88","nodeType":"YulAssignment","src":"1910:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"1928:1:88","nodeType":"YulLiteral","src":"1928:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1931:4:88","nodeType":"YulLiteral","src":"1931:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1918:9:88","nodeType":"YulIdentifier","src":"1918:9:88"},"nativeSrc":"1918:18:88","nodeType":"YulFunctionCall","src":"1918:18:88"},"variableNames":[{"name":"data","nativeSrc":"1910:4:88","nodeType":"YulIdentifier","src":"1910:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"1821:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"1860:3:88","nodeType":"YulTypedName","src":"1860:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"1868:4:88","nodeType":"YulTypedName","src":"1868:4:88","type":""}],"src":"1821:121:88"},{"body":{"nativeSrc":"2028:437:88","nodeType":"YulBlock","src":"2028:437:88","statements":[{"body":{"nativeSrc":"2061:398:88","nodeType":"YulBlock","src":"2061:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2082:1:88","nodeType":"YulLiteral","src":"2082:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"2085:5:88","nodeType":"YulIdentifier","src":"2085:5:88"}],"functionName":{"name":"mstore","nativeSrc":"2075:6:88","nodeType":"YulIdentifier","src":"2075:6:88"},"nativeSrc":"2075:16:88","nodeType":"YulFunctionCall","src":"2075:16:88"},"nativeSrc":"2075:16:88","nodeType":"YulExpressionStatement","src":"2075:16:88"},{"nativeSrc":"2104:30:88","nodeType":"YulVariableDeclaration","src":"2104:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"2126:1:88","nodeType":"YulLiteral","src":"2126:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2129:4:88","nodeType":"YulLiteral","src":"2129:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2116:9:88","nodeType":"YulIdentifier","src":"2116:9:88"},"nativeSrc":"2116:18:88","nodeType":"YulFunctionCall","src":"2116:18:88"},"variables":[{"name":"data","nativeSrc":"2108:4:88","nodeType":"YulTypedName","src":"2108:4:88","type":""}]},{"nativeSrc":"2147:57:88","nodeType":"YulVariableDeclaration","src":"2147:57:88","value":{"arguments":[{"name":"data","nativeSrc":"2170:4:88","nodeType":"YulIdentifier","src":"2170:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2180:1:88","nodeType":"YulLiteral","src":"2180:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2187:10:88","nodeType":"YulIdentifier","src":"2187:10:88"},{"kind":"number","nativeSrc":"2199:2:88","nodeType":"YulLiteral","src":"2199:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2183:3:88","nodeType":"YulIdentifier","src":"2183:3:88"},"nativeSrc":"2183:19:88","nodeType":"YulFunctionCall","src":"2183:19:88"}],"functionName":{"name":"shr","nativeSrc":"2176:3:88","nodeType":"YulIdentifier","src":"2176:3:88"},"nativeSrc":"2176:27:88","nodeType":"YulFunctionCall","src":"2176:27:88"}],"functionName":{"name":"add","nativeSrc":"2166:3:88","nodeType":"YulIdentifier","src":"2166:3:88"},"nativeSrc":"2166:38:88","nodeType":"YulFunctionCall","src":"2166:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"2151:11:88","nodeType":"YulTypedName","src":"2151:11:88","type":""}]},{"body":{"nativeSrc":"2241:23:88","nodeType":"YulBlock","src":"2241:23:88","statements":[{"nativeSrc":"2243:19:88","nodeType":"YulAssignment","src":"2243:19:88","value":{"name":"data","nativeSrc":"2258:4:88","nodeType":"YulIdentifier","src":"2258:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"2243:11:88","nodeType":"YulIdentifier","src":"2243:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2223:10:88","nodeType":"YulIdentifier","src":"2223:10:88"},{"kind":"number","nativeSrc":"2235:4:88","nodeType":"YulLiteral","src":"2235:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2220:2:88","nodeType":"YulIdentifier","src":"2220:2:88"},"nativeSrc":"2220:20:88","nodeType":"YulFunctionCall","src":"2220:20:88"},"nativeSrc":"2217:47:88","nodeType":"YulIf","src":"2217:47:88"},{"nativeSrc":"2277:41:88","nodeType":"YulVariableDeclaration","src":"2277:41:88","value":{"arguments":[{"name":"data","nativeSrc":"2291:4:88","nodeType":"YulIdentifier","src":"2291:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2301:1:88","nodeType":"YulLiteral","src":"2301:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2308:3:88","nodeType":"YulIdentifier","src":"2308:3:88"},{"kind":"number","nativeSrc":"2313:2:88","nodeType":"YulLiteral","src":"2313:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2304:3:88","nodeType":"YulIdentifier","src":"2304:3:88"},"nativeSrc":"2304:12:88","nodeType":"YulFunctionCall","src":"2304:12:88"}],"functionName":{"name":"shr","nativeSrc":"2297:3:88","nodeType":"YulIdentifier","src":"2297:3:88"},"nativeSrc":"2297:20:88","nodeType":"YulFunctionCall","src":"2297:20:88"}],"functionName":{"name":"add","nativeSrc":"2287:3:88","nodeType":"YulIdentifier","src":"2287:3:88"},"nativeSrc":"2287:31:88","nodeType":"YulFunctionCall","src":"2287:31:88"},"variables":[{"name":"_1","nativeSrc":"2281:2:88","nodeType":"YulTypedName","src":"2281:2:88","type":""}]},{"nativeSrc":"2331:24:88","nodeType":"YulVariableDeclaration","src":"2331:24:88","value":{"name":"deleteStart","nativeSrc":"2344:11:88","nodeType":"YulIdentifier","src":"2344:11:88"},"variables":[{"name":"start","nativeSrc":"2335:5:88","nodeType":"YulTypedName","src":"2335:5:88","type":""}]},{"body":{"nativeSrc":"2429:20:88","nodeType":"YulBlock","src":"2429:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2438:5:88","nodeType":"YulIdentifier","src":"2438:5:88"},{"kind":"number","nativeSrc":"2445:1:88","nodeType":"YulLiteral","src":"2445:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"2431:6:88","nodeType":"YulIdentifier","src":"2431:6:88"},"nativeSrc":"2431:16:88","nodeType":"YulFunctionCall","src":"2431:16:88"},"nativeSrc":"2431:16:88","nodeType":"YulExpressionStatement","src":"2431:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2379:5:88","nodeType":"YulIdentifier","src":"2379:5:88"},{"name":"_1","nativeSrc":"2386:2:88","nodeType":"YulIdentifier","src":"2386:2:88"}],"functionName":{"name":"lt","nativeSrc":"2376:2:88","nodeType":"YulIdentifier","src":"2376:2:88"},"nativeSrc":"2376:13:88","nodeType":"YulFunctionCall","src":"2376:13:88"},"nativeSrc":"2368:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"2390:26:88","nodeType":"YulBlock","src":"2390:26:88","statements":[{"nativeSrc":"2392:22:88","nodeType":"YulAssignment","src":"2392:22:88","value":{"arguments":[{"name":"start","nativeSrc":"2405:5:88","nodeType":"YulIdentifier","src":"2405:5:88"},{"kind":"number","nativeSrc":"2412:1:88","nodeType":"YulLiteral","src":"2412:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2401:3:88","nodeType":"YulIdentifier","src":"2401:3:88"},"nativeSrc":"2401:13:88","nodeType":"YulFunctionCall","src":"2401:13:88"},"variableNames":[{"name":"start","nativeSrc":"2392:5:88","nodeType":"YulIdentifier","src":"2392:5:88"}]}]},"pre":{"nativeSrc":"2372:3:88","nodeType":"YulBlock","src":"2372:3:88","statements":[]},"src":"2368:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2044:3:88","nodeType":"YulIdentifier","src":"2044:3:88"},{"kind":"number","nativeSrc":"2049:2:88","nodeType":"YulLiteral","src":"2049:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2041:2:88","nodeType":"YulIdentifier","src":"2041:2:88"},"nativeSrc":"2041:11:88","nodeType":"YulFunctionCall","src":"2041:11:88"},"nativeSrc":"2038:421:88","nodeType":"YulIf","src":"2038:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"1947:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2000:5:88","nodeType":"YulTypedName","src":"2000:5:88","type":""},{"name":"len","nativeSrc":"2007:3:88","nodeType":"YulTypedName","src":"2007:3:88","type":""},{"name":"startIndex","nativeSrc":"2012:10:88","nodeType":"YulTypedName","src":"2012:10:88","type":""}],"src":"1947:518:88"},{"body":{"nativeSrc":"2555:81:88","nodeType":"YulBlock","src":"2555:81:88","statements":[{"nativeSrc":"2565:65:88","nodeType":"YulAssignment","src":"2565:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2580:4:88","nodeType":"YulIdentifier","src":"2580:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2598:1:88","nodeType":"YulLiteral","src":"2598:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"2601:3:88","nodeType":"YulIdentifier","src":"2601:3:88"}],"functionName":{"name":"shl","nativeSrc":"2594:3:88","nodeType":"YulIdentifier","src":"2594:3:88"},"nativeSrc":"2594:11:88","nodeType":"YulFunctionCall","src":"2594:11:88"},{"arguments":[{"kind":"number","nativeSrc":"2611:1:88","nodeType":"YulLiteral","src":"2611:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2607:3:88","nodeType":"YulIdentifier","src":"2607:3:88"},"nativeSrc":"2607:6:88","nodeType":"YulFunctionCall","src":"2607:6:88"}],"functionName":{"name":"shr","nativeSrc":"2590:3:88","nodeType":"YulIdentifier","src":"2590:3:88"},"nativeSrc":"2590:24:88","nodeType":"YulFunctionCall","src":"2590:24:88"}],"functionName":{"name":"not","nativeSrc":"2586:3:88","nodeType":"YulIdentifier","src":"2586:3:88"},"nativeSrc":"2586:29:88","nodeType":"YulFunctionCall","src":"2586:29:88"}],"functionName":{"name":"and","nativeSrc":"2576:3:88","nodeType":"YulIdentifier","src":"2576:3:88"},"nativeSrc":"2576:40:88","nodeType":"YulFunctionCall","src":"2576:40:88"},{"arguments":[{"kind":"number","nativeSrc":"2622:1:88","nodeType":"YulLiteral","src":"2622:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"2625:3:88","nodeType":"YulIdentifier","src":"2625:3:88"}],"functionName":{"name":"shl","nativeSrc":"2618:3:88","nodeType":"YulIdentifier","src":"2618:3:88"},"nativeSrc":"2618:11:88","nodeType":"YulFunctionCall","src":"2618:11:88"}],"functionName":{"name":"or","nativeSrc":"2573:2:88","nodeType":"YulIdentifier","src":"2573:2:88"},"nativeSrc":"2573:57:88","nodeType":"YulFunctionCall","src":"2573:57:88"},"variableNames":[{"name":"used","nativeSrc":"2565:4:88","nodeType":"YulIdentifier","src":"2565:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2470:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2532:4:88","nodeType":"YulTypedName","src":"2532:4:88","type":""},{"name":"len","nativeSrc":"2538:3:88","nodeType":"YulTypedName","src":"2538:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2546:4:88","nodeType":"YulTypedName","src":"2546:4:88","type":""}],"src":"2470:166:88"},{"body":{"nativeSrc":"2737:1203:88","nodeType":"YulBlock","src":"2737:1203:88","statements":[{"nativeSrc":"2747:24:88","nodeType":"YulVariableDeclaration","src":"2747:24:88","value":{"arguments":[{"name":"src","nativeSrc":"2767:3:88","nodeType":"YulIdentifier","src":"2767:3:88"}],"functionName":{"name":"mload","nativeSrc":"2761:5:88","nodeType":"YulIdentifier","src":"2761:5:88"},"nativeSrc":"2761:10:88","nodeType":"YulFunctionCall","src":"2761:10:88"},"variables":[{"name":"newLen","nativeSrc":"2751:6:88","nodeType":"YulTypedName","src":"2751:6:88","type":""}]},{"body":{"nativeSrc":"2814:22:88","nodeType":"YulBlock","src":"2814:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2816:16:88","nodeType":"YulIdentifier","src":"2816:16:88"},"nativeSrc":"2816:18:88","nodeType":"YulFunctionCall","src":"2816:18:88"},"nativeSrc":"2816:18:88","nodeType":"YulExpressionStatement","src":"2816:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"2786:6:88","nodeType":"YulIdentifier","src":"2786:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2802:2:88","nodeType":"YulLiteral","src":"2802:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"2806:1:88","nodeType":"YulLiteral","src":"2806:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2798:3:88","nodeType":"YulIdentifier","src":"2798:3:88"},"nativeSrc":"2798:10:88","nodeType":"YulFunctionCall","src":"2798:10:88"},{"kind":"number","nativeSrc":"2810:1:88","nodeType":"YulLiteral","src":"2810:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2794:3:88","nodeType":"YulIdentifier","src":"2794:3:88"},"nativeSrc":"2794:18:88","nodeType":"YulFunctionCall","src":"2794:18:88"}],"functionName":{"name":"gt","nativeSrc":"2783:2:88","nodeType":"YulIdentifier","src":"2783:2:88"},"nativeSrc":"2783:30:88","nodeType":"YulFunctionCall","src":"2783:30:88"},"nativeSrc":"2780:56:88","nodeType":"YulIf","src":"2780:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2889:4:88","nodeType":"YulIdentifier","src":"2889:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"2927:4:88","nodeType":"YulIdentifier","src":"2927:4:88"}],"functionName":{"name":"sload","nativeSrc":"2921:5:88","nodeType":"YulIdentifier","src":"2921:5:88"},"nativeSrc":"2921:11:88","nodeType":"YulFunctionCall","src":"2921:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"2895:25:88","nodeType":"YulIdentifier","src":"2895:25:88"},"nativeSrc":"2895:38:88","nodeType":"YulFunctionCall","src":"2895:38:88"},{"name":"newLen","nativeSrc":"2935:6:88","nodeType":"YulIdentifier","src":"2935:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2845:43:88","nodeType":"YulIdentifier","src":"2845:43:88"},"nativeSrc":"2845:97:88","nodeType":"YulFunctionCall","src":"2845:97:88"},"nativeSrc":"2845:97:88","nodeType":"YulExpressionStatement","src":"2845:97:88"},{"nativeSrc":"2951:18:88","nodeType":"YulVariableDeclaration","src":"2951:18:88","value":{"kind":"number","nativeSrc":"2968:1:88","nodeType":"YulLiteral","src":"2968:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"2955:9:88","nodeType":"YulTypedName","src":"2955:9:88","type":""}]},{"nativeSrc":"2978:17:88","nodeType":"YulAssignment","src":"2978:17:88","value":{"kind":"number","nativeSrc":"2991:4:88","nodeType":"YulLiteral","src":"2991:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"2978:9:88","nodeType":"YulIdentifier","src":"2978:9:88"}]},{"cases":[{"body":{"nativeSrc":"3041:642:88","nodeType":"YulBlock","src":"3041:642:88","statements":[{"nativeSrc":"3055:35:88","nodeType":"YulVariableDeclaration","src":"3055:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"3074:6:88","nodeType":"YulIdentifier","src":"3074:6:88"},{"arguments":[{"kind":"number","nativeSrc":"3086:2:88","nodeType":"YulLiteral","src":"3086:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3082:3:88","nodeType":"YulIdentifier","src":"3082:3:88"},"nativeSrc":"3082:7:88","nodeType":"YulFunctionCall","src":"3082:7:88"}],"functionName":{"name":"and","nativeSrc":"3070:3:88","nodeType":"YulIdentifier","src":"3070:3:88"},"nativeSrc":"3070:20:88","nodeType":"YulFunctionCall","src":"3070:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"3059:7:88","nodeType":"YulTypedName","src":"3059:7:88","type":""}]},{"nativeSrc":"3103:49:88","nodeType":"YulVariableDeclaration","src":"3103:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"3147:4:88","nodeType":"YulIdentifier","src":"3147:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3117:29:88","nodeType":"YulIdentifier","src":"3117:29:88"},"nativeSrc":"3117:35:88","nodeType":"YulFunctionCall","src":"3117:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"3107:6:88","nodeType":"YulTypedName","src":"3107:6:88","type":""}]},{"nativeSrc":"3165:10:88","nodeType":"YulVariableDeclaration","src":"3165:10:88","value":{"kind":"number","nativeSrc":"3174:1:88","nodeType":"YulLiteral","src":"3174:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3169:1:88","nodeType":"YulTypedName","src":"3169:1:88","type":""}]},{"body":{"nativeSrc":"3245:165:88","nodeType":"YulBlock","src":"3245:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3270:6:88","nodeType":"YulIdentifier","src":"3270:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3288:3:88","nodeType":"YulIdentifier","src":"3288:3:88"},{"name":"srcOffset","nativeSrc":"3293:9:88","nodeType":"YulIdentifier","src":"3293:9:88"}],"functionName":{"name":"add","nativeSrc":"3284:3:88","nodeType":"YulIdentifier","src":"3284:3:88"},"nativeSrc":"3284:19:88","nodeType":"YulFunctionCall","src":"3284:19:88"}],"functionName":{"name":"mload","nativeSrc":"3278:5:88","nodeType":"YulIdentifier","src":"3278:5:88"},"nativeSrc":"3278:26:88","nodeType":"YulFunctionCall","src":"3278:26:88"}],"functionName":{"name":"sstore","nativeSrc":"3263:6:88","nodeType":"YulIdentifier","src":"3263:6:88"},"nativeSrc":"3263:42:88","nodeType":"YulFunctionCall","src":"3263:42:88"},"nativeSrc":"3263:42:88","nodeType":"YulExpressionStatement","src":"3263:42:88"},{"nativeSrc":"3322:24:88","nodeType":"YulAssignment","src":"3322:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3336:6:88","nodeType":"YulIdentifier","src":"3336:6:88"},{"kind":"number","nativeSrc":"3344:1:88","nodeType":"YulLiteral","src":"3344:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3332:3:88","nodeType":"YulIdentifier","src":"3332:3:88"},"nativeSrc":"3332:14:88","nodeType":"YulFunctionCall","src":"3332:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"3322:6:88","nodeType":"YulIdentifier","src":"3322:6:88"}]},{"nativeSrc":"3363:33:88","nodeType":"YulAssignment","src":"3363:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3380:9:88","nodeType":"YulIdentifier","src":"3380:9:88"},{"kind":"number","nativeSrc":"3391:4:88","nodeType":"YulLiteral","src":"3391:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3376:3:88","nodeType":"YulIdentifier","src":"3376:3:88"},"nativeSrc":"3376:20:88","nodeType":"YulFunctionCall","src":"3376:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"3363:9:88","nodeType":"YulIdentifier","src":"3363:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3199:1:88","nodeType":"YulIdentifier","src":"3199:1:88"},{"name":"loopEnd","nativeSrc":"3202:7:88","nodeType":"YulIdentifier","src":"3202:7:88"}],"functionName":{"name":"lt","nativeSrc":"3196:2:88","nodeType":"YulIdentifier","src":"3196:2:88"},"nativeSrc":"3196:14:88","nodeType":"YulFunctionCall","src":"3196:14:88"},"nativeSrc":"3188:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"3211:21:88","nodeType":"YulBlock","src":"3211:21:88","statements":[{"nativeSrc":"3213:17:88","nodeType":"YulAssignment","src":"3213:17:88","value":{"arguments":[{"name":"i","nativeSrc":"3222:1:88","nodeType":"YulIdentifier","src":"3222:1:88"},{"kind":"number","nativeSrc":"3225:4:88","nodeType":"YulLiteral","src":"3225:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3218:3:88","nodeType":"YulIdentifier","src":"3218:3:88"},"nativeSrc":"3218:12:88","nodeType":"YulFunctionCall","src":"3218:12:88"},"variableNames":[{"name":"i","nativeSrc":"3213:1:88","nodeType":"YulIdentifier","src":"3213:1:88"}]}]},"pre":{"nativeSrc":"3192:3:88","nodeType":"YulBlock","src":"3192:3:88","statements":[]},"src":"3188:222:88"},{"body":{"nativeSrc":"3458:166:88","nodeType":"YulBlock","src":"3458:166:88","statements":[{"nativeSrc":"3476:43:88","nodeType":"YulVariableDeclaration","src":"3476:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3503:3:88","nodeType":"YulIdentifier","src":"3503:3:88"},{"name":"srcOffset","nativeSrc":"3508:9:88","nodeType":"YulIdentifier","src":"3508:9:88"}],"functionName":{"name":"add","nativeSrc":"3499:3:88","nodeType":"YulIdentifier","src":"3499:3:88"},"nativeSrc":"3499:19:88","nodeType":"YulFunctionCall","src":"3499:19:88"}],"functionName":{"name":"mload","nativeSrc":"3493:5:88","nodeType":"YulIdentifier","src":"3493:5:88"},"nativeSrc":"3493:26:88","nodeType":"YulFunctionCall","src":"3493:26:88"},"variables":[{"name":"lastValue","nativeSrc":"3480:9:88","nodeType":"YulTypedName","src":"3480:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3543:6:88","nodeType":"YulIdentifier","src":"3543:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"3555:9:88","nodeType":"YulIdentifier","src":"3555:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3582:1:88","nodeType":"YulLiteral","src":"3582:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"3585:6:88","nodeType":"YulIdentifier","src":"3585:6:88"}],"functionName":{"name":"shl","nativeSrc":"3578:3:88","nodeType":"YulIdentifier","src":"3578:3:88"},"nativeSrc":"3578:14:88","nodeType":"YulFunctionCall","src":"3578:14:88"},{"kind":"number","nativeSrc":"3594:3:88","nodeType":"YulLiteral","src":"3594:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3574:3:88","nodeType":"YulIdentifier","src":"3574:3:88"},"nativeSrc":"3574:24:88","nodeType":"YulFunctionCall","src":"3574:24:88"},{"arguments":[{"kind":"number","nativeSrc":"3604:1:88","nodeType":"YulLiteral","src":"3604:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3600:3:88","nodeType":"YulIdentifier","src":"3600:3:88"},"nativeSrc":"3600:6:88","nodeType":"YulFunctionCall","src":"3600:6:88"}],"functionName":{"name":"shr","nativeSrc":"3570:3:88","nodeType":"YulIdentifier","src":"3570:3:88"},"nativeSrc":"3570:37:88","nodeType":"YulFunctionCall","src":"3570:37:88"}],"functionName":{"name":"not","nativeSrc":"3566:3:88","nodeType":"YulIdentifier","src":"3566:3:88"},"nativeSrc":"3566:42:88","nodeType":"YulFunctionCall","src":"3566:42:88"}],"functionName":{"name":"and","nativeSrc":"3551:3:88","nodeType":"YulIdentifier","src":"3551:3:88"},"nativeSrc":"3551:58:88","nodeType":"YulFunctionCall","src":"3551:58:88"}],"functionName":{"name":"sstore","nativeSrc":"3536:6:88","nodeType":"YulIdentifier","src":"3536:6:88"},"nativeSrc":"3536:74:88","nodeType":"YulFunctionCall","src":"3536:74:88"},"nativeSrc":"3536:74:88","nodeType":"YulExpressionStatement","src":"3536:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3429:7:88","nodeType":"YulIdentifier","src":"3429:7:88"},{"name":"newLen","nativeSrc":"3438:6:88","nodeType":"YulIdentifier","src":"3438:6:88"}],"functionName":{"name":"lt","nativeSrc":"3426:2:88","nodeType":"YulIdentifier","src":"3426:2:88"},"nativeSrc":"3426:19:88","nodeType":"YulFunctionCall","src":"3426:19:88"},"nativeSrc":"3423:201:88","nodeType":"YulIf","src":"3423:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3644:4:88","nodeType":"YulIdentifier","src":"3644:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3658:1:88","nodeType":"YulLiteral","src":"3658:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"3661:6:88","nodeType":"YulIdentifier","src":"3661:6:88"}],"functionName":{"name":"shl","nativeSrc":"3654:3:88","nodeType":"YulIdentifier","src":"3654:3:88"},"nativeSrc":"3654:14:88","nodeType":"YulFunctionCall","src":"3654:14:88"},{"kind":"number","nativeSrc":"3670:1:88","nodeType":"YulLiteral","src":"3670:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3650:3:88","nodeType":"YulIdentifier","src":"3650:3:88"},"nativeSrc":"3650:22:88","nodeType":"YulFunctionCall","src":"3650:22:88"}],"functionName":{"name":"sstore","nativeSrc":"3637:6:88","nodeType":"YulIdentifier","src":"3637:6:88"},"nativeSrc":"3637:36:88","nodeType":"YulFunctionCall","src":"3637:36:88"},"nativeSrc":"3637:36:88","nodeType":"YulExpressionStatement","src":"3637:36:88"}]},"nativeSrc":"3034:649:88","nodeType":"YulCase","src":"3034:649:88","value":{"kind":"number","nativeSrc":"3039:1:88","nodeType":"YulLiteral","src":"3039:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"3700:234:88","nodeType":"YulBlock","src":"3700:234:88","statements":[{"nativeSrc":"3714:14:88","nodeType":"YulVariableDeclaration","src":"3714:14:88","value":{"kind":"number","nativeSrc":"3727:1:88","nodeType":"YulLiteral","src":"3727:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3718:5:88","nodeType":"YulTypedName","src":"3718:5:88","type":""}]},{"body":{"nativeSrc":"3763:67:88","nodeType":"YulBlock","src":"3763:67:88","statements":[{"nativeSrc":"3781:35:88","nodeType":"YulAssignment","src":"3781:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3800:3:88","nodeType":"YulIdentifier","src":"3800:3:88"},{"name":"srcOffset","nativeSrc":"3805:9:88","nodeType":"YulIdentifier","src":"3805:9:88"}],"functionName":{"name":"add","nativeSrc":"3796:3:88","nodeType":"YulIdentifier","src":"3796:3:88"},"nativeSrc":"3796:19:88","nodeType":"YulFunctionCall","src":"3796:19:88"}],"functionName":{"name":"mload","nativeSrc":"3790:5:88","nodeType":"YulIdentifier","src":"3790:5:88"},"nativeSrc":"3790:26:88","nodeType":"YulFunctionCall","src":"3790:26:88"},"variableNames":[{"name":"value","nativeSrc":"3781:5:88","nodeType":"YulIdentifier","src":"3781:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"3744:6:88","nodeType":"YulIdentifier","src":"3744:6:88"},"nativeSrc":"3741:89:88","nodeType":"YulIf","src":"3741:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3850:4:88","nodeType":"YulIdentifier","src":"3850:4:88"},{"arguments":[{"name":"value","nativeSrc":"3909:5:88","nodeType":"YulIdentifier","src":"3909:5:88"},{"name":"newLen","nativeSrc":"3916:6:88","nodeType":"YulIdentifier","src":"3916:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3856:52:88","nodeType":"YulIdentifier","src":"3856:52:88"},"nativeSrc":"3856:67:88","nodeType":"YulFunctionCall","src":"3856:67:88"}],"functionName":{"name":"sstore","nativeSrc":"3843:6:88","nodeType":"YulIdentifier","src":"3843:6:88"},"nativeSrc":"3843:81:88","nodeType":"YulFunctionCall","src":"3843:81:88"},"nativeSrc":"3843:81:88","nodeType":"YulExpressionStatement","src":"3843:81:88"}]},"nativeSrc":"3692:242:88","nodeType":"YulCase","src":"3692:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3014:6:88","nodeType":"YulIdentifier","src":"3014:6:88"},{"kind":"number","nativeSrc":"3022:2:88","nodeType":"YulLiteral","src":"3022:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3011:2:88","nodeType":"YulIdentifier","src":"3011:2:88"},"nativeSrc":"3011:14:88","nodeType":"YulFunctionCall","src":"3011:14:88"},"nativeSrc":"3004:930:88","nodeType":"YulSwitch","src":"3004:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2641:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2722:4:88","nodeType":"YulTypedName","src":"2722:4:88","type":""},{"name":"src","nativeSrc":"2728:3:88","nodeType":"YulTypedName","src":"2728:3:88","type":""}],"src":"2641:1299:88"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        mcopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50604051610ab6380380610ab683398101604081905261002e916100ec565b600361003a83826101d5565b50600461004782826101d5565b50505061028f565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610072575f5ffd5b81516001600160401b0381111561008b5761008b61004f565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100b9576100b961004f565b6040528181528382016020018510156100d0575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f604083850312156100fd575f5ffd5b82516001600160401b03811115610112575f5ffd5b61011e85828601610063565b602085015190935090506001600160401b0381111561013b575f5ffd5b61014785828601610063565b9150509250929050565b600181811c9082168061016557607f821691505b60208210810361018357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d057805f5260205f20601f840160051c810160208510156101ae5750805b601f840160051c820191505b818110156101cd575f81556001016101ba565b50505b505050565b81516001600160401b038111156101ee576101ee61004f565b610202816101fc8454610151565b84610189565b6020601f821160018114610234575f831561021d5750848201515b5f19600385901b1c1916600184901b1784556101cd565b5f84815260208120601f198516915b828110156102635787850151825560209485019460019092019101610243565b508482101561028057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61081a8061029c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011f57806370a082311461013257806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063dd62ed3e14610188575f5ffd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f5ffd5b6100b261019b565b6040516100bf919061068a565b60405180910390f35b6100db6100d63660046106da565b61022b565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b366004610702565b610244565b604051601281526020016100bf565b6100db61012d3660046106da565b610267565b6100ef61014036600461073c565b6001600160a01b03165f9081526020819052604090205490565b6100b2610288565b6100db6101703660046106da565b610297565b6100db6101833660046106da565b610316565b6100ef61019636600461075c565b610323565b6060600380546101aa9061078d565b80601f01602080910402602001604051908101604052809291908181526020018280546101d69061078d565b80156102215780601f106101f857610100808354040283529160200191610221565b820191905f5260205f20905b81548152906001019060200180831161020457829003601f168201915b5050505050905090565b5f3361023881858561034d565b60019150505b92915050565b5f33610251858285610470565b61025c8585856104e8565b506001949350505050565b5f336102388185856102798383610323565b61028391906107c5565b61034d565b6060600480546101aa9061078d565b5f33816102a48286610323565b9050838110156103095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61025c828686840361034d565b5f336102388185856104e8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610300565b6001600160a01b0382166104105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610300565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61047b8484610323565b90505f1981146104e257818110156104d55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610300565b6104e2848484840361034d565b50505050565b6001600160a01b03831661054c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610300565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610300565b6001600160a01b0383165f90815260208190526040902054818110156106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610300565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e2565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146106d5575f5ffd5b919050565b5f5f604083850312156106eb575f5ffd5b6106f4836106bf565b946020939093013593505050565b5f5f5f60608486031215610714575f5ffd5b61071d846106bf565b925061072b602085016106bf565b929592945050506040919091013590565b5f6020828403121561074c575f5ffd5b610755826106bf565b9392505050565b5f5f6040838503121561076d575f5ffd5b610776836106bf565b9150610784602084016106bf565b90509250929050565b600181811c908216806107a157607f821691505b6020821081036107bf57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffdfea264697066735822122079f4b272973773fde252fc9c6bde7e9342fbf49de7dbeb07fe450d125ab8619164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xAB6 CODESIZE SUB DUP1 PUSH2 0xAB6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0xEC JUMP JUMPDEST PUSH1 0x3 PUSH2 0x3A DUP4 DUP3 PUSH2 0x1D5 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x47 DUP3 DUP3 PUSH2 0x1D5 JUMP JUMPDEST POP POP POP PUSH2 0x28F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x8B JUMPI PUSH2 0x8B PUSH2 0x4F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB9 JUMPI PUSH2 0xB9 PUSH2 0x4F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0xD0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD MCOPY PUSH0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x112 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x11E DUP6 DUP3 DUP7 ADD PUSH2 0x63 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x147 DUP6 DUP3 DUP7 ADD PUSH2 0x63 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x165 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x183 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1D0 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CD JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1EE JUMPI PUSH2 0x1EE PUSH2 0x4F JUMP JUMPDEST PUSH2 0x202 DUP2 PUSH2 0x1FC DUP5 SLOAD PUSH2 0x151 JUMP JUMPDEST DUP5 PUSH2 0x189 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x234 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x21D JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1CD JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x263 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x243 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x280 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x81A DUP1 PUSH2 0x29C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x188 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x110 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x19B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x22B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH2 0xDB PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x702 JUMP JUMPDEST PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH2 0xDB PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x267 JUMP JUMPDEST PUSH2 0xEF PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0x73C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x288 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x316 JUMP JUMPDEST PUSH2 0xEF PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x75C JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AA SWAP1 PUSH2 0x78D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D6 SWAP1 PUSH2 0x78D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x221 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x221 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x204 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x251 DUP6 DUP3 DUP6 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x25C DUP6 DUP6 DUP6 PUSH2 0x4E8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x279 DUP4 DUP4 PUSH2 0x323 JUMP JUMPDEST PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x7C5 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AA SWAP1 PUSH2 0x78D JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A4 DUP3 DUP7 PUSH2 0x323 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x25C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x34D JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x4E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x410 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47B DUP5 DUP5 PUSH2 0x323 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x4E2 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x300 JUMP JUMPDEST PUSH2 0x4E2 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x34D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x54C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x625 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6EB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x6F4 DUP4 PUSH2 0x6BF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x714 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x71D DUP5 PUSH2 0x6BF JUMP JUMPDEST SWAP3 POP PUSH2 0x72B PUSH1 0x20 DUP6 ADD PUSH2 0x6BF JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x74C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x755 DUP3 PUSH2 0x6BF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x76D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x776 DUP4 PUSH2 0x6BF JUMP JUMPDEST SWAP2 POP PUSH2 0x784 PUSH1 0x20 DUP5 ADD PUSH2 0x6BF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7A1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0xF4B272973773FDE252FC9C6BDE7E9342FBF49DE7DBEB07FE450D SLT GAS 0xB8 PUSH2 0x9164 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"1532:11312:30:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:30;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:88;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:723;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;298:13;;-1:-1:-1;;;;;323:30:88;;320:56;;;356:18;;:::i;:::-;405:2;399:9;497:2;459:17;;-1:-1:-1;;455:31:88;;;488:2;451:40;447:54;435:67;;-1:-1:-1;;;;;517:34:88;;553:22;;;514:62;511:88;;;579:18;;:::i;:::-;615:2;608:22;639;;;680:19;;;701:4;676:30;673:39;-1:-1:-1;670:59:88;;;725:1;722;715:12;670:59;782:6;775:4;767:6;763:17;756:4;748:6;744:17;738:51;837:1;809:19;;;830:4;805:30;798:41;;;;813:6;146:723;-1:-1:-1;;;146:723:88:o;874:557::-;973:6;981;1034:2;1022:9;1013:7;1009:23;1005:32;1002:52;;;1050:1;1047;1040:12;1002:52;1077:16;;-1:-1:-1;;;;;1105:30:88;;1102:50;;;1148:1;1145;1138:12;1102:50;1171:61;1224:7;1215:6;1204:9;1200:22;1171:61;:::i;:::-;1278:2;1263:18;;1257:25;1161:71;;-1:-1:-1;1257:25:88;-1:-1:-1;;;;;;1294:32:88;;1291:52;;;1339:1;1336;1329:12;1291:52;1362:63;1417:7;1406:8;1395:9;1391:24;1362:63;:::i;:::-;1352:73;;;874:557;;;;;:::o;1436:380::-;1515:1;1511:12;;;;1558;;;1579:61;;1633:4;1625:6;1621:17;1611:27;;1579:61;1686:2;1678:6;1675:14;1655:18;1652:38;1649:161;;1732:10;1727:3;1723:20;1720:1;1713:31;1767:4;1764:1;1757:15;1795:4;1792:1;1785:15;1649:161;;1436:380;;;:::o;1947:518::-;2049:2;2044:3;2041:11;2038:421;;;2085:5;2082:1;2075:16;2129:4;2126:1;2116:18;2199:2;2187:10;2183:19;2180:1;2176:27;2170:4;2166:38;2235:4;2223:10;2220:20;2217:47;;;-1:-1:-1;2258:4:88;2217:47;2313:2;2308:3;2304:12;2301:1;2297:20;2291:4;2287:31;2277:41;;2368:81;2386:2;2379:5;2376:13;2368:81;;;2445:1;2431:16;;2412:1;2401:13;2368:81;;;2372:3;;2038:421;1947:518;;;:::o;2641:1299::-;2761:10;;-1:-1:-1;;;;;2783:30:88;;2780:56;;;2816:18;;:::i;:::-;2845:97;2935:6;2895:38;2927:4;2921:11;2895:38;:::i;:::-;2889:4;2845:97;:::i;:::-;2991:4;3022:2;3011:14;;3039:1;3034:649;;;;3727:1;3744:6;3741:89;;;-1:-1:-1;3796:19:88;;;3790:26;3741:89;-1:-1:-1;;2598:1:88;2594:11;;;2590:24;2586:29;2576:40;2622:1;2618:11;;;2573:57;3843:81;;3004:930;;3034:649;1894:1;1887:14;;;1931:4;1918:18;;-1:-1:-1;;3070:20:88;;;3188:222;3202:7;3199:1;3196:14;3188:222;;;3284:19;;;3278:26;3263:42;;3391:4;3376:20;;;;3344:1;3332:14;;;;3218:12;3188:222;;;3192:3;3438:6;3429:7;3426:19;3423:201;;;3499:19;;;3493:26;-1:-1:-1;;3582:1:88;3578:14;;;3594:3;3574:24;3570:37;3566:42;3551:58;3536:74;;3423:201;-1:-1:-1;;;;3670:1:88;3654:14;;;3650:22;3637:36;;-1:-1:-1;2641:1299:88:o;:::-;1532:11312:30;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_5335":{"entryPoint":null,"id":5335,"parameterSlots":3,"returnSlots":0},"@_approve_5270":{"entryPoint":845,"id":5270,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_5324":{"entryPoint":null,"id":5324,"parameterSlots":3,"returnSlots":0},"@_msgSender_6954":{"entryPoint":null,"id":6954,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_5313":{"entryPoint":1136,"id":5313,"parameterSlots":3,"returnSlots":0},"@_transfer_5096":{"entryPoint":1256,"id":5096,"parameterSlots":3,"returnSlots":0},"@allowance_4891":{"entryPoint":803,"id":4891,"parameterSlots":2,"returnSlots":1},"@approve_4916":{"entryPoint":555,"id":4916,"parameterSlots":2,"returnSlots":1},"@balanceOf_4848":{"entryPoint":null,"id":4848,"parameterSlots":1,"returnSlots":1},"@decimals_4824":{"entryPoint":null,"id":4824,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5019":{"entryPoint":663,"id":5019,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_4978":{"entryPoint":615,"id":4978,"parameterSlots":2,"returnSlots":1},"@name_4804":{"entryPoint":411,"id":4804,"parameterSlots":0,"returnSlots":1},"@symbol_4814":{"entryPoint":648,"id":4814,"parameterSlots":0,"returnSlots":1},"@totalSupply_4834":{"entryPoint":null,"id":4834,"parameterSlots":0,"returnSlots":1},"@transferFrom_4949":{"entryPoint":580,"id":4949,"parameterSlots":3,"returnSlots":1},"@transfer_4873":{"entryPoint":790,"id":4873,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1727,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1852,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1884,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1794,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1754,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1989,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1933,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:5716:88","nodeType":"YulBlock","src":"0:5716:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"135:297:88","nodeType":"YulBlock","src":"135:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"152:9:88","nodeType":"YulIdentifier","src":"152:9:88"},{"kind":"number","nativeSrc":"163:2:88","nodeType":"YulLiteral","src":"163:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"145:6:88","nodeType":"YulIdentifier","src":"145:6:88"},"nativeSrc":"145:21:88","nodeType":"YulFunctionCall","src":"145:21:88"},"nativeSrc":"145:21:88","nodeType":"YulExpressionStatement","src":"145:21:88"},{"nativeSrc":"175:27:88","nodeType":"YulVariableDeclaration","src":"175:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"195:6:88","nodeType":"YulIdentifier","src":"195:6:88"}],"functionName":{"name":"mload","nativeSrc":"189:5:88","nodeType":"YulIdentifier","src":"189:5:88"},"nativeSrc":"189:13:88","nodeType":"YulFunctionCall","src":"189:13:88"},"variables":[{"name":"length","nativeSrc":"179:6:88","nodeType":"YulTypedName","src":"179:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"222:9:88","nodeType":"YulIdentifier","src":"222:9:88"},{"kind":"number","nativeSrc":"233:2:88","nodeType":"YulLiteral","src":"233:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"218:3:88","nodeType":"YulIdentifier","src":"218:3:88"},"nativeSrc":"218:18:88","nodeType":"YulFunctionCall","src":"218:18:88"},{"name":"length","nativeSrc":"238:6:88","nodeType":"YulIdentifier","src":"238:6:88"}],"functionName":{"name":"mstore","nativeSrc":"211:6:88","nodeType":"YulIdentifier","src":"211:6:88"},"nativeSrc":"211:34:88","nodeType":"YulFunctionCall","src":"211:34:88"},"nativeSrc":"211:34:88","nodeType":"YulExpressionStatement","src":"211:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"264:9:88","nodeType":"YulIdentifier","src":"264:9:88"},{"kind":"number","nativeSrc":"275:2:88","nodeType":"YulLiteral","src":"275:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"260:3:88","nodeType":"YulIdentifier","src":"260:3:88"},"nativeSrc":"260:18:88","nodeType":"YulFunctionCall","src":"260:18:88"},{"arguments":[{"name":"value0","nativeSrc":"284:6:88","nodeType":"YulIdentifier","src":"284:6:88"},{"kind":"number","nativeSrc":"292:2:88","nodeType":"YulLiteral","src":"292:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"280:3:88","nodeType":"YulIdentifier","src":"280:3:88"},"nativeSrc":"280:15:88","nodeType":"YulFunctionCall","src":"280:15:88"},{"name":"length","nativeSrc":"297:6:88","nodeType":"YulIdentifier","src":"297:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"254:5:88","nodeType":"YulIdentifier","src":"254:5:88"},"nativeSrc":"254:50:88","nodeType":"YulFunctionCall","src":"254:50:88"},"nativeSrc":"254:50:88","nodeType":"YulExpressionStatement","src":"254:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"328:9:88","nodeType":"YulIdentifier","src":"328:9:88"},{"name":"length","nativeSrc":"339:6:88","nodeType":"YulIdentifier","src":"339:6:88"}],"functionName":{"name":"add","nativeSrc":"324:3:88","nodeType":"YulIdentifier","src":"324:3:88"},"nativeSrc":"324:22:88","nodeType":"YulFunctionCall","src":"324:22:88"},{"kind":"number","nativeSrc":"348:2:88","nodeType":"YulLiteral","src":"348:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"320:3:88","nodeType":"YulIdentifier","src":"320:3:88"},"nativeSrc":"320:31:88","nodeType":"YulFunctionCall","src":"320:31:88"},{"kind":"number","nativeSrc":"353:1:88","nodeType":"YulLiteral","src":"353:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"313:6:88","nodeType":"YulIdentifier","src":"313:6:88"},"nativeSrc":"313:42:88","nodeType":"YulFunctionCall","src":"313:42:88"},"nativeSrc":"313:42:88","nodeType":"YulExpressionStatement","src":"313:42:88"},{"nativeSrc":"364:62:88","nodeType":"YulAssignment","src":"364:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"380:9:88","nodeType":"YulIdentifier","src":"380:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"399:6:88","nodeType":"YulIdentifier","src":"399:6:88"},{"kind":"number","nativeSrc":"407:2:88","nodeType":"YulLiteral","src":"407:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"395:3:88","nodeType":"YulIdentifier","src":"395:3:88"},"nativeSrc":"395:15:88","nodeType":"YulFunctionCall","src":"395:15:88"},{"arguments":[{"kind":"number","nativeSrc":"416:2:88","nodeType":"YulLiteral","src":"416:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"412:3:88","nodeType":"YulIdentifier","src":"412:3:88"},"nativeSrc":"412:7:88","nodeType":"YulFunctionCall","src":"412:7:88"}],"functionName":{"name":"and","nativeSrc":"391:3:88","nodeType":"YulIdentifier","src":"391:3:88"},"nativeSrc":"391:29:88","nodeType":"YulFunctionCall","src":"391:29:88"}],"functionName":{"name":"add","nativeSrc":"376:3:88","nodeType":"YulIdentifier","src":"376:3:88"},"nativeSrc":"376:45:88","nodeType":"YulFunctionCall","src":"376:45:88"},{"kind":"number","nativeSrc":"423:2:88","nodeType":"YulLiteral","src":"423:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"372:3:88","nodeType":"YulIdentifier","src":"372:3:88"},"nativeSrc":"372:54:88","nodeType":"YulFunctionCall","src":"372:54:88"},"variableNames":[{"name":"tail","nativeSrc":"364:4:88","nodeType":"YulIdentifier","src":"364:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:88","nodeType":"YulTypedName","src":"104:9:88","type":""},{"name":"value0","nativeSrc":"115:6:88","nodeType":"YulTypedName","src":"115:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"126:4:88","nodeType":"YulTypedName","src":"126:4:88","type":""}],"src":"14:418:88"},{"body":{"nativeSrc":"486:124:88","nodeType":"YulBlock","src":"486:124:88","statements":[{"nativeSrc":"496:29:88","nodeType":"YulAssignment","src":"496:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"518:6:88","nodeType":"YulIdentifier","src":"518:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"505:12:88","nodeType":"YulIdentifier","src":"505:12:88"},"nativeSrc":"505:20:88","nodeType":"YulFunctionCall","src":"505:20:88"},"variableNames":[{"name":"value","nativeSrc":"496:5:88","nodeType":"YulIdentifier","src":"496:5:88"}]},{"body":{"nativeSrc":"588:16:88","nodeType":"YulBlock","src":"588:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"597:1:88","nodeType":"YulLiteral","src":"597:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"600:1:88","nodeType":"YulLiteral","src":"600:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"590:6:88","nodeType":"YulIdentifier","src":"590:6:88"},"nativeSrc":"590:12:88","nodeType":"YulFunctionCall","src":"590:12:88"},"nativeSrc":"590:12:88","nodeType":"YulExpressionStatement","src":"590:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"547:5:88","nodeType":"YulIdentifier","src":"547:5:88"},{"arguments":[{"name":"value","nativeSrc":"558:5:88","nodeType":"YulIdentifier","src":"558:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"573:3:88","nodeType":"YulLiteral","src":"573:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"578:1:88","nodeType":"YulLiteral","src":"578:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"569:3:88","nodeType":"YulIdentifier","src":"569:3:88"},"nativeSrc":"569:11:88","nodeType":"YulFunctionCall","src":"569:11:88"},{"kind":"number","nativeSrc":"582:1:88","nodeType":"YulLiteral","src":"582:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"565:3:88","nodeType":"YulIdentifier","src":"565:3:88"},"nativeSrc":"565:19:88","nodeType":"YulFunctionCall","src":"565:19:88"}],"functionName":{"name":"and","nativeSrc":"554:3:88","nodeType":"YulIdentifier","src":"554:3:88"},"nativeSrc":"554:31:88","nodeType":"YulFunctionCall","src":"554:31:88"}],"functionName":{"name":"eq","nativeSrc":"544:2:88","nodeType":"YulIdentifier","src":"544:2:88"},"nativeSrc":"544:42:88","nodeType":"YulFunctionCall","src":"544:42:88"}],"functionName":{"name":"iszero","nativeSrc":"537:6:88","nodeType":"YulIdentifier","src":"537:6:88"},"nativeSrc":"537:50:88","nodeType":"YulFunctionCall","src":"537:50:88"},"nativeSrc":"534:70:88","nodeType":"YulIf","src":"534:70:88"}]},"name":"abi_decode_address","nativeSrc":"437:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"465:6:88","nodeType":"YulTypedName","src":"465:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"476:5:88","nodeType":"YulTypedName","src":"476:5:88","type":""}],"src":"437:173:88"},{"body":{"nativeSrc":"702:213:88","nodeType":"YulBlock","src":"702:213:88","statements":[{"body":{"nativeSrc":"748:16:88","nodeType":"YulBlock","src":"748:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"757:1:88","nodeType":"YulLiteral","src":"757:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"760:1:88","nodeType":"YulLiteral","src":"760:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"750:6:88","nodeType":"YulIdentifier","src":"750:6:88"},"nativeSrc":"750:12:88","nodeType":"YulFunctionCall","src":"750:12:88"},"nativeSrc":"750:12:88","nodeType":"YulExpressionStatement","src":"750:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"723:7:88","nodeType":"YulIdentifier","src":"723:7:88"},{"name":"headStart","nativeSrc":"732:9:88","nodeType":"YulIdentifier","src":"732:9:88"}],"functionName":{"name":"sub","nativeSrc":"719:3:88","nodeType":"YulIdentifier","src":"719:3:88"},"nativeSrc":"719:23:88","nodeType":"YulFunctionCall","src":"719:23:88"},{"kind":"number","nativeSrc":"744:2:88","nodeType":"YulLiteral","src":"744:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"715:3:88","nodeType":"YulIdentifier","src":"715:3:88"},"nativeSrc":"715:32:88","nodeType":"YulFunctionCall","src":"715:32:88"},"nativeSrc":"712:52:88","nodeType":"YulIf","src":"712:52:88"},{"nativeSrc":"773:39:88","nodeType":"YulAssignment","src":"773:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"802:9:88","nodeType":"YulIdentifier","src":"802:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"783:18:88","nodeType":"YulIdentifier","src":"783:18:88"},"nativeSrc":"783:29:88","nodeType":"YulFunctionCall","src":"783:29:88"},"variableNames":[{"name":"value0","nativeSrc":"773:6:88","nodeType":"YulIdentifier","src":"773:6:88"}]},{"nativeSrc":"821:14:88","nodeType":"YulVariableDeclaration","src":"821:14:88","value":{"kind":"number","nativeSrc":"834:1:88","nodeType":"YulLiteral","src":"834:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"825:5:88","nodeType":"YulTypedName","src":"825:5:88","type":""}]},{"nativeSrc":"844:41:88","nodeType":"YulAssignment","src":"844:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"870:9:88","nodeType":"YulIdentifier","src":"870:9:88"},{"kind":"number","nativeSrc":"881:2:88","nodeType":"YulLiteral","src":"881:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"866:3:88","nodeType":"YulIdentifier","src":"866:3:88"},"nativeSrc":"866:18:88","nodeType":"YulFunctionCall","src":"866:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"853:12:88","nodeType":"YulIdentifier","src":"853:12:88"},"nativeSrc":"853:32:88","nodeType":"YulFunctionCall","src":"853:32:88"},"variableNames":[{"name":"value","nativeSrc":"844:5:88","nodeType":"YulIdentifier","src":"844:5:88"}]},{"nativeSrc":"894:15:88","nodeType":"YulAssignment","src":"894:15:88","value":{"name":"value","nativeSrc":"904:5:88","nodeType":"YulIdentifier","src":"904:5:88"},"variableNames":[{"name":"value1","nativeSrc":"894:6:88","nodeType":"YulIdentifier","src":"894:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"615:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"660:9:88","nodeType":"YulTypedName","src":"660:9:88","type":""},{"name":"dataEnd","nativeSrc":"671:7:88","nodeType":"YulTypedName","src":"671:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"683:6:88","nodeType":"YulTypedName","src":"683:6:88","type":""},{"name":"value1","nativeSrc":"691:6:88","nodeType":"YulTypedName","src":"691:6:88","type":""}],"src":"615:300:88"},{"body":{"nativeSrc":"1015:92:88","nodeType":"YulBlock","src":"1015:92:88","statements":[{"nativeSrc":"1025:26:88","nodeType":"YulAssignment","src":"1025:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1037:9:88","nodeType":"YulIdentifier","src":"1037:9:88"},{"kind":"number","nativeSrc":"1048:2:88","nodeType":"YulLiteral","src":"1048:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1033:3:88","nodeType":"YulIdentifier","src":"1033:3:88"},"nativeSrc":"1033:18:88","nodeType":"YulFunctionCall","src":"1033:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1025:4:88","nodeType":"YulIdentifier","src":"1025:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulIdentifier","src":"1067:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1092:6:88","nodeType":"YulIdentifier","src":"1092:6:88"}],"functionName":{"name":"iszero","nativeSrc":"1085:6:88","nodeType":"YulIdentifier","src":"1085:6:88"},"nativeSrc":"1085:14:88","nodeType":"YulFunctionCall","src":"1085:14:88"}],"functionName":{"name":"iszero","nativeSrc":"1078:6:88","nodeType":"YulIdentifier","src":"1078:6:88"},"nativeSrc":"1078:22:88","nodeType":"YulFunctionCall","src":"1078:22:88"}],"functionName":{"name":"mstore","nativeSrc":"1060:6:88","nodeType":"YulIdentifier","src":"1060:6:88"},"nativeSrc":"1060:41:88","nodeType":"YulFunctionCall","src":"1060:41:88"},"nativeSrc":"1060:41:88","nodeType":"YulExpressionStatement","src":"1060:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"920:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"984:9:88","nodeType":"YulTypedName","src":"984:9:88","type":""},{"name":"value0","nativeSrc":"995:6:88","nodeType":"YulTypedName","src":"995:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1006:4:88","nodeType":"YulTypedName","src":"1006:4:88","type":""}],"src":"920:187:88"},{"body":{"nativeSrc":"1213:76:88","nodeType":"YulBlock","src":"1213:76:88","statements":[{"nativeSrc":"1223:26:88","nodeType":"YulAssignment","src":"1223:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1235:9:88","nodeType":"YulIdentifier","src":"1235:9:88"},{"kind":"number","nativeSrc":"1246:2:88","nodeType":"YulLiteral","src":"1246:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1231:3:88","nodeType":"YulIdentifier","src":"1231:3:88"},"nativeSrc":"1231:18:88","nodeType":"YulFunctionCall","src":"1231:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1223:4:88","nodeType":"YulIdentifier","src":"1223:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1265:9:88","nodeType":"YulIdentifier","src":"1265:9:88"},{"name":"value0","nativeSrc":"1276:6:88","nodeType":"YulIdentifier","src":"1276:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1258:6:88","nodeType":"YulIdentifier","src":"1258:6:88"},"nativeSrc":"1258:25:88","nodeType":"YulFunctionCall","src":"1258:25:88"},"nativeSrc":"1258:25:88","nodeType":"YulExpressionStatement","src":"1258:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1112:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1182:9:88","nodeType":"YulTypedName","src":"1182:9:88","type":""},{"name":"value0","nativeSrc":"1193:6:88","nodeType":"YulTypedName","src":"1193:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1204:4:88","nodeType":"YulTypedName","src":"1204:4:88","type":""}],"src":"1112:177:88"},{"body":{"nativeSrc":"1398:270:88","nodeType":"YulBlock","src":"1398:270:88","statements":[{"body":{"nativeSrc":"1444:16:88","nodeType":"YulBlock","src":"1444:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1453:1:88","nodeType":"YulLiteral","src":"1453:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1456:1:88","nodeType":"YulLiteral","src":"1456:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1446:6:88","nodeType":"YulIdentifier","src":"1446:6:88"},"nativeSrc":"1446:12:88","nodeType":"YulFunctionCall","src":"1446:12:88"},"nativeSrc":"1446:12:88","nodeType":"YulExpressionStatement","src":"1446:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1419:7:88","nodeType":"YulIdentifier","src":"1419:7:88"},{"name":"headStart","nativeSrc":"1428:9:88","nodeType":"YulIdentifier","src":"1428:9:88"}],"functionName":{"name":"sub","nativeSrc":"1415:3:88","nodeType":"YulIdentifier","src":"1415:3:88"},"nativeSrc":"1415:23:88","nodeType":"YulFunctionCall","src":"1415:23:88"},{"kind":"number","nativeSrc":"1440:2:88","nodeType":"YulLiteral","src":"1440:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1411:3:88","nodeType":"YulIdentifier","src":"1411:3:88"},"nativeSrc":"1411:32:88","nodeType":"YulFunctionCall","src":"1411:32:88"},"nativeSrc":"1408:52:88","nodeType":"YulIf","src":"1408:52:88"},{"nativeSrc":"1469:39:88","nodeType":"YulAssignment","src":"1469:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:88","nodeType":"YulIdentifier","src":"1498:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1479:18:88","nodeType":"YulIdentifier","src":"1479:18:88"},"nativeSrc":"1479:29:88","nodeType":"YulFunctionCall","src":"1479:29:88"},"variableNames":[{"name":"value0","nativeSrc":"1469:6:88","nodeType":"YulIdentifier","src":"1469:6:88"}]},{"nativeSrc":"1517:48:88","nodeType":"YulAssignment","src":"1517:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1550:9:88","nodeType":"YulIdentifier","src":"1550:9:88"},{"kind":"number","nativeSrc":"1561:2:88","nodeType":"YulLiteral","src":"1561:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1546:3:88","nodeType":"YulIdentifier","src":"1546:3:88"},"nativeSrc":"1546:18:88","nodeType":"YulFunctionCall","src":"1546:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1527:18:88","nodeType":"YulIdentifier","src":"1527:18:88"},"nativeSrc":"1527:38:88","nodeType":"YulFunctionCall","src":"1527:38:88"},"variableNames":[{"name":"value1","nativeSrc":"1517:6:88","nodeType":"YulIdentifier","src":"1517:6:88"}]},{"nativeSrc":"1574:14:88","nodeType":"YulVariableDeclaration","src":"1574:14:88","value":{"kind":"number","nativeSrc":"1587:1:88","nodeType":"YulLiteral","src":"1587:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1578:5:88","nodeType":"YulTypedName","src":"1578:5:88","type":""}]},{"nativeSrc":"1597:41:88","nodeType":"YulAssignment","src":"1597:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1623:9:88","nodeType":"YulIdentifier","src":"1623:9:88"},{"kind":"number","nativeSrc":"1634:2:88","nodeType":"YulLiteral","src":"1634:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1619:3:88","nodeType":"YulIdentifier","src":"1619:3:88"},"nativeSrc":"1619:18:88","nodeType":"YulFunctionCall","src":"1619:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1606:12:88","nodeType":"YulIdentifier","src":"1606:12:88"},"nativeSrc":"1606:32:88","nodeType":"YulFunctionCall","src":"1606:32:88"},"variableNames":[{"name":"value","nativeSrc":"1597:5:88","nodeType":"YulIdentifier","src":"1597:5:88"}]},{"nativeSrc":"1647:15:88","nodeType":"YulAssignment","src":"1647:15:88","value":{"name":"value","nativeSrc":"1657:5:88","nodeType":"YulIdentifier","src":"1657:5:88"},"variableNames":[{"name":"value2","nativeSrc":"1647:6:88","nodeType":"YulIdentifier","src":"1647:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1294:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1348:9:88","nodeType":"YulTypedName","src":"1348:9:88","type":""},{"name":"dataEnd","nativeSrc":"1359:7:88","nodeType":"YulTypedName","src":"1359:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1371:6:88","nodeType":"YulTypedName","src":"1371:6:88","type":""},{"name":"value1","nativeSrc":"1379:6:88","nodeType":"YulTypedName","src":"1379:6:88","type":""},{"name":"value2","nativeSrc":"1387:6:88","nodeType":"YulTypedName","src":"1387:6:88","type":""}],"src":"1294:374:88"},{"body":{"nativeSrc":"1770:87:88","nodeType":"YulBlock","src":"1770:87:88","statements":[{"nativeSrc":"1780:26:88","nodeType":"YulAssignment","src":"1780:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1792:9:88","nodeType":"YulIdentifier","src":"1792:9:88"},{"kind":"number","nativeSrc":"1803:2:88","nodeType":"YulLiteral","src":"1803:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1788:3:88","nodeType":"YulIdentifier","src":"1788:3:88"},"nativeSrc":"1788:18:88","nodeType":"YulFunctionCall","src":"1788:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1780:4:88","nodeType":"YulIdentifier","src":"1780:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1822:9:88","nodeType":"YulIdentifier","src":"1822:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1837:6:88","nodeType":"YulIdentifier","src":"1837:6:88"},{"kind":"number","nativeSrc":"1845:4:88","nodeType":"YulLiteral","src":"1845:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1833:3:88","nodeType":"YulIdentifier","src":"1833:3:88"},"nativeSrc":"1833:17:88","nodeType":"YulFunctionCall","src":"1833:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1815:6:88","nodeType":"YulIdentifier","src":"1815:6:88"},"nativeSrc":"1815:36:88","nodeType":"YulFunctionCall","src":"1815:36:88"},"nativeSrc":"1815:36:88","nodeType":"YulExpressionStatement","src":"1815:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1673:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1739:9:88","nodeType":"YulTypedName","src":"1739:9:88","type":""},{"name":"value0","nativeSrc":"1750:6:88","nodeType":"YulTypedName","src":"1750:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1761:4:88","nodeType":"YulTypedName","src":"1761:4:88","type":""}],"src":"1673:184:88"},{"body":{"nativeSrc":"1932:116:88","nodeType":"YulBlock","src":"1932:116:88","statements":[{"body":{"nativeSrc":"1978:16:88","nodeType":"YulBlock","src":"1978:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1987:1:88","nodeType":"YulLiteral","src":"1987:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1990:1:88","nodeType":"YulLiteral","src":"1990:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1980:6:88","nodeType":"YulIdentifier","src":"1980:6:88"},"nativeSrc":"1980:12:88","nodeType":"YulFunctionCall","src":"1980:12:88"},"nativeSrc":"1980:12:88","nodeType":"YulExpressionStatement","src":"1980:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1953:7:88","nodeType":"YulIdentifier","src":"1953:7:88"},{"name":"headStart","nativeSrc":"1962:9:88","nodeType":"YulIdentifier","src":"1962:9:88"}],"functionName":{"name":"sub","nativeSrc":"1949:3:88","nodeType":"YulIdentifier","src":"1949:3:88"},"nativeSrc":"1949:23:88","nodeType":"YulFunctionCall","src":"1949:23:88"},{"kind":"number","nativeSrc":"1974:2:88","nodeType":"YulLiteral","src":"1974:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1945:3:88","nodeType":"YulIdentifier","src":"1945:3:88"},"nativeSrc":"1945:32:88","nodeType":"YulFunctionCall","src":"1945:32:88"},"nativeSrc":"1942:52:88","nodeType":"YulIf","src":"1942:52:88"},{"nativeSrc":"2003:39:88","nodeType":"YulAssignment","src":"2003:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2032:9:88","nodeType":"YulIdentifier","src":"2032:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2013:18:88","nodeType":"YulIdentifier","src":"2013:18:88"},"nativeSrc":"2013:29:88","nodeType":"YulFunctionCall","src":"2013:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2003:6:88","nodeType":"YulIdentifier","src":"2003:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1862:186:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1898:9:88","nodeType":"YulTypedName","src":"1898:9:88","type":""},{"name":"dataEnd","nativeSrc":"1909:7:88","nodeType":"YulTypedName","src":"1909:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1921:6:88","nodeType":"YulTypedName","src":"1921:6:88","type":""}],"src":"1862:186:88"},{"body":{"nativeSrc":"2140:173:88","nodeType":"YulBlock","src":"2140:173:88","statements":[{"body":{"nativeSrc":"2186:16:88","nodeType":"YulBlock","src":"2186:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2195:1:88","nodeType":"YulLiteral","src":"2195:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2198:1:88","nodeType":"YulLiteral","src":"2198:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2188:6:88","nodeType":"YulIdentifier","src":"2188:6:88"},"nativeSrc":"2188:12:88","nodeType":"YulFunctionCall","src":"2188:12:88"},"nativeSrc":"2188:12:88","nodeType":"YulExpressionStatement","src":"2188:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2161:7:88","nodeType":"YulIdentifier","src":"2161:7:88"},{"name":"headStart","nativeSrc":"2170:9:88","nodeType":"YulIdentifier","src":"2170:9:88"}],"functionName":{"name":"sub","nativeSrc":"2157:3:88","nodeType":"YulIdentifier","src":"2157:3:88"},"nativeSrc":"2157:23:88","nodeType":"YulFunctionCall","src":"2157:23:88"},{"kind":"number","nativeSrc":"2182:2:88","nodeType":"YulLiteral","src":"2182:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2153:3:88","nodeType":"YulIdentifier","src":"2153:3:88"},"nativeSrc":"2153:32:88","nodeType":"YulFunctionCall","src":"2153:32:88"},"nativeSrc":"2150:52:88","nodeType":"YulIf","src":"2150:52:88"},{"nativeSrc":"2211:39:88","nodeType":"YulAssignment","src":"2211:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2240:9:88","nodeType":"YulIdentifier","src":"2240:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2221:18:88","nodeType":"YulIdentifier","src":"2221:18:88"},"nativeSrc":"2221:29:88","nodeType":"YulFunctionCall","src":"2221:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2211:6:88","nodeType":"YulIdentifier","src":"2211:6:88"}]},{"nativeSrc":"2259:48:88","nodeType":"YulAssignment","src":"2259:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2292:9:88","nodeType":"YulIdentifier","src":"2292:9:88"},{"kind":"number","nativeSrc":"2303:2:88","nodeType":"YulLiteral","src":"2303:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2288:3:88","nodeType":"YulIdentifier","src":"2288:3:88"},"nativeSrc":"2288:18:88","nodeType":"YulFunctionCall","src":"2288:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2269:18:88","nodeType":"YulIdentifier","src":"2269:18:88"},"nativeSrc":"2269:38:88","nodeType":"YulFunctionCall","src":"2269:38:88"},"variableNames":[{"name":"value1","nativeSrc":"2259:6:88","nodeType":"YulIdentifier","src":"2259:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"2053:260:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2098:9:88","nodeType":"YulTypedName","src":"2098:9:88","type":""},{"name":"dataEnd","nativeSrc":"2109:7:88","nodeType":"YulTypedName","src":"2109:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2121:6:88","nodeType":"YulTypedName","src":"2121:6:88","type":""},{"name":"value1","nativeSrc":"2129:6:88","nodeType":"YulTypedName","src":"2129:6:88","type":""}],"src":"2053:260:88"},{"body":{"nativeSrc":"2373:325:88","nodeType":"YulBlock","src":"2373:325:88","statements":[{"nativeSrc":"2383:22:88","nodeType":"YulAssignment","src":"2383:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"2397:1:88","nodeType":"YulLiteral","src":"2397:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"2400:4:88","nodeType":"YulIdentifier","src":"2400:4:88"}],"functionName":{"name":"shr","nativeSrc":"2393:3:88","nodeType":"YulIdentifier","src":"2393:3:88"},"nativeSrc":"2393:12:88","nodeType":"YulFunctionCall","src":"2393:12:88"},"variableNames":[{"name":"length","nativeSrc":"2383:6:88","nodeType":"YulIdentifier","src":"2383:6:88"}]},{"nativeSrc":"2414:38:88","nodeType":"YulVariableDeclaration","src":"2414:38:88","value":{"arguments":[{"name":"data","nativeSrc":"2444:4:88","nodeType":"YulIdentifier","src":"2444:4:88"},{"kind":"number","nativeSrc":"2450:1:88","nodeType":"YulLiteral","src":"2450:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2440:3:88","nodeType":"YulIdentifier","src":"2440:3:88"},"nativeSrc":"2440:12:88","nodeType":"YulFunctionCall","src":"2440:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2418:18:88","nodeType":"YulTypedName","src":"2418:18:88","type":""}]},{"body":{"nativeSrc":"2491:31:88","nodeType":"YulBlock","src":"2491:31:88","statements":[{"nativeSrc":"2493:27:88","nodeType":"YulAssignment","src":"2493:27:88","value":{"arguments":[{"name":"length","nativeSrc":"2507:6:88","nodeType":"YulIdentifier","src":"2507:6:88"},{"kind":"number","nativeSrc":"2515:4:88","nodeType":"YulLiteral","src":"2515:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2503:3:88","nodeType":"YulIdentifier","src":"2503:3:88"},"nativeSrc":"2503:17:88","nodeType":"YulFunctionCall","src":"2503:17:88"},"variableNames":[{"name":"length","nativeSrc":"2493:6:88","nodeType":"YulIdentifier","src":"2493:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2471:18:88","nodeType":"YulIdentifier","src":"2471:18:88"}],"functionName":{"name":"iszero","nativeSrc":"2464:6:88","nodeType":"YulIdentifier","src":"2464:6:88"},"nativeSrc":"2464:26:88","nodeType":"YulFunctionCall","src":"2464:26:88"},"nativeSrc":"2461:61:88","nodeType":"YulIf","src":"2461:61:88"},{"body":{"nativeSrc":"2581:111:88","nodeType":"YulBlock","src":"2581:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2602:1:88","nodeType":"YulLiteral","src":"2602:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2609:3:88","nodeType":"YulLiteral","src":"2609:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2614:10:88","nodeType":"YulLiteral","src":"2614:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2605:3:88","nodeType":"YulIdentifier","src":"2605:3:88"},"nativeSrc":"2605:20:88","nodeType":"YulFunctionCall","src":"2605:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:88","nodeType":"YulIdentifier","src":"2595:6:88"},"nativeSrc":"2595:31:88","nodeType":"YulFunctionCall","src":"2595:31:88"},"nativeSrc":"2595:31:88","nodeType":"YulExpressionStatement","src":"2595:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2646:1:88","nodeType":"YulLiteral","src":"2646:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2649:4:88","nodeType":"YulLiteral","src":"2649:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2639:6:88","nodeType":"YulIdentifier","src":"2639:6:88"},"nativeSrc":"2639:15:88","nodeType":"YulFunctionCall","src":"2639:15:88"},"nativeSrc":"2639:15:88","nodeType":"YulExpressionStatement","src":"2639:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2674:1:88","nodeType":"YulLiteral","src":"2674:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2677:4:88","nodeType":"YulLiteral","src":"2677:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2667:6:88","nodeType":"YulIdentifier","src":"2667:6:88"},"nativeSrc":"2667:15:88","nodeType":"YulFunctionCall","src":"2667:15:88"},"nativeSrc":"2667:15:88","nodeType":"YulExpressionStatement","src":"2667:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2537:18:88","nodeType":"YulIdentifier","src":"2537:18:88"},{"arguments":[{"name":"length","nativeSrc":"2560:6:88","nodeType":"YulIdentifier","src":"2560:6:88"},{"kind":"number","nativeSrc":"2568:2:88","nodeType":"YulLiteral","src":"2568:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2557:2:88","nodeType":"YulIdentifier","src":"2557:2:88"},"nativeSrc":"2557:14:88","nodeType":"YulFunctionCall","src":"2557:14:88"}],"functionName":{"name":"eq","nativeSrc":"2534:2:88","nodeType":"YulIdentifier","src":"2534:2:88"},"nativeSrc":"2534:38:88","nodeType":"YulFunctionCall","src":"2534:38:88"},"nativeSrc":"2531:161:88","nodeType":"YulIf","src":"2531:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"2318:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2353:4:88","nodeType":"YulTypedName","src":"2353:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2362:6:88","nodeType":"YulTypedName","src":"2362:6:88","type":""}],"src":"2318:380:88"},{"body":{"nativeSrc":"2751:174:88","nodeType":"YulBlock","src":"2751:174:88","statements":[{"nativeSrc":"2761:16:88","nodeType":"YulAssignment","src":"2761:16:88","value":{"arguments":[{"name":"x","nativeSrc":"2772:1:88","nodeType":"YulIdentifier","src":"2772:1:88"},{"name":"y","nativeSrc":"2775:1:88","nodeType":"YulIdentifier","src":"2775:1:88"}],"functionName":{"name":"add","nativeSrc":"2768:3:88","nodeType":"YulIdentifier","src":"2768:3:88"},"nativeSrc":"2768:9:88","nodeType":"YulFunctionCall","src":"2768:9:88"},"variableNames":[{"name":"sum","nativeSrc":"2761:3:88","nodeType":"YulIdentifier","src":"2761:3:88"}]},{"body":{"nativeSrc":"2808:111:88","nodeType":"YulBlock","src":"2808:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2829:1:88","nodeType":"YulLiteral","src":"2829:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2836:3:88","nodeType":"YulLiteral","src":"2836:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2841:10:88","nodeType":"YulLiteral","src":"2841:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2832:3:88","nodeType":"YulIdentifier","src":"2832:3:88"},"nativeSrc":"2832:20:88","nodeType":"YulFunctionCall","src":"2832:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2822:6:88","nodeType":"YulIdentifier","src":"2822:6:88"},"nativeSrc":"2822:31:88","nodeType":"YulFunctionCall","src":"2822:31:88"},"nativeSrc":"2822:31:88","nodeType":"YulExpressionStatement","src":"2822:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2873:1:88","nodeType":"YulLiteral","src":"2873:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2876:4:88","nodeType":"YulLiteral","src":"2876:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"2866:6:88","nodeType":"YulIdentifier","src":"2866:6:88"},"nativeSrc":"2866:15:88","nodeType":"YulFunctionCall","src":"2866:15:88"},"nativeSrc":"2866:15:88","nodeType":"YulExpressionStatement","src":"2866:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2901:1:88","nodeType":"YulLiteral","src":"2901:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2904:4:88","nodeType":"YulLiteral","src":"2904:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2894:6:88","nodeType":"YulIdentifier","src":"2894:6:88"},"nativeSrc":"2894:15:88","nodeType":"YulFunctionCall","src":"2894:15:88"},"nativeSrc":"2894:15:88","nodeType":"YulExpressionStatement","src":"2894:15:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"2792:1:88","nodeType":"YulIdentifier","src":"2792:1:88"},{"name":"sum","nativeSrc":"2795:3:88","nodeType":"YulIdentifier","src":"2795:3:88"}],"functionName":{"name":"gt","nativeSrc":"2789:2:88","nodeType":"YulIdentifier","src":"2789:2:88"},"nativeSrc":"2789:10:88","nodeType":"YulFunctionCall","src":"2789:10:88"},"nativeSrc":"2786:133:88","nodeType":"YulIf","src":"2786:133:88"}]},"name":"checked_add_t_uint256","nativeSrc":"2703:222:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"2734:1:88","nodeType":"YulTypedName","src":"2734:1:88","type":""},{"name":"y","nativeSrc":"2737:1:88","nodeType":"YulTypedName","src":"2737:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"2743:3:88","nodeType":"YulTypedName","src":"2743:3:88","type":""}],"src":"2703:222:88"},{"body":{"nativeSrc":"3104:227:88","nodeType":"YulBlock","src":"3104:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3121:9:88","nodeType":"YulIdentifier","src":"3121:9:88"},{"kind":"number","nativeSrc":"3132:2:88","nodeType":"YulLiteral","src":"3132:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3114:6:88","nodeType":"YulIdentifier","src":"3114:6:88"},"nativeSrc":"3114:21:88","nodeType":"YulFunctionCall","src":"3114:21:88"},"nativeSrc":"3114:21:88","nodeType":"YulExpressionStatement","src":"3114:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3155:9:88","nodeType":"YulIdentifier","src":"3155:9:88"},{"kind":"number","nativeSrc":"3166:2:88","nodeType":"YulLiteral","src":"3166:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3151:3:88","nodeType":"YulIdentifier","src":"3151:3:88"},"nativeSrc":"3151:18:88","nodeType":"YulFunctionCall","src":"3151:18:88"},{"kind":"number","nativeSrc":"3171:2:88","nodeType":"YulLiteral","src":"3171:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"3144:6:88","nodeType":"YulIdentifier","src":"3144:6:88"},"nativeSrc":"3144:30:88","nodeType":"YulFunctionCall","src":"3144:30:88"},"nativeSrc":"3144:30:88","nodeType":"YulExpressionStatement","src":"3144:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3194:9:88","nodeType":"YulIdentifier","src":"3194:9:88"},{"kind":"number","nativeSrc":"3205:2:88","nodeType":"YulLiteral","src":"3205:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3190:3:88","nodeType":"YulIdentifier","src":"3190:3:88"},"nativeSrc":"3190:18:88","nodeType":"YulFunctionCall","src":"3190:18:88"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"3210:34:88","nodeType":"YulLiteral","src":"3210:34:88","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:88","nodeType":"YulIdentifier","src":"3183:6:88"},"nativeSrc":"3183:62:88","nodeType":"YulFunctionCall","src":"3183:62:88"},"nativeSrc":"3183:62:88","nodeType":"YulExpressionStatement","src":"3183:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3265:9:88","nodeType":"YulIdentifier","src":"3265:9:88"},{"kind":"number","nativeSrc":"3276:2:88","nodeType":"YulLiteral","src":"3276:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3261:3:88","nodeType":"YulIdentifier","src":"3261:3:88"},"nativeSrc":"3261:18:88","nodeType":"YulFunctionCall","src":"3261:18:88"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"3281:7:88","nodeType":"YulLiteral","src":"3281:7:88","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"3254:6:88","nodeType":"YulIdentifier","src":"3254:6:88"},"nativeSrc":"3254:35:88","nodeType":"YulFunctionCall","src":"3254:35:88"},"nativeSrc":"3254:35:88","nodeType":"YulExpressionStatement","src":"3254:35:88"},{"nativeSrc":"3298:27:88","nodeType":"YulAssignment","src":"3298:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3310:9:88","nodeType":"YulIdentifier","src":"3310:9:88"},{"kind":"number","nativeSrc":"3321:3:88","nodeType":"YulLiteral","src":"3321:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3306:3:88","nodeType":"YulIdentifier","src":"3306:3:88"},"nativeSrc":"3306:19:88","nodeType":"YulFunctionCall","src":"3306:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3298:4:88","nodeType":"YulIdentifier","src":"3298:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2930:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3081:9:88","nodeType":"YulTypedName","src":"3081:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3095:4:88","nodeType":"YulTypedName","src":"3095:4:88","type":""}],"src":"2930:401:88"},{"body":{"nativeSrc":"3510:226:88","nodeType":"YulBlock","src":"3510:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3527:9:88","nodeType":"YulIdentifier","src":"3527:9:88"},{"kind":"number","nativeSrc":"3538:2:88","nodeType":"YulLiteral","src":"3538:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3520:6:88","nodeType":"YulIdentifier","src":"3520:6:88"},"nativeSrc":"3520:21:88","nodeType":"YulFunctionCall","src":"3520:21:88"},"nativeSrc":"3520:21:88","nodeType":"YulExpressionStatement","src":"3520:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3561:9:88","nodeType":"YulIdentifier","src":"3561:9:88"},{"kind":"number","nativeSrc":"3572:2:88","nodeType":"YulLiteral","src":"3572:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3557:3:88","nodeType":"YulIdentifier","src":"3557:3:88"},"nativeSrc":"3557:18:88","nodeType":"YulFunctionCall","src":"3557:18:88"},{"kind":"number","nativeSrc":"3577:2:88","nodeType":"YulLiteral","src":"3577:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"3550:6:88","nodeType":"YulIdentifier","src":"3550:6:88"},"nativeSrc":"3550:30:88","nodeType":"YulFunctionCall","src":"3550:30:88"},"nativeSrc":"3550:30:88","nodeType":"YulExpressionStatement","src":"3550:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3600:9:88","nodeType":"YulIdentifier","src":"3600:9:88"},{"kind":"number","nativeSrc":"3611:2:88","nodeType":"YulLiteral","src":"3611:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3596:3:88","nodeType":"YulIdentifier","src":"3596:3:88"},"nativeSrc":"3596:18:88","nodeType":"YulFunctionCall","src":"3596:18:88"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"3616:34:88","nodeType":"YulLiteral","src":"3616:34:88","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"3589:6:88","nodeType":"YulIdentifier","src":"3589:6:88"},"nativeSrc":"3589:62:88","nodeType":"YulFunctionCall","src":"3589:62:88"},"nativeSrc":"3589:62:88","nodeType":"YulExpressionStatement","src":"3589:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3671:9:88","nodeType":"YulIdentifier","src":"3671:9:88"},{"kind":"number","nativeSrc":"3682:2:88","nodeType":"YulLiteral","src":"3682:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3667:3:88","nodeType":"YulIdentifier","src":"3667:3:88"},"nativeSrc":"3667:18:88","nodeType":"YulFunctionCall","src":"3667:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"3687:6:88","nodeType":"YulLiteral","src":"3687:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"3660:6:88","nodeType":"YulIdentifier","src":"3660:6:88"},"nativeSrc":"3660:34:88","nodeType":"YulFunctionCall","src":"3660:34:88"},"nativeSrc":"3660:34:88","nodeType":"YulExpressionStatement","src":"3660:34:88"},{"nativeSrc":"3703:27:88","nodeType":"YulAssignment","src":"3703:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3715:9:88","nodeType":"YulIdentifier","src":"3715:9:88"},{"kind":"number","nativeSrc":"3726:3:88","nodeType":"YulLiteral","src":"3726:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3711:3:88","nodeType":"YulIdentifier","src":"3711:3:88"},"nativeSrc":"3711:19:88","nodeType":"YulFunctionCall","src":"3711:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3703:4:88","nodeType":"YulIdentifier","src":"3703:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3336:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3487:9:88","nodeType":"YulTypedName","src":"3487:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3501:4:88","nodeType":"YulTypedName","src":"3501:4:88","type":""}],"src":"3336:400:88"},{"body":{"nativeSrc":"3915:224:88","nodeType":"YulBlock","src":"3915:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3932:9:88","nodeType":"YulIdentifier","src":"3932:9:88"},{"kind":"number","nativeSrc":"3943:2:88","nodeType":"YulLiteral","src":"3943:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3925:6:88","nodeType":"YulIdentifier","src":"3925:6:88"},"nativeSrc":"3925:21:88","nodeType":"YulFunctionCall","src":"3925:21:88"},"nativeSrc":"3925:21:88","nodeType":"YulExpressionStatement","src":"3925:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3966:9:88","nodeType":"YulIdentifier","src":"3966:9:88"},{"kind":"number","nativeSrc":"3977:2:88","nodeType":"YulLiteral","src":"3977:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3962:3:88","nodeType":"YulIdentifier","src":"3962:3:88"},"nativeSrc":"3962:18:88","nodeType":"YulFunctionCall","src":"3962:18:88"},{"kind":"number","nativeSrc":"3982:2:88","nodeType":"YulLiteral","src":"3982:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"3955:6:88","nodeType":"YulIdentifier","src":"3955:6:88"},"nativeSrc":"3955:30:88","nodeType":"YulFunctionCall","src":"3955:30:88"},"nativeSrc":"3955:30:88","nodeType":"YulExpressionStatement","src":"3955:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4005:9:88","nodeType":"YulIdentifier","src":"4005:9:88"},{"kind":"number","nativeSrc":"4016:2:88","nodeType":"YulLiteral","src":"4016:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4001:3:88","nodeType":"YulIdentifier","src":"4001:3:88"},"nativeSrc":"4001:18:88","nodeType":"YulFunctionCall","src":"4001:18:88"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"4021:34:88","nodeType":"YulLiteral","src":"4021:34:88","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"3994:6:88","nodeType":"YulIdentifier","src":"3994:6:88"},"nativeSrc":"3994:62:88","nodeType":"YulFunctionCall","src":"3994:62:88"},"nativeSrc":"3994:62:88","nodeType":"YulExpressionStatement","src":"3994:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4076:9:88","nodeType":"YulIdentifier","src":"4076:9:88"},{"kind":"number","nativeSrc":"4087:2:88","nodeType":"YulLiteral","src":"4087:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4072:3:88","nodeType":"YulIdentifier","src":"4072:3:88"},"nativeSrc":"4072:18:88","nodeType":"YulFunctionCall","src":"4072:18:88"},{"hexValue":"7373","kind":"string","nativeSrc":"4092:4:88","nodeType":"YulLiteral","src":"4092:4:88","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"4065:6:88","nodeType":"YulIdentifier","src":"4065:6:88"},"nativeSrc":"4065:32:88","nodeType":"YulFunctionCall","src":"4065:32:88"},"nativeSrc":"4065:32:88","nodeType":"YulExpressionStatement","src":"4065:32:88"},{"nativeSrc":"4106:27:88","nodeType":"YulAssignment","src":"4106:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4118:9:88","nodeType":"YulIdentifier","src":"4118:9:88"},{"kind":"number","nativeSrc":"4129:3:88","nodeType":"YulLiteral","src":"4129:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4114:3:88","nodeType":"YulIdentifier","src":"4114:3:88"},"nativeSrc":"4114:19:88","nodeType":"YulFunctionCall","src":"4114:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4106:4:88","nodeType":"YulIdentifier","src":"4106:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3741:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3892:9:88","nodeType":"YulTypedName","src":"3892:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3906:4:88","nodeType":"YulTypedName","src":"3906:4:88","type":""}],"src":"3741:398:88"},{"body":{"nativeSrc":"4318:179:88","nodeType":"YulBlock","src":"4318:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4335:9:88","nodeType":"YulIdentifier","src":"4335:9:88"},{"kind":"number","nativeSrc":"4346:2:88","nodeType":"YulLiteral","src":"4346:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4328:6:88","nodeType":"YulIdentifier","src":"4328:6:88"},"nativeSrc":"4328:21:88","nodeType":"YulFunctionCall","src":"4328:21:88"},"nativeSrc":"4328:21:88","nodeType":"YulExpressionStatement","src":"4328:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4369:9:88","nodeType":"YulIdentifier","src":"4369:9:88"},{"kind":"number","nativeSrc":"4380:2:88","nodeType":"YulLiteral","src":"4380:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4365:3:88","nodeType":"YulIdentifier","src":"4365:3:88"},"nativeSrc":"4365:18:88","nodeType":"YulFunctionCall","src":"4365:18:88"},{"kind":"number","nativeSrc":"4385:2:88","nodeType":"YulLiteral","src":"4385:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"4358:6:88","nodeType":"YulIdentifier","src":"4358:6:88"},"nativeSrc":"4358:30:88","nodeType":"YulFunctionCall","src":"4358:30:88"},"nativeSrc":"4358:30:88","nodeType":"YulExpressionStatement","src":"4358:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4408:9:88","nodeType":"YulIdentifier","src":"4408:9:88"},{"kind":"number","nativeSrc":"4419:2:88","nodeType":"YulLiteral","src":"4419:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4404:3:88","nodeType":"YulIdentifier","src":"4404:3:88"},"nativeSrc":"4404:18:88","nodeType":"YulFunctionCall","src":"4404:18:88"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"4424:31:88","nodeType":"YulLiteral","src":"4424:31:88","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"4397:6:88","nodeType":"YulIdentifier","src":"4397:6:88"},"nativeSrc":"4397:59:88","nodeType":"YulFunctionCall","src":"4397:59:88"},"nativeSrc":"4397:59:88","nodeType":"YulExpressionStatement","src":"4397:59:88"},{"nativeSrc":"4465:26:88","nodeType":"YulAssignment","src":"4465:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4477:9:88","nodeType":"YulIdentifier","src":"4477:9:88"},{"kind":"number","nativeSrc":"4488:2:88","nodeType":"YulLiteral","src":"4488:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4473:3:88","nodeType":"YulIdentifier","src":"4473:3:88"},"nativeSrc":"4473:18:88","nodeType":"YulFunctionCall","src":"4473:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4465:4:88","nodeType":"YulIdentifier","src":"4465:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4144:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4295:9:88","nodeType":"YulTypedName","src":"4295:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4309:4:88","nodeType":"YulTypedName","src":"4309:4:88","type":""}],"src":"4144:353:88"},{"body":{"nativeSrc":"4676:227:88","nodeType":"YulBlock","src":"4676:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4693:9:88","nodeType":"YulIdentifier","src":"4693:9:88"},{"kind":"number","nativeSrc":"4704:2:88","nodeType":"YulLiteral","src":"4704:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:88","nodeType":"YulIdentifier","src":"4686:6:88"},"nativeSrc":"4686:21:88","nodeType":"YulFunctionCall","src":"4686:21:88"},"nativeSrc":"4686:21:88","nodeType":"YulExpressionStatement","src":"4686:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4727:9:88","nodeType":"YulIdentifier","src":"4727:9:88"},{"kind":"number","nativeSrc":"4738:2:88","nodeType":"YulLiteral","src":"4738:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4723:3:88","nodeType":"YulIdentifier","src":"4723:3:88"},"nativeSrc":"4723:18:88","nodeType":"YulFunctionCall","src":"4723:18:88"},{"kind":"number","nativeSrc":"4743:2:88","nodeType":"YulLiteral","src":"4743:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"4716:6:88","nodeType":"YulIdentifier","src":"4716:6:88"},"nativeSrc":"4716:30:88","nodeType":"YulFunctionCall","src":"4716:30:88"},"nativeSrc":"4716:30:88","nodeType":"YulExpressionStatement","src":"4716:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4766:9:88","nodeType":"YulIdentifier","src":"4766:9:88"},{"kind":"number","nativeSrc":"4777:2:88","nodeType":"YulLiteral","src":"4777:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4762:3:88","nodeType":"YulIdentifier","src":"4762:3:88"},"nativeSrc":"4762:18:88","nodeType":"YulFunctionCall","src":"4762:18:88"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"4782:34:88","nodeType":"YulLiteral","src":"4782:34:88","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"4755:6:88","nodeType":"YulIdentifier","src":"4755:6:88"},"nativeSrc":"4755:62:88","nodeType":"YulFunctionCall","src":"4755:62:88"},"nativeSrc":"4755:62:88","nodeType":"YulExpressionStatement","src":"4755:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4837:9:88","nodeType":"YulIdentifier","src":"4837:9:88"},{"kind":"number","nativeSrc":"4848:2:88","nodeType":"YulLiteral","src":"4848:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4833:3:88","nodeType":"YulIdentifier","src":"4833:3:88"},"nativeSrc":"4833:18:88","nodeType":"YulFunctionCall","src":"4833:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"4853:7:88","nodeType":"YulLiteral","src":"4853:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"4826:6:88","nodeType":"YulIdentifier","src":"4826:6:88"},"nativeSrc":"4826:35:88","nodeType":"YulFunctionCall","src":"4826:35:88"},"nativeSrc":"4826:35:88","nodeType":"YulExpressionStatement","src":"4826:35:88"},{"nativeSrc":"4870:27:88","nodeType":"YulAssignment","src":"4870:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4882:9:88","nodeType":"YulIdentifier","src":"4882:9:88"},{"kind":"number","nativeSrc":"4893:3:88","nodeType":"YulLiteral","src":"4893:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4878:3:88","nodeType":"YulIdentifier","src":"4878:3:88"},"nativeSrc":"4878:19:88","nodeType":"YulFunctionCall","src":"4878:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4870:4:88","nodeType":"YulIdentifier","src":"4870:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4502:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4653:9:88","nodeType":"YulTypedName","src":"4653:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4667:4:88","nodeType":"YulTypedName","src":"4667:4:88","type":""}],"src":"4502:401:88"},{"body":{"nativeSrc":"5082:225:88","nodeType":"YulBlock","src":"5082:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5099:9:88","nodeType":"YulIdentifier","src":"5099:9:88"},{"kind":"number","nativeSrc":"5110:2:88","nodeType":"YulLiteral","src":"5110:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5092:6:88","nodeType":"YulIdentifier","src":"5092:6:88"},"nativeSrc":"5092:21:88","nodeType":"YulFunctionCall","src":"5092:21:88"},"nativeSrc":"5092:21:88","nodeType":"YulExpressionStatement","src":"5092:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5133:9:88","nodeType":"YulIdentifier","src":"5133:9:88"},{"kind":"number","nativeSrc":"5144:2:88","nodeType":"YulLiteral","src":"5144:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5129:3:88","nodeType":"YulIdentifier","src":"5129:3:88"},"nativeSrc":"5129:18:88","nodeType":"YulFunctionCall","src":"5129:18:88"},{"kind":"number","nativeSrc":"5149:2:88","nodeType":"YulLiteral","src":"5149:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"5122:6:88","nodeType":"YulIdentifier","src":"5122:6:88"},"nativeSrc":"5122:30:88","nodeType":"YulFunctionCall","src":"5122:30:88"},"nativeSrc":"5122:30:88","nodeType":"YulExpressionStatement","src":"5122:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5172:9:88","nodeType":"YulIdentifier","src":"5172:9:88"},{"kind":"number","nativeSrc":"5183:2:88","nodeType":"YulLiteral","src":"5183:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5168:3:88","nodeType":"YulIdentifier","src":"5168:3:88"},"nativeSrc":"5168:18:88","nodeType":"YulFunctionCall","src":"5168:18:88"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"5188:34:88","nodeType":"YulLiteral","src":"5188:34:88","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"5161:6:88","nodeType":"YulIdentifier","src":"5161:6:88"},"nativeSrc":"5161:62:88","nodeType":"YulFunctionCall","src":"5161:62:88"},"nativeSrc":"5161:62:88","nodeType":"YulExpressionStatement","src":"5161:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5243:9:88","nodeType":"YulIdentifier","src":"5243:9:88"},{"kind":"number","nativeSrc":"5254:2:88","nodeType":"YulLiteral","src":"5254:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5239:3:88","nodeType":"YulIdentifier","src":"5239:3:88"},"nativeSrc":"5239:18:88","nodeType":"YulFunctionCall","src":"5239:18:88"},{"hexValue":"657373","kind":"string","nativeSrc":"5259:5:88","nodeType":"YulLiteral","src":"5259:5:88","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"5232:6:88","nodeType":"YulIdentifier","src":"5232:6:88"},"nativeSrc":"5232:33:88","nodeType":"YulFunctionCall","src":"5232:33:88"},"nativeSrc":"5232:33:88","nodeType":"YulExpressionStatement","src":"5232:33:88"},{"nativeSrc":"5274:27:88","nodeType":"YulAssignment","src":"5274:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5286:9:88","nodeType":"YulIdentifier","src":"5286:9:88"},{"kind":"number","nativeSrc":"5297:3:88","nodeType":"YulLiteral","src":"5297:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5282:3:88","nodeType":"YulIdentifier","src":"5282:3:88"},"nativeSrc":"5282:19:88","nodeType":"YulFunctionCall","src":"5282:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5274:4:88","nodeType":"YulIdentifier","src":"5274:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4908:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5059:9:88","nodeType":"YulTypedName","src":"5059:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5073:4:88","nodeType":"YulTypedName","src":"5073:4:88","type":""}],"src":"4908:399:88"},{"body":{"nativeSrc":"5486:228:88","nodeType":"YulBlock","src":"5486:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5503:9:88","nodeType":"YulIdentifier","src":"5503:9:88"},{"kind":"number","nativeSrc":"5514:2:88","nodeType":"YulLiteral","src":"5514:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5496:6:88","nodeType":"YulIdentifier","src":"5496:6:88"},"nativeSrc":"5496:21:88","nodeType":"YulFunctionCall","src":"5496:21:88"},"nativeSrc":"5496:21:88","nodeType":"YulExpressionStatement","src":"5496:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5537:9:88","nodeType":"YulIdentifier","src":"5537:9:88"},{"kind":"number","nativeSrc":"5548:2:88","nodeType":"YulLiteral","src":"5548:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5533:3:88","nodeType":"YulIdentifier","src":"5533:3:88"},"nativeSrc":"5533:18:88","nodeType":"YulFunctionCall","src":"5533:18:88"},{"kind":"number","nativeSrc":"5553:2:88","nodeType":"YulLiteral","src":"5553:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"5526:6:88","nodeType":"YulIdentifier","src":"5526:6:88"},"nativeSrc":"5526:30:88","nodeType":"YulFunctionCall","src":"5526:30:88"},"nativeSrc":"5526:30:88","nodeType":"YulExpressionStatement","src":"5526:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5576:9:88","nodeType":"YulIdentifier","src":"5576:9:88"},{"kind":"number","nativeSrc":"5587:2:88","nodeType":"YulLiteral","src":"5587:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5572:3:88","nodeType":"YulIdentifier","src":"5572:3:88"},"nativeSrc":"5572:18:88","nodeType":"YulFunctionCall","src":"5572:18:88"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"5592:34:88","nodeType":"YulLiteral","src":"5592:34:88","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"5565:6:88","nodeType":"YulIdentifier","src":"5565:6:88"},"nativeSrc":"5565:62:88","nodeType":"YulFunctionCall","src":"5565:62:88"},"nativeSrc":"5565:62:88","nodeType":"YulExpressionStatement","src":"5565:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5647:9:88","nodeType":"YulIdentifier","src":"5647:9:88"},{"kind":"number","nativeSrc":"5658:2:88","nodeType":"YulLiteral","src":"5658:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5643:3:88","nodeType":"YulIdentifier","src":"5643:3:88"},"nativeSrc":"5643:18:88","nodeType":"YulFunctionCall","src":"5643:18:88"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"5663:8:88","nodeType":"YulLiteral","src":"5663:8:88","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"5636:6:88","nodeType":"YulIdentifier","src":"5636:6:88"},"nativeSrc":"5636:36:88","nodeType":"YulFunctionCall","src":"5636:36:88"},"nativeSrc":"5636:36:88","nodeType":"YulExpressionStatement","src":"5636:36:88"},{"nativeSrc":"5681:27:88","nodeType":"YulAssignment","src":"5681:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5693:9:88","nodeType":"YulIdentifier","src":"5693:9:88"},{"kind":"number","nativeSrc":"5704:3:88","nodeType":"YulLiteral","src":"5704:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5689:3:88","nodeType":"YulIdentifier","src":"5689:3:88"},"nativeSrc":"5689:19:88","nodeType":"YulFunctionCall","src":"5689:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5681:4:88","nodeType":"YulIdentifier","src":"5681:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5312:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5463:9:88","nodeType":"YulTypedName","src":"5463:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5477:4:88","nodeType":"YulTypedName","src":"5477:4:88","type":""}],"src":"5312:402:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011f57806370a082311461013257806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063dd62ed3e14610188575f5ffd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f5ffd5b6100b261019b565b6040516100bf919061068a565b60405180910390f35b6100db6100d63660046106da565b61022b565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b366004610702565b610244565b604051601281526020016100bf565b6100db61012d3660046106da565b610267565b6100ef61014036600461073c565b6001600160a01b03165f9081526020819052604090205490565b6100b2610288565b6100db6101703660046106da565b610297565b6100db6101833660046106da565b610316565b6100ef61019636600461075c565b610323565b6060600380546101aa9061078d565b80601f01602080910402602001604051908101604052809291908181526020018280546101d69061078d565b80156102215780601f106101f857610100808354040283529160200191610221565b820191905f5260205f20905b81548152906001019060200180831161020457829003601f168201915b5050505050905090565b5f3361023881858561034d565b60019150505b92915050565b5f33610251858285610470565b61025c8585856104e8565b506001949350505050565b5f336102388185856102798383610323565b61028391906107c5565b61034d565b6060600480546101aa9061078d565b5f33816102a48286610323565b9050838110156103095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61025c828686840361034d565b5f336102388185856104e8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610300565b6001600160a01b0382166104105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610300565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61047b8484610323565b90505f1981146104e257818110156104d55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610300565b6104e2848484840361034d565b50505050565b6001600160a01b03831661054c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610300565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610300565b6001600160a01b0383165f90815260208190526040902054818110156106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610300565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e2565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146106d5575f5ffd5b919050565b5f5f604083850312156106eb575f5ffd5b6106f4836106bf565b946020939093013593505050565b5f5f5f60608486031215610714575f5ffd5b61071d846106bf565b925061072b602085016106bf565b929592945050506040919091013590565b5f6020828403121561074c575f5ffd5b610755826106bf565b9392505050565b5f5f6040838503121561076d575f5ffd5b610776836106bf565b9150610784602084016106bf565b90509250929050565b600181811c908216806107a157607f821691505b6020821081036107bf57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffdfea264697066735822122079f4b272973773fde252fc9c6bde7e9342fbf49de7dbeb07fe450d125ab8619164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15A JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x188 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x110 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x19B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x22B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH2 0xDB PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x702 JUMP JUMPDEST PUSH2 0x244 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF JUMP JUMPDEST PUSH2 0xDB PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x267 JUMP JUMPDEST PUSH2 0xEF PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0x73C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x288 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x316 JUMP JUMPDEST PUSH2 0xEF PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x75C JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AA SWAP1 PUSH2 0x78D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D6 SWAP1 PUSH2 0x78D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x221 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x221 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x204 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x251 DUP6 DUP3 DUP6 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x25C DUP6 DUP6 DUP6 PUSH2 0x4E8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x279 DUP4 DUP4 PUSH2 0x323 JUMP JUMPDEST PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x7C5 JUMP JUMPDEST PUSH2 0x34D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AA SWAP1 PUSH2 0x78D JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A4 DUP3 DUP7 PUSH2 0x323 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x25C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x34D JUMP JUMPDEST PUSH0 CALLER PUSH2 0x238 DUP2 DUP6 DUP6 PUSH2 0x4E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x410 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47B DUP5 DUP5 PUSH2 0x323 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x4E2 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x300 JUMP JUMPDEST PUSH2 0x4E2 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x34D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x54C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x625 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x300 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6EB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x6F4 DUP4 PUSH2 0x6BF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x714 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x71D DUP5 PUSH2 0x6BF JUMP JUMPDEST SWAP3 POP PUSH2 0x72B PUSH1 0x20 DUP6 ADD PUSH2 0x6BF JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x74C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x755 DUP3 PUSH2 0x6BF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x76D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x776 DUP4 PUSH2 0x6BF JUMP JUMPDEST SWAP2 POP PUSH2 0x784 PUSH1 0x20 DUP5 ADD PUSH2 0x6BF JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7A1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0xF4B272973773FDE252FC9C6BDE7E9342FBF49DE7DBEB07FE450D SLT GAS 0xB8 PUSH2 0x9164 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"1532:11312:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:88;;1078:22;1060:41;;1048:2;1033:18;4444:197:30;920:187:88;3255:106:30;3342:12;;3255:106;;;1258:25:88;;;1246:2;1231:18;3255:106:30;1112:177:88;5203:256:30;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1815:36:88;;1803:2;1788:18;3104:91:30;1673:184:88;5854:234:30;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:30;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:39;4581:32:30;734:10:39;4597:7:30;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:39;5356:38:30;5372:4;734:10:39;5387:6:30;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:30;;5203:256;-1:-1:-1;;;;5203:256:30:o;5854:234::-;5942:4;734:10:39;5996:64:30;734:10:39;6012:7:30;6049:10;6021:25;734:10:39;6012:7:30;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:39;6668:4:30;6749:25;734:10:39;6766:7:30;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:30;;3132:2:88;6784:85:30;;;3114:21:88;3171:2;3151:18;;;3144:30;3210:34;3190:18;;;3183:62;-1:-1:-1;;;3261:18:88;;;3254:35;3306:19;;6784:85:30;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:39;3873:28:30;734:10:39;3890:2:30;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:30;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:30;;10550:68;;;;-1:-1:-1;;;10550:68:30;;3538:2:88;10550:68:30;;;3520:21:88;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;-1:-1:-1;;;3667:18:88;;;3660:34;3711:19;;10550:68:30;3336:400:88;10550:68:30;-1:-1:-1;;;;;10636:21:30;;10628:68;;;;-1:-1:-1;;;10628:68:30;;3943:2:88;10628:68:30;;;3925:21:88;3982:2;3962:18;;;3955:30;4021:34;4001:18;;;3994:62;-1:-1:-1;;;4072:18:88;;;4065:32;4114:19;;10628:68:30;3741:398:88;10628:68:30;-1:-1:-1;;;;;10707:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1258:25:88;;;10758:32:30;;1231:18:88;10758:32:30;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:30;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:30;;4346:2:88;11297:68:30;;;4328:21:88;4385:2;4365:18;;;4358:30;4424:31;4404:18;;;4397:59;4473:18;;11297:68:30;4144:353:88;11297:68:30;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:30;;7544:68;;;;-1:-1:-1;;;7544:68:30;;4704:2:88;7544:68:30;;;4686:21:88;4743:2;4723:18;;;4716:30;4782:34;4762:18;;;4755:62;-1:-1:-1;;;4833:18:88;;;4826:35;4878:19;;7544:68:30;4502:401:88;7544:68:30;-1:-1:-1;;;;;7630:16:30;;7622:64;;;;-1:-1:-1;;;7622:64:30;;5110:2:88;7622:64:30;;;5092:21:88;5149:2;5129:18;;;5122:30;5188:34;5168:18;;;5161:62;-1:-1:-1;;;5239:18:88;;;5232:33;5282:19;;7622:64:30;4908:399:88;7622:64:30;-1:-1:-1;;;;;7768:15:30;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:30;;5514:2:88;7793:72:30;;;5496:21:88;5553:2;5533:18;;;5526:30;5592:34;5572:18;;;5565:62;-1:-1:-1;;;5643:18:88;;;5636:36;5689:19;;7793:72:30;5312:402:88;7793:72:30;-1:-1:-1;;;;;7899:15:30;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1258:25:88;;;8114:13:30;;8163:26;;1231:18:88;8163:26:30;;;;;;;8200:37;12073:91;14:418:88;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:88;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:88:o;1294:374::-;1371:6;1379;1387;1440:2;1428:9;1419:7;1415:23;1411:32;1408:52;;;1456:1;1453;1446:12;1408:52;1479:29;1498:9;1479:29;:::i;:::-;1469:39;;1527:38;1561:2;1550:9;1546:18;1527:38;:::i;:::-;1294:374;;1517:48;;-1:-1:-1;;;1634:2:88;1619:18;;;;1606:32;;1294:374::o;1862:186::-;1921:6;1974:2;1962:9;1953:7;1949:23;1945:32;1942:52;;;1990:1;1987;1980:12;1942:52;2013:29;2032:9;2013:29;:::i;:::-;2003:39;1862:186;-1:-1:-1;;;1862:186:88:o;2053:260::-;2121:6;2129;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2221:29;2240:9;2221:29;:::i;:::-;2211:39;;2269:38;2303:2;2292:9;2288:18;2269:38;:::i;:::-;2259:48;;2053:260;;;;;:::o;2318:380::-;2397:1;2393:12;;;;2440;;;2461:61;;2515:4;2507:6;2503:17;2493:27;;2461:61;2568:2;2560:6;2557:14;2537:18;2534:38;2531:161;;2614:10;2609:3;2605:20;2602:1;2595:31;2649:4;2646:1;2639:15;2677:4;2674:1;2667:15;2531:161;;2318:380;;;:::o;2703:222::-;2768:9;;;2789:10;;;2786:133;;;2841:10;2836:3;2832:20;2829:1;2822:31;2876:4;2873:1;2866:15;2904:4;2901:1;2894:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"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\":[{\"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\":\"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\":[{\"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\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4765,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4771,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4773,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4775,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4777,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"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":[{"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":"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"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\":\"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\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol":{"ERC4626":{"abi":[{"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":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","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":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(uint256,address)":"6e553f65","increaseAllowance(address,uint256)":"39509351","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the ERC4626 \\\"Tokenized Vault Standard\\\" as defined in https://eips.ethereum.org/EIPS/eip-4626[EIP-4626]. This extension allows the minting and burning of \\\"shares\\\" (represented using the ERC20 inheritance) in exchange for underlying \\\"assets\\\" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends the ERC20 standard. Any additional extensions included along it would affect the \\\"shares\\\" token represented by this contract and not the \\\"assets\\\" token which is an independent contract. [CAUTION] ==== In empty (or nearly empty) ERC-4626 vaults, deposits are at high risk of being stolen through frontrunning with a \\\"donation\\\" to the vault that inflates the price of a share. This is variously known as a donation or inflation attack and is essentially a problem of slippage. Vault deployers can protect against this attack by making an initial deposit of a non-trivial amount of the asset, such that price manipulation becomes infeasible. Withdrawals may similarly be affected by slippage. Users can protect against this attack as well as unexpected slippage in general by verifying the amount received is as expected, using a wrapper that performs these checks such as https://github.com/fei-protocol/ERC4626#erc4626router-and-base[ERC4626Router]. Since v4.9, this implementation uses virtual assets and shares to mitigate that risk. The `_decimalsOffset()` corresponds to an offset in the decimal representation between the underlying asset's decimals and the vault decimals. This offset also determines the rate of virtual shares to virtual assets in the vault, which itself determines the initial exchange rate. While not fully preventing the attack, analysis shows that the default offset (0) makes it non-profitable, as a result of the value being captured by the virtual shares (out of the attacker's donation) matching the attacker's expected gains. With a larger offset, the attack becomes orders of magnitude more expensive than it is profitable. More details about the underlying math can be found xref:erc4626.adoc#inflation-attack[here]. The drawback of this approach is that the virtual shares do capture (a very small) part of the value being accrued to the vault. Also, if the vault experiences losses, the users try to exit the vault, the virtual shares and assets will cause the first user to exit to experience reduced losses in detriment to the last users that will experience bigger losses. Developers willing to revert back to the pre-v4.9 behavior just need to override the `_convertToShares` and `_convertToAssets` functions. To learn more, check out our xref:ROOT:erc4626.adoc[ERC-4626 guide]. ==== _Available since v4.7._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Set the underlying asset contract. This must be an ERC20-compatible contract (ERC20 or ERC777).\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. As opposed to {deposit}, minting is allowed even if the vault is in a state where the price of a share is zero. In this case, the shares will be minted without requiring any assets to be deposited.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol\":\"ERC4626\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x5a173dcd1c1f0074e4df6a9cdab3257e17f2e64f7b8f30ca9e17a8c5ea250e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7883819ce2b72264a756063ae578661f62b23f4104b08e9565ac075e619f6ce3\",\"dweb:/ipfs/QmcSZdFiEQkWRmZQhnCdfH9ychooV81pBjr7hfaiYiNZT2\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xa0ebd2a1608780392e5bc8805079b1a1961ebd73128ee23ab7149e7f6904fa53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7767ecfd8f8c30fb97fe2dc3b63e96f4593e458551c44e901a3acd4ed930d32c\",\"dweb:/ipfs/QmPJDWJBrzeCee7PqrixFwuCYhsEnFXcQqV6Z6FFdJSNpd\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4765,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol:ERC4626","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4771,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol:ERC4626","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4773,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol:ERC4626","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4775,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol:ERC4626","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4777,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol:ERC4626","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"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":[{"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":"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"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\":\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220461d749d26e2b5b8bebd642ce21f4643d8d72376eba17d519055fc688f9a3f9f64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID SAR PUSH21 0x9D26E2B5B8BEBD642CE21F4643D8D72376EBA17D51 SWAP1 SSTORE 0xFC PUSH9 0x8F9A3F9F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"701:6234:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:35;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220461d749d26e2b5b8bebd642ce21f4643d8d72376eba17d519055fc688f9a3f9f64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID SAR PUSH21 0x9D26E2B5B8BEBD642CE21F4643D8D72376EBA17D51 SWAP1 SSTORE 0xFC PUSH9 0x8F9A3F9F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"701:6234:35:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212206c7d911629642834e17f48084771891a63becfff42df4382177de78bc87ab4b864736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH13 0x7D911629642834E17F48084771 DUP10 BYTE PUSH4 0xBECFFF42 0xDF NUMBER DUP3 OR PUSH30 0xE78BC87AB4B864736F6C634300081C003300000000000000000000000000 ","sourceMap":"194:9169:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9169:38;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212206c7d911629642834e17f48084771891a63becfff42df4382177de78bc87ab4b864736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH13 0x7D911629642834E17F48084771 DUP10 BYTE PUSH4 0xBECFFF42 0xDF NUMBER DUP3 OR PUSH30 0xE78BC87AB4B864736F6C634300081C003300000000000000000000000000 ","sourceMap":"194:9169:38:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220911782e825f0bd7408427513e65e300fa2754cc90f87177761d702915d955eb864736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 OR DUP3 0xE8 0x25 CREATE 0xBD PUSH21 0x8427513E65E300FA2754CC90F87177761D702915D SWAP6 MCOPY 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1420:2685:40:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1420:2685:40;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220911782e825f0bd7408427513e65e300fa2754cc90f87177761d702915d955eb864736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 OR DUP3 0xE8 0x25 CREATE 0xBD PUSH21 0x8427513E65E300FA2754CC90F87177761D702915D SWAP6 MCOPY 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1420:2685:40:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ _Available since v4.9 for `string`, `bytes`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207a904837480787b5ee138eb2dbe52e9c708a246f5f687d71793e36d66c10b79464736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x904837480787B5EE138EB2DBE52E9C708A246F5F687D71793E36D6 PUSH13 0x10B79464736F6C634300081C00 CALLER ","sourceMap":"220:2559:41:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:41;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207a904837480787b5ee138eb2dbe52e9c708a246f5f687d71793e36d66c10b79464736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x904837480787B5EE138EB2DBE52E9C708A246F5F687D71793E36D6 PUSH13 0x10B79464736F6C634300081C00 CALLER ","sourceMap":"220:2559:41:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122009a6d0ef586ee66475526f61e0d91fb4ecefe79cac927ad799755daaabde088464736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD 0xA6 0xD0 0xEF PC PUSH15 0xE66475526F61E0D91FB4ECEFE79CAC SWAP3 PUSH27 0xD799755DAAABDE088464736F6C634300081C003300000000000000 ","sourceMap":"369:8761:42:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8761:42;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122009a6d0ef586ee66475526f61e0d91fb4ecefe79cac927ad799755daaabde088464736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MULMOD 0xA6 0xD0 0xEF PC PUSH15 0xE66475526F61E0D91FB4ECEFE79CAC SWAP3 PUSH27 0xD799755DAAABDE088464736F6C634300081C003300000000000000 ","sourceMap":"369:8761:42:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol":{"ERC165Checker":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122035fdab282c1cca5934c1d279fdc09674535d218866fabaed5a11c6b21b6e14c964736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD REVERT 0xAB 0x28 0x2C SHR 0xCA MSIZE CALLVALUE 0xC1 0xD2 PUSH26 0xFDC09674535D218866FABAED5A11C6B21B6E14C964736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"449:4621:43:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;449:4621:43;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122035fdab282c1cca5934c1d279fdc09674535d218866fabaed5a11c6b21b6e14c964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD REVERT 0xAB 0x28 0x2C SHR 0xCA MSIZE CALLVALUE 0xC1 0xD2 PUSH26 0xFDC09674535D218866FABAED5A11C6B21B6E14C964736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"449:4621:43:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220a3c325552550db71cbc5358ea50575b6815c8782ee62af5c899dd46303a7969b64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xC3 0x25 SSTORE 0x25 POP 0xDB PUSH18 0xCBC5358EA50575B6815C8782EE62AF5C899D 0xD4 PUSH4 0x3A7969B PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"202:12582:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220a3c325552550db71cbc5358ea50575b6815c8782ee62af5c899dd46303a7969b64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xC3 0x25 SSTORE 0x25 POP 0xDB PUSH18 0xCBC5358EA50575B6815C8782EE62AF5C899D 0xD4 PUSH4 0x3A7969B PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"202:12582:45:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212204e8e04df2518c28f8de43f80d0a593f2de29fa916f058c8fab60a18c03ed0d6f64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E DUP15 DIV 0xDF 0x25 XOR 0xC2 DUP16 DUP14 0xE4 EXTCODEHASH DUP1 0xD0 0xA5 SWAP4 CALLCODE 0xDE 0x29 STATICCALL SWAP2 PUSH16 0x58C8FAB60A18C03ED0D6F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"927:34153:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;927:34153:46;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212204e8e04df2518c28f8de43f80d0a593f2de29fa916f058c8fab60a18c03ed0d6f64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E DUP15 DIV 0xDF 0x25 XOR 0xC2 DUP16 DUP14 0xE4 EXTCODEHASH DUP1 0xD0 0xA5 SWAP4 CALLCODE 0xDE 0x29 STATICCALL SWAP2 PUSH16 0x58C8FAB60A18C03ED0D6F64736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"927:34153:46:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always. Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing all math on `uint256` and `int256` and then downcasting.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122033a8c724c3f00fa2bfa9dabf0e171c55886d4c4cc8fa1b306fe828ed815767a664736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xA8 0xC7 0x24 0xC3 CREATE 0xF LOG2 0xBF 0xA9 0xDA 0xBF 0xE OR SHR SSTORE DUP9 PUSH14 0x4C4CC8FA1B306FE828ED815767A6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"215:1047:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:47;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122033a8c724c3f00fa2bfa9dabf0e171c55886d4c4cc8fa1b306fe828ed815767a664736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xA8 0xC7 0x24 0xC3 CREATE 0xF LOG2 0xBF 0xA9 0xDA 0xBF 0xE OR SHR SSTORE DUP9 PUSH14 0x4C4CC8FA1B306FE828ED815767A6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"215:1047:47:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/AccessManager.sol":{"AccessManager":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"ANY_COMPONENT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GUARDIAN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"checkComponentRole","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role1","type":"bytes32"},{"internalType":"bytes32","name":"role2","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"checkComponentRole2","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"checkRole","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role1","type":"bytes32"},{"internalType":"bytes32","name":"role2","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"checkRole2","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getComponentRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantComponentRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"hasComponentRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}],"name":"setComponentRoleAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}],"name":"setRoleAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_10520":{"entryPoint":null,"id":10520,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":33,"id":925,"parameterSlots":0,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:608:88","nodeType":"YulBlock","src":"0:608:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"188:229:88","nodeType":"YulBlock","src":"188:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"205:9:88","nodeType":"YulIdentifier","src":"205:9:88"},{"kind":"number","nativeSrc":"216:2:88","nodeType":"YulLiteral","src":"216:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"198:6:88","nodeType":"YulIdentifier","src":"198:6:88"},"nativeSrc":"198:21:88","nodeType":"YulFunctionCall","src":"198:21:88"},"nativeSrc":"198:21:88","nodeType":"YulExpressionStatement","src":"198:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"239:9:88","nodeType":"YulIdentifier","src":"239:9:88"},{"kind":"number","nativeSrc":"250:2:88","nodeType":"YulLiteral","src":"250:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"235:3:88","nodeType":"YulIdentifier","src":"235:3:88"},"nativeSrc":"235:18:88","nodeType":"YulFunctionCall","src":"235:18:88"},{"kind":"number","nativeSrc":"255:2:88","nodeType":"YulLiteral","src":"255:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"228:6:88","nodeType":"YulIdentifier","src":"228:6:88"},"nativeSrc":"228:30:88","nodeType":"YulFunctionCall","src":"228:30:88"},"nativeSrc":"228:30:88","nodeType":"YulExpressionStatement","src":"228:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"278:9:88","nodeType":"YulIdentifier","src":"278:9:88"},{"kind":"number","nativeSrc":"289:2:88","nodeType":"YulLiteral","src":"289:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"274:3:88","nodeType":"YulIdentifier","src":"274:3:88"},"nativeSrc":"274:18:88","nodeType":"YulFunctionCall","src":"274:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"294:34:88","nodeType":"YulLiteral","src":"294:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"267:6:88","nodeType":"YulIdentifier","src":"267:6:88"},"nativeSrc":"267:62:88","nodeType":"YulFunctionCall","src":"267:62:88"},"nativeSrc":"267:62:88","nodeType":"YulExpressionStatement","src":"267:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"349:9:88","nodeType":"YulIdentifier","src":"349:9:88"},{"kind":"number","nativeSrc":"360:2:88","nodeType":"YulLiteral","src":"360:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"345:3:88","nodeType":"YulIdentifier","src":"345:3:88"},"nativeSrc":"345:18:88","nodeType":"YulFunctionCall","src":"345:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"365:9:88","nodeType":"YulLiteral","src":"365:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"338:6:88","nodeType":"YulIdentifier","src":"338:6:88"},"nativeSrc":"338:37:88","nodeType":"YulFunctionCall","src":"338:37:88"},"nativeSrc":"338:37:88","nodeType":"YulExpressionStatement","src":"338:37:88"},{"nativeSrc":"384:27:88","nodeType":"YulAssignment","src":"384:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"396:9:88","nodeType":"YulIdentifier","src":"396:9:88"},{"kind":"number","nativeSrc":"407:3:88","nodeType":"YulLiteral","src":"407:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"392:3:88","nodeType":"YulIdentifier","src":"392:3:88"},"nativeSrc":"392:19:88","nodeType":"YulFunctionCall","src":"392:19:88"},"variableNames":[{"name":"tail","nativeSrc":"384:4:88","nodeType":"YulIdentifier","src":"384:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"165:9:88","nodeType":"YulTypedName","src":"165:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"179:4:88","nodeType":"YulTypedName","src":"179:4:88","type":""}],"src":"14:403:88"},{"body":{"nativeSrc":"519:87:88","nodeType":"YulBlock","src":"519:87:88","statements":[{"nativeSrc":"529:26:88","nodeType":"YulAssignment","src":"529:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"541:9:88","nodeType":"YulIdentifier","src":"541:9:88"},{"kind":"number","nativeSrc":"552:2:88","nodeType":"YulLiteral","src":"552:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"537:3:88","nodeType":"YulIdentifier","src":"537:3:88"},"nativeSrc":"537:18:88","nodeType":"YulFunctionCall","src":"537:18:88"},"variableNames":[{"name":"tail","nativeSrc":"529:4:88","nodeType":"YulIdentifier","src":"529:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"571:9:88","nodeType":"YulIdentifier","src":"571:9:88"},{"arguments":[{"name":"value0","nativeSrc":"586:6:88","nodeType":"YulIdentifier","src":"586:6:88"},{"kind":"number","nativeSrc":"594:4:88","nodeType":"YulLiteral","src":"594:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"582:3:88","nodeType":"YulIdentifier","src":"582:3:88"},"nativeSrc":"582:17:88","nodeType":"YulFunctionCall","src":"582:17:88"}],"functionName":{"name":"mstore","nativeSrc":"564:6:88","nodeType":"YulIdentifier","src":"564:6:88"},"nativeSrc":"564:36:88","nodeType":"YulFunctionCall","src":"564:36:88"},"nativeSrc":"564:36:88","nodeType":"YulExpressionStatement","src":"564:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"422:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"488:9:88","nodeType":"YulTypedName","src":"488:9:88","type":""},{"name":"value0","nativeSrc":"499:6:88","nodeType":"YulTypedName","src":"499:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"510:4:88","nodeType":"YulTypedName","src":"510:4:88","type":""}],"src":"422:184:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405230608052348015610013575f5ffd5b5061001c610021565b6100dd565b5f54610100900460ff161561008c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100db575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161199b6101115f395f818161060101528181610641015281816106f70152818161073701526107c4015261199b5ff3fe608060405260043610610147575f3560e01c806352d1902d116100b3578063b3efcbd21161006d578063b3efcbd2146103c7578063c5b8f5cf146103e6578063d0b1825614610405578063d547741f14610424578063f67b2bad14610443578063f6a421fc14610476575f5ffd5b806352d1902d1461030f5780635ff57d20146103235780638129fc1c1461034257806391d1485414610356578063a217fddf14610375578063ad358f0714610388575f5ffd5b80632f2ff15d116101045780632f2ff15d1461024d57806336568abe1461026c5780633659cfe61461028b578063374c96c8146102aa5780634a47a3e0146102c95780634f1ef286146102fc575f5ffd5b806301ffc9a71461014b57806312d9a6ad1461017f5780631e4e0091146101a0578063248a9ca3146101bf57806324ea54f4146101fb5780632b1cff1f1461022e575b5f5ffd5b348015610156575f5ffd5b5061016a610165366004611370565b610495565b60405190151581526020015b60405180910390f35b34801561018a575f5ffd5b5061019e6101993660046113b2565b6104c0565b005b3480156101ab575f5ffd5b5061019e6101ba3660046113dc565b6104ce565b3480156101ca575f5ffd5b506101ed6101d93660046113fc565b5f9081526065602052604090206001015490565b604051908152602001610176565b348015610206575f5ffd5b506101ed7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b348015610239575f5ffd5b5061019e610248366004611422565b6104f7565b348015610258575f5ffd5b5061019e6102673660046113b2565b610554565b348015610277575f5ffd5b5061019e6102863660046113b2565b610578565b348015610296575f5ffd5b5061019e6102a5366004611475565b6105f7565b3480156102b5575f5ffd5b506101ed6102c436600461148e565b6106d4565b3480156102d4575f5ffd5b506101ed7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61019e61030a3660046114ca565b6106ed565b34801561031a575f5ffd5b506101ed6107b8565b34801561032e575f5ffd5b5061019e61033d36600461158e565b610869565b34801561034d575f5ffd5b5061019e610895565b348015610361575f5ffd5b5061016a6103703660046113b2565b6109af565b348015610380575f5ffd5b506101ed5f81565b348015610393575f5ffd5b506103af73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6040516001600160a01b039091168152602001610176565b3480156103d2575f5ffd5b5061016a6103e136600461158e565b6109d9565b3480156103f1575f5ffd5b5061019e6104003660046115d8565b610a10565b348015610410575f5ffd5b5061019e61041f36600461160a565b610a28565b34801561042f575f5ffd5b5061019e61043e3660046113b2565b610ad5565b34801561044e575f5ffd5b506101ed7fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b348015610481575f5ffd5b5061019e61049036600461163a565b610af9565b5f61049f82610ba0565b806104ba57506001600160e01b0319821663272b8c4760e01b145b92915050565b6104ca8282610bd4565b5050565b5f828152606560205260409020600101546104e881610c2d565b6104f28383610c37565b505050565b808015610509575061050984836109af565b61054d5761052061051a86866106d4565b836109af565b61054d57808015610536575061053683836109af565b61054d5761054d61054786856106d4565b83610bd4565b5050505050565b5f8281526065602052604090206001015461056e81610c2d565b6104f28383610c81565b6001600160a01b03811633146105ed5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104ca8282610d06565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361063f5760405162461bcd60e51b81526004016105e49061166a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106875f51602061191f5f395f51905f52546001600160a01b031690565b6001600160a01b0316146106ad5760405162461bcd60e51b81526004016105e4906116b6565b6106b681610d6c565b604080515f808252602082019092526106d191839190610dc6565b50565b60609190911b6bffffffffffffffffffffffff19161890565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107355760405162461bcd60e51b81526004016105e49061166a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661077d5f51602061191f5f395f51905f52546001600160a01b031690565b6001600160a01b0316146107a35760405162461bcd60e51b81526004016105e4906116b6565b6107ac82610d6c565b6104ca82826001610dc6565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108575760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105e4565b505f51602061191f5f395f51905f5290565b80158061087d575061087b83836109af565b155b1561088f5761088f61054785856106d4565b50505050565b5f54610100900460ff16158080156108b357505f54600160ff909116105b806108cc5750303b1580156108cc57505f5460ff166001145b61092f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105e4565b5f805460ff191660011790558015610950575f805461ff0019166101001790555b610958610f30565b610960610f30565b610968610f58565b80156106d1575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8180156109ec57506109ec84846109af565b80610a055750610a056109ff86866106d4565b846109af565b90505b949350505050565b610a1a83826109af565b6104f2576104f28282610bd4565b82826001600160a01b038216610a505760405162461bcd60e51b81526004016105e490611702565b610a66610a606101d984846106d4565b336109af565b80610aa657505f610a7a6101d984846106d4565b148015610aa65750610aa6610a606101d973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee846106d4565b610ac25760405162461bcd60e51b81526004016105e49061174e565b61054d610acf86866106d4565b84610c37565b5f82815260656020526040902060010154610aef81610c2d565b6104f28383610d06565b82826001600160a01b038216610b215760405162461bcd60e51b81526004016105e490611702565b610b31610a606101d984846106d4565b80610b7157505f610b456101d984846106d4565b148015610b715750610b71610a606101d973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee846106d4565b610b8d5760405162461bcd60e51b81526004016105e49061174e565b61054d610b9a86866106d4565b84610c81565b5f6001600160e01b03198216637965db0b60e01b14806104ba57506301ffc9a760e01b6001600160e01b03198316146104ba565b610bde82826109af565b6104ca57610beb81610f88565b610bf6836020610f9a565b604051602001610c079291906117b7565b60408051601f198184030181529082905262461bcd60e51b82526105e491600401611815565b6106d18133610bd4565b5f82815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b610c8b82826109af565b6104ca575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610cc23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610d1082826109af565b156104ca575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2610db882336109af565b6104f2576104f28133610bd4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610df9576104f283611137565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e53575060408051601f3d908101601f19168201909252610e509181019061184a565b60015b610eb65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105e4565b5f51602061191f5f395f51905f528114610f245760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105e4565b506104f28383836111d2565b5f54610100900460ff16610f565760405162461bcd60e51b81526004016105e490611861565b565b5f54610100900460ff16610f7e5760405162461bcd60e51b81526004016105e490611861565b610f565f336111f6565b60606104ba6001600160a01b03831660145b60605f610fa88360026118c0565b610fb39060026118d7565b67ffffffffffffffff811115610fcb57610fcb6114b6565b6040519080825280601f01601f191660200182016040528015610ff5576020820181803683370190505b509050600360fc1b815f8151811061100f5761100f6118ea565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061103d5761103d6118ea565b60200101906001600160f81b03191690815f1a9053505f61105f8460026118c0565b61106a9060016118d7565b90505b60018111156110e1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061109e5761109e6118ea565b1a60f81b8282815181106110b4576110b46118ea565b60200101906001600160f81b03191690815f1a90535060049490941c936110da816118fe565b905061106d565b5083156111305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105e4565b9392505050565b6001600160a01b0381163b6111a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105e4565b5f51602061191f5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6111db83611200565b5f825111806111e75750805b156104f25761088f838361123f565b6104ca8282610c81565b61120981611137565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611130838360405180606001604052806027815260200161193f6027913960605f5f856001600160a01b03168560405161127b9190611913565b5f60405180830381855af49150503d805f81146112b3576040519150601f19603f3d011682016040523d82523d5f602084013e6112b8565b606091505b50915091506112c9868383876112d3565b9695505050505050565b606083156113415782515f0361133a576001600160a01b0385163b61133a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e4565b5081610a08565b610a0883838151156113565781518083602001fd5b8060405162461bcd60e51b81526004016105e49190611815565b5f60208284031215611380575f5ffd5b81356001600160e01b031981168114611130575f5ffd5b80356001600160a01b03811681146113ad575f5ffd5b919050565b5f5f604083850312156113c3575f5ffd5b823591506113d360208401611397565b90509250929050565b5f5f604083850312156113ed575f5ffd5b50508035926020909101359150565b5f6020828403121561140c575f5ffd5b5035919050565b803580151581146113ad575f5ffd5b5f5f5f5f5f60a08688031215611436575f5ffd5b61143f86611397565b9450602086013593506040860135925061145b60608701611397565b915061146960808701611413565b90509295509295909350565b5f60208284031215611485575f5ffd5b61113082611397565b5f5f6040838503121561149f575f5ffd5b6114a883611397565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156114db575f5ffd5b6114e483611397565b9150602083013567ffffffffffffffff8111156114ff575f5ffd5b8301601f8101851361150f575f5ffd5b803567ffffffffffffffff811115611529576115296114b6565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611558576115586114b6565b60405281815282820160200187101561156f575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f608085870312156115a1575f5ffd5b6115aa85611397565b9350602085013592506115bf60408601611397565b91506115cd60608601611413565b905092959194509250565b5f5f5f606084860312156115ea575f5ffd5b833592506020840135915061160160408501611397565b90509250925092565b5f5f5f6060848603121561161c575f5ffd5b61162584611397565b95602085013595506040909401359392505050565b5f5f5f6060848603121561164c575f5ffd5b61165584611397565b92506020840135915061160160408501611397565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602c908201527f4163636573734d616e616765723a20696e76616c69642061646472657373206660408201526b1bdc8818dbdb5c1bdb995b9d60a21b606082015260800190565b60208082526032908201527f4163636573734d616e616765723a206d73672e73656e646572206e656564732060408201527131b7b6b837b732b73a2937b632a0b236b4b760711b606082015260800190565b5f81518060208401855e5f93019283525090919050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f6117e860178301856117a0565b7001034b99036b4b9b9b4b733903937b6329607d1b815261180c60118201856117a0565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561185a575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104ba576104ba6118ac565b808201808211156104ba576104ba6118ac565b634e487b7160e01b5f52603260045260245ffd5b5f8161190c5761190c6118ac565b505f190190565b5f61113082846117a056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d787cdec2d2da28483008026c9b6b7f5d7b27004ff08259aa61174f01cdcc8dd64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1C PUSH2 0x21 JUMP JUMPDEST PUSH2 0xDD JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0xDB JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x199B PUSH2 0x111 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x601 ADD MSTORE DUP2 DUP2 PUSH2 0x641 ADD MSTORE DUP2 DUP2 PUSH2 0x6F7 ADD MSTORE DUP2 DUP2 PUSH2 0x737 ADD MSTORE PUSH2 0x7C4 ADD MSTORE PUSH2 0x199B PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x147 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0xB3 JUMPI DUP1 PUSH4 0xB3EFCBD2 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xB3EFCBD2 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xC5B8F5CF EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xD0B18256 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF67B2BAD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0xF6A421FC EQ PUSH2 0x476 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x5FF57D20 EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xAD358F07 EQ PUSH2 0x388 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x104 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x374C96C8 EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x4A47A3E0 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2FC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x12D9A6AD EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x1E4E0091 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x24EA54F4 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x2B1CFF1F EQ PUSH2 0x22E JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x1BA CALLDATASIZE PUSH1 0x4 PUSH2 0x13DC JUMP JUMPDEST PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x13FC JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x1422 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x258 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x267 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x554 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1475 JUMP JUMPDEST PUSH2 0x5F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x148E JUMP JUMPDEST PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 DUP2 JUMP JUMPDEST PUSH2 0x19E PUSH2 0x30A CALLDATASIZE PUSH1 0x4 PUSH2 0x14CA JUMP JUMPDEST PUSH2 0x6ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x7B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x158E JUMP JUMPDEST PUSH2 0x869 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x361 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x158E JUMP JUMPDEST PUSH2 0x9D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x15D8 JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x160A JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0xAD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x481 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x490 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xAF9 JUMP JUMPDEST PUSH0 PUSH2 0x49F DUP3 PUSH2 0xBA0 JUMP JUMPDEST DUP1 PUSH2 0x4BA JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x272B8C47 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xBD4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x4E8 DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xC37 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 DUP1 ISZERO PUSH2 0x509 JUMPI POP PUSH2 0x509 DUP5 DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI PUSH2 0x520 PUSH2 0x51A DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI DUP1 DUP1 ISZERO PUSH2 0x536 JUMPI POP PUSH2 0x536 DUP4 DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI PUSH2 0x54D PUSH2 0x547 DUP7 DUP6 PUSH2 0x6D4 JUMP JUMPDEST DUP4 PUSH2 0xBD4 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x56E DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xC81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xD06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x63F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x166A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x687 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x6B6 DUP2 PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6D1 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xDC6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND XOR SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x166A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x77D PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x7AC DUP3 PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH1 0x1 PUSH2 0xDC6 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x857 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x87D JUMPI POP PUSH2 0x87B DUP4 DUP4 PUSH2 0x9AF JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x88F JUMPI PUSH2 0x88F PUSH2 0x547 DUP6 DUP6 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x8B3 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x8CC JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8CC JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x92F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x950 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x958 PUSH2 0xF30 JUMP JUMPDEST PUSH2 0x960 PUSH2 0xF30 JUMP JUMPDEST PUSH2 0x968 PUSH2 0xF58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP1 ISZERO PUSH2 0x9EC JUMPI POP PUSH2 0x9EC DUP5 DUP5 PUSH2 0x9AF JUMP JUMPDEST DUP1 PUSH2 0xA05 JUMPI POP PUSH2 0xA05 PUSH2 0x9FF DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA1A DUP4 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4F2 JUMPI PUSH2 0x4F2 DUP3 DUP3 PUSH2 0xBD4 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1702 JUMP JUMPDEST PUSH2 0xA66 PUSH2 0xA60 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST CALLER PUSH2 0x9AF JUMP JUMPDEST DUP1 PUSH2 0xAA6 JUMPI POP PUSH0 PUSH2 0xA7A PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xAA6 JUMPI POP PUSH2 0xAA6 PUSH2 0xA60 PUSH2 0x1D9 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP5 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0xAC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0x54D PUSH2 0xACF DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0xC37 JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xAEF DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xD06 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB21 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1702 JUMP JUMPDEST PUSH2 0xB31 PUSH2 0xA60 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH2 0xB71 JUMPI POP PUSH0 PUSH2 0xB45 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xB71 JUMPI POP PUSH2 0xB71 PUSH2 0xA60 PUSH2 0x1D9 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP5 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0x54D PUSH2 0xB9A DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0xC81 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4BA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x4BA JUMP JUMPDEST PUSH2 0xBDE DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4CA JUMPI PUSH2 0xBEB DUP2 PUSH2 0xF88 JUMP JUMPDEST PUSH2 0xBF6 DUP4 PUSH1 0x20 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC07 SWAP3 SWAP2 SWAP1 PUSH2 0x17B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x5E4 SWAP2 PUSH1 0x4 ADD PUSH2 0x1815 JUMP JUMPDEST PUSH2 0x6D1 DUP2 CALLER PUSH2 0xBD4 JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xC8B DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4CA JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xCC2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xD10 DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x4CA JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH2 0xDB8 DUP3 CALLER PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4F2 JUMPI PUSH2 0x4F2 DUP2 CALLER PUSH2 0xBD4 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xDF9 JUMPI PUSH2 0x4F2 DUP4 PUSH2 0x1137 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xE53 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xE50 SWAP2 DUP2 ADD SWAP1 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0xF24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST POP PUSH2 0x4F2 DUP4 DUP4 DUP4 PUSH2 0x11D2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1861 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1861 JUMP JUMPDEST PUSH2 0xF56 PUSH0 CALLER PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4BA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0xFA8 DUP4 PUSH1 0x2 PUSH2 0x18C0 JUMP JUMPDEST PUSH2 0xFB3 SWAP1 PUSH1 0x2 PUSH2 0x18D7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFCB JUMPI PUSH2 0xFCB PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFF5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x100F JUMPI PUSH2 0x100F PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x103D JUMPI PUSH2 0x103D PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH0 PUSH2 0x105F DUP5 PUSH1 0x2 PUSH2 0x18C0 JUMP JUMPDEST PUSH2 0x106A SWAP1 PUSH1 0x1 PUSH2 0x18D7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10E1 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x109E JUMPI PUSH2 0x109E PUSH2 0x18EA JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10B4 JUMPI PUSH2 0x10B4 PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10DA DUP2 PUSH2 0x18FE JUMP JUMPDEST SWAP1 POP PUSH2 0x106D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x11A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11DB DUP4 PUSH2 0x1200 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x11E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x4F2 JUMPI PUSH2 0x88F DUP4 DUP4 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1209 DUP2 PUSH2 0x1137 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1130 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193F PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x127B SWAP2 SWAP1 PUSH2 0x1913 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x12B3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x12B8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12C9 DUP7 DUP4 DUP4 DUP8 PUSH2 0x12D3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1341 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x133A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x133A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E4 JUMP JUMPDEST POP DUP2 PUSH2 0xA08 JUMP JUMPDEST PUSH2 0xA08 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1356 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1130 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x13D3 PUSH1 0x20 DUP5 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x13AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1436 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x143F DUP7 PUSH2 0x1397 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH2 0x145B PUSH1 0x60 DUP8 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH2 0x1469 PUSH1 0x80 DUP8 ADD PUSH2 0x1413 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1485 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1130 DUP3 PUSH2 0x1397 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x149F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x14A8 DUP4 PUSH2 0x1397 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x150F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1529 JUMPI PUSH2 0x1529 PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1558 JUMPI PUSH2 0x1558 PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x156F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x15AA DUP6 PUSH2 0x1397 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x15BF PUSH1 0x40 DUP7 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH2 0x15CD PUSH1 0x60 DUP7 ADD PUSH2 0x1413 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1601 PUSH1 0x40 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x161C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1625 DUP5 PUSH2 0x1397 JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1655 DUP5 PUSH2 0x1397 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1601 PUSH1 0x40 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x4163636573734D616E616765723A20696E76616C696420616464726573732066 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x1BDC8818DBDB5C1BDB995B9D PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4163636573734D616E616765723A206D73672E73656E646572206E6565647320 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B7B6B837B732B73A2937B632A0B236B4B7 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH0 PUSH2 0x17E8 PUSH1 0x17 DUP4 ADD DUP6 PUSH2 0x17A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL DUP2 MSTORE PUSH2 0x180C PUSH1 0x11 DUP3 ADD DUP6 PUSH2 0x17A0 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x4BA JUMPI PUSH2 0x4BA PUSH2 0x18AC JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4BA JUMPI PUSH2 0x4BA PUSH2 0x18AC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH2 0x190C JUMPI PUSH2 0x190C PUSH2 0x18AC JUMP JUMPDEST POP PUSH0 NOT ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1130 DUP3 DUP5 PUSH2 0x17A0 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x6564A2646970667358221220D7 DUP8 0xCD 0xEC 0x2D 0x2D LOG2 DUP5 DUP4 STOP DUP1 0x26 0xC9 0xB6 0xB7 CREATE2 0xD7 0xB2 PUSH17 0x4FF08259AA61174F01CDCC8DD64736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"1576:7194:48:-:0;;;1198:4:7;1155:48;;3290:47:48;;;;;;;;;-1:-1:-1;3310:22:48;:20;:22::i;:::-;1576:7194;;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;216:2:88;5998:66:6;;;198:21:88;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:88;;;338:37;392:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;564:36:88;;;6174:28:6;;552:2:88;537:18;6174:28:6;;;;;;;6074:139;5939:280::o;422:184:88:-;1576:7194:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ANY_COMPONENT_10436":{"entryPoint":null,"id":10436,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_31":{"entryPoint":null,"id":31,"parameterSlots":0,"returnSlots":0},"@GUARDIAN_ROLE_10419":{"entryPoint":null,"id":10419,"parameterSlots":0,"returnSlots":0},"@LEVEL1_ROLE_10424":{"entryPoint":null,"id":10424,"parameterSlots":0,"returnSlots":0},"@LEVEL2_ROLE_10429":{"entryPoint":null,"id":10429,"parameterSlots":0,"returnSlots":0},"@__AccessControl_init_48":{"entryPoint":3888,"id":48,"parameterSlots":0,"returnSlots":0},"@__AccessManager_init_unchained_10547":{"entryPoint":3928,"id":10547,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":null,"id":1008,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_10558":{"entryPoint":3436,"id":10558,"parameterSlots":1,"returnSlots":0},"@_checkRole_108":{"entryPoint":3117,"id":108,"parameterSlots":1,"returnSlots":0},"@_checkRole_147":{"entryPoint":3028,"id":147,"parameterSlots":2,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_grantRole_299":{"entryPoint":3201,"id":299,"parameterSlots":2,"returnSlots":0},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_revokeRole_330":{"entryPoint":3334,"id":330,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":4407,"id":510,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_267":{"entryPoint":3127,"id":267,"parameterSlots":2,"returnSlots":0},"@_setupRole_239":{"entryPoint":4598,"id":239,"parameterSlots":2,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":3526,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":4562,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":4608,"id":525,"parameterSlots":1,"returnSlots":0},"@checkComponentRole2_10715":{"entryPoint":1271,"id":10715,"parameterSlots":5,"returnSlots":0},"@checkComponentRole_10666":{"entryPoint":2153,"id":10666,"parameterSlots":4,"returnSlots":0},"@checkRole2_10753":{"entryPoint":2576,"id":10753,"parameterSlots":3,"returnSlots":0},"@checkRole_10730":{"entryPoint":1216,"id":10730,"parameterSlots":2,"returnSlots":0},"@functionDelegateCall_2540":{"entryPoint":4671,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":null,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getComponentRole_10602":{"entryPoint":1748,"id":10602,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_162":{"entryPoint":null,"id":162,"parameterSlots":1,"returnSlots":1},"@grantComponentRole_10776":{"entryPoint":2809,"id":10776,"parameterSlots":3,"returnSlots":0},"@grantRole_182":{"entryPoint":1364,"id":182,"parameterSlots":2,"returnSlots":0},"@hasComponentRole_10634":{"entryPoint":2521,"id":10634,"parameterSlots":4,"returnSlots":1},"@hasRole_95":{"entryPoint":2479,"id":95,"parameterSlots":2,"returnSlots":1},"@initialize_10535":{"entryPoint":2197,"id":10535,"parameterSlots":0,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":1976,"id":1026,"parameterSlots":0,"returnSlots":1},"@renounceRole_225":{"entryPoint":1400,"id":225,"parameterSlots":2,"returnSlots":0},"@revokeRole_202":{"entryPoint":2773,"id":202,"parameterSlots":2,"returnSlots":0},"@setComponentRoleAdmin_10799":{"entryPoint":2600,"id":10799,"parameterSlots":3,"returnSlots":0},"@setRoleAdmin_10818":{"entryPoint":1230,"id":10818,"parameterSlots":2,"returnSlots":0},"@supportsInterface_10580":{"entryPoint":1173,"id":10580,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3082":{"entryPoint":null,"id":3082,"parameterSlots":1,"returnSlots":1},"@supportsInterface_76":{"entryPoint":2976,"id":76,"parameterSlots":1,"returnSlots":1},"@toHexString_2997":{"entryPoint":3994,"id":2997,"parameterSlots":2,"returnSlots":1},"@toHexString_3017":{"entryPoint":3976,"id":3017,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_1069":{"entryPoint":1773,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":1527,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":4819,"id":2608,"parameterSlots":4,"returnSlots":1},"abi_decode_address":{"entryPoint":5015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bool":{"entryPoint":5139,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5237,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":5262,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes32t_address":{"entryPoint":5690,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes32t_addresst_bool":{"entryPoint":5518,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bytes32t_bytes32":{"entryPoint":5642,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes32t_bytes32t_addresst_bool":{"entryPoint":5154,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":5322,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":5116,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":6218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5042,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes32":{"entryPoint":5084,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes32t_address":{"entryPoint":5592,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes4":{"entryPoint":4976,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":6048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6419,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6071,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_139e7460e861361a043a6a300a0adb9f37e8681b280e3f9f258dba9bc5ed8726__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5890,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5738,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5814,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe9fbc8261f2f4efe11c4301badc79ec09bf8356cfeea91de99d438db405983__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5966,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6241,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6359,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6336,"id":null,"parameterSlots":2,"returnSlots":1},"decrement_t_uint256":{"entryPoint":6398,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6316,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6378,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5302,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13826:88","nodeType":"YulBlock","src":"0:13826:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"546:124:88","nodeType":"YulBlock","src":"546:124:88","statements":[{"nativeSrc":"556:29:88","nodeType":"YulAssignment","src":"556:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"578:6:88","nodeType":"YulIdentifier","src":"578:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"565:12:88","nodeType":"YulIdentifier","src":"565:12:88"},"nativeSrc":"565:20:88","nodeType":"YulFunctionCall","src":"565:20:88"},"variableNames":[{"name":"value","nativeSrc":"556:5:88","nodeType":"YulIdentifier","src":"556:5:88"}]},{"body":{"nativeSrc":"648:16:88","nodeType":"YulBlock","src":"648:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"657:1:88","nodeType":"YulLiteral","src":"657:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"660:1:88","nodeType":"YulLiteral","src":"660:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"650:6:88","nodeType":"YulIdentifier","src":"650:6:88"},"nativeSrc":"650:12:88","nodeType":"YulFunctionCall","src":"650:12:88"},"nativeSrc":"650:12:88","nodeType":"YulExpressionStatement","src":"650:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"607:5:88","nodeType":"YulIdentifier","src":"607:5:88"},{"arguments":[{"name":"value","nativeSrc":"618:5:88","nodeType":"YulIdentifier","src":"618:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"633:3:88","nodeType":"YulLiteral","src":"633:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"638:1:88","nodeType":"YulLiteral","src":"638:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"629:3:88","nodeType":"YulIdentifier","src":"629:3:88"},"nativeSrc":"629:11:88","nodeType":"YulFunctionCall","src":"629:11:88"},{"kind":"number","nativeSrc":"642:1:88","nodeType":"YulLiteral","src":"642:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"625:3:88","nodeType":"YulIdentifier","src":"625:3:88"},"nativeSrc":"625:19:88","nodeType":"YulFunctionCall","src":"625:19:88"}],"functionName":{"name":"and","nativeSrc":"614:3:88","nodeType":"YulIdentifier","src":"614:3:88"},"nativeSrc":"614:31:88","nodeType":"YulFunctionCall","src":"614:31:88"}],"functionName":{"name":"eq","nativeSrc":"604:2:88","nodeType":"YulIdentifier","src":"604:2:88"},"nativeSrc":"604:42:88","nodeType":"YulFunctionCall","src":"604:42:88"}],"functionName":{"name":"iszero","nativeSrc":"597:6:88","nodeType":"YulIdentifier","src":"597:6:88"},"nativeSrc":"597:50:88","nodeType":"YulFunctionCall","src":"597:50:88"},"nativeSrc":"594:70:88","nodeType":"YulIf","src":"594:70:88"}]},"name":"abi_decode_address","nativeSrc":"497:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"525:6:88","nodeType":"YulTypedName","src":"525:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"536:5:88","nodeType":"YulTypedName","src":"536:5:88","type":""}],"src":"497:173:88"},{"body":{"nativeSrc":"762:213:88","nodeType":"YulBlock","src":"762:213:88","statements":[{"body":{"nativeSrc":"808:16:88","nodeType":"YulBlock","src":"808:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"817:1:88","nodeType":"YulLiteral","src":"817:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"820:1:88","nodeType":"YulLiteral","src":"820:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"810:6:88","nodeType":"YulIdentifier","src":"810:6:88"},"nativeSrc":"810:12:88","nodeType":"YulFunctionCall","src":"810:12:88"},"nativeSrc":"810:12:88","nodeType":"YulExpressionStatement","src":"810:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"783:7:88","nodeType":"YulIdentifier","src":"783:7:88"},{"name":"headStart","nativeSrc":"792:9:88","nodeType":"YulIdentifier","src":"792:9:88"}],"functionName":{"name":"sub","nativeSrc":"779:3:88","nodeType":"YulIdentifier","src":"779:3:88"},"nativeSrc":"779:23:88","nodeType":"YulFunctionCall","src":"779:23:88"},{"kind":"number","nativeSrc":"804:2:88","nodeType":"YulLiteral","src":"804:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"775:3:88","nodeType":"YulIdentifier","src":"775:3:88"},"nativeSrc":"775:32:88","nodeType":"YulFunctionCall","src":"775:32:88"},"nativeSrc":"772:52:88","nodeType":"YulIf","src":"772:52:88"},{"nativeSrc":"833:14:88","nodeType":"YulVariableDeclaration","src":"833:14:88","value":{"kind":"number","nativeSrc":"846:1:88","nodeType":"YulLiteral","src":"846:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"837:5:88","nodeType":"YulTypedName","src":"837:5:88","type":""}]},{"nativeSrc":"856:32:88","nodeType":"YulAssignment","src":"856:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"878:9:88","nodeType":"YulIdentifier","src":"878:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"865:12:88","nodeType":"YulIdentifier","src":"865:12:88"},"nativeSrc":"865:23:88","nodeType":"YulFunctionCall","src":"865:23:88"},"variableNames":[{"name":"value","nativeSrc":"856:5:88","nodeType":"YulIdentifier","src":"856:5:88"}]},{"nativeSrc":"897:15:88","nodeType":"YulAssignment","src":"897:15:88","value":{"name":"value","nativeSrc":"907:5:88","nodeType":"YulIdentifier","src":"907:5:88"},"variableNames":[{"name":"value0","nativeSrc":"897:6:88","nodeType":"YulIdentifier","src":"897:6:88"}]},{"nativeSrc":"921:48:88","nodeType":"YulAssignment","src":"921:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"954:9:88","nodeType":"YulIdentifier","src":"954:9:88"},{"kind":"number","nativeSrc":"965:2:88","nodeType":"YulLiteral","src":"965:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"950:3:88","nodeType":"YulIdentifier","src":"950:3:88"},"nativeSrc":"950:18:88","nodeType":"YulFunctionCall","src":"950:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"931:18:88","nodeType":"YulIdentifier","src":"931:18:88"},"nativeSrc":"931:38:88","nodeType":"YulFunctionCall","src":"931:38:88"},"variableNames":[{"name":"value1","nativeSrc":"921:6:88","nodeType":"YulIdentifier","src":"921:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"675:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"720:9:88","nodeType":"YulTypedName","src":"720:9:88","type":""},{"name":"dataEnd","nativeSrc":"731:7:88","nodeType":"YulTypedName","src":"731:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"743:6:88","nodeType":"YulTypedName","src":"743:6:88","type":""},{"name":"value1","nativeSrc":"751:6:88","nodeType":"YulTypedName","src":"751:6:88","type":""}],"src":"675:300:88"},{"body":{"nativeSrc":"1067:259:88","nodeType":"YulBlock","src":"1067:259:88","statements":[{"body":{"nativeSrc":"1113:16:88","nodeType":"YulBlock","src":"1113:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1122:1:88","nodeType":"YulLiteral","src":"1122:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1125:1:88","nodeType":"YulLiteral","src":"1125:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1115:6:88","nodeType":"YulIdentifier","src":"1115:6:88"},"nativeSrc":"1115:12:88","nodeType":"YulFunctionCall","src":"1115:12:88"},"nativeSrc":"1115:12:88","nodeType":"YulExpressionStatement","src":"1115:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1088:7:88","nodeType":"YulIdentifier","src":"1088:7:88"},{"name":"headStart","nativeSrc":"1097:9:88","nodeType":"YulIdentifier","src":"1097:9:88"}],"functionName":{"name":"sub","nativeSrc":"1084:3:88","nodeType":"YulIdentifier","src":"1084:3:88"},"nativeSrc":"1084:23:88","nodeType":"YulFunctionCall","src":"1084:23:88"},{"kind":"number","nativeSrc":"1109:2:88","nodeType":"YulLiteral","src":"1109:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1080:3:88","nodeType":"YulIdentifier","src":"1080:3:88"},"nativeSrc":"1080:32:88","nodeType":"YulFunctionCall","src":"1080:32:88"},"nativeSrc":"1077:52:88","nodeType":"YulIf","src":"1077:52:88"},{"nativeSrc":"1138:14:88","nodeType":"YulVariableDeclaration","src":"1138:14:88","value":{"kind":"number","nativeSrc":"1151:1:88","nodeType":"YulLiteral","src":"1151:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1142:5:88","nodeType":"YulTypedName","src":"1142:5:88","type":""}]},{"nativeSrc":"1161:32:88","nodeType":"YulAssignment","src":"1161:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1183:9:88","nodeType":"YulIdentifier","src":"1183:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1170:12:88","nodeType":"YulIdentifier","src":"1170:12:88"},"nativeSrc":"1170:23:88","nodeType":"YulFunctionCall","src":"1170:23:88"},"variableNames":[{"name":"value","nativeSrc":"1161:5:88","nodeType":"YulIdentifier","src":"1161:5:88"}]},{"nativeSrc":"1202:15:88","nodeType":"YulAssignment","src":"1202:15:88","value":{"name":"value","nativeSrc":"1212:5:88","nodeType":"YulIdentifier","src":"1212:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1202:6:88","nodeType":"YulIdentifier","src":"1202:6:88"}]},{"nativeSrc":"1226:16:88","nodeType":"YulVariableDeclaration","src":"1226:16:88","value":{"kind":"number","nativeSrc":"1241:1:88","nodeType":"YulLiteral","src":"1241:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1230:7:88","nodeType":"YulTypedName","src":"1230:7:88","type":""}]},{"nativeSrc":"1251:43:88","nodeType":"YulAssignment","src":"1251:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1279:9:88","nodeType":"YulIdentifier","src":"1279:9:88"},{"kind":"number","nativeSrc":"1290:2:88","nodeType":"YulLiteral","src":"1290:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1275:3:88","nodeType":"YulIdentifier","src":"1275:3:88"},"nativeSrc":"1275:18:88","nodeType":"YulFunctionCall","src":"1275:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1262:12:88","nodeType":"YulIdentifier","src":"1262:12:88"},"nativeSrc":"1262:32:88","nodeType":"YulFunctionCall","src":"1262:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"1251:7:88","nodeType":"YulIdentifier","src":"1251:7:88"}]},{"nativeSrc":"1303:17:88","nodeType":"YulAssignment","src":"1303:17:88","value":{"name":"value_1","nativeSrc":"1313:7:88","nodeType":"YulIdentifier","src":"1313:7:88"},"variableNames":[{"name":"value1","nativeSrc":"1303:6:88","nodeType":"YulIdentifier","src":"1303:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nativeSrc":"980:346:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1025:9:88","nodeType":"YulTypedName","src":"1025:9:88","type":""},{"name":"dataEnd","nativeSrc":"1036:7:88","nodeType":"YulTypedName","src":"1036:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1048:6:88","nodeType":"YulTypedName","src":"1048:6:88","type":""},{"name":"value1","nativeSrc":"1056:6:88","nodeType":"YulTypedName","src":"1056:6:88","type":""}],"src":"980:346:88"},{"body":{"nativeSrc":"1401:156:88","nodeType":"YulBlock","src":"1401:156:88","statements":[{"body":{"nativeSrc":"1447:16:88","nodeType":"YulBlock","src":"1447:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1456:1:88","nodeType":"YulLiteral","src":"1456:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1459:1:88","nodeType":"YulLiteral","src":"1459:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1449:6:88","nodeType":"YulIdentifier","src":"1449:6:88"},"nativeSrc":"1449:12:88","nodeType":"YulFunctionCall","src":"1449:12:88"},"nativeSrc":"1449:12:88","nodeType":"YulExpressionStatement","src":"1449:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1422:7:88","nodeType":"YulIdentifier","src":"1422:7:88"},{"name":"headStart","nativeSrc":"1431:9:88","nodeType":"YulIdentifier","src":"1431:9:88"}],"functionName":{"name":"sub","nativeSrc":"1418:3:88","nodeType":"YulIdentifier","src":"1418:3:88"},"nativeSrc":"1418:23:88","nodeType":"YulFunctionCall","src":"1418:23:88"},{"kind":"number","nativeSrc":"1443:2:88","nodeType":"YulLiteral","src":"1443:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1414:3:88","nodeType":"YulIdentifier","src":"1414:3:88"},"nativeSrc":"1414:32:88","nodeType":"YulFunctionCall","src":"1414:32:88"},"nativeSrc":"1411:52:88","nodeType":"YulIf","src":"1411:52:88"},{"nativeSrc":"1472:14:88","nodeType":"YulVariableDeclaration","src":"1472:14:88","value":{"kind":"number","nativeSrc":"1485:1:88","nodeType":"YulLiteral","src":"1485:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1476:5:88","nodeType":"YulTypedName","src":"1476:5:88","type":""}]},{"nativeSrc":"1495:32:88","nodeType":"YulAssignment","src":"1495:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1517:9:88","nodeType":"YulIdentifier","src":"1517:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1504:12:88","nodeType":"YulIdentifier","src":"1504:12:88"},"nativeSrc":"1504:23:88","nodeType":"YulFunctionCall","src":"1504:23:88"},"variableNames":[{"name":"value","nativeSrc":"1495:5:88","nodeType":"YulIdentifier","src":"1495:5:88"}]},{"nativeSrc":"1536:15:88","nodeType":"YulAssignment","src":"1536:15:88","value":{"name":"value","nativeSrc":"1546:5:88","nodeType":"YulIdentifier","src":"1546:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1536:6:88","nodeType":"YulIdentifier","src":"1536:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1331:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1367:9:88","nodeType":"YulTypedName","src":"1367:9:88","type":""},{"name":"dataEnd","nativeSrc":"1378:7:88","nodeType":"YulTypedName","src":"1378:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1390:6:88","nodeType":"YulTypedName","src":"1390:6:88","type":""}],"src":"1331:226:88"},{"body":{"nativeSrc":"1663:76:88","nodeType":"YulBlock","src":"1663:76:88","statements":[{"nativeSrc":"1673:26:88","nodeType":"YulAssignment","src":"1673:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1685:9:88","nodeType":"YulIdentifier","src":"1685:9:88"},{"kind":"number","nativeSrc":"1696:2:88","nodeType":"YulLiteral","src":"1696:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1681:3:88","nodeType":"YulIdentifier","src":"1681:3:88"},"nativeSrc":"1681:18:88","nodeType":"YulFunctionCall","src":"1681:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1673:4:88","nodeType":"YulIdentifier","src":"1673:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1715:9:88","nodeType":"YulIdentifier","src":"1715:9:88"},{"name":"value0","nativeSrc":"1726:6:88","nodeType":"YulIdentifier","src":"1726:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1708:6:88","nodeType":"YulIdentifier","src":"1708:6:88"},"nativeSrc":"1708:25:88","nodeType":"YulFunctionCall","src":"1708:25:88"},"nativeSrc":"1708:25:88","nodeType":"YulExpressionStatement","src":"1708:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1562:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1632:9:88","nodeType":"YulTypedName","src":"1632:9:88","type":""},{"name":"value0","nativeSrc":"1643:6:88","nodeType":"YulTypedName","src":"1643:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1654:4:88","nodeType":"YulTypedName","src":"1654:4:88","type":""}],"src":"1562:177:88"},{"body":{"nativeSrc":"1790:114:88","nodeType":"YulBlock","src":"1790:114:88","statements":[{"nativeSrc":"1800:29:88","nodeType":"YulAssignment","src":"1800:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1822:6:88","nodeType":"YulIdentifier","src":"1822:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1809:12:88","nodeType":"YulIdentifier","src":"1809:12:88"},"nativeSrc":"1809:20:88","nodeType":"YulFunctionCall","src":"1809:20:88"},"variableNames":[{"name":"value","nativeSrc":"1800:5:88","nodeType":"YulIdentifier","src":"1800:5:88"}]},{"body":{"nativeSrc":"1882:16:88","nodeType":"YulBlock","src":"1882:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1891:1:88","nodeType":"YulLiteral","src":"1891:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1894:1:88","nodeType":"YulLiteral","src":"1894:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1884:6:88","nodeType":"YulIdentifier","src":"1884:6:88"},"nativeSrc":"1884:12:88","nodeType":"YulFunctionCall","src":"1884:12:88"},"nativeSrc":"1884:12:88","nodeType":"YulExpressionStatement","src":"1884:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1851:5:88","nodeType":"YulIdentifier","src":"1851:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1872:5:88","nodeType":"YulIdentifier","src":"1872:5:88"}],"functionName":{"name":"iszero","nativeSrc":"1865:6:88","nodeType":"YulIdentifier","src":"1865:6:88"},"nativeSrc":"1865:13:88","nodeType":"YulFunctionCall","src":"1865:13:88"}],"functionName":{"name":"iszero","nativeSrc":"1858:6:88","nodeType":"YulIdentifier","src":"1858:6:88"},"nativeSrc":"1858:21:88","nodeType":"YulFunctionCall","src":"1858:21:88"}],"functionName":{"name":"eq","nativeSrc":"1848:2:88","nodeType":"YulIdentifier","src":"1848:2:88"},"nativeSrc":"1848:32:88","nodeType":"YulFunctionCall","src":"1848:32:88"}],"functionName":{"name":"iszero","nativeSrc":"1841:6:88","nodeType":"YulIdentifier","src":"1841:6:88"},"nativeSrc":"1841:40:88","nodeType":"YulFunctionCall","src":"1841:40:88"},"nativeSrc":"1838:60:88","nodeType":"YulIf","src":"1838:60:88"}]},"name":"abi_decode_bool","nativeSrc":"1744:160:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1769:6:88","nodeType":"YulTypedName","src":"1769:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1780:5:88","nodeType":"YulTypedName","src":"1780:5:88","type":""}],"src":"1744:160:88"},{"body":{"nativeSrc":"2044:429:88","nodeType":"YulBlock","src":"2044:429:88","statements":[{"body":{"nativeSrc":"2091:16:88","nodeType":"YulBlock","src":"2091:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2100:1:88","nodeType":"YulLiteral","src":"2100:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2103:1:88","nodeType":"YulLiteral","src":"2103:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2093:6:88","nodeType":"YulIdentifier","src":"2093:6:88"},"nativeSrc":"2093:12:88","nodeType":"YulFunctionCall","src":"2093:12:88"},"nativeSrc":"2093:12:88","nodeType":"YulExpressionStatement","src":"2093:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2065:7:88","nodeType":"YulIdentifier","src":"2065:7:88"},{"name":"headStart","nativeSrc":"2074:9:88","nodeType":"YulIdentifier","src":"2074:9:88"}],"functionName":{"name":"sub","nativeSrc":"2061:3:88","nodeType":"YulIdentifier","src":"2061:3:88"},"nativeSrc":"2061:23:88","nodeType":"YulFunctionCall","src":"2061:23:88"},{"kind":"number","nativeSrc":"2086:3:88","nodeType":"YulLiteral","src":"2086:3:88","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"2057:3:88","nodeType":"YulIdentifier","src":"2057:3:88"},"nativeSrc":"2057:33:88","nodeType":"YulFunctionCall","src":"2057:33:88"},"nativeSrc":"2054:53:88","nodeType":"YulIf","src":"2054:53:88"},{"nativeSrc":"2116:39:88","nodeType":"YulAssignment","src":"2116:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2145:9:88","nodeType":"YulIdentifier","src":"2145:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2126:18:88","nodeType":"YulIdentifier","src":"2126:18:88"},"nativeSrc":"2126:29:88","nodeType":"YulFunctionCall","src":"2126:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2116:6:88","nodeType":"YulIdentifier","src":"2116:6:88"}]},{"nativeSrc":"2164:14:88","nodeType":"YulVariableDeclaration","src":"2164:14:88","value":{"kind":"number","nativeSrc":"2177:1:88","nodeType":"YulLiteral","src":"2177:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2168:5:88","nodeType":"YulTypedName","src":"2168:5:88","type":""}]},{"nativeSrc":"2187:41:88","nodeType":"YulAssignment","src":"2187:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2213:9:88","nodeType":"YulIdentifier","src":"2213:9:88"},{"kind":"number","nativeSrc":"2224:2:88","nodeType":"YulLiteral","src":"2224:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2209:3:88","nodeType":"YulIdentifier","src":"2209:3:88"},"nativeSrc":"2209:18:88","nodeType":"YulFunctionCall","src":"2209:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2196:12:88","nodeType":"YulIdentifier","src":"2196:12:88"},"nativeSrc":"2196:32:88","nodeType":"YulFunctionCall","src":"2196:32:88"},"variableNames":[{"name":"value","nativeSrc":"2187:5:88","nodeType":"YulIdentifier","src":"2187:5:88"}]},{"nativeSrc":"2237:15:88","nodeType":"YulAssignment","src":"2237:15:88","value":{"name":"value","nativeSrc":"2247:5:88","nodeType":"YulIdentifier","src":"2247:5:88"},"variableNames":[{"name":"value1","nativeSrc":"2237:6:88","nodeType":"YulIdentifier","src":"2237:6:88"}]},{"nativeSrc":"2261:16:88","nodeType":"YulVariableDeclaration","src":"2261:16:88","value":{"kind":"number","nativeSrc":"2276:1:88","nodeType":"YulLiteral","src":"2276:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"2265:7:88","nodeType":"YulTypedName","src":"2265:7:88","type":""}]},{"nativeSrc":"2286:43:88","nodeType":"YulAssignment","src":"2286:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2314:9:88","nodeType":"YulIdentifier","src":"2314:9:88"},{"kind":"number","nativeSrc":"2325:2:88","nodeType":"YulLiteral","src":"2325:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2310:3:88","nodeType":"YulIdentifier","src":"2310:3:88"},"nativeSrc":"2310:18:88","nodeType":"YulFunctionCall","src":"2310:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2297:12:88","nodeType":"YulIdentifier","src":"2297:12:88"},"nativeSrc":"2297:32:88","nodeType":"YulFunctionCall","src":"2297:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"2286:7:88","nodeType":"YulIdentifier","src":"2286:7:88"}]},{"nativeSrc":"2338:17:88","nodeType":"YulAssignment","src":"2338:17:88","value":{"name":"value_1","nativeSrc":"2348:7:88","nodeType":"YulIdentifier","src":"2348:7:88"},"variableNames":[{"name":"value2","nativeSrc":"2338:6:88","nodeType":"YulIdentifier","src":"2338:6:88"}]},{"nativeSrc":"2364:48:88","nodeType":"YulAssignment","src":"2364:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2397:9:88","nodeType":"YulIdentifier","src":"2397:9:88"},{"kind":"number","nativeSrc":"2408:2:88","nodeType":"YulLiteral","src":"2408:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2393:3:88","nodeType":"YulIdentifier","src":"2393:3:88"},"nativeSrc":"2393:18:88","nodeType":"YulFunctionCall","src":"2393:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2374:18:88","nodeType":"YulIdentifier","src":"2374:18:88"},"nativeSrc":"2374:38:88","nodeType":"YulFunctionCall","src":"2374:38:88"},"variableNames":[{"name":"value3","nativeSrc":"2364:6:88","nodeType":"YulIdentifier","src":"2364:6:88"}]},{"nativeSrc":"2421:46:88","nodeType":"YulAssignment","src":"2421:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2451:9:88","nodeType":"YulIdentifier","src":"2451:9:88"},{"kind":"number","nativeSrc":"2462:3:88","nodeType":"YulLiteral","src":"2462:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2447:3:88","nodeType":"YulIdentifier","src":"2447:3:88"},"nativeSrc":"2447:19:88","nodeType":"YulFunctionCall","src":"2447:19:88"}],"functionName":{"name":"abi_decode_bool","nativeSrc":"2431:15:88","nodeType":"YulIdentifier","src":"2431:15:88"},"nativeSrc":"2431:36:88","nodeType":"YulFunctionCall","src":"2431:36:88"},"variableNames":[{"name":"value4","nativeSrc":"2421:6:88","nodeType":"YulIdentifier","src":"2421:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_bytes32t_addresst_bool","nativeSrc":"1909:564:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1978:9:88","nodeType":"YulTypedName","src":"1978:9:88","type":""},{"name":"dataEnd","nativeSrc":"1989:7:88","nodeType":"YulTypedName","src":"1989:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2001:6:88","nodeType":"YulTypedName","src":"2001:6:88","type":""},{"name":"value1","nativeSrc":"2009:6:88","nodeType":"YulTypedName","src":"2009:6:88","type":""},{"name":"value2","nativeSrc":"2017:6:88","nodeType":"YulTypedName","src":"2017:6:88","type":""},{"name":"value3","nativeSrc":"2025:6:88","nodeType":"YulTypedName","src":"2025:6:88","type":""},{"name":"value4","nativeSrc":"2033:6:88","nodeType":"YulTypedName","src":"2033:6:88","type":""}],"src":"1909:564:88"},{"body":{"nativeSrc":"2548:116:88","nodeType":"YulBlock","src":"2548:116:88","statements":[{"body":{"nativeSrc":"2594:16:88","nodeType":"YulBlock","src":"2594:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2603:1:88","nodeType":"YulLiteral","src":"2603:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2606:1:88","nodeType":"YulLiteral","src":"2606:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2596:6:88","nodeType":"YulIdentifier","src":"2596:6:88"},"nativeSrc":"2596:12:88","nodeType":"YulFunctionCall","src":"2596:12:88"},"nativeSrc":"2596:12:88","nodeType":"YulExpressionStatement","src":"2596:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2569:7:88","nodeType":"YulIdentifier","src":"2569:7:88"},{"name":"headStart","nativeSrc":"2578:9:88","nodeType":"YulIdentifier","src":"2578:9:88"}],"functionName":{"name":"sub","nativeSrc":"2565:3:88","nodeType":"YulIdentifier","src":"2565:3:88"},"nativeSrc":"2565:23:88","nodeType":"YulFunctionCall","src":"2565:23:88"},{"kind":"number","nativeSrc":"2590:2:88","nodeType":"YulLiteral","src":"2590:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2561:3:88","nodeType":"YulIdentifier","src":"2561:3:88"},"nativeSrc":"2561:32:88","nodeType":"YulFunctionCall","src":"2561:32:88"},"nativeSrc":"2558:52:88","nodeType":"YulIf","src":"2558:52:88"},{"nativeSrc":"2619:39:88","nodeType":"YulAssignment","src":"2619:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2648:9:88","nodeType":"YulIdentifier","src":"2648:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2629:18:88","nodeType":"YulIdentifier","src":"2629:18:88"},"nativeSrc":"2629:29:88","nodeType":"YulFunctionCall","src":"2629:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2619:6:88","nodeType":"YulIdentifier","src":"2619:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2478:186:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2514:9:88","nodeType":"YulTypedName","src":"2514:9:88","type":""},{"name":"dataEnd","nativeSrc":"2525:7:88","nodeType":"YulTypedName","src":"2525:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2537:6:88","nodeType":"YulTypedName","src":"2537:6:88","type":""}],"src":"2478:186:88"},{"body":{"nativeSrc":"2756:213:88","nodeType":"YulBlock","src":"2756:213:88","statements":[{"body":{"nativeSrc":"2802:16:88","nodeType":"YulBlock","src":"2802:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2811:1:88","nodeType":"YulLiteral","src":"2811:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2814:1:88","nodeType":"YulLiteral","src":"2814:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2804:6:88","nodeType":"YulIdentifier","src":"2804:6:88"},"nativeSrc":"2804:12:88","nodeType":"YulFunctionCall","src":"2804:12:88"},"nativeSrc":"2804:12:88","nodeType":"YulExpressionStatement","src":"2804:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2777:7:88","nodeType":"YulIdentifier","src":"2777:7:88"},{"name":"headStart","nativeSrc":"2786:9:88","nodeType":"YulIdentifier","src":"2786:9:88"}],"functionName":{"name":"sub","nativeSrc":"2773:3:88","nodeType":"YulIdentifier","src":"2773:3:88"},"nativeSrc":"2773:23:88","nodeType":"YulFunctionCall","src":"2773:23:88"},{"kind":"number","nativeSrc":"2798:2:88","nodeType":"YulLiteral","src":"2798:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2769:3:88","nodeType":"YulIdentifier","src":"2769:3:88"},"nativeSrc":"2769:32:88","nodeType":"YulFunctionCall","src":"2769:32:88"},"nativeSrc":"2766:52:88","nodeType":"YulIf","src":"2766:52:88"},{"nativeSrc":"2827:39:88","nodeType":"YulAssignment","src":"2827:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2856:9:88","nodeType":"YulIdentifier","src":"2856:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2837:18:88","nodeType":"YulIdentifier","src":"2837:18:88"},"nativeSrc":"2837:29:88","nodeType":"YulFunctionCall","src":"2837:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2827:6:88","nodeType":"YulIdentifier","src":"2827:6:88"}]},{"nativeSrc":"2875:14:88","nodeType":"YulVariableDeclaration","src":"2875:14:88","value":{"kind":"number","nativeSrc":"2888:1:88","nodeType":"YulLiteral","src":"2888:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2879:5:88","nodeType":"YulTypedName","src":"2879:5:88","type":""}]},{"nativeSrc":"2898:41:88","nodeType":"YulAssignment","src":"2898:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2924:9:88","nodeType":"YulIdentifier","src":"2924:9:88"},{"kind":"number","nativeSrc":"2935:2:88","nodeType":"YulLiteral","src":"2935:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2920:3:88","nodeType":"YulIdentifier","src":"2920:3:88"},"nativeSrc":"2920:18:88","nodeType":"YulFunctionCall","src":"2920:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2907:12:88","nodeType":"YulIdentifier","src":"2907:12:88"},"nativeSrc":"2907:32:88","nodeType":"YulFunctionCall","src":"2907:32:88"},"variableNames":[{"name":"value","nativeSrc":"2898:5:88","nodeType":"YulIdentifier","src":"2898:5:88"}]},{"nativeSrc":"2948:15:88","nodeType":"YulAssignment","src":"2948:15:88","value":{"name":"value","nativeSrc":"2958:5:88","nodeType":"YulIdentifier","src":"2958:5:88"},"variableNames":[{"name":"value1","nativeSrc":"2948:6:88","nodeType":"YulIdentifier","src":"2948:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"2669:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2714:9:88","nodeType":"YulTypedName","src":"2714:9:88","type":""},{"name":"dataEnd","nativeSrc":"2725:7:88","nodeType":"YulTypedName","src":"2725:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2737:6:88","nodeType":"YulTypedName","src":"2737:6:88","type":""},{"name":"value1","nativeSrc":"2745:6:88","nodeType":"YulTypedName","src":"2745:6:88","type":""}],"src":"2669:300:88"},{"body":{"nativeSrc":"3006:95:88","nodeType":"YulBlock","src":"3006:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3023:1:88","nodeType":"YulLiteral","src":"3023:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3030:3:88","nodeType":"YulLiteral","src":"3030:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3035:10:88","nodeType":"YulLiteral","src":"3035:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3026:3:88","nodeType":"YulIdentifier","src":"3026:3:88"},"nativeSrc":"3026:20:88","nodeType":"YulFunctionCall","src":"3026:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3016:6:88","nodeType":"YulIdentifier","src":"3016:6:88"},"nativeSrc":"3016:31:88","nodeType":"YulFunctionCall","src":"3016:31:88"},"nativeSrc":"3016:31:88","nodeType":"YulExpressionStatement","src":"3016:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3063:1:88","nodeType":"YulLiteral","src":"3063:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3066:4:88","nodeType":"YulLiteral","src":"3066:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3056:6:88","nodeType":"YulIdentifier","src":"3056:6:88"},"nativeSrc":"3056:15:88","nodeType":"YulFunctionCall","src":"3056:15:88"},"nativeSrc":"3056:15:88","nodeType":"YulExpressionStatement","src":"3056:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3087:1:88","nodeType":"YulLiteral","src":"3087:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3090:4:88","nodeType":"YulLiteral","src":"3090:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3080:6:88","nodeType":"YulIdentifier","src":"3080:6:88"},"nativeSrc":"3080:15:88","nodeType":"YulFunctionCall","src":"3080:15:88"},"nativeSrc":"3080:15:88","nodeType":"YulExpressionStatement","src":"3080:15:88"}]},"name":"panic_error_0x41","nativeSrc":"2974:127:88","nodeType":"YulFunctionDefinition","src":"2974:127:88"},{"body":{"nativeSrc":"3202:922:88","nodeType":"YulBlock","src":"3202:922:88","statements":[{"body":{"nativeSrc":"3248:16:88","nodeType":"YulBlock","src":"3248:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3257:1:88","nodeType":"YulLiteral","src":"3257:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3260:1:88","nodeType":"YulLiteral","src":"3260:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3250:6:88","nodeType":"YulIdentifier","src":"3250:6:88"},"nativeSrc":"3250:12:88","nodeType":"YulFunctionCall","src":"3250:12:88"},"nativeSrc":"3250:12:88","nodeType":"YulExpressionStatement","src":"3250:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3223:7:88","nodeType":"YulIdentifier","src":"3223:7:88"},{"name":"headStart","nativeSrc":"3232:9:88","nodeType":"YulIdentifier","src":"3232:9:88"}],"functionName":{"name":"sub","nativeSrc":"3219:3:88","nodeType":"YulIdentifier","src":"3219:3:88"},"nativeSrc":"3219:23:88","nodeType":"YulFunctionCall","src":"3219:23:88"},{"kind":"number","nativeSrc":"3244:2:88","nodeType":"YulLiteral","src":"3244:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3215:3:88","nodeType":"YulIdentifier","src":"3215:3:88"},"nativeSrc":"3215:32:88","nodeType":"YulFunctionCall","src":"3215:32:88"},"nativeSrc":"3212:52:88","nodeType":"YulIf","src":"3212:52:88"},{"nativeSrc":"3273:39:88","nodeType":"YulAssignment","src":"3273:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3302:9:88","nodeType":"YulIdentifier","src":"3302:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3283:18:88","nodeType":"YulIdentifier","src":"3283:18:88"},"nativeSrc":"3283:29:88","nodeType":"YulFunctionCall","src":"3283:29:88"},"variableNames":[{"name":"value0","nativeSrc":"3273:6:88","nodeType":"YulIdentifier","src":"3273:6:88"}]},{"nativeSrc":"3321:46:88","nodeType":"YulVariableDeclaration","src":"3321:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3352:9:88","nodeType":"YulIdentifier","src":"3352:9:88"},{"kind":"number","nativeSrc":"3363:2:88","nodeType":"YulLiteral","src":"3363:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3348:3:88","nodeType":"YulIdentifier","src":"3348:3:88"},"nativeSrc":"3348:18:88","nodeType":"YulFunctionCall","src":"3348:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3335:12:88","nodeType":"YulIdentifier","src":"3335:12:88"},"nativeSrc":"3335:32:88","nodeType":"YulFunctionCall","src":"3335:32:88"},"variables":[{"name":"offset","nativeSrc":"3325:6:88","nodeType":"YulTypedName","src":"3325:6:88","type":""}]},{"body":{"nativeSrc":"3410:16:88","nodeType":"YulBlock","src":"3410:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3419:1:88","nodeType":"YulLiteral","src":"3419:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3422:1:88","nodeType":"YulLiteral","src":"3422:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3412:6:88","nodeType":"YulIdentifier","src":"3412:6:88"},"nativeSrc":"3412:12:88","nodeType":"YulFunctionCall","src":"3412:12:88"},"nativeSrc":"3412:12:88","nodeType":"YulExpressionStatement","src":"3412:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3382:6:88","nodeType":"YulIdentifier","src":"3382:6:88"},{"kind":"number","nativeSrc":"3390:18:88","nodeType":"YulLiteral","src":"3390:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3379:2:88","nodeType":"YulIdentifier","src":"3379:2:88"},"nativeSrc":"3379:30:88","nodeType":"YulFunctionCall","src":"3379:30:88"},"nativeSrc":"3376:50:88","nodeType":"YulIf","src":"3376:50:88"},{"nativeSrc":"3435:32:88","nodeType":"YulVariableDeclaration","src":"3435:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3449:9:88","nodeType":"YulIdentifier","src":"3449:9:88"},{"name":"offset","nativeSrc":"3460:6:88","nodeType":"YulIdentifier","src":"3460:6:88"}],"functionName":{"name":"add","nativeSrc":"3445:3:88","nodeType":"YulIdentifier","src":"3445:3:88"},"nativeSrc":"3445:22:88","nodeType":"YulFunctionCall","src":"3445:22:88"},"variables":[{"name":"_1","nativeSrc":"3439:2:88","nodeType":"YulTypedName","src":"3439:2:88","type":""}]},{"body":{"nativeSrc":"3515:16:88","nodeType":"YulBlock","src":"3515:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3524:1:88","nodeType":"YulLiteral","src":"3524:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3527:1:88","nodeType":"YulLiteral","src":"3527:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3517:6:88","nodeType":"YulIdentifier","src":"3517:6:88"},"nativeSrc":"3517:12:88","nodeType":"YulFunctionCall","src":"3517:12:88"},"nativeSrc":"3517:12:88","nodeType":"YulExpressionStatement","src":"3517:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3494:2:88","nodeType":"YulIdentifier","src":"3494:2:88"},{"kind":"number","nativeSrc":"3498:4:88","nodeType":"YulLiteral","src":"3498:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3490:3:88","nodeType":"YulIdentifier","src":"3490:3:88"},"nativeSrc":"3490:13:88","nodeType":"YulFunctionCall","src":"3490:13:88"},{"name":"dataEnd","nativeSrc":"3505:7:88","nodeType":"YulIdentifier","src":"3505:7:88"}],"functionName":{"name":"slt","nativeSrc":"3486:3:88","nodeType":"YulIdentifier","src":"3486:3:88"},"nativeSrc":"3486:27:88","nodeType":"YulFunctionCall","src":"3486:27:88"}],"functionName":{"name":"iszero","nativeSrc":"3479:6:88","nodeType":"YulIdentifier","src":"3479:6:88"},"nativeSrc":"3479:35:88","nodeType":"YulFunctionCall","src":"3479:35:88"},"nativeSrc":"3476:55:88","nodeType":"YulIf","src":"3476:55:88"},{"nativeSrc":"3540:30:88","nodeType":"YulVariableDeclaration","src":"3540:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"3567:2:88","nodeType":"YulIdentifier","src":"3567:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"3554:12:88","nodeType":"YulIdentifier","src":"3554:12:88"},"nativeSrc":"3554:16:88","nodeType":"YulFunctionCall","src":"3554:16:88"},"variables":[{"name":"length","nativeSrc":"3544:6:88","nodeType":"YulTypedName","src":"3544:6:88","type":""}]},{"body":{"nativeSrc":"3613:22:88","nodeType":"YulBlock","src":"3613:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3615:16:88","nodeType":"YulIdentifier","src":"3615:16:88"},"nativeSrc":"3615:18:88","nodeType":"YulFunctionCall","src":"3615:18:88"},"nativeSrc":"3615:18:88","nodeType":"YulExpressionStatement","src":"3615:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3585:6:88","nodeType":"YulIdentifier","src":"3585:6:88"},{"kind":"number","nativeSrc":"3593:18:88","nodeType":"YulLiteral","src":"3593:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3582:2:88","nodeType":"YulIdentifier","src":"3582:2:88"},"nativeSrc":"3582:30:88","nodeType":"YulFunctionCall","src":"3582:30:88"},"nativeSrc":"3579:56:88","nodeType":"YulIf","src":"3579:56:88"},{"nativeSrc":"3644:23:88","nodeType":"YulVariableDeclaration","src":"3644:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"3664:2:88","nodeType":"YulLiteral","src":"3664:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3658:5:88","nodeType":"YulIdentifier","src":"3658:5:88"},"nativeSrc":"3658:9:88","nodeType":"YulFunctionCall","src":"3658:9:88"},"variables":[{"name":"memPtr","nativeSrc":"3648:6:88","nodeType":"YulTypedName","src":"3648:6:88","type":""}]},{"nativeSrc":"3676:85:88","nodeType":"YulVariableDeclaration","src":"3676:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"3698:6:88","nodeType":"YulIdentifier","src":"3698:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3722:6:88","nodeType":"YulIdentifier","src":"3722:6:88"},{"kind":"number","nativeSrc":"3730:4:88","nodeType":"YulLiteral","src":"3730:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3718:3:88","nodeType":"YulIdentifier","src":"3718:3:88"},"nativeSrc":"3718:17:88","nodeType":"YulFunctionCall","src":"3718:17:88"},{"arguments":[{"kind":"number","nativeSrc":"3741:2:88","nodeType":"YulLiteral","src":"3741:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3737:3:88","nodeType":"YulIdentifier","src":"3737:3:88"},"nativeSrc":"3737:7:88","nodeType":"YulFunctionCall","src":"3737:7:88"}],"functionName":{"name":"and","nativeSrc":"3714:3:88","nodeType":"YulIdentifier","src":"3714:3:88"},"nativeSrc":"3714:31:88","nodeType":"YulFunctionCall","src":"3714:31:88"},{"kind":"number","nativeSrc":"3747:2:88","nodeType":"YulLiteral","src":"3747:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3710:3:88","nodeType":"YulIdentifier","src":"3710:3:88"},"nativeSrc":"3710:40:88","nodeType":"YulFunctionCall","src":"3710:40:88"},{"arguments":[{"kind":"number","nativeSrc":"3756:2:88","nodeType":"YulLiteral","src":"3756:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3752:3:88","nodeType":"YulIdentifier","src":"3752:3:88"},"nativeSrc":"3752:7:88","nodeType":"YulFunctionCall","src":"3752:7:88"}],"functionName":{"name":"and","nativeSrc":"3706:3:88","nodeType":"YulIdentifier","src":"3706:3:88"},"nativeSrc":"3706:54:88","nodeType":"YulFunctionCall","src":"3706:54:88"}],"functionName":{"name":"add","nativeSrc":"3694:3:88","nodeType":"YulIdentifier","src":"3694:3:88"},"nativeSrc":"3694:67:88","nodeType":"YulFunctionCall","src":"3694:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"3680:10:88","nodeType":"YulTypedName","src":"3680:10:88","type":""}]},{"body":{"nativeSrc":"3836:22:88","nodeType":"YulBlock","src":"3836:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3838:16:88","nodeType":"YulIdentifier","src":"3838:16:88"},"nativeSrc":"3838:18:88","nodeType":"YulFunctionCall","src":"3838:18:88"},"nativeSrc":"3838:18:88","nodeType":"YulExpressionStatement","src":"3838:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3779:10:88","nodeType":"YulIdentifier","src":"3779:10:88"},{"kind":"number","nativeSrc":"3791:18:88","nodeType":"YulLiteral","src":"3791:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3776:2:88","nodeType":"YulIdentifier","src":"3776:2:88"},"nativeSrc":"3776:34:88","nodeType":"YulFunctionCall","src":"3776:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3815:10:88","nodeType":"YulIdentifier","src":"3815:10:88"},{"name":"memPtr","nativeSrc":"3827:6:88","nodeType":"YulIdentifier","src":"3827:6:88"}],"functionName":{"name":"lt","nativeSrc":"3812:2:88","nodeType":"YulIdentifier","src":"3812:2:88"},"nativeSrc":"3812:22:88","nodeType":"YulFunctionCall","src":"3812:22:88"}],"functionName":{"name":"or","nativeSrc":"3773:2:88","nodeType":"YulIdentifier","src":"3773:2:88"},"nativeSrc":"3773:62:88","nodeType":"YulFunctionCall","src":"3773:62:88"},"nativeSrc":"3770:88:88","nodeType":"YulIf","src":"3770:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3874:2:88","nodeType":"YulLiteral","src":"3874:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3878:10:88","nodeType":"YulIdentifier","src":"3878:10:88"}],"functionName":{"name":"mstore","nativeSrc":"3867:6:88","nodeType":"YulIdentifier","src":"3867:6:88"},"nativeSrc":"3867:22:88","nodeType":"YulFunctionCall","src":"3867:22:88"},"nativeSrc":"3867:22:88","nodeType":"YulExpressionStatement","src":"3867:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3905:6:88","nodeType":"YulIdentifier","src":"3905:6:88"},{"name":"length","nativeSrc":"3913:6:88","nodeType":"YulIdentifier","src":"3913:6:88"}],"functionName":{"name":"mstore","nativeSrc":"3898:6:88","nodeType":"YulIdentifier","src":"3898:6:88"},"nativeSrc":"3898:22:88","nodeType":"YulFunctionCall","src":"3898:22:88"},"nativeSrc":"3898:22:88","nodeType":"YulExpressionStatement","src":"3898:22:88"},{"body":{"nativeSrc":"3970:16:88","nodeType":"YulBlock","src":"3970:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3979:1:88","nodeType":"YulLiteral","src":"3979:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3982:1:88","nodeType":"YulLiteral","src":"3982:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3972:6:88","nodeType":"YulIdentifier","src":"3972:6:88"},"nativeSrc":"3972:12:88","nodeType":"YulFunctionCall","src":"3972:12:88"},"nativeSrc":"3972:12:88","nodeType":"YulExpressionStatement","src":"3972:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3943:2:88","nodeType":"YulIdentifier","src":"3943:2:88"},{"name":"length","nativeSrc":"3947:6:88","nodeType":"YulIdentifier","src":"3947:6:88"}],"functionName":{"name":"add","nativeSrc":"3939:3:88","nodeType":"YulIdentifier","src":"3939:3:88"},"nativeSrc":"3939:15:88","nodeType":"YulFunctionCall","src":"3939:15:88"},{"kind":"number","nativeSrc":"3956:2:88","nodeType":"YulLiteral","src":"3956:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3935:3:88","nodeType":"YulIdentifier","src":"3935:3:88"},"nativeSrc":"3935:24:88","nodeType":"YulFunctionCall","src":"3935:24:88"},{"name":"dataEnd","nativeSrc":"3961:7:88","nodeType":"YulIdentifier","src":"3961:7:88"}],"functionName":{"name":"gt","nativeSrc":"3932:2:88","nodeType":"YulIdentifier","src":"3932:2:88"},"nativeSrc":"3932:37:88","nodeType":"YulFunctionCall","src":"3932:37:88"},"nativeSrc":"3929:57:88","nodeType":"YulIf","src":"3929:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4012:6:88","nodeType":"YulIdentifier","src":"4012:6:88"},{"kind":"number","nativeSrc":"4020:2:88","nodeType":"YulLiteral","src":"4020:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4008:3:88","nodeType":"YulIdentifier","src":"4008:3:88"},"nativeSrc":"4008:15:88","nodeType":"YulFunctionCall","src":"4008:15:88"},{"arguments":[{"name":"_1","nativeSrc":"4029:2:88","nodeType":"YulIdentifier","src":"4029:2:88"},{"kind":"number","nativeSrc":"4033:2:88","nodeType":"YulLiteral","src":"4033:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4025:3:88","nodeType":"YulIdentifier","src":"4025:3:88"},"nativeSrc":"4025:11:88","nodeType":"YulFunctionCall","src":"4025:11:88"},{"name":"length","nativeSrc":"4038:6:88","nodeType":"YulIdentifier","src":"4038:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"3995:12:88","nodeType":"YulIdentifier","src":"3995:12:88"},"nativeSrc":"3995:50:88","nodeType":"YulFunctionCall","src":"3995:50:88"},"nativeSrc":"3995:50:88","nodeType":"YulExpressionStatement","src":"3995:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4069:6:88","nodeType":"YulIdentifier","src":"4069:6:88"},{"name":"length","nativeSrc":"4077:6:88","nodeType":"YulIdentifier","src":"4077:6:88"}],"functionName":{"name":"add","nativeSrc":"4065:3:88","nodeType":"YulIdentifier","src":"4065:3:88"},"nativeSrc":"4065:19:88","nodeType":"YulFunctionCall","src":"4065:19:88"},{"kind":"number","nativeSrc":"4086:2:88","nodeType":"YulLiteral","src":"4086:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4061:3:88","nodeType":"YulIdentifier","src":"4061:3:88"},"nativeSrc":"4061:28:88","nodeType":"YulFunctionCall","src":"4061:28:88"},{"kind":"number","nativeSrc":"4091:1:88","nodeType":"YulLiteral","src":"4091:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4054:6:88","nodeType":"YulIdentifier","src":"4054:6:88"},"nativeSrc":"4054:39:88","nodeType":"YulFunctionCall","src":"4054:39:88"},"nativeSrc":"4054:39:88","nodeType":"YulExpressionStatement","src":"4054:39:88"},{"nativeSrc":"4102:16:88","nodeType":"YulAssignment","src":"4102:16:88","value":{"name":"memPtr","nativeSrc":"4112:6:88","nodeType":"YulIdentifier","src":"4112:6:88"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:88","nodeType":"YulIdentifier","src":"4102:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"3106:1018:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3160:9:88","nodeType":"YulTypedName","src":"3160:9:88","type":""},{"name":"dataEnd","nativeSrc":"3171:7:88","nodeType":"YulTypedName","src":"3171:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3183:6:88","nodeType":"YulTypedName","src":"3183:6:88","type":""},{"name":"value1","nativeSrc":"3191:6:88","nodeType":"YulTypedName","src":"3191:6:88","type":""}],"src":"3106:1018:88"},{"body":{"nativeSrc":"4247:325:88","nodeType":"YulBlock","src":"4247:325:88","statements":[{"body":{"nativeSrc":"4294:16:88","nodeType":"YulBlock","src":"4294:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4303:1:88","nodeType":"YulLiteral","src":"4303:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4306:1:88","nodeType":"YulLiteral","src":"4306:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4296:6:88","nodeType":"YulIdentifier","src":"4296:6:88"},"nativeSrc":"4296:12:88","nodeType":"YulFunctionCall","src":"4296:12:88"},"nativeSrc":"4296:12:88","nodeType":"YulExpressionStatement","src":"4296:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4268:7:88","nodeType":"YulIdentifier","src":"4268:7:88"},{"name":"headStart","nativeSrc":"4277:9:88","nodeType":"YulIdentifier","src":"4277:9:88"}],"functionName":{"name":"sub","nativeSrc":"4264:3:88","nodeType":"YulIdentifier","src":"4264:3:88"},"nativeSrc":"4264:23:88","nodeType":"YulFunctionCall","src":"4264:23:88"},{"kind":"number","nativeSrc":"4289:3:88","nodeType":"YulLiteral","src":"4289:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4260:3:88","nodeType":"YulIdentifier","src":"4260:3:88"},"nativeSrc":"4260:33:88","nodeType":"YulFunctionCall","src":"4260:33:88"},"nativeSrc":"4257:53:88","nodeType":"YulIf","src":"4257:53:88"},{"nativeSrc":"4319:39:88","nodeType":"YulAssignment","src":"4319:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4348:9:88","nodeType":"YulIdentifier","src":"4348:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4329:18:88","nodeType":"YulIdentifier","src":"4329:18:88"},"nativeSrc":"4329:29:88","nodeType":"YulFunctionCall","src":"4329:29:88"},"variableNames":[{"name":"value0","nativeSrc":"4319:6:88","nodeType":"YulIdentifier","src":"4319:6:88"}]},{"nativeSrc":"4367:14:88","nodeType":"YulVariableDeclaration","src":"4367:14:88","value":{"kind":"number","nativeSrc":"4380:1:88","nodeType":"YulLiteral","src":"4380:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4371:5:88","nodeType":"YulTypedName","src":"4371:5:88","type":""}]},{"nativeSrc":"4390:41:88","nodeType":"YulAssignment","src":"4390:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4416:9:88","nodeType":"YulIdentifier","src":"4416:9:88"},{"kind":"number","nativeSrc":"4427:2:88","nodeType":"YulLiteral","src":"4427:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4412:3:88","nodeType":"YulIdentifier","src":"4412:3:88"},"nativeSrc":"4412:18:88","nodeType":"YulFunctionCall","src":"4412:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4399:12:88","nodeType":"YulIdentifier","src":"4399:12:88"},"nativeSrc":"4399:32:88","nodeType":"YulFunctionCall","src":"4399:32:88"},"variableNames":[{"name":"value","nativeSrc":"4390:5:88","nodeType":"YulIdentifier","src":"4390:5:88"}]},{"nativeSrc":"4440:15:88","nodeType":"YulAssignment","src":"4440:15:88","value":{"name":"value","nativeSrc":"4450:5:88","nodeType":"YulIdentifier","src":"4450:5:88"},"variableNames":[{"name":"value1","nativeSrc":"4440:6:88","nodeType":"YulIdentifier","src":"4440:6:88"}]},{"nativeSrc":"4464:48:88","nodeType":"YulAssignment","src":"4464:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4497:9:88","nodeType":"YulIdentifier","src":"4497:9:88"},{"kind":"number","nativeSrc":"4508:2:88","nodeType":"YulLiteral","src":"4508:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4493:3:88","nodeType":"YulIdentifier","src":"4493:3:88"},"nativeSrc":"4493:18:88","nodeType":"YulFunctionCall","src":"4493:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4474:18:88","nodeType":"YulIdentifier","src":"4474:18:88"},"nativeSrc":"4474:38:88","nodeType":"YulFunctionCall","src":"4474:38:88"},"variableNames":[{"name":"value2","nativeSrc":"4464:6:88","nodeType":"YulIdentifier","src":"4464:6:88"}]},{"nativeSrc":"4521:45:88","nodeType":"YulAssignment","src":"4521:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4551:9:88","nodeType":"YulIdentifier","src":"4551:9:88"},{"kind":"number","nativeSrc":"4562:2:88","nodeType":"YulLiteral","src":"4562:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4547:3:88","nodeType":"YulIdentifier","src":"4547:3:88"},"nativeSrc":"4547:18:88","nodeType":"YulFunctionCall","src":"4547:18:88"}],"functionName":{"name":"abi_decode_bool","nativeSrc":"4531:15:88","nodeType":"YulIdentifier","src":"4531:15:88"},"nativeSrc":"4531:35:88","nodeType":"YulFunctionCall","src":"4531:35:88"},"variableNames":[{"name":"value3","nativeSrc":"4521:6:88","nodeType":"YulIdentifier","src":"4521:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_addresst_bool","nativeSrc":"4129:443:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4189:9:88","nodeType":"YulTypedName","src":"4189:9:88","type":""},{"name":"dataEnd","nativeSrc":"4200:7:88","nodeType":"YulTypedName","src":"4200:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4212:6:88","nodeType":"YulTypedName","src":"4212:6:88","type":""},{"name":"value1","nativeSrc":"4220:6:88","nodeType":"YulTypedName","src":"4220:6:88","type":""},{"name":"value2","nativeSrc":"4228:6:88","nodeType":"YulTypedName","src":"4228:6:88","type":""},{"name":"value3","nativeSrc":"4236:6:88","nodeType":"YulTypedName","src":"4236:6:88","type":""}],"src":"4129:443:88"},{"body":{"nativeSrc":"4678:102:88","nodeType":"YulBlock","src":"4678:102:88","statements":[{"nativeSrc":"4688:26:88","nodeType":"YulAssignment","src":"4688:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4700:9:88","nodeType":"YulIdentifier","src":"4700:9:88"},{"kind":"number","nativeSrc":"4711:2:88","nodeType":"YulLiteral","src":"4711:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4696:3:88","nodeType":"YulIdentifier","src":"4696:3:88"},"nativeSrc":"4696:18:88","nodeType":"YulFunctionCall","src":"4696:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4688:4:88","nodeType":"YulIdentifier","src":"4688:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4730:9:88","nodeType":"YulIdentifier","src":"4730:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4745:6:88","nodeType":"YulIdentifier","src":"4745:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4761:3:88","nodeType":"YulLiteral","src":"4761:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4766:1:88","nodeType":"YulLiteral","src":"4766:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4757:3:88","nodeType":"YulIdentifier","src":"4757:3:88"},"nativeSrc":"4757:11:88","nodeType":"YulFunctionCall","src":"4757:11:88"},{"kind":"number","nativeSrc":"4770:1:88","nodeType":"YulLiteral","src":"4770:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4753:3:88","nodeType":"YulIdentifier","src":"4753:3:88"},"nativeSrc":"4753:19:88","nodeType":"YulFunctionCall","src":"4753:19:88"}],"functionName":{"name":"and","nativeSrc":"4741:3:88","nodeType":"YulIdentifier","src":"4741:3:88"},"nativeSrc":"4741:32:88","nodeType":"YulFunctionCall","src":"4741:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4723:6:88","nodeType":"YulIdentifier","src":"4723:6:88"},"nativeSrc":"4723:51:88","nodeType":"YulFunctionCall","src":"4723:51:88"},"nativeSrc":"4723:51:88","nodeType":"YulExpressionStatement","src":"4723:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4577:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4647:9:88","nodeType":"YulTypedName","src":"4647:9:88","type":""},{"name":"value0","nativeSrc":"4658:6:88","nodeType":"YulTypedName","src":"4658:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4669:4:88","nodeType":"YulTypedName","src":"4669:4:88","type":""}],"src":"4577:203:88"},{"body":{"nativeSrc":"4889:316:88","nodeType":"YulBlock","src":"4889:316:88","statements":[{"body":{"nativeSrc":"4935:16:88","nodeType":"YulBlock","src":"4935:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4944:1:88","nodeType":"YulLiteral","src":"4944:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4947:1:88","nodeType":"YulLiteral","src":"4947:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4937:6:88","nodeType":"YulIdentifier","src":"4937:6:88"},"nativeSrc":"4937:12:88","nodeType":"YulFunctionCall","src":"4937:12:88"},"nativeSrc":"4937:12:88","nodeType":"YulExpressionStatement","src":"4937:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4910:7:88","nodeType":"YulIdentifier","src":"4910:7:88"},{"name":"headStart","nativeSrc":"4919:9:88","nodeType":"YulIdentifier","src":"4919:9:88"}],"functionName":{"name":"sub","nativeSrc":"4906:3:88","nodeType":"YulIdentifier","src":"4906:3:88"},"nativeSrc":"4906:23:88","nodeType":"YulFunctionCall","src":"4906:23:88"},{"kind":"number","nativeSrc":"4931:2:88","nodeType":"YulLiteral","src":"4931:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4902:3:88","nodeType":"YulIdentifier","src":"4902:3:88"},"nativeSrc":"4902:32:88","nodeType":"YulFunctionCall","src":"4902:32:88"},"nativeSrc":"4899:52:88","nodeType":"YulIf","src":"4899:52:88"},{"nativeSrc":"4960:14:88","nodeType":"YulVariableDeclaration","src":"4960:14:88","value":{"kind":"number","nativeSrc":"4973:1:88","nodeType":"YulLiteral","src":"4973:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4964:5:88","nodeType":"YulTypedName","src":"4964:5:88","type":""}]},{"nativeSrc":"4983:32:88","nodeType":"YulAssignment","src":"4983:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5005:9:88","nodeType":"YulIdentifier","src":"5005:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4992:12:88","nodeType":"YulIdentifier","src":"4992:12:88"},"nativeSrc":"4992:23:88","nodeType":"YulFunctionCall","src":"4992:23:88"},"variableNames":[{"name":"value","nativeSrc":"4983:5:88","nodeType":"YulIdentifier","src":"4983:5:88"}]},{"nativeSrc":"5024:15:88","nodeType":"YulAssignment","src":"5024:15:88","value":{"name":"value","nativeSrc":"5034:5:88","nodeType":"YulIdentifier","src":"5034:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5024:6:88","nodeType":"YulIdentifier","src":"5024:6:88"}]},{"nativeSrc":"5048:16:88","nodeType":"YulVariableDeclaration","src":"5048:16:88","value":{"kind":"number","nativeSrc":"5063:1:88","nodeType":"YulLiteral","src":"5063:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"5052:7:88","nodeType":"YulTypedName","src":"5052:7:88","type":""}]},{"nativeSrc":"5073:43:88","nodeType":"YulAssignment","src":"5073:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5101:9:88","nodeType":"YulIdentifier","src":"5101:9:88"},{"kind":"number","nativeSrc":"5112:2:88","nodeType":"YulLiteral","src":"5112:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5097:3:88","nodeType":"YulIdentifier","src":"5097:3:88"},"nativeSrc":"5097:18:88","nodeType":"YulFunctionCall","src":"5097:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5084:12:88","nodeType":"YulIdentifier","src":"5084:12:88"},"nativeSrc":"5084:32:88","nodeType":"YulFunctionCall","src":"5084:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"5073:7:88","nodeType":"YulIdentifier","src":"5073:7:88"}]},{"nativeSrc":"5125:17:88","nodeType":"YulAssignment","src":"5125:17:88","value":{"name":"value_1","nativeSrc":"5135:7:88","nodeType":"YulIdentifier","src":"5135:7:88"},"variableNames":[{"name":"value1","nativeSrc":"5125:6:88","nodeType":"YulIdentifier","src":"5125:6:88"}]},{"nativeSrc":"5151:48:88","nodeType":"YulAssignment","src":"5151:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5184:9:88","nodeType":"YulIdentifier","src":"5184:9:88"},{"kind":"number","nativeSrc":"5195:2:88","nodeType":"YulLiteral","src":"5195:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5180:3:88","nodeType":"YulIdentifier","src":"5180:3:88"},"nativeSrc":"5180:18:88","nodeType":"YulFunctionCall","src":"5180:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5161:18:88","nodeType":"YulIdentifier","src":"5161:18:88"},"nativeSrc":"5161:38:88","nodeType":"YulFunctionCall","src":"5161:38:88"},"variableNames":[{"name":"value2","nativeSrc":"5151:6:88","nodeType":"YulIdentifier","src":"5151:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nativeSrc":"4785:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4839:9:88","nodeType":"YulTypedName","src":"4839:9:88","type":""},{"name":"dataEnd","nativeSrc":"4850:7:88","nodeType":"YulTypedName","src":"4850:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4862:6:88","nodeType":"YulTypedName","src":"4862:6:88","type":""},{"name":"value1","nativeSrc":"4870:6:88","nodeType":"YulTypedName","src":"4870:6:88","type":""},{"name":"value2","nativeSrc":"4878:6:88","nodeType":"YulTypedName","src":"4878:6:88","type":""}],"src":"4785:420:88"},{"body":{"nativeSrc":"5314:316:88","nodeType":"YulBlock","src":"5314:316:88","statements":[{"body":{"nativeSrc":"5360:16:88","nodeType":"YulBlock","src":"5360:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5369:1:88","nodeType":"YulLiteral","src":"5369:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5372:1:88","nodeType":"YulLiteral","src":"5372:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5362:6:88","nodeType":"YulIdentifier","src":"5362:6:88"},"nativeSrc":"5362:12:88","nodeType":"YulFunctionCall","src":"5362:12:88"},"nativeSrc":"5362:12:88","nodeType":"YulExpressionStatement","src":"5362:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5335:7:88","nodeType":"YulIdentifier","src":"5335:7:88"},{"name":"headStart","nativeSrc":"5344:9:88","nodeType":"YulIdentifier","src":"5344:9:88"}],"functionName":{"name":"sub","nativeSrc":"5331:3:88","nodeType":"YulIdentifier","src":"5331:3:88"},"nativeSrc":"5331:23:88","nodeType":"YulFunctionCall","src":"5331:23:88"},{"kind":"number","nativeSrc":"5356:2:88","nodeType":"YulLiteral","src":"5356:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5327:3:88","nodeType":"YulIdentifier","src":"5327:3:88"},"nativeSrc":"5327:32:88","nodeType":"YulFunctionCall","src":"5327:32:88"},"nativeSrc":"5324:52:88","nodeType":"YulIf","src":"5324:52:88"},{"nativeSrc":"5385:39:88","nodeType":"YulAssignment","src":"5385:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5414:9:88","nodeType":"YulIdentifier","src":"5414:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5395:18:88","nodeType":"YulIdentifier","src":"5395:18:88"},"nativeSrc":"5395:29:88","nodeType":"YulFunctionCall","src":"5395:29:88"},"variableNames":[{"name":"value0","nativeSrc":"5385:6:88","nodeType":"YulIdentifier","src":"5385:6:88"}]},{"nativeSrc":"5433:14:88","nodeType":"YulVariableDeclaration","src":"5433:14:88","value":{"kind":"number","nativeSrc":"5446:1:88","nodeType":"YulLiteral","src":"5446:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5437:5:88","nodeType":"YulTypedName","src":"5437:5:88","type":""}]},{"nativeSrc":"5456:41:88","nodeType":"YulAssignment","src":"5456:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5482:9:88","nodeType":"YulIdentifier","src":"5482:9:88"},{"kind":"number","nativeSrc":"5493:2:88","nodeType":"YulLiteral","src":"5493:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5478:3:88","nodeType":"YulIdentifier","src":"5478:3:88"},"nativeSrc":"5478:18:88","nodeType":"YulFunctionCall","src":"5478:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5465:12:88","nodeType":"YulIdentifier","src":"5465:12:88"},"nativeSrc":"5465:32:88","nodeType":"YulFunctionCall","src":"5465:32:88"},"variableNames":[{"name":"value","nativeSrc":"5456:5:88","nodeType":"YulIdentifier","src":"5456:5:88"}]},{"nativeSrc":"5506:15:88","nodeType":"YulAssignment","src":"5506:15:88","value":{"name":"value","nativeSrc":"5516:5:88","nodeType":"YulIdentifier","src":"5516:5:88"},"variableNames":[{"name":"value1","nativeSrc":"5506:6:88","nodeType":"YulIdentifier","src":"5506:6:88"}]},{"nativeSrc":"5530:16:88","nodeType":"YulVariableDeclaration","src":"5530:16:88","value":{"kind":"number","nativeSrc":"5545:1:88","nodeType":"YulLiteral","src":"5545:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"5534:7:88","nodeType":"YulTypedName","src":"5534:7:88","type":""}]},{"nativeSrc":"5555:43:88","nodeType":"YulAssignment","src":"5555:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5583:9:88","nodeType":"YulIdentifier","src":"5583:9:88"},{"kind":"number","nativeSrc":"5594:2:88","nodeType":"YulLiteral","src":"5594:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5579:3:88","nodeType":"YulIdentifier","src":"5579:3:88"},"nativeSrc":"5579:18:88","nodeType":"YulFunctionCall","src":"5579:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5566:12:88","nodeType":"YulIdentifier","src":"5566:12:88"},"nativeSrc":"5566:32:88","nodeType":"YulFunctionCall","src":"5566:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"5555:7:88","nodeType":"YulIdentifier","src":"5555:7:88"}]},{"nativeSrc":"5607:17:88","nodeType":"YulAssignment","src":"5607:17:88","value":{"name":"value_1","nativeSrc":"5617:7:88","nodeType":"YulIdentifier","src":"5617:7:88"},"variableNames":[{"name":"value2","nativeSrc":"5607:6:88","nodeType":"YulIdentifier","src":"5607:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_bytes32","nativeSrc":"5210:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5264:9:88","nodeType":"YulTypedName","src":"5264:9:88","type":""},{"name":"dataEnd","nativeSrc":"5275:7:88","nodeType":"YulTypedName","src":"5275:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5287:6:88","nodeType":"YulTypedName","src":"5287:6:88","type":""},{"name":"value1","nativeSrc":"5295:6:88","nodeType":"YulTypedName","src":"5295:6:88","type":""},{"name":"value2","nativeSrc":"5303:6:88","nodeType":"YulTypedName","src":"5303:6:88","type":""}],"src":"5210:420:88"},{"body":{"nativeSrc":"5739:270:88","nodeType":"YulBlock","src":"5739:270:88","statements":[{"body":{"nativeSrc":"5785:16:88","nodeType":"YulBlock","src":"5785:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5794:1:88","nodeType":"YulLiteral","src":"5794:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5797:1:88","nodeType":"YulLiteral","src":"5797:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5787:6:88","nodeType":"YulIdentifier","src":"5787:6:88"},"nativeSrc":"5787:12:88","nodeType":"YulFunctionCall","src":"5787:12:88"},"nativeSrc":"5787:12:88","nodeType":"YulExpressionStatement","src":"5787:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5760:7:88","nodeType":"YulIdentifier","src":"5760:7:88"},{"name":"headStart","nativeSrc":"5769:9:88","nodeType":"YulIdentifier","src":"5769:9:88"}],"functionName":{"name":"sub","nativeSrc":"5756:3:88","nodeType":"YulIdentifier","src":"5756:3:88"},"nativeSrc":"5756:23:88","nodeType":"YulFunctionCall","src":"5756:23:88"},{"kind":"number","nativeSrc":"5781:2:88","nodeType":"YulLiteral","src":"5781:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5752:3:88","nodeType":"YulIdentifier","src":"5752:3:88"},"nativeSrc":"5752:32:88","nodeType":"YulFunctionCall","src":"5752:32:88"},"nativeSrc":"5749:52:88","nodeType":"YulIf","src":"5749:52:88"},{"nativeSrc":"5810:39:88","nodeType":"YulAssignment","src":"5810:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5839:9:88","nodeType":"YulIdentifier","src":"5839:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5820:18:88","nodeType":"YulIdentifier","src":"5820:18:88"},"nativeSrc":"5820:29:88","nodeType":"YulFunctionCall","src":"5820:29:88"},"variableNames":[{"name":"value0","nativeSrc":"5810:6:88","nodeType":"YulIdentifier","src":"5810:6:88"}]},{"nativeSrc":"5858:14:88","nodeType":"YulVariableDeclaration","src":"5858:14:88","value":{"kind":"number","nativeSrc":"5871:1:88","nodeType":"YulLiteral","src":"5871:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5862:5:88","nodeType":"YulTypedName","src":"5862:5:88","type":""}]},{"nativeSrc":"5881:41:88","nodeType":"YulAssignment","src":"5881:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5907:9:88","nodeType":"YulIdentifier","src":"5907:9:88"},{"kind":"number","nativeSrc":"5918:2:88","nodeType":"YulLiteral","src":"5918:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5903:3:88","nodeType":"YulIdentifier","src":"5903:3:88"},"nativeSrc":"5903:18:88","nodeType":"YulFunctionCall","src":"5903:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5890:12:88","nodeType":"YulIdentifier","src":"5890:12:88"},"nativeSrc":"5890:32:88","nodeType":"YulFunctionCall","src":"5890:32:88"},"variableNames":[{"name":"value","nativeSrc":"5881:5:88","nodeType":"YulIdentifier","src":"5881:5:88"}]},{"nativeSrc":"5931:15:88","nodeType":"YulAssignment","src":"5931:15:88","value":{"name":"value","nativeSrc":"5941:5:88","nodeType":"YulIdentifier","src":"5941:5:88"},"variableNames":[{"name":"value1","nativeSrc":"5931:6:88","nodeType":"YulIdentifier","src":"5931:6:88"}]},{"nativeSrc":"5955:48:88","nodeType":"YulAssignment","src":"5955:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5988:9:88","nodeType":"YulIdentifier","src":"5988:9:88"},{"kind":"number","nativeSrc":"5999:2:88","nodeType":"YulLiteral","src":"5999:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5984:3:88","nodeType":"YulIdentifier","src":"5984:3:88"},"nativeSrc":"5984:18:88","nodeType":"YulFunctionCall","src":"5984:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5965:18:88","nodeType":"YulIdentifier","src":"5965:18:88"},"nativeSrc":"5965:38:88","nodeType":"YulFunctionCall","src":"5965:38:88"},"variableNames":[{"name":"value2","nativeSrc":"5955:6:88","nodeType":"YulIdentifier","src":"5955:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_address","nativeSrc":"5635:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5689:9:88","nodeType":"YulTypedName","src":"5689:9:88","type":""},{"name":"dataEnd","nativeSrc":"5700:7:88","nodeType":"YulTypedName","src":"5700:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5712:6:88","nodeType":"YulTypedName","src":"5712:6:88","type":""},{"name":"value1","nativeSrc":"5720:6:88","nodeType":"YulTypedName","src":"5720:6:88","type":""},{"name":"value2","nativeSrc":"5728:6:88","nodeType":"YulTypedName","src":"5728:6:88","type":""}],"src":"5635:374:88"},{"body":{"nativeSrc":"6188:237:88","nodeType":"YulBlock","src":"6188:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6205:9:88","nodeType":"YulIdentifier","src":"6205:9:88"},{"kind":"number","nativeSrc":"6216:2:88","nodeType":"YulLiteral","src":"6216:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6198:6:88","nodeType":"YulIdentifier","src":"6198:6:88"},"nativeSrc":"6198:21:88","nodeType":"YulFunctionCall","src":"6198:21:88"},"nativeSrc":"6198:21:88","nodeType":"YulExpressionStatement","src":"6198:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6239:9:88","nodeType":"YulIdentifier","src":"6239:9:88"},{"kind":"number","nativeSrc":"6250:2:88","nodeType":"YulLiteral","src":"6250:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6235:3:88","nodeType":"YulIdentifier","src":"6235:3:88"},"nativeSrc":"6235:18:88","nodeType":"YulFunctionCall","src":"6235:18:88"},{"kind":"number","nativeSrc":"6255:2:88","nodeType":"YulLiteral","src":"6255:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"6228:6:88","nodeType":"YulIdentifier","src":"6228:6:88"},"nativeSrc":"6228:30:88","nodeType":"YulFunctionCall","src":"6228:30:88"},"nativeSrc":"6228:30:88","nodeType":"YulExpressionStatement","src":"6228:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6278:9:88","nodeType":"YulIdentifier","src":"6278:9:88"},{"kind":"number","nativeSrc":"6289:2:88","nodeType":"YulLiteral","src":"6289:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6274:3:88","nodeType":"YulIdentifier","src":"6274:3:88"},"nativeSrc":"6274:18:88","nodeType":"YulFunctionCall","src":"6274:18:88"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nativeSrc":"6294:34:88","nodeType":"YulLiteral","src":"6294:34:88","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nativeSrc":"6267:6:88","nodeType":"YulIdentifier","src":"6267:6:88"},"nativeSrc":"6267:62:88","nodeType":"YulFunctionCall","src":"6267:62:88"},"nativeSrc":"6267:62:88","nodeType":"YulExpressionStatement","src":"6267:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6349:9:88","nodeType":"YulIdentifier","src":"6349:9:88"},{"kind":"number","nativeSrc":"6360:2:88","nodeType":"YulLiteral","src":"6360:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6345:3:88","nodeType":"YulIdentifier","src":"6345:3:88"},"nativeSrc":"6345:18:88","nodeType":"YulFunctionCall","src":"6345:18:88"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nativeSrc":"6365:17:88","nodeType":"YulLiteral","src":"6365:17:88","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nativeSrc":"6338:6:88","nodeType":"YulIdentifier","src":"6338:6:88"},"nativeSrc":"6338:45:88","nodeType":"YulFunctionCall","src":"6338:45:88"},"nativeSrc":"6338:45:88","nodeType":"YulExpressionStatement","src":"6338:45:88"},{"nativeSrc":"6392:27:88","nodeType":"YulAssignment","src":"6392:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6404:9:88","nodeType":"YulIdentifier","src":"6404:9:88"},{"kind":"number","nativeSrc":"6415:3:88","nodeType":"YulLiteral","src":"6415:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6400:3:88","nodeType":"YulIdentifier","src":"6400:3:88"},"nativeSrc":"6400:19:88","nodeType":"YulFunctionCall","src":"6400:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6392:4:88","nodeType":"YulIdentifier","src":"6392:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6014:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6165:9:88","nodeType":"YulTypedName","src":"6165:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6179:4:88","nodeType":"YulTypedName","src":"6179:4:88","type":""}],"src":"6014:411:88"},{"body":{"nativeSrc":"6604:234:88","nodeType":"YulBlock","src":"6604:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6621:9:88","nodeType":"YulIdentifier","src":"6621:9:88"},{"kind":"number","nativeSrc":"6632:2:88","nodeType":"YulLiteral","src":"6632:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6614:6:88","nodeType":"YulIdentifier","src":"6614:6:88"},"nativeSrc":"6614:21:88","nodeType":"YulFunctionCall","src":"6614:21:88"},"nativeSrc":"6614:21:88","nodeType":"YulExpressionStatement","src":"6614:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6655:9:88","nodeType":"YulIdentifier","src":"6655:9:88"},{"kind":"number","nativeSrc":"6666:2:88","nodeType":"YulLiteral","src":"6666:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6651:3:88","nodeType":"YulIdentifier","src":"6651:3:88"},"nativeSrc":"6651:18:88","nodeType":"YulFunctionCall","src":"6651:18:88"},{"kind":"number","nativeSrc":"6671:2:88","nodeType":"YulLiteral","src":"6671:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"6644:6:88","nodeType":"YulIdentifier","src":"6644:6:88"},"nativeSrc":"6644:30:88","nodeType":"YulFunctionCall","src":"6644:30:88"},"nativeSrc":"6644:30:88","nodeType":"YulExpressionStatement","src":"6644:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6694:9:88","nodeType":"YulIdentifier","src":"6694:9:88"},{"kind":"number","nativeSrc":"6705:2:88","nodeType":"YulLiteral","src":"6705:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6690:3:88","nodeType":"YulIdentifier","src":"6690:3:88"},"nativeSrc":"6690:18:88","nodeType":"YulFunctionCall","src":"6690:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"6710:34:88","nodeType":"YulLiteral","src":"6710:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"6683:6:88","nodeType":"YulIdentifier","src":"6683:6:88"},"nativeSrc":"6683:62:88","nodeType":"YulFunctionCall","src":"6683:62:88"},"nativeSrc":"6683:62:88","nodeType":"YulExpressionStatement","src":"6683:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6765:9:88","nodeType":"YulIdentifier","src":"6765:9:88"},{"kind":"number","nativeSrc":"6776:2:88","nodeType":"YulLiteral","src":"6776:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6761:3:88","nodeType":"YulIdentifier","src":"6761:3:88"},"nativeSrc":"6761:18:88","nodeType":"YulFunctionCall","src":"6761:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"6781:14:88","nodeType":"YulLiteral","src":"6781:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"6754:6:88","nodeType":"YulIdentifier","src":"6754:6:88"},"nativeSrc":"6754:42:88","nodeType":"YulFunctionCall","src":"6754:42:88"},"nativeSrc":"6754:42:88","nodeType":"YulExpressionStatement","src":"6754:42:88"},{"nativeSrc":"6805:27:88","nodeType":"YulAssignment","src":"6805:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6817:9:88","nodeType":"YulIdentifier","src":"6817:9:88"},{"kind":"number","nativeSrc":"6828:3:88","nodeType":"YulLiteral","src":"6828:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6813:3:88","nodeType":"YulIdentifier","src":"6813:3:88"},"nativeSrc":"6813:19:88","nodeType":"YulFunctionCall","src":"6813:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6805:4:88","nodeType":"YulIdentifier","src":"6805:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6430:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6581:9:88","nodeType":"YulTypedName","src":"6581:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6595:4:88","nodeType":"YulTypedName","src":"6595:4:88","type":""}],"src":"6430:408:88"},{"body":{"nativeSrc":"7017:234:88","nodeType":"YulBlock","src":"7017:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7034:9:88","nodeType":"YulIdentifier","src":"7034:9:88"},{"kind":"number","nativeSrc":"7045:2:88","nodeType":"YulLiteral","src":"7045:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7027:6:88","nodeType":"YulIdentifier","src":"7027:6:88"},"nativeSrc":"7027:21:88","nodeType":"YulFunctionCall","src":"7027:21:88"},"nativeSrc":"7027:21:88","nodeType":"YulExpressionStatement","src":"7027:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7068:9:88","nodeType":"YulIdentifier","src":"7068:9:88"},{"kind":"number","nativeSrc":"7079:2:88","nodeType":"YulLiteral","src":"7079:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7064:3:88","nodeType":"YulIdentifier","src":"7064:3:88"},"nativeSrc":"7064:18:88","nodeType":"YulFunctionCall","src":"7064:18:88"},{"kind":"number","nativeSrc":"7084:2:88","nodeType":"YulLiteral","src":"7084:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"7057:6:88","nodeType":"YulIdentifier","src":"7057:6:88"},"nativeSrc":"7057:30:88","nodeType":"YulFunctionCall","src":"7057:30:88"},"nativeSrc":"7057:30:88","nodeType":"YulExpressionStatement","src":"7057:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7107:9:88","nodeType":"YulIdentifier","src":"7107:9:88"},{"kind":"number","nativeSrc":"7118:2:88","nodeType":"YulLiteral","src":"7118:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7103:3:88","nodeType":"YulIdentifier","src":"7103:3:88"},"nativeSrc":"7103:18:88","nodeType":"YulFunctionCall","src":"7103:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"7123:34:88","nodeType":"YulLiteral","src":"7123:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"7096:6:88","nodeType":"YulIdentifier","src":"7096:6:88"},"nativeSrc":"7096:62:88","nodeType":"YulFunctionCall","src":"7096:62:88"},"nativeSrc":"7096:62:88","nodeType":"YulExpressionStatement","src":"7096:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7178:9:88","nodeType":"YulIdentifier","src":"7178:9:88"},{"kind":"number","nativeSrc":"7189:2:88","nodeType":"YulLiteral","src":"7189:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7174:3:88","nodeType":"YulIdentifier","src":"7174:3:88"},"nativeSrc":"7174:18:88","nodeType":"YulFunctionCall","src":"7174:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"7194:14:88","nodeType":"YulLiteral","src":"7194:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"7167:6:88","nodeType":"YulIdentifier","src":"7167:6:88"},"nativeSrc":"7167:42:88","nodeType":"YulFunctionCall","src":"7167:42:88"},"nativeSrc":"7167:42:88","nodeType":"YulExpressionStatement","src":"7167:42:88"},{"nativeSrc":"7218:27:88","nodeType":"YulAssignment","src":"7218:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7230:9:88","nodeType":"YulIdentifier","src":"7230:9:88"},{"kind":"number","nativeSrc":"7241:3:88","nodeType":"YulLiteral","src":"7241:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7226:3:88","nodeType":"YulIdentifier","src":"7226:3:88"},"nativeSrc":"7226:19:88","nodeType":"YulFunctionCall","src":"7226:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7218:4:88","nodeType":"YulIdentifier","src":"7218:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6843:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6994:9:88","nodeType":"YulTypedName","src":"6994:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7008:4:88","nodeType":"YulTypedName","src":"7008:4:88","type":""}],"src":"6843:408:88"},{"body":{"nativeSrc":"7430:246:88","nodeType":"YulBlock","src":"7430:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7447:9:88","nodeType":"YulIdentifier","src":"7447:9:88"},{"kind":"number","nativeSrc":"7458:2:88","nodeType":"YulLiteral","src":"7458:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7440:6:88","nodeType":"YulIdentifier","src":"7440:6:88"},"nativeSrc":"7440:21:88","nodeType":"YulFunctionCall","src":"7440:21:88"},"nativeSrc":"7440:21:88","nodeType":"YulExpressionStatement","src":"7440:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7481:9:88","nodeType":"YulIdentifier","src":"7481:9:88"},{"kind":"number","nativeSrc":"7492:2:88","nodeType":"YulLiteral","src":"7492:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7477:3:88","nodeType":"YulIdentifier","src":"7477:3:88"},"nativeSrc":"7477:18:88","nodeType":"YulFunctionCall","src":"7477:18:88"},{"kind":"number","nativeSrc":"7497:2:88","nodeType":"YulLiteral","src":"7497:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"7470:6:88","nodeType":"YulIdentifier","src":"7470:6:88"},"nativeSrc":"7470:30:88","nodeType":"YulFunctionCall","src":"7470:30:88"},"nativeSrc":"7470:30:88","nodeType":"YulExpressionStatement","src":"7470:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7520:9:88","nodeType":"YulIdentifier","src":"7520:9:88"},{"kind":"number","nativeSrc":"7531:2:88","nodeType":"YulLiteral","src":"7531:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7516:3:88","nodeType":"YulIdentifier","src":"7516:3:88"},"nativeSrc":"7516:18:88","nodeType":"YulFunctionCall","src":"7516:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"7536:34:88","nodeType":"YulLiteral","src":"7536:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"7509:6:88","nodeType":"YulIdentifier","src":"7509:6:88"},"nativeSrc":"7509:62:88","nodeType":"YulFunctionCall","src":"7509:62:88"},"nativeSrc":"7509:62:88","nodeType":"YulExpressionStatement","src":"7509:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7591:9:88","nodeType":"YulIdentifier","src":"7591:9:88"},{"kind":"number","nativeSrc":"7602:2:88","nodeType":"YulLiteral","src":"7602:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7587:3:88","nodeType":"YulIdentifier","src":"7587:3:88"},"nativeSrc":"7587:18:88","nodeType":"YulFunctionCall","src":"7587:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"7607:26:88","nodeType":"YulLiteral","src":"7607:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"7580:6:88","nodeType":"YulIdentifier","src":"7580:6:88"},"nativeSrc":"7580:54:88","nodeType":"YulFunctionCall","src":"7580:54:88"},"nativeSrc":"7580:54:88","nodeType":"YulExpressionStatement","src":"7580:54:88"},{"nativeSrc":"7643:27:88","nodeType":"YulAssignment","src":"7643:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7655:9:88","nodeType":"YulIdentifier","src":"7655:9:88"},{"kind":"number","nativeSrc":"7666:3:88","nodeType":"YulLiteral","src":"7666:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7651:3:88","nodeType":"YulIdentifier","src":"7651:3:88"},"nativeSrc":"7651:19:88","nodeType":"YulFunctionCall","src":"7651:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7643:4:88","nodeType":"YulIdentifier","src":"7643:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7256:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7407:9:88","nodeType":"YulTypedName","src":"7407:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7421:4:88","nodeType":"YulTypedName","src":"7421:4:88","type":""}],"src":"7256:420:88"},{"body":{"nativeSrc":"7855:236:88","nodeType":"YulBlock","src":"7855:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7872:9:88","nodeType":"YulIdentifier","src":"7872:9:88"},{"kind":"number","nativeSrc":"7883:2:88","nodeType":"YulLiteral","src":"7883:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7865:6:88","nodeType":"YulIdentifier","src":"7865:6:88"},"nativeSrc":"7865:21:88","nodeType":"YulFunctionCall","src":"7865:21:88"},"nativeSrc":"7865:21:88","nodeType":"YulExpressionStatement","src":"7865:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7906:9:88","nodeType":"YulIdentifier","src":"7906:9:88"},{"kind":"number","nativeSrc":"7917:2:88","nodeType":"YulLiteral","src":"7917:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7902:3:88","nodeType":"YulIdentifier","src":"7902:3:88"},"nativeSrc":"7902:18:88","nodeType":"YulFunctionCall","src":"7902:18:88"},{"kind":"number","nativeSrc":"7922:2:88","nodeType":"YulLiteral","src":"7922:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"7895:6:88","nodeType":"YulIdentifier","src":"7895:6:88"},"nativeSrc":"7895:30:88","nodeType":"YulFunctionCall","src":"7895:30:88"},"nativeSrc":"7895:30:88","nodeType":"YulExpressionStatement","src":"7895:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7945:9:88","nodeType":"YulIdentifier","src":"7945:9:88"},{"kind":"number","nativeSrc":"7956:2:88","nodeType":"YulLiteral","src":"7956:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7941:3:88","nodeType":"YulIdentifier","src":"7941:3:88"},"nativeSrc":"7941:18:88","nodeType":"YulFunctionCall","src":"7941:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"7961:34:88","nodeType":"YulLiteral","src":"7961:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"7934:6:88","nodeType":"YulIdentifier","src":"7934:6:88"},"nativeSrc":"7934:62:88","nodeType":"YulFunctionCall","src":"7934:62:88"},"nativeSrc":"7934:62:88","nodeType":"YulExpressionStatement","src":"7934:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8016:9:88","nodeType":"YulIdentifier","src":"8016:9:88"},{"kind":"number","nativeSrc":"8027:2:88","nodeType":"YulLiteral","src":"8027:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8012:3:88","nodeType":"YulIdentifier","src":"8012:3:88"},"nativeSrc":"8012:18:88","nodeType":"YulFunctionCall","src":"8012:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"8032:16:88","nodeType":"YulLiteral","src":"8032:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"8005:6:88","nodeType":"YulIdentifier","src":"8005:6:88"},"nativeSrc":"8005:44:88","nodeType":"YulFunctionCall","src":"8005:44:88"},"nativeSrc":"8005:44:88","nodeType":"YulExpressionStatement","src":"8005:44:88"},{"nativeSrc":"8058:27:88","nodeType":"YulAssignment","src":"8058:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8070:9:88","nodeType":"YulIdentifier","src":"8070:9:88"},{"kind":"number","nativeSrc":"8081:3:88","nodeType":"YulLiteral","src":"8081:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8066:3:88","nodeType":"YulIdentifier","src":"8066:3:88"},"nativeSrc":"8066:19:88","nodeType":"YulFunctionCall","src":"8066:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8058:4:88","nodeType":"YulIdentifier","src":"8058:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7681:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7832:9:88","nodeType":"YulTypedName","src":"7832:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7846:4:88","nodeType":"YulTypedName","src":"7846:4:88","type":""}],"src":"7681:410:88"},{"body":{"nativeSrc":"8203:87:88","nodeType":"YulBlock","src":"8203:87:88","statements":[{"nativeSrc":"8213:26:88","nodeType":"YulAssignment","src":"8213:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8225:9:88","nodeType":"YulIdentifier","src":"8225:9:88"},{"kind":"number","nativeSrc":"8236:2:88","nodeType":"YulLiteral","src":"8236:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8221:3:88","nodeType":"YulIdentifier","src":"8221:3:88"},"nativeSrc":"8221:18:88","nodeType":"YulFunctionCall","src":"8221:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8213:4:88","nodeType":"YulIdentifier","src":"8213:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8255:9:88","nodeType":"YulIdentifier","src":"8255:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8270:6:88","nodeType":"YulIdentifier","src":"8270:6:88"},{"kind":"number","nativeSrc":"8278:4:88","nodeType":"YulLiteral","src":"8278:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8266:3:88","nodeType":"YulIdentifier","src":"8266:3:88"},"nativeSrc":"8266:17:88","nodeType":"YulFunctionCall","src":"8266:17:88"}],"functionName":{"name":"mstore","nativeSrc":"8248:6:88","nodeType":"YulIdentifier","src":"8248:6:88"},"nativeSrc":"8248:36:88","nodeType":"YulFunctionCall","src":"8248:36:88"},"nativeSrc":"8248:36:88","nodeType":"YulExpressionStatement","src":"8248:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"8096:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8172:9:88","nodeType":"YulTypedName","src":"8172:9:88","type":""},{"name":"value0","nativeSrc":"8183:6:88","nodeType":"YulTypedName","src":"8183:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8194:4:88","nodeType":"YulTypedName","src":"8194:4:88","type":""}],"src":"8096:194:88"},{"body":{"nativeSrc":"8469:234:88","nodeType":"YulBlock","src":"8469:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8486:9:88","nodeType":"YulIdentifier","src":"8486:9:88"},{"kind":"number","nativeSrc":"8497:2:88","nodeType":"YulLiteral","src":"8497:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8479:6:88","nodeType":"YulIdentifier","src":"8479:6:88"},"nativeSrc":"8479:21:88","nodeType":"YulFunctionCall","src":"8479:21:88"},"nativeSrc":"8479:21:88","nodeType":"YulExpressionStatement","src":"8479:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8520:9:88","nodeType":"YulIdentifier","src":"8520:9:88"},{"kind":"number","nativeSrc":"8531:2:88","nodeType":"YulLiteral","src":"8531:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8516:3:88","nodeType":"YulIdentifier","src":"8516:3:88"},"nativeSrc":"8516:18:88","nodeType":"YulFunctionCall","src":"8516:18:88"},{"kind":"number","nativeSrc":"8536:2:88","nodeType":"YulLiteral","src":"8536:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"8509:6:88","nodeType":"YulIdentifier","src":"8509:6:88"},"nativeSrc":"8509:30:88","nodeType":"YulFunctionCall","src":"8509:30:88"},"nativeSrc":"8509:30:88","nodeType":"YulExpressionStatement","src":"8509:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8559:9:88","nodeType":"YulIdentifier","src":"8559:9:88"},{"kind":"number","nativeSrc":"8570:2:88","nodeType":"YulLiteral","src":"8570:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8555:3:88","nodeType":"YulIdentifier","src":"8555:3:88"},"nativeSrc":"8555:18:88","nodeType":"YulFunctionCall","src":"8555:18:88"},{"hexValue":"4163636573734d616e616765723a20696e76616c696420616464726573732066","kind":"string","nativeSrc":"8575:34:88","nodeType":"YulLiteral","src":"8575:34:88","type":"","value":"AccessManager: invalid address f"}],"functionName":{"name":"mstore","nativeSrc":"8548:6:88","nodeType":"YulIdentifier","src":"8548:6:88"},"nativeSrc":"8548:62:88","nodeType":"YulFunctionCall","src":"8548:62:88"},"nativeSrc":"8548:62:88","nodeType":"YulExpressionStatement","src":"8548:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8630:9:88","nodeType":"YulIdentifier","src":"8630:9:88"},{"kind":"number","nativeSrc":"8641:2:88","nodeType":"YulLiteral","src":"8641:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8626:3:88","nodeType":"YulIdentifier","src":"8626:3:88"},"nativeSrc":"8626:18:88","nodeType":"YulFunctionCall","src":"8626:18:88"},{"hexValue":"6f7220636f6d706f6e656e74","kind":"string","nativeSrc":"8646:14:88","nodeType":"YulLiteral","src":"8646:14:88","type":"","value":"or component"}],"functionName":{"name":"mstore","nativeSrc":"8619:6:88","nodeType":"YulIdentifier","src":"8619:6:88"},"nativeSrc":"8619:42:88","nodeType":"YulFunctionCall","src":"8619:42:88"},"nativeSrc":"8619:42:88","nodeType":"YulExpressionStatement","src":"8619:42:88"},{"nativeSrc":"8670:27:88","nodeType":"YulAssignment","src":"8670:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8682:9:88","nodeType":"YulIdentifier","src":"8682:9:88"},{"kind":"number","nativeSrc":"8693:3:88","nodeType":"YulLiteral","src":"8693:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8678:3:88","nodeType":"YulIdentifier","src":"8678:3:88"},"nativeSrc":"8678:19:88","nodeType":"YulFunctionCall","src":"8678:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8670:4:88","nodeType":"YulIdentifier","src":"8670:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_139e7460e861361a043a6a300a0adb9f37e8681b280e3f9f258dba9bc5ed8726__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8295:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8446:9:88","nodeType":"YulTypedName","src":"8446:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8460:4:88","nodeType":"YulTypedName","src":"8460:4:88","type":""}],"src":"8295:408:88"},{"body":{"nativeSrc":"8882:240:88","nodeType":"YulBlock","src":"8882:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8899:9:88","nodeType":"YulIdentifier","src":"8899:9:88"},{"kind":"number","nativeSrc":"8910:2:88","nodeType":"YulLiteral","src":"8910:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8892:6:88","nodeType":"YulIdentifier","src":"8892:6:88"},"nativeSrc":"8892:21:88","nodeType":"YulFunctionCall","src":"8892:21:88"},"nativeSrc":"8892:21:88","nodeType":"YulExpressionStatement","src":"8892:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8933:9:88","nodeType":"YulIdentifier","src":"8933:9:88"},{"kind":"number","nativeSrc":"8944:2:88","nodeType":"YulLiteral","src":"8944:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8929:3:88","nodeType":"YulIdentifier","src":"8929:3:88"},"nativeSrc":"8929:18:88","nodeType":"YulFunctionCall","src":"8929:18:88"},{"kind":"number","nativeSrc":"8949:2:88","nodeType":"YulLiteral","src":"8949:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"8922:6:88","nodeType":"YulIdentifier","src":"8922:6:88"},"nativeSrc":"8922:30:88","nodeType":"YulFunctionCall","src":"8922:30:88"},"nativeSrc":"8922:30:88","nodeType":"YulExpressionStatement","src":"8922:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8972:9:88","nodeType":"YulIdentifier","src":"8972:9:88"},{"kind":"number","nativeSrc":"8983:2:88","nodeType":"YulLiteral","src":"8983:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8968:3:88","nodeType":"YulIdentifier","src":"8968:3:88"},"nativeSrc":"8968:18:88","nodeType":"YulFunctionCall","src":"8968:18:88"},{"hexValue":"4163636573734d616e616765723a206d73672e73656e646572206e6565647320","kind":"string","nativeSrc":"8988:34:88","nodeType":"YulLiteral","src":"8988:34:88","type":"","value":"AccessManager: msg.sender needs "}],"functionName":{"name":"mstore","nativeSrc":"8961:6:88","nodeType":"YulIdentifier","src":"8961:6:88"},"nativeSrc":"8961:62:88","nodeType":"YulFunctionCall","src":"8961:62:88"},"nativeSrc":"8961:62:88","nodeType":"YulExpressionStatement","src":"8961:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9043:9:88","nodeType":"YulIdentifier","src":"9043:9:88"},{"kind":"number","nativeSrc":"9054:2:88","nodeType":"YulLiteral","src":"9054:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9039:3:88","nodeType":"YulIdentifier","src":"9039:3:88"},"nativeSrc":"9039:18:88","nodeType":"YulFunctionCall","src":"9039:18:88"},{"hexValue":"636f6d706f6e656e74526f6c6541646d696e","kind":"string","nativeSrc":"9059:20:88","nodeType":"YulLiteral","src":"9059:20:88","type":"","value":"componentRoleAdmin"}],"functionName":{"name":"mstore","nativeSrc":"9032:6:88","nodeType":"YulIdentifier","src":"9032:6:88"},"nativeSrc":"9032:48:88","nodeType":"YulFunctionCall","src":"9032:48:88"},"nativeSrc":"9032:48:88","nodeType":"YulExpressionStatement","src":"9032:48:88"},{"nativeSrc":"9089:27:88","nodeType":"YulAssignment","src":"9089:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9101:9:88","nodeType":"YulIdentifier","src":"9101:9:88"},{"kind":"number","nativeSrc":"9112:3:88","nodeType":"YulLiteral","src":"9112:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9097:3:88","nodeType":"YulIdentifier","src":"9097:3:88"},"nativeSrc":"9097:19:88","nodeType":"YulFunctionCall","src":"9097:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9089:4:88","nodeType":"YulIdentifier","src":"9089:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe9fbc8261f2f4efe11c4301badc79ec09bf8356cfeea91de99d438db405983__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8708:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8859:9:88","nodeType":"YulTypedName","src":"8859:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8873:4:88","nodeType":"YulTypedName","src":"8873:4:88","type":""}],"src":"8708:414:88"},{"body":{"nativeSrc":"9177:162:88","nodeType":"YulBlock","src":"9177:162:88","statements":[{"nativeSrc":"9187:26:88","nodeType":"YulVariableDeclaration","src":"9187:26:88","value":{"arguments":[{"name":"value","nativeSrc":"9207:5:88","nodeType":"YulIdentifier","src":"9207:5:88"}],"functionName":{"name":"mload","nativeSrc":"9201:5:88","nodeType":"YulIdentifier","src":"9201:5:88"},"nativeSrc":"9201:12:88","nodeType":"YulFunctionCall","src":"9201:12:88"},"variables":[{"name":"length","nativeSrc":"9191:6:88","nodeType":"YulTypedName","src":"9191:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9228:3:88","nodeType":"YulIdentifier","src":"9228:3:88"},{"arguments":[{"name":"value","nativeSrc":"9237:5:88","nodeType":"YulIdentifier","src":"9237:5:88"},{"kind":"number","nativeSrc":"9244:4:88","nodeType":"YulLiteral","src":"9244:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9233:3:88","nodeType":"YulIdentifier","src":"9233:3:88"},"nativeSrc":"9233:16:88","nodeType":"YulFunctionCall","src":"9233:16:88"},{"name":"length","nativeSrc":"9251:6:88","nodeType":"YulIdentifier","src":"9251:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"9222:5:88","nodeType":"YulIdentifier","src":"9222:5:88"},"nativeSrc":"9222:36:88","nodeType":"YulFunctionCall","src":"9222:36:88"},"nativeSrc":"9222:36:88","nodeType":"YulExpressionStatement","src":"9222:36:88"},{"nativeSrc":"9267:26:88","nodeType":"YulVariableDeclaration","src":"9267:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"9281:3:88","nodeType":"YulIdentifier","src":"9281:3:88"},{"name":"length","nativeSrc":"9286:6:88","nodeType":"YulIdentifier","src":"9286:6:88"}],"functionName":{"name":"add","nativeSrc":"9277:3:88","nodeType":"YulIdentifier","src":"9277:3:88"},"nativeSrc":"9277:16:88","nodeType":"YulFunctionCall","src":"9277:16:88"},"variables":[{"name":"_1","nativeSrc":"9271:2:88","nodeType":"YulTypedName","src":"9271:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"9309:2:88","nodeType":"YulIdentifier","src":"9309:2:88"},{"kind":"number","nativeSrc":"9313:1:88","nodeType":"YulLiteral","src":"9313:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9302:6:88","nodeType":"YulIdentifier","src":"9302:6:88"},"nativeSrc":"9302:13:88","nodeType":"YulFunctionCall","src":"9302:13:88"},"nativeSrc":"9302:13:88","nodeType":"YulExpressionStatement","src":"9302:13:88"},{"nativeSrc":"9324:9:88","nodeType":"YulAssignment","src":"9324:9:88","value":{"name":"_1","nativeSrc":"9331:2:88","nodeType":"YulIdentifier","src":"9331:2:88"},"variableNames":[{"name":"end","nativeSrc":"9324:3:88","nodeType":"YulIdentifier","src":"9324:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"9127:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9154:5:88","nodeType":"YulTypedName","src":"9154:5:88","type":""},{"name":"pos","nativeSrc":"9161:3:88","nodeType":"YulTypedName","src":"9161:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9169:3:88","nodeType":"YulTypedName","src":"9169:3:88","type":""}],"src":"9127:212:88"},{"body":{"nativeSrc":"9733:206:88","nodeType":"YulBlock","src":"9733:206:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9750:3:88","nodeType":"YulIdentifier","src":"9750:3:88"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nativeSrc":"9755:25:88","nodeType":"YulLiteral","src":"9755:25:88","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nativeSrc":"9743:6:88","nodeType":"YulIdentifier","src":"9743:6:88"},"nativeSrc":"9743:38:88","nodeType":"YulFunctionCall","src":"9743:38:88"},"nativeSrc":"9743:38:88","nodeType":"YulExpressionStatement","src":"9743:38:88"},{"nativeSrc":"9790:49:88","nodeType":"YulVariableDeclaration","src":"9790:49:88","value":{"arguments":[{"name":"value0","nativeSrc":"9818:6:88","nodeType":"YulIdentifier","src":"9818:6:88"},{"arguments":[{"name":"pos","nativeSrc":"9830:3:88","nodeType":"YulIdentifier","src":"9830:3:88"},{"kind":"number","nativeSrc":"9835:2:88","nodeType":"YulLiteral","src":"9835:2:88","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"9826:3:88","nodeType":"YulIdentifier","src":"9826:3:88"},"nativeSrc":"9826:12:88","nodeType":"YulFunctionCall","src":"9826:12:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"9800:17:88","nodeType":"YulIdentifier","src":"9800:17:88"},"nativeSrc":"9800:39:88","nodeType":"YulFunctionCall","src":"9800:39:88"},"variables":[{"name":"_1","nativeSrc":"9794:2:88","nodeType":"YulTypedName","src":"9794:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"9855:2:88","nodeType":"YulIdentifier","src":"9855:2:88"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nativeSrc":"9859:19:88","nodeType":"YulLiteral","src":"9859:19:88","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nativeSrc":"9848:6:88","nodeType":"YulIdentifier","src":"9848:6:88"},"nativeSrc":"9848:31:88","nodeType":"YulFunctionCall","src":"9848:31:88"},"nativeSrc":"9848:31:88","nodeType":"YulExpressionStatement","src":"9848:31:88"},{"nativeSrc":"9888:45:88","nodeType":"YulAssignment","src":"9888:45:88","value":{"arguments":[{"name":"value1","nativeSrc":"9913:6:88","nodeType":"YulIdentifier","src":"9913:6:88"},{"arguments":[{"name":"_1","nativeSrc":"9925:2:88","nodeType":"YulIdentifier","src":"9925:2:88"},{"kind":"number","nativeSrc":"9929:2:88","nodeType":"YulLiteral","src":"9929:2:88","type":"","value":"17"}],"functionName":{"name":"add","nativeSrc":"9921:3:88","nodeType":"YulIdentifier","src":"9921:3:88"},"nativeSrc":"9921:11:88","nodeType":"YulFunctionCall","src":"9921:11:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"9895:17:88","nodeType":"YulIdentifier","src":"9895:17:88"},"nativeSrc":"9895:38:88","nodeType":"YulFunctionCall","src":"9895:38:88"},"variableNames":[{"name":"end","nativeSrc":"9888:3:88","nodeType":"YulIdentifier","src":"9888:3:88"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9344:595:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9701:3:88","nodeType":"YulTypedName","src":"9701:3:88","type":""},{"name":"value1","nativeSrc":"9706:6:88","nodeType":"YulTypedName","src":"9706:6:88","type":""},{"name":"value0","nativeSrc":"9714:6:88","nodeType":"YulTypedName","src":"9714:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9725:3:88","nodeType":"YulTypedName","src":"9725:3:88","type":""}],"src":"9344:595:88"},{"body":{"nativeSrc":"10065:297:88","nodeType":"YulBlock","src":"10065:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10082:9:88","nodeType":"YulIdentifier","src":"10082:9:88"},{"kind":"number","nativeSrc":"10093:2:88","nodeType":"YulLiteral","src":"10093:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10075:6:88","nodeType":"YulIdentifier","src":"10075:6:88"},"nativeSrc":"10075:21:88","nodeType":"YulFunctionCall","src":"10075:21:88"},"nativeSrc":"10075:21:88","nodeType":"YulExpressionStatement","src":"10075:21:88"},{"nativeSrc":"10105:27:88","nodeType":"YulVariableDeclaration","src":"10105:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"10125:6:88","nodeType":"YulIdentifier","src":"10125:6:88"}],"functionName":{"name":"mload","nativeSrc":"10119:5:88","nodeType":"YulIdentifier","src":"10119:5:88"},"nativeSrc":"10119:13:88","nodeType":"YulFunctionCall","src":"10119:13:88"},"variables":[{"name":"length","nativeSrc":"10109:6:88","nodeType":"YulTypedName","src":"10109:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10152:9:88","nodeType":"YulIdentifier","src":"10152:9:88"},{"kind":"number","nativeSrc":"10163:2:88","nodeType":"YulLiteral","src":"10163:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10148:3:88","nodeType":"YulIdentifier","src":"10148:3:88"},"nativeSrc":"10148:18:88","nodeType":"YulFunctionCall","src":"10148:18:88"},{"name":"length","nativeSrc":"10168:6:88","nodeType":"YulIdentifier","src":"10168:6:88"}],"functionName":{"name":"mstore","nativeSrc":"10141:6:88","nodeType":"YulIdentifier","src":"10141:6:88"},"nativeSrc":"10141:34:88","nodeType":"YulFunctionCall","src":"10141:34:88"},"nativeSrc":"10141:34:88","nodeType":"YulExpressionStatement","src":"10141:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10194:9:88","nodeType":"YulIdentifier","src":"10194:9:88"},{"kind":"number","nativeSrc":"10205:2:88","nodeType":"YulLiteral","src":"10205:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10190:3:88","nodeType":"YulIdentifier","src":"10190:3:88"},"nativeSrc":"10190:18:88","nodeType":"YulFunctionCall","src":"10190:18:88"},{"arguments":[{"name":"value0","nativeSrc":"10214:6:88","nodeType":"YulIdentifier","src":"10214:6:88"},{"kind":"number","nativeSrc":"10222:2:88","nodeType":"YulLiteral","src":"10222:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10210:3:88","nodeType":"YulIdentifier","src":"10210:3:88"},"nativeSrc":"10210:15:88","nodeType":"YulFunctionCall","src":"10210:15:88"},{"name":"length","nativeSrc":"10227:6:88","nodeType":"YulIdentifier","src":"10227:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"10184:5:88","nodeType":"YulIdentifier","src":"10184:5:88"},"nativeSrc":"10184:50:88","nodeType":"YulFunctionCall","src":"10184:50:88"},"nativeSrc":"10184:50:88","nodeType":"YulExpressionStatement","src":"10184:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10258:9:88","nodeType":"YulIdentifier","src":"10258:9:88"},{"name":"length","nativeSrc":"10269:6:88","nodeType":"YulIdentifier","src":"10269:6:88"}],"functionName":{"name":"add","nativeSrc":"10254:3:88","nodeType":"YulIdentifier","src":"10254:3:88"},"nativeSrc":"10254:22:88","nodeType":"YulFunctionCall","src":"10254:22:88"},{"kind":"number","nativeSrc":"10278:2:88","nodeType":"YulLiteral","src":"10278:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10250:3:88","nodeType":"YulIdentifier","src":"10250:3:88"},"nativeSrc":"10250:31:88","nodeType":"YulFunctionCall","src":"10250:31:88"},{"kind":"number","nativeSrc":"10283:1:88","nodeType":"YulLiteral","src":"10283:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10243:6:88","nodeType":"YulIdentifier","src":"10243:6:88"},"nativeSrc":"10243:42:88","nodeType":"YulFunctionCall","src":"10243:42:88"},"nativeSrc":"10243:42:88","nodeType":"YulExpressionStatement","src":"10243:42:88"},{"nativeSrc":"10294:62:88","nodeType":"YulAssignment","src":"10294:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10310:9:88","nodeType":"YulIdentifier","src":"10310:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10329:6:88","nodeType":"YulIdentifier","src":"10329:6:88"},{"kind":"number","nativeSrc":"10337:2:88","nodeType":"YulLiteral","src":"10337:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10325:3:88","nodeType":"YulIdentifier","src":"10325:3:88"},"nativeSrc":"10325:15:88","nodeType":"YulFunctionCall","src":"10325:15:88"},{"arguments":[{"kind":"number","nativeSrc":"10346:2:88","nodeType":"YulLiteral","src":"10346:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10342:3:88","nodeType":"YulIdentifier","src":"10342:3:88"},"nativeSrc":"10342:7:88","nodeType":"YulFunctionCall","src":"10342:7:88"}],"functionName":{"name":"and","nativeSrc":"10321:3:88","nodeType":"YulIdentifier","src":"10321:3:88"},"nativeSrc":"10321:29:88","nodeType":"YulFunctionCall","src":"10321:29:88"}],"functionName":{"name":"add","nativeSrc":"10306:3:88","nodeType":"YulIdentifier","src":"10306:3:88"},"nativeSrc":"10306:45:88","nodeType":"YulFunctionCall","src":"10306:45:88"},{"kind":"number","nativeSrc":"10353:2:88","nodeType":"YulLiteral","src":"10353:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10302:3:88","nodeType":"YulIdentifier","src":"10302:3:88"},"nativeSrc":"10302:54:88","nodeType":"YulFunctionCall","src":"10302:54:88"},"variableNames":[{"name":"tail","nativeSrc":"10294:4:88","nodeType":"YulIdentifier","src":"10294:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9944:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10034:9:88","nodeType":"YulTypedName","src":"10034:9:88","type":""},{"name":"value0","nativeSrc":"10045:6:88","nodeType":"YulTypedName","src":"10045:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10056:4:88","nodeType":"YulTypedName","src":"10056:4:88","type":""}],"src":"9944:418:88"},{"body":{"nativeSrc":"10448:103:88","nodeType":"YulBlock","src":"10448:103:88","statements":[{"body":{"nativeSrc":"10494:16:88","nodeType":"YulBlock","src":"10494:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10503:1:88","nodeType":"YulLiteral","src":"10503:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10506:1:88","nodeType":"YulLiteral","src":"10506:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10496:6:88","nodeType":"YulIdentifier","src":"10496:6:88"},"nativeSrc":"10496:12:88","nodeType":"YulFunctionCall","src":"10496:12:88"},"nativeSrc":"10496:12:88","nodeType":"YulExpressionStatement","src":"10496:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10469:7:88","nodeType":"YulIdentifier","src":"10469:7:88"},{"name":"headStart","nativeSrc":"10478:9:88","nodeType":"YulIdentifier","src":"10478:9:88"}],"functionName":{"name":"sub","nativeSrc":"10465:3:88","nodeType":"YulIdentifier","src":"10465:3:88"},"nativeSrc":"10465:23:88","nodeType":"YulFunctionCall","src":"10465:23:88"},{"kind":"number","nativeSrc":"10490:2:88","nodeType":"YulLiteral","src":"10490:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10461:3:88","nodeType":"YulIdentifier","src":"10461:3:88"},"nativeSrc":"10461:32:88","nodeType":"YulFunctionCall","src":"10461:32:88"},"nativeSrc":"10458:52:88","nodeType":"YulIf","src":"10458:52:88"},{"nativeSrc":"10519:26:88","nodeType":"YulAssignment","src":"10519:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10535:9:88","nodeType":"YulIdentifier","src":"10535:9:88"}],"functionName":{"name":"mload","nativeSrc":"10529:5:88","nodeType":"YulIdentifier","src":"10529:5:88"},"nativeSrc":"10529:16:88","nodeType":"YulFunctionCall","src":"10529:16:88"},"variableNames":[{"name":"value0","nativeSrc":"10519:6:88","nodeType":"YulIdentifier","src":"10519:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"10367:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10414:9:88","nodeType":"YulTypedName","src":"10414:9:88","type":""},{"name":"dataEnd","nativeSrc":"10425:7:88","nodeType":"YulTypedName","src":"10425:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10437:6:88","nodeType":"YulTypedName","src":"10437:6:88","type":""}],"src":"10367:184:88"},{"body":{"nativeSrc":"10730:236:88","nodeType":"YulBlock","src":"10730:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10747:9:88","nodeType":"YulIdentifier","src":"10747:9:88"},{"kind":"number","nativeSrc":"10758:2:88","nodeType":"YulLiteral","src":"10758:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10740:6:88","nodeType":"YulIdentifier","src":"10740:6:88"},"nativeSrc":"10740:21:88","nodeType":"YulFunctionCall","src":"10740:21:88"},"nativeSrc":"10740:21:88","nodeType":"YulExpressionStatement","src":"10740:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10781:9:88","nodeType":"YulIdentifier","src":"10781:9:88"},{"kind":"number","nativeSrc":"10792:2:88","nodeType":"YulLiteral","src":"10792:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10777:3:88","nodeType":"YulIdentifier","src":"10777:3:88"},"nativeSrc":"10777:18:88","nodeType":"YulFunctionCall","src":"10777:18:88"},{"kind":"number","nativeSrc":"10797:2:88","nodeType":"YulLiteral","src":"10797:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"10770:6:88","nodeType":"YulIdentifier","src":"10770:6:88"},"nativeSrc":"10770:30:88","nodeType":"YulFunctionCall","src":"10770:30:88"},"nativeSrc":"10770:30:88","nodeType":"YulExpressionStatement","src":"10770:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10820:9:88","nodeType":"YulIdentifier","src":"10820:9:88"},{"kind":"number","nativeSrc":"10831:2:88","nodeType":"YulLiteral","src":"10831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10816:3:88","nodeType":"YulIdentifier","src":"10816:3:88"},"nativeSrc":"10816:18:88","nodeType":"YulFunctionCall","src":"10816:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"10836:34:88","nodeType":"YulLiteral","src":"10836:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"10809:6:88","nodeType":"YulIdentifier","src":"10809:6:88"},"nativeSrc":"10809:62:88","nodeType":"YulFunctionCall","src":"10809:62:88"},"nativeSrc":"10809:62:88","nodeType":"YulExpressionStatement","src":"10809:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10891:9:88","nodeType":"YulIdentifier","src":"10891:9:88"},{"kind":"number","nativeSrc":"10902:2:88","nodeType":"YulLiteral","src":"10902:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10887:3:88","nodeType":"YulIdentifier","src":"10887:3:88"},"nativeSrc":"10887:18:88","nodeType":"YulFunctionCall","src":"10887:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"10907:16:88","nodeType":"YulLiteral","src":"10907:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"10880:6:88","nodeType":"YulIdentifier","src":"10880:6:88"},"nativeSrc":"10880:44:88","nodeType":"YulFunctionCall","src":"10880:44:88"},"nativeSrc":"10880:44:88","nodeType":"YulExpressionStatement","src":"10880:44:88"},{"nativeSrc":"10933:27:88","nodeType":"YulAssignment","src":"10933:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10945:9:88","nodeType":"YulIdentifier","src":"10945:9:88"},{"kind":"number","nativeSrc":"10956:3:88","nodeType":"YulLiteral","src":"10956:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10941:3:88","nodeType":"YulIdentifier","src":"10941:3:88"},"nativeSrc":"10941:19:88","nodeType":"YulFunctionCall","src":"10941:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10933:4:88","nodeType":"YulIdentifier","src":"10933:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10556:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10707:9:88","nodeType":"YulTypedName","src":"10707:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10721:4:88","nodeType":"YulTypedName","src":"10721:4:88","type":""}],"src":"10556:410:88"},{"body":{"nativeSrc":"11145:231:88","nodeType":"YulBlock","src":"11145:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11162:9:88","nodeType":"YulIdentifier","src":"11162:9:88"},{"kind":"number","nativeSrc":"11173:2:88","nodeType":"YulLiteral","src":"11173:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11155:6:88","nodeType":"YulIdentifier","src":"11155:6:88"},"nativeSrc":"11155:21:88","nodeType":"YulFunctionCall","src":"11155:21:88"},"nativeSrc":"11155:21:88","nodeType":"YulExpressionStatement","src":"11155:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11196:9:88","nodeType":"YulIdentifier","src":"11196:9:88"},{"kind":"number","nativeSrc":"11207:2:88","nodeType":"YulLiteral","src":"11207:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11192:3:88","nodeType":"YulIdentifier","src":"11192:3:88"},"nativeSrc":"11192:18:88","nodeType":"YulFunctionCall","src":"11192:18:88"},{"kind":"number","nativeSrc":"11212:2:88","nodeType":"YulLiteral","src":"11212:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"11185:6:88","nodeType":"YulIdentifier","src":"11185:6:88"},"nativeSrc":"11185:30:88","nodeType":"YulFunctionCall","src":"11185:30:88"},"nativeSrc":"11185:30:88","nodeType":"YulExpressionStatement","src":"11185:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11235:9:88","nodeType":"YulIdentifier","src":"11235:9:88"},{"kind":"number","nativeSrc":"11246:2:88","nodeType":"YulLiteral","src":"11246:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11231:3:88","nodeType":"YulIdentifier","src":"11231:3:88"},"nativeSrc":"11231:18:88","nodeType":"YulFunctionCall","src":"11231:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"11251:34:88","nodeType":"YulLiteral","src":"11251:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"11224:6:88","nodeType":"YulIdentifier","src":"11224:6:88"},"nativeSrc":"11224:62:88","nodeType":"YulFunctionCall","src":"11224:62:88"},"nativeSrc":"11224:62:88","nodeType":"YulExpressionStatement","src":"11224:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11306:9:88","nodeType":"YulIdentifier","src":"11306:9:88"},{"kind":"number","nativeSrc":"11317:2:88","nodeType":"YulLiteral","src":"11317:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11302:3:88","nodeType":"YulIdentifier","src":"11302:3:88"},"nativeSrc":"11302:18:88","nodeType":"YulFunctionCall","src":"11302:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"11322:11:88","nodeType":"YulLiteral","src":"11322:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"11295:6:88","nodeType":"YulIdentifier","src":"11295:6:88"},"nativeSrc":"11295:39:88","nodeType":"YulFunctionCall","src":"11295:39:88"},"nativeSrc":"11295:39:88","nodeType":"YulExpressionStatement","src":"11295:39:88"},{"nativeSrc":"11343:27:88","nodeType":"YulAssignment","src":"11343:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11355:9:88","nodeType":"YulIdentifier","src":"11355:9:88"},{"kind":"number","nativeSrc":"11366:3:88","nodeType":"YulLiteral","src":"11366:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11351:3:88","nodeType":"YulIdentifier","src":"11351:3:88"},"nativeSrc":"11351:19:88","nodeType":"YulFunctionCall","src":"11351:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11343:4:88","nodeType":"YulIdentifier","src":"11343:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10971:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11122:9:88","nodeType":"YulTypedName","src":"11122:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11136:4:88","nodeType":"YulTypedName","src":"11136:4:88","type":""}],"src":"10971:405:88"},{"body":{"nativeSrc":"11555:233:88","nodeType":"YulBlock","src":"11555:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11572:9:88","nodeType":"YulIdentifier","src":"11572:9:88"},{"kind":"number","nativeSrc":"11583:2:88","nodeType":"YulLiteral","src":"11583:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11565:6:88","nodeType":"YulIdentifier","src":"11565:6:88"},"nativeSrc":"11565:21:88","nodeType":"YulFunctionCall","src":"11565:21:88"},"nativeSrc":"11565:21:88","nodeType":"YulExpressionStatement","src":"11565:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11606:9:88","nodeType":"YulIdentifier","src":"11606:9:88"},{"kind":"number","nativeSrc":"11617:2:88","nodeType":"YulLiteral","src":"11617:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11602:3:88","nodeType":"YulIdentifier","src":"11602:3:88"},"nativeSrc":"11602:18:88","nodeType":"YulFunctionCall","src":"11602:18:88"},{"kind":"number","nativeSrc":"11622:2:88","nodeType":"YulLiteral","src":"11622:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"11595:6:88","nodeType":"YulIdentifier","src":"11595:6:88"},"nativeSrc":"11595:30:88","nodeType":"YulFunctionCall","src":"11595:30:88"},"nativeSrc":"11595:30:88","nodeType":"YulExpressionStatement","src":"11595:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11645:9:88","nodeType":"YulIdentifier","src":"11645:9:88"},{"kind":"number","nativeSrc":"11656:2:88","nodeType":"YulLiteral","src":"11656:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11641:3:88","nodeType":"YulIdentifier","src":"11641:3:88"},"nativeSrc":"11641:18:88","nodeType":"YulFunctionCall","src":"11641:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"11661:34:88","nodeType":"YulLiteral","src":"11661:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"11634:6:88","nodeType":"YulIdentifier","src":"11634:6:88"},"nativeSrc":"11634:62:88","nodeType":"YulFunctionCall","src":"11634:62:88"},"nativeSrc":"11634:62:88","nodeType":"YulExpressionStatement","src":"11634:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11716:9:88","nodeType":"YulIdentifier","src":"11716:9:88"},{"kind":"number","nativeSrc":"11727:2:88","nodeType":"YulLiteral","src":"11727:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11712:3:88","nodeType":"YulIdentifier","src":"11712:3:88"},"nativeSrc":"11712:18:88","nodeType":"YulFunctionCall","src":"11712:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"11732:13:88","nodeType":"YulLiteral","src":"11732:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"11705:6:88","nodeType":"YulIdentifier","src":"11705:6:88"},"nativeSrc":"11705:41:88","nodeType":"YulFunctionCall","src":"11705:41:88"},"nativeSrc":"11705:41:88","nodeType":"YulExpressionStatement","src":"11705:41:88"},{"nativeSrc":"11755:27:88","nodeType":"YulAssignment","src":"11755:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11767:9:88","nodeType":"YulIdentifier","src":"11767:9:88"},{"kind":"number","nativeSrc":"11778:3:88","nodeType":"YulLiteral","src":"11778:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11763:3:88","nodeType":"YulIdentifier","src":"11763:3:88"},"nativeSrc":"11763:19:88","nodeType":"YulFunctionCall","src":"11763:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11755:4:88","nodeType":"YulIdentifier","src":"11755:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11381:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11532:9:88","nodeType":"YulTypedName","src":"11532:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11546:4:88","nodeType":"YulTypedName","src":"11546:4:88","type":""}],"src":"11381:407:88"},{"body":{"nativeSrc":"11825:95:88","nodeType":"YulBlock","src":"11825:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11842:1:88","nodeType":"YulLiteral","src":"11842:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"11849:3:88","nodeType":"YulLiteral","src":"11849:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"11854:10:88","nodeType":"YulLiteral","src":"11854:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"11845:3:88","nodeType":"YulIdentifier","src":"11845:3:88"},"nativeSrc":"11845:20:88","nodeType":"YulFunctionCall","src":"11845:20:88"}],"functionName":{"name":"mstore","nativeSrc":"11835:6:88","nodeType":"YulIdentifier","src":"11835:6:88"},"nativeSrc":"11835:31:88","nodeType":"YulFunctionCall","src":"11835:31:88"},"nativeSrc":"11835:31:88","nodeType":"YulExpressionStatement","src":"11835:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11882:1:88","nodeType":"YulLiteral","src":"11882:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"11885:4:88","nodeType":"YulLiteral","src":"11885:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"11875:6:88","nodeType":"YulIdentifier","src":"11875:6:88"},"nativeSrc":"11875:15:88","nodeType":"YulFunctionCall","src":"11875:15:88"},"nativeSrc":"11875:15:88","nodeType":"YulExpressionStatement","src":"11875:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11906:1:88","nodeType":"YulLiteral","src":"11906:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11909:4:88","nodeType":"YulLiteral","src":"11909:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11899:6:88","nodeType":"YulIdentifier","src":"11899:6:88"},"nativeSrc":"11899:15:88","nodeType":"YulFunctionCall","src":"11899:15:88"},"nativeSrc":"11899:15:88","nodeType":"YulExpressionStatement","src":"11899:15:88"}]},"name":"panic_error_0x11","nativeSrc":"11793:127:88","nodeType":"YulFunctionDefinition","src":"11793:127:88"},{"body":{"nativeSrc":"11977:116:88","nodeType":"YulBlock","src":"11977:116:88","statements":[{"nativeSrc":"11987:20:88","nodeType":"YulAssignment","src":"11987:20:88","value":{"arguments":[{"name":"x","nativeSrc":"12002:1:88","nodeType":"YulIdentifier","src":"12002:1:88"},{"name":"y","nativeSrc":"12005:1:88","nodeType":"YulIdentifier","src":"12005:1:88"}],"functionName":{"name":"mul","nativeSrc":"11998:3:88","nodeType":"YulIdentifier","src":"11998:3:88"},"nativeSrc":"11998:9:88","nodeType":"YulFunctionCall","src":"11998:9:88"},"variableNames":[{"name":"product","nativeSrc":"11987:7:88","nodeType":"YulIdentifier","src":"11987:7:88"}]},{"body":{"nativeSrc":"12065:22:88","nodeType":"YulBlock","src":"12065:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12067:16:88","nodeType":"YulIdentifier","src":"12067:16:88"},"nativeSrc":"12067:18:88","nodeType":"YulFunctionCall","src":"12067:18:88"},"nativeSrc":"12067:18:88","nodeType":"YulExpressionStatement","src":"12067:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12036:1:88","nodeType":"YulIdentifier","src":"12036:1:88"}],"functionName":{"name":"iszero","nativeSrc":"12029:6:88","nodeType":"YulIdentifier","src":"12029:6:88"},"nativeSrc":"12029:9:88","nodeType":"YulFunctionCall","src":"12029:9:88"},{"arguments":[{"name":"y","nativeSrc":"12043:1:88","nodeType":"YulIdentifier","src":"12043:1:88"},{"arguments":[{"name":"product","nativeSrc":"12050:7:88","nodeType":"YulIdentifier","src":"12050:7:88"},{"name":"x","nativeSrc":"12059:1:88","nodeType":"YulIdentifier","src":"12059:1:88"}],"functionName":{"name":"div","nativeSrc":"12046:3:88","nodeType":"YulIdentifier","src":"12046:3:88"},"nativeSrc":"12046:15:88","nodeType":"YulFunctionCall","src":"12046:15:88"}],"functionName":{"name":"eq","nativeSrc":"12040:2:88","nodeType":"YulIdentifier","src":"12040:2:88"},"nativeSrc":"12040:22:88","nodeType":"YulFunctionCall","src":"12040:22:88"}],"functionName":{"name":"or","nativeSrc":"12026:2:88","nodeType":"YulIdentifier","src":"12026:2:88"},"nativeSrc":"12026:37:88","nodeType":"YulFunctionCall","src":"12026:37:88"}],"functionName":{"name":"iszero","nativeSrc":"12019:6:88","nodeType":"YulIdentifier","src":"12019:6:88"},"nativeSrc":"12019:45:88","nodeType":"YulFunctionCall","src":"12019:45:88"},"nativeSrc":"12016:71:88","nodeType":"YulIf","src":"12016:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"11925:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11956:1:88","nodeType":"YulTypedName","src":"11956:1:88","type":""},{"name":"y","nativeSrc":"11959:1:88","nodeType":"YulTypedName","src":"11959:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"11965:7:88","nodeType":"YulTypedName","src":"11965:7:88","type":""}],"src":"11925:168:88"},{"body":{"nativeSrc":"12146:77:88","nodeType":"YulBlock","src":"12146:77:88","statements":[{"nativeSrc":"12156:16:88","nodeType":"YulAssignment","src":"12156:16:88","value":{"arguments":[{"name":"x","nativeSrc":"12167:1:88","nodeType":"YulIdentifier","src":"12167:1:88"},{"name":"y","nativeSrc":"12170:1:88","nodeType":"YulIdentifier","src":"12170:1:88"}],"functionName":{"name":"add","nativeSrc":"12163:3:88","nodeType":"YulIdentifier","src":"12163:3:88"},"nativeSrc":"12163:9:88","nodeType":"YulFunctionCall","src":"12163:9:88"},"variableNames":[{"name":"sum","nativeSrc":"12156:3:88","nodeType":"YulIdentifier","src":"12156:3:88"}]},{"body":{"nativeSrc":"12195:22:88","nodeType":"YulBlock","src":"12195:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12197:16:88","nodeType":"YulIdentifier","src":"12197:16:88"},"nativeSrc":"12197:18:88","nodeType":"YulFunctionCall","src":"12197:18:88"},"nativeSrc":"12197:18:88","nodeType":"YulExpressionStatement","src":"12197:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"12187:1:88","nodeType":"YulIdentifier","src":"12187:1:88"},{"name":"sum","nativeSrc":"12190:3:88","nodeType":"YulIdentifier","src":"12190:3:88"}],"functionName":{"name":"gt","nativeSrc":"12184:2:88","nodeType":"YulIdentifier","src":"12184:2:88"},"nativeSrc":"12184:10:88","nodeType":"YulFunctionCall","src":"12184:10:88"},"nativeSrc":"12181:36:88","nodeType":"YulIf","src":"12181:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"12098:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12129:1:88","nodeType":"YulTypedName","src":"12129:1:88","type":""},{"name":"y","nativeSrc":"12132:1:88","nodeType":"YulTypedName","src":"12132:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"12138:3:88","nodeType":"YulTypedName","src":"12138:3:88","type":""}],"src":"12098:125:88"},{"body":{"nativeSrc":"12260:95:88","nodeType":"YulBlock","src":"12260:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12277:1:88","nodeType":"YulLiteral","src":"12277:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"12284:3:88","nodeType":"YulLiteral","src":"12284:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"12289:10:88","nodeType":"YulLiteral","src":"12289:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"12280:3:88","nodeType":"YulIdentifier","src":"12280:3:88"},"nativeSrc":"12280:20:88","nodeType":"YulFunctionCall","src":"12280:20:88"}],"functionName":{"name":"mstore","nativeSrc":"12270:6:88","nodeType":"YulIdentifier","src":"12270:6:88"},"nativeSrc":"12270:31:88","nodeType":"YulFunctionCall","src":"12270:31:88"},"nativeSrc":"12270:31:88","nodeType":"YulExpressionStatement","src":"12270:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12317:1:88","nodeType":"YulLiteral","src":"12317:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"12320:4:88","nodeType":"YulLiteral","src":"12320:4:88","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12310:6:88","nodeType":"YulIdentifier","src":"12310:6:88"},"nativeSrc":"12310:15:88","nodeType":"YulFunctionCall","src":"12310:15:88"},"nativeSrc":"12310:15:88","nodeType":"YulExpressionStatement","src":"12310:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12341:1:88","nodeType":"YulLiteral","src":"12341:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12344:4:88","nodeType":"YulLiteral","src":"12344:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12334:6:88","nodeType":"YulIdentifier","src":"12334:6:88"},"nativeSrc":"12334:15:88","nodeType":"YulFunctionCall","src":"12334:15:88"},"nativeSrc":"12334:15:88","nodeType":"YulExpressionStatement","src":"12334:15:88"}]},"name":"panic_error_0x32","nativeSrc":"12228:127:88","nodeType":"YulFunctionDefinition","src":"12228:127:88"},{"body":{"nativeSrc":"12407:89:88","nodeType":"YulBlock","src":"12407:89:88","statements":[{"body":{"nativeSrc":"12434:22:88","nodeType":"YulBlock","src":"12434:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12436:16:88","nodeType":"YulIdentifier","src":"12436:16:88"},"nativeSrc":"12436:18:88","nodeType":"YulFunctionCall","src":"12436:18:88"},"nativeSrc":"12436:18:88","nodeType":"YulExpressionStatement","src":"12436:18:88"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"12427:5:88","nodeType":"YulIdentifier","src":"12427:5:88"}],"functionName":{"name":"iszero","nativeSrc":"12420:6:88","nodeType":"YulIdentifier","src":"12420:6:88"},"nativeSrc":"12420:13:88","nodeType":"YulFunctionCall","src":"12420:13:88"},"nativeSrc":"12417:39:88","nodeType":"YulIf","src":"12417:39:88"},{"nativeSrc":"12465:25:88","nodeType":"YulAssignment","src":"12465:25:88","value":{"arguments":[{"name":"value","nativeSrc":"12476:5:88","nodeType":"YulIdentifier","src":"12476:5:88"},{"arguments":[{"kind":"number","nativeSrc":"12487:1:88","nodeType":"YulLiteral","src":"12487:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"12483:3:88","nodeType":"YulIdentifier","src":"12483:3:88"},"nativeSrc":"12483:6:88","nodeType":"YulFunctionCall","src":"12483:6:88"}],"functionName":{"name":"add","nativeSrc":"12472:3:88","nodeType":"YulIdentifier","src":"12472:3:88"},"nativeSrc":"12472:18:88","nodeType":"YulFunctionCall","src":"12472:18:88"},"variableNames":[{"name":"ret","nativeSrc":"12465:3:88","nodeType":"YulIdentifier","src":"12465:3:88"}]}]},"name":"decrement_t_uint256","nativeSrc":"12360:136:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12389:5:88","nodeType":"YulTypedName","src":"12389:5:88","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12399:3:88","nodeType":"YulTypedName","src":"12399:3:88","type":""}],"src":"12360:136:88"},{"body":{"nativeSrc":"12675:182:88","nodeType":"YulBlock","src":"12675:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12692:9:88","nodeType":"YulIdentifier","src":"12692:9:88"},{"kind":"number","nativeSrc":"12703:2:88","nodeType":"YulLiteral","src":"12703:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12685:6:88","nodeType":"YulIdentifier","src":"12685:6:88"},"nativeSrc":"12685:21:88","nodeType":"YulFunctionCall","src":"12685:21:88"},"nativeSrc":"12685:21:88","nodeType":"YulExpressionStatement","src":"12685:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12726:9:88","nodeType":"YulIdentifier","src":"12726:9:88"},{"kind":"number","nativeSrc":"12737:2:88","nodeType":"YulLiteral","src":"12737:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12722:3:88","nodeType":"YulIdentifier","src":"12722:3:88"},"nativeSrc":"12722:18:88","nodeType":"YulFunctionCall","src":"12722:18:88"},{"kind":"number","nativeSrc":"12742:2:88","nodeType":"YulLiteral","src":"12742:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12715:6:88","nodeType":"YulIdentifier","src":"12715:6:88"},"nativeSrc":"12715:30:88","nodeType":"YulFunctionCall","src":"12715:30:88"},"nativeSrc":"12715:30:88","nodeType":"YulExpressionStatement","src":"12715:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12765:9:88","nodeType":"YulIdentifier","src":"12765:9:88"},{"kind":"number","nativeSrc":"12776:2:88","nodeType":"YulLiteral","src":"12776:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12761:3:88","nodeType":"YulIdentifier","src":"12761:3:88"},"nativeSrc":"12761:18:88","nodeType":"YulFunctionCall","src":"12761:18:88"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nativeSrc":"12781:34:88","nodeType":"YulLiteral","src":"12781:34:88","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nativeSrc":"12754:6:88","nodeType":"YulIdentifier","src":"12754:6:88"},"nativeSrc":"12754:62:88","nodeType":"YulFunctionCall","src":"12754:62:88"},"nativeSrc":"12754:62:88","nodeType":"YulExpressionStatement","src":"12754:62:88"},{"nativeSrc":"12825:26:88","nodeType":"YulAssignment","src":"12825:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12837:9:88","nodeType":"YulIdentifier","src":"12837:9:88"},{"kind":"number","nativeSrc":"12848:2:88","nodeType":"YulLiteral","src":"12848:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12833:3:88","nodeType":"YulIdentifier","src":"12833:3:88"},"nativeSrc":"12833:18:88","nodeType":"YulFunctionCall","src":"12833:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12825:4:88","nodeType":"YulIdentifier","src":"12825:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12501:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12652:9:88","nodeType":"YulTypedName","src":"12652:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12666:4:88","nodeType":"YulTypedName","src":"12666:4:88","type":""}],"src":"12501:356:88"},{"body":{"nativeSrc":"13036:235:88","nodeType":"YulBlock","src":"13036:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13053:9:88","nodeType":"YulIdentifier","src":"13053:9:88"},{"kind":"number","nativeSrc":"13064:2:88","nodeType":"YulLiteral","src":"13064:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13046:6:88","nodeType":"YulIdentifier","src":"13046:6:88"},"nativeSrc":"13046:21:88","nodeType":"YulFunctionCall","src":"13046:21:88"},"nativeSrc":"13046:21:88","nodeType":"YulExpressionStatement","src":"13046:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13087:9:88","nodeType":"YulIdentifier","src":"13087:9:88"},{"kind":"number","nativeSrc":"13098:2:88","nodeType":"YulLiteral","src":"13098:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13083:3:88","nodeType":"YulIdentifier","src":"13083:3:88"},"nativeSrc":"13083:18:88","nodeType":"YulFunctionCall","src":"13083:18:88"},{"kind":"number","nativeSrc":"13103:2:88","nodeType":"YulLiteral","src":"13103:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"13076:6:88","nodeType":"YulIdentifier","src":"13076:6:88"},"nativeSrc":"13076:30:88","nodeType":"YulFunctionCall","src":"13076:30:88"},"nativeSrc":"13076:30:88","nodeType":"YulExpressionStatement","src":"13076:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13126:9:88","nodeType":"YulIdentifier","src":"13126:9:88"},{"kind":"number","nativeSrc":"13137:2:88","nodeType":"YulLiteral","src":"13137:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13122:3:88","nodeType":"YulIdentifier","src":"13122:3:88"},"nativeSrc":"13122:18:88","nodeType":"YulFunctionCall","src":"13122:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"13142:34:88","nodeType":"YulLiteral","src":"13142:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"13115:6:88","nodeType":"YulIdentifier","src":"13115:6:88"},"nativeSrc":"13115:62:88","nodeType":"YulFunctionCall","src":"13115:62:88"},"nativeSrc":"13115:62:88","nodeType":"YulExpressionStatement","src":"13115:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13197:9:88","nodeType":"YulIdentifier","src":"13197:9:88"},{"kind":"number","nativeSrc":"13208:2:88","nodeType":"YulLiteral","src":"13208:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13193:3:88","nodeType":"YulIdentifier","src":"13193:3:88"},"nativeSrc":"13193:18:88","nodeType":"YulFunctionCall","src":"13193:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"13213:15:88","nodeType":"YulLiteral","src":"13213:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"13186:6:88","nodeType":"YulIdentifier","src":"13186:6:88"},"nativeSrc":"13186:43:88","nodeType":"YulFunctionCall","src":"13186:43:88"},"nativeSrc":"13186:43:88","nodeType":"YulExpressionStatement","src":"13186:43:88"},{"nativeSrc":"13238:27:88","nodeType":"YulAssignment","src":"13238:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13250:9:88","nodeType":"YulIdentifier","src":"13250:9:88"},{"kind":"number","nativeSrc":"13261:3:88","nodeType":"YulLiteral","src":"13261:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13246:3:88","nodeType":"YulIdentifier","src":"13246:3:88"},"nativeSrc":"13246:19:88","nodeType":"YulFunctionCall","src":"13246:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13238:4:88","nodeType":"YulIdentifier","src":"13238:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12862:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13013:9:88","nodeType":"YulTypedName","src":"13013:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13027:4:88","nodeType":"YulTypedName","src":"13027:4:88","type":""}],"src":"12862:409:88"},{"body":{"nativeSrc":"13413:53:88","nodeType":"YulBlock","src":"13413:53:88","statements":[{"nativeSrc":"13423:37:88","nodeType":"YulAssignment","src":"13423:37:88","value":{"arguments":[{"name":"value0","nativeSrc":"13448:6:88","nodeType":"YulIdentifier","src":"13448:6:88"},{"name":"pos","nativeSrc":"13456:3:88","nodeType":"YulIdentifier","src":"13456:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"13430:17:88","nodeType":"YulIdentifier","src":"13430:17:88"},"nativeSrc":"13430:30:88","nodeType":"YulFunctionCall","src":"13430:30:88"},"variableNames":[{"name":"end","nativeSrc":"13423:3:88","nodeType":"YulIdentifier","src":"13423:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13276:190:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13389:3:88","nodeType":"YulTypedName","src":"13389:3:88","type":""},{"name":"value0","nativeSrc":"13394:6:88","nodeType":"YulTypedName","src":"13394:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13405:3:88","nodeType":"YulTypedName","src":"13405:3:88","type":""}],"src":"13276:190:88"},{"body":{"nativeSrc":"13645:179:88","nodeType":"YulBlock","src":"13645:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13662:9:88","nodeType":"YulIdentifier","src":"13662:9:88"},{"kind":"number","nativeSrc":"13673:2:88","nodeType":"YulLiteral","src":"13673:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13655:6:88","nodeType":"YulIdentifier","src":"13655:6:88"},"nativeSrc":"13655:21:88","nodeType":"YulFunctionCall","src":"13655:21:88"},"nativeSrc":"13655:21:88","nodeType":"YulExpressionStatement","src":"13655:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13696:9:88","nodeType":"YulIdentifier","src":"13696:9:88"},{"kind":"number","nativeSrc":"13707:2:88","nodeType":"YulLiteral","src":"13707:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13692:3:88","nodeType":"YulIdentifier","src":"13692:3:88"},"nativeSrc":"13692:18:88","nodeType":"YulFunctionCall","src":"13692:18:88"},{"kind":"number","nativeSrc":"13712:2:88","nodeType":"YulLiteral","src":"13712:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"13685:6:88","nodeType":"YulIdentifier","src":"13685:6:88"},"nativeSrc":"13685:30:88","nodeType":"YulFunctionCall","src":"13685:30:88"},"nativeSrc":"13685:30:88","nodeType":"YulExpressionStatement","src":"13685:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13735:9:88","nodeType":"YulIdentifier","src":"13735:9:88"},{"kind":"number","nativeSrc":"13746:2:88","nodeType":"YulLiteral","src":"13746:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13731:3:88","nodeType":"YulIdentifier","src":"13731:3:88"},"nativeSrc":"13731:18:88","nodeType":"YulFunctionCall","src":"13731:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"13751:31:88","nodeType":"YulLiteral","src":"13751:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"13724:6:88","nodeType":"YulIdentifier","src":"13724:6:88"},"nativeSrc":"13724:59:88","nodeType":"YulFunctionCall","src":"13724:59:88"},"nativeSrc":"13724:59:88","nodeType":"YulExpressionStatement","src":"13724:59:88"},{"nativeSrc":"13792:26:88","nodeType":"YulAssignment","src":"13792:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13804:9:88","nodeType":"YulIdentifier","src":"13804:9:88"},{"kind":"number","nativeSrc":"13815:2:88","nodeType":"YulLiteral","src":"13815:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13800:3:88","nodeType":"YulIdentifier","src":"13800:3:88"},"nativeSrc":"13800:18:88","nodeType":"YulFunctionCall","src":"13800:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13792:4:88","nodeType":"YulIdentifier","src":"13792:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13471:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13622:9:88","nodeType":"YulTypedName","src":"13622:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13636:4:88","nodeType":"YulTypedName","src":"13636:4:88","type":""}],"src":"13471:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bytes32t_bytes32t_addresst_bool(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        value3 := abi_decode_address(add(headStart, 96))\n        value4 := abi_decode_bool(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value1 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_bytes32t_addresst_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        value2 := abi_decode_address(add(headStart, 64))\n        value3 := abi_decode_bool(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n    }\n    function abi_decode_tuple_t_addresst_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_139e7460e861361a043a6a300a0adb9f37e8681b280e3f9f258dba9bc5ed8726__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"AccessManager: invalid address f\")\n        mstore(add(headStart, 96), \"or component\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cfe9fbc8261f2f4efe11c4301badc79ec09bf8356cfeea91de99d438db405983__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"AccessManager: msg.sender needs \")\n        mstore(add(headStart, 96), \"componentRoleAdmin\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let _1 := abi_encode_string(value0, add(pos, 23))\n        mstore(_1, \" is missing role \")\n        end := abi_encode_string(value1, add(_1, 17))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":1537},{"length":32,"start":1601},{"length":32,"start":1783},{"length":32,"start":1847},{"length":32,"start":1988}]},"linkReferences":{},"object":"608060405260043610610147575f3560e01c806352d1902d116100b3578063b3efcbd21161006d578063b3efcbd2146103c7578063c5b8f5cf146103e6578063d0b1825614610405578063d547741f14610424578063f67b2bad14610443578063f6a421fc14610476575f5ffd5b806352d1902d1461030f5780635ff57d20146103235780638129fc1c1461034257806391d1485414610356578063a217fddf14610375578063ad358f0714610388575f5ffd5b80632f2ff15d116101045780632f2ff15d1461024d57806336568abe1461026c5780633659cfe61461028b578063374c96c8146102aa5780634a47a3e0146102c95780634f1ef286146102fc575f5ffd5b806301ffc9a71461014b57806312d9a6ad1461017f5780631e4e0091146101a0578063248a9ca3146101bf57806324ea54f4146101fb5780632b1cff1f1461022e575b5f5ffd5b348015610156575f5ffd5b5061016a610165366004611370565b610495565b60405190151581526020015b60405180910390f35b34801561018a575f5ffd5b5061019e6101993660046113b2565b6104c0565b005b3480156101ab575f5ffd5b5061019e6101ba3660046113dc565b6104ce565b3480156101ca575f5ffd5b506101ed6101d93660046113fc565b5f9081526065602052604090206001015490565b604051908152602001610176565b348015610206575f5ffd5b506101ed7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b348015610239575f5ffd5b5061019e610248366004611422565b6104f7565b348015610258575f5ffd5b5061019e6102673660046113b2565b610554565b348015610277575f5ffd5b5061019e6102863660046113b2565b610578565b348015610296575f5ffd5b5061019e6102a5366004611475565b6105f7565b3480156102b5575f5ffd5b506101ed6102c436600461148e565b6106d4565b3480156102d4575f5ffd5b506101ed7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61019e61030a3660046114ca565b6106ed565b34801561031a575f5ffd5b506101ed6107b8565b34801561032e575f5ffd5b5061019e61033d36600461158e565b610869565b34801561034d575f5ffd5b5061019e610895565b348015610361575f5ffd5b5061016a6103703660046113b2565b6109af565b348015610380575f5ffd5b506101ed5f81565b348015610393575f5ffd5b506103af73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6040516001600160a01b039091168152602001610176565b3480156103d2575f5ffd5b5061016a6103e136600461158e565b6109d9565b3480156103f1575f5ffd5b5061019e6104003660046115d8565b610a10565b348015610410575f5ffd5b5061019e61041f36600461160a565b610a28565b34801561042f575f5ffd5b5061019e61043e3660046113b2565b610ad5565b34801561044e575f5ffd5b506101ed7fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b348015610481575f5ffd5b5061019e61049036600461163a565b610af9565b5f61049f82610ba0565b806104ba57506001600160e01b0319821663272b8c4760e01b145b92915050565b6104ca8282610bd4565b5050565b5f828152606560205260409020600101546104e881610c2d565b6104f28383610c37565b505050565b808015610509575061050984836109af565b61054d5761052061051a86866106d4565b836109af565b61054d57808015610536575061053683836109af565b61054d5761054d61054786856106d4565b83610bd4565b5050505050565b5f8281526065602052604090206001015461056e81610c2d565b6104f28383610c81565b6001600160a01b03811633146105ed5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104ca8282610d06565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361063f5760405162461bcd60e51b81526004016105e49061166a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106875f51602061191f5f395f51905f52546001600160a01b031690565b6001600160a01b0316146106ad5760405162461bcd60e51b81526004016105e4906116b6565b6106b681610d6c565b604080515f808252602082019092526106d191839190610dc6565b50565b60609190911b6bffffffffffffffffffffffff19161890565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107355760405162461bcd60e51b81526004016105e49061166a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661077d5f51602061191f5f395f51905f52546001600160a01b031690565b6001600160a01b0316146107a35760405162461bcd60e51b81526004016105e4906116b6565b6107ac82610d6c565b6104ca82826001610dc6565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108575760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105e4565b505f51602061191f5f395f51905f5290565b80158061087d575061087b83836109af565b155b1561088f5761088f61054785856106d4565b50505050565b5f54610100900460ff16158080156108b357505f54600160ff909116105b806108cc5750303b1580156108cc57505f5460ff166001145b61092f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105e4565b5f805460ff191660011790558015610950575f805461ff0019166101001790555b610958610f30565b610960610f30565b610968610f58565b80156106d1575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8180156109ec57506109ec84846109af565b80610a055750610a056109ff86866106d4565b846109af565b90505b949350505050565b610a1a83826109af565b6104f2576104f28282610bd4565b82826001600160a01b038216610a505760405162461bcd60e51b81526004016105e490611702565b610a66610a606101d984846106d4565b336109af565b80610aa657505f610a7a6101d984846106d4565b148015610aa65750610aa6610a606101d973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee846106d4565b610ac25760405162461bcd60e51b81526004016105e49061174e565b61054d610acf86866106d4565b84610c37565b5f82815260656020526040902060010154610aef81610c2d565b6104f28383610d06565b82826001600160a01b038216610b215760405162461bcd60e51b81526004016105e490611702565b610b31610a606101d984846106d4565b80610b7157505f610b456101d984846106d4565b148015610b715750610b71610a606101d973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee846106d4565b610b8d5760405162461bcd60e51b81526004016105e49061174e565b61054d610b9a86866106d4565b84610c81565b5f6001600160e01b03198216637965db0b60e01b14806104ba57506301ffc9a760e01b6001600160e01b03198316146104ba565b610bde82826109af565b6104ca57610beb81610f88565b610bf6836020610f9a565b604051602001610c079291906117b7565b60408051601f198184030181529082905262461bcd60e51b82526105e491600401611815565b6106d18133610bd4565b5f82815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b610c8b82826109af565b6104ca575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610cc23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610d1082826109af565b156104ca575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2610db882336109af565b6104f2576104f28133610bd4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610df9576104f283611137565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e53575060408051601f3d908101601f19168201909252610e509181019061184a565b60015b610eb65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105e4565b5f51602061191f5f395f51905f528114610f245760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105e4565b506104f28383836111d2565b5f54610100900460ff16610f565760405162461bcd60e51b81526004016105e490611861565b565b5f54610100900460ff16610f7e5760405162461bcd60e51b81526004016105e490611861565b610f565f336111f6565b60606104ba6001600160a01b03831660145b60605f610fa88360026118c0565b610fb39060026118d7565b67ffffffffffffffff811115610fcb57610fcb6114b6565b6040519080825280601f01601f191660200182016040528015610ff5576020820181803683370190505b509050600360fc1b815f8151811061100f5761100f6118ea565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061103d5761103d6118ea565b60200101906001600160f81b03191690815f1a9053505f61105f8460026118c0565b61106a9060016118d7565b90505b60018111156110e1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061109e5761109e6118ea565b1a60f81b8282815181106110b4576110b46118ea565b60200101906001600160f81b03191690815f1a90535060049490941c936110da816118fe565b905061106d565b5083156111305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105e4565b9392505050565b6001600160a01b0381163b6111a45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105e4565b5f51602061191f5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6111db83611200565b5f825111806111e75750805b156104f25761088f838361123f565b6104ca8282610c81565b61120981611137565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611130838360405180606001604052806027815260200161193f6027913960605f5f856001600160a01b03168560405161127b9190611913565b5f60405180830381855af49150503d805f81146112b3576040519150601f19603f3d011682016040523d82523d5f602084013e6112b8565b606091505b50915091506112c9868383876112d3565b9695505050505050565b606083156113415782515f0361133a576001600160a01b0385163b61133a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e4565b5081610a08565b610a0883838151156113565781518083602001fd5b8060405162461bcd60e51b81526004016105e49190611815565b5f60208284031215611380575f5ffd5b81356001600160e01b031981168114611130575f5ffd5b80356001600160a01b03811681146113ad575f5ffd5b919050565b5f5f604083850312156113c3575f5ffd5b823591506113d360208401611397565b90509250929050565b5f5f604083850312156113ed575f5ffd5b50508035926020909101359150565b5f6020828403121561140c575f5ffd5b5035919050565b803580151581146113ad575f5ffd5b5f5f5f5f5f60a08688031215611436575f5ffd5b61143f86611397565b9450602086013593506040860135925061145b60608701611397565b915061146960808701611413565b90509295509295909350565b5f60208284031215611485575f5ffd5b61113082611397565b5f5f6040838503121561149f575f5ffd5b6114a883611397565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156114db575f5ffd5b6114e483611397565b9150602083013567ffffffffffffffff8111156114ff575f5ffd5b8301601f8101851361150f575f5ffd5b803567ffffffffffffffff811115611529576115296114b6565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611558576115586114b6565b60405281815282820160200187101561156f575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f608085870312156115a1575f5ffd5b6115aa85611397565b9350602085013592506115bf60408601611397565b91506115cd60608601611413565b905092959194509250565b5f5f5f606084860312156115ea575f5ffd5b833592506020840135915061160160408501611397565b90509250925092565b5f5f5f6060848603121561161c575f5ffd5b61162584611397565b95602085013595506040909401359392505050565b5f5f5f6060848603121561164c575f5ffd5b61165584611397565b92506020840135915061160160408501611397565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602c908201527f4163636573734d616e616765723a20696e76616c69642061646472657373206660408201526b1bdc8818dbdb5c1bdb995b9d60a21b606082015260800190565b60208082526032908201527f4163636573734d616e616765723a206d73672e73656e646572206e656564732060408201527131b7b6b837b732b73a2937b632a0b236b4b760711b606082015260800190565b5f81518060208401855e5f93019283525090919050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f6117e860178301856117a0565b7001034b99036b4b9b9b4b733903937b6329607d1b815261180c60118201856117a0565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561185a575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104ba576104ba6118ac565b808201808211156104ba576104ba6118ac565b634e487b7160e01b5f52603260045260245ffd5b5f8161190c5761190c6118ac565b505f190190565b5f61113082846117a056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d787cdec2d2da28483008026c9b6b7f5d7b27004ff08259aa61174f01cdcc8dd64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x147 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0xB3 JUMPI DUP1 PUSH4 0xB3EFCBD2 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xB3EFCBD2 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xC5B8F5CF EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0xD0B18256 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xF67B2BAD EQ PUSH2 0x443 JUMPI DUP1 PUSH4 0xF6A421FC EQ PUSH2 0x476 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x52D1902D EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0x5FF57D20 EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x356 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xAD358F07 EQ PUSH2 0x388 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x104 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x374C96C8 EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x4A47A3E0 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2FC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x12D9A6AD EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x1E4E0091 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x24EA54F4 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x2B1CFF1F EQ PUSH2 0x22E JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x495 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x1BA CALLDATASIZE PUSH1 0x4 PUSH2 0x13DC JUMP JUMPDEST PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x13FC JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x1422 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x258 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x267 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x554 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1475 JUMP JUMPDEST PUSH2 0x5F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x148E JUMP JUMPDEST PUSH2 0x6D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 DUP2 JUMP JUMPDEST PUSH2 0x19E PUSH2 0x30A CALLDATASIZE PUSH1 0x4 PUSH2 0x14CA JUMP JUMPDEST PUSH2 0x6ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH2 0x7B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x158E JUMP JUMPDEST PUSH2 0x869 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x895 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x361 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x393 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x16A PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x158E JUMP JUMPDEST PUSH2 0x9D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x15D8 JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x160A JUMP JUMPDEST PUSH2 0xA28 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x43E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B2 JUMP JUMPDEST PUSH2 0xAD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1ED PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x481 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19E PUSH2 0x490 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xAF9 JUMP JUMPDEST PUSH0 PUSH2 0x49F DUP3 PUSH2 0xBA0 JUMP JUMPDEST DUP1 PUSH2 0x4BA JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x272B8C47 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xBD4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x4E8 DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xC37 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 DUP1 ISZERO PUSH2 0x509 JUMPI POP PUSH2 0x509 DUP5 DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI PUSH2 0x520 PUSH2 0x51A DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI DUP1 DUP1 ISZERO PUSH2 0x536 JUMPI POP PUSH2 0x536 DUP4 DUP4 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x54D JUMPI PUSH2 0x54D PUSH2 0x547 DUP7 DUP6 PUSH2 0x6D4 JUMP JUMPDEST DUP4 PUSH2 0xBD4 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x56E DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xC81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xD06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x63F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x166A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x687 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x6B6 DUP2 PUSH2 0xD6C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6D1 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xDC6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND XOR SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x735 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x166A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x77D PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x7AC DUP3 PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH1 0x1 PUSH2 0xDC6 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x857 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x87D JUMPI POP PUSH2 0x87B DUP4 DUP4 PUSH2 0x9AF JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x88F JUMPI PUSH2 0x88F PUSH2 0x547 DUP6 DUP6 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x8B3 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x8CC JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8CC JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x92F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x950 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x958 PUSH2 0xF30 JUMP JUMPDEST PUSH2 0x960 PUSH2 0xF30 JUMP JUMPDEST PUSH2 0x968 PUSH2 0xF58 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP1 ISZERO PUSH2 0x9EC JUMPI POP PUSH2 0x9EC DUP5 DUP5 PUSH2 0x9AF JUMP JUMPDEST DUP1 PUSH2 0xA05 JUMPI POP PUSH2 0xA05 PUSH2 0x9FF DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA1A DUP4 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4F2 JUMPI PUSH2 0x4F2 DUP3 DUP3 PUSH2 0xBD4 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1702 JUMP JUMPDEST PUSH2 0xA66 PUSH2 0xA60 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST CALLER PUSH2 0x9AF JUMP JUMPDEST DUP1 PUSH2 0xAA6 JUMPI POP PUSH0 PUSH2 0xA7A PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xAA6 JUMPI POP PUSH2 0xAA6 PUSH2 0xA60 PUSH2 0x1D9 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP5 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0xAC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0x54D PUSH2 0xACF DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0xC37 JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xAEF DUP2 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x4F2 DUP4 DUP4 PUSH2 0xD06 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB21 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1702 JUMP JUMPDEST PUSH2 0xB31 PUSH2 0xA60 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST DUP1 PUSH2 0xB71 JUMPI POP PUSH0 PUSH2 0xB45 PUSH2 0x1D9 DUP5 DUP5 PUSH2 0x6D4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xB71 JUMPI POP PUSH2 0xB71 PUSH2 0xA60 PUSH2 0x1D9 PUSH20 0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE DUP5 PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0xB8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x174E JUMP JUMPDEST PUSH2 0x54D PUSH2 0xB9A DUP7 DUP7 PUSH2 0x6D4 JUMP JUMPDEST DUP5 PUSH2 0xC81 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4BA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x4BA JUMP JUMPDEST PUSH2 0xBDE DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4CA JUMPI PUSH2 0xBEB DUP2 PUSH2 0xF88 JUMP JUMPDEST PUSH2 0xBF6 DUP4 PUSH1 0x20 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC07 SWAP3 SWAP2 SWAP1 PUSH2 0x17B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x5E4 SWAP2 PUSH1 0x4 ADD PUSH2 0x1815 JUMP JUMPDEST PUSH2 0x6D1 DUP2 CALLER PUSH2 0xBD4 JUMP JUMPDEST PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xC8B DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4CA JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xCC2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xD10 DUP3 DUP3 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x4CA JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH2 0xDB8 DUP3 CALLER PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x4F2 JUMPI PUSH2 0x4F2 DUP2 CALLER PUSH2 0xBD4 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xDF9 JUMPI PUSH2 0x4F2 DUP4 PUSH2 0x1137 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xE53 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xE50 SWAP2 DUP2 ADD SWAP1 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0xF24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST POP PUSH2 0x4F2 DUP4 DUP4 DUP4 PUSH2 0x11D2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1861 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x1861 JUMP JUMPDEST PUSH2 0xF56 PUSH0 CALLER PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4BA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0xFA8 DUP4 PUSH1 0x2 PUSH2 0x18C0 JUMP JUMPDEST PUSH2 0xFB3 SWAP1 PUSH1 0x2 PUSH2 0x18D7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFCB JUMPI PUSH2 0xFCB PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFF5 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x100F JUMPI PUSH2 0x100F PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x103D JUMPI PUSH2 0x103D PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH0 PUSH2 0x105F DUP5 PUSH1 0x2 PUSH2 0x18C0 JUMP JUMPDEST PUSH2 0x106A SWAP1 PUSH1 0x1 PUSH2 0x18D7 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10E1 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x109E JUMPI PUSH2 0x109E PUSH2 0x18EA JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10B4 JUMPI PUSH2 0x10B4 PUSH2 0x18EA JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10DA DUP2 PUSH2 0x18FE JUMP JUMPDEST SWAP1 POP PUSH2 0x106D JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x11A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5E4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x191F PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11DB DUP4 PUSH2 0x1200 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x11E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x4F2 JUMPI PUSH2 0x88F DUP4 DUP4 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x4CA DUP3 DUP3 PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1209 DUP2 PUSH2 0x1137 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1130 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193F PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x127B SWAP2 SWAP1 PUSH2 0x1913 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x12B3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x12B8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12C9 DUP7 DUP4 DUP4 DUP8 PUSH2 0x12D3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1341 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x133A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x133A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5E4 JUMP JUMPDEST POP DUP2 PUSH2 0xA08 JUMP JUMPDEST PUSH2 0xA08 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1356 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1130 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x13D3 PUSH1 0x20 DUP5 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x13AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1436 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x143F DUP7 PUSH2 0x1397 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH2 0x145B PUSH1 0x60 DUP8 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH2 0x1469 PUSH1 0x80 DUP8 ADD PUSH2 0x1413 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1485 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1130 DUP3 PUSH2 0x1397 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x149F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x14A8 DUP4 PUSH2 0x1397 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x14E4 DUP4 PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x150F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1529 JUMPI PUSH2 0x1529 PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1558 JUMPI PUSH2 0x1558 PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x156F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x15AA DUP6 PUSH2 0x1397 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x15BF PUSH1 0x40 DUP7 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP2 POP PUSH2 0x15CD PUSH1 0x60 DUP7 ADD PUSH2 0x1413 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1601 PUSH1 0x40 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x161C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1625 DUP5 PUSH2 0x1397 JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1655 DUP5 PUSH2 0x1397 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1601 PUSH1 0x40 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x4163636573734D616E616765723A20696E76616C696420616464726573732066 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x1BDC8818DBDB5C1BDB995B9D PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4163636573734D616E616765723A206D73672E73656E646572206E6565647320 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B7B6B837B732B73A2937B632A0B236B4B7 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH0 PUSH2 0x17E8 PUSH1 0x17 DUP4 ADD DUP6 PUSH2 0x17A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL DUP2 MSTORE PUSH2 0x180C PUSH1 0x11 DUP3 ADD DUP6 PUSH2 0x17A0 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x4BA JUMPI PUSH2 0x4BA PUSH2 0x18AC JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4BA JUMPI PUSH2 0x4BA PUSH2 0x18AC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH2 0x190C JUMPI PUSH2 0x190C PUSH2 0x18AC JUMP JUMPDEST POP PUSH0 NOT ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1130 DUP3 DUP5 PUSH2 0x17A0 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x6564A2646970667358221220D7 DUP8 0xCD 0xEC 0x2D 0x2D LOG2 DUP5 DUP4 STOP DUP1 0x26 0xC9 0xB6 0xB7 CREATE2 0xD7 0xB2 PUSH17 0x4FF08259AA61174F01CDCC8DD64736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"1576:7194:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3865:196;;;;;;;;;;-1:-1:-1;3865:196:48;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;3865:196:48;;;;;;;;6398:109;;;;;;;;;;-1:-1:-1;6398:109:48;;;;;:::i;:::-;;:::i;:::-;;8355:134;;;;;;;;;;-1:-1:-1;8355:134:48;;;;;:::i;:::-;;:::i;4855:129:0:-;;;;;;;;;;-1:-1:-1;4855:129:0;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;;;;1708:25:88;;;1696:2;1681:18;4855:129:0;1562:177:88;1706:66:48;;;;;;;;;;;;1746:26;1706:66;;5817:405;;;;;;;;;;-1:-1:-1;5817:405:48;;;;;:::i;:::-;;:::i;5280:145:0:-;;;;;;;;;;-1:-1:-1;5280:145:0;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;;;;;-1:-1:-1;6389:214:0;;;;;:::i;:::-;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;4222:150:48:-;;;;;;;;;;-1:-1:-1;4222:150:48;;;;;:::i;:::-;;:::i;1842:62::-;;;;;;;;;;;;1880:24;1842:62;;3922:220:7;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;5205:261:48:-;;;;;;;;;;-1:-1:-1;5205:261:48;;;;;:::i;:::-;;:::i;3341:142::-;;;;;;;;;;;;;:::i;3350:145:0:-;;;;;;;;;;-1:-1:-1;3350:145:0;;;;;:::i;:::-;;:::i;2320:49::-;;;;;;;;;;-1:-1:-1;2320:49:0;2365:4;2320:49;;2111:91:48;;;;;;;;;;;;2159:42;2111:91;;;;;-1:-1:-1;;;;;4741:32:88;;;4723:51;;4711:2;4696:18;2111:91:48;4577:203:88;4672:260:48;;;;;;;;;;-1:-1:-1;4672:260:48;;;;;:::i;:::-;;:::i;6742:157::-;;;;;;;;;;-1:-1:-1;6742:157:48;;;;;:::i;:::-;;:::i;7847:218::-;;;;;;;;;;-1:-1:-1;7847:218:48;;;;;:::i;:::-;;:::i;5705:147:0:-;;;;;;;;;;-1:-1:-1;5705:147:0;;;;;:::i;:::-;;:::i;1776:62:48:-;;;;;;;;;;;;1814:24;1776:62;;7362:208;;;;;;;;;;-1:-1:-1;7362:208:48;;;;;:::i;:::-;;:::i;3865:196::-;3950:4;3969:36;3993:11;3969:23;:36::i;:::-;:87;;;-1:-1:-1;;;;;;;4009:47:48;;-1:-1:-1;;;4009:47:48;3969:87;3962:94;3865:196;-1:-1:-1;;3865:196:48:o;6398:109::-;6477:25;6488:4;6494:7;6477:10;:25::i;:::-;6398:109;;:::o;8355:134::-;4929:7:0;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;8454:30:48::1;8468:4;8474:9;8454:13;:30::i;:::-;8355:134:::0;;;:::o;5817:405::-;5986:10;:37;;;;;6000:23;6008:5;6015:7;6000;:23::i;:::-;6025:7;5982:50;6041:52;6049:34;6066:9;6077:5;6049:16;:34::i;:::-;6085:7;6041;:52::i;:::-;6095:7;6037:65;6111:10;:37;;;;;6125:23;6133:5;6140:7;6125;:23::i;:::-;6150:7;6107:50;6162:55;6173:34;6190:9;6201:5;6173:16;:34::i;:::-;6209:7;6162:10;:55::i;:::-;5817:405;;;;;:::o;5280:145:0:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;6389:214::-:0;-1:-1:-1;;;;;6484:23:0;;965:10:14;6484:23:0;6476:83;;;;-1:-1:-1;;;6476:83:0;;6216:2:88;6476:83:0;;;6198:21:88;6255:2;6235:18;;;6228:30;6294:34;6274:18;;;6267:62;-1:-1:-1;;;6345:18:88;;;6338:45;6400:19;;6476:83:0;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;4222:150:48:-;4341:18;;;;;-1:-1:-1;;4333:27:48;:34;;4222:150::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;7458:2:88;2174:92:7;;;7440:21:88;7497:2;7477:18;;;7470:30;7536:34;7516:18;;;7509:62;7607:26;7587:18;;;7580:54;7651:19;;2174:92:7;7256:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;5205:261:48:-;5354:10;5353:11;:38;;;;5369:22;5377:4;5383:7;5369;:22::i;:::-;5368:23;5353:38;5349:113;;;5401:54;5412:33;5429:9;5440:4;5412:16;:33::i;5401:54::-;5205:261;;;;:::o;3341:142::-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;7883:2:88;3325:201:6;;;7865:21:88;7922:2;7902:18;;;7895:30;7961:34;7941:18;;;7934:62;-1:-1:-1;;;8012:18:88;;;8005:44;8066:19;;3325:201:6;7681:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;3388:22:48::1;:20;:22::i;:::-;3416:24;:22;:24::i;:::-;3446:32;:30;:32::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;8248:36:88;;3721:14:6;;8236:2:88;8221:18;3721:14:6;;;;;;;3269:483;3341:142:48:o;3350:145:0:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:0;;;;;;;;;;;;;;;3350:145::o;4672:260:48:-;4815:4;4835:10;:36;;;;;4849:22;4857:4;4863:7;4849;:22::i;:::-;4834:93;;;;4876:51;4884:33;4901:9;4912:4;4884:16;:33::i;:::-;4919:7;4876;:51::i;:::-;4827:100;;4672:260;;;;;;;:::o;6742:157::-;6843:23;6851:5;6858:7;6843;:23::i;:::-;6838:56;;6868:26;6879:5;6886:7;6868:10;:26::i;7847:218::-;7978:9;7989:4;-1:-1:-1;;;;;2613:23:48;;2605:80;;;;-1:-1:-1;;;2605:80:48;;;;;;;:::i;:::-;2768:70;2776:47;2789:33;2806:9;2817:4;2789:16;:33::i;2776:47::-;965:10:14;3350:145:0;:::i;2768:70:48:-;:389;;;-1:-1:-1;2365:4:0;2999:47:48;3012:33;3029:9;3040:4;3012:16;:33::i;2999:47::-;:69;:157;;;;;3082:74;3090:51;3103:37;2159:42;3135:4;3103:16;:37::i;3082:74::-;2691:532;;;;-1:-1:-1;;;2691:532:48;;;;;;;:::i;:::-;8001:59:::1;8015:33;8032:9;8043:4;8015:16;:33::i;:::-;8050:9;8001:13;:59::i;5705:147:0:-:0;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;7362:208:48:-:0;7488:9;7499:4;-1:-1:-1;;;;;2613:23:48;;2605:80;;;;-1:-1:-1;;;2605:80:48;;;;;;;:::i;:::-;2768:70;2776:47;2789:33;2806:9;2817:4;2789:16;:33::i;2768:70::-;:389;;;-1:-1:-1;2365:4:0;2999:47:48;3012:33;3029:9;3040:4;3012:16;:33::i;2999:47::-;:69;:157;;;;;3082:74;3090:51;3103:37;2159:42;3135:4;3103:16;:37::i;3082:74::-;2691:532;;;;-1:-1:-1;;;2691:532:48;;;;;;;:::i;:::-;7511:54:::1;7522:33;7539:9;7550:4;7522:16;:33::i;:::-;7557:7;7511:10;:54::i;3050:213:0:-:0;3135:4;-1:-1:-1;;;;;;3158:58:0;;-1:-1:-1;;;3158:58:0;;:98;;-1:-1:-1;;;;;;;;;;1189:51:17;;;3220:36:0;1081:166:17;4173:501:0;4261:22;4269:4;4275:7;4261;:22::i;:::-;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:0;;;;;;;;;;-1:-1:-1;;;4299:358:0;;;;;;;:::i;3789:103::-;3855:30;3866:4;965:10:14;3855::0;:30::i;7523:247::-;7606:25;4955:12;;;:6;:12;;;;;;:22;;;;7662:34;;;;7711:52;;4955:22;;7662:34;;4955:22;;:12;;7711:52;;7606:25;7711:52;7596:174;7523:247;;:::o;7938:233::-;8021:22;8029:4;8035:7;8021;:22::i;:::-;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:0;;;;;;;;;:36;;-1:-1:-1;;8059:36:0;8091:4;8059:36;;;8141:12;965:10:14;;886:96;8141:12:0;-1:-1:-1;;;;;8114:40:0;8132:7;-1:-1:-1;;;;;8114:40:0;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;8342:234::-;8425:22;8433:4;8439:7;8425;:22::i;:::-;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:0;;;;;;;;;;:37;;-1:-1:-1;;8463:37:0;;;8519:40;965:10:14;;8463:12:0;;8519:40;;8495:5;8519:40;8342:234;;:::o;3712:94:48:-;1746:26;1814:24;2351:28;1746:26;965:10:14;3350:145:0;:::i;2351:28:48:-;2346:66;;2381:31;2392:5;965:10:14;3855::0;:30::i;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;10758:2:88;3631:56:4;;;10740:21:88;10797:2;10777:18;;;10770:30;10836:34;10816:18;;;10809:62;-1:-1:-1;;;10887:18:88;;;10880:44;10941:19;;3631:56:4;10556:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;11173:2:88;3509:82:4;;;11155:21:88;11212:2;11192:18;;;11185:30;11251:34;11231:18;;;11224:62;-1:-1:-1;;;11302:18:88;;;11295:39;11351:19;;3509:82:4;10971:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2838:65:0:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;2838:65:0:o;3538:123:48:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3612:44:48::1;2365:4:0;965:10:14::0;3612::48::1;:44::i;2473:149:16:-:0;2531:13;2563:52;-1:-1:-1;;;;;2575:22:16;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:16;;1984:47;;-1:-1:-1;;;2041:6:16;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:16;;;;;;;;;-1:-1:-1;;;2066:6:16;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:16;;;;;;;;-1:-1:-1;2096:9:16;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;-1:-1:-1;;;2171:5:16;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:16;;;;;;;;-1:-1:-1;2207:1:16;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:16;;2228:55;;;;-1:-1:-1;;;2228:55:16;;12703:2:88;2228:55:16;;;12685:21:88;;;12722:18;;;12715:30;12781:34;12761:18;;;12754:62;12833:18;;2228:55:16;12501:356:88;2228:55:16;2307:6;1884:437;-1:-1:-1;;;1884:437:16:o;1720:281:4:-;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;13064:2:88;1793:106:4;;;13046:21:88;13103:2;13083:18;;;13076:30;13142:34;13122:18;;;13115:62;-1:-1:-1;;;13193:18:88;;;13186:43;13246:19;;1793:106:4;12862:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;7288:110:0:-;7366:25;7377:4;7383:7;7366:10;:25::i;2107:152:4:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;7682:628::-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;13673:2:88;8124:60:13;;;13655:21:88;13712:2;13692:18;;;13685:30;13751:31;13731:18;;;13724:59;13800:18;;8124:60:13;13471:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:88;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:300::-;743:6;751;804:2;792:9;783:7;779:23;775:32;772:52;;;820:1;817;810:12;772:52;865:23;;;-1:-1:-1;931:38:88;965:2;950:18;;931:38;:::i;:::-;921:48;;675:300;;;;;:::o;980:346::-;1048:6;1056;1109:2;1097:9;1088:7;1084:23;1080:32;1077:52;;;1125:1;1122;1115:12;1077:52;-1:-1:-1;;1170:23:88;;;1290:2;1275:18;;;1262:32;;-1:-1:-1;980:346:88:o;1331:226::-;1390:6;1443:2;1431:9;1422:7;1418:23;1414:32;1411:52;;;1459:1;1456;1449:12;1411:52;-1:-1:-1;1504:23:88;;1331:226;-1:-1:-1;1331:226:88:o;1744:160::-;1809:20;;1865:13;;1858:21;1848:32;;1838:60;;1894:1;1891;1884:12;1909:564;2001:6;2009;2017;2025;2033;2086:3;2074:9;2065:7;2061:23;2057:33;2054:53;;;2103:1;2100;2093:12;2054:53;2126:29;2145:9;2126:29;:::i;:::-;2116:39;-1:-1:-1;2224:2:88;2209:18;;2196:32;;-1:-1:-1;2325:2:88;2310:18;;2297:32;;-1:-1:-1;2374:38:88;2408:2;2393:18;;2374:38;:::i;:::-;2364:48;;2431:36;2462:3;2451:9;2447:19;2431:36;:::i;:::-;2421:46;;1909:564;;;;;;;;:::o;2478:186::-;2537:6;2590:2;2578:9;2569:7;2565:23;2561:32;2558:52;;;2606:1;2603;2596:12;2558:52;2629:29;2648:9;2629:29;:::i;2669:300::-;2737:6;2745;2798:2;2786:9;2777:7;2773:23;2769:32;2766:52;;;2814:1;2811;2804:12;2766:52;2837:29;2856:9;2837:29;:::i;:::-;2827:39;2935:2;2920:18;;;;2907:32;;-1:-1:-1;;;2669:300:88:o;2974:127::-;3035:10;3030:3;3026:20;3023:1;3016:31;3066:4;3063:1;3056:15;3090:4;3087:1;3080:15;3106:1018;3183:6;3191;3244:2;3232:9;3223:7;3219:23;3215:32;3212:52;;;3260:1;3257;3250:12;3212:52;3283:29;3302:9;3283:29;:::i;:::-;3273:39;;3363:2;3352:9;3348:18;3335:32;3390:18;3382:6;3379:30;3376:50;;;3422:1;3419;3412:12;3376:50;3445:22;;3498:4;3490:13;;3486:27;-1:-1:-1;3476:55:88;;3527:1;3524;3517:12;3476:55;3567:2;3554:16;3593:18;3585:6;3582:30;3579:56;;;3615:18;;:::i;:::-;3664:2;3658:9;3756:2;3718:17;;-1:-1:-1;;3714:31:88;;;3747:2;3710:40;3706:54;3694:67;;3791:18;3776:34;;3812:22;;;3773:62;3770:88;;;3838:18;;:::i;:::-;3874:2;3867:22;3898;;;3939:15;;;3956:2;3935:24;3932:37;-1:-1:-1;3929:57:88;;;3982:1;3979;3972:12;3929:57;4038:6;4033:2;4029;4025:11;4020:2;4012:6;4008:15;3995:50;4091:1;4086:2;4077:6;4069;4065:19;4061:28;4054:39;4112:6;4102:16;;;;;3106:1018;;;;;:::o;4129:443::-;4212:6;4220;4228;4236;4289:3;4277:9;4268:7;4264:23;4260:33;4257:53;;;4306:1;4303;4296:12;4257:53;4329:29;4348:9;4329:29;:::i;:::-;4319:39;-1:-1:-1;4427:2:88;4412:18;;4399:32;;-1:-1:-1;4474:38:88;4508:2;4493:18;;4474:38;:::i;:::-;4464:48;;4531:35;4562:2;4551:9;4547:18;4531:35;:::i;:::-;4521:45;;4129:443;;;;;;;:::o;4785:420::-;4862:6;4870;4878;4931:2;4919:9;4910:7;4906:23;4902:32;4899:52;;;4947:1;4944;4937:12;4899:52;4992:23;;;-1:-1:-1;5112:2:88;5097:18;;5084:32;;-1:-1:-1;5161:38:88;5195:2;5180:18;;5161:38;:::i;:::-;5151:48;;4785:420;;;;;:::o;5210:::-;5287:6;5295;5303;5356:2;5344:9;5335:7;5331:23;5327:32;5324:52;;;5372:1;5369;5362:12;5324:52;5395:29;5414:9;5395:29;:::i;:::-;5385:39;5493:2;5478:18;;5465:32;;-1:-1:-1;5594:2:88;5579:18;;;5566:32;;5210:420;-1:-1:-1;;;5210:420:88:o;5635:374::-;5712:6;5720;5728;5781:2;5769:9;5760:7;5756:23;5752:32;5749:52;;;5797:1;5794;5787:12;5749:52;5820:29;5839:9;5820:29;:::i;:::-;5810:39;-1:-1:-1;5918:2:88;5903:18;;5890:32;;-1:-1:-1;5965:38:88;5999:2;5984:18;;5965:38;:::i;6430:408::-;6632:2;6614:21;;;6671:2;6651:18;;;6644:30;6710:34;6705:2;6690:18;;6683:62;-1:-1:-1;;;6776:2:88;6761:18;;6754:42;6828:3;6813:19;;6430:408::o;6843:::-;7045:2;7027:21;;;7084:2;7064:18;;;7057:30;7123:34;7118:2;7103:18;;7096:62;-1:-1:-1;;;7189:2:88;7174:18;;7167:42;7241:3;7226:19;;6843:408::o;8295:::-;8497:2;8479:21;;;8536:2;8516:18;;;8509:30;8575:34;8570:2;8555:18;;8548:62;-1:-1:-1;;;8641:2:88;8626:18;;8619:42;8693:3;8678:19;;8295:408::o;8708:414::-;8910:2;8892:21;;;8949:2;8929:18;;;8922:30;8988:34;8983:2;8968:18;;8961:62;-1:-1:-1;;;9054:2:88;9039:18;;9032:48;9112:3;9097:19;;8708:414::o;9127:212::-;9169:3;9207:5;9201:12;9251:6;9244:4;9237:5;9233:16;9228:3;9222:36;9313:1;9277:16;;9302:13;;;-1:-1:-1;9277:16:88;;9127:212;-1:-1:-1;9127:212:88:o;9344:595::-;9755:25;9750:3;9743:38;9725:3;9800:39;9835:2;9830:3;9826:12;9818:6;9800:39;:::i;:::-;-1:-1:-1;;;9855:2:88;9848:31;9895:38;9929:2;9925;9921:11;9913:6;9895:38;:::i;:::-;9888:45;9344:595;-1:-1:-1;;;;;9344:595:88:o;9944:418::-;10093:2;10082:9;10075:21;10056:4;10125:6;10119:13;10168:6;10163:2;10152:9;10148:18;10141:34;10227:6;10222:2;10214:6;10210:15;10205:2;10194:9;10190:18;10184:50;10283:1;10278:2;10269:6;10258:9;10254:22;10250:31;10243:42;10353:2;10346;10342:7;10337:2;10329:6;10325:15;10321:29;10310:9;10306:45;10302:54;10294:62;;;9944:418;;;;:::o;10367:184::-;10437:6;10490:2;10478:9;10469:7;10465:23;10461:32;10458:52;;;10506:1;10503;10496:12;10458:52;-1:-1:-1;10529:16:88;;10367:184;-1:-1:-1;10367:184:88:o;11381:407::-;11583:2;11565:21;;;11622:2;11602:18;;;11595:30;11661:34;11656:2;11641:18;;11634:62;-1:-1:-1;;;11727:2:88;11712:18;;11705:41;11778:3;11763:19;;11381:407::o;11793:127::-;11854:10;11849:3;11845:20;11842:1;11835:31;11885:4;11882:1;11875:15;11909:4;11906:1;11899:15;11925:168;11998:9;;;12029;;12046:15;;;12040:22;;12026:37;12016:71;;12067:18;;:::i;12098:125::-;12163:9;;;12184:10;;;12181:36;;;12197:18;;:::i;12228:127::-;12289:10;12284:3;12280:20;12277:1;12270:31;12320:4;12317:1;12310:15;12344:4;12341:1;12334:15;12360:136;12399:3;12427:5;12417:39;;12436:18;;:::i;:::-;-1:-1:-1;;;12472:18:88;;12360:136::o;13276:190::-;13405:3;13430:30;13456:3;13448:6;13430:30;:::i"},"methodIdentifiers":{"ANY_COMPONENT()":"ad358f07","DEFAULT_ADMIN_ROLE()":"a217fddf","GUARDIAN_ROLE()":"24ea54f4","LEVEL1_ROLE()":"f67b2bad","LEVEL2_ROLE()":"4a47a3e0","checkComponentRole(address,bytes32,address,bool)":"5ff57d20","checkComponentRole2(address,bytes32,bytes32,address,bool)":"2b1cff1f","checkRole(bytes32,address)":"12d9a6ad","checkRole2(bytes32,bytes32,address)":"c5b8f5cf","getComponentRole(address,bytes32)":"374c96c8","getRoleAdmin(bytes32)":"248a9ca3","grantComponentRole(address,bytes32,address)":"f6a421fc","grantRole(bytes32,address)":"2f2ff15d","hasComponentRole(address,bytes32,address,bool)":"b3efcbd2","hasRole(bytes32,address)":"91d14854","initialize()":"8129fc1c","proxiableUUID()":"52d1902d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setComponentRoleAdmin(address,bytes32,bytes32)":"d0b18256","setRoleAdmin(bytes32,bytes32)":"1e4e0091","supportsInterface(bytes4)":"01ffc9a7","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ANY_COMPONENT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GUARDIAN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LEVEL1_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LEVEL2_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"checkComponentRole\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"role2\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"checkComponentRole2\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkRole\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"role2\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkRole2\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getComponentRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantComponentRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"hasComponentRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"name\":\"setComponentRoleAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"name\":\"setRoleAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Contract that holds the access roles for PolicyPool and other components of the protocol. Roles can be delegated globally (traditional OZ's AccessControl) or per-component using component roles. Component roles are computed by doing a bitwise XOR between the component's address (padded to 32 bytes with zeros on the right) and the role's hash. For more details and examples see https://docs.ensuro.co/product-docs/smart-contracts/contracts/accessmanager#component-roles [CAUTION] ==== Avoid leaving a this contract without DEFAULT_ADMIN_ROLE. This contract includes the methods `revokeRole()` and `renounceRole()` that allow to revoke or renounce to specific roles. Even when there are valid reasons to leave these methods (for example revoking the initial DEFAULT_ADMIN_ROLE of the deployer account to leave just the governance account), it's good to mention these methods have to be used with care, avoiding leaving the contract without any default admin.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"checkComponentRole(address,bytes32,address,bool)\":{\"details\":\"Checks if an account has a component role and reverts if not\",\"params\":{\"account\":\"The account to check\",\"alsoGlobal\":\"If true, check for the global role as well\",\"component\":\"The component address\",\"role\":\"The role to check\"}},\"checkComponentRole2(address,bytes32,bytes32,address,bool)\":{\"details\":\"Checks if an account has either of the role1 or role2 component roles and reverts if not\",\"params\":{\"account\":\"The account to check\",\"alsoGlobal\":\"If true, check for the global role as well\",\"component\":\"The component address\",\"role1\":\"The first role to check\",\"role2\":\"The second role to check\"}},\"checkRole(bytes32,address)\":{\"details\":\"Checks if an account has a specific role and revert if not\",\"params\":{\"account\":\"The account to check for the role.\",\"role\":\"The role to check.\"}},\"checkRole2(bytes32,bytes32,address)\":{\"details\":\"Checks if an account has a either role1 or role2 and revert if not\",\"params\":{\"account\":\"The account to check for the role.\",\"role1\":\"The first role to check.\",\"role2\":\"The second role to check.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getComponentRole(address,bytes32)\":{\"details\":\"Computes a component role\",\"params\":{\"component\":\"The component address\",\"role\":\"The role to get\"},\"returns\":{\"_0\":\"The component role\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantComponentRole(address,bytes32,address)\":{\"details\":\"Grants `account` the component role `role` for the component with address `component`. Requirements: - the caller must have role admin for this component-role combination or role admin for any component\",\"params\":{\"account\":\"Address of the account being granted the role.\",\"component\":\"Address of the component for which the role is being granted.\",\"role\":\"Bytes32 identifier of the role being granted.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasComponentRole(address,bytes32,address,bool)\":{\"details\":\"Checks if an account has a component role\",\"params\":{\"account\":\"The account to check\",\"alsoGlobal\":\"If true, check for the global role as well\",\"component\":\"The component address\",\"role\":\"The role to check\"},\"returns\":{\"_0\":\"Whether the account has the role\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setComponentRoleAdmin(address,bytes32,bytes32)\":{\"details\":\"Sets `adminRole` as the component-role admin for a specific component or for any component. To set the admin for any component use the ANY_COMPONENT constant. Requirements: - caller must be the current admin for the role\"},\"setRoleAdmin(bytes32,bytes32)\":{\"details\":\"Set `adminRole` as the admin role of `role`. Requirements: - the caller must be the current admin of the given `role`. [CAUTION] This method allows bypassing checks done by setComponentRoleAdmin. It should not be used for component roles.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"AccessManager - Protocol access roles\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ANY_COMPONENT()\":{\"notice\":\"Special address used for setting component-role admin for a specific role on any component. Note that granting component roles using this address has no meaning.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AccessManager.sol\":\"AccessManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"contracts/AccessManager.sol\":{\"keccak256\":\"0x31a95b9badcc60f66ed6731924d58b84c4831c890b4685bed6cb158186f43cd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d66755c03c38598d1031c52491f2eba15ccbcc13353f8ae39de3b83c1541d11\",\"dweb:/ipfs/Qmc8supFSxuRvoNCQ7c11YV44E5hzB7vHtMZHhu1Q6C3A6\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/AccessManager.sol:AccessManager","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/AccessManager.sol:AccessManager","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3087,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":28,"contract":"contracts/AccessManager.sol:AccessManager","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)23_storage)"},{"astId":335,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":764,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":10823,"contract":"contracts/AccessManager.sol:AccessManager","label":"__gap","offset":0,"slot":"251","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)23_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)23_storage"},"t_struct(RoleData)23_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","members":[{"astId":20,"contract":"contracts/AccessManager.sol:AccessManager","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":22,"contract":"contracts/AccessManager.sol:AccessManager","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/ERC4626AssetManager.sol":{"ERC4626AssetManager":{"abi":[{"inputs":[{"internalType":"contract IERC20Metadata","name":"asset_","type":"address"},{"internalType":"contract IERC4626","name":"vault_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"earnings","type":"int256"}],"name":"EarningsRecorded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyDeinvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyInvested","type":"event"},{"inputs":[],"name":"connect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deinvestAll","outputs":[{"internalType":"int256","name":"earnings","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getInvestmentValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMiddle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"name":"refillWallet","outputs":[{"internalType":"uint256","name":"deinvest","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"middle","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setLiquidityThresholds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_10885":{"entryPoint":null,"id":10885,"parameterSlots":2,"returnSlots":0},"@_14428":{"entryPoint":null,"id":14428,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":621,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333_fromMemory":{"entryPoint":565,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_contract_IERC20Metadata":{"entryPoint":542,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2164:88","nodeType":"YulBlock","src":"0:2164:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"75:86:88","nodeType":"YulBlock","src":"75:86:88","statements":[{"body":{"nativeSrc":"139:16:88","nodeType":"YulBlock","src":"139:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"151:1:88","nodeType":"YulLiteral","src":"151:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"141:6:88","nodeType":"YulIdentifier","src":"141:6:88"},"nativeSrc":"141:12:88","nodeType":"YulFunctionCall","src":"141:12:88"},"nativeSrc":"141:12:88","nodeType":"YulExpressionStatement","src":"141:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"98:5:88","nodeType":"YulIdentifier","src":"98:5:88"},{"arguments":[{"name":"value","nativeSrc":"109:5:88","nodeType":"YulIdentifier","src":"109:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"124:3:88","nodeType":"YulLiteral","src":"124:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"129:1:88","nodeType":"YulLiteral","src":"129:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"120:3:88","nodeType":"YulIdentifier","src":"120:3:88"},"nativeSrc":"120:11:88","nodeType":"YulFunctionCall","src":"120:11:88"},{"kind":"number","nativeSrc":"133:1:88","nodeType":"YulLiteral","src":"133:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"116:3:88","nodeType":"YulIdentifier","src":"116:3:88"},"nativeSrc":"116:19:88","nodeType":"YulFunctionCall","src":"116:19:88"}],"functionName":{"name":"and","nativeSrc":"105:3:88","nodeType":"YulIdentifier","src":"105:3:88"},"nativeSrc":"105:31:88","nodeType":"YulFunctionCall","src":"105:31:88"}],"functionName":{"name":"eq","nativeSrc":"95:2:88","nodeType":"YulIdentifier","src":"95:2:88"},"nativeSrc":"95:42:88","nodeType":"YulFunctionCall","src":"95:42:88"}],"functionName":{"name":"iszero","nativeSrc":"88:6:88","nodeType":"YulIdentifier","src":"88:6:88"},"nativeSrc":"88:50:88","nodeType":"YulFunctionCall","src":"88:50:88"},"nativeSrc":"85:70:88","nodeType":"YulIf","src":"85:70:88"}]},"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"14:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"64:5:88","nodeType":"YulTypedName","src":"64:5:88","type":""}],"src":"14:147:88"},{"body":{"nativeSrc":"304:319:88","nodeType":"YulBlock","src":"304:319:88","statements":[{"body":{"nativeSrc":"350:16:88","nodeType":"YulBlock","src":"350:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"359:1:88","nodeType":"YulLiteral","src":"359:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"362:1:88","nodeType":"YulLiteral","src":"362:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"352:6:88","nodeType":"YulIdentifier","src":"352:6:88"},"nativeSrc":"352:12:88","nodeType":"YulFunctionCall","src":"352:12:88"},"nativeSrc":"352:12:88","nodeType":"YulExpressionStatement","src":"352:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"325:7:88","nodeType":"YulIdentifier","src":"325:7:88"},{"name":"headStart","nativeSrc":"334:9:88","nodeType":"YulIdentifier","src":"334:9:88"}],"functionName":{"name":"sub","nativeSrc":"321:3:88","nodeType":"YulIdentifier","src":"321:3:88"},"nativeSrc":"321:23:88","nodeType":"YulFunctionCall","src":"321:23:88"},{"kind":"number","nativeSrc":"346:2:88","nodeType":"YulLiteral","src":"346:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"317:3:88","nodeType":"YulIdentifier","src":"317:3:88"},"nativeSrc":"317:32:88","nodeType":"YulFunctionCall","src":"317:32:88"},"nativeSrc":"314:52:88","nodeType":"YulIf","src":"314:52:88"},{"nativeSrc":"375:29:88","nodeType":"YulVariableDeclaration","src":"375:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"394:9:88","nodeType":"YulIdentifier","src":"394:9:88"}],"functionName":{"name":"mload","nativeSrc":"388:5:88","nodeType":"YulIdentifier","src":"388:5:88"},"nativeSrc":"388:16:88","nodeType":"YulFunctionCall","src":"388:16:88"},"variables":[{"name":"value","nativeSrc":"379:5:88","nodeType":"YulTypedName","src":"379:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"454:5:88","nodeType":"YulIdentifier","src":"454:5:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"413:40:88","nodeType":"YulIdentifier","src":"413:40:88"},"nativeSrc":"413:47:88","nodeType":"YulFunctionCall","src":"413:47:88"},"nativeSrc":"413:47:88","nodeType":"YulExpressionStatement","src":"413:47:88"},{"nativeSrc":"469:15:88","nodeType":"YulAssignment","src":"469:15:88","value":{"name":"value","nativeSrc":"479:5:88","nodeType":"YulIdentifier","src":"479:5:88"},"variableNames":[{"name":"value0","nativeSrc":"469:6:88","nodeType":"YulIdentifier","src":"469:6:88"}]},{"nativeSrc":"493:40:88","nodeType":"YulVariableDeclaration","src":"493:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"518:9:88","nodeType":"YulIdentifier","src":"518:9:88"},{"kind":"number","nativeSrc":"529:2:88","nodeType":"YulLiteral","src":"529:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"514:3:88","nodeType":"YulIdentifier","src":"514:3:88"},"nativeSrc":"514:18:88","nodeType":"YulFunctionCall","src":"514:18:88"}],"functionName":{"name":"mload","nativeSrc":"508:5:88","nodeType":"YulIdentifier","src":"508:5:88"},"nativeSrc":"508:25:88","nodeType":"YulFunctionCall","src":"508:25:88"},"variables":[{"name":"value_1","nativeSrc":"497:7:88","nodeType":"YulTypedName","src":"497:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"583:7:88","nodeType":"YulIdentifier","src":"583:7:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"542:40:88","nodeType":"YulIdentifier","src":"542:40:88"},"nativeSrc":"542:49:88","nodeType":"YulFunctionCall","src":"542:49:88"},"nativeSrc":"542:49:88","nodeType":"YulExpressionStatement","src":"542:49:88"},{"nativeSrc":"600:17:88","nodeType":"YulAssignment","src":"600:17:88","value":{"name":"value_1","nativeSrc":"610:7:88","nodeType":"YulIdentifier","src":"610:7:88"},"variableNames":[{"name":"value1","nativeSrc":"600:6:88","nodeType":"YulIdentifier","src":"600:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333_fromMemory","nativeSrc":"166:457:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"262:9:88","nodeType":"YulTypedName","src":"262:9:88","type":""},{"name":"dataEnd","nativeSrc":"273:7:88","nodeType":"YulTypedName","src":"273:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"285:6:88","nodeType":"YulTypedName","src":"285:6:88","type":""},{"name":"value1","nativeSrc":"293:6:88","nodeType":"YulTypedName","src":"293:6:88","type":""}],"src":"166:457:88"},{"body":{"nativeSrc":"802:250:88","nodeType":"YulBlock","src":"802:250:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"819:9:88","nodeType":"YulIdentifier","src":"819:9:88"},{"kind":"number","nativeSrc":"830:2:88","nodeType":"YulLiteral","src":"830:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"812:6:88","nodeType":"YulIdentifier","src":"812:6:88"},"nativeSrc":"812:21:88","nodeType":"YulFunctionCall","src":"812:21:88"},"nativeSrc":"812:21:88","nodeType":"YulExpressionStatement","src":"812:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"853:9:88","nodeType":"YulIdentifier","src":"853:9:88"},{"kind":"number","nativeSrc":"864:2:88","nodeType":"YulLiteral","src":"864:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"849:3:88","nodeType":"YulIdentifier","src":"849:3:88"},"nativeSrc":"849:18:88","nodeType":"YulFunctionCall","src":"849:18:88"},{"kind":"number","nativeSrc":"869:2:88","nodeType":"YulLiteral","src":"869:2:88","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"842:6:88","nodeType":"YulIdentifier","src":"842:6:88"},"nativeSrc":"842:30:88","nodeType":"YulFunctionCall","src":"842:30:88"},"nativeSrc":"842:30:88","nodeType":"YulExpressionStatement","src":"842:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"892:9:88","nodeType":"YulIdentifier","src":"892:9:88"},{"kind":"number","nativeSrc":"903:2:88","nodeType":"YulLiteral","src":"903:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"888:3:88","nodeType":"YulIdentifier","src":"888:3:88"},"nativeSrc":"888:18:88","nodeType":"YulFunctionCall","src":"888:18:88"},{"hexValue":"4c69717569646974795468726573686f6c6441737365744d616e616765723a20","kind":"string","nativeSrc":"908:34:88","nodeType":"YulLiteral","src":"908:34:88","type":"","value":"LiquidityThresholdAssetManager: "}],"functionName":{"name":"mstore","nativeSrc":"881:6:88","nodeType":"YulIdentifier","src":"881:6:88"},"nativeSrc":"881:62:88","nodeType":"YulFunctionCall","src":"881:62:88"},"nativeSrc":"881:62:88","nodeType":"YulExpressionStatement","src":"881:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"963:9:88","nodeType":"YulIdentifier","src":"963:9:88"},{"kind":"number","nativeSrc":"974:2:88","nodeType":"YulLiteral","src":"974:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"959:3:88","nodeType":"YulIdentifier","src":"959:3:88"},"nativeSrc":"959:18:88","nodeType":"YulFunctionCall","src":"959:18:88"},{"hexValue":"61737365742063616e6e6f74206265207a65726f2061646472657373","kind":"string","nativeSrc":"979:30:88","nodeType":"YulLiteral","src":"979:30:88","type":"","value":"asset cannot be zero address"}],"functionName":{"name":"mstore","nativeSrc":"952:6:88","nodeType":"YulIdentifier","src":"952:6:88"},"nativeSrc":"952:58:88","nodeType":"YulFunctionCall","src":"952:58:88"},"nativeSrc":"952:58:88","nodeType":"YulExpressionStatement","src":"952:58:88"},{"nativeSrc":"1019:27:88","nodeType":"YulAssignment","src":"1019:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1031:9:88","nodeType":"YulIdentifier","src":"1031:9:88"},{"kind":"number","nativeSrc":"1042:3:88","nodeType":"YulLiteral","src":"1042:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1027:3:88","nodeType":"YulIdentifier","src":"1027:3:88"},"nativeSrc":"1027:19:88","nodeType":"YulFunctionCall","src":"1027:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1019:4:88","nodeType":"YulIdentifier","src":"1019:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"628:424:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"779:9:88","nodeType":"YulTypedName","src":"779:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"793:4:88","nodeType":"YulTypedName","src":"793:4:88","type":""}],"src":"628:424:88"},{"body":{"nativeSrc":"1231:239:88","nodeType":"YulBlock","src":"1231:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1248:9:88","nodeType":"YulIdentifier","src":"1248:9:88"},{"kind":"number","nativeSrc":"1259:2:88","nodeType":"YulLiteral","src":"1259:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1241:6:88","nodeType":"YulIdentifier","src":"1241:6:88"},"nativeSrc":"1241:21:88","nodeType":"YulFunctionCall","src":"1241:21:88"},"nativeSrc":"1241:21:88","nodeType":"YulExpressionStatement","src":"1241:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1282:9:88","nodeType":"YulIdentifier","src":"1282:9:88"},{"kind":"number","nativeSrc":"1293:2:88","nodeType":"YulLiteral","src":"1293:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1278:3:88","nodeType":"YulIdentifier","src":"1278:3:88"},"nativeSrc":"1278:18:88","nodeType":"YulFunctionCall","src":"1278:18:88"},{"kind":"number","nativeSrc":"1298:2:88","nodeType":"YulLiteral","src":"1298:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"1271:6:88","nodeType":"YulIdentifier","src":"1271:6:88"},"nativeSrc":"1271:30:88","nodeType":"YulFunctionCall","src":"1271:30:88"},"nativeSrc":"1271:30:88","nodeType":"YulExpressionStatement","src":"1271:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1321:9:88","nodeType":"YulIdentifier","src":"1321:9:88"},{"kind":"number","nativeSrc":"1332:2:88","nodeType":"YulLiteral","src":"1332:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1317:3:88","nodeType":"YulIdentifier","src":"1317:3:88"},"nativeSrc":"1317:18:88","nodeType":"YulFunctionCall","src":"1317:18:88"},{"hexValue":"4552433436323641737365744d616e616765723a207661756c742063616e6e6f","kind":"string","nativeSrc":"1337:34:88","nodeType":"YulLiteral","src":"1337:34:88","type":"","value":"ERC4626AssetManager: vault canno"}],"functionName":{"name":"mstore","nativeSrc":"1310:6:88","nodeType":"YulIdentifier","src":"1310:6:88"},"nativeSrc":"1310:62:88","nodeType":"YulFunctionCall","src":"1310:62:88"},"nativeSrc":"1310:62:88","nodeType":"YulExpressionStatement","src":"1310:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1392:9:88","nodeType":"YulIdentifier","src":"1392:9:88"},{"kind":"number","nativeSrc":"1403:2:88","nodeType":"YulLiteral","src":"1403:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1388:3:88","nodeType":"YulIdentifier","src":"1388:3:88"},"nativeSrc":"1388:18:88","nodeType":"YulFunctionCall","src":"1388:18:88"},{"hexValue":"74206265207a65726f2061646472657373","kind":"string","nativeSrc":"1408:19:88","nodeType":"YulLiteral","src":"1408:19:88","type":"","value":"t be zero address"}],"functionName":{"name":"mstore","nativeSrc":"1381:6:88","nodeType":"YulIdentifier","src":"1381:6:88"},"nativeSrc":"1381:47:88","nodeType":"YulFunctionCall","src":"1381:47:88"},"nativeSrc":"1381:47:88","nodeType":"YulExpressionStatement","src":"1381:47:88"},{"nativeSrc":"1437:27:88","nodeType":"YulAssignment","src":"1437:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1449:9:88","nodeType":"YulIdentifier","src":"1449:9:88"},{"kind":"number","nativeSrc":"1460:3:88","nodeType":"YulLiteral","src":"1460:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1445:3:88","nodeType":"YulIdentifier","src":"1445:3:88"},"nativeSrc":"1445:19:88","nodeType":"YulFunctionCall","src":"1445:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1437:4:88","nodeType":"YulIdentifier","src":"1437:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1057:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1208:9:88","nodeType":"YulTypedName","src":"1208:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1222:4:88","nodeType":"YulTypedName","src":"1222:4:88","type":""}],"src":"1057:413:88"},{"body":{"nativeSrc":"1556:186:88","nodeType":"YulBlock","src":"1556:186:88","statements":[{"body":{"nativeSrc":"1602:16:88","nodeType":"YulBlock","src":"1602:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1611:1:88","nodeType":"YulLiteral","src":"1611:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1614:1:88","nodeType":"YulLiteral","src":"1614:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1604:6:88","nodeType":"YulIdentifier","src":"1604:6:88"},"nativeSrc":"1604:12:88","nodeType":"YulFunctionCall","src":"1604:12:88"},"nativeSrc":"1604:12:88","nodeType":"YulExpressionStatement","src":"1604:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1577:7:88","nodeType":"YulIdentifier","src":"1577:7:88"},{"name":"headStart","nativeSrc":"1586:9:88","nodeType":"YulIdentifier","src":"1586:9:88"}],"functionName":{"name":"sub","nativeSrc":"1573:3:88","nodeType":"YulIdentifier","src":"1573:3:88"},"nativeSrc":"1573:23:88","nodeType":"YulFunctionCall","src":"1573:23:88"},{"kind":"number","nativeSrc":"1598:2:88","nodeType":"YulLiteral","src":"1598:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1569:3:88","nodeType":"YulIdentifier","src":"1569:3:88"},"nativeSrc":"1569:32:88","nodeType":"YulFunctionCall","src":"1569:32:88"},"nativeSrc":"1566:52:88","nodeType":"YulIf","src":"1566:52:88"},{"nativeSrc":"1627:29:88","nodeType":"YulVariableDeclaration","src":"1627:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1646:9:88","nodeType":"YulIdentifier","src":"1646:9:88"}],"functionName":{"name":"mload","nativeSrc":"1640:5:88","nodeType":"YulIdentifier","src":"1640:5:88"},"nativeSrc":"1640:16:88","nodeType":"YulFunctionCall","src":"1640:16:88"},"variables":[{"name":"value","nativeSrc":"1631:5:88","nodeType":"YulTypedName","src":"1631:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1706:5:88","nodeType":"YulIdentifier","src":"1706:5:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"1665:40:88","nodeType":"YulIdentifier","src":"1665:40:88"},"nativeSrc":"1665:47:88","nodeType":"YulFunctionCall","src":"1665:47:88"},"nativeSrc":"1665:47:88","nodeType":"YulExpressionStatement","src":"1665:47:88"},{"nativeSrc":"1721:15:88","nodeType":"YulAssignment","src":"1721:15:88","value":{"name":"value","nativeSrc":"1731:5:88","nodeType":"YulIdentifier","src":"1731:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1721:6:88","nodeType":"YulIdentifier","src":"1721:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"1475:267:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1522:9:88","nodeType":"YulTypedName","src":"1522:9:88","type":""},{"name":"dataEnd","nativeSrc":"1533:7:88","nodeType":"YulTypedName","src":"1533:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1545:6:88","nodeType":"YulTypedName","src":"1545:6:88","type":""}],"src":"1475:267:88"},{"body":{"nativeSrc":"1921:241:88","nodeType":"YulBlock","src":"1921:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1938:9:88","nodeType":"YulIdentifier","src":"1938:9:88"},{"kind":"number","nativeSrc":"1949:2:88","nodeType":"YulLiteral","src":"1949:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1931:6:88","nodeType":"YulIdentifier","src":"1931:6:88"},"nativeSrc":"1931:21:88","nodeType":"YulFunctionCall","src":"1931:21:88"},"nativeSrc":"1931:21:88","nodeType":"YulExpressionStatement","src":"1931:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1972:9:88","nodeType":"YulIdentifier","src":"1972:9:88"},{"kind":"number","nativeSrc":"1983:2:88","nodeType":"YulLiteral","src":"1983:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1968:3:88","nodeType":"YulIdentifier","src":"1968:3:88"},"nativeSrc":"1968:18:88","nodeType":"YulFunctionCall","src":"1968:18:88"},{"kind":"number","nativeSrc":"1988:2:88","nodeType":"YulLiteral","src":"1988:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"1961:6:88","nodeType":"YulIdentifier","src":"1961:6:88"},"nativeSrc":"1961:30:88","nodeType":"YulFunctionCall","src":"1961:30:88"},"nativeSrc":"1961:30:88","nodeType":"YulExpressionStatement","src":"1961:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2011:9:88","nodeType":"YulIdentifier","src":"2011:9:88"},{"kind":"number","nativeSrc":"2022:2:88","nodeType":"YulLiteral","src":"2022:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2007:3:88","nodeType":"YulIdentifier","src":"2007:3:88"},"nativeSrc":"2007:18:88","nodeType":"YulFunctionCall","src":"2007:18:88"},{"hexValue":"4552433436323641737365744d616e616765723a207661756c74206d75737420","kind":"string","nativeSrc":"2027:34:88","nodeType":"YulLiteral","src":"2027:34:88","type":"","value":"ERC4626AssetManager: vault must "}],"functionName":{"name":"mstore","nativeSrc":"2000:6:88","nodeType":"YulIdentifier","src":"2000:6:88"},"nativeSrc":"2000:62:88","nodeType":"YulFunctionCall","src":"2000:62:88"},"nativeSrc":"2000:62:88","nodeType":"YulExpressionStatement","src":"2000:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:88","nodeType":"YulIdentifier","src":"2082:9:88"},{"kind":"number","nativeSrc":"2093:2:88","nodeType":"YulLiteral","src":"2093:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2078:3:88","nodeType":"YulIdentifier","src":"2078:3:88"},"nativeSrc":"2078:18:88","nodeType":"YulFunctionCall","src":"2078:18:88"},{"hexValue":"68617665207468652073616d65206173736574","kind":"string","nativeSrc":"2098:21:88","nodeType":"YulLiteral","src":"2098:21:88","type":"","value":"have the same asset"}],"functionName":{"name":"mstore","nativeSrc":"2071:6:88","nodeType":"YulIdentifier","src":"2071:6:88"},"nativeSrc":"2071:49:88","nodeType":"YulFunctionCall","src":"2071:49:88"},"nativeSrc":"2071:49:88","nodeType":"YulExpressionStatement","src":"2071:49:88"},{"nativeSrc":"2129:27:88","nodeType":"YulAssignment","src":"2129:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2141:9:88","nodeType":"YulIdentifier","src":"2141:9:88"},{"kind":"number","nativeSrc":"2152:3:88","nodeType":"YulLiteral","src":"2152:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2137:3:88","nodeType":"YulIdentifier","src":"2137:3:88"},"nativeSrc":"2137:19:88","nodeType":"YulFunctionCall","src":"2137:19:88"},"variableNames":[{"name":"tail","nativeSrc":"2129:4:88","nodeType":"YulIdentifier","src":"2129:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1747:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1898:9:88","nodeType":"YulTypedName","src":"1898:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1912:4:88","nodeType":"YulTypedName","src":"1912:4:88","type":""}],"src":"1747:415:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IERC20Metadata(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20Metadata(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IERC20Metadata(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"LiquidityThresholdAssetManager: \")\n        mstore(add(headStart, 96), \"asset cannot be zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"ERC4626AssetManager: vault canno\")\n        mstore(add(headStart, 96), \"t be zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20Metadata(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"ERC4626AssetManager: vault must \")\n        mstore(add(headStart, 96), \"have the same asset\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561000f575f5ffd5b506040516117ec3803806117ec83398101604081905261002e91610235565b816001600160a01b0381166100b05760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b0390811660805281166101265760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b60648201526084016100a7565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610162573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610186919061026d565b6001600160a01b0316826001600160a01b03161461020c5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d652061737365740000000000000000000000000060648201526084016100a7565b6001600160a01b031660a0525061028f565b6001600160a01b0381168114610232575f5ffd5b50565b5f5f60408385031215610246575f5ffd5b82516102518161021e565b60208401519092506102628161021e565b809150509250929050565b5f6020828403121561027d575f5ffd5b81516102888161021e565b9392505050565b60805160a0516114e161030b5f395f8181610686015281816109c901528181610a9401528181610dfa0152610efa01525f8181610162015281816102520152818161034a0152818161049d015281816105bb0152818161081801528181610902015281816109f801528181610c120152610f4a01526114e15ff3fe608060405234801561000f575f5ffd5b50600436106100a5575f3560e01c80634eb978a41161006e5780634eb978a4146101175780637d7c2a1c1461011f5780638d7ddd9014610127578063948cb7191461012f578063cec16f3f14610137578063f9c4fd1b1461013f575f5ffd5b8062a9bb8d146100a957806301ffc9a7146100be5780631014a0c2146100e65780633b6612c8146101075780634dd93bd31461010f575b5f5ffd5b6100bc6100b73660046111da565b610147565b005b6100d16100cc366004611203565b610446565b60405190151581526020015b60405180910390f35b6100f96100f436600461122a565b61047c565b6040519081526020016100dd565b6100f96105b8565b6100f961066f565b6100f961075c565b6100bc610801565b6100f96108ff565b6100bc6109aa565b6100f9610a62565b6100f9610c0f565b5f51602061148c5f395f51905f525f198414610245576101fa7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e09190611241565b6101eb90600a611358565b6101f59086611366565b610cc2565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f19831461033d576102e57f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d09190611241565b6102db90600a611358565b6101f59085611366565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198214610438576103dd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c89190611241565b6103d390600a611358565b6101f59084611366565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b50610441610d2a565b505050565b5f6001600160e01b031982166301ffc9a760e01b148061047657506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105069190611385565b90508281106105725760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b5f61057b61066f565b905081610586610c0f565b610590908661139c565b61059a91906113af565b9250808311156105a8578092505b6105b183610dce565b5050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610615573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106399190611241565b61064490600a611358565b5f51602061148c5f395f51905f525461066a9190600160401b900463ffffffff166113c2565b905090565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ff9190611385565b6040518263ffffffff1660e01b815260040161071d91815260200190565b602060405180830381865afa158015610738573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611385565b5f5f61076661066f565b5f51602061148c5f395f51905f528054919250905f9061079690600160601b90046001600160801b0316846113d9565b90506107a183610e6d565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610865573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108899190611385565b90506108936105b8565b8111156108b7576108b46108a5610c0f565b6108af90836113af565b610ed5565b50565b6108bf6108ff565b8110156108b4575f6108ea6108d261066f565b836108db610c0f565b6108e591906113af565b610f31565b905080156108fb576108fb81610dce565b5050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109809190611241565b61098b90600a611358565b5f51602061148c5f395f51905f525461066a919063ffffffff166113c2565b6109b2610f48565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610a3e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b491906113ff565b5f805f51602061148c5f395f51905f526040516370a0823160e01b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610ae1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190611385565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303815f875af1158015610b4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b719190611385565b8254909150610b9090600160601b90046001600160801b0316826113d9565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c909190611241565b610c9b90600a611358565b5f51602061148c5f395f51905f525461066a9190640100000000900463ffffffff166113c2565b5f63ffffffff821115610d265760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610569565b5090565b5f51602061148c5f395f51905f52805463ffffffff64010000000082048116911611801590610d715750805463ffffffff600160401b820481166401000000009092041611155b6108b45760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b6064820152608401610569565b610dd781611096565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610e49573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fb9190611385565b5f6001600160801b03821115610d265760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610569565b610ede8161114c565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e2d565b5f818310610f3f5781610f41565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd29190611432565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110319190611432565b6001600160a01b0316146110785760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b6044820152606401610569565b5f51602061148c5f395f51905f5280546001600160e01b0319169055565b5f51602061148c5f395f51905f5280546110c9906110c490600160601b90046001600160801b031684610f31565b610e6d565b81548290600c906110eb908490600160601b90046001600160801b031661144d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161114091815260200190565b60405180910390a15050565b5f51602061148c5f395f51905f5261116382610e6d565b81548290600c90611185908490600160601b90046001600160801b031661146c565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161114091815260200190565b5f5f5f606084860312156111ec575f5ffd5b505081359360208301359350604090920135919050565b5f60208284031215611213575f5ffd5b81356001600160e01b031981168114610f41575f5ffd5b5f6020828403121561123a575f5ffd5b5035919050565b5f60208284031215611251575f5ffd5b815160ff81168114610f41575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156112b05780850481111561129457611294611261565b60018416156112a257908102905b60019390931c928002611279565b935093915050565b5f826112c657506001610476565b816112d257505f610476565b81600181146112e857600281146112f25761130e565b6001915050610476565b60ff84111561130357611303611261565b50506001821b610476565b5060208310610133831016604e8410600b8410161715611331575081810a610476565b61133d5f198484611275565b805f190482111561135057611350611261565b029392505050565b5f610f4160ff8416836112b8565b5f8261138057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611395575f5ffd5b5051919050565b8082018082111561047657610476611261565b8181038181111561047657610476611261565b808202811582820484141761047657610476611261565b8181035f8312801583831316838312821617156113f8576113f8611261565b5092915050565b5f6020828403121561140f575f5ffd5b81518015158114610f41575f5ffd5b6001600160a01b03811681146108b4575f5ffd5b5f60208284031215611442575f5ffd5b8151610f418161141e565b6001600160801b03828116828216039081111561047657610476611261565b6001600160801b0381811683821601908111156104765761047661126156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a26469706673582212207f7b8606c143d4d00dea41550973a7cc4e5550992310770e54f02c244f61351c64736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x17EC CODESIZE SUB DUP1 PUSH2 0x17EC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x235 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69717569646974795468726573686F6C6441737365744D616E616765723A20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61737365742063616E6E6F74206265207A65726F206164647265737300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP2 AND PUSH2 0x126 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433436323641737365744D616E616765723A207661756C742063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x74206265207A65726F2061646472657373 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38D52E0F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x162 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x26D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x20C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433436323641737365744D616E616765723A207661756C74206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x68617665207468652073616D6520617373657400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x232 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x246 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x251 DUP2 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x262 DUP2 PUSH2 0x21E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x288 DUP2 PUSH2 0x21E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x14E1 PUSH2 0x30B PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x686 ADD MSTORE DUP2 DUP2 PUSH2 0x9C9 ADD MSTORE DUP2 DUP2 PUSH2 0xA94 ADD MSTORE DUP2 DUP2 PUSH2 0xDFA ADD MSTORE PUSH2 0xEFA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x162 ADD MSTORE DUP2 DUP2 PUSH2 0x252 ADD MSTORE DUP2 DUP2 PUSH2 0x34A ADD MSTORE DUP2 DUP2 PUSH2 0x49D ADD MSTORE DUP2 DUP2 PUSH2 0x5BB ADD MSTORE DUP2 DUP2 PUSH2 0x818 ADD MSTORE DUP2 DUP2 PUSH2 0x902 ADD MSTORE DUP2 DUP2 PUSH2 0x9F8 ADD MSTORE DUP2 DUP2 PUSH2 0xC12 ADD MSTORE PUSH2 0xF4A ADD MSTORE PUSH2 0x14E1 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EB978A4 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x8D7DDD90 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x948CB719 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0xCEC16F3F EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF9C4FD1B EQ PUSH2 0x13F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH3 0xA9BB8D EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x1014A0C2 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x3B6612C8 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x4DD93BD3 EQ PUSH2 0x10F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xBC PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x11DA JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD1 PUSH2 0xCC CALLDATASIZE PUSH1 0x4 PUSH2 0x1203 JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x122A JUMP JUMPDEST PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xDD JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x66F JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x75C JUMP JUMPDEST PUSH2 0xBC PUSH2 0x801 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0xBC PUSH2 0x9AA JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xA62 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xC0F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 NOT DUP5 EQ PUSH2 0x245 JUMPI PUSH2 0x1FA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x1EB SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP7 PUSH2 0x1366 JUMP JUMPDEST PUSH2 0xCC2 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x26 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP4 EQ PUSH2 0x33D JUMPI PUSH2 0x2E5 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x2DB SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP6 PUSH2 0x1366 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x27 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x438 JUMPI PUSH2 0x3DD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x3D3 SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP5 PUSH2 0x1366 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x28 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP PUSH2 0x441 PUSH2 0xD2A JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x476 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1E670A97 PUSH1 0xE2 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4E2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x506 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT PUSH2 0x572 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206E65656420746F20726566696C6C207468652077616C6C657420666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81D1A1A5CC81C185E5B595B9D PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x57B PUSH2 0x66F JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x586 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x590 SWAP1 DUP7 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x59A SWAP2 SWAP1 PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x5A8 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5B1 DUP4 PUSH2 0xDCE JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x615 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x644 SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7A2D13A SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6DB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6FF SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x738 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x66A SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x766 PUSH2 0x66F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH0 SWAP1 PUSH2 0x796 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x13D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x7A1 DUP4 PUSH2 0xE6D JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x865 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x889 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST SWAP1 POP PUSH2 0x893 PUSH2 0x5B8 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x8B7 JUMPI PUSH2 0x8B4 PUSH2 0x8A5 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x8AF SWAP1 DUP4 PUSH2 0x13AF JUMP JUMPDEST PUSH2 0xED5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x8BF PUSH2 0x8FF JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x8B4 JUMPI PUSH0 PUSH2 0x8EA PUSH2 0x8D2 PUSH2 0x66F JUMP JUMPDEST DUP4 PUSH2 0x8DB PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x8E5 SWAP2 SWAP1 PUSH2 0x13AF JUMP JUMPDEST PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH2 0x8FB DUP2 PUSH2 0xDCE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x98B SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x9B2 PUSH2 0xF48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA3E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B4 SWAP2 SWAP1 PUSH2 0x13FF JUMP JUMPDEST PUSH0 DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB05 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB4D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST DUP3 SLOAD SWAP1 SWAP2 POP PUSH2 0xB90 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 PUSH2 0x13D9 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP4 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE SWAP1 SWAP4 POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0xC9B SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0xD71 JUMPI POP DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND GT ISZERO JUMPDEST PUSH2 0x8B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A204C6971756964697479206C696D69747320617265 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81A5B9D985B1A59 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST PUSH2 0xDD7 DUP2 PUSH2 0x1096 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST PUSH2 0xEDE DUP2 PUSH2 0x114C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD PUSH2 0xE2D JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0xF3F JUMPI DUP2 PUSH2 0xF41 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFAE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD2 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x100D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1031 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1078 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x82E6E6CAE840DAD2E6DAC2E8C6D PUSH1 0x93 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x569 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH2 0x10C9 SWAP1 PUSH2 0x10C4 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0xF31 JUMP JUMPDEST PUSH2 0xE6D JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x10EB SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x144D JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x1163 DUP3 PUSH2 0xE6D JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x1185 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x146C JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0CDEAC88E111E1DD9B9F043E8C671053DEDFBAECCABFB144FD51A4F870FCF4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1213 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x123A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1251 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x12B0 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x12A2 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x1279 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x12C6 JUMPI POP PUSH1 0x1 PUSH2 0x476 JUMP JUMPDEST DUP2 PUSH2 0x12D2 JUMPI POP PUSH0 PUSH2 0x476 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x12E8 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x12F2 JUMPI PUSH2 0x130E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x476 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1303 PUSH2 0x1261 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x476 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1331 JUMPI POP DUP2 DUP2 EXP PUSH2 0x476 JUMP JUMPDEST PUSH2 0x133D PUSH0 NOT DUP5 DUP5 PUSH2 0x1275 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1350 JUMPI PUSH2 0x1350 PUSH2 0x1261 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF41 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x12B8 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1380 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1395 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x13F8 JUMPI PUSH2 0x13F8 PUSH2 0x1261 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8B4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1442 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xF41 DUP2 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP INVALID 0x22 DUP6 CALLCODE SHR 0xF9 CHAINID DELEGATECALL CALL CODECOPY 0xF8 0x4D PUSH1 0xD1 0xBD TIMESTAMP 0xE4 SHL PUSH29 0xECBB3685384F294F426AC09F5F46A26469706673582212207F7B8606C1 NUMBER 0xD4 0xD0 0xD 0xEA COINBASE SSTORE MULMOD PUSH20 0xA7CC4E5550992310770E54F02C244F61351C6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"812:1499:49:-:0;;;949:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1032:6;-1:-1:-1;;;;;1958:29:54;;1950:102;;;;-1:-1:-1;;;1950:102:54;;830:2:88;1950:102:54;;;812:21:88;869:2;849:18;;;842:30;908:34;888:18;;;881:62;979:30;959:18;;;952:58;1027:19;;1950:102:54;;;;;;;;;-1:-1:-1;;;;;2058:15:54;;;;;1054:29:49;::::1;1046:91;;;::::0;-1:-1:-1;;;1046:91:49;;1259:2:88;1046:91:49::1;::::0;::::1;1241:21:88::0;1298:2;1278:18;;;1271:30;1337:34;1317:18;;;1310:62;-1:-1:-1;;;1388:18:88;;;1381:47;1445:19;;1046:91:49::1;1057:413:88::0;1046:91:49::1;1170:6;-1:-1:-1::0;;;;;1170:12:49::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1151:33:49::1;1159:6;-1:-1:-1::0;;;;;1151:33:49::1;;1143:97;;;::::0;-1:-1:-1;;;1143:97:49;;1949:2:88;1143:97:49::1;::::0;::::1;1931:21:88::0;1988:2;1968:18;;;1961:30;2027:34;2007:18;;;2000:62;2098:21;2078:18;;;2071:49;2137:19;;1143:97:49::1;1747:415:88::0;1143:97:49::1;-1:-1:-1::0;;;;;1246:15:49::1;;::::0;-1:-1:-1;812:1499:49;;14:147:88;-1:-1:-1;;;;;105:31:88;;95:42;;85:70;;151:1;148;141:12;85:70;14:147;:::o;166:457::-;285:6;293;346:2;334:9;325:7;321:23;317:32;314:52;;;362:1;359;352:12;314:52;394:9;388:16;413:47;454:5;413:47;:::i;:::-;529:2;514:18;;508:25;479:5;;-1:-1:-1;542:49:88;508:25;542:49;:::i;:::-;610:7;600:17;;;166:457;;;;;:::o;1475:267::-;1545:6;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1646:9;1640:16;1665:47;1706:5;1665:47;:::i;:::-;1731:5;1475:267;-1:-1:-1;;;1475:267:88:o;1747:415::-;812:1499:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_deinvest_10959":{"entryPoint":3534,"id":10959,"parameterSlots":1,"returnSlots":0},"@_deinvest_14739":{"entryPoint":4246,"id":14739,"parameterSlots":1,"returnSlots":0},"@_invest_10932":{"entryPoint":3797,"id":10932,"parameterSlots":1,"returnSlots":0},"@_invest_14707":{"entryPoint":4428,"id":14707,"parameterSlots":1,"returnSlots":0},"@_validateParameters_14467":{"entryPoint":3370,"id":14467,"parameterSlots":0,"returnSlots":0},"@connect_10909":{"entryPoint":2474,"id":10909,"parameterSlots":0,"returnSlots":0},"@connect_14518":{"entryPoint":3912,"id":14518,"parameterSlots":0,"returnSlots":0},"@deinvestAll_11025":{"entryPoint":2658,"id":11025,"parameterSlots":0,"returnSlots":1},"@diamondStorage_14442":{"entryPoint":null,"id":14442,"parameterSlots":0,"returnSlots":1},"@getInvestmentValue_11043":{"entryPoint":1647,"id":11043,"parameterSlots":0,"returnSlots":1},"@liquidityMax_14787":{"entryPoint":1464,"id":14787,"parameterSlots":0,"returnSlots":1},"@liquidityMiddle_14771":{"entryPoint":3087,"id":14771,"parameterSlots":0,"returnSlots":1},"@liquidityMin_14755":{"entryPoint":2303,"id":14755,"parameterSlots":0,"returnSlots":1},"@min_7926":{"entryPoint":3889,"id":7926,"parameterSlots":2,"returnSlots":1},"@rebalance_14628":{"entryPoint":2049,"id":14628,"parameterSlots":0,"returnSlots":0},"@recordEarnings_14566":{"entryPoint":1884,"id":14566,"parameterSlots":0,"returnSlots":1},"@refillWallet_14683":{"entryPoint":1148,"id":14683,"parameterSlots":1,"returnSlots":1},"@setLiquidityThresholds_14898":{"entryPoint":327,"id":14898,"parameterSlots":3,"returnSlots":0},"@supportsInterface_14922":{"entryPoint":1094,"id":14922,"parameterSlots":1,"returnSlots":1},"@toUint128_9152":{"entryPoint":3693,"id":9152,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":3266,"id":9452,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4611,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":5170,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":4570,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":4673,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint128":{"entryPoint":5228,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5020,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4966,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":4725,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":4952,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":4792,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5058,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int256":{"entryPoint":5081,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint128":{"entryPoint":5197,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5039,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4705,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IPolicyPool":{"entryPoint":5150,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9213:88","nodeType":"YulBlock","src":"0:9213:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"118:362:88","nodeType":"YulBlock","src":"118:362:88","statements":[{"body":{"nativeSrc":"164:16:88","nodeType":"YulBlock","src":"164:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"173:1:88","nodeType":"YulLiteral","src":"173:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"176:1:88","nodeType":"YulLiteral","src":"176:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"166:6:88","nodeType":"YulIdentifier","src":"166:6:88"},"nativeSrc":"166:12:88","nodeType":"YulFunctionCall","src":"166:12:88"},"nativeSrc":"166:12:88","nodeType":"YulExpressionStatement","src":"166:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"139:7:88","nodeType":"YulIdentifier","src":"139:7:88"},{"name":"headStart","nativeSrc":"148:9:88","nodeType":"YulIdentifier","src":"148:9:88"}],"functionName":{"name":"sub","nativeSrc":"135:3:88","nodeType":"YulIdentifier","src":"135:3:88"},"nativeSrc":"135:23:88","nodeType":"YulFunctionCall","src":"135:23:88"},{"kind":"number","nativeSrc":"160:2:88","nodeType":"YulLiteral","src":"160:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"131:3:88","nodeType":"YulIdentifier","src":"131:3:88"},"nativeSrc":"131:32:88","nodeType":"YulFunctionCall","src":"131:32:88"},"nativeSrc":"128:52:88","nodeType":"YulIf","src":"128:52:88"},{"nativeSrc":"189:14:88","nodeType":"YulVariableDeclaration","src":"189:14:88","value":{"kind":"number","nativeSrc":"202:1:88","nodeType":"YulLiteral","src":"202:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"193:5:88","nodeType":"YulTypedName","src":"193:5:88","type":""}]},{"nativeSrc":"212:32:88","nodeType":"YulAssignment","src":"212:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"234:9:88","nodeType":"YulIdentifier","src":"234:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"221:12:88","nodeType":"YulIdentifier","src":"221:12:88"},"nativeSrc":"221:23:88","nodeType":"YulFunctionCall","src":"221:23:88"},"variableNames":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"}]},{"nativeSrc":"253:15:88","nodeType":"YulAssignment","src":"253:15:88","value":{"name":"value","nativeSrc":"263:5:88","nodeType":"YulIdentifier","src":"263:5:88"},"variableNames":[{"name":"value0","nativeSrc":"253:6:88","nodeType":"YulIdentifier","src":"253:6:88"}]},{"nativeSrc":"277:16:88","nodeType":"YulVariableDeclaration","src":"277:16:88","value":{"kind":"number","nativeSrc":"292:1:88","nodeType":"YulLiteral","src":"292:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"281:7:88","nodeType":"YulTypedName","src":"281:7:88","type":""}]},{"nativeSrc":"302:43:88","nodeType":"YulAssignment","src":"302:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"330:9:88","nodeType":"YulIdentifier","src":"330:9:88"},{"kind":"number","nativeSrc":"341:2:88","nodeType":"YulLiteral","src":"341:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"326:3:88","nodeType":"YulIdentifier","src":"326:3:88"},"nativeSrc":"326:18:88","nodeType":"YulFunctionCall","src":"326:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"313:12:88","nodeType":"YulIdentifier","src":"313:12:88"},"nativeSrc":"313:32:88","nodeType":"YulFunctionCall","src":"313:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"302:7:88","nodeType":"YulIdentifier","src":"302:7:88"}]},{"nativeSrc":"354:17:88","nodeType":"YulAssignment","src":"354:17:88","value":{"name":"value_1","nativeSrc":"364:7:88","nodeType":"YulIdentifier","src":"364:7:88"},"variableNames":[{"name":"value1","nativeSrc":"354:6:88","nodeType":"YulIdentifier","src":"354:6:88"}]},{"nativeSrc":"380:16:88","nodeType":"YulVariableDeclaration","src":"380:16:88","value":{"kind":"number","nativeSrc":"395:1:88","nodeType":"YulLiteral","src":"395:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"384:7:88","nodeType":"YulTypedName","src":"384:7:88","type":""}]},{"nativeSrc":"405:43:88","nodeType":"YulAssignment","src":"405:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"433:9:88","nodeType":"YulIdentifier","src":"433:9:88"},{"kind":"number","nativeSrc":"444:2:88","nodeType":"YulLiteral","src":"444:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"429:3:88","nodeType":"YulIdentifier","src":"429:3:88"},"nativeSrc":"429:18:88","nodeType":"YulFunctionCall","src":"429:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"416:12:88","nodeType":"YulIdentifier","src":"416:12:88"},"nativeSrc":"416:32:88","nodeType":"YulFunctionCall","src":"416:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"405:7:88","nodeType":"YulIdentifier","src":"405:7:88"}]},{"nativeSrc":"457:17:88","nodeType":"YulAssignment","src":"457:17:88","value":{"name":"value_2","nativeSrc":"467:7:88","nodeType":"YulIdentifier","src":"467:7:88"},"variableNames":[{"name":"value2","nativeSrc":"457:6:88","nodeType":"YulIdentifier","src":"457:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nativeSrc":"14:466:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"68:9:88","nodeType":"YulTypedName","src":"68:9:88","type":""},{"name":"dataEnd","nativeSrc":"79:7:88","nodeType":"YulTypedName","src":"79:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"91:6:88","nodeType":"YulTypedName","src":"91:6:88","type":""},{"name":"value1","nativeSrc":"99:6:88","nodeType":"YulTypedName","src":"99:6:88","type":""},{"name":"value2","nativeSrc":"107:6:88","nodeType":"YulTypedName","src":"107:6:88","type":""}],"src":"14:466:88"},{"body":{"nativeSrc":"554:217:88","nodeType":"YulBlock","src":"554:217:88","statements":[{"body":{"nativeSrc":"600:16:88","nodeType":"YulBlock","src":"600:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"609:1:88","nodeType":"YulLiteral","src":"609:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"612:1:88","nodeType":"YulLiteral","src":"612:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"602:6:88","nodeType":"YulIdentifier","src":"602:6:88"},"nativeSrc":"602:12:88","nodeType":"YulFunctionCall","src":"602:12:88"},"nativeSrc":"602:12:88","nodeType":"YulExpressionStatement","src":"602:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"575:7:88","nodeType":"YulIdentifier","src":"575:7:88"},{"name":"headStart","nativeSrc":"584:9:88","nodeType":"YulIdentifier","src":"584:9:88"}],"functionName":{"name":"sub","nativeSrc":"571:3:88","nodeType":"YulIdentifier","src":"571:3:88"},"nativeSrc":"571:23:88","nodeType":"YulFunctionCall","src":"571:23:88"},{"kind":"number","nativeSrc":"596:2:88","nodeType":"YulLiteral","src":"596:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"567:3:88","nodeType":"YulIdentifier","src":"567:3:88"},"nativeSrc":"567:32:88","nodeType":"YulFunctionCall","src":"567:32:88"},"nativeSrc":"564:52:88","nodeType":"YulIf","src":"564:52:88"},{"nativeSrc":"625:36:88","nodeType":"YulVariableDeclaration","src":"625:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"651:9:88","nodeType":"YulIdentifier","src":"651:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"638:12:88","nodeType":"YulIdentifier","src":"638:12:88"},"nativeSrc":"638:23:88","nodeType":"YulFunctionCall","src":"638:23:88"},"variables":[{"name":"value","nativeSrc":"629:5:88","nodeType":"YulTypedName","src":"629:5:88","type":""}]},{"body":{"nativeSrc":"725:16:88","nodeType":"YulBlock","src":"725:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"734:1:88","nodeType":"YulLiteral","src":"734:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"737:1:88","nodeType":"YulLiteral","src":"737:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"727:6:88","nodeType":"YulIdentifier","src":"727:6:88"},"nativeSrc":"727:12:88","nodeType":"YulFunctionCall","src":"727:12:88"},"nativeSrc":"727:12:88","nodeType":"YulExpressionStatement","src":"727:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"683:5:88","nodeType":"YulIdentifier","src":"683:5:88"},{"arguments":[{"name":"value","nativeSrc":"694:5:88","nodeType":"YulIdentifier","src":"694:5:88"},{"arguments":[{"kind":"number","nativeSrc":"705:3:88","nodeType":"YulLiteral","src":"705:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"710:10:88","nodeType":"YulLiteral","src":"710:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:20:88","nodeType":"YulFunctionCall","src":"701:20:88"}],"functionName":{"name":"and","nativeSrc":"690:3:88","nodeType":"YulIdentifier","src":"690:3:88"},"nativeSrc":"690:32:88","nodeType":"YulFunctionCall","src":"690:32:88"}],"functionName":{"name":"eq","nativeSrc":"680:2:88","nodeType":"YulIdentifier","src":"680:2:88"},"nativeSrc":"680:43:88","nodeType":"YulFunctionCall","src":"680:43:88"}],"functionName":{"name":"iszero","nativeSrc":"673:6:88","nodeType":"YulIdentifier","src":"673:6:88"},"nativeSrc":"673:51:88","nodeType":"YulFunctionCall","src":"673:51:88"},"nativeSrc":"670:71:88","nodeType":"YulIf","src":"670:71:88"},{"nativeSrc":"750:15:88","nodeType":"YulAssignment","src":"750:15:88","value":{"name":"value","nativeSrc":"760:5:88","nodeType":"YulIdentifier","src":"760:5:88"},"variableNames":[{"name":"value0","nativeSrc":"750:6:88","nodeType":"YulIdentifier","src":"750:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"485:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"520:9:88","nodeType":"YulTypedName","src":"520:9:88","type":""},{"name":"dataEnd","nativeSrc":"531:7:88","nodeType":"YulTypedName","src":"531:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"543:6:88","nodeType":"YulTypedName","src":"543:6:88","type":""}],"src":"485:286:88"},{"body":{"nativeSrc":"871:92:88","nodeType":"YulBlock","src":"871:92:88","statements":[{"nativeSrc":"881:26:88","nodeType":"YulAssignment","src":"881:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"893:9:88","nodeType":"YulIdentifier","src":"893:9:88"},{"kind":"number","nativeSrc":"904:2:88","nodeType":"YulLiteral","src":"904:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"889:3:88","nodeType":"YulIdentifier","src":"889:3:88"},"nativeSrc":"889:18:88","nodeType":"YulFunctionCall","src":"889:18:88"},"variableNames":[{"name":"tail","nativeSrc":"881:4:88","nodeType":"YulIdentifier","src":"881:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"923:9:88","nodeType":"YulIdentifier","src":"923:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"948:6:88","nodeType":"YulIdentifier","src":"948:6:88"}],"functionName":{"name":"iszero","nativeSrc":"941:6:88","nodeType":"YulIdentifier","src":"941:6:88"},"nativeSrc":"941:14:88","nodeType":"YulFunctionCall","src":"941:14:88"}],"functionName":{"name":"iszero","nativeSrc":"934:6:88","nodeType":"YulIdentifier","src":"934:6:88"},"nativeSrc":"934:22:88","nodeType":"YulFunctionCall","src":"934:22:88"}],"functionName":{"name":"mstore","nativeSrc":"916:6:88","nodeType":"YulIdentifier","src":"916:6:88"},"nativeSrc":"916:41:88","nodeType":"YulFunctionCall","src":"916:41:88"},"nativeSrc":"916:41:88","nodeType":"YulExpressionStatement","src":"916:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"776:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"840:9:88","nodeType":"YulTypedName","src":"840:9:88","type":""},{"name":"value0","nativeSrc":"851:6:88","nodeType":"YulTypedName","src":"851:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"862:4:88","nodeType":"YulTypedName","src":"862:4:88","type":""}],"src":"776:187:88"},{"body":{"nativeSrc":"1038:156:88","nodeType":"YulBlock","src":"1038:156:88","statements":[{"body":{"nativeSrc":"1084:16:88","nodeType":"YulBlock","src":"1084:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1093:1:88","nodeType":"YulLiteral","src":"1093:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1096:1:88","nodeType":"YulLiteral","src":"1096:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1086:6:88","nodeType":"YulIdentifier","src":"1086:6:88"},"nativeSrc":"1086:12:88","nodeType":"YulFunctionCall","src":"1086:12:88"},"nativeSrc":"1086:12:88","nodeType":"YulExpressionStatement","src":"1086:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1059:7:88","nodeType":"YulIdentifier","src":"1059:7:88"},{"name":"headStart","nativeSrc":"1068:9:88","nodeType":"YulIdentifier","src":"1068:9:88"}],"functionName":{"name":"sub","nativeSrc":"1055:3:88","nodeType":"YulIdentifier","src":"1055:3:88"},"nativeSrc":"1055:23:88","nodeType":"YulFunctionCall","src":"1055:23:88"},{"kind":"number","nativeSrc":"1080:2:88","nodeType":"YulLiteral","src":"1080:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1051:3:88","nodeType":"YulIdentifier","src":"1051:3:88"},"nativeSrc":"1051:32:88","nodeType":"YulFunctionCall","src":"1051:32:88"},"nativeSrc":"1048:52:88","nodeType":"YulIf","src":"1048:52:88"},{"nativeSrc":"1109:14:88","nodeType":"YulVariableDeclaration","src":"1109:14:88","value":{"kind":"number","nativeSrc":"1122:1:88","nodeType":"YulLiteral","src":"1122:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1113:5:88","nodeType":"YulTypedName","src":"1113:5:88","type":""}]},{"nativeSrc":"1132:32:88","nodeType":"YulAssignment","src":"1132:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1154:9:88","nodeType":"YulIdentifier","src":"1154:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1141:12:88","nodeType":"YulIdentifier","src":"1141:12:88"},"nativeSrc":"1141:23:88","nodeType":"YulFunctionCall","src":"1141:23:88"},"variableNames":[{"name":"value","nativeSrc":"1132:5:88","nodeType":"YulIdentifier","src":"1132:5:88"}]},{"nativeSrc":"1173:15:88","nodeType":"YulAssignment","src":"1173:15:88","value":{"name":"value","nativeSrc":"1183:5:88","nodeType":"YulIdentifier","src":"1183:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1173:6:88","nodeType":"YulIdentifier","src":"1173:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"968:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1004:9:88","nodeType":"YulTypedName","src":"1004:9:88","type":""},{"name":"dataEnd","nativeSrc":"1015:7:88","nodeType":"YulTypedName","src":"1015:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1027:6:88","nodeType":"YulTypedName","src":"1027:6:88","type":""}],"src":"968:226:88"},{"body":{"nativeSrc":"1300:76:88","nodeType":"YulBlock","src":"1300:76:88","statements":[{"nativeSrc":"1310:26:88","nodeType":"YulAssignment","src":"1310:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1322:9:88","nodeType":"YulIdentifier","src":"1322:9:88"},{"kind":"number","nativeSrc":"1333:2:88","nodeType":"YulLiteral","src":"1333:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:88","nodeType":"YulIdentifier","src":"1318:3:88"},"nativeSrc":"1318:18:88","nodeType":"YulFunctionCall","src":"1318:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1310:4:88","nodeType":"YulIdentifier","src":"1310:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1352:9:88","nodeType":"YulIdentifier","src":"1352:9:88"},{"name":"value0","nativeSrc":"1363:6:88","nodeType":"YulIdentifier","src":"1363:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1345:6:88","nodeType":"YulIdentifier","src":"1345:6:88"},"nativeSrc":"1345:25:88","nodeType":"YulFunctionCall","src":"1345:25:88"},"nativeSrc":"1345:25:88","nodeType":"YulExpressionStatement","src":"1345:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1199:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1269:9:88","nodeType":"YulTypedName","src":"1269:9:88","type":""},{"name":"value0","nativeSrc":"1280:6:88","nodeType":"YulTypedName","src":"1280:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1291:4:88","nodeType":"YulTypedName","src":"1291:4:88","type":""}],"src":"1199:177:88"},{"body":{"nativeSrc":"1480:76:88","nodeType":"YulBlock","src":"1480:76:88","statements":[{"nativeSrc":"1490:26:88","nodeType":"YulAssignment","src":"1490:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1502:9:88","nodeType":"YulIdentifier","src":"1502:9:88"},{"kind":"number","nativeSrc":"1513:2:88","nodeType":"YulLiteral","src":"1513:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1498:3:88","nodeType":"YulIdentifier","src":"1498:3:88"},"nativeSrc":"1498:18:88","nodeType":"YulFunctionCall","src":"1498:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1490:4:88","nodeType":"YulIdentifier","src":"1490:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1532:9:88","nodeType":"YulIdentifier","src":"1532:9:88"},{"name":"value0","nativeSrc":"1543:6:88","nodeType":"YulIdentifier","src":"1543:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1525:6:88","nodeType":"YulIdentifier","src":"1525:6:88"},"nativeSrc":"1525:25:88","nodeType":"YulFunctionCall","src":"1525:25:88"},"nativeSrc":"1525:25:88","nodeType":"YulExpressionStatement","src":"1525:25:88"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nativeSrc":"1381:175:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1449:9:88","nodeType":"YulTypedName","src":"1449:9:88","type":""},{"name":"value0","nativeSrc":"1460:6:88","nodeType":"YulTypedName","src":"1460:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1471:4:88","nodeType":"YulTypedName","src":"1471:4:88","type":""}],"src":"1381:175:88"},{"body":{"nativeSrc":"1640:194:88","nodeType":"YulBlock","src":"1640:194:88","statements":[{"body":{"nativeSrc":"1686:16:88","nodeType":"YulBlock","src":"1686:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1695:1:88","nodeType":"YulLiteral","src":"1695:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1698:1:88","nodeType":"YulLiteral","src":"1698:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1688:6:88","nodeType":"YulIdentifier","src":"1688:6:88"},"nativeSrc":"1688:12:88","nodeType":"YulFunctionCall","src":"1688:12:88"},"nativeSrc":"1688:12:88","nodeType":"YulExpressionStatement","src":"1688:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1661:7:88","nodeType":"YulIdentifier","src":"1661:7:88"},{"name":"headStart","nativeSrc":"1670:9:88","nodeType":"YulIdentifier","src":"1670:9:88"}],"functionName":{"name":"sub","nativeSrc":"1657:3:88","nodeType":"YulIdentifier","src":"1657:3:88"},"nativeSrc":"1657:23:88","nodeType":"YulFunctionCall","src":"1657:23:88"},{"kind":"number","nativeSrc":"1682:2:88","nodeType":"YulLiteral","src":"1682:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1653:3:88","nodeType":"YulIdentifier","src":"1653:3:88"},"nativeSrc":"1653:32:88","nodeType":"YulFunctionCall","src":"1653:32:88"},"nativeSrc":"1650:52:88","nodeType":"YulIf","src":"1650:52:88"},{"nativeSrc":"1711:29:88","nodeType":"YulVariableDeclaration","src":"1711:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1730:9:88","nodeType":"YulIdentifier","src":"1730:9:88"}],"functionName":{"name":"mload","nativeSrc":"1724:5:88","nodeType":"YulIdentifier","src":"1724:5:88"},"nativeSrc":"1724:16:88","nodeType":"YulFunctionCall","src":"1724:16:88"},"variables":[{"name":"value","nativeSrc":"1715:5:88","nodeType":"YulTypedName","src":"1715:5:88","type":""}]},{"body":{"nativeSrc":"1788:16:88","nodeType":"YulBlock","src":"1788:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1797:1:88","nodeType":"YulLiteral","src":"1797:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1800:1:88","nodeType":"YulLiteral","src":"1800:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1790:6:88","nodeType":"YulIdentifier","src":"1790:6:88"},"nativeSrc":"1790:12:88","nodeType":"YulFunctionCall","src":"1790:12:88"},"nativeSrc":"1790:12:88","nodeType":"YulExpressionStatement","src":"1790:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1762:5:88","nodeType":"YulIdentifier","src":"1762:5:88"},{"arguments":[{"name":"value","nativeSrc":"1773:5:88","nodeType":"YulIdentifier","src":"1773:5:88"},{"kind":"number","nativeSrc":"1780:4:88","nodeType":"YulLiteral","src":"1780:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1769:3:88","nodeType":"YulIdentifier","src":"1769:3:88"},"nativeSrc":"1769:16:88","nodeType":"YulFunctionCall","src":"1769:16:88"}],"functionName":{"name":"eq","nativeSrc":"1759:2:88","nodeType":"YulIdentifier","src":"1759:2:88"},"nativeSrc":"1759:27:88","nodeType":"YulFunctionCall","src":"1759:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1752:6:88","nodeType":"YulIdentifier","src":"1752:6:88"},"nativeSrc":"1752:35:88","nodeType":"YulFunctionCall","src":"1752:35:88"},"nativeSrc":"1749:55:88","nodeType":"YulIf","src":"1749:55:88"},{"nativeSrc":"1813:15:88","nodeType":"YulAssignment","src":"1813:15:88","value":{"name":"value","nativeSrc":"1823:5:88","nodeType":"YulIdentifier","src":"1823:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1813:6:88","nodeType":"YulIdentifier","src":"1813:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"1561:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1606:9:88","nodeType":"YulTypedName","src":"1606:9:88","type":""},{"name":"dataEnd","nativeSrc":"1617:7:88","nodeType":"YulTypedName","src":"1617:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1629:6:88","nodeType":"YulTypedName","src":"1629:6:88","type":""}],"src":"1561:273:88"},{"body":{"nativeSrc":"1871:95:88","nodeType":"YulBlock","src":"1871:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1888:1:88","nodeType":"YulLiteral","src":"1888:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1895:3:88","nodeType":"YulLiteral","src":"1895:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1900:10:88","nodeType":"YulLiteral","src":"1900:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1891:3:88","nodeType":"YulIdentifier","src":"1891:3:88"},"nativeSrc":"1891:20:88","nodeType":"YulFunctionCall","src":"1891:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1881:6:88","nodeType":"YulIdentifier","src":"1881:6:88"},"nativeSrc":"1881:31:88","nodeType":"YulFunctionCall","src":"1881:31:88"},"nativeSrc":"1881:31:88","nodeType":"YulExpressionStatement","src":"1881:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1928:1:88","nodeType":"YulLiteral","src":"1928:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1931:4:88","nodeType":"YulLiteral","src":"1931:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1921:6:88","nodeType":"YulIdentifier","src":"1921:6:88"},"nativeSrc":"1921:15:88","nodeType":"YulFunctionCall","src":"1921:15:88"},"nativeSrc":"1921:15:88","nodeType":"YulExpressionStatement","src":"1921:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1952:1:88","nodeType":"YulLiteral","src":"1952:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1955:4:88","nodeType":"YulLiteral","src":"1955:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1945:6:88","nodeType":"YulIdentifier","src":"1945:6:88"},"nativeSrc":"1945:15:88","nodeType":"YulFunctionCall","src":"1945:15:88"},"nativeSrc":"1945:15:88","nodeType":"YulExpressionStatement","src":"1945:15:88"}]},"name":"panic_error_0x11","nativeSrc":"1839:127:88","nodeType":"YulFunctionDefinition","src":"1839:127:88"},{"body":{"nativeSrc":"2040:306:88","nodeType":"YulBlock","src":"2040:306:88","statements":[{"nativeSrc":"2050:10:88","nodeType":"YulAssignment","src":"2050:10:88","value":{"kind":"number","nativeSrc":"2059:1:88","nodeType":"YulLiteral","src":"2059:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2050:5:88","nodeType":"YulIdentifier","src":"2050:5:88"}]},{"nativeSrc":"2069:13:88","nodeType":"YulAssignment","src":"2069:13:88","value":{"name":"_base","nativeSrc":"2077:5:88","nodeType":"YulIdentifier","src":"2077:5:88"},"variableNames":[{"name":"base","nativeSrc":"2069:4:88","nodeType":"YulIdentifier","src":"2069:4:88"}]},{"body":{"nativeSrc":"2127:213:88","nodeType":"YulBlock","src":"2127:213:88","statements":[{"body":{"nativeSrc":"2169:22:88","nodeType":"YulBlock","src":"2169:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2171:16:88","nodeType":"YulIdentifier","src":"2171:16:88"},"nativeSrc":"2171:18:88","nodeType":"YulFunctionCall","src":"2171:18:88"},"nativeSrc":"2171:18:88","nodeType":"YulExpressionStatement","src":"2171:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"2147:4:88","nodeType":"YulIdentifier","src":"2147:4:88"},{"arguments":[{"name":"max","nativeSrc":"2157:3:88","nodeType":"YulIdentifier","src":"2157:3:88"},{"name":"base","nativeSrc":"2162:4:88","nodeType":"YulIdentifier","src":"2162:4:88"}],"functionName":{"name":"div","nativeSrc":"2153:3:88","nodeType":"YulIdentifier","src":"2153:3:88"},"nativeSrc":"2153:14:88","nodeType":"YulFunctionCall","src":"2153:14:88"}],"functionName":{"name":"gt","nativeSrc":"2144:2:88","nodeType":"YulIdentifier","src":"2144:2:88"},"nativeSrc":"2144:24:88","nodeType":"YulFunctionCall","src":"2144:24:88"},"nativeSrc":"2141:50:88","nodeType":"YulIf","src":"2141:50:88"},{"body":{"nativeSrc":"2224:29:88","nodeType":"YulBlock","src":"2224:29:88","statements":[{"nativeSrc":"2226:25:88","nodeType":"YulAssignment","src":"2226:25:88","value":{"arguments":[{"name":"power","nativeSrc":"2239:5:88","nodeType":"YulIdentifier","src":"2239:5:88"},{"name":"base","nativeSrc":"2246:4:88","nodeType":"YulIdentifier","src":"2246:4:88"}],"functionName":{"name":"mul","nativeSrc":"2235:3:88","nodeType":"YulIdentifier","src":"2235:3:88"},"nativeSrc":"2235:16:88","nodeType":"YulFunctionCall","src":"2235:16:88"},"variableNames":[{"name":"power","nativeSrc":"2226:5:88","nodeType":"YulIdentifier","src":"2226:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2211:8:88","nodeType":"YulIdentifier","src":"2211:8:88"},{"kind":"number","nativeSrc":"2221:1:88","nodeType":"YulLiteral","src":"2221:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2207:3:88","nodeType":"YulIdentifier","src":"2207:3:88"},"nativeSrc":"2207:16:88","nodeType":"YulFunctionCall","src":"2207:16:88"},"nativeSrc":"2204:49:88","nodeType":"YulIf","src":"2204:49:88"},{"nativeSrc":"2266:23:88","nodeType":"YulAssignment","src":"2266:23:88","value":{"arguments":[{"name":"base","nativeSrc":"2278:4:88","nodeType":"YulIdentifier","src":"2278:4:88"},{"name":"base","nativeSrc":"2284:4:88","nodeType":"YulIdentifier","src":"2284:4:88"}],"functionName":{"name":"mul","nativeSrc":"2274:3:88","nodeType":"YulIdentifier","src":"2274:3:88"},"nativeSrc":"2274:15:88","nodeType":"YulFunctionCall","src":"2274:15:88"},"variableNames":[{"name":"base","nativeSrc":"2266:4:88","nodeType":"YulIdentifier","src":"2266:4:88"}]},{"nativeSrc":"2302:28:88","nodeType":"YulAssignment","src":"2302:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"2318:1:88","nodeType":"YulLiteral","src":"2318:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"2321:8:88","nodeType":"YulIdentifier","src":"2321:8:88"}],"functionName":{"name":"shr","nativeSrc":"2314:3:88","nodeType":"YulIdentifier","src":"2314:3:88"},"nativeSrc":"2314:16:88","nodeType":"YulFunctionCall","src":"2314:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"2302:8:88","nodeType":"YulIdentifier","src":"2302:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2102:8:88","nodeType":"YulIdentifier","src":"2102:8:88"},{"kind":"number","nativeSrc":"2112:1:88","nodeType":"YulLiteral","src":"2112:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"2099:2:88","nodeType":"YulIdentifier","src":"2099:2:88"},"nativeSrc":"2099:15:88","nodeType":"YulFunctionCall","src":"2099:15:88"},"nativeSrc":"2091:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"2115:3:88","nodeType":"YulBlock","src":"2115:3:88","statements":[]},"pre":{"nativeSrc":"2095:3:88","nodeType":"YulBlock","src":"2095:3:88","statements":[]},"src":"2091:249:88"}]},"name":"checked_exp_helper","nativeSrc":"1971:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"1999:5:88","nodeType":"YulTypedName","src":"1999:5:88","type":""},{"name":"exponent","nativeSrc":"2006:8:88","nodeType":"YulTypedName","src":"2006:8:88","type":""},{"name":"max","nativeSrc":"2016:3:88","nodeType":"YulTypedName","src":"2016:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2024:5:88","nodeType":"YulTypedName","src":"2024:5:88","type":""},{"name":"base","nativeSrc":"2031:4:88","nodeType":"YulTypedName","src":"2031:4:88","type":""}],"src":"1971:375:88"},{"body":{"nativeSrc":"2410:843:88","nodeType":"YulBlock","src":"2410:843:88","statements":[{"body":{"nativeSrc":"2448:52:88","nodeType":"YulBlock","src":"2448:52:88","statements":[{"nativeSrc":"2462:10:88","nodeType":"YulAssignment","src":"2462:10:88","value":{"kind":"number","nativeSrc":"2471:1:88","nodeType":"YulLiteral","src":"2471:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2462:5:88","nodeType":"YulIdentifier","src":"2462:5:88"}]},{"nativeSrc":"2485:5:88","nodeType":"YulLeave","src":"2485:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2430:8:88","nodeType":"YulIdentifier","src":"2430:8:88"}],"functionName":{"name":"iszero","nativeSrc":"2423:6:88","nodeType":"YulIdentifier","src":"2423:6:88"},"nativeSrc":"2423:16:88","nodeType":"YulFunctionCall","src":"2423:16:88"},"nativeSrc":"2420:80:88","nodeType":"YulIf","src":"2420:80:88"},{"body":{"nativeSrc":"2533:52:88","nodeType":"YulBlock","src":"2533:52:88","statements":[{"nativeSrc":"2547:10:88","nodeType":"YulAssignment","src":"2547:10:88","value":{"kind":"number","nativeSrc":"2556:1:88","nodeType":"YulLiteral","src":"2556:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"2547:5:88","nodeType":"YulIdentifier","src":"2547:5:88"}]},{"nativeSrc":"2570:5:88","nodeType":"YulLeave","src":"2570:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"2519:4:88","nodeType":"YulIdentifier","src":"2519:4:88"}],"functionName":{"name":"iszero","nativeSrc":"2512:6:88","nodeType":"YulIdentifier","src":"2512:6:88"},"nativeSrc":"2512:12:88","nodeType":"YulFunctionCall","src":"2512:12:88"},"nativeSrc":"2509:76:88","nodeType":"YulIf","src":"2509:76:88"},{"cases":[{"body":{"nativeSrc":"2621:52:88","nodeType":"YulBlock","src":"2621:52:88","statements":[{"nativeSrc":"2635:10:88","nodeType":"YulAssignment","src":"2635:10:88","value":{"kind":"number","nativeSrc":"2644:1:88","nodeType":"YulLiteral","src":"2644:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2635:5:88","nodeType":"YulIdentifier","src":"2635:5:88"}]},{"nativeSrc":"2658:5:88","nodeType":"YulLeave","src":"2658:5:88"}]},"nativeSrc":"2614:59:88","nodeType":"YulCase","src":"2614:59:88","value":{"kind":"number","nativeSrc":"2619:1:88","nodeType":"YulLiteral","src":"2619:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"2689:167:88","nodeType":"YulBlock","src":"2689:167:88","statements":[{"body":{"nativeSrc":"2724:22:88","nodeType":"YulBlock","src":"2724:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2726:16:88","nodeType":"YulIdentifier","src":"2726:16:88"},"nativeSrc":"2726:18:88","nodeType":"YulFunctionCall","src":"2726:18:88"},"nativeSrc":"2726:18:88","nodeType":"YulExpressionStatement","src":"2726:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2709:8:88","nodeType":"YulIdentifier","src":"2709:8:88"},{"kind":"number","nativeSrc":"2719:3:88","nodeType":"YulLiteral","src":"2719:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"2706:2:88","nodeType":"YulIdentifier","src":"2706:2:88"},"nativeSrc":"2706:17:88","nodeType":"YulFunctionCall","src":"2706:17:88"},"nativeSrc":"2703:43:88","nodeType":"YulIf","src":"2703:43:88"},{"nativeSrc":"2759:25:88","nodeType":"YulAssignment","src":"2759:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"2772:8:88","nodeType":"YulIdentifier","src":"2772:8:88"},{"kind":"number","nativeSrc":"2782:1:88","nodeType":"YulLiteral","src":"2782:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2768:3:88","nodeType":"YulIdentifier","src":"2768:3:88"},"nativeSrc":"2768:16:88","nodeType":"YulFunctionCall","src":"2768:16:88"},"variableNames":[{"name":"power","nativeSrc":"2759:5:88","nodeType":"YulIdentifier","src":"2759:5:88"}]},{"nativeSrc":"2797:11:88","nodeType":"YulVariableDeclaration","src":"2797:11:88","value":{"kind":"number","nativeSrc":"2807:1:88","nodeType":"YulLiteral","src":"2807:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2801:2:88","nodeType":"YulTypedName","src":"2801:2:88","type":""}]},{"nativeSrc":"2821:7:88","nodeType":"YulAssignment","src":"2821:7:88","value":{"kind":"number","nativeSrc":"2827:1:88","nodeType":"YulLiteral","src":"2827:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"2821:2:88","nodeType":"YulIdentifier","src":"2821:2:88"}]},{"nativeSrc":"2841:5:88","nodeType":"YulLeave","src":"2841:5:88"}]},"nativeSrc":"2682:174:88","nodeType":"YulCase","src":"2682:174:88","value":{"kind":"number","nativeSrc":"2687:1:88","nodeType":"YulLiteral","src":"2687:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"2601:4:88","nodeType":"YulIdentifier","src":"2601:4:88"},"nativeSrc":"2594:262:88","nodeType":"YulSwitch","src":"2594:262:88"},{"body":{"nativeSrc":"2954:114:88","nodeType":"YulBlock","src":"2954:114:88","statements":[{"nativeSrc":"2968:28:88","nodeType":"YulAssignment","src":"2968:28:88","value":{"arguments":[{"name":"base","nativeSrc":"2981:4:88","nodeType":"YulIdentifier","src":"2981:4:88"},{"name":"exponent","nativeSrc":"2987:8:88","nodeType":"YulIdentifier","src":"2987:8:88"}],"functionName":{"name":"exp","nativeSrc":"2977:3:88","nodeType":"YulIdentifier","src":"2977:3:88"},"nativeSrc":"2977:19:88","nodeType":"YulFunctionCall","src":"2977:19:88"},"variableNames":[{"name":"power","nativeSrc":"2968:5:88","nodeType":"YulIdentifier","src":"2968:5:88"}]},{"nativeSrc":"3009:11:88","nodeType":"YulVariableDeclaration","src":"3009:11:88","value":{"kind":"number","nativeSrc":"3019:1:88","nodeType":"YulLiteral","src":"3019:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"3013:2:88","nodeType":"YulTypedName","src":"3013:2:88","type":""}]},{"nativeSrc":"3033:7:88","nodeType":"YulAssignment","src":"3033:7:88","value":{"kind":"number","nativeSrc":"3039:1:88","nodeType":"YulLiteral","src":"3039:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"3033:2:88","nodeType":"YulIdentifier","src":"3033:2:88"}]},{"nativeSrc":"3053:5:88","nodeType":"YulLeave","src":"3053:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2878:4:88","nodeType":"YulIdentifier","src":"2878:4:88"},{"kind":"number","nativeSrc":"2884:2:88","nodeType":"YulLiteral","src":"2884:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"2875:2:88","nodeType":"YulIdentifier","src":"2875:2:88"},"nativeSrc":"2875:12:88","nodeType":"YulFunctionCall","src":"2875:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"2892:8:88","nodeType":"YulIdentifier","src":"2892:8:88"},{"kind":"number","nativeSrc":"2902:2:88","nodeType":"YulLiteral","src":"2902:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"2889:2:88","nodeType":"YulIdentifier","src":"2889:2:88"},"nativeSrc":"2889:16:88","nodeType":"YulFunctionCall","src":"2889:16:88"}],"functionName":{"name":"and","nativeSrc":"2871:3:88","nodeType":"YulIdentifier","src":"2871:3:88"},"nativeSrc":"2871:35:88","nodeType":"YulFunctionCall","src":"2871:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2915:4:88","nodeType":"YulIdentifier","src":"2915:4:88"},{"kind":"number","nativeSrc":"2921:3:88","nodeType":"YulLiteral","src":"2921:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"2912:2:88","nodeType":"YulIdentifier","src":"2912:2:88"},"nativeSrc":"2912:13:88","nodeType":"YulFunctionCall","src":"2912:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"2930:8:88","nodeType":"YulIdentifier","src":"2930:8:88"},{"kind":"number","nativeSrc":"2940:2:88","nodeType":"YulLiteral","src":"2940:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2927:2:88","nodeType":"YulIdentifier","src":"2927:2:88"},"nativeSrc":"2927:16:88","nodeType":"YulFunctionCall","src":"2927:16:88"}],"functionName":{"name":"and","nativeSrc":"2908:3:88","nodeType":"YulIdentifier","src":"2908:3:88"},"nativeSrc":"2908:36:88","nodeType":"YulFunctionCall","src":"2908:36:88"}],"functionName":{"name":"or","nativeSrc":"2868:2:88","nodeType":"YulIdentifier","src":"2868:2:88"},"nativeSrc":"2868:77:88","nodeType":"YulFunctionCall","src":"2868:77:88"},"nativeSrc":"2865:203:88","nodeType":"YulIf","src":"2865:203:88"},{"nativeSrc":"3077:65:88","nodeType":"YulVariableDeclaration","src":"3077:65:88","value":{"arguments":[{"name":"base","nativeSrc":"3119:4:88","nodeType":"YulIdentifier","src":"3119:4:88"},{"name":"exponent","nativeSrc":"3125:8:88","nodeType":"YulIdentifier","src":"3125:8:88"},{"arguments":[{"kind":"number","nativeSrc":"3139:1:88","nodeType":"YulLiteral","src":"3139:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3135:3:88","nodeType":"YulIdentifier","src":"3135:3:88"},"nativeSrc":"3135:6:88","nodeType":"YulFunctionCall","src":"3135:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"3100:18:88","nodeType":"YulIdentifier","src":"3100:18:88"},"nativeSrc":"3100:42:88","nodeType":"YulFunctionCall","src":"3100:42:88"},"variables":[{"name":"power_1","nativeSrc":"3081:7:88","nodeType":"YulTypedName","src":"3081:7:88","type":""},{"name":"base_1","nativeSrc":"3090:6:88","nodeType":"YulTypedName","src":"3090:6:88","type":""}]},{"body":{"nativeSrc":"3187:22:88","nodeType":"YulBlock","src":"3187:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"3189:16:88","nodeType":"YulIdentifier","src":"3189:16:88"},"nativeSrc":"3189:18:88","nodeType":"YulFunctionCall","src":"3189:18:88"},"nativeSrc":"3189:18:88","nodeType":"YulExpressionStatement","src":"3189:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"3157:7:88","nodeType":"YulIdentifier","src":"3157:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3174:1:88","nodeType":"YulLiteral","src":"3174:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3170:3:88","nodeType":"YulIdentifier","src":"3170:3:88"},"nativeSrc":"3170:6:88","nodeType":"YulFunctionCall","src":"3170:6:88"},{"name":"base_1","nativeSrc":"3178:6:88","nodeType":"YulIdentifier","src":"3178:6:88"}],"functionName":{"name":"div","nativeSrc":"3166:3:88","nodeType":"YulIdentifier","src":"3166:3:88"},"nativeSrc":"3166:19:88","nodeType":"YulFunctionCall","src":"3166:19:88"}],"functionName":{"name":"gt","nativeSrc":"3154:2:88","nodeType":"YulIdentifier","src":"3154:2:88"},"nativeSrc":"3154:32:88","nodeType":"YulFunctionCall","src":"3154:32:88"},"nativeSrc":"3151:58:88","nodeType":"YulIf","src":"3151:58:88"},{"nativeSrc":"3218:29:88","nodeType":"YulAssignment","src":"3218:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"3231:7:88","nodeType":"YulIdentifier","src":"3231:7:88"},{"name":"base_1","nativeSrc":"3240:6:88","nodeType":"YulIdentifier","src":"3240:6:88"}],"functionName":{"name":"mul","nativeSrc":"3227:3:88","nodeType":"YulIdentifier","src":"3227:3:88"},"nativeSrc":"3227:20:88","nodeType":"YulFunctionCall","src":"3227:20:88"},"variableNames":[{"name":"power","nativeSrc":"3218:5:88","nodeType":"YulIdentifier","src":"3218:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"2351:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"2381:4:88","nodeType":"YulTypedName","src":"2381:4:88","type":""},{"name":"exponent","nativeSrc":"2387:8:88","nodeType":"YulTypedName","src":"2387:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2400:5:88","nodeType":"YulTypedName","src":"2400:5:88","type":""}],"src":"2351:902:88"},{"body":{"nativeSrc":"3326:72:88","nodeType":"YulBlock","src":"3326:72:88","statements":[{"nativeSrc":"3336:56:88","nodeType":"YulAssignment","src":"3336:56:88","value":{"arguments":[{"name":"base","nativeSrc":"3366:4:88","nodeType":"YulIdentifier","src":"3366:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"3376:8:88","nodeType":"YulIdentifier","src":"3376:8:88"},{"kind":"number","nativeSrc":"3386:4:88","nodeType":"YulLiteral","src":"3386:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3372:3:88","nodeType":"YulIdentifier","src":"3372:3:88"},"nativeSrc":"3372:19:88","nodeType":"YulFunctionCall","src":"3372:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"3345:20:88","nodeType":"YulIdentifier","src":"3345:20:88"},"nativeSrc":"3345:47:88","nodeType":"YulFunctionCall","src":"3345:47:88"},"variableNames":[{"name":"power","nativeSrc":"3336:5:88","nodeType":"YulIdentifier","src":"3336:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"3258:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"3297:4:88","nodeType":"YulTypedName","src":"3297:4:88","type":""},{"name":"exponent","nativeSrc":"3303:8:88","nodeType":"YulTypedName","src":"3303:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"3316:5:88","nodeType":"YulTypedName","src":"3316:5:88","type":""}],"src":"3258:140:88"},{"body":{"nativeSrc":"3449:171:88","nodeType":"YulBlock","src":"3449:171:88","statements":[{"body":{"nativeSrc":"3480:111:88","nodeType":"YulBlock","src":"3480:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3501:1:88","nodeType":"YulLiteral","src":"3501:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3508:3:88","nodeType":"YulLiteral","src":"3508:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3513:10:88","nodeType":"YulLiteral","src":"3513:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3504:3:88","nodeType":"YulIdentifier","src":"3504:3:88"},"nativeSrc":"3504:20:88","nodeType":"YulFunctionCall","src":"3504:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3494:6:88","nodeType":"YulIdentifier","src":"3494:6:88"},"nativeSrc":"3494:31:88","nodeType":"YulFunctionCall","src":"3494:31:88"},"nativeSrc":"3494:31:88","nodeType":"YulExpressionStatement","src":"3494:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3545:1:88","nodeType":"YulLiteral","src":"3545:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3548:4:88","nodeType":"YulLiteral","src":"3548:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3538:6:88","nodeType":"YulIdentifier","src":"3538:6:88"},"nativeSrc":"3538:15:88","nodeType":"YulFunctionCall","src":"3538:15:88"},"nativeSrc":"3538:15:88","nodeType":"YulExpressionStatement","src":"3538:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3573:1:88","nodeType":"YulLiteral","src":"3573:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3576:4:88","nodeType":"YulLiteral","src":"3576:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3566:6:88","nodeType":"YulIdentifier","src":"3566:6:88"},"nativeSrc":"3566:15:88","nodeType":"YulFunctionCall","src":"3566:15:88"},"nativeSrc":"3566:15:88","nodeType":"YulExpressionStatement","src":"3566:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3469:1:88","nodeType":"YulIdentifier","src":"3469:1:88"}],"functionName":{"name":"iszero","nativeSrc":"3462:6:88","nodeType":"YulIdentifier","src":"3462:6:88"},"nativeSrc":"3462:9:88","nodeType":"YulFunctionCall","src":"3462:9:88"},"nativeSrc":"3459:132:88","nodeType":"YulIf","src":"3459:132:88"},{"nativeSrc":"3600:14:88","nodeType":"YulAssignment","src":"3600:14:88","value":{"arguments":[{"name":"x","nativeSrc":"3609:1:88","nodeType":"YulIdentifier","src":"3609:1:88"},{"name":"y","nativeSrc":"3612:1:88","nodeType":"YulIdentifier","src":"3612:1:88"}],"functionName":{"name":"div","nativeSrc":"3605:3:88","nodeType":"YulIdentifier","src":"3605:3:88"},"nativeSrc":"3605:9:88","nodeType":"YulFunctionCall","src":"3605:9:88"},"variableNames":[{"name":"r","nativeSrc":"3600:1:88","nodeType":"YulIdentifier","src":"3600:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3403:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3434:1:88","nodeType":"YulTypedName","src":"3434:1:88","type":""},{"name":"y","nativeSrc":"3437:1:88","nodeType":"YulTypedName","src":"3437:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3443:1:88","nodeType":"YulTypedName","src":"3443:1:88","type":""}],"src":"3403:217:88"},{"body":{"nativeSrc":"3657:95:88","nodeType":"YulBlock","src":"3657:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3674:1:88","nodeType":"YulLiteral","src":"3674:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3681:3:88","nodeType":"YulLiteral","src":"3681:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3686:10:88","nodeType":"YulLiteral","src":"3686:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3677:3:88","nodeType":"YulIdentifier","src":"3677:3:88"},"nativeSrc":"3677:20:88","nodeType":"YulFunctionCall","src":"3677:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3667:6:88","nodeType":"YulIdentifier","src":"3667:6:88"},"nativeSrc":"3667:31:88","nodeType":"YulFunctionCall","src":"3667:31:88"},"nativeSrc":"3667:31:88","nodeType":"YulExpressionStatement","src":"3667:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3714:1:88","nodeType":"YulLiteral","src":"3714:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3717:4:88","nodeType":"YulLiteral","src":"3717:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"3707:6:88","nodeType":"YulIdentifier","src":"3707:6:88"},"nativeSrc":"3707:15:88","nodeType":"YulFunctionCall","src":"3707:15:88"},"nativeSrc":"3707:15:88","nodeType":"YulExpressionStatement","src":"3707:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3738:1:88","nodeType":"YulLiteral","src":"3738:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3741:4:88","nodeType":"YulLiteral","src":"3741:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3731:6:88","nodeType":"YulIdentifier","src":"3731:6:88"},"nativeSrc":"3731:15:88","nodeType":"YulFunctionCall","src":"3731:15:88"},"nativeSrc":"3731:15:88","nodeType":"YulExpressionStatement","src":"3731:15:88"}]},"name":"panic_error_0x21","nativeSrc":"3625:127:88","nodeType":"YulFunctionDefinition","src":"3625:127:88"},{"body":{"nativeSrc":"3858:102:88","nodeType":"YulBlock","src":"3858:102:88","statements":[{"nativeSrc":"3868:26:88","nodeType":"YulAssignment","src":"3868:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3880:9:88","nodeType":"YulIdentifier","src":"3880:9:88"},{"kind":"number","nativeSrc":"3891:2:88","nodeType":"YulLiteral","src":"3891:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3876:3:88","nodeType":"YulIdentifier","src":"3876:3:88"},"nativeSrc":"3876:18:88","nodeType":"YulFunctionCall","src":"3876:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3868:4:88","nodeType":"YulIdentifier","src":"3868:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3910:9:88","nodeType":"YulIdentifier","src":"3910:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3925:6:88","nodeType":"YulIdentifier","src":"3925:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3941:3:88","nodeType":"YulLiteral","src":"3941:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3946:1:88","nodeType":"YulLiteral","src":"3946:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3937:3:88","nodeType":"YulIdentifier","src":"3937:3:88"},"nativeSrc":"3937:11:88","nodeType":"YulFunctionCall","src":"3937:11:88"},{"kind":"number","nativeSrc":"3950:1:88","nodeType":"YulLiteral","src":"3950:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3933:3:88","nodeType":"YulIdentifier","src":"3933:3:88"},"nativeSrc":"3933:19:88","nodeType":"YulFunctionCall","src":"3933:19:88"}],"functionName":{"name":"and","nativeSrc":"3921:3:88","nodeType":"YulIdentifier","src":"3921:3:88"},"nativeSrc":"3921:32:88","nodeType":"YulFunctionCall","src":"3921:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3903:6:88","nodeType":"YulIdentifier","src":"3903:6:88"},"nativeSrc":"3903:51:88","nodeType":"YulFunctionCall","src":"3903:51:88"},"nativeSrc":"3903:51:88","nodeType":"YulExpressionStatement","src":"3903:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3757:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3827:9:88","nodeType":"YulTypedName","src":"3827:9:88","type":""},{"name":"value0","nativeSrc":"3838:6:88","nodeType":"YulTypedName","src":"3838:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3849:4:88","nodeType":"YulTypedName","src":"3849:4:88","type":""}],"src":"3757:203:88"},{"body":{"nativeSrc":"4046:103:88","nodeType":"YulBlock","src":"4046:103:88","statements":[{"body":{"nativeSrc":"4092:16:88","nodeType":"YulBlock","src":"4092:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4101:1:88","nodeType":"YulLiteral","src":"4101:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4104:1:88","nodeType":"YulLiteral","src":"4104:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4094:6:88","nodeType":"YulIdentifier","src":"4094:6:88"},"nativeSrc":"4094:12:88","nodeType":"YulFunctionCall","src":"4094:12:88"},"nativeSrc":"4094:12:88","nodeType":"YulExpressionStatement","src":"4094:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4067:7:88","nodeType":"YulIdentifier","src":"4067:7:88"},{"name":"headStart","nativeSrc":"4076:9:88","nodeType":"YulIdentifier","src":"4076:9:88"}],"functionName":{"name":"sub","nativeSrc":"4063:3:88","nodeType":"YulIdentifier","src":"4063:3:88"},"nativeSrc":"4063:23:88","nodeType":"YulFunctionCall","src":"4063:23:88"},{"kind":"number","nativeSrc":"4088:2:88","nodeType":"YulLiteral","src":"4088:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4059:3:88","nodeType":"YulIdentifier","src":"4059:3:88"},"nativeSrc":"4059:32:88","nodeType":"YulFunctionCall","src":"4059:32:88"},"nativeSrc":"4056:52:88","nodeType":"YulIf","src":"4056:52:88"},{"nativeSrc":"4117:26:88","nodeType":"YulAssignment","src":"4117:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4133:9:88","nodeType":"YulIdentifier","src":"4133:9:88"}],"functionName":{"name":"mload","nativeSrc":"4127:5:88","nodeType":"YulIdentifier","src":"4127:5:88"},"nativeSrc":"4127:16:88","nodeType":"YulFunctionCall","src":"4127:16:88"},"variableNames":[{"name":"value0","nativeSrc":"4117:6:88","nodeType":"YulIdentifier","src":"4117:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"3965:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4012:9:88","nodeType":"YulTypedName","src":"4012:9:88","type":""},{"name":"dataEnd","nativeSrc":"4023:7:88","nodeType":"YulTypedName","src":"4023:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4035:6:88","nodeType":"YulTypedName","src":"4035:6:88","type":""}],"src":"3965:184:88"},{"body":{"nativeSrc":"4328:235:88","nodeType":"YulBlock","src":"4328:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4345:9:88","nodeType":"YulIdentifier","src":"4345:9:88"},{"kind":"number","nativeSrc":"4356:2:88","nodeType":"YulLiteral","src":"4356:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4338:6:88","nodeType":"YulIdentifier","src":"4338:6:88"},"nativeSrc":"4338:21:88","nodeType":"YulFunctionCall","src":"4338:21:88"},"nativeSrc":"4338:21:88","nodeType":"YulExpressionStatement","src":"4338:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4379:9:88","nodeType":"YulIdentifier","src":"4379:9:88"},{"kind":"number","nativeSrc":"4390:2:88","nodeType":"YulLiteral","src":"4390:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:88","nodeType":"YulIdentifier","src":"4375:3:88"},"nativeSrc":"4375:18:88","nodeType":"YulFunctionCall","src":"4375:18:88"},{"kind":"number","nativeSrc":"4395:2:88","nodeType":"YulLiteral","src":"4395:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"4368:6:88","nodeType":"YulIdentifier","src":"4368:6:88"},"nativeSrc":"4368:30:88","nodeType":"YulFunctionCall","src":"4368:30:88"},"nativeSrc":"4368:30:88","nodeType":"YulExpressionStatement","src":"4368:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4418:9:88","nodeType":"YulIdentifier","src":"4418:9:88"},{"kind":"number","nativeSrc":"4429:2:88","nodeType":"YulLiteral","src":"4429:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4414:3:88","nodeType":"YulIdentifier","src":"4414:3:88"},"nativeSrc":"4414:18:88","nodeType":"YulFunctionCall","src":"4414:18:88"},{"hexValue":"4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f72","kind":"string","nativeSrc":"4434:34:88","nodeType":"YulLiteral","src":"4434:34:88","type":"","value":"No need to refill the wallet for"}],"functionName":{"name":"mstore","nativeSrc":"4407:6:88","nodeType":"YulIdentifier","src":"4407:6:88"},"nativeSrc":"4407:62:88","nodeType":"YulFunctionCall","src":"4407:62:88"},"nativeSrc":"4407:62:88","nodeType":"YulExpressionStatement","src":"4407:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4489:9:88","nodeType":"YulIdentifier","src":"4489:9:88"},{"kind":"number","nativeSrc":"4500:2:88","nodeType":"YulLiteral","src":"4500:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4485:3:88","nodeType":"YulIdentifier","src":"4485:3:88"},"nativeSrc":"4485:18:88","nodeType":"YulFunctionCall","src":"4485:18:88"},{"hexValue":"2074686973207061796d656e74","kind":"string","nativeSrc":"4505:15:88","nodeType":"YulLiteral","src":"4505:15:88","type":"","value":" this payment"}],"functionName":{"name":"mstore","nativeSrc":"4478:6:88","nodeType":"YulIdentifier","src":"4478:6:88"},"nativeSrc":"4478:43:88","nodeType":"YulFunctionCall","src":"4478:43:88"},"nativeSrc":"4478:43:88","nodeType":"YulExpressionStatement","src":"4478:43:88"},{"nativeSrc":"4530:27:88","nodeType":"YulAssignment","src":"4530:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4542:9:88","nodeType":"YulIdentifier","src":"4542:9:88"},{"kind":"number","nativeSrc":"4553:3:88","nodeType":"YulLiteral","src":"4553:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4538:3:88","nodeType":"YulIdentifier","src":"4538:3:88"},"nativeSrc":"4538:19:88","nodeType":"YulFunctionCall","src":"4538:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4530:4:88","nodeType":"YulIdentifier","src":"4530:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4154:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4305:9:88","nodeType":"YulTypedName","src":"4305:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4319:4:88","nodeType":"YulTypedName","src":"4319:4:88","type":""}],"src":"4154:409:88"},{"body":{"nativeSrc":"4616:77:88","nodeType":"YulBlock","src":"4616:77:88","statements":[{"nativeSrc":"4626:16:88","nodeType":"YulAssignment","src":"4626:16:88","value":{"arguments":[{"name":"x","nativeSrc":"4637:1:88","nodeType":"YulIdentifier","src":"4637:1:88"},{"name":"y","nativeSrc":"4640:1:88","nodeType":"YulIdentifier","src":"4640:1:88"}],"functionName":{"name":"add","nativeSrc":"4633:3:88","nodeType":"YulIdentifier","src":"4633:3:88"},"nativeSrc":"4633:9:88","nodeType":"YulFunctionCall","src":"4633:9:88"},"variableNames":[{"name":"sum","nativeSrc":"4626:3:88","nodeType":"YulIdentifier","src":"4626:3:88"}]},{"body":{"nativeSrc":"4665:22:88","nodeType":"YulBlock","src":"4665:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4667:16:88","nodeType":"YulIdentifier","src":"4667:16:88"},"nativeSrc":"4667:18:88","nodeType":"YulFunctionCall","src":"4667:18:88"},"nativeSrc":"4667:18:88","nodeType":"YulExpressionStatement","src":"4667:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"4657:1:88","nodeType":"YulIdentifier","src":"4657:1:88"},{"name":"sum","nativeSrc":"4660:3:88","nodeType":"YulIdentifier","src":"4660:3:88"}],"functionName":{"name":"gt","nativeSrc":"4654:2:88","nodeType":"YulIdentifier","src":"4654:2:88"},"nativeSrc":"4654:10:88","nodeType":"YulFunctionCall","src":"4654:10:88"},"nativeSrc":"4651:36:88","nodeType":"YulIf","src":"4651:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"4568:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4599:1:88","nodeType":"YulTypedName","src":"4599:1:88","type":""},{"name":"y","nativeSrc":"4602:1:88","nodeType":"YulTypedName","src":"4602:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4608:3:88","nodeType":"YulTypedName","src":"4608:3:88","type":""}],"src":"4568:125:88"},{"body":{"nativeSrc":"4747:79:88","nodeType":"YulBlock","src":"4747:79:88","statements":[{"nativeSrc":"4757:17:88","nodeType":"YulAssignment","src":"4757:17:88","value":{"arguments":[{"name":"x","nativeSrc":"4769:1:88","nodeType":"YulIdentifier","src":"4769:1:88"},{"name":"y","nativeSrc":"4772:1:88","nodeType":"YulIdentifier","src":"4772:1:88"}],"functionName":{"name":"sub","nativeSrc":"4765:3:88","nodeType":"YulIdentifier","src":"4765:3:88"},"nativeSrc":"4765:9:88","nodeType":"YulFunctionCall","src":"4765:9:88"},"variableNames":[{"name":"diff","nativeSrc":"4757:4:88","nodeType":"YulIdentifier","src":"4757:4:88"}]},{"body":{"nativeSrc":"4798:22:88","nodeType":"YulBlock","src":"4798:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4800:16:88","nodeType":"YulIdentifier","src":"4800:16:88"},"nativeSrc":"4800:18:88","nodeType":"YulFunctionCall","src":"4800:18:88"},"nativeSrc":"4800:18:88","nodeType":"YulExpressionStatement","src":"4800:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4789:4:88","nodeType":"YulIdentifier","src":"4789:4:88"},{"name":"x","nativeSrc":"4795:1:88","nodeType":"YulIdentifier","src":"4795:1:88"}],"functionName":{"name":"gt","nativeSrc":"4786:2:88","nodeType":"YulIdentifier","src":"4786:2:88"},"nativeSrc":"4786:11:88","nodeType":"YulFunctionCall","src":"4786:11:88"},"nativeSrc":"4783:37:88","nodeType":"YulIf","src":"4783:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"4698:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4729:1:88","nodeType":"YulTypedName","src":"4729:1:88","type":""},{"name":"y","nativeSrc":"4732:1:88","nodeType":"YulTypedName","src":"4732:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4738:4:88","nodeType":"YulTypedName","src":"4738:4:88","type":""}],"src":"4698:128:88"},{"body":{"nativeSrc":"4883:116:88","nodeType":"YulBlock","src":"4883:116:88","statements":[{"nativeSrc":"4893:20:88","nodeType":"YulAssignment","src":"4893:20:88","value":{"arguments":[{"name":"x","nativeSrc":"4908:1:88","nodeType":"YulIdentifier","src":"4908:1:88"},{"name":"y","nativeSrc":"4911:1:88","nodeType":"YulIdentifier","src":"4911:1:88"}],"functionName":{"name":"mul","nativeSrc":"4904:3:88","nodeType":"YulIdentifier","src":"4904:3:88"},"nativeSrc":"4904:9:88","nodeType":"YulFunctionCall","src":"4904:9:88"},"variableNames":[{"name":"product","nativeSrc":"4893:7:88","nodeType":"YulIdentifier","src":"4893:7:88"}]},{"body":{"nativeSrc":"4971:22:88","nodeType":"YulBlock","src":"4971:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4973:16:88","nodeType":"YulIdentifier","src":"4973:16:88"},"nativeSrc":"4973:18:88","nodeType":"YulFunctionCall","src":"4973:18:88"},"nativeSrc":"4973:18:88","nodeType":"YulExpressionStatement","src":"4973:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"4942:1:88","nodeType":"YulIdentifier","src":"4942:1:88"}],"functionName":{"name":"iszero","nativeSrc":"4935:6:88","nodeType":"YulIdentifier","src":"4935:6:88"},"nativeSrc":"4935:9:88","nodeType":"YulFunctionCall","src":"4935:9:88"},{"arguments":[{"name":"y","nativeSrc":"4949:1:88","nodeType":"YulIdentifier","src":"4949:1:88"},{"arguments":[{"name":"product","nativeSrc":"4956:7:88","nodeType":"YulIdentifier","src":"4956:7:88"},{"name":"x","nativeSrc":"4965:1:88","nodeType":"YulIdentifier","src":"4965:1:88"}],"functionName":{"name":"div","nativeSrc":"4952:3:88","nodeType":"YulIdentifier","src":"4952:3:88"},"nativeSrc":"4952:15:88","nodeType":"YulFunctionCall","src":"4952:15:88"}],"functionName":{"name":"eq","nativeSrc":"4946:2:88","nodeType":"YulIdentifier","src":"4946:2:88"},"nativeSrc":"4946:22:88","nodeType":"YulFunctionCall","src":"4946:22:88"}],"functionName":{"name":"or","nativeSrc":"4932:2:88","nodeType":"YulIdentifier","src":"4932:2:88"},"nativeSrc":"4932:37:88","nodeType":"YulFunctionCall","src":"4932:37:88"}],"functionName":{"name":"iszero","nativeSrc":"4925:6:88","nodeType":"YulIdentifier","src":"4925:6:88"},"nativeSrc":"4925:45:88","nodeType":"YulFunctionCall","src":"4925:45:88"},"nativeSrc":"4922:71:88","nodeType":"YulIf","src":"4922:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"4831:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4862:1:88","nodeType":"YulTypedName","src":"4862:1:88","type":""},{"name":"y","nativeSrc":"4865:1:88","nodeType":"YulTypedName","src":"4865:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"4871:7:88","nodeType":"YulTypedName","src":"4871:7:88","type":""}],"src":"4831:168:88"},{"body":{"nativeSrc":"5052:152:88","nodeType":"YulBlock","src":"5052:152:88","statements":[{"nativeSrc":"5062:17:88","nodeType":"YulAssignment","src":"5062:17:88","value":{"arguments":[{"name":"x","nativeSrc":"5074:1:88","nodeType":"YulIdentifier","src":"5074:1:88"},{"name":"y","nativeSrc":"5077:1:88","nodeType":"YulIdentifier","src":"5077:1:88"}],"functionName":{"name":"sub","nativeSrc":"5070:3:88","nodeType":"YulIdentifier","src":"5070:3:88"},"nativeSrc":"5070:9:88","nodeType":"YulFunctionCall","src":"5070:9:88"},"variableNames":[{"name":"diff","nativeSrc":"5062:4:88","nodeType":"YulIdentifier","src":"5062:4:88"}]},{"nativeSrc":"5088:19:88","nodeType":"YulVariableDeclaration","src":"5088:19:88","value":{"arguments":[{"name":"y","nativeSrc":"5102:1:88","nodeType":"YulIdentifier","src":"5102:1:88"},{"kind":"number","nativeSrc":"5105:1:88","nodeType":"YulLiteral","src":"5105:1:88","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"5098:3:88","nodeType":"YulIdentifier","src":"5098:3:88"},"nativeSrc":"5098:9:88","nodeType":"YulFunctionCall","src":"5098:9:88"},"variables":[{"name":"_1","nativeSrc":"5092:2:88","nodeType":"YulTypedName","src":"5092:2:88","type":""}]},{"body":{"nativeSrc":"5176:22:88","nodeType":"YulBlock","src":"5176:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5178:16:88","nodeType":"YulIdentifier","src":"5178:16:88"},"nativeSrc":"5178:18:88","nodeType":"YulFunctionCall","src":"5178:18:88"},"nativeSrc":"5178:18:88","nodeType":"YulExpressionStatement","src":"5178:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5133:2:88","nodeType":"YulIdentifier","src":"5133:2:88"}],"functionName":{"name":"iszero","nativeSrc":"5126:6:88","nodeType":"YulIdentifier","src":"5126:6:88"},"nativeSrc":"5126:10:88","nodeType":"YulFunctionCall","src":"5126:10:88"},{"arguments":[{"name":"diff","nativeSrc":"5142:4:88","nodeType":"YulIdentifier","src":"5142:4:88"},{"name":"x","nativeSrc":"5148:1:88","nodeType":"YulIdentifier","src":"5148:1:88"}],"functionName":{"name":"sgt","nativeSrc":"5138:3:88","nodeType":"YulIdentifier","src":"5138:3:88"},"nativeSrc":"5138:12:88","nodeType":"YulFunctionCall","src":"5138:12:88"}],"functionName":{"name":"and","nativeSrc":"5122:3:88","nodeType":"YulIdentifier","src":"5122:3:88"},"nativeSrc":"5122:29:88","nodeType":"YulFunctionCall","src":"5122:29:88"},{"arguments":[{"name":"_1","nativeSrc":"5157:2:88","nodeType":"YulIdentifier","src":"5157:2:88"},{"arguments":[{"name":"diff","nativeSrc":"5165:4:88","nodeType":"YulIdentifier","src":"5165:4:88"},{"name":"x","nativeSrc":"5171:1:88","nodeType":"YulIdentifier","src":"5171:1:88"}],"functionName":{"name":"slt","nativeSrc":"5161:3:88","nodeType":"YulIdentifier","src":"5161:3:88"},"nativeSrc":"5161:12:88","nodeType":"YulFunctionCall","src":"5161:12:88"}],"functionName":{"name":"and","nativeSrc":"5153:3:88","nodeType":"YulIdentifier","src":"5153:3:88"},"nativeSrc":"5153:21:88","nodeType":"YulFunctionCall","src":"5153:21:88"}],"functionName":{"name":"or","nativeSrc":"5119:2:88","nodeType":"YulIdentifier","src":"5119:2:88"},"nativeSrc":"5119:56:88","nodeType":"YulFunctionCall","src":"5119:56:88"},"nativeSrc":"5116:82:88","nodeType":"YulIf","src":"5116:82:88"}]},"name":"checked_sub_t_int256","nativeSrc":"5004:200:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5034:1:88","nodeType":"YulTypedName","src":"5034:1:88","type":""},{"name":"y","nativeSrc":"5037:1:88","nodeType":"YulTypedName","src":"5037:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5043:4:88","nodeType":"YulTypedName","src":"5043:4:88","type":""}],"src":"5004:200:88"},{"body":{"nativeSrc":"5338:145:88","nodeType":"YulBlock","src":"5338:145:88","statements":[{"nativeSrc":"5348:26:88","nodeType":"YulAssignment","src":"5348:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5360:9:88","nodeType":"YulIdentifier","src":"5360:9:88"},{"kind":"number","nativeSrc":"5371:2:88","nodeType":"YulLiteral","src":"5371:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5356:3:88","nodeType":"YulIdentifier","src":"5356:3:88"},"nativeSrc":"5356:18:88","nodeType":"YulFunctionCall","src":"5356:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5348:4:88","nodeType":"YulIdentifier","src":"5348:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5390:9:88","nodeType":"YulIdentifier","src":"5390:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5405:6:88","nodeType":"YulIdentifier","src":"5405:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5421:3:88","nodeType":"YulLiteral","src":"5421:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5426:1:88","nodeType":"YulLiteral","src":"5426:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5417:3:88","nodeType":"YulIdentifier","src":"5417:3:88"},"nativeSrc":"5417:11:88","nodeType":"YulFunctionCall","src":"5417:11:88"},{"kind":"number","nativeSrc":"5430:1:88","nodeType":"YulLiteral","src":"5430:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5413:3:88","nodeType":"YulIdentifier","src":"5413:3:88"},"nativeSrc":"5413:19:88","nodeType":"YulFunctionCall","src":"5413:19:88"}],"functionName":{"name":"and","nativeSrc":"5401:3:88","nodeType":"YulIdentifier","src":"5401:3:88"},"nativeSrc":"5401:32:88","nodeType":"YulFunctionCall","src":"5401:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5383:6:88","nodeType":"YulIdentifier","src":"5383:6:88"},"nativeSrc":"5383:51:88","nodeType":"YulFunctionCall","src":"5383:51:88"},"nativeSrc":"5383:51:88","nodeType":"YulExpressionStatement","src":"5383:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5454:9:88","nodeType":"YulIdentifier","src":"5454:9:88"},{"kind":"number","nativeSrc":"5465:2:88","nodeType":"YulLiteral","src":"5465:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5450:3:88","nodeType":"YulIdentifier","src":"5450:3:88"},"nativeSrc":"5450:18:88","nodeType":"YulFunctionCall","src":"5450:18:88"},{"name":"value1","nativeSrc":"5470:6:88","nodeType":"YulIdentifier","src":"5470:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5443:6:88","nodeType":"YulIdentifier","src":"5443:6:88"},"nativeSrc":"5443:34:88","nodeType":"YulFunctionCall","src":"5443:34:88"},"nativeSrc":"5443:34:88","nodeType":"YulExpressionStatement","src":"5443:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"5209:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5299:9:88","nodeType":"YulTypedName","src":"5299:9:88","type":""},{"name":"value1","nativeSrc":"5310:6:88","nodeType":"YulTypedName","src":"5310:6:88","type":""},{"name":"value0","nativeSrc":"5318:6:88","nodeType":"YulTypedName","src":"5318:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5329:4:88","nodeType":"YulTypedName","src":"5329:4:88","type":""}],"src":"5209:274:88"},{"body":{"nativeSrc":"5566:199:88","nodeType":"YulBlock","src":"5566:199:88","statements":[{"body":{"nativeSrc":"5612:16:88","nodeType":"YulBlock","src":"5612:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5621:1:88","nodeType":"YulLiteral","src":"5621:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5624:1:88","nodeType":"YulLiteral","src":"5624:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5614:6:88","nodeType":"YulIdentifier","src":"5614:6:88"},"nativeSrc":"5614:12:88","nodeType":"YulFunctionCall","src":"5614:12:88"},"nativeSrc":"5614:12:88","nodeType":"YulExpressionStatement","src":"5614:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5587:7:88","nodeType":"YulIdentifier","src":"5587:7:88"},{"name":"headStart","nativeSrc":"5596:9:88","nodeType":"YulIdentifier","src":"5596:9:88"}],"functionName":{"name":"sub","nativeSrc":"5583:3:88","nodeType":"YulIdentifier","src":"5583:3:88"},"nativeSrc":"5583:23:88","nodeType":"YulFunctionCall","src":"5583:23:88"},{"kind":"number","nativeSrc":"5608:2:88","nodeType":"YulLiteral","src":"5608:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5579:3:88","nodeType":"YulIdentifier","src":"5579:3:88"},"nativeSrc":"5579:32:88","nodeType":"YulFunctionCall","src":"5579:32:88"},"nativeSrc":"5576:52:88","nodeType":"YulIf","src":"5576:52:88"},{"nativeSrc":"5637:29:88","nodeType":"YulVariableDeclaration","src":"5637:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5656:9:88","nodeType":"YulIdentifier","src":"5656:9:88"}],"functionName":{"name":"mload","nativeSrc":"5650:5:88","nodeType":"YulIdentifier","src":"5650:5:88"},"nativeSrc":"5650:16:88","nodeType":"YulFunctionCall","src":"5650:16:88"},"variables":[{"name":"value","nativeSrc":"5641:5:88","nodeType":"YulTypedName","src":"5641:5:88","type":""}]},{"body":{"nativeSrc":"5719:16:88","nodeType":"YulBlock","src":"5719:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5728:1:88","nodeType":"YulLiteral","src":"5728:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5731:1:88","nodeType":"YulLiteral","src":"5731:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5721:6:88","nodeType":"YulIdentifier","src":"5721:6:88"},"nativeSrc":"5721:12:88","nodeType":"YulFunctionCall","src":"5721:12:88"},"nativeSrc":"5721:12:88","nodeType":"YulExpressionStatement","src":"5721:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5688:5:88","nodeType":"YulIdentifier","src":"5688:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5709:5:88","nodeType":"YulIdentifier","src":"5709:5:88"}],"functionName":{"name":"iszero","nativeSrc":"5702:6:88","nodeType":"YulIdentifier","src":"5702:6:88"},"nativeSrc":"5702:13:88","nodeType":"YulFunctionCall","src":"5702:13:88"}],"functionName":{"name":"iszero","nativeSrc":"5695:6:88","nodeType":"YulIdentifier","src":"5695:6:88"},"nativeSrc":"5695:21:88","nodeType":"YulFunctionCall","src":"5695:21:88"}],"functionName":{"name":"eq","nativeSrc":"5685:2:88","nodeType":"YulIdentifier","src":"5685:2:88"},"nativeSrc":"5685:32:88","nodeType":"YulFunctionCall","src":"5685:32:88"}],"functionName":{"name":"iszero","nativeSrc":"5678:6:88","nodeType":"YulIdentifier","src":"5678:6:88"},"nativeSrc":"5678:40:88","nodeType":"YulFunctionCall","src":"5678:40:88"},"nativeSrc":"5675:60:88","nodeType":"YulIf","src":"5675:60:88"},{"nativeSrc":"5744:15:88","nodeType":"YulAssignment","src":"5744:15:88","value":{"name":"value","nativeSrc":"5754:5:88","nodeType":"YulIdentifier","src":"5754:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5744:6:88","nodeType":"YulIdentifier","src":"5744:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"5488:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5532:9:88","nodeType":"YulTypedName","src":"5532:9:88","type":""},{"name":"dataEnd","nativeSrc":"5543:7:88","nodeType":"YulTypedName","src":"5543:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5555:6:88","nodeType":"YulTypedName","src":"5555:6:88","type":""}],"src":"5488:277:88"},{"body":{"nativeSrc":"5927:214:88","nodeType":"YulBlock","src":"5927:214:88","statements":[{"nativeSrc":"5937:26:88","nodeType":"YulAssignment","src":"5937:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5949:9:88","nodeType":"YulIdentifier","src":"5949:9:88"},{"kind":"number","nativeSrc":"5960:2:88","nodeType":"YulLiteral","src":"5960:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5945:3:88","nodeType":"YulIdentifier","src":"5945:3:88"},"nativeSrc":"5945:18:88","nodeType":"YulFunctionCall","src":"5945:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5937:4:88","nodeType":"YulIdentifier","src":"5937:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5979:9:88","nodeType":"YulIdentifier","src":"5979:9:88"},{"name":"value0","nativeSrc":"5990:6:88","nodeType":"YulIdentifier","src":"5990:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5972:6:88","nodeType":"YulIdentifier","src":"5972:6:88"},"nativeSrc":"5972:25:88","nodeType":"YulFunctionCall","src":"5972:25:88"},"nativeSrc":"5972:25:88","nodeType":"YulExpressionStatement","src":"5972:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6017:9:88","nodeType":"YulIdentifier","src":"6017:9:88"},{"kind":"number","nativeSrc":"6028:2:88","nodeType":"YulLiteral","src":"6028:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6013:3:88","nodeType":"YulIdentifier","src":"6013:3:88"},"nativeSrc":"6013:18:88","nodeType":"YulFunctionCall","src":"6013:18:88"},{"arguments":[{"name":"value1","nativeSrc":"6037:6:88","nodeType":"YulIdentifier","src":"6037:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6053:3:88","nodeType":"YulLiteral","src":"6053:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6058:1:88","nodeType":"YulLiteral","src":"6058:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6049:3:88","nodeType":"YulIdentifier","src":"6049:3:88"},"nativeSrc":"6049:11:88","nodeType":"YulFunctionCall","src":"6049:11:88"},{"kind":"number","nativeSrc":"6062:1:88","nodeType":"YulLiteral","src":"6062:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6045:3:88","nodeType":"YulIdentifier","src":"6045:3:88"},"nativeSrc":"6045:19:88","nodeType":"YulFunctionCall","src":"6045:19:88"}],"functionName":{"name":"and","nativeSrc":"6033:3:88","nodeType":"YulIdentifier","src":"6033:3:88"},"nativeSrc":"6033:32:88","nodeType":"YulFunctionCall","src":"6033:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6006:6:88","nodeType":"YulIdentifier","src":"6006:6:88"},"nativeSrc":"6006:60:88","nodeType":"YulFunctionCall","src":"6006:60:88"},"nativeSrc":"6006:60:88","nodeType":"YulExpressionStatement","src":"6006:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6086:9:88","nodeType":"YulIdentifier","src":"6086:9:88"},{"kind":"number","nativeSrc":"6097:2:88","nodeType":"YulLiteral","src":"6097:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6082:3:88","nodeType":"YulIdentifier","src":"6082:3:88"},"nativeSrc":"6082:18:88","nodeType":"YulFunctionCall","src":"6082:18:88"},{"arguments":[{"name":"value2","nativeSrc":"6106:6:88","nodeType":"YulIdentifier","src":"6106:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6122:3:88","nodeType":"YulLiteral","src":"6122:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6127:1:88","nodeType":"YulLiteral","src":"6127:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6118:3:88","nodeType":"YulIdentifier","src":"6118:3:88"},"nativeSrc":"6118:11:88","nodeType":"YulFunctionCall","src":"6118:11:88"},{"kind":"number","nativeSrc":"6131:1:88","nodeType":"YulLiteral","src":"6131:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6114:3:88","nodeType":"YulIdentifier","src":"6114:3:88"},"nativeSrc":"6114:19:88","nodeType":"YulFunctionCall","src":"6114:19:88"}],"functionName":{"name":"and","nativeSrc":"6102:3:88","nodeType":"YulIdentifier","src":"6102:3:88"},"nativeSrc":"6102:32:88","nodeType":"YulFunctionCall","src":"6102:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6075:6:88","nodeType":"YulIdentifier","src":"6075:6:88"},"nativeSrc":"6075:60:88","nodeType":"YulFunctionCall","src":"6075:60:88"},"nativeSrc":"6075:60:88","nodeType":"YulExpressionStatement","src":"6075:60:88"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed","nativeSrc":"5770:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5880:9:88","nodeType":"YulTypedName","src":"5880:9:88","type":""},{"name":"value2","nativeSrc":"5891:6:88","nodeType":"YulTypedName","src":"5891:6:88","type":""},{"name":"value1","nativeSrc":"5899:6:88","nodeType":"YulTypedName","src":"5899:6:88","type":""},{"name":"value0","nativeSrc":"5907:6:88","nodeType":"YulTypedName","src":"5907:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5918:4:88","nodeType":"YulTypedName","src":"5918:4:88","type":""}],"src":"5770:371:88"},{"body":{"nativeSrc":"6320:228:88","nodeType":"YulBlock","src":"6320:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6337:9:88","nodeType":"YulIdentifier","src":"6337:9:88"},{"kind":"number","nativeSrc":"6348:2:88","nodeType":"YulLiteral","src":"6348:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6330:6:88","nodeType":"YulIdentifier","src":"6330:6:88"},"nativeSrc":"6330:21:88","nodeType":"YulFunctionCall","src":"6330:21:88"},"nativeSrc":"6330:21:88","nodeType":"YulExpressionStatement","src":"6330:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6371:9:88","nodeType":"YulIdentifier","src":"6371:9:88"},{"kind":"number","nativeSrc":"6382:2:88","nodeType":"YulLiteral","src":"6382:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6367:3:88","nodeType":"YulIdentifier","src":"6367:3:88"},"nativeSrc":"6367:18:88","nodeType":"YulFunctionCall","src":"6367:18:88"},{"kind":"number","nativeSrc":"6387:2:88","nodeType":"YulLiteral","src":"6387:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"6360:6:88","nodeType":"YulIdentifier","src":"6360:6:88"},"nativeSrc":"6360:30:88","nodeType":"YulFunctionCall","src":"6360:30:88"},"nativeSrc":"6360:30:88","nodeType":"YulExpressionStatement","src":"6360:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6410:9:88","nodeType":"YulIdentifier","src":"6410:9:88"},{"kind":"number","nativeSrc":"6421:2:88","nodeType":"YulLiteral","src":"6421:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6406:3:88","nodeType":"YulIdentifier","src":"6406:3:88"},"nativeSrc":"6406:18:88","nodeType":"YulFunctionCall","src":"6406:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"6426:34:88","nodeType":"YulLiteral","src":"6426:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"6399:6:88","nodeType":"YulIdentifier","src":"6399:6:88"},"nativeSrc":"6399:62:88","nodeType":"YulFunctionCall","src":"6399:62:88"},"nativeSrc":"6399:62:88","nodeType":"YulExpressionStatement","src":"6399:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6481:9:88","nodeType":"YulIdentifier","src":"6481:9:88"},{"kind":"number","nativeSrc":"6492:2:88","nodeType":"YulLiteral","src":"6492:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6477:3:88","nodeType":"YulIdentifier","src":"6477:3:88"},"nativeSrc":"6477:18:88","nodeType":"YulFunctionCall","src":"6477:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"6497:8:88","nodeType":"YulLiteral","src":"6497:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"6470:6:88","nodeType":"YulIdentifier","src":"6470:6:88"},"nativeSrc":"6470:36:88","nodeType":"YulFunctionCall","src":"6470:36:88"},"nativeSrc":"6470:36:88","nodeType":"YulExpressionStatement","src":"6470:36:88"},{"nativeSrc":"6515:27:88","nodeType":"YulAssignment","src":"6515:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6527:9:88","nodeType":"YulIdentifier","src":"6527:9:88"},{"kind":"number","nativeSrc":"6538:3:88","nodeType":"YulLiteral","src":"6538:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6523:3:88","nodeType":"YulIdentifier","src":"6523:3:88"},"nativeSrc":"6523:19:88","nodeType":"YulFunctionCall","src":"6523:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6515:4:88","nodeType":"YulIdentifier","src":"6515:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6146:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6297:9:88","nodeType":"YulTypedName","src":"6297:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6311:4:88","nodeType":"YulTypedName","src":"6311:4:88","type":""}],"src":"6146:402:88"},{"body":{"nativeSrc":"6727:230:88","nodeType":"YulBlock","src":"6727:230:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6744:9:88","nodeType":"YulIdentifier","src":"6744:9:88"},{"kind":"number","nativeSrc":"6755:2:88","nodeType":"YulLiteral","src":"6755:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6737:6:88","nodeType":"YulIdentifier","src":"6737:6:88"},"nativeSrc":"6737:21:88","nodeType":"YulFunctionCall","src":"6737:21:88"},"nativeSrc":"6737:21:88","nodeType":"YulExpressionStatement","src":"6737:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6778:9:88","nodeType":"YulIdentifier","src":"6778:9:88"},{"kind":"number","nativeSrc":"6789:2:88","nodeType":"YulLiteral","src":"6789:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6774:3:88","nodeType":"YulIdentifier","src":"6774:3:88"},"nativeSrc":"6774:18:88","nodeType":"YulFunctionCall","src":"6774:18:88"},{"kind":"number","nativeSrc":"6794:2:88","nodeType":"YulLiteral","src":"6794:2:88","type":"","value":"40"}],"functionName":{"name":"mstore","nativeSrc":"6767:6:88","nodeType":"YulIdentifier","src":"6767:6:88"},"nativeSrc":"6767:30:88","nodeType":"YulFunctionCall","src":"6767:30:88"},"nativeSrc":"6767:30:88","nodeType":"YulExpressionStatement","src":"6767:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6817:9:88","nodeType":"YulIdentifier","src":"6817:9:88"},{"kind":"number","nativeSrc":"6828:2:88","nodeType":"YulLiteral","src":"6828:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6813:3:88","nodeType":"YulIdentifier","src":"6813:3:88"},"nativeSrc":"6813:18:88","nodeType":"YulFunctionCall","src":"6813:18:88"},{"hexValue":"56616c69646174696f6e3a204c6971756964697479206c696d69747320617265","kind":"string","nativeSrc":"6833:34:88","nodeType":"YulLiteral","src":"6833:34:88","type":"","value":"Validation: Liquidity limits are"}],"functionName":{"name":"mstore","nativeSrc":"6806:6:88","nodeType":"YulIdentifier","src":"6806:6:88"},"nativeSrc":"6806:62:88","nodeType":"YulFunctionCall","src":"6806:62:88"},"nativeSrc":"6806:62:88","nodeType":"YulExpressionStatement","src":"6806:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6888:9:88","nodeType":"YulIdentifier","src":"6888:9:88"},{"kind":"number","nativeSrc":"6899:2:88","nodeType":"YulLiteral","src":"6899:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6884:3:88","nodeType":"YulIdentifier","src":"6884:3:88"},"nativeSrc":"6884:18:88","nodeType":"YulFunctionCall","src":"6884:18:88"},{"hexValue":"20696e76616c6964","kind":"string","nativeSrc":"6904:10:88","nodeType":"YulLiteral","src":"6904:10:88","type":"","value":" invalid"}],"functionName":{"name":"mstore","nativeSrc":"6877:6:88","nodeType":"YulIdentifier","src":"6877:6:88"},"nativeSrc":"6877:38:88","nodeType":"YulFunctionCall","src":"6877:38:88"},"nativeSrc":"6877:38:88","nodeType":"YulExpressionStatement","src":"6877:38:88"},{"nativeSrc":"6924:27:88","nodeType":"YulAssignment","src":"6924:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6936:9:88","nodeType":"YulIdentifier","src":"6936:9:88"},{"kind":"number","nativeSrc":"6947:3:88","nodeType":"YulLiteral","src":"6947:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6932:3:88","nodeType":"YulIdentifier","src":"6932:3:88"},"nativeSrc":"6932:19:88","nodeType":"YulFunctionCall","src":"6932:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6924:4:88","nodeType":"YulIdentifier","src":"6924:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6553:404:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6704:9:88","nodeType":"YulTypedName","src":"6704:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6718:4:88","nodeType":"YulTypedName","src":"6718:4:88","type":""}],"src":"6553:404:88"},{"body":{"nativeSrc":"7136:229:88","nodeType":"YulBlock","src":"7136:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7153:9:88","nodeType":"YulIdentifier","src":"7153:9:88"},{"kind":"number","nativeSrc":"7164:2:88","nodeType":"YulLiteral","src":"7164:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7146:6:88","nodeType":"YulIdentifier","src":"7146:6:88"},"nativeSrc":"7146:21:88","nodeType":"YulFunctionCall","src":"7146:21:88"},"nativeSrc":"7146:21:88","nodeType":"YulExpressionStatement","src":"7146:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7187:9:88","nodeType":"YulIdentifier","src":"7187:9:88"},{"kind":"number","nativeSrc":"7198:2:88","nodeType":"YulLiteral","src":"7198:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7183:3:88","nodeType":"YulIdentifier","src":"7183:3:88"},"nativeSrc":"7183:18:88","nodeType":"YulFunctionCall","src":"7183:18:88"},{"kind":"number","nativeSrc":"7203:2:88","nodeType":"YulLiteral","src":"7203:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"7176:6:88","nodeType":"YulIdentifier","src":"7176:6:88"},"nativeSrc":"7176:30:88","nodeType":"YulFunctionCall","src":"7176:30:88"},"nativeSrc":"7176:30:88","nodeType":"YulExpressionStatement","src":"7176:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7226:9:88","nodeType":"YulIdentifier","src":"7226:9:88"},{"kind":"number","nativeSrc":"7237:2:88","nodeType":"YulLiteral","src":"7237:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7222:3:88","nodeType":"YulIdentifier","src":"7222:3:88"},"nativeSrc":"7222:18:88","nodeType":"YulFunctionCall","src":"7222:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"7242:34:88","nodeType":"YulLiteral","src":"7242:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"7215:6:88","nodeType":"YulIdentifier","src":"7215:6:88"},"nativeSrc":"7215:62:88","nodeType":"YulFunctionCall","src":"7215:62:88"},"nativeSrc":"7215:62:88","nodeType":"YulExpressionStatement","src":"7215:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7297:9:88","nodeType":"YulIdentifier","src":"7297:9:88"},{"kind":"number","nativeSrc":"7308:2:88","nodeType":"YulLiteral","src":"7308:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7293:3:88","nodeType":"YulIdentifier","src":"7293:3:88"},"nativeSrc":"7293:18:88","nodeType":"YulFunctionCall","src":"7293:18:88"},{"hexValue":"32382062697473","kind":"string","nativeSrc":"7313:9:88","nodeType":"YulLiteral","src":"7313:9:88","type":"","value":"28 bits"}],"functionName":{"name":"mstore","nativeSrc":"7286:6:88","nodeType":"YulIdentifier","src":"7286:6:88"},"nativeSrc":"7286:37:88","nodeType":"YulFunctionCall","src":"7286:37:88"},"nativeSrc":"7286:37:88","nodeType":"YulExpressionStatement","src":"7286:37:88"},{"nativeSrc":"7332:27:88","nodeType":"YulAssignment","src":"7332:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7344:9:88","nodeType":"YulIdentifier","src":"7344:9:88"},{"kind":"number","nativeSrc":"7355:3:88","nodeType":"YulLiteral","src":"7355:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7340:3:88","nodeType":"YulIdentifier","src":"7340:3:88"},"nativeSrc":"7340:19:88","nodeType":"YulFunctionCall","src":"7340:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7332:4:88","nodeType":"YulIdentifier","src":"7332:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6962:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7113:9:88","nodeType":"YulTypedName","src":"7113:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7127:4:88","nodeType":"YulTypedName","src":"7127:4:88","type":""}],"src":"6962:403:88"},{"body":{"nativeSrc":"7499:145:88","nodeType":"YulBlock","src":"7499:145:88","statements":[{"nativeSrc":"7509:26:88","nodeType":"YulAssignment","src":"7509:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7521:9:88","nodeType":"YulIdentifier","src":"7521:9:88"},{"kind":"number","nativeSrc":"7532:2:88","nodeType":"YulLiteral","src":"7532:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7517:3:88","nodeType":"YulIdentifier","src":"7517:3:88"},"nativeSrc":"7517:18:88","nodeType":"YulFunctionCall","src":"7517:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7509:4:88","nodeType":"YulIdentifier","src":"7509:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7551:9:88","nodeType":"YulIdentifier","src":"7551:9:88"},{"name":"value0","nativeSrc":"7562:6:88","nodeType":"YulIdentifier","src":"7562:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7544:6:88","nodeType":"YulIdentifier","src":"7544:6:88"},"nativeSrc":"7544:25:88","nodeType":"YulFunctionCall","src":"7544:25:88"},"nativeSrc":"7544:25:88","nodeType":"YulExpressionStatement","src":"7544:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7589:9:88","nodeType":"YulIdentifier","src":"7589:9:88"},{"kind":"number","nativeSrc":"7600:2:88","nodeType":"YulLiteral","src":"7600:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7585:3:88","nodeType":"YulIdentifier","src":"7585:3:88"},"nativeSrc":"7585:18:88","nodeType":"YulFunctionCall","src":"7585:18:88"},{"arguments":[{"name":"value1","nativeSrc":"7609:6:88","nodeType":"YulIdentifier","src":"7609:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7625:3:88","nodeType":"YulLiteral","src":"7625:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7630:1:88","nodeType":"YulLiteral","src":"7630:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7621:3:88","nodeType":"YulIdentifier","src":"7621:3:88"},"nativeSrc":"7621:11:88","nodeType":"YulFunctionCall","src":"7621:11:88"},{"kind":"number","nativeSrc":"7634:1:88","nodeType":"YulLiteral","src":"7634:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7617:3:88","nodeType":"YulIdentifier","src":"7617:3:88"},"nativeSrc":"7617:19:88","nodeType":"YulFunctionCall","src":"7617:19:88"}],"functionName":{"name":"and","nativeSrc":"7605:3:88","nodeType":"YulIdentifier","src":"7605:3:88"},"nativeSrc":"7605:32:88","nodeType":"YulFunctionCall","src":"7605:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7578:6:88","nodeType":"YulIdentifier","src":"7578:6:88"},"nativeSrc":"7578:60:88","nodeType":"YulFunctionCall","src":"7578:60:88"},"nativeSrc":"7578:60:88","nodeType":"YulExpressionStatement","src":"7578:60:88"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nativeSrc":"7370:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7460:9:88","nodeType":"YulTypedName","src":"7460:9:88","type":""},{"name":"value1","nativeSrc":"7471:6:88","nodeType":"YulTypedName","src":"7471:6:88","type":""},{"name":"value0","nativeSrc":"7479:6:88","nodeType":"YulTypedName","src":"7479:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7490:4:88","nodeType":"YulTypedName","src":"7490:4:88","type":""}],"src":"7370:274:88"},{"body":{"nativeSrc":"7707:86:88","nodeType":"YulBlock","src":"7707:86:88","statements":[{"body":{"nativeSrc":"7771:16:88","nodeType":"YulBlock","src":"7771:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7780:1:88","nodeType":"YulLiteral","src":"7780:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7783:1:88","nodeType":"YulLiteral","src":"7783:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7773:6:88","nodeType":"YulIdentifier","src":"7773:6:88"},"nativeSrc":"7773:12:88","nodeType":"YulFunctionCall","src":"7773:12:88"},"nativeSrc":"7773:12:88","nodeType":"YulExpressionStatement","src":"7773:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7730:5:88","nodeType":"YulIdentifier","src":"7730:5:88"},{"arguments":[{"name":"value","nativeSrc":"7741:5:88","nodeType":"YulIdentifier","src":"7741:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7756:3:88","nodeType":"YulLiteral","src":"7756:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7761:1:88","nodeType":"YulLiteral","src":"7761:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7752:3:88","nodeType":"YulIdentifier","src":"7752:3:88"},"nativeSrc":"7752:11:88","nodeType":"YulFunctionCall","src":"7752:11:88"},{"kind":"number","nativeSrc":"7765:1:88","nodeType":"YulLiteral","src":"7765:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7748:3:88","nodeType":"YulIdentifier","src":"7748:3:88"},"nativeSrc":"7748:19:88","nodeType":"YulFunctionCall","src":"7748:19:88"}],"functionName":{"name":"and","nativeSrc":"7737:3:88","nodeType":"YulIdentifier","src":"7737:3:88"},"nativeSrc":"7737:31:88","nodeType":"YulFunctionCall","src":"7737:31:88"}],"functionName":{"name":"eq","nativeSrc":"7727:2:88","nodeType":"YulIdentifier","src":"7727:2:88"},"nativeSrc":"7727:42:88","nodeType":"YulFunctionCall","src":"7727:42:88"}],"functionName":{"name":"iszero","nativeSrc":"7720:6:88","nodeType":"YulIdentifier","src":"7720:6:88"},"nativeSrc":"7720:50:88","nodeType":"YulFunctionCall","src":"7720:50:88"},"nativeSrc":"7717:70:88","nodeType":"YulIf","src":"7717:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"7649:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7696:5:88","nodeType":"YulTypedName","src":"7696:5:88","type":""}],"src":"7649:144:88"},{"body":{"nativeSrc":"7900:183:88","nodeType":"YulBlock","src":"7900:183:88","statements":[{"body":{"nativeSrc":"7946:16:88","nodeType":"YulBlock","src":"7946:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7955:1:88","nodeType":"YulLiteral","src":"7955:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7958:1:88","nodeType":"YulLiteral","src":"7958:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7948:6:88","nodeType":"YulIdentifier","src":"7948:6:88"},"nativeSrc":"7948:12:88","nodeType":"YulFunctionCall","src":"7948:12:88"},"nativeSrc":"7948:12:88","nodeType":"YulExpressionStatement","src":"7948:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7921:7:88","nodeType":"YulIdentifier","src":"7921:7:88"},{"name":"headStart","nativeSrc":"7930:9:88","nodeType":"YulIdentifier","src":"7930:9:88"}],"functionName":{"name":"sub","nativeSrc":"7917:3:88","nodeType":"YulIdentifier","src":"7917:3:88"},"nativeSrc":"7917:23:88","nodeType":"YulFunctionCall","src":"7917:23:88"},{"kind":"number","nativeSrc":"7942:2:88","nodeType":"YulLiteral","src":"7942:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7913:3:88","nodeType":"YulIdentifier","src":"7913:3:88"},"nativeSrc":"7913:32:88","nodeType":"YulFunctionCall","src":"7913:32:88"},"nativeSrc":"7910:52:88","nodeType":"YulIf","src":"7910:52:88"},{"nativeSrc":"7971:29:88","nodeType":"YulVariableDeclaration","src":"7971:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7990:9:88","nodeType":"YulIdentifier","src":"7990:9:88"}],"functionName":{"name":"mload","nativeSrc":"7984:5:88","nodeType":"YulIdentifier","src":"7984:5:88"},"nativeSrc":"7984:16:88","nodeType":"YulFunctionCall","src":"7984:16:88"},"variables":[{"name":"value","nativeSrc":"7975:5:88","nodeType":"YulTypedName","src":"7975:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8047:5:88","nodeType":"YulIdentifier","src":"8047:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"8009:37:88","nodeType":"YulIdentifier","src":"8009:37:88"},"nativeSrc":"8009:44:88","nodeType":"YulFunctionCall","src":"8009:44:88"},"nativeSrc":"8009:44:88","nodeType":"YulExpressionStatement","src":"8009:44:88"},{"nativeSrc":"8062:15:88","nodeType":"YulAssignment","src":"8062:15:88","value":{"name":"value","nativeSrc":"8072:5:88","nodeType":"YulIdentifier","src":"8072:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8062:6:88","nodeType":"YulIdentifier","src":"8062:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"7798:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7866:9:88","nodeType":"YulTypedName","src":"7866:9:88","type":""},{"name":"dataEnd","nativeSrc":"7877:7:88","nodeType":"YulTypedName","src":"7877:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7889:6:88","nodeType":"YulTypedName","src":"7889:6:88","type":""}],"src":"7798:285:88"},{"body":{"nativeSrc":"8192:183:88","nodeType":"YulBlock","src":"8192:183:88","statements":[{"body":{"nativeSrc":"8238:16:88","nodeType":"YulBlock","src":"8238:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8247:1:88","nodeType":"YulLiteral","src":"8247:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8250:1:88","nodeType":"YulLiteral","src":"8250:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8240:6:88","nodeType":"YulIdentifier","src":"8240:6:88"},"nativeSrc":"8240:12:88","nodeType":"YulFunctionCall","src":"8240:12:88"},"nativeSrc":"8240:12:88","nodeType":"YulExpressionStatement","src":"8240:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8213:7:88","nodeType":"YulIdentifier","src":"8213:7:88"},{"name":"headStart","nativeSrc":"8222:9:88","nodeType":"YulIdentifier","src":"8222:9:88"}],"functionName":{"name":"sub","nativeSrc":"8209:3:88","nodeType":"YulIdentifier","src":"8209:3:88"},"nativeSrc":"8209:23:88","nodeType":"YulFunctionCall","src":"8209:23:88"},{"kind":"number","nativeSrc":"8234:2:88","nodeType":"YulLiteral","src":"8234:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8205:3:88","nodeType":"YulIdentifier","src":"8205:3:88"},"nativeSrc":"8205:32:88","nodeType":"YulFunctionCall","src":"8205:32:88"},"nativeSrc":"8202:52:88","nodeType":"YulIf","src":"8202:52:88"},{"nativeSrc":"8263:29:88","nodeType":"YulVariableDeclaration","src":"8263:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8282:9:88","nodeType":"YulIdentifier","src":"8282:9:88"}],"functionName":{"name":"mload","nativeSrc":"8276:5:88","nodeType":"YulIdentifier","src":"8276:5:88"},"nativeSrc":"8276:16:88","nodeType":"YulFunctionCall","src":"8276:16:88"},"variables":[{"name":"value","nativeSrc":"8267:5:88","nodeType":"YulTypedName","src":"8267:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8339:5:88","nodeType":"YulIdentifier","src":"8339:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"8301:37:88","nodeType":"YulIdentifier","src":"8301:37:88"},"nativeSrc":"8301:44:88","nodeType":"YulFunctionCall","src":"8301:44:88"},"nativeSrc":"8301:44:88","nodeType":"YulExpressionStatement","src":"8301:44:88"},{"nativeSrc":"8354:15:88","nodeType":"YulAssignment","src":"8354:15:88","value":{"name":"value","nativeSrc":"8364:5:88","nodeType":"YulIdentifier","src":"8364:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8354:6:88","nodeType":"YulIdentifier","src":"8354:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"8088:287:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8158:9:88","nodeType":"YulTypedName","src":"8158:9:88","type":""},{"name":"dataEnd","nativeSrc":"8169:7:88","nodeType":"YulTypedName","src":"8169:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8181:6:88","nodeType":"YulTypedName","src":"8181:6:88","type":""}],"src":"8088:287:88"},{"body":{"nativeSrc":"8554:164:88","nodeType":"YulBlock","src":"8554:164:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8571:9:88","nodeType":"YulIdentifier","src":"8571:9:88"},{"kind":"number","nativeSrc":"8582:2:88","nodeType":"YulLiteral","src":"8582:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8564:6:88","nodeType":"YulIdentifier","src":"8564:6:88"},"nativeSrc":"8564:21:88","nodeType":"YulFunctionCall","src":"8564:21:88"},"nativeSrc":"8564:21:88","nodeType":"YulExpressionStatement","src":"8564:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8605:9:88","nodeType":"YulIdentifier","src":"8605:9:88"},{"kind":"number","nativeSrc":"8616:2:88","nodeType":"YulLiteral","src":"8616:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8601:3:88","nodeType":"YulIdentifier","src":"8601:3:88"},"nativeSrc":"8601:18:88","nodeType":"YulFunctionCall","src":"8601:18:88"},{"kind":"number","nativeSrc":"8621:2:88","nodeType":"YulLiteral","src":"8621:2:88","type":"","value":"14"}],"functionName":{"name":"mstore","nativeSrc":"8594:6:88","nodeType":"YulIdentifier","src":"8594:6:88"},"nativeSrc":"8594:30:88","nodeType":"YulFunctionCall","src":"8594:30:88"},"nativeSrc":"8594:30:88","nodeType":"YulExpressionStatement","src":"8594:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8644:9:88","nodeType":"YulIdentifier","src":"8644:9:88"},{"kind":"number","nativeSrc":"8655:2:88","nodeType":"YulLiteral","src":"8655:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8640:3:88","nodeType":"YulIdentifier","src":"8640:3:88"},"nativeSrc":"8640:18:88","nodeType":"YulFunctionCall","src":"8640:18:88"},{"hexValue":"4173736574206d69736d61746368","kind":"string","nativeSrc":"8660:16:88","nodeType":"YulLiteral","src":"8660:16:88","type":"","value":"Asset mismatch"}],"functionName":{"name":"mstore","nativeSrc":"8633:6:88","nodeType":"YulIdentifier","src":"8633:6:88"},"nativeSrc":"8633:44:88","nodeType":"YulFunctionCall","src":"8633:44:88"},"nativeSrc":"8633:44:88","nodeType":"YulExpressionStatement","src":"8633:44:88"},{"nativeSrc":"8686:26:88","nodeType":"YulAssignment","src":"8686:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8698:9:88","nodeType":"YulIdentifier","src":"8698:9:88"},{"kind":"number","nativeSrc":"8709:2:88","nodeType":"YulLiteral","src":"8709:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8694:3:88","nodeType":"YulIdentifier","src":"8694:3:88"},"nativeSrc":"8694:18:88","nodeType":"YulFunctionCall","src":"8694:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8686:4:88","nodeType":"YulIdentifier","src":"8686:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8380:338:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8531:9:88","nodeType":"YulTypedName","src":"8531:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8545:4:88","nodeType":"YulTypedName","src":"8545:4:88","type":""}],"src":"8380:338:88"},{"body":{"nativeSrc":"8772:194:88","nodeType":"YulBlock","src":"8772:194:88","statements":[{"nativeSrc":"8782:99:88","nodeType":"YulAssignment","src":"8782:99:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"8798:1:88","nodeType":"YulIdentifier","src":"8798:1:88"},{"kind":"number","nativeSrc":"8801:34:88","nodeType":"YulLiteral","src":"8801:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8794:3:88","nodeType":"YulIdentifier","src":"8794:3:88"},"nativeSrc":"8794:42:88","nodeType":"YulFunctionCall","src":"8794:42:88"},{"arguments":[{"name":"y","nativeSrc":"8842:1:88","nodeType":"YulIdentifier","src":"8842:1:88"},{"kind":"number","nativeSrc":"8845:34:88","nodeType":"YulLiteral","src":"8845:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8838:3:88","nodeType":"YulIdentifier","src":"8838:3:88"},"nativeSrc":"8838:42:88","nodeType":"YulFunctionCall","src":"8838:42:88"}],"functionName":{"name":"sub","nativeSrc":"8790:3:88","nodeType":"YulIdentifier","src":"8790:3:88"},"nativeSrc":"8790:91:88","nodeType":"YulFunctionCall","src":"8790:91:88"},"variableNames":[{"name":"diff","nativeSrc":"8782:4:88","nodeType":"YulIdentifier","src":"8782:4:88"}]},{"body":{"nativeSrc":"8938:22:88","nodeType":"YulBlock","src":"8938:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8940:16:88","nodeType":"YulIdentifier","src":"8940:16:88"},"nativeSrc":"8940:18:88","nodeType":"YulFunctionCall","src":"8940:18:88"},"nativeSrc":"8940:18:88","nodeType":"YulExpressionStatement","src":"8940:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8896:4:88","nodeType":"YulIdentifier","src":"8896:4:88"},{"kind":"number","nativeSrc":"8902:34:88","nodeType":"YulLiteral","src":"8902:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8893:2:88","nodeType":"YulIdentifier","src":"8893:2:88"},"nativeSrc":"8893:44:88","nodeType":"YulFunctionCall","src":"8893:44:88"},"nativeSrc":"8890:70:88","nodeType":"YulIf","src":"8890:70:88"}]},"name":"checked_sub_t_uint128","nativeSrc":"8723:243:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8754:1:88","nodeType":"YulTypedName","src":"8754:1:88","type":""},{"name":"y","nativeSrc":"8757:1:88","nodeType":"YulTypedName","src":"8757:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8763:4:88","nodeType":"YulTypedName","src":"8763:4:88","type":""}],"src":"8723:243:88"},{"body":{"nativeSrc":"9019:192:88","nodeType":"YulBlock","src":"9019:192:88","statements":[{"nativeSrc":"9029:98:88","nodeType":"YulAssignment","src":"9029:98:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9044:1:88","nodeType":"YulIdentifier","src":"9044:1:88"},{"kind":"number","nativeSrc":"9047:34:88","nodeType":"YulLiteral","src":"9047:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9040:3:88","nodeType":"YulIdentifier","src":"9040:3:88"},"nativeSrc":"9040:42:88","nodeType":"YulFunctionCall","src":"9040:42:88"},{"arguments":[{"name":"y","nativeSrc":"9088:1:88","nodeType":"YulIdentifier","src":"9088:1:88"},{"kind":"number","nativeSrc":"9091:34:88","nodeType":"YulLiteral","src":"9091:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9084:3:88","nodeType":"YulIdentifier","src":"9084:3:88"},"nativeSrc":"9084:42:88","nodeType":"YulFunctionCall","src":"9084:42:88"}],"functionName":{"name":"add","nativeSrc":"9036:3:88","nodeType":"YulIdentifier","src":"9036:3:88"},"nativeSrc":"9036:91:88","nodeType":"YulFunctionCall","src":"9036:91:88"},"variableNames":[{"name":"sum","nativeSrc":"9029:3:88","nodeType":"YulIdentifier","src":"9029:3:88"}]},{"body":{"nativeSrc":"9183:22:88","nodeType":"YulBlock","src":"9183:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9185:16:88","nodeType":"YulIdentifier","src":"9185:16:88"},"nativeSrc":"9185:18:88","nodeType":"YulFunctionCall","src":"9185:18:88"},"nativeSrc":"9185:18:88","nodeType":"YulExpressionStatement","src":"9185:18:88"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"9142:3:88","nodeType":"YulIdentifier","src":"9142:3:88"},{"kind":"number","nativeSrc":"9147:34:88","nodeType":"YulLiteral","src":"9147:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9139:2:88","nodeType":"YulIdentifier","src":"9139:2:88"},"nativeSrc":"9139:43:88","nodeType":"YulFunctionCall","src":"9139:43:88"},"nativeSrc":"9136:69:88","nodeType":"YulIf","src":"9136:69:88"}]},"name":"checked_add_t_uint128","nativeSrc":"8971:240:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9002:1:88","nodeType":"YulTypedName","src":"9002:1:88","type":""},{"name":"y","nativeSrc":"9005:1:88","nodeType":"YulTypedName","src":"9005:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"9011:3:88","nodeType":"YulTypedName","src":"9011:3:88","type":""}],"src":"8971:240:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"No need to refill the wallet for\")\n        mstore(add(headStart, 96), \" this payment\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        let _1 := slt(y, 0)\n        if or(and(iszero(_1), sgt(diff, x)), and(_1, slt(diff, x))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"Validation: Liquidity limits are\")\n        mstore(add(headStart, 96), \" invalid\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"28 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"Asset mismatch\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint128(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffffffff))\n        if gt(diff, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_add_t_uint128(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffffffff))\n        if gt(sum, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10843":[{"length":32,"start":1670},{"length":32,"start":2505},{"length":32,"start":2708},{"length":32,"start":3578},{"length":32,"start":3834}],"14381":[{"length":32,"start":354},{"length":32,"start":594},{"length":32,"start":842},{"length":32,"start":1181},{"length":32,"start":1467},{"length":32,"start":2072},{"length":32,"start":2306},{"length":32,"start":2552},{"length":32,"start":3090},{"length":32,"start":3914}]},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100a5575f3560e01c80634eb978a41161006e5780634eb978a4146101175780637d7c2a1c1461011f5780638d7ddd9014610127578063948cb7191461012f578063cec16f3f14610137578063f9c4fd1b1461013f575f5ffd5b8062a9bb8d146100a957806301ffc9a7146100be5780631014a0c2146100e65780633b6612c8146101075780634dd93bd31461010f575b5f5ffd5b6100bc6100b73660046111da565b610147565b005b6100d16100cc366004611203565b610446565b60405190151581526020015b60405180910390f35b6100f96100f436600461122a565b61047c565b6040519081526020016100dd565b6100f96105b8565b6100f961066f565b6100f961075c565b6100bc610801565b6100f96108ff565b6100bc6109aa565b6100f9610a62565b6100f9610c0f565b5f51602061148c5f395f51905f525f198414610245576101fa7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e09190611241565b6101eb90600a611358565b6101f59086611366565b610cc2565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f19831461033d576102e57f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d09190611241565b6102db90600a611358565b6101f59085611366565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198214610438576103dd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c89190611241565b6103d390600a611358565b6101f59084611366565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b50610441610d2a565b505050565b5f6001600160e01b031982166301ffc9a760e01b148061047657506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105069190611385565b90508281106105725760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b5f61057b61066f565b905081610586610c0f565b610590908661139c565b61059a91906113af565b9250808311156105a8578092505b6105b183610dce565b5050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610615573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106399190611241565b61064490600a611358565b5f51602061148c5f395f51905f525461066a9190600160401b900463ffffffff166113c2565b905090565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ff9190611385565b6040518263ffffffff1660e01b815260040161071d91815260200190565b602060405180830381865afa158015610738573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611385565b5f5f61076661066f565b5f51602061148c5f395f51905f528054919250905f9061079690600160601b90046001600160801b0316846113d9565b90506107a183610e6d565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610865573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108899190611385565b90506108936105b8565b8111156108b7576108b46108a5610c0f565b6108af90836113af565b610ed5565b50565b6108bf6108ff565b8110156108b4575f6108ea6108d261066f565b836108db610c0f565b6108e591906113af565b610f31565b905080156108fb576108fb81610dce565b5050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109809190611241565b61098b90600a611358565b5f51602061148c5f395f51905f525461066a919063ffffffff166113c2565b6109b2610f48565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610a3e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b491906113ff565b5f805f51602061148c5f395f51905f526040516370a0823160e01b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610ae1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190611385565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303815f875af1158015610b4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b719190611385565b8254909150610b9090600160601b90046001600160801b0316826113d9565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c909190611241565b610c9b90600a611358565b5f51602061148c5f395f51905f525461066a9190640100000000900463ffffffff166113c2565b5f63ffffffff821115610d265760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610569565b5090565b5f51602061148c5f395f51905f52805463ffffffff64010000000082048116911611801590610d715750805463ffffffff600160401b820481166401000000009092041611155b6108b45760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b6064820152608401610569565b610dd781611096565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610e49573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fb9190611385565b5f6001600160801b03821115610d265760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610569565b610ede8161114c565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e2d565b5f818310610f3f5781610f41565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd29190611432565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110319190611432565b6001600160a01b0316146110785760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b6044820152606401610569565b5f51602061148c5f395f51905f5280546001600160e01b0319169055565b5f51602061148c5f395f51905f5280546110c9906110c490600160601b90046001600160801b031684610f31565b610e6d565b81548290600c906110eb908490600160601b90046001600160801b031661144d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161114091815260200190565b60405180910390a15050565b5f51602061148c5f395f51905f5261116382610e6d565b81548290600c90611185908490600160601b90046001600160801b031661146c565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161114091815260200190565b5f5f5f606084860312156111ec575f5ffd5b505081359360208301359350604090920135919050565b5f60208284031215611213575f5ffd5b81356001600160e01b031981168114610f41575f5ffd5b5f6020828403121561123a575f5ffd5b5035919050565b5f60208284031215611251575f5ffd5b815160ff81168114610f41575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156112b05780850481111561129457611294611261565b60018416156112a257908102905b60019390931c928002611279565b935093915050565b5f826112c657506001610476565b816112d257505f610476565b81600181146112e857600281146112f25761130e565b6001915050610476565b60ff84111561130357611303611261565b50506001821b610476565b5060208310610133831016604e8410600b8410161715611331575081810a610476565b61133d5f198484611275565b805f190482111561135057611350611261565b029392505050565b5f610f4160ff8416836112b8565b5f8261138057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611395575f5ffd5b5051919050565b8082018082111561047657610476611261565b8181038181111561047657610476611261565b808202811582820484141761047657610476611261565b8181035f8312801583831316838312821617156113f8576113f8611261565b5092915050565b5f6020828403121561140f575f5ffd5b81518015158114610f41575f5ffd5b6001600160a01b03811681146108b4575f5ffd5b5f60208284031215611442575f5ffd5b8151610f418161141e565b6001600160801b03828116828216039081111561047657610476611261565b6001600160801b0381811683821601908111156104765761047661126156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a26469706673582212207f7b8606c143d4d00dea41550973a7cc4e5550992310770e54f02c244f61351c64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EB978A4 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x8D7DDD90 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x948CB719 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0xCEC16F3F EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF9C4FD1B EQ PUSH2 0x13F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH3 0xA9BB8D EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x1014A0C2 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x3B6612C8 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x4DD93BD3 EQ PUSH2 0x10F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xBC PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x11DA JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD1 PUSH2 0xCC CALLDATASIZE PUSH1 0x4 PUSH2 0x1203 JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x122A JUMP JUMPDEST PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xDD JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x66F JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x75C JUMP JUMPDEST PUSH2 0xBC PUSH2 0x801 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0xBC PUSH2 0x9AA JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xA62 JUMP JUMPDEST PUSH2 0xF9 PUSH2 0xC0F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 NOT DUP5 EQ PUSH2 0x245 JUMPI PUSH2 0x1FA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x1EB SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP7 PUSH2 0x1366 JUMP JUMPDEST PUSH2 0xCC2 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x26 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP4 EQ PUSH2 0x33D JUMPI PUSH2 0x2E5 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x2DB SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP6 PUSH2 0x1366 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x27 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x438 JUMPI PUSH2 0x3DD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x3D3 SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x1F5 SWAP1 DUP5 PUSH2 0x1366 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x28 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP PUSH2 0x441 PUSH2 0xD2A JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x476 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1E670A97 PUSH1 0xE2 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4E2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x506 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT PUSH2 0x572 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206E65656420746F20726566696C6C207468652077616C6C657420666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81D1A1A5CC81C185E5B595B9D PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x57B PUSH2 0x66F JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x586 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x590 SWAP1 DUP7 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x59A SWAP2 SWAP1 PUSH2 0x13AF JUMP JUMPDEST SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x5A8 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5B1 DUP4 PUSH2 0xDCE JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x615 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x644 SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7A2D13A SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6DB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6FF SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x738 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x66A SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x766 PUSH2 0x66F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH0 SWAP1 PUSH2 0x796 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x13D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x7A1 DUP4 PUSH2 0xE6D JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x865 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x889 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST SWAP1 POP PUSH2 0x893 PUSH2 0x5B8 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x8B7 JUMPI PUSH2 0x8B4 PUSH2 0x8A5 PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x8AF SWAP1 DUP4 PUSH2 0x13AF JUMP JUMPDEST PUSH2 0xED5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x8BF PUSH2 0x8FF JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x8B4 JUMPI PUSH0 PUSH2 0x8EA PUSH2 0x8D2 PUSH2 0x66F JUMP JUMPDEST DUP4 PUSH2 0x8DB PUSH2 0xC0F JUMP JUMPDEST PUSH2 0x8E5 SWAP2 SWAP1 PUSH2 0x13AF JUMP JUMPDEST PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH2 0x8FB DUP2 PUSH2 0xDCE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0x98B SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x9B2 PUSH2 0xF48 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA3E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B4 SWAP2 SWAP1 PUSH2 0x13FF JUMP JUMPDEST PUSH0 DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB05 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB4D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST DUP3 SLOAD SWAP1 SWAP2 POP PUSH2 0xB90 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 PUSH2 0x13D9 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP4 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE SWAP1 SWAP4 POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x1241 JUMP JUMPDEST PUSH2 0xC9B SWAP1 PUSH1 0xA PUSH2 0x1358 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x66A SWAP2 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x13C2 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0xD71 JUMPI POP DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND GT ISZERO JUMPDEST PUSH2 0x8B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A204C6971756964697479206C696D69747320617265 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81A5B9D985B1A59 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST PUSH2 0xDD7 DUP2 PUSH2 0x1096 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x1385 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x569 JUMP JUMPDEST PUSH2 0xEDE DUP2 PUSH2 0x114C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD PUSH2 0xE2D JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0xF3F JUMPI DUP2 PUSH2 0xF41 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFAE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD2 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x100D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1031 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1078 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x82E6E6CAE840DAD2E6DAC2E8C6D PUSH1 0x93 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x569 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH2 0x10C9 SWAP1 PUSH2 0x10C4 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0xF31 JUMP JUMPDEST PUSH2 0xE6D JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x10EB SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x144D JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x148C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x1163 DUP3 PUSH2 0xE6D JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x1185 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x146C JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0CDEAC88E111E1DD9B9F043E8C671053DEDFBAECCABFB144FD51A4F870FCF4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1213 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x123A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1251 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x12B0 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x12A2 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x1279 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x12C6 JUMPI POP PUSH1 0x1 PUSH2 0x476 JUMP JUMPDEST DUP2 PUSH2 0x12D2 JUMPI POP PUSH0 PUSH2 0x476 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x12E8 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x12F2 JUMPI PUSH2 0x130E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x476 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1303 JUMPI PUSH2 0x1303 PUSH2 0x1261 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x476 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1331 JUMPI POP DUP2 DUP2 EXP PUSH2 0x476 JUMP JUMPDEST PUSH2 0x133D PUSH0 NOT DUP5 DUP5 PUSH2 0x1275 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1350 JUMPI PUSH2 0x1350 PUSH2 0x1261 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF41 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x12B8 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1380 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1395 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x13F8 JUMPI PUSH2 0x13F8 PUSH2 0x1261 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF41 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8B4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1442 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xF41 DUP2 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x476 JUMPI PUSH2 0x476 PUSH2 0x1261 JUMP INVALID 0x22 DUP6 CALLCODE SHR 0xF9 CHAINID DELEGATECALL CALL CODECOPY 0xF8 0x4D PUSH1 0xD1 0xBD TIMESTAMP 0xE4 SHL PUSH29 0xECBB3685384F294F426AC09F5F46A26469706673582212207F7B8606C1 NUMBER 0xD4 0xD0 0xD 0xEA COINBASE SSTORE MULMOD PUSH20 0xA7CC4E5550992310770E54F02C244F61351C6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"812:1499:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:761:54;;;;;;:::i;:::-;;:::i;:::-;;6791:199;;;;;;:::i;:::-;;:::i;:::-;;;941:14:88;;934:22;916:41;;904:2;889:18;6791:199:54;;;;;;;;4500:525;;;;;;:::i;:::-;;:::i;:::-;;;1345:25:88;;;1333:2;1318:18;4500:525:54;1199:177:88;5840:127:54;;;:::i;2159:150:49:-;;;:::i;3234:381:54:-;;;:::i;3835:388::-;;;:::i;5572:127::-;;;:::i;1270:159:49:-;;;:::i;1729:426::-;;;:::i;5703:133:54:-;;;:::i;5971:761::-;-1:-1:-1;;;;;;;;;;;;;6140:24:54;::::1;6136:189;;6192:42;6205:6;-1:-1:-1::0;;;;;6205:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6199:23;::::0;:2:::1;:23;:::i;:::-;6193:29;::::0;:3;:29:::1;:::i;:::-;6192:40;:42::i;:::-;6174:60:::0;;-1:-1:-1;;6174:60:54::1;;::::0;;;::::1;;::::0;;6264:48:::1;6247:71;::::0;1345:25:88;;;6247:71:54::1;::::0;1333:2:88;1318:18;6247:71:54::1;;;;;;;6136:189;-1:-1:-1::0;;6334:6:54::1;:27;6330:204;;6392:45;6408:6;-1:-1:-1::0;;;;;6408:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:23;::::0;:2:::1;:23;:::i;:::-;6393:32;::::0;:6;:32:::1;:::i;6392:45::-;6371:66:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;6371:66:54;;::::1;;::::0;;6467:51:::1;6450:77;::::0;1345:25:88;;;6450:77:54::1;::::0;1333:2:88;1318:18;6450:77:54::1;;;;;;;6330:204;-1:-1:-1::0;;6543:3:54::1;:24;6539:189;;6595:42;6608:6;-1:-1:-1::0;;;;;6608:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6602:23;::::0;:2:::1;:23;:::i;:::-;6596:29;::::0;:3;:29:::1;:::i;6595:42::-;6577:60:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;6577:60:54::1;-1:-1:-1::0;;6577:60:54;;::::1;;::::0;;6667:48:::1;6650:71;::::0;1345:25:88;;;6650:71:54::1;::::0;1333:2:88;1318:18;6650:71:54::1;;;;;;;6539:189;6080:652;1879:21:::0;:19;:21::i;:::-;5971:761;;;:::o;6791:199::-;6876:4;-1:-1:-1;;;;;;6895:40:54;;-1:-1:-1;;;6895:40:54;;:90;;-1:-1:-1;;;;;;;6939:46:54;;-1:-1:-1;;;6939:46:54;6895:90;6888:97;6791:199;-1:-1:-1;;6791:199:54:o;4500:525::-;4611:31;;-1:-1:-1;;;4611:31:54;;4636:4;4611:31;;;3903:51:88;4572:16:54;;;;-1:-1:-1;;;;;4611:6:54;:16;;;;3876:18:88;;4611:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4596:46;;4663:13;4656:4;:20;4648:78;;;;-1:-1:-1;;;4648:78:54;;4356:2:88;4648:78:54;;;4338:21:88;4395:2;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;-1:-1:-1;;;4485:18:88;;;4478:43;4538:19;;4648:78:54;;;;;;;;;4732:23;4758:20;:18;:20::i;:::-;4732:46;;4906:4;4886:17;:15;:17::i;:::-;4870:33;;:13;:33;:::i;:::-;:40;;;;:::i;:::-;4859:51;;4931:15;4920:8;:26;4916:58;;;4959:15;4948:26;;4916:58;4980:19;4990:8;4980:9;:19::i;:::-;5005:15;;4500:525;;;:::o;5840:127::-;5885:7;5945:6;-1:-1:-1;;;;;5945:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5939:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5907:29:54;:55;;;-1:-1:-1;;;5907:29:54;;;;:55;:::i;:::-;5900:62;;5840:127;:::o;2159:150:49:-;2272:31;;-1:-1:-1;;;2272:31:49;;2297:4;2272:31;;;3903:51:88;2227:7:49;;2249:6;-1:-1:-1;;;;;2249:22:49;;;;;;2272:16;;3876:18:88;;2272:31:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2249:55;;;;;;;;;;;;;1345:25:88;;1333:2;1318:18;;1199:177;2249:55:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3234:381:54:-;3295:6;3309:23;3335:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;3470:22:54;;3309:46;;-1:-1:-1;2352:53:54;3361:25;;3429:65;;-1:-1:-1;;;3470:22:54;;-1:-1:-1;;;;;3470:22:54;3309:46;3429:65;:::i;:::-;3411:83;;3525:27;:15;:25;:27::i;:::-;3500:52;;-1:-1:-1;;;;;3500:52:54;;;;-1:-1:-1;;;3500:52:54;-1:-1:-1;;;;;;;;3500:52:54;;;;;;3563:26;;1345:25:88;;;3563:26:54;;1333:2:88;1318:18;3563:26:54;;;;;;;3602:8;3234:381;-1:-1:-1;;;3234:381:54:o;3835:388::-;3903:31;;-1:-1:-1;;;3903:31:54;;3928:4;3903:31;;;:51:88;3888:12:54;;3903:6;-1:-1:-1;;;;;3903:16:54;;;;3876:18:88;;3903:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3888:46;;3951:14;:12;:14::i;:::-;3944:4;:21;3940:279;;;3975:33;3990:17;:15;:17::i;:::-;3983:24;;:4;:24;:::i;:::-;3975:7;:33::i;:::-;3882:341;3835:388::o;3940:279::-;4032:14;:12;:14::i;:::-;4025:4;:21;4021:198;;;4056:22;4081:56;4090:20;:18;:20::i;:::-;4132:4;4112:17;:15;:17::i;:::-;:24;;;;:::i;:::-;4081:8;:56::i;:::-;4056:81;-1:-1:-1;4149:18:54;;4145:68;;4179:25;4189:14;4179:9;:25::i;:::-;4048:171;3882:341;3835:388::o;5572:127::-;5617:7;5677:6;-1:-1:-1;;;;;5677:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5671:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5639:29:54;:55;;;:29;;:55;:::i;1270:159:49:-;1319:15;:13;:15::i;:::-;1340:50;;-1:-1:-1;;;1340:50:49;;-1:-1:-1;;;;;1363:6:49;5401:32:88;;1340:50:49;;;5383:51:88;-1:-1:-1;;5450:18:88;;;5443:34;1340:6:49;:14;;;;5356:18:88;;1340:50:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1729:426::-;1787:15;;-1:-1:-1;;;;;;;;;;;1891:31:49;;-1:-1:-1;;;1891:31:49;;1916:4;1891:31;;;3903:51:88;1810:44:49;;-1:-1:-1;1860:14:49;;-1:-1:-1;;;;;1877:6:49;:13;;;;;;1891:16;;3876:18:88;;1891:31:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1877:76;;-1:-1:-1;;;;;;1877:76:49;;;;;;;;;;5972:25:88;;;;1932:4:49;6013:18:88;;;6006:60;;;6082:18;;;6075:60;5945:18;;1877:76:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2002:22;;1860:93;;-1:-1:-1;1970:56:49;;-1:-1:-1;;;2002:22:49;;-1:-1:-1;;;;;2002:22:49;1860:93;1970:56;:::i;:::-;2032:26;;-1:-1:-1;;;;;;;;2032:26:49;;;2069:23;;1345:25:88;;;1959:67:49;;-1:-1:-1;2069:23:49;;1333:2:88;1318:18;2069:23:49;;;;;;;2103:26;;1345:25:88;;;2103:26:49;;1333:2:88;1318:18;2103:26:49;;;;;;;2135:15;;1729:426;:::o;5703:133:54:-;5751:7;5814:6;-1:-1:-1;;;;;5814:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5808:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5773:32:54;:58;;;:32;;;;;:58;:::i;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;6348:2:88;15338:76:46;;;6330:21:88;6387:2;6367:18;;;6360:30;6426:34;6406:18;;;6399:62;-1:-1:-1;;;6477:18:88;;;6470:36;6523:19;;15338:76:46;6146:402:88;15338:76:46;-1:-1:-1;15438:5:46;15264:187::o;2520:256:54:-;-1:-1:-1;;;;;;;;;;;2656:18:54;;;;;;;;2637:15;;:37;;;;:78;;-1:-1:-1;2700:15:54;;;-1:-1:-1;;;2700:15:54;;;;2678:18;;;;;:37;;2637:78;2622:149;;;;-1:-1:-1;;;2622:149:54;;6755:2:88;2622:149:54;;;6737:21:88;6794:2;6774:18;;;6767:30;6833:34;6813:18;;;6806:62;-1:-1:-1;;;6884:18:88;;;6877:38;6932:19;;2622:149:54;6553:404:88;1571:154:49;1638:23;1654:6;1638:15;:23::i;:::-;1667:53;;-1:-1:-1;;;1667:53:49;;;;;5972:25:88;;;1699:4:49;6013:18:88;;;6006:60;;;6082:18;;;6075:60;1667:6:49;-1:-1:-1;;;;;1667:15:49;;;;5945:18:88;;1667:53:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9088:192:46:-;9145:7;-1:-1:-1;;;;;9172:26:46;;;9164:78;;;;-1:-1:-1;;;9164:78:46;;7164:2:88;9164:78:46;;;7146:21:88;7203:2;7183:18;;;7176:30;7242:34;7222:18;;;7215:62;-1:-1:-1;;;7293:18:88;;;7286:37;7340:19;;9164:78:46;6962:403:88;1433:134:49;1498:21;1512:6;1498:13;:21::i;:::-;1525:37;;-1:-1:-1;;;1525:37:49;;;;;7544:25:88;;;1556:4:49;7585:18:88;;;7578:60;1525:6:49;-1:-1:-1;;;;;1525:14:49;;;;7517:18:88;;1525:37:49;7370:274:88;588:104:45;646:7;676:1;672;:5;:13;;684:1;672:13;;;680:1;672:13;665:20;588:104;-1:-1:-1;;;588:104:45:o;2780:450:54:-;2900:6;-1:-1:-1;;;;;2837:69:54;2866:4;-1:-1:-1;;;;;2837:46:54;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2837:57:54;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2837:69:54;;2829:96;;;;-1:-1:-1;;;2829:96:54;;8582:2:88;2829:96:54;;;8564:21:88;8621:2;8601:18;;;8594:30;-1:-1:-1;;;8640:18:88;;;8633:44;8694:18;;2829:96:54;8380:338:88;2829:96:54;-1:-1:-1;;;;;;;;;;;3121:19:54;;-1:-1:-1;;;;;;3199:26:54;;;2780:450::o;5277:291::-;-1:-1:-1;;;;;;;;;;;5428:22:54;;5411:61;;:49;;-1:-1:-1;;;5428:22:54;;-1:-1:-1;;;;;5428:22:54;5453:6;5411:8;:49::i;:::-;:59;:61::i;:::-;5385:87;;;;:22;;:87;;;;-1:-1:-1;;;5385:87:54;;-1:-1:-1;;;;;5385:87:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5385:87:54;;;;;-1:-1:-1;;;;;5385:87:54;;;;;;5483:23;5499:6;5483:23;;;;1345:25:88;;1333:2;1318:18;;1199:177;5483:23:54;;;;;;;;5329:239;5277:291;:::o;5029:244::-;-1:-1:-1;;;;;;;;;;;5161:18:54;:6;:16;:18::i;:::-;5135:44;;;;:22;;:44;;;;-1:-1:-1;;;5135:44:54;;-1:-1:-1;;;;;5135:44:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5135:44:54;;;;;-1:-1:-1;;;;;5135:44:54;;;;;;5190:21;5204:6;5190:21;;;;1345:25:88;;1333:2;1318:18;;1199:177;14:466;91:6;99;107;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;-1:-1:-1;;221:23:88;;;341:2;326:18;;313:32;;-1:-1:-1;444:2:88;429:18;;;416:32;;14:466;-1:-1:-1;14:466:88:o;485:286::-;543:6;596:2;584:9;575:7;571:23;567:32;564:52;;;612:1;609;602:12;564:52;638:23;;-1:-1:-1;;;;;;690:32:88;;680:43;;670:71;;737:1;734;727:12;968:226;1027:6;1080:2;1068:9;1059:7;1055:23;1051:32;1048:52;;;1096:1;1093;1086:12;1048:52;-1:-1:-1;1141:23:88;;968:226;-1:-1:-1;968:226:88:o;1561:273::-;1629:6;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1730:9;1724:16;1780:4;1773:5;1769:16;1762:5;1759:27;1749:55;;1800:1;1797;1790:12;1839:127;1900:10;1895:3;1891:20;1888:1;1881:31;1931:4;1928:1;1921:15;1955:4;1952:1;1945:15;1971:375;2059:1;2077:5;2091:249;2112:1;2102:8;2099:15;2091:249;;;2162:4;2157:3;2153:14;2147:4;2144:24;2141:50;;;2171:18;;:::i;:::-;2221:1;2211:8;2207:16;2204:49;;;2235:16;;;;2204:49;2318:1;2314:16;;;;;2274:15;;2091:249;;;1971:375;;;;;;:::o;2351:902::-;2400:5;2430:8;2420:80;;-1:-1:-1;2471:1:88;2485:5;;2420:80;2519:4;2509:76;;-1:-1:-1;2556:1:88;2570:5;;2509:76;2601:4;2619:1;2614:59;;;;2687:1;2682:174;;;;2594:262;;2614:59;2644:1;2635:10;;2658:5;;;2682:174;2719:3;2709:8;2706:17;2703:43;;;2726:18;;:::i;:::-;-1:-1:-1;;2782:1:88;2768:16;;2841:5;;2594:262;;2940:2;2930:8;2927:16;2921:3;2915:4;2912:13;2908:36;2902:2;2892:8;2889:16;2884:2;2878:4;2875:12;2871:35;2868:77;2865:203;;;-1:-1:-1;2977:19:88;;;3053:5;;2865:203;3100:42;-1:-1:-1;;3125:8:88;3119:4;3100:42;:::i;:::-;3178:6;3174:1;3170:6;3166:19;3157:7;3154:32;3151:58;;;3189:18;;:::i;:::-;3227:20;;2351:902;-1:-1:-1;;;2351:902:88:o;3258:140::-;3316:5;3345:47;3386:4;3376:8;3372:19;3366:4;3345:47;:::i;3403:217::-;3443:1;3469;3459:132;;3513:10;3508:3;3504:20;3501:1;3494:31;3548:4;3545:1;3538:15;3576:4;3573:1;3566:15;3459:132;-1:-1:-1;3605:9:88;;3403:217::o;3965:184::-;4035:6;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;-1:-1:-1;4127:16:88;;3965:184;-1:-1:-1;3965:184:88:o;4568:125::-;4633:9;;;4654:10;;;4651:36;;;4667:18;;:::i;4698:128::-;4765:9;;;4786:11;;;4783:37;;;4800:18;;:::i;4831:168::-;4904:9;;;4935;;4952:15;;;4946:22;;4932:37;4922:71;;4973:18;;:::i;5004:200::-;5070:9;;;5043:4;5098:9;;5126:10;;5138:12;;;5122:29;5161:12;;;5153:21;;5119:56;5116:82;;;5178:18;;:::i;:::-;5116:82;5004:200;;;;:::o;5488:277::-;5555:6;5608:2;5596:9;5587:7;5583:23;5579:32;5576:52;;;5624:1;5621;5614:12;5576:52;5656:9;5650:16;5709:5;5702:13;5695:21;5688:5;5685:32;5675:60;;5731:1;5728;5721:12;7649:144;-1:-1:-1;;;;;7737:31:88;;7727:42;;7717:70;;7783:1;7780;7773:12;7798:285;7889:6;7942:2;7930:9;7921:7;7917:23;7913:32;7910:52;;;7958:1;7955;7948:12;7910:52;7990:9;7984:16;8009:44;8047:5;8009:44;:::i;8723:243::-;-1:-1:-1;;;;;8838:42:88;;;8794;;;8790:91;;8893:44;;8890:70;;;8940:18;;:::i;8971:240::-;-1:-1:-1;;;;;9040:42:88;;;9084;;;9036:91;;9139:43;;9136:69;;;9185:18;;:::i"},"methodIdentifiers":{"connect()":"948cb719","deinvestAll()":"cec16f3f","getInvestmentValue()":"4dd93bd3","liquidityMax()":"3b6612c8","liquidityMiddle()":"f9c4fd1b","liquidityMin()":"8d7ddd90","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","refillWallet(uint256)":"1014a0c2","setLiquidityThresholds(uint256,uint256,uint256)":"00a9bb8d","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"contract IERC4626\",\"name\":\"vault_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"name\":\"EarningsRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyDeinvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyInvested\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"connect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deinvestAll\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestmentValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMax\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMiddle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"refillWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deinvest\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"middle\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"setLiquidityThresholds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into an ERC4626 vault.\",\"events\":{\"EarningsRecorded(int256)\":{\"details\":\"Event emitted when investment yields are accounted in the reserve\",\"params\":{\"earnings\":\"The amount of earnings generated since last record. It's positive in the case of earnings or negative when there are losses.\"}},\"MoneyDeinvested(uint256)\":{\"details\":\"Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid funds.\",\"params\":{\"amount\":\"The amount de-invested\"}},\"MoneyInvested(uint256)\":{\"details\":\"Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\",\"params\":{\"amount\":\"The amount invested\"}}},\"kind\":\"dev\",\"methods\":{\"connect()\":{\"details\":\"Function called when an asset manager is plugged into a reserve. Useful for initialization tasks Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the diamondStorage might have left some data. So, in the connect method you should initialize the state setting to zero what's expected to be zero.\"},\"deinvestAll()\":{\"details\":\"Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset manager is unplugged. Events: - Emits {MoneyDeinvested} with the amount transferred to the liquid balance. - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\",\"returns\":{\"earnings\":\"Returns the earnings or losses (negative) since last time earnings were recorded.\"}},\"getInvestmentValue()\":{\"details\":\"Returns the current value of the investment portfolio\"},\"rebalance()\":{\"details\":\"Rebalances cash between PolicyPool wallet and\"},\"recordEarnings()\":{\"details\":\"Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the reserve balance and those that are invested. Called with delegatecall by the reserve from the external function rebalance (see {Reserve-rebalance}). Events: - Emits {MoneyInvested} or {MoneyDeinvested}\"},\"refillWallet(uint256)\":{\"details\":\"This is called from PolicyPool when doesn't have enough money for payment.      After the call, there should be enough money in PolicyPool.currency().balanceOf(this) to      do the payment\",\"params\":{\"paymentAmount\":\"The amount of the payment\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Asset Manager that deploys the funds into an ERC4626 vault\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC4626AssetManager.sol\":\"ERC4626AssetManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x5a173dcd1c1f0074e4df6a9cdab3257e17f2e64f7b8f30ca9e17a8c5ea250e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7883819ce2b72264a756063ae578661f62b23f4104b08e9565ac075e619f6ce3\",\"dweb:/ipfs/QmcSZdFiEQkWRmZQhnCdfH9ychooV81pBjr7hfaiYiNZT2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/ERC4626AssetManager.sol\":{\"keccak256\":\"0x46eeb1f738cf9daf582b1e62889374191b86ff56c6cb85cd7796e293af1b53fc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ecdce8541948e3b7548d640ceb1e4733451d587553003643aa0167ab69f69c28\",\"dweb:/ipfs/QmPbfQHr7mocPR5dQBM8BieS7sajLpY7y8vm3VFdsd5gpw\"]},\"contracts/LiquidityThresholdAssetManager.sol\":{\"keccak256\":\"0x1464fe7b414b6cfda7d48399d80ded9a5d0bcf5ed7fde0e2b32e4f3d030bc210\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2637c07d2f83ef61dbfc2d50f904702a9802b7924bb90b8cd58503fd0f8dba0d\",\"dweb:/ipfs/QmdEQG5ix3UiqVPBSrNDAv7msevgc9iM7j55Zb4cJfcxR7\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/ERC4626PlusVaultAssetManager.sol":{"ERC4626PlusVaultAssetManager":{"abi":[{"inputs":[{"internalType":"contract IERC20Metadata","name":"asset_","type":"address"},{"internalType":"contract IERC4626","name":"vault_","type":"address"},{"internalType":"contract IERC4626","name":"discretionaryVault_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"earnings","type":"int256"}],"name":"EarningsRecorded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyDeinvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyInvested","type":"event"},{"inputs":[],"name":"connect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deinvestAll","outputs":[{"internalType":"int256","name":"earnings","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"discretionaryToVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getInvestmentValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMiddle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"name":"refillWallet","outputs":[{"internalType":"uint256","name":"deinvest","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"middle","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setLiquidityThresholds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"vaultToDiscretionary","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_10885":{"entryPoint":null,"id":10885,"parameterSlots":2,"returnSlots":0},"@_11115":{"entryPoint":null,"id":11115,"parameterSlots":3,"returnSlots":0},"@_14428":{"entryPoint":null,"id":14428,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1083,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333t_contract$_IERC4626_$4333_fromMemory":{"entryPoint":1009,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3837e6b29379623560507373e5d272dc231d11477358b20fb8016ae7c69b62d2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a96d99cc06ab45ec66e02948e60da0d0be3c012cf33ad7a518f8179a5f94f22__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ccdbdb985a5db0989525665d9ff730f9071cdbe1407a042756a3c2c7ee8ac8ec__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_contract_IERC20Metadata":{"entryPoint":986,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3610:88","nodeType":"YulBlock","src":"0:3610:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"75:86:88","nodeType":"YulBlock","src":"75:86:88","statements":[{"body":{"nativeSrc":"139:16:88","nodeType":"YulBlock","src":"139:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"151:1:88","nodeType":"YulLiteral","src":"151:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"141:6:88","nodeType":"YulIdentifier","src":"141:6:88"},"nativeSrc":"141:12:88","nodeType":"YulFunctionCall","src":"141:12:88"},"nativeSrc":"141:12:88","nodeType":"YulExpressionStatement","src":"141:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"98:5:88","nodeType":"YulIdentifier","src":"98:5:88"},{"arguments":[{"name":"value","nativeSrc":"109:5:88","nodeType":"YulIdentifier","src":"109:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"124:3:88","nodeType":"YulLiteral","src":"124:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"129:1:88","nodeType":"YulLiteral","src":"129:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"120:3:88","nodeType":"YulIdentifier","src":"120:3:88"},"nativeSrc":"120:11:88","nodeType":"YulFunctionCall","src":"120:11:88"},{"kind":"number","nativeSrc":"133:1:88","nodeType":"YulLiteral","src":"133:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"116:3:88","nodeType":"YulIdentifier","src":"116:3:88"},"nativeSrc":"116:19:88","nodeType":"YulFunctionCall","src":"116:19:88"}],"functionName":{"name":"and","nativeSrc":"105:3:88","nodeType":"YulIdentifier","src":"105:3:88"},"nativeSrc":"105:31:88","nodeType":"YulFunctionCall","src":"105:31:88"}],"functionName":{"name":"eq","nativeSrc":"95:2:88","nodeType":"YulIdentifier","src":"95:2:88"},"nativeSrc":"95:42:88","nodeType":"YulFunctionCall","src":"95:42:88"}],"functionName":{"name":"iszero","nativeSrc":"88:6:88","nodeType":"YulIdentifier","src":"88:6:88"},"nativeSrc":"88:50:88","nodeType":"YulFunctionCall","src":"88:50:88"},"nativeSrc":"85:70:88","nodeType":"YulIf","src":"85:70:88"}]},"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"14:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"64:5:88","nodeType":"YulTypedName","src":"64:5:88","type":""}],"src":"14:147:88"},{"body":{"nativeSrc":"338:452:88","nodeType":"YulBlock","src":"338:452:88","statements":[{"body":{"nativeSrc":"384:16:88","nodeType":"YulBlock","src":"384:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"393:1:88","nodeType":"YulLiteral","src":"393:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"396:1:88","nodeType":"YulLiteral","src":"396:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"386:6:88","nodeType":"YulIdentifier","src":"386:6:88"},"nativeSrc":"386:12:88","nodeType":"YulFunctionCall","src":"386:12:88"},"nativeSrc":"386:12:88","nodeType":"YulExpressionStatement","src":"386:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"359:7:88","nodeType":"YulIdentifier","src":"359:7:88"},{"name":"headStart","nativeSrc":"368:9:88","nodeType":"YulIdentifier","src":"368:9:88"}],"functionName":{"name":"sub","nativeSrc":"355:3:88","nodeType":"YulIdentifier","src":"355:3:88"},"nativeSrc":"355:23:88","nodeType":"YulFunctionCall","src":"355:23:88"},{"kind":"number","nativeSrc":"380:2:88","nodeType":"YulLiteral","src":"380:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"351:3:88","nodeType":"YulIdentifier","src":"351:3:88"},"nativeSrc":"351:32:88","nodeType":"YulFunctionCall","src":"351:32:88"},"nativeSrc":"348:52:88","nodeType":"YulIf","src":"348:52:88"},{"nativeSrc":"409:29:88","nodeType":"YulVariableDeclaration","src":"409:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"428:9:88","nodeType":"YulIdentifier","src":"428:9:88"}],"functionName":{"name":"mload","nativeSrc":"422:5:88","nodeType":"YulIdentifier","src":"422:5:88"},"nativeSrc":"422:16:88","nodeType":"YulFunctionCall","src":"422:16:88"},"variables":[{"name":"value","nativeSrc":"413:5:88","nodeType":"YulTypedName","src":"413:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"488:5:88","nodeType":"YulIdentifier","src":"488:5:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"447:40:88","nodeType":"YulIdentifier","src":"447:40:88"},"nativeSrc":"447:47:88","nodeType":"YulFunctionCall","src":"447:47:88"},"nativeSrc":"447:47:88","nodeType":"YulExpressionStatement","src":"447:47:88"},{"nativeSrc":"503:15:88","nodeType":"YulAssignment","src":"503:15:88","value":{"name":"value","nativeSrc":"513:5:88","nodeType":"YulIdentifier","src":"513:5:88"},"variableNames":[{"name":"value0","nativeSrc":"503:6:88","nodeType":"YulIdentifier","src":"503:6:88"}]},{"nativeSrc":"527:40:88","nodeType":"YulVariableDeclaration","src":"527:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"552:9:88","nodeType":"YulIdentifier","src":"552:9:88"},{"kind":"number","nativeSrc":"563:2:88","nodeType":"YulLiteral","src":"563:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"548:3:88","nodeType":"YulIdentifier","src":"548:3:88"},"nativeSrc":"548:18:88","nodeType":"YulFunctionCall","src":"548:18:88"}],"functionName":{"name":"mload","nativeSrc":"542:5:88","nodeType":"YulIdentifier","src":"542:5:88"},"nativeSrc":"542:25:88","nodeType":"YulFunctionCall","src":"542:25:88"},"variables":[{"name":"value_1","nativeSrc":"531:7:88","nodeType":"YulTypedName","src":"531:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"617:7:88","nodeType":"YulIdentifier","src":"617:7:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"576:40:88","nodeType":"YulIdentifier","src":"576:40:88"},"nativeSrc":"576:49:88","nodeType":"YulFunctionCall","src":"576:49:88"},"nativeSrc":"576:49:88","nodeType":"YulExpressionStatement","src":"576:49:88"},{"nativeSrc":"634:17:88","nodeType":"YulAssignment","src":"634:17:88","value":{"name":"value_1","nativeSrc":"644:7:88","nodeType":"YulIdentifier","src":"644:7:88"},"variableNames":[{"name":"value1","nativeSrc":"634:6:88","nodeType":"YulIdentifier","src":"634:6:88"}]},{"nativeSrc":"660:40:88","nodeType":"YulVariableDeclaration","src":"660:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"685:9:88","nodeType":"YulIdentifier","src":"685:9:88"},{"kind":"number","nativeSrc":"696:2:88","nodeType":"YulLiteral","src":"696:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"681:3:88","nodeType":"YulIdentifier","src":"681:3:88"},"nativeSrc":"681:18:88","nodeType":"YulFunctionCall","src":"681:18:88"}],"functionName":{"name":"mload","nativeSrc":"675:5:88","nodeType":"YulIdentifier","src":"675:5:88"},"nativeSrc":"675:25:88","nodeType":"YulFunctionCall","src":"675:25:88"},"variables":[{"name":"value_2","nativeSrc":"664:7:88","nodeType":"YulTypedName","src":"664:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"750:7:88","nodeType":"YulIdentifier","src":"750:7:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"709:40:88","nodeType":"YulIdentifier","src":"709:40:88"},"nativeSrc":"709:49:88","nodeType":"YulFunctionCall","src":"709:49:88"},"nativeSrc":"709:49:88","nodeType":"YulExpressionStatement","src":"709:49:88"},{"nativeSrc":"767:17:88","nodeType":"YulAssignment","src":"767:17:88","value":{"name":"value_2","nativeSrc":"777:7:88","nodeType":"YulIdentifier","src":"777:7:88"},"variableNames":[{"name":"value2","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333t_contract$_IERC4626_$4333_fromMemory","nativeSrc":"166:624:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"288:9:88","nodeType":"YulTypedName","src":"288:9:88","type":""},{"name":"dataEnd","nativeSrc":"299:7:88","nodeType":"YulTypedName","src":"299:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"311:6:88","nodeType":"YulTypedName","src":"311:6:88","type":""},{"name":"value1","nativeSrc":"319:6:88","nodeType":"YulTypedName","src":"319:6:88","type":""},{"name":"value2","nativeSrc":"327:6:88","nodeType":"YulTypedName","src":"327:6:88","type":""}],"src":"166:624:88"},{"body":{"nativeSrc":"969:250:88","nodeType":"YulBlock","src":"969:250:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"986:9:88","nodeType":"YulIdentifier","src":"986:9:88"},{"kind":"number","nativeSrc":"997:2:88","nodeType":"YulLiteral","src":"997:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"979:6:88","nodeType":"YulIdentifier","src":"979:6:88"},"nativeSrc":"979:21:88","nodeType":"YulFunctionCall","src":"979:21:88"},"nativeSrc":"979:21:88","nodeType":"YulExpressionStatement","src":"979:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1020:9:88","nodeType":"YulIdentifier","src":"1020:9:88"},{"kind":"number","nativeSrc":"1031:2:88","nodeType":"YulLiteral","src":"1031:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1016:3:88","nodeType":"YulIdentifier","src":"1016:3:88"},"nativeSrc":"1016:18:88","nodeType":"YulFunctionCall","src":"1016:18:88"},{"kind":"number","nativeSrc":"1036:2:88","nodeType":"YulLiteral","src":"1036:2:88","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"1009:6:88","nodeType":"YulIdentifier","src":"1009:6:88"},"nativeSrc":"1009:30:88","nodeType":"YulFunctionCall","src":"1009:30:88"},"nativeSrc":"1009:30:88","nodeType":"YulExpressionStatement","src":"1009:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1059:9:88","nodeType":"YulIdentifier","src":"1059:9:88"},{"kind":"number","nativeSrc":"1070:2:88","nodeType":"YulLiteral","src":"1070:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1055:3:88","nodeType":"YulIdentifier","src":"1055:3:88"},"nativeSrc":"1055:18:88","nodeType":"YulFunctionCall","src":"1055:18:88"},{"hexValue":"4c69717569646974795468726573686f6c6441737365744d616e616765723a20","kind":"string","nativeSrc":"1075:34:88","nodeType":"YulLiteral","src":"1075:34:88","type":"","value":"LiquidityThresholdAssetManager: "}],"functionName":{"name":"mstore","nativeSrc":"1048:6:88","nodeType":"YulIdentifier","src":"1048:6:88"},"nativeSrc":"1048:62:88","nodeType":"YulFunctionCall","src":"1048:62:88"},"nativeSrc":"1048:62:88","nodeType":"YulExpressionStatement","src":"1048:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1130:9:88","nodeType":"YulIdentifier","src":"1130:9:88"},{"kind":"number","nativeSrc":"1141:2:88","nodeType":"YulLiteral","src":"1141:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1126:3:88","nodeType":"YulIdentifier","src":"1126:3:88"},"nativeSrc":"1126:18:88","nodeType":"YulFunctionCall","src":"1126:18:88"},{"hexValue":"61737365742063616e6e6f74206265207a65726f2061646472657373","kind":"string","nativeSrc":"1146:30:88","nodeType":"YulLiteral","src":"1146:30:88","type":"","value":"asset cannot be zero address"}],"functionName":{"name":"mstore","nativeSrc":"1119:6:88","nodeType":"YulIdentifier","src":"1119:6:88"},"nativeSrc":"1119:58:88","nodeType":"YulFunctionCall","src":"1119:58:88"},"nativeSrc":"1119:58:88","nodeType":"YulExpressionStatement","src":"1119:58:88"},{"nativeSrc":"1186:27:88","nodeType":"YulAssignment","src":"1186:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1198:9:88","nodeType":"YulIdentifier","src":"1198:9:88"},{"kind":"number","nativeSrc":"1209:3:88","nodeType":"YulLiteral","src":"1209:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1194:3:88","nodeType":"YulIdentifier","src":"1194:3:88"},"nativeSrc":"1194:19:88","nodeType":"YulFunctionCall","src":"1194:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1186:4:88","nodeType":"YulIdentifier","src":"1186:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"795:424:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"946:9:88","nodeType":"YulTypedName","src":"946:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"960:4:88","nodeType":"YulTypedName","src":"960:4:88","type":""}],"src":"795:424:88"},{"body":{"nativeSrc":"1398:239:88","nodeType":"YulBlock","src":"1398:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1415:9:88","nodeType":"YulIdentifier","src":"1415:9:88"},{"kind":"number","nativeSrc":"1426:2:88","nodeType":"YulLiteral","src":"1426:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1408:6:88","nodeType":"YulIdentifier","src":"1408:6:88"},"nativeSrc":"1408:21:88","nodeType":"YulFunctionCall","src":"1408:21:88"},"nativeSrc":"1408:21:88","nodeType":"YulExpressionStatement","src":"1408:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1449:9:88","nodeType":"YulIdentifier","src":"1449:9:88"},{"kind":"number","nativeSrc":"1460:2:88","nodeType":"YulLiteral","src":"1460:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1445:3:88","nodeType":"YulIdentifier","src":"1445:3:88"},"nativeSrc":"1445:18:88","nodeType":"YulFunctionCall","src":"1445:18:88"},{"kind":"number","nativeSrc":"1465:2:88","nodeType":"YulLiteral","src":"1465:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"1438:6:88","nodeType":"YulIdentifier","src":"1438:6:88"},"nativeSrc":"1438:30:88","nodeType":"YulFunctionCall","src":"1438:30:88"},"nativeSrc":"1438:30:88","nodeType":"YulExpressionStatement","src":"1438:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1488:9:88","nodeType":"YulIdentifier","src":"1488:9:88"},{"kind":"number","nativeSrc":"1499:2:88","nodeType":"YulLiteral","src":"1499:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1484:3:88","nodeType":"YulIdentifier","src":"1484:3:88"},"nativeSrc":"1484:18:88","nodeType":"YulFunctionCall","src":"1484:18:88"},{"hexValue":"4552433436323641737365744d616e616765723a207661756c742063616e6e6f","kind":"string","nativeSrc":"1504:34:88","nodeType":"YulLiteral","src":"1504:34:88","type":"","value":"ERC4626AssetManager: vault canno"}],"functionName":{"name":"mstore","nativeSrc":"1477:6:88","nodeType":"YulIdentifier","src":"1477:6:88"},"nativeSrc":"1477:62:88","nodeType":"YulFunctionCall","src":"1477:62:88"},"nativeSrc":"1477:62:88","nodeType":"YulExpressionStatement","src":"1477:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1559:9:88","nodeType":"YulIdentifier","src":"1559:9:88"},{"kind":"number","nativeSrc":"1570:2:88","nodeType":"YulLiteral","src":"1570:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1555:3:88","nodeType":"YulIdentifier","src":"1555:3:88"},"nativeSrc":"1555:18:88","nodeType":"YulFunctionCall","src":"1555:18:88"},{"hexValue":"74206265207a65726f2061646472657373","kind":"string","nativeSrc":"1575:19:88","nodeType":"YulLiteral","src":"1575:19:88","type":"","value":"t be zero address"}],"functionName":{"name":"mstore","nativeSrc":"1548:6:88","nodeType":"YulIdentifier","src":"1548:6:88"},"nativeSrc":"1548:47:88","nodeType":"YulFunctionCall","src":"1548:47:88"},"nativeSrc":"1548:47:88","nodeType":"YulExpressionStatement","src":"1548:47:88"},{"nativeSrc":"1604:27:88","nodeType":"YulAssignment","src":"1604:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1616:9:88","nodeType":"YulIdentifier","src":"1616:9:88"},{"kind":"number","nativeSrc":"1627:3:88","nodeType":"YulLiteral","src":"1627:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1612:3:88","nodeType":"YulIdentifier","src":"1612:3:88"},"nativeSrc":"1612:19:88","nodeType":"YulFunctionCall","src":"1612:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1604:4:88","nodeType":"YulIdentifier","src":"1604:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1224:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1375:9:88","nodeType":"YulTypedName","src":"1375:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:88","nodeType":"YulTypedName","src":"1389:4:88","type":""}],"src":"1224:413:88"},{"body":{"nativeSrc":"1723:186:88","nodeType":"YulBlock","src":"1723:186:88","statements":[{"body":{"nativeSrc":"1769:16:88","nodeType":"YulBlock","src":"1769:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1778:1:88","nodeType":"YulLiteral","src":"1778:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1781:1:88","nodeType":"YulLiteral","src":"1781:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1771:6:88","nodeType":"YulIdentifier","src":"1771:6:88"},"nativeSrc":"1771:12:88","nodeType":"YulFunctionCall","src":"1771:12:88"},"nativeSrc":"1771:12:88","nodeType":"YulExpressionStatement","src":"1771:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1744:7:88","nodeType":"YulIdentifier","src":"1744:7:88"},{"name":"headStart","nativeSrc":"1753:9:88","nodeType":"YulIdentifier","src":"1753:9:88"}],"functionName":{"name":"sub","nativeSrc":"1740:3:88","nodeType":"YulIdentifier","src":"1740:3:88"},"nativeSrc":"1740:23:88","nodeType":"YulFunctionCall","src":"1740:23:88"},{"kind":"number","nativeSrc":"1765:2:88","nodeType":"YulLiteral","src":"1765:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1736:3:88","nodeType":"YulIdentifier","src":"1736:3:88"},"nativeSrc":"1736:32:88","nodeType":"YulFunctionCall","src":"1736:32:88"},"nativeSrc":"1733:52:88","nodeType":"YulIf","src":"1733:52:88"},{"nativeSrc":"1794:29:88","nodeType":"YulVariableDeclaration","src":"1794:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1813:9:88","nodeType":"YulIdentifier","src":"1813:9:88"}],"functionName":{"name":"mload","nativeSrc":"1807:5:88","nodeType":"YulIdentifier","src":"1807:5:88"},"nativeSrc":"1807:16:88","nodeType":"YulFunctionCall","src":"1807:16:88"},"variables":[{"name":"value","nativeSrc":"1798:5:88","nodeType":"YulTypedName","src":"1798:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1873:5:88","nodeType":"YulIdentifier","src":"1873:5:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"1832:40:88","nodeType":"YulIdentifier","src":"1832:40:88"},"nativeSrc":"1832:47:88","nodeType":"YulFunctionCall","src":"1832:47:88"},"nativeSrc":"1832:47:88","nodeType":"YulExpressionStatement","src":"1832:47:88"},{"nativeSrc":"1888:15:88","nodeType":"YulAssignment","src":"1888:15:88","value":{"name":"value","nativeSrc":"1898:5:88","nodeType":"YulIdentifier","src":"1898:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1888:6:88","nodeType":"YulIdentifier","src":"1888:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"1642:267:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1689:9:88","nodeType":"YulTypedName","src":"1689:9:88","type":""},{"name":"dataEnd","nativeSrc":"1700:7:88","nodeType":"YulTypedName","src":"1700:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1712:6:88","nodeType":"YulTypedName","src":"1712:6:88","type":""}],"src":"1642:267:88"},{"body":{"nativeSrc":"2088:241:88","nodeType":"YulBlock","src":"2088:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2105:9:88","nodeType":"YulIdentifier","src":"2105:9:88"},{"kind":"number","nativeSrc":"2116:2:88","nodeType":"YulLiteral","src":"2116:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2098:6:88","nodeType":"YulIdentifier","src":"2098:6:88"},"nativeSrc":"2098:21:88","nodeType":"YulFunctionCall","src":"2098:21:88"},"nativeSrc":"2098:21:88","nodeType":"YulExpressionStatement","src":"2098:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2139:9:88","nodeType":"YulIdentifier","src":"2139:9:88"},{"kind":"number","nativeSrc":"2150:2:88","nodeType":"YulLiteral","src":"2150:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2135:3:88","nodeType":"YulIdentifier","src":"2135:3:88"},"nativeSrc":"2135:18:88","nodeType":"YulFunctionCall","src":"2135:18:88"},{"kind":"number","nativeSrc":"2155:2:88","nodeType":"YulLiteral","src":"2155:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"2128:6:88","nodeType":"YulIdentifier","src":"2128:6:88"},"nativeSrc":"2128:30:88","nodeType":"YulFunctionCall","src":"2128:30:88"},"nativeSrc":"2128:30:88","nodeType":"YulExpressionStatement","src":"2128:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2178:9:88","nodeType":"YulIdentifier","src":"2178:9:88"},{"kind":"number","nativeSrc":"2189:2:88","nodeType":"YulLiteral","src":"2189:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2174:3:88","nodeType":"YulIdentifier","src":"2174:3:88"},"nativeSrc":"2174:18:88","nodeType":"YulFunctionCall","src":"2174:18:88"},{"hexValue":"4552433436323641737365744d616e616765723a207661756c74206d75737420","kind":"string","nativeSrc":"2194:34:88","nodeType":"YulLiteral","src":"2194:34:88","type":"","value":"ERC4626AssetManager: vault must "}],"functionName":{"name":"mstore","nativeSrc":"2167:6:88","nodeType":"YulIdentifier","src":"2167:6:88"},"nativeSrc":"2167:62:88","nodeType":"YulFunctionCall","src":"2167:62:88"},"nativeSrc":"2167:62:88","nodeType":"YulExpressionStatement","src":"2167:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2249:9:88","nodeType":"YulIdentifier","src":"2249:9:88"},{"kind":"number","nativeSrc":"2260:2:88","nodeType":"YulLiteral","src":"2260:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2245:3:88","nodeType":"YulIdentifier","src":"2245:3:88"},"nativeSrc":"2245:18:88","nodeType":"YulFunctionCall","src":"2245:18:88"},{"hexValue":"68617665207468652073616d65206173736574","kind":"string","nativeSrc":"2265:21:88","nodeType":"YulLiteral","src":"2265:21:88","type":"","value":"have the same asset"}],"functionName":{"name":"mstore","nativeSrc":"2238:6:88","nodeType":"YulIdentifier","src":"2238:6:88"},"nativeSrc":"2238:49:88","nodeType":"YulFunctionCall","src":"2238:49:88"},"nativeSrc":"2238:49:88","nodeType":"YulExpressionStatement","src":"2238:49:88"},{"nativeSrc":"2296:27:88","nodeType":"YulAssignment","src":"2296:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2308:9:88","nodeType":"YulIdentifier","src":"2308:9:88"},{"kind":"number","nativeSrc":"2319:3:88","nodeType":"YulLiteral","src":"2319:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2304:3:88","nodeType":"YulIdentifier","src":"2304:3:88"},"nativeSrc":"2304:19:88","nodeType":"YulFunctionCall","src":"2304:19:88"},"variableNames":[{"name":"tail","nativeSrc":"2296:4:88","nodeType":"YulIdentifier","src":"2296:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1914:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2065:9:88","nodeType":"YulTypedName","src":"2065:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2079:4:88","nodeType":"YulTypedName","src":"2079:4:88","type":""}],"src":"1914:415:88"},{"body":{"nativeSrc":"2508:248:88","nodeType":"YulBlock","src":"2508:248:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2525:9:88","nodeType":"YulIdentifier","src":"2525:9:88"},{"kind":"number","nativeSrc":"2536:2:88","nodeType":"YulLiteral","src":"2536:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2518:6:88","nodeType":"YulIdentifier","src":"2518:6:88"},"nativeSrc":"2518:21:88","nodeType":"YulFunctionCall","src":"2518:21:88"},"nativeSrc":"2518:21:88","nodeType":"YulExpressionStatement","src":"2518:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2559:9:88","nodeType":"YulIdentifier","src":"2559:9:88"},{"kind":"number","nativeSrc":"2570:2:88","nodeType":"YulLiteral","src":"2570:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2555:3:88","nodeType":"YulIdentifier","src":"2555:3:88"},"nativeSrc":"2555:18:88","nodeType":"YulFunctionCall","src":"2555:18:88"},{"kind":"number","nativeSrc":"2575:2:88","nodeType":"YulLiteral","src":"2575:2:88","type":"","value":"58"}],"functionName":{"name":"mstore","nativeSrc":"2548:6:88","nodeType":"YulIdentifier","src":"2548:6:88"},"nativeSrc":"2548:30:88","nodeType":"YulFunctionCall","src":"2548:30:88"},"nativeSrc":"2548:30:88","nodeType":"YulExpressionStatement","src":"2548:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2598:9:88","nodeType":"YulIdentifier","src":"2598:9:88"},{"kind":"number","nativeSrc":"2609:2:88","nodeType":"YulLiteral","src":"2609:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2594:3:88","nodeType":"YulIdentifier","src":"2594:3:88"},"nativeSrc":"2594:18:88","nodeType":"YulFunctionCall","src":"2594:18:88"},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661","kind":"string","nativeSrc":"2614:34:88","nodeType":"YulLiteral","src":"2614:34:88","type":"","value":"ERC4626PlusVaultAssetManager: va"}],"functionName":{"name":"mstore","nativeSrc":"2587:6:88","nodeType":"YulIdentifier","src":"2587:6:88"},"nativeSrc":"2587:62:88","nodeType":"YulFunctionCall","src":"2587:62:88"},"nativeSrc":"2587:62:88","nodeType":"YulExpressionStatement","src":"2587:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2669:9:88","nodeType":"YulIdentifier","src":"2669:9:88"},{"kind":"number","nativeSrc":"2680:2:88","nodeType":"YulLiteral","src":"2680:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2665:3:88","nodeType":"YulIdentifier","src":"2665:3:88"},"nativeSrc":"2665:18:88","nodeType":"YulFunctionCall","src":"2665:18:88"},{"hexValue":"756c742063616e6e6f74206265207a65726f2061646472657373","kind":"string","nativeSrc":"2685:28:88","nodeType":"YulLiteral","src":"2685:28:88","type":"","value":"ult cannot be zero address"}],"functionName":{"name":"mstore","nativeSrc":"2658:6:88","nodeType":"YulIdentifier","src":"2658:6:88"},"nativeSrc":"2658:56:88","nodeType":"YulFunctionCall","src":"2658:56:88"},"nativeSrc":"2658:56:88","nodeType":"YulExpressionStatement","src":"2658:56:88"},{"nativeSrc":"2723:27:88","nodeType":"YulAssignment","src":"2723:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2735:9:88","nodeType":"YulIdentifier","src":"2735:9:88"},{"kind":"number","nativeSrc":"2746:3:88","nodeType":"YulLiteral","src":"2746:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2731:3:88","nodeType":"YulIdentifier","src":"2731:3:88"},"nativeSrc":"2731:19:88","nodeType":"YulFunctionCall","src":"2731:19:88"},"variableNames":[{"name":"tail","nativeSrc":"2723:4:88","nodeType":"YulIdentifier","src":"2723:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ccdbdb985a5db0989525665d9ff730f9071cdbe1407a042756a3c2c7ee8ac8ec__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2334:422:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2485:9:88","nodeType":"YulTypedName","src":"2485:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2499:4:88","nodeType":"YulTypedName","src":"2499:4:88","type":""}],"src":"2334:422:88"},{"body":{"nativeSrc":"2935:250:88","nodeType":"YulBlock","src":"2935:250:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2952:9:88","nodeType":"YulIdentifier","src":"2952:9:88"},{"kind":"number","nativeSrc":"2963:2:88","nodeType":"YulLiteral","src":"2963:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2945:6:88","nodeType":"YulIdentifier","src":"2945:6:88"},"nativeSrc":"2945:21:88","nodeType":"YulFunctionCall","src":"2945:21:88"},"nativeSrc":"2945:21:88","nodeType":"YulExpressionStatement","src":"2945:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2986:9:88","nodeType":"YulIdentifier","src":"2986:9:88"},{"kind":"number","nativeSrc":"2997:2:88","nodeType":"YulLiteral","src":"2997:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2982:3:88","nodeType":"YulIdentifier","src":"2982:3:88"},"nativeSrc":"2982:18:88","nodeType":"YulFunctionCall","src":"2982:18:88"},{"kind":"number","nativeSrc":"3002:2:88","nodeType":"YulLiteral","src":"3002:2:88","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"2975:6:88","nodeType":"YulIdentifier","src":"2975:6:88"},"nativeSrc":"2975:30:88","nodeType":"YulFunctionCall","src":"2975:30:88"},"nativeSrc":"2975:30:88","nodeType":"YulExpressionStatement","src":"2975:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3025:9:88","nodeType":"YulIdentifier","src":"3025:9:88"},{"kind":"number","nativeSrc":"3036:2:88","nodeType":"YulLiteral","src":"3036:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3021:3:88","nodeType":"YulIdentifier","src":"3021:3:88"},"nativeSrc":"3021:18:88","nodeType":"YulFunctionCall","src":"3021:18:88"},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661","kind":"string","nativeSrc":"3041:34:88","nodeType":"YulLiteral","src":"3041:34:88","type":"","value":"ERC4626PlusVaultAssetManager: va"}],"functionName":{"name":"mstore","nativeSrc":"3014:6:88","nodeType":"YulIdentifier","src":"3014:6:88"},"nativeSrc":"3014:62:88","nodeType":"YulFunctionCall","src":"3014:62:88"},"nativeSrc":"3014:62:88","nodeType":"YulExpressionStatement","src":"3014:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3096:9:88","nodeType":"YulIdentifier","src":"3096:9:88"},{"kind":"number","nativeSrc":"3107:2:88","nodeType":"YulLiteral","src":"3107:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3092:3:88","nodeType":"YulIdentifier","src":"3092:3:88"},"nativeSrc":"3092:18:88","nodeType":"YulFunctionCall","src":"3092:18:88"},{"hexValue":"756c74206d7573742068617665207468652073616d65206173736574","kind":"string","nativeSrc":"3112:30:88","nodeType":"YulLiteral","src":"3112:30:88","type":"","value":"ult must have the same asset"}],"functionName":{"name":"mstore","nativeSrc":"3085:6:88","nodeType":"YulIdentifier","src":"3085:6:88"},"nativeSrc":"3085:58:88","nodeType":"YulFunctionCall","src":"3085:58:88"},"nativeSrc":"3085:58:88","nodeType":"YulExpressionStatement","src":"3085:58:88"},{"nativeSrc":"3152:27:88","nodeType":"YulAssignment","src":"3152:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3164:9:88","nodeType":"YulIdentifier","src":"3164:9:88"},{"kind":"number","nativeSrc":"3175:3:88","nodeType":"YulLiteral","src":"3175:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3160:3:88","nodeType":"YulIdentifier","src":"3160:3:88"},"nativeSrc":"3160:19:88","nodeType":"YulFunctionCall","src":"3160:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3152:4:88","nodeType":"YulIdentifier","src":"3152:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a96d99cc06ab45ec66e02948e60da0d0be3c012cf33ad7a518f8179a5f94f22__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2761:424:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2912:9:88","nodeType":"YulTypedName","src":"2912:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2926:4:88","nodeType":"YulTypedName","src":"2926:4:88","type":""}],"src":"2761:424:88"},{"body":{"nativeSrc":"3364:244:88","nodeType":"YulBlock","src":"3364:244:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3381:9:88","nodeType":"YulIdentifier","src":"3381:9:88"},{"kind":"number","nativeSrc":"3392:2:88","nodeType":"YulLiteral","src":"3392:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:88","nodeType":"YulIdentifier","src":"3374:6:88"},"nativeSrc":"3374:21:88","nodeType":"YulFunctionCall","src":"3374:21:88"},"nativeSrc":"3374:21:88","nodeType":"YulExpressionStatement","src":"3374:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3415:9:88","nodeType":"YulIdentifier","src":"3415:9:88"},{"kind":"number","nativeSrc":"3426:2:88","nodeType":"YulLiteral","src":"3426:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3411:3:88","nodeType":"YulIdentifier","src":"3411:3:88"},"nativeSrc":"3411:18:88","nodeType":"YulFunctionCall","src":"3411:18:88"},{"kind":"number","nativeSrc":"3431:2:88","nodeType":"YulLiteral","src":"3431:2:88","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"3404:6:88","nodeType":"YulIdentifier","src":"3404:6:88"},"nativeSrc":"3404:30:88","nodeType":"YulFunctionCall","src":"3404:30:88"},"nativeSrc":"3404:30:88","nodeType":"YulExpressionStatement","src":"3404:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3454:9:88","nodeType":"YulIdentifier","src":"3454:9:88"},{"kind":"number","nativeSrc":"3465:2:88","nodeType":"YulLiteral","src":"3465:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3450:3:88","nodeType":"YulIdentifier","src":"3450:3:88"},"nativeSrc":"3450:18:88","nodeType":"YulFunctionCall","src":"3450:18:88"},{"hexValue":"45524334363236506c75735661756c7441737365744d616e616765723a207661","kind":"string","nativeSrc":"3470:34:88","nodeType":"YulLiteral","src":"3470:34:88","type":"","value":"ERC4626PlusVaultAssetManager: va"}],"functionName":{"name":"mstore","nativeSrc":"3443:6:88","nodeType":"YulIdentifier","src":"3443:6:88"},"nativeSrc":"3443:62:88","nodeType":"YulFunctionCall","src":"3443:62:88"},"nativeSrc":"3443:62:88","nodeType":"YulExpressionStatement","src":"3443:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3525:9:88","nodeType":"YulIdentifier","src":"3525:9:88"},{"kind":"number","nativeSrc":"3536:2:88","nodeType":"YulLiteral","src":"3536:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3521:3:88","nodeType":"YulIdentifier","src":"3521:3:88"},"nativeSrc":"3521:18:88","nodeType":"YulFunctionCall","src":"3521:18:88"},{"hexValue":"756c7473206d75737420626520646966666572656e74","kind":"string","nativeSrc":"3541:24:88","nodeType":"YulLiteral","src":"3541:24:88","type":"","value":"ults must be different"}],"functionName":{"name":"mstore","nativeSrc":"3514:6:88","nodeType":"YulIdentifier","src":"3514:6:88"},"nativeSrc":"3514:52:88","nodeType":"YulFunctionCall","src":"3514:52:88"},"nativeSrc":"3514:52:88","nodeType":"YulExpressionStatement","src":"3514:52:88"},{"nativeSrc":"3575:27:88","nodeType":"YulAssignment","src":"3575:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3587:9:88","nodeType":"YulIdentifier","src":"3587:9:88"},{"kind":"number","nativeSrc":"3598:3:88","nodeType":"YulLiteral","src":"3598:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3583:3:88","nodeType":"YulIdentifier","src":"3583:3:88"},"nativeSrc":"3583:19:88","nodeType":"YulFunctionCall","src":"3583:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3575:4:88","nodeType":"YulIdentifier","src":"3575:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3837e6b29379623560507373e5d272dc231d11477358b20fb8016ae7c69b62d2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3190:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3341:9:88","nodeType":"YulTypedName","src":"3341:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3355:4:88","nodeType":"YulTypedName","src":"3355:4:88","type":""}],"src":"3190:418:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IERC20Metadata(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IERC4626_$4333t_contract$_IERC4626_$4333_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20Metadata(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IERC20Metadata(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_contract_IERC20Metadata(value_2)\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_stringliteral_25bf1d37e6c7b631c8b0bea8baef8fab8820314ca864e230ac73a1b569b8addd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"LiquidityThresholdAssetManager: \")\n        mstore(add(headStart, 96), \"asset cannot be zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6fac6f671d8b7282109ad8f6bd4fec6acf6cd5e3fe8f7f52f3637ad18e0291cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"ERC4626AssetManager: vault canno\")\n        mstore(add(headStart, 96), \"t be zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20Metadata(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_4cbfb20397ef4f4eb4d6ebfe08e223892b8916d4cd5d7e562d847cf711157c66__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"ERC4626AssetManager: vault must \")\n        mstore(add(headStart, 96), \"have the same asset\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_ccdbdb985a5db0989525665d9ff730f9071cdbe1407a042756a3c2c7ee8ac8ec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 58)\n        mstore(add(headStart, 64), \"ERC4626PlusVaultAssetManager: va\")\n        mstore(add(headStart, 96), \"ult cannot be zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8a96d99cc06ab45ec66e02948e60da0d0be3c012cf33ad7a518f8179a5f94f22__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"ERC4626PlusVaultAssetManager: va\")\n        mstore(add(headStart, 96), \"ult must have the same asset\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3837e6b29379623560507373e5d272dc231d11477358b20fb8016ae7c69b62d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"ERC4626PlusVaultAssetManager: va\")\n        mstore(add(headStart, 96), \"ults must be different\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405234801561000f575f5ffd5b5060405161215c38038061215c83398101604081905261002e916103f1565b8282816001600160a01b0381166100b25760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b0390811660805281166101285760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b60648201526084016100a9565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610164573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610188919061043b565b6001600160a01b0316826001600160a01b03161461020e5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d652061737365740000000000000000000000000060648201526084016100a9565b6001600160a01b0390811660a0528216905061027f5760405162461bcd60e51b815260206004820152603a60248201525f51602061213c5f395f51905f5260448201527f756c742063616e6e6f74206265207a65726f206164647265737300000000000060648201526084016100a9565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102df919061043b565b6001600160a01b0316836001600160a01b0316146103525760405162461bcd60e51b815260206004820152603c60248201525f51602061213c5f395f51905f5260448201527f756c74206d7573742068617665207468652073616d652061737365740000000060648201526084016100a9565b806001600160a01b0316826001600160a01b0316036103c65760405162461bcd60e51b815260206004820152603660248201525f51602061213c5f395f51905f5260448201527f756c7473206d75737420626520646966666572656e740000000000000000000060648201526084016100a9565b6001600160a01b031660c0525061045d9050565b6001600160a01b03811681146103ee575f5ffd5b50565b5f5f5f60608486031215610403575f5ffd5b835161040e816103da565b602085015190935061041f816103da565b6040850151909250610430816103da565b809150509250925092565b5f6020828403121561044b575f5ffd5b8151610456816103da565b9392505050565b60805160a05160c051611c066105365f395f81816106d8015281816107cf015281816108e201528181610c1a01528181610d5701528181610f1601528181610fa601526113da01525f81816108690152818161090b01528181610af901528181610b8401528181610e23015281816112be015281816113460152818161158301526115f001525f81816101ad0152818161029d01528181610395015281816104e801528181610606015281816109f501528181610c9001528181610d86015281816110d40152818161161f01526117940152611c065ff3fe608060405234801561000f575f5ffd5b50600436106100ca575f3560e01c80634eb978a4116100885780638d7ddd90116100635780638d7ddd9014610172578063948cb7191461017a578063cec16f3f14610182578063f9c4fd1b1461018a575f5ffd5b80634eb978a41461014f5780637d7c2a1c146101575780638831c06e1461015f575f5ffd5b8062a9bb8d146100ce57806301ffc9a7146100e35780631014a0c21461010b5780633b6612c81461012c5780633db77cb8146101345780634dd93bd314610147575b5f5ffd5b6100e16100dc3660046118e0565b610192565b005b6100f66100f1366004611909565b610491565b60405190151581526020015b60405180910390f35b61011e610119366004611930565b6104c7565b604051908152602001610102565b61011e610603565b6100e1610142366004611930565b6106ba565b61011e6108dc565b61011e610939565b6100e16109de565b6100e161016d366004611930565b610adc565b61011e610c8d565b6100e1610d38565b61011e610df1565b61011e6110d1565b5f516020611bb15f395f51905f525f198414610290576102457f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610207573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190611947565b61023690600a611a5e565b6102409086611a6c565b611184565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198314610388576103307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031b9190611947565b61032690600a611a5e565b6102409085611a6c565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198214610483576104287f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104139190611947565b61041e90600a611a5e565b6102409084611a6c565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061048c6111ec565b505050565b5f6001600160e01b031982166301ffc9a760e01b14806104c157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561052d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105519190611a8b565b90508281106105bd5760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b5f6105c66108dc565b9050816105d16110d1565b6105db9086611aa2565b6105e59190611ab5565b9250808311156105f3578092505b6105fc83611290565b5050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610660573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106849190611947565b61068f90600a611a5e565b5f516020611bb15f395f51905f52546106b59190600160401b900463ffffffff16611ac8565b905090565b5f5f1982036107b857604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa15801561072d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190611a8b565b30306040518463ffffffff1660e01b815260040161077193929190611adf565b6020604051808303815f875af115801561078d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190611a8b565b905061084d565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061080890859030908190600401611adf565b6020604051808303815f875af1158015610824573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108489190611a8b565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303815f875af11580156108b8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048c9190611a8b565b5f6109067f0000000000000000000000000000000000000000000000000000000000000000611429565b61092f7f0000000000000000000000000000000000000000000000000000000000000000611429565b6106b59190611aa2565b5f5f6109436108dc565b5f516020611bb15f395f51905f528054919250905f9061097390600160601b90046001600160801b031684611afe565b905061097e836114f6565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a42573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a669190611a8b565b9050610a70610603565b811115610a9457610a91610a826110d1565b610a8c9083611ab5565b61155e565b50565b610a9c610c8d565b811015610a91575f610ac7610aaf6108dc565b83610ab86110d1565b610ac29190611ab5565b6115ba565b90508015610ad857610ad881611290565b5050565b5f198103610b6d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6a9190611a8b565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bbd90849030908190600401611adf565b6020604051808303815f875af1158015610bd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfd9190611a8b565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303815f875af1158015610c69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad89190611a8b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611947565b610d1990600a611a5e565b5f516020611bb15f395f51905f52546106b5919063ffffffff16611ac8565b610d406115d1565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303815f875af1158015610dcd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a919190611b24565b5f805f516020611bb15f395f51905f526040516370a0823160e01b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610e70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e949190611a8b565b30306040518463ffffffff1660e01b8152600401610eb493929190611adf565b6020604051808303815f875af1158015610ed0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef49190611a8b565b604051636c82bbbf60e11b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610f5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7f9190611a8b565b90505f815f03610f8f575f61101f565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba08765290610fdf90859030908190600401611adf565b6020604051808303815f875af1158015610ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101f9190611a8b565b8454909150600160601b90046001600160801b031661103e8285611aa2565b6110489190611afe565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110868483611aa2565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111529190611947565b61115d90600a611a5e565b5f516020611bb15f395f51905f52546106b59190640100000000900463ffffffff16611ac8565b5f63ffffffff8211156111e85760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105b4565b5090565b5f516020611bb15f395f51905f52805463ffffffff640100000000820481169116118015906112335750805463ffffffff600160401b820481166401000000009092041611155b610a915760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105b4565b6112998161164e565b60405163ce96cb7760e01b81523060048201525f906113279083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa158015611303573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac29190611a8b565b905080156113c157604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061137f90849030908190600401611adf565b6020604051808303815f875af115801561139b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bf9190611a8b565b505b6113cb8183611ab5565b15610ad8576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114098385611ab5565b30306040518463ffffffff1660e01b815260040161089c93929190611adf565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa158015611475573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114999190611a8b565b6040518263ffffffff1660e01b81526004016114b791815260200190565b602060405180830381865afa1580156114d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c19190611a8b565b5f6001600160801b038211156111e85760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105b4565b61156781611704565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c4d565b5f8183106115c857816115ca565b825b9392505050565b6115d9611792565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610db1565b5f516020611bb15f395f51905f5280546116819061167c90600160601b90046001600160801b0316846115ba565b6114f6565b81548290600c906116a3908490600160601b90046001600160801b0316611b43565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c65826040516116f891815260200190565b60405180910390a15050565b5f516020611bb15f395f51905f5261171b826114f6565b81548290600c9061173d908490600160601b90046001600160801b0316611b62565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf4826040516116f891815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181c9190611b95565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611857573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187b9190611b95565b6001600160a01b0316146118c25760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105b4565b5f516020611bb15f395f51905f5280546001600160e01b0319169055565b5f5f5f606084860312156118f2575f5ffd5b505081359360208301359350604090920135919050565b5f60208284031215611919575f5ffd5b81356001600160e01b0319811681146115ca575f5ffd5b5f60208284031215611940575f5ffd5b5035919050565b5f60208284031215611957575f5ffd5b815160ff811681146115ca575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156119b65780850481111561199a5761199a611967565b60018416156119a857908102905b60019390931c92800261197f565b935093915050565b5f826119cc575060016104c1565b816119d857505f6104c1565b81600181146119ee57600281146119f857611a14565b60019150506104c1565b60ff841115611a0957611a09611967565b50506001821b6104c1565b5060208310610133831016604e8410600b8410161715611a37575081810a6104c1565b611a435f19848461197b565b805f1904821115611a5657611a56611967565b029392505050565b5f6115ca60ff8416836119be565b5f82611a8657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611a9b575f5ffd5b5051919050565b808201808211156104c1576104c1611967565b818103818111156104c1576104c1611967565b80820281158282048414176104c1576104c1611967565b9283526001600160a01b03918216602084015216604082015260600190565b8181035f831280158383131683831282161715611b1d57611b1d611967565b5092915050565b5f60208284031215611b34575f5ffd5b815180151581146115ca575f5ffd5b6001600160801b0382811682821603908111156104c1576104c1611967565b6001600160801b0381811683821601908111156104c1576104c1611967565b6001600160a01b0381168114610a91575f5ffd5b5f60208284031215611ba5575f5ffd5b81516115ca81611b8156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a264697066735822122041899b1a2fd0dd10fe545bf2461c0beeb94e865097d047829309778e35a3c3e564736f6c634300081c003345524334363236506c75735661756c7441737365744d616e616765723a207661","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x215C CODESIZE SUB DUP1 PUSH2 0x215C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x3F1 JUMP JUMPDEST DUP3 DUP3 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69717569646974795468726573686F6C6441737365744D616E616765723A20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61737365742063616E6E6F74206265207A65726F206164647265737300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x80 MSTORE DUP2 AND PUSH2 0x128 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433436323641737365744D616E616765723A207661756C742063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x74206265207A65726F2061646472657373 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38D52E0F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x164 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x188 SWAP2 SWAP1 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x20E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433436323641737365744D616E616765723A207661756C74206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x68617665207468652073616D6520617373657400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0xA0 MSTORE DUP3 AND SWAP1 POP PUSH2 0x27F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x213C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x756C742063616E6E6F74206265207A65726F2061646472657373000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x38D52E0F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x352 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x213C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x756C74206D7573742068617665207468652073616D6520617373657400000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x3C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x213C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x756C7473206D75737420626520646966666572656E7400000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP PUSH2 0x45D SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x403 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x40E DUP2 PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x41F DUP2 PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x430 DUP2 PUSH2 0x3DA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x456 DUP2 PUSH2 0x3DA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x1C06 PUSH2 0x536 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x6D8 ADD MSTORE DUP2 DUP2 PUSH2 0x7CF ADD MSTORE DUP2 DUP2 PUSH2 0x8E2 ADD MSTORE DUP2 DUP2 PUSH2 0xC1A ADD MSTORE DUP2 DUP2 PUSH2 0xD57 ADD MSTORE DUP2 DUP2 PUSH2 0xF16 ADD MSTORE DUP2 DUP2 PUSH2 0xFA6 ADD MSTORE PUSH2 0x13DA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x869 ADD MSTORE DUP2 DUP2 PUSH2 0x90B ADD MSTORE DUP2 DUP2 PUSH2 0xAF9 ADD MSTORE DUP2 DUP2 PUSH2 0xB84 ADD MSTORE DUP2 DUP2 PUSH2 0xE23 ADD MSTORE DUP2 DUP2 PUSH2 0x12BE ADD MSTORE DUP2 DUP2 PUSH2 0x1346 ADD MSTORE DUP2 DUP2 PUSH2 0x1583 ADD MSTORE PUSH2 0x15F0 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x1AD ADD MSTORE DUP2 DUP2 PUSH2 0x29D ADD MSTORE DUP2 DUP2 PUSH2 0x395 ADD MSTORE DUP2 DUP2 PUSH2 0x4E8 ADD MSTORE DUP2 DUP2 PUSH2 0x606 ADD MSTORE DUP2 DUP2 PUSH2 0x9F5 ADD MSTORE DUP2 DUP2 PUSH2 0xC90 ADD MSTORE DUP2 DUP2 PUSH2 0xD86 ADD MSTORE DUP2 DUP2 PUSH2 0x10D4 ADD MSTORE DUP2 DUP2 PUSH2 0x161F ADD MSTORE PUSH2 0x1794 ADD MSTORE PUSH2 0x1C06 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCA JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EB978A4 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x8D7DDD90 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x8D7DDD90 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x948CB719 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xCEC16F3F EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xF9C4FD1B EQ PUSH2 0x18A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x8831C06E EQ PUSH2 0x15F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH3 0xA9BB8D EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0x1014A0C2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x3B6612C8 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x3DB77CB8 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4DD93BD3 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x192 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF6 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1909 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11E PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x603 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0x6BA JUMP JUMPDEST PUSH2 0x11E PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x11E PUSH2 0x939 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x9DE JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0xADC JUMP JUMPDEST PUSH2 0x11E PUSH2 0xC8D JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xD38 JUMP JUMPDEST PUSH2 0x11E PUSH2 0xDF1 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x10D1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 NOT DUP5 EQ PUSH2 0x290 JUMPI PUSH2 0x245 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x207 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x236 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP7 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1184 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x26 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP4 EQ PUSH2 0x388 JUMPI PUSH2 0x330 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x326 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP6 PUSH2 0x1A6C JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x27 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x483 JUMPI PUSH2 0x428 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x41E SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP5 PUSH2 0x1A6C JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x28 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP PUSH2 0x48C PUSH2 0x11EC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4C1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1E670A97 PUSH1 0xE2 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x52D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT PUSH2 0x5BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206E65656420746F20726566696C6C207468652077616C6C657420666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81D1A1A5CC81C185E5B595B9D PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x5C6 PUSH2 0x8DC JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x5D1 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x5DB SWAP1 DUP7 PUSH2 0x1AA2 JUMP JUMPDEST PUSH2 0x5E5 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x5F3 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5FC DUP4 PUSH2 0x1290 JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x660 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x68F SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH0 NOT DUP3 SUB PUSH2 0x7B8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6C82BBBF PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0xD905777E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x751 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x771 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B1 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH2 0x84D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0x808 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x824 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x848 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP DUP2 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8B8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x48C SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH2 0x906 PUSH32 0x0 PUSH2 0x1429 JUMP JUMPDEST PUSH2 0x92F PUSH32 0x0 PUSH2 0x1429 JUMP JUMPDEST PUSH2 0x6B5 SWAP2 SWAP1 PUSH2 0x1AA2 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x943 PUSH2 0x8DC JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH0 SWAP1 PUSH2 0x973 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP PUSH2 0x97E DUP4 PUSH2 0x14F6 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA42 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH2 0xA70 PUSH2 0x603 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0xA94 JUMPI PUSH2 0xA91 PUSH2 0xA82 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0xA8C SWAP1 DUP4 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x155E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA9C PUSH2 0xC8D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xA91 JUMPI PUSH0 PUSH2 0xAC7 PUSH2 0xAAF PUSH2 0x8DC JUMP JUMPDEST DUP4 PUSH2 0xAB8 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH2 0xAD8 DUP2 PUSH2 0x1290 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 NOT DUP2 SUB PUSH2 0xB6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE96CB77 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCE96CB77 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB46 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0xBBD SWAP1 DUP5 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBD9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBFD SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC69 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD8 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCEA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0E SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0xD19 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x15D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDCD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA91 SWAP2 SWAP1 PUSH2 0x1B24 JUMP JUMPDEST PUSH0 DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE70 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE94 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xED0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEF4 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6C82BBBF PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD905777E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF7F SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH0 SUB PUSH2 0xF8F JUMPI PUSH0 PUSH2 0x101F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5D043B29 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 PUSH2 0xFDF SWAP1 DUP6 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101F SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x103E DUP3 DUP6 PUSH2 0x1AA2 JUMP JUMPDEST PUSH2 0x1048 SWAP2 SWAP1 PUSH2 0x1AFE JUMP JUMPDEST DUP5 SLOAD PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP6 SSTORE SWAP5 POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 PUSH2 0x1086 DUP5 DUP4 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1152 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x115D SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x11E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x1233 JUMPI POP DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND GT ISZERO JUMPDEST PUSH2 0xA91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A204C6971756964697479206C696D69747320617265 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81A5B9D985B1A59 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x1299 DUP2 PUSH2 0x164E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCE96CB77 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x1327 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCE96CB77 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1303 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x13C1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0x137F SWAP1 DUP5 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x139B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13BF SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP JUMPDEST PUSH2 0x13CB DUP2 DUP4 PUSH2 0x1AB5 JUMP JUMPDEST ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xB460AF94 PUSH2 0x1409 DUP4 DUP6 PUSH2 0x1AB5 JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x7A2D13A SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1475 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1499 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0x11E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x1567 DUP2 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD PUSH2 0xC4D JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x15C8 JUMPI DUP2 PUSH2 0x15CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x15D9 PUSH2 0x1792 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH2 0xDB1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH2 0x1681 SWAP1 PUSH2 0x167C SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x14F6 JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x16A3 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1B43 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x171B DUP3 PUSH2 0x14F6 JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x173D SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1B62 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0CDEAC88E111E1DD9B9F043E8C671053DEDFBAECCABFB144FD51A4F870FCF4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181C SWAP2 SWAP1 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1857 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x187B SWAP2 SWAP1 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x82E6E6CAE840DAD2E6DAC2E8C6D PUSH1 0x93 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18F2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1919 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1940 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1957 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x19B6 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x199A JUMPI PUSH2 0x199A PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x19A8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x197F JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x19CC JUMPI POP PUSH1 0x1 PUSH2 0x4C1 JUMP JUMPDEST DUP2 PUSH2 0x19D8 JUMPI POP PUSH0 PUSH2 0x4C1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x19EE JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x19F8 JUMPI PUSH2 0x1A14 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1A09 JUMPI PUSH2 0x1A09 PUSH2 0x1967 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x4C1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1A37 JUMPI POP DUP2 DUP2 EXP PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x1A43 PUSH0 NOT DUP5 DUP5 PUSH2 0x197B JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1A56 JUMPI PUSH2 0x1A56 PUSH2 0x1967 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15CA PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x19BE JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1A86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x1B1D JUMPI PUSH2 0x1B1D PUSH2 0x1967 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B34 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA91 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15CA DUP2 PUSH2 0x1B81 JUMP INVALID 0x22 DUP6 CALLCODE SHR 0xF9 CHAINID DELEGATECALL CALL CODECOPY 0xF8 0x4D PUSH1 0xD1 0xBD TIMESTAMP 0xE4 SHL PUSH29 0xECBB3685384F294F426AC09F5F46A264697066735822122041899B1A2F 0xD0 0xDD LT INVALID SLOAD JUMPDEST CALLCODE CHAINID SHR SIGNEXTEND 0xEE 0xB9 0x4E DUP7 POP SWAP8 0xD0 SELFBALANCE DUP3 SWAP4 MULMOD PUSH24 0x8E35A3C3E564736F6C634300081C00334552433436323650 PUSH13 0x75735661756C7441737365744D PUSH2 0x6E61 PUSH8 0x65723A2076610000 ","sourceMap":"1001:3788:50:-:0;;;1118:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1236:6;1244;1236;-1:-1:-1;;;;;1958:29:54;;1950:102;;;;-1:-1:-1;;;1950:102:54;;997:2:88;1950:102:54;;;979:21:88;1036:2;1016:18;;;1009:30;1075:34;1055:18;;;1048:62;1146:30;1126:18;;;1119:58;1194:19;;1950:102:54;;;;;;;;;-1:-1:-1;;;;;2058:15:54;;;;;1054:29:49;::::1;1046:91;;;::::0;-1:-1:-1;;;1046:91:49;;1426:2:88;1046:91:49::1;::::0;::::1;1408:21:88::0;1465:2;1445:18;;;1438:30;1504:34;1484:18;;;1477:62;-1:-1:-1;;;1555:18:88;;;1548:47;1612:19;;1046:91:49::1;1224:413:88::0;1046:91:49::1;1170:6;-1:-1:-1::0;;;;;1170:12:49::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1151:33:49::1;1159:6;-1:-1:-1::0;;;;;1151:33:49::1;;1143:97;;;::::0;-1:-1:-1;;;1143:97:49;;2116:2:88;1143:97:49::1;::::0;::::1;2098:21:88::0;2155:2;2135:18;;;2128:30;2194:34;2174:18;;;2167:62;2265:21;2245:18;;;2238:49;2304:19;;1143:97:49::1;1914:415:88::0;1143:97:49::1;-1:-1:-1::0;;;;;1246:15:49;;::::1;;::::0;1266:42:50;::::1;::::0;-1:-1:-1;1258:113:50::1;;;::::0;-1:-1:-1;;;1258:113:50;;2536:2:88;1258:113:50::1;::::0;::::1;2518:21:88::0;2575:2;2555:18;;;2548:30;-1:-1:-1;;;;;;;;;;;2594:18:88;;;2587:62;2685:28;2665:18;;;2658:56;2731:19;;1258:113:50::1;2334:422:88::0;1258:113:50::1;1411:19;-1:-1:-1::0;;;;;1411:25:50::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1392:46:50::1;1400:6;-1:-1:-1::0;;;;;1392:46:50::1;;1377:137;;;::::0;-1:-1:-1;;;1377:137:50;;2963:2:88;1377:137:50::1;::::0;::::1;2945:21:88::0;3002:2;2982:18;;;2975:30;-1:-1:-1;;;;;;;;;;;3021:18:88;;;3014:62;3112:30;3092:18;;;3085:58;3160:19;;1377:137:50::1;2761:424:88::0;1377:137:50::1;1538:19;-1:-1:-1::0;;;;;1528:29:50::1;:6;-1:-1:-1::0;;;;;1528:29:50::1;::::0;1520:96:::1;;;::::0;-1:-1:-1;;;1520:96:50;;3392:2:88;1520:96:50::1;::::0;::::1;3374:21:88::0;3431:2;3411:18;;;3404:30;-1:-1:-1;;;;;;;;;;;3450:18:88;;;3443:62;3541:24;3521:18;;;3514:52;3583:19;;1520:96:50::1;3190:418:88::0;1520:96:50::1;-1:-1:-1::0;;;;;1622:41:50::1;;::::0;-1:-1:-1;1001:3788:50;;-1:-1:-1;1001:3788:50;14:147:88;-1:-1:-1;;;;;105:31:88;;95:42;;85:70;;151:1;148;141:12;85:70;14:147;:::o;166:624::-;311:6;319;327;380:2;368:9;359:7;355:23;351:32;348:52;;;396:1;393;386:12;348:52;428:9;422:16;447:47;488:5;447:47;:::i;:::-;563:2;548:18;;542:25;513:5;;-1:-1:-1;576:49:88;542:25;576:49;:::i;:::-;696:2;681:18;;675:25;644:7;;-1:-1:-1;709:49:88;675:25;709:49;:::i;:::-;777:7;767:17;;;166:624;;;;;:::o;1642:267::-;1712:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;1813:9;1807:16;1832:47;1873:5;1832:47;:::i;:::-;1898:5;1642:267;-1:-1:-1;;;1642:267:88:o;3190:418::-;1001:3788:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_deinvest_11182":{"entryPoint":4752,"id":11182,"parameterSlots":1,"returnSlots":0},"@_deinvest_14739":{"entryPoint":5710,"id":14739,"parameterSlots":1,"returnSlots":0},"@_erc4626Assets_11327":{"entryPoint":5161,"id":11327,"parameterSlots":1,"returnSlots":1},"@_invest_10932":{"entryPoint":5470,"id":10932,"parameterSlots":1,"returnSlots":0},"@_invest_14707":{"entryPoint":5892,"id":14707,"parameterSlots":1,"returnSlots":0},"@_validateParameters_14467":{"entryPoint":4588,"id":14467,"parameterSlots":0,"returnSlots":0},"@connect_10909":{"entryPoint":5585,"id":10909,"parameterSlots":0,"returnSlots":0},"@connect_11206":{"entryPoint":3384,"id":11206,"parameterSlots":0,"returnSlots":0},"@connect_14518":{"entryPoint":6034,"id":14518,"parameterSlots":0,"returnSlots":0},"@deinvestAll_11307":{"entryPoint":3569,"id":11307,"parameterSlots":0,"returnSlots":1},"@diamondStorage_14442":{"entryPoint":null,"id":14442,"parameterSlots":0,"returnSlots":1},"@discretionaryToVault_11460":{"entryPoint":1722,"id":11460,"parameterSlots":1,"returnSlots":0},"@getInvestmentValue_11342":{"entryPoint":2268,"id":11342,"parameterSlots":0,"returnSlots":1},"@liquidityMax_14787":{"entryPoint":1539,"id":14787,"parameterSlots":0,"returnSlots":1},"@liquidityMiddle_14771":{"entryPoint":4305,"id":14771,"parameterSlots":0,"returnSlots":1},"@liquidityMin_14755":{"entryPoint":3213,"id":14755,"parameterSlots":0,"returnSlots":1},"@min_7926":{"entryPoint":5562,"id":7926,"parameterSlots":2,"returnSlots":1},"@rebalance_14628":{"entryPoint":2526,"id":14628,"parameterSlots":0,"returnSlots":0},"@recordEarnings_14566":{"entryPoint":2361,"id":14566,"parameterSlots":0,"returnSlots":1},"@refillWallet_14683":{"entryPoint":1223,"id":14683,"parameterSlots":1,"returnSlots":1},"@setLiquidityThresholds_14898":{"entryPoint":402,"id":14898,"parameterSlots":3,"returnSlots":0},"@supportsInterface_14922":{"entryPoint":1169,"id":14922,"parameterSlots":1,"returnSlots":1},"@toUint128_9152":{"entryPoint":5366,"id":9152,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":4484,"id":9452,"parameterSlots":1,"returnSlots":1},"@vaultToDiscretionary_11391":{"entryPoint":2780,"id":11391,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6948,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":7061,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6448,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6795,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":6368,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":6471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed":{"entryPoint":6879,"id":null,"parameterSlots":4,"returnSlots":1},"checked_add_t_uint128":{"entryPoint":7010,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6818,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":6764,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":6523,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":6750,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":6590,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6856,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int256":{"entryPoint":6910,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint128":{"entryPoint":6979,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6837,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6503,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IPolicyPool":{"entryPoint":7041,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9213:88","nodeType":"YulBlock","src":"0:9213:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"118:362:88","nodeType":"YulBlock","src":"118:362:88","statements":[{"body":{"nativeSrc":"164:16:88","nodeType":"YulBlock","src":"164:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"173:1:88","nodeType":"YulLiteral","src":"173:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"176:1:88","nodeType":"YulLiteral","src":"176:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"166:6:88","nodeType":"YulIdentifier","src":"166:6:88"},"nativeSrc":"166:12:88","nodeType":"YulFunctionCall","src":"166:12:88"},"nativeSrc":"166:12:88","nodeType":"YulExpressionStatement","src":"166:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"139:7:88","nodeType":"YulIdentifier","src":"139:7:88"},{"name":"headStart","nativeSrc":"148:9:88","nodeType":"YulIdentifier","src":"148:9:88"}],"functionName":{"name":"sub","nativeSrc":"135:3:88","nodeType":"YulIdentifier","src":"135:3:88"},"nativeSrc":"135:23:88","nodeType":"YulFunctionCall","src":"135:23:88"},{"kind":"number","nativeSrc":"160:2:88","nodeType":"YulLiteral","src":"160:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"131:3:88","nodeType":"YulIdentifier","src":"131:3:88"},"nativeSrc":"131:32:88","nodeType":"YulFunctionCall","src":"131:32:88"},"nativeSrc":"128:52:88","nodeType":"YulIf","src":"128:52:88"},{"nativeSrc":"189:14:88","nodeType":"YulVariableDeclaration","src":"189:14:88","value":{"kind":"number","nativeSrc":"202:1:88","nodeType":"YulLiteral","src":"202:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"193:5:88","nodeType":"YulTypedName","src":"193:5:88","type":""}]},{"nativeSrc":"212:32:88","nodeType":"YulAssignment","src":"212:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"234:9:88","nodeType":"YulIdentifier","src":"234:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"221:12:88","nodeType":"YulIdentifier","src":"221:12:88"},"nativeSrc":"221:23:88","nodeType":"YulFunctionCall","src":"221:23:88"},"variableNames":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"}]},{"nativeSrc":"253:15:88","nodeType":"YulAssignment","src":"253:15:88","value":{"name":"value","nativeSrc":"263:5:88","nodeType":"YulIdentifier","src":"263:5:88"},"variableNames":[{"name":"value0","nativeSrc":"253:6:88","nodeType":"YulIdentifier","src":"253:6:88"}]},{"nativeSrc":"277:16:88","nodeType":"YulVariableDeclaration","src":"277:16:88","value":{"kind":"number","nativeSrc":"292:1:88","nodeType":"YulLiteral","src":"292:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"281:7:88","nodeType":"YulTypedName","src":"281:7:88","type":""}]},{"nativeSrc":"302:43:88","nodeType":"YulAssignment","src":"302:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"330:9:88","nodeType":"YulIdentifier","src":"330:9:88"},{"kind":"number","nativeSrc":"341:2:88","nodeType":"YulLiteral","src":"341:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"326:3:88","nodeType":"YulIdentifier","src":"326:3:88"},"nativeSrc":"326:18:88","nodeType":"YulFunctionCall","src":"326:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"313:12:88","nodeType":"YulIdentifier","src":"313:12:88"},"nativeSrc":"313:32:88","nodeType":"YulFunctionCall","src":"313:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"302:7:88","nodeType":"YulIdentifier","src":"302:7:88"}]},{"nativeSrc":"354:17:88","nodeType":"YulAssignment","src":"354:17:88","value":{"name":"value_1","nativeSrc":"364:7:88","nodeType":"YulIdentifier","src":"364:7:88"},"variableNames":[{"name":"value1","nativeSrc":"354:6:88","nodeType":"YulIdentifier","src":"354:6:88"}]},{"nativeSrc":"380:16:88","nodeType":"YulVariableDeclaration","src":"380:16:88","value":{"kind":"number","nativeSrc":"395:1:88","nodeType":"YulLiteral","src":"395:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"384:7:88","nodeType":"YulTypedName","src":"384:7:88","type":""}]},{"nativeSrc":"405:43:88","nodeType":"YulAssignment","src":"405:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"433:9:88","nodeType":"YulIdentifier","src":"433:9:88"},{"kind":"number","nativeSrc":"444:2:88","nodeType":"YulLiteral","src":"444:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"429:3:88","nodeType":"YulIdentifier","src":"429:3:88"},"nativeSrc":"429:18:88","nodeType":"YulFunctionCall","src":"429:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"416:12:88","nodeType":"YulIdentifier","src":"416:12:88"},"nativeSrc":"416:32:88","nodeType":"YulFunctionCall","src":"416:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"405:7:88","nodeType":"YulIdentifier","src":"405:7:88"}]},{"nativeSrc":"457:17:88","nodeType":"YulAssignment","src":"457:17:88","value":{"name":"value_2","nativeSrc":"467:7:88","nodeType":"YulIdentifier","src":"467:7:88"},"variableNames":[{"name":"value2","nativeSrc":"457:6:88","nodeType":"YulIdentifier","src":"457:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nativeSrc":"14:466:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"68:9:88","nodeType":"YulTypedName","src":"68:9:88","type":""},{"name":"dataEnd","nativeSrc":"79:7:88","nodeType":"YulTypedName","src":"79:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"91:6:88","nodeType":"YulTypedName","src":"91:6:88","type":""},{"name":"value1","nativeSrc":"99:6:88","nodeType":"YulTypedName","src":"99:6:88","type":""},{"name":"value2","nativeSrc":"107:6:88","nodeType":"YulTypedName","src":"107:6:88","type":""}],"src":"14:466:88"},{"body":{"nativeSrc":"554:217:88","nodeType":"YulBlock","src":"554:217:88","statements":[{"body":{"nativeSrc":"600:16:88","nodeType":"YulBlock","src":"600:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"609:1:88","nodeType":"YulLiteral","src":"609:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"612:1:88","nodeType":"YulLiteral","src":"612:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"602:6:88","nodeType":"YulIdentifier","src":"602:6:88"},"nativeSrc":"602:12:88","nodeType":"YulFunctionCall","src":"602:12:88"},"nativeSrc":"602:12:88","nodeType":"YulExpressionStatement","src":"602:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"575:7:88","nodeType":"YulIdentifier","src":"575:7:88"},{"name":"headStart","nativeSrc":"584:9:88","nodeType":"YulIdentifier","src":"584:9:88"}],"functionName":{"name":"sub","nativeSrc":"571:3:88","nodeType":"YulIdentifier","src":"571:3:88"},"nativeSrc":"571:23:88","nodeType":"YulFunctionCall","src":"571:23:88"},{"kind":"number","nativeSrc":"596:2:88","nodeType":"YulLiteral","src":"596:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"567:3:88","nodeType":"YulIdentifier","src":"567:3:88"},"nativeSrc":"567:32:88","nodeType":"YulFunctionCall","src":"567:32:88"},"nativeSrc":"564:52:88","nodeType":"YulIf","src":"564:52:88"},{"nativeSrc":"625:36:88","nodeType":"YulVariableDeclaration","src":"625:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"651:9:88","nodeType":"YulIdentifier","src":"651:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"638:12:88","nodeType":"YulIdentifier","src":"638:12:88"},"nativeSrc":"638:23:88","nodeType":"YulFunctionCall","src":"638:23:88"},"variables":[{"name":"value","nativeSrc":"629:5:88","nodeType":"YulTypedName","src":"629:5:88","type":""}]},{"body":{"nativeSrc":"725:16:88","nodeType":"YulBlock","src":"725:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"734:1:88","nodeType":"YulLiteral","src":"734:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"737:1:88","nodeType":"YulLiteral","src":"737:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"727:6:88","nodeType":"YulIdentifier","src":"727:6:88"},"nativeSrc":"727:12:88","nodeType":"YulFunctionCall","src":"727:12:88"},"nativeSrc":"727:12:88","nodeType":"YulExpressionStatement","src":"727:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"683:5:88","nodeType":"YulIdentifier","src":"683:5:88"},{"arguments":[{"name":"value","nativeSrc":"694:5:88","nodeType":"YulIdentifier","src":"694:5:88"},{"arguments":[{"kind":"number","nativeSrc":"705:3:88","nodeType":"YulLiteral","src":"705:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"710:10:88","nodeType":"YulLiteral","src":"710:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:20:88","nodeType":"YulFunctionCall","src":"701:20:88"}],"functionName":{"name":"and","nativeSrc":"690:3:88","nodeType":"YulIdentifier","src":"690:3:88"},"nativeSrc":"690:32:88","nodeType":"YulFunctionCall","src":"690:32:88"}],"functionName":{"name":"eq","nativeSrc":"680:2:88","nodeType":"YulIdentifier","src":"680:2:88"},"nativeSrc":"680:43:88","nodeType":"YulFunctionCall","src":"680:43:88"}],"functionName":{"name":"iszero","nativeSrc":"673:6:88","nodeType":"YulIdentifier","src":"673:6:88"},"nativeSrc":"673:51:88","nodeType":"YulFunctionCall","src":"673:51:88"},"nativeSrc":"670:71:88","nodeType":"YulIf","src":"670:71:88"},{"nativeSrc":"750:15:88","nodeType":"YulAssignment","src":"750:15:88","value":{"name":"value","nativeSrc":"760:5:88","nodeType":"YulIdentifier","src":"760:5:88"},"variableNames":[{"name":"value0","nativeSrc":"750:6:88","nodeType":"YulIdentifier","src":"750:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"485:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"520:9:88","nodeType":"YulTypedName","src":"520:9:88","type":""},{"name":"dataEnd","nativeSrc":"531:7:88","nodeType":"YulTypedName","src":"531:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"543:6:88","nodeType":"YulTypedName","src":"543:6:88","type":""}],"src":"485:286:88"},{"body":{"nativeSrc":"871:92:88","nodeType":"YulBlock","src":"871:92:88","statements":[{"nativeSrc":"881:26:88","nodeType":"YulAssignment","src":"881:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"893:9:88","nodeType":"YulIdentifier","src":"893:9:88"},{"kind":"number","nativeSrc":"904:2:88","nodeType":"YulLiteral","src":"904:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"889:3:88","nodeType":"YulIdentifier","src":"889:3:88"},"nativeSrc":"889:18:88","nodeType":"YulFunctionCall","src":"889:18:88"},"variableNames":[{"name":"tail","nativeSrc":"881:4:88","nodeType":"YulIdentifier","src":"881:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"923:9:88","nodeType":"YulIdentifier","src":"923:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"948:6:88","nodeType":"YulIdentifier","src":"948:6:88"}],"functionName":{"name":"iszero","nativeSrc":"941:6:88","nodeType":"YulIdentifier","src":"941:6:88"},"nativeSrc":"941:14:88","nodeType":"YulFunctionCall","src":"941:14:88"}],"functionName":{"name":"iszero","nativeSrc":"934:6:88","nodeType":"YulIdentifier","src":"934:6:88"},"nativeSrc":"934:22:88","nodeType":"YulFunctionCall","src":"934:22:88"}],"functionName":{"name":"mstore","nativeSrc":"916:6:88","nodeType":"YulIdentifier","src":"916:6:88"},"nativeSrc":"916:41:88","nodeType":"YulFunctionCall","src":"916:41:88"},"nativeSrc":"916:41:88","nodeType":"YulExpressionStatement","src":"916:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"776:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"840:9:88","nodeType":"YulTypedName","src":"840:9:88","type":""},{"name":"value0","nativeSrc":"851:6:88","nodeType":"YulTypedName","src":"851:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"862:4:88","nodeType":"YulTypedName","src":"862:4:88","type":""}],"src":"776:187:88"},{"body":{"nativeSrc":"1038:156:88","nodeType":"YulBlock","src":"1038:156:88","statements":[{"body":{"nativeSrc":"1084:16:88","nodeType":"YulBlock","src":"1084:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1093:1:88","nodeType":"YulLiteral","src":"1093:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1096:1:88","nodeType":"YulLiteral","src":"1096:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1086:6:88","nodeType":"YulIdentifier","src":"1086:6:88"},"nativeSrc":"1086:12:88","nodeType":"YulFunctionCall","src":"1086:12:88"},"nativeSrc":"1086:12:88","nodeType":"YulExpressionStatement","src":"1086:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1059:7:88","nodeType":"YulIdentifier","src":"1059:7:88"},{"name":"headStart","nativeSrc":"1068:9:88","nodeType":"YulIdentifier","src":"1068:9:88"}],"functionName":{"name":"sub","nativeSrc":"1055:3:88","nodeType":"YulIdentifier","src":"1055:3:88"},"nativeSrc":"1055:23:88","nodeType":"YulFunctionCall","src":"1055:23:88"},{"kind":"number","nativeSrc":"1080:2:88","nodeType":"YulLiteral","src":"1080:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1051:3:88","nodeType":"YulIdentifier","src":"1051:3:88"},"nativeSrc":"1051:32:88","nodeType":"YulFunctionCall","src":"1051:32:88"},"nativeSrc":"1048:52:88","nodeType":"YulIf","src":"1048:52:88"},{"nativeSrc":"1109:14:88","nodeType":"YulVariableDeclaration","src":"1109:14:88","value":{"kind":"number","nativeSrc":"1122:1:88","nodeType":"YulLiteral","src":"1122:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1113:5:88","nodeType":"YulTypedName","src":"1113:5:88","type":""}]},{"nativeSrc":"1132:32:88","nodeType":"YulAssignment","src":"1132:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1154:9:88","nodeType":"YulIdentifier","src":"1154:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1141:12:88","nodeType":"YulIdentifier","src":"1141:12:88"},"nativeSrc":"1141:23:88","nodeType":"YulFunctionCall","src":"1141:23:88"},"variableNames":[{"name":"value","nativeSrc":"1132:5:88","nodeType":"YulIdentifier","src":"1132:5:88"}]},{"nativeSrc":"1173:15:88","nodeType":"YulAssignment","src":"1173:15:88","value":{"name":"value","nativeSrc":"1183:5:88","nodeType":"YulIdentifier","src":"1183:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1173:6:88","nodeType":"YulIdentifier","src":"1173:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"968:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1004:9:88","nodeType":"YulTypedName","src":"1004:9:88","type":""},{"name":"dataEnd","nativeSrc":"1015:7:88","nodeType":"YulTypedName","src":"1015:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1027:6:88","nodeType":"YulTypedName","src":"1027:6:88","type":""}],"src":"968:226:88"},{"body":{"nativeSrc":"1300:76:88","nodeType":"YulBlock","src":"1300:76:88","statements":[{"nativeSrc":"1310:26:88","nodeType":"YulAssignment","src":"1310:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1322:9:88","nodeType":"YulIdentifier","src":"1322:9:88"},{"kind":"number","nativeSrc":"1333:2:88","nodeType":"YulLiteral","src":"1333:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:88","nodeType":"YulIdentifier","src":"1318:3:88"},"nativeSrc":"1318:18:88","nodeType":"YulFunctionCall","src":"1318:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1310:4:88","nodeType":"YulIdentifier","src":"1310:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1352:9:88","nodeType":"YulIdentifier","src":"1352:9:88"},{"name":"value0","nativeSrc":"1363:6:88","nodeType":"YulIdentifier","src":"1363:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1345:6:88","nodeType":"YulIdentifier","src":"1345:6:88"},"nativeSrc":"1345:25:88","nodeType":"YulFunctionCall","src":"1345:25:88"},"nativeSrc":"1345:25:88","nodeType":"YulExpressionStatement","src":"1345:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1199:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1269:9:88","nodeType":"YulTypedName","src":"1269:9:88","type":""},{"name":"value0","nativeSrc":"1280:6:88","nodeType":"YulTypedName","src":"1280:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1291:4:88","nodeType":"YulTypedName","src":"1291:4:88","type":""}],"src":"1199:177:88"},{"body":{"nativeSrc":"1480:76:88","nodeType":"YulBlock","src":"1480:76:88","statements":[{"nativeSrc":"1490:26:88","nodeType":"YulAssignment","src":"1490:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1502:9:88","nodeType":"YulIdentifier","src":"1502:9:88"},{"kind":"number","nativeSrc":"1513:2:88","nodeType":"YulLiteral","src":"1513:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1498:3:88","nodeType":"YulIdentifier","src":"1498:3:88"},"nativeSrc":"1498:18:88","nodeType":"YulFunctionCall","src":"1498:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1490:4:88","nodeType":"YulIdentifier","src":"1490:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1532:9:88","nodeType":"YulIdentifier","src":"1532:9:88"},{"name":"value0","nativeSrc":"1543:6:88","nodeType":"YulIdentifier","src":"1543:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1525:6:88","nodeType":"YulIdentifier","src":"1525:6:88"},"nativeSrc":"1525:25:88","nodeType":"YulFunctionCall","src":"1525:25:88"},"nativeSrc":"1525:25:88","nodeType":"YulExpressionStatement","src":"1525:25:88"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nativeSrc":"1381:175:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1449:9:88","nodeType":"YulTypedName","src":"1449:9:88","type":""},{"name":"value0","nativeSrc":"1460:6:88","nodeType":"YulTypedName","src":"1460:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1471:4:88","nodeType":"YulTypedName","src":"1471:4:88","type":""}],"src":"1381:175:88"},{"body":{"nativeSrc":"1640:194:88","nodeType":"YulBlock","src":"1640:194:88","statements":[{"body":{"nativeSrc":"1686:16:88","nodeType":"YulBlock","src":"1686:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1695:1:88","nodeType":"YulLiteral","src":"1695:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1698:1:88","nodeType":"YulLiteral","src":"1698:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1688:6:88","nodeType":"YulIdentifier","src":"1688:6:88"},"nativeSrc":"1688:12:88","nodeType":"YulFunctionCall","src":"1688:12:88"},"nativeSrc":"1688:12:88","nodeType":"YulExpressionStatement","src":"1688:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1661:7:88","nodeType":"YulIdentifier","src":"1661:7:88"},{"name":"headStart","nativeSrc":"1670:9:88","nodeType":"YulIdentifier","src":"1670:9:88"}],"functionName":{"name":"sub","nativeSrc":"1657:3:88","nodeType":"YulIdentifier","src":"1657:3:88"},"nativeSrc":"1657:23:88","nodeType":"YulFunctionCall","src":"1657:23:88"},{"kind":"number","nativeSrc":"1682:2:88","nodeType":"YulLiteral","src":"1682:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1653:3:88","nodeType":"YulIdentifier","src":"1653:3:88"},"nativeSrc":"1653:32:88","nodeType":"YulFunctionCall","src":"1653:32:88"},"nativeSrc":"1650:52:88","nodeType":"YulIf","src":"1650:52:88"},{"nativeSrc":"1711:29:88","nodeType":"YulVariableDeclaration","src":"1711:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1730:9:88","nodeType":"YulIdentifier","src":"1730:9:88"}],"functionName":{"name":"mload","nativeSrc":"1724:5:88","nodeType":"YulIdentifier","src":"1724:5:88"},"nativeSrc":"1724:16:88","nodeType":"YulFunctionCall","src":"1724:16:88"},"variables":[{"name":"value","nativeSrc":"1715:5:88","nodeType":"YulTypedName","src":"1715:5:88","type":""}]},{"body":{"nativeSrc":"1788:16:88","nodeType":"YulBlock","src":"1788:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1797:1:88","nodeType":"YulLiteral","src":"1797:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1800:1:88","nodeType":"YulLiteral","src":"1800:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1790:6:88","nodeType":"YulIdentifier","src":"1790:6:88"},"nativeSrc":"1790:12:88","nodeType":"YulFunctionCall","src":"1790:12:88"},"nativeSrc":"1790:12:88","nodeType":"YulExpressionStatement","src":"1790:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1762:5:88","nodeType":"YulIdentifier","src":"1762:5:88"},{"arguments":[{"name":"value","nativeSrc":"1773:5:88","nodeType":"YulIdentifier","src":"1773:5:88"},{"kind":"number","nativeSrc":"1780:4:88","nodeType":"YulLiteral","src":"1780:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1769:3:88","nodeType":"YulIdentifier","src":"1769:3:88"},"nativeSrc":"1769:16:88","nodeType":"YulFunctionCall","src":"1769:16:88"}],"functionName":{"name":"eq","nativeSrc":"1759:2:88","nodeType":"YulIdentifier","src":"1759:2:88"},"nativeSrc":"1759:27:88","nodeType":"YulFunctionCall","src":"1759:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1752:6:88","nodeType":"YulIdentifier","src":"1752:6:88"},"nativeSrc":"1752:35:88","nodeType":"YulFunctionCall","src":"1752:35:88"},"nativeSrc":"1749:55:88","nodeType":"YulIf","src":"1749:55:88"},{"nativeSrc":"1813:15:88","nodeType":"YulAssignment","src":"1813:15:88","value":{"name":"value","nativeSrc":"1823:5:88","nodeType":"YulIdentifier","src":"1823:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1813:6:88","nodeType":"YulIdentifier","src":"1813:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"1561:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1606:9:88","nodeType":"YulTypedName","src":"1606:9:88","type":""},{"name":"dataEnd","nativeSrc":"1617:7:88","nodeType":"YulTypedName","src":"1617:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1629:6:88","nodeType":"YulTypedName","src":"1629:6:88","type":""}],"src":"1561:273:88"},{"body":{"nativeSrc":"1871:95:88","nodeType":"YulBlock","src":"1871:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1888:1:88","nodeType":"YulLiteral","src":"1888:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1895:3:88","nodeType":"YulLiteral","src":"1895:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1900:10:88","nodeType":"YulLiteral","src":"1900:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1891:3:88","nodeType":"YulIdentifier","src":"1891:3:88"},"nativeSrc":"1891:20:88","nodeType":"YulFunctionCall","src":"1891:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1881:6:88","nodeType":"YulIdentifier","src":"1881:6:88"},"nativeSrc":"1881:31:88","nodeType":"YulFunctionCall","src":"1881:31:88"},"nativeSrc":"1881:31:88","nodeType":"YulExpressionStatement","src":"1881:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1928:1:88","nodeType":"YulLiteral","src":"1928:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1931:4:88","nodeType":"YulLiteral","src":"1931:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1921:6:88","nodeType":"YulIdentifier","src":"1921:6:88"},"nativeSrc":"1921:15:88","nodeType":"YulFunctionCall","src":"1921:15:88"},"nativeSrc":"1921:15:88","nodeType":"YulExpressionStatement","src":"1921:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1952:1:88","nodeType":"YulLiteral","src":"1952:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1955:4:88","nodeType":"YulLiteral","src":"1955:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1945:6:88","nodeType":"YulIdentifier","src":"1945:6:88"},"nativeSrc":"1945:15:88","nodeType":"YulFunctionCall","src":"1945:15:88"},"nativeSrc":"1945:15:88","nodeType":"YulExpressionStatement","src":"1945:15:88"}]},"name":"panic_error_0x11","nativeSrc":"1839:127:88","nodeType":"YulFunctionDefinition","src":"1839:127:88"},{"body":{"nativeSrc":"2040:306:88","nodeType":"YulBlock","src":"2040:306:88","statements":[{"nativeSrc":"2050:10:88","nodeType":"YulAssignment","src":"2050:10:88","value":{"kind":"number","nativeSrc":"2059:1:88","nodeType":"YulLiteral","src":"2059:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2050:5:88","nodeType":"YulIdentifier","src":"2050:5:88"}]},{"nativeSrc":"2069:13:88","nodeType":"YulAssignment","src":"2069:13:88","value":{"name":"_base","nativeSrc":"2077:5:88","nodeType":"YulIdentifier","src":"2077:5:88"},"variableNames":[{"name":"base","nativeSrc":"2069:4:88","nodeType":"YulIdentifier","src":"2069:4:88"}]},{"body":{"nativeSrc":"2127:213:88","nodeType":"YulBlock","src":"2127:213:88","statements":[{"body":{"nativeSrc":"2169:22:88","nodeType":"YulBlock","src":"2169:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2171:16:88","nodeType":"YulIdentifier","src":"2171:16:88"},"nativeSrc":"2171:18:88","nodeType":"YulFunctionCall","src":"2171:18:88"},"nativeSrc":"2171:18:88","nodeType":"YulExpressionStatement","src":"2171:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"2147:4:88","nodeType":"YulIdentifier","src":"2147:4:88"},{"arguments":[{"name":"max","nativeSrc":"2157:3:88","nodeType":"YulIdentifier","src":"2157:3:88"},{"name":"base","nativeSrc":"2162:4:88","nodeType":"YulIdentifier","src":"2162:4:88"}],"functionName":{"name":"div","nativeSrc":"2153:3:88","nodeType":"YulIdentifier","src":"2153:3:88"},"nativeSrc":"2153:14:88","nodeType":"YulFunctionCall","src":"2153:14:88"}],"functionName":{"name":"gt","nativeSrc":"2144:2:88","nodeType":"YulIdentifier","src":"2144:2:88"},"nativeSrc":"2144:24:88","nodeType":"YulFunctionCall","src":"2144:24:88"},"nativeSrc":"2141:50:88","nodeType":"YulIf","src":"2141:50:88"},{"body":{"nativeSrc":"2224:29:88","nodeType":"YulBlock","src":"2224:29:88","statements":[{"nativeSrc":"2226:25:88","nodeType":"YulAssignment","src":"2226:25:88","value":{"arguments":[{"name":"power","nativeSrc":"2239:5:88","nodeType":"YulIdentifier","src":"2239:5:88"},{"name":"base","nativeSrc":"2246:4:88","nodeType":"YulIdentifier","src":"2246:4:88"}],"functionName":{"name":"mul","nativeSrc":"2235:3:88","nodeType":"YulIdentifier","src":"2235:3:88"},"nativeSrc":"2235:16:88","nodeType":"YulFunctionCall","src":"2235:16:88"},"variableNames":[{"name":"power","nativeSrc":"2226:5:88","nodeType":"YulIdentifier","src":"2226:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2211:8:88","nodeType":"YulIdentifier","src":"2211:8:88"},{"kind":"number","nativeSrc":"2221:1:88","nodeType":"YulLiteral","src":"2221:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2207:3:88","nodeType":"YulIdentifier","src":"2207:3:88"},"nativeSrc":"2207:16:88","nodeType":"YulFunctionCall","src":"2207:16:88"},"nativeSrc":"2204:49:88","nodeType":"YulIf","src":"2204:49:88"},{"nativeSrc":"2266:23:88","nodeType":"YulAssignment","src":"2266:23:88","value":{"arguments":[{"name":"base","nativeSrc":"2278:4:88","nodeType":"YulIdentifier","src":"2278:4:88"},{"name":"base","nativeSrc":"2284:4:88","nodeType":"YulIdentifier","src":"2284:4:88"}],"functionName":{"name":"mul","nativeSrc":"2274:3:88","nodeType":"YulIdentifier","src":"2274:3:88"},"nativeSrc":"2274:15:88","nodeType":"YulFunctionCall","src":"2274:15:88"},"variableNames":[{"name":"base","nativeSrc":"2266:4:88","nodeType":"YulIdentifier","src":"2266:4:88"}]},{"nativeSrc":"2302:28:88","nodeType":"YulAssignment","src":"2302:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"2318:1:88","nodeType":"YulLiteral","src":"2318:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"2321:8:88","nodeType":"YulIdentifier","src":"2321:8:88"}],"functionName":{"name":"shr","nativeSrc":"2314:3:88","nodeType":"YulIdentifier","src":"2314:3:88"},"nativeSrc":"2314:16:88","nodeType":"YulFunctionCall","src":"2314:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"2302:8:88","nodeType":"YulIdentifier","src":"2302:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2102:8:88","nodeType":"YulIdentifier","src":"2102:8:88"},{"kind":"number","nativeSrc":"2112:1:88","nodeType":"YulLiteral","src":"2112:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"2099:2:88","nodeType":"YulIdentifier","src":"2099:2:88"},"nativeSrc":"2099:15:88","nodeType":"YulFunctionCall","src":"2099:15:88"},"nativeSrc":"2091:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"2115:3:88","nodeType":"YulBlock","src":"2115:3:88","statements":[]},"pre":{"nativeSrc":"2095:3:88","nodeType":"YulBlock","src":"2095:3:88","statements":[]},"src":"2091:249:88"}]},"name":"checked_exp_helper","nativeSrc":"1971:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"1999:5:88","nodeType":"YulTypedName","src":"1999:5:88","type":""},{"name":"exponent","nativeSrc":"2006:8:88","nodeType":"YulTypedName","src":"2006:8:88","type":""},{"name":"max","nativeSrc":"2016:3:88","nodeType":"YulTypedName","src":"2016:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2024:5:88","nodeType":"YulTypedName","src":"2024:5:88","type":""},{"name":"base","nativeSrc":"2031:4:88","nodeType":"YulTypedName","src":"2031:4:88","type":""}],"src":"1971:375:88"},{"body":{"nativeSrc":"2410:843:88","nodeType":"YulBlock","src":"2410:843:88","statements":[{"body":{"nativeSrc":"2448:52:88","nodeType":"YulBlock","src":"2448:52:88","statements":[{"nativeSrc":"2462:10:88","nodeType":"YulAssignment","src":"2462:10:88","value":{"kind":"number","nativeSrc":"2471:1:88","nodeType":"YulLiteral","src":"2471:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2462:5:88","nodeType":"YulIdentifier","src":"2462:5:88"}]},{"nativeSrc":"2485:5:88","nodeType":"YulLeave","src":"2485:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2430:8:88","nodeType":"YulIdentifier","src":"2430:8:88"}],"functionName":{"name":"iszero","nativeSrc":"2423:6:88","nodeType":"YulIdentifier","src":"2423:6:88"},"nativeSrc":"2423:16:88","nodeType":"YulFunctionCall","src":"2423:16:88"},"nativeSrc":"2420:80:88","nodeType":"YulIf","src":"2420:80:88"},{"body":{"nativeSrc":"2533:52:88","nodeType":"YulBlock","src":"2533:52:88","statements":[{"nativeSrc":"2547:10:88","nodeType":"YulAssignment","src":"2547:10:88","value":{"kind":"number","nativeSrc":"2556:1:88","nodeType":"YulLiteral","src":"2556:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"2547:5:88","nodeType":"YulIdentifier","src":"2547:5:88"}]},{"nativeSrc":"2570:5:88","nodeType":"YulLeave","src":"2570:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"2519:4:88","nodeType":"YulIdentifier","src":"2519:4:88"}],"functionName":{"name":"iszero","nativeSrc":"2512:6:88","nodeType":"YulIdentifier","src":"2512:6:88"},"nativeSrc":"2512:12:88","nodeType":"YulFunctionCall","src":"2512:12:88"},"nativeSrc":"2509:76:88","nodeType":"YulIf","src":"2509:76:88"},{"cases":[{"body":{"nativeSrc":"2621:52:88","nodeType":"YulBlock","src":"2621:52:88","statements":[{"nativeSrc":"2635:10:88","nodeType":"YulAssignment","src":"2635:10:88","value":{"kind":"number","nativeSrc":"2644:1:88","nodeType":"YulLiteral","src":"2644:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2635:5:88","nodeType":"YulIdentifier","src":"2635:5:88"}]},{"nativeSrc":"2658:5:88","nodeType":"YulLeave","src":"2658:5:88"}]},"nativeSrc":"2614:59:88","nodeType":"YulCase","src":"2614:59:88","value":{"kind":"number","nativeSrc":"2619:1:88","nodeType":"YulLiteral","src":"2619:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"2689:167:88","nodeType":"YulBlock","src":"2689:167:88","statements":[{"body":{"nativeSrc":"2724:22:88","nodeType":"YulBlock","src":"2724:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2726:16:88","nodeType":"YulIdentifier","src":"2726:16:88"},"nativeSrc":"2726:18:88","nodeType":"YulFunctionCall","src":"2726:18:88"},"nativeSrc":"2726:18:88","nodeType":"YulExpressionStatement","src":"2726:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2709:8:88","nodeType":"YulIdentifier","src":"2709:8:88"},{"kind":"number","nativeSrc":"2719:3:88","nodeType":"YulLiteral","src":"2719:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"2706:2:88","nodeType":"YulIdentifier","src":"2706:2:88"},"nativeSrc":"2706:17:88","nodeType":"YulFunctionCall","src":"2706:17:88"},"nativeSrc":"2703:43:88","nodeType":"YulIf","src":"2703:43:88"},{"nativeSrc":"2759:25:88","nodeType":"YulAssignment","src":"2759:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"2772:8:88","nodeType":"YulIdentifier","src":"2772:8:88"},{"kind":"number","nativeSrc":"2782:1:88","nodeType":"YulLiteral","src":"2782:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2768:3:88","nodeType":"YulIdentifier","src":"2768:3:88"},"nativeSrc":"2768:16:88","nodeType":"YulFunctionCall","src":"2768:16:88"},"variableNames":[{"name":"power","nativeSrc":"2759:5:88","nodeType":"YulIdentifier","src":"2759:5:88"}]},{"nativeSrc":"2797:11:88","nodeType":"YulVariableDeclaration","src":"2797:11:88","value":{"kind":"number","nativeSrc":"2807:1:88","nodeType":"YulLiteral","src":"2807:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2801:2:88","nodeType":"YulTypedName","src":"2801:2:88","type":""}]},{"nativeSrc":"2821:7:88","nodeType":"YulAssignment","src":"2821:7:88","value":{"kind":"number","nativeSrc":"2827:1:88","nodeType":"YulLiteral","src":"2827:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"2821:2:88","nodeType":"YulIdentifier","src":"2821:2:88"}]},{"nativeSrc":"2841:5:88","nodeType":"YulLeave","src":"2841:5:88"}]},"nativeSrc":"2682:174:88","nodeType":"YulCase","src":"2682:174:88","value":{"kind":"number","nativeSrc":"2687:1:88","nodeType":"YulLiteral","src":"2687:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"2601:4:88","nodeType":"YulIdentifier","src":"2601:4:88"},"nativeSrc":"2594:262:88","nodeType":"YulSwitch","src":"2594:262:88"},{"body":{"nativeSrc":"2954:114:88","nodeType":"YulBlock","src":"2954:114:88","statements":[{"nativeSrc":"2968:28:88","nodeType":"YulAssignment","src":"2968:28:88","value":{"arguments":[{"name":"base","nativeSrc":"2981:4:88","nodeType":"YulIdentifier","src":"2981:4:88"},{"name":"exponent","nativeSrc":"2987:8:88","nodeType":"YulIdentifier","src":"2987:8:88"}],"functionName":{"name":"exp","nativeSrc":"2977:3:88","nodeType":"YulIdentifier","src":"2977:3:88"},"nativeSrc":"2977:19:88","nodeType":"YulFunctionCall","src":"2977:19:88"},"variableNames":[{"name":"power","nativeSrc":"2968:5:88","nodeType":"YulIdentifier","src":"2968:5:88"}]},{"nativeSrc":"3009:11:88","nodeType":"YulVariableDeclaration","src":"3009:11:88","value":{"kind":"number","nativeSrc":"3019:1:88","nodeType":"YulLiteral","src":"3019:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"3013:2:88","nodeType":"YulTypedName","src":"3013:2:88","type":""}]},{"nativeSrc":"3033:7:88","nodeType":"YulAssignment","src":"3033:7:88","value":{"kind":"number","nativeSrc":"3039:1:88","nodeType":"YulLiteral","src":"3039:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"3033:2:88","nodeType":"YulIdentifier","src":"3033:2:88"}]},{"nativeSrc":"3053:5:88","nodeType":"YulLeave","src":"3053:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2878:4:88","nodeType":"YulIdentifier","src":"2878:4:88"},{"kind":"number","nativeSrc":"2884:2:88","nodeType":"YulLiteral","src":"2884:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"2875:2:88","nodeType":"YulIdentifier","src":"2875:2:88"},"nativeSrc":"2875:12:88","nodeType":"YulFunctionCall","src":"2875:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"2892:8:88","nodeType":"YulIdentifier","src":"2892:8:88"},{"kind":"number","nativeSrc":"2902:2:88","nodeType":"YulLiteral","src":"2902:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"2889:2:88","nodeType":"YulIdentifier","src":"2889:2:88"},"nativeSrc":"2889:16:88","nodeType":"YulFunctionCall","src":"2889:16:88"}],"functionName":{"name":"and","nativeSrc":"2871:3:88","nodeType":"YulIdentifier","src":"2871:3:88"},"nativeSrc":"2871:35:88","nodeType":"YulFunctionCall","src":"2871:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2915:4:88","nodeType":"YulIdentifier","src":"2915:4:88"},{"kind":"number","nativeSrc":"2921:3:88","nodeType":"YulLiteral","src":"2921:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"2912:2:88","nodeType":"YulIdentifier","src":"2912:2:88"},"nativeSrc":"2912:13:88","nodeType":"YulFunctionCall","src":"2912:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"2930:8:88","nodeType":"YulIdentifier","src":"2930:8:88"},{"kind":"number","nativeSrc":"2940:2:88","nodeType":"YulLiteral","src":"2940:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2927:2:88","nodeType":"YulIdentifier","src":"2927:2:88"},"nativeSrc":"2927:16:88","nodeType":"YulFunctionCall","src":"2927:16:88"}],"functionName":{"name":"and","nativeSrc":"2908:3:88","nodeType":"YulIdentifier","src":"2908:3:88"},"nativeSrc":"2908:36:88","nodeType":"YulFunctionCall","src":"2908:36:88"}],"functionName":{"name":"or","nativeSrc":"2868:2:88","nodeType":"YulIdentifier","src":"2868:2:88"},"nativeSrc":"2868:77:88","nodeType":"YulFunctionCall","src":"2868:77:88"},"nativeSrc":"2865:203:88","nodeType":"YulIf","src":"2865:203:88"},{"nativeSrc":"3077:65:88","nodeType":"YulVariableDeclaration","src":"3077:65:88","value":{"arguments":[{"name":"base","nativeSrc":"3119:4:88","nodeType":"YulIdentifier","src":"3119:4:88"},{"name":"exponent","nativeSrc":"3125:8:88","nodeType":"YulIdentifier","src":"3125:8:88"},{"arguments":[{"kind":"number","nativeSrc":"3139:1:88","nodeType":"YulLiteral","src":"3139:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3135:3:88","nodeType":"YulIdentifier","src":"3135:3:88"},"nativeSrc":"3135:6:88","nodeType":"YulFunctionCall","src":"3135:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"3100:18:88","nodeType":"YulIdentifier","src":"3100:18:88"},"nativeSrc":"3100:42:88","nodeType":"YulFunctionCall","src":"3100:42:88"},"variables":[{"name":"power_1","nativeSrc":"3081:7:88","nodeType":"YulTypedName","src":"3081:7:88","type":""},{"name":"base_1","nativeSrc":"3090:6:88","nodeType":"YulTypedName","src":"3090:6:88","type":""}]},{"body":{"nativeSrc":"3187:22:88","nodeType":"YulBlock","src":"3187:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"3189:16:88","nodeType":"YulIdentifier","src":"3189:16:88"},"nativeSrc":"3189:18:88","nodeType":"YulFunctionCall","src":"3189:18:88"},"nativeSrc":"3189:18:88","nodeType":"YulExpressionStatement","src":"3189:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"3157:7:88","nodeType":"YulIdentifier","src":"3157:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3174:1:88","nodeType":"YulLiteral","src":"3174:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3170:3:88","nodeType":"YulIdentifier","src":"3170:3:88"},"nativeSrc":"3170:6:88","nodeType":"YulFunctionCall","src":"3170:6:88"},{"name":"base_1","nativeSrc":"3178:6:88","nodeType":"YulIdentifier","src":"3178:6:88"}],"functionName":{"name":"div","nativeSrc":"3166:3:88","nodeType":"YulIdentifier","src":"3166:3:88"},"nativeSrc":"3166:19:88","nodeType":"YulFunctionCall","src":"3166:19:88"}],"functionName":{"name":"gt","nativeSrc":"3154:2:88","nodeType":"YulIdentifier","src":"3154:2:88"},"nativeSrc":"3154:32:88","nodeType":"YulFunctionCall","src":"3154:32:88"},"nativeSrc":"3151:58:88","nodeType":"YulIf","src":"3151:58:88"},{"nativeSrc":"3218:29:88","nodeType":"YulAssignment","src":"3218:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"3231:7:88","nodeType":"YulIdentifier","src":"3231:7:88"},{"name":"base_1","nativeSrc":"3240:6:88","nodeType":"YulIdentifier","src":"3240:6:88"}],"functionName":{"name":"mul","nativeSrc":"3227:3:88","nodeType":"YulIdentifier","src":"3227:3:88"},"nativeSrc":"3227:20:88","nodeType":"YulFunctionCall","src":"3227:20:88"},"variableNames":[{"name":"power","nativeSrc":"3218:5:88","nodeType":"YulIdentifier","src":"3218:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"2351:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"2381:4:88","nodeType":"YulTypedName","src":"2381:4:88","type":""},{"name":"exponent","nativeSrc":"2387:8:88","nodeType":"YulTypedName","src":"2387:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2400:5:88","nodeType":"YulTypedName","src":"2400:5:88","type":""}],"src":"2351:902:88"},{"body":{"nativeSrc":"3326:72:88","nodeType":"YulBlock","src":"3326:72:88","statements":[{"nativeSrc":"3336:56:88","nodeType":"YulAssignment","src":"3336:56:88","value":{"arguments":[{"name":"base","nativeSrc":"3366:4:88","nodeType":"YulIdentifier","src":"3366:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"3376:8:88","nodeType":"YulIdentifier","src":"3376:8:88"},{"kind":"number","nativeSrc":"3386:4:88","nodeType":"YulLiteral","src":"3386:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3372:3:88","nodeType":"YulIdentifier","src":"3372:3:88"},"nativeSrc":"3372:19:88","nodeType":"YulFunctionCall","src":"3372:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"3345:20:88","nodeType":"YulIdentifier","src":"3345:20:88"},"nativeSrc":"3345:47:88","nodeType":"YulFunctionCall","src":"3345:47:88"},"variableNames":[{"name":"power","nativeSrc":"3336:5:88","nodeType":"YulIdentifier","src":"3336:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"3258:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"3297:4:88","nodeType":"YulTypedName","src":"3297:4:88","type":""},{"name":"exponent","nativeSrc":"3303:8:88","nodeType":"YulTypedName","src":"3303:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"3316:5:88","nodeType":"YulTypedName","src":"3316:5:88","type":""}],"src":"3258:140:88"},{"body":{"nativeSrc":"3449:171:88","nodeType":"YulBlock","src":"3449:171:88","statements":[{"body":{"nativeSrc":"3480:111:88","nodeType":"YulBlock","src":"3480:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3501:1:88","nodeType":"YulLiteral","src":"3501:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3508:3:88","nodeType":"YulLiteral","src":"3508:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3513:10:88","nodeType":"YulLiteral","src":"3513:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3504:3:88","nodeType":"YulIdentifier","src":"3504:3:88"},"nativeSrc":"3504:20:88","nodeType":"YulFunctionCall","src":"3504:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3494:6:88","nodeType":"YulIdentifier","src":"3494:6:88"},"nativeSrc":"3494:31:88","nodeType":"YulFunctionCall","src":"3494:31:88"},"nativeSrc":"3494:31:88","nodeType":"YulExpressionStatement","src":"3494:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3545:1:88","nodeType":"YulLiteral","src":"3545:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3548:4:88","nodeType":"YulLiteral","src":"3548:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3538:6:88","nodeType":"YulIdentifier","src":"3538:6:88"},"nativeSrc":"3538:15:88","nodeType":"YulFunctionCall","src":"3538:15:88"},"nativeSrc":"3538:15:88","nodeType":"YulExpressionStatement","src":"3538:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3573:1:88","nodeType":"YulLiteral","src":"3573:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3576:4:88","nodeType":"YulLiteral","src":"3576:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3566:6:88","nodeType":"YulIdentifier","src":"3566:6:88"},"nativeSrc":"3566:15:88","nodeType":"YulFunctionCall","src":"3566:15:88"},"nativeSrc":"3566:15:88","nodeType":"YulExpressionStatement","src":"3566:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3469:1:88","nodeType":"YulIdentifier","src":"3469:1:88"}],"functionName":{"name":"iszero","nativeSrc":"3462:6:88","nodeType":"YulIdentifier","src":"3462:6:88"},"nativeSrc":"3462:9:88","nodeType":"YulFunctionCall","src":"3462:9:88"},"nativeSrc":"3459:132:88","nodeType":"YulIf","src":"3459:132:88"},{"nativeSrc":"3600:14:88","nodeType":"YulAssignment","src":"3600:14:88","value":{"arguments":[{"name":"x","nativeSrc":"3609:1:88","nodeType":"YulIdentifier","src":"3609:1:88"},{"name":"y","nativeSrc":"3612:1:88","nodeType":"YulIdentifier","src":"3612:1:88"}],"functionName":{"name":"div","nativeSrc":"3605:3:88","nodeType":"YulIdentifier","src":"3605:3:88"},"nativeSrc":"3605:9:88","nodeType":"YulFunctionCall","src":"3605:9:88"},"variableNames":[{"name":"r","nativeSrc":"3600:1:88","nodeType":"YulIdentifier","src":"3600:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3403:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3434:1:88","nodeType":"YulTypedName","src":"3434:1:88","type":""},{"name":"y","nativeSrc":"3437:1:88","nodeType":"YulTypedName","src":"3437:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3443:1:88","nodeType":"YulTypedName","src":"3443:1:88","type":""}],"src":"3403:217:88"},{"body":{"nativeSrc":"3657:95:88","nodeType":"YulBlock","src":"3657:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3674:1:88","nodeType":"YulLiteral","src":"3674:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3681:3:88","nodeType":"YulLiteral","src":"3681:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3686:10:88","nodeType":"YulLiteral","src":"3686:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3677:3:88","nodeType":"YulIdentifier","src":"3677:3:88"},"nativeSrc":"3677:20:88","nodeType":"YulFunctionCall","src":"3677:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3667:6:88","nodeType":"YulIdentifier","src":"3667:6:88"},"nativeSrc":"3667:31:88","nodeType":"YulFunctionCall","src":"3667:31:88"},"nativeSrc":"3667:31:88","nodeType":"YulExpressionStatement","src":"3667:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3714:1:88","nodeType":"YulLiteral","src":"3714:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3717:4:88","nodeType":"YulLiteral","src":"3717:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"3707:6:88","nodeType":"YulIdentifier","src":"3707:6:88"},"nativeSrc":"3707:15:88","nodeType":"YulFunctionCall","src":"3707:15:88"},"nativeSrc":"3707:15:88","nodeType":"YulExpressionStatement","src":"3707:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3738:1:88","nodeType":"YulLiteral","src":"3738:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3741:4:88","nodeType":"YulLiteral","src":"3741:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3731:6:88","nodeType":"YulIdentifier","src":"3731:6:88"},"nativeSrc":"3731:15:88","nodeType":"YulFunctionCall","src":"3731:15:88"},"nativeSrc":"3731:15:88","nodeType":"YulExpressionStatement","src":"3731:15:88"}]},"name":"panic_error_0x21","nativeSrc":"3625:127:88","nodeType":"YulFunctionDefinition","src":"3625:127:88"},{"body":{"nativeSrc":"3858:102:88","nodeType":"YulBlock","src":"3858:102:88","statements":[{"nativeSrc":"3868:26:88","nodeType":"YulAssignment","src":"3868:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3880:9:88","nodeType":"YulIdentifier","src":"3880:9:88"},{"kind":"number","nativeSrc":"3891:2:88","nodeType":"YulLiteral","src":"3891:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3876:3:88","nodeType":"YulIdentifier","src":"3876:3:88"},"nativeSrc":"3876:18:88","nodeType":"YulFunctionCall","src":"3876:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3868:4:88","nodeType":"YulIdentifier","src":"3868:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3910:9:88","nodeType":"YulIdentifier","src":"3910:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3925:6:88","nodeType":"YulIdentifier","src":"3925:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3941:3:88","nodeType":"YulLiteral","src":"3941:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3946:1:88","nodeType":"YulLiteral","src":"3946:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3937:3:88","nodeType":"YulIdentifier","src":"3937:3:88"},"nativeSrc":"3937:11:88","nodeType":"YulFunctionCall","src":"3937:11:88"},{"kind":"number","nativeSrc":"3950:1:88","nodeType":"YulLiteral","src":"3950:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3933:3:88","nodeType":"YulIdentifier","src":"3933:3:88"},"nativeSrc":"3933:19:88","nodeType":"YulFunctionCall","src":"3933:19:88"}],"functionName":{"name":"and","nativeSrc":"3921:3:88","nodeType":"YulIdentifier","src":"3921:3:88"},"nativeSrc":"3921:32:88","nodeType":"YulFunctionCall","src":"3921:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3903:6:88","nodeType":"YulIdentifier","src":"3903:6:88"},"nativeSrc":"3903:51:88","nodeType":"YulFunctionCall","src":"3903:51:88"},"nativeSrc":"3903:51:88","nodeType":"YulExpressionStatement","src":"3903:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3757:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3827:9:88","nodeType":"YulTypedName","src":"3827:9:88","type":""},{"name":"value0","nativeSrc":"3838:6:88","nodeType":"YulTypedName","src":"3838:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3849:4:88","nodeType":"YulTypedName","src":"3849:4:88","type":""}],"src":"3757:203:88"},{"body":{"nativeSrc":"4046:103:88","nodeType":"YulBlock","src":"4046:103:88","statements":[{"body":{"nativeSrc":"4092:16:88","nodeType":"YulBlock","src":"4092:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4101:1:88","nodeType":"YulLiteral","src":"4101:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4104:1:88","nodeType":"YulLiteral","src":"4104:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4094:6:88","nodeType":"YulIdentifier","src":"4094:6:88"},"nativeSrc":"4094:12:88","nodeType":"YulFunctionCall","src":"4094:12:88"},"nativeSrc":"4094:12:88","nodeType":"YulExpressionStatement","src":"4094:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4067:7:88","nodeType":"YulIdentifier","src":"4067:7:88"},{"name":"headStart","nativeSrc":"4076:9:88","nodeType":"YulIdentifier","src":"4076:9:88"}],"functionName":{"name":"sub","nativeSrc":"4063:3:88","nodeType":"YulIdentifier","src":"4063:3:88"},"nativeSrc":"4063:23:88","nodeType":"YulFunctionCall","src":"4063:23:88"},{"kind":"number","nativeSrc":"4088:2:88","nodeType":"YulLiteral","src":"4088:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4059:3:88","nodeType":"YulIdentifier","src":"4059:3:88"},"nativeSrc":"4059:32:88","nodeType":"YulFunctionCall","src":"4059:32:88"},"nativeSrc":"4056:52:88","nodeType":"YulIf","src":"4056:52:88"},{"nativeSrc":"4117:26:88","nodeType":"YulAssignment","src":"4117:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4133:9:88","nodeType":"YulIdentifier","src":"4133:9:88"}],"functionName":{"name":"mload","nativeSrc":"4127:5:88","nodeType":"YulIdentifier","src":"4127:5:88"},"nativeSrc":"4127:16:88","nodeType":"YulFunctionCall","src":"4127:16:88"},"variableNames":[{"name":"value0","nativeSrc":"4117:6:88","nodeType":"YulIdentifier","src":"4117:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"3965:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4012:9:88","nodeType":"YulTypedName","src":"4012:9:88","type":""},{"name":"dataEnd","nativeSrc":"4023:7:88","nodeType":"YulTypedName","src":"4023:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4035:6:88","nodeType":"YulTypedName","src":"4035:6:88","type":""}],"src":"3965:184:88"},{"body":{"nativeSrc":"4328:235:88","nodeType":"YulBlock","src":"4328:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4345:9:88","nodeType":"YulIdentifier","src":"4345:9:88"},{"kind":"number","nativeSrc":"4356:2:88","nodeType":"YulLiteral","src":"4356:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4338:6:88","nodeType":"YulIdentifier","src":"4338:6:88"},"nativeSrc":"4338:21:88","nodeType":"YulFunctionCall","src":"4338:21:88"},"nativeSrc":"4338:21:88","nodeType":"YulExpressionStatement","src":"4338:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4379:9:88","nodeType":"YulIdentifier","src":"4379:9:88"},{"kind":"number","nativeSrc":"4390:2:88","nodeType":"YulLiteral","src":"4390:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:88","nodeType":"YulIdentifier","src":"4375:3:88"},"nativeSrc":"4375:18:88","nodeType":"YulFunctionCall","src":"4375:18:88"},{"kind":"number","nativeSrc":"4395:2:88","nodeType":"YulLiteral","src":"4395:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"4368:6:88","nodeType":"YulIdentifier","src":"4368:6:88"},"nativeSrc":"4368:30:88","nodeType":"YulFunctionCall","src":"4368:30:88"},"nativeSrc":"4368:30:88","nodeType":"YulExpressionStatement","src":"4368:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4418:9:88","nodeType":"YulIdentifier","src":"4418:9:88"},{"kind":"number","nativeSrc":"4429:2:88","nodeType":"YulLiteral","src":"4429:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4414:3:88","nodeType":"YulIdentifier","src":"4414:3:88"},"nativeSrc":"4414:18:88","nodeType":"YulFunctionCall","src":"4414:18:88"},{"hexValue":"4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f72","kind":"string","nativeSrc":"4434:34:88","nodeType":"YulLiteral","src":"4434:34:88","type":"","value":"No need to refill the wallet for"}],"functionName":{"name":"mstore","nativeSrc":"4407:6:88","nodeType":"YulIdentifier","src":"4407:6:88"},"nativeSrc":"4407:62:88","nodeType":"YulFunctionCall","src":"4407:62:88"},"nativeSrc":"4407:62:88","nodeType":"YulExpressionStatement","src":"4407:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4489:9:88","nodeType":"YulIdentifier","src":"4489:9:88"},{"kind":"number","nativeSrc":"4500:2:88","nodeType":"YulLiteral","src":"4500:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4485:3:88","nodeType":"YulIdentifier","src":"4485:3:88"},"nativeSrc":"4485:18:88","nodeType":"YulFunctionCall","src":"4485:18:88"},{"hexValue":"2074686973207061796d656e74","kind":"string","nativeSrc":"4505:15:88","nodeType":"YulLiteral","src":"4505:15:88","type":"","value":" this payment"}],"functionName":{"name":"mstore","nativeSrc":"4478:6:88","nodeType":"YulIdentifier","src":"4478:6:88"},"nativeSrc":"4478:43:88","nodeType":"YulFunctionCall","src":"4478:43:88"},"nativeSrc":"4478:43:88","nodeType":"YulExpressionStatement","src":"4478:43:88"},{"nativeSrc":"4530:27:88","nodeType":"YulAssignment","src":"4530:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4542:9:88","nodeType":"YulIdentifier","src":"4542:9:88"},{"kind":"number","nativeSrc":"4553:3:88","nodeType":"YulLiteral","src":"4553:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4538:3:88","nodeType":"YulIdentifier","src":"4538:3:88"},"nativeSrc":"4538:19:88","nodeType":"YulFunctionCall","src":"4538:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4530:4:88","nodeType":"YulIdentifier","src":"4530:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4154:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4305:9:88","nodeType":"YulTypedName","src":"4305:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4319:4:88","nodeType":"YulTypedName","src":"4319:4:88","type":""}],"src":"4154:409:88"},{"body":{"nativeSrc":"4616:77:88","nodeType":"YulBlock","src":"4616:77:88","statements":[{"nativeSrc":"4626:16:88","nodeType":"YulAssignment","src":"4626:16:88","value":{"arguments":[{"name":"x","nativeSrc":"4637:1:88","nodeType":"YulIdentifier","src":"4637:1:88"},{"name":"y","nativeSrc":"4640:1:88","nodeType":"YulIdentifier","src":"4640:1:88"}],"functionName":{"name":"add","nativeSrc":"4633:3:88","nodeType":"YulIdentifier","src":"4633:3:88"},"nativeSrc":"4633:9:88","nodeType":"YulFunctionCall","src":"4633:9:88"},"variableNames":[{"name":"sum","nativeSrc":"4626:3:88","nodeType":"YulIdentifier","src":"4626:3:88"}]},{"body":{"nativeSrc":"4665:22:88","nodeType":"YulBlock","src":"4665:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4667:16:88","nodeType":"YulIdentifier","src":"4667:16:88"},"nativeSrc":"4667:18:88","nodeType":"YulFunctionCall","src":"4667:18:88"},"nativeSrc":"4667:18:88","nodeType":"YulExpressionStatement","src":"4667:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"4657:1:88","nodeType":"YulIdentifier","src":"4657:1:88"},{"name":"sum","nativeSrc":"4660:3:88","nodeType":"YulIdentifier","src":"4660:3:88"}],"functionName":{"name":"gt","nativeSrc":"4654:2:88","nodeType":"YulIdentifier","src":"4654:2:88"},"nativeSrc":"4654:10:88","nodeType":"YulFunctionCall","src":"4654:10:88"},"nativeSrc":"4651:36:88","nodeType":"YulIf","src":"4651:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"4568:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4599:1:88","nodeType":"YulTypedName","src":"4599:1:88","type":""},{"name":"y","nativeSrc":"4602:1:88","nodeType":"YulTypedName","src":"4602:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4608:3:88","nodeType":"YulTypedName","src":"4608:3:88","type":""}],"src":"4568:125:88"},{"body":{"nativeSrc":"4747:79:88","nodeType":"YulBlock","src":"4747:79:88","statements":[{"nativeSrc":"4757:17:88","nodeType":"YulAssignment","src":"4757:17:88","value":{"arguments":[{"name":"x","nativeSrc":"4769:1:88","nodeType":"YulIdentifier","src":"4769:1:88"},{"name":"y","nativeSrc":"4772:1:88","nodeType":"YulIdentifier","src":"4772:1:88"}],"functionName":{"name":"sub","nativeSrc":"4765:3:88","nodeType":"YulIdentifier","src":"4765:3:88"},"nativeSrc":"4765:9:88","nodeType":"YulFunctionCall","src":"4765:9:88"},"variableNames":[{"name":"diff","nativeSrc":"4757:4:88","nodeType":"YulIdentifier","src":"4757:4:88"}]},{"body":{"nativeSrc":"4798:22:88","nodeType":"YulBlock","src":"4798:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4800:16:88","nodeType":"YulIdentifier","src":"4800:16:88"},"nativeSrc":"4800:18:88","nodeType":"YulFunctionCall","src":"4800:18:88"},"nativeSrc":"4800:18:88","nodeType":"YulExpressionStatement","src":"4800:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4789:4:88","nodeType":"YulIdentifier","src":"4789:4:88"},{"name":"x","nativeSrc":"4795:1:88","nodeType":"YulIdentifier","src":"4795:1:88"}],"functionName":{"name":"gt","nativeSrc":"4786:2:88","nodeType":"YulIdentifier","src":"4786:2:88"},"nativeSrc":"4786:11:88","nodeType":"YulFunctionCall","src":"4786:11:88"},"nativeSrc":"4783:37:88","nodeType":"YulIf","src":"4783:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"4698:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4729:1:88","nodeType":"YulTypedName","src":"4729:1:88","type":""},{"name":"y","nativeSrc":"4732:1:88","nodeType":"YulTypedName","src":"4732:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4738:4:88","nodeType":"YulTypedName","src":"4738:4:88","type":""}],"src":"4698:128:88"},{"body":{"nativeSrc":"4883:116:88","nodeType":"YulBlock","src":"4883:116:88","statements":[{"nativeSrc":"4893:20:88","nodeType":"YulAssignment","src":"4893:20:88","value":{"arguments":[{"name":"x","nativeSrc":"4908:1:88","nodeType":"YulIdentifier","src":"4908:1:88"},{"name":"y","nativeSrc":"4911:1:88","nodeType":"YulIdentifier","src":"4911:1:88"}],"functionName":{"name":"mul","nativeSrc":"4904:3:88","nodeType":"YulIdentifier","src":"4904:3:88"},"nativeSrc":"4904:9:88","nodeType":"YulFunctionCall","src":"4904:9:88"},"variableNames":[{"name":"product","nativeSrc":"4893:7:88","nodeType":"YulIdentifier","src":"4893:7:88"}]},{"body":{"nativeSrc":"4971:22:88","nodeType":"YulBlock","src":"4971:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4973:16:88","nodeType":"YulIdentifier","src":"4973:16:88"},"nativeSrc":"4973:18:88","nodeType":"YulFunctionCall","src":"4973:18:88"},"nativeSrc":"4973:18:88","nodeType":"YulExpressionStatement","src":"4973:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"4942:1:88","nodeType":"YulIdentifier","src":"4942:1:88"}],"functionName":{"name":"iszero","nativeSrc":"4935:6:88","nodeType":"YulIdentifier","src":"4935:6:88"},"nativeSrc":"4935:9:88","nodeType":"YulFunctionCall","src":"4935:9:88"},{"arguments":[{"name":"y","nativeSrc":"4949:1:88","nodeType":"YulIdentifier","src":"4949:1:88"},{"arguments":[{"name":"product","nativeSrc":"4956:7:88","nodeType":"YulIdentifier","src":"4956:7:88"},{"name":"x","nativeSrc":"4965:1:88","nodeType":"YulIdentifier","src":"4965:1:88"}],"functionName":{"name":"div","nativeSrc":"4952:3:88","nodeType":"YulIdentifier","src":"4952:3:88"},"nativeSrc":"4952:15:88","nodeType":"YulFunctionCall","src":"4952:15:88"}],"functionName":{"name":"eq","nativeSrc":"4946:2:88","nodeType":"YulIdentifier","src":"4946:2:88"},"nativeSrc":"4946:22:88","nodeType":"YulFunctionCall","src":"4946:22:88"}],"functionName":{"name":"or","nativeSrc":"4932:2:88","nodeType":"YulIdentifier","src":"4932:2:88"},"nativeSrc":"4932:37:88","nodeType":"YulFunctionCall","src":"4932:37:88"}],"functionName":{"name":"iszero","nativeSrc":"4925:6:88","nodeType":"YulIdentifier","src":"4925:6:88"},"nativeSrc":"4925:45:88","nodeType":"YulFunctionCall","src":"4925:45:88"},"nativeSrc":"4922:71:88","nodeType":"YulIf","src":"4922:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"4831:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4862:1:88","nodeType":"YulTypedName","src":"4862:1:88","type":""},{"name":"y","nativeSrc":"4865:1:88","nodeType":"YulTypedName","src":"4865:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"4871:7:88","nodeType":"YulTypedName","src":"4871:7:88","type":""}],"src":"4831:168:88"},{"body":{"nativeSrc":"5161:214:88","nodeType":"YulBlock","src":"5161:214:88","statements":[{"nativeSrc":"5171:26:88","nodeType":"YulAssignment","src":"5171:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5183:9:88","nodeType":"YulIdentifier","src":"5183:9:88"},{"kind":"number","nativeSrc":"5194:2:88","nodeType":"YulLiteral","src":"5194:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5179:3:88","nodeType":"YulIdentifier","src":"5179:3:88"},"nativeSrc":"5179:18:88","nodeType":"YulFunctionCall","src":"5179:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5171:4:88","nodeType":"YulIdentifier","src":"5171:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5213:9:88","nodeType":"YulIdentifier","src":"5213:9:88"},{"name":"value0","nativeSrc":"5224:6:88","nodeType":"YulIdentifier","src":"5224:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5206:6:88","nodeType":"YulIdentifier","src":"5206:6:88"},"nativeSrc":"5206:25:88","nodeType":"YulFunctionCall","src":"5206:25:88"},"nativeSrc":"5206:25:88","nodeType":"YulExpressionStatement","src":"5206:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5251:9:88","nodeType":"YulIdentifier","src":"5251:9:88"},{"kind":"number","nativeSrc":"5262:2:88","nodeType":"YulLiteral","src":"5262:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5247:3:88","nodeType":"YulIdentifier","src":"5247:3:88"},"nativeSrc":"5247:18:88","nodeType":"YulFunctionCall","src":"5247:18:88"},{"arguments":[{"name":"value1","nativeSrc":"5271:6:88","nodeType":"YulIdentifier","src":"5271:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5287:3:88","nodeType":"YulLiteral","src":"5287:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5292:1:88","nodeType":"YulLiteral","src":"5292:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5283:3:88","nodeType":"YulIdentifier","src":"5283:3:88"},"nativeSrc":"5283:11:88","nodeType":"YulFunctionCall","src":"5283:11:88"},{"kind":"number","nativeSrc":"5296:1:88","nodeType":"YulLiteral","src":"5296:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5279:3:88","nodeType":"YulIdentifier","src":"5279:3:88"},"nativeSrc":"5279:19:88","nodeType":"YulFunctionCall","src":"5279:19:88"}],"functionName":{"name":"and","nativeSrc":"5267:3:88","nodeType":"YulIdentifier","src":"5267:3:88"},"nativeSrc":"5267:32:88","nodeType":"YulFunctionCall","src":"5267:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5240:6:88","nodeType":"YulIdentifier","src":"5240:6:88"},"nativeSrc":"5240:60:88","nodeType":"YulFunctionCall","src":"5240:60:88"},"nativeSrc":"5240:60:88","nodeType":"YulExpressionStatement","src":"5240:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5320:9:88","nodeType":"YulIdentifier","src":"5320:9:88"},{"kind":"number","nativeSrc":"5331:2:88","nodeType":"YulLiteral","src":"5331:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5316:3:88","nodeType":"YulIdentifier","src":"5316:3:88"},"nativeSrc":"5316:18:88","nodeType":"YulFunctionCall","src":"5316:18:88"},{"arguments":[{"name":"value2","nativeSrc":"5340:6:88","nodeType":"YulIdentifier","src":"5340:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5356:3:88","nodeType":"YulLiteral","src":"5356:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5361:1:88","nodeType":"YulLiteral","src":"5361:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5352:3:88","nodeType":"YulIdentifier","src":"5352:3:88"},"nativeSrc":"5352:11:88","nodeType":"YulFunctionCall","src":"5352:11:88"},{"kind":"number","nativeSrc":"5365:1:88","nodeType":"YulLiteral","src":"5365:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5348:3:88","nodeType":"YulIdentifier","src":"5348:3:88"},"nativeSrc":"5348:19:88","nodeType":"YulFunctionCall","src":"5348:19:88"}],"functionName":{"name":"and","nativeSrc":"5336:3:88","nodeType":"YulIdentifier","src":"5336:3:88"},"nativeSrc":"5336:32:88","nodeType":"YulFunctionCall","src":"5336:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5309:6:88","nodeType":"YulIdentifier","src":"5309:6:88"},"nativeSrc":"5309:60:88","nodeType":"YulFunctionCall","src":"5309:60:88"},"nativeSrc":"5309:60:88","nodeType":"YulExpressionStatement","src":"5309:60:88"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed","nativeSrc":"5004:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5114:9:88","nodeType":"YulTypedName","src":"5114:9:88","type":""},{"name":"value2","nativeSrc":"5125:6:88","nodeType":"YulTypedName","src":"5125:6:88","type":""},{"name":"value1","nativeSrc":"5133:6:88","nodeType":"YulTypedName","src":"5133:6:88","type":""},{"name":"value0","nativeSrc":"5141:6:88","nodeType":"YulTypedName","src":"5141:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5152:4:88","nodeType":"YulTypedName","src":"5152:4:88","type":""}],"src":"5004:371:88"},{"body":{"nativeSrc":"5509:145:88","nodeType":"YulBlock","src":"5509:145:88","statements":[{"nativeSrc":"5519:26:88","nodeType":"YulAssignment","src":"5519:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5531:9:88","nodeType":"YulIdentifier","src":"5531:9:88"},{"kind":"number","nativeSrc":"5542:2:88","nodeType":"YulLiteral","src":"5542:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5527:3:88","nodeType":"YulIdentifier","src":"5527:3:88"},"nativeSrc":"5527:18:88","nodeType":"YulFunctionCall","src":"5527:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5519:4:88","nodeType":"YulIdentifier","src":"5519:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5561:9:88","nodeType":"YulIdentifier","src":"5561:9:88"},{"name":"value0","nativeSrc":"5572:6:88","nodeType":"YulIdentifier","src":"5572:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5554:6:88","nodeType":"YulIdentifier","src":"5554:6:88"},"nativeSrc":"5554:25:88","nodeType":"YulFunctionCall","src":"5554:25:88"},"nativeSrc":"5554:25:88","nodeType":"YulExpressionStatement","src":"5554:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5599:9:88","nodeType":"YulIdentifier","src":"5599:9:88"},{"kind":"number","nativeSrc":"5610:2:88","nodeType":"YulLiteral","src":"5610:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5595:3:88","nodeType":"YulIdentifier","src":"5595:3:88"},"nativeSrc":"5595:18:88","nodeType":"YulFunctionCall","src":"5595:18:88"},{"arguments":[{"name":"value1","nativeSrc":"5619:6:88","nodeType":"YulIdentifier","src":"5619:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5635:3:88","nodeType":"YulLiteral","src":"5635:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5640:1:88","nodeType":"YulLiteral","src":"5640:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5631:3:88","nodeType":"YulIdentifier","src":"5631:3:88"},"nativeSrc":"5631:11:88","nodeType":"YulFunctionCall","src":"5631:11:88"},{"kind":"number","nativeSrc":"5644:1:88","nodeType":"YulLiteral","src":"5644:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5627:3:88","nodeType":"YulIdentifier","src":"5627:3:88"},"nativeSrc":"5627:19:88","nodeType":"YulFunctionCall","src":"5627:19:88"}],"functionName":{"name":"and","nativeSrc":"5615:3:88","nodeType":"YulIdentifier","src":"5615:3:88"},"nativeSrc":"5615:32:88","nodeType":"YulFunctionCall","src":"5615:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5588:6:88","nodeType":"YulIdentifier","src":"5588:6:88"},"nativeSrc":"5588:60:88","nodeType":"YulFunctionCall","src":"5588:60:88"},"nativeSrc":"5588:60:88","nodeType":"YulExpressionStatement","src":"5588:60:88"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nativeSrc":"5380:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5470:9:88","nodeType":"YulTypedName","src":"5470:9:88","type":""},{"name":"value1","nativeSrc":"5481:6:88","nodeType":"YulTypedName","src":"5481:6:88","type":""},{"name":"value0","nativeSrc":"5489:6:88","nodeType":"YulTypedName","src":"5489:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5500:4:88","nodeType":"YulTypedName","src":"5500:4:88","type":""}],"src":"5380:274:88"},{"body":{"nativeSrc":"5707:152:88","nodeType":"YulBlock","src":"5707:152:88","statements":[{"nativeSrc":"5717:17:88","nodeType":"YulAssignment","src":"5717:17:88","value":{"arguments":[{"name":"x","nativeSrc":"5729:1:88","nodeType":"YulIdentifier","src":"5729:1:88"},{"name":"y","nativeSrc":"5732:1:88","nodeType":"YulIdentifier","src":"5732:1:88"}],"functionName":{"name":"sub","nativeSrc":"5725:3:88","nodeType":"YulIdentifier","src":"5725:3:88"},"nativeSrc":"5725:9:88","nodeType":"YulFunctionCall","src":"5725:9:88"},"variableNames":[{"name":"diff","nativeSrc":"5717:4:88","nodeType":"YulIdentifier","src":"5717:4:88"}]},{"nativeSrc":"5743:19:88","nodeType":"YulVariableDeclaration","src":"5743:19:88","value":{"arguments":[{"name":"y","nativeSrc":"5757:1:88","nodeType":"YulIdentifier","src":"5757:1:88"},{"kind":"number","nativeSrc":"5760:1:88","nodeType":"YulLiteral","src":"5760:1:88","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"5753:3:88","nodeType":"YulIdentifier","src":"5753:3:88"},"nativeSrc":"5753:9:88","nodeType":"YulFunctionCall","src":"5753:9:88"},"variables":[{"name":"_1","nativeSrc":"5747:2:88","nodeType":"YulTypedName","src":"5747:2:88","type":""}]},{"body":{"nativeSrc":"5831:22:88","nodeType":"YulBlock","src":"5831:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5833:16:88","nodeType":"YulIdentifier","src":"5833:16:88"},"nativeSrc":"5833:18:88","nodeType":"YulFunctionCall","src":"5833:18:88"},"nativeSrc":"5833:18:88","nodeType":"YulExpressionStatement","src":"5833:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5788:2:88","nodeType":"YulIdentifier","src":"5788:2:88"}],"functionName":{"name":"iszero","nativeSrc":"5781:6:88","nodeType":"YulIdentifier","src":"5781:6:88"},"nativeSrc":"5781:10:88","nodeType":"YulFunctionCall","src":"5781:10:88"},{"arguments":[{"name":"diff","nativeSrc":"5797:4:88","nodeType":"YulIdentifier","src":"5797:4:88"},{"name":"x","nativeSrc":"5803:1:88","nodeType":"YulIdentifier","src":"5803:1:88"}],"functionName":{"name":"sgt","nativeSrc":"5793:3:88","nodeType":"YulIdentifier","src":"5793:3:88"},"nativeSrc":"5793:12:88","nodeType":"YulFunctionCall","src":"5793:12:88"}],"functionName":{"name":"and","nativeSrc":"5777:3:88","nodeType":"YulIdentifier","src":"5777:3:88"},"nativeSrc":"5777:29:88","nodeType":"YulFunctionCall","src":"5777:29:88"},{"arguments":[{"name":"_1","nativeSrc":"5812:2:88","nodeType":"YulIdentifier","src":"5812:2:88"},{"arguments":[{"name":"diff","nativeSrc":"5820:4:88","nodeType":"YulIdentifier","src":"5820:4:88"},{"name":"x","nativeSrc":"5826:1:88","nodeType":"YulIdentifier","src":"5826:1:88"}],"functionName":{"name":"slt","nativeSrc":"5816:3:88","nodeType":"YulIdentifier","src":"5816:3:88"},"nativeSrc":"5816:12:88","nodeType":"YulFunctionCall","src":"5816:12:88"}],"functionName":{"name":"and","nativeSrc":"5808:3:88","nodeType":"YulIdentifier","src":"5808:3:88"},"nativeSrc":"5808:21:88","nodeType":"YulFunctionCall","src":"5808:21:88"}],"functionName":{"name":"or","nativeSrc":"5774:2:88","nodeType":"YulIdentifier","src":"5774:2:88"},"nativeSrc":"5774:56:88","nodeType":"YulFunctionCall","src":"5774:56:88"},"nativeSrc":"5771:82:88","nodeType":"YulIf","src":"5771:82:88"}]},"name":"checked_sub_t_int256","nativeSrc":"5659:200:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5689:1:88","nodeType":"YulTypedName","src":"5689:1:88","type":""},{"name":"y","nativeSrc":"5692:1:88","nodeType":"YulTypedName","src":"5692:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5698:4:88","nodeType":"YulTypedName","src":"5698:4:88","type":""}],"src":"5659:200:88"},{"body":{"nativeSrc":"5993:145:88","nodeType":"YulBlock","src":"5993:145:88","statements":[{"nativeSrc":"6003:26:88","nodeType":"YulAssignment","src":"6003:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6015:9:88","nodeType":"YulIdentifier","src":"6015:9:88"},{"kind":"number","nativeSrc":"6026:2:88","nodeType":"YulLiteral","src":"6026:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6011:3:88","nodeType":"YulIdentifier","src":"6011:3:88"},"nativeSrc":"6011:18:88","nodeType":"YulFunctionCall","src":"6011:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6003:4:88","nodeType":"YulIdentifier","src":"6003:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6045:9:88","nodeType":"YulIdentifier","src":"6045:9:88"},{"arguments":[{"name":"value0","nativeSrc":"6060:6:88","nodeType":"YulIdentifier","src":"6060:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6076:3:88","nodeType":"YulLiteral","src":"6076:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6081:1:88","nodeType":"YulLiteral","src":"6081:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6072:3:88","nodeType":"YulIdentifier","src":"6072:3:88"},"nativeSrc":"6072:11:88","nodeType":"YulFunctionCall","src":"6072:11:88"},{"kind":"number","nativeSrc":"6085:1:88","nodeType":"YulLiteral","src":"6085:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6068:3:88","nodeType":"YulIdentifier","src":"6068:3:88"},"nativeSrc":"6068:19:88","nodeType":"YulFunctionCall","src":"6068:19:88"}],"functionName":{"name":"and","nativeSrc":"6056:3:88","nodeType":"YulIdentifier","src":"6056:3:88"},"nativeSrc":"6056:32:88","nodeType":"YulFunctionCall","src":"6056:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6038:6:88","nodeType":"YulIdentifier","src":"6038:6:88"},"nativeSrc":"6038:51:88","nodeType":"YulFunctionCall","src":"6038:51:88"},"nativeSrc":"6038:51:88","nodeType":"YulExpressionStatement","src":"6038:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6109:9:88","nodeType":"YulIdentifier","src":"6109:9:88"},{"kind":"number","nativeSrc":"6120:2:88","nodeType":"YulLiteral","src":"6120:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6105:3:88","nodeType":"YulIdentifier","src":"6105:3:88"},"nativeSrc":"6105:18:88","nodeType":"YulFunctionCall","src":"6105:18:88"},{"name":"value1","nativeSrc":"6125:6:88","nodeType":"YulIdentifier","src":"6125:6:88"}],"functionName":{"name":"mstore","nativeSrc":"6098:6:88","nodeType":"YulIdentifier","src":"6098:6:88"},"nativeSrc":"6098:34:88","nodeType":"YulFunctionCall","src":"6098:34:88"},"nativeSrc":"6098:34:88","nodeType":"YulExpressionStatement","src":"6098:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"5864:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5954:9:88","nodeType":"YulTypedName","src":"5954:9:88","type":""},{"name":"value1","nativeSrc":"5965:6:88","nodeType":"YulTypedName","src":"5965:6:88","type":""},{"name":"value0","nativeSrc":"5973:6:88","nodeType":"YulTypedName","src":"5973:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5984:4:88","nodeType":"YulTypedName","src":"5984:4:88","type":""}],"src":"5864:274:88"},{"body":{"nativeSrc":"6221:199:88","nodeType":"YulBlock","src":"6221:199:88","statements":[{"body":{"nativeSrc":"6267:16:88","nodeType":"YulBlock","src":"6267:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6276:1:88","nodeType":"YulLiteral","src":"6276:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6279:1:88","nodeType":"YulLiteral","src":"6279:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6269:6:88","nodeType":"YulIdentifier","src":"6269:6:88"},"nativeSrc":"6269:12:88","nodeType":"YulFunctionCall","src":"6269:12:88"},"nativeSrc":"6269:12:88","nodeType":"YulExpressionStatement","src":"6269:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6242:7:88","nodeType":"YulIdentifier","src":"6242:7:88"},{"name":"headStart","nativeSrc":"6251:9:88","nodeType":"YulIdentifier","src":"6251:9:88"}],"functionName":{"name":"sub","nativeSrc":"6238:3:88","nodeType":"YulIdentifier","src":"6238:3:88"},"nativeSrc":"6238:23:88","nodeType":"YulFunctionCall","src":"6238:23:88"},{"kind":"number","nativeSrc":"6263:2:88","nodeType":"YulLiteral","src":"6263:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6234:3:88","nodeType":"YulIdentifier","src":"6234:3:88"},"nativeSrc":"6234:32:88","nodeType":"YulFunctionCall","src":"6234:32:88"},"nativeSrc":"6231:52:88","nodeType":"YulIf","src":"6231:52:88"},{"nativeSrc":"6292:29:88","nodeType":"YulVariableDeclaration","src":"6292:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6311:9:88","nodeType":"YulIdentifier","src":"6311:9:88"}],"functionName":{"name":"mload","nativeSrc":"6305:5:88","nodeType":"YulIdentifier","src":"6305:5:88"},"nativeSrc":"6305:16:88","nodeType":"YulFunctionCall","src":"6305:16:88"},"variables":[{"name":"value","nativeSrc":"6296:5:88","nodeType":"YulTypedName","src":"6296:5:88","type":""}]},{"body":{"nativeSrc":"6374:16:88","nodeType":"YulBlock","src":"6374:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6383:1:88","nodeType":"YulLiteral","src":"6383:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6386:1:88","nodeType":"YulLiteral","src":"6386:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6376:6:88","nodeType":"YulIdentifier","src":"6376:6:88"},"nativeSrc":"6376:12:88","nodeType":"YulFunctionCall","src":"6376:12:88"},"nativeSrc":"6376:12:88","nodeType":"YulExpressionStatement","src":"6376:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6343:5:88","nodeType":"YulIdentifier","src":"6343:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6364:5:88","nodeType":"YulIdentifier","src":"6364:5:88"}],"functionName":{"name":"iszero","nativeSrc":"6357:6:88","nodeType":"YulIdentifier","src":"6357:6:88"},"nativeSrc":"6357:13:88","nodeType":"YulFunctionCall","src":"6357:13:88"}],"functionName":{"name":"iszero","nativeSrc":"6350:6:88","nodeType":"YulIdentifier","src":"6350:6:88"},"nativeSrc":"6350:21:88","nodeType":"YulFunctionCall","src":"6350:21:88"}],"functionName":{"name":"eq","nativeSrc":"6340:2:88","nodeType":"YulIdentifier","src":"6340:2:88"},"nativeSrc":"6340:32:88","nodeType":"YulFunctionCall","src":"6340:32:88"}],"functionName":{"name":"iszero","nativeSrc":"6333:6:88","nodeType":"YulIdentifier","src":"6333:6:88"},"nativeSrc":"6333:40:88","nodeType":"YulFunctionCall","src":"6333:40:88"},"nativeSrc":"6330:60:88","nodeType":"YulIf","src":"6330:60:88"},{"nativeSrc":"6399:15:88","nodeType":"YulAssignment","src":"6399:15:88","value":{"name":"value","nativeSrc":"6409:5:88","nodeType":"YulIdentifier","src":"6409:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6399:6:88","nodeType":"YulIdentifier","src":"6399:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"6143:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6187:9:88","nodeType":"YulTypedName","src":"6187:9:88","type":""},{"name":"dataEnd","nativeSrc":"6198:7:88","nodeType":"YulTypedName","src":"6198:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6210:6:88","nodeType":"YulTypedName","src":"6210:6:88","type":""}],"src":"6143:277:88"},{"body":{"nativeSrc":"6599:228:88","nodeType":"YulBlock","src":"6599:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6616:9:88","nodeType":"YulIdentifier","src":"6616:9:88"},{"kind":"number","nativeSrc":"6627:2:88","nodeType":"YulLiteral","src":"6627:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6609:6:88","nodeType":"YulIdentifier","src":"6609:6:88"},"nativeSrc":"6609:21:88","nodeType":"YulFunctionCall","src":"6609:21:88"},"nativeSrc":"6609:21:88","nodeType":"YulExpressionStatement","src":"6609:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6650:9:88","nodeType":"YulIdentifier","src":"6650:9:88"},{"kind":"number","nativeSrc":"6661:2:88","nodeType":"YulLiteral","src":"6661:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6646:3:88","nodeType":"YulIdentifier","src":"6646:3:88"},"nativeSrc":"6646:18:88","nodeType":"YulFunctionCall","src":"6646:18:88"},{"kind":"number","nativeSrc":"6666:2:88","nodeType":"YulLiteral","src":"6666:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"6639:6:88","nodeType":"YulIdentifier","src":"6639:6:88"},"nativeSrc":"6639:30:88","nodeType":"YulFunctionCall","src":"6639:30:88"},"nativeSrc":"6639:30:88","nodeType":"YulExpressionStatement","src":"6639:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6689:9:88","nodeType":"YulIdentifier","src":"6689:9:88"},{"kind":"number","nativeSrc":"6700:2:88","nodeType":"YulLiteral","src":"6700:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6685:3:88","nodeType":"YulIdentifier","src":"6685:3:88"},"nativeSrc":"6685:18:88","nodeType":"YulFunctionCall","src":"6685:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"6705:34:88","nodeType":"YulLiteral","src":"6705:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"6678:6:88","nodeType":"YulIdentifier","src":"6678:6:88"},"nativeSrc":"6678:62:88","nodeType":"YulFunctionCall","src":"6678:62:88"},"nativeSrc":"6678:62:88","nodeType":"YulExpressionStatement","src":"6678:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6760:9:88","nodeType":"YulIdentifier","src":"6760:9:88"},{"kind":"number","nativeSrc":"6771:2:88","nodeType":"YulLiteral","src":"6771:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6756:3:88","nodeType":"YulIdentifier","src":"6756:3:88"},"nativeSrc":"6756:18:88","nodeType":"YulFunctionCall","src":"6756:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"6776:8:88","nodeType":"YulLiteral","src":"6776:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"6749:6:88","nodeType":"YulIdentifier","src":"6749:6:88"},"nativeSrc":"6749:36:88","nodeType":"YulFunctionCall","src":"6749:36:88"},"nativeSrc":"6749:36:88","nodeType":"YulExpressionStatement","src":"6749:36:88"},{"nativeSrc":"6794:27:88","nodeType":"YulAssignment","src":"6794:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6806:9:88","nodeType":"YulIdentifier","src":"6806:9:88"},{"kind":"number","nativeSrc":"6817:3:88","nodeType":"YulLiteral","src":"6817:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6802:3:88","nodeType":"YulIdentifier","src":"6802:3:88"},"nativeSrc":"6802:19:88","nodeType":"YulFunctionCall","src":"6802:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6794:4:88","nodeType":"YulIdentifier","src":"6794:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6425:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6576:9:88","nodeType":"YulTypedName","src":"6576:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6590:4:88","nodeType":"YulTypedName","src":"6590:4:88","type":""}],"src":"6425:402:88"},{"body":{"nativeSrc":"7006:230:88","nodeType":"YulBlock","src":"7006:230:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7023:9:88","nodeType":"YulIdentifier","src":"7023:9:88"},{"kind":"number","nativeSrc":"7034:2:88","nodeType":"YulLiteral","src":"7034:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7016:6:88","nodeType":"YulIdentifier","src":"7016:6:88"},"nativeSrc":"7016:21:88","nodeType":"YulFunctionCall","src":"7016:21:88"},"nativeSrc":"7016:21:88","nodeType":"YulExpressionStatement","src":"7016:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7057:9:88","nodeType":"YulIdentifier","src":"7057:9:88"},{"kind":"number","nativeSrc":"7068:2:88","nodeType":"YulLiteral","src":"7068:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7053:3:88","nodeType":"YulIdentifier","src":"7053:3:88"},"nativeSrc":"7053:18:88","nodeType":"YulFunctionCall","src":"7053:18:88"},{"kind":"number","nativeSrc":"7073:2:88","nodeType":"YulLiteral","src":"7073:2:88","type":"","value":"40"}],"functionName":{"name":"mstore","nativeSrc":"7046:6:88","nodeType":"YulIdentifier","src":"7046:6:88"},"nativeSrc":"7046:30:88","nodeType":"YulFunctionCall","src":"7046:30:88"},"nativeSrc":"7046:30:88","nodeType":"YulExpressionStatement","src":"7046:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7096:9:88","nodeType":"YulIdentifier","src":"7096:9:88"},{"kind":"number","nativeSrc":"7107:2:88","nodeType":"YulLiteral","src":"7107:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7092:3:88","nodeType":"YulIdentifier","src":"7092:3:88"},"nativeSrc":"7092:18:88","nodeType":"YulFunctionCall","src":"7092:18:88"},{"hexValue":"56616c69646174696f6e3a204c6971756964697479206c696d69747320617265","kind":"string","nativeSrc":"7112:34:88","nodeType":"YulLiteral","src":"7112:34:88","type":"","value":"Validation: Liquidity limits are"}],"functionName":{"name":"mstore","nativeSrc":"7085:6:88","nodeType":"YulIdentifier","src":"7085:6:88"},"nativeSrc":"7085:62:88","nodeType":"YulFunctionCall","src":"7085:62:88"},"nativeSrc":"7085:62:88","nodeType":"YulExpressionStatement","src":"7085:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7167:9:88","nodeType":"YulIdentifier","src":"7167:9:88"},{"kind":"number","nativeSrc":"7178:2:88","nodeType":"YulLiteral","src":"7178:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7163:3:88","nodeType":"YulIdentifier","src":"7163:3:88"},"nativeSrc":"7163:18:88","nodeType":"YulFunctionCall","src":"7163:18:88"},{"hexValue":"20696e76616c6964","kind":"string","nativeSrc":"7183:10:88","nodeType":"YulLiteral","src":"7183:10:88","type":"","value":" invalid"}],"functionName":{"name":"mstore","nativeSrc":"7156:6:88","nodeType":"YulIdentifier","src":"7156:6:88"},"nativeSrc":"7156:38:88","nodeType":"YulFunctionCall","src":"7156:38:88"},"nativeSrc":"7156:38:88","nodeType":"YulExpressionStatement","src":"7156:38:88"},{"nativeSrc":"7203:27:88","nodeType":"YulAssignment","src":"7203:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7215:9:88","nodeType":"YulIdentifier","src":"7215:9:88"},{"kind":"number","nativeSrc":"7226:3:88","nodeType":"YulLiteral","src":"7226:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7211:3:88","nodeType":"YulIdentifier","src":"7211:3:88"},"nativeSrc":"7211:19:88","nodeType":"YulFunctionCall","src":"7211:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7203:4:88","nodeType":"YulIdentifier","src":"7203:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6832:404:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6983:9:88","nodeType":"YulTypedName","src":"6983:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6997:4:88","nodeType":"YulTypedName","src":"6997:4:88","type":""}],"src":"6832:404:88"},{"body":{"nativeSrc":"7415:229:88","nodeType":"YulBlock","src":"7415:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7432:9:88","nodeType":"YulIdentifier","src":"7432:9:88"},{"kind":"number","nativeSrc":"7443:2:88","nodeType":"YulLiteral","src":"7443:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7425:6:88","nodeType":"YulIdentifier","src":"7425:6:88"},"nativeSrc":"7425:21:88","nodeType":"YulFunctionCall","src":"7425:21:88"},"nativeSrc":"7425:21:88","nodeType":"YulExpressionStatement","src":"7425:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7466:9:88","nodeType":"YulIdentifier","src":"7466:9:88"},{"kind":"number","nativeSrc":"7477:2:88","nodeType":"YulLiteral","src":"7477:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7462:3:88","nodeType":"YulIdentifier","src":"7462:3:88"},"nativeSrc":"7462:18:88","nodeType":"YulFunctionCall","src":"7462:18:88"},{"kind":"number","nativeSrc":"7482:2:88","nodeType":"YulLiteral","src":"7482:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"7455:6:88","nodeType":"YulIdentifier","src":"7455:6:88"},"nativeSrc":"7455:30:88","nodeType":"YulFunctionCall","src":"7455:30:88"},"nativeSrc":"7455:30:88","nodeType":"YulExpressionStatement","src":"7455:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7505:9:88","nodeType":"YulIdentifier","src":"7505:9:88"},{"kind":"number","nativeSrc":"7516:2:88","nodeType":"YulLiteral","src":"7516:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7501:3:88","nodeType":"YulIdentifier","src":"7501:3:88"},"nativeSrc":"7501:18:88","nodeType":"YulFunctionCall","src":"7501:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"7521:34:88","nodeType":"YulLiteral","src":"7521:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"7494:6:88","nodeType":"YulIdentifier","src":"7494:6:88"},"nativeSrc":"7494:62:88","nodeType":"YulFunctionCall","src":"7494:62:88"},"nativeSrc":"7494:62:88","nodeType":"YulExpressionStatement","src":"7494:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7576:9:88","nodeType":"YulIdentifier","src":"7576:9:88"},{"kind":"number","nativeSrc":"7587:2:88","nodeType":"YulLiteral","src":"7587:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7572:3:88","nodeType":"YulIdentifier","src":"7572:3:88"},"nativeSrc":"7572:18:88","nodeType":"YulFunctionCall","src":"7572:18:88"},{"hexValue":"32382062697473","kind":"string","nativeSrc":"7592:9:88","nodeType":"YulLiteral","src":"7592:9:88","type":"","value":"28 bits"}],"functionName":{"name":"mstore","nativeSrc":"7565:6:88","nodeType":"YulIdentifier","src":"7565:6:88"},"nativeSrc":"7565:37:88","nodeType":"YulFunctionCall","src":"7565:37:88"},"nativeSrc":"7565:37:88","nodeType":"YulExpressionStatement","src":"7565:37:88"},{"nativeSrc":"7611:27:88","nodeType":"YulAssignment","src":"7611:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7623:9:88","nodeType":"YulIdentifier","src":"7623:9:88"},{"kind":"number","nativeSrc":"7634:3:88","nodeType":"YulLiteral","src":"7634:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7619:3:88","nodeType":"YulIdentifier","src":"7619:3:88"},"nativeSrc":"7619:19:88","nodeType":"YulFunctionCall","src":"7619:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7611:4:88","nodeType":"YulIdentifier","src":"7611:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7241:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7392:9:88","nodeType":"YulTypedName","src":"7392:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7406:4:88","nodeType":"YulTypedName","src":"7406:4:88","type":""}],"src":"7241:403:88"},{"body":{"nativeSrc":"7698:194:88","nodeType":"YulBlock","src":"7698:194:88","statements":[{"nativeSrc":"7708:99:88","nodeType":"YulAssignment","src":"7708:99:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7724:1:88","nodeType":"YulIdentifier","src":"7724:1:88"},{"kind":"number","nativeSrc":"7727:34:88","nodeType":"YulLiteral","src":"7727:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7720:3:88","nodeType":"YulIdentifier","src":"7720:3:88"},"nativeSrc":"7720:42:88","nodeType":"YulFunctionCall","src":"7720:42:88"},{"arguments":[{"name":"y","nativeSrc":"7768:1:88","nodeType":"YulIdentifier","src":"7768:1:88"},{"kind":"number","nativeSrc":"7771:34:88","nodeType":"YulLiteral","src":"7771:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7764:3:88","nodeType":"YulIdentifier","src":"7764:3:88"},"nativeSrc":"7764:42:88","nodeType":"YulFunctionCall","src":"7764:42:88"}],"functionName":{"name":"sub","nativeSrc":"7716:3:88","nodeType":"YulIdentifier","src":"7716:3:88"},"nativeSrc":"7716:91:88","nodeType":"YulFunctionCall","src":"7716:91:88"},"variableNames":[{"name":"diff","nativeSrc":"7708:4:88","nodeType":"YulIdentifier","src":"7708:4:88"}]},{"body":{"nativeSrc":"7864:22:88","nodeType":"YulBlock","src":"7864:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7866:16:88","nodeType":"YulIdentifier","src":"7866:16:88"},"nativeSrc":"7866:18:88","nodeType":"YulFunctionCall","src":"7866:18:88"},"nativeSrc":"7866:18:88","nodeType":"YulExpressionStatement","src":"7866:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"7822:4:88","nodeType":"YulIdentifier","src":"7822:4:88"},{"kind":"number","nativeSrc":"7828:34:88","nodeType":"YulLiteral","src":"7828:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7819:2:88","nodeType":"YulIdentifier","src":"7819:2:88"},"nativeSrc":"7819:44:88","nodeType":"YulFunctionCall","src":"7819:44:88"},"nativeSrc":"7816:70:88","nodeType":"YulIf","src":"7816:70:88"}]},"name":"checked_sub_t_uint128","nativeSrc":"7649:243:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7680:1:88","nodeType":"YulTypedName","src":"7680:1:88","type":""},{"name":"y","nativeSrc":"7683:1:88","nodeType":"YulTypedName","src":"7683:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"7689:4:88","nodeType":"YulTypedName","src":"7689:4:88","type":""}],"src":"7649:243:88"},{"body":{"nativeSrc":"7945:192:88","nodeType":"YulBlock","src":"7945:192:88","statements":[{"nativeSrc":"7955:98:88","nodeType":"YulAssignment","src":"7955:98:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7970:1:88","nodeType":"YulIdentifier","src":"7970:1:88"},{"kind":"number","nativeSrc":"7973:34:88","nodeType":"YulLiteral","src":"7973:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7966:3:88","nodeType":"YulIdentifier","src":"7966:3:88"},"nativeSrc":"7966:42:88","nodeType":"YulFunctionCall","src":"7966:42:88"},{"arguments":[{"name":"y","nativeSrc":"8014:1:88","nodeType":"YulIdentifier","src":"8014:1:88"},{"kind":"number","nativeSrc":"8017:34:88","nodeType":"YulLiteral","src":"8017:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8010:3:88","nodeType":"YulIdentifier","src":"8010:3:88"},"nativeSrc":"8010:42:88","nodeType":"YulFunctionCall","src":"8010:42:88"}],"functionName":{"name":"add","nativeSrc":"7962:3:88","nodeType":"YulIdentifier","src":"7962:3:88"},"nativeSrc":"7962:91:88","nodeType":"YulFunctionCall","src":"7962:91:88"},"variableNames":[{"name":"sum","nativeSrc":"7955:3:88","nodeType":"YulIdentifier","src":"7955:3:88"}]},{"body":{"nativeSrc":"8109:22:88","nodeType":"YulBlock","src":"8109:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8111:16:88","nodeType":"YulIdentifier","src":"8111:16:88"},"nativeSrc":"8111:18:88","nodeType":"YulFunctionCall","src":"8111:18:88"},"nativeSrc":"8111:18:88","nodeType":"YulExpressionStatement","src":"8111:18:88"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"8068:3:88","nodeType":"YulIdentifier","src":"8068:3:88"},{"kind":"number","nativeSrc":"8073:34:88","nodeType":"YulLiteral","src":"8073:34:88","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8065:2:88","nodeType":"YulIdentifier","src":"8065:2:88"},"nativeSrc":"8065:43:88","nodeType":"YulFunctionCall","src":"8065:43:88"},"nativeSrc":"8062:69:88","nodeType":"YulIf","src":"8062:69:88"}]},"name":"checked_add_t_uint128","nativeSrc":"7897:240:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7928:1:88","nodeType":"YulTypedName","src":"7928:1:88","type":""},{"name":"y","nativeSrc":"7931:1:88","nodeType":"YulTypedName","src":"7931:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7937:3:88","nodeType":"YulTypedName","src":"7937:3:88","type":""}],"src":"7897:240:88"},{"body":{"nativeSrc":"8200:86:88","nodeType":"YulBlock","src":"8200:86:88","statements":[{"body":{"nativeSrc":"8264:16:88","nodeType":"YulBlock","src":"8264:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8273:1:88","nodeType":"YulLiteral","src":"8273:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8276:1:88","nodeType":"YulLiteral","src":"8276:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8266:6:88","nodeType":"YulIdentifier","src":"8266:6:88"},"nativeSrc":"8266:12:88","nodeType":"YulFunctionCall","src":"8266:12:88"},"nativeSrc":"8266:12:88","nodeType":"YulExpressionStatement","src":"8266:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8223:5:88","nodeType":"YulIdentifier","src":"8223:5:88"},{"arguments":[{"name":"value","nativeSrc":"8234:5:88","nodeType":"YulIdentifier","src":"8234:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8249:3:88","nodeType":"YulLiteral","src":"8249:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8254:1:88","nodeType":"YulLiteral","src":"8254:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8245:3:88","nodeType":"YulIdentifier","src":"8245:3:88"},"nativeSrc":"8245:11:88","nodeType":"YulFunctionCall","src":"8245:11:88"},{"kind":"number","nativeSrc":"8258:1:88","nodeType":"YulLiteral","src":"8258:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8241:3:88","nodeType":"YulIdentifier","src":"8241:3:88"},"nativeSrc":"8241:19:88","nodeType":"YulFunctionCall","src":"8241:19:88"}],"functionName":{"name":"and","nativeSrc":"8230:3:88","nodeType":"YulIdentifier","src":"8230:3:88"},"nativeSrc":"8230:31:88","nodeType":"YulFunctionCall","src":"8230:31:88"}],"functionName":{"name":"eq","nativeSrc":"8220:2:88","nodeType":"YulIdentifier","src":"8220:2:88"},"nativeSrc":"8220:42:88","nodeType":"YulFunctionCall","src":"8220:42:88"}],"functionName":{"name":"iszero","nativeSrc":"8213:6:88","nodeType":"YulIdentifier","src":"8213:6:88"},"nativeSrc":"8213:50:88","nodeType":"YulFunctionCall","src":"8213:50:88"},"nativeSrc":"8210:70:88","nodeType":"YulIf","src":"8210:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"8142:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8189:5:88","nodeType":"YulTypedName","src":"8189:5:88","type":""}],"src":"8142:144:88"},{"body":{"nativeSrc":"8393:183:88","nodeType":"YulBlock","src":"8393:183:88","statements":[{"body":{"nativeSrc":"8439:16:88","nodeType":"YulBlock","src":"8439:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8448:1:88","nodeType":"YulLiteral","src":"8448:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8451:1:88","nodeType":"YulLiteral","src":"8451:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8441:6:88","nodeType":"YulIdentifier","src":"8441:6:88"},"nativeSrc":"8441:12:88","nodeType":"YulFunctionCall","src":"8441:12:88"},"nativeSrc":"8441:12:88","nodeType":"YulExpressionStatement","src":"8441:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8414:7:88","nodeType":"YulIdentifier","src":"8414:7:88"},{"name":"headStart","nativeSrc":"8423:9:88","nodeType":"YulIdentifier","src":"8423:9:88"}],"functionName":{"name":"sub","nativeSrc":"8410:3:88","nodeType":"YulIdentifier","src":"8410:3:88"},"nativeSrc":"8410:23:88","nodeType":"YulFunctionCall","src":"8410:23:88"},{"kind":"number","nativeSrc":"8435:2:88","nodeType":"YulLiteral","src":"8435:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8406:3:88","nodeType":"YulIdentifier","src":"8406:3:88"},"nativeSrc":"8406:32:88","nodeType":"YulFunctionCall","src":"8406:32:88"},"nativeSrc":"8403:52:88","nodeType":"YulIf","src":"8403:52:88"},{"nativeSrc":"8464:29:88","nodeType":"YulVariableDeclaration","src":"8464:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8483:9:88","nodeType":"YulIdentifier","src":"8483:9:88"}],"functionName":{"name":"mload","nativeSrc":"8477:5:88","nodeType":"YulIdentifier","src":"8477:5:88"},"nativeSrc":"8477:16:88","nodeType":"YulFunctionCall","src":"8477:16:88"},"variables":[{"name":"value","nativeSrc":"8468:5:88","nodeType":"YulTypedName","src":"8468:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8540:5:88","nodeType":"YulIdentifier","src":"8540:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"8502:37:88","nodeType":"YulIdentifier","src":"8502:37:88"},"nativeSrc":"8502:44:88","nodeType":"YulFunctionCall","src":"8502:44:88"},"nativeSrc":"8502:44:88","nodeType":"YulExpressionStatement","src":"8502:44:88"},{"nativeSrc":"8555:15:88","nodeType":"YulAssignment","src":"8555:15:88","value":{"name":"value","nativeSrc":"8565:5:88","nodeType":"YulIdentifier","src":"8565:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8555:6:88","nodeType":"YulIdentifier","src":"8555:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"8291:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8359:9:88","nodeType":"YulTypedName","src":"8359:9:88","type":""},{"name":"dataEnd","nativeSrc":"8370:7:88","nodeType":"YulTypedName","src":"8370:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8382:6:88","nodeType":"YulTypedName","src":"8382:6:88","type":""}],"src":"8291:285:88"},{"body":{"nativeSrc":"8685:183:88","nodeType":"YulBlock","src":"8685:183:88","statements":[{"body":{"nativeSrc":"8731:16:88","nodeType":"YulBlock","src":"8731:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8740:1:88","nodeType":"YulLiteral","src":"8740:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8743:1:88","nodeType":"YulLiteral","src":"8743:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8733:6:88","nodeType":"YulIdentifier","src":"8733:6:88"},"nativeSrc":"8733:12:88","nodeType":"YulFunctionCall","src":"8733:12:88"},"nativeSrc":"8733:12:88","nodeType":"YulExpressionStatement","src":"8733:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8706:7:88","nodeType":"YulIdentifier","src":"8706:7:88"},{"name":"headStart","nativeSrc":"8715:9:88","nodeType":"YulIdentifier","src":"8715:9:88"}],"functionName":{"name":"sub","nativeSrc":"8702:3:88","nodeType":"YulIdentifier","src":"8702:3:88"},"nativeSrc":"8702:23:88","nodeType":"YulFunctionCall","src":"8702:23:88"},{"kind":"number","nativeSrc":"8727:2:88","nodeType":"YulLiteral","src":"8727:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8698:3:88","nodeType":"YulIdentifier","src":"8698:3:88"},"nativeSrc":"8698:32:88","nodeType":"YulFunctionCall","src":"8698:32:88"},"nativeSrc":"8695:52:88","nodeType":"YulIf","src":"8695:52:88"},{"nativeSrc":"8756:29:88","nodeType":"YulVariableDeclaration","src":"8756:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8775:9:88","nodeType":"YulIdentifier","src":"8775:9:88"}],"functionName":{"name":"mload","nativeSrc":"8769:5:88","nodeType":"YulIdentifier","src":"8769:5:88"},"nativeSrc":"8769:16:88","nodeType":"YulFunctionCall","src":"8769:16:88"},"variables":[{"name":"value","nativeSrc":"8760:5:88","nodeType":"YulTypedName","src":"8760:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8832:5:88","nodeType":"YulIdentifier","src":"8832:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"8794:37:88","nodeType":"YulIdentifier","src":"8794:37:88"},"nativeSrc":"8794:44:88","nodeType":"YulFunctionCall","src":"8794:44:88"},"nativeSrc":"8794:44:88","nodeType":"YulExpressionStatement","src":"8794:44:88"},{"nativeSrc":"8847:15:88","nodeType":"YulAssignment","src":"8847:15:88","value":{"name":"value","nativeSrc":"8857:5:88","nodeType":"YulIdentifier","src":"8857:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8847:6:88","nodeType":"YulIdentifier","src":"8847:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"8581:287:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8651:9:88","nodeType":"YulTypedName","src":"8651:9:88","type":""},{"name":"dataEnd","nativeSrc":"8662:7:88","nodeType":"YulTypedName","src":"8662:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8674:6:88","nodeType":"YulTypedName","src":"8674:6:88","type":""}],"src":"8581:287:88"},{"body":{"nativeSrc":"9047:164:88","nodeType":"YulBlock","src":"9047:164:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9064:9:88","nodeType":"YulIdentifier","src":"9064:9:88"},{"kind":"number","nativeSrc":"9075:2:88","nodeType":"YulLiteral","src":"9075:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9057:6:88","nodeType":"YulIdentifier","src":"9057:6:88"},"nativeSrc":"9057:21:88","nodeType":"YulFunctionCall","src":"9057:21:88"},"nativeSrc":"9057:21:88","nodeType":"YulExpressionStatement","src":"9057:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9098:9:88","nodeType":"YulIdentifier","src":"9098:9:88"},{"kind":"number","nativeSrc":"9109:2:88","nodeType":"YulLiteral","src":"9109:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9094:3:88","nodeType":"YulIdentifier","src":"9094:3:88"},"nativeSrc":"9094:18:88","nodeType":"YulFunctionCall","src":"9094:18:88"},{"kind":"number","nativeSrc":"9114:2:88","nodeType":"YulLiteral","src":"9114:2:88","type":"","value":"14"}],"functionName":{"name":"mstore","nativeSrc":"9087:6:88","nodeType":"YulIdentifier","src":"9087:6:88"},"nativeSrc":"9087:30:88","nodeType":"YulFunctionCall","src":"9087:30:88"},"nativeSrc":"9087:30:88","nodeType":"YulExpressionStatement","src":"9087:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9137:9:88","nodeType":"YulIdentifier","src":"9137:9:88"},{"kind":"number","nativeSrc":"9148:2:88","nodeType":"YulLiteral","src":"9148:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9133:3:88","nodeType":"YulIdentifier","src":"9133:3:88"},"nativeSrc":"9133:18:88","nodeType":"YulFunctionCall","src":"9133:18:88"},{"hexValue":"4173736574206d69736d61746368","kind":"string","nativeSrc":"9153:16:88","nodeType":"YulLiteral","src":"9153:16:88","type":"","value":"Asset mismatch"}],"functionName":{"name":"mstore","nativeSrc":"9126:6:88","nodeType":"YulIdentifier","src":"9126:6:88"},"nativeSrc":"9126:44:88","nodeType":"YulFunctionCall","src":"9126:44:88"},"nativeSrc":"9126:44:88","nodeType":"YulExpressionStatement","src":"9126:44:88"},{"nativeSrc":"9179:26:88","nodeType":"YulAssignment","src":"9179:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9191:9:88","nodeType":"YulIdentifier","src":"9191:9:88"},{"kind":"number","nativeSrc":"9202:2:88","nodeType":"YulLiteral","src":"9202:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9187:3:88","nodeType":"YulIdentifier","src":"9187:3:88"},"nativeSrc":"9187:18:88","nodeType":"YulFunctionCall","src":"9187:18:88"},"variableNames":[{"name":"tail","nativeSrc":"9179:4:88","nodeType":"YulIdentifier","src":"9179:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8873:338:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9024:9:88","nodeType":"YulTypedName","src":"9024:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9038:4:88","nodeType":"YulTypedName","src":"9038:4:88","type":""}],"src":"8873:338:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_aa11343383c11477acab3f6e76d668131403d8d4b9f0329036e6a9ba85f4d062__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"No need to refill the wallet for\")\n        mstore(add(headStart, 96), \" this payment\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        let _1 := slt(y, 0)\n        if or(and(iszero(_1), sgt(diff, x)), and(_1, slt(diff, x))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_44052a022a12641e3b1c5dcc3220a6bc17feb83af6d57d0c5d488fbf03110e76__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"Validation: Liquidity limits are\")\n        mstore(add(headStart, 96), \" invalid\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"28 bits\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint128(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffffffff))\n        if gt(diff, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_add_t_uint128(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffffffff))\n        if gt(sum, 0xffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_ea7fb2500de6160a8c1134af6ccf9d224b7a8cb3c27feb6fafb21b30d835bc2e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"Asset mismatch\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10843":[{"length":32,"start":2153},{"length":32,"start":2315},{"length":32,"start":2809},{"length":32,"start":2948},{"length":32,"start":3619},{"length":32,"start":4798},{"length":32,"start":4934},{"length":32,"start":5507},{"length":32,"start":5616}],"11062":[{"length":32,"start":1752},{"length":32,"start":1999},{"length":32,"start":2274},{"length":32,"start":3098},{"length":32,"start":3415},{"length":32,"start":3862},{"length":32,"start":4006},{"length":32,"start":5082}],"14381":[{"length":32,"start":429},{"length":32,"start":669},{"length":32,"start":917},{"length":32,"start":1256},{"length":32,"start":1542},{"length":32,"start":2549},{"length":32,"start":3216},{"length":32,"start":3462},{"length":32,"start":4308},{"length":32,"start":5663},{"length":32,"start":6036}]},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100ca575f3560e01c80634eb978a4116100885780638d7ddd90116100635780638d7ddd9014610172578063948cb7191461017a578063cec16f3f14610182578063f9c4fd1b1461018a575f5ffd5b80634eb978a41461014f5780637d7c2a1c146101575780638831c06e1461015f575f5ffd5b8062a9bb8d146100ce57806301ffc9a7146100e35780631014a0c21461010b5780633b6612c81461012c5780633db77cb8146101345780634dd93bd314610147575b5f5ffd5b6100e16100dc3660046118e0565b610192565b005b6100f66100f1366004611909565b610491565b60405190151581526020015b60405180910390f35b61011e610119366004611930565b6104c7565b604051908152602001610102565b61011e610603565b6100e1610142366004611930565b6106ba565b61011e6108dc565b61011e610939565b6100e16109de565b6100e161016d366004611930565b610adc565b61011e610c8d565b6100e1610d38565b61011e610df1565b61011e6110d1565b5f516020611bb15f395f51905f525f198414610290576102457f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610207573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190611947565b61023690600a611a5e565b6102409086611a6c565b611184565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198314610388576103307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031b9190611947565b61032690600a611a5e565b6102409085611a6c565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5f198214610483576104287f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104139190611947565b61041e90600a611a5e565b6102409084611a6c565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061048c6111ec565b505050565b5f6001600160e01b031982166301ffc9a760e01b14806104c157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b81523060048201525f9081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561052d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105519190611a8b565b90508281106105bd5760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b5f6105c66108dc565b9050816105d16110d1565b6105db9086611aa2565b6105e59190611ab5565b9250808311156105f3578092505b6105fc83611290565b5050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610660573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106849190611947565b61068f90600a611a5e565b5f516020611bb15f395f51905f52546106b59190600160401b900463ffffffff16611ac8565b905090565b5f5f1982036107b857604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa15801561072d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190611a8b565b30306040518463ffffffff1660e01b815260040161077193929190611adf565b6020604051808303815f875af115801561078d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b19190611a8b565b905061084d565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061080890859030908190600401611adf565b6020604051808303815f875af1158015610824573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108489190611a8b565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303815f875af11580156108b8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048c9190611a8b565b5f6109067f0000000000000000000000000000000000000000000000000000000000000000611429565b61092f7f0000000000000000000000000000000000000000000000000000000000000000611429565b6106b59190611aa2565b5f5f6109436108dc565b5f516020611bb15f395f51905f528054919250905f9061097390600160601b90046001600160801b031684611afe565b905061097e836114f6565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a42573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a669190611a8b565b9050610a70610603565b811115610a9457610a91610a826110d1565b610a8c9083611ab5565b61155e565b50565b610a9c610c8d565b811015610a91575f610ac7610aaf6108dc565b83610ab86110d1565b610ac29190611ab5565b6115ba565b90508015610ad857610ad881611290565b5050565b5f198103610b6d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6a9190611a8b565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bbd90849030908190600401611adf565b6020604051808303815f875af1158015610bd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfd9190611a8b565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303815f875af1158015610c69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad89190611a8b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611947565b610d1990600a611a5e565b5f516020611bb15f395f51905f52546106b5919063ffffffff16611ac8565b610d406115d1565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303815f875af1158015610dcd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a919190611b24565b5f805f516020611bb15f395f51905f526040516370a0823160e01b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610e70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e949190611a8b565b30306040518463ffffffff1660e01b8152600401610eb493929190611adf565b6020604051808303815f875af1158015610ed0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef49190611a8b565b604051636c82bbbf60e11b81523060048201529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610f5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7f9190611a8b565b90505f815f03610f8f575f61101f565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba08765290610fdf90859030908190600401611adf565b6020604051808303815f875af1158015610ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101f9190611a8b565b8454909150600160601b90046001600160801b031661103e8285611aa2565b6110489190611afe565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110868483611aa2565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111529190611947565b61115d90600a611a5e565b5f516020611bb15f395f51905f52546106b59190640100000000900463ffffffff16611ac8565b5f63ffffffff8211156111e85760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105b4565b5090565b5f516020611bb15f395f51905f52805463ffffffff640100000000820481169116118015906112335750805463ffffffff600160401b820481166401000000009092041611155b610a915760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105b4565b6112998161164e565b60405163ce96cb7760e01b81523060048201525f906113279083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa158015611303573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac29190611a8b565b905080156113c157604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061137f90849030908190600401611adf565b6020604051808303815f875af115801561139b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bf9190611a8b565b505b6113cb8183611ab5565b15610ad8576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114098385611ab5565b30306040518463ffffffff1660e01b815260040161089c93929190611adf565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa158015611475573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114999190611a8b565b6040518263ffffffff1660e01b81526004016114b791815260200190565b602060405180830381865afa1580156114d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c19190611a8b565b5f6001600160801b038211156111e85760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105b4565b61156781611704565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c4d565b5f8183106115c857816115ca565b825b9392505050565b6115d9611792565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610db1565b5f516020611bb15f395f51905f5280546116819061167c90600160601b90046001600160801b0316846115ba565b6114f6565b81548290600c906116a3908490600160601b90046001600160801b0316611b43565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c65826040516116f891815260200190565b60405180910390a15050565b5f516020611bb15f395f51905f5261171b826114f6565b81548290600c9061173d908490600160601b90046001600160801b0316611b62565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf4826040516116f891815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181c9190611b95565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611857573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187b9190611b95565b6001600160a01b0316146118c25760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105b4565b5f516020611bb15f395f51905f5280546001600160e01b0319169055565b5f5f5f606084860312156118f2575f5ffd5b505081359360208301359350604090920135919050565b5f60208284031215611919575f5ffd5b81356001600160e01b0319811681146115ca575f5ffd5b5f60208284031215611940575f5ffd5b5035919050565b5f60208284031215611957575f5ffd5b815160ff811681146115ca575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156119b65780850481111561199a5761199a611967565b60018416156119a857908102905b60019390931c92800261197f565b935093915050565b5f826119cc575060016104c1565b816119d857505f6104c1565b81600181146119ee57600281146119f857611a14565b60019150506104c1565b60ff841115611a0957611a09611967565b50506001821b6104c1565b5060208310610133831016604e8410600b8410161715611a37575081810a6104c1565b611a435f19848461197b565b805f1904821115611a5657611a56611967565b029392505050565b5f6115ca60ff8416836119be565b5f82611a8657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611a9b575f5ffd5b5051919050565b808201808211156104c1576104c1611967565b818103818111156104c1576104c1611967565b80820281158282048414176104c1576104c1611967565b9283526001600160a01b03918216602084015216604082015260600190565b8181035f831280158383131683831282161715611b1d57611b1d611967565b5092915050565b5f60208284031215611b34575f5ffd5b815180151581146115ca575f5ffd5b6001600160801b0382811682821603908111156104c1576104c1611967565b6001600160801b0381811683821601908111156104c1576104c1611967565b6001600160a01b0381168114610a91575f5ffd5b5f60208284031215611ba5575f5ffd5b81516115ca81611b8156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a264697066735822122041899b1a2fd0dd10fe545bf2461c0beeb94e865097d047829309778e35a3c3e564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCA JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EB978A4 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x8D7DDD90 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x8D7DDD90 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x948CB719 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xCEC16F3F EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xF9C4FD1B EQ PUSH2 0x18A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x8831C06E EQ PUSH2 0x15F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH3 0xA9BB8D EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0x1014A0C2 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x3B6612C8 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x3DB77CB8 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4DD93BD3 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x192 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF6 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1909 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11E PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x603 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0x6BA JUMP JUMPDEST PUSH2 0x11E PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x11E PUSH2 0x939 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x9DE JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0x1930 JUMP JUMPDEST PUSH2 0xADC JUMP JUMPDEST PUSH2 0x11E PUSH2 0xC8D JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xD38 JUMP JUMPDEST PUSH2 0x11E PUSH2 0xDF1 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x10D1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 NOT DUP5 EQ PUSH2 0x290 JUMPI PUSH2 0x245 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x207 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x236 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP7 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1184 JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x26 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP4 EQ PUSH2 0x388 JUMPI PUSH2 0x330 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x326 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP6 PUSH2 0x1A6C JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH8 0xFFFFFFFF00000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x27 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x483 JUMPI PUSH2 0x428 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x413 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x41E SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH2 0x240 SWAP1 DUP5 PUSH2 0x1A6C JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH12 0xFFFFFFFF0000000000000000 NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH1 0x28 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP PUSH2 0x48C PUSH2 0x11EC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4C1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1E670A97 PUSH1 0xE2 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x52D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT PUSH2 0x5BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206E65656420746F20726566696C6C207468652077616C6C657420666F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81D1A1A5CC81C185E5B595B9D PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x5C6 PUSH2 0x8DC JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x5D1 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x5DB SWAP1 DUP7 PUSH2 0x1AA2 JUMP JUMPDEST PUSH2 0x5E5 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x5F3 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5FC DUP4 PUSH2 0x1290 JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x660 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x684 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x68F SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH0 NOT DUP3 SUB PUSH2 0x7B8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6C82BBBF PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0xD905777E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x751 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x771 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B1 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH2 0x84D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0x808 SWAP1 DUP6 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x824 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x848 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP DUP2 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8B8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x48C SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH2 0x906 PUSH32 0x0 PUSH2 0x1429 JUMP JUMPDEST PUSH2 0x92F PUSH32 0x0 PUSH2 0x1429 JUMP JUMPDEST PUSH2 0x6B5 SWAP2 SWAP1 PUSH2 0x1AA2 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x943 PUSH2 0x8DC JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH0 SWAP1 PUSH2 0x973 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x1AFE JUMP JUMPDEST SWAP1 POP PUSH2 0x97E DUP4 PUSH2 0x14F6 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA42 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA66 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH2 0xA70 PUSH2 0x603 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0xA94 JUMPI PUSH2 0xA91 PUSH2 0xA82 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0xA8C SWAP1 DUP4 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x155E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xA9C PUSH2 0xC8D JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xA91 JUMPI PUSH0 PUSH2 0xAC7 PUSH2 0xAAF PUSH2 0x8DC JUMP JUMPDEST DUP4 PUSH2 0xAB8 PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x15BA JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH2 0xAD8 DUP2 PUSH2 0x1290 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 NOT DUP2 SUB PUSH2 0xB6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE96CB77 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCE96CB77 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB46 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0xBBD SWAP1 DUP5 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBD9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBFD SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC69 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD8 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCEA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0E SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0xD19 SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x15D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDCD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA91 SWAP2 SWAP1 PUSH2 0x1B24 JUMP JUMPDEST PUSH0 DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE70 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE94 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEB4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xED0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEF4 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6C82BBBF PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xD905777E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF7F SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH0 SUB PUSH2 0xF8F JUMPI PUSH0 PUSH2 0x101F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5D043B29 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xBA087652 SWAP1 PUSH2 0xFDF SWAP1 DUP6 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFFB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x101F SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x103E DUP3 DUP6 PUSH2 0x1AA2 JUMP JUMPDEST PUSH2 0x1048 SWAP2 SWAP1 PUSH2 0x1AFE JUMP JUMPDEST DUP5 SLOAD PUSH1 0x1 PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP6 SSTORE SWAP5 POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 PUSH2 0x1086 DUP5 DUP4 PUSH2 0x1AA2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP6 DUP2 MSTORE PUSH32 0x731C439C5BAE15BE1344EEC709967E046B4F7D3F7E37ABEFFC5247F448FA18BF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1152 SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x115D SWAP1 PUSH1 0xA PUSH2 0x1A5E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x6B5 SWAP2 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1AC8 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x11E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x1233 JUMPI POP DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND GT ISZERO JUMPDEST PUSH2 0xA91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A204C6971756964697479206C696D69747320617265 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81A5B9D985B1A59 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x1299 DUP2 PUSH2 0x164E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCE96CB77 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x1327 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCE96CB77 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1303 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC2 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x13C1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D182BE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB460AF94 SWAP1 PUSH2 0x137F SWAP1 DUP5 SWAP1 ADDRESS SWAP1 DUP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x139B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13BF SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST POP JUMPDEST PUSH2 0x13CB DUP2 DUP4 PUSH2 0x1AB5 JUMP JUMPDEST ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xB460AF94 PUSH2 0x1409 DUP4 DUP6 PUSH2 0x1AB5 JUMP JUMPDEST ADDRESS ADDRESS PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1ADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x7A2D13A SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1475 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1499 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x1A8B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0x11E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x1567 DUP2 PUSH2 0x1704 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6E553F65 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6E553F65 SWAP1 PUSH1 0x44 ADD PUSH2 0xC4D JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x15C8 JUMPI DUP2 PUSH2 0x15CA JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x15D9 PUSH2 0x1792 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 NOT PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH2 0xDB1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH2 0x1681 SWAP1 PUSH2 0x167C SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP5 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x14F6 JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x16A3 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1B43 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xB82D4E0870BF4AE7236AD1DE74D6612D04D1B805B47D98C2F40088A193D87C65 DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x171B DUP3 PUSH2 0x14F6 JUMP JUMPDEST DUP2 SLOAD DUP3 SWAP1 PUSH1 0xC SWAP1 PUSH2 0x173D SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1B62 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH32 0xF0CDEAC88E111E1DD9B9F043E8C671053DEDFBAECCABFB144FD51A4F870FCF4 DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181C SWAP2 SWAP1 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1857 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x187B SWAP2 SWAP1 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x82E6E6CAE840DAD2E6DAC2E8C6D PUSH1 0x93 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B4 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1BB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18F2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1919 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1940 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1957 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x19B6 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x199A JUMPI PUSH2 0x199A PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x19A8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x197F JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x19CC JUMPI POP PUSH1 0x1 PUSH2 0x4C1 JUMP JUMPDEST DUP2 PUSH2 0x19D8 JUMPI POP PUSH0 PUSH2 0x4C1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x19EE JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x19F8 JUMPI PUSH2 0x1A14 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1A09 JUMPI PUSH2 0x1A09 PUSH2 0x1967 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x4C1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1A37 JUMPI POP DUP2 DUP2 EXP PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x1A43 PUSH0 NOT DUP5 DUP5 PUSH2 0x197B JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1A56 JUMPI PUSH2 0x1A56 PUSH2 0x1967 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15CA PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x19BE JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1A86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x1B1D JUMPI PUSH2 0x1B1D PUSH2 0x1967 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B34 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x15CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x4C1 JUMPI PUSH2 0x4C1 PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA91 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15CA DUP2 PUSH2 0x1B81 JUMP INVALID 0x22 DUP6 CALLCODE SHR 0xF9 CHAINID DELEGATECALL CALL CODECOPY 0xF8 0x4D PUSH1 0xD1 0xBD TIMESTAMP 0xE4 SHL PUSH29 0xECBB3685384F294F426AC09F5F46A264697066735822122041899B1A2F 0xD0 0xDD LT INVALID SLOAD JUMPDEST CALLCODE CHAINID SHR SIGNEXTEND 0xEE 0xB9 0x4E DUP7 POP SWAP8 0xD0 SELFBALANCE DUP3 SWAP4 MULMOD PUSH24 0x8E35A3C3E564736F6C634300081C00330000000000000000 ","sourceMap":"1001:3788:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:761:54;;;;;;:::i;:::-;;:::i;:::-;;6791:199;;;;;;:::i;:::-;;:::i;:::-;;;941:14:88;;934:22;916:41;;904:2;889:18;6791:199:54;;;;;;;;4500:525;;;;;;:::i;:::-;;:::i;:::-;;;1345:25:88;;;1333:2;1318:18;4500:525:54;1199:177:88;5840:127:54;;;:::i;4346:441:50:-;;;;;;:::i;:::-;;:::i;3314:155::-;;;:::i;3234:381:54:-;;;:::i;3835:388::-;;;:::i;3764:256:50:-;;;;;;:::i;:::-;;:::i;5572:127:54:-;;;:::i;2078:164:50:-;;;:::i;2246:917::-;;;:::i;5703:133:54:-;;;:::i;5971:761::-;-1:-1:-1;;;;;;;;;;;;;6140:24:54;::::1;6136:189;;6192:42;6205:6;-1:-1:-1::0;;;;;6205:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6199:23;::::0;:2:::1;:23;:::i;:::-;6193:29;::::0;:3;:29:::1;:::i;:::-;6192:40;:42::i;:::-;6174:60:::0;;-1:-1:-1;;6174:60:54::1;;::::0;;;::::1;;::::0;;6264:48:::1;6247:71;::::0;1345:25:88;;;6247:71:54::1;::::0;1333:2:88;1318:18;6247:71:54::1;;;;;;;6136:189;-1:-1:-1::0;;6334:6:54::1;:27;6330:204;;6392:45;6408:6;-1:-1:-1::0;;;;;6408:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:23;::::0;:2:::1;:23;:::i;:::-;6393:32;::::0;:6;:32:::1;:::i;6392:45::-;6371:66:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;6371:66:54;;::::1;;::::0;;6467:51:::1;6450:77;::::0;1345:25:88;;;6450:77:54::1;::::0;1333:2:88;1318:18;6450:77:54::1;;;;;;;6330:204;-1:-1:-1::0;;6543:3:54::1;:24;6539:189;;6595:42;6608:6;-1:-1:-1::0;;;;;6608:15:54::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6602:23;::::0;:2:::1;:23;:::i;:::-;6596:29;::::0;:3;:29:::1;:::i;6595:42::-;6577:60:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;6577:60:54::1;-1:-1:-1::0;;6577:60:54;;::::1;;::::0;;6667:48:::1;6650:71;::::0;1345:25:88;;;6650:71:54::1;::::0;1333:2:88;1318:18;6650:71:54::1;;;;;;;6539:189;6080:652;1879:21:::0;:19;:21::i;:::-;5971:761;;;:::o;6791:199::-;6876:4;-1:-1:-1;;;;;;6895:40:54;;-1:-1:-1;;;6895:40:54;;:90;;-1:-1:-1;;;;;;;6939:46:54;;-1:-1:-1;;;6939:46:54;6895:90;6888:97;6791:199;-1:-1:-1;;6791:199:54:o;4500:525::-;4611:31;;-1:-1:-1;;;4611:31:54;;4636:4;4611:31;;;3903:51:88;4572:16:54;;;;-1:-1:-1;;;;;4611:6:54;:16;;;;3876:18:88;;4611:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4596:46;;4663:13;4656:4;:20;4648:78;;;;-1:-1:-1;;;4648:78:54;;4356:2:88;4648:78:54;;;4338:21:88;4395:2;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;-1:-1:-1;;;4485:18:88;;;4478:43;4538:19;;4648:78:54;;;;;;;;;4732:23;4758:20;:18;:20::i;:::-;4732:46;;4906:4;4886:17;:15;:17::i;:::-;4870:33;;:13;:33;:::i;:::-;:40;;;;:::i;:::-;4859:51;;4931:15;4920:8;:26;4916:58;;;4959:15;4948:26;;4916:58;4980:19;4990:8;4980:9;:19::i;:::-;5005:15;;4500:525;;;:::o;5840:127::-;5885:7;5945:6;-1:-1:-1;;;;;5945:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5939:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5907:29:54;:55;;;-1:-1:-1;;;5907:29:54;;;;:55;:::i;:::-;5900:62;;5840:127;:::o;4346:441:50:-;4407:17;-1:-1:-1;;4434:6:50;:27;4430:307;;4519:44;;-1:-1:-1;;;4519:44:50;;4557:4;4519:44;;;3903:51:88;4483:19:50;-1:-1:-1;;;;;4483:26:50;;;;;;4519:29;;3876:18:88;;4519:44:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4581:4;4604;4483:134;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4471:146;;4430:307;;;4638:66;;-1:-1:-1;;;4638:66:50;;-1:-1:-1;;;;;4638:19:50;:28;;;;:66;;4667:6;;4683:4;;;;4638:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4724:6;4712:18;;4430:307;4742:40;;-1:-1:-1;;;4742:40:50;;;;;5554:25:88;;;4776:4:50;5595:18:88;;;5588:60;4742:6:50;-1:-1:-1;;;;;4742:14:50;;;;5527:18:88;;4742:40:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3314:155::-;3382:7;3429:35;3444:19;3429:14;:35::i;:::-;3404:22;3419:6;3404:14;:22::i;:::-;:60;;;;:::i;3234:381:54:-;3295:6;3309:23;3335:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;3470:22:54;;3309:46;;-1:-1:-1;2352:53:54;3361:25;;3429:65;;-1:-1:-1;;;3470:22:54;;-1:-1:-1;;;;;3470:22:54;3309:46;3429:65;:::i;:::-;3411:83;;3525:27;:15;:25;:27::i;:::-;3500:52;;-1:-1:-1;;;;;3500:52:54;;;;-1:-1:-1;;;3500:52:54;-1:-1:-1;;;;;;;;3500:52:54;;;;;;3563:26;;1345:25:88;;;3563:26:54;;1333:2:88;1318:18;3563:26:54;;;;;;;3602:8;3234:381;-1:-1:-1;;;3234:381:54:o;3835:388::-;3903:31;;-1:-1:-1;;;3903:31:54;;3928:4;3903:31;;;:51:88;3888:12:54;;3903:6;-1:-1:-1;;;;;3903:16:54;;;;3876:18:88;;3903:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3888:46;;3951:14;:12;:14::i;:::-;3944:4;:21;3940:279;;;3975:33;3990:17;:15;:17::i;:::-;3983:24;;:4;:24;:::i;:::-;3975:7;:33::i;:::-;3882:341;3835:388::o;3940:279::-;4032:14;:12;:14::i;:::-;4025:4;:21;4021:198;;;4056:22;4081:56;4090:20;:18;:20::i;:::-;4132:4;4112:17;:15;:17::i;:::-;:24;;;;:::i;:::-;4081:8;:56::i;:::-;4056:81;-1:-1:-1;4149:18:54;;4145:68;;4179:25;4189:14;4179:9;:25::i;:::-;4048:171;3882:341;3835:388::o;3764:256:50:-;-1:-1:-1;;3829:6:50;:27;3825:75;;3867:33;;-1:-1:-1;;;3867:33:50;;3894:4;3867:33;;;3903:51:88;3867:6:50;-1:-1:-1;;;;;3867:18:50;;;;3876::88;;3867:33:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3858:42;;3825:75;3906:53;;-1:-1:-1;;;3906:53:50;;-1:-1:-1;;;;;3906:6:50;:15;;;;:53;;3922:6;;3938:4;;;;3906:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3965:50:50;;-1:-1:-1;;;3965:50:50;;;;;5554:25:88;;;4009:4:50;5595:18:88;;;5588:60;3965:19:50;-1:-1:-1;;;;;3965:27:50;;;;5527:18:88;;3965:50:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5572:127:54:-;5617:7;5677:6;-1:-1:-1;;;;;5677:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5671:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5639:29:54;:55;;;:29;;:55;:::i;2078:164:50:-;2119:15;:13;:15::i;:::-;2140:63;;-1:-1:-1;;;2140:63:50;;-1:-1:-1;;;;;2163:19:50;6056:32:88;;2140:63:50;;;6038:51:88;-1:-1:-1;;6105:18:88;;;6098:34;2140:6:50;:14;;;;6011:18:88;;2140:63:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2246:917::-;2304:15;;-1:-1:-1;;;;;;;;;;;2411:31:50;;-1:-1:-1;;;2411:31:50;;2436:4;2411:31;;;3903:51:88;2327:44:50;;-1:-1:-1;2377:17:50;;-1:-1:-1;;;;;2397:6:50;:13;;;;;;2411:16;;3876:18:88;;2411:31:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2452:4;2467;2397:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2759:44;;-1:-1:-1;;;2759:44:50;;2797:4;2759:44;;;3903:51:88;2377:96:50;;-1:-1:-1;2738:18:50;;-1:-1:-1;;;;;2759:19:50;:29;;;;3876:18:88;;2759:44:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2738:65;;2809:21;2833:10;2847:1;2833:15;:90;;2922:1;2833:90;;;2851:68;;-1:-1:-1;;;2851:68:50;;-1:-1:-1;;;;;2851:19:50;:26;;;;:68;;2878:10;;2898:4;;;;2851:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2991:22;;2809:114;;-1:-1:-1;;;;2991:22:50;;-1:-1:-1;;;;;2991:22:50;2947:25;2809:114;2947:9;:25;:::i;:::-;2940:75;;;;:::i;:::-;3021:26;;-1:-1:-1;;;;;;;;3021:26:50;;;2929:86;-1:-1:-1;3058:42:50;3074:25;3090:9;3074:13;:25;:::i;:::-;3058:42;;1345:25:88;;;1333:2;1318:18;3058:42:50;;;;;;;3111:26;;1345:25:88;;;3111:26:50;;1333:2:88;1318:18;3111:26:50;;;;;;;3143:15;;;;2246:917;:::o;5703:133:54:-;5751:7;5814:6;-1:-1:-1;;;;;5814:15:54;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5808:23;;:2;:23;:::i;:::-;-1:-1:-1;;;;;;;;;;;5773:32:54;:58;;;:32;;;;;:58;:::i;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;6627:2:88;15338:76:46;;;6609:21:88;6666:2;6646:18;;;6639:30;6705:34;6685:18;;;6678:62;-1:-1:-1;;;6756:18:88;;;6749:36;6802:19;;15338:76:46;6425:402:88;15338:76:46;-1:-1:-1;15438:5:46;15264:187::o;2520:256:54:-;-1:-1:-1;;;;;;;;;;;2656:18:54;;;;;;;;2637:15;;:37;;;;:78;;-1:-1:-1;2700:15:54;;;-1:-1:-1;;;2700:15:54;;;;2678:18;;;;;:37;;2637:78;2622:149;;;;-1:-1:-1;;;2622:149:54;;7034:2:88;2622:149:54;;;7016:21:88;7073:2;7053:18;;;7046:30;7112:34;7092:18;;;7085:62;-1:-1:-1;;;7163:18:88;;;7156:38;7211:19;;2622:149:54;6832:404:88;1672:402:50;1739:48;1780:6;1739:40;:48::i;:::-;1832:33;;-1:-1:-1;;;1832:33:50;;1859:4;1832:33;;;3903:51:88;1793:19:50;;1815:51;;1824:6;;-1:-1:-1;;;;;1832:6:50;:18;;;;3876::88;;1832:33:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1815:51::-;1793:73;-1:-1:-1;1876:16:50;;1872:80;;1894:58;;-1:-1:-1;;;1894:58:50;;-1:-1:-1;;;;;1894:6:50;:15;;;;:58;;1910:11;;1931:4;;;;1894:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1872:80;1962:20;1971:11;1962:6;:20;:::i;:::-;:25;1958:111;;-1:-1:-1;;;;;1989:19:50;:28;;2018:20;2027:11;2018:6;:20;:::i;:::-;2048:4;2063;1989:80;;;;;;;;;;;;;;;;;:::i;3167:143::-;3274:30;;-1:-1:-1;;;3274:30:50;;3298:4;3274:30;;;3903:51:88;3230:7:50;;-1:-1:-1;;;;;3252:21:50;;;;;;;3274:15;;3876:18:88;;3274:30:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3252:53;;;;;;;;;;;;;1345:25:88;;1333:2;1318:18;;1199:177;3252:53:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9088:192:46:-;9145:7;-1:-1:-1;;;;;9172:26:46;;;9164:78;;;;-1:-1:-1;;;9164:78:46;;7443:2:88;9164:78:46;;;7425:21:88;7482:2;7462:18;;;7455:30;7521:34;7501:18;;;7494:62;-1:-1:-1;;;7572:18:88;;;7565:37;7619:19;;9164:78:46;7241:403:88;1433:134:49;1498:21;1512:6;1498:13;:21::i;:::-;1525:37;;-1:-1:-1;;;1525:37:49;;;;;5554:25:88;;;1556:4:49;5595:18:88;;;5588:60;1525:6:49;-1:-1:-1;;;;;1525:14:49;;;;5527:18:88;;1525:37:49;5380:274:88;588:104:45;646:7;676:1;672;:5;:13;;684:1;672:13;;;680:1;672:13;665:20;588:104;-1:-1:-1;;;588:104:45:o;1270:159:49:-;1319:15;:13;:15::i;:::-;1340:50;;-1:-1:-1;;;1340:50:49;;-1:-1:-1;;;;;1363:6:49;6056:32:88;;1340:50:49;;;6038:51:88;-1:-1:-1;;6105:18:88;;;6098:34;1340:6:49;:14;;;;6011:18:88;;1340:50:49;5864:274:88;5277:291:54;-1:-1:-1;;;;;;;;;;;5428:22:54;;5411:61;;:49;;-1:-1:-1;;;5428:22:54;;-1:-1:-1;;;;;5428:22:54;5453:6;5411:8;:49::i;:::-;:59;:61::i;:::-;5385:87;;;;:22;;:87;;;;-1:-1:-1;;;5385:87:54;;-1:-1:-1;;;;;5385:87:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5385:87:54;;;;;-1:-1:-1;;;;;5385:87:54;;;;;;5483:23;5499:6;5483:23;;;;1345:25:88;;1333:2;1318:18;;1199:177;5483:23:54;;;;;;;;5329:239;5277:291;:::o;5029:244::-;-1:-1:-1;;;;;;;;;;;5161:18:54;:6;:16;:18::i;:::-;5135:44;;;;:22;;:44;;;;-1:-1:-1;;;5135:44:54;;-1:-1:-1;;;;;5135:44:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5135:44:54;;;;;-1:-1:-1;;;;;5135:44:54;;;;;;5190:21;5204:6;5190:21;;;;1345:25:88;;1333:2;1318:18;;1199:177;2780:450:54;2900:6;-1:-1:-1;;;;;2837:69:54;2866:4;-1:-1:-1;;;;;2837:46:54;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2837:57:54;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2837:69:54;;2829:96;;;;-1:-1:-1;;;2829:96:54;;9075:2:88;2829:96:54;;;9057:21:88;9114:2;9094:18;;;9087:30;-1:-1:-1;;;9133:18:88;;;9126:44;9187:18;;2829:96:54;8873:338:88;2829:96:54;-1:-1:-1;;;;;;;;;;;3121:19:54;;-1:-1:-1;;;;;;3199:26:54;;;2780:450::o;14:466:88:-;91:6;99;107;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;-1:-1:-1;;221:23:88;;;341:2;326:18;;313:32;;-1:-1:-1;444:2:88;429:18;;;416:32;;14:466;-1:-1:-1;14:466:88:o;485:286::-;543:6;596:2;584:9;575:7;571:23;567:32;564:52;;;612:1;609;602:12;564:52;638:23;;-1:-1:-1;;;;;;690:32:88;;680:43;;670:71;;737:1;734;727:12;968:226;1027:6;1080:2;1068:9;1059:7;1055:23;1051:32;1048:52;;;1096:1;1093;1086:12;1048:52;-1:-1:-1;1141:23:88;;968:226;-1:-1:-1;968:226:88:o;1561:273::-;1629:6;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1730:9;1724:16;1780:4;1773:5;1769:16;1762:5;1759:27;1749:55;;1800:1;1797;1790:12;1839:127;1900:10;1895:3;1891:20;1888:1;1881:31;1931:4;1928:1;1921:15;1955:4;1952:1;1945:15;1971:375;2059:1;2077:5;2091:249;2112:1;2102:8;2099:15;2091:249;;;2162:4;2157:3;2153:14;2147:4;2144:24;2141:50;;;2171:18;;:::i;:::-;2221:1;2211:8;2207:16;2204:49;;;2235:16;;;;2204:49;2318:1;2314:16;;;;;2274:15;;2091:249;;;1971:375;;;;;;:::o;2351:902::-;2400:5;2430:8;2420:80;;-1:-1:-1;2471:1:88;2485:5;;2420:80;2519:4;2509:76;;-1:-1:-1;2556:1:88;2570:5;;2509:76;2601:4;2619:1;2614:59;;;;2687:1;2682:174;;;;2594:262;;2614:59;2644:1;2635:10;;2658:5;;;2682:174;2719:3;2709:8;2706:17;2703:43;;;2726:18;;:::i;:::-;-1:-1:-1;;2782:1:88;2768:16;;2841:5;;2594:262;;2940:2;2930:8;2927:16;2921:3;2915:4;2912:13;2908:36;2902:2;2892:8;2889:16;2884:2;2878:4;2875:12;2871:35;2868:77;2865:203;;;-1:-1:-1;2977:19:88;;;3053:5;;2865:203;3100:42;-1:-1:-1;;3125:8:88;3119:4;3100:42;:::i;:::-;3178:6;3174:1;3170:6;3166:19;3157:7;3154:32;3151:58;;;3189:18;;:::i;:::-;3227:20;;2351:902;-1:-1:-1;;;2351:902:88:o;3258:140::-;3316:5;3345:47;3386:4;3376:8;3372:19;3366:4;3345:47;:::i;3403:217::-;3443:1;3469;3459:132;;3513:10;3508:3;3504:20;3501:1;3494:31;3548:4;3545:1;3538:15;3576:4;3573:1;3566:15;3459:132;-1:-1:-1;3605:9:88;;3403:217::o;3965:184::-;4035:6;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;-1:-1:-1;4127:16:88;;3965:184;-1:-1:-1;3965:184:88:o;4568:125::-;4633:9;;;4654:10;;;4651:36;;;4667:18;;:::i;4698:128::-;4765:9;;;4786:11;;;4783:37;;;4800:18;;:::i;4831:168::-;4904:9;;;4935;;4952:15;;;4946:22;;4932:37;4922:71;;4973:18;;:::i;5004:371::-;5206:25;;;-1:-1:-1;;;;;5267:32:88;;;5262:2;5247:18;;5240:60;5336:32;5331:2;5316:18;;5309:60;5194:2;5179:18;;5004:371::o;5659:200::-;5725:9;;;5698:4;5753:9;;5781:10;;5793:12;;;5777:29;5816:12;;;5808:21;;5774:56;5771:82;;;5833:18;;:::i;:::-;5771:82;5659:200;;;;:::o;6143:277::-;6210:6;6263:2;6251:9;6242:7;6238:23;6234:32;6231:52;;;6279:1;6276;6269:12;6231:52;6311:9;6305:16;6364:5;6357:13;6350:21;6343:5;6340:32;6330:60;;6386:1;6383;6376:12;7649:243;-1:-1:-1;;;;;7764:42:88;;;7720;;;7716:91;;7819:44;;7816:70;;;7866:18;;:::i;7897:240::-;-1:-1:-1;;;;;7966:42:88;;;8010;;;7962:91;;8065:43;;8062:69;;;8111:18;;:::i;8142:144::-;-1:-1:-1;;;;;8230:31:88;;8220:42;;8210:70;;8276:1;8273;8266:12;8291:285;8382:6;8435:2;8423:9;8414:7;8410:23;8406:32;8403:52;;;8451:1;8448;8441:12;8403:52;8483:9;8477:16;8502:44;8540:5;8502:44;:::i"},"methodIdentifiers":{"connect()":"948cb719","deinvestAll()":"cec16f3f","discretionaryToVault(uint256)":"3db77cb8","getInvestmentValue()":"4dd93bd3","liquidityMax()":"3b6612c8","liquidityMiddle()":"f9c4fd1b","liquidityMin()":"8d7ddd90","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","refillWallet(uint256)":"1014a0c2","setLiquidityThresholds(uint256,uint256,uint256)":"00a9bb8d","supportsInterface(bytes4)":"01ffc9a7","vaultToDiscretionary(uint256)":"8831c06e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"contract IERC4626\",\"name\":\"vault_\",\"type\":\"address\"},{\"internalType\":\"contract IERC4626\",\"name\":\"discretionaryVault_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"name\":\"EarningsRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyDeinvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyInvested\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"connect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deinvestAll\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"discretionaryToVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestmentValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMax\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMiddle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"refillWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deinvest\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"middle\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"setLiquidityThresholds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"vaultToDiscretionary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Using liquidity thresholds defined in {LiquidityThresholdAssetManager}, deploys the funds into _vault.      By request of the administrator it can also deploy the funds in _discretionaryVault. When deinvesting, if      funds in _vault are not enough, it tries to withdraw from _discretionaryVault.\",\"events\":{\"EarningsRecorded(int256)\":{\"details\":\"Event emitted when investment yields are accounted in the reserve\",\"params\":{\"earnings\":\"The amount of earnings generated since last record. It's positive in the case of earnings or negative when there are losses.\"}},\"MoneyDeinvested(uint256)\":{\"details\":\"Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid funds.\",\"params\":{\"amount\":\"The amount de-invested\"}},\"MoneyInvested(uint256)\":{\"details\":\"Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\",\"params\":{\"amount\":\"The amount invested\"}}},\"kind\":\"dev\",\"methods\":{\"connect()\":{\"details\":\"Function called when an asset manager is plugged into a reserve. Useful for initialization tasks Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the diamondStorage might have left some data. So, in the connect method you should initialize the state setting to zero what's expected to be zero.\"},\"deinvestAll()\":{\"details\":\"Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset manager is unplugged. Events: - Emits {MoneyDeinvested} with the amount transferred to the liquid balance. - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\",\"returns\":{\"earnings\":\"Returns the earnings or losses (negative) since last time earnings were recorded.\"}},\"discretionaryToVault(uint256)\":{\"details\":\"Transfers the given amount from the _discretionaryVault to _vault\",\"params\":{\"amount\":\"The amount to transfer. If that amount isn't available in the _discretionaryVault it reverts.               If amount = type(uint256).max it withdraws all the funds withdrawable in the _discretionaryVault\"}},\"getInvestmentValue()\":{\"details\":\"Returns the current value of the investment portfolio\"},\"rebalance()\":{\"details\":\"Rebalances cash between PolicyPool wallet and\"},\"recordEarnings()\":{\"details\":\"Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the reserve balance and those that are invested. Called with delegatecall by the reserve from the external function rebalance (see {Reserve-rebalance}). Events: - Emits {MoneyInvested} or {MoneyDeinvested}\"},\"refillWallet(uint256)\":{\"details\":\"This is called from PolicyPool when doesn't have enough money for payment.      After the call, there should be enough money in PolicyPool.currency().balanceOf(this) to      do the payment\",\"params\":{\"paymentAmount\":\"The amount of the payment\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"vaultToDiscretionary(uint256)\":{\"details\":\"Transfers the given amount from _vault to the _discretionaryVault\",\"params\":{\"amount\":\"The amount to transfer. If that amount isn't available in _vault it reverts.               If amount = type(uint256).max it withdraws all the withdrawable funds from _vault.\"}}},\"title\":\"Asset Manager that deploys the funds into a given ERC4626 but also, at request, can deploy the funds in         another vault, the discretionary vault.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC4626PlusVaultAssetManager.sol\":\"ERC4626PlusVaultAssetManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x5a173dcd1c1f0074e4df6a9cdab3257e17f2e64f7b8f30ca9e17a8c5ea250e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7883819ce2b72264a756063ae578661f62b23f4104b08e9565ac075e619f6ce3\",\"dweb:/ipfs/QmcSZdFiEQkWRmZQhnCdfH9ychooV81pBjr7hfaiYiNZT2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/ERC4626AssetManager.sol\":{\"keccak256\":\"0x46eeb1f738cf9daf582b1e62889374191b86ff56c6cb85cd7796e293af1b53fc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ecdce8541948e3b7548d640ceb1e4733451d587553003643aa0167ab69f69c28\",\"dweb:/ipfs/QmPbfQHr7mocPR5dQBM8BieS7sajLpY7y8vm3VFdsd5gpw\"]},\"contracts/ERC4626PlusVaultAssetManager.sol\":{\"keccak256\":\"0x62ab3d14e834c6f5413fba64c6b4621238cb2a93b0e33da3f3a361685f7c05ff\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://969c3c87b04b239995251745ccbc83b49ca392ef342057086c57a659ad7ad4a3\",\"dweb:/ipfs/QmVwP8vQQiMBfC1TMQxEJQ1YKaCEG5ZkGHHafKcyVyfEKC\"]},\"contracts/LiquidityThresholdAssetManager.sol\":{\"keccak256\":\"0x1464fe7b414b6cfda7d48399d80ded9a5d0bcf5ed7fde0e2b32e4f3d030bc210\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2637c07d2f83ef61dbfc2d50f904702a9802b7924bb90b8cd58503fd0f8dba0d\",\"dweb:/ipfs/QmdEQG5ix3UiqVPBSrNDAv7msevgc9iM7j55Zb4cJfcxR7\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/EToken.sol":{"EToken":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"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":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"}],"name":"InternalBorrowerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"defaultedDebt","type":"uint256"}],"name":"InternalBorrowerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountAsked","type":"uint256"}],"name":"InternalLoan","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"InternalLoanRepaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"interestRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SCRLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"interestRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SCRUnlocked","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"borrower","type":"address"}],"name":"addBorrower","outputs":[],"stateMutability":"nonpayable","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":[],"name":"assetManager","outputs":[{"internalType":"contract IAssetManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"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":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"functionCall","type":"bytes"}],"name":"forwardToAssetManager","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundsAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundsAvailableToLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"updated","type":"bool"}],"name":"getCurrentScale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"borrower","type":"address"}],"name":"getLoan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getScaledUserBalanceAndSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"maxUtilizationRate_","type":"uint256"},{"internalType":"uint256","name":"internalLoanInterestRate_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"internalLoan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"internalLoanInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"scrAmount","type":"uint256"},{"internalType":"uint256","name":"policyInterestRate","type":"uint256"}],"name":"lockScr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxNegativeAdjustment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxUtilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minUtilizationRate","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"borrower","type":"address"}],"name":"removeBorrower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"onBehalfOf","type":"address"}],"name":"repayLoan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"scaledBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scaledTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scrInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IAssetManager","name":"newAM","type":"address"},{"internalType":"bool","name":"force","type":"bool"}],"name":"setAssetManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IEToken.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ILPWhitelist","name":"lpWhitelist_","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawable","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":"uint256","name":"scrAmount","type":"uint256"},{"internalType":"uint256","name":"policyInterestRate","type":"uint256"},{"internalType":"int256","name":"adjustment","type":"int256"}],"name":"unlockScr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"utilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelist","outputs":[{"internalType":"contract ILPWhitelist","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11630":{"entryPoint":null,"id":11630,"parameterSlots":1,"returnSlots":0},"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_19734":{"entryPoint":null,"id":19734,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":351,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":562,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":596,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint8":{"entryPoint":648,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":693,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":922,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":760,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":628,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IPolicyPool":{"entryPoint":539,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3448:88","nodeType":"YulBlock","src":"0:3448:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"265:183:88","nodeType":"YulBlock","src":"265:183:88","statements":[{"body":{"nativeSrc":"311:16:88","nodeType":"YulBlock","src":"311:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"320:1:88","nodeType":"YulLiteral","src":"320:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"323:1:88","nodeType":"YulLiteral","src":"323:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"313:6:88","nodeType":"YulIdentifier","src":"313:6:88"},"nativeSrc":"313:12:88","nodeType":"YulFunctionCall","src":"313:12:88"},"nativeSrc":"313:12:88","nodeType":"YulExpressionStatement","src":"313:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"286:7:88","nodeType":"YulIdentifier","src":"286:7:88"},{"name":"headStart","nativeSrc":"295:9:88","nodeType":"YulIdentifier","src":"295:9:88"}],"functionName":{"name":"sub","nativeSrc":"282:3:88","nodeType":"YulIdentifier","src":"282:3:88"},"nativeSrc":"282:23:88","nodeType":"YulFunctionCall","src":"282:23:88"},{"kind":"number","nativeSrc":"307:2:88","nodeType":"YulLiteral","src":"307:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"278:3:88","nodeType":"YulIdentifier","src":"278:3:88"},"nativeSrc":"278:32:88","nodeType":"YulFunctionCall","src":"278:32:88"},"nativeSrc":"275:52:88","nodeType":"YulIf","src":"275:52:88"},{"nativeSrc":"336:29:88","nodeType":"YulVariableDeclaration","src":"336:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"355:9:88","nodeType":"YulIdentifier","src":"355:9:88"}],"functionName":{"name":"mload","nativeSrc":"349:5:88","nodeType":"YulIdentifier","src":"349:5:88"},"nativeSrc":"349:16:88","nodeType":"YulFunctionCall","src":"349:16:88"},"variables":[{"name":"value","nativeSrc":"340:5:88","nodeType":"YulTypedName","src":"340:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"412:5:88","nodeType":"YulIdentifier","src":"412:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"374:37:88","nodeType":"YulIdentifier","src":"374:37:88"},"nativeSrc":"374:44:88","nodeType":"YulFunctionCall","src":"374:44:88"},"nativeSrc":"374:44:88","nodeType":"YulExpressionStatement","src":"374:44:88"},{"nativeSrc":"427:15:88","nodeType":"YulAssignment","src":"427:15:88","value":{"name":"value","nativeSrc":"437:5:88","nodeType":"YulIdentifier","src":"437:5:88"},"variableNames":[{"name":"value0","nativeSrc":"427:6:88","nodeType":"YulIdentifier","src":"427:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"163:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"231:9:88","nodeType":"YulTypedName","src":"231:9:88","type":""},{"name":"dataEnd","nativeSrc":"242:7:88","nodeType":"YulTypedName","src":"242:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"254:6:88","nodeType":"YulTypedName","src":"254:6:88","type":""}],"src":"163:285:88"},{"body":{"nativeSrc":"557:183:88","nodeType":"YulBlock","src":"557:183:88","statements":[{"body":{"nativeSrc":"603:16:88","nodeType":"YulBlock","src":"603:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"612:1:88","nodeType":"YulLiteral","src":"612:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"615:1:88","nodeType":"YulLiteral","src":"615:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"605:6:88","nodeType":"YulIdentifier","src":"605:6:88"},"nativeSrc":"605:12:88","nodeType":"YulFunctionCall","src":"605:12:88"},"nativeSrc":"605:12:88","nodeType":"YulExpressionStatement","src":"605:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"578:7:88","nodeType":"YulIdentifier","src":"578:7:88"},{"name":"headStart","nativeSrc":"587:9:88","nodeType":"YulIdentifier","src":"587:9:88"}],"functionName":{"name":"sub","nativeSrc":"574:3:88","nodeType":"YulIdentifier","src":"574:3:88"},"nativeSrc":"574:23:88","nodeType":"YulFunctionCall","src":"574:23:88"},{"kind":"number","nativeSrc":"599:2:88","nodeType":"YulLiteral","src":"599:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"570:3:88","nodeType":"YulIdentifier","src":"570:3:88"},"nativeSrc":"570:32:88","nodeType":"YulFunctionCall","src":"570:32:88"},"nativeSrc":"567:52:88","nodeType":"YulIf","src":"567:52:88"},{"nativeSrc":"628:29:88","nodeType":"YulVariableDeclaration","src":"628:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"647:9:88","nodeType":"YulIdentifier","src":"647:9:88"}],"functionName":{"name":"mload","nativeSrc":"641:5:88","nodeType":"YulIdentifier","src":"641:5:88"},"nativeSrc":"641:16:88","nodeType":"YulFunctionCall","src":"641:16:88"},"variables":[{"name":"value","nativeSrc":"632:5:88","nodeType":"YulTypedName","src":"632:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"704:5:88","nodeType":"YulIdentifier","src":"704:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"666:37:88","nodeType":"YulIdentifier","src":"666:37:88"},"nativeSrc":"666:44:88","nodeType":"YulFunctionCall","src":"666:44:88"},"nativeSrc":"666:44:88","nodeType":"YulExpressionStatement","src":"666:44:88"},{"nativeSrc":"719:15:88","nodeType":"YulAssignment","src":"719:15:88","value":{"name":"value","nativeSrc":"729:5:88","nodeType":"YulIdentifier","src":"729:5:88"},"variableNames":[{"name":"value0","nativeSrc":"719:6:88","nodeType":"YulIdentifier","src":"719:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"453:287:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"523:9:88","nodeType":"YulTypedName","src":"523:9:88","type":""},{"name":"dataEnd","nativeSrc":"534:7:88","nodeType":"YulTypedName","src":"534:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"546:6:88","nodeType":"YulTypedName","src":"546:6:88","type":""}],"src":"453:287:88"},{"body":{"nativeSrc":"824:194:88","nodeType":"YulBlock","src":"824:194:88","statements":[{"body":{"nativeSrc":"870:16:88","nodeType":"YulBlock","src":"870:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"879:1:88","nodeType":"YulLiteral","src":"879:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"882:1:88","nodeType":"YulLiteral","src":"882:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"872:6:88","nodeType":"YulIdentifier","src":"872:6:88"},"nativeSrc":"872:12:88","nodeType":"YulFunctionCall","src":"872:12:88"},"nativeSrc":"872:12:88","nodeType":"YulExpressionStatement","src":"872:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"845:7:88","nodeType":"YulIdentifier","src":"845:7:88"},{"name":"headStart","nativeSrc":"854:9:88","nodeType":"YulIdentifier","src":"854:9:88"}],"functionName":{"name":"sub","nativeSrc":"841:3:88","nodeType":"YulIdentifier","src":"841:3:88"},"nativeSrc":"841:23:88","nodeType":"YulFunctionCall","src":"841:23:88"},{"kind":"number","nativeSrc":"866:2:88","nodeType":"YulLiteral","src":"866:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"837:3:88","nodeType":"YulIdentifier","src":"837:3:88"},"nativeSrc":"837:32:88","nodeType":"YulFunctionCall","src":"837:32:88"},"nativeSrc":"834:52:88","nodeType":"YulIf","src":"834:52:88"},{"nativeSrc":"895:29:88","nodeType":"YulVariableDeclaration","src":"895:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"914:9:88","nodeType":"YulIdentifier","src":"914:9:88"}],"functionName":{"name":"mload","nativeSrc":"908:5:88","nodeType":"YulIdentifier","src":"908:5:88"},"nativeSrc":"908:16:88","nodeType":"YulFunctionCall","src":"908:16:88"},"variables":[{"name":"value","nativeSrc":"899:5:88","nodeType":"YulTypedName","src":"899:5:88","type":""}]},{"body":{"nativeSrc":"972:16:88","nodeType":"YulBlock","src":"972:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"981:1:88","nodeType":"YulLiteral","src":"981:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"984:1:88","nodeType":"YulLiteral","src":"984:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"974:6:88","nodeType":"YulIdentifier","src":"974:6:88"},"nativeSrc":"974:12:88","nodeType":"YulFunctionCall","src":"974:12:88"},"nativeSrc":"974:12:88","nodeType":"YulExpressionStatement","src":"974:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"946:5:88","nodeType":"YulIdentifier","src":"946:5:88"},{"arguments":[{"name":"value","nativeSrc":"957:5:88","nodeType":"YulIdentifier","src":"957:5:88"},{"kind":"number","nativeSrc":"964:4:88","nodeType":"YulLiteral","src":"964:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"953:3:88","nodeType":"YulIdentifier","src":"953:3:88"},"nativeSrc":"953:16:88","nodeType":"YulFunctionCall","src":"953:16:88"}],"functionName":{"name":"eq","nativeSrc":"943:2:88","nodeType":"YulIdentifier","src":"943:2:88"},"nativeSrc":"943:27:88","nodeType":"YulFunctionCall","src":"943:27:88"}],"functionName":{"name":"iszero","nativeSrc":"936:6:88","nodeType":"YulIdentifier","src":"936:6:88"},"nativeSrc":"936:35:88","nodeType":"YulFunctionCall","src":"936:35:88"},"nativeSrc":"933:55:88","nodeType":"YulIf","src":"933:55:88"},{"nativeSrc":"997:15:88","nodeType":"YulAssignment","src":"997:15:88","value":{"name":"value","nativeSrc":"1007:5:88","nodeType":"YulIdentifier","src":"1007:5:88"},"variableNames":[{"name":"value0","nativeSrc":"997:6:88","nodeType":"YulIdentifier","src":"997:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"745:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"790:9:88","nodeType":"YulTypedName","src":"790:9:88","type":""},{"name":"dataEnd","nativeSrc":"801:7:88","nodeType":"YulTypedName","src":"801:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"813:6:88","nodeType":"YulTypedName","src":"813:6:88","type":""}],"src":"745:273:88"},{"body":{"nativeSrc":"1055:95:88","nodeType":"YulBlock","src":"1055:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1072:1:88","nodeType":"YulLiteral","src":"1072:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1079:3:88","nodeType":"YulLiteral","src":"1079:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1084:10:88","nodeType":"YulLiteral","src":"1084:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1075:3:88","nodeType":"YulIdentifier","src":"1075:3:88"},"nativeSrc":"1075:20:88","nodeType":"YulFunctionCall","src":"1075:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1065:6:88","nodeType":"YulIdentifier","src":"1065:6:88"},"nativeSrc":"1065:31:88","nodeType":"YulFunctionCall","src":"1065:31:88"},"nativeSrc":"1065:31:88","nodeType":"YulExpressionStatement","src":"1065:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1112:1:88","nodeType":"YulLiteral","src":"1112:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1115:4:88","nodeType":"YulLiteral","src":"1115:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1105:6:88","nodeType":"YulIdentifier","src":"1105:6:88"},"nativeSrc":"1105:15:88","nodeType":"YulFunctionCall","src":"1105:15:88"},"nativeSrc":"1105:15:88","nodeType":"YulExpressionStatement","src":"1105:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1136:1:88","nodeType":"YulLiteral","src":"1136:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1139:4:88","nodeType":"YulLiteral","src":"1139:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1129:6:88","nodeType":"YulIdentifier","src":"1129:6:88"},"nativeSrc":"1129:15:88","nodeType":"YulFunctionCall","src":"1129:15:88"},"nativeSrc":"1129:15:88","nodeType":"YulExpressionStatement","src":"1129:15:88"}]},"name":"panic_error_0x11","nativeSrc":"1023:127:88","nodeType":"YulFunctionDefinition","src":"1023:127:88"},{"body":{"nativeSrc":"1199:218:88","nodeType":"YulBlock","src":"1199:218:88","statements":[{"nativeSrc":"1209:23:88","nodeType":"YulVariableDeclaration","src":"1209:23:88","value":{"arguments":[{"name":"y","nativeSrc":"1224:1:88","nodeType":"YulIdentifier","src":"1224:1:88"},{"kind":"number","nativeSrc":"1227:4:88","nodeType":"YulLiteral","src":"1227:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1220:3:88","nodeType":"YulIdentifier","src":"1220:3:88"},"nativeSrc":"1220:12:88","nodeType":"YulFunctionCall","src":"1220:12:88"},"variables":[{"name":"y_1","nativeSrc":"1213:3:88","nodeType":"YulTypedName","src":"1213:3:88","type":""}]},{"body":{"nativeSrc":"1264:111:88","nodeType":"YulBlock","src":"1264:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:88","nodeType":"YulLiteral","src":"1285:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1292:3:88","nodeType":"YulLiteral","src":"1292:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1297:10:88","nodeType":"YulLiteral","src":"1297:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1288:3:88","nodeType":"YulIdentifier","src":"1288:3:88"},"nativeSrc":"1288:20:88","nodeType":"YulFunctionCall","src":"1288:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1278:6:88","nodeType":"YulIdentifier","src":"1278:6:88"},"nativeSrc":"1278:31:88","nodeType":"YulFunctionCall","src":"1278:31:88"},"nativeSrc":"1278:31:88","nodeType":"YulExpressionStatement","src":"1278:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1329:1:88","nodeType":"YulLiteral","src":"1329:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1332:4:88","nodeType":"YulLiteral","src":"1332:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"1322:6:88","nodeType":"YulIdentifier","src":"1322:6:88"},"nativeSrc":"1322:15:88","nodeType":"YulFunctionCall","src":"1322:15:88"},"nativeSrc":"1322:15:88","nodeType":"YulExpressionStatement","src":"1322:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1357:1:88","nodeType":"YulLiteral","src":"1357:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1360:4:88","nodeType":"YulLiteral","src":"1360:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1350:6:88","nodeType":"YulIdentifier","src":"1350:6:88"},"nativeSrc":"1350:15:88","nodeType":"YulFunctionCall","src":"1350:15:88"},"nativeSrc":"1350:15:88","nodeType":"YulExpressionStatement","src":"1350:15:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"1251:3:88","nodeType":"YulIdentifier","src":"1251:3:88"}],"functionName":{"name":"iszero","nativeSrc":"1244:6:88","nodeType":"YulIdentifier","src":"1244:6:88"},"nativeSrc":"1244:11:88","nodeType":"YulFunctionCall","src":"1244:11:88"},"nativeSrc":"1241:134:88","nodeType":"YulIf","src":"1241:134:88"},{"nativeSrc":"1384:27:88","nodeType":"YulAssignment","src":"1384:27:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"1397:1:88","nodeType":"YulIdentifier","src":"1397:1:88"},{"kind":"number","nativeSrc":"1400:4:88","nodeType":"YulLiteral","src":"1400:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1393:3:88","nodeType":"YulIdentifier","src":"1393:3:88"},"nativeSrc":"1393:12:88","nodeType":"YulFunctionCall","src":"1393:12:88"},{"name":"y_1","nativeSrc":"1407:3:88","nodeType":"YulIdentifier","src":"1407:3:88"}],"functionName":{"name":"div","nativeSrc":"1389:3:88","nodeType":"YulIdentifier","src":"1389:3:88"},"nativeSrc":"1389:22:88","nodeType":"YulFunctionCall","src":"1389:22:88"},"variableNames":[{"name":"r","nativeSrc":"1384:1:88","nodeType":"YulIdentifier","src":"1384:1:88"}]}]},"name":"checked_div_t_uint8","nativeSrc":"1155:262:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1184:1:88","nodeType":"YulTypedName","src":"1184:1:88","type":""},{"name":"y","nativeSrc":"1187:1:88","nodeType":"YulTypedName","src":"1187:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"1193:1:88","nodeType":"YulTypedName","src":"1193:1:88","type":""}],"src":"1155:262:88"},{"body":{"nativeSrc":"1491:306:88","nodeType":"YulBlock","src":"1491:306:88","statements":[{"nativeSrc":"1501:10:88","nodeType":"YulAssignment","src":"1501:10:88","value":{"kind":"number","nativeSrc":"1510:1:88","nodeType":"YulLiteral","src":"1510:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"1501:5:88","nodeType":"YulIdentifier","src":"1501:5:88"}]},{"nativeSrc":"1520:13:88","nodeType":"YulAssignment","src":"1520:13:88","value":{"name":"_base","nativeSrc":"1528:5:88","nodeType":"YulIdentifier","src":"1528:5:88"},"variableNames":[{"name":"base","nativeSrc":"1520:4:88","nodeType":"YulIdentifier","src":"1520:4:88"}]},{"body":{"nativeSrc":"1578:213:88","nodeType":"YulBlock","src":"1578:213:88","statements":[{"body":{"nativeSrc":"1620:22:88","nodeType":"YulBlock","src":"1620:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"1622:16:88","nodeType":"YulIdentifier","src":"1622:16:88"},"nativeSrc":"1622:18:88","nodeType":"YulFunctionCall","src":"1622:18:88"},"nativeSrc":"1622:18:88","nodeType":"YulExpressionStatement","src":"1622:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"1598:4:88","nodeType":"YulIdentifier","src":"1598:4:88"},{"arguments":[{"name":"max","nativeSrc":"1608:3:88","nodeType":"YulIdentifier","src":"1608:3:88"},{"name":"base","nativeSrc":"1613:4:88","nodeType":"YulIdentifier","src":"1613:4:88"}],"functionName":{"name":"div","nativeSrc":"1604:3:88","nodeType":"YulIdentifier","src":"1604:3:88"},"nativeSrc":"1604:14:88","nodeType":"YulFunctionCall","src":"1604:14:88"}],"functionName":{"name":"gt","nativeSrc":"1595:2:88","nodeType":"YulIdentifier","src":"1595:2:88"},"nativeSrc":"1595:24:88","nodeType":"YulFunctionCall","src":"1595:24:88"},"nativeSrc":"1592:50:88","nodeType":"YulIf","src":"1592:50:88"},{"body":{"nativeSrc":"1675:29:88","nodeType":"YulBlock","src":"1675:29:88","statements":[{"nativeSrc":"1677:25:88","nodeType":"YulAssignment","src":"1677:25:88","value":{"arguments":[{"name":"power","nativeSrc":"1690:5:88","nodeType":"YulIdentifier","src":"1690:5:88"},{"name":"base","nativeSrc":"1697:4:88","nodeType":"YulIdentifier","src":"1697:4:88"}],"functionName":{"name":"mul","nativeSrc":"1686:3:88","nodeType":"YulIdentifier","src":"1686:3:88"},"nativeSrc":"1686:16:88","nodeType":"YulFunctionCall","src":"1686:16:88"},"variableNames":[{"name":"power","nativeSrc":"1677:5:88","nodeType":"YulIdentifier","src":"1677:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"1662:8:88","nodeType":"YulIdentifier","src":"1662:8:88"},{"kind":"number","nativeSrc":"1672:1:88","nodeType":"YulLiteral","src":"1672:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1658:3:88","nodeType":"YulIdentifier","src":"1658:3:88"},"nativeSrc":"1658:16:88","nodeType":"YulFunctionCall","src":"1658:16:88"},"nativeSrc":"1655:49:88","nodeType":"YulIf","src":"1655:49:88"},{"nativeSrc":"1717:23:88","nodeType":"YulAssignment","src":"1717:23:88","value":{"arguments":[{"name":"base","nativeSrc":"1729:4:88","nodeType":"YulIdentifier","src":"1729:4:88"},{"name":"base","nativeSrc":"1735:4:88","nodeType":"YulIdentifier","src":"1735:4:88"}],"functionName":{"name":"mul","nativeSrc":"1725:3:88","nodeType":"YulIdentifier","src":"1725:3:88"},"nativeSrc":"1725:15:88","nodeType":"YulFunctionCall","src":"1725:15:88"},"variableNames":[{"name":"base","nativeSrc":"1717:4:88","nodeType":"YulIdentifier","src":"1717:4:88"}]},{"nativeSrc":"1753:28:88","nodeType":"YulAssignment","src":"1753:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"1769:1:88","nodeType":"YulLiteral","src":"1769:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"1772:8:88","nodeType":"YulIdentifier","src":"1772:8:88"}],"functionName":{"name":"shr","nativeSrc":"1765:3:88","nodeType":"YulIdentifier","src":"1765:3:88"},"nativeSrc":"1765:16:88","nodeType":"YulFunctionCall","src":"1765:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"1753:8:88","nodeType":"YulIdentifier","src":"1753:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"1553:8:88","nodeType":"YulIdentifier","src":"1553:8:88"},{"kind":"number","nativeSrc":"1563:1:88","nodeType":"YulLiteral","src":"1563:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"1550:2:88","nodeType":"YulIdentifier","src":"1550:2:88"},"nativeSrc":"1550:15:88","nodeType":"YulFunctionCall","src":"1550:15:88"},"nativeSrc":"1542:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"1566:3:88","nodeType":"YulBlock","src":"1566:3:88","statements":[]},"pre":{"nativeSrc":"1546:3:88","nodeType":"YulBlock","src":"1546:3:88","statements":[]},"src":"1542:249:88"}]},"name":"checked_exp_helper","nativeSrc":"1422:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"1450:5:88","nodeType":"YulTypedName","src":"1450:5:88","type":""},{"name":"exponent","nativeSrc":"1457:8:88","nodeType":"YulTypedName","src":"1457:8:88","type":""},{"name":"max","nativeSrc":"1467:3:88","nodeType":"YulTypedName","src":"1467:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"1475:5:88","nodeType":"YulTypedName","src":"1475:5:88","type":""},{"name":"base","nativeSrc":"1482:4:88","nodeType":"YulTypedName","src":"1482:4:88","type":""}],"src":"1422:375:88"},{"body":{"nativeSrc":"1861:843:88","nodeType":"YulBlock","src":"1861:843:88","statements":[{"body":{"nativeSrc":"1899:52:88","nodeType":"YulBlock","src":"1899:52:88","statements":[{"nativeSrc":"1913:10:88","nodeType":"YulAssignment","src":"1913:10:88","value":{"kind":"number","nativeSrc":"1922:1:88","nodeType":"YulLiteral","src":"1922:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"1913:5:88","nodeType":"YulIdentifier","src":"1913:5:88"}]},{"nativeSrc":"1936:5:88","nodeType":"YulLeave","src":"1936:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"1881:8:88","nodeType":"YulIdentifier","src":"1881:8:88"}],"functionName":{"name":"iszero","nativeSrc":"1874:6:88","nodeType":"YulIdentifier","src":"1874:6:88"},"nativeSrc":"1874:16:88","nodeType":"YulFunctionCall","src":"1874:16:88"},"nativeSrc":"1871:80:88","nodeType":"YulIf","src":"1871:80:88"},{"body":{"nativeSrc":"1984:52:88","nodeType":"YulBlock","src":"1984:52:88","statements":[{"nativeSrc":"1998:10:88","nodeType":"YulAssignment","src":"1998:10:88","value":{"kind":"number","nativeSrc":"2007:1:88","nodeType":"YulLiteral","src":"2007:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"1998:5:88","nodeType":"YulIdentifier","src":"1998:5:88"}]},{"nativeSrc":"2021:5:88","nodeType":"YulLeave","src":"2021:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"1970:4:88","nodeType":"YulIdentifier","src":"1970:4:88"}],"functionName":{"name":"iszero","nativeSrc":"1963:6:88","nodeType":"YulIdentifier","src":"1963:6:88"},"nativeSrc":"1963:12:88","nodeType":"YulFunctionCall","src":"1963:12:88"},"nativeSrc":"1960:76:88","nodeType":"YulIf","src":"1960:76:88"},{"cases":[{"body":{"nativeSrc":"2072:52:88","nodeType":"YulBlock","src":"2072:52:88","statements":[{"nativeSrc":"2086:10:88","nodeType":"YulAssignment","src":"2086:10:88","value":{"kind":"number","nativeSrc":"2095:1:88","nodeType":"YulLiteral","src":"2095:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2086:5:88","nodeType":"YulIdentifier","src":"2086:5:88"}]},{"nativeSrc":"2109:5:88","nodeType":"YulLeave","src":"2109:5:88"}]},"nativeSrc":"2065:59:88","nodeType":"YulCase","src":"2065:59:88","value":{"kind":"number","nativeSrc":"2070:1:88","nodeType":"YulLiteral","src":"2070:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"2140:167:88","nodeType":"YulBlock","src":"2140:167:88","statements":[{"body":{"nativeSrc":"2175:22:88","nodeType":"YulBlock","src":"2175:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2177:16:88","nodeType":"YulIdentifier","src":"2177:16:88"},"nativeSrc":"2177:18:88","nodeType":"YulFunctionCall","src":"2177:18:88"},"nativeSrc":"2177:18:88","nodeType":"YulExpressionStatement","src":"2177:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2160:8:88","nodeType":"YulIdentifier","src":"2160:8:88"},{"kind":"number","nativeSrc":"2170:3:88","nodeType":"YulLiteral","src":"2170:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"2157:2:88","nodeType":"YulIdentifier","src":"2157:2:88"},"nativeSrc":"2157:17:88","nodeType":"YulFunctionCall","src":"2157:17:88"},"nativeSrc":"2154:43:88","nodeType":"YulIf","src":"2154:43:88"},{"nativeSrc":"2210:25:88","nodeType":"YulAssignment","src":"2210:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"2223:8:88","nodeType":"YulIdentifier","src":"2223:8:88"},{"kind":"number","nativeSrc":"2233:1:88","nodeType":"YulLiteral","src":"2233:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2219:3:88","nodeType":"YulIdentifier","src":"2219:3:88"},"nativeSrc":"2219:16:88","nodeType":"YulFunctionCall","src":"2219:16:88"},"variableNames":[{"name":"power","nativeSrc":"2210:5:88","nodeType":"YulIdentifier","src":"2210:5:88"}]},{"nativeSrc":"2248:11:88","nodeType":"YulVariableDeclaration","src":"2248:11:88","value":{"kind":"number","nativeSrc":"2258:1:88","nodeType":"YulLiteral","src":"2258:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2252:2:88","nodeType":"YulTypedName","src":"2252:2:88","type":""}]},{"nativeSrc":"2272:7:88","nodeType":"YulAssignment","src":"2272:7:88","value":{"kind":"number","nativeSrc":"2278:1:88","nodeType":"YulLiteral","src":"2278:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"2272:2:88","nodeType":"YulIdentifier","src":"2272:2:88"}]},{"nativeSrc":"2292:5:88","nodeType":"YulLeave","src":"2292:5:88"}]},"nativeSrc":"2133:174:88","nodeType":"YulCase","src":"2133:174:88","value":{"kind":"number","nativeSrc":"2138:1:88","nodeType":"YulLiteral","src":"2138:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"2052:4:88","nodeType":"YulIdentifier","src":"2052:4:88"},"nativeSrc":"2045:262:88","nodeType":"YulSwitch","src":"2045:262:88"},{"body":{"nativeSrc":"2405:114:88","nodeType":"YulBlock","src":"2405:114:88","statements":[{"nativeSrc":"2419:28:88","nodeType":"YulAssignment","src":"2419:28:88","value":{"arguments":[{"name":"base","nativeSrc":"2432:4:88","nodeType":"YulIdentifier","src":"2432:4:88"},{"name":"exponent","nativeSrc":"2438:8:88","nodeType":"YulIdentifier","src":"2438:8:88"}],"functionName":{"name":"exp","nativeSrc":"2428:3:88","nodeType":"YulIdentifier","src":"2428:3:88"},"nativeSrc":"2428:19:88","nodeType":"YulFunctionCall","src":"2428:19:88"},"variableNames":[{"name":"power","nativeSrc":"2419:5:88","nodeType":"YulIdentifier","src":"2419:5:88"}]},{"nativeSrc":"2460:11:88","nodeType":"YulVariableDeclaration","src":"2460:11:88","value":{"kind":"number","nativeSrc":"2470:1:88","nodeType":"YulLiteral","src":"2470:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"2464:2:88","nodeType":"YulTypedName","src":"2464:2:88","type":""}]},{"nativeSrc":"2484:7:88","nodeType":"YulAssignment","src":"2484:7:88","value":{"kind":"number","nativeSrc":"2490:1:88","nodeType":"YulLiteral","src":"2490:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"2484:2:88","nodeType":"YulIdentifier","src":"2484:2:88"}]},{"nativeSrc":"2504:5:88","nodeType":"YulLeave","src":"2504:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2329:4:88","nodeType":"YulIdentifier","src":"2329:4:88"},{"kind":"number","nativeSrc":"2335:2:88","nodeType":"YulLiteral","src":"2335:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"2326:2:88","nodeType":"YulIdentifier","src":"2326:2:88"},"nativeSrc":"2326:12:88","nodeType":"YulFunctionCall","src":"2326:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"2343:8:88","nodeType":"YulIdentifier","src":"2343:8:88"},{"kind":"number","nativeSrc":"2353:2:88","nodeType":"YulLiteral","src":"2353:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"2340:2:88","nodeType":"YulIdentifier","src":"2340:2:88"},"nativeSrc":"2340:16:88","nodeType":"YulFunctionCall","src":"2340:16:88"}],"functionName":{"name":"and","nativeSrc":"2322:3:88","nodeType":"YulIdentifier","src":"2322:3:88"},"nativeSrc":"2322:35:88","nodeType":"YulFunctionCall","src":"2322:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2366:4:88","nodeType":"YulIdentifier","src":"2366:4:88"},{"kind":"number","nativeSrc":"2372:3:88","nodeType":"YulLiteral","src":"2372:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"2363:2:88","nodeType":"YulIdentifier","src":"2363:2:88"},"nativeSrc":"2363:13:88","nodeType":"YulFunctionCall","src":"2363:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"2381:8:88","nodeType":"YulIdentifier","src":"2381:8:88"},{"kind":"number","nativeSrc":"2391:2:88","nodeType":"YulLiteral","src":"2391:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2378:2:88","nodeType":"YulIdentifier","src":"2378:2:88"},"nativeSrc":"2378:16:88","nodeType":"YulFunctionCall","src":"2378:16:88"}],"functionName":{"name":"and","nativeSrc":"2359:3:88","nodeType":"YulIdentifier","src":"2359:3:88"},"nativeSrc":"2359:36:88","nodeType":"YulFunctionCall","src":"2359:36:88"}],"functionName":{"name":"or","nativeSrc":"2319:2:88","nodeType":"YulIdentifier","src":"2319:2:88"},"nativeSrc":"2319:77:88","nodeType":"YulFunctionCall","src":"2319:77:88"},"nativeSrc":"2316:203:88","nodeType":"YulIf","src":"2316:203:88"},{"nativeSrc":"2528:65:88","nodeType":"YulVariableDeclaration","src":"2528:65:88","value":{"arguments":[{"name":"base","nativeSrc":"2570:4:88","nodeType":"YulIdentifier","src":"2570:4:88"},{"name":"exponent","nativeSrc":"2576:8:88","nodeType":"YulIdentifier","src":"2576:8:88"},{"arguments":[{"kind":"number","nativeSrc":"2590:1:88","nodeType":"YulLiteral","src":"2590:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2586:3:88","nodeType":"YulIdentifier","src":"2586:3:88"},"nativeSrc":"2586:6:88","nodeType":"YulFunctionCall","src":"2586:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"2551:18:88","nodeType":"YulIdentifier","src":"2551:18:88"},"nativeSrc":"2551:42:88","nodeType":"YulFunctionCall","src":"2551:42:88"},"variables":[{"name":"power_1","nativeSrc":"2532:7:88","nodeType":"YulTypedName","src":"2532:7:88","type":""},{"name":"base_1","nativeSrc":"2541:6:88","nodeType":"YulTypedName","src":"2541:6:88","type":""}]},{"body":{"nativeSrc":"2638:22:88","nodeType":"YulBlock","src":"2638:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2640:16:88","nodeType":"YulIdentifier","src":"2640:16:88"},"nativeSrc":"2640:18:88","nodeType":"YulFunctionCall","src":"2640:18:88"},"nativeSrc":"2640:18:88","nodeType":"YulExpressionStatement","src":"2640:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"2608:7:88","nodeType":"YulIdentifier","src":"2608:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2625:1:88","nodeType":"YulLiteral","src":"2625:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2621:3:88","nodeType":"YulIdentifier","src":"2621:3:88"},"nativeSrc":"2621:6:88","nodeType":"YulFunctionCall","src":"2621:6:88"},{"name":"base_1","nativeSrc":"2629:6:88","nodeType":"YulIdentifier","src":"2629:6:88"}],"functionName":{"name":"div","nativeSrc":"2617:3:88","nodeType":"YulIdentifier","src":"2617:3:88"},"nativeSrc":"2617:19:88","nodeType":"YulFunctionCall","src":"2617:19:88"}],"functionName":{"name":"gt","nativeSrc":"2605:2:88","nodeType":"YulIdentifier","src":"2605:2:88"},"nativeSrc":"2605:32:88","nodeType":"YulFunctionCall","src":"2605:32:88"},"nativeSrc":"2602:58:88","nodeType":"YulIf","src":"2602:58:88"},{"nativeSrc":"2669:29:88","nodeType":"YulAssignment","src":"2669:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"2682:7:88","nodeType":"YulIdentifier","src":"2682:7:88"},{"name":"base_1","nativeSrc":"2691:6:88","nodeType":"YulIdentifier","src":"2691:6:88"}],"functionName":{"name":"mul","nativeSrc":"2678:3:88","nodeType":"YulIdentifier","src":"2678:3:88"},"nativeSrc":"2678:20:88","nodeType":"YulFunctionCall","src":"2678:20:88"},"variableNames":[{"name":"power","nativeSrc":"2669:5:88","nodeType":"YulIdentifier","src":"2669:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"1802:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"1832:4:88","nodeType":"YulTypedName","src":"1832:4:88","type":""},{"name":"exponent","nativeSrc":"1838:8:88","nodeType":"YulTypedName","src":"1838:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"1851:5:88","nodeType":"YulTypedName","src":"1851:5:88","type":""}],"src":"1802:902:88"},{"body":{"nativeSrc":"2777:72:88","nodeType":"YulBlock","src":"2777:72:88","statements":[{"nativeSrc":"2787:56:88","nodeType":"YulAssignment","src":"2787:56:88","value":{"arguments":[{"name":"base","nativeSrc":"2817:4:88","nodeType":"YulIdentifier","src":"2817:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"2827:8:88","nodeType":"YulIdentifier","src":"2827:8:88"},{"kind":"number","nativeSrc":"2837:4:88","nodeType":"YulLiteral","src":"2837:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2823:3:88","nodeType":"YulIdentifier","src":"2823:3:88"},"nativeSrc":"2823:19:88","nodeType":"YulFunctionCall","src":"2823:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"2796:20:88","nodeType":"YulIdentifier","src":"2796:20:88"},"nativeSrc":"2796:47:88","nodeType":"YulFunctionCall","src":"2796:47:88"},"variableNames":[{"name":"power","nativeSrc":"2787:5:88","nodeType":"YulIdentifier","src":"2787:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"2709:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"2748:4:88","nodeType":"YulTypedName","src":"2748:4:88","type":""},{"name":"exponent","nativeSrc":"2754:8:88","nodeType":"YulTypedName","src":"2754:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2767:5:88","nodeType":"YulTypedName","src":"2767:5:88","type":""}],"src":"2709:140:88"},{"body":{"nativeSrc":"3028:229:88","nodeType":"YulBlock","src":"3028:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3045:9:88","nodeType":"YulIdentifier","src":"3045:9:88"},{"kind":"number","nativeSrc":"3056:2:88","nodeType":"YulLiteral","src":"3056:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3038:6:88","nodeType":"YulIdentifier","src":"3038:6:88"},"nativeSrc":"3038:21:88","nodeType":"YulFunctionCall","src":"3038:21:88"},"nativeSrc":"3038:21:88","nodeType":"YulExpressionStatement","src":"3038:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3079:9:88","nodeType":"YulIdentifier","src":"3079:9:88"},{"kind":"number","nativeSrc":"3090:2:88","nodeType":"YulLiteral","src":"3090:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3075:3:88","nodeType":"YulIdentifier","src":"3075:3:88"},"nativeSrc":"3075:18:88","nodeType":"YulFunctionCall","src":"3075:18:88"},{"kind":"number","nativeSrc":"3095:2:88","nodeType":"YulLiteral","src":"3095:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"3068:6:88","nodeType":"YulIdentifier","src":"3068:6:88"},"nativeSrc":"3068:30:88","nodeType":"YulFunctionCall","src":"3068:30:88"},"nativeSrc":"3068:30:88","nodeType":"YulExpressionStatement","src":"3068:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3118:9:88","nodeType":"YulIdentifier","src":"3118:9:88"},{"kind":"number","nativeSrc":"3129:2:88","nodeType":"YulLiteral","src":"3129:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3114:3:88","nodeType":"YulIdentifier","src":"3114:3:88"},"nativeSrc":"3114:18:88","nodeType":"YulFunctionCall","src":"3114:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"3134:34:88","nodeType":"YulLiteral","src":"3134:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"3107:6:88","nodeType":"YulIdentifier","src":"3107:6:88"},"nativeSrc":"3107:62:88","nodeType":"YulFunctionCall","src":"3107:62:88"},"nativeSrc":"3107:62:88","nodeType":"YulExpressionStatement","src":"3107:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3189:9:88","nodeType":"YulIdentifier","src":"3189:9:88"},{"kind":"number","nativeSrc":"3200:2:88","nodeType":"YulLiteral","src":"3200:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3185:3:88","nodeType":"YulIdentifier","src":"3185:3:88"},"nativeSrc":"3185:18:88","nodeType":"YulFunctionCall","src":"3185:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"3205:9:88","nodeType":"YulLiteral","src":"3205:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"3178:6:88","nodeType":"YulIdentifier","src":"3178:6:88"},"nativeSrc":"3178:37:88","nodeType":"YulFunctionCall","src":"3178:37:88"},"nativeSrc":"3178:37:88","nodeType":"YulExpressionStatement","src":"3178:37:88"},{"nativeSrc":"3224:27:88","nodeType":"YulAssignment","src":"3224:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3236:9:88","nodeType":"YulIdentifier","src":"3236:9:88"},{"kind":"number","nativeSrc":"3247:3:88","nodeType":"YulLiteral","src":"3247:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3232:3:88","nodeType":"YulIdentifier","src":"3232:3:88"},"nativeSrc":"3232:19:88","nodeType":"YulFunctionCall","src":"3232:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3224:4:88","nodeType":"YulIdentifier","src":"3224:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2854:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3005:9:88","nodeType":"YulTypedName","src":"3005:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3019:4:88","nodeType":"YulTypedName","src":"3019:4:88","type":""}],"src":"2854:403:88"},{"body":{"nativeSrc":"3359:87:88","nodeType":"YulBlock","src":"3359:87:88","statements":[{"nativeSrc":"3369:26:88","nodeType":"YulAssignment","src":"3369:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3381:9:88","nodeType":"YulIdentifier","src":"3381:9:88"},{"kind":"number","nativeSrc":"3392:2:88","nodeType":"YulLiteral","src":"3392:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3377:3:88","nodeType":"YulIdentifier","src":"3377:3:88"},"nativeSrc":"3377:18:88","nodeType":"YulFunctionCall","src":"3377:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3369:4:88","nodeType":"YulIdentifier","src":"3369:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3411:9:88","nodeType":"YulIdentifier","src":"3411:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3426:6:88","nodeType":"YulIdentifier","src":"3426:6:88"},{"kind":"number","nativeSrc":"3434:4:88","nodeType":"YulLiteral","src":"3434:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3422:3:88","nodeType":"YulIdentifier","src":"3422:3:88"},"nativeSrc":"3422:17:88","nodeType":"YulFunctionCall","src":"3422:17:88"}],"functionName":{"name":"mstore","nativeSrc":"3404:6:88","nodeType":"YulIdentifier","src":"3404:6:88"},"nativeSrc":"3404:36:88","nodeType":"YulFunctionCall","src":"3404:36:88"},"nativeSrc":"3404:36:88","nodeType":"YulExpressionStatement","src":"3404:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"3262:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3328:9:88","nodeType":"YulTypedName","src":"3328:9:88","type":""},{"name":"value0","nativeSrc":"3339:6:88","nodeType":"YulTypedName","src":"3339:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3350:4:88","nodeType":"YulTypedName","src":"3350:4:88","type":""}],"src":"3262:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(and(x, 0xff), y_1)\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051615a06380380615a0683398101604081905261003291610232565b80806001600160a01b03811661005b57604051636b23cf0160e01b815260040160405180910390fd5b61006361015f565b806001600160a01b031660a0816001600160a01b031681525050506002816001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e09190610232565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013f9190610254565b6101499190610288565b61015490600a61039a565b60c052506103a89050565b5f54610100900460ff16156101ca5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610219575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461022f575f5ffd5b50565b5f60208284031215610242575f5ffd5b815161024d8161021b565b9392505050565b5f60208284031215610264575f5ffd5b815160ff8116811461024d575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff8316806102a657634e487b7160e01b5f52601260045260245ffd5b8060ff84160491505092915050565b6001815b60018411156102f0578085048111156102d4576102d4610274565b60018416156102e257908102905b60019390931c9280026102b9565b935093915050565b5f8261030657506001610394565b8161031257505f610394565b816001811461032857600281146103325761034e565b6001915050610394565b60ff84111561034357610343610274565b50506001821b610394565b5060208310610133831016604e8410600b8410161715610371575081810a610394565b61037d5f1984846102b5565b805f190482111561039057610390610274565b0290505b92915050565b5f61024d60ff8416836102f8565b60805160a05160c0516155af6104575f395f613e3f01525f81816105b101528181610b8e01528181610cbf01528181610eea01528181610fd8015281816115d5015281816119b001528181611ab201528181611ba301528181612163015281816124d40152818161289c0152818161298b01528181612a260152818161307401526141c901525f8181610dd001528181610e19015281816111db0152818161121b015261134501526155af5ff3fe608060405260043610610341575f3560e01c806376c7fc55116101bd578063b1081ccf116100f2578063d80359f111610092578063e3a8e29c1161006d578063e3a8e29c14610960578063e5a6b10f1461097f578063ee01a18314610993578063f3fef3a3146109a7575f5ffd5b8063d80359f11461090e578063dd62ed3e1461092d578063dfcb48bd1461094c575f5ffd5b8063c1cca2b3116100cd578063c1cca2b3146108a8578063c2c4c5c1146108c7578063c3df9dac146108db578063cda4bcc2146108fa575f5ffd5b8063b1081ccf14610850578063b1bf962d1461086f578063ba4e8df514610894575f5ffd5b806393e59dc11161015d5780639d90724d116101385780639d90724d146107d9578063a08f2203146107fe578063a457c2d714610812578063a9059cbb14610831575f5ffd5b806393e59dc11461078257806394217ad1146107a757806395d89b41146107c5575f5ffd5b8063837c83a311610198578063837c83a3146107115780638456cb5914610730578063854cff2f14610744578063918344d314610763575f5ffd5b806376c7fc55146106bf57806379d989fb146106de5780637d7c2a1c146106fd575f5ffd5b80633659cfe6116102935780634fe0bd1e116102335780636c321c8a1161020e5780636c321c8a1461064f5780636c6f4542146106635780636fe0e3951461068157806370a08231146106a0575f5ffd5b80634fe0bd1e1461061057806352d1902d146106245780635c975abb14610638575f5ffd5b806347e7ef241161026e57806347e7ef24146105845780634d15eb03146105a35780634eb978a4146105e95780634f1ef286146105fd575f5ffd5b80633659cfe61461053057806339509351146105515780633f4ba83a14610570575f5ffd5b806316db000f116102fe5780631e9c4658116102d95780631e9c4658146104ad57806323b872dd146104cc578063313ce567146104eb57806333481fc914610511575f5ffd5b806316db000f1461045057806318160ddd146104645780631da24f3e14610478575f5ffd5b806301ffc9a7146103455780630600a8651461037957806306fdde031461039b578063095ea7b3146103bc5780630afbcdc9146103db578063159ec2df1461043c575b5f5ffd5b348015610350575f5ffd5b5061036461035f366004614c76565b6109c6565b60405190151581526020015b60405180910390f35b348015610384575f5ffd5b5061038d610a27565b604051908152602001610370565b3480156103a6575f5ffd5b506103af610a74565b6040516103709190614ccb565b3480156103c7575f5ffd5b506103646103d6366004614cf1565b610b05565b3480156103e6575f5ffd5b506104276103f5366004614d1b565b6001600160a01b03165f90815261012d6020526040902054610131549091600160701b9091046001600160701b031690565b60408051928352602083019190915201610370565b348015610447575f5ffd5b5061038d610b1a565b34801561045b575f5ffd5b5061038d610b31565b34801561046f575f5ffd5b5061038d610b54565b348015610483575f5ffd5b5061038d610492366004614d1b565b6001600160a01b03165f90815261012d602052604090205490565b3480156104b8575f5ffd5b506103af6104c7366004614dd9565b610b69565b3480156104d7575f5ffd5b506103646104e6366004614e0a565b610c99565b3480156104f6575f5ffd5b506104ff610cbc565b60405160ff9091168152602001610370565b34801561051c575f5ffd5b5061038d61052b366004614d1b565b610d9c565b34801561053b575f5ffd5b5061054f61054a366004614d1b565b610dc6565b005b34801561055c575f5ffd5b5061036461056b366004614cf1565b610eac565b34801561057b575f5ffd5b5061054f610ecc565b34801561058f575f5ffd5b5061038d61059e366004614cf1565b610fd4565b3480156105ae575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610370565b3480156105f4575f5ffd5b5061054f611169565b61054f61060b366004614e48565b6111d1565b34801561061b575f5ffd5b5061038d61129c565b34801561062f575f5ffd5b5061038d611339565b348015610643575f5ffd5b5060975460ff16610364565b34801561065a575f5ffd5b5061038d6113ea565b34801561066e575f5ffd5b50610132546001600160801b031661038d565b34801561068c575f5ffd5b5061054f61069b366004614e94565b611461565b3480156106ab575f5ffd5b5061038d6106ba366004614d1b565b61157c565b3480156106ca575f5ffd5b5061054f6106d9366004614d1b565b6115d2565b3480156106e9575f5ffd5b5061038d6106f8366004614f13565b6116a8565b348015610708575f5ffd5b5061054f6116d1565b34801561071c575f5ffd5b5061054f61072b366004614f2e565b611719565b34801561073b575f5ffd5b5061054f6119a0565b34801561074f575f5ffd5b5061054f61075e366004614d1b565b611a94565b34801561076e575f5ffd5b5061054f61077d366004614f4e565b611cc7565b34801561078d575f5ffd5b5061013454600160401b90046001600160a01b03166105d1565b3480156107b2575f5ffd5b50610135546001600160a01b03166105d1565b3480156107d0575f5ffd5b506103af611e27565b3480156107e4575f5ffd5b5061013254600160801b90046001600160401b031661038d565b348015610809575f5ffd5b5061038d611e37565b34801561081d575f5ffd5b5061036461082c366004614cf1565b611eaa565b34801561083c575f5ffd5b5061036461084b366004614cf1565b611f46565b34801561085b575f5ffd5b5061054f61086a366004614f7c565b611f52565b34801561087a575f5ffd5b5061013154600160701b90046001600160701b031661038d565b34801561089f575f5ffd5b5061038d61212d565b3480156108b3575f5ffd5b5061054f6108c2366004614fa5565b612140565b3480156108d2575f5ffd5b5061054f612394565b3480156108e6575f5ffd5b5061038d6108f5366004614f4e565b6123ae565b348015610905575f5ffd5b5061038d61249c565b348015610919575f5ffd5b5061054f610928366004614fc4565b6124b6565b348015610938575f5ffd5b5061038d610947366004614ff0565b612853565b348015610957575f5ffd5b5061038d61287e565b34801561096b575f5ffd5b5061054f61097a366004614d1b565b612899565b34801561098a575f5ffd5b506105d1612988565b34801561099e575f5ffd5b5061038d612a09565b3480156109b2575f5ffd5b5061038d6109c1366004614cf1565b612a22565b5f6109d082612bcc565b806109eb57506001600160e01b031982166336372b0760e01b145b80610a0657506001600160e01b0319821663a219a02560e01b145b80610a2157506001600160e01b03198216639077062160e01b145b92915050565b5f5f610a47610a3461212d565b610132546001600160801b031690612c01565b90505f610a52610b54565b9050818110610a6c57610a658282615030565b9250505090565b5f9250505090565b606061012f8054610a8490615043565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090615043565b8015610afb5780601f10610ad257610100808354040283529160200191610afb565b820191905f5260205f20905b815481529060010190602001808311610ade57829003601f168201915b5050505050905090565b5f610b11338484612c37565b50600192915050565b61013254600160c01b90046001600160401b031690565b5f610b3d610131612d5f565b610b45610b54565b610b4f9190615030565b905090565b5f610b4f610b60610b1a565b61013190612d8e565b60607fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610c3e9493929190615090565b5f6040518083038186803b158015610c54575f5ffd5b505afa158015610c66573d5f5f3e3d5ffd5b50505050610c9083610c81610135546001600160a01b031690565b6001600160a01b031690612dba565b91505b50919050565b5f33610ca6858285612ddf565b610cb1858585612e57565b506001949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3d9190615075565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4f91906150ba565b6001600160a01b0381165f90815261013360205260408120610c90610dbf61249c565b8290612d8e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e175760405162461bcd60e51b8152600401610e0e906150da565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e5f5f5160206154f35f395f51905f52546001600160a01b031690565b6001600160a01b031614610e855760405162461bcd60e51b8152600401610e0e90615126565b610e8e81613056565b604080515f80825260208201909252610ea99183919061315b565b50565b5f610b11338484610ebd3388612853565b610ec79190615172565b612c37565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f44573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610f9c959493929190615185565b5f6040518083038186803b158015610fb2575f5ffd5b505afa158015610fc4573d5f5f3e3d5ffd5b50505050610fd06132c5565b5050565b5f337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461101e5760405163799e780f60e01b815260040160405180910390fd5b61013454600160401b90046001600160a01b031615806110bb5750610134546040516337ee20dd60e01b81523060048201526001600160a01b03858116602483015260448201859052600160401b909204909116906337ee20dd90606401602060405180830381865afa158015611097573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bb91906151b8565b6110d75760405162461bcd60e51b8152600401610e0e906151d3565b6110e18383613317565b6110e9613468565b6110f1612a09565b6110f96113ea565b10156111595760405162461bcd60e51b815260206004820152602960248201527f4465706f7369742072656a6563746564202d205574696c697a6174696f6e205260448201526830ba32901e1036b4b760b91b6064820152608401610e0e565b6111628361157c565b9392505050565b611171613567565b6040805160048152602481019091526020810180516001600160e01b03166313ae5e2960e21b1790525f906111b390610c81610135546001600160a01b031690565b9050610ea9818060200190518101906111cc9190615215565b6135ad565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112195760405162461bcd60e51b8152600401610e0e906150da565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112615f5160206154f35f395f51905f52546001600160a01b031690565b6001600160a01b0316146112875760405162461bcd60e51b8152600401610e0e90615126565b61129082613056565b610fd08282600161315b565b5f5f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190615215565b610132549091506001600160801b0316811115611332576101325461132c906001600160801b031682615030565b91505090565b5f91505090565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610e0e565b505f5160206154f35f395f51905f5290565b5f610b4f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144e9190615215565b610132546001600160801b0316906135b6565b5f54610100900460ff161580801561147f57505f54600160ff909116105b806114985750303b15801561149857505f5460ff166001145b6114fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e0e565b5f805460ff19166001179055801561151c575f805461ff0019166101001790555b6115246135eb565b61153085858585613619565b8015611575575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0381165f90815261012d60205260408120548082036115a457505f92915050565b610c906115cd6115b3836137f1565b6115c76115be610b1a565b61013190613806565b906138a0565b6138e1565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461161b5760405163799e780f60e01b815260040160405180910390fd5b6001600160a01b0381166116415760405162461bcd60e51b8152600401610e0e9061522c565b5f61164b82610d9c565b6001600160a01b0383165f81815261013360205260408082209190915551919250907fe2ebfbed0df9004eae018a4ae91b24baa0cd1d83f495fab6dde3a1493f9dc6c69061169c9084815260200190565b60405180910390a25050565b5f81156116ba57610a216115be610b1a565b5050610131546001600160701b031690565b919050565b6116d9613567565b6040805160048152602481019091526020810180516001600160e01b0316631f5f0a8760e21b179052610ea990610c81610135546001600160a01b031690565b335f90815261013360205260408120546001600160701b031690036117505760405162461bcd60e51b8152600401610e0e90615277565b611758613567565b306001600160a01b031663a08f22036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611794573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b89190615215565b82111561181b5760405162461bcd60e51b815260206004820152602b60248201527f4e6f7420656e6f7567682066756e647320617661696c61626c6520746f20636f60448201526a3b32b9103a34329029a1a960a91b6064820152608401610e0e565b61182f611826610b1a565b61013190613900565b610132546001600160801b03165f036118a75761184b8261399c565b61013280546001600160801b0319166001600160801b039290921691909117905561187581613a08565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b1990921691909117905561195f565b610132546001600160801b03165f6118bf8483615172565b9050611905611900826118d28688612c01565b610132546118f090600160801b90046001600160401b031687612c01565b6118fa9190615172565b906135b6565b613a08565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b1990921691909117905561193b8161399c565b61013280546001600160801b0319166001600160801b039290921691909117905550505b60408051828152602081018490527f333478c2835efe2f226b0d334f71bdf18c977621845f20d21fff75321fc8ab27910160405180910390a1610fd0613468565b5f51602061555a5f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a0a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2e9190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401611a609493929190615090565b5f6040518083038186803b158015611a76575f5ffd5b505afa158015611a88573d5f5f3e3d5ffd5b50505050610ea9613a6f565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b309190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611b64959493929190615185565b5f6040518083038186803b158015611b7a575f5ffd5b505afa158015611b8c573d5f5f3e3d5ffd5b505050506001600160a01b0383161580611c3657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2b9190615075565b6001600160a01b0316145b611c925760405162461bcd60e51b815260206004820152602760248201527f436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320506f6c6044820152661a58de541bdbdb60ca1b6064820152608401610e0e565b6101348054600160401b600160e01b031916600160401b6001600160a01b03861602179055611cc2601784613aac565b505050565b611ccf613567565b5f8211611d325760405162461bcd60e51b815260206004820152602b60248201527f45546f6b656e3a20616d6f756e742073686f756c64206265206772656174657260448201526a103a3430b7103d32b9379760a91b6064820152608401610e0e565b6001600160a01b0381165f90815261013360205260408120805490916001600160701b039091169003611da75760405162461bcd60e51b815260206004820152601960248201527f4e6f742061207265676973746572656420626f72726f776572000000000000006044820152606401610e0e565b611dbb83611db361249c565b839190613aff565b50611dc583613ba3565b816001600160a01b03167fa1aeb41f04a9a2aa1450e8edd0fa1a0a7971ff65c7bbb7b2ca0379b9327edbaf84604051611e0091815260200190565b60405180910390a2611cc2333085611e16612988565b6001600160a01b0316929190613bc1565b60606101308054610a8490615043565b5f5f6112fe611e4461287e565b306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e80573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea49190615215565b90612c01565b335f90815261012e602090815260408083206001600160a01b038616845290915281205482811015611f2d5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f60448201526577207a65726f60d01b6064820152608401610e0e565b611f3c3385610ec78685615030565b5060019392505050565b5f610b11338484612e57565b335f90815261013360205260408120546001600160701b03169003611f895760405162461bcd60e51b8152600401610e0e90615277565b611f91613567565b610132546001600160801b03168311156120095760405162461bcd60e51b815260206004820152603360248201527f43757272656e7420534352206c657373207468616e2074686520616d6f756e7460448201527220796f752077616e7420746f20756e6c6f636b60681b6064820152608401610e0e565b612014611826610b1a565b610132546001600160801b031683900361203e5761013280546001600160c01b03191690556120eb565b610132546001600160801b03165f6120568583615030565b9050612091611900826120698789612c01565b6101325461208790600160801b90046001600160401b031687612c01565b6118fa9190615030565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b199092169190911790556120c78161399c565b61013280546001600160801b0319166001600160801b039290921691909117905550505b60408051838152602081018590527f7b9d63ccbb37347ce0fe73e3663c640d22364d8c733839777f1729e59af1967f910160405180910390a1611cc281613ba3565b610134545f90610b4f9061ffff16613c2c565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121e19190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016122139493929190615090565b5f6040518083038186803b158015612229575f5ffd5b505afa15801561223b573d5f5f3e3d5ffd5b505f9250612247915050565b836003811115612259576122596152ae565b036122835761226782613c41565b610134805461ffff191661ffff9290921691909117905561235d565b6001836003811115612297576122976152ae565b036122ca576122a582613c41565b610134805461ffff92909216620100000263ffff00001990921691909117905561235d565b60028360038111156122de576122de6152ae565b03612315576122ec82613c41565b610134805461ffff929092166401000000000265ffff000000001990921691909117905561235d565b6003836003811115612329576123296152ae565b0361235d5761233782613c41565b610134805461ffff92909216600160301b0267ffff000000000000199092169190911790555b611cc2836003811115612372576123726152ae565b61237d906018615172565b602d81111561238e5761238e6152ae565b83613c5a565b61239c613567565b6123a4611169565b6123ac6116d1565b565b335f90815261013360205260408120546001600160701b031681036123e55760405162461bcd60e51b8152600401610e0e90615277565b6123ed613567565b826123ff816123fa610b31565b613ca4565b9350835f0361240f579050610a21565b335f908152610133602052604090206124328561242a61249c565b839190613cb9565b5061244461243f866152c2565b613ba3565b61244e8486613d36565b604080518681526020810184905233917f98697a4799dbd9db66c7168304c43cba77a27a50d2785625e09072e0d91fdd53910160405180910390a26124938583615030565b95945050505050565b610134545f90610b4f90600160301b900461ffff16613c2c565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561252e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125529190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401612586959493929190615185565b5f6040518083038186803b15801561259c575f5ffd5b505afa1580156125ae573d5f5f3e3d5ffd5b505050506001600160a01b038416158061263057506040516301ffc9a760e01b8152631e670a9760e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa15801561260c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263091906151b8565b6126a4576040805162461bcd60e51b81526020600482015260248101919091527f526573657276653a206173736574206d616e6167657220646f65736e2774206960448201527f6d706c656d656e74732074686520726571756972656420696e746572666163656064820152608401610e0e565b5f6126b8610135546001600160a01b031690565b905060026001600160a01b038216156127db5784156127815760408051600481526024810182526020810180516001600160e01b031663cec16f3f60e01b17905290515f9182916001600160a01b03861691612713916152dc565b5f60405180830381855af49150503d805f811461274b576040519150601f19603f3d011682016040523d82523d5f602084013e612750565b606091505b509150915081612763576003925061277a565b61277a818060200190518101906111cc9190615215565b50506127db565b6040805160048152602481019091526020810180516001600160e01b031663cec16f3f60e01b1790525f906127c0906001600160a01b03851690612dba565b90506127d9818060200190518101906111cc9190615215565b505b61013580546001600160a01b0319166001600160a01b03881690811790915591508115612841576040805160048152602481019091526020810180516001600160e01b031663948cb71960e01b17905261283f906001600160a01b03841690612dba565b505b61284b8187613aac565b505050505050565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205490565b610134545f90610b4f90640100000000900461ffff16613c2c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146128e25760405163799e780f60e01b815260040160405180910390fd5b6001600160a01b0381166129085760405162461bcd60e51b8152600401610e0e9061522c565b6001600160a01b0381165f90815261013360205260408120805490916001600160701b039091169003610fd057676765c793fa10079d601b1b600160e01b4263ffffffff16021781556040516001600160a01b038316907f66c0f28249c4fc4db79872a4405be78a93f19c65ac9ef2f173867a149065bcf2905f90a25050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4f9190615075565b610134545f90610b4f9062010000900461ffff16613c2c565b5f337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614612a6c5760405163799e780f60e01b815260040160405180910390fd5b5f612a81612a798561157c565b6123fa610a27565b90505f198303612a8f578092505b825f03612a9f575f915050610a21565b80831115612aef5760405162461bcd60e51b815260206004820152601960248201527f616d6f756e74203e206d617820776974686472617761626c65000000000000006044820152606401610e0e565b61013454600160401b90046001600160a01b03161580612b8c575061013454604051639051c76360e01b81523060048201526001600160a01b03868116602483015260448201869052600160401b90920490911690639051c76390606401602060405180830381865afa158015612b68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8c91906151b8565b612ba85760405162461bcd60e51b8152600401610e0e906151d3565b612bb28484613e8f565b612bba613468565b612bc48484613d36565b509092915050565b5f6001600160e01b031982166301ffc9a760e01b1480610a2157506001600160e01b03198216634d15eb0360e01b1492915050565b5f81156706f05b59d3b200001983900484111517612c1d575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b6001600160a01b038316612c9b5760405162461bcd60e51b815260206004820152602560248201527f45546f6b656e3a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e0e565b6001600160a01b038216612cfd5760405162461bcd60e51b815260206004820152602360248201527f45546f6b656e3a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e0e565b6001600160a01b038381165f81815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b80545f90610a21906115cd9067016345785d8a0000906115c790600160701b90046001600160701b03166137f1565b5f6111626115cd612d9f8585613806565b85546115c790600160701b90046001600160701b03166137f1565b6060611162838360405180606001604052806027815260200161553360279139613ff0565b5f612dea8484612853565b90505f198114612e515781811015612e445760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e3a20696e73756666696369656e7420616c6c6f77616e636500006044820152606401610e0e565b612e518484848403612c37565b50505050565b6001600160a01b038316612ebc5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e3a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610e0e565b6001600160a01b038216612f1e5760405162461bcd60e51b8152602060048201526024808201527f45546f6b656e3a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610e0e565b612f29838383614064565b5f612f3f612f35610b1a565b61013190846141a7565b6001600160a01b0385165f90815261012d602052604090205490915081811015612fbb5760405162461bcd60e51b815260206004820152602760248201527f45546f6b656e3a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610e0e565b612fc58282615030565b6001600160a01b038087165f90815261012d60205260408082209390935590861681529081208054849290612ffb908490615172565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161304791815260200190565b60405180910390a35050505050565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f29190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401613126959493929190615185565b5f6040518083038186803b15801561313c575f5ffd5b505afa15801561314e573d5f5f3e3d5ffd5b50505050611cc2836141c7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561318e57611cc283614278565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156131e8575060408051601f3d908101601f191682019092526131e591810190615215565b60015b61324b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e0e565b5f5160206154f35f395f51905f5281146132b95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e0e565b50611cc2838383614313565b6132cd614337565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661336d5760405162461bcd60e51b815260206004820181905260248201527f45546f6b656e3a206d696e7420746f20746865207a65726f20616464726573736044820152606401610e0e565b5f81116133d75760405162461bcd60e51b815260206004820152603260248201527f45546f6b656e3a20616d6f756e7420746f206d696e742073686f756c642062656044820152712067726561746572207468616e207a65726f60701b6064820152608401610e0e565b6133e25f8383614064565b5f6133f9826133ef610b1a565b6101319190613cb9565b6001600160a01b0384165f90815261012d6020526040812080549293508392909190613426908490615172565b90915550506040518281526001600160a01b038416905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612d52565b5f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134c99190615215565b9050805f036134e55761013280546001600160c01b0316905550565b610132545f906135149083906118fa906001600160401b03600160801b820416906001600160801b0316612c01565b90506001600160401b0381116135325761352d81613a08565b61353b565b6001600160401b035b61013280546001600160401b0392909216600160c01b026001600160c01b039092169190911790555050565b60975460ff16156123ac5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610e0e565b610ea981613ba3565b5f8115670de0b6b3a7640000600284041904841117156135d4575f5ffd5b50670de0b6b3a76400009190910260028204010490565b5f54610100900460ff166136115760405162461bcd60e51b8152600401610e0e906152f2565b6123ac614380565b5f54610100900460ff1661363f5760405162461bcd60e51b8152600401610e0e906152f2565b5f84511161368f5760405162461bcd60e51b815260206004820152601c60248201527f45546f6b656e3a206e616d652063616e6e6f7420626520656d707479000000006044820152606401610e0e565b5f8351116136df5760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e3a2073796d626f6c2063616e6e6f7420626520656d70747900006044820152606401610e0e565b61012f6136ec8582615381565b506101306136fa8482615381565b50676765c793fa10079d601b1b600160e01b4263ffffffff160217610131556040805160a08101825261271081525f602082015290810161373a84613c41565b61ffff16815260200161374c83613c41565b61ffff90811682525f6020928301528251610134805493850151604086015160608701516080909701516001600160a01b0316600160401b02600160401b600160e01b0319978616600160301b0267ffff00000000000019928716640100000000029290921667ffffffff0000000019938716620100000263ffffffff1990981695909616949094179590951716929092179290921792909216179055612e516143b6565b633b9aca0081810290810482146116cc575f5ffd5b81545f90429063ffffffff808316600160e01b909204161061383457505081546001600160701b0316610a21565b83545f9061384f90600160e01b900463ffffffff168361543b565b63ffffffff169050612493676765c793fa10079d601b1b6301e1338083613875886137f1565b61387f9190615457565b613889919061546e565b6138939190615172565b86546001600160701b0316905b5f81156b019d971e4fe8401e7400000019839004841115176138c0575f5ffd5b50676765c793fa10079d601b1b91026b019d971e4fe8401e74000000010490565b633b9aca00808204908206631dcd65008110610c935750600101919050565b815463ffffffff428116600160e01b909204161061391c575050565b8154600160701b90046001600160701b03165f03613952575080546001600160e01b0316600160e01b4263ffffffff1602179055565b61396461395f8383613806565b6145cf565b82546001600160701b03919091166dffffffffffffffffffffffffffff60701b90911617600160e01b4263ffffffff16021790915550565b5f6001600160801b03821115613a045760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610e0e565b5090565b5f6001600160401b03821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610e0e565b613a77613567565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132fa3390565b613ab46143b6565b81602d811115613ac657613ac66152ae565b6040516001600160a01b03831681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200161169c565b5f613b0a8483613900565b5f613b158585614637565b9050613b2081614655565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316613b4d919061548d565b82546101009290920a6001600160701b038181021990931691831602179091558654600160701b9004165f039050613b9b5784546001600160701b031916676765c793fa10079d601b1b1785555b949350505050565b613bb981613baf610b1a565b61013191906146bc565b610ea9613468565b6040516001600160a01b0380851660248301528316604482015260648101829052612e519085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526147b7565b5f610a21655af3107a400061ffff8416615457565b5f610a21613c55655af3107a40008461546e565b61488a565b613c626143b6565b81602d811115613c7457613c746152ae565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200161169c565b5f818310613cb25781611162565b5090919050565b5f613cc48483613900565b5f613ccf8585614637565b9050613cda81614655565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316613d0791906154ac565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550809150509392505050565b6001600160a01b038216613d9a5760405162461bcd60e51b815260206004820152602560248201527f526573657276653a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610e0e565b805f03613da5575050565b5f613dae612988565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613df2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e169190615215565b905081811015613e7257613e29826148ec565b613e339082615172565b905080821115613e72577f0000000000000000000000000000000000000000000000000000000000000000613e688284615030565b1015613e72578091505b611cc28383613e7f612988565b6001600160a01b031691906149bf565b6001600160a01b038216613ef05760405162461bcd60e51b815260206004820152602260248201527f45546f6b656e3a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610e0e565b613efb825f83614064565b5f613f1282613f08610b1a565b6101319190613aff565b6001600160a01b0384165f90815261012d602052604090205490915081811015613f8a5760405162461bcd60e51b815260206004820152602360248201527f45546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b6064820152608401610e0e565b613f948282615030565b6001600160a01b0385165f81815261012d60205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613fe29087815260200190565b60405180910390a350505050565b60605f5f856001600160a01b03168560405161400c91906152dc565b5f60405180830381855af49150503d805f8114614044576040519150601f19603f3d011682016040523d82523d5f602084013e614049565b606091505b509150915061405a868383876149ef565b9695505050505050565b61406c613567565b6001600160a01b038316158061408957506001600160a01b038216155b806140a5575061013454600160401b90046001600160a01b0316155b80614135575061013454604051635fcdca3760e01b81523060048201526001600160a01b038581166024830152848116604483015260648201849052600160401b90920490911690635fcdca3790608401602060405180830381865afa158015614111573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061413591906151b8565b611cc25760405162461bcd60e51b815260206004820152603960248201527f5472616e73666572206e6f7420616c6c6f776564202d204c697175696469747960448201527f2050726f7669646572206e6f742077686974656c6973746564000000000000006064820152608401610e0e565b5f613b9b6115cd6141b88686613806565b6141c1856137f1565b90614a67565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561422d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142519190615075565b6001600160a01b031614610ea95760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6142e55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e0e565b5f5160206154f35f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61431c83614aa2565b5f825111806143285750805b15611cc257612e518383612dba565b60975460ff166123ac5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610e0e565b5f54610100900460ff166143a65760405162461bcd60e51b8152600401610e0e906152f2565b6143ae614ae1565b6123ac614b07565b61013454611f4061ffff909116108015906143dc5750610134546132c861ffff90911611155b6144445760405162461bcd60e51b815260206004820152603360248201527f56616c69646174696f6e3a206c6971756964697479526571756972656d656e74604482015272206d757374206265205b302e382c20312e335d60681b6064820152608401610e0e565b6101345461138864010000000090910461ffff161080159061447857506101345461271064010000000090910461ffff1611155b6144dc5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a206d61785574696c697a6174696f6e52617465206d60448201526e757374206265205b302e352c20315d60881b6064820152608401610e0e565b610134546127106201000090910461ffff1611156145525760405162461bcd60e51b815260206004820152602d60248201527f56616c69646174696f6e3a206d696e5574696c697a6174696f6e52617465206d60448201526c757374206265205b302c20315d60981b6064820152608401610e0e565b61013454611388600160301b90910461ffff1611156123ac5760405162461bcd60e51b815260206004820152603360248201527f56616c69646174696f6e3a20696e7465726e616c4c6f616e496e74657265737460448201527252617465206d757374206265203c3d2035302560681b6064820152608401610e0e565b5f6001600160701b03821115613a045760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663132206269747360c81b6064820152608401610e0e565b81545f90611162906115cd906001600160701b03166141c1856137f1565b5f6001600160601b03821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610e0e565b8254600160701b90046001600160701b03165f036146df57612e51838383613cb9565b6146e98382613900565b5f826146f58584612d8e565b6146ff91906154cb565b845490915061472e9061395f9061472590600160701b90046001600160701b03166137f1565b6141c1846137f1565b84546001600160701b0319166001600160701b0391909116908117855567016345785d8a00001115612e515760405162461bcd60e51b815260206004820152602c60248201527f5363616c6520746f6f20736d616c6c2c2063616e206c65616420746f20726f7560448201526b6e64696e67206572726f727360a01b6064820152608401610e0e565b5f61480b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614b359092919063ffffffff16565b905080515f148061482b57508080602001905181019061482b91906151b8565b611cc25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e0e565b5f61ffff821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610e0e565b5f5f614901610135546001600160a01b031690565b90506001600160a01b038116156149b7575f6149a1631014a0c260e01b8560405160240161493191815260200190565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935280518082019091526016815275115c9c9bdc881c99599a5b1b1a5b99c81dd85b1b195d60521b928101929092526001600160a01b03851691613ff0565b905080806020019051810190613b9b9190615215565b505f92915050565b6040516001600160a01b038316602482015260448101829052611cc290849063a9059cbb60e01b90606401613bf5565b60608315614a5d5782515f03614a56576001600160a01b0385163b614a565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e0e565b5081613b9b565b613b9b8383614b43565b5f8115676765c793fa10079d601b1b60028404190484111715614a88575f5ffd5b50676765c793fa10079d601b1b9190910260028204010490565b614aab81614278565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f54610100900460ff166123ac5760405162461bcd60e51b8152600401610e0e906152f2565b5f54610100900460ff16614b2d5760405162461bcd60e51b8152600401610e0e906152f2565b6123ac614b6d565b6060613b9b84845f85614b9f565b815115614b535781518083602001fd5b8060405162461bcd60e51b8152600401610e0e9190614ccb565b5f54610100900460ff16614b935760405162461bcd60e51b8152600401610e0e906152f2565b6097805460ff19169055565b606082471015614c005760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610e0e565b5f5f866001600160a01b03168587604051614c1b91906152dc565b5f6040518083038185875af1925050503d805f8114614c55576040519150601f19603f3d011682016040523d82523d5f602084013e614c5a565b606091505b5091509150614c6b878383876149ef565b979650505050505050565b5f60208284031215614c86575f5ffd5b81356001600160e01b031981168114611162575f5ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6111626020830184614c9d565b6001600160a01b0381168114610ea9575f5ffd5b5f5f60408385031215614d02575f5ffd5b8235614d0d81614cdd565b946020939093013593505050565b5f60208284031215614d2b575f5ffd5b813561116281614cdd565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112614d59575f5ffd5b8135602083015f5f6001600160401b03841115614d7857614d78614d36565b50604051601f19601f85018116603f011681018181106001600160401b0382111715614da657614da6614d36565b604052838152905080828401871015614dbd575f5ffd5b838360208301375f602085830101528094505050505092915050565b5f60208284031215614de9575f5ffd5b81356001600160401b03811115614dfe575f5ffd5b613b9b84828501614d4a565b5f5f5f60608486031215614e1c575f5ffd5b8335614e2781614cdd565b92506020840135614e3781614cdd565b929592945050506040919091013590565b5f5f60408385031215614e59575f5ffd5b8235614e6481614cdd565b915060208301356001600160401b03811115614e7e575f5ffd5b614e8a85828601614d4a565b9150509250929050565b5f5f5f5f60808587031215614ea7575f5ffd5b84356001600160401b03811115614ebc575f5ffd5b614ec887828801614d4a565b94505060208501356001600160401b03811115614ee3575f5ffd5b614eef87828801614d4a565b949794965050505060408301359260600135919050565b8015158114610ea9575f5ffd5b5f60208284031215614f23575f5ffd5b813561116281614f06565b5f5f60408385031215614f3f575f5ffd5b50508035926020909101359150565b5f5f60408385031215614f5f575f5ffd5b823591506020830135614f7181614cdd565b809150509250929050565b5f5f5f60608486031215614f8e575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215614fb6575f5ffd5b823560048110614d0d575f5ffd5b5f5f60408385031215614fd5575f5ffd5b8235614fe081614cdd565b91506020830135614f7181614f06565b5f5f60408385031215615001575f5ffd5b823561500c81614cdd565b91506020830135614f7181614cdd565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a2157610a2161501c565b600181811c9082168061505757607f821691505b602082108103610c9357634e487b7160e01b5f52602260045260245ffd5b5f60208284031215615085575f5ffd5b815161116281614cdd565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b5f602082840312156150ca575f5ffd5b815160ff81168114611162575f5ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820180821115610a2157610a2161501c565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b5f602082840312156151c8575f5ffd5b815161116281614f06565b60208082526022908201527f4c69717569646974792050726f7669646572206e6f742077686974656c697374604082015261195960f21b606082015260800190565b5f60208284031215615225575f5ffd5b5051919050565b6020808252602b908201527f45546f6b656e3a20426f72726f7765722063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b6020808252601d908201527f5468652063616c6c6572206d757374206265206120626f72726f776572000000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b5f600160ff1b82016152d6576152d661501c565b505f0390565b5f82518060208501845e5f920191825250919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115611cc257805f5260205f20601f840160051c810160208510156153625750805b601f840160051c820191505b81811015611575575f815560010161536e565b81516001600160401b0381111561539a5761539a614d36565b6153ae816153a88454615043565b8461533d565b6020601f8211600181146153e0575f83156153c95750848201515b5f19600385901b1c1916600184901b178455611575565b5f84815260208120601f198516915b8281101561540f57878501518255602094850194600190920191016153ef565b508482101561542c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b63ffffffff8281168282160390811115610a2157610a2161501c565b8082028115828204841417610a2157610a2161501c565b5f8261548857634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160701b038281168282160390811115610a2157610a2161501c565b6001600160701b038181168382160190811115610a2157610a2161501c565b8082018281125f8312801582168215821617156154ea576154ea61501c565b50509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220511d0766c9cce108d2da4fe4427b88ce01d0793b803c2e9293be6b7d932e47d864736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5A06 CODESIZE SUB DUP1 PUSH2 0x5A06 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x232 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x63 PUSH2 0x15F JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP PUSH1 0x2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0x232 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13F SWAP2 SWAP1 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x149 SWAP2 SWAP1 PUSH2 0x288 JUMP JUMPDEST PUSH2 0x154 SWAP1 PUSH1 0xA PUSH2 0x39A JUMP JUMPDEST PUSH1 0xC0 MSTORE POP PUSH2 0x3A8 SWAP1 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x219 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x22F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24D DUP2 PUSH2 0x21B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x264 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x24D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND DUP1 PUSH2 0x2A6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 PUSH1 0xFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2F0 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x2D4 JUMPI PUSH2 0x2D4 PUSH2 0x274 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x2E2 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x2B9 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x306 JUMPI POP PUSH1 0x1 PUSH2 0x394 JUMP JUMPDEST DUP2 PUSH2 0x312 JUMPI POP PUSH0 PUSH2 0x394 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x328 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x332 JUMPI PUSH2 0x34E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x394 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x343 JUMPI PUSH2 0x343 PUSH2 0x274 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x394 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x371 JUMPI POP DUP2 DUP2 EXP PUSH2 0x394 JUMP JUMPDEST PUSH2 0x37D PUSH0 NOT DUP5 DUP5 PUSH2 0x2B5 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x390 JUMPI PUSH2 0x390 PUSH2 0x274 JUMP JUMPDEST MUL SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24D PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x2F8 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x55AF PUSH2 0x457 PUSH0 CODECOPY PUSH0 PUSH2 0x3E3F ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x5B1 ADD MSTORE DUP2 DUP2 PUSH2 0xB8E ADD MSTORE DUP2 DUP2 PUSH2 0xCBF ADD MSTORE DUP2 DUP2 PUSH2 0xEEA ADD MSTORE DUP2 DUP2 PUSH2 0xFD8 ADD MSTORE DUP2 DUP2 PUSH2 0x15D5 ADD MSTORE DUP2 DUP2 PUSH2 0x19B0 ADD MSTORE DUP2 DUP2 PUSH2 0x1AB2 ADD MSTORE DUP2 DUP2 PUSH2 0x1BA3 ADD MSTORE DUP2 DUP2 PUSH2 0x2163 ADD MSTORE DUP2 DUP2 PUSH2 0x24D4 ADD MSTORE DUP2 DUP2 PUSH2 0x289C ADD MSTORE DUP2 DUP2 PUSH2 0x298B ADD MSTORE DUP2 DUP2 PUSH2 0x2A26 ADD MSTORE DUP2 DUP2 PUSH2 0x3074 ADD MSTORE PUSH2 0x41C9 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0xDD0 ADD MSTORE DUP2 DUP2 PUSH2 0xE19 ADD MSTORE DUP2 DUP2 PUSH2 0x11DB ADD MSTORE DUP2 DUP2 PUSH2 0x121B ADD MSTORE PUSH2 0x1345 ADD MSTORE PUSH2 0x55AF PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x341 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76C7FC55 GT PUSH2 0x1BD JUMPI DUP1 PUSH4 0xB1081CCF GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xD80359F1 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xE3A8E29C GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xE3A8E29C EQ PUSH2 0x960 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x97F JUMPI DUP1 PUSH4 0xEE01A183 EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x9A7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xD80359F1 EQ PUSH2 0x90E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x92D JUMPI DUP1 PUSH4 0xDFCB48BD EQ PUSH2 0x94C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xC1CCA2B3 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x8A8 JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xC3DF9DAC EQ PUSH2 0x8DB JUMPI DUP1 PUSH4 0xCDA4BCC2 EQ PUSH2 0x8FA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xB1081CCF EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xB1BF962D EQ PUSH2 0x86F JUMPI DUP1 PUSH4 0xBA4E8DF5 EQ PUSH2 0x894 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x93E59DC1 GT PUSH2 0x15D JUMPI DUP1 PUSH4 0x9D90724D GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x9D90724D EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xA08F2203 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x812 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x831 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x93E59DC1 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x94217AD1 EQ PUSH2 0x7A7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x837C83A3 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x837C83A3 EQ PUSH2 0x711 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0x854CFF2F EQ PUSH2 0x744 JUMPI DUP1 PUSH4 0x918344D3 EQ PUSH2 0x763 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x76C7FC55 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0x79D989FB EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x6FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x293 JUMPI DUP1 PUSH4 0x4FE0BD1E GT PUSH2 0x233 JUMPI DUP1 PUSH4 0x6C321C8A GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x6C321C8A EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x6C6F4542 EQ PUSH2 0x663 JUMPI DUP1 PUSH4 0x6FE0E395 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6A0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4FE0BD1E EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x624 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x638 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x47E7EF24 GT PUSH2 0x26E JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x584 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x5E9 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x5FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x570 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x16DB000F GT PUSH2 0x2FE JUMPI DUP1 PUSH4 0x1E9C4658 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x1E9C4658 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0x33481FC9 EQ PUSH2 0x511 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x16DB000F EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x1DA24F3E EQ PUSH2 0x478 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x600A865 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xAFBCDC9 EQ PUSH2 0x3DB JUMPI DUP1 PUSH4 0x159EC2DF EQ PUSH2 0x43C JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x35F CALLDATASIZE PUSH1 0x4 PUSH2 0x4C76 JUMP JUMPDEST PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x4CCB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x3D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x427 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x131 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x447 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DD9 JUMP JUMPDEST PUSH2 0xB69 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E0A JUMP JUMPDEST PUSH2 0xC99 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4FF PUSH2 0xCBC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0xECC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x59E CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x1169 JUMP JUMPDEST PUSH2 0x54F PUSH2 0x60B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E48 JUMP JUMPDEST PUSH2 0x11D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x129C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1339 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x364 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E94 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x6BA CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x157C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x15D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x6F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F13 JUMP JUMPDEST PUSH2 0x16A8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x708 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x72B CALLDATASIZE PUSH1 0x4 PUSH2 0x4F2E JUMP JUMPDEST PUSH2 0x1719 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x19A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x75E CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x1A94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x4F4E JUMP JUMPDEST PUSH2 0x1CC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0x1E27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x809 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1E37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x82C CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x1EAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x84B CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x1F46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x86A CALLDATASIZE PUSH1 0x4 PUSH2 0x4F7C JUMP JUMPDEST PUSH2 0x1F52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x131 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x212D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x8C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FA5 JUMP JUMPDEST PUSH2 0x2140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x2394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x8F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F4E JUMP JUMPDEST PUSH2 0x23AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x905 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x249C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x919 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x928 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FC4 JUMP JUMPDEST PUSH2 0x24B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FF0 JUMP JUMPDEST PUSH2 0x2853 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x957 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x287E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x97A CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x2899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x5D1 PUSH2 0x2988 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x9C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x2A22 JUMP JUMPDEST PUSH0 PUSH2 0x9D0 DUP3 PUSH2 0x2BCC JUMP JUMPDEST DUP1 PUSH2 0x9EB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x36372B07 PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xA06 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xA219A025 PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xA21 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x90770621 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0xA47 PUSH2 0xA34 PUSH2 0x212D JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xA52 PUSH2 0xB54 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT PUSH2 0xA6C JUMPI PUSH2 0xA65 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x12F DUP1 SLOAD PUSH2 0xA84 SWAP1 PUSH2 0x5043 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAB0 SWAP1 PUSH2 0x5043 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAFB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAD2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAFB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xADE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0x2C37 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB3D PUSH2 0x131 PUSH2 0x2D5F JUMP JUMPDEST PUSH2 0xB45 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x5030 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB4F PUSH2 0xB60 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x2D8E JUMP JUMPDEST PUSH1 0x60 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC90 DUP4 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0xCA6 DUP6 DUP3 DUP6 PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0xCB1 DUP6 DUP6 DUP6 PUSH2 0x2E57 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD3D SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD78 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x50BA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xC90 PUSH2 0xDBF PUSH2 0x249C JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x2D8E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xE17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x50DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE5F PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5126 JUMP JUMPDEST PUSH2 0xE8E DUP2 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xEA9 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0xEBD CALLER DUP9 PUSH2 0x2853 JUMP JUMPDEST PUSH2 0xEC7 SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST PUSH2 0x2C37 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF44 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF68 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFB2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFC4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFD0 PUSH2 0x32C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x101E JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x10BB JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37EE20DD PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x37EE20DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1097 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BB SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x10D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x51D3 JUMP JUMPDEST PUSH2 0x10E1 DUP4 DUP4 PUSH2 0x3317 JUMP JUMPDEST PUSH2 0x10E9 PUSH2 0x3468 JUMP JUMPDEST PUSH2 0x10F1 PUSH2 0x2A09 JUMP JUMPDEST PUSH2 0x10F9 PUSH2 0x13EA JUMP JUMPDEST LT ISZERO PUSH2 0x1159 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4465706F7369742072656A6563746564202D205574696C697A6174696F6E2052 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x30BA32901E1036B4B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1162 DUP4 PUSH2 0x157C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1171 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x13AE5E29 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x11B3 SWAP1 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xEA9 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x35AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x50DA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1261 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1287 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5126 JUMP JUMPDEST PUSH2 0x1290 DUP3 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xFD0 DUP3 DUP3 PUSH1 0x1 PUSH2 0x315B JUMP JUMPDEST PUSH0 PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12DA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12FE SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x132 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 GT ISZERO PUSH2 0x1332 JUMPI PUSH2 0x132 SLOAD PUSH2 0x132C SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 PUSH2 0x5030 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x13D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB4F ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x35B6 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x147F JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1498 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1498 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x14FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x151C JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1524 PUSH2 0x35EB JUMP JUMPDEST PUSH2 0x1530 DUP6 DUP6 DUP6 DUP6 PUSH2 0x3619 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1575 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 DUP3 SUB PUSH2 0x15A4 JUMPI POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC90 PUSH2 0x15CD PUSH2 0x15B3 DUP4 PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x15BE PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x3806 JUMP JUMPDEST SWAP1 PUSH2 0x38A0 JUMP JUMPDEST PUSH2 0x38E1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x161B JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1641 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x522C JUMP JUMPDEST PUSH0 PUSH2 0x164B DUP3 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD SWAP2 SWAP3 POP SWAP1 PUSH32 0xE2EBFBED0DF9004EAE018A4AE91B24BAA0CD1D83F495FAB6DDE3A1493F9DC6C6 SWAP1 PUSH2 0x169C SWAP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH2 0x16BA JUMPI PUSH2 0xA21 PUSH2 0x15BE PUSH2 0xB1A JUMP JUMPDEST POP POP PUSH2 0x131 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D9 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x1F5F0A87 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0xEA9 SWAP1 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 SUB PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x1758 PUSH2 0x3567 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA08F2203 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1794 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17B8 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420656E6F7567682066756E647320617661696C61626C6520746F20636F PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x3B32B9103A34329029A1A9 PUSH1 0xA9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x182F PUSH2 0x1826 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x3900 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 SUB PUSH2 0x18A7 JUMPI PUSH2 0x184B DUP3 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1875 DUP2 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x195F JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 PUSH2 0x18BF DUP5 DUP4 PUSH2 0x5172 JUMP JUMPDEST SWAP1 POP PUSH2 0x1905 PUSH2 0x1900 DUP3 PUSH2 0x18D2 DUP7 DUP9 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH2 0x18F0 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP8 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x18FA SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP1 PUSH2 0x35B6 JUMP JUMPDEST PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x193B DUP2 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x333478C2835EFE2F226B0D334F71BDF18C977621845F20D21FFF75321FC8AB27 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFD0 PUSH2 0x3468 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A0A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A2E SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A60 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A76 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A88 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xEA9 PUSH2 0x3A6F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B0C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B64 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B7A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B8C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH2 0x1C36 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C07 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C2B SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1C92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6D706F6E656E74206E6F74206C696E6B656420746F207468697320506F6C PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1A58DE541BDBDB PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND MUL OR SWAP1 SSTORE PUSH2 0x1CC2 PUSH1 0x17 DUP5 PUSH2 0x3AAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CCF PUSH2 0x3567 JUMP JUMPDEST PUSH0 DUP3 GT PUSH2 0x1D32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20616D6F756E742073686F756C642062652067726561746572 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x103A3430B7103D32B93797 PUSH1 0xA9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1DA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742061207265676973746572656420626F72726F77657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1DBB DUP4 PUSH2 0x1DB3 PUSH2 0x249C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x3AFF JUMP JUMPDEST POP PUSH2 0x1DC5 DUP4 PUSH2 0x3BA3 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xA1AEB41F04A9A2AA1450E8EDD0FA1A0A7971FF65C7BBB7B2CA0379B9327EDBAF DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E00 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x1CC2 CALLER ADDRESS DUP6 PUSH2 0x1E16 PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 SWAP1 PUSH2 0x3BC1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130 DUP1 SLOAD PUSH2 0xA84 SWAP1 PUSH2 0x5043 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12FE PUSH2 0x1E44 PUSH2 0x287E JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EA4 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 PUSH2 0x2C01 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A2064656372656173656420616C6C6F77616E63652062656C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x77207A65726F PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F3C CALLER DUP6 PUSH2 0xEC7 DUP7 DUP6 PUSH2 0x5030 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0x2E57 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 SUB PUSH2 0x1F89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x1F91 PUSH2 0x3567 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP4 GT ISZERO PUSH2 0x2009 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43757272656E7420534352206C657373207468616E2074686520616D6F756E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x20796F752077616E7420746F20756E6C6F636B PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2014 PUSH2 0x1826 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP4 SWAP1 SUB PUSH2 0x203E JUMPI PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 PUSH2 0x2056 DUP6 DUP4 PUSH2 0x5030 JUMP JUMPDEST SWAP1 POP PUSH2 0x2091 PUSH2 0x1900 DUP3 PUSH2 0x2069 DUP8 DUP10 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH2 0x2087 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP8 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x18FA SWAP2 SWAP1 PUSH2 0x5030 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x20C7 DUP2 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x7B9D63CCBB37347CE0FE73E3663C640D22364D8C733839777F1729E59AF1967F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1CC2 DUP2 PUSH2 0x3BA3 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21BD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E1 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2213 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2229 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x223B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x2247 SWAP2 POP POP JUMP JUMPDEST DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2259 JUMPI PUSH2 0x2259 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x2283 JUMPI PUSH2 0x2267 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2297 JUMPI PUSH2 0x2297 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x22CA JUMPI PUSH2 0x22A5 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22DE JUMPI PUSH2 0x22DE PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x2315 JUMPI PUSH2 0x22EC DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2329 JUMPI PUSH2 0x2329 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x235D JUMPI PUSH2 0x2337 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CC2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2372 PUSH2 0x52AE JUMP JUMPDEST PUSH2 0x237D SWAP1 PUSH1 0x18 PUSH2 0x5172 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238E PUSH2 0x52AE JUMP JUMPDEST DUP4 PUSH2 0x3C5A JUMP JUMPDEST PUSH2 0x239C PUSH2 0x3567 JUMP JUMPDEST PUSH2 0x23A4 PUSH2 0x1169 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x16D1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND DUP2 SUB PUSH2 0x23E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x23ED PUSH2 0x3567 JUMP JUMPDEST DUP3 PUSH2 0x23FF DUP2 PUSH2 0x23FA PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x3CA4 JUMP JUMPDEST SWAP4 POP DUP4 PUSH0 SUB PUSH2 0x240F JUMPI SWAP1 POP PUSH2 0xA21 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x2432 DUP6 PUSH2 0x242A PUSH2 0x249C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x3CB9 JUMP JUMPDEST POP PUSH2 0x2444 PUSH2 0x243F DUP7 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x3BA3 JUMP JUMPDEST PUSH2 0x244E DUP5 DUP7 PUSH2 0x3D36 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x98697A4799DBD9DB66C7168304C43CBA77A27A50D2785625E09072E0D91FDD53 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2493 DUP6 DUP4 PUSH2 0x5030 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x252E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2552 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2586 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25AE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x2630 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x1E670A97 PUSH1 0xE2 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x260C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2630 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x26A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x526573657276653A206173736574206D616E6167657220646F65736E27742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D706C656D656E74732074686520726571756972656420696E74657266616365 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x26B8 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x27DB JUMPI DUP5 ISZERO PUSH2 0x2781 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH2 0x2713 SWAP2 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x274B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2750 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2763 JUMPI PUSH1 0x3 SWAP3 POP PUSH2 0x277A JUMP JUMPDEST PUSH2 0x277A DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP POP PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x27C0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST SWAP1 POP PUSH2 0x27D9 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP JUMPDEST PUSH2 0x135 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 POP DUP2 ISZERO PUSH2 0x2841 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x948CB719 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0x283F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST POP JUMPDEST PUSH2 0x284B DUP2 DUP8 PUSH2 0x3AAC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2908 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x522C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0xFD0 JUMPI PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x66C0F28249C4FC4DB79872A4405BE78A93F19C65AC9EF2F173867A149065BCF2 SWAP1 PUSH0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29E5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH0 CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2A6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2A81 PUSH2 0x2A79 DUP6 PUSH2 0x157C JUMP JUMPDEST PUSH2 0x23FA PUSH2 0xA27 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP4 SUB PUSH2 0x2A8F JUMPI DUP1 SWAP3 POP JUMPDEST DUP3 PUSH0 SUB PUSH2 0x2A9F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xA21 JUMP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x2AEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E74203E206D617820776974686472617761626C6500000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x2B8C JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9051C763 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x9051C763 SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B68 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8C SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x2BA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x51D3 JUMP JUMPDEST PUSH2 0x2BB2 DUP5 DUP5 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2BBA PUSH2 0x3468 JUMP JUMPDEST PUSH2 0x2BC4 DUP5 DUP5 PUSH2 0x3D36 JUMP JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xA21 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x2C1D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x2C9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20617070726F76652066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2CFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20617070726F766520746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH0 SWAP1 PUSH2 0xA21 SWAP1 PUSH2 0x15CD SWAP1 PUSH8 0x16345785D8A0000 SWAP1 PUSH2 0x15C7 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH0 PUSH2 0x1162 PUSH2 0x15CD PUSH2 0x2D9F DUP6 DUP6 PUSH2 0x3806 JUMP JUMPDEST DUP6 SLOAD PUSH2 0x15C7 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1162 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5533 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3FF0 JUMP JUMPDEST PUSH0 PUSH2 0x2DEA DUP5 DUP5 PUSH2 0x2853 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x2E51 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x2E44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20696E73756666696369656E7420616C6C6F77616E63650000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2E51 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x2C37 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x2EBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E736665722066726F6D20746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2F1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2F29 DUP4 DUP4 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x2F3F PUSH2 0x2F35 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 DUP5 PUSH2 0x41A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 DUP2 LT ISZERO PUSH2 0x2FBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E7366657220616D6F756E74206578636565647320 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x62616C616E6365 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2FC5 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x2FFB SWAP1 DUP5 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x3047 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30CE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30F2 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3126 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x313C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x314E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1CC2 DUP4 PUSH2 0x41C7 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x318E JUMPI PUSH2 0x1CC2 DUP4 PUSH2 0x4278 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x31E8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x31E5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x324B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x32B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP PUSH2 0x1CC2 DUP4 DUP4 DUP4 PUSH2 0x4313 JUMP JUMPDEST PUSH2 0x32CD PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x336D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP2 GT PUSH2 0x33D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20616D6F756E7420746F206D696E742073686F756C64206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x2067726561746572207468616E207A65726F PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x33E2 PUSH0 DUP4 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x33F9 DUP3 PUSH2 0x33EF PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x3CB9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3426 SWAP1 DUP5 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0x2D52 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x34A5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34C9 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x34E5 JUMPI PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH0 SWAP1 PUSH2 0x3514 SWAP1 DUP4 SWAP1 PUSH2 0x18FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV AND SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x3532 JUMPI PUSH2 0x352D DUP2 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x353B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xC0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0xEA9 DUP2 PUSH2 0x3BA3 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x35D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3611 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4380 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x363F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH0 DUP5 MLOAD GT PUSH2 0x368F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206E616D652063616E6E6F7420626520656D70747900000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP4 MLOAD GT PUSH2 0x36DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A2073796D626F6C2063616E6E6F7420626520656D7074790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x12F PUSH2 0x36EC DUP6 DUP3 PUSH2 0x5381 JUMP JUMPDEST POP PUSH2 0x130 PUSH2 0x36FA DUP5 DUP3 PUSH2 0x5381 JUMP JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR PUSH2 0x131 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x373A DUP5 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x374C DUP4 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH0 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH2 0x134 DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 SWAP1 SWAP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP8 DUP7 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP3 DUP8 AND PUSH5 0x100000000 MUL SWAP3 SWAP1 SWAP3 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP4 DUP8 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP9 AND SWAP6 SWAP1 SWAP7 AND SWAP5 SWAP1 SWAP5 OR SWAP6 SWAP1 SWAP6 OR AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH2 0x2E51 PUSH2 0x43B6 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP2 DUP2 MUL SWAP1 DUP2 DIV DUP3 EQ PUSH2 0x16CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 SLOAD PUSH0 SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF DUP1 DUP4 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x3834 JUMPI POP POP DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xA21 JUMP JUMPDEST DUP4 SLOAD PUSH0 SWAP1 PUSH2 0x384F SWAP1 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x543B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH2 0x2493 PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH4 0x1E13380 DUP4 PUSH2 0x3875 DUP9 PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x387F SWAP2 SWAP1 PUSH2 0x5457 JUMP JUMPDEST PUSH2 0x3889 SWAP2 SWAP1 PUSH2 0x546E JUMP JUMPDEST PUSH2 0x3893 SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST DUP7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x19D971E4FE8401E74000000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x38C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL SWAP2 MUL PUSH12 0x19D971E4FE8401E74000000 ADD DIV SWAP1 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP1 DUP3 DIV SWAP1 DUP3 MOD PUSH4 0x1DCD6500 DUP2 LT PUSH2 0xC93 JUMPI POP PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x391C JUMPI POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x3952 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3964 PUSH2 0x395F DUP4 DUP4 PUSH2 0x3806 JUMP JUMPDEST PUSH2 0x45CF JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL SWAP1 SWAP2 AND OR PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3A77 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x32FA CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3AB4 PUSH2 0x43B6 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3AC6 JUMPI PUSH2 0x3AC6 PUSH2 0x52AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH2 0x169C JUMP JUMPDEST PUSH0 PUSH2 0x3B0A DUP5 DUP4 PUSH2 0x3900 JUMP JUMPDEST PUSH0 PUSH2 0x3B15 DUP6 DUP6 PUSH2 0x4637 JUMP JUMPDEST SWAP1 POP PUSH2 0x3B20 DUP2 PUSH2 0x4655 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3B4D SWAP2 SWAP1 PUSH2 0x548D JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE DUP7 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV AND PUSH0 SUB SWAP1 POP PUSH2 0x3B9B JUMPI DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL OR DUP6 SSTORE JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3BB9 DUP2 PUSH2 0x3BAF PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x46BC JUMP JUMPDEST PUSH2 0xEA9 PUSH2 0x3468 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x2E51 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x47B7 JUMP JUMPDEST PUSH0 PUSH2 0xA21 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x5457 JUMP JUMPDEST PUSH0 PUSH2 0xA21 PUSH2 0x3C55 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x546E JUMP JUMPDEST PUSH2 0x488A JUMP JUMPDEST PUSH2 0x3C62 PUSH2 0x43B6 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3C74 JUMPI PUSH2 0x3C74 PUSH2 0x52AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH2 0x169C JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x3CB2 JUMPI DUP2 PUSH2 0x1162 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3CC4 DUP5 DUP4 PUSH2 0x3900 JUMP JUMPDEST PUSH0 PUSH2 0x3CCF DUP6 DUP6 PUSH2 0x4637 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CDA DUP2 PUSH2 0x4655 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3D07 SWAP2 SWAP1 PUSH2 0x54AC JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3D9A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526573657276653A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x3DA5 JUMPI POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3DAE PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DF2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E16 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x3E72 JUMPI PUSH2 0x3E29 DUP3 PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x3E33 SWAP1 DUP3 PUSH2 0x5172 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E72 JUMPI PUSH32 0x0 PUSH2 0x3E68 DUP3 DUP5 PUSH2 0x5030 JUMP JUMPDEST LT ISZERO PUSH2 0x3E72 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH2 0x1CC2 DUP4 DUP4 PUSH2 0x3E7F PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x49BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206275726E2066726F6D20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3EFB DUP3 PUSH0 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x3F12 DUP3 PUSH2 0x3F08 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x3AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 DUP2 LT ISZERO PUSH2 0x3F8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206275726E20616D6F756E7420657863656564732062616C61 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x6E6365 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3F94 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x3FE2 SWAP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x400C SWAP2 SWAP1 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4044 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4049 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x405A DUP7 DUP4 DUP4 DUP8 PUSH2 0x49EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x406C PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH2 0x4089 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO JUMPDEST DUP1 PUSH2 0x40A5 JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST DUP1 PUSH2 0x4135 JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5FCDCA37 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x5FCDCA37 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4111 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4135 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x1CC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73666572206E6F7420616C6C6F776564202D204C6971756964697479 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2050726F7669646572206E6F742077686974656C697374656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x3B9B PUSH2 0x15CD PUSH2 0x41B8 DUP7 DUP7 PUSH2 0x3806 JUMP JUMPDEST PUSH2 0x41C1 DUP6 PUSH2 0x37F1 JUMP JUMPDEST SWAP1 PUSH2 0x4A67 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x422D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4251 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEA9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x42E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x431C DUP4 PUSH2 0x4AA2 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x4328 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1CC2 JUMPI PUSH2 0x2E51 DUP4 DUP4 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x43A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x43AE PUSH2 0x4AE1 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4B07 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1F40 PUSH2 0xFFFF SWAP1 SWAP2 AND LT DUP1 ISZERO SWAP1 PUSH2 0x43DC JUMPI POP PUSH2 0x134 SLOAD PUSH2 0x32C8 PUSH2 0xFFFF SWAP1 SWAP2 AND GT ISZERO JUMPDEST PUSH2 0x4444 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206C6971756964697479526571756972656D656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x206D757374206265205B302E382C20312E335D PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1388 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND LT DUP1 ISZERO SWAP1 PUSH2 0x4478 JUMPI POP PUSH2 0x134 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO JUMPDEST PUSH2 0x44DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D61785574696C697A6174696F6E52617465206D PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x757374206265205B302E352C20315D PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x4552 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D696E5574696C697A6174696F6E52617465206D PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x757374206265205B302C20315D PUSH1 0x98 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1388 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20696E7465726E616C4C6F616E496E746572657374 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x52617465206D757374206265203C3D20353025 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x31322062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 PUSH2 0x1162 SWAP1 PUSH2 0x15CD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x41C1 DUP6 PUSH2 0x37F1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x46DF JUMPI PUSH2 0x2E51 DUP4 DUP4 DUP4 PUSH2 0x3CB9 JUMP JUMPDEST PUSH2 0x46E9 DUP4 DUP3 PUSH2 0x3900 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x46F5 DUP6 DUP5 PUSH2 0x2D8E JUMP JUMPDEST PUSH2 0x46FF SWAP2 SWAP1 PUSH2 0x54CB JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x472E SWAP1 PUSH2 0x395F SWAP1 PUSH2 0x4725 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x41C1 DUP5 PUSH2 0x37F1 JUMP JUMPDEST DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 DUP2 OR DUP6 SSTORE PUSH8 0x16345785D8A0000 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5363616C6520746F6F20736D616C6C2C2063616E206C65616420746F20726F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x6E64696E67206572726F7273 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x480B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4B35 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x482B JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x482B SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x1CC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x4901 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x49B7 JUMPI PUSH0 PUSH2 0x49A1 PUSH4 0x1014A0C2 PUSH1 0xE0 SHL DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4931 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x115C9C9BDC881C99599A5B1B1A5B99C81DD85B1B195D PUSH1 0x52 SHL SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH2 0x3FF0 JUMP JUMPDEST SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3B9B SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1CC2 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A5D JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4A56 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST POP DUP2 PUSH2 0x3B9B JUMP JUMPDEST PUSH2 0x3B9B DUP4 DUP4 PUSH2 0x4B43 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x4A88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH2 0x4AAB DUP2 PUSH2 0x4278 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4B2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4B6D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3B9B DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4B9F JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x4B53 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP2 SWAP1 PUSH2 0x4CCB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4B93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4C1B SWAP2 SWAP1 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4C55 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4C5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4C6B DUP8 DUP4 DUP4 DUP8 PUSH2 0x49EF JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C86 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1162 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x1162 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4C9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4D02 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4D0D DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D2B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1162 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D59 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH0 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x4D78 JUMPI PUSH2 0x4D78 PUSH2 0x4D36 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x4DA6 JUMPI PUSH2 0x4DA6 PUSH2 0x4D36 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x4DBD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4DE9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4DFE JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3B9B DUP5 DUP3 DUP6 ADD PUSH2 0x4D4A JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4E1C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4E27 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4E37 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E59 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E64 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4E7E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4E8A DUP6 DUP3 DUP7 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4EA7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4EBC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EC8 DUP8 DUP3 DUP9 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4EE3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EEF DUP8 DUP3 DUP9 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP5 SWAP8 SWAP5 SWAP7 POP POP POP POP PUSH1 0x40 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x60 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4F23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1162 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F3F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F5F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4CDD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4F8E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4FB6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x4 DUP2 LT PUSH2 0x4D0D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4FD5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4FE0 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5001 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x500C DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x5057 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC93 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5085 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1162 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1162 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1162 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4C69717569646974792050726F7669646572206E6F742077686974656C697374 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1959 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5225 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20426F72726F7765722063616E6E6F7420626520746865207A PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x65726F2061646472657373 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x5468652063616C6C6572206D757374206265206120626F72726F776572000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x52D6 JUMPI PUSH2 0x52D6 PUSH2 0x501C JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CC2 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5362 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x536E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x539A JUMPI PUSH2 0x539A PUSH2 0x4D36 JUMP JUMPDEST PUSH2 0x53AE DUP2 PUSH2 0x53A8 DUP5 SLOAD PUSH2 0x5043 JUMP JUMPDEST DUP5 PUSH2 0x533D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x53E0 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x53C9 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1575 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x540F JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x53EF JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x542C JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x5488 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 SLT PUSH0 DUP4 SLT DUP1 ISZERO DUP3 AND DUP3 ISZERO DUP3 AND OR ISZERO PUSH2 0x54EA JUMPI PUSH2 0x54EA PUSH2 0x501C JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65645543 TSTORE 0xD2 PUSH2 0xA4B9 0xB3 CALLDATASIZE BLOBHASH PUSH4 0xF7738A7A PUSH7 0x2AD9C84396D64B 0xE3 CALLDATASIZE MSTORE DUP5 0xBB PUSH32 0xA5041A2646970667358221220511D0766C9CCE108D2DA4FE4427B88CE01D079 EXTCODESIZE DUP1 EXTCODECOPY 0x2E SWAP3 SWAP4 0xBE PUSH12 0x7D932E47D864736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"1545:27062:51:-:0;;;1198:4:7;1155:48;;4041:60:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4086:11;;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;1794:1:59::1;1758:11;-1:-1:-1::0;;;;;1758:20:59::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1758:31:59::1;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;:::i;:::-;1751:45;::::0;:2:::1;:45;:::i;:::-;1731:65;::::0;-1:-1:-1;1545:27062:51;;-1:-1:-1;1545:27062:51;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;3056:2:88;5998:66:6;;;3038:21:88;3095:2;3075:18;;;3068:30;3134:34;3114:18;;;3107:62;-1:-1:-1;;;3185:18:88;;;3178:37;3232:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;3404:36:88;;;6174:28:6;;3392:2:88;3377:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:285::-;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;355:9;349:16;374:44;412:5;374:44;:::i;:::-;437:5;163:285;-1:-1:-1;;;163:285:88:o;745:273::-;813:6;866:2;854:9;845:7;841:23;837:32;834:52;;;882:1;879;872:12;834:52;914:9;908:16;964:4;957:5;953:16;946:5;943:27;933:55;;984:1;981;974:12;1023:127;1084:10;1079:3;1075:20;1072:1;1065:31;1115:4;1112:1;1105:15;1139:4;1136:1;1129:15;1155:262;1193:1;1227:4;1224:1;1220:12;1251:3;1241:134;;1297:10;1292:3;1288:20;1285:1;1278:31;1332:4;1329:1;1322:15;1360:4;1357:1;1350:15;1241:134;1407:3;1400:4;1397:1;1393:12;1389:22;1384:27;;;1155:262;;;;:::o;1422:375::-;1510:1;1528:5;1542:249;1563:1;1553:8;1550:15;1542:249;;;1613:4;1608:3;1604:14;1598:4;1595:24;1592:50;;;1622:18;;:::i;:::-;1672:1;1662:8;1658:16;1655:49;;;1686:16;;;;1655:49;1769:1;1765:16;;;;;1725:15;;1542:249;;;1422:375;;;;;;:::o;1802:902::-;1851:5;1881:8;1871:80;;-1:-1:-1;1922:1:88;1936:5;;1871:80;1970:4;1960:76;;-1:-1:-1;2007:1:88;2021:5;;1960:76;2052:4;2070:1;2065:59;;;;2138:1;2133:174;;;;2045:262;;2065:59;2095:1;2086:10;;2109:5;;;2133:174;2170:3;2160:8;2157:17;2154:43;;;2177:18;;:::i;:::-;-1:-1:-1;;2233:1:88;2219:16;;2292:5;;2045:262;;2391:2;2381:8;2378:16;2372:3;2366:4;2363:13;2359:36;2353:2;2343:8;2340:16;2335:2;2329:4;2326:12;2322:35;2319:77;2316:203;;;-1:-1:-1;2428:19:88;;;2504:5;;2316:203;2551:42;-1:-1:-1;;2576:8:88;2570:4;2551:42;:::i;:::-;2629:6;2625:1;2621:6;2617:19;2608:7;2605:32;2602:58;;;2640:18;;:::i;:::-;2678:20;;-1:-1:-1;1802:902:88;;;;;:::o;2709:140::-;2767:5;2796:47;2837:4;2827:8;2823:19;2817:4;2796:47;:::i;3262:184::-;1545:27062:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_4toWad_12623":{"entryPoint":15404,"id":12623,"parameterSlots":1,"returnSlots":1},"@__EToken_init_unchained_11726":{"entryPoint":13849,"id":11726,"parameterSlots":4,"returnSlots":0},"@__Pausable_init_1113":{"entryPoint":19207,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":19309,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":17280,"id":17875,"parameterSlots":0,"returnSlots":0},"@__Reserve_init_19744":{"entryPoint":13803,"id":19744,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":19169,"id":1008,"parameterSlots":0,"returnSlots":0},"@_approve_12389":{"entryPoint":11319,"id":12389,"parameterSlots":3,"returnSlots":0},"@_assetEarnings_12954":{"entryPoint":13741,"id":12954,"parameterSlots":1,"returnSlots":0},"@_authorizeUpgrade_17890":{"entryPoint":12374,"id":17890,"parameterSlots":1,"returnSlots":0},"@_beforeTokenTransfer_12439":{"entryPoint":16484,"id":12439,"parameterSlots":3,"returnSlots":0},"@_burn_12344":{"entryPoint":16015,"id":12344,"parameterSlots":2,"returnSlots":0},"@_callOptionalReturn_6429":{"entryPoint":18359,"id":6429,"parameterSlots":2,"returnSlots":0},"@_componentChanged_18094":{"entryPoint":15020,"id":18094,"parameterSlots":2,"returnSlots":0},"@_discreteChange_12971":{"entryPoint":15267,"id":12971,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_mint_12277":{"entryPoint":13079,"id":12277,"parameterSlots":2,"returnSlots":0},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":15450,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":14959,"id":1187,"parameterSlots":0,"returnSlots":0},"@_refillWallet_19793":{"entryPoint":18668,"id":19793,"parameterSlots":1,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":13671,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":17207,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_revert_6941":{"entryPoint":19267,"id":6941,"parameterSlots":2,"returnSlots":0},"@_setAssetManager_12608":{"entryPoint":null,"id":12608,"parameterSlots":1,"returnSlots":0},"@_setImplementation_510":{"entryPoint":17016,"id":510,"parameterSlots":1,"returnSlots":0},"@_spendAllowance_12075":{"entryPoint":11743,"id":12075,"parameterSlots":3,"returnSlots":0},"@_transferTo_19863":{"entryPoint":15670,"id":19863,"parameterSlots":2,"returnSlots":0},"@_transfer_12218":{"entryPoint":11863,"id":12218,"parameterSlots":3,"returnSlots":0},"@_unpause_1203":{"entryPoint":12997,"id":1203,"parameterSlots":0,"returnSlots":0},"@_updateTokenInterestRate_12500":{"entryPoint":13416,"id":12500,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":12635,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":17171,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":19106,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":16839,"id":17907,"parameterSlots":1,"returnSlots":0},"@_validateParameters_11809":{"entryPoint":17334,"id":11809,"parameterSlots":0,"returnSlots":0},"@_wadTo4_12638":{"entryPoint":15425,"id":12638,"parameterSlots":1,"returnSlots":1},"@addBorrower_13191":{"entryPoint":10393,"id":13191,"parameterSlots":1,"returnSlots":0},"@add_22719":{"entryPoint":15545,"id":22719,"parameterSlots":3,"returnSlots":1},"@allowance_11978":{"entryPoint":10323,"id":11978,"parameterSlots":2,"returnSlots":1},"@approve_11999":{"entryPoint":2821,"id":11999,"parameterSlots":2,"returnSlots":1},"@assetManager_12596":{"entryPoint":null,"id":12596,"parameterSlots":0,"returnSlots":1},"@balanceOf_11892":{"entryPoint":5500,"id":11892,"parameterSlots":1,"returnSlots":1},"@checkpoint_20110":{"entryPoint":9108,"id":20110,"parameterSlots":0,"returnSlots":0},"@currency_17973":{"entryPoint":10632,"id":17973,"parameterSlots":0,"returnSlots":1},"@decimals_11843":{"entryPoint":3260,"id":11843,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_12139":{"entryPoint":7850,"id":12139,"parameterSlots":2,"returnSlots":1},"@deposit_13027":{"entryPoint":4052,"id":13027,"parameterSlots":2,"returnSlots":1},"@discreteChange_22840":{"entryPoint":18108,"id":22840,"parameterSlots":3,"returnSlots":0},"@forwardToAssetManager_20131":{"entryPoint":2921,"id":20131,"parameterSlots":1,"returnSlots":1},"@functionCallWithValue_6766":{"entryPoint":19359,"id":6766,"parameterSlots":4,"returnSlots":1},"@functionCall_6702":{"entryPoint":19253,"id":6702,"parameterSlots":3,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":null,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":null,"id":2569,"parameterSlots":3,"returnSlots":1},"@functionDelegateCall_6829":{"entryPoint":11706,"id":6829,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_6858":{"entryPoint":16368,"id":6858,"parameterSlots":3,"returnSlots":1},"@fundsAvailableToLock_12586":{"entryPoint":7735,"id":12586,"parameterSlots":0,"returnSlots":1},"@fundsAvailable_12552":{"entryPoint":4764,"id":12552,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getCurrentScale_12522":{"entryPoint":5800,"id":12522,"parameterSlots":1,"returnSlots":1},"@getLoan_13407":{"entryPoint":3484,"id":13407,"parameterSlots":1,"returnSlots":1},"@getScale_22579":{"entryPoint":14342,"id":22579,"parameterSlots":2,"returnSlots":1},"@getScaledAmount_22606":{"entryPoint":11662,"id":22606,"parameterSlots":2,"returnSlots":1},"@getScaledUserBalanceAndSupply_11926":{"entryPoint":null,"id":11926,"parameterSlots":1,"returnSlots":2},"@increaseAllowance_12101":{"entryPoint":3756,"id":12101,"parameterSlots":2,"returnSlots":1},"@init_22635":{"entryPoint":null,"id":22635,"parameterSlots":1,"returnSlots":0},"@initialize_11655":{"entryPoint":5217,"id":11655,"parameterSlots":4,"returnSlots":0},"@internalLoanInterestRate_13418":{"entryPoint":9372,"id":13418,"parameterSlots":0,"returnSlots":1},"@internalLoan_13316":{"entryPoint":9134,"id":13316,"parameterSlots":2,"returnSlots":1},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@isContract_6630":{"entryPoint":null,"id":6630,"parameterSlots":1,"returnSlots":1},"@liquidityRequirement_12688":{"entryPoint":8493,"id":12688,"parameterSlots":0,"returnSlots":1},"@lockScr_12833":{"entryPoint":5913,"id":12833,"parameterSlots":2,"returnSlots":0},"@maxNegativeAdjustment_13240":{"entryPoint":2865,"id":13240,"parameterSlots":0,"returnSlots":1},"@maxUtilizationRate_12699":{"entryPoint":10366,"id":12699,"parameterSlots":0,"returnSlots":1},"@minUtilizationRate_12710":{"entryPoint":10761,"id":12710,"parameterSlots":0,"returnSlots":1},"@minValue_22862":{"entryPoint":11615,"id":22862,"parameterSlots":1,"returnSlots":1},"@min_7926":{"entryPoint":15524,"id":7926,"parameterSlots":2,"returnSlots":1},"@name_11819":{"entryPoint":2676,"id":11819,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":6560,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":4921,"id":1026,"parameterSlots":0,"returnSlots":1},"@rayDiv_23222":{"entryPoint":19047,"id":23222,"parameterSlots":2,"returnSlots":1},"@rayMul_23210":{"entryPoint":14496,"id":23210,"parameterSlots":2,"returnSlots":1},"@rayToWad_23232":{"entryPoint":14561,"id":23232,"parameterSlots":1,"returnSlots":1},"@rebalance_20064":{"entryPoint":5841,"id":20064,"parameterSlots":0,"returnSlots":0},"@recordEarnings_20097":{"entryPoint":4457,"id":20097,"parameterSlots":0,"returnSlots":0},"@removeBorrower_13226":{"entryPoint":5586,"id":13226,"parameterSlots":1,"returnSlots":0},"@repayLoan_13383":{"entryPoint":7367,"id":13383,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_6162":{"entryPoint":15297,"id":6162,"parameterSlots":4,"returnSlots":0},"@safeTransfer_6135":{"entryPoint":18879,"id":6135,"parameterSlots":3,"returnSlots":0},"@scaleAmountNow_22684":{"entryPoint":16807,"id":22684,"parameterSlots":3,"returnSlots":1},"@scaleAmount_22659":{"entryPoint":17975,"id":22659,"parameterSlots":2,"returnSlots":1},"@scaledBalanceOf_11905":{"entryPoint":null,"id":11905,"parameterSlots":1,"returnSlots":1},"@scaledTotalSupply_11939":{"entryPoint":null,"id":11939,"parameterSlots":0,"returnSlots":1},"@scrInterestRate_12664":{"entryPoint":null,"id":12664,"parameterSlots":0,"returnSlots":1},"@scr_12651":{"entryPoint":null,"id":12651,"parameterSlots":0,"returnSlots":1},"@setAssetManager_20043":{"entryPoint":9398,"id":20043,"parameterSlots":2,"returnSlots":0},"@setParam_13504":{"entryPoint":8512,"id":13504,"parameterSlots":2,"returnSlots":0},"@setWhitelist_13555":{"entryPoint":6804,"id":13555,"parameterSlots":1,"returnSlots":0},"@sub_22766":{"entryPoint":15103,"id":22766,"parameterSlots":3,"returnSlots":1},"@supportsInterface_11762":{"entryPoint":2502,"id":11762,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17931":{"entryPoint":11212,"id":17931,"parameterSlots":1,"returnSlots":1},"@symbol_11829":{"entryPoint":7719,"id":11829,"parameterSlots":0,"returnSlots":1},"@toUint112_9202":{"entryPoint":17871,"id":9202,"parameterSlots":1,"returnSlots":1},"@toUint128_9152":{"entryPoint":14748,"id":9152,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":18570,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint64_9352":{"entryPoint":14856,"id":9352,"parameterSlots":1,"returnSlots":1},"@toUint96_9252":{"entryPoint":18005,"id":9252,"parameterSlots":1,"returnSlots":1},"@tokenInterestRate_12677":{"entryPoint":2842,"id":12677,"parameterSlots":0,"returnSlots":1},"@totalSupply_11857":{"entryPoint":2900,"id":11857,"parameterSlots":0,"returnSlots":1},"@totalWithdrawable_13061":{"entryPoint":2599,"id":13061,"parameterSlots":0,"returnSlots":1},"@transferFrom_12032":{"entryPoint":3225,"id":12032,"parameterSlots":3,"returnSlots":1},"@transfer_11960":{"entryPoint":8006,"id":11960,"parameterSlots":2,"returnSlots":1},"@unlockScr_12943":{"entryPoint":8018,"id":12943,"parameterSlots":3,"returnSlots":0},"@unpause_17952":{"entryPoint":3788,"id":17952,"parameterSlots":0,"returnSlots":0},"@updateScale_22521":{"entryPoint":14592,"id":22521,"parameterSlots":2,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":4561,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":3526,"id":1048,"parameterSlots":1,"returnSlots":0},"@utilizationRate_12727":{"entryPoint":5098,"id":12727,"parameterSlots":0,"returnSlots":1},"@verifyCallResultFromTarget_2608":{"entryPoint":null,"id":2608,"parameterSlots":4,"returnSlots":1},"@verifyCallResultFromTarget_6897":{"entryPoint":18927,"id":6897,"parameterSlots":4,"returnSlots":1},"@wadDiv_23198":{"entryPoint":13750,"id":23198,"parameterSlots":2,"returnSlots":1},"@wadMul_23186":{"entryPoint":11265,"id":23186,"parameterSlots":2,"returnSlots":1},"@wadToRay_23242":{"entryPoint":14321,"id":23242,"parameterSlots":1,"returnSlots":1},"@whitelist_13565":{"entryPoint":null,"id":13565,"parameterSlots":0,"returnSlots":1},"@withdraw_13148":{"entryPoint":10786,"id":13148,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":19786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":19739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":20464,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":19978,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":20040,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":19697,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":20243,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":20920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":19574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":19929,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":20597,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool":{"entryPoint":20420,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_ILPWhitelist_$23596":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23434t_uint256":{"entryPoint":20389,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_int256_fromMemory":{"entryPoint":21013,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint256":{"entryPoint":20116,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":20302,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":20270,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_int256":{"entryPoint":20348,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":20666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":19613,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":21212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":20624,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":20869,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILPWhitelist_$23596__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19659,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03581280538719c2020c894a210ef9aa558c82c902fd12bce0931000f73b74ae__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03a1e1b89e58377f2c0f6a93d779f49357e1a1620aec4af8836f21e8fdf00fbd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09cd67821602a67e6869db7fdf6f889c81d8f4753f4bbab0d8ffed14a386f25a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_111ada2e996f715d2077bb2234aa57f237cb218f36507eb4780a69c700bee9ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1cbf7542358884c15d276707c7804fa59675a48013fdf3bc6c452d05bb62300a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1cf1ab238fe0c20d0965ab656551a00d67270e19d01bff76f89ab5be56d067ea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2376e8656d108fa259440a6257d5c2afd65e5925665da06a3ef148c4e812fffb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24ef78e89ef45c3eec4ad876eb521dca8aa5807bbc61071cdd2ffeab164da79e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21036,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3020e2e2e5d51ac5ca552375a258790bbdeb16e01029ecb426ea961f96df04d6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_33e71d7bfeeadcffefd2e7f551031f6769c33c0ba79cbf34d01052008213b61e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3406c0466d0912ad8f34c77eb032a772c722fa4ced2b9160a821ce7a76316ecb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20698,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3c6787565a0ce9e399f754cca5a3dff36739caf63c11aea68e06f0210b1b136d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20774,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_589184136a3b919d9f00ff2f2274337cfa9fb4d8f034bde634ff7a801349f9d6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_660103f2c97657862acfcfb2c2e75a895efcedaeb2e8c4df1f6eced083faf0ec__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20947,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73e0940cdd0dffdba87d1c2e460c0dadb528289849600fb24e2f2253f9b58f4d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_77f7550e99cfae6f48d896697b1fd5549402978fb8c71ca77dd0631d76531f0d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8f2f6229ccd48e6ded11f90b09020d2d605afd986dfc1dc96af3fe98ef412b14__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8fc949ae25110667b87c481d2b4db0ccd0143bf4577ebd2d92c71ac972ca62f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21111,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae4199242667364260c775cebec97ad3ad9108abef60e71dd3b366486b317dbe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b76e407d663bf824398ea9cf3672c614c9d61dd7fa70376ae2b86de2f90ab5d9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_babc3112dd6ff1c8e9dfffb357f2e4b17a7ff714d277263ea98972627be8be19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c092a48c5eeae749b2c36eb0157cd57f63b61df63925be968fc9a4b317f67bd1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ce2f886aa6f4a7c4a12260f96967c0c0bbf0de5a1ffbc7579742ee06be1b2f07__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d369f1e0591c8baf1c39294b2efa376640bb78056cd7ce3183f426fa44af6ddc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d4e62c43d6dc168374092f2c8d3a0a07ef5767b05389925edc989db39e9a46f7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21234,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e22d4b76cddf749021acbaffeb21586d2eddcc3413a241b2458b22b9d569598d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f4873caaa3c69fd270042095be0af896c3dfb019459ae29b1f19ebb714595cfd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_int256":{"entryPoint":21707,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint112":{"entryPoint":21676,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":20850,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":21614,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":21591,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint112":{"entryPoint":21645,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":20528,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint32":{"entryPoint":21563,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":21309,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":21377,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":20547,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"negate_t_int256":{"entryPoint":21186,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":20508,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":21166,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":19766,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":19677,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":20230,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:39231:88","nodeType":"YulBlock","src":"0:39231:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"598:76:88","nodeType":"YulBlock","src":"598:76:88","statements":[{"nativeSrc":"608:26:88","nodeType":"YulAssignment","src":"608:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"620:9:88","nodeType":"YulIdentifier","src":"620:9:88"},{"kind":"number","nativeSrc":"631:2:88","nodeType":"YulLiteral","src":"631:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"616:3:88","nodeType":"YulIdentifier","src":"616:3:88"},"nativeSrc":"616:18:88","nodeType":"YulFunctionCall","src":"616:18:88"},"variableNames":[{"name":"tail","nativeSrc":"608:4:88","nodeType":"YulIdentifier","src":"608:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"650:9:88","nodeType":"YulIdentifier","src":"650:9:88"},{"name":"value0","nativeSrc":"661:6:88","nodeType":"YulIdentifier","src":"661:6:88"}],"functionName":{"name":"mstore","nativeSrc":"643:6:88","nodeType":"YulIdentifier","src":"643:6:88"},"nativeSrc":"643:25:88","nodeType":"YulFunctionCall","src":"643:25:88"},"nativeSrc":"643:25:88","nodeType":"YulExpressionStatement","src":"643:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"497:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"567:9:88","nodeType":"YulTypedName","src":"567:9:88","type":""},{"name":"value0","nativeSrc":"578:6:88","nodeType":"YulTypedName","src":"578:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"589:4:88","nodeType":"YulTypedName","src":"589:4:88","type":""}],"src":"497:177:88"},{"body":{"nativeSrc":"729:239:88","nodeType":"YulBlock","src":"729:239:88","statements":[{"nativeSrc":"739:26:88","nodeType":"YulVariableDeclaration","src":"739:26:88","value":{"arguments":[{"name":"value","nativeSrc":"759:5:88","nodeType":"YulIdentifier","src":"759:5:88"}],"functionName":{"name":"mload","nativeSrc":"753:5:88","nodeType":"YulIdentifier","src":"753:5:88"},"nativeSrc":"753:12:88","nodeType":"YulFunctionCall","src":"753:12:88"},"variables":[{"name":"length","nativeSrc":"743:6:88","nodeType":"YulTypedName","src":"743:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"781:3:88","nodeType":"YulIdentifier","src":"781:3:88"},{"name":"length","nativeSrc":"786:6:88","nodeType":"YulIdentifier","src":"786:6:88"}],"functionName":{"name":"mstore","nativeSrc":"774:6:88","nodeType":"YulIdentifier","src":"774:6:88"},"nativeSrc":"774:19:88","nodeType":"YulFunctionCall","src":"774:19:88"},"nativeSrc":"774:19:88","nodeType":"YulExpressionStatement","src":"774:19:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"812:3:88","nodeType":"YulIdentifier","src":"812:3:88"},{"kind":"number","nativeSrc":"817:4:88","nodeType":"YulLiteral","src":"817:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"808:3:88","nodeType":"YulIdentifier","src":"808:3:88"},"nativeSrc":"808:14:88","nodeType":"YulFunctionCall","src":"808:14:88"},{"arguments":[{"name":"value","nativeSrc":"828:5:88","nodeType":"YulIdentifier","src":"828:5:88"},{"kind":"number","nativeSrc":"835:4:88","nodeType":"YulLiteral","src":"835:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"824:3:88","nodeType":"YulIdentifier","src":"824:3:88"},"nativeSrc":"824:16:88","nodeType":"YulFunctionCall","src":"824:16:88"},{"name":"length","nativeSrc":"842:6:88","nodeType":"YulIdentifier","src":"842:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"802:5:88","nodeType":"YulIdentifier","src":"802:5:88"},"nativeSrc":"802:47:88","nodeType":"YulFunctionCall","src":"802:47:88"},"nativeSrc":"802:47:88","nodeType":"YulExpressionStatement","src":"802:47:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"873:3:88","nodeType":"YulIdentifier","src":"873:3:88"},{"name":"length","nativeSrc":"878:6:88","nodeType":"YulIdentifier","src":"878:6:88"}],"functionName":{"name":"add","nativeSrc":"869:3:88","nodeType":"YulIdentifier","src":"869:3:88"},"nativeSrc":"869:16:88","nodeType":"YulFunctionCall","src":"869:16:88"},{"kind":"number","nativeSrc":"887:4:88","nodeType":"YulLiteral","src":"887:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"865:3:88","nodeType":"YulIdentifier","src":"865:3:88"},"nativeSrc":"865:27:88","nodeType":"YulFunctionCall","src":"865:27:88"},{"kind":"number","nativeSrc":"894:1:88","nodeType":"YulLiteral","src":"894:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"858:6:88","nodeType":"YulIdentifier","src":"858:6:88"},"nativeSrc":"858:38:88","nodeType":"YulFunctionCall","src":"858:38:88"},"nativeSrc":"858:38:88","nodeType":"YulExpressionStatement","src":"858:38:88"},{"nativeSrc":"905:57:88","nodeType":"YulAssignment","src":"905:57:88","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"920:3:88","nodeType":"YulIdentifier","src":"920:3:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"933:6:88","nodeType":"YulIdentifier","src":"933:6:88"},{"kind":"number","nativeSrc":"941:2:88","nodeType":"YulLiteral","src":"941:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"929:3:88","nodeType":"YulIdentifier","src":"929:3:88"},"nativeSrc":"929:15:88","nodeType":"YulFunctionCall","src":"929:15:88"},{"arguments":[{"kind":"number","nativeSrc":"950:2:88","nodeType":"YulLiteral","src":"950:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"946:3:88","nodeType":"YulIdentifier","src":"946:3:88"},"nativeSrc":"946:7:88","nodeType":"YulFunctionCall","src":"946:7:88"}],"functionName":{"name":"and","nativeSrc":"925:3:88","nodeType":"YulIdentifier","src":"925:3:88"},"nativeSrc":"925:29:88","nodeType":"YulFunctionCall","src":"925:29:88"}],"functionName":{"name":"add","nativeSrc":"916:3:88","nodeType":"YulIdentifier","src":"916:3:88"},"nativeSrc":"916:39:88","nodeType":"YulFunctionCall","src":"916:39:88"},{"kind":"number","nativeSrc":"957:4:88","nodeType":"YulLiteral","src":"957:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"912:3:88","nodeType":"YulIdentifier","src":"912:3:88"},"nativeSrc":"912:50:88","nodeType":"YulFunctionCall","src":"912:50:88"},"variableNames":[{"name":"end","nativeSrc":"905:3:88","nodeType":"YulIdentifier","src":"905:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"679:289:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"706:5:88","nodeType":"YulTypedName","src":"706:5:88","type":""},{"name":"pos","nativeSrc":"713:3:88","nodeType":"YulTypedName","src":"713:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"721:3:88","nodeType":"YulTypedName","src":"721:3:88","type":""}],"src":"679:289:88"},{"body":{"nativeSrc":"1094:99:88","nodeType":"YulBlock","src":"1094:99:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1111:9:88","nodeType":"YulIdentifier","src":"1111:9:88"},{"kind":"number","nativeSrc":"1122:2:88","nodeType":"YulLiteral","src":"1122:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1104:6:88","nodeType":"YulIdentifier","src":"1104:6:88"},"nativeSrc":"1104:21:88","nodeType":"YulFunctionCall","src":"1104:21:88"},"nativeSrc":"1104:21:88","nodeType":"YulExpressionStatement","src":"1104:21:88"},{"nativeSrc":"1134:53:88","nodeType":"YulAssignment","src":"1134:53:88","value":{"arguments":[{"name":"value0","nativeSrc":"1160:6:88","nodeType":"YulIdentifier","src":"1160:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"1172:9:88","nodeType":"YulIdentifier","src":"1172:9:88"},{"kind":"number","nativeSrc":"1183:2:88","nodeType":"YulLiteral","src":"1183:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1168:3:88","nodeType":"YulIdentifier","src":"1168:3:88"},"nativeSrc":"1168:18:88","nodeType":"YulFunctionCall","src":"1168:18:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1142:17:88","nodeType":"YulIdentifier","src":"1142:17:88"},"nativeSrc":"1142:45:88","nodeType":"YulFunctionCall","src":"1142:45:88"},"variableNames":[{"name":"tail","nativeSrc":"1134:4:88","nodeType":"YulIdentifier","src":"1134:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"973:220:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1063:9:88","nodeType":"YulTypedName","src":"1063:9:88","type":""},{"name":"value0","nativeSrc":"1074:6:88","nodeType":"YulTypedName","src":"1074:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1085:4:88","nodeType":"YulTypedName","src":"1085:4:88","type":""}],"src":"973:220:88"},{"body":{"nativeSrc":"1243:86:88","nodeType":"YulBlock","src":"1243:86:88","statements":[{"body":{"nativeSrc":"1307:16:88","nodeType":"YulBlock","src":"1307:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1316:1:88","nodeType":"YulLiteral","src":"1316:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1319:1:88","nodeType":"YulLiteral","src":"1319:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1309:6:88","nodeType":"YulIdentifier","src":"1309:6:88"},"nativeSrc":"1309:12:88","nodeType":"YulFunctionCall","src":"1309:12:88"},"nativeSrc":"1309:12:88","nodeType":"YulExpressionStatement","src":"1309:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1266:5:88","nodeType":"YulIdentifier","src":"1266:5:88"},{"arguments":[{"name":"value","nativeSrc":"1277:5:88","nodeType":"YulIdentifier","src":"1277:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1292:3:88","nodeType":"YulLiteral","src":"1292:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1297:1:88","nodeType":"YulLiteral","src":"1297:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1288:3:88","nodeType":"YulIdentifier","src":"1288:3:88"},"nativeSrc":"1288:11:88","nodeType":"YulFunctionCall","src":"1288:11:88"},{"kind":"number","nativeSrc":"1301:1:88","nodeType":"YulLiteral","src":"1301:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1284:3:88","nodeType":"YulIdentifier","src":"1284:3:88"},"nativeSrc":"1284:19:88","nodeType":"YulFunctionCall","src":"1284:19:88"}],"functionName":{"name":"and","nativeSrc":"1273:3:88","nodeType":"YulIdentifier","src":"1273:3:88"},"nativeSrc":"1273:31:88","nodeType":"YulFunctionCall","src":"1273:31:88"}],"functionName":{"name":"eq","nativeSrc":"1263:2:88","nodeType":"YulIdentifier","src":"1263:2:88"},"nativeSrc":"1263:42:88","nodeType":"YulFunctionCall","src":"1263:42:88"}],"functionName":{"name":"iszero","nativeSrc":"1256:6:88","nodeType":"YulIdentifier","src":"1256:6:88"},"nativeSrc":"1256:50:88","nodeType":"YulFunctionCall","src":"1256:50:88"},"nativeSrc":"1253:70:88","nodeType":"YulIf","src":"1253:70:88"}]},"name":"validator_revert_address","nativeSrc":"1198:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1232:5:88","nodeType":"YulTypedName","src":"1232:5:88","type":""}],"src":"1198:131:88"},{"body":{"nativeSrc":"1421:280:88","nodeType":"YulBlock","src":"1421:280:88","statements":[{"body":{"nativeSrc":"1467:16:88","nodeType":"YulBlock","src":"1467:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1476:1:88","nodeType":"YulLiteral","src":"1476:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1479:1:88","nodeType":"YulLiteral","src":"1479:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1469:6:88","nodeType":"YulIdentifier","src":"1469:6:88"},"nativeSrc":"1469:12:88","nodeType":"YulFunctionCall","src":"1469:12:88"},"nativeSrc":"1469:12:88","nodeType":"YulExpressionStatement","src":"1469:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1442:7:88","nodeType":"YulIdentifier","src":"1442:7:88"},{"name":"headStart","nativeSrc":"1451:9:88","nodeType":"YulIdentifier","src":"1451:9:88"}],"functionName":{"name":"sub","nativeSrc":"1438:3:88","nodeType":"YulIdentifier","src":"1438:3:88"},"nativeSrc":"1438:23:88","nodeType":"YulFunctionCall","src":"1438:23:88"},{"kind":"number","nativeSrc":"1463:2:88","nodeType":"YulLiteral","src":"1463:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1434:3:88","nodeType":"YulIdentifier","src":"1434:3:88"},"nativeSrc":"1434:32:88","nodeType":"YulFunctionCall","src":"1434:32:88"},"nativeSrc":"1431:52:88","nodeType":"YulIf","src":"1431:52:88"},{"nativeSrc":"1492:36:88","nodeType":"YulVariableDeclaration","src":"1492:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1518:9:88","nodeType":"YulIdentifier","src":"1518:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1505:12:88","nodeType":"YulIdentifier","src":"1505:12:88"},"nativeSrc":"1505:23:88","nodeType":"YulFunctionCall","src":"1505:23:88"},"variables":[{"name":"value","nativeSrc":"1496:5:88","nodeType":"YulTypedName","src":"1496:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1562:5:88","nodeType":"YulIdentifier","src":"1562:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1537:24:88","nodeType":"YulIdentifier","src":"1537:24:88"},"nativeSrc":"1537:31:88","nodeType":"YulFunctionCall","src":"1537:31:88"},"nativeSrc":"1537:31:88","nodeType":"YulExpressionStatement","src":"1537:31:88"},{"nativeSrc":"1577:15:88","nodeType":"YulAssignment","src":"1577:15:88","value":{"name":"value","nativeSrc":"1587:5:88","nodeType":"YulIdentifier","src":"1587:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1577:6:88","nodeType":"YulIdentifier","src":"1577:6:88"}]},{"nativeSrc":"1601:16:88","nodeType":"YulVariableDeclaration","src":"1601:16:88","value":{"kind":"number","nativeSrc":"1616:1:88","nodeType":"YulLiteral","src":"1616:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1605:7:88","nodeType":"YulTypedName","src":"1605:7:88","type":""}]},{"nativeSrc":"1626:43:88","nodeType":"YulAssignment","src":"1626:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1654:9:88","nodeType":"YulIdentifier","src":"1654:9:88"},{"kind":"number","nativeSrc":"1665:2:88","nodeType":"YulLiteral","src":"1665:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1650:3:88","nodeType":"YulIdentifier","src":"1650:3:88"},"nativeSrc":"1650:18:88","nodeType":"YulFunctionCall","src":"1650:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1637:12:88","nodeType":"YulIdentifier","src":"1637:12:88"},"nativeSrc":"1637:32:88","nodeType":"YulFunctionCall","src":"1637:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"1626:7:88","nodeType":"YulIdentifier","src":"1626:7:88"}]},{"nativeSrc":"1678:17:88","nodeType":"YulAssignment","src":"1678:17:88","value":{"name":"value_1","nativeSrc":"1688:7:88","nodeType":"YulIdentifier","src":"1688:7:88"},"variableNames":[{"name":"value1","nativeSrc":"1678:6:88","nodeType":"YulIdentifier","src":"1678:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1334:367:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1379:9:88","nodeType":"YulTypedName","src":"1379:9:88","type":""},{"name":"dataEnd","nativeSrc":"1390:7:88","nodeType":"YulTypedName","src":"1390:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1402:6:88","nodeType":"YulTypedName","src":"1402:6:88","type":""},{"name":"value1","nativeSrc":"1410:6:88","nodeType":"YulTypedName","src":"1410:6:88","type":""}],"src":"1334:367:88"},{"body":{"nativeSrc":"1776:177:88","nodeType":"YulBlock","src":"1776:177:88","statements":[{"body":{"nativeSrc":"1822:16:88","nodeType":"YulBlock","src":"1822:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1831:1:88","nodeType":"YulLiteral","src":"1831:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1834:1:88","nodeType":"YulLiteral","src":"1834:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1824:6:88","nodeType":"YulIdentifier","src":"1824:6:88"},"nativeSrc":"1824:12:88","nodeType":"YulFunctionCall","src":"1824:12:88"},"nativeSrc":"1824:12:88","nodeType":"YulExpressionStatement","src":"1824:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1797:7:88","nodeType":"YulIdentifier","src":"1797:7:88"},{"name":"headStart","nativeSrc":"1806:9:88","nodeType":"YulIdentifier","src":"1806:9:88"}],"functionName":{"name":"sub","nativeSrc":"1793:3:88","nodeType":"YulIdentifier","src":"1793:3:88"},"nativeSrc":"1793:23:88","nodeType":"YulFunctionCall","src":"1793:23:88"},{"kind":"number","nativeSrc":"1818:2:88","nodeType":"YulLiteral","src":"1818:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1789:3:88","nodeType":"YulIdentifier","src":"1789:3:88"},"nativeSrc":"1789:32:88","nodeType":"YulFunctionCall","src":"1789:32:88"},"nativeSrc":"1786:52:88","nodeType":"YulIf","src":"1786:52:88"},{"nativeSrc":"1847:36:88","nodeType":"YulVariableDeclaration","src":"1847:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1873:9:88","nodeType":"YulIdentifier","src":"1873:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1860:12:88","nodeType":"YulIdentifier","src":"1860:12:88"},"nativeSrc":"1860:23:88","nodeType":"YulFunctionCall","src":"1860:23:88"},"variables":[{"name":"value","nativeSrc":"1851:5:88","nodeType":"YulTypedName","src":"1851:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1917:5:88","nodeType":"YulIdentifier","src":"1917:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1892:24:88","nodeType":"YulIdentifier","src":"1892:24:88"},"nativeSrc":"1892:31:88","nodeType":"YulFunctionCall","src":"1892:31:88"},"nativeSrc":"1892:31:88","nodeType":"YulExpressionStatement","src":"1892:31:88"},{"nativeSrc":"1932:15:88","nodeType":"YulAssignment","src":"1932:15:88","value":{"name":"value","nativeSrc":"1942:5:88","nodeType":"YulIdentifier","src":"1942:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1932:6:88","nodeType":"YulIdentifier","src":"1932:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1706:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1742:9:88","nodeType":"YulTypedName","src":"1742:9:88","type":""},{"name":"dataEnd","nativeSrc":"1753:7:88","nodeType":"YulTypedName","src":"1753:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1765:6:88","nodeType":"YulTypedName","src":"1765:6:88","type":""}],"src":"1706:247:88"},{"body":{"nativeSrc":"2087:119:88","nodeType":"YulBlock","src":"2087:119:88","statements":[{"nativeSrc":"2097:26:88","nodeType":"YulAssignment","src":"2097:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2109:9:88","nodeType":"YulIdentifier","src":"2109:9:88"},{"kind":"number","nativeSrc":"2120:2:88","nodeType":"YulLiteral","src":"2120:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2105:3:88","nodeType":"YulIdentifier","src":"2105:3:88"},"nativeSrc":"2105:18:88","nodeType":"YulFunctionCall","src":"2105:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2097:4:88","nodeType":"YulIdentifier","src":"2097:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2139:9:88","nodeType":"YulIdentifier","src":"2139:9:88"},{"name":"value0","nativeSrc":"2150:6:88","nodeType":"YulIdentifier","src":"2150:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2132:6:88","nodeType":"YulIdentifier","src":"2132:6:88"},"nativeSrc":"2132:25:88","nodeType":"YulFunctionCall","src":"2132:25:88"},"nativeSrc":"2132:25:88","nodeType":"YulExpressionStatement","src":"2132:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2177:9:88","nodeType":"YulIdentifier","src":"2177:9:88"},{"kind":"number","nativeSrc":"2188:2:88","nodeType":"YulLiteral","src":"2188:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2173:3:88","nodeType":"YulIdentifier","src":"2173:3:88"},"nativeSrc":"2173:18:88","nodeType":"YulFunctionCall","src":"2173:18:88"},{"name":"value1","nativeSrc":"2193:6:88","nodeType":"YulIdentifier","src":"2193:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2166:6:88","nodeType":"YulIdentifier","src":"2166:6:88"},"nativeSrc":"2166:34:88","nodeType":"YulFunctionCall","src":"2166:34:88"},"nativeSrc":"2166:34:88","nodeType":"YulExpressionStatement","src":"2166:34:88"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"1958:248:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2048:9:88","nodeType":"YulTypedName","src":"2048:9:88","type":""},{"name":"value1","nativeSrc":"2059:6:88","nodeType":"YulTypedName","src":"2059:6:88","type":""},{"name":"value0","nativeSrc":"2067:6:88","nodeType":"YulTypedName","src":"2067:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2078:4:88","nodeType":"YulTypedName","src":"2078:4:88","type":""}],"src":"1958:248:88"},{"body":{"nativeSrc":"2243:95:88","nodeType":"YulBlock","src":"2243:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2260:1:88","nodeType":"YulLiteral","src":"2260:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2267:3:88","nodeType":"YulLiteral","src":"2267:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2272:10:88","nodeType":"YulLiteral","src":"2272:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2263:3:88","nodeType":"YulIdentifier","src":"2263:3:88"},"nativeSrc":"2263:20:88","nodeType":"YulFunctionCall","src":"2263:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2253:6:88","nodeType":"YulIdentifier","src":"2253:6:88"},"nativeSrc":"2253:31:88","nodeType":"YulFunctionCall","src":"2253:31:88"},"nativeSrc":"2253:31:88","nodeType":"YulExpressionStatement","src":"2253:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2300:1:88","nodeType":"YulLiteral","src":"2300:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2303:4:88","nodeType":"YulLiteral","src":"2303:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2293:6:88","nodeType":"YulIdentifier","src":"2293:6:88"},"nativeSrc":"2293:15:88","nodeType":"YulFunctionCall","src":"2293:15:88"},"nativeSrc":"2293:15:88","nodeType":"YulExpressionStatement","src":"2293:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2324:1:88","nodeType":"YulLiteral","src":"2324:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2327:4:88","nodeType":"YulLiteral","src":"2327:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2317:6:88","nodeType":"YulIdentifier","src":"2317:6:88"},"nativeSrc":"2317:15:88","nodeType":"YulFunctionCall","src":"2317:15:88"},"nativeSrc":"2317:15:88","nodeType":"YulExpressionStatement","src":"2317:15:88"}]},"name":"panic_error_0x41","nativeSrc":"2211:127:88","nodeType":"YulFunctionDefinition","src":"2211:127:88"},{"body":{"nativeSrc":"2395:836:88","nodeType":"YulBlock","src":"2395:836:88","statements":[{"body":{"nativeSrc":"2444:16:88","nodeType":"YulBlock","src":"2444:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2453:1:88","nodeType":"YulLiteral","src":"2453:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2456:1:88","nodeType":"YulLiteral","src":"2456:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2446:6:88","nodeType":"YulIdentifier","src":"2446:6:88"},"nativeSrc":"2446:12:88","nodeType":"YulFunctionCall","src":"2446:12:88"},"nativeSrc":"2446:12:88","nodeType":"YulExpressionStatement","src":"2446:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2423:6:88","nodeType":"YulIdentifier","src":"2423:6:88"},{"kind":"number","nativeSrc":"2431:4:88","nodeType":"YulLiteral","src":"2431:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2419:3:88","nodeType":"YulIdentifier","src":"2419:3:88"},"nativeSrc":"2419:17:88","nodeType":"YulFunctionCall","src":"2419:17:88"},{"name":"end","nativeSrc":"2438:3:88","nodeType":"YulIdentifier","src":"2438:3:88"}],"functionName":{"name":"slt","nativeSrc":"2415:3:88","nodeType":"YulIdentifier","src":"2415:3:88"},"nativeSrc":"2415:27:88","nodeType":"YulFunctionCall","src":"2415:27:88"}],"functionName":{"name":"iszero","nativeSrc":"2408:6:88","nodeType":"YulIdentifier","src":"2408:6:88"},"nativeSrc":"2408:35:88","nodeType":"YulFunctionCall","src":"2408:35:88"},"nativeSrc":"2405:55:88","nodeType":"YulIf","src":"2405:55:88"},{"nativeSrc":"2469:34:88","nodeType":"YulVariableDeclaration","src":"2469:34:88","value":{"arguments":[{"name":"offset","nativeSrc":"2496:6:88","nodeType":"YulIdentifier","src":"2496:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"2483:12:88","nodeType":"YulIdentifier","src":"2483:12:88"},"nativeSrc":"2483:20:88","nodeType":"YulFunctionCall","src":"2483:20:88"},"variables":[{"name":"length","nativeSrc":"2473:6:88","nodeType":"YulTypedName","src":"2473:6:88","type":""}]},{"nativeSrc":"2512:28:88","nodeType":"YulVariableDeclaration","src":"2512:28:88","value":{"arguments":[{"name":"offset","nativeSrc":"2527:6:88","nodeType":"YulIdentifier","src":"2527:6:88"},{"kind":"number","nativeSrc":"2535:4:88","nodeType":"YulLiteral","src":"2535:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2523:3:88","nodeType":"YulIdentifier","src":"2523:3:88"},"nativeSrc":"2523:17:88","nodeType":"YulFunctionCall","src":"2523:17:88"},"variables":[{"name":"src","nativeSrc":"2516:3:88","nodeType":"YulTypedName","src":"2516:3:88","type":""}]},{"nativeSrc":"2549:16:88","nodeType":"YulVariableDeclaration","src":"2549:16:88","value":{"kind":"number","nativeSrc":"2564:1:88","nodeType":"YulLiteral","src":"2564:1:88","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"2553:7:88","nodeType":"YulTypedName","src":"2553:7:88","type":""}]},{"nativeSrc":"2574:13:88","nodeType":"YulVariableDeclaration","src":"2574:13:88","value":{"kind":"number","nativeSrc":"2586:1:88","nodeType":"YulLiteral","src":"2586:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"2578:4:88","nodeType":"YulTypedName","src":"2578:4:88","type":""}]},{"body":{"nativeSrc":"2630:22:88","nodeType":"YulBlock","src":"2630:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2632:16:88","nodeType":"YulIdentifier","src":"2632:16:88"},"nativeSrc":"2632:18:88","nodeType":"YulFunctionCall","src":"2632:18:88"},"nativeSrc":"2632:18:88","nodeType":"YulExpressionStatement","src":"2632:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2602:6:88","nodeType":"YulIdentifier","src":"2602:6:88"},{"kind":"number","nativeSrc":"2610:18:88","nodeType":"YulLiteral","src":"2610:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2599:2:88","nodeType":"YulIdentifier","src":"2599:2:88"},"nativeSrc":"2599:30:88","nodeType":"YulFunctionCall","src":"2599:30:88"},"nativeSrc":"2596:56:88","nodeType":"YulIf","src":"2596:56:88"},{"nativeSrc":"2661:43:88","nodeType":"YulVariableDeclaration","src":"2661:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2683:6:88","nodeType":"YulIdentifier","src":"2683:6:88"},{"kind":"number","nativeSrc":"2691:2:88","nodeType":"YulLiteral","src":"2691:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2679:3:88","nodeType":"YulIdentifier","src":"2679:3:88"},"nativeSrc":"2679:15:88","nodeType":"YulFunctionCall","src":"2679:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2700:2:88","nodeType":"YulLiteral","src":"2700:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2696:3:88","nodeType":"YulIdentifier","src":"2696:3:88"},"nativeSrc":"2696:7:88","nodeType":"YulFunctionCall","src":"2696:7:88"}],"functionName":{"name":"and","nativeSrc":"2675:3:88","nodeType":"YulIdentifier","src":"2675:3:88"},"nativeSrc":"2675:29:88","nodeType":"YulFunctionCall","src":"2675:29:88"},"variables":[{"name":"result","nativeSrc":"2665:6:88","nodeType":"YulTypedName","src":"2665:6:88","type":""}]},{"nativeSrc":"2713:25:88","nodeType":"YulAssignment","src":"2713:25:88","value":{"arguments":[{"name":"result","nativeSrc":"2725:6:88","nodeType":"YulIdentifier","src":"2725:6:88"},{"kind":"number","nativeSrc":"2733:4:88","nodeType":"YulLiteral","src":"2733:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2721:3:88","nodeType":"YulIdentifier","src":"2721:3:88"},"nativeSrc":"2721:17:88","nodeType":"YulFunctionCall","src":"2721:17:88"},"variableNames":[{"name":"size","nativeSrc":"2713:4:88","nodeType":"YulIdentifier","src":"2713:4:88"}]},{"nativeSrc":"2747:15:88","nodeType":"YulVariableDeclaration","src":"2747:15:88","value":{"kind":"number","nativeSrc":"2761:1:88","nodeType":"YulLiteral","src":"2761:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"2751:6:88","nodeType":"YulTypedName","src":"2751:6:88","type":""}]},{"nativeSrc":"2771:19:88","nodeType":"YulAssignment","src":"2771:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"2787:2:88","nodeType":"YulLiteral","src":"2787:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2781:5:88","nodeType":"YulIdentifier","src":"2781:5:88"},"nativeSrc":"2781:9:88","nodeType":"YulFunctionCall","src":"2781:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"2771:6:88","nodeType":"YulIdentifier","src":"2771:6:88"}]},{"nativeSrc":"2799:60:88","nodeType":"YulVariableDeclaration","src":"2799:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"2821:6:88","nodeType":"YulIdentifier","src":"2821:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"2837:6:88","nodeType":"YulIdentifier","src":"2837:6:88"},{"kind":"number","nativeSrc":"2845:2:88","nodeType":"YulLiteral","src":"2845:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2833:3:88","nodeType":"YulIdentifier","src":"2833:3:88"},"nativeSrc":"2833:15:88","nodeType":"YulFunctionCall","src":"2833:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2854:2:88","nodeType":"YulLiteral","src":"2854:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2850:3:88","nodeType":"YulIdentifier","src":"2850:3:88"},"nativeSrc":"2850:7:88","nodeType":"YulFunctionCall","src":"2850:7:88"}],"functionName":{"name":"and","nativeSrc":"2829:3:88","nodeType":"YulIdentifier","src":"2829:3:88"},"nativeSrc":"2829:29:88","nodeType":"YulFunctionCall","src":"2829:29:88"}],"functionName":{"name":"add","nativeSrc":"2817:3:88","nodeType":"YulIdentifier","src":"2817:3:88"},"nativeSrc":"2817:42:88","nodeType":"YulFunctionCall","src":"2817:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"2803:10:88","nodeType":"YulTypedName","src":"2803:10:88","type":""}]},{"body":{"nativeSrc":"2934:22:88","nodeType":"YulBlock","src":"2934:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2936:16:88","nodeType":"YulIdentifier","src":"2936:16:88"},"nativeSrc":"2936:18:88","nodeType":"YulFunctionCall","src":"2936:18:88"},"nativeSrc":"2936:18:88","nodeType":"YulExpressionStatement","src":"2936:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2877:10:88","nodeType":"YulIdentifier","src":"2877:10:88"},{"kind":"number","nativeSrc":"2889:18:88","nodeType":"YulLiteral","src":"2889:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2874:2:88","nodeType":"YulIdentifier","src":"2874:2:88"},"nativeSrc":"2874:34:88","nodeType":"YulFunctionCall","src":"2874:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2913:10:88","nodeType":"YulIdentifier","src":"2913:10:88"},{"name":"memPtr","nativeSrc":"2925:6:88","nodeType":"YulIdentifier","src":"2925:6:88"}],"functionName":{"name":"lt","nativeSrc":"2910:2:88","nodeType":"YulIdentifier","src":"2910:2:88"},"nativeSrc":"2910:22:88","nodeType":"YulFunctionCall","src":"2910:22:88"}],"functionName":{"name":"or","nativeSrc":"2871:2:88","nodeType":"YulIdentifier","src":"2871:2:88"},"nativeSrc":"2871:62:88","nodeType":"YulFunctionCall","src":"2871:62:88"},"nativeSrc":"2868:88:88","nodeType":"YulIf","src":"2868:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2972:2:88","nodeType":"YulLiteral","src":"2972:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2976:10:88","nodeType":"YulIdentifier","src":"2976:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2965:6:88","nodeType":"YulIdentifier","src":"2965:6:88"},"nativeSrc":"2965:22:88","nodeType":"YulFunctionCall","src":"2965:22:88"},"nativeSrc":"2965:22:88","nodeType":"YulExpressionStatement","src":"2965:22:88"},{"nativeSrc":"2996:17:88","nodeType":"YulAssignment","src":"2996:17:88","value":{"name":"memPtr","nativeSrc":"3007:6:88","nodeType":"YulIdentifier","src":"3007:6:88"},"variableNames":[{"name":"array_1","nativeSrc":"2996:7:88","nodeType":"YulIdentifier","src":"2996:7:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3029:6:88","nodeType":"YulIdentifier","src":"3029:6:88"},{"name":"length","nativeSrc":"3037:6:88","nodeType":"YulIdentifier","src":"3037:6:88"}],"functionName":{"name":"mstore","nativeSrc":"3022:6:88","nodeType":"YulIdentifier","src":"3022:6:88"},"nativeSrc":"3022:22:88","nodeType":"YulFunctionCall","src":"3022:22:88"},"nativeSrc":"3022:22:88","nodeType":"YulExpressionStatement","src":"3022:22:88"},{"body":{"nativeSrc":"3082:16:88","nodeType":"YulBlock","src":"3082:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3091:1:88","nodeType":"YulLiteral","src":"3091:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3094:1:88","nodeType":"YulLiteral","src":"3094:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3084:6:88","nodeType":"YulIdentifier","src":"3084:6:88"},"nativeSrc":"3084:12:88","nodeType":"YulFunctionCall","src":"3084:12:88"},"nativeSrc":"3084:12:88","nodeType":"YulExpressionStatement","src":"3084:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3063:3:88","nodeType":"YulIdentifier","src":"3063:3:88"},{"name":"length","nativeSrc":"3068:6:88","nodeType":"YulIdentifier","src":"3068:6:88"}],"functionName":{"name":"add","nativeSrc":"3059:3:88","nodeType":"YulIdentifier","src":"3059:3:88"},"nativeSrc":"3059:16:88","nodeType":"YulFunctionCall","src":"3059:16:88"},{"name":"end","nativeSrc":"3077:3:88","nodeType":"YulIdentifier","src":"3077:3:88"}],"functionName":{"name":"gt","nativeSrc":"3056:2:88","nodeType":"YulIdentifier","src":"3056:2:88"},"nativeSrc":"3056:25:88","nodeType":"YulFunctionCall","src":"3056:25:88"},"nativeSrc":"3053:45:88","nodeType":"YulIf","src":"3053:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3124:6:88","nodeType":"YulIdentifier","src":"3124:6:88"},{"kind":"number","nativeSrc":"3132:4:88","nodeType":"YulLiteral","src":"3132:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3120:3:88","nodeType":"YulIdentifier","src":"3120:3:88"},"nativeSrc":"3120:17:88","nodeType":"YulFunctionCall","src":"3120:17:88"},{"name":"src","nativeSrc":"3139:3:88","nodeType":"YulIdentifier","src":"3139:3:88"},{"name":"length","nativeSrc":"3144:6:88","nodeType":"YulIdentifier","src":"3144:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"3107:12:88","nodeType":"YulIdentifier","src":"3107:12:88"},"nativeSrc":"3107:44:88","nodeType":"YulFunctionCall","src":"3107:44:88"},"nativeSrc":"3107:44:88","nodeType":"YulExpressionStatement","src":"3107:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3175:6:88","nodeType":"YulIdentifier","src":"3175:6:88"},{"name":"length","nativeSrc":"3183:6:88","nodeType":"YulIdentifier","src":"3183:6:88"}],"functionName":{"name":"add","nativeSrc":"3171:3:88","nodeType":"YulIdentifier","src":"3171:3:88"},"nativeSrc":"3171:19:88","nodeType":"YulFunctionCall","src":"3171:19:88"},{"kind":"number","nativeSrc":"3192:4:88","nodeType":"YulLiteral","src":"3192:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3167:3:88","nodeType":"YulIdentifier","src":"3167:3:88"},"nativeSrc":"3167:30:88","nodeType":"YulFunctionCall","src":"3167:30:88"},{"kind":"number","nativeSrc":"3199:1:88","nodeType":"YulLiteral","src":"3199:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3160:6:88","nodeType":"YulIdentifier","src":"3160:6:88"},"nativeSrc":"3160:41:88","nodeType":"YulFunctionCall","src":"3160:41:88"},"nativeSrc":"3160:41:88","nodeType":"YulExpressionStatement","src":"3160:41:88"},{"nativeSrc":"3210:15:88","nodeType":"YulAssignment","src":"3210:15:88","value":{"name":"memPtr","nativeSrc":"3219:6:88","nodeType":"YulIdentifier","src":"3219:6:88"},"variableNames":[{"name":"array","nativeSrc":"3210:5:88","nodeType":"YulIdentifier","src":"3210:5:88"}]}]},"name":"abi_decode_bytes","nativeSrc":"2343:888:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2369:6:88","nodeType":"YulTypedName","src":"2369:6:88","type":""},{"name":"end","nativeSrc":"2377:3:88","nodeType":"YulTypedName","src":"2377:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2385:5:88","nodeType":"YulTypedName","src":"2385:5:88","type":""}],"src":"2343:888:88"},{"body":{"nativeSrc":"3315:241:88","nodeType":"YulBlock","src":"3315:241:88","statements":[{"body":{"nativeSrc":"3361:16:88","nodeType":"YulBlock","src":"3361:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3370:1:88","nodeType":"YulLiteral","src":"3370:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3373:1:88","nodeType":"YulLiteral","src":"3373:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3363:6:88","nodeType":"YulIdentifier","src":"3363:6:88"},"nativeSrc":"3363:12:88","nodeType":"YulFunctionCall","src":"3363:12:88"},"nativeSrc":"3363:12:88","nodeType":"YulExpressionStatement","src":"3363:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3336:7:88","nodeType":"YulIdentifier","src":"3336:7:88"},{"name":"headStart","nativeSrc":"3345:9:88","nodeType":"YulIdentifier","src":"3345:9:88"}],"functionName":{"name":"sub","nativeSrc":"3332:3:88","nodeType":"YulIdentifier","src":"3332:3:88"},"nativeSrc":"3332:23:88","nodeType":"YulFunctionCall","src":"3332:23:88"},{"kind":"number","nativeSrc":"3357:2:88","nodeType":"YulLiteral","src":"3357:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3328:3:88","nodeType":"YulIdentifier","src":"3328:3:88"},"nativeSrc":"3328:32:88","nodeType":"YulFunctionCall","src":"3328:32:88"},"nativeSrc":"3325:52:88","nodeType":"YulIf","src":"3325:52:88"},{"nativeSrc":"3386:37:88","nodeType":"YulVariableDeclaration","src":"3386:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3413:9:88","nodeType":"YulIdentifier","src":"3413:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3400:12:88","nodeType":"YulIdentifier","src":"3400:12:88"},"nativeSrc":"3400:23:88","nodeType":"YulFunctionCall","src":"3400:23:88"},"variables":[{"name":"offset","nativeSrc":"3390:6:88","nodeType":"YulTypedName","src":"3390:6:88","type":""}]},{"body":{"nativeSrc":"3466:16:88","nodeType":"YulBlock","src":"3466:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3475:1:88","nodeType":"YulLiteral","src":"3475:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3478:1:88","nodeType":"YulLiteral","src":"3478:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3468:6:88","nodeType":"YulIdentifier","src":"3468:6:88"},"nativeSrc":"3468:12:88","nodeType":"YulFunctionCall","src":"3468:12:88"},"nativeSrc":"3468:12:88","nodeType":"YulExpressionStatement","src":"3468:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3438:6:88","nodeType":"YulIdentifier","src":"3438:6:88"},{"kind":"number","nativeSrc":"3446:18:88","nodeType":"YulLiteral","src":"3446:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3435:2:88","nodeType":"YulIdentifier","src":"3435:2:88"},"nativeSrc":"3435:30:88","nodeType":"YulFunctionCall","src":"3435:30:88"},"nativeSrc":"3432:50:88","nodeType":"YulIf","src":"3432:50:88"},{"nativeSrc":"3491:59:88","nodeType":"YulAssignment","src":"3491:59:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3522:9:88","nodeType":"YulIdentifier","src":"3522:9:88"},{"name":"offset","nativeSrc":"3533:6:88","nodeType":"YulIdentifier","src":"3533:6:88"}],"functionName":{"name":"add","nativeSrc":"3518:3:88","nodeType":"YulIdentifier","src":"3518:3:88"},"nativeSrc":"3518:22:88","nodeType":"YulFunctionCall","src":"3518:22:88"},{"name":"dataEnd","nativeSrc":"3542:7:88","nodeType":"YulIdentifier","src":"3542:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3501:16:88","nodeType":"YulIdentifier","src":"3501:16:88"},"nativeSrc":"3501:49:88","nodeType":"YulFunctionCall","src":"3501:49:88"},"variableNames":[{"name":"value0","nativeSrc":"3491:6:88","nodeType":"YulIdentifier","src":"3491:6:88"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nativeSrc":"3236:320:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3281:9:88","nodeType":"YulTypedName","src":"3281:9:88","type":""},{"name":"dataEnd","nativeSrc":"3292:7:88","nodeType":"YulTypedName","src":"3292:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3304:6:88","nodeType":"YulTypedName","src":"3304:6:88","type":""}],"src":"3236:320:88"},{"body":{"nativeSrc":"3680:99:88","nodeType":"YulBlock","src":"3680:99:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3697:9:88","nodeType":"YulIdentifier","src":"3697:9:88"},{"kind":"number","nativeSrc":"3708:2:88","nodeType":"YulLiteral","src":"3708:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3690:6:88","nodeType":"YulIdentifier","src":"3690:6:88"},"nativeSrc":"3690:21:88","nodeType":"YulFunctionCall","src":"3690:21:88"},"nativeSrc":"3690:21:88","nodeType":"YulExpressionStatement","src":"3690:21:88"},{"nativeSrc":"3720:53:88","nodeType":"YulAssignment","src":"3720:53:88","value":{"arguments":[{"name":"value0","nativeSrc":"3746:6:88","nodeType":"YulIdentifier","src":"3746:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"3758:9:88","nodeType":"YulIdentifier","src":"3758:9:88"},{"kind":"number","nativeSrc":"3769:2:88","nodeType":"YulLiteral","src":"3769:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3754:3:88","nodeType":"YulIdentifier","src":"3754:3:88"},"nativeSrc":"3754:18:88","nodeType":"YulFunctionCall","src":"3754:18:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3728:17:88","nodeType":"YulIdentifier","src":"3728:17:88"},"nativeSrc":"3728:45:88","nodeType":"YulFunctionCall","src":"3728:45:88"},"variableNames":[{"name":"tail","nativeSrc":"3720:4:88","nodeType":"YulIdentifier","src":"3720:4:88"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3561:218:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3649:9:88","nodeType":"YulTypedName","src":"3649:9:88","type":""},{"name":"value0","nativeSrc":"3660:6:88","nodeType":"YulTypedName","src":"3660:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3671:4:88","nodeType":"YulTypedName","src":"3671:4:88","type":""}],"src":"3561:218:88"},{"body":{"nativeSrc":"3888:404:88","nodeType":"YulBlock","src":"3888:404:88","statements":[{"body":{"nativeSrc":"3934:16:88","nodeType":"YulBlock","src":"3934:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3943:1:88","nodeType":"YulLiteral","src":"3943:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3946:1:88","nodeType":"YulLiteral","src":"3946:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3936:6:88","nodeType":"YulIdentifier","src":"3936:6:88"},"nativeSrc":"3936:12:88","nodeType":"YulFunctionCall","src":"3936:12:88"},"nativeSrc":"3936:12:88","nodeType":"YulExpressionStatement","src":"3936:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3909:7:88","nodeType":"YulIdentifier","src":"3909:7:88"},{"name":"headStart","nativeSrc":"3918:9:88","nodeType":"YulIdentifier","src":"3918:9:88"}],"functionName":{"name":"sub","nativeSrc":"3905:3:88","nodeType":"YulIdentifier","src":"3905:3:88"},"nativeSrc":"3905:23:88","nodeType":"YulFunctionCall","src":"3905:23:88"},{"kind":"number","nativeSrc":"3930:2:88","nodeType":"YulLiteral","src":"3930:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3901:3:88","nodeType":"YulIdentifier","src":"3901:3:88"},"nativeSrc":"3901:32:88","nodeType":"YulFunctionCall","src":"3901:32:88"},"nativeSrc":"3898:52:88","nodeType":"YulIf","src":"3898:52:88"},{"nativeSrc":"3959:36:88","nodeType":"YulVariableDeclaration","src":"3959:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3985:9:88","nodeType":"YulIdentifier","src":"3985:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3972:12:88","nodeType":"YulIdentifier","src":"3972:12:88"},"nativeSrc":"3972:23:88","nodeType":"YulFunctionCall","src":"3972:23:88"},"variables":[{"name":"value","nativeSrc":"3963:5:88","nodeType":"YulTypedName","src":"3963:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4029:5:88","nodeType":"YulIdentifier","src":"4029:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4004:24:88","nodeType":"YulIdentifier","src":"4004:24:88"},"nativeSrc":"4004:31:88","nodeType":"YulFunctionCall","src":"4004:31:88"},"nativeSrc":"4004:31:88","nodeType":"YulExpressionStatement","src":"4004:31:88"},{"nativeSrc":"4044:15:88","nodeType":"YulAssignment","src":"4044:15:88","value":{"name":"value","nativeSrc":"4054:5:88","nodeType":"YulIdentifier","src":"4054:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4044:6:88","nodeType":"YulIdentifier","src":"4044:6:88"}]},{"nativeSrc":"4068:47:88","nodeType":"YulVariableDeclaration","src":"4068:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4100:9:88","nodeType":"YulIdentifier","src":"4100:9:88"},{"kind":"number","nativeSrc":"4111:2:88","nodeType":"YulLiteral","src":"4111:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4096:3:88","nodeType":"YulIdentifier","src":"4096:3:88"},"nativeSrc":"4096:18:88","nodeType":"YulFunctionCall","src":"4096:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4083:12:88","nodeType":"YulIdentifier","src":"4083:12:88"},"nativeSrc":"4083:32:88","nodeType":"YulFunctionCall","src":"4083:32:88"},"variables":[{"name":"value_1","nativeSrc":"4072:7:88","nodeType":"YulTypedName","src":"4072:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4149:7:88","nodeType":"YulIdentifier","src":"4149:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4124:24:88","nodeType":"YulIdentifier","src":"4124:24:88"},"nativeSrc":"4124:33:88","nodeType":"YulFunctionCall","src":"4124:33:88"},"nativeSrc":"4124:33:88","nodeType":"YulExpressionStatement","src":"4124:33:88"},{"nativeSrc":"4166:17:88","nodeType":"YulAssignment","src":"4166:17:88","value":{"name":"value_1","nativeSrc":"4176:7:88","nodeType":"YulIdentifier","src":"4176:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4166:6:88","nodeType":"YulIdentifier","src":"4166:6:88"}]},{"nativeSrc":"4192:16:88","nodeType":"YulVariableDeclaration","src":"4192:16:88","value":{"kind":"number","nativeSrc":"4207:1:88","nodeType":"YulLiteral","src":"4207:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"4196:7:88","nodeType":"YulTypedName","src":"4196:7:88","type":""}]},{"nativeSrc":"4217:43:88","nodeType":"YulAssignment","src":"4217:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4245:9:88","nodeType":"YulIdentifier","src":"4245:9:88"},{"kind":"number","nativeSrc":"4256:2:88","nodeType":"YulLiteral","src":"4256:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4241:3:88","nodeType":"YulIdentifier","src":"4241:3:88"},"nativeSrc":"4241:18:88","nodeType":"YulFunctionCall","src":"4241:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4228:12:88","nodeType":"YulIdentifier","src":"4228:12:88"},"nativeSrc":"4228:32:88","nodeType":"YulFunctionCall","src":"4228:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"4217:7:88","nodeType":"YulIdentifier","src":"4217:7:88"}]},{"nativeSrc":"4269:17:88","nodeType":"YulAssignment","src":"4269:17:88","value":{"name":"value_2","nativeSrc":"4279:7:88","nodeType":"YulIdentifier","src":"4279:7:88"},"variableNames":[{"name":"value2","nativeSrc":"4269:6:88","nodeType":"YulIdentifier","src":"4269:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3784:508:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3838:9:88","nodeType":"YulTypedName","src":"3838:9:88","type":""},{"name":"dataEnd","nativeSrc":"3849:7:88","nodeType":"YulTypedName","src":"3849:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3861:6:88","nodeType":"YulTypedName","src":"3861:6:88","type":""},{"name":"value1","nativeSrc":"3869:6:88","nodeType":"YulTypedName","src":"3869:6:88","type":""},{"name":"value2","nativeSrc":"3877:6:88","nodeType":"YulTypedName","src":"3877:6:88","type":""}],"src":"3784:508:88"},{"body":{"nativeSrc":"4394:87:88","nodeType":"YulBlock","src":"4394:87:88","statements":[{"nativeSrc":"4404:26:88","nodeType":"YulAssignment","src":"4404:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4416:9:88","nodeType":"YulIdentifier","src":"4416:9:88"},{"kind":"number","nativeSrc":"4427:2:88","nodeType":"YulLiteral","src":"4427:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4412:3:88","nodeType":"YulIdentifier","src":"4412:3:88"},"nativeSrc":"4412:18:88","nodeType":"YulFunctionCall","src":"4412:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4404:4:88","nodeType":"YulIdentifier","src":"4404:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4446:9:88","nodeType":"YulIdentifier","src":"4446:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4461:6:88","nodeType":"YulIdentifier","src":"4461:6:88"},{"kind":"number","nativeSrc":"4469:4:88","nodeType":"YulLiteral","src":"4469:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4457:3:88","nodeType":"YulIdentifier","src":"4457:3:88"},"nativeSrc":"4457:17:88","nodeType":"YulFunctionCall","src":"4457:17:88"}],"functionName":{"name":"mstore","nativeSrc":"4439:6:88","nodeType":"YulIdentifier","src":"4439:6:88"},"nativeSrc":"4439:36:88","nodeType":"YulFunctionCall","src":"4439:36:88"},"nativeSrc":"4439:36:88","nodeType":"YulExpressionStatement","src":"4439:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4297:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4363:9:88","nodeType":"YulTypedName","src":"4363:9:88","type":""},{"name":"value0","nativeSrc":"4374:6:88","nodeType":"YulTypedName","src":"4374:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4385:4:88","nodeType":"YulTypedName","src":"4385:4:88","type":""}],"src":"4297:184:88"},{"body":{"nativeSrc":"4608:102:88","nodeType":"YulBlock","src":"4608:102:88","statements":[{"nativeSrc":"4618:26:88","nodeType":"YulAssignment","src":"4618:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4630:9:88","nodeType":"YulIdentifier","src":"4630:9:88"},{"kind":"number","nativeSrc":"4641:2:88","nodeType":"YulLiteral","src":"4641:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4626:3:88","nodeType":"YulIdentifier","src":"4626:3:88"},"nativeSrc":"4626:18:88","nodeType":"YulFunctionCall","src":"4626:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4618:4:88","nodeType":"YulIdentifier","src":"4618:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4660:9:88","nodeType":"YulIdentifier","src":"4660:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4675:6:88","nodeType":"YulIdentifier","src":"4675:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4691:3:88","nodeType":"YulLiteral","src":"4691:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4696:1:88","nodeType":"YulLiteral","src":"4696:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4687:3:88","nodeType":"YulIdentifier","src":"4687:3:88"},"nativeSrc":"4687:11:88","nodeType":"YulFunctionCall","src":"4687:11:88"},{"kind":"number","nativeSrc":"4700:1:88","nodeType":"YulLiteral","src":"4700:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4683:3:88","nodeType":"YulIdentifier","src":"4683:3:88"},"nativeSrc":"4683:19:88","nodeType":"YulFunctionCall","src":"4683:19:88"}],"functionName":{"name":"and","nativeSrc":"4671:3:88","nodeType":"YulIdentifier","src":"4671:3:88"},"nativeSrc":"4671:32:88","nodeType":"YulFunctionCall","src":"4671:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4653:6:88","nodeType":"YulIdentifier","src":"4653:6:88"},"nativeSrc":"4653:51:88","nodeType":"YulFunctionCall","src":"4653:51:88"},"nativeSrc":"4653:51:88","nodeType":"YulExpressionStatement","src":"4653:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"4486:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4577:9:88","nodeType":"YulTypedName","src":"4577:9:88","type":""},{"name":"value0","nativeSrc":"4588:6:88","nodeType":"YulTypedName","src":"4588:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4599:4:88","nodeType":"YulTypedName","src":"4599:4:88","type":""}],"src":"4486:224:88"},{"body":{"nativeSrc":"4811:359:88","nodeType":"YulBlock","src":"4811:359:88","statements":[{"body":{"nativeSrc":"4857:16:88","nodeType":"YulBlock","src":"4857:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4866:1:88","nodeType":"YulLiteral","src":"4866:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4869:1:88","nodeType":"YulLiteral","src":"4869:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4859:6:88","nodeType":"YulIdentifier","src":"4859:6:88"},"nativeSrc":"4859:12:88","nodeType":"YulFunctionCall","src":"4859:12:88"},"nativeSrc":"4859:12:88","nodeType":"YulExpressionStatement","src":"4859:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4832:7:88","nodeType":"YulIdentifier","src":"4832:7:88"},{"name":"headStart","nativeSrc":"4841:9:88","nodeType":"YulIdentifier","src":"4841:9:88"}],"functionName":{"name":"sub","nativeSrc":"4828:3:88","nodeType":"YulIdentifier","src":"4828:3:88"},"nativeSrc":"4828:23:88","nodeType":"YulFunctionCall","src":"4828:23:88"},{"kind":"number","nativeSrc":"4853:2:88","nodeType":"YulLiteral","src":"4853:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4824:3:88","nodeType":"YulIdentifier","src":"4824:3:88"},"nativeSrc":"4824:32:88","nodeType":"YulFunctionCall","src":"4824:32:88"},"nativeSrc":"4821:52:88","nodeType":"YulIf","src":"4821:52:88"},{"nativeSrc":"4882:36:88","nodeType":"YulVariableDeclaration","src":"4882:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4908:9:88","nodeType":"YulIdentifier","src":"4908:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4895:12:88","nodeType":"YulIdentifier","src":"4895:12:88"},"nativeSrc":"4895:23:88","nodeType":"YulFunctionCall","src":"4895:23:88"},"variables":[{"name":"value","nativeSrc":"4886:5:88","nodeType":"YulTypedName","src":"4886:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4952:5:88","nodeType":"YulIdentifier","src":"4952:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4927:24:88","nodeType":"YulIdentifier","src":"4927:24:88"},"nativeSrc":"4927:31:88","nodeType":"YulFunctionCall","src":"4927:31:88"},"nativeSrc":"4927:31:88","nodeType":"YulExpressionStatement","src":"4927:31:88"},{"nativeSrc":"4967:15:88","nodeType":"YulAssignment","src":"4967:15:88","value":{"name":"value","nativeSrc":"4977:5:88","nodeType":"YulIdentifier","src":"4977:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4967:6:88","nodeType":"YulIdentifier","src":"4967:6:88"}]},{"nativeSrc":"4991:46:88","nodeType":"YulVariableDeclaration","src":"4991:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5022:9:88","nodeType":"YulIdentifier","src":"5022:9:88"},{"kind":"number","nativeSrc":"5033:2:88","nodeType":"YulLiteral","src":"5033:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5018:3:88","nodeType":"YulIdentifier","src":"5018:3:88"},"nativeSrc":"5018:18:88","nodeType":"YulFunctionCall","src":"5018:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5005:12:88","nodeType":"YulIdentifier","src":"5005:12:88"},"nativeSrc":"5005:32:88","nodeType":"YulFunctionCall","src":"5005:32:88"},"variables":[{"name":"offset","nativeSrc":"4995:6:88","nodeType":"YulTypedName","src":"4995:6:88","type":""}]},{"body":{"nativeSrc":"5080:16:88","nodeType":"YulBlock","src":"5080:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5089:1:88","nodeType":"YulLiteral","src":"5089:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5092:1:88","nodeType":"YulLiteral","src":"5092:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5082:6:88","nodeType":"YulIdentifier","src":"5082:6:88"},"nativeSrc":"5082:12:88","nodeType":"YulFunctionCall","src":"5082:12:88"},"nativeSrc":"5082:12:88","nodeType":"YulExpressionStatement","src":"5082:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5052:6:88","nodeType":"YulIdentifier","src":"5052:6:88"},{"kind":"number","nativeSrc":"5060:18:88","nodeType":"YulLiteral","src":"5060:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5049:2:88","nodeType":"YulIdentifier","src":"5049:2:88"},"nativeSrc":"5049:30:88","nodeType":"YulFunctionCall","src":"5049:30:88"},"nativeSrc":"5046:50:88","nodeType":"YulIf","src":"5046:50:88"},{"nativeSrc":"5105:59:88","nodeType":"YulAssignment","src":"5105:59:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5136:9:88","nodeType":"YulIdentifier","src":"5136:9:88"},{"name":"offset","nativeSrc":"5147:6:88","nodeType":"YulIdentifier","src":"5147:6:88"}],"functionName":{"name":"add","nativeSrc":"5132:3:88","nodeType":"YulIdentifier","src":"5132:3:88"},"nativeSrc":"5132:22:88","nodeType":"YulFunctionCall","src":"5132:22:88"},{"name":"dataEnd","nativeSrc":"5156:7:88","nodeType":"YulIdentifier","src":"5156:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"5115:16:88","nodeType":"YulIdentifier","src":"5115:16:88"},"nativeSrc":"5115:49:88","nodeType":"YulFunctionCall","src":"5115:49:88"},"variableNames":[{"name":"value1","nativeSrc":"5105:6:88","nodeType":"YulIdentifier","src":"5105:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"4715:455:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4769:9:88","nodeType":"YulTypedName","src":"4769:9:88","type":""},{"name":"dataEnd","nativeSrc":"4780:7:88","nodeType":"YulTypedName","src":"4780:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4792:6:88","nodeType":"YulTypedName","src":"4792:6:88","type":""},{"name":"value1","nativeSrc":"4800:6:88","nodeType":"YulTypedName","src":"4800:6:88","type":""}],"src":"4715:455:88"},{"body":{"nativeSrc":"5276:76:88","nodeType":"YulBlock","src":"5276:76:88","statements":[{"nativeSrc":"5286:26:88","nodeType":"YulAssignment","src":"5286:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5298:9:88","nodeType":"YulIdentifier","src":"5298:9:88"},{"kind":"number","nativeSrc":"5309:2:88","nodeType":"YulLiteral","src":"5309:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5294:3:88","nodeType":"YulIdentifier","src":"5294:3:88"},"nativeSrc":"5294:18:88","nodeType":"YulFunctionCall","src":"5294:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5286:4:88","nodeType":"YulIdentifier","src":"5286:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5328:9:88","nodeType":"YulIdentifier","src":"5328:9:88"},{"name":"value0","nativeSrc":"5339:6:88","nodeType":"YulIdentifier","src":"5339:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5321:6:88","nodeType":"YulIdentifier","src":"5321:6:88"},"nativeSrc":"5321:25:88","nodeType":"YulFunctionCall","src":"5321:25:88"},"nativeSrc":"5321:25:88","nodeType":"YulExpressionStatement","src":"5321:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"5175:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5245:9:88","nodeType":"YulTypedName","src":"5245:9:88","type":""},{"name":"value0","nativeSrc":"5256:6:88","nodeType":"YulTypedName","src":"5256:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5267:4:88","nodeType":"YulTypedName","src":"5267:4:88","type":""}],"src":"5175:177:88"},{"body":{"nativeSrc":"5498:630:88","nodeType":"YulBlock","src":"5498:630:88","statements":[{"body":{"nativeSrc":"5545:16:88","nodeType":"YulBlock","src":"5545:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5554:1:88","nodeType":"YulLiteral","src":"5554:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5557:1:88","nodeType":"YulLiteral","src":"5557:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5547:6:88","nodeType":"YulIdentifier","src":"5547:6:88"},"nativeSrc":"5547:12:88","nodeType":"YulFunctionCall","src":"5547:12:88"},"nativeSrc":"5547:12:88","nodeType":"YulExpressionStatement","src":"5547:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5519:7:88","nodeType":"YulIdentifier","src":"5519:7:88"},{"name":"headStart","nativeSrc":"5528:9:88","nodeType":"YulIdentifier","src":"5528:9:88"}],"functionName":{"name":"sub","nativeSrc":"5515:3:88","nodeType":"YulIdentifier","src":"5515:3:88"},"nativeSrc":"5515:23:88","nodeType":"YulFunctionCall","src":"5515:23:88"},{"kind":"number","nativeSrc":"5540:3:88","nodeType":"YulLiteral","src":"5540:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"5511:3:88","nodeType":"YulIdentifier","src":"5511:3:88"},"nativeSrc":"5511:33:88","nodeType":"YulFunctionCall","src":"5511:33:88"},"nativeSrc":"5508:53:88","nodeType":"YulIf","src":"5508:53:88"},{"nativeSrc":"5570:37:88","nodeType":"YulVariableDeclaration","src":"5570:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5597:9:88","nodeType":"YulIdentifier","src":"5597:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5584:12:88","nodeType":"YulIdentifier","src":"5584:12:88"},"nativeSrc":"5584:23:88","nodeType":"YulFunctionCall","src":"5584:23:88"},"variables":[{"name":"offset","nativeSrc":"5574:6:88","nodeType":"YulTypedName","src":"5574:6:88","type":""}]},{"body":{"nativeSrc":"5650:16:88","nodeType":"YulBlock","src":"5650:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5659:1:88","nodeType":"YulLiteral","src":"5659:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5662:1:88","nodeType":"YulLiteral","src":"5662:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5652:6:88","nodeType":"YulIdentifier","src":"5652:6:88"},"nativeSrc":"5652:12:88","nodeType":"YulFunctionCall","src":"5652:12:88"},"nativeSrc":"5652:12:88","nodeType":"YulExpressionStatement","src":"5652:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5622:6:88","nodeType":"YulIdentifier","src":"5622:6:88"},{"kind":"number","nativeSrc":"5630:18:88","nodeType":"YulLiteral","src":"5630:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5619:2:88","nodeType":"YulIdentifier","src":"5619:2:88"},"nativeSrc":"5619:30:88","nodeType":"YulFunctionCall","src":"5619:30:88"},"nativeSrc":"5616:50:88","nodeType":"YulIf","src":"5616:50:88"},{"nativeSrc":"5675:59:88","nodeType":"YulAssignment","src":"5675:59:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5706:9:88","nodeType":"YulIdentifier","src":"5706:9:88"},{"name":"offset","nativeSrc":"5717:6:88","nodeType":"YulIdentifier","src":"5717:6:88"}],"functionName":{"name":"add","nativeSrc":"5702:3:88","nodeType":"YulIdentifier","src":"5702:3:88"},"nativeSrc":"5702:22:88","nodeType":"YulFunctionCall","src":"5702:22:88"},{"name":"dataEnd","nativeSrc":"5726:7:88","nodeType":"YulIdentifier","src":"5726:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"5685:16:88","nodeType":"YulIdentifier","src":"5685:16:88"},"nativeSrc":"5685:49:88","nodeType":"YulFunctionCall","src":"5685:49:88"},"variableNames":[{"name":"value0","nativeSrc":"5675:6:88","nodeType":"YulIdentifier","src":"5675:6:88"}]},{"nativeSrc":"5743:48:88","nodeType":"YulVariableDeclaration","src":"5743:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5776:9:88","nodeType":"YulIdentifier","src":"5776:9:88"},{"kind":"number","nativeSrc":"5787:2:88","nodeType":"YulLiteral","src":"5787:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5772:3:88","nodeType":"YulIdentifier","src":"5772:3:88"},"nativeSrc":"5772:18:88","nodeType":"YulFunctionCall","src":"5772:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5759:12:88","nodeType":"YulIdentifier","src":"5759:12:88"},"nativeSrc":"5759:32:88","nodeType":"YulFunctionCall","src":"5759:32:88"},"variables":[{"name":"offset_1","nativeSrc":"5747:8:88","nodeType":"YulTypedName","src":"5747:8:88","type":""}]},{"body":{"nativeSrc":"5836:16:88","nodeType":"YulBlock","src":"5836:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5845:1:88","nodeType":"YulLiteral","src":"5845:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5848:1:88","nodeType":"YulLiteral","src":"5848:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5838:6:88","nodeType":"YulIdentifier","src":"5838:6:88"},"nativeSrc":"5838:12:88","nodeType":"YulFunctionCall","src":"5838:12:88"},"nativeSrc":"5838:12:88","nodeType":"YulExpressionStatement","src":"5838:12:88"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"5806:8:88","nodeType":"YulIdentifier","src":"5806:8:88"},{"kind":"number","nativeSrc":"5816:18:88","nodeType":"YulLiteral","src":"5816:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5803:2:88","nodeType":"YulIdentifier","src":"5803:2:88"},"nativeSrc":"5803:32:88","nodeType":"YulFunctionCall","src":"5803:32:88"},"nativeSrc":"5800:52:88","nodeType":"YulIf","src":"5800:52:88"},{"nativeSrc":"5861:61:88","nodeType":"YulAssignment","src":"5861:61:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5892:9:88","nodeType":"YulIdentifier","src":"5892:9:88"},{"name":"offset_1","nativeSrc":"5903:8:88","nodeType":"YulIdentifier","src":"5903:8:88"}],"functionName":{"name":"add","nativeSrc":"5888:3:88","nodeType":"YulIdentifier","src":"5888:3:88"},"nativeSrc":"5888:24:88","nodeType":"YulFunctionCall","src":"5888:24:88"},{"name":"dataEnd","nativeSrc":"5914:7:88","nodeType":"YulIdentifier","src":"5914:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"5871:16:88","nodeType":"YulIdentifier","src":"5871:16:88"},"nativeSrc":"5871:51:88","nodeType":"YulFunctionCall","src":"5871:51:88"},"variableNames":[{"name":"value1","nativeSrc":"5861:6:88","nodeType":"YulIdentifier","src":"5861:6:88"}]},{"nativeSrc":"5931:14:88","nodeType":"YulVariableDeclaration","src":"5931:14:88","value":{"kind":"number","nativeSrc":"5944:1:88","nodeType":"YulLiteral","src":"5944:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5935:5:88","nodeType":"YulTypedName","src":"5935:5:88","type":""}]},{"nativeSrc":"5954:41:88","nodeType":"YulAssignment","src":"5954:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5980:9:88","nodeType":"YulIdentifier","src":"5980:9:88"},{"kind":"number","nativeSrc":"5991:2:88","nodeType":"YulLiteral","src":"5991:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5976:3:88","nodeType":"YulIdentifier","src":"5976:3:88"},"nativeSrc":"5976:18:88","nodeType":"YulFunctionCall","src":"5976:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5963:12:88","nodeType":"YulIdentifier","src":"5963:12:88"},"nativeSrc":"5963:32:88","nodeType":"YulFunctionCall","src":"5963:32:88"},"variableNames":[{"name":"value","nativeSrc":"5954:5:88","nodeType":"YulIdentifier","src":"5954:5:88"}]},{"nativeSrc":"6004:15:88","nodeType":"YulAssignment","src":"6004:15:88","value":{"name":"value","nativeSrc":"6014:5:88","nodeType":"YulIdentifier","src":"6014:5:88"},"variableNames":[{"name":"value2","nativeSrc":"6004:6:88","nodeType":"YulIdentifier","src":"6004:6:88"}]},{"nativeSrc":"6028:16:88","nodeType":"YulVariableDeclaration","src":"6028:16:88","value":{"kind":"number","nativeSrc":"6043:1:88","nodeType":"YulLiteral","src":"6043:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6032:7:88","nodeType":"YulTypedName","src":"6032:7:88","type":""}]},{"nativeSrc":"6053:43:88","nodeType":"YulAssignment","src":"6053:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6081:9:88","nodeType":"YulIdentifier","src":"6081:9:88"},{"kind":"number","nativeSrc":"6092:2:88","nodeType":"YulLiteral","src":"6092:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6077:3:88","nodeType":"YulIdentifier","src":"6077:3:88"},"nativeSrc":"6077:18:88","nodeType":"YulFunctionCall","src":"6077:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6064:12:88","nodeType":"YulIdentifier","src":"6064:12:88"},"nativeSrc":"6064:32:88","nodeType":"YulFunctionCall","src":"6064:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"6053:7:88","nodeType":"YulIdentifier","src":"6053:7:88"}]},{"nativeSrc":"6105:17:88","nodeType":"YulAssignment","src":"6105:17:88","value":{"name":"value_1","nativeSrc":"6115:7:88","nodeType":"YulIdentifier","src":"6115:7:88"},"variableNames":[{"name":"value3","nativeSrc":"6105:6:88","nodeType":"YulIdentifier","src":"6105:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint256","nativeSrc":"5357:771:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5440:9:88","nodeType":"YulTypedName","src":"5440:9:88","type":""},{"name":"dataEnd","nativeSrc":"5451:7:88","nodeType":"YulTypedName","src":"5451:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5463:6:88","nodeType":"YulTypedName","src":"5463:6:88","type":""},{"name":"value1","nativeSrc":"5471:6:88","nodeType":"YulTypedName","src":"5471:6:88","type":""},{"name":"value2","nativeSrc":"5479:6:88","nodeType":"YulTypedName","src":"5479:6:88","type":""},{"name":"value3","nativeSrc":"5487:6:88","nodeType":"YulTypedName","src":"5487:6:88","type":""}],"src":"5357:771:88"},{"body":{"nativeSrc":"6175:76:88","nodeType":"YulBlock","src":"6175:76:88","statements":[{"body":{"nativeSrc":"6229:16:88","nodeType":"YulBlock","src":"6229:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6238:1:88","nodeType":"YulLiteral","src":"6238:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6241:1:88","nodeType":"YulLiteral","src":"6241:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6231:6:88","nodeType":"YulIdentifier","src":"6231:6:88"},"nativeSrc":"6231:12:88","nodeType":"YulFunctionCall","src":"6231:12:88"},"nativeSrc":"6231:12:88","nodeType":"YulExpressionStatement","src":"6231:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6198:5:88","nodeType":"YulIdentifier","src":"6198:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6219:5:88","nodeType":"YulIdentifier","src":"6219:5:88"}],"functionName":{"name":"iszero","nativeSrc":"6212:6:88","nodeType":"YulIdentifier","src":"6212:6:88"},"nativeSrc":"6212:13:88","nodeType":"YulFunctionCall","src":"6212:13:88"}],"functionName":{"name":"iszero","nativeSrc":"6205:6:88","nodeType":"YulIdentifier","src":"6205:6:88"},"nativeSrc":"6205:21:88","nodeType":"YulFunctionCall","src":"6205:21:88"}],"functionName":{"name":"eq","nativeSrc":"6195:2:88","nodeType":"YulIdentifier","src":"6195:2:88"},"nativeSrc":"6195:32:88","nodeType":"YulFunctionCall","src":"6195:32:88"}],"functionName":{"name":"iszero","nativeSrc":"6188:6:88","nodeType":"YulIdentifier","src":"6188:6:88"},"nativeSrc":"6188:40:88","nodeType":"YulFunctionCall","src":"6188:40:88"},"nativeSrc":"6185:60:88","nodeType":"YulIf","src":"6185:60:88"}]},"name":"validator_revert_bool","nativeSrc":"6133:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6164:5:88","nodeType":"YulTypedName","src":"6164:5:88","type":""}],"src":"6133:118:88"},{"body":{"nativeSrc":"6323:174:88","nodeType":"YulBlock","src":"6323:174:88","statements":[{"body":{"nativeSrc":"6369:16:88","nodeType":"YulBlock","src":"6369:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6378:1:88","nodeType":"YulLiteral","src":"6378:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6381:1:88","nodeType":"YulLiteral","src":"6381:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6371:6:88","nodeType":"YulIdentifier","src":"6371:6:88"},"nativeSrc":"6371:12:88","nodeType":"YulFunctionCall","src":"6371:12:88"},"nativeSrc":"6371:12:88","nodeType":"YulExpressionStatement","src":"6371:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6344:7:88","nodeType":"YulIdentifier","src":"6344:7:88"},{"name":"headStart","nativeSrc":"6353:9:88","nodeType":"YulIdentifier","src":"6353:9:88"}],"functionName":{"name":"sub","nativeSrc":"6340:3:88","nodeType":"YulIdentifier","src":"6340:3:88"},"nativeSrc":"6340:23:88","nodeType":"YulFunctionCall","src":"6340:23:88"},{"kind":"number","nativeSrc":"6365:2:88","nodeType":"YulLiteral","src":"6365:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6336:3:88","nodeType":"YulIdentifier","src":"6336:3:88"},"nativeSrc":"6336:32:88","nodeType":"YulFunctionCall","src":"6336:32:88"},"nativeSrc":"6333:52:88","nodeType":"YulIf","src":"6333:52:88"},{"nativeSrc":"6394:36:88","nodeType":"YulVariableDeclaration","src":"6394:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6420:9:88","nodeType":"YulIdentifier","src":"6420:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6407:12:88","nodeType":"YulIdentifier","src":"6407:12:88"},"nativeSrc":"6407:23:88","nodeType":"YulFunctionCall","src":"6407:23:88"},"variables":[{"name":"value","nativeSrc":"6398:5:88","nodeType":"YulTypedName","src":"6398:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6461:5:88","nodeType":"YulIdentifier","src":"6461:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"6439:21:88","nodeType":"YulIdentifier","src":"6439:21:88"},"nativeSrc":"6439:28:88","nodeType":"YulFunctionCall","src":"6439:28:88"},"nativeSrc":"6439:28:88","nodeType":"YulExpressionStatement","src":"6439:28:88"},{"nativeSrc":"6476:15:88","nodeType":"YulAssignment","src":"6476:15:88","value":{"name":"value","nativeSrc":"6486:5:88","nodeType":"YulIdentifier","src":"6486:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6476:6:88","nodeType":"YulIdentifier","src":"6476:6:88"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"6256:241:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6289:9:88","nodeType":"YulTypedName","src":"6289:9:88","type":""},{"name":"dataEnd","nativeSrc":"6300:7:88","nodeType":"YulTypedName","src":"6300:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6312:6:88","nodeType":"YulTypedName","src":"6312:6:88","type":""}],"src":"6256:241:88"},{"body":{"nativeSrc":"6589:259:88","nodeType":"YulBlock","src":"6589:259:88","statements":[{"body":{"nativeSrc":"6635:16:88","nodeType":"YulBlock","src":"6635:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6644:1:88","nodeType":"YulLiteral","src":"6644:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6647:1:88","nodeType":"YulLiteral","src":"6647:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6637:6:88","nodeType":"YulIdentifier","src":"6637:6:88"},"nativeSrc":"6637:12:88","nodeType":"YulFunctionCall","src":"6637:12:88"},"nativeSrc":"6637:12:88","nodeType":"YulExpressionStatement","src":"6637:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6610:7:88","nodeType":"YulIdentifier","src":"6610:7:88"},{"name":"headStart","nativeSrc":"6619:9:88","nodeType":"YulIdentifier","src":"6619:9:88"}],"functionName":{"name":"sub","nativeSrc":"6606:3:88","nodeType":"YulIdentifier","src":"6606:3:88"},"nativeSrc":"6606:23:88","nodeType":"YulFunctionCall","src":"6606:23:88"},{"kind":"number","nativeSrc":"6631:2:88","nodeType":"YulLiteral","src":"6631:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6602:3:88","nodeType":"YulIdentifier","src":"6602:3:88"},"nativeSrc":"6602:32:88","nodeType":"YulFunctionCall","src":"6602:32:88"},"nativeSrc":"6599:52:88","nodeType":"YulIf","src":"6599:52:88"},{"nativeSrc":"6660:14:88","nodeType":"YulVariableDeclaration","src":"6660:14:88","value":{"kind":"number","nativeSrc":"6673:1:88","nodeType":"YulLiteral","src":"6673:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"6664:5:88","nodeType":"YulTypedName","src":"6664:5:88","type":""}]},{"nativeSrc":"6683:32:88","nodeType":"YulAssignment","src":"6683:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6705:9:88","nodeType":"YulIdentifier","src":"6705:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6692:12:88","nodeType":"YulIdentifier","src":"6692:12:88"},"nativeSrc":"6692:23:88","nodeType":"YulFunctionCall","src":"6692:23:88"},"variableNames":[{"name":"value","nativeSrc":"6683:5:88","nodeType":"YulIdentifier","src":"6683:5:88"}]},{"nativeSrc":"6724:15:88","nodeType":"YulAssignment","src":"6724:15:88","value":{"name":"value","nativeSrc":"6734:5:88","nodeType":"YulIdentifier","src":"6734:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6724:6:88","nodeType":"YulIdentifier","src":"6724:6:88"}]},{"nativeSrc":"6748:16:88","nodeType":"YulVariableDeclaration","src":"6748:16:88","value":{"kind":"number","nativeSrc":"6763:1:88","nodeType":"YulLiteral","src":"6763:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6752:7:88","nodeType":"YulTypedName","src":"6752:7:88","type":""}]},{"nativeSrc":"6773:43:88","nodeType":"YulAssignment","src":"6773:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6801:9:88","nodeType":"YulIdentifier","src":"6801:9:88"},{"kind":"number","nativeSrc":"6812:2:88","nodeType":"YulLiteral","src":"6812:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6797:3:88","nodeType":"YulIdentifier","src":"6797:3:88"},"nativeSrc":"6797:18:88","nodeType":"YulFunctionCall","src":"6797:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6784:12:88","nodeType":"YulIdentifier","src":"6784:12:88"},"nativeSrc":"6784:32:88","nodeType":"YulFunctionCall","src":"6784:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"6773:7:88","nodeType":"YulIdentifier","src":"6773:7:88"}]},{"nativeSrc":"6825:17:88","nodeType":"YulAssignment","src":"6825:17:88","value":{"name":"value_1","nativeSrc":"6835:7:88","nodeType":"YulIdentifier","src":"6835:7:88"},"variableNames":[{"name":"value1","nativeSrc":"6825:6:88","nodeType":"YulIdentifier","src":"6825:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"6502:346:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6547:9:88","nodeType":"YulTypedName","src":"6547:9:88","type":""},{"name":"dataEnd","nativeSrc":"6558:7:88","nodeType":"YulTypedName","src":"6558:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6570:6:88","nodeType":"YulTypedName","src":"6570:6:88","type":""},{"name":"value1","nativeSrc":"6578:6:88","nodeType":"YulTypedName","src":"6578:6:88","type":""}],"src":"6502:346:88"},{"body":{"nativeSrc":"6945:177:88","nodeType":"YulBlock","src":"6945:177:88","statements":[{"body":{"nativeSrc":"6991:16:88","nodeType":"YulBlock","src":"6991:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7000:1:88","nodeType":"YulLiteral","src":"7000:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7003:1:88","nodeType":"YulLiteral","src":"7003:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6993:6:88","nodeType":"YulIdentifier","src":"6993:6:88"},"nativeSrc":"6993:12:88","nodeType":"YulFunctionCall","src":"6993:12:88"},"nativeSrc":"6993:12:88","nodeType":"YulExpressionStatement","src":"6993:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6966:7:88","nodeType":"YulIdentifier","src":"6966:7:88"},{"name":"headStart","nativeSrc":"6975:9:88","nodeType":"YulIdentifier","src":"6975:9:88"}],"functionName":{"name":"sub","nativeSrc":"6962:3:88","nodeType":"YulIdentifier","src":"6962:3:88"},"nativeSrc":"6962:23:88","nodeType":"YulFunctionCall","src":"6962:23:88"},{"kind":"number","nativeSrc":"6987:2:88","nodeType":"YulLiteral","src":"6987:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6958:3:88","nodeType":"YulIdentifier","src":"6958:3:88"},"nativeSrc":"6958:32:88","nodeType":"YulFunctionCall","src":"6958:32:88"},"nativeSrc":"6955:52:88","nodeType":"YulIf","src":"6955:52:88"},{"nativeSrc":"7016:36:88","nodeType":"YulVariableDeclaration","src":"7016:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7042:9:88","nodeType":"YulIdentifier","src":"7042:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7029:12:88","nodeType":"YulIdentifier","src":"7029:12:88"},"nativeSrc":"7029:23:88","nodeType":"YulFunctionCall","src":"7029:23:88"},"variables":[{"name":"value","nativeSrc":"7020:5:88","nodeType":"YulTypedName","src":"7020:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7086:5:88","nodeType":"YulIdentifier","src":"7086:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7061:24:88","nodeType":"YulIdentifier","src":"7061:24:88"},"nativeSrc":"7061:31:88","nodeType":"YulFunctionCall","src":"7061:31:88"},"nativeSrc":"7061:31:88","nodeType":"YulExpressionStatement","src":"7061:31:88"},{"nativeSrc":"7101:15:88","nodeType":"YulAssignment","src":"7101:15:88","value":{"name":"value","nativeSrc":"7111:5:88","nodeType":"YulIdentifier","src":"7111:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7101:6:88","nodeType":"YulIdentifier","src":"7101:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_ILPWhitelist_$23596","nativeSrc":"6853:269:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6911:9:88","nodeType":"YulTypedName","src":"6911:9:88","type":""},{"name":"dataEnd","nativeSrc":"6922:7:88","nodeType":"YulTypedName","src":"6922:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6934:6:88","nodeType":"YulTypedName","src":"6934:6:88","type":""}],"src":"6853:269:88"},{"body":{"nativeSrc":"7214:280:88","nodeType":"YulBlock","src":"7214:280:88","statements":[{"body":{"nativeSrc":"7260:16:88","nodeType":"YulBlock","src":"7260:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7269:1:88","nodeType":"YulLiteral","src":"7269:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7272:1:88","nodeType":"YulLiteral","src":"7272:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7262:6:88","nodeType":"YulIdentifier","src":"7262:6:88"},"nativeSrc":"7262:12:88","nodeType":"YulFunctionCall","src":"7262:12:88"},"nativeSrc":"7262:12:88","nodeType":"YulExpressionStatement","src":"7262:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7235:7:88","nodeType":"YulIdentifier","src":"7235:7:88"},{"name":"headStart","nativeSrc":"7244:9:88","nodeType":"YulIdentifier","src":"7244:9:88"}],"functionName":{"name":"sub","nativeSrc":"7231:3:88","nodeType":"YulIdentifier","src":"7231:3:88"},"nativeSrc":"7231:23:88","nodeType":"YulFunctionCall","src":"7231:23:88"},{"kind":"number","nativeSrc":"7256:2:88","nodeType":"YulLiteral","src":"7256:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7227:3:88","nodeType":"YulIdentifier","src":"7227:3:88"},"nativeSrc":"7227:32:88","nodeType":"YulFunctionCall","src":"7227:32:88"},"nativeSrc":"7224:52:88","nodeType":"YulIf","src":"7224:52:88"},{"nativeSrc":"7285:14:88","nodeType":"YulVariableDeclaration","src":"7285:14:88","value":{"kind":"number","nativeSrc":"7298:1:88","nodeType":"YulLiteral","src":"7298:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7289:5:88","nodeType":"YulTypedName","src":"7289:5:88","type":""}]},{"nativeSrc":"7308:32:88","nodeType":"YulAssignment","src":"7308:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7330:9:88","nodeType":"YulIdentifier","src":"7330:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7317:12:88","nodeType":"YulIdentifier","src":"7317:12:88"},"nativeSrc":"7317:23:88","nodeType":"YulFunctionCall","src":"7317:23:88"},"variableNames":[{"name":"value","nativeSrc":"7308:5:88","nodeType":"YulIdentifier","src":"7308:5:88"}]},{"nativeSrc":"7349:15:88","nodeType":"YulAssignment","src":"7349:15:88","value":{"name":"value","nativeSrc":"7359:5:88","nodeType":"YulIdentifier","src":"7359:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7349:6:88","nodeType":"YulIdentifier","src":"7349:6:88"}]},{"nativeSrc":"7373:47:88","nodeType":"YulVariableDeclaration","src":"7373:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7405:9:88","nodeType":"YulIdentifier","src":"7405:9:88"},{"kind":"number","nativeSrc":"7416:2:88","nodeType":"YulLiteral","src":"7416:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7401:3:88","nodeType":"YulIdentifier","src":"7401:3:88"},"nativeSrc":"7401:18:88","nodeType":"YulFunctionCall","src":"7401:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"7388:12:88","nodeType":"YulIdentifier","src":"7388:12:88"},"nativeSrc":"7388:32:88","nodeType":"YulFunctionCall","src":"7388:32:88"},"variables":[{"name":"value_1","nativeSrc":"7377:7:88","nodeType":"YulTypedName","src":"7377:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"7454:7:88","nodeType":"YulIdentifier","src":"7454:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7429:24:88","nodeType":"YulIdentifier","src":"7429:24:88"},"nativeSrc":"7429:33:88","nodeType":"YulFunctionCall","src":"7429:33:88"},"nativeSrc":"7429:33:88","nodeType":"YulExpressionStatement","src":"7429:33:88"},{"nativeSrc":"7471:17:88","nodeType":"YulAssignment","src":"7471:17:88","value":{"name":"value_1","nativeSrc":"7481:7:88","nodeType":"YulIdentifier","src":"7481:7:88"},"variableNames":[{"name":"value1","nativeSrc":"7471:6:88","nodeType":"YulIdentifier","src":"7471:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nativeSrc":"7127:367:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7172:9:88","nodeType":"YulTypedName","src":"7172:9:88","type":""},{"name":"dataEnd","nativeSrc":"7183:7:88","nodeType":"YulTypedName","src":"7183:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7195:6:88","nodeType":"YulTypedName","src":"7195:6:88","type":""},{"name":"value1","nativeSrc":"7203:6:88","nodeType":"YulTypedName","src":"7203:6:88","type":""}],"src":"7127:367:88"},{"body":{"nativeSrc":"7622:102:88","nodeType":"YulBlock","src":"7622:102:88","statements":[{"nativeSrc":"7632:26:88","nodeType":"YulAssignment","src":"7632:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7644:9:88","nodeType":"YulIdentifier","src":"7644:9:88"},{"kind":"number","nativeSrc":"7655:2:88","nodeType":"YulLiteral","src":"7655:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7640:3:88","nodeType":"YulIdentifier","src":"7640:3:88"},"nativeSrc":"7640:18:88","nodeType":"YulFunctionCall","src":"7640:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7632:4:88","nodeType":"YulIdentifier","src":"7632:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7674:9:88","nodeType":"YulIdentifier","src":"7674:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7689:6:88","nodeType":"YulIdentifier","src":"7689:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7705:3:88","nodeType":"YulLiteral","src":"7705:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7710:1:88","nodeType":"YulLiteral","src":"7710:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7701:3:88","nodeType":"YulIdentifier","src":"7701:3:88"},"nativeSrc":"7701:11:88","nodeType":"YulFunctionCall","src":"7701:11:88"},{"kind":"number","nativeSrc":"7714:1:88","nodeType":"YulLiteral","src":"7714:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7697:3:88","nodeType":"YulIdentifier","src":"7697:3:88"},"nativeSrc":"7697:19:88","nodeType":"YulFunctionCall","src":"7697:19:88"}],"functionName":{"name":"and","nativeSrc":"7685:3:88","nodeType":"YulIdentifier","src":"7685:3:88"},"nativeSrc":"7685:32:88","nodeType":"YulFunctionCall","src":"7685:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7667:6:88","nodeType":"YulIdentifier","src":"7667:6:88"},"nativeSrc":"7667:51:88","nodeType":"YulFunctionCall","src":"7667:51:88"},"nativeSrc":"7667:51:88","nodeType":"YulExpressionStatement","src":"7667:51:88"}]},"name":"abi_encode_tuple_t_contract$_ILPWhitelist_$23596__to_t_address__fromStack_reversed","nativeSrc":"7499:225:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7591:9:88","nodeType":"YulTypedName","src":"7591:9:88","type":""},{"name":"value0","nativeSrc":"7602:6:88","nodeType":"YulTypedName","src":"7602:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7613:4:88","nodeType":"YulTypedName","src":"7613:4:88","type":""}],"src":"7499:225:88"},{"body":{"nativeSrc":"7853:102:88","nodeType":"YulBlock","src":"7853:102:88","statements":[{"nativeSrc":"7863:26:88","nodeType":"YulAssignment","src":"7863:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7875:9:88","nodeType":"YulIdentifier","src":"7875:9:88"},{"kind":"number","nativeSrc":"7886:2:88","nodeType":"YulLiteral","src":"7886:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7871:3:88","nodeType":"YulIdentifier","src":"7871:3:88"},"nativeSrc":"7871:18:88","nodeType":"YulFunctionCall","src":"7871:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7863:4:88","nodeType":"YulIdentifier","src":"7863:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7905:9:88","nodeType":"YulIdentifier","src":"7905:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7920:6:88","nodeType":"YulIdentifier","src":"7920:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7936:3:88","nodeType":"YulLiteral","src":"7936:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7941:1:88","nodeType":"YulLiteral","src":"7941:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7932:3:88","nodeType":"YulIdentifier","src":"7932:3:88"},"nativeSrc":"7932:11:88","nodeType":"YulFunctionCall","src":"7932:11:88"},{"kind":"number","nativeSrc":"7945:1:88","nodeType":"YulLiteral","src":"7945:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7928:3:88","nodeType":"YulIdentifier","src":"7928:3:88"},"nativeSrc":"7928:19:88","nodeType":"YulFunctionCall","src":"7928:19:88"}],"functionName":{"name":"and","nativeSrc":"7916:3:88","nodeType":"YulIdentifier","src":"7916:3:88"},"nativeSrc":"7916:32:88","nodeType":"YulFunctionCall","src":"7916:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7898:6:88","nodeType":"YulIdentifier","src":"7898:6:88"},"nativeSrc":"7898:51:88","nodeType":"YulFunctionCall","src":"7898:51:88"},"nativeSrc":"7898:51:88","nodeType":"YulExpressionStatement","src":"7898:51:88"}]},"name":"abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed","nativeSrc":"7729:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7822:9:88","nodeType":"YulTypedName","src":"7822:9:88","type":""},{"name":"value0","nativeSrc":"7833:6:88","nodeType":"YulTypedName","src":"7833:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7844:4:88","nodeType":"YulTypedName","src":"7844:4:88","type":""}],"src":"7729:226:88"},{"body":{"nativeSrc":"8063:310:88","nodeType":"YulBlock","src":"8063:310:88","statements":[{"body":{"nativeSrc":"8109:16:88","nodeType":"YulBlock","src":"8109:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8118:1:88","nodeType":"YulLiteral","src":"8118:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8121:1:88","nodeType":"YulLiteral","src":"8121:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8111:6:88","nodeType":"YulIdentifier","src":"8111:6:88"},"nativeSrc":"8111:12:88","nodeType":"YulFunctionCall","src":"8111:12:88"},"nativeSrc":"8111:12:88","nodeType":"YulExpressionStatement","src":"8111:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8084:7:88","nodeType":"YulIdentifier","src":"8084:7:88"},{"name":"headStart","nativeSrc":"8093:9:88","nodeType":"YulIdentifier","src":"8093:9:88"}],"functionName":{"name":"sub","nativeSrc":"8080:3:88","nodeType":"YulIdentifier","src":"8080:3:88"},"nativeSrc":"8080:23:88","nodeType":"YulFunctionCall","src":"8080:23:88"},{"kind":"number","nativeSrc":"8105:2:88","nodeType":"YulLiteral","src":"8105:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8076:3:88","nodeType":"YulIdentifier","src":"8076:3:88"},"nativeSrc":"8076:32:88","nodeType":"YulFunctionCall","src":"8076:32:88"},"nativeSrc":"8073:52:88","nodeType":"YulIf","src":"8073:52:88"},{"nativeSrc":"8134:14:88","nodeType":"YulVariableDeclaration","src":"8134:14:88","value":{"kind":"number","nativeSrc":"8147:1:88","nodeType":"YulLiteral","src":"8147:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8138:5:88","nodeType":"YulTypedName","src":"8138:5:88","type":""}]},{"nativeSrc":"8157:32:88","nodeType":"YulAssignment","src":"8157:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8179:9:88","nodeType":"YulIdentifier","src":"8179:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8166:12:88","nodeType":"YulIdentifier","src":"8166:12:88"},"nativeSrc":"8166:23:88","nodeType":"YulFunctionCall","src":"8166:23:88"},"variableNames":[{"name":"value","nativeSrc":"8157:5:88","nodeType":"YulIdentifier","src":"8157:5:88"}]},{"nativeSrc":"8198:15:88","nodeType":"YulAssignment","src":"8198:15:88","value":{"name":"value","nativeSrc":"8208:5:88","nodeType":"YulIdentifier","src":"8208:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8198:6:88","nodeType":"YulIdentifier","src":"8198:6:88"}]},{"nativeSrc":"8222:16:88","nodeType":"YulVariableDeclaration","src":"8222:16:88","value":{"kind":"number","nativeSrc":"8237:1:88","nodeType":"YulLiteral","src":"8237:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8226:7:88","nodeType":"YulTypedName","src":"8226:7:88","type":""}]},{"nativeSrc":"8247:43:88","nodeType":"YulAssignment","src":"8247:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8275:9:88","nodeType":"YulIdentifier","src":"8275:9:88"},{"kind":"number","nativeSrc":"8286:2:88","nodeType":"YulLiteral","src":"8286:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8271:3:88","nodeType":"YulIdentifier","src":"8271:3:88"},"nativeSrc":"8271:18:88","nodeType":"YulFunctionCall","src":"8271:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8258:12:88","nodeType":"YulIdentifier","src":"8258:12:88"},"nativeSrc":"8258:32:88","nodeType":"YulFunctionCall","src":"8258:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8247:7:88","nodeType":"YulIdentifier","src":"8247:7:88"}]},{"nativeSrc":"8299:17:88","nodeType":"YulAssignment","src":"8299:17:88","value":{"name":"value_1","nativeSrc":"8309:7:88","nodeType":"YulIdentifier","src":"8309:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8299:6:88","nodeType":"YulIdentifier","src":"8299:6:88"}]},{"nativeSrc":"8325:42:88","nodeType":"YulAssignment","src":"8325:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8352:9:88","nodeType":"YulIdentifier","src":"8352:9:88"},{"kind":"number","nativeSrc":"8363:2:88","nodeType":"YulLiteral","src":"8363:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8348:3:88","nodeType":"YulIdentifier","src":"8348:3:88"},"nativeSrc":"8348:18:88","nodeType":"YulFunctionCall","src":"8348:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8335:12:88","nodeType":"YulIdentifier","src":"8335:12:88"},"nativeSrc":"8335:32:88","nodeType":"YulFunctionCall","src":"8335:32:88"},"variableNames":[{"name":"value2","nativeSrc":"8325:6:88","nodeType":"YulIdentifier","src":"8325:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_int256","nativeSrc":"7960:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8013:9:88","nodeType":"YulTypedName","src":"8013:9:88","type":""},{"name":"dataEnd","nativeSrc":"8024:7:88","nodeType":"YulTypedName","src":"8024:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8036:6:88","nodeType":"YulTypedName","src":"8036:6:88","type":""},{"name":"value1","nativeSrc":"8044:6:88","nodeType":"YulTypedName","src":"8044:6:88","type":""},{"name":"value2","nativeSrc":"8052:6:88","nodeType":"YulTypedName","src":"8052:6:88","type":""}],"src":"7960:413:88"},{"body":{"nativeSrc":"8480:289:88","nodeType":"YulBlock","src":"8480:289:88","statements":[{"body":{"nativeSrc":"8526:16:88","nodeType":"YulBlock","src":"8526:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8535:1:88","nodeType":"YulLiteral","src":"8535:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8538:1:88","nodeType":"YulLiteral","src":"8538:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8528:6:88","nodeType":"YulIdentifier","src":"8528:6:88"},"nativeSrc":"8528:12:88","nodeType":"YulFunctionCall","src":"8528:12:88"},"nativeSrc":"8528:12:88","nodeType":"YulExpressionStatement","src":"8528:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8501:7:88","nodeType":"YulIdentifier","src":"8501:7:88"},{"name":"headStart","nativeSrc":"8510:9:88","nodeType":"YulIdentifier","src":"8510:9:88"}],"functionName":{"name":"sub","nativeSrc":"8497:3:88","nodeType":"YulIdentifier","src":"8497:3:88"},"nativeSrc":"8497:23:88","nodeType":"YulFunctionCall","src":"8497:23:88"},{"kind":"number","nativeSrc":"8522:2:88","nodeType":"YulLiteral","src":"8522:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8493:3:88","nodeType":"YulIdentifier","src":"8493:3:88"},"nativeSrc":"8493:32:88","nodeType":"YulFunctionCall","src":"8493:32:88"},"nativeSrc":"8490:52:88","nodeType":"YulIf","src":"8490:52:88"},{"nativeSrc":"8551:36:88","nodeType":"YulVariableDeclaration","src":"8551:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8577:9:88","nodeType":"YulIdentifier","src":"8577:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8564:12:88","nodeType":"YulIdentifier","src":"8564:12:88"},"nativeSrc":"8564:23:88","nodeType":"YulFunctionCall","src":"8564:23:88"},"variables":[{"name":"value","nativeSrc":"8555:5:88","nodeType":"YulTypedName","src":"8555:5:88","type":""}]},{"body":{"nativeSrc":"8620:16:88","nodeType":"YulBlock","src":"8620:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8629:1:88","nodeType":"YulLiteral","src":"8629:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8632:1:88","nodeType":"YulLiteral","src":"8632:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8622:6:88","nodeType":"YulIdentifier","src":"8622:6:88"},"nativeSrc":"8622:12:88","nodeType":"YulFunctionCall","src":"8622:12:88"},"nativeSrc":"8622:12:88","nodeType":"YulExpressionStatement","src":"8622:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8609:5:88","nodeType":"YulIdentifier","src":"8609:5:88"},{"kind":"number","nativeSrc":"8616:1:88","nodeType":"YulLiteral","src":"8616:1:88","type":"","value":"4"}],"functionName":{"name":"lt","nativeSrc":"8606:2:88","nodeType":"YulIdentifier","src":"8606:2:88"},"nativeSrc":"8606:12:88","nodeType":"YulFunctionCall","src":"8606:12:88"}],"functionName":{"name":"iszero","nativeSrc":"8599:6:88","nodeType":"YulIdentifier","src":"8599:6:88"},"nativeSrc":"8599:20:88","nodeType":"YulFunctionCall","src":"8599:20:88"},"nativeSrc":"8596:40:88","nodeType":"YulIf","src":"8596:40:88"},{"nativeSrc":"8645:15:88","nodeType":"YulAssignment","src":"8645:15:88","value":{"name":"value","nativeSrc":"8655:5:88","nodeType":"YulIdentifier","src":"8655:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8645:6:88","nodeType":"YulIdentifier","src":"8645:6:88"}]},{"nativeSrc":"8669:16:88","nodeType":"YulVariableDeclaration","src":"8669:16:88","value":{"kind":"number","nativeSrc":"8684:1:88","nodeType":"YulLiteral","src":"8684:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8673:7:88","nodeType":"YulTypedName","src":"8673:7:88","type":""}]},{"nativeSrc":"8694:43:88","nodeType":"YulAssignment","src":"8694:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8722:9:88","nodeType":"YulIdentifier","src":"8722:9:88"},{"kind":"number","nativeSrc":"8733:2:88","nodeType":"YulLiteral","src":"8733:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8718:3:88","nodeType":"YulIdentifier","src":"8718:3:88"},"nativeSrc":"8718:18:88","nodeType":"YulFunctionCall","src":"8718:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8705:12:88","nodeType":"YulIdentifier","src":"8705:12:88"},"nativeSrc":"8705:32:88","nodeType":"YulFunctionCall","src":"8705:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8694:7:88","nodeType":"YulIdentifier","src":"8694:7:88"}]},{"nativeSrc":"8746:17:88","nodeType":"YulAssignment","src":"8746:17:88","value":{"name":"value_1","nativeSrc":"8756:7:88","nodeType":"YulIdentifier","src":"8756:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8746:6:88","nodeType":"YulIdentifier","src":"8746:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23434t_uint256","nativeSrc":"8378:391:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8438:9:88","nodeType":"YulTypedName","src":"8438:9:88","type":""},{"name":"dataEnd","nativeSrc":"8449:7:88","nodeType":"YulTypedName","src":"8449:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8461:6:88","nodeType":"YulTypedName","src":"8461:6:88","type":""},{"name":"value1","nativeSrc":"8469:6:88","nodeType":"YulTypedName","src":"8469:6:88","type":""}],"src":"8378:391:88"},{"body":{"nativeSrc":"8881:298:88","nodeType":"YulBlock","src":"8881:298:88","statements":[{"body":{"nativeSrc":"8927:16:88","nodeType":"YulBlock","src":"8927:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8936:1:88","nodeType":"YulLiteral","src":"8936:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8939:1:88","nodeType":"YulLiteral","src":"8939:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8929:6:88","nodeType":"YulIdentifier","src":"8929:6:88"},"nativeSrc":"8929:12:88","nodeType":"YulFunctionCall","src":"8929:12:88"},"nativeSrc":"8929:12:88","nodeType":"YulExpressionStatement","src":"8929:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8902:7:88","nodeType":"YulIdentifier","src":"8902:7:88"},{"name":"headStart","nativeSrc":"8911:9:88","nodeType":"YulIdentifier","src":"8911:9:88"}],"functionName":{"name":"sub","nativeSrc":"8898:3:88","nodeType":"YulIdentifier","src":"8898:3:88"},"nativeSrc":"8898:23:88","nodeType":"YulFunctionCall","src":"8898:23:88"},{"kind":"number","nativeSrc":"8923:2:88","nodeType":"YulLiteral","src":"8923:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8894:3:88","nodeType":"YulIdentifier","src":"8894:3:88"},"nativeSrc":"8894:32:88","nodeType":"YulFunctionCall","src":"8894:32:88"},"nativeSrc":"8891:52:88","nodeType":"YulIf","src":"8891:52:88"},{"nativeSrc":"8952:36:88","nodeType":"YulVariableDeclaration","src":"8952:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8978:9:88","nodeType":"YulIdentifier","src":"8978:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8965:12:88","nodeType":"YulIdentifier","src":"8965:12:88"},"nativeSrc":"8965:23:88","nodeType":"YulFunctionCall","src":"8965:23:88"},"variables":[{"name":"value","nativeSrc":"8956:5:88","nodeType":"YulTypedName","src":"8956:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9022:5:88","nodeType":"YulIdentifier","src":"9022:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8997:24:88","nodeType":"YulIdentifier","src":"8997:24:88"},"nativeSrc":"8997:31:88","nodeType":"YulFunctionCall","src":"8997:31:88"},"nativeSrc":"8997:31:88","nodeType":"YulExpressionStatement","src":"8997:31:88"},{"nativeSrc":"9037:15:88","nodeType":"YulAssignment","src":"9037:15:88","value":{"name":"value","nativeSrc":"9047:5:88","nodeType":"YulIdentifier","src":"9047:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9037:6:88","nodeType":"YulIdentifier","src":"9037:6:88"}]},{"nativeSrc":"9061:47:88","nodeType":"YulVariableDeclaration","src":"9061:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9093:9:88","nodeType":"YulIdentifier","src":"9093:9:88"},{"kind":"number","nativeSrc":"9104:2:88","nodeType":"YulLiteral","src":"9104:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9089:3:88","nodeType":"YulIdentifier","src":"9089:3:88"},"nativeSrc":"9089:18:88","nodeType":"YulFunctionCall","src":"9089:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9076:12:88","nodeType":"YulIdentifier","src":"9076:12:88"},"nativeSrc":"9076:32:88","nodeType":"YulFunctionCall","src":"9076:32:88"},"variables":[{"name":"value_1","nativeSrc":"9065:7:88","nodeType":"YulTypedName","src":"9065:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9139:7:88","nodeType":"YulIdentifier","src":"9139:7:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"9117:21:88","nodeType":"YulIdentifier","src":"9117:21:88"},"nativeSrc":"9117:30:88","nodeType":"YulFunctionCall","src":"9117:30:88"},"nativeSrc":"9117:30:88","nodeType":"YulExpressionStatement","src":"9117:30:88"},{"nativeSrc":"9156:17:88","nodeType":"YulAssignment","src":"9156:17:88","value":{"name":"value_1","nativeSrc":"9166:7:88","nodeType":"YulIdentifier","src":"9166:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9156:6:88","nodeType":"YulIdentifier","src":"9156:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool","nativeSrc":"8774:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8839:9:88","nodeType":"YulTypedName","src":"8839:9:88","type":""},{"name":"dataEnd","nativeSrc":"8850:7:88","nodeType":"YulTypedName","src":"8850:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8862:6:88","nodeType":"YulTypedName","src":"8862:6:88","type":""},{"name":"value1","nativeSrc":"8870:6:88","nodeType":"YulTypedName","src":"8870:6:88","type":""}],"src":"8774:405:88"},{"body":{"nativeSrc":"9271:301:88","nodeType":"YulBlock","src":"9271:301:88","statements":[{"body":{"nativeSrc":"9317:16:88","nodeType":"YulBlock","src":"9317:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9326:1:88","nodeType":"YulLiteral","src":"9326:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9329:1:88","nodeType":"YulLiteral","src":"9329:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9319:6:88","nodeType":"YulIdentifier","src":"9319:6:88"},"nativeSrc":"9319:12:88","nodeType":"YulFunctionCall","src":"9319:12:88"},"nativeSrc":"9319:12:88","nodeType":"YulExpressionStatement","src":"9319:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9292:7:88","nodeType":"YulIdentifier","src":"9292:7:88"},{"name":"headStart","nativeSrc":"9301:9:88","nodeType":"YulIdentifier","src":"9301:9:88"}],"functionName":{"name":"sub","nativeSrc":"9288:3:88","nodeType":"YulIdentifier","src":"9288:3:88"},"nativeSrc":"9288:23:88","nodeType":"YulFunctionCall","src":"9288:23:88"},{"kind":"number","nativeSrc":"9313:2:88","nodeType":"YulLiteral","src":"9313:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9284:3:88","nodeType":"YulIdentifier","src":"9284:3:88"},"nativeSrc":"9284:32:88","nodeType":"YulFunctionCall","src":"9284:32:88"},"nativeSrc":"9281:52:88","nodeType":"YulIf","src":"9281:52:88"},{"nativeSrc":"9342:36:88","nodeType":"YulVariableDeclaration","src":"9342:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9368:9:88","nodeType":"YulIdentifier","src":"9368:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9355:12:88","nodeType":"YulIdentifier","src":"9355:12:88"},"nativeSrc":"9355:23:88","nodeType":"YulFunctionCall","src":"9355:23:88"},"variables":[{"name":"value","nativeSrc":"9346:5:88","nodeType":"YulTypedName","src":"9346:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9412:5:88","nodeType":"YulIdentifier","src":"9412:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9387:24:88","nodeType":"YulIdentifier","src":"9387:24:88"},"nativeSrc":"9387:31:88","nodeType":"YulFunctionCall","src":"9387:31:88"},"nativeSrc":"9387:31:88","nodeType":"YulExpressionStatement","src":"9387:31:88"},{"nativeSrc":"9427:15:88","nodeType":"YulAssignment","src":"9427:15:88","value":{"name":"value","nativeSrc":"9437:5:88","nodeType":"YulIdentifier","src":"9437:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9427:6:88","nodeType":"YulIdentifier","src":"9427:6:88"}]},{"nativeSrc":"9451:47:88","nodeType":"YulVariableDeclaration","src":"9451:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9483:9:88","nodeType":"YulIdentifier","src":"9483:9:88"},{"kind":"number","nativeSrc":"9494:2:88","nodeType":"YulLiteral","src":"9494:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9479:3:88","nodeType":"YulIdentifier","src":"9479:3:88"},"nativeSrc":"9479:18:88","nodeType":"YulFunctionCall","src":"9479:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9466:12:88","nodeType":"YulIdentifier","src":"9466:12:88"},"nativeSrc":"9466:32:88","nodeType":"YulFunctionCall","src":"9466:32:88"},"variables":[{"name":"value_1","nativeSrc":"9455:7:88","nodeType":"YulTypedName","src":"9455:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9532:7:88","nodeType":"YulIdentifier","src":"9532:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9507:24:88","nodeType":"YulIdentifier","src":"9507:24:88"},"nativeSrc":"9507:33:88","nodeType":"YulFunctionCall","src":"9507:33:88"},"nativeSrc":"9507:33:88","nodeType":"YulExpressionStatement","src":"9507:33:88"},{"nativeSrc":"9549:17:88","nodeType":"YulAssignment","src":"9549:17:88","value":{"name":"value_1","nativeSrc":"9559:7:88","nodeType":"YulIdentifier","src":"9559:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9549:6:88","nodeType":"YulIdentifier","src":"9549:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"9184:388:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9229:9:88","nodeType":"YulTypedName","src":"9229:9:88","type":""},{"name":"dataEnd","nativeSrc":"9240:7:88","nodeType":"YulTypedName","src":"9240:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9252:6:88","nodeType":"YulTypedName","src":"9252:6:88","type":""},{"name":"value1","nativeSrc":"9260:6:88","nodeType":"YulTypedName","src":"9260:6:88","type":""}],"src":"9184:388:88"},{"body":{"nativeSrc":"9701:102:88","nodeType":"YulBlock","src":"9701:102:88","statements":[{"nativeSrc":"9711:26:88","nodeType":"YulAssignment","src":"9711:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9723:9:88","nodeType":"YulIdentifier","src":"9723:9:88"},{"kind":"number","nativeSrc":"9734:2:88","nodeType":"YulLiteral","src":"9734:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9719:3:88","nodeType":"YulIdentifier","src":"9719:3:88"},"nativeSrc":"9719:18:88","nodeType":"YulFunctionCall","src":"9719:18:88"},"variableNames":[{"name":"tail","nativeSrc":"9711:4:88","nodeType":"YulIdentifier","src":"9711:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9753:9:88","nodeType":"YulIdentifier","src":"9753:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9768:6:88","nodeType":"YulIdentifier","src":"9768:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9784:3:88","nodeType":"YulLiteral","src":"9784:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"9789:1:88","nodeType":"YulLiteral","src":"9789:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9780:3:88","nodeType":"YulIdentifier","src":"9780:3:88"},"nativeSrc":"9780:11:88","nodeType":"YulFunctionCall","src":"9780:11:88"},{"kind":"number","nativeSrc":"9793:1:88","nodeType":"YulLiteral","src":"9793:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9776:3:88","nodeType":"YulIdentifier","src":"9776:3:88"},"nativeSrc":"9776:19:88","nodeType":"YulFunctionCall","src":"9776:19:88"}],"functionName":{"name":"and","nativeSrc":"9764:3:88","nodeType":"YulIdentifier","src":"9764:3:88"},"nativeSrc":"9764:32:88","nodeType":"YulFunctionCall","src":"9764:32:88"}],"functionName":{"name":"mstore","nativeSrc":"9746:6:88","nodeType":"YulIdentifier","src":"9746:6:88"},"nativeSrc":"9746:51:88","nodeType":"YulFunctionCall","src":"9746:51:88"},"nativeSrc":"9746:51:88","nodeType":"YulExpressionStatement","src":"9746:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"9577:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9670:9:88","nodeType":"YulTypedName","src":"9670:9:88","type":""},{"name":"value0","nativeSrc":"9681:6:88","nodeType":"YulTypedName","src":"9681:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9692:4:88","nodeType":"YulTypedName","src":"9692:4:88","type":""}],"src":"9577:226:88"},{"body":{"nativeSrc":"9840:95:88","nodeType":"YulBlock","src":"9840:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9857:1:88","nodeType":"YulLiteral","src":"9857:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9864:3:88","nodeType":"YulLiteral","src":"9864:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"9869:10:88","nodeType":"YulLiteral","src":"9869:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9860:3:88","nodeType":"YulIdentifier","src":"9860:3:88"},"nativeSrc":"9860:20:88","nodeType":"YulFunctionCall","src":"9860:20:88"}],"functionName":{"name":"mstore","nativeSrc":"9850:6:88","nodeType":"YulIdentifier","src":"9850:6:88"},"nativeSrc":"9850:31:88","nodeType":"YulFunctionCall","src":"9850:31:88"},"nativeSrc":"9850:31:88","nodeType":"YulExpressionStatement","src":"9850:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9897:1:88","nodeType":"YulLiteral","src":"9897:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"9900:4:88","nodeType":"YulLiteral","src":"9900:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"9890:6:88","nodeType":"YulIdentifier","src":"9890:6:88"},"nativeSrc":"9890:15:88","nodeType":"YulFunctionCall","src":"9890:15:88"},"nativeSrc":"9890:15:88","nodeType":"YulExpressionStatement","src":"9890:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9921:1:88","nodeType":"YulLiteral","src":"9921:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9924:4:88","nodeType":"YulLiteral","src":"9924:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9914:6:88","nodeType":"YulIdentifier","src":"9914:6:88"},"nativeSrc":"9914:15:88","nodeType":"YulFunctionCall","src":"9914:15:88"},"nativeSrc":"9914:15:88","nodeType":"YulExpressionStatement","src":"9914:15:88"}]},"name":"panic_error_0x11","nativeSrc":"9808:127:88","nodeType":"YulFunctionDefinition","src":"9808:127:88"},{"body":{"nativeSrc":"9989:79:88","nodeType":"YulBlock","src":"9989:79:88","statements":[{"nativeSrc":"9999:17:88","nodeType":"YulAssignment","src":"9999:17:88","value":{"arguments":[{"name":"x","nativeSrc":"10011:1:88","nodeType":"YulIdentifier","src":"10011:1:88"},{"name":"y","nativeSrc":"10014:1:88","nodeType":"YulIdentifier","src":"10014:1:88"}],"functionName":{"name":"sub","nativeSrc":"10007:3:88","nodeType":"YulIdentifier","src":"10007:3:88"},"nativeSrc":"10007:9:88","nodeType":"YulFunctionCall","src":"10007:9:88"},"variableNames":[{"name":"diff","nativeSrc":"9999:4:88","nodeType":"YulIdentifier","src":"9999:4:88"}]},{"body":{"nativeSrc":"10040:22:88","nodeType":"YulBlock","src":"10040:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10042:16:88","nodeType":"YulIdentifier","src":"10042:16:88"},"nativeSrc":"10042:18:88","nodeType":"YulFunctionCall","src":"10042:18:88"},"nativeSrc":"10042:18:88","nodeType":"YulExpressionStatement","src":"10042:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"10031:4:88","nodeType":"YulIdentifier","src":"10031:4:88"},{"name":"x","nativeSrc":"10037:1:88","nodeType":"YulIdentifier","src":"10037:1:88"}],"functionName":{"name":"gt","nativeSrc":"10028:2:88","nodeType":"YulIdentifier","src":"10028:2:88"},"nativeSrc":"10028:11:88","nodeType":"YulFunctionCall","src":"10028:11:88"},"nativeSrc":"10025:37:88","nodeType":"YulIf","src":"10025:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"9940:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9971:1:88","nodeType":"YulTypedName","src":"9971:1:88","type":""},{"name":"y","nativeSrc":"9974:1:88","nodeType":"YulTypedName","src":"9974:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"9980:4:88","nodeType":"YulTypedName","src":"9980:4:88","type":""}],"src":"9940:128:88"},{"body":{"nativeSrc":"10128:325:88","nodeType":"YulBlock","src":"10128:325:88","statements":[{"nativeSrc":"10138:22:88","nodeType":"YulAssignment","src":"10138:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"10152:1:88","nodeType":"YulLiteral","src":"10152:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"10155:4:88","nodeType":"YulIdentifier","src":"10155:4:88"}],"functionName":{"name":"shr","nativeSrc":"10148:3:88","nodeType":"YulIdentifier","src":"10148:3:88"},"nativeSrc":"10148:12:88","nodeType":"YulFunctionCall","src":"10148:12:88"},"variableNames":[{"name":"length","nativeSrc":"10138:6:88","nodeType":"YulIdentifier","src":"10138:6:88"}]},{"nativeSrc":"10169:38:88","nodeType":"YulVariableDeclaration","src":"10169:38:88","value":{"arguments":[{"name":"data","nativeSrc":"10199:4:88","nodeType":"YulIdentifier","src":"10199:4:88"},{"kind":"number","nativeSrc":"10205:1:88","nodeType":"YulLiteral","src":"10205:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10195:3:88","nodeType":"YulIdentifier","src":"10195:3:88"},"nativeSrc":"10195:12:88","nodeType":"YulFunctionCall","src":"10195:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"10173:18:88","nodeType":"YulTypedName","src":"10173:18:88","type":""}]},{"body":{"nativeSrc":"10246:31:88","nodeType":"YulBlock","src":"10246:31:88","statements":[{"nativeSrc":"10248:27:88","nodeType":"YulAssignment","src":"10248:27:88","value":{"arguments":[{"name":"length","nativeSrc":"10262:6:88","nodeType":"YulIdentifier","src":"10262:6:88"},{"kind":"number","nativeSrc":"10270:4:88","nodeType":"YulLiteral","src":"10270:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10258:3:88","nodeType":"YulIdentifier","src":"10258:3:88"},"nativeSrc":"10258:17:88","nodeType":"YulFunctionCall","src":"10258:17:88"},"variableNames":[{"name":"length","nativeSrc":"10248:6:88","nodeType":"YulIdentifier","src":"10248:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10226:18:88","nodeType":"YulIdentifier","src":"10226:18:88"}],"functionName":{"name":"iszero","nativeSrc":"10219:6:88","nodeType":"YulIdentifier","src":"10219:6:88"},"nativeSrc":"10219:26:88","nodeType":"YulFunctionCall","src":"10219:26:88"},"nativeSrc":"10216:61:88","nodeType":"YulIf","src":"10216:61:88"},{"body":{"nativeSrc":"10336:111:88","nodeType":"YulBlock","src":"10336:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10357:1:88","nodeType":"YulLiteral","src":"10357:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"10364:3:88","nodeType":"YulLiteral","src":"10364:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"10369:10:88","nodeType":"YulLiteral","src":"10369:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"10360:3:88","nodeType":"YulIdentifier","src":"10360:3:88"},"nativeSrc":"10360:20:88","nodeType":"YulFunctionCall","src":"10360:20:88"}],"functionName":{"name":"mstore","nativeSrc":"10350:6:88","nodeType":"YulIdentifier","src":"10350:6:88"},"nativeSrc":"10350:31:88","nodeType":"YulFunctionCall","src":"10350:31:88"},"nativeSrc":"10350:31:88","nodeType":"YulExpressionStatement","src":"10350:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10401:1:88","nodeType":"YulLiteral","src":"10401:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"10404:4:88","nodeType":"YulLiteral","src":"10404:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"10394:6:88","nodeType":"YulIdentifier","src":"10394:6:88"},"nativeSrc":"10394:15:88","nodeType":"YulFunctionCall","src":"10394:15:88"},"nativeSrc":"10394:15:88","nodeType":"YulExpressionStatement","src":"10394:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10429:1:88","nodeType":"YulLiteral","src":"10429:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10432:4:88","nodeType":"YulLiteral","src":"10432:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10422:6:88","nodeType":"YulIdentifier","src":"10422:6:88"},"nativeSrc":"10422:15:88","nodeType":"YulFunctionCall","src":"10422:15:88"},"nativeSrc":"10422:15:88","nodeType":"YulExpressionStatement","src":"10422:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10292:18:88","nodeType":"YulIdentifier","src":"10292:18:88"},{"arguments":[{"name":"length","nativeSrc":"10315:6:88","nodeType":"YulIdentifier","src":"10315:6:88"},{"kind":"number","nativeSrc":"10323:2:88","nodeType":"YulLiteral","src":"10323:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10312:2:88","nodeType":"YulIdentifier","src":"10312:2:88"},"nativeSrc":"10312:14:88","nodeType":"YulFunctionCall","src":"10312:14:88"}],"functionName":{"name":"eq","nativeSrc":"10289:2:88","nodeType":"YulIdentifier","src":"10289:2:88"},"nativeSrc":"10289:38:88","nodeType":"YulFunctionCall","src":"10289:38:88"},"nativeSrc":"10286:161:88","nodeType":"YulIf","src":"10286:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"10073:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10108:4:88","nodeType":"YulTypedName","src":"10108:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10117:6:88","nodeType":"YulTypedName","src":"10117:6:88","type":""}],"src":"10073:380:88"},{"body":{"nativeSrc":"10563:170:88","nodeType":"YulBlock","src":"10563:170:88","statements":[{"body":{"nativeSrc":"10609:16:88","nodeType":"YulBlock","src":"10609:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10618:1:88","nodeType":"YulLiteral","src":"10618:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10621:1:88","nodeType":"YulLiteral","src":"10621:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10611:6:88","nodeType":"YulIdentifier","src":"10611:6:88"},"nativeSrc":"10611:12:88","nodeType":"YulFunctionCall","src":"10611:12:88"},"nativeSrc":"10611:12:88","nodeType":"YulExpressionStatement","src":"10611:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10584:7:88","nodeType":"YulIdentifier","src":"10584:7:88"},{"name":"headStart","nativeSrc":"10593:9:88","nodeType":"YulIdentifier","src":"10593:9:88"}],"functionName":{"name":"sub","nativeSrc":"10580:3:88","nodeType":"YulIdentifier","src":"10580:3:88"},"nativeSrc":"10580:23:88","nodeType":"YulFunctionCall","src":"10580:23:88"},{"kind":"number","nativeSrc":"10605:2:88","nodeType":"YulLiteral","src":"10605:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10576:3:88","nodeType":"YulIdentifier","src":"10576:3:88"},"nativeSrc":"10576:32:88","nodeType":"YulFunctionCall","src":"10576:32:88"},"nativeSrc":"10573:52:88","nodeType":"YulIf","src":"10573:52:88"},{"nativeSrc":"10634:29:88","nodeType":"YulVariableDeclaration","src":"10634:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10653:9:88","nodeType":"YulIdentifier","src":"10653:9:88"}],"functionName":{"name":"mload","nativeSrc":"10647:5:88","nodeType":"YulIdentifier","src":"10647:5:88"},"nativeSrc":"10647:16:88","nodeType":"YulFunctionCall","src":"10647:16:88"},"variables":[{"name":"value","nativeSrc":"10638:5:88","nodeType":"YulTypedName","src":"10638:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10697:5:88","nodeType":"YulIdentifier","src":"10697:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10672:24:88","nodeType":"YulIdentifier","src":"10672:24:88"},"nativeSrc":"10672:31:88","nodeType":"YulFunctionCall","src":"10672:31:88"},"nativeSrc":"10672:31:88","nodeType":"YulExpressionStatement","src":"10672:31:88"},{"nativeSrc":"10712:15:88","nodeType":"YulAssignment","src":"10712:15:88","value":{"name":"value","nativeSrc":"10722:5:88","nodeType":"YulIdentifier","src":"10722:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10712:6:88","nodeType":"YulIdentifier","src":"10712:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"10458:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10529:9:88","nodeType":"YulTypedName","src":"10529:9:88","type":""},{"name":"dataEnd","nativeSrc":"10540:7:88","nodeType":"YulTypedName","src":"10540:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10552:6:88","nodeType":"YulTypedName","src":"10552:6:88","type":""}],"src":"10458:275:88"},{"body":{"nativeSrc":"10917:274:88","nodeType":"YulBlock","src":"10917:274:88","statements":[{"nativeSrc":"10927:27:88","nodeType":"YulAssignment","src":"10927:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10939:9:88","nodeType":"YulIdentifier","src":"10939:9:88"},{"kind":"number","nativeSrc":"10950:3:88","nodeType":"YulLiteral","src":"10950:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10935:3:88","nodeType":"YulIdentifier","src":"10935:3:88"},"nativeSrc":"10935:19:88","nodeType":"YulFunctionCall","src":"10935:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10927:4:88","nodeType":"YulIdentifier","src":"10927:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10970:9:88","nodeType":"YulIdentifier","src":"10970:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10985:6:88","nodeType":"YulIdentifier","src":"10985:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11001:3:88","nodeType":"YulLiteral","src":"11001:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"11006:1:88","nodeType":"YulLiteral","src":"11006:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10997:3:88","nodeType":"YulIdentifier","src":"10997:3:88"},"nativeSrc":"10997:11:88","nodeType":"YulFunctionCall","src":"10997:11:88"},{"kind":"number","nativeSrc":"11010:1:88","nodeType":"YulLiteral","src":"11010:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10993:3:88","nodeType":"YulIdentifier","src":"10993:3:88"},"nativeSrc":"10993:19:88","nodeType":"YulFunctionCall","src":"10993:19:88"}],"functionName":{"name":"and","nativeSrc":"10981:3:88","nodeType":"YulIdentifier","src":"10981:3:88"},"nativeSrc":"10981:32:88","nodeType":"YulFunctionCall","src":"10981:32:88"}],"functionName":{"name":"mstore","nativeSrc":"10963:6:88","nodeType":"YulIdentifier","src":"10963:6:88"},"nativeSrc":"10963:51:88","nodeType":"YulFunctionCall","src":"10963:51:88"},"nativeSrc":"10963:51:88","nodeType":"YulExpressionStatement","src":"10963:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11034:9:88","nodeType":"YulIdentifier","src":"11034:9:88"},{"kind":"number","nativeSrc":"11045:2:88","nodeType":"YulLiteral","src":"11045:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11030:3:88","nodeType":"YulIdentifier","src":"11030:3:88"},"nativeSrc":"11030:18:88","nodeType":"YulFunctionCall","src":"11030:18:88"},{"name":"value1","nativeSrc":"11050:6:88","nodeType":"YulIdentifier","src":"11050:6:88"}],"functionName":{"name":"mstore","nativeSrc":"11023:6:88","nodeType":"YulIdentifier","src":"11023:6:88"},"nativeSrc":"11023:34:88","nodeType":"YulFunctionCall","src":"11023:34:88"},"nativeSrc":"11023:34:88","nodeType":"YulExpressionStatement","src":"11023:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11077:9:88","nodeType":"YulIdentifier","src":"11077:9:88"},{"kind":"number","nativeSrc":"11088:2:88","nodeType":"YulLiteral","src":"11088:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11073:3:88","nodeType":"YulIdentifier","src":"11073:3:88"},"nativeSrc":"11073:18:88","nodeType":"YulFunctionCall","src":"11073:18:88"},{"arguments":[{"name":"value2","nativeSrc":"11097:6:88","nodeType":"YulIdentifier","src":"11097:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11113:3:88","nodeType":"YulLiteral","src":"11113:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"11118:1:88","nodeType":"YulLiteral","src":"11118:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"11109:3:88","nodeType":"YulIdentifier","src":"11109:3:88"},"nativeSrc":"11109:11:88","nodeType":"YulFunctionCall","src":"11109:11:88"},{"kind":"number","nativeSrc":"11122:1:88","nodeType":"YulLiteral","src":"11122:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11105:3:88","nodeType":"YulIdentifier","src":"11105:3:88"},"nativeSrc":"11105:19:88","nodeType":"YulFunctionCall","src":"11105:19:88"}],"functionName":{"name":"and","nativeSrc":"11093:3:88","nodeType":"YulIdentifier","src":"11093:3:88"},"nativeSrc":"11093:32:88","nodeType":"YulFunctionCall","src":"11093:32:88"}],"functionName":{"name":"mstore","nativeSrc":"11066:6:88","nodeType":"YulIdentifier","src":"11066:6:88"},"nativeSrc":"11066:60:88","nodeType":"YulFunctionCall","src":"11066:60:88"},"nativeSrc":"11066:60:88","nodeType":"YulExpressionStatement","src":"11066:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11146:9:88","nodeType":"YulIdentifier","src":"11146:9:88"},{"kind":"number","nativeSrc":"11157:2:88","nodeType":"YulLiteral","src":"11157:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11142:3:88","nodeType":"YulIdentifier","src":"11142:3:88"},"nativeSrc":"11142:18:88","nodeType":"YulFunctionCall","src":"11142:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"11176:6:88","nodeType":"YulIdentifier","src":"11176:6:88"}],"functionName":{"name":"iszero","nativeSrc":"11169:6:88","nodeType":"YulIdentifier","src":"11169:6:88"},"nativeSrc":"11169:14:88","nodeType":"YulFunctionCall","src":"11169:14:88"}],"functionName":{"name":"iszero","nativeSrc":"11162:6:88","nodeType":"YulIdentifier","src":"11162:6:88"},"nativeSrc":"11162:22:88","nodeType":"YulFunctionCall","src":"11162:22:88"}],"functionName":{"name":"mstore","nativeSrc":"11135:6:88","nodeType":"YulIdentifier","src":"11135:6:88"},"nativeSrc":"11135:50:88","nodeType":"YulFunctionCall","src":"11135:50:88"},"nativeSrc":"11135:50:88","nodeType":"YulExpressionStatement","src":"11135:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"10738:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10862:9:88","nodeType":"YulTypedName","src":"10862:9:88","type":""},{"name":"value3","nativeSrc":"10873:6:88","nodeType":"YulTypedName","src":"10873:6:88","type":""},{"name":"value2","nativeSrc":"10881:6:88","nodeType":"YulTypedName","src":"10881:6:88","type":""},{"name":"value1","nativeSrc":"10889:6:88","nodeType":"YulTypedName","src":"10889:6:88","type":""},{"name":"value0","nativeSrc":"10897:6:88","nodeType":"YulTypedName","src":"10897:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10908:4:88","nodeType":"YulTypedName","src":"10908:4:88","type":""}],"src":"10738:453:88"},{"body":{"nativeSrc":"11300:170:88","nodeType":"YulBlock","src":"11300:170:88","statements":[{"body":{"nativeSrc":"11346:16:88","nodeType":"YulBlock","src":"11346:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11355:1:88","nodeType":"YulLiteral","src":"11355:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11358:1:88","nodeType":"YulLiteral","src":"11358:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11348:6:88","nodeType":"YulIdentifier","src":"11348:6:88"},"nativeSrc":"11348:12:88","nodeType":"YulFunctionCall","src":"11348:12:88"},"nativeSrc":"11348:12:88","nodeType":"YulExpressionStatement","src":"11348:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11321:7:88","nodeType":"YulIdentifier","src":"11321:7:88"},{"name":"headStart","nativeSrc":"11330:9:88","nodeType":"YulIdentifier","src":"11330:9:88"}],"functionName":{"name":"sub","nativeSrc":"11317:3:88","nodeType":"YulIdentifier","src":"11317:3:88"},"nativeSrc":"11317:23:88","nodeType":"YulFunctionCall","src":"11317:23:88"},{"kind":"number","nativeSrc":"11342:2:88","nodeType":"YulLiteral","src":"11342:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11313:3:88","nodeType":"YulIdentifier","src":"11313:3:88"},"nativeSrc":"11313:32:88","nodeType":"YulFunctionCall","src":"11313:32:88"},"nativeSrc":"11310:52:88","nodeType":"YulIf","src":"11310:52:88"},{"nativeSrc":"11371:29:88","nodeType":"YulVariableDeclaration","src":"11371:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11390:9:88","nodeType":"YulIdentifier","src":"11390:9:88"}],"functionName":{"name":"mload","nativeSrc":"11384:5:88","nodeType":"YulIdentifier","src":"11384:5:88"},"nativeSrc":"11384:16:88","nodeType":"YulFunctionCall","src":"11384:16:88"},"variables":[{"name":"value","nativeSrc":"11375:5:88","nodeType":"YulTypedName","src":"11375:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11434:5:88","nodeType":"YulIdentifier","src":"11434:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11409:24:88","nodeType":"YulIdentifier","src":"11409:24:88"},"nativeSrc":"11409:31:88","nodeType":"YulFunctionCall","src":"11409:31:88"},"nativeSrc":"11409:31:88","nodeType":"YulExpressionStatement","src":"11409:31:88"},{"nativeSrc":"11449:15:88","nodeType":"YulAssignment","src":"11449:15:88","value":{"name":"value","nativeSrc":"11459:5:88","nodeType":"YulIdentifier","src":"11459:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11449:6:88","nodeType":"YulIdentifier","src":"11449:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"11196:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11266:9:88","nodeType":"YulTypedName","src":"11266:9:88","type":""},{"name":"dataEnd","nativeSrc":"11277:7:88","nodeType":"YulTypedName","src":"11277:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11289:6:88","nodeType":"YulTypedName","src":"11289:6:88","type":""}],"src":"11196:274:88"},{"body":{"nativeSrc":"11554:194:88","nodeType":"YulBlock","src":"11554:194:88","statements":[{"body":{"nativeSrc":"11600:16:88","nodeType":"YulBlock","src":"11600:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11609:1:88","nodeType":"YulLiteral","src":"11609:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11612:1:88","nodeType":"YulLiteral","src":"11612:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11602:6:88","nodeType":"YulIdentifier","src":"11602:6:88"},"nativeSrc":"11602:12:88","nodeType":"YulFunctionCall","src":"11602:12:88"},"nativeSrc":"11602:12:88","nodeType":"YulExpressionStatement","src":"11602:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11575:7:88","nodeType":"YulIdentifier","src":"11575:7:88"},{"name":"headStart","nativeSrc":"11584:9:88","nodeType":"YulIdentifier","src":"11584:9:88"}],"functionName":{"name":"sub","nativeSrc":"11571:3:88","nodeType":"YulIdentifier","src":"11571:3:88"},"nativeSrc":"11571:23:88","nodeType":"YulFunctionCall","src":"11571:23:88"},{"kind":"number","nativeSrc":"11596:2:88","nodeType":"YulLiteral","src":"11596:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11567:3:88","nodeType":"YulIdentifier","src":"11567:3:88"},"nativeSrc":"11567:32:88","nodeType":"YulFunctionCall","src":"11567:32:88"},"nativeSrc":"11564:52:88","nodeType":"YulIf","src":"11564:52:88"},{"nativeSrc":"11625:29:88","nodeType":"YulVariableDeclaration","src":"11625:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11644:9:88","nodeType":"YulIdentifier","src":"11644:9:88"}],"functionName":{"name":"mload","nativeSrc":"11638:5:88","nodeType":"YulIdentifier","src":"11638:5:88"},"nativeSrc":"11638:16:88","nodeType":"YulFunctionCall","src":"11638:16:88"},"variables":[{"name":"value","nativeSrc":"11629:5:88","nodeType":"YulTypedName","src":"11629:5:88","type":""}]},{"body":{"nativeSrc":"11702:16:88","nodeType":"YulBlock","src":"11702:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11711:1:88","nodeType":"YulLiteral","src":"11711:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11714:1:88","nodeType":"YulLiteral","src":"11714:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11704:6:88","nodeType":"YulIdentifier","src":"11704:6:88"},"nativeSrc":"11704:12:88","nodeType":"YulFunctionCall","src":"11704:12:88"},"nativeSrc":"11704:12:88","nodeType":"YulExpressionStatement","src":"11704:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11676:5:88","nodeType":"YulIdentifier","src":"11676:5:88"},{"arguments":[{"name":"value","nativeSrc":"11687:5:88","nodeType":"YulIdentifier","src":"11687:5:88"},{"kind":"number","nativeSrc":"11694:4:88","nodeType":"YulLiteral","src":"11694:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"11683:3:88","nodeType":"YulIdentifier","src":"11683:3:88"},"nativeSrc":"11683:16:88","nodeType":"YulFunctionCall","src":"11683:16:88"}],"functionName":{"name":"eq","nativeSrc":"11673:2:88","nodeType":"YulIdentifier","src":"11673:2:88"},"nativeSrc":"11673:27:88","nodeType":"YulFunctionCall","src":"11673:27:88"}],"functionName":{"name":"iszero","nativeSrc":"11666:6:88","nodeType":"YulIdentifier","src":"11666:6:88"},"nativeSrc":"11666:35:88","nodeType":"YulFunctionCall","src":"11666:35:88"},"nativeSrc":"11663:55:88","nodeType":"YulIf","src":"11663:55:88"},{"nativeSrc":"11727:15:88","nodeType":"YulAssignment","src":"11727:15:88","value":{"name":"value","nativeSrc":"11737:5:88","nodeType":"YulIdentifier","src":"11737:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11727:6:88","nodeType":"YulIdentifier","src":"11727:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"11475:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11520:9:88","nodeType":"YulTypedName","src":"11520:9:88","type":""},{"name":"dataEnd","nativeSrc":"11531:7:88","nodeType":"YulTypedName","src":"11531:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11543:6:88","nodeType":"YulTypedName","src":"11543:6:88","type":""}],"src":"11475:273:88"},{"body":{"nativeSrc":"11927:234:88","nodeType":"YulBlock","src":"11927:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11944:9:88","nodeType":"YulIdentifier","src":"11944:9:88"},{"kind":"number","nativeSrc":"11955:2:88","nodeType":"YulLiteral","src":"11955:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11937:6:88","nodeType":"YulIdentifier","src":"11937:6:88"},"nativeSrc":"11937:21:88","nodeType":"YulFunctionCall","src":"11937:21:88"},"nativeSrc":"11937:21:88","nodeType":"YulExpressionStatement","src":"11937:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11978:9:88","nodeType":"YulIdentifier","src":"11978:9:88"},{"kind":"number","nativeSrc":"11989:2:88","nodeType":"YulLiteral","src":"11989:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11974:3:88","nodeType":"YulIdentifier","src":"11974:3:88"},"nativeSrc":"11974:18:88","nodeType":"YulFunctionCall","src":"11974:18:88"},{"kind":"number","nativeSrc":"11994:2:88","nodeType":"YulLiteral","src":"11994:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"11967:6:88","nodeType":"YulIdentifier","src":"11967:6:88"},"nativeSrc":"11967:30:88","nodeType":"YulFunctionCall","src":"11967:30:88"},"nativeSrc":"11967:30:88","nodeType":"YulExpressionStatement","src":"11967:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12017:9:88","nodeType":"YulIdentifier","src":"12017:9:88"},{"kind":"number","nativeSrc":"12028:2:88","nodeType":"YulLiteral","src":"12028:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12013:3:88","nodeType":"YulIdentifier","src":"12013:3:88"},"nativeSrc":"12013:18:88","nodeType":"YulFunctionCall","src":"12013:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"12033:34:88","nodeType":"YulLiteral","src":"12033:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"12006:6:88","nodeType":"YulIdentifier","src":"12006:6:88"},"nativeSrc":"12006:62:88","nodeType":"YulFunctionCall","src":"12006:62:88"},"nativeSrc":"12006:62:88","nodeType":"YulExpressionStatement","src":"12006:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12088:9:88","nodeType":"YulIdentifier","src":"12088:9:88"},{"kind":"number","nativeSrc":"12099:2:88","nodeType":"YulLiteral","src":"12099:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12084:3:88","nodeType":"YulIdentifier","src":"12084:3:88"},"nativeSrc":"12084:18:88","nodeType":"YulFunctionCall","src":"12084:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"12104:14:88","nodeType":"YulLiteral","src":"12104:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"12077:6:88","nodeType":"YulIdentifier","src":"12077:6:88"},"nativeSrc":"12077:42:88","nodeType":"YulFunctionCall","src":"12077:42:88"},"nativeSrc":"12077:42:88","nodeType":"YulExpressionStatement","src":"12077:42:88"},{"nativeSrc":"12128:27:88","nodeType":"YulAssignment","src":"12128:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12140:9:88","nodeType":"YulIdentifier","src":"12140:9:88"},{"kind":"number","nativeSrc":"12151:3:88","nodeType":"YulLiteral","src":"12151:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12136:3:88","nodeType":"YulIdentifier","src":"12136:3:88"},"nativeSrc":"12136:19:88","nodeType":"YulFunctionCall","src":"12136:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12128:4:88","nodeType":"YulIdentifier","src":"12128:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11753:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11904:9:88","nodeType":"YulTypedName","src":"11904:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11918:4:88","nodeType":"YulTypedName","src":"11918:4:88","type":""}],"src":"11753:408:88"},{"body":{"nativeSrc":"12340:234:88","nodeType":"YulBlock","src":"12340:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12357:9:88","nodeType":"YulIdentifier","src":"12357:9:88"},{"kind":"number","nativeSrc":"12368:2:88","nodeType":"YulLiteral","src":"12368:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12350:6:88","nodeType":"YulIdentifier","src":"12350:6:88"},"nativeSrc":"12350:21:88","nodeType":"YulFunctionCall","src":"12350:21:88"},"nativeSrc":"12350:21:88","nodeType":"YulExpressionStatement","src":"12350:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12391:9:88","nodeType":"YulIdentifier","src":"12391:9:88"},{"kind":"number","nativeSrc":"12402:2:88","nodeType":"YulLiteral","src":"12402:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12387:3:88","nodeType":"YulIdentifier","src":"12387:3:88"},"nativeSrc":"12387:18:88","nodeType":"YulFunctionCall","src":"12387:18:88"},{"kind":"number","nativeSrc":"12407:2:88","nodeType":"YulLiteral","src":"12407:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"12380:6:88","nodeType":"YulIdentifier","src":"12380:6:88"},"nativeSrc":"12380:30:88","nodeType":"YulFunctionCall","src":"12380:30:88"},"nativeSrc":"12380:30:88","nodeType":"YulExpressionStatement","src":"12380:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12430:9:88","nodeType":"YulIdentifier","src":"12430:9:88"},{"kind":"number","nativeSrc":"12441:2:88","nodeType":"YulLiteral","src":"12441:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12426:3:88","nodeType":"YulIdentifier","src":"12426:3:88"},"nativeSrc":"12426:18:88","nodeType":"YulFunctionCall","src":"12426:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"12446:34:88","nodeType":"YulLiteral","src":"12446:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"12419:6:88","nodeType":"YulIdentifier","src":"12419:6:88"},"nativeSrc":"12419:62:88","nodeType":"YulFunctionCall","src":"12419:62:88"},"nativeSrc":"12419:62:88","nodeType":"YulExpressionStatement","src":"12419:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12501:9:88","nodeType":"YulIdentifier","src":"12501:9:88"},{"kind":"number","nativeSrc":"12512:2:88","nodeType":"YulLiteral","src":"12512:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12497:3:88","nodeType":"YulIdentifier","src":"12497:3:88"},"nativeSrc":"12497:18:88","nodeType":"YulFunctionCall","src":"12497:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"12517:14:88","nodeType":"YulLiteral","src":"12517:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"12490:6:88","nodeType":"YulIdentifier","src":"12490:6:88"},"nativeSrc":"12490:42:88","nodeType":"YulFunctionCall","src":"12490:42:88"},"nativeSrc":"12490:42:88","nodeType":"YulExpressionStatement","src":"12490:42:88"},{"nativeSrc":"12541:27:88","nodeType":"YulAssignment","src":"12541:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12553:9:88","nodeType":"YulIdentifier","src":"12553:9:88"},{"kind":"number","nativeSrc":"12564:3:88","nodeType":"YulLiteral","src":"12564:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12549:3:88","nodeType":"YulIdentifier","src":"12549:3:88"},"nativeSrc":"12549:19:88","nodeType":"YulFunctionCall","src":"12549:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12541:4:88","nodeType":"YulIdentifier","src":"12541:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12166:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12317:9:88","nodeType":"YulTypedName","src":"12317:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12331:4:88","nodeType":"YulTypedName","src":"12331:4:88","type":""}],"src":"12166:408:88"},{"body":{"nativeSrc":"12627:77:88","nodeType":"YulBlock","src":"12627:77:88","statements":[{"nativeSrc":"12637:16:88","nodeType":"YulAssignment","src":"12637:16:88","value":{"arguments":[{"name":"x","nativeSrc":"12648:1:88","nodeType":"YulIdentifier","src":"12648:1:88"},{"name":"y","nativeSrc":"12651:1:88","nodeType":"YulIdentifier","src":"12651:1:88"}],"functionName":{"name":"add","nativeSrc":"12644:3:88","nodeType":"YulIdentifier","src":"12644:3:88"},"nativeSrc":"12644:9:88","nodeType":"YulFunctionCall","src":"12644:9:88"},"variableNames":[{"name":"sum","nativeSrc":"12637:3:88","nodeType":"YulIdentifier","src":"12637:3:88"}]},{"body":{"nativeSrc":"12676:22:88","nodeType":"YulBlock","src":"12676:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12678:16:88","nodeType":"YulIdentifier","src":"12678:16:88"},"nativeSrc":"12678:18:88","nodeType":"YulFunctionCall","src":"12678:18:88"},"nativeSrc":"12678:18:88","nodeType":"YulExpressionStatement","src":"12678:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"12668:1:88","nodeType":"YulIdentifier","src":"12668:1:88"},{"name":"sum","nativeSrc":"12671:3:88","nodeType":"YulIdentifier","src":"12671:3:88"}],"functionName":{"name":"gt","nativeSrc":"12665:2:88","nodeType":"YulIdentifier","src":"12665:2:88"},"nativeSrc":"12665:10:88","nodeType":"YulFunctionCall","src":"12665:10:88"},"nativeSrc":"12662:36:88","nodeType":"YulIf","src":"12662:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"12579:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12610:1:88","nodeType":"YulTypedName","src":"12610:1:88","type":""},{"name":"y","nativeSrc":"12613:1:88","nodeType":"YulTypedName","src":"12613:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"12619:3:88","nodeType":"YulTypedName","src":"12619:3:88","type":""}],"src":"12579:125:88"},{"body":{"nativeSrc":"12916:318:88","nodeType":"YulBlock","src":"12916:318:88","statements":[{"nativeSrc":"12926:27:88","nodeType":"YulAssignment","src":"12926:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12938:9:88","nodeType":"YulIdentifier","src":"12938:9:88"},{"kind":"number","nativeSrc":"12949:3:88","nodeType":"YulLiteral","src":"12949:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12934:3:88","nodeType":"YulIdentifier","src":"12934:3:88"},"nativeSrc":"12934:19:88","nodeType":"YulFunctionCall","src":"12934:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12926:4:88","nodeType":"YulIdentifier","src":"12926:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12969:9:88","nodeType":"YulIdentifier","src":"12969:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12984:6:88","nodeType":"YulIdentifier","src":"12984:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13000:3:88","nodeType":"YulLiteral","src":"13000:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13005:1:88","nodeType":"YulLiteral","src":"13005:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12996:3:88","nodeType":"YulIdentifier","src":"12996:3:88"},"nativeSrc":"12996:11:88","nodeType":"YulFunctionCall","src":"12996:11:88"},{"kind":"number","nativeSrc":"13009:1:88","nodeType":"YulLiteral","src":"13009:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12992:3:88","nodeType":"YulIdentifier","src":"12992:3:88"},"nativeSrc":"12992:19:88","nodeType":"YulFunctionCall","src":"12992:19:88"}],"functionName":{"name":"and","nativeSrc":"12980:3:88","nodeType":"YulIdentifier","src":"12980:3:88"},"nativeSrc":"12980:32:88","nodeType":"YulFunctionCall","src":"12980:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12962:6:88","nodeType":"YulIdentifier","src":"12962:6:88"},"nativeSrc":"12962:51:88","nodeType":"YulFunctionCall","src":"12962:51:88"},"nativeSrc":"12962:51:88","nodeType":"YulExpressionStatement","src":"12962:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13033:9:88","nodeType":"YulIdentifier","src":"13033:9:88"},{"kind":"number","nativeSrc":"13044:2:88","nodeType":"YulLiteral","src":"13044:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13029:3:88","nodeType":"YulIdentifier","src":"13029:3:88"},"nativeSrc":"13029:18:88","nodeType":"YulFunctionCall","src":"13029:18:88"},{"name":"value1","nativeSrc":"13049:6:88","nodeType":"YulIdentifier","src":"13049:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13022:6:88","nodeType":"YulIdentifier","src":"13022:6:88"},"nativeSrc":"13022:34:88","nodeType":"YulFunctionCall","src":"13022:34:88"},"nativeSrc":"13022:34:88","nodeType":"YulExpressionStatement","src":"13022:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13076:9:88","nodeType":"YulIdentifier","src":"13076:9:88"},{"kind":"number","nativeSrc":"13087:2:88","nodeType":"YulLiteral","src":"13087:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13072:3:88","nodeType":"YulIdentifier","src":"13072:3:88"},"nativeSrc":"13072:18:88","nodeType":"YulFunctionCall","src":"13072:18:88"},{"name":"value2","nativeSrc":"13092:6:88","nodeType":"YulIdentifier","src":"13092:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13065:6:88","nodeType":"YulIdentifier","src":"13065:6:88"},"nativeSrc":"13065:34:88","nodeType":"YulFunctionCall","src":"13065:34:88"},"nativeSrc":"13065:34:88","nodeType":"YulExpressionStatement","src":"13065:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13119:9:88","nodeType":"YulIdentifier","src":"13119:9:88"},{"kind":"number","nativeSrc":"13130:2:88","nodeType":"YulLiteral","src":"13130:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13115:3:88","nodeType":"YulIdentifier","src":"13115:3:88"},"nativeSrc":"13115:18:88","nodeType":"YulFunctionCall","src":"13115:18:88"},{"arguments":[{"name":"value3","nativeSrc":"13139:6:88","nodeType":"YulIdentifier","src":"13139:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13155:3:88","nodeType":"YulLiteral","src":"13155:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13160:1:88","nodeType":"YulLiteral","src":"13160:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13151:3:88","nodeType":"YulIdentifier","src":"13151:3:88"},"nativeSrc":"13151:11:88","nodeType":"YulFunctionCall","src":"13151:11:88"},{"kind":"number","nativeSrc":"13164:1:88","nodeType":"YulLiteral","src":"13164:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13147:3:88","nodeType":"YulIdentifier","src":"13147:3:88"},"nativeSrc":"13147:19:88","nodeType":"YulFunctionCall","src":"13147:19:88"}],"functionName":{"name":"and","nativeSrc":"13135:3:88","nodeType":"YulIdentifier","src":"13135:3:88"},"nativeSrc":"13135:32:88","nodeType":"YulFunctionCall","src":"13135:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13108:6:88","nodeType":"YulIdentifier","src":"13108:6:88"},"nativeSrc":"13108:60:88","nodeType":"YulFunctionCall","src":"13108:60:88"},"nativeSrc":"13108:60:88","nodeType":"YulExpressionStatement","src":"13108:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13188:9:88","nodeType":"YulIdentifier","src":"13188:9:88"},{"kind":"number","nativeSrc":"13199:3:88","nodeType":"YulLiteral","src":"13199:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13184:3:88","nodeType":"YulIdentifier","src":"13184:3:88"},"nativeSrc":"13184:19:88","nodeType":"YulFunctionCall","src":"13184:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"13219:6:88","nodeType":"YulIdentifier","src":"13219:6:88"}],"functionName":{"name":"iszero","nativeSrc":"13212:6:88","nodeType":"YulIdentifier","src":"13212:6:88"},"nativeSrc":"13212:14:88","nodeType":"YulFunctionCall","src":"13212:14:88"}],"functionName":{"name":"iszero","nativeSrc":"13205:6:88","nodeType":"YulIdentifier","src":"13205:6:88"},"nativeSrc":"13205:22:88","nodeType":"YulFunctionCall","src":"13205:22:88"}],"functionName":{"name":"mstore","nativeSrc":"13177:6:88","nodeType":"YulIdentifier","src":"13177:6:88"},"nativeSrc":"13177:51:88","nodeType":"YulFunctionCall","src":"13177:51:88"},"nativeSrc":"13177:51:88","nodeType":"YulExpressionStatement","src":"13177:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"12709:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12853:9:88","nodeType":"YulTypedName","src":"12853:9:88","type":""},{"name":"value4","nativeSrc":"12864:6:88","nodeType":"YulTypedName","src":"12864:6:88","type":""},{"name":"value3","nativeSrc":"12872:6:88","nodeType":"YulTypedName","src":"12872:6:88","type":""},{"name":"value2","nativeSrc":"12880:6:88","nodeType":"YulTypedName","src":"12880:6:88","type":""},{"name":"value1","nativeSrc":"12888:6:88","nodeType":"YulTypedName","src":"12888:6:88","type":""},{"name":"value0","nativeSrc":"12896:6:88","nodeType":"YulTypedName","src":"12896:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12907:4:88","nodeType":"YulTypedName","src":"12907:4:88","type":""}],"src":"12709:525:88"},{"body":{"nativeSrc":"13412:214:88","nodeType":"YulBlock","src":"13412:214:88","statements":[{"nativeSrc":"13422:26:88","nodeType":"YulAssignment","src":"13422:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13434:9:88","nodeType":"YulIdentifier","src":"13434:9:88"},{"kind":"number","nativeSrc":"13445:2:88","nodeType":"YulLiteral","src":"13445:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13430:3:88","nodeType":"YulIdentifier","src":"13430:3:88"},"nativeSrc":"13430:18:88","nodeType":"YulFunctionCall","src":"13430:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13422:4:88","nodeType":"YulIdentifier","src":"13422:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13464:9:88","nodeType":"YulIdentifier","src":"13464:9:88"},{"arguments":[{"name":"value0","nativeSrc":"13479:6:88","nodeType":"YulIdentifier","src":"13479:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13495:3:88","nodeType":"YulLiteral","src":"13495:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13500:1:88","nodeType":"YulLiteral","src":"13500:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13491:3:88","nodeType":"YulIdentifier","src":"13491:3:88"},"nativeSrc":"13491:11:88","nodeType":"YulFunctionCall","src":"13491:11:88"},{"kind":"number","nativeSrc":"13504:1:88","nodeType":"YulLiteral","src":"13504:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13487:3:88","nodeType":"YulIdentifier","src":"13487:3:88"},"nativeSrc":"13487:19:88","nodeType":"YulFunctionCall","src":"13487:19:88"}],"functionName":{"name":"and","nativeSrc":"13475:3:88","nodeType":"YulIdentifier","src":"13475:3:88"},"nativeSrc":"13475:32:88","nodeType":"YulFunctionCall","src":"13475:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13457:6:88","nodeType":"YulIdentifier","src":"13457:6:88"},"nativeSrc":"13457:51:88","nodeType":"YulFunctionCall","src":"13457:51:88"},"nativeSrc":"13457:51:88","nodeType":"YulExpressionStatement","src":"13457:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13528:9:88","nodeType":"YulIdentifier","src":"13528:9:88"},{"kind":"number","nativeSrc":"13539:2:88","nodeType":"YulLiteral","src":"13539:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13524:3:88","nodeType":"YulIdentifier","src":"13524:3:88"},"nativeSrc":"13524:18:88","nodeType":"YulFunctionCall","src":"13524:18:88"},{"arguments":[{"name":"value1","nativeSrc":"13548:6:88","nodeType":"YulIdentifier","src":"13548:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13564:3:88","nodeType":"YulLiteral","src":"13564:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13569:1:88","nodeType":"YulLiteral","src":"13569:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13560:3:88","nodeType":"YulIdentifier","src":"13560:3:88"},"nativeSrc":"13560:11:88","nodeType":"YulFunctionCall","src":"13560:11:88"},{"kind":"number","nativeSrc":"13573:1:88","nodeType":"YulLiteral","src":"13573:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13556:3:88","nodeType":"YulIdentifier","src":"13556:3:88"},"nativeSrc":"13556:19:88","nodeType":"YulFunctionCall","src":"13556:19:88"}],"functionName":{"name":"and","nativeSrc":"13544:3:88","nodeType":"YulIdentifier","src":"13544:3:88"},"nativeSrc":"13544:32:88","nodeType":"YulFunctionCall","src":"13544:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13517:6:88","nodeType":"YulIdentifier","src":"13517:6:88"},"nativeSrc":"13517:60:88","nodeType":"YulFunctionCall","src":"13517:60:88"},"nativeSrc":"13517:60:88","nodeType":"YulExpressionStatement","src":"13517:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13597:9:88","nodeType":"YulIdentifier","src":"13597:9:88"},{"kind":"number","nativeSrc":"13608:2:88","nodeType":"YulLiteral","src":"13608:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13593:3:88","nodeType":"YulIdentifier","src":"13593:3:88"},"nativeSrc":"13593:18:88","nodeType":"YulFunctionCall","src":"13593:18:88"},{"name":"value2","nativeSrc":"13613:6:88","nodeType":"YulIdentifier","src":"13613:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13586:6:88","nodeType":"YulIdentifier","src":"13586:6:88"},"nativeSrc":"13586:34:88","nodeType":"YulFunctionCall","src":"13586:34:88"},"nativeSrc":"13586:34:88","nodeType":"YulExpressionStatement","src":"13586:34:88"}]},"name":"abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"13239:387:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13365:9:88","nodeType":"YulTypedName","src":"13365:9:88","type":""},{"name":"value2","nativeSrc":"13376:6:88","nodeType":"YulTypedName","src":"13376:6:88","type":""},{"name":"value1","nativeSrc":"13384:6:88","nodeType":"YulTypedName","src":"13384:6:88","type":""},{"name":"value0","nativeSrc":"13392:6:88","nodeType":"YulTypedName","src":"13392:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13403:4:88","nodeType":"YulTypedName","src":"13403:4:88","type":""}],"src":"13239:387:88"},{"body":{"nativeSrc":"13709:167:88","nodeType":"YulBlock","src":"13709:167:88","statements":[{"body":{"nativeSrc":"13755:16:88","nodeType":"YulBlock","src":"13755:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13764:1:88","nodeType":"YulLiteral","src":"13764:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13767:1:88","nodeType":"YulLiteral","src":"13767:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13757:6:88","nodeType":"YulIdentifier","src":"13757:6:88"},"nativeSrc":"13757:12:88","nodeType":"YulFunctionCall","src":"13757:12:88"},"nativeSrc":"13757:12:88","nodeType":"YulExpressionStatement","src":"13757:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13730:7:88","nodeType":"YulIdentifier","src":"13730:7:88"},{"name":"headStart","nativeSrc":"13739:9:88","nodeType":"YulIdentifier","src":"13739:9:88"}],"functionName":{"name":"sub","nativeSrc":"13726:3:88","nodeType":"YulIdentifier","src":"13726:3:88"},"nativeSrc":"13726:23:88","nodeType":"YulFunctionCall","src":"13726:23:88"},{"kind":"number","nativeSrc":"13751:2:88","nodeType":"YulLiteral","src":"13751:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13722:3:88","nodeType":"YulIdentifier","src":"13722:3:88"},"nativeSrc":"13722:32:88","nodeType":"YulFunctionCall","src":"13722:32:88"},"nativeSrc":"13719:52:88","nodeType":"YulIf","src":"13719:52:88"},{"nativeSrc":"13780:29:88","nodeType":"YulVariableDeclaration","src":"13780:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13799:9:88","nodeType":"YulIdentifier","src":"13799:9:88"}],"functionName":{"name":"mload","nativeSrc":"13793:5:88","nodeType":"YulIdentifier","src":"13793:5:88"},"nativeSrc":"13793:16:88","nodeType":"YulFunctionCall","src":"13793:16:88"},"variables":[{"name":"value","nativeSrc":"13784:5:88","nodeType":"YulTypedName","src":"13784:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13840:5:88","nodeType":"YulIdentifier","src":"13840:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"13818:21:88","nodeType":"YulIdentifier","src":"13818:21:88"},"nativeSrc":"13818:28:88","nodeType":"YulFunctionCall","src":"13818:28:88"},"nativeSrc":"13818:28:88","nodeType":"YulExpressionStatement","src":"13818:28:88"},{"nativeSrc":"13855:15:88","nodeType":"YulAssignment","src":"13855:15:88","value":{"name":"value","nativeSrc":"13865:5:88","nodeType":"YulIdentifier","src":"13865:5:88"},"variableNames":[{"name":"value0","nativeSrc":"13855:6:88","nodeType":"YulIdentifier","src":"13855:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"13631:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13675:9:88","nodeType":"YulTypedName","src":"13675:9:88","type":""},{"name":"dataEnd","nativeSrc":"13686:7:88","nodeType":"YulTypedName","src":"13686:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13698:6:88","nodeType":"YulTypedName","src":"13698:6:88","type":""}],"src":"13631:245:88"},{"body":{"nativeSrc":"14055:224:88","nodeType":"YulBlock","src":"14055:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14072:9:88","nodeType":"YulIdentifier","src":"14072:9:88"},{"kind":"number","nativeSrc":"14083:2:88","nodeType":"YulLiteral","src":"14083:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14065:6:88","nodeType":"YulIdentifier","src":"14065:6:88"},"nativeSrc":"14065:21:88","nodeType":"YulFunctionCall","src":"14065:21:88"},"nativeSrc":"14065:21:88","nodeType":"YulExpressionStatement","src":"14065:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14106:9:88","nodeType":"YulIdentifier","src":"14106:9:88"},{"kind":"number","nativeSrc":"14117:2:88","nodeType":"YulLiteral","src":"14117:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14102:3:88","nodeType":"YulIdentifier","src":"14102:3:88"},"nativeSrc":"14102:18:88","nodeType":"YulFunctionCall","src":"14102:18:88"},{"kind":"number","nativeSrc":"14122:2:88","nodeType":"YulLiteral","src":"14122:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"14095:6:88","nodeType":"YulIdentifier","src":"14095:6:88"},"nativeSrc":"14095:30:88","nodeType":"YulFunctionCall","src":"14095:30:88"},"nativeSrc":"14095:30:88","nodeType":"YulExpressionStatement","src":"14095:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14145:9:88","nodeType":"YulIdentifier","src":"14145:9:88"},{"kind":"number","nativeSrc":"14156:2:88","nodeType":"YulLiteral","src":"14156:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14141:3:88","nodeType":"YulIdentifier","src":"14141:3:88"},"nativeSrc":"14141:18:88","nodeType":"YulFunctionCall","src":"14141:18:88"},{"hexValue":"4c69717569646974792050726f7669646572206e6f742077686974656c697374","kind":"string","nativeSrc":"14161:34:88","nodeType":"YulLiteral","src":"14161:34:88","type":"","value":"Liquidity Provider not whitelist"}],"functionName":{"name":"mstore","nativeSrc":"14134:6:88","nodeType":"YulIdentifier","src":"14134:6:88"},"nativeSrc":"14134:62:88","nodeType":"YulFunctionCall","src":"14134:62:88"},"nativeSrc":"14134:62:88","nodeType":"YulExpressionStatement","src":"14134:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14216:9:88","nodeType":"YulIdentifier","src":"14216:9:88"},{"kind":"number","nativeSrc":"14227:2:88","nodeType":"YulLiteral","src":"14227:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14212:3:88","nodeType":"YulIdentifier","src":"14212:3:88"},"nativeSrc":"14212:18:88","nodeType":"YulFunctionCall","src":"14212:18:88"},{"hexValue":"6564","kind":"string","nativeSrc":"14232:4:88","nodeType":"YulLiteral","src":"14232:4:88","type":"","value":"ed"}],"functionName":{"name":"mstore","nativeSrc":"14205:6:88","nodeType":"YulIdentifier","src":"14205:6:88"},"nativeSrc":"14205:32:88","nodeType":"YulFunctionCall","src":"14205:32:88"},"nativeSrc":"14205:32:88","nodeType":"YulExpressionStatement","src":"14205:32:88"},{"nativeSrc":"14246:27:88","nodeType":"YulAssignment","src":"14246:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14258:9:88","nodeType":"YulIdentifier","src":"14258:9:88"},{"kind":"number","nativeSrc":"14269:3:88","nodeType":"YulLiteral","src":"14269:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14254:3:88","nodeType":"YulIdentifier","src":"14254:3:88"},"nativeSrc":"14254:19:88","nodeType":"YulFunctionCall","src":"14254:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14246:4:88","nodeType":"YulIdentifier","src":"14246:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13881:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14032:9:88","nodeType":"YulTypedName","src":"14032:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14046:4:88","nodeType":"YulTypedName","src":"14046:4:88","type":""}],"src":"13881:398:88"},{"body":{"nativeSrc":"14458:231:88","nodeType":"YulBlock","src":"14458:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14475:9:88","nodeType":"YulIdentifier","src":"14475:9:88"},{"kind":"number","nativeSrc":"14486:2:88","nodeType":"YulLiteral","src":"14486:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14468:6:88","nodeType":"YulIdentifier","src":"14468:6:88"},"nativeSrc":"14468:21:88","nodeType":"YulFunctionCall","src":"14468:21:88"},"nativeSrc":"14468:21:88","nodeType":"YulExpressionStatement","src":"14468:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14509:9:88","nodeType":"YulIdentifier","src":"14509:9:88"},{"kind":"number","nativeSrc":"14520:2:88","nodeType":"YulLiteral","src":"14520:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14505:3:88","nodeType":"YulIdentifier","src":"14505:3:88"},"nativeSrc":"14505:18:88","nodeType":"YulFunctionCall","src":"14505:18:88"},{"kind":"number","nativeSrc":"14525:2:88","nodeType":"YulLiteral","src":"14525:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"14498:6:88","nodeType":"YulIdentifier","src":"14498:6:88"},"nativeSrc":"14498:30:88","nodeType":"YulFunctionCall","src":"14498:30:88"},"nativeSrc":"14498:30:88","nodeType":"YulExpressionStatement","src":"14498:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14548:9:88","nodeType":"YulIdentifier","src":"14548:9:88"},{"kind":"number","nativeSrc":"14559:2:88","nodeType":"YulLiteral","src":"14559:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14544:3:88","nodeType":"YulIdentifier","src":"14544:3:88"},"nativeSrc":"14544:18:88","nodeType":"YulFunctionCall","src":"14544:18:88"},{"hexValue":"4465706f7369742072656a6563746564202d205574696c697a6174696f6e2052","kind":"string","nativeSrc":"14564:34:88","nodeType":"YulLiteral","src":"14564:34:88","type":"","value":"Deposit rejected - Utilization R"}],"functionName":{"name":"mstore","nativeSrc":"14537:6:88","nodeType":"YulIdentifier","src":"14537:6:88"},"nativeSrc":"14537:62:88","nodeType":"YulFunctionCall","src":"14537:62:88"},"nativeSrc":"14537:62:88","nodeType":"YulExpressionStatement","src":"14537:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14619:9:88","nodeType":"YulIdentifier","src":"14619:9:88"},{"kind":"number","nativeSrc":"14630:2:88","nodeType":"YulLiteral","src":"14630:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14615:3:88","nodeType":"YulIdentifier","src":"14615:3:88"},"nativeSrc":"14615:18:88","nodeType":"YulFunctionCall","src":"14615:18:88"},{"hexValue":"617465203c206d696e","kind":"string","nativeSrc":"14635:11:88","nodeType":"YulLiteral","src":"14635:11:88","type":"","value":"ate < min"}],"functionName":{"name":"mstore","nativeSrc":"14608:6:88","nodeType":"YulIdentifier","src":"14608:6:88"},"nativeSrc":"14608:39:88","nodeType":"YulFunctionCall","src":"14608:39:88"},"nativeSrc":"14608:39:88","nodeType":"YulExpressionStatement","src":"14608:39:88"},{"nativeSrc":"14656:27:88","nodeType":"YulAssignment","src":"14656:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14668:9:88","nodeType":"YulIdentifier","src":"14668:9:88"},{"kind":"number","nativeSrc":"14679:3:88","nodeType":"YulLiteral","src":"14679:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14664:3:88","nodeType":"YulIdentifier","src":"14664:3:88"},"nativeSrc":"14664:19:88","nodeType":"YulFunctionCall","src":"14664:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14656:4:88","nodeType":"YulIdentifier","src":"14656:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1cf1ab238fe0c20d0965ab656551a00d67270e19d01bff76f89ab5be56d067ea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14284:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14435:9:88","nodeType":"YulTypedName","src":"14435:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14449:4:88","nodeType":"YulTypedName","src":"14449:4:88","type":""}],"src":"14284:405:88"},{"body":{"nativeSrc":"14774:103:88","nodeType":"YulBlock","src":"14774:103:88","statements":[{"body":{"nativeSrc":"14820:16:88","nodeType":"YulBlock","src":"14820:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14829:1:88","nodeType":"YulLiteral","src":"14829:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14832:1:88","nodeType":"YulLiteral","src":"14832:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14822:6:88","nodeType":"YulIdentifier","src":"14822:6:88"},"nativeSrc":"14822:12:88","nodeType":"YulFunctionCall","src":"14822:12:88"},"nativeSrc":"14822:12:88","nodeType":"YulExpressionStatement","src":"14822:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14795:7:88","nodeType":"YulIdentifier","src":"14795:7:88"},{"name":"headStart","nativeSrc":"14804:9:88","nodeType":"YulIdentifier","src":"14804:9:88"}],"functionName":{"name":"sub","nativeSrc":"14791:3:88","nodeType":"YulIdentifier","src":"14791:3:88"},"nativeSrc":"14791:23:88","nodeType":"YulFunctionCall","src":"14791:23:88"},{"kind":"number","nativeSrc":"14816:2:88","nodeType":"YulLiteral","src":"14816:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14787:3:88","nodeType":"YulIdentifier","src":"14787:3:88"},"nativeSrc":"14787:32:88","nodeType":"YulFunctionCall","src":"14787:32:88"},"nativeSrc":"14784:52:88","nodeType":"YulIf","src":"14784:52:88"},{"nativeSrc":"14845:26:88","nodeType":"YulAssignment","src":"14845:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14861:9:88","nodeType":"YulIdentifier","src":"14861:9:88"}],"functionName":{"name":"mload","nativeSrc":"14855:5:88","nodeType":"YulIdentifier","src":"14855:5:88"},"nativeSrc":"14855:16:88","nodeType":"YulFunctionCall","src":"14855:16:88"},"variableNames":[{"name":"value0","nativeSrc":"14845:6:88","nodeType":"YulIdentifier","src":"14845:6:88"}]}]},"name":"abi_decode_tuple_t_int256_fromMemory","nativeSrc":"14694:183:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14740:9:88","nodeType":"YulTypedName","src":"14740:9:88","type":""},{"name":"dataEnd","nativeSrc":"14751:7:88","nodeType":"YulTypedName","src":"14751:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14763:6:88","nodeType":"YulTypedName","src":"14763:6:88","type":""}],"src":"14694:183:88"},{"body":{"nativeSrc":"14963:103:88","nodeType":"YulBlock","src":"14963:103:88","statements":[{"body":{"nativeSrc":"15009:16:88","nodeType":"YulBlock","src":"15009:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15018:1:88","nodeType":"YulLiteral","src":"15018:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15021:1:88","nodeType":"YulLiteral","src":"15021:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15011:6:88","nodeType":"YulIdentifier","src":"15011:6:88"},"nativeSrc":"15011:12:88","nodeType":"YulFunctionCall","src":"15011:12:88"},"nativeSrc":"15011:12:88","nodeType":"YulExpressionStatement","src":"15011:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14984:7:88","nodeType":"YulIdentifier","src":"14984:7:88"},{"name":"headStart","nativeSrc":"14993:9:88","nodeType":"YulIdentifier","src":"14993:9:88"}],"functionName":{"name":"sub","nativeSrc":"14980:3:88","nodeType":"YulIdentifier","src":"14980:3:88"},"nativeSrc":"14980:23:88","nodeType":"YulFunctionCall","src":"14980:23:88"},{"kind":"number","nativeSrc":"15005:2:88","nodeType":"YulLiteral","src":"15005:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14976:3:88","nodeType":"YulIdentifier","src":"14976:3:88"},"nativeSrc":"14976:32:88","nodeType":"YulFunctionCall","src":"14976:32:88"},"nativeSrc":"14973:52:88","nodeType":"YulIf","src":"14973:52:88"},{"nativeSrc":"15034:26:88","nodeType":"YulAssignment","src":"15034:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15050:9:88","nodeType":"YulIdentifier","src":"15050:9:88"}],"functionName":{"name":"mload","nativeSrc":"15044:5:88","nodeType":"YulIdentifier","src":"15044:5:88"},"nativeSrc":"15044:16:88","nodeType":"YulFunctionCall","src":"15044:16:88"},"variableNames":[{"name":"value0","nativeSrc":"15034:6:88","nodeType":"YulIdentifier","src":"15034:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"14882:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14929:9:88","nodeType":"YulTypedName","src":"14929:9:88","type":""},{"name":"dataEnd","nativeSrc":"14940:7:88","nodeType":"YulTypedName","src":"14940:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14952:6:88","nodeType":"YulTypedName","src":"14952:6:88","type":""}],"src":"14882:184:88"},{"body":{"nativeSrc":"15245:246:88","nodeType":"YulBlock","src":"15245:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15262:9:88","nodeType":"YulIdentifier","src":"15262:9:88"},{"kind":"number","nativeSrc":"15273:2:88","nodeType":"YulLiteral","src":"15273:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15255:6:88","nodeType":"YulIdentifier","src":"15255:6:88"},"nativeSrc":"15255:21:88","nodeType":"YulFunctionCall","src":"15255:21:88"},"nativeSrc":"15255:21:88","nodeType":"YulExpressionStatement","src":"15255:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15296:9:88","nodeType":"YulIdentifier","src":"15296:9:88"},{"kind":"number","nativeSrc":"15307:2:88","nodeType":"YulLiteral","src":"15307:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15292:3:88","nodeType":"YulIdentifier","src":"15292:3:88"},"nativeSrc":"15292:18:88","nodeType":"YulFunctionCall","src":"15292:18:88"},{"kind":"number","nativeSrc":"15312:2:88","nodeType":"YulLiteral","src":"15312:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"15285:6:88","nodeType":"YulIdentifier","src":"15285:6:88"},"nativeSrc":"15285:30:88","nodeType":"YulFunctionCall","src":"15285:30:88"},"nativeSrc":"15285:30:88","nodeType":"YulExpressionStatement","src":"15285:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15335:9:88","nodeType":"YulIdentifier","src":"15335:9:88"},{"kind":"number","nativeSrc":"15346:2:88","nodeType":"YulLiteral","src":"15346:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15331:3:88","nodeType":"YulIdentifier","src":"15331:3:88"},"nativeSrc":"15331:18:88","nodeType":"YulFunctionCall","src":"15331:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"15351:34:88","nodeType":"YulLiteral","src":"15351:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"15324:6:88","nodeType":"YulIdentifier","src":"15324:6:88"},"nativeSrc":"15324:62:88","nodeType":"YulFunctionCall","src":"15324:62:88"},"nativeSrc":"15324:62:88","nodeType":"YulExpressionStatement","src":"15324:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15406:9:88","nodeType":"YulIdentifier","src":"15406:9:88"},{"kind":"number","nativeSrc":"15417:2:88","nodeType":"YulLiteral","src":"15417:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15402:3:88","nodeType":"YulIdentifier","src":"15402:3:88"},"nativeSrc":"15402:18:88","nodeType":"YulFunctionCall","src":"15402:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"15422:26:88","nodeType":"YulLiteral","src":"15422:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"15395:6:88","nodeType":"YulIdentifier","src":"15395:6:88"},"nativeSrc":"15395:54:88","nodeType":"YulFunctionCall","src":"15395:54:88"},"nativeSrc":"15395:54:88","nodeType":"YulExpressionStatement","src":"15395:54:88"},{"nativeSrc":"15458:27:88","nodeType":"YulAssignment","src":"15458:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15470:9:88","nodeType":"YulIdentifier","src":"15470:9:88"},{"kind":"number","nativeSrc":"15481:3:88","nodeType":"YulLiteral","src":"15481:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15466:3:88","nodeType":"YulIdentifier","src":"15466:3:88"},"nativeSrc":"15466:19:88","nodeType":"YulFunctionCall","src":"15466:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15458:4:88","nodeType":"YulIdentifier","src":"15458:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15071:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15222:9:88","nodeType":"YulTypedName","src":"15222:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15236:4:88","nodeType":"YulTypedName","src":"15236:4:88","type":""}],"src":"15071:420:88"},{"body":{"nativeSrc":"15670:236:88","nodeType":"YulBlock","src":"15670:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15687:9:88","nodeType":"YulIdentifier","src":"15687:9:88"},{"kind":"number","nativeSrc":"15698:2:88","nodeType":"YulLiteral","src":"15698:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15680:6:88","nodeType":"YulIdentifier","src":"15680:6:88"},"nativeSrc":"15680:21:88","nodeType":"YulFunctionCall","src":"15680:21:88"},"nativeSrc":"15680:21:88","nodeType":"YulExpressionStatement","src":"15680:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15721:9:88","nodeType":"YulIdentifier","src":"15721:9:88"},{"kind":"number","nativeSrc":"15732:2:88","nodeType":"YulLiteral","src":"15732:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15717:3:88","nodeType":"YulIdentifier","src":"15717:3:88"},"nativeSrc":"15717:18:88","nodeType":"YulFunctionCall","src":"15717:18:88"},{"kind":"number","nativeSrc":"15737:2:88","nodeType":"YulLiteral","src":"15737:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"15710:6:88","nodeType":"YulIdentifier","src":"15710:6:88"},"nativeSrc":"15710:30:88","nodeType":"YulFunctionCall","src":"15710:30:88"},"nativeSrc":"15710:30:88","nodeType":"YulExpressionStatement","src":"15710:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15760:9:88","nodeType":"YulIdentifier","src":"15760:9:88"},{"kind":"number","nativeSrc":"15771:2:88","nodeType":"YulLiteral","src":"15771:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15756:3:88","nodeType":"YulIdentifier","src":"15756:3:88"},"nativeSrc":"15756:18:88","nodeType":"YulFunctionCall","src":"15756:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"15776:34:88","nodeType":"YulLiteral","src":"15776:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"15749:6:88","nodeType":"YulIdentifier","src":"15749:6:88"},"nativeSrc":"15749:62:88","nodeType":"YulFunctionCall","src":"15749:62:88"},"nativeSrc":"15749:62:88","nodeType":"YulExpressionStatement","src":"15749:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15831:9:88","nodeType":"YulIdentifier","src":"15831:9:88"},{"kind":"number","nativeSrc":"15842:2:88","nodeType":"YulLiteral","src":"15842:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15827:3:88","nodeType":"YulIdentifier","src":"15827:3:88"},"nativeSrc":"15827:18:88","nodeType":"YulFunctionCall","src":"15827:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"15847:16:88","nodeType":"YulLiteral","src":"15847:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"15820:6:88","nodeType":"YulIdentifier","src":"15820:6:88"},"nativeSrc":"15820:44:88","nodeType":"YulFunctionCall","src":"15820:44:88"},"nativeSrc":"15820:44:88","nodeType":"YulExpressionStatement","src":"15820:44:88"},{"nativeSrc":"15873:27:88","nodeType":"YulAssignment","src":"15873:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15885:9:88","nodeType":"YulIdentifier","src":"15885:9:88"},{"kind":"number","nativeSrc":"15896:3:88","nodeType":"YulLiteral","src":"15896:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15881:3:88","nodeType":"YulIdentifier","src":"15881:3:88"},"nativeSrc":"15881:19:88","nodeType":"YulFunctionCall","src":"15881:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15873:4:88","nodeType":"YulIdentifier","src":"15873:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15496:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15647:9:88","nodeType":"YulTypedName","src":"15647:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15661:4:88","nodeType":"YulTypedName","src":"15661:4:88","type":""}],"src":"15496:410:88"},{"body":{"nativeSrc":"16018:87:88","nodeType":"YulBlock","src":"16018:87:88","statements":[{"nativeSrc":"16028:26:88","nodeType":"YulAssignment","src":"16028:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16040:9:88","nodeType":"YulIdentifier","src":"16040:9:88"},{"kind":"number","nativeSrc":"16051:2:88","nodeType":"YulLiteral","src":"16051:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16036:3:88","nodeType":"YulIdentifier","src":"16036:3:88"},"nativeSrc":"16036:18:88","nodeType":"YulFunctionCall","src":"16036:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16028:4:88","nodeType":"YulIdentifier","src":"16028:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16070:9:88","nodeType":"YulIdentifier","src":"16070:9:88"},{"arguments":[{"name":"value0","nativeSrc":"16085:6:88","nodeType":"YulIdentifier","src":"16085:6:88"},{"kind":"number","nativeSrc":"16093:4:88","nodeType":"YulLiteral","src":"16093:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"16081:3:88","nodeType":"YulIdentifier","src":"16081:3:88"},"nativeSrc":"16081:17:88","nodeType":"YulFunctionCall","src":"16081:17:88"}],"functionName":{"name":"mstore","nativeSrc":"16063:6:88","nodeType":"YulIdentifier","src":"16063:6:88"},"nativeSrc":"16063:36:88","nodeType":"YulFunctionCall","src":"16063:36:88"},"nativeSrc":"16063:36:88","nodeType":"YulExpressionStatement","src":"16063:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"15911:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15987:9:88","nodeType":"YulTypedName","src":"15987:9:88","type":""},{"name":"value0","nativeSrc":"15998:6:88","nodeType":"YulTypedName","src":"15998:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16009:4:88","nodeType":"YulTypedName","src":"16009:4:88","type":""}],"src":"15911:194:88"},{"body":{"nativeSrc":"16284:233:88","nodeType":"YulBlock","src":"16284:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16301:9:88","nodeType":"YulIdentifier","src":"16301:9:88"},{"kind":"number","nativeSrc":"16312:2:88","nodeType":"YulLiteral","src":"16312:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16294:6:88","nodeType":"YulIdentifier","src":"16294:6:88"},"nativeSrc":"16294:21:88","nodeType":"YulFunctionCall","src":"16294:21:88"},"nativeSrc":"16294:21:88","nodeType":"YulExpressionStatement","src":"16294:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16335:9:88","nodeType":"YulIdentifier","src":"16335:9:88"},{"kind":"number","nativeSrc":"16346:2:88","nodeType":"YulLiteral","src":"16346:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16331:3:88","nodeType":"YulIdentifier","src":"16331:3:88"},"nativeSrc":"16331:18:88","nodeType":"YulFunctionCall","src":"16331:18:88"},{"kind":"number","nativeSrc":"16351:2:88","nodeType":"YulLiteral","src":"16351:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"16324:6:88","nodeType":"YulIdentifier","src":"16324:6:88"},"nativeSrc":"16324:30:88","nodeType":"YulFunctionCall","src":"16324:30:88"},"nativeSrc":"16324:30:88","nodeType":"YulExpressionStatement","src":"16324:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16374:9:88","nodeType":"YulIdentifier","src":"16374:9:88"},{"kind":"number","nativeSrc":"16385:2:88","nodeType":"YulLiteral","src":"16385:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16370:3:88","nodeType":"YulIdentifier","src":"16370:3:88"},"nativeSrc":"16370:18:88","nodeType":"YulFunctionCall","src":"16370:18:88"},{"hexValue":"45546f6b656e3a20426f72726f7765722063616e6e6f7420626520746865207a","kind":"string","nativeSrc":"16390:34:88","nodeType":"YulLiteral","src":"16390:34:88","type":"","value":"EToken: Borrower cannot be the z"}],"functionName":{"name":"mstore","nativeSrc":"16363:6:88","nodeType":"YulIdentifier","src":"16363:6:88"},"nativeSrc":"16363:62:88","nodeType":"YulFunctionCall","src":"16363:62:88"},"nativeSrc":"16363:62:88","nodeType":"YulExpressionStatement","src":"16363:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16445:9:88","nodeType":"YulIdentifier","src":"16445:9:88"},{"kind":"number","nativeSrc":"16456:2:88","nodeType":"YulLiteral","src":"16456:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16441:3:88","nodeType":"YulIdentifier","src":"16441:3:88"},"nativeSrc":"16441:18:88","nodeType":"YulFunctionCall","src":"16441:18:88"},{"hexValue":"65726f2061646472657373","kind":"string","nativeSrc":"16461:13:88","nodeType":"YulLiteral","src":"16461:13:88","type":"","value":"ero address"}],"functionName":{"name":"mstore","nativeSrc":"16434:6:88","nodeType":"YulIdentifier","src":"16434:6:88"},"nativeSrc":"16434:41:88","nodeType":"YulFunctionCall","src":"16434:41:88"},"nativeSrc":"16434:41:88","nodeType":"YulExpressionStatement","src":"16434:41:88"},{"nativeSrc":"16484:27:88","nodeType":"YulAssignment","src":"16484:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16496:9:88","nodeType":"YulIdentifier","src":"16496:9:88"},{"kind":"number","nativeSrc":"16507:3:88","nodeType":"YulLiteral","src":"16507:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16492:3:88","nodeType":"YulIdentifier","src":"16492:3:88"},"nativeSrc":"16492:19:88","nodeType":"YulFunctionCall","src":"16492:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16484:4:88","nodeType":"YulIdentifier","src":"16484:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16110:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16261:9:88","nodeType":"YulTypedName","src":"16261:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16275:4:88","nodeType":"YulTypedName","src":"16275:4:88","type":""}],"src":"16110:407:88"},{"body":{"nativeSrc":"16696:179:88","nodeType":"YulBlock","src":"16696:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16713:9:88","nodeType":"YulIdentifier","src":"16713:9:88"},{"kind":"number","nativeSrc":"16724:2:88","nodeType":"YulLiteral","src":"16724:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16706:6:88","nodeType":"YulIdentifier","src":"16706:6:88"},"nativeSrc":"16706:21:88","nodeType":"YulFunctionCall","src":"16706:21:88"},"nativeSrc":"16706:21:88","nodeType":"YulExpressionStatement","src":"16706:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16747:9:88","nodeType":"YulIdentifier","src":"16747:9:88"},{"kind":"number","nativeSrc":"16758:2:88","nodeType":"YulLiteral","src":"16758:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16743:3:88","nodeType":"YulIdentifier","src":"16743:3:88"},"nativeSrc":"16743:18:88","nodeType":"YulFunctionCall","src":"16743:18:88"},{"kind":"number","nativeSrc":"16763:2:88","nodeType":"YulLiteral","src":"16763:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"16736:6:88","nodeType":"YulIdentifier","src":"16736:6:88"},"nativeSrc":"16736:30:88","nodeType":"YulFunctionCall","src":"16736:30:88"},"nativeSrc":"16736:30:88","nodeType":"YulExpressionStatement","src":"16736:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16786:9:88","nodeType":"YulIdentifier","src":"16786:9:88"},{"kind":"number","nativeSrc":"16797:2:88","nodeType":"YulLiteral","src":"16797:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16782:3:88","nodeType":"YulIdentifier","src":"16782:3:88"},"nativeSrc":"16782:18:88","nodeType":"YulFunctionCall","src":"16782:18:88"},{"hexValue":"5468652063616c6c6572206d757374206265206120626f72726f776572","kind":"string","nativeSrc":"16802:31:88","nodeType":"YulLiteral","src":"16802:31:88","type":"","value":"The caller must be a borrower"}],"functionName":{"name":"mstore","nativeSrc":"16775:6:88","nodeType":"YulIdentifier","src":"16775:6:88"},"nativeSrc":"16775:59:88","nodeType":"YulFunctionCall","src":"16775:59:88"},"nativeSrc":"16775:59:88","nodeType":"YulExpressionStatement","src":"16775:59:88"},{"nativeSrc":"16843:26:88","nodeType":"YulAssignment","src":"16843:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16855:9:88","nodeType":"YulIdentifier","src":"16855:9:88"},{"kind":"number","nativeSrc":"16866:2:88","nodeType":"YulLiteral","src":"16866:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16851:3:88","nodeType":"YulIdentifier","src":"16851:3:88"},"nativeSrc":"16851:18:88","nodeType":"YulFunctionCall","src":"16851:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16843:4:88","nodeType":"YulIdentifier","src":"16843:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8fc949ae25110667b87c481d2b4db0ccd0143bf4577ebd2d92c71ac972ca62f9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16522:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16673:9:88","nodeType":"YulTypedName","src":"16673:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16687:4:88","nodeType":"YulTypedName","src":"16687:4:88","type":""}],"src":"16522:353:88"},{"body":{"nativeSrc":"17054:233:88","nodeType":"YulBlock","src":"17054:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17071:9:88","nodeType":"YulIdentifier","src":"17071:9:88"},{"kind":"number","nativeSrc":"17082:2:88","nodeType":"YulLiteral","src":"17082:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17064:6:88","nodeType":"YulIdentifier","src":"17064:6:88"},"nativeSrc":"17064:21:88","nodeType":"YulFunctionCall","src":"17064:21:88"},"nativeSrc":"17064:21:88","nodeType":"YulExpressionStatement","src":"17064:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17105:9:88","nodeType":"YulIdentifier","src":"17105:9:88"},{"kind":"number","nativeSrc":"17116:2:88","nodeType":"YulLiteral","src":"17116:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17101:3:88","nodeType":"YulIdentifier","src":"17101:3:88"},"nativeSrc":"17101:18:88","nodeType":"YulFunctionCall","src":"17101:18:88"},{"kind":"number","nativeSrc":"17121:2:88","nodeType":"YulLiteral","src":"17121:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"17094:6:88","nodeType":"YulIdentifier","src":"17094:6:88"},"nativeSrc":"17094:30:88","nodeType":"YulFunctionCall","src":"17094:30:88"},"nativeSrc":"17094:30:88","nodeType":"YulExpressionStatement","src":"17094:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17144:9:88","nodeType":"YulIdentifier","src":"17144:9:88"},{"kind":"number","nativeSrc":"17155:2:88","nodeType":"YulLiteral","src":"17155:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17140:3:88","nodeType":"YulIdentifier","src":"17140:3:88"},"nativeSrc":"17140:18:88","nodeType":"YulFunctionCall","src":"17140:18:88"},{"hexValue":"4e6f7420656e6f7567682066756e647320617661696c61626c6520746f20636f","kind":"string","nativeSrc":"17160:34:88","nodeType":"YulLiteral","src":"17160:34:88","type":"","value":"Not enough funds available to co"}],"functionName":{"name":"mstore","nativeSrc":"17133:6:88","nodeType":"YulIdentifier","src":"17133:6:88"},"nativeSrc":"17133:62:88","nodeType":"YulFunctionCall","src":"17133:62:88"},"nativeSrc":"17133:62:88","nodeType":"YulExpressionStatement","src":"17133:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17215:9:88","nodeType":"YulIdentifier","src":"17215:9:88"},{"kind":"number","nativeSrc":"17226:2:88","nodeType":"YulLiteral","src":"17226:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17211:3:88","nodeType":"YulIdentifier","src":"17211:3:88"},"nativeSrc":"17211:18:88","nodeType":"YulFunctionCall","src":"17211:18:88"},{"hexValue":"7665722074686520534352","kind":"string","nativeSrc":"17231:13:88","nodeType":"YulLiteral","src":"17231:13:88","type":"","value":"ver the SCR"}],"functionName":{"name":"mstore","nativeSrc":"17204:6:88","nodeType":"YulIdentifier","src":"17204:6:88"},"nativeSrc":"17204:41:88","nodeType":"YulFunctionCall","src":"17204:41:88"},"nativeSrc":"17204:41:88","nodeType":"YulExpressionStatement","src":"17204:41:88"},{"nativeSrc":"17254:27:88","nodeType":"YulAssignment","src":"17254:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17266:9:88","nodeType":"YulIdentifier","src":"17266:9:88"},{"kind":"number","nativeSrc":"17277:3:88","nodeType":"YulLiteral","src":"17277:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17262:3:88","nodeType":"YulIdentifier","src":"17262:3:88"},"nativeSrc":"17262:19:88","nodeType":"YulFunctionCall","src":"17262:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17254:4:88","nodeType":"YulIdentifier","src":"17254:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_03581280538719c2020c894a210ef9aa558c82c902fd12bce0931000f73b74ae__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16880:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17031:9:88","nodeType":"YulTypedName","src":"17031:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17045:4:88","nodeType":"YulTypedName","src":"17045:4:88","type":""}],"src":"16880:407:88"},{"body":{"nativeSrc":"17394:170:88","nodeType":"YulBlock","src":"17394:170:88","statements":[{"body":{"nativeSrc":"17440:16:88","nodeType":"YulBlock","src":"17440:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17449:1:88","nodeType":"YulLiteral","src":"17449:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17452:1:88","nodeType":"YulLiteral","src":"17452:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17442:6:88","nodeType":"YulIdentifier","src":"17442:6:88"},"nativeSrc":"17442:12:88","nodeType":"YulFunctionCall","src":"17442:12:88"},"nativeSrc":"17442:12:88","nodeType":"YulExpressionStatement","src":"17442:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17415:7:88","nodeType":"YulIdentifier","src":"17415:7:88"},{"name":"headStart","nativeSrc":"17424:9:88","nodeType":"YulIdentifier","src":"17424:9:88"}],"functionName":{"name":"sub","nativeSrc":"17411:3:88","nodeType":"YulIdentifier","src":"17411:3:88"},"nativeSrc":"17411:23:88","nodeType":"YulFunctionCall","src":"17411:23:88"},{"kind":"number","nativeSrc":"17436:2:88","nodeType":"YulLiteral","src":"17436:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17407:3:88","nodeType":"YulIdentifier","src":"17407:3:88"},"nativeSrc":"17407:32:88","nodeType":"YulFunctionCall","src":"17407:32:88"},"nativeSrc":"17404:52:88","nodeType":"YulIf","src":"17404:52:88"},{"nativeSrc":"17465:29:88","nodeType":"YulVariableDeclaration","src":"17465:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17484:9:88","nodeType":"YulIdentifier","src":"17484:9:88"}],"functionName":{"name":"mload","nativeSrc":"17478:5:88","nodeType":"YulIdentifier","src":"17478:5:88"},"nativeSrc":"17478:16:88","nodeType":"YulFunctionCall","src":"17478:16:88"},"variables":[{"name":"value","nativeSrc":"17469:5:88","nodeType":"YulTypedName","src":"17469:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17528:5:88","nodeType":"YulIdentifier","src":"17528:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"17503:24:88","nodeType":"YulIdentifier","src":"17503:24:88"},"nativeSrc":"17503:31:88","nodeType":"YulFunctionCall","src":"17503:31:88"},"nativeSrc":"17503:31:88","nodeType":"YulExpressionStatement","src":"17503:31:88"},{"nativeSrc":"17543:15:88","nodeType":"YulAssignment","src":"17543:15:88","value":{"name":"value","nativeSrc":"17553:5:88","nodeType":"YulIdentifier","src":"17553:5:88"},"variableNames":[{"name":"value0","nativeSrc":"17543:6:88","nodeType":"YulIdentifier","src":"17543:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"17292:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17360:9:88","nodeType":"YulTypedName","src":"17360:9:88","type":""},{"name":"dataEnd","nativeSrc":"17371:7:88","nodeType":"YulTypedName","src":"17371:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17383:6:88","nodeType":"YulTypedName","src":"17383:6:88","type":""}],"src":"17292:272:88"},{"body":{"nativeSrc":"17743:229:88","nodeType":"YulBlock","src":"17743:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17760:9:88","nodeType":"YulIdentifier","src":"17760:9:88"},{"kind":"number","nativeSrc":"17771:2:88","nodeType":"YulLiteral","src":"17771:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17753:6:88","nodeType":"YulIdentifier","src":"17753:6:88"},"nativeSrc":"17753:21:88","nodeType":"YulFunctionCall","src":"17753:21:88"},"nativeSrc":"17753:21:88","nodeType":"YulExpressionStatement","src":"17753:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17794:9:88","nodeType":"YulIdentifier","src":"17794:9:88"},{"kind":"number","nativeSrc":"17805:2:88","nodeType":"YulLiteral","src":"17805:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17790:3:88","nodeType":"YulIdentifier","src":"17790:3:88"},"nativeSrc":"17790:18:88","nodeType":"YulFunctionCall","src":"17790:18:88"},{"kind":"number","nativeSrc":"17810:2:88","nodeType":"YulLiteral","src":"17810:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"17783:6:88","nodeType":"YulIdentifier","src":"17783:6:88"},"nativeSrc":"17783:30:88","nodeType":"YulFunctionCall","src":"17783:30:88"},"nativeSrc":"17783:30:88","nodeType":"YulExpressionStatement","src":"17783:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17833:9:88","nodeType":"YulIdentifier","src":"17833:9:88"},{"kind":"number","nativeSrc":"17844:2:88","nodeType":"YulLiteral","src":"17844:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17829:3:88","nodeType":"YulIdentifier","src":"17829:3:88"},"nativeSrc":"17829:18:88","nodeType":"YulFunctionCall","src":"17829:18:88"},{"hexValue":"436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320506f6c","kind":"string","nativeSrc":"17849:34:88","nodeType":"YulLiteral","src":"17849:34:88","type":"","value":"Component not linked to this Pol"}],"functionName":{"name":"mstore","nativeSrc":"17822:6:88","nodeType":"YulIdentifier","src":"17822:6:88"},"nativeSrc":"17822:62:88","nodeType":"YulFunctionCall","src":"17822:62:88"},"nativeSrc":"17822:62:88","nodeType":"YulExpressionStatement","src":"17822:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17904:9:88","nodeType":"YulIdentifier","src":"17904:9:88"},{"kind":"number","nativeSrc":"17915:2:88","nodeType":"YulLiteral","src":"17915:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17900:3:88","nodeType":"YulIdentifier","src":"17900:3:88"},"nativeSrc":"17900:18:88","nodeType":"YulFunctionCall","src":"17900:18:88"},{"hexValue":"696379506f6f6c","kind":"string","nativeSrc":"17920:9:88","nodeType":"YulLiteral","src":"17920:9:88","type":"","value":"icyPool"}],"functionName":{"name":"mstore","nativeSrc":"17893:6:88","nodeType":"YulIdentifier","src":"17893:6:88"},"nativeSrc":"17893:37:88","nodeType":"YulFunctionCall","src":"17893:37:88"},"nativeSrc":"17893:37:88","nodeType":"YulExpressionStatement","src":"17893:37:88"},{"nativeSrc":"17939:27:88","nodeType":"YulAssignment","src":"17939:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17951:9:88","nodeType":"YulIdentifier","src":"17951:9:88"},{"kind":"number","nativeSrc":"17962:3:88","nodeType":"YulLiteral","src":"17962:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17947:3:88","nodeType":"YulIdentifier","src":"17947:3:88"},"nativeSrc":"17947:19:88","nodeType":"YulFunctionCall","src":"17947:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17939:4:88","nodeType":"YulIdentifier","src":"17939:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_03a1e1b89e58377f2c0f6a93d779f49357e1a1620aec4af8836f21e8fdf00fbd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17569:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17720:9:88","nodeType":"YulTypedName","src":"17720:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17734:4:88","nodeType":"YulTypedName","src":"17734:4:88","type":""}],"src":"17569:403:88"},{"body":{"nativeSrc":"18151:233:88","nodeType":"YulBlock","src":"18151:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18168:9:88","nodeType":"YulIdentifier","src":"18168:9:88"},{"kind":"number","nativeSrc":"18179:2:88","nodeType":"YulLiteral","src":"18179:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18161:6:88","nodeType":"YulIdentifier","src":"18161:6:88"},"nativeSrc":"18161:21:88","nodeType":"YulFunctionCall","src":"18161:21:88"},"nativeSrc":"18161:21:88","nodeType":"YulExpressionStatement","src":"18161:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18202:9:88","nodeType":"YulIdentifier","src":"18202:9:88"},{"kind":"number","nativeSrc":"18213:2:88","nodeType":"YulLiteral","src":"18213:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18198:3:88","nodeType":"YulIdentifier","src":"18198:3:88"},"nativeSrc":"18198:18:88","nodeType":"YulFunctionCall","src":"18198:18:88"},{"kind":"number","nativeSrc":"18218:2:88","nodeType":"YulLiteral","src":"18218:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"18191:6:88","nodeType":"YulIdentifier","src":"18191:6:88"},"nativeSrc":"18191:30:88","nodeType":"YulFunctionCall","src":"18191:30:88"},"nativeSrc":"18191:30:88","nodeType":"YulExpressionStatement","src":"18191:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18241:9:88","nodeType":"YulIdentifier","src":"18241:9:88"},{"kind":"number","nativeSrc":"18252:2:88","nodeType":"YulLiteral","src":"18252:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18237:3:88","nodeType":"YulIdentifier","src":"18237:3:88"},"nativeSrc":"18237:18:88","nodeType":"YulFunctionCall","src":"18237:18:88"},{"hexValue":"45546f6b656e3a20616d6f756e742073686f756c642062652067726561746572","kind":"string","nativeSrc":"18257:34:88","nodeType":"YulLiteral","src":"18257:34:88","type":"","value":"EToken: amount should be greater"}],"functionName":{"name":"mstore","nativeSrc":"18230:6:88","nodeType":"YulIdentifier","src":"18230:6:88"},"nativeSrc":"18230:62:88","nodeType":"YulFunctionCall","src":"18230:62:88"},"nativeSrc":"18230:62:88","nodeType":"YulExpressionStatement","src":"18230:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18312:9:88","nodeType":"YulIdentifier","src":"18312:9:88"},{"kind":"number","nativeSrc":"18323:2:88","nodeType":"YulLiteral","src":"18323:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18308:3:88","nodeType":"YulIdentifier","src":"18308:3:88"},"nativeSrc":"18308:18:88","nodeType":"YulFunctionCall","src":"18308:18:88"},{"hexValue":"207468616e207a65726f2e","kind":"string","nativeSrc":"18328:13:88","nodeType":"YulLiteral","src":"18328:13:88","type":"","value":" than zero."}],"functionName":{"name":"mstore","nativeSrc":"18301:6:88","nodeType":"YulIdentifier","src":"18301:6:88"},"nativeSrc":"18301:41:88","nodeType":"YulFunctionCall","src":"18301:41:88"},"nativeSrc":"18301:41:88","nodeType":"YulExpressionStatement","src":"18301:41:88"},{"nativeSrc":"18351:27:88","nodeType":"YulAssignment","src":"18351:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18363:9:88","nodeType":"YulIdentifier","src":"18363:9:88"},{"kind":"number","nativeSrc":"18374:3:88","nodeType":"YulLiteral","src":"18374:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18359:3:88","nodeType":"YulIdentifier","src":"18359:3:88"},"nativeSrc":"18359:19:88","nodeType":"YulFunctionCall","src":"18359:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18351:4:88","nodeType":"YulIdentifier","src":"18351:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_babc3112dd6ff1c8e9dfffb357f2e4b17a7ff714d277263ea98972627be8be19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17977:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18128:9:88","nodeType":"YulTypedName","src":"18128:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18142:4:88","nodeType":"YulTypedName","src":"18142:4:88","type":""}],"src":"17977:407:88"},{"body":{"nativeSrc":"18563:175:88","nodeType":"YulBlock","src":"18563:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18580:9:88","nodeType":"YulIdentifier","src":"18580:9:88"},{"kind":"number","nativeSrc":"18591:2:88","nodeType":"YulLiteral","src":"18591:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18573:6:88","nodeType":"YulIdentifier","src":"18573:6:88"},"nativeSrc":"18573:21:88","nodeType":"YulFunctionCall","src":"18573:21:88"},"nativeSrc":"18573:21:88","nodeType":"YulExpressionStatement","src":"18573:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18614:9:88","nodeType":"YulIdentifier","src":"18614:9:88"},{"kind":"number","nativeSrc":"18625:2:88","nodeType":"YulLiteral","src":"18625:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18610:3:88","nodeType":"YulIdentifier","src":"18610:3:88"},"nativeSrc":"18610:18:88","nodeType":"YulFunctionCall","src":"18610:18:88"},{"kind":"number","nativeSrc":"18630:2:88","nodeType":"YulLiteral","src":"18630:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"18603:6:88","nodeType":"YulIdentifier","src":"18603:6:88"},"nativeSrc":"18603:30:88","nodeType":"YulFunctionCall","src":"18603:30:88"},"nativeSrc":"18603:30:88","nodeType":"YulExpressionStatement","src":"18603:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18653:9:88","nodeType":"YulIdentifier","src":"18653:9:88"},{"kind":"number","nativeSrc":"18664:2:88","nodeType":"YulLiteral","src":"18664:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18649:3:88","nodeType":"YulIdentifier","src":"18649:3:88"},"nativeSrc":"18649:18:88","nodeType":"YulFunctionCall","src":"18649:18:88"},{"hexValue":"4e6f742061207265676973746572656420626f72726f776572","kind":"string","nativeSrc":"18669:27:88","nodeType":"YulLiteral","src":"18669:27:88","type":"","value":"Not a registered borrower"}],"functionName":{"name":"mstore","nativeSrc":"18642:6:88","nodeType":"YulIdentifier","src":"18642:6:88"},"nativeSrc":"18642:55:88","nodeType":"YulFunctionCall","src":"18642:55:88"},"nativeSrc":"18642:55:88","nodeType":"YulExpressionStatement","src":"18642:55:88"},{"nativeSrc":"18706:26:88","nodeType":"YulAssignment","src":"18706:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18718:9:88","nodeType":"YulIdentifier","src":"18718:9:88"},{"kind":"number","nativeSrc":"18729:2:88","nodeType":"YulLiteral","src":"18729:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18714:3:88","nodeType":"YulIdentifier","src":"18714:3:88"},"nativeSrc":"18714:18:88","nodeType":"YulFunctionCall","src":"18714:18:88"},"variableNames":[{"name":"tail","nativeSrc":"18706:4:88","nodeType":"YulIdentifier","src":"18706:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_660103f2c97657862acfcfb2c2e75a895efcedaeb2e8c4df1f6eced083faf0ec__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18389:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18540:9:88","nodeType":"YulTypedName","src":"18540:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18554:4:88","nodeType":"YulTypedName","src":"18554:4:88","type":""}],"src":"18389:349:88"},{"body":{"nativeSrc":"18917:228:88","nodeType":"YulBlock","src":"18917:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18934:9:88","nodeType":"YulIdentifier","src":"18934:9:88"},{"kind":"number","nativeSrc":"18945:2:88","nodeType":"YulLiteral","src":"18945:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18927:6:88","nodeType":"YulIdentifier","src":"18927:6:88"},"nativeSrc":"18927:21:88","nodeType":"YulFunctionCall","src":"18927:21:88"},"nativeSrc":"18927:21:88","nodeType":"YulExpressionStatement","src":"18927:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18968:9:88","nodeType":"YulIdentifier","src":"18968:9:88"},{"kind":"number","nativeSrc":"18979:2:88","nodeType":"YulLiteral","src":"18979:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18964:3:88","nodeType":"YulIdentifier","src":"18964:3:88"},"nativeSrc":"18964:18:88","nodeType":"YulFunctionCall","src":"18964:18:88"},{"kind":"number","nativeSrc":"18984:2:88","nodeType":"YulLiteral","src":"18984:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"18957:6:88","nodeType":"YulIdentifier","src":"18957:6:88"},"nativeSrc":"18957:30:88","nodeType":"YulFunctionCall","src":"18957:30:88"},"nativeSrc":"18957:30:88","nodeType":"YulExpressionStatement","src":"18957:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19007:9:88","nodeType":"YulIdentifier","src":"19007:9:88"},{"kind":"number","nativeSrc":"19018:2:88","nodeType":"YulLiteral","src":"19018:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19003:3:88","nodeType":"YulIdentifier","src":"19003:3:88"},"nativeSrc":"19003:18:88","nodeType":"YulFunctionCall","src":"19003:18:88"},{"hexValue":"45546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f","kind":"string","nativeSrc":"19023:34:88","nodeType":"YulLiteral","src":"19023:34:88","type":"","value":"EToken: decreased allowance belo"}],"functionName":{"name":"mstore","nativeSrc":"18996:6:88","nodeType":"YulIdentifier","src":"18996:6:88"},"nativeSrc":"18996:62:88","nodeType":"YulFunctionCall","src":"18996:62:88"},"nativeSrc":"18996:62:88","nodeType":"YulExpressionStatement","src":"18996:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19078:9:88","nodeType":"YulIdentifier","src":"19078:9:88"},{"kind":"number","nativeSrc":"19089:2:88","nodeType":"YulLiteral","src":"19089:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19074:3:88","nodeType":"YulIdentifier","src":"19074:3:88"},"nativeSrc":"19074:18:88","nodeType":"YulFunctionCall","src":"19074:18:88"},{"hexValue":"77207a65726f","kind":"string","nativeSrc":"19094:8:88","nodeType":"YulLiteral","src":"19094:8:88","type":"","value":"w zero"}],"functionName":{"name":"mstore","nativeSrc":"19067:6:88","nodeType":"YulIdentifier","src":"19067:6:88"},"nativeSrc":"19067:36:88","nodeType":"YulFunctionCall","src":"19067:36:88"},"nativeSrc":"19067:36:88","nodeType":"YulExpressionStatement","src":"19067:36:88"},{"nativeSrc":"19112:27:88","nodeType":"YulAssignment","src":"19112:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19124:9:88","nodeType":"YulIdentifier","src":"19124:9:88"},{"kind":"number","nativeSrc":"19135:3:88","nodeType":"YulLiteral","src":"19135:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19120:3:88","nodeType":"YulIdentifier","src":"19120:3:88"},"nativeSrc":"19120:19:88","nodeType":"YulFunctionCall","src":"19120:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19112:4:88","nodeType":"YulIdentifier","src":"19112:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_33e71d7bfeeadcffefd2e7f551031f6769c33c0ba79cbf34d01052008213b61e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18743:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18894:9:88","nodeType":"YulTypedName","src":"18894:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18908:4:88","nodeType":"YulTypedName","src":"18908:4:88","type":""}],"src":"18743:402:88"},{"body":{"nativeSrc":"19324:241:88","nodeType":"YulBlock","src":"19324:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19341:9:88","nodeType":"YulIdentifier","src":"19341:9:88"},{"kind":"number","nativeSrc":"19352:2:88","nodeType":"YulLiteral","src":"19352:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19334:6:88","nodeType":"YulIdentifier","src":"19334:6:88"},"nativeSrc":"19334:21:88","nodeType":"YulFunctionCall","src":"19334:21:88"},"nativeSrc":"19334:21:88","nodeType":"YulExpressionStatement","src":"19334:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19375:9:88","nodeType":"YulIdentifier","src":"19375:9:88"},{"kind":"number","nativeSrc":"19386:2:88","nodeType":"YulLiteral","src":"19386:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19371:3:88","nodeType":"YulIdentifier","src":"19371:3:88"},"nativeSrc":"19371:18:88","nodeType":"YulFunctionCall","src":"19371:18:88"},{"kind":"number","nativeSrc":"19391:2:88","nodeType":"YulLiteral","src":"19391:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"19364:6:88","nodeType":"YulIdentifier","src":"19364:6:88"},"nativeSrc":"19364:30:88","nodeType":"YulFunctionCall","src":"19364:30:88"},"nativeSrc":"19364:30:88","nodeType":"YulExpressionStatement","src":"19364:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19414:9:88","nodeType":"YulIdentifier","src":"19414:9:88"},{"kind":"number","nativeSrc":"19425:2:88","nodeType":"YulLiteral","src":"19425:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19410:3:88","nodeType":"YulIdentifier","src":"19410:3:88"},"nativeSrc":"19410:18:88","nodeType":"YulFunctionCall","src":"19410:18:88"},{"hexValue":"43757272656e7420534352206c657373207468616e2074686520616d6f756e74","kind":"string","nativeSrc":"19430:34:88","nodeType":"YulLiteral","src":"19430:34:88","type":"","value":"Current SCR less than the amount"}],"functionName":{"name":"mstore","nativeSrc":"19403:6:88","nodeType":"YulIdentifier","src":"19403:6:88"},"nativeSrc":"19403:62:88","nodeType":"YulFunctionCall","src":"19403:62:88"},"nativeSrc":"19403:62:88","nodeType":"YulExpressionStatement","src":"19403:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19485:9:88","nodeType":"YulIdentifier","src":"19485:9:88"},{"kind":"number","nativeSrc":"19496:2:88","nodeType":"YulLiteral","src":"19496:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19481:3:88","nodeType":"YulIdentifier","src":"19481:3:88"},"nativeSrc":"19481:18:88","nodeType":"YulFunctionCall","src":"19481:18:88"},{"hexValue":"20796f752077616e7420746f20756e6c6f636b","kind":"string","nativeSrc":"19501:21:88","nodeType":"YulLiteral","src":"19501:21:88","type":"","value":" you want to unlock"}],"functionName":{"name":"mstore","nativeSrc":"19474:6:88","nodeType":"YulIdentifier","src":"19474:6:88"},"nativeSrc":"19474:49:88","nodeType":"YulFunctionCall","src":"19474:49:88"},"nativeSrc":"19474:49:88","nodeType":"YulExpressionStatement","src":"19474:49:88"},{"nativeSrc":"19532:27:88","nodeType":"YulAssignment","src":"19532:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19544:9:88","nodeType":"YulIdentifier","src":"19544:9:88"},{"kind":"number","nativeSrc":"19555:3:88","nodeType":"YulLiteral","src":"19555:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19540:3:88","nodeType":"YulIdentifier","src":"19540:3:88"},"nativeSrc":"19540:19:88","nodeType":"YulFunctionCall","src":"19540:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19532:4:88","nodeType":"YulIdentifier","src":"19532:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_24ef78e89ef45c3eec4ad876eb521dca8aa5807bbc61071cdd2ffeab164da79e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19150:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19301:9:88","nodeType":"YulTypedName","src":"19301:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19315:4:88","nodeType":"YulTypedName","src":"19315:4:88","type":""}],"src":"19150:415:88"},{"body":{"nativeSrc":"19602:95:88","nodeType":"YulBlock","src":"19602:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19619:1:88","nodeType":"YulLiteral","src":"19619:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"19626:3:88","nodeType":"YulLiteral","src":"19626:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"19631:10:88","nodeType":"YulLiteral","src":"19631:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"19622:3:88","nodeType":"YulIdentifier","src":"19622:3:88"},"nativeSrc":"19622:20:88","nodeType":"YulFunctionCall","src":"19622:20:88"}],"functionName":{"name":"mstore","nativeSrc":"19612:6:88","nodeType":"YulIdentifier","src":"19612:6:88"},"nativeSrc":"19612:31:88","nodeType":"YulFunctionCall","src":"19612:31:88"},"nativeSrc":"19612:31:88","nodeType":"YulExpressionStatement","src":"19612:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19659:1:88","nodeType":"YulLiteral","src":"19659:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"19662:4:88","nodeType":"YulLiteral","src":"19662:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"19652:6:88","nodeType":"YulIdentifier","src":"19652:6:88"},"nativeSrc":"19652:15:88","nodeType":"YulFunctionCall","src":"19652:15:88"},"nativeSrc":"19652:15:88","nodeType":"YulExpressionStatement","src":"19652:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19683:1:88","nodeType":"YulLiteral","src":"19683:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19686:4:88","nodeType":"YulLiteral","src":"19686:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19676:6:88","nodeType":"YulIdentifier","src":"19676:6:88"},"nativeSrc":"19676:15:88","nodeType":"YulFunctionCall","src":"19676:15:88"},"nativeSrc":"19676:15:88","nodeType":"YulExpressionStatement","src":"19676:15:88"}]},"name":"panic_error_0x21","nativeSrc":"19570:127:88","nodeType":"YulFunctionDefinition","src":"19570:127:88"},{"body":{"nativeSrc":"19745:93:88","nodeType":"YulBlock","src":"19745:93:88","statements":[{"body":{"nativeSrc":"19781:22:88","nodeType":"YulBlock","src":"19781:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19783:16:88","nodeType":"YulIdentifier","src":"19783:16:88"},"nativeSrc":"19783:18:88","nodeType":"YulFunctionCall","src":"19783:18:88"},"nativeSrc":"19783:18:88","nodeType":"YulExpressionStatement","src":"19783:18:88"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"19761:5:88","nodeType":"YulIdentifier","src":"19761:5:88"},{"arguments":[{"kind":"number","nativeSrc":"19772:3:88","nodeType":"YulLiteral","src":"19772:3:88","type":"","value":"255"},{"kind":"number","nativeSrc":"19777:1:88","nodeType":"YulLiteral","src":"19777:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"19768:3:88","nodeType":"YulIdentifier","src":"19768:3:88"},"nativeSrc":"19768:11:88","nodeType":"YulFunctionCall","src":"19768:11:88"}],"functionName":{"name":"eq","nativeSrc":"19758:2:88","nodeType":"YulIdentifier","src":"19758:2:88"},"nativeSrc":"19758:22:88","nodeType":"YulFunctionCall","src":"19758:22:88"},"nativeSrc":"19755:48:88","nodeType":"YulIf","src":"19755:48:88"},{"nativeSrc":"19812:20:88","nodeType":"YulAssignment","src":"19812:20:88","value":{"arguments":[{"kind":"number","nativeSrc":"19823:1:88","nodeType":"YulLiteral","src":"19823:1:88","type":"","value":"0"},{"name":"value","nativeSrc":"19826:5:88","nodeType":"YulIdentifier","src":"19826:5:88"}],"functionName":{"name":"sub","nativeSrc":"19819:3:88","nodeType":"YulIdentifier","src":"19819:3:88"},"nativeSrc":"19819:13:88","nodeType":"YulFunctionCall","src":"19819:13:88"},"variableNames":[{"name":"ret","nativeSrc":"19812:3:88","nodeType":"YulIdentifier","src":"19812:3:88"}]}]},"name":"negate_t_int256","nativeSrc":"19702:136:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19727:5:88","nodeType":"YulTypedName","src":"19727:5:88","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19737:3:88","nodeType":"YulTypedName","src":"19737:3:88","type":""}],"src":"19702:136:88"},{"body":{"nativeSrc":"19942:103:88","nodeType":"YulBlock","src":"19942:103:88","statements":[{"nativeSrc":"19952:26:88","nodeType":"YulAssignment","src":"19952:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19964:9:88","nodeType":"YulIdentifier","src":"19964:9:88"},{"kind":"number","nativeSrc":"19975:2:88","nodeType":"YulLiteral","src":"19975:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19960:3:88","nodeType":"YulIdentifier","src":"19960:3:88"},"nativeSrc":"19960:18:88","nodeType":"YulFunctionCall","src":"19960:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19952:4:88","nodeType":"YulIdentifier","src":"19952:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19994:9:88","nodeType":"YulIdentifier","src":"19994:9:88"},{"arguments":[{"name":"value0","nativeSrc":"20009:6:88","nodeType":"YulIdentifier","src":"20009:6:88"},{"arguments":[{"kind":"number","nativeSrc":"20021:3:88","nodeType":"YulLiteral","src":"20021:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"20026:10:88","nodeType":"YulLiteral","src":"20026:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"20017:3:88","nodeType":"YulIdentifier","src":"20017:3:88"},"nativeSrc":"20017:20:88","nodeType":"YulFunctionCall","src":"20017:20:88"}],"functionName":{"name":"and","nativeSrc":"20005:3:88","nodeType":"YulIdentifier","src":"20005:3:88"},"nativeSrc":"20005:33:88","nodeType":"YulFunctionCall","src":"20005:33:88"}],"functionName":{"name":"mstore","nativeSrc":"19987:6:88","nodeType":"YulIdentifier","src":"19987:6:88"},"nativeSrc":"19987:52:88","nodeType":"YulFunctionCall","src":"19987:52:88"},"nativeSrc":"19987:52:88","nodeType":"YulExpressionStatement","src":"19987:52:88"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"19843:202:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19911:9:88","nodeType":"YulTypedName","src":"19911:9:88","type":""},{"name":"value0","nativeSrc":"19922:6:88","nodeType":"YulTypedName","src":"19922:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19933:4:88","nodeType":"YulTypedName","src":"19933:4:88","type":""}],"src":"19843:202:88"},{"body":{"nativeSrc":"20224:254:88","nodeType":"YulBlock","src":"20224:254:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20241:9:88","nodeType":"YulIdentifier","src":"20241:9:88"},{"kind":"number","nativeSrc":"20252:2:88","nodeType":"YulLiteral","src":"20252:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20234:6:88","nodeType":"YulIdentifier","src":"20234:6:88"},"nativeSrc":"20234:21:88","nodeType":"YulFunctionCall","src":"20234:21:88"},"nativeSrc":"20234:21:88","nodeType":"YulExpressionStatement","src":"20234:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20275:9:88","nodeType":"YulIdentifier","src":"20275:9:88"},{"kind":"number","nativeSrc":"20286:2:88","nodeType":"YulLiteral","src":"20286:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20271:3:88","nodeType":"YulIdentifier","src":"20271:3:88"},"nativeSrc":"20271:18:88","nodeType":"YulFunctionCall","src":"20271:18:88"},{"kind":"number","nativeSrc":"20291:2:88","nodeType":"YulLiteral","src":"20291:2:88","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"20264:6:88","nodeType":"YulIdentifier","src":"20264:6:88"},"nativeSrc":"20264:30:88","nodeType":"YulFunctionCall","src":"20264:30:88"},"nativeSrc":"20264:30:88","nodeType":"YulExpressionStatement","src":"20264:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20314:9:88","nodeType":"YulIdentifier","src":"20314:9:88"},{"kind":"number","nativeSrc":"20325:2:88","nodeType":"YulLiteral","src":"20325:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20310:3:88","nodeType":"YulIdentifier","src":"20310:3:88"},"nativeSrc":"20310:18:88","nodeType":"YulFunctionCall","src":"20310:18:88"},{"hexValue":"526573657276653a206173736574206d616e6167657220646f65736e27742069","kind":"string","nativeSrc":"20330:34:88","nodeType":"YulLiteral","src":"20330:34:88","type":"","value":"Reserve: asset manager doesn't i"}],"functionName":{"name":"mstore","nativeSrc":"20303:6:88","nodeType":"YulIdentifier","src":"20303:6:88"},"nativeSrc":"20303:62:88","nodeType":"YulFunctionCall","src":"20303:62:88"},"nativeSrc":"20303:62:88","nodeType":"YulExpressionStatement","src":"20303:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20385:9:88","nodeType":"YulIdentifier","src":"20385:9:88"},{"kind":"number","nativeSrc":"20396:2:88","nodeType":"YulLiteral","src":"20396:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20381:3:88","nodeType":"YulIdentifier","src":"20381:3:88"},"nativeSrc":"20381:18:88","nodeType":"YulFunctionCall","src":"20381:18:88"},{"hexValue":"6d706c656d656e74732074686520726571756972656420696e74657266616365","kind":"string","nativeSrc":"20401:34:88","nodeType":"YulLiteral","src":"20401:34:88","type":"","value":"mplements the required interface"}],"functionName":{"name":"mstore","nativeSrc":"20374:6:88","nodeType":"YulIdentifier","src":"20374:6:88"},"nativeSrc":"20374:62:88","nodeType":"YulFunctionCall","src":"20374:62:88"},"nativeSrc":"20374:62:88","nodeType":"YulExpressionStatement","src":"20374:62:88"},{"nativeSrc":"20445:27:88","nodeType":"YulAssignment","src":"20445:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20457:9:88","nodeType":"YulIdentifier","src":"20457:9:88"},{"kind":"number","nativeSrc":"20468:3:88","nodeType":"YulLiteral","src":"20468:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20453:3:88","nodeType":"YulIdentifier","src":"20453:3:88"},"nativeSrc":"20453:19:88","nodeType":"YulFunctionCall","src":"20453:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20445:4:88","nodeType":"YulIdentifier","src":"20445:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20050:428:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20201:9:88","nodeType":"YulTypedName","src":"20201:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20215:4:88","nodeType":"YulTypedName","src":"20215:4:88","type":""}],"src":"20050:428:88"},{"body":{"nativeSrc":"20620:164:88","nodeType":"YulBlock","src":"20620:164:88","statements":[{"nativeSrc":"20630:27:88","nodeType":"YulVariableDeclaration","src":"20630:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"20650:6:88","nodeType":"YulIdentifier","src":"20650:6:88"}],"functionName":{"name":"mload","nativeSrc":"20644:5:88","nodeType":"YulIdentifier","src":"20644:5:88"},"nativeSrc":"20644:13:88","nodeType":"YulFunctionCall","src":"20644:13:88"},"variables":[{"name":"length","nativeSrc":"20634:6:88","nodeType":"YulTypedName","src":"20634:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20672:3:88","nodeType":"YulIdentifier","src":"20672:3:88"},{"arguments":[{"name":"value0","nativeSrc":"20681:6:88","nodeType":"YulIdentifier","src":"20681:6:88"},{"kind":"number","nativeSrc":"20689:4:88","nodeType":"YulLiteral","src":"20689:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20677:3:88","nodeType":"YulIdentifier","src":"20677:3:88"},"nativeSrc":"20677:17:88","nodeType":"YulFunctionCall","src":"20677:17:88"},{"name":"length","nativeSrc":"20696:6:88","nodeType":"YulIdentifier","src":"20696:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"20666:5:88","nodeType":"YulIdentifier","src":"20666:5:88"},"nativeSrc":"20666:37:88","nodeType":"YulFunctionCall","src":"20666:37:88"},"nativeSrc":"20666:37:88","nodeType":"YulExpressionStatement","src":"20666:37:88"},{"nativeSrc":"20712:26:88","nodeType":"YulVariableDeclaration","src":"20712:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"20726:3:88","nodeType":"YulIdentifier","src":"20726:3:88"},{"name":"length","nativeSrc":"20731:6:88","nodeType":"YulIdentifier","src":"20731:6:88"}],"functionName":{"name":"add","nativeSrc":"20722:3:88","nodeType":"YulIdentifier","src":"20722:3:88"},"nativeSrc":"20722:16:88","nodeType":"YulFunctionCall","src":"20722:16:88"},"variables":[{"name":"_1","nativeSrc":"20716:2:88","nodeType":"YulTypedName","src":"20716:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"20754:2:88","nodeType":"YulIdentifier","src":"20754:2:88"},{"kind":"number","nativeSrc":"20758:1:88","nodeType":"YulLiteral","src":"20758:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"20747:6:88","nodeType":"YulIdentifier","src":"20747:6:88"},"nativeSrc":"20747:13:88","nodeType":"YulFunctionCall","src":"20747:13:88"},"nativeSrc":"20747:13:88","nodeType":"YulExpressionStatement","src":"20747:13:88"},{"nativeSrc":"20769:9:88","nodeType":"YulAssignment","src":"20769:9:88","value":{"name":"_1","nativeSrc":"20776:2:88","nodeType":"YulIdentifier","src":"20776:2:88"},"variableNames":[{"name":"end","nativeSrc":"20769:3:88","nodeType":"YulIdentifier","src":"20769:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"20483:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20596:3:88","nodeType":"YulTypedName","src":"20596:3:88","type":""},{"name":"value0","nativeSrc":"20601:6:88","nodeType":"YulTypedName","src":"20601:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20612:3:88","nodeType":"YulTypedName","src":"20612:3:88","type":""}],"src":"20483:301:88"},{"body":{"nativeSrc":"20963:175:88","nodeType":"YulBlock","src":"20963:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20980:9:88","nodeType":"YulIdentifier","src":"20980:9:88"},{"kind":"number","nativeSrc":"20991:2:88","nodeType":"YulLiteral","src":"20991:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20973:6:88","nodeType":"YulIdentifier","src":"20973:6:88"},"nativeSrc":"20973:21:88","nodeType":"YulFunctionCall","src":"20973:21:88"},"nativeSrc":"20973:21:88","nodeType":"YulExpressionStatement","src":"20973:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21014:9:88","nodeType":"YulIdentifier","src":"21014:9:88"},{"kind":"number","nativeSrc":"21025:2:88","nodeType":"YulLiteral","src":"21025:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21010:3:88","nodeType":"YulIdentifier","src":"21010:3:88"},"nativeSrc":"21010:18:88","nodeType":"YulFunctionCall","src":"21010:18:88"},{"kind":"number","nativeSrc":"21030:2:88","nodeType":"YulLiteral","src":"21030:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"21003:6:88","nodeType":"YulIdentifier","src":"21003:6:88"},"nativeSrc":"21003:30:88","nodeType":"YulFunctionCall","src":"21003:30:88"},"nativeSrc":"21003:30:88","nodeType":"YulExpressionStatement","src":"21003:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21053:9:88","nodeType":"YulIdentifier","src":"21053:9:88"},{"kind":"number","nativeSrc":"21064:2:88","nodeType":"YulLiteral","src":"21064:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21049:3:88","nodeType":"YulIdentifier","src":"21049:3:88"},"nativeSrc":"21049:18:88","nodeType":"YulFunctionCall","src":"21049:18:88"},{"hexValue":"616d6f756e74203e206d617820776974686472617761626c65","kind":"string","nativeSrc":"21069:27:88","nodeType":"YulLiteral","src":"21069:27:88","type":"","value":"amount > max withdrawable"}],"functionName":{"name":"mstore","nativeSrc":"21042:6:88","nodeType":"YulIdentifier","src":"21042:6:88"},"nativeSrc":"21042:55:88","nodeType":"YulFunctionCall","src":"21042:55:88"},"nativeSrc":"21042:55:88","nodeType":"YulExpressionStatement","src":"21042:55:88"},{"nativeSrc":"21106:26:88","nodeType":"YulAssignment","src":"21106:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21118:9:88","nodeType":"YulIdentifier","src":"21118:9:88"},{"kind":"number","nativeSrc":"21129:2:88","nodeType":"YulLiteral","src":"21129:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21114:3:88","nodeType":"YulIdentifier","src":"21114:3:88"},"nativeSrc":"21114:18:88","nodeType":"YulFunctionCall","src":"21114:18:88"},"variableNames":[{"name":"tail","nativeSrc":"21106:4:88","nodeType":"YulIdentifier","src":"21106:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_77f7550e99cfae6f48d896697b1fd5549402978fb8c71ca77dd0631d76531f0d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20789:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20940:9:88","nodeType":"YulTypedName","src":"20940:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20954:4:88","nodeType":"YulTypedName","src":"20954:4:88","type":""}],"src":"20789:349:88"},{"body":{"nativeSrc":"21317:227:88","nodeType":"YulBlock","src":"21317:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21334:9:88","nodeType":"YulIdentifier","src":"21334:9:88"},{"kind":"number","nativeSrc":"21345:2:88","nodeType":"YulLiteral","src":"21345:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21327:6:88","nodeType":"YulIdentifier","src":"21327:6:88"},"nativeSrc":"21327:21:88","nodeType":"YulFunctionCall","src":"21327:21:88"},"nativeSrc":"21327:21:88","nodeType":"YulExpressionStatement","src":"21327:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21368:9:88","nodeType":"YulIdentifier","src":"21368:9:88"},{"kind":"number","nativeSrc":"21379:2:88","nodeType":"YulLiteral","src":"21379:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21364:3:88","nodeType":"YulIdentifier","src":"21364:3:88"},"nativeSrc":"21364:18:88","nodeType":"YulFunctionCall","src":"21364:18:88"},{"kind":"number","nativeSrc":"21384:2:88","nodeType":"YulLiteral","src":"21384:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"21357:6:88","nodeType":"YulIdentifier","src":"21357:6:88"},"nativeSrc":"21357:30:88","nodeType":"YulFunctionCall","src":"21357:30:88"},"nativeSrc":"21357:30:88","nodeType":"YulExpressionStatement","src":"21357:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21407:9:88","nodeType":"YulIdentifier","src":"21407:9:88"},{"kind":"number","nativeSrc":"21418:2:88","nodeType":"YulLiteral","src":"21418:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21403:3:88","nodeType":"YulIdentifier","src":"21403:3:88"},"nativeSrc":"21403:18:88","nodeType":"YulFunctionCall","src":"21403:18:88"},{"hexValue":"45546f6b656e3a20617070726f76652066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"21423:34:88","nodeType":"YulLiteral","src":"21423:34:88","type":"","value":"EToken: approve from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"21396:6:88","nodeType":"YulIdentifier","src":"21396:6:88"},"nativeSrc":"21396:62:88","nodeType":"YulFunctionCall","src":"21396:62:88"},"nativeSrc":"21396:62:88","nodeType":"YulExpressionStatement","src":"21396:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21478:9:88","nodeType":"YulIdentifier","src":"21478:9:88"},{"kind":"number","nativeSrc":"21489:2:88","nodeType":"YulLiteral","src":"21489:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21474:3:88","nodeType":"YulIdentifier","src":"21474:3:88"},"nativeSrc":"21474:18:88","nodeType":"YulFunctionCall","src":"21474:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"21494:7:88","nodeType":"YulLiteral","src":"21494:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"21467:6:88","nodeType":"YulIdentifier","src":"21467:6:88"},"nativeSrc":"21467:35:88","nodeType":"YulFunctionCall","src":"21467:35:88"},"nativeSrc":"21467:35:88","nodeType":"YulExpressionStatement","src":"21467:35:88"},{"nativeSrc":"21511:27:88","nodeType":"YulAssignment","src":"21511:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21523:9:88","nodeType":"YulIdentifier","src":"21523:9:88"},{"kind":"number","nativeSrc":"21534:3:88","nodeType":"YulLiteral","src":"21534:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21519:3:88","nodeType":"YulIdentifier","src":"21519:3:88"},"nativeSrc":"21519:19:88","nodeType":"YulFunctionCall","src":"21519:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21511:4:88","nodeType":"YulIdentifier","src":"21511:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e22d4b76cddf749021acbaffeb21586d2eddcc3413a241b2458b22b9d569598d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21143:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21294:9:88","nodeType":"YulTypedName","src":"21294:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21308:4:88","nodeType":"YulTypedName","src":"21308:4:88","type":""}],"src":"21143:401:88"},{"body":{"nativeSrc":"21723:225:88","nodeType":"YulBlock","src":"21723:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21740:9:88","nodeType":"YulIdentifier","src":"21740:9:88"},{"kind":"number","nativeSrc":"21751:2:88","nodeType":"YulLiteral","src":"21751:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21733:6:88","nodeType":"YulIdentifier","src":"21733:6:88"},"nativeSrc":"21733:21:88","nodeType":"YulFunctionCall","src":"21733:21:88"},"nativeSrc":"21733:21:88","nodeType":"YulExpressionStatement","src":"21733:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21774:9:88","nodeType":"YulIdentifier","src":"21774:9:88"},{"kind":"number","nativeSrc":"21785:2:88","nodeType":"YulLiteral","src":"21785:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21770:3:88","nodeType":"YulIdentifier","src":"21770:3:88"},"nativeSrc":"21770:18:88","nodeType":"YulFunctionCall","src":"21770:18:88"},{"kind":"number","nativeSrc":"21790:2:88","nodeType":"YulLiteral","src":"21790:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"21763:6:88","nodeType":"YulIdentifier","src":"21763:6:88"},"nativeSrc":"21763:30:88","nodeType":"YulFunctionCall","src":"21763:30:88"},"nativeSrc":"21763:30:88","nodeType":"YulExpressionStatement","src":"21763:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21813:9:88","nodeType":"YulIdentifier","src":"21813:9:88"},{"kind":"number","nativeSrc":"21824:2:88","nodeType":"YulLiteral","src":"21824:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21809:3:88","nodeType":"YulIdentifier","src":"21809:3:88"},"nativeSrc":"21809:18:88","nodeType":"YulFunctionCall","src":"21809:18:88"},{"hexValue":"45546f6b656e3a20617070726f766520746f20746865207a65726f2061646472","kind":"string","nativeSrc":"21829:34:88","nodeType":"YulLiteral","src":"21829:34:88","type":"","value":"EToken: approve to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"21802:6:88","nodeType":"YulIdentifier","src":"21802:6:88"},"nativeSrc":"21802:62:88","nodeType":"YulFunctionCall","src":"21802:62:88"},"nativeSrc":"21802:62:88","nodeType":"YulExpressionStatement","src":"21802:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21884:9:88","nodeType":"YulIdentifier","src":"21884:9:88"},{"kind":"number","nativeSrc":"21895:2:88","nodeType":"YulLiteral","src":"21895:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21880:3:88","nodeType":"YulIdentifier","src":"21880:3:88"},"nativeSrc":"21880:18:88","nodeType":"YulFunctionCall","src":"21880:18:88"},{"hexValue":"657373","kind":"string","nativeSrc":"21900:5:88","nodeType":"YulLiteral","src":"21900:5:88","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"21873:6:88","nodeType":"YulIdentifier","src":"21873:6:88"},"nativeSrc":"21873:33:88","nodeType":"YulFunctionCall","src":"21873:33:88"},"nativeSrc":"21873:33:88","nodeType":"YulExpressionStatement","src":"21873:33:88"},{"nativeSrc":"21915:27:88","nodeType":"YulAssignment","src":"21915:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21927:9:88","nodeType":"YulIdentifier","src":"21927:9:88"},{"kind":"number","nativeSrc":"21938:3:88","nodeType":"YulLiteral","src":"21938:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21923:3:88","nodeType":"YulIdentifier","src":"21923:3:88"},"nativeSrc":"21923:19:88","nodeType":"YulFunctionCall","src":"21923:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21915:4:88","nodeType":"YulIdentifier","src":"21915:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8f2f6229ccd48e6ded11f90b09020d2d605afd986dfc1dc96af3fe98ef412b14__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21549:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21700:9:88","nodeType":"YulTypedName","src":"21700:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21714:4:88","nodeType":"YulTypedName","src":"21714:4:88","type":""}],"src":"21549:399:88"},{"body":{"nativeSrc":"22127:180:88","nodeType":"YulBlock","src":"22127:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22144:9:88","nodeType":"YulIdentifier","src":"22144:9:88"},{"kind":"number","nativeSrc":"22155:2:88","nodeType":"YulLiteral","src":"22155:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22137:6:88","nodeType":"YulIdentifier","src":"22137:6:88"},"nativeSrc":"22137:21:88","nodeType":"YulFunctionCall","src":"22137:21:88"},"nativeSrc":"22137:21:88","nodeType":"YulExpressionStatement","src":"22137:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22178:9:88","nodeType":"YulIdentifier","src":"22178:9:88"},{"kind":"number","nativeSrc":"22189:2:88","nodeType":"YulLiteral","src":"22189:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22174:3:88","nodeType":"YulIdentifier","src":"22174:3:88"},"nativeSrc":"22174:18:88","nodeType":"YulFunctionCall","src":"22174:18:88"},{"kind":"number","nativeSrc":"22194:2:88","nodeType":"YulLiteral","src":"22194:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"22167:6:88","nodeType":"YulIdentifier","src":"22167:6:88"},"nativeSrc":"22167:30:88","nodeType":"YulFunctionCall","src":"22167:30:88"},"nativeSrc":"22167:30:88","nodeType":"YulExpressionStatement","src":"22167:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22217:9:88","nodeType":"YulIdentifier","src":"22217:9:88"},{"kind":"number","nativeSrc":"22228:2:88","nodeType":"YulLiteral","src":"22228:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22213:3:88","nodeType":"YulIdentifier","src":"22213:3:88"},"nativeSrc":"22213:18:88","nodeType":"YulFunctionCall","src":"22213:18:88"},{"hexValue":"45546f6b656e3a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"22233:32:88","nodeType":"YulLiteral","src":"22233:32:88","type":"","value":"EToken: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"22206:6:88","nodeType":"YulIdentifier","src":"22206:6:88"},"nativeSrc":"22206:60:88","nodeType":"YulFunctionCall","src":"22206:60:88"},"nativeSrc":"22206:60:88","nodeType":"YulExpressionStatement","src":"22206:60:88"},{"nativeSrc":"22275:26:88","nodeType":"YulAssignment","src":"22275:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22287:9:88","nodeType":"YulIdentifier","src":"22287:9:88"},{"kind":"number","nativeSrc":"22298:2:88","nodeType":"YulLiteral","src":"22298:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22283:3:88","nodeType":"YulIdentifier","src":"22283:3:88"},"nativeSrc":"22283:18:88","nodeType":"YulFunctionCall","src":"22283:18:88"},"variableNames":[{"name":"tail","nativeSrc":"22275:4:88","nodeType":"YulIdentifier","src":"22275:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3406c0466d0912ad8f34c77eb032a772c722fa4ced2b9160a821ce7a76316ecb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21953:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22104:9:88","nodeType":"YulTypedName","src":"22104:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22118:4:88","nodeType":"YulTypedName","src":"22118:4:88","type":""}],"src":"21953:354:88"},{"body":{"nativeSrc":"22486:228:88","nodeType":"YulBlock","src":"22486:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22503:9:88","nodeType":"YulIdentifier","src":"22503:9:88"},{"kind":"number","nativeSrc":"22514:2:88","nodeType":"YulLiteral","src":"22514:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22496:6:88","nodeType":"YulIdentifier","src":"22496:6:88"},"nativeSrc":"22496:21:88","nodeType":"YulFunctionCall","src":"22496:21:88"},"nativeSrc":"22496:21:88","nodeType":"YulExpressionStatement","src":"22496:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22537:9:88","nodeType":"YulIdentifier","src":"22537:9:88"},{"kind":"number","nativeSrc":"22548:2:88","nodeType":"YulLiteral","src":"22548:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22533:3:88","nodeType":"YulIdentifier","src":"22533:3:88"},"nativeSrc":"22533:18:88","nodeType":"YulFunctionCall","src":"22533:18:88"},{"kind":"number","nativeSrc":"22553:2:88","nodeType":"YulLiteral","src":"22553:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"22526:6:88","nodeType":"YulIdentifier","src":"22526:6:88"},"nativeSrc":"22526:30:88","nodeType":"YulFunctionCall","src":"22526:30:88"},"nativeSrc":"22526:30:88","nodeType":"YulExpressionStatement","src":"22526:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22576:9:88","nodeType":"YulIdentifier","src":"22576:9:88"},{"kind":"number","nativeSrc":"22587:2:88","nodeType":"YulLiteral","src":"22587:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22572:3:88","nodeType":"YulIdentifier","src":"22572:3:88"},"nativeSrc":"22572:18:88","nodeType":"YulFunctionCall","src":"22572:18:88"},{"hexValue":"45546f6b656e3a207472616e736665722066726f6d20746865207a65726f2061","kind":"string","nativeSrc":"22592:34:88","nodeType":"YulLiteral","src":"22592:34:88","type":"","value":"EToken: transfer from the zero a"}],"functionName":{"name":"mstore","nativeSrc":"22565:6:88","nodeType":"YulIdentifier","src":"22565:6:88"},"nativeSrc":"22565:62:88","nodeType":"YulFunctionCall","src":"22565:62:88"},"nativeSrc":"22565:62:88","nodeType":"YulExpressionStatement","src":"22565:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22647:9:88","nodeType":"YulIdentifier","src":"22647:9:88"},{"kind":"number","nativeSrc":"22658:2:88","nodeType":"YulLiteral","src":"22658:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22643:3:88","nodeType":"YulIdentifier","src":"22643:3:88"},"nativeSrc":"22643:18:88","nodeType":"YulFunctionCall","src":"22643:18:88"},{"hexValue":"646472657373","kind":"string","nativeSrc":"22663:8:88","nodeType":"YulLiteral","src":"22663:8:88","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"22636:6:88","nodeType":"YulIdentifier","src":"22636:6:88"},"nativeSrc":"22636:36:88","nodeType":"YulFunctionCall","src":"22636:36:88"},"nativeSrc":"22636:36:88","nodeType":"YulExpressionStatement","src":"22636:36:88"},{"nativeSrc":"22681:27:88","nodeType":"YulAssignment","src":"22681:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22693:9:88","nodeType":"YulIdentifier","src":"22693:9:88"},{"kind":"number","nativeSrc":"22704:3:88","nodeType":"YulLiteral","src":"22704:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22689:3:88","nodeType":"YulIdentifier","src":"22689:3:88"},"nativeSrc":"22689:19:88","nodeType":"YulFunctionCall","src":"22689:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22681:4:88","nodeType":"YulIdentifier","src":"22681:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae4199242667364260c775cebec97ad3ad9108abef60e71dd3b366486b317dbe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22312:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22463:9:88","nodeType":"YulTypedName","src":"22463:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22477:4:88","nodeType":"YulTypedName","src":"22477:4:88","type":""}],"src":"22312:402:88"},{"body":{"nativeSrc":"22893:226:88","nodeType":"YulBlock","src":"22893:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22910:9:88","nodeType":"YulIdentifier","src":"22910:9:88"},{"kind":"number","nativeSrc":"22921:2:88","nodeType":"YulLiteral","src":"22921:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22903:6:88","nodeType":"YulIdentifier","src":"22903:6:88"},"nativeSrc":"22903:21:88","nodeType":"YulFunctionCall","src":"22903:21:88"},"nativeSrc":"22903:21:88","nodeType":"YulExpressionStatement","src":"22903:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22944:9:88","nodeType":"YulIdentifier","src":"22944:9:88"},{"kind":"number","nativeSrc":"22955:2:88","nodeType":"YulLiteral","src":"22955:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22940:3:88","nodeType":"YulIdentifier","src":"22940:3:88"},"nativeSrc":"22940:18:88","nodeType":"YulFunctionCall","src":"22940:18:88"},{"kind":"number","nativeSrc":"22960:2:88","nodeType":"YulLiteral","src":"22960:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"22933:6:88","nodeType":"YulIdentifier","src":"22933:6:88"},"nativeSrc":"22933:30:88","nodeType":"YulFunctionCall","src":"22933:30:88"},"nativeSrc":"22933:30:88","nodeType":"YulExpressionStatement","src":"22933:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22983:9:88","nodeType":"YulIdentifier","src":"22983:9:88"},{"kind":"number","nativeSrc":"22994:2:88","nodeType":"YulLiteral","src":"22994:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22979:3:88","nodeType":"YulIdentifier","src":"22979:3:88"},"nativeSrc":"22979:18:88","nodeType":"YulFunctionCall","src":"22979:18:88"},{"hexValue":"45546f6b656e3a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nativeSrc":"22999:34:88","nodeType":"YulLiteral","src":"22999:34:88","type":"","value":"EToken: transfer to the zero add"}],"functionName":{"name":"mstore","nativeSrc":"22972:6:88","nodeType":"YulIdentifier","src":"22972:6:88"},"nativeSrc":"22972:62:88","nodeType":"YulFunctionCall","src":"22972:62:88"},"nativeSrc":"22972:62:88","nodeType":"YulExpressionStatement","src":"22972:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23054:9:88","nodeType":"YulIdentifier","src":"23054:9:88"},{"kind":"number","nativeSrc":"23065:2:88","nodeType":"YulLiteral","src":"23065:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23050:3:88","nodeType":"YulIdentifier","src":"23050:3:88"},"nativeSrc":"23050:18:88","nodeType":"YulFunctionCall","src":"23050:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"23070:6:88","nodeType":"YulLiteral","src":"23070:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"23043:6:88","nodeType":"YulIdentifier","src":"23043:6:88"},"nativeSrc":"23043:34:88","nodeType":"YulFunctionCall","src":"23043:34:88"},"nativeSrc":"23043:34:88","nodeType":"YulExpressionStatement","src":"23043:34:88"},{"nativeSrc":"23086:27:88","nodeType":"YulAssignment","src":"23086:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23098:9:88","nodeType":"YulIdentifier","src":"23098:9:88"},{"kind":"number","nativeSrc":"23109:3:88","nodeType":"YulLiteral","src":"23109:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23094:3:88","nodeType":"YulIdentifier","src":"23094:3:88"},"nativeSrc":"23094:19:88","nodeType":"YulFunctionCall","src":"23094:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23086:4:88","nodeType":"YulIdentifier","src":"23086:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d4e62c43d6dc168374092f2c8d3a0a07ef5767b05389925edc989db39e9a46f7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22719:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22870:9:88","nodeType":"YulTypedName","src":"22870:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22884:4:88","nodeType":"YulTypedName","src":"22884:4:88","type":""}],"src":"22719:400:88"},{"body":{"nativeSrc":"23298:229:88","nodeType":"YulBlock","src":"23298:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23315:9:88","nodeType":"YulIdentifier","src":"23315:9:88"},{"kind":"number","nativeSrc":"23326:2:88","nodeType":"YulLiteral","src":"23326:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23308:6:88","nodeType":"YulIdentifier","src":"23308:6:88"},"nativeSrc":"23308:21:88","nodeType":"YulFunctionCall","src":"23308:21:88"},"nativeSrc":"23308:21:88","nodeType":"YulExpressionStatement","src":"23308:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23349:9:88","nodeType":"YulIdentifier","src":"23349:9:88"},{"kind":"number","nativeSrc":"23360:2:88","nodeType":"YulLiteral","src":"23360:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23345:3:88","nodeType":"YulIdentifier","src":"23345:3:88"},"nativeSrc":"23345:18:88","nodeType":"YulFunctionCall","src":"23345:18:88"},{"kind":"number","nativeSrc":"23365:2:88","nodeType":"YulLiteral","src":"23365:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"23338:6:88","nodeType":"YulIdentifier","src":"23338:6:88"},"nativeSrc":"23338:30:88","nodeType":"YulFunctionCall","src":"23338:30:88"},"nativeSrc":"23338:30:88","nodeType":"YulExpressionStatement","src":"23338:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23388:9:88","nodeType":"YulIdentifier","src":"23388:9:88"},{"kind":"number","nativeSrc":"23399:2:88","nodeType":"YulLiteral","src":"23399:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23384:3:88","nodeType":"YulIdentifier","src":"23384:3:88"},"nativeSrc":"23384:18:88","nodeType":"YulFunctionCall","src":"23384:18:88"},{"hexValue":"45546f6b656e3a207472616e7366657220616d6f756e74206578636565647320","kind":"string","nativeSrc":"23404:34:88","nodeType":"YulLiteral","src":"23404:34:88","type":"","value":"EToken: transfer amount exceeds "}],"functionName":{"name":"mstore","nativeSrc":"23377:6:88","nodeType":"YulIdentifier","src":"23377:6:88"},"nativeSrc":"23377:62:88","nodeType":"YulFunctionCall","src":"23377:62:88"},"nativeSrc":"23377:62:88","nodeType":"YulExpressionStatement","src":"23377:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23459:9:88","nodeType":"YulIdentifier","src":"23459:9:88"},{"kind":"number","nativeSrc":"23470:2:88","nodeType":"YulLiteral","src":"23470:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23455:3:88","nodeType":"YulIdentifier","src":"23455:3:88"},"nativeSrc":"23455:18:88","nodeType":"YulFunctionCall","src":"23455:18:88"},{"hexValue":"62616c616e6365","kind":"string","nativeSrc":"23475:9:88","nodeType":"YulLiteral","src":"23475:9:88","type":"","value":"balance"}],"functionName":{"name":"mstore","nativeSrc":"23448:6:88","nodeType":"YulIdentifier","src":"23448:6:88"},"nativeSrc":"23448:37:88","nodeType":"YulFunctionCall","src":"23448:37:88"},"nativeSrc":"23448:37:88","nodeType":"YulExpressionStatement","src":"23448:37:88"},{"nativeSrc":"23494:27:88","nodeType":"YulAssignment","src":"23494:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23506:9:88","nodeType":"YulIdentifier","src":"23506:9:88"},{"kind":"number","nativeSrc":"23517:3:88","nodeType":"YulLiteral","src":"23517:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23502:3:88","nodeType":"YulIdentifier","src":"23502:3:88"},"nativeSrc":"23502:19:88","nodeType":"YulFunctionCall","src":"23502:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23494:4:88","nodeType":"YulIdentifier","src":"23494:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3020e2e2e5d51ac5ca552375a258790bbdeb16e01029ecb426ea961f96df04d6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23124:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23275:9:88","nodeType":"YulTypedName","src":"23275:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23289:4:88","nodeType":"YulTypedName","src":"23289:4:88","type":""}],"src":"23124:403:88"},{"body":{"nativeSrc":"23613:103:88","nodeType":"YulBlock","src":"23613:103:88","statements":[{"body":{"nativeSrc":"23659:16:88","nodeType":"YulBlock","src":"23659:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23668:1:88","nodeType":"YulLiteral","src":"23668:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23671:1:88","nodeType":"YulLiteral","src":"23671:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23661:6:88","nodeType":"YulIdentifier","src":"23661:6:88"},"nativeSrc":"23661:12:88","nodeType":"YulFunctionCall","src":"23661:12:88"},"nativeSrc":"23661:12:88","nodeType":"YulExpressionStatement","src":"23661:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23634:7:88","nodeType":"YulIdentifier","src":"23634:7:88"},{"name":"headStart","nativeSrc":"23643:9:88","nodeType":"YulIdentifier","src":"23643:9:88"}],"functionName":{"name":"sub","nativeSrc":"23630:3:88","nodeType":"YulIdentifier","src":"23630:3:88"},"nativeSrc":"23630:23:88","nodeType":"YulFunctionCall","src":"23630:23:88"},{"kind":"number","nativeSrc":"23655:2:88","nodeType":"YulLiteral","src":"23655:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23626:3:88","nodeType":"YulIdentifier","src":"23626:3:88"},"nativeSrc":"23626:32:88","nodeType":"YulFunctionCall","src":"23626:32:88"},"nativeSrc":"23623:52:88","nodeType":"YulIf","src":"23623:52:88"},{"nativeSrc":"23684:26:88","nodeType":"YulAssignment","src":"23684:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23700:9:88","nodeType":"YulIdentifier","src":"23700:9:88"}],"functionName":{"name":"mload","nativeSrc":"23694:5:88","nodeType":"YulIdentifier","src":"23694:5:88"},"nativeSrc":"23694:16:88","nodeType":"YulFunctionCall","src":"23694:16:88"},"variableNames":[{"name":"value0","nativeSrc":"23684:6:88","nodeType":"YulIdentifier","src":"23684:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"23532:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23579:9:88","nodeType":"YulTypedName","src":"23579:9:88","type":""},{"name":"dataEnd","nativeSrc":"23590:7:88","nodeType":"YulTypedName","src":"23590:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23602:6:88","nodeType":"YulTypedName","src":"23602:6:88","type":""}],"src":"23532:184:88"},{"body":{"nativeSrc":"23895:236:88","nodeType":"YulBlock","src":"23895:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23912:9:88","nodeType":"YulIdentifier","src":"23912:9:88"},{"kind":"number","nativeSrc":"23923:2:88","nodeType":"YulLiteral","src":"23923:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23905:6:88","nodeType":"YulIdentifier","src":"23905:6:88"},"nativeSrc":"23905:21:88","nodeType":"YulFunctionCall","src":"23905:21:88"},"nativeSrc":"23905:21:88","nodeType":"YulExpressionStatement","src":"23905:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23946:9:88","nodeType":"YulIdentifier","src":"23946:9:88"},{"kind":"number","nativeSrc":"23957:2:88","nodeType":"YulLiteral","src":"23957:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23942:3:88","nodeType":"YulIdentifier","src":"23942:3:88"},"nativeSrc":"23942:18:88","nodeType":"YulFunctionCall","src":"23942:18:88"},{"kind":"number","nativeSrc":"23962:2:88","nodeType":"YulLiteral","src":"23962:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"23935:6:88","nodeType":"YulIdentifier","src":"23935:6:88"},"nativeSrc":"23935:30:88","nodeType":"YulFunctionCall","src":"23935:30:88"},"nativeSrc":"23935:30:88","nodeType":"YulExpressionStatement","src":"23935:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23985:9:88","nodeType":"YulIdentifier","src":"23985:9:88"},{"kind":"number","nativeSrc":"23996:2:88","nodeType":"YulLiteral","src":"23996:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23981:3:88","nodeType":"YulIdentifier","src":"23981:3:88"},"nativeSrc":"23981:18:88","nodeType":"YulFunctionCall","src":"23981:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"24001:34:88","nodeType":"YulLiteral","src":"24001:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"23974:6:88","nodeType":"YulIdentifier","src":"23974:6:88"},"nativeSrc":"23974:62:88","nodeType":"YulFunctionCall","src":"23974:62:88"},"nativeSrc":"23974:62:88","nodeType":"YulExpressionStatement","src":"23974:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24056:9:88","nodeType":"YulIdentifier","src":"24056:9:88"},{"kind":"number","nativeSrc":"24067:2:88","nodeType":"YulLiteral","src":"24067:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24052:3:88","nodeType":"YulIdentifier","src":"24052:3:88"},"nativeSrc":"24052:18:88","nodeType":"YulFunctionCall","src":"24052:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"24072:16:88","nodeType":"YulLiteral","src":"24072:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"24045:6:88","nodeType":"YulIdentifier","src":"24045:6:88"},"nativeSrc":"24045:44:88","nodeType":"YulFunctionCall","src":"24045:44:88"},"nativeSrc":"24045:44:88","nodeType":"YulExpressionStatement","src":"24045:44:88"},{"nativeSrc":"24098:27:88","nodeType":"YulAssignment","src":"24098:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24110:9:88","nodeType":"YulIdentifier","src":"24110:9:88"},{"kind":"number","nativeSrc":"24121:3:88","nodeType":"YulLiteral","src":"24121:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24106:3:88","nodeType":"YulIdentifier","src":"24106:3:88"},"nativeSrc":"24106:19:88","nodeType":"YulFunctionCall","src":"24106:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24098:4:88","nodeType":"YulIdentifier","src":"24098:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23721:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23872:9:88","nodeType":"YulTypedName","src":"23872:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23886:4:88","nodeType":"YulTypedName","src":"23886:4:88","type":""}],"src":"23721:410:88"},{"body":{"nativeSrc":"24310:231:88","nodeType":"YulBlock","src":"24310:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24327:9:88","nodeType":"YulIdentifier","src":"24327:9:88"},{"kind":"number","nativeSrc":"24338:2:88","nodeType":"YulLiteral","src":"24338:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24320:6:88","nodeType":"YulIdentifier","src":"24320:6:88"},"nativeSrc":"24320:21:88","nodeType":"YulFunctionCall","src":"24320:21:88"},"nativeSrc":"24320:21:88","nodeType":"YulExpressionStatement","src":"24320:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24361:9:88","nodeType":"YulIdentifier","src":"24361:9:88"},{"kind":"number","nativeSrc":"24372:2:88","nodeType":"YulLiteral","src":"24372:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24357:3:88","nodeType":"YulIdentifier","src":"24357:3:88"},"nativeSrc":"24357:18:88","nodeType":"YulFunctionCall","src":"24357:18:88"},{"kind":"number","nativeSrc":"24377:2:88","nodeType":"YulLiteral","src":"24377:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"24350:6:88","nodeType":"YulIdentifier","src":"24350:6:88"},"nativeSrc":"24350:30:88","nodeType":"YulFunctionCall","src":"24350:30:88"},"nativeSrc":"24350:30:88","nodeType":"YulExpressionStatement","src":"24350:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24400:9:88","nodeType":"YulIdentifier","src":"24400:9:88"},{"kind":"number","nativeSrc":"24411:2:88","nodeType":"YulLiteral","src":"24411:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24396:3:88","nodeType":"YulIdentifier","src":"24396:3:88"},"nativeSrc":"24396:18:88","nodeType":"YulFunctionCall","src":"24396:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"24416:34:88","nodeType":"YulLiteral","src":"24416:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"24389:6:88","nodeType":"YulIdentifier","src":"24389:6:88"},"nativeSrc":"24389:62:88","nodeType":"YulFunctionCall","src":"24389:62:88"},"nativeSrc":"24389:62:88","nodeType":"YulExpressionStatement","src":"24389:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24471:9:88","nodeType":"YulIdentifier","src":"24471:9:88"},{"kind":"number","nativeSrc":"24482:2:88","nodeType":"YulLiteral","src":"24482:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24467:3:88","nodeType":"YulIdentifier","src":"24467:3:88"},"nativeSrc":"24467:18:88","nodeType":"YulFunctionCall","src":"24467:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"24487:11:88","nodeType":"YulLiteral","src":"24487:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"24460:6:88","nodeType":"YulIdentifier","src":"24460:6:88"},"nativeSrc":"24460:39:88","nodeType":"YulFunctionCall","src":"24460:39:88"},"nativeSrc":"24460:39:88","nodeType":"YulExpressionStatement","src":"24460:39:88"},{"nativeSrc":"24508:27:88","nodeType":"YulAssignment","src":"24508:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24520:9:88","nodeType":"YulIdentifier","src":"24520:9:88"},{"kind":"number","nativeSrc":"24531:3:88","nodeType":"YulLiteral","src":"24531:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24516:3:88","nodeType":"YulIdentifier","src":"24516:3:88"},"nativeSrc":"24516:19:88","nodeType":"YulFunctionCall","src":"24516:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24508:4:88","nodeType":"YulIdentifier","src":"24508:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24136:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24287:9:88","nodeType":"YulTypedName","src":"24287:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24301:4:88","nodeType":"YulTypedName","src":"24301:4:88","type":""}],"src":"24136:405:88"},{"body":{"nativeSrc":"24647:102:88","nodeType":"YulBlock","src":"24647:102:88","statements":[{"nativeSrc":"24657:26:88","nodeType":"YulAssignment","src":"24657:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24669:9:88","nodeType":"YulIdentifier","src":"24669:9:88"},{"kind":"number","nativeSrc":"24680:2:88","nodeType":"YulLiteral","src":"24680:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24665:3:88","nodeType":"YulIdentifier","src":"24665:3:88"},"nativeSrc":"24665:18:88","nodeType":"YulFunctionCall","src":"24665:18:88"},"variableNames":[{"name":"tail","nativeSrc":"24657:4:88","nodeType":"YulIdentifier","src":"24657:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24699:9:88","nodeType":"YulIdentifier","src":"24699:9:88"},{"arguments":[{"name":"value0","nativeSrc":"24714:6:88","nodeType":"YulIdentifier","src":"24714:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24730:3:88","nodeType":"YulLiteral","src":"24730:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"24735:1:88","nodeType":"YulLiteral","src":"24735:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24726:3:88","nodeType":"YulIdentifier","src":"24726:3:88"},"nativeSrc":"24726:11:88","nodeType":"YulFunctionCall","src":"24726:11:88"},{"kind":"number","nativeSrc":"24739:1:88","nodeType":"YulLiteral","src":"24739:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24722:3:88","nodeType":"YulIdentifier","src":"24722:3:88"},"nativeSrc":"24722:19:88","nodeType":"YulFunctionCall","src":"24722:19:88"}],"functionName":{"name":"and","nativeSrc":"24710:3:88","nodeType":"YulIdentifier","src":"24710:3:88"},"nativeSrc":"24710:32:88","nodeType":"YulFunctionCall","src":"24710:32:88"}],"functionName":{"name":"mstore","nativeSrc":"24692:6:88","nodeType":"YulIdentifier","src":"24692:6:88"},"nativeSrc":"24692:51:88","nodeType":"YulFunctionCall","src":"24692:51:88"},"nativeSrc":"24692:51:88","nodeType":"YulExpressionStatement","src":"24692:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"24546:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24616:9:88","nodeType":"YulTypedName","src":"24616:9:88","type":""},{"name":"value0","nativeSrc":"24627:6:88","nodeType":"YulTypedName","src":"24627:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24638:4:88","nodeType":"YulTypedName","src":"24638:4:88","type":""}],"src":"24546:203:88"},{"body":{"nativeSrc":"24928:182:88","nodeType":"YulBlock","src":"24928:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24945:9:88","nodeType":"YulIdentifier","src":"24945:9:88"},{"kind":"number","nativeSrc":"24956:2:88","nodeType":"YulLiteral","src":"24956:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24938:6:88","nodeType":"YulIdentifier","src":"24938:6:88"},"nativeSrc":"24938:21:88","nodeType":"YulFunctionCall","src":"24938:21:88"},"nativeSrc":"24938:21:88","nodeType":"YulExpressionStatement","src":"24938:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24979:9:88","nodeType":"YulIdentifier","src":"24979:9:88"},{"kind":"number","nativeSrc":"24990:2:88","nodeType":"YulLiteral","src":"24990:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24975:3:88","nodeType":"YulIdentifier","src":"24975:3:88"},"nativeSrc":"24975:18:88","nodeType":"YulFunctionCall","src":"24975:18:88"},{"kind":"number","nativeSrc":"24995:2:88","nodeType":"YulLiteral","src":"24995:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24968:6:88","nodeType":"YulIdentifier","src":"24968:6:88"},"nativeSrc":"24968:30:88","nodeType":"YulFunctionCall","src":"24968:30:88"},"nativeSrc":"24968:30:88","nodeType":"YulExpressionStatement","src":"24968:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25018:9:88","nodeType":"YulIdentifier","src":"25018:9:88"},{"kind":"number","nativeSrc":"25029:2:88","nodeType":"YulLiteral","src":"25029:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25014:3:88","nodeType":"YulIdentifier","src":"25014:3:88"},"nativeSrc":"25014:18:88","nodeType":"YulFunctionCall","src":"25014:18:88"},{"hexValue":"45546f6b656e3a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"25034:34:88","nodeType":"YulLiteral","src":"25034:34:88","type":"","value":"EToken: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"25007:6:88","nodeType":"YulIdentifier","src":"25007:6:88"},"nativeSrc":"25007:62:88","nodeType":"YulFunctionCall","src":"25007:62:88"},"nativeSrc":"25007:62:88","nodeType":"YulExpressionStatement","src":"25007:62:88"},{"nativeSrc":"25078:26:88","nodeType":"YulAssignment","src":"25078:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25090:9:88","nodeType":"YulIdentifier","src":"25090:9:88"},{"kind":"number","nativeSrc":"25101:2:88","nodeType":"YulLiteral","src":"25101:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25086:3:88","nodeType":"YulIdentifier","src":"25086:3:88"},"nativeSrc":"25086:18:88","nodeType":"YulFunctionCall","src":"25086:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25078:4:88","nodeType":"YulIdentifier","src":"25078:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c092a48c5eeae749b2c36eb0157cd57f63b61df63925be968fc9a4b317f67bd1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24754:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24905:9:88","nodeType":"YulTypedName","src":"24905:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24919:4:88","nodeType":"YulTypedName","src":"24919:4:88","type":""}],"src":"24754:356:88"},{"body":{"nativeSrc":"25289:240:88","nodeType":"YulBlock","src":"25289:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25306:9:88","nodeType":"YulIdentifier","src":"25306:9:88"},{"kind":"number","nativeSrc":"25317:2:88","nodeType":"YulLiteral","src":"25317:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25299:6:88","nodeType":"YulIdentifier","src":"25299:6:88"},"nativeSrc":"25299:21:88","nodeType":"YulFunctionCall","src":"25299:21:88"},"nativeSrc":"25299:21:88","nodeType":"YulExpressionStatement","src":"25299:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25340:9:88","nodeType":"YulIdentifier","src":"25340:9:88"},{"kind":"number","nativeSrc":"25351:2:88","nodeType":"YulLiteral","src":"25351:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25336:3:88","nodeType":"YulIdentifier","src":"25336:3:88"},"nativeSrc":"25336:18:88","nodeType":"YulFunctionCall","src":"25336:18:88"},{"kind":"number","nativeSrc":"25356:2:88","nodeType":"YulLiteral","src":"25356:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"25329:6:88","nodeType":"YulIdentifier","src":"25329:6:88"},"nativeSrc":"25329:30:88","nodeType":"YulFunctionCall","src":"25329:30:88"},"nativeSrc":"25329:30:88","nodeType":"YulExpressionStatement","src":"25329:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25379:9:88","nodeType":"YulIdentifier","src":"25379:9:88"},{"kind":"number","nativeSrc":"25390:2:88","nodeType":"YulLiteral","src":"25390:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25375:3:88","nodeType":"YulIdentifier","src":"25375:3:88"},"nativeSrc":"25375:18:88","nodeType":"YulFunctionCall","src":"25375:18:88"},{"hexValue":"45546f6b656e3a20616d6f756e7420746f206d696e742073686f756c64206265","kind":"string","nativeSrc":"25395:34:88","nodeType":"YulLiteral","src":"25395:34:88","type":"","value":"EToken: amount to mint should be"}],"functionName":{"name":"mstore","nativeSrc":"25368:6:88","nodeType":"YulIdentifier","src":"25368:6:88"},"nativeSrc":"25368:62:88","nodeType":"YulFunctionCall","src":"25368:62:88"},"nativeSrc":"25368:62:88","nodeType":"YulExpressionStatement","src":"25368:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25450:9:88","nodeType":"YulIdentifier","src":"25450:9:88"},{"kind":"number","nativeSrc":"25461:2:88","nodeType":"YulLiteral","src":"25461:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25446:3:88","nodeType":"YulIdentifier","src":"25446:3:88"},"nativeSrc":"25446:18:88","nodeType":"YulFunctionCall","src":"25446:18:88"},{"hexValue":"2067726561746572207468616e207a65726f","kind":"string","nativeSrc":"25466:20:88","nodeType":"YulLiteral","src":"25466:20:88","type":"","value":" greater than zero"}],"functionName":{"name":"mstore","nativeSrc":"25439:6:88","nodeType":"YulIdentifier","src":"25439:6:88"},"nativeSrc":"25439:48:88","nodeType":"YulFunctionCall","src":"25439:48:88"},"nativeSrc":"25439:48:88","nodeType":"YulExpressionStatement","src":"25439:48:88"},{"nativeSrc":"25496:27:88","nodeType":"YulAssignment","src":"25496:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25508:9:88","nodeType":"YulIdentifier","src":"25508:9:88"},{"kind":"number","nativeSrc":"25519:3:88","nodeType":"YulLiteral","src":"25519:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25504:3:88","nodeType":"YulIdentifier","src":"25504:3:88"},"nativeSrc":"25504:19:88","nodeType":"YulFunctionCall","src":"25504:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25496:4:88","nodeType":"YulIdentifier","src":"25496:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f4873caaa3c69fd270042095be0af896c3dfb019459ae29b1f19ebb714595cfd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25115:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25266:9:88","nodeType":"YulTypedName","src":"25266:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25280:4:88","nodeType":"YulTypedName","src":"25280:4:88","type":""}],"src":"25115:414:88"},{"body":{"nativeSrc":"25708:166:88","nodeType":"YulBlock","src":"25708:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25725:9:88","nodeType":"YulIdentifier","src":"25725:9:88"},{"kind":"number","nativeSrc":"25736:2:88","nodeType":"YulLiteral","src":"25736:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25718:6:88","nodeType":"YulIdentifier","src":"25718:6:88"},"nativeSrc":"25718:21:88","nodeType":"YulFunctionCall","src":"25718:21:88"},"nativeSrc":"25718:21:88","nodeType":"YulExpressionStatement","src":"25718:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25759:9:88","nodeType":"YulIdentifier","src":"25759:9:88"},{"kind":"number","nativeSrc":"25770:2:88","nodeType":"YulLiteral","src":"25770:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25755:3:88","nodeType":"YulIdentifier","src":"25755:3:88"},"nativeSrc":"25755:18:88","nodeType":"YulFunctionCall","src":"25755:18:88"},{"kind":"number","nativeSrc":"25775:2:88","nodeType":"YulLiteral","src":"25775:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"25748:6:88","nodeType":"YulIdentifier","src":"25748:6:88"},"nativeSrc":"25748:30:88","nodeType":"YulFunctionCall","src":"25748:30:88"},"nativeSrc":"25748:30:88","nodeType":"YulExpressionStatement","src":"25748:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25798:9:88","nodeType":"YulIdentifier","src":"25798:9:88"},{"kind":"number","nativeSrc":"25809:2:88","nodeType":"YulLiteral","src":"25809:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25794:3:88","nodeType":"YulIdentifier","src":"25794:3:88"},"nativeSrc":"25794:18:88","nodeType":"YulFunctionCall","src":"25794:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"25814:18:88","nodeType":"YulLiteral","src":"25814:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"25787:6:88","nodeType":"YulIdentifier","src":"25787:6:88"},"nativeSrc":"25787:46:88","nodeType":"YulFunctionCall","src":"25787:46:88"},"nativeSrc":"25787:46:88","nodeType":"YulExpressionStatement","src":"25787:46:88"},{"nativeSrc":"25842:26:88","nodeType":"YulAssignment","src":"25842:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25854:9:88","nodeType":"YulIdentifier","src":"25854:9:88"},{"kind":"number","nativeSrc":"25865:2:88","nodeType":"YulLiteral","src":"25865:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25850:3:88","nodeType":"YulIdentifier","src":"25850:3:88"},"nativeSrc":"25850:18:88","nodeType":"YulFunctionCall","src":"25850:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25842:4:88","nodeType":"YulIdentifier","src":"25842:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25534:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25685:9:88","nodeType":"YulTypedName","src":"25685:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25699:4:88","nodeType":"YulTypedName","src":"25699:4:88","type":""}],"src":"25534:340:88"},{"body":{"nativeSrc":"26053:233:88","nodeType":"YulBlock","src":"26053:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26070:9:88","nodeType":"YulIdentifier","src":"26070:9:88"},{"kind":"number","nativeSrc":"26081:2:88","nodeType":"YulLiteral","src":"26081:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26063:6:88","nodeType":"YulIdentifier","src":"26063:6:88"},"nativeSrc":"26063:21:88","nodeType":"YulFunctionCall","src":"26063:21:88"},"nativeSrc":"26063:21:88","nodeType":"YulExpressionStatement","src":"26063:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26104:9:88","nodeType":"YulIdentifier","src":"26104:9:88"},{"kind":"number","nativeSrc":"26115:2:88","nodeType":"YulLiteral","src":"26115:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26100:3:88","nodeType":"YulIdentifier","src":"26100:3:88"},"nativeSrc":"26100:18:88","nodeType":"YulFunctionCall","src":"26100:18:88"},{"kind":"number","nativeSrc":"26120:2:88","nodeType":"YulLiteral","src":"26120:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"26093:6:88","nodeType":"YulIdentifier","src":"26093:6:88"},"nativeSrc":"26093:30:88","nodeType":"YulFunctionCall","src":"26093:30:88"},"nativeSrc":"26093:30:88","nodeType":"YulExpressionStatement","src":"26093:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26143:9:88","nodeType":"YulIdentifier","src":"26143:9:88"},{"kind":"number","nativeSrc":"26154:2:88","nodeType":"YulLiteral","src":"26154:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26139:3:88","nodeType":"YulIdentifier","src":"26139:3:88"},"nativeSrc":"26139:18:88","nodeType":"YulFunctionCall","src":"26139:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"26159:34:88","nodeType":"YulLiteral","src":"26159:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"26132:6:88","nodeType":"YulIdentifier","src":"26132:6:88"},"nativeSrc":"26132:62:88","nodeType":"YulFunctionCall","src":"26132:62:88"},"nativeSrc":"26132:62:88","nodeType":"YulExpressionStatement","src":"26132:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26214:9:88","nodeType":"YulIdentifier","src":"26214:9:88"},{"kind":"number","nativeSrc":"26225:2:88","nodeType":"YulLiteral","src":"26225:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26210:3:88","nodeType":"YulIdentifier","src":"26210:3:88"},"nativeSrc":"26210:18:88","nodeType":"YulFunctionCall","src":"26210:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"26230:13:88","nodeType":"YulLiteral","src":"26230:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"26203:6:88","nodeType":"YulIdentifier","src":"26203:6:88"},"nativeSrc":"26203:41:88","nodeType":"YulFunctionCall","src":"26203:41:88"},"nativeSrc":"26203:41:88","nodeType":"YulExpressionStatement","src":"26203:41:88"},{"nativeSrc":"26253:27:88","nodeType":"YulAssignment","src":"26253:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26265:9:88","nodeType":"YulIdentifier","src":"26265:9:88"},{"kind":"number","nativeSrc":"26276:3:88","nodeType":"YulLiteral","src":"26276:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26261:3:88","nodeType":"YulIdentifier","src":"26261:3:88"},"nativeSrc":"26261:19:88","nodeType":"YulFunctionCall","src":"26261:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26253:4:88","nodeType":"YulIdentifier","src":"26253:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25879:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26030:9:88","nodeType":"YulTypedName","src":"26030:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26044:4:88","nodeType":"YulTypedName","src":"26044:4:88","type":""}],"src":"25879:407:88"},{"body":{"nativeSrc":"26465:178:88","nodeType":"YulBlock","src":"26465:178:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26482:9:88","nodeType":"YulIdentifier","src":"26482:9:88"},{"kind":"number","nativeSrc":"26493:2:88","nodeType":"YulLiteral","src":"26493:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26475:6:88","nodeType":"YulIdentifier","src":"26475:6:88"},"nativeSrc":"26475:21:88","nodeType":"YulFunctionCall","src":"26475:21:88"},"nativeSrc":"26475:21:88","nodeType":"YulExpressionStatement","src":"26475:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26516:9:88","nodeType":"YulIdentifier","src":"26516:9:88"},{"kind":"number","nativeSrc":"26527:2:88","nodeType":"YulLiteral","src":"26527:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26512:3:88","nodeType":"YulIdentifier","src":"26512:3:88"},"nativeSrc":"26512:18:88","nodeType":"YulFunctionCall","src":"26512:18:88"},{"kind":"number","nativeSrc":"26532:2:88","nodeType":"YulLiteral","src":"26532:2:88","type":"","value":"28"}],"functionName":{"name":"mstore","nativeSrc":"26505:6:88","nodeType":"YulIdentifier","src":"26505:6:88"},"nativeSrc":"26505:30:88","nodeType":"YulFunctionCall","src":"26505:30:88"},"nativeSrc":"26505:30:88","nodeType":"YulExpressionStatement","src":"26505:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26555:9:88","nodeType":"YulIdentifier","src":"26555:9:88"},{"kind":"number","nativeSrc":"26566:2:88","nodeType":"YulLiteral","src":"26566:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26551:3:88","nodeType":"YulIdentifier","src":"26551:3:88"},"nativeSrc":"26551:18:88","nodeType":"YulFunctionCall","src":"26551:18:88"},{"hexValue":"45546f6b656e3a206e616d652063616e6e6f7420626520656d707479","kind":"string","nativeSrc":"26571:30:88","nodeType":"YulLiteral","src":"26571:30:88","type":"","value":"EToken: name cannot be empty"}],"functionName":{"name":"mstore","nativeSrc":"26544:6:88","nodeType":"YulIdentifier","src":"26544:6:88"},"nativeSrc":"26544:58:88","nodeType":"YulFunctionCall","src":"26544:58:88"},"nativeSrc":"26544:58:88","nodeType":"YulExpressionStatement","src":"26544:58:88"},{"nativeSrc":"26611:26:88","nodeType":"YulAssignment","src":"26611:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26623:9:88","nodeType":"YulIdentifier","src":"26623:9:88"},{"kind":"number","nativeSrc":"26634:2:88","nodeType":"YulLiteral","src":"26634:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26619:3:88","nodeType":"YulIdentifier","src":"26619:3:88"},"nativeSrc":"26619:18:88","nodeType":"YulFunctionCall","src":"26619:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26611:4:88","nodeType":"YulIdentifier","src":"26611:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09cd67821602a67e6869db7fdf6f889c81d8f4753f4bbab0d8ffed14a386f25a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26291:352:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26442:9:88","nodeType":"YulTypedName","src":"26442:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26456:4:88","nodeType":"YulTypedName","src":"26456:4:88","type":""}],"src":"26291:352:88"},{"body":{"nativeSrc":"26822:180:88","nodeType":"YulBlock","src":"26822:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26839:9:88","nodeType":"YulIdentifier","src":"26839:9:88"},{"kind":"number","nativeSrc":"26850:2:88","nodeType":"YulLiteral","src":"26850:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26832:6:88","nodeType":"YulIdentifier","src":"26832:6:88"},"nativeSrc":"26832:21:88","nodeType":"YulFunctionCall","src":"26832:21:88"},"nativeSrc":"26832:21:88","nodeType":"YulExpressionStatement","src":"26832:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26873:9:88","nodeType":"YulIdentifier","src":"26873:9:88"},{"kind":"number","nativeSrc":"26884:2:88","nodeType":"YulLiteral","src":"26884:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26869:3:88","nodeType":"YulIdentifier","src":"26869:3:88"},"nativeSrc":"26869:18:88","nodeType":"YulFunctionCall","src":"26869:18:88"},{"kind":"number","nativeSrc":"26889:2:88","nodeType":"YulLiteral","src":"26889:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"26862:6:88","nodeType":"YulIdentifier","src":"26862:6:88"},"nativeSrc":"26862:30:88","nodeType":"YulFunctionCall","src":"26862:30:88"},"nativeSrc":"26862:30:88","nodeType":"YulExpressionStatement","src":"26862:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26912:9:88","nodeType":"YulIdentifier","src":"26912:9:88"},{"kind":"number","nativeSrc":"26923:2:88","nodeType":"YulLiteral","src":"26923:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26908:3:88","nodeType":"YulIdentifier","src":"26908:3:88"},"nativeSrc":"26908:18:88","nodeType":"YulFunctionCall","src":"26908:18:88"},{"hexValue":"45546f6b656e3a2073796d626f6c2063616e6e6f7420626520656d707479","kind":"string","nativeSrc":"26928:32:88","nodeType":"YulLiteral","src":"26928:32:88","type":"","value":"EToken: symbol cannot be empty"}],"functionName":{"name":"mstore","nativeSrc":"26901:6:88","nodeType":"YulIdentifier","src":"26901:6:88"},"nativeSrc":"26901:60:88","nodeType":"YulFunctionCall","src":"26901:60:88"},"nativeSrc":"26901:60:88","nodeType":"YulExpressionStatement","src":"26901:60:88"},{"nativeSrc":"26970:26:88","nodeType":"YulAssignment","src":"26970:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26982:9:88","nodeType":"YulIdentifier","src":"26982:9:88"},{"kind":"number","nativeSrc":"26993:2:88","nodeType":"YulLiteral","src":"26993:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26978:3:88","nodeType":"YulIdentifier","src":"26978:3:88"},"nativeSrc":"26978:18:88","nodeType":"YulFunctionCall","src":"26978:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26970:4:88","nodeType":"YulIdentifier","src":"26970:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_73e0940cdd0dffdba87d1c2e460c0dadb528289849600fb24e2f2253f9b58f4d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26648:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26799:9:88","nodeType":"YulTypedName","src":"26799:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26813:4:88","nodeType":"YulTypedName","src":"26813:4:88","type":""}],"src":"26648:354:88"},{"body":{"nativeSrc":"27063:65:88","nodeType":"YulBlock","src":"27063:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27080:1:88","nodeType":"YulLiteral","src":"27080:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"27083:3:88","nodeType":"YulIdentifier","src":"27083:3:88"}],"functionName":{"name":"mstore","nativeSrc":"27073:6:88","nodeType":"YulIdentifier","src":"27073:6:88"},"nativeSrc":"27073:14:88","nodeType":"YulFunctionCall","src":"27073:14:88"},"nativeSrc":"27073:14:88","nodeType":"YulExpressionStatement","src":"27073:14:88"},{"nativeSrc":"27096:26:88","nodeType":"YulAssignment","src":"27096:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"27114:1:88","nodeType":"YulLiteral","src":"27114:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"27117:4:88","nodeType":"YulLiteral","src":"27117:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27104:9:88","nodeType":"YulIdentifier","src":"27104:9:88"},"nativeSrc":"27104:18:88","nodeType":"YulFunctionCall","src":"27104:18:88"},"variableNames":[{"name":"data","nativeSrc":"27096:4:88","nodeType":"YulIdentifier","src":"27096:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"27007:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"27046:3:88","nodeType":"YulTypedName","src":"27046:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"27054:4:88","nodeType":"YulTypedName","src":"27054:4:88","type":""}],"src":"27007:121:88"},{"body":{"nativeSrc":"27214:437:88","nodeType":"YulBlock","src":"27214:437:88","statements":[{"body":{"nativeSrc":"27247:398:88","nodeType":"YulBlock","src":"27247:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27268:1:88","nodeType":"YulLiteral","src":"27268:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"27271:5:88","nodeType":"YulIdentifier","src":"27271:5:88"}],"functionName":{"name":"mstore","nativeSrc":"27261:6:88","nodeType":"YulIdentifier","src":"27261:6:88"},"nativeSrc":"27261:16:88","nodeType":"YulFunctionCall","src":"27261:16:88"},"nativeSrc":"27261:16:88","nodeType":"YulExpressionStatement","src":"27261:16:88"},{"nativeSrc":"27290:30:88","nodeType":"YulVariableDeclaration","src":"27290:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"27312:1:88","nodeType":"YulLiteral","src":"27312:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"27315:4:88","nodeType":"YulLiteral","src":"27315:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27302:9:88","nodeType":"YulIdentifier","src":"27302:9:88"},"nativeSrc":"27302:18:88","nodeType":"YulFunctionCall","src":"27302:18:88"},"variables":[{"name":"data","nativeSrc":"27294:4:88","nodeType":"YulTypedName","src":"27294:4:88","type":""}]},{"nativeSrc":"27333:57:88","nodeType":"YulVariableDeclaration","src":"27333:57:88","value":{"arguments":[{"name":"data","nativeSrc":"27356:4:88","nodeType":"YulIdentifier","src":"27356:4:88"},{"arguments":[{"kind":"number","nativeSrc":"27366:1:88","nodeType":"YulLiteral","src":"27366:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"27373:10:88","nodeType":"YulIdentifier","src":"27373:10:88"},{"kind":"number","nativeSrc":"27385:2:88","nodeType":"YulLiteral","src":"27385:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"27369:3:88","nodeType":"YulIdentifier","src":"27369:3:88"},"nativeSrc":"27369:19:88","nodeType":"YulFunctionCall","src":"27369:19:88"}],"functionName":{"name":"shr","nativeSrc":"27362:3:88","nodeType":"YulIdentifier","src":"27362:3:88"},"nativeSrc":"27362:27:88","nodeType":"YulFunctionCall","src":"27362:27:88"}],"functionName":{"name":"add","nativeSrc":"27352:3:88","nodeType":"YulIdentifier","src":"27352:3:88"},"nativeSrc":"27352:38:88","nodeType":"YulFunctionCall","src":"27352:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"27337:11:88","nodeType":"YulTypedName","src":"27337:11:88","type":""}]},{"body":{"nativeSrc":"27427:23:88","nodeType":"YulBlock","src":"27427:23:88","statements":[{"nativeSrc":"27429:19:88","nodeType":"YulAssignment","src":"27429:19:88","value":{"name":"data","nativeSrc":"27444:4:88","nodeType":"YulIdentifier","src":"27444:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"27429:11:88","nodeType":"YulIdentifier","src":"27429:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"27409:10:88","nodeType":"YulIdentifier","src":"27409:10:88"},{"kind":"number","nativeSrc":"27421:4:88","nodeType":"YulLiteral","src":"27421:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"27406:2:88","nodeType":"YulIdentifier","src":"27406:2:88"},"nativeSrc":"27406:20:88","nodeType":"YulFunctionCall","src":"27406:20:88"},"nativeSrc":"27403:47:88","nodeType":"YulIf","src":"27403:47:88"},{"nativeSrc":"27463:41:88","nodeType":"YulVariableDeclaration","src":"27463:41:88","value":{"arguments":[{"name":"data","nativeSrc":"27477:4:88","nodeType":"YulIdentifier","src":"27477:4:88"},{"arguments":[{"kind":"number","nativeSrc":"27487:1:88","nodeType":"YulLiteral","src":"27487:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"27494:3:88","nodeType":"YulIdentifier","src":"27494:3:88"},{"kind":"number","nativeSrc":"27499:2:88","nodeType":"YulLiteral","src":"27499:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"27490:3:88","nodeType":"YulIdentifier","src":"27490:3:88"},"nativeSrc":"27490:12:88","nodeType":"YulFunctionCall","src":"27490:12:88"}],"functionName":{"name":"shr","nativeSrc":"27483:3:88","nodeType":"YulIdentifier","src":"27483:3:88"},"nativeSrc":"27483:20:88","nodeType":"YulFunctionCall","src":"27483:20:88"}],"functionName":{"name":"add","nativeSrc":"27473:3:88","nodeType":"YulIdentifier","src":"27473:3:88"},"nativeSrc":"27473:31:88","nodeType":"YulFunctionCall","src":"27473:31:88"},"variables":[{"name":"_1","nativeSrc":"27467:2:88","nodeType":"YulTypedName","src":"27467:2:88","type":""}]},{"nativeSrc":"27517:24:88","nodeType":"YulVariableDeclaration","src":"27517:24:88","value":{"name":"deleteStart","nativeSrc":"27530:11:88","nodeType":"YulIdentifier","src":"27530:11:88"},"variables":[{"name":"start","nativeSrc":"27521:5:88","nodeType":"YulTypedName","src":"27521:5:88","type":""}]},{"body":{"nativeSrc":"27615:20:88","nodeType":"YulBlock","src":"27615:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"27624:5:88","nodeType":"YulIdentifier","src":"27624:5:88"},{"kind":"number","nativeSrc":"27631:1:88","nodeType":"YulLiteral","src":"27631:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"27617:6:88","nodeType":"YulIdentifier","src":"27617:6:88"},"nativeSrc":"27617:16:88","nodeType":"YulFunctionCall","src":"27617:16:88"},"nativeSrc":"27617:16:88","nodeType":"YulExpressionStatement","src":"27617:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"27565:5:88","nodeType":"YulIdentifier","src":"27565:5:88"},{"name":"_1","nativeSrc":"27572:2:88","nodeType":"YulIdentifier","src":"27572:2:88"}],"functionName":{"name":"lt","nativeSrc":"27562:2:88","nodeType":"YulIdentifier","src":"27562:2:88"},"nativeSrc":"27562:13:88","nodeType":"YulFunctionCall","src":"27562:13:88"},"nativeSrc":"27554:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"27576:26:88","nodeType":"YulBlock","src":"27576:26:88","statements":[{"nativeSrc":"27578:22:88","nodeType":"YulAssignment","src":"27578:22:88","value":{"arguments":[{"name":"start","nativeSrc":"27591:5:88","nodeType":"YulIdentifier","src":"27591:5:88"},{"kind":"number","nativeSrc":"27598:1:88","nodeType":"YulLiteral","src":"27598:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"27587:3:88","nodeType":"YulIdentifier","src":"27587:3:88"},"nativeSrc":"27587:13:88","nodeType":"YulFunctionCall","src":"27587:13:88"},"variableNames":[{"name":"start","nativeSrc":"27578:5:88","nodeType":"YulIdentifier","src":"27578:5:88"}]}]},"pre":{"nativeSrc":"27558:3:88","nodeType":"YulBlock","src":"27558:3:88","statements":[]},"src":"27554:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"27230:3:88","nodeType":"YulIdentifier","src":"27230:3:88"},{"kind":"number","nativeSrc":"27235:2:88","nodeType":"YulLiteral","src":"27235:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"27227:2:88","nodeType":"YulIdentifier","src":"27227:2:88"},"nativeSrc":"27227:11:88","nodeType":"YulFunctionCall","src":"27227:11:88"},"nativeSrc":"27224:421:88","nodeType":"YulIf","src":"27224:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"27133:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"27186:5:88","nodeType":"YulTypedName","src":"27186:5:88","type":""},{"name":"len","nativeSrc":"27193:3:88","nodeType":"YulTypedName","src":"27193:3:88","type":""},{"name":"startIndex","nativeSrc":"27198:10:88","nodeType":"YulTypedName","src":"27198:10:88","type":""}],"src":"27133:518:88"},{"body":{"nativeSrc":"27741:81:88","nodeType":"YulBlock","src":"27741:81:88","statements":[{"nativeSrc":"27751:65:88","nodeType":"YulAssignment","src":"27751:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"27766:4:88","nodeType":"YulIdentifier","src":"27766:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27784:1:88","nodeType":"YulLiteral","src":"27784:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"27787:3:88","nodeType":"YulIdentifier","src":"27787:3:88"}],"functionName":{"name":"shl","nativeSrc":"27780:3:88","nodeType":"YulIdentifier","src":"27780:3:88"},"nativeSrc":"27780:11:88","nodeType":"YulFunctionCall","src":"27780:11:88"},{"arguments":[{"kind":"number","nativeSrc":"27797:1:88","nodeType":"YulLiteral","src":"27797:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"27793:3:88","nodeType":"YulIdentifier","src":"27793:3:88"},"nativeSrc":"27793:6:88","nodeType":"YulFunctionCall","src":"27793:6:88"}],"functionName":{"name":"shr","nativeSrc":"27776:3:88","nodeType":"YulIdentifier","src":"27776:3:88"},"nativeSrc":"27776:24:88","nodeType":"YulFunctionCall","src":"27776:24:88"}],"functionName":{"name":"not","nativeSrc":"27772:3:88","nodeType":"YulIdentifier","src":"27772:3:88"},"nativeSrc":"27772:29:88","nodeType":"YulFunctionCall","src":"27772:29:88"}],"functionName":{"name":"and","nativeSrc":"27762:3:88","nodeType":"YulIdentifier","src":"27762:3:88"},"nativeSrc":"27762:40:88","nodeType":"YulFunctionCall","src":"27762:40:88"},{"arguments":[{"kind":"number","nativeSrc":"27808:1:88","nodeType":"YulLiteral","src":"27808:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"27811:3:88","nodeType":"YulIdentifier","src":"27811:3:88"}],"functionName":{"name":"shl","nativeSrc":"27804:3:88","nodeType":"YulIdentifier","src":"27804:3:88"},"nativeSrc":"27804:11:88","nodeType":"YulFunctionCall","src":"27804:11:88"}],"functionName":{"name":"or","nativeSrc":"27759:2:88","nodeType":"YulIdentifier","src":"27759:2:88"},"nativeSrc":"27759:57:88","nodeType":"YulFunctionCall","src":"27759:57:88"},"variableNames":[{"name":"used","nativeSrc":"27751:4:88","nodeType":"YulIdentifier","src":"27751:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"27656:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"27718:4:88","nodeType":"YulTypedName","src":"27718:4:88","type":""},{"name":"len","nativeSrc":"27724:3:88","nodeType":"YulTypedName","src":"27724:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"27732:4:88","nodeType":"YulTypedName","src":"27732:4:88","type":""}],"src":"27656:166:88"},{"body":{"nativeSrc":"27923:1203:88","nodeType":"YulBlock","src":"27923:1203:88","statements":[{"nativeSrc":"27933:24:88","nodeType":"YulVariableDeclaration","src":"27933:24:88","value":{"arguments":[{"name":"src","nativeSrc":"27953:3:88","nodeType":"YulIdentifier","src":"27953:3:88"}],"functionName":{"name":"mload","nativeSrc":"27947:5:88","nodeType":"YulIdentifier","src":"27947:5:88"},"nativeSrc":"27947:10:88","nodeType":"YulFunctionCall","src":"27947:10:88"},"variables":[{"name":"newLen","nativeSrc":"27937:6:88","nodeType":"YulTypedName","src":"27937:6:88","type":""}]},{"body":{"nativeSrc":"28000:22:88","nodeType":"YulBlock","src":"28000:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"28002:16:88","nodeType":"YulIdentifier","src":"28002:16:88"},"nativeSrc":"28002:18:88","nodeType":"YulFunctionCall","src":"28002:18:88"},"nativeSrc":"28002:18:88","nodeType":"YulExpressionStatement","src":"28002:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"27972:6:88","nodeType":"YulIdentifier","src":"27972:6:88"},{"kind":"number","nativeSrc":"27980:18:88","nodeType":"YulLiteral","src":"27980:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27969:2:88","nodeType":"YulIdentifier","src":"27969:2:88"},"nativeSrc":"27969:30:88","nodeType":"YulFunctionCall","src":"27969:30:88"},"nativeSrc":"27966:56:88","nodeType":"YulIf","src":"27966:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28075:4:88","nodeType":"YulIdentifier","src":"28075:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"28113:4:88","nodeType":"YulIdentifier","src":"28113:4:88"}],"functionName":{"name":"sload","nativeSrc":"28107:5:88","nodeType":"YulIdentifier","src":"28107:5:88"},"nativeSrc":"28107:11:88","nodeType":"YulFunctionCall","src":"28107:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"28081:25:88","nodeType":"YulIdentifier","src":"28081:25:88"},"nativeSrc":"28081:38:88","nodeType":"YulFunctionCall","src":"28081:38:88"},{"name":"newLen","nativeSrc":"28121:6:88","nodeType":"YulIdentifier","src":"28121:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"28031:43:88","nodeType":"YulIdentifier","src":"28031:43:88"},"nativeSrc":"28031:97:88","nodeType":"YulFunctionCall","src":"28031:97:88"},"nativeSrc":"28031:97:88","nodeType":"YulExpressionStatement","src":"28031:97:88"},{"nativeSrc":"28137:18:88","nodeType":"YulVariableDeclaration","src":"28137:18:88","value":{"kind":"number","nativeSrc":"28154:1:88","nodeType":"YulLiteral","src":"28154:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"28141:9:88","nodeType":"YulTypedName","src":"28141:9:88","type":""}]},{"nativeSrc":"28164:17:88","nodeType":"YulAssignment","src":"28164:17:88","value":{"kind":"number","nativeSrc":"28177:4:88","nodeType":"YulLiteral","src":"28177:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"28164:9:88","nodeType":"YulIdentifier","src":"28164:9:88"}]},{"cases":[{"body":{"nativeSrc":"28227:642:88","nodeType":"YulBlock","src":"28227:642:88","statements":[{"nativeSrc":"28241:35:88","nodeType":"YulVariableDeclaration","src":"28241:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"28260:6:88","nodeType":"YulIdentifier","src":"28260:6:88"},{"arguments":[{"kind":"number","nativeSrc":"28272:2:88","nodeType":"YulLiteral","src":"28272:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"28268:3:88","nodeType":"YulIdentifier","src":"28268:3:88"},"nativeSrc":"28268:7:88","nodeType":"YulFunctionCall","src":"28268:7:88"}],"functionName":{"name":"and","nativeSrc":"28256:3:88","nodeType":"YulIdentifier","src":"28256:3:88"},"nativeSrc":"28256:20:88","nodeType":"YulFunctionCall","src":"28256:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"28245:7:88","nodeType":"YulTypedName","src":"28245:7:88","type":""}]},{"nativeSrc":"28289:49:88","nodeType":"YulVariableDeclaration","src":"28289:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"28333:4:88","nodeType":"YulIdentifier","src":"28333:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"28303:29:88","nodeType":"YulIdentifier","src":"28303:29:88"},"nativeSrc":"28303:35:88","nodeType":"YulFunctionCall","src":"28303:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"28293:6:88","nodeType":"YulTypedName","src":"28293:6:88","type":""}]},{"nativeSrc":"28351:10:88","nodeType":"YulVariableDeclaration","src":"28351:10:88","value":{"kind":"number","nativeSrc":"28360:1:88","nodeType":"YulLiteral","src":"28360:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"28355:1:88","nodeType":"YulTypedName","src":"28355:1:88","type":""}]},{"body":{"nativeSrc":"28431:165:88","nodeType":"YulBlock","src":"28431:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28456:6:88","nodeType":"YulIdentifier","src":"28456:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28474:3:88","nodeType":"YulIdentifier","src":"28474:3:88"},{"name":"srcOffset","nativeSrc":"28479:9:88","nodeType":"YulIdentifier","src":"28479:9:88"}],"functionName":{"name":"add","nativeSrc":"28470:3:88","nodeType":"YulIdentifier","src":"28470:3:88"},"nativeSrc":"28470:19:88","nodeType":"YulFunctionCall","src":"28470:19:88"}],"functionName":{"name":"mload","nativeSrc":"28464:5:88","nodeType":"YulIdentifier","src":"28464:5:88"},"nativeSrc":"28464:26:88","nodeType":"YulFunctionCall","src":"28464:26:88"}],"functionName":{"name":"sstore","nativeSrc":"28449:6:88","nodeType":"YulIdentifier","src":"28449:6:88"},"nativeSrc":"28449:42:88","nodeType":"YulFunctionCall","src":"28449:42:88"},"nativeSrc":"28449:42:88","nodeType":"YulExpressionStatement","src":"28449:42:88"},{"nativeSrc":"28508:24:88","nodeType":"YulAssignment","src":"28508:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"28522:6:88","nodeType":"YulIdentifier","src":"28522:6:88"},{"kind":"number","nativeSrc":"28530:1:88","nodeType":"YulLiteral","src":"28530:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28518:3:88","nodeType":"YulIdentifier","src":"28518:3:88"},"nativeSrc":"28518:14:88","nodeType":"YulFunctionCall","src":"28518:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"28508:6:88","nodeType":"YulIdentifier","src":"28508:6:88"}]},{"nativeSrc":"28549:33:88","nodeType":"YulAssignment","src":"28549:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"28566:9:88","nodeType":"YulIdentifier","src":"28566:9:88"},{"kind":"number","nativeSrc":"28577:4:88","nodeType":"YulLiteral","src":"28577:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28562:3:88","nodeType":"YulIdentifier","src":"28562:3:88"},"nativeSrc":"28562:20:88","nodeType":"YulFunctionCall","src":"28562:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"28549:9:88","nodeType":"YulIdentifier","src":"28549:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"28385:1:88","nodeType":"YulIdentifier","src":"28385:1:88"},{"name":"loopEnd","nativeSrc":"28388:7:88","nodeType":"YulIdentifier","src":"28388:7:88"}],"functionName":{"name":"lt","nativeSrc":"28382:2:88","nodeType":"YulIdentifier","src":"28382:2:88"},"nativeSrc":"28382:14:88","nodeType":"YulFunctionCall","src":"28382:14:88"},"nativeSrc":"28374:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"28397:21:88","nodeType":"YulBlock","src":"28397:21:88","statements":[{"nativeSrc":"28399:17:88","nodeType":"YulAssignment","src":"28399:17:88","value":{"arguments":[{"name":"i","nativeSrc":"28408:1:88","nodeType":"YulIdentifier","src":"28408:1:88"},{"kind":"number","nativeSrc":"28411:4:88","nodeType":"YulLiteral","src":"28411:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28404:3:88","nodeType":"YulIdentifier","src":"28404:3:88"},"nativeSrc":"28404:12:88","nodeType":"YulFunctionCall","src":"28404:12:88"},"variableNames":[{"name":"i","nativeSrc":"28399:1:88","nodeType":"YulIdentifier","src":"28399:1:88"}]}]},"pre":{"nativeSrc":"28378:3:88","nodeType":"YulBlock","src":"28378:3:88","statements":[]},"src":"28374:222:88"},{"body":{"nativeSrc":"28644:166:88","nodeType":"YulBlock","src":"28644:166:88","statements":[{"nativeSrc":"28662:43:88","nodeType":"YulVariableDeclaration","src":"28662:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28689:3:88","nodeType":"YulIdentifier","src":"28689:3:88"},{"name":"srcOffset","nativeSrc":"28694:9:88","nodeType":"YulIdentifier","src":"28694:9:88"}],"functionName":{"name":"add","nativeSrc":"28685:3:88","nodeType":"YulIdentifier","src":"28685:3:88"},"nativeSrc":"28685:19:88","nodeType":"YulFunctionCall","src":"28685:19:88"}],"functionName":{"name":"mload","nativeSrc":"28679:5:88","nodeType":"YulIdentifier","src":"28679:5:88"},"nativeSrc":"28679:26:88","nodeType":"YulFunctionCall","src":"28679:26:88"},"variables":[{"name":"lastValue","nativeSrc":"28666:9:88","nodeType":"YulTypedName","src":"28666:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28729:6:88","nodeType":"YulIdentifier","src":"28729:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"28741:9:88","nodeType":"YulIdentifier","src":"28741:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28768:1:88","nodeType":"YulLiteral","src":"28768:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"28771:6:88","nodeType":"YulIdentifier","src":"28771:6:88"}],"functionName":{"name":"shl","nativeSrc":"28764:3:88","nodeType":"YulIdentifier","src":"28764:3:88"},"nativeSrc":"28764:14:88","nodeType":"YulFunctionCall","src":"28764:14:88"},{"kind":"number","nativeSrc":"28780:3:88","nodeType":"YulLiteral","src":"28780:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"28760:3:88","nodeType":"YulIdentifier","src":"28760:3:88"},"nativeSrc":"28760:24:88","nodeType":"YulFunctionCall","src":"28760:24:88"},{"arguments":[{"kind":"number","nativeSrc":"28790:1:88","nodeType":"YulLiteral","src":"28790:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"28786:3:88","nodeType":"YulIdentifier","src":"28786:3:88"},"nativeSrc":"28786:6:88","nodeType":"YulFunctionCall","src":"28786:6:88"}],"functionName":{"name":"shr","nativeSrc":"28756:3:88","nodeType":"YulIdentifier","src":"28756:3:88"},"nativeSrc":"28756:37:88","nodeType":"YulFunctionCall","src":"28756:37:88"}],"functionName":{"name":"not","nativeSrc":"28752:3:88","nodeType":"YulIdentifier","src":"28752:3:88"},"nativeSrc":"28752:42:88","nodeType":"YulFunctionCall","src":"28752:42:88"}],"functionName":{"name":"and","nativeSrc":"28737:3:88","nodeType":"YulIdentifier","src":"28737:3:88"},"nativeSrc":"28737:58:88","nodeType":"YulFunctionCall","src":"28737:58:88"}],"functionName":{"name":"sstore","nativeSrc":"28722:6:88","nodeType":"YulIdentifier","src":"28722:6:88"},"nativeSrc":"28722:74:88","nodeType":"YulFunctionCall","src":"28722:74:88"},"nativeSrc":"28722:74:88","nodeType":"YulExpressionStatement","src":"28722:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"28615:7:88","nodeType":"YulIdentifier","src":"28615:7:88"},{"name":"newLen","nativeSrc":"28624:6:88","nodeType":"YulIdentifier","src":"28624:6:88"}],"functionName":{"name":"lt","nativeSrc":"28612:2:88","nodeType":"YulIdentifier","src":"28612:2:88"},"nativeSrc":"28612:19:88","nodeType":"YulFunctionCall","src":"28612:19:88"},"nativeSrc":"28609:201:88","nodeType":"YulIf","src":"28609:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28830:4:88","nodeType":"YulIdentifier","src":"28830:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28844:1:88","nodeType":"YulLiteral","src":"28844:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"28847:6:88","nodeType":"YulIdentifier","src":"28847:6:88"}],"functionName":{"name":"shl","nativeSrc":"28840:3:88","nodeType":"YulIdentifier","src":"28840:3:88"},"nativeSrc":"28840:14:88","nodeType":"YulFunctionCall","src":"28840:14:88"},{"kind":"number","nativeSrc":"28856:1:88","nodeType":"YulLiteral","src":"28856:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28836:3:88","nodeType":"YulIdentifier","src":"28836:3:88"},"nativeSrc":"28836:22:88","nodeType":"YulFunctionCall","src":"28836:22:88"}],"functionName":{"name":"sstore","nativeSrc":"28823:6:88","nodeType":"YulIdentifier","src":"28823:6:88"},"nativeSrc":"28823:36:88","nodeType":"YulFunctionCall","src":"28823:36:88"},"nativeSrc":"28823:36:88","nodeType":"YulExpressionStatement","src":"28823:36:88"}]},"nativeSrc":"28220:649:88","nodeType":"YulCase","src":"28220:649:88","value":{"kind":"number","nativeSrc":"28225:1:88","nodeType":"YulLiteral","src":"28225:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"28886:234:88","nodeType":"YulBlock","src":"28886:234:88","statements":[{"nativeSrc":"28900:14:88","nodeType":"YulVariableDeclaration","src":"28900:14:88","value":{"kind":"number","nativeSrc":"28913:1:88","nodeType":"YulLiteral","src":"28913:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"28904:5:88","nodeType":"YulTypedName","src":"28904:5:88","type":""}]},{"body":{"nativeSrc":"28949:67:88","nodeType":"YulBlock","src":"28949:67:88","statements":[{"nativeSrc":"28967:35:88","nodeType":"YulAssignment","src":"28967:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28986:3:88","nodeType":"YulIdentifier","src":"28986:3:88"},{"name":"srcOffset","nativeSrc":"28991:9:88","nodeType":"YulIdentifier","src":"28991:9:88"}],"functionName":{"name":"add","nativeSrc":"28982:3:88","nodeType":"YulIdentifier","src":"28982:3:88"},"nativeSrc":"28982:19:88","nodeType":"YulFunctionCall","src":"28982:19:88"}],"functionName":{"name":"mload","nativeSrc":"28976:5:88","nodeType":"YulIdentifier","src":"28976:5:88"},"nativeSrc":"28976:26:88","nodeType":"YulFunctionCall","src":"28976:26:88"},"variableNames":[{"name":"value","nativeSrc":"28967:5:88","nodeType":"YulIdentifier","src":"28967:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"28930:6:88","nodeType":"YulIdentifier","src":"28930:6:88"},"nativeSrc":"28927:89:88","nodeType":"YulIf","src":"28927:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29036:4:88","nodeType":"YulIdentifier","src":"29036:4:88"},{"arguments":[{"name":"value","nativeSrc":"29095:5:88","nodeType":"YulIdentifier","src":"29095:5:88"},{"name":"newLen","nativeSrc":"29102:6:88","nodeType":"YulIdentifier","src":"29102:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"29042:52:88","nodeType":"YulIdentifier","src":"29042:52:88"},"nativeSrc":"29042:67:88","nodeType":"YulFunctionCall","src":"29042:67:88"}],"functionName":{"name":"sstore","nativeSrc":"29029:6:88","nodeType":"YulIdentifier","src":"29029:6:88"},"nativeSrc":"29029:81:88","nodeType":"YulFunctionCall","src":"29029:81:88"},"nativeSrc":"29029:81:88","nodeType":"YulExpressionStatement","src":"29029:81:88"}]},"nativeSrc":"28878:242:88","nodeType":"YulCase","src":"28878:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"28200:6:88","nodeType":"YulIdentifier","src":"28200:6:88"},{"kind":"number","nativeSrc":"28208:2:88","nodeType":"YulLiteral","src":"28208:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"28197:2:88","nodeType":"YulIdentifier","src":"28197:2:88"},"nativeSrc":"28197:14:88","nodeType":"YulFunctionCall","src":"28197:14:88"},"nativeSrc":"28190:930:88","nodeType":"YulSwitch","src":"28190:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"27827:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"27908:4:88","nodeType":"YulTypedName","src":"27908:4:88","type":""},{"name":"src","nativeSrc":"27914:3:88","nodeType":"YulTypedName","src":"27914:3:88","type":""}],"src":"27827:1299:88"},{"body":{"nativeSrc":"29179:122:88","nodeType":"YulBlock","src":"29179:122:88","statements":[{"nativeSrc":"29189:51:88","nodeType":"YulAssignment","src":"29189:51:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29205:1:88","nodeType":"YulIdentifier","src":"29205:1:88"},{"kind":"number","nativeSrc":"29208:10:88","nodeType":"YulLiteral","src":"29208:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"29201:3:88","nodeType":"YulIdentifier","src":"29201:3:88"},"nativeSrc":"29201:18:88","nodeType":"YulFunctionCall","src":"29201:18:88"},{"arguments":[{"name":"y","nativeSrc":"29225:1:88","nodeType":"YulIdentifier","src":"29225:1:88"},{"kind":"number","nativeSrc":"29228:10:88","nodeType":"YulLiteral","src":"29228:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"29221:3:88","nodeType":"YulIdentifier","src":"29221:3:88"},"nativeSrc":"29221:18:88","nodeType":"YulFunctionCall","src":"29221:18:88"}],"functionName":{"name":"sub","nativeSrc":"29197:3:88","nodeType":"YulIdentifier","src":"29197:3:88"},"nativeSrc":"29197:43:88","nodeType":"YulFunctionCall","src":"29197:43:88"},"variableNames":[{"name":"diff","nativeSrc":"29189:4:88","nodeType":"YulIdentifier","src":"29189:4:88"}]},{"body":{"nativeSrc":"29273:22:88","nodeType":"YulBlock","src":"29273:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29275:16:88","nodeType":"YulIdentifier","src":"29275:16:88"},"nativeSrc":"29275:18:88","nodeType":"YulFunctionCall","src":"29275:18:88"},"nativeSrc":"29275:18:88","nodeType":"YulExpressionStatement","src":"29275:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"29255:4:88","nodeType":"YulIdentifier","src":"29255:4:88"},{"kind":"number","nativeSrc":"29261:10:88","nodeType":"YulLiteral","src":"29261:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"gt","nativeSrc":"29252:2:88","nodeType":"YulIdentifier","src":"29252:2:88"},"nativeSrc":"29252:20:88","nodeType":"YulFunctionCall","src":"29252:20:88"},"nativeSrc":"29249:46:88","nodeType":"YulIf","src":"29249:46:88"}]},"name":"checked_sub_t_uint32","nativeSrc":"29131:170:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29161:1:88","nodeType":"YulTypedName","src":"29161:1:88","type":""},{"name":"y","nativeSrc":"29164:1:88","nodeType":"YulTypedName","src":"29164:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"29170:4:88","nodeType":"YulTypedName","src":"29170:4:88","type":""}],"src":"29131:170:88"},{"body":{"nativeSrc":"29358:116:88","nodeType":"YulBlock","src":"29358:116:88","statements":[{"nativeSrc":"29368:20:88","nodeType":"YulAssignment","src":"29368:20:88","value":{"arguments":[{"name":"x","nativeSrc":"29383:1:88","nodeType":"YulIdentifier","src":"29383:1:88"},{"name":"y","nativeSrc":"29386:1:88","nodeType":"YulIdentifier","src":"29386:1:88"}],"functionName":{"name":"mul","nativeSrc":"29379:3:88","nodeType":"YulIdentifier","src":"29379:3:88"},"nativeSrc":"29379:9:88","nodeType":"YulFunctionCall","src":"29379:9:88"},"variableNames":[{"name":"product","nativeSrc":"29368:7:88","nodeType":"YulIdentifier","src":"29368:7:88"}]},{"body":{"nativeSrc":"29446:22:88","nodeType":"YulBlock","src":"29446:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29448:16:88","nodeType":"YulIdentifier","src":"29448:16:88"},"nativeSrc":"29448:18:88","nodeType":"YulFunctionCall","src":"29448:18:88"},"nativeSrc":"29448:18:88","nodeType":"YulExpressionStatement","src":"29448:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29417:1:88","nodeType":"YulIdentifier","src":"29417:1:88"}],"functionName":{"name":"iszero","nativeSrc":"29410:6:88","nodeType":"YulIdentifier","src":"29410:6:88"},"nativeSrc":"29410:9:88","nodeType":"YulFunctionCall","src":"29410:9:88"},{"arguments":[{"name":"y","nativeSrc":"29424:1:88","nodeType":"YulIdentifier","src":"29424:1:88"},{"arguments":[{"name":"product","nativeSrc":"29431:7:88","nodeType":"YulIdentifier","src":"29431:7:88"},{"name":"x","nativeSrc":"29440:1:88","nodeType":"YulIdentifier","src":"29440:1:88"}],"functionName":{"name":"div","nativeSrc":"29427:3:88","nodeType":"YulIdentifier","src":"29427:3:88"},"nativeSrc":"29427:15:88","nodeType":"YulFunctionCall","src":"29427:15:88"}],"functionName":{"name":"eq","nativeSrc":"29421:2:88","nodeType":"YulIdentifier","src":"29421:2:88"},"nativeSrc":"29421:22:88","nodeType":"YulFunctionCall","src":"29421:22:88"}],"functionName":{"name":"or","nativeSrc":"29407:2:88","nodeType":"YulIdentifier","src":"29407:2:88"},"nativeSrc":"29407:37:88","nodeType":"YulFunctionCall","src":"29407:37:88"}],"functionName":{"name":"iszero","nativeSrc":"29400:6:88","nodeType":"YulIdentifier","src":"29400:6:88"},"nativeSrc":"29400:45:88","nodeType":"YulFunctionCall","src":"29400:45:88"},"nativeSrc":"29397:71:88","nodeType":"YulIf","src":"29397:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"29306:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29337:1:88","nodeType":"YulTypedName","src":"29337:1:88","type":""},{"name":"y","nativeSrc":"29340:1:88","nodeType":"YulTypedName","src":"29340:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"29346:7:88","nodeType":"YulTypedName","src":"29346:7:88","type":""}],"src":"29306:168:88"},{"body":{"nativeSrc":"29525:171:88","nodeType":"YulBlock","src":"29525:171:88","statements":[{"body":{"nativeSrc":"29556:111:88","nodeType":"YulBlock","src":"29556:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29577:1:88","nodeType":"YulLiteral","src":"29577:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"29584:3:88","nodeType":"YulLiteral","src":"29584:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"29589:10:88","nodeType":"YulLiteral","src":"29589:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"29580:3:88","nodeType":"YulIdentifier","src":"29580:3:88"},"nativeSrc":"29580:20:88","nodeType":"YulFunctionCall","src":"29580:20:88"}],"functionName":{"name":"mstore","nativeSrc":"29570:6:88","nodeType":"YulIdentifier","src":"29570:6:88"},"nativeSrc":"29570:31:88","nodeType":"YulFunctionCall","src":"29570:31:88"},"nativeSrc":"29570:31:88","nodeType":"YulExpressionStatement","src":"29570:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29621:1:88","nodeType":"YulLiteral","src":"29621:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"29624:4:88","nodeType":"YulLiteral","src":"29624:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"29614:6:88","nodeType":"YulIdentifier","src":"29614:6:88"},"nativeSrc":"29614:15:88","nodeType":"YulFunctionCall","src":"29614:15:88"},"nativeSrc":"29614:15:88","nodeType":"YulExpressionStatement","src":"29614:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29649:1:88","nodeType":"YulLiteral","src":"29649:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"29652:4:88","nodeType":"YulLiteral","src":"29652:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"29642:6:88","nodeType":"YulIdentifier","src":"29642:6:88"},"nativeSrc":"29642:15:88","nodeType":"YulFunctionCall","src":"29642:15:88"},"nativeSrc":"29642:15:88","nodeType":"YulExpressionStatement","src":"29642:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"29545:1:88","nodeType":"YulIdentifier","src":"29545:1:88"}],"functionName":{"name":"iszero","nativeSrc":"29538:6:88","nodeType":"YulIdentifier","src":"29538:6:88"},"nativeSrc":"29538:9:88","nodeType":"YulFunctionCall","src":"29538:9:88"},"nativeSrc":"29535:132:88","nodeType":"YulIf","src":"29535:132:88"},{"nativeSrc":"29676:14:88","nodeType":"YulAssignment","src":"29676:14:88","value":{"arguments":[{"name":"x","nativeSrc":"29685:1:88","nodeType":"YulIdentifier","src":"29685:1:88"},{"name":"y","nativeSrc":"29688:1:88","nodeType":"YulIdentifier","src":"29688:1:88"}],"functionName":{"name":"div","nativeSrc":"29681:3:88","nodeType":"YulIdentifier","src":"29681:3:88"},"nativeSrc":"29681:9:88","nodeType":"YulFunctionCall","src":"29681:9:88"},"variableNames":[{"name":"r","nativeSrc":"29676:1:88","nodeType":"YulIdentifier","src":"29676:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"29479:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29510:1:88","nodeType":"YulTypedName","src":"29510:1:88","type":""},{"name":"y","nativeSrc":"29513:1:88","nodeType":"YulTypedName","src":"29513:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"29519:1:88","nodeType":"YulTypedName","src":"29519:1:88","type":""}],"src":"29479:217:88"},{"body":{"nativeSrc":"29875:229:88","nodeType":"YulBlock","src":"29875:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29892:9:88","nodeType":"YulIdentifier","src":"29892:9:88"},{"kind":"number","nativeSrc":"29903:2:88","nodeType":"YulLiteral","src":"29903:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29885:6:88","nodeType":"YulIdentifier","src":"29885:6:88"},"nativeSrc":"29885:21:88","nodeType":"YulFunctionCall","src":"29885:21:88"},"nativeSrc":"29885:21:88","nodeType":"YulExpressionStatement","src":"29885:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29926:9:88","nodeType":"YulIdentifier","src":"29926:9:88"},{"kind":"number","nativeSrc":"29937:2:88","nodeType":"YulLiteral","src":"29937:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29922:3:88","nodeType":"YulIdentifier","src":"29922:3:88"},"nativeSrc":"29922:18:88","nodeType":"YulFunctionCall","src":"29922:18:88"},{"kind":"number","nativeSrc":"29942:2:88","nodeType":"YulLiteral","src":"29942:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"29915:6:88","nodeType":"YulIdentifier","src":"29915:6:88"},"nativeSrc":"29915:30:88","nodeType":"YulFunctionCall","src":"29915:30:88"},"nativeSrc":"29915:30:88","nodeType":"YulExpressionStatement","src":"29915:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29965:9:88","nodeType":"YulIdentifier","src":"29965:9:88"},{"kind":"number","nativeSrc":"29976:2:88","nodeType":"YulLiteral","src":"29976:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29961:3:88","nodeType":"YulIdentifier","src":"29961:3:88"},"nativeSrc":"29961:18:88","nodeType":"YulFunctionCall","src":"29961:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"29981:34:88","nodeType":"YulLiteral","src":"29981:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"29954:6:88","nodeType":"YulIdentifier","src":"29954:6:88"},"nativeSrc":"29954:62:88","nodeType":"YulFunctionCall","src":"29954:62:88"},"nativeSrc":"29954:62:88","nodeType":"YulExpressionStatement","src":"29954:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30036:9:88","nodeType":"YulIdentifier","src":"30036:9:88"},{"kind":"number","nativeSrc":"30047:2:88","nodeType":"YulLiteral","src":"30047:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30032:3:88","nodeType":"YulIdentifier","src":"30032:3:88"},"nativeSrc":"30032:18:88","nodeType":"YulFunctionCall","src":"30032:18:88"},{"hexValue":"32382062697473","kind":"string","nativeSrc":"30052:9:88","nodeType":"YulLiteral","src":"30052:9:88","type":"","value":"28 bits"}],"functionName":{"name":"mstore","nativeSrc":"30025:6:88","nodeType":"YulIdentifier","src":"30025:6:88"},"nativeSrc":"30025:37:88","nodeType":"YulFunctionCall","src":"30025:37:88"},"nativeSrc":"30025:37:88","nodeType":"YulExpressionStatement","src":"30025:37:88"},{"nativeSrc":"30071:27:88","nodeType":"YulAssignment","src":"30071:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30083:9:88","nodeType":"YulIdentifier","src":"30083:9:88"},{"kind":"number","nativeSrc":"30094:3:88","nodeType":"YulLiteral","src":"30094:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30079:3:88","nodeType":"YulIdentifier","src":"30079:3:88"},"nativeSrc":"30079:19:88","nodeType":"YulFunctionCall","src":"30079:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30071:4:88","nodeType":"YulIdentifier","src":"30071:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29701:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29852:9:88","nodeType":"YulTypedName","src":"29852:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29866:4:88","nodeType":"YulTypedName","src":"29866:4:88","type":""}],"src":"29701:403:88"},{"body":{"nativeSrc":"30283:228:88","nodeType":"YulBlock","src":"30283:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30300:9:88","nodeType":"YulIdentifier","src":"30300:9:88"},{"kind":"number","nativeSrc":"30311:2:88","nodeType":"YulLiteral","src":"30311:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30293:6:88","nodeType":"YulIdentifier","src":"30293:6:88"},"nativeSrc":"30293:21:88","nodeType":"YulFunctionCall","src":"30293:21:88"},"nativeSrc":"30293:21:88","nodeType":"YulExpressionStatement","src":"30293:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30334:9:88","nodeType":"YulIdentifier","src":"30334:9:88"},{"kind":"number","nativeSrc":"30345:2:88","nodeType":"YulLiteral","src":"30345:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30330:3:88","nodeType":"YulIdentifier","src":"30330:3:88"},"nativeSrc":"30330:18:88","nodeType":"YulFunctionCall","src":"30330:18:88"},{"kind":"number","nativeSrc":"30350:2:88","nodeType":"YulLiteral","src":"30350:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"30323:6:88","nodeType":"YulIdentifier","src":"30323:6:88"},"nativeSrc":"30323:30:88","nodeType":"YulFunctionCall","src":"30323:30:88"},"nativeSrc":"30323:30:88","nodeType":"YulExpressionStatement","src":"30323:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30373:9:88","nodeType":"YulIdentifier","src":"30373:9:88"},{"kind":"number","nativeSrc":"30384:2:88","nodeType":"YulLiteral","src":"30384:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30369:3:88","nodeType":"YulIdentifier","src":"30369:3:88"},"nativeSrc":"30369:18:88","nodeType":"YulFunctionCall","src":"30369:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036","kind":"string","nativeSrc":"30389:34:88","nodeType":"YulLiteral","src":"30389:34:88","type":"","value":"SafeCast: value doesn't fit in 6"}],"functionName":{"name":"mstore","nativeSrc":"30362:6:88","nodeType":"YulIdentifier","src":"30362:6:88"},"nativeSrc":"30362:62:88","nodeType":"YulFunctionCall","src":"30362:62:88"},"nativeSrc":"30362:62:88","nodeType":"YulExpressionStatement","src":"30362:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30444:9:88","nodeType":"YulIdentifier","src":"30444:9:88"},{"kind":"number","nativeSrc":"30455:2:88","nodeType":"YulLiteral","src":"30455:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30440:3:88","nodeType":"YulIdentifier","src":"30440:3:88"},"nativeSrc":"30440:18:88","nodeType":"YulFunctionCall","src":"30440:18:88"},{"hexValue":"342062697473","kind":"string","nativeSrc":"30460:8:88","nodeType":"YulLiteral","src":"30460:8:88","type":"","value":"4 bits"}],"functionName":{"name":"mstore","nativeSrc":"30433:6:88","nodeType":"YulIdentifier","src":"30433:6:88"},"nativeSrc":"30433:36:88","nodeType":"YulFunctionCall","src":"30433:36:88"},"nativeSrc":"30433:36:88","nodeType":"YulExpressionStatement","src":"30433:36:88"},{"nativeSrc":"30478:27:88","nodeType":"YulAssignment","src":"30478:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30490:9:88","nodeType":"YulIdentifier","src":"30490:9:88"},{"kind":"number","nativeSrc":"30501:3:88","nodeType":"YulLiteral","src":"30501:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30486:3:88","nodeType":"YulIdentifier","src":"30486:3:88"},"nativeSrc":"30486:19:88","nodeType":"YulFunctionCall","src":"30486:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30478:4:88","nodeType":"YulIdentifier","src":"30478:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30109:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30260:9:88","nodeType":"YulTypedName","src":"30260:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30274:4:88","nodeType":"YulTypedName","src":"30274:4:88","type":""}],"src":"30109:402:88"},{"body":{"nativeSrc":"30565:182:88","nodeType":"YulBlock","src":"30565:182:88","statements":[{"nativeSrc":"30575:91:88","nodeType":"YulAssignment","src":"30575:91:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"30591:1:88","nodeType":"YulIdentifier","src":"30591:1:88"},{"kind":"number","nativeSrc":"30594:30:88","nodeType":"YulLiteral","src":"30594:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"30587:3:88","nodeType":"YulIdentifier","src":"30587:3:88"},"nativeSrc":"30587:38:88","nodeType":"YulFunctionCall","src":"30587:38:88"},{"arguments":[{"name":"y","nativeSrc":"30631:1:88","nodeType":"YulIdentifier","src":"30631:1:88"},{"kind":"number","nativeSrc":"30634:30:88","nodeType":"YulLiteral","src":"30634:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"30627:3:88","nodeType":"YulIdentifier","src":"30627:3:88"},"nativeSrc":"30627:38:88","nodeType":"YulFunctionCall","src":"30627:38:88"}],"functionName":{"name":"sub","nativeSrc":"30583:3:88","nodeType":"YulIdentifier","src":"30583:3:88"},"nativeSrc":"30583:83:88","nodeType":"YulFunctionCall","src":"30583:83:88"},"variableNames":[{"name":"diff","nativeSrc":"30575:4:88","nodeType":"YulIdentifier","src":"30575:4:88"}]},{"body":{"nativeSrc":"30719:22:88","nodeType":"YulBlock","src":"30719:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"30721:16:88","nodeType":"YulIdentifier","src":"30721:16:88"},"nativeSrc":"30721:18:88","nodeType":"YulFunctionCall","src":"30721:18:88"},"nativeSrc":"30721:18:88","nodeType":"YulExpressionStatement","src":"30721:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"30681:4:88","nodeType":"YulIdentifier","src":"30681:4:88"},{"kind":"number","nativeSrc":"30687:30:88","nodeType":"YulLiteral","src":"30687:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30678:2:88","nodeType":"YulIdentifier","src":"30678:2:88"},"nativeSrc":"30678:40:88","nodeType":"YulFunctionCall","src":"30678:40:88"},"nativeSrc":"30675:66:88","nodeType":"YulIf","src":"30675:66:88"}]},"name":"checked_sub_t_uint112","nativeSrc":"30516:231:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"30547:1:88","nodeType":"YulTypedName","src":"30547:1:88","type":""},{"name":"y","nativeSrc":"30550:1:88","nodeType":"YulTypedName","src":"30550:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"30556:4:88","nodeType":"YulTypedName","src":"30556:4:88","type":""}],"src":"30516:231:88"},{"body":{"nativeSrc":"30909:214:88","nodeType":"YulBlock","src":"30909:214:88","statements":[{"nativeSrc":"30919:26:88","nodeType":"YulAssignment","src":"30919:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30931:9:88","nodeType":"YulIdentifier","src":"30931:9:88"},{"kind":"number","nativeSrc":"30942:2:88","nodeType":"YulLiteral","src":"30942:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30927:3:88","nodeType":"YulIdentifier","src":"30927:3:88"},"nativeSrc":"30927:18:88","nodeType":"YulFunctionCall","src":"30927:18:88"},"variableNames":[{"name":"tail","nativeSrc":"30919:4:88","nodeType":"YulIdentifier","src":"30919:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30961:9:88","nodeType":"YulIdentifier","src":"30961:9:88"},{"arguments":[{"name":"value0","nativeSrc":"30976:6:88","nodeType":"YulIdentifier","src":"30976:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30992:3:88","nodeType":"YulLiteral","src":"30992:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"30997:1:88","nodeType":"YulLiteral","src":"30997:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30988:3:88","nodeType":"YulIdentifier","src":"30988:3:88"},"nativeSrc":"30988:11:88","nodeType":"YulFunctionCall","src":"30988:11:88"},{"kind":"number","nativeSrc":"31001:1:88","nodeType":"YulLiteral","src":"31001:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30984:3:88","nodeType":"YulIdentifier","src":"30984:3:88"},"nativeSrc":"30984:19:88","nodeType":"YulFunctionCall","src":"30984:19:88"}],"functionName":{"name":"and","nativeSrc":"30972:3:88","nodeType":"YulIdentifier","src":"30972:3:88"},"nativeSrc":"30972:32:88","nodeType":"YulFunctionCall","src":"30972:32:88"}],"functionName":{"name":"mstore","nativeSrc":"30954:6:88","nodeType":"YulIdentifier","src":"30954:6:88"},"nativeSrc":"30954:51:88","nodeType":"YulFunctionCall","src":"30954:51:88"},"nativeSrc":"30954:51:88","nodeType":"YulExpressionStatement","src":"30954:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31025:9:88","nodeType":"YulIdentifier","src":"31025:9:88"},{"kind":"number","nativeSrc":"31036:2:88","nodeType":"YulLiteral","src":"31036:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31021:3:88","nodeType":"YulIdentifier","src":"31021:3:88"},"nativeSrc":"31021:18:88","nodeType":"YulFunctionCall","src":"31021:18:88"},{"arguments":[{"name":"value1","nativeSrc":"31045:6:88","nodeType":"YulIdentifier","src":"31045:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31061:3:88","nodeType":"YulLiteral","src":"31061:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"31066:1:88","nodeType":"YulLiteral","src":"31066:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"31057:3:88","nodeType":"YulIdentifier","src":"31057:3:88"},"nativeSrc":"31057:11:88","nodeType":"YulFunctionCall","src":"31057:11:88"},{"kind":"number","nativeSrc":"31070:1:88","nodeType":"YulLiteral","src":"31070:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"31053:3:88","nodeType":"YulIdentifier","src":"31053:3:88"},"nativeSrc":"31053:19:88","nodeType":"YulFunctionCall","src":"31053:19:88"}],"functionName":{"name":"and","nativeSrc":"31041:3:88","nodeType":"YulIdentifier","src":"31041:3:88"},"nativeSrc":"31041:32:88","nodeType":"YulFunctionCall","src":"31041:32:88"}],"functionName":{"name":"mstore","nativeSrc":"31014:6:88","nodeType":"YulIdentifier","src":"31014:6:88"},"nativeSrc":"31014:60:88","nodeType":"YulFunctionCall","src":"31014:60:88"},"nativeSrc":"31014:60:88","nodeType":"YulExpressionStatement","src":"31014:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31094:9:88","nodeType":"YulIdentifier","src":"31094:9:88"},{"kind":"number","nativeSrc":"31105:2:88","nodeType":"YulLiteral","src":"31105:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31090:3:88","nodeType":"YulIdentifier","src":"31090:3:88"},"nativeSrc":"31090:18:88","nodeType":"YulFunctionCall","src":"31090:18:88"},{"name":"value2","nativeSrc":"31110:6:88","nodeType":"YulIdentifier","src":"31110:6:88"}],"functionName":{"name":"mstore","nativeSrc":"31083:6:88","nodeType":"YulIdentifier","src":"31083:6:88"},"nativeSrc":"31083:34:88","nodeType":"YulFunctionCall","src":"31083:34:88"},"nativeSrc":"31083:34:88","nodeType":"YulExpressionStatement","src":"31083:34:88"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"30752:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30862:9:88","nodeType":"YulTypedName","src":"30862:9:88","type":""},{"name":"value2","nativeSrc":"30873:6:88","nodeType":"YulTypedName","src":"30873:6:88","type":""},{"name":"value1","nativeSrc":"30881:6:88","nodeType":"YulTypedName","src":"30881:6:88","type":""},{"name":"value0","nativeSrc":"30889:6:88","nodeType":"YulTypedName","src":"30889:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30900:4:88","nodeType":"YulTypedName","src":"30900:4:88","type":""}],"src":"30752:371:88"},{"body":{"nativeSrc":"31176:180:88","nodeType":"YulBlock","src":"31176:180:88","statements":[{"nativeSrc":"31186:90:88","nodeType":"YulAssignment","src":"31186:90:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"31201:1:88","nodeType":"YulIdentifier","src":"31201:1:88"},{"kind":"number","nativeSrc":"31204:30:88","nodeType":"YulLiteral","src":"31204:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"31197:3:88","nodeType":"YulIdentifier","src":"31197:3:88"},"nativeSrc":"31197:38:88","nodeType":"YulFunctionCall","src":"31197:38:88"},{"arguments":[{"name":"y","nativeSrc":"31241:1:88","nodeType":"YulIdentifier","src":"31241:1:88"},{"kind":"number","nativeSrc":"31244:30:88","nodeType":"YulLiteral","src":"31244:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"31237:3:88","nodeType":"YulIdentifier","src":"31237:3:88"},"nativeSrc":"31237:38:88","nodeType":"YulFunctionCall","src":"31237:38:88"}],"functionName":{"name":"add","nativeSrc":"31193:3:88","nodeType":"YulIdentifier","src":"31193:3:88"},"nativeSrc":"31193:83:88","nodeType":"YulFunctionCall","src":"31193:83:88"},"variableNames":[{"name":"sum","nativeSrc":"31186:3:88","nodeType":"YulIdentifier","src":"31186:3:88"}]},{"body":{"nativeSrc":"31328:22:88","nodeType":"YulBlock","src":"31328:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"31330:16:88","nodeType":"YulIdentifier","src":"31330:16:88"},"nativeSrc":"31330:18:88","nodeType":"YulFunctionCall","src":"31330:18:88"},"nativeSrc":"31330:18:88","nodeType":"YulExpressionStatement","src":"31330:18:88"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"31291:3:88","nodeType":"YulIdentifier","src":"31291:3:88"},{"kind":"number","nativeSrc":"31296:30:88","nodeType":"YulLiteral","src":"31296:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"31288:2:88","nodeType":"YulIdentifier","src":"31288:2:88"},"nativeSrc":"31288:39:88","nodeType":"YulFunctionCall","src":"31288:39:88"},"nativeSrc":"31285:65:88","nodeType":"YulIf","src":"31285:65:88"}]},"name":"checked_add_t_uint112","nativeSrc":"31128:228:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"31159:1:88","nodeType":"YulTypedName","src":"31159:1:88","type":""},{"name":"y","nativeSrc":"31162:1:88","nodeType":"YulTypedName","src":"31162:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"31168:3:88","nodeType":"YulTypedName","src":"31168:3:88","type":""}],"src":"31128:228:88"},{"body":{"nativeSrc":"31535:227:88","nodeType":"YulBlock","src":"31535:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31552:9:88","nodeType":"YulIdentifier","src":"31552:9:88"},{"kind":"number","nativeSrc":"31563:2:88","nodeType":"YulLiteral","src":"31563:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31545:6:88","nodeType":"YulIdentifier","src":"31545:6:88"},"nativeSrc":"31545:21:88","nodeType":"YulFunctionCall","src":"31545:21:88"},"nativeSrc":"31545:21:88","nodeType":"YulExpressionStatement","src":"31545:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31586:9:88","nodeType":"YulIdentifier","src":"31586:9:88"},{"kind":"number","nativeSrc":"31597:2:88","nodeType":"YulLiteral","src":"31597:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31582:3:88","nodeType":"YulIdentifier","src":"31582:3:88"},"nativeSrc":"31582:18:88","nodeType":"YulFunctionCall","src":"31582:18:88"},{"kind":"number","nativeSrc":"31602:2:88","nodeType":"YulLiteral","src":"31602:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"31575:6:88","nodeType":"YulIdentifier","src":"31575:6:88"},"nativeSrc":"31575:30:88","nodeType":"YulFunctionCall","src":"31575:30:88"},"nativeSrc":"31575:30:88","nodeType":"YulExpressionStatement","src":"31575:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31625:9:88","nodeType":"YulIdentifier","src":"31625:9:88"},{"kind":"number","nativeSrc":"31636:2:88","nodeType":"YulLiteral","src":"31636:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31621:3:88","nodeType":"YulIdentifier","src":"31621:3:88"},"nativeSrc":"31621:18:88","nodeType":"YulFunctionCall","src":"31621:18:88"},{"hexValue":"526573657276653a207472616e7366657220746f20746865207a65726f206164","kind":"string","nativeSrc":"31641:34:88","nodeType":"YulLiteral","src":"31641:34:88","type":"","value":"Reserve: transfer to the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"31614:6:88","nodeType":"YulIdentifier","src":"31614:6:88"},"nativeSrc":"31614:62:88","nodeType":"YulFunctionCall","src":"31614:62:88"},"nativeSrc":"31614:62:88","nodeType":"YulExpressionStatement","src":"31614:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31696:9:88","nodeType":"YulIdentifier","src":"31696:9:88"},{"kind":"number","nativeSrc":"31707:2:88","nodeType":"YulLiteral","src":"31707:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31692:3:88","nodeType":"YulIdentifier","src":"31692:3:88"},"nativeSrc":"31692:18:88","nodeType":"YulFunctionCall","src":"31692:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"31712:7:88","nodeType":"YulLiteral","src":"31712:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"31685:6:88","nodeType":"YulIdentifier","src":"31685:6:88"},"nativeSrc":"31685:35:88","nodeType":"YulFunctionCall","src":"31685:35:88"},"nativeSrc":"31685:35:88","nodeType":"YulExpressionStatement","src":"31685:35:88"},{"nativeSrc":"31729:27:88","nodeType":"YulAssignment","src":"31729:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31741:9:88","nodeType":"YulIdentifier","src":"31741:9:88"},{"kind":"number","nativeSrc":"31752:3:88","nodeType":"YulLiteral","src":"31752:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31737:3:88","nodeType":"YulIdentifier","src":"31737:3:88"},"nativeSrc":"31737:19:88","nodeType":"YulFunctionCall","src":"31737:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31729:4:88","nodeType":"YulIdentifier","src":"31729:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31361:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31512:9:88","nodeType":"YulTypedName","src":"31512:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31526:4:88","nodeType":"YulTypedName","src":"31526:4:88","type":""}],"src":"31361:401:88"},{"body":{"nativeSrc":"31941:224:88","nodeType":"YulBlock","src":"31941:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31958:9:88","nodeType":"YulIdentifier","src":"31958:9:88"},{"kind":"number","nativeSrc":"31969:2:88","nodeType":"YulLiteral","src":"31969:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31951:6:88","nodeType":"YulIdentifier","src":"31951:6:88"},"nativeSrc":"31951:21:88","nodeType":"YulFunctionCall","src":"31951:21:88"},"nativeSrc":"31951:21:88","nodeType":"YulExpressionStatement","src":"31951:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31992:9:88","nodeType":"YulIdentifier","src":"31992:9:88"},{"kind":"number","nativeSrc":"32003:2:88","nodeType":"YulLiteral","src":"32003:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31988:3:88","nodeType":"YulIdentifier","src":"31988:3:88"},"nativeSrc":"31988:18:88","nodeType":"YulFunctionCall","src":"31988:18:88"},{"kind":"number","nativeSrc":"32008:2:88","nodeType":"YulLiteral","src":"32008:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"31981:6:88","nodeType":"YulIdentifier","src":"31981:6:88"},"nativeSrc":"31981:30:88","nodeType":"YulFunctionCall","src":"31981:30:88"},"nativeSrc":"31981:30:88","nodeType":"YulExpressionStatement","src":"31981:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32031:9:88","nodeType":"YulIdentifier","src":"32031:9:88"},{"kind":"number","nativeSrc":"32042:2:88","nodeType":"YulLiteral","src":"32042:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32027:3:88","nodeType":"YulIdentifier","src":"32027:3:88"},"nativeSrc":"32027:18:88","nodeType":"YulFunctionCall","src":"32027:18:88"},{"hexValue":"45546f6b656e3a206275726e2066726f6d20746865207a65726f206164647265","kind":"string","nativeSrc":"32047:34:88","nodeType":"YulLiteral","src":"32047:34:88","type":"","value":"EToken: burn from the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"32020:6:88","nodeType":"YulIdentifier","src":"32020:6:88"},"nativeSrc":"32020:62:88","nodeType":"YulFunctionCall","src":"32020:62:88"},"nativeSrc":"32020:62:88","nodeType":"YulExpressionStatement","src":"32020:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32102:9:88","nodeType":"YulIdentifier","src":"32102:9:88"},{"kind":"number","nativeSrc":"32113:2:88","nodeType":"YulLiteral","src":"32113:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32098:3:88","nodeType":"YulIdentifier","src":"32098:3:88"},"nativeSrc":"32098:18:88","nodeType":"YulFunctionCall","src":"32098:18:88"},{"hexValue":"7373","kind":"string","nativeSrc":"32118:4:88","nodeType":"YulLiteral","src":"32118:4:88","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"32091:6:88","nodeType":"YulIdentifier","src":"32091:6:88"},"nativeSrc":"32091:32:88","nodeType":"YulFunctionCall","src":"32091:32:88"},"nativeSrc":"32091:32:88","nodeType":"YulExpressionStatement","src":"32091:32:88"},{"nativeSrc":"32132:27:88","nodeType":"YulAssignment","src":"32132:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32144:9:88","nodeType":"YulIdentifier","src":"32144:9:88"},{"kind":"number","nativeSrc":"32155:3:88","nodeType":"YulLiteral","src":"32155:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32140:3:88","nodeType":"YulIdentifier","src":"32140:3:88"},"nativeSrc":"32140:19:88","nodeType":"YulFunctionCall","src":"32140:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32132:4:88","nodeType":"YulIdentifier","src":"32132:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b76e407d663bf824398ea9cf3672c614c9d61dd7fa70376ae2b86de2f90ab5d9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31767:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31918:9:88","nodeType":"YulTypedName","src":"31918:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31932:4:88","nodeType":"YulTypedName","src":"31932:4:88","type":""}],"src":"31767:398:88"},{"body":{"nativeSrc":"32344:225:88","nodeType":"YulBlock","src":"32344:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32361:9:88","nodeType":"YulIdentifier","src":"32361:9:88"},{"kind":"number","nativeSrc":"32372:2:88","nodeType":"YulLiteral","src":"32372:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32354:6:88","nodeType":"YulIdentifier","src":"32354:6:88"},"nativeSrc":"32354:21:88","nodeType":"YulFunctionCall","src":"32354:21:88"},"nativeSrc":"32354:21:88","nodeType":"YulExpressionStatement","src":"32354:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32395:9:88","nodeType":"YulIdentifier","src":"32395:9:88"},{"kind":"number","nativeSrc":"32406:2:88","nodeType":"YulLiteral","src":"32406:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32391:3:88","nodeType":"YulIdentifier","src":"32391:3:88"},"nativeSrc":"32391:18:88","nodeType":"YulFunctionCall","src":"32391:18:88"},{"kind":"number","nativeSrc":"32411:2:88","nodeType":"YulLiteral","src":"32411:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"32384:6:88","nodeType":"YulIdentifier","src":"32384:6:88"},"nativeSrc":"32384:30:88","nodeType":"YulFunctionCall","src":"32384:30:88"},"nativeSrc":"32384:30:88","nodeType":"YulExpressionStatement","src":"32384:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32434:9:88","nodeType":"YulIdentifier","src":"32434:9:88"},{"kind":"number","nativeSrc":"32445:2:88","nodeType":"YulLiteral","src":"32445:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32430:3:88","nodeType":"YulIdentifier","src":"32430:3:88"},"nativeSrc":"32430:18:88","nodeType":"YulFunctionCall","src":"32430:18:88"},{"hexValue":"45546f6b656e3a206275726e20616d6f756e7420657863656564732062616c61","kind":"string","nativeSrc":"32450:34:88","nodeType":"YulLiteral","src":"32450:34:88","type":"","value":"EToken: burn amount exceeds bala"}],"functionName":{"name":"mstore","nativeSrc":"32423:6:88","nodeType":"YulIdentifier","src":"32423:6:88"},"nativeSrc":"32423:62:88","nodeType":"YulFunctionCall","src":"32423:62:88"},"nativeSrc":"32423:62:88","nodeType":"YulExpressionStatement","src":"32423:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32505:9:88","nodeType":"YulIdentifier","src":"32505:9:88"},{"kind":"number","nativeSrc":"32516:2:88","nodeType":"YulLiteral","src":"32516:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32501:3:88","nodeType":"YulIdentifier","src":"32501:3:88"},"nativeSrc":"32501:18:88","nodeType":"YulFunctionCall","src":"32501:18:88"},{"hexValue":"6e6365","kind":"string","nativeSrc":"32521:5:88","nodeType":"YulLiteral","src":"32521:5:88","type":"","value":"nce"}],"functionName":{"name":"mstore","nativeSrc":"32494:6:88","nodeType":"YulIdentifier","src":"32494:6:88"},"nativeSrc":"32494:33:88","nodeType":"YulFunctionCall","src":"32494:33:88"},"nativeSrc":"32494:33:88","nodeType":"YulExpressionStatement","src":"32494:33:88"},{"nativeSrc":"32536:27:88","nodeType":"YulAssignment","src":"32536:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32548:9:88","nodeType":"YulIdentifier","src":"32548:9:88"},{"kind":"number","nativeSrc":"32559:3:88","nodeType":"YulLiteral","src":"32559:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32544:3:88","nodeType":"YulIdentifier","src":"32544:3:88"},"nativeSrc":"32544:19:88","nodeType":"YulFunctionCall","src":"32544:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32536:4:88","nodeType":"YulIdentifier","src":"32536:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1cbf7542358884c15d276707c7804fa59675a48013fdf3bc6c452d05bb62300a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32170:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32321:9:88","nodeType":"YulTypedName","src":"32321:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32335:4:88","nodeType":"YulTypedName","src":"32335:4:88","type":""}],"src":"32170:399:88"},{"body":{"nativeSrc":"32775:284:88","nodeType":"YulBlock","src":"32775:284:88","statements":[{"nativeSrc":"32785:27:88","nodeType":"YulAssignment","src":"32785:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32797:9:88","nodeType":"YulIdentifier","src":"32797:9:88"},{"kind":"number","nativeSrc":"32808:3:88","nodeType":"YulLiteral","src":"32808:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32793:3:88","nodeType":"YulIdentifier","src":"32793:3:88"},"nativeSrc":"32793:19:88","nodeType":"YulFunctionCall","src":"32793:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32785:4:88","nodeType":"YulIdentifier","src":"32785:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32828:9:88","nodeType":"YulIdentifier","src":"32828:9:88"},{"arguments":[{"name":"value0","nativeSrc":"32843:6:88","nodeType":"YulIdentifier","src":"32843:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32859:3:88","nodeType":"YulLiteral","src":"32859:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"32864:1:88","nodeType":"YulLiteral","src":"32864:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"32855:3:88","nodeType":"YulIdentifier","src":"32855:3:88"},"nativeSrc":"32855:11:88","nodeType":"YulFunctionCall","src":"32855:11:88"},{"kind":"number","nativeSrc":"32868:1:88","nodeType":"YulLiteral","src":"32868:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"32851:3:88","nodeType":"YulIdentifier","src":"32851:3:88"},"nativeSrc":"32851:19:88","nodeType":"YulFunctionCall","src":"32851:19:88"}],"functionName":{"name":"and","nativeSrc":"32839:3:88","nodeType":"YulIdentifier","src":"32839:3:88"},"nativeSrc":"32839:32:88","nodeType":"YulFunctionCall","src":"32839:32:88"}],"functionName":{"name":"mstore","nativeSrc":"32821:6:88","nodeType":"YulIdentifier","src":"32821:6:88"},"nativeSrc":"32821:51:88","nodeType":"YulFunctionCall","src":"32821:51:88"},"nativeSrc":"32821:51:88","nodeType":"YulExpressionStatement","src":"32821:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32892:9:88","nodeType":"YulIdentifier","src":"32892:9:88"},{"kind":"number","nativeSrc":"32903:2:88","nodeType":"YulLiteral","src":"32903:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32888:3:88","nodeType":"YulIdentifier","src":"32888:3:88"},"nativeSrc":"32888:18:88","nodeType":"YulFunctionCall","src":"32888:18:88"},{"arguments":[{"name":"value1","nativeSrc":"32912:6:88","nodeType":"YulIdentifier","src":"32912:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32928:3:88","nodeType":"YulLiteral","src":"32928:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"32933:1:88","nodeType":"YulLiteral","src":"32933:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"32924:3:88","nodeType":"YulIdentifier","src":"32924:3:88"},"nativeSrc":"32924:11:88","nodeType":"YulFunctionCall","src":"32924:11:88"},{"kind":"number","nativeSrc":"32937:1:88","nodeType":"YulLiteral","src":"32937:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"32920:3:88","nodeType":"YulIdentifier","src":"32920:3:88"},"nativeSrc":"32920:19:88","nodeType":"YulFunctionCall","src":"32920:19:88"}],"functionName":{"name":"and","nativeSrc":"32908:3:88","nodeType":"YulIdentifier","src":"32908:3:88"},"nativeSrc":"32908:32:88","nodeType":"YulFunctionCall","src":"32908:32:88"}],"functionName":{"name":"mstore","nativeSrc":"32881:6:88","nodeType":"YulIdentifier","src":"32881:6:88"},"nativeSrc":"32881:60:88","nodeType":"YulFunctionCall","src":"32881:60:88"},"nativeSrc":"32881:60:88","nodeType":"YulExpressionStatement","src":"32881:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32961:9:88","nodeType":"YulIdentifier","src":"32961:9:88"},{"kind":"number","nativeSrc":"32972:2:88","nodeType":"YulLiteral","src":"32972:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32957:3:88","nodeType":"YulIdentifier","src":"32957:3:88"},"nativeSrc":"32957:18:88","nodeType":"YulFunctionCall","src":"32957:18:88"},{"arguments":[{"name":"value2","nativeSrc":"32981:6:88","nodeType":"YulIdentifier","src":"32981:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32997:3:88","nodeType":"YulLiteral","src":"32997:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"33002:1:88","nodeType":"YulLiteral","src":"33002:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"32993:3:88","nodeType":"YulIdentifier","src":"32993:3:88"},"nativeSrc":"32993:11:88","nodeType":"YulFunctionCall","src":"32993:11:88"},{"kind":"number","nativeSrc":"33006:1:88","nodeType":"YulLiteral","src":"33006:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"32989:3:88","nodeType":"YulIdentifier","src":"32989:3:88"},"nativeSrc":"32989:19:88","nodeType":"YulFunctionCall","src":"32989:19:88"}],"functionName":{"name":"and","nativeSrc":"32977:3:88","nodeType":"YulIdentifier","src":"32977:3:88"},"nativeSrc":"32977:32:88","nodeType":"YulFunctionCall","src":"32977:32:88"}],"functionName":{"name":"mstore","nativeSrc":"32950:6:88","nodeType":"YulIdentifier","src":"32950:6:88"},"nativeSrc":"32950:60:88","nodeType":"YulFunctionCall","src":"32950:60:88"},"nativeSrc":"32950:60:88","nodeType":"YulExpressionStatement","src":"32950:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33030:9:88","nodeType":"YulIdentifier","src":"33030:9:88"},{"kind":"number","nativeSrc":"33041:2:88","nodeType":"YulLiteral","src":"33041:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33026:3:88","nodeType":"YulIdentifier","src":"33026:3:88"},"nativeSrc":"33026:18:88","nodeType":"YulFunctionCall","src":"33026:18:88"},{"name":"value3","nativeSrc":"33046:6:88","nodeType":"YulIdentifier","src":"33046:6:88"}],"functionName":{"name":"mstore","nativeSrc":"33019:6:88","nodeType":"YulIdentifier","src":"33019:6:88"},"nativeSrc":"33019:34:88","nodeType":"YulFunctionCall","src":"33019:34:88"},"nativeSrc":"33019:34:88","nodeType":"YulExpressionStatement","src":"33019:34:88"}]},"name":"abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"32574:485:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32720:9:88","nodeType":"YulTypedName","src":"32720:9:88","type":""},{"name":"value3","nativeSrc":"32731:6:88","nodeType":"YulTypedName","src":"32731:6:88","type":""},{"name":"value2","nativeSrc":"32739:6:88","nodeType":"YulTypedName","src":"32739:6:88","type":""},{"name":"value1","nativeSrc":"32747:6:88","nodeType":"YulTypedName","src":"32747:6:88","type":""},{"name":"value0","nativeSrc":"32755:6:88","nodeType":"YulTypedName","src":"32755:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32766:4:88","nodeType":"YulTypedName","src":"32766:4:88","type":""}],"src":"32574:485:88"},{"body":{"nativeSrc":"33238:247:88","nodeType":"YulBlock","src":"33238:247:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33255:9:88","nodeType":"YulIdentifier","src":"33255:9:88"},{"kind":"number","nativeSrc":"33266:2:88","nodeType":"YulLiteral","src":"33266:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33248:6:88","nodeType":"YulIdentifier","src":"33248:6:88"},"nativeSrc":"33248:21:88","nodeType":"YulFunctionCall","src":"33248:21:88"},"nativeSrc":"33248:21:88","nodeType":"YulExpressionStatement","src":"33248:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33289:9:88","nodeType":"YulIdentifier","src":"33289:9:88"},{"kind":"number","nativeSrc":"33300:2:88","nodeType":"YulLiteral","src":"33300:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33285:3:88","nodeType":"YulIdentifier","src":"33285:3:88"},"nativeSrc":"33285:18:88","nodeType":"YulFunctionCall","src":"33285:18:88"},{"kind":"number","nativeSrc":"33305:2:88","nodeType":"YulLiteral","src":"33305:2:88","type":"","value":"57"}],"functionName":{"name":"mstore","nativeSrc":"33278:6:88","nodeType":"YulIdentifier","src":"33278:6:88"},"nativeSrc":"33278:30:88","nodeType":"YulFunctionCall","src":"33278:30:88"},"nativeSrc":"33278:30:88","nodeType":"YulExpressionStatement","src":"33278:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33328:9:88","nodeType":"YulIdentifier","src":"33328:9:88"},{"kind":"number","nativeSrc":"33339:2:88","nodeType":"YulLiteral","src":"33339:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33324:3:88","nodeType":"YulIdentifier","src":"33324:3:88"},"nativeSrc":"33324:18:88","nodeType":"YulFunctionCall","src":"33324:18:88"},{"hexValue":"5472616e73666572206e6f7420616c6c6f776564202d204c6971756964697479","kind":"string","nativeSrc":"33344:34:88","nodeType":"YulLiteral","src":"33344:34:88","type":"","value":"Transfer not allowed - Liquidity"}],"functionName":{"name":"mstore","nativeSrc":"33317:6:88","nodeType":"YulIdentifier","src":"33317:6:88"},"nativeSrc":"33317:62:88","nodeType":"YulFunctionCall","src":"33317:62:88"},"nativeSrc":"33317:62:88","nodeType":"YulExpressionStatement","src":"33317:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33399:9:88","nodeType":"YulIdentifier","src":"33399:9:88"},{"kind":"number","nativeSrc":"33410:2:88","nodeType":"YulLiteral","src":"33410:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33395:3:88","nodeType":"YulIdentifier","src":"33395:3:88"},"nativeSrc":"33395:18:88","nodeType":"YulFunctionCall","src":"33395:18:88"},{"hexValue":"2050726f7669646572206e6f742077686974656c6973746564","kind":"string","nativeSrc":"33415:27:88","nodeType":"YulLiteral","src":"33415:27:88","type":"","value":" Provider not whitelisted"}],"functionName":{"name":"mstore","nativeSrc":"33388:6:88","nodeType":"YulIdentifier","src":"33388:6:88"},"nativeSrc":"33388:55:88","nodeType":"YulFunctionCall","src":"33388:55:88"},"nativeSrc":"33388:55:88","nodeType":"YulExpressionStatement","src":"33388:55:88"},{"nativeSrc":"33452:27:88","nodeType":"YulAssignment","src":"33452:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33464:9:88","nodeType":"YulIdentifier","src":"33464:9:88"},{"kind":"number","nativeSrc":"33475:3:88","nodeType":"YulLiteral","src":"33475:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33460:3:88","nodeType":"YulIdentifier","src":"33460:3:88"},"nativeSrc":"33460:19:88","nodeType":"YulFunctionCall","src":"33460:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33452:4:88","nodeType":"YulIdentifier","src":"33452:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_2376e8656d108fa259440a6257d5c2afd65e5925665da06a3ef148c4e812fffb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33064:421:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33215:9:88","nodeType":"YulTypedName","src":"33215:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33229:4:88","nodeType":"YulTypedName","src":"33229:4:88","type":""}],"src":"33064:421:88"},{"body":{"nativeSrc":"33664:235:88","nodeType":"YulBlock","src":"33664:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33681:9:88","nodeType":"YulIdentifier","src":"33681:9:88"},{"kind":"number","nativeSrc":"33692:2:88","nodeType":"YulLiteral","src":"33692:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33674:6:88","nodeType":"YulIdentifier","src":"33674:6:88"},"nativeSrc":"33674:21:88","nodeType":"YulFunctionCall","src":"33674:21:88"},"nativeSrc":"33674:21:88","nodeType":"YulExpressionStatement","src":"33674:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33715:9:88","nodeType":"YulIdentifier","src":"33715:9:88"},{"kind":"number","nativeSrc":"33726:2:88","nodeType":"YulLiteral","src":"33726:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33711:3:88","nodeType":"YulIdentifier","src":"33711:3:88"},"nativeSrc":"33711:18:88","nodeType":"YulFunctionCall","src":"33711:18:88"},{"kind":"number","nativeSrc":"33731:2:88","nodeType":"YulLiteral","src":"33731:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"33704:6:88","nodeType":"YulIdentifier","src":"33704:6:88"},"nativeSrc":"33704:30:88","nodeType":"YulFunctionCall","src":"33704:30:88"},"nativeSrc":"33704:30:88","nodeType":"YulExpressionStatement","src":"33704:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33754:9:88","nodeType":"YulIdentifier","src":"33754:9:88"},{"kind":"number","nativeSrc":"33765:2:88","nodeType":"YulLiteral","src":"33765:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33750:3:88","nodeType":"YulIdentifier","src":"33750:3:88"},"nativeSrc":"33750:18:88","nodeType":"YulFunctionCall","src":"33750:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"33770:34:88","nodeType":"YulLiteral","src":"33770:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"33743:6:88","nodeType":"YulIdentifier","src":"33743:6:88"},"nativeSrc":"33743:62:88","nodeType":"YulFunctionCall","src":"33743:62:88"},"nativeSrc":"33743:62:88","nodeType":"YulExpressionStatement","src":"33743:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33825:9:88","nodeType":"YulIdentifier","src":"33825:9:88"},{"kind":"number","nativeSrc":"33836:2:88","nodeType":"YulLiteral","src":"33836:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33821:3:88","nodeType":"YulIdentifier","src":"33821:3:88"},"nativeSrc":"33821:18:88","nodeType":"YulFunctionCall","src":"33821:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"33841:15:88","nodeType":"YulLiteral","src":"33841:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"33814:6:88","nodeType":"YulIdentifier","src":"33814:6:88"},"nativeSrc":"33814:43:88","nodeType":"YulFunctionCall","src":"33814:43:88"},"nativeSrc":"33814:43:88","nodeType":"YulExpressionStatement","src":"33814:43:88"},{"nativeSrc":"33866:27:88","nodeType":"YulAssignment","src":"33866:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33878:9:88","nodeType":"YulIdentifier","src":"33878:9:88"},{"kind":"number","nativeSrc":"33889:3:88","nodeType":"YulLiteral","src":"33889:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33874:3:88","nodeType":"YulIdentifier","src":"33874:3:88"},"nativeSrc":"33874:19:88","nodeType":"YulFunctionCall","src":"33874:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33866:4:88","nodeType":"YulIdentifier","src":"33866:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33490:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33641:9:88","nodeType":"YulTypedName","src":"33641:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33655:4:88","nodeType":"YulTypedName","src":"33655:4:88","type":""}],"src":"33490:409:88"},{"body":{"nativeSrc":"34078:170:88","nodeType":"YulBlock","src":"34078:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34095:9:88","nodeType":"YulIdentifier","src":"34095:9:88"},{"kind":"number","nativeSrc":"34106:2:88","nodeType":"YulLiteral","src":"34106:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34088:6:88","nodeType":"YulIdentifier","src":"34088:6:88"},"nativeSrc":"34088:21:88","nodeType":"YulFunctionCall","src":"34088:21:88"},"nativeSrc":"34088:21:88","nodeType":"YulExpressionStatement","src":"34088:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34129:9:88","nodeType":"YulIdentifier","src":"34129:9:88"},{"kind":"number","nativeSrc":"34140:2:88","nodeType":"YulLiteral","src":"34140:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34125:3:88","nodeType":"YulIdentifier","src":"34125:3:88"},"nativeSrc":"34125:18:88","nodeType":"YulFunctionCall","src":"34125:18:88"},{"kind":"number","nativeSrc":"34145:2:88","nodeType":"YulLiteral","src":"34145:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"34118:6:88","nodeType":"YulIdentifier","src":"34118:6:88"},"nativeSrc":"34118:30:88","nodeType":"YulFunctionCall","src":"34118:30:88"},"nativeSrc":"34118:30:88","nodeType":"YulExpressionStatement","src":"34118:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34168:9:88","nodeType":"YulIdentifier","src":"34168:9:88"},{"kind":"number","nativeSrc":"34179:2:88","nodeType":"YulLiteral","src":"34179:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34164:3:88","nodeType":"YulIdentifier","src":"34164:3:88"},"nativeSrc":"34164:18:88","nodeType":"YulFunctionCall","src":"34164:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"34184:22:88","nodeType":"YulLiteral","src":"34184:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"34157:6:88","nodeType":"YulIdentifier","src":"34157:6:88"},"nativeSrc":"34157:50:88","nodeType":"YulFunctionCall","src":"34157:50:88"},"nativeSrc":"34157:50:88","nodeType":"YulExpressionStatement","src":"34157:50:88"},{"nativeSrc":"34216:26:88","nodeType":"YulAssignment","src":"34216:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34228:9:88","nodeType":"YulIdentifier","src":"34228:9:88"},{"kind":"number","nativeSrc":"34239:2:88","nodeType":"YulLiteral","src":"34239:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34224:3:88","nodeType":"YulIdentifier","src":"34224:3:88"},"nativeSrc":"34224:18:88","nodeType":"YulFunctionCall","src":"34224:18:88"},"variableNames":[{"name":"tail","nativeSrc":"34216:4:88","nodeType":"YulIdentifier","src":"34216:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33904:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34055:9:88","nodeType":"YulTypedName","src":"34055:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34069:4:88","nodeType":"YulTypedName","src":"34069:4:88","type":""}],"src":"33904:344:88"},{"body":{"nativeSrc":"34427:241:88","nodeType":"YulBlock","src":"34427:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34444:9:88","nodeType":"YulIdentifier","src":"34444:9:88"},{"kind":"number","nativeSrc":"34455:2:88","nodeType":"YulLiteral","src":"34455:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34437:6:88","nodeType":"YulIdentifier","src":"34437:6:88"},"nativeSrc":"34437:21:88","nodeType":"YulFunctionCall","src":"34437:21:88"},"nativeSrc":"34437:21:88","nodeType":"YulExpressionStatement","src":"34437:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34478:9:88","nodeType":"YulIdentifier","src":"34478:9:88"},{"kind":"number","nativeSrc":"34489:2:88","nodeType":"YulLiteral","src":"34489:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34474:3:88","nodeType":"YulIdentifier","src":"34474:3:88"},"nativeSrc":"34474:18:88","nodeType":"YulFunctionCall","src":"34474:18:88"},{"kind":"number","nativeSrc":"34494:2:88","nodeType":"YulLiteral","src":"34494:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"34467:6:88","nodeType":"YulIdentifier","src":"34467:6:88"},"nativeSrc":"34467:30:88","nodeType":"YulFunctionCall","src":"34467:30:88"},"nativeSrc":"34467:30:88","nodeType":"YulExpressionStatement","src":"34467:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34517:9:88","nodeType":"YulIdentifier","src":"34517:9:88"},{"kind":"number","nativeSrc":"34528:2:88","nodeType":"YulLiteral","src":"34528:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34513:3:88","nodeType":"YulIdentifier","src":"34513:3:88"},"nativeSrc":"34513:18:88","nodeType":"YulFunctionCall","src":"34513:18:88"},{"hexValue":"56616c69646174696f6e3a206c6971756964697479526571756972656d656e74","kind":"string","nativeSrc":"34533:34:88","nodeType":"YulLiteral","src":"34533:34:88","type":"","value":"Validation: liquidityRequirement"}],"functionName":{"name":"mstore","nativeSrc":"34506:6:88","nodeType":"YulIdentifier","src":"34506:6:88"},"nativeSrc":"34506:62:88","nodeType":"YulFunctionCall","src":"34506:62:88"},"nativeSrc":"34506:62:88","nodeType":"YulExpressionStatement","src":"34506:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34588:9:88","nodeType":"YulIdentifier","src":"34588:9:88"},{"kind":"number","nativeSrc":"34599:2:88","nodeType":"YulLiteral","src":"34599:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34584:3:88","nodeType":"YulIdentifier","src":"34584:3:88"},"nativeSrc":"34584:18:88","nodeType":"YulFunctionCall","src":"34584:18:88"},{"hexValue":"206d757374206265205b302e382c20312e335d","kind":"string","nativeSrc":"34604:21:88","nodeType":"YulLiteral","src":"34604:21:88","type":"","value":" must be [0.8, 1.3]"}],"functionName":{"name":"mstore","nativeSrc":"34577:6:88","nodeType":"YulIdentifier","src":"34577:6:88"},"nativeSrc":"34577:49:88","nodeType":"YulFunctionCall","src":"34577:49:88"},"nativeSrc":"34577:49:88","nodeType":"YulExpressionStatement","src":"34577:49:88"},{"nativeSrc":"34635:27:88","nodeType":"YulAssignment","src":"34635:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34647:9:88","nodeType":"YulIdentifier","src":"34647:9:88"},{"kind":"number","nativeSrc":"34658:3:88","nodeType":"YulLiteral","src":"34658:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34643:3:88","nodeType":"YulIdentifier","src":"34643:3:88"},"nativeSrc":"34643:19:88","nodeType":"YulFunctionCall","src":"34643:19:88"},"variableNames":[{"name":"tail","nativeSrc":"34635:4:88","nodeType":"YulIdentifier","src":"34635:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ce2f886aa6f4a7c4a12260f96967c0c0bbf0de5a1ffbc7579742ee06be1b2f07__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34253:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34404:9:88","nodeType":"YulTypedName","src":"34404:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34418:4:88","nodeType":"YulTypedName","src":"34418:4:88","type":""}],"src":"34253:415:88"},{"body":{"nativeSrc":"34847:237:88","nodeType":"YulBlock","src":"34847:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34864:9:88","nodeType":"YulIdentifier","src":"34864:9:88"},{"kind":"number","nativeSrc":"34875:2:88","nodeType":"YulLiteral","src":"34875:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34857:6:88","nodeType":"YulIdentifier","src":"34857:6:88"},"nativeSrc":"34857:21:88","nodeType":"YulFunctionCall","src":"34857:21:88"},"nativeSrc":"34857:21:88","nodeType":"YulExpressionStatement","src":"34857:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34898:9:88","nodeType":"YulIdentifier","src":"34898:9:88"},{"kind":"number","nativeSrc":"34909:2:88","nodeType":"YulLiteral","src":"34909:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34894:3:88","nodeType":"YulIdentifier","src":"34894:3:88"},"nativeSrc":"34894:18:88","nodeType":"YulFunctionCall","src":"34894:18:88"},{"kind":"number","nativeSrc":"34914:2:88","nodeType":"YulLiteral","src":"34914:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"34887:6:88","nodeType":"YulIdentifier","src":"34887:6:88"},"nativeSrc":"34887:30:88","nodeType":"YulFunctionCall","src":"34887:30:88"},"nativeSrc":"34887:30:88","nodeType":"YulExpressionStatement","src":"34887:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34937:9:88","nodeType":"YulIdentifier","src":"34937:9:88"},{"kind":"number","nativeSrc":"34948:2:88","nodeType":"YulLiteral","src":"34948:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34933:3:88","nodeType":"YulIdentifier","src":"34933:3:88"},"nativeSrc":"34933:18:88","nodeType":"YulFunctionCall","src":"34933:18:88"},{"hexValue":"56616c69646174696f6e3a206d61785574696c697a6174696f6e52617465206d","kind":"string","nativeSrc":"34953:34:88","nodeType":"YulLiteral","src":"34953:34:88","type":"","value":"Validation: maxUtilizationRate m"}],"functionName":{"name":"mstore","nativeSrc":"34926:6:88","nodeType":"YulIdentifier","src":"34926:6:88"},"nativeSrc":"34926:62:88","nodeType":"YulFunctionCall","src":"34926:62:88"},"nativeSrc":"34926:62:88","nodeType":"YulExpressionStatement","src":"34926:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35008:9:88","nodeType":"YulIdentifier","src":"35008:9:88"},{"kind":"number","nativeSrc":"35019:2:88","nodeType":"YulLiteral","src":"35019:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35004:3:88","nodeType":"YulIdentifier","src":"35004:3:88"},"nativeSrc":"35004:18:88","nodeType":"YulFunctionCall","src":"35004:18:88"},{"hexValue":"757374206265205b302e352c20315d","kind":"string","nativeSrc":"35024:17:88","nodeType":"YulLiteral","src":"35024:17:88","type":"","value":"ust be [0.5, 1]"}],"functionName":{"name":"mstore","nativeSrc":"34997:6:88","nodeType":"YulIdentifier","src":"34997:6:88"},"nativeSrc":"34997:45:88","nodeType":"YulFunctionCall","src":"34997:45:88"},"nativeSrc":"34997:45:88","nodeType":"YulExpressionStatement","src":"34997:45:88"},{"nativeSrc":"35051:27:88","nodeType":"YulAssignment","src":"35051:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35063:9:88","nodeType":"YulIdentifier","src":"35063:9:88"},{"kind":"number","nativeSrc":"35074:3:88","nodeType":"YulLiteral","src":"35074:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35059:3:88","nodeType":"YulIdentifier","src":"35059:3:88"},"nativeSrc":"35059:19:88","nodeType":"YulFunctionCall","src":"35059:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35051:4:88","nodeType":"YulIdentifier","src":"35051:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_111ada2e996f715d2077bb2234aa57f237cb218f36507eb4780a69c700bee9ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34673:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34824:9:88","nodeType":"YulTypedName","src":"34824:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34838:4:88","nodeType":"YulTypedName","src":"34838:4:88","type":""}],"src":"34673:411:88"},{"body":{"nativeSrc":"35263:235:88","nodeType":"YulBlock","src":"35263:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35280:9:88","nodeType":"YulIdentifier","src":"35280:9:88"},{"kind":"number","nativeSrc":"35291:2:88","nodeType":"YulLiteral","src":"35291:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35273:6:88","nodeType":"YulIdentifier","src":"35273:6:88"},"nativeSrc":"35273:21:88","nodeType":"YulFunctionCall","src":"35273:21:88"},"nativeSrc":"35273:21:88","nodeType":"YulExpressionStatement","src":"35273:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35314:9:88","nodeType":"YulIdentifier","src":"35314:9:88"},{"kind":"number","nativeSrc":"35325:2:88","nodeType":"YulLiteral","src":"35325:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35310:3:88","nodeType":"YulIdentifier","src":"35310:3:88"},"nativeSrc":"35310:18:88","nodeType":"YulFunctionCall","src":"35310:18:88"},{"kind":"number","nativeSrc":"35330:2:88","nodeType":"YulLiteral","src":"35330:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"35303:6:88","nodeType":"YulIdentifier","src":"35303:6:88"},"nativeSrc":"35303:30:88","nodeType":"YulFunctionCall","src":"35303:30:88"},"nativeSrc":"35303:30:88","nodeType":"YulExpressionStatement","src":"35303:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35353:9:88","nodeType":"YulIdentifier","src":"35353:9:88"},{"kind":"number","nativeSrc":"35364:2:88","nodeType":"YulLiteral","src":"35364:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35349:3:88","nodeType":"YulIdentifier","src":"35349:3:88"},"nativeSrc":"35349:18:88","nodeType":"YulFunctionCall","src":"35349:18:88"},{"hexValue":"56616c69646174696f6e3a206d696e5574696c697a6174696f6e52617465206d","kind":"string","nativeSrc":"35369:34:88","nodeType":"YulLiteral","src":"35369:34:88","type":"","value":"Validation: minUtilizationRate m"}],"functionName":{"name":"mstore","nativeSrc":"35342:6:88","nodeType":"YulIdentifier","src":"35342:6:88"},"nativeSrc":"35342:62:88","nodeType":"YulFunctionCall","src":"35342:62:88"},"nativeSrc":"35342:62:88","nodeType":"YulExpressionStatement","src":"35342:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35424:9:88","nodeType":"YulIdentifier","src":"35424:9:88"},{"kind":"number","nativeSrc":"35435:2:88","nodeType":"YulLiteral","src":"35435:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35420:3:88","nodeType":"YulIdentifier","src":"35420:3:88"},"nativeSrc":"35420:18:88","nodeType":"YulFunctionCall","src":"35420:18:88"},{"hexValue":"757374206265205b302c20315d","kind":"string","nativeSrc":"35440:15:88","nodeType":"YulLiteral","src":"35440:15:88","type":"","value":"ust be [0, 1]"}],"functionName":{"name":"mstore","nativeSrc":"35413:6:88","nodeType":"YulIdentifier","src":"35413:6:88"},"nativeSrc":"35413:43:88","nodeType":"YulFunctionCall","src":"35413:43:88"},"nativeSrc":"35413:43:88","nodeType":"YulExpressionStatement","src":"35413:43:88"},{"nativeSrc":"35465:27:88","nodeType":"YulAssignment","src":"35465:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35477:9:88","nodeType":"YulIdentifier","src":"35477:9:88"},{"kind":"number","nativeSrc":"35488:3:88","nodeType":"YulLiteral","src":"35488:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35473:3:88","nodeType":"YulIdentifier","src":"35473:3:88"},"nativeSrc":"35473:19:88","nodeType":"YulFunctionCall","src":"35473:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35465:4:88","nodeType":"YulIdentifier","src":"35465:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_589184136a3b919d9f00ff2f2274337cfa9fb4d8f034bde634ff7a801349f9d6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35089:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35240:9:88","nodeType":"YulTypedName","src":"35240:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35254:4:88","nodeType":"YulTypedName","src":"35254:4:88","type":""}],"src":"35089:409:88"},{"body":{"nativeSrc":"35677:241:88","nodeType":"YulBlock","src":"35677:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35694:9:88","nodeType":"YulIdentifier","src":"35694:9:88"},{"kind":"number","nativeSrc":"35705:2:88","nodeType":"YulLiteral","src":"35705:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35687:6:88","nodeType":"YulIdentifier","src":"35687:6:88"},"nativeSrc":"35687:21:88","nodeType":"YulFunctionCall","src":"35687:21:88"},"nativeSrc":"35687:21:88","nodeType":"YulExpressionStatement","src":"35687:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35728:9:88","nodeType":"YulIdentifier","src":"35728:9:88"},{"kind":"number","nativeSrc":"35739:2:88","nodeType":"YulLiteral","src":"35739:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35724:3:88","nodeType":"YulIdentifier","src":"35724:3:88"},"nativeSrc":"35724:18:88","nodeType":"YulFunctionCall","src":"35724:18:88"},{"kind":"number","nativeSrc":"35744:2:88","nodeType":"YulLiteral","src":"35744:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"35717:6:88","nodeType":"YulIdentifier","src":"35717:6:88"},"nativeSrc":"35717:30:88","nodeType":"YulFunctionCall","src":"35717:30:88"},"nativeSrc":"35717:30:88","nodeType":"YulExpressionStatement","src":"35717:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35767:9:88","nodeType":"YulIdentifier","src":"35767:9:88"},{"kind":"number","nativeSrc":"35778:2:88","nodeType":"YulLiteral","src":"35778:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35763:3:88","nodeType":"YulIdentifier","src":"35763:3:88"},"nativeSrc":"35763:18:88","nodeType":"YulFunctionCall","src":"35763:18:88"},{"hexValue":"56616c69646174696f6e3a20696e7465726e616c4c6f616e496e746572657374","kind":"string","nativeSrc":"35783:34:88","nodeType":"YulLiteral","src":"35783:34:88","type":"","value":"Validation: internalLoanInterest"}],"functionName":{"name":"mstore","nativeSrc":"35756:6:88","nodeType":"YulIdentifier","src":"35756:6:88"},"nativeSrc":"35756:62:88","nodeType":"YulFunctionCall","src":"35756:62:88"},"nativeSrc":"35756:62:88","nodeType":"YulExpressionStatement","src":"35756:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35838:9:88","nodeType":"YulIdentifier","src":"35838:9:88"},{"kind":"number","nativeSrc":"35849:2:88","nodeType":"YulLiteral","src":"35849:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35834:3:88","nodeType":"YulIdentifier","src":"35834:3:88"},"nativeSrc":"35834:18:88","nodeType":"YulFunctionCall","src":"35834:18:88"},{"hexValue":"52617465206d757374206265203c3d20353025","kind":"string","nativeSrc":"35854:21:88","nodeType":"YulLiteral","src":"35854:21:88","type":"","value":"Rate must be <= 50%"}],"functionName":{"name":"mstore","nativeSrc":"35827:6:88","nodeType":"YulIdentifier","src":"35827:6:88"},"nativeSrc":"35827:49:88","nodeType":"YulFunctionCall","src":"35827:49:88"},"nativeSrc":"35827:49:88","nodeType":"YulExpressionStatement","src":"35827:49:88"},{"nativeSrc":"35885:27:88","nodeType":"YulAssignment","src":"35885:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35897:9:88","nodeType":"YulIdentifier","src":"35897:9:88"},{"kind":"number","nativeSrc":"35908:3:88","nodeType":"YulLiteral","src":"35908:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35893:3:88","nodeType":"YulIdentifier","src":"35893:3:88"},"nativeSrc":"35893:19:88","nodeType":"YulFunctionCall","src":"35893:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35885:4:88","nodeType":"YulIdentifier","src":"35885:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3c6787565a0ce9e399f754cca5a3dff36739caf63c11aea68e06f0210b1b136d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35503:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35654:9:88","nodeType":"YulTypedName","src":"35654:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35668:4:88","nodeType":"YulTypedName","src":"35668:4:88","type":""}],"src":"35503:415:88"},{"body":{"nativeSrc":"36097:229:88","nodeType":"YulBlock","src":"36097:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36114:9:88","nodeType":"YulIdentifier","src":"36114:9:88"},{"kind":"number","nativeSrc":"36125:2:88","nodeType":"YulLiteral","src":"36125:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36107:6:88","nodeType":"YulIdentifier","src":"36107:6:88"},"nativeSrc":"36107:21:88","nodeType":"YulFunctionCall","src":"36107:21:88"},"nativeSrc":"36107:21:88","nodeType":"YulExpressionStatement","src":"36107:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36148:9:88","nodeType":"YulIdentifier","src":"36148:9:88"},{"kind":"number","nativeSrc":"36159:2:88","nodeType":"YulLiteral","src":"36159:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36144:3:88","nodeType":"YulIdentifier","src":"36144:3:88"},"nativeSrc":"36144:18:88","nodeType":"YulFunctionCall","src":"36144:18:88"},{"kind":"number","nativeSrc":"36164:2:88","nodeType":"YulLiteral","src":"36164:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"36137:6:88","nodeType":"YulIdentifier","src":"36137:6:88"},"nativeSrc":"36137:30:88","nodeType":"YulFunctionCall","src":"36137:30:88"},"nativeSrc":"36137:30:88","nodeType":"YulExpressionStatement","src":"36137:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36187:9:88","nodeType":"YulIdentifier","src":"36187:9:88"},{"kind":"number","nativeSrc":"36198:2:88","nodeType":"YulLiteral","src":"36198:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36183:3:88","nodeType":"YulIdentifier","src":"36183:3:88"},"nativeSrc":"36183:18:88","nodeType":"YulFunctionCall","src":"36183:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"36203:34:88","nodeType":"YulLiteral","src":"36203:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"36176:6:88","nodeType":"YulIdentifier","src":"36176:6:88"},"nativeSrc":"36176:62:88","nodeType":"YulFunctionCall","src":"36176:62:88"},"nativeSrc":"36176:62:88","nodeType":"YulExpressionStatement","src":"36176:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36258:9:88","nodeType":"YulIdentifier","src":"36258:9:88"},{"kind":"number","nativeSrc":"36269:2:88","nodeType":"YulLiteral","src":"36269:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36254:3:88","nodeType":"YulIdentifier","src":"36254:3:88"},"nativeSrc":"36254:18:88","nodeType":"YulFunctionCall","src":"36254:18:88"},{"hexValue":"31322062697473","kind":"string","nativeSrc":"36274:9:88","nodeType":"YulLiteral","src":"36274:9:88","type":"","value":"12 bits"}],"functionName":{"name":"mstore","nativeSrc":"36247:6:88","nodeType":"YulIdentifier","src":"36247:6:88"},"nativeSrc":"36247:37:88","nodeType":"YulFunctionCall","src":"36247:37:88"},"nativeSrc":"36247:37:88","nodeType":"YulExpressionStatement","src":"36247:37:88"},{"nativeSrc":"36293:27:88","nodeType":"YulAssignment","src":"36293:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36305:9:88","nodeType":"YulIdentifier","src":"36305:9:88"},{"kind":"number","nativeSrc":"36316:3:88","nodeType":"YulLiteral","src":"36316:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36301:3:88","nodeType":"YulIdentifier","src":"36301:3:88"},"nativeSrc":"36301:19:88","nodeType":"YulFunctionCall","src":"36301:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36293:4:88","nodeType":"YulIdentifier","src":"36293:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35923:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36074:9:88","nodeType":"YulTypedName","src":"36074:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36088:4:88","nodeType":"YulTypedName","src":"36088:4:88","type":""}],"src":"35923:403:88"},{"body":{"nativeSrc":"36505:228:88","nodeType":"YulBlock","src":"36505:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36522:9:88","nodeType":"YulIdentifier","src":"36522:9:88"},{"kind":"number","nativeSrc":"36533:2:88","nodeType":"YulLiteral","src":"36533:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36515:6:88","nodeType":"YulIdentifier","src":"36515:6:88"},"nativeSrc":"36515:21:88","nodeType":"YulFunctionCall","src":"36515:21:88"},"nativeSrc":"36515:21:88","nodeType":"YulExpressionStatement","src":"36515:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36556:9:88","nodeType":"YulIdentifier","src":"36556:9:88"},{"kind":"number","nativeSrc":"36567:2:88","nodeType":"YulLiteral","src":"36567:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36552:3:88","nodeType":"YulIdentifier","src":"36552:3:88"},"nativeSrc":"36552:18:88","nodeType":"YulFunctionCall","src":"36552:18:88"},{"kind":"number","nativeSrc":"36572:2:88","nodeType":"YulLiteral","src":"36572:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"36545:6:88","nodeType":"YulIdentifier","src":"36545:6:88"},"nativeSrc":"36545:30:88","nodeType":"YulFunctionCall","src":"36545:30:88"},"nativeSrc":"36545:30:88","nodeType":"YulExpressionStatement","src":"36545:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36595:9:88","nodeType":"YulIdentifier","src":"36595:9:88"},{"kind":"number","nativeSrc":"36606:2:88","nodeType":"YulLiteral","src":"36606:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36591:3:88","nodeType":"YulIdentifier","src":"36591:3:88"},"nativeSrc":"36591:18:88","nodeType":"YulFunctionCall","src":"36591:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039","kind":"string","nativeSrc":"36611:34:88","nodeType":"YulLiteral","src":"36611:34:88","type":"","value":"SafeCast: value doesn't fit in 9"}],"functionName":{"name":"mstore","nativeSrc":"36584:6:88","nodeType":"YulIdentifier","src":"36584:6:88"},"nativeSrc":"36584:62:88","nodeType":"YulFunctionCall","src":"36584:62:88"},"nativeSrc":"36584:62:88","nodeType":"YulExpressionStatement","src":"36584:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36666:9:88","nodeType":"YulIdentifier","src":"36666:9:88"},{"kind":"number","nativeSrc":"36677:2:88","nodeType":"YulLiteral","src":"36677:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36662:3:88","nodeType":"YulIdentifier","src":"36662:3:88"},"nativeSrc":"36662:18:88","nodeType":"YulFunctionCall","src":"36662:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"36682:8:88","nodeType":"YulLiteral","src":"36682:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"36655:6:88","nodeType":"YulIdentifier","src":"36655:6:88"},"nativeSrc":"36655:36:88","nodeType":"YulFunctionCall","src":"36655:36:88"},"nativeSrc":"36655:36:88","nodeType":"YulExpressionStatement","src":"36655:36:88"},{"nativeSrc":"36700:27:88","nodeType":"YulAssignment","src":"36700:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36712:9:88","nodeType":"YulIdentifier","src":"36712:9:88"},{"kind":"number","nativeSrc":"36723:3:88","nodeType":"YulLiteral","src":"36723:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36708:3:88","nodeType":"YulIdentifier","src":"36708:3:88"},"nativeSrc":"36708:19:88","nodeType":"YulFunctionCall","src":"36708:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36700:4:88","nodeType":"YulIdentifier","src":"36700:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36331:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36482:9:88","nodeType":"YulTypedName","src":"36482:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36496:4:88","nodeType":"YulTypedName","src":"36496:4:88","type":""}],"src":"36331:402:88"},{"body":{"nativeSrc":"36785:169:88","nodeType":"YulBlock","src":"36785:169:88","statements":[{"nativeSrc":"36795:16:88","nodeType":"YulAssignment","src":"36795:16:88","value":{"arguments":[{"name":"x","nativeSrc":"36806:1:88","nodeType":"YulIdentifier","src":"36806:1:88"},{"name":"y","nativeSrc":"36809:1:88","nodeType":"YulIdentifier","src":"36809:1:88"}],"functionName":{"name":"add","nativeSrc":"36802:3:88","nodeType":"YulIdentifier","src":"36802:3:88"},"nativeSrc":"36802:9:88","nodeType":"YulFunctionCall","src":"36802:9:88"},"variableNames":[{"name":"sum","nativeSrc":"36795:3:88","nodeType":"YulIdentifier","src":"36795:3:88"}]},{"nativeSrc":"36820:21:88","nodeType":"YulVariableDeclaration","src":"36820:21:88","value":{"arguments":[{"name":"sum","nativeSrc":"36834:3:88","nodeType":"YulIdentifier","src":"36834:3:88"},{"name":"y","nativeSrc":"36839:1:88","nodeType":"YulIdentifier","src":"36839:1:88"}],"functionName":{"name":"slt","nativeSrc":"36830:3:88","nodeType":"YulIdentifier","src":"36830:3:88"},"nativeSrc":"36830:11:88","nodeType":"YulFunctionCall","src":"36830:11:88"},"variables":[{"name":"_1","nativeSrc":"36824:2:88","nodeType":"YulTypedName","src":"36824:2:88","type":""}]},{"nativeSrc":"36850:19:88","nodeType":"YulVariableDeclaration","src":"36850:19:88","value":{"arguments":[{"name":"x","nativeSrc":"36864:1:88","nodeType":"YulIdentifier","src":"36864:1:88"},{"kind":"number","nativeSrc":"36867:1:88","nodeType":"YulLiteral","src":"36867:1:88","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"36860:3:88","nodeType":"YulIdentifier","src":"36860:3:88"},"nativeSrc":"36860:9:88","nodeType":"YulFunctionCall","src":"36860:9:88"},"variables":[{"name":"_2","nativeSrc":"36854:2:88","nodeType":"YulTypedName","src":"36854:2:88","type":""}]},{"body":{"nativeSrc":"36926:22:88","nodeType":"YulBlock","src":"36926:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36928:16:88","nodeType":"YulIdentifier","src":"36928:16:88"},"nativeSrc":"36928:18:88","nodeType":"YulFunctionCall","src":"36928:18:88"},"nativeSrc":"36928:18:88","nodeType":"YulExpressionStatement","src":"36928:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"36895:2:88","nodeType":"YulIdentifier","src":"36895:2:88"}],"functionName":{"name":"iszero","nativeSrc":"36888:6:88","nodeType":"YulIdentifier","src":"36888:6:88"},"nativeSrc":"36888:10:88","nodeType":"YulFunctionCall","src":"36888:10:88"},{"name":"_1","nativeSrc":"36900:2:88","nodeType":"YulIdentifier","src":"36900:2:88"}],"functionName":{"name":"and","nativeSrc":"36884:3:88","nodeType":"YulIdentifier","src":"36884:3:88"},"nativeSrc":"36884:19:88","nodeType":"YulFunctionCall","src":"36884:19:88"},{"arguments":[{"name":"_2","nativeSrc":"36909:2:88","nodeType":"YulIdentifier","src":"36909:2:88"},{"arguments":[{"name":"_1","nativeSrc":"36920:2:88","nodeType":"YulIdentifier","src":"36920:2:88"}],"functionName":{"name":"iszero","nativeSrc":"36913:6:88","nodeType":"YulIdentifier","src":"36913:6:88"},"nativeSrc":"36913:10:88","nodeType":"YulFunctionCall","src":"36913:10:88"}],"functionName":{"name":"and","nativeSrc":"36905:3:88","nodeType":"YulIdentifier","src":"36905:3:88"},"nativeSrc":"36905:19:88","nodeType":"YulFunctionCall","src":"36905:19:88"}],"functionName":{"name":"or","nativeSrc":"36881:2:88","nodeType":"YulIdentifier","src":"36881:2:88"},"nativeSrc":"36881:44:88","nodeType":"YulFunctionCall","src":"36881:44:88"},"nativeSrc":"36878:70:88","nodeType":"YulIf","src":"36878:70:88"}]},"name":"checked_add_t_int256","nativeSrc":"36738:216:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"36768:1:88","nodeType":"YulTypedName","src":"36768:1:88","type":""},{"name":"y","nativeSrc":"36771:1:88","nodeType":"YulTypedName","src":"36771:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"36777:3:88","nodeType":"YulTypedName","src":"36777:3:88","type":""}],"src":"36738:216:88"},{"body":{"nativeSrc":"37133:234:88","nodeType":"YulBlock","src":"37133:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37150:9:88","nodeType":"YulIdentifier","src":"37150:9:88"},{"kind":"number","nativeSrc":"37161:2:88","nodeType":"YulLiteral","src":"37161:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37143:6:88","nodeType":"YulIdentifier","src":"37143:6:88"},"nativeSrc":"37143:21:88","nodeType":"YulFunctionCall","src":"37143:21:88"},"nativeSrc":"37143:21:88","nodeType":"YulExpressionStatement","src":"37143:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37184:9:88","nodeType":"YulIdentifier","src":"37184:9:88"},{"kind":"number","nativeSrc":"37195:2:88","nodeType":"YulLiteral","src":"37195:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37180:3:88","nodeType":"YulIdentifier","src":"37180:3:88"},"nativeSrc":"37180:18:88","nodeType":"YulFunctionCall","src":"37180:18:88"},{"kind":"number","nativeSrc":"37200:2:88","nodeType":"YulLiteral","src":"37200:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"37173:6:88","nodeType":"YulIdentifier","src":"37173:6:88"},"nativeSrc":"37173:30:88","nodeType":"YulFunctionCall","src":"37173:30:88"},"nativeSrc":"37173:30:88","nodeType":"YulExpressionStatement","src":"37173:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37223:9:88","nodeType":"YulIdentifier","src":"37223:9:88"},{"kind":"number","nativeSrc":"37234:2:88","nodeType":"YulLiteral","src":"37234:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37219:3:88","nodeType":"YulIdentifier","src":"37219:3:88"},"nativeSrc":"37219:18:88","nodeType":"YulFunctionCall","src":"37219:18:88"},{"hexValue":"5363616c6520746f6f20736d616c6c2c2063616e206c65616420746f20726f75","kind":"string","nativeSrc":"37239:34:88","nodeType":"YulLiteral","src":"37239:34:88","type":"","value":"Scale too small, can lead to rou"}],"functionName":{"name":"mstore","nativeSrc":"37212:6:88","nodeType":"YulIdentifier","src":"37212:6:88"},"nativeSrc":"37212:62:88","nodeType":"YulFunctionCall","src":"37212:62:88"},"nativeSrc":"37212:62:88","nodeType":"YulExpressionStatement","src":"37212:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37294:9:88","nodeType":"YulIdentifier","src":"37294:9:88"},{"kind":"number","nativeSrc":"37305:2:88","nodeType":"YulLiteral","src":"37305:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37290:3:88","nodeType":"YulIdentifier","src":"37290:3:88"},"nativeSrc":"37290:18:88","nodeType":"YulFunctionCall","src":"37290:18:88"},{"hexValue":"6e64696e67206572726f7273","kind":"string","nativeSrc":"37310:14:88","nodeType":"YulLiteral","src":"37310:14:88","type":"","value":"nding errors"}],"functionName":{"name":"mstore","nativeSrc":"37283:6:88","nodeType":"YulIdentifier","src":"37283:6:88"},"nativeSrc":"37283:42:88","nodeType":"YulFunctionCall","src":"37283:42:88"},"nativeSrc":"37283:42:88","nodeType":"YulExpressionStatement","src":"37283:42:88"},{"nativeSrc":"37334:27:88","nodeType":"YulAssignment","src":"37334:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37346:9:88","nodeType":"YulIdentifier","src":"37346:9:88"},{"kind":"number","nativeSrc":"37357:3:88","nodeType":"YulLiteral","src":"37357:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37342:3:88","nodeType":"YulIdentifier","src":"37342:3:88"},"nativeSrc":"37342:19:88","nodeType":"YulFunctionCall","src":"37342:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37334:4:88","nodeType":"YulIdentifier","src":"37334:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d369f1e0591c8baf1c39294b2efa376640bb78056cd7ce3183f426fa44af6ddc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36959:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37110:9:88","nodeType":"YulTypedName","src":"37110:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37124:4:88","nodeType":"YulTypedName","src":"37124:4:88","type":""}],"src":"36959:408:88"},{"body":{"nativeSrc":"37546:232:88","nodeType":"YulBlock","src":"37546:232:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37563:9:88","nodeType":"YulIdentifier","src":"37563:9:88"},{"kind":"number","nativeSrc":"37574:2:88","nodeType":"YulLiteral","src":"37574:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37556:6:88","nodeType":"YulIdentifier","src":"37556:6:88"},"nativeSrc":"37556:21:88","nodeType":"YulFunctionCall","src":"37556:21:88"},"nativeSrc":"37556:21:88","nodeType":"YulExpressionStatement","src":"37556:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37597:9:88","nodeType":"YulIdentifier","src":"37597:9:88"},{"kind":"number","nativeSrc":"37608:2:88","nodeType":"YulLiteral","src":"37608:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37593:3:88","nodeType":"YulIdentifier","src":"37593:3:88"},"nativeSrc":"37593:18:88","nodeType":"YulFunctionCall","src":"37593:18:88"},{"kind":"number","nativeSrc":"37613:2:88","nodeType":"YulLiteral","src":"37613:2:88","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"37586:6:88","nodeType":"YulIdentifier","src":"37586:6:88"},"nativeSrc":"37586:30:88","nodeType":"YulFunctionCall","src":"37586:30:88"},"nativeSrc":"37586:30:88","nodeType":"YulExpressionStatement","src":"37586:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37636:9:88","nodeType":"YulIdentifier","src":"37636:9:88"},{"kind":"number","nativeSrc":"37647:2:88","nodeType":"YulLiteral","src":"37647:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37632:3:88","nodeType":"YulIdentifier","src":"37632:3:88"},"nativeSrc":"37632:18:88","nodeType":"YulFunctionCall","src":"37632:18:88"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"37652:34:88","nodeType":"YulLiteral","src":"37652:34:88","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"37625:6:88","nodeType":"YulIdentifier","src":"37625:6:88"},"nativeSrc":"37625:62:88","nodeType":"YulFunctionCall","src":"37625:62:88"},"nativeSrc":"37625:62:88","nodeType":"YulExpressionStatement","src":"37625:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37707:9:88","nodeType":"YulIdentifier","src":"37707:9:88"},{"kind":"number","nativeSrc":"37718:2:88","nodeType":"YulLiteral","src":"37718:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37703:3:88","nodeType":"YulIdentifier","src":"37703:3:88"},"nativeSrc":"37703:18:88","nodeType":"YulFunctionCall","src":"37703:18:88"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"37723:12:88","nodeType":"YulLiteral","src":"37723:12:88","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"37696:6:88","nodeType":"YulIdentifier","src":"37696:6:88"},"nativeSrc":"37696:40:88","nodeType":"YulFunctionCall","src":"37696:40:88"},"nativeSrc":"37696:40:88","nodeType":"YulExpressionStatement","src":"37696:40:88"},{"nativeSrc":"37745:27:88","nodeType":"YulAssignment","src":"37745:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37757:9:88","nodeType":"YulIdentifier","src":"37757:9:88"},{"kind":"number","nativeSrc":"37768:3:88","nodeType":"YulLiteral","src":"37768:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37753:3:88","nodeType":"YulIdentifier","src":"37753:3:88"},"nativeSrc":"37753:19:88","nodeType":"YulFunctionCall","src":"37753:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37745:4:88","nodeType":"YulIdentifier","src":"37745:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37372:406:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37523:9:88","nodeType":"YulTypedName","src":"37523:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37537:4:88","nodeType":"YulTypedName","src":"37537:4:88","type":""}],"src":"37372:406:88"},{"body":{"nativeSrc":"37957:228:88","nodeType":"YulBlock","src":"37957:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37974:9:88","nodeType":"YulIdentifier","src":"37974:9:88"},{"kind":"number","nativeSrc":"37985:2:88","nodeType":"YulLiteral","src":"37985:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37967:6:88","nodeType":"YulIdentifier","src":"37967:6:88"},"nativeSrc":"37967:21:88","nodeType":"YulFunctionCall","src":"37967:21:88"},"nativeSrc":"37967:21:88","nodeType":"YulExpressionStatement","src":"37967:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38008:9:88","nodeType":"YulIdentifier","src":"38008:9:88"},{"kind":"number","nativeSrc":"38019:2:88","nodeType":"YulLiteral","src":"38019:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38004:3:88","nodeType":"YulIdentifier","src":"38004:3:88"},"nativeSrc":"38004:18:88","nodeType":"YulFunctionCall","src":"38004:18:88"},{"kind":"number","nativeSrc":"38024:2:88","nodeType":"YulLiteral","src":"38024:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"37997:6:88","nodeType":"YulIdentifier","src":"37997:6:88"},"nativeSrc":"37997:30:88","nodeType":"YulFunctionCall","src":"37997:30:88"},"nativeSrc":"37997:30:88","nodeType":"YulExpressionStatement","src":"37997:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38047:9:88","nodeType":"YulIdentifier","src":"38047:9:88"},{"kind":"number","nativeSrc":"38058:2:88","nodeType":"YulLiteral","src":"38058:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38043:3:88","nodeType":"YulIdentifier","src":"38043:3:88"},"nativeSrc":"38043:18:88","nodeType":"YulFunctionCall","src":"38043:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"38063:34:88","nodeType":"YulLiteral","src":"38063:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"38036:6:88","nodeType":"YulIdentifier","src":"38036:6:88"},"nativeSrc":"38036:62:88","nodeType":"YulFunctionCall","src":"38036:62:88"},"nativeSrc":"38036:62:88","nodeType":"YulExpressionStatement","src":"38036:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38118:9:88","nodeType":"YulIdentifier","src":"38118:9:88"},{"kind":"number","nativeSrc":"38129:2:88","nodeType":"YulLiteral","src":"38129:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38114:3:88","nodeType":"YulIdentifier","src":"38114:3:88"},"nativeSrc":"38114:18:88","nodeType":"YulFunctionCall","src":"38114:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"38134:8:88","nodeType":"YulLiteral","src":"38134:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"38107:6:88","nodeType":"YulIdentifier","src":"38107:6:88"},"nativeSrc":"38107:36:88","nodeType":"YulFunctionCall","src":"38107:36:88"},"nativeSrc":"38107:36:88","nodeType":"YulExpressionStatement","src":"38107:36:88"},{"nativeSrc":"38152:27:88","nodeType":"YulAssignment","src":"38152:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38164:9:88","nodeType":"YulIdentifier","src":"38164:9:88"},{"kind":"number","nativeSrc":"38175:3:88","nodeType":"YulLiteral","src":"38175:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38160:3:88","nodeType":"YulIdentifier","src":"38160:3:88"},"nativeSrc":"38160:19:88","nodeType":"YulFunctionCall","src":"38160:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38152:4:88","nodeType":"YulIdentifier","src":"38152:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37783:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37934:9:88","nodeType":"YulTypedName","src":"37934:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37948:4:88","nodeType":"YulTypedName","src":"37948:4:88","type":""}],"src":"37783:402:88"},{"body":{"nativeSrc":"38319:145:88","nodeType":"YulBlock","src":"38319:145:88","statements":[{"nativeSrc":"38329:26:88","nodeType":"YulAssignment","src":"38329:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38341:9:88","nodeType":"YulIdentifier","src":"38341:9:88"},{"kind":"number","nativeSrc":"38352:2:88","nodeType":"YulLiteral","src":"38352:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38337:3:88","nodeType":"YulIdentifier","src":"38337:3:88"},"nativeSrc":"38337:18:88","nodeType":"YulFunctionCall","src":"38337:18:88"},"variableNames":[{"name":"tail","nativeSrc":"38329:4:88","nodeType":"YulIdentifier","src":"38329:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38371:9:88","nodeType":"YulIdentifier","src":"38371:9:88"},{"arguments":[{"name":"value0","nativeSrc":"38386:6:88","nodeType":"YulIdentifier","src":"38386:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38402:3:88","nodeType":"YulLiteral","src":"38402:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"38407:1:88","nodeType":"YulLiteral","src":"38407:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"38398:3:88","nodeType":"YulIdentifier","src":"38398:3:88"},"nativeSrc":"38398:11:88","nodeType":"YulFunctionCall","src":"38398:11:88"},{"kind":"number","nativeSrc":"38411:1:88","nodeType":"YulLiteral","src":"38411:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"38394:3:88","nodeType":"YulIdentifier","src":"38394:3:88"},"nativeSrc":"38394:19:88","nodeType":"YulFunctionCall","src":"38394:19:88"}],"functionName":{"name":"and","nativeSrc":"38382:3:88","nodeType":"YulIdentifier","src":"38382:3:88"},"nativeSrc":"38382:32:88","nodeType":"YulFunctionCall","src":"38382:32:88"}],"functionName":{"name":"mstore","nativeSrc":"38364:6:88","nodeType":"YulIdentifier","src":"38364:6:88"},"nativeSrc":"38364:51:88","nodeType":"YulFunctionCall","src":"38364:51:88"},"nativeSrc":"38364:51:88","nodeType":"YulExpressionStatement","src":"38364:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38435:9:88","nodeType":"YulIdentifier","src":"38435:9:88"},{"kind":"number","nativeSrc":"38446:2:88","nodeType":"YulLiteral","src":"38446:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38431:3:88","nodeType":"YulIdentifier","src":"38431:3:88"},"nativeSrc":"38431:18:88","nodeType":"YulFunctionCall","src":"38431:18:88"},{"name":"value1","nativeSrc":"38451:6:88","nodeType":"YulIdentifier","src":"38451:6:88"}],"functionName":{"name":"mstore","nativeSrc":"38424:6:88","nodeType":"YulIdentifier","src":"38424:6:88"},"nativeSrc":"38424:34:88","nodeType":"YulFunctionCall","src":"38424:34:88"},"nativeSrc":"38424:34:88","nodeType":"YulExpressionStatement","src":"38424:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"38190:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38280:9:88","nodeType":"YulTypedName","src":"38280:9:88","type":""},{"name":"value1","nativeSrc":"38291:6:88","nodeType":"YulTypedName","src":"38291:6:88","type":""},{"name":"value0","nativeSrc":"38299:6:88","nodeType":"YulTypedName","src":"38299:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38310:4:88","nodeType":"YulTypedName","src":"38310:4:88","type":""}],"src":"38190:274:88"},{"body":{"nativeSrc":"38643:179:88","nodeType":"YulBlock","src":"38643:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38660:9:88","nodeType":"YulIdentifier","src":"38660:9:88"},{"kind":"number","nativeSrc":"38671:2:88","nodeType":"YulLiteral","src":"38671:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38653:6:88","nodeType":"YulIdentifier","src":"38653:6:88"},"nativeSrc":"38653:21:88","nodeType":"YulFunctionCall","src":"38653:21:88"},"nativeSrc":"38653:21:88","nodeType":"YulExpressionStatement","src":"38653:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38694:9:88","nodeType":"YulIdentifier","src":"38694:9:88"},{"kind":"number","nativeSrc":"38705:2:88","nodeType":"YulLiteral","src":"38705:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38690:3:88","nodeType":"YulIdentifier","src":"38690:3:88"},"nativeSrc":"38690:18:88","nodeType":"YulFunctionCall","src":"38690:18:88"},{"kind":"number","nativeSrc":"38710:2:88","nodeType":"YulLiteral","src":"38710:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"38683:6:88","nodeType":"YulIdentifier","src":"38683:6:88"},"nativeSrc":"38683:30:88","nodeType":"YulFunctionCall","src":"38683:30:88"},"nativeSrc":"38683:30:88","nodeType":"YulExpressionStatement","src":"38683:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38733:9:88","nodeType":"YulIdentifier","src":"38733:9:88"},{"kind":"number","nativeSrc":"38744:2:88","nodeType":"YulLiteral","src":"38744:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38729:3:88","nodeType":"YulIdentifier","src":"38729:3:88"},"nativeSrc":"38729:18:88","nodeType":"YulFunctionCall","src":"38729:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"38749:31:88","nodeType":"YulLiteral","src":"38749:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"38722:6:88","nodeType":"YulIdentifier","src":"38722:6:88"},"nativeSrc":"38722:59:88","nodeType":"YulFunctionCall","src":"38722:59:88"},"nativeSrc":"38722:59:88","nodeType":"YulExpressionStatement","src":"38722:59:88"},{"nativeSrc":"38790:26:88","nodeType":"YulAssignment","src":"38790:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38802:9:88","nodeType":"YulIdentifier","src":"38802:9:88"},{"kind":"number","nativeSrc":"38813:2:88","nodeType":"YulLiteral","src":"38813:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38798:3:88","nodeType":"YulIdentifier","src":"38798:3:88"},"nativeSrc":"38798:18:88","nodeType":"YulFunctionCall","src":"38798:18:88"},"variableNames":[{"name":"tail","nativeSrc":"38790:4:88","nodeType":"YulIdentifier","src":"38790:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38469:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38620:9:88","nodeType":"YulTypedName","src":"38620:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38634:4:88","nodeType":"YulTypedName","src":"38634:4:88","type":""}],"src":"38469:353:88"},{"body":{"nativeSrc":"39001:228:88","nodeType":"YulBlock","src":"39001:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39018:9:88","nodeType":"YulIdentifier","src":"39018:9:88"},{"kind":"number","nativeSrc":"39029:2:88","nodeType":"YulLiteral","src":"39029:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39011:6:88","nodeType":"YulIdentifier","src":"39011:6:88"},"nativeSrc":"39011:21:88","nodeType":"YulFunctionCall","src":"39011:21:88"},"nativeSrc":"39011:21:88","nodeType":"YulExpressionStatement","src":"39011:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39052:9:88","nodeType":"YulIdentifier","src":"39052:9:88"},{"kind":"number","nativeSrc":"39063:2:88","nodeType":"YulLiteral","src":"39063:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39048:3:88","nodeType":"YulIdentifier","src":"39048:3:88"},"nativeSrc":"39048:18:88","nodeType":"YulFunctionCall","src":"39048:18:88"},{"kind":"number","nativeSrc":"39068:2:88","nodeType":"YulLiteral","src":"39068:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"39041:6:88","nodeType":"YulIdentifier","src":"39041:6:88"},"nativeSrc":"39041:30:88","nodeType":"YulFunctionCall","src":"39041:30:88"},"nativeSrc":"39041:30:88","nodeType":"YulExpressionStatement","src":"39041:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39091:9:88","nodeType":"YulIdentifier","src":"39091:9:88"},{"kind":"number","nativeSrc":"39102:2:88","nodeType":"YulLiteral","src":"39102:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39087:3:88","nodeType":"YulIdentifier","src":"39087:3:88"},"nativeSrc":"39087:18:88","nodeType":"YulFunctionCall","src":"39087:18:88"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"39107:34:88","nodeType":"YulLiteral","src":"39107:34:88","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"39080:6:88","nodeType":"YulIdentifier","src":"39080:6:88"},"nativeSrc":"39080:62:88","nodeType":"YulFunctionCall","src":"39080:62:88"},"nativeSrc":"39080:62:88","nodeType":"YulExpressionStatement","src":"39080:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39162:9:88","nodeType":"YulIdentifier","src":"39162:9:88"},{"kind":"number","nativeSrc":"39173:2:88","nodeType":"YulLiteral","src":"39173:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39158:3:88","nodeType":"YulIdentifier","src":"39158:3:88"},"nativeSrc":"39158:18:88","nodeType":"YulFunctionCall","src":"39158:18:88"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"39178:8:88","nodeType":"YulLiteral","src":"39178:8:88","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"39151:6:88","nodeType":"YulIdentifier","src":"39151:6:88"},"nativeSrc":"39151:36:88","nodeType":"YulFunctionCall","src":"39151:36:88"},"nativeSrc":"39151:36:88","nodeType":"YulExpressionStatement","src":"39151:36:88"},{"nativeSrc":"39196:27:88","nodeType":"YulAssignment","src":"39196:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39208:9:88","nodeType":"YulIdentifier","src":"39208:9:88"},{"kind":"number","nativeSrc":"39219:3:88","nodeType":"YulLiteral","src":"39219:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39204:3:88","nodeType":"YulIdentifier","src":"39204:3:88"},"nativeSrc":"39204:19:88","nodeType":"YulFunctionCall","src":"39204:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39196:4:88","nodeType":"YulIdentifier","src":"39196:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38827:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38978:9:88","nodeType":"YulTypedName","src":"38978:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38992:4:88","nodeType":"YulTypedName","src":"38992:4:88","type":""}],"src":"38827:402:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array_1 := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 96))\n        value3 := value_1\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_ILPWhitelist_$23596(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_contract$_ILPWhitelist_$23596__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_int256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23434t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 4)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_6d155e240f804fa0eeb0a5491fcdc9b8bb9a757c02651f39e3146fd6caebc628__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Liquidity Provider not whitelist\")\n        mstore(add(headStart, 96), \"ed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1cf1ab238fe0c20d0965ab656551a00d67270e19d01bff76f89ab5be56d067ea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Deposit rejected - Utilization R\")\n        mstore(add(headStart, 96), \"ate < min\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_int256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_2cdf5d6e738cd67ef81dd094dc3f2088c67f0a4a335e7178fe3df4e63c49d7c1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"EToken: Borrower cannot be the z\")\n        mstore(add(headStart, 96), \"ero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8fc949ae25110667b87c481d2b4db0ccd0143bf4577ebd2d92c71ac972ca62f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"The caller must be a borrower\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_03581280538719c2020c894a210ef9aa558c82c902fd12bce0931000f73b74ae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Not enough funds available to co\")\n        mstore(add(headStart, 96), \"ver the SCR\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_03a1e1b89e58377f2c0f6a93d779f49357e1a1620aec4af8836f21e8fdf00fbd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Component not linked to this Pol\")\n        mstore(add(headStart, 96), \"icyPool\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_babc3112dd6ff1c8e9dfffb357f2e4b17a7ff714d277263ea98972627be8be19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"EToken: amount should be greater\")\n        mstore(add(headStart, 96), \" than zero.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_660103f2c97657862acfcfb2c2e75a895efcedaeb2e8c4df1f6eced083faf0ec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Not a registered borrower\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_33e71d7bfeeadcffefd2e7f551031f6769c33c0ba79cbf34d01052008213b61e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"EToken: decreased allowance belo\")\n        mstore(add(headStart, 96), \"w zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24ef78e89ef45c3eec4ad876eb521dca8aa5807bbc61071cdd2ffeab164da79e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Current SCR less than the amount\")\n        mstore(add(headStart, 96), \" you want to unlock\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function negate_t_int256(value) -> ret\n    {\n        if eq(value, shl(255, 1)) { panic_error_0x11() }\n        ret := sub(0, value)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), \"Reserve: asset manager doesn't i\")\n        mstore(add(headStart, 96), \"mplements the required interface\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_77f7550e99cfae6f48d896697b1fd5549402978fb8c71ca77dd0631d76531f0d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"amount > max withdrawable\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e22d4b76cddf749021acbaffeb21586d2eddcc3413a241b2458b22b9d569598d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"EToken: approve from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8f2f6229ccd48e6ded11f90b09020d2d605afd986dfc1dc96af3fe98ef412b14__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"EToken: approve to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3406c0466d0912ad8f34c77eb032a772c722fa4ced2b9160a821ce7a76316ecb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"EToken: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ae4199242667364260c775cebec97ad3ad9108abef60e71dd3b366486b317dbe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"EToken: transfer from the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d4e62c43d6dc168374092f2c8d3a0a07ef5767b05389925edc989db39e9a46f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"EToken: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3020e2e2e5d51ac5ca552375a258790bbdeb16e01029ecb426ea961f96df04d6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"EToken: transfer amount exceeds \")\n        mstore(add(headStart, 96), \"balance\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_c092a48c5eeae749b2c36eb0157cd57f63b61df63925be968fc9a4b317f67bd1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"EToken: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f4873caaa3c69fd270042095be0af896c3dfb019459ae29b1f19ebb714595cfd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"EToken: amount to mint should be\")\n        mstore(add(headStart, 96), \" greater than zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_09cd67821602a67e6869db7fdf6f889c81d8f4753f4bbab0d8ffed14a386f25a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"EToken: name cannot be empty\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_73e0940cdd0dffdba87d1c2e460c0dadb528289849600fb24e2f2253f9b58f4d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"EToken: symbol cannot be empty\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function checked_sub_t_uint32(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffff), and(y, 0xffffffff))\n        if gt(diff, 0xffffffff) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"28 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 6\")\n        mstore(add(headStart, 96), \"4 bits\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint112(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffff))\n        if gt(diff, 0xffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function checked_add_t_uint112(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffff))\n        if gt(sum, 0xffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Reserve: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b76e407d663bf824398ea9cf3672c614c9d61dd7fa70376ae2b86de2f90ab5d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"EToken: burn from the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1cbf7542358884c15d276707c7804fa59675a48013fdf3bc6c452d05bb62300a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"EToken: burn amount exceeds bala\")\n        mstore(add(headStart, 96), \"nce\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_contract$_EToken_$13571_t_address_t_address_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_stringliteral_2376e8656d108fa259440a6257d5c2afd65e5925665da06a3ef148c4e812fffb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"Transfer not allowed - Liquidity\")\n        mstore(add(headStart, 96), \" Provider not whitelisted\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ce2f886aa6f4a7c4a12260f96967c0c0bbf0de5a1ffbc7579742ee06be1b2f07__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Validation: liquidityRequirement\")\n        mstore(add(headStart, 96), \" must be [0.8, 1.3]\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_111ada2e996f715d2077bb2234aa57f237cb218f36507eb4780a69c700bee9ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Validation: maxUtilizationRate m\")\n        mstore(add(headStart, 96), \"ust be [0.5, 1]\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_589184136a3b919d9f00ff2f2274337cfa9fb4d8f034bde634ff7a801349f9d6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"Validation: minUtilizationRate m\")\n        mstore(add(headStart, 96), \"ust be [0, 1]\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3c6787565a0ce9e399f754cca5a3dff36739caf63c11aea68e06f0210b1b136d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Validation: internalLoanInterest\")\n        mstore(add(headStart, 96), \"Rate must be <= 50%\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"12 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 9\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_int256(x, y) -> sum\n    {\n        sum := add(x, y)\n        let _1 := slt(sum, y)\n        let _2 := slt(x, 0)\n        if or(and(iszero(_2), _1), and(_2, iszero(_1))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_d369f1e0591c8baf1c39294b2efa376640bb78056cd7ce3183f426fa44af6ddc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Scale too small, can lead to rou\")\n        mstore(add(headStart, 96), \"nding errors\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":3536},{"length":32,"start":3609},{"length":32,"start":4571},{"length":32,"start":4635},{"length":32,"start":4933}],"17733":[{"length":32,"start":1457},{"length":32,"start":2958},{"length":32,"start":3263},{"length":32,"start":3818},{"length":32,"start":4056},{"length":32,"start":5589},{"length":32,"start":6576},{"length":32,"start":6834},{"length":32,"start":7075},{"length":32,"start":8547},{"length":32,"start":9428},{"length":32,"start":10396},{"length":32,"start":10635},{"length":32,"start":10790},{"length":32,"start":12404},{"length":32,"start":16841}],"19710":[{"length":32,"start":15935}]},"linkReferences":{},"object":"608060405260043610610341575f3560e01c806376c7fc55116101bd578063b1081ccf116100f2578063d80359f111610092578063e3a8e29c1161006d578063e3a8e29c14610960578063e5a6b10f1461097f578063ee01a18314610993578063f3fef3a3146109a7575f5ffd5b8063d80359f11461090e578063dd62ed3e1461092d578063dfcb48bd1461094c575f5ffd5b8063c1cca2b3116100cd578063c1cca2b3146108a8578063c2c4c5c1146108c7578063c3df9dac146108db578063cda4bcc2146108fa575f5ffd5b8063b1081ccf14610850578063b1bf962d1461086f578063ba4e8df514610894575f5ffd5b806393e59dc11161015d5780639d90724d116101385780639d90724d146107d9578063a08f2203146107fe578063a457c2d714610812578063a9059cbb14610831575f5ffd5b806393e59dc11461078257806394217ad1146107a757806395d89b41146107c5575f5ffd5b8063837c83a311610198578063837c83a3146107115780638456cb5914610730578063854cff2f14610744578063918344d314610763575f5ffd5b806376c7fc55146106bf57806379d989fb146106de5780637d7c2a1c146106fd575f5ffd5b80633659cfe6116102935780634fe0bd1e116102335780636c321c8a1161020e5780636c321c8a1461064f5780636c6f4542146106635780636fe0e3951461068157806370a08231146106a0575f5ffd5b80634fe0bd1e1461061057806352d1902d146106245780635c975abb14610638575f5ffd5b806347e7ef241161026e57806347e7ef24146105845780634d15eb03146105a35780634eb978a4146105e95780634f1ef286146105fd575f5ffd5b80633659cfe61461053057806339509351146105515780633f4ba83a14610570575f5ffd5b806316db000f116102fe5780631e9c4658116102d95780631e9c4658146104ad57806323b872dd146104cc578063313ce567146104eb57806333481fc914610511575f5ffd5b806316db000f1461045057806318160ddd146104645780631da24f3e14610478575f5ffd5b806301ffc9a7146103455780630600a8651461037957806306fdde031461039b578063095ea7b3146103bc5780630afbcdc9146103db578063159ec2df1461043c575b5f5ffd5b348015610350575f5ffd5b5061036461035f366004614c76565b6109c6565b60405190151581526020015b60405180910390f35b348015610384575f5ffd5b5061038d610a27565b604051908152602001610370565b3480156103a6575f5ffd5b506103af610a74565b6040516103709190614ccb565b3480156103c7575f5ffd5b506103646103d6366004614cf1565b610b05565b3480156103e6575f5ffd5b506104276103f5366004614d1b565b6001600160a01b03165f90815261012d6020526040902054610131549091600160701b9091046001600160701b031690565b60408051928352602083019190915201610370565b348015610447575f5ffd5b5061038d610b1a565b34801561045b575f5ffd5b5061038d610b31565b34801561046f575f5ffd5b5061038d610b54565b348015610483575f5ffd5b5061038d610492366004614d1b565b6001600160a01b03165f90815261012d602052604090205490565b3480156104b8575f5ffd5b506103af6104c7366004614dd9565b610b69565b3480156104d7575f5ffd5b506103646104e6366004614e0a565b610c99565b3480156104f6575f5ffd5b506104ff610cbc565b60405160ff9091168152602001610370565b34801561051c575f5ffd5b5061038d61052b366004614d1b565b610d9c565b34801561053b575f5ffd5b5061054f61054a366004614d1b565b610dc6565b005b34801561055c575f5ffd5b5061036461056b366004614cf1565b610eac565b34801561057b575f5ffd5b5061054f610ecc565b34801561058f575f5ffd5b5061038d61059e366004614cf1565b610fd4565b3480156105ae575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610370565b3480156105f4575f5ffd5b5061054f611169565b61054f61060b366004614e48565b6111d1565b34801561061b575f5ffd5b5061038d61129c565b34801561062f575f5ffd5b5061038d611339565b348015610643575f5ffd5b5060975460ff16610364565b34801561065a575f5ffd5b5061038d6113ea565b34801561066e575f5ffd5b50610132546001600160801b031661038d565b34801561068c575f5ffd5b5061054f61069b366004614e94565b611461565b3480156106ab575f5ffd5b5061038d6106ba366004614d1b565b61157c565b3480156106ca575f5ffd5b5061054f6106d9366004614d1b565b6115d2565b3480156106e9575f5ffd5b5061038d6106f8366004614f13565b6116a8565b348015610708575f5ffd5b5061054f6116d1565b34801561071c575f5ffd5b5061054f61072b366004614f2e565b611719565b34801561073b575f5ffd5b5061054f6119a0565b34801561074f575f5ffd5b5061054f61075e366004614d1b565b611a94565b34801561076e575f5ffd5b5061054f61077d366004614f4e565b611cc7565b34801561078d575f5ffd5b5061013454600160401b90046001600160a01b03166105d1565b3480156107b2575f5ffd5b50610135546001600160a01b03166105d1565b3480156107d0575f5ffd5b506103af611e27565b3480156107e4575f5ffd5b5061013254600160801b90046001600160401b031661038d565b348015610809575f5ffd5b5061038d611e37565b34801561081d575f5ffd5b5061036461082c366004614cf1565b611eaa565b34801561083c575f5ffd5b5061036461084b366004614cf1565b611f46565b34801561085b575f5ffd5b5061054f61086a366004614f7c565b611f52565b34801561087a575f5ffd5b5061013154600160701b90046001600160701b031661038d565b34801561089f575f5ffd5b5061038d61212d565b3480156108b3575f5ffd5b5061054f6108c2366004614fa5565b612140565b3480156108d2575f5ffd5b5061054f612394565b3480156108e6575f5ffd5b5061038d6108f5366004614f4e565b6123ae565b348015610905575f5ffd5b5061038d61249c565b348015610919575f5ffd5b5061054f610928366004614fc4565b6124b6565b348015610938575f5ffd5b5061038d610947366004614ff0565b612853565b348015610957575f5ffd5b5061038d61287e565b34801561096b575f5ffd5b5061054f61097a366004614d1b565b612899565b34801561098a575f5ffd5b506105d1612988565b34801561099e575f5ffd5b5061038d612a09565b3480156109b2575f5ffd5b5061038d6109c1366004614cf1565b612a22565b5f6109d082612bcc565b806109eb57506001600160e01b031982166336372b0760e01b145b80610a0657506001600160e01b0319821663a219a02560e01b145b80610a2157506001600160e01b03198216639077062160e01b145b92915050565b5f5f610a47610a3461212d565b610132546001600160801b031690612c01565b90505f610a52610b54565b9050818110610a6c57610a658282615030565b9250505090565b5f9250505090565b606061012f8054610a8490615043565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090615043565b8015610afb5780601f10610ad257610100808354040283529160200191610afb565b820191905f5260205f20905b815481529060010190602001808311610ade57829003601f168201915b5050505050905090565b5f610b11338484612c37565b50600192915050565b61013254600160c01b90046001600160401b031690565b5f610b3d610131612d5f565b610b45610b54565b610b4f9190615030565b905090565b5f610b4f610b60610b1a565b61013190612d8e565b60607fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610c3e9493929190615090565b5f6040518083038186803b158015610c54575f5ffd5b505afa158015610c66573d5f5f3e3d5ffd5b50505050610c9083610c81610135546001600160a01b031690565b6001600160a01b031690612dba565b91505b50919050565b5f33610ca6858285612ddf565b610cb1858585612e57565b506001949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3d9190615075565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4f91906150ba565b6001600160a01b0381165f90815261013360205260408120610c90610dbf61249c565b8290612d8e565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e175760405162461bcd60e51b8152600401610e0e906150da565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e5f5f5160206154f35f395f51905f52546001600160a01b031690565b6001600160a01b031614610e855760405162461bcd60e51b8152600401610e0e90615126565b610e8e81613056565b604080515f80825260208201909252610ea99183919061315b565b50565b5f610b11338484610ebd3388612853565b610ec79190615172565b612c37565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f44573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f689190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610f9c959493929190615185565b5f6040518083038186803b158015610fb2575f5ffd5b505afa158015610fc4573d5f5f3e3d5ffd5b50505050610fd06132c5565b5050565b5f337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461101e5760405163799e780f60e01b815260040160405180910390fd5b61013454600160401b90046001600160a01b031615806110bb5750610134546040516337ee20dd60e01b81523060048201526001600160a01b03858116602483015260448201859052600160401b909204909116906337ee20dd90606401602060405180830381865afa158015611097573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bb91906151b8565b6110d75760405162461bcd60e51b8152600401610e0e906151d3565b6110e18383613317565b6110e9613468565b6110f1612a09565b6110f96113ea565b10156111595760405162461bcd60e51b815260206004820152602960248201527f4465706f7369742072656a6563746564202d205574696c697a6174696f6e205260448201526830ba32901e1036b4b760b91b6064820152608401610e0e565b6111628361157c565b9392505050565b611171613567565b6040805160048152602481019091526020810180516001600160e01b03166313ae5e2960e21b1790525f906111b390610c81610135546001600160a01b031690565b9050610ea9818060200190518101906111cc9190615215565b6135ad565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112195760405162461bcd60e51b8152600401610e0e906150da565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112615f5160206154f35f395f51905f52546001600160a01b031690565b6001600160a01b0316146112875760405162461bcd60e51b8152600401610e0e90615126565b61129082613056565b610fd08282600161315b565b5f5f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190615215565b610132549091506001600160801b0316811115611332576101325461132c906001600160801b031682615030565b91505090565b5f91505090565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113d85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610e0e565b505f5160206154f35f395f51905f5290565b5f610b4f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144e9190615215565b610132546001600160801b0316906135b6565b5f54610100900460ff161580801561147f57505f54600160ff909116105b806114985750303b15801561149857505f5460ff166001145b6114fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e0e565b5f805460ff19166001179055801561151c575f805461ff0019166101001790555b6115246135eb565b61153085858585613619565b8015611575575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6001600160a01b0381165f90815261012d60205260408120548082036115a457505f92915050565b610c906115cd6115b3836137f1565b6115c76115be610b1a565b61013190613806565b906138a0565b6138e1565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461161b5760405163799e780f60e01b815260040160405180910390fd5b6001600160a01b0381166116415760405162461bcd60e51b8152600401610e0e9061522c565b5f61164b82610d9c565b6001600160a01b0383165f81815261013360205260408082209190915551919250907fe2ebfbed0df9004eae018a4ae91b24baa0cd1d83f495fab6dde3a1493f9dc6c69061169c9084815260200190565b60405180910390a25050565b5f81156116ba57610a216115be610b1a565b5050610131546001600160701b031690565b919050565b6116d9613567565b6040805160048152602481019091526020810180516001600160e01b0316631f5f0a8760e21b179052610ea990610c81610135546001600160a01b031690565b335f90815261013360205260408120546001600160701b031690036117505760405162461bcd60e51b8152600401610e0e90615277565b611758613567565b306001600160a01b031663a08f22036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611794573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b89190615215565b82111561181b5760405162461bcd60e51b815260206004820152602b60248201527f4e6f7420656e6f7567682066756e647320617661696c61626c6520746f20636f60448201526a3b32b9103a34329029a1a960a91b6064820152608401610e0e565b61182f611826610b1a565b61013190613900565b610132546001600160801b03165f036118a75761184b8261399c565b61013280546001600160801b0319166001600160801b039290921691909117905561187581613a08565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b1990921691909117905561195f565b610132546001600160801b03165f6118bf8483615172565b9050611905611900826118d28688612c01565b610132546118f090600160801b90046001600160401b031687612c01565b6118fa9190615172565b906135b6565b613a08565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b1990921691909117905561193b8161399c565b61013280546001600160801b0319166001600160801b039290921691909117905550505b60408051828152602081018490527f333478c2835efe2f226b0d334f71bdf18c977621845f20d21fff75321fc8ab27910160405180910390a1610fd0613468565b5f51602061555a5f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a0a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2e9190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401611a609493929190615090565b5f6040518083038186803b158015611a76575f5ffd5b505afa158015611a88573d5f5f3e3d5ffd5b50505050610ea9613a6f565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b309190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611b64959493929190615185565b5f6040518083038186803b158015611b7a575f5ffd5b505afa158015611b8c573d5f5f3e3d5ffd5b505050506001600160a01b0383161580611c3657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2b9190615075565b6001600160a01b0316145b611c925760405162461bcd60e51b815260206004820152602760248201527f436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320506f6c6044820152661a58de541bdbdb60ca1b6064820152608401610e0e565b6101348054600160401b600160e01b031916600160401b6001600160a01b03861602179055611cc2601784613aac565b505050565b611ccf613567565b5f8211611d325760405162461bcd60e51b815260206004820152602b60248201527f45546f6b656e3a20616d6f756e742073686f756c64206265206772656174657260448201526a103a3430b7103d32b9379760a91b6064820152608401610e0e565b6001600160a01b0381165f90815261013360205260408120805490916001600160701b039091169003611da75760405162461bcd60e51b815260206004820152601960248201527f4e6f742061207265676973746572656420626f72726f776572000000000000006044820152606401610e0e565b611dbb83611db361249c565b839190613aff565b50611dc583613ba3565b816001600160a01b03167fa1aeb41f04a9a2aa1450e8edd0fa1a0a7971ff65c7bbb7b2ca0379b9327edbaf84604051611e0091815260200190565b60405180910390a2611cc2333085611e16612988565b6001600160a01b0316929190613bc1565b60606101308054610a8490615043565b5f5f6112fe611e4461287e565b306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e80573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea49190615215565b90612c01565b335f90815261012e602090815260408083206001600160a01b038616845290915281205482811015611f2d5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f60448201526577207a65726f60d01b6064820152608401610e0e565b611f3c3385610ec78685615030565b5060019392505050565b5f610b11338484612e57565b335f90815261013360205260408120546001600160701b03169003611f895760405162461bcd60e51b8152600401610e0e90615277565b611f91613567565b610132546001600160801b03168311156120095760405162461bcd60e51b815260206004820152603360248201527f43757272656e7420534352206c657373207468616e2074686520616d6f756e7460448201527220796f752077616e7420746f20756e6c6f636b60681b6064820152608401610e0e565b612014611826610b1a565b610132546001600160801b031683900361203e5761013280546001600160c01b03191690556120eb565b610132546001600160801b03165f6120568583615030565b9050612091611900826120698789612c01565b6101325461208790600160801b90046001600160401b031687612c01565b6118fa9190615030565b61013280546001600160401b0392909216600160801b0267ffffffffffffffff60801b199092169190911790556120c78161399c565b61013280546001600160801b0319166001600160801b039290921691909117905550505b60408051838152602081018590527f7b9d63ccbb37347ce0fe73e3663c640d22364d8c733839777f1729e59af1967f910160405180910390a1611cc281613ba3565b610134545f90610b4f9061ffff16613c2c565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121e19190615075565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016122139493929190615090565b5f6040518083038186803b158015612229575f5ffd5b505afa15801561223b573d5f5f3e3d5ffd5b505f9250612247915050565b836003811115612259576122596152ae565b036122835761226782613c41565b610134805461ffff191661ffff9290921691909117905561235d565b6001836003811115612297576122976152ae565b036122ca576122a582613c41565b610134805461ffff92909216620100000263ffff00001990921691909117905561235d565b60028360038111156122de576122de6152ae565b03612315576122ec82613c41565b610134805461ffff929092166401000000000265ffff000000001990921691909117905561235d565b6003836003811115612329576123296152ae565b0361235d5761233782613c41565b610134805461ffff92909216600160301b0267ffff000000000000199092169190911790555b611cc2836003811115612372576123726152ae565b61237d906018615172565b602d81111561238e5761238e6152ae565b83613c5a565b61239c613567565b6123a4611169565b6123ac6116d1565b565b335f90815261013360205260408120546001600160701b031681036123e55760405162461bcd60e51b8152600401610e0e90615277565b6123ed613567565b826123ff816123fa610b31565b613ca4565b9350835f0361240f579050610a21565b335f908152610133602052604090206124328561242a61249c565b839190613cb9565b5061244461243f866152c2565b613ba3565b61244e8486613d36565b604080518681526020810184905233917f98697a4799dbd9db66c7168304c43cba77a27a50d2785625e09072e0d91fdd53910160405180910390a26124938583615030565b95945050505050565b610134545f90610b4f90600160301b900461ffff16613c2c565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561252e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125529190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401612586959493929190615185565b5f6040518083038186803b15801561259c575f5ffd5b505afa1580156125ae573d5f5f3e3d5ffd5b505050506001600160a01b038416158061263057506040516301ffc9a760e01b8152631e670a9760e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa15801561260c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263091906151b8565b6126a4576040805162461bcd60e51b81526020600482015260248101919091527f526573657276653a206173736574206d616e6167657220646f65736e2774206960448201527f6d706c656d656e74732074686520726571756972656420696e746572666163656064820152608401610e0e565b5f6126b8610135546001600160a01b031690565b905060026001600160a01b038216156127db5784156127815760408051600481526024810182526020810180516001600160e01b031663cec16f3f60e01b17905290515f9182916001600160a01b03861691612713916152dc565b5f60405180830381855af49150503d805f811461274b576040519150601f19603f3d011682016040523d82523d5f602084013e612750565b606091505b509150915081612763576003925061277a565b61277a818060200190518101906111cc9190615215565b50506127db565b6040805160048152602481019091526020810180516001600160e01b031663cec16f3f60e01b1790525f906127c0906001600160a01b03851690612dba565b90506127d9818060200190518101906111cc9190615215565b505b61013580546001600160a01b0319166001600160a01b03881690811790915591508115612841576040805160048152602481019091526020810180516001600160e01b031663948cb71960e01b17905261283f906001600160a01b03841690612dba565b505b61284b8187613aac565b505050505050565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205490565b610134545f90610b4f90640100000000900461ffff16613c2c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146128e25760405163799e780f60e01b815260040160405180910390fd5b6001600160a01b0381166129085760405162461bcd60e51b8152600401610e0e9061522c565b6001600160a01b0381165f90815261013360205260408120805490916001600160701b039091169003610fd057676765c793fa10079d601b1b600160e01b4263ffffffff16021781556040516001600160a01b038316907f66c0f28249c4fc4db79872a4405be78a93f19c65ac9ef2f173867a149065bcf2905f90a25050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4f9190615075565b610134545f90610b4f9062010000900461ffff16613c2c565b5f337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614612a6c5760405163799e780f60e01b815260040160405180910390fd5b5f612a81612a798561157c565b6123fa610a27565b90505f198303612a8f578092505b825f03612a9f575f915050610a21565b80831115612aef5760405162461bcd60e51b815260206004820152601960248201527f616d6f756e74203e206d617820776974686472617761626c65000000000000006044820152606401610e0e565b61013454600160401b90046001600160a01b03161580612b8c575061013454604051639051c76360e01b81523060048201526001600160a01b03868116602483015260448201869052600160401b90920490911690639051c76390606401602060405180830381865afa158015612b68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8c91906151b8565b612ba85760405162461bcd60e51b8152600401610e0e906151d3565b612bb28484613e8f565b612bba613468565b612bc48484613d36565b509092915050565b5f6001600160e01b031982166301ffc9a760e01b1480610a2157506001600160e01b03198216634d15eb0360e01b1492915050565b5f81156706f05b59d3b200001983900484111517612c1d575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b6001600160a01b038316612c9b5760405162461bcd60e51b815260206004820152602560248201527f45546f6b656e3a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610e0e565b6001600160a01b038216612cfd5760405162461bcd60e51b815260206004820152602360248201527f45546f6b656e3a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610e0e565b6001600160a01b038381165f81815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b80545f90610a21906115cd9067016345785d8a0000906115c790600160701b90046001600160701b03166137f1565b5f6111626115cd612d9f8585613806565b85546115c790600160701b90046001600160701b03166137f1565b6060611162838360405180606001604052806027815260200161553360279139613ff0565b5f612dea8484612853565b90505f198114612e515781811015612e445760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e3a20696e73756666696369656e7420616c6c6f77616e636500006044820152606401610e0e565b612e518484848403612c37565b50505050565b6001600160a01b038316612ebc5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e3a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610e0e565b6001600160a01b038216612f1e5760405162461bcd60e51b8152602060048201526024808201527f45546f6b656e3a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610e0e565b612f29838383614064565b5f612f3f612f35610b1a565b61013190846141a7565b6001600160a01b0385165f90815261012d602052604090205490915081811015612fbb5760405162461bcd60e51b815260206004820152602760248201527f45546f6b656e3a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610e0e565b612fc58282615030565b6001600160a01b038087165f90815261012d60205260408082209390935590861681529081208054849290612ffb908490615172565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161304791815260200190565b60405180910390a35050505050565b5f51602061555a5f395f51905f525f5160206155135f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f29190615075565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401613126959493929190615185565b5f6040518083038186803b15801561313c575f5ffd5b505afa15801561314e573d5f5f3e3d5ffd5b50505050611cc2836141c7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561318e57611cc283614278565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156131e8575060408051601f3d908101601f191682019092526131e591810190615215565b60015b61324b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e0e565b5f5160206154f35f395f51905f5281146132b95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e0e565b50611cc2838383614313565b6132cd614337565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661336d5760405162461bcd60e51b815260206004820181905260248201527f45546f6b656e3a206d696e7420746f20746865207a65726f20616464726573736044820152606401610e0e565b5f81116133d75760405162461bcd60e51b815260206004820152603260248201527f45546f6b656e3a20616d6f756e7420746f206d696e742073686f756c642062656044820152712067726561746572207468616e207a65726f60701b6064820152608401610e0e565b6133e25f8383614064565b5f6133f9826133ef610b1a565b6101319190613cb9565b6001600160a01b0384165f90815261012d6020526040812080549293508392909190613426908490615172565b90915550506040518281526001600160a01b038416905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612d52565b5f306001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134c99190615215565b9050805f036134e55761013280546001600160c01b0316905550565b610132545f906135149083906118fa906001600160401b03600160801b820416906001600160801b0316612c01565b90506001600160401b0381116135325761352d81613a08565b61353b565b6001600160401b035b61013280546001600160401b0392909216600160c01b026001600160c01b039092169190911790555050565b60975460ff16156123ac5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610e0e565b610ea981613ba3565b5f8115670de0b6b3a7640000600284041904841117156135d4575f5ffd5b50670de0b6b3a76400009190910260028204010490565b5f54610100900460ff166136115760405162461bcd60e51b8152600401610e0e906152f2565b6123ac614380565b5f54610100900460ff1661363f5760405162461bcd60e51b8152600401610e0e906152f2565b5f84511161368f5760405162461bcd60e51b815260206004820152601c60248201527f45546f6b656e3a206e616d652063616e6e6f7420626520656d707479000000006044820152606401610e0e565b5f8351116136df5760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e3a2073796d626f6c2063616e6e6f7420626520656d70747900006044820152606401610e0e565b61012f6136ec8582615381565b506101306136fa8482615381565b50676765c793fa10079d601b1b600160e01b4263ffffffff160217610131556040805160a08101825261271081525f602082015290810161373a84613c41565b61ffff16815260200161374c83613c41565b61ffff90811682525f6020928301528251610134805493850151604086015160608701516080909701516001600160a01b0316600160401b02600160401b600160e01b0319978616600160301b0267ffff00000000000019928716640100000000029290921667ffffffff0000000019938716620100000263ffffffff1990981695909616949094179590951716929092179290921792909216179055612e516143b6565b633b9aca0081810290810482146116cc575f5ffd5b81545f90429063ffffffff808316600160e01b909204161061383457505081546001600160701b0316610a21565b83545f9061384f90600160e01b900463ffffffff168361543b565b63ffffffff169050612493676765c793fa10079d601b1b6301e1338083613875886137f1565b61387f9190615457565b613889919061546e565b6138939190615172565b86546001600160701b0316905b5f81156b019d971e4fe8401e7400000019839004841115176138c0575f5ffd5b50676765c793fa10079d601b1b91026b019d971e4fe8401e74000000010490565b633b9aca00808204908206631dcd65008110610c935750600101919050565b815463ffffffff428116600160e01b909204161061391c575050565b8154600160701b90046001600160701b03165f03613952575080546001600160e01b0316600160e01b4263ffffffff1602179055565b61396461395f8383613806565b6145cf565b82546001600160701b03919091166dffffffffffffffffffffffffffff60701b90911617600160e01b4263ffffffff16021790915550565b5f6001600160801b03821115613a045760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610e0e565b5090565b5f6001600160401b03821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610e0e565b613a77613567565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132fa3390565b613ab46143b6565b81602d811115613ac657613ac66152ae565b6040516001600160a01b03831681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200161169c565b5f613b0a8483613900565b5f613b158585614637565b9050613b2081614655565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316613b4d919061548d565b82546101009290920a6001600160701b038181021990931691831602179091558654600160701b9004165f039050613b9b5784546001600160701b031916676765c793fa10079d601b1b1785555b949350505050565b613bb981613baf610b1a565b61013191906146bc565b610ea9613468565b6040516001600160a01b0380851660248301528316604482015260648101829052612e519085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526147b7565b5f610a21655af3107a400061ffff8416615457565b5f610a21613c55655af3107a40008461546e565b61488a565b613c626143b6565b81602d811115613c7457613c746152ae565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200161169c565b5f818310613cb25781611162565b5090919050565b5f613cc48483613900565b5f613ccf8585614637565b9050613cda81614655565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316613d0791906154ac565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550809150509392505050565b6001600160a01b038216613d9a5760405162461bcd60e51b815260206004820152602560248201527f526573657276653a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610e0e565b805f03613da5575050565b5f613dae612988565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613df2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e169190615215565b905081811015613e7257613e29826148ec565b613e339082615172565b905080821115613e72577f0000000000000000000000000000000000000000000000000000000000000000613e688284615030565b1015613e72578091505b611cc28383613e7f612988565b6001600160a01b031691906149bf565b6001600160a01b038216613ef05760405162461bcd60e51b815260206004820152602260248201527f45546f6b656e3a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610e0e565b613efb825f83614064565b5f613f1282613f08610b1a565b6101319190613aff565b6001600160a01b0384165f90815261012d602052604090205490915081811015613f8a5760405162461bcd60e51b815260206004820152602360248201527f45546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616044820152626e636560e81b6064820152608401610e0e565b613f948282615030565b6001600160a01b0385165f81815261012d60205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613fe29087815260200190565b60405180910390a350505050565b60605f5f856001600160a01b03168560405161400c91906152dc565b5f60405180830381855af49150503d805f8114614044576040519150601f19603f3d011682016040523d82523d5f602084013e614049565b606091505b509150915061405a868383876149ef565b9695505050505050565b61406c613567565b6001600160a01b038316158061408957506001600160a01b038216155b806140a5575061013454600160401b90046001600160a01b0316155b80614135575061013454604051635fcdca3760e01b81523060048201526001600160a01b038581166024830152848116604483015260648201849052600160401b90920490911690635fcdca3790608401602060405180830381865afa158015614111573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061413591906151b8565b611cc25760405162461bcd60e51b815260206004820152603960248201527f5472616e73666572206e6f7420616c6c6f776564202d204c697175696469747960448201527f2050726f7669646572206e6f742077686974656c6973746564000000000000006064820152608401610e0e565b5f613b9b6115cd6141b88686613806565b6141c1856137f1565b90614a67565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561422d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142519190615075565b6001600160a01b031614610ea95760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6142e55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e0e565b5f5160206154f35f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61431c83614aa2565b5f825111806143285750805b15611cc257612e518383612dba565b60975460ff166123ac5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610e0e565b5f54610100900460ff166143a65760405162461bcd60e51b8152600401610e0e906152f2565b6143ae614ae1565b6123ac614b07565b61013454611f4061ffff909116108015906143dc5750610134546132c861ffff90911611155b6144445760405162461bcd60e51b815260206004820152603360248201527f56616c69646174696f6e3a206c6971756964697479526571756972656d656e74604482015272206d757374206265205b302e382c20312e335d60681b6064820152608401610e0e565b6101345461138864010000000090910461ffff161080159061447857506101345461271064010000000090910461ffff1611155b6144dc5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a206d61785574696c697a6174696f6e52617465206d60448201526e757374206265205b302e352c20315d60881b6064820152608401610e0e565b610134546127106201000090910461ffff1611156145525760405162461bcd60e51b815260206004820152602d60248201527f56616c69646174696f6e3a206d696e5574696c697a6174696f6e52617465206d60448201526c757374206265205b302c20315d60981b6064820152608401610e0e565b61013454611388600160301b90910461ffff1611156123ac5760405162461bcd60e51b815260206004820152603360248201527f56616c69646174696f6e3a20696e7465726e616c4c6f616e496e74657265737460448201527252617465206d757374206265203c3d2035302560681b6064820152608401610e0e565b5f6001600160701b03821115613a045760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663132206269747360c81b6064820152608401610e0e565b81545f90611162906115cd906001600160701b03166141c1856137f1565b5f6001600160601b03821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610e0e565b8254600160701b90046001600160701b03165f036146df57612e51838383613cb9565b6146e98382613900565b5f826146f58584612d8e565b6146ff91906154cb565b845490915061472e9061395f9061472590600160701b90046001600160701b03166137f1565b6141c1846137f1565b84546001600160701b0319166001600160701b0391909116908117855567016345785d8a00001115612e515760405162461bcd60e51b815260206004820152602c60248201527f5363616c6520746f6f20736d616c6c2c2063616e206c65616420746f20726f7560448201526b6e64696e67206572726f727360a01b6064820152608401610e0e565b5f61480b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614b359092919063ffffffff16565b905080515f148061482b57508080602001905181019061482b91906151b8565b611cc25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e0e565b5f61ffff821115613a045760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610e0e565b5f5f614901610135546001600160a01b031690565b90506001600160a01b038116156149b7575f6149a1631014a0c260e01b8560405160240161493191815260200190565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935280518082019091526016815275115c9c9bdc881c99599a5b1b1a5b99c81dd85b1b195d60521b928101929092526001600160a01b03851691613ff0565b905080806020019051810190613b9b9190615215565b505f92915050565b6040516001600160a01b038316602482015260448101829052611cc290849063a9059cbb60e01b90606401613bf5565b60608315614a5d5782515f03614a56576001600160a01b0385163b614a565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e0e565b5081613b9b565b613b9b8383614b43565b5f8115676765c793fa10079d601b1b60028404190484111715614a88575f5ffd5b50676765c793fa10079d601b1b9190910260028204010490565b614aab81614278565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f54610100900460ff166123ac5760405162461bcd60e51b8152600401610e0e906152f2565b5f54610100900460ff16614b2d5760405162461bcd60e51b8152600401610e0e906152f2565b6123ac614b6d565b6060613b9b84845f85614b9f565b815115614b535781518083602001fd5b8060405162461bcd60e51b8152600401610e0e9190614ccb565b5f54610100900460ff16614b935760405162461bcd60e51b8152600401610e0e906152f2565b6097805460ff19169055565b606082471015614c005760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610e0e565b5f5f866001600160a01b03168587604051614c1b91906152dc565b5f6040518083038185875af1925050503d805f8114614c55576040519150601f19603f3d011682016040523d82523d5f602084013e614c5a565b606091505b5091509150614c6b878383876149ef565b979650505050505050565b5f60208284031215614c86575f5ffd5b81356001600160e01b031981168114611162575f5ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6111626020830184614c9d565b6001600160a01b0381168114610ea9575f5ffd5b5f5f60408385031215614d02575f5ffd5b8235614d0d81614cdd565b946020939093013593505050565b5f60208284031215614d2b575f5ffd5b813561116281614cdd565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112614d59575f5ffd5b8135602083015f5f6001600160401b03841115614d7857614d78614d36565b50604051601f19601f85018116603f011681018181106001600160401b0382111715614da657614da6614d36565b604052838152905080828401871015614dbd575f5ffd5b838360208301375f602085830101528094505050505092915050565b5f60208284031215614de9575f5ffd5b81356001600160401b03811115614dfe575f5ffd5b613b9b84828501614d4a565b5f5f5f60608486031215614e1c575f5ffd5b8335614e2781614cdd565b92506020840135614e3781614cdd565b929592945050506040919091013590565b5f5f60408385031215614e59575f5ffd5b8235614e6481614cdd565b915060208301356001600160401b03811115614e7e575f5ffd5b614e8a85828601614d4a565b9150509250929050565b5f5f5f5f60808587031215614ea7575f5ffd5b84356001600160401b03811115614ebc575f5ffd5b614ec887828801614d4a565b94505060208501356001600160401b03811115614ee3575f5ffd5b614eef87828801614d4a565b949794965050505060408301359260600135919050565b8015158114610ea9575f5ffd5b5f60208284031215614f23575f5ffd5b813561116281614f06565b5f5f60408385031215614f3f575f5ffd5b50508035926020909101359150565b5f5f60408385031215614f5f575f5ffd5b823591506020830135614f7181614cdd565b809150509250929050565b5f5f5f60608486031215614f8e575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215614fb6575f5ffd5b823560048110614d0d575f5ffd5b5f5f60408385031215614fd5575f5ffd5b8235614fe081614cdd565b91506020830135614f7181614f06565b5f5f60408385031215615001575f5ffd5b823561500c81614cdd565b91506020830135614f7181614cdd565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a2157610a2161501c565b600181811c9082168061505757607f821691505b602082108103610c9357634e487b7160e01b5f52602260045260245ffd5b5f60208284031215615085575f5ffd5b815161116281614cdd565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b5f602082840312156150ca575f5ffd5b815160ff81168114611162575f5ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820180821115610a2157610a2161501c565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b5f602082840312156151c8575f5ffd5b815161116281614f06565b60208082526022908201527f4c69717569646974792050726f7669646572206e6f742077686974656c697374604082015261195960f21b606082015260800190565b5f60208284031215615225575f5ffd5b5051919050565b6020808252602b908201527f45546f6b656e3a20426f72726f7765722063616e6e6f7420626520746865207a60408201526a65726f206164647265737360a81b606082015260800190565b6020808252601d908201527f5468652063616c6c6572206d757374206265206120626f72726f776572000000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b5f600160ff1b82016152d6576152d661501c565b505f0390565b5f82518060208501845e5f920191825250919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115611cc257805f5260205f20601f840160051c810160208510156153625750805b601f840160051c820191505b81811015611575575f815560010161536e565b81516001600160401b0381111561539a5761539a614d36565b6153ae816153a88454615043565b8461533d565b6020601f8211600181146153e0575f83156153c95750848201515b5f19600385901b1c1916600184901b178455611575565b5f84815260208120601f198516915b8281101561540f57878501518255602094850194600190920191016153ef565b508482101561542c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b63ffffffff8281168282160390811115610a2157610a2161501c565b8082028115828204841417610a2157610a2161501c565b5f8261548857634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160701b038281168282160390811115610a2157610a2161501c565b6001600160701b038181168382160190811115610a2157610a2161501c565b8082018281125f8312801582168215821617156154ea576154ea61501c565b50509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220511d0766c9cce108d2da4fe4427b88ce01d0793b803c2e9293be6b7d932e47d864736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x341 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76C7FC55 GT PUSH2 0x1BD JUMPI DUP1 PUSH4 0xB1081CCF GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xD80359F1 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xE3A8E29C GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xE3A8E29C EQ PUSH2 0x960 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x97F JUMPI DUP1 PUSH4 0xEE01A183 EQ PUSH2 0x993 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x9A7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xD80359F1 EQ PUSH2 0x90E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x92D JUMPI DUP1 PUSH4 0xDFCB48BD EQ PUSH2 0x94C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xC1CCA2B3 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x8A8 JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x8C7 JUMPI DUP1 PUSH4 0xC3DF9DAC EQ PUSH2 0x8DB JUMPI DUP1 PUSH4 0xCDA4BCC2 EQ PUSH2 0x8FA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xB1081CCF EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xB1BF962D EQ PUSH2 0x86F JUMPI DUP1 PUSH4 0xBA4E8DF5 EQ PUSH2 0x894 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x93E59DC1 GT PUSH2 0x15D JUMPI DUP1 PUSH4 0x9D90724D GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x9D90724D EQ PUSH2 0x7D9 JUMPI DUP1 PUSH4 0xA08F2203 EQ PUSH2 0x7FE JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x812 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x831 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x93E59DC1 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x94217AD1 EQ PUSH2 0x7A7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x837C83A3 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x837C83A3 EQ PUSH2 0x711 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0x854CFF2F EQ PUSH2 0x744 JUMPI DUP1 PUSH4 0x918344D3 EQ PUSH2 0x763 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x76C7FC55 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0x79D989FB EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x6FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x293 JUMPI DUP1 PUSH4 0x4FE0BD1E GT PUSH2 0x233 JUMPI DUP1 PUSH4 0x6C321C8A GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x6C321C8A EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0x6C6F4542 EQ PUSH2 0x663 JUMPI DUP1 PUSH4 0x6FE0E395 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6A0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4FE0BD1E EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x624 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x638 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x47E7EF24 GT PUSH2 0x26E JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x584 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x5A3 JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x5E9 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x5FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x570 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x16DB000F GT PUSH2 0x2FE JUMPI DUP1 PUSH4 0x1E9C4658 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x1E9C4658 EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0x33481FC9 EQ PUSH2 0x511 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x16DB000F EQ PUSH2 0x450 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x1DA24F3E EQ PUSH2 0x478 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x600A865 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xAFBCDC9 EQ PUSH2 0x3DB JUMPI DUP1 PUSH4 0x159EC2DF EQ PUSH2 0x43C JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x350 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x35F CALLDATASIZE PUSH1 0x4 PUSH2 0x4C76 JUMP JUMPDEST PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xA27 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x4CCB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x3D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xB05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x427 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x131 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x447 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0xB54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x483 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DD9 JUMP JUMPDEST PUSH2 0xB69 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E0A JUMP JUMPDEST PUSH2 0xC99 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4FF PUSH2 0xCBC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0xDC6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xEAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0xECC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x59E CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x1169 JUMP JUMPDEST PUSH2 0x54F PUSH2 0x60B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E48 JUMP JUMPDEST PUSH2 0x11D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x129C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1339 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x643 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x364 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x13EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E94 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x6BA CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x157C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x15D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x6F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F13 JUMP JUMPDEST PUSH2 0x16A8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x708 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x16D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x72B CALLDATASIZE PUSH1 0x4 PUSH2 0x4F2E JUMP JUMPDEST PUSH2 0x1719 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x19A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x75E CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x1A94 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x4F4E JUMP JUMPDEST PUSH2 0x1CC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3AF PUSH2 0x1E27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x809 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x1E37 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x82C CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x1EAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x83C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x364 PUSH2 0x84B CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x1F46 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x86A CALLDATASIZE PUSH1 0x4 PUSH2 0x4F7C JUMP JUMPDEST PUSH2 0x1F52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x131 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x212D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x8C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FA5 JUMP JUMPDEST PUSH2 0x2140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x2394 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x8F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F4E JUMP JUMPDEST PUSH2 0x23AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x905 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x249C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x919 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x928 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FC4 JUMP JUMPDEST PUSH2 0x24B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x4FF0 JUMP JUMPDEST PUSH2 0x2853 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x957 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x287E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x54F PUSH2 0x97A CALLDATASIZE PUSH1 0x4 PUSH2 0x4D1B JUMP JUMPDEST PUSH2 0x2899 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x5D1 PUSH2 0x2988 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x2A09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x38D PUSH2 0x9C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4CF1 JUMP JUMPDEST PUSH2 0x2A22 JUMP JUMPDEST PUSH0 PUSH2 0x9D0 DUP3 PUSH2 0x2BCC JUMP JUMPDEST DUP1 PUSH2 0x9EB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x36372B07 PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xA06 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xA219A025 PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xA21 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x90770621 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0xA47 PUSH2 0xA34 PUSH2 0x212D JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xA52 PUSH2 0xB54 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT PUSH2 0xA6C JUMPI PUSH2 0xA65 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x12F DUP1 SLOAD PUSH2 0xA84 SWAP1 PUSH2 0x5043 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAB0 SWAP1 PUSH2 0x5043 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAFB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAD2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAFB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xADE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0x2C37 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB3D PUSH2 0x131 PUSH2 0x2D5F JUMP JUMPDEST PUSH2 0xB45 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x5030 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB4F PUSH2 0xB60 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x2D8E JUMP JUMPDEST PUSH1 0x60 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xC90 DUP4 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0xCA6 DUP6 DUP3 DUP6 PUSH2 0x2DDF JUMP JUMPDEST PUSH2 0xCB1 DUP6 DUP6 DUP6 PUSH2 0x2E57 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD3D SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD78 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x50BA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xC90 PUSH2 0xDBF PUSH2 0x249C JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x2D8E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xE17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x50DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE5F PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5126 JUMP JUMPDEST PUSH2 0xE8E DUP2 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xEA9 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x315B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0xEBD CALLER DUP9 PUSH2 0x2853 JUMP JUMPDEST PUSH2 0xEC7 SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST PUSH2 0x2C37 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF44 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF68 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFB2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFC4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xFD0 PUSH2 0x32C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x101E JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x10BB JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37EE20DD PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x37EE20DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1097 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BB SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x10D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x51D3 JUMP JUMPDEST PUSH2 0x10E1 DUP4 DUP4 PUSH2 0x3317 JUMP JUMPDEST PUSH2 0x10E9 PUSH2 0x3468 JUMP JUMPDEST PUSH2 0x10F1 PUSH2 0x2A09 JUMP JUMPDEST PUSH2 0x10F9 PUSH2 0x13EA JUMP JUMPDEST LT ISZERO PUSH2 0x1159 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4465706F7369742072656A6563746564202D205574696C697A6174696F6E2052 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x30BA32901E1036B4B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1162 DUP4 PUSH2 0x157C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1171 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x13AE5E29 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x11B3 SWAP1 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xEA9 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x35AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x50DA JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1261 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1287 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5126 JUMP JUMPDEST PUSH2 0x1290 DUP3 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xFD0 DUP3 DUP3 PUSH1 0x1 PUSH2 0x315B JUMP JUMPDEST PUSH0 PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12DA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12FE SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x132 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP2 GT ISZERO PUSH2 0x1332 JUMPI PUSH2 0x132 SLOAD PUSH2 0x132C SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 PUSH2 0x5030 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x13D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB4F ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 PUSH2 0x35B6 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x147F JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1498 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1498 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x14FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x151C JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1524 PUSH2 0x35EB JUMP JUMPDEST PUSH2 0x1530 DUP6 DUP6 DUP6 DUP6 PUSH2 0x3619 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1575 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 DUP3 SUB PUSH2 0x15A4 JUMPI POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC90 PUSH2 0x15CD PUSH2 0x15B3 DUP4 PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x15C7 PUSH2 0x15BE PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x3806 JUMP JUMPDEST SWAP1 PUSH2 0x38A0 JUMP JUMPDEST PUSH2 0x38E1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x161B JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1641 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x522C JUMP JUMPDEST PUSH0 PUSH2 0x164B DUP3 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD SWAP2 SWAP3 POP SWAP1 PUSH32 0xE2EBFBED0DF9004EAE018A4AE91B24BAA0CD1D83F495FAB6DDE3A1493F9DC6C6 SWAP1 PUSH2 0x169C SWAP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH2 0x16BA JUMPI PUSH2 0xA21 PUSH2 0x15BE PUSH2 0xB1A JUMP JUMPDEST POP POP PUSH2 0x131 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D9 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x1F5F0A87 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0xEA9 SWAP1 PUSH2 0xC81 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 SUB PUSH2 0x1750 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x1758 PUSH2 0x3567 JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA08F2203 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1794 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17B8 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420656E6F7567682066756E647320617661696C61626C6520746F20636F PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x3B32B9103A34329029A1A9 PUSH1 0xA9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x182F PUSH2 0x1826 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 PUSH2 0x3900 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 SUB PUSH2 0x18A7 JUMPI PUSH2 0x184B DUP3 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1875 DUP2 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x195F JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 PUSH2 0x18BF DUP5 DUP4 PUSH2 0x5172 JUMP JUMPDEST SWAP1 POP PUSH2 0x1905 PUSH2 0x1900 DUP3 PUSH2 0x18D2 DUP7 DUP9 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH2 0x18F0 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP8 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x18FA SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP1 PUSH2 0x35B6 JUMP JUMPDEST PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x193B DUP2 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x333478C2835EFE2F226B0D334F71BDF18C977621845F20D21FFF75321FC8AB27 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFD0 PUSH2 0x3468 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A0A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A2E SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A60 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A76 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A88 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xEA9 PUSH2 0x3A6F JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B0C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B30 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B64 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B7A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B8C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH2 0x1C36 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C07 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C2B SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x1C92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6D706F6E656E74206E6F74206C696E6B656420746F207468697320506F6C PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1A58DE541BDBDB PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND MUL OR SWAP1 SSTORE PUSH2 0x1CC2 PUSH1 0x17 DUP5 PUSH2 0x3AAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CCF PUSH2 0x3567 JUMP JUMPDEST PUSH0 DUP3 GT PUSH2 0x1D32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20616D6F756E742073686F756C642062652067726561746572 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x103A3430B7103D32B93797 PUSH1 0xA9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1DA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F742061207265676973746572656420626F72726F77657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1DBB DUP4 PUSH2 0x1DB3 PUSH2 0x249C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x3AFF JUMP JUMPDEST POP PUSH2 0x1DC5 DUP4 PUSH2 0x3BA3 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xA1AEB41F04A9A2AA1450E8EDD0FA1A0A7971FF65C7BBB7B2CA0379B9327EDBAF DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E00 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x1CC2 CALLER ADDRESS DUP6 PUSH2 0x1E16 PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 SWAP1 PUSH2 0x3BC1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130 DUP1 SLOAD PUSH2 0xA84 SWAP1 PUSH2 0x5043 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12FE PUSH2 0x1E44 PUSH2 0x287E JUMP JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E80 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EA4 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 PUSH2 0x2C01 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD DUP3 DUP2 LT ISZERO PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A2064656372656173656420616C6C6F77616E63652062656C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x77207A65726F PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F3C CALLER DUP6 PUSH2 0xEC7 DUP7 DUP6 PUSH2 0x5030 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB11 CALLER DUP5 DUP5 PUSH2 0x2E57 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 SUB PUSH2 0x1F89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x1F91 PUSH2 0x3567 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP4 GT ISZERO PUSH2 0x2009 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43757272656E7420534352206C657373207468616E2074686520616D6F756E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x20796F752077616E7420746F20756E6C6F636B PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2014 PUSH2 0x1826 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP4 SWAP1 SUB PUSH2 0x203E JUMPI PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH0 PUSH2 0x2056 DUP6 DUP4 PUSH2 0x5030 JUMP JUMPDEST SWAP1 POP PUSH2 0x2091 PUSH2 0x1900 DUP3 PUSH2 0x2069 DUP8 DUP10 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH2 0x2087 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP8 PUSH2 0x2C01 JUMP JUMPDEST PUSH2 0x18FA SWAP2 SWAP1 PUSH2 0x5030 JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x80 SHL MUL PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x20C7 DUP2 PUSH2 0x399C JUMP JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x7B9D63CCBB37347CE0FE73E3663C640D22364D8C733839777F1729E59AF1967F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1CC2 DUP2 PUSH2 0x3BA3 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21BD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21E1 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2213 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5090 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2229 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x223B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x2247 SWAP2 POP POP JUMP JUMPDEST DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2259 JUMPI PUSH2 0x2259 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x2283 JUMPI PUSH2 0x2267 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2297 JUMPI PUSH2 0x2297 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x22CA JUMPI PUSH2 0x22A5 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22DE JUMPI PUSH2 0x22DE PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x2315 JUMPI PUSH2 0x22EC DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x235D JUMP JUMPDEST PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2329 JUMPI PUSH2 0x2329 PUSH2 0x52AE JUMP JUMPDEST SUB PUSH2 0x235D JUMPI PUSH2 0x2337 DUP3 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0x134 DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CC2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2372 JUMPI PUSH2 0x2372 PUSH2 0x52AE JUMP JUMPDEST PUSH2 0x237D SWAP1 PUSH1 0x18 PUSH2 0x5172 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x238E JUMPI PUSH2 0x238E PUSH2 0x52AE JUMP JUMPDEST DUP4 PUSH2 0x3C5A JUMP JUMPDEST PUSH2 0x239C PUSH2 0x3567 JUMP JUMPDEST PUSH2 0x23A4 PUSH2 0x1169 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x16D1 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND DUP2 SUB PUSH2 0x23E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x5277 JUMP JUMPDEST PUSH2 0x23ED PUSH2 0x3567 JUMP JUMPDEST DUP3 PUSH2 0x23FF DUP2 PUSH2 0x23FA PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x3CA4 JUMP JUMPDEST SWAP4 POP DUP4 PUSH0 SUB PUSH2 0x240F JUMPI SWAP1 POP PUSH2 0xA21 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x2432 DUP6 PUSH2 0x242A PUSH2 0x249C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x3CB9 JUMP JUMPDEST POP PUSH2 0x2444 PUSH2 0x243F DUP7 PUSH2 0x52C2 JUMP JUMPDEST PUSH2 0x3BA3 JUMP JUMPDEST PUSH2 0x244E DUP5 DUP7 PUSH2 0x3D36 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE CALLER SWAP2 PUSH32 0x98697A4799DBD9DB66C7168304C43CBA77A27A50D2785625E09072E0D91FDD53 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x2493 DUP6 DUP4 PUSH2 0x5030 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x252E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2552 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2586 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x259C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25AE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x2630 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x1E670A97 PUSH1 0xE2 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x260C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2630 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x26A4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x526573657276653A206173736574206D616E6167657220646F65736E27742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D706C656D656E74732074686520726571756972656420696E74657266616365 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x26B8 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x27DB JUMPI DUP5 ISZERO PUSH2 0x2781 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH2 0x2713 SWAP2 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x274B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2750 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2763 JUMPI PUSH1 0x3 SWAP3 POP PUSH2 0x277A JUMP JUMPDEST PUSH2 0x277A DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP POP PUSH2 0x27DB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x27C0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST SWAP1 POP PUSH2 0x27D9 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP JUMPDEST PUSH2 0x135 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 POP DUP2 ISZERO PUSH2 0x2841 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x948CB719 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0x283F SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH2 0x2DBA JUMP JUMPDEST POP JUMPDEST PUSH2 0x284B DUP2 DUP8 PUSH2 0x3AAC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2908 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x522C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x133 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0xFD0 JUMPI PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x66C0F28249C4FC4DB79872A4405BE78A93F19C65AC9EF2F173867A149065BCF2 SWAP1 PUSH0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29E5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB4F SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH0 SWAP1 PUSH2 0xB4F SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x3C2C JUMP JUMPDEST PUSH0 CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2A6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2A81 PUSH2 0x2A79 DUP6 PUSH2 0x157C JUMP JUMPDEST PUSH2 0x23FA PUSH2 0xA27 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP4 SUB PUSH2 0x2A8F JUMPI DUP1 SWAP3 POP JUMPDEST DUP3 PUSH0 SUB PUSH2 0x2A9F JUMPI PUSH0 SWAP2 POP POP PUSH2 0xA21 JUMP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x2AEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E74203E206D617820776974686472617761626C6500000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x2B8C JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9051C763 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x9051C763 SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B68 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8C SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x2BA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x51D3 JUMP JUMPDEST PUSH2 0x2BB2 DUP5 DUP5 PUSH2 0x3E8F JUMP JUMPDEST PUSH2 0x2BBA PUSH2 0x3468 JUMP JUMPDEST PUSH2 0x2BC4 DUP5 DUP5 PUSH2 0x3D36 JUMP JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xA21 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x2C1D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x2C9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20617070726F76652066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2CFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20617070726F766520746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH0 SWAP1 PUSH2 0xA21 SWAP1 PUSH2 0x15CD SWAP1 PUSH8 0x16345785D8A0000 SWAP1 PUSH2 0x15C7 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH0 PUSH2 0x1162 PUSH2 0x15CD PUSH2 0x2D9F DUP6 DUP6 PUSH2 0x3806 JUMP JUMPDEST DUP6 SLOAD PUSH2 0x15C7 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1162 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5533 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3FF0 JUMP JUMPDEST PUSH0 PUSH2 0x2DEA DUP5 DUP5 PUSH2 0x2853 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x2E51 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x2E44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20696E73756666696369656E7420616C6C6F77616E63650000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2E51 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x2C37 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x2EBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E736665722066726F6D20746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2F1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2F29 DUP4 DUP4 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x2F3F PUSH2 0x2F35 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP1 DUP5 PUSH2 0x41A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 DUP2 LT ISZERO PUSH2 0x2FBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A207472616E7366657220616D6F756E74206578636565647320 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x62616C616E6365 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x2FC5 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP7 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x2FFB SWAP1 DUP5 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD PUSH2 0x3047 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x555A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5513 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30CE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30F2 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3126 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5185 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x313C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x314E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1CC2 DUP4 PUSH2 0x41C7 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x318E JUMPI PUSH2 0x1CC2 DUP4 PUSH2 0x4278 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x31E8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x31E5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5215 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x324B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x32B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP PUSH2 0x1CC2 DUP4 DUP4 DUP4 PUSH2 0x4313 JUMP JUMPDEST PUSH2 0x32CD PUSH2 0x4337 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x336D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP2 GT PUSH2 0x33D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20616D6F756E7420746F206D696E742073686F756C64206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x2067726561746572207468616E207A65726F PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x33E2 PUSH0 DUP4 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x33F9 DUP3 PUSH2 0x33EF PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x3CB9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP DUP4 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3426 SWAP1 DUP5 SWAP1 PUSH2 0x5172 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0x2D52 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x34A5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34C9 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x34E5 JUMPI PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x132 SLOAD PUSH0 SWAP1 PUSH2 0x3514 SWAP1 DUP4 SWAP1 PUSH2 0x18FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV AND SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x2C01 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x3532 JUMPI PUSH2 0x352D DUP2 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x353B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB JUMPDEST PUSH2 0x132 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xC0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0xEA9 DUP2 PUSH2 0x3BA3 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x35D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3611 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4380 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x363F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH0 DUP5 MLOAD GT PUSH2 0x368F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206E616D652063616E6E6F7420626520656D70747900000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 DUP4 MLOAD GT PUSH2 0x36DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A2073796D626F6C2063616E6E6F7420626520656D7074790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x12F PUSH2 0x36EC DUP6 DUP3 PUSH2 0x5381 JUMP JUMPDEST POP PUSH2 0x130 PUSH2 0x36FA DUP5 DUP3 PUSH2 0x5381 JUMP JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR PUSH2 0x131 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x373A DUP5 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x374C DUP4 PUSH2 0x3C41 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH0 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH2 0x134 DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 SWAP1 SWAP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x40 SHL PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP8 DUP7 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP3 DUP8 AND PUSH5 0x100000000 MUL SWAP3 SWAP1 SWAP3 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP4 DUP8 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP9 AND SWAP6 SWAP1 SWAP7 AND SWAP5 SWAP1 SWAP5 OR SWAP6 SWAP1 SWAP6 OR AND SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 OR SWAP3 SWAP1 SWAP3 AND OR SWAP1 SSTORE PUSH2 0x2E51 PUSH2 0x43B6 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP2 DUP2 MUL SWAP1 DUP2 DIV DUP3 EQ PUSH2 0x16CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 SLOAD PUSH0 SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF DUP1 DUP4 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x3834 JUMPI POP POP DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xA21 JUMP JUMPDEST DUP4 SLOAD PUSH0 SWAP1 PUSH2 0x384F SWAP1 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x543B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH2 0x2493 PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH4 0x1E13380 DUP4 PUSH2 0x3875 DUP9 PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x387F SWAP2 SWAP1 PUSH2 0x5457 JUMP JUMPDEST PUSH2 0x3889 SWAP2 SWAP1 PUSH2 0x546E JUMP JUMPDEST PUSH2 0x3893 SWAP2 SWAP1 PUSH2 0x5172 JUMP JUMPDEST DUP7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x19D971E4FE8401E74000000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x38C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL SWAP2 MUL PUSH12 0x19D971E4FE8401E74000000 ADD DIV SWAP1 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP1 DUP3 DIV SWAP1 DUP3 MOD PUSH4 0x1DCD6500 DUP2 LT PUSH2 0xC93 JUMPI POP PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x391C JUMPI POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x3952 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3964 PUSH2 0x395F DUP4 DUP4 PUSH2 0x3806 JUMP JUMPDEST PUSH2 0x45CF JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL SWAP1 SWAP2 AND OR PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32382062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3A77 PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x32FA CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3AB4 PUSH2 0x43B6 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3AC6 JUMPI PUSH2 0x3AC6 PUSH2 0x52AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH2 0x169C JUMP JUMPDEST PUSH0 PUSH2 0x3B0A DUP5 DUP4 PUSH2 0x3900 JUMP JUMPDEST PUSH0 PUSH2 0x3B15 DUP6 DUP6 PUSH2 0x4637 JUMP JUMPDEST SWAP1 POP PUSH2 0x3B20 DUP2 PUSH2 0x4655 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3B4D SWAP2 SWAP1 PUSH2 0x548D JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE DUP7 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV AND PUSH0 SUB SWAP1 POP PUSH2 0x3B9B JUMPI DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL OR DUP6 SSTORE JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3BB9 DUP2 PUSH2 0x3BAF PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x46BC JUMP JUMPDEST PUSH2 0xEA9 PUSH2 0x3468 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x2E51 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x47B7 JUMP JUMPDEST PUSH0 PUSH2 0xA21 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x5457 JUMP JUMPDEST PUSH0 PUSH2 0xA21 PUSH2 0x3C55 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x546E JUMP JUMPDEST PUSH2 0x488A JUMP JUMPDEST PUSH2 0x3C62 PUSH2 0x43B6 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3C74 JUMPI PUSH2 0x3C74 PUSH2 0x52AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH2 0x169C JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x3CB2 JUMPI DUP2 PUSH2 0x1162 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x3CC4 DUP5 DUP4 PUSH2 0x3900 JUMP JUMPDEST PUSH0 PUSH2 0x3CCF DUP6 DUP6 PUSH2 0x4637 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CDA DUP2 PUSH2 0x4655 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x3D07 SWAP2 SWAP1 PUSH2 0x54AC JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3D9A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526573657276653A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x3DA5 JUMPI POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3DAE PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DF2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E16 SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x3E72 JUMPI PUSH2 0x3E29 DUP3 PUSH2 0x48EC JUMP JUMPDEST PUSH2 0x3E33 SWAP1 DUP3 PUSH2 0x5172 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E72 JUMPI PUSH32 0x0 PUSH2 0x3E68 DUP3 DUP5 PUSH2 0x5030 JUMP JUMPDEST LT ISZERO PUSH2 0x3E72 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH2 0x1CC2 DUP4 DUP4 PUSH2 0x3E7F PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x49BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206275726E2066726F6D20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3EFB DUP3 PUSH0 DUP4 PUSH2 0x4064 JUMP JUMPDEST PUSH0 PUSH2 0x3F12 DUP3 PUSH2 0x3F08 PUSH2 0xB1A JUMP JUMPDEST PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x3AFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 DUP2 LT ISZERO PUSH2 0x3F8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A206275726E20616D6F756E7420657863656564732062616C61 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x6E6365 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x3F94 DUP3 DUP3 PUSH2 0x5030 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x3FE2 SWAP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x400C SWAP2 SWAP1 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4044 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4049 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x405A DUP7 DUP4 DUP4 DUP8 PUSH2 0x49EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x406C PUSH2 0x3567 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH2 0x4089 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO JUMPDEST DUP1 PUSH2 0x40A5 JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST DUP1 PUSH2 0x4135 JUMPI POP PUSH2 0x134 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5FCDCA37 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x5FCDCA37 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4111 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4135 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x1CC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73666572206E6F7420616C6C6F776564202D204C6971756964697479 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2050726F7669646572206E6F742077686974656C697374656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x3B9B PUSH2 0x15CD PUSH2 0x41B8 DUP7 DUP7 PUSH2 0x3806 JUMP JUMPDEST PUSH2 0x41C1 DUP6 PUSH2 0x37F1 JUMP JUMPDEST SWAP1 PUSH2 0x4A67 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x422D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4251 SWAP2 SWAP1 PUSH2 0x5075 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEA9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x42E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x54F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x431C DUP4 PUSH2 0x4AA2 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x4328 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1CC2 JUMPI PUSH2 0x2E51 DUP4 DUP4 PUSH2 0x2DBA JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x43A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x43AE PUSH2 0x4AE1 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4B07 JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1F40 PUSH2 0xFFFF SWAP1 SWAP2 AND LT DUP1 ISZERO SWAP1 PUSH2 0x43DC JUMPI POP PUSH2 0x134 SLOAD PUSH2 0x32C8 PUSH2 0xFFFF SWAP1 SWAP2 AND GT ISZERO JUMPDEST PUSH2 0x4444 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206C6971756964697479526571756972656D656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x206D757374206265205B302E382C20312E335D PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1388 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND LT DUP1 ISZERO SWAP1 PUSH2 0x4478 JUMPI POP PUSH2 0x134 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO JUMPDEST PUSH2 0x44DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D61785574696C697A6174696F6E52617465206D PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x757374206265205B302E352C20315D PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x4552 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D696E5574696C697A6174696F6E52617465206D PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x757374206265205B302C20315D PUSH1 0x98 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x134 SLOAD PUSH2 0x1388 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20696E7465726E616C4C6F616E496E746572657374 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x52617465206D757374206265203C3D20353025 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x31322062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 PUSH2 0x1162 SWAP1 PUSH2 0x15CD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x41C1 DUP6 PUSH2 0x37F1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x46DF JUMPI PUSH2 0x2E51 DUP4 DUP4 DUP4 PUSH2 0x3CB9 JUMP JUMPDEST PUSH2 0x46E9 DUP4 DUP3 PUSH2 0x3900 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x46F5 DUP6 DUP5 PUSH2 0x2D8E JUMP JUMPDEST PUSH2 0x46FF SWAP2 SWAP1 PUSH2 0x54CB JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH2 0x472E SWAP1 PUSH2 0x395F SWAP1 PUSH2 0x4725 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x37F1 JUMP JUMPDEST PUSH2 0x41C1 DUP5 PUSH2 0x37F1 JUMP JUMPDEST DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 DUP2 OR DUP6 SSTORE PUSH8 0x16345785D8A0000 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5363616C6520746F6F20736D616C6C2C2063616E206C65616420746F20726F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x6E64696E67206572726F7273 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0x480B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4B35 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x482B JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x482B SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0x1CC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x4901 PUSH2 0x135 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x49B7 JUMPI PUSH0 PUSH2 0x49A1 PUSH4 0x1014A0C2 PUSH1 0xE0 SHL DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4931 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x115C9C9BDC881C99599A5B1B1A5B99C81DD85B1B195D PUSH1 0x52 SHL SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH2 0x3FF0 JUMP JUMPDEST SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3B9B SWAP2 SWAP1 PUSH2 0x5215 JUMP JUMPDEST POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1CC2 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x3BF5 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A5D JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4A56 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xE0E JUMP JUMPDEST POP DUP2 PUSH2 0x3B9B JUMP JUMPDEST PUSH2 0x3B9B DUP4 DUP4 PUSH2 0x4B43 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x4A88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0x6765C793FA10079D PUSH1 0x1B SHL SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH2 0x4AAB DUP2 PUSH2 0x4278 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4B2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH2 0x23AC PUSH2 0x4B6D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3B9B DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4B9F JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x4B53 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP2 SWAP1 PUSH2 0x4CCB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4B93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE0E SWAP1 PUSH2 0x52F2 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x4C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE0E JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4C1B SWAP2 SWAP1 PUSH2 0x52DC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4C55 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4C5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4C6B DUP8 DUP4 DUP4 DUP8 PUSH2 0x49EF JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C86 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1162 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x1162 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4C9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4D02 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4D0D DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D2B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1162 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D59 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH0 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x4D78 JUMPI PUSH2 0x4D78 PUSH2 0x4D36 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x4DA6 JUMPI PUSH2 0x4DA6 PUSH2 0x4D36 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x4DBD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4DE9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4DFE JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3B9B DUP5 DUP3 DUP6 ADD PUSH2 0x4D4A JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4E1C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4E27 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4E37 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E59 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E64 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4E7E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4E8A DUP6 DUP3 DUP7 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4EA7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4EBC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EC8 DUP8 DUP3 DUP9 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4EE3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EEF DUP8 DUP3 DUP9 ADD PUSH2 0x4D4A JUMP JUMPDEST SWAP5 SWAP8 SWAP5 SWAP7 POP POP POP POP PUSH1 0x40 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x60 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4F23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1162 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F3F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F5F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4CDD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4F8E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4FB6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x4 DUP2 LT PUSH2 0x4D0D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4FD5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4FE0 DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5001 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x500C DUP2 PUSH2 0x4CDD JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4F71 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x5057 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xC93 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5085 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1162 DUP2 PUSH2 0x4CDD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1162 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1162 DUP2 PUSH2 0x4F06 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4C69717569646974792050726F7669646572206E6F742077686974656C697374 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1959 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5225 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x45546F6B656E3A20426F72726F7765722063616E6E6F7420626520746865207A PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x65726F2061646472657373 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1D SWAP1 DUP3 ADD MSTORE PUSH32 0x5468652063616C6C6572206D757374206265206120626F72726F776572000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x52D6 JUMPI PUSH2 0x52D6 PUSH2 0x501C JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CC2 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5362 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1575 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x536E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x539A JUMPI PUSH2 0x539A PUSH2 0x4D36 JUMP JUMPDEST PUSH2 0x53AE DUP2 PUSH2 0x53A8 DUP5 SLOAD PUSH2 0x5043 JUMP JUMPDEST DUP5 PUSH2 0x533D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x53E0 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x53C9 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1575 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x540F JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x53EF JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x542C JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x5488 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x501C JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 SLT PUSH0 DUP4 SLT DUP1 ISZERO DUP3 AND DUP3 ISZERO DUP3 AND OR ISZERO PUSH2 0x54EA JUMPI PUSH2 0x54EA PUSH2 0x501C JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65645543 TSTORE 0xD2 PUSH2 0xA4B9 0xB3 CALLDATASIZE BLOBHASH PUSH4 0xF7738A7A PUSH7 0x2AD9C84396D64B 0xE3 CALLDATASIZE MSTORE DUP5 0xBB PUSH32 0xA5041A2646970667358221220511D0766C9CCE108D2DA4FE4427B88CE01D079 EXTCODESIZE DUP1 EXTCODECOPY 0x2E SWAP3 SWAP4 0xBE PUSH12 0x7D932E47D864736F6C634300 ADDMOD SHR STOP CALLER ","sourceMap":"1545:27062:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:307;;;;;;;;;;-1:-1:-1;5612:307:51;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5612:307:51;;;;;;;;22845:275;;;;;;;;;;;;;:::i;:::-;;;643:25:88;;;631:2;616:18;22845:275:51;497:177:88;7401:92:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10709:156::-;;;;;;;;;;-1:-1:-1;10709:156:51;;;;;:::i;:::-;;:::i;9617:::-;;;;;;;;;;-1:-1:-1;9617:156:51;;;;;:::i;:::-;-1:-1:-1;;;;;9725:15:51;9693:7;9725:15;;;:9;:15;;;;;;9750:9;:16;9725:15;;-1:-1:-1;;;9750:16:51;;;-1:-1:-1;;;;;9750:16:51;;9617:156;;;;;2132:25:88;;;2188:2;2173:18;;2166:34;;;;2105:18;9617:156:51;1958:248:88;19972:117:51;;;;;;;;;;;;;:::i;24989:152::-;;;;;;;;;;;;;:::i;8456:134::-;;;;;;;;;;;;;:::i;9273:104::-;;;;;;;;;;-1:-1:-1;9273:104:51;;;;;:::i;:::-;-1:-1:-1;;;;;9357:15:51;9335:7;9357:15;;;:9;:15;;;;;;;9273:104;9386:213:59;;;;;;;;;;-1:-1:-1;9386:213:59;;;;;:::i;:::-;;:::i;11304:258:51:-;;;;;;;;;;-1:-1:-1;11304:258:51;;;;;:::i;:::-;;:::i;8288:116::-;;;;;;;;;;;;;:::i;:::-;;;4469:4:88;4457:17;;;4439:36;;4427:2;4412:18;8288:116:51;4297:184:88;26298:209:51;;;;;;;;;;-1:-1:-1;26298:209:51;;;;;:::i;:::-;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;12566:200:51;;;;;;;;;;-1:-1:-1;12566:200:51;;;;;:::i;:::-;;:::i;3916:102:57:-;;;;;;;;;;;;;:::i;22369:472:51:-;;;;;;;;;;-1:-1:-1;22369:472:51;;;;;:::i;:::-;;:::i;4022:94:57:-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;4671:32:88;;;4653:51;;4641:2;4626:18;4022:94:57;4486:224:88;8389:249:59;;;;;;;;;;;;;:::i;3922:220:7:-;;;;;;:::i;:::-;;:::i;18746:210:51:-;;;;;;;;;;;;;:::i;3027:131:7:-;;;;;;;;;;;;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;20448:119:51;;;;;;;;;;;;;:::i;19757:97::-;;;;;;;;;;-1:-1:-1;19840:4:51;:8;-1:-1:-1;;;;;19840:8:51;19757:97;;4411:287;;;;;;;;;;-1:-1:-1;4411:287:51;;;;;:::i;:::-;;:::i;8640:279::-;;;;;;;;;;-1:-1:-1;8640:279:51;;;;;:::i;:::-;;:::i;24448:299::-;;;;;;;;;;-1:-1:-1;24448:299:51;;;;;:::i;:::-;;:::i;18561:181::-;;;;;;;;;;-1:-1:-1;18561:181:51;;;;;:::i;:::-;;:::i;7871:155:59:-;;;;;;;;;;;;;:::i;20571:767:51:-;;;;;;;;;;-1:-1:-1;20571:767:51;;;;;:::i;:::-;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;27792:437:51:-;;;;;;;;;;-1:-1:-1;27792:437:51;;;;;:::i;:::-;;:::i;25695:599::-;;;;;;;;;;-1:-1:-1;25695:599:51;;;;;:::i;:::-;;:::i;28233:93::-;;;;;;;;;;-1:-1:-1;28304:7:51;:17;-1:-1:-1;;;28304:17:51;;-1:-1:-1;;;;;28304:17:51;28233:93;;19191:100;;;;;;;;;;-1:-1:-1;19273:13:51;;-1:-1:-1;;;;;19273:13:51;19191:100;;7596:96;;;;;;;;;;;;;:::i;19858:110::-;;;;;;;;;;-1:-1:-1;19945:4:51;:17;-1:-1:-1;;;19945:17:51;;-1:-1:-1;;;;;19945:17:51;19858:110;;18960:227;;;;;;;;;;;;;:::i;13223:354::-;;;;;;;;;;-1:-1:-1;13223:354:51;;;;;:::i;:::-;;:::i;10232:162::-;;;;;;;;;;-1:-1:-1;10232:162:51;;;;;:::i;:::-;;:::i;21342:775::-;;;;;;;;;;-1:-1:-1;21342:775:51;;;;;:::i;:::-;;:::i;9943:104::-;;;;;;;;;;-1:-1:-1;10025:9:51;:16;-1:-1:-1;;;10025:16:51;;-1:-1:-1;;;;;10025:16:51;9943:104;;20093:117;;;;;;;;;;;;;:::i;26640:1148::-;;;;;;;;;;-1:-1:-1;26640:1148:51;;;;;:::i;:::-;;:::i;8809:89:59:-;;;;;;;;;;;;;:::i;25145:546:51:-;;;;;;;;;;-1:-1:-1;25145:546:51;;;;;:::i;:::-;;:::i;26511:125::-;;;;;;;;;;;;;:::i;5845:1689:59:-;;;;;;;;;;-1:-1:-1;5845:1689:59;;;;;:::i;:::-;;:::i;10444:143:51:-;;;;;;;;;;-1:-1:-1;10444:143:51;;;;;:::i;:::-;;:::i;20214:113::-;;;;;;;;;;;;;:::i;24126:318::-;;;;;;;;;;-1:-1:-1;24126:318:51;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;20331:113:51:-;;;;;;;;;;;;;:::i;23124:998::-;;;;;;;;;;-1:-1:-1;23124:998:51;;;;;:::i;:::-;;:::i;5612:307::-;5697:4;5722:36;5746:11;5722:23;:36::i;:::-;:85;;;-1:-1:-1;;;;;;;5768:39:51;;-1:-1:-1;;;5768:39:51;5722:85;:142;;;-1:-1:-1;;;;;;;5817:47:51;;-1:-1:-1;;;5817:47:51;5722:142;:192;;;-1:-1:-1;;;;;;;5874:40:51;;-1:-1:-1;;;5874:40:51;5722:192;5709:205;5612:307;-1:-1:-1;;5612:307:51:o;22845:275::-;22912:7;22927:14;22944:48;22969:22;:20;:22::i;:::-;22952:4;:8;-1:-1:-1;;;;;22952:8:51;;22944:24;:48::i;:::-;22927:65;;22998:20;23021:13;:11;:13::i;:::-;22998:36;;23060:6;23044:12;:22;23040:75;;23075:21;23090:6;23075:12;:21;:::i;:::-;23068:28;;;;22845:275;:::o;23040:75::-;23114:1;23107:8;;;;22845:275;:::o;7401:92::-;7455:13;7483:5;7476:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:92;:::o;10709:156::-;10792:4;10804:39;965:10:14;10827:7:51;10836:6;10804:8;:39::i;:::-;-1:-1:-1;10856:4:51;10709:156;;;;:::o;19972:117::-;20061:4;:22;-1:-1:-1;;;20061:22:51;;-1:-1:-1;;;;;20061:22:51;;19972:117::o;24989:152::-;25043:7;25081:20;:9;:18;:20::i;:::-;25065:13;:11;:13::i;:::-;:36;;;;:::i;:::-;25058:43;;24989:152;:::o;8456:134::-;8517:7;8539:46;8565:19;:17;:19::i;:::-;8539:9;;:25;:46::i;9386:213:59:-;9509:12;1802:24:57;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9536:58:59::1;9581:12;9544:14;19273:13:51::0;;-1:-1:-1;;;;;19273:13:51;;19191:100;9544:14:59::1;-1:-1:-1::0;;;;;9536:44:59::1;::::0;::::1;:58::i;:::-;9529:65;;2615:1:57;9386:213:59::0;;;;:::o;11304:258:51:-;11410:4;965:10:14;11458:40:51;11474:6;965:10:14;11491:6:51;11458:15;:40::i;:::-;11504:36;11514:6;11522:9;11533:6;11504:9;:36::i;:::-;-1:-1:-1;11553:4:51;;11304:258;-1:-1:-1;;;;11304:258:51:o;8288:116::-;8346:5;8366:11;-1:-1:-1;;;;;8366:20:51;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8366:31:51;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;26298:209::-;-1:-1:-1;;;;;26425:16:51;;26371:7;26425:16;;;:6;:16;;;;;26454:48;26475:26;:24;:26::i;:::-;26454:4;;:20;:48::i;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;12566:200:51:-;12654:4;12666:78;965:10:14;12689:7:51;12733:10;12698:32;965:10:14;12722:7:51;12698:9;:32::i;:::-;:45;;;;:::i;:::-;12666:8;:78::i;3916:102:57:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;22369:472:51:-;22462:7;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;22500:7:51::1;:17:::0;-1:-1:-1;;;22500:17:51;::::1;-1:-1:-1::0;;;;;22500:17:51::1;22492:40:::0;;:100:::1;;-1:-1:-1::0;22536:7:51::1;:17:::0;:56:::1;::::0;-1:-1:-1;;;22536:56:51;;22569:4:::1;22536:56;::::0;::::1;13457:51:88::0;-1:-1:-1;;;;;13544:32:88;;;13524:18;;;13517:60;13593:18;;;13586:34;;;-1:-1:-1;;;22536:17:51;;::::1;::::0;;::::1;::::0;:32:::1;::::0;13430:18:88;;22536:56:51::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22477:165;;;;-1:-1:-1::0;;;22477:165:51::1;;;;;;;:::i;:::-;22648:23;22654:8;22664:6;22648:5;:23::i;:::-;22677:26;:24;:26::i;:::-;22738:20;:18;:20::i;:::-;22717:17;:15;:17::i;:::-;:41;;22709:95;;;::::0;-1:-1:-1;;;22709:95:51;;14486:2:88;22709:95:51::1;::::0;::::1;14468:21:88::0;14525:2;14505:18;;;14498:30;14564:34;14544:18;;;14537:62;-1:-1:-1;;;14615:18:88;;;14608:39;14664:19;;22709:95:51::1;14284:405:88::0;22709:95:51::1;22817:19;22827:8;22817:9;:19::i;:::-;22810:26:::0;22369:472;-1:-1:-1;;;22369:472:51:o;8389:249:59:-;1503:19:8;:17;:19::i;:::-;8516:61:59::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;8516:61:59::1;-1:-1:-1::0;;;8516:61:59::1;::::0;;8442:19:::1;::::0;8464:119:::1;::::0;8472:14:::1;19273:13:51::0;;-1:-1:-1;;;;;19273:13:51;;19191:100;8464:119:59::1;8442:141;;8589:44;8615:6;8604:28;;;;;;;;;;;;:::i;:::-;8589:14;:44::i;3922:220:7:-:0;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;18746:210:51:-:0;18793:7;18808:20;18831:4;-1:-1:-1;;;;;18831:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18882:4;:8;18808:41;;-1:-1:-1;;;;;;18882:8:51;18859:32;;18855:96;;;18923:4;:8;18900:32;;-1:-1:-1;;;;;18923:8:51;18900:12;:32;:::i;:::-;18893:39;;;18746:210;:::o;18855:96::-;18950:1;18943:8;;;18746:210;:::o;3027:131:7:-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;15273:2:88;2174:92:7;;;15255:21:88;15312:2;15292:18;;;15285:30;15351:34;15331:18;;;15324:62;15422:26;15402:18;;;15395:54;15466:19;;2174:92:7;15071:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;20448:119:51:-;20496:7;20518:44;20543:4;-1:-1:-1;;;;;20543:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20526:4;:8;-1:-1:-1;;;;;20526:8:51;;20518:24;:44::i;4411:287::-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;15698:2:88;3325:201:6;;;15680:21:88;15737:2;15717:18;;;15710:30;15776:34;15756:18;;;15749:62;-1:-1:-1;;;15827:18:88;;;15820:44;15881:19;;3325:201:6;15496:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;4584:16:51::1;:14;:16::i;:::-;4606:87;4630:5;4637:7;4646:19;4667:25;4606:23;:87::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;4439:36:88;;3721:14:6;;4427:2:88;4412:18;3721:14:6;;;;;;;3647:99;3269:483;4411:287:51;;;;:::o;8640:279::-;-1:-1:-1;;;;;8756:18:51;;8714:7;8756:18;;;:9;:18;;;;;;8784:21;;;8780:35;;-1:-1:-1;8814:1:51;;8640:279;-1:-1:-1;;8640:279:51:o;8780:35::-;8828:86;:75;8875:27;:16;:25;:27::i;:::-;8828:39;8847:19;:17;:19::i;:::-;8828:9;;:18;:39::i;:::-;:46;;:75::i;:::-;:84;:86::i;24448:299::-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;-1:-1:-1;;;;;24537:22:51;::::1;24529:78;;;;-1:-1:-1::0;;;24529:78:51::1;;;;;;;:::i;:::-;24613:21;24637:17;24645:8;24637:7;:17::i;:::-;-1:-1:-1::0;;;;;24667:16:51;::::1;;::::0;;;:6:::1;:16;::::0;;;;;24660:23;;;;24694:48;24613:41;;-1:-1:-1;24667:16:51;24694:48:::1;::::0;::::1;::::0;24613:41;643:25:88;;631:2;616:18;;497:177;24694:48:51::1;;;;;;;;24523:224;24448:299:::0;:::o;18561:181::-;18621:7;18640;18636:101;;;18656:39;18675:19;:17;:19::i;18636:101::-;-1:-1:-1;;18721:9:51;:15;-1:-1:-1;;;;;18721:15:51;;18561:181::o;18636:101::-;18561:181;;;:::o;7871:155:59:-;1503:19:8;:17;:19::i;:::-;7964:56:59::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7964:56:59::1;-1:-1:-1::0;;;7964:56:59::1;::::0;;7919:102:::1;::::0;7927:14:::1;19273:13:51::0;;-1:-1:-1;;;;;19273:13:51;;19191:100;20571:767;965:10:14;3862:20:51;;;;:6;:20;;;;;:26;-1:-1:-1;;;;;3862:26:51;:31;;3854:73;;;;-1:-1:-1;;;3854:73:51;;;;;;;:::i;:::-;1503:19:8::1;:17;:19::i;:::-;20707:4:51::2;-1:-1:-1::0;;;;;20707:25:51::2;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20694:9;:40;;20686:96;;;::::0;-1:-1:-1;;;20686:96:51;;17082:2:88;20686:96:51::2;::::0;::::2;17064:21:88::0;17121:2;17101:18;;;17094:30;17160:34;17140:18;;;17133:62;-1:-1:-1;;;17211:18:88;;;17204:41;17262:19;;20686:96:51::2;16880:407:88::0;20686:96:51::2;20788:42;20810:19;:17;:19::i;:::-;20788:9;::::0;:21:::2;:42::i;:::-;20840:4;:8:::0;-1:-1:-1;;;;;20840:8:51::2;;:13:::0;20836:415:::2;;20874:21;:9;:19;:21::i;:::-;20863:4;:32:::0;;-1:-1:-1;;;;;;20863:32:51::2;-1:-1:-1::0;;;;;20863:32:51;;;::::2;::::0;;;::::2;::::0;;20923:29:::2;:18:::0;:27:::2;:29::i;:::-;20903:4;:49:::0;;-1:-1:-1;;;;;20903:49:51;;;::::2;-1:-1:-1::0;;;20903:49:51::2;-1:-1:-1::0;;;;20903:49:51;;::::2;::::0;;;::::2;::::0;;20836:415:::2;;;20999:4;:8:::0;-1:-1:-1;;;;;20999:8:51::2;20973:15;21033:19;21043:9:::0;20999:8;21033:19:::2;:::i;:::-;21016:36:::0;-1:-1:-1;21080:127:51::2;:107;21016:36:::0;21126::::2;:18:::0;21152:9;21126:25:::2;:36::i;:::-;21089:4;:17:::0;21081:42:::2;::::0;-1:-1:-1;;;21089:17:51;::::2;-1:-1:-1::0;;;;;21089:17:51::2;21115:7:::0;21081:33:::2;:42::i;:::-;:81;;;;:::i;:::-;21080:99:::0;::::2;:107::i;:::-;:125;:127::i;:::-;21060:4;:147:::0;;-1:-1:-1;;;;;21060:147:51;;;::::2;-1:-1:-1::0;;;21060:147:51::2;-1:-1:-1::0;;;;21060:147:51;;::::2;::::0;;;::::2;::::0;;21226:18:::2;:6:::0;:16:::2;:18::i;:::-;21215:4;:29:::0;;-1:-1:-1;;;;;;21215:29:51::2;-1:-1:-1::0;;;;;21215:29:51;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;20836:415:51::2;21261:40;::::0;;2132:25:88;;;2188:2;2173:18;;2166:34;;;21261:40:51::2;::::0;2105:18:88;21261:40:51::2;;;;;;;21307:26;:24;:26::i;3828:84:57:-:0;-1:-1:-1;;;;;;;;;;;2529:11:57;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;27792:437:51:-:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;27926:35:51;::::1;::::0;;:110:::1;;;28025:11;-1:-1:-1::0;;;;;27965:71:51::1;27994:12;-1:-1:-1::0;;;;;27965:54:51::1;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27965:71:51::1;;27926:110;27911:180;;;::::0;-1:-1:-1;;;27911:180:51;;17771:2:88;27911:180:51::1;::::0;::::1;17753:21:88::0;17810:2;17790:18;;;17783:30;17849:34;17829:18;;;17822:62;-1:-1:-1;;;17900:18:88;;;17893:37;17947:19;;27911:180:51::1;17569:403:88::0;27911:180:51::1;28097:7;:32:::0;;-1:-1:-1;;;;;;;;28097:32:51::1;-1:-1:-1::0;;;;;;;;28097:32:51;::::1;;;::::0;;28135:89:::1;28153:47;28097:32:::0;28135:17:::1;:89::i;:::-;27792:437:::0;;;:::o;25695:599::-;1503:19:8;:17;:19::i;:::-;25805:1:51::1;25796:6;:10;25788:66;;;::::0;-1:-1:-1;;;25788:66:51;;18179:2:88;25788:66:51::1;::::0;::::1;18161:21:88::0;18218:2;18198:18;;;18191:30;18257:34;18237:18;;;18230:62;-1:-1:-1;;;18308:18:88;;;18301:41;18359:19;;25788:66:51::1;17977:407:88::0;25788:66:51::1;-1:-1:-1::0;;;;;25955:18:51;::::1;25916:36;25955:18:::0;;;:6:::1;:18;::::0;;;;25987:10;;25955:18;;-1:-1:-1;;;;;25987:10:51;;::::1;:15:::0;;25979:53:::1;;;::::0;-1:-1:-1;;;25979:53:51;;18591:2:88;25979:53:51::1;::::0;::::1;18573:21:88::0;18630:2;18610:18;;;18603:30;18669:27;18649:18;;;18642:55;18714:18;;25979:53:51::1;18389:349:88::0;25979:53:51::1;26038:44;26047:6;26055:26;:24;:26::i;:::-;26038:4:::0;;:44;:8:::1;:44::i;:::-;;26088:31;26111:6;26088:15;:31::i;:::-;26149:10;-1:-1:-1::0;;;;;26130:38:51::1;;26161:6;26130:38;;;;643:25:88::0;;631:2;616:18;;497:177;26130:38:51::1;;;;;;;;26225:64;965:10:14::0;26275:4:51::1;26282:6;26225:10;:8;:10::i;:::-;-1:-1:-1::0;;;;;26225:27:51::1;::::0;:64;;:27:::1;:64::i;7596:96::-:0;7652:13;7680:7;7673:14;;;;;:::i;18960:227::-;19013:7;19028:14;19045:47;19071:20;:18;:20::i;:::-;19045:4;-1:-1:-1;;;;;19045:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:25;;:47::i;13223:354::-;965:10:14;13316:4:51;13355:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13355:34:51;;;;;;;;;;13403:35;;;;13395:86;;;;-1:-1:-1;;;13395:86:51;;18945:2:88;13395:86:51;;;18927:21:88;18984:2;18964:18;;;18957:30;19023:34;19003:18;;;18996:62;-1:-1:-1;;;19074:18:88;;;19067:36;19120:19;;13395:86:51;18743:402:88;13395:86:51;13487:67;965:10:14;13510:7:51;13519:34;13538:15;13519:16;:34;:::i;13487:67::-;-1:-1:-1;13568:4:51;;13223:354;-1:-1:-1;;;13223:354:51:o;10232:162::-;10318:4;10330:42;965:10:14;10354:9:51;10365:6;10330:9;:42::i;21342:775::-;965:10:14;3862:20:51;;;;:6;:20;;;;;:26;-1:-1:-1;;;;;3862:26:51;:31;;3854:73;;;;-1:-1:-1;;;3854:73:51;;;;;;;:::i;:::-;1503:19:8::1;:17;:19::i;:::-;21523:4:51::2;:8:::0;-1:-1:-1;;;;;21523:8:51::2;21502:30:::0;::::2;;21494:94;;;::::0;-1:-1:-1;;;21494:94:51;;19352:2:88;21494:94:51::2;::::0;::::2;19334:21:88::0;19391:2;19371:18;;;19364:30;19430:34;19410:18;;;19403:62;-1:-1:-1;;;19481:18:88;;;19474:49;19540:19;;21494:94:51::2;19150:415:88::0;21494:94:51::2;21594:42;21616:19;:17;:19::i;21594:42::-;21655:4;:8:::0;-1:-1:-1;;;;;21655:8:51::2;21647:30:::0;;;21643:384:::2;;21687:4;:12:::0;;-1:-1:-1;;;;;;21707:21:51;;;21643:384:::2;;;21775:4;:8:::0;-1:-1:-1;;;;;21775:8:51::2;21749:15;21809:19;21819:9:::0;21775:8;21809:19:::2;:::i;:::-;21792:36:::0;-1:-1:-1;21856:127:51::2;:107;21792:36:::0;21902::::2;:18:::0;21928:9;21902:25:::2;:36::i;:::-;21865:4;:17:::0;21857:42:::2;::::0;-1:-1:-1;;;21865:17:51;::::2;-1:-1:-1::0;;;;;21865:17:51::2;21891:7:::0;21857:33:::2;:42::i;:::-;:81;;;;:::i;21856:127::-;21836:4;:147:::0;;-1:-1:-1;;;;;21836:147:51;;;::::2;-1:-1:-1::0;;;21836:147:51::2;-1:-1:-1::0;;;;21836:147:51;;::::2;::::0;;;::::2;::::0;;22002:18:::2;:6:::0;:16:::2;:18::i;:::-;21991:4;:29:::0;;-1:-1:-1;;;;;;21991:29:51::2;-1:-1:-1::0;;;;;21991:29:51;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;21643:384:51::2;22037:42;::::0;;2132:25:88;;;2188:2;2173:18;;2166:34;;;22037:42:51::2;::::0;2105:18:88;22037:42:51::2;;;;;;;22085:27;22101:10;22085:15;:27::i;20093:117::-:0;20176:7;:28;20146:7;;20168:37;;20176:28;;20168:7;:37::i;26640:1148::-;1802:24:57;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26760:30:51::1;::::0;-1:-1:-1;26751:39:51::1;::::0;-1:-1:-1;;26751:39:51;::::1;:5;:39;;;;;;;;:::i;:::-;::::0;26747:852:::1;;26831:17;26839:8;26831:7;:17::i;:::-;26800:7;:48:::0;;-1:-1:-1;;26800:48:51::1;;::::0;;;::::1;::::0;;;::::1;::::0;;26747:852:::1;;;26874:28;26865:5;:37;;;;;;;;:::i;:::-;::::0;26861:738:::1;;26941:17;26949:8;26941:7;:17::i;:::-;26912:7;:46:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;26912:46:51;;::::1;::::0;;;::::1;::::0;;26861:738:::1;;;26984:28;26975:5;:37;;;;;;;;:::i;:::-;::::0;26971:628:::1;;27051:17;27059:8;27051:7;:17::i;:::-;27022:7;:46:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;27022:46:51;;::::1;::::0;;;::::1;::::0;;26971:628:::1;;;27094:34;27085:5;:43;;;;;;;;:::i;:::-;::::0;27081:518:::1;;27575:17;27583:8;27575:7;:17::i;:::-;27540:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;27540:52:51::1;-1:-1:-1::0;;27540:52:51;;::::1;::::0;;;::::1;::::0;;27081:518:::1;27604:179;27747:5;27739:14;;;;;;;;:::i;:::-;27671:82;::::0;27679:56:::1;27671:82;:::i;:::-;27629:132;;;;;;;;:::i;:::-;27769:8;27604:17;:179::i;8809:89:59:-:0;1503:19:8;:17;:19::i;:::-;8860:16:59::1;:14;:16::i;:::-;8882:11;:9;:11::i;:::-;8809:89::o:0;25145:546:51:-;965:10:14;25267:7:51;3862:20;;;:6;:20;;;;;:26;-1:-1:-1;;;;;3862:26:51;:31;;3854:73;;;;-1:-1:-1;;;3854:73:51;;;;;;;:::i;:::-;1503:19:8::1;:17;:19::i;:::-;25304:6:51::0;25325:41:::2;25304:6:::0;25342:23:::2;:21;:23::i;:::-;25325:8;:41::i;:::-;25316:50;;25376:6;25386:1;25376:11:::0;25372:35:::2;;25396:11:::0;-1:-1:-1;25389:18:51::2;;25372:35;965:10:14::0;25413:36:51::2;25452:20:::0;;;:6:::2;:20;::::0;;;;25478:44:::2;25487:6:::0;25495:26:::2;:24;:26::i;:::-;25478:4:::0;;:44;:8:::2;:44::i;:::-;-1:-1:-1::0;25528:32:51::2;25544:15;25552:6:::0;25544:15:::2;:::i;:::-;25528;:32::i;:::-;25566:29;25578:8;25588:6;25566:11;:29::i;:::-;25606:47;::::0;;2132:25:88;;;2188:2;2173:18;;2166:34;;;965:10:14;;25606:47:51::2;::::0;2105:18:88;25606:47:51::2;;;;;;;25666:20;25680:6:::0;25666:11;:20:::2;:::i;:::-;25659:27:::0;25145:546;-1:-1:-1;;;;;25145:546:51:o;26511:125::-;26598:7;:32;26568:7;;26590:41;;-1:-1:-1;;;26598:32:51;;;;26590:7;:41::i;5845:1689:59:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;6000:28:59;::::1;::::0;;:88:::1;;-1:-1:-1::0;6032:56:59::1;::::0;-1:-1:-1;;;6032:56:59;;-1:-1:-1;;;6032:56:59::1;::::0;::::1;19987:52:88::0;-1:-1:-1;;;;;6032:23:59;::::1;::::0;::::1;::::0;19960:18:88;;6032:56:59::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5985:183;;;::::0;;-1:-1:-1;;;5985:183:59;;20252:2:88;5985:183:59::1;::::0;::::1;20234:21:88::0;20271:18;;;20264:30;;;;20330:34;20310:18;;;20303:62;20401:34;20381:18;;;20374:62;20453:19;;5985:183:59::1;20050:428:88::0;5985:183:59::1;6174:10;6195:14;19273:13:51::0;;-1:-1:-1;;;;;19273:13:51;;19191:100;6195:14:59::1;6174:36:::0;-1:-1:-1;6258:48:59::1;-1:-1:-1::0;;;;;6316:16:59;::::1;::::0;6312:987:::1;;6346:5;6342:951;;;6521:58;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6521:58:59::1;-1:-1:-1::0;;;6521:58:59::1;::::0;;6494:95;;6457:12:::1;::::0;;;-1:-1:-1;;;;;6494:15:59;::::1;::::0;:95:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6456:133;;;;6604:7;6599:173;;6634:54;6625:63;;6599:173;;;6717:44;6743:6;6732:28;;;;;;;;;;;;:::i;6717:44::-;6353:756;;6342:951;;;7171:58;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7171:58:59::1;-1:-1:-1::0;;;7171:58:59::1;::::0;;7125:19:::1;::::0;7147:83:::1;::::0;-1:-1:-1;;;;;7147:23:59;::::1;::::0;::::1;:83::i;:::-;7125:105;;7240:44;7266:6;7255:28;;;;;;;;;;;;:::i;7240:44::-;7115:178;6342:951;19366:13:51::0;:21;;-1:-1:-1;;;;;;19366:21:51;-1:-1:-1;;;;;19366:21:51;;;;;;;;;-1:-1:-1;7371:16:59;;7367:116:::1;;7421:54;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7421:54:59::1;-1:-1:-1::0;;;7421:54:59::1;::::0;;7397:79:::1;::::0;-1:-1:-1;;;;;7397:23:59;::::1;::::0;::::1;:79::i;:::-;;7367:116;7488:41;7506:6;7522:5;7488:17;:41::i;:::-;5979:1555;;5845:1689:::0;;;;:::o;10444:143:51:-;-1:-1:-1;;;;;10555:18:51;;;10533:7;10555:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10444:143::o;20214:113::-;20295:7;:26;20265:7;;20287:35;;20295:26;;;;;20287:7;:35::i;24126:318::-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;-1:-1:-1;;;;;24212:22:51;::::1;24204:78;;;;-1:-1:-1::0;;;24204:78:51::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24327:16:51;::::1;24288:36;24327:16:::0;;;:6:::1;:16;::::0;;;;24353:10;;24327:16;;-1:-1:-1;;;;;24353:10:51;;::::1;:15:::0;;24349:91:::1;;-1:-1:-1::0;;;;;;1990:15:63;1957:49;;;;;;24402:31:51::1;::::0;-1:-1:-1;;;;;24402:31:51;::::1;::::0;::::1;::::0;;;::::1;24198:246;24126:318:::0;:::o;4120:97:57:-;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20331:113:51:-;20412:7;:26;20382:7;;20404:35;;20412:26;;;;;20404:7;:35::i;23124:998::-;23218:7;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;23601:19:51::1;23623:50;23632:19;23642:8;23632:9;:19::i;:::-;23653;:17;:19::i;23623:50::-;23601:72;;-1:-1:-1::0;;23683:6:51::1;:27:::0;23679:53:::1;;23721:11;23712:20;;23679:53;23742:6;23752:1;23742:11:::0;23738:25:::1;;23762:1;23755:8;;;;;23738:25;23787:11;23777:6;:21;;23769:59;;;::::0;-1:-1:-1;;;23769:59:51;;20991:2:88;23769:59:51::1;::::0;::::1;20973:21:88::0;21030:2;21010:18;;;21003:30;21069:27;21049:18;;;21042:55;21114:18;;23769:59:51::1;20789:349:88::0;23769:59:51::1;23857:7;:17:::0;-1:-1:-1;;;23857:17:51;::::1;-1:-1:-1::0;;;;;23857:17:51::1;23849:40:::0;;:103:::1;;-1:-1:-1::0;23893:7:51::1;:17:::0;:59:::1;::::0;-1:-1:-1;;;23893:59:51;;23929:4:::1;23893:59;::::0;::::1;13457:51:88::0;-1:-1:-1;;;;;13544:32:88;;;13524:18;;;13517:60;13593:18;;;13586:34;;;-1:-1:-1;;;23893:17:51;;::::1;::::0;;::::1;::::0;:35:::1;::::0;13430:18:88;;23893:59:51::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23834:168;;;;-1:-1:-1::0;;;23834:168:51::1;;;;;;;:::i;:::-;24008:23;24014:8;24024:6;24008:5;:23::i;:::-;24037:26;:24;:26::i;:::-;24069:29;24081:8;24091:6;24069:11;:29::i;:::-;-1:-1:-1::0;24111:6:51;;23124:998;-1:-1:-1;;23124:998:51:o;3618:206:57:-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;1077:319:65:-;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;16569:324:51:-;-1:-1:-1;;;;;16666:19:51;;16658:69;;;;-1:-1:-1;;;16658:69:51;;21345:2:88;16658:69:51;;;21327:21:88;21384:2;21364:18;;;21357:30;21423:34;21403:18;;;21396:62;-1:-1:-1;;;21474:18:88;;;21467:35;21519:19;;16658:69:51;21143:401:88;16658:69:51;-1:-1:-1;;;;;16741:21:51;;16733:69;;;;-1:-1:-1;;;16733:69:51;;21751:2:88;16733:69:51;;;21733:21:88;21790:2;21770:18;;;21763:30;21829:34;21809:18;;;21802:62;-1:-1:-1;;;21880:18:88;;;21873:33;21923:19;;16733:69:51;21549:399:88;16733:69:51;-1:-1:-1;;;;;16809:18:51;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16856:32;;643:25:88;;;16856:32:51;;616:18:88;16856:32:51;;;;;;;;16569:324;;;:::o;3735:171:63:-;3841:19;;3811:7;;3833:68;;:57;;554:4;;3833:39;;-1:-1:-1;;;3841:19:63;;-1:-1:-1;;;;;3841:19:63;3833:37;:39::i;1600:227::-;1705:7;1727:95;:84;1774:36;1783:12;1797;1774:8;:36::i;:::-;1735:19;;1727:39;;-1:-1:-1;;;1735:19:63;;-1:-1:-1;;;;;1735:19:63;1727:37;:39::i;6674:198:38:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;11825:372:51:-;11921:24;11948:25;11958:5;11965:7;11948:9;:25::i;:::-;11921:52;;-1:-1:-1;;11983:16:51;:37;11979:214;;12058:6;12038:16;:26;;12030:69;;;;-1:-1:-1;;;12030:69:51;;22155:2:88;12030:69:51;;;22137:21:88;22194:2;22174:18;;;22167:30;22233:32;22213:18;;;22206:60;22283:18;;12030:69:51;21953:354:88;12030:69:51;12127:51;12136:5;12143:7;12171:6;12152:16;:25;12127:8;:51::i;:::-;11915:282;11825:372;;;:::o;14021:661::-;-1:-1:-1;;;;;14122:20:51;;14114:71;;;;-1:-1:-1;;;14114:71:51;;22514:2:88;14114:71:51;;;22496:21:88;22553:2;22533:18;;;22526:30;22592:34;22572:18;;;22565:62;-1:-1:-1;;;22643:18:88;;;22636:36;22689:19;;14114:71:51;22312:402:88;14114:71:51;-1:-1:-1;;;;;14199:23:51;;14191:72;;;;-1:-1:-1;;;14191:72:51;;22921:2:88;14191:72:51;;;22903:21:88;22960:2;22940:18;;;22933:30;22999:34;22979:18;;;22972:62;-1:-1:-1;;;23050:18:88;;;23043:34;23094:19;;14191:72:51;22719:400:88;14191:72:51;14270:47;14291:6;14299:9;14310:6;14270:20;:47::i;:::-;14323:20;14346:53;14371:19;:17;:19::i;:::-;14346:9;;14392:6;14346:24;:53::i;:::-;-1:-1:-1;;;;;14430:17:51;;14406:21;14430:17;;;:9;:17;;;;;;14323:76;;-1:-1:-1;14461:29:51;;;;14453:81;;;;-1:-1:-1;;;14453:81:51;;23326:2:88;14453:81:51;;;23308:21:88;23365:2;23345:18;;;23338:30;23404:34;23384:18;;;23377:62;-1:-1:-1;;;23455:18:88;;;23448:37;23502:19;;14453:81:51;23124:403:88;14453:81:51;14560:28;14576:12;14560:13;:28;:::i;:::-;-1:-1:-1;;;;;14540:17:51;;;;;;;:9;:17;;;;;;:48;;;;14594:20;;;;;;;;:36;;14618:12;;14540:17;14594:36;;14618:12;;14594:36;:::i;:::-;;;;;;;;14659:9;-1:-1:-1;;;;;14642:35:51;14651:6;-1:-1:-1;;;;;14642:35:51;;14670:6;14642:35;;;;643:25:88;;631:2;616:18;;497:177;14642:35:51;;;;;;;;14108:574;;14021:661;;;:::o;3206:169:57:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;2841:944:4:-:0;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;23923:2:88;3631:56:4;;;23905:21:88;23962:2;23942:18;;;23935:30;24001:34;23981:18;;;23974:62;-1:-1:-1;;;24052:18:88;;;24045:44;24106:19;;3631:56:4;23721:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;24338:2:88;3509:82:4;;;24320:21:88;24377:2;24357:18;;;24350:30;24416:34;24396:18;;;24389:62;-1:-1:-1;;;24467:18:88;;;24460:39;24516:19;;3509:82:4;24136:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;4671:32:88;;;4653:51;;4641:2;4626:18;2785:22:8::1;;;;;;;2697:117::o:0;14933:436:51:-;-1:-1:-1;;;;;15012:21:51;;15004:66;;;;-1:-1:-1;;;15004:66:51;;24956:2:88;15004:66:51;;;24938:21:88;;;24975:18;;;24968:30;25034:34;25014:18;;;25007:62;25086:18;;15004:66:51;24754:356:88;15004:66:51;15093:1;15084:6;:10;15076:73;;;;-1:-1:-1;;;15076:73:51;;25317:2:88;15076:73:51;;;25299:21:88;25356:2;25336:18;;;25329:30;25395:34;25375:18;;;25368:62;-1:-1:-1;;;25446:18:88;;;25439:48;25504:19;;15076:73:51;25115:414:88;15076:73:51;15156:49;15185:1;15189:7;15198:6;15156:20;:49::i;:::-;15211:20;15234:42;15248:6;15256:19;:17;:19::i;:::-;15234:9;;:42;:13;:42::i;:::-;-1:-1:-1;;;;;15282:18:51;;;;;;:9;:18;;;;;:34;;15211:65;;-1:-1:-1;15211:65:51;;15282:18;;;:34;;15211:65;;15282:34;:::i;:::-;;;;-1:-1:-1;;15327:37:51;;643:25:88;;;-1:-1:-1;;;;;15327:37:51;;;15344:1;;15327:37;;631:2:88;616:18;15327:37:51;497:177:88;17925:632:51;17976:20;17999:4;-1:-1:-1;;;;;17999:16:51;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17976:41;;18027:12;18043:1;18027:17;18023:530;;18046:4;:26;;-1:-1:-1;;;;;18046:26:51;;;3408:195:7;:::o;18023:530:51:-;18164:4;:8;18091:28;;18122:73;;18182:12;;18122:52;;-1:-1:-1;;;;;;;;18130:17:51;;;;-1:-1:-1;;;;;18164:8:51;18122:33;:52::i;:73::-;18091:104;-1:-1:-1;;;;;;18229:39:51;;18228:110;;18307:31;:20;:29;:31::i;:::-;18228:110;;;-1:-1:-1;;;;;18228:110:51;18203:4;:135;;-1:-1:-1;;;;;18203:135:51;;;;-1:-1:-1;;;18203:135:51;-1:-1:-1;;;;;18203:135:51;;;;;;;;;-1:-1:-1;17970:587:51;17925:632::o;2031:106:8:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;25736:2:88;2092:38:8;;;25718:21:88;25775:2;25755:18;;;25748:30;-1:-1:-1;;;25794:18:88;;;25787:46;25850:18;;2092:38:8;25534:340:88;22121:95:51;22186:25;22202:8;22186:15;:25::i;1663:322:65:-;1724:9;1829;;1888:3;1883:1;1876:9;;1864:22;1860:32;1854:39;;1826:70;1823:104;;;1917:1;1914;1907:12;1823:104;-1:-1:-1;1955:3:65;1948:11;;;;1968:1;1961:9;;1944:27;1940:35;;1663:322::o;1931:91:59:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1989:28:59::1;:26;:28::i;4753:800:51:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4976:1:51::1;4960:5;4954:19;:23;4946:64;;;::::0;-1:-1:-1;;;4946:64:51;;26493:2:88;4946:64:51::1;::::0;::::1;26475:21:88::0;26532:2;26512:18;;;26505:30;26571;26551:18;;;26544:58;26619:18;;4946:64:51::1;26291:352:88::0;4946:64:51::1;5048:1;5030:7;5024:21;:25;5016:68;;;::::0;-1:-1:-1;;;5016:68:51;;26850:2:88;5016:68:51::1;::::0;::::1;26832:21:88::0;26889:2;26869:18;;;26862:30;26928:32;26908:18;;;26901:60;26978:18;;5016:68:51::1;26648:354:88::0;5016:68:51::1;5090:5;:13;5098:5:::0;5090;:13:::1;:::i;:::-;-1:-1:-1::0;5109:7:51::1;:17;5119:7:::0;5109;:17:::1;:::i;:::-;-1:-1:-1::0;;;;;;;1990:15:63;1957:49;;;;5132:9:51::1;1957:49:63::0;5259:261:51::1;::::0;;::::1;::::0;::::1;::::0;;1849:3:::1;5259:261:::0;;-1:-1:-1;5259:261:51::1;::::0;::::1;::::0;;;;5300:28:::1;5308:19:::0;5300:7:::1;:28::i;:::-;5259:261;;;;;;5436:34;5444:25;5436:7;:34::i;:::-;5259:261;::::0;;::::1;::::0;;5510:1:::1;5259:261;::::0;;::::1;::::0;5249:271;;:7:::1;:271:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;5249:271:51::1;-1:-1:-1::0;;;5249:271:51::1;-1:-1:-1::0;;;;;;;;5249:271:51;;::::1;-1:-1:-1::0;;;5249:271:51::1;-1:-1:-1::0;;5249:271:51;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;5249:271:51;;::::1;::::0;::::1;-1:-1:-1::0;;5249:271:51;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;;::::0;;5527:21:::1;:19;:21::i;3908:247:65:-:0;4053:13;4046:21;;;;4088;;4085:28;;4075:70;;4135:1;4132;4125:12;1138:458:63;1298:23;;1236:7;;1272:15;;1298:31;;;;-1:-1:-1;;;1298:23:63;;;;:31;1294:77;;-1:-1:-1;;1346:18:63;;-1:-1:-1;;;;;1346:18:63;1339:25;;1294:77;1416:23;;1376:22;;1409:30;;-1:-1:-1;;;1416:23:63;;;;1409:4;:30;:::i;:::-;1401:39;;1376:64;;1459:132;-1:-1:-1;;;505:8:63;1531:14;1505:23;:12;:21;:23::i;:::-;:40;;;;:::i;:::-;1504:61;;;;:::i;:::-;1503:80;;;;:::i;:::-;1467:18;;-1:-1:-1;;;;;1467:18:63;;2257:319:65;2318:9;2431;;-1:-1:-1;;2455:29:65;;;2449:36;;2442:44;2428:59;2418:101;;2509:1;2506;2499:12;2418:101;-1:-1:-1;;;;2540:9:65;;2551:8;2536:24;2532:34;;2257:319::o;3428:254::-;3526:13;3519:21;;;;3564;;3616;3602:36;;3592:80;;-1:-1:-1;3662:1:65;3655:9;;3428:254;-1:-1:-1;3428:254:65:o;728:406:63:-;825:23;;:50;859:15;825:50;;-1:-1:-1;;;825:23:63;;;;:50;821:63;;728:406;;:::o;821:63::-;893:19;;-1:-1:-1;;;893:19:63;;-1:-1:-1;;;;;893:19:63;;:24;889:241;;-1:-1:-1;927:49:63;;-1:-1:-1;;;;;927:49:63;-1:-1:-1;;;960:15:63;927:49;;;;;;3916:102:57:o;889:241:63:-;1018:48;:36;1027:12;1041;1018:8;:36::i;:::-;:46;:48::i;:::-;997:69;;-1:-1:-1;;;;;997:69:63;;;;-1:-1:-1;;;1074:49:63;;;;-1:-1:-1;;;1107:15:63;1074:49;;;;;;;-1:-1:-1;728:406:63:o;9088:192:46:-;9145:7;-1:-1:-1;;;;;9172:26:46;;;9164:78;;;;-1:-1:-1;;;9164:78:46;;29903:2:88;9164:78:46;;;29885:21:88;29942:2;29922:18;;;29915:30;29981:34;29961:18;;;29954:62;-1:-1:-1;;;30032:18:88;;;30025:37;30079:19;;9164:78:46;29701:403:88;9164:78:46;-1:-1:-1;9267:5:46;9088:192::o;13216:187::-;13272:6;-1:-1:-1;;;;;13298:25:46;;;13290:76;;;;-1:-1:-1;;;13290:76:46;;30311:2:88;13290:76:46;;;30293:21:88;30350:2;30330:18;;;30323:30;30389:34;30369:18;;;30362:62;-1:-1:-1;;;30440:18:88;;;30433:36;30486:19;;13290:76:46;30109:402:88;2450:115:8;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;5155:166:57;5253:21;:19;:21::i;:::-;5302:6;5285:31;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4671:32:88;;4653:51;;5285:31:57;;4641:2:88;4626:18;5285:31:57;4486:224:88;2746:406:63;2850:7;2865:39;2877:12;2891;2865:11;:39::i;:::-;2910:17;2930:33;2942:12;2956:6;2930:11;:33::i;:::-;2910:53;;2992:20;:9;:18;:20::i;:::-;-1:-1:-1;;;;;2969:43:63;:12;:19;;;:43;;;;;;;;;;-1:-1:-1;;;;;2969:43:63;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2969:43:63;;;;;;;;;;;;;;;3022:19;;-1:-1:-1;;;3022:19:63;;;-1:-1:-1;3022:24:63;;-1:-1:-1;3018:108:63;;3092:27;;-1:-1:-1;;;;;;3092:27:63;-1:-1:-1;;;3092:27:63;;;3018:108;3138:9;2746:406;-1:-1:-1;;;;2746:406:63:o;22220:145:51:-;22275:53;22300:6;22308:19;:17;:19::i;:::-;22275:9;;:53;:24;:53::i;:::-;22334:26;:24;:26::i;1355:203:35:-;1482:68;;-1:-1:-1;;;;;13475:32:88;;;1482:68:35;;;13457:51:88;13544:32;;13524:18;;;13517:60;13593:18;;;13586:34;;;1455:96:35;;1475:5;;-1:-1:-1;;;1505:27:35;13430:18:88;;1482:68:35;;;;-1:-1:-1;;1482:68:35;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:35;-1:-1:-1;;;;;;1482:68:35;;;;;;;;;;1455:19;:96::i;19447:156:51:-;19501:7;19562:36;1798:4;19562:14;;;:36;:::i;19607:146::-;19662:6;19708:40;19709:27;1798:4;19709:5;:27;:::i;:::-;19708:38;:40::i;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;643:25:88;;;5115:31:57;;631:2:88;616:18;5115:31:57;497:177:88;588:104:45;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:45;;588:104;-1:-1:-1;588:104:45:o;2449:293:63:-;2553:7;2568:39;2580:12;2594;2568:11;:39::i;:::-;2613:17;2633:33;2645:12;2659:6;2633:11;:33::i;:::-;2613:53;;2695:20;:9;:18;:20::i;:::-;-1:-1:-1;;;;;2672:43:63;:12;:19;;;:43;;;;;;;;;;-1:-1:-1;;;;;2672:43:63;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2672:43:63;;;;;-1:-1:-1;;;;;2672:43:63;;;;;;2728:9;2721:16;;;2449:293;;;;;:::o;3266:564:59:-;-1:-1:-1;;;;;3347:25:59;;3339:75;;;;-1:-1:-1;;;3339:75:59;;31563:2:88;3339:75:59;;;31545:21:88;31602:2;31582:18;;;31575:30;31641:34;31621:18;;;31614:62;-1:-1:-1;;;31692:18:88;;;31685:35;31737:19;;3339:75:59;31361:401:88;3339:75:59;3424:6;3434:1;3424:11;3420:24;;3266:564;;:::o;3420:24::-;3449:15;3467:10;:8;:10::i;:::-;:35;;-1:-1:-1;;;3467:35:59;;3496:4;3467:35;;;4653:51:88;-1:-1:-1;;;;;3467:20:59;;;;;;;4626:18:88;;3467:35:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3449:53;;3522:6;3512:7;:16;3508:268;;;3549:21;3563:6;3549:13;:21::i;:::-;3538:32;;;;:::i;:::-;;;3591:7;3582:6;:16;3578:192;;;3635:17;3615:16;3624:7;3615:6;:16;:::i;:::-;3614:38;3610:83;;;3675:7;3666:16;;3610:83;3781:44;3805:11;3818:6;3781:10;:8;:10::i;:::-;-1:-1:-1;;;;;3781:23:59;;:44;:23;:44::i;15665:509:51:-;-1:-1:-1;;;;;15744:21:51;;15736:68;;;;-1:-1:-1;;;15736:68:51;;31969:2:88;15736:68:51;;;31951:21:88;32008:2;31988:18;;;31981:30;32047:34;32027:18;;;32020:62;-1:-1:-1;;;32098:18:88;;;32091:32;32140:19;;15736:68:51;31767:398:88;15736:68:51;15810:49;15831:7;15848:1;15852:6;15810:20;:49::i;:::-;15866:20;15889:42;15903:6;15911:19;:17;:19::i;:::-;15889:9;;:42;:13;:42::i;:::-;-1:-1:-1;;;;;15962:18:51;;15937:22;15962:18;;;:9;:18;;;;;;15866:65;;-1:-1:-1;15994:30:51;;;;15986:78;;;;-1:-1:-1;;;15986:78:51;;32372:2:88;15986:78:51;;;32354:21:88;32411:2;32391:18;;;32384:30;32450:34;32430:18;;;32423:62;-1:-1:-1;;;32501:18:88;;;32494:33;32544:19;;15986:78:51;32170:399:88;15986:78:51;16091:29;16108:12;16091:14;:29;:::i;:::-;-1:-1:-1;;;;;16070:18:51;;;;;;:9;:18;;;;;;:50;;;;16132:37;;;;;;16162:6;643:25:88;;631:2;616:18;;497:177;16132:37:51;;;;;;;;15730:444;;15665:509;;:::o;7058:325:38:-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:38;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:38:o;17450:369:51:-;1503:19:8;:17;:19::i;:::-;-1:-1:-1;;;;;17574:18:51;::::1;::::0;;:46:::1;;-1:-1:-1::0;;;;;;17604:16:51;::::1;::::0;17574:46:::1;:98;;;-1:-1:-1::0;17640:7:51::1;:17:::0;-1:-1:-1;;;17640:17:51;::::1;-1:-1:-1::0;;;;;17640:17:51::1;17632:40:::0;17574:98:::1;:167;;;-1:-1:-1::0;17684:7:51::1;:17:::0;:57:::1;::::0;-1:-1:-1;;;17684:57:51;;17718:4:::1;17684:57;::::0;::::1;32821:51:88::0;-1:-1:-1;;;;;32908:32:88;;;32888:18;;;32881:60;32977:32;;;32957:18;;;32950:60;33026:18;;;33019:34;;;-1:-1:-1;;;17684:17:51;;::::1;::::0;;::::1;::::0;:33:::1;::::0;32793:19:88;;17684:57:51::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17559:255;;;::::0;-1:-1:-1;;;17559:255:51;;33266:2:88;17559:255:51::1;::::0;::::1;33248:21:88::0;33305:2;33285:18;;;33278:30;33344:34;33324:18;;;33317:62;33415:27;33395:18;;;33388:55;33460:19;;17559:255:51::1;33064:421:88::0;2207:238:63;2344:7;2366:74;:63;2392:36;2401:12;2415;2392:8;:36::i;:::-;2366:18;:7;:16;:18::i;:::-;:25;;:63::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;33692:2:88;1793:106:4;;;33674:21:88;33731:2;33711:18;;;33704:30;33770:34;33750:18;;;33743:62;-1:-1:-1;;;33821:18:88;;;33814:43;33874:19;;1793:106:4;33490:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;34106:2:88;2267:41:8;;;34088:21:88;34145:2;34125:18;;;34118:30;-1:-1:-1;;;34164:18:88;;;34157:50;34224:18;;2267:41:8;33904:344:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;5965:1275:51:-:0;6040:7;:28;1988:3;6040:43;:28;;;:43;;;;:90;;-1:-1:-1;6087:7:51;:28;2041:4;6087:43;:28;;;:43;;6040:90;6025:172;;;;-1:-1:-1;;;6025:172:51;;34455:2:88;6025:172:51;;;34437:21:88;34494:2;34474:18;;;34467:30;34533:34;34513:18;;;34506:62;-1:-1:-1;;;34584:18:88;;;34577:49;34643:19;;6025:172:51;34253:415:88;6025:172:51;6218:7;:26;1894:3;6218:26;;;;:40;:26;:40;;;;:89;;-1:-1:-1;6262:7:51;:26;1849:3;6262:26;;;;:45;:26;:45;;6218:89;6203:167;;;;-1:-1:-1;;;6203:167:51;;34875:2:88;6203:167:51;;;34857:21:88;34914:2;34894:18;;;34887:30;34953:34;34933:18;;;34926:62;-1:-1:-1;;;35004:18:88;;;34997:45;35059:19;;6203:167:51;34673:411:88;6203:167:51;6384:7;:26;1849:3;6384:26;;;;:45;:26;:45;;6376:103;;;;-1:-1:-1;;;6376:103:51;;35291:2:88;6376:103:51;;;35273:21:88;35330:2;35310:18;;;35303:30;35369:34;35349:18;;;35342:62;-1:-1:-1;;;35420:18:88;;;35413:43;35473:19;;6376:103:51;35089:409:88;6376:103:51;7128:7;:32;2100:3;-1:-1:-1;;;7128:32:51;;;:51;:32;:51;;7120:115;;;;-1:-1:-1;;;7120:115:51;;35705:2:88;7120:115:51;;;35687:21:88;35744:2;35724:18;;;35717:30;35783:34;35763:18;;;35756:62;-1:-1:-1;;;35834:18:88;;;35827:49;35893:19;;7120:115:51;35503:415:88;10130:192:46;10187:7;-1:-1:-1;;;;;10214:26:46;;;10206:78;;;;-1:-1:-1;;;10206:78:46;;36125:2:88;10206:78:46;;;36107:21:88;36164:2;36144:18;;;36137:30;36203:34;36183:18;;;36176:62;-1:-1:-1;;;36254:18:88;;;36247:37;36301:19;;10206:78:46;35923:403:88;2015:188:63;2167:18;;2111:7;;2133:65;;:54;;-1:-1:-1;;;;;2167:18:63;2133;:7;:16;:18::i;11168:187:46:-;11224:6;-1:-1:-1;;;;;11250:25:46;;;11242:76;;;;-1:-1:-1;;;11242:76:46;;36533:2:88;11242:76:46;;;36515:21:88;36572:2;36552:18;;;36545:30;36611:34;36591:18;;;36584:62;-1:-1:-1;;;36662:18:88;;;36655:36;36708:19;;11242:76:46;36331:402:88;3156:575:63;3271:19;;-1:-1:-1;;;3271:19:63;;-1:-1:-1;;;;;3271:19:63;;:24;3267:107;;3305:48;3309:12;3331:6;3340:12;3305:3;:48::i;3267:107::-;3379:39;3391:12;3405;3379:11;:39::i;:::-;3424:23;3512:6;3465:43;3481:12;3495;3465:15;:43::i;:::-;3458:60;;;;:::i;:::-;3588:19;;3424:95;;-1:-1:-1;3546:86:63;;:74;;3580:39;;-1:-1:-1;;;3588:19:63;;-1:-1:-1;;;;;3588:19:63;3580:37;:39::i;:::-;3546:26;:15;:24;:26::i;:86::-;3525:107;;-1:-1:-1;;;;;;3525:107:63;-1:-1:-1;;;;;3525:107:63;;;;;;;;;554:4;-1:-1:-1;3646:31:63;3638:88;;;;-1:-1:-1;;;3638:88:63;;37161:2:88;3638:88:63;;;37143:21:88;37200:2;37180:18;;;37173:30;37239:34;37219:18;;;37212:62;-1:-1:-1;;;37290:18:88;;;37283:42;37342:19;;3638:88:63;36959:408:88;5196:642:35;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:35;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:35;;37574:2:88;5720:111:35;;;37556:21:88;37613:2;37593:18;;;37586:30;37652:34;37632:18;;;37625:62;-1:-1:-1;;;37703:18:88;;;37696:40;37753:19;;5720:111:35;37372:406:88;16288:187:46;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;37985:2:88;16362:76:46;;;37967:21:88;38024:2;38004:18;;;37997:30;38063:34;38043:18;;;38036:62;-1:-1:-1;;;38114:18:88;;;38107:36;38160:19;;16362:76:46;37783:402:88;2587:377:59;2644:7;2659:10;2680:14;19273:13:51;;-1:-1:-1;;;;;19273:13:51;;19191:100;2680:14:59;2659:36;-1:-1:-1;;;;;;2705:16:59;;;2701:245;;2731:19;2753:142;2809:35;;;2846:6;2786:67;;;;;;643:25:88;;631:2;616:18;;497:177;2786:67:59;;;;-1:-1:-1;;2786:67:59;;;;;;;;;;;;;;;-1:-1:-1;;;;;2786:67:59;-1:-1:-1;;;;;;2786:67:59;;;;;;;;;;2753:142;;;;;;;;;;;-1:-1:-1;;;2753:142:59;;;;;;;-1:-1:-1;;;;;2753:23:59;;;;:142::i;:::-;2731:164;;2921:6;2910:29;;;;;;;;;;;;:::i;2701:245::-;-1:-1:-1;2958:1:59;;2587:377;-1:-1:-1;;2587:377:59:o;941:175:35:-;1050:58;;-1:-1:-1;;;;;38382:32:88;;1050:58:35;;;38364:51:88;38431:18;;;38424:34;;;1023:86:35;;1043:5;;-1:-1:-1;;;1073:23:35;38337:18:88;;1050:58:35;38190:274:88;7671:628:38;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:13;;;8113:60:38;;;;-1:-1:-1;;;8113:60:38;;38671:2:88;8113:60:38;;;38653:21:88;38710:2;38690:18;;;38683:30;38749:31;38729:18;;;38722:59;38798:18;;8113:60:38;38469:353:88;8113:60:38;-1:-1:-1;8208:10:38;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;2845:322:65:-;2906:9;3011;;-1:-1:-1;;;3065:1:65;3058:9;;3046:22;3042:32;3036:39;;3008:70;3005:104;;;3099:1;3096;3089:12;3005:104;-1:-1:-1;;;;3130:11:65;;;;3150:1;3143:9;;3126:27;3122:35;;2845:322::o;2107:152:4:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;4108:223:38:-:0;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:38;;;;;;;;:::i;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;5165:446:38:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:38;;39029:2:88;5354:81:38;;;39011:21:88;39068:2;39048:18;;;39041:30;39107:34;39087:18;;;39080:62;-1:-1:-1;;;39158:18:88;;;39151:36;39204:19;;5354:81:38;38827:402:88;5354:81:38;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:38;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:38:o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;679:289;721:3;759:5;753:12;786:6;781:3;774:19;842:6;835:4;828:5;824:16;817:4;812:3;808:14;802:47;894:1;887:4;878:6;873:3;869:16;865:27;858:38;957:4;950:2;946:7;941:2;933:6;929:15;925:29;920:3;916:39;912:50;905:57;;;679:289;;;;:::o;973:220::-;1122:2;1111:9;1104:21;1085:4;1142:45;1183:2;1172:9;1168:18;1160:6;1142:45;:::i;1198:131::-;-1:-1:-1;;;;;1273:31:88;;1263:42;;1253:70;;1319:1;1316;1309:12;1334:367;1402:6;1410;1463:2;1451:9;1442:7;1438:23;1434:32;1431:52;;;1479:1;1476;1469:12;1431:52;1518:9;1505:23;1537:31;1562:5;1537:31;:::i;:::-;1587:5;1665:2;1650:18;;;;1637:32;;-1:-1:-1;;;1334:367:88:o;1706:247::-;1765:6;1818:2;1806:9;1797:7;1793:23;1789:32;1786:52;;;1834:1;1831;1824:12;1786:52;1873:9;1860:23;1892:31;1917:5;1892:31;:::i;2211:127::-;2272:10;2267:3;2263:20;2260:1;2253:31;2303:4;2300:1;2293:15;2327:4;2324:1;2317:15;2343:888;2385:5;2438:3;2431:4;2423:6;2419:17;2415:27;2405:55;;2456:1;2453;2446:12;2405:55;2496:6;2483:20;2535:4;2527:6;2523:17;2564:1;2586;-1:-1:-1;;;;;2602:6:88;2599:30;2596:56;;;2632:18;;:::i;:::-;-1:-1:-1;2787:2:88;2781:9;-1:-1:-1;;2700:2:88;2679:15;;2675:29;;2845:2;2833:15;2829:29;2817:42;;2910:22;;;-1:-1:-1;;;;;2874:34:88;;2871:62;2868:88;;;2936:18;;:::i;:::-;2972:2;2965:22;3022;;;3007:6;-1:-1:-1;3007:6:88;3059:16;;;3056:25;-1:-1:-1;3053:45:88;;;3094:1;3091;3084:12;3053:45;3144:6;3139:3;3132:4;3124:6;3120:17;3107:44;3199:1;3192:4;3183:6;3175;3171:19;3167:30;3160:41;3219:6;3210:15;;;;;;2343:888;;;;:::o;3236:320::-;3304:6;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3413:9;3400:23;-1:-1:-1;;;;;3438:6:88;3435:30;3432:50;;;3478:1;3475;3468:12;3432:50;3501:49;3542:7;3533:6;3522:9;3518:22;3501:49;:::i;3784:508::-;3861:6;3869;3877;3930:2;3918:9;3909:7;3905:23;3901:32;3898:52;;;3946:1;3943;3936:12;3898:52;3985:9;3972:23;4004:31;4029:5;4004:31;:::i;:::-;4054:5;-1:-1:-1;4111:2:88;4096:18;;4083:32;4124:33;4083:32;4124:33;:::i;:::-;3784:508;;4176:7;;-1:-1:-1;;;4256:2:88;4241:18;;;;4228:32;;3784:508::o;4715:455::-;4792:6;4800;4853:2;4841:9;4832:7;4828:23;4824:32;4821:52;;;4869:1;4866;4859:12;4821:52;4908:9;4895:23;4927:31;4952:5;4927:31;:::i;:::-;4977:5;-1:-1:-1;5033:2:88;5018:18;;5005:32;-1:-1:-1;;;;;5049:30:88;;5046:50;;;5092:1;5089;5082:12;5046:50;5115:49;5156:7;5147:6;5136:9;5132:22;5115:49;:::i;:::-;5105:59;;;4715:455;;;;;:::o;5357:771::-;5463:6;5471;5479;5487;5540:3;5528:9;5519:7;5515:23;5511:33;5508:53;;;5557:1;5554;5547:12;5508:53;5597:9;5584:23;-1:-1:-1;;;;;5622:6:88;5619:30;5616:50;;;5662:1;5659;5652:12;5616:50;5685:49;5726:7;5717:6;5706:9;5702:22;5685:49;:::i;:::-;5675:59;;;5787:2;5776:9;5772:18;5759:32;-1:-1:-1;;;;;5806:8:88;5803:32;5800:52;;;5848:1;5845;5838:12;5800:52;5871:51;5914:7;5903:8;5892:9;5888:24;5871:51;:::i;:::-;5357:771;;5861:61;;-1:-1:-1;;;;5991:2:88;5976:18;;5963:32;;6092:2;6077:18;6064:32;;5357:771;-1:-1:-1;5357:771:88:o;6133:118::-;6219:5;6212:13;6205:21;6198:5;6195:32;6185:60;;6241:1;6238;6231:12;6256:241;6312:6;6365:2;6353:9;6344:7;6340:23;6336:32;6333:52;;;6381:1;6378;6371:12;6333:52;6420:9;6407:23;6439:28;6461:5;6439:28;:::i;6502:346::-;6570:6;6578;6631:2;6619:9;6610:7;6606:23;6602:32;6599:52;;;6647:1;6644;6637:12;6599:52;-1:-1:-1;;6692:23:88;;;6812:2;6797:18;;;6784:32;;-1:-1:-1;6502:346:88:o;7127:367::-;7195:6;7203;7256:2;7244:9;7235:7;7231:23;7227:32;7224:52;;;7272:1;7269;7262:12;7224:52;7317:23;;;-1:-1:-1;7416:2:88;7401:18;;7388:32;7429:33;7388:32;7429:33;:::i;:::-;7481:7;7471:17;;;7127:367;;;;;:::o;7960:413::-;8036:6;8044;8052;8105:2;8093:9;8084:7;8080:23;8076:32;8073:52;;;8121:1;8118;8111:12;8073:52;-1:-1:-1;;8166:23:88;;;8286:2;8271:18;;8258:32;;-1:-1:-1;8363:2:88;8348:18;;;8335:32;;7960:413;-1:-1:-1;7960:413:88:o;8378:391::-;8461:6;8469;8522:2;8510:9;8501:7;8497:23;8493:32;8490:52;;;8538:1;8535;8528:12;8490:52;8577:9;8564:23;8616:1;8609:5;8606:12;8596:40;;8632:1;8629;8622:12;8774:405;8862:6;8870;8923:2;8911:9;8902:7;8898:23;8894:32;8891:52;;;8939:1;8936;8929:12;8891:52;8978:9;8965:23;8997:31;9022:5;8997:31;:::i;:::-;9047:5;-1:-1:-1;9104:2:88;9089:18;;9076:32;9117:30;9076:32;9117:30;:::i;9184:388::-;9252:6;9260;9313:2;9301:9;9292:7;9288:23;9284:32;9281:52;;;9329:1;9326;9319:12;9281:52;9368:9;9355:23;9387:31;9412:5;9387:31;:::i;:::-;9437:5;-1:-1:-1;9494:2:88;9479:18;;9466:32;9507:33;9466:32;9507:33;:::i;9808:127::-;9869:10;9864:3;9860:20;9857:1;9850:31;9900:4;9897:1;9890:15;9924:4;9921:1;9914:15;9940:128;10007:9;;;10028:11;;;10025:37;;;10042:18;;:::i;10073:380::-;10152:1;10148:12;;;;10195;;;10216:61;;10270:4;10262:6;10258:17;10248:27;;10216:61;10323:2;10315:6;10312:14;10292:18;10289:38;10286:161;;10369:10;10364:3;10360:20;10357:1;10350:31;10404:4;10401:1;10394:15;10432:4;10429:1;10422:15;10458:275;10552:6;10605:2;10593:9;10584:7;10580:23;10576:32;10573:52;;;10621:1;10618;10611:12;10573:52;10653:9;10647:16;10672:31;10697:5;10672:31;:::i;10738:453::-;-1:-1:-1;;;;;10981:32:88;;;10963:51;;11045:2;11030:18;;11023:34;;;;11093:32;;11088:2;11073:18;;11066:60;11169:14;;11162:22;11157:2;11142:18;;11135:50;10950:3;10935:19;;10738:453::o;11475:273::-;11543:6;11596:2;11584:9;11575:7;11571:23;11567:32;11564:52;;;11612:1;11609;11602:12;11564:52;11644:9;11638:16;11694:4;11687:5;11683:16;11676:5;11673:27;11663:55;;11714:1;11711;11704:12;11753:408;11955:2;11937:21;;;11994:2;11974:18;;;11967:30;12033:34;12028:2;12013:18;;12006:62;-1:-1:-1;;;12099:2:88;12084:18;;12077:42;12151:3;12136:19;;11753:408::o;12166:::-;12368:2;12350:21;;;12407:2;12387:18;;;12380:30;12446:34;12441:2;12426:18;;12419:62;-1:-1:-1;;;12512:2:88;12497:18;;12490:42;12564:3;12549:19;;12166:408::o;12579:125::-;12644:9;;;12665:10;;;12662:36;;;12678:18;;:::i;12709:525::-;-1:-1:-1;;;;;12980:32:88;;;12962:51;;13044:2;13029:18;;13022:34;;;;13087:2;13072:18;;13065:34;;;;13135:32;;;13130:2;13115:18;;13108:60;13212:14;;13205:22;13199:3;13184:19;;13177:51;12949:3;12934:19;;12709:525::o;13631:245::-;13698:6;13751:2;13739:9;13730:7;13726:23;13722:32;13719:52;;;13767:1;13764;13757:12;13719:52;13799:9;13793:16;13818:28;13840:5;13818:28;:::i;13881:398::-;14083:2;14065:21;;;14122:2;14102:18;;;14095:30;14161:34;14156:2;14141:18;;14134:62;-1:-1:-1;;;14227:2:88;14212:18;;14205:32;14269:3;14254:19;;13881:398::o;14694:183::-;14763:6;14816:2;14804:9;14795:7;14791:23;14787:32;14784:52;;;14832:1;14829;14822:12;14784:52;-1:-1:-1;14855:16:88;;14694:183;-1:-1:-1;14694:183:88:o;16110:407::-;16312:2;16294:21;;;16351:2;16331:18;;;16324:30;16390:34;16385:2;16370:18;;16363:62;-1:-1:-1;;;16456:2:88;16441:18;;16434:41;16507:3;16492:19;;16110:407::o;16522:353::-;16724:2;16706:21;;;16763:2;16743:18;;;16736:30;16802:31;16797:2;16782:18;;16775:59;16866:2;16851:18;;16522:353::o;19570:127::-;19631:10;19626:3;19622:20;19619:1;19612:31;19662:4;19659:1;19652:15;19686:4;19683:1;19676:15;19702:136;19737:3;-1:-1:-1;;;19758:22:88;;19755:48;;19783:18;;:::i;:::-;-1:-1:-1;19823:1:88;19819:13;;19702:136::o;20483:301::-;20612:3;20650:6;20644:13;20696:6;20689:4;20681:6;20677:17;20672:3;20666:37;20758:1;20722:16;;20747:13;;;-1:-1:-1;20722:16:88;20483:301;-1:-1:-1;20483:301:88:o;25879:407::-;26081:2;26063:21;;;26120:2;26100:18;;;26093:30;26159:34;26154:2;26139:18;;26132:62;-1:-1:-1;;;26225:2:88;26210:18;;26203:41;26276:3;26261:19;;25879:407::o;27133:518::-;27235:2;27230:3;27227:11;27224:421;;;27271:5;27268:1;27261:16;27315:4;27312:1;27302:18;27385:2;27373:10;27369:19;27366:1;27362:27;27356:4;27352:38;27421:4;27409:10;27406:20;27403:47;;;-1:-1:-1;27444:4:88;27403:47;27499:2;27494:3;27490:12;27487:1;27483:20;27477:4;27473:31;27463:41;;27554:81;27572:2;27565:5;27562:13;27554:81;;;27631:1;27617:16;;27598:1;27587:13;27554:81;;27827:1299;27953:3;27947:10;-1:-1:-1;;;;;27972:6:88;27969:30;27966:56;;;28002:18;;:::i;:::-;28031:97;28121:6;28081:38;28113:4;28107:11;28081:38;:::i;:::-;28075:4;28031:97;:::i;:::-;28177:4;28208:2;28197:14;;28225:1;28220:649;;;;28913:1;28930:6;28927:89;;;-1:-1:-1;28982:19:88;;;28976:26;28927:89;-1:-1:-1;;27784:1:88;27780:11;;;27776:24;27772:29;27762:40;27808:1;27804:11;;;27759:57;29029:81;;28190:930;;28220:649;27080:1;27073:14;;;27117:4;27104:18;;-1:-1:-1;;28256:20:88;;;28374:222;28388:7;28385:1;28382:14;28374:222;;;28470:19;;;28464:26;28449:42;;28577:4;28562:20;;;;28530:1;28518:14;;;;28404:12;28374:222;;;28378:3;28624:6;28615:7;28612:19;28609:201;;;28685:19;;;28679:26;-1:-1:-1;;28768:1:88;28764:14;;;28780:3;28760:24;28756:37;28752:42;28737:58;28722:74;;28609:201;-1:-1:-1;;;;28856:1:88;28840:14;;;28836:22;28823:36;;-1:-1:-1;27827:1299:88:o;29131:170::-;29228:10;29221:18;;;29201;;;29197:43;;29252:20;;29249:46;;;29275:18;;:::i;29306:168::-;29379:9;;;29410;;29427:15;;;29421:22;;29407:37;29397:71;;29448:18;;:::i;29479:217::-;29519:1;29545;29535:132;;29589:10;29584:3;29580:20;29577:1;29570:31;29624:4;29621:1;29614:15;29652:4;29649:1;29642:15;29535:132;-1:-1:-1;29681:9:88;;29479:217::o;30516:231::-;-1:-1:-1;;;;;30627:38:88;;;30587;;;30583:83;;30678:40;;30675:66;;;30721:18;;:::i;31128:228::-;-1:-1:-1;;;;;31197:38:88;;;31237;;;31193:83;;31288:39;;31285:65;;;31330:18;;:::i;36738:216::-;36802:9;;;36830:11;;;36777:3;36860:9;;36888:10;;36884:19;;36913:10;;36905:19;;36881:44;36878:70;;;36928:18;;:::i;:::-;36878:70;;36738:216;;;;:::o"},"methodIdentifiers":{"addBorrower(address)":"e3a8e29c","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","assetManager()":"94217ad1","balanceOf(address)":"70a08231","checkpoint()":"c2c4c5c1","currency()":"e5a6b10f","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(address,uint256)":"47e7ef24","forwardToAssetManager(bytes)":"1e9c4658","fundsAvailable()":"4fe0bd1e","fundsAvailableToLock()":"a08f2203","getCurrentScale(bool)":"79d989fb","getLoan(address)":"33481fc9","getScaledUserBalanceAndSupply(address)":"0afbcdc9","increaseAllowance(address,uint256)":"39509351","initialize(string,string,uint256,uint256)":"6fe0e395","internalLoan(uint256,address)":"c3df9dac","internalLoanInterestRate()":"cda4bcc2","liquidityRequirement()":"ba4e8df5","lockScr(uint256,uint256)":"837c83a3","maxNegativeAdjustment()":"16db000f","maxUtilizationRate()":"dfcb48bd","minUtilizationRate()":"ee01a183","name()":"06fdde03","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","removeBorrower(address)":"76c7fc55","repayLoan(uint256,address)":"918344d3","scaledBalanceOf(address)":"1da24f3e","scaledTotalSupply()":"b1bf962d","scr()":"6c6f4542","scrInterestRate()":"9d90724d","setAssetManager(address,bool)":"d80359f1","setParam(uint8,uint256)":"c1cca2b3","setWhitelist(address)":"854cff2f","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenInterestRate()":"159ec2df","totalSupply()":"18160ddd","totalWithdrawable()":"0600a865","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","unlockScr(uint256,uint256,int256)":"b1081ccf","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","utilizationRate()":"6c321c8a","whitelist()":"93e59dc1","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"InternalBorrowerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"defaultedDebt\",\"type\":\"uint256\"}],\"name\":\"InternalBorrowerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountAsked\",\"type\":\"uint256\"}],\"name\":\"InternalLoan\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"InternalLoanRepaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"interestRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SCRLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"interestRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SCRUnlocked\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"addBorrower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"assetManager\",\"outputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"functionCall\",\"type\":\"bytes\"}],\"name\":\"forwardToAssetManager\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fundsAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fundsAvailableToLock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"updated\",\"type\":\"bool\"}],\"name\":\"getCurrentScale\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"getLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getScaledUserBalanceAndSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"maxUtilizationRate_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"internalLoanInterestRate_\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"internalLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"internalLoanInterestRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityRequirement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"scrAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"policyInterestRate\",\"type\":\"uint256\"}],\"name\":\"lockScr\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxNegativeAdjustment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxUtilizationRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minUtilizationRate\",\"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\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"removeBorrower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"repayLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"scaledBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scaledTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scrInterestRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"newAM\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"force\",\"type\":\"bool\"}],\"name\":\"setAssetManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IEToken.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ILPWhitelist\",\"name\":\"lpWhitelist_\",\"type\":\"address\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenInterestRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWithdrawable\",\"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\":\"uint256\",\"name\":\"scrAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"policyInterestRate\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"adjustment\",\"type\":\"int256\"}],\"name\":\"unlockScr\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"utilizationRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"contract ILPWhitelist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Implementation of the interest/earnings bearing token for the Ensuro protocol.      `_tsScaled.scale` scales the balances stored in _balances. _tsScaled (totalSupply scaled) grows      continuoulsly at tokenInterestRate().      Every operation that changes the utilization rate (_scr.scr/totalSupply) or the _scr.interestRate, updates      first the _tsScaled.scale accumulating the interest accrued since _tsScaled.lastUpdate.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"SCRLocked(uint256,uint256)\":{\"details\":\"Event emitted when part of the funds of the eToken are locked as solvency capital.\",\"params\":{\"interestRate\":\"The annualized interestRate paid for the capital (wad)\",\"value\":\"The amount locked\"}},\"SCRUnlocked(uint256,uint256)\":{\"details\":\"Event emitted when the locked funds are unlocked and no longer used as solvency capital.\",\"params\":{\"interestRate\":\"The annualized interestRate that was paid for the capital (wad)\",\"value\":\"The amount unlocked\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addBorrower(address)\":{\"details\":\"Adds an authorized _borrower_ to the eToken. This _borrower_ will be allowed to lock/unlock funds and to take loans. Requirements: - Must be called by `policyPool()` Events: - Emits {InternalBorrowerAdded}\",\"params\":{\"borrower\":\"The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"assetManager()\":{\"details\":\"Returns the address of the asset manager for this reserve. The asset manager is the contract that manages the funds to generate additional yields. Can be `address(0)` if no asset manager has been set.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"checkpoint()\":{\"details\":\"Function that calls both `recordEarnings()` and `rebalance()` (in that order). Usually scheduled to run once a day by a keeper or crontask.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overloaded; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(address,uint256)\":{\"details\":\"Registers a deposit of liquidity in the pool. Called from the PolicyPool, assumes the amount has already been transferred. `amount` of eToken are minted and given to the provider in exchange of the liquidity provided. Requirements: - Must be called by `policyPool()` - The amount was transferred - `utilizationRate()` after the deposit is >= `minUtilizationRate()` Events: - Emits {Transfer} with `from` = 0x0 and to = `provider`\",\"params\":{\"amount\":\"The amount deposited.\",\"provider\":\"The address of the liquidity provider\"},\"returns\":{\"_0\":\"The actual balance of the provider\"}},\"forwardToAssetManager(bytes)\":{\"details\":\"This function allows to call custom functions of the asset manager (for example for setting parameters).      This functions will be called with `delegatecall`, in the context of the reserve. Requirements: - The caller must have been granted of global or component roles LEVEL2_ROLE.\",\"params\":{\"functionCall\":\"Abi encoded function call to make.\"},\"returns\":{\"_0\":\"Returns the return value of the function called, to be decoded by the receiver.\"}},\"getLoan(address)\":{\"details\":\"Returns the updated debt (principal + interest) of the `borrower`.\"},\"getScaledUserBalanceAndSupply(address)\":{\"details\":\"Returns the scaled balance of the user and the scaled total supply.\",\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The scaled balance of the user\",\"_1\":\"The scaled balance and the scaled total supply*\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,uint256,uint256)\":{\"details\":\"Initializes the eToken\",\"params\":{\"internalLoanInterestRate_\":\"Rate of loans givencrto the policy pool (in Ray)\",\"maxUtilizationRate_\":\"Max utilization rate (scr/totalSupply) (in Ray - default=1 Ray)\",\"name_\":\"Name of the eToken\",\"symbol_\":\"Symbol of the eToken\"}},\"internalLoan(uint256,address)\":{\"details\":\"Lends `amount` to the borrower (msg.sender), transferring the money to `receiver`. This reduces the `totalSupply()` of the eToken, and stores a debt that will be repaid (hopefully) with `repayLoan`. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. Events: - Emits {InternalLoan} - Emits {ERC20-Transfer} transferring `lent` to `receiver`\",\"params\":{\"amount\":\"The amount required\",\"receiver\":\"The received of the funds lent. This is usually the policyholder if the loan is used for a payout.\"},\"returns\":{\"_0\":\"Returns the amount that wasn't able to fulfil. `amount - lent`\"}},\"lockScr(uint256,uint256)\":{\"details\":\"Locks part of the liquidity of the EToken as solvency capital. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. - `scrAmount` <= `fundsAvailableToLock()` Events: - Emits {SCRLocked}\",\"params\":{\"policyInterestRate\":\"The annualized interest rate (wad) to be paid for the `scrAmount`\",\"scrAmount\":\"The amount to lock\"}},\"maxNegativeAdjustment()\":{\"details\":\"Returns the maximum negative adjustment (discrete loss) the eToken can accept without breaking consistency.      The limit comes from limits in the internal scale that takes scaledTotalSupply() to totalSupply()\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"rebalance()\":{\"details\":\"Calls {IAssetManager-rebalance} of the assigned asset manager (fails if no asset manager). This operation is intended to give the opportunity to rebalance the liquid and invested for better returns and/or gas optimization. - Emits {IAssetManager-MoneyInvested} or {IAssetManager-MoneyDeinvested}\"},\"recordEarnings()\":{\"details\":\"Calls {IAssetManager-recordEarnings} of the assigned asset manager (fails if no asset manager). The asset manager will return the earnings since last time the earnings where recorded. It then calls `_assetEarnings` to reflect the earnings in the way defined for each reserve. - Emits {IAssetManager-EarningsRecorded}\"},\"removeBorrower(address)\":{\"details\":\"Removes an authorized _borrower_ to the eToken. The _borrower_ can't no longer lock funds or take loans. Requirements: - Must be called by `policyPool()` Events: - Emits {InternalBorrowerRemoved} with the defaulted debt\",\"params\":{\"borrower\":\"The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\"}},\"repayLoan(uint256,address)\":{\"details\":\"Repays a loan taken with `internalLoan`. Requirements: - `msg.sender` approved the spending of `currency()` for at least `amount` Events: - Emits {InternalLoanRepaid} - Emits {ERC20-Transfer} transferring `amount` from `msg.sender` to `this`\",\"params\":{\"amount\":\"The amount to repaid, that will be transferred from `msg.sender` balance.\",\"onBehalfOf\":\"The address of the borrower that took the loan. Usually `onBehalfOf == msg.sender` but we keep it open because in some cases with might need someone else pays the debt.\"}},\"scaledBalanceOf(address)\":{\"details\":\"Returns the scaled balance of the user. The scaled balance is the sum of all the updated stored balance divided by the EToken's scale index\",\"params\":{\"user\":\"The user whose balance is calculated\"},\"returns\":{\"_0\":\"The scaled balance of the user*\"}},\"scaledTotalSupply()\":{\"details\":\"Returns the (un)scaled total supply of the EToken. Equals to the sum of `scaledBalanceOf(x)` of all users\",\"returns\":{\"_0\":\"The scaled total supply*\"}},\"scr()\":{\"details\":\"Returns the amount of capital that's locked as solvency capital for active policies.\"},\"scrInterestRate()\":{\"details\":\"The weighted average annualized interest rate paid by the currently locked `scr()`.\"},\"setAssetManager(address,bool)\":{\"details\":\"Sets the asset manager for this reserve. If the reserve had previously an asset manager, it will deinvest all the funds, making all of the liquid in the reserve balance. Requirements: - The caller must have been granted of global or component roles GUARDIAN_ROLE or LEVEL1_ROLE. Events: - Emits ComponentChanged with action setAssetManager or setAssetManagerForced\",\"params\":{\"force\":\"When a previous asset manager exists, before setting the new one, the funds are deinvested. When `force` is true, an error in the deinvestAll() operation is ignored. When `force` is false, if `deinvestAll()` fails, it reverts.\",\"newAM\":\"The address of the new asset manager to assign to the reserve. If is `address(0)` it means the reserve will not have an asset manager. If not `address(0)` it MUST be a contract following the IAssetManager interface.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"tokenInterestRate()\":{\"details\":\"The annualized interest rate at which the `totalSupply()` grows\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"totalWithdrawable()\":{\"details\":\"Returns the total amount that can be withdrawn\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"unlockScr(uint256,uint256,int256)\":{\"details\":\"Unlocks solvency capital previously locked with `lockScr`. The capital no longer needed as solvency. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. - `scrAmount` <= `scr()` Events: - Emits {SCRUnlocked}\",\"params\":{\"policyInterestRate\":\"The annualized interest rate that was paid for the `scrAmount`, must be the same that was sent in `lockScr` call.\",\"scrAmount\":\"The amount to unlock\"}},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256)\":{\"details\":\"Withdraws an amount from an eToken. `withdrawn` eTokens are be burned and the user receives the same amount in `currency()`. If the asked `amount` can't be withdrawn, it withdraws as much as possible Requirements: - Must be called by `policyPool()` Events: - Emits {Transfer} with `from` = `provider` and to = `0x0`\",\"params\":{\"amount\":\"The amount to withdraw. If `amount` == `type(uint256).max`, then tries to withdraw all the balance.\",\"provider\":\"The address of the liquidity provider\"},\"returns\":{\"_0\":\"The actual amount that withdrawn. `withdrawn <= amount && withdrawn <= balanceOf(provider)`\"}}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Ensuro ERC20 EToken - interest-bearing token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/EToken.sol\":\"EToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/EToken.sol\":{\"keccak256\":\"0x3ac26312926ed0543e9042627d2bcb683e518fe86ed247a776a49cdced03f630\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ee6d1be83f3bdab334b12ff13b0f76f6ca8bfddc0100587d6633630e6fe18c9\",\"dweb:/ipfs/QmXuLE3qb98qGMLbNpmx6q9595qKbeQZiofb7YhFeP5VsR\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/Reserve.sol\":{\"keccak256\":\"0x9a881b99d913e58494fbc7657ce10787f2283f8edf4bca66e134c52688773be7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e602a2cbca27d2db3cf596a49ab367bf6de897acd7aa29c4075a37d1cd2fb58e\",\"dweb:/ipfs/QmZuoQ8ZEy2E9sGWjhDnkKGMuC6qQaetR4Ww6YRMoqM2n7\"]},\"contracts/TimeScaled.sol\":{\"keccak256\":\"0x6a890782602e2ddba87b5447d9d3872dba68766d3005688c65b0e6fcc6594aa9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://40d26b2355a65da60cb26b6c6fef63473f477d3f1271bf6264e42b766f70afb9\",\"dweb:/ipfs/QmWkfwc97WdKXSYZMuaEhFBJWbMKG18jPEmm9GpEyvG2yn\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/EToken.sol:EToken","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/EToken.sol:EToken","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/EToken.sol:EToken","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20136,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"251","type":"t_array(t_uint256)50_storage"},{"astId":11534,"contract":"contracts/EToken.sol:EToken","label":"_balances","offset":0,"slot":"301","type":"t_mapping(t_address,t_uint256)"},{"astId":11540,"contract":"contracts/EToken.sol:EToken","label":"_allowances","offset":0,"slot":"302","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":11542,"contract":"contracts/EToken.sol:EToken","label":"_name","offset":0,"slot":"303","type":"t_string_storage"},{"astId":11544,"contract":"contracts/EToken.sol:EToken","label":"_symbol","offset":0,"slot":"304","type":"t_string_storage"},{"astId":11547,"contract":"contracts/EToken.sol:EToken","label":"_tsScaled","offset":0,"slot":"305","type":"t_struct(ScaledAmount)22464_storage"},{"astId":11557,"contract":"contracts/EToken.sol:EToken","label":"_scr","offset":0,"slot":"306","type":"t_struct(Scr)11554_storage"},{"astId":11562,"contract":"contracts/EToken.sol:EToken","label":"_loans","offset":0,"slot":"307","type":"t_mapping(t_address,t_struct(ScaledAmount)22464_storage)"},{"astId":11577,"contract":"contracts/EToken.sol:EToken","label":"_params","offset":0,"slot":"308","type":"t_struct(PackedParams)11574_storage"},{"astId":11580,"contract":"contracts/EToken.sol:EToken","label":"_assetManager","offset":0,"slot":"309","type":"t_contract(IAssetManager)23421"},{"astId":13570,"contract":"contracts/EToken.sol:EToken","label":"__gap","offset":0,"slot":"310","type":"t_array(t_uint256)41_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)41_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[41]","numberOfBytes":"1312"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAssetManager)23421":{"encoding":"inplace","label":"contract IAssetManager","numberOfBytes":"20"},"t_contract(ILPWhitelist)23596":{"encoding":"inplace","label":"contract ILPWhitelist","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(ScaledAmount)22464_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct TimeScaled.ScaledAmount)","numberOfBytes":"32","value":"t_struct(ScaledAmount)22464_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)11574_storage":{"encoding":"inplace","label":"struct EToken.PackedParams","members":[{"astId":11564,"contract":"contracts/EToken.sol:EToken","label":"liquidityRequirement","offset":0,"slot":"0","type":"t_uint16"},{"astId":11566,"contract":"contracts/EToken.sol:EToken","label":"minUtilizationRate","offset":2,"slot":"0","type":"t_uint16"},{"astId":11568,"contract":"contracts/EToken.sol:EToken","label":"maxUtilizationRate","offset":4,"slot":"0","type":"t_uint16"},{"astId":11570,"contract":"contracts/EToken.sol:EToken","label":"internalLoanInterestRate","offset":6,"slot":"0","type":"t_uint16"},{"astId":11573,"contract":"contracts/EToken.sol:EToken","label":"whitelist","offset":8,"slot":"0","type":"t_contract(ILPWhitelist)23596"}],"numberOfBytes":"32"},"t_struct(ScaledAmount)22464_storage":{"encoding":"inplace","label":"struct TimeScaled.ScaledAmount","members":[{"astId":22459,"contract":"contracts/EToken.sol:EToken","label":"scale","offset":0,"slot":"0","type":"t_uint112"},{"astId":22461,"contract":"contracts/EToken.sol:EToken","label":"amount","offset":14,"slot":"0","type":"t_uint112"},{"astId":22463,"contract":"contracts/EToken.sol:EToken","label":"lastUpdate","offset":28,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_struct(Scr)11554_storage":{"encoding":"inplace","label":"struct EToken.Scr","members":[{"astId":11549,"contract":"contracts/EToken.sol:EToken","label":"scr","offset":0,"slot":"0","type":"t_uint128"},{"astId":11551,"contract":"contracts/EToken.sol:EToken","label":"interestRate","offset":16,"slot":"0","type":"t_uint64"},{"astId":11553,"contract":"contracts/EToken.sol:EToken","label":"tokenInterestRate","offset":24,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_uint112":{"encoding":"inplace","label":"uint112","numberOfBytes":"14"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/FullSignedBucketRiskModule.sol":{"FullSignedBucketRiskModule":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IPremiumsAccount","name":"premiumsAccount_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BucketCannotBeZero","type":"error"},{"inputs":[],"name":"BucketNotFound","type":"error"},{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"QuoteExpired","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"BucketDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bucketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"indexed":false,"internalType":"struct IRiskModule.Params","name":"params","type":"tuple"}],"name":"NewBucket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"policyData","type":"bytes32"}],"name":"NewSignedPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"bucketParams","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"params_","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"deleteBucket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"getMinimumPremiumForBucket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"components":[{"internalType":"uint16","name":"moc","type":"uint16"},{"internalType":"uint16","name":"jrCollRatio","type":"uint16"},{"internalType":"uint16","name":"collRatio","type":"uint16"},{"internalType":"uint16","name":"ensuroPpFee","type":"uint16"},{"internalType":"uint16","name":"ensuroCocFee","type":"uint16"},{"internalType":"uint16","name":"jrRoc","type":"uint16"},{"internalType":"uint16","name":"srRoc","type":"uint16"},{"internalType":"uint32","name":"maxPayoutPerPolicy","type":"uint32"},{"internalType":"uint32","name":"exposureLimit","type":"uint32"},{"internalType":"uint16","name":"maxDuration","type":"uint16"}],"internalType":"struct RiskModule.PackedParams","name":"params","type":"tuple"}],"name":"getMinimumPremiumFullParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"uint256","name":"collRatio_","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee_","type":"uint256"},{"internalType":"uint256","name":"srRoc_","type":"uint256"},{"internalType":"uint256","name":"maxPayoutPerPolicy_","type":"uint256"},{"internalType":"uint256","name":"exposureLimit_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"uint256","name":"bucketId","type":"uint256"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"components":[{"internalType":"uint16","name":"moc","type":"uint16"},{"internalType":"uint16","name":"jrCollRatio","type":"uint16"},{"internalType":"uint16","name":"collRatio","type":"uint16"},{"internalType":"uint16","name":"ensuroPpFee","type":"uint16"},{"internalType":"uint16","name":"ensuroCocFee","type":"uint16"},{"internalType":"uint16","name":"jrRoc","type":"uint16"},{"internalType":"uint16","name":"srRoc","type":"uint16"},{"internalType":"uint32","name":"maxPayoutPerPolicy","type":"uint32"},{"internalType":"uint32","name":"exposureLimit","type":"uint32"},{"internalType":"uint16","name":"maxDuration","type":"uint16"}],"internalType":"struct RiskModule.PackedParams","name":"params","type":"tuple"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicyFullParams","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"createdPolicy","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"uint256","name":"bucketId","type":"uint256"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"components":[{"internalType":"uint16","name":"moc","type":"uint16"},{"internalType":"uint16","name":"jrCollRatio","type":"uint16"},{"internalType":"uint16","name":"collRatio","type":"uint16"},{"internalType":"uint16","name":"ensuroPpFee","type":"uint16"},{"internalType":"uint16","name":"ensuroCocFee","type":"uint16"},{"internalType":"uint16","name":"jrRoc","type":"uint16"},{"internalType":"uint16","name":"srRoc","type":"uint16"},{"internalType":"uint32","name":"maxPayoutPerPolicy","type":"uint32"},{"internalType":"uint32","name":"exposureLimit","type":"uint32"},{"internalType":"uint16","name":"maxDuration","type":"uint16"}],"internalType":"struct RiskModule.PackedParams","name":"params","type":"tuple"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"replacePolicyFullParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"params_","type":"tuple"}],"name":"setBucketParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13606":{"entryPoint":null,"id":13606,"parameterSlots":2,"returnSlots":0},"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_20268":{"entryPoint":null,"id":20268,"parameterSlots":2,"returnSlots":0},"@_21547":{"entryPoint":null,"id":21547,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":297,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":508,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IPolicyPool":{"entryPoint":485,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1510:88","nodeType":"YulBlock","src":"0:1510:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"308:313:88","nodeType":"YulBlock","src":"308:313:88","statements":[{"body":{"nativeSrc":"354:16:88","nodeType":"YulBlock","src":"354:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"363:1:88","nodeType":"YulLiteral","src":"363:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"356:6:88","nodeType":"YulIdentifier","src":"356:6:88"},"nativeSrc":"356:12:88","nodeType":"YulFunctionCall","src":"356:12:88"},"nativeSrc":"356:12:88","nodeType":"YulExpressionStatement","src":"356:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"329:7:88","nodeType":"YulIdentifier","src":"329:7:88"},{"name":"headStart","nativeSrc":"338:9:88","nodeType":"YulIdentifier","src":"338:9:88"}],"functionName":{"name":"sub","nativeSrc":"325:3:88","nodeType":"YulIdentifier","src":"325:3:88"},"nativeSrc":"325:23:88","nodeType":"YulFunctionCall","src":"325:23:88"},{"kind":"number","nativeSrc":"350:2:88","nodeType":"YulLiteral","src":"350:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"321:3:88","nodeType":"YulIdentifier","src":"321:3:88"},"nativeSrc":"321:32:88","nodeType":"YulFunctionCall","src":"321:32:88"},"nativeSrc":"318:52:88","nodeType":"YulIf","src":"318:52:88"},{"nativeSrc":"379:29:88","nodeType":"YulVariableDeclaration","src":"379:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"398:9:88","nodeType":"YulIdentifier","src":"398:9:88"}],"functionName":{"name":"mload","nativeSrc":"392:5:88","nodeType":"YulIdentifier","src":"392:5:88"},"nativeSrc":"392:16:88","nodeType":"YulFunctionCall","src":"392:16:88"},"variables":[{"name":"value","nativeSrc":"383:5:88","nodeType":"YulTypedName","src":"383:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"455:5:88","nodeType":"YulIdentifier","src":"455:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"417:37:88","nodeType":"YulIdentifier","src":"417:37:88"},"nativeSrc":"417:44:88","nodeType":"YulFunctionCall","src":"417:44:88"},"nativeSrc":"417:44:88","nodeType":"YulExpressionStatement","src":"417:44:88"},{"nativeSrc":"470:15:88","nodeType":"YulAssignment","src":"470:15:88","value":{"name":"value","nativeSrc":"480:5:88","nodeType":"YulIdentifier","src":"480:5:88"},"variableNames":[{"name":"value0","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"}]},{"nativeSrc":"494:40:88","nodeType":"YulVariableDeclaration","src":"494:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"519:9:88","nodeType":"YulIdentifier","src":"519:9:88"},{"kind":"number","nativeSrc":"530:2:88","nodeType":"YulLiteral","src":"530:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"515:3:88","nodeType":"YulIdentifier","src":"515:3:88"},"nativeSrc":"515:18:88","nodeType":"YulFunctionCall","src":"515:18:88"}],"functionName":{"name":"mload","nativeSrc":"509:5:88","nodeType":"YulIdentifier","src":"509:5:88"},"nativeSrc":"509:25:88","nodeType":"YulFunctionCall","src":"509:25:88"},"variables":[{"name":"value_1","nativeSrc":"498:7:88","nodeType":"YulTypedName","src":"498:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"581:7:88","nodeType":"YulIdentifier","src":"581:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"543:37:88","nodeType":"YulIdentifier","src":"543:37:88"},"nativeSrc":"543:46:88","nodeType":"YulFunctionCall","src":"543:46:88"},"nativeSrc":"543:46:88","nodeType":"YulExpressionStatement","src":"543:46:88"},{"nativeSrc":"598:17:88","nodeType":"YulAssignment","src":"598:17:88","value":{"name":"value_1","nativeSrc":"608:7:88","nodeType":"YulIdentifier","src":"608:7:88"},"variableNames":[{"name":"value1","nativeSrc":"598:6:88","nodeType":"YulIdentifier","src":"598:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"163:458:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"266:9:88","nodeType":"YulTypedName","src":"266:9:88","type":""},{"name":"dataEnd","nativeSrc":"277:7:88","nodeType":"YulTypedName","src":"277:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"289:6:88","nodeType":"YulTypedName","src":"289:6:88","type":""},{"name":"value1","nativeSrc":"297:6:88","nodeType":"YulTypedName","src":"297:6:88","type":""}],"src":"163:458:88"},{"body":{"nativeSrc":"728:183:88","nodeType":"YulBlock","src":"728:183:88","statements":[{"body":{"nativeSrc":"774:16:88","nodeType":"YulBlock","src":"774:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:88","nodeType":"YulLiteral","src":"783:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"786:1:88","nodeType":"YulLiteral","src":"786:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"776:6:88","nodeType":"YulIdentifier","src":"776:6:88"},"nativeSrc":"776:12:88","nodeType":"YulFunctionCall","src":"776:12:88"},"nativeSrc":"776:12:88","nodeType":"YulExpressionStatement","src":"776:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"749:7:88","nodeType":"YulIdentifier","src":"749:7:88"},{"name":"headStart","nativeSrc":"758:9:88","nodeType":"YulIdentifier","src":"758:9:88"}],"functionName":{"name":"sub","nativeSrc":"745:3:88","nodeType":"YulIdentifier","src":"745:3:88"},"nativeSrc":"745:23:88","nodeType":"YulFunctionCall","src":"745:23:88"},{"kind":"number","nativeSrc":"770:2:88","nodeType":"YulLiteral","src":"770:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"741:3:88","nodeType":"YulIdentifier","src":"741:3:88"},"nativeSrc":"741:32:88","nodeType":"YulFunctionCall","src":"741:32:88"},"nativeSrc":"738:52:88","nodeType":"YulIf","src":"738:52:88"},{"nativeSrc":"799:29:88","nodeType":"YulVariableDeclaration","src":"799:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:88","nodeType":"YulIdentifier","src":"818:9:88"}],"functionName":{"name":"mload","nativeSrc":"812:5:88","nodeType":"YulIdentifier","src":"812:5:88"},"nativeSrc":"812:16:88","nodeType":"YulFunctionCall","src":"812:16:88"},"variables":[{"name":"value","nativeSrc":"803:5:88","nodeType":"YulTypedName","src":"803:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"875:5:88","nodeType":"YulIdentifier","src":"875:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"837:37:88","nodeType":"YulIdentifier","src":"837:37:88"},"nativeSrc":"837:44:88","nodeType":"YulFunctionCall","src":"837:44:88"},"nativeSrc":"837:44:88","nodeType":"YulExpressionStatement","src":"837:44:88"},{"nativeSrc":"890:15:88","nodeType":"YulAssignment","src":"890:15:88","value":{"name":"value","nativeSrc":"900:5:88","nodeType":"YulIdentifier","src":"900:5:88"},"variableNames":[{"name":"value0","nativeSrc":"890:6:88","nodeType":"YulIdentifier","src":"890:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"626:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"694:9:88","nodeType":"YulTypedName","src":"694:9:88","type":""},{"name":"dataEnd","nativeSrc":"705:7:88","nodeType":"YulTypedName","src":"705:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"717:6:88","nodeType":"YulTypedName","src":"717:6:88","type":""}],"src":"626:285:88"},{"body":{"nativeSrc":"1090:229:88","nodeType":"YulBlock","src":"1090:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:88","nodeType":"YulIdentifier","src":"1100:6:88"},"nativeSrc":"1100:21:88","nodeType":"YulFunctionCall","src":"1100:21:88"},"nativeSrc":"1100:21:88","nodeType":"YulExpressionStatement","src":"1100:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1141:9:88","nodeType":"YulIdentifier","src":"1141:9:88"},{"kind":"number","nativeSrc":"1152:2:88","nodeType":"YulLiteral","src":"1152:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1137:3:88","nodeType":"YulIdentifier","src":"1137:3:88"},"nativeSrc":"1137:18:88","nodeType":"YulFunctionCall","src":"1137:18:88"},{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"1130:6:88","nodeType":"YulIdentifier","src":"1130:6:88"},"nativeSrc":"1130:30:88","nodeType":"YulFunctionCall","src":"1130:30:88"},"nativeSrc":"1130:30:88","nodeType":"YulExpressionStatement","src":"1130:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1180:9:88","nodeType":"YulIdentifier","src":"1180:9:88"},{"kind":"number","nativeSrc":"1191:2:88","nodeType":"YulLiteral","src":"1191:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1176:3:88","nodeType":"YulIdentifier","src":"1176:3:88"},"nativeSrc":"1176:18:88","nodeType":"YulFunctionCall","src":"1176:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1196:34:88","nodeType":"YulLiteral","src":"1196:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:88","nodeType":"YulIdentifier","src":"1169:6:88"},"nativeSrc":"1169:62:88","nodeType":"YulFunctionCall","src":"1169:62:88"},"nativeSrc":"1169:62:88","nodeType":"YulExpressionStatement","src":"1169:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1251:9:88","nodeType":"YulIdentifier","src":"1251:9:88"},{"kind":"number","nativeSrc":"1262:2:88","nodeType":"YulLiteral","src":"1262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1247:3:88","nodeType":"YulIdentifier","src":"1247:3:88"},"nativeSrc":"1247:18:88","nodeType":"YulFunctionCall","src":"1247:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1267:9:88","nodeType":"YulLiteral","src":"1267:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1240:6:88","nodeType":"YulIdentifier","src":"1240:6:88"},"nativeSrc":"1240:37:88","nodeType":"YulFunctionCall","src":"1240:37:88"},"nativeSrc":"1240:37:88","nodeType":"YulExpressionStatement","src":"1240:37:88"},{"nativeSrc":"1286:27:88","nodeType":"YulAssignment","src":"1286:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1298:9:88","nodeType":"YulIdentifier","src":"1298:9:88"},{"kind":"number","nativeSrc":"1309:3:88","nodeType":"YulLiteral","src":"1309:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1294:3:88","nodeType":"YulIdentifier","src":"1294:3:88"},"nativeSrc":"1294:19:88","nodeType":"YulFunctionCall","src":"1294:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1286:4:88","nodeType":"YulIdentifier","src":"1286:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"916:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulTypedName","src":"1067:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1081:4:88","nodeType":"YulTypedName","src":"1081:4:88","type":""}],"src":"916:403:88"},{"body":{"nativeSrc":"1421:87:88","nodeType":"YulBlock","src":"1421:87:88","statements":[{"nativeSrc":"1431:26:88","nodeType":"YulAssignment","src":"1431:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1443:9:88","nodeType":"YulIdentifier","src":"1443:9:88"},{"kind":"number","nativeSrc":"1454:2:88","nodeType":"YulLiteral","src":"1454:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1439:3:88","nodeType":"YulIdentifier","src":"1439:3:88"},"nativeSrc":"1439:18:88","nodeType":"YulFunctionCall","src":"1439:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1431:4:88","nodeType":"YulIdentifier","src":"1431:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1473:9:88","nodeType":"YulIdentifier","src":"1473:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1488:6:88","nodeType":"YulIdentifier","src":"1488:6:88"},{"kind":"number","nativeSrc":"1496:4:88","nodeType":"YulLiteral","src":"1496:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1484:3:88","nodeType":"YulIdentifier","src":"1484:3:88"},"nativeSrc":"1484:17:88","nodeType":"YulFunctionCall","src":"1484:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"},"nativeSrc":"1466:36:88","nodeType":"YulFunctionCall","src":"1466:36:88"},"nativeSrc":"1466:36:88","nodeType":"YulExpressionStatement","src":"1466:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1324:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1390:9:88","nodeType":"YulTypedName","src":"1390:9:88","type":""},{"name":"value0","nativeSrc":"1401:6:88","nodeType":"YulTypedName","src":"1401:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1412:4:88","nodeType":"YulTypedName","src":"1412:4:88","type":""}],"src":"1324:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051615f20380380615f20833981016040819052610032916101fc565b81818181816001600160a01b03811661005e57604051636b23cf0160e01b815260040160405180910390fd5b610066610129565b806001600160a01b031660a0816001600160a01b03168152505050816001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100eb9190610234565b6001600160a01b0316146101125760405163fec343d560e01b815260040160405180910390fd5b6001600160a01b031660c052506102569350505050565b5f54610100900460ff16156101945760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101e3575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f9575f5ffd5b50565b5f5f6040838503121561020d575f5ffd5b8251610218816101e5565b6020840151909250610229816101e5565b809150509250929050565b5f60208284031215610244575f5ffd5b815161024f816101e5565b9392505050565b60805160a05160c051615bc06103605f395f81816103e00152613ba701525f81816102c3015281816107000152818161098f01528181610aa501528181610d6f015281816110d60152818161127a01528181611399015281816114930152818161152801528181611652015281816117a801528181611947015281816120130152818161214301528181612227015281816125f3015281816129d301528181612a7001528181612b2301528181612cf201528181613228015281816135e50152818161368201528181613728015281816138d5015281816139f2015261442e01525f8181610882015281816108cb01528181610bcc01528181610c0c0152610c990152615bc05ff3fe6080604052600436106101db575f3560e01c8063766dbc56116100fd578063b9b28f2a11610092578063cfd4c60611610062578063cfd4c606146105b9578063cff0ab96146105cd578063deaa59df146105e1578063e5a6b10f14610600575f5ffd5b8063b9b28f2a146104e8578063c1cca2b314610507578063ceddac6f14610526578063cf19171e1461059a575f5ffd5b80638456cb59116100cd5780638456cb591461047557806385272a6e146104895780638bac3a241461049d5780639014d171146104bc575f5ffd5b8063766dbc56146104045780637a702b3c146104235780637ff8bf251461044257806382ff9c8c14610456575f5ffd5b8063521eb273116101735780636a448ef1116101435780636a448ef1146103755780636db5c8fd146103945780636f0dbe6f146103b357806373a952e8146103d2575f5ffd5b8063521eb2731461030e57806352d1902d1461032b578063571e8bcc1461033f5780635c975abb1461035e575f5ffd5b80633f4ba83a116101ae5780633f4ba83a146102745780633f961587146102885780634d15eb03146102b55780634f1ef286146102fb575f5ffd5b806301ffc9a7146101df57806306fdde031461021357806318e26bb9146102345780633659cfe614610255575b5f5ffd5b3480156101ea575f5ffd5b506101fe6101f9366004614b62565b610614565b60405190151581526020015b60405180910390f35b34801561021e575f5ffd5b5061022761063f565b60405161020a9190614b89565b34801561023f575f5ffd5b5061025361024e366004614bbe565b6106cf565b005b348015610260575f5ffd5b5061025361026f366004614be9565b610878565b34801561027f575f5ffd5b5061025361095e565b348015610293575f5ffd5b506102a76102a2366004614d5a565b610a79565b60405190815260200161020a565b3480156102c0575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161020a565b610253610309366004614e64565b610bc2565b348015610319575f5ffd5b5060fe546001600160a01b03166102e3565b348015610336575f5ffd5b506102a7610c8d565b34801561034a575f5ffd5b50610253610359366004614ec4565b610d3e565b348015610369575f5ffd5b5060975460ff166101fe565b348015610380575f5ffd5b5061025361038f366004614bbe565b6110d3565b34801561039f575f5ffd5b5060fc54600160b01b900461ffff166102a7565b3480156103be575f5ffd5b506102536103cd366004614efa565b611135565b3480156103dd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102e3565b34801561040f575f5ffd5b506102a761041e366004614f89565b61124e565b34801561042e575f5ffd5b5061025361043d366004614ffd565b611376565b34801561044d575f5ffd5b5060fd546102a7565b348015610461575f5ffd5b506102a7610470366004615028565b6114fc565b348015610480575f5ffd5b5061025361162f565b348015610494575f5ffd5b506102a7611736565b3480156104a8575f5ffd5b506102a76104b73660046150a2565b611758565b3480156104c7575f5ffd5b506104db6104d63660046150d4565b611775565b60405161020a9190615211565b3480156104f3575f5ffd5b506102a7610502366004615220565b6118fc565b348015610512575f5ffd5b5061025361052136600461525a565b611916565b348015610531575f5ffd5b50610545610540366004614bbe565b611e17565b60405161020a91905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b3480156105a5575f5ffd5b506102a76105b4366004615287565b611f14565b3480156105c4575f5ffd5b506102a7611f25565b3480156105d8575f5ffd5b50610545611f43565b3480156105ec575f5ffd5b506102536105fb366004614be9565b611ff0565b34801561060b575f5ffd5b506102e3612140565b5f61061e826121c1565b8061063957506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb805461064e906152cc565b80601f016020809104026020016040519081016040528092919081815260200182805461067a906152cc565b80156106c55780601f1061069c576101008083540402835291602001916106c5565b820191905f5260205f20905b8154815290600101906020018083116106a857829003601f168201915b5050505050905090565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016107b2959493929190615319565b5f6040518083038186803b1580156107c8575f5ffd5b505afa1580156107da573d5f5f3e3d5ffd5b50505050825f036107fe576040516364ba211360e11b815260040160405180910390fd5b5f83815261012d602052604081205461ffff1690036108305760405163c4c1a0c560e01b815260040160405180910390fd5b5f83815261012d602052604080822080546001600160c01b03191690555184917fda8c8883e1b3ead63d3ef64674f8fc499048554f6fa36776af0ab41d2f99834691a2505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108c95760405162461bcd60e51b81526004016108c09061534c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109115f516020615b245f395f51905f52546001600160a01b031690565b6001600160a01b0316146109375760405162461bcd60e51b81526004016108c090615398565b610940816121f6565b604080515f8082526020820190925261095b91839190612313565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020615b445f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0d91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a41959493929190615319565b5f6040518083038186803b158015610a57575f5ffd5b505afa158015610a69573d5f5f3e3d5ffd5b50505050610a7561247d565b5050565b5f610a826124cf565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2391906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610b5494939291906153e4565b5f6040518083038186803b158015610b6a575f5ffd5b505afa158015610b7c573d5f5f3e3d5ffd5b50505050610b918b8b8b8b8b8b8b8b8b612517565b610bb18c8c8c8c8c33610ba38e6126fb565b610bac8e61270a565b61279d565b519c9b505050505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c0a5760405162461bcd60e51b81526004016108c09061534c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c525f516020615b245f395f51905f52546001600160a01b031690565b6001600160a01b031614610c785760405162461bcd60e51b81526004016108c090615398565b610c81826121f6565b610a7582826001612313565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d2c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108c0565b505f516020615b245f395f51905f5290565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610e21959493929190615319565b5f6040518083038186803b158015610e37575f5ffd5b505afa158015610e49573d5f5f3e3d5ffd5b50505050835f03610e6d576040516364ba211360e11b815260040160405180910390fd5b604051806101400160405280610e85855f0135612d7b565b61ffff168152602001610e9b8560200135612d7b565b61ffff168152602001610eb18560400135612d7b565b61ffff168152602001610ec78560600135612d7b565b61ffff168152602001610edd8560800135612d7b565b61ffff168152602001610ef38560a00135612d7b565b61ffff168152602001610f098560c00135612d7b565b61ffff908116825263ffffffff6020808401829052604080850183905260609485018490525f8a815261012d835281902086518154938801519288015196880151608089015160a08a015160c08b015160e08c01516101008d0151610120909d01518b16600160b01b0261ffff60b01b199d8b16600160901b029d909d1665ffffffffffff60901b1991909a16600160701b0263ffffffff60701b19928c16600160601b029290921665ffffffffffff60601b19938c16600160501b0261ffff60501b19958d16600160401b029590951663ffffffff60401b19968d16600160301b0261ffff60301b199e8e16600160201b029e909e1667ffffffff00000000199a8e16620100000263ffffffff19909c1698909d169790971799909917979097169990991799909917919091169190911717959095169190911792909217919091161791909117815561105c90612d94565b6040805184358152602080860135908201528482013581830152606080860135908201526080808601359082015260a0808601359082015260c08086013590820152905185917f1f02d2d352ddbf27121545f4d4730d7656c038f9ce75851410c9ef6982728975919081900360e00190a250505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461111c5760405163799e780f60e01b815260040160405180910390fd5b8060fd5f82825461112d9190615422565b909155505050565b5f54610100900460ff161580801561115357505f54600160ff909116105b8061116c5750303b15801561116c57505f5460ff166001145b6111cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108c0565b5f805460ff1916600117905580156111f0575f805461ff0019166101001790555b6111ff8888888888888861318e565b8015611244575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b5f6112576124cf565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f891906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161132994939291906153e4565b5f6040518083038186803b15801561133f575f5ffd5b505afa158015611351573d5f5f3e3d5ffd5b505050506113668c8c8c8c8b8b8b8b8b6131cb565b610bb18c8c8c8c8b8b338f6132f7565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f3573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141791906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161144894939291906153e4565b5f6040518083038186803b15801561145e575f5ffd5b505afa158015611470573d5f5f3e3d5ffd5b5050505061147c6124cf565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906114ca9086908690600401615501565b5f604051808303815f87803b1580156114e1575f5ffd5b505af11580156114f3573d5f5f3e3d5ffd5b50505050505050565b5f6115056124cf565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a691906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016115d794939291906153e4565b5f6040518083038186803b1580156115ed575f5ffd5b505afa1580156115ff573d5f5f3e3d5ffd5b505050506116148b8b8b8b8b8b8b8b8b6131cb565b610bb18c8c8c8c8c336116268e6126fb565b610bac8e611e17565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d091906152fe565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161170294939291906153e4565b5f6040518083038186803b158015611718575f5ffd5b505afa15801561172a573d5f5f3e3d5ffd5b5050505061095b61335f565b60fc545f90611753908290600160901b900463ffffffff1661339c565b905090565b5f61176d84848442611768611f43565b61342a565b949350505050565b61177d614ab4565b6117856124cf565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611802573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161185794939291906153e4565b5f6040518083038186803b15801561186d575f5ffd5b505afa15801561187f573d5f5f3e3d5ffd5b505050506118948c8c8c8c8b8b8b8b8b612517565b6118b48c8c8c8c338d6118a68e6126fb565b6118af8e61270a565b613446565b8051604051898152919350907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a2509a9950505050505050505050565b5f61190d8585854261176887611e17565b95945050505050565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c591906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016119f9959493929190615319565b5f6040518083038186803b158015611a0f575f5ffd5b505afa158015611a21573d5f5f3e3d5ffd5b505f9250611a2d915050565b846009811115611a3f57611a3f61551e565b03611a6857611a4d83612d7b565b60fc805461ffff191661ffff92909216919091179055611dda565b6001846009811115611a7c57611a7c61551e565b03611aae57611a8a83612d7b565b60fc805461ffff92909216620100000263ffff000019909216919091179055611dda565b6002846009811115611ac257611ac261551e565b03611af757611ad083612d7b565b60fc805461ffff92909216600160201b0265ffff0000000019909216919091179055611dda565b6003846009811115611b0b57611b0b61551e565b03611b3f57611b1983612d7b565b60fc805461ffff92909216600160301b0261ffff60301b19909216919091179055611dda565b6004846009811115611b5357611b5361551e565b03611b8c57611b6183612d7b565b60fc805461ffff92909216600160401b0269ffff000000000000000019909216919091179055611dda565b6005846009811115611ba057611ba061551e565b03611bd457611bae83612d7b565b60fc805461ffff92909216600160501b0261ffff60501b19909216919091179055611dda565b6006846009811115611be857611be861551e565b03611c1c57611bf683612d7b565b60fc805461ffff92909216600160601b0261ffff60601b19909216919091179055611dda565b6007846009811115611c3057611c3061551e565b03611c6a57611c4060028461395f565b60fc805463ffffffff92909216600160701b0263ffffffff60701b19909216919091179055611dda565b6008846009811115611c7e57611c7e61551e565b03611d965760fd54831015611cef5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016108c0565b611cf7611736565b83111580611d165750611d165f516020615b445f395f51905f526139ef565b611d625760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016108c0565b611d6c5f8461395f565b60fc805463ffffffff92909216600160901b0263ffffffff60901b19909216919091179055611dda565b6009846009811115611daa57611daa61551e565b03611dda57611db883613ae1565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b611e11846009811115611def57611def61551e565b611dfa906008615532565b602d811115611e0b57611e0b61551e565b84613b47565b50505050565b611e1f614b2c565b8115611f07575f82815261012d602052604081208054909161ffff9091169003611e5c5760405163c4c1a0c560e01b815260040160405180910390fd5b6040805161014081018252825461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611f009061270a565b9392505050565b610639611f43565b919050565b5f61190d858585426117688761270a565b60fc545f9061175390600290600160701b900463ffffffff1661339c565b611f4b614b2c565b604080516101408101825260fc5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b90049091166101208201526117539061270a565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209191906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016120c294939291906153e4565b5f6040518083038186803b1580156120d8575f5ffd5b505afa1580156120ea573d5f5f3e3d5ffd5b5050506001600160a01b038316905061211657604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610a7590601290613b47565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175391906152fe565b5f6001600160e01b031982166301ffc9a760e01b148061063957506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020615b445f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612281573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a591906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016122d9959493929190615319565b5f6040518083038186803b1580156122ef575f5ffd5b505afa158015612301573d5f5f3e3d5ffd5b5050505061230e83613b98565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156123465761230e83613c56565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123a0575060408051601f3d908101601f1916820190925261239d91810190615545565b60015b6124035760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108c0565b5f516020615b245f395f51905f5281146124715760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108c0565b5061230e838383613cf1565b612485613d15565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff16156125155760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108c0565b565b428164ffffffffff16101561253f57604051638727a7f960e01b815260040160405180910390fd5b5f6125e1308b8b8b8b8b6125b58c5f60908260c0015161ffff16901b60a08360a0015161ffff16901b60b0846080015161ffff16901b60c0856060015161ffff16901b60d0866040015161ffff16901b60e0876020015161ffff16901b60f0885f015161ffff16901b1717171717179050919050565b896040516020016125cd98979695949392919061555c565b604051602081830303815290604052613d5e565b90505f6125ef828686613d98565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267191906152fe565b6001600160a01b0316635ff57d20307ff5d8f7a4041cf31e35e40569643a02f20f7706179aaa0b7764c077c3a607b275845f6040518563ffffffff1660e01b81526004016126c294939291906153e4565b5f6040518083038186803b1580156126d8575f5ffd5b505afa1580156126ea573d5f5f3e3d5ffd5b505050505050505050505050505050565b5f610639600160601b836155d4565b612712614b2c565b6040518060e00160405280612729845f0151613dbc565b815260200161273b8460200151613dbc565b815260200161274d8460400151613dbc565b815260200161275f8460600151613dbc565b81526020016127718460800151613dbc565b81526020016127838460a00151613dbc565b81526020016127958460c00151613dbc565b905292915050565b6127a5614ab4565b5f1987036127ce576127cb8887876127c56101a08e016101808f016155e7565b8661342a565b96505b87871061281d5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108c0565b64ffffffffff42166128376101c08b016101a08c016155e7565b64ffffffffff16116128835760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016108c0565b6128956101c08a016101a08b016155e7565b64ffffffffff168564ffffffffff16101580156128b6575088602001358810155b80156128c6575088604001358710155b6129385760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016108c0565b60fc54600160b01b900461ffff16610e1061295b6101a08c016101808d016155e7565b6129659088615600565b61296f919061561d565b64ffffffffff16106129c35760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108c0565b6129d160408a013588615422565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a5191906152fe565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615545565b1015612b015760405162461bcd60e51b81526004016108c090615646565b6001600160a01b038416331480612c215750612b2160408a013588615422565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba191906152fe565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612bfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1e9190615545565b10155b612c3d5760405162461bcd60e51b81526004016108c090615693565b612c45611f25565b881115612c645760405162461bcd60e51b81526004016108c0906156e2565b612c863083898b8a8a8f610180016020810190612c8191906155e7565b613dd1565b905088602001358160200151612c9c9190615422565b60fd5f828254612cac9190615532565b90915550612cba9050611736565b60fd541115612cdb5760405162461bcd60e51b81526004016108c090615734565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae90612d2d908c90859089908990600401615777565b6020604051808303815f875af1158015612d49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d6d9190615545565b815298975050505050505050565b5f610639612d8f655af3107a4000846157c4565b613ae1565b80546127106201000090910461ffff161115612dfe5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016108c0565b8054612710600160201b90910461ffff1611801590612e2857508054600160201b900461ffff1615155b612e7e5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016108c0565b805461ffff6201000082048116600160201b909204161015612eee5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016108c0565b8054619c4061ffff90911611801590612f105750805461138861ffff90911610155b612f5c5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016108c0565b8054612710600160301b90910461ffff161115612fc75760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016108c0565b8054612710600160401b90910461ffff1611156130345760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016108c0565b8054612710600160601b90910461ffff1611156130a15760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108c0565b8054612710600160501b90910461ffff16111561310e5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108c0565b8054600160901b900463ffffffff161580159061313857508054600160701b900463ffffffff1615155b61095b5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016108c0565b5f54610100900460ff166131b45760405162461bcd60e51b81526004016108c0906157d7565b6131bc613f41565b6114f387878787878787613f77565b428164ffffffffff1610156131f357604051638727a7f960e01b815260040160405180910390fd5b5f613216308b8b8b8b8b8b896040516020016125cd98979695949392919061555c565b90505f613224828686613d98565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015613282573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132a691906152fe565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a845f6040518563ffffffff1660e01b81526004016126c294939291906153e4565b6132ff614ab4565b61331a8989898987876133118c6126fb565b6118af8c611e17565b8051604051878152919250907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a298975050505050505050565b6133676124cf565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124b23390565b5f826133a6612140565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134059190615822565b61340f9190615842565b61341a90600a615936565b611f009063ffffffff8416615944565b5f6134388287878787614178565b60e001519695505050505050565b61344e614ab4565b4260018901613467576134648a8989848761342a565b98505b8989106134b65760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108c0565b8064ffffffffff168764ffffffffff16116135135760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016108c0565b60fc54600160b01b900461ffff16610e1061352e838a615600565b613538919061561d565b64ffffffffff161061358c5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108c0565b6001600160a01b0385166135e25760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016108c0565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561363f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366391906152fe565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156136d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f59190615545565b10156137135760405162461bcd60e51b81526004016108c090615646565b6001600160a01b0386163314806138265750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613782573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137a691906152fe565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156137ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138239190615545565b10155b6138425760405162461bcd60e51b81526004016108c090615693565b61384a611f25565b8a11156138695760405162461bcd60e51b81526004016108c0906156e2565b61387830848b8d8c8c87613dd1565b9150816020015160fd5f82825461388f9190615532565b9091555061389d9050611736565b60fd5411156138be5760405162461bcd60e51b81526004016108c090615734565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906139109085908a908a908a9060040161595b565b6020604051808303815f875af115801561392c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139509190615545565b82525098975050505050505050565b5f611f008361396c612140565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139cb9190615822565b6139d59190615842565b6139e090600a615936565b6139ea90846157c4565b61436b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a7091906152fe565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b8152600401613aa294939291906153e4565b602060405180830381865afa158015613abd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063991906159a2565b5f61ffff821115613b435760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016108c0565b5090565b613b4f6143cf565b81602d811115613b6157613b6161551e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b613ba18161442c565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c2f91906152fe565b6001600160a01b031614610a755760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b613cc35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108c0565b5f516020615b245f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b613cfa836144dd565b5f82511180613d065750805b1561230e57611e11838361451c565b60975460ff166125155760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108c0565b5f613d698251614541565b82604051602001613d7b9291906159d8565b604051602081830303815290604052805190602001209050919050565b5f5f5f613da68686866145d1565b91509150613db38161460a565b50949350505050565b5f610639655af3107a400061ffff8416615944565b613dd9614ab4565b84861115613e345760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016108c0565b613e3c614ab4565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613e868988888888614178565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613f1f5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016108c0565b60e0810151613f2e9089615422565b6101008301525098975050505050505050565b5f54610100900460ff16613f675760405162461bcd60e51b81526004016108c0906157d7565b613f6f614753565b612515614779565b5f54610100900460ff16613f9d5760405162461bcd60e51b81526004016108c0906157d7565b60fb613fa98882615a5d565b50604080516101408101825261271081525f6020820152908101613fcc88612d7b565b61ffff168152602001613fde87612d7b565b61ffff1681525f602082018190526040820152606001613ffd86612d7b565b61ffff16815260200161401160028661395f565b63ffffffff1681526020016140265f8561395f565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff000000001916600160201b9589169590950261ffff60301b191694909417600160301b938816939093029290921763ffffffff60401b1916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b0383161790556114f36143cf565b6141b86040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516141d0906141c99086906147a7565b86906147a7565b815260208601516141e29086906147a7565b602082018190528151101561420c578051602082018051614204908390615422565b905250614213565b5f60208201525b60408601516142239086906147a7565b6040820152602081015181516142399190615532565b8160400151111561426e57602081015181516142559190615532565b816040018181516142669190615422565b905250614275565b5f60408201525b6142b26301e133806142878486615600565b64ffffffffff168860a0015161429d9190615944565b6142a791906157c4565b6020830151906147a7565b60608201526142f46301e133806142c98486615600565b64ffffffffff168860c001516142df9190615944565b6142e991906157c4565b6040830151906147a7565b6080820181905260608201515f9161430b91615532565b90506143248760800151826147a790919063ffffffff16565b60608801518351614334916147a7565b61433e9190615532565b60a083018190528251829161435291615532565b61435c9190615532565b60e08301525095945050505050565b5f63ffffffff821115613b435760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016108c0565b60fd546143da611736565b10156143f957604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b031661442257604051634d1c286960e11b815260040160405180910390fd5b61251560fc612d94565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015614492573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144b691906152fe565b6001600160a01b03161461095b5760405163d2b3d33f60e01b815260040160405180910390fd5b6144e681613c56565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611f008383604051806060016040528060278152602001615b64602791396147dd565b60605f61454d83614851565b60010190505f8167ffffffffffffffff81111561456c5761456c614c2f565b6040519080825280601f01601f191660200182016040528015614596576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846145a057509392505050565b5f806001600160ff1b038316816145ed60ff86901c601b615532565b90506145fb87828885614928565b9350935050505b935093915050565b5f81600481111561461d5761461d61551e565b036146255750565b60018160048111156146395761463961551e565b036146865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108c0565b600281600481111561469a5761469a61551e565b036146e75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108c0565b60038160048111156146fb576146fb61551e565b0361095b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016108c0565b5f54610100900460ff166125155760405162461bcd60e51b81526004016108c0906157d7565b5f54610100900460ff1661479f5760405162461bcd60e51b81526004016108c0906157d7565b6125156149e5565b5f81156706f05b59d3b2000019839004841115176147c3575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b60605f5f856001600160a01b0316856040516147f99190615b18565b5f60405180830381855af49150503d805f8114614831576040519150601f19603f3d011682016040523d82523d5f602084013e614836565b606091505b509150915061484786838387614a17565b9695505050505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061488f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106148bb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106148d957662386f26fc10000830492506010015b6305f5e10083106148f1576305f5e100830492506008015b612710831061490557612710830492506004015b60648310614917576064830492506002015b600a83106106395760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561495d57505f905060036149dc565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156149ae573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166149d6575f600192509250506149dc565b91505f90505b94509492505050565b5f54610100900460ff16614a0b5760405162461bcd60e51b81526004016108c0906157d7565b6097805460ff19169055565b60608315614a855782515f03614a7e576001600160a01b0385163b614a7e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108c0565b508161176d565b61176d8383815115614a9a5781518083602001fd5b8060405162461bcd60e51b81526004016108c09190614b89565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60208284031215614b72575f5ffd5b81356001600160e01b031981168114611f00575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215614bce575f5ffd5b5035919050565b6001600160a01b038116811461095b575f5ffd5b5f60208284031215614bf9575f5ffd5b8135611f0081614bd5565b5f6101c08284031215614c15575f5ffd5b50919050565b803564ffffffffff81168114611f0f575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051610140810167ffffffffffffffff81118282101715614c6757614c67614c2f565b60405290565b803561ffff81168114611f0f575f5ffd5b803563ffffffff81168114611f0f575f5ffd5b5f6101408284031215614ca2575f5ffd5b614caa614c43565b9050614cb582614c6d565b8152614cc360208301614c6d565b6020820152614cd460408301614c6d565b6040820152614ce560608301614c6d565b6060820152614cf660808301614c6d565b6080820152614d0760a08301614c6d565b60a0820152614d1860c08301614c6d565b60c0820152614d2960e08301614c7e565b60e0820152614d3b6101008301614c7e565b610100820152614d4e6101208301614c6d565b61012082015292915050565b5f5f5f5f5f5f5f5f5f5f6104008b8d031215614d74575f5ffd5b614d7e8c8c614c04565b99506101c08b013598506101e08b013597506102008b01359650614da56102208c01614c1b565b95506102408b01359450614dbd8c6102608d01614c91565b93506103a08b013592506103c08b01359150614ddc6103e08c01614c1b565b90509295989b9194979a5092959850565b5f5f67ffffffffffffffff841115614e0757614e07614c2f565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715614e3657614e36614c2f565b604052838152905080828401851015614e4d575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215614e75575f5ffd5b8235614e8081614bd5565b9150602083013567ffffffffffffffff811115614e9b575f5ffd5b8301601f81018513614eab575f5ffd5b614eba85823560208401614ded565b9150509250929050565b5f5f828403610100811215614ed7575f5ffd5b8335925060e0601f1982011215614eec575f5ffd5b506020830190509250929050565b5f5f5f5f5f5f5f60e0888a031215614f10575f5ffd5b873567ffffffffffffffff811115614f26575f5ffd5b8801601f81018a13614f36575f5ffd5b614f458a823560208401614ded565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614f7981614bd5565b8091505092959891949750929550565b5f5f5f5f5f5f5f5f5f5f6101408b8d031215614fa3575f5ffd5b8a35995060208b0135985060408b01359750614fc160608c01614c1b565b965060808b0135614fd181614bd5565b955060a08b0135945060c08b0135935060e08b013592506101008b01359150614ddc6101208c01614c1b565b5f5f6101e0838503121561500f575f5ffd5b6150198484614c04565b946101c0939093013593505050565b5f5f5f5f5f5f5f5f5f5f6102e08b8d031215615042575f5ffd5b61504c8c8c614c04565b99506101c08b013598506101e08b013597506102008b013596506150736102208c01614c1b565b95506102408b013594506102608b013593506102808b013592506102a08b01359150614ddc6102c08c01614c1b565b5f5f5f606084860312156150b4575f5ffd5b83359250602084013591506150cb60408501614c1b565b90509250925092565b5f5f5f5f5f5f5f5f5f5f6102608b8d0312156150ee575f5ffd5b8a35995060208b0135985060408b0135975061510c60608c01614c1b565b965060808b013561511c81614bd5565b955060a08b013594506151328c60c08d01614c91565b93506102008b013592506102208b01359150614ddc6102408c01614c1b565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516151db6101608401826001600160a01b03169052565b506101808101516151f661018084018264ffffffffff169052565b506101a081015161230e6101a084018264ffffffffff169052565b6101c081016106398284615151565b5f5f5f5f60808587031215615233575f5ffd5b843593506020850135925061524a60408601614c1b565b9396929550929360600135925050565b5f5f6040838503121561526b575f5ffd5b8235600a8110615279575f5ffd5b946020939093013593505050565b5f5f5f5f6101a0858703121561529b575f5ffd5b84359350602085013592506152b260408601614c1b565b91506152c18660608701614c91565b905092959194509250565b600181811c908216806152e057607f821691505b602082108103614c1557634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561530e575f5ffd5b8151611f0081614bd5565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106395761063961540e565b8035611f0f81614bd5565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014080820135908301526154b86101608201615435565b6001600160a01b03166101608301526154d46101808201614c1b565b64ffffffffff166101808301526154ee6101a08201614c1b565b64ffffffffff81166101a0840152505050565b6101e081016155108285615440565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b808201808211156106395761063961540e565b5f60208284031215615555575f5ffd5b5051919050565b60609890981b6bffffffffffffffffffffffff1916885260148801969096526034870194909452605486019290925260d890811b6001600160d81b031990811660748701526079860192909252609985019290925291901b1660b982015260be0190565b634e487b7160e01b5f52601260045260245ffd5b5f826155e2576155e26155c0565b500690565b5f602082840312156155f7575f5ffd5b611f0082614c1b565b64ffffffffff82811682821603908111156106395761063961540e565b5f64ffffffffff831680615633576156336155c0565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c081016157868287615440565b6157946101c0830186615151565b6001600160a01b03939093166103808201526bffffffffffffffffffffffff919091166103a09091015292915050565b5f826157d2576157d26155c0565b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215615832575f5ffd5b815160ff81168114611f00575f5ffd5b60ff82811682821603908111156106395761063961540e565b6001815b60018411156146025780850481111561587a5761587a61540e565b600184161561588857908102905b60019390931c92800261585f565b5f826158a457506001610639565b816158b057505f610639565b81600181146158c657600281146158d0576158ec565b6001915050610639565b60ff8411156158e1576158e161540e565b50506001821b610639565b5060208310610133831016604e8410600b841016171561590f575081810a610639565b61591b5f19848461585b565b805f190482111561592e5761592e61540e565b029392505050565b5f611f0060ff841683615896565b80820281158282048414176106395761063961540e565b610220810161596a8287615151565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f602082840312156159b2575f5ffd5b81518015158114611f00575f5ffd5b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f61176d615a0c601a8401866159c1565b846159c1565b601f82111561230e57805f5260205f20601f840160051c81016020851015615a375750805b601f840160051c820191505b81811015615a56575f8155600101615a43565b5050505050565b815167ffffffffffffffff811115615a7757615a77614c2f565b615a8b81615a8584546152cc565b84615a12565b6020601f821160018114615abd575f8315615aa65750848201515b5f19600385901b1c1916600184901b178455615a56565b5f84815260208120601f198516915b82811015615aec5787850151825560209485019460019092019101615acc565b5084821015615b0957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f611f0082846159c156fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220833bf365115b989c34479d926a84a113fdc952fe9a5442a8c9fb00b658d1b5eb64736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5F20 CODESIZE SUB DUP1 PUSH2 0x5F20 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x1FC JUMP JUMPDEST DUP2 DUP2 DUP2 DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66 PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEB SWAP2 SWAP1 PUSH2 0x234 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x112 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFEC343D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP PUSH2 0x256 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x194 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x1E3 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x218 DUP2 PUSH2 0x1E5 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x229 DUP2 PUSH2 0x1E5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x244 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24F DUP2 PUSH2 0x1E5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x5BC0 PUSH2 0x360 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x3E0 ADD MSTORE PUSH2 0x3BA7 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x2C3 ADD MSTORE DUP2 DUP2 PUSH2 0x700 ADD MSTORE DUP2 DUP2 PUSH2 0x98F ADD MSTORE DUP2 DUP2 PUSH2 0xAA5 ADD MSTORE DUP2 DUP2 PUSH2 0xD6F ADD MSTORE DUP2 DUP2 PUSH2 0x10D6 ADD MSTORE DUP2 DUP2 PUSH2 0x127A ADD MSTORE DUP2 DUP2 PUSH2 0x1399 ADD MSTORE DUP2 DUP2 PUSH2 0x1493 ADD MSTORE DUP2 DUP2 PUSH2 0x1528 ADD MSTORE DUP2 DUP2 PUSH2 0x1652 ADD MSTORE DUP2 DUP2 PUSH2 0x17A8 ADD MSTORE DUP2 DUP2 PUSH2 0x1947 ADD MSTORE DUP2 DUP2 PUSH2 0x2013 ADD MSTORE DUP2 DUP2 PUSH2 0x2143 ADD MSTORE DUP2 DUP2 PUSH2 0x2227 ADD MSTORE DUP2 DUP2 PUSH2 0x25F3 ADD MSTORE DUP2 DUP2 PUSH2 0x29D3 ADD MSTORE DUP2 DUP2 PUSH2 0x2A70 ADD MSTORE DUP2 DUP2 PUSH2 0x2B23 ADD MSTORE DUP2 DUP2 PUSH2 0x2CF2 ADD MSTORE DUP2 DUP2 PUSH2 0x3228 ADD MSTORE DUP2 DUP2 PUSH2 0x35E5 ADD MSTORE DUP2 DUP2 PUSH2 0x3682 ADD MSTORE DUP2 DUP2 PUSH2 0x3728 ADD MSTORE DUP2 DUP2 PUSH2 0x38D5 ADD MSTORE DUP2 DUP2 PUSH2 0x39F2 ADD MSTORE PUSH2 0x442E ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x882 ADD MSTORE DUP2 DUP2 PUSH2 0x8CB ADD MSTORE DUP2 DUP2 PUSH2 0xBCC ADD MSTORE DUP2 DUP2 PUSH2 0xC0C ADD MSTORE PUSH2 0xC99 ADD MSTORE PUSH2 0x5BC0 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x766DBC56 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xB9B28F2A GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xCFD4C606 GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x5CD JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x600 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xB9B28F2A EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0xCEDDAC6F EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0xCF19171E EQ PUSH2 0x59A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x49D JUMPI DUP1 PUSH4 0x9014D171 EQ PUSH2 0x4BC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x766DBC56 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x82FF9C8C EQ PUSH2 0x456 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x173 JUMPI DUP1 PUSH4 0x6A448EF1 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x32B JUMPI DUP1 PUSH4 0x571E8BCC EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x35E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x3F961587 EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2FB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x18E26BB9 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x255 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B62 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x63F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x4B89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x4BE9 JUMP JUMPDEST PUSH2 0x878 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x95E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x293 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D5A JUMP JUMPDEST PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST PUSH2 0x253 PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E64 JUMP JUMPDEST PUSH2 0xBC2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x319 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0xC8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EC4 JUMP JUMPDEST PUSH2 0xD3E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x369 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x2A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x4EFA JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x4F89 JUMP JUMPDEST PUSH2 0x124E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x4FFD JUMP JUMPDEST PUSH2 0x1376 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x2A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x461 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x5028 JUMP JUMPDEST PUSH2 0x14FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x162F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x494 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x1736 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x50A2 JUMP JUMPDEST PUSH2 0x1758 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4DB PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x50D4 JUMP JUMPDEST PUSH2 0x1775 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x5211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x5220 JUMP JUMPDEST PUSH2 0x18FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x512 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x525A JUMP JUMPDEST PUSH2 0x1916 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x545 PUSH2 0x540 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x5B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x5287 JUMP JUMPDEST PUSH2 0x1F14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x1F25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x545 PUSH2 0x1F43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x4BE9 JUMP JUMPDEST PUSH2 0x1FF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x2140 JUMP JUMPDEST PUSH0 PUSH2 0x61E DUP3 PUSH2 0x21C1 JUMP JUMPDEST DUP1 PUSH2 0x639 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x64E SWAP1 PUSH2 0x52CC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67A SWAP1 PUSH2 0x52CC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x75A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77E SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH0 SUB PUSH2 0x7FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFFFF AND SWAP1 SUB PUSH2 0x830 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH32 0xDA8C8883E1B3EAD63D3EF64674F8FC499048554F6FA36776AF0AB41D2F998346 SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x534C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x911 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5398 JUMP JUMPDEST PUSH2 0x940 DUP2 PUSH2 0x21F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x95B SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2313 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9E9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA57 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA69 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA75 PUSH2 0x247D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA82 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAFF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB23 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB91 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2517 JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0xBA3 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0xBAC DUP15 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x279D JUMP JUMPDEST MLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x534C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC52 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5398 JUMP JUMPDEST PUSH2 0xC81 DUP3 PUSH2 0x21F6 JUMP JUMPDEST PUSH2 0xA75 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2313 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDED SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE21 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE37 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP4 PUSH0 SUB PUSH2 0xE6D JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xE85 DUP6 PUSH0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9B DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEB1 DUP6 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC7 DUP6 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEDD DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEF3 DUP6 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF09 DUP6 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP5 DUP6 ADD DUP5 SWAP1 MSTORE PUSH0 DUP11 DUP2 MSTORE PUSH2 0x12D DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP4 DUP9 ADD MLOAD SWAP3 DUP9 ADD MLOAD SWAP7 DUP9 ADD MLOAD PUSH1 0x80 DUP10 ADD MLOAD PUSH1 0xA0 DUP11 ADD MLOAD PUSH1 0xC0 DUP12 ADD MLOAD PUSH1 0xE0 DUP13 ADD MLOAD PUSH2 0x100 DUP14 ADD MLOAD PUSH2 0x120 SWAP1 SWAP14 ADD MLOAD DUP12 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP14 DUP12 AND PUSH1 0x1 PUSH1 0x90 SHL MUL SWAP14 SWAP1 SWAP14 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT SWAP2 SWAP1 SWAP11 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP3 DUP13 AND PUSH1 0x1 PUSH1 0x60 SHL MUL SWAP3 SWAP1 SWAP3 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT SWAP4 DUP13 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP6 DUP14 AND PUSH1 0x1 PUSH1 0x40 SHL MUL SWAP6 SWAP1 SWAP6 AND PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT SWAP7 DUP14 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP15 DUP15 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP15 SWAP1 SWAP15 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP11 DUP15 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP9 SWAP1 SWAP14 AND SWAP8 SWAP1 SWAP8 OR SWAP10 SWAP1 SWAP10 OR SWAP8 SWAP1 SWAP8 AND SWAP10 SWAP1 SWAP10 OR SWAP10 SWAP1 SWAP10 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR OR SWAP6 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH2 0x105C SWAP1 PUSH2 0x2D94 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP5 DUP3 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD DUP6 SWAP2 PUSH32 0x1F02D2D352DDBF27121545F4D4730D7656C038F9CE75851410C9EF6982728975 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xE0 ADD SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x111C JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1153 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x116C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116C JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x11CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11F0 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11FF DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x318E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1244 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1257 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12D4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12F8 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1329 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1366 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x31CB JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 CALLER DUP16 PUSH2 0x32F7 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1417 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1448 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1470 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147C PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x14CA SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5501 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1505 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1582 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15FF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1614 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x31CB JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0x1626 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0xBAC DUP15 PUSH2 0x1E17 JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16D0 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1702 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1718 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x172A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x95B PUSH2 0x335F JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1753 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x339C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x176D DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1768 PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x342A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x177D PUSH2 0x4AB4 JUMP JUMPDEST PUSH2 0x1785 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1802 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1826 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1857 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x187F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1894 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2517 JUMP JUMPDEST PUSH2 0x18B4 DUP13 DUP13 DUP13 DUP13 CALLER DUP14 PUSH2 0x18A6 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x18AF DUP15 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x3446 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP10 DUP2 MSTORE SWAP2 SWAP4 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x190D DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x1768 DUP8 PUSH2 0x1E17 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C5 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A21 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x1A2D SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A3F JUMPI PUSH2 0x1A3F PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1A68 JUMPI PUSH2 0x1A4D DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A7C JUMPI PUSH2 0x1A7C PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1AAE JUMPI PUSH2 0x1A8A DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1AC2 JUMPI PUSH2 0x1AC2 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1AF7 JUMPI PUSH2 0x1AD0 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1B0B JUMPI PUSH2 0x1B0B PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1B3F JUMPI PUSH2 0x1B19 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1B53 JUMPI PUSH2 0x1B53 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1B8C JUMPI PUSH2 0x1B61 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1BA0 JUMPI PUSH2 0x1BA0 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1BD4 JUMPI PUSH2 0x1BAE DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1BE8 JUMPI PUSH2 0x1BE8 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1C1C JUMPI PUSH2 0x1BF6 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1C30 JUMPI PUSH2 0x1C30 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1C6A JUMPI PUSH2 0x1C40 PUSH1 0x2 DUP5 PUSH2 0x395F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1C7E JUMPI PUSH2 0x1C7E PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1D96 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x1CF7 PUSH2 0x1736 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1D16 JUMPI POP PUSH2 0x1D16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x39EF JUMP JUMPDEST PUSH2 0x1D62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x1D6C PUSH0 DUP5 PUSH2 0x395F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1DAA JUMPI PUSH2 0x1DAA PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1DDA JUMPI PUSH2 0x1DB8 DUP4 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1E11 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1DEF JUMPI PUSH2 0x1DEF PUSH2 0x551E JUMP JUMPDEST PUSH2 0x1DFA SWAP1 PUSH1 0x8 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x1E0B JUMPI PUSH2 0x1E0B PUSH2 0x551E JUMP JUMPDEST DUP5 PUSH2 0x3B47 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E1F PUSH2 0x4B2C JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1F07 JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0xFFFF SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1E5C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1F00 SWAP1 PUSH2 0x270A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x639 PUSH2 0x1F43 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x190D DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x1768 DUP8 PUSH2 0x270A JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1753 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x339C JUMP JUMPDEST PUSH2 0x1F4B PUSH2 0x4B2C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1753 SWAP1 PUSH2 0x270A JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x206D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2091 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x2116 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA75 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x3B47 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x219D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1753 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x639 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2281 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22A5 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2301 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x230E DUP4 PUSH2 0x3B98 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2346 JUMPI PUSH2 0x230E DUP4 PUSH2 0x3C56 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x23A0 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x239D SWAP2 DUP2 ADD SWAP1 PUSH2 0x5545 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2403 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x2471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP PUSH2 0x230E DUP4 DUP4 DUP4 PUSH2 0x3CF1 JUMP JUMPDEST PUSH2 0x2485 PUSH2 0x3D15 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x253F JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x25E1 ADDRESS DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x25B5 DUP13 PUSH0 PUSH1 0x90 DUP3 PUSH1 0xC0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xA0 DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xB0 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xC0 DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xD0 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xE0 DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xF0 DUP9 PUSH0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL OR OR OR OR OR OR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25CD SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x555C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x3D5E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x25EF DUP3 DUP7 DUP7 PUSH2 0x3D98 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x264D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2671 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xF5D8F7A4041CF31E35E40569643A02F20F7706179AAA0B7764C077C3A607B275 DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x55D4 JUMP JUMPDEST PUSH2 0x2712 PUSH2 0x4B2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2729 DUP5 PUSH0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x273B DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x274D DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x275F DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2771 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2783 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2795 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x27A5 PUSH2 0x4AB4 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x27CE JUMPI PUSH2 0x27CB DUP9 DUP8 DUP8 PUSH2 0x27C5 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x55E7 JUMP JUMPDEST DUP7 PUSH2 0x342A JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x281D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x2837 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2883 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x2895 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x28B6 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x28C6 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x2938 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x295B PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH2 0x2965 SWAP1 DUP9 PUSH2 0x5600 JUMP JUMPDEST PUSH2 0x296F SWAP2 SWAP1 PUSH2 0x561D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x29C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x29D1 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x5422 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A2D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A51 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2ABF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AE3 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO PUSH2 0x2B01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5646 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x2C21 JUMPI POP PUSH2 0x2B21 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x5422 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B7D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BA1 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BFA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C1E SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2C3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5693 JUMP JUMPDEST PUSH2 0x2C45 PUSH2 0x1F25 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2C64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x56E2 JUMP JUMPDEST PUSH2 0x2C86 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2C81 SWAP2 SWAP1 PUSH2 0x55E7 JUMP JUMPDEST PUSH2 0x3DD1 JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2C9C SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2CAC SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2CBA SWAP1 POP PUSH2 0x1736 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2CDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5734 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x2D2D SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5777 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D6D SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH2 0x2D8F PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x3AE1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2DFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x2E28 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x2E7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x2F10 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x2F5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2FC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3034 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x30A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x310E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3138 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x31BC PUSH2 0x3F41 JUMP JUMPDEST PUSH2 0x14F3 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3F77 JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x3216 ADDRESS DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25CD SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x555C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x3224 DUP3 DUP7 DUP7 PUSH2 0x3D98 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3282 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH2 0x32FF PUSH2 0x4AB4 JUMP JUMPDEST PUSH2 0x331A DUP10 DUP10 DUP10 DUP10 DUP8 DUP8 PUSH2 0x3311 DUP13 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x18AF DUP13 PUSH2 0x1E17 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE SWAP2 SWAP3 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3367 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x24B2 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x33A6 PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33E1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3405 SWAP2 SWAP1 PUSH2 0x5822 JUMP JUMPDEST PUSH2 0x340F SWAP2 SWAP1 PUSH2 0x5842 JUMP JUMPDEST PUSH2 0x341A SWAP1 PUSH1 0xA PUSH2 0x5936 JUMP JUMPDEST PUSH2 0x1F00 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x5944 JUMP JUMPDEST PUSH0 PUSH2 0x3438 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x4178 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x344E PUSH2 0x4AB4 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x3467 JUMPI PUSH2 0x3464 DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x342A JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x34B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x3513 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x352E DUP4 DUP11 PUSH2 0x5600 JUMP JUMPDEST PUSH2 0x3538 SWAP2 SWAP1 PUSH2 0x561D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x358C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x35E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3663 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36D1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36F5 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO PUSH2 0x3713 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5646 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3826 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3782 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x37A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x37FF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3823 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x3842 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5693 JUMP JUMPDEST PUSH2 0x384A PUSH2 0x1F25 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3869 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x56E2 JUMP JUMPDEST PUSH2 0x3878 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3DD1 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x388F SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x389D SWAP1 POP PUSH2 0x1736 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x38BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5734 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3910 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x595B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x392C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3950 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 DUP4 PUSH2 0x396C PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39CB SWAP2 SWAP1 PUSH2 0x5822 JUMP JUMPDEST PUSH2 0x39D5 SWAP2 SWAP1 PUSH2 0x5842 JUMP JUMPDEST PUSH2 0x39E0 SWAP1 PUSH1 0xA PUSH2 0x5936 JUMP JUMPDEST PUSH2 0x39EA SWAP1 DUP5 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x436B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A4C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A70 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ABD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x59A2 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x3B43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x3B4F PUSH2 0x43CF JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3B61 JUMPI PUSH2 0x3B61 PUSH2 0x551E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x3BA1 DUP2 PUSH2 0x442C JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C0B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C2F SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA75 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3CC3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3CFA DUP4 PUSH2 0x44DD JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3D06 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x230E JUMPI PUSH2 0x1E11 DUP4 DUP4 PUSH2 0x451C JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 PUSH2 0x3D69 DUP3 MLOAD PUSH2 0x4541 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D7B SWAP3 SWAP2 SWAP1 PUSH2 0x59D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x3DA6 DUP7 DUP7 DUP7 PUSH2 0x45D1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3DB3 DUP2 PUSH2 0x460A JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x3DD9 PUSH2 0x4AB4 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3E34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x3E3C PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3E86 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x4178 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3F1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3F2E SWAP1 DUP10 PUSH2 0x5422 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3F67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x3F6F PUSH2 0x4753 JUMP JUMPDEST PUSH2 0x2515 PUSH2 0x4779 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3F9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3FA9 DUP9 DUP3 PUSH2 0x5A5D JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x3FCC DUP9 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3FDE DUP8 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3FFD DUP7 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4011 PUSH1 0x2 DUP7 PUSH2 0x395F JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4026 PUSH0 DUP6 PUSH2 0x395F JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x14F3 PUSH2 0x43CF JUMP JUMPDEST PUSH2 0x41B8 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x41D0 SWAP1 PUSH2 0x41C9 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x41E2 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x420C JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x4204 SWAP1 DUP4 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x4213 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x4223 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x4239 SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x426E JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x4255 SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x4266 SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x4275 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x42B2 PUSH4 0x1E13380 PUSH2 0x4287 DUP5 DUP7 PUSH2 0x5600 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x429D SWAP2 SWAP1 PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x42A7 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x42F4 PUSH4 0x1E13380 PUSH2 0x42C9 DUP5 DUP7 PUSH2 0x5600 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x42DF SWAP2 SWAP1 PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x42E9 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x430B SWAP2 PUSH2 0x5532 JUMP JUMPDEST SWAP1 POP PUSH2 0x4324 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x47A7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x4334 SWAP2 PUSH2 0x47A7 JUMP JUMPDEST PUSH2 0x433E SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x4352 SWAP2 PUSH2 0x5532 JUMP JUMPDEST PUSH2 0x435C SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x43DA PUSH2 0x1736 JUMP JUMPDEST LT ISZERO PUSH2 0x43F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4422 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2515 PUSH1 0xFC PUSH2 0x2D94 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4492 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44B6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44E6 DUP2 PUSH2 0x3C56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1F00 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B64 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x47DD JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x454D DUP4 PUSH2 0x4851 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456C JUMPI PUSH2 0x456C PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4596 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x45A0 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x45ED PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x5532 JUMP JUMPDEST SWAP1 POP PUSH2 0x45FB DUP8 DUP3 DUP9 DUP6 PUSH2 0x4928 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x461D JUMPI PUSH2 0x461D PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x4625 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x4639 JUMPI PUSH2 0x4639 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x4686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x469A JUMPI PUSH2 0x469A PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x46E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x46FB JUMPI PUSH2 0x46FB PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x479F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x2515 PUSH2 0x49E5 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x47C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x47F9 SWAP2 SWAP1 PUSH2 0x5B18 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4831 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4836 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4847 DUP7 DUP4 DUP4 DUP8 PUSH2 0x4A17 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x488F JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x48BB JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x48D9 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x48F1 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4905 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4917 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x639 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x495D JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x49DC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49AE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x49D6 JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x49DC JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A85 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4A7E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4A7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST POP DUP2 PUSH2 0x176D JUMP JUMPDEST PUSH2 0x176D DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x4A9A JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP2 SWAP1 PUSH2 0x4B89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BCE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x95B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BF9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F00 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C15 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4C67 JUMPI PUSH2 0x4C67 PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x140 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4CAA PUSH2 0x4C43 JUMP JUMPDEST SWAP1 POP PUSH2 0x4CB5 DUP3 PUSH2 0x4C6D JUMP JUMPDEST DUP2 MSTORE PUSH2 0x4CC3 PUSH1 0x20 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x4CD4 PUSH1 0x40 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4CE5 PUSH1 0x60 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x4CF6 PUSH1 0x80 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x4D07 PUSH1 0xA0 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x4D18 PUSH1 0xC0 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x4D29 PUSH1 0xE0 DUP4 ADD PUSH2 0x4C7E JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x4D3B PUSH2 0x100 DUP4 ADD PUSH2 0x4C7E JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x4D4E PUSH2 0x120 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH2 0x120 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x400 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4D74 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4D7E DUP13 DUP13 PUSH2 0x4C04 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x4DA5 PUSH2 0x220 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x4DBD DUP13 PUSH2 0x260 DUP14 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP4 POP PUSH2 0x3A0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x3C0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x3E0 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4E07 JUMPI PUSH2 0x4E07 PUSH2 0x4C2F JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4E36 JUMPI PUSH2 0x4E36 PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x4E4D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E75 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E80 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4E9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4EAB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EBA DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4DED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0x4ED7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x4EEC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4F10 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4F26 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x4F36 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4F45 DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4DED JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x4F79 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4FA3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x4FC1 PUSH1 0x60 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x4FD1 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x120 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x500F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5019 DUP5 DUP5 PUSH2 0x4C04 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x2E0 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5042 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x504C DUP13 DUP13 PUSH2 0x4C04 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x5073 PUSH2 0x220 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x260 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH2 0x280 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x2A0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x2C0 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x50B4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x50CB PUSH1 0x40 DUP6 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x50EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x510C PUSH1 0x60 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x511C DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x5132 DUP13 PUSH1 0xC0 DUP14 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP4 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x220 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x240 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x51DB PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x51F6 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x230E PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x639 DUP3 DUP5 PUSH2 0x5151 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5233 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x524A PUSH1 0x40 DUP7 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x526B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x5279 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x1A0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x529B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x52B2 PUSH1 0x40 DUP7 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP2 POP PUSH2 0x52C1 DUP7 PUSH1 0x60 DUP8 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x52E0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4C15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x530E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F00 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1F0F DUP2 PUSH2 0x4BD5 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x54B8 PUSH2 0x160 DUP3 ADD PUSH2 0x5435 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x54D4 PUSH2 0x180 DUP3 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x54EE PUSH2 0x1A0 DUP3 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x5510 DUP3 DUP6 PUSH2 0x5440 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5555 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 SWAP9 SWAP1 SWAP9 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP9 MSTORE PUSH1 0x14 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x34 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x54 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xD8 SWAP1 DUP2 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x74 DUP8 ADD MSTORE PUSH1 0x79 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x99 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 SHL AND PUSH1 0xB9 DUP3 ADD MSTORE PUSH1 0xBE ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x55E2 JUMPI PUSH2 0x55E2 PUSH2 0x55C0 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1F00 DUP3 PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x5633 JUMPI PUSH2 0x5633 PUSH2 0x55C0 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x5786 DUP3 DUP8 PUSH2 0x5440 JUMP JUMPDEST PUSH2 0x5794 PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x57D2 JUMPI PUSH2 0x57D2 PUSH2 0x55C0 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5832 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4602 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x587A JUMPI PUSH2 0x587A PUSH2 0x540E JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x5888 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x585F JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x58A4 JUMPI POP PUSH1 0x1 PUSH2 0x639 JUMP JUMPDEST DUP2 PUSH2 0x58B0 JUMPI POP PUSH0 PUSH2 0x639 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x58C6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x58D0 JUMPI PUSH2 0x58EC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x639 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x58E1 JUMPI PUSH2 0x58E1 PUSH2 0x540E JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x639 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x590F JUMPI POP DUP2 DUP2 EXP PUSH2 0x639 JUMP JUMPDEST PUSH2 0x591B PUSH0 NOT DUP5 DUP5 PUSH2 0x585B JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x592E JUMPI PUSH2 0x592E PUSH2 0x540E JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x5896 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x596A DUP3 DUP8 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0x176D PUSH2 0x5A0C PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x59C1 JUMP JUMPDEST DUP5 PUSH2 0x59C1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x230E JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5A37 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A56 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5A43 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A77 JUMPI PUSH2 0x5A77 PUSH2 0x4C2F JUMP JUMPDEST PUSH2 0x5A8B DUP2 PUSH2 0x5A85 DUP5 SLOAD PUSH2 0x52CC JUMP JUMPDEST DUP5 PUSH2 0x5A12 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5ABD JUMPI PUSH0 DUP4 ISZERO PUSH2 0x5AA6 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x5A56 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5AEC JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5ACC JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x5B09 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 DUP3 DUP5 PUSH2 0x59C1 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220833BF3 PUSH6 0x115B989C3447 SWAP14 SWAP3 PUSH11 0x84A113FDC952FE9A5442A8 0xC9 0xFB STOP 0xB6 PC 0xD1 0xB5 0xEB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"748:7269:52:-:0;;;1198:4:7;1155:48;;944:140:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1051:11;1064:16;1051:11;1064:16;1051:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;3107:11:60::1;-1:-1:-1::0;;;;;3044:74:60::1;3072:16;-1:-1:-1::0;;;;;3044:57:60::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3044:74:60::1;;3040:138;;3135:36;;-1:-1:-1::0;;;3135:36:60::1;;;;;;;;;;;3040:138;-1:-1:-1::0;;;;;3183:35:60::1;;::::0;-1:-1:-1;748:7269:52;;-1:-1:-1;;;;748:7269:52;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;1118:2:88;5998:66:6;;;1100:21:88;1157:2;1137:18;;;1130:30;1196:34;1176:18;;;1169:62;-1:-1:-1;;;1247:18:88;;;1240:37;1294:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1466:36:88;;;6174:28:6;;1454:2:88;1439:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:458::-;289:6;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;417:44;455:5;417:44;:::i;:::-;530:2;515:18;;509:25;480:5;;-1:-1:-1;543:46:88;509:25;543:46;:::i;:::-;608:7;598:17;;;163:458;;;;;:::o;626:285::-;717:6;770:2;758:9;749:7;745:23;741:32;738:52;;;786:1;783;776:12;738:52;818:9;812:16;837:44;875:5;837:44;:::i;:::-;900:5;626:285;-1:-1:-1;;;626:285:88:o;1324:184::-;748:7269:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_4toWad_20564":{"entryPoint":15804,"id":20564,"parameterSlots":1,"returnSlots":1},"@_XtoAmount_20604":{"entryPoint":13212,"id":20604,"parameterSlots":2,"returnSlots":1},"@__Pausable_init_1113":{"entryPoint":18297,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":18917,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":16193,"id":17875,"parameterSlots":0,"returnSlots":0},"@__RiskModule_init_20302":{"entryPoint":12686,"id":20302,"parameterSlots":7,"returnSlots":0},"@__RiskModule_init_unchained_20364":{"entryPoint":16247,"id":20364,"parameterSlots":7,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":18259,"id":1008,"parameterSlots":0,"returnSlots":0},"@_amountToX_20629":{"entryPoint":14687,"id":20629,"parameterSlots":2,"returnSlots":1},"@_authorizeUpgrade_17890":{"entryPoint":8694,"id":17890,"parameterSlots":1,"returnSlots":0},"@_checkFullSignature_13755":{"entryPoint":9495,"id":13755,"parameterSlots":9,"returnSlots":0},"@_checkSignature_21652":{"entryPoint":12747,"id":21652,"parameterSlots":9,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_getMinimumPremium_21037":{"entryPoint":13354,"id":21037,"parameterSlots":5,"returnSlots":1},"@_makeInternalId_20948":{"entryPoint":9979,"id":20948,"parameterSlots":1,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_newPolicySigned_21700":{"entryPoint":13047,"id":21700,"parameterSlots":8,"returnSlots":1},"@_newPolicyWithParams_21244":{"entryPoint":13382,"id":21244,"parameterSlots":8,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":15175,"id":18077,"parameterSlots":2,"returnSlots":0},"@_paramsAsUint256_13678":{"entryPoint":null,"id":13678,"parameterSlots":1,"returnSlots":1},"@_pause_1187":{"entryPoint":13151,"id":1187,"parameterSlots":0,"returnSlots":0},"@_replacePolicy_21437":{"entryPoint":10141,"id":21437,"parameterSlots":8,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":9423,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":15637,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":15446,"id":510,"parameterSlots":1,"returnSlots":0},"@_throwError_7365":{"entryPoint":17930,"id":7365,"parameterSlots":1,"returnSlots":0},"@_unpackParams_20928":{"entryPoint":9994,"id":20928,"parameterSlots":1,"returnSlots":1},"@_unpause_1203":{"entryPoint":9341,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":8979,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":15601,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":17629,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":17452,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_20394":{"entryPoint":15256,"id":20394,"parameterSlots":1,"returnSlots":0},"@_validatePackedParams_20540":{"entryPoint":11668,"id":20540,"parameterSlots":1,"returnSlots":0},"@_validateParameters_20445":{"entryPoint":17359,"id":20445,"parameterSlots":0,"returnSlots":0},"@_wadTo4_20579":{"entryPoint":11643,"id":20579,"parameterSlots":1,"returnSlots":1},"@activeExposure_20674":{"entryPoint":null,"id":20674,"parameterSlots":0,"returnSlots":1},"@bucketParams_22001":{"entryPoint":7703,"id":22001,"parameterSlots":1,"returnSlots":1},"@currency_17973":{"entryPoint":8512,"id":17973,"parameterSlots":0,"returnSlots":1},"@deleteBucket_21959":{"entryPoint":1743,"id":21959,"parameterSlots":1,"returnSlots":0},"@exposureLimit_20655":{"entryPoint":5942,"id":20655,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":17692,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":18397,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getMinimumPremiumForBucket_22030":{"entryPoint":6396,"id":22030,"parameterSlots":4,"returnSlots":1},"@getMinimumPremiumFullParams_13918":{"entryPoint":7956,"id":13918,"parameterSlots":4,"returnSlots":1},"@getMinimumPremium_15158":{"entryPoint":16760,"id":15158,"parameterSlots":5,"returnSlots":1},"@getMinimumPremium_21010":{"entryPoint":5976,"id":21010,"parameterSlots":3,"returnSlots":1},"@hasPoolRole_17995":{"entryPoint":14831,"id":17995,"parameterSlots":1,"returnSlots":1},"@initialize_15300":{"entryPoint":15825,"id":15300,"parameterSlots":7,"returnSlots":1},"@initialize_21578":{"entryPoint":4405,"id":21578,"parameterSlots":7,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@log10_8586":{"entryPoint":18513,"id":8586,"parameterSlots":1,"returnSlots":1},"@maxDuration_20665":{"entryPoint":null,"id":20665,"parameterSlots":0,"returnSlots":1},"@maxPayoutPerPolicy_20642":{"entryPoint":7973,"id":20642,"parameterSlots":0,"returnSlots":1},"@name_20549":{"entryPoint":1599,"id":20549,"parameterSlots":0,"returnSlots":1},"@newPolicyFullParams_13825":{"entryPoint":6005,"id":13825,"parameterSlots":10,"returnSlots":1},"@newPolicy_21757":{"entryPoint":4686,"id":21757,"parameterSlots":10,"returnSlots":1},"@params_20887":{"entryPoint":8003,"id":20887,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":5679,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@premiumsAccount_21460":{"entryPoint":null,"id":21460,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":3213,"id":1026,"parameterSlots":0,"returnSlots":1},"@recover_7515":{"entryPoint":15768,"id":7515,"parameterSlots":3,"returnSlots":1},"@releaseExposure_21450":{"entryPoint":4307,"id":21450,"parameterSlots":1,"returnSlots":0},"@replacePolicyFullParams_13888":{"entryPoint":2681,"id":13888,"parameterSlots":10,"returnSlots":1},"@replacePolicy_21819":{"entryPoint":5372,"id":21819,"parameterSlots":10,"returnSlots":1},"@resolvePolicy_21840":{"entryPoint":4982,"id":21840,"parameterSlots":2,"returnSlots":0},"@setBucketParams_21922":{"entryPoint":3390,"id":21922,"parameterSlots":2,"returnSlots":0},"@setParam_20875":{"entryPoint":6422,"id":20875,"parameterSlots":2,"returnSlots":0},"@setWallet_20985":{"entryPoint":8176,"id":20985,"parameterSlots":1,"returnSlots":0},"@supportsInterface_17931":{"entryPoint":8641,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_20416":{"entryPoint":1556,"id":20416,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_7644":{"entryPoint":15710,"id":7644,"parameterSlots":1,"returnSlots":1},"@toString_7141":{"entryPoint":17729,"id":7141,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":15073,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":17259,"id":9452,"parameterSlots":1,"returnSlots":1},"@tryRecover_7485":{"entryPoint":17873,"id":7485,"parameterSlots":3,"returnSlots":2},"@tryRecover_7579":{"entryPoint":18728,"id":7579,"parameterSlots":4,"returnSlots":2},"@unpause_17952":{"entryPoint":2398,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":3010,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":2168,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":18967,"id":2608,"parameterSlots":4,"returnSlots":1},"@wadMul_23186":{"entryPoint":18343,"id":23186,"parameterSlots":2,"returnSlots":1},"@wallet_20683":{"entryPoint":null,"id":20683,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":19949,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":21557,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PackedParams":{"entryPoint":19601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":19460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":19433,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":20068,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":22946,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":21829,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":19298,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":21246,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256":{"entryPoint":21082,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address":{"entryPoint":20218,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":20477,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40":{"entryPoint":19802,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40":{"entryPoint":20520,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint256":{"entryPoint":19390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr":{"entryPoint":20164,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40":{"entryPoint":20692,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40":{"entryPoint":20361,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint256t_uint256t_uint40":{"entryPoint":20642,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256t_uint256t_uint40t_struct$_PackedParams_$20220_memory_ptr":{"entryPoint":21127,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256":{"entryPoint":21024,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint40":{"entryPoint":21991,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":22562,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint16":{"entryPoint":19565,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint32":{"entryPoint":19582,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint40":{"entryPoint":19483,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IPolicyPool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":22977,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_PolicyData":{"entryPoint":20817,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData_calldata":{"entryPoint":21568,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed":{"entryPoint":21852,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":23320,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":23000,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":21476,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":21273,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19337,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22086,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22242,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21400,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22163,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22487,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed":{"entryPoint":22391,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":21761,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":21009,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed":{"entryPoint":22875,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":19523,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":21810,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":22468,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint40":{"entryPoint":22045,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":22619,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":22838,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":22678,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":22852,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":21538,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":22016,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":22594,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":23058,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":23133,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":21196,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":21972,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":21518,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":21952,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":21790,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":19503,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":19413,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:48093:88","nodeType":"YulBlock","src":"0:48093:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"618:297:88","nodeType":"YulBlock","src":"618:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"635:9:88","nodeType":"YulIdentifier","src":"635:9:88"},{"kind":"number","nativeSrc":"646:2:88","nodeType":"YulLiteral","src":"646:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"628:6:88","nodeType":"YulIdentifier","src":"628:6:88"},"nativeSrc":"628:21:88","nodeType":"YulFunctionCall","src":"628:21:88"},"nativeSrc":"628:21:88","nodeType":"YulExpressionStatement","src":"628:21:88"},{"nativeSrc":"658:27:88","nodeType":"YulVariableDeclaration","src":"658:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"678:6:88","nodeType":"YulIdentifier","src":"678:6:88"}],"functionName":{"name":"mload","nativeSrc":"672:5:88","nodeType":"YulIdentifier","src":"672:5:88"},"nativeSrc":"672:13:88","nodeType":"YulFunctionCall","src":"672:13:88"},"variables":[{"name":"length","nativeSrc":"662:6:88","nodeType":"YulTypedName","src":"662:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:88","nodeType":"YulIdentifier","src":"705:9:88"},{"kind":"number","nativeSrc":"716:2:88","nodeType":"YulLiteral","src":"716:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:18:88","nodeType":"YulFunctionCall","src":"701:18:88"},{"name":"length","nativeSrc":"721:6:88","nodeType":"YulIdentifier","src":"721:6:88"}],"functionName":{"name":"mstore","nativeSrc":"694:6:88","nodeType":"YulIdentifier","src":"694:6:88"},"nativeSrc":"694:34:88","nodeType":"YulFunctionCall","src":"694:34:88"},"nativeSrc":"694:34:88","nodeType":"YulExpressionStatement","src":"694:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"747:9:88","nodeType":"YulIdentifier","src":"747:9:88"},{"kind":"number","nativeSrc":"758:2:88","nodeType":"YulLiteral","src":"758:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"743:3:88","nodeType":"YulIdentifier","src":"743:3:88"},"nativeSrc":"743:18:88","nodeType":"YulFunctionCall","src":"743:18:88"},{"arguments":[{"name":"value0","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:2:88","nodeType":"YulLiteral","src":"775:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:15:88","nodeType":"YulFunctionCall","src":"763:15:88"},{"name":"length","nativeSrc":"780:6:88","nodeType":"YulIdentifier","src":"780:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"737:5:88","nodeType":"YulIdentifier","src":"737:5:88"},"nativeSrc":"737:50:88","nodeType":"YulFunctionCall","src":"737:50:88"},"nativeSrc":"737:50:88","nodeType":"YulExpressionStatement","src":"737:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"811:9:88","nodeType":"YulIdentifier","src":"811:9:88"},{"name":"length","nativeSrc":"822:6:88","nodeType":"YulIdentifier","src":"822:6:88"}],"functionName":{"name":"add","nativeSrc":"807:3:88","nodeType":"YulIdentifier","src":"807:3:88"},"nativeSrc":"807:22:88","nodeType":"YulFunctionCall","src":"807:22:88"},{"kind":"number","nativeSrc":"831:2:88","nodeType":"YulLiteral","src":"831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"803:3:88","nodeType":"YulIdentifier","src":"803:3:88"},"nativeSrc":"803:31:88","nodeType":"YulFunctionCall","src":"803:31:88"},{"kind":"number","nativeSrc":"836:1:88","nodeType":"YulLiteral","src":"836:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"796:6:88","nodeType":"YulIdentifier","src":"796:6:88"},"nativeSrc":"796:42:88","nodeType":"YulFunctionCall","src":"796:42:88"},"nativeSrc":"796:42:88","nodeType":"YulExpressionStatement","src":"796:42:88"},{"nativeSrc":"847:62:88","nodeType":"YulAssignment","src":"847:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"863:9:88","nodeType":"YulIdentifier","src":"863:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"882:6:88","nodeType":"YulIdentifier","src":"882:6:88"},{"kind":"number","nativeSrc":"890:2:88","nodeType":"YulLiteral","src":"890:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"878:3:88","nodeType":"YulIdentifier","src":"878:3:88"},"nativeSrc":"878:15:88","nodeType":"YulFunctionCall","src":"878:15:88"},{"arguments":[{"kind":"number","nativeSrc":"899:2:88","nodeType":"YulLiteral","src":"899:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"895:3:88","nodeType":"YulIdentifier","src":"895:3:88"},"nativeSrc":"895:7:88","nodeType":"YulFunctionCall","src":"895:7:88"}],"functionName":{"name":"and","nativeSrc":"874:3:88","nodeType":"YulIdentifier","src":"874:3:88"},"nativeSrc":"874:29:88","nodeType":"YulFunctionCall","src":"874:29:88"}],"functionName":{"name":"add","nativeSrc":"859:3:88","nodeType":"YulIdentifier","src":"859:3:88"},"nativeSrc":"859:45:88","nodeType":"YulFunctionCall","src":"859:45:88"},{"kind":"number","nativeSrc":"906:2:88","nodeType":"YulLiteral","src":"906:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"855:3:88","nodeType":"YulIdentifier","src":"855:3:88"},"nativeSrc":"855:54:88","nodeType":"YulFunctionCall","src":"855:54:88"},"variableNames":[{"name":"tail","nativeSrc":"847:4:88","nodeType":"YulIdentifier","src":"847:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"497:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"587:9:88","nodeType":"YulTypedName","src":"587:9:88","type":""},{"name":"value0","nativeSrc":"598:6:88","nodeType":"YulTypedName","src":"598:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"609:4:88","nodeType":"YulTypedName","src":"609:4:88","type":""}],"src":"497:418:88"},{"body":{"nativeSrc":"990:156:88","nodeType":"YulBlock","src":"990:156:88","statements":[{"body":{"nativeSrc":"1036:16:88","nodeType":"YulBlock","src":"1036:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1045:1:88","nodeType":"YulLiteral","src":"1045:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1048:1:88","nodeType":"YulLiteral","src":"1048:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1038:6:88","nodeType":"YulIdentifier","src":"1038:6:88"},"nativeSrc":"1038:12:88","nodeType":"YulFunctionCall","src":"1038:12:88"},"nativeSrc":"1038:12:88","nodeType":"YulExpressionStatement","src":"1038:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1011:7:88","nodeType":"YulIdentifier","src":"1011:7:88"},{"name":"headStart","nativeSrc":"1020:9:88","nodeType":"YulIdentifier","src":"1020:9:88"}],"functionName":{"name":"sub","nativeSrc":"1007:3:88","nodeType":"YulIdentifier","src":"1007:3:88"},"nativeSrc":"1007:23:88","nodeType":"YulFunctionCall","src":"1007:23:88"},{"kind":"number","nativeSrc":"1032:2:88","nodeType":"YulLiteral","src":"1032:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1003:3:88","nodeType":"YulIdentifier","src":"1003:3:88"},"nativeSrc":"1003:32:88","nodeType":"YulFunctionCall","src":"1003:32:88"},"nativeSrc":"1000:52:88","nodeType":"YulIf","src":"1000:52:88"},{"nativeSrc":"1061:14:88","nodeType":"YulVariableDeclaration","src":"1061:14:88","value":{"kind":"number","nativeSrc":"1074:1:88","nodeType":"YulLiteral","src":"1074:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1065:5:88","nodeType":"YulTypedName","src":"1065:5:88","type":""}]},{"nativeSrc":"1084:32:88","nodeType":"YulAssignment","src":"1084:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1106:9:88","nodeType":"YulIdentifier","src":"1106:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1093:12:88","nodeType":"YulIdentifier","src":"1093:12:88"},"nativeSrc":"1093:23:88","nodeType":"YulFunctionCall","src":"1093:23:88"},"variableNames":[{"name":"value","nativeSrc":"1084:5:88","nodeType":"YulIdentifier","src":"1084:5:88"}]},{"nativeSrc":"1125:15:88","nodeType":"YulAssignment","src":"1125:15:88","value":{"name":"value","nativeSrc":"1135:5:88","nodeType":"YulIdentifier","src":"1135:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1125:6:88","nodeType":"YulIdentifier","src":"1125:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"920:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"956:9:88","nodeType":"YulTypedName","src":"956:9:88","type":""},{"name":"dataEnd","nativeSrc":"967:7:88","nodeType":"YulTypedName","src":"967:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"979:6:88","nodeType":"YulTypedName","src":"979:6:88","type":""}],"src":"920:226:88"},{"body":{"nativeSrc":"1196:86:88","nodeType":"YulBlock","src":"1196:86:88","statements":[{"body":{"nativeSrc":"1260:16:88","nodeType":"YulBlock","src":"1260:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1269:1:88","nodeType":"YulLiteral","src":"1269:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1272:1:88","nodeType":"YulLiteral","src":"1272:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1262:6:88","nodeType":"YulIdentifier","src":"1262:6:88"},"nativeSrc":"1262:12:88","nodeType":"YulFunctionCall","src":"1262:12:88"},"nativeSrc":"1262:12:88","nodeType":"YulExpressionStatement","src":"1262:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1219:5:88","nodeType":"YulIdentifier","src":"1219:5:88"},{"arguments":[{"name":"value","nativeSrc":"1230:5:88","nodeType":"YulIdentifier","src":"1230:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1245:3:88","nodeType":"YulLiteral","src":"1245:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1250:1:88","nodeType":"YulLiteral","src":"1250:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1241:3:88","nodeType":"YulIdentifier","src":"1241:3:88"},"nativeSrc":"1241:11:88","nodeType":"YulFunctionCall","src":"1241:11:88"},{"kind":"number","nativeSrc":"1254:1:88","nodeType":"YulLiteral","src":"1254:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1237:3:88","nodeType":"YulIdentifier","src":"1237:3:88"},"nativeSrc":"1237:19:88","nodeType":"YulFunctionCall","src":"1237:19:88"}],"functionName":{"name":"and","nativeSrc":"1226:3:88","nodeType":"YulIdentifier","src":"1226:3:88"},"nativeSrc":"1226:31:88","nodeType":"YulFunctionCall","src":"1226:31:88"}],"functionName":{"name":"eq","nativeSrc":"1216:2:88","nodeType":"YulIdentifier","src":"1216:2:88"},"nativeSrc":"1216:42:88","nodeType":"YulFunctionCall","src":"1216:42:88"}],"functionName":{"name":"iszero","nativeSrc":"1209:6:88","nodeType":"YulIdentifier","src":"1209:6:88"},"nativeSrc":"1209:50:88","nodeType":"YulFunctionCall","src":"1209:50:88"},"nativeSrc":"1206:70:88","nodeType":"YulIf","src":"1206:70:88"}]},"name":"validator_revert_address","nativeSrc":"1151:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1185:5:88","nodeType":"YulTypedName","src":"1185:5:88","type":""}],"src":"1151:131:88"},{"body":{"nativeSrc":"1357:177:88","nodeType":"YulBlock","src":"1357:177:88","statements":[{"body":{"nativeSrc":"1403:16:88","nodeType":"YulBlock","src":"1403:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1412:1:88","nodeType":"YulLiteral","src":"1412:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1415:1:88","nodeType":"YulLiteral","src":"1415:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1405:6:88","nodeType":"YulIdentifier","src":"1405:6:88"},"nativeSrc":"1405:12:88","nodeType":"YulFunctionCall","src":"1405:12:88"},"nativeSrc":"1405:12:88","nodeType":"YulExpressionStatement","src":"1405:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1378:7:88","nodeType":"YulIdentifier","src":"1378:7:88"},{"name":"headStart","nativeSrc":"1387:9:88","nodeType":"YulIdentifier","src":"1387:9:88"}],"functionName":{"name":"sub","nativeSrc":"1374:3:88","nodeType":"YulIdentifier","src":"1374:3:88"},"nativeSrc":"1374:23:88","nodeType":"YulFunctionCall","src":"1374:23:88"},{"kind":"number","nativeSrc":"1399:2:88","nodeType":"YulLiteral","src":"1399:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1370:3:88","nodeType":"YulIdentifier","src":"1370:3:88"},"nativeSrc":"1370:32:88","nodeType":"YulFunctionCall","src":"1370:32:88"},"nativeSrc":"1367:52:88","nodeType":"YulIf","src":"1367:52:88"},{"nativeSrc":"1428:36:88","nodeType":"YulVariableDeclaration","src":"1428:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1454:9:88","nodeType":"YulIdentifier","src":"1454:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1441:12:88","nodeType":"YulIdentifier","src":"1441:12:88"},"nativeSrc":"1441:23:88","nodeType":"YulFunctionCall","src":"1441:23:88"},"variables":[{"name":"value","nativeSrc":"1432:5:88","nodeType":"YulTypedName","src":"1432:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1498:5:88","nodeType":"YulIdentifier","src":"1498:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1473:24:88","nodeType":"YulIdentifier","src":"1473:24:88"},"nativeSrc":"1473:31:88","nodeType":"YulFunctionCall","src":"1473:31:88"},"nativeSrc":"1473:31:88","nodeType":"YulExpressionStatement","src":"1473:31:88"},{"nativeSrc":"1513:15:88","nodeType":"YulAssignment","src":"1513:15:88","value":{"name":"value","nativeSrc":"1523:5:88","nodeType":"YulIdentifier","src":"1523:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1513:6:88","nodeType":"YulIdentifier","src":"1513:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1287:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1323:9:88","nodeType":"YulTypedName","src":"1323:9:88","type":""},{"name":"dataEnd","nativeSrc":"1334:7:88","nodeType":"YulTypedName","src":"1334:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1346:6:88","nodeType":"YulTypedName","src":"1346:6:88","type":""}],"src":"1287:247:88"},{"body":{"nativeSrc":"1612:86:88","nodeType":"YulBlock","src":"1612:86:88","statements":[{"body":{"nativeSrc":"1652:16:88","nodeType":"YulBlock","src":"1652:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1661:1:88","nodeType":"YulLiteral","src":"1661:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1664:1:88","nodeType":"YulLiteral","src":"1664:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1654:6:88","nodeType":"YulIdentifier","src":"1654:6:88"},"nativeSrc":"1654:12:88","nodeType":"YulFunctionCall","src":"1654:12:88"},"nativeSrc":"1654:12:88","nodeType":"YulExpressionStatement","src":"1654:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"1633:3:88","nodeType":"YulIdentifier","src":"1633:3:88"},{"name":"offset","nativeSrc":"1638:6:88","nodeType":"YulIdentifier","src":"1638:6:88"}],"functionName":{"name":"sub","nativeSrc":"1629:3:88","nodeType":"YulIdentifier","src":"1629:3:88"},"nativeSrc":"1629:16:88","nodeType":"YulFunctionCall","src":"1629:16:88"},{"kind":"number","nativeSrc":"1647:3:88","nodeType":"YulLiteral","src":"1647:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"1625:3:88","nodeType":"YulIdentifier","src":"1625:3:88"},"nativeSrc":"1625:26:88","nodeType":"YulFunctionCall","src":"1625:26:88"},"nativeSrc":"1622:46:88","nodeType":"YulIf","src":"1622:46:88"},{"nativeSrc":"1677:15:88","nodeType":"YulAssignment","src":"1677:15:88","value":{"name":"offset","nativeSrc":"1686:6:88","nodeType":"YulIdentifier","src":"1686:6:88"},"variableNames":[{"name":"value","nativeSrc":"1677:5:88","nodeType":"YulIdentifier","src":"1677:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"1539:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1586:6:88","nodeType":"YulTypedName","src":"1586:6:88","type":""},{"name":"end","nativeSrc":"1594:3:88","nodeType":"YulTypedName","src":"1594:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1602:5:88","nodeType":"YulTypedName","src":"1602:5:88","type":""}],"src":"1539:159:88"},{"body":{"nativeSrc":"1751:117:88","nodeType":"YulBlock","src":"1751:117:88","statements":[{"nativeSrc":"1761:29:88","nodeType":"YulAssignment","src":"1761:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1783:6:88","nodeType":"YulIdentifier","src":"1783:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1770:12:88","nodeType":"YulIdentifier","src":"1770:12:88"},"nativeSrc":"1770:20:88","nodeType":"YulFunctionCall","src":"1770:20:88"},"variableNames":[{"name":"value","nativeSrc":"1761:5:88","nodeType":"YulIdentifier","src":"1761:5:88"}]},{"body":{"nativeSrc":"1846:16:88","nodeType":"YulBlock","src":"1846:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1855:1:88","nodeType":"YulLiteral","src":"1855:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1858:1:88","nodeType":"YulLiteral","src":"1858:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1848:6:88","nodeType":"YulIdentifier","src":"1848:6:88"},"nativeSrc":"1848:12:88","nodeType":"YulFunctionCall","src":"1848:12:88"},"nativeSrc":"1848:12:88","nodeType":"YulExpressionStatement","src":"1848:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1812:5:88","nodeType":"YulIdentifier","src":"1812:5:88"},{"arguments":[{"name":"value","nativeSrc":"1823:5:88","nodeType":"YulIdentifier","src":"1823:5:88"},{"kind":"number","nativeSrc":"1830:12:88","nodeType":"YulLiteral","src":"1830:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"1819:3:88","nodeType":"YulIdentifier","src":"1819:3:88"},"nativeSrc":"1819:24:88","nodeType":"YulFunctionCall","src":"1819:24:88"}],"functionName":{"name":"eq","nativeSrc":"1809:2:88","nodeType":"YulIdentifier","src":"1809:2:88"},"nativeSrc":"1809:35:88","nodeType":"YulFunctionCall","src":"1809:35:88"}],"functionName":{"name":"iszero","nativeSrc":"1802:6:88","nodeType":"YulIdentifier","src":"1802:6:88"},"nativeSrc":"1802:43:88","nodeType":"YulFunctionCall","src":"1802:43:88"},"nativeSrc":"1799:63:88","nodeType":"YulIf","src":"1799:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"1703:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1730:6:88","nodeType":"YulTypedName","src":"1730:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1741:5:88","nodeType":"YulTypedName","src":"1741:5:88","type":""}],"src":"1703:165:88"},{"body":{"nativeSrc":"1905:95:88","nodeType":"YulBlock","src":"1905:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1922:1:88","nodeType":"YulLiteral","src":"1922:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1929:3:88","nodeType":"YulLiteral","src":"1929:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1934:10:88","nodeType":"YulLiteral","src":"1934:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1925:3:88","nodeType":"YulIdentifier","src":"1925:3:88"},"nativeSrc":"1925:20:88","nodeType":"YulFunctionCall","src":"1925:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1915:6:88","nodeType":"YulIdentifier","src":"1915:6:88"},"nativeSrc":"1915:31:88","nodeType":"YulFunctionCall","src":"1915:31:88"},"nativeSrc":"1915:31:88","nodeType":"YulExpressionStatement","src":"1915:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1962:1:88","nodeType":"YulLiteral","src":"1962:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1965:4:88","nodeType":"YulLiteral","src":"1965:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1955:6:88","nodeType":"YulIdentifier","src":"1955:6:88"},"nativeSrc":"1955:15:88","nodeType":"YulFunctionCall","src":"1955:15:88"},"nativeSrc":"1955:15:88","nodeType":"YulExpressionStatement","src":"1955:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1986:1:88","nodeType":"YulLiteral","src":"1986:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1989:4:88","nodeType":"YulLiteral","src":"1989:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1979:6:88","nodeType":"YulIdentifier","src":"1979:6:88"},"nativeSrc":"1979:15:88","nodeType":"YulFunctionCall","src":"1979:15:88"},"nativeSrc":"1979:15:88","nodeType":"YulExpressionStatement","src":"1979:15:88"}]},"name":"panic_error_0x41","nativeSrc":"1873:127:88","nodeType":"YulFunctionDefinition","src":"1873:127:88"},{"body":{"nativeSrc":"2046:209:88","nodeType":"YulBlock","src":"2046:209:88","statements":[{"nativeSrc":"2056:19:88","nodeType":"YulAssignment","src":"2056:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"2072:2:88","nodeType":"YulLiteral","src":"2072:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2066:5:88","nodeType":"YulIdentifier","src":"2066:5:88"},"nativeSrc":"2066:9:88","nodeType":"YulFunctionCall","src":"2066:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"2056:6:88","nodeType":"YulIdentifier","src":"2056:6:88"}]},{"nativeSrc":"2084:37:88","nodeType":"YulVariableDeclaration","src":"2084:37:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"2106:6:88","nodeType":"YulIdentifier","src":"2106:6:88"},{"kind":"number","nativeSrc":"2114:6:88","nodeType":"YulLiteral","src":"2114:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"2102:3:88","nodeType":"YulIdentifier","src":"2102:3:88"},"nativeSrc":"2102:19:88","nodeType":"YulFunctionCall","src":"2102:19:88"},"variables":[{"name":"newFreePtr","nativeSrc":"2088:10:88","nodeType":"YulTypedName","src":"2088:10:88","type":""}]},{"body":{"nativeSrc":"2196:22:88","nodeType":"YulBlock","src":"2196:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2198:16:88","nodeType":"YulIdentifier","src":"2198:16:88"},"nativeSrc":"2198:18:88","nodeType":"YulFunctionCall","src":"2198:18:88"},"nativeSrc":"2198:18:88","nodeType":"YulExpressionStatement","src":"2198:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2139:10:88","nodeType":"YulIdentifier","src":"2139:10:88"},{"kind":"number","nativeSrc":"2151:18:88","nodeType":"YulLiteral","src":"2151:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2136:2:88","nodeType":"YulIdentifier","src":"2136:2:88"},"nativeSrc":"2136:34:88","nodeType":"YulFunctionCall","src":"2136:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2175:10:88","nodeType":"YulIdentifier","src":"2175:10:88"},{"name":"memPtr","nativeSrc":"2187:6:88","nodeType":"YulIdentifier","src":"2187:6:88"}],"functionName":{"name":"lt","nativeSrc":"2172:2:88","nodeType":"YulIdentifier","src":"2172:2:88"},"nativeSrc":"2172:22:88","nodeType":"YulFunctionCall","src":"2172:22:88"}],"functionName":{"name":"or","nativeSrc":"2133:2:88","nodeType":"YulIdentifier","src":"2133:2:88"},"nativeSrc":"2133:62:88","nodeType":"YulFunctionCall","src":"2133:62:88"},"nativeSrc":"2130:88:88","nodeType":"YulIf","src":"2130:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2234:2:88","nodeType":"YulLiteral","src":"2234:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2238:10:88","nodeType":"YulIdentifier","src":"2238:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2227:6:88","nodeType":"YulIdentifier","src":"2227:6:88"},"nativeSrc":"2227:22:88","nodeType":"YulFunctionCall","src":"2227:22:88"},"nativeSrc":"2227:22:88","nodeType":"YulExpressionStatement","src":"2227:22:88"}]},"name":"allocate_memory","nativeSrc":"2005:250:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"2035:6:88","nodeType":"YulTypedName","src":"2035:6:88","type":""}],"src":"2005:250:88"},{"body":{"nativeSrc":"2308:111:88","nodeType":"YulBlock","src":"2308:111:88","statements":[{"nativeSrc":"2318:29:88","nodeType":"YulAssignment","src":"2318:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"2340:6:88","nodeType":"YulIdentifier","src":"2340:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"2327:12:88","nodeType":"YulIdentifier","src":"2327:12:88"},"nativeSrc":"2327:20:88","nodeType":"YulFunctionCall","src":"2327:20:88"},"variableNames":[{"name":"value","nativeSrc":"2318:5:88","nodeType":"YulIdentifier","src":"2318:5:88"}]},{"body":{"nativeSrc":"2397:16:88","nodeType":"YulBlock","src":"2397:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2406:1:88","nodeType":"YulLiteral","src":"2406:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2409:1:88","nodeType":"YulLiteral","src":"2409:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2399:6:88","nodeType":"YulIdentifier","src":"2399:6:88"},"nativeSrc":"2399:12:88","nodeType":"YulFunctionCall","src":"2399:12:88"},"nativeSrc":"2399:12:88","nodeType":"YulExpressionStatement","src":"2399:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2369:5:88","nodeType":"YulIdentifier","src":"2369:5:88"},{"arguments":[{"name":"value","nativeSrc":"2380:5:88","nodeType":"YulIdentifier","src":"2380:5:88"},{"kind":"number","nativeSrc":"2387:6:88","nodeType":"YulLiteral","src":"2387:6:88","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"2376:3:88","nodeType":"YulIdentifier","src":"2376:3:88"},"nativeSrc":"2376:18:88","nodeType":"YulFunctionCall","src":"2376:18:88"}],"functionName":{"name":"eq","nativeSrc":"2366:2:88","nodeType":"YulIdentifier","src":"2366:2:88"},"nativeSrc":"2366:29:88","nodeType":"YulFunctionCall","src":"2366:29:88"}],"functionName":{"name":"iszero","nativeSrc":"2359:6:88","nodeType":"YulIdentifier","src":"2359:6:88"},"nativeSrc":"2359:37:88","nodeType":"YulFunctionCall","src":"2359:37:88"},"nativeSrc":"2356:57:88","nodeType":"YulIf","src":"2356:57:88"}]},"name":"abi_decode_uint16","nativeSrc":"2260:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2287:6:88","nodeType":"YulTypedName","src":"2287:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2298:5:88","nodeType":"YulTypedName","src":"2298:5:88","type":""}],"src":"2260:159:88"},{"body":{"nativeSrc":"2472:115:88","nodeType":"YulBlock","src":"2472:115:88","statements":[{"nativeSrc":"2482:29:88","nodeType":"YulAssignment","src":"2482:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"2504:6:88","nodeType":"YulIdentifier","src":"2504:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"2491:12:88","nodeType":"YulIdentifier","src":"2491:12:88"},"nativeSrc":"2491:20:88","nodeType":"YulFunctionCall","src":"2491:20:88"},"variableNames":[{"name":"value","nativeSrc":"2482:5:88","nodeType":"YulIdentifier","src":"2482:5:88"}]},{"body":{"nativeSrc":"2565:16:88","nodeType":"YulBlock","src":"2565:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2574:1:88","nodeType":"YulLiteral","src":"2574:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2577:1:88","nodeType":"YulLiteral","src":"2577:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2567:6:88","nodeType":"YulIdentifier","src":"2567:6:88"},"nativeSrc":"2567:12:88","nodeType":"YulFunctionCall","src":"2567:12:88"},"nativeSrc":"2567:12:88","nodeType":"YulExpressionStatement","src":"2567:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2533:5:88","nodeType":"YulIdentifier","src":"2533:5:88"},{"arguments":[{"name":"value","nativeSrc":"2544:5:88","nodeType":"YulIdentifier","src":"2544:5:88"},{"kind":"number","nativeSrc":"2551:10:88","nodeType":"YulLiteral","src":"2551:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"2540:3:88","nodeType":"YulIdentifier","src":"2540:3:88"},"nativeSrc":"2540:22:88","nodeType":"YulFunctionCall","src":"2540:22:88"}],"functionName":{"name":"eq","nativeSrc":"2530:2:88","nodeType":"YulIdentifier","src":"2530:2:88"},"nativeSrc":"2530:33:88","nodeType":"YulFunctionCall","src":"2530:33:88"}],"functionName":{"name":"iszero","nativeSrc":"2523:6:88","nodeType":"YulIdentifier","src":"2523:6:88"},"nativeSrc":"2523:41:88","nodeType":"YulFunctionCall","src":"2523:41:88"},"nativeSrc":"2520:61:88","nodeType":"YulIf","src":"2520:61:88"}]},"name":"abi_decode_uint32","nativeSrc":"2424:163:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2451:6:88","nodeType":"YulTypedName","src":"2451:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2462:5:88","nodeType":"YulTypedName","src":"2462:5:88","type":""}],"src":"2424:163:88"},{"body":{"nativeSrc":"2661:797:88","nodeType":"YulBlock","src":"2661:797:88","statements":[{"body":{"nativeSrc":"2707:16:88","nodeType":"YulBlock","src":"2707:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2716:1:88","nodeType":"YulLiteral","src":"2716:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2719:1:88","nodeType":"YulLiteral","src":"2719:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2709:6:88","nodeType":"YulIdentifier","src":"2709:6:88"},"nativeSrc":"2709:12:88","nodeType":"YulFunctionCall","src":"2709:12:88"},"nativeSrc":"2709:12:88","nodeType":"YulExpressionStatement","src":"2709:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2682:3:88","nodeType":"YulIdentifier","src":"2682:3:88"},{"name":"headStart","nativeSrc":"2687:9:88","nodeType":"YulIdentifier","src":"2687:9:88"}],"functionName":{"name":"sub","nativeSrc":"2678:3:88","nodeType":"YulIdentifier","src":"2678:3:88"},"nativeSrc":"2678:19:88","nodeType":"YulFunctionCall","src":"2678:19:88"},{"kind":"number","nativeSrc":"2699:6:88","nodeType":"YulLiteral","src":"2699:6:88","type":"","value":"0x0140"}],"functionName":{"name":"slt","nativeSrc":"2674:3:88","nodeType":"YulIdentifier","src":"2674:3:88"},"nativeSrc":"2674:32:88","nodeType":"YulFunctionCall","src":"2674:32:88"},"nativeSrc":"2671:52:88","nodeType":"YulIf","src":"2671:52:88"},{"nativeSrc":"2732:26:88","nodeType":"YulAssignment","src":"2732:26:88","value":{"arguments":[],"functionName":{"name":"allocate_memory","nativeSrc":"2741:15:88","nodeType":"YulIdentifier","src":"2741:15:88"},"nativeSrc":"2741:17:88","nodeType":"YulFunctionCall","src":"2741:17:88"},"variableNames":[{"name":"value","nativeSrc":"2732:5:88","nodeType":"YulIdentifier","src":"2732:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2774:5:88","nodeType":"YulIdentifier","src":"2774:5:88"},{"arguments":[{"name":"headStart","nativeSrc":"2799:9:88","nodeType":"YulIdentifier","src":"2799:9:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2781:17:88","nodeType":"YulIdentifier","src":"2781:17:88"},"nativeSrc":"2781:28:88","nodeType":"YulFunctionCall","src":"2781:28:88"}],"functionName":{"name":"mstore","nativeSrc":"2767:6:88","nodeType":"YulIdentifier","src":"2767:6:88"},"nativeSrc":"2767:43:88","nodeType":"YulFunctionCall","src":"2767:43:88"},"nativeSrc":"2767:43:88","nodeType":"YulExpressionStatement","src":"2767:43:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2830:5:88","nodeType":"YulIdentifier","src":"2830:5:88"},{"kind":"number","nativeSrc":"2837:2:88","nodeType":"YulLiteral","src":"2837:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2826:3:88","nodeType":"YulIdentifier","src":"2826:3:88"},"nativeSrc":"2826:14:88","nodeType":"YulFunctionCall","src":"2826:14:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2864:9:88","nodeType":"YulIdentifier","src":"2864:9:88"},{"kind":"number","nativeSrc":"2875:2:88","nodeType":"YulLiteral","src":"2875:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2860:3:88","nodeType":"YulIdentifier","src":"2860:3:88"},"nativeSrc":"2860:18:88","nodeType":"YulFunctionCall","src":"2860:18:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2842:17:88","nodeType":"YulIdentifier","src":"2842:17:88"},"nativeSrc":"2842:37:88","nodeType":"YulFunctionCall","src":"2842:37:88"}],"functionName":{"name":"mstore","nativeSrc":"2819:6:88","nodeType":"YulIdentifier","src":"2819:6:88"},"nativeSrc":"2819:61:88","nodeType":"YulFunctionCall","src":"2819:61:88"},"nativeSrc":"2819:61:88","nodeType":"YulExpressionStatement","src":"2819:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2900:5:88","nodeType":"YulIdentifier","src":"2900:5:88"},{"kind":"number","nativeSrc":"2907:2:88","nodeType":"YulLiteral","src":"2907:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2896:3:88","nodeType":"YulIdentifier","src":"2896:3:88"},"nativeSrc":"2896:14:88","nodeType":"YulFunctionCall","src":"2896:14:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2934:9:88","nodeType":"YulIdentifier","src":"2934:9:88"},{"kind":"number","nativeSrc":"2945:2:88","nodeType":"YulLiteral","src":"2945:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2930:3:88","nodeType":"YulIdentifier","src":"2930:3:88"},"nativeSrc":"2930:18:88","nodeType":"YulFunctionCall","src":"2930:18:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2912:17:88","nodeType":"YulIdentifier","src":"2912:17:88"},"nativeSrc":"2912:37:88","nodeType":"YulFunctionCall","src":"2912:37:88"}],"functionName":{"name":"mstore","nativeSrc":"2889:6:88","nodeType":"YulIdentifier","src":"2889:6:88"},"nativeSrc":"2889:61:88","nodeType":"YulFunctionCall","src":"2889:61:88"},"nativeSrc":"2889:61:88","nodeType":"YulExpressionStatement","src":"2889:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2970:5:88","nodeType":"YulIdentifier","src":"2970:5:88"},{"kind":"number","nativeSrc":"2977:2:88","nodeType":"YulLiteral","src":"2977:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2966:3:88","nodeType":"YulIdentifier","src":"2966:3:88"},"nativeSrc":"2966:14:88","nodeType":"YulFunctionCall","src":"2966:14:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3004:9:88","nodeType":"YulIdentifier","src":"3004:9:88"},{"kind":"number","nativeSrc":"3015:2:88","nodeType":"YulLiteral","src":"3015:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3000:3:88","nodeType":"YulIdentifier","src":"3000:3:88"},"nativeSrc":"3000:18:88","nodeType":"YulFunctionCall","src":"3000:18:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2982:17:88","nodeType":"YulIdentifier","src":"2982:17:88"},"nativeSrc":"2982:37:88","nodeType":"YulFunctionCall","src":"2982:37:88"}],"functionName":{"name":"mstore","nativeSrc":"2959:6:88","nodeType":"YulIdentifier","src":"2959:6:88"},"nativeSrc":"2959:61:88","nodeType":"YulFunctionCall","src":"2959:61:88"},"nativeSrc":"2959:61:88","nodeType":"YulExpressionStatement","src":"2959:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3040:5:88","nodeType":"YulIdentifier","src":"3040:5:88"},{"kind":"number","nativeSrc":"3047:3:88","nodeType":"YulLiteral","src":"3047:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3036:3:88","nodeType":"YulIdentifier","src":"3036:3:88"},"nativeSrc":"3036:15:88","nodeType":"YulFunctionCall","src":"3036:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3075:9:88","nodeType":"YulIdentifier","src":"3075:9:88"},{"kind":"number","nativeSrc":"3086:3:88","nodeType":"YulLiteral","src":"3086:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3071:3:88","nodeType":"YulIdentifier","src":"3071:3:88"},"nativeSrc":"3071:19:88","nodeType":"YulFunctionCall","src":"3071:19:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3053:17:88","nodeType":"YulIdentifier","src":"3053:17:88"},"nativeSrc":"3053:38:88","nodeType":"YulFunctionCall","src":"3053:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3029:6:88","nodeType":"YulIdentifier","src":"3029:6:88"},"nativeSrc":"3029:63:88","nodeType":"YulFunctionCall","src":"3029:63:88"},"nativeSrc":"3029:63:88","nodeType":"YulExpressionStatement","src":"3029:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3112:5:88","nodeType":"YulIdentifier","src":"3112:5:88"},{"kind":"number","nativeSrc":"3119:3:88","nodeType":"YulLiteral","src":"3119:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3108:3:88","nodeType":"YulIdentifier","src":"3108:3:88"},"nativeSrc":"3108:15:88","nodeType":"YulFunctionCall","src":"3108:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3147:9:88","nodeType":"YulIdentifier","src":"3147:9:88"},{"kind":"number","nativeSrc":"3158:3:88","nodeType":"YulLiteral","src":"3158:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3143:3:88","nodeType":"YulIdentifier","src":"3143:3:88"},"nativeSrc":"3143:19:88","nodeType":"YulFunctionCall","src":"3143:19:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3125:17:88","nodeType":"YulIdentifier","src":"3125:17:88"},"nativeSrc":"3125:38:88","nodeType":"YulFunctionCall","src":"3125:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3101:6:88","nodeType":"YulIdentifier","src":"3101:6:88"},"nativeSrc":"3101:63:88","nodeType":"YulFunctionCall","src":"3101:63:88"},"nativeSrc":"3101:63:88","nodeType":"YulExpressionStatement","src":"3101:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3184:5:88","nodeType":"YulIdentifier","src":"3184:5:88"},{"kind":"number","nativeSrc":"3191:3:88","nodeType":"YulLiteral","src":"3191:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3180:3:88","nodeType":"YulIdentifier","src":"3180:3:88"},"nativeSrc":"3180:15:88","nodeType":"YulFunctionCall","src":"3180:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3219:9:88","nodeType":"YulIdentifier","src":"3219:9:88"},{"kind":"number","nativeSrc":"3230:3:88","nodeType":"YulLiteral","src":"3230:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3215:3:88","nodeType":"YulIdentifier","src":"3215:3:88"},"nativeSrc":"3215:19:88","nodeType":"YulFunctionCall","src":"3215:19:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3197:17:88","nodeType":"YulIdentifier","src":"3197:17:88"},"nativeSrc":"3197:38:88","nodeType":"YulFunctionCall","src":"3197:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3173:6:88","nodeType":"YulIdentifier","src":"3173:6:88"},"nativeSrc":"3173:63:88","nodeType":"YulFunctionCall","src":"3173:63:88"},"nativeSrc":"3173:63:88","nodeType":"YulExpressionStatement","src":"3173:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3256:5:88","nodeType":"YulIdentifier","src":"3256:5:88"},{"kind":"number","nativeSrc":"3263:3:88","nodeType":"YulLiteral","src":"3263:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"3252:3:88","nodeType":"YulIdentifier","src":"3252:3:88"},"nativeSrc":"3252:15:88","nodeType":"YulFunctionCall","src":"3252:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3291:9:88","nodeType":"YulIdentifier","src":"3291:9:88"},{"kind":"number","nativeSrc":"3302:3:88","nodeType":"YulLiteral","src":"3302:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"3287:3:88","nodeType":"YulIdentifier","src":"3287:3:88"},"nativeSrc":"3287:19:88","nodeType":"YulFunctionCall","src":"3287:19:88"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"3269:17:88","nodeType":"YulIdentifier","src":"3269:17:88"},"nativeSrc":"3269:38:88","nodeType":"YulFunctionCall","src":"3269:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3245:6:88","nodeType":"YulIdentifier","src":"3245:6:88"},"nativeSrc":"3245:63:88","nodeType":"YulFunctionCall","src":"3245:63:88"},"nativeSrc":"3245:63:88","nodeType":"YulExpressionStatement","src":"3245:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3328:5:88","nodeType":"YulIdentifier","src":"3328:5:88"},{"kind":"number","nativeSrc":"3335:3:88","nodeType":"YulLiteral","src":"3335:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"3324:3:88","nodeType":"YulIdentifier","src":"3324:3:88"},"nativeSrc":"3324:15:88","nodeType":"YulFunctionCall","src":"3324:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3363:9:88","nodeType":"YulIdentifier","src":"3363:9:88"},{"kind":"number","nativeSrc":"3374:3:88","nodeType":"YulLiteral","src":"3374:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"3359:3:88","nodeType":"YulIdentifier","src":"3359:3:88"},"nativeSrc":"3359:19:88","nodeType":"YulFunctionCall","src":"3359:19:88"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"3341:17:88","nodeType":"YulIdentifier","src":"3341:17:88"},"nativeSrc":"3341:38:88","nodeType":"YulFunctionCall","src":"3341:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3317:6:88","nodeType":"YulIdentifier","src":"3317:6:88"},"nativeSrc":"3317:63:88","nodeType":"YulFunctionCall","src":"3317:63:88"},"nativeSrc":"3317:63:88","nodeType":"YulExpressionStatement","src":"3317:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3400:5:88","nodeType":"YulIdentifier","src":"3400:5:88"},{"kind":"number","nativeSrc":"3407:3:88","nodeType":"YulLiteral","src":"3407:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"3396:3:88","nodeType":"YulIdentifier","src":"3396:3:88"},"nativeSrc":"3396:15:88","nodeType":"YulFunctionCall","src":"3396:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3435:9:88","nodeType":"YulIdentifier","src":"3435:9:88"},{"kind":"number","nativeSrc":"3446:3:88","nodeType":"YulLiteral","src":"3446:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"3431:3:88","nodeType":"YulIdentifier","src":"3431:3:88"},"nativeSrc":"3431:19:88","nodeType":"YulFunctionCall","src":"3431:19:88"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3413:17:88","nodeType":"YulIdentifier","src":"3413:17:88"},"nativeSrc":"3413:38:88","nodeType":"YulFunctionCall","src":"3413:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3389:6:88","nodeType":"YulIdentifier","src":"3389:6:88"},"nativeSrc":"3389:63:88","nodeType":"YulFunctionCall","src":"3389:63:88"},"nativeSrc":"3389:63:88","nodeType":"YulExpressionStatement","src":"3389:63:88"}]},"name":"abi_decode_struct_PackedParams","nativeSrc":"2592:866:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2632:9:88","nodeType":"YulTypedName","src":"2632:9:88","type":""},{"name":"end","nativeSrc":"2643:3:88","nodeType":"YulTypedName","src":"2643:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2651:5:88","nodeType":"YulTypedName","src":"2651:5:88","type":""}],"src":"2592:866:88"},{"body":{"nativeSrc":"3746:957:88","nodeType":"YulBlock","src":"3746:957:88","statements":[{"body":{"nativeSrc":"3794:16:88","nodeType":"YulBlock","src":"3794:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3803:1:88","nodeType":"YulLiteral","src":"3803:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3806:1:88","nodeType":"YulLiteral","src":"3806:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3796:6:88","nodeType":"YulIdentifier","src":"3796:6:88"},"nativeSrc":"3796:12:88","nodeType":"YulFunctionCall","src":"3796:12:88"},"nativeSrc":"3796:12:88","nodeType":"YulExpressionStatement","src":"3796:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3767:7:88","nodeType":"YulIdentifier","src":"3767:7:88"},{"name":"headStart","nativeSrc":"3776:9:88","nodeType":"YulIdentifier","src":"3776:9:88"}],"functionName":{"name":"sub","nativeSrc":"3763:3:88","nodeType":"YulIdentifier","src":"3763:3:88"},"nativeSrc":"3763:23:88","nodeType":"YulFunctionCall","src":"3763:23:88"},{"kind":"number","nativeSrc":"3788:4:88","nodeType":"YulLiteral","src":"3788:4:88","type":"","value":"1024"}],"functionName":{"name":"slt","nativeSrc":"3759:3:88","nodeType":"YulIdentifier","src":"3759:3:88"},"nativeSrc":"3759:34:88","nodeType":"YulFunctionCall","src":"3759:34:88"},"nativeSrc":"3756:54:88","nodeType":"YulIf","src":"3756:54:88"},{"nativeSrc":"3819:67:88","nodeType":"YulAssignment","src":"3819:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3867:9:88","nodeType":"YulIdentifier","src":"3867:9:88"},{"name":"dataEnd","nativeSrc":"3878:7:88","nodeType":"YulIdentifier","src":"3878:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"3829:37:88","nodeType":"YulIdentifier","src":"3829:37:88"},"nativeSrc":"3829:57:88","nodeType":"YulFunctionCall","src":"3829:57:88"},"variableNames":[{"name":"value0","nativeSrc":"3819:6:88","nodeType":"YulIdentifier","src":"3819:6:88"}]},{"nativeSrc":"3895:14:88","nodeType":"YulVariableDeclaration","src":"3895:14:88","value":{"kind":"number","nativeSrc":"3908:1:88","nodeType":"YulLiteral","src":"3908:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3899:5:88","nodeType":"YulTypedName","src":"3899:5:88","type":""}]},{"nativeSrc":"3918:42:88","nodeType":"YulAssignment","src":"3918:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3944:9:88","nodeType":"YulIdentifier","src":"3944:9:88"},{"kind":"number","nativeSrc":"3955:3:88","nodeType":"YulLiteral","src":"3955:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"3940:3:88","nodeType":"YulIdentifier","src":"3940:3:88"},"nativeSrc":"3940:19:88","nodeType":"YulFunctionCall","src":"3940:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"3927:12:88","nodeType":"YulIdentifier","src":"3927:12:88"},"nativeSrc":"3927:33:88","nodeType":"YulFunctionCall","src":"3927:33:88"},"variableNames":[{"name":"value","nativeSrc":"3918:5:88","nodeType":"YulIdentifier","src":"3918:5:88"}]},{"nativeSrc":"3969:15:88","nodeType":"YulAssignment","src":"3969:15:88","value":{"name":"value","nativeSrc":"3979:5:88","nodeType":"YulIdentifier","src":"3979:5:88"},"variableNames":[{"name":"value1","nativeSrc":"3969:6:88","nodeType":"YulIdentifier","src":"3969:6:88"}]},{"nativeSrc":"3993:16:88","nodeType":"YulVariableDeclaration","src":"3993:16:88","value":{"kind":"number","nativeSrc":"4008:1:88","nodeType":"YulLiteral","src":"4008:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"3997:7:88","nodeType":"YulTypedName","src":"3997:7:88","type":""}]},{"nativeSrc":"4018:44:88","nodeType":"YulAssignment","src":"4018:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4046:9:88","nodeType":"YulIdentifier","src":"4046:9:88"},{"kind":"number","nativeSrc":"4057:3:88","nodeType":"YulLiteral","src":"4057:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"4042:3:88","nodeType":"YulIdentifier","src":"4042:3:88"},"nativeSrc":"4042:19:88","nodeType":"YulFunctionCall","src":"4042:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4029:12:88","nodeType":"YulIdentifier","src":"4029:12:88"},"nativeSrc":"4029:33:88","nodeType":"YulFunctionCall","src":"4029:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"4018:7:88","nodeType":"YulIdentifier","src":"4018:7:88"}]},{"nativeSrc":"4071:17:88","nodeType":"YulAssignment","src":"4071:17:88","value":{"name":"value_1","nativeSrc":"4081:7:88","nodeType":"YulIdentifier","src":"4081:7:88"},"variableNames":[{"name":"value2","nativeSrc":"4071:6:88","nodeType":"YulIdentifier","src":"4071:6:88"}]},{"nativeSrc":"4097:16:88","nodeType":"YulVariableDeclaration","src":"4097:16:88","value":{"kind":"number","nativeSrc":"4112:1:88","nodeType":"YulLiteral","src":"4112:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"4101:7:88","nodeType":"YulTypedName","src":"4101:7:88","type":""}]},{"nativeSrc":"4122:44:88","nodeType":"YulAssignment","src":"4122:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4150:9:88","nodeType":"YulIdentifier","src":"4150:9:88"},{"kind":"number","nativeSrc":"4161:3:88","nodeType":"YulLiteral","src":"4161:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"4146:3:88","nodeType":"YulIdentifier","src":"4146:3:88"},"nativeSrc":"4146:19:88","nodeType":"YulFunctionCall","src":"4146:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4133:12:88","nodeType":"YulIdentifier","src":"4133:12:88"},"nativeSrc":"4133:33:88","nodeType":"YulFunctionCall","src":"4133:33:88"},"variableNames":[{"name":"value_2","nativeSrc":"4122:7:88","nodeType":"YulIdentifier","src":"4122:7:88"}]},{"nativeSrc":"4175:17:88","nodeType":"YulAssignment","src":"4175:17:88","value":{"name":"value_2","nativeSrc":"4185:7:88","nodeType":"YulIdentifier","src":"4185:7:88"},"variableNames":[{"name":"value3","nativeSrc":"4175:6:88","nodeType":"YulIdentifier","src":"4175:6:88"}]},{"nativeSrc":"4201:48:88","nodeType":"YulAssignment","src":"4201:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4233:9:88","nodeType":"YulIdentifier","src":"4233:9:88"},{"kind":"number","nativeSrc":"4244:3:88","nodeType":"YulLiteral","src":"4244:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"4229:3:88","nodeType":"YulIdentifier","src":"4229:3:88"},"nativeSrc":"4229:19:88","nodeType":"YulFunctionCall","src":"4229:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"4211:17:88","nodeType":"YulIdentifier","src":"4211:17:88"},"nativeSrc":"4211:38:88","nodeType":"YulFunctionCall","src":"4211:38:88"},"variableNames":[{"name":"value4","nativeSrc":"4201:6:88","nodeType":"YulIdentifier","src":"4201:6:88"}]},{"nativeSrc":"4258:16:88","nodeType":"YulVariableDeclaration","src":"4258:16:88","value":{"kind":"number","nativeSrc":"4273:1:88","nodeType":"YulLiteral","src":"4273:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"4262:7:88","nodeType":"YulTypedName","src":"4262:7:88","type":""}]},{"nativeSrc":"4283:44:88","nodeType":"YulAssignment","src":"4283:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4311:9:88","nodeType":"YulIdentifier","src":"4311:9:88"},{"kind":"number","nativeSrc":"4322:3:88","nodeType":"YulLiteral","src":"4322:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"4307:3:88","nodeType":"YulIdentifier","src":"4307:3:88"},"nativeSrc":"4307:19:88","nodeType":"YulFunctionCall","src":"4307:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4294:12:88","nodeType":"YulIdentifier","src":"4294:12:88"},"nativeSrc":"4294:33:88","nodeType":"YulFunctionCall","src":"4294:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"4283:7:88","nodeType":"YulIdentifier","src":"4283:7:88"}]},{"nativeSrc":"4336:17:88","nodeType":"YulAssignment","src":"4336:17:88","value":{"name":"value_3","nativeSrc":"4346:7:88","nodeType":"YulIdentifier","src":"4346:7:88"},"variableNames":[{"name":"value5","nativeSrc":"4336:6:88","nodeType":"YulIdentifier","src":"4336:6:88"}]},{"nativeSrc":"4362:70:88","nodeType":"YulAssignment","src":"4362:70:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4407:9:88","nodeType":"YulIdentifier","src":"4407:9:88"},{"kind":"number","nativeSrc":"4418:3:88","nodeType":"YulLiteral","src":"4418:3:88","type":"","value":"608"}],"functionName":{"name":"add","nativeSrc":"4403:3:88","nodeType":"YulIdentifier","src":"4403:3:88"},"nativeSrc":"4403:19:88","nodeType":"YulFunctionCall","src":"4403:19:88"},{"name":"dataEnd","nativeSrc":"4424:7:88","nodeType":"YulIdentifier","src":"4424:7:88"}],"functionName":{"name":"abi_decode_struct_PackedParams","nativeSrc":"4372:30:88","nodeType":"YulIdentifier","src":"4372:30:88"},"nativeSrc":"4372:60:88","nodeType":"YulFunctionCall","src":"4372:60:88"},"variableNames":[{"name":"value6","nativeSrc":"4362:6:88","nodeType":"YulIdentifier","src":"4362:6:88"}]},{"nativeSrc":"4441:16:88","nodeType":"YulVariableDeclaration","src":"4441:16:88","value":{"kind":"number","nativeSrc":"4456:1:88","nodeType":"YulLiteral","src":"4456:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"4445:7:88","nodeType":"YulTypedName","src":"4445:7:88","type":""}]},{"nativeSrc":"4466:44:88","nodeType":"YulAssignment","src":"4466:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:88","nodeType":"YulIdentifier","src":"4494:9:88"},{"kind":"number","nativeSrc":"4505:3:88","nodeType":"YulLiteral","src":"4505:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"4490:3:88","nodeType":"YulIdentifier","src":"4490:3:88"},"nativeSrc":"4490:19:88","nodeType":"YulFunctionCall","src":"4490:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4477:12:88","nodeType":"YulIdentifier","src":"4477:12:88"},"nativeSrc":"4477:33:88","nodeType":"YulFunctionCall","src":"4477:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"4466:7:88","nodeType":"YulIdentifier","src":"4466:7:88"}]},{"nativeSrc":"4519:17:88","nodeType":"YulAssignment","src":"4519:17:88","value":{"name":"value_4","nativeSrc":"4529:7:88","nodeType":"YulIdentifier","src":"4529:7:88"},"variableNames":[{"name":"value7","nativeSrc":"4519:6:88","nodeType":"YulIdentifier","src":"4519:6:88"}]},{"nativeSrc":"4545:16:88","nodeType":"YulVariableDeclaration","src":"4545:16:88","value":{"kind":"number","nativeSrc":"4560:1:88","nodeType":"YulLiteral","src":"4560:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"4549:7:88","nodeType":"YulTypedName","src":"4549:7:88","type":""}]},{"nativeSrc":"4570:44:88","nodeType":"YulAssignment","src":"4570:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4598:9:88","nodeType":"YulIdentifier","src":"4598:9:88"},{"kind":"number","nativeSrc":"4609:3:88","nodeType":"YulLiteral","src":"4609:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"4594:3:88","nodeType":"YulIdentifier","src":"4594:3:88"},"nativeSrc":"4594:19:88","nodeType":"YulFunctionCall","src":"4594:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4581:12:88","nodeType":"YulIdentifier","src":"4581:12:88"},"nativeSrc":"4581:33:88","nodeType":"YulFunctionCall","src":"4581:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"4570:7:88","nodeType":"YulIdentifier","src":"4570:7:88"}]},{"nativeSrc":"4623:17:88","nodeType":"YulAssignment","src":"4623:17:88","value":{"name":"value_5","nativeSrc":"4633:7:88","nodeType":"YulIdentifier","src":"4633:7:88"},"variableNames":[{"name":"value8","nativeSrc":"4623:6:88","nodeType":"YulIdentifier","src":"4623:6:88"}]},{"nativeSrc":"4649:48:88","nodeType":"YulAssignment","src":"4649:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4681:9:88","nodeType":"YulIdentifier","src":"4681:9:88"},{"kind":"number","nativeSrc":"4692:3:88","nodeType":"YulLiteral","src":"4692:3:88","type":"","value":"992"}],"functionName":{"name":"add","nativeSrc":"4677:3:88","nodeType":"YulIdentifier","src":"4677:3:88"},"nativeSrc":"4677:19:88","nodeType":"YulFunctionCall","src":"4677:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"4659:17:88","nodeType":"YulIdentifier","src":"4659:17:88"},"nativeSrc":"4659:38:88","nodeType":"YulFunctionCall","src":"4659:38:88"},"variableNames":[{"name":"value9","nativeSrc":"4649:6:88","nodeType":"YulIdentifier","src":"4649:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40","nativeSrc":"3463:1240:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3640:9:88","nodeType":"YulTypedName","src":"3640:9:88","type":""},{"name":"dataEnd","nativeSrc":"3651:7:88","nodeType":"YulTypedName","src":"3651:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3663:6:88","nodeType":"YulTypedName","src":"3663:6:88","type":""},{"name":"value1","nativeSrc":"3671:6:88","nodeType":"YulTypedName","src":"3671:6:88","type":""},{"name":"value2","nativeSrc":"3679:6:88","nodeType":"YulTypedName","src":"3679:6:88","type":""},{"name":"value3","nativeSrc":"3687:6:88","nodeType":"YulTypedName","src":"3687:6:88","type":""},{"name":"value4","nativeSrc":"3695:6:88","nodeType":"YulTypedName","src":"3695:6:88","type":""},{"name":"value5","nativeSrc":"3703:6:88","nodeType":"YulTypedName","src":"3703:6:88","type":""},{"name":"value6","nativeSrc":"3711:6:88","nodeType":"YulTypedName","src":"3711:6:88","type":""},{"name":"value7","nativeSrc":"3719:6:88","nodeType":"YulTypedName","src":"3719:6:88","type":""},{"name":"value8","nativeSrc":"3727:6:88","nodeType":"YulTypedName","src":"3727:6:88","type":""},{"name":"value9","nativeSrc":"3735:6:88","nodeType":"YulTypedName","src":"3735:6:88","type":""}],"src":"3463:1240:88"},{"body":{"nativeSrc":"4809:76:88","nodeType":"YulBlock","src":"4809:76:88","statements":[{"nativeSrc":"4819:26:88","nodeType":"YulAssignment","src":"4819:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4831:9:88","nodeType":"YulIdentifier","src":"4831:9:88"},{"kind":"number","nativeSrc":"4842:2:88","nodeType":"YulLiteral","src":"4842:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4827:3:88","nodeType":"YulIdentifier","src":"4827:3:88"},"nativeSrc":"4827:18:88","nodeType":"YulFunctionCall","src":"4827:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4819:4:88","nodeType":"YulIdentifier","src":"4819:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4861:9:88","nodeType":"YulIdentifier","src":"4861:9:88"},{"name":"value0","nativeSrc":"4872:6:88","nodeType":"YulIdentifier","src":"4872:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4854:6:88","nodeType":"YulIdentifier","src":"4854:6:88"},"nativeSrc":"4854:25:88","nodeType":"YulFunctionCall","src":"4854:25:88"},"nativeSrc":"4854:25:88","nodeType":"YulExpressionStatement","src":"4854:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4708:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4778:9:88","nodeType":"YulTypedName","src":"4778:9:88","type":""},{"name":"value0","nativeSrc":"4789:6:88","nodeType":"YulTypedName","src":"4789:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4800:4:88","nodeType":"YulTypedName","src":"4800:4:88","type":""}],"src":"4708:177:88"},{"body":{"nativeSrc":"4947:60:88","nodeType":"YulBlock","src":"4947:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4964:3:88","nodeType":"YulIdentifier","src":"4964:3:88"},{"arguments":[{"name":"value","nativeSrc":"4973:5:88","nodeType":"YulIdentifier","src":"4973:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4988:3:88","nodeType":"YulLiteral","src":"4988:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4993:1:88","nodeType":"YulLiteral","src":"4993:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4984:3:88","nodeType":"YulIdentifier","src":"4984:3:88"},"nativeSrc":"4984:11:88","nodeType":"YulFunctionCall","src":"4984:11:88"},{"kind":"number","nativeSrc":"4997:1:88","nodeType":"YulLiteral","src":"4997:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4980:3:88","nodeType":"YulIdentifier","src":"4980:3:88"},"nativeSrc":"4980:19:88","nodeType":"YulFunctionCall","src":"4980:19:88"}],"functionName":{"name":"and","nativeSrc":"4969:3:88","nodeType":"YulIdentifier","src":"4969:3:88"},"nativeSrc":"4969:31:88","nodeType":"YulFunctionCall","src":"4969:31:88"}],"functionName":{"name":"mstore","nativeSrc":"4957:6:88","nodeType":"YulIdentifier","src":"4957:6:88"},"nativeSrc":"4957:44:88","nodeType":"YulFunctionCall","src":"4957:44:88"},"nativeSrc":"4957:44:88","nodeType":"YulExpressionStatement","src":"4957:44:88"}]},"name":"abi_encode_contract_IPolicyPool","nativeSrc":"4890:117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4931:5:88","nodeType":"YulTypedName","src":"4931:5:88","type":""},{"name":"pos","nativeSrc":"4938:3:88","nodeType":"YulTypedName","src":"4938:3:88","type":""}],"src":"4890:117:88"},{"body":{"nativeSrc":"5134:102:88","nodeType":"YulBlock","src":"5134:102:88","statements":[{"nativeSrc":"5144:26:88","nodeType":"YulAssignment","src":"5144:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5156:9:88","nodeType":"YulIdentifier","src":"5156:9:88"},{"kind":"number","nativeSrc":"5167:2:88","nodeType":"YulLiteral","src":"5167:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5152:3:88","nodeType":"YulIdentifier","src":"5152:3:88"},"nativeSrc":"5152:18:88","nodeType":"YulFunctionCall","src":"5152:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5144:4:88","nodeType":"YulIdentifier","src":"5144:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5186:9:88","nodeType":"YulIdentifier","src":"5186:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5201:6:88","nodeType":"YulIdentifier","src":"5201:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5217:3:88","nodeType":"YulLiteral","src":"5217:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5222:1:88","nodeType":"YulLiteral","src":"5222:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5213:3:88","nodeType":"YulIdentifier","src":"5213:3:88"},"nativeSrc":"5213:11:88","nodeType":"YulFunctionCall","src":"5213:11:88"},{"kind":"number","nativeSrc":"5226:1:88","nodeType":"YulLiteral","src":"5226:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5209:3:88","nodeType":"YulIdentifier","src":"5209:3:88"},"nativeSrc":"5209:19:88","nodeType":"YulFunctionCall","src":"5209:19:88"}],"functionName":{"name":"and","nativeSrc":"5197:3:88","nodeType":"YulIdentifier","src":"5197:3:88"},"nativeSrc":"5197:32:88","nodeType":"YulFunctionCall","src":"5197:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5179:6:88","nodeType":"YulIdentifier","src":"5179:6:88"},"nativeSrc":"5179:51:88","nodeType":"YulFunctionCall","src":"5179:51:88"},"nativeSrc":"5179:51:88","nodeType":"YulExpressionStatement","src":"5179:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"5012:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5103:9:88","nodeType":"YulTypedName","src":"5103:9:88","type":""},{"name":"value0","nativeSrc":"5114:6:88","nodeType":"YulTypedName","src":"5114:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5125:4:88","nodeType":"YulTypedName","src":"5125:4:88","type":""}],"src":"5012:224:88"},{"body":{"nativeSrc":"5315:641:88","nodeType":"YulBlock","src":"5315:641:88","statements":[{"nativeSrc":"5325:13:88","nodeType":"YulVariableDeclaration","src":"5325:13:88","value":{"kind":"number","nativeSrc":"5337:1:88","nodeType":"YulLiteral","src":"5337:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"5329:4:88","nodeType":"YulTypedName","src":"5329:4:88","type":""}]},{"body":{"nativeSrc":"5381:22:88","nodeType":"YulBlock","src":"5381:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5383:16:88","nodeType":"YulIdentifier","src":"5383:16:88"},"nativeSrc":"5383:18:88","nodeType":"YulFunctionCall","src":"5383:18:88"},"nativeSrc":"5383:18:88","nodeType":"YulExpressionStatement","src":"5383:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5353:6:88","nodeType":"YulIdentifier","src":"5353:6:88"},{"kind":"number","nativeSrc":"5361:18:88","nodeType":"YulLiteral","src":"5361:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5350:2:88","nodeType":"YulIdentifier","src":"5350:2:88"},"nativeSrc":"5350:30:88","nodeType":"YulFunctionCall","src":"5350:30:88"},"nativeSrc":"5347:56:88","nodeType":"YulIf","src":"5347:56:88"},{"nativeSrc":"5412:43:88","nodeType":"YulVariableDeclaration","src":"5412:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5434:6:88","nodeType":"YulIdentifier","src":"5434:6:88"},{"kind":"number","nativeSrc":"5442:2:88","nodeType":"YulLiteral","src":"5442:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5430:3:88","nodeType":"YulIdentifier","src":"5430:3:88"},"nativeSrc":"5430:15:88","nodeType":"YulFunctionCall","src":"5430:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5451:2:88","nodeType":"YulLiteral","src":"5451:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5447:3:88","nodeType":"YulIdentifier","src":"5447:3:88"},"nativeSrc":"5447:7:88","nodeType":"YulFunctionCall","src":"5447:7:88"}],"functionName":{"name":"and","nativeSrc":"5426:3:88","nodeType":"YulIdentifier","src":"5426:3:88"},"nativeSrc":"5426:29:88","nodeType":"YulFunctionCall","src":"5426:29:88"},"variables":[{"name":"result","nativeSrc":"5416:6:88","nodeType":"YulTypedName","src":"5416:6:88","type":""}]},{"nativeSrc":"5464:25:88","nodeType":"YulAssignment","src":"5464:25:88","value":{"arguments":[{"name":"result","nativeSrc":"5476:6:88","nodeType":"YulIdentifier","src":"5476:6:88"},{"kind":"number","nativeSrc":"5484:4:88","nodeType":"YulLiteral","src":"5484:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5472:3:88","nodeType":"YulIdentifier","src":"5472:3:88"},"nativeSrc":"5472:17:88","nodeType":"YulFunctionCall","src":"5472:17:88"},"variableNames":[{"name":"size","nativeSrc":"5464:4:88","nodeType":"YulIdentifier","src":"5464:4:88"}]},{"nativeSrc":"5498:15:88","nodeType":"YulVariableDeclaration","src":"5498:15:88","value":{"kind":"number","nativeSrc":"5512:1:88","nodeType":"YulLiteral","src":"5512:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"5502:6:88","nodeType":"YulTypedName","src":"5502:6:88","type":""}]},{"nativeSrc":"5522:19:88","nodeType":"YulAssignment","src":"5522:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"5538:2:88","nodeType":"YulLiteral","src":"5538:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5532:5:88","nodeType":"YulIdentifier","src":"5532:5:88"},"nativeSrc":"5532:9:88","nodeType":"YulFunctionCall","src":"5532:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"5522:6:88","nodeType":"YulIdentifier","src":"5522:6:88"}]},{"nativeSrc":"5550:60:88","nodeType":"YulVariableDeclaration","src":"5550:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"5572:6:88","nodeType":"YulIdentifier","src":"5572:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"5588:6:88","nodeType":"YulIdentifier","src":"5588:6:88"},{"kind":"number","nativeSrc":"5596:2:88","nodeType":"YulLiteral","src":"5596:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"5584:3:88","nodeType":"YulIdentifier","src":"5584:3:88"},"nativeSrc":"5584:15:88","nodeType":"YulFunctionCall","src":"5584:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5605:2:88","nodeType":"YulLiteral","src":"5605:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5601:3:88","nodeType":"YulIdentifier","src":"5601:3:88"},"nativeSrc":"5601:7:88","nodeType":"YulFunctionCall","src":"5601:7:88"}],"functionName":{"name":"and","nativeSrc":"5580:3:88","nodeType":"YulIdentifier","src":"5580:3:88"},"nativeSrc":"5580:29:88","nodeType":"YulFunctionCall","src":"5580:29:88"}],"functionName":{"name":"add","nativeSrc":"5568:3:88","nodeType":"YulIdentifier","src":"5568:3:88"},"nativeSrc":"5568:42:88","nodeType":"YulFunctionCall","src":"5568:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"5554:10:88","nodeType":"YulTypedName","src":"5554:10:88","type":""}]},{"body":{"nativeSrc":"5685:22:88","nodeType":"YulBlock","src":"5685:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5687:16:88","nodeType":"YulIdentifier","src":"5687:16:88"},"nativeSrc":"5687:18:88","nodeType":"YulFunctionCall","src":"5687:18:88"},"nativeSrc":"5687:18:88","nodeType":"YulExpressionStatement","src":"5687:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5628:10:88","nodeType":"YulIdentifier","src":"5628:10:88"},{"kind":"number","nativeSrc":"5640:18:88","nodeType":"YulLiteral","src":"5640:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5625:2:88","nodeType":"YulIdentifier","src":"5625:2:88"},"nativeSrc":"5625:34:88","nodeType":"YulFunctionCall","src":"5625:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5664:10:88","nodeType":"YulIdentifier","src":"5664:10:88"},{"name":"memPtr","nativeSrc":"5676:6:88","nodeType":"YulIdentifier","src":"5676:6:88"}],"functionName":{"name":"lt","nativeSrc":"5661:2:88","nodeType":"YulIdentifier","src":"5661:2:88"},"nativeSrc":"5661:22:88","nodeType":"YulFunctionCall","src":"5661:22:88"}],"functionName":{"name":"or","nativeSrc":"5622:2:88","nodeType":"YulIdentifier","src":"5622:2:88"},"nativeSrc":"5622:62:88","nodeType":"YulFunctionCall","src":"5622:62:88"},"nativeSrc":"5619:88:88","nodeType":"YulIf","src":"5619:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5723:2:88","nodeType":"YulLiteral","src":"5723:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5727:10:88","nodeType":"YulIdentifier","src":"5727:10:88"}],"functionName":{"name":"mstore","nativeSrc":"5716:6:88","nodeType":"YulIdentifier","src":"5716:6:88"},"nativeSrc":"5716:22:88","nodeType":"YulFunctionCall","src":"5716:22:88"},"nativeSrc":"5716:22:88","nodeType":"YulExpressionStatement","src":"5716:22:88"},{"nativeSrc":"5747:15:88","nodeType":"YulAssignment","src":"5747:15:88","value":{"name":"memPtr","nativeSrc":"5756:6:88","nodeType":"YulIdentifier","src":"5756:6:88"},"variableNames":[{"name":"array","nativeSrc":"5747:5:88","nodeType":"YulIdentifier","src":"5747:5:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5778:6:88","nodeType":"YulIdentifier","src":"5778:6:88"},{"name":"length","nativeSrc":"5786:6:88","nodeType":"YulIdentifier","src":"5786:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5771:6:88","nodeType":"YulIdentifier","src":"5771:6:88"},"nativeSrc":"5771:22:88","nodeType":"YulFunctionCall","src":"5771:22:88"},"nativeSrc":"5771:22:88","nodeType":"YulExpressionStatement","src":"5771:22:88"},{"body":{"nativeSrc":"5831:16:88","nodeType":"YulBlock","src":"5831:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5840:1:88","nodeType":"YulLiteral","src":"5840:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5843:1:88","nodeType":"YulLiteral","src":"5843:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5833:6:88","nodeType":"YulIdentifier","src":"5833:6:88"},"nativeSrc":"5833:12:88","nodeType":"YulFunctionCall","src":"5833:12:88"},"nativeSrc":"5833:12:88","nodeType":"YulExpressionStatement","src":"5833:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5812:3:88","nodeType":"YulIdentifier","src":"5812:3:88"},{"name":"length","nativeSrc":"5817:6:88","nodeType":"YulIdentifier","src":"5817:6:88"}],"functionName":{"name":"add","nativeSrc":"5808:3:88","nodeType":"YulIdentifier","src":"5808:3:88"},"nativeSrc":"5808:16:88","nodeType":"YulFunctionCall","src":"5808:16:88"},{"name":"end","nativeSrc":"5826:3:88","nodeType":"YulIdentifier","src":"5826:3:88"}],"functionName":{"name":"gt","nativeSrc":"5805:2:88","nodeType":"YulIdentifier","src":"5805:2:88"},"nativeSrc":"5805:25:88","nodeType":"YulFunctionCall","src":"5805:25:88"},"nativeSrc":"5802:45:88","nodeType":"YulIf","src":"5802:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5873:6:88","nodeType":"YulIdentifier","src":"5873:6:88"},{"kind":"number","nativeSrc":"5881:4:88","nodeType":"YulLiteral","src":"5881:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5869:3:88","nodeType":"YulIdentifier","src":"5869:3:88"},"nativeSrc":"5869:17:88","nodeType":"YulFunctionCall","src":"5869:17:88"},{"name":"src","nativeSrc":"5888:3:88","nodeType":"YulIdentifier","src":"5888:3:88"},{"name":"length","nativeSrc":"5893:6:88","nodeType":"YulIdentifier","src":"5893:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"5856:12:88","nodeType":"YulIdentifier","src":"5856:12:88"},"nativeSrc":"5856:44:88","nodeType":"YulFunctionCall","src":"5856:44:88"},"nativeSrc":"5856:44:88","nodeType":"YulExpressionStatement","src":"5856:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5924:6:88","nodeType":"YulIdentifier","src":"5924:6:88"},{"name":"length","nativeSrc":"5932:6:88","nodeType":"YulIdentifier","src":"5932:6:88"}],"functionName":{"name":"add","nativeSrc":"5920:3:88","nodeType":"YulIdentifier","src":"5920:3:88"},"nativeSrc":"5920:19:88","nodeType":"YulFunctionCall","src":"5920:19:88"},{"kind":"number","nativeSrc":"5941:4:88","nodeType":"YulLiteral","src":"5941:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5916:3:88","nodeType":"YulIdentifier","src":"5916:3:88"},"nativeSrc":"5916:30:88","nodeType":"YulFunctionCall","src":"5916:30:88"},{"kind":"number","nativeSrc":"5948:1:88","nodeType":"YulLiteral","src":"5948:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5909:6:88","nodeType":"YulIdentifier","src":"5909:6:88"},"nativeSrc":"5909:41:88","nodeType":"YulFunctionCall","src":"5909:41:88"},"nativeSrc":"5909:41:88","nodeType":"YulExpressionStatement","src":"5909:41:88"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"5241:715:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5284:3:88","nodeType":"YulTypedName","src":"5284:3:88","type":""},{"name":"length","nativeSrc":"5289:6:88","nodeType":"YulTypedName","src":"5289:6:88","type":""},{"name":"end","nativeSrc":"5297:3:88","nodeType":"YulTypedName","src":"5297:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"5305:5:88","nodeType":"YulTypedName","src":"5305:5:88","type":""}],"src":"5241:715:88"},{"body":{"nativeSrc":"6057:488:88","nodeType":"YulBlock","src":"6057:488:88","statements":[{"body":{"nativeSrc":"6103:16:88","nodeType":"YulBlock","src":"6103:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6112:1:88","nodeType":"YulLiteral","src":"6112:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6115:1:88","nodeType":"YulLiteral","src":"6115:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6105:6:88","nodeType":"YulIdentifier","src":"6105:6:88"},"nativeSrc":"6105:12:88","nodeType":"YulFunctionCall","src":"6105:12:88"},"nativeSrc":"6105:12:88","nodeType":"YulExpressionStatement","src":"6105:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6078:7:88","nodeType":"YulIdentifier","src":"6078:7:88"},{"name":"headStart","nativeSrc":"6087:9:88","nodeType":"YulIdentifier","src":"6087:9:88"}],"functionName":{"name":"sub","nativeSrc":"6074:3:88","nodeType":"YulIdentifier","src":"6074:3:88"},"nativeSrc":"6074:23:88","nodeType":"YulFunctionCall","src":"6074:23:88"},{"kind":"number","nativeSrc":"6099:2:88","nodeType":"YulLiteral","src":"6099:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6070:3:88","nodeType":"YulIdentifier","src":"6070:3:88"},"nativeSrc":"6070:32:88","nodeType":"YulFunctionCall","src":"6070:32:88"},"nativeSrc":"6067:52:88","nodeType":"YulIf","src":"6067:52:88"},{"nativeSrc":"6128:36:88","nodeType":"YulVariableDeclaration","src":"6128:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6154:9:88","nodeType":"YulIdentifier","src":"6154:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6141:12:88","nodeType":"YulIdentifier","src":"6141:12:88"},"nativeSrc":"6141:23:88","nodeType":"YulFunctionCall","src":"6141:23:88"},"variables":[{"name":"value","nativeSrc":"6132:5:88","nodeType":"YulTypedName","src":"6132:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6198:5:88","nodeType":"YulIdentifier","src":"6198:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6173:24:88","nodeType":"YulIdentifier","src":"6173:24:88"},"nativeSrc":"6173:31:88","nodeType":"YulFunctionCall","src":"6173:31:88"},"nativeSrc":"6173:31:88","nodeType":"YulExpressionStatement","src":"6173:31:88"},{"nativeSrc":"6213:15:88","nodeType":"YulAssignment","src":"6213:15:88","value":{"name":"value","nativeSrc":"6223:5:88","nodeType":"YulIdentifier","src":"6223:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6213:6:88","nodeType":"YulIdentifier","src":"6213:6:88"}]},{"nativeSrc":"6237:46:88","nodeType":"YulVariableDeclaration","src":"6237:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6268:9:88","nodeType":"YulIdentifier","src":"6268:9:88"},{"kind":"number","nativeSrc":"6279:2:88","nodeType":"YulLiteral","src":"6279:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6264:3:88","nodeType":"YulIdentifier","src":"6264:3:88"},"nativeSrc":"6264:18:88","nodeType":"YulFunctionCall","src":"6264:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6251:12:88","nodeType":"YulIdentifier","src":"6251:12:88"},"nativeSrc":"6251:32:88","nodeType":"YulFunctionCall","src":"6251:32:88"},"variables":[{"name":"offset","nativeSrc":"6241:6:88","nodeType":"YulTypedName","src":"6241:6:88","type":""}]},{"body":{"nativeSrc":"6326:16:88","nodeType":"YulBlock","src":"6326:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6335:1:88","nodeType":"YulLiteral","src":"6335:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6338:1:88","nodeType":"YulLiteral","src":"6338:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6328:6:88","nodeType":"YulIdentifier","src":"6328:6:88"},"nativeSrc":"6328:12:88","nodeType":"YulFunctionCall","src":"6328:12:88"},"nativeSrc":"6328:12:88","nodeType":"YulExpressionStatement","src":"6328:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6298:6:88","nodeType":"YulIdentifier","src":"6298:6:88"},{"kind":"number","nativeSrc":"6306:18:88","nodeType":"YulLiteral","src":"6306:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6295:2:88","nodeType":"YulIdentifier","src":"6295:2:88"},"nativeSrc":"6295:30:88","nodeType":"YulFunctionCall","src":"6295:30:88"},"nativeSrc":"6292:50:88","nodeType":"YulIf","src":"6292:50:88"},{"nativeSrc":"6351:32:88","nodeType":"YulVariableDeclaration","src":"6351:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6365:9:88","nodeType":"YulIdentifier","src":"6365:9:88"},{"name":"offset","nativeSrc":"6376:6:88","nodeType":"YulIdentifier","src":"6376:6:88"}],"functionName":{"name":"add","nativeSrc":"6361:3:88","nodeType":"YulIdentifier","src":"6361:3:88"},"nativeSrc":"6361:22:88","nodeType":"YulFunctionCall","src":"6361:22:88"},"variables":[{"name":"_1","nativeSrc":"6355:2:88","nodeType":"YulTypedName","src":"6355:2:88","type":""}]},{"body":{"nativeSrc":"6431:16:88","nodeType":"YulBlock","src":"6431:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6440:1:88","nodeType":"YulLiteral","src":"6440:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6443:1:88","nodeType":"YulLiteral","src":"6443:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6433:6:88","nodeType":"YulIdentifier","src":"6433:6:88"},"nativeSrc":"6433:12:88","nodeType":"YulFunctionCall","src":"6433:12:88"},"nativeSrc":"6433:12:88","nodeType":"YulExpressionStatement","src":"6433:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6410:2:88","nodeType":"YulIdentifier","src":"6410:2:88"},{"kind":"number","nativeSrc":"6414:4:88","nodeType":"YulLiteral","src":"6414:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6406:3:88","nodeType":"YulIdentifier","src":"6406:3:88"},"nativeSrc":"6406:13:88","nodeType":"YulFunctionCall","src":"6406:13:88"},{"name":"dataEnd","nativeSrc":"6421:7:88","nodeType":"YulIdentifier","src":"6421:7:88"}],"functionName":{"name":"slt","nativeSrc":"6402:3:88","nodeType":"YulIdentifier","src":"6402:3:88"},"nativeSrc":"6402:27:88","nodeType":"YulFunctionCall","src":"6402:27:88"}],"functionName":{"name":"iszero","nativeSrc":"6395:6:88","nodeType":"YulIdentifier","src":"6395:6:88"},"nativeSrc":"6395:35:88","nodeType":"YulFunctionCall","src":"6395:35:88"},"nativeSrc":"6392:55:88","nodeType":"YulIf","src":"6392:55:88"},{"nativeSrc":"6456:83:88","nodeType":"YulAssignment","src":"6456:83:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6504:2:88","nodeType":"YulIdentifier","src":"6504:2:88"},{"kind":"number","nativeSrc":"6508:2:88","nodeType":"YulLiteral","src":"6508:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6500:3:88","nodeType":"YulIdentifier","src":"6500:3:88"},"nativeSrc":"6500:11:88","nodeType":"YulFunctionCall","src":"6500:11:88"},{"arguments":[{"name":"_1","nativeSrc":"6526:2:88","nodeType":"YulIdentifier","src":"6526:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"6513:12:88","nodeType":"YulIdentifier","src":"6513:12:88"},"nativeSrc":"6513:16:88","nodeType":"YulFunctionCall","src":"6513:16:88"},{"name":"dataEnd","nativeSrc":"6531:7:88","nodeType":"YulIdentifier","src":"6531:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"6466:33:88","nodeType":"YulIdentifier","src":"6466:33:88"},"nativeSrc":"6466:73:88","nodeType":"YulFunctionCall","src":"6466:73:88"},"variableNames":[{"name":"value1","nativeSrc":"6456:6:88","nodeType":"YulIdentifier","src":"6456:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"5961:584:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6015:9:88","nodeType":"YulTypedName","src":"6015:9:88","type":""},{"name":"dataEnd","nativeSrc":"6026:7:88","nodeType":"YulTypedName","src":"6026:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6038:6:88","nodeType":"YulTypedName","src":"6038:6:88","type":""},{"name":"value1","nativeSrc":"6046:6:88","nodeType":"YulTypedName","src":"6046:6:88","type":""}],"src":"5961:584:88"},{"body":{"nativeSrc":"6651:102:88","nodeType":"YulBlock","src":"6651:102:88","statements":[{"nativeSrc":"6661:26:88","nodeType":"YulAssignment","src":"6661:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6673:9:88","nodeType":"YulIdentifier","src":"6673:9:88"},{"kind":"number","nativeSrc":"6684:2:88","nodeType":"YulLiteral","src":"6684:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6669:3:88","nodeType":"YulIdentifier","src":"6669:3:88"},"nativeSrc":"6669:18:88","nodeType":"YulFunctionCall","src":"6669:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6661:4:88","nodeType":"YulIdentifier","src":"6661:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6703:9:88","nodeType":"YulIdentifier","src":"6703:9:88"},{"arguments":[{"name":"value0","nativeSrc":"6718:6:88","nodeType":"YulIdentifier","src":"6718:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6734:3:88","nodeType":"YulLiteral","src":"6734:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6739:1:88","nodeType":"YulLiteral","src":"6739:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6730:3:88","nodeType":"YulIdentifier","src":"6730:3:88"},"nativeSrc":"6730:11:88","nodeType":"YulFunctionCall","src":"6730:11:88"},{"kind":"number","nativeSrc":"6743:1:88","nodeType":"YulLiteral","src":"6743:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6726:3:88","nodeType":"YulIdentifier","src":"6726:3:88"},"nativeSrc":"6726:19:88","nodeType":"YulFunctionCall","src":"6726:19:88"}],"functionName":{"name":"and","nativeSrc":"6714:3:88","nodeType":"YulIdentifier","src":"6714:3:88"},"nativeSrc":"6714:32:88","nodeType":"YulFunctionCall","src":"6714:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6696:6:88","nodeType":"YulIdentifier","src":"6696:6:88"},"nativeSrc":"6696:51:88","nodeType":"YulFunctionCall","src":"6696:51:88"},"nativeSrc":"6696:51:88","nodeType":"YulExpressionStatement","src":"6696:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6550:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6620:9:88","nodeType":"YulTypedName","src":"6620:9:88","type":""},{"name":"value0","nativeSrc":"6631:6:88","nodeType":"YulTypedName","src":"6631:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6642:4:88","nodeType":"YulTypedName","src":"6642:4:88","type":""}],"src":"6550:203:88"},{"body":{"nativeSrc":"6859:76:88","nodeType":"YulBlock","src":"6859:76:88","statements":[{"nativeSrc":"6869:26:88","nodeType":"YulAssignment","src":"6869:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6881:9:88","nodeType":"YulIdentifier","src":"6881:9:88"},{"kind":"number","nativeSrc":"6892:2:88","nodeType":"YulLiteral","src":"6892:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6877:3:88","nodeType":"YulIdentifier","src":"6877:3:88"},"nativeSrc":"6877:18:88","nodeType":"YulFunctionCall","src":"6877:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6869:4:88","nodeType":"YulIdentifier","src":"6869:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6911:9:88","nodeType":"YulIdentifier","src":"6911:9:88"},{"name":"value0","nativeSrc":"6922:6:88","nodeType":"YulIdentifier","src":"6922:6:88"}],"functionName":{"name":"mstore","nativeSrc":"6904:6:88","nodeType":"YulIdentifier","src":"6904:6:88"},"nativeSrc":"6904:25:88","nodeType":"YulFunctionCall","src":"6904:25:88"},"nativeSrc":"6904:25:88","nodeType":"YulExpressionStatement","src":"6904:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6758:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6828:9:88","nodeType":"YulTypedName","src":"6828:9:88","type":""},{"name":"value0","nativeSrc":"6839:6:88","nodeType":"YulTypedName","src":"6839:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6850:4:88","nodeType":"YulTypedName","src":"6850:4:88","type":""}],"src":"6758:177:88"},{"body":{"nativeSrc":"7054:270:88","nodeType":"YulBlock","src":"7054:270:88","statements":[{"nativeSrc":"7064:33:88","nodeType":"YulVariableDeclaration","src":"7064:33:88","value":{"arguments":[{"name":"dataEnd","nativeSrc":"7078:7:88","nodeType":"YulIdentifier","src":"7078:7:88"},{"name":"headStart","nativeSrc":"7087:9:88","nodeType":"YulIdentifier","src":"7087:9:88"}],"functionName":{"name":"sub","nativeSrc":"7074:3:88","nodeType":"YulIdentifier","src":"7074:3:88"},"nativeSrc":"7074:23:88","nodeType":"YulFunctionCall","src":"7074:23:88"},"variables":[{"name":"_1","nativeSrc":"7068:2:88","nodeType":"YulTypedName","src":"7068:2:88","type":""}]},{"body":{"nativeSrc":"7122:16:88","nodeType":"YulBlock","src":"7122:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7131:1:88","nodeType":"YulLiteral","src":"7131:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7134:1:88","nodeType":"YulLiteral","src":"7134:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7124:6:88","nodeType":"YulIdentifier","src":"7124:6:88"},"nativeSrc":"7124:12:88","nodeType":"YulFunctionCall","src":"7124:12:88"},"nativeSrc":"7124:12:88","nodeType":"YulExpressionStatement","src":"7124:12:88"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"7113:2:88","nodeType":"YulIdentifier","src":"7113:2:88"},{"kind":"number","nativeSrc":"7117:3:88","nodeType":"YulLiteral","src":"7117:3:88","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"7109:3:88","nodeType":"YulIdentifier","src":"7109:3:88"},"nativeSrc":"7109:12:88","nodeType":"YulFunctionCall","src":"7109:12:88"},"nativeSrc":"7106:32:88","nodeType":"YulIf","src":"7106:32:88"},{"nativeSrc":"7147:14:88","nodeType":"YulVariableDeclaration","src":"7147:14:88","value":{"kind":"number","nativeSrc":"7160:1:88","nodeType":"YulLiteral","src":"7160:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7151:5:88","nodeType":"YulTypedName","src":"7151:5:88","type":""}]},{"nativeSrc":"7170:32:88","nodeType":"YulAssignment","src":"7170:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7192:9:88","nodeType":"YulIdentifier","src":"7192:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7179:12:88","nodeType":"YulIdentifier","src":"7179:12:88"},"nativeSrc":"7179:23:88","nodeType":"YulFunctionCall","src":"7179:23:88"},"variableNames":[{"name":"value","nativeSrc":"7170:5:88","nodeType":"YulIdentifier","src":"7170:5:88"}]},{"nativeSrc":"7211:15:88","nodeType":"YulAssignment","src":"7211:15:88","value":{"name":"value","nativeSrc":"7221:5:88","nodeType":"YulIdentifier","src":"7221:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7211:6:88","nodeType":"YulIdentifier","src":"7211:6:88"}]},{"body":{"nativeSrc":"7265:16:88","nodeType":"YulBlock","src":"7265:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7274:1:88","nodeType":"YulLiteral","src":"7274:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7277:1:88","nodeType":"YulLiteral","src":"7277:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7267:6:88","nodeType":"YulIdentifier","src":"7267:6:88"},"nativeSrc":"7267:12:88","nodeType":"YulFunctionCall","src":"7267:12:88"},"nativeSrc":"7267:12:88","nodeType":"YulExpressionStatement","src":"7267:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7246:2:88","nodeType":"YulIdentifier","src":"7246:2:88"},{"arguments":[{"kind":"number","nativeSrc":"7254:2:88","nodeType":"YulLiteral","src":"7254:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7250:3:88","nodeType":"YulIdentifier","src":"7250:3:88"},"nativeSrc":"7250:7:88","nodeType":"YulFunctionCall","src":"7250:7:88"}],"functionName":{"name":"add","nativeSrc":"7242:3:88","nodeType":"YulIdentifier","src":"7242:3:88"},"nativeSrc":"7242:16:88","nodeType":"YulFunctionCall","src":"7242:16:88"},{"kind":"number","nativeSrc":"7260:3:88","nodeType":"YulLiteral","src":"7260:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"7238:3:88","nodeType":"YulIdentifier","src":"7238:3:88"},"nativeSrc":"7238:26:88","nodeType":"YulFunctionCall","src":"7238:26:88"},"nativeSrc":"7235:46:88","nodeType":"YulIf","src":"7235:46:88"},{"nativeSrc":"7290:28:88","nodeType":"YulAssignment","src":"7290:28:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7304:9:88","nodeType":"YulIdentifier","src":"7304:9:88"},{"kind":"number","nativeSrc":"7315:2:88","nodeType":"YulLiteral","src":"7315:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7300:3:88","nodeType":"YulIdentifier","src":"7300:3:88"},"nativeSrc":"7300:18:88","nodeType":"YulFunctionCall","src":"7300:18:88"},"variableNames":[{"name":"value1","nativeSrc":"7290:6:88","nodeType":"YulIdentifier","src":"7290:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr","nativeSrc":"6940:384:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7012:9:88","nodeType":"YulTypedName","src":"7012:9:88","type":""},{"name":"dataEnd","nativeSrc":"7023:7:88","nodeType":"YulTypedName","src":"7023:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7035:6:88","nodeType":"YulTypedName","src":"7035:6:88","type":""},{"name":"value1","nativeSrc":"7043:6:88","nodeType":"YulTypedName","src":"7043:6:88","type":""}],"src":"6940:384:88"},{"body":{"nativeSrc":"7511:1011:88","nodeType":"YulBlock","src":"7511:1011:88","statements":[{"body":{"nativeSrc":"7558:16:88","nodeType":"YulBlock","src":"7558:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7567:1:88","nodeType":"YulLiteral","src":"7567:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7570:1:88","nodeType":"YulLiteral","src":"7570:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7560:6:88","nodeType":"YulIdentifier","src":"7560:6:88"},"nativeSrc":"7560:12:88","nodeType":"YulFunctionCall","src":"7560:12:88"},"nativeSrc":"7560:12:88","nodeType":"YulExpressionStatement","src":"7560:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7532:7:88","nodeType":"YulIdentifier","src":"7532:7:88"},{"name":"headStart","nativeSrc":"7541:9:88","nodeType":"YulIdentifier","src":"7541:9:88"}],"functionName":{"name":"sub","nativeSrc":"7528:3:88","nodeType":"YulIdentifier","src":"7528:3:88"},"nativeSrc":"7528:23:88","nodeType":"YulFunctionCall","src":"7528:23:88"},{"kind":"number","nativeSrc":"7553:3:88","nodeType":"YulLiteral","src":"7553:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"7524:3:88","nodeType":"YulIdentifier","src":"7524:3:88"},"nativeSrc":"7524:33:88","nodeType":"YulFunctionCall","src":"7524:33:88"},"nativeSrc":"7521:53:88","nodeType":"YulIf","src":"7521:53:88"},{"nativeSrc":"7583:37:88","nodeType":"YulVariableDeclaration","src":"7583:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7610:9:88","nodeType":"YulIdentifier","src":"7610:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7597:12:88","nodeType":"YulIdentifier","src":"7597:12:88"},"nativeSrc":"7597:23:88","nodeType":"YulFunctionCall","src":"7597:23:88"},"variables":[{"name":"offset","nativeSrc":"7587:6:88","nodeType":"YulTypedName","src":"7587:6:88","type":""}]},{"body":{"nativeSrc":"7663:16:88","nodeType":"YulBlock","src":"7663:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7672:1:88","nodeType":"YulLiteral","src":"7672:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7675:1:88","nodeType":"YulLiteral","src":"7675:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7665:6:88","nodeType":"YulIdentifier","src":"7665:6:88"},"nativeSrc":"7665:12:88","nodeType":"YulFunctionCall","src":"7665:12:88"},"nativeSrc":"7665:12:88","nodeType":"YulExpressionStatement","src":"7665:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7635:6:88","nodeType":"YulIdentifier","src":"7635:6:88"},{"kind":"number","nativeSrc":"7643:18:88","nodeType":"YulLiteral","src":"7643:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7632:2:88","nodeType":"YulIdentifier","src":"7632:2:88"},"nativeSrc":"7632:30:88","nodeType":"YulFunctionCall","src":"7632:30:88"},"nativeSrc":"7629:50:88","nodeType":"YulIf","src":"7629:50:88"},{"nativeSrc":"7688:32:88","nodeType":"YulVariableDeclaration","src":"7688:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7702:9:88","nodeType":"YulIdentifier","src":"7702:9:88"},{"name":"offset","nativeSrc":"7713:6:88","nodeType":"YulIdentifier","src":"7713:6:88"}],"functionName":{"name":"add","nativeSrc":"7698:3:88","nodeType":"YulIdentifier","src":"7698:3:88"},"nativeSrc":"7698:22:88","nodeType":"YulFunctionCall","src":"7698:22:88"},"variables":[{"name":"_1","nativeSrc":"7692:2:88","nodeType":"YulTypedName","src":"7692:2:88","type":""}]},{"body":{"nativeSrc":"7768:16:88","nodeType":"YulBlock","src":"7768:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7777:1:88","nodeType":"YulLiteral","src":"7777:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7780:1:88","nodeType":"YulLiteral","src":"7780:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7770:6:88","nodeType":"YulIdentifier","src":"7770:6:88"},"nativeSrc":"7770:12:88","nodeType":"YulFunctionCall","src":"7770:12:88"},"nativeSrc":"7770:12:88","nodeType":"YulExpressionStatement","src":"7770:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7747:2:88","nodeType":"YulIdentifier","src":"7747:2:88"},{"kind":"number","nativeSrc":"7751:4:88","nodeType":"YulLiteral","src":"7751:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7743:3:88","nodeType":"YulIdentifier","src":"7743:3:88"},"nativeSrc":"7743:13:88","nodeType":"YulFunctionCall","src":"7743:13:88"},{"name":"dataEnd","nativeSrc":"7758:7:88","nodeType":"YulIdentifier","src":"7758:7:88"}],"functionName":{"name":"slt","nativeSrc":"7739:3:88","nodeType":"YulIdentifier","src":"7739:3:88"},"nativeSrc":"7739:27:88","nodeType":"YulFunctionCall","src":"7739:27:88"}],"functionName":{"name":"iszero","nativeSrc":"7732:6:88","nodeType":"YulIdentifier","src":"7732:6:88"},"nativeSrc":"7732:35:88","nodeType":"YulFunctionCall","src":"7732:35:88"},"nativeSrc":"7729:55:88","nodeType":"YulIf","src":"7729:55:88"},{"nativeSrc":"7793:85:88","nodeType":"YulAssignment","src":"7793:85:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7841:2:88","nodeType":"YulIdentifier","src":"7841:2:88"},{"kind":"number","nativeSrc":"7845:4:88","nodeType":"YulLiteral","src":"7845:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7837:3:88","nodeType":"YulIdentifier","src":"7837:3:88"},"nativeSrc":"7837:13:88","nodeType":"YulFunctionCall","src":"7837:13:88"},{"arguments":[{"name":"_1","nativeSrc":"7865:2:88","nodeType":"YulIdentifier","src":"7865:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"7852:12:88","nodeType":"YulIdentifier","src":"7852:12:88"},"nativeSrc":"7852:16:88","nodeType":"YulFunctionCall","src":"7852:16:88"},{"name":"dataEnd","nativeSrc":"7870:7:88","nodeType":"YulIdentifier","src":"7870:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"7803:33:88","nodeType":"YulIdentifier","src":"7803:33:88"},"nativeSrc":"7803:75:88","nodeType":"YulFunctionCall","src":"7803:75:88"},"variableNames":[{"name":"value0","nativeSrc":"7793:6:88","nodeType":"YulIdentifier","src":"7793:6:88"}]},{"nativeSrc":"7887:14:88","nodeType":"YulVariableDeclaration","src":"7887:14:88","value":{"kind":"number","nativeSrc":"7900:1:88","nodeType":"YulLiteral","src":"7900:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7891:5:88","nodeType":"YulTypedName","src":"7891:5:88","type":""}]},{"nativeSrc":"7910:43:88","nodeType":"YulAssignment","src":"7910:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7936:9:88","nodeType":"YulIdentifier","src":"7936:9:88"},{"kind":"number","nativeSrc":"7947:4:88","nodeType":"YulLiteral","src":"7947:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7932:3:88","nodeType":"YulIdentifier","src":"7932:3:88"},"nativeSrc":"7932:20:88","nodeType":"YulFunctionCall","src":"7932:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"7919:12:88","nodeType":"YulIdentifier","src":"7919:12:88"},"nativeSrc":"7919:34:88","nodeType":"YulFunctionCall","src":"7919:34:88"},"variableNames":[{"name":"value","nativeSrc":"7910:5:88","nodeType":"YulIdentifier","src":"7910:5:88"}]},{"nativeSrc":"7962:15:88","nodeType":"YulAssignment","src":"7962:15:88","value":{"name":"value","nativeSrc":"7972:5:88","nodeType":"YulIdentifier","src":"7972:5:88"},"variableNames":[{"name":"value1","nativeSrc":"7962:6:88","nodeType":"YulIdentifier","src":"7962:6:88"}]},{"nativeSrc":"7986:16:88","nodeType":"YulVariableDeclaration","src":"7986:16:88","value":{"kind":"number","nativeSrc":"8001:1:88","nodeType":"YulLiteral","src":"8001:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"7990:7:88","nodeType":"YulTypedName","src":"7990:7:88","type":""}]},{"nativeSrc":"8011:43:88","nodeType":"YulAssignment","src":"8011:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8039:9:88","nodeType":"YulIdentifier","src":"8039:9:88"},{"kind":"number","nativeSrc":"8050:2:88","nodeType":"YulLiteral","src":"8050:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8035:3:88","nodeType":"YulIdentifier","src":"8035:3:88"},"nativeSrc":"8035:18:88","nodeType":"YulFunctionCall","src":"8035:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8022:12:88","nodeType":"YulIdentifier","src":"8022:12:88"},"nativeSrc":"8022:32:88","nodeType":"YulFunctionCall","src":"8022:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8011:7:88","nodeType":"YulIdentifier","src":"8011:7:88"}]},{"nativeSrc":"8063:17:88","nodeType":"YulAssignment","src":"8063:17:88","value":{"name":"value_1","nativeSrc":"8073:7:88","nodeType":"YulIdentifier","src":"8073:7:88"},"variableNames":[{"name":"value2","nativeSrc":"8063:6:88","nodeType":"YulIdentifier","src":"8063:6:88"}]},{"nativeSrc":"8089:16:88","nodeType":"YulVariableDeclaration","src":"8089:16:88","value":{"kind":"number","nativeSrc":"8104:1:88","nodeType":"YulLiteral","src":"8104:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"8093:7:88","nodeType":"YulTypedName","src":"8093:7:88","type":""}]},{"nativeSrc":"8114:43:88","nodeType":"YulAssignment","src":"8114:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8142:9:88","nodeType":"YulIdentifier","src":"8142:9:88"},{"kind":"number","nativeSrc":"8153:2:88","nodeType":"YulLiteral","src":"8153:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8138:3:88","nodeType":"YulIdentifier","src":"8138:3:88"},"nativeSrc":"8138:18:88","nodeType":"YulFunctionCall","src":"8138:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8125:12:88","nodeType":"YulIdentifier","src":"8125:12:88"},"nativeSrc":"8125:32:88","nodeType":"YulFunctionCall","src":"8125:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"8114:7:88","nodeType":"YulIdentifier","src":"8114:7:88"}]},{"nativeSrc":"8166:17:88","nodeType":"YulAssignment","src":"8166:17:88","value":{"name":"value_2","nativeSrc":"8176:7:88","nodeType":"YulIdentifier","src":"8176:7:88"},"variableNames":[{"name":"value3","nativeSrc":"8166:6:88","nodeType":"YulIdentifier","src":"8166:6:88"}]},{"nativeSrc":"8192:16:88","nodeType":"YulVariableDeclaration","src":"8192:16:88","value":{"kind":"number","nativeSrc":"8207:1:88","nodeType":"YulLiteral","src":"8207:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"8196:7:88","nodeType":"YulTypedName","src":"8196:7:88","type":""}]},{"nativeSrc":"8217:44:88","nodeType":"YulAssignment","src":"8217:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8245:9:88","nodeType":"YulIdentifier","src":"8245:9:88"},{"kind":"number","nativeSrc":"8256:3:88","nodeType":"YulLiteral","src":"8256:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8241:3:88","nodeType":"YulIdentifier","src":"8241:3:88"},"nativeSrc":"8241:19:88","nodeType":"YulFunctionCall","src":"8241:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8228:12:88","nodeType":"YulIdentifier","src":"8228:12:88"},"nativeSrc":"8228:33:88","nodeType":"YulFunctionCall","src":"8228:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"8217:7:88","nodeType":"YulIdentifier","src":"8217:7:88"}]},{"nativeSrc":"8270:17:88","nodeType":"YulAssignment","src":"8270:17:88","value":{"name":"value_3","nativeSrc":"8280:7:88","nodeType":"YulIdentifier","src":"8280:7:88"},"variableNames":[{"name":"value4","nativeSrc":"8270:6:88","nodeType":"YulIdentifier","src":"8270:6:88"}]},{"nativeSrc":"8296:16:88","nodeType":"YulVariableDeclaration","src":"8296:16:88","value":{"kind":"number","nativeSrc":"8311:1:88","nodeType":"YulLiteral","src":"8311:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"8300:7:88","nodeType":"YulTypedName","src":"8300:7:88","type":""}]},{"nativeSrc":"8321:44:88","nodeType":"YulAssignment","src":"8321:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8349:9:88","nodeType":"YulIdentifier","src":"8349:9:88"},{"kind":"number","nativeSrc":"8360:3:88","nodeType":"YulLiteral","src":"8360:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8345:3:88","nodeType":"YulIdentifier","src":"8345:3:88"},"nativeSrc":"8345:19:88","nodeType":"YulFunctionCall","src":"8345:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8332:12:88","nodeType":"YulIdentifier","src":"8332:12:88"},"nativeSrc":"8332:33:88","nodeType":"YulFunctionCall","src":"8332:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"8321:7:88","nodeType":"YulIdentifier","src":"8321:7:88"}]},{"nativeSrc":"8374:17:88","nodeType":"YulAssignment","src":"8374:17:88","value":{"name":"value_4","nativeSrc":"8384:7:88","nodeType":"YulIdentifier","src":"8384:7:88"},"variableNames":[{"name":"value5","nativeSrc":"8374:6:88","nodeType":"YulIdentifier","src":"8374:6:88"}]},{"nativeSrc":"8400:48:88","nodeType":"YulVariableDeclaration","src":"8400:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8432:9:88","nodeType":"YulIdentifier","src":"8432:9:88"},{"kind":"number","nativeSrc":"8443:3:88","nodeType":"YulLiteral","src":"8443:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"8428:3:88","nodeType":"YulIdentifier","src":"8428:3:88"},"nativeSrc":"8428:19:88","nodeType":"YulFunctionCall","src":"8428:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8415:12:88","nodeType":"YulIdentifier","src":"8415:12:88"},"nativeSrc":"8415:33:88","nodeType":"YulFunctionCall","src":"8415:33:88"},"variables":[{"name":"value_5","nativeSrc":"8404:7:88","nodeType":"YulTypedName","src":"8404:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"8482:7:88","nodeType":"YulIdentifier","src":"8482:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8457:24:88","nodeType":"YulIdentifier","src":"8457:24:88"},"nativeSrc":"8457:33:88","nodeType":"YulFunctionCall","src":"8457:33:88"},"nativeSrc":"8457:33:88","nodeType":"YulExpressionStatement","src":"8457:33:88"},{"nativeSrc":"8499:17:88","nodeType":"YulAssignment","src":"8499:17:88","value":{"name":"value_5","nativeSrc":"8509:7:88","nodeType":"YulIdentifier","src":"8509:7:88"},"variableNames":[{"name":"value6","nativeSrc":"8499:6:88","nodeType":"YulIdentifier","src":"8499:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address","nativeSrc":"7329:1193:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7429:9:88","nodeType":"YulTypedName","src":"7429:9:88","type":""},{"name":"dataEnd","nativeSrc":"7440:7:88","nodeType":"YulTypedName","src":"7440:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7452:6:88","nodeType":"YulTypedName","src":"7452:6:88","type":""},{"name":"value1","nativeSrc":"7460:6:88","nodeType":"YulTypedName","src":"7460:6:88","type":""},{"name":"value2","nativeSrc":"7468:6:88","nodeType":"YulTypedName","src":"7468:6:88","type":""},{"name":"value3","nativeSrc":"7476:6:88","nodeType":"YulTypedName","src":"7476:6:88","type":""},{"name":"value4","nativeSrc":"7484:6:88","nodeType":"YulTypedName","src":"7484:6:88","type":""},{"name":"value5","nativeSrc":"7492:6:88","nodeType":"YulTypedName","src":"7492:6:88","type":""},{"name":"value6","nativeSrc":"7500:6:88","nodeType":"YulTypedName","src":"7500:6:88","type":""}],"src":"7329:1193:88"},{"body":{"nativeSrc":"8654:102:88","nodeType":"YulBlock","src":"8654:102:88","statements":[{"nativeSrc":"8664:26:88","nodeType":"YulAssignment","src":"8664:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8676:9:88","nodeType":"YulIdentifier","src":"8676:9:88"},{"kind":"number","nativeSrc":"8687:2:88","nodeType":"YulLiteral","src":"8687:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8672:3:88","nodeType":"YulIdentifier","src":"8672:3:88"},"nativeSrc":"8672:18:88","nodeType":"YulFunctionCall","src":"8672:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8664:4:88","nodeType":"YulIdentifier","src":"8664:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8706:9:88","nodeType":"YulIdentifier","src":"8706:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8721:6:88","nodeType":"YulIdentifier","src":"8721:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8737:3:88","nodeType":"YulLiteral","src":"8737:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8742:1:88","nodeType":"YulLiteral","src":"8742:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8733:3:88","nodeType":"YulIdentifier","src":"8733:3:88"},"nativeSrc":"8733:11:88","nodeType":"YulFunctionCall","src":"8733:11:88"},{"kind":"number","nativeSrc":"8746:1:88","nodeType":"YulLiteral","src":"8746:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8729:3:88","nodeType":"YulIdentifier","src":"8729:3:88"},"nativeSrc":"8729:19:88","nodeType":"YulFunctionCall","src":"8729:19:88"}],"functionName":{"name":"and","nativeSrc":"8717:3:88","nodeType":"YulIdentifier","src":"8717:3:88"},"nativeSrc":"8717:32:88","nodeType":"YulFunctionCall","src":"8717:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8699:6:88","nodeType":"YulIdentifier","src":"8699:6:88"},"nativeSrc":"8699:51:88","nodeType":"YulFunctionCall","src":"8699:51:88"},"nativeSrc":"8699:51:88","nodeType":"YulExpressionStatement","src":"8699:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed","nativeSrc":"8527:229:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8623:9:88","nodeType":"YulTypedName","src":"8623:9:88","type":""},{"name":"value0","nativeSrc":"8634:6:88","nodeType":"YulTypedName","src":"8634:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8645:4:88","nodeType":"YulTypedName","src":"8645:4:88","type":""}],"src":"8527:229:88"},{"body":{"nativeSrc":"8982:1017:88","nodeType":"YulBlock","src":"8982:1017:88","statements":[{"body":{"nativeSrc":"9029:16:88","nodeType":"YulBlock","src":"9029:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9038:1:88","nodeType":"YulLiteral","src":"9038:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9041:1:88","nodeType":"YulLiteral","src":"9041:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9031:6:88","nodeType":"YulIdentifier","src":"9031:6:88"},"nativeSrc":"9031:12:88","nodeType":"YulFunctionCall","src":"9031:12:88"},"nativeSrc":"9031:12:88","nodeType":"YulExpressionStatement","src":"9031:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9003:7:88","nodeType":"YulIdentifier","src":"9003:7:88"},{"name":"headStart","nativeSrc":"9012:9:88","nodeType":"YulIdentifier","src":"9012:9:88"}],"functionName":{"name":"sub","nativeSrc":"8999:3:88","nodeType":"YulIdentifier","src":"8999:3:88"},"nativeSrc":"8999:23:88","nodeType":"YulFunctionCall","src":"8999:23:88"},{"kind":"number","nativeSrc":"9024:3:88","nodeType":"YulLiteral","src":"9024:3:88","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"8995:3:88","nodeType":"YulIdentifier","src":"8995:3:88"},"nativeSrc":"8995:33:88","nodeType":"YulFunctionCall","src":"8995:33:88"},"nativeSrc":"8992:53:88","nodeType":"YulIf","src":"8992:53:88"},{"nativeSrc":"9054:14:88","nodeType":"YulVariableDeclaration","src":"9054:14:88","value":{"kind":"number","nativeSrc":"9067:1:88","nodeType":"YulLiteral","src":"9067:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9058:5:88","nodeType":"YulTypedName","src":"9058:5:88","type":""}]},{"nativeSrc":"9077:32:88","nodeType":"YulAssignment","src":"9077:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9099:9:88","nodeType":"YulIdentifier","src":"9099:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9086:12:88","nodeType":"YulIdentifier","src":"9086:12:88"},"nativeSrc":"9086:23:88","nodeType":"YulFunctionCall","src":"9086:23:88"},"variableNames":[{"name":"value","nativeSrc":"9077:5:88","nodeType":"YulIdentifier","src":"9077:5:88"}]},{"nativeSrc":"9118:15:88","nodeType":"YulAssignment","src":"9118:15:88","value":{"name":"value","nativeSrc":"9128:5:88","nodeType":"YulIdentifier","src":"9128:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9118:6:88","nodeType":"YulIdentifier","src":"9118:6:88"}]},{"nativeSrc":"9142:16:88","nodeType":"YulVariableDeclaration","src":"9142:16:88","value":{"kind":"number","nativeSrc":"9157:1:88","nodeType":"YulLiteral","src":"9157:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9146:7:88","nodeType":"YulTypedName","src":"9146:7:88","type":""}]},{"nativeSrc":"9167:43:88","nodeType":"YulAssignment","src":"9167:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9195:9:88","nodeType":"YulIdentifier","src":"9195:9:88"},{"kind":"number","nativeSrc":"9206:2:88","nodeType":"YulLiteral","src":"9206:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9191:3:88","nodeType":"YulIdentifier","src":"9191:3:88"},"nativeSrc":"9191:18:88","nodeType":"YulFunctionCall","src":"9191:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9178:12:88","nodeType":"YulIdentifier","src":"9178:12:88"},"nativeSrc":"9178:32:88","nodeType":"YulFunctionCall","src":"9178:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9167:7:88","nodeType":"YulIdentifier","src":"9167:7:88"}]},{"nativeSrc":"9219:17:88","nodeType":"YulAssignment","src":"9219:17:88","value":{"name":"value_1","nativeSrc":"9229:7:88","nodeType":"YulIdentifier","src":"9229:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9219:6:88","nodeType":"YulIdentifier","src":"9219:6:88"}]},{"nativeSrc":"9245:16:88","nodeType":"YulVariableDeclaration","src":"9245:16:88","value":{"kind":"number","nativeSrc":"9260:1:88","nodeType":"YulLiteral","src":"9260:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"9249:7:88","nodeType":"YulTypedName","src":"9249:7:88","type":""}]},{"nativeSrc":"9270:43:88","nodeType":"YulAssignment","src":"9270:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9298:9:88","nodeType":"YulIdentifier","src":"9298:9:88"},{"kind":"number","nativeSrc":"9309:2:88","nodeType":"YulLiteral","src":"9309:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9294:3:88","nodeType":"YulIdentifier","src":"9294:3:88"},"nativeSrc":"9294:18:88","nodeType":"YulFunctionCall","src":"9294:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9281:12:88","nodeType":"YulIdentifier","src":"9281:12:88"},"nativeSrc":"9281:32:88","nodeType":"YulFunctionCall","src":"9281:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"9270:7:88","nodeType":"YulIdentifier","src":"9270:7:88"}]},{"nativeSrc":"9322:17:88","nodeType":"YulAssignment","src":"9322:17:88","value":{"name":"value_2","nativeSrc":"9332:7:88","nodeType":"YulIdentifier","src":"9332:7:88"},"variableNames":[{"name":"value2","nativeSrc":"9322:6:88","nodeType":"YulIdentifier","src":"9322:6:88"}]},{"nativeSrc":"9348:47:88","nodeType":"YulAssignment","src":"9348:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9380:9:88","nodeType":"YulIdentifier","src":"9380:9:88"},{"kind":"number","nativeSrc":"9391:2:88","nodeType":"YulLiteral","src":"9391:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9376:3:88","nodeType":"YulIdentifier","src":"9376:3:88"},"nativeSrc":"9376:18:88","nodeType":"YulFunctionCall","src":"9376:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"9358:17:88","nodeType":"YulIdentifier","src":"9358:17:88"},"nativeSrc":"9358:37:88","nodeType":"YulFunctionCall","src":"9358:37:88"},"variableNames":[{"name":"value3","nativeSrc":"9348:6:88","nodeType":"YulIdentifier","src":"9348:6:88"}]},{"nativeSrc":"9404:48:88","nodeType":"YulVariableDeclaration","src":"9404:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9436:9:88","nodeType":"YulIdentifier","src":"9436:9:88"},{"kind":"number","nativeSrc":"9447:3:88","nodeType":"YulLiteral","src":"9447:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9432:3:88","nodeType":"YulIdentifier","src":"9432:3:88"},"nativeSrc":"9432:19:88","nodeType":"YulFunctionCall","src":"9432:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9419:12:88","nodeType":"YulIdentifier","src":"9419:12:88"},"nativeSrc":"9419:33:88","nodeType":"YulFunctionCall","src":"9419:33:88"},"variables":[{"name":"value_3","nativeSrc":"9408:7:88","nodeType":"YulTypedName","src":"9408:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"9486:7:88","nodeType":"YulIdentifier","src":"9486:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9461:24:88","nodeType":"YulIdentifier","src":"9461:24:88"},"nativeSrc":"9461:33:88","nodeType":"YulFunctionCall","src":"9461:33:88"},"nativeSrc":"9461:33:88","nodeType":"YulExpressionStatement","src":"9461:33:88"},{"nativeSrc":"9503:17:88","nodeType":"YulAssignment","src":"9503:17:88","value":{"name":"value_3","nativeSrc":"9513:7:88","nodeType":"YulIdentifier","src":"9513:7:88"},"variableNames":[{"name":"value4","nativeSrc":"9503:6:88","nodeType":"YulIdentifier","src":"9503:6:88"}]},{"nativeSrc":"9529:16:88","nodeType":"YulVariableDeclaration","src":"9529:16:88","value":{"kind":"number","nativeSrc":"9544:1:88","nodeType":"YulLiteral","src":"9544:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"9533:7:88","nodeType":"YulTypedName","src":"9533:7:88","type":""}]},{"nativeSrc":"9554:44:88","nodeType":"YulAssignment","src":"9554:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9582:9:88","nodeType":"YulIdentifier","src":"9582:9:88"},{"kind":"number","nativeSrc":"9593:3:88","nodeType":"YulLiteral","src":"9593:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9578:3:88","nodeType":"YulIdentifier","src":"9578:3:88"},"nativeSrc":"9578:19:88","nodeType":"YulFunctionCall","src":"9578:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9565:12:88","nodeType":"YulIdentifier","src":"9565:12:88"},"nativeSrc":"9565:33:88","nodeType":"YulFunctionCall","src":"9565:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"9554:7:88","nodeType":"YulIdentifier","src":"9554:7:88"}]},{"nativeSrc":"9607:17:88","nodeType":"YulAssignment","src":"9607:17:88","value":{"name":"value_4","nativeSrc":"9617:7:88","nodeType":"YulIdentifier","src":"9617:7:88"},"variableNames":[{"name":"value5","nativeSrc":"9607:6:88","nodeType":"YulIdentifier","src":"9607:6:88"}]},{"nativeSrc":"9633:16:88","nodeType":"YulVariableDeclaration","src":"9633:16:88","value":{"kind":"number","nativeSrc":"9648:1:88","nodeType":"YulLiteral","src":"9648:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"9637:7:88","nodeType":"YulTypedName","src":"9637:7:88","type":""}]},{"nativeSrc":"9658:44:88","nodeType":"YulAssignment","src":"9658:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9686:9:88","nodeType":"YulIdentifier","src":"9686:9:88"},{"kind":"number","nativeSrc":"9697:3:88","nodeType":"YulLiteral","src":"9697:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"9682:3:88","nodeType":"YulIdentifier","src":"9682:3:88"},"nativeSrc":"9682:19:88","nodeType":"YulFunctionCall","src":"9682:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9669:12:88","nodeType":"YulIdentifier","src":"9669:12:88"},"nativeSrc":"9669:33:88","nodeType":"YulFunctionCall","src":"9669:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"9658:7:88","nodeType":"YulIdentifier","src":"9658:7:88"}]},{"nativeSrc":"9711:17:88","nodeType":"YulAssignment","src":"9711:17:88","value":{"name":"value_5","nativeSrc":"9721:7:88","nodeType":"YulIdentifier","src":"9721:7:88"},"variableNames":[{"name":"value6","nativeSrc":"9711:6:88","nodeType":"YulIdentifier","src":"9711:6:88"}]},{"nativeSrc":"9737:16:88","nodeType":"YulVariableDeclaration","src":"9737:16:88","value":{"kind":"number","nativeSrc":"9752:1:88","nodeType":"YulLiteral","src":"9752:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"9741:7:88","nodeType":"YulTypedName","src":"9741:7:88","type":""}]},{"nativeSrc":"9762:44:88","nodeType":"YulAssignment","src":"9762:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9790:9:88","nodeType":"YulIdentifier","src":"9790:9:88"},{"kind":"number","nativeSrc":"9801:3:88","nodeType":"YulLiteral","src":"9801:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"9786:3:88","nodeType":"YulIdentifier","src":"9786:3:88"},"nativeSrc":"9786:19:88","nodeType":"YulFunctionCall","src":"9786:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9773:12:88","nodeType":"YulIdentifier","src":"9773:12:88"},"nativeSrc":"9773:33:88","nodeType":"YulFunctionCall","src":"9773:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"9762:7:88","nodeType":"YulIdentifier","src":"9762:7:88"}]},{"nativeSrc":"9815:17:88","nodeType":"YulAssignment","src":"9815:17:88","value":{"name":"value_6","nativeSrc":"9825:7:88","nodeType":"YulIdentifier","src":"9825:7:88"},"variableNames":[{"name":"value7","nativeSrc":"9815:6:88","nodeType":"YulIdentifier","src":"9815:6:88"}]},{"nativeSrc":"9841:16:88","nodeType":"YulVariableDeclaration","src":"9841:16:88","value":{"kind":"number","nativeSrc":"9856:1:88","nodeType":"YulLiteral","src":"9856:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"9845:7:88","nodeType":"YulTypedName","src":"9845:7:88","type":""}]},{"nativeSrc":"9866:44:88","nodeType":"YulAssignment","src":"9866:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:88","nodeType":"YulIdentifier","src":"9894:9:88"},{"kind":"number","nativeSrc":"9905:3:88","nodeType":"YulLiteral","src":"9905:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"9890:3:88","nodeType":"YulIdentifier","src":"9890:3:88"},"nativeSrc":"9890:19:88","nodeType":"YulFunctionCall","src":"9890:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9877:12:88","nodeType":"YulIdentifier","src":"9877:12:88"},"nativeSrc":"9877:33:88","nodeType":"YulFunctionCall","src":"9877:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"9866:7:88","nodeType":"YulIdentifier","src":"9866:7:88"}]},{"nativeSrc":"9919:17:88","nodeType":"YulAssignment","src":"9919:17:88","value":{"name":"value_7","nativeSrc":"9929:7:88","nodeType":"YulIdentifier","src":"9929:7:88"},"variableNames":[{"name":"value8","nativeSrc":"9919:6:88","nodeType":"YulIdentifier","src":"9919:6:88"}]},{"nativeSrc":"9945:48:88","nodeType":"YulAssignment","src":"9945:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9977:9:88","nodeType":"YulIdentifier","src":"9977:9:88"},{"kind":"number","nativeSrc":"9988:3:88","nodeType":"YulLiteral","src":"9988:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"9973:3:88","nodeType":"YulIdentifier","src":"9973:3:88"},"nativeSrc":"9973:19:88","nodeType":"YulFunctionCall","src":"9973:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"9955:17:88","nodeType":"YulIdentifier","src":"9955:17:88"},"nativeSrc":"9955:38:88","nodeType":"YulFunctionCall","src":"9955:38:88"},"variableNames":[{"name":"value9","nativeSrc":"9945:6:88","nodeType":"YulIdentifier","src":"9945:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40","nativeSrc":"8761:1238:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8876:9:88","nodeType":"YulTypedName","src":"8876:9:88","type":""},{"name":"dataEnd","nativeSrc":"8887:7:88","nodeType":"YulTypedName","src":"8887:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8899:6:88","nodeType":"YulTypedName","src":"8899:6:88","type":""},{"name":"value1","nativeSrc":"8907:6:88","nodeType":"YulTypedName","src":"8907:6:88","type":""},{"name":"value2","nativeSrc":"8915:6:88","nodeType":"YulTypedName","src":"8915:6:88","type":""},{"name":"value3","nativeSrc":"8923:6:88","nodeType":"YulTypedName","src":"8923:6:88","type":""},{"name":"value4","nativeSrc":"8931:6:88","nodeType":"YulTypedName","src":"8931:6:88","type":""},{"name":"value5","nativeSrc":"8939:6:88","nodeType":"YulTypedName","src":"8939:6:88","type":""},{"name":"value6","nativeSrc":"8947:6:88","nodeType":"YulTypedName","src":"8947:6:88","type":""},{"name":"value7","nativeSrc":"8955:6:88","nodeType":"YulTypedName","src":"8955:6:88","type":""},{"name":"value8","nativeSrc":"8963:6:88","nodeType":"YulTypedName","src":"8963:6:88","type":""},{"name":"value9","nativeSrc":"8971:6:88","nodeType":"YulTypedName","src":"8971:6:88","type":""}],"src":"8761:1238:88"},{"body":{"nativeSrc":"10122:243:88","nodeType":"YulBlock","src":"10122:243:88","statements":[{"body":{"nativeSrc":"10169:16:88","nodeType":"YulBlock","src":"10169:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10178:1:88","nodeType":"YulLiteral","src":"10178:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10181:1:88","nodeType":"YulLiteral","src":"10181:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10171:6:88","nodeType":"YulIdentifier","src":"10171:6:88"},"nativeSrc":"10171:12:88","nodeType":"YulFunctionCall","src":"10171:12:88"},"nativeSrc":"10171:12:88","nodeType":"YulExpressionStatement","src":"10171:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10143:7:88","nodeType":"YulIdentifier","src":"10143:7:88"},{"name":"headStart","nativeSrc":"10152:9:88","nodeType":"YulIdentifier","src":"10152:9:88"}],"functionName":{"name":"sub","nativeSrc":"10139:3:88","nodeType":"YulIdentifier","src":"10139:3:88"},"nativeSrc":"10139:23:88","nodeType":"YulFunctionCall","src":"10139:23:88"},{"kind":"number","nativeSrc":"10164:3:88","nodeType":"YulLiteral","src":"10164:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"10135:3:88","nodeType":"YulIdentifier","src":"10135:3:88"},"nativeSrc":"10135:33:88","nodeType":"YulFunctionCall","src":"10135:33:88"},"nativeSrc":"10132:53:88","nodeType":"YulIf","src":"10132:53:88"},{"nativeSrc":"10194:67:88","nodeType":"YulAssignment","src":"10194:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10242:9:88","nodeType":"YulIdentifier","src":"10242:9:88"},{"name":"dataEnd","nativeSrc":"10253:7:88","nodeType":"YulIdentifier","src":"10253:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"10204:37:88","nodeType":"YulIdentifier","src":"10204:37:88"},"nativeSrc":"10204:57:88","nodeType":"YulFunctionCall","src":"10204:57:88"},"variableNames":[{"name":"value0","nativeSrc":"10194:6:88","nodeType":"YulIdentifier","src":"10194:6:88"}]},{"nativeSrc":"10270:14:88","nodeType":"YulVariableDeclaration","src":"10270:14:88","value":{"kind":"number","nativeSrc":"10283:1:88","nodeType":"YulLiteral","src":"10283:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"10274:5:88","nodeType":"YulTypedName","src":"10274:5:88","type":""}]},{"nativeSrc":"10293:42:88","nodeType":"YulAssignment","src":"10293:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10319:9:88","nodeType":"YulIdentifier","src":"10319:9:88"},{"kind":"number","nativeSrc":"10330:3:88","nodeType":"YulLiteral","src":"10330:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"10315:3:88","nodeType":"YulIdentifier","src":"10315:3:88"},"nativeSrc":"10315:19:88","nodeType":"YulFunctionCall","src":"10315:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10302:12:88","nodeType":"YulIdentifier","src":"10302:12:88"},"nativeSrc":"10302:33:88","nodeType":"YulFunctionCall","src":"10302:33:88"},"variableNames":[{"name":"value","nativeSrc":"10293:5:88","nodeType":"YulIdentifier","src":"10293:5:88"}]},{"nativeSrc":"10344:15:88","nodeType":"YulAssignment","src":"10344:15:88","value":{"name":"value","nativeSrc":"10354:5:88","nodeType":"YulIdentifier","src":"10354:5:88"},"variableNames":[{"name":"value1","nativeSrc":"10344:6:88","nodeType":"YulIdentifier","src":"10344:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"10004:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10080:9:88","nodeType":"YulTypedName","src":"10080:9:88","type":""},{"name":"dataEnd","nativeSrc":"10091:7:88","nodeType":"YulTypedName","src":"10091:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10103:6:88","nodeType":"YulTypedName","src":"10103:6:88","type":""},{"name":"value1","nativeSrc":"10111:6:88","nodeType":"YulTypedName","src":"10111:6:88","type":""}],"src":"10004:361:88"},{"body":{"nativeSrc":"10622:981:88","nodeType":"YulBlock","src":"10622:981:88","statements":[{"body":{"nativeSrc":"10669:16:88","nodeType":"YulBlock","src":"10669:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10678:1:88","nodeType":"YulLiteral","src":"10678:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10681:1:88","nodeType":"YulLiteral","src":"10681:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10671:6:88","nodeType":"YulIdentifier","src":"10671:6:88"},"nativeSrc":"10671:12:88","nodeType":"YulFunctionCall","src":"10671:12:88"},"nativeSrc":"10671:12:88","nodeType":"YulExpressionStatement","src":"10671:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10643:7:88","nodeType":"YulIdentifier","src":"10643:7:88"},{"name":"headStart","nativeSrc":"10652:9:88","nodeType":"YulIdentifier","src":"10652:9:88"}],"functionName":{"name":"sub","nativeSrc":"10639:3:88","nodeType":"YulIdentifier","src":"10639:3:88"},"nativeSrc":"10639:23:88","nodeType":"YulFunctionCall","src":"10639:23:88"},{"kind":"number","nativeSrc":"10664:3:88","nodeType":"YulLiteral","src":"10664:3:88","type":"","value":"736"}],"functionName":{"name":"slt","nativeSrc":"10635:3:88","nodeType":"YulIdentifier","src":"10635:3:88"},"nativeSrc":"10635:33:88","nodeType":"YulFunctionCall","src":"10635:33:88"},"nativeSrc":"10632:53:88","nodeType":"YulIf","src":"10632:53:88"},{"nativeSrc":"10694:67:88","nodeType":"YulAssignment","src":"10694:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10742:9:88","nodeType":"YulIdentifier","src":"10742:9:88"},{"name":"dataEnd","nativeSrc":"10753:7:88","nodeType":"YulIdentifier","src":"10753:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"10704:37:88","nodeType":"YulIdentifier","src":"10704:37:88"},"nativeSrc":"10704:57:88","nodeType":"YulFunctionCall","src":"10704:57:88"},"variableNames":[{"name":"value0","nativeSrc":"10694:6:88","nodeType":"YulIdentifier","src":"10694:6:88"}]},{"nativeSrc":"10770:14:88","nodeType":"YulVariableDeclaration","src":"10770:14:88","value":{"kind":"number","nativeSrc":"10783:1:88","nodeType":"YulLiteral","src":"10783:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"10774:5:88","nodeType":"YulTypedName","src":"10774:5:88","type":""}]},{"nativeSrc":"10793:42:88","nodeType":"YulAssignment","src":"10793:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10819:9:88","nodeType":"YulIdentifier","src":"10819:9:88"},{"kind":"number","nativeSrc":"10830:3:88","nodeType":"YulLiteral","src":"10830:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"10815:3:88","nodeType":"YulIdentifier","src":"10815:3:88"},"nativeSrc":"10815:19:88","nodeType":"YulFunctionCall","src":"10815:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10802:12:88","nodeType":"YulIdentifier","src":"10802:12:88"},"nativeSrc":"10802:33:88","nodeType":"YulFunctionCall","src":"10802:33:88"},"variableNames":[{"name":"value","nativeSrc":"10793:5:88","nodeType":"YulIdentifier","src":"10793:5:88"}]},{"nativeSrc":"10844:15:88","nodeType":"YulAssignment","src":"10844:15:88","value":{"name":"value","nativeSrc":"10854:5:88","nodeType":"YulIdentifier","src":"10854:5:88"},"variableNames":[{"name":"value1","nativeSrc":"10844:6:88","nodeType":"YulIdentifier","src":"10844:6:88"}]},{"nativeSrc":"10868:16:88","nodeType":"YulVariableDeclaration","src":"10868:16:88","value":{"kind":"number","nativeSrc":"10883:1:88","nodeType":"YulLiteral","src":"10883:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"10872:7:88","nodeType":"YulTypedName","src":"10872:7:88","type":""}]},{"nativeSrc":"10893:44:88","nodeType":"YulAssignment","src":"10893:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10921:9:88","nodeType":"YulIdentifier","src":"10921:9:88"},{"kind":"number","nativeSrc":"10932:3:88","nodeType":"YulLiteral","src":"10932:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"10917:3:88","nodeType":"YulIdentifier","src":"10917:3:88"},"nativeSrc":"10917:19:88","nodeType":"YulFunctionCall","src":"10917:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10904:12:88","nodeType":"YulIdentifier","src":"10904:12:88"},"nativeSrc":"10904:33:88","nodeType":"YulFunctionCall","src":"10904:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"10893:7:88","nodeType":"YulIdentifier","src":"10893:7:88"}]},{"nativeSrc":"10946:17:88","nodeType":"YulAssignment","src":"10946:17:88","value":{"name":"value_1","nativeSrc":"10956:7:88","nodeType":"YulIdentifier","src":"10956:7:88"},"variableNames":[{"name":"value2","nativeSrc":"10946:6:88","nodeType":"YulIdentifier","src":"10946:6:88"}]},{"nativeSrc":"10972:16:88","nodeType":"YulVariableDeclaration","src":"10972:16:88","value":{"kind":"number","nativeSrc":"10987:1:88","nodeType":"YulLiteral","src":"10987:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"10976:7:88","nodeType":"YulTypedName","src":"10976:7:88","type":""}]},{"nativeSrc":"10997:44:88","nodeType":"YulAssignment","src":"10997:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11025:9:88","nodeType":"YulIdentifier","src":"11025:9:88"},{"kind":"number","nativeSrc":"11036:3:88","nodeType":"YulLiteral","src":"11036:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"11021:3:88","nodeType":"YulIdentifier","src":"11021:3:88"},"nativeSrc":"11021:19:88","nodeType":"YulFunctionCall","src":"11021:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11008:12:88","nodeType":"YulIdentifier","src":"11008:12:88"},"nativeSrc":"11008:33:88","nodeType":"YulFunctionCall","src":"11008:33:88"},"variableNames":[{"name":"value_2","nativeSrc":"10997:7:88","nodeType":"YulIdentifier","src":"10997:7:88"}]},{"nativeSrc":"11050:17:88","nodeType":"YulAssignment","src":"11050:17:88","value":{"name":"value_2","nativeSrc":"11060:7:88","nodeType":"YulIdentifier","src":"11060:7:88"},"variableNames":[{"name":"value3","nativeSrc":"11050:6:88","nodeType":"YulIdentifier","src":"11050:6:88"}]},{"nativeSrc":"11076:48:88","nodeType":"YulAssignment","src":"11076:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11108:9:88","nodeType":"YulIdentifier","src":"11108:9:88"},{"kind":"number","nativeSrc":"11119:3:88","nodeType":"YulLiteral","src":"11119:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"11104:3:88","nodeType":"YulIdentifier","src":"11104:3:88"},"nativeSrc":"11104:19:88","nodeType":"YulFunctionCall","src":"11104:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"11086:17:88","nodeType":"YulIdentifier","src":"11086:17:88"},"nativeSrc":"11086:38:88","nodeType":"YulFunctionCall","src":"11086:38:88"},"variableNames":[{"name":"value4","nativeSrc":"11076:6:88","nodeType":"YulIdentifier","src":"11076:6:88"}]},{"nativeSrc":"11133:16:88","nodeType":"YulVariableDeclaration","src":"11133:16:88","value":{"kind":"number","nativeSrc":"11148:1:88","nodeType":"YulLiteral","src":"11148:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"11137:7:88","nodeType":"YulTypedName","src":"11137:7:88","type":""}]},{"nativeSrc":"11158:44:88","nodeType":"YulAssignment","src":"11158:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11186:9:88","nodeType":"YulIdentifier","src":"11186:9:88"},{"kind":"number","nativeSrc":"11197:3:88","nodeType":"YulLiteral","src":"11197:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"11182:3:88","nodeType":"YulIdentifier","src":"11182:3:88"},"nativeSrc":"11182:19:88","nodeType":"YulFunctionCall","src":"11182:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11169:12:88","nodeType":"YulIdentifier","src":"11169:12:88"},"nativeSrc":"11169:33:88","nodeType":"YulFunctionCall","src":"11169:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"11158:7:88","nodeType":"YulIdentifier","src":"11158:7:88"}]},{"nativeSrc":"11211:17:88","nodeType":"YulAssignment","src":"11211:17:88","value":{"name":"value_3","nativeSrc":"11221:7:88","nodeType":"YulIdentifier","src":"11221:7:88"},"variableNames":[{"name":"value5","nativeSrc":"11211:6:88","nodeType":"YulIdentifier","src":"11211:6:88"}]},{"nativeSrc":"11237:16:88","nodeType":"YulVariableDeclaration","src":"11237:16:88","value":{"kind":"number","nativeSrc":"11252:1:88","nodeType":"YulLiteral","src":"11252:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"11241:7:88","nodeType":"YulTypedName","src":"11241:7:88","type":""}]},{"nativeSrc":"11262:44:88","nodeType":"YulAssignment","src":"11262:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11290:9:88","nodeType":"YulIdentifier","src":"11290:9:88"},{"kind":"number","nativeSrc":"11301:3:88","nodeType":"YulLiteral","src":"11301:3:88","type":"","value":"608"}],"functionName":{"name":"add","nativeSrc":"11286:3:88","nodeType":"YulIdentifier","src":"11286:3:88"},"nativeSrc":"11286:19:88","nodeType":"YulFunctionCall","src":"11286:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11273:12:88","nodeType":"YulIdentifier","src":"11273:12:88"},"nativeSrc":"11273:33:88","nodeType":"YulFunctionCall","src":"11273:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"11262:7:88","nodeType":"YulIdentifier","src":"11262:7:88"}]},{"nativeSrc":"11315:17:88","nodeType":"YulAssignment","src":"11315:17:88","value":{"name":"value_4","nativeSrc":"11325:7:88","nodeType":"YulIdentifier","src":"11325:7:88"},"variableNames":[{"name":"value6","nativeSrc":"11315:6:88","nodeType":"YulIdentifier","src":"11315:6:88"}]},{"nativeSrc":"11341:16:88","nodeType":"YulVariableDeclaration","src":"11341:16:88","value":{"kind":"number","nativeSrc":"11356:1:88","nodeType":"YulLiteral","src":"11356:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"11345:7:88","nodeType":"YulTypedName","src":"11345:7:88","type":""}]},{"nativeSrc":"11366:44:88","nodeType":"YulAssignment","src":"11366:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11394:9:88","nodeType":"YulIdentifier","src":"11394:9:88"},{"kind":"number","nativeSrc":"11405:3:88","nodeType":"YulLiteral","src":"11405:3:88","type":"","value":"640"}],"functionName":{"name":"add","nativeSrc":"11390:3:88","nodeType":"YulIdentifier","src":"11390:3:88"},"nativeSrc":"11390:19:88","nodeType":"YulFunctionCall","src":"11390:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11377:12:88","nodeType":"YulIdentifier","src":"11377:12:88"},"nativeSrc":"11377:33:88","nodeType":"YulFunctionCall","src":"11377:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"11366:7:88","nodeType":"YulIdentifier","src":"11366:7:88"}]},{"nativeSrc":"11419:17:88","nodeType":"YulAssignment","src":"11419:17:88","value":{"name":"value_5","nativeSrc":"11429:7:88","nodeType":"YulIdentifier","src":"11429:7:88"},"variableNames":[{"name":"value7","nativeSrc":"11419:6:88","nodeType":"YulIdentifier","src":"11419:6:88"}]},{"nativeSrc":"11445:16:88","nodeType":"YulVariableDeclaration","src":"11445:16:88","value":{"kind":"number","nativeSrc":"11460:1:88","nodeType":"YulLiteral","src":"11460:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"11449:7:88","nodeType":"YulTypedName","src":"11449:7:88","type":""}]},{"nativeSrc":"11470:44:88","nodeType":"YulAssignment","src":"11470:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11498:9:88","nodeType":"YulIdentifier","src":"11498:9:88"},{"kind":"number","nativeSrc":"11509:3:88","nodeType":"YulLiteral","src":"11509:3:88","type":"","value":"672"}],"functionName":{"name":"add","nativeSrc":"11494:3:88","nodeType":"YulIdentifier","src":"11494:3:88"},"nativeSrc":"11494:19:88","nodeType":"YulFunctionCall","src":"11494:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11481:12:88","nodeType":"YulIdentifier","src":"11481:12:88"},"nativeSrc":"11481:33:88","nodeType":"YulFunctionCall","src":"11481:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"11470:7:88","nodeType":"YulIdentifier","src":"11470:7:88"}]},{"nativeSrc":"11523:17:88","nodeType":"YulAssignment","src":"11523:17:88","value":{"name":"value_6","nativeSrc":"11533:7:88","nodeType":"YulIdentifier","src":"11533:7:88"},"variableNames":[{"name":"value8","nativeSrc":"11523:6:88","nodeType":"YulIdentifier","src":"11523:6:88"}]},{"nativeSrc":"11549:48:88","nodeType":"YulAssignment","src":"11549:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11581:9:88","nodeType":"YulIdentifier","src":"11581:9:88"},{"kind":"number","nativeSrc":"11592:3:88","nodeType":"YulLiteral","src":"11592:3:88","type":"","value":"704"}],"functionName":{"name":"add","nativeSrc":"11577:3:88","nodeType":"YulIdentifier","src":"11577:3:88"},"nativeSrc":"11577:19:88","nodeType":"YulFunctionCall","src":"11577:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"11559:17:88","nodeType":"YulIdentifier","src":"11559:17:88"},"nativeSrc":"11559:38:88","nodeType":"YulFunctionCall","src":"11559:38:88"},"variableNames":[{"name":"value9","nativeSrc":"11549:6:88","nodeType":"YulIdentifier","src":"11549:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40","nativeSrc":"10370:1233:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10516:9:88","nodeType":"YulTypedName","src":"10516:9:88","type":""},{"name":"dataEnd","nativeSrc":"10527:7:88","nodeType":"YulTypedName","src":"10527:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10539:6:88","nodeType":"YulTypedName","src":"10539:6:88","type":""},{"name":"value1","nativeSrc":"10547:6:88","nodeType":"YulTypedName","src":"10547:6:88","type":""},{"name":"value2","nativeSrc":"10555:6:88","nodeType":"YulTypedName","src":"10555:6:88","type":""},{"name":"value3","nativeSrc":"10563:6:88","nodeType":"YulTypedName","src":"10563:6:88","type":""},{"name":"value4","nativeSrc":"10571:6:88","nodeType":"YulTypedName","src":"10571:6:88","type":""},{"name":"value5","nativeSrc":"10579:6:88","nodeType":"YulTypedName","src":"10579:6:88","type":""},{"name":"value6","nativeSrc":"10587:6:88","nodeType":"YulTypedName","src":"10587:6:88","type":""},{"name":"value7","nativeSrc":"10595:6:88","nodeType":"YulTypedName","src":"10595:6:88","type":""},{"name":"value8","nativeSrc":"10603:6:88","nodeType":"YulTypedName","src":"10603:6:88","type":""},{"name":"value9","nativeSrc":"10611:6:88","nodeType":"YulTypedName","src":"10611:6:88","type":""}],"src":"10370:1233:88"},{"body":{"nativeSrc":"11711:315:88","nodeType":"YulBlock","src":"11711:315:88","statements":[{"body":{"nativeSrc":"11757:16:88","nodeType":"YulBlock","src":"11757:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11766:1:88","nodeType":"YulLiteral","src":"11766:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11769:1:88","nodeType":"YulLiteral","src":"11769:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11759:6:88","nodeType":"YulIdentifier","src":"11759:6:88"},"nativeSrc":"11759:12:88","nodeType":"YulFunctionCall","src":"11759:12:88"},"nativeSrc":"11759:12:88","nodeType":"YulExpressionStatement","src":"11759:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11732:7:88","nodeType":"YulIdentifier","src":"11732:7:88"},{"name":"headStart","nativeSrc":"11741:9:88","nodeType":"YulIdentifier","src":"11741:9:88"}],"functionName":{"name":"sub","nativeSrc":"11728:3:88","nodeType":"YulIdentifier","src":"11728:3:88"},"nativeSrc":"11728:23:88","nodeType":"YulFunctionCall","src":"11728:23:88"},{"kind":"number","nativeSrc":"11753:2:88","nodeType":"YulLiteral","src":"11753:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"11724:3:88","nodeType":"YulIdentifier","src":"11724:3:88"},"nativeSrc":"11724:32:88","nodeType":"YulFunctionCall","src":"11724:32:88"},"nativeSrc":"11721:52:88","nodeType":"YulIf","src":"11721:52:88"},{"nativeSrc":"11782:14:88","nodeType":"YulVariableDeclaration","src":"11782:14:88","value":{"kind":"number","nativeSrc":"11795:1:88","nodeType":"YulLiteral","src":"11795:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"11786:5:88","nodeType":"YulTypedName","src":"11786:5:88","type":""}]},{"nativeSrc":"11805:32:88","nodeType":"YulAssignment","src":"11805:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11827:9:88","nodeType":"YulIdentifier","src":"11827:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"11814:12:88","nodeType":"YulIdentifier","src":"11814:12:88"},"nativeSrc":"11814:23:88","nodeType":"YulFunctionCall","src":"11814:23:88"},"variableNames":[{"name":"value","nativeSrc":"11805:5:88","nodeType":"YulIdentifier","src":"11805:5:88"}]},{"nativeSrc":"11846:15:88","nodeType":"YulAssignment","src":"11846:15:88","value":{"name":"value","nativeSrc":"11856:5:88","nodeType":"YulIdentifier","src":"11856:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11846:6:88","nodeType":"YulIdentifier","src":"11846:6:88"}]},{"nativeSrc":"11870:16:88","nodeType":"YulVariableDeclaration","src":"11870:16:88","value":{"kind":"number","nativeSrc":"11885:1:88","nodeType":"YulLiteral","src":"11885:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"11874:7:88","nodeType":"YulTypedName","src":"11874:7:88","type":""}]},{"nativeSrc":"11895:43:88","nodeType":"YulAssignment","src":"11895:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11923:9:88","nodeType":"YulIdentifier","src":"11923:9:88"},{"kind":"number","nativeSrc":"11934:2:88","nodeType":"YulLiteral","src":"11934:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11919:3:88","nodeType":"YulIdentifier","src":"11919:3:88"},"nativeSrc":"11919:18:88","nodeType":"YulFunctionCall","src":"11919:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"11906:12:88","nodeType":"YulIdentifier","src":"11906:12:88"},"nativeSrc":"11906:32:88","nodeType":"YulFunctionCall","src":"11906:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"11895:7:88","nodeType":"YulIdentifier","src":"11895:7:88"}]},{"nativeSrc":"11947:17:88","nodeType":"YulAssignment","src":"11947:17:88","value":{"name":"value_1","nativeSrc":"11957:7:88","nodeType":"YulIdentifier","src":"11957:7:88"},"variableNames":[{"name":"value1","nativeSrc":"11947:6:88","nodeType":"YulIdentifier","src":"11947:6:88"}]},{"nativeSrc":"11973:47:88","nodeType":"YulAssignment","src":"11973:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12005:9:88","nodeType":"YulIdentifier","src":"12005:9:88"},{"kind":"number","nativeSrc":"12016:2:88","nodeType":"YulLiteral","src":"12016:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12001:3:88","nodeType":"YulIdentifier","src":"12001:3:88"},"nativeSrc":"12001:18:88","nodeType":"YulFunctionCall","src":"12001:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"11983:17:88","nodeType":"YulIdentifier","src":"11983:17:88"},"nativeSrc":"11983:37:88","nodeType":"YulFunctionCall","src":"11983:37:88"},"variableNames":[{"name":"value2","nativeSrc":"11973:6:88","nodeType":"YulIdentifier","src":"11973:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40","nativeSrc":"11608:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11661:9:88","nodeType":"YulTypedName","src":"11661:9:88","type":""},{"name":"dataEnd","nativeSrc":"11672:7:88","nodeType":"YulTypedName","src":"11672:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11684:6:88","nodeType":"YulTypedName","src":"11684:6:88","type":""},{"name":"value1","nativeSrc":"11692:6:88","nodeType":"YulTypedName","src":"11692:6:88","type":""},{"name":"value2","nativeSrc":"11700:6:88","nodeType":"YulTypedName","src":"11700:6:88","type":""}],"src":"11608:418:88"},{"body":{"nativeSrc":"12283:992:88","nodeType":"YulBlock","src":"12283:992:88","statements":[{"body":{"nativeSrc":"12330:16:88","nodeType":"YulBlock","src":"12330:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12339:1:88","nodeType":"YulLiteral","src":"12339:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12342:1:88","nodeType":"YulLiteral","src":"12342:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12332:6:88","nodeType":"YulIdentifier","src":"12332:6:88"},"nativeSrc":"12332:12:88","nodeType":"YulFunctionCall","src":"12332:12:88"},"nativeSrc":"12332:12:88","nodeType":"YulExpressionStatement","src":"12332:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12304:7:88","nodeType":"YulIdentifier","src":"12304:7:88"},{"name":"headStart","nativeSrc":"12313:9:88","nodeType":"YulIdentifier","src":"12313:9:88"}],"functionName":{"name":"sub","nativeSrc":"12300:3:88","nodeType":"YulIdentifier","src":"12300:3:88"},"nativeSrc":"12300:23:88","nodeType":"YulFunctionCall","src":"12300:23:88"},{"kind":"number","nativeSrc":"12325:3:88","nodeType":"YulLiteral","src":"12325:3:88","type":"","value":"608"}],"functionName":{"name":"slt","nativeSrc":"12296:3:88","nodeType":"YulIdentifier","src":"12296:3:88"},"nativeSrc":"12296:33:88","nodeType":"YulFunctionCall","src":"12296:33:88"},"nativeSrc":"12293:53:88","nodeType":"YulIf","src":"12293:53:88"},{"nativeSrc":"12355:14:88","nodeType":"YulVariableDeclaration","src":"12355:14:88","value":{"kind":"number","nativeSrc":"12368:1:88","nodeType":"YulLiteral","src":"12368:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"12359:5:88","nodeType":"YulTypedName","src":"12359:5:88","type":""}]},{"nativeSrc":"12378:32:88","nodeType":"YulAssignment","src":"12378:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12400:9:88","nodeType":"YulIdentifier","src":"12400:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"12387:12:88","nodeType":"YulIdentifier","src":"12387:12:88"},"nativeSrc":"12387:23:88","nodeType":"YulFunctionCall","src":"12387:23:88"},"variableNames":[{"name":"value","nativeSrc":"12378:5:88","nodeType":"YulIdentifier","src":"12378:5:88"}]},{"nativeSrc":"12419:15:88","nodeType":"YulAssignment","src":"12419:15:88","value":{"name":"value","nativeSrc":"12429:5:88","nodeType":"YulIdentifier","src":"12429:5:88"},"variableNames":[{"name":"value0","nativeSrc":"12419:6:88","nodeType":"YulIdentifier","src":"12419:6:88"}]},{"nativeSrc":"12443:16:88","nodeType":"YulVariableDeclaration","src":"12443:16:88","value":{"kind":"number","nativeSrc":"12458:1:88","nodeType":"YulLiteral","src":"12458:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"12447:7:88","nodeType":"YulTypedName","src":"12447:7:88","type":""}]},{"nativeSrc":"12468:43:88","nodeType":"YulAssignment","src":"12468:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12496:9:88","nodeType":"YulIdentifier","src":"12496:9:88"},{"kind":"number","nativeSrc":"12507:2:88","nodeType":"YulLiteral","src":"12507:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12492:3:88","nodeType":"YulIdentifier","src":"12492:3:88"},"nativeSrc":"12492:18:88","nodeType":"YulFunctionCall","src":"12492:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"12479:12:88","nodeType":"YulIdentifier","src":"12479:12:88"},"nativeSrc":"12479:32:88","nodeType":"YulFunctionCall","src":"12479:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"12468:7:88","nodeType":"YulIdentifier","src":"12468:7:88"}]},{"nativeSrc":"12520:17:88","nodeType":"YulAssignment","src":"12520:17:88","value":{"name":"value_1","nativeSrc":"12530:7:88","nodeType":"YulIdentifier","src":"12530:7:88"},"variableNames":[{"name":"value1","nativeSrc":"12520:6:88","nodeType":"YulIdentifier","src":"12520:6:88"}]},{"nativeSrc":"12546:16:88","nodeType":"YulVariableDeclaration","src":"12546:16:88","value":{"kind":"number","nativeSrc":"12561:1:88","nodeType":"YulLiteral","src":"12561:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"12550:7:88","nodeType":"YulTypedName","src":"12550:7:88","type":""}]},{"nativeSrc":"12571:43:88","nodeType":"YulAssignment","src":"12571:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12599:9:88","nodeType":"YulIdentifier","src":"12599:9:88"},{"kind":"number","nativeSrc":"12610:2:88","nodeType":"YulLiteral","src":"12610:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12595:3:88","nodeType":"YulIdentifier","src":"12595:3:88"},"nativeSrc":"12595:18:88","nodeType":"YulFunctionCall","src":"12595:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"12582:12:88","nodeType":"YulIdentifier","src":"12582:12:88"},"nativeSrc":"12582:32:88","nodeType":"YulFunctionCall","src":"12582:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"12571:7:88","nodeType":"YulIdentifier","src":"12571:7:88"}]},{"nativeSrc":"12623:17:88","nodeType":"YulAssignment","src":"12623:17:88","value":{"name":"value_2","nativeSrc":"12633:7:88","nodeType":"YulIdentifier","src":"12633:7:88"},"variableNames":[{"name":"value2","nativeSrc":"12623:6:88","nodeType":"YulIdentifier","src":"12623:6:88"}]},{"nativeSrc":"12649:47:88","nodeType":"YulAssignment","src":"12649:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12681:9:88","nodeType":"YulIdentifier","src":"12681:9:88"},{"kind":"number","nativeSrc":"12692:2:88","nodeType":"YulLiteral","src":"12692:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12677:3:88","nodeType":"YulIdentifier","src":"12677:3:88"},"nativeSrc":"12677:18:88","nodeType":"YulFunctionCall","src":"12677:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"12659:17:88","nodeType":"YulIdentifier","src":"12659:17:88"},"nativeSrc":"12659:37:88","nodeType":"YulFunctionCall","src":"12659:37:88"},"variableNames":[{"name":"value3","nativeSrc":"12649:6:88","nodeType":"YulIdentifier","src":"12649:6:88"}]},{"nativeSrc":"12705:48:88","nodeType":"YulVariableDeclaration","src":"12705:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12737:9:88","nodeType":"YulIdentifier","src":"12737:9:88"},{"kind":"number","nativeSrc":"12748:3:88","nodeType":"YulLiteral","src":"12748:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12733:3:88","nodeType":"YulIdentifier","src":"12733:3:88"},"nativeSrc":"12733:19:88","nodeType":"YulFunctionCall","src":"12733:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"12720:12:88","nodeType":"YulIdentifier","src":"12720:12:88"},"nativeSrc":"12720:33:88","nodeType":"YulFunctionCall","src":"12720:33:88"},"variables":[{"name":"value_3","nativeSrc":"12709:7:88","nodeType":"YulTypedName","src":"12709:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"12787:7:88","nodeType":"YulIdentifier","src":"12787:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12762:24:88","nodeType":"YulIdentifier","src":"12762:24:88"},"nativeSrc":"12762:33:88","nodeType":"YulFunctionCall","src":"12762:33:88"},"nativeSrc":"12762:33:88","nodeType":"YulExpressionStatement","src":"12762:33:88"},{"nativeSrc":"12804:17:88","nodeType":"YulAssignment","src":"12804:17:88","value":{"name":"value_3","nativeSrc":"12814:7:88","nodeType":"YulIdentifier","src":"12814:7:88"},"variableNames":[{"name":"value4","nativeSrc":"12804:6:88","nodeType":"YulIdentifier","src":"12804:6:88"}]},{"nativeSrc":"12830:16:88","nodeType":"YulVariableDeclaration","src":"12830:16:88","value":{"kind":"number","nativeSrc":"12845:1:88","nodeType":"YulLiteral","src":"12845:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"12834:7:88","nodeType":"YulTypedName","src":"12834:7:88","type":""}]},{"nativeSrc":"12855:44:88","nodeType":"YulAssignment","src":"12855:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12883:9:88","nodeType":"YulIdentifier","src":"12883:9:88"},{"kind":"number","nativeSrc":"12894:3:88","nodeType":"YulLiteral","src":"12894:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12879:3:88","nodeType":"YulIdentifier","src":"12879:3:88"},"nativeSrc":"12879:19:88","nodeType":"YulFunctionCall","src":"12879:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"12866:12:88","nodeType":"YulIdentifier","src":"12866:12:88"},"nativeSrc":"12866:33:88","nodeType":"YulFunctionCall","src":"12866:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"12855:7:88","nodeType":"YulIdentifier","src":"12855:7:88"}]},{"nativeSrc":"12908:17:88","nodeType":"YulAssignment","src":"12908:17:88","value":{"name":"value_4","nativeSrc":"12918:7:88","nodeType":"YulIdentifier","src":"12918:7:88"},"variableNames":[{"name":"value5","nativeSrc":"12908:6:88","nodeType":"YulIdentifier","src":"12908:6:88"}]},{"nativeSrc":"12934:70:88","nodeType":"YulAssignment","src":"12934:70:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12979:9:88","nodeType":"YulIdentifier","src":"12979:9:88"},{"kind":"number","nativeSrc":"12990:3:88","nodeType":"YulLiteral","src":"12990:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"12975:3:88","nodeType":"YulIdentifier","src":"12975:3:88"},"nativeSrc":"12975:19:88","nodeType":"YulFunctionCall","src":"12975:19:88"},{"name":"dataEnd","nativeSrc":"12996:7:88","nodeType":"YulIdentifier","src":"12996:7:88"}],"functionName":{"name":"abi_decode_struct_PackedParams","nativeSrc":"12944:30:88","nodeType":"YulIdentifier","src":"12944:30:88"},"nativeSrc":"12944:60:88","nodeType":"YulFunctionCall","src":"12944:60:88"},"variableNames":[{"name":"value6","nativeSrc":"12934:6:88","nodeType":"YulIdentifier","src":"12934:6:88"}]},{"nativeSrc":"13013:16:88","nodeType":"YulVariableDeclaration","src":"13013:16:88","value":{"kind":"number","nativeSrc":"13028:1:88","nodeType":"YulLiteral","src":"13028:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"13017:7:88","nodeType":"YulTypedName","src":"13017:7:88","type":""}]},{"nativeSrc":"13038:44:88","nodeType":"YulAssignment","src":"13038:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13066:9:88","nodeType":"YulIdentifier","src":"13066:9:88"},{"kind":"number","nativeSrc":"13077:3:88","nodeType":"YulLiteral","src":"13077:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"13062:3:88","nodeType":"YulIdentifier","src":"13062:3:88"},"nativeSrc":"13062:19:88","nodeType":"YulFunctionCall","src":"13062:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"13049:12:88","nodeType":"YulIdentifier","src":"13049:12:88"},"nativeSrc":"13049:33:88","nodeType":"YulFunctionCall","src":"13049:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"13038:7:88","nodeType":"YulIdentifier","src":"13038:7:88"}]},{"nativeSrc":"13091:17:88","nodeType":"YulAssignment","src":"13091:17:88","value":{"name":"value_5","nativeSrc":"13101:7:88","nodeType":"YulIdentifier","src":"13101:7:88"},"variableNames":[{"name":"value7","nativeSrc":"13091:6:88","nodeType":"YulIdentifier","src":"13091:6:88"}]},{"nativeSrc":"13117:16:88","nodeType":"YulVariableDeclaration","src":"13117:16:88","value":{"kind":"number","nativeSrc":"13132:1:88","nodeType":"YulLiteral","src":"13132:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"13121:7:88","nodeType":"YulTypedName","src":"13121:7:88","type":""}]},{"nativeSrc":"13142:44:88","nodeType":"YulAssignment","src":"13142:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13170:9:88","nodeType":"YulIdentifier","src":"13170:9:88"},{"kind":"number","nativeSrc":"13181:3:88","nodeType":"YulLiteral","src":"13181:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"13166:3:88","nodeType":"YulIdentifier","src":"13166:3:88"},"nativeSrc":"13166:19:88","nodeType":"YulFunctionCall","src":"13166:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"13153:12:88","nodeType":"YulIdentifier","src":"13153:12:88"},"nativeSrc":"13153:33:88","nodeType":"YulFunctionCall","src":"13153:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"13142:7:88","nodeType":"YulIdentifier","src":"13142:7:88"}]},{"nativeSrc":"13195:17:88","nodeType":"YulAssignment","src":"13195:17:88","value":{"name":"value_6","nativeSrc":"13205:7:88","nodeType":"YulIdentifier","src":"13205:7:88"},"variableNames":[{"name":"value8","nativeSrc":"13195:6:88","nodeType":"YulIdentifier","src":"13195:6:88"}]},{"nativeSrc":"13221:48:88","nodeType":"YulAssignment","src":"13221:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13253:9:88","nodeType":"YulIdentifier","src":"13253:9:88"},{"kind":"number","nativeSrc":"13264:3:88","nodeType":"YulLiteral","src":"13264:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"13249:3:88","nodeType":"YulIdentifier","src":"13249:3:88"},"nativeSrc":"13249:19:88","nodeType":"YulFunctionCall","src":"13249:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"13231:17:88","nodeType":"YulIdentifier","src":"13231:17:88"},"nativeSrc":"13231:38:88","nodeType":"YulFunctionCall","src":"13231:38:88"},"variableNames":[{"name":"value9","nativeSrc":"13221:6:88","nodeType":"YulIdentifier","src":"13221:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40","nativeSrc":"12031:1244:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12177:9:88","nodeType":"YulTypedName","src":"12177:9:88","type":""},{"name":"dataEnd","nativeSrc":"12188:7:88","nodeType":"YulTypedName","src":"12188:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12200:6:88","nodeType":"YulTypedName","src":"12200:6:88","type":""},{"name":"value1","nativeSrc":"12208:6:88","nodeType":"YulTypedName","src":"12208:6:88","type":""},{"name":"value2","nativeSrc":"12216:6:88","nodeType":"YulTypedName","src":"12216:6:88","type":""},{"name":"value3","nativeSrc":"12224:6:88","nodeType":"YulTypedName","src":"12224:6:88","type":""},{"name":"value4","nativeSrc":"12232:6:88","nodeType":"YulTypedName","src":"12232:6:88","type":""},{"name":"value5","nativeSrc":"12240:6:88","nodeType":"YulTypedName","src":"12240:6:88","type":""},{"name":"value6","nativeSrc":"12248:6:88","nodeType":"YulTypedName","src":"12248:6:88","type":""},{"name":"value7","nativeSrc":"12256:6:88","nodeType":"YulTypedName","src":"12256:6:88","type":""},{"name":"value8","nativeSrc":"12264:6:88","nodeType":"YulTypedName","src":"12264:6:88","type":""},{"name":"value9","nativeSrc":"12272:6:88","nodeType":"YulTypedName","src":"12272:6:88","type":""}],"src":"12031:1244:88"},{"body":{"nativeSrc":"13323:53:88","nodeType":"YulBlock","src":"13323:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13340:3:88","nodeType":"YulIdentifier","src":"13340:3:88"},{"arguments":[{"name":"value","nativeSrc":"13349:5:88","nodeType":"YulIdentifier","src":"13349:5:88"},{"kind":"number","nativeSrc":"13356:12:88","nodeType":"YulLiteral","src":"13356:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"13345:3:88","nodeType":"YulIdentifier","src":"13345:3:88"},"nativeSrc":"13345:24:88","nodeType":"YulFunctionCall","src":"13345:24:88"}],"functionName":{"name":"mstore","nativeSrc":"13333:6:88","nodeType":"YulIdentifier","src":"13333:6:88"},"nativeSrc":"13333:37:88","nodeType":"YulFunctionCall","src":"13333:37:88"},"nativeSrc":"13333:37:88","nodeType":"YulExpressionStatement","src":"13333:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"13280:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13307:5:88","nodeType":"YulTypedName","src":"13307:5:88","type":""},{"name":"pos","nativeSrc":"13314:3:88","nodeType":"YulTypedName","src":"13314:3:88","type":""}],"src":"13280:96:88"},{"body":{"nativeSrc":"13435:971:88","nodeType":"YulBlock","src":"13435:971:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13452:3:88","nodeType":"YulIdentifier","src":"13452:3:88"},{"arguments":[{"name":"value","nativeSrc":"13463:5:88","nodeType":"YulIdentifier","src":"13463:5:88"}],"functionName":{"name":"mload","nativeSrc":"13457:5:88","nodeType":"YulIdentifier","src":"13457:5:88"},"nativeSrc":"13457:12:88","nodeType":"YulFunctionCall","src":"13457:12:88"}],"functionName":{"name":"mstore","nativeSrc":"13445:6:88","nodeType":"YulIdentifier","src":"13445:6:88"},"nativeSrc":"13445:25:88","nodeType":"YulFunctionCall","src":"13445:25:88"},"nativeSrc":"13445:25:88","nodeType":"YulExpressionStatement","src":"13445:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13490:3:88","nodeType":"YulIdentifier","src":"13490:3:88"},{"kind":"number","nativeSrc":"13495:4:88","nodeType":"YulLiteral","src":"13495:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13486:3:88","nodeType":"YulIdentifier","src":"13486:3:88"},"nativeSrc":"13486:14:88","nodeType":"YulFunctionCall","src":"13486:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13512:5:88","nodeType":"YulIdentifier","src":"13512:5:88"},{"kind":"number","nativeSrc":"13519:4:88","nodeType":"YulLiteral","src":"13519:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13508:3:88","nodeType":"YulIdentifier","src":"13508:3:88"},"nativeSrc":"13508:16:88","nodeType":"YulFunctionCall","src":"13508:16:88"}],"functionName":{"name":"mload","nativeSrc":"13502:5:88","nodeType":"YulIdentifier","src":"13502:5:88"},"nativeSrc":"13502:23:88","nodeType":"YulFunctionCall","src":"13502:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13479:6:88","nodeType":"YulIdentifier","src":"13479:6:88"},"nativeSrc":"13479:47:88","nodeType":"YulFunctionCall","src":"13479:47:88"},"nativeSrc":"13479:47:88","nodeType":"YulExpressionStatement","src":"13479:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13546:3:88","nodeType":"YulIdentifier","src":"13546:3:88"},{"kind":"number","nativeSrc":"13551:4:88","nodeType":"YulLiteral","src":"13551:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13542:3:88","nodeType":"YulIdentifier","src":"13542:3:88"},"nativeSrc":"13542:14:88","nodeType":"YulFunctionCall","src":"13542:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13568:5:88","nodeType":"YulIdentifier","src":"13568:5:88"},{"kind":"number","nativeSrc":"13575:4:88","nodeType":"YulLiteral","src":"13575:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13564:3:88","nodeType":"YulIdentifier","src":"13564:3:88"},"nativeSrc":"13564:16:88","nodeType":"YulFunctionCall","src":"13564:16:88"}],"functionName":{"name":"mload","nativeSrc":"13558:5:88","nodeType":"YulIdentifier","src":"13558:5:88"},"nativeSrc":"13558:23:88","nodeType":"YulFunctionCall","src":"13558:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13535:6:88","nodeType":"YulIdentifier","src":"13535:6:88"},"nativeSrc":"13535:47:88","nodeType":"YulFunctionCall","src":"13535:47:88"},"nativeSrc":"13535:47:88","nodeType":"YulExpressionStatement","src":"13535:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13602:3:88","nodeType":"YulIdentifier","src":"13602:3:88"},{"kind":"number","nativeSrc":"13607:4:88","nodeType":"YulLiteral","src":"13607:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13598:3:88","nodeType":"YulIdentifier","src":"13598:3:88"},"nativeSrc":"13598:14:88","nodeType":"YulFunctionCall","src":"13598:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13624:5:88","nodeType":"YulIdentifier","src":"13624:5:88"},{"kind":"number","nativeSrc":"13631:4:88","nodeType":"YulLiteral","src":"13631:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13620:3:88","nodeType":"YulIdentifier","src":"13620:3:88"},"nativeSrc":"13620:16:88","nodeType":"YulFunctionCall","src":"13620:16:88"}],"functionName":{"name":"mload","nativeSrc":"13614:5:88","nodeType":"YulIdentifier","src":"13614:5:88"},"nativeSrc":"13614:23:88","nodeType":"YulFunctionCall","src":"13614:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13591:6:88","nodeType":"YulIdentifier","src":"13591:6:88"},"nativeSrc":"13591:47:88","nodeType":"YulFunctionCall","src":"13591:47:88"},"nativeSrc":"13591:47:88","nodeType":"YulExpressionStatement","src":"13591:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13658:3:88","nodeType":"YulIdentifier","src":"13658:3:88"},{"kind":"number","nativeSrc":"13663:4:88","nodeType":"YulLiteral","src":"13663:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13654:3:88","nodeType":"YulIdentifier","src":"13654:3:88"},"nativeSrc":"13654:14:88","nodeType":"YulFunctionCall","src":"13654:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13680:5:88","nodeType":"YulIdentifier","src":"13680:5:88"},{"kind":"number","nativeSrc":"13687:4:88","nodeType":"YulLiteral","src":"13687:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13676:3:88","nodeType":"YulIdentifier","src":"13676:3:88"},"nativeSrc":"13676:16:88","nodeType":"YulFunctionCall","src":"13676:16:88"}],"functionName":{"name":"mload","nativeSrc":"13670:5:88","nodeType":"YulIdentifier","src":"13670:5:88"},"nativeSrc":"13670:23:88","nodeType":"YulFunctionCall","src":"13670:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13647:6:88","nodeType":"YulIdentifier","src":"13647:6:88"},"nativeSrc":"13647:47:88","nodeType":"YulFunctionCall","src":"13647:47:88"},"nativeSrc":"13647:47:88","nodeType":"YulExpressionStatement","src":"13647:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13714:3:88","nodeType":"YulIdentifier","src":"13714:3:88"},{"kind":"number","nativeSrc":"13719:4:88","nodeType":"YulLiteral","src":"13719:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"13710:3:88","nodeType":"YulIdentifier","src":"13710:3:88"},"nativeSrc":"13710:14:88","nodeType":"YulFunctionCall","src":"13710:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13736:5:88","nodeType":"YulIdentifier","src":"13736:5:88"},{"kind":"number","nativeSrc":"13743:4:88","nodeType":"YulLiteral","src":"13743:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"13732:3:88","nodeType":"YulIdentifier","src":"13732:3:88"},"nativeSrc":"13732:16:88","nodeType":"YulFunctionCall","src":"13732:16:88"}],"functionName":{"name":"mload","nativeSrc":"13726:5:88","nodeType":"YulIdentifier","src":"13726:5:88"},"nativeSrc":"13726:23:88","nodeType":"YulFunctionCall","src":"13726:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13703:6:88","nodeType":"YulIdentifier","src":"13703:6:88"},"nativeSrc":"13703:47:88","nodeType":"YulFunctionCall","src":"13703:47:88"},"nativeSrc":"13703:47:88","nodeType":"YulExpressionStatement","src":"13703:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13770:3:88","nodeType":"YulIdentifier","src":"13770:3:88"},{"kind":"number","nativeSrc":"13775:4:88","nodeType":"YulLiteral","src":"13775:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"13766:3:88","nodeType":"YulIdentifier","src":"13766:3:88"},"nativeSrc":"13766:14:88","nodeType":"YulFunctionCall","src":"13766:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13792:5:88","nodeType":"YulIdentifier","src":"13792:5:88"},{"kind":"number","nativeSrc":"13799:4:88","nodeType":"YulLiteral","src":"13799:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"13788:3:88","nodeType":"YulIdentifier","src":"13788:3:88"},"nativeSrc":"13788:16:88","nodeType":"YulFunctionCall","src":"13788:16:88"}],"functionName":{"name":"mload","nativeSrc":"13782:5:88","nodeType":"YulIdentifier","src":"13782:5:88"},"nativeSrc":"13782:23:88","nodeType":"YulFunctionCall","src":"13782:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13759:6:88","nodeType":"YulIdentifier","src":"13759:6:88"},"nativeSrc":"13759:47:88","nodeType":"YulFunctionCall","src":"13759:47:88"},"nativeSrc":"13759:47:88","nodeType":"YulExpressionStatement","src":"13759:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13826:3:88","nodeType":"YulIdentifier","src":"13826:3:88"},{"kind":"number","nativeSrc":"13831:4:88","nodeType":"YulLiteral","src":"13831:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"13822:3:88","nodeType":"YulIdentifier","src":"13822:3:88"},"nativeSrc":"13822:14:88","nodeType":"YulFunctionCall","src":"13822:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13848:5:88","nodeType":"YulIdentifier","src":"13848:5:88"},{"kind":"number","nativeSrc":"13855:4:88","nodeType":"YulLiteral","src":"13855:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"13844:3:88","nodeType":"YulIdentifier","src":"13844:3:88"},"nativeSrc":"13844:16:88","nodeType":"YulFunctionCall","src":"13844:16:88"}],"functionName":{"name":"mload","nativeSrc":"13838:5:88","nodeType":"YulIdentifier","src":"13838:5:88"},"nativeSrc":"13838:23:88","nodeType":"YulFunctionCall","src":"13838:23:88"}],"functionName":{"name":"mstore","nativeSrc":"13815:6:88","nodeType":"YulIdentifier","src":"13815:6:88"},"nativeSrc":"13815:47:88","nodeType":"YulFunctionCall","src":"13815:47:88"},"nativeSrc":"13815:47:88","nodeType":"YulExpressionStatement","src":"13815:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13882:3:88","nodeType":"YulIdentifier","src":"13882:3:88"},{"kind":"number","nativeSrc":"13887:6:88","nodeType":"YulLiteral","src":"13887:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"13878:3:88","nodeType":"YulIdentifier","src":"13878:3:88"},"nativeSrc":"13878:16:88","nodeType":"YulFunctionCall","src":"13878:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13906:5:88","nodeType":"YulIdentifier","src":"13906:5:88"},{"kind":"number","nativeSrc":"13913:6:88","nodeType":"YulLiteral","src":"13913:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"13902:3:88","nodeType":"YulIdentifier","src":"13902:3:88"},"nativeSrc":"13902:18:88","nodeType":"YulFunctionCall","src":"13902:18:88"}],"functionName":{"name":"mload","nativeSrc":"13896:5:88","nodeType":"YulIdentifier","src":"13896:5:88"},"nativeSrc":"13896:25:88","nodeType":"YulFunctionCall","src":"13896:25:88"}],"functionName":{"name":"mstore","nativeSrc":"13871:6:88","nodeType":"YulIdentifier","src":"13871:6:88"},"nativeSrc":"13871:51:88","nodeType":"YulFunctionCall","src":"13871:51:88"},"nativeSrc":"13871:51:88","nodeType":"YulExpressionStatement","src":"13871:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13942:3:88","nodeType":"YulIdentifier","src":"13942:3:88"},{"kind":"number","nativeSrc":"13947:6:88","nodeType":"YulLiteral","src":"13947:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"13938:3:88","nodeType":"YulIdentifier","src":"13938:3:88"},"nativeSrc":"13938:16:88","nodeType":"YulFunctionCall","src":"13938:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13966:5:88","nodeType":"YulIdentifier","src":"13966:5:88"},{"kind":"number","nativeSrc":"13973:6:88","nodeType":"YulLiteral","src":"13973:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"13962:3:88","nodeType":"YulIdentifier","src":"13962:3:88"},"nativeSrc":"13962:18:88","nodeType":"YulFunctionCall","src":"13962:18:88"}],"functionName":{"name":"mload","nativeSrc":"13956:5:88","nodeType":"YulIdentifier","src":"13956:5:88"},"nativeSrc":"13956:25:88","nodeType":"YulFunctionCall","src":"13956:25:88"}],"functionName":{"name":"mstore","nativeSrc":"13931:6:88","nodeType":"YulIdentifier","src":"13931:6:88"},"nativeSrc":"13931:51:88","nodeType":"YulFunctionCall","src":"13931:51:88"},"nativeSrc":"13931:51:88","nodeType":"YulExpressionStatement","src":"13931:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14002:3:88","nodeType":"YulIdentifier","src":"14002:3:88"},{"kind":"number","nativeSrc":"14007:6:88","nodeType":"YulLiteral","src":"14007:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"13998:3:88","nodeType":"YulIdentifier","src":"13998:3:88"},"nativeSrc":"13998:16:88","nodeType":"YulFunctionCall","src":"13998:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14026:5:88","nodeType":"YulIdentifier","src":"14026:5:88"},{"kind":"number","nativeSrc":"14033:6:88","nodeType":"YulLiteral","src":"14033:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"14022:3:88","nodeType":"YulIdentifier","src":"14022:3:88"},"nativeSrc":"14022:18:88","nodeType":"YulFunctionCall","src":"14022:18:88"}],"functionName":{"name":"mload","nativeSrc":"14016:5:88","nodeType":"YulIdentifier","src":"14016:5:88"},"nativeSrc":"14016:25:88","nodeType":"YulFunctionCall","src":"14016:25:88"}],"functionName":{"name":"mstore","nativeSrc":"13991:6:88","nodeType":"YulIdentifier","src":"13991:6:88"},"nativeSrc":"13991:51:88","nodeType":"YulFunctionCall","src":"13991:51:88"},"nativeSrc":"13991:51:88","nodeType":"YulExpressionStatement","src":"13991:51:88"},{"nativeSrc":"14051:45:88","nodeType":"YulVariableDeclaration","src":"14051:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14081:5:88","nodeType":"YulIdentifier","src":"14081:5:88"},{"kind":"number","nativeSrc":"14088:6:88","nodeType":"YulLiteral","src":"14088:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"14077:3:88","nodeType":"YulIdentifier","src":"14077:3:88"},"nativeSrc":"14077:18:88","nodeType":"YulFunctionCall","src":"14077:18:88"}],"functionName":{"name":"mload","nativeSrc":"14071:5:88","nodeType":"YulIdentifier","src":"14071:5:88"},"nativeSrc":"14071:25:88","nodeType":"YulFunctionCall","src":"14071:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"14055:12:88","nodeType":"YulTypedName","src":"14055:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"14137:12:88","nodeType":"YulIdentifier","src":"14137:12:88"},{"arguments":[{"name":"pos","nativeSrc":"14155:3:88","nodeType":"YulIdentifier","src":"14155:3:88"},{"kind":"number","nativeSrc":"14160:6:88","nodeType":"YulLiteral","src":"14160:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"14151:3:88","nodeType":"YulIdentifier","src":"14151:3:88"},"nativeSrc":"14151:16:88","nodeType":"YulFunctionCall","src":"14151:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"14105:31:88","nodeType":"YulIdentifier","src":"14105:31:88"},"nativeSrc":"14105:63:88","nodeType":"YulFunctionCall","src":"14105:63:88"},"nativeSrc":"14105:63:88","nodeType":"YulExpressionStatement","src":"14105:63:88"},{"nativeSrc":"14177:47:88","nodeType":"YulVariableDeclaration","src":"14177:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14209:5:88","nodeType":"YulIdentifier","src":"14209:5:88"},{"kind":"number","nativeSrc":"14216:6:88","nodeType":"YulLiteral","src":"14216:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"14205:3:88","nodeType":"YulIdentifier","src":"14205:3:88"},"nativeSrc":"14205:18:88","nodeType":"YulFunctionCall","src":"14205:18:88"}],"functionName":{"name":"mload","nativeSrc":"14199:5:88","nodeType":"YulIdentifier","src":"14199:5:88"},"nativeSrc":"14199:25:88","nodeType":"YulFunctionCall","src":"14199:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"14181:14:88","nodeType":"YulTypedName","src":"14181:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"14251:14:88","nodeType":"YulIdentifier","src":"14251:14:88"},{"arguments":[{"name":"pos","nativeSrc":"14271:3:88","nodeType":"YulIdentifier","src":"14271:3:88"},{"kind":"number","nativeSrc":"14276:6:88","nodeType":"YulLiteral","src":"14276:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"14267:3:88","nodeType":"YulIdentifier","src":"14267:3:88"},"nativeSrc":"14267:16:88","nodeType":"YulFunctionCall","src":"14267:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"14233:17:88","nodeType":"YulIdentifier","src":"14233:17:88"},"nativeSrc":"14233:51:88","nodeType":"YulFunctionCall","src":"14233:51:88"},"nativeSrc":"14233:51:88","nodeType":"YulExpressionStatement","src":"14233:51:88"},{"nativeSrc":"14293:47:88","nodeType":"YulVariableDeclaration","src":"14293:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14325:5:88","nodeType":"YulIdentifier","src":"14325:5:88"},{"kind":"number","nativeSrc":"14332:6:88","nodeType":"YulLiteral","src":"14332:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"14321:3:88","nodeType":"YulIdentifier","src":"14321:3:88"},"nativeSrc":"14321:18:88","nodeType":"YulFunctionCall","src":"14321:18:88"}],"functionName":{"name":"mload","nativeSrc":"14315:5:88","nodeType":"YulIdentifier","src":"14315:5:88"},"nativeSrc":"14315:25:88","nodeType":"YulFunctionCall","src":"14315:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"14297:14:88","nodeType":"YulTypedName","src":"14297:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"14367:14:88","nodeType":"YulIdentifier","src":"14367:14:88"},{"arguments":[{"name":"pos","nativeSrc":"14387:3:88","nodeType":"YulIdentifier","src":"14387:3:88"},{"kind":"number","nativeSrc":"14392:6:88","nodeType":"YulLiteral","src":"14392:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"14383:3:88","nodeType":"YulIdentifier","src":"14383:3:88"},"nativeSrc":"14383:16:88","nodeType":"YulFunctionCall","src":"14383:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"14349:17:88","nodeType":"YulIdentifier","src":"14349:17:88"},"nativeSrc":"14349:51:88","nodeType":"YulFunctionCall","src":"14349:51:88"},"nativeSrc":"14349:51:88","nodeType":"YulExpressionStatement","src":"14349:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"13381:1025:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13419:5:88","nodeType":"YulTypedName","src":"13419:5:88","type":""},{"name":"pos","nativeSrc":"13426:3:88","nodeType":"YulTypedName","src":"13426:3:88","type":""}],"src":"13381:1025:88"},{"body":{"nativeSrc":"14570:99:88","nodeType":"YulBlock","src":"14570:99:88","statements":[{"nativeSrc":"14580:27:88","nodeType":"YulAssignment","src":"14580:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14592:9:88","nodeType":"YulIdentifier","src":"14592:9:88"},{"kind":"number","nativeSrc":"14603:3:88","nodeType":"YulLiteral","src":"14603:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"14588:3:88","nodeType":"YulIdentifier","src":"14588:3:88"},"nativeSrc":"14588:19:88","nodeType":"YulFunctionCall","src":"14588:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14580:4:88","nodeType":"YulIdentifier","src":"14580:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14645:6:88","nodeType":"YulIdentifier","src":"14645:6:88"},{"name":"headStart","nativeSrc":"14653:9:88","nodeType":"YulIdentifier","src":"14653:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"14616:28:88","nodeType":"YulIdentifier","src":"14616:28:88"},"nativeSrc":"14616:47:88","nodeType":"YulFunctionCall","src":"14616:47:88"},"nativeSrc":"14616:47:88","nodeType":"YulExpressionStatement","src":"14616:47:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"14411:258:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14539:9:88","nodeType":"YulTypedName","src":"14539:9:88","type":""},{"name":"value0","nativeSrc":"14550:6:88","nodeType":"YulTypedName","src":"14550:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14561:4:88","nodeType":"YulTypedName","src":"14561:4:88","type":""}],"src":"14411:258:88"},{"body":{"nativeSrc":"14794:419:88","nodeType":"YulBlock","src":"14794:419:88","statements":[{"body":{"nativeSrc":"14841:16:88","nodeType":"YulBlock","src":"14841:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14850:1:88","nodeType":"YulLiteral","src":"14850:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14853:1:88","nodeType":"YulLiteral","src":"14853:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14843:6:88","nodeType":"YulIdentifier","src":"14843:6:88"},"nativeSrc":"14843:12:88","nodeType":"YulFunctionCall","src":"14843:12:88"},"nativeSrc":"14843:12:88","nodeType":"YulExpressionStatement","src":"14843:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14815:7:88","nodeType":"YulIdentifier","src":"14815:7:88"},{"name":"headStart","nativeSrc":"14824:9:88","nodeType":"YulIdentifier","src":"14824:9:88"}],"functionName":{"name":"sub","nativeSrc":"14811:3:88","nodeType":"YulIdentifier","src":"14811:3:88"},"nativeSrc":"14811:23:88","nodeType":"YulFunctionCall","src":"14811:23:88"},{"kind":"number","nativeSrc":"14836:3:88","nodeType":"YulLiteral","src":"14836:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"14807:3:88","nodeType":"YulIdentifier","src":"14807:3:88"},"nativeSrc":"14807:33:88","nodeType":"YulFunctionCall","src":"14807:33:88"},"nativeSrc":"14804:53:88","nodeType":"YulIf","src":"14804:53:88"},{"nativeSrc":"14866:14:88","nodeType":"YulVariableDeclaration","src":"14866:14:88","value":{"kind":"number","nativeSrc":"14879:1:88","nodeType":"YulLiteral","src":"14879:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"14870:5:88","nodeType":"YulTypedName","src":"14870:5:88","type":""}]},{"nativeSrc":"14889:32:88","nodeType":"YulAssignment","src":"14889:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14911:9:88","nodeType":"YulIdentifier","src":"14911:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"14898:12:88","nodeType":"YulIdentifier","src":"14898:12:88"},"nativeSrc":"14898:23:88","nodeType":"YulFunctionCall","src":"14898:23:88"},"variableNames":[{"name":"value","nativeSrc":"14889:5:88","nodeType":"YulIdentifier","src":"14889:5:88"}]},{"nativeSrc":"14930:15:88","nodeType":"YulAssignment","src":"14930:15:88","value":{"name":"value","nativeSrc":"14940:5:88","nodeType":"YulIdentifier","src":"14940:5:88"},"variableNames":[{"name":"value0","nativeSrc":"14930:6:88","nodeType":"YulIdentifier","src":"14930:6:88"}]},{"nativeSrc":"14954:16:88","nodeType":"YulVariableDeclaration","src":"14954:16:88","value":{"kind":"number","nativeSrc":"14969:1:88","nodeType":"YulLiteral","src":"14969:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"14958:7:88","nodeType":"YulTypedName","src":"14958:7:88","type":""}]},{"nativeSrc":"14979:43:88","nodeType":"YulAssignment","src":"14979:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15007:9:88","nodeType":"YulIdentifier","src":"15007:9:88"},{"kind":"number","nativeSrc":"15018:2:88","nodeType":"YulLiteral","src":"15018:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15003:3:88","nodeType":"YulIdentifier","src":"15003:3:88"},"nativeSrc":"15003:18:88","nodeType":"YulFunctionCall","src":"15003:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"14990:12:88","nodeType":"YulIdentifier","src":"14990:12:88"},"nativeSrc":"14990:32:88","nodeType":"YulFunctionCall","src":"14990:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"14979:7:88","nodeType":"YulIdentifier","src":"14979:7:88"}]},{"nativeSrc":"15031:17:88","nodeType":"YulAssignment","src":"15031:17:88","value":{"name":"value_1","nativeSrc":"15041:7:88","nodeType":"YulIdentifier","src":"15041:7:88"},"variableNames":[{"name":"value1","nativeSrc":"15031:6:88","nodeType":"YulIdentifier","src":"15031:6:88"}]},{"nativeSrc":"15057:47:88","nodeType":"YulAssignment","src":"15057:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15089:9:88","nodeType":"YulIdentifier","src":"15089:9:88"},{"kind":"number","nativeSrc":"15100:2:88","nodeType":"YulLiteral","src":"15100:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15085:3:88","nodeType":"YulIdentifier","src":"15085:3:88"},"nativeSrc":"15085:18:88","nodeType":"YulFunctionCall","src":"15085:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"15067:17:88","nodeType":"YulIdentifier","src":"15067:17:88"},"nativeSrc":"15067:37:88","nodeType":"YulFunctionCall","src":"15067:37:88"},"variableNames":[{"name":"value2","nativeSrc":"15057:6:88","nodeType":"YulIdentifier","src":"15057:6:88"}]},{"nativeSrc":"15113:16:88","nodeType":"YulVariableDeclaration","src":"15113:16:88","value":{"kind":"number","nativeSrc":"15128:1:88","nodeType":"YulLiteral","src":"15128:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"15117:7:88","nodeType":"YulTypedName","src":"15117:7:88","type":""}]},{"nativeSrc":"15138:43:88","nodeType":"YulAssignment","src":"15138:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15166:9:88","nodeType":"YulIdentifier","src":"15166:9:88"},{"kind":"number","nativeSrc":"15177:2:88","nodeType":"YulLiteral","src":"15177:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15162:3:88","nodeType":"YulIdentifier","src":"15162:3:88"},"nativeSrc":"15162:18:88","nodeType":"YulFunctionCall","src":"15162:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"15149:12:88","nodeType":"YulIdentifier","src":"15149:12:88"},"nativeSrc":"15149:32:88","nodeType":"YulFunctionCall","src":"15149:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"15138:7:88","nodeType":"YulIdentifier","src":"15138:7:88"}]},{"nativeSrc":"15190:17:88","nodeType":"YulAssignment","src":"15190:17:88","value":{"name":"value_2","nativeSrc":"15200:7:88","nodeType":"YulIdentifier","src":"15200:7:88"},"variableNames":[{"name":"value3","nativeSrc":"15190:6:88","nodeType":"YulIdentifier","src":"15190:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256","nativeSrc":"14674:539:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14736:9:88","nodeType":"YulTypedName","src":"14736:9:88","type":""},{"name":"dataEnd","nativeSrc":"14747:7:88","nodeType":"YulTypedName","src":"14747:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14759:6:88","nodeType":"YulTypedName","src":"14759:6:88","type":""},{"name":"value1","nativeSrc":"14767:6:88","nodeType":"YulTypedName","src":"14767:6:88","type":""},{"name":"value2","nativeSrc":"14775:6:88","nodeType":"YulTypedName","src":"14775:6:88","type":""},{"name":"value3","nativeSrc":"14783:6:88","nodeType":"YulTypedName","src":"14783:6:88","type":""}],"src":"14674:539:88"},{"body":{"nativeSrc":"15320:290:88","nodeType":"YulBlock","src":"15320:290:88","statements":[{"body":{"nativeSrc":"15366:16:88","nodeType":"YulBlock","src":"15366:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15375:1:88","nodeType":"YulLiteral","src":"15375:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15378:1:88","nodeType":"YulLiteral","src":"15378:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15368:6:88","nodeType":"YulIdentifier","src":"15368:6:88"},"nativeSrc":"15368:12:88","nodeType":"YulFunctionCall","src":"15368:12:88"},"nativeSrc":"15368:12:88","nodeType":"YulExpressionStatement","src":"15368:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15341:7:88","nodeType":"YulIdentifier","src":"15341:7:88"},{"name":"headStart","nativeSrc":"15350:9:88","nodeType":"YulIdentifier","src":"15350:9:88"}],"functionName":{"name":"sub","nativeSrc":"15337:3:88","nodeType":"YulIdentifier","src":"15337:3:88"},"nativeSrc":"15337:23:88","nodeType":"YulFunctionCall","src":"15337:23:88"},{"kind":"number","nativeSrc":"15362:2:88","nodeType":"YulLiteral","src":"15362:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15333:3:88","nodeType":"YulIdentifier","src":"15333:3:88"},"nativeSrc":"15333:32:88","nodeType":"YulFunctionCall","src":"15333:32:88"},"nativeSrc":"15330:52:88","nodeType":"YulIf","src":"15330:52:88"},{"nativeSrc":"15391:36:88","nodeType":"YulVariableDeclaration","src":"15391:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15417:9:88","nodeType":"YulIdentifier","src":"15417:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"15404:12:88","nodeType":"YulIdentifier","src":"15404:12:88"},"nativeSrc":"15404:23:88","nodeType":"YulFunctionCall","src":"15404:23:88"},"variables":[{"name":"value","nativeSrc":"15395:5:88","nodeType":"YulTypedName","src":"15395:5:88","type":""}]},{"body":{"nativeSrc":"15461:16:88","nodeType":"YulBlock","src":"15461:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15470:1:88","nodeType":"YulLiteral","src":"15470:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15473:1:88","nodeType":"YulLiteral","src":"15473:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15463:6:88","nodeType":"YulIdentifier","src":"15463:6:88"},"nativeSrc":"15463:12:88","nodeType":"YulFunctionCall","src":"15463:12:88"},"nativeSrc":"15463:12:88","nodeType":"YulExpressionStatement","src":"15463:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15449:5:88","nodeType":"YulIdentifier","src":"15449:5:88"},{"kind":"number","nativeSrc":"15456:2:88","nodeType":"YulLiteral","src":"15456:2:88","type":"","value":"10"}],"functionName":{"name":"lt","nativeSrc":"15446:2:88","nodeType":"YulIdentifier","src":"15446:2:88"},"nativeSrc":"15446:13:88","nodeType":"YulFunctionCall","src":"15446:13:88"}],"functionName":{"name":"iszero","nativeSrc":"15439:6:88","nodeType":"YulIdentifier","src":"15439:6:88"},"nativeSrc":"15439:21:88","nodeType":"YulFunctionCall","src":"15439:21:88"},"nativeSrc":"15436:41:88","nodeType":"YulIf","src":"15436:41:88"},{"nativeSrc":"15486:15:88","nodeType":"YulAssignment","src":"15486:15:88","value":{"name":"value","nativeSrc":"15496:5:88","nodeType":"YulIdentifier","src":"15496:5:88"},"variableNames":[{"name":"value0","nativeSrc":"15486:6:88","nodeType":"YulIdentifier","src":"15486:6:88"}]},{"nativeSrc":"15510:16:88","nodeType":"YulVariableDeclaration","src":"15510:16:88","value":{"kind":"number","nativeSrc":"15525:1:88","nodeType":"YulLiteral","src":"15525:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"15514:7:88","nodeType":"YulTypedName","src":"15514:7:88","type":""}]},{"nativeSrc":"15535:43:88","nodeType":"YulAssignment","src":"15535:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15563:9:88","nodeType":"YulIdentifier","src":"15563:9:88"},{"kind":"number","nativeSrc":"15574:2:88","nodeType":"YulLiteral","src":"15574:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15559:3:88","nodeType":"YulIdentifier","src":"15559:3:88"},"nativeSrc":"15559:18:88","nodeType":"YulFunctionCall","src":"15559:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"15546:12:88","nodeType":"YulIdentifier","src":"15546:12:88"},"nativeSrc":"15546:32:88","nodeType":"YulFunctionCall","src":"15546:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"15535:7:88","nodeType":"YulIdentifier","src":"15535:7:88"}]},{"nativeSrc":"15587:17:88","nodeType":"YulAssignment","src":"15587:17:88","value":{"name":"value_1","nativeSrc":"15597:7:88","nodeType":"YulIdentifier","src":"15597:7:88"},"variableNames":[{"name":"value1","nativeSrc":"15587:6:88","nodeType":"YulIdentifier","src":"15587:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256","nativeSrc":"15218:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15278:9:88","nodeType":"YulTypedName","src":"15278:9:88","type":""},{"name":"dataEnd","nativeSrc":"15289:7:88","nodeType":"YulTypedName","src":"15289:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15301:6:88","nodeType":"YulTypedName","src":"15301:6:88","type":""},{"name":"value1","nativeSrc":"15309:6:88","nodeType":"YulTypedName","src":"15309:6:88","type":""}],"src":"15218:392:88"},{"body":{"nativeSrc":"15766:462:88","nodeType":"YulBlock","src":"15766:462:88","statements":[{"nativeSrc":"15776:27:88","nodeType":"YulAssignment","src":"15776:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15788:9:88","nodeType":"YulIdentifier","src":"15788:9:88"},{"kind":"number","nativeSrc":"15799:3:88","nodeType":"YulLiteral","src":"15799:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"15784:3:88","nodeType":"YulIdentifier","src":"15784:3:88"},"nativeSrc":"15784:19:88","nodeType":"YulFunctionCall","src":"15784:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15776:4:88","nodeType":"YulIdentifier","src":"15776:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15819:9:88","nodeType":"YulIdentifier","src":"15819:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15836:6:88","nodeType":"YulIdentifier","src":"15836:6:88"}],"functionName":{"name":"mload","nativeSrc":"15830:5:88","nodeType":"YulIdentifier","src":"15830:5:88"},"nativeSrc":"15830:13:88","nodeType":"YulFunctionCall","src":"15830:13:88"}],"functionName":{"name":"mstore","nativeSrc":"15812:6:88","nodeType":"YulIdentifier","src":"15812:6:88"},"nativeSrc":"15812:32:88","nodeType":"YulFunctionCall","src":"15812:32:88"},"nativeSrc":"15812:32:88","nodeType":"YulExpressionStatement","src":"15812:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15864:9:88","nodeType":"YulIdentifier","src":"15864:9:88"},{"kind":"number","nativeSrc":"15875:4:88","nodeType":"YulLiteral","src":"15875:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15860:3:88","nodeType":"YulIdentifier","src":"15860:3:88"},"nativeSrc":"15860:20:88","nodeType":"YulFunctionCall","src":"15860:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"15892:6:88","nodeType":"YulIdentifier","src":"15892:6:88"},{"kind":"number","nativeSrc":"15900:4:88","nodeType":"YulLiteral","src":"15900:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15888:3:88","nodeType":"YulIdentifier","src":"15888:3:88"},"nativeSrc":"15888:17:88","nodeType":"YulFunctionCall","src":"15888:17:88"}],"functionName":{"name":"mload","nativeSrc":"15882:5:88","nodeType":"YulIdentifier","src":"15882:5:88"},"nativeSrc":"15882:24:88","nodeType":"YulFunctionCall","src":"15882:24:88"}],"functionName":{"name":"mstore","nativeSrc":"15853:6:88","nodeType":"YulIdentifier","src":"15853:6:88"},"nativeSrc":"15853:54:88","nodeType":"YulFunctionCall","src":"15853:54:88"},"nativeSrc":"15853:54:88","nodeType":"YulExpressionStatement","src":"15853:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15927:9:88","nodeType":"YulIdentifier","src":"15927:9:88"},{"kind":"number","nativeSrc":"15938:4:88","nodeType":"YulLiteral","src":"15938:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15923:3:88","nodeType":"YulIdentifier","src":"15923:3:88"},"nativeSrc":"15923:20:88","nodeType":"YulFunctionCall","src":"15923:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"15955:6:88","nodeType":"YulIdentifier","src":"15955:6:88"},{"kind":"number","nativeSrc":"15963:4:88","nodeType":"YulLiteral","src":"15963:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15951:3:88","nodeType":"YulIdentifier","src":"15951:3:88"},"nativeSrc":"15951:17:88","nodeType":"YulFunctionCall","src":"15951:17:88"}],"functionName":{"name":"mload","nativeSrc":"15945:5:88","nodeType":"YulIdentifier","src":"15945:5:88"},"nativeSrc":"15945:24:88","nodeType":"YulFunctionCall","src":"15945:24:88"}],"functionName":{"name":"mstore","nativeSrc":"15916:6:88","nodeType":"YulIdentifier","src":"15916:6:88"},"nativeSrc":"15916:54:88","nodeType":"YulFunctionCall","src":"15916:54:88"},"nativeSrc":"15916:54:88","nodeType":"YulExpressionStatement","src":"15916:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15990:9:88","nodeType":"YulIdentifier","src":"15990:9:88"},{"kind":"number","nativeSrc":"16001:4:88","nodeType":"YulLiteral","src":"16001:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15986:3:88","nodeType":"YulIdentifier","src":"15986:3:88"},"nativeSrc":"15986:20:88","nodeType":"YulFunctionCall","src":"15986:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"16018:6:88","nodeType":"YulIdentifier","src":"16018:6:88"},{"kind":"number","nativeSrc":"16026:4:88","nodeType":"YulLiteral","src":"16026:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16014:3:88","nodeType":"YulIdentifier","src":"16014:3:88"},"nativeSrc":"16014:17:88","nodeType":"YulFunctionCall","src":"16014:17:88"}],"functionName":{"name":"mload","nativeSrc":"16008:5:88","nodeType":"YulIdentifier","src":"16008:5:88"},"nativeSrc":"16008:24:88","nodeType":"YulFunctionCall","src":"16008:24:88"}],"functionName":{"name":"mstore","nativeSrc":"15979:6:88","nodeType":"YulIdentifier","src":"15979:6:88"},"nativeSrc":"15979:54:88","nodeType":"YulFunctionCall","src":"15979:54:88"},"nativeSrc":"15979:54:88","nodeType":"YulExpressionStatement","src":"15979:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16053:9:88","nodeType":"YulIdentifier","src":"16053:9:88"},{"kind":"number","nativeSrc":"16064:4:88","nodeType":"YulLiteral","src":"16064:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16049:3:88","nodeType":"YulIdentifier","src":"16049:3:88"},"nativeSrc":"16049:20:88","nodeType":"YulFunctionCall","src":"16049:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"16081:6:88","nodeType":"YulIdentifier","src":"16081:6:88"},{"kind":"number","nativeSrc":"16089:4:88","nodeType":"YulLiteral","src":"16089:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16077:3:88","nodeType":"YulIdentifier","src":"16077:3:88"},"nativeSrc":"16077:17:88","nodeType":"YulFunctionCall","src":"16077:17:88"}],"functionName":{"name":"mload","nativeSrc":"16071:5:88","nodeType":"YulIdentifier","src":"16071:5:88"},"nativeSrc":"16071:24:88","nodeType":"YulFunctionCall","src":"16071:24:88"}],"functionName":{"name":"mstore","nativeSrc":"16042:6:88","nodeType":"YulIdentifier","src":"16042:6:88"},"nativeSrc":"16042:54:88","nodeType":"YulFunctionCall","src":"16042:54:88"},"nativeSrc":"16042:54:88","nodeType":"YulExpressionStatement","src":"16042:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16116:9:88","nodeType":"YulIdentifier","src":"16116:9:88"},{"kind":"number","nativeSrc":"16127:4:88","nodeType":"YulLiteral","src":"16127:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16112:3:88","nodeType":"YulIdentifier","src":"16112:3:88"},"nativeSrc":"16112:20:88","nodeType":"YulFunctionCall","src":"16112:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"16144:6:88","nodeType":"YulIdentifier","src":"16144:6:88"},{"kind":"number","nativeSrc":"16152:4:88","nodeType":"YulLiteral","src":"16152:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16140:3:88","nodeType":"YulIdentifier","src":"16140:3:88"},"nativeSrc":"16140:17:88","nodeType":"YulFunctionCall","src":"16140:17:88"}],"functionName":{"name":"mload","nativeSrc":"16134:5:88","nodeType":"YulIdentifier","src":"16134:5:88"},"nativeSrc":"16134:24:88","nodeType":"YulFunctionCall","src":"16134:24:88"}],"functionName":{"name":"mstore","nativeSrc":"16105:6:88","nodeType":"YulIdentifier","src":"16105:6:88"},"nativeSrc":"16105:54:88","nodeType":"YulFunctionCall","src":"16105:54:88"},"nativeSrc":"16105:54:88","nodeType":"YulExpressionStatement","src":"16105:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16179:9:88","nodeType":"YulIdentifier","src":"16179:9:88"},{"kind":"number","nativeSrc":"16190:4:88","nodeType":"YulLiteral","src":"16190:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16175:3:88","nodeType":"YulIdentifier","src":"16175:3:88"},"nativeSrc":"16175:20:88","nodeType":"YulFunctionCall","src":"16175:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"16207:6:88","nodeType":"YulIdentifier","src":"16207:6:88"},{"kind":"number","nativeSrc":"16215:4:88","nodeType":"YulLiteral","src":"16215:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16203:3:88","nodeType":"YulIdentifier","src":"16203:3:88"},"nativeSrc":"16203:17:88","nodeType":"YulFunctionCall","src":"16203:17:88"}],"functionName":{"name":"mload","nativeSrc":"16197:5:88","nodeType":"YulIdentifier","src":"16197:5:88"},"nativeSrc":"16197:24:88","nodeType":"YulFunctionCall","src":"16197:24:88"}],"functionName":{"name":"mstore","nativeSrc":"16168:6:88","nodeType":"YulIdentifier","src":"16168:6:88"},"nativeSrc":"16168:54:88","nodeType":"YulFunctionCall","src":"16168:54:88"},"nativeSrc":"16168:54:88","nodeType":"YulExpressionStatement","src":"16168:54:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"15615:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15735:9:88","nodeType":"YulTypedName","src":"15735:9:88","type":""},{"name":"value0","nativeSrc":"15746:6:88","nodeType":"YulTypedName","src":"15746:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15757:4:88","nodeType":"YulTypedName","src":"15757:4:88","type":""}],"src":"15615:613:88"},{"body":{"nativeSrc":"16384:394:88","nodeType":"YulBlock","src":"16384:394:88","statements":[{"body":{"nativeSrc":"16431:16:88","nodeType":"YulBlock","src":"16431:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16440:1:88","nodeType":"YulLiteral","src":"16440:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"16443:1:88","nodeType":"YulLiteral","src":"16443:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16433:6:88","nodeType":"YulIdentifier","src":"16433:6:88"},"nativeSrc":"16433:12:88","nodeType":"YulFunctionCall","src":"16433:12:88"},"nativeSrc":"16433:12:88","nodeType":"YulExpressionStatement","src":"16433:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16405:7:88","nodeType":"YulIdentifier","src":"16405:7:88"},{"name":"headStart","nativeSrc":"16414:9:88","nodeType":"YulIdentifier","src":"16414:9:88"}],"functionName":{"name":"sub","nativeSrc":"16401:3:88","nodeType":"YulIdentifier","src":"16401:3:88"},"nativeSrc":"16401:23:88","nodeType":"YulFunctionCall","src":"16401:23:88"},{"kind":"number","nativeSrc":"16426:3:88","nodeType":"YulLiteral","src":"16426:3:88","type":"","value":"416"}],"functionName":{"name":"slt","nativeSrc":"16397:3:88","nodeType":"YulIdentifier","src":"16397:3:88"},"nativeSrc":"16397:33:88","nodeType":"YulFunctionCall","src":"16397:33:88"},"nativeSrc":"16394:53:88","nodeType":"YulIf","src":"16394:53:88"},{"nativeSrc":"16456:14:88","nodeType":"YulVariableDeclaration","src":"16456:14:88","value":{"kind":"number","nativeSrc":"16469:1:88","nodeType":"YulLiteral","src":"16469:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"16460:5:88","nodeType":"YulTypedName","src":"16460:5:88","type":""}]},{"nativeSrc":"16479:32:88","nodeType":"YulAssignment","src":"16479:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16501:9:88","nodeType":"YulIdentifier","src":"16501:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"16488:12:88","nodeType":"YulIdentifier","src":"16488:12:88"},"nativeSrc":"16488:23:88","nodeType":"YulFunctionCall","src":"16488:23:88"},"variableNames":[{"name":"value","nativeSrc":"16479:5:88","nodeType":"YulIdentifier","src":"16479:5:88"}]},{"nativeSrc":"16520:15:88","nodeType":"YulAssignment","src":"16520:15:88","value":{"name":"value","nativeSrc":"16530:5:88","nodeType":"YulIdentifier","src":"16530:5:88"},"variableNames":[{"name":"value0","nativeSrc":"16520:6:88","nodeType":"YulIdentifier","src":"16520:6:88"}]},{"nativeSrc":"16544:16:88","nodeType":"YulVariableDeclaration","src":"16544:16:88","value":{"kind":"number","nativeSrc":"16559:1:88","nodeType":"YulLiteral","src":"16559:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"16548:7:88","nodeType":"YulTypedName","src":"16548:7:88","type":""}]},{"nativeSrc":"16569:43:88","nodeType":"YulAssignment","src":"16569:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16597:9:88","nodeType":"YulIdentifier","src":"16597:9:88"},{"kind":"number","nativeSrc":"16608:2:88","nodeType":"YulLiteral","src":"16608:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16593:3:88","nodeType":"YulIdentifier","src":"16593:3:88"},"nativeSrc":"16593:18:88","nodeType":"YulFunctionCall","src":"16593:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16580:12:88","nodeType":"YulIdentifier","src":"16580:12:88"},"nativeSrc":"16580:32:88","nodeType":"YulFunctionCall","src":"16580:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"16569:7:88","nodeType":"YulIdentifier","src":"16569:7:88"}]},{"nativeSrc":"16621:17:88","nodeType":"YulAssignment","src":"16621:17:88","value":{"name":"value_1","nativeSrc":"16631:7:88","nodeType":"YulIdentifier","src":"16631:7:88"},"variableNames":[{"name":"value1","nativeSrc":"16621:6:88","nodeType":"YulIdentifier","src":"16621:6:88"}]},{"nativeSrc":"16647:47:88","nodeType":"YulAssignment","src":"16647:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16679:9:88","nodeType":"YulIdentifier","src":"16679:9:88"},{"kind":"number","nativeSrc":"16690:2:88","nodeType":"YulLiteral","src":"16690:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16675:3:88","nodeType":"YulIdentifier","src":"16675:3:88"},"nativeSrc":"16675:18:88","nodeType":"YulFunctionCall","src":"16675:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"16657:17:88","nodeType":"YulIdentifier","src":"16657:17:88"},"nativeSrc":"16657:37:88","nodeType":"YulFunctionCall","src":"16657:37:88"},"variableNames":[{"name":"value2","nativeSrc":"16647:6:88","nodeType":"YulIdentifier","src":"16647:6:88"}]},{"nativeSrc":"16703:69:88","nodeType":"YulAssignment","src":"16703:69:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16748:9:88","nodeType":"YulIdentifier","src":"16748:9:88"},{"kind":"number","nativeSrc":"16759:2:88","nodeType":"YulLiteral","src":"16759:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16744:3:88","nodeType":"YulIdentifier","src":"16744:3:88"},"nativeSrc":"16744:18:88","nodeType":"YulFunctionCall","src":"16744:18:88"},{"name":"dataEnd","nativeSrc":"16764:7:88","nodeType":"YulIdentifier","src":"16764:7:88"}],"functionName":{"name":"abi_decode_struct_PackedParams","nativeSrc":"16713:30:88","nodeType":"YulIdentifier","src":"16713:30:88"},"nativeSrc":"16713:59:88","nodeType":"YulFunctionCall","src":"16713:59:88"},"variableNames":[{"name":"value3","nativeSrc":"16703:6:88","nodeType":"YulIdentifier","src":"16703:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40t_struct$_PackedParams_$20220_memory_ptr","nativeSrc":"16233:545:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16326:9:88","nodeType":"YulTypedName","src":"16326:9:88","type":""},{"name":"dataEnd","nativeSrc":"16337:7:88","nodeType":"YulTypedName","src":"16337:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16349:6:88","nodeType":"YulTypedName","src":"16349:6:88","type":""},{"name":"value1","nativeSrc":"16357:6:88","nodeType":"YulTypedName","src":"16357:6:88","type":""},{"name":"value2","nativeSrc":"16365:6:88","nodeType":"YulTypedName","src":"16365:6:88","type":""},{"name":"value3","nativeSrc":"16373:6:88","nodeType":"YulTypedName","src":"16373:6:88","type":""}],"src":"16233:545:88"},{"body":{"nativeSrc":"16907:102:88","nodeType":"YulBlock","src":"16907:102:88","statements":[{"nativeSrc":"16917:26:88","nodeType":"YulAssignment","src":"16917:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16929:9:88","nodeType":"YulIdentifier","src":"16929:9:88"},{"kind":"number","nativeSrc":"16940:2:88","nodeType":"YulLiteral","src":"16940:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16925:3:88","nodeType":"YulIdentifier","src":"16925:3:88"},"nativeSrc":"16925:18:88","nodeType":"YulFunctionCall","src":"16925:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16917:4:88","nodeType":"YulIdentifier","src":"16917:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16959:9:88","nodeType":"YulIdentifier","src":"16959:9:88"},{"arguments":[{"name":"value0","nativeSrc":"16974:6:88","nodeType":"YulIdentifier","src":"16974:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16990:3:88","nodeType":"YulLiteral","src":"16990:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"16995:1:88","nodeType":"YulLiteral","src":"16995:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16986:3:88","nodeType":"YulIdentifier","src":"16986:3:88"},"nativeSrc":"16986:11:88","nodeType":"YulFunctionCall","src":"16986:11:88"},{"kind":"number","nativeSrc":"16999:1:88","nodeType":"YulLiteral","src":"16999:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16982:3:88","nodeType":"YulIdentifier","src":"16982:3:88"},"nativeSrc":"16982:19:88","nodeType":"YulFunctionCall","src":"16982:19:88"}],"functionName":{"name":"and","nativeSrc":"16970:3:88","nodeType":"YulIdentifier","src":"16970:3:88"},"nativeSrc":"16970:32:88","nodeType":"YulFunctionCall","src":"16970:32:88"}],"functionName":{"name":"mstore","nativeSrc":"16952:6:88","nodeType":"YulIdentifier","src":"16952:6:88"},"nativeSrc":"16952:51:88","nodeType":"YulFunctionCall","src":"16952:51:88"},"nativeSrc":"16952:51:88","nodeType":"YulExpressionStatement","src":"16952:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"16783:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16876:9:88","nodeType":"YulTypedName","src":"16876:9:88","type":""},{"name":"value0","nativeSrc":"16887:6:88","nodeType":"YulTypedName","src":"16887:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16898:4:88","nodeType":"YulTypedName","src":"16898:4:88","type":""}],"src":"16783:226:88"},{"body":{"nativeSrc":"17069:325:88","nodeType":"YulBlock","src":"17069:325:88","statements":[{"nativeSrc":"17079:22:88","nodeType":"YulAssignment","src":"17079:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"17093:1:88","nodeType":"YulLiteral","src":"17093:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"17096:4:88","nodeType":"YulIdentifier","src":"17096:4:88"}],"functionName":{"name":"shr","nativeSrc":"17089:3:88","nodeType":"YulIdentifier","src":"17089:3:88"},"nativeSrc":"17089:12:88","nodeType":"YulFunctionCall","src":"17089:12:88"},"variableNames":[{"name":"length","nativeSrc":"17079:6:88","nodeType":"YulIdentifier","src":"17079:6:88"}]},{"nativeSrc":"17110:38:88","nodeType":"YulVariableDeclaration","src":"17110:38:88","value":{"arguments":[{"name":"data","nativeSrc":"17140:4:88","nodeType":"YulIdentifier","src":"17140:4:88"},{"kind":"number","nativeSrc":"17146:1:88","nodeType":"YulLiteral","src":"17146:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17136:3:88","nodeType":"YulIdentifier","src":"17136:3:88"},"nativeSrc":"17136:12:88","nodeType":"YulFunctionCall","src":"17136:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"17114:18:88","nodeType":"YulTypedName","src":"17114:18:88","type":""}]},{"body":{"nativeSrc":"17187:31:88","nodeType":"YulBlock","src":"17187:31:88","statements":[{"nativeSrc":"17189:27:88","nodeType":"YulAssignment","src":"17189:27:88","value":{"arguments":[{"name":"length","nativeSrc":"17203:6:88","nodeType":"YulIdentifier","src":"17203:6:88"},{"kind":"number","nativeSrc":"17211:4:88","nodeType":"YulLiteral","src":"17211:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"17199:3:88","nodeType":"YulIdentifier","src":"17199:3:88"},"nativeSrc":"17199:17:88","nodeType":"YulFunctionCall","src":"17199:17:88"},"variableNames":[{"name":"length","nativeSrc":"17189:6:88","nodeType":"YulIdentifier","src":"17189:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17167:18:88","nodeType":"YulIdentifier","src":"17167:18:88"}],"functionName":{"name":"iszero","nativeSrc":"17160:6:88","nodeType":"YulIdentifier","src":"17160:6:88"},"nativeSrc":"17160:26:88","nodeType":"YulFunctionCall","src":"17160:26:88"},"nativeSrc":"17157:61:88","nodeType":"YulIf","src":"17157:61:88"},{"body":{"nativeSrc":"17277:111:88","nodeType":"YulBlock","src":"17277:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17298:1:88","nodeType":"YulLiteral","src":"17298:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"17305:3:88","nodeType":"YulLiteral","src":"17305:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"17310:10:88","nodeType":"YulLiteral","src":"17310:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"17301:3:88","nodeType":"YulIdentifier","src":"17301:3:88"},"nativeSrc":"17301:20:88","nodeType":"YulFunctionCall","src":"17301:20:88"}],"functionName":{"name":"mstore","nativeSrc":"17291:6:88","nodeType":"YulIdentifier","src":"17291:6:88"},"nativeSrc":"17291:31:88","nodeType":"YulFunctionCall","src":"17291:31:88"},"nativeSrc":"17291:31:88","nodeType":"YulExpressionStatement","src":"17291:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17342:1:88","nodeType":"YulLiteral","src":"17342:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"17345:4:88","nodeType":"YulLiteral","src":"17345:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17335:6:88","nodeType":"YulIdentifier","src":"17335:6:88"},"nativeSrc":"17335:15:88","nodeType":"YulFunctionCall","src":"17335:15:88"},"nativeSrc":"17335:15:88","nodeType":"YulExpressionStatement","src":"17335:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17370:1:88","nodeType":"YulLiteral","src":"17370:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17373:4:88","nodeType":"YulLiteral","src":"17373:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17363:6:88","nodeType":"YulIdentifier","src":"17363:6:88"},"nativeSrc":"17363:15:88","nodeType":"YulFunctionCall","src":"17363:15:88"},"nativeSrc":"17363:15:88","nodeType":"YulExpressionStatement","src":"17363:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17233:18:88","nodeType":"YulIdentifier","src":"17233:18:88"},{"arguments":[{"name":"length","nativeSrc":"17256:6:88","nodeType":"YulIdentifier","src":"17256:6:88"},{"kind":"number","nativeSrc":"17264:2:88","nodeType":"YulLiteral","src":"17264:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17253:2:88","nodeType":"YulIdentifier","src":"17253:2:88"},"nativeSrc":"17253:14:88","nodeType":"YulFunctionCall","src":"17253:14:88"}],"functionName":{"name":"eq","nativeSrc":"17230:2:88","nodeType":"YulIdentifier","src":"17230:2:88"},"nativeSrc":"17230:38:88","nodeType":"YulFunctionCall","src":"17230:38:88"},"nativeSrc":"17227:161:88","nodeType":"YulIf","src":"17227:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"17014:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17049:4:88","nodeType":"YulTypedName","src":"17049:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17058:6:88","nodeType":"YulTypedName","src":"17058:6:88","type":""}],"src":"17014:380:88"},{"body":{"nativeSrc":"17504:170:88","nodeType":"YulBlock","src":"17504:170:88","statements":[{"body":{"nativeSrc":"17550:16:88","nodeType":"YulBlock","src":"17550:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17559:1:88","nodeType":"YulLiteral","src":"17559:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17562:1:88","nodeType":"YulLiteral","src":"17562:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17552:6:88","nodeType":"YulIdentifier","src":"17552:6:88"},"nativeSrc":"17552:12:88","nodeType":"YulFunctionCall","src":"17552:12:88"},"nativeSrc":"17552:12:88","nodeType":"YulExpressionStatement","src":"17552:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17525:7:88","nodeType":"YulIdentifier","src":"17525:7:88"},{"name":"headStart","nativeSrc":"17534:9:88","nodeType":"YulIdentifier","src":"17534:9:88"}],"functionName":{"name":"sub","nativeSrc":"17521:3:88","nodeType":"YulIdentifier","src":"17521:3:88"},"nativeSrc":"17521:23:88","nodeType":"YulFunctionCall","src":"17521:23:88"},{"kind":"number","nativeSrc":"17546:2:88","nodeType":"YulLiteral","src":"17546:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17517:3:88","nodeType":"YulIdentifier","src":"17517:3:88"},"nativeSrc":"17517:32:88","nodeType":"YulFunctionCall","src":"17517:32:88"},"nativeSrc":"17514:52:88","nodeType":"YulIf","src":"17514:52:88"},{"nativeSrc":"17575:29:88","nodeType":"YulVariableDeclaration","src":"17575:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17594:9:88","nodeType":"YulIdentifier","src":"17594:9:88"}],"functionName":{"name":"mload","nativeSrc":"17588:5:88","nodeType":"YulIdentifier","src":"17588:5:88"},"nativeSrc":"17588:16:88","nodeType":"YulFunctionCall","src":"17588:16:88"},"variables":[{"name":"value","nativeSrc":"17579:5:88","nodeType":"YulTypedName","src":"17579:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17638:5:88","nodeType":"YulIdentifier","src":"17638:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"17613:24:88","nodeType":"YulIdentifier","src":"17613:24:88"},"nativeSrc":"17613:31:88","nodeType":"YulFunctionCall","src":"17613:31:88"},"nativeSrc":"17613:31:88","nodeType":"YulExpressionStatement","src":"17613:31:88"},{"nativeSrc":"17653:15:88","nodeType":"YulAssignment","src":"17653:15:88","value":{"name":"value","nativeSrc":"17663:5:88","nodeType":"YulIdentifier","src":"17663:5:88"},"variableNames":[{"name":"value0","nativeSrc":"17653:6:88","nodeType":"YulIdentifier","src":"17653:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"17399:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17470:9:88","nodeType":"YulTypedName","src":"17470:9:88","type":""},{"name":"dataEnd","nativeSrc":"17481:7:88","nodeType":"YulTypedName","src":"17481:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17493:6:88","nodeType":"YulTypedName","src":"17493:6:88","type":""}],"src":"17399:275:88"},{"body":{"nativeSrc":"17886:318:88","nodeType":"YulBlock","src":"17886:318:88","statements":[{"nativeSrc":"17896:27:88","nodeType":"YulAssignment","src":"17896:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17908:9:88","nodeType":"YulIdentifier","src":"17908:9:88"},{"kind":"number","nativeSrc":"17919:3:88","nodeType":"YulLiteral","src":"17919:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"17904:3:88","nodeType":"YulIdentifier","src":"17904:3:88"},"nativeSrc":"17904:19:88","nodeType":"YulFunctionCall","src":"17904:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17896:4:88","nodeType":"YulIdentifier","src":"17896:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17939:9:88","nodeType":"YulIdentifier","src":"17939:9:88"},{"arguments":[{"name":"value0","nativeSrc":"17954:6:88","nodeType":"YulIdentifier","src":"17954:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17970:3:88","nodeType":"YulLiteral","src":"17970:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"17975:1:88","nodeType":"YulLiteral","src":"17975:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17966:3:88","nodeType":"YulIdentifier","src":"17966:3:88"},"nativeSrc":"17966:11:88","nodeType":"YulFunctionCall","src":"17966:11:88"},{"kind":"number","nativeSrc":"17979:1:88","nodeType":"YulLiteral","src":"17979:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17962:3:88","nodeType":"YulIdentifier","src":"17962:3:88"},"nativeSrc":"17962:19:88","nodeType":"YulFunctionCall","src":"17962:19:88"}],"functionName":{"name":"and","nativeSrc":"17950:3:88","nodeType":"YulIdentifier","src":"17950:3:88"},"nativeSrc":"17950:32:88","nodeType":"YulFunctionCall","src":"17950:32:88"}],"functionName":{"name":"mstore","nativeSrc":"17932:6:88","nodeType":"YulIdentifier","src":"17932:6:88"},"nativeSrc":"17932:51:88","nodeType":"YulFunctionCall","src":"17932:51:88"},"nativeSrc":"17932:51:88","nodeType":"YulExpressionStatement","src":"17932:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18003:9:88","nodeType":"YulIdentifier","src":"18003:9:88"},{"kind":"number","nativeSrc":"18014:2:88","nodeType":"YulLiteral","src":"18014:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17999:3:88","nodeType":"YulIdentifier","src":"17999:3:88"},"nativeSrc":"17999:18:88","nodeType":"YulFunctionCall","src":"17999:18:88"},{"name":"value1","nativeSrc":"18019:6:88","nodeType":"YulIdentifier","src":"18019:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17992:6:88","nodeType":"YulIdentifier","src":"17992:6:88"},"nativeSrc":"17992:34:88","nodeType":"YulFunctionCall","src":"17992:34:88"},"nativeSrc":"17992:34:88","nodeType":"YulExpressionStatement","src":"17992:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18046:9:88","nodeType":"YulIdentifier","src":"18046:9:88"},{"kind":"number","nativeSrc":"18057:2:88","nodeType":"YulLiteral","src":"18057:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18042:3:88","nodeType":"YulIdentifier","src":"18042:3:88"},"nativeSrc":"18042:18:88","nodeType":"YulFunctionCall","src":"18042:18:88"},{"name":"value2","nativeSrc":"18062:6:88","nodeType":"YulIdentifier","src":"18062:6:88"}],"functionName":{"name":"mstore","nativeSrc":"18035:6:88","nodeType":"YulIdentifier","src":"18035:6:88"},"nativeSrc":"18035:34:88","nodeType":"YulFunctionCall","src":"18035:34:88"},"nativeSrc":"18035:34:88","nodeType":"YulExpressionStatement","src":"18035:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18089:9:88","nodeType":"YulIdentifier","src":"18089:9:88"},{"kind":"number","nativeSrc":"18100:2:88","nodeType":"YulLiteral","src":"18100:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18085:3:88","nodeType":"YulIdentifier","src":"18085:3:88"},"nativeSrc":"18085:18:88","nodeType":"YulFunctionCall","src":"18085:18:88"},{"arguments":[{"name":"value3","nativeSrc":"18109:6:88","nodeType":"YulIdentifier","src":"18109:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18125:3:88","nodeType":"YulLiteral","src":"18125:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"18130:1:88","nodeType":"YulLiteral","src":"18130:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"18121:3:88","nodeType":"YulIdentifier","src":"18121:3:88"},"nativeSrc":"18121:11:88","nodeType":"YulFunctionCall","src":"18121:11:88"},{"kind":"number","nativeSrc":"18134:1:88","nodeType":"YulLiteral","src":"18134:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"18117:3:88","nodeType":"YulIdentifier","src":"18117:3:88"},"nativeSrc":"18117:19:88","nodeType":"YulFunctionCall","src":"18117:19:88"}],"functionName":{"name":"and","nativeSrc":"18105:3:88","nodeType":"YulIdentifier","src":"18105:3:88"},"nativeSrc":"18105:32:88","nodeType":"YulFunctionCall","src":"18105:32:88"}],"functionName":{"name":"mstore","nativeSrc":"18078:6:88","nodeType":"YulIdentifier","src":"18078:6:88"},"nativeSrc":"18078:60:88","nodeType":"YulFunctionCall","src":"18078:60:88"},"nativeSrc":"18078:60:88","nodeType":"YulExpressionStatement","src":"18078:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18158:9:88","nodeType":"YulIdentifier","src":"18158:9:88"},{"kind":"number","nativeSrc":"18169:3:88","nodeType":"YulLiteral","src":"18169:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18154:3:88","nodeType":"YulIdentifier","src":"18154:3:88"},"nativeSrc":"18154:19:88","nodeType":"YulFunctionCall","src":"18154:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"18189:6:88","nodeType":"YulIdentifier","src":"18189:6:88"}],"functionName":{"name":"iszero","nativeSrc":"18182:6:88","nodeType":"YulIdentifier","src":"18182:6:88"},"nativeSrc":"18182:14:88","nodeType":"YulFunctionCall","src":"18182:14:88"}],"functionName":{"name":"iszero","nativeSrc":"18175:6:88","nodeType":"YulIdentifier","src":"18175:6:88"},"nativeSrc":"18175:22:88","nodeType":"YulFunctionCall","src":"18175:22:88"}],"functionName":{"name":"mstore","nativeSrc":"18147:6:88","nodeType":"YulIdentifier","src":"18147:6:88"},"nativeSrc":"18147:51:88","nodeType":"YulFunctionCall","src":"18147:51:88"},"nativeSrc":"18147:51:88","nodeType":"YulExpressionStatement","src":"18147:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"17679:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17823:9:88","nodeType":"YulTypedName","src":"17823:9:88","type":""},{"name":"value4","nativeSrc":"17834:6:88","nodeType":"YulTypedName","src":"17834:6:88","type":""},{"name":"value3","nativeSrc":"17842:6:88","nodeType":"YulTypedName","src":"17842:6:88","type":""},{"name":"value2","nativeSrc":"17850:6:88","nodeType":"YulTypedName","src":"17850:6:88","type":""},{"name":"value1","nativeSrc":"17858:6:88","nodeType":"YulTypedName","src":"17858:6:88","type":""},{"name":"value0","nativeSrc":"17866:6:88","nodeType":"YulTypedName","src":"17866:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17877:4:88","nodeType":"YulTypedName","src":"17877:4:88","type":""}],"src":"17679:525:88"},{"body":{"nativeSrc":"18383:234:88","nodeType":"YulBlock","src":"18383:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18400:9:88","nodeType":"YulIdentifier","src":"18400:9:88"},{"kind":"number","nativeSrc":"18411:2:88","nodeType":"YulLiteral","src":"18411:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18393:6:88","nodeType":"YulIdentifier","src":"18393:6:88"},"nativeSrc":"18393:21:88","nodeType":"YulFunctionCall","src":"18393:21:88"},"nativeSrc":"18393:21:88","nodeType":"YulExpressionStatement","src":"18393:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18434:9:88","nodeType":"YulIdentifier","src":"18434:9:88"},{"kind":"number","nativeSrc":"18445:2:88","nodeType":"YulLiteral","src":"18445:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18430:3:88","nodeType":"YulIdentifier","src":"18430:3:88"},"nativeSrc":"18430:18:88","nodeType":"YulFunctionCall","src":"18430:18:88"},{"kind":"number","nativeSrc":"18450:2:88","nodeType":"YulLiteral","src":"18450:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"18423:6:88","nodeType":"YulIdentifier","src":"18423:6:88"},"nativeSrc":"18423:30:88","nodeType":"YulFunctionCall","src":"18423:30:88"},"nativeSrc":"18423:30:88","nodeType":"YulExpressionStatement","src":"18423:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18473:9:88","nodeType":"YulIdentifier","src":"18473:9:88"},{"kind":"number","nativeSrc":"18484:2:88","nodeType":"YulLiteral","src":"18484:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18469:3:88","nodeType":"YulIdentifier","src":"18469:3:88"},"nativeSrc":"18469:18:88","nodeType":"YulFunctionCall","src":"18469:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"18489:34:88","nodeType":"YulLiteral","src":"18489:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"18462:6:88","nodeType":"YulIdentifier","src":"18462:6:88"},"nativeSrc":"18462:62:88","nodeType":"YulFunctionCall","src":"18462:62:88"},"nativeSrc":"18462:62:88","nodeType":"YulExpressionStatement","src":"18462:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18544:9:88","nodeType":"YulIdentifier","src":"18544:9:88"},{"kind":"number","nativeSrc":"18555:2:88","nodeType":"YulLiteral","src":"18555:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18540:3:88","nodeType":"YulIdentifier","src":"18540:3:88"},"nativeSrc":"18540:18:88","nodeType":"YulFunctionCall","src":"18540:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"18560:14:88","nodeType":"YulLiteral","src":"18560:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"18533:6:88","nodeType":"YulIdentifier","src":"18533:6:88"},"nativeSrc":"18533:42:88","nodeType":"YulFunctionCall","src":"18533:42:88"},"nativeSrc":"18533:42:88","nodeType":"YulExpressionStatement","src":"18533:42:88"},{"nativeSrc":"18584:27:88","nodeType":"YulAssignment","src":"18584:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18596:9:88","nodeType":"YulIdentifier","src":"18596:9:88"},{"kind":"number","nativeSrc":"18607:3:88","nodeType":"YulLiteral","src":"18607:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18592:3:88","nodeType":"YulIdentifier","src":"18592:3:88"},"nativeSrc":"18592:19:88","nodeType":"YulFunctionCall","src":"18592:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18584:4:88","nodeType":"YulIdentifier","src":"18584:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18209:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18360:9:88","nodeType":"YulTypedName","src":"18360:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18374:4:88","nodeType":"YulTypedName","src":"18374:4:88","type":""}],"src":"18209:408:88"},{"body":{"nativeSrc":"18796:234:88","nodeType":"YulBlock","src":"18796:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18813:9:88","nodeType":"YulIdentifier","src":"18813:9:88"},{"kind":"number","nativeSrc":"18824:2:88","nodeType":"YulLiteral","src":"18824:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18806:6:88","nodeType":"YulIdentifier","src":"18806:6:88"},"nativeSrc":"18806:21:88","nodeType":"YulFunctionCall","src":"18806:21:88"},"nativeSrc":"18806:21:88","nodeType":"YulExpressionStatement","src":"18806:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18847:9:88","nodeType":"YulIdentifier","src":"18847:9:88"},{"kind":"number","nativeSrc":"18858:2:88","nodeType":"YulLiteral","src":"18858:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18843:3:88","nodeType":"YulIdentifier","src":"18843:3:88"},"nativeSrc":"18843:18:88","nodeType":"YulFunctionCall","src":"18843:18:88"},{"kind":"number","nativeSrc":"18863:2:88","nodeType":"YulLiteral","src":"18863:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"18836:6:88","nodeType":"YulIdentifier","src":"18836:6:88"},"nativeSrc":"18836:30:88","nodeType":"YulFunctionCall","src":"18836:30:88"},"nativeSrc":"18836:30:88","nodeType":"YulExpressionStatement","src":"18836:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18886:9:88","nodeType":"YulIdentifier","src":"18886:9:88"},{"kind":"number","nativeSrc":"18897:2:88","nodeType":"YulLiteral","src":"18897:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18882:3:88","nodeType":"YulIdentifier","src":"18882:3:88"},"nativeSrc":"18882:18:88","nodeType":"YulFunctionCall","src":"18882:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"18902:34:88","nodeType":"YulLiteral","src":"18902:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"18875:6:88","nodeType":"YulIdentifier","src":"18875:6:88"},"nativeSrc":"18875:62:88","nodeType":"YulFunctionCall","src":"18875:62:88"},"nativeSrc":"18875:62:88","nodeType":"YulExpressionStatement","src":"18875:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18957:9:88","nodeType":"YulIdentifier","src":"18957:9:88"},{"kind":"number","nativeSrc":"18968:2:88","nodeType":"YulLiteral","src":"18968:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18953:3:88","nodeType":"YulIdentifier","src":"18953:3:88"},"nativeSrc":"18953:18:88","nodeType":"YulFunctionCall","src":"18953:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"18973:14:88","nodeType":"YulLiteral","src":"18973:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"18946:6:88","nodeType":"YulIdentifier","src":"18946:6:88"},"nativeSrc":"18946:42:88","nodeType":"YulFunctionCall","src":"18946:42:88"},"nativeSrc":"18946:42:88","nodeType":"YulExpressionStatement","src":"18946:42:88"},{"nativeSrc":"18997:27:88","nodeType":"YulAssignment","src":"18997:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19009:9:88","nodeType":"YulIdentifier","src":"19009:9:88"},{"kind":"number","nativeSrc":"19020:3:88","nodeType":"YulLiteral","src":"19020:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19005:3:88","nodeType":"YulIdentifier","src":"19005:3:88"},"nativeSrc":"19005:19:88","nodeType":"YulFunctionCall","src":"19005:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18997:4:88","nodeType":"YulIdentifier","src":"18997:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18622:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18773:9:88","nodeType":"YulTypedName","src":"18773:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18787:4:88","nodeType":"YulTypedName","src":"18787:4:88","type":""}],"src":"18622:408:88"},{"body":{"nativeSrc":"19214:274:88","nodeType":"YulBlock","src":"19214:274:88","statements":[{"nativeSrc":"19224:27:88","nodeType":"YulAssignment","src":"19224:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19236:9:88","nodeType":"YulIdentifier","src":"19236:9:88"},{"kind":"number","nativeSrc":"19247:3:88","nodeType":"YulLiteral","src":"19247:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19232:3:88","nodeType":"YulIdentifier","src":"19232:3:88"},"nativeSrc":"19232:19:88","nodeType":"YulFunctionCall","src":"19232:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19224:4:88","nodeType":"YulIdentifier","src":"19224:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19267:9:88","nodeType":"YulIdentifier","src":"19267:9:88"},{"arguments":[{"name":"value0","nativeSrc":"19282:6:88","nodeType":"YulIdentifier","src":"19282:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19298:3:88","nodeType":"YulLiteral","src":"19298:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"19303:1:88","nodeType":"YulLiteral","src":"19303:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"19294:3:88","nodeType":"YulIdentifier","src":"19294:3:88"},"nativeSrc":"19294:11:88","nodeType":"YulFunctionCall","src":"19294:11:88"},{"kind":"number","nativeSrc":"19307:1:88","nodeType":"YulLiteral","src":"19307:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19290:3:88","nodeType":"YulIdentifier","src":"19290:3:88"},"nativeSrc":"19290:19:88","nodeType":"YulFunctionCall","src":"19290:19:88"}],"functionName":{"name":"and","nativeSrc":"19278:3:88","nodeType":"YulIdentifier","src":"19278:3:88"},"nativeSrc":"19278:32:88","nodeType":"YulFunctionCall","src":"19278:32:88"}],"functionName":{"name":"mstore","nativeSrc":"19260:6:88","nodeType":"YulIdentifier","src":"19260:6:88"},"nativeSrc":"19260:51:88","nodeType":"YulFunctionCall","src":"19260:51:88"},"nativeSrc":"19260:51:88","nodeType":"YulExpressionStatement","src":"19260:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19331:9:88","nodeType":"YulIdentifier","src":"19331:9:88"},{"kind":"number","nativeSrc":"19342:2:88","nodeType":"YulLiteral","src":"19342:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19327:3:88","nodeType":"YulIdentifier","src":"19327:3:88"},"nativeSrc":"19327:18:88","nodeType":"YulFunctionCall","src":"19327:18:88"},{"name":"value1","nativeSrc":"19347:6:88","nodeType":"YulIdentifier","src":"19347:6:88"}],"functionName":{"name":"mstore","nativeSrc":"19320:6:88","nodeType":"YulIdentifier","src":"19320:6:88"},"nativeSrc":"19320:34:88","nodeType":"YulFunctionCall","src":"19320:34:88"},"nativeSrc":"19320:34:88","nodeType":"YulExpressionStatement","src":"19320:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19374:9:88","nodeType":"YulIdentifier","src":"19374:9:88"},{"kind":"number","nativeSrc":"19385:2:88","nodeType":"YulLiteral","src":"19385:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19370:3:88","nodeType":"YulIdentifier","src":"19370:3:88"},"nativeSrc":"19370:18:88","nodeType":"YulFunctionCall","src":"19370:18:88"},{"arguments":[{"name":"value2","nativeSrc":"19394:6:88","nodeType":"YulIdentifier","src":"19394:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19410:3:88","nodeType":"YulLiteral","src":"19410:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"19415:1:88","nodeType":"YulLiteral","src":"19415:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"19406:3:88","nodeType":"YulIdentifier","src":"19406:3:88"},"nativeSrc":"19406:11:88","nodeType":"YulFunctionCall","src":"19406:11:88"},{"kind":"number","nativeSrc":"19419:1:88","nodeType":"YulLiteral","src":"19419:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19402:3:88","nodeType":"YulIdentifier","src":"19402:3:88"},"nativeSrc":"19402:19:88","nodeType":"YulFunctionCall","src":"19402:19:88"}],"functionName":{"name":"and","nativeSrc":"19390:3:88","nodeType":"YulIdentifier","src":"19390:3:88"},"nativeSrc":"19390:32:88","nodeType":"YulFunctionCall","src":"19390:32:88"}],"functionName":{"name":"mstore","nativeSrc":"19363:6:88","nodeType":"YulIdentifier","src":"19363:6:88"},"nativeSrc":"19363:60:88","nodeType":"YulFunctionCall","src":"19363:60:88"},"nativeSrc":"19363:60:88","nodeType":"YulExpressionStatement","src":"19363:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19443:9:88","nodeType":"YulIdentifier","src":"19443:9:88"},{"kind":"number","nativeSrc":"19454:2:88","nodeType":"YulLiteral","src":"19454:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19439:3:88","nodeType":"YulIdentifier","src":"19439:3:88"},"nativeSrc":"19439:18:88","nodeType":"YulFunctionCall","src":"19439:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"19473:6:88","nodeType":"YulIdentifier","src":"19473:6:88"}],"functionName":{"name":"iszero","nativeSrc":"19466:6:88","nodeType":"YulIdentifier","src":"19466:6:88"},"nativeSrc":"19466:14:88","nodeType":"YulFunctionCall","src":"19466:14:88"}],"functionName":{"name":"iszero","nativeSrc":"19459:6:88","nodeType":"YulIdentifier","src":"19459:6:88"},"nativeSrc":"19459:22:88","nodeType":"YulFunctionCall","src":"19459:22:88"}],"functionName":{"name":"mstore","nativeSrc":"19432:6:88","nodeType":"YulIdentifier","src":"19432:6:88"},"nativeSrc":"19432:50:88","nodeType":"YulFunctionCall","src":"19432:50:88"},"nativeSrc":"19432:50:88","nodeType":"YulExpressionStatement","src":"19432:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"19035:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19159:9:88","nodeType":"YulTypedName","src":"19159:9:88","type":""},{"name":"value3","nativeSrc":"19170:6:88","nodeType":"YulTypedName","src":"19170:6:88","type":""},{"name":"value2","nativeSrc":"19178:6:88","nodeType":"YulTypedName","src":"19178:6:88","type":""},{"name":"value1","nativeSrc":"19186:6:88","nodeType":"YulTypedName","src":"19186:6:88","type":""},{"name":"value0","nativeSrc":"19194:6:88","nodeType":"YulTypedName","src":"19194:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19205:4:88","nodeType":"YulTypedName","src":"19205:4:88","type":""}],"src":"19035:453:88"},{"body":{"nativeSrc":"19667:246:88","nodeType":"YulBlock","src":"19667:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19684:9:88","nodeType":"YulIdentifier","src":"19684:9:88"},{"kind":"number","nativeSrc":"19695:2:88","nodeType":"YulLiteral","src":"19695:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19677:6:88","nodeType":"YulIdentifier","src":"19677:6:88"},"nativeSrc":"19677:21:88","nodeType":"YulFunctionCall","src":"19677:21:88"},"nativeSrc":"19677:21:88","nodeType":"YulExpressionStatement","src":"19677:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19718:9:88","nodeType":"YulIdentifier","src":"19718:9:88"},{"kind":"number","nativeSrc":"19729:2:88","nodeType":"YulLiteral","src":"19729:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19714:3:88","nodeType":"YulIdentifier","src":"19714:3:88"},"nativeSrc":"19714:18:88","nodeType":"YulFunctionCall","src":"19714:18:88"},{"kind":"number","nativeSrc":"19734:2:88","nodeType":"YulLiteral","src":"19734:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"19707:6:88","nodeType":"YulIdentifier","src":"19707:6:88"},"nativeSrc":"19707:30:88","nodeType":"YulFunctionCall","src":"19707:30:88"},"nativeSrc":"19707:30:88","nodeType":"YulExpressionStatement","src":"19707:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19757:9:88","nodeType":"YulIdentifier","src":"19757:9:88"},{"kind":"number","nativeSrc":"19768:2:88","nodeType":"YulLiteral","src":"19768:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19753:3:88","nodeType":"YulIdentifier","src":"19753:3:88"},"nativeSrc":"19753:18:88","nodeType":"YulFunctionCall","src":"19753:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"19773:34:88","nodeType":"YulLiteral","src":"19773:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"19746:6:88","nodeType":"YulIdentifier","src":"19746:6:88"},"nativeSrc":"19746:62:88","nodeType":"YulFunctionCall","src":"19746:62:88"},"nativeSrc":"19746:62:88","nodeType":"YulExpressionStatement","src":"19746:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19828:9:88","nodeType":"YulIdentifier","src":"19828:9:88"},{"kind":"number","nativeSrc":"19839:2:88","nodeType":"YulLiteral","src":"19839:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19824:3:88","nodeType":"YulIdentifier","src":"19824:3:88"},"nativeSrc":"19824:18:88","nodeType":"YulFunctionCall","src":"19824:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"19844:26:88","nodeType":"YulLiteral","src":"19844:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"19817:6:88","nodeType":"YulIdentifier","src":"19817:6:88"},"nativeSrc":"19817:54:88","nodeType":"YulFunctionCall","src":"19817:54:88"},"nativeSrc":"19817:54:88","nodeType":"YulExpressionStatement","src":"19817:54:88"},{"nativeSrc":"19880:27:88","nodeType":"YulAssignment","src":"19880:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19892:9:88","nodeType":"YulIdentifier","src":"19892:9:88"},{"kind":"number","nativeSrc":"19903:3:88","nodeType":"YulLiteral","src":"19903:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19888:3:88","nodeType":"YulIdentifier","src":"19888:3:88"},"nativeSrc":"19888:19:88","nodeType":"YulFunctionCall","src":"19888:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19880:4:88","nodeType":"YulIdentifier","src":"19880:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19493:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19644:9:88","nodeType":"YulTypedName","src":"19644:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19658:4:88","nodeType":"YulTypedName","src":"19658:4:88","type":""}],"src":"19493:420:88"},{"body":{"nativeSrc":"20071:869:88","nodeType":"YulBlock","src":"20071:869:88","statements":[{"nativeSrc":"20081:27:88","nodeType":"YulAssignment","src":"20081:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20093:9:88","nodeType":"YulIdentifier","src":"20093:9:88"},{"kind":"number","nativeSrc":"20104:3:88","nodeType":"YulLiteral","src":"20104:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"20089:3:88","nodeType":"YulIdentifier","src":"20089:3:88"},"nativeSrc":"20089:19:88","nodeType":"YulFunctionCall","src":"20089:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20081:4:88","nodeType":"YulIdentifier","src":"20081:4:88"}]},{"nativeSrc":"20117:14:88","nodeType":"YulVariableDeclaration","src":"20117:14:88","value":{"kind":"number","nativeSrc":"20130:1:88","nodeType":"YulLiteral","src":"20130:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"20121:5:88","nodeType":"YulTypedName","src":"20121:5:88","type":""}]},{"nativeSrc":"20140:29:88","nodeType":"YulAssignment","src":"20140:29:88","value":{"arguments":[{"name":"value0","nativeSrc":"20162:6:88","nodeType":"YulIdentifier","src":"20162:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"20149:12:88","nodeType":"YulIdentifier","src":"20149:12:88"},"nativeSrc":"20149:20:88","nodeType":"YulFunctionCall","src":"20149:20:88"},"variableNames":[{"name":"value","nativeSrc":"20140:5:88","nodeType":"YulIdentifier","src":"20140:5:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20185:9:88","nodeType":"YulIdentifier","src":"20185:9:88"},{"name":"value","nativeSrc":"20196:5:88","nodeType":"YulIdentifier","src":"20196:5:88"}],"functionName":{"name":"mstore","nativeSrc":"20178:6:88","nodeType":"YulIdentifier","src":"20178:6:88"},"nativeSrc":"20178:24:88","nodeType":"YulFunctionCall","src":"20178:24:88"},"nativeSrc":"20178:24:88","nodeType":"YulExpressionStatement","src":"20178:24:88"},{"nativeSrc":"20211:16:88","nodeType":"YulVariableDeclaration","src":"20211:16:88","value":{"kind":"number","nativeSrc":"20226:1:88","nodeType":"YulLiteral","src":"20226:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"20215:7:88","nodeType":"YulTypedName","src":"20215:7:88","type":""}]},{"nativeSrc":"20236:42:88","nodeType":"YulAssignment","src":"20236:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20264:6:88","nodeType":"YulIdentifier","src":"20264:6:88"},{"kind":"number","nativeSrc":"20272:4:88","nodeType":"YulLiteral","src":"20272:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20260:3:88","nodeType":"YulIdentifier","src":"20260:3:88"},"nativeSrc":"20260:17:88","nodeType":"YulFunctionCall","src":"20260:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20247:12:88","nodeType":"YulIdentifier","src":"20247:12:88"},"nativeSrc":"20247:31:88","nodeType":"YulFunctionCall","src":"20247:31:88"},"variableNames":[{"name":"value_1","nativeSrc":"20236:7:88","nodeType":"YulIdentifier","src":"20236:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20298:9:88","nodeType":"YulIdentifier","src":"20298:9:88"},{"kind":"number","nativeSrc":"20309:4:88","nodeType":"YulLiteral","src":"20309:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20294:3:88","nodeType":"YulIdentifier","src":"20294:3:88"},"nativeSrc":"20294:20:88","nodeType":"YulFunctionCall","src":"20294:20:88"},{"name":"value_1","nativeSrc":"20316:7:88","nodeType":"YulIdentifier","src":"20316:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20287:6:88","nodeType":"YulIdentifier","src":"20287:6:88"},"nativeSrc":"20287:37:88","nodeType":"YulFunctionCall","src":"20287:37:88"},"nativeSrc":"20287:37:88","nodeType":"YulExpressionStatement","src":"20287:37:88"},{"nativeSrc":"20333:16:88","nodeType":"YulVariableDeclaration","src":"20333:16:88","value":{"kind":"number","nativeSrc":"20348:1:88","nodeType":"YulLiteral","src":"20348:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"20337:7:88","nodeType":"YulTypedName","src":"20337:7:88","type":""}]},{"nativeSrc":"20358:42:88","nodeType":"YulAssignment","src":"20358:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20386:6:88","nodeType":"YulIdentifier","src":"20386:6:88"},{"kind":"number","nativeSrc":"20394:4:88","nodeType":"YulLiteral","src":"20394:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20382:3:88","nodeType":"YulIdentifier","src":"20382:3:88"},"nativeSrc":"20382:17:88","nodeType":"YulFunctionCall","src":"20382:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20369:12:88","nodeType":"YulIdentifier","src":"20369:12:88"},"nativeSrc":"20369:31:88","nodeType":"YulFunctionCall","src":"20369:31:88"},"variableNames":[{"name":"value_2","nativeSrc":"20358:7:88","nodeType":"YulIdentifier","src":"20358:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20420:9:88","nodeType":"YulIdentifier","src":"20420:9:88"},{"kind":"number","nativeSrc":"20431:4:88","nodeType":"YulLiteral","src":"20431:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20416:3:88","nodeType":"YulIdentifier","src":"20416:3:88"},"nativeSrc":"20416:20:88","nodeType":"YulFunctionCall","src":"20416:20:88"},{"name":"value_2","nativeSrc":"20438:7:88","nodeType":"YulIdentifier","src":"20438:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20409:6:88","nodeType":"YulIdentifier","src":"20409:6:88"},"nativeSrc":"20409:37:88","nodeType":"YulFunctionCall","src":"20409:37:88"},"nativeSrc":"20409:37:88","nodeType":"YulExpressionStatement","src":"20409:37:88"},{"nativeSrc":"20455:16:88","nodeType":"YulVariableDeclaration","src":"20455:16:88","value":{"kind":"number","nativeSrc":"20470:1:88","nodeType":"YulLiteral","src":"20470:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"20459:7:88","nodeType":"YulTypedName","src":"20459:7:88","type":""}]},{"nativeSrc":"20480:42:88","nodeType":"YulAssignment","src":"20480:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20508:6:88","nodeType":"YulIdentifier","src":"20508:6:88"},{"kind":"number","nativeSrc":"20516:4:88","nodeType":"YulLiteral","src":"20516:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20504:3:88","nodeType":"YulIdentifier","src":"20504:3:88"},"nativeSrc":"20504:17:88","nodeType":"YulFunctionCall","src":"20504:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20491:12:88","nodeType":"YulIdentifier","src":"20491:12:88"},"nativeSrc":"20491:31:88","nodeType":"YulFunctionCall","src":"20491:31:88"},"variableNames":[{"name":"value_3","nativeSrc":"20480:7:88","nodeType":"YulIdentifier","src":"20480:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20542:9:88","nodeType":"YulIdentifier","src":"20542:9:88"},{"kind":"number","nativeSrc":"20553:4:88","nodeType":"YulLiteral","src":"20553:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20538:3:88","nodeType":"YulIdentifier","src":"20538:3:88"},"nativeSrc":"20538:20:88","nodeType":"YulFunctionCall","src":"20538:20:88"},{"name":"value_3","nativeSrc":"20560:7:88","nodeType":"YulIdentifier","src":"20560:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20531:6:88","nodeType":"YulIdentifier","src":"20531:6:88"},"nativeSrc":"20531:37:88","nodeType":"YulFunctionCall","src":"20531:37:88"},"nativeSrc":"20531:37:88","nodeType":"YulExpressionStatement","src":"20531:37:88"},{"nativeSrc":"20577:16:88","nodeType":"YulVariableDeclaration","src":"20577:16:88","value":{"kind":"number","nativeSrc":"20592:1:88","nodeType":"YulLiteral","src":"20592:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"20581:7:88","nodeType":"YulTypedName","src":"20581:7:88","type":""}]},{"nativeSrc":"20602:42:88","nodeType":"YulAssignment","src":"20602:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20630:6:88","nodeType":"YulIdentifier","src":"20630:6:88"},{"kind":"number","nativeSrc":"20638:4:88","nodeType":"YulLiteral","src":"20638:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"20626:3:88","nodeType":"YulIdentifier","src":"20626:3:88"},"nativeSrc":"20626:17:88","nodeType":"YulFunctionCall","src":"20626:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20613:12:88","nodeType":"YulIdentifier","src":"20613:12:88"},"nativeSrc":"20613:31:88","nodeType":"YulFunctionCall","src":"20613:31:88"},"variableNames":[{"name":"value_4","nativeSrc":"20602:7:88","nodeType":"YulIdentifier","src":"20602:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20664:9:88","nodeType":"YulIdentifier","src":"20664:9:88"},{"kind":"number","nativeSrc":"20675:4:88","nodeType":"YulLiteral","src":"20675:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"20660:3:88","nodeType":"YulIdentifier","src":"20660:3:88"},"nativeSrc":"20660:20:88","nodeType":"YulFunctionCall","src":"20660:20:88"},{"name":"value_4","nativeSrc":"20682:7:88","nodeType":"YulIdentifier","src":"20682:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20653:6:88","nodeType":"YulIdentifier","src":"20653:6:88"},"nativeSrc":"20653:37:88","nodeType":"YulFunctionCall","src":"20653:37:88"},"nativeSrc":"20653:37:88","nodeType":"YulExpressionStatement","src":"20653:37:88"},{"nativeSrc":"20699:16:88","nodeType":"YulVariableDeclaration","src":"20699:16:88","value":{"kind":"number","nativeSrc":"20714:1:88","nodeType":"YulLiteral","src":"20714:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"20703:7:88","nodeType":"YulTypedName","src":"20703:7:88","type":""}]},{"nativeSrc":"20724:42:88","nodeType":"YulAssignment","src":"20724:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20752:6:88","nodeType":"YulIdentifier","src":"20752:6:88"},{"kind":"number","nativeSrc":"20760:4:88","nodeType":"YulLiteral","src":"20760:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"20748:3:88","nodeType":"YulIdentifier","src":"20748:3:88"},"nativeSrc":"20748:17:88","nodeType":"YulFunctionCall","src":"20748:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20735:12:88","nodeType":"YulIdentifier","src":"20735:12:88"},"nativeSrc":"20735:31:88","nodeType":"YulFunctionCall","src":"20735:31:88"},"variableNames":[{"name":"value_5","nativeSrc":"20724:7:88","nodeType":"YulIdentifier","src":"20724:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20786:9:88","nodeType":"YulIdentifier","src":"20786:9:88"},{"kind":"number","nativeSrc":"20797:4:88","nodeType":"YulLiteral","src":"20797:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"20782:3:88","nodeType":"YulIdentifier","src":"20782:3:88"},"nativeSrc":"20782:20:88","nodeType":"YulFunctionCall","src":"20782:20:88"},{"name":"value_5","nativeSrc":"20804:7:88","nodeType":"YulIdentifier","src":"20804:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20775:6:88","nodeType":"YulIdentifier","src":"20775:6:88"},"nativeSrc":"20775:37:88","nodeType":"YulFunctionCall","src":"20775:37:88"},"nativeSrc":"20775:37:88","nodeType":"YulExpressionStatement","src":"20775:37:88"},{"nativeSrc":"20821:16:88","nodeType":"YulVariableDeclaration","src":"20821:16:88","value":{"kind":"number","nativeSrc":"20836:1:88","nodeType":"YulLiteral","src":"20836:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"20825:7:88","nodeType":"YulTypedName","src":"20825:7:88","type":""}]},{"nativeSrc":"20846:42:88","nodeType":"YulAssignment","src":"20846:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20874:6:88","nodeType":"YulIdentifier","src":"20874:6:88"},{"kind":"number","nativeSrc":"20882:4:88","nodeType":"YulLiteral","src":"20882:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"20870:3:88","nodeType":"YulIdentifier","src":"20870:3:88"},"nativeSrc":"20870:17:88","nodeType":"YulFunctionCall","src":"20870:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"20857:12:88","nodeType":"YulIdentifier","src":"20857:12:88"},"nativeSrc":"20857:31:88","nodeType":"YulFunctionCall","src":"20857:31:88"},"variableNames":[{"name":"value_6","nativeSrc":"20846:7:88","nodeType":"YulIdentifier","src":"20846:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20908:9:88","nodeType":"YulIdentifier","src":"20908:9:88"},{"kind":"number","nativeSrc":"20919:4:88","nodeType":"YulLiteral","src":"20919:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"20904:3:88","nodeType":"YulIdentifier","src":"20904:3:88"},"nativeSrc":"20904:20:88","nodeType":"YulFunctionCall","src":"20904:20:88"},{"name":"value_6","nativeSrc":"20926:7:88","nodeType":"YulIdentifier","src":"20926:7:88"}],"functionName":{"name":"mstore","nativeSrc":"20897:6:88","nodeType":"YulIdentifier","src":"20897:6:88"},"nativeSrc":"20897:37:88","nodeType":"YulFunctionCall","src":"20897:37:88"},"nativeSrc":"20897:37:88","nodeType":"YulExpressionStatement","src":"20897:37:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"19918:1022:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20040:9:88","nodeType":"YulTypedName","src":"20040:9:88","type":""},{"name":"value0","nativeSrc":"20051:6:88","nodeType":"YulTypedName","src":"20051:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20062:4:88","nodeType":"YulTypedName","src":"20062:4:88","type":""}],"src":"19918:1022:88"},{"body":{"nativeSrc":"20977:95:88","nodeType":"YulBlock","src":"20977:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20994:1:88","nodeType":"YulLiteral","src":"20994:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"21001:3:88","nodeType":"YulLiteral","src":"21001:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"21006:10:88","nodeType":"YulLiteral","src":"21006:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"20997:3:88","nodeType":"YulIdentifier","src":"20997:3:88"},"nativeSrc":"20997:20:88","nodeType":"YulFunctionCall","src":"20997:20:88"}],"functionName":{"name":"mstore","nativeSrc":"20987:6:88","nodeType":"YulIdentifier","src":"20987:6:88"},"nativeSrc":"20987:31:88","nodeType":"YulFunctionCall","src":"20987:31:88"},"nativeSrc":"20987:31:88","nodeType":"YulExpressionStatement","src":"20987:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21034:1:88","nodeType":"YulLiteral","src":"21034:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"21037:4:88","nodeType":"YulLiteral","src":"21037:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"21027:6:88","nodeType":"YulIdentifier","src":"21027:6:88"},"nativeSrc":"21027:15:88","nodeType":"YulFunctionCall","src":"21027:15:88"},"nativeSrc":"21027:15:88","nodeType":"YulExpressionStatement","src":"21027:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21058:1:88","nodeType":"YulLiteral","src":"21058:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"21061:4:88","nodeType":"YulLiteral","src":"21061:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21051:6:88","nodeType":"YulIdentifier","src":"21051:6:88"},"nativeSrc":"21051:15:88","nodeType":"YulFunctionCall","src":"21051:15:88"},"nativeSrc":"21051:15:88","nodeType":"YulExpressionStatement","src":"21051:15:88"}]},"name":"panic_error_0x11","nativeSrc":"20945:127:88","nodeType":"YulFunctionDefinition","src":"20945:127:88"},{"body":{"nativeSrc":"21126:79:88","nodeType":"YulBlock","src":"21126:79:88","statements":[{"nativeSrc":"21136:17:88","nodeType":"YulAssignment","src":"21136:17:88","value":{"arguments":[{"name":"x","nativeSrc":"21148:1:88","nodeType":"YulIdentifier","src":"21148:1:88"},{"name":"y","nativeSrc":"21151:1:88","nodeType":"YulIdentifier","src":"21151:1:88"}],"functionName":{"name":"sub","nativeSrc":"21144:3:88","nodeType":"YulIdentifier","src":"21144:3:88"},"nativeSrc":"21144:9:88","nodeType":"YulFunctionCall","src":"21144:9:88"},"variableNames":[{"name":"diff","nativeSrc":"21136:4:88","nodeType":"YulIdentifier","src":"21136:4:88"}]},{"body":{"nativeSrc":"21177:22:88","nodeType":"YulBlock","src":"21177:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21179:16:88","nodeType":"YulIdentifier","src":"21179:16:88"},"nativeSrc":"21179:18:88","nodeType":"YulFunctionCall","src":"21179:18:88"},"nativeSrc":"21179:18:88","nodeType":"YulExpressionStatement","src":"21179:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21168:4:88","nodeType":"YulIdentifier","src":"21168:4:88"},{"name":"x","nativeSrc":"21174:1:88","nodeType":"YulIdentifier","src":"21174:1:88"}],"functionName":{"name":"gt","nativeSrc":"21165:2:88","nodeType":"YulIdentifier","src":"21165:2:88"},"nativeSrc":"21165:11:88","nodeType":"YulFunctionCall","src":"21165:11:88"},"nativeSrc":"21162:37:88","nodeType":"YulIf","src":"21162:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"21077:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21108:1:88","nodeType":"YulTypedName","src":"21108:1:88","type":""},{"name":"y","nativeSrc":"21111:1:88","nodeType":"YulTypedName","src":"21111:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21117:4:88","nodeType":"YulTypedName","src":"21117:4:88","type":""}],"src":"21077:128:88"},{"body":{"nativeSrc":"21384:236:88","nodeType":"YulBlock","src":"21384:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21401:9:88","nodeType":"YulIdentifier","src":"21401:9:88"},{"kind":"number","nativeSrc":"21412:2:88","nodeType":"YulLiteral","src":"21412:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21394:6:88","nodeType":"YulIdentifier","src":"21394:6:88"},"nativeSrc":"21394:21:88","nodeType":"YulFunctionCall","src":"21394:21:88"},"nativeSrc":"21394:21:88","nodeType":"YulExpressionStatement","src":"21394:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21435:9:88","nodeType":"YulIdentifier","src":"21435:9:88"},{"kind":"number","nativeSrc":"21446:2:88","nodeType":"YulLiteral","src":"21446:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21431:3:88","nodeType":"YulIdentifier","src":"21431:3:88"},"nativeSrc":"21431:18:88","nodeType":"YulFunctionCall","src":"21431:18:88"},{"kind":"number","nativeSrc":"21451:2:88","nodeType":"YulLiteral","src":"21451:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"21424:6:88","nodeType":"YulIdentifier","src":"21424:6:88"},"nativeSrc":"21424:30:88","nodeType":"YulFunctionCall","src":"21424:30:88"},"nativeSrc":"21424:30:88","nodeType":"YulExpressionStatement","src":"21424:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21474:9:88","nodeType":"YulIdentifier","src":"21474:9:88"},{"kind":"number","nativeSrc":"21485:2:88","nodeType":"YulLiteral","src":"21485:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21470:3:88","nodeType":"YulIdentifier","src":"21470:3:88"},"nativeSrc":"21470:18:88","nodeType":"YulFunctionCall","src":"21470:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"21490:34:88","nodeType":"YulLiteral","src":"21490:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"21463:6:88","nodeType":"YulIdentifier","src":"21463:6:88"},"nativeSrc":"21463:62:88","nodeType":"YulFunctionCall","src":"21463:62:88"},"nativeSrc":"21463:62:88","nodeType":"YulExpressionStatement","src":"21463:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21545:9:88","nodeType":"YulIdentifier","src":"21545:9:88"},{"kind":"number","nativeSrc":"21556:2:88","nodeType":"YulLiteral","src":"21556:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21541:3:88","nodeType":"YulIdentifier","src":"21541:3:88"},"nativeSrc":"21541:18:88","nodeType":"YulFunctionCall","src":"21541:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"21561:16:88","nodeType":"YulLiteral","src":"21561:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"21534:6:88","nodeType":"YulIdentifier","src":"21534:6:88"},"nativeSrc":"21534:44:88","nodeType":"YulFunctionCall","src":"21534:44:88"},"nativeSrc":"21534:44:88","nodeType":"YulExpressionStatement","src":"21534:44:88"},{"nativeSrc":"21587:27:88","nodeType":"YulAssignment","src":"21587:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21599:9:88","nodeType":"YulIdentifier","src":"21599:9:88"},{"kind":"number","nativeSrc":"21610:3:88","nodeType":"YulLiteral","src":"21610:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21595:3:88","nodeType":"YulIdentifier","src":"21595:3:88"},"nativeSrc":"21595:19:88","nodeType":"YulFunctionCall","src":"21595:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21587:4:88","nodeType":"YulIdentifier","src":"21587:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21210:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21361:9:88","nodeType":"YulTypedName","src":"21361:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21375:4:88","nodeType":"YulTypedName","src":"21375:4:88","type":""}],"src":"21210:410:88"},{"body":{"nativeSrc":"21732:87:88","nodeType":"YulBlock","src":"21732:87:88","statements":[{"nativeSrc":"21742:26:88","nodeType":"YulAssignment","src":"21742:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21754:9:88","nodeType":"YulIdentifier","src":"21754:9:88"},{"kind":"number","nativeSrc":"21765:2:88","nodeType":"YulLiteral","src":"21765:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21750:3:88","nodeType":"YulIdentifier","src":"21750:3:88"},"nativeSrc":"21750:18:88","nodeType":"YulFunctionCall","src":"21750:18:88"},"variableNames":[{"name":"tail","nativeSrc":"21742:4:88","nodeType":"YulIdentifier","src":"21742:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21784:9:88","nodeType":"YulIdentifier","src":"21784:9:88"},{"arguments":[{"name":"value0","nativeSrc":"21799:6:88","nodeType":"YulIdentifier","src":"21799:6:88"},{"kind":"number","nativeSrc":"21807:4:88","nodeType":"YulLiteral","src":"21807:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"21795:3:88","nodeType":"YulIdentifier","src":"21795:3:88"},"nativeSrc":"21795:17:88","nodeType":"YulFunctionCall","src":"21795:17:88"}],"functionName":{"name":"mstore","nativeSrc":"21777:6:88","nodeType":"YulIdentifier","src":"21777:6:88"},"nativeSrc":"21777:36:88","nodeType":"YulFunctionCall","src":"21777:36:88"},"nativeSrc":"21777:36:88","nodeType":"YulExpressionStatement","src":"21777:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"21625:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21701:9:88","nodeType":"YulTypedName","src":"21701:9:88","type":""},{"name":"value0","nativeSrc":"21712:6:88","nodeType":"YulTypedName","src":"21712:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21723:4:88","nodeType":"YulTypedName","src":"21723:4:88","type":""}],"src":"21625:194:88"},{"body":{"nativeSrc":"21886:85:88","nodeType":"YulBlock","src":"21886:85:88","statements":[{"nativeSrc":"21896:29:88","nodeType":"YulAssignment","src":"21896:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"21918:6:88","nodeType":"YulIdentifier","src":"21918:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"21905:12:88","nodeType":"YulIdentifier","src":"21905:12:88"},"nativeSrc":"21905:20:88","nodeType":"YulFunctionCall","src":"21905:20:88"},"variableNames":[{"name":"value","nativeSrc":"21896:5:88","nodeType":"YulIdentifier","src":"21896:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"21959:5:88","nodeType":"YulIdentifier","src":"21959:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"21934:24:88","nodeType":"YulIdentifier","src":"21934:24:88"},"nativeSrc":"21934:31:88","nodeType":"YulFunctionCall","src":"21934:31:88"},"nativeSrc":"21934:31:88","nodeType":"YulExpressionStatement","src":"21934:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"21824:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"21865:6:88","nodeType":"YulTypedName","src":"21865:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21876:5:88","nodeType":"YulTypedName","src":"21876:5:88","type":""}],"src":"21824:147:88"},{"body":{"nativeSrc":"22039:1676:88","nodeType":"YulBlock","src":"22039:1676:88","statements":[{"nativeSrc":"22049:16:88","nodeType":"YulVariableDeclaration","src":"22049:16:88","value":{"kind":"number","nativeSrc":"22064:1:88","nodeType":"YulLiteral","src":"22064:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"22053:7:88","nodeType":"YulTypedName","src":"22053:7:88","type":""}]},{"nativeSrc":"22074:30:88","nodeType":"YulAssignment","src":"22074:30:88","value":{"arguments":[{"name":"value","nativeSrc":"22098:5:88","nodeType":"YulIdentifier","src":"22098:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"22085:12:88","nodeType":"YulIdentifier","src":"22085:12:88"},"nativeSrc":"22085:19:88","nodeType":"YulFunctionCall","src":"22085:19:88"},"variableNames":[{"name":"value_1","nativeSrc":"22074:7:88","nodeType":"YulIdentifier","src":"22074:7:88"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"22120:3:88","nodeType":"YulIdentifier","src":"22120:3:88"},{"name":"value_1","nativeSrc":"22125:7:88","nodeType":"YulIdentifier","src":"22125:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22113:6:88","nodeType":"YulIdentifier","src":"22113:6:88"},"nativeSrc":"22113:20:88","nodeType":"YulFunctionCall","src":"22113:20:88"},"nativeSrc":"22113:20:88","nodeType":"YulExpressionStatement","src":"22113:20:88"},{"nativeSrc":"22142:16:88","nodeType":"YulVariableDeclaration","src":"22142:16:88","value":{"kind":"number","nativeSrc":"22157:1:88","nodeType":"YulLiteral","src":"22157:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"22146:7:88","nodeType":"YulTypedName","src":"22146:7:88","type":""}]},{"nativeSrc":"22167:41:88","nodeType":"YulAssignment","src":"22167:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22195:5:88","nodeType":"YulIdentifier","src":"22195:5:88"},{"kind":"number","nativeSrc":"22202:4:88","nodeType":"YulLiteral","src":"22202:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22191:3:88","nodeType":"YulIdentifier","src":"22191:3:88"},"nativeSrc":"22191:16:88","nodeType":"YulFunctionCall","src":"22191:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22178:12:88","nodeType":"YulIdentifier","src":"22178:12:88"},"nativeSrc":"22178:30:88","nodeType":"YulFunctionCall","src":"22178:30:88"},"variableNames":[{"name":"value_2","nativeSrc":"22167:7:88","nodeType":"YulIdentifier","src":"22167:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22228:3:88","nodeType":"YulIdentifier","src":"22228:3:88"},{"kind":"number","nativeSrc":"22233:4:88","nodeType":"YulLiteral","src":"22233:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22224:3:88","nodeType":"YulIdentifier","src":"22224:3:88"},"nativeSrc":"22224:14:88","nodeType":"YulFunctionCall","src":"22224:14:88"},{"name":"value_2","nativeSrc":"22240:7:88","nodeType":"YulIdentifier","src":"22240:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22217:6:88","nodeType":"YulIdentifier","src":"22217:6:88"},"nativeSrc":"22217:31:88","nodeType":"YulFunctionCall","src":"22217:31:88"},"nativeSrc":"22217:31:88","nodeType":"YulExpressionStatement","src":"22217:31:88"},{"nativeSrc":"22257:16:88","nodeType":"YulVariableDeclaration","src":"22257:16:88","value":{"kind":"number","nativeSrc":"22272:1:88","nodeType":"YulLiteral","src":"22272:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"22261:7:88","nodeType":"YulTypedName","src":"22261:7:88","type":""}]},{"nativeSrc":"22282:41:88","nodeType":"YulAssignment","src":"22282:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22310:5:88","nodeType":"YulIdentifier","src":"22310:5:88"},{"kind":"number","nativeSrc":"22317:4:88","nodeType":"YulLiteral","src":"22317:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"22306:3:88","nodeType":"YulIdentifier","src":"22306:3:88"},"nativeSrc":"22306:16:88","nodeType":"YulFunctionCall","src":"22306:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22293:12:88","nodeType":"YulIdentifier","src":"22293:12:88"},"nativeSrc":"22293:30:88","nodeType":"YulFunctionCall","src":"22293:30:88"},"variableNames":[{"name":"value_3","nativeSrc":"22282:7:88","nodeType":"YulIdentifier","src":"22282:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22343:3:88","nodeType":"YulIdentifier","src":"22343:3:88"},{"kind":"number","nativeSrc":"22348:4:88","nodeType":"YulLiteral","src":"22348:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"22339:3:88","nodeType":"YulIdentifier","src":"22339:3:88"},"nativeSrc":"22339:14:88","nodeType":"YulFunctionCall","src":"22339:14:88"},{"name":"value_3","nativeSrc":"22355:7:88","nodeType":"YulIdentifier","src":"22355:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22332:6:88","nodeType":"YulIdentifier","src":"22332:6:88"},"nativeSrc":"22332:31:88","nodeType":"YulFunctionCall","src":"22332:31:88"},"nativeSrc":"22332:31:88","nodeType":"YulExpressionStatement","src":"22332:31:88"},{"nativeSrc":"22372:16:88","nodeType":"YulVariableDeclaration","src":"22372:16:88","value":{"kind":"number","nativeSrc":"22387:1:88","nodeType":"YulLiteral","src":"22387:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"22376:7:88","nodeType":"YulTypedName","src":"22376:7:88","type":""}]},{"nativeSrc":"22397:41:88","nodeType":"YulAssignment","src":"22397:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22425:5:88","nodeType":"YulIdentifier","src":"22425:5:88"},{"kind":"number","nativeSrc":"22432:4:88","nodeType":"YulLiteral","src":"22432:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"22421:3:88","nodeType":"YulIdentifier","src":"22421:3:88"},"nativeSrc":"22421:16:88","nodeType":"YulFunctionCall","src":"22421:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22408:12:88","nodeType":"YulIdentifier","src":"22408:12:88"},"nativeSrc":"22408:30:88","nodeType":"YulFunctionCall","src":"22408:30:88"},"variableNames":[{"name":"value_4","nativeSrc":"22397:7:88","nodeType":"YulIdentifier","src":"22397:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22458:3:88","nodeType":"YulIdentifier","src":"22458:3:88"},{"kind":"number","nativeSrc":"22463:4:88","nodeType":"YulLiteral","src":"22463:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"22454:3:88","nodeType":"YulIdentifier","src":"22454:3:88"},"nativeSrc":"22454:14:88","nodeType":"YulFunctionCall","src":"22454:14:88"},{"name":"value_4","nativeSrc":"22470:7:88","nodeType":"YulIdentifier","src":"22470:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22447:6:88","nodeType":"YulIdentifier","src":"22447:6:88"},"nativeSrc":"22447:31:88","nodeType":"YulFunctionCall","src":"22447:31:88"},"nativeSrc":"22447:31:88","nodeType":"YulExpressionStatement","src":"22447:31:88"},{"nativeSrc":"22487:16:88","nodeType":"YulVariableDeclaration","src":"22487:16:88","value":{"kind":"number","nativeSrc":"22502:1:88","nodeType":"YulLiteral","src":"22502:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"22491:7:88","nodeType":"YulTypedName","src":"22491:7:88","type":""}]},{"nativeSrc":"22512:41:88","nodeType":"YulAssignment","src":"22512:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22540:5:88","nodeType":"YulIdentifier","src":"22540:5:88"},{"kind":"number","nativeSrc":"22547:4:88","nodeType":"YulLiteral","src":"22547:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"22536:3:88","nodeType":"YulIdentifier","src":"22536:3:88"},"nativeSrc":"22536:16:88","nodeType":"YulFunctionCall","src":"22536:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22523:12:88","nodeType":"YulIdentifier","src":"22523:12:88"},"nativeSrc":"22523:30:88","nodeType":"YulFunctionCall","src":"22523:30:88"},"variableNames":[{"name":"value_5","nativeSrc":"22512:7:88","nodeType":"YulIdentifier","src":"22512:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22573:3:88","nodeType":"YulIdentifier","src":"22573:3:88"},{"kind":"number","nativeSrc":"22578:4:88","nodeType":"YulLiteral","src":"22578:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"22569:3:88","nodeType":"YulIdentifier","src":"22569:3:88"},"nativeSrc":"22569:14:88","nodeType":"YulFunctionCall","src":"22569:14:88"},{"name":"value_5","nativeSrc":"22585:7:88","nodeType":"YulIdentifier","src":"22585:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22562:6:88","nodeType":"YulIdentifier","src":"22562:6:88"},"nativeSrc":"22562:31:88","nodeType":"YulFunctionCall","src":"22562:31:88"},"nativeSrc":"22562:31:88","nodeType":"YulExpressionStatement","src":"22562:31:88"},{"nativeSrc":"22602:16:88","nodeType":"YulVariableDeclaration","src":"22602:16:88","value":{"kind":"number","nativeSrc":"22617:1:88","nodeType":"YulLiteral","src":"22617:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"22606:7:88","nodeType":"YulTypedName","src":"22606:7:88","type":""}]},{"nativeSrc":"22627:41:88","nodeType":"YulAssignment","src":"22627:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22655:5:88","nodeType":"YulIdentifier","src":"22655:5:88"},{"kind":"number","nativeSrc":"22662:4:88","nodeType":"YulLiteral","src":"22662:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"22651:3:88","nodeType":"YulIdentifier","src":"22651:3:88"},"nativeSrc":"22651:16:88","nodeType":"YulFunctionCall","src":"22651:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22638:12:88","nodeType":"YulIdentifier","src":"22638:12:88"},"nativeSrc":"22638:30:88","nodeType":"YulFunctionCall","src":"22638:30:88"},"variableNames":[{"name":"value_6","nativeSrc":"22627:7:88","nodeType":"YulIdentifier","src":"22627:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22688:3:88","nodeType":"YulIdentifier","src":"22688:3:88"},{"kind":"number","nativeSrc":"22693:4:88","nodeType":"YulLiteral","src":"22693:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"22684:3:88","nodeType":"YulIdentifier","src":"22684:3:88"},"nativeSrc":"22684:14:88","nodeType":"YulFunctionCall","src":"22684:14:88"},{"name":"value_6","nativeSrc":"22700:7:88","nodeType":"YulIdentifier","src":"22700:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22677:6:88","nodeType":"YulIdentifier","src":"22677:6:88"},"nativeSrc":"22677:31:88","nodeType":"YulFunctionCall","src":"22677:31:88"},"nativeSrc":"22677:31:88","nodeType":"YulExpressionStatement","src":"22677:31:88"},{"nativeSrc":"22717:16:88","nodeType":"YulVariableDeclaration","src":"22717:16:88","value":{"kind":"number","nativeSrc":"22732:1:88","nodeType":"YulLiteral","src":"22732:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"22721:7:88","nodeType":"YulTypedName","src":"22721:7:88","type":""}]},{"nativeSrc":"22742:41:88","nodeType":"YulAssignment","src":"22742:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22770:5:88","nodeType":"YulIdentifier","src":"22770:5:88"},{"kind":"number","nativeSrc":"22777:4:88","nodeType":"YulLiteral","src":"22777:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"22766:3:88","nodeType":"YulIdentifier","src":"22766:3:88"},"nativeSrc":"22766:16:88","nodeType":"YulFunctionCall","src":"22766:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22753:12:88","nodeType":"YulIdentifier","src":"22753:12:88"},"nativeSrc":"22753:30:88","nodeType":"YulFunctionCall","src":"22753:30:88"},"variableNames":[{"name":"value_7","nativeSrc":"22742:7:88","nodeType":"YulIdentifier","src":"22742:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22803:3:88","nodeType":"YulIdentifier","src":"22803:3:88"},{"kind":"number","nativeSrc":"22808:4:88","nodeType":"YulLiteral","src":"22808:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"22799:3:88","nodeType":"YulIdentifier","src":"22799:3:88"},"nativeSrc":"22799:14:88","nodeType":"YulFunctionCall","src":"22799:14:88"},{"name":"value_7","nativeSrc":"22815:7:88","nodeType":"YulIdentifier","src":"22815:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22792:6:88","nodeType":"YulIdentifier","src":"22792:6:88"},"nativeSrc":"22792:31:88","nodeType":"YulFunctionCall","src":"22792:31:88"},"nativeSrc":"22792:31:88","nodeType":"YulExpressionStatement","src":"22792:31:88"},{"nativeSrc":"22832:16:88","nodeType":"YulVariableDeclaration","src":"22832:16:88","value":{"kind":"number","nativeSrc":"22847:1:88","nodeType":"YulLiteral","src":"22847:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"22836:7:88","nodeType":"YulTypedName","src":"22836:7:88","type":""}]},{"nativeSrc":"22857:41:88","nodeType":"YulAssignment","src":"22857:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22885:5:88","nodeType":"YulIdentifier","src":"22885:5:88"},{"kind":"number","nativeSrc":"22892:4:88","nodeType":"YulLiteral","src":"22892:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"22881:3:88","nodeType":"YulIdentifier","src":"22881:3:88"},"nativeSrc":"22881:16:88","nodeType":"YulFunctionCall","src":"22881:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"22868:12:88","nodeType":"YulIdentifier","src":"22868:12:88"},"nativeSrc":"22868:30:88","nodeType":"YulFunctionCall","src":"22868:30:88"},"variableNames":[{"name":"value_8","nativeSrc":"22857:7:88","nodeType":"YulIdentifier","src":"22857:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22918:3:88","nodeType":"YulIdentifier","src":"22918:3:88"},{"kind":"number","nativeSrc":"22923:4:88","nodeType":"YulLiteral","src":"22923:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"22914:3:88","nodeType":"YulIdentifier","src":"22914:3:88"},"nativeSrc":"22914:14:88","nodeType":"YulFunctionCall","src":"22914:14:88"},{"name":"value_8","nativeSrc":"22930:7:88","nodeType":"YulIdentifier","src":"22930:7:88"}],"functionName":{"name":"mstore","nativeSrc":"22907:6:88","nodeType":"YulIdentifier","src":"22907:6:88"},"nativeSrc":"22907:31:88","nodeType":"YulFunctionCall","src":"22907:31:88"},"nativeSrc":"22907:31:88","nodeType":"YulExpressionStatement","src":"22907:31:88"},{"nativeSrc":"22947:16:88","nodeType":"YulVariableDeclaration","src":"22947:16:88","value":{"kind":"number","nativeSrc":"22962:1:88","nodeType":"YulLiteral","src":"22962:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"22951:7:88","nodeType":"YulTypedName","src":"22951:7:88","type":""}]},{"nativeSrc":"22972:43:88","nodeType":"YulAssignment","src":"22972:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23000:5:88","nodeType":"YulIdentifier","src":"23000:5:88"},{"kind":"number","nativeSrc":"23007:6:88","nodeType":"YulLiteral","src":"23007:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"22996:3:88","nodeType":"YulIdentifier","src":"22996:3:88"},"nativeSrc":"22996:18:88","nodeType":"YulFunctionCall","src":"22996:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"22983:12:88","nodeType":"YulIdentifier","src":"22983:12:88"},"nativeSrc":"22983:32:88","nodeType":"YulFunctionCall","src":"22983:32:88"},"variableNames":[{"name":"value_9","nativeSrc":"22972:7:88","nodeType":"YulIdentifier","src":"22972:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23035:3:88","nodeType":"YulIdentifier","src":"23035:3:88"},{"kind":"number","nativeSrc":"23040:6:88","nodeType":"YulLiteral","src":"23040:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"23031:3:88","nodeType":"YulIdentifier","src":"23031:3:88"},"nativeSrc":"23031:16:88","nodeType":"YulFunctionCall","src":"23031:16:88"},{"name":"value_9","nativeSrc":"23049:7:88","nodeType":"YulIdentifier","src":"23049:7:88"}],"functionName":{"name":"mstore","nativeSrc":"23024:6:88","nodeType":"YulIdentifier","src":"23024:6:88"},"nativeSrc":"23024:33:88","nodeType":"YulFunctionCall","src":"23024:33:88"},"nativeSrc":"23024:33:88","nodeType":"YulExpressionStatement","src":"23024:33:88"},{"nativeSrc":"23066:17:88","nodeType":"YulVariableDeclaration","src":"23066:17:88","value":{"kind":"number","nativeSrc":"23082:1:88","nodeType":"YulLiteral","src":"23082:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"23070:8:88","nodeType":"YulTypedName","src":"23070:8:88","type":""}]},{"nativeSrc":"23092:44:88","nodeType":"YulAssignment","src":"23092:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23121:5:88","nodeType":"YulIdentifier","src":"23121:5:88"},{"kind":"number","nativeSrc":"23128:6:88","nodeType":"YulLiteral","src":"23128:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"23117:3:88","nodeType":"YulIdentifier","src":"23117:3:88"},"nativeSrc":"23117:18:88","nodeType":"YulFunctionCall","src":"23117:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"23104:12:88","nodeType":"YulIdentifier","src":"23104:12:88"},"nativeSrc":"23104:32:88","nodeType":"YulFunctionCall","src":"23104:32:88"},"variableNames":[{"name":"value_10","nativeSrc":"23092:8:88","nodeType":"YulIdentifier","src":"23092:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23156:3:88","nodeType":"YulIdentifier","src":"23156:3:88"},{"kind":"number","nativeSrc":"23161:6:88","nodeType":"YulLiteral","src":"23161:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"23152:3:88","nodeType":"YulIdentifier","src":"23152:3:88"},"nativeSrc":"23152:16:88","nodeType":"YulFunctionCall","src":"23152:16:88"},{"name":"value_10","nativeSrc":"23170:8:88","nodeType":"YulIdentifier","src":"23170:8:88"}],"functionName":{"name":"mstore","nativeSrc":"23145:6:88","nodeType":"YulIdentifier","src":"23145:6:88"},"nativeSrc":"23145:34:88","nodeType":"YulFunctionCall","src":"23145:34:88"},"nativeSrc":"23145:34:88","nodeType":"YulExpressionStatement","src":"23145:34:88"},{"nativeSrc":"23188:17:88","nodeType":"YulVariableDeclaration","src":"23188:17:88","value":{"kind":"number","nativeSrc":"23204:1:88","nodeType":"YulLiteral","src":"23204:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"23192:8:88","nodeType":"YulTypedName","src":"23192:8:88","type":""}]},{"nativeSrc":"23214:44:88","nodeType":"YulAssignment","src":"23214:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23243:5:88","nodeType":"YulIdentifier","src":"23243:5:88"},{"kind":"number","nativeSrc":"23250:6:88","nodeType":"YulLiteral","src":"23250:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"23239:3:88","nodeType":"YulIdentifier","src":"23239:3:88"},"nativeSrc":"23239:18:88","nodeType":"YulFunctionCall","src":"23239:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"23226:12:88","nodeType":"YulIdentifier","src":"23226:12:88"},"nativeSrc":"23226:32:88","nodeType":"YulFunctionCall","src":"23226:32:88"},"variableNames":[{"name":"value_11","nativeSrc":"23214:8:88","nodeType":"YulIdentifier","src":"23214:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23278:3:88","nodeType":"YulIdentifier","src":"23278:3:88"},{"kind":"number","nativeSrc":"23283:6:88","nodeType":"YulLiteral","src":"23283:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"23274:3:88","nodeType":"YulIdentifier","src":"23274:3:88"},"nativeSrc":"23274:16:88","nodeType":"YulFunctionCall","src":"23274:16:88"},{"name":"value_11","nativeSrc":"23292:8:88","nodeType":"YulIdentifier","src":"23292:8:88"}],"functionName":{"name":"mstore","nativeSrc":"23267:6:88","nodeType":"YulIdentifier","src":"23267:6:88"},"nativeSrc":"23267:34:88","nodeType":"YulFunctionCall","src":"23267:34:88"},"nativeSrc":"23267:34:88","nodeType":"YulExpressionStatement","src":"23267:34:88"},{"nativeSrc":"23310:71:88","nodeType":"YulVariableDeclaration","src":"23310:71:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23366:5:88","nodeType":"YulIdentifier","src":"23366:5:88"},{"kind":"number","nativeSrc":"23373:6:88","nodeType":"YulLiteral","src":"23373:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"23362:3:88","nodeType":"YulIdentifier","src":"23362:3:88"},"nativeSrc":"23362:18:88","nodeType":"YulFunctionCall","src":"23362:18:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"23330:31:88","nodeType":"YulIdentifier","src":"23330:31:88"},"nativeSrc":"23330:51:88","nodeType":"YulFunctionCall","src":"23330:51:88"},"variables":[{"name":"memberValue0","nativeSrc":"23314:12:88","nodeType":"YulTypedName","src":"23314:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23422:12:88","nodeType":"YulIdentifier","src":"23422:12:88"},{"arguments":[{"name":"pos","nativeSrc":"23440:3:88","nodeType":"YulIdentifier","src":"23440:3:88"},{"kind":"number","nativeSrc":"23445:6:88","nodeType":"YulLiteral","src":"23445:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"23436:3:88","nodeType":"YulIdentifier","src":"23436:3:88"},"nativeSrc":"23436:16:88","nodeType":"YulFunctionCall","src":"23436:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"23390:31:88","nodeType":"YulIdentifier","src":"23390:31:88"},"nativeSrc":"23390:63:88","nodeType":"YulFunctionCall","src":"23390:63:88"},"nativeSrc":"23390:63:88","nodeType":"YulExpressionStatement","src":"23390:63:88"},{"nativeSrc":"23462:59:88","nodeType":"YulVariableDeclaration","src":"23462:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23506:5:88","nodeType":"YulIdentifier","src":"23506:5:88"},{"kind":"number","nativeSrc":"23513:6:88","nodeType":"YulLiteral","src":"23513:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"23502:3:88","nodeType":"YulIdentifier","src":"23502:3:88"},"nativeSrc":"23502:18:88","nodeType":"YulFunctionCall","src":"23502:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"23484:17:88","nodeType":"YulIdentifier","src":"23484:17:88"},"nativeSrc":"23484:37:88","nodeType":"YulFunctionCall","src":"23484:37:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"23466:14:88","nodeType":"YulTypedName","src":"23466:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"23548:14:88","nodeType":"YulIdentifier","src":"23548:14:88"},{"arguments":[{"name":"pos","nativeSrc":"23568:3:88","nodeType":"YulIdentifier","src":"23568:3:88"},{"kind":"number","nativeSrc":"23573:6:88","nodeType":"YulLiteral","src":"23573:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"23564:3:88","nodeType":"YulIdentifier","src":"23564:3:88"},"nativeSrc":"23564:16:88","nodeType":"YulFunctionCall","src":"23564:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"23530:17:88","nodeType":"YulIdentifier","src":"23530:17:88"},"nativeSrc":"23530:51:88","nodeType":"YulFunctionCall","src":"23530:51:88"},"nativeSrc":"23530:51:88","nodeType":"YulExpressionStatement","src":"23530:51:88"},{"nativeSrc":"23590:59:88","nodeType":"YulVariableDeclaration","src":"23590:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23634:5:88","nodeType":"YulIdentifier","src":"23634:5:88"},{"kind":"number","nativeSrc":"23641:6:88","nodeType":"YulLiteral","src":"23641:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"23630:3:88","nodeType":"YulIdentifier","src":"23630:3:88"},"nativeSrc":"23630:18:88","nodeType":"YulFunctionCall","src":"23630:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"23612:17:88","nodeType":"YulIdentifier","src":"23612:17:88"},"nativeSrc":"23612:37:88","nodeType":"YulFunctionCall","src":"23612:37:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"23594:14:88","nodeType":"YulTypedName","src":"23594:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"23676:14:88","nodeType":"YulIdentifier","src":"23676:14:88"},{"arguments":[{"name":"pos","nativeSrc":"23696:3:88","nodeType":"YulIdentifier","src":"23696:3:88"},{"kind":"number","nativeSrc":"23701:6:88","nodeType":"YulLiteral","src":"23701:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"23692:3:88","nodeType":"YulIdentifier","src":"23692:3:88"},"nativeSrc":"23692:16:88","nodeType":"YulFunctionCall","src":"23692:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"23658:17:88","nodeType":"YulIdentifier","src":"23658:17:88"},"nativeSrc":"23658:51:88","nodeType":"YulFunctionCall","src":"23658:51:88"},"nativeSrc":"23658:51:88","nodeType":"YulExpressionStatement","src":"23658:51:88"}]},"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"21976:1739:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22023:5:88","nodeType":"YulTypedName","src":"22023:5:88","type":""},{"name":"pos","nativeSrc":"22030:3:88","nodeType":"YulTypedName","src":"22030:3:88","type":""}],"src":"21976:1739:88"},{"body":{"nativeSrc":"23909:152:88","nodeType":"YulBlock","src":"23909:152:88","statements":[{"nativeSrc":"23919:27:88","nodeType":"YulAssignment","src":"23919:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23931:9:88","nodeType":"YulIdentifier","src":"23931:9:88"},{"kind":"number","nativeSrc":"23942:3:88","nodeType":"YulLiteral","src":"23942:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"23927:3:88","nodeType":"YulIdentifier","src":"23927:3:88"},"nativeSrc":"23927:19:88","nodeType":"YulFunctionCall","src":"23927:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23919:4:88","nodeType":"YulIdentifier","src":"23919:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"23993:6:88","nodeType":"YulIdentifier","src":"23993:6:88"},{"name":"headStart","nativeSrc":"24001:9:88","nodeType":"YulIdentifier","src":"24001:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"23955:37:88","nodeType":"YulIdentifier","src":"23955:37:88"},"nativeSrc":"23955:56:88","nodeType":"YulFunctionCall","src":"23955:56:88"},"nativeSrc":"23955:56:88","nodeType":"YulExpressionStatement","src":"23955:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24031:9:88","nodeType":"YulIdentifier","src":"24031:9:88"},{"kind":"number","nativeSrc":"24042:3:88","nodeType":"YulLiteral","src":"24042:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"24027:3:88","nodeType":"YulIdentifier","src":"24027:3:88"},"nativeSrc":"24027:19:88","nodeType":"YulFunctionCall","src":"24027:19:88"},{"name":"value1","nativeSrc":"24048:6:88","nodeType":"YulIdentifier","src":"24048:6:88"}],"functionName":{"name":"mstore","nativeSrc":"24020:6:88","nodeType":"YulIdentifier","src":"24020:6:88"},"nativeSrc":"24020:35:88","nodeType":"YulFunctionCall","src":"24020:35:88"},"nativeSrc":"24020:35:88","nodeType":"YulExpressionStatement","src":"24020:35:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"23720:341:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23870:9:88","nodeType":"YulTypedName","src":"23870:9:88","type":""},{"name":"value1","nativeSrc":"23881:6:88","nodeType":"YulTypedName","src":"23881:6:88","type":""},{"name":"value0","nativeSrc":"23889:6:88","nodeType":"YulTypedName","src":"23889:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23900:4:88","nodeType":"YulTypedName","src":"23900:4:88","type":""}],"src":"23720:341:88"},{"body":{"nativeSrc":"24098:95:88","nodeType":"YulBlock","src":"24098:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24115:1:88","nodeType":"YulLiteral","src":"24115:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"24122:3:88","nodeType":"YulLiteral","src":"24122:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"24127:10:88","nodeType":"YulLiteral","src":"24127:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"24118:3:88","nodeType":"YulIdentifier","src":"24118:3:88"},"nativeSrc":"24118:20:88","nodeType":"YulFunctionCall","src":"24118:20:88"}],"functionName":{"name":"mstore","nativeSrc":"24108:6:88","nodeType":"YulIdentifier","src":"24108:6:88"},"nativeSrc":"24108:31:88","nodeType":"YulFunctionCall","src":"24108:31:88"},"nativeSrc":"24108:31:88","nodeType":"YulExpressionStatement","src":"24108:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24155:1:88","nodeType":"YulLiteral","src":"24155:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"24158:4:88","nodeType":"YulLiteral","src":"24158:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"24148:6:88","nodeType":"YulIdentifier","src":"24148:6:88"},"nativeSrc":"24148:15:88","nodeType":"YulFunctionCall","src":"24148:15:88"},"nativeSrc":"24148:15:88","nodeType":"YulExpressionStatement","src":"24148:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24179:1:88","nodeType":"YulLiteral","src":"24179:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"24182:4:88","nodeType":"YulLiteral","src":"24182:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"24172:6:88","nodeType":"YulIdentifier","src":"24172:6:88"},"nativeSrc":"24172:15:88","nodeType":"YulFunctionCall","src":"24172:15:88"},"nativeSrc":"24172:15:88","nodeType":"YulExpressionStatement","src":"24172:15:88"}]},"name":"panic_error_0x21","nativeSrc":"24066:127:88","nodeType":"YulFunctionDefinition","src":"24066:127:88"},{"body":{"nativeSrc":"24372:239:88","nodeType":"YulBlock","src":"24372:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24389:9:88","nodeType":"YulIdentifier","src":"24389:9:88"},{"kind":"number","nativeSrc":"24400:2:88","nodeType":"YulLiteral","src":"24400:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24382:6:88","nodeType":"YulIdentifier","src":"24382:6:88"},"nativeSrc":"24382:21:88","nodeType":"YulFunctionCall","src":"24382:21:88"},"nativeSrc":"24382:21:88","nodeType":"YulExpressionStatement","src":"24382:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24423:9:88","nodeType":"YulIdentifier","src":"24423:9:88"},{"kind":"number","nativeSrc":"24434:2:88","nodeType":"YulLiteral","src":"24434:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24419:3:88","nodeType":"YulIdentifier","src":"24419:3:88"},"nativeSrc":"24419:18:88","nodeType":"YulFunctionCall","src":"24419:18:88"},{"kind":"number","nativeSrc":"24439:2:88","nodeType":"YulLiteral","src":"24439:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"24412:6:88","nodeType":"YulIdentifier","src":"24412:6:88"},"nativeSrc":"24412:30:88","nodeType":"YulFunctionCall","src":"24412:30:88"},"nativeSrc":"24412:30:88","nodeType":"YulExpressionStatement","src":"24412:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24462:9:88","nodeType":"YulIdentifier","src":"24462:9:88"},{"kind":"number","nativeSrc":"24473:2:88","nodeType":"YulLiteral","src":"24473:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24458:3:88","nodeType":"YulIdentifier","src":"24458:3:88"},"nativeSrc":"24458:18:88","nodeType":"YulFunctionCall","src":"24458:18:88"},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c65737320746861","kind":"string","nativeSrc":"24478:34:88","nodeType":"YulLiteral","src":"24478:34:88","type":"","value":"Can't set exposureLimit less tha"}],"functionName":{"name":"mstore","nativeSrc":"24451:6:88","nodeType":"YulIdentifier","src":"24451:6:88"},"nativeSrc":"24451:62:88","nodeType":"YulFunctionCall","src":"24451:62:88"},"nativeSrc":"24451:62:88","nodeType":"YulExpressionStatement","src":"24451:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24533:9:88","nodeType":"YulIdentifier","src":"24533:9:88"},{"kind":"number","nativeSrc":"24544:2:88","nodeType":"YulLiteral","src":"24544:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24529:3:88","nodeType":"YulIdentifier","src":"24529:3:88"},"nativeSrc":"24529:18:88","nodeType":"YulFunctionCall","src":"24529:18:88"},{"hexValue":"6e20616374697665206578706f73757265","kind":"string","nativeSrc":"24549:19:88","nodeType":"YulLiteral","src":"24549:19:88","type":"","value":"n active exposure"}],"functionName":{"name":"mstore","nativeSrc":"24522:6:88","nodeType":"YulIdentifier","src":"24522:6:88"},"nativeSrc":"24522:47:88","nodeType":"YulFunctionCall","src":"24522:47:88"},"nativeSrc":"24522:47:88","nodeType":"YulExpressionStatement","src":"24522:47:88"},{"nativeSrc":"24578:27:88","nodeType":"YulAssignment","src":"24578:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24590:9:88","nodeType":"YulIdentifier","src":"24590:9:88"},{"kind":"number","nativeSrc":"24601:3:88","nodeType":"YulLiteral","src":"24601:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24586:3:88","nodeType":"YulIdentifier","src":"24586:3:88"},"nativeSrc":"24586:19:88","nodeType":"YulFunctionCall","src":"24586:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24578:4:88","nodeType":"YulIdentifier","src":"24578:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24198:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24349:9:88","nodeType":"YulTypedName","src":"24349:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24363:4:88","nodeType":"YulTypedName","src":"24363:4:88","type":""}],"src":"24198:413:88"},{"body":{"nativeSrc":"24790:179:88","nodeType":"YulBlock","src":"24790:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24807:9:88","nodeType":"YulIdentifier","src":"24807:9:88"},{"kind":"number","nativeSrc":"24818:2:88","nodeType":"YulLiteral","src":"24818:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24800:6:88","nodeType":"YulIdentifier","src":"24800:6:88"},"nativeSrc":"24800:21:88","nodeType":"YulFunctionCall","src":"24800:21:88"},"nativeSrc":"24800:21:88","nodeType":"YulExpressionStatement","src":"24800:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24841:9:88","nodeType":"YulIdentifier","src":"24841:9:88"},{"kind":"number","nativeSrc":"24852:2:88","nodeType":"YulLiteral","src":"24852:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24837:3:88","nodeType":"YulIdentifier","src":"24837:3:88"},"nativeSrc":"24837:18:88","nodeType":"YulFunctionCall","src":"24837:18:88"},{"kind":"number","nativeSrc":"24857:2:88","nodeType":"YulLiteral","src":"24857:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"24830:6:88","nodeType":"YulIdentifier","src":"24830:6:88"},"nativeSrc":"24830:30:88","nodeType":"YulFunctionCall","src":"24830:30:88"},"nativeSrc":"24830:30:88","nodeType":"YulExpressionStatement","src":"24830:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24880:9:88","nodeType":"YulIdentifier","src":"24880:9:88"},{"kind":"number","nativeSrc":"24891:2:88","nodeType":"YulLiteral","src":"24891:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24876:3:88","nodeType":"YulIdentifier","src":"24876:3:88"},"nativeSrc":"24876:18:88","nodeType":"YulFunctionCall","src":"24876:18:88"},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","kind":"string","nativeSrc":"24896:31:88","nodeType":"YulLiteral","src":"24896:31:88","type":"","value":"Increase requires LEVEL1_ROLE"}],"functionName":{"name":"mstore","nativeSrc":"24869:6:88","nodeType":"YulIdentifier","src":"24869:6:88"},"nativeSrc":"24869:59:88","nodeType":"YulFunctionCall","src":"24869:59:88"},"nativeSrc":"24869:59:88","nodeType":"YulExpressionStatement","src":"24869:59:88"},{"nativeSrc":"24937:26:88","nodeType":"YulAssignment","src":"24937:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24949:9:88","nodeType":"YulIdentifier","src":"24949:9:88"},{"kind":"number","nativeSrc":"24960:2:88","nodeType":"YulLiteral","src":"24960:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24945:3:88","nodeType":"YulIdentifier","src":"24945:3:88"},"nativeSrc":"24945:18:88","nodeType":"YulFunctionCall","src":"24945:18:88"},"variableNames":[{"name":"tail","nativeSrc":"24937:4:88","nodeType":"YulIdentifier","src":"24937:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24616:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24767:9:88","nodeType":"YulTypedName","src":"24767:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24781:4:88","nodeType":"YulTypedName","src":"24781:4:88","type":""}],"src":"24616:353:88"},{"body":{"nativeSrc":"25022:77:88","nodeType":"YulBlock","src":"25022:77:88","statements":[{"nativeSrc":"25032:16:88","nodeType":"YulAssignment","src":"25032:16:88","value":{"arguments":[{"name":"x","nativeSrc":"25043:1:88","nodeType":"YulIdentifier","src":"25043:1:88"},{"name":"y","nativeSrc":"25046:1:88","nodeType":"YulIdentifier","src":"25046:1:88"}],"functionName":{"name":"add","nativeSrc":"25039:3:88","nodeType":"YulIdentifier","src":"25039:3:88"},"nativeSrc":"25039:9:88","nodeType":"YulFunctionCall","src":"25039:9:88"},"variableNames":[{"name":"sum","nativeSrc":"25032:3:88","nodeType":"YulIdentifier","src":"25032:3:88"}]},{"body":{"nativeSrc":"25071:22:88","nodeType":"YulBlock","src":"25071:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"25073:16:88","nodeType":"YulIdentifier","src":"25073:16:88"},"nativeSrc":"25073:18:88","nodeType":"YulFunctionCall","src":"25073:18:88"},"nativeSrc":"25073:18:88","nodeType":"YulExpressionStatement","src":"25073:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"25063:1:88","nodeType":"YulIdentifier","src":"25063:1:88"},{"name":"sum","nativeSrc":"25066:3:88","nodeType":"YulIdentifier","src":"25066:3:88"}],"functionName":{"name":"gt","nativeSrc":"25060:2:88","nodeType":"YulIdentifier","src":"25060:2:88"},"nativeSrc":"25060:10:88","nodeType":"YulFunctionCall","src":"25060:10:88"},"nativeSrc":"25057:36:88","nodeType":"YulIf","src":"25057:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"24974:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"25005:1:88","nodeType":"YulTypedName","src":"25005:1:88","type":""},{"name":"y","nativeSrc":"25008:1:88","nodeType":"YulTypedName","src":"25008:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"25014:3:88","nodeType":"YulTypedName","src":"25014:3:88","type":""}],"src":"24974:125:88"},{"body":{"nativeSrc":"25208:170:88","nodeType":"YulBlock","src":"25208:170:88","statements":[{"body":{"nativeSrc":"25254:16:88","nodeType":"YulBlock","src":"25254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25263:1:88","nodeType":"YulLiteral","src":"25263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"25266:1:88","nodeType":"YulLiteral","src":"25266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25256:6:88","nodeType":"YulIdentifier","src":"25256:6:88"},"nativeSrc":"25256:12:88","nodeType":"YulFunctionCall","src":"25256:12:88"},"nativeSrc":"25256:12:88","nodeType":"YulExpressionStatement","src":"25256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25229:7:88","nodeType":"YulIdentifier","src":"25229:7:88"},{"name":"headStart","nativeSrc":"25238:9:88","nodeType":"YulIdentifier","src":"25238:9:88"}],"functionName":{"name":"sub","nativeSrc":"25225:3:88","nodeType":"YulIdentifier","src":"25225:3:88"},"nativeSrc":"25225:23:88","nodeType":"YulFunctionCall","src":"25225:23:88"},{"kind":"number","nativeSrc":"25250:2:88","nodeType":"YulLiteral","src":"25250:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25221:3:88","nodeType":"YulIdentifier","src":"25221:3:88"},"nativeSrc":"25221:32:88","nodeType":"YulFunctionCall","src":"25221:32:88"},"nativeSrc":"25218:52:88","nodeType":"YulIf","src":"25218:52:88"},{"nativeSrc":"25279:29:88","nodeType":"YulVariableDeclaration","src":"25279:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25298:9:88","nodeType":"YulIdentifier","src":"25298:9:88"}],"functionName":{"name":"mload","nativeSrc":"25292:5:88","nodeType":"YulIdentifier","src":"25292:5:88"},"nativeSrc":"25292:16:88","nodeType":"YulFunctionCall","src":"25292:16:88"},"variables":[{"name":"value","nativeSrc":"25283:5:88","nodeType":"YulTypedName","src":"25283:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25342:5:88","nodeType":"YulIdentifier","src":"25342:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"25317:24:88","nodeType":"YulIdentifier","src":"25317:24:88"},"nativeSrc":"25317:31:88","nodeType":"YulFunctionCall","src":"25317:31:88"},"nativeSrc":"25317:31:88","nodeType":"YulExpressionStatement","src":"25317:31:88"},{"nativeSrc":"25357:15:88","nodeType":"YulAssignment","src":"25357:15:88","value":{"name":"value","nativeSrc":"25367:5:88","nodeType":"YulIdentifier","src":"25367:5:88"},"variableNames":[{"name":"value0","nativeSrc":"25357:6:88","nodeType":"YulIdentifier","src":"25357:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"25104:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25174:9:88","nodeType":"YulTypedName","src":"25174:9:88","type":""},{"name":"dataEnd","nativeSrc":"25185:7:88","nodeType":"YulTypedName","src":"25185:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25197:6:88","nodeType":"YulTypedName","src":"25197:6:88","type":""}],"src":"25104:274:88"},{"body":{"nativeSrc":"25464:103:88","nodeType":"YulBlock","src":"25464:103:88","statements":[{"body":{"nativeSrc":"25510:16:88","nodeType":"YulBlock","src":"25510:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25519:1:88","nodeType":"YulLiteral","src":"25519:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"25522:1:88","nodeType":"YulLiteral","src":"25522:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25512:6:88","nodeType":"YulIdentifier","src":"25512:6:88"},"nativeSrc":"25512:12:88","nodeType":"YulFunctionCall","src":"25512:12:88"},"nativeSrc":"25512:12:88","nodeType":"YulExpressionStatement","src":"25512:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25485:7:88","nodeType":"YulIdentifier","src":"25485:7:88"},{"name":"headStart","nativeSrc":"25494:9:88","nodeType":"YulIdentifier","src":"25494:9:88"}],"functionName":{"name":"sub","nativeSrc":"25481:3:88","nodeType":"YulIdentifier","src":"25481:3:88"},"nativeSrc":"25481:23:88","nodeType":"YulFunctionCall","src":"25481:23:88"},{"kind":"number","nativeSrc":"25506:2:88","nodeType":"YulLiteral","src":"25506:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25477:3:88","nodeType":"YulIdentifier","src":"25477:3:88"},"nativeSrc":"25477:32:88","nodeType":"YulFunctionCall","src":"25477:32:88"},"nativeSrc":"25474:52:88","nodeType":"YulIf","src":"25474:52:88"},{"nativeSrc":"25535:26:88","nodeType":"YulAssignment","src":"25535:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25551:9:88","nodeType":"YulIdentifier","src":"25551:9:88"}],"functionName":{"name":"mload","nativeSrc":"25545:5:88","nodeType":"YulIdentifier","src":"25545:5:88"},"nativeSrc":"25545:16:88","nodeType":"YulFunctionCall","src":"25545:16:88"},"variableNames":[{"name":"value0","nativeSrc":"25535:6:88","nodeType":"YulIdentifier","src":"25535:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"25383:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25430:9:88","nodeType":"YulTypedName","src":"25430:9:88","type":""},{"name":"dataEnd","nativeSrc":"25441:7:88","nodeType":"YulTypedName","src":"25441:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25453:6:88","nodeType":"YulTypedName","src":"25453:6:88","type":""}],"src":"25383:184:88"},{"body":{"nativeSrc":"25746:236:88","nodeType":"YulBlock","src":"25746:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25763:9:88","nodeType":"YulIdentifier","src":"25763:9:88"},{"kind":"number","nativeSrc":"25774:2:88","nodeType":"YulLiteral","src":"25774:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25756:6:88","nodeType":"YulIdentifier","src":"25756:6:88"},"nativeSrc":"25756:21:88","nodeType":"YulFunctionCall","src":"25756:21:88"},"nativeSrc":"25756:21:88","nodeType":"YulExpressionStatement","src":"25756:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25797:9:88","nodeType":"YulIdentifier","src":"25797:9:88"},{"kind":"number","nativeSrc":"25808:2:88","nodeType":"YulLiteral","src":"25808:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25793:3:88","nodeType":"YulIdentifier","src":"25793:3:88"},"nativeSrc":"25793:18:88","nodeType":"YulFunctionCall","src":"25793:18:88"},{"kind":"number","nativeSrc":"25813:2:88","nodeType":"YulLiteral","src":"25813:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"25786:6:88","nodeType":"YulIdentifier","src":"25786:6:88"},"nativeSrc":"25786:30:88","nodeType":"YulFunctionCall","src":"25786:30:88"},"nativeSrc":"25786:30:88","nodeType":"YulExpressionStatement","src":"25786:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25836:9:88","nodeType":"YulIdentifier","src":"25836:9:88"},{"kind":"number","nativeSrc":"25847:2:88","nodeType":"YulLiteral","src":"25847:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25832:3:88","nodeType":"YulIdentifier","src":"25832:3:88"},"nativeSrc":"25832:18:88","nodeType":"YulFunctionCall","src":"25832:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"25852:34:88","nodeType":"YulLiteral","src":"25852:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"25825:6:88","nodeType":"YulIdentifier","src":"25825:6:88"},"nativeSrc":"25825:62:88","nodeType":"YulFunctionCall","src":"25825:62:88"},"nativeSrc":"25825:62:88","nodeType":"YulExpressionStatement","src":"25825:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25907:9:88","nodeType":"YulIdentifier","src":"25907:9:88"},{"kind":"number","nativeSrc":"25918:2:88","nodeType":"YulLiteral","src":"25918:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25903:3:88","nodeType":"YulIdentifier","src":"25903:3:88"},"nativeSrc":"25903:18:88","nodeType":"YulFunctionCall","src":"25903:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"25923:16:88","nodeType":"YulLiteral","src":"25923:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"25896:6:88","nodeType":"YulIdentifier","src":"25896:6:88"},"nativeSrc":"25896:44:88","nodeType":"YulFunctionCall","src":"25896:44:88"},"nativeSrc":"25896:44:88","nodeType":"YulExpressionStatement","src":"25896:44:88"},{"nativeSrc":"25949:27:88","nodeType":"YulAssignment","src":"25949:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25961:9:88","nodeType":"YulIdentifier","src":"25961:9:88"},{"kind":"number","nativeSrc":"25972:3:88","nodeType":"YulLiteral","src":"25972:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25957:3:88","nodeType":"YulIdentifier","src":"25957:3:88"},"nativeSrc":"25957:19:88","nodeType":"YulFunctionCall","src":"25957:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25949:4:88","nodeType":"YulIdentifier","src":"25949:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25572:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25723:9:88","nodeType":"YulTypedName","src":"25723:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25737:4:88","nodeType":"YulTypedName","src":"25737:4:88","type":""}],"src":"25572:410:88"},{"body":{"nativeSrc":"26161:231:88","nodeType":"YulBlock","src":"26161:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26178:9:88","nodeType":"YulIdentifier","src":"26178:9:88"},{"kind":"number","nativeSrc":"26189:2:88","nodeType":"YulLiteral","src":"26189:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26171:6:88","nodeType":"YulIdentifier","src":"26171:6:88"},"nativeSrc":"26171:21:88","nodeType":"YulFunctionCall","src":"26171:21:88"},"nativeSrc":"26171:21:88","nodeType":"YulExpressionStatement","src":"26171:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26212:9:88","nodeType":"YulIdentifier","src":"26212:9:88"},{"kind":"number","nativeSrc":"26223:2:88","nodeType":"YulLiteral","src":"26223:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26208:3:88","nodeType":"YulIdentifier","src":"26208:3:88"},"nativeSrc":"26208:18:88","nodeType":"YulFunctionCall","src":"26208:18:88"},{"kind":"number","nativeSrc":"26228:2:88","nodeType":"YulLiteral","src":"26228:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"26201:6:88","nodeType":"YulIdentifier","src":"26201:6:88"},"nativeSrc":"26201:30:88","nodeType":"YulFunctionCall","src":"26201:30:88"},"nativeSrc":"26201:30:88","nodeType":"YulExpressionStatement","src":"26201:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26251:9:88","nodeType":"YulIdentifier","src":"26251:9:88"},{"kind":"number","nativeSrc":"26262:2:88","nodeType":"YulLiteral","src":"26262:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26247:3:88","nodeType":"YulIdentifier","src":"26247:3:88"},"nativeSrc":"26247:18:88","nodeType":"YulFunctionCall","src":"26247:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"26267:34:88","nodeType":"YulLiteral","src":"26267:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"26240:6:88","nodeType":"YulIdentifier","src":"26240:6:88"},"nativeSrc":"26240:62:88","nodeType":"YulFunctionCall","src":"26240:62:88"},"nativeSrc":"26240:62:88","nodeType":"YulExpressionStatement","src":"26240:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26322:9:88","nodeType":"YulIdentifier","src":"26322:9:88"},{"kind":"number","nativeSrc":"26333:2:88","nodeType":"YulLiteral","src":"26333:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26318:3:88","nodeType":"YulIdentifier","src":"26318:3:88"},"nativeSrc":"26318:18:88","nodeType":"YulFunctionCall","src":"26318:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"26338:11:88","nodeType":"YulLiteral","src":"26338:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"26311:6:88","nodeType":"YulIdentifier","src":"26311:6:88"},"nativeSrc":"26311:39:88","nodeType":"YulFunctionCall","src":"26311:39:88"},"nativeSrc":"26311:39:88","nodeType":"YulExpressionStatement","src":"26311:39:88"},{"nativeSrc":"26359:27:88","nodeType":"YulAssignment","src":"26359:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26371:9:88","nodeType":"YulIdentifier","src":"26371:9:88"},{"kind":"number","nativeSrc":"26382:3:88","nodeType":"YulLiteral","src":"26382:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26367:3:88","nodeType":"YulIdentifier","src":"26367:3:88"},"nativeSrc":"26367:19:88","nodeType":"YulFunctionCall","src":"26367:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26359:4:88","nodeType":"YulIdentifier","src":"26359:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25987:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26138:9:88","nodeType":"YulTypedName","src":"26138:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26152:4:88","nodeType":"YulTypedName","src":"26152:4:88","type":""}],"src":"25987:405:88"},{"body":{"nativeSrc":"26571:166:88","nodeType":"YulBlock","src":"26571:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26588:9:88","nodeType":"YulIdentifier","src":"26588:9:88"},{"kind":"number","nativeSrc":"26599:2:88","nodeType":"YulLiteral","src":"26599:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26581:6:88","nodeType":"YulIdentifier","src":"26581:6:88"},"nativeSrc":"26581:21:88","nodeType":"YulFunctionCall","src":"26581:21:88"},"nativeSrc":"26581:21:88","nodeType":"YulExpressionStatement","src":"26581:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26622:9:88","nodeType":"YulIdentifier","src":"26622:9:88"},{"kind":"number","nativeSrc":"26633:2:88","nodeType":"YulLiteral","src":"26633:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26618:3:88","nodeType":"YulIdentifier","src":"26618:3:88"},"nativeSrc":"26618:18:88","nodeType":"YulFunctionCall","src":"26618:18:88"},{"kind":"number","nativeSrc":"26638:2:88","nodeType":"YulLiteral","src":"26638:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"26611:6:88","nodeType":"YulIdentifier","src":"26611:6:88"},"nativeSrc":"26611:30:88","nodeType":"YulFunctionCall","src":"26611:30:88"},"nativeSrc":"26611:30:88","nodeType":"YulExpressionStatement","src":"26611:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26661:9:88","nodeType":"YulIdentifier","src":"26661:9:88"},{"kind":"number","nativeSrc":"26672:2:88","nodeType":"YulLiteral","src":"26672:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26657:3:88","nodeType":"YulIdentifier","src":"26657:3:88"},"nativeSrc":"26657:18:88","nodeType":"YulFunctionCall","src":"26657:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"26677:18:88","nodeType":"YulLiteral","src":"26677:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"26650:6:88","nodeType":"YulIdentifier","src":"26650:6:88"},"nativeSrc":"26650:46:88","nodeType":"YulFunctionCall","src":"26650:46:88"},"nativeSrc":"26650:46:88","nodeType":"YulExpressionStatement","src":"26650:46:88"},{"nativeSrc":"26705:26:88","nodeType":"YulAssignment","src":"26705:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26717:9:88","nodeType":"YulIdentifier","src":"26717:9:88"},{"kind":"number","nativeSrc":"26728:2:88","nodeType":"YulLiteral","src":"26728:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26713:3:88","nodeType":"YulIdentifier","src":"26713:3:88"},"nativeSrc":"26713:18:88","nodeType":"YulFunctionCall","src":"26713:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26705:4:88","nodeType":"YulIdentifier","src":"26705:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26397:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26548:9:88","nodeType":"YulTypedName","src":"26548:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26562:4:88","nodeType":"YulTypedName","src":"26562:4:88","type":""}],"src":"26397:340:88"},{"body":{"nativeSrc":"27053:452:88","nodeType":"YulBlock","src":"27053:452:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"27070:3:88","nodeType":"YulIdentifier","src":"27070:3:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27083:2:88","nodeType":"YulLiteral","src":"27083:2:88","type":"","value":"96"},{"name":"value0","nativeSrc":"27087:6:88","nodeType":"YulIdentifier","src":"27087:6:88"}],"functionName":{"name":"shl","nativeSrc":"27079:3:88","nodeType":"YulIdentifier","src":"27079:3:88"},"nativeSrc":"27079:15:88","nodeType":"YulFunctionCall","src":"27079:15:88"},{"arguments":[{"kind":"number","nativeSrc":"27100:26:88","nodeType":"YulLiteral","src":"27100:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nativeSrc":"27096:3:88","nodeType":"YulIdentifier","src":"27096:3:88"},"nativeSrc":"27096:31:88","nodeType":"YulFunctionCall","src":"27096:31:88"}],"functionName":{"name":"and","nativeSrc":"27075:3:88","nodeType":"YulIdentifier","src":"27075:3:88"},"nativeSrc":"27075:53:88","nodeType":"YulFunctionCall","src":"27075:53:88"}],"functionName":{"name":"mstore","nativeSrc":"27063:6:88","nodeType":"YulIdentifier","src":"27063:6:88"},"nativeSrc":"27063:66:88","nodeType":"YulFunctionCall","src":"27063:66:88"},"nativeSrc":"27063:66:88","nodeType":"YulExpressionStatement","src":"27063:66:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27149:3:88","nodeType":"YulIdentifier","src":"27149:3:88"},{"kind":"number","nativeSrc":"27154:2:88","nodeType":"YulLiteral","src":"27154:2:88","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"27145:3:88","nodeType":"YulIdentifier","src":"27145:3:88"},"nativeSrc":"27145:12:88","nodeType":"YulFunctionCall","src":"27145:12:88"},{"name":"value1","nativeSrc":"27159:6:88","nodeType":"YulIdentifier","src":"27159:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27138:6:88","nodeType":"YulIdentifier","src":"27138:6:88"},"nativeSrc":"27138:28:88","nodeType":"YulFunctionCall","src":"27138:28:88"},"nativeSrc":"27138:28:88","nodeType":"YulExpressionStatement","src":"27138:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27186:3:88","nodeType":"YulIdentifier","src":"27186:3:88"},{"kind":"number","nativeSrc":"27191:2:88","nodeType":"YulLiteral","src":"27191:2:88","type":"","value":"52"}],"functionName":{"name":"add","nativeSrc":"27182:3:88","nodeType":"YulIdentifier","src":"27182:3:88"},"nativeSrc":"27182:12:88","nodeType":"YulFunctionCall","src":"27182:12:88"},{"name":"value2","nativeSrc":"27196:6:88","nodeType":"YulIdentifier","src":"27196:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27175:6:88","nodeType":"YulIdentifier","src":"27175:6:88"},"nativeSrc":"27175:28:88","nodeType":"YulFunctionCall","src":"27175:28:88"},"nativeSrc":"27175:28:88","nodeType":"YulExpressionStatement","src":"27175:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27223:3:88","nodeType":"YulIdentifier","src":"27223:3:88"},{"kind":"number","nativeSrc":"27228:2:88","nodeType":"YulLiteral","src":"27228:2:88","type":"","value":"84"}],"functionName":{"name":"add","nativeSrc":"27219:3:88","nodeType":"YulIdentifier","src":"27219:3:88"},"nativeSrc":"27219:12:88","nodeType":"YulFunctionCall","src":"27219:12:88"},{"name":"value3","nativeSrc":"27233:6:88","nodeType":"YulIdentifier","src":"27233:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27212:6:88","nodeType":"YulIdentifier","src":"27212:6:88"},"nativeSrc":"27212:28:88","nodeType":"YulFunctionCall","src":"27212:28:88"},"nativeSrc":"27212:28:88","nodeType":"YulExpressionStatement","src":"27212:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27260:3:88","nodeType":"YulIdentifier","src":"27260:3:88"},{"kind":"number","nativeSrc":"27265:3:88","nodeType":"YulLiteral","src":"27265:3:88","type":"","value":"116"}],"functionName":{"name":"add","nativeSrc":"27256:3:88","nodeType":"YulIdentifier","src":"27256:3:88"},"nativeSrc":"27256:13:88","nodeType":"YulFunctionCall","src":"27256:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27279:3:88","nodeType":"YulLiteral","src":"27279:3:88","type":"","value":"216"},{"name":"value4","nativeSrc":"27284:6:88","nodeType":"YulIdentifier","src":"27284:6:88"}],"functionName":{"name":"shl","nativeSrc":"27275:3:88","nodeType":"YulIdentifier","src":"27275:3:88"},"nativeSrc":"27275:16:88","nodeType":"YulFunctionCall","src":"27275:16:88"},{"arguments":[{"kind":"number","nativeSrc":"27297:3:88","nodeType":"YulLiteral","src":"27297:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"27302:12:88","nodeType":"YulLiteral","src":"27302:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"27293:3:88","nodeType":"YulIdentifier","src":"27293:3:88"},"nativeSrc":"27293:22:88","nodeType":"YulFunctionCall","src":"27293:22:88"}],"functionName":{"name":"and","nativeSrc":"27271:3:88","nodeType":"YulIdentifier","src":"27271:3:88"},"nativeSrc":"27271:45:88","nodeType":"YulFunctionCall","src":"27271:45:88"}],"functionName":{"name":"mstore","nativeSrc":"27249:6:88","nodeType":"YulIdentifier","src":"27249:6:88"},"nativeSrc":"27249:68:88","nodeType":"YulFunctionCall","src":"27249:68:88"},"nativeSrc":"27249:68:88","nodeType":"YulExpressionStatement","src":"27249:68:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27337:3:88","nodeType":"YulIdentifier","src":"27337:3:88"},{"kind":"number","nativeSrc":"27342:3:88","nodeType":"YulLiteral","src":"27342:3:88","type":"","value":"121"}],"functionName":{"name":"add","nativeSrc":"27333:3:88","nodeType":"YulIdentifier","src":"27333:3:88"},"nativeSrc":"27333:13:88","nodeType":"YulFunctionCall","src":"27333:13:88"},{"name":"value5","nativeSrc":"27348:6:88","nodeType":"YulIdentifier","src":"27348:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27326:6:88","nodeType":"YulIdentifier","src":"27326:6:88"},"nativeSrc":"27326:29:88","nodeType":"YulFunctionCall","src":"27326:29:88"},"nativeSrc":"27326:29:88","nodeType":"YulExpressionStatement","src":"27326:29:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27375:3:88","nodeType":"YulIdentifier","src":"27375:3:88"},{"kind":"number","nativeSrc":"27380:3:88","nodeType":"YulLiteral","src":"27380:3:88","type":"","value":"153"}],"functionName":{"name":"add","nativeSrc":"27371:3:88","nodeType":"YulIdentifier","src":"27371:3:88"},"nativeSrc":"27371:13:88","nodeType":"YulFunctionCall","src":"27371:13:88"},{"name":"value6","nativeSrc":"27386:6:88","nodeType":"YulIdentifier","src":"27386:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27364:6:88","nodeType":"YulIdentifier","src":"27364:6:88"},"nativeSrc":"27364:29:88","nodeType":"YulFunctionCall","src":"27364:29:88"},"nativeSrc":"27364:29:88","nodeType":"YulExpressionStatement","src":"27364:29:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27413:3:88","nodeType":"YulIdentifier","src":"27413:3:88"},{"kind":"number","nativeSrc":"27418:3:88","nodeType":"YulLiteral","src":"27418:3:88","type":"","value":"185"}],"functionName":{"name":"add","nativeSrc":"27409:3:88","nodeType":"YulIdentifier","src":"27409:3:88"},"nativeSrc":"27409:13:88","nodeType":"YulFunctionCall","src":"27409:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27432:3:88","nodeType":"YulLiteral","src":"27432:3:88","type":"","value":"216"},{"name":"value7","nativeSrc":"27437:6:88","nodeType":"YulIdentifier","src":"27437:6:88"}],"functionName":{"name":"shl","nativeSrc":"27428:3:88","nodeType":"YulIdentifier","src":"27428:3:88"},"nativeSrc":"27428:16:88","nodeType":"YulFunctionCall","src":"27428:16:88"},{"arguments":[{"kind":"number","nativeSrc":"27450:3:88","nodeType":"YulLiteral","src":"27450:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"27455:12:88","nodeType":"YulLiteral","src":"27455:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"27446:3:88","nodeType":"YulIdentifier","src":"27446:3:88"},"nativeSrc":"27446:22:88","nodeType":"YulFunctionCall","src":"27446:22:88"}],"functionName":{"name":"and","nativeSrc":"27424:3:88","nodeType":"YulIdentifier","src":"27424:3:88"},"nativeSrc":"27424:45:88","nodeType":"YulFunctionCall","src":"27424:45:88"}],"functionName":{"name":"mstore","nativeSrc":"27402:6:88","nodeType":"YulIdentifier","src":"27402:6:88"},"nativeSrc":"27402:68:88","nodeType":"YulFunctionCall","src":"27402:68:88"},"nativeSrc":"27402:68:88","nodeType":"YulExpressionStatement","src":"27402:68:88"},{"nativeSrc":"27479:20:88","nodeType":"YulAssignment","src":"27479:20:88","value":{"arguments":[{"name":"pos","nativeSrc":"27490:3:88","nodeType":"YulIdentifier","src":"27490:3:88"},{"kind":"number","nativeSrc":"27495:3:88","nodeType":"YulLiteral","src":"27495:3:88","type":"","value":"190"}],"functionName":{"name":"add","nativeSrc":"27486:3:88","nodeType":"YulIdentifier","src":"27486:3:88"},"nativeSrc":"27486:13:88","nodeType":"YulFunctionCall","src":"27486:13:88"},"variableNames":[{"name":"end","nativeSrc":"27479:3:88","nodeType":"YulIdentifier","src":"27479:3:88"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed","nativeSrc":"26742:763:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26973:3:88","nodeType":"YulTypedName","src":"26973:3:88","type":""},{"name":"value7","nativeSrc":"26978:6:88","nodeType":"YulTypedName","src":"26978:6:88","type":""},{"name":"value6","nativeSrc":"26986:6:88","nodeType":"YulTypedName","src":"26986:6:88","type":""},{"name":"value5","nativeSrc":"26994:6:88","nodeType":"YulTypedName","src":"26994:6:88","type":""},{"name":"value4","nativeSrc":"27002:6:88","nodeType":"YulTypedName","src":"27002:6:88","type":""},{"name":"value3","nativeSrc":"27010:6:88","nodeType":"YulTypedName","src":"27010:6:88","type":""},{"name":"value2","nativeSrc":"27018:6:88","nodeType":"YulTypedName","src":"27018:6:88","type":""},{"name":"value1","nativeSrc":"27026:6:88","nodeType":"YulTypedName","src":"27026:6:88","type":""},{"name":"value0","nativeSrc":"27034:6:88","nodeType":"YulTypedName","src":"27034:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27045:3:88","nodeType":"YulTypedName","src":"27045:3:88","type":""}],"src":"26742:763:88"},{"body":{"nativeSrc":"27542:95:88","nodeType":"YulBlock","src":"27542:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27559:1:88","nodeType":"YulLiteral","src":"27559:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"27566:3:88","nodeType":"YulLiteral","src":"27566:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"27571:10:88","nodeType":"YulLiteral","src":"27571:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"27562:3:88","nodeType":"YulIdentifier","src":"27562:3:88"},"nativeSrc":"27562:20:88","nodeType":"YulFunctionCall","src":"27562:20:88"}],"functionName":{"name":"mstore","nativeSrc":"27552:6:88","nodeType":"YulIdentifier","src":"27552:6:88"},"nativeSrc":"27552:31:88","nodeType":"YulFunctionCall","src":"27552:31:88"},"nativeSrc":"27552:31:88","nodeType":"YulExpressionStatement","src":"27552:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27599:1:88","nodeType":"YulLiteral","src":"27599:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"27602:4:88","nodeType":"YulLiteral","src":"27602:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"27592:6:88","nodeType":"YulIdentifier","src":"27592:6:88"},"nativeSrc":"27592:15:88","nodeType":"YulFunctionCall","src":"27592:15:88"},"nativeSrc":"27592:15:88","nodeType":"YulExpressionStatement","src":"27592:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27623:1:88","nodeType":"YulLiteral","src":"27623:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"27626:4:88","nodeType":"YulLiteral","src":"27626:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27616:6:88","nodeType":"YulIdentifier","src":"27616:6:88"},"nativeSrc":"27616:15:88","nodeType":"YulFunctionCall","src":"27616:15:88"},"nativeSrc":"27616:15:88","nodeType":"YulExpressionStatement","src":"27616:15:88"}]},"name":"panic_error_0x12","nativeSrc":"27510:127:88","nodeType":"YulFunctionDefinition","src":"27510:127:88"},{"body":{"nativeSrc":"27680:74:88","nodeType":"YulBlock","src":"27680:74:88","statements":[{"body":{"nativeSrc":"27703:22:88","nodeType":"YulBlock","src":"27703:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"27705:16:88","nodeType":"YulIdentifier","src":"27705:16:88"},"nativeSrc":"27705:18:88","nodeType":"YulFunctionCall","src":"27705:18:88"},"nativeSrc":"27705:18:88","nodeType":"YulExpressionStatement","src":"27705:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"27700:1:88","nodeType":"YulIdentifier","src":"27700:1:88"}],"functionName":{"name":"iszero","nativeSrc":"27693:6:88","nodeType":"YulIdentifier","src":"27693:6:88"},"nativeSrc":"27693:9:88","nodeType":"YulFunctionCall","src":"27693:9:88"},"nativeSrc":"27690:35:88","nodeType":"YulIf","src":"27690:35:88"},{"nativeSrc":"27734:14:88","nodeType":"YulAssignment","src":"27734:14:88","value":{"arguments":[{"name":"x","nativeSrc":"27743:1:88","nodeType":"YulIdentifier","src":"27743:1:88"},{"name":"y","nativeSrc":"27746:1:88","nodeType":"YulIdentifier","src":"27746:1:88"}],"functionName":{"name":"mod","nativeSrc":"27739:3:88","nodeType":"YulIdentifier","src":"27739:3:88"},"nativeSrc":"27739:9:88","nodeType":"YulFunctionCall","src":"27739:9:88"},"variableNames":[{"name":"r","nativeSrc":"27734:1:88","nodeType":"YulIdentifier","src":"27734:1:88"}]}]},"name":"mod_t_uint256","nativeSrc":"27642:112:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27665:1:88","nodeType":"YulTypedName","src":"27665:1:88","type":""},{"name":"y","nativeSrc":"27668:1:88","nodeType":"YulTypedName","src":"27668:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"27674:1:88","nodeType":"YulTypedName","src":"27674:1:88","type":""}],"src":"27642:112:88"},{"body":{"nativeSrc":"27828:115:88","nodeType":"YulBlock","src":"27828:115:88","statements":[{"body":{"nativeSrc":"27874:16:88","nodeType":"YulBlock","src":"27874:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27883:1:88","nodeType":"YulLiteral","src":"27883:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"27886:1:88","nodeType":"YulLiteral","src":"27886:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27876:6:88","nodeType":"YulIdentifier","src":"27876:6:88"},"nativeSrc":"27876:12:88","nodeType":"YulFunctionCall","src":"27876:12:88"},"nativeSrc":"27876:12:88","nodeType":"YulExpressionStatement","src":"27876:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27849:7:88","nodeType":"YulIdentifier","src":"27849:7:88"},{"name":"headStart","nativeSrc":"27858:9:88","nodeType":"YulIdentifier","src":"27858:9:88"}],"functionName":{"name":"sub","nativeSrc":"27845:3:88","nodeType":"YulIdentifier","src":"27845:3:88"},"nativeSrc":"27845:23:88","nodeType":"YulFunctionCall","src":"27845:23:88"},{"kind":"number","nativeSrc":"27870:2:88","nodeType":"YulLiteral","src":"27870:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27841:3:88","nodeType":"YulIdentifier","src":"27841:3:88"},"nativeSrc":"27841:32:88","nodeType":"YulFunctionCall","src":"27841:32:88"},"nativeSrc":"27838:52:88","nodeType":"YulIf","src":"27838:52:88"},{"nativeSrc":"27899:38:88","nodeType":"YulAssignment","src":"27899:38:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27927:9:88","nodeType":"YulIdentifier","src":"27927:9:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"27909:17:88","nodeType":"YulIdentifier","src":"27909:17:88"},"nativeSrc":"27909:28:88","nodeType":"YulFunctionCall","src":"27909:28:88"},"variableNames":[{"name":"value0","nativeSrc":"27899:6:88","nodeType":"YulIdentifier","src":"27899:6:88"}]}]},"name":"abi_decode_tuple_t_uint40","nativeSrc":"27759:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27794:9:88","nodeType":"YulTypedName","src":"27794:9:88","type":""},{"name":"dataEnd","nativeSrc":"27805:7:88","nodeType":"YulTypedName","src":"27805:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27817:6:88","nodeType":"YulTypedName","src":"27817:6:88","type":""}],"src":"27759:184:88"},{"body":{"nativeSrc":"28122:182:88","nodeType":"YulBlock","src":"28122:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28139:9:88","nodeType":"YulIdentifier","src":"28139:9:88"},{"kind":"number","nativeSrc":"28150:2:88","nodeType":"YulLiteral","src":"28150:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28132:6:88","nodeType":"YulIdentifier","src":"28132:6:88"},"nativeSrc":"28132:21:88","nodeType":"YulFunctionCall","src":"28132:21:88"},"nativeSrc":"28132:21:88","nodeType":"YulExpressionStatement","src":"28132:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28173:9:88","nodeType":"YulIdentifier","src":"28173:9:88"},{"kind":"number","nativeSrc":"28184:2:88","nodeType":"YulLiteral","src":"28184:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28169:3:88","nodeType":"YulIdentifier","src":"28169:3:88"},"nativeSrc":"28169:18:88","nodeType":"YulFunctionCall","src":"28169:18:88"},{"kind":"number","nativeSrc":"28189:2:88","nodeType":"YulLiteral","src":"28189:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28162:6:88","nodeType":"YulIdentifier","src":"28162:6:88"},"nativeSrc":"28162:30:88","nodeType":"YulFunctionCall","src":"28162:30:88"},"nativeSrc":"28162:30:88","nodeType":"YulExpressionStatement","src":"28162:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28212:9:88","nodeType":"YulIdentifier","src":"28212:9:88"},{"kind":"number","nativeSrc":"28223:2:88","nodeType":"YulLiteral","src":"28223:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28208:3:88","nodeType":"YulIdentifier","src":"28208:3:88"},"nativeSrc":"28208:18:88","nodeType":"YulFunctionCall","src":"28208:18:88"},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","kind":"string","nativeSrc":"28228:34:88","nodeType":"YulLiteral","src":"28228:34:88","type":"","value":"Premium must be less than payout"}],"functionName":{"name":"mstore","nativeSrc":"28201:6:88","nodeType":"YulIdentifier","src":"28201:6:88"},"nativeSrc":"28201:62:88","nodeType":"YulFunctionCall","src":"28201:62:88"},"nativeSrc":"28201:62:88","nodeType":"YulExpressionStatement","src":"28201:62:88"},{"nativeSrc":"28272:26:88","nodeType":"YulAssignment","src":"28272:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28284:9:88","nodeType":"YulIdentifier","src":"28284:9:88"},{"kind":"number","nativeSrc":"28295:2:88","nodeType":"YulLiteral","src":"28295:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28280:3:88","nodeType":"YulIdentifier","src":"28280:3:88"},"nativeSrc":"28280:18:88","nodeType":"YulFunctionCall","src":"28280:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28272:4:88","nodeType":"YulIdentifier","src":"28272:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27948:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28099:9:88","nodeType":"YulTypedName","src":"28099:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28113:4:88","nodeType":"YulTypedName","src":"28113:4:88","type":""}],"src":"27948:356:88"},{"body":{"nativeSrc":"28483:171:88","nodeType":"YulBlock","src":"28483:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28500:9:88","nodeType":"YulIdentifier","src":"28500:9:88"},{"kind":"number","nativeSrc":"28511:2:88","nodeType":"YulLiteral","src":"28511:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28493:6:88","nodeType":"YulIdentifier","src":"28493:6:88"},"nativeSrc":"28493:21:88","nodeType":"YulFunctionCall","src":"28493:21:88"},"nativeSrc":"28493:21:88","nodeType":"YulExpressionStatement","src":"28493:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28534:9:88","nodeType":"YulIdentifier","src":"28534:9:88"},{"kind":"number","nativeSrc":"28545:2:88","nodeType":"YulLiteral","src":"28545:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28530:3:88","nodeType":"YulIdentifier","src":"28530:3:88"},"nativeSrc":"28530:18:88","nodeType":"YulFunctionCall","src":"28530:18:88"},{"kind":"number","nativeSrc":"28550:2:88","nodeType":"YulLiteral","src":"28550:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"28523:6:88","nodeType":"YulIdentifier","src":"28523:6:88"},"nativeSrc":"28523:30:88","nodeType":"YulFunctionCall","src":"28523:30:88"},"nativeSrc":"28523:30:88","nodeType":"YulExpressionStatement","src":"28523:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28573:9:88","nodeType":"YulIdentifier","src":"28573:9:88"},{"kind":"number","nativeSrc":"28584:2:88","nodeType":"YulLiteral","src":"28584:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28569:3:88","nodeType":"YulIdentifier","src":"28569:3:88"},"nativeSrc":"28569:18:88","nodeType":"YulFunctionCall","src":"28569:18:88"},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","kind":"string","nativeSrc":"28589:23:88","nodeType":"YulLiteral","src":"28589:23:88","type":"","value":"Old policy is expired"}],"functionName":{"name":"mstore","nativeSrc":"28562:6:88","nodeType":"YulIdentifier","src":"28562:6:88"},"nativeSrc":"28562:51:88","nodeType":"YulFunctionCall","src":"28562:51:88"},"nativeSrc":"28562:51:88","nodeType":"YulExpressionStatement","src":"28562:51:88"},{"nativeSrc":"28622:26:88","nodeType":"YulAssignment","src":"28622:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28634:9:88","nodeType":"YulIdentifier","src":"28634:9:88"},{"kind":"number","nativeSrc":"28645:2:88","nodeType":"YulLiteral","src":"28645:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28630:3:88","nodeType":"YulIdentifier","src":"28630:3:88"},"nativeSrc":"28630:18:88","nodeType":"YulFunctionCall","src":"28630:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28622:4:88","nodeType":"YulIdentifier","src":"28622:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28309:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28460:9:88","nodeType":"YulTypedName","src":"28460:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28474:4:88","nodeType":"YulTypedName","src":"28474:4:88","type":""}],"src":"28309:345:88"},{"body":{"nativeSrc":"28833:249:88","nodeType":"YulBlock","src":"28833:249:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28850:9:88","nodeType":"YulIdentifier","src":"28850:9:88"},{"kind":"number","nativeSrc":"28861:2:88","nodeType":"YulLiteral","src":"28861:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28843:6:88","nodeType":"YulIdentifier","src":"28843:6:88"},"nativeSrc":"28843:21:88","nodeType":"YulFunctionCall","src":"28843:21:88"},"nativeSrc":"28843:21:88","nodeType":"YulExpressionStatement","src":"28843:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28884:9:88","nodeType":"YulIdentifier","src":"28884:9:88"},{"kind":"number","nativeSrc":"28895:2:88","nodeType":"YulLiteral","src":"28895:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28880:3:88","nodeType":"YulIdentifier","src":"28880:3:88"},"nativeSrc":"28880:18:88","nodeType":"YulFunctionCall","src":"28880:18:88"},{"kind":"number","nativeSrc":"28900:2:88","nodeType":"YulLiteral","src":"28900:2:88","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"28873:6:88","nodeType":"YulIdentifier","src":"28873:6:88"},"nativeSrc":"28873:30:88","nodeType":"YulFunctionCall","src":"28873:30:88"},"nativeSrc":"28873:30:88","nodeType":"YulExpressionStatement","src":"28873:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28923:9:88","nodeType":"YulIdentifier","src":"28923:9:88"},{"kind":"number","nativeSrc":"28934:2:88","nodeType":"YulLiteral","src":"28934:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28919:3:88","nodeType":"YulIdentifier","src":"28919:3:88"},"nativeSrc":"28919:18:88","nodeType":"YulFunctionCall","src":"28919:18:88"},{"hexValue":"506f6c696379207265706c6163656d656e74206d757374206265206772656174","kind":"string","nativeSrc":"28939:34:88","nodeType":"YulLiteral","src":"28939:34:88","type":"","value":"Policy replacement must be great"}],"functionName":{"name":"mstore","nativeSrc":"28912:6:88","nodeType":"YulIdentifier","src":"28912:6:88"},"nativeSrc":"28912:62:88","nodeType":"YulFunctionCall","src":"28912:62:88"},"nativeSrc":"28912:62:88","nodeType":"YulExpressionStatement","src":"28912:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28994:9:88","nodeType":"YulIdentifier","src":"28994:9:88"},{"kind":"number","nativeSrc":"29005:2:88","nodeType":"YulLiteral","src":"29005:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28990:3:88","nodeType":"YulIdentifier","src":"28990:3:88"},"nativeSrc":"28990:18:88","nodeType":"YulFunctionCall","src":"28990:18:88"},{"hexValue":"6572206f7220657175616c207468616e206f6c6420706f6c696379","kind":"string","nativeSrc":"29010:29:88","nodeType":"YulLiteral","src":"29010:29:88","type":"","value":"er or equal than old policy"}],"functionName":{"name":"mstore","nativeSrc":"28983:6:88","nodeType":"YulIdentifier","src":"28983:6:88"},"nativeSrc":"28983:57:88","nodeType":"YulFunctionCall","src":"28983:57:88"},"nativeSrc":"28983:57:88","nodeType":"YulExpressionStatement","src":"28983:57:88"},{"nativeSrc":"29049:27:88","nodeType":"YulAssignment","src":"29049:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29061:9:88","nodeType":"YulIdentifier","src":"29061:9:88"},{"kind":"number","nativeSrc":"29072:3:88","nodeType":"YulLiteral","src":"29072:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29057:3:88","nodeType":"YulIdentifier","src":"29057:3:88"},"nativeSrc":"29057:19:88","nodeType":"YulFunctionCall","src":"29057:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29049:4:88","nodeType":"YulIdentifier","src":"29049:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28659:423:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28810:9:88","nodeType":"YulTypedName","src":"28810:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28824:4:88","nodeType":"YulTypedName","src":"28824:4:88","type":""}],"src":"28659:423:88"},{"body":{"nativeSrc":"29135:128:88","nodeType":"YulBlock","src":"29135:128:88","statements":[{"nativeSrc":"29145:55:88","nodeType":"YulAssignment","src":"29145:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29161:1:88","nodeType":"YulIdentifier","src":"29161:1:88"},{"kind":"number","nativeSrc":"29164:12:88","nodeType":"YulLiteral","src":"29164:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"29157:3:88","nodeType":"YulIdentifier","src":"29157:3:88"},"nativeSrc":"29157:20:88","nodeType":"YulFunctionCall","src":"29157:20:88"},{"arguments":[{"name":"y","nativeSrc":"29183:1:88","nodeType":"YulIdentifier","src":"29183:1:88"},{"kind":"number","nativeSrc":"29186:12:88","nodeType":"YulLiteral","src":"29186:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"29179:3:88","nodeType":"YulIdentifier","src":"29179:3:88"},"nativeSrc":"29179:20:88","nodeType":"YulFunctionCall","src":"29179:20:88"}],"functionName":{"name":"sub","nativeSrc":"29153:3:88","nodeType":"YulIdentifier","src":"29153:3:88"},"nativeSrc":"29153:47:88","nodeType":"YulFunctionCall","src":"29153:47:88"},"variableNames":[{"name":"diff","nativeSrc":"29145:4:88","nodeType":"YulIdentifier","src":"29145:4:88"}]},{"body":{"nativeSrc":"29235:22:88","nodeType":"YulBlock","src":"29235:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29237:16:88","nodeType":"YulIdentifier","src":"29237:16:88"},"nativeSrc":"29237:18:88","nodeType":"YulFunctionCall","src":"29237:18:88"},"nativeSrc":"29237:18:88","nodeType":"YulExpressionStatement","src":"29237:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"29215:4:88","nodeType":"YulIdentifier","src":"29215:4:88"},{"kind":"number","nativeSrc":"29221:12:88","nodeType":"YulLiteral","src":"29221:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"29212:2:88","nodeType":"YulIdentifier","src":"29212:2:88"},"nativeSrc":"29212:22:88","nodeType":"YulFunctionCall","src":"29212:22:88"},"nativeSrc":"29209:48:88","nodeType":"YulIf","src":"29209:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"29087:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29117:1:88","nodeType":"YulTypedName","src":"29117:1:88","type":""},{"name":"y","nativeSrc":"29120:1:88","nodeType":"YulTypedName","src":"29120:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"29126:4:88","nodeType":"YulTypedName","src":"29126:4:88","type":""}],"src":"29087:176:88"},{"body":{"nativeSrc":"29313:137:88","nodeType":"YulBlock","src":"29313:137:88","statements":[{"nativeSrc":"29323:31:88","nodeType":"YulVariableDeclaration","src":"29323:31:88","value":{"arguments":[{"name":"y","nativeSrc":"29338:1:88","nodeType":"YulIdentifier","src":"29338:1:88"},{"kind":"number","nativeSrc":"29341:12:88","nodeType":"YulLiteral","src":"29341:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"29334:3:88","nodeType":"YulIdentifier","src":"29334:3:88"},"nativeSrc":"29334:20:88","nodeType":"YulFunctionCall","src":"29334:20:88"},"variables":[{"name":"y_1","nativeSrc":"29327:3:88","nodeType":"YulTypedName","src":"29327:3:88","type":""}]},{"body":{"nativeSrc":"29378:22:88","nodeType":"YulBlock","src":"29378:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"29380:16:88","nodeType":"YulIdentifier","src":"29380:16:88"},"nativeSrc":"29380:18:88","nodeType":"YulFunctionCall","src":"29380:18:88"},"nativeSrc":"29380:18:88","nodeType":"YulExpressionStatement","src":"29380:18:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"29373:3:88","nodeType":"YulIdentifier","src":"29373:3:88"}],"functionName":{"name":"iszero","nativeSrc":"29366:6:88","nodeType":"YulIdentifier","src":"29366:6:88"},"nativeSrc":"29366:11:88","nodeType":"YulFunctionCall","src":"29366:11:88"},"nativeSrc":"29363:37:88","nodeType":"YulIf","src":"29363:37:88"},{"nativeSrc":"29409:35:88","nodeType":"YulAssignment","src":"29409:35:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29422:1:88","nodeType":"YulIdentifier","src":"29422:1:88"},{"kind":"number","nativeSrc":"29425:12:88","nodeType":"YulLiteral","src":"29425:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"29418:3:88","nodeType":"YulIdentifier","src":"29418:3:88"},"nativeSrc":"29418:20:88","nodeType":"YulFunctionCall","src":"29418:20:88"},{"name":"y_1","nativeSrc":"29440:3:88","nodeType":"YulIdentifier","src":"29440:3:88"}],"functionName":{"name":"div","nativeSrc":"29414:3:88","nodeType":"YulIdentifier","src":"29414:3:88"},"nativeSrc":"29414:30:88","nodeType":"YulFunctionCall","src":"29414:30:88"},"variableNames":[{"name":"r","nativeSrc":"29409:1:88","nodeType":"YulIdentifier","src":"29409:1:88"}]}]},"name":"checked_div_t_uint40","nativeSrc":"29268:182:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29298:1:88","nodeType":"YulTypedName","src":"29298:1:88","type":""},{"name":"y","nativeSrc":"29301:1:88","nodeType":"YulTypedName","src":"29301:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"29307:1:88","nodeType":"YulTypedName","src":"29307:1:88","type":""}],"src":"29268:182:88"},{"body":{"nativeSrc":"29629:177:88","nodeType":"YulBlock","src":"29629:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29646:9:88","nodeType":"YulIdentifier","src":"29646:9:88"},{"kind":"number","nativeSrc":"29657:2:88","nodeType":"YulLiteral","src":"29657:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29639:6:88","nodeType":"YulIdentifier","src":"29639:6:88"},"nativeSrc":"29639:21:88","nodeType":"YulFunctionCall","src":"29639:21:88"},"nativeSrc":"29639:21:88","nodeType":"YulExpressionStatement","src":"29639:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29680:9:88","nodeType":"YulIdentifier","src":"29680:9:88"},{"kind":"number","nativeSrc":"29691:2:88","nodeType":"YulLiteral","src":"29691:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29676:3:88","nodeType":"YulIdentifier","src":"29676:3:88"},"nativeSrc":"29676:18:88","nodeType":"YulFunctionCall","src":"29676:18:88"},{"kind":"number","nativeSrc":"29696:2:88","nodeType":"YulLiteral","src":"29696:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"29669:6:88","nodeType":"YulIdentifier","src":"29669:6:88"},"nativeSrc":"29669:30:88","nodeType":"YulFunctionCall","src":"29669:30:88"},"nativeSrc":"29669:30:88","nodeType":"YulExpressionStatement","src":"29669:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29719:9:88","nodeType":"YulIdentifier","src":"29719:9:88"},{"kind":"number","nativeSrc":"29730:2:88","nodeType":"YulLiteral","src":"29730:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29715:3:88","nodeType":"YulIdentifier","src":"29715:3:88"},"nativeSrc":"29715:18:88","nodeType":"YulFunctionCall","src":"29715:18:88"},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","kind":"string","nativeSrc":"29735:29:88","nodeType":"YulLiteral","src":"29735:29:88","type":"","value":"Policy exceeds max duration"}],"functionName":{"name":"mstore","nativeSrc":"29708:6:88","nodeType":"YulIdentifier","src":"29708:6:88"},"nativeSrc":"29708:57:88","nodeType":"YulFunctionCall","src":"29708:57:88"},"nativeSrc":"29708:57:88","nodeType":"YulExpressionStatement","src":"29708:57:88"},{"nativeSrc":"29774:26:88","nodeType":"YulAssignment","src":"29774:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29786:9:88","nodeType":"YulIdentifier","src":"29786:9:88"},{"kind":"number","nativeSrc":"29797:2:88","nodeType":"YulLiteral","src":"29797:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29782:3:88","nodeType":"YulIdentifier","src":"29782:3:88"},"nativeSrc":"29782:18:88","nodeType":"YulFunctionCall","src":"29782:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29774:4:88","nodeType":"YulIdentifier","src":"29774:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29455:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29606:9:88","nodeType":"YulTypedName","src":"29606:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29620:4:88","nodeType":"YulTypedName","src":"29620:4:88","type":""}],"src":"29455:351:88"},{"body":{"nativeSrc":"29940:171:88","nodeType":"YulBlock","src":"29940:171:88","statements":[{"nativeSrc":"29950:26:88","nodeType":"YulAssignment","src":"29950:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29962:9:88","nodeType":"YulIdentifier","src":"29962:9:88"},{"kind":"number","nativeSrc":"29973:2:88","nodeType":"YulLiteral","src":"29973:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29958:3:88","nodeType":"YulIdentifier","src":"29958:3:88"},"nativeSrc":"29958:18:88","nodeType":"YulFunctionCall","src":"29958:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29950:4:88","nodeType":"YulIdentifier","src":"29950:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29992:9:88","nodeType":"YulIdentifier","src":"29992:9:88"},{"arguments":[{"name":"value0","nativeSrc":"30007:6:88","nodeType":"YulIdentifier","src":"30007:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30023:3:88","nodeType":"YulLiteral","src":"30023:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"30028:1:88","nodeType":"YulLiteral","src":"30028:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30019:3:88","nodeType":"YulIdentifier","src":"30019:3:88"},"nativeSrc":"30019:11:88","nodeType":"YulFunctionCall","src":"30019:11:88"},{"kind":"number","nativeSrc":"30032:1:88","nodeType":"YulLiteral","src":"30032:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30015:3:88","nodeType":"YulIdentifier","src":"30015:3:88"},"nativeSrc":"30015:19:88","nodeType":"YulFunctionCall","src":"30015:19:88"}],"functionName":{"name":"and","nativeSrc":"30003:3:88","nodeType":"YulIdentifier","src":"30003:3:88"},"nativeSrc":"30003:32:88","nodeType":"YulFunctionCall","src":"30003:32:88"}],"functionName":{"name":"mstore","nativeSrc":"29985:6:88","nodeType":"YulIdentifier","src":"29985:6:88"},"nativeSrc":"29985:51:88","nodeType":"YulFunctionCall","src":"29985:51:88"},"nativeSrc":"29985:51:88","nodeType":"YulExpressionStatement","src":"29985:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30056:9:88","nodeType":"YulIdentifier","src":"30056:9:88"},{"kind":"number","nativeSrc":"30067:2:88","nodeType":"YulLiteral","src":"30067:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30052:3:88","nodeType":"YulIdentifier","src":"30052:3:88"},"nativeSrc":"30052:18:88","nodeType":"YulFunctionCall","src":"30052:18:88"},{"arguments":[{"name":"value1","nativeSrc":"30076:6:88","nodeType":"YulIdentifier","src":"30076:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30092:3:88","nodeType":"YulLiteral","src":"30092:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"30097:1:88","nodeType":"YulLiteral","src":"30097:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30088:3:88","nodeType":"YulIdentifier","src":"30088:3:88"},"nativeSrc":"30088:11:88","nodeType":"YulFunctionCall","src":"30088:11:88"},{"kind":"number","nativeSrc":"30101:1:88","nodeType":"YulLiteral","src":"30101:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30084:3:88","nodeType":"YulIdentifier","src":"30084:3:88"},"nativeSrc":"30084:19:88","nodeType":"YulFunctionCall","src":"30084:19:88"}],"functionName":{"name":"and","nativeSrc":"30072:3:88","nodeType":"YulIdentifier","src":"30072:3:88"},"nativeSrc":"30072:32:88","nodeType":"YulFunctionCall","src":"30072:32:88"}],"functionName":{"name":"mstore","nativeSrc":"30045:6:88","nodeType":"YulIdentifier","src":"30045:6:88"},"nativeSrc":"30045:60:88","nodeType":"YulFunctionCall","src":"30045:60:88"},"nativeSrc":"30045:60:88","nodeType":"YulExpressionStatement","src":"30045:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"29811:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29901:9:88","nodeType":"YulTypedName","src":"29901:9:88","type":""},{"name":"value1","nativeSrc":"29912:6:88","nodeType":"YulTypedName","src":"29912:6:88","type":""},{"name":"value0","nativeSrc":"29920:6:88","nodeType":"YulTypedName","src":"29920:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29931:4:88","nodeType":"YulTypedName","src":"29931:4:88","type":""}],"src":"29811:300:88"},{"body":{"nativeSrc":"30197:103:88","nodeType":"YulBlock","src":"30197:103:88","statements":[{"body":{"nativeSrc":"30243:16:88","nodeType":"YulBlock","src":"30243:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30252:1:88","nodeType":"YulLiteral","src":"30252:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"30255:1:88","nodeType":"YulLiteral","src":"30255:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30245:6:88","nodeType":"YulIdentifier","src":"30245:6:88"},"nativeSrc":"30245:12:88","nodeType":"YulFunctionCall","src":"30245:12:88"},"nativeSrc":"30245:12:88","nodeType":"YulExpressionStatement","src":"30245:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30218:7:88","nodeType":"YulIdentifier","src":"30218:7:88"},{"name":"headStart","nativeSrc":"30227:9:88","nodeType":"YulIdentifier","src":"30227:9:88"}],"functionName":{"name":"sub","nativeSrc":"30214:3:88","nodeType":"YulIdentifier","src":"30214:3:88"},"nativeSrc":"30214:23:88","nodeType":"YulFunctionCall","src":"30214:23:88"},{"kind":"number","nativeSrc":"30239:2:88","nodeType":"YulLiteral","src":"30239:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"30210:3:88","nodeType":"YulIdentifier","src":"30210:3:88"},"nativeSrc":"30210:32:88","nodeType":"YulFunctionCall","src":"30210:32:88"},"nativeSrc":"30207:52:88","nodeType":"YulIf","src":"30207:52:88"},{"nativeSrc":"30268:26:88","nodeType":"YulAssignment","src":"30268:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30284:9:88","nodeType":"YulIdentifier","src":"30284:9:88"}],"functionName":{"name":"mload","nativeSrc":"30278:5:88","nodeType":"YulIdentifier","src":"30278:5:88"},"nativeSrc":"30278:16:88","nodeType":"YulFunctionCall","src":"30278:16:88"},"variableNames":[{"name":"value0","nativeSrc":"30268:6:88","nodeType":"YulIdentifier","src":"30268:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"30116:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30163:9:88","nodeType":"YulTypedName","src":"30163:9:88","type":""},{"name":"dataEnd","nativeSrc":"30174:7:88","nodeType":"YulTypedName","src":"30174:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30186:6:88","nodeType":"YulTypedName","src":"30186:6:88","type":""}],"src":"30116:184:88"},{"body":{"nativeSrc":"30479:235:88","nodeType":"YulBlock","src":"30479:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30496:9:88","nodeType":"YulIdentifier","src":"30496:9:88"},{"kind":"number","nativeSrc":"30507:2:88","nodeType":"YulLiteral","src":"30507:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30489:6:88","nodeType":"YulIdentifier","src":"30489:6:88"},"nativeSrc":"30489:21:88","nodeType":"YulFunctionCall","src":"30489:21:88"},"nativeSrc":"30489:21:88","nodeType":"YulExpressionStatement","src":"30489:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30530:9:88","nodeType":"YulIdentifier","src":"30530:9:88"},{"kind":"number","nativeSrc":"30541:2:88","nodeType":"YulLiteral","src":"30541:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30526:3:88","nodeType":"YulIdentifier","src":"30526:3:88"},"nativeSrc":"30526:18:88","nodeType":"YulFunctionCall","src":"30526:18:88"},{"kind":"number","nativeSrc":"30546:2:88","nodeType":"YulLiteral","src":"30546:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"30519:6:88","nodeType":"YulIdentifier","src":"30519:6:88"},"nativeSrc":"30519:30:88","nodeType":"YulFunctionCall","src":"30519:30:88"},"nativeSrc":"30519:30:88","nodeType":"YulExpressionStatement","src":"30519:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30569:9:88","nodeType":"YulIdentifier","src":"30569:9:88"},{"kind":"number","nativeSrc":"30580:2:88","nodeType":"YulLiteral","src":"30580:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30565:3:88","nodeType":"YulIdentifier","src":"30565:3:88"},"nativeSrc":"30565:18:88","nodeType":"YulFunctionCall","src":"30565:18:88"},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e736665","kind":"string","nativeSrc":"30585:34:88","nodeType":"YulLiteral","src":"30585:34:88","type":"","value":"You must allow ENSURO to transfe"}],"functionName":{"name":"mstore","nativeSrc":"30558:6:88","nodeType":"YulIdentifier","src":"30558:6:88"},"nativeSrc":"30558:62:88","nodeType":"YulFunctionCall","src":"30558:62:88"},"nativeSrc":"30558:62:88","nodeType":"YulExpressionStatement","src":"30558:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30640:9:88","nodeType":"YulIdentifier","src":"30640:9:88"},{"kind":"number","nativeSrc":"30651:2:88","nodeType":"YulLiteral","src":"30651:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30636:3:88","nodeType":"YulIdentifier","src":"30636:3:88"},"nativeSrc":"30636:18:88","nodeType":"YulFunctionCall","src":"30636:18:88"},{"hexValue":"7220746865207072656d69756d","kind":"string","nativeSrc":"30656:15:88","nodeType":"YulLiteral","src":"30656:15:88","type":"","value":"r the premium"}],"functionName":{"name":"mstore","nativeSrc":"30629:6:88","nodeType":"YulIdentifier","src":"30629:6:88"},"nativeSrc":"30629:43:88","nodeType":"YulFunctionCall","src":"30629:43:88"},"nativeSrc":"30629:43:88","nodeType":"YulExpressionStatement","src":"30629:43:88"},{"nativeSrc":"30681:27:88","nodeType":"YulAssignment","src":"30681:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30693:9:88","nodeType":"YulIdentifier","src":"30693:9:88"},{"kind":"number","nativeSrc":"30704:3:88","nodeType":"YulLiteral","src":"30704:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30689:3:88","nodeType":"YulIdentifier","src":"30689:3:88"},"nativeSrc":"30689:19:88","nodeType":"YulFunctionCall","src":"30689:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30681:4:88","nodeType":"YulIdentifier","src":"30681:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30305:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30456:9:88","nodeType":"YulTypedName","src":"30456:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30470:4:88","nodeType":"YulTypedName","src":"30470:4:88","type":""}],"src":"30305:409:88"},{"body":{"nativeSrc":"30893:237:88","nodeType":"YulBlock","src":"30893:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30910:9:88","nodeType":"YulIdentifier","src":"30910:9:88"},{"kind":"number","nativeSrc":"30921:2:88","nodeType":"YulLiteral","src":"30921:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30903:6:88","nodeType":"YulIdentifier","src":"30903:6:88"},"nativeSrc":"30903:21:88","nodeType":"YulFunctionCall","src":"30903:21:88"},"nativeSrc":"30903:21:88","nodeType":"YulExpressionStatement","src":"30903:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30944:9:88","nodeType":"YulIdentifier","src":"30944:9:88"},{"kind":"number","nativeSrc":"30955:2:88","nodeType":"YulLiteral","src":"30955:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30940:3:88","nodeType":"YulIdentifier","src":"30940:3:88"},"nativeSrc":"30940:18:88","nodeType":"YulFunctionCall","src":"30940:18:88"},{"kind":"number","nativeSrc":"30960:2:88","nodeType":"YulLiteral","src":"30960:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"30933:6:88","nodeType":"YulIdentifier","src":"30933:6:88"},"nativeSrc":"30933:30:88","nodeType":"YulFunctionCall","src":"30933:30:88"},"nativeSrc":"30933:30:88","nodeType":"YulExpressionStatement","src":"30933:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30983:9:88","nodeType":"YulIdentifier","src":"30983:9:88"},{"kind":"number","nativeSrc":"30994:2:88","nodeType":"YulLiteral","src":"30994:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30979:3:88","nodeType":"YulIdentifier","src":"30979:3:88"},"nativeSrc":"30979:18:88","nodeType":"YulFunctionCall","src":"30979:18:88"},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e73","kind":"string","nativeSrc":"30999:34:88","nodeType":"YulLiteral","src":"30999:34:88","type":"","value":"Payer must allow caller to trans"}],"functionName":{"name":"mstore","nativeSrc":"30972:6:88","nodeType":"YulIdentifier","src":"30972:6:88"},"nativeSrc":"30972:62:88","nodeType":"YulFunctionCall","src":"30972:62:88"},"nativeSrc":"30972:62:88","nodeType":"YulExpressionStatement","src":"30972:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31054:9:88","nodeType":"YulIdentifier","src":"31054:9:88"},{"kind":"number","nativeSrc":"31065:2:88","nodeType":"YulLiteral","src":"31065:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31050:3:88","nodeType":"YulIdentifier","src":"31050:3:88"},"nativeSrc":"31050:18:88","nodeType":"YulFunctionCall","src":"31050:18:88"},{"hexValue":"66657220746865207072656d69756d","kind":"string","nativeSrc":"31070:17:88","nodeType":"YulLiteral","src":"31070:17:88","type":"","value":"fer the premium"}],"functionName":{"name":"mstore","nativeSrc":"31043:6:88","nodeType":"YulIdentifier","src":"31043:6:88"},"nativeSrc":"31043:45:88","nodeType":"YulFunctionCall","src":"31043:45:88"},"nativeSrc":"31043:45:88","nodeType":"YulExpressionStatement","src":"31043:45:88"},{"nativeSrc":"31097:27:88","nodeType":"YulAssignment","src":"31097:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31109:9:88","nodeType":"YulIdentifier","src":"31109:9:88"},{"kind":"number","nativeSrc":"31120:3:88","nodeType":"YulLiteral","src":"31120:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31105:3:88","nodeType":"YulIdentifier","src":"31105:3:88"},"nativeSrc":"31105:19:88","nodeType":"YulFunctionCall","src":"31105:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31097:4:88","nodeType":"YulIdentifier","src":"31097:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30719:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30870:9:88","nodeType":"YulTypedName","src":"30870:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30884:4:88","nodeType":"YulTypedName","src":"30884:4:88","type":""}],"src":"30719:411:88"},{"body":{"nativeSrc":"31309:240:88","nodeType":"YulBlock","src":"31309:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31326:9:88","nodeType":"YulIdentifier","src":"31326:9:88"},{"kind":"number","nativeSrc":"31337:2:88","nodeType":"YulLiteral","src":"31337:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31319:6:88","nodeType":"YulIdentifier","src":"31319:6:88"},"nativeSrc":"31319:21:88","nodeType":"YulFunctionCall","src":"31319:21:88"},"nativeSrc":"31319:21:88","nodeType":"YulExpressionStatement","src":"31319:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31360:9:88","nodeType":"YulIdentifier","src":"31360:9:88"},{"kind":"number","nativeSrc":"31371:2:88","nodeType":"YulLiteral","src":"31371:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31356:3:88","nodeType":"YulIdentifier","src":"31356:3:88"},"nativeSrc":"31356:18:88","nodeType":"YulFunctionCall","src":"31356:18:88"},{"kind":"number","nativeSrc":"31376:2:88","nodeType":"YulLiteral","src":"31376:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"31349:6:88","nodeType":"YulIdentifier","src":"31349:6:88"},"nativeSrc":"31349:30:88","nodeType":"YulFunctionCall","src":"31349:30:88"},"nativeSrc":"31349:30:88","nodeType":"YulExpressionStatement","src":"31349:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31399:9:88","nodeType":"YulIdentifier","src":"31399:9:88"},{"kind":"number","nativeSrc":"31410:2:88","nodeType":"YulLiteral","src":"31410:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31395:3:88","nodeType":"YulIdentifier","src":"31395:3:88"},"nativeSrc":"31395:18:88","nodeType":"YulFunctionCall","src":"31395:18:88"},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e20","kind":"string","nativeSrc":"31415:34:88","nodeType":"YulLiteral","src":"31415:34:88","type":"","value":"RiskModule: Payout is more than "}],"functionName":{"name":"mstore","nativeSrc":"31388:6:88","nodeType":"YulIdentifier","src":"31388:6:88"},"nativeSrc":"31388:62:88","nodeType":"YulFunctionCall","src":"31388:62:88"},"nativeSrc":"31388:62:88","nodeType":"YulExpressionStatement","src":"31388:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31470:9:88","nodeType":"YulIdentifier","src":"31470:9:88"},{"kind":"number","nativeSrc":"31481:2:88","nodeType":"YulLiteral","src":"31481:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31466:3:88","nodeType":"YulIdentifier","src":"31466:3:88"},"nativeSrc":"31466:18:88","nodeType":"YulFunctionCall","src":"31466:18:88"},{"hexValue":"6d6178696d756d2070657220706f6c696379","kind":"string","nativeSrc":"31486:20:88","nodeType":"YulLiteral","src":"31486:20:88","type":"","value":"maximum per policy"}],"functionName":{"name":"mstore","nativeSrc":"31459:6:88","nodeType":"YulIdentifier","src":"31459:6:88"},"nativeSrc":"31459:48:88","nodeType":"YulFunctionCall","src":"31459:48:88"},"nativeSrc":"31459:48:88","nodeType":"YulExpressionStatement","src":"31459:48:88"},{"nativeSrc":"31516:27:88","nodeType":"YulAssignment","src":"31516:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31528:9:88","nodeType":"YulIdentifier","src":"31528:9:88"},{"kind":"number","nativeSrc":"31539:3:88","nodeType":"YulLiteral","src":"31539:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31524:3:88","nodeType":"YulIdentifier","src":"31524:3:88"},"nativeSrc":"31524:19:88","nodeType":"YulFunctionCall","src":"31524:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31516:4:88","nodeType":"YulIdentifier","src":"31516:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31135:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31286:9:88","nodeType":"YulTypedName","src":"31286:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31300:4:88","nodeType":"YulTypedName","src":"31300:4:88","type":""}],"src":"31135:414:88"},{"body":{"nativeSrc":"31728:225:88","nodeType":"YulBlock","src":"31728:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31745:9:88","nodeType":"YulIdentifier","src":"31745:9:88"},{"kind":"number","nativeSrc":"31756:2:88","nodeType":"YulLiteral","src":"31756:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31738:6:88","nodeType":"YulIdentifier","src":"31738:6:88"},"nativeSrc":"31738:21:88","nodeType":"YulFunctionCall","src":"31738:21:88"},"nativeSrc":"31738:21:88","nodeType":"YulExpressionStatement","src":"31738:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31779:9:88","nodeType":"YulIdentifier","src":"31779:9:88"},{"kind":"number","nativeSrc":"31790:2:88","nodeType":"YulLiteral","src":"31790:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31775:3:88","nodeType":"YulIdentifier","src":"31775:3:88"},"nativeSrc":"31775:18:88","nodeType":"YulFunctionCall","src":"31775:18:88"},{"kind":"number","nativeSrc":"31795:2:88","nodeType":"YulLiteral","src":"31795:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"31768:6:88","nodeType":"YulIdentifier","src":"31768:6:88"},"nativeSrc":"31768:30:88","nodeType":"YulFunctionCall","src":"31768:30:88"},"nativeSrc":"31768:30:88","nodeType":"YulExpressionStatement","src":"31768:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31818:9:88","nodeType":"YulIdentifier","src":"31818:9:88"},{"kind":"number","nativeSrc":"31829:2:88","nodeType":"YulLiteral","src":"31829:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31814:3:88","nodeType":"YulIdentifier","src":"31814:3:88"},"nativeSrc":"31814:18:88","nodeType":"YulFunctionCall","src":"31814:18:88"},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565","kind":"string","nativeSrc":"31834:34:88","nodeType":"YulLiteral","src":"31834:34:88","type":"","value":"RiskModule: Exposure limit excee"}],"functionName":{"name":"mstore","nativeSrc":"31807:6:88","nodeType":"YulIdentifier","src":"31807:6:88"},"nativeSrc":"31807:62:88","nodeType":"YulFunctionCall","src":"31807:62:88"},"nativeSrc":"31807:62:88","nodeType":"YulExpressionStatement","src":"31807:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31889:9:88","nodeType":"YulIdentifier","src":"31889:9:88"},{"kind":"number","nativeSrc":"31900:2:88","nodeType":"YulLiteral","src":"31900:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31885:3:88","nodeType":"YulIdentifier","src":"31885:3:88"},"nativeSrc":"31885:18:88","nodeType":"YulFunctionCall","src":"31885:18:88"},{"hexValue":"646564","kind":"string","nativeSrc":"31905:5:88","nodeType":"YulLiteral","src":"31905:5:88","type":"","value":"ded"}],"functionName":{"name":"mstore","nativeSrc":"31878:6:88","nodeType":"YulIdentifier","src":"31878:6:88"},"nativeSrc":"31878:33:88","nodeType":"YulFunctionCall","src":"31878:33:88"},"nativeSrc":"31878:33:88","nodeType":"YulExpressionStatement","src":"31878:33:88"},{"nativeSrc":"31920:27:88","nodeType":"YulAssignment","src":"31920:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31932:9:88","nodeType":"YulIdentifier","src":"31932:9:88"},{"kind":"number","nativeSrc":"31943:3:88","nodeType":"YulLiteral","src":"31943:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31928:3:88","nodeType":"YulIdentifier","src":"31928:3:88"},"nativeSrc":"31928:19:88","nodeType":"YulFunctionCall","src":"31928:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31920:4:88","nodeType":"YulIdentifier","src":"31920:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31554:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31705:9:88","nodeType":"YulTypedName","src":"31705:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31719:4:88","nodeType":"YulTypedName","src":"31719:4:88","type":""}],"src":"31554:399:88"},{"body":{"nativeSrc":"32259:321:88","nodeType":"YulBlock","src":"32259:321:88","statements":[{"nativeSrc":"32269:27:88","nodeType":"YulAssignment","src":"32269:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32281:9:88","nodeType":"YulIdentifier","src":"32281:9:88"},{"kind":"number","nativeSrc":"32292:3:88","nodeType":"YulLiteral","src":"32292:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"32277:3:88","nodeType":"YulIdentifier","src":"32277:3:88"},"nativeSrc":"32277:19:88","nodeType":"YulFunctionCall","src":"32277:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32269:4:88","nodeType":"YulIdentifier","src":"32269:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"32343:6:88","nodeType":"YulIdentifier","src":"32343:6:88"},{"name":"headStart","nativeSrc":"32351:9:88","nodeType":"YulIdentifier","src":"32351:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"32305:37:88","nodeType":"YulIdentifier","src":"32305:37:88"},"nativeSrc":"32305:56:88","nodeType":"YulFunctionCall","src":"32305:56:88"},"nativeSrc":"32305:56:88","nodeType":"YulExpressionStatement","src":"32305:56:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"32399:6:88","nodeType":"YulIdentifier","src":"32399:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"32411:9:88","nodeType":"YulIdentifier","src":"32411:9:88"},{"kind":"number","nativeSrc":"32422:3:88","nodeType":"YulLiteral","src":"32422:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"32407:3:88","nodeType":"YulIdentifier","src":"32407:3:88"},"nativeSrc":"32407:19:88","nodeType":"YulFunctionCall","src":"32407:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"32370:28:88","nodeType":"YulIdentifier","src":"32370:28:88"},"nativeSrc":"32370:57:88","nodeType":"YulFunctionCall","src":"32370:57:88"},"nativeSrc":"32370:57:88","nodeType":"YulExpressionStatement","src":"32370:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32447:9:88","nodeType":"YulIdentifier","src":"32447:9:88"},{"kind":"number","nativeSrc":"32458:3:88","nodeType":"YulLiteral","src":"32458:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"32443:3:88","nodeType":"YulIdentifier","src":"32443:3:88"},"nativeSrc":"32443:19:88","nodeType":"YulFunctionCall","src":"32443:19:88"},{"arguments":[{"name":"value2","nativeSrc":"32468:6:88","nodeType":"YulIdentifier","src":"32468:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32484:3:88","nodeType":"YulLiteral","src":"32484:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"32489:1:88","nodeType":"YulLiteral","src":"32489:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"32480:3:88","nodeType":"YulIdentifier","src":"32480:3:88"},"nativeSrc":"32480:11:88","nodeType":"YulFunctionCall","src":"32480:11:88"},{"kind":"number","nativeSrc":"32493:1:88","nodeType":"YulLiteral","src":"32493:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"32476:3:88","nodeType":"YulIdentifier","src":"32476:3:88"},"nativeSrc":"32476:19:88","nodeType":"YulFunctionCall","src":"32476:19:88"}],"functionName":{"name":"and","nativeSrc":"32464:3:88","nodeType":"YulIdentifier","src":"32464:3:88"},"nativeSrc":"32464:32:88","nodeType":"YulFunctionCall","src":"32464:32:88"}],"functionName":{"name":"mstore","nativeSrc":"32436:6:88","nodeType":"YulIdentifier","src":"32436:6:88"},"nativeSrc":"32436:61:88","nodeType":"YulFunctionCall","src":"32436:61:88"},"nativeSrc":"32436:61:88","nodeType":"YulExpressionStatement","src":"32436:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32517:9:88","nodeType":"YulIdentifier","src":"32517:9:88"},{"kind":"number","nativeSrc":"32528:3:88","nodeType":"YulLiteral","src":"32528:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"32513:3:88","nodeType":"YulIdentifier","src":"32513:3:88"},"nativeSrc":"32513:19:88","nodeType":"YulFunctionCall","src":"32513:19:88"},{"arguments":[{"name":"value3","nativeSrc":"32538:6:88","nodeType":"YulIdentifier","src":"32538:6:88"},{"kind":"number","nativeSrc":"32546:26:88","nodeType":"YulLiteral","src":"32546:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"32534:3:88","nodeType":"YulIdentifier","src":"32534:3:88"},"nativeSrc":"32534:39:88","nodeType":"YulFunctionCall","src":"32534:39:88"}],"functionName":{"name":"mstore","nativeSrc":"32506:6:88","nodeType":"YulIdentifier","src":"32506:6:88"},"nativeSrc":"32506:68:88","nodeType":"YulFunctionCall","src":"32506:68:88"},"nativeSrc":"32506:68:88","nodeType":"YulExpressionStatement","src":"32506:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed","nativeSrc":"31958:622:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32204:9:88","nodeType":"YulTypedName","src":"32204:9:88","type":""},{"name":"value3","nativeSrc":"32215:6:88","nodeType":"YulTypedName","src":"32215:6:88","type":""},{"name":"value2","nativeSrc":"32223:6:88","nodeType":"YulTypedName","src":"32223:6:88","type":""},{"name":"value1","nativeSrc":"32231:6:88","nodeType":"YulTypedName","src":"32231:6:88","type":""},{"name":"value0","nativeSrc":"32239:6:88","nodeType":"YulTypedName","src":"32239:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32250:4:88","nodeType":"YulTypedName","src":"32250:4:88","type":""}],"src":"31958:622:88"},{"body":{"nativeSrc":"32631:74:88","nodeType":"YulBlock","src":"32631:74:88","statements":[{"body":{"nativeSrc":"32654:22:88","nodeType":"YulBlock","src":"32654:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"32656:16:88","nodeType":"YulIdentifier","src":"32656:16:88"},"nativeSrc":"32656:18:88","nodeType":"YulFunctionCall","src":"32656:18:88"},"nativeSrc":"32656:18:88","nodeType":"YulExpressionStatement","src":"32656:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"32651:1:88","nodeType":"YulIdentifier","src":"32651:1:88"}],"functionName":{"name":"iszero","nativeSrc":"32644:6:88","nodeType":"YulIdentifier","src":"32644:6:88"},"nativeSrc":"32644:9:88","nodeType":"YulFunctionCall","src":"32644:9:88"},"nativeSrc":"32641:35:88","nodeType":"YulIf","src":"32641:35:88"},{"nativeSrc":"32685:14:88","nodeType":"YulAssignment","src":"32685:14:88","value":{"arguments":[{"name":"x","nativeSrc":"32694:1:88","nodeType":"YulIdentifier","src":"32694:1:88"},{"name":"y","nativeSrc":"32697:1:88","nodeType":"YulIdentifier","src":"32697:1:88"}],"functionName":{"name":"div","nativeSrc":"32690:3:88","nodeType":"YulIdentifier","src":"32690:3:88"},"nativeSrc":"32690:9:88","nodeType":"YulFunctionCall","src":"32690:9:88"},"variableNames":[{"name":"r","nativeSrc":"32685:1:88","nodeType":"YulIdentifier","src":"32685:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"32585:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"32616:1:88","nodeType":"YulTypedName","src":"32616:1:88","type":""},{"name":"y","nativeSrc":"32619:1:88","nodeType":"YulTypedName","src":"32619:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"32625:1:88","nodeType":"YulTypedName","src":"32625:1:88","type":""}],"src":"32585:120:88"},{"body":{"nativeSrc":"32884:225:88","nodeType":"YulBlock","src":"32884:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32901:9:88","nodeType":"YulIdentifier","src":"32901:9:88"},{"kind":"number","nativeSrc":"32912:2:88","nodeType":"YulLiteral","src":"32912:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32894:6:88","nodeType":"YulIdentifier","src":"32894:6:88"},"nativeSrc":"32894:21:88","nodeType":"YulFunctionCall","src":"32894:21:88"},"nativeSrc":"32894:21:88","nodeType":"YulExpressionStatement","src":"32894:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32935:9:88","nodeType":"YulIdentifier","src":"32935:9:88"},{"kind":"number","nativeSrc":"32946:2:88","nodeType":"YulLiteral","src":"32946:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32931:3:88","nodeType":"YulIdentifier","src":"32931:3:88"},"nativeSrc":"32931:18:88","nodeType":"YulFunctionCall","src":"32931:18:88"},{"kind":"number","nativeSrc":"32951:2:88","nodeType":"YulLiteral","src":"32951:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"32924:6:88","nodeType":"YulIdentifier","src":"32924:6:88"},"nativeSrc":"32924:30:88","nodeType":"YulFunctionCall","src":"32924:30:88"},"nativeSrc":"32924:30:88","nodeType":"YulExpressionStatement","src":"32924:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32974:9:88","nodeType":"YulIdentifier","src":"32974:9:88"},{"kind":"number","nativeSrc":"32985:2:88","nodeType":"YulLiteral","src":"32985:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32970:3:88","nodeType":"YulIdentifier","src":"32970:3:88"},"nativeSrc":"32970:18:88","nodeType":"YulFunctionCall","src":"32970:18:88"},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d75737420626520","kind":"string","nativeSrc":"32990:34:88","nodeType":"YulLiteral","src":"32990:34:88","type":"","value":"Validation: jrCollRatio must be "}],"functionName":{"name":"mstore","nativeSrc":"32963:6:88","nodeType":"YulIdentifier","src":"32963:6:88"},"nativeSrc":"32963:62:88","nodeType":"YulFunctionCall","src":"32963:62:88"},"nativeSrc":"32963:62:88","nodeType":"YulExpressionStatement","src":"32963:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33045:9:88","nodeType":"YulIdentifier","src":"33045:9:88"},{"kind":"number","nativeSrc":"33056:2:88","nodeType":"YulLiteral","src":"33056:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33041:3:88","nodeType":"YulIdentifier","src":"33041:3:88"},"nativeSrc":"33041:18:88","nodeType":"YulFunctionCall","src":"33041:18:88"},{"hexValue":"3c3d31","kind":"string","nativeSrc":"33061:5:88","nodeType":"YulLiteral","src":"33061:5:88","type":"","value":"<=1"}],"functionName":{"name":"mstore","nativeSrc":"33034:6:88","nodeType":"YulIdentifier","src":"33034:6:88"},"nativeSrc":"33034:33:88","nodeType":"YulFunctionCall","src":"33034:33:88"},"nativeSrc":"33034:33:88","nodeType":"YulExpressionStatement","src":"33034:33:88"},{"nativeSrc":"33076:27:88","nodeType":"YulAssignment","src":"33076:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33088:9:88","nodeType":"YulIdentifier","src":"33088:9:88"},{"kind":"number","nativeSrc":"33099:3:88","nodeType":"YulLiteral","src":"33099:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33084:3:88","nodeType":"YulIdentifier","src":"33084:3:88"},"nativeSrc":"33084:19:88","nodeType":"YulFunctionCall","src":"33084:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33076:4:88","nodeType":"YulIdentifier","src":"33076:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32710:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32861:9:88","nodeType":"YulTypedName","src":"32861:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32875:4:88","nodeType":"YulTypedName","src":"32875:4:88","type":""}],"src":"32710:399:88"},{"body":{"nativeSrc":"33288:223:88","nodeType":"YulBlock","src":"33288:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33305:9:88","nodeType":"YulIdentifier","src":"33305:9:88"},{"kind":"number","nativeSrc":"33316:2:88","nodeType":"YulLiteral","src":"33316:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33298:6:88","nodeType":"YulIdentifier","src":"33298:6:88"},"nativeSrc":"33298:21:88","nodeType":"YulFunctionCall","src":"33298:21:88"},"nativeSrc":"33298:21:88","nodeType":"YulExpressionStatement","src":"33298:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33339:9:88","nodeType":"YulIdentifier","src":"33339:9:88"},{"kind":"number","nativeSrc":"33350:2:88","nodeType":"YulLiteral","src":"33350:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33335:3:88","nodeType":"YulIdentifier","src":"33335:3:88"},"nativeSrc":"33335:18:88","nodeType":"YulFunctionCall","src":"33335:18:88"},{"kind":"number","nativeSrc":"33355:2:88","nodeType":"YulLiteral","src":"33355:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"33328:6:88","nodeType":"YulIdentifier","src":"33328:6:88"},"nativeSrc":"33328:30:88","nodeType":"YulFunctionCall","src":"33328:30:88"},"nativeSrc":"33328:30:88","nodeType":"YulExpressionStatement","src":"33328:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33378:9:88","nodeType":"YulIdentifier","src":"33378:9:88"},{"kind":"number","nativeSrc":"33389:2:88","nodeType":"YulLiteral","src":"33389:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33374:3:88","nodeType":"YulIdentifier","src":"33374:3:88"},"nativeSrc":"33374:18:88","nodeType":"YulFunctionCall","src":"33374:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d","kind":"string","nativeSrc":"33394:34:88","nodeType":"YulLiteral","src":"33394:34:88","type":"","value":"Validation: collRatio must be <="}],"functionName":{"name":"mstore","nativeSrc":"33367:6:88","nodeType":"YulIdentifier","src":"33367:6:88"},"nativeSrc":"33367:62:88","nodeType":"YulFunctionCall","src":"33367:62:88"},"nativeSrc":"33367:62:88","nodeType":"YulExpressionStatement","src":"33367:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33449:9:88","nodeType":"YulIdentifier","src":"33449:9:88"},{"kind":"number","nativeSrc":"33460:2:88","nodeType":"YulLiteral","src":"33460:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33445:3:88","nodeType":"YulIdentifier","src":"33445:3:88"},"nativeSrc":"33445:18:88","nodeType":"YulFunctionCall","src":"33445:18:88"},{"hexValue":"31","kind":"string","nativeSrc":"33465:3:88","nodeType":"YulLiteral","src":"33465:3:88","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"33438:6:88","nodeType":"YulIdentifier","src":"33438:6:88"},"nativeSrc":"33438:31:88","nodeType":"YulFunctionCall","src":"33438:31:88"},"nativeSrc":"33438:31:88","nodeType":"YulExpressionStatement","src":"33438:31:88"},{"nativeSrc":"33478:27:88","nodeType":"YulAssignment","src":"33478:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33490:9:88","nodeType":"YulIdentifier","src":"33490:9:88"},{"kind":"number","nativeSrc":"33501:3:88","nodeType":"YulLiteral","src":"33501:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33486:3:88","nodeType":"YulIdentifier","src":"33486:3:88"},"nativeSrc":"33486:19:88","nodeType":"YulFunctionCall","src":"33486:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33478:4:88","nodeType":"YulIdentifier","src":"33478:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33114:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33265:9:88","nodeType":"YulTypedName","src":"33265:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33279:4:88","nodeType":"YulTypedName","src":"33279:4:88","type":""}],"src":"33114:397:88"},{"body":{"nativeSrc":"33690:226:88","nodeType":"YulBlock","src":"33690:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33707:9:88","nodeType":"YulIdentifier","src":"33707:9:88"},{"kind":"number","nativeSrc":"33718:2:88","nodeType":"YulLiteral","src":"33718:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33700:6:88","nodeType":"YulIdentifier","src":"33700:6:88"},"nativeSrc":"33700:21:88","nodeType":"YulFunctionCall","src":"33700:21:88"},"nativeSrc":"33700:21:88","nodeType":"YulExpressionStatement","src":"33700:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33741:9:88","nodeType":"YulIdentifier","src":"33741:9:88"},{"kind":"number","nativeSrc":"33752:2:88","nodeType":"YulLiteral","src":"33752:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33737:3:88","nodeType":"YulIdentifier","src":"33737:3:88"},"nativeSrc":"33737:18:88","nodeType":"YulFunctionCall","src":"33737:18:88"},{"kind":"number","nativeSrc":"33757:2:88","nodeType":"YulLiteral","src":"33757:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"33730:6:88","nodeType":"YulIdentifier","src":"33730:6:88"},"nativeSrc":"33730:30:88","nodeType":"YulFunctionCall","src":"33730:30:88"},"nativeSrc":"33730:30:88","nodeType":"YulExpressionStatement","src":"33730:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33780:9:88","nodeType":"YulIdentifier","src":"33780:9:88"},{"kind":"number","nativeSrc":"33791:2:88","nodeType":"YulLiteral","src":"33791:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33776:3:88","nodeType":"YulIdentifier","src":"33776:3:88"},"nativeSrc":"33776:18:88","nodeType":"YulFunctionCall","src":"33776:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c52","kind":"string","nativeSrc":"33796:34:88","nodeType":"YulLiteral","src":"33796:34:88","type":"","value":"Validation: collRatio >= jrCollR"}],"functionName":{"name":"mstore","nativeSrc":"33769:6:88","nodeType":"YulIdentifier","src":"33769:6:88"},"nativeSrc":"33769:62:88","nodeType":"YulFunctionCall","src":"33769:62:88"},"nativeSrc":"33769:62:88","nodeType":"YulExpressionStatement","src":"33769:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33851:9:88","nodeType":"YulIdentifier","src":"33851:9:88"},{"kind":"number","nativeSrc":"33862:2:88","nodeType":"YulLiteral","src":"33862:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33847:3:88","nodeType":"YulIdentifier","src":"33847:3:88"},"nativeSrc":"33847:18:88","nodeType":"YulFunctionCall","src":"33847:18:88"},{"hexValue":"6174696f","kind":"string","nativeSrc":"33867:6:88","nodeType":"YulLiteral","src":"33867:6:88","type":"","value":"atio"}],"functionName":{"name":"mstore","nativeSrc":"33840:6:88","nodeType":"YulIdentifier","src":"33840:6:88"},"nativeSrc":"33840:34:88","nodeType":"YulFunctionCall","src":"33840:34:88"},"nativeSrc":"33840:34:88","nodeType":"YulExpressionStatement","src":"33840:34:88"},{"nativeSrc":"33883:27:88","nodeType":"YulAssignment","src":"33883:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33895:9:88","nodeType":"YulIdentifier","src":"33895:9:88"},{"kind":"number","nativeSrc":"33906:3:88","nodeType":"YulLiteral","src":"33906:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33891:3:88","nodeType":"YulIdentifier","src":"33891:3:88"},"nativeSrc":"33891:19:88","nodeType":"YulFunctionCall","src":"33891:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33883:4:88","nodeType":"YulIdentifier","src":"33883:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33516:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33667:9:88","nodeType":"YulTypedName","src":"33667:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33681:4:88","nodeType":"YulTypedName","src":"33681:4:88","type":""}],"src":"33516:400:88"},{"body":{"nativeSrc":"34095:182:88","nodeType":"YulBlock","src":"34095:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34112:9:88","nodeType":"YulIdentifier","src":"34112:9:88"},{"kind":"number","nativeSrc":"34123:2:88","nodeType":"YulLiteral","src":"34123:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34105:6:88","nodeType":"YulIdentifier","src":"34105:6:88"},"nativeSrc":"34105:21:88","nodeType":"YulFunctionCall","src":"34105:21:88"},"nativeSrc":"34105:21:88","nodeType":"YulExpressionStatement","src":"34105:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34146:9:88","nodeType":"YulIdentifier","src":"34146:9:88"},{"kind":"number","nativeSrc":"34157:2:88","nodeType":"YulLiteral","src":"34157:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34142:3:88","nodeType":"YulIdentifier","src":"34142:3:88"},"nativeSrc":"34142:18:88","nodeType":"YulFunctionCall","src":"34142:18:88"},{"kind":"number","nativeSrc":"34162:2:88","nodeType":"YulLiteral","src":"34162:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34135:6:88","nodeType":"YulIdentifier","src":"34135:6:88"},"nativeSrc":"34135:30:88","nodeType":"YulFunctionCall","src":"34135:30:88"},"nativeSrc":"34135:30:88","nodeType":"YulExpressionStatement","src":"34135:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34185:9:88","nodeType":"YulIdentifier","src":"34185:9:88"},{"kind":"number","nativeSrc":"34196:2:88","nodeType":"YulLiteral","src":"34196:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34181:3:88","nodeType":"YulIdentifier","src":"34181:3:88"},"nativeSrc":"34181:18:88","nodeType":"YulFunctionCall","src":"34181:18:88"},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","kind":"string","nativeSrc":"34201:34:88","nodeType":"YulLiteral","src":"34201:34:88","type":"","value":"Validation: moc must be [0.5, 4]"}],"functionName":{"name":"mstore","nativeSrc":"34174:6:88","nodeType":"YulIdentifier","src":"34174:6:88"},"nativeSrc":"34174:62:88","nodeType":"YulFunctionCall","src":"34174:62:88"},"nativeSrc":"34174:62:88","nodeType":"YulExpressionStatement","src":"34174:62:88"},{"nativeSrc":"34245:26:88","nodeType":"YulAssignment","src":"34245:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34257:9:88","nodeType":"YulIdentifier","src":"34257:9:88"},{"kind":"number","nativeSrc":"34268:2:88","nodeType":"YulLiteral","src":"34268:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34253:3:88","nodeType":"YulIdentifier","src":"34253:3:88"},"nativeSrc":"34253:18:88","nodeType":"YulFunctionCall","src":"34253:18:88"},"variableNames":[{"name":"tail","nativeSrc":"34245:4:88","nodeType":"YulIdentifier","src":"34245:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33921:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34072:9:88","nodeType":"YulTypedName","src":"34072:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34086:4:88","nodeType":"YulTypedName","src":"34086:4:88","type":""}],"src":"33921:356:88"},{"body":{"nativeSrc":"34456:226:88","nodeType":"YulBlock","src":"34456:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34473:9:88","nodeType":"YulIdentifier","src":"34473:9:88"},{"kind":"number","nativeSrc":"34484:2:88","nodeType":"YulLiteral","src":"34484:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34466:6:88","nodeType":"YulIdentifier","src":"34466:6:88"},"nativeSrc":"34466:21:88","nodeType":"YulFunctionCall","src":"34466:21:88"},"nativeSrc":"34466:21:88","nodeType":"YulExpressionStatement","src":"34466:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34507:9:88","nodeType":"YulIdentifier","src":"34507:9:88"},{"kind":"number","nativeSrc":"34518:2:88","nodeType":"YulLiteral","src":"34518:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34503:3:88","nodeType":"YulIdentifier","src":"34503:3:88"},"nativeSrc":"34503:18:88","nodeType":"YulFunctionCall","src":"34503:18:88"},{"kind":"number","nativeSrc":"34523:2:88","nodeType":"YulLiteral","src":"34523:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"34496:6:88","nodeType":"YulIdentifier","src":"34496:6:88"},"nativeSrc":"34496:30:88","nodeType":"YulFunctionCall","src":"34496:30:88"},"nativeSrc":"34496:30:88","nodeType":"YulExpressionStatement","src":"34496:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34546:9:88","nodeType":"YulIdentifier","src":"34546:9:88"},{"kind":"number","nativeSrc":"34557:2:88","nodeType":"YulLiteral","src":"34557:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34542:3:88","nodeType":"YulIdentifier","src":"34542:3:88"},"nativeSrc":"34542:18:88","nodeType":"YulFunctionCall","src":"34542:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d75737420626520","kind":"string","nativeSrc":"34562:34:88","nodeType":"YulLiteral","src":"34562:34:88","type":"","value":"Validation: ensuroPpFee must be "}],"functionName":{"name":"mstore","nativeSrc":"34535:6:88","nodeType":"YulIdentifier","src":"34535:6:88"},"nativeSrc":"34535:62:88","nodeType":"YulFunctionCall","src":"34535:62:88"},"nativeSrc":"34535:62:88","nodeType":"YulExpressionStatement","src":"34535:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34617:9:88","nodeType":"YulIdentifier","src":"34617:9:88"},{"kind":"number","nativeSrc":"34628:2:88","nodeType":"YulLiteral","src":"34628:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34613:3:88","nodeType":"YulIdentifier","src":"34613:3:88"},"nativeSrc":"34613:18:88","nodeType":"YulFunctionCall","src":"34613:18:88"},{"hexValue":"3c3d2031","kind":"string","nativeSrc":"34633:6:88","nodeType":"YulLiteral","src":"34633:6:88","type":"","value":"<= 1"}],"functionName":{"name":"mstore","nativeSrc":"34606:6:88","nodeType":"YulIdentifier","src":"34606:6:88"},"nativeSrc":"34606:34:88","nodeType":"YulFunctionCall","src":"34606:34:88"},"nativeSrc":"34606:34:88","nodeType":"YulExpressionStatement","src":"34606:34:88"},{"nativeSrc":"34649:27:88","nodeType":"YulAssignment","src":"34649:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34661:9:88","nodeType":"YulIdentifier","src":"34661:9:88"},{"kind":"number","nativeSrc":"34672:3:88","nodeType":"YulLiteral","src":"34672:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34657:3:88","nodeType":"YulIdentifier","src":"34657:3:88"},"nativeSrc":"34657:19:88","nodeType":"YulFunctionCall","src":"34657:19:88"},"variableNames":[{"name":"tail","nativeSrc":"34649:4:88","nodeType":"YulIdentifier","src":"34649:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34282:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34433:9:88","nodeType":"YulTypedName","src":"34433:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34447:4:88","nodeType":"YulTypedName","src":"34447:4:88","type":""}],"src":"34282:400:88"},{"body":{"nativeSrc":"34861:227:88","nodeType":"YulBlock","src":"34861:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34878:9:88","nodeType":"YulIdentifier","src":"34878:9:88"},{"kind":"number","nativeSrc":"34889:2:88","nodeType":"YulLiteral","src":"34889:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34871:6:88","nodeType":"YulIdentifier","src":"34871:6:88"},"nativeSrc":"34871:21:88","nodeType":"YulFunctionCall","src":"34871:21:88"},"nativeSrc":"34871:21:88","nodeType":"YulExpressionStatement","src":"34871:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34912:9:88","nodeType":"YulIdentifier","src":"34912:9:88"},{"kind":"number","nativeSrc":"34923:2:88","nodeType":"YulLiteral","src":"34923:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34908:3:88","nodeType":"YulIdentifier","src":"34908:3:88"},"nativeSrc":"34908:18:88","nodeType":"YulFunctionCall","src":"34908:18:88"},{"kind":"number","nativeSrc":"34928:2:88","nodeType":"YulLiteral","src":"34928:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"34901:6:88","nodeType":"YulIdentifier","src":"34901:6:88"},"nativeSrc":"34901:30:88","nodeType":"YulFunctionCall","src":"34901:30:88"},"nativeSrc":"34901:30:88","nodeType":"YulExpressionStatement","src":"34901:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34951:9:88","nodeType":"YulIdentifier","src":"34951:9:88"},{"kind":"number","nativeSrc":"34962:2:88","nodeType":"YulLiteral","src":"34962:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34947:3:88","nodeType":"YulIdentifier","src":"34947:3:88"},"nativeSrc":"34947:18:88","nodeType":"YulFunctionCall","src":"34947:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265","kind":"string","nativeSrc":"34967:34:88","nodeType":"YulLiteral","src":"34967:34:88","type":"","value":"Validation: ensuroCocFee must be"}],"functionName":{"name":"mstore","nativeSrc":"34940:6:88","nodeType":"YulIdentifier","src":"34940:6:88"},"nativeSrc":"34940:62:88","nodeType":"YulFunctionCall","src":"34940:62:88"},"nativeSrc":"34940:62:88","nodeType":"YulExpressionStatement","src":"34940:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35022:9:88","nodeType":"YulIdentifier","src":"35022:9:88"},{"kind":"number","nativeSrc":"35033:2:88","nodeType":"YulLiteral","src":"35033:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35018:3:88","nodeType":"YulIdentifier","src":"35018:3:88"},"nativeSrc":"35018:18:88","nodeType":"YulFunctionCall","src":"35018:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"35038:7:88","nodeType":"YulLiteral","src":"35038:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"35011:6:88","nodeType":"YulIdentifier","src":"35011:6:88"},"nativeSrc":"35011:35:88","nodeType":"YulFunctionCall","src":"35011:35:88"},"nativeSrc":"35011:35:88","nodeType":"YulExpressionStatement","src":"35011:35:88"},{"nativeSrc":"35055:27:88","nodeType":"YulAssignment","src":"35055:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35067:9:88","nodeType":"YulIdentifier","src":"35067:9:88"},{"kind":"number","nativeSrc":"35078:3:88","nodeType":"YulLiteral","src":"35078:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35063:3:88","nodeType":"YulIdentifier","src":"35063:3:88"},"nativeSrc":"35063:19:88","nodeType":"YulFunctionCall","src":"35063:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35055:4:88","nodeType":"YulIdentifier","src":"35055:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34687:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34838:9:88","nodeType":"YulTypedName","src":"34838:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34852:4:88","nodeType":"YulTypedName","src":"34852:4:88","type":""}],"src":"34687:401:88"},{"body":{"nativeSrc":"35267:227:88","nodeType":"YulBlock","src":"35267:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35284:9:88","nodeType":"YulIdentifier","src":"35284:9:88"},{"kind":"number","nativeSrc":"35295:2:88","nodeType":"YulLiteral","src":"35295:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35277:6:88","nodeType":"YulIdentifier","src":"35277:6:88"},"nativeSrc":"35277:21:88","nodeType":"YulFunctionCall","src":"35277:21:88"},"nativeSrc":"35277:21:88","nodeType":"YulExpressionStatement","src":"35277:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35318:9:88","nodeType":"YulIdentifier","src":"35318:9:88"},{"kind":"number","nativeSrc":"35329:2:88","nodeType":"YulLiteral","src":"35329:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35314:3:88","nodeType":"YulIdentifier","src":"35314:3:88"},"nativeSrc":"35314:18:88","nodeType":"YulFunctionCall","src":"35314:18:88"},{"kind":"number","nativeSrc":"35334:2:88","nodeType":"YulLiteral","src":"35334:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"35307:6:88","nodeType":"YulIdentifier","src":"35307:6:88"},"nativeSrc":"35307:30:88","nodeType":"YulFunctionCall","src":"35307:30:88"},"nativeSrc":"35307:30:88","nodeType":"YulExpressionStatement","src":"35307:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35357:9:88","nodeType":"YulIdentifier","src":"35357:9:88"},{"kind":"number","nativeSrc":"35368:2:88","nodeType":"YulLiteral","src":"35368:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35353:3:88","nodeType":"YulIdentifier","src":"35353:3:88"},"nativeSrc":"35353:18:88","nodeType":"YulFunctionCall","src":"35353:18:88"},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"35373:34:88","nodeType":"YulLiteral","src":"35373:34:88","type":"","value":"Validation: srRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"35346:6:88","nodeType":"YulIdentifier","src":"35346:6:88"},"nativeSrc":"35346:62:88","nodeType":"YulFunctionCall","src":"35346:62:88"},"nativeSrc":"35346:62:88","nodeType":"YulExpressionStatement","src":"35346:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35428:9:88","nodeType":"YulIdentifier","src":"35428:9:88"},{"kind":"number","nativeSrc":"35439:2:88","nodeType":"YulLiteral","src":"35439:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35424:3:88","nodeType":"YulIdentifier","src":"35424:3:88"},"nativeSrc":"35424:18:88","nodeType":"YulFunctionCall","src":"35424:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"35444:7:88","nodeType":"YulLiteral","src":"35444:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"35417:6:88","nodeType":"YulIdentifier","src":"35417:6:88"},"nativeSrc":"35417:35:88","nodeType":"YulFunctionCall","src":"35417:35:88"},"nativeSrc":"35417:35:88","nodeType":"YulExpressionStatement","src":"35417:35:88"},{"nativeSrc":"35461:27:88","nodeType":"YulAssignment","src":"35461:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35473:9:88","nodeType":"YulIdentifier","src":"35473:9:88"},{"kind":"number","nativeSrc":"35484:3:88","nodeType":"YulLiteral","src":"35484:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35469:3:88","nodeType":"YulIdentifier","src":"35469:3:88"},"nativeSrc":"35469:19:88","nodeType":"YulFunctionCall","src":"35469:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35461:4:88","nodeType":"YulIdentifier","src":"35461:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35093:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35244:9:88","nodeType":"YulTypedName","src":"35244:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35258:4:88","nodeType":"YulTypedName","src":"35258:4:88","type":""}],"src":"35093:401:88"},{"body":{"nativeSrc":"35673:227:88","nodeType":"YulBlock","src":"35673:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35690:9:88","nodeType":"YulIdentifier","src":"35690:9:88"},{"kind":"number","nativeSrc":"35701:2:88","nodeType":"YulLiteral","src":"35701:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35683:6:88","nodeType":"YulIdentifier","src":"35683:6:88"},"nativeSrc":"35683:21:88","nodeType":"YulFunctionCall","src":"35683:21:88"},"nativeSrc":"35683:21:88","nodeType":"YulExpressionStatement","src":"35683:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35724:9:88","nodeType":"YulIdentifier","src":"35724:9:88"},{"kind":"number","nativeSrc":"35735:2:88","nodeType":"YulLiteral","src":"35735:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35720:3:88","nodeType":"YulIdentifier","src":"35720:3:88"},"nativeSrc":"35720:18:88","nodeType":"YulFunctionCall","src":"35720:18:88"},{"kind":"number","nativeSrc":"35740:2:88","nodeType":"YulLiteral","src":"35740:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"35713:6:88","nodeType":"YulIdentifier","src":"35713:6:88"},"nativeSrc":"35713:30:88","nodeType":"YulFunctionCall","src":"35713:30:88"},"nativeSrc":"35713:30:88","nodeType":"YulExpressionStatement","src":"35713:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35763:9:88","nodeType":"YulIdentifier","src":"35763:9:88"},{"kind":"number","nativeSrc":"35774:2:88","nodeType":"YulLiteral","src":"35774:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35759:3:88","nodeType":"YulIdentifier","src":"35759:3:88"},"nativeSrc":"35759:18:88","nodeType":"YulFunctionCall","src":"35759:18:88"},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"35779:34:88","nodeType":"YulLiteral","src":"35779:34:88","type":"","value":"Validation: jrRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"35752:6:88","nodeType":"YulIdentifier","src":"35752:6:88"},"nativeSrc":"35752:62:88","nodeType":"YulFunctionCall","src":"35752:62:88"},"nativeSrc":"35752:62:88","nodeType":"YulExpressionStatement","src":"35752:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35834:9:88","nodeType":"YulIdentifier","src":"35834:9:88"},{"kind":"number","nativeSrc":"35845:2:88","nodeType":"YulLiteral","src":"35845:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35830:3:88","nodeType":"YulIdentifier","src":"35830:3:88"},"nativeSrc":"35830:18:88","nodeType":"YulFunctionCall","src":"35830:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"35850:7:88","nodeType":"YulLiteral","src":"35850:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"35823:6:88","nodeType":"YulIdentifier","src":"35823:6:88"},"nativeSrc":"35823:35:88","nodeType":"YulFunctionCall","src":"35823:35:88"},"nativeSrc":"35823:35:88","nodeType":"YulExpressionStatement","src":"35823:35:88"},{"nativeSrc":"35867:27:88","nodeType":"YulAssignment","src":"35867:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35879:9:88","nodeType":"YulIdentifier","src":"35879:9:88"},{"kind":"number","nativeSrc":"35890:3:88","nodeType":"YulLiteral","src":"35890:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35875:3:88","nodeType":"YulIdentifier","src":"35875:3:88"},"nativeSrc":"35875:19:88","nodeType":"YulFunctionCall","src":"35875:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35867:4:88","nodeType":"YulIdentifier","src":"35867:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35499:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35650:9:88","nodeType":"YulTypedName","src":"35650:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35664:4:88","nodeType":"YulTypedName","src":"35664:4:88","type":""}],"src":"35499:401:88"},{"body":{"nativeSrc":"36079:223:88","nodeType":"YulBlock","src":"36079:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36096:9:88","nodeType":"YulIdentifier","src":"36096:9:88"},{"kind":"number","nativeSrc":"36107:2:88","nodeType":"YulLiteral","src":"36107:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36089:6:88","nodeType":"YulIdentifier","src":"36089:6:88"},"nativeSrc":"36089:21:88","nodeType":"YulFunctionCall","src":"36089:21:88"},"nativeSrc":"36089:21:88","nodeType":"YulExpressionStatement","src":"36089:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36130:9:88","nodeType":"YulIdentifier","src":"36130:9:88"},{"kind":"number","nativeSrc":"36141:2:88","nodeType":"YulLiteral","src":"36141:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36126:3:88","nodeType":"YulIdentifier","src":"36126:3:88"},"nativeSrc":"36126:18:88","nodeType":"YulFunctionCall","src":"36126:18:88"},{"kind":"number","nativeSrc":"36146:2:88","nodeType":"YulLiteral","src":"36146:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"36119:6:88","nodeType":"YulIdentifier","src":"36119:6:88"},"nativeSrc":"36119:30:88","nodeType":"YulFunctionCall","src":"36119:30:88"},"nativeSrc":"36119:30:88","nodeType":"YulExpressionStatement","src":"36119:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36169:9:88","nodeType":"YulIdentifier","src":"36169:9:88"},{"kind":"number","nativeSrc":"36180:2:88","nodeType":"YulLiteral","src":"36180:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36165:3:88","nodeType":"YulIdentifier","src":"36165:3:88"},"nativeSrc":"36165:18:88","nodeType":"YulFunctionCall","src":"36165:18:88"},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e","kind":"string","nativeSrc":"36185:34:88","nodeType":"YulLiteral","src":"36185:34:88","type":"","value":"Exposure and MaxPayout must be >"}],"functionName":{"name":"mstore","nativeSrc":"36158:6:88","nodeType":"YulIdentifier","src":"36158:6:88"},"nativeSrc":"36158:62:88","nodeType":"YulFunctionCall","src":"36158:62:88"},"nativeSrc":"36158:62:88","nodeType":"YulExpressionStatement","src":"36158:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36240:9:88","nodeType":"YulIdentifier","src":"36240:9:88"},{"kind":"number","nativeSrc":"36251:2:88","nodeType":"YulLiteral","src":"36251:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36236:3:88","nodeType":"YulIdentifier","src":"36236:3:88"},"nativeSrc":"36236:18:88","nodeType":"YulFunctionCall","src":"36236:18:88"},{"hexValue":"30","kind":"string","nativeSrc":"36256:3:88","nodeType":"YulLiteral","src":"36256:3:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"36229:6:88","nodeType":"YulIdentifier","src":"36229:6:88"},"nativeSrc":"36229:31:88","nodeType":"YulFunctionCall","src":"36229:31:88"},"nativeSrc":"36229:31:88","nodeType":"YulExpressionStatement","src":"36229:31:88"},{"nativeSrc":"36269:27:88","nodeType":"YulAssignment","src":"36269:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36281:9:88","nodeType":"YulIdentifier","src":"36281:9:88"},{"kind":"number","nativeSrc":"36292:3:88","nodeType":"YulLiteral","src":"36292:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36277:3:88","nodeType":"YulIdentifier","src":"36277:3:88"},"nativeSrc":"36277:19:88","nodeType":"YulFunctionCall","src":"36277:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36269:4:88","nodeType":"YulIdentifier","src":"36269:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35905:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36056:9:88","nodeType":"YulTypedName","src":"36056:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36070:4:88","nodeType":"YulTypedName","src":"36070:4:88","type":""}],"src":"35905:397:88"},{"body":{"nativeSrc":"36481:233:88","nodeType":"YulBlock","src":"36481:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36498:9:88","nodeType":"YulIdentifier","src":"36498:9:88"},{"kind":"number","nativeSrc":"36509:2:88","nodeType":"YulLiteral","src":"36509:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36491:6:88","nodeType":"YulIdentifier","src":"36491:6:88"},"nativeSrc":"36491:21:88","nodeType":"YulFunctionCall","src":"36491:21:88"},"nativeSrc":"36491:21:88","nodeType":"YulExpressionStatement","src":"36491:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36532:9:88","nodeType":"YulIdentifier","src":"36532:9:88"},{"kind":"number","nativeSrc":"36543:2:88","nodeType":"YulLiteral","src":"36543:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36528:3:88","nodeType":"YulIdentifier","src":"36528:3:88"},"nativeSrc":"36528:18:88","nodeType":"YulFunctionCall","src":"36528:18:88"},{"kind":"number","nativeSrc":"36548:2:88","nodeType":"YulLiteral","src":"36548:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"36521:6:88","nodeType":"YulIdentifier","src":"36521:6:88"},"nativeSrc":"36521:30:88","nodeType":"YulFunctionCall","src":"36521:30:88"},"nativeSrc":"36521:30:88","nodeType":"YulExpressionStatement","src":"36521:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36571:9:88","nodeType":"YulIdentifier","src":"36571:9:88"},{"kind":"number","nativeSrc":"36582:2:88","nodeType":"YulLiteral","src":"36582:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36567:3:88","nodeType":"YulIdentifier","src":"36567:3:88"},"nativeSrc":"36567:18:88","nodeType":"YulFunctionCall","src":"36567:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"36587:34:88","nodeType":"YulLiteral","src":"36587:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"36560:6:88","nodeType":"YulIdentifier","src":"36560:6:88"},"nativeSrc":"36560:62:88","nodeType":"YulFunctionCall","src":"36560:62:88"},"nativeSrc":"36560:62:88","nodeType":"YulExpressionStatement","src":"36560:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36642:9:88","nodeType":"YulIdentifier","src":"36642:9:88"},{"kind":"number","nativeSrc":"36653:2:88","nodeType":"YulLiteral","src":"36653:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36638:3:88","nodeType":"YulIdentifier","src":"36638:3:88"},"nativeSrc":"36638:18:88","nodeType":"YulFunctionCall","src":"36638:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"36658:13:88","nodeType":"YulLiteral","src":"36658:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"36631:6:88","nodeType":"YulIdentifier","src":"36631:6:88"},"nativeSrc":"36631:41:88","nodeType":"YulFunctionCall","src":"36631:41:88"},"nativeSrc":"36631:41:88","nodeType":"YulExpressionStatement","src":"36631:41:88"},{"nativeSrc":"36681:27:88","nodeType":"YulAssignment","src":"36681:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36693:9:88","nodeType":"YulIdentifier","src":"36693:9:88"},{"kind":"number","nativeSrc":"36704:3:88","nodeType":"YulLiteral","src":"36704:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36689:3:88","nodeType":"YulIdentifier","src":"36689:3:88"},"nativeSrc":"36689:19:88","nodeType":"YulFunctionCall","src":"36689:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36681:4:88","nodeType":"YulIdentifier","src":"36681:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36307:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36458:9:88","nodeType":"YulTypedName","src":"36458:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36472:4:88","nodeType":"YulTypedName","src":"36472:4:88","type":""}],"src":"36307:407:88"},{"body":{"nativeSrc":"36798:194:88","nodeType":"YulBlock","src":"36798:194:88","statements":[{"body":{"nativeSrc":"36844:16:88","nodeType":"YulBlock","src":"36844:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36853:1:88","nodeType":"YulLiteral","src":"36853:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"36856:1:88","nodeType":"YulLiteral","src":"36856:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"36846:6:88","nodeType":"YulIdentifier","src":"36846:6:88"},"nativeSrc":"36846:12:88","nodeType":"YulFunctionCall","src":"36846:12:88"},"nativeSrc":"36846:12:88","nodeType":"YulExpressionStatement","src":"36846:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"36819:7:88","nodeType":"YulIdentifier","src":"36819:7:88"},{"name":"headStart","nativeSrc":"36828:9:88","nodeType":"YulIdentifier","src":"36828:9:88"}],"functionName":{"name":"sub","nativeSrc":"36815:3:88","nodeType":"YulIdentifier","src":"36815:3:88"},"nativeSrc":"36815:23:88","nodeType":"YulFunctionCall","src":"36815:23:88"},{"kind":"number","nativeSrc":"36840:2:88","nodeType":"YulLiteral","src":"36840:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"36811:3:88","nodeType":"YulIdentifier","src":"36811:3:88"},"nativeSrc":"36811:32:88","nodeType":"YulFunctionCall","src":"36811:32:88"},"nativeSrc":"36808:52:88","nodeType":"YulIf","src":"36808:52:88"},{"nativeSrc":"36869:29:88","nodeType":"YulVariableDeclaration","src":"36869:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36888:9:88","nodeType":"YulIdentifier","src":"36888:9:88"}],"functionName":{"name":"mload","nativeSrc":"36882:5:88","nodeType":"YulIdentifier","src":"36882:5:88"},"nativeSrc":"36882:16:88","nodeType":"YulFunctionCall","src":"36882:16:88"},"variables":[{"name":"value","nativeSrc":"36873:5:88","nodeType":"YulTypedName","src":"36873:5:88","type":""}]},{"body":{"nativeSrc":"36946:16:88","nodeType":"YulBlock","src":"36946:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36955:1:88","nodeType":"YulLiteral","src":"36955:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"36958:1:88","nodeType":"YulLiteral","src":"36958:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"36948:6:88","nodeType":"YulIdentifier","src":"36948:6:88"},"nativeSrc":"36948:12:88","nodeType":"YulFunctionCall","src":"36948:12:88"},"nativeSrc":"36948:12:88","nodeType":"YulExpressionStatement","src":"36948:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36920:5:88","nodeType":"YulIdentifier","src":"36920:5:88"},{"arguments":[{"name":"value","nativeSrc":"36931:5:88","nodeType":"YulIdentifier","src":"36931:5:88"},{"kind":"number","nativeSrc":"36938:4:88","nodeType":"YulLiteral","src":"36938:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"36927:3:88","nodeType":"YulIdentifier","src":"36927:3:88"},"nativeSrc":"36927:16:88","nodeType":"YulFunctionCall","src":"36927:16:88"}],"functionName":{"name":"eq","nativeSrc":"36917:2:88","nodeType":"YulIdentifier","src":"36917:2:88"},"nativeSrc":"36917:27:88","nodeType":"YulFunctionCall","src":"36917:27:88"}],"functionName":{"name":"iszero","nativeSrc":"36910:6:88","nodeType":"YulIdentifier","src":"36910:6:88"},"nativeSrc":"36910:35:88","nodeType":"YulFunctionCall","src":"36910:35:88"},"nativeSrc":"36907:55:88","nodeType":"YulIf","src":"36907:55:88"},{"nativeSrc":"36971:15:88","nodeType":"YulAssignment","src":"36971:15:88","value":{"name":"value","nativeSrc":"36981:5:88","nodeType":"YulIdentifier","src":"36981:5:88"},"variableNames":[{"name":"value0","nativeSrc":"36971:6:88","nodeType":"YulIdentifier","src":"36971:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"36719:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36764:9:88","nodeType":"YulTypedName","src":"36764:9:88","type":""},{"name":"dataEnd","nativeSrc":"36775:7:88","nodeType":"YulTypedName","src":"36775:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"36787:6:88","nodeType":"YulTypedName","src":"36787:6:88","type":""}],"src":"36719:273:88"},{"body":{"nativeSrc":"37044:104:88","nodeType":"YulBlock","src":"37044:104:88","statements":[{"nativeSrc":"37054:39:88","nodeType":"YulAssignment","src":"37054:39:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"37070:1:88","nodeType":"YulIdentifier","src":"37070:1:88"},{"kind":"number","nativeSrc":"37073:4:88","nodeType":"YulLiteral","src":"37073:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"37066:3:88","nodeType":"YulIdentifier","src":"37066:3:88"},"nativeSrc":"37066:12:88","nodeType":"YulFunctionCall","src":"37066:12:88"},{"arguments":[{"name":"y","nativeSrc":"37084:1:88","nodeType":"YulIdentifier","src":"37084:1:88"},{"kind":"number","nativeSrc":"37087:4:88","nodeType":"YulLiteral","src":"37087:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"37080:3:88","nodeType":"YulIdentifier","src":"37080:3:88"},"nativeSrc":"37080:12:88","nodeType":"YulFunctionCall","src":"37080:12:88"}],"functionName":{"name":"sub","nativeSrc":"37062:3:88","nodeType":"YulIdentifier","src":"37062:3:88"},"nativeSrc":"37062:31:88","nodeType":"YulFunctionCall","src":"37062:31:88"},"variableNames":[{"name":"diff","nativeSrc":"37054:4:88","nodeType":"YulIdentifier","src":"37054:4:88"}]},{"body":{"nativeSrc":"37120:22:88","nodeType":"YulBlock","src":"37120:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37122:16:88","nodeType":"YulIdentifier","src":"37122:16:88"},"nativeSrc":"37122:18:88","nodeType":"YulFunctionCall","src":"37122:18:88"},"nativeSrc":"37122:18:88","nodeType":"YulExpressionStatement","src":"37122:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"37108:4:88","nodeType":"YulIdentifier","src":"37108:4:88"},{"kind":"number","nativeSrc":"37114:4:88","nodeType":"YulLiteral","src":"37114:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"37105:2:88","nodeType":"YulIdentifier","src":"37105:2:88"},"nativeSrc":"37105:14:88","nodeType":"YulFunctionCall","src":"37105:14:88"},"nativeSrc":"37102:40:88","nodeType":"YulIf","src":"37102:40:88"}]},"name":"checked_sub_t_uint8","nativeSrc":"36997:151:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"37026:1:88","nodeType":"YulTypedName","src":"37026:1:88","type":""},{"name":"y","nativeSrc":"37029:1:88","nodeType":"YulTypedName","src":"37029:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"37035:4:88","nodeType":"YulTypedName","src":"37035:4:88","type":""}],"src":"36997:151:88"},{"body":{"nativeSrc":"37222:306:88","nodeType":"YulBlock","src":"37222:306:88","statements":[{"nativeSrc":"37232:10:88","nodeType":"YulAssignment","src":"37232:10:88","value":{"kind":"number","nativeSrc":"37241:1:88","nodeType":"YulLiteral","src":"37241:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"37232:5:88","nodeType":"YulIdentifier","src":"37232:5:88"}]},{"nativeSrc":"37251:13:88","nodeType":"YulAssignment","src":"37251:13:88","value":{"name":"_base","nativeSrc":"37259:5:88","nodeType":"YulIdentifier","src":"37259:5:88"},"variableNames":[{"name":"base","nativeSrc":"37251:4:88","nodeType":"YulIdentifier","src":"37251:4:88"}]},{"body":{"nativeSrc":"37309:213:88","nodeType":"YulBlock","src":"37309:213:88","statements":[{"body":{"nativeSrc":"37351:22:88","nodeType":"YulBlock","src":"37351:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37353:16:88","nodeType":"YulIdentifier","src":"37353:16:88"},"nativeSrc":"37353:18:88","nodeType":"YulFunctionCall","src":"37353:18:88"},"nativeSrc":"37353:18:88","nodeType":"YulExpressionStatement","src":"37353:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"37329:4:88","nodeType":"YulIdentifier","src":"37329:4:88"},{"arguments":[{"name":"max","nativeSrc":"37339:3:88","nodeType":"YulIdentifier","src":"37339:3:88"},{"name":"base","nativeSrc":"37344:4:88","nodeType":"YulIdentifier","src":"37344:4:88"}],"functionName":{"name":"div","nativeSrc":"37335:3:88","nodeType":"YulIdentifier","src":"37335:3:88"},"nativeSrc":"37335:14:88","nodeType":"YulFunctionCall","src":"37335:14:88"}],"functionName":{"name":"gt","nativeSrc":"37326:2:88","nodeType":"YulIdentifier","src":"37326:2:88"},"nativeSrc":"37326:24:88","nodeType":"YulFunctionCall","src":"37326:24:88"},"nativeSrc":"37323:50:88","nodeType":"YulIf","src":"37323:50:88"},{"body":{"nativeSrc":"37406:29:88","nodeType":"YulBlock","src":"37406:29:88","statements":[{"nativeSrc":"37408:25:88","nodeType":"YulAssignment","src":"37408:25:88","value":{"arguments":[{"name":"power","nativeSrc":"37421:5:88","nodeType":"YulIdentifier","src":"37421:5:88"},{"name":"base","nativeSrc":"37428:4:88","nodeType":"YulIdentifier","src":"37428:4:88"}],"functionName":{"name":"mul","nativeSrc":"37417:3:88","nodeType":"YulIdentifier","src":"37417:3:88"},"nativeSrc":"37417:16:88","nodeType":"YulFunctionCall","src":"37417:16:88"},"variableNames":[{"name":"power","nativeSrc":"37408:5:88","nodeType":"YulIdentifier","src":"37408:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37393:8:88","nodeType":"YulIdentifier","src":"37393:8:88"},{"kind":"number","nativeSrc":"37403:1:88","nodeType":"YulLiteral","src":"37403:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"37389:3:88","nodeType":"YulIdentifier","src":"37389:3:88"},"nativeSrc":"37389:16:88","nodeType":"YulFunctionCall","src":"37389:16:88"},"nativeSrc":"37386:49:88","nodeType":"YulIf","src":"37386:49:88"},{"nativeSrc":"37448:23:88","nodeType":"YulAssignment","src":"37448:23:88","value":{"arguments":[{"name":"base","nativeSrc":"37460:4:88","nodeType":"YulIdentifier","src":"37460:4:88"},{"name":"base","nativeSrc":"37466:4:88","nodeType":"YulIdentifier","src":"37466:4:88"}],"functionName":{"name":"mul","nativeSrc":"37456:3:88","nodeType":"YulIdentifier","src":"37456:3:88"},"nativeSrc":"37456:15:88","nodeType":"YulFunctionCall","src":"37456:15:88"},"variableNames":[{"name":"base","nativeSrc":"37448:4:88","nodeType":"YulIdentifier","src":"37448:4:88"}]},{"nativeSrc":"37484:28:88","nodeType":"YulAssignment","src":"37484:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"37500:1:88","nodeType":"YulLiteral","src":"37500:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"37503:8:88","nodeType":"YulIdentifier","src":"37503:8:88"}],"functionName":{"name":"shr","nativeSrc":"37496:3:88","nodeType":"YulIdentifier","src":"37496:3:88"},"nativeSrc":"37496:16:88","nodeType":"YulFunctionCall","src":"37496:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"37484:8:88","nodeType":"YulIdentifier","src":"37484:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37284:8:88","nodeType":"YulIdentifier","src":"37284:8:88"},{"kind":"number","nativeSrc":"37294:1:88","nodeType":"YulLiteral","src":"37294:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"37281:2:88","nodeType":"YulIdentifier","src":"37281:2:88"},"nativeSrc":"37281:15:88","nodeType":"YulFunctionCall","src":"37281:15:88"},"nativeSrc":"37273:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"37297:3:88","nodeType":"YulBlock","src":"37297:3:88","statements":[]},"pre":{"nativeSrc":"37277:3:88","nodeType":"YulBlock","src":"37277:3:88","statements":[]},"src":"37273:249:88"}]},"name":"checked_exp_helper","nativeSrc":"37153:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"37181:5:88","nodeType":"YulTypedName","src":"37181:5:88","type":""},{"name":"exponent","nativeSrc":"37188:8:88","nodeType":"YulTypedName","src":"37188:8:88","type":""},{"name":"max","nativeSrc":"37198:3:88","nodeType":"YulTypedName","src":"37198:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"37206:5:88","nodeType":"YulTypedName","src":"37206:5:88","type":""},{"name":"base","nativeSrc":"37213:4:88","nodeType":"YulTypedName","src":"37213:4:88","type":""}],"src":"37153:375:88"},{"body":{"nativeSrc":"37592:843:88","nodeType":"YulBlock","src":"37592:843:88","statements":[{"body":{"nativeSrc":"37630:52:88","nodeType":"YulBlock","src":"37630:52:88","statements":[{"nativeSrc":"37644:10:88","nodeType":"YulAssignment","src":"37644:10:88","value":{"kind":"number","nativeSrc":"37653:1:88","nodeType":"YulLiteral","src":"37653:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"37644:5:88","nodeType":"YulIdentifier","src":"37644:5:88"}]},{"nativeSrc":"37667:5:88","nodeType":"YulLeave","src":"37667:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37612:8:88","nodeType":"YulIdentifier","src":"37612:8:88"}],"functionName":{"name":"iszero","nativeSrc":"37605:6:88","nodeType":"YulIdentifier","src":"37605:6:88"},"nativeSrc":"37605:16:88","nodeType":"YulFunctionCall","src":"37605:16:88"},"nativeSrc":"37602:80:88","nodeType":"YulIf","src":"37602:80:88"},{"body":{"nativeSrc":"37715:52:88","nodeType":"YulBlock","src":"37715:52:88","statements":[{"nativeSrc":"37729:10:88","nodeType":"YulAssignment","src":"37729:10:88","value":{"kind":"number","nativeSrc":"37738:1:88","nodeType":"YulLiteral","src":"37738:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"37729:5:88","nodeType":"YulIdentifier","src":"37729:5:88"}]},{"nativeSrc":"37752:5:88","nodeType":"YulLeave","src":"37752:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"37701:4:88","nodeType":"YulIdentifier","src":"37701:4:88"}],"functionName":{"name":"iszero","nativeSrc":"37694:6:88","nodeType":"YulIdentifier","src":"37694:6:88"},"nativeSrc":"37694:12:88","nodeType":"YulFunctionCall","src":"37694:12:88"},"nativeSrc":"37691:76:88","nodeType":"YulIf","src":"37691:76:88"},{"cases":[{"body":{"nativeSrc":"37803:52:88","nodeType":"YulBlock","src":"37803:52:88","statements":[{"nativeSrc":"37817:10:88","nodeType":"YulAssignment","src":"37817:10:88","value":{"kind":"number","nativeSrc":"37826:1:88","nodeType":"YulLiteral","src":"37826:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"37817:5:88","nodeType":"YulIdentifier","src":"37817:5:88"}]},{"nativeSrc":"37840:5:88","nodeType":"YulLeave","src":"37840:5:88"}]},"nativeSrc":"37796:59:88","nodeType":"YulCase","src":"37796:59:88","value":{"kind":"number","nativeSrc":"37801:1:88","nodeType":"YulLiteral","src":"37801:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"37871:167:88","nodeType":"YulBlock","src":"37871:167:88","statements":[{"body":{"nativeSrc":"37906:22:88","nodeType":"YulBlock","src":"37906:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37908:16:88","nodeType":"YulIdentifier","src":"37908:16:88"},"nativeSrc":"37908:18:88","nodeType":"YulFunctionCall","src":"37908:18:88"},"nativeSrc":"37908:18:88","nodeType":"YulExpressionStatement","src":"37908:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37891:8:88","nodeType":"YulIdentifier","src":"37891:8:88"},{"kind":"number","nativeSrc":"37901:3:88","nodeType":"YulLiteral","src":"37901:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"37888:2:88","nodeType":"YulIdentifier","src":"37888:2:88"},"nativeSrc":"37888:17:88","nodeType":"YulFunctionCall","src":"37888:17:88"},"nativeSrc":"37885:43:88","nodeType":"YulIf","src":"37885:43:88"},{"nativeSrc":"37941:25:88","nodeType":"YulAssignment","src":"37941:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"37954:8:88","nodeType":"YulIdentifier","src":"37954:8:88"},{"kind":"number","nativeSrc":"37964:1:88","nodeType":"YulLiteral","src":"37964:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"37950:3:88","nodeType":"YulIdentifier","src":"37950:3:88"},"nativeSrc":"37950:16:88","nodeType":"YulFunctionCall","src":"37950:16:88"},"variableNames":[{"name":"power","nativeSrc":"37941:5:88","nodeType":"YulIdentifier","src":"37941:5:88"}]},{"nativeSrc":"37979:11:88","nodeType":"YulVariableDeclaration","src":"37979:11:88","value":{"kind":"number","nativeSrc":"37989:1:88","nodeType":"YulLiteral","src":"37989:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"37983:2:88","nodeType":"YulTypedName","src":"37983:2:88","type":""}]},{"nativeSrc":"38003:7:88","nodeType":"YulAssignment","src":"38003:7:88","value":{"kind":"number","nativeSrc":"38009:1:88","nodeType":"YulLiteral","src":"38009:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"38003:2:88","nodeType":"YulIdentifier","src":"38003:2:88"}]},{"nativeSrc":"38023:5:88","nodeType":"YulLeave","src":"38023:5:88"}]},"nativeSrc":"37864:174:88","nodeType":"YulCase","src":"37864:174:88","value":{"kind":"number","nativeSrc":"37869:1:88","nodeType":"YulLiteral","src":"37869:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"37783:4:88","nodeType":"YulIdentifier","src":"37783:4:88"},"nativeSrc":"37776:262:88","nodeType":"YulSwitch","src":"37776:262:88"},{"body":{"nativeSrc":"38136:114:88","nodeType":"YulBlock","src":"38136:114:88","statements":[{"nativeSrc":"38150:28:88","nodeType":"YulAssignment","src":"38150:28:88","value":{"arguments":[{"name":"base","nativeSrc":"38163:4:88","nodeType":"YulIdentifier","src":"38163:4:88"},{"name":"exponent","nativeSrc":"38169:8:88","nodeType":"YulIdentifier","src":"38169:8:88"}],"functionName":{"name":"exp","nativeSrc":"38159:3:88","nodeType":"YulIdentifier","src":"38159:3:88"},"nativeSrc":"38159:19:88","nodeType":"YulFunctionCall","src":"38159:19:88"},"variableNames":[{"name":"power","nativeSrc":"38150:5:88","nodeType":"YulIdentifier","src":"38150:5:88"}]},{"nativeSrc":"38191:11:88","nodeType":"YulVariableDeclaration","src":"38191:11:88","value":{"kind":"number","nativeSrc":"38201:1:88","nodeType":"YulLiteral","src":"38201:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"38195:2:88","nodeType":"YulTypedName","src":"38195:2:88","type":""}]},{"nativeSrc":"38215:7:88","nodeType":"YulAssignment","src":"38215:7:88","value":{"kind":"number","nativeSrc":"38221:1:88","nodeType":"YulLiteral","src":"38221:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"38215:2:88","nodeType":"YulIdentifier","src":"38215:2:88"}]},{"nativeSrc":"38235:5:88","nodeType":"YulLeave","src":"38235:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"38060:4:88","nodeType":"YulIdentifier","src":"38060:4:88"},{"kind":"number","nativeSrc":"38066:2:88","nodeType":"YulLiteral","src":"38066:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"38057:2:88","nodeType":"YulIdentifier","src":"38057:2:88"},"nativeSrc":"38057:12:88","nodeType":"YulFunctionCall","src":"38057:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"38074:8:88","nodeType":"YulIdentifier","src":"38074:8:88"},{"kind":"number","nativeSrc":"38084:2:88","nodeType":"YulLiteral","src":"38084:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"38071:2:88","nodeType":"YulIdentifier","src":"38071:2:88"},"nativeSrc":"38071:16:88","nodeType":"YulFunctionCall","src":"38071:16:88"}],"functionName":{"name":"and","nativeSrc":"38053:3:88","nodeType":"YulIdentifier","src":"38053:3:88"},"nativeSrc":"38053:35:88","nodeType":"YulFunctionCall","src":"38053:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"38097:4:88","nodeType":"YulIdentifier","src":"38097:4:88"},{"kind":"number","nativeSrc":"38103:3:88","nodeType":"YulLiteral","src":"38103:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"38094:2:88","nodeType":"YulIdentifier","src":"38094:2:88"},"nativeSrc":"38094:13:88","nodeType":"YulFunctionCall","src":"38094:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"38112:8:88","nodeType":"YulIdentifier","src":"38112:8:88"},{"kind":"number","nativeSrc":"38122:2:88","nodeType":"YulLiteral","src":"38122:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"38109:2:88","nodeType":"YulIdentifier","src":"38109:2:88"},"nativeSrc":"38109:16:88","nodeType":"YulFunctionCall","src":"38109:16:88"}],"functionName":{"name":"and","nativeSrc":"38090:3:88","nodeType":"YulIdentifier","src":"38090:3:88"},"nativeSrc":"38090:36:88","nodeType":"YulFunctionCall","src":"38090:36:88"}],"functionName":{"name":"or","nativeSrc":"38050:2:88","nodeType":"YulIdentifier","src":"38050:2:88"},"nativeSrc":"38050:77:88","nodeType":"YulFunctionCall","src":"38050:77:88"},"nativeSrc":"38047:203:88","nodeType":"YulIf","src":"38047:203:88"},{"nativeSrc":"38259:65:88","nodeType":"YulVariableDeclaration","src":"38259:65:88","value":{"arguments":[{"name":"base","nativeSrc":"38301:4:88","nodeType":"YulIdentifier","src":"38301:4:88"},{"name":"exponent","nativeSrc":"38307:8:88","nodeType":"YulIdentifier","src":"38307:8:88"},{"arguments":[{"kind":"number","nativeSrc":"38321:1:88","nodeType":"YulLiteral","src":"38321:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"38317:3:88","nodeType":"YulIdentifier","src":"38317:3:88"},"nativeSrc":"38317:6:88","nodeType":"YulFunctionCall","src":"38317:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"38282:18:88","nodeType":"YulIdentifier","src":"38282:18:88"},"nativeSrc":"38282:42:88","nodeType":"YulFunctionCall","src":"38282:42:88"},"variables":[{"name":"power_1","nativeSrc":"38263:7:88","nodeType":"YulTypedName","src":"38263:7:88","type":""},{"name":"base_1","nativeSrc":"38272:6:88","nodeType":"YulTypedName","src":"38272:6:88","type":""}]},{"body":{"nativeSrc":"38369:22:88","nodeType":"YulBlock","src":"38369:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"38371:16:88","nodeType":"YulIdentifier","src":"38371:16:88"},"nativeSrc":"38371:18:88","nodeType":"YulFunctionCall","src":"38371:18:88"},"nativeSrc":"38371:18:88","nodeType":"YulExpressionStatement","src":"38371:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"38339:7:88","nodeType":"YulIdentifier","src":"38339:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38356:1:88","nodeType":"YulLiteral","src":"38356:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"38352:3:88","nodeType":"YulIdentifier","src":"38352:3:88"},"nativeSrc":"38352:6:88","nodeType":"YulFunctionCall","src":"38352:6:88"},{"name":"base_1","nativeSrc":"38360:6:88","nodeType":"YulIdentifier","src":"38360:6:88"}],"functionName":{"name":"div","nativeSrc":"38348:3:88","nodeType":"YulIdentifier","src":"38348:3:88"},"nativeSrc":"38348:19:88","nodeType":"YulFunctionCall","src":"38348:19:88"}],"functionName":{"name":"gt","nativeSrc":"38336:2:88","nodeType":"YulIdentifier","src":"38336:2:88"},"nativeSrc":"38336:32:88","nodeType":"YulFunctionCall","src":"38336:32:88"},"nativeSrc":"38333:58:88","nodeType":"YulIf","src":"38333:58:88"},{"nativeSrc":"38400:29:88","nodeType":"YulAssignment","src":"38400:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"38413:7:88","nodeType":"YulIdentifier","src":"38413:7:88"},{"name":"base_1","nativeSrc":"38422:6:88","nodeType":"YulIdentifier","src":"38422:6:88"}],"functionName":{"name":"mul","nativeSrc":"38409:3:88","nodeType":"YulIdentifier","src":"38409:3:88"},"nativeSrc":"38409:20:88","nodeType":"YulFunctionCall","src":"38409:20:88"},"variableNames":[{"name":"power","nativeSrc":"38400:5:88","nodeType":"YulIdentifier","src":"38400:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"37533:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"37563:4:88","nodeType":"YulTypedName","src":"37563:4:88","type":""},{"name":"exponent","nativeSrc":"37569:8:88","nodeType":"YulTypedName","src":"37569:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"37582:5:88","nodeType":"YulTypedName","src":"37582:5:88","type":""}],"src":"37533:902:88"},{"body":{"nativeSrc":"38508:72:88","nodeType":"YulBlock","src":"38508:72:88","statements":[{"nativeSrc":"38518:56:88","nodeType":"YulAssignment","src":"38518:56:88","value":{"arguments":[{"name":"base","nativeSrc":"38548:4:88","nodeType":"YulIdentifier","src":"38548:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"38558:8:88","nodeType":"YulIdentifier","src":"38558:8:88"},{"kind":"number","nativeSrc":"38568:4:88","nodeType":"YulLiteral","src":"38568:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"38554:3:88","nodeType":"YulIdentifier","src":"38554:3:88"},"nativeSrc":"38554:19:88","nodeType":"YulFunctionCall","src":"38554:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"38527:20:88","nodeType":"YulIdentifier","src":"38527:20:88"},"nativeSrc":"38527:47:88","nodeType":"YulFunctionCall","src":"38527:47:88"},"variableNames":[{"name":"power","nativeSrc":"38518:5:88","nodeType":"YulIdentifier","src":"38518:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"38440:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"38479:4:88","nodeType":"YulTypedName","src":"38479:4:88","type":""},{"name":"exponent","nativeSrc":"38485:8:88","nodeType":"YulTypedName","src":"38485:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"38498:5:88","nodeType":"YulTypedName","src":"38498:5:88","type":""}],"src":"38440:140:88"},{"body":{"nativeSrc":"38637:116:88","nodeType":"YulBlock","src":"38637:116:88","statements":[{"nativeSrc":"38647:20:88","nodeType":"YulAssignment","src":"38647:20:88","value":{"arguments":[{"name":"x","nativeSrc":"38662:1:88","nodeType":"YulIdentifier","src":"38662:1:88"},{"name":"y","nativeSrc":"38665:1:88","nodeType":"YulIdentifier","src":"38665:1:88"}],"functionName":{"name":"mul","nativeSrc":"38658:3:88","nodeType":"YulIdentifier","src":"38658:3:88"},"nativeSrc":"38658:9:88","nodeType":"YulFunctionCall","src":"38658:9:88"},"variableNames":[{"name":"product","nativeSrc":"38647:7:88","nodeType":"YulIdentifier","src":"38647:7:88"}]},{"body":{"nativeSrc":"38725:22:88","nodeType":"YulBlock","src":"38725:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"38727:16:88","nodeType":"YulIdentifier","src":"38727:16:88"},"nativeSrc":"38727:18:88","nodeType":"YulFunctionCall","src":"38727:18:88"},"nativeSrc":"38727:18:88","nodeType":"YulExpressionStatement","src":"38727:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"38696:1:88","nodeType":"YulIdentifier","src":"38696:1:88"}],"functionName":{"name":"iszero","nativeSrc":"38689:6:88","nodeType":"YulIdentifier","src":"38689:6:88"},"nativeSrc":"38689:9:88","nodeType":"YulFunctionCall","src":"38689:9:88"},{"arguments":[{"name":"y","nativeSrc":"38703:1:88","nodeType":"YulIdentifier","src":"38703:1:88"},{"arguments":[{"name":"product","nativeSrc":"38710:7:88","nodeType":"YulIdentifier","src":"38710:7:88"},{"name":"x","nativeSrc":"38719:1:88","nodeType":"YulIdentifier","src":"38719:1:88"}],"functionName":{"name":"div","nativeSrc":"38706:3:88","nodeType":"YulIdentifier","src":"38706:3:88"},"nativeSrc":"38706:15:88","nodeType":"YulFunctionCall","src":"38706:15:88"}],"functionName":{"name":"eq","nativeSrc":"38700:2:88","nodeType":"YulIdentifier","src":"38700:2:88"},"nativeSrc":"38700:22:88","nodeType":"YulFunctionCall","src":"38700:22:88"}],"functionName":{"name":"or","nativeSrc":"38686:2:88","nodeType":"YulIdentifier","src":"38686:2:88"},"nativeSrc":"38686:37:88","nodeType":"YulFunctionCall","src":"38686:37:88"}],"functionName":{"name":"iszero","nativeSrc":"38679:6:88","nodeType":"YulIdentifier","src":"38679:6:88"},"nativeSrc":"38679:45:88","nodeType":"YulFunctionCall","src":"38679:45:88"},"nativeSrc":"38676:71:88","nodeType":"YulIf","src":"38676:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"38585:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"38616:1:88","nodeType":"YulTypedName","src":"38616:1:88","type":""},{"name":"y","nativeSrc":"38619:1:88","nodeType":"YulTypedName","src":"38619:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"38625:7:88","nodeType":"YulTypedName","src":"38625:7:88","type":""}],"src":"38585:168:88"},{"body":{"nativeSrc":"38932:182:88","nodeType":"YulBlock","src":"38932:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38949:9:88","nodeType":"YulIdentifier","src":"38949:9:88"},{"kind":"number","nativeSrc":"38960:2:88","nodeType":"YulLiteral","src":"38960:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38942:6:88","nodeType":"YulIdentifier","src":"38942:6:88"},"nativeSrc":"38942:21:88","nodeType":"YulFunctionCall","src":"38942:21:88"},"nativeSrc":"38942:21:88","nodeType":"YulExpressionStatement","src":"38942:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38983:9:88","nodeType":"YulIdentifier","src":"38983:9:88"},{"kind":"number","nativeSrc":"38994:2:88","nodeType":"YulLiteral","src":"38994:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38979:3:88","nodeType":"YulIdentifier","src":"38979:3:88"},"nativeSrc":"38979:18:88","nodeType":"YulFunctionCall","src":"38979:18:88"},{"kind":"number","nativeSrc":"38999:2:88","nodeType":"YulLiteral","src":"38999:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38972:6:88","nodeType":"YulIdentifier","src":"38972:6:88"},"nativeSrc":"38972:30:88","nodeType":"YulFunctionCall","src":"38972:30:88"},"nativeSrc":"38972:30:88","nodeType":"YulExpressionStatement","src":"38972:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39022:9:88","nodeType":"YulIdentifier","src":"39022:9:88"},{"kind":"number","nativeSrc":"39033:2:88","nodeType":"YulLiteral","src":"39033:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39018:3:88","nodeType":"YulIdentifier","src":"39018:3:88"},"nativeSrc":"39018:18:88","nodeType":"YulFunctionCall","src":"39018:18:88"},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","kind":"string","nativeSrc":"39038:34:88","nodeType":"YulLiteral","src":"39038:34:88","type":"","value":"Expiration must be in the future"}],"functionName":{"name":"mstore","nativeSrc":"39011:6:88","nodeType":"YulIdentifier","src":"39011:6:88"},"nativeSrc":"39011:62:88","nodeType":"YulFunctionCall","src":"39011:62:88"},"nativeSrc":"39011:62:88","nodeType":"YulExpressionStatement","src":"39011:62:88"},{"nativeSrc":"39082:26:88","nodeType":"YulAssignment","src":"39082:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39094:9:88","nodeType":"YulIdentifier","src":"39094:9:88"},{"kind":"number","nativeSrc":"39105:2:88","nodeType":"YulLiteral","src":"39105:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39090:3:88","nodeType":"YulIdentifier","src":"39090:3:88"},"nativeSrc":"39090:18:88","nodeType":"YulFunctionCall","src":"39090:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39082:4:88","nodeType":"YulIdentifier","src":"39082:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38758:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38909:9:88","nodeType":"YulTypedName","src":"38909:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38923:4:88","nodeType":"YulTypedName","src":"38923:4:88","type":""}],"src":"38758:356:88"},{"body":{"nativeSrc":"39293:180:88","nodeType":"YulBlock","src":"39293:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39310:9:88","nodeType":"YulIdentifier","src":"39310:9:88"},{"kind":"number","nativeSrc":"39321:2:88","nodeType":"YulLiteral","src":"39321:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39303:6:88","nodeType":"YulIdentifier","src":"39303:6:88"},"nativeSrc":"39303:21:88","nodeType":"YulFunctionCall","src":"39303:21:88"},"nativeSrc":"39303:21:88","nodeType":"YulExpressionStatement","src":"39303:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39344:9:88","nodeType":"YulIdentifier","src":"39344:9:88"},{"kind":"number","nativeSrc":"39355:2:88","nodeType":"YulLiteral","src":"39355:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39340:3:88","nodeType":"YulIdentifier","src":"39340:3:88"},"nativeSrc":"39340:18:88","nodeType":"YulFunctionCall","src":"39340:18:88"},{"kind":"number","nativeSrc":"39360:2:88","nodeType":"YulLiteral","src":"39360:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"39333:6:88","nodeType":"YulIdentifier","src":"39333:6:88"},"nativeSrc":"39333:30:88","nodeType":"YulFunctionCall","src":"39333:30:88"},"nativeSrc":"39333:30:88","nodeType":"YulExpressionStatement","src":"39333:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39383:9:88","nodeType":"YulIdentifier","src":"39383:9:88"},{"kind":"number","nativeSrc":"39394:2:88","nodeType":"YulLiteral","src":"39394:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39379:3:88","nodeType":"YulIdentifier","src":"39379:3:88"},"nativeSrc":"39379:18:88","nodeType":"YulFunctionCall","src":"39379:18:88"},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"39399:32:88","nodeType":"YulLiteral","src":"39399:32:88","type":"","value":"Customer can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"39372:6:88","nodeType":"YulIdentifier","src":"39372:6:88"},"nativeSrc":"39372:60:88","nodeType":"YulFunctionCall","src":"39372:60:88"},"nativeSrc":"39372:60:88","nodeType":"YulExpressionStatement","src":"39372:60:88"},{"nativeSrc":"39441:26:88","nodeType":"YulAssignment","src":"39441:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39453:9:88","nodeType":"YulIdentifier","src":"39453:9:88"},{"kind":"number","nativeSrc":"39464:2:88","nodeType":"YulLiteral","src":"39464:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39449:3:88","nodeType":"YulIdentifier","src":"39449:3:88"},"nativeSrc":"39449:18:88","nodeType":"YulFunctionCall","src":"39449:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39441:4:88","nodeType":"YulIdentifier","src":"39441:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39119:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39270:9:88","nodeType":"YulTypedName","src":"39270:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39284:4:88","nodeType":"YulTypedName","src":"39284:4:88","type":""}],"src":"39119:354:88"},{"body":{"nativeSrc":"39719:316:88","nodeType":"YulBlock","src":"39719:316:88","statements":[{"nativeSrc":"39729:27:88","nodeType":"YulAssignment","src":"39729:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39741:9:88","nodeType":"YulIdentifier","src":"39741:9:88"},{"kind":"number","nativeSrc":"39752:3:88","nodeType":"YulLiteral","src":"39752:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"39737:3:88","nodeType":"YulIdentifier","src":"39737:3:88"},"nativeSrc":"39737:19:88","nodeType":"YulFunctionCall","src":"39737:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39729:4:88","nodeType":"YulIdentifier","src":"39729:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"39794:6:88","nodeType":"YulIdentifier","src":"39794:6:88"},{"name":"headStart","nativeSrc":"39802:9:88","nodeType":"YulIdentifier","src":"39802:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"39765:28:88","nodeType":"YulIdentifier","src":"39765:28:88"},"nativeSrc":"39765:47:88","nodeType":"YulFunctionCall","src":"39765:47:88"},"nativeSrc":"39765:47:88","nodeType":"YulExpressionStatement","src":"39765:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39832:9:88","nodeType":"YulIdentifier","src":"39832:9:88"},{"kind":"number","nativeSrc":"39843:3:88","nodeType":"YulLiteral","src":"39843:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"39828:3:88","nodeType":"YulIdentifier","src":"39828:3:88"},"nativeSrc":"39828:19:88","nodeType":"YulFunctionCall","src":"39828:19:88"},{"arguments":[{"name":"value1","nativeSrc":"39853:6:88","nodeType":"YulIdentifier","src":"39853:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39869:3:88","nodeType":"YulLiteral","src":"39869:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39874:1:88","nodeType":"YulLiteral","src":"39874:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39865:3:88","nodeType":"YulIdentifier","src":"39865:3:88"},"nativeSrc":"39865:11:88","nodeType":"YulFunctionCall","src":"39865:11:88"},{"kind":"number","nativeSrc":"39878:1:88","nodeType":"YulLiteral","src":"39878:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39861:3:88","nodeType":"YulIdentifier","src":"39861:3:88"},"nativeSrc":"39861:19:88","nodeType":"YulFunctionCall","src":"39861:19:88"}],"functionName":{"name":"and","nativeSrc":"39849:3:88","nodeType":"YulIdentifier","src":"39849:3:88"},"nativeSrc":"39849:32:88","nodeType":"YulFunctionCall","src":"39849:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39821:6:88","nodeType":"YulIdentifier","src":"39821:6:88"},"nativeSrc":"39821:61:88","nodeType":"YulFunctionCall","src":"39821:61:88"},"nativeSrc":"39821:61:88","nodeType":"YulExpressionStatement","src":"39821:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39902:9:88","nodeType":"YulIdentifier","src":"39902:9:88"},{"kind":"number","nativeSrc":"39913:3:88","nodeType":"YulLiteral","src":"39913:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"39898:3:88","nodeType":"YulIdentifier","src":"39898:3:88"},"nativeSrc":"39898:19:88","nodeType":"YulFunctionCall","src":"39898:19:88"},{"arguments":[{"name":"value2","nativeSrc":"39923:6:88","nodeType":"YulIdentifier","src":"39923:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39939:3:88","nodeType":"YulLiteral","src":"39939:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39944:1:88","nodeType":"YulLiteral","src":"39944:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39935:3:88","nodeType":"YulIdentifier","src":"39935:3:88"},"nativeSrc":"39935:11:88","nodeType":"YulFunctionCall","src":"39935:11:88"},{"kind":"number","nativeSrc":"39948:1:88","nodeType":"YulLiteral","src":"39948:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39931:3:88","nodeType":"YulIdentifier","src":"39931:3:88"},"nativeSrc":"39931:19:88","nodeType":"YulFunctionCall","src":"39931:19:88"}],"functionName":{"name":"and","nativeSrc":"39919:3:88","nodeType":"YulIdentifier","src":"39919:3:88"},"nativeSrc":"39919:32:88","nodeType":"YulFunctionCall","src":"39919:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39891:6:88","nodeType":"YulIdentifier","src":"39891:6:88"},"nativeSrc":"39891:61:88","nodeType":"YulFunctionCall","src":"39891:61:88"},"nativeSrc":"39891:61:88","nodeType":"YulExpressionStatement","src":"39891:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39972:9:88","nodeType":"YulIdentifier","src":"39972:9:88"},{"kind":"number","nativeSrc":"39983:3:88","nodeType":"YulLiteral","src":"39983:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"39968:3:88","nodeType":"YulIdentifier","src":"39968:3:88"},"nativeSrc":"39968:19:88","nodeType":"YulFunctionCall","src":"39968:19:88"},{"arguments":[{"name":"value3","nativeSrc":"39993:6:88","nodeType":"YulIdentifier","src":"39993:6:88"},{"kind":"number","nativeSrc":"40001:26:88","nodeType":"YulLiteral","src":"40001:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"39989:3:88","nodeType":"YulIdentifier","src":"39989:3:88"},"nativeSrc":"39989:39:88","nodeType":"YulFunctionCall","src":"39989:39:88"}],"functionName":{"name":"mstore","nativeSrc":"39961:6:88","nodeType":"YulIdentifier","src":"39961:6:88"},"nativeSrc":"39961:68:88","nodeType":"YulFunctionCall","src":"39961:68:88"},"nativeSrc":"39961:68:88","nodeType":"YulExpressionStatement","src":"39961:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed","nativeSrc":"39478:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39664:9:88","nodeType":"YulTypedName","src":"39664:9:88","type":""},{"name":"value3","nativeSrc":"39675:6:88","nodeType":"YulTypedName","src":"39675:6:88","type":""},{"name":"value2","nativeSrc":"39683:6:88","nodeType":"YulTypedName","src":"39683:6:88","type":""},{"name":"value1","nativeSrc":"39691:6:88","nodeType":"YulTypedName","src":"39691:6:88","type":""},{"name":"value0","nativeSrc":"39699:6:88","nodeType":"YulTypedName","src":"39699:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39710:4:88","nodeType":"YulTypedName","src":"39710:4:88","type":""}],"src":"39478:557:88"},{"body":{"nativeSrc":"40118:199:88","nodeType":"YulBlock","src":"40118:199:88","statements":[{"body":{"nativeSrc":"40164:16:88","nodeType":"YulBlock","src":"40164:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40173:1:88","nodeType":"YulLiteral","src":"40173:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"40176:1:88","nodeType":"YulLiteral","src":"40176:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40166:6:88","nodeType":"YulIdentifier","src":"40166:6:88"},"nativeSrc":"40166:12:88","nodeType":"YulFunctionCall","src":"40166:12:88"},"nativeSrc":"40166:12:88","nodeType":"YulExpressionStatement","src":"40166:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"40139:7:88","nodeType":"YulIdentifier","src":"40139:7:88"},{"name":"headStart","nativeSrc":"40148:9:88","nodeType":"YulIdentifier","src":"40148:9:88"}],"functionName":{"name":"sub","nativeSrc":"40135:3:88","nodeType":"YulIdentifier","src":"40135:3:88"},"nativeSrc":"40135:23:88","nodeType":"YulFunctionCall","src":"40135:23:88"},{"kind":"number","nativeSrc":"40160:2:88","nodeType":"YulLiteral","src":"40160:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"40131:3:88","nodeType":"YulIdentifier","src":"40131:3:88"},"nativeSrc":"40131:32:88","nodeType":"YulFunctionCall","src":"40131:32:88"},"nativeSrc":"40128:52:88","nodeType":"YulIf","src":"40128:52:88"},{"nativeSrc":"40189:29:88","nodeType":"YulVariableDeclaration","src":"40189:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40208:9:88","nodeType":"YulIdentifier","src":"40208:9:88"}],"functionName":{"name":"mload","nativeSrc":"40202:5:88","nodeType":"YulIdentifier","src":"40202:5:88"},"nativeSrc":"40202:16:88","nodeType":"YulFunctionCall","src":"40202:16:88"},"variables":[{"name":"value","nativeSrc":"40193:5:88","nodeType":"YulTypedName","src":"40193:5:88","type":""}]},{"body":{"nativeSrc":"40271:16:88","nodeType":"YulBlock","src":"40271:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40280:1:88","nodeType":"YulLiteral","src":"40280:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"40283:1:88","nodeType":"YulLiteral","src":"40283:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40273:6:88","nodeType":"YulIdentifier","src":"40273:6:88"},"nativeSrc":"40273:12:88","nodeType":"YulFunctionCall","src":"40273:12:88"},"nativeSrc":"40273:12:88","nodeType":"YulExpressionStatement","src":"40273:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40240:5:88","nodeType":"YulIdentifier","src":"40240:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40261:5:88","nodeType":"YulIdentifier","src":"40261:5:88"}],"functionName":{"name":"iszero","nativeSrc":"40254:6:88","nodeType":"YulIdentifier","src":"40254:6:88"},"nativeSrc":"40254:13:88","nodeType":"YulFunctionCall","src":"40254:13:88"}],"functionName":{"name":"iszero","nativeSrc":"40247:6:88","nodeType":"YulIdentifier","src":"40247:6:88"},"nativeSrc":"40247:21:88","nodeType":"YulFunctionCall","src":"40247:21:88"}],"functionName":{"name":"eq","nativeSrc":"40237:2:88","nodeType":"YulIdentifier","src":"40237:2:88"},"nativeSrc":"40237:32:88","nodeType":"YulFunctionCall","src":"40237:32:88"}],"functionName":{"name":"iszero","nativeSrc":"40230:6:88","nodeType":"YulIdentifier","src":"40230:6:88"},"nativeSrc":"40230:40:88","nodeType":"YulFunctionCall","src":"40230:40:88"},"nativeSrc":"40227:60:88","nodeType":"YulIf","src":"40227:60:88"},{"nativeSrc":"40296:15:88","nodeType":"YulAssignment","src":"40296:15:88","value":{"name":"value","nativeSrc":"40306:5:88","nodeType":"YulIdentifier","src":"40306:5:88"},"variableNames":[{"name":"value0","nativeSrc":"40296:6:88","nodeType":"YulIdentifier","src":"40296:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"40040:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40084:9:88","nodeType":"YulTypedName","src":"40084:9:88","type":""},{"name":"dataEnd","nativeSrc":"40095:7:88","nodeType":"YulTypedName","src":"40095:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"40107:6:88","nodeType":"YulTypedName","src":"40107:6:88","type":""}],"src":"40040:277:88"},{"body":{"nativeSrc":"40496:228:88","nodeType":"YulBlock","src":"40496:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40513:9:88","nodeType":"YulIdentifier","src":"40513:9:88"},{"kind":"number","nativeSrc":"40524:2:88","nodeType":"YulLiteral","src":"40524:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40506:6:88","nodeType":"YulIdentifier","src":"40506:6:88"},"nativeSrc":"40506:21:88","nodeType":"YulFunctionCall","src":"40506:21:88"},"nativeSrc":"40506:21:88","nodeType":"YulExpressionStatement","src":"40506:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40547:9:88","nodeType":"YulIdentifier","src":"40547:9:88"},{"kind":"number","nativeSrc":"40558:2:88","nodeType":"YulLiteral","src":"40558:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40543:3:88","nodeType":"YulIdentifier","src":"40543:3:88"},"nativeSrc":"40543:18:88","nodeType":"YulFunctionCall","src":"40543:18:88"},{"kind":"number","nativeSrc":"40563:2:88","nodeType":"YulLiteral","src":"40563:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"40536:6:88","nodeType":"YulIdentifier","src":"40536:6:88"},"nativeSrc":"40536:30:88","nodeType":"YulFunctionCall","src":"40536:30:88"},"nativeSrc":"40536:30:88","nodeType":"YulExpressionStatement","src":"40536:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40586:9:88","nodeType":"YulIdentifier","src":"40586:9:88"},{"kind":"number","nativeSrc":"40597:2:88","nodeType":"YulLiteral","src":"40597:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40582:3:88","nodeType":"YulIdentifier","src":"40582:3:88"},"nativeSrc":"40582:18:88","nodeType":"YulFunctionCall","src":"40582:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"40602:34:88","nodeType":"YulLiteral","src":"40602:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"40575:6:88","nodeType":"YulIdentifier","src":"40575:6:88"},"nativeSrc":"40575:62:88","nodeType":"YulFunctionCall","src":"40575:62:88"},"nativeSrc":"40575:62:88","nodeType":"YulExpressionStatement","src":"40575:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40657:9:88","nodeType":"YulIdentifier","src":"40657:9:88"},{"kind":"number","nativeSrc":"40668:2:88","nodeType":"YulLiteral","src":"40668:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40653:3:88","nodeType":"YulIdentifier","src":"40653:3:88"},"nativeSrc":"40653:18:88","nodeType":"YulFunctionCall","src":"40653:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"40673:8:88","nodeType":"YulLiteral","src":"40673:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"40646:6:88","nodeType":"YulIdentifier","src":"40646:6:88"},"nativeSrc":"40646:36:88","nodeType":"YulFunctionCall","src":"40646:36:88"},"nativeSrc":"40646:36:88","nodeType":"YulExpressionStatement","src":"40646:36:88"},{"nativeSrc":"40691:27:88","nodeType":"YulAssignment","src":"40691:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40703:9:88","nodeType":"YulIdentifier","src":"40703:9:88"},{"kind":"number","nativeSrc":"40714:3:88","nodeType":"YulLiteral","src":"40714:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40699:3:88","nodeType":"YulIdentifier","src":"40699:3:88"},"nativeSrc":"40699:19:88","nodeType":"YulFunctionCall","src":"40699:19:88"},"variableNames":[{"name":"tail","nativeSrc":"40691:4:88","nodeType":"YulIdentifier","src":"40691:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40322:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40473:9:88","nodeType":"YulTypedName","src":"40473:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40487:4:88","nodeType":"YulTypedName","src":"40487:4:88","type":""}],"src":"40322:402:88"},{"body":{"nativeSrc":"40836:170:88","nodeType":"YulBlock","src":"40836:170:88","statements":[{"body":{"nativeSrc":"40882:16:88","nodeType":"YulBlock","src":"40882:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40891:1:88","nodeType":"YulLiteral","src":"40891:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"40894:1:88","nodeType":"YulLiteral","src":"40894:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40884:6:88","nodeType":"YulIdentifier","src":"40884:6:88"},"nativeSrc":"40884:12:88","nodeType":"YulFunctionCall","src":"40884:12:88"},"nativeSrc":"40884:12:88","nodeType":"YulExpressionStatement","src":"40884:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"40857:7:88","nodeType":"YulIdentifier","src":"40857:7:88"},{"name":"headStart","nativeSrc":"40866:9:88","nodeType":"YulIdentifier","src":"40866:9:88"}],"functionName":{"name":"sub","nativeSrc":"40853:3:88","nodeType":"YulIdentifier","src":"40853:3:88"},"nativeSrc":"40853:23:88","nodeType":"YulFunctionCall","src":"40853:23:88"},{"kind":"number","nativeSrc":"40878:2:88","nodeType":"YulLiteral","src":"40878:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"40849:3:88","nodeType":"YulIdentifier","src":"40849:3:88"},"nativeSrc":"40849:32:88","nodeType":"YulFunctionCall","src":"40849:32:88"},"nativeSrc":"40846:52:88","nodeType":"YulIf","src":"40846:52:88"},{"nativeSrc":"40907:29:88","nodeType":"YulVariableDeclaration","src":"40907:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40926:9:88","nodeType":"YulIdentifier","src":"40926:9:88"}],"functionName":{"name":"mload","nativeSrc":"40920:5:88","nodeType":"YulIdentifier","src":"40920:5:88"},"nativeSrc":"40920:16:88","nodeType":"YulFunctionCall","src":"40920:16:88"},"variables":[{"name":"value","nativeSrc":"40911:5:88","nodeType":"YulTypedName","src":"40911:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"40970:5:88","nodeType":"YulIdentifier","src":"40970:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"40945:24:88","nodeType":"YulIdentifier","src":"40945:24:88"},"nativeSrc":"40945:31:88","nodeType":"YulFunctionCall","src":"40945:31:88"},"nativeSrc":"40945:31:88","nodeType":"YulExpressionStatement","src":"40945:31:88"},{"nativeSrc":"40985:15:88","nodeType":"YulAssignment","src":"40985:15:88","value":{"name":"value","nativeSrc":"40995:5:88","nodeType":"YulIdentifier","src":"40995:5:88"},"variableNames":[{"name":"value0","nativeSrc":"40985:6:88","nodeType":"YulIdentifier","src":"40985:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"40729:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40802:9:88","nodeType":"YulTypedName","src":"40802:9:88","type":""},{"name":"dataEnd","nativeSrc":"40813:7:88","nodeType":"YulTypedName","src":"40813:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"40825:6:88","nodeType":"YulTypedName","src":"40825:6:88","type":""}],"src":"40729:277:88"},{"body":{"nativeSrc":"41185:235:88","nodeType":"YulBlock","src":"41185:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41202:9:88","nodeType":"YulIdentifier","src":"41202:9:88"},{"kind":"number","nativeSrc":"41213:2:88","nodeType":"YulLiteral","src":"41213:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41195:6:88","nodeType":"YulIdentifier","src":"41195:6:88"},"nativeSrc":"41195:21:88","nodeType":"YulFunctionCall","src":"41195:21:88"},"nativeSrc":"41195:21:88","nodeType":"YulExpressionStatement","src":"41195:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41236:9:88","nodeType":"YulIdentifier","src":"41236:9:88"},{"kind":"number","nativeSrc":"41247:2:88","nodeType":"YulLiteral","src":"41247:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41232:3:88","nodeType":"YulIdentifier","src":"41232:3:88"},"nativeSrc":"41232:18:88","nodeType":"YulFunctionCall","src":"41232:18:88"},{"kind":"number","nativeSrc":"41252:2:88","nodeType":"YulLiteral","src":"41252:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"41225:6:88","nodeType":"YulIdentifier","src":"41225:6:88"},"nativeSrc":"41225:30:88","nodeType":"YulFunctionCall","src":"41225:30:88"},"nativeSrc":"41225:30:88","nodeType":"YulExpressionStatement","src":"41225:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41275:9:88","nodeType":"YulIdentifier","src":"41275:9:88"},{"kind":"number","nativeSrc":"41286:2:88","nodeType":"YulLiteral","src":"41286:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41271:3:88","nodeType":"YulIdentifier","src":"41271:3:88"},"nativeSrc":"41271:18:88","nodeType":"YulFunctionCall","src":"41271:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"41291:34:88","nodeType":"YulLiteral","src":"41291:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"41264:6:88","nodeType":"YulIdentifier","src":"41264:6:88"},"nativeSrc":"41264:62:88","nodeType":"YulFunctionCall","src":"41264:62:88"},"nativeSrc":"41264:62:88","nodeType":"YulExpressionStatement","src":"41264:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41346:9:88","nodeType":"YulIdentifier","src":"41346:9:88"},{"kind":"number","nativeSrc":"41357:2:88","nodeType":"YulLiteral","src":"41357:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41342:3:88","nodeType":"YulIdentifier","src":"41342:3:88"},"nativeSrc":"41342:18:88","nodeType":"YulFunctionCall","src":"41342:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"41362:15:88","nodeType":"YulLiteral","src":"41362:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"41335:6:88","nodeType":"YulIdentifier","src":"41335:6:88"},"nativeSrc":"41335:43:88","nodeType":"YulFunctionCall","src":"41335:43:88"},"nativeSrc":"41335:43:88","nodeType":"YulExpressionStatement","src":"41335:43:88"},{"nativeSrc":"41387:27:88","nodeType":"YulAssignment","src":"41387:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41399:9:88","nodeType":"YulIdentifier","src":"41399:9:88"},{"kind":"number","nativeSrc":"41410:3:88","nodeType":"YulLiteral","src":"41410:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41395:3:88","nodeType":"YulIdentifier","src":"41395:3:88"},"nativeSrc":"41395:19:88","nodeType":"YulFunctionCall","src":"41395:19:88"},"variableNames":[{"name":"tail","nativeSrc":"41387:4:88","nodeType":"YulIdentifier","src":"41387:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41011:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41162:9:88","nodeType":"YulTypedName","src":"41162:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41176:4:88","nodeType":"YulTypedName","src":"41176:4:88","type":""}],"src":"41011:409:88"},{"body":{"nativeSrc":"41599:170:88","nodeType":"YulBlock","src":"41599:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41616:9:88","nodeType":"YulIdentifier","src":"41616:9:88"},{"kind":"number","nativeSrc":"41627:2:88","nodeType":"YulLiteral","src":"41627:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41609:6:88","nodeType":"YulIdentifier","src":"41609:6:88"},"nativeSrc":"41609:21:88","nodeType":"YulFunctionCall","src":"41609:21:88"},"nativeSrc":"41609:21:88","nodeType":"YulExpressionStatement","src":"41609:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41650:9:88","nodeType":"YulIdentifier","src":"41650:9:88"},{"kind":"number","nativeSrc":"41661:2:88","nodeType":"YulLiteral","src":"41661:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41646:3:88","nodeType":"YulIdentifier","src":"41646:3:88"},"nativeSrc":"41646:18:88","nodeType":"YulFunctionCall","src":"41646:18:88"},{"kind":"number","nativeSrc":"41666:2:88","nodeType":"YulLiteral","src":"41666:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"41639:6:88","nodeType":"YulIdentifier","src":"41639:6:88"},"nativeSrc":"41639:30:88","nodeType":"YulFunctionCall","src":"41639:30:88"},"nativeSrc":"41639:30:88","nodeType":"YulExpressionStatement","src":"41639:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41689:9:88","nodeType":"YulIdentifier","src":"41689:9:88"},{"kind":"number","nativeSrc":"41700:2:88","nodeType":"YulLiteral","src":"41700:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41685:3:88","nodeType":"YulIdentifier","src":"41685:3:88"},"nativeSrc":"41685:18:88","nodeType":"YulFunctionCall","src":"41685:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"41705:22:88","nodeType":"YulLiteral","src":"41705:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"41678:6:88","nodeType":"YulIdentifier","src":"41678:6:88"},"nativeSrc":"41678:50:88","nodeType":"YulFunctionCall","src":"41678:50:88"},"nativeSrc":"41678:50:88","nodeType":"YulExpressionStatement","src":"41678:50:88"},{"nativeSrc":"41737:26:88","nodeType":"YulAssignment","src":"41737:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41749:9:88","nodeType":"YulIdentifier","src":"41749:9:88"},{"kind":"number","nativeSrc":"41760:2:88","nodeType":"YulLiteral","src":"41760:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41745:3:88","nodeType":"YulIdentifier","src":"41745:3:88"},"nativeSrc":"41745:18:88","nodeType":"YulFunctionCall","src":"41745:18:88"},"variableNames":[{"name":"tail","nativeSrc":"41737:4:88","nodeType":"YulIdentifier","src":"41737:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41425:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41576:9:88","nodeType":"YulTypedName","src":"41576:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41590:4:88","nodeType":"YulTypedName","src":"41590:4:88","type":""}],"src":"41425:344:88"},{"body":{"nativeSrc":"41824:162:88","nodeType":"YulBlock","src":"41824:162:88","statements":[{"nativeSrc":"41834:26:88","nodeType":"YulVariableDeclaration","src":"41834:26:88","value":{"arguments":[{"name":"value","nativeSrc":"41854:5:88","nodeType":"YulIdentifier","src":"41854:5:88"}],"functionName":{"name":"mload","nativeSrc":"41848:5:88","nodeType":"YulIdentifier","src":"41848:5:88"},"nativeSrc":"41848:12:88","nodeType":"YulFunctionCall","src":"41848:12:88"},"variables":[{"name":"length","nativeSrc":"41838:6:88","nodeType":"YulTypedName","src":"41838:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"41875:3:88","nodeType":"YulIdentifier","src":"41875:3:88"},{"arguments":[{"name":"value","nativeSrc":"41884:5:88","nodeType":"YulIdentifier","src":"41884:5:88"},{"kind":"number","nativeSrc":"41891:4:88","nodeType":"YulLiteral","src":"41891:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"41880:3:88","nodeType":"YulIdentifier","src":"41880:3:88"},"nativeSrc":"41880:16:88","nodeType":"YulFunctionCall","src":"41880:16:88"},{"name":"length","nativeSrc":"41898:6:88","nodeType":"YulIdentifier","src":"41898:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"41869:5:88","nodeType":"YulIdentifier","src":"41869:5:88"},"nativeSrc":"41869:36:88","nodeType":"YulFunctionCall","src":"41869:36:88"},"nativeSrc":"41869:36:88","nodeType":"YulExpressionStatement","src":"41869:36:88"},{"nativeSrc":"41914:26:88","nodeType":"YulVariableDeclaration","src":"41914:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"41928:3:88","nodeType":"YulIdentifier","src":"41928:3:88"},{"name":"length","nativeSrc":"41933:6:88","nodeType":"YulIdentifier","src":"41933:6:88"}],"functionName":{"name":"add","nativeSrc":"41924:3:88","nodeType":"YulIdentifier","src":"41924:3:88"},"nativeSrc":"41924:16:88","nodeType":"YulFunctionCall","src":"41924:16:88"},"variables":[{"name":"_1","nativeSrc":"41918:2:88","nodeType":"YulTypedName","src":"41918:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"41956:2:88","nodeType":"YulIdentifier","src":"41956:2:88"},{"kind":"number","nativeSrc":"41960:1:88","nodeType":"YulLiteral","src":"41960:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"41949:6:88","nodeType":"YulIdentifier","src":"41949:6:88"},"nativeSrc":"41949:13:88","nodeType":"YulFunctionCall","src":"41949:13:88"},"nativeSrc":"41949:13:88","nodeType":"YulExpressionStatement","src":"41949:13:88"},{"nativeSrc":"41971:9:88","nodeType":"YulAssignment","src":"41971:9:88","value":{"name":"_1","nativeSrc":"41978:2:88","nodeType":"YulIdentifier","src":"41978:2:88"},"variableNames":[{"name":"end","nativeSrc":"41971:3:88","nodeType":"YulIdentifier","src":"41971:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"41774:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"41801:5:88","nodeType":"YulTypedName","src":"41801:5:88","type":""},{"name":"pos","nativeSrc":"41808:3:88","nodeType":"YulTypedName","src":"41808:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"41816:3:88","nodeType":"YulTypedName","src":"41816:3:88","type":""}],"src":"41774:212:88"},{"body":{"nativeSrc":"42277:177:88","nodeType":"YulBlock","src":"42277:177:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"42294:3:88","nodeType":"YulIdentifier","src":"42294:3:88"},{"kind":"number","nativeSrc":"42299:66:88","nodeType":"YulLiteral","src":"42299:66:88","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nativeSrc":"42287:6:88","nodeType":"YulIdentifier","src":"42287:6:88"},"nativeSrc":"42287:79:88","nodeType":"YulFunctionCall","src":"42287:79:88"},"nativeSrc":"42287:79:88","nodeType":"YulExpressionStatement","src":"42287:79:88"},{"nativeSrc":"42375:73:88","nodeType":"YulAssignment","src":"42375:73:88","value":{"arguments":[{"name":"value1","nativeSrc":"42400:6:88","nodeType":"YulIdentifier","src":"42400:6:88"},{"arguments":[{"name":"value0","nativeSrc":"42426:6:88","nodeType":"YulIdentifier","src":"42426:6:88"},{"arguments":[{"name":"pos","nativeSrc":"42438:3:88","nodeType":"YulIdentifier","src":"42438:3:88"},{"kind":"number","nativeSrc":"42443:2:88","nodeType":"YulLiteral","src":"42443:2:88","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"42434:3:88","nodeType":"YulIdentifier","src":"42434:3:88"},"nativeSrc":"42434:12:88","nodeType":"YulFunctionCall","src":"42434:12:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"42408:17:88","nodeType":"YulIdentifier","src":"42408:17:88"},"nativeSrc":"42408:39:88","nodeType":"YulFunctionCall","src":"42408:39:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"42382:17:88","nodeType":"YulIdentifier","src":"42382:17:88"},"nativeSrc":"42382:66:88","nodeType":"YulFunctionCall","src":"42382:66:88"},"variableNames":[{"name":"end","nativeSrc":"42375:3:88","nodeType":"YulIdentifier","src":"42375:3:88"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"41991:463:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"42245:3:88","nodeType":"YulTypedName","src":"42245:3:88","type":""},{"name":"value1","nativeSrc":"42250:6:88","nodeType":"YulTypedName","src":"42250:6:88","type":""},{"name":"value0","nativeSrc":"42258:6:88","nodeType":"YulTypedName","src":"42258:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"42269:3:88","nodeType":"YulTypedName","src":"42269:3:88","type":""}],"src":"41991:463:88"},{"body":{"nativeSrc":"42633:224:88","nodeType":"YulBlock","src":"42633:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42650:9:88","nodeType":"YulIdentifier","src":"42650:9:88"},{"kind":"number","nativeSrc":"42661:2:88","nodeType":"YulLiteral","src":"42661:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42643:6:88","nodeType":"YulIdentifier","src":"42643:6:88"},"nativeSrc":"42643:21:88","nodeType":"YulFunctionCall","src":"42643:21:88"},"nativeSrc":"42643:21:88","nodeType":"YulExpressionStatement","src":"42643:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42684:9:88","nodeType":"YulIdentifier","src":"42684:9:88"},{"kind":"number","nativeSrc":"42695:2:88","nodeType":"YulLiteral","src":"42695:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42680:3:88","nodeType":"YulIdentifier","src":"42680:3:88"},"nativeSrc":"42680:18:88","nodeType":"YulFunctionCall","src":"42680:18:88"},{"kind":"number","nativeSrc":"42700:2:88","nodeType":"YulLiteral","src":"42700:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"42673:6:88","nodeType":"YulIdentifier","src":"42673:6:88"},"nativeSrc":"42673:30:88","nodeType":"YulFunctionCall","src":"42673:30:88"},"nativeSrc":"42673:30:88","nodeType":"YulExpressionStatement","src":"42673:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42723:9:88","nodeType":"YulIdentifier","src":"42723:9:88"},{"kind":"number","nativeSrc":"42734:2:88","nodeType":"YulLiteral","src":"42734:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42719:3:88","nodeType":"YulIdentifier","src":"42719:3:88"},"nativeSrc":"42719:18:88","nodeType":"YulFunctionCall","src":"42719:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"42739:34:88","nodeType":"YulLiteral","src":"42739:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"42712:6:88","nodeType":"YulIdentifier","src":"42712:6:88"},"nativeSrc":"42712:62:88","nodeType":"YulFunctionCall","src":"42712:62:88"},"nativeSrc":"42712:62:88","nodeType":"YulExpressionStatement","src":"42712:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42794:9:88","nodeType":"YulIdentifier","src":"42794:9:88"},{"kind":"number","nativeSrc":"42805:2:88","nodeType":"YulLiteral","src":"42805:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42790:3:88","nodeType":"YulIdentifier","src":"42790:3:88"},"nativeSrc":"42790:18:88","nodeType":"YulFunctionCall","src":"42790:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"42810:4:88","nodeType":"YulLiteral","src":"42810:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"42783:6:88","nodeType":"YulIdentifier","src":"42783:6:88"},"nativeSrc":"42783:32:88","nodeType":"YulFunctionCall","src":"42783:32:88"},"nativeSrc":"42783:32:88","nodeType":"YulExpressionStatement","src":"42783:32:88"},{"nativeSrc":"42824:27:88","nodeType":"YulAssignment","src":"42824:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"42836:9:88","nodeType":"YulIdentifier","src":"42836:9:88"},{"kind":"number","nativeSrc":"42847:3:88","nodeType":"YulLiteral","src":"42847:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"42832:3:88","nodeType":"YulIdentifier","src":"42832:3:88"},"nativeSrc":"42832:19:88","nodeType":"YulFunctionCall","src":"42832:19:88"},"variableNames":[{"name":"tail","nativeSrc":"42824:4:88","nodeType":"YulIdentifier","src":"42824:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42459:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42610:9:88","nodeType":"YulTypedName","src":"42610:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42624:4:88","nodeType":"YulTypedName","src":"42624:4:88","type":""}],"src":"42459:398:88"},{"body":{"nativeSrc":"43036:175:88","nodeType":"YulBlock","src":"43036:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"43053:9:88","nodeType":"YulIdentifier","src":"43053:9:88"},{"kind":"number","nativeSrc":"43064:2:88","nodeType":"YulLiteral","src":"43064:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"43046:6:88","nodeType":"YulIdentifier","src":"43046:6:88"},"nativeSrc":"43046:21:88","nodeType":"YulFunctionCall","src":"43046:21:88"},"nativeSrc":"43046:21:88","nodeType":"YulExpressionStatement","src":"43046:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43087:9:88","nodeType":"YulIdentifier","src":"43087:9:88"},{"kind":"number","nativeSrc":"43098:2:88","nodeType":"YulLiteral","src":"43098:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43083:3:88","nodeType":"YulIdentifier","src":"43083:3:88"},"nativeSrc":"43083:18:88","nodeType":"YulFunctionCall","src":"43083:18:88"},{"kind":"number","nativeSrc":"43103:2:88","nodeType":"YulLiteral","src":"43103:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"43076:6:88","nodeType":"YulIdentifier","src":"43076:6:88"},"nativeSrc":"43076:30:88","nodeType":"YulFunctionCall","src":"43076:30:88"},"nativeSrc":"43076:30:88","nodeType":"YulExpressionStatement","src":"43076:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43126:9:88","nodeType":"YulIdentifier","src":"43126:9:88"},{"kind":"number","nativeSrc":"43137:2:88","nodeType":"YulLiteral","src":"43137:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43122:3:88","nodeType":"YulIdentifier","src":"43122:3:88"},"nativeSrc":"43122:18:88","nodeType":"YulFunctionCall","src":"43122:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"43142:27:88","nodeType":"YulLiteral","src":"43142:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"43115:6:88","nodeType":"YulIdentifier","src":"43115:6:88"},"nativeSrc":"43115:55:88","nodeType":"YulFunctionCall","src":"43115:55:88"},"nativeSrc":"43115:55:88","nodeType":"YulExpressionStatement","src":"43115:55:88"},{"nativeSrc":"43179:26:88","nodeType":"YulAssignment","src":"43179:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"43191:9:88","nodeType":"YulIdentifier","src":"43191:9:88"},{"kind":"number","nativeSrc":"43202:2:88","nodeType":"YulLiteral","src":"43202:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"43187:3:88","nodeType":"YulIdentifier","src":"43187:3:88"},"nativeSrc":"43187:18:88","nodeType":"YulFunctionCall","src":"43187:18:88"},"variableNames":[{"name":"tail","nativeSrc":"43179:4:88","nodeType":"YulIdentifier","src":"43179:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42862:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43013:9:88","nodeType":"YulTypedName","src":"43013:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43027:4:88","nodeType":"YulTypedName","src":"43027:4:88","type":""}],"src":"42862:349:88"},{"body":{"nativeSrc":"43272:65:88","nodeType":"YulBlock","src":"43272:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43289:1:88","nodeType":"YulLiteral","src":"43289:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"43292:3:88","nodeType":"YulIdentifier","src":"43292:3:88"}],"functionName":{"name":"mstore","nativeSrc":"43282:6:88","nodeType":"YulIdentifier","src":"43282:6:88"},"nativeSrc":"43282:14:88","nodeType":"YulFunctionCall","src":"43282:14:88"},"nativeSrc":"43282:14:88","nodeType":"YulExpressionStatement","src":"43282:14:88"},{"nativeSrc":"43305:26:88","nodeType":"YulAssignment","src":"43305:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"43323:1:88","nodeType":"YulLiteral","src":"43323:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"43326:4:88","nodeType":"YulLiteral","src":"43326:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"43313:9:88","nodeType":"YulIdentifier","src":"43313:9:88"},"nativeSrc":"43313:18:88","nodeType":"YulFunctionCall","src":"43313:18:88"},"variableNames":[{"name":"data","nativeSrc":"43305:4:88","nodeType":"YulIdentifier","src":"43305:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"43216:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"43255:3:88","nodeType":"YulTypedName","src":"43255:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"43263:4:88","nodeType":"YulTypedName","src":"43263:4:88","type":""}],"src":"43216:121:88"},{"body":{"nativeSrc":"43423:437:88","nodeType":"YulBlock","src":"43423:437:88","statements":[{"body":{"nativeSrc":"43456:398:88","nodeType":"YulBlock","src":"43456:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43477:1:88","nodeType":"YulLiteral","src":"43477:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"43480:5:88","nodeType":"YulIdentifier","src":"43480:5:88"}],"functionName":{"name":"mstore","nativeSrc":"43470:6:88","nodeType":"YulIdentifier","src":"43470:6:88"},"nativeSrc":"43470:16:88","nodeType":"YulFunctionCall","src":"43470:16:88"},"nativeSrc":"43470:16:88","nodeType":"YulExpressionStatement","src":"43470:16:88"},{"nativeSrc":"43499:30:88","nodeType":"YulVariableDeclaration","src":"43499:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"43521:1:88","nodeType":"YulLiteral","src":"43521:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"43524:4:88","nodeType":"YulLiteral","src":"43524:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"43511:9:88","nodeType":"YulIdentifier","src":"43511:9:88"},"nativeSrc":"43511:18:88","nodeType":"YulFunctionCall","src":"43511:18:88"},"variables":[{"name":"data","nativeSrc":"43503:4:88","nodeType":"YulTypedName","src":"43503:4:88","type":""}]},{"nativeSrc":"43542:57:88","nodeType":"YulVariableDeclaration","src":"43542:57:88","value":{"arguments":[{"name":"data","nativeSrc":"43565:4:88","nodeType":"YulIdentifier","src":"43565:4:88"},{"arguments":[{"kind":"number","nativeSrc":"43575:1:88","nodeType":"YulLiteral","src":"43575:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"43582:10:88","nodeType":"YulIdentifier","src":"43582:10:88"},{"kind":"number","nativeSrc":"43594:2:88","nodeType":"YulLiteral","src":"43594:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"43578:3:88","nodeType":"YulIdentifier","src":"43578:3:88"},"nativeSrc":"43578:19:88","nodeType":"YulFunctionCall","src":"43578:19:88"}],"functionName":{"name":"shr","nativeSrc":"43571:3:88","nodeType":"YulIdentifier","src":"43571:3:88"},"nativeSrc":"43571:27:88","nodeType":"YulFunctionCall","src":"43571:27:88"}],"functionName":{"name":"add","nativeSrc":"43561:3:88","nodeType":"YulIdentifier","src":"43561:3:88"},"nativeSrc":"43561:38:88","nodeType":"YulFunctionCall","src":"43561:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"43546:11:88","nodeType":"YulTypedName","src":"43546:11:88","type":""}]},{"body":{"nativeSrc":"43636:23:88","nodeType":"YulBlock","src":"43636:23:88","statements":[{"nativeSrc":"43638:19:88","nodeType":"YulAssignment","src":"43638:19:88","value":{"name":"data","nativeSrc":"43653:4:88","nodeType":"YulIdentifier","src":"43653:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"43638:11:88","nodeType":"YulIdentifier","src":"43638:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"43618:10:88","nodeType":"YulIdentifier","src":"43618:10:88"},{"kind":"number","nativeSrc":"43630:4:88","nodeType":"YulLiteral","src":"43630:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"43615:2:88","nodeType":"YulIdentifier","src":"43615:2:88"},"nativeSrc":"43615:20:88","nodeType":"YulFunctionCall","src":"43615:20:88"},"nativeSrc":"43612:47:88","nodeType":"YulIf","src":"43612:47:88"},{"nativeSrc":"43672:41:88","nodeType":"YulVariableDeclaration","src":"43672:41:88","value":{"arguments":[{"name":"data","nativeSrc":"43686:4:88","nodeType":"YulIdentifier","src":"43686:4:88"},{"arguments":[{"kind":"number","nativeSrc":"43696:1:88","nodeType":"YulLiteral","src":"43696:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"43703:3:88","nodeType":"YulIdentifier","src":"43703:3:88"},{"kind":"number","nativeSrc":"43708:2:88","nodeType":"YulLiteral","src":"43708:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"43699:3:88","nodeType":"YulIdentifier","src":"43699:3:88"},"nativeSrc":"43699:12:88","nodeType":"YulFunctionCall","src":"43699:12:88"}],"functionName":{"name":"shr","nativeSrc":"43692:3:88","nodeType":"YulIdentifier","src":"43692:3:88"},"nativeSrc":"43692:20:88","nodeType":"YulFunctionCall","src":"43692:20:88"}],"functionName":{"name":"add","nativeSrc":"43682:3:88","nodeType":"YulIdentifier","src":"43682:3:88"},"nativeSrc":"43682:31:88","nodeType":"YulFunctionCall","src":"43682:31:88"},"variables":[{"name":"_1","nativeSrc":"43676:2:88","nodeType":"YulTypedName","src":"43676:2:88","type":""}]},{"nativeSrc":"43726:24:88","nodeType":"YulVariableDeclaration","src":"43726:24:88","value":{"name":"deleteStart","nativeSrc":"43739:11:88","nodeType":"YulIdentifier","src":"43739:11:88"},"variables":[{"name":"start","nativeSrc":"43730:5:88","nodeType":"YulTypedName","src":"43730:5:88","type":""}]},{"body":{"nativeSrc":"43824:20:88","nodeType":"YulBlock","src":"43824:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"43833:5:88","nodeType":"YulIdentifier","src":"43833:5:88"},{"kind":"number","nativeSrc":"43840:1:88","nodeType":"YulLiteral","src":"43840:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"43826:6:88","nodeType":"YulIdentifier","src":"43826:6:88"},"nativeSrc":"43826:16:88","nodeType":"YulFunctionCall","src":"43826:16:88"},"nativeSrc":"43826:16:88","nodeType":"YulExpressionStatement","src":"43826:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"43774:5:88","nodeType":"YulIdentifier","src":"43774:5:88"},{"name":"_1","nativeSrc":"43781:2:88","nodeType":"YulIdentifier","src":"43781:2:88"}],"functionName":{"name":"lt","nativeSrc":"43771:2:88","nodeType":"YulIdentifier","src":"43771:2:88"},"nativeSrc":"43771:13:88","nodeType":"YulFunctionCall","src":"43771:13:88"},"nativeSrc":"43763:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"43785:26:88","nodeType":"YulBlock","src":"43785:26:88","statements":[{"nativeSrc":"43787:22:88","nodeType":"YulAssignment","src":"43787:22:88","value":{"arguments":[{"name":"start","nativeSrc":"43800:5:88","nodeType":"YulIdentifier","src":"43800:5:88"},{"kind":"number","nativeSrc":"43807:1:88","nodeType":"YulLiteral","src":"43807:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"43796:3:88","nodeType":"YulIdentifier","src":"43796:3:88"},"nativeSrc":"43796:13:88","nodeType":"YulFunctionCall","src":"43796:13:88"},"variableNames":[{"name":"start","nativeSrc":"43787:5:88","nodeType":"YulIdentifier","src":"43787:5:88"}]}]},"pre":{"nativeSrc":"43767:3:88","nodeType":"YulBlock","src":"43767:3:88","statements":[]},"src":"43763:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"43439:3:88","nodeType":"YulIdentifier","src":"43439:3:88"},{"kind":"number","nativeSrc":"43444:2:88","nodeType":"YulLiteral","src":"43444:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"43436:2:88","nodeType":"YulIdentifier","src":"43436:2:88"},"nativeSrc":"43436:11:88","nodeType":"YulFunctionCall","src":"43436:11:88"},"nativeSrc":"43433:421:88","nodeType":"YulIf","src":"43433:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"43342:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"43395:5:88","nodeType":"YulTypedName","src":"43395:5:88","type":""},{"name":"len","nativeSrc":"43402:3:88","nodeType":"YulTypedName","src":"43402:3:88","type":""},{"name":"startIndex","nativeSrc":"43407:10:88","nodeType":"YulTypedName","src":"43407:10:88","type":""}],"src":"43342:518:88"},{"body":{"nativeSrc":"43950:81:88","nodeType":"YulBlock","src":"43950:81:88","statements":[{"nativeSrc":"43960:65:88","nodeType":"YulAssignment","src":"43960:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"43975:4:88","nodeType":"YulIdentifier","src":"43975:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"43993:1:88","nodeType":"YulLiteral","src":"43993:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"43996:3:88","nodeType":"YulIdentifier","src":"43996:3:88"}],"functionName":{"name":"shl","nativeSrc":"43989:3:88","nodeType":"YulIdentifier","src":"43989:3:88"},"nativeSrc":"43989:11:88","nodeType":"YulFunctionCall","src":"43989:11:88"},{"arguments":[{"kind":"number","nativeSrc":"44006:1:88","nodeType":"YulLiteral","src":"44006:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"44002:3:88","nodeType":"YulIdentifier","src":"44002:3:88"},"nativeSrc":"44002:6:88","nodeType":"YulFunctionCall","src":"44002:6:88"}],"functionName":{"name":"shr","nativeSrc":"43985:3:88","nodeType":"YulIdentifier","src":"43985:3:88"},"nativeSrc":"43985:24:88","nodeType":"YulFunctionCall","src":"43985:24:88"}],"functionName":{"name":"not","nativeSrc":"43981:3:88","nodeType":"YulIdentifier","src":"43981:3:88"},"nativeSrc":"43981:29:88","nodeType":"YulFunctionCall","src":"43981:29:88"}],"functionName":{"name":"and","nativeSrc":"43971:3:88","nodeType":"YulIdentifier","src":"43971:3:88"},"nativeSrc":"43971:40:88","nodeType":"YulFunctionCall","src":"43971:40:88"},{"arguments":[{"kind":"number","nativeSrc":"44017:1:88","nodeType":"YulLiteral","src":"44017:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"44020:3:88","nodeType":"YulIdentifier","src":"44020:3:88"}],"functionName":{"name":"shl","nativeSrc":"44013:3:88","nodeType":"YulIdentifier","src":"44013:3:88"},"nativeSrc":"44013:11:88","nodeType":"YulFunctionCall","src":"44013:11:88"}],"functionName":{"name":"or","nativeSrc":"43968:2:88","nodeType":"YulIdentifier","src":"43968:2:88"},"nativeSrc":"43968:57:88","nodeType":"YulFunctionCall","src":"43968:57:88"},"variableNames":[{"name":"used","nativeSrc":"43960:4:88","nodeType":"YulIdentifier","src":"43960:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"43865:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"43927:4:88","nodeType":"YulTypedName","src":"43927:4:88","type":""},{"name":"len","nativeSrc":"43933:3:88","nodeType":"YulTypedName","src":"43933:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"43941:4:88","nodeType":"YulTypedName","src":"43941:4:88","type":""}],"src":"43865:166:88"},{"body":{"nativeSrc":"44132:1203:88","nodeType":"YulBlock","src":"44132:1203:88","statements":[{"nativeSrc":"44142:24:88","nodeType":"YulVariableDeclaration","src":"44142:24:88","value":{"arguments":[{"name":"src","nativeSrc":"44162:3:88","nodeType":"YulIdentifier","src":"44162:3:88"}],"functionName":{"name":"mload","nativeSrc":"44156:5:88","nodeType":"YulIdentifier","src":"44156:5:88"},"nativeSrc":"44156:10:88","nodeType":"YulFunctionCall","src":"44156:10:88"},"variables":[{"name":"newLen","nativeSrc":"44146:6:88","nodeType":"YulTypedName","src":"44146:6:88","type":""}]},{"body":{"nativeSrc":"44209:22:88","nodeType":"YulBlock","src":"44209:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"44211:16:88","nodeType":"YulIdentifier","src":"44211:16:88"},"nativeSrc":"44211:18:88","nodeType":"YulFunctionCall","src":"44211:18:88"},"nativeSrc":"44211:18:88","nodeType":"YulExpressionStatement","src":"44211:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"44181:6:88","nodeType":"YulIdentifier","src":"44181:6:88"},{"kind":"number","nativeSrc":"44189:18:88","nodeType":"YulLiteral","src":"44189:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44178:2:88","nodeType":"YulIdentifier","src":"44178:2:88"},"nativeSrc":"44178:30:88","nodeType":"YulFunctionCall","src":"44178:30:88"},"nativeSrc":"44175:56:88","nodeType":"YulIf","src":"44175:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"44284:4:88","nodeType":"YulIdentifier","src":"44284:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"44322:4:88","nodeType":"YulIdentifier","src":"44322:4:88"}],"functionName":{"name":"sload","nativeSrc":"44316:5:88","nodeType":"YulIdentifier","src":"44316:5:88"},"nativeSrc":"44316:11:88","nodeType":"YulFunctionCall","src":"44316:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"44290:25:88","nodeType":"YulIdentifier","src":"44290:25:88"},"nativeSrc":"44290:38:88","nodeType":"YulFunctionCall","src":"44290:38:88"},{"name":"newLen","nativeSrc":"44330:6:88","nodeType":"YulIdentifier","src":"44330:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"44240:43:88","nodeType":"YulIdentifier","src":"44240:43:88"},"nativeSrc":"44240:97:88","nodeType":"YulFunctionCall","src":"44240:97:88"},"nativeSrc":"44240:97:88","nodeType":"YulExpressionStatement","src":"44240:97:88"},{"nativeSrc":"44346:18:88","nodeType":"YulVariableDeclaration","src":"44346:18:88","value":{"kind":"number","nativeSrc":"44363:1:88","nodeType":"YulLiteral","src":"44363:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"44350:9:88","nodeType":"YulTypedName","src":"44350:9:88","type":""}]},{"nativeSrc":"44373:17:88","nodeType":"YulAssignment","src":"44373:17:88","value":{"kind":"number","nativeSrc":"44386:4:88","nodeType":"YulLiteral","src":"44386:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"44373:9:88","nodeType":"YulIdentifier","src":"44373:9:88"}]},{"cases":[{"body":{"nativeSrc":"44436:642:88","nodeType":"YulBlock","src":"44436:642:88","statements":[{"nativeSrc":"44450:35:88","nodeType":"YulVariableDeclaration","src":"44450:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"44469:6:88","nodeType":"YulIdentifier","src":"44469:6:88"},{"arguments":[{"kind":"number","nativeSrc":"44481:2:88","nodeType":"YulLiteral","src":"44481:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"44477:3:88","nodeType":"YulIdentifier","src":"44477:3:88"},"nativeSrc":"44477:7:88","nodeType":"YulFunctionCall","src":"44477:7:88"}],"functionName":{"name":"and","nativeSrc":"44465:3:88","nodeType":"YulIdentifier","src":"44465:3:88"},"nativeSrc":"44465:20:88","nodeType":"YulFunctionCall","src":"44465:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"44454:7:88","nodeType":"YulTypedName","src":"44454:7:88","type":""}]},{"nativeSrc":"44498:49:88","nodeType":"YulVariableDeclaration","src":"44498:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"44542:4:88","nodeType":"YulIdentifier","src":"44542:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"44512:29:88","nodeType":"YulIdentifier","src":"44512:29:88"},"nativeSrc":"44512:35:88","nodeType":"YulFunctionCall","src":"44512:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"44502:6:88","nodeType":"YulTypedName","src":"44502:6:88","type":""}]},{"nativeSrc":"44560:10:88","nodeType":"YulVariableDeclaration","src":"44560:10:88","value":{"kind":"number","nativeSrc":"44569:1:88","nodeType":"YulLiteral","src":"44569:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"44564:1:88","nodeType":"YulTypedName","src":"44564:1:88","type":""}]},{"body":{"nativeSrc":"44640:165:88","nodeType":"YulBlock","src":"44640:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"44665:6:88","nodeType":"YulIdentifier","src":"44665:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"44683:3:88","nodeType":"YulIdentifier","src":"44683:3:88"},{"name":"srcOffset","nativeSrc":"44688:9:88","nodeType":"YulIdentifier","src":"44688:9:88"}],"functionName":{"name":"add","nativeSrc":"44679:3:88","nodeType":"YulIdentifier","src":"44679:3:88"},"nativeSrc":"44679:19:88","nodeType":"YulFunctionCall","src":"44679:19:88"}],"functionName":{"name":"mload","nativeSrc":"44673:5:88","nodeType":"YulIdentifier","src":"44673:5:88"},"nativeSrc":"44673:26:88","nodeType":"YulFunctionCall","src":"44673:26:88"}],"functionName":{"name":"sstore","nativeSrc":"44658:6:88","nodeType":"YulIdentifier","src":"44658:6:88"},"nativeSrc":"44658:42:88","nodeType":"YulFunctionCall","src":"44658:42:88"},"nativeSrc":"44658:42:88","nodeType":"YulExpressionStatement","src":"44658:42:88"},{"nativeSrc":"44717:24:88","nodeType":"YulAssignment","src":"44717:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"44731:6:88","nodeType":"YulIdentifier","src":"44731:6:88"},{"kind":"number","nativeSrc":"44739:1:88","nodeType":"YulLiteral","src":"44739:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44727:3:88","nodeType":"YulIdentifier","src":"44727:3:88"},"nativeSrc":"44727:14:88","nodeType":"YulFunctionCall","src":"44727:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"44717:6:88","nodeType":"YulIdentifier","src":"44717:6:88"}]},{"nativeSrc":"44758:33:88","nodeType":"YulAssignment","src":"44758:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"44775:9:88","nodeType":"YulIdentifier","src":"44775:9:88"},{"kind":"number","nativeSrc":"44786:4:88","nodeType":"YulLiteral","src":"44786:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44771:3:88","nodeType":"YulIdentifier","src":"44771:3:88"},"nativeSrc":"44771:20:88","nodeType":"YulFunctionCall","src":"44771:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"44758:9:88","nodeType":"YulIdentifier","src":"44758:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"44594:1:88","nodeType":"YulIdentifier","src":"44594:1:88"},{"name":"loopEnd","nativeSrc":"44597:7:88","nodeType":"YulIdentifier","src":"44597:7:88"}],"functionName":{"name":"lt","nativeSrc":"44591:2:88","nodeType":"YulIdentifier","src":"44591:2:88"},"nativeSrc":"44591:14:88","nodeType":"YulFunctionCall","src":"44591:14:88"},"nativeSrc":"44583:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"44606:21:88","nodeType":"YulBlock","src":"44606:21:88","statements":[{"nativeSrc":"44608:17:88","nodeType":"YulAssignment","src":"44608:17:88","value":{"arguments":[{"name":"i","nativeSrc":"44617:1:88","nodeType":"YulIdentifier","src":"44617:1:88"},{"kind":"number","nativeSrc":"44620:4:88","nodeType":"YulLiteral","src":"44620:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44613:3:88","nodeType":"YulIdentifier","src":"44613:3:88"},"nativeSrc":"44613:12:88","nodeType":"YulFunctionCall","src":"44613:12:88"},"variableNames":[{"name":"i","nativeSrc":"44608:1:88","nodeType":"YulIdentifier","src":"44608:1:88"}]}]},"pre":{"nativeSrc":"44587:3:88","nodeType":"YulBlock","src":"44587:3:88","statements":[]},"src":"44583:222:88"},{"body":{"nativeSrc":"44853:166:88","nodeType":"YulBlock","src":"44853:166:88","statements":[{"nativeSrc":"44871:43:88","nodeType":"YulVariableDeclaration","src":"44871:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"44898:3:88","nodeType":"YulIdentifier","src":"44898:3:88"},{"name":"srcOffset","nativeSrc":"44903:9:88","nodeType":"YulIdentifier","src":"44903:9:88"}],"functionName":{"name":"add","nativeSrc":"44894:3:88","nodeType":"YulIdentifier","src":"44894:3:88"},"nativeSrc":"44894:19:88","nodeType":"YulFunctionCall","src":"44894:19:88"}],"functionName":{"name":"mload","nativeSrc":"44888:5:88","nodeType":"YulIdentifier","src":"44888:5:88"},"nativeSrc":"44888:26:88","nodeType":"YulFunctionCall","src":"44888:26:88"},"variables":[{"name":"lastValue","nativeSrc":"44875:9:88","nodeType":"YulTypedName","src":"44875:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"44938:6:88","nodeType":"YulIdentifier","src":"44938:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"44950:9:88","nodeType":"YulIdentifier","src":"44950:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"44977:1:88","nodeType":"YulLiteral","src":"44977:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"44980:6:88","nodeType":"YulIdentifier","src":"44980:6:88"}],"functionName":{"name":"shl","nativeSrc":"44973:3:88","nodeType":"YulIdentifier","src":"44973:3:88"},"nativeSrc":"44973:14:88","nodeType":"YulFunctionCall","src":"44973:14:88"},{"kind":"number","nativeSrc":"44989:3:88","nodeType":"YulLiteral","src":"44989:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"44969:3:88","nodeType":"YulIdentifier","src":"44969:3:88"},"nativeSrc":"44969:24:88","nodeType":"YulFunctionCall","src":"44969:24:88"},{"arguments":[{"kind":"number","nativeSrc":"44999:1:88","nodeType":"YulLiteral","src":"44999:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"44995:3:88","nodeType":"YulIdentifier","src":"44995:3:88"},"nativeSrc":"44995:6:88","nodeType":"YulFunctionCall","src":"44995:6:88"}],"functionName":{"name":"shr","nativeSrc":"44965:3:88","nodeType":"YulIdentifier","src":"44965:3:88"},"nativeSrc":"44965:37:88","nodeType":"YulFunctionCall","src":"44965:37:88"}],"functionName":{"name":"not","nativeSrc":"44961:3:88","nodeType":"YulIdentifier","src":"44961:3:88"},"nativeSrc":"44961:42:88","nodeType":"YulFunctionCall","src":"44961:42:88"}],"functionName":{"name":"and","nativeSrc":"44946:3:88","nodeType":"YulIdentifier","src":"44946:3:88"},"nativeSrc":"44946:58:88","nodeType":"YulFunctionCall","src":"44946:58:88"}],"functionName":{"name":"sstore","nativeSrc":"44931:6:88","nodeType":"YulIdentifier","src":"44931:6:88"},"nativeSrc":"44931:74:88","nodeType":"YulFunctionCall","src":"44931:74:88"},"nativeSrc":"44931:74:88","nodeType":"YulExpressionStatement","src":"44931:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"44824:7:88","nodeType":"YulIdentifier","src":"44824:7:88"},{"name":"newLen","nativeSrc":"44833:6:88","nodeType":"YulIdentifier","src":"44833:6:88"}],"functionName":{"name":"lt","nativeSrc":"44821:2:88","nodeType":"YulIdentifier","src":"44821:2:88"},"nativeSrc":"44821:19:88","nodeType":"YulFunctionCall","src":"44821:19:88"},"nativeSrc":"44818:201:88","nodeType":"YulIf","src":"44818:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45039:4:88","nodeType":"YulIdentifier","src":"45039:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45053:1:88","nodeType":"YulLiteral","src":"45053:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"45056:6:88","nodeType":"YulIdentifier","src":"45056:6:88"}],"functionName":{"name":"shl","nativeSrc":"45049:3:88","nodeType":"YulIdentifier","src":"45049:3:88"},"nativeSrc":"45049:14:88","nodeType":"YulFunctionCall","src":"45049:14:88"},{"kind":"number","nativeSrc":"45065:1:88","nodeType":"YulLiteral","src":"45065:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45045:3:88","nodeType":"YulIdentifier","src":"45045:3:88"},"nativeSrc":"45045:22:88","nodeType":"YulFunctionCall","src":"45045:22:88"}],"functionName":{"name":"sstore","nativeSrc":"45032:6:88","nodeType":"YulIdentifier","src":"45032:6:88"},"nativeSrc":"45032:36:88","nodeType":"YulFunctionCall","src":"45032:36:88"},"nativeSrc":"45032:36:88","nodeType":"YulExpressionStatement","src":"45032:36:88"}]},"nativeSrc":"44429:649:88","nodeType":"YulCase","src":"44429:649:88","value":{"kind":"number","nativeSrc":"44434:1:88","nodeType":"YulLiteral","src":"44434:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"45095:234:88","nodeType":"YulBlock","src":"45095:234:88","statements":[{"nativeSrc":"45109:14:88","nodeType":"YulVariableDeclaration","src":"45109:14:88","value":{"kind":"number","nativeSrc":"45122:1:88","nodeType":"YulLiteral","src":"45122:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"45113:5:88","nodeType":"YulTypedName","src":"45113:5:88","type":""}]},{"body":{"nativeSrc":"45158:67:88","nodeType":"YulBlock","src":"45158:67:88","statements":[{"nativeSrc":"45176:35:88","nodeType":"YulAssignment","src":"45176:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45195:3:88","nodeType":"YulIdentifier","src":"45195:3:88"},{"name":"srcOffset","nativeSrc":"45200:9:88","nodeType":"YulIdentifier","src":"45200:9:88"}],"functionName":{"name":"add","nativeSrc":"45191:3:88","nodeType":"YulIdentifier","src":"45191:3:88"},"nativeSrc":"45191:19:88","nodeType":"YulFunctionCall","src":"45191:19:88"}],"functionName":{"name":"mload","nativeSrc":"45185:5:88","nodeType":"YulIdentifier","src":"45185:5:88"},"nativeSrc":"45185:26:88","nodeType":"YulFunctionCall","src":"45185:26:88"},"variableNames":[{"name":"value","nativeSrc":"45176:5:88","nodeType":"YulIdentifier","src":"45176:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"45139:6:88","nodeType":"YulIdentifier","src":"45139:6:88"},"nativeSrc":"45136:89:88","nodeType":"YulIf","src":"45136:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45245:4:88","nodeType":"YulIdentifier","src":"45245:4:88"},{"arguments":[{"name":"value","nativeSrc":"45304:5:88","nodeType":"YulIdentifier","src":"45304:5:88"},{"name":"newLen","nativeSrc":"45311:6:88","nodeType":"YulIdentifier","src":"45311:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"45251:52:88","nodeType":"YulIdentifier","src":"45251:52:88"},"nativeSrc":"45251:67:88","nodeType":"YulFunctionCall","src":"45251:67:88"}],"functionName":{"name":"sstore","nativeSrc":"45238:6:88","nodeType":"YulIdentifier","src":"45238:6:88"},"nativeSrc":"45238:81:88","nodeType":"YulFunctionCall","src":"45238:81:88"},"nativeSrc":"45238:81:88","nodeType":"YulExpressionStatement","src":"45238:81:88"}]},"nativeSrc":"45087:242:88","nodeType":"YulCase","src":"45087:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"44409:6:88","nodeType":"YulIdentifier","src":"44409:6:88"},{"kind":"number","nativeSrc":"44417:2:88","nodeType":"YulLiteral","src":"44417:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"44406:2:88","nodeType":"YulIdentifier","src":"44406:2:88"},"nativeSrc":"44406:14:88","nodeType":"YulFunctionCall","src":"44406:14:88"},"nativeSrc":"44399:930:88","nodeType":"YulSwitch","src":"44399:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"44036:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"44117:4:88","nodeType":"YulTypedName","src":"44117:4:88","type":""},{"name":"src","nativeSrc":"44123:3:88","nodeType":"YulTypedName","src":"44123:3:88","type":""}],"src":"44036:1299:88"},{"body":{"nativeSrc":"45514:228:88","nodeType":"YulBlock","src":"45514:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"45531:9:88","nodeType":"YulIdentifier","src":"45531:9:88"},{"kind":"number","nativeSrc":"45542:2:88","nodeType":"YulLiteral","src":"45542:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"45524:6:88","nodeType":"YulIdentifier","src":"45524:6:88"},"nativeSrc":"45524:21:88","nodeType":"YulFunctionCall","src":"45524:21:88"},"nativeSrc":"45524:21:88","nodeType":"YulExpressionStatement","src":"45524:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"45565:9:88","nodeType":"YulIdentifier","src":"45565:9:88"},{"kind":"number","nativeSrc":"45576:2:88","nodeType":"YulLiteral","src":"45576:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"45561:3:88","nodeType":"YulIdentifier","src":"45561:3:88"},"nativeSrc":"45561:18:88","nodeType":"YulFunctionCall","src":"45561:18:88"},{"kind":"number","nativeSrc":"45581:2:88","nodeType":"YulLiteral","src":"45581:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"45554:6:88","nodeType":"YulIdentifier","src":"45554:6:88"},"nativeSrc":"45554:30:88","nodeType":"YulFunctionCall","src":"45554:30:88"},"nativeSrc":"45554:30:88","nodeType":"YulExpressionStatement","src":"45554:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"45604:9:88","nodeType":"YulIdentifier","src":"45604:9:88"},{"kind":"number","nativeSrc":"45615:2:88","nodeType":"YulLiteral","src":"45615:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"45600:3:88","nodeType":"YulIdentifier","src":"45600:3:88"},"nativeSrc":"45600:18:88","nodeType":"YulFunctionCall","src":"45600:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"45620:34:88","nodeType":"YulLiteral","src":"45620:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"45593:6:88","nodeType":"YulIdentifier","src":"45593:6:88"},"nativeSrc":"45593:62:88","nodeType":"YulFunctionCall","src":"45593:62:88"},"nativeSrc":"45593:62:88","nodeType":"YulExpressionStatement","src":"45593:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"45675:9:88","nodeType":"YulIdentifier","src":"45675:9:88"},{"kind":"number","nativeSrc":"45686:2:88","nodeType":"YulLiteral","src":"45686:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"45671:3:88","nodeType":"YulIdentifier","src":"45671:3:88"},"nativeSrc":"45671:18:88","nodeType":"YulFunctionCall","src":"45671:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"45691:8:88","nodeType":"YulLiteral","src":"45691:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"45664:6:88","nodeType":"YulIdentifier","src":"45664:6:88"},"nativeSrc":"45664:36:88","nodeType":"YulFunctionCall","src":"45664:36:88"},"nativeSrc":"45664:36:88","nodeType":"YulExpressionStatement","src":"45664:36:88"},{"nativeSrc":"45709:27:88","nodeType":"YulAssignment","src":"45709:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"45721:9:88","nodeType":"YulIdentifier","src":"45721:9:88"},{"kind":"number","nativeSrc":"45732:3:88","nodeType":"YulLiteral","src":"45732:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"45717:3:88","nodeType":"YulIdentifier","src":"45717:3:88"},"nativeSrc":"45717:19:88","nodeType":"YulFunctionCall","src":"45717:19:88"},"variableNames":[{"name":"tail","nativeSrc":"45709:4:88","nodeType":"YulIdentifier","src":"45709:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"45340:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"45491:9:88","nodeType":"YulTypedName","src":"45491:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"45505:4:88","nodeType":"YulTypedName","src":"45505:4:88","type":""}],"src":"45340:402:88"},{"body":{"nativeSrc":"45849:170:88","nodeType":"YulBlock","src":"45849:170:88","statements":[{"body":{"nativeSrc":"45895:16:88","nodeType":"YulBlock","src":"45895:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45904:1:88","nodeType":"YulLiteral","src":"45904:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"45907:1:88","nodeType":"YulLiteral","src":"45907:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"45897:6:88","nodeType":"YulIdentifier","src":"45897:6:88"},"nativeSrc":"45897:12:88","nodeType":"YulFunctionCall","src":"45897:12:88"},"nativeSrc":"45897:12:88","nodeType":"YulExpressionStatement","src":"45897:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"45870:7:88","nodeType":"YulIdentifier","src":"45870:7:88"},{"name":"headStart","nativeSrc":"45879:9:88","nodeType":"YulIdentifier","src":"45879:9:88"}],"functionName":{"name":"sub","nativeSrc":"45866:3:88","nodeType":"YulIdentifier","src":"45866:3:88"},"nativeSrc":"45866:23:88","nodeType":"YulFunctionCall","src":"45866:23:88"},{"kind":"number","nativeSrc":"45891:2:88","nodeType":"YulLiteral","src":"45891:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"45862:3:88","nodeType":"YulIdentifier","src":"45862:3:88"},"nativeSrc":"45862:32:88","nodeType":"YulFunctionCall","src":"45862:32:88"},"nativeSrc":"45859:52:88","nodeType":"YulIf","src":"45859:52:88"},{"nativeSrc":"45920:29:88","nodeType":"YulVariableDeclaration","src":"45920:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"45939:9:88","nodeType":"YulIdentifier","src":"45939:9:88"}],"functionName":{"name":"mload","nativeSrc":"45933:5:88","nodeType":"YulIdentifier","src":"45933:5:88"},"nativeSrc":"45933:16:88","nodeType":"YulFunctionCall","src":"45933:16:88"},"variables":[{"name":"value","nativeSrc":"45924:5:88","nodeType":"YulTypedName","src":"45924:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"45983:5:88","nodeType":"YulIdentifier","src":"45983:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"45958:24:88","nodeType":"YulIdentifier","src":"45958:24:88"},"nativeSrc":"45958:31:88","nodeType":"YulFunctionCall","src":"45958:31:88"},"nativeSrc":"45958:31:88","nodeType":"YulExpressionStatement","src":"45958:31:88"},{"nativeSrc":"45998:15:88","nodeType":"YulAssignment","src":"45998:15:88","value":{"name":"value","nativeSrc":"46008:5:88","nodeType":"YulIdentifier","src":"46008:5:88"},"variableNames":[{"name":"value0","nativeSrc":"45998:6:88","nodeType":"YulIdentifier","src":"45998:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"45747:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"45815:9:88","nodeType":"YulTypedName","src":"45815:9:88","type":""},{"name":"dataEnd","nativeSrc":"45826:7:88","nodeType":"YulTypedName","src":"45826:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"45838:6:88","nodeType":"YulTypedName","src":"45838:6:88","type":""}],"src":"45747:272:88"},{"body":{"nativeSrc":"46198:174:88","nodeType":"YulBlock","src":"46198:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"46215:9:88","nodeType":"YulIdentifier","src":"46215:9:88"},{"kind":"number","nativeSrc":"46226:2:88","nodeType":"YulLiteral","src":"46226:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"46208:6:88","nodeType":"YulIdentifier","src":"46208:6:88"},"nativeSrc":"46208:21:88","nodeType":"YulFunctionCall","src":"46208:21:88"},"nativeSrc":"46208:21:88","nodeType":"YulExpressionStatement","src":"46208:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46249:9:88","nodeType":"YulIdentifier","src":"46249:9:88"},{"kind":"number","nativeSrc":"46260:2:88","nodeType":"YulLiteral","src":"46260:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46245:3:88","nodeType":"YulIdentifier","src":"46245:3:88"},"nativeSrc":"46245:18:88","nodeType":"YulFunctionCall","src":"46245:18:88"},{"kind":"number","nativeSrc":"46265:2:88","nodeType":"YulLiteral","src":"46265:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"46238:6:88","nodeType":"YulIdentifier","src":"46238:6:88"},"nativeSrc":"46238:30:88","nodeType":"YulFunctionCall","src":"46238:30:88"},"nativeSrc":"46238:30:88","nodeType":"YulExpressionStatement","src":"46238:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46288:9:88","nodeType":"YulIdentifier","src":"46288:9:88"},{"kind":"number","nativeSrc":"46299:2:88","nodeType":"YulLiteral","src":"46299:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"46284:3:88","nodeType":"YulIdentifier","src":"46284:3:88"},"nativeSrc":"46284:18:88","nodeType":"YulFunctionCall","src":"46284:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nativeSrc":"46304:26:88","nodeType":"YulLiteral","src":"46304:26:88","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nativeSrc":"46277:6:88","nodeType":"YulIdentifier","src":"46277:6:88"},"nativeSrc":"46277:54:88","nodeType":"YulFunctionCall","src":"46277:54:88"},"nativeSrc":"46277:54:88","nodeType":"YulExpressionStatement","src":"46277:54:88"},{"nativeSrc":"46340:26:88","nodeType":"YulAssignment","src":"46340:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"46352:9:88","nodeType":"YulIdentifier","src":"46352:9:88"},{"kind":"number","nativeSrc":"46363:2:88","nodeType":"YulLiteral","src":"46363:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"46348:3:88","nodeType":"YulIdentifier","src":"46348:3:88"},"nativeSrc":"46348:18:88","nodeType":"YulFunctionCall","src":"46348:18:88"},"variableNames":[{"name":"tail","nativeSrc":"46340:4:88","nodeType":"YulIdentifier","src":"46340:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"46024:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46175:9:88","nodeType":"YulTypedName","src":"46175:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46189:4:88","nodeType":"YulTypedName","src":"46189:4:88","type":""}],"src":"46024:348:88"},{"body":{"nativeSrc":"46551:181:88","nodeType":"YulBlock","src":"46551:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"46568:9:88","nodeType":"YulIdentifier","src":"46568:9:88"},{"kind":"number","nativeSrc":"46579:2:88","nodeType":"YulLiteral","src":"46579:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"46561:6:88","nodeType":"YulIdentifier","src":"46561:6:88"},"nativeSrc":"46561:21:88","nodeType":"YulFunctionCall","src":"46561:21:88"},"nativeSrc":"46561:21:88","nodeType":"YulExpressionStatement","src":"46561:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46602:9:88","nodeType":"YulIdentifier","src":"46602:9:88"},{"kind":"number","nativeSrc":"46613:2:88","nodeType":"YulLiteral","src":"46613:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46598:3:88","nodeType":"YulIdentifier","src":"46598:3:88"},"nativeSrc":"46598:18:88","nodeType":"YulFunctionCall","src":"46598:18:88"},{"kind":"number","nativeSrc":"46618:2:88","nodeType":"YulLiteral","src":"46618:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"46591:6:88","nodeType":"YulIdentifier","src":"46591:6:88"},"nativeSrc":"46591:30:88","nodeType":"YulFunctionCall","src":"46591:30:88"},"nativeSrc":"46591:30:88","nodeType":"YulExpressionStatement","src":"46591:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46641:9:88","nodeType":"YulIdentifier","src":"46641:9:88"},{"kind":"number","nativeSrc":"46652:2:88","nodeType":"YulLiteral","src":"46652:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"46637:3:88","nodeType":"YulIdentifier","src":"46637:3:88"},"nativeSrc":"46637:18:88","nodeType":"YulFunctionCall","src":"46637:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nativeSrc":"46657:33:88","nodeType":"YulLiteral","src":"46657:33:88","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nativeSrc":"46630:6:88","nodeType":"YulIdentifier","src":"46630:6:88"},"nativeSrc":"46630:61:88","nodeType":"YulFunctionCall","src":"46630:61:88"},"nativeSrc":"46630:61:88","nodeType":"YulExpressionStatement","src":"46630:61:88"},{"nativeSrc":"46700:26:88","nodeType":"YulAssignment","src":"46700:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"46712:9:88","nodeType":"YulIdentifier","src":"46712:9:88"},{"kind":"number","nativeSrc":"46723:2:88","nodeType":"YulLiteral","src":"46723:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"46708:3:88","nodeType":"YulIdentifier","src":"46708:3:88"},"nativeSrc":"46708:18:88","nodeType":"YulFunctionCall","src":"46708:18:88"},"variableNames":[{"name":"tail","nativeSrc":"46700:4:88","nodeType":"YulIdentifier","src":"46700:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"46377:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46528:9:88","nodeType":"YulTypedName","src":"46528:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46542:4:88","nodeType":"YulTypedName","src":"46542:4:88","type":""}],"src":"46377:355:88"},{"body":{"nativeSrc":"46911:224:88","nodeType":"YulBlock","src":"46911:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"46928:9:88","nodeType":"YulIdentifier","src":"46928:9:88"},{"kind":"number","nativeSrc":"46939:2:88","nodeType":"YulLiteral","src":"46939:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"46921:6:88","nodeType":"YulIdentifier","src":"46921:6:88"},"nativeSrc":"46921:21:88","nodeType":"YulFunctionCall","src":"46921:21:88"},"nativeSrc":"46921:21:88","nodeType":"YulExpressionStatement","src":"46921:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46962:9:88","nodeType":"YulIdentifier","src":"46962:9:88"},{"kind":"number","nativeSrc":"46973:2:88","nodeType":"YulLiteral","src":"46973:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46958:3:88","nodeType":"YulIdentifier","src":"46958:3:88"},"nativeSrc":"46958:18:88","nodeType":"YulFunctionCall","src":"46958:18:88"},{"kind":"number","nativeSrc":"46978:2:88","nodeType":"YulLiteral","src":"46978:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"46951:6:88","nodeType":"YulIdentifier","src":"46951:6:88"},"nativeSrc":"46951:30:88","nodeType":"YulFunctionCall","src":"46951:30:88"},"nativeSrc":"46951:30:88","nodeType":"YulExpressionStatement","src":"46951:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47001:9:88","nodeType":"YulIdentifier","src":"47001:9:88"},{"kind":"number","nativeSrc":"47012:2:88","nodeType":"YulLiteral","src":"47012:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"46997:3:88","nodeType":"YulIdentifier","src":"46997:3:88"},"nativeSrc":"46997:18:88","nodeType":"YulFunctionCall","src":"46997:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nativeSrc":"47017:34:88","nodeType":"YulLiteral","src":"47017:34:88","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nativeSrc":"46990:6:88","nodeType":"YulIdentifier","src":"46990:6:88"},"nativeSrc":"46990:62:88","nodeType":"YulFunctionCall","src":"46990:62:88"},"nativeSrc":"46990:62:88","nodeType":"YulExpressionStatement","src":"46990:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47072:9:88","nodeType":"YulIdentifier","src":"47072:9:88"},{"kind":"number","nativeSrc":"47083:2:88","nodeType":"YulLiteral","src":"47083:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"47068:3:88","nodeType":"YulIdentifier","src":"47068:3:88"},"nativeSrc":"47068:18:88","nodeType":"YulFunctionCall","src":"47068:18:88"},{"hexValue":"7565","kind":"string","nativeSrc":"47088:4:88","nodeType":"YulLiteral","src":"47088:4:88","type":"","value":"ue"}],"functionName":{"name":"mstore","nativeSrc":"47061:6:88","nodeType":"YulIdentifier","src":"47061:6:88"},"nativeSrc":"47061:32:88","nodeType":"YulFunctionCall","src":"47061:32:88"},"nativeSrc":"47061:32:88","nodeType":"YulExpressionStatement","src":"47061:32:88"},{"nativeSrc":"47102:27:88","nodeType":"YulAssignment","src":"47102:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"47114:9:88","nodeType":"YulIdentifier","src":"47114:9:88"},{"kind":"number","nativeSrc":"47125:3:88","nodeType":"YulLiteral","src":"47125:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"47110:3:88","nodeType":"YulIdentifier","src":"47110:3:88"},"nativeSrc":"47110:19:88","nodeType":"YulFunctionCall","src":"47110:19:88"},"variableNames":[{"name":"tail","nativeSrc":"47102:4:88","nodeType":"YulIdentifier","src":"47102:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"46737:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46888:9:88","nodeType":"YulTypedName","src":"46888:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46902:4:88","nodeType":"YulTypedName","src":"46902:4:88","type":""}],"src":"46737:398:88"},{"body":{"nativeSrc":"47277:53:88","nodeType":"YulBlock","src":"47277:53:88","statements":[{"nativeSrc":"47287:37:88","nodeType":"YulAssignment","src":"47287:37:88","value":{"arguments":[{"name":"value0","nativeSrc":"47312:6:88","nodeType":"YulIdentifier","src":"47312:6:88"},{"name":"pos","nativeSrc":"47320:3:88","nodeType":"YulIdentifier","src":"47320:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"47294:17:88","nodeType":"YulIdentifier","src":"47294:17:88"},"nativeSrc":"47294:30:88","nodeType":"YulFunctionCall","src":"47294:30:88"},"variableNames":[{"name":"end","nativeSrc":"47287:3:88","nodeType":"YulIdentifier","src":"47287:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"47140:190:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"47253:3:88","nodeType":"YulTypedName","src":"47253:3:88","type":""},{"name":"value0","nativeSrc":"47258:6:88","nodeType":"YulTypedName","src":"47258:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"47269:3:88","nodeType":"YulTypedName","src":"47269:3:88","type":""}],"src":"47140:190:88"},{"body":{"nativeSrc":"47516:217:88","nodeType":"YulBlock","src":"47516:217:88","statements":[{"nativeSrc":"47526:27:88","nodeType":"YulAssignment","src":"47526:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"47538:9:88","nodeType":"YulIdentifier","src":"47538:9:88"},{"kind":"number","nativeSrc":"47549:3:88","nodeType":"YulLiteral","src":"47549:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"47534:3:88","nodeType":"YulIdentifier","src":"47534:3:88"},"nativeSrc":"47534:19:88","nodeType":"YulFunctionCall","src":"47534:19:88"},"variableNames":[{"name":"tail","nativeSrc":"47526:4:88","nodeType":"YulIdentifier","src":"47526:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"47569:9:88","nodeType":"YulIdentifier","src":"47569:9:88"},{"name":"value0","nativeSrc":"47580:6:88","nodeType":"YulIdentifier","src":"47580:6:88"}],"functionName":{"name":"mstore","nativeSrc":"47562:6:88","nodeType":"YulIdentifier","src":"47562:6:88"},"nativeSrc":"47562:25:88","nodeType":"YulFunctionCall","src":"47562:25:88"},"nativeSrc":"47562:25:88","nodeType":"YulExpressionStatement","src":"47562:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47607:9:88","nodeType":"YulIdentifier","src":"47607:9:88"},{"kind":"number","nativeSrc":"47618:2:88","nodeType":"YulLiteral","src":"47618:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"47603:3:88","nodeType":"YulIdentifier","src":"47603:3:88"},"nativeSrc":"47603:18:88","nodeType":"YulFunctionCall","src":"47603:18:88"},{"arguments":[{"name":"value1","nativeSrc":"47627:6:88","nodeType":"YulIdentifier","src":"47627:6:88"},{"kind":"number","nativeSrc":"47635:4:88","nodeType":"YulLiteral","src":"47635:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"47623:3:88","nodeType":"YulIdentifier","src":"47623:3:88"},"nativeSrc":"47623:17:88","nodeType":"YulFunctionCall","src":"47623:17:88"}],"functionName":{"name":"mstore","nativeSrc":"47596:6:88","nodeType":"YulIdentifier","src":"47596:6:88"},"nativeSrc":"47596:45:88","nodeType":"YulFunctionCall","src":"47596:45:88"},"nativeSrc":"47596:45:88","nodeType":"YulExpressionStatement","src":"47596:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47661:9:88","nodeType":"YulIdentifier","src":"47661:9:88"},{"kind":"number","nativeSrc":"47672:2:88","nodeType":"YulLiteral","src":"47672:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"47657:3:88","nodeType":"YulIdentifier","src":"47657:3:88"},"nativeSrc":"47657:18:88","nodeType":"YulFunctionCall","src":"47657:18:88"},{"name":"value2","nativeSrc":"47677:6:88","nodeType":"YulIdentifier","src":"47677:6:88"}],"functionName":{"name":"mstore","nativeSrc":"47650:6:88","nodeType":"YulIdentifier","src":"47650:6:88"},"nativeSrc":"47650:34:88","nodeType":"YulFunctionCall","src":"47650:34:88"},"nativeSrc":"47650:34:88","nodeType":"YulExpressionStatement","src":"47650:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47704:9:88","nodeType":"YulIdentifier","src":"47704:9:88"},{"kind":"number","nativeSrc":"47715:2:88","nodeType":"YulLiteral","src":"47715:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"47700:3:88","nodeType":"YulIdentifier","src":"47700:3:88"},"nativeSrc":"47700:18:88","nodeType":"YulFunctionCall","src":"47700:18:88"},{"name":"value3","nativeSrc":"47720:6:88","nodeType":"YulIdentifier","src":"47720:6:88"}],"functionName":{"name":"mstore","nativeSrc":"47693:6:88","nodeType":"YulIdentifier","src":"47693:6:88"},"nativeSrc":"47693:34:88","nodeType":"YulFunctionCall","src":"47693:34:88"},"nativeSrc":"47693:34:88","nodeType":"YulExpressionStatement","src":"47693:34:88"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nativeSrc":"47335:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"47461:9:88","nodeType":"YulTypedName","src":"47461:9:88","type":""},{"name":"value3","nativeSrc":"47472:6:88","nodeType":"YulTypedName","src":"47472:6:88","type":""},{"name":"value2","nativeSrc":"47480:6:88","nodeType":"YulTypedName","src":"47480:6:88","type":""},{"name":"value1","nativeSrc":"47488:6:88","nodeType":"YulTypedName","src":"47488:6:88","type":""},{"name":"value0","nativeSrc":"47496:6:88","nodeType":"YulTypedName","src":"47496:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"47507:4:88","nodeType":"YulTypedName","src":"47507:4:88","type":""}],"src":"47335:398:88"},{"body":{"nativeSrc":"47912:179:88","nodeType":"YulBlock","src":"47912:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"47929:9:88","nodeType":"YulIdentifier","src":"47929:9:88"},{"kind":"number","nativeSrc":"47940:2:88","nodeType":"YulLiteral","src":"47940:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"47922:6:88","nodeType":"YulIdentifier","src":"47922:6:88"},"nativeSrc":"47922:21:88","nodeType":"YulFunctionCall","src":"47922:21:88"},"nativeSrc":"47922:21:88","nodeType":"YulExpressionStatement","src":"47922:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"47963:9:88","nodeType":"YulIdentifier","src":"47963:9:88"},{"kind":"number","nativeSrc":"47974:2:88","nodeType":"YulLiteral","src":"47974:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"47959:3:88","nodeType":"YulIdentifier","src":"47959:3:88"},"nativeSrc":"47959:18:88","nodeType":"YulFunctionCall","src":"47959:18:88"},{"kind":"number","nativeSrc":"47979:2:88","nodeType":"YulLiteral","src":"47979:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"47952:6:88","nodeType":"YulIdentifier","src":"47952:6:88"},"nativeSrc":"47952:30:88","nodeType":"YulFunctionCall","src":"47952:30:88"},"nativeSrc":"47952:30:88","nodeType":"YulExpressionStatement","src":"47952:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"48002:9:88","nodeType":"YulIdentifier","src":"48002:9:88"},{"kind":"number","nativeSrc":"48013:2:88","nodeType":"YulLiteral","src":"48013:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"47998:3:88","nodeType":"YulIdentifier","src":"47998:3:88"},"nativeSrc":"47998:18:88","nodeType":"YulFunctionCall","src":"47998:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"48018:31:88","nodeType":"YulLiteral","src":"48018:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"47991:6:88","nodeType":"YulIdentifier","src":"47991:6:88"},"nativeSrc":"47991:59:88","nodeType":"YulFunctionCall","src":"47991:59:88"},"nativeSrc":"47991:59:88","nodeType":"YulExpressionStatement","src":"47991:59:88"},{"nativeSrc":"48059:26:88","nodeType":"YulAssignment","src":"48059:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"48071:9:88","nodeType":"YulIdentifier","src":"48071:9:88"},{"kind":"number","nativeSrc":"48082:2:88","nodeType":"YulLiteral","src":"48082:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"48067:3:88","nodeType":"YulIdentifier","src":"48067:3:88"},"nativeSrc":"48067:18:88","nodeType":"YulFunctionCall","src":"48067:18:88"},"variableNames":[{"name":"tail","nativeSrc":"48059:4:88","nodeType":"YulIdentifier","src":"48059:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"47738:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"47889:9:88","nodeType":"YulTypedName","src":"47889:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"47903:4:88","nodeType":"YulTypedName","src":"47903:4:88","type":""}],"src":"47738:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0140)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint32(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_PackedParams(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x0140) { revert(0, 0) }\n        value := allocate_memory()\n        mstore(value, abi_decode_uint16(headStart))\n        mstore(add(value, 32), abi_decode_uint16(add(headStart, 32)))\n        mstore(add(value, 64), abi_decode_uint16(add(headStart, 64)))\n        mstore(add(value, 96), abi_decode_uint16(add(headStart, 96)))\n        mstore(add(value, 128), abi_decode_uint16(add(headStart, 128)))\n        mstore(add(value, 160), abi_decode_uint16(add(headStart, 160)))\n        mstore(add(value, 192), abi_decode_uint16(add(headStart, 192)))\n        mstore(add(value, 224), abi_decode_uint32(add(headStart, 224)))\n        mstore(add(value, 256), abi_decode_uint32(add(headStart, 256)))\n        mstore(add(value, 288), abi_decode_uint16(add(headStart, 288)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 1024) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 512))\n        value3 := value_2\n        value4 := abi_decode_uint40(add(headStart, 544))\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 576))\n        value5 := value_3\n        value6 := abi_decode_struct_PackedParams(add(headStart, 608), dataEnd)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 928))\n        value7 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 960))\n        value8 := value_5\n        value9 := abi_decode_uint40(add(headStart, 992))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_contract_IPolicyPool(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 256) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        if slt(add(_1, not(31)), 224) { revert(0, 0) }\n        value1 := add(headStart, 32)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes(add(_1, 0x20), calldataload(_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 0x20))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := calldataload(add(headStart, 192))\n        validator_revert_address(value_5)\n        value6 := value_5\n    }\n    function abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 320) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 192))\n        value6 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 224))\n        value7 := value_6\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 256))\n        value8 := value_7\n        value9 := abi_decode_uint40(add(headStart, 288))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 736) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 512))\n        value3 := value_2\n        value4 := abi_decode_uint40(add(headStart, 544))\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 576))\n        value5 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 608))\n        value6 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 640))\n        value7 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 672))\n        value8 := value_6\n        value9 := abi_decode_uint40(add(headStart, 704))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_struct$_PackedParams_$20220_memory_ptrt_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 608) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        value6 := abi_decode_struct_PackedParams(add(headStart, 192), dataEnd)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 512))\n        value7 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 544))\n        value8 := value_6\n        value9 := abi_decode_uint40(add(headStart, 576))\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 448)\n        abi_encode_struct_PolicyData(value0, headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23903t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 10)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40t_struct$_PackedParams_$20220_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 416) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n        value3 := abi_decode_struct_PackedParams(add(headStart, 96), dataEnd)\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        let value := 0\n        value := calldataload(value0)\n        mstore(headStart, value)\n        let value_1 := 0\n        value_1 := calldataload(add(value0, 0x20))\n        mstore(add(headStart, 0x20), value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value0, 0x40))\n        mstore(add(headStart, 0x40), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value0, 0x60))\n        mstore(add(headStart, 0x60), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value0, 0x80))\n        mstore(add(headStart, 0x80), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value0, 0xa0))\n        mstore(add(headStart, 0xa0), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value0, 0xc0))\n        mstore(add(headStart, 0xc0), value_6)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_encode_struct_PolicyData_calldata(value, pos)\n    {\n        let value_1 := 0\n        value_1 := calldataload(value)\n        mstore(pos, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 0x40))\n        mstore(add(pos, 0x40), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value, 0x60))\n        mstore(add(pos, 0x60), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value, 0x80))\n        mstore(add(pos, 0x80), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(value, 0xe0))\n        mstore(add(pos, 0xe0), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(value, 0x0100))\n        mstore(add(pos, 0x0100), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(value, 0x0120))\n        mstore(add(pos, 0x0120), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(value, 0x0140))\n        mstore(add(pos, 0x0140), value_11)\n        let memberValue0 := abi_decode_contract_IRiskModule(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := abi_decode_uint40(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := abi_decode_uint40(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), value1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Can't set exposureLimit less tha\")\n        mstore(add(headStart, 96), \"n active exposure\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Increase requires LEVEL1_ROLE\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), value1)\n        mstore(add(pos, 52), value2)\n        mstore(add(pos, 84), value3)\n        mstore(add(pos, 116), and(shl(216, value4), shl(216, 0xffffffffff)))\n        mstore(add(pos, 121), value5)\n        mstore(add(pos, 153), value6)\n        mstore(add(pos, 185), and(shl(216, value7), shl(216, 0xffffffffff)))\n        end := add(pos, 190)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint40(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Premium must be less than payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Old policy is expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Policy replacement must be great\")\n        mstore(add(headStart, 96), \"er or equal than old policy\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function checked_div_t_uint40(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Policy exceeds max duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"You must allow ENSURO to transfe\")\n        mstore(add(headStart, 96), \"r the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Payer must allow caller to trans\")\n        mstore(add(headStart, 96), \"fer the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"RiskModule: Payout is more than \")\n        mstore(add(headStart, 96), \"maximum per policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"RiskModule: Exposure limit excee\")\n        mstore(add(headStart, 96), \"ded\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 960)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n        mstore(add(headStart, 896), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 928), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Validation: jrCollRatio must be \")\n        mstore(add(headStart, 96), \"<=1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Validation: collRatio must be <=\")\n        mstore(add(headStart, 96), \"1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: collRatio >= jrCollR\")\n        mstore(add(headStart, 96), \"atio\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Validation: moc must be [0.5, 4]\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: ensuroPpFee must be \")\n        mstore(add(headStart, 96), \"<= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: ensuroCocFee must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: srRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: jrRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Exposure and MaxPayout must be >\")\n        mstore(add(headStart, 96), \"0\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_sub_t_uint8(x, y) -> diff\n    {\n        diff := sub(and(x, 0xff), and(y, 0xff))\n        if gt(diff, 0xff) { panic_error_0x11() }\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Expiration must be in the future\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Customer can't be zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 544)\n        abi_encode_struct_PolicyData(value0, headStart)\n        mstore(add(headStart, 448), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 480), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 512), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        end := abi_encode_string(value1, abi_encode_string(value0, add(pos, 26)))\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":2178},{"length":32,"start":2251},{"length":32,"start":3020},{"length":32,"start":3084},{"length":32,"start":3225}],"17733":[{"length":32,"start":707},{"length":32,"start":1792},{"length":32,"start":2447},{"length":32,"start":2725},{"length":32,"start":3439},{"length":32,"start":4310},{"length":32,"start":4730},{"length":32,"start":5017},{"length":32,"start":5267},{"length":32,"start":5416},{"length":32,"start":5714},{"length":32,"start":6056},{"length":32,"start":6471},{"length":32,"start":8211},{"length":32,"start":8515},{"length":32,"start":8743},{"length":32,"start":9715},{"length":32,"start":10707},{"length":32,"start":10864},{"length":32,"start":11043},{"length":32,"start":11506},{"length":32,"start":12840},{"length":32,"start":13797},{"length":32,"start":13954},{"length":32,"start":14120},{"length":32,"start":14549},{"length":32,"start":14834},{"length":32,"start":17454}],"20197":[{"length":32,"start":992},{"length":32,"start":15271}]},"linkReferences":{},"object":"6080604052600436106101db575f3560e01c8063766dbc56116100fd578063b9b28f2a11610092578063cfd4c60611610062578063cfd4c606146105b9578063cff0ab96146105cd578063deaa59df146105e1578063e5a6b10f14610600575f5ffd5b8063b9b28f2a146104e8578063c1cca2b314610507578063ceddac6f14610526578063cf19171e1461059a575f5ffd5b80638456cb59116100cd5780638456cb591461047557806385272a6e146104895780638bac3a241461049d5780639014d171146104bc575f5ffd5b8063766dbc56146104045780637a702b3c146104235780637ff8bf251461044257806382ff9c8c14610456575f5ffd5b8063521eb273116101735780636a448ef1116101435780636a448ef1146103755780636db5c8fd146103945780636f0dbe6f146103b357806373a952e8146103d2575f5ffd5b8063521eb2731461030e57806352d1902d1461032b578063571e8bcc1461033f5780635c975abb1461035e575f5ffd5b80633f4ba83a116101ae5780633f4ba83a146102745780633f961587146102885780634d15eb03146102b55780634f1ef286146102fb575f5ffd5b806301ffc9a7146101df57806306fdde031461021357806318e26bb9146102345780633659cfe614610255575b5f5ffd5b3480156101ea575f5ffd5b506101fe6101f9366004614b62565b610614565b60405190151581526020015b60405180910390f35b34801561021e575f5ffd5b5061022761063f565b60405161020a9190614b89565b34801561023f575f5ffd5b5061025361024e366004614bbe565b6106cf565b005b348015610260575f5ffd5b5061025361026f366004614be9565b610878565b34801561027f575f5ffd5b5061025361095e565b348015610293575f5ffd5b506102a76102a2366004614d5a565b610a79565b60405190815260200161020a565b3480156102c0575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161020a565b610253610309366004614e64565b610bc2565b348015610319575f5ffd5b5060fe546001600160a01b03166102e3565b348015610336575f5ffd5b506102a7610c8d565b34801561034a575f5ffd5b50610253610359366004614ec4565b610d3e565b348015610369575f5ffd5b5060975460ff166101fe565b348015610380575f5ffd5b5061025361038f366004614bbe565b6110d3565b34801561039f575f5ffd5b5060fc54600160b01b900461ffff166102a7565b3480156103be575f5ffd5b506102536103cd366004614efa565b611135565b3480156103dd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102e3565b34801561040f575f5ffd5b506102a761041e366004614f89565b61124e565b34801561042e575f5ffd5b5061025361043d366004614ffd565b611376565b34801561044d575f5ffd5b5060fd546102a7565b348015610461575f5ffd5b506102a7610470366004615028565b6114fc565b348015610480575f5ffd5b5061025361162f565b348015610494575f5ffd5b506102a7611736565b3480156104a8575f5ffd5b506102a76104b73660046150a2565b611758565b3480156104c7575f5ffd5b506104db6104d63660046150d4565b611775565b60405161020a9190615211565b3480156104f3575f5ffd5b506102a7610502366004615220565b6118fc565b348015610512575f5ffd5b5061025361052136600461525a565b611916565b348015610531575f5ffd5b50610545610540366004614bbe565b611e17565b60405161020a91905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b3480156105a5575f5ffd5b506102a76105b4366004615287565b611f14565b3480156105c4575f5ffd5b506102a7611f25565b3480156105d8575f5ffd5b50610545611f43565b3480156105ec575f5ffd5b506102536105fb366004614be9565b611ff0565b34801561060b575f5ffd5b506102e3612140565b5f61061e826121c1565b8061063957506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb805461064e906152cc565b80601f016020809104026020016040519081016040528092919081815260200182805461067a906152cc565b80156106c55780601f1061069c576101008083540402835291602001916106c5565b820191905f5260205f20905b8154815290600101906020018083116106a857829003601f168201915b5050505050905090565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016107b2959493929190615319565b5f6040518083038186803b1580156107c8575f5ffd5b505afa1580156107da573d5f5f3e3d5ffd5b50505050825f036107fe576040516364ba211360e11b815260040160405180910390fd5b5f83815261012d602052604081205461ffff1690036108305760405163c4c1a0c560e01b815260040160405180910390fd5b5f83815261012d602052604080822080546001600160c01b03191690555184917fda8c8883e1b3ead63d3ef64674f8fc499048554f6fa36776af0ab41d2f99834691a2505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108c95760405162461bcd60e51b81526004016108c09061534c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109115f516020615b245f395f51905f52546001600160a01b031690565b6001600160a01b0316146109375760405162461bcd60e51b81526004016108c090615398565b610940816121f6565b604080515f8082526020820190925261095b91839190612313565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020615b445f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0d91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a41959493929190615319565b5f6040518083038186803b158015610a57575f5ffd5b505afa158015610a69573d5f5f3e3d5ffd5b50505050610a7561247d565b5050565b5f610a826124cf565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2391906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610b5494939291906153e4565b5f6040518083038186803b158015610b6a575f5ffd5b505afa158015610b7c573d5f5f3e3d5ffd5b50505050610b918b8b8b8b8b8b8b8b8b612517565b610bb18c8c8c8c8c33610ba38e6126fb565b610bac8e61270a565b61279d565b519c9b505050505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c0a5760405162461bcd60e51b81526004016108c09061534c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c525f516020615b245f395f51905f52546001600160a01b031690565b6001600160a01b031614610c785760405162461bcd60e51b81526004016108c090615398565b610c81826121f6565b610a7582826001612313565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d2c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108c0565b505f516020615b245f395f51905f5290565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded91906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610e21959493929190615319565b5f6040518083038186803b158015610e37575f5ffd5b505afa158015610e49573d5f5f3e3d5ffd5b50505050835f03610e6d576040516364ba211360e11b815260040160405180910390fd5b604051806101400160405280610e85855f0135612d7b565b61ffff168152602001610e9b8560200135612d7b565b61ffff168152602001610eb18560400135612d7b565b61ffff168152602001610ec78560600135612d7b565b61ffff168152602001610edd8560800135612d7b565b61ffff168152602001610ef38560a00135612d7b565b61ffff168152602001610f098560c00135612d7b565b61ffff908116825263ffffffff6020808401829052604080850183905260609485018490525f8a815261012d835281902086518154938801519288015196880151608089015160a08a015160c08b015160e08c01516101008d0151610120909d01518b16600160b01b0261ffff60b01b199d8b16600160901b029d909d1665ffffffffffff60901b1991909a16600160701b0263ffffffff60701b19928c16600160601b029290921665ffffffffffff60601b19938c16600160501b0261ffff60501b19958d16600160401b029590951663ffffffff60401b19968d16600160301b0261ffff60301b199e8e16600160201b029e909e1667ffffffff00000000199a8e16620100000263ffffffff19909c1698909d169790971799909917979097169990991799909917919091169190911717959095169190911792909217919091161791909117815561105c90612d94565b6040805184358152602080860135908201528482013581830152606080860135908201526080808601359082015260a0808601359082015260c08086013590820152905185917f1f02d2d352ddbf27121545f4d4730d7656c038f9ce75851410c9ef6982728975919081900360e00190a250505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461111c5760405163799e780f60e01b815260040160405180910390fd5b8060fd5f82825461112d9190615422565b909155505050565b5f54610100900460ff161580801561115357505f54600160ff909116105b8061116c5750303b15801561116c57505f5460ff166001145b6111cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108c0565b5f805460ff1916600117905580156111f0575f805461ff0019166101001790555b6111ff8888888888888861318e565b8015611244575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b5f6112576124cf565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f891906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161132994939291906153e4565b5f6040518083038186803b15801561133f575f5ffd5b505afa158015611351573d5f5f3e3d5ffd5b505050506113668c8c8c8c8b8b8b8b8b6131cb565b610bb18c8c8c8c8b8b338f6132f7565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f3573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141791906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161144894939291906153e4565b5f6040518083038186803b15801561145e575f5ffd5b505afa158015611470573d5f5f3e3d5ffd5b5050505061147c6124cf565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906114ca9086908690600401615501565b5f604051808303815f87803b1580156114e1575f5ffd5b505af11580156114f3573d5f5f3e3d5ffd5b50505050505050565b5f6115056124cf565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611582573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a691906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016115d794939291906153e4565b5f6040518083038186803b1580156115ed575f5ffd5b505afa1580156115ff573d5f5f3e3d5ffd5b505050506116148b8b8b8b8b8b8b8b8b6131cb565b610bb18c8c8c8c8c336116268e6126fb565b610bac8e611e17565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d091906152fe565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161170294939291906153e4565b5f6040518083038186803b158015611718575f5ffd5b505afa15801561172a573d5f5f3e3d5ffd5b5050505061095b61335f565b60fc545f90611753908290600160901b900463ffffffff1661339c565b905090565b5f61176d84848442611768611f43565b61342a565b949350505050565b61177d614ab4565b6117856124cf565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611802573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161185794939291906153e4565b5f6040518083038186803b15801561186d575f5ffd5b505afa15801561187f573d5f5f3e3d5ffd5b505050506118948c8c8c8c8b8b8b8b8b612517565b6118b48c8c8c8c338d6118a68e6126fb565b6118af8e61270a565b613446565b8051604051898152919350907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a2509a9950505050505050505050565b5f61190d8585854261176887611e17565b95945050505050565b5f516020615b445f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c591906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016119f9959493929190615319565b5f6040518083038186803b158015611a0f575f5ffd5b505afa158015611a21573d5f5f3e3d5ffd5b505f9250611a2d915050565b846009811115611a3f57611a3f61551e565b03611a6857611a4d83612d7b565b60fc805461ffff191661ffff92909216919091179055611dda565b6001846009811115611a7c57611a7c61551e565b03611aae57611a8a83612d7b565b60fc805461ffff92909216620100000263ffff000019909216919091179055611dda565b6002846009811115611ac257611ac261551e565b03611af757611ad083612d7b565b60fc805461ffff92909216600160201b0265ffff0000000019909216919091179055611dda565b6003846009811115611b0b57611b0b61551e565b03611b3f57611b1983612d7b565b60fc805461ffff92909216600160301b0261ffff60301b19909216919091179055611dda565b6004846009811115611b5357611b5361551e565b03611b8c57611b6183612d7b565b60fc805461ffff92909216600160401b0269ffff000000000000000019909216919091179055611dda565b6005846009811115611ba057611ba061551e565b03611bd457611bae83612d7b565b60fc805461ffff92909216600160501b0261ffff60501b19909216919091179055611dda565b6006846009811115611be857611be861551e565b03611c1c57611bf683612d7b565b60fc805461ffff92909216600160601b0261ffff60601b19909216919091179055611dda565b6007846009811115611c3057611c3061551e565b03611c6a57611c4060028461395f565b60fc805463ffffffff92909216600160701b0263ffffffff60701b19909216919091179055611dda565b6008846009811115611c7e57611c7e61551e565b03611d965760fd54831015611cef5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016108c0565b611cf7611736565b83111580611d165750611d165f516020615b445f395f51905f526139ef565b611d625760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016108c0565b611d6c5f8461395f565b60fc805463ffffffff92909216600160901b0263ffffffff60901b19909216919091179055611dda565b6009846009811115611daa57611daa61551e565b03611dda57611db883613ae1565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b611e11846009811115611def57611def61551e565b611dfa906008615532565b602d811115611e0b57611e0b61551e565b84613b47565b50505050565b611e1f614b2c565b8115611f07575f82815261012d602052604081208054909161ffff9091169003611e5c5760405163c4c1a0c560e01b815260040160405180910390fd5b6040805161014081018252825461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611f009061270a565b9392505050565b610639611f43565b919050565b5f61190d858585426117688761270a565b60fc545f9061175390600290600160701b900463ffffffff1661339c565b611f4b614b2c565b604080516101408101825260fc5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b90049091166101208201526117539061270a565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209191906152fe565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016120c294939291906153e4565b5f6040518083038186803b1580156120d8575f5ffd5b505afa1580156120ea573d5f5f3e3d5ffd5b5050506001600160a01b038316905061211657604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610a7590601290613b47565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175391906152fe565b5f6001600160e01b031982166301ffc9a760e01b148061063957506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020615b445f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612281573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a591906152fe565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016122d9959493929190615319565b5f6040518083038186803b1580156122ef575f5ffd5b505afa158015612301573d5f5f3e3d5ffd5b5050505061230e83613b98565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156123465761230e83613c56565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123a0575060408051601f3d908101601f1916820190925261239d91810190615545565b60015b6124035760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108c0565b5f516020615b245f395f51905f5281146124715760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108c0565b5061230e838383613cf1565b612485613d15565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff16156125155760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108c0565b565b428164ffffffffff16101561253f57604051638727a7f960e01b815260040160405180910390fd5b5f6125e1308b8b8b8b8b6125b58c5f60908260c0015161ffff16901b60a08360a0015161ffff16901b60b0846080015161ffff16901b60c0856060015161ffff16901b60d0866040015161ffff16901b60e0876020015161ffff16901b60f0885f015161ffff16901b1717171717179050919050565b896040516020016125cd98979695949392919061555c565b604051602081830303815290604052613d5e565b90505f6125ef828686613d98565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267191906152fe565b6001600160a01b0316635ff57d20307ff5d8f7a4041cf31e35e40569643a02f20f7706179aaa0b7764c077c3a607b275845f6040518563ffffffff1660e01b81526004016126c294939291906153e4565b5f6040518083038186803b1580156126d8575f5ffd5b505afa1580156126ea573d5f5f3e3d5ffd5b505050505050505050505050505050565b5f610639600160601b836155d4565b612712614b2c565b6040518060e00160405280612729845f0151613dbc565b815260200161273b8460200151613dbc565b815260200161274d8460400151613dbc565b815260200161275f8460600151613dbc565b81526020016127718460800151613dbc565b81526020016127838460a00151613dbc565b81526020016127958460c00151613dbc565b905292915050565b6127a5614ab4565b5f1987036127ce576127cb8887876127c56101a08e016101808f016155e7565b8661342a565b96505b87871061281d5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108c0565b64ffffffffff42166128376101c08b016101a08c016155e7565b64ffffffffff16116128835760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016108c0565b6128956101c08a016101a08b016155e7565b64ffffffffff168564ffffffffff16101580156128b6575088602001358810155b80156128c6575088604001358710155b6129385760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016108c0565b60fc54600160b01b900461ffff16610e1061295b6101a08c016101808d016155e7565b6129659088615600565b61296f919061561d565b64ffffffffff16106129c35760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108c0565b6129d160408a013588615422565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a5191906152fe565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615545565b1015612b015760405162461bcd60e51b81526004016108c090615646565b6001600160a01b038416331480612c215750612b2160408a013588615422565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba191906152fe565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612bfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1e9190615545565b10155b612c3d5760405162461bcd60e51b81526004016108c090615693565b612c45611f25565b881115612c645760405162461bcd60e51b81526004016108c0906156e2565b612c863083898b8a8a8f610180016020810190612c8191906155e7565b613dd1565b905088602001358160200151612c9c9190615422565b60fd5f828254612cac9190615532565b90915550612cba9050611736565b60fd541115612cdb5760405162461bcd60e51b81526004016108c090615734565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae90612d2d908c90859089908990600401615777565b6020604051808303815f875af1158015612d49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d6d9190615545565b815298975050505050505050565b5f610639612d8f655af3107a4000846157c4565b613ae1565b80546127106201000090910461ffff161115612dfe5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016108c0565b8054612710600160201b90910461ffff1611801590612e2857508054600160201b900461ffff1615155b612e7e5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016108c0565b805461ffff6201000082048116600160201b909204161015612eee5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016108c0565b8054619c4061ffff90911611801590612f105750805461138861ffff90911610155b612f5c5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016108c0565b8054612710600160301b90910461ffff161115612fc75760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016108c0565b8054612710600160401b90910461ffff1611156130345760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016108c0565b8054612710600160601b90910461ffff1611156130a15760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108c0565b8054612710600160501b90910461ffff16111561310e5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108c0565b8054600160901b900463ffffffff161580159061313857508054600160701b900463ffffffff1615155b61095b5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016108c0565b5f54610100900460ff166131b45760405162461bcd60e51b81526004016108c0906157d7565b6131bc613f41565b6114f387878787878787613f77565b428164ffffffffff1610156131f357604051638727a7f960e01b815260040160405180910390fd5b5f613216308b8b8b8b8b8b896040516020016125cd98979695949392919061555c565b90505f613224828686613d98565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015613282573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132a691906152fe565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a845f6040518563ffffffff1660e01b81526004016126c294939291906153e4565b6132ff614ab4565b61331a8989898987876133118c6126fb565b6118af8c611e17565b8051604051878152919250907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a298975050505050505050565b6133676124cf565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124b23390565b5f826133a6612140565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134059190615822565b61340f9190615842565b61341a90600a615936565b611f009063ffffffff8416615944565b5f6134388287878787614178565b60e001519695505050505050565b61344e614ab4565b4260018901613467576134648a8989848761342a565b98505b8989106134b65760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108c0565b8064ffffffffff168764ffffffffff16116135135760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016108c0565b60fc54600160b01b900461ffff16610e1061352e838a615600565b613538919061561d565b64ffffffffff161061358c5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108c0565b6001600160a01b0385166135e25760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016108c0565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561363f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366391906152fe565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156136d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f59190615545565b10156137135760405162461bcd60e51b81526004016108c090615646565b6001600160a01b0386163314806138265750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613782573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137a691906152fe565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156137ff573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138239190615545565b10155b6138425760405162461bcd60e51b81526004016108c090615693565b61384a611f25565b8a11156138695760405162461bcd60e51b81526004016108c0906156e2565b61387830848b8d8c8c87613dd1565b9150816020015160fd5f82825461388f9190615532565b9091555061389d9050611736565b60fd5411156138be5760405162461bcd60e51b81526004016108c090615734565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906139109085908a908a908a9060040161595b565b6020604051808303815f875af115801561392c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139509190615545565b82525098975050505050505050565b5f611f008361396c612140565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139cb9190615822565b6139d59190615842565b6139e090600a615936565b6139ea90846157c4565b61436b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a7091906152fe565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b8152600401613aa294939291906153e4565b602060405180830381865afa158015613abd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063991906159a2565b5f61ffff821115613b435760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016108c0565b5090565b613b4f6143cf565b81602d811115613b6157613b6161551e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b613ba18161442c565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c2f91906152fe565b6001600160a01b031614610a755760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b613cc35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108c0565b5f516020615b245f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b613cfa836144dd565b5f82511180613d065750805b1561230e57611e11838361451c565b60975460ff166125155760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108c0565b5f613d698251614541565b82604051602001613d7b9291906159d8565b604051602081830303815290604052805190602001209050919050565b5f5f5f613da68686866145d1565b91509150613db38161460a565b50949350505050565b5f610639655af3107a400061ffff8416615944565b613dd9614ab4565b84861115613e345760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016108c0565b613e3c614ab4565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613e868988888888614178565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613f1f5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016108c0565b60e0810151613f2e9089615422565b6101008301525098975050505050505050565b5f54610100900460ff16613f675760405162461bcd60e51b81526004016108c0906157d7565b613f6f614753565b612515614779565b5f54610100900460ff16613f9d5760405162461bcd60e51b81526004016108c0906157d7565b60fb613fa98882615a5d565b50604080516101408101825261271081525f6020820152908101613fcc88612d7b565b61ffff168152602001613fde87612d7b565b61ffff1681525f602082018190526040820152606001613ffd86612d7b565b61ffff16815260200161401160028661395f565b63ffffffff1681526020016140265f8561395f565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff000000001916600160201b9589169590950261ffff60301b191694909417600160301b938816939093029290921763ffffffff60401b1916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b0383161790556114f36143cf565b6141b86040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516141d0906141c99086906147a7565b86906147a7565b815260208601516141e29086906147a7565b602082018190528151101561420c578051602082018051614204908390615422565b905250614213565b5f60208201525b60408601516142239086906147a7565b6040820152602081015181516142399190615532565b8160400151111561426e57602081015181516142559190615532565b816040018181516142669190615422565b905250614275565b5f60408201525b6142b26301e133806142878486615600565b64ffffffffff168860a0015161429d9190615944565b6142a791906157c4565b6020830151906147a7565b60608201526142f46301e133806142c98486615600565b64ffffffffff168860c001516142df9190615944565b6142e991906157c4565b6040830151906147a7565b6080820181905260608201515f9161430b91615532565b90506143248760800151826147a790919063ffffffff16565b60608801518351614334916147a7565b61433e9190615532565b60a083018190528251829161435291615532565b61435c9190615532565b60e08301525095945050505050565b5f63ffffffff821115613b435760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016108c0565b60fd546143da611736565b10156143f957604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b031661442257604051634d1c286960e11b815260040160405180910390fd5b61251560fc612d94565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015614492573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144b691906152fe565b6001600160a01b03161461095b5760405163d2b3d33f60e01b815260040160405180910390fd5b6144e681613c56565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611f008383604051806060016040528060278152602001615b64602791396147dd565b60605f61454d83614851565b60010190505f8167ffffffffffffffff81111561456c5761456c614c2f565b6040519080825280601f01601f191660200182016040528015614596576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846145a057509392505050565b5f806001600160ff1b038316816145ed60ff86901c601b615532565b90506145fb87828885614928565b9350935050505b935093915050565b5f81600481111561461d5761461d61551e565b036146255750565b60018160048111156146395761463961551e565b036146865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108c0565b600281600481111561469a5761469a61551e565b036146e75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108c0565b60038160048111156146fb576146fb61551e565b0361095b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016108c0565b5f54610100900460ff166125155760405162461bcd60e51b81526004016108c0906157d7565b5f54610100900460ff1661479f5760405162461bcd60e51b81526004016108c0906157d7565b6125156149e5565b5f81156706f05b59d3b2000019839004841115176147c3575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b60605f5f856001600160a01b0316856040516147f99190615b18565b5f60405180830381855af49150503d805f8114614831576040519150601f19603f3d011682016040523d82523d5f602084013e614836565b606091505b509150915061484786838387614a17565b9695505050505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061488f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106148bb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106148d957662386f26fc10000830492506010015b6305f5e10083106148f1576305f5e100830492506008015b612710831061490557612710830492506004015b60648310614917576064830492506002015b600a83106106395760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561495d57505f905060036149dc565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156149ae573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166149d6575f600192509250506149dc565b91505f90505b94509492505050565b5f54610100900460ff16614a0b5760405162461bcd60e51b81526004016108c0906157d7565b6097805460ff19169055565b60608315614a855782515f03614a7e576001600160a01b0385163b614a7e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108c0565b508161176d565b61176d8383815115614a9a5781518083602001fd5b8060405162461bcd60e51b81526004016108c09190614b89565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f60208284031215614b72575f5ffd5b81356001600160e01b031981168114611f00575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215614bce575f5ffd5b5035919050565b6001600160a01b038116811461095b575f5ffd5b5f60208284031215614bf9575f5ffd5b8135611f0081614bd5565b5f6101c08284031215614c15575f5ffd5b50919050565b803564ffffffffff81168114611f0f575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051610140810167ffffffffffffffff81118282101715614c6757614c67614c2f565b60405290565b803561ffff81168114611f0f575f5ffd5b803563ffffffff81168114611f0f575f5ffd5b5f6101408284031215614ca2575f5ffd5b614caa614c43565b9050614cb582614c6d565b8152614cc360208301614c6d565b6020820152614cd460408301614c6d565b6040820152614ce560608301614c6d565b6060820152614cf660808301614c6d565b6080820152614d0760a08301614c6d565b60a0820152614d1860c08301614c6d565b60c0820152614d2960e08301614c7e565b60e0820152614d3b6101008301614c7e565b610100820152614d4e6101208301614c6d565b61012082015292915050565b5f5f5f5f5f5f5f5f5f5f6104008b8d031215614d74575f5ffd5b614d7e8c8c614c04565b99506101c08b013598506101e08b013597506102008b01359650614da56102208c01614c1b565b95506102408b01359450614dbd8c6102608d01614c91565b93506103a08b013592506103c08b01359150614ddc6103e08c01614c1b565b90509295989b9194979a5092959850565b5f5f67ffffffffffffffff841115614e0757614e07614c2f565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715614e3657614e36614c2f565b604052838152905080828401851015614e4d575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215614e75575f5ffd5b8235614e8081614bd5565b9150602083013567ffffffffffffffff811115614e9b575f5ffd5b8301601f81018513614eab575f5ffd5b614eba85823560208401614ded565b9150509250929050565b5f5f828403610100811215614ed7575f5ffd5b8335925060e0601f1982011215614eec575f5ffd5b506020830190509250929050565b5f5f5f5f5f5f5f60e0888a031215614f10575f5ffd5b873567ffffffffffffffff811115614f26575f5ffd5b8801601f81018a13614f36575f5ffd5b614f458a823560208401614ded565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614f7981614bd5565b8091505092959891949750929550565b5f5f5f5f5f5f5f5f5f5f6101408b8d031215614fa3575f5ffd5b8a35995060208b0135985060408b01359750614fc160608c01614c1b565b965060808b0135614fd181614bd5565b955060a08b0135945060c08b0135935060e08b013592506101008b01359150614ddc6101208c01614c1b565b5f5f6101e0838503121561500f575f5ffd5b6150198484614c04565b946101c0939093013593505050565b5f5f5f5f5f5f5f5f5f5f6102e08b8d031215615042575f5ffd5b61504c8c8c614c04565b99506101c08b013598506101e08b013597506102008b013596506150736102208c01614c1b565b95506102408b013594506102608b013593506102808b013592506102a08b01359150614ddc6102c08c01614c1b565b5f5f5f606084860312156150b4575f5ffd5b83359250602084013591506150cb60408501614c1b565b90509250925092565b5f5f5f5f5f5f5f5f5f5f6102608b8d0312156150ee575f5ffd5b8a35995060208b0135985060408b0135975061510c60608c01614c1b565b965060808b013561511c81614bd5565b955060a08b013594506151328c60c08d01614c91565b93506102008b013592506102208b01359150614ddc6102408c01614c1b565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516151db6101608401826001600160a01b03169052565b506101808101516151f661018084018264ffffffffff169052565b506101a081015161230e6101a084018264ffffffffff169052565b6101c081016106398284615151565b5f5f5f5f60808587031215615233575f5ffd5b843593506020850135925061524a60408601614c1b565b9396929550929360600135925050565b5f5f6040838503121561526b575f5ffd5b8235600a8110615279575f5ffd5b946020939093013593505050565b5f5f5f5f6101a0858703121561529b575f5ffd5b84359350602085013592506152b260408601614c1b565b91506152c18660608701614c91565b905092959194509250565b600181811c908216806152e057607f821691505b602082108103614c1557634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561530e575f5ffd5b8151611f0081614bd5565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106395761063961540e565b8035611f0f81614bd5565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014080820135908301526154b86101608201615435565b6001600160a01b03166101608301526154d46101808201614c1b565b64ffffffffff166101808301526154ee6101a08201614c1b565b64ffffffffff81166101a0840152505050565b6101e081016155108285615440565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b808201808211156106395761063961540e565b5f60208284031215615555575f5ffd5b5051919050565b60609890981b6bffffffffffffffffffffffff1916885260148801969096526034870194909452605486019290925260d890811b6001600160d81b031990811660748701526079860192909252609985019290925291901b1660b982015260be0190565b634e487b7160e01b5f52601260045260245ffd5b5f826155e2576155e26155c0565b500690565b5f602082840312156155f7575f5ffd5b611f0082614c1b565b64ffffffffff82811682821603908111156106395761063961540e565b5f64ffffffffff831680615633576156336155c0565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c081016157868287615440565b6157946101c0830186615151565b6001600160a01b03939093166103808201526bffffffffffffffffffffffff919091166103a09091015292915050565b5f826157d2576157d26155c0565b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215615832575f5ffd5b815160ff81168114611f00575f5ffd5b60ff82811682821603908111156106395761063961540e565b6001815b60018411156146025780850481111561587a5761587a61540e565b600184161561588857908102905b60019390931c92800261585f565b5f826158a457506001610639565b816158b057505f610639565b81600181146158c657600281146158d0576158ec565b6001915050610639565b60ff8411156158e1576158e161540e565b50506001821b610639565b5060208310610133831016604e8410600b841016171561590f575081810a610639565b61591b5f19848461585b565b805f190482111561592e5761592e61540e565b029392505050565b5f611f0060ff841683615896565b80820281158282048414176106395761063961540e565b610220810161596a8287615151565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f602082840312156159b2575f5ffd5b81518015158114611f00575f5ffd5b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f61176d615a0c601a8401866159c1565b846159c1565b601f82111561230e57805f5260205f20601f840160051c81016020851015615a375750805b601f840160051c820191505b81811015615a56575f8155600101615a43565b5050505050565b815167ffffffffffffffff811115615a7757615a77614c2f565b615a8b81615a8584546152cc565b84615a12565b6020601f821160018114615abd575f8315615aa65750848201515b5f19600385901b1c1916600184901b178455615a56565b5f84815260208120601f198516915b82811015615aec5787850151825560209485019460019092019101615acc565b5084821015615b0957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f611f0082846159c156fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220833bf365115b989c34479d926a84a113fdc952fe9a5442a8c9fb00b658d1b5eb64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x766DBC56 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xB9B28F2A GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xCFD4C606 GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x5B9 JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x5CD JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x600 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xB9B28F2A EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0xCEDDAC6F EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0xCF19171E EQ PUSH2 0x59A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x49D JUMPI DUP1 PUSH4 0x9014D171 EQ PUSH2 0x4BC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x766DBC56 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x442 JUMPI DUP1 PUSH4 0x82FF9C8C EQ PUSH2 0x456 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x173 JUMPI DUP1 PUSH4 0x6A448EF1 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x32B JUMPI DUP1 PUSH4 0x571E8BCC EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x35E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x3F961587 EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2FB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0x18E26BB9 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x255 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B62 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x227 PUSH2 0x63F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x4B89 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0x4BE9 JUMP JUMPDEST PUSH2 0x878 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x95E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x293 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D5A JUMP JUMPDEST PUSH2 0xA79 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20A JUMP JUMPDEST PUSH2 0x253 PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E64 JUMP JUMPDEST PUSH2 0xBC2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x319 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0xC8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EC4 JUMP JUMPDEST PUSH2 0xD3E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x369 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x380 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x2A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x4EFA JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x4F89 JUMP JUMPDEST PUSH2 0x124E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x4FFD JUMP JUMPDEST PUSH2 0x1376 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x2A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x461 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x5028 JUMP JUMPDEST PUSH2 0x14FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x162F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x494 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x1736 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x4B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x50A2 JUMP JUMPDEST PUSH2 0x1758 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4DB PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x50D4 JUMP JUMPDEST PUSH2 0x1775 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0x5211 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x5220 JUMP JUMPDEST PUSH2 0x18FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x512 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x525A JUMP JUMPDEST PUSH2 0x1916 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x531 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x545 PUSH2 0x540 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BBE JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x5B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x5287 JUMP JUMPDEST PUSH2 0x1F14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x1F25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x545 PUSH2 0x1F43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x4BE9 JUMP JUMPDEST PUSH2 0x1FF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x2140 JUMP JUMPDEST PUSH0 PUSH2 0x61E DUP3 PUSH2 0x21C1 JUMP JUMPDEST DUP1 PUSH2 0x639 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x64E SWAP1 PUSH2 0x52CC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67A SWAP1 PUSH2 0x52CC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x75A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77E SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7DA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH0 SUB PUSH2 0x7FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFFFF AND SWAP1 SUB PUSH2 0x830 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH32 0xDA8C8883E1B3EAD63D3EF64674F8FC499048554F6FA36776AF0AB41D2F998346 SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x534C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x911 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5398 JUMP JUMPDEST PUSH2 0x940 DUP2 PUSH2 0x21F6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x95B SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2313 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9E9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA0D SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA57 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA69 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA75 PUSH2 0x247D JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA82 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAFF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB23 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB91 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2517 JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0xBA3 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0xBAC DUP15 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x279D JUMP JUMPDEST MLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x534C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC52 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5398 JUMP JUMPDEST PUSH2 0xC81 DUP3 PUSH2 0x21F6 JUMP JUMPDEST PUSH2 0xA75 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2313 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDED SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE21 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE37 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP4 PUSH0 SUB PUSH2 0xE6D JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xE85 DUP6 PUSH0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9B DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEB1 DUP6 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC7 DUP6 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEDD DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEF3 DUP6 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF09 DUP6 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP5 DUP6 ADD DUP5 SWAP1 MSTORE PUSH0 DUP11 DUP2 MSTORE PUSH2 0x12D DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP4 DUP9 ADD MLOAD SWAP3 DUP9 ADD MLOAD SWAP7 DUP9 ADD MLOAD PUSH1 0x80 DUP10 ADD MLOAD PUSH1 0xA0 DUP11 ADD MLOAD PUSH1 0xC0 DUP12 ADD MLOAD PUSH1 0xE0 DUP13 ADD MLOAD PUSH2 0x100 DUP14 ADD MLOAD PUSH2 0x120 SWAP1 SWAP14 ADD MLOAD DUP12 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP14 DUP12 AND PUSH1 0x1 PUSH1 0x90 SHL MUL SWAP14 SWAP1 SWAP14 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT SWAP2 SWAP1 SWAP11 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP3 DUP13 AND PUSH1 0x1 PUSH1 0x60 SHL MUL SWAP3 SWAP1 SWAP3 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT SWAP4 DUP13 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP6 DUP14 AND PUSH1 0x1 PUSH1 0x40 SHL MUL SWAP6 SWAP1 SWAP6 AND PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT SWAP7 DUP14 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP15 DUP15 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP15 SWAP1 SWAP15 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP11 DUP15 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP9 SWAP1 SWAP14 AND SWAP8 SWAP1 SWAP8 OR SWAP10 SWAP1 SWAP10 OR SWAP8 SWAP1 SWAP8 AND SWAP10 SWAP1 SWAP10 OR SWAP10 SWAP1 SWAP10 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR OR SWAP6 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH2 0x105C SWAP1 PUSH2 0x2D94 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP5 DUP3 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD DUP6 SWAP2 PUSH32 0x1F02D2D352DDBF27121545F4D4730D7656C038F9CE75851410C9EF6982728975 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xE0 ADD SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x111C JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1153 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x116C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116C JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x11CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11F0 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11FF DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x318E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1244 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1257 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12D4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12F8 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1329 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1366 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x31CB JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 CALLER DUP16 PUSH2 0x32F7 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1417 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1448 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1470 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147C PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x14CA SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5501 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1505 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1582 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15D7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15FF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1614 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x31CB JUMP JUMPDEST PUSH2 0xBB1 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0x1626 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0xBAC DUP15 PUSH2 0x1E17 JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16D0 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1702 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1718 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x172A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x95B PUSH2 0x335F JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1753 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x339C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x176D DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1768 PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x342A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x177D PUSH2 0x4AB4 JUMP JUMPDEST PUSH2 0x1785 PUSH2 0x24CF JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1802 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1826 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1857 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x186D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x187F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1894 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2517 JUMP JUMPDEST PUSH2 0x18B4 DUP13 DUP13 DUP13 DUP13 CALLER DUP14 PUSH2 0x18A6 DUP15 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x18AF DUP15 PUSH2 0x270A JUMP JUMPDEST PUSH2 0x3446 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP10 DUP2 MSTORE SWAP2 SWAP4 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x190D DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x1768 DUP8 PUSH2 0x1E17 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C5 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A21 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x1A2D SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A3F JUMPI PUSH2 0x1A3F PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1A68 JUMPI PUSH2 0x1A4D DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A7C JUMPI PUSH2 0x1A7C PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1AAE JUMPI PUSH2 0x1A8A DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1AC2 JUMPI PUSH2 0x1AC2 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1AF7 JUMPI PUSH2 0x1AD0 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1B0B JUMPI PUSH2 0x1B0B PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1B3F JUMPI PUSH2 0x1B19 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1B53 JUMPI PUSH2 0x1B53 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1B8C JUMPI PUSH2 0x1B61 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1BA0 JUMPI PUSH2 0x1BA0 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1BD4 JUMPI PUSH2 0x1BAE DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1BE8 JUMPI PUSH2 0x1BE8 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1C1C JUMPI PUSH2 0x1BF6 DUP4 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1C30 JUMPI PUSH2 0x1C30 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1C6A JUMPI PUSH2 0x1C40 PUSH1 0x2 DUP5 PUSH2 0x395F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1C7E JUMPI PUSH2 0x1C7E PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1D96 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x1CF7 PUSH2 0x1736 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1D16 JUMPI POP PUSH2 0x1D16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x39EF JUMP JUMPDEST PUSH2 0x1D62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x1D6C PUSH0 DUP5 PUSH2 0x395F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1DAA JUMPI PUSH2 0x1DAA PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x1DDA JUMPI PUSH2 0x1DB8 DUP4 PUSH2 0x3AE1 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1E11 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1DEF JUMPI PUSH2 0x1DEF PUSH2 0x551E JUMP JUMPDEST PUSH2 0x1DFA SWAP1 PUSH1 0x8 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x1E0B JUMPI PUSH2 0x1E0B PUSH2 0x551E JUMP JUMPDEST DUP5 PUSH2 0x3B47 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E1F PUSH2 0x4B2C JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1F07 JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0xFFFF SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1E5C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1F00 SWAP1 PUSH2 0x270A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x639 PUSH2 0x1F43 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x190D DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x1768 DUP8 PUSH2 0x270A JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1753 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x339C JUMP JUMPDEST PUSH2 0x1F4B PUSH2 0x4B2C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1753 SWAP1 PUSH2 0x270A JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x206D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2091 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x2116 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA75 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x3B47 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x219D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1753 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x639 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B44 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2281 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22A5 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2301 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x230E DUP4 PUSH2 0x3B98 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2346 JUMPI PUSH2 0x230E DUP4 PUSH2 0x3C56 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x23A0 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x239D SWAP2 DUP2 ADD SWAP1 PUSH2 0x5545 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2403 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x2471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP PUSH2 0x230E DUP4 DUP4 DUP4 PUSH2 0x3CF1 JUMP JUMPDEST PUSH2 0x2485 PUSH2 0x3D15 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x253F JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x25E1 ADDRESS DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x25B5 DUP13 PUSH0 PUSH1 0x90 DUP3 PUSH1 0xC0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xA0 DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xB0 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xC0 DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xD0 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xE0 DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL PUSH1 0xF0 DUP9 PUSH0 ADD MLOAD PUSH2 0xFFFF AND SWAP1 SHL OR OR OR OR OR OR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25CD SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x555C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x3D5E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x25EF DUP3 DUP7 DUP7 PUSH2 0x3D98 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x264D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2671 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xF5D8F7A4041CF31E35E40569643A02F20F7706179AAA0B7764C077C3A607B275 DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x55D4 JUMP JUMPDEST PUSH2 0x2712 PUSH2 0x4B2C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2729 DUP5 PUSH0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x273B DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x274D DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x275F DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2771 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2783 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2795 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x3DBC JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x27A5 PUSH2 0x4AB4 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x27CE JUMPI PUSH2 0x27CB DUP9 DUP8 DUP8 PUSH2 0x27C5 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x55E7 JUMP JUMPDEST DUP7 PUSH2 0x342A JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x281D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x2837 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2883 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x2895 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x28B6 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x28C6 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x2938 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x295B PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x55E7 JUMP JUMPDEST PUSH2 0x2965 SWAP1 DUP9 PUSH2 0x5600 JUMP JUMPDEST PUSH2 0x296F SWAP2 SWAP1 PUSH2 0x561D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x29C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x29D1 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x5422 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A2D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A51 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2ABF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AE3 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO PUSH2 0x2B01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5646 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x2C21 JUMPI POP PUSH2 0x2B21 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x5422 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B7D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BA1 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BFA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C1E SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2C3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5693 JUMP JUMPDEST PUSH2 0x2C45 PUSH2 0x1F25 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2C64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x56E2 JUMP JUMPDEST PUSH2 0x2C86 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2C81 SWAP2 SWAP1 PUSH2 0x55E7 JUMP JUMPDEST PUSH2 0x3DD1 JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2C9C SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2CAC SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2CBA SWAP1 POP PUSH2 0x1736 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2CDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5734 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x2D2D SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5777 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D49 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D6D SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH2 0x2D8F PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x3AE1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2DFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x2E28 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x2E7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x2F10 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x2F5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2FC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3034 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x30A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x310E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3138 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x31BC PUSH2 0x3F41 JUMP JUMPDEST PUSH2 0x14F3 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3F77 JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x31F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x3216 ADDRESS DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25CD SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x555C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x3224 DUP3 DUP7 DUP7 PUSH2 0x3D98 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3282 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26C2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH2 0x32FF PUSH2 0x4AB4 JUMP JUMPDEST PUSH2 0x331A DUP10 DUP10 DUP10 DUP10 DUP8 DUP8 PUSH2 0x3311 DUP13 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x18AF DUP13 PUSH2 0x1E17 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE SWAP2 SWAP3 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3367 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x24B2 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x33A6 PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33E1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3405 SWAP2 SWAP1 PUSH2 0x5822 JUMP JUMPDEST PUSH2 0x340F SWAP2 SWAP1 PUSH2 0x5842 JUMP JUMPDEST PUSH2 0x341A SWAP1 PUSH1 0xA PUSH2 0x5936 JUMP JUMPDEST PUSH2 0x1F00 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x5944 JUMP JUMPDEST PUSH0 PUSH2 0x3438 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x4178 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x344E PUSH2 0x4AB4 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x3467 JUMPI PUSH2 0x3464 DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x342A JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x34B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x3513 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x352E DUP4 DUP11 PUSH2 0x5600 JUMP JUMPDEST PUSH2 0x3538 SWAP2 SWAP1 PUSH2 0x561D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x358C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x35E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3663 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36D1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36F5 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO PUSH2 0x3713 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5646 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3826 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3782 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x37A6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x37FF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3823 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x3842 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5693 JUMP JUMPDEST PUSH2 0x384A PUSH2 0x1F25 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3869 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x56E2 JUMP JUMPDEST PUSH2 0x3878 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3DD1 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x388F SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x389D SWAP1 POP PUSH2 0x1736 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x38BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x5734 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3910 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x595B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x392C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3950 SWAP2 SWAP1 PUSH2 0x5545 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 DUP4 PUSH2 0x396C PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39CB SWAP2 SWAP1 PUSH2 0x5822 JUMP JUMPDEST PUSH2 0x39D5 SWAP2 SWAP1 PUSH2 0x5842 JUMP JUMPDEST PUSH2 0x39E0 SWAP1 PUSH1 0xA PUSH2 0x5936 JUMP JUMPDEST PUSH2 0x39EA SWAP1 DUP5 PUSH2 0x57C4 JUMP JUMPDEST PUSH2 0x436B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A4C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A70 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3ABD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x639 SWAP2 SWAP1 PUSH2 0x59A2 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x3B43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x3B4F PUSH2 0x43CF JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x3B61 JUMPI PUSH2 0x3B61 PUSH2 0x551E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x3BA1 DUP2 PUSH2 0x442C JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C0B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C2F SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA75 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3CC3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5B24 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3CFA DUP4 PUSH2 0x44DD JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3D06 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x230E JUMPI PUSH2 0x1E11 DUP4 DUP4 PUSH2 0x451C JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 PUSH2 0x3D69 DUP3 MLOAD PUSH2 0x4541 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D7B SWAP3 SWAP2 SWAP1 PUSH2 0x59D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x3DA6 DUP7 DUP7 DUP7 PUSH2 0x45D1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x3DB3 DUP2 PUSH2 0x460A JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x639 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x3DD9 PUSH2 0x4AB4 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3E34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH2 0x3E3C PUSH2 0x4AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3E86 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x4178 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3F1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3F2E SWAP1 DUP10 PUSH2 0x5422 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3F67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x3F6F PUSH2 0x4753 JUMP JUMPDEST PUSH2 0x2515 PUSH2 0x4779 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3F9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3FA9 DUP9 DUP3 PUSH2 0x5A5D JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x3FCC DUP9 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3FDE DUP8 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3FFD DUP7 PUSH2 0x2D7B JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4011 PUSH1 0x2 DUP7 PUSH2 0x395F JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4026 PUSH0 DUP6 PUSH2 0x395F JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x14F3 PUSH2 0x43CF JUMP JUMPDEST PUSH2 0x41B8 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x41D0 SWAP1 PUSH2 0x41C9 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x41E2 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x420C JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x4204 SWAP1 DUP4 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x4213 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x4223 SWAP1 DUP7 SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x4239 SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x426E JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x4255 SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x4266 SWAP2 SWAP1 PUSH2 0x5422 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x4275 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x42B2 PUSH4 0x1E13380 PUSH2 0x4287 DUP5 DUP7 PUSH2 0x5600 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x429D SWAP2 SWAP1 PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x42A7 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x42F4 PUSH4 0x1E13380 PUSH2 0x42C9 DUP5 DUP7 PUSH2 0x5600 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x42DF SWAP2 SWAP1 PUSH2 0x5944 JUMP JUMPDEST PUSH2 0x42E9 SWAP2 SWAP1 PUSH2 0x57C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x47A7 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x430B SWAP2 PUSH2 0x5532 JUMP JUMPDEST SWAP1 POP PUSH2 0x4324 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x47A7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x4334 SWAP2 PUSH2 0x47A7 JUMP JUMPDEST PUSH2 0x433E SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x4352 SWAP2 PUSH2 0x5532 JUMP JUMPDEST PUSH2 0x435C SWAP2 SWAP1 PUSH2 0x5532 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x43DA PUSH2 0x1736 JUMP JUMPDEST LT ISZERO PUSH2 0x43F9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4422 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2515 PUSH1 0xFC PUSH2 0x2D94 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4492 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44B6 SWAP2 SWAP1 PUSH2 0x52FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44E6 DUP2 PUSH2 0x3C56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1F00 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B64 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x47DD JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x454D DUP4 PUSH2 0x4851 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456C JUMPI PUSH2 0x456C PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4596 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x45A0 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x45ED PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x5532 JUMP JUMPDEST SWAP1 POP PUSH2 0x45FB DUP8 DUP3 DUP9 DUP6 PUSH2 0x4928 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x461D JUMPI PUSH2 0x461D PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x4625 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x4639 JUMPI PUSH2 0x4639 PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x4686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x469A JUMPI PUSH2 0x469A PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x46E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x46FB JUMPI PUSH2 0x46FB PUSH2 0x551E JUMP JUMPDEST SUB PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8C0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x479F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH2 0x2515 PUSH2 0x49E5 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x47C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x47F9 SWAP2 SWAP1 PUSH2 0x5B18 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4831 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4836 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4847 DUP7 DUP4 DUP4 DUP8 PUSH2 0x4A17 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x488F JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x48BB JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x48D9 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x48F1 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4905 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4917 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x639 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x495D JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x49DC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49AE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x49D6 JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x49DC JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP1 PUSH2 0x57D7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A85 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4A7E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4A7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8C0 JUMP JUMPDEST POP DUP2 PUSH2 0x176D JUMP JUMPDEST PUSH2 0x176D DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x4A9A JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C0 SWAP2 SWAP1 PUSH2 0x4B89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BCE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x95B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BF9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F00 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C15 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4C67 JUMPI PUSH2 0x4C67 PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1F0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x140 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4CAA PUSH2 0x4C43 JUMP JUMPDEST SWAP1 POP PUSH2 0x4CB5 DUP3 PUSH2 0x4C6D JUMP JUMPDEST DUP2 MSTORE PUSH2 0x4CC3 PUSH1 0x20 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x4CD4 PUSH1 0x40 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4CE5 PUSH1 0x60 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x4CF6 PUSH1 0x80 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x4D07 PUSH1 0xA0 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x4D18 PUSH1 0xC0 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x4D29 PUSH1 0xE0 DUP4 ADD PUSH2 0x4C7E JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x4D3B PUSH2 0x100 DUP4 ADD PUSH2 0x4C7E JUMP JUMPDEST PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x4D4E PUSH2 0x120 DUP4 ADD PUSH2 0x4C6D JUMP JUMPDEST PUSH2 0x120 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x400 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4D74 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4D7E DUP13 DUP13 PUSH2 0x4C04 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x4DA5 PUSH2 0x220 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x4DBD DUP13 PUSH2 0x260 DUP14 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP4 POP PUSH2 0x3A0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x3C0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x3E0 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4E07 JUMPI PUSH2 0x4E07 PUSH2 0x4C2F JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4E36 JUMPI PUSH2 0x4E36 PUSH2 0x4C2F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x4E4D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E75 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E80 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4E9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4EAB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EBA DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4DED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0x4ED7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x4EEC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4F10 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4F26 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x4F36 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4F45 DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4DED JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x4F79 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4FA3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x4FC1 PUSH1 0x60 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x4FD1 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x120 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x500F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5019 DUP5 DUP5 PUSH2 0x4C04 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x2E0 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x5042 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x504C DUP13 DUP13 PUSH2 0x4C04 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x5073 PUSH2 0x220 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x260 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH2 0x280 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x2A0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x2C0 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x50B4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x50CB PUSH1 0x40 DUP6 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x50EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x510C PUSH1 0x60 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x511C DUP2 PUSH2 0x4BD5 JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x5132 DUP13 PUSH1 0xC0 DUP14 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP4 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x220 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4DDC PUSH2 0x240 DUP13 ADD PUSH2 0x4C1B JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x51DB PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x51F6 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x230E PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x639 DUP3 DUP5 PUSH2 0x5151 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5233 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x524A PUSH1 0x40 DUP7 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x526B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x5279 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x1A0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x529B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x52B2 PUSH1 0x40 DUP7 ADD PUSH2 0x4C1B JUMP JUMPDEST SWAP2 POP PUSH2 0x52C1 DUP7 PUSH1 0x60 DUP8 ADD PUSH2 0x4C91 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x52E0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4C15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x530E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F00 DUP2 PUSH2 0x4BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1F0F DUP2 PUSH2 0x4BD5 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x54B8 PUSH2 0x160 DUP3 ADD PUSH2 0x5435 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x54D4 PUSH2 0x180 DUP3 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x54EE PUSH2 0x1A0 DUP3 ADD PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x5510 DUP3 DUP6 PUSH2 0x5440 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5555 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 SWAP9 SWAP1 SWAP9 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP9 MSTORE PUSH1 0x14 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x34 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x54 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xD8 SWAP1 DUP2 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x74 DUP8 ADD MSTORE PUSH1 0x79 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x99 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 SHL AND PUSH1 0xB9 DUP3 ADD MSTORE PUSH1 0xBE ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x55E2 JUMPI PUSH2 0x55E2 PUSH2 0x55C0 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1F00 DUP3 PUSH2 0x4C1B JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x5633 JUMPI PUSH2 0x5633 PUSH2 0x55C0 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x5786 DUP3 DUP8 PUSH2 0x5440 JUMP JUMPDEST PUSH2 0x5794 PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x57D2 JUMPI PUSH2 0x57D2 PUSH2 0x55C0 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5832 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4602 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x587A JUMPI PUSH2 0x587A PUSH2 0x540E JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x5888 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x585F JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x58A4 JUMPI POP PUSH1 0x1 PUSH2 0x639 JUMP JUMPDEST DUP2 PUSH2 0x58B0 JUMPI POP PUSH0 PUSH2 0x639 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x58C6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x58D0 JUMPI PUSH2 0x58EC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x639 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x58E1 JUMPI PUSH2 0x58E1 PUSH2 0x540E JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x639 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x590F JUMPI POP DUP2 DUP2 EXP PUSH2 0x639 JUMP JUMPDEST PUSH2 0x591B PUSH0 NOT DUP5 DUP5 PUSH2 0x585B JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x592E JUMPI PUSH2 0x592E PUSH2 0x540E JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x5896 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x639 JUMPI PUSH2 0x639 PUSH2 0x540E JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x596A DUP3 DUP8 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F00 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0x176D PUSH2 0x5A0C PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x59C1 JUMP JUMPDEST DUP5 PUSH2 0x59C1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x230E JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5A37 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A56 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5A43 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A77 JUMPI PUSH2 0x5A77 PUSH2 0x4C2F JUMP JUMPDEST PUSH2 0x5A8B DUP2 PUSH2 0x5A85 DUP5 SLOAD PUSH2 0x52CC JUMP JUMPDEST DUP5 PUSH2 0x5A12 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5ABD JUMPI PUSH0 DUP4 ISZERO PUSH2 0x5AA6 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x5A56 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5AEC JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5ACC JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x5B09 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1F00 DUP3 DUP5 PUSH2 0x59C1 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220833BF3 PUSH6 0x115B989C3447 SWAP14 SWAP3 PUSH11 0x84A113FDC952FE9A5442A8 0xC9 0xFB STOP 0xB6 PC 0xD1 0xB5 0xEB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"748:7269:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:193:60;;;;;;;;;;-1:-1:-1;5376:193:60;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5376:193:60;;;;;;;;6900:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10491:286:61:-;;;;;;;;;;-1:-1:-1;10491:286:61;;;;;:::i;:::-;;:::i;:::-;;3408:195:7;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;3916:102:57:-;;;;;;;;;;;;;:::i;6236:807:52:-;;;;;;;;;;-1:-1:-1;6236:807:52;;;;;:::i;:::-;;:::i;:::-;;;4854:25:88;;;4842:2;4827:18;6236:807:52;4708:177:88;4022:94:57;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;5197:32:88;;;5179:51;;5167:2;5152:18;4022:94:57;5012:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;8309:82:60:-;;;;;;;;;;-1:-1:-1;8379:7:60;;-1:-1:-1;;;;;8379:7:60;8309:82;;3027:131:7;;;;;;;;;;;;;:::i;9445:823:61:-;;;;;;;;;;-1:-1:-1;9445:823:61;;;;;:::i;:::-;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;16309:342:60;;;;;;;;;;-1:-1:-1;16309:342:60;;;;;:::i;:::-;;:::i;8104:99::-;;;;;;;;;;-1:-1:-1;8179:7:60;:19;-1:-1:-1;;;8179:19:60;;;;8104:99;;2905:335:61;;;;;;;;;;-1:-1:-1;2905:335:61;;;;;:::i;:::-;;:::i;16655:111:60:-;;;;;;;;;;-1:-1:-1;16745:16:60;16655:111;;6205:664:61;;;;;;;;;;-1:-1:-1;6205:664:61;;;;;:::i;:::-;;:::i;8952:194::-;;;;;;;;;;-1:-1:-1;8952:194:61;;;;;:::i;:::-;;:::i;8207:98:60:-;;;;;;;;;;-1:-1:-1;8285:15:60;;8207:98;;8162:786:61;;;;;;;;;;-1:-1:-1;8162:786:61;;;;;:::i;:::-;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;7982:118:60:-;;;;;;;;;;;;;:::i;10804:235::-;;;;;;;;;;-1:-1:-1;10804:235:60;;;;;:::i;:::-;;:::i;4106:867:52:-;;;;;;;;;;-1:-1:-1;4106:867:52;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11598:280:61:-;;;;;;;;;;-1:-1:-1;11598:280:61;;;;;:::i;:::-;;:::i;8395:1423:60:-;;;;;;;;;;-1:-1:-1;8395:1423:60;;;;;:::i;:::-;;:::i;10940:327:61:-;;;;;;;;;;-1:-1:-1;10940:327:61;;;;;:::i;:::-;;:::i;:::-;;;;;;15757:4:88;15799:3;15788:9;15784:19;15776:27;;15836:6;15830:13;15819:9;15812:32;15900:4;15892:6;15888:17;15882:24;15875:4;15864:9;15860:20;15853:54;15963:4;15955:6;15951:17;15945:24;15938:4;15927:9;15923:20;15916:54;16026:4;16018:6;16014:17;16008:24;16001:4;15990:9;15986:20;15979:54;16089:4;16081:6;16077:17;16071:24;16064:4;16053:9;16049:20;16042:54;16152:4;16144:6;16140:17;16134:24;16127:4;16116:9;16112:20;16105:54;16215:4;16207:6;16203:17;16197:24;16190:4;16179:9;16175:20;16168:54;15615:613;;;;;7446:290:52;;;;;;;;;;-1:-1:-1;7446:290:52;;;;;:::i;:::-;;:::i;7850:128:60:-;;;;;;;;;;;;;:::i;9822:115::-;;;;;;;;;;;;;:::i;10529:271::-;;;;;;;;;;-1:-1:-1;10529:271:60;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;5376:193:60:-;5461:4;5480:36;5504:11;5480:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;5520:44:60;;-1:-1:-1;;;5520:44:60;5480:84;5473:91;5376:193;-1:-1:-1;;5376:193:60:o;6900:84::-;6946:13;6974:5;6967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:84;:::o;10491:286:61:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:8:61::1;10615:1;10603:13:::0;10599:46:::1;;10625:20;;-1:-1:-1::0;;;10625:20:61::1;;;;;;;;;;;10599:46;10655:18;::::0;;;:8:::1;:18;::::0;;;;:22;::::1;;:27:::0;;10651:56:::1;;10691:16;;-1:-1:-1::0;;;10691:16:61::1;;;;;;;;;;;10651:56;10720:18;::::0;;;:8:::1;:18;::::0;;;;;10713:25;;-1:-1:-1;;;;;;10713:25:61;;;10749:23;10729:8;;10749:23:::1;::::0;::::1;10491:286:::0;;;:::o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;6236:807:52:-;6609:7;1503:19:8;:17;:19::i;:::-;1046:26:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6624:190:52::2;6651:6;6665:7;6680:8;6696:10;6714;6732:6;6746:15;6769:16;6793:15;6624:19;:190::i;:::-;6833:202;6857:9:::0;6876:6;6892:7;6909:8;6927:10;965::14;6969:27:52::2;6985:10;6969:15;:27::i;:::-;7006:21;7020:6;7006:13;:21::i;:::-;6833:14;:202::i;:::-;:205:::0;;6236:807;-1:-1:-1;;;;;;;;;;;;6236:807:52:o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;19695:2:88;2174:92:7;;;19677:21:88;19734:2;19714:18;;;19707:30;19773:34;19753:18;;;19746:62;19844:26;19824:18;;;19817:54;19888:19;;2174:92:7;19493:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;9445:823:61:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:8:61::1;9609:1;9597:13:::0;9593:46:::1;;9619:20;;-1:-1:-1::0;;;9619:20:61::1;;;;;;;;;;;9593:46;9666:511;;;;;;;;9692:20;9700:7;:11;;;9692:7;:20::i;:::-;9666:511;;;;;;9733:28;9741:7;:19;;;9733:7;:28::i;:::-;9666:511;;;;;;9780:26;9788:7;:17;;;9780:7;:26::i;:::-;9666:511;;;;;;9827:28;9835:7;:19;;;9827:7;:28::i;:::-;9666:511;;;;;;9877:29;9885:7;:20;;;9877:7;:29::i;:::-;9666:511;;;;;;9921:22;9929:7;:13;;;9921:7;:22::i;:::-;9666:511;;;;;;9958:22;9966:7;:13;;;9958:7;:22::i;:::-;9666:511;::::0;;::::1;::::0;;10008:16:::1;9666:511;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;9645:18:61;;;:8:::1;:18:::0;;;;;:532;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;9645:532:61;;::::1;::::0;::::1;-1:-1:-1::0;;9645:532:61;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;10183:41:::1;::::0;:21:::1;:41::i;:::-;10235:28;::::0;;20149:20:88;;20178:24;;20272:4;20260:17;;;20247:31;20294:20;;;20287:37;20382:17;;;20369:31;20416:20;;;20409:37;20516:4;20504:17;;;20491:31;20538:20;;;20531:37;20638:4;20626:17;;;20613:31;20660:20;;;20653:37;20760:4;20748:17;;;20735:31;20782:20;;;20775:37;20882:4;20870:17;;;20857:31;20904:20;;;20897:37;10235:28:61;;10245:8;;10235:28:::1;::::0;;;;;20104:3:88;10235:28:61;;::::1;9445:823:::0;;;;:::o;16309:342:60:-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;16640:6:60::1;16621:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16309:342:60:o;2905:335:61:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;21412:2:88;3325:201:6;;;21394:21:88;21451:2;21431:18;;;21424:30;21490:34;21470:18;;;21463:62;-1:-1:-1;;;21541:18:88;;;21534:44;21595:19;;3325:201:6;21210:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;3131:104:61::1;3149:5;3156:10;3168:12;3182:6;3190:19;3211:14;3227:7;3131:17;:104::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;21777:36:88;;3721:14:6;;21765:2:88;21750:18;3721:14:6;;;;;;;3647:99;3269:483;2905:335:61;;;;;;;:::o;6205:664::-;6542:7;1503:19:8;:17;:19::i;:::-;968:32:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6557:188:61::2;6580:6;6594:7;6609:8;6625:10;6643;6661:8;6677:15;6700:16;6724:15;6557;:188::i;:::-;6758:103;6775:6:::0;6783:7;6792:8;6802:10;6814;6826:8;965:10:14;6850::61::2;6758:16;:103::i;8952:194::-:0;1186:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;9100:41:61::2;::::0;-1:-1:-1;;;9100:41:61;;-1:-1:-1;;;;;9100:11:61::2;:25;::::0;::::2;::::0;:41:::2;::::0;9126:6;;9134;;9100:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8952:194:::0;;;:::o;8162:786::-;8515:7;1503:19:8;:17;:19::i;:::-;1046:26:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8530:188:61::2;8553:6;8567:7;8582:8;8598:10;8616;8634:8;8650:15;8673:16;8697:15;8530;:188::i;:::-;8737:203;8761:9:::0;8780:6;8796:7;8813:8;8831:10;965::14;8873:27:61::2;8889:10;8873:15;:27::i;:::-;8910:22;8923:8;8910:12;:22::i;3828:84:57:-:0;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;7982:118:60:-:0;8073:7;:21;8037:7;;8059:36;;8037:7;;-1:-1:-1;;;8073:21:60;;;;8059:10;:36::i;:::-;8052:43;;7982:118;:::o;10804:235::-;10929:7;10951:83;10970:6;10978:8;10988:10;11007:15;11025:8;:6;:8::i;:::-;10951:18;:83::i;:::-;10944:90;10804:235;-1:-1:-1;;;;10804:235:60:o;4106:867:52:-;4463:38;;:::i;:::-;1503:19:8;:17;:19::i;:::-;968:32:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4509:190:52::2;4536:6;4550:7;4565:8;4581:10;4599;4617:6;4631:15;4654:16;4678:15;4509:19;:190::i;:::-;4721:191;4749:6:::0;4763:7;4778:8;4794:10;965::14;4832::52::2;4850:27;4866:10;4850:15;:27::i;:::-;4885:21;4899:6;4885:13;:21::i;:::-;4721:20;:191::i;:::-;4939:16:::0;;4923:45:::2;::::0;4854:25:88;;;4705:207:52;;-1:-1:-1;4939:16:52;4923:45:::2;::::0;4842:2:88;4827:18;4923:45:52::2;;;;;;;1532:1:8::1;4106:867:52::0;;;;;;;;;;;;:::o;11598:280:61:-;11754:7;11776:97;11795:6;11803:8;11813:10;11832:15;11850:22;11863:8;11850:12;:22::i;11776:97::-;11769:104;11598:280;-1:-1:-1;;;;;11598:280:61:o;8395:1423:60:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8529:13:60::1;::::0;-1:-1:-1;8520:22:60::1;::::0;-1:-1:-1;;8520:22:60;::::1;:5;:22;;;;;;;;:::i;:::-;::::0;8516:1146:::1;;8566:17;8574:8;8566:7;:17::i;:::-;8552:7;:31:::0;;-1:-1:-1;;8552:31:60::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8516:1146:::1;;;8609:21;8600:5;:30;;;;;;;;:::i;:::-;::::0;8596:1066:::1;;8662:17;8670:8;8662:7;:17::i;:::-;8640:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8640:39:60;;::::1;::::0;;;::::1;::::0;;8596:1066:::1;;;8705:19;8696:5;:28;;;;;;;;:::i;:::-;::::0;8692:970:::1;;8754:17;8762:8;8754:7;:17::i;:::-;8734:7;:37:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8734:37:60::1;-1:-1:-1::0;;8734:37:60;;::::1;::::0;;;::::1;::::0;;8692:970:::1;;;8797:21;8788:5;:30;;;;;;;;:::i;:::-;::::0;8784:878:::1;;8850:17;8858:8;8850:7;:17::i;:::-;8828:7;:39:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8828:39:60::1;-1:-1:-1::0;;;;8828:39:60;;::::1;::::0;;;::::1;::::0;;8784:878:::1;;;8893:22;8884:5;:31;;;;;;;;:::i;:::-;::::0;8880:782:::1;;8948:17;8956:8;8948:7;:17::i;:::-;8925:7;:40:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8925:40:60::1;-1:-1:-1::0;;8925:40:60;;::::1;::::0;;;::::1;::::0;;8880:782:::1;;;8991:15;8982:5;:24;;;;;;;;:::i;:::-;::::0;8978:684:::1;;9032:17;9040:8;9032:7;:17::i;:::-;9016:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9016:33:60::1;-1:-1:-1::0;;;;9016:33:60;;::::1;::::0;;;::::1;::::0;;8978:684:::1;;;9075:15;9066:5;:24;;;;;;;;:::i;:::-;::::0;9062:600:::1;;9116:17;9124:8;9116:7;:17::i;:::-;9100:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9100:33:60::1;-1:-1:-1::0;;;;9100:33:60;;::::1;::::0;;;::::1;::::0;;9062:600:::1;;;9159:28;9150:5;:37;;;;;;;;:::i;:::-;::::0;9146:516:::1;;9226:23;9237:1;9240:8;9226:10;:23::i;:::-;9197:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9197:52:60::1;-1:-1:-1::0;;;;9197:52:60;;::::1;::::0;;;::::1;::::0;;9146:516:::1;;;9275:23;9266:5;:32;;;;;;;;:::i;:::-;::::0;9262:400:::1;;9328:15;;9316:8;:27;;9308:89;;;::::0;-1:-1:-1;;;9308:89:60;;24400:2:88;9308:89:60::1;::::0;::::1;24382:21:88::0;24439:2;24419:18;;;24412:30;24478:34;24458:18;;;24451:62;-1:-1:-1;;;24529:18:88;;;24522:47;24586:19;;9308:89:60::1;24198:413:88::0;9308:89:60::1;9425:15;:13;:15::i;:::-;9413:8;:27;;:55;;;;9444:24;-1:-1:-1::0;;;;;;;;;;;9444:11:60::1;:24::i;:::-;9405:97;;;::::0;-1:-1:-1;;;9405:97:60;;24818:2:88;9405:97:60::1;::::0;::::1;24800:21:88::0;24857:2;24837:18;;;24830:30;24896:31;24876:18;;;24869:59;24945:18;;9405:97:60::1;24616:353:88::0;9405:97:60::1;9534:23;9545:1;9548:8;9534:10;:23::i;:::-;9510:7;:47:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9510:47:60::1;-1:-1:-1::0;;;;9510:47:60;;::::1;::::0;;;::::1;::::0;;9262:400:::1;;;9583:21;9574:5;:30;;;;;;;;:::i;:::-;::::0;9570:92:::1;;9636:19;:8;:17;:19::i;:::-;9614:7;:41:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9614:41:60::1;-1:-1:-1::0;;;;9614:41:60;;::::1;::::0;;;::::1;::::0;;9570:92:::1;9667:146;9784:5;9776:14;;;;;;;;:::i;:::-;9725:65;::::0;9733:39:::1;9725:65;:::i;:::-;9692:99;;;;;;;;:::i;:::-;9799:8;9667:17;:146::i;:::-;8395:1423:::0;;;;:::o;10940:327:61:-;11001:21;;:::i;:::-;11034:13;;11030:233;;11057:34;11094:18;;;:8;:18;;;;;11124:17;;11094:18;;11124:17;;;;:22;;11120:51;;11155:16;;-1:-1:-1;;;11155:16:61;;;;;;;;;;;11120:51;11189:28;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;;;:13;:28::i;:::-;11179:38;10940:327;-1:-1:-1;;;10940:327:61:o;11030:233::-;11248:8;:6;:8::i;11030:233::-;10940:327;;;:::o;7446:290:52:-;7613:7;7635:96;7654:6;7662:8;7672:10;7691:15;7709:21;7723:6;7709:13;:21::i;7850:128:60:-;7946:7;:26;7910:7;;7932:41;;7943:1;;-1:-1:-1;;;7946:26:60;;;;7932:10;:41::i;9822:115::-;9878:17;;:::i;:::-;9910:22;;;;;;;;9924:7;9910:22;;;;;;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;:13;:22::i;10529:271::-;1411:29;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;10620:21:60;::::1;::::0;-1:-1:-1;10616:63:60::1;;10658:14;;-1:-1:-1::0;;;10658:14:60::1;;;;;;;;;;;10616:63;10684:7;:17:::0;;-1:-1:-1;;;;;;10684:17:60::1;-1:-1:-1::0;;;;;10684:17:60;::::1;::::0;;::::1;::::0;;;10707:88:::1;::::0;10725:42:::1;::::0;10707:17:::1;:88::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3618:206::-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;3206:169::-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;:::-;3206:169:::0;;;:::o;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;25774:2:88;3631:56:4;;;25756:21:88;25813:2;25793:18;;;25786:30;25852:34;25832:18;;;25825:62;-1:-1:-1;;;25903:18:88;;;25896:44;25957:19;;3631:56:4;25572:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;26189:2:88;3509:82:4;;;26171:21:88;26228:2;26208:18;;;26201:30;26267:34;26247:18;;;26240:62;-1:-1:-1;;;26318:18:88;;;26311:39;26367:19;;3509:82:4;25987:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;5197:32:88;;;5179:51;;5167:2;5152:18;2785:22:8::1;;;;;;;2697:117::o:0;2031:106::-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;26599:2:88;2092:38:8;;;26581:21:88;26638:2;26618:18;;;26611:30;-1:-1:-1;;;26657:18:88;;;26650:46;26713:18;;2092:38:8;26397:340:88;2092:38:8;2031:106::o;1551:1351:52:-;1855:15;1837;:33;;;1833:60;;;1879:14;;-1:-1:-1;;;1879:14:52;;;;;;;;;;;1833:60;2463:17;2483:239;2553:4;2568:6;2584:7;2601:8;2619:10;2639;2659:24;2676:6;1173:7;1538:3;1513:14;:20;;;1505:29;;:36;;1491:3;1466:14;:20;;;1458:29;;:36;;1444:3;1412:14;:27;;;1404:36;;:43;;1390:3;1359:14;:26;;;1351:35;;:42;;1337:3;1308:14;:24;;;1300:33;;:40;;1286:3;1255:14;:26;;;1247:35;;:42;;1233:3;1210:14;:18;;;1202:27;;:34;;1201:89;:140;:193;:247;:294;:341;1188:354;;1088:459;;;;2659:24;2693:15;2519:197;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2483:28;:239::i;:::-;2463:259;;2728:14;2745:59;2759:9;2770:15;2787:16;2745:13;:59::i;:::-;2728:76;;2810:11;-1:-1:-1;;;;;2810:18:52;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2810:39:52;;2858:4;859:29;2883:6;2891:5;2810:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1827:1075;;1551:1351;;;;;;;;;:::o;10394:131:60:-;10462:6;10490:29;-1:-1:-1;;;10498:10:60;10490:29;:::i;9941:449::-;10016:17;;:::i;:::-;10054:331;;;;;;;;10076:20;10084:7;:11;;;10076:7;:20::i;:::-;10054:331;;;;10119:28;10127:7;:19;;;10119:7;:28::i;:::-;10054:331;;;;10168:26;10176:7;:17;;;10168:7;:26::i;:::-;10054:331;;;;10217:28;10225:7;:19;;;10217:7;:28::i;:::-;10054:331;;;;10269:29;10277:7;:20;;;10269:7;:29::i;:::-;10054:331;;;;10315:22;10323:7;:13;;;10315:7;:22::i;:::-;10054:331;;;;10354:22;10362:7;:13;;;10354:7;:22::i;:::-;10054:331;;10041:344;9941:449;-1:-1:-1;;9941:449:60:o;14606:1699::-;14857:31;;:::i;:::-;-1:-1:-1;;14900:7:60;:28;14896:133;;14948:74;14967:6;14975:8;14985:10;14997:15;;;;;;;;:::i;:::-;15014:7;14948:18;:74::i;:::-;14938:84;;14896:133;15052:6;15042:7;:16;15034:61;;;;-1:-1:-1;;;15034:61:60;;28150:2:88;15034:61:60;;;28132:21:88;;;28169:18;;;28162:30;28228:34;28208:18;;;28201:62;28280:18;;15034:61:60;27948:356:88;15034:61:60;15109:46;15139:15;15109:46;:20;;;;;;;;:::i;:::-;:46;;;15101:80;;;;-1:-1:-1;;;15101:80:60;;28511:2:88;15101:80:60;;;28493:21:88;28550:2;28530:18;;;28523:30;-1:-1:-1;;;28569:18:88;;;28562:51;28630:18;;15101:80:60;28309:345:88;15101:80:60;15216:20;;;;;;;;:::i;:::-;15202:34;;:10;:34;;;;:64;;;;;15250:9;:16;;;15240:6;:26;;15202:64;:96;;;;;15281:9;:17;;;15270:7;:28;;15202:96;15187:186;;;;-1:-1:-1;;;15187:186:60;;28861:2:88;15187:186:60;;;28843:21:88;28900:2;28880:18;;;28873:30;28939:34;28919:18;;;28912:62;29010:29;28990:18;;;28983:57;29057:19;;15187:186:60;28659:423:88;15187:186:60;15429:7;:19;-1:-1:-1;;;15429:19:60;;;;15421:4;15402:15;;;;;;;;:::i;:::-;15389:28;;:10;:28;:::i;:::-;15388:37;;;;:::i;:::-;15387:61;;;15379:101;;;;-1:-1:-1;;;15379:101:60;;29657:2:88;15379:101:60;;;29639:21:88;29696:2;29676:18;;;29669:30;29735:29;29715:18;;;29708:57;29782:18;;15379:101:60;29455:351:88;15379:101:60;15567:27;15577:17;;;;15567:7;:27;:::i;:::-;15501:11;-1:-1:-1;;;;;15501:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;15501:61:60;;-1:-1:-1;;;;;30003:32:88;;;15501:61:60;;;29985:51:88;15549:11:60;30072:32:88;;30052:18;;;30045:60;15501:32:60;;;;;;;29958:18:88;;15501:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;15486:170;;;;-1:-1:-1;;;15486:170:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;15677:21:60;;965:10:14;15677:21:60;;:111;;-1:-1:-1;15760:27:60;15770:17;;;;15760:7;:27;:::i;:::-;15702:11;-1:-1:-1;;;;;15702:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15702:32:60;;15735:5;965:10:14;15702:53:60;;-1:-1:-1;;;;;;15702:53:60;;;;;;;-1:-1:-1;;;;;30003:32:88;;;15702:53:60;;;29985:51:88;30072:32;;30052:18;;;30045:60;29958:18;;15702:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;15677:111;15662:189;;;;-1:-1:-1;;;15662:189:60;;;;;;;:::i;:::-;15875:20;:18;:20::i;:::-;15865:6;:30;;15857:93;;;;-1:-1:-1;;;15857:93:60;;;;;;;:::i;:::-;15965:88;15983:4;15989:7;15998;16007:6;16015:8;16025:10;16037:9;:15;;;;;;;;;;:::i;:::-;15965:17;:88::i;:::-;15956:97;;16095:9;:16;;;16079:6;:13;;;:32;;;;:::i;:::-;16060:15;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;16144:15:60;;-1:-1:-1;16144:13:60;:15::i;:::-;16125;;:34;;16117:82;;;;-1:-1:-1;;;16117:82:60;;;;;;;:::i;:::-;16218:63;;-1:-1:-1;;;16218:63:60;;-1:-1:-1;;;;;16218:11:60;:25;;;;:63;;16244:9;;16255:6;;16263:5;;16270:10;;16218:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:75;;14606:1699;;;;;;;;;;:::o;7199:146::-;7254:6;7300:40;7301:27;1140:4;7301:5;:27;:::i;:::-;7300:38;:40::i;5942:954::-;6031:19;;1191:3;6031:19;;;;:38;:19;:38;;6023:86;;;;-1:-1:-1;;;6023:86:60;;32912:2:88;6023:86:60;;;32894:21:88;32951:2;32931:18;;;32924:30;32990:34;32970:18;;;32963:62;-1:-1:-1;;;33041:18:88;;;33034:33;33084:19;;6023:86:60;32710:399:88;6023:86:60;6123:17;;1191:3;-1:-1:-1;;;6123:17:60;;;:36;:17;:36;;;;:61;;-1:-1:-1;6163:17:60;;-1:-1:-1;;;6163:17:60;;;;:21;;6123:61;6115:107;;;;-1:-1:-1;;;6115:107:60;;33316:2:88;6115:107:60;;;33298:21:88;33355:2;33335:18;;;33328:30;33394:34;33374:18;;;33367:62;-1:-1:-1;;;33445:18:88;;;33438:31;33486:19;;6115:107:60;33114:397:88;6115:107:60;6257:19;;;;;;;;-1:-1:-1;;;6236:17:60;;;;:40;;6228:89;;;;-1:-1:-1;;;6228:89:60;;33718:2:88;6228:89:60;;;33700:21:88;33757:2;33737:18;;;33730:30;33796:34;33776:18;;;33769:62;-1:-1:-1;;;33847:18:88;;;33840:34;33891:19;;6228:89:60;33516:400:88;6228:89:60;6331:11;;1282:3;6331:22;:11;;;:22;;;;:48;;-1:-1:-1;6357:11:60;;1233:3;6357:22;:11;;;:22;;6331:48;6323:93;;;;-1:-1:-1;;;6323:93:60;;34123:2:88;6323:93:60;;;34105:21:88;;;34142:18;;;34135:30;34201:34;34181:18;;;34174:62;34253:18;;6323:93:60;33921:356:88;6323:93:60;6430:19;;1191:3;-1:-1:-1;;;6430:19:60;;;:38;:19;:38;;6422:87;;;;-1:-1:-1;;;6422:87:60;;34484:2:88;6422:87:60;;;34466:21:88;34523:2;34503:18;;;34496:30;34562:34;34542:18;;;34535:62;-1:-1:-1;;;34613:18:88;;;34606:34;34657:19;;6422:87:60;34282:400:88;6422:87:60;6523:20;;1191:3;-1:-1:-1;;;6523:20:60;;;:39;:20;:39;;6515:89;;;;-1:-1:-1;;;6515:89:60;;34889:2:88;6515:89:60;;;34871:21:88;34928:2;34908:18;;;34901:30;34967:34;34947:18;;;34940:62;-1:-1:-1;;;35018:18:88;;;35011:35;35063:19;;6515:89:60;34687:401:88;6515:89:60;6618:13;;1191:3;-1:-1:-1;;;6618:13:60;;;:32;:13;:32;;6610:82;;;;-1:-1:-1;;;6610:82:60;;35295:2:88;6610:82:60;;;35277:21:88;35334:2;35314:18;;;35307:30;35373:34;35353:18;;;35346:62;-1:-1:-1;;;35424:18:88;;;35417:35;35469:19;;6610:82:60;35093:401:88;6610:82:60;6706:13;;1191:3;-1:-1:-1;;;6706:13:60;;;:32;:13;:32;;6698:82;;;;-1:-1:-1;;;6698:82:60;;35701:2:88;6698:82:60;;;35683:21:88;35740:2;35720:18;;;35713:30;35779:34;35759:18;;;35752:62;-1:-1:-1;;;35830:18:88;;;35823:35;35875:19;;6698:82:60;35499:401:88;6698:82:60;6794:21;;-1:-1:-1;;;6794:21:60;;;;:25;;;;:59;;-1:-1:-1;6823:26:60;;-1:-1:-1;;;6823:26:60;;;;:30;;6794:59;6786:105;;;;-1:-1:-1;;;6786:105:60;;36107:2:88;6786:105:60;;;36089:21:88;36146:2;36126:18;;;36119:30;36185:34;36165:18;;;36158:62;-1:-1:-1;;;36236:18:88;;;36229:31;36277:19;;6786:105:60;35905:397:88;3858:393:60;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4098:28:60::1;:26;:28::i;:::-;4132:114;4160:5;4167:10;4179:12;4193:6;4201:19;4222:14;4238:7;4132:27;:114::i;3244:1207:61:-:0;3534:15;3516;:33;;;3512:60;;;3558:14;;-1:-1:-1;;;3558:14:61;;;;;;;;;;;3512:60;4105:17;4125:151;4186:4;4193:6;4201:7;4210:8;4220:10;4232;4244:8;4254:15;4161:109;;;;;;;;;;;;;;;:::i;4125:151::-;4105:171;;4282:14;4299:59;4313:9;4324:15;4341:16;4299:13;:59::i;:::-;4282:76;;4364:11;-1:-1:-1;;;;;4364:18:61;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4364:39:61;;4412:4;1116:24;4432:6;4440:5;4364:82;;;;;;;;;;;;;;;;;;:::i;4455:557::-;4678:38;;:::i;:::-;4740:185;4768:6;4782:7;4797:8;4813:10;4831:5;4844:10;4862:27;4878:10;4862:15;:27::i;:::-;4897:22;4910:8;4897:12;:22::i;4740:185::-;4952:16;;4936:45;;4854:25:88;;;4724:201:61;;-1:-1:-1;4952:16:61;4936:45;;4842:2:88;4827:18;4936:45:61;;;;;;;4455:557;;;;;;;;;;:::o;2450:115:8:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;7400:209:60;7473:7;7595:8;7571:10;:8;:10::i;:::-;-1:-1:-1;;;;;7571:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7564:40;;:2;:40;:::i;:::-;7547:57;;:14;;;:57;:::i;11043:263::-;11202:7;11224:64;11249:1;11252:6;11260:8;11270:10;11282:5;11224:24;:64::i;:::-;:77;;;;11043:263;-1:-1:-1;;;;;;11043:263:60:o;12439:1484::-;12670:31;;:::i;:::-;12730:15;12756:28;;;12752:122;;12804:63;12823:6;12831:8;12841:10;12853:4;12859:7;12804:18;:63::i;:::-;12794:73;;12752:122;12897:6;12887:7;:16;12879:61;;;;-1:-1:-1;;;12879:61:60;;28150:2:88;12879:61:60;;;28132:21:88;;;28169:18;;;28162:30;28228:34;28208:18;;;28201:62;28280:18;;12879:61:60;27948:356:88;12879:61:60;12967:4;12954:17;;:10;:17;;;12946:62;;;;-1:-1:-1;;;12946:62:60;;38960:2:88;12946:62:60;;;38942:21:88;;;38979:18;;;38972:30;39038:34;39018:18;;;39011:62;39090:18;;12946:62:60;38758:356:88;12946:62:60;13053:7;:19;-1:-1:-1;;;13053:19:60;;;;13045:4;13024:17;13037:4;13024:10;:17;:::i;:::-;13023:26;;;;:::i;:::-;13022:50;;;13014:90;;;;-1:-1:-1;;;13014:90:60;;29657:2:88;13014:90:60;;;29639:21:88;29696:2;29676:18;;;29669:30;29735:29;29715:18;;;29708:57;29782:18;;13014:90:60;29455:351:88;13014:90:60;-1:-1:-1;;;;;13118:24:60;;13110:67;;;;-1:-1:-1;;;13110:67:60;;39321:2:88;13110:67:60;;;39303:21:88;39360:2;39340:18;;;39333:30;39399:32;39379:18;;;39372:60;39449:18;;13110:67:60;39119:354:88;13110:67:60;13263:7;13198:11;-1:-1:-1;;;;;13198:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;13198:61:60;;-1:-1:-1;;;;;30003:32:88;;;13198:61:60;;;29985:51:88;13246:11:60;30072:32:88;;30052:18;;;30045:60;13198:32:60;;;;;;;29958:18:88;;13198:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;13183:148;;;;-1:-1:-1;;;13183:148:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;13352:21:60;;965:10:14;13352:21:60;;:89;;;13434:7;13377:11;-1:-1:-1;;;;;13377:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:32:60;;13410:5;965:10:14;13377:53:60;;-1:-1:-1;;;;;;13377:53:60;;;;;;;-1:-1:-1;;;;;30003:32:88;;;13377:53:60;;;29985:51:88;30072:32;;30052:18;;;30045:60;29958:18;;13377:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;13352:89;13337:167;;;;-1:-1:-1;;;13337:167:60;;;;;;;:::i;:::-;13528:20;:18;:20::i;:::-;13518:6;:30;;13510:93;;;;-1:-1:-1;;;13510:93:60;;;;;;;:::i;:::-;13618:77;13636:4;13642:7;13651;13660:6;13668:8;13678:10;13690:4;13618:17;:77::i;:::-;13609:86;;13720:6;:13;;;13701:15;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:15:60;;-1:-1:-1;13766:13:60;:15::i;:::-;13747;;:34;;13739:82;;;;-1:-1:-1;;;13739:82:60;;;;;;;:::i;:::-;13839:60;;-1:-1:-1;;;13839:60:60;;-1:-1:-1;;;;;13839:11:60;:21;;;;:60;;13861:6;;13869:5;;13876:10;;13888;;13839:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13827:72;;-1:-1:-1;12439:1484:60;;;;;;;;;;:::o;7613:233::-;7687:6;7780:61;7820:8;7796:10;:8;:10::i;:::-;-1:-1:-1;;;;;7796:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7789:40;;:2;:40;:::i;:::-;7781:48;;:5;:48;:::i;:::-;7780:59;:61::i;4221:160:57:-;4279:4;4298:11;-1:-1:-1;;;;;4298:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4298:37:57;;4344:4;4351;965:10:14;4371:4:57;4298:78;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;40524:2:88;16362:76:46;;;40506:21:88;40563:2;40543:18;;;40536:30;40602:34;40582:18;;;40575:62;-1:-1:-1;;;40653:18:88;;;40646:36;40699:19;;16362:76:46;40322:402:88;16362:76:46;-1:-1:-1;16462:5:46;16288:187::o;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;4854:25:88;;;5115:31:57;;4842:2:88;4827:18;5115:31:57;;;;;;;4985:166;;:::o;5037:280:60:-;5120:34;5146:7;5120:25;:34::i;:::-;5160:17;5192:7;5160:40;;5237:16;-1:-1:-1;;;;;5210:43:60;:5;-1:-1:-1;;;;;5210:21:60;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5210:43:60;;5206:107;;5270:36;;-1:-1:-1;;;5270:36:60;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;41213:2:88;1793:106:4;;;41195:21:88;41252:2;41232:18;;;41225:30;41291:34;41271:18;;;41264:62;-1:-1:-1;;;41342:18:88;;;41335:43;41395:19;;1793:106:4;41011:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;41627:2:88;2267:41:8;;;41609:21:88;41666:2;41646:18;;;41639:30;-1:-1:-1;;;41685:18:88;;;41678:50;41745:18;;2267:41:8;41425:344:88;7801:196:42;7872:7;7959:26;7976:1;:8;7959:16;:26::i;:::-;7987:1;7908:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7898:92;;;;;;7891:99;;7801:196;;;:::o;4613:222::-;4690:7;4710:17;4729:18;4751:23;4762:4;4768:1;4771:2;4751:10;:23::i;:::-;4709:65;;;;4784:18;4796:5;4784:11;:18::i;:::-;-1:-1:-1;4819:9:42;4613:222;-1:-1:-1;;;;4613:222:42:o;7039:156:60:-;7093:7;7154:36;1140:4;7154:14;;;:36;:::i;2835:1074:55:-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;42661:2:88;3089:64:55;;;42643:21:88;42700:2;42680:18;;;42673:30;42739:34;42719:18;;;42712:62;-1:-1:-1;;;42790:18:88;;;42783:32;42832:19;;3089:64:55;42459:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;43064:2:88;3746:72:55;;;43046:21:88;43103:2;43083:18;;;43076:30;43142:27;43122:18;;;43115:55;43187:18;;3746:72:55;42862:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;3080:122:57:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4306:727:60:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4556:5:60::1;:13;4564:5:::0;4556;:13:::1;:::i;:::-;-1:-1:-1::0;4585:368:60::1;::::0;;::::1;::::0;::::1;::::0;;1191:3:::1;4585:368:::0;;-1:-1:-1;4585:368:60::1;::::0;::::1;::::0;;;;4667:19:::1;4675:10:::0;4667:7:::1;:19::i;:::-;4585:368;;;;;;4707:21;4715:12;4707:7;:21::i;:::-;4585:368;;::::0;;4750:1:::1;4585:368;::::0;::::1;::::0;;;;;;;;;4782:15:::1;4790:6:::0;4782:7:::1;:15::i;:::-;4585:368;;;;;;4825:34;4836:1;4839:19;4825:10;:34::i;:::-;4585:368;;;;;;4882:29;4893:1;4896:14;4882:10;:29::i;:::-;4585:368;::::0;;::::1;::::0;;1068:4:::1;4585:368;::::0;;::::1;::::0;4575:378;;:7:::1;:378:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;4585:368:::1;4575:378:::0;;::::1;-1:-1:-1::0;;4575:378:60;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;;::::1;;;::::0;;-1:-1:-1;4959:15:60::1;:19:::0;4984:7:::1;:17:::0;;-1:-1:-1;;;;;;4984:17:60::1;-1:-1:-1::0;;;;;4984:17:60;::::1;;::::0;;5007:21:::1;:19;:21::i;1541:1290:55:-:0;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;45542:2:88;15338:76:46;;;45524:21:88;45581:2;45561:18;;;45554:30;45620:34;45600:18;;;45593:62;-1:-1:-1;;;45671:18:88;;;45664:36;45717:19;;15338:76:46;45340:402:88;5619:319:60;5746:15;;5728;:13;:15::i;:::-;:33;5724:106;;;5778:45;;-1:-1:-1;;;5778:45:60;;;;;;;;;;;5724:106;5839:7;;-1:-1:-1;;;;;5839:7:60;5835:63;;5877:14;;-1:-1:-1;;;5877:14:60;;;;;;;;;;;5835:63;5903:30;5925:7;5903:21;:30::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;447:696:41:-;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:41;-1:-1:-1;604:41:41;-1:-1:-1;765:28:41;;;781:2;765:28;820:280;-1:-1:-1;;851:5:41;-1:-1:-1;;;985:2:41;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:41;820:280;1064:21;-1:-1:-1;1120:6:41;447:696;-1:-1:-1;;;447:696:41:o;4142:306:42:-;4222:7;;-1:-1:-1;;;;;4267:80:42;;4222:7;4373:25;4389:3;4374:18;;;4396:2;4373:25;:::i;:::-;4357:42;;4416:25;4427:4;4433:1;4436;4439;4416:10;:25::i;:::-;4409:32;;;;;;4142:306;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:42;;46226:2:88;788:34:42;;;46208:21:88;46265:2;46245:18;;;46238:30;46304:26;46284:18;;;46277:54;46348:18;;788:34:42;46024:348:88;730:345:42;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:42;;46579:2:88;903:41:42;;;46561:21:88;46618:2;46598:18;;;46591:30;46657:33;46637:18;;;46630:61;46708:18;;903:41:42;46377:355:88;839:236:42;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:42;;46939:2:88;1020:44:42;;;46921:21:88;46978:2;46958:18;;;46951:30;47017:34;46997:18;;;46990:62;-1:-1:-1;;;47068:18:88;;;47061:32;47110:19;;1020:44:42;46737:398:88;2290:67:7;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;1077:319:65:-:0;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;7069:325:13:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;10139:916:45:-;10192:7;;-1:-1:-1;;;10267:17:45;;10263:103;;-1:-1:-1;;;10304:17:45;;;-1:-1:-1;10349:2:45;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:45;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:45;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:45;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:45;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:45;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:45:o;5009:1456:42:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:42;;-1:-1:-1;6123:30:42;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;47562:25:88;;;47635:4;47623:17;;47603:18;;;47596:45;;;;47657:18;;;47650:34;;;47700:18;;;47693:34;;;6276:24:42;;47534:19:88;;6276:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:42;;-1:-1:-1;;6276:24:42;;;-1:-1:-1;;;;;;;6314:20:42;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:42;;-1:-1:-1;5009:1456:42;;;;;;;;:::o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;47940:2:88;8124:60:13;;;47922:21:88;47979:2;47959:18;;;47952:30;48018:31;47998:18;;;47991:59;48067:18;;8124:60:13;47738:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:418;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;780:6;775:2;767:6;763:15;758:2;747:9;743:18;737:50;836:1;831:2;822:6;811:9;807:22;803:31;796:42;906:2;899;895:7;890:2;882:6;878:15;874:29;863:9;859:45;855:54;847:62;;;497:418;;;;:::o;920:226::-;979:6;1032:2;1020:9;1011:7;1007:23;1003:32;1000:52;;;1048:1;1045;1038:12;1000:52;-1:-1:-1;1093:23:88;;920:226;-1:-1:-1;920:226:88:o;1151:131::-;-1:-1:-1;;;;;1226:31:88;;1216:42;;1206:70;;1272:1;1269;1262:12;1287:247;1346:6;1399:2;1387:9;1378:7;1374:23;1370:32;1367:52;;;1415:1;1412;1405:12;1367:52;1454:9;1441:23;1473:31;1498:5;1473:31;:::i;1539:159::-;1602:5;1647:3;1638:6;1633:3;1629:16;1625:26;1622:46;;;1664:1;1661;1654:12;1622:46;-1:-1:-1;1686:6:88;1539:159;-1:-1:-1;1539:159:88:o;1703:165::-;1770:20;;1830:12;1819:24;;1809:35;;1799:63;;1858:1;1855;1848:12;1873:127;1934:10;1929:3;1925:20;1922:1;1915:31;1965:4;1962:1;1955:15;1989:4;1986:1;1979:15;2005:250;2072:2;2066:9;2114:6;2102:19;;2151:18;2136:34;;2172:22;;;2133:62;2130:88;;;2198:18;;:::i;:::-;2234:2;2227:22;2005:250;:::o;2260:159::-;2327:20;;2387:6;2376:18;;2366:29;;2356:57;;2409:1;2406;2399:12;2424:163;2491:20;;2551:10;2540:22;;2530:33;;2520:61;;2577:1;2574;2567:12;2592:866;2651:5;2699:6;2687:9;2682:3;2678:19;2674:32;2671:52;;;2719:1;2716;2709:12;2671:52;2741:17;;:::i;:::-;2732:26;;2781:28;2799:9;2781:28;:::i;:::-;2774:5;2767:43;2842:37;2875:2;2864:9;2860:18;2842:37;:::i;:::-;2837:2;2830:5;2826:14;2819:61;2912:37;2945:2;2934:9;2930:18;2912:37;:::i;:::-;2907:2;2900:5;2896:14;2889:61;2982:37;3015:2;3004:9;3000:18;2982:37;:::i;:::-;2977:2;2970:5;2966:14;2959:61;3053:38;3086:3;3075:9;3071:19;3053:38;:::i;:::-;3047:3;3040:5;3036:15;3029:63;3125:38;3158:3;3147:9;3143:19;3125:38;:::i;:::-;3119:3;3112:5;3108:15;3101:63;3197:38;3230:3;3219:9;3215:19;3197:38;:::i;:::-;3191:3;3184:5;3180:15;3173:63;3269:38;3302:3;3291:9;3287:19;3269:38;:::i;:::-;3263:3;3256:5;3252:15;3245:63;3341:38;3374:3;3363:9;3359:19;3341:38;:::i;:::-;3335:3;3328:5;3324:15;3317:63;3413:38;3446:3;3435:9;3431:19;3413:38;:::i;:::-;3407:3;3400:5;3396:15;3389:63;2592:866;;;;:::o;3463:1240::-;3663:6;3671;3679;3687;3695;3703;3711;3719;3727;3735;3788:4;3776:9;3767:7;3763:23;3759:34;3756:54;;;3806:1;3803;3796:12;3756:54;3829:57;3878:7;3867:9;3829:57;:::i;:::-;3819:67;-1:-1:-1;3955:3:88;3940:19;;3927:33;;-1:-1:-1;4057:3:88;4042:19;;4029:33;;-1:-1:-1;4161:3:88;4146:19;;4133:33;;-1:-1:-1;4211:38:88;4244:3;4229:19;;4211:38;:::i;:::-;4201:48;-1:-1:-1;4322:3:88;4307:19;;4294:33;;-1:-1:-1;4372:60:88;4424:7;4418:3;4403:19;;4372:60;:::i;:::-;4362:70;-1:-1:-1;4505:3:88;4490:19;;4477:33;;-1:-1:-1;4609:3:88;4594:19;;4581:33;;-1:-1:-1;4659:38:88;4692:3;4677:19;;4659:38;:::i;:::-;4649:48;;3463:1240;;;;;;;;;;;;;:::o;5241:715::-;5305:5;5337:1;5361:18;5353:6;5350:30;5347:56;;;5383:18;;:::i;:::-;-1:-1:-1;5538:2:88;5532:9;-1:-1:-1;;5451:2:88;5430:15;;5426:29;;5596:2;5584:15;5580:29;5568:42;;5661:22;;;5640:18;5625:34;;5622:62;5619:88;;;5687:18;;:::i;:::-;5723:2;5716:22;5771;;;5756:6;-1:-1:-1;5756:6:88;5808:16;;;5805:25;-1:-1:-1;5802:45:88;;;5843:1;5840;5833:12;5802:45;5893:6;5888:3;5881:4;5873:6;5869:17;5856:44;5948:1;5941:4;5932:6;5924;5920:19;5916:30;5909:41;;5241:715;;;;;:::o;5961:584::-;6038:6;6046;6099:2;6087:9;6078:7;6074:23;6070:32;6067:52;;;6115:1;6112;6105:12;6067:52;6154:9;6141:23;6173:31;6198:5;6173:31;:::i;:::-;6223:5;-1:-1:-1;6279:2:88;6264:18;;6251:32;6306:18;6295:30;;6292:50;;;6338:1;6335;6328:12;6292:50;6361:22;;6414:4;6406:13;;6402:27;-1:-1:-1;6392:55:88;;6443:1;6440;6433:12;6392:55;6466:73;6531:7;6526:2;6513:16;6508:2;6504;6500:11;6466:73;:::i;:::-;6456:83;;;5961:584;;;;;:::o;6940:384::-;7035:6;7043;7087:9;7078:7;7074:23;7117:3;7113:2;7109:12;7106:32;;;7134:1;7131;7124:12;7106:32;7179:23;;;-1:-1:-1;7260:3:88;-1:-1:-1;;7242:16:88;;7238:26;7235:46;;;7277:1;7274;7267:12;7235:46;;7315:2;7304:9;7300:18;7290:28;;6940:384;;;;;:::o;7329:1193::-;7452:6;7460;7468;7476;7484;7492;7500;7553:3;7541:9;7532:7;7528:23;7524:33;7521:53;;;7570:1;7567;7560:12;7521:53;7610:9;7597:23;7643:18;7635:6;7632:30;7629:50;;;7675:1;7672;7665:12;7629:50;7698:22;;7751:4;7743:13;;7739:27;-1:-1:-1;7729:55:88;;7780:1;7777;7770:12;7729:55;7803:75;7870:7;7865:2;7852:16;7845:4;7841:2;7837:13;7803:75;:::i;:::-;7793:85;-1:-1:-1;;7947:4:88;7932:20;;7919:34;;-1:-1:-1;8050:2:88;8035:18;;8022:32;;-1:-1:-1;8153:2:88;8138:18;;8125:32;;-1:-1:-1;8256:3:88;8241:19;;8228:33;;-1:-1:-1;8360:3:88;8345:19;;8332:33;;-1:-1:-1;8443:3:88;8428:19;;8415:33;8457;8415;8457;:::i;:::-;8509:7;8499:17;;;7329:1193;;;;;;;;;;:::o;8761:1238::-;8899:6;8907;8915;8923;8931;8939;8947;8955;8963;8971;9024:3;9012:9;9003:7;8999:23;8995:33;8992:53;;;9041:1;9038;9031:12;8992:53;9086:23;;;-1:-1:-1;9206:2:88;9191:18;;9178:32;;-1:-1:-1;9309:2:88;9294:18;;9281:32;;-1:-1:-1;9358:37:88;9391:2;9376:18;;9358:37;:::i;:::-;9348:47;;9447:3;9436:9;9432:19;9419:33;9461;9486:7;9461:33;:::i;:::-;9513:7;-1:-1:-1;9593:3:88;9578:19;;9565:33;;-1:-1:-1;9697:3:88;9682:19;;9669:33;;-1:-1:-1;9801:3:88;9786:19;;9773:33;;-1:-1:-1;9905:3:88;9890:19;;9877:33;;-1:-1:-1;9955:38:88;9988:3;9973:19;;9955:38;:::i;10004:361::-;10103:6;10111;10164:3;10152:9;10143:7;10139:23;10135:33;10132:53;;;10181:1;10178;10171:12;10132:53;10204:57;10253:7;10242:9;10204:57;:::i;:::-;10194:67;10330:3;10315:19;;;;10302:33;;-1:-1:-1;;;10004:361:88:o;10370:1233::-;10539:6;10547;10555;10563;10571;10579;10587;10595;10603;10611;10664:3;10652:9;10643:7;10639:23;10635:33;10632:53;;;10681:1;10678;10671:12;10632:53;10704:57;10753:7;10742:9;10704:57;:::i;:::-;10694:67;-1:-1:-1;10830:3:88;10815:19;;10802:33;;-1:-1:-1;10932:3:88;10917:19;;10904:33;;-1:-1:-1;11036:3:88;11021:19;;11008:33;;-1:-1:-1;11086:38:88;11119:3;11104:19;;11086:38;:::i;:::-;11076:48;-1:-1:-1;11197:3:88;11182:19;;11169:33;;-1:-1:-1;11301:3:88;11286:19;;11273:33;;-1:-1:-1;11405:3:88;11390:19;;11377:33;;-1:-1:-1;11509:3:88;11494:19;;11481:33;;-1:-1:-1;11559:38:88;11592:3;11577:19;;11559:38;:::i;11608:418::-;11684:6;11692;11700;11753:2;11741:9;11732:7;11728:23;11724:32;11721:52;;;11769:1;11766;11759:12;11721:52;11814:23;;;-1:-1:-1;11934:2:88;11919:18;;11906:32;;-1:-1:-1;11983:37:88;12016:2;12001:18;;11983:37;:::i;:::-;11973:47;;11608:418;;;;;:::o;12031:1244::-;12200:6;12208;12216;12224;12232;12240;12248;12256;12264;12272;12325:3;12313:9;12304:7;12300:23;12296:33;12293:53;;;12342:1;12339;12332:12;12293:53;12387:23;;;-1:-1:-1;12507:2:88;12492:18;;12479:32;;-1:-1:-1;12610:2:88;12595:18;;12582:32;;-1:-1:-1;12659:37:88;12692:2;12677:18;;12659:37;:::i;:::-;12649:47;;12748:3;12737:9;12733:19;12720:33;12762;12787:7;12762:33;:::i;:::-;12814:7;-1:-1:-1;12894:3:88;12879:19;;12866:33;;-1:-1:-1;12944:60:88;12996:7;12990:3;12975:19;;12944:60;:::i;:::-;12934:70;-1:-1:-1;13077:3:88;13062:19;;13049:33;;-1:-1:-1;13181:3:88;13166:19;;13153:33;;-1:-1:-1;13231:38:88;13264:3;13249:19;;13231:38;:::i;13381:1025::-;13463:5;13457:12;13452:3;13445:25;13519:4;13512:5;13508:16;13502:23;13495:4;13490:3;13486:14;13479:47;13575:4;13568:5;13564:16;13558:23;13551:4;13546:3;13542:14;13535:47;13631:4;13624:5;13620:16;13614:23;13607:4;13602:3;13598:14;13591:47;13687:4;13680:5;13676:16;13670:23;13663:4;13658:3;13654:14;13647:47;13743:4;13736:5;13732:16;13726:23;13719:4;13714:3;13710:14;13703:47;13799:4;13792:5;13788:16;13782:23;13775:4;13770:3;13766:14;13759:47;13855:4;13848:5;13844:16;13838:23;13831:4;13826:3;13822:14;13815:47;13913:6;13906:5;13902:18;13896:25;13887:6;13882:3;13878:16;13871:51;13973:6;13966:5;13962:18;13956:25;13947:6;13942:3;13938:16;13931:51;14033:6;14026:5;14022:18;14016:25;14007:6;14002:3;13998:16;13991:51;14088:6;14081:5;14077:18;14071:25;14105:63;14160:6;14155:3;14151:16;14137:12;-1:-1:-1;;;;;4969:31:88;4957:44;;4890:117;14105:63;;14216:6;14209:5;14205:18;14199:25;14233:51;14276:6;14271:3;14267:16;14251:14;13356:12;13345:24;13333:37;;13280:96;14233:51;;14332:6;14325:5;14321:18;14315:25;14349:51;14392:6;14387:3;14383:16;14367:14;13356:12;13345:24;13333:37;;13280:96;14411:258;14603:3;14588:19;;14616:47;14592:9;14645:6;14616:47;:::i;14674:539::-;14759:6;14767;14775;14783;14836:3;14824:9;14815:7;14811:23;14807:33;14804:53;;;14853:1;14850;14843:12;14804:53;14898:23;;;-1:-1:-1;15018:2:88;15003:18;;14990:32;;-1:-1:-1;15067:37:88;15100:2;15085:18;;15067:37;:::i;:::-;14674:539;;;;-1:-1:-1;15057:47:88;;15177:2;15162:18;15149:32;;-1:-1:-1;;14674:539:88:o;15218:392::-;15301:6;15309;15362:2;15350:9;15341:7;15337:23;15333:32;15330:52;;;15378:1;15375;15368:12;15330:52;15417:9;15404:23;15456:2;15449:5;15446:13;15436:41;;15473:1;15470;15463:12;15436:41;15496:5;15574:2;15559:18;;;;15546:32;;-1:-1:-1;;;15218:392:88:o;16233:545::-;16349:6;16357;16365;16373;16426:3;16414:9;16405:7;16401:23;16397:33;16394:53;;;16443:1;16440;16433:12;16394:53;16488:23;;;-1:-1:-1;16608:2:88;16593:18;;16580:32;;-1:-1:-1;16657:37:88;16690:2;16675:18;;16657:37;:::i;:::-;16647:47;;16713:59;16764:7;16759:2;16748:9;16744:18;16713:59;:::i;:::-;16703:69;;16233:545;;;;;;;:::o;17014:380::-;17093:1;17089:12;;;;17136;;;17157:61;;17211:4;17203:6;17199:17;17189:27;;17157:61;17264:2;17256:6;17253:14;17233:18;17230:38;17227:161;;17310:10;17305:3;17301:20;17298:1;17291:31;17345:4;17342:1;17335:15;17373:4;17370:1;17363:15;17399:275;17493:6;17546:2;17534:9;17525:7;17521:23;17517:32;17514:52;;;17562:1;17559;17552:12;17514:52;17594:9;17588:16;17613:31;17638:5;17613:31;:::i;17679:525::-;-1:-1:-1;;;;;17950:32:88;;;17932:51;;18014:2;17999:18;;17992:34;;;;18057:2;18042:18;;18035:34;;;;18105:32;;;18100:2;18085:18;;18078:60;18182:14;;18175:22;18169:3;18154:19;;18147:51;17919:3;17904:19;;17679:525::o;18209:408::-;18411:2;18393:21;;;18450:2;18430:18;;;18423:30;18489:34;18484:2;18469:18;;18462:62;-1:-1:-1;;;18555:2:88;18540:18;;18533:42;18607:3;18592:19;;18209:408::o;18622:::-;18824:2;18806:21;;;18863:2;18843:18;;;18836:30;18902:34;18897:2;18882:18;;18875:62;-1:-1:-1;;;18968:2:88;18953:18;;18946:42;19020:3;19005:19;;18622:408::o;19035:453::-;-1:-1:-1;;;;;19278:32:88;;;19260:51;;19342:2;19327:18;;19320:34;;;;19390:32;;19385:2;19370:18;;19363:60;19466:14;;19459:22;19454:2;19439:18;;19432:50;19247:3;19232:19;;19035:453::o;20945:127::-;21006:10;21001:3;20997:20;20994:1;20987:31;21037:4;21034:1;21027:15;21061:4;21058:1;21051:15;21077:128;21144:9;;;21165:11;;;21162:37;;;21179:18;;:::i;21824:147::-;21905:20;;21934:31;21905:20;21934:31;:::i;21976:1739::-;22085:19;;22113:20;;22202:4;22191:16;;;22178:30;22224:14;;;22217:31;22317:4;22306:16;;;22293:30;22339:14;;;22332:31;22432:4;22421:16;;;22408:30;22454:14;;;22447:31;22547:4;22536:16;;;22523:30;22569:14;;;22562:31;22662:4;22651:16;;;22638:30;22684:14;;;22677:31;22777:4;22766:16;;;22753:30;22799:14;;;22792:31;22892:4;22881:16;;;22868:30;22914:14;;;22907:31;23007:6;22996:18;;;22983:32;23031:16;;;23024:33;23128:6;23117:18;;;23104:32;23152:16;;;23145:34;23250:6;23239:18;;;23226:32;23274:16;;;23267:34;23330:51;23373:6;23362:18;;23330:51;:::i;:::-;-1:-1:-1;;;;;4969:31:88;23445:6;23436:16;;4957:44;23484:37;23513:6;23502:18;;23484:37;:::i;:::-;13356:12;13345:24;23573:6;23564:16;;13333:37;23612;23641:6;23630:18;;23612:37;:::i;:::-;13356:12;13345:24;;23701:6;23692:16;;13333:37;3206:169:57;;;:::o;23720:341:88:-;23942:3;23927:19;;23955:56;23931:9;23993:6;23955:56;:::i;:::-;24048:6;24042:3;24031:9;24027:19;24020:35;23720:341;;;;;:::o;24066:127::-;24127:10;24122:3;24118:20;24115:1;24108:31;24158:4;24155:1;24148:15;24182:4;24179:1;24172:15;24974:125;25039:9;;;25060:10;;;25057:36;;;25073:18;;:::i;25383:184::-;25453:6;25506:2;25494:9;25485:7;25481:23;25477:32;25474:52;;;25522:1;25519;25512:12;25474:52;-1:-1:-1;25545:16:88;;25383:184;-1:-1:-1;25383:184:88:o;26742:763::-;27083:2;27079:15;;;;-1:-1:-1;;27075:53:88;27063:66;;27154:2;27145:12;;27138:28;;;;27191:2;27182:12;;27175:28;;;;27228:2;27219:12;;27212:28;;;;27297:3;27275:16;;;-1:-1:-1;;;;;;27271:45:88;;;27265:3;27256:13;;27249:68;27342:3;27333:13;;27326:29;;;;27380:3;27371:13;;27364:29;;;;27428:16;;;27424:45;27418:3;27409:13;;27402:68;27495:3;27486:13;;26742:763::o;27510:127::-;27571:10;27566:3;27562:20;27559:1;27552:31;27602:4;27599:1;27592:15;27626:4;27623:1;27616:15;27642:112;27674:1;27700;27690:35;;27705:18;;:::i;:::-;-1:-1:-1;27739:9:88;;27642:112::o;27759:184::-;27817:6;27870:2;27858:9;27849:7;27845:23;27841:32;27838:52;;;27886:1;27883;27876:12;27838:52;27909:28;27927:9;27909:28;:::i;29087:176::-;29186:12;29179:20;;;29157;;;29153:47;;29212:22;;29209:48;;;29237:18;;:::i;29268:182::-;29307:1;29341:12;29338:1;29334:20;29373:3;29363:37;;29380:18;;:::i;:::-;29440:3;29425:12;29422:1;29418:20;29414:30;29409:35;;;29268:182;;;;:::o;30305:409::-;30507:2;30489:21;;;30546:2;30526:18;;;30519:30;30585:34;30580:2;30565:18;;30558:62;-1:-1:-1;;;30651:2:88;30636:18;;30629:43;30704:3;30689:19;;30305:409::o;30719:411::-;30921:2;30903:21;;;30960:2;30940:18;;;30933:30;30999:34;30994:2;30979:18;;30972:62;-1:-1:-1;;;31065:2:88;31050:18;;31043:45;31120:3;31105:19;;30719:411::o;31135:414::-;31337:2;31319:21;;;31376:2;31356:18;;;31349:30;31415:34;31410:2;31395:18;;31388:62;-1:-1:-1;;;31481:2:88;31466:18;;31459:48;31539:3;31524:19;;31135:414::o;31554:399::-;31756:2;31738:21;;;31795:2;31775:18;;;31768:30;31834:34;31829:2;31814:18;;31807:62;-1:-1:-1;;;31900:2:88;31885:18;;31878:33;31943:3;31928:19;;31554:399::o;31958:622::-;32292:3;32277:19;;32305:56;32281:9;32343:6;32305:56;:::i;:::-;32370:57;32422:3;32411:9;32407:19;32399:6;32370:57;:::i;:::-;-1:-1:-1;;;;;32464:32:88;;;;32458:3;32443:19;;32436:61;32546:26;32534:39;;;;32528:3;32513:19;;;32506:68;31958:622;;-1:-1:-1;;31958:622:88:o;32585:120::-;32625:1;32651;32641:35;;32656:18;;:::i;:::-;-1:-1:-1;32690:9:88;;32585:120::o;36307:407::-;36509:2;36491:21;;;36548:2;36528:18;;;36521:30;36587:34;36582:2;36567:18;;36560:62;-1:-1:-1;;;36653:2:88;36638:18;;36631:41;36704:3;36689:19;;36307:407::o;36719:273::-;36787:6;36840:2;36828:9;36819:7;36815:23;36811:32;36808:52;;;36856:1;36853;36846:12;36808:52;36888:9;36882:16;36938:4;36931:5;36927:16;36920:5;36917:27;36907:55;;36958:1;36955;36948:12;36997:151;37087:4;37080:12;;;37066;;;37062:31;;37105:14;;37102:40;;;37122:18;;:::i;37153:375::-;37241:1;37259:5;37273:249;37294:1;37284:8;37281:15;37273:249;;;37344:4;37339:3;37335:14;37329:4;37326:24;37323:50;;;37353:18;;:::i;:::-;37403:1;37393:8;37389:16;37386:49;;;37417:16;;;;37386:49;37500:1;37496:16;;;;;37456:15;;37273:249;;37533:902;37582:5;37612:8;37602:80;;-1:-1:-1;37653:1:88;37667:5;;37602:80;37701:4;37691:76;;-1:-1:-1;37738:1:88;37752:5;;37691:76;37783:4;37801:1;37796:59;;;;37869:1;37864:174;;;;37776:262;;37796:59;37826:1;37817:10;;37840:5;;;37864:174;37901:3;37891:8;37888:17;37885:43;;;37908:18;;:::i;:::-;-1:-1:-1;;37964:1:88;37950:16;;38023:5;;37776:262;;38122:2;38112:8;38109:16;38103:3;38097:4;38094:13;38090:36;38084:2;38074:8;38071:16;38066:2;38060:4;38057:12;38053:35;38050:77;38047:203;;;-1:-1:-1;38159:19:88;;;38235:5;;38047:203;38282:42;-1:-1:-1;;38307:8:88;38301:4;38282:42;:::i;:::-;38360:6;38356:1;38352:6;38348:19;38339:7;38336:32;38333:58;;;38371:18;;:::i;:::-;38409:20;;37533:902;-1:-1:-1;;;37533:902:88:o;38440:140::-;38498:5;38527:47;38568:4;38558:8;38554:19;38548:4;38527:47;:::i;38585:168::-;38658:9;;;38689;;38706:15;;;38700:22;;38686:37;38676:71;;38727:18;;:::i;39478:557::-;39752:3;39737:19;;39765:47;39741:9;39794:6;39765:47;:::i;:::-;-1:-1:-1;;;;;39849:32:88;;;39843:3;39828:19;;39821:61;39919:32;;;;39913:3;39898:19;;39891:61;40001:26;39989:39;39983:3;39968:19;;;39961:68;;;;39478:557;;-1:-1:-1;39478:557:88:o;40040:277::-;40107:6;40160:2;40148:9;40139:7;40135:23;40131:32;40128:52;;;40176:1;40173;40166:12;40128:52;40208:9;40202:16;40261:5;40254:13;40247:21;40240:5;40237:32;40227:60;;40283:1;40280;40273:12;41774:212;41816:3;41854:5;41848:12;41898:6;41891:4;41884:5;41880:16;41875:3;41869:36;41960:1;41924:16;;41949:13;;;-1:-1:-1;41924:16:88;;41774:212;-1:-1:-1;41774:212:88:o;41991:463::-;42299:66;42294:3;42287:79;42269:3;42382:66;42408:39;42443:2;42438:3;42434:12;42426:6;42408:39;:::i;:::-;42400:6;42382:66;:::i;43342:518::-;43444:2;43439:3;43436:11;43433:421;;;43480:5;43477:1;43470:16;43524:4;43521:1;43511:18;43594:2;43582:10;43578:19;43575:1;43571:27;43565:4;43561:38;43630:4;43618:10;43615:20;43612:47;;;-1:-1:-1;43653:4:88;43612:47;43708:2;43703:3;43699:12;43696:1;43692:20;43686:4;43682:31;43672:41;;43763:81;43781:2;43774:5;43771:13;43763:81;;;43840:1;43826:16;;43807:1;43796:13;43763:81;;;43767:3;;43342:518;;;:::o;44036:1299::-;44162:3;44156:10;44189:18;44181:6;44178:30;44175:56;;;44211:18;;:::i;:::-;44240:97;44330:6;44290:38;44322:4;44316:11;44290:38;:::i;:::-;44284:4;44240:97;:::i;:::-;44386:4;44417:2;44406:14;;44434:1;44429:649;;;;45122:1;45139:6;45136:89;;;-1:-1:-1;45191:19:88;;;45185:26;45136:89;-1:-1:-1;;43993:1:88;43989:11;;;43985:24;43981:29;43971:40;44017:1;44013:11;;;43968:57;45238:81;;44399:930;;44429:649;43289:1;43282:14;;;43326:4;43313:18;;-1:-1:-1;;44465:20:88;;;44583:222;44597:7;44594:1;44591:14;44583:222;;;44679:19;;;44673:26;44658:42;;44786:4;44771:20;;;;44739:1;44727:14;;;;44613:12;44583:222;;;44587:3;44833:6;44824:7;44821:19;44818:201;;;44894:19;;;44888:26;-1:-1:-1;;44977:1:88;44973:14;;;44989:3;44969:24;44965:37;44961:42;44946:58;44931:74;;44818:201;-1:-1:-1;;;;45065:1:88;45049:14;;;45045:22;45032:36;;-1:-1:-1;44036:1299:88:o;47140:190::-;47269:3;47294:30;47320:3;47312:6;47294:30;:::i"},"methodIdentifiers":{"activeExposure()":"7ff8bf25","bucketParams(uint256)":"ceddac6f","currency()":"e5a6b10f","deleteBucket(uint256)":"18e26bb9","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","getMinimumPremiumForBucket(uint256,uint256,uint40,uint256)":"b9b28f2a","getMinimumPremiumFullParams(uint256,uint256,uint40,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16))":"cf19171e","initialize(string,uint256,uint256,uint256,uint256,uint256,address)":"6f0dbe6f","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","newPolicy(uint256,uint256,uint256,uint40,address,bytes32,uint256,bytes32,bytes32,uint40)":"766dbc56","newPolicyFullParams(uint256,uint256,uint256,uint40,address,bytes32,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16),bytes32,bytes32,uint40)":"9014d171","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40)":"82ff9c8c","replacePolicyFullParams((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16),bytes32,bytes32,uint40)":"3f961587","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","setBucketParams(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))":"571e8bcc","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"premiumsAccount_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BucketCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BucketNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"BucketDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"NewBucket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"}],\"name\":\"NewSignedPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"bucketParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params_\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"deleteBucket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"getMinimumPremiumForBucket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"moc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrCollRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"collRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroPpFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroCocFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"srRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxPayoutPerPolicy\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"exposureLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"maxDuration\",\"type\":\"uint16\"}],\"internalType\":\"struct RiskModule.PackedParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getMinimumPremiumFullParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"collRatio_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayoutPerPolicy_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exposureLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"moc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrCollRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"collRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroPpFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroCocFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"srRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxPayoutPerPolicy\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"exposureLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"maxDuration\",\"type\":\"uint16\"}],\"internalType\":\"struct RiskModule.PackedParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicyFullParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"createdPolicy\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"moc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrCollRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"collRatio\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroPpFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"ensuroCocFee\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"jrRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"srRoc\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxPayoutPerPolicy\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"exposureLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"maxDuration\",\"type\":\"uint16\"}],\"internalType\":\"struct RiskModule.PackedParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"replacePolicyFullParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params_\",\"type\":\"tuple\"}],\"name\":\"setBucketParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Variation of SignedBucketRiskModule that also supports the creation of policies receiving all the parameters that affect the price (not just the lossProb). And validates the signature. It requires a new permission, the FULL_PRICER_ROLE.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"BucketDeleted(uint256)\":{\"details\":\"Emitted when a risk bucket is deleted.\",\"params\":{\"bucketId\":\"The identifier of the group of policies.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NewBucket(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))\":{\"details\":\"Emitted when a new risk bucket is created (or modified).\",\"params\":{\"bucketId\":\"The identifier of the group of policies.\",\"params\":\"The packed parameters of the new bucket.\"}},\"NewSignedPolicy(uint256,bytes32)\":{\"details\":\"Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\",\"params\":{\"policyData\":\"The value sent in `policyData` parameter that's the hash of the off-chain stored data.\",\"policyId\":\"The id of the policy\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"bucketParams(uint256)\":{\"details\":\"returns the risk bucket parameters for the given bucketId\",\"params\":{\"bucketId\":\"Id of the bucket or 0 if you want the default params\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deleteBucket(uint256)\":{\"details\":\"Deletes a bucket Requirements: - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\",\"params\":{\"bucketId\":\"Group identifier for the policies that will have these parameters\"}},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"getMinimumPremiumForBucket(uint256,uint256,uint40,uint256)\":{\"details\":\"Returns the minimum premium for a given bucket\",\"params\":{\"bucketId\":\"Id of the bucket of 0 if you want the default params\",\"expiration\":\"Expiration date of the policy\",\"lossProb\":\"Probability of having a loss equal to the maximum payout\",\"payout\":\"Maximum payout of the policy\"}},\"getMinimumPremiumFullParams(uint256,uint256,uint40,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16))\":{\"details\":\"Computes the minimum premium for fully-customizable params\",\"params\":{\"expiration\":\"Expiration date of the policy\",\"lossProb\":\"Probability of having a loss equal to the maximum payout\",\"params\":\"The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\",\"payout\":\"Maximum payout of the policy\"},\"returns\":{\"_0\":\"The minimum premium to receive\"}},\"initialize(string,uint256,uint256,uint256,uint256,uint256,address)\":{\"details\":\"Initializes the RiskModule\",\"params\":{\"collRatio_\":\"Collateralization ratio to compute solvency requirement as % of payout (in ray)\",\"ensuroPpFee_\":\"% of pure premium that will go for Ensuro treasury (in ray)\",\"exposureLimit_\":\"Max exposure (sum of payouts) to be allocated to this module (in wad)\",\"maxPayoutPerPolicy_\":\"Maximum payout per policy (in wad)\",\"name_\":\"Name of the Risk Module\",\"srRoc_\":\"return on capital paid to Senior LPs (annualized percentage - in ray)\",\"wallet_\":\"Address of the RiskModule provider\"}},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"newPolicy(uint256,uint256,uint256,uint40,address,bytes32,uint256,bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a signed quote. The caller is the payer of the policy. Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE Emits: - {PolicyPool.NewPolicy} - {NewSignedPolicy}\",\"params\":{\"bucketId\":\"Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\",\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"newPolicyFullParams(uint256,uint256,uint256,uint40,address,bytes32,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16),bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a full signed quote that overrides params.      The caller is the payer of the policy. Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE Emits: - {PolicyPool.NewPolicy} - {NewSignedPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"params\":\"The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"createdPolicy\":\"Returns the created policy\"}},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40)\":{\"details\":\"Replace a policy with a new one, reusing the premium and the capital locked Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE - The caller has been granted component role REPLACER_ROLE or creation is open Emits: - {PolicyPool.PolicyReplaced} - {PolicyPool.NewPolicy}\",\"params\":{\"bucketId\":\"Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\",\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"oldPolicy\":\"The policy to be replaced\",\"payout\":\"The exposure (maximum payout) of the new policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the caller\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"replacePolicyFullParams((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,(uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint32,uint16),bytes32,bytes32,uint40)\":{\"details\":\"Replace a policy with a new one, reusing the premium and the capital locked Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE - The caller has been granted component role REPLACER_ROLE or creation is open Emits: - {PolicyPool.PolicyReplaced} - {PolicyPool.NewPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"oldPolicy\":\"The policy to be replaced\",\"params\":\"The parameters for the policy creation (coll ratios, RoCs, fees, etc.)\",\"payout\":\"The exposure (maximum payout) of the new policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the caller\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"setBucketParams(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))\":{\"details\":\"Sets the parameters for a risk bucket. Requirements: - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\",\"params\":{\"bucketId\":\"Group identifier for the policies that will have these parameters\",\"params_\":\"The parameters of the new bucket.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"FullSignedBucket Risk Module\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FullSignedBucketRiskModule.sol\":\"FullSignedBucketRiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/FullSignedBucketRiskModule.sol\":{\"keccak256\":\"0x9ba688ade5daf6d3566aa8f3c41cdaccb3162b334fe0aa98ed24f0109ff0ec52\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12ba27efedb1e63e067a88ebd7d3ab505854409b7b96a95e440d10239ae3500b\",\"dweb:/ipfs/QmVdMAPBrSY8vkNQSkhKPiexHQq2VxJcAhbXAbvvi2smcG\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/SignedBucketRiskModule.sol\":{\"keccak256\":\"0x4f7fb334b302a89d9700519d66d5c699700d003fb67eb756ed4d0b446f70d62b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d0c65f019af158d80832fa3ae824521d020d826d12930dbfabefb3b750f891eb\",\"dweb:/ipfs/QmQ5GaCQGy8SDVdRtsEEz5mZx5LmseEzC2tYvX6zKcKAXh\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"},{"astId":21506,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"_buckets","offset":0,"slot":"301","type":"t_mapping(t_uint256,t_struct(PackedParams)20220_storage)"},{"astId":22035,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"302","type":"t_array(t_uint256)49_storage"},{"astId":13923,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"__gap","offset":0,"slot":"351","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_uint256,t_struct(PackedParams)20220_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct RiskModule.PackedParams)","numberOfBytes":"32","value":"t_struct(PackedParams)20220_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/FullSignedBucketRiskModule.sol:FullSignedBucketRiskModule","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/LPManualWhitelist.sol":{"LPManualWhitelist":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"provider","type":"address"},{"components":[{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"deposit","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"withdraw","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"sendTransfer","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"receiveTransfer","type":"uint8"}],"indexed":false,"internalType":"struct LPManualWhitelist.WhitelistStatus","name":"whitelisted","type":"tuple"}],"name":"LPWhitelistStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"LP_WHITELIST_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LP_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"providerFrom","type":"address"},{"internalType":"address","name":"providerTo","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWhitelistDefaults","outputs":[{"components":[{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"deposit","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"withdraw","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"sendTransfer","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"receiveTransfer","type":"uint8"}],"internalType":"struct LPManualWhitelist.WhitelistStatus","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"deposit","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"withdraw","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"sendTransfer","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"receiveTransfer","type":"uint8"}],"internalType":"struct LPManualWhitelist.WhitelistStatus","name":"defaultStatus","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"deposit","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"withdraw","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"sendTransfer","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"receiveTransfer","type":"uint8"}],"internalType":"struct LPManualWhitelist.WhitelistStatus","name":"newStatus","type":"tuple"}],"name":"setWhitelistDefaults","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"components":[{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"deposit","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"withdraw","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"sendTransfer","type":"uint8"},{"internalType":"enum LPManualWhitelist.WhitelistOptions","name":"receiveTransfer","type":"uint8"}],"internalType":"struct LPManualWhitelist.WhitelistStatus","name":"newStatus","type":"tuple"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13990":{"entryPoint":null,"id":13990,"parameterSlots":1,"returnSlots":0},"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":116,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":304,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:924:88","nodeType":"YulBlock","src":"0:924:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"116:209:88","nodeType":"YulBlock","src":"116:209:88","statements":[{"body":{"nativeSrc":"162:16:88","nodeType":"YulBlock","src":"162:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"171:1:88","nodeType":"YulLiteral","src":"171:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"174:1:88","nodeType":"YulLiteral","src":"174:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"164:6:88","nodeType":"YulIdentifier","src":"164:6:88"},"nativeSrc":"164:12:88","nodeType":"YulFunctionCall","src":"164:12:88"},"nativeSrc":"164:12:88","nodeType":"YulExpressionStatement","src":"164:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"137:7:88","nodeType":"YulIdentifier","src":"137:7:88"},{"name":"headStart","nativeSrc":"146:9:88","nodeType":"YulIdentifier","src":"146:9:88"}],"functionName":{"name":"sub","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:23:88","nodeType":"YulFunctionCall","src":"133:23:88"},{"kind":"number","nativeSrc":"158:2:88","nodeType":"YulLiteral","src":"158:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"129:3:88","nodeType":"YulIdentifier","src":"129:3:88"},"nativeSrc":"129:32:88","nodeType":"YulFunctionCall","src":"129:32:88"},"nativeSrc":"126:52:88","nodeType":"YulIf","src":"126:52:88"},{"nativeSrc":"187:29:88","nodeType":"YulVariableDeclaration","src":"187:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"206:9:88","nodeType":"YulIdentifier","src":"206:9:88"}],"functionName":{"name":"mload","nativeSrc":"200:5:88","nodeType":"YulIdentifier","src":"200:5:88"},"nativeSrc":"200:16:88","nodeType":"YulFunctionCall","src":"200:16:88"},"variables":[{"name":"value","nativeSrc":"191:5:88","nodeType":"YulTypedName","src":"191:5:88","type":""}]},{"body":{"nativeSrc":"279:16:88","nodeType":"YulBlock","src":"279:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"288:1:88","nodeType":"YulLiteral","src":"288:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"291:1:88","nodeType":"YulLiteral","src":"291:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"281:6:88","nodeType":"YulIdentifier","src":"281:6:88"},"nativeSrc":"281:12:88","nodeType":"YulFunctionCall","src":"281:12:88"},"nativeSrc":"281:12:88","nodeType":"YulExpressionStatement","src":"281:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"238:5:88","nodeType":"YulIdentifier","src":"238:5:88"},{"arguments":[{"name":"value","nativeSrc":"249:5:88","nodeType":"YulIdentifier","src":"249:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"264:3:88","nodeType":"YulLiteral","src":"264:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"269:1:88","nodeType":"YulLiteral","src":"269:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"260:3:88","nodeType":"YulIdentifier","src":"260:3:88"},"nativeSrc":"260:11:88","nodeType":"YulFunctionCall","src":"260:11:88"},{"kind":"number","nativeSrc":"273:1:88","nodeType":"YulLiteral","src":"273:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"256:3:88","nodeType":"YulIdentifier","src":"256:3:88"},"nativeSrc":"256:19:88","nodeType":"YulFunctionCall","src":"256:19:88"}],"functionName":{"name":"and","nativeSrc":"245:3:88","nodeType":"YulIdentifier","src":"245:3:88"},"nativeSrc":"245:31:88","nodeType":"YulFunctionCall","src":"245:31:88"}],"functionName":{"name":"eq","nativeSrc":"235:2:88","nodeType":"YulIdentifier","src":"235:2:88"},"nativeSrc":"235:42:88","nodeType":"YulFunctionCall","src":"235:42:88"}],"functionName":{"name":"iszero","nativeSrc":"228:6:88","nodeType":"YulIdentifier","src":"228:6:88"},"nativeSrc":"228:50:88","nodeType":"YulFunctionCall","src":"228:50:88"},"nativeSrc":"225:70:88","nodeType":"YulIf","src":"225:70:88"},{"nativeSrc":"304:15:88","nodeType":"YulAssignment","src":"304:15:88","value":{"name":"value","nativeSrc":"314:5:88","nodeType":"YulIdentifier","src":"314:5:88"},"variableNames":[{"name":"value0","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"14:311:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:88","nodeType":"YulTypedName","src":"82:9:88","type":""},{"name":"dataEnd","nativeSrc":"93:7:88","nodeType":"YulTypedName","src":"93:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"105:6:88","nodeType":"YulTypedName","src":"105:6:88","type":""}],"src":"14:311:88"},{"body":{"nativeSrc":"504:229:88","nodeType":"YulBlock","src":"504:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"521:9:88","nodeType":"YulIdentifier","src":"521:9:88"},{"kind":"number","nativeSrc":"532:2:88","nodeType":"YulLiteral","src":"532:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"514:6:88","nodeType":"YulIdentifier","src":"514:6:88"},"nativeSrc":"514:21:88","nodeType":"YulFunctionCall","src":"514:21:88"},"nativeSrc":"514:21:88","nodeType":"YulExpressionStatement","src":"514:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"555:9:88","nodeType":"YulIdentifier","src":"555:9:88"},{"kind":"number","nativeSrc":"566:2:88","nodeType":"YulLiteral","src":"566:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"551:3:88","nodeType":"YulIdentifier","src":"551:3:88"},"nativeSrc":"551:18:88","nodeType":"YulFunctionCall","src":"551:18:88"},{"kind":"number","nativeSrc":"571:2:88","nodeType":"YulLiteral","src":"571:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"544:6:88","nodeType":"YulIdentifier","src":"544:6:88"},"nativeSrc":"544:30:88","nodeType":"YulFunctionCall","src":"544:30:88"},"nativeSrc":"544:30:88","nodeType":"YulExpressionStatement","src":"544:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"594:9:88","nodeType":"YulIdentifier","src":"594:9:88"},{"kind":"number","nativeSrc":"605:2:88","nodeType":"YulLiteral","src":"605:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"590:3:88","nodeType":"YulIdentifier","src":"590:3:88"},"nativeSrc":"590:18:88","nodeType":"YulFunctionCall","src":"590:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"610:34:88","nodeType":"YulLiteral","src":"610:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"583:6:88","nodeType":"YulIdentifier","src":"583:6:88"},"nativeSrc":"583:62:88","nodeType":"YulFunctionCall","src":"583:62:88"},"nativeSrc":"583:62:88","nodeType":"YulExpressionStatement","src":"583:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"665:9:88","nodeType":"YulIdentifier","src":"665:9:88"},{"kind":"number","nativeSrc":"676:2:88","nodeType":"YulLiteral","src":"676:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"661:3:88","nodeType":"YulIdentifier","src":"661:3:88"},"nativeSrc":"661:18:88","nodeType":"YulFunctionCall","src":"661:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"681:9:88","nodeType":"YulLiteral","src":"681:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"},"nativeSrc":"654:37:88","nodeType":"YulFunctionCall","src":"654:37:88"},"nativeSrc":"654:37:88","nodeType":"YulExpressionStatement","src":"654:37:88"},{"nativeSrc":"700:27:88","nodeType":"YulAssignment","src":"700:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"712:9:88","nodeType":"YulIdentifier","src":"712:9:88"},{"kind":"number","nativeSrc":"723:3:88","nodeType":"YulLiteral","src":"723:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"708:3:88","nodeType":"YulIdentifier","src":"708:3:88"},"nativeSrc":"708:19:88","nodeType":"YulFunctionCall","src":"708:19:88"},"variableNames":[{"name":"tail","nativeSrc":"700:4:88","nodeType":"YulIdentifier","src":"700:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"330:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"481:9:88","nodeType":"YulTypedName","src":"481:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"495:4:88","nodeType":"YulTypedName","src":"495:4:88","type":""}],"src":"330:403:88"},{"body":{"nativeSrc":"835:87:88","nodeType":"YulBlock","src":"835:87:88","statements":[{"nativeSrc":"845:26:88","nodeType":"YulAssignment","src":"845:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"857:9:88","nodeType":"YulIdentifier","src":"857:9:88"},{"kind":"number","nativeSrc":"868:2:88","nodeType":"YulLiteral","src":"868:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"853:3:88","nodeType":"YulIdentifier","src":"853:3:88"},"nativeSrc":"853:18:88","nodeType":"YulFunctionCall","src":"853:18:88"},"variableNames":[{"name":"tail","nativeSrc":"845:4:88","nodeType":"YulIdentifier","src":"845:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"887:9:88","nodeType":"YulIdentifier","src":"887:9:88"},{"arguments":[{"name":"value0","nativeSrc":"902:6:88","nodeType":"YulIdentifier","src":"902:6:88"},{"kind":"number","nativeSrc":"910:4:88","nodeType":"YulLiteral","src":"910:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"898:3:88","nodeType":"YulIdentifier","src":"898:3:88"},"nativeSrc":"898:17:88","nodeType":"YulFunctionCall","src":"898:17:88"}],"functionName":{"name":"mstore","nativeSrc":"880:6:88","nodeType":"YulIdentifier","src":"880:6:88"},"nativeSrc":"880:36:88","nodeType":"YulFunctionCall","src":"880:36:88"},"nativeSrc":"880:36:88","nodeType":"YulExpressionStatement","src":"880:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"738:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"804:9:88","nodeType":"YulTypedName","src":"804:9:88","type":""},{"name":"value0","nativeSrc":"815:6:88","nodeType":"YulTypedName","src":"815:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"826:4:88","nodeType":"YulTypedName","src":"826:4:88","type":""}],"src":"738:184:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405230608052348015610013575f5ffd5b506040516122d13803806122d183398101604081905261003291610130565b806001600160a01b03811661005a57604051636b23cf0160e01b815260040160405180910390fd5b610062610074565b6001600160a01b031660a0525061015d565b5f54610100900460ff16156100df5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461012e575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610140575f5ffd5b81516001600160a01b0381168114610156575f5ffd5b9392505050565b60805160a0516121066101cb5f395f81816101e001528181610532015281816108cf015281816109d601528181610cb401528181610dae01528181610fc201526114fa01525f81816103a2015281816103eb0152818161063e0152818161067e015261070b01526121065ff3fe608060405260043610610105575f3560e01c80635fcdca3711610092578063aa2f92fb11610062578063aa2f92fb146102c7578063aad4148c146102e6578063cf273ca614610319578063e5a6b10f14610338578063ed716bf41461034c575f5ffd5b80635fcdca37146102565780638456cb5914610275578063896ce44c146102895780639051c763146102a8575f5ffd5b80633f4ba83a116100d85780633f4ba83a146101be5780634d15eb03146101d25780634f1ef2861461021857806352d1902d1461022b5780635c975abb1461023f575f5ffd5b806301ffc9a7146101095780631e3b9c5e1461013d5780633659cfe61461017e57806337ee20dd1461019f575b5f5ffd5b348015610114575f5ffd5b506101286101233660046119bf565b61036d565b60405190151581526020015b60405180910390f35b348015610148575f5ffd5b506101707f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b604051908152602001610134565b348015610189575f5ffd5b5061019d6101983660046119fa565b610398565b005b3480156101aa575f5ffd5b506101286101b9366004611a15565b61047e565b3480156101c9575f5ffd5b5061019d6104ee565b3480156101dd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610134565b61019d610226366004611a98565b610634565b348015610236575f5ffd5b506101706106ff565b34801561024a575f5ffd5b5060975460ff16610128565b348015610261575f5ffd5b50610128610270366004611b3f565b6107b0565b348015610280575f5ffd5b5061019d6108ac565b348015610294575f5ffd5b5061019d6102a3366004611ba3565b6109b3565b3480156102b3575f5ffd5b506101286102c2366004611a15565b610b25565b3480156102d2575f5ffd5b5061019d6102e1366004611bd7565b610b84565b3480156102f1575f5ffd5b506101707fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b348015610324575f5ffd5b5061019d610333366004611bd7565b610c91565b348015610343575f5ffd5b50610200610dab565b348015610357575f5ffd5b50610360610e31565b6040516101349190611c68565b5f61037782610f49565b8061039257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103e95760405162461bcd60e51b81526004016103e090611c76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104315f51602061208a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146104575760405162461bcd60e51b81526004016103e090611cc2565b61046081610f7e565b604080515f8082526020820190925261047b918391906110c1565b50565b6001600160a01b0382165f90815260fb602052604081205460ff16818160028111156104ac576104ac611bf1565b036104cd57505f805260fb6020525f51602061206a5f395f51905f525460ff165b60015b8160028111156104e2576104e2611bf1565b149150505b9392505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b09190611d0e565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b158015610612575f5ffd5b505afa158015610624573d5f5f3e3d5ffd5b5050505061063061122b565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361067c5760405162461bcd60e51b81526004016103e090611c76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106c45f51602061208a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146106ea5760405162461bcd60e51b81526004016103e090611cc2565b6106f382610f7e565b610630828260016110c1565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461079e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103e0565b505f51602061208a5f395f51905f5290565b6001600160a01b0383165f90815260fb602052604081205462010000900460ff16818160028111156107e4576107e4611bf1565b0361080b57505f805260fb6020525f51602061206a5f395f51905f525462010000900460ff165b600181600281111561081f5761081f611bf1565b1461082d575f9150506108a4565b506001600160a01b0383165f90815260fb60205260408120546301000000900460ff169081600281111561086357610863611bf1565b0361088b57505f805260fb6020525f51602061206a5f395f51905f52546301000000900460ff165b600181600281111561089f5761089f611bf1565b149150505b949350505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610929573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d9190611d0e565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161097f9493929190611d29565b5f6040518083038186803b158015610995575f5ffd5b505afa1580156109a7573d5f5f3e3d5ffd5b5050505061047b61127d565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a549190611d0e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610a859493929190611d29565b5f6040518083038186803b158015610a9b575f5ffd5b505afa158015610aad573d5f5f3e3d5ffd5b5050506001600160a01b0384169050610b085760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c747300000060448201526064016103e0565b610b2083610b1b36859003850185611d5f565b6112ba565b505050565b6001600160a01b0382165f90815260fb6020526040812054610100900460ff1681816002811115610b5857610b58611bf1565b036104cd57505f805260fb6020525f51602061206a5f395f51905f5254610100900460ff1660016104d0565b5f54610100900460ff1615808015610ba257505f54600160ff909116105b80610bbb5750303b158015610bbb57505f5460ff166001145b610c1e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103e0565b5f805460ff191660011790558015610c3f575f805461ff0019166101001790555b610c48826113aa565b8015610630575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d329190611d0e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610d639493929190611d29565b5f6040518083038186803b158015610d79575f5ffd5b505afa158015610d8b573d5f5f3e3d5ffd5b50505050610d98826113e1565b6106305f610b1b36859003850185611d5f565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e08573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2c9190611d0e565b905090565b610e586040805160808101909152805f81526020015f81526020015f81526020015f905290565b5f805260fb60205260408051608081019091525f51602061206a5f395f51905f528054829060ff166002811115610e9157610e91611bf1565b6002811115610ea257610ea2611bf1565b81528154602090910190610100900460ff166002811115610ec557610ec5611bf1565b6002811115610ed657610ed6611bf1565b8152815460209091019062010000900460ff166002811115610efa57610efa611bf1565b6002811115610f0b57610f0b611bf1565b815281546020909101906301000000900460ff166002811115610f3057610f30611bf1565b6002811115610f4157610f41611bf1565b905250919050565b5f6001600160e01b031982166301ffc9a760e01b148061039257506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110409190611d0e565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b1580156110a2575f5ffd5b505afa1580156110b4573d5f5f3e3d5ffd5b50505050610b20836114f8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110f457610b20836115a9565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561114e575060408051601f3d908101601f1916820190925261114b91810190611de4565b60015b6111b15760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103e0565b5f51602061208a5f395f51905f52811461121f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103e0565b50610b20838383611644565b61123361166e565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6112856116b9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112603390565b6001600160a01b0382165f90815260fb602052604090208151815483929190829060ff191660018360028111156112f3576112f3611bf1565b021790555060208201518154829061ff00191661010083600281111561131b5761131b611bf1565b021790555060408201518154829062ff000019166201000083600281111561134557611345611bf1565b021790555060608201518154829063ff0000001916630100000083600281111561137157611371611bf1565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610c85929190611dfb565b5f54610100900460ff166113d05760405162461bcd60e51b81526004016103e090611e18565b6113d86116ff565b61047b81611735565b5f6113ef6020830183611e63565b600281111561140057611400611bf1565b1415801561142e57505f61141a6040830160208401611e63565b600281111561142b5761142b611bf1565b14155b801561145a57505f6114466060830160408401611e63565b600281111561145757611457611bf1565b14155b801561148657505f6114726080830160608401611e63565b600281111561148357611483611bf1565b14155b61047b5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e730000000060648201526084016103e0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115829190611d0e565b6001600160a01b03161461047b5760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6116165760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103e0565b5f51602061208a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61164d836117c4565b5f825111806116595750805b15610b20576116688383611803565b50505050565b60975460ff166116b75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103e0565b565b60975460ff16156116b75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103e0565b5f54610100900460ff166117255760405162461bcd60e51b81526004016103e090611e18565b61172d611828565b6116b761184e565b5f54610100900460ff1661175b5760405162461bcd60e51b81526004016103e090611e18565b611764816113e1565b5f805260fb602052805f51602061206a5f395f51905f526117858282611ef8565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a5f826040516117b9929190611f9a565b60405180910390a150565b6117cd816115a9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104e783836040518060600160405280602781526020016120aa6027913961187c565b5f54610100900460ff166116b75760405162461bcd60e51b81526004016103e090611e18565b5f54610100900460ff166118745760405162461bcd60e51b81526004016103e090611e18565b6116b76118f0565b60605f5f856001600160a01b031685604051611898919061201e565b5f60405180830381855af49150503d805f81146118d0576040519150601f19603f3d011682016040523d82523d5f602084013e6118d5565b606091505b50915091506118e686838387611922565b9695505050505050565b5f54610100900460ff166119165760405162461bcd60e51b81526004016103e090611e18565b6097805460ff19169055565b606083156119905782515f03611989576001600160a01b0385163b6119895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103e0565b50816108a4565b6108a483838151156119a55781518083602001fd5b8060405162461bcd60e51b81526004016103e09190612034565b5f602082840312156119cf575f5ffd5b81356001600160e01b0319811681146104e7575f5ffd5b6001600160a01b038116811461047b575f5ffd5b5f60208284031215611a0a575f5ffd5b81356104e7816119e6565b5f5f5f60608486031215611a27575f5ffd5b8335611a32816119e6565b92506020840135611a42816119e6565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a9057611a90611a53565b604052919050565b5f5f60408385031215611aa9575f5ffd5b8235611ab4816119e6565b9150602083013567ffffffffffffffff811115611acf575f5ffd5b8301601f81018513611adf575f5ffd5b803567ffffffffffffffff811115611af957611af9611a53565b611b0c601f8201601f1916602001611a67565b818152866020838501011115611b20575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f60808587031215611b52575f5ffd5b8435611b5d816119e6565b93506020850135611b6d816119e6565b92506040850135611b7d816119e6565b9396929550929360600135925050565b5f60808284031215611b9d575f5ffd5b50919050565b5f5f60a08385031215611bb4575f5ffd5b8235611bbf816119e6565b9150611bce8460208501611b8d565b90509250929050565b5f60808284031215611be7575f5ffd5b6104e78383611b8d565b634e487b7160e01b5f52602160045260245ffd5b60038110611c2157634e487b7160e01b5f52602160045260245ffd5b9052565b611c30828251611c05565b6020810151611c426020840182611c05565b506040810151611c556040840182611c05565b506060810151610b206060840182611c05565b608081016103928284611c25565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215611d1e575f5ffd5b81516104e7816119e6565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6003811061047b575f5ffd5b5f6080828403128015611d70575f5ffd5b506040516080810167ffffffffffffffff81118282101715611d9457611d94611a53565b6040528235611da281611d53565b81526020830135611db281611d53565b60208201526040830135611dc581611d53565b60408201526060830135611dd881611d53565b60608201529392505050565b5f60208284031215611df4575f5ffd5b5051919050565b6001600160a01b038316815260a081016104e76020830184611c25565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611e73575f5ffd5b81356104e781611d53565b5f813561039281611d53565b60038210611ea657634e487b7160e01b5f52602160045260245ffd5b805462ff00008360101b1662ff0000198216178255505050565b60038210611edc57634e487b7160e01b5f52602160045260245ffd5b805463ff0000008360181b1663ff000000198216178255505050565b8135611f0381611d53565b60038110611f1f57634e487b7160e01b5f52602160045260245ffd5b815460ff821691508160ff1982161783556020840135611f3e81611d53565b60038110611f5a57634e487b7160e01b5f52602160045260245ffd5b61ff008160081b168361ffff19841617178455505050611f85611f7f60408401611e7e565b82611e8a565b610630611f9460608401611e7e565b82611ec0565b6001600160a01b038316815260a081018235611fb581611d53565b611fc26020840182611c05565b506020830135611fd181611d53565b611fde6040840182611c05565b506040830135611fed81611d53565b611ffa6060840182611c05565b50606083013561200981611d53565b6120166080840182611c05565b509392505050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e63668eb63eb47da51f131e4409329dd35e0c6786e56ebf3a1c0865a8e6cd41964736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x22D1 CODESIZE SUB DUP1 PUSH2 0x22D1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x130 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5A JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH2 0x15D JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xDF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x12E JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x156 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x2106 PUSH2 0x1CB PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x1E0 ADD MSTORE DUP2 DUP2 PUSH2 0x532 ADD MSTORE DUP2 DUP2 PUSH2 0x8CF ADD MSTORE DUP2 DUP2 PUSH2 0x9D6 ADD MSTORE DUP2 DUP2 PUSH2 0xCB4 ADD MSTORE DUP2 DUP2 PUSH2 0xDAE ADD MSTORE DUP2 DUP2 PUSH2 0xFC2 ADD MSTORE PUSH2 0x14FA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x3A2 ADD MSTORE DUP2 DUP2 PUSH2 0x3EB ADD MSTORE DUP2 DUP2 PUSH2 0x63E ADD MSTORE DUP2 DUP2 PUSH2 0x67E ADD MSTORE PUSH2 0x70B ADD MSTORE PUSH2 0x2106 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x105 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FCDCA37 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xAA2F92FB GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xAA2F92FB EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xAAD4148C EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xCF273CA6 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xED716BF4 EQ PUSH2 0x34C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x5FCDCA37 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x896CE44C EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x9051C763 EQ PUSH2 0x2A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x1E3B9C5E EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x37EE20DD EQ PUSH2 0x19F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x114 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x123 CALLDATASIZE PUSH1 0x4 PUSH2 0x19BF JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH32 0x88AAB6B3A9FDA9055D4A72094D587B65C9AADCC55FB1631E646A2F2C284CED5B DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x19FA JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x4EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A98 JUMP JUMPDEST PUSH2 0x634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x6FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x128 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B3F JUMP JUMPDEST PUSH2 0x7B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x8AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BA3 JUMP JUMPDEST PUSH2 0x9B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD7 JUMP JUMPDEST PUSH2 0xB84 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD7 JUMP JUMPDEST PUSH2 0xC91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0xDAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x360 PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x1C68 JUMP JUMPDEST PUSH0 PUSH2 0x377 DUP3 PUSH2 0xF49 JUMP JUMPDEST DUP1 PUSH2 0x392 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xF8722D89 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x3E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1C76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x431 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x460 DUP2 PUSH2 0xF7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x47B SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x10C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x4AC JUMPI PUSH2 0x4AC PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x4CD JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x1 JUMPDEST DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x4E2 JUMPI PUSH2 0x4E2 PUSH2 0x1BF1 JUMP JUMPDEST EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x58C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5B0 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x612 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x624 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x630 PUSH2 0x122B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1C76 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6C4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x6F3 DUP3 PUSH2 0xF7E JUMP JUMPDEST PUSH2 0x630 DUP3 DUP3 PUSH1 0x1 PUSH2 0x10C1 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x80B JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x81F JUMPI PUSH2 0x81F PUSH2 0x1BF1 JUMP JUMPDEST EQ PUSH2 0x82D JUMPI PUSH0 SWAP2 POP POP PUSH2 0x8A4 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x88B JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x89F JUMPI PUSH2 0x89F PUSH2 0x1BF1 JUMP JUMPDEST EQ SWAP2 POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x929 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x995 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x47B PUSH2 0x127D JUMP JUMPDEST PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA54 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA85 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAAD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 POP PUSH2 0xB08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E2774206368616E6765207468652064656661756C7473000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0xB20 DUP4 PUSH2 0xB1B CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x1D5F JUMP JUMPDEST PUSH2 0x12BA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x4CD JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x4D0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xBA2 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xBBB JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBBB JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xC1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xC3F JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xC48 DUP3 PUSH2 0x13AA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x630 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x88AAB6B3A9FDA9055D4A72094D587B65C9AADCC55FB1631E646A2F2C284CED5B PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD32 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD63 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD79 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD8B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xD98 DUP3 PUSH2 0x13E1 JUMP JUMPDEST PUSH2 0x630 PUSH0 PUSH2 0xB1B CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x1D5F JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE08 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2C SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE58 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE91 JUMPI PUSH2 0xE91 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA2 PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEC5 JUMPI PUSH2 0xEC5 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xED6 JUMPI PUSH2 0xED6 PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEFA JUMPI PUSH2 0xEFA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF0B JUMPI PUSH2 0xF0B PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF41 PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x392 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1040 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10B4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB20 DUP4 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x10F4 JUMPI PUSH2 0xB20 DUP4 PUSH2 0x15A9 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x114E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x114B SWAP2 DUP2 ADD SWAP1 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST POP PUSH2 0xB20 DUP4 DUP4 DUP4 PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x1233 PUSH2 0x166E JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x1285 PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1260 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SLOAD DUP4 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12F3 JUMPI PUSH2 0x12F3 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x131B JUMPI PUSH2 0x131B PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH3 0xFF0000 NOT AND PUSH3 0x10000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1345 JUMPI PUSH2 0x1345 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH4 0xFF000000 NOT AND PUSH4 0x1000000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1371 JUMPI PUSH2 0x1371 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x95D7A6740C7954755644347F27CBF1BEBF7D02A83371922A49D04DDCE4757C2A DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC85 SWAP3 SWAP2 SWAP1 PUSH2 0x1DFB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x13D8 PUSH2 0x16FF JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0x1735 JUMP JUMPDEST PUSH0 PUSH2 0x13EF PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1400 JUMPI PUSH2 0x1400 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI POP PUSH0 PUSH2 0x141A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145A JUMPI POP PUSH0 PUSH2 0x1446 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1457 JUMPI PUSH2 0x1457 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1486 JUMPI POP PUSH0 PUSH2 0x1472 PUSH1 0x80 DUP4 ADD PUSH1 0x60 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1483 JUMPI PUSH2 0x1483 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F75206E65656420746F20646566696E65207468652064656661756C742073 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x746174757320666F7220616C6C20746865206F7065726174696F6E7300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x155E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1582 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1616 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x164D DUP4 PUSH2 0x17C4 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x1659 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB20 JUMPI PUSH2 0x1668 DUP4 DUP4 PUSH2 0x1803 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1725 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x172D PUSH2 0x1828 JUMP JUMPDEST PUSH2 0x16B7 PUSH2 0x184E JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x13E1 JUMP JUMPDEST PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x1785 DUP3 DUP3 PUSH2 0x1EF8 JUMP JUMPDEST SWAP1 POP POP PUSH32 0x95D7A6740C7954755644347F27CBF1BEBF7D02A83371922A49D04DDCE4757C2A PUSH0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17B9 SWAP3 SWAP2 SWAP1 PUSH2 0x1F9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17CD DUP2 PUSH2 0x15A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20AA PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x187C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x16B7 PUSH2 0x18F0 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x1898 SWAP2 SWAP1 PUSH2 0x201E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x18D0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18D5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x18E6 DUP7 DUP4 DUP4 DUP8 PUSH2 0x1922 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1990 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x1989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1989 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST POP DUP2 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x8A4 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2034 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x4E7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x47B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A0A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E7 DUP2 PUSH2 0x19E6 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A27 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1A32 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1A42 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1AB4 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1ADF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF9 JUMPI PUSH2 0x1AF9 PUSH2 0x1A53 JUMP JUMPDEST PUSH2 0x1B0C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1A67 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1B20 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1B52 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x1B5D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x1B6D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x1B7D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B9D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BB4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1BBF DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BCE DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BE7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4E7 DUP4 DUP4 PUSH2 0x1B8D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C21 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C30 DUP3 DUP3 MLOAD PUSH2 0x1C05 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x1C42 PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x40 DUP2 ADD MLOAD PUSH2 0x1C55 PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH2 0xB20 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x392 DUP3 DUP5 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D1E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4E7 DUP2 PUSH2 0x19E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x47B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x1D70 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1D94 JUMPI PUSH2 0x1D94 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1DA2 DUP2 PUSH2 0x1D53 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1DB2 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH2 0x1DC5 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH2 0x1DD8 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DF4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x4E7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E73 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E7 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD PUSH2 0x392 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP3 LT PUSH2 0x1EA6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD PUSH3 0xFF0000 DUP4 PUSH1 0x10 SHL AND PUSH3 0xFF0000 NOT DUP3 AND OR DUP3 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP3 LT PUSH2 0x1EDC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD PUSH4 0xFF000000 DUP4 PUSH1 0x18 SHL AND PUSH4 0xFF000000 NOT DUP3 AND OR DUP3 SSTORE POP POP POP JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F03 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1F1F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF DUP3 AND SWAP2 POP DUP2 PUSH1 0xFF NOT DUP3 AND OR DUP4 SSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1F3E DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1F5A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFF00 DUP2 PUSH1 0x8 SHL AND DUP4 PUSH2 0xFFFF NOT DUP5 AND OR OR DUP5 SSTORE POP POP POP PUSH2 0x1F85 PUSH2 0x1F7F PUSH1 0x40 DUP5 ADD PUSH2 0x1E7E JUMP JUMPDEST DUP3 PUSH2 0x1E8A JUMP JUMPDEST PUSH2 0x630 PUSH2 0x1F94 PUSH1 0x60 DUP5 ADD PUSH2 0x1E7E JUMP JUMPDEST DUP3 PUSH2 0x1EC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 CALLDATALOAD PUSH2 0x1FB5 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FC2 PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1FD1 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FDE PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH2 0x1FED DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FFA PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH2 0x2009 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x2016 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID 0xC8 DUP4 SWAP1 0xE7 0xE6 0x21 PUSH22 0xBE0932452175B6A7222B6B094AB0EF984A5153C62034 TSTORE DUP10 PUSH22 0x360894A13BA1A3210667C828492DB98DCA3E2076CC37 CALLDATALOAD 0xA9 KECCAK256 LOG3 0xCA POP TSTORE CODESIZE 0x2B 0xBC COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220E63668 0xEB PUSH4 0xEB47DA51 CALL BALANCE 0xE4 BLOCKHASH SWAP4 0x29 0xDD CALLDATALOAD 0xE0 0xC6 PUSH25 0x6E56EBF3A1C0865A8E6CD41964736F6C634300081C00330000 ","sourceMap":"517:4552:53:-:0;;;1198:4:7;1155:48;;1315:72:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1372:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;517:4552:53;;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;532:2:88;5998:66:6;;;514:21:88;571:2;551:18;;;544:30;610:34;590:18;;;583:62;-1:-1:-1;;;661:18:88;;;654:37;708:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;880:36:88;;;6174:28:6;;868:2:88;853:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:311:88:-;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;200:16;;-1:-1:-1;;;;;245:31:88;;235:42;;225:70;;291:1;288;281:12;225:70;314:5;14:311;-1:-1:-1;;;14:311:88:o;738:184::-;517:4552:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LP_WHITELIST_ADMIN_ROLE_13949":{"entryPoint":null,"id":13949,"parameterSlots":0,"returnSlots":0},"@LP_WHITELIST_ROLE_13944":{"entryPoint":null,"id":13944,"parameterSlots":0,"returnSlots":0},"@__LPManualWhitelist_init_14020":{"entryPoint":5034,"id":14020,"parameterSlots":1,"returnSlots":0},"@__LPManualWhitelist_init_unchained_14050":{"entryPoint":5941,"id":14050,"parameterSlots":1,"returnSlots":0},"@__Pausable_init_1113":{"entryPoint":6222,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":6384,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":5887,"id":17875,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":6184,"id":1008,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_17890":{"entryPoint":3966,"id":17890,"parameterSlots":1,"returnSlots":0},"@_checkDefaultStatus_14111":{"entryPoint":5089,"id":14111,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_pause_1187":{"entryPoint":4733,"id":1187,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_1160":{"entryPoint":5817,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":5742,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":5545,"id":510,"parameterSlots":1,"returnSlots":0},"@_unpause_1203":{"entryPoint":4651,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":4289,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":5700,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":6084,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":5368,"id":17907,"parameterSlots":1,"returnSlots":0},"@_whitelistAddress_14167":{"entryPoint":4794,"id":14167,"parameterSlots":2,"returnSlots":0},"@acceptsDeposit_14232":{"entryPoint":1150,"id":14232,"parameterSlots":3,"returnSlots":1},"@acceptsTransfer_14350":{"entryPoint":1968,"id":14350,"parameterSlots":4,"returnSlots":1},"@acceptsWithdrawal_14275":{"entryPoint":2853,"id":14275,"parameterSlots":3,"returnSlots":1},"@currency_17973":{"entryPoint":3499,"id":17973,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":6147,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":6268,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getWhitelistDefaults_14147":{"entryPoint":3633,"id":14147,"parameterSlots":0,"returnSlots":1},"@initialize_14004":{"entryPoint":2948,"id":14004,"parameterSlots":1,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@pause_17941":{"entryPoint":2220,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":1791,"id":1026,"parameterSlots":0,"returnSlots":1},"@setWhitelistDefaults_14133":{"entryPoint":3217,"id":14133,"parameterSlots":1,"returnSlots":0},"@supportsInterface_14189":{"entryPoint":877,"id":14189,"parameterSlots":1,"returnSlots":1},"@supportsInterface_17931":{"entryPoint":3913,"id":17931,"parameterSlots":1,"returnSlots":1},"@unpause_17952":{"entryPoint":1262,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":1588,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":920,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":6434,"id":2608,"parameterSlots":4,"returnSlots":1},"@whitelistAddress_14077":{"entryPoint":2483,"id":14077,"parameterSlots":2,"returnSlots":0},"abi_decode_struct_WhitelistStatus_calldata":{"entryPoint":7053,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":6808,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_struct$_WhitelistStatus_$13967_calldata_ptr":{"entryPoint":7075,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":7652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6591,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":7438,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256":{"entryPoint":6975,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256":{"entryPoint":6677,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_WhitelistOptions_$13954":{"entryPoint":7779,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_WhitelistStatus_$13967_calldata_ptr":{"entryPoint":7127,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr":{"entryPoint":7519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_enum_WhitelistOptions":{"entryPoint":7173,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_WhitelistStatus":{"entryPoint":7205,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8222,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":7465,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_calldata_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed":{"entryPoint":8090,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed":{"entryPoint":7675,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8244,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25aad5c16fa3ed8e98c47d58aff8703d9bebbc6fbf387f5dc501db51eba3c1e3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7286,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7362,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b448ca61d16cc0abd607458d5a05d416229fd99256fc517d81a1c8428839788e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7704,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed":{"entryPoint":7272,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6759,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x21":{"entryPoint":7153,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6739,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_calldatat_enum_WhitelistOptions":{"entryPoint":7806,"id":null,"parameterSlots":1,"returnSlots":1},"update_storage_value_offset_0_t_struct$_WhitelistStatus_$13967_calldata_ptr_to_t_struct$_WhitelistStatus_$13967_storage":{"entryPoint":7928,"id":null,"parameterSlots":2,"returnSlots":0},"update_storage_value_offset_enum_WhitelistOptions_to_enum_WhitelistOptions":{"entryPoint":7872,"id":null,"parameterSlots":2,"returnSlots":0},"update_storage_value_offset_t_enum_WhitelistOptions_to_t_enum_WhitelistOptions":{"entryPoint":7818,"id":null,"parameterSlots":2,"returnSlots":0},"validator_revert_address":{"entryPoint":6630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_enum_WhitelistOptions":{"entryPoint":7507,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:19321:88","nodeType":"YulBlock","src":"0:19321:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"598:76:88","nodeType":"YulBlock","src":"598:76:88","statements":[{"nativeSrc":"608:26:88","nodeType":"YulAssignment","src":"608:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"620:9:88","nodeType":"YulIdentifier","src":"620:9:88"},{"kind":"number","nativeSrc":"631:2:88","nodeType":"YulLiteral","src":"631:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"616:3:88","nodeType":"YulIdentifier","src":"616:3:88"},"nativeSrc":"616:18:88","nodeType":"YulFunctionCall","src":"616:18:88"},"variableNames":[{"name":"tail","nativeSrc":"608:4:88","nodeType":"YulIdentifier","src":"608:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"650:9:88","nodeType":"YulIdentifier","src":"650:9:88"},{"name":"value0","nativeSrc":"661:6:88","nodeType":"YulIdentifier","src":"661:6:88"}],"functionName":{"name":"mstore","nativeSrc":"643:6:88","nodeType":"YulIdentifier","src":"643:6:88"},"nativeSrc":"643:25:88","nodeType":"YulFunctionCall","src":"643:25:88"},"nativeSrc":"643:25:88","nodeType":"YulExpressionStatement","src":"643:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"497:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"567:9:88","nodeType":"YulTypedName","src":"567:9:88","type":""},{"name":"value0","nativeSrc":"578:6:88","nodeType":"YulTypedName","src":"578:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"589:4:88","nodeType":"YulTypedName","src":"589:4:88","type":""}],"src":"497:177:88"},{"body":{"nativeSrc":"724:86:88","nodeType":"YulBlock","src":"724:86:88","statements":[{"body":{"nativeSrc":"788:16:88","nodeType":"YulBlock","src":"788:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"797:1:88","nodeType":"YulLiteral","src":"797:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"800:1:88","nodeType":"YulLiteral","src":"800:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"790:6:88","nodeType":"YulIdentifier","src":"790:6:88"},"nativeSrc":"790:12:88","nodeType":"YulFunctionCall","src":"790:12:88"},"nativeSrc":"790:12:88","nodeType":"YulExpressionStatement","src":"790:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"747:5:88","nodeType":"YulIdentifier","src":"747:5:88"},{"arguments":[{"name":"value","nativeSrc":"758:5:88","nodeType":"YulIdentifier","src":"758:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"773:3:88","nodeType":"YulLiteral","src":"773:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"778:1:88","nodeType":"YulLiteral","src":"778:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"769:3:88","nodeType":"YulIdentifier","src":"769:3:88"},"nativeSrc":"769:11:88","nodeType":"YulFunctionCall","src":"769:11:88"},{"kind":"number","nativeSrc":"782:1:88","nodeType":"YulLiteral","src":"782:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"765:3:88","nodeType":"YulIdentifier","src":"765:3:88"},"nativeSrc":"765:19:88","nodeType":"YulFunctionCall","src":"765:19:88"}],"functionName":{"name":"and","nativeSrc":"754:3:88","nodeType":"YulIdentifier","src":"754:3:88"},"nativeSrc":"754:31:88","nodeType":"YulFunctionCall","src":"754:31:88"}],"functionName":{"name":"eq","nativeSrc":"744:2:88","nodeType":"YulIdentifier","src":"744:2:88"},"nativeSrc":"744:42:88","nodeType":"YulFunctionCall","src":"744:42:88"}],"functionName":{"name":"iszero","nativeSrc":"737:6:88","nodeType":"YulIdentifier","src":"737:6:88"},"nativeSrc":"737:50:88","nodeType":"YulFunctionCall","src":"737:50:88"},"nativeSrc":"734:70:88","nodeType":"YulIf","src":"734:70:88"}]},"name":"validator_revert_address","nativeSrc":"679:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"713:5:88","nodeType":"YulTypedName","src":"713:5:88","type":""}],"src":"679:131:88"},{"body":{"nativeSrc":"885:177:88","nodeType":"YulBlock","src":"885:177:88","statements":[{"body":{"nativeSrc":"931:16:88","nodeType":"YulBlock","src":"931:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"940:1:88","nodeType":"YulLiteral","src":"940:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"943:1:88","nodeType":"YulLiteral","src":"943:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"933:6:88","nodeType":"YulIdentifier","src":"933:6:88"},"nativeSrc":"933:12:88","nodeType":"YulFunctionCall","src":"933:12:88"},"nativeSrc":"933:12:88","nodeType":"YulExpressionStatement","src":"933:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"906:7:88","nodeType":"YulIdentifier","src":"906:7:88"},{"name":"headStart","nativeSrc":"915:9:88","nodeType":"YulIdentifier","src":"915:9:88"}],"functionName":{"name":"sub","nativeSrc":"902:3:88","nodeType":"YulIdentifier","src":"902:3:88"},"nativeSrc":"902:23:88","nodeType":"YulFunctionCall","src":"902:23:88"},{"kind":"number","nativeSrc":"927:2:88","nodeType":"YulLiteral","src":"927:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"898:3:88","nodeType":"YulIdentifier","src":"898:3:88"},"nativeSrc":"898:32:88","nodeType":"YulFunctionCall","src":"898:32:88"},"nativeSrc":"895:52:88","nodeType":"YulIf","src":"895:52:88"},{"nativeSrc":"956:36:88","nodeType":"YulVariableDeclaration","src":"956:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"982:9:88","nodeType":"YulIdentifier","src":"982:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"969:12:88","nodeType":"YulIdentifier","src":"969:12:88"},"nativeSrc":"969:23:88","nodeType":"YulFunctionCall","src":"969:23:88"},"variables":[{"name":"value","nativeSrc":"960:5:88","nodeType":"YulTypedName","src":"960:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1026:5:88","nodeType":"YulIdentifier","src":"1026:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1001:24:88","nodeType":"YulIdentifier","src":"1001:24:88"},"nativeSrc":"1001:31:88","nodeType":"YulFunctionCall","src":"1001:31:88"},"nativeSrc":"1001:31:88","nodeType":"YulExpressionStatement","src":"1001:31:88"},{"nativeSrc":"1041:15:88","nodeType":"YulAssignment","src":"1041:15:88","value":{"name":"value","nativeSrc":"1051:5:88","nodeType":"YulIdentifier","src":"1051:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1041:6:88","nodeType":"YulIdentifier","src":"1041:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"815:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"851:9:88","nodeType":"YulTypedName","src":"851:9:88","type":""},{"name":"dataEnd","nativeSrc":"862:7:88","nodeType":"YulTypedName","src":"862:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"874:6:88","nodeType":"YulTypedName","src":"874:6:88","type":""}],"src":"815:247:88"},{"body":{"nativeSrc":"1188:404:88","nodeType":"YulBlock","src":"1188:404:88","statements":[{"body":{"nativeSrc":"1234:16:88","nodeType":"YulBlock","src":"1234:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1243:1:88","nodeType":"YulLiteral","src":"1243:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1246:1:88","nodeType":"YulLiteral","src":"1246:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1236:6:88","nodeType":"YulIdentifier","src":"1236:6:88"},"nativeSrc":"1236:12:88","nodeType":"YulFunctionCall","src":"1236:12:88"},"nativeSrc":"1236:12:88","nodeType":"YulExpressionStatement","src":"1236:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1209:7:88","nodeType":"YulIdentifier","src":"1209:7:88"},{"name":"headStart","nativeSrc":"1218:9:88","nodeType":"YulIdentifier","src":"1218:9:88"}],"functionName":{"name":"sub","nativeSrc":"1205:3:88","nodeType":"YulIdentifier","src":"1205:3:88"},"nativeSrc":"1205:23:88","nodeType":"YulFunctionCall","src":"1205:23:88"},{"kind":"number","nativeSrc":"1230:2:88","nodeType":"YulLiteral","src":"1230:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1201:3:88","nodeType":"YulIdentifier","src":"1201:3:88"},"nativeSrc":"1201:32:88","nodeType":"YulFunctionCall","src":"1201:32:88"},"nativeSrc":"1198:52:88","nodeType":"YulIf","src":"1198:52:88"},{"nativeSrc":"1259:36:88","nodeType":"YulVariableDeclaration","src":"1259:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1285:9:88","nodeType":"YulIdentifier","src":"1285:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1272:12:88","nodeType":"YulIdentifier","src":"1272:12:88"},"nativeSrc":"1272:23:88","nodeType":"YulFunctionCall","src":"1272:23:88"},"variables":[{"name":"value","nativeSrc":"1263:5:88","nodeType":"YulTypedName","src":"1263:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1329:5:88","nodeType":"YulIdentifier","src":"1329:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1304:24:88","nodeType":"YulIdentifier","src":"1304:24:88"},"nativeSrc":"1304:31:88","nodeType":"YulFunctionCall","src":"1304:31:88"},"nativeSrc":"1304:31:88","nodeType":"YulExpressionStatement","src":"1304:31:88"},{"nativeSrc":"1344:15:88","nodeType":"YulAssignment","src":"1344:15:88","value":{"name":"value","nativeSrc":"1354:5:88","nodeType":"YulIdentifier","src":"1354:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1344:6:88","nodeType":"YulIdentifier","src":"1344:6:88"}]},{"nativeSrc":"1368:47:88","nodeType":"YulVariableDeclaration","src":"1368:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1400:9:88","nodeType":"YulIdentifier","src":"1400:9:88"},{"kind":"number","nativeSrc":"1411:2:88","nodeType":"YulLiteral","src":"1411:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1396:3:88","nodeType":"YulIdentifier","src":"1396:3:88"},"nativeSrc":"1396:18:88","nodeType":"YulFunctionCall","src":"1396:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1383:12:88","nodeType":"YulIdentifier","src":"1383:12:88"},"nativeSrc":"1383:32:88","nodeType":"YulFunctionCall","src":"1383:32:88"},"variables":[{"name":"value_1","nativeSrc":"1372:7:88","nodeType":"YulTypedName","src":"1372:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1449:7:88","nodeType":"YulIdentifier","src":"1449:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1424:24:88","nodeType":"YulIdentifier","src":"1424:24:88"},"nativeSrc":"1424:33:88","nodeType":"YulFunctionCall","src":"1424:33:88"},"nativeSrc":"1424:33:88","nodeType":"YulExpressionStatement","src":"1424:33:88"},{"nativeSrc":"1466:17:88","nodeType":"YulAssignment","src":"1466:17:88","value":{"name":"value_1","nativeSrc":"1476:7:88","nodeType":"YulIdentifier","src":"1476:7:88"},"variableNames":[{"name":"value1","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"}]},{"nativeSrc":"1492:16:88","nodeType":"YulVariableDeclaration","src":"1492:16:88","value":{"kind":"number","nativeSrc":"1507:1:88","nodeType":"YulLiteral","src":"1507:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1496:7:88","nodeType":"YulTypedName","src":"1496:7:88","type":""}]},{"nativeSrc":"1517:43:88","nodeType":"YulAssignment","src":"1517:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1545:9:88","nodeType":"YulIdentifier","src":"1545:9:88"},{"kind":"number","nativeSrc":"1556:2:88","nodeType":"YulLiteral","src":"1556:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1541:3:88","nodeType":"YulIdentifier","src":"1541:3:88"},"nativeSrc":"1541:18:88","nodeType":"YulFunctionCall","src":"1541:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1528:12:88","nodeType":"YulIdentifier","src":"1528:12:88"},"nativeSrc":"1528:32:88","nodeType":"YulFunctionCall","src":"1528:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"1517:7:88","nodeType":"YulIdentifier","src":"1517:7:88"}]},{"nativeSrc":"1569:17:88","nodeType":"YulAssignment","src":"1569:17:88","value":{"name":"value_2","nativeSrc":"1579:7:88","nodeType":"YulIdentifier","src":"1579:7:88"},"variableNames":[{"name":"value2","nativeSrc":"1569:6:88","nodeType":"YulIdentifier","src":"1569:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256","nativeSrc":"1067:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1138:9:88","nodeType":"YulTypedName","src":"1138:9:88","type":""},{"name":"dataEnd","nativeSrc":"1149:7:88","nodeType":"YulTypedName","src":"1149:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1161:6:88","nodeType":"YulTypedName","src":"1161:6:88","type":""},{"name":"value1","nativeSrc":"1169:6:88","nodeType":"YulTypedName","src":"1169:6:88","type":""},{"name":"value2","nativeSrc":"1177:6:88","nodeType":"YulTypedName","src":"1177:6:88","type":""}],"src":"1067:525:88"},{"body":{"nativeSrc":"1719:102:88","nodeType":"YulBlock","src":"1719:102:88","statements":[{"nativeSrc":"1729:26:88","nodeType":"YulAssignment","src":"1729:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1741:9:88","nodeType":"YulIdentifier","src":"1741:9:88"},{"kind":"number","nativeSrc":"1752:2:88","nodeType":"YulLiteral","src":"1752:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1737:3:88","nodeType":"YulIdentifier","src":"1737:3:88"},"nativeSrc":"1737:18:88","nodeType":"YulFunctionCall","src":"1737:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1729:4:88","nodeType":"YulIdentifier","src":"1729:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1771:9:88","nodeType":"YulIdentifier","src":"1771:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1786:6:88","nodeType":"YulIdentifier","src":"1786:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1802:3:88","nodeType":"YulLiteral","src":"1802:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1807:1:88","nodeType":"YulLiteral","src":"1807:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1798:3:88","nodeType":"YulIdentifier","src":"1798:3:88"},"nativeSrc":"1798:11:88","nodeType":"YulFunctionCall","src":"1798:11:88"},{"kind":"number","nativeSrc":"1811:1:88","nodeType":"YulLiteral","src":"1811:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1794:3:88","nodeType":"YulIdentifier","src":"1794:3:88"},"nativeSrc":"1794:19:88","nodeType":"YulFunctionCall","src":"1794:19:88"}],"functionName":{"name":"and","nativeSrc":"1782:3:88","nodeType":"YulIdentifier","src":"1782:3:88"},"nativeSrc":"1782:32:88","nodeType":"YulFunctionCall","src":"1782:32:88"}],"functionName":{"name":"mstore","nativeSrc":"1764:6:88","nodeType":"YulIdentifier","src":"1764:6:88"},"nativeSrc":"1764:51:88","nodeType":"YulFunctionCall","src":"1764:51:88"},"nativeSrc":"1764:51:88","nodeType":"YulExpressionStatement","src":"1764:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"1597:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1688:9:88","nodeType":"YulTypedName","src":"1688:9:88","type":""},{"name":"value0","nativeSrc":"1699:6:88","nodeType":"YulTypedName","src":"1699:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1710:4:88","nodeType":"YulTypedName","src":"1710:4:88","type":""}],"src":"1597:224:88"},{"body":{"nativeSrc":"1858:95:88","nodeType":"YulBlock","src":"1858:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1875:1:88","nodeType":"YulLiteral","src":"1875:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1882:3:88","nodeType":"YulLiteral","src":"1882:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1887:10:88","nodeType":"YulLiteral","src":"1887:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1878:3:88","nodeType":"YulIdentifier","src":"1878:3:88"},"nativeSrc":"1878:20:88","nodeType":"YulFunctionCall","src":"1878:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1868:6:88","nodeType":"YulIdentifier","src":"1868:6:88"},"nativeSrc":"1868:31:88","nodeType":"YulFunctionCall","src":"1868:31:88"},"nativeSrc":"1868:31:88","nodeType":"YulExpressionStatement","src":"1868:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1915:1:88","nodeType":"YulLiteral","src":"1915:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1918:4:88","nodeType":"YulLiteral","src":"1918:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1908:6:88","nodeType":"YulIdentifier","src":"1908:6:88"},"nativeSrc":"1908:15:88","nodeType":"YulFunctionCall","src":"1908:15:88"},"nativeSrc":"1908:15:88","nodeType":"YulExpressionStatement","src":"1908:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1939:1:88","nodeType":"YulLiteral","src":"1939:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1942:4:88","nodeType":"YulLiteral","src":"1942:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1932:6:88","nodeType":"YulIdentifier","src":"1932:6:88"},"nativeSrc":"1932:15:88","nodeType":"YulFunctionCall","src":"1932:15:88"},"nativeSrc":"1932:15:88","nodeType":"YulExpressionStatement","src":"1932:15:88"}]},"name":"panic_error_0x41","nativeSrc":"1826:127:88","nodeType":"YulFunctionDefinition","src":"1826:127:88"},{"body":{"nativeSrc":"2003:230:88","nodeType":"YulBlock","src":"2003:230:88","statements":[{"nativeSrc":"2013:19:88","nodeType":"YulAssignment","src":"2013:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"2029:2:88","nodeType":"YulLiteral","src":"2029:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2023:5:88","nodeType":"YulIdentifier","src":"2023:5:88"},"nativeSrc":"2023:9:88","nodeType":"YulFunctionCall","src":"2023:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"2013:6:88","nodeType":"YulIdentifier","src":"2013:6:88"}]},{"nativeSrc":"2041:58:88","nodeType":"YulVariableDeclaration","src":"2041:58:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"2063:6:88","nodeType":"YulIdentifier","src":"2063:6:88"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"2079:4:88","nodeType":"YulIdentifier","src":"2079:4:88"},{"kind":"number","nativeSrc":"2085:2:88","nodeType":"YulLiteral","src":"2085:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2075:3:88","nodeType":"YulIdentifier","src":"2075:3:88"},"nativeSrc":"2075:13:88","nodeType":"YulFunctionCall","src":"2075:13:88"},{"arguments":[{"kind":"number","nativeSrc":"2094:2:88","nodeType":"YulLiteral","src":"2094:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2090:3:88","nodeType":"YulIdentifier","src":"2090:3:88"},"nativeSrc":"2090:7:88","nodeType":"YulFunctionCall","src":"2090:7:88"}],"functionName":{"name":"and","nativeSrc":"2071:3:88","nodeType":"YulIdentifier","src":"2071:3:88"},"nativeSrc":"2071:27:88","nodeType":"YulFunctionCall","src":"2071:27:88"}],"functionName":{"name":"add","nativeSrc":"2059:3:88","nodeType":"YulIdentifier","src":"2059:3:88"},"nativeSrc":"2059:40:88","nodeType":"YulFunctionCall","src":"2059:40:88"},"variables":[{"name":"newFreePtr","nativeSrc":"2045:10:88","nodeType":"YulTypedName","src":"2045:10:88","type":""}]},{"body":{"nativeSrc":"2174:22:88","nodeType":"YulBlock","src":"2174:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2176:16:88","nodeType":"YulIdentifier","src":"2176:16:88"},"nativeSrc":"2176:18:88","nodeType":"YulFunctionCall","src":"2176:18:88"},"nativeSrc":"2176:18:88","nodeType":"YulExpressionStatement","src":"2176:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2117:10:88","nodeType":"YulIdentifier","src":"2117:10:88"},{"kind":"number","nativeSrc":"2129:18:88","nodeType":"YulLiteral","src":"2129:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2114:2:88","nodeType":"YulIdentifier","src":"2114:2:88"},"nativeSrc":"2114:34:88","nodeType":"YulFunctionCall","src":"2114:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2153:10:88","nodeType":"YulIdentifier","src":"2153:10:88"},{"name":"memPtr","nativeSrc":"2165:6:88","nodeType":"YulIdentifier","src":"2165:6:88"}],"functionName":{"name":"lt","nativeSrc":"2150:2:88","nodeType":"YulIdentifier","src":"2150:2:88"},"nativeSrc":"2150:22:88","nodeType":"YulFunctionCall","src":"2150:22:88"}],"functionName":{"name":"or","nativeSrc":"2111:2:88","nodeType":"YulIdentifier","src":"2111:2:88"},"nativeSrc":"2111:62:88","nodeType":"YulFunctionCall","src":"2111:62:88"},"nativeSrc":"2108:88:88","nodeType":"YulIf","src":"2108:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2212:2:88","nodeType":"YulLiteral","src":"2212:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2216:10:88","nodeType":"YulIdentifier","src":"2216:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2205:6:88","nodeType":"YulIdentifier","src":"2205:6:88"},"nativeSrc":"2205:22:88","nodeType":"YulFunctionCall","src":"2205:22:88"},"nativeSrc":"2205:22:88","nodeType":"YulExpressionStatement","src":"2205:22:88"}]},"name":"allocate_memory","nativeSrc":"1958:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1983:4:88","nodeType":"YulTypedName","src":"1983:4:88","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1992:6:88","nodeType":"YulTypedName","src":"1992:6:88","type":""}],"src":"1958:275:88"},{"body":{"nativeSrc":"2334:804:88","nodeType":"YulBlock","src":"2334:804:88","statements":[{"body":{"nativeSrc":"2380:16:88","nodeType":"YulBlock","src":"2380:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2389:1:88","nodeType":"YulLiteral","src":"2389:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2392:1:88","nodeType":"YulLiteral","src":"2392:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2382:6:88","nodeType":"YulIdentifier","src":"2382:6:88"},"nativeSrc":"2382:12:88","nodeType":"YulFunctionCall","src":"2382:12:88"},"nativeSrc":"2382:12:88","nodeType":"YulExpressionStatement","src":"2382:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2355:7:88","nodeType":"YulIdentifier","src":"2355:7:88"},{"name":"headStart","nativeSrc":"2364:9:88","nodeType":"YulIdentifier","src":"2364:9:88"}],"functionName":{"name":"sub","nativeSrc":"2351:3:88","nodeType":"YulIdentifier","src":"2351:3:88"},"nativeSrc":"2351:23:88","nodeType":"YulFunctionCall","src":"2351:23:88"},{"kind":"number","nativeSrc":"2376:2:88","nodeType":"YulLiteral","src":"2376:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2347:3:88","nodeType":"YulIdentifier","src":"2347:3:88"},"nativeSrc":"2347:32:88","nodeType":"YulFunctionCall","src":"2347:32:88"},"nativeSrc":"2344:52:88","nodeType":"YulIf","src":"2344:52:88"},{"nativeSrc":"2405:36:88","nodeType":"YulVariableDeclaration","src":"2405:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2431:9:88","nodeType":"YulIdentifier","src":"2431:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2418:12:88","nodeType":"YulIdentifier","src":"2418:12:88"},"nativeSrc":"2418:23:88","nodeType":"YulFunctionCall","src":"2418:23:88"},"variables":[{"name":"value","nativeSrc":"2409:5:88","nodeType":"YulTypedName","src":"2409:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2475:5:88","nodeType":"YulIdentifier","src":"2475:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2450:24:88","nodeType":"YulIdentifier","src":"2450:24:88"},"nativeSrc":"2450:31:88","nodeType":"YulFunctionCall","src":"2450:31:88"},"nativeSrc":"2450:31:88","nodeType":"YulExpressionStatement","src":"2450:31:88"},{"nativeSrc":"2490:15:88","nodeType":"YulAssignment","src":"2490:15:88","value":{"name":"value","nativeSrc":"2500:5:88","nodeType":"YulIdentifier","src":"2500:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2490:6:88","nodeType":"YulIdentifier","src":"2490:6:88"}]},{"nativeSrc":"2514:46:88","nodeType":"YulVariableDeclaration","src":"2514:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2545:9:88","nodeType":"YulIdentifier","src":"2545:9:88"},{"kind":"number","nativeSrc":"2556:2:88","nodeType":"YulLiteral","src":"2556:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2541:3:88","nodeType":"YulIdentifier","src":"2541:3:88"},"nativeSrc":"2541:18:88","nodeType":"YulFunctionCall","src":"2541:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2528:12:88","nodeType":"YulIdentifier","src":"2528:12:88"},"nativeSrc":"2528:32:88","nodeType":"YulFunctionCall","src":"2528:32:88"},"variables":[{"name":"offset","nativeSrc":"2518:6:88","nodeType":"YulTypedName","src":"2518:6:88","type":""}]},{"body":{"nativeSrc":"2603:16:88","nodeType":"YulBlock","src":"2603:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2612:1:88","nodeType":"YulLiteral","src":"2612:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2615:1:88","nodeType":"YulLiteral","src":"2615:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2605:6:88","nodeType":"YulIdentifier","src":"2605:6:88"},"nativeSrc":"2605:12:88","nodeType":"YulFunctionCall","src":"2605:12:88"},"nativeSrc":"2605:12:88","nodeType":"YulExpressionStatement","src":"2605:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2575:6:88","nodeType":"YulIdentifier","src":"2575:6:88"},{"kind":"number","nativeSrc":"2583:18:88","nodeType":"YulLiteral","src":"2583:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2572:2:88","nodeType":"YulIdentifier","src":"2572:2:88"},"nativeSrc":"2572:30:88","nodeType":"YulFunctionCall","src":"2572:30:88"},"nativeSrc":"2569:50:88","nodeType":"YulIf","src":"2569:50:88"},{"nativeSrc":"2628:32:88","nodeType":"YulVariableDeclaration","src":"2628:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2642:9:88","nodeType":"YulIdentifier","src":"2642:9:88"},{"name":"offset","nativeSrc":"2653:6:88","nodeType":"YulIdentifier","src":"2653:6:88"}],"functionName":{"name":"add","nativeSrc":"2638:3:88","nodeType":"YulIdentifier","src":"2638:3:88"},"nativeSrc":"2638:22:88","nodeType":"YulFunctionCall","src":"2638:22:88"},"variables":[{"name":"_1","nativeSrc":"2632:2:88","nodeType":"YulTypedName","src":"2632:2:88","type":""}]},{"body":{"nativeSrc":"2708:16:88","nodeType":"YulBlock","src":"2708:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2717:1:88","nodeType":"YulLiteral","src":"2717:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2720:1:88","nodeType":"YulLiteral","src":"2720:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2710:6:88","nodeType":"YulIdentifier","src":"2710:6:88"},"nativeSrc":"2710:12:88","nodeType":"YulFunctionCall","src":"2710:12:88"},"nativeSrc":"2710:12:88","nodeType":"YulExpressionStatement","src":"2710:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2687:2:88","nodeType":"YulIdentifier","src":"2687:2:88"},{"kind":"number","nativeSrc":"2691:4:88","nodeType":"YulLiteral","src":"2691:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2683:3:88","nodeType":"YulIdentifier","src":"2683:3:88"},"nativeSrc":"2683:13:88","nodeType":"YulFunctionCall","src":"2683:13:88"},{"name":"dataEnd","nativeSrc":"2698:7:88","nodeType":"YulIdentifier","src":"2698:7:88"}],"functionName":{"name":"slt","nativeSrc":"2679:3:88","nodeType":"YulIdentifier","src":"2679:3:88"},"nativeSrc":"2679:27:88","nodeType":"YulFunctionCall","src":"2679:27:88"}],"functionName":{"name":"iszero","nativeSrc":"2672:6:88","nodeType":"YulIdentifier","src":"2672:6:88"},"nativeSrc":"2672:35:88","nodeType":"YulFunctionCall","src":"2672:35:88"},"nativeSrc":"2669:55:88","nodeType":"YulIf","src":"2669:55:88"},{"nativeSrc":"2733:30:88","nodeType":"YulVariableDeclaration","src":"2733:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"2760:2:88","nodeType":"YulIdentifier","src":"2760:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"2747:12:88","nodeType":"YulIdentifier","src":"2747:12:88"},"nativeSrc":"2747:16:88","nodeType":"YulFunctionCall","src":"2747:16:88"},"variables":[{"name":"length","nativeSrc":"2737:6:88","nodeType":"YulTypedName","src":"2737:6:88","type":""}]},{"body":{"nativeSrc":"2806:22:88","nodeType":"YulBlock","src":"2806:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2808:16:88","nodeType":"YulIdentifier","src":"2808:16:88"},"nativeSrc":"2808:18:88","nodeType":"YulFunctionCall","src":"2808:18:88"},"nativeSrc":"2808:18:88","nodeType":"YulExpressionStatement","src":"2808:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2778:6:88","nodeType":"YulIdentifier","src":"2778:6:88"},{"kind":"number","nativeSrc":"2786:18:88","nodeType":"YulLiteral","src":"2786:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2775:2:88","nodeType":"YulIdentifier","src":"2775:2:88"},"nativeSrc":"2775:30:88","nodeType":"YulFunctionCall","src":"2775:30:88"},"nativeSrc":"2772:56:88","nodeType":"YulIf","src":"2772:56:88"},{"nativeSrc":"2837:70:88","nodeType":"YulVariableDeclaration","src":"2837:70:88","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2878:6:88","nodeType":"YulIdentifier","src":"2878:6:88"},{"kind":"number","nativeSrc":"2886:4:88","nodeType":"YulLiteral","src":"2886:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2874:3:88","nodeType":"YulIdentifier","src":"2874:3:88"},"nativeSrc":"2874:17:88","nodeType":"YulFunctionCall","src":"2874:17:88"},{"arguments":[{"kind":"number","nativeSrc":"2897:2:88","nodeType":"YulLiteral","src":"2897:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2893:3:88","nodeType":"YulIdentifier","src":"2893:3:88"},"nativeSrc":"2893:7:88","nodeType":"YulFunctionCall","src":"2893:7:88"}],"functionName":{"name":"and","nativeSrc":"2870:3:88","nodeType":"YulIdentifier","src":"2870:3:88"},"nativeSrc":"2870:31:88","nodeType":"YulFunctionCall","src":"2870:31:88"},{"kind":"number","nativeSrc":"2903:2:88","nodeType":"YulLiteral","src":"2903:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2866:3:88","nodeType":"YulIdentifier","src":"2866:3:88"},"nativeSrc":"2866:40:88","nodeType":"YulFunctionCall","src":"2866:40:88"}],"functionName":{"name":"allocate_memory","nativeSrc":"2850:15:88","nodeType":"YulIdentifier","src":"2850:15:88"},"nativeSrc":"2850:57:88","nodeType":"YulFunctionCall","src":"2850:57:88"},"variables":[{"name":"array","nativeSrc":"2841:5:88","nodeType":"YulTypedName","src":"2841:5:88","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2923:5:88","nodeType":"YulIdentifier","src":"2923:5:88"},{"name":"length","nativeSrc":"2930:6:88","nodeType":"YulIdentifier","src":"2930:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2916:6:88","nodeType":"YulIdentifier","src":"2916:6:88"},"nativeSrc":"2916:21:88","nodeType":"YulFunctionCall","src":"2916:21:88"},"nativeSrc":"2916:21:88","nodeType":"YulExpressionStatement","src":"2916:21:88"},{"body":{"nativeSrc":"2987:16:88","nodeType":"YulBlock","src":"2987:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2996:1:88","nodeType":"YulLiteral","src":"2996:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2999:1:88","nodeType":"YulLiteral","src":"2999:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2989:6:88","nodeType":"YulIdentifier","src":"2989:6:88"},"nativeSrc":"2989:12:88","nodeType":"YulFunctionCall","src":"2989:12:88"},"nativeSrc":"2989:12:88","nodeType":"YulExpressionStatement","src":"2989:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2960:2:88","nodeType":"YulIdentifier","src":"2960:2:88"},{"name":"length","nativeSrc":"2964:6:88","nodeType":"YulIdentifier","src":"2964:6:88"}],"functionName":{"name":"add","nativeSrc":"2956:3:88","nodeType":"YulIdentifier","src":"2956:3:88"},"nativeSrc":"2956:15:88","nodeType":"YulFunctionCall","src":"2956:15:88"},{"kind":"number","nativeSrc":"2973:2:88","nodeType":"YulLiteral","src":"2973:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2952:3:88","nodeType":"YulIdentifier","src":"2952:3:88"},"nativeSrc":"2952:24:88","nodeType":"YulFunctionCall","src":"2952:24:88"},{"name":"dataEnd","nativeSrc":"2978:7:88","nodeType":"YulIdentifier","src":"2978:7:88"}],"functionName":{"name":"gt","nativeSrc":"2949:2:88","nodeType":"YulIdentifier","src":"2949:2:88"},"nativeSrc":"2949:37:88","nodeType":"YulFunctionCall","src":"2949:37:88"},"nativeSrc":"2946:57:88","nodeType":"YulIf","src":"2946:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"3029:5:88","nodeType":"YulIdentifier","src":"3029:5:88"},{"kind":"number","nativeSrc":"3036:2:88","nodeType":"YulLiteral","src":"3036:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3025:3:88","nodeType":"YulIdentifier","src":"3025:3:88"},"nativeSrc":"3025:14:88","nodeType":"YulFunctionCall","src":"3025:14:88"},{"arguments":[{"name":"_1","nativeSrc":"3045:2:88","nodeType":"YulIdentifier","src":"3045:2:88"},{"kind":"number","nativeSrc":"3049:2:88","nodeType":"YulLiteral","src":"3049:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3041:3:88","nodeType":"YulIdentifier","src":"3041:3:88"},"nativeSrc":"3041:11:88","nodeType":"YulFunctionCall","src":"3041:11:88"},{"name":"length","nativeSrc":"3054:6:88","nodeType":"YulIdentifier","src":"3054:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"3012:12:88","nodeType":"YulIdentifier","src":"3012:12:88"},"nativeSrc":"3012:49:88","nodeType":"YulFunctionCall","src":"3012:49:88"},"nativeSrc":"3012:49:88","nodeType":"YulExpressionStatement","src":"3012:49:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"3085:5:88","nodeType":"YulIdentifier","src":"3085:5:88"},{"name":"length","nativeSrc":"3092:6:88","nodeType":"YulIdentifier","src":"3092:6:88"}],"functionName":{"name":"add","nativeSrc":"3081:3:88","nodeType":"YulIdentifier","src":"3081:3:88"},"nativeSrc":"3081:18:88","nodeType":"YulFunctionCall","src":"3081:18:88"},{"kind":"number","nativeSrc":"3101:2:88","nodeType":"YulLiteral","src":"3101:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3077:3:88","nodeType":"YulIdentifier","src":"3077:3:88"},"nativeSrc":"3077:27:88","nodeType":"YulFunctionCall","src":"3077:27:88"},{"kind":"number","nativeSrc":"3106:1:88","nodeType":"YulLiteral","src":"3106:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3070:6:88","nodeType":"YulIdentifier","src":"3070:6:88"},"nativeSrc":"3070:38:88","nodeType":"YulFunctionCall","src":"3070:38:88"},"nativeSrc":"3070:38:88","nodeType":"YulExpressionStatement","src":"3070:38:88"},{"nativeSrc":"3117:15:88","nodeType":"YulAssignment","src":"3117:15:88","value":{"name":"array","nativeSrc":"3127:5:88","nodeType":"YulIdentifier","src":"3127:5:88"},"variableNames":[{"name":"value1","nativeSrc":"3117:6:88","nodeType":"YulIdentifier","src":"3117:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"2238:900:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2292:9:88","nodeType":"YulTypedName","src":"2292:9:88","type":""},{"name":"dataEnd","nativeSrc":"2303:7:88","nodeType":"YulTypedName","src":"2303:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2315:6:88","nodeType":"YulTypedName","src":"2315:6:88","type":""},{"name":"value1","nativeSrc":"2323:6:88","nodeType":"YulTypedName","src":"2323:6:88","type":""}],"src":"2238:900:88"},{"body":{"nativeSrc":"3281:529:88","nodeType":"YulBlock","src":"3281:529:88","statements":[{"body":{"nativeSrc":"3328:16:88","nodeType":"YulBlock","src":"3328:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3337:1:88","nodeType":"YulLiteral","src":"3337:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3340:1:88","nodeType":"YulLiteral","src":"3340:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3330:6:88","nodeType":"YulIdentifier","src":"3330:6:88"},"nativeSrc":"3330:12:88","nodeType":"YulFunctionCall","src":"3330:12:88"},"nativeSrc":"3330:12:88","nodeType":"YulExpressionStatement","src":"3330:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3302:7:88","nodeType":"YulIdentifier","src":"3302:7:88"},{"name":"headStart","nativeSrc":"3311:9:88","nodeType":"YulIdentifier","src":"3311:9:88"}],"functionName":{"name":"sub","nativeSrc":"3298:3:88","nodeType":"YulIdentifier","src":"3298:3:88"},"nativeSrc":"3298:23:88","nodeType":"YulFunctionCall","src":"3298:23:88"},{"kind":"number","nativeSrc":"3323:3:88","nodeType":"YulLiteral","src":"3323:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3294:3:88","nodeType":"YulIdentifier","src":"3294:3:88"},"nativeSrc":"3294:33:88","nodeType":"YulFunctionCall","src":"3294:33:88"},"nativeSrc":"3291:53:88","nodeType":"YulIf","src":"3291:53:88"},{"nativeSrc":"3353:36:88","nodeType":"YulVariableDeclaration","src":"3353:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3379:9:88","nodeType":"YulIdentifier","src":"3379:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3366:12:88","nodeType":"YulIdentifier","src":"3366:12:88"},"nativeSrc":"3366:23:88","nodeType":"YulFunctionCall","src":"3366:23:88"},"variables":[{"name":"value","nativeSrc":"3357:5:88","nodeType":"YulTypedName","src":"3357:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3423:5:88","nodeType":"YulIdentifier","src":"3423:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3398:24:88","nodeType":"YulIdentifier","src":"3398:24:88"},"nativeSrc":"3398:31:88","nodeType":"YulFunctionCall","src":"3398:31:88"},"nativeSrc":"3398:31:88","nodeType":"YulExpressionStatement","src":"3398:31:88"},{"nativeSrc":"3438:15:88","nodeType":"YulAssignment","src":"3438:15:88","value":{"name":"value","nativeSrc":"3448:5:88","nodeType":"YulIdentifier","src":"3448:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3438:6:88","nodeType":"YulIdentifier","src":"3438:6:88"}]},{"nativeSrc":"3462:47:88","nodeType":"YulVariableDeclaration","src":"3462:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3494:9:88","nodeType":"YulIdentifier","src":"3494:9:88"},{"kind":"number","nativeSrc":"3505:2:88","nodeType":"YulLiteral","src":"3505:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3490:3:88","nodeType":"YulIdentifier","src":"3490:3:88"},"nativeSrc":"3490:18:88","nodeType":"YulFunctionCall","src":"3490:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3477:12:88","nodeType":"YulIdentifier","src":"3477:12:88"},"nativeSrc":"3477:32:88","nodeType":"YulFunctionCall","src":"3477:32:88"},"variables":[{"name":"value_1","nativeSrc":"3466:7:88","nodeType":"YulTypedName","src":"3466:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"3543:7:88","nodeType":"YulIdentifier","src":"3543:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3518:24:88","nodeType":"YulIdentifier","src":"3518:24:88"},"nativeSrc":"3518:33:88","nodeType":"YulFunctionCall","src":"3518:33:88"},"nativeSrc":"3518:33:88","nodeType":"YulExpressionStatement","src":"3518:33:88"},{"nativeSrc":"3560:17:88","nodeType":"YulAssignment","src":"3560:17:88","value":{"name":"value_1","nativeSrc":"3570:7:88","nodeType":"YulIdentifier","src":"3570:7:88"},"variableNames":[{"name":"value1","nativeSrc":"3560:6:88","nodeType":"YulIdentifier","src":"3560:6:88"}]},{"nativeSrc":"3586:47:88","nodeType":"YulVariableDeclaration","src":"3586:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3618:9:88","nodeType":"YulIdentifier","src":"3618:9:88"},{"kind":"number","nativeSrc":"3629:2:88","nodeType":"YulLiteral","src":"3629:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3614:3:88","nodeType":"YulIdentifier","src":"3614:3:88"},"nativeSrc":"3614:18:88","nodeType":"YulFunctionCall","src":"3614:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3601:12:88","nodeType":"YulIdentifier","src":"3601:12:88"},"nativeSrc":"3601:32:88","nodeType":"YulFunctionCall","src":"3601:32:88"},"variables":[{"name":"value_2","nativeSrc":"3590:7:88","nodeType":"YulTypedName","src":"3590:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"3667:7:88","nodeType":"YulIdentifier","src":"3667:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3642:24:88","nodeType":"YulIdentifier","src":"3642:24:88"},"nativeSrc":"3642:33:88","nodeType":"YulFunctionCall","src":"3642:33:88"},"nativeSrc":"3642:33:88","nodeType":"YulExpressionStatement","src":"3642:33:88"},{"nativeSrc":"3684:17:88","nodeType":"YulAssignment","src":"3684:17:88","value":{"name":"value_2","nativeSrc":"3694:7:88","nodeType":"YulIdentifier","src":"3694:7:88"},"variableNames":[{"name":"value2","nativeSrc":"3684:6:88","nodeType":"YulIdentifier","src":"3684:6:88"}]},{"nativeSrc":"3710:16:88","nodeType":"YulVariableDeclaration","src":"3710:16:88","value":{"kind":"number","nativeSrc":"3725:1:88","nodeType":"YulLiteral","src":"3725:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"3714:7:88","nodeType":"YulTypedName","src":"3714:7:88","type":""}]},{"nativeSrc":"3735:43:88","nodeType":"YulAssignment","src":"3735:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3763:9:88","nodeType":"YulIdentifier","src":"3763:9:88"},{"kind":"number","nativeSrc":"3774:2:88","nodeType":"YulLiteral","src":"3774:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3759:3:88","nodeType":"YulIdentifier","src":"3759:3:88"},"nativeSrc":"3759:18:88","nodeType":"YulFunctionCall","src":"3759:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3746:12:88","nodeType":"YulIdentifier","src":"3746:12:88"},"nativeSrc":"3746:32:88","nodeType":"YulFunctionCall","src":"3746:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"3735:7:88","nodeType":"YulIdentifier","src":"3735:7:88"}]},{"nativeSrc":"3787:17:88","nodeType":"YulAssignment","src":"3787:17:88","value":{"name":"value_3","nativeSrc":"3797:7:88","nodeType":"YulIdentifier","src":"3797:7:88"},"variableNames":[{"name":"value3","nativeSrc":"3787:6:88","nodeType":"YulIdentifier","src":"3787:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256","nativeSrc":"3143:667:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3223:9:88","nodeType":"YulTypedName","src":"3223:9:88","type":""},{"name":"dataEnd","nativeSrc":"3234:7:88","nodeType":"YulTypedName","src":"3234:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3246:6:88","nodeType":"YulTypedName","src":"3246:6:88","type":""},{"name":"value1","nativeSrc":"3254:6:88","nodeType":"YulTypedName","src":"3254:6:88","type":""},{"name":"value2","nativeSrc":"3262:6:88","nodeType":"YulTypedName","src":"3262:6:88","type":""},{"name":"value3","nativeSrc":"3270:6:88","nodeType":"YulTypedName","src":"3270:6:88","type":""}],"src":"3143:667:88"},{"body":{"nativeSrc":"3893:86:88","nodeType":"YulBlock","src":"3893:86:88","statements":[{"body":{"nativeSrc":"3933:16:88","nodeType":"YulBlock","src":"3933:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3942:1:88","nodeType":"YulLiteral","src":"3942:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3945:1:88","nodeType":"YulLiteral","src":"3945:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3935:6:88","nodeType":"YulIdentifier","src":"3935:6:88"},"nativeSrc":"3935:12:88","nodeType":"YulFunctionCall","src":"3935:12:88"},"nativeSrc":"3935:12:88","nodeType":"YulExpressionStatement","src":"3935:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"3914:3:88","nodeType":"YulIdentifier","src":"3914:3:88"},{"name":"offset","nativeSrc":"3919:6:88","nodeType":"YulIdentifier","src":"3919:6:88"}],"functionName":{"name":"sub","nativeSrc":"3910:3:88","nodeType":"YulIdentifier","src":"3910:3:88"},"nativeSrc":"3910:16:88","nodeType":"YulFunctionCall","src":"3910:16:88"},{"kind":"number","nativeSrc":"3928:3:88","nodeType":"YulLiteral","src":"3928:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3906:3:88","nodeType":"YulIdentifier","src":"3906:3:88"},"nativeSrc":"3906:26:88","nodeType":"YulFunctionCall","src":"3906:26:88"},"nativeSrc":"3903:46:88","nodeType":"YulIf","src":"3903:46:88"},{"nativeSrc":"3958:15:88","nodeType":"YulAssignment","src":"3958:15:88","value":{"name":"offset","nativeSrc":"3967:6:88","nodeType":"YulIdentifier","src":"3967:6:88"},"variableNames":[{"name":"value","nativeSrc":"3958:5:88","nodeType":"YulIdentifier","src":"3958:5:88"}]}]},"name":"abi_decode_struct_WhitelistStatus_calldata","nativeSrc":"3815:164:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3867:6:88","nodeType":"YulTypedName","src":"3867:6:88","type":""},{"name":"end","nativeSrc":"3875:3:88","nodeType":"YulTypedName","src":"3875:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3883:5:88","nodeType":"YulTypedName","src":"3883:5:88","type":""}],"src":"3815:164:88"},{"body":{"nativeSrc":"4107:268:88","nodeType":"YulBlock","src":"4107:268:88","statements":[{"body":{"nativeSrc":"4154:16:88","nodeType":"YulBlock","src":"4154:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4163:1:88","nodeType":"YulLiteral","src":"4163:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4166:1:88","nodeType":"YulLiteral","src":"4166:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4156:6:88","nodeType":"YulIdentifier","src":"4156:6:88"},"nativeSrc":"4156:12:88","nodeType":"YulFunctionCall","src":"4156:12:88"},"nativeSrc":"4156:12:88","nodeType":"YulExpressionStatement","src":"4156:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4128:7:88","nodeType":"YulIdentifier","src":"4128:7:88"},{"name":"headStart","nativeSrc":"4137:9:88","nodeType":"YulIdentifier","src":"4137:9:88"}],"functionName":{"name":"sub","nativeSrc":"4124:3:88","nodeType":"YulIdentifier","src":"4124:3:88"},"nativeSrc":"4124:23:88","nodeType":"YulFunctionCall","src":"4124:23:88"},{"kind":"number","nativeSrc":"4149:3:88","nodeType":"YulLiteral","src":"4149:3:88","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"4120:3:88","nodeType":"YulIdentifier","src":"4120:3:88"},"nativeSrc":"4120:33:88","nodeType":"YulFunctionCall","src":"4120:33:88"},"nativeSrc":"4117:53:88","nodeType":"YulIf","src":"4117:53:88"},{"nativeSrc":"4179:36:88","nodeType":"YulVariableDeclaration","src":"4179:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4205:9:88","nodeType":"YulIdentifier","src":"4205:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4192:12:88","nodeType":"YulIdentifier","src":"4192:12:88"},"nativeSrc":"4192:23:88","nodeType":"YulFunctionCall","src":"4192:23:88"},"variables":[{"name":"value","nativeSrc":"4183:5:88","nodeType":"YulTypedName","src":"4183:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4249:5:88","nodeType":"YulIdentifier","src":"4249:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4224:24:88","nodeType":"YulIdentifier","src":"4224:24:88"},"nativeSrc":"4224:31:88","nodeType":"YulFunctionCall","src":"4224:31:88"},"nativeSrc":"4224:31:88","nodeType":"YulExpressionStatement","src":"4224:31:88"},{"nativeSrc":"4264:15:88","nodeType":"YulAssignment","src":"4264:15:88","value":{"name":"value","nativeSrc":"4274:5:88","nodeType":"YulIdentifier","src":"4274:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4264:6:88","nodeType":"YulIdentifier","src":"4264:6:88"}]},{"nativeSrc":"4288:81:88","nodeType":"YulAssignment","src":"4288:81:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4345:9:88","nodeType":"YulIdentifier","src":"4345:9:88"},{"kind":"number","nativeSrc":"4356:2:88","nodeType":"YulLiteral","src":"4356:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4341:3:88","nodeType":"YulIdentifier","src":"4341:3:88"},"nativeSrc":"4341:18:88","nodeType":"YulFunctionCall","src":"4341:18:88"},{"name":"dataEnd","nativeSrc":"4361:7:88","nodeType":"YulIdentifier","src":"4361:7:88"}],"functionName":{"name":"abi_decode_struct_WhitelistStatus_calldata","nativeSrc":"4298:42:88","nodeType":"YulIdentifier","src":"4298:42:88"},"nativeSrc":"4298:71:88","nodeType":"YulFunctionCall","src":"4298:71:88"},"variableNames":[{"name":"value1","nativeSrc":"4288:6:88","nodeType":"YulIdentifier","src":"4288:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_struct$_WhitelistStatus_$13967_calldata_ptr","nativeSrc":"3984:391:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4065:9:88","nodeType":"YulTypedName","src":"4065:9:88","type":""},{"name":"dataEnd","nativeSrc":"4076:7:88","nodeType":"YulTypedName","src":"4076:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4088:6:88","nodeType":"YulTypedName","src":"4088:6:88","type":""},{"name":"value1","nativeSrc":"4096:6:88","nodeType":"YulTypedName","src":"4096:6:88","type":""}],"src":"3984:391:88"},{"body":{"nativeSrc":"4486:150:88","nodeType":"YulBlock","src":"4486:150:88","statements":[{"body":{"nativeSrc":"4533:16:88","nodeType":"YulBlock","src":"4533:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4542:1:88","nodeType":"YulLiteral","src":"4542:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4545:1:88","nodeType":"YulLiteral","src":"4545:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4535:6:88","nodeType":"YulIdentifier","src":"4535:6:88"},"nativeSrc":"4535:12:88","nodeType":"YulFunctionCall","src":"4535:12:88"},"nativeSrc":"4535:12:88","nodeType":"YulExpressionStatement","src":"4535:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4507:7:88","nodeType":"YulIdentifier","src":"4507:7:88"},{"name":"headStart","nativeSrc":"4516:9:88","nodeType":"YulIdentifier","src":"4516:9:88"}],"functionName":{"name":"sub","nativeSrc":"4503:3:88","nodeType":"YulIdentifier","src":"4503:3:88"},"nativeSrc":"4503:23:88","nodeType":"YulFunctionCall","src":"4503:23:88"},{"kind":"number","nativeSrc":"4528:3:88","nodeType":"YulLiteral","src":"4528:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4499:3:88","nodeType":"YulIdentifier","src":"4499:3:88"},"nativeSrc":"4499:33:88","nodeType":"YulFunctionCall","src":"4499:33:88"},"nativeSrc":"4496:53:88","nodeType":"YulIf","src":"4496:53:88"},{"nativeSrc":"4558:72:88","nodeType":"YulAssignment","src":"4558:72:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4611:9:88","nodeType":"YulIdentifier","src":"4611:9:88"},{"name":"dataEnd","nativeSrc":"4622:7:88","nodeType":"YulIdentifier","src":"4622:7:88"}],"functionName":{"name":"abi_decode_struct_WhitelistStatus_calldata","nativeSrc":"4568:42:88","nodeType":"YulIdentifier","src":"4568:42:88"},"nativeSrc":"4568:62:88","nodeType":"YulFunctionCall","src":"4568:62:88"},"variableNames":[{"name":"value0","nativeSrc":"4558:6:88","nodeType":"YulIdentifier","src":"4558:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_WhitelistStatus_$13967_calldata_ptr","nativeSrc":"4380:256:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4452:9:88","nodeType":"YulTypedName","src":"4452:9:88","type":""},{"name":"dataEnd","nativeSrc":"4463:7:88","nodeType":"YulTypedName","src":"4463:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4475:6:88","nodeType":"YulTypedName","src":"4475:6:88","type":""}],"src":"4380:256:88"},{"body":{"nativeSrc":"4765:102:88","nodeType":"YulBlock","src":"4765:102:88","statements":[{"nativeSrc":"4775:26:88","nodeType":"YulAssignment","src":"4775:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4787:9:88","nodeType":"YulIdentifier","src":"4787:9:88"},{"kind":"number","nativeSrc":"4798:2:88","nodeType":"YulLiteral","src":"4798:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4783:3:88","nodeType":"YulIdentifier","src":"4783:3:88"},"nativeSrc":"4783:18:88","nodeType":"YulFunctionCall","src":"4783:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4775:4:88","nodeType":"YulIdentifier","src":"4775:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4817:9:88","nodeType":"YulIdentifier","src":"4817:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4832:6:88","nodeType":"YulIdentifier","src":"4832:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4848:3:88","nodeType":"YulLiteral","src":"4848:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4853:1:88","nodeType":"YulLiteral","src":"4853:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4844:3:88","nodeType":"YulIdentifier","src":"4844:3:88"},"nativeSrc":"4844:11:88","nodeType":"YulFunctionCall","src":"4844:11:88"},{"kind":"number","nativeSrc":"4857:1:88","nodeType":"YulLiteral","src":"4857:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4840:3:88","nodeType":"YulIdentifier","src":"4840:3:88"},"nativeSrc":"4840:19:88","nodeType":"YulFunctionCall","src":"4840:19:88"}],"functionName":{"name":"and","nativeSrc":"4828:3:88","nodeType":"YulIdentifier","src":"4828:3:88"},"nativeSrc":"4828:32:88","nodeType":"YulFunctionCall","src":"4828:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4810:6:88","nodeType":"YulIdentifier","src":"4810:6:88"},"nativeSrc":"4810:51:88","nodeType":"YulFunctionCall","src":"4810:51:88"},"nativeSrc":"4810:51:88","nodeType":"YulExpressionStatement","src":"4810:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"4641:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4734:9:88","nodeType":"YulTypedName","src":"4734:9:88","type":""},{"name":"value0","nativeSrc":"4745:6:88","nodeType":"YulTypedName","src":"4745:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4756:4:88","nodeType":"YulTypedName","src":"4756:4:88","type":""}],"src":"4641:226:88"},{"body":{"nativeSrc":"4904:95:88","nodeType":"YulBlock","src":"4904:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4921:1:88","nodeType":"YulLiteral","src":"4921:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4928:3:88","nodeType":"YulLiteral","src":"4928:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4933:10:88","nodeType":"YulLiteral","src":"4933:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4924:3:88","nodeType":"YulIdentifier","src":"4924:3:88"},"nativeSrc":"4924:20:88","nodeType":"YulFunctionCall","src":"4924:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4914:6:88","nodeType":"YulIdentifier","src":"4914:6:88"},"nativeSrc":"4914:31:88","nodeType":"YulFunctionCall","src":"4914:31:88"},"nativeSrc":"4914:31:88","nodeType":"YulExpressionStatement","src":"4914:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4961:1:88","nodeType":"YulLiteral","src":"4961:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4964:4:88","nodeType":"YulLiteral","src":"4964:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"4954:6:88","nodeType":"YulIdentifier","src":"4954:6:88"},"nativeSrc":"4954:15:88","nodeType":"YulFunctionCall","src":"4954:15:88"},"nativeSrc":"4954:15:88","nodeType":"YulExpressionStatement","src":"4954:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4985:1:88","nodeType":"YulLiteral","src":"4985:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4988:4:88","nodeType":"YulLiteral","src":"4988:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4978:6:88","nodeType":"YulIdentifier","src":"4978:6:88"},"nativeSrc":"4978:15:88","nodeType":"YulFunctionCall","src":"4978:15:88"},"nativeSrc":"4978:15:88","nodeType":"YulExpressionStatement","src":"4978:15:88"}]},"name":"panic_error_0x21","nativeSrc":"4872:127:88","nodeType":"YulFunctionDefinition","src":"4872:127:88"},{"body":{"nativeSrc":"5062:186:88","nodeType":"YulBlock","src":"5062:186:88","statements":[{"body":{"nativeSrc":"5104:111:88","nodeType":"YulBlock","src":"5104:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5125:1:88","nodeType":"YulLiteral","src":"5125:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5132:3:88","nodeType":"YulLiteral","src":"5132:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"5137:10:88","nodeType":"YulLiteral","src":"5137:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5128:3:88","nodeType":"YulIdentifier","src":"5128:3:88"},"nativeSrc":"5128:20:88","nodeType":"YulFunctionCall","src":"5128:20:88"}],"functionName":{"name":"mstore","nativeSrc":"5118:6:88","nodeType":"YulIdentifier","src":"5118:6:88"},"nativeSrc":"5118:31:88","nodeType":"YulFunctionCall","src":"5118:31:88"},"nativeSrc":"5118:31:88","nodeType":"YulExpressionStatement","src":"5118:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5169:1:88","nodeType":"YulLiteral","src":"5169:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"5172:4:88","nodeType":"YulLiteral","src":"5172:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5162:6:88","nodeType":"YulIdentifier","src":"5162:6:88"},"nativeSrc":"5162:15:88","nodeType":"YulFunctionCall","src":"5162:15:88"},"nativeSrc":"5162:15:88","nodeType":"YulExpressionStatement","src":"5162:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5197:1:88","nodeType":"YulLiteral","src":"5197:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5200:4:88","nodeType":"YulLiteral","src":"5200:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5190:6:88","nodeType":"YulIdentifier","src":"5190:6:88"},"nativeSrc":"5190:15:88","nodeType":"YulFunctionCall","src":"5190:15:88"},"nativeSrc":"5190:15:88","nodeType":"YulExpressionStatement","src":"5190:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5085:5:88","nodeType":"YulIdentifier","src":"5085:5:88"},{"kind":"number","nativeSrc":"5092:1:88","nodeType":"YulLiteral","src":"5092:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"5082:2:88","nodeType":"YulIdentifier","src":"5082:2:88"},"nativeSrc":"5082:12:88","nodeType":"YulFunctionCall","src":"5082:12:88"}],"functionName":{"name":"iszero","nativeSrc":"5075:6:88","nodeType":"YulIdentifier","src":"5075:6:88"},"nativeSrc":"5075:20:88","nodeType":"YulFunctionCall","src":"5075:20:88"},"nativeSrc":"5072:143:88","nodeType":"YulIf","src":"5072:143:88"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5231:3:88","nodeType":"YulIdentifier","src":"5231:3:88"},{"name":"value","nativeSrc":"5236:5:88","nodeType":"YulIdentifier","src":"5236:5:88"}],"functionName":{"name":"mstore","nativeSrc":"5224:6:88","nodeType":"YulIdentifier","src":"5224:6:88"},"nativeSrc":"5224:18:88","nodeType":"YulFunctionCall","src":"5224:18:88"},"nativeSrc":"5224:18:88","nodeType":"YulExpressionStatement","src":"5224:18:88"}]},"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"5004:244:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5046:5:88","nodeType":"YulTypedName","src":"5046:5:88","type":""},{"name":"pos","nativeSrc":"5053:3:88","nodeType":"YulTypedName","src":"5053:3:88","type":""}],"src":"5004:244:88"},{"body":{"nativeSrc":"5312:444:88","nodeType":"YulBlock","src":"5312:444:88","statements":[{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5361:5:88","nodeType":"YulIdentifier","src":"5361:5:88"}],"functionName":{"name":"mload","nativeSrc":"5355:5:88","nodeType":"YulIdentifier","src":"5355:5:88"},"nativeSrc":"5355:12:88","nodeType":"YulFunctionCall","src":"5355:12:88"},{"name":"pos","nativeSrc":"5369:3:88","nodeType":"YulIdentifier","src":"5369:3:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"5322:32:88","nodeType":"YulIdentifier","src":"5322:32:88"},"nativeSrc":"5322:51:88","nodeType":"YulFunctionCall","src":"5322:51:88"},"nativeSrc":"5322:51:88","nodeType":"YulExpressionStatement","src":"5322:51:88"},{"nativeSrc":"5382:43:88","nodeType":"YulVariableDeclaration","src":"5382:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5412:5:88","nodeType":"YulIdentifier","src":"5412:5:88"},{"kind":"number","nativeSrc":"5419:4:88","nodeType":"YulLiteral","src":"5419:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5408:3:88","nodeType":"YulIdentifier","src":"5408:3:88"},"nativeSrc":"5408:16:88","nodeType":"YulFunctionCall","src":"5408:16:88"}],"functionName":{"name":"mload","nativeSrc":"5402:5:88","nodeType":"YulIdentifier","src":"5402:5:88"},"nativeSrc":"5402:23:88","nodeType":"YulFunctionCall","src":"5402:23:88"},"variables":[{"name":"memberValue0","nativeSrc":"5386:12:88","nodeType":"YulTypedName","src":"5386:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5467:12:88","nodeType":"YulIdentifier","src":"5467:12:88"},{"arguments":[{"name":"pos","nativeSrc":"5485:3:88","nodeType":"YulIdentifier","src":"5485:3:88"},{"kind":"number","nativeSrc":"5490:4:88","nodeType":"YulLiteral","src":"5490:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5481:3:88","nodeType":"YulIdentifier","src":"5481:3:88"},"nativeSrc":"5481:14:88","nodeType":"YulFunctionCall","src":"5481:14:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"5434:32:88","nodeType":"YulIdentifier","src":"5434:32:88"},"nativeSrc":"5434:62:88","nodeType":"YulFunctionCall","src":"5434:62:88"},"nativeSrc":"5434:62:88","nodeType":"YulExpressionStatement","src":"5434:62:88"},{"nativeSrc":"5505:45:88","nodeType":"YulVariableDeclaration","src":"5505:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5537:5:88","nodeType":"YulIdentifier","src":"5537:5:88"},{"kind":"number","nativeSrc":"5544:4:88","nodeType":"YulLiteral","src":"5544:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5533:3:88","nodeType":"YulIdentifier","src":"5533:3:88"},"nativeSrc":"5533:16:88","nodeType":"YulFunctionCall","src":"5533:16:88"}],"functionName":{"name":"mload","nativeSrc":"5527:5:88","nodeType":"YulIdentifier","src":"5527:5:88"},"nativeSrc":"5527:23:88","nodeType":"YulFunctionCall","src":"5527:23:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"5509:14:88","nodeType":"YulTypedName","src":"5509:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"5592:14:88","nodeType":"YulIdentifier","src":"5592:14:88"},{"arguments":[{"name":"pos","nativeSrc":"5612:3:88","nodeType":"YulIdentifier","src":"5612:3:88"},{"kind":"number","nativeSrc":"5617:4:88","nodeType":"YulLiteral","src":"5617:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5608:3:88","nodeType":"YulIdentifier","src":"5608:3:88"},"nativeSrc":"5608:14:88","nodeType":"YulFunctionCall","src":"5608:14:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"5559:32:88","nodeType":"YulIdentifier","src":"5559:32:88"},"nativeSrc":"5559:64:88","nodeType":"YulFunctionCall","src":"5559:64:88"},"nativeSrc":"5559:64:88","nodeType":"YulExpressionStatement","src":"5559:64:88"},{"nativeSrc":"5632:45:88","nodeType":"YulVariableDeclaration","src":"5632:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5664:5:88","nodeType":"YulIdentifier","src":"5664:5:88"},{"kind":"number","nativeSrc":"5671:4:88","nodeType":"YulLiteral","src":"5671:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5660:3:88","nodeType":"YulIdentifier","src":"5660:3:88"},"nativeSrc":"5660:16:88","nodeType":"YulFunctionCall","src":"5660:16:88"}],"functionName":{"name":"mload","nativeSrc":"5654:5:88","nodeType":"YulIdentifier","src":"5654:5:88"},"nativeSrc":"5654:23:88","nodeType":"YulFunctionCall","src":"5654:23:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"5636:14:88","nodeType":"YulTypedName","src":"5636:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"5719:14:88","nodeType":"YulIdentifier","src":"5719:14:88"},{"arguments":[{"name":"pos","nativeSrc":"5739:3:88","nodeType":"YulIdentifier","src":"5739:3:88"},{"kind":"number","nativeSrc":"5744:4:88","nodeType":"YulLiteral","src":"5744:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5735:3:88","nodeType":"YulIdentifier","src":"5735:3:88"},"nativeSrc":"5735:14:88","nodeType":"YulFunctionCall","src":"5735:14:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"5686:32:88","nodeType":"YulIdentifier","src":"5686:32:88"},"nativeSrc":"5686:64:88","nodeType":"YulFunctionCall","src":"5686:64:88"},"nativeSrc":"5686:64:88","nodeType":"YulExpressionStatement","src":"5686:64:88"}]},"name":"abi_encode_struct_WhitelistStatus","nativeSrc":"5253:503:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5296:5:88","nodeType":"YulTypedName","src":"5296:5:88","type":""},{"name":"pos","nativeSrc":"5303:3:88","nodeType":"YulTypedName","src":"5303:3:88","type":""}],"src":"5253:503:88"},{"body":{"nativeSrc":"5930:104:88","nodeType":"YulBlock","src":"5930:104:88","statements":[{"nativeSrc":"5940:27:88","nodeType":"YulAssignment","src":"5940:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5952:9:88","nodeType":"YulIdentifier","src":"5952:9:88"},{"kind":"number","nativeSrc":"5963:3:88","nodeType":"YulLiteral","src":"5963:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5948:3:88","nodeType":"YulIdentifier","src":"5948:3:88"},"nativeSrc":"5948:19:88","nodeType":"YulFunctionCall","src":"5948:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5940:4:88","nodeType":"YulIdentifier","src":"5940:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6010:6:88","nodeType":"YulIdentifier","src":"6010:6:88"},{"name":"headStart","nativeSrc":"6018:9:88","nodeType":"YulIdentifier","src":"6018:9:88"}],"functionName":{"name":"abi_encode_struct_WhitelistStatus","nativeSrc":"5976:33:88","nodeType":"YulIdentifier","src":"5976:33:88"},"nativeSrc":"5976:52:88","nodeType":"YulFunctionCall","src":"5976:52:88"},"nativeSrc":"5976:52:88","nodeType":"YulExpressionStatement","src":"5976:52:88"}]},"name":"abi_encode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed","nativeSrc":"5761:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5899:9:88","nodeType":"YulTypedName","src":"5899:9:88","type":""},{"name":"value0","nativeSrc":"5910:6:88","nodeType":"YulTypedName","src":"5910:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5921:4:88","nodeType":"YulTypedName","src":"5921:4:88","type":""}],"src":"5761:273:88"},{"body":{"nativeSrc":"6213:234:88","nodeType":"YulBlock","src":"6213:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6230:9:88","nodeType":"YulIdentifier","src":"6230:9:88"},{"kind":"number","nativeSrc":"6241:2:88","nodeType":"YulLiteral","src":"6241:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6223:6:88","nodeType":"YulIdentifier","src":"6223:6:88"},"nativeSrc":"6223:21:88","nodeType":"YulFunctionCall","src":"6223:21:88"},"nativeSrc":"6223:21:88","nodeType":"YulExpressionStatement","src":"6223:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6264:9:88","nodeType":"YulIdentifier","src":"6264:9:88"},{"kind":"number","nativeSrc":"6275:2:88","nodeType":"YulLiteral","src":"6275:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6260:3:88","nodeType":"YulIdentifier","src":"6260:3:88"},"nativeSrc":"6260:18:88","nodeType":"YulFunctionCall","src":"6260:18:88"},{"kind":"number","nativeSrc":"6280:2:88","nodeType":"YulLiteral","src":"6280:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"6253:6:88","nodeType":"YulIdentifier","src":"6253:6:88"},"nativeSrc":"6253:30:88","nodeType":"YulFunctionCall","src":"6253:30:88"},"nativeSrc":"6253:30:88","nodeType":"YulExpressionStatement","src":"6253:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6303:9:88","nodeType":"YulIdentifier","src":"6303:9:88"},{"kind":"number","nativeSrc":"6314:2:88","nodeType":"YulLiteral","src":"6314:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6299:3:88","nodeType":"YulIdentifier","src":"6299:3:88"},"nativeSrc":"6299:18:88","nodeType":"YulFunctionCall","src":"6299:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"6319:34:88","nodeType":"YulLiteral","src":"6319:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"6292:6:88","nodeType":"YulIdentifier","src":"6292:6:88"},"nativeSrc":"6292:62:88","nodeType":"YulFunctionCall","src":"6292:62:88"},"nativeSrc":"6292:62:88","nodeType":"YulExpressionStatement","src":"6292:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6374:9:88","nodeType":"YulIdentifier","src":"6374:9:88"},{"kind":"number","nativeSrc":"6385:2:88","nodeType":"YulLiteral","src":"6385:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6370:3:88","nodeType":"YulIdentifier","src":"6370:3:88"},"nativeSrc":"6370:18:88","nodeType":"YulFunctionCall","src":"6370:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"6390:14:88","nodeType":"YulLiteral","src":"6390:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"6363:6:88","nodeType":"YulIdentifier","src":"6363:6:88"},"nativeSrc":"6363:42:88","nodeType":"YulFunctionCall","src":"6363:42:88"},"nativeSrc":"6363:42:88","nodeType":"YulExpressionStatement","src":"6363:42:88"},{"nativeSrc":"6414:27:88","nodeType":"YulAssignment","src":"6414:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6426:9:88","nodeType":"YulIdentifier","src":"6426:9:88"},{"kind":"number","nativeSrc":"6437:3:88","nodeType":"YulLiteral","src":"6437:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6422:3:88","nodeType":"YulIdentifier","src":"6422:3:88"},"nativeSrc":"6422:19:88","nodeType":"YulFunctionCall","src":"6422:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6414:4:88","nodeType":"YulIdentifier","src":"6414:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6039:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6190:9:88","nodeType":"YulTypedName","src":"6190:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6204:4:88","nodeType":"YulTypedName","src":"6204:4:88","type":""}],"src":"6039:408:88"},{"body":{"nativeSrc":"6626:234:88","nodeType":"YulBlock","src":"6626:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6643:9:88","nodeType":"YulIdentifier","src":"6643:9:88"},{"kind":"number","nativeSrc":"6654:2:88","nodeType":"YulLiteral","src":"6654:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6636:6:88","nodeType":"YulIdentifier","src":"6636:6:88"},"nativeSrc":"6636:21:88","nodeType":"YulFunctionCall","src":"6636:21:88"},"nativeSrc":"6636:21:88","nodeType":"YulExpressionStatement","src":"6636:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6677:9:88","nodeType":"YulIdentifier","src":"6677:9:88"},{"kind":"number","nativeSrc":"6688:2:88","nodeType":"YulLiteral","src":"6688:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6673:3:88","nodeType":"YulIdentifier","src":"6673:3:88"},"nativeSrc":"6673:18:88","nodeType":"YulFunctionCall","src":"6673:18:88"},{"kind":"number","nativeSrc":"6693:2:88","nodeType":"YulLiteral","src":"6693:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"6666:6:88","nodeType":"YulIdentifier","src":"6666:6:88"},"nativeSrc":"6666:30:88","nodeType":"YulFunctionCall","src":"6666:30:88"},"nativeSrc":"6666:30:88","nodeType":"YulExpressionStatement","src":"6666:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6716:9:88","nodeType":"YulIdentifier","src":"6716:9:88"},{"kind":"number","nativeSrc":"6727:2:88","nodeType":"YulLiteral","src":"6727:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6712:3:88","nodeType":"YulIdentifier","src":"6712:3:88"},"nativeSrc":"6712:18:88","nodeType":"YulFunctionCall","src":"6712:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"6732:34:88","nodeType":"YulLiteral","src":"6732:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"6705:6:88","nodeType":"YulIdentifier","src":"6705:6:88"},"nativeSrc":"6705:62:88","nodeType":"YulFunctionCall","src":"6705:62:88"},"nativeSrc":"6705:62:88","nodeType":"YulExpressionStatement","src":"6705:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6787:9:88","nodeType":"YulIdentifier","src":"6787:9:88"},{"kind":"number","nativeSrc":"6798:2:88","nodeType":"YulLiteral","src":"6798:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6783:3:88","nodeType":"YulIdentifier","src":"6783:3:88"},"nativeSrc":"6783:18:88","nodeType":"YulFunctionCall","src":"6783:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"6803:14:88","nodeType":"YulLiteral","src":"6803:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"6776:6:88","nodeType":"YulIdentifier","src":"6776:6:88"},"nativeSrc":"6776:42:88","nodeType":"YulFunctionCall","src":"6776:42:88"},"nativeSrc":"6776:42:88","nodeType":"YulExpressionStatement","src":"6776:42:88"},{"nativeSrc":"6827:27:88","nodeType":"YulAssignment","src":"6827:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6839:9:88","nodeType":"YulIdentifier","src":"6839:9:88"},{"kind":"number","nativeSrc":"6850:3:88","nodeType":"YulLiteral","src":"6850:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6835:3:88","nodeType":"YulIdentifier","src":"6835:3:88"},"nativeSrc":"6835:19:88","nodeType":"YulFunctionCall","src":"6835:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6827:4:88","nodeType":"YulIdentifier","src":"6827:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6452:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6603:9:88","nodeType":"YulTypedName","src":"6603:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6617:4:88","nodeType":"YulTypedName","src":"6617:4:88","type":""}],"src":"6452:408:88"},{"body":{"nativeSrc":"6970:170:88","nodeType":"YulBlock","src":"6970:170:88","statements":[{"body":{"nativeSrc":"7016:16:88","nodeType":"YulBlock","src":"7016:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7025:1:88","nodeType":"YulLiteral","src":"7025:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7028:1:88","nodeType":"YulLiteral","src":"7028:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7018:6:88","nodeType":"YulIdentifier","src":"7018:6:88"},"nativeSrc":"7018:12:88","nodeType":"YulFunctionCall","src":"7018:12:88"},"nativeSrc":"7018:12:88","nodeType":"YulExpressionStatement","src":"7018:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6991:7:88","nodeType":"YulIdentifier","src":"6991:7:88"},{"name":"headStart","nativeSrc":"7000:9:88","nodeType":"YulIdentifier","src":"7000:9:88"}],"functionName":{"name":"sub","nativeSrc":"6987:3:88","nodeType":"YulIdentifier","src":"6987:3:88"},"nativeSrc":"6987:23:88","nodeType":"YulFunctionCall","src":"6987:23:88"},{"kind":"number","nativeSrc":"7012:2:88","nodeType":"YulLiteral","src":"7012:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6983:3:88","nodeType":"YulIdentifier","src":"6983:3:88"},"nativeSrc":"6983:32:88","nodeType":"YulFunctionCall","src":"6983:32:88"},"nativeSrc":"6980:52:88","nodeType":"YulIf","src":"6980:52:88"},{"nativeSrc":"7041:29:88","nodeType":"YulVariableDeclaration","src":"7041:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7060:9:88","nodeType":"YulIdentifier","src":"7060:9:88"}],"functionName":{"name":"mload","nativeSrc":"7054:5:88","nodeType":"YulIdentifier","src":"7054:5:88"},"nativeSrc":"7054:16:88","nodeType":"YulFunctionCall","src":"7054:16:88"},"variables":[{"name":"value","nativeSrc":"7045:5:88","nodeType":"YulTypedName","src":"7045:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7104:5:88","nodeType":"YulIdentifier","src":"7104:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7079:24:88","nodeType":"YulIdentifier","src":"7079:24:88"},"nativeSrc":"7079:31:88","nodeType":"YulFunctionCall","src":"7079:31:88"},"nativeSrc":"7079:31:88","nodeType":"YulExpressionStatement","src":"7079:31:88"},{"nativeSrc":"7119:15:88","nodeType":"YulAssignment","src":"7119:15:88","value":{"name":"value","nativeSrc":"7129:5:88","nodeType":"YulIdentifier","src":"7129:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7119:6:88","nodeType":"YulIdentifier","src":"7119:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"6865:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6936:9:88","nodeType":"YulTypedName","src":"6936:9:88","type":""},{"name":"dataEnd","nativeSrc":"6947:7:88","nodeType":"YulTypedName","src":"6947:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6959:6:88","nodeType":"YulTypedName","src":"6959:6:88","type":""}],"src":"6865:275:88"},{"body":{"nativeSrc":"7352:318:88","nodeType":"YulBlock","src":"7352:318:88","statements":[{"nativeSrc":"7362:27:88","nodeType":"YulAssignment","src":"7362:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7374:9:88","nodeType":"YulIdentifier","src":"7374:9:88"},{"kind":"number","nativeSrc":"7385:3:88","nodeType":"YulLiteral","src":"7385:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7370:3:88","nodeType":"YulIdentifier","src":"7370:3:88"},"nativeSrc":"7370:19:88","nodeType":"YulFunctionCall","src":"7370:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7362:4:88","nodeType":"YulIdentifier","src":"7362:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7405:9:88","nodeType":"YulIdentifier","src":"7405:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7420:6:88","nodeType":"YulIdentifier","src":"7420:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7436:3:88","nodeType":"YulLiteral","src":"7436:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7441:1:88","nodeType":"YulLiteral","src":"7441:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7432:3:88","nodeType":"YulIdentifier","src":"7432:3:88"},"nativeSrc":"7432:11:88","nodeType":"YulFunctionCall","src":"7432:11:88"},{"kind":"number","nativeSrc":"7445:1:88","nodeType":"YulLiteral","src":"7445:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7428:3:88","nodeType":"YulIdentifier","src":"7428:3:88"},"nativeSrc":"7428:19:88","nodeType":"YulFunctionCall","src":"7428:19:88"}],"functionName":{"name":"and","nativeSrc":"7416:3:88","nodeType":"YulIdentifier","src":"7416:3:88"},"nativeSrc":"7416:32:88","nodeType":"YulFunctionCall","src":"7416:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7398:6:88","nodeType":"YulIdentifier","src":"7398:6:88"},"nativeSrc":"7398:51:88","nodeType":"YulFunctionCall","src":"7398:51:88"},"nativeSrc":"7398:51:88","nodeType":"YulExpressionStatement","src":"7398:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7469:9:88","nodeType":"YulIdentifier","src":"7469:9:88"},{"kind":"number","nativeSrc":"7480:2:88","nodeType":"YulLiteral","src":"7480:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7465:3:88","nodeType":"YulIdentifier","src":"7465:3:88"},"nativeSrc":"7465:18:88","nodeType":"YulFunctionCall","src":"7465:18:88"},{"name":"value1","nativeSrc":"7485:6:88","nodeType":"YulIdentifier","src":"7485:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7458:6:88","nodeType":"YulIdentifier","src":"7458:6:88"},"nativeSrc":"7458:34:88","nodeType":"YulFunctionCall","src":"7458:34:88"},"nativeSrc":"7458:34:88","nodeType":"YulExpressionStatement","src":"7458:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7512:9:88","nodeType":"YulIdentifier","src":"7512:9:88"},{"kind":"number","nativeSrc":"7523:2:88","nodeType":"YulLiteral","src":"7523:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7508:3:88","nodeType":"YulIdentifier","src":"7508:3:88"},"nativeSrc":"7508:18:88","nodeType":"YulFunctionCall","src":"7508:18:88"},{"name":"value2","nativeSrc":"7528:6:88","nodeType":"YulIdentifier","src":"7528:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7501:6:88","nodeType":"YulIdentifier","src":"7501:6:88"},"nativeSrc":"7501:34:88","nodeType":"YulFunctionCall","src":"7501:34:88"},"nativeSrc":"7501:34:88","nodeType":"YulExpressionStatement","src":"7501:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7555:9:88","nodeType":"YulIdentifier","src":"7555:9:88"},{"kind":"number","nativeSrc":"7566:2:88","nodeType":"YulLiteral","src":"7566:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7551:3:88","nodeType":"YulIdentifier","src":"7551:3:88"},"nativeSrc":"7551:18:88","nodeType":"YulFunctionCall","src":"7551:18:88"},{"arguments":[{"name":"value3","nativeSrc":"7575:6:88","nodeType":"YulIdentifier","src":"7575:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7591:3:88","nodeType":"YulLiteral","src":"7591:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7596:1:88","nodeType":"YulLiteral","src":"7596:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7587:3:88","nodeType":"YulIdentifier","src":"7587:3:88"},"nativeSrc":"7587:11:88","nodeType":"YulFunctionCall","src":"7587:11:88"},{"kind":"number","nativeSrc":"7600:1:88","nodeType":"YulLiteral","src":"7600:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7583:3:88","nodeType":"YulIdentifier","src":"7583:3:88"},"nativeSrc":"7583:19:88","nodeType":"YulFunctionCall","src":"7583:19:88"}],"functionName":{"name":"and","nativeSrc":"7571:3:88","nodeType":"YulIdentifier","src":"7571:3:88"},"nativeSrc":"7571:32:88","nodeType":"YulFunctionCall","src":"7571:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7544:6:88","nodeType":"YulIdentifier","src":"7544:6:88"},"nativeSrc":"7544:60:88","nodeType":"YulFunctionCall","src":"7544:60:88"},"nativeSrc":"7544:60:88","nodeType":"YulExpressionStatement","src":"7544:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7624:9:88","nodeType":"YulIdentifier","src":"7624:9:88"},{"kind":"number","nativeSrc":"7635:3:88","nodeType":"YulLiteral","src":"7635:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7620:3:88","nodeType":"YulIdentifier","src":"7620:3:88"},"nativeSrc":"7620:19:88","nodeType":"YulFunctionCall","src":"7620:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"7655:6:88","nodeType":"YulIdentifier","src":"7655:6:88"}],"functionName":{"name":"iszero","nativeSrc":"7648:6:88","nodeType":"YulIdentifier","src":"7648:6:88"},"nativeSrc":"7648:14:88","nodeType":"YulFunctionCall","src":"7648:14:88"}],"functionName":{"name":"iszero","nativeSrc":"7641:6:88","nodeType":"YulIdentifier","src":"7641:6:88"},"nativeSrc":"7641:22:88","nodeType":"YulFunctionCall","src":"7641:22:88"}],"functionName":{"name":"mstore","nativeSrc":"7613:6:88","nodeType":"YulIdentifier","src":"7613:6:88"},"nativeSrc":"7613:51:88","nodeType":"YulFunctionCall","src":"7613:51:88"},"nativeSrc":"7613:51:88","nodeType":"YulExpressionStatement","src":"7613:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"7145:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7289:9:88","nodeType":"YulTypedName","src":"7289:9:88","type":""},{"name":"value4","nativeSrc":"7300:6:88","nodeType":"YulTypedName","src":"7300:6:88","type":""},{"name":"value3","nativeSrc":"7308:6:88","nodeType":"YulTypedName","src":"7308:6:88","type":""},{"name":"value2","nativeSrc":"7316:6:88","nodeType":"YulTypedName","src":"7316:6:88","type":""},{"name":"value1","nativeSrc":"7324:6:88","nodeType":"YulTypedName","src":"7324:6:88","type":""},{"name":"value0","nativeSrc":"7332:6:88","nodeType":"YulTypedName","src":"7332:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7343:4:88","nodeType":"YulTypedName","src":"7343:4:88","type":""}],"src":"7145:525:88"},{"body":{"nativeSrc":"7849:246:88","nodeType":"YulBlock","src":"7849:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7866:9:88","nodeType":"YulIdentifier","src":"7866:9:88"},{"kind":"number","nativeSrc":"7877:2:88","nodeType":"YulLiteral","src":"7877:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7859:6:88","nodeType":"YulIdentifier","src":"7859:6:88"},"nativeSrc":"7859:21:88","nodeType":"YulFunctionCall","src":"7859:21:88"},"nativeSrc":"7859:21:88","nodeType":"YulExpressionStatement","src":"7859:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7900:9:88","nodeType":"YulIdentifier","src":"7900:9:88"},{"kind":"number","nativeSrc":"7911:2:88","nodeType":"YulLiteral","src":"7911:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7896:3:88","nodeType":"YulIdentifier","src":"7896:3:88"},"nativeSrc":"7896:18:88","nodeType":"YulFunctionCall","src":"7896:18:88"},{"kind":"number","nativeSrc":"7916:2:88","nodeType":"YulLiteral","src":"7916:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"7889:6:88","nodeType":"YulIdentifier","src":"7889:6:88"},"nativeSrc":"7889:30:88","nodeType":"YulFunctionCall","src":"7889:30:88"},"nativeSrc":"7889:30:88","nodeType":"YulExpressionStatement","src":"7889:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7939:9:88","nodeType":"YulIdentifier","src":"7939:9:88"},{"kind":"number","nativeSrc":"7950:2:88","nodeType":"YulLiteral","src":"7950:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7935:3:88","nodeType":"YulIdentifier","src":"7935:3:88"},"nativeSrc":"7935:18:88","nodeType":"YulFunctionCall","src":"7935:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"7955:34:88","nodeType":"YulLiteral","src":"7955:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"7928:6:88","nodeType":"YulIdentifier","src":"7928:6:88"},"nativeSrc":"7928:62:88","nodeType":"YulFunctionCall","src":"7928:62:88"},"nativeSrc":"7928:62:88","nodeType":"YulExpressionStatement","src":"7928:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8010:9:88","nodeType":"YulIdentifier","src":"8010:9:88"},{"kind":"number","nativeSrc":"8021:2:88","nodeType":"YulLiteral","src":"8021:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8006:3:88","nodeType":"YulIdentifier","src":"8006:3:88"},"nativeSrc":"8006:18:88","nodeType":"YulFunctionCall","src":"8006:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"8026:26:88","nodeType":"YulLiteral","src":"8026:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"7999:6:88","nodeType":"YulIdentifier","src":"7999:6:88"},"nativeSrc":"7999:54:88","nodeType":"YulFunctionCall","src":"7999:54:88"},"nativeSrc":"7999:54:88","nodeType":"YulExpressionStatement","src":"7999:54:88"},{"nativeSrc":"8062:27:88","nodeType":"YulAssignment","src":"8062:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8074:9:88","nodeType":"YulIdentifier","src":"8074:9:88"},{"kind":"number","nativeSrc":"8085:3:88","nodeType":"YulLiteral","src":"8085:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8070:3:88","nodeType":"YulIdentifier","src":"8070:3:88"},"nativeSrc":"8070:19:88","nodeType":"YulFunctionCall","src":"8070:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8062:4:88","nodeType":"YulIdentifier","src":"8062:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7675:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7826:9:88","nodeType":"YulTypedName","src":"7826:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7840:4:88","nodeType":"YulTypedName","src":"7840:4:88","type":""}],"src":"7675:420:88"},{"body":{"nativeSrc":"8279:274:88","nodeType":"YulBlock","src":"8279:274:88","statements":[{"nativeSrc":"8289:27:88","nodeType":"YulAssignment","src":"8289:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8301:9:88","nodeType":"YulIdentifier","src":"8301:9:88"},{"kind":"number","nativeSrc":"8312:3:88","nodeType":"YulLiteral","src":"8312:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8297:3:88","nodeType":"YulIdentifier","src":"8297:3:88"},"nativeSrc":"8297:19:88","nodeType":"YulFunctionCall","src":"8297:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8289:4:88","nodeType":"YulIdentifier","src":"8289:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8332:9:88","nodeType":"YulIdentifier","src":"8332:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8347:6:88","nodeType":"YulIdentifier","src":"8347:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8363:3:88","nodeType":"YulLiteral","src":"8363:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8368:1:88","nodeType":"YulLiteral","src":"8368:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8359:3:88","nodeType":"YulIdentifier","src":"8359:3:88"},"nativeSrc":"8359:11:88","nodeType":"YulFunctionCall","src":"8359:11:88"},{"kind":"number","nativeSrc":"8372:1:88","nodeType":"YulLiteral","src":"8372:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8355:3:88","nodeType":"YulIdentifier","src":"8355:3:88"},"nativeSrc":"8355:19:88","nodeType":"YulFunctionCall","src":"8355:19:88"}],"functionName":{"name":"and","nativeSrc":"8343:3:88","nodeType":"YulIdentifier","src":"8343:3:88"},"nativeSrc":"8343:32:88","nodeType":"YulFunctionCall","src":"8343:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8325:6:88","nodeType":"YulIdentifier","src":"8325:6:88"},"nativeSrc":"8325:51:88","nodeType":"YulFunctionCall","src":"8325:51:88"},"nativeSrc":"8325:51:88","nodeType":"YulExpressionStatement","src":"8325:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8396:9:88","nodeType":"YulIdentifier","src":"8396:9:88"},{"kind":"number","nativeSrc":"8407:2:88","nodeType":"YulLiteral","src":"8407:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8392:3:88","nodeType":"YulIdentifier","src":"8392:3:88"},"nativeSrc":"8392:18:88","nodeType":"YulFunctionCall","src":"8392:18:88"},{"name":"value1","nativeSrc":"8412:6:88","nodeType":"YulIdentifier","src":"8412:6:88"}],"functionName":{"name":"mstore","nativeSrc":"8385:6:88","nodeType":"YulIdentifier","src":"8385:6:88"},"nativeSrc":"8385:34:88","nodeType":"YulFunctionCall","src":"8385:34:88"},"nativeSrc":"8385:34:88","nodeType":"YulExpressionStatement","src":"8385:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8439:9:88","nodeType":"YulIdentifier","src":"8439:9:88"},{"kind":"number","nativeSrc":"8450:2:88","nodeType":"YulLiteral","src":"8450:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8435:3:88","nodeType":"YulIdentifier","src":"8435:3:88"},"nativeSrc":"8435:18:88","nodeType":"YulFunctionCall","src":"8435:18:88"},{"arguments":[{"name":"value2","nativeSrc":"8459:6:88","nodeType":"YulIdentifier","src":"8459:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8475:3:88","nodeType":"YulLiteral","src":"8475:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8480:1:88","nodeType":"YulLiteral","src":"8480:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8471:3:88","nodeType":"YulIdentifier","src":"8471:3:88"},"nativeSrc":"8471:11:88","nodeType":"YulFunctionCall","src":"8471:11:88"},{"kind":"number","nativeSrc":"8484:1:88","nodeType":"YulLiteral","src":"8484:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8467:3:88","nodeType":"YulIdentifier","src":"8467:3:88"},"nativeSrc":"8467:19:88","nodeType":"YulFunctionCall","src":"8467:19:88"}],"functionName":{"name":"and","nativeSrc":"8455:3:88","nodeType":"YulIdentifier","src":"8455:3:88"},"nativeSrc":"8455:32:88","nodeType":"YulFunctionCall","src":"8455:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8428:6:88","nodeType":"YulIdentifier","src":"8428:6:88"},"nativeSrc":"8428:60:88","nodeType":"YulFunctionCall","src":"8428:60:88"},"nativeSrc":"8428:60:88","nodeType":"YulExpressionStatement","src":"8428:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8508:9:88","nodeType":"YulIdentifier","src":"8508:9:88"},{"kind":"number","nativeSrc":"8519:2:88","nodeType":"YulLiteral","src":"8519:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8504:3:88","nodeType":"YulIdentifier","src":"8504:3:88"},"nativeSrc":"8504:18:88","nodeType":"YulFunctionCall","src":"8504:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"8538:6:88","nodeType":"YulIdentifier","src":"8538:6:88"}],"functionName":{"name":"iszero","nativeSrc":"8531:6:88","nodeType":"YulIdentifier","src":"8531:6:88"},"nativeSrc":"8531:14:88","nodeType":"YulFunctionCall","src":"8531:14:88"}],"functionName":{"name":"iszero","nativeSrc":"8524:6:88","nodeType":"YulIdentifier","src":"8524:6:88"},"nativeSrc":"8524:22:88","nodeType":"YulFunctionCall","src":"8524:22:88"}],"functionName":{"name":"mstore","nativeSrc":"8497:6:88","nodeType":"YulIdentifier","src":"8497:6:88"},"nativeSrc":"8497:50:88","nodeType":"YulFunctionCall","src":"8497:50:88"},"nativeSrc":"8497:50:88","nodeType":"YulExpressionStatement","src":"8497:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"8100:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8224:9:88","nodeType":"YulTypedName","src":"8224:9:88","type":""},{"name":"value3","nativeSrc":"8235:6:88","nodeType":"YulTypedName","src":"8235:6:88","type":""},{"name":"value2","nativeSrc":"8243:6:88","nodeType":"YulTypedName","src":"8243:6:88","type":""},{"name":"value1","nativeSrc":"8251:6:88","nodeType":"YulTypedName","src":"8251:6:88","type":""},{"name":"value0","nativeSrc":"8259:6:88","nodeType":"YulTypedName","src":"8259:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8270:4:88","nodeType":"YulTypedName","src":"8270:4:88","type":""}],"src":"8100:453:88"},{"body":{"nativeSrc":"8732:179:88","nodeType":"YulBlock","src":"8732:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8749:9:88","nodeType":"YulIdentifier","src":"8749:9:88"},{"kind":"number","nativeSrc":"8760:2:88","nodeType":"YulLiteral","src":"8760:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8742:6:88","nodeType":"YulIdentifier","src":"8742:6:88"},"nativeSrc":"8742:21:88","nodeType":"YulFunctionCall","src":"8742:21:88"},"nativeSrc":"8742:21:88","nodeType":"YulExpressionStatement","src":"8742:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8783:9:88","nodeType":"YulIdentifier","src":"8783:9:88"},{"kind":"number","nativeSrc":"8794:2:88","nodeType":"YulLiteral","src":"8794:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8779:3:88","nodeType":"YulIdentifier","src":"8779:3:88"},"nativeSrc":"8779:18:88","nodeType":"YulFunctionCall","src":"8779:18:88"},{"kind":"number","nativeSrc":"8799:2:88","nodeType":"YulLiteral","src":"8799:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"8772:6:88","nodeType":"YulIdentifier","src":"8772:6:88"},"nativeSrc":"8772:30:88","nodeType":"YulFunctionCall","src":"8772:30:88"},"nativeSrc":"8772:30:88","nodeType":"YulExpressionStatement","src":"8772:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8822:9:88","nodeType":"YulIdentifier","src":"8822:9:88"},{"kind":"number","nativeSrc":"8833:2:88","nodeType":"YulLiteral","src":"8833:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8818:3:88","nodeType":"YulIdentifier","src":"8818:3:88"},"nativeSrc":"8818:18:88","nodeType":"YulFunctionCall","src":"8818:18:88"},{"hexValue":"596f752063616e2774206368616e6765207468652064656661756c7473","kind":"string","nativeSrc":"8838:31:88","nodeType":"YulLiteral","src":"8838:31:88","type":"","value":"You can't change the defaults"}],"functionName":{"name":"mstore","nativeSrc":"8811:6:88","nodeType":"YulIdentifier","src":"8811:6:88"},"nativeSrc":"8811:59:88","nodeType":"YulFunctionCall","src":"8811:59:88"},"nativeSrc":"8811:59:88","nodeType":"YulExpressionStatement","src":"8811:59:88"},{"nativeSrc":"8879:26:88","nodeType":"YulAssignment","src":"8879:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8891:9:88","nodeType":"YulIdentifier","src":"8891:9:88"},{"kind":"number","nativeSrc":"8902:2:88","nodeType":"YulLiteral","src":"8902:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8887:3:88","nodeType":"YulIdentifier","src":"8887:3:88"},"nativeSrc":"8887:18:88","nodeType":"YulFunctionCall","src":"8887:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8879:4:88","nodeType":"YulIdentifier","src":"8879:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25aad5c16fa3ed8e98c47d58aff8703d9bebbc6fbf387f5dc501db51eba3c1e3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8558:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8709:9:88","nodeType":"YulTypedName","src":"8709:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8723:4:88","nodeType":"YulTypedName","src":"8723:4:88","type":""}],"src":"8558:353:88"},{"body":{"nativeSrc":"8975:56:88","nodeType":"YulBlock","src":"8975:56:88","statements":[{"body":{"nativeSrc":"9009:16:88","nodeType":"YulBlock","src":"9009:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9018:1:88","nodeType":"YulLiteral","src":"9018:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9021:1:88","nodeType":"YulLiteral","src":"9021:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9011:6:88","nodeType":"YulIdentifier","src":"9011:6:88"},"nativeSrc":"9011:12:88","nodeType":"YulFunctionCall","src":"9011:12:88"},"nativeSrc":"9011:12:88","nodeType":"YulExpressionStatement","src":"9011:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8998:5:88","nodeType":"YulIdentifier","src":"8998:5:88"},{"kind":"number","nativeSrc":"9005:1:88","nodeType":"YulLiteral","src":"9005:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"8995:2:88","nodeType":"YulIdentifier","src":"8995:2:88"},"nativeSrc":"8995:12:88","nodeType":"YulFunctionCall","src":"8995:12:88"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:88","nodeType":"YulIdentifier","src":"8988:6:88"},"nativeSrc":"8988:20:88","nodeType":"YulFunctionCall","src":"8988:20:88"},"nativeSrc":"8985:40:88","nodeType":"YulIf","src":"8985:40:88"}]},"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"8916:115:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8964:5:88","nodeType":"YulTypedName","src":"8964:5:88","type":""}],"src":"8916:115:88"},{"body":{"nativeSrc":"9140:942:88","nodeType":"YulBlock","src":"9140:942:88","statements":[{"nativeSrc":"9150:43:88","nodeType":"YulVariableDeclaration","src":"9150:43:88","value":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9168:7:88","nodeType":"YulIdentifier","src":"9168:7:88"},{"name":"headStart","nativeSrc":"9177:9:88","nodeType":"YulIdentifier","src":"9177:9:88"}],"functionName":{"name":"sub","nativeSrc":"9164:3:88","nodeType":"YulIdentifier","src":"9164:3:88"},"nativeSrc":"9164:23:88","nodeType":"YulFunctionCall","src":"9164:23:88"},{"kind":"number","nativeSrc":"9189:3:88","nodeType":"YulLiteral","src":"9189:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"9160:3:88","nodeType":"YulIdentifier","src":"9160:3:88"},"nativeSrc":"9160:33:88","nodeType":"YulFunctionCall","src":"9160:33:88"},"variables":[{"name":"_1","nativeSrc":"9154:2:88","nodeType":"YulTypedName","src":"9154:2:88","type":""}]},{"body":{"nativeSrc":"9208:16:88","nodeType":"YulBlock","src":"9208:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9217:1:88","nodeType":"YulLiteral","src":"9217:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9220:1:88","nodeType":"YulLiteral","src":"9220:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9210:6:88","nodeType":"YulIdentifier","src":"9210:6:88"},"nativeSrc":"9210:12:88","nodeType":"YulFunctionCall","src":"9210:12:88"},"nativeSrc":"9210:12:88","nodeType":"YulExpressionStatement","src":"9210:12:88"}]},"condition":{"name":"_1","nativeSrc":"9205:2:88","nodeType":"YulIdentifier","src":"9205:2:88"},"nativeSrc":"9202:22:88","nodeType":"YulIf","src":"9202:22:88"},{"nativeSrc":"9233:7:88","nodeType":"YulAssignment","src":"9233:7:88","value":{"kind":"number","nativeSrc":"9239:1:88","nodeType":"YulLiteral","src":"9239:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"9233:2:88","nodeType":"YulIdentifier","src":"9233:2:88"}]},{"nativeSrc":"9249:15:88","nodeType":"YulVariableDeclaration","src":"9249:15:88","value":{"kind":"number","nativeSrc":"9263:1:88","nodeType":"YulLiteral","src":"9263:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"9253:6:88","nodeType":"YulTypedName","src":"9253:6:88","type":""}]},{"nativeSrc":"9273:19:88","nodeType":"YulAssignment","src":"9273:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"9289:2:88","nodeType":"YulLiteral","src":"9289:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"9283:5:88","nodeType":"YulIdentifier","src":"9283:5:88"},"nativeSrc":"9283:9:88","nodeType":"YulFunctionCall","src":"9283:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"9273:6:88","nodeType":"YulIdentifier","src":"9273:6:88"}]},{"nativeSrc":"9301:34:88","nodeType":"YulVariableDeclaration","src":"9301:34:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"9323:6:88","nodeType":"YulIdentifier","src":"9323:6:88"},{"kind":"number","nativeSrc":"9331:3:88","nodeType":"YulLiteral","src":"9331:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9319:3:88","nodeType":"YulIdentifier","src":"9319:3:88"},"nativeSrc":"9319:16:88","nodeType":"YulFunctionCall","src":"9319:16:88"},"variables":[{"name":"newFreePtr","nativeSrc":"9305:10:88","nodeType":"YulTypedName","src":"9305:10:88","type":""}]},{"body":{"nativeSrc":"9410:22:88","nodeType":"YulBlock","src":"9410:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9412:16:88","nodeType":"YulIdentifier","src":"9412:16:88"},"nativeSrc":"9412:18:88","nodeType":"YulFunctionCall","src":"9412:18:88"},"nativeSrc":"9412:18:88","nodeType":"YulExpressionStatement","src":"9412:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9353:10:88","nodeType":"YulIdentifier","src":"9353:10:88"},{"kind":"number","nativeSrc":"9365:18:88","nodeType":"YulLiteral","src":"9365:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9350:2:88","nodeType":"YulIdentifier","src":"9350:2:88"},"nativeSrc":"9350:34:88","nodeType":"YulFunctionCall","src":"9350:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9389:10:88","nodeType":"YulIdentifier","src":"9389:10:88"},{"name":"memPtr","nativeSrc":"9401:6:88","nodeType":"YulIdentifier","src":"9401:6:88"}],"functionName":{"name":"lt","nativeSrc":"9386:2:88","nodeType":"YulIdentifier","src":"9386:2:88"},"nativeSrc":"9386:22:88","nodeType":"YulFunctionCall","src":"9386:22:88"}],"functionName":{"name":"or","nativeSrc":"9347:2:88","nodeType":"YulIdentifier","src":"9347:2:88"},"nativeSrc":"9347:62:88","nodeType":"YulFunctionCall","src":"9347:62:88"},"nativeSrc":"9344:88:88","nodeType":"YulIf","src":"9344:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9448:2:88","nodeType":"YulLiteral","src":"9448:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9452:10:88","nodeType":"YulIdentifier","src":"9452:10:88"}],"functionName":{"name":"mstore","nativeSrc":"9441:6:88","nodeType":"YulIdentifier","src":"9441:6:88"},"nativeSrc":"9441:22:88","nodeType":"YulFunctionCall","src":"9441:22:88"},"nativeSrc":"9441:22:88","nodeType":"YulExpressionStatement","src":"9441:22:88"},{"nativeSrc":"9472:36:88","nodeType":"YulVariableDeclaration","src":"9472:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9498:9:88","nodeType":"YulIdentifier","src":"9498:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9485:12:88","nodeType":"YulIdentifier","src":"9485:12:88"},"nativeSrc":"9485:23:88","nodeType":"YulFunctionCall","src":"9485:23:88"},"variables":[{"name":"value","nativeSrc":"9476:5:88","nodeType":"YulTypedName","src":"9476:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9556:5:88","nodeType":"YulIdentifier","src":"9556:5:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"9517:38:88","nodeType":"YulIdentifier","src":"9517:38:88"},"nativeSrc":"9517:45:88","nodeType":"YulFunctionCall","src":"9517:45:88"},"nativeSrc":"9517:45:88","nodeType":"YulExpressionStatement","src":"9517:45:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"9578:6:88","nodeType":"YulIdentifier","src":"9578:6:88"},{"name":"value","nativeSrc":"9586:5:88","nodeType":"YulIdentifier","src":"9586:5:88"}],"functionName":{"name":"mstore","nativeSrc":"9571:6:88","nodeType":"YulIdentifier","src":"9571:6:88"},"nativeSrc":"9571:21:88","nodeType":"YulFunctionCall","src":"9571:21:88"},"nativeSrc":"9571:21:88","nodeType":"YulExpressionStatement","src":"9571:21:88"},{"nativeSrc":"9601:47:88","nodeType":"YulVariableDeclaration","src":"9601:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9633:9:88","nodeType":"YulIdentifier","src":"9633:9:88"},{"kind":"number","nativeSrc":"9644:2:88","nodeType":"YulLiteral","src":"9644:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9629:3:88","nodeType":"YulIdentifier","src":"9629:3:88"},"nativeSrc":"9629:18:88","nodeType":"YulFunctionCall","src":"9629:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9616:12:88","nodeType":"YulIdentifier","src":"9616:12:88"},"nativeSrc":"9616:32:88","nodeType":"YulFunctionCall","src":"9616:32:88"},"variables":[{"name":"value_1","nativeSrc":"9605:7:88","nodeType":"YulTypedName","src":"9605:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9696:7:88","nodeType":"YulIdentifier","src":"9696:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"9657:38:88","nodeType":"YulIdentifier","src":"9657:38:88"},"nativeSrc":"9657:47:88","nodeType":"YulFunctionCall","src":"9657:47:88"},"nativeSrc":"9657:47:88","nodeType":"YulExpressionStatement","src":"9657:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9724:6:88","nodeType":"YulIdentifier","src":"9724:6:88"},{"kind":"number","nativeSrc":"9732:2:88","nodeType":"YulLiteral","src":"9732:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9720:3:88","nodeType":"YulIdentifier","src":"9720:3:88"},"nativeSrc":"9720:15:88","nodeType":"YulFunctionCall","src":"9720:15:88"},{"name":"value_1","nativeSrc":"9737:7:88","nodeType":"YulIdentifier","src":"9737:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9713:6:88","nodeType":"YulIdentifier","src":"9713:6:88"},"nativeSrc":"9713:32:88","nodeType":"YulFunctionCall","src":"9713:32:88"},"nativeSrc":"9713:32:88","nodeType":"YulExpressionStatement","src":"9713:32:88"},{"nativeSrc":"9754:47:88","nodeType":"YulVariableDeclaration","src":"9754:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9786:9:88","nodeType":"YulIdentifier","src":"9786:9:88"},{"kind":"number","nativeSrc":"9797:2:88","nodeType":"YulLiteral","src":"9797:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9782:3:88","nodeType":"YulIdentifier","src":"9782:3:88"},"nativeSrc":"9782:18:88","nodeType":"YulFunctionCall","src":"9782:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9769:12:88","nodeType":"YulIdentifier","src":"9769:12:88"},"nativeSrc":"9769:32:88","nodeType":"YulFunctionCall","src":"9769:32:88"},"variables":[{"name":"value_2","nativeSrc":"9758:7:88","nodeType":"YulTypedName","src":"9758:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"9849:7:88","nodeType":"YulIdentifier","src":"9849:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"9810:38:88","nodeType":"YulIdentifier","src":"9810:38:88"},"nativeSrc":"9810:47:88","nodeType":"YulFunctionCall","src":"9810:47:88"},"nativeSrc":"9810:47:88","nodeType":"YulExpressionStatement","src":"9810:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9877:6:88","nodeType":"YulIdentifier","src":"9877:6:88"},{"kind":"number","nativeSrc":"9885:2:88","nodeType":"YulLiteral","src":"9885:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9873:3:88","nodeType":"YulIdentifier","src":"9873:3:88"},"nativeSrc":"9873:15:88","nodeType":"YulFunctionCall","src":"9873:15:88"},{"name":"value_2","nativeSrc":"9890:7:88","nodeType":"YulIdentifier","src":"9890:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9866:6:88","nodeType":"YulIdentifier","src":"9866:6:88"},"nativeSrc":"9866:32:88","nodeType":"YulFunctionCall","src":"9866:32:88"},"nativeSrc":"9866:32:88","nodeType":"YulExpressionStatement","src":"9866:32:88"},{"nativeSrc":"9907:47:88","nodeType":"YulVariableDeclaration","src":"9907:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9939:9:88","nodeType":"YulIdentifier","src":"9939:9:88"},{"kind":"number","nativeSrc":"9950:2:88","nodeType":"YulLiteral","src":"9950:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9935:3:88","nodeType":"YulIdentifier","src":"9935:3:88"},"nativeSrc":"9935:18:88","nodeType":"YulFunctionCall","src":"9935:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9922:12:88","nodeType":"YulIdentifier","src":"9922:12:88"},"nativeSrc":"9922:32:88","nodeType":"YulFunctionCall","src":"9922:32:88"},"variables":[{"name":"value_3","nativeSrc":"9911:7:88","nodeType":"YulTypedName","src":"9911:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"10002:7:88","nodeType":"YulIdentifier","src":"10002:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"9963:38:88","nodeType":"YulIdentifier","src":"9963:38:88"},"nativeSrc":"9963:47:88","nodeType":"YulFunctionCall","src":"9963:47:88"},"nativeSrc":"9963:47:88","nodeType":"YulExpressionStatement","src":"9963:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10030:6:88","nodeType":"YulIdentifier","src":"10030:6:88"},{"kind":"number","nativeSrc":"10038:2:88","nodeType":"YulLiteral","src":"10038:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10026:3:88","nodeType":"YulIdentifier","src":"10026:3:88"},"nativeSrc":"10026:15:88","nodeType":"YulFunctionCall","src":"10026:15:88"},{"name":"value_3","nativeSrc":"10043:7:88","nodeType":"YulIdentifier","src":"10043:7:88"}],"functionName":{"name":"mstore","nativeSrc":"10019:6:88","nodeType":"YulIdentifier","src":"10019:6:88"},"nativeSrc":"10019:32:88","nodeType":"YulFunctionCall","src":"10019:32:88"},"nativeSrc":"10019:32:88","nodeType":"YulExpressionStatement","src":"10019:32:88"},{"nativeSrc":"10060:16:88","nodeType":"YulAssignment","src":"10060:16:88","value":{"name":"memPtr","nativeSrc":"10070:6:88","nodeType":"YulIdentifier","src":"10070:6:88"},"variableNames":[{"name":"value0","nativeSrc":"10060:6:88","nodeType":"YulIdentifier","src":"10060:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr","nativeSrc":"9036:1046:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9106:9:88","nodeType":"YulTypedName","src":"9106:9:88","type":""},{"name":"dataEnd","nativeSrc":"9117:7:88","nodeType":"YulTypedName","src":"9117:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9129:6:88","nodeType":"YulTypedName","src":"9129:6:88","type":""}],"src":"9036:1046:88"},{"body":{"nativeSrc":"10261:236:88","nodeType":"YulBlock","src":"10261:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10278:9:88","nodeType":"YulIdentifier","src":"10278:9:88"},{"kind":"number","nativeSrc":"10289:2:88","nodeType":"YulLiteral","src":"10289:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10271:6:88","nodeType":"YulIdentifier","src":"10271:6:88"},"nativeSrc":"10271:21:88","nodeType":"YulFunctionCall","src":"10271:21:88"},"nativeSrc":"10271:21:88","nodeType":"YulExpressionStatement","src":"10271:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10312:9:88","nodeType":"YulIdentifier","src":"10312:9:88"},{"kind":"number","nativeSrc":"10323:2:88","nodeType":"YulLiteral","src":"10323:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10308:3:88","nodeType":"YulIdentifier","src":"10308:3:88"},"nativeSrc":"10308:18:88","nodeType":"YulFunctionCall","src":"10308:18:88"},{"kind":"number","nativeSrc":"10328:2:88","nodeType":"YulLiteral","src":"10328:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"10301:6:88","nodeType":"YulIdentifier","src":"10301:6:88"},"nativeSrc":"10301:30:88","nodeType":"YulFunctionCall","src":"10301:30:88"},"nativeSrc":"10301:30:88","nodeType":"YulExpressionStatement","src":"10301:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10351:9:88","nodeType":"YulIdentifier","src":"10351:9:88"},{"kind":"number","nativeSrc":"10362:2:88","nodeType":"YulLiteral","src":"10362:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10347:3:88","nodeType":"YulIdentifier","src":"10347:3:88"},"nativeSrc":"10347:18:88","nodeType":"YulFunctionCall","src":"10347:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"10367:34:88","nodeType":"YulLiteral","src":"10367:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"10340:6:88","nodeType":"YulIdentifier","src":"10340:6:88"},"nativeSrc":"10340:62:88","nodeType":"YulFunctionCall","src":"10340:62:88"},"nativeSrc":"10340:62:88","nodeType":"YulExpressionStatement","src":"10340:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10422:9:88","nodeType":"YulIdentifier","src":"10422:9:88"},{"kind":"number","nativeSrc":"10433:2:88","nodeType":"YulLiteral","src":"10433:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10418:3:88","nodeType":"YulIdentifier","src":"10418:3:88"},"nativeSrc":"10418:18:88","nodeType":"YulFunctionCall","src":"10418:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"10438:16:88","nodeType":"YulLiteral","src":"10438:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"10411:6:88","nodeType":"YulIdentifier","src":"10411:6:88"},"nativeSrc":"10411:44:88","nodeType":"YulFunctionCall","src":"10411:44:88"},"nativeSrc":"10411:44:88","nodeType":"YulExpressionStatement","src":"10411:44:88"},{"nativeSrc":"10464:27:88","nodeType":"YulAssignment","src":"10464:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10476:9:88","nodeType":"YulIdentifier","src":"10476:9:88"},{"kind":"number","nativeSrc":"10487:3:88","nodeType":"YulLiteral","src":"10487:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10472:3:88","nodeType":"YulIdentifier","src":"10472:3:88"},"nativeSrc":"10472:19:88","nodeType":"YulFunctionCall","src":"10472:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10464:4:88","nodeType":"YulIdentifier","src":"10464:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10087:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10238:9:88","nodeType":"YulTypedName","src":"10238:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10252:4:88","nodeType":"YulTypedName","src":"10252:4:88","type":""}],"src":"10087:410:88"},{"body":{"nativeSrc":"10609:87:88","nodeType":"YulBlock","src":"10609:87:88","statements":[{"nativeSrc":"10619:26:88","nodeType":"YulAssignment","src":"10619:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10631:9:88","nodeType":"YulIdentifier","src":"10631:9:88"},{"kind":"number","nativeSrc":"10642:2:88","nodeType":"YulLiteral","src":"10642:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10627:3:88","nodeType":"YulIdentifier","src":"10627:3:88"},"nativeSrc":"10627:18:88","nodeType":"YulFunctionCall","src":"10627:18:88"},"variableNames":[{"name":"tail","nativeSrc":"10619:4:88","nodeType":"YulIdentifier","src":"10619:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10661:9:88","nodeType":"YulIdentifier","src":"10661:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10676:6:88","nodeType":"YulIdentifier","src":"10676:6:88"},{"kind":"number","nativeSrc":"10684:4:88","nodeType":"YulLiteral","src":"10684:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"10672:3:88","nodeType":"YulIdentifier","src":"10672:3:88"},"nativeSrc":"10672:17:88","nodeType":"YulFunctionCall","src":"10672:17:88"}],"functionName":{"name":"mstore","nativeSrc":"10654:6:88","nodeType":"YulIdentifier","src":"10654:6:88"},"nativeSrc":"10654:36:88","nodeType":"YulFunctionCall","src":"10654:36:88"},"nativeSrc":"10654:36:88","nodeType":"YulExpressionStatement","src":"10654:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"10502:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10578:9:88","nodeType":"YulTypedName","src":"10578:9:88","type":""},{"name":"value0","nativeSrc":"10589:6:88","nodeType":"YulTypedName","src":"10589:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10600:4:88","nodeType":"YulTypedName","src":"10600:4:88","type":""}],"src":"10502:194:88"},{"body":{"nativeSrc":"10805:170:88","nodeType":"YulBlock","src":"10805:170:88","statements":[{"body":{"nativeSrc":"10851:16:88","nodeType":"YulBlock","src":"10851:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10860:1:88","nodeType":"YulLiteral","src":"10860:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10863:1:88","nodeType":"YulLiteral","src":"10863:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10853:6:88","nodeType":"YulIdentifier","src":"10853:6:88"},"nativeSrc":"10853:12:88","nodeType":"YulFunctionCall","src":"10853:12:88"},"nativeSrc":"10853:12:88","nodeType":"YulExpressionStatement","src":"10853:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10826:7:88","nodeType":"YulIdentifier","src":"10826:7:88"},{"name":"headStart","nativeSrc":"10835:9:88","nodeType":"YulIdentifier","src":"10835:9:88"}],"functionName":{"name":"sub","nativeSrc":"10822:3:88","nodeType":"YulIdentifier","src":"10822:3:88"},"nativeSrc":"10822:23:88","nodeType":"YulFunctionCall","src":"10822:23:88"},{"kind":"number","nativeSrc":"10847:2:88","nodeType":"YulLiteral","src":"10847:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10818:3:88","nodeType":"YulIdentifier","src":"10818:3:88"},"nativeSrc":"10818:32:88","nodeType":"YulFunctionCall","src":"10818:32:88"},"nativeSrc":"10815:52:88","nodeType":"YulIf","src":"10815:52:88"},{"nativeSrc":"10876:29:88","nodeType":"YulVariableDeclaration","src":"10876:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10895:9:88","nodeType":"YulIdentifier","src":"10895:9:88"}],"functionName":{"name":"mload","nativeSrc":"10889:5:88","nodeType":"YulIdentifier","src":"10889:5:88"},"nativeSrc":"10889:16:88","nodeType":"YulFunctionCall","src":"10889:16:88"},"variables":[{"name":"value","nativeSrc":"10880:5:88","nodeType":"YulTypedName","src":"10880:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10939:5:88","nodeType":"YulIdentifier","src":"10939:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10914:24:88","nodeType":"YulIdentifier","src":"10914:24:88"},"nativeSrc":"10914:31:88","nodeType":"YulFunctionCall","src":"10914:31:88"},"nativeSrc":"10914:31:88","nodeType":"YulExpressionStatement","src":"10914:31:88"},{"nativeSrc":"10954:15:88","nodeType":"YulAssignment","src":"10954:15:88","value":{"name":"value","nativeSrc":"10964:5:88","nodeType":"YulIdentifier","src":"10964:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10954:6:88","nodeType":"YulIdentifier","src":"10954:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"10701:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10771:9:88","nodeType":"YulTypedName","src":"10771:9:88","type":""},{"name":"dataEnd","nativeSrc":"10782:7:88","nodeType":"YulTypedName","src":"10782:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10794:6:88","nodeType":"YulTypedName","src":"10794:6:88","type":""}],"src":"10701:274:88"},{"body":{"nativeSrc":"11061:103:88","nodeType":"YulBlock","src":"11061:103:88","statements":[{"body":{"nativeSrc":"11107:16:88","nodeType":"YulBlock","src":"11107:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11116:1:88","nodeType":"YulLiteral","src":"11116:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11119:1:88","nodeType":"YulLiteral","src":"11119:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11109:6:88","nodeType":"YulIdentifier","src":"11109:6:88"},"nativeSrc":"11109:12:88","nodeType":"YulFunctionCall","src":"11109:12:88"},"nativeSrc":"11109:12:88","nodeType":"YulExpressionStatement","src":"11109:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11082:7:88","nodeType":"YulIdentifier","src":"11082:7:88"},{"name":"headStart","nativeSrc":"11091:9:88","nodeType":"YulIdentifier","src":"11091:9:88"}],"functionName":{"name":"sub","nativeSrc":"11078:3:88","nodeType":"YulIdentifier","src":"11078:3:88"},"nativeSrc":"11078:23:88","nodeType":"YulFunctionCall","src":"11078:23:88"},{"kind":"number","nativeSrc":"11103:2:88","nodeType":"YulLiteral","src":"11103:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11074:3:88","nodeType":"YulIdentifier","src":"11074:3:88"},"nativeSrc":"11074:32:88","nodeType":"YulFunctionCall","src":"11074:32:88"},"nativeSrc":"11071:52:88","nodeType":"YulIf","src":"11071:52:88"},{"nativeSrc":"11132:26:88","nodeType":"YulAssignment","src":"11132:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11148:9:88","nodeType":"YulIdentifier","src":"11148:9:88"}],"functionName":{"name":"mload","nativeSrc":"11142:5:88","nodeType":"YulIdentifier","src":"11142:5:88"},"nativeSrc":"11142:16:88","nodeType":"YulFunctionCall","src":"11142:16:88"},"variableNames":[{"name":"value0","nativeSrc":"11132:6:88","nodeType":"YulIdentifier","src":"11132:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"10980:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11027:9:88","nodeType":"YulTypedName","src":"11027:9:88","type":""},{"name":"dataEnd","nativeSrc":"11038:7:88","nodeType":"YulTypedName","src":"11038:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11050:6:88","nodeType":"YulTypedName","src":"11050:6:88","type":""}],"src":"10980:184:88"},{"body":{"nativeSrc":"11343:236:88","nodeType":"YulBlock","src":"11343:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11360:9:88","nodeType":"YulIdentifier","src":"11360:9:88"},{"kind":"number","nativeSrc":"11371:2:88","nodeType":"YulLiteral","src":"11371:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11353:6:88","nodeType":"YulIdentifier","src":"11353:6:88"},"nativeSrc":"11353:21:88","nodeType":"YulFunctionCall","src":"11353:21:88"},"nativeSrc":"11353:21:88","nodeType":"YulExpressionStatement","src":"11353:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11394:9:88","nodeType":"YulIdentifier","src":"11394:9:88"},{"kind":"number","nativeSrc":"11405:2:88","nodeType":"YulLiteral","src":"11405:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11390:3:88","nodeType":"YulIdentifier","src":"11390:3:88"},"nativeSrc":"11390:18:88","nodeType":"YulFunctionCall","src":"11390:18:88"},{"kind":"number","nativeSrc":"11410:2:88","nodeType":"YulLiteral","src":"11410:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"11383:6:88","nodeType":"YulIdentifier","src":"11383:6:88"},"nativeSrc":"11383:30:88","nodeType":"YulFunctionCall","src":"11383:30:88"},"nativeSrc":"11383:30:88","nodeType":"YulExpressionStatement","src":"11383:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11433:9:88","nodeType":"YulIdentifier","src":"11433:9:88"},{"kind":"number","nativeSrc":"11444:2:88","nodeType":"YulLiteral","src":"11444:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11429:3:88","nodeType":"YulIdentifier","src":"11429:3:88"},"nativeSrc":"11429:18:88","nodeType":"YulFunctionCall","src":"11429:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"11449:34:88","nodeType":"YulLiteral","src":"11449:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"11422:6:88","nodeType":"YulIdentifier","src":"11422:6:88"},"nativeSrc":"11422:62:88","nodeType":"YulFunctionCall","src":"11422:62:88"},"nativeSrc":"11422:62:88","nodeType":"YulExpressionStatement","src":"11422:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11504:9:88","nodeType":"YulIdentifier","src":"11504:9:88"},{"kind":"number","nativeSrc":"11515:2:88","nodeType":"YulLiteral","src":"11515:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11500:3:88","nodeType":"YulIdentifier","src":"11500:3:88"},"nativeSrc":"11500:18:88","nodeType":"YulFunctionCall","src":"11500:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"11520:16:88","nodeType":"YulLiteral","src":"11520:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"11493:6:88","nodeType":"YulIdentifier","src":"11493:6:88"},"nativeSrc":"11493:44:88","nodeType":"YulFunctionCall","src":"11493:44:88"},"nativeSrc":"11493:44:88","nodeType":"YulExpressionStatement","src":"11493:44:88"},{"nativeSrc":"11546:27:88","nodeType":"YulAssignment","src":"11546:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11558:9:88","nodeType":"YulIdentifier","src":"11558:9:88"},{"kind":"number","nativeSrc":"11569:3:88","nodeType":"YulLiteral","src":"11569:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11554:3:88","nodeType":"YulIdentifier","src":"11554:3:88"},"nativeSrc":"11554:19:88","nodeType":"YulFunctionCall","src":"11554:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11546:4:88","nodeType":"YulIdentifier","src":"11546:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11169:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11320:9:88","nodeType":"YulTypedName","src":"11320:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11334:4:88","nodeType":"YulTypedName","src":"11334:4:88","type":""}],"src":"11169:410:88"},{"body":{"nativeSrc":"11758:231:88","nodeType":"YulBlock","src":"11758:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11775:9:88","nodeType":"YulIdentifier","src":"11775:9:88"},{"kind":"number","nativeSrc":"11786:2:88","nodeType":"YulLiteral","src":"11786:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11768:6:88","nodeType":"YulIdentifier","src":"11768:6:88"},"nativeSrc":"11768:21:88","nodeType":"YulFunctionCall","src":"11768:21:88"},"nativeSrc":"11768:21:88","nodeType":"YulExpressionStatement","src":"11768:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11809:9:88","nodeType":"YulIdentifier","src":"11809:9:88"},{"kind":"number","nativeSrc":"11820:2:88","nodeType":"YulLiteral","src":"11820:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11805:3:88","nodeType":"YulIdentifier","src":"11805:3:88"},"nativeSrc":"11805:18:88","nodeType":"YulFunctionCall","src":"11805:18:88"},{"kind":"number","nativeSrc":"11825:2:88","nodeType":"YulLiteral","src":"11825:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"11798:6:88","nodeType":"YulIdentifier","src":"11798:6:88"},"nativeSrc":"11798:30:88","nodeType":"YulFunctionCall","src":"11798:30:88"},"nativeSrc":"11798:30:88","nodeType":"YulExpressionStatement","src":"11798:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11848:9:88","nodeType":"YulIdentifier","src":"11848:9:88"},{"kind":"number","nativeSrc":"11859:2:88","nodeType":"YulLiteral","src":"11859:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11844:3:88","nodeType":"YulIdentifier","src":"11844:3:88"},"nativeSrc":"11844:18:88","nodeType":"YulFunctionCall","src":"11844:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"11864:34:88","nodeType":"YulLiteral","src":"11864:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"11837:6:88","nodeType":"YulIdentifier","src":"11837:6:88"},"nativeSrc":"11837:62:88","nodeType":"YulFunctionCall","src":"11837:62:88"},"nativeSrc":"11837:62:88","nodeType":"YulExpressionStatement","src":"11837:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11919:9:88","nodeType":"YulIdentifier","src":"11919:9:88"},{"kind":"number","nativeSrc":"11930:2:88","nodeType":"YulLiteral","src":"11930:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11915:3:88","nodeType":"YulIdentifier","src":"11915:3:88"},"nativeSrc":"11915:18:88","nodeType":"YulFunctionCall","src":"11915:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"11935:11:88","nodeType":"YulLiteral","src":"11935:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"11908:6:88","nodeType":"YulIdentifier","src":"11908:6:88"},"nativeSrc":"11908:39:88","nodeType":"YulFunctionCall","src":"11908:39:88"},"nativeSrc":"11908:39:88","nodeType":"YulExpressionStatement","src":"11908:39:88"},{"nativeSrc":"11956:27:88","nodeType":"YulAssignment","src":"11956:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11968:9:88","nodeType":"YulIdentifier","src":"11968:9:88"},{"kind":"number","nativeSrc":"11979:3:88","nodeType":"YulLiteral","src":"11979:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11964:3:88","nodeType":"YulIdentifier","src":"11964:3:88"},"nativeSrc":"11964:19:88","nodeType":"YulFunctionCall","src":"11964:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11956:4:88","nodeType":"YulIdentifier","src":"11956:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11584:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11735:9:88","nodeType":"YulTypedName","src":"11735:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11749:4:88","nodeType":"YulTypedName","src":"11749:4:88","type":""}],"src":"11584:405:88"},{"body":{"nativeSrc":"12095:102:88","nodeType":"YulBlock","src":"12095:102:88","statements":[{"nativeSrc":"12105:26:88","nodeType":"YulAssignment","src":"12105:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12117:9:88","nodeType":"YulIdentifier","src":"12117:9:88"},{"kind":"number","nativeSrc":"12128:2:88","nodeType":"YulLiteral","src":"12128:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12113:3:88","nodeType":"YulIdentifier","src":"12113:3:88"},"nativeSrc":"12113:18:88","nodeType":"YulFunctionCall","src":"12113:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12105:4:88","nodeType":"YulIdentifier","src":"12105:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12147:9:88","nodeType":"YulIdentifier","src":"12147:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12162:6:88","nodeType":"YulIdentifier","src":"12162:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12178:3:88","nodeType":"YulLiteral","src":"12178:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12183:1:88","nodeType":"YulLiteral","src":"12183:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12174:3:88","nodeType":"YulIdentifier","src":"12174:3:88"},"nativeSrc":"12174:11:88","nodeType":"YulFunctionCall","src":"12174:11:88"},{"kind":"number","nativeSrc":"12187:1:88","nodeType":"YulLiteral","src":"12187:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12170:3:88","nodeType":"YulIdentifier","src":"12170:3:88"},"nativeSrc":"12170:19:88","nodeType":"YulFunctionCall","src":"12170:19:88"}],"functionName":{"name":"and","nativeSrc":"12158:3:88","nodeType":"YulIdentifier","src":"12158:3:88"},"nativeSrc":"12158:32:88","nodeType":"YulFunctionCall","src":"12158:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12140:6:88","nodeType":"YulIdentifier","src":"12140:6:88"},"nativeSrc":"12140:51:88","nodeType":"YulFunctionCall","src":"12140:51:88"},"nativeSrc":"12140:51:88","nodeType":"YulExpressionStatement","src":"12140:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"11994:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12064:9:88","nodeType":"YulTypedName","src":"12064:9:88","type":""},{"name":"value0","nativeSrc":"12075:6:88","nodeType":"YulTypedName","src":"12075:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12086:4:88","nodeType":"YulTypedName","src":"12086:4:88","type":""}],"src":"11994:203:88"},{"body":{"nativeSrc":"12399:173:88","nodeType":"YulBlock","src":"12399:173:88","statements":[{"nativeSrc":"12409:27:88","nodeType":"YulAssignment","src":"12409:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12421:9:88","nodeType":"YulIdentifier","src":"12421:9:88"},{"kind":"number","nativeSrc":"12432:3:88","nodeType":"YulLiteral","src":"12432:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12417:3:88","nodeType":"YulIdentifier","src":"12417:3:88"},"nativeSrc":"12417:19:88","nodeType":"YulFunctionCall","src":"12417:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12409:4:88","nodeType":"YulIdentifier","src":"12409:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12452:9:88","nodeType":"YulIdentifier","src":"12452:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12467:6:88","nodeType":"YulIdentifier","src":"12467:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12483:3:88","nodeType":"YulLiteral","src":"12483:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12488:1:88","nodeType":"YulLiteral","src":"12488:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12479:3:88","nodeType":"YulIdentifier","src":"12479:3:88"},"nativeSrc":"12479:11:88","nodeType":"YulFunctionCall","src":"12479:11:88"},{"kind":"number","nativeSrc":"12492:1:88","nodeType":"YulLiteral","src":"12492:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12475:3:88","nodeType":"YulIdentifier","src":"12475:3:88"},"nativeSrc":"12475:19:88","nodeType":"YulFunctionCall","src":"12475:19:88"}],"functionName":{"name":"and","nativeSrc":"12463:3:88","nodeType":"YulIdentifier","src":"12463:3:88"},"nativeSrc":"12463:32:88","nodeType":"YulFunctionCall","src":"12463:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12445:6:88","nodeType":"YulIdentifier","src":"12445:6:88"},"nativeSrc":"12445:51:88","nodeType":"YulFunctionCall","src":"12445:51:88"},"nativeSrc":"12445:51:88","nodeType":"YulExpressionStatement","src":"12445:51:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12539:6:88","nodeType":"YulIdentifier","src":"12539:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"12551:9:88","nodeType":"YulIdentifier","src":"12551:9:88"},{"kind":"number","nativeSrc":"12562:2:88","nodeType":"YulLiteral","src":"12562:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12547:3:88","nodeType":"YulIdentifier","src":"12547:3:88"},"nativeSrc":"12547:18:88","nodeType":"YulFunctionCall","src":"12547:18:88"}],"functionName":{"name":"abi_encode_struct_WhitelistStatus","nativeSrc":"12505:33:88","nodeType":"YulIdentifier","src":"12505:33:88"},"nativeSrc":"12505:61:88","nodeType":"YulFunctionCall","src":"12505:61:88"},"nativeSrc":"12505:61:88","nodeType":"YulExpressionStatement","src":"12505:61:88"}]},"name":"abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed","nativeSrc":"12202:370:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12360:9:88","nodeType":"YulTypedName","src":"12360:9:88","type":""},{"name":"value1","nativeSrc":"12371:6:88","nodeType":"YulTypedName","src":"12371:6:88","type":""},{"name":"value0","nativeSrc":"12379:6:88","nodeType":"YulTypedName","src":"12379:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12390:4:88","nodeType":"YulTypedName","src":"12390:4:88","type":""}],"src":"12202:370:88"},{"body":{"nativeSrc":"12751:233:88","nodeType":"YulBlock","src":"12751:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12768:9:88","nodeType":"YulIdentifier","src":"12768:9:88"},{"kind":"number","nativeSrc":"12779:2:88","nodeType":"YulLiteral","src":"12779:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12761:6:88","nodeType":"YulIdentifier","src":"12761:6:88"},"nativeSrc":"12761:21:88","nodeType":"YulFunctionCall","src":"12761:21:88"},"nativeSrc":"12761:21:88","nodeType":"YulExpressionStatement","src":"12761:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12802:9:88","nodeType":"YulIdentifier","src":"12802:9:88"},{"kind":"number","nativeSrc":"12813:2:88","nodeType":"YulLiteral","src":"12813:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12798:3:88","nodeType":"YulIdentifier","src":"12798:3:88"},"nativeSrc":"12798:18:88","nodeType":"YulFunctionCall","src":"12798:18:88"},{"kind":"number","nativeSrc":"12818:2:88","nodeType":"YulLiteral","src":"12818:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"12791:6:88","nodeType":"YulIdentifier","src":"12791:6:88"},"nativeSrc":"12791:30:88","nodeType":"YulFunctionCall","src":"12791:30:88"},"nativeSrc":"12791:30:88","nodeType":"YulExpressionStatement","src":"12791:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12841:9:88","nodeType":"YulIdentifier","src":"12841:9:88"},{"kind":"number","nativeSrc":"12852:2:88","nodeType":"YulLiteral","src":"12852:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12837:3:88","nodeType":"YulIdentifier","src":"12837:3:88"},"nativeSrc":"12837:18:88","nodeType":"YulFunctionCall","src":"12837:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"12857:34:88","nodeType":"YulLiteral","src":"12857:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"12830:6:88","nodeType":"YulIdentifier","src":"12830:6:88"},"nativeSrc":"12830:62:88","nodeType":"YulFunctionCall","src":"12830:62:88"},"nativeSrc":"12830:62:88","nodeType":"YulExpressionStatement","src":"12830:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12912:9:88","nodeType":"YulIdentifier","src":"12912:9:88"},{"kind":"number","nativeSrc":"12923:2:88","nodeType":"YulLiteral","src":"12923:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12908:3:88","nodeType":"YulIdentifier","src":"12908:3:88"},"nativeSrc":"12908:18:88","nodeType":"YulFunctionCall","src":"12908:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"12928:13:88","nodeType":"YulLiteral","src":"12928:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"12901:6:88","nodeType":"YulIdentifier","src":"12901:6:88"},"nativeSrc":"12901:41:88","nodeType":"YulFunctionCall","src":"12901:41:88"},"nativeSrc":"12901:41:88","nodeType":"YulExpressionStatement","src":"12901:41:88"},{"nativeSrc":"12951:27:88","nodeType":"YulAssignment","src":"12951:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12963:9:88","nodeType":"YulIdentifier","src":"12963:9:88"},{"kind":"number","nativeSrc":"12974:3:88","nodeType":"YulLiteral","src":"12974:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12959:3:88","nodeType":"YulIdentifier","src":"12959:3:88"},"nativeSrc":"12959:19:88","nodeType":"YulFunctionCall","src":"12959:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12951:4:88","nodeType":"YulIdentifier","src":"12951:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12577:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12728:9:88","nodeType":"YulTypedName","src":"12728:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12742:4:88","nodeType":"YulTypedName","src":"12742:4:88","type":""}],"src":"12577:407:88"},{"body":{"nativeSrc":"13081:191:88","nodeType":"YulBlock","src":"13081:191:88","statements":[{"body":{"nativeSrc":"13127:16:88","nodeType":"YulBlock","src":"13127:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13136:1:88","nodeType":"YulLiteral","src":"13136:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13139:1:88","nodeType":"YulLiteral","src":"13139:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13129:6:88","nodeType":"YulIdentifier","src":"13129:6:88"},"nativeSrc":"13129:12:88","nodeType":"YulFunctionCall","src":"13129:12:88"},"nativeSrc":"13129:12:88","nodeType":"YulExpressionStatement","src":"13129:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13102:7:88","nodeType":"YulIdentifier","src":"13102:7:88"},{"name":"headStart","nativeSrc":"13111:9:88","nodeType":"YulIdentifier","src":"13111:9:88"}],"functionName":{"name":"sub","nativeSrc":"13098:3:88","nodeType":"YulIdentifier","src":"13098:3:88"},"nativeSrc":"13098:23:88","nodeType":"YulFunctionCall","src":"13098:23:88"},{"kind":"number","nativeSrc":"13123:2:88","nodeType":"YulLiteral","src":"13123:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13094:3:88","nodeType":"YulIdentifier","src":"13094:3:88"},"nativeSrc":"13094:32:88","nodeType":"YulFunctionCall","src":"13094:32:88"},"nativeSrc":"13091:52:88","nodeType":"YulIf","src":"13091:52:88"},{"nativeSrc":"13152:36:88","nodeType":"YulVariableDeclaration","src":"13152:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13178:9:88","nodeType":"YulIdentifier","src":"13178:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"13165:12:88","nodeType":"YulIdentifier","src":"13165:12:88"},"nativeSrc":"13165:23:88","nodeType":"YulFunctionCall","src":"13165:23:88"},"variables":[{"name":"value","nativeSrc":"13156:5:88","nodeType":"YulTypedName","src":"13156:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13236:5:88","nodeType":"YulIdentifier","src":"13236:5:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"13197:38:88","nodeType":"YulIdentifier","src":"13197:38:88"},"nativeSrc":"13197:45:88","nodeType":"YulFunctionCall","src":"13197:45:88"},"nativeSrc":"13197:45:88","nodeType":"YulExpressionStatement","src":"13197:45:88"},{"nativeSrc":"13251:15:88","nodeType":"YulAssignment","src":"13251:15:88","value":{"name":"value","nativeSrc":"13261:5:88","nodeType":"YulIdentifier","src":"13261:5:88"},"variableNames":[{"name":"value0","nativeSrc":"13251:6:88","nodeType":"YulIdentifier","src":"13251:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_WhitelistOptions_$13954","nativeSrc":"12989:283:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13047:9:88","nodeType":"YulTypedName","src":"13047:9:88","type":""},{"name":"dataEnd","nativeSrc":"13058:7:88","nodeType":"YulTypedName","src":"13058:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13070:6:88","nodeType":"YulTypedName","src":"13070:6:88","type":""}],"src":"12989:283:88"},{"body":{"nativeSrc":"13451:250:88","nodeType":"YulBlock","src":"13451:250:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13468:9:88","nodeType":"YulIdentifier","src":"13468:9:88"},{"kind":"number","nativeSrc":"13479:2:88","nodeType":"YulLiteral","src":"13479:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13461:6:88","nodeType":"YulIdentifier","src":"13461:6:88"},"nativeSrc":"13461:21:88","nodeType":"YulFunctionCall","src":"13461:21:88"},"nativeSrc":"13461:21:88","nodeType":"YulExpressionStatement","src":"13461:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13502:9:88","nodeType":"YulIdentifier","src":"13502:9:88"},{"kind":"number","nativeSrc":"13513:2:88","nodeType":"YulLiteral","src":"13513:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13498:3:88","nodeType":"YulIdentifier","src":"13498:3:88"},"nativeSrc":"13498:18:88","nodeType":"YulFunctionCall","src":"13498:18:88"},{"kind":"number","nativeSrc":"13518:2:88","nodeType":"YulLiteral","src":"13518:2:88","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"13491:6:88","nodeType":"YulIdentifier","src":"13491:6:88"},"nativeSrc":"13491:30:88","nodeType":"YulFunctionCall","src":"13491:30:88"},"nativeSrc":"13491:30:88","nodeType":"YulExpressionStatement","src":"13491:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13541:9:88","nodeType":"YulIdentifier","src":"13541:9:88"},{"kind":"number","nativeSrc":"13552:2:88","nodeType":"YulLiteral","src":"13552:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13537:3:88","nodeType":"YulIdentifier","src":"13537:3:88"},"nativeSrc":"13537:18:88","nodeType":"YulFunctionCall","src":"13537:18:88"},{"hexValue":"596f75206e65656420746f20646566696e65207468652064656661756c742073","kind":"string","nativeSrc":"13557:34:88","nodeType":"YulLiteral","src":"13557:34:88","type":"","value":"You need to define the default s"}],"functionName":{"name":"mstore","nativeSrc":"13530:6:88","nodeType":"YulIdentifier","src":"13530:6:88"},"nativeSrc":"13530:62:88","nodeType":"YulFunctionCall","src":"13530:62:88"},"nativeSrc":"13530:62:88","nodeType":"YulExpressionStatement","src":"13530:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13612:9:88","nodeType":"YulIdentifier","src":"13612:9:88"},{"kind":"number","nativeSrc":"13623:2:88","nodeType":"YulLiteral","src":"13623:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13608:3:88","nodeType":"YulIdentifier","src":"13608:3:88"},"nativeSrc":"13608:18:88","nodeType":"YulFunctionCall","src":"13608:18:88"},{"hexValue":"746174757320666f7220616c6c20746865206f7065726174696f6e73","kind":"string","nativeSrc":"13628:30:88","nodeType":"YulLiteral","src":"13628:30:88","type":"","value":"tatus for all the operations"}],"functionName":{"name":"mstore","nativeSrc":"13601:6:88","nodeType":"YulIdentifier","src":"13601:6:88"},"nativeSrc":"13601:58:88","nodeType":"YulFunctionCall","src":"13601:58:88"},"nativeSrc":"13601:58:88","nodeType":"YulExpressionStatement","src":"13601:58:88"},{"nativeSrc":"13668:27:88","nodeType":"YulAssignment","src":"13668:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13680:9:88","nodeType":"YulIdentifier","src":"13680:9:88"},{"kind":"number","nativeSrc":"13691:3:88","nodeType":"YulLiteral","src":"13691:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13676:3:88","nodeType":"YulIdentifier","src":"13676:3:88"},"nativeSrc":"13676:19:88","nodeType":"YulFunctionCall","src":"13676:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13668:4:88","nodeType":"YulIdentifier","src":"13668:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b448ca61d16cc0abd607458d5a05d416229fd99256fc517d81a1c8428839788e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13277:424:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13428:9:88","nodeType":"YulTypedName","src":"13428:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13442:4:88","nodeType":"YulTypedName","src":"13442:4:88","type":""}],"src":"13277:424:88"},{"body":{"nativeSrc":"13808:170:88","nodeType":"YulBlock","src":"13808:170:88","statements":[{"body":{"nativeSrc":"13854:16:88","nodeType":"YulBlock","src":"13854:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13863:1:88","nodeType":"YulLiteral","src":"13863:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13866:1:88","nodeType":"YulLiteral","src":"13866:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13856:6:88","nodeType":"YulIdentifier","src":"13856:6:88"},"nativeSrc":"13856:12:88","nodeType":"YulFunctionCall","src":"13856:12:88"},"nativeSrc":"13856:12:88","nodeType":"YulExpressionStatement","src":"13856:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13829:7:88","nodeType":"YulIdentifier","src":"13829:7:88"},{"name":"headStart","nativeSrc":"13838:9:88","nodeType":"YulIdentifier","src":"13838:9:88"}],"functionName":{"name":"sub","nativeSrc":"13825:3:88","nodeType":"YulIdentifier","src":"13825:3:88"},"nativeSrc":"13825:23:88","nodeType":"YulFunctionCall","src":"13825:23:88"},{"kind":"number","nativeSrc":"13850:2:88","nodeType":"YulLiteral","src":"13850:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13821:3:88","nodeType":"YulIdentifier","src":"13821:3:88"},"nativeSrc":"13821:32:88","nodeType":"YulFunctionCall","src":"13821:32:88"},"nativeSrc":"13818:52:88","nodeType":"YulIf","src":"13818:52:88"},{"nativeSrc":"13879:29:88","nodeType":"YulVariableDeclaration","src":"13879:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13898:9:88","nodeType":"YulIdentifier","src":"13898:9:88"}],"functionName":{"name":"mload","nativeSrc":"13892:5:88","nodeType":"YulIdentifier","src":"13892:5:88"},"nativeSrc":"13892:16:88","nodeType":"YulFunctionCall","src":"13892:16:88"},"variables":[{"name":"value","nativeSrc":"13883:5:88","nodeType":"YulTypedName","src":"13883:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13942:5:88","nodeType":"YulIdentifier","src":"13942:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13917:24:88","nodeType":"YulIdentifier","src":"13917:24:88"},"nativeSrc":"13917:31:88","nodeType":"YulFunctionCall","src":"13917:31:88"},"nativeSrc":"13917:31:88","nodeType":"YulExpressionStatement","src":"13917:31:88"},{"nativeSrc":"13957:15:88","nodeType":"YulAssignment","src":"13957:15:88","value":{"name":"value","nativeSrc":"13967:5:88","nodeType":"YulIdentifier","src":"13967:5:88"},"variableNames":[{"name":"value0","nativeSrc":"13957:6:88","nodeType":"YulIdentifier","src":"13957:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"13706:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13774:9:88","nodeType":"YulTypedName","src":"13774:9:88","type":""},{"name":"dataEnd","nativeSrc":"13785:7:88","nodeType":"YulTypedName","src":"13785:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13797:6:88","nodeType":"YulTypedName","src":"13797:6:88","type":""}],"src":"13706:272:88"},{"body":{"nativeSrc":"14157:235:88","nodeType":"YulBlock","src":"14157:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14174:9:88","nodeType":"YulIdentifier","src":"14174:9:88"},{"kind":"number","nativeSrc":"14185:2:88","nodeType":"YulLiteral","src":"14185:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14167:6:88","nodeType":"YulIdentifier","src":"14167:6:88"},"nativeSrc":"14167:21:88","nodeType":"YulFunctionCall","src":"14167:21:88"},"nativeSrc":"14167:21:88","nodeType":"YulExpressionStatement","src":"14167:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14208:9:88","nodeType":"YulIdentifier","src":"14208:9:88"},{"kind":"number","nativeSrc":"14219:2:88","nodeType":"YulLiteral","src":"14219:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14204:3:88","nodeType":"YulIdentifier","src":"14204:3:88"},"nativeSrc":"14204:18:88","nodeType":"YulFunctionCall","src":"14204:18:88"},{"kind":"number","nativeSrc":"14224:2:88","nodeType":"YulLiteral","src":"14224:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"14197:6:88","nodeType":"YulIdentifier","src":"14197:6:88"},"nativeSrc":"14197:30:88","nodeType":"YulFunctionCall","src":"14197:30:88"},"nativeSrc":"14197:30:88","nodeType":"YulExpressionStatement","src":"14197:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14247:9:88","nodeType":"YulIdentifier","src":"14247:9:88"},{"kind":"number","nativeSrc":"14258:2:88","nodeType":"YulLiteral","src":"14258:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14243:3:88","nodeType":"YulIdentifier","src":"14243:3:88"},"nativeSrc":"14243:18:88","nodeType":"YulFunctionCall","src":"14243:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"14263:34:88","nodeType":"YulLiteral","src":"14263:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"14236:6:88","nodeType":"YulIdentifier","src":"14236:6:88"},"nativeSrc":"14236:62:88","nodeType":"YulFunctionCall","src":"14236:62:88"},"nativeSrc":"14236:62:88","nodeType":"YulExpressionStatement","src":"14236:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14318:9:88","nodeType":"YulIdentifier","src":"14318:9:88"},{"kind":"number","nativeSrc":"14329:2:88","nodeType":"YulLiteral","src":"14329:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14314:3:88","nodeType":"YulIdentifier","src":"14314:3:88"},"nativeSrc":"14314:18:88","nodeType":"YulFunctionCall","src":"14314:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"14334:15:88","nodeType":"YulLiteral","src":"14334:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"14307:6:88","nodeType":"YulIdentifier","src":"14307:6:88"},"nativeSrc":"14307:43:88","nodeType":"YulFunctionCall","src":"14307:43:88"},"nativeSrc":"14307:43:88","nodeType":"YulExpressionStatement","src":"14307:43:88"},{"nativeSrc":"14359:27:88","nodeType":"YulAssignment","src":"14359:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14371:9:88","nodeType":"YulIdentifier","src":"14371:9:88"},{"kind":"number","nativeSrc":"14382:3:88","nodeType":"YulLiteral","src":"14382:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14367:3:88","nodeType":"YulIdentifier","src":"14367:3:88"},"nativeSrc":"14367:19:88","nodeType":"YulFunctionCall","src":"14367:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14359:4:88","nodeType":"YulIdentifier","src":"14359:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13983:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14134:9:88","nodeType":"YulTypedName","src":"14134:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14148:4:88","nodeType":"YulTypedName","src":"14148:4:88","type":""}],"src":"13983:409:88"},{"body":{"nativeSrc":"14571:170:88","nodeType":"YulBlock","src":"14571:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14588:9:88","nodeType":"YulIdentifier","src":"14588:9:88"},{"kind":"number","nativeSrc":"14599:2:88","nodeType":"YulLiteral","src":"14599:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14581:6:88","nodeType":"YulIdentifier","src":"14581:6:88"},"nativeSrc":"14581:21:88","nodeType":"YulFunctionCall","src":"14581:21:88"},"nativeSrc":"14581:21:88","nodeType":"YulExpressionStatement","src":"14581:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14622:9:88","nodeType":"YulIdentifier","src":"14622:9:88"},{"kind":"number","nativeSrc":"14633:2:88","nodeType":"YulLiteral","src":"14633:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14618:3:88","nodeType":"YulIdentifier","src":"14618:3:88"},"nativeSrc":"14618:18:88","nodeType":"YulFunctionCall","src":"14618:18:88"},{"kind":"number","nativeSrc":"14638:2:88","nodeType":"YulLiteral","src":"14638:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"14611:6:88","nodeType":"YulIdentifier","src":"14611:6:88"},"nativeSrc":"14611:30:88","nodeType":"YulFunctionCall","src":"14611:30:88"},"nativeSrc":"14611:30:88","nodeType":"YulExpressionStatement","src":"14611:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14661:9:88","nodeType":"YulIdentifier","src":"14661:9:88"},{"kind":"number","nativeSrc":"14672:2:88","nodeType":"YulLiteral","src":"14672:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14657:3:88","nodeType":"YulIdentifier","src":"14657:3:88"},"nativeSrc":"14657:18:88","nodeType":"YulFunctionCall","src":"14657:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"14677:22:88","nodeType":"YulLiteral","src":"14677:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"14650:6:88","nodeType":"YulIdentifier","src":"14650:6:88"},"nativeSrc":"14650:50:88","nodeType":"YulFunctionCall","src":"14650:50:88"},"nativeSrc":"14650:50:88","nodeType":"YulExpressionStatement","src":"14650:50:88"},{"nativeSrc":"14709:26:88","nodeType":"YulAssignment","src":"14709:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14721:9:88","nodeType":"YulIdentifier","src":"14721:9:88"},{"kind":"number","nativeSrc":"14732:2:88","nodeType":"YulLiteral","src":"14732:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14717:3:88","nodeType":"YulIdentifier","src":"14717:3:88"},"nativeSrc":"14717:18:88","nodeType":"YulFunctionCall","src":"14717:18:88"},"variableNames":[{"name":"tail","nativeSrc":"14709:4:88","nodeType":"YulIdentifier","src":"14709:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14397:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14548:9:88","nodeType":"YulTypedName","src":"14548:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14562:4:88","nodeType":"YulTypedName","src":"14562:4:88","type":""}],"src":"14397:344:88"},{"body":{"nativeSrc":"14920:166:88","nodeType":"YulBlock","src":"14920:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14937:9:88","nodeType":"YulIdentifier","src":"14937:9:88"},{"kind":"number","nativeSrc":"14948:2:88","nodeType":"YulLiteral","src":"14948:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14930:6:88","nodeType":"YulIdentifier","src":"14930:6:88"},"nativeSrc":"14930:21:88","nodeType":"YulFunctionCall","src":"14930:21:88"},"nativeSrc":"14930:21:88","nodeType":"YulExpressionStatement","src":"14930:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14971:9:88","nodeType":"YulIdentifier","src":"14971:9:88"},{"kind":"number","nativeSrc":"14982:2:88","nodeType":"YulLiteral","src":"14982:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14967:3:88","nodeType":"YulIdentifier","src":"14967:3:88"},"nativeSrc":"14967:18:88","nodeType":"YulFunctionCall","src":"14967:18:88"},{"kind":"number","nativeSrc":"14987:2:88","nodeType":"YulLiteral","src":"14987:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"14960:6:88","nodeType":"YulIdentifier","src":"14960:6:88"},"nativeSrc":"14960:30:88","nodeType":"YulFunctionCall","src":"14960:30:88"},"nativeSrc":"14960:30:88","nodeType":"YulExpressionStatement","src":"14960:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15010:9:88","nodeType":"YulIdentifier","src":"15010:9:88"},{"kind":"number","nativeSrc":"15021:2:88","nodeType":"YulLiteral","src":"15021:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15006:3:88","nodeType":"YulIdentifier","src":"15006:3:88"},"nativeSrc":"15006:18:88","nodeType":"YulFunctionCall","src":"15006:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"15026:18:88","nodeType":"YulLiteral","src":"15026:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"14999:6:88","nodeType":"YulIdentifier","src":"14999:6:88"},"nativeSrc":"14999:46:88","nodeType":"YulFunctionCall","src":"14999:46:88"},"nativeSrc":"14999:46:88","nodeType":"YulExpressionStatement","src":"14999:46:88"},{"nativeSrc":"15054:26:88","nodeType":"YulAssignment","src":"15054:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15066:9:88","nodeType":"YulIdentifier","src":"15066:9:88"},{"kind":"number","nativeSrc":"15077:2:88","nodeType":"YulLiteral","src":"15077:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15062:3:88","nodeType":"YulIdentifier","src":"15062:3:88"},"nativeSrc":"15062:18:88","nodeType":"YulFunctionCall","src":"15062:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15054:4:88","nodeType":"YulIdentifier","src":"15054:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14746:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14897:9:88","nodeType":"YulTypedName","src":"14897:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14911:4:88","nodeType":"YulTypedName","src":"14911:4:88","type":""}],"src":"14746:340:88"},{"body":{"nativeSrc":"15166:129:88","nodeType":"YulBlock","src":"15166:129:88","statements":[{"nativeSrc":"15176:30:88","nodeType":"YulVariableDeclaration","src":"15176:30:88","value":{"arguments":[{"name":"ptr","nativeSrc":"15202:3:88","nodeType":"YulIdentifier","src":"15202:3:88"}],"functionName":{"name":"calldataload","nativeSrc":"15189:12:88","nodeType":"YulIdentifier","src":"15189:12:88"},"nativeSrc":"15189:17:88","nodeType":"YulFunctionCall","src":"15189:17:88"},"variables":[{"name":"value","nativeSrc":"15180:5:88","nodeType":"YulTypedName","src":"15180:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15254:5:88","nodeType":"YulIdentifier","src":"15254:5:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"15215:38:88","nodeType":"YulIdentifier","src":"15215:38:88"},"nativeSrc":"15215:45:88","nodeType":"YulFunctionCall","src":"15215:45:88"},"nativeSrc":"15215:45:88","nodeType":"YulExpressionStatement","src":"15215:45:88"},{"nativeSrc":"15269:20:88","nodeType":"YulAssignment","src":"15269:20:88","value":{"name":"value","nativeSrc":"15284:5:88","nodeType":"YulIdentifier","src":"15284:5:88"},"variableNames":[{"name":"returnValue","nativeSrc":"15269:11:88","nodeType":"YulIdentifier","src":"15269:11:88"}]}]},"name":"read_from_calldatat_enum_WhitelistOptions","nativeSrc":"15091:204:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15142:3:88","nodeType":"YulTypedName","src":"15142:3:88","type":""}],"returnVariables":[{"name":"returnValue","nativeSrc":"15150:11:88","nodeType":"YulTypedName","src":"15150:11:88","type":""}],"src":"15091:204:88"},{"body":{"nativeSrc":"15405:269:88","nodeType":"YulBlock","src":"15405:269:88","statements":[{"body":{"nativeSrc":"15447:111:88","nodeType":"YulBlock","src":"15447:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15468:1:88","nodeType":"YulLiteral","src":"15468:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"15475:3:88","nodeType":"YulLiteral","src":"15475:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"15480:10:88","nodeType":"YulLiteral","src":"15480:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"15471:3:88","nodeType":"YulIdentifier","src":"15471:3:88"},"nativeSrc":"15471:20:88","nodeType":"YulFunctionCall","src":"15471:20:88"}],"functionName":{"name":"mstore","nativeSrc":"15461:6:88","nodeType":"YulIdentifier","src":"15461:6:88"},"nativeSrc":"15461:31:88","nodeType":"YulFunctionCall","src":"15461:31:88"},"nativeSrc":"15461:31:88","nodeType":"YulExpressionStatement","src":"15461:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15512:1:88","nodeType":"YulLiteral","src":"15512:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"15515:4:88","nodeType":"YulLiteral","src":"15515:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"15505:6:88","nodeType":"YulIdentifier","src":"15505:6:88"},"nativeSrc":"15505:15:88","nodeType":"YulFunctionCall","src":"15505:15:88"},"nativeSrc":"15505:15:88","nodeType":"YulExpressionStatement","src":"15505:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15540:1:88","nodeType":"YulLiteral","src":"15540:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15543:4:88","nodeType":"YulLiteral","src":"15543:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15533:6:88","nodeType":"YulIdentifier","src":"15533:6:88"},"nativeSrc":"15533:15:88","nodeType":"YulFunctionCall","src":"15533:15:88"},"nativeSrc":"15533:15:88","nodeType":"YulExpressionStatement","src":"15533:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15428:5:88","nodeType":"YulIdentifier","src":"15428:5:88"},{"kind":"number","nativeSrc":"15435:1:88","nodeType":"YulLiteral","src":"15435:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"15425:2:88","nodeType":"YulIdentifier","src":"15425:2:88"},"nativeSrc":"15425:12:88","nodeType":"YulFunctionCall","src":"15425:12:88"}],"functionName":{"name":"iszero","nativeSrc":"15418:6:88","nodeType":"YulIdentifier","src":"15418:6:88"},"nativeSrc":"15418:20:88","nodeType":"YulFunctionCall","src":"15418:20:88"},"nativeSrc":"15415:143:88","nodeType":"YulIf","src":"15415:143:88"},{"nativeSrc":"15567:21:88","nodeType":"YulVariableDeclaration","src":"15567:21:88","value":{"arguments":[{"name":"slot","nativeSrc":"15583:4:88","nodeType":"YulIdentifier","src":"15583:4:88"}],"functionName":{"name":"sload","nativeSrc":"15577:5:88","nodeType":"YulIdentifier","src":"15577:5:88"},"nativeSrc":"15577:11:88","nodeType":"YulFunctionCall","src":"15577:11:88"},"variables":[{"name":"_1","nativeSrc":"15571:2:88","nodeType":"YulTypedName","src":"15571:2:88","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"15604:4:88","nodeType":"YulIdentifier","src":"15604:4:88"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15617:2:88","nodeType":"YulIdentifier","src":"15617:2:88"},{"arguments":[{"kind":"number","nativeSrc":"15625:8:88","nodeType":"YulLiteral","src":"15625:8:88","type":"","value":"16711680"}],"functionName":{"name":"not","nativeSrc":"15621:3:88","nodeType":"YulIdentifier","src":"15621:3:88"},"nativeSrc":"15621:13:88","nodeType":"YulFunctionCall","src":"15621:13:88"}],"functionName":{"name":"and","nativeSrc":"15613:3:88","nodeType":"YulIdentifier","src":"15613:3:88"},"nativeSrc":"15613:22:88","nodeType":"YulFunctionCall","src":"15613:22:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15645:2:88","nodeType":"YulLiteral","src":"15645:2:88","type":"","value":"16"},{"name":"value","nativeSrc":"15649:5:88","nodeType":"YulIdentifier","src":"15649:5:88"}],"functionName":{"name":"shl","nativeSrc":"15641:3:88","nodeType":"YulIdentifier","src":"15641:3:88"},"nativeSrc":"15641:14:88","nodeType":"YulFunctionCall","src":"15641:14:88"},{"kind":"number","nativeSrc":"15657:8:88","nodeType":"YulLiteral","src":"15657:8:88","type":"","value":"16711680"}],"functionName":{"name":"and","nativeSrc":"15637:3:88","nodeType":"YulIdentifier","src":"15637:3:88"},"nativeSrc":"15637:29:88","nodeType":"YulFunctionCall","src":"15637:29:88"}],"functionName":{"name":"or","nativeSrc":"15610:2:88","nodeType":"YulIdentifier","src":"15610:2:88"},"nativeSrc":"15610:57:88","nodeType":"YulFunctionCall","src":"15610:57:88"}],"functionName":{"name":"sstore","nativeSrc":"15597:6:88","nodeType":"YulIdentifier","src":"15597:6:88"},"nativeSrc":"15597:71:88","nodeType":"YulFunctionCall","src":"15597:71:88"},"nativeSrc":"15597:71:88","nodeType":"YulExpressionStatement","src":"15597:71:88"}]},"name":"update_storage_value_offset_t_enum_WhitelistOptions_to_t_enum_WhitelistOptions","nativeSrc":"15300:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"15388:4:88","nodeType":"YulTypedName","src":"15388:4:88","type":""},{"name":"value","nativeSrc":"15394:5:88","nodeType":"YulTypedName","src":"15394:5:88","type":""}],"src":"15300:374:88"},{"body":{"nativeSrc":"15780:273:88","nodeType":"YulBlock","src":"15780:273:88","statements":[{"body":{"nativeSrc":"15822:111:88","nodeType":"YulBlock","src":"15822:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15843:1:88","nodeType":"YulLiteral","src":"15843:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"15850:3:88","nodeType":"YulLiteral","src":"15850:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"15855:10:88","nodeType":"YulLiteral","src":"15855:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"15846:3:88","nodeType":"YulIdentifier","src":"15846:3:88"},"nativeSrc":"15846:20:88","nodeType":"YulFunctionCall","src":"15846:20:88"}],"functionName":{"name":"mstore","nativeSrc":"15836:6:88","nodeType":"YulIdentifier","src":"15836:6:88"},"nativeSrc":"15836:31:88","nodeType":"YulFunctionCall","src":"15836:31:88"},"nativeSrc":"15836:31:88","nodeType":"YulExpressionStatement","src":"15836:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15887:1:88","nodeType":"YulLiteral","src":"15887:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"15890:4:88","nodeType":"YulLiteral","src":"15890:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"15880:6:88","nodeType":"YulIdentifier","src":"15880:6:88"},"nativeSrc":"15880:15:88","nodeType":"YulFunctionCall","src":"15880:15:88"},"nativeSrc":"15880:15:88","nodeType":"YulExpressionStatement","src":"15880:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15915:1:88","nodeType":"YulLiteral","src":"15915:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15918:4:88","nodeType":"YulLiteral","src":"15918:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15908:6:88","nodeType":"YulIdentifier","src":"15908:6:88"},"nativeSrc":"15908:15:88","nodeType":"YulFunctionCall","src":"15908:15:88"},"nativeSrc":"15908:15:88","nodeType":"YulExpressionStatement","src":"15908:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15803:5:88","nodeType":"YulIdentifier","src":"15803:5:88"},{"kind":"number","nativeSrc":"15810:1:88","nodeType":"YulLiteral","src":"15810:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"15800:2:88","nodeType":"YulIdentifier","src":"15800:2:88"},"nativeSrc":"15800:12:88","nodeType":"YulFunctionCall","src":"15800:12:88"}],"functionName":{"name":"iszero","nativeSrc":"15793:6:88","nodeType":"YulIdentifier","src":"15793:6:88"},"nativeSrc":"15793:20:88","nodeType":"YulFunctionCall","src":"15793:20:88"},"nativeSrc":"15790:143:88","nodeType":"YulIf","src":"15790:143:88"},{"nativeSrc":"15942:21:88","nodeType":"YulVariableDeclaration","src":"15942:21:88","value":{"arguments":[{"name":"slot","nativeSrc":"15958:4:88","nodeType":"YulIdentifier","src":"15958:4:88"}],"functionName":{"name":"sload","nativeSrc":"15952:5:88","nodeType":"YulIdentifier","src":"15952:5:88"},"nativeSrc":"15952:11:88","nodeType":"YulFunctionCall","src":"15952:11:88"},"variables":[{"name":"_1","nativeSrc":"15946:2:88","nodeType":"YulTypedName","src":"15946:2:88","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"15979:4:88","nodeType":"YulIdentifier","src":"15979:4:88"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"15992:2:88","nodeType":"YulIdentifier","src":"15992:2:88"},{"arguments":[{"kind":"number","nativeSrc":"16000:10:88","nodeType":"YulLiteral","src":"16000:10:88","type":"","value":"0xff000000"}],"functionName":{"name":"not","nativeSrc":"15996:3:88","nodeType":"YulIdentifier","src":"15996:3:88"},"nativeSrc":"15996:15:88","nodeType":"YulFunctionCall","src":"15996:15:88"}],"functionName":{"name":"and","nativeSrc":"15988:3:88","nodeType":"YulIdentifier","src":"15988:3:88"},"nativeSrc":"15988:24:88","nodeType":"YulFunctionCall","src":"15988:24:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16022:2:88","nodeType":"YulLiteral","src":"16022:2:88","type":"","value":"24"},{"name":"value","nativeSrc":"16026:5:88","nodeType":"YulIdentifier","src":"16026:5:88"}],"functionName":{"name":"shl","nativeSrc":"16018:3:88","nodeType":"YulIdentifier","src":"16018:3:88"},"nativeSrc":"16018:14:88","nodeType":"YulFunctionCall","src":"16018:14:88"},{"kind":"number","nativeSrc":"16034:10:88","nodeType":"YulLiteral","src":"16034:10:88","type":"","value":"0xff000000"}],"functionName":{"name":"and","nativeSrc":"16014:3:88","nodeType":"YulIdentifier","src":"16014:3:88"},"nativeSrc":"16014:31:88","nodeType":"YulFunctionCall","src":"16014:31:88"}],"functionName":{"name":"or","nativeSrc":"15985:2:88","nodeType":"YulIdentifier","src":"15985:2:88"},"nativeSrc":"15985:61:88","nodeType":"YulFunctionCall","src":"15985:61:88"}],"functionName":{"name":"sstore","nativeSrc":"15972:6:88","nodeType":"YulIdentifier","src":"15972:6:88"},"nativeSrc":"15972:75:88","nodeType":"YulFunctionCall","src":"15972:75:88"},"nativeSrc":"15972:75:88","nodeType":"YulExpressionStatement","src":"15972:75:88"}]},"name":"update_storage_value_offset_enum_WhitelistOptions_to_enum_WhitelistOptions","nativeSrc":"15679:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"15763:4:88","nodeType":"YulTypedName","src":"15763:4:88","type":""},{"name":"value","nativeSrc":"15769:5:88","nodeType":"YulTypedName","src":"15769:5:88","type":""}],"src":"15679:374:88"},{"body":{"nativeSrc":"16204:1019:88","nodeType":"YulBlock","src":"16204:1019:88","statements":[{"nativeSrc":"16214:34:88","nodeType":"YulVariableDeclaration","src":"16214:34:88","value":{"arguments":[{"name":"value","nativeSrc":"16242:5:88","nodeType":"YulIdentifier","src":"16242:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"16229:12:88","nodeType":"YulIdentifier","src":"16229:12:88"},"nativeSrc":"16229:19:88","nodeType":"YulFunctionCall","src":"16229:19:88"},"variables":[{"name":"value_1","nativeSrc":"16218:7:88","nodeType":"YulTypedName","src":"16218:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"16296:7:88","nodeType":"YulIdentifier","src":"16296:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"16257:38:88","nodeType":"YulIdentifier","src":"16257:38:88"},"nativeSrc":"16257:47:88","nodeType":"YulFunctionCall","src":"16257:47:88"},"nativeSrc":"16257:47:88","nodeType":"YulExpressionStatement","src":"16257:47:88"},{"body":{"nativeSrc":"16347:111:88","nodeType":"YulBlock","src":"16347:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16368:1:88","nodeType":"YulLiteral","src":"16368:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"16375:3:88","nodeType":"YulLiteral","src":"16375:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"16380:10:88","nodeType":"YulLiteral","src":"16380:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"16371:3:88","nodeType":"YulIdentifier","src":"16371:3:88"},"nativeSrc":"16371:20:88","nodeType":"YulFunctionCall","src":"16371:20:88"}],"functionName":{"name":"mstore","nativeSrc":"16361:6:88","nodeType":"YulIdentifier","src":"16361:6:88"},"nativeSrc":"16361:31:88","nodeType":"YulFunctionCall","src":"16361:31:88"},"nativeSrc":"16361:31:88","nodeType":"YulExpressionStatement","src":"16361:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16412:1:88","nodeType":"YulLiteral","src":"16412:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"16415:4:88","nodeType":"YulLiteral","src":"16415:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"16405:6:88","nodeType":"YulIdentifier","src":"16405:6:88"},"nativeSrc":"16405:15:88","nodeType":"YulFunctionCall","src":"16405:15:88"},"nativeSrc":"16405:15:88","nodeType":"YulExpressionStatement","src":"16405:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16440:1:88","nodeType":"YulLiteral","src":"16440:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"16443:4:88","nodeType":"YulLiteral","src":"16443:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16433:6:88","nodeType":"YulIdentifier","src":"16433:6:88"},"nativeSrc":"16433:15:88","nodeType":"YulFunctionCall","src":"16433:15:88"},"nativeSrc":"16433:15:88","nodeType":"YulExpressionStatement","src":"16433:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"16326:7:88","nodeType":"YulIdentifier","src":"16326:7:88"},{"kind":"number","nativeSrc":"16335:1:88","nodeType":"YulLiteral","src":"16335:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"16323:2:88","nodeType":"YulIdentifier","src":"16323:2:88"},"nativeSrc":"16323:14:88","nodeType":"YulFunctionCall","src":"16323:14:88"}],"functionName":{"name":"iszero","nativeSrc":"16316:6:88","nodeType":"YulIdentifier","src":"16316:6:88"},"nativeSrc":"16316:22:88","nodeType":"YulFunctionCall","src":"16316:22:88"},"nativeSrc":"16313:145:88","nodeType":"YulIf","src":"16313:145:88"},{"nativeSrc":"16467:21:88","nodeType":"YulVariableDeclaration","src":"16467:21:88","value":{"arguments":[{"name":"slot","nativeSrc":"16483:4:88","nodeType":"YulIdentifier","src":"16483:4:88"}],"functionName":{"name":"sload","nativeSrc":"16477:5:88","nodeType":"YulIdentifier","src":"16477:5:88"},"nativeSrc":"16477:11:88","nodeType":"YulFunctionCall","src":"16477:11:88"},"variables":[{"name":"_1","nativeSrc":"16471:2:88","nodeType":"YulTypedName","src":"16471:2:88","type":""}]},{"nativeSrc":"16497:27:88","nodeType":"YulVariableDeclaration","src":"16497:27:88","value":{"arguments":[{"name":"value_1","nativeSrc":"16511:7:88","nodeType":"YulIdentifier","src":"16511:7:88"},{"kind":"number","nativeSrc":"16520:3:88","nodeType":"YulLiteral","src":"16520:3:88","type":"","value":"255"}],"functionName":{"name":"and","nativeSrc":"16507:3:88","nodeType":"YulIdentifier","src":"16507:3:88"},"nativeSrc":"16507:17:88","nodeType":"YulFunctionCall","src":"16507:17:88"},"variables":[{"name":"_2","nativeSrc":"16501:2:88","nodeType":"YulTypedName","src":"16501:2:88","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16540:4:88","nodeType":"YulIdentifier","src":"16540:4:88"},{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"16553:2:88","nodeType":"YulIdentifier","src":"16553:2:88"},{"arguments":[{"kind":"number","nativeSrc":"16561:3:88","nodeType":"YulLiteral","src":"16561:3:88","type":"","value":"255"}],"functionName":{"name":"not","nativeSrc":"16557:3:88","nodeType":"YulIdentifier","src":"16557:3:88"},"nativeSrc":"16557:8:88","nodeType":"YulFunctionCall","src":"16557:8:88"}],"functionName":{"name":"and","nativeSrc":"16549:3:88","nodeType":"YulIdentifier","src":"16549:3:88"},"nativeSrc":"16549:17:88","nodeType":"YulFunctionCall","src":"16549:17:88"},{"name":"_2","nativeSrc":"16568:2:88","nodeType":"YulIdentifier","src":"16568:2:88"}],"functionName":{"name":"or","nativeSrc":"16546:2:88","nodeType":"YulIdentifier","src":"16546:2:88"},"nativeSrc":"16546:25:88","nodeType":"YulFunctionCall","src":"16546:25:88"}],"functionName":{"name":"sstore","nativeSrc":"16533:6:88","nodeType":"YulIdentifier","src":"16533:6:88"},"nativeSrc":"16533:39:88","nodeType":"YulFunctionCall","src":"16533:39:88"},"nativeSrc":"16533:39:88","nodeType":"YulExpressionStatement","src":"16533:39:88"},{"nativeSrc":"16581:43:88","nodeType":"YulVariableDeclaration","src":"16581:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16613:5:88","nodeType":"YulIdentifier","src":"16613:5:88"},{"kind":"number","nativeSrc":"16620:2:88","nodeType":"YulLiteral","src":"16620:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16609:3:88","nodeType":"YulIdentifier","src":"16609:3:88"},"nativeSrc":"16609:14:88","nodeType":"YulFunctionCall","src":"16609:14:88"}],"functionName":{"name":"calldataload","nativeSrc":"16596:12:88","nodeType":"YulIdentifier","src":"16596:12:88"},"nativeSrc":"16596:28:88","nodeType":"YulFunctionCall","src":"16596:28:88"},"variables":[{"name":"value_2","nativeSrc":"16585:7:88","nodeType":"YulTypedName","src":"16585:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"16672:7:88","nodeType":"YulIdentifier","src":"16672:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"16633:38:88","nodeType":"YulIdentifier","src":"16633:38:88"},"nativeSrc":"16633:47:88","nodeType":"YulFunctionCall","src":"16633:47:88"},"nativeSrc":"16633:47:88","nodeType":"YulExpressionStatement","src":"16633:47:88"},{"body":{"nativeSrc":"16723:111:88","nodeType":"YulBlock","src":"16723:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16744:1:88","nodeType":"YulLiteral","src":"16744:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"16751:3:88","nodeType":"YulLiteral","src":"16751:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"16756:10:88","nodeType":"YulLiteral","src":"16756:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"16747:3:88","nodeType":"YulIdentifier","src":"16747:3:88"},"nativeSrc":"16747:20:88","nodeType":"YulFunctionCall","src":"16747:20:88"}],"functionName":{"name":"mstore","nativeSrc":"16737:6:88","nodeType":"YulIdentifier","src":"16737:6:88"},"nativeSrc":"16737:31:88","nodeType":"YulFunctionCall","src":"16737:31:88"},"nativeSrc":"16737:31:88","nodeType":"YulExpressionStatement","src":"16737:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16788:1:88","nodeType":"YulLiteral","src":"16788:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"16791:4:88","nodeType":"YulLiteral","src":"16791:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"16781:6:88","nodeType":"YulIdentifier","src":"16781:6:88"},"nativeSrc":"16781:15:88","nodeType":"YulFunctionCall","src":"16781:15:88"},"nativeSrc":"16781:15:88","nodeType":"YulExpressionStatement","src":"16781:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16816:1:88","nodeType":"YulLiteral","src":"16816:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"16819:4:88","nodeType":"YulLiteral","src":"16819:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16809:6:88","nodeType":"YulIdentifier","src":"16809:6:88"},"nativeSrc":"16809:15:88","nodeType":"YulFunctionCall","src":"16809:15:88"},"nativeSrc":"16809:15:88","nodeType":"YulExpressionStatement","src":"16809:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nativeSrc":"16702:7:88","nodeType":"YulIdentifier","src":"16702:7:88"},{"kind":"number","nativeSrc":"16711:1:88","nodeType":"YulLiteral","src":"16711:1:88","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"16699:2:88","nodeType":"YulIdentifier","src":"16699:2:88"},"nativeSrc":"16699:14:88","nodeType":"YulFunctionCall","src":"16699:14:88"}],"functionName":{"name":"iszero","nativeSrc":"16692:6:88","nodeType":"YulIdentifier","src":"16692:6:88"},"nativeSrc":"16692:22:88","nodeType":"YulFunctionCall","src":"16692:22:88"},"nativeSrc":"16689:145:88","nodeType":"YulIf","src":"16689:145:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16850:4:88","nodeType":"YulIdentifier","src":"16850:4:88"},{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"16866:2:88","nodeType":"YulIdentifier","src":"16866:2:88"},{"arguments":[{"kind":"number","nativeSrc":"16874:5:88","nodeType":"YulLiteral","src":"16874:5:88","type":"","value":"65535"}],"functionName":{"name":"not","nativeSrc":"16870:3:88","nodeType":"YulIdentifier","src":"16870:3:88"},"nativeSrc":"16870:10:88","nodeType":"YulFunctionCall","src":"16870:10:88"}],"functionName":{"name":"and","nativeSrc":"16862:3:88","nodeType":"YulIdentifier","src":"16862:3:88"},"nativeSrc":"16862:19:88","nodeType":"YulFunctionCall","src":"16862:19:88"},{"name":"_2","nativeSrc":"16883:2:88","nodeType":"YulIdentifier","src":"16883:2:88"}],"functionName":{"name":"or","nativeSrc":"16859:2:88","nodeType":"YulIdentifier","src":"16859:2:88"},"nativeSrc":"16859:27:88","nodeType":"YulFunctionCall","src":"16859:27:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16896:1:88","nodeType":"YulLiteral","src":"16896:1:88","type":"","value":"8"},{"name":"value_2","nativeSrc":"16899:7:88","nodeType":"YulIdentifier","src":"16899:7:88"}],"functionName":{"name":"shl","nativeSrc":"16892:3:88","nodeType":"YulIdentifier","src":"16892:3:88"},"nativeSrc":"16892:15:88","nodeType":"YulFunctionCall","src":"16892:15:88"},{"kind":"number","nativeSrc":"16909:5:88","nodeType":"YulLiteral","src":"16909:5:88","type":"","value":"65280"}],"functionName":{"name":"and","nativeSrc":"16888:3:88","nodeType":"YulIdentifier","src":"16888:3:88"},"nativeSrc":"16888:27:88","nodeType":"YulFunctionCall","src":"16888:27:88"}],"functionName":{"name":"or","nativeSrc":"16856:2:88","nodeType":"YulIdentifier","src":"16856:2:88"},"nativeSrc":"16856:60:88","nodeType":"YulFunctionCall","src":"16856:60:88"}],"functionName":{"name":"sstore","nativeSrc":"16843:6:88","nodeType":"YulIdentifier","src":"16843:6:88"},"nativeSrc":"16843:74:88","nodeType":"YulFunctionCall","src":"16843:74:88"},"nativeSrc":"16843:74:88","nodeType":"YulExpressionStatement","src":"16843:74:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"17005:4:88","nodeType":"YulIdentifier","src":"17005:4:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17057:5:88","nodeType":"YulIdentifier","src":"17057:5:88"},{"kind":"number","nativeSrc":"17064:2:88","nodeType":"YulLiteral","src":"17064:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17053:3:88","nodeType":"YulIdentifier","src":"17053:3:88"},"nativeSrc":"17053:14:88","nodeType":"YulFunctionCall","src":"17053:14:88"}],"functionName":{"name":"read_from_calldatat_enum_WhitelistOptions","nativeSrc":"17011:41:88","nodeType":"YulIdentifier","src":"17011:41:88"},"nativeSrc":"17011:57:88","nodeType":"YulFunctionCall","src":"17011:57:88"}],"functionName":{"name":"update_storage_value_offset_t_enum_WhitelistOptions_to_t_enum_WhitelistOptions","nativeSrc":"16926:78:88","nodeType":"YulIdentifier","src":"16926:78:88"},"nativeSrc":"16926:143:88","nodeType":"YulFunctionCall","src":"16926:143:88"},"nativeSrc":"16926:143:88","nodeType":"YulExpressionStatement","src":"16926:143:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"17153:4:88","nodeType":"YulIdentifier","src":"17153:4:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17205:5:88","nodeType":"YulIdentifier","src":"17205:5:88"},{"kind":"number","nativeSrc":"17212:2:88","nodeType":"YulLiteral","src":"17212:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17201:3:88","nodeType":"YulIdentifier","src":"17201:3:88"},"nativeSrc":"17201:14:88","nodeType":"YulFunctionCall","src":"17201:14:88"}],"functionName":{"name":"read_from_calldatat_enum_WhitelistOptions","nativeSrc":"17159:41:88","nodeType":"YulIdentifier","src":"17159:41:88"},"nativeSrc":"17159:57:88","nodeType":"YulFunctionCall","src":"17159:57:88"}],"functionName":{"name":"update_storage_value_offset_enum_WhitelistOptions_to_enum_WhitelistOptions","nativeSrc":"17078:74:88","nodeType":"YulIdentifier","src":"17078:74:88"},"nativeSrc":"17078:139:88","nodeType":"YulFunctionCall","src":"17078:139:88"},"nativeSrc":"17078:139:88","nodeType":"YulExpressionStatement","src":"17078:139:88"}]},"name":"update_storage_value_offset_0_t_struct$_WhitelistStatus_$13967_calldata_ptr_to_t_struct$_WhitelistStatus_$13967_storage","nativeSrc":"16058:1165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"16187:4:88","nodeType":"YulTypedName","src":"16187:4:88","type":""},{"name":"value","nativeSrc":"16193:5:88","nodeType":"YulTypedName","src":"16193:5:88","type":""}],"src":"16058:1165:88"},{"body":{"nativeSrc":"17427:805:88","nodeType":"YulBlock","src":"17427:805:88","statements":[{"nativeSrc":"17437:27:88","nodeType":"YulAssignment","src":"17437:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17449:9:88","nodeType":"YulIdentifier","src":"17449:9:88"},{"kind":"number","nativeSrc":"17460:3:88","nodeType":"YulLiteral","src":"17460:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"17445:3:88","nodeType":"YulIdentifier","src":"17445:3:88"},"nativeSrc":"17445:19:88","nodeType":"YulFunctionCall","src":"17445:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17437:4:88","nodeType":"YulIdentifier","src":"17437:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17480:9:88","nodeType":"YulIdentifier","src":"17480:9:88"},{"arguments":[{"name":"value0","nativeSrc":"17495:6:88","nodeType":"YulIdentifier","src":"17495:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17511:3:88","nodeType":"YulLiteral","src":"17511:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"17516:1:88","nodeType":"YulLiteral","src":"17516:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17507:3:88","nodeType":"YulIdentifier","src":"17507:3:88"},"nativeSrc":"17507:11:88","nodeType":"YulFunctionCall","src":"17507:11:88"},{"kind":"number","nativeSrc":"17520:1:88","nodeType":"YulLiteral","src":"17520:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17503:3:88","nodeType":"YulIdentifier","src":"17503:3:88"},"nativeSrc":"17503:19:88","nodeType":"YulFunctionCall","src":"17503:19:88"}],"functionName":{"name":"and","nativeSrc":"17491:3:88","nodeType":"YulIdentifier","src":"17491:3:88"},"nativeSrc":"17491:32:88","nodeType":"YulFunctionCall","src":"17491:32:88"}],"functionName":{"name":"mstore","nativeSrc":"17473:6:88","nodeType":"YulIdentifier","src":"17473:6:88"},"nativeSrc":"17473:51:88","nodeType":"YulFunctionCall","src":"17473:51:88"},"nativeSrc":"17473:51:88","nodeType":"YulExpressionStatement","src":"17473:51:88"},{"nativeSrc":"17533:33:88","nodeType":"YulVariableDeclaration","src":"17533:33:88","value":{"arguments":[{"name":"value1","nativeSrc":"17559:6:88","nodeType":"YulIdentifier","src":"17559:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"17546:12:88","nodeType":"YulIdentifier","src":"17546:12:88"},"nativeSrc":"17546:20:88","nodeType":"YulFunctionCall","src":"17546:20:88"},"variables":[{"name":"value","nativeSrc":"17537:5:88","nodeType":"YulTypedName","src":"17537:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17614:5:88","nodeType":"YulIdentifier","src":"17614:5:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"17575:38:88","nodeType":"YulIdentifier","src":"17575:38:88"},"nativeSrc":"17575:45:88","nodeType":"YulFunctionCall","src":"17575:45:88"},"nativeSrc":"17575:45:88","nodeType":"YulExpressionStatement","src":"17575:45:88"},{"expression":{"arguments":[{"name":"value","nativeSrc":"17662:5:88","nodeType":"YulIdentifier","src":"17662:5:88"},{"arguments":[{"name":"headStart","nativeSrc":"17673:9:88","nodeType":"YulIdentifier","src":"17673:9:88"},{"kind":"number","nativeSrc":"17684:2:88","nodeType":"YulLiteral","src":"17684:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17669:3:88","nodeType":"YulIdentifier","src":"17669:3:88"},"nativeSrc":"17669:18:88","nodeType":"YulFunctionCall","src":"17669:18:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"17629:32:88","nodeType":"YulIdentifier","src":"17629:32:88"},"nativeSrc":"17629:59:88","nodeType":"YulFunctionCall","src":"17629:59:88"},"nativeSrc":"17629:59:88","nodeType":"YulExpressionStatement","src":"17629:59:88"},{"nativeSrc":"17697:44:88","nodeType":"YulVariableDeclaration","src":"17697:44:88","value":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"17729:6:88","nodeType":"YulIdentifier","src":"17729:6:88"},{"kind":"number","nativeSrc":"17737:2:88","nodeType":"YulLiteral","src":"17737:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17725:3:88","nodeType":"YulIdentifier","src":"17725:3:88"},"nativeSrc":"17725:15:88","nodeType":"YulFunctionCall","src":"17725:15:88"}],"functionName":{"name":"calldataload","nativeSrc":"17712:12:88","nodeType":"YulIdentifier","src":"17712:12:88"},"nativeSrc":"17712:29:88","nodeType":"YulFunctionCall","src":"17712:29:88"},"variables":[{"name":"value_1","nativeSrc":"17701:7:88","nodeType":"YulTypedName","src":"17701:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"17789:7:88","nodeType":"YulIdentifier","src":"17789:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"17750:38:88","nodeType":"YulIdentifier","src":"17750:38:88"},"nativeSrc":"17750:47:88","nodeType":"YulFunctionCall","src":"17750:47:88"},"nativeSrc":"17750:47:88","nodeType":"YulExpressionStatement","src":"17750:47:88"},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"17839:7:88","nodeType":"YulIdentifier","src":"17839:7:88"},{"arguments":[{"name":"headStart","nativeSrc":"17852:9:88","nodeType":"YulIdentifier","src":"17852:9:88"},{"kind":"number","nativeSrc":"17863:2:88","nodeType":"YulLiteral","src":"17863:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17848:3:88","nodeType":"YulIdentifier","src":"17848:3:88"},"nativeSrc":"17848:18:88","nodeType":"YulFunctionCall","src":"17848:18:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"17806:32:88","nodeType":"YulIdentifier","src":"17806:32:88"},"nativeSrc":"17806:61:88","nodeType":"YulFunctionCall","src":"17806:61:88"},"nativeSrc":"17806:61:88","nodeType":"YulExpressionStatement","src":"17806:61:88"},{"nativeSrc":"17876:44:88","nodeType":"YulVariableDeclaration","src":"17876:44:88","value":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"17908:6:88","nodeType":"YulIdentifier","src":"17908:6:88"},{"kind":"number","nativeSrc":"17916:2:88","nodeType":"YulLiteral","src":"17916:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17904:3:88","nodeType":"YulIdentifier","src":"17904:3:88"},"nativeSrc":"17904:15:88","nodeType":"YulFunctionCall","src":"17904:15:88"}],"functionName":{"name":"calldataload","nativeSrc":"17891:12:88","nodeType":"YulIdentifier","src":"17891:12:88"},"nativeSrc":"17891:29:88","nodeType":"YulFunctionCall","src":"17891:29:88"},"variables":[{"name":"value_2","nativeSrc":"17880:7:88","nodeType":"YulTypedName","src":"17880:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"17968:7:88","nodeType":"YulIdentifier","src":"17968:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"17929:38:88","nodeType":"YulIdentifier","src":"17929:38:88"},"nativeSrc":"17929:47:88","nodeType":"YulFunctionCall","src":"17929:47:88"},"nativeSrc":"17929:47:88","nodeType":"YulExpressionStatement","src":"17929:47:88"},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"18018:7:88","nodeType":"YulIdentifier","src":"18018:7:88"},{"arguments":[{"name":"headStart","nativeSrc":"18031:9:88","nodeType":"YulIdentifier","src":"18031:9:88"},{"kind":"number","nativeSrc":"18042:2:88","nodeType":"YulLiteral","src":"18042:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18027:3:88","nodeType":"YulIdentifier","src":"18027:3:88"},"nativeSrc":"18027:18:88","nodeType":"YulFunctionCall","src":"18027:18:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"17985:32:88","nodeType":"YulIdentifier","src":"17985:32:88"},"nativeSrc":"17985:61:88","nodeType":"YulFunctionCall","src":"17985:61:88"},"nativeSrc":"17985:61:88","nodeType":"YulExpressionStatement","src":"17985:61:88"},{"nativeSrc":"18055:44:88","nodeType":"YulVariableDeclaration","src":"18055:44:88","value":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"18087:6:88","nodeType":"YulIdentifier","src":"18087:6:88"},{"kind":"number","nativeSrc":"18095:2:88","nodeType":"YulLiteral","src":"18095:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18083:3:88","nodeType":"YulIdentifier","src":"18083:3:88"},"nativeSrc":"18083:15:88","nodeType":"YulFunctionCall","src":"18083:15:88"}],"functionName":{"name":"calldataload","nativeSrc":"18070:12:88","nodeType":"YulIdentifier","src":"18070:12:88"},"nativeSrc":"18070:29:88","nodeType":"YulFunctionCall","src":"18070:29:88"},"variables":[{"name":"value_3","nativeSrc":"18059:7:88","nodeType":"YulTypedName","src":"18059:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"18147:7:88","nodeType":"YulIdentifier","src":"18147:7:88"}],"functionName":{"name":"validator_revert_enum_WhitelistOptions","nativeSrc":"18108:38:88","nodeType":"YulIdentifier","src":"18108:38:88"},"nativeSrc":"18108:47:88","nodeType":"YulFunctionCall","src":"18108:47:88"},"nativeSrc":"18108:47:88","nodeType":"YulExpressionStatement","src":"18108:47:88"},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"18197:7:88","nodeType":"YulIdentifier","src":"18197:7:88"},{"arguments":[{"name":"headStart","nativeSrc":"18210:9:88","nodeType":"YulIdentifier","src":"18210:9:88"},{"kind":"number","nativeSrc":"18221:3:88","nodeType":"YulLiteral","src":"18221:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18206:3:88","nodeType":"YulIdentifier","src":"18206:3:88"},"nativeSrc":"18206:19:88","nodeType":"YulFunctionCall","src":"18206:19:88"}],"functionName":{"name":"abi_encode_enum_WhitelistOptions","nativeSrc":"18164:32:88","nodeType":"YulIdentifier","src":"18164:32:88"},"nativeSrc":"18164:62:88","nodeType":"YulFunctionCall","src":"18164:62:88"},"nativeSrc":"18164:62:88","nodeType":"YulExpressionStatement","src":"18164:62:88"}]},"name":"abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_calldata_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed","nativeSrc":"17228:1004:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17388:9:88","nodeType":"YulTypedName","src":"17388:9:88","type":""},{"name":"value1","nativeSrc":"17399:6:88","nodeType":"YulTypedName","src":"17399:6:88","type":""},{"name":"value0","nativeSrc":"17407:6:88","nodeType":"YulTypedName","src":"17407:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17418:4:88","nodeType":"YulTypedName","src":"17418:4:88","type":""}],"src":"17228:1004:88"},{"body":{"nativeSrc":"18374:164:88","nodeType":"YulBlock","src":"18374:164:88","statements":[{"nativeSrc":"18384:27:88","nodeType":"YulVariableDeclaration","src":"18384:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"18404:6:88","nodeType":"YulIdentifier","src":"18404:6:88"}],"functionName":{"name":"mload","nativeSrc":"18398:5:88","nodeType":"YulIdentifier","src":"18398:5:88"},"nativeSrc":"18398:13:88","nodeType":"YulFunctionCall","src":"18398:13:88"},"variables":[{"name":"length","nativeSrc":"18388:6:88","nodeType":"YulTypedName","src":"18388:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18426:3:88","nodeType":"YulIdentifier","src":"18426:3:88"},{"arguments":[{"name":"value0","nativeSrc":"18435:6:88","nodeType":"YulIdentifier","src":"18435:6:88"},{"kind":"number","nativeSrc":"18443:4:88","nodeType":"YulLiteral","src":"18443:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18431:3:88","nodeType":"YulIdentifier","src":"18431:3:88"},"nativeSrc":"18431:17:88","nodeType":"YulFunctionCall","src":"18431:17:88"},{"name":"length","nativeSrc":"18450:6:88","nodeType":"YulIdentifier","src":"18450:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"18420:5:88","nodeType":"YulIdentifier","src":"18420:5:88"},"nativeSrc":"18420:37:88","nodeType":"YulFunctionCall","src":"18420:37:88"},"nativeSrc":"18420:37:88","nodeType":"YulExpressionStatement","src":"18420:37:88"},{"nativeSrc":"18466:26:88","nodeType":"YulVariableDeclaration","src":"18466:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"18480:3:88","nodeType":"YulIdentifier","src":"18480:3:88"},{"name":"length","nativeSrc":"18485:6:88","nodeType":"YulIdentifier","src":"18485:6:88"}],"functionName":{"name":"add","nativeSrc":"18476:3:88","nodeType":"YulIdentifier","src":"18476:3:88"},"nativeSrc":"18476:16:88","nodeType":"YulFunctionCall","src":"18476:16:88"},"variables":[{"name":"_1","nativeSrc":"18470:2:88","nodeType":"YulTypedName","src":"18470:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"18508:2:88","nodeType":"YulIdentifier","src":"18508:2:88"},{"kind":"number","nativeSrc":"18512:1:88","nodeType":"YulLiteral","src":"18512:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18501:6:88","nodeType":"YulIdentifier","src":"18501:6:88"},"nativeSrc":"18501:13:88","nodeType":"YulFunctionCall","src":"18501:13:88"},"nativeSrc":"18501:13:88","nodeType":"YulExpressionStatement","src":"18501:13:88"},{"nativeSrc":"18523:9:88","nodeType":"YulAssignment","src":"18523:9:88","value":{"name":"_1","nativeSrc":"18530:2:88","nodeType":"YulIdentifier","src":"18530:2:88"},"variableNames":[{"name":"end","nativeSrc":"18523:3:88","nodeType":"YulIdentifier","src":"18523:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"18237:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18350:3:88","nodeType":"YulTypedName","src":"18350:3:88","type":""},{"name":"value0","nativeSrc":"18355:6:88","nodeType":"YulTypedName","src":"18355:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18366:3:88","nodeType":"YulTypedName","src":"18366:3:88","type":""}],"src":"18237:301:88"},{"body":{"nativeSrc":"18717:179:88","nodeType":"YulBlock","src":"18717:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18734:9:88","nodeType":"YulIdentifier","src":"18734:9:88"},{"kind":"number","nativeSrc":"18745:2:88","nodeType":"YulLiteral","src":"18745:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18727:6:88","nodeType":"YulIdentifier","src":"18727:6:88"},"nativeSrc":"18727:21:88","nodeType":"YulFunctionCall","src":"18727:21:88"},"nativeSrc":"18727:21:88","nodeType":"YulExpressionStatement","src":"18727:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18768:9:88","nodeType":"YulIdentifier","src":"18768:9:88"},{"kind":"number","nativeSrc":"18779:2:88","nodeType":"YulLiteral","src":"18779:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18764:3:88","nodeType":"YulIdentifier","src":"18764:3:88"},"nativeSrc":"18764:18:88","nodeType":"YulFunctionCall","src":"18764:18:88"},{"kind":"number","nativeSrc":"18784:2:88","nodeType":"YulLiteral","src":"18784:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"18757:6:88","nodeType":"YulIdentifier","src":"18757:6:88"},"nativeSrc":"18757:30:88","nodeType":"YulFunctionCall","src":"18757:30:88"},"nativeSrc":"18757:30:88","nodeType":"YulExpressionStatement","src":"18757:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18807:9:88","nodeType":"YulIdentifier","src":"18807:9:88"},{"kind":"number","nativeSrc":"18818:2:88","nodeType":"YulLiteral","src":"18818:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18803:3:88","nodeType":"YulIdentifier","src":"18803:3:88"},"nativeSrc":"18803:18:88","nodeType":"YulFunctionCall","src":"18803:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"18823:31:88","nodeType":"YulLiteral","src":"18823:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"18796:6:88","nodeType":"YulIdentifier","src":"18796:6:88"},"nativeSrc":"18796:59:88","nodeType":"YulFunctionCall","src":"18796:59:88"},"nativeSrc":"18796:59:88","nodeType":"YulExpressionStatement","src":"18796:59:88"},{"nativeSrc":"18864:26:88","nodeType":"YulAssignment","src":"18864:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18876:9:88","nodeType":"YulIdentifier","src":"18876:9:88"},{"kind":"number","nativeSrc":"18887:2:88","nodeType":"YulLiteral","src":"18887:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18872:3:88","nodeType":"YulIdentifier","src":"18872:3:88"},"nativeSrc":"18872:18:88","nodeType":"YulFunctionCall","src":"18872:18:88"},"variableNames":[{"name":"tail","nativeSrc":"18864:4:88","nodeType":"YulIdentifier","src":"18864:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18543:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18694:9:88","nodeType":"YulTypedName","src":"18694:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18708:4:88","nodeType":"YulTypedName","src":"18708:4:88","type":""}],"src":"18543:353:88"},{"body":{"nativeSrc":"19022:297:88","nodeType":"YulBlock","src":"19022:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19039:9:88","nodeType":"YulIdentifier","src":"19039:9:88"},{"kind":"number","nativeSrc":"19050:2:88","nodeType":"YulLiteral","src":"19050:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19032:6:88","nodeType":"YulIdentifier","src":"19032:6:88"},"nativeSrc":"19032:21:88","nodeType":"YulFunctionCall","src":"19032:21:88"},"nativeSrc":"19032:21:88","nodeType":"YulExpressionStatement","src":"19032:21:88"},{"nativeSrc":"19062:27:88","nodeType":"YulVariableDeclaration","src":"19062:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"19082:6:88","nodeType":"YulIdentifier","src":"19082:6:88"}],"functionName":{"name":"mload","nativeSrc":"19076:5:88","nodeType":"YulIdentifier","src":"19076:5:88"},"nativeSrc":"19076:13:88","nodeType":"YulFunctionCall","src":"19076:13:88"},"variables":[{"name":"length","nativeSrc":"19066:6:88","nodeType":"YulTypedName","src":"19066:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19109:9:88","nodeType":"YulIdentifier","src":"19109:9:88"},{"kind":"number","nativeSrc":"19120:2:88","nodeType":"YulLiteral","src":"19120:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19105:3:88","nodeType":"YulIdentifier","src":"19105:3:88"},"nativeSrc":"19105:18:88","nodeType":"YulFunctionCall","src":"19105:18:88"},{"name":"length","nativeSrc":"19125:6:88","nodeType":"YulIdentifier","src":"19125:6:88"}],"functionName":{"name":"mstore","nativeSrc":"19098:6:88","nodeType":"YulIdentifier","src":"19098:6:88"},"nativeSrc":"19098:34:88","nodeType":"YulFunctionCall","src":"19098:34:88"},"nativeSrc":"19098:34:88","nodeType":"YulExpressionStatement","src":"19098:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19151:9:88","nodeType":"YulIdentifier","src":"19151:9:88"},{"kind":"number","nativeSrc":"19162:2:88","nodeType":"YulLiteral","src":"19162:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19147:3:88","nodeType":"YulIdentifier","src":"19147:3:88"},"nativeSrc":"19147:18:88","nodeType":"YulFunctionCall","src":"19147:18:88"},{"arguments":[{"name":"value0","nativeSrc":"19171:6:88","nodeType":"YulIdentifier","src":"19171:6:88"},{"kind":"number","nativeSrc":"19179:2:88","nodeType":"YulLiteral","src":"19179:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19167:3:88","nodeType":"YulIdentifier","src":"19167:3:88"},"nativeSrc":"19167:15:88","nodeType":"YulFunctionCall","src":"19167:15:88"},{"name":"length","nativeSrc":"19184:6:88","nodeType":"YulIdentifier","src":"19184:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"19141:5:88","nodeType":"YulIdentifier","src":"19141:5:88"},"nativeSrc":"19141:50:88","nodeType":"YulFunctionCall","src":"19141:50:88"},"nativeSrc":"19141:50:88","nodeType":"YulExpressionStatement","src":"19141:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19215:9:88","nodeType":"YulIdentifier","src":"19215:9:88"},{"name":"length","nativeSrc":"19226:6:88","nodeType":"YulIdentifier","src":"19226:6:88"}],"functionName":{"name":"add","nativeSrc":"19211:3:88","nodeType":"YulIdentifier","src":"19211:3:88"},"nativeSrc":"19211:22:88","nodeType":"YulFunctionCall","src":"19211:22:88"},{"kind":"number","nativeSrc":"19235:2:88","nodeType":"YulLiteral","src":"19235:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19207:3:88","nodeType":"YulIdentifier","src":"19207:3:88"},"nativeSrc":"19207:31:88","nodeType":"YulFunctionCall","src":"19207:31:88"},{"kind":"number","nativeSrc":"19240:1:88","nodeType":"YulLiteral","src":"19240:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19200:6:88","nodeType":"YulIdentifier","src":"19200:6:88"},"nativeSrc":"19200:42:88","nodeType":"YulFunctionCall","src":"19200:42:88"},"nativeSrc":"19200:42:88","nodeType":"YulExpressionStatement","src":"19200:42:88"},{"nativeSrc":"19251:62:88","nodeType":"YulAssignment","src":"19251:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19267:9:88","nodeType":"YulIdentifier","src":"19267:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19286:6:88","nodeType":"YulIdentifier","src":"19286:6:88"},{"kind":"number","nativeSrc":"19294:2:88","nodeType":"YulLiteral","src":"19294:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19282:3:88","nodeType":"YulIdentifier","src":"19282:3:88"},"nativeSrc":"19282:15:88","nodeType":"YulFunctionCall","src":"19282:15:88"},{"arguments":[{"kind":"number","nativeSrc":"19303:2:88","nodeType":"YulLiteral","src":"19303:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19299:3:88","nodeType":"YulIdentifier","src":"19299:3:88"},"nativeSrc":"19299:7:88","nodeType":"YulFunctionCall","src":"19299:7:88"}],"functionName":{"name":"and","nativeSrc":"19278:3:88","nodeType":"YulIdentifier","src":"19278:3:88"},"nativeSrc":"19278:29:88","nodeType":"YulFunctionCall","src":"19278:29:88"}],"functionName":{"name":"add","nativeSrc":"19263:3:88","nodeType":"YulIdentifier","src":"19263:3:88"},"nativeSrc":"19263:45:88","nodeType":"YulFunctionCall","src":"19263:45:88"},{"kind":"number","nativeSrc":"19310:2:88","nodeType":"YulLiteral","src":"19310:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19259:3:88","nodeType":"YulIdentifier","src":"19259:3:88"},"nativeSrc":"19259:54:88","nodeType":"YulFunctionCall","src":"19259:54:88"},"variableNames":[{"name":"tail","nativeSrc":"19251:4:88","nodeType":"YulIdentifier","src":"19251:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18901:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18991:9:88","nodeType":"YulTypedName","src":"18991:9:88","type":""},{"name":"value0","nativeSrc":"19002:6:88","nodeType":"YulTypedName","src":"19002:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19013:4:88","nodeType":"YulTypedName","src":"19013:4:88","type":""}],"src":"18901:418:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let array := allocate_memory(add(and(add(length, 0x1f), not(31)), 32))\n        mstore(array, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 32), add(_1, 32), length)\n        mstore(add(add(array, length), 32), 0)\n        value1 := array\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 96))\n        value3 := value_3\n    }\n    function abi_decode_struct_WhitelistStatus_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 128) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_addresst_struct$_WhitelistStatus_$13967_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_struct_WhitelistStatus_calldata(add(headStart, 32), dataEnd)\n    }\n    function abi_decode_tuple_t_struct$_WhitelistStatus_$13967_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_struct_WhitelistStatus_calldata(headStart, dataEnd)\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_enum_WhitelistOptions(value, pos)\n    {\n        if iszero(lt(value, 3))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(pos, value)\n    }\n    function abi_encode_struct_WhitelistStatus(value, pos)\n    {\n        abi_encode_enum_WhitelistOptions(mload(value), pos)\n        let memberValue0 := mload(add(value, 0x20))\n        abi_encode_enum_WhitelistOptions(memberValue0, add(pos, 0x20))\n        let memberValue0_1 := mload(add(value, 0x40))\n        abi_encode_enum_WhitelistOptions(memberValue0_1, add(pos, 0x40))\n        let memberValue0_2 := mload(add(value, 0x60))\n        abi_encode_enum_WhitelistOptions(memberValue0_2, add(pos, 0x60))\n    }\n    function abi_encode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        abi_encode_struct_WhitelistStatus(value0, headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_encode_tuple_t_stringliteral_25aad5c16fa3ed8e98c47d58aff8703d9bebbc6fbf387f5dc501db51eba3c1e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"You can't change the defaults\")\n        tail := add(headStart, 96)\n    }\n    function validator_revert_enum_WhitelistOptions(value)\n    {\n        if iszero(lt(value, 3)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_WhitelistStatus_$13967_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 128)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 128)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let value := calldataload(headStart)\n        validator_revert_enum_WhitelistOptions(value)\n        mstore(memPtr, value)\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_enum_WhitelistOptions(value_1)\n        mstore(add(memPtr, 32), value_1)\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_enum_WhitelistOptions(value_2)\n        mstore(add(memPtr, 64), value_2)\n        let value_3 := calldataload(add(headStart, 96))\n        validator_revert_enum_WhitelistOptions(value_3)\n        mstore(add(memPtr, 96), value_3)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        abi_encode_struct_WhitelistStatus(value1, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_enum$_WhitelistOptions_$13954(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_enum_WhitelistOptions(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_b448ca61d16cc0abd607458d5a05d416229fd99256fc517d81a1c8428839788e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"You need to define the default s\")\n        mstore(add(headStart, 96), \"tatus for all the operations\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function read_from_calldatat_enum_WhitelistOptions(ptr) -> returnValue\n    {\n        let value := calldataload(ptr)\n        validator_revert_enum_WhitelistOptions(value)\n        returnValue := value\n    }\n    function update_storage_value_offset_t_enum_WhitelistOptions_to_t_enum_WhitelistOptions(slot, value)\n    {\n        if iszero(lt(value, 3))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        let _1 := sload(slot)\n        sstore(slot, or(and(_1, not(16711680)), and(shl(16, value), 16711680)))\n    }\n    function update_storage_value_offset_enum_WhitelistOptions_to_enum_WhitelistOptions(slot, value)\n    {\n        if iszero(lt(value, 3))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        let _1 := sload(slot)\n        sstore(slot, or(and(_1, not(0xff000000)), and(shl(24, value), 0xff000000)))\n    }\n    function update_storage_value_offset_0_t_struct$_WhitelistStatus_$13967_calldata_ptr_to_t_struct$_WhitelistStatus_$13967_storage(slot, value)\n    {\n        let value_1 := calldataload(value)\n        validator_revert_enum_WhitelistOptions(value_1)\n        if iszero(lt(value_1, 3))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        let _1 := sload(slot)\n        let _2 := and(value_1, 255)\n        sstore(slot, or(and(_1, not(255)), _2))\n        let value_2 := calldataload(add(value, 32))\n        validator_revert_enum_WhitelistOptions(value_2)\n        if iszero(lt(value_2, 3))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        sstore(slot, or(or(and(_1, not(65535)), _2), and(shl(8, value_2), 65280)))\n        update_storage_value_offset_t_enum_WhitelistOptions_to_t_enum_WhitelistOptions(slot, read_from_calldatat_enum_WhitelistOptions(add(value, 64)))\n        update_storage_value_offset_enum_WhitelistOptions_to_enum_WhitelistOptions(slot, read_from_calldatat_enum_WhitelistOptions(add(value, 96)))\n    }\n    function abi_encode_tuple_t_address_t_struct$_WhitelistStatus_$13967_calldata_ptr__to_t_address_t_struct$_WhitelistStatus_$13967_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        let value := calldataload(value1)\n        validator_revert_enum_WhitelistOptions(value)\n        abi_encode_enum_WhitelistOptions(value, add(headStart, 32))\n        let value_1 := calldataload(add(value1, 32))\n        validator_revert_enum_WhitelistOptions(value_1)\n        abi_encode_enum_WhitelistOptions(value_1, add(headStart, 64))\n        let value_2 := calldataload(add(value1, 64))\n        validator_revert_enum_WhitelistOptions(value_2)\n        abi_encode_enum_WhitelistOptions(value_2, add(headStart, 96))\n        let value_3 := calldataload(add(value1, 96))\n        validator_revert_enum_WhitelistOptions(value_3)\n        abi_encode_enum_WhitelistOptions(value_3, add(headStart, 128))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":930},{"length":32,"start":1003},{"length":32,"start":1598},{"length":32,"start":1662},{"length":32,"start":1803}],"17733":[{"length":32,"start":480},{"length":32,"start":1330},{"length":32,"start":2255},{"length":32,"start":2518},{"length":32,"start":3252},{"length":32,"start":3502},{"length":32,"start":4034},{"length":32,"start":5370}]},"linkReferences":{},"object":"608060405260043610610105575f3560e01c80635fcdca3711610092578063aa2f92fb11610062578063aa2f92fb146102c7578063aad4148c146102e6578063cf273ca614610319578063e5a6b10f14610338578063ed716bf41461034c575f5ffd5b80635fcdca37146102565780638456cb5914610275578063896ce44c146102895780639051c763146102a8575f5ffd5b80633f4ba83a116100d85780633f4ba83a146101be5780634d15eb03146101d25780634f1ef2861461021857806352d1902d1461022b5780635c975abb1461023f575f5ffd5b806301ffc9a7146101095780631e3b9c5e1461013d5780633659cfe61461017e57806337ee20dd1461019f575b5f5ffd5b348015610114575f5ffd5b506101286101233660046119bf565b61036d565b60405190151581526020015b60405180910390f35b348015610148575f5ffd5b506101707f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b604051908152602001610134565b348015610189575f5ffd5b5061019d6101983660046119fa565b610398565b005b3480156101aa575f5ffd5b506101286101b9366004611a15565b61047e565b3480156101c9575f5ffd5b5061019d6104ee565b3480156101dd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610134565b61019d610226366004611a98565b610634565b348015610236575f5ffd5b506101706106ff565b34801561024a575f5ffd5b5060975460ff16610128565b348015610261575f5ffd5b50610128610270366004611b3f565b6107b0565b348015610280575f5ffd5b5061019d6108ac565b348015610294575f5ffd5b5061019d6102a3366004611ba3565b6109b3565b3480156102b3575f5ffd5b506101286102c2366004611a15565b610b25565b3480156102d2575f5ffd5b5061019d6102e1366004611bd7565b610b84565b3480156102f1575f5ffd5b506101707fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b348015610324575f5ffd5b5061019d610333366004611bd7565b610c91565b348015610343575f5ffd5b50610200610dab565b348015610357575f5ffd5b50610360610e31565b6040516101349190611c68565b5f61037782610f49565b8061039257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103e95760405162461bcd60e51b81526004016103e090611c76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104315f51602061208a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146104575760405162461bcd60e51b81526004016103e090611cc2565b61046081610f7e565b604080515f8082526020820190925261047b918391906110c1565b50565b6001600160a01b0382165f90815260fb602052604081205460ff16818160028111156104ac576104ac611bf1565b036104cd57505f805260fb6020525f51602061206a5f395f51905f525460ff165b60015b8160028111156104e2576104e2611bf1565b149150505b9392505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b09190611d0e565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b158015610612575f5ffd5b505afa158015610624573d5f5f3e3d5ffd5b5050505061063061122b565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361067c5760405162461bcd60e51b81526004016103e090611c76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106c45f51602061208a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146106ea5760405162461bcd60e51b81526004016103e090611cc2565b6106f382610f7e565b610630828260016110c1565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461079e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103e0565b505f51602061208a5f395f51905f5290565b6001600160a01b0383165f90815260fb602052604081205462010000900460ff16818160028111156107e4576107e4611bf1565b0361080b57505f805260fb6020525f51602061206a5f395f51905f525462010000900460ff165b600181600281111561081f5761081f611bf1565b1461082d575f9150506108a4565b506001600160a01b0383165f90815260fb60205260408120546301000000900460ff169081600281111561086357610863611bf1565b0361088b57505f805260fb6020525f51602061206a5f395f51905f52546301000000900460ff165b600181600281111561089f5761089f611bf1565b149150505b949350505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610929573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094d9190611d0e565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161097f9493929190611d29565b5f6040518083038186803b158015610995575f5ffd5b505afa1580156109a7573d5f5f3e3d5ffd5b5050505061047b61127d565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a549190611d0e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610a859493929190611d29565b5f6040518083038186803b158015610a9b575f5ffd5b505afa158015610aad573d5f5f3e3d5ffd5b5050506001600160a01b0384169050610b085760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c747300000060448201526064016103e0565b610b2083610b1b36859003850185611d5f565b6112ba565b505050565b6001600160a01b0382165f90815260fb6020526040812054610100900460ff1681816002811115610b5857610b58611bf1565b036104cd57505f805260fb6020525f51602061206a5f395f51905f5254610100900460ff1660016104d0565b5f54610100900460ff1615808015610ba257505f54600160ff909116105b80610bbb5750303b158015610bbb57505f5460ff166001145b610c1e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103e0565b5f805460ff191660011790558015610c3f575f805461ff0019166101001790555b610c48826113aa565b8015610630575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d329190611d0e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610d639493929190611d29565b5f6040518083038186803b158015610d79575f5ffd5b505afa158015610d8b573d5f5f3e3d5ffd5b50505050610d98826113e1565b6106305f610b1b36859003850185611d5f565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e08573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2c9190611d0e565b905090565b610e586040805160808101909152805f81526020015f81526020015f81526020015f905290565b5f805260fb60205260408051608081019091525f51602061206a5f395f51905f528054829060ff166002811115610e9157610e91611bf1565b6002811115610ea257610ea2611bf1565b81528154602090910190610100900460ff166002811115610ec557610ec5611bf1565b6002811115610ed657610ed6611bf1565b8152815460209091019062010000900460ff166002811115610efa57610efa611bf1565b6002811115610f0b57610f0b611bf1565b815281546020909101906301000000900460ff166002811115610f3057610f30611bf1565b6002811115610f4157610f41611bf1565b905250919050565b5f6001600160e01b031982166301ffc9a760e01b148061039257506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110409190611d0e565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b1580156110a2575f5ffd5b505afa1580156110b4573d5f5f3e3d5ffd5b50505050610b20836114f8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110f457610b20836115a9565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561114e575060408051601f3d908101601f1916820190925261114b91810190611de4565b60015b6111b15760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103e0565b5f51602061208a5f395f51905f52811461121f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103e0565b50610b20838383611644565b61123361166e565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6112856116b9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112603390565b6001600160a01b0382165f90815260fb602052604090208151815483929190829060ff191660018360028111156112f3576112f3611bf1565b021790555060208201518154829061ff00191661010083600281111561131b5761131b611bf1565b021790555060408201518154829062ff000019166201000083600281111561134557611345611bf1565b021790555060608201518154829063ff0000001916630100000083600281111561137157611371611bf1565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610c85929190611dfb565b5f54610100900460ff166113d05760405162461bcd60e51b81526004016103e090611e18565b6113d86116ff565b61047b81611735565b5f6113ef6020830183611e63565b600281111561140057611400611bf1565b1415801561142e57505f61141a6040830160208401611e63565b600281111561142b5761142b611bf1565b14155b801561145a57505f6114466060830160408401611e63565b600281111561145757611457611bf1565b14155b801561148657505f6114726080830160608401611e63565b600281111561148357611483611bf1565b14155b61047b5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e730000000060648201526084016103e0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115829190611d0e565b6001600160a01b03161461047b5760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6116165760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103e0565b5f51602061208a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61164d836117c4565b5f825111806116595750805b15610b20576116688383611803565b50505050565b60975460ff166116b75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103e0565b565b60975460ff16156116b75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103e0565b5f54610100900460ff166117255760405162461bcd60e51b81526004016103e090611e18565b61172d611828565b6116b761184e565b5f54610100900460ff1661175b5760405162461bcd60e51b81526004016103e090611e18565b611764816113e1565b5f805260fb602052805f51602061206a5f395f51905f526117858282611ef8565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a5f826040516117b9929190611f9a565b60405180910390a150565b6117cd816115a9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104e783836040518060600160405280602781526020016120aa6027913961187c565b5f54610100900460ff166116b75760405162461bcd60e51b81526004016103e090611e18565b5f54610100900460ff166118745760405162461bcd60e51b81526004016103e090611e18565b6116b76118f0565b60605f5f856001600160a01b031685604051611898919061201e565b5f60405180830381855af49150503d805f81146118d0576040519150601f19603f3d011682016040523d82523d5f602084013e6118d5565b606091505b50915091506118e686838387611922565b9695505050505050565b5f54610100900460ff166119165760405162461bcd60e51b81526004016103e090611e18565b6097805460ff19169055565b606083156119905782515f03611989576001600160a01b0385163b6119895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103e0565b50816108a4565b6108a483838151156119a55781518083602001fd5b8060405162461bcd60e51b81526004016103e09190612034565b5f602082840312156119cf575f5ffd5b81356001600160e01b0319811681146104e7575f5ffd5b6001600160a01b038116811461047b575f5ffd5b5f60208284031215611a0a575f5ffd5b81356104e7816119e6565b5f5f5f60608486031215611a27575f5ffd5b8335611a32816119e6565b92506020840135611a42816119e6565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a9057611a90611a53565b604052919050565b5f5f60408385031215611aa9575f5ffd5b8235611ab4816119e6565b9150602083013567ffffffffffffffff811115611acf575f5ffd5b8301601f81018513611adf575f5ffd5b803567ffffffffffffffff811115611af957611af9611a53565b611b0c601f8201601f1916602001611a67565b818152866020838501011115611b20575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f60808587031215611b52575f5ffd5b8435611b5d816119e6565b93506020850135611b6d816119e6565b92506040850135611b7d816119e6565b9396929550929360600135925050565b5f60808284031215611b9d575f5ffd5b50919050565b5f5f60a08385031215611bb4575f5ffd5b8235611bbf816119e6565b9150611bce8460208501611b8d565b90509250929050565b5f60808284031215611be7575f5ffd5b6104e78383611b8d565b634e487b7160e01b5f52602160045260245ffd5b60038110611c2157634e487b7160e01b5f52602160045260245ffd5b9052565b611c30828251611c05565b6020810151611c426020840182611c05565b506040810151611c556040840182611c05565b506060810151610b206060840182611c05565b608081016103928284611c25565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215611d1e575f5ffd5b81516104e7816119e6565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6003811061047b575f5ffd5b5f6080828403128015611d70575f5ffd5b506040516080810167ffffffffffffffff81118282101715611d9457611d94611a53565b6040528235611da281611d53565b81526020830135611db281611d53565b60208201526040830135611dc581611d53565b60408201526060830135611dd881611d53565b60608201529392505050565b5f60208284031215611df4575f5ffd5b5051919050565b6001600160a01b038316815260a081016104e76020830184611c25565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215611e73575f5ffd5b81356104e781611d53565b5f813561039281611d53565b60038210611ea657634e487b7160e01b5f52602160045260245ffd5b805462ff00008360101b1662ff0000198216178255505050565b60038210611edc57634e487b7160e01b5f52602160045260245ffd5b805463ff0000008360181b1663ff000000198216178255505050565b8135611f0381611d53565b60038110611f1f57634e487b7160e01b5f52602160045260245ffd5b815460ff821691508160ff1982161783556020840135611f3e81611d53565b60038110611f5a57634e487b7160e01b5f52602160045260245ffd5b61ff008160081b168361ffff19841617178455505050611f85611f7f60408401611e7e565b82611e8a565b610630611f9460608401611e7e565b82611ec0565b6001600160a01b038316815260a081018235611fb581611d53565b611fc26020840182611c05565b506020830135611fd181611d53565b611fde6040840182611c05565b506040830135611fed81611d53565b611ffa6060840182611c05565b50606083013561200981611d53565b6120166080840182611c05565b509392505050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e63668eb63eb47da51f131e4409329dd35e0c6786e56ebf3a1c0865a8e6cd41964736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x105 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FCDCA37 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xAA2F92FB GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xAA2F92FB EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xAAD4148C EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xCF273CA6 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xED716BF4 EQ PUSH2 0x34C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x5FCDCA37 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x275 JUMPI DUP1 PUSH4 0x896CE44C EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x9051C763 EQ PUSH2 0x2A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x1E3B9C5E EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x37EE20DD EQ PUSH2 0x19F JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x114 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x123 CALLDATASIZE PUSH1 0x4 PUSH2 0x19BF JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH32 0x88AAB6B3A9FDA9055D4A72094D587B65C9AADCC55FB1631E646A2F2C284CED5B DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x19FA JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x4EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x134 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A98 JUMP JUMPDEST PUSH2 0x634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH2 0x6FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x128 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B3F JUMP JUMPDEST PUSH2 0x7B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x280 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x8AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BA3 JUMP JUMPDEST PUSH2 0x9B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x128 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0xB25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD7 JUMP JUMPDEST PUSH2 0xB84 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x170 PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x19D PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BD7 JUMP JUMPDEST PUSH2 0xC91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x200 PUSH2 0xDAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x357 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x360 PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x1C68 JUMP JUMPDEST PUSH0 PUSH2 0x377 DUP3 PUSH2 0xF49 JUMP JUMPDEST DUP1 PUSH2 0x392 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xF8722D89 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x3E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1C76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x431 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x460 DUP2 PUSH2 0xF7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x47B SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x10C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x4AC JUMPI PUSH2 0x4AC PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x4CD JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x1 JUMPDEST DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x4E2 JUMPI PUSH2 0x4E2 PUSH2 0x1BF1 JUMP JUMPDEST EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x58C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5B0 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x612 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x624 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x630 PUSH2 0x122B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x67C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1C76 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6C4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x6F3 DUP3 PUSH2 0xF7E JUMP JUMPDEST PUSH2 0x630 DUP3 DUP3 PUSH1 0x1 PUSH2 0x10C1 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7E4 JUMPI PUSH2 0x7E4 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x80B JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x81F JUMPI PUSH2 0x81F PUSH2 0x1BF1 JUMP JUMPDEST EQ PUSH2 0x82D JUMPI PUSH0 SWAP2 POP POP PUSH2 0x8A4 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x88B JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x89F JUMPI PUSH2 0x89F PUSH2 0x1BF1 JUMP JUMPDEST EQ SWAP2 POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x929 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97F SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x995 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x47B PUSH2 0x127D JUMP JUMPDEST PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA30 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA54 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA85 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAAD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 POP PUSH2 0xB08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E2774206368616E6765207468652064656661756C7473000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0xB20 DUP4 PUSH2 0xB1B CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x1D5F JUMP JUMPDEST PUSH2 0x12BA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH2 0x1BF1 JUMP JUMPDEST SUB PUSH2 0x4CD JUMPI POP PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x4D0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xBA2 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xBBB JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBBB JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xC1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xC3F JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xC48 DUP3 PUSH2 0x13AA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x630 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x88AAB6B3A9FDA9055D4A72094D587B65C9AADCC55FB1631E646A2F2C284CED5B PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD32 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD63 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1D29 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD79 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD8B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xD98 DUP3 PUSH2 0x13E1 JUMP JUMPDEST PUSH2 0x630 PUSH0 PUSH2 0xB1B CALLDATASIZE DUP6 SWAP1 SUB DUP6 ADD DUP6 PUSH2 0x1D5F JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE08 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2C SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE58 PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE91 JUMPI PUSH2 0xE91 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEA2 JUMPI PUSH2 0xEA2 PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEC5 JUMPI PUSH2 0xEC5 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xED6 JUMPI PUSH2 0xED6 PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEFA JUMPI PUSH2 0xEFA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF0B JUMPI PUSH2 0xF0B PUSH2 0x1BF1 JUMP JUMPDEST DUP2 MSTORE DUP2 SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF41 JUMPI PUSH2 0xF41 PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x392 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1040 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10B4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB20 DUP4 PUSH2 0x14F8 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x10F4 JUMPI PUSH2 0xB20 DUP4 PUSH2 0x15A9 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x114E JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x114B SWAP2 DUP2 ADD SWAP1 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST POP PUSH2 0xB20 DUP4 DUP4 DUP4 PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x1233 PUSH2 0x166E JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x1285 PUSH2 0x16B9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1260 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SLOAD DUP4 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12F3 JUMPI PUSH2 0x12F3 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x131B JUMPI PUSH2 0x131B PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH3 0xFF0000 NOT AND PUSH3 0x10000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1345 JUMPI PUSH2 0x1345 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 SLOAD DUP3 SWAP1 PUSH4 0xFF000000 NOT AND PUSH4 0x1000000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1371 JUMPI PUSH2 0x1371 PUSH2 0x1BF1 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH32 0x95D7A6740C7954755644347F27CBF1BEBF7D02A83371922A49D04DDCE4757C2A DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC85 SWAP3 SWAP2 SWAP1 PUSH2 0x1DFB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x13D8 PUSH2 0x16FF JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0x1735 JUMP JUMPDEST PUSH0 PUSH2 0x13EF PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1400 JUMPI PUSH2 0x1400 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI POP PUSH0 PUSH2 0x141A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x145A JUMPI POP PUSH0 PUSH2 0x1446 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1457 JUMPI PUSH2 0x1457 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1486 JUMPI POP PUSH0 PUSH2 0x1472 PUSH1 0x80 DUP4 ADD PUSH1 0x60 DUP5 ADD PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1483 JUMPI PUSH2 0x1483 PUSH2 0x1BF1 JUMP JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F75206E65656420746F20646566696E65207468652064656661756C742073 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x746174757320666F7220616C6C20746865206F7065726174696F6E7300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x155E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1582 SWAP2 SWAP1 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1616 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x208A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x164D DUP4 PUSH2 0x17C4 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x1659 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB20 JUMPI PUSH2 0x1668 DUP4 DUP4 PUSH2 0x1803 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1725 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x172D PUSH2 0x1828 JUMP JUMPDEST PUSH2 0x16B7 PUSH2 0x184E JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x13E1 JUMP JUMPDEST PUSH0 DUP1 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE DUP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x206A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x1785 DUP3 DUP3 PUSH2 0x1EF8 JUMP JUMPDEST SWAP1 POP POP PUSH32 0x95D7A6740C7954755644347F27CBF1BEBF7D02A83371922A49D04DDCE4757C2A PUSH0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17B9 SWAP3 SWAP2 SWAP1 PUSH2 0x1F9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17CD DUP2 PUSH2 0x15A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x20AA PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x187C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0x16B7 PUSH2 0x18F0 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x1898 SWAP2 SWAP1 PUSH2 0x201E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x18D0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18D5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x18E6 DUP7 DUP4 DUP4 DUP8 PUSH2 0x1922 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP1 PUSH2 0x1E18 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1990 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x1989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1989 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3E0 JUMP JUMPDEST POP DUP2 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x8A4 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3E0 SWAP2 SWAP1 PUSH2 0x2034 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x4E7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x47B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A0A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E7 DUP2 PUSH2 0x19E6 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A27 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x1A32 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1A42 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1AB4 DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1ADF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AF9 JUMPI PUSH2 0x1AF9 PUSH2 0x1A53 JUMP JUMPDEST PUSH2 0x1B0C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1A67 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1B20 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1B52 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x1B5D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x1B6D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x1B7D DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B9D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0xA0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BB4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1BBF DUP2 PUSH2 0x19E6 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BCE DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x1B8D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BE7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4E7 DUP4 DUP4 PUSH2 0x1B8D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1C21 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C30 DUP3 DUP3 MLOAD PUSH2 0x1C05 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x1C42 PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x40 DUP2 ADD MLOAD PUSH2 0x1C55 PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x60 DUP2 ADD MLOAD PUSH2 0xB20 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x392 DUP3 DUP5 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D1E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4E7 DUP2 PUSH2 0x19E6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x47B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x1D70 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1D94 JUMPI PUSH2 0x1D94 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD PUSH2 0x1DA2 DUP2 PUSH2 0x1D53 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1DB2 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH2 0x1DC5 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH2 0x1DD8 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DF4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x4E7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E73 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E7 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD PUSH2 0x392 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP3 LT PUSH2 0x1EA6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD PUSH3 0xFF0000 DUP4 PUSH1 0x10 SHL AND PUSH3 0xFF0000 NOT DUP3 AND OR DUP3 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP3 LT PUSH2 0x1EDC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD PUSH4 0xFF000000 DUP4 PUSH1 0x18 SHL AND PUSH4 0xFF000000 NOT DUP3 AND OR DUP3 SSTORE POP POP POP JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F03 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1F1F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF DUP3 AND SWAP2 POP DUP2 PUSH1 0xFF NOT DUP3 AND OR DUP4 SSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x1F3E DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1F5A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFF00 DUP2 PUSH1 0x8 SHL AND DUP4 PUSH2 0xFFFF NOT DUP5 AND OR OR DUP5 SSTORE POP POP POP PUSH2 0x1F85 PUSH2 0x1F7F PUSH1 0x40 DUP5 ADD PUSH2 0x1E7E JUMP JUMPDEST DUP3 PUSH2 0x1E8A JUMP JUMPDEST PUSH2 0x630 PUSH2 0x1F94 PUSH1 0x60 DUP5 ADD PUSH2 0x1E7E JUMP JUMPDEST DUP3 PUSH2 0x1EC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 CALLDATALOAD PUSH2 0x1FB5 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FC2 PUSH1 0x20 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1FD1 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FDE PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH2 0x1FED DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x1FFA PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH2 0x2009 DUP2 PUSH2 0x1D53 JUMP JUMPDEST PUSH2 0x2016 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x1C05 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID 0xC8 DUP4 SWAP1 0xE7 0xE6 0x21 PUSH22 0xBE0932452175B6A7222B6B094AB0EF984A5153C62034 TSTORE DUP10 PUSH22 0x360894A13BA1A3210667C828492DB98DCA3E2076CC37 CALLDATALOAD 0xA9 KECCAK256 LOG3 0xCA POP TSTORE CODESIZE 0x2B 0xBC COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220E63668 0xEB PUSH4 0xEB47DA51 CALL BALANCE 0xE4 BLOCKHASH SWAP4 0x29 0xDD CALLDATALOAD 0xE0 0xC6 PUSH25 0x6E56EBF3A1C0865A8E6CD41964736F6C634300081C00330000 ","sourceMap":"517:4552:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3421:194;;;;;;;;;;-1:-1:-1;3421:194:53;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;3421:194:53;;;;;;;;663:86;;;;;;;;;;;;713:36;663:86;;;;;643:25:88;;;631:2;616:18;663:86:53;497:177:88;3408:195:7;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;3619:297:53;;;;;;;;;;-1:-1:-1;3619:297:53;;;;;:::i;:::-;;:::i;3916:102:57:-;;;;;;;;;;;;;:::i;4022:94::-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;1782:32:88;;;1764:51;;1752:2;1737:18;4022:94:57;1597:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;4226:562:53;;;;;;;;;;-1:-1:-1;4226:562:53;;;;;:::i;:::-;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;2153:257:53:-;;;;;;;;;;-1:-1:-1;2153:257:53;;;;;:::i;:::-;;:::i;3920:302::-;;;;;;;;;;-1:-1:-1;3920:302:53;;;;;:::i;:::-;;:::i;1448:137::-;;;;;;;;;;-1:-1:-1;1448:137:53;;;;;:::i;:::-;;:::i;585:74::-;;;;;;;;;;;;629:30;585:74;;2837:213;;;;;;;;;;-1:-1:-1;2837:213:53;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;3054:118:53:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3421:194::-;3506:4;3525:36;3549:11;3525:23;:36::i;:::-;:85;;;-1:-1:-1;;;;;;;3565:45:53;;-1:-1:-1;;;3565:45:53;3525:85;3518:92;3421:194;-1:-1:-1;;3421:194:53:o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3619:297:53:-;-1:-1:-1;;;;;3745:19:53;;3711:4;3745:19;;;:9;:19;;;;;:27;;;3711:4;3782:2;:32;;;;;;;;:::i;:::-;;3778:87;;-1:-1:-1;3829:21:53;;;:9;:21;;-1:-1:-1;;;;;;;;;;;3829:29:53;;;3778:87;3883:28;3877:34;:2;:34;;;;;;;;:::i;:::-;;3870:41;;;3619:297;;;;;;:::o;3916:102:57:-;1664:26;1734:24;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;;;-1:-1:-1;;;2697:89:57;;2746:4;2697:89;;;7398:51:88;7465:18;;;7458:34;;;7508:18;;;7501:34;;;965:10:14;7551:18:88;;;7544:60;2781:4:57;7620:19:88;;;7613:51;2697:89:57;;-1:-1:-1;;;;;2697:40:57;;;;;;;7370:19:88;;;;;-1:-1:-1;;2697:89:57;;;;;;;;:40;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;7877:2:88;2174:92:7;;;7859:21:88;7916:2;7896:18;;;7889:30;7955:34;7935:18;;;7928:62;8026:26;8006:18;;;7999:54;8070:19;;2174:92:7;7675:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;4226:562:53:-;-1:-1:-1;;;;;4397:23:53;;4363:4;4397:23;;;:9;:23;;;;;:36;;;;;;4363:4;4443:2;:32;;;;;;;;:::i;:::-;;4439:92;;-1:-1:-1;4490:21:53;;;:9;:21;;-1:-1:-1;;;;;;;;;;;4490:34:53;;;;;;4439:92;4546:28;4540:2;:34;;;;;;;;:::i;:::-;;4536:52;;4583:5;4576:12;;;;;4536:52;-1:-1:-1;;;;;;4599:21:53;;;;;;:9;:21;;;;;:37;;;;;;;4646:2;:32;;;;;;;;:::i;:::-;;4642:95;;-1:-1:-1;4693:21:53;;;:9;:21;;-1:-1:-1;;;;;;;;;;;4693:37:53;;;;;;4642:95;4755:28;4749:2;:34;;;;;;;;:::i;:::-;;4742:41;;;4226:562;;;;;;;:::o;3828:84:57:-;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;2153:257:53:-:0;629:30;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2305:22:53;::::1;::::0;-1:-1:-1;2297:64:53::1;;;::::0;-1:-1:-1;;;2297:64:53;;8760:2:88;2297:64:53::1;::::0;::::1;8742:21:88::0;8799:2;8779:18;;;8772:30;8838:31;8818:18;;;8811:59;8887:18;;2297:64:53::1;8558:353:88::0;2297:64:53::1;2367:38;2385:8:::0;2367:38:::1;;::::0;;::::1;::::0;::::1;2395:9:::0;2367:38:::1;:::i;:::-;:17;:38::i;:::-;2153:257:::0;;;:::o;3920:302::-;-1:-1:-1;;;;;4049:19:53;;4015:4;4049:19;;;:9;:19;;;;;:28;;;;;;4015:4;4087:2;:32;;;;;;;;:::i;:::-;;4083:88;;-1:-1:-1;4134:21:53;;;:9;:21;;-1:-1:-1;;;;;;;;;;;4134:30:53;;;;;;4189:28;4183:34;;1448:137;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;10289:2:88;3325:201:6;;;10271:21:88;10328:2;10308:18;;;10301:30;10367:34;10347:18;;;10340:62;-1:-1:-1;;;10418:18:88;;;10411:44;10472:19;;3325:201:6;10087:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;1541:39:53::1;1566:13;1541:24;:39::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;10654:36:88;;3721:14:6;;10642:2:88;10627:18;3721:14:6;;;;;;;;3269:483;1448:137:53;:::o;2837:213::-;713:36;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2969:30:53::1;2989:9;2969:19;:30::i;:::-;3005:40;3031:1;3005:40;;::::0;;::::1;::::0;::::1;3035:9:::0;3005:40:::1;:::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4183:29;;4120:97;:::o;3054:118:53:-;3109:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:22:53;3146:21;;;:9;:21;;;3139:28;;;;;;;;-1:-1:-1;;;;;;;;;;;3139:28:53;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;3139:28:53;3054:118;-1:-1:-1;3054:118:53:o;3618:206:57:-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;3206:169::-;1664:26;1734:24;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;;;-1:-1:-1;;;2697:89:57;;2746:4;2697:89;;;7398:51:88;7465:18;;;7458:34;;;7508:18;;;7501:34;;;965:10:14;7551:18:88;;;7544:60;2781:4:57;7620:19:88;;;7613:51;2697:89:57;;-1:-1:-1;;;;;2697:40:57;;;;;;;7370:19:88;;;;;-1:-1:-1;;2697:89:57;;;;;;;;:40;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;2841:944:4:-:0;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;11371:2:88;3631:56:4;;;11353:21:88;11410:2;11390:18;;;11383:30;11449:34;11429:18;;;11422:62;-1:-1:-1;;;11500:18:88;;;11493:44;11554:19;;3631:56:4;11169:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;11786:2:88;3509:82:4;;;11768:21:88;11825:2;11805:18;;;11798:30;11864:34;11844:18;;;11837:62;-1:-1:-1;;;11915:18:88;;;11908:39;11964:19;;3509:82:4;11584:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;1782:32:88;;;1764:51;;1752:2;1737:18;2785:22:8::1;;;;;;;2697:117::o:0;2450:115::-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;3176:186:53;-1:-1:-1;;;;;3270:19:53;;;;;;:9;:19;;;;;:31;;;;3292:9;;3270:19;:31;:19;;-1:-1:-1;;3270:31:53;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;3270:31:53;;;;;;;;-1:-1:-1;;3270:31:53;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;3270:31:53;;;;;;;;-1:-1:-1;;3270:31:53;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;3270:31:53;;;;;;;;-1:-1:-1;;3270:31:53;;;;;;;;;;;:::i;:::-;;;;;;;;;3312:45;3337:8;3347:9;3312:45;;;;;;;:::i;1640:194::-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1746:28:53::1;:26;:28::i;:::-;1780:49;1815:13;1780:34;:49::i;2414:419::-:0;2535:26;2514:17;;;;:9;:17;:::i;:::-;:47;;;;;;;;:::i;:::-;;;:107;;;;-1:-1:-1;2595:26:53;2573:18;;;;;;;;:::i;:::-;:48;;;;;;;;:::i;:::-;;;2514:107;:171;;;;-1:-1:-1;2659:26:53;2633:22;;;;;;;;:::i;:::-;:52;;;;;;;;:::i;:::-;;;2514:171;:238;;;;-1:-1:-1;2726:26:53;2697:25;;;;;;;;:::i;:::-;:55;;;;;;;;:::i;:::-;;;2514:238;2499:329;;;;-1:-1:-1;;;2499:329:53;;13479:2:88;2499:329:53;;;13461:21:88;13518:2;13498:18;;;13491:30;13557:34;13537:18;;;13530:62;13628:30;13608:18;;;13601:58;13676:19;;2499:329:53;13277:424:88;3379:180:57;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;14185:2:88;1793:106:4;;;14167:21:88;14224:2;14204:18;;;14197:30;14263:34;14243:18;;;14236:62;-1:-1:-1;;;14314:18:88;;;14307:43;14367:19;;1793:106:4;13983:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;:::-;;2393:276;;;:::o;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;14599:2:88;2267:41:8;;;14581:21:88;14638:2;14618:18;;;14611:30;-1:-1:-1;;;14657:18:88;;;14650:50;14717:18;;2267:41:8;14397:344:88;2267:41:8;2209:106::o;2031:::-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;14948:2:88;2092:38:8;;;14930:21:88;14987:2;14967:18;;;14960:30;-1:-1:-1;;;15006:18:88;;;14999:46;15062:18;;2092:38:8;14746:340:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;1889:260:53:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;2005:34:53::1;2025:13;2005:19;:34::i;:::-;2045:21;::::0;;:9:::1;:21;::::0;2069:13;-1:-1:-1;;;;;;;;;;;2045:37:53::1;2069:13:::0;2045:21;:37:::1;:::i;:::-;;;;2093:51;2126:1;2130:13;2093:51;;;;;;;:::i;:::-;;;;;;;;1889:260:::0;:::o;2107:152:4:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;7069:325:13:-:0;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;18745:2:88;8124:60:13;;;18727:21:88;18784:2;18764:18;;;18757:30;18823:31;18803:18;;;18796:59;18872:18;;8124:60:13;18543:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;679:131;-1:-1:-1;;;;;754:31:88;;744:42;;734:70;;800:1;797;790:12;815:247;874:6;927:2;915:9;906:7;902:23;898:32;895:52;;;943:1;940;933:12;895:52;982:9;969:23;1001:31;1026:5;1001:31;:::i;1067:525::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:88;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1067:525;;1476:7;;-1:-1:-1;;;1556:2:88;1541:18;;;;1528:32;;1067:525::o;1826:127::-;1887:10;1882:3;1878:20;1875:1;1868:31;1918:4;1915:1;1908:15;1942:4;1939:1;1932:15;1958:275;2029:2;2023:9;2094:2;2075:13;;-1:-1:-1;;2071:27:88;2059:40;;2129:18;2114:34;;2150:22;;;2111:62;2108:88;;;2176:18;;:::i;:::-;2212:2;2205:22;1958:275;;-1:-1:-1;1958:275:88:o;2238:900::-;2315:6;2323;2376:2;2364:9;2355:7;2351:23;2347:32;2344:52;;;2392:1;2389;2382:12;2344:52;2431:9;2418:23;2450:31;2475:5;2450:31;:::i;:::-;2500:5;-1:-1:-1;2556:2:88;2541:18;;2528:32;2583:18;2572:30;;2569:50;;;2615:1;2612;2605:12;2569:50;2638:22;;2691:4;2683:13;;2679:27;-1:-1:-1;2669:55:88;;2720:1;2717;2710:12;2669:55;2760:2;2747:16;2786:18;2778:6;2775:30;2772:56;;;2808:18;;:::i;:::-;2850:57;2897:2;2874:17;;-1:-1:-1;;2870:31:88;2903:2;2866:40;2850:57;:::i;:::-;2930:6;2923:5;2916:21;2978:7;2973:2;2964:6;2960:2;2956:15;2952:24;2949:37;2946:57;;;2999:1;2996;2989:12;2946:57;3054:6;3049:2;3045;3041:11;3036:2;3029:5;3025:14;3012:49;3106:1;3101:2;3092:6;3085:5;3081:18;3077:27;3070:38;3127:5;3117:15;;;;;2238:900;;;;;:::o;3143:667::-;3246:6;3254;3262;3270;3323:3;3311:9;3302:7;3298:23;3294:33;3291:53;;;3340:1;3337;3330:12;3291:53;3379:9;3366:23;3398:31;3423:5;3398:31;:::i;:::-;3448:5;-1:-1:-1;3505:2:88;3490:18;;3477:32;3518:33;3477:32;3518:33;:::i;:::-;3570:7;-1:-1:-1;3629:2:88;3614:18;;3601:32;3642:33;3601:32;3642:33;:::i;:::-;3143:667;;;;-1:-1:-1;3694:7:88;;3774:2;3759:18;3746:32;;-1:-1:-1;;3143:667:88:o;3815:164::-;3883:5;3928:3;3919:6;3914:3;3910:16;3906:26;3903:46;;;3945:1;3942;3935:12;3903:46;-1:-1:-1;3967:6:88;3815:164;-1:-1:-1;3815:164:88:o;3984:391::-;4088:6;4096;4149:3;4137:9;4128:7;4124:23;4120:33;4117:53;;;4166:1;4163;4156:12;4117:53;4205:9;4192:23;4224:31;4249:5;4224:31;:::i;:::-;4274:5;-1:-1:-1;4298:71:88;4361:7;4356:2;4341:18;;4298:71;:::i;:::-;4288:81;;3984:391;;;;;:::o;4380:256::-;4475:6;4528:3;4516:9;4507:7;4503:23;4499:33;4496:53;;;4545:1;4542;4535:12;4496:53;4568:62;4622:7;4611:9;4568:62;:::i;4872:127::-;4933:10;4928:3;4924:20;4921:1;4914:31;4964:4;4961:1;4954:15;4988:4;4985:1;4978:15;5004:244;5092:1;5085:5;5082:12;5072:143;;5137:10;5132:3;5128:20;5125:1;5118:31;5172:4;5169:1;5162:15;5200:4;5197:1;5190:15;5072:143;5224:18;;5004:244::o;5253:503::-;5322:51;5369:3;5361:5;5355:12;5322:51;:::i;:::-;5419:4;5412:5;5408:16;5402:23;5434:62;5490:4;5485:3;5481:14;5467:12;5434:62;:::i;:::-;;5544:4;5537:5;5533:16;5527:23;5559:64;5617:4;5612:3;5608:14;5592;5559:64;:::i;:::-;;5671:4;5664:5;5660:16;5654:23;5686:64;5744:4;5739:3;5735:14;5719;5686:64;:::i;5761:273::-;5963:3;5948:19;;5976:52;5952:9;6010:6;5976:52;:::i;6039:408::-;6241:2;6223:21;;;6280:2;6260:18;;;6253:30;6319:34;6314:2;6299:18;;6292:62;-1:-1:-1;;;6385:2:88;6370:18;;6363:42;6437:3;6422:19;;6039:408::o;6452:::-;6654:2;6636:21;;;6693:2;6673:18;;;6666:30;6732:34;6727:2;6712:18;;6705:62;-1:-1:-1;;;6798:2:88;6783:18;;6776:42;6850:3;6835:19;;6452:408::o;6865:275::-;6959:6;7012:2;7000:9;6991:7;6987:23;6983:32;6980:52;;;7028:1;7025;7018:12;6980:52;7060:9;7054:16;7079:31;7104:5;7079:31;:::i;8100:453::-;-1:-1:-1;;;;;8343:32:88;;;8325:51;;8407:2;8392:18;;8385:34;;;;8455:32;;8450:2;8435:18;;8428:60;8531:14;;8524:22;8519:2;8504:18;;8497:50;8312:3;8297:19;;8100:453::o;8916:115::-;9005:1;8998:5;8995:12;8985:40;;9021:1;9018;9011:12;9036:1046;9129:6;9189:3;9177:9;9168:7;9164:23;9160:33;9205:2;9202:22;;;9220:1;9217;9210:12;9202:22;-1:-1:-1;9289:2:88;9283:9;9331:3;9319:16;;9365:18;9350:34;;9386:22;;;9347:62;9344:88;;;9412:18;;:::i;:::-;9448:2;9441:22;9485:23;;9517:45;9485:23;9517:45;:::i;:::-;9571:21;;9644:2;9629:18;;9616:32;9657:47;9616:32;9657:47;:::i;:::-;9732:2;9720:15;;9713:32;9797:2;9782:18;;9769:32;9810:47;9769:32;9810:47;:::i;:::-;9885:2;9873:15;;9866:32;9950:2;9935:18;;9922:32;9963:47;9922:32;9963:47;:::i;:::-;10038:2;10026:15;;10019:32;10030:6;9036:1046;-1:-1:-1;;;9036:1046:88:o;10980:184::-;11050:6;11103:2;11091:9;11082:7;11078:23;11074:32;11071:52;;;11119:1;11116;11109:12;11071:52;-1:-1:-1;11142:16:88;;10980:184;-1:-1:-1;10980:184:88:o;12202:370::-;-1:-1:-1;;;;;12463:32:88;;12445:51;;12432:3;12417:19;;12505:61;12562:2;12547:18;;12539:6;12505:61;:::i;12577:407::-;12779:2;12761:21;;;12818:2;12798:18;;;12791:30;12857:34;12852:2;12837:18;;12830:62;-1:-1:-1;;;12923:2:88;12908:18;;12901:41;12974:3;12959:19;;12577:407::o;12989:283::-;13070:6;13123:2;13111:9;13102:7;13098:23;13094:32;13091:52;;;13139:1;13136;13129:12;13091:52;13178:9;13165:23;13197:45;13236:5;13197:45;:::i;15091:204::-;15150:11;15202:3;15189:17;15215:45;15254:5;15215:45;:::i;15300:374::-;15435:1;15428:5;15425:12;15415:143;;15480:10;15475:3;15471:20;15468:1;15461:31;15515:4;15512:1;15505:15;15543:4;15540:1;15533:15;15415:143;15583:4;15577:11;15657:8;15649:5;15645:2;15641:14;15637:29;15625:8;15621:13;15617:2;15613:22;15610:57;15604:4;15597:71;;15300:374;;:::o;15679:::-;15810:1;15803:5;15800:12;15790:143;;15855:10;15850:3;15846:20;15843:1;15836:31;15890:4;15887:1;15880:15;15918:4;15915:1;15908:15;15790:143;15958:4;15952:11;16034:10;16026:5;16022:2;16018:14;16014:31;16000:10;15996:15;15992:2;15988:24;15985:61;15979:4;15972:75;;15679:374;;:::o;16058:1165::-;16242:5;16229:19;16257:47;16296:7;16257:47;:::i;:::-;16335:1;16326:7;16323:14;16313:145;;16380:10;16375:3;16371:20;16368:1;16361:31;16415:4;16412:1;16405:15;16443:4;16440:1;16433:15;16313:145;16483:4;16477:11;16520:3;16511:7;16507:17;16497:27;;16568:2;16561:3;16557:8;16553:2;16549:17;16546:25;16540:4;16533:39;16620:2;16613:5;16609:14;16596:28;16633:47;16672:7;16633:47;:::i;:::-;16711:1;16702:7;16699:14;16689:145;;16756:10;16751:3;16747:20;16744:1;16737:31;16791:4;16788:1;16781:15;16819:4;16816:1;16809:15;16689:145;16909:5;16899:7;16896:1;16892:15;16888:27;16883:2;16874:5;16870:10;16866:2;16862:19;16859:27;16856:60;16850:4;16843:74;;;;16926:143;17011:57;17064:2;17057:5;17053:14;17011:57;:::i;:::-;17005:4;16926:143;:::i;:::-;17078:139;17159:57;17212:2;17205:5;17201:14;17159:57;:::i;:::-;17153:4;17078:139;:::i;17228:1004::-;-1:-1:-1;;;;;17491:32:88;;17473:51;;17460:3;17445:19;;17546:20;;17575:45;17546:20;17575:45;:::i;:::-;17629:59;17684:2;17673:9;17669:18;17662:5;17629:59;:::i;:::-;;17737:2;17729:6;17725:15;17712:29;17750:47;17789:7;17750:47;:::i;:::-;17806:61;17863:2;17852:9;17848:18;17839:7;17806:61;:::i;:::-;;17916:2;17908:6;17904:15;17891:29;17929:47;17968:7;17929:47;:::i;:::-;17985:61;18042:2;18031:9;18027:18;18018:7;17985:61;:::i;:::-;;18095:2;18087:6;18083:15;18070:29;18108:47;18147:7;18108:47;:::i;:::-;18164:62;18221:3;18210:9;18206:19;18197:7;18164:62;:::i;:::-;;17228:1004;;;;;:::o;18237:301::-;18366:3;18404:6;18398:13;18450:6;18443:4;18435:6;18431:17;18426:3;18420:37;18512:1;18476:16;;18501:13;;;-1:-1:-1;18476:16:88;18237:301;-1:-1:-1;18237:301:88:o;18901:418::-;19050:2;19039:9;19032:21;19013:4;19082:6;19076:13;19125:6;19120:2;19109:9;19105:18;19098:34;19184:6;19179:2;19171:6;19167:15;19162:2;19151:9;19147:18;19141:50;19240:1;19235:2;19226:6;19215:9;19211:22;19207:31;19200:42;19310:2;19303;19299:7;19294:2;19286:6;19282:15;19278:29;19267:9;19263:45;19259:54;19251:62;;;18901:418;;;;:::o"},"methodIdentifiers":{"LP_WHITELIST_ADMIN_ROLE()":"1e3b9c5e","LP_WHITELIST_ROLE()":"aad4148c","acceptsDeposit(address,address,uint256)":"37ee20dd","acceptsTransfer(address,address,address,uint256)":"5fcdca37","acceptsWithdrawal(address,address,uint256)":"9051c763","currency()":"e5a6b10f","getWhitelistDefaults()":"ed716bf4","initialize((uint8,uint8,uint8,uint8))":"aa2f92fb","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","setWhitelistDefaults((uint8,uint8,uint8,uint8))":"cf273ca6","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","whitelistAddress(address,(uint8,uint8,uint8,uint8))":"896ce44c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"deposit\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"withdraw\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"sendTransfer\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"receiveTransfer\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"struct LPManualWhitelist.WhitelistStatus\",\"name\":\"whitelisted\",\"type\":\"tuple\"}],\"name\":\"LPWhitelistStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LP_WHITELIST_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LP_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerFrom\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhitelistDefaults\",\"outputs\":[{\"components\":[{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"deposit\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"withdraw\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"sendTransfer\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"receiveTransfer\",\"type\":\"uint8\"}],\"internalType\":\"struct LPManualWhitelist.WhitelistStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"deposit\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"withdraw\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"sendTransfer\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"receiveTransfer\",\"type\":\"uint8\"}],\"internalType\":\"struct LPManualWhitelist.WhitelistStatus\",\"name\":\"defaultStatus\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"deposit\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"withdraw\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"sendTransfer\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"receiveTransfer\",\"type\":\"uint8\"}],\"internalType\":\"struct LPManualWhitelist.WhitelistStatus\",\"name\":\"newStatus\",\"type\":\"tuple\"}],\"name\":\"setWhitelistDefaults\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"deposit\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"withdraw\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"sendTransfer\",\"type\":\"uint8\"},{\"internalType\":\"enum LPManualWhitelist.WhitelistOptions\",\"name\":\"receiveTransfer\",\"type\":\"uint8\"}],\"internalType\":\"struct LPManualWhitelist.WhitelistStatus\",\"name\":\"newStatus\",\"type\":\"tuple\"}],\"name\":\"whitelistAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize((uint8,uint8,uint8,uint8))\":{\"details\":\"Initializes the Whitelist contract\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Manual Whitelisting contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/LPManualWhitelist.sol\":\"LPManualWhitelist\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/LPManualWhitelist.sol\":{\"keccak256\":\"0x033c3b9fcc9ef820f2c5c0a8e25644952d22faafb077a61c337671bcb1701ed6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2584c2a37280ced50d153e7515146c901a3c8083d8d36df156269d8ef7715321\",\"dweb:/ipfs/QmQrkNj1eeR31EXEnH5iQ8qTJJ29n8htXdABG2ZUayo9zb\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":13972,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"_wlStatus","offset":0,"slot":"251","type":"t_mapping(t_address,t_struct(WhitelistStatus)13967_storage)"},{"astId":14355,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"__gap","offset":0,"slot":"252","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_enum(WhitelistOptions)13954":{"encoding":"inplace","label":"enum LPManualWhitelist.WhitelistOptions","numberOfBytes":"1"},"t_mapping(t_address,t_struct(WhitelistStatus)13967_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct LPManualWhitelist.WhitelistStatus)","numberOfBytes":"32","value":"t_struct(WhitelistStatus)13967_storage"},"t_struct(WhitelistStatus)13967_storage":{"encoding":"inplace","label":"struct LPManualWhitelist.WhitelistStatus","members":[{"astId":13957,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"deposit","offset":0,"slot":"0","type":"t_enum(WhitelistOptions)13954"},{"astId":13960,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"withdraw","offset":1,"slot":"0","type":"t_enum(WhitelistOptions)13954"},{"astId":13963,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"sendTransfer","offset":2,"slot":"0","type":"t_enum(WhitelistOptions)13954"},{"astId":13966,"contract":"contracts/LPManualWhitelist.sol:LPManualWhitelist","label":"receiveTransfer","offset":3,"slot":"0","type":"t_enum(WhitelistOptions)13954"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/LiquidityThresholdAssetManager.sol":{"LiquidityThresholdAssetManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"earnings","type":"int256"}],"name":"EarningsRecorded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyDeinvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyInvested","type":"event"},{"inputs":[],"name":"connect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deinvestAll","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getInvestmentValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMiddle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"name":"refillWallet","outputs":[{"internalType":"uint256","name":"deinvest","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"middle","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setLiquidityThresholds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"connect()":"948cb719","deinvestAll()":"cec16f3f","getInvestmentValue()":"4dd93bd3","liquidityMax()":"3b6612c8","liquidityMiddle()":"f9c4fd1b","liquidityMin()":"8d7ddd90","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","refillWallet(uint256)":"1014a0c2","setLiquidityThresholds(uint256,uint256,uint256)":"00a9bb8d","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"name\":\"EarningsRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyDeinvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyInvested\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"connect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deinvestAll\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestmentValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMax\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMiddle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidityMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"refillWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deinvest\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"middle\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"setLiquidityThresholds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Base class for asset management strategies that use thresholds for cash and investment balance.      The specific asset management strategy needs to be implemented by child contracts.      Settings liquidityMin, liquidityMiddle, liquidityMax are the thresholds used to define how much liquidity      to keep in the PolicyPool and when to invest/deinvest. Every invest/deinvest operation tries to leave the      cash at liquidityMiddle.\",\"events\":{\"EarningsRecorded(int256)\":{\"details\":\"Event emitted when investment yields are accounted in the reserve\",\"params\":{\"earnings\":\"The amount of earnings generated since last record. It's positive in the case of earnings or negative when there are losses.\"}},\"MoneyDeinvested(uint256)\":{\"details\":\"Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid funds.\",\"params\":{\"amount\":\"The amount de-invested\"}},\"MoneyInvested(uint256)\":{\"details\":\"Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\",\"params\":{\"amount\":\"The amount invested\"}}},\"kind\":\"dev\",\"methods\":{\"connect()\":{\"details\":\"Function called when an asset manager is plugged into a reserve. Useful for initialization tasks Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the diamondStorage might have left some data. So, in the connect method you should initialize the state setting to zero what's expected to be zero.\"},\"deinvestAll()\":{\"details\":\"Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset manager is unplugged. Events: - Emits {MoneyDeinvested} with the amount transferred to the liquid balance. - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\",\"returns\":{\"_0\":\"Returns the earnings or losses (negative) since last time earnings were recorded.\"}},\"getInvestmentValue()\":{\"details\":\"Returns the current value of the investment portfolio\"},\"rebalance()\":{\"details\":\"Rebalances cash between PolicyPool wallet and\"},\"recordEarnings()\":{\"details\":\"Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the reserve balance and those that are invested. Called with delegatecall by the reserve from the external function rebalance (see {Reserve-rebalance}). Events: - Emits {MoneyInvested} or {MoneyDeinvested}\"},\"refillWallet(uint256)\":{\"details\":\"This is called from PolicyPool when doesn't have enough money for payment.      After the call, there should be enough money in PolicyPool.currency().balanceOf(this) to      do the payment\",\"params\":{\"paymentAmount\":\"The amount of the payment\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Base class for asset management strategies that use thresholds for cash and investment balance\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contracts uses Diamond Storage and should not define state variables outside of that. See the diamondStorage method for more details.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/LiquidityThresholdAssetManager.sol\":\"LiquidityThresholdAssetManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/LiquidityThresholdAssetManager.sol\":{\"keccak256\":\"0x1464fe7b414b6cfda7d48399d80ded9a5d0bcf5ed7fde0e2b32e4f3d030bc210\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2637c07d2f83ef61dbfc2d50f904702a9802b7924bb90b8cd58503fd0f8dba0d\",\"dweb:/ipfs/QmdEQG5ix3UiqVPBSrNDAv7msevgc9iM7j55Zb4cJfcxR7\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/Policy.sol":{"Policy":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b4a247815d963cf0ac45a9783ad891ff0f5827ac6f2cf25acfdd0eca5c979f164736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 BLOBBASEFEE 0x24 PUSH25 0x15D963CF0AC45A9783AD891FF0F5827AC6F2CF25ACFDD0ECA5 0xC9 PUSH26 0xF164736F6C634300081C00330000000000000000000000000000 ","sourceMap":"465:4444:55:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;465:4444:55;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b4a247815d963cf0ac45a9783ad891ff0f5827ac6f2cf25acfdd0eca5c979f164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 BLOBBASEFEE 0x24 PUSH25 0x15D963CF0AC45A9783AD891FF0F5827AC6F2CF25ACFDD0ECA5 0xC9 PUSH26 0xF164736F6C634300081C00330000000000000000000000000000 ","sourceMap":"465:4444:55:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Library for PolicyData struct. This struct represents an active policy, how the premium is      distributed, the probability of payout, duration and how the capital is locked.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Policy library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Policy.sol\":\"Policy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/PolicyPool.sol":{"PolicyPool":{"abi":[{"inputs":[{"internalType":"contract IAccessManager","name":"access_","type":"address"},{"internalType":"contract IERC20Metadata","name":"currency_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ComponentAlreadyInThePool","type":"error"},{"inputs":[{"internalType":"enum PolicyPool.ComponentKind","name":"kind","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ComponentInUseCannotRemove","type":"error"},{"inputs":[],"name":"ComponentMustBeActiveOrDeprecated","type":"error"},{"inputs":[],"name":"ComponentNotDeprecated","type":"error"},{"inputs":[],"name":"ComponentNotFound","type":"error"},{"inputs":[],"name":"ComponentNotFoundOrNotActive","type":"error"},{"inputs":[],"name":"ComponentNotLinkedToThisPool","type":"error"},{"inputs":[{"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"},{"internalType":"enum PolicyPool.ComponentKind","name":"expectedKind","type":"uint8"}],"name":"ComponentNotTheRightKind","type":"error"},{"inputs":[{"internalType":"bytes4","name":"response","type":"bytes4"}],"name":"InvalidNotificationResponse","type":"error"},{"inputs":[],"name":"NoEmptyName","type":"error"},{"inputs":[],"name":"NoEmptySymbol","type":"error"},{"inputs":[],"name":"NoZeroAccess","type":"error"},{"inputs":[],"name":"NoZeroCurrency","type":"error"},{"inputs":[],"name":"NoZeroTreasury","type":"error"},{"inputs":[],"name":"OnlyRiskModuleAllowed","type":"error"},{"inputs":[],"name":"UpgradeCannotChangeAccess","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"},{"indexed":false,"internalType":"enum PolicyPool.ComponentKind","name":"kind","type":"uint8"},{"indexed":false,"internalType":"enum PolicyPool.ComponentStatus","name":"newStatus","type":"uint8"}],"name":"ComponentStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"contract IPolicyHolder","name":"holder","type":"address"}],"name":"ExpirationNotificationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"indexed":false,"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"NewPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldPolicyId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newPolicyId","type":"uint256"}],"name":"PolicyReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payout","type":"uint256"}],"name":"PolicyResolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"GUARDIAN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEVEL2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"access","outputs":[{"internalType":"contract IAccessManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"},{"internalType":"enum PolicyPool.ComponentKind","name":"kind","type":"uint8"}],"name":"addComponent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"},{"internalType":"enum PolicyPool.ComponentStatus","name":"newStatus","type":"uint8"}],"name":"changeComponentStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"eToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData[]","name":"policies","type":"tuple[]"}],"name":"expirePolicies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"}],"name":"getComponentStatus","outputs":[{"internalType":"enum PolicyPool.ComponentStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"getPolicyHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"treasury_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IRiskModule","name":"rm","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"makePolicyId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"policyHolder","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IPolicyPoolComponent","name":"component","type":"address"}],"name":"removeComponent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy_","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"bool","name":"customerWon","type":"bool"}],"name":"resolvePolicyFullPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"nftBaseURI_","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"treasury_","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"eToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15729":{"entryPoint":null,"id":15729,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":159,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IAccessManager_$23370t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":370,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IAccessManager":{"entryPoint":347,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1229:88","nodeType":"YulBlock","src":"0:1229:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"75:86:88","nodeType":"YulBlock","src":"75:86:88","statements":[{"body":{"nativeSrc":"139:16:88","nodeType":"YulBlock","src":"139:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"151:1:88","nodeType":"YulLiteral","src":"151:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"141:6:88","nodeType":"YulIdentifier","src":"141:6:88"},"nativeSrc":"141:12:88","nodeType":"YulFunctionCall","src":"141:12:88"},"nativeSrc":"141:12:88","nodeType":"YulExpressionStatement","src":"141:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"98:5:88","nodeType":"YulIdentifier","src":"98:5:88"},{"arguments":[{"name":"value","nativeSrc":"109:5:88","nodeType":"YulIdentifier","src":"109:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"124:3:88","nodeType":"YulLiteral","src":"124:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"129:1:88","nodeType":"YulLiteral","src":"129:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"120:3:88","nodeType":"YulIdentifier","src":"120:3:88"},"nativeSrc":"120:11:88","nodeType":"YulFunctionCall","src":"120:11:88"},{"kind":"number","nativeSrc":"133:1:88","nodeType":"YulLiteral","src":"133:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"116:3:88","nodeType":"YulIdentifier","src":"116:3:88"},"nativeSrc":"116:19:88","nodeType":"YulFunctionCall","src":"116:19:88"}],"functionName":{"name":"and","nativeSrc":"105:3:88","nodeType":"YulIdentifier","src":"105:3:88"},"nativeSrc":"105:31:88","nodeType":"YulFunctionCall","src":"105:31:88"}],"functionName":{"name":"eq","nativeSrc":"95:2:88","nodeType":"YulIdentifier","src":"95:2:88"},"nativeSrc":"95:42:88","nodeType":"YulFunctionCall","src":"95:42:88"}],"functionName":{"name":"iszero","nativeSrc":"88:6:88","nodeType":"YulIdentifier","src":"88:6:88"},"nativeSrc":"88:50:88","nodeType":"YulFunctionCall","src":"88:50:88"},"nativeSrc":"85:70:88","nodeType":"YulIf","src":"85:70:88"}]},"name":"validator_revert_contract_IAccessManager","nativeSrc":"14:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"64:5:88","nodeType":"YulTypedName","src":"64:5:88","type":""}],"src":"14:147:88"},{"body":{"nativeSrc":"311:319:88","nodeType":"YulBlock","src":"311:319:88","statements":[{"body":{"nativeSrc":"357:16:88","nodeType":"YulBlock","src":"357:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"369:1:88","nodeType":"YulLiteral","src":"369:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"359:6:88","nodeType":"YulIdentifier","src":"359:6:88"},"nativeSrc":"359:12:88","nodeType":"YulFunctionCall","src":"359:12:88"},"nativeSrc":"359:12:88","nodeType":"YulExpressionStatement","src":"359:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"332:7:88","nodeType":"YulIdentifier","src":"332:7:88"},{"name":"headStart","nativeSrc":"341:9:88","nodeType":"YulIdentifier","src":"341:9:88"}],"functionName":{"name":"sub","nativeSrc":"328:3:88","nodeType":"YulIdentifier","src":"328:3:88"},"nativeSrc":"328:23:88","nodeType":"YulFunctionCall","src":"328:23:88"},{"kind":"number","nativeSrc":"353:2:88","nodeType":"YulLiteral","src":"353:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"324:3:88","nodeType":"YulIdentifier","src":"324:3:88"},"nativeSrc":"324:32:88","nodeType":"YulFunctionCall","src":"324:32:88"},"nativeSrc":"321:52:88","nodeType":"YulIf","src":"321:52:88"},{"nativeSrc":"382:29:88","nodeType":"YulVariableDeclaration","src":"382:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"401:9:88","nodeType":"YulIdentifier","src":"401:9:88"}],"functionName":{"name":"mload","nativeSrc":"395:5:88","nodeType":"YulIdentifier","src":"395:5:88"},"nativeSrc":"395:16:88","nodeType":"YulFunctionCall","src":"395:16:88"},"variables":[{"name":"value","nativeSrc":"386:5:88","nodeType":"YulTypedName","src":"386:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"461:5:88","nodeType":"YulIdentifier","src":"461:5:88"}],"functionName":{"name":"validator_revert_contract_IAccessManager","nativeSrc":"420:40:88","nodeType":"YulIdentifier","src":"420:40:88"},"nativeSrc":"420:47:88","nodeType":"YulFunctionCall","src":"420:47:88"},"nativeSrc":"420:47:88","nodeType":"YulExpressionStatement","src":"420:47:88"},{"nativeSrc":"476:15:88","nodeType":"YulAssignment","src":"476:15:88","value":{"name":"value","nativeSrc":"486:5:88","nodeType":"YulIdentifier","src":"486:5:88"},"variableNames":[{"name":"value0","nativeSrc":"476:6:88","nodeType":"YulIdentifier","src":"476:6:88"}]},{"nativeSrc":"500:40:88","nodeType":"YulVariableDeclaration","src":"500:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"525:9:88","nodeType":"YulIdentifier","src":"525:9:88"},{"kind":"number","nativeSrc":"536:2:88","nodeType":"YulLiteral","src":"536:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"521:3:88","nodeType":"YulIdentifier","src":"521:3:88"},"nativeSrc":"521:18:88","nodeType":"YulFunctionCall","src":"521:18:88"}],"functionName":{"name":"mload","nativeSrc":"515:5:88","nodeType":"YulIdentifier","src":"515:5:88"},"nativeSrc":"515:25:88","nodeType":"YulFunctionCall","src":"515:25:88"},"variables":[{"name":"value_1","nativeSrc":"504:7:88","nodeType":"YulTypedName","src":"504:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"590:7:88","nodeType":"YulIdentifier","src":"590:7:88"}],"functionName":{"name":"validator_revert_contract_IAccessManager","nativeSrc":"549:40:88","nodeType":"YulIdentifier","src":"549:40:88"},"nativeSrc":"549:49:88","nodeType":"YulFunctionCall","src":"549:49:88"},"nativeSrc":"549:49:88","nodeType":"YulExpressionStatement","src":"549:49:88"},{"nativeSrc":"607:17:88","nodeType":"YulAssignment","src":"607:17:88","value":{"name":"value_1","nativeSrc":"617:7:88","nodeType":"YulIdentifier","src":"617:7:88"},"variableNames":[{"name":"value1","nativeSrc":"607:6:88","nodeType":"YulIdentifier","src":"607:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"166:464:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"269:9:88","nodeType":"YulTypedName","src":"269:9:88","type":""},{"name":"dataEnd","nativeSrc":"280:7:88","nodeType":"YulTypedName","src":"280:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"292:6:88","nodeType":"YulTypedName","src":"292:6:88","type":""},{"name":"value1","nativeSrc":"300:6:88","nodeType":"YulTypedName","src":"300:6:88","type":""}],"src":"166:464:88"},{"body":{"nativeSrc":"809:229:88","nodeType":"YulBlock","src":"809:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"826:9:88","nodeType":"YulIdentifier","src":"826:9:88"},{"kind":"number","nativeSrc":"837:2:88","nodeType":"YulLiteral","src":"837:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"819:6:88","nodeType":"YulIdentifier","src":"819:6:88"},"nativeSrc":"819:21:88","nodeType":"YulFunctionCall","src":"819:21:88"},"nativeSrc":"819:21:88","nodeType":"YulExpressionStatement","src":"819:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"860:9:88","nodeType":"YulIdentifier","src":"860:9:88"},{"kind":"number","nativeSrc":"871:2:88","nodeType":"YulLiteral","src":"871:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"856:3:88","nodeType":"YulIdentifier","src":"856:3:88"},"nativeSrc":"856:18:88","nodeType":"YulFunctionCall","src":"856:18:88"},{"kind":"number","nativeSrc":"876:2:88","nodeType":"YulLiteral","src":"876:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"849:6:88","nodeType":"YulIdentifier","src":"849:6:88"},"nativeSrc":"849:30:88","nodeType":"YulFunctionCall","src":"849:30:88"},"nativeSrc":"849:30:88","nodeType":"YulExpressionStatement","src":"849:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"899:9:88","nodeType":"YulIdentifier","src":"899:9:88"},{"kind":"number","nativeSrc":"910:2:88","nodeType":"YulLiteral","src":"910:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"895:3:88","nodeType":"YulIdentifier","src":"895:3:88"},"nativeSrc":"895:18:88","nodeType":"YulFunctionCall","src":"895:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"915:34:88","nodeType":"YulLiteral","src":"915:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"888:6:88","nodeType":"YulIdentifier","src":"888:6:88"},"nativeSrc":"888:62:88","nodeType":"YulFunctionCall","src":"888:62:88"},"nativeSrc":"888:62:88","nodeType":"YulExpressionStatement","src":"888:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"970:9:88","nodeType":"YulIdentifier","src":"970:9:88"},{"kind":"number","nativeSrc":"981:2:88","nodeType":"YulLiteral","src":"981:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"966:3:88","nodeType":"YulIdentifier","src":"966:3:88"},"nativeSrc":"966:18:88","nodeType":"YulFunctionCall","src":"966:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"986:9:88","nodeType":"YulLiteral","src":"986:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"959:6:88","nodeType":"YulIdentifier","src":"959:6:88"},"nativeSrc":"959:37:88","nodeType":"YulFunctionCall","src":"959:37:88"},"nativeSrc":"959:37:88","nodeType":"YulExpressionStatement","src":"959:37:88"},{"nativeSrc":"1005:27:88","nodeType":"YulAssignment","src":"1005:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1017:9:88","nodeType":"YulIdentifier","src":"1017:9:88"},{"kind":"number","nativeSrc":"1028:3:88","nodeType":"YulLiteral","src":"1028:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1013:3:88","nodeType":"YulIdentifier","src":"1013:3:88"},"nativeSrc":"1013:19:88","nodeType":"YulFunctionCall","src":"1013:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1005:4:88","nodeType":"YulIdentifier","src":"1005:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"635:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"786:9:88","nodeType":"YulTypedName","src":"786:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"800:4:88","nodeType":"YulTypedName","src":"800:4:88","type":""}],"src":"635:403:88"},{"body":{"nativeSrc":"1140:87:88","nodeType":"YulBlock","src":"1140:87:88","statements":[{"nativeSrc":"1150:26:88","nodeType":"YulAssignment","src":"1150:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1162:9:88","nodeType":"YulIdentifier","src":"1162:9:88"},{"kind":"number","nativeSrc":"1173:2:88","nodeType":"YulLiteral","src":"1173:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1158:3:88","nodeType":"YulIdentifier","src":"1158:3:88"},"nativeSrc":"1158:18:88","nodeType":"YulFunctionCall","src":"1158:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1150:4:88","nodeType":"YulIdentifier","src":"1150:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1192:9:88","nodeType":"YulIdentifier","src":"1192:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1207:6:88","nodeType":"YulIdentifier","src":"1207:6:88"},{"kind":"number","nativeSrc":"1215:4:88","nodeType":"YulLiteral","src":"1215:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1203:3:88","nodeType":"YulIdentifier","src":"1203:3:88"},"nativeSrc":"1203:17:88","nodeType":"YulFunctionCall","src":"1203:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1185:6:88","nodeType":"YulIdentifier","src":"1185:6:88"},"nativeSrc":"1185:36:88","nodeType":"YulFunctionCall","src":"1185:36:88"},"nativeSrc":"1185:36:88","nodeType":"YulExpressionStatement","src":"1185:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1043:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1109:9:88","nodeType":"YulTypedName","src":"1109:9:88","type":""},{"name":"value0","nativeSrc":"1120:6:88","nodeType":"YulTypedName","src":"1120:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1131:4:88","nodeType":"YulTypedName","src":"1131:4:88","type":""}],"src":"1043:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IAccessManager(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IAccessManager(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IAccessManager(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051615c46380380615c4683398101604081905261003291610172565b6001600160a01b0382166100595760405163a9f283c960e01b815260040160405180910390fd5b6001600160a01b0381166100805760405163559a03cd60e01b815260040160405180910390fd5b61008861009f565b6001600160a01b0391821660a0521660c0526101aa565b5f54610100900460ff161561010a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610159575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461016f575f5ffd5b50565b5f5f60408385031215610183575f5ffd5b825161018e8161015b565b602084015190925061019f8161015b565b809150509250929050565b60805160a05160c0516159bc61028a5f395f8181610749015281816110c00152818161117401528181611228015281816114d001528181611542015281816115a301528181611dea01528181611e9301528181611f3a01528181611f7901526120a501525f81816105db015281816113ed0152818161182b0152818161191d01528181611a3301528181611acf015281816121b50152818161273701528181612d8c01528181612fcf015281816134fc015261358b01525f8181610bd001528181610c100152818161168e015281816116ce015261175b01526159bc5ff3fe608060405260043610610254575f3560e01c80636769a76f1161013f57806395d89b41116100b3578063e5a6b10f11610078578063e5a6b10f1461073b578063e985e9c51461076d578063f0f44260146107b5578063f3fef3a3146107d4578063f67b2bad146107f3578063ffa600e314610813575f5ffd5b806395d89b41146106ab578063a22cb465146106bf578063b88d4fde146106de578063c016f88a146106fd578063c87b56dd1461071c575f5ffd5b806371907f171161010457806371907f17146105cd578063792da09e146105ff5780637a702b3c1461062b57806382afd23b1461064a5780638456cb59146106785780638c916d461461068c575f5ffd5b80636769a76f146105325780636af6f1ef146105515780636b8734e7146105705780636f86c8971461058f57806370a08231146105ae575f5ffd5b80633f4ba83a116101d657806352d1902d1161019b57806352d1902d1461048c57806355f804b3146104a05780635c975abb146104bf5780635fcbf445146104d657806361d027b3146104f55780636352211e14610513575f5ffd5b80633f4ba83a146103f457806342842e0e1461040857806347e7ef24146104275780634a47a3e0146104465780634f1ef28614610479575f5ffd5b806323b872dd1161021c57806323b872dd1461032457806324ea54f41461034357806333d6157a146103715780633659cfe6146103b65780633ed7c1ae146103d5575f5ffd5b806301ffc9a71461025857806306fdde031461028c578063077f224a146102ad578063081812fc146102ce578063095ea7b314610305575b5f5ffd5b348015610263575f5ffd5b50610277610272366004614c32565b610832565b60405190151581526020015b60405180910390f35b348015610297575f5ffd5b506102a061085d565b6040516102839190614c7b565b3480156102b8575f5ffd5b506102cc6102c7366004614d70565b6108ed565b005b3480156102d9575f5ffd5b506102ed6102e8366004614de8565b610a5c565b6040516001600160a01b039091168152602001610283565b348015610310575f5ffd5b506102cc61031f366004614dff565b610a81565b34801561032f575f5ffd5b506102cc61033e366004614e29565b610b95565b34801561034e575f5ffd5b506103635f5160206159675f395f51905f5281565b604051908152602001610283565b34801561037c575f5ffd5b506103a961038b366004614e67565b6001600160a01b03165f90815261012e602052604090205460ff1690565b6040516102839190614eb2565b3480156103c1575f5ffd5b506102cc6103d0366004614e67565b610bc6565b3480156103e0575f5ffd5b506103636103ef366004614fc4565b610ca3565b3480156103ff575f5ffd5b506102cc6113c7565b348015610413575f5ffd5b506102cc610422366004614e29565b611482565b348015610432575f5ffd5b506102cc610441366004614dff565b61149c565b348015610451575f5ffd5b506103637fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6102cc61048736600461501d565b611684565b348015610497575f5ffd5b5061036361174f565b3480156104ab575f5ffd5b506102cc6104ba36600461506a565b611800565b3480156104ca575f5ffd5b5060335460ff16610277565b3480156104e1575f5ffd5b506102cc6104f03660046150a8565b6118f7565b348015610500575f5ffd5b5061012d546001600160a01b03166102ed565b34801561051e575f5ffd5b506102ed61052d366004614de8565b611bd5565b34801561053d575f5ffd5b5061036361054c3660046150df565b611c34565b34801561055c575f5ffd5b506102cc61056b366004615145565b61211a565b34801561057b575f5ffd5b506102cc61058a3660046150a8565b61219d565b34801561059a575f5ffd5b506102cc6105a9366004614e67565b61271f565b3480156105b9575f5ffd5b506103636105c8366004614e67565b612ccf565b3480156105d8575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b34801561060a575f5ffd5b50610363610619366004614de8565b5f90815261012f602052604090205490565b348015610636575f5ffd5b506102cc610645366004615160565b612d53565b348015610655575f5ffd5b50610277610664366004614de8565b5f90815261012f6020526040902054151590565b348015610683575f5ffd5b506102cc612d74565b348015610697575f5ffd5b506102cc6106a636600461518b565b612e14565b3480156106b6575f5ffd5b506102a0612ed5565b3480156106ca575f5ffd5b506102cc6106d936600461520a565b612ee4565b3480156106e9575f5ffd5b506102cc6106f8366004615236565b612eef565b348015610708575f5ffd5b5061036361071736600461529e565b612f21565b348015610727575f5ffd5b506102a0610736366004614de8565b612f54565b348015610746575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b348015610778575f5ffd5b506102776107873660046152d1565b6001600160a01b039182165f9081526101006020908152604080832093909416825291909152205460ff1690565b3480156107c0575f5ffd5b506102cc6107cf366004614e67565b612fb7565b3480156107df575f5ffd5b506103636107ee366004614dff565b613058565b3480156107fe575f5ffd5b506103635f5160206159205f395f51905f5281565b34801561081e575f5ffd5b506102cc61082d3660046152fd565b6130ea565b5f61083c8261311b565b8061085757506001600160e01b0319821663019c676f60e31b145b92915050565b606060fb805461086c9061532a565b80601f01602080910402602001604051908101604052809291908181526020018280546108989061532a565b80156108e35780601f106108ba576101008083540402835291602001916108e3565b820191905f5260205f20905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b5f54610100900460ff161580801561090b57505f54600160ff909116105b806109245750303b15801561092457505f5460ff166001145b61098c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156109ad575f805461ff0019166101001790555b83515f036109cd57604051620beefb60e01b815260040160405180910390fd5b82515f036109ee576040516343b47bcb60e01b815260040160405180910390fd5b6109f661316a565b610a008484613192565b610a086131c2565b610a11826131f0565b8015610a56575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f610a668261321f565b505f90815260ff60205260409020546001600160a01b031690565b5f610a8b82611bd5565b9050806001600160a01b0316836001600160a01b031603610af85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610983565b336001600160a01b0382161480610b145750610b148133610787565b610b865760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610983565b610b90838361327d565b505050565b610b9f33826132ea565b610bbb5760405162461bcd60e51b81526004016109839061535c565b610b90838383613367565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c0e5760405162461bcd60e51b8152600401610983906153a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c565f5160206159005f395f51905f52546001600160a01b031690565b6001600160a01b031614610c7c5760405162461bcd60e51b8152600401610983906153f5565b610c85816134d6565b604080515f80825260208201909252610ca09183919061363a565b50565b5f610cac6137a4565b610cb5856137ea565b6101608501516001600160a01b0381163314610ce457604051634ace04f960e01b815260040160405180910390fd5b610cef816002613850565b5f816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190615441565b9050610d5d816003613850565b4264ffffffffff16876101a0015164ffffffffff1611610db75760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b6044820152606401610983565b85610180015164ffffffffff1687610180015164ffffffffff1614610e355760405162461bcd60e51b815260206004820152602e60248201527f426f746820706f6c6963696573206d7573742068617665207468652073616d6560448201526d207374617274696e67206461746560901b6064820152608401610983565b8560200151876020015111158015610e5557508560c001518760c0015111155b8015610e6957508560e001518760e0015111155b8015610e7f575085610120015187610120015111155b8015610e95575085610140015187610140015111155b8015610ea957508560600151876060015111155b8015610ebd57508560800151876080015111155b8015610ed3575085610100015187610100015111155b8015610ef75750856101a0015164ffffffffff16876101a0015164ffffffffff1611155b8015610f1957508561016001516001600160a01b0316826001600160a01b0316145b610f815760405162461bcd60e51b815260206004820152603360248201527f4e657720706f6c696379206d7573742062652067726561746572206f7220657160448201527275616c207468616e206f6c6420706f6c69637960681b6064820152608401610983565b610f8b8285612f21565b8087525f90815261012f602052604090205415610fe25760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b6044820152606401610983565b610feb8661388b565b86515f90815261012f6020526040812091909155875161100a90611bd5565b905061102881885f015160405180602001604052805f815250613909565b87515f90815261012f602052604080822091909155516355c1da5f60e11b81526001600160a01b0383169063ab83b4be90611069908b908b9060040161551c565b5f604051808303815f87803b158015611080575f5ffd5b505af1158015611092573d5f5f3e3d5ffd5b505050505f8860c001518860c001516110ab919061554d565b905080156110e8576110e86001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688858461393b565b8861014001518861014001516110fe919061554d565b9050801561119c5761119c87846001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116a9190615441565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691908461393b565b8861012001518861012001516111b2919061554d565b905080156111fa576111fa87846001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b8860e001518860e0015161120e919061554d565b905080156112535761012d54611253906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116918a91168461393b565b886101000151886101000151611269919061554d565b90505f811180156112eb5750836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d59190615441565b6001600160a01b0316876001600160a01b031614155b156113305761133087856001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b836001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b896040516113699190615560565b60405180910390a2875189516040516001600160a01b038716907f4ff4ac703cb703b7ea535d47e65e64b4cabf11b3e2eb41f152dab17971953add905f90a4885188516113b69190613995565b50508551925050505b949350505050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b158015611460575f5ffd5b505afa158015611472573d5f5f3e3d5ffd5b5050505061147e613a90565b5050565b610b9083838360405180602001604052805f815250612eef565b6114a46137a4565b6114af826001613850565b6040516370a0823160e01b81526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611517573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153b919061556f565b90506115727f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633858561393b565b6001600160a01b0383166347e7ef24336040516370a0823160e01b81526001600160a01b03878116600483015285917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156115ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160e919061556f565b611618919061554d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015611660573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a56919061556f565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116cc5760405162461bcd60e51b8152600401610983906153a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117145f5160206159005f395f51905f52546001600160a01b031690565b6001600160a01b03161461173a5760405162461bcd60e51b8152600401610983906153f5565b611743826134d6565b61147e8282600161363a565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610983565b505f5160206159005f395f51905f5290565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611895575f5ffd5b505afa1580156118a7573d5f5f3e3d5ffd5b505050508161013090816118bb91906155d1565b506040513381526004907fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f906020015b60405180910390a25050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b158015611990575f5ffd5b505afa1580156119a2573d5f5f3e3d5ffd5b5050506001600160a01b0385165f90815261012e602052604081209150815460ff1660038111156119d5576119d5614e82565b036119f357604051637d91856360e01b815260040160405180910390fd5b6001846003811115611a0757611a07614e82565b1480611a2457506002846003811115611a2257611a22614e82565b145b15611ac5576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad5f5160206159205f395f51905f52336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611aaa575f5ffd5b505afa158015611abc573d5f5f3e3d5ffd5b50505050611b5d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad5f5160206159675f395f51905f52336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611b46575f5ffd5b505afa158015611b58573d5f5f3e3d5ffd5b505050505b80548490829060ff19166001836003811115611b7b57611b7b614e82565b021790555080546040516001600160a01b038716917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef91611bc691610100900460ff1690889061568c565b60405180910390a25050505050565b5f81815260fd60205260408120546001600160a01b0316806108575760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610983565b5f611c3d6137a4565b6101608501516001600160a01b0381163314611c6c57604051634ace04f960e01b815260040160405180910390fd5b611c77816002613850565b5f816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd89190615441565b9050611ce5816003613850565b611cef8285612f21565b8088525f90815261012f602052604090205415611d465760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b6044820152606401610983565b611d4f8761388b565b87515f90815261012f602090815260408083209390935589518351918201909352908152611d7e918791613909565b60405163e3638ea360e01b81526001600160a01b0382169063e3638ea390611daa908a90600401615560565b5f604051808303815f87803b158015611dc1575f5ffd5b505af1158015611dd3573d5f5f3e3d5ffd5b50505060c0880151611e1491506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908890849061393b565b61014087015115611ebb57611ebb86826001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190615441565b6101408a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b61012087015115611f6257611f6286826001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2a9190615441565b6101208a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b61012d5460e0880151611fa7916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116928a92919091169061393b565b5f87610100015111801561202c5750816001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120169190615441565b6001600160a01b0316866001600160a01b031614155b156120cd576120cd86836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015612071573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120959190615441565b6101008a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b886040516121069190615560565b60405180910390a250509351949350505050565b6121226137a4565b426121356101c083016101a084016156b2565b64ffffffffff1611156121835760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610983565b610ca0612195368390038301836156cb565b5f6001613ae2565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b15801561221f575f5ffd5b505afa158015612231573d5f5f3e3d5ffd5b5050506001600160a01b0384165f90815261012e602052604081209150815460ff16600381111561226457612264614e82565b146122825760405163cf9a96f360e01b815260040160405180910390fd5b306001600160a01b0316846001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ec9190615441565b6001600160a01b03161461231357604051630fdee24360e11b815260040160405180910390fd5b600183600381111561232757612327614e82565b1480156123a357506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061236290639077062160e01b906004016156e6565b602060405180830381865afa15801561237d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a191906156fb565b155b80612439575060038360038111156123bd576123bd614e82565b14801561243957506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906123f890630e72532960e11b906004016156e6565b602060405180830381865afa158015612413573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243791906156fb565b155b806124cf5750600283600381111561245357612453614e82565b1480156124cf57506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061248e9063da40804f60e01b906004016156e6565b602060405180830381865afa1580156124a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cd91906156fb565b155b156124f157838360405163502c9a5f60e01b8152600401610983929190615716565b8054600160ff198216811783558491839161ffff199091161761010083600381111561251f5761251f614e82565b0217905550600383600381111561253857612538614e82565b036126d5575f8490505f816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561257e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a29190615441565b90506001600160a01b0381161561260a576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c906024015f604051808303815f87803b1580156125f3575f5ffd5b505af1158015612605573d5f5f3e3d5ffd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612646573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061266a9190615441565b90506001600160a01b038116156126d2576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c906024015f604051808303815f87803b1580156126bb575f5ffd5b505af11580156126cd573d5f5f3e3d5ffd5b505050505b50505b836001600160a01b03167ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef84600160405161271192919061568c565b60405180910390a250505050565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b1580156127a1575f5ffd5b505afa1580156127b3573d5f5f3e3d5ffd5b505050506001600160a01b0382165f90815261012e602052604090206002815460ff1660038111156127e7576127e7614e82565b1461280557604051635c92b23960e11b815260040160405180910390fd5b60018154610100900460ff16600381111561282257612822614e82565b0361291d57826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612863573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612887919061556f565b1561291857805f0160019054906101000a900460ff16836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128fd919061556f565b604051631d0ec0ab60e01b815260040161098392919061572f565b612c5d565b60028154610100900460ff16600381111561293a5761293a614e82565b036129f157826001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299f919061556f565b1561291857805f0160019054906101000a900460ff16836001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b60038154610100900460ff166003811115612a0e57612a0e614e82565b03612c5d575f839050806001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a77919061556f565b15612ac957815f0160019054906101000a900460ff16816001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b5f816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2a9190615441565b90506001600160a01b03811615612b92576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc55906024015f604051808303815f87803b158015612b7b575f5ffd5b505af1158015612b8d573d5f5f3e3d5ffd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf29190615441565b90506001600160a01b03811615612c5a576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc55906024015f604051808303815f87803b158015612c43575f5ffd5b505af1158015612c55573d5f5f3e3d5ffd5b505050505b50505b80546040516001600160a01b038516917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef91612ca391610100900460ff16905f9061568c565b60405180910390a250506001600160a01b03165f90815261012e60205260409020805461ffff19169055565b5f6001600160a01b038216612d385760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610983565b506001600160a01b03165f90815260fe602052604090205490565b612d5b6137a4565b61147e612d6d368490038401846156cb565b825f613ae2565b5f5160206159675f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612df6575f5ffd5b505afa158015612e08573d5f5f3e3d5ffd5b50505050610ca0613e0b565b612e1c6137a4565b5f5b81811015610b905742838383818110612e3957612e39615746565b90506101c002016101a0016020810190612e5391906156b2565b64ffffffffff161115612ea15760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610983565b612ecd838383818110612eb657612eb6615746565b90506101c0020180360381019061219591906156cb565b600101612e1e565b606060fc805461086c9061532a565b61147e338383613e48565b612ef933836132ea565b612f155760405162461bcd60e51b81526004016109839061535c565b610a5684848484613f16565b5f612f4d6bffffffffffffffffffffffff83166bffffffffffffffffffffffff19606086901b1661575a565b9392505050565b6060612f5f8261321f565b5f612f68613f49565b90505f815111612f865760405180602001604052805f815250612f4d565b80612f9084613f59565b604051602001612fa1929190615784565b6040516020818303038152906040529392505050565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015613039575f5ffd5b505afa15801561304b573d5f5f3e3d5ffd5b5050505061147e82613fe9565b5f6130616137a4565b61306c836001614072565b6001600160a01b03831663f3fef3a3336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af11580156130c6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f4d919061556f565b6130f26137a4565b61147e613104368490038401846156cb565b8261310f575f613115565b83602001355b5f613ae2565b5f6001600160e01b031982166380ac58cd60e01b148061314b57506001600160e01b03198216635b5e139f60e01b145b8061085757506301ffc9a760e01b6001600160e01b0319831614610857565b5f54610100900460ff166131905760405162461bcd60e51b815260040161098390615798565b565b5f54610100900460ff166131b85760405162461bcd60e51b815260040161098390615798565b61147e82826140d1565b5f54610100900460ff166131e85760405162461bcd60e51b815260040161098390615798565b613190614110565b5f54610100900460ff166132165760405162461bcd60e51b815260040161098390615798565b610ca081613fe9565b5f81815260fd60205260409020546001600160a01b0316610ca05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610983565b5f81815260ff6020526040902080546001600160a01b0319166001600160a01b03841690811790915581906132b182611bd5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f5f6132f583611bd5565b9050806001600160a01b0316846001600160a01b0316148061333c57506001600160a01b038082165f908152610100602090815260408083209388168352929052205460ff165b806113bf5750836001600160a01b031661335584610a5c565b6001600160a01b031614949350505050565b826001600160a01b031661337a82611bd5565b6001600160a01b0316146133a05760405162461bcd60e51b8152600401610983906157e3565b6001600160a01b0382166134025760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610983565b61340f8383836001614142565b826001600160a01b031661342282611bd5565b6001600160a01b0316146134485760405162461bcd60e51b8152600401610983906157e3565b5f81815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260fe855283862080545f190190559087168086528386208054600101905586865260fd90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b15801561356f575f5ffd5b505afa158015613581573d5f5f3e3d5ffd5b505050505f8390507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136139190615441565b6001600160a01b031614610a5657604051630f13081760e01b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561366d57610b908361414f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156136c7575060408051601f3d908101601f191682019092526136c49181019061556f565b60015b61372a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610983565b5f5160206159005f395f51905f5281146137985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610983565b50610b908383836141ea565b60335460ff16156131905760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610983565b805115801590613811575080515f90815261012f602052604090205461380f8261388b565b145b610ca05760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610983565b600161385c838361420e565b600381111561386d5761386d614e82565b1461147e57604051630422f25f60e01b815260040160405180910390fd5b5f8160405160200161389d9190615560565b60408051601f1981840301815291905280516020909101209050806139045760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f74206265203000000000000000006044820152606401610983565b919050565b6139138383614280565b61391f5f848484614415565b610b905760405162461bcd60e51b815260040161098390615828565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610a5690859061450f565b5f61399f83611bd5565b90506001600160a01b0381163b6139b557505050565b6139c681635ee0c7dd60e01b6145e2565b6139cf57505050565b5f6001600160a01b038216635ee0c7dd336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101879052606481018690526084016020604051808303815f875af1158015613a37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5b919061587a565b90506001600160e01b03198116635ee0c7dd60e01b14610a5657806040516381784a5160e01b815260040161098391906156e6565b613a986145fd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b613aeb836137ea565b61016083015181158015613b0857506001600160a01b0381163314155b15613b2657604051634ace04f960e01b815260040160405180910390fd5b821580613b3e575042846101a0015164ffffffffff16115b613b8a5760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610983565b613b95816002614072565b8360200151831115613be25760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610983565b5f5f841190505f826001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c499190615441565b9050613c56816003614072565b85515f90815261012f60205260408120558115613ce0575f613c7a875f0151611bd5565b604051639d8c5ee760e01b81529091506001600160a01b03831690639d8c5ee790613cad9084908b908b90600401615895565b5f604051808303815f87803b158015613cc4575f5ffd5b505af1158015613cd6573d5f5f3e3d5ffd5b5050505050613d3a565b60405163c7a9c70d60e01b81526001600160a01b0382169063c7a9c70d90613d0c908990600401615560565b5f604051808303815f87803b158015613d23575f5ffd5b505af1158015613d35573d5f5f3e3d5ffd5b505050505b6020860151604051636a448ef160e01b815260048101919091526001600160a01b03841690636a448ef1906024015f604051808303815f87803b158015613d7f575f5ffd5b505af1158015613d91573d5f5f3e3d5ffd5b50505050855f01518661016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e87604051613dd991815260200190565b60405180910390a38415613df8578551613df39086614646565b613e03565b8551613e0390614741565b505050505050565b613e136137a4565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ac53390565b816001600160a01b0316836001600160a01b031603613ea95760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610983565b6001600160a01b038381165f8181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613f21848484613367565b613f2d84848484614415565b610a565760405162461bcd60e51b815260040161098390615828565b6060610130805461086c9061532a565b60605f613f658361483b565b60010190505f8167ffffffffffffffff811115613f8457613f84614c8d565b6040519080825280601f01601f191660200182016040528015613fae576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613fb857509392505050565b6001600160a01b038116614010576040516307a2ee8b60e11b815260040160405180910390fd5b61012d80546001600160a01b0319166001600160a01b038316179055600161012d546040516001600160a01b0390911681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200160405180910390a250565b5f61407d838361420e565b9050600181600381111561409357614093614e82565b141580156140b3575060028160038111156140b0576140b0614e82565b14155b15610b905760405163d08ef1ff60e01b815260040160405180910390fd5b5f54610100900460ff166140f75760405162461bcd60e51b815260040161098390615798565b60fb61410383826155d1565b5060fc610b9082826155d1565b5f54610100900460ff166141365760405162461bcd60e51b815260040161098390615798565b6033805460ff19169055565b61414a6137a4565b610a56565b6001600160a01b0381163b6141bc5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610983565b5f5160206159005f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6141f383614912565b5f825111806141ff5750805b15610b9057610a568383614951565b6001600160a01b0382165f90815261012e6020526040812082600381111561423857614238614e82565b8154610100900460ff16600381111561425357614253614e82565b1461427557838360405163502c9a5f60e01b8152600401610983929190615716565b5460ff169392505050565b6001600160a01b0382166142d65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610983565b5f81815260fd60205260409020546001600160a01b03161561433a5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610983565b6143475f83836001614142565b5f81815260fd60205260409020546001600160a01b0316156143ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610983565b6001600160a01b0382165f81815260fe602090815260408083208054600101905584835260fd90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f6001600160a01b0384163b1561450757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144589033908990889088906004016158c2565b6020604051808303815f875af1925050508015614492575060408051601f3d908101601f1916820190925261448f9181019061587a565b60015b6144ed573d8080156144bf576040519150601f19603f3d011682016040523d82523d5f602084013e6144c4565b606091505b5080515f036144e55760405162461bcd60e51b815260040161098390615828565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506113bf565b5060016113bf565b5f614563826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149769092919063ffffffff16565b905080515f148061458357508080602001905181019061458391906156fb565b610b905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610983565b5f6145ec83614984565b8015612f4d5750612f4d83836149b6565b60335460ff166131905760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610983565b5f61465083611bd5565b90506001600160a01b0381163b61466657505050565b61467781633ece0a8960e01b6145e2565b61468057505050565b5f6001600160a01b03821663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101879052606481018690526084016020604051808303815f875af11580156146e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061470c919061587a565b90506001600160e01b03198116636b140e9f60e11b14610a5657806040516381784a5160e01b815260040161098391906156e6565b5f61474b82611bd5565b90506001600160a01b0381163b614760575050565b61477181633ece0a8960e01b6145e2565b614779575050565b6001600160a01b03811663e8e617b7620249f0336040516001600160e01b031960e085901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303815f8887f1935050505080156147fc575060408051601f3d908101601f191682019092526147f99181019061587a565b60015b610b90576040516001600160a01b038216815282907f6ce8016f81523f240956bca9a698e643d09e84e7d0e931470b1016baf1027bd0906020016118eb565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106148795772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106148a5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106148c357662386f26fc10000830492506010015b6305f5e10083106148db576305f5e100830492506008015b61271083106148ef57612710830492506004015b60648310614901576064830492506002015b600a83106108575760010192915050565b61491b8161414f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060612f4d838360405180606001604052806027815260200161594060279139614a44565b60606113bf84845f85614ab8565b5f614996826301ffc9a760e01b6149b6565b801561085757506149af826001600160e01b03196149b6565b1592915050565b5f5f6301ffc9a760e01b836040516024016149d191906156e6565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090505f5f5f60205f8551602087018a617530fa92503d91505f519050828015614a2e575060208210155b8015614a3957505f81115b979650505050505050565b60605f5f856001600160a01b031685604051614a6091906158f4565b5f60405180830381855af49150503d805f8114614a98576040519150601f19603f3d011682016040523d82523d5f602084013e614a9d565b606091505b5091509150614aae86838387614b80565b9695505050505050565b606082471015614b195760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610983565b5f5f866001600160a01b03168587604051614b3491906158f4565b5f6040518083038185875af1925050503d805f8114614b6e576040519150601f19603f3d011682016040523d82523d5f602084013e614b73565b606091505b5091509150614a39878383875b60608315614bee5782515f03614be7576001600160a01b0385163b614be75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610983565b50816113bf565b6113bf8383815115614c035781518083602001fd5b8060405162461bcd60e51b81526004016109839190614c7b565b6001600160e01b031981168114610ca0575f5ffd5b5f60208284031215614c42575f5ffd5b8135612f4d81614c1d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f612f4d6020830184614c4d565b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff81118282101715614cc557614cc5614c8d565b60405290565b5f82601f830112614cda575f5ffd5b8135602083015f5f67ffffffffffffffff841115614cfa57614cfa614c8d565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715614d2957614d29614c8d565b604052838152905080828401871015614d40575f5ffd5b838360208301375f602085830101528094505050505092915050565b6001600160a01b0381168114610ca0575f5ffd5b5f5f5f60608486031215614d82575f5ffd5b833567ffffffffffffffff811115614d98575f5ffd5b614da486828701614ccb565b935050602084013567ffffffffffffffff811115614dc0575f5ffd5b614dcc86828701614ccb565b9250506040840135614ddd81614d5c565b809150509250925092565b5f60208284031215614df8575f5ffd5b5035919050565b5f5f60408385031215614e10575f5ffd5b8235614e1b81614d5c565b946020939093013593505050565b5f5f5f60608486031215614e3b575f5ffd5b8335614e4681614d5c565b92506020840135614e5681614d5c565b929592945050506040919091013590565b5f60208284031215614e77575f5ffd5b8135612f4d81614d5c565b634e487b7160e01b5f52602160045260245ffd5b60048110610ca057634e487b7160e01b5f52602160045260245ffd5b60208101614ebf83614e96565b91905290565b803561390481614d5c565b803564ffffffffff81168114613904575f5ffd5b5f6101c08284031215614ef5575f5ffd5b614efd614ca1565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e080840135908201526101008084013590820152610120808401359082015261014080840135908201529050614f776101608301614ec5565b610160820152614f8a6101808301614ed0565b610180820152614f9d6101a08301614ed0565b6101a082015292915050565b80356bffffffffffffffffffffffff81168114613904575f5ffd5b5f5f5f5f6103c08587031215614fd8575f5ffd5b614fe28686614ee4565b9350614ff2866101c08701614ee4565b925061038085013561500381614d5c565b91506150126103a08601614fa9565b905092959194509250565b5f5f6040838503121561502e575f5ffd5b823561503981614d5c565b9150602083013567ffffffffffffffff811115615054575f5ffd5b61506085828601614ccb565b9150509250929050565b5f6020828403121561507a575f5ffd5b813567ffffffffffffffff811115615090575f5ffd5b6113bf84828501614ccb565b60048110610ca0575f5ffd5b5f5f604083850312156150b9575f5ffd5b82356150c481614d5c565b915060208301356150d48161509c565b809150509250929050565b5f5f5f5f61022085870312156150f3575f5ffd5b6150fd8686614ee4565b93506101c085013561510e81614d5c565b92506101e085013561511f81614d5c565b91506150126102008601614fa9565b5f6101c0828403121561513f575f5ffd5b50919050565b5f6101c08284031215615156575f5ffd5b612f4d838361512e565b5f5f6101e08385031215615172575f5ffd5b61517c848461512e565b946101c0939093013593505050565b5f5f6020838503121561519c575f5ffd5b823567ffffffffffffffff8111156151b2575f5ffd5b8301601f810185136151c2575f5ffd5b803567ffffffffffffffff8111156151d8575f5ffd5b8560206101c0830284010111156151ed575f5ffd5b6020919091019590945092505050565b8015158114610ca0575f5ffd5b5f5f6040838503121561521b575f5ffd5b823561522681614d5c565b915060208301356150d4816151fd565b5f5f5f5f60808587031215615249575f5ffd5b843561525481614d5c565b9350602085013561526481614d5c565b925060408501359150606085013567ffffffffffffffff811115615286575f5ffd5b61529287828801614ccb565b91505092959194509250565b5f5f604083850312156152af575f5ffd5b82356152ba81614d5c565b91506152c860208401614fa9565b90509250929050565b5f5f604083850312156152e2575f5ffd5b82356152ed81614d5c565b915060208301356150d481614d5c565b5f5f6101e0838503121561530f575f5ffd5b615319848461512e565b91506101c08301356150d4816151fd565b600181811c9082168061533e57607f821691505b60208210810361513f57634e487b7160e01b5f52602260045260245ffd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215615451575f5ffd5b8151612f4d81614d5c565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516154e66101608401826001600160a01b03169052565b5061018081015161550161018084018264ffffffffff169052565b506101a0810151610b906101a084018264ffffffffff169052565b610380810161552b828561545c565b612f4d6101c083018461545c565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561085757610857615539565b6101c08101610857828461545c565b5f6020828403121561557f575f5ffd5b5051919050565b601f821115610b9057805f5260205f20601f840160051c810160208510156155ab5750805b601f840160051c820191505b818110156155ca575f81556001016155b7565b5050505050565b815167ffffffffffffffff8111156155eb576155eb614c8d565b6155ff816155f9845461532a565b84615586565b6020601f821160018114615631575f831561561a5750848201515b5f19600385901b1c1916600184901b1784556155ca565b5f84815260208120601f198516915b828110156156605787850151825560209485019460019092019101615640565b508482101561567d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6040810161569984614e96565b8382526156a583614e96565b8260208301529392505050565b5f602082840312156156c2575f5ffd5b612f4d82614ed0565b5f6101c082840312156156dc575f5ffd5b612f4d8383614ee4565b6001600160e01b031991909116815260200190565b5f6020828403121561570b575f5ffd5b8151612f4d816151fd565b6001600160a01b0383168152604081016156a583614e96565b6040810161573c84614e96565b9281526020015290565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561085757610857615539565b5f81518060208401855e5f93019283525090919050565b5f6113bf615792838661576d565b8461576d565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b5f6020828403121561588a575f5ffd5b8151612f4d81614c1d565b6001600160a01b038416815261020081016158b3602083018561545c565b826101e0830152949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90614aae90830184614c4d565b5f612f4d828461576d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b1da5c23d2dc17f863551361c2deb4ca7a4e8ea0ebc43276c37001fa42c1758064736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5C46 CODESIZE SUB DUP1 PUSH2 0x5C46 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x172 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x59 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9F283C9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x80 JUMPI PUSH1 0x40 MLOAD PUSH4 0x559A03CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x88 PUSH2 0x9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0xA0 MSTORE AND PUSH1 0xC0 MSTORE PUSH2 0x1AA JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x10A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x159 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x183 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x18E DUP2 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x19F DUP2 PUSH2 0x15B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x59BC PUSH2 0x28A PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x749 ADD MSTORE DUP2 DUP2 PUSH2 0x10C0 ADD MSTORE DUP2 DUP2 PUSH2 0x1174 ADD MSTORE DUP2 DUP2 PUSH2 0x1228 ADD MSTORE DUP2 DUP2 PUSH2 0x14D0 ADD MSTORE DUP2 DUP2 PUSH2 0x1542 ADD MSTORE DUP2 DUP2 PUSH2 0x15A3 ADD MSTORE DUP2 DUP2 PUSH2 0x1DEA ADD MSTORE DUP2 DUP2 PUSH2 0x1E93 ADD MSTORE DUP2 DUP2 PUSH2 0x1F3A ADD MSTORE DUP2 DUP2 PUSH2 0x1F79 ADD MSTORE PUSH2 0x20A5 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x5DB ADD MSTORE DUP2 DUP2 PUSH2 0x13ED ADD MSTORE DUP2 DUP2 PUSH2 0x182B ADD MSTORE DUP2 DUP2 PUSH2 0x191D ADD MSTORE DUP2 DUP2 PUSH2 0x1A33 ADD MSTORE DUP2 DUP2 PUSH2 0x1ACF ADD MSTORE DUP2 DUP2 PUSH2 0x21B5 ADD MSTORE DUP2 DUP2 PUSH2 0x2737 ADD MSTORE DUP2 DUP2 PUSH2 0x2D8C ADD MSTORE DUP2 DUP2 PUSH2 0x2FCF ADD MSTORE DUP2 DUP2 PUSH2 0x34FC ADD MSTORE PUSH2 0x358B ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0xBD0 ADD MSTORE DUP2 DUP2 PUSH2 0xC10 ADD MSTORE DUP2 DUP2 PUSH2 0x168E ADD MSTORE DUP2 DUP2 PUSH2 0x16CE ADD MSTORE PUSH2 0x175B ADD MSTORE PUSH2 0x59BC PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x254 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6769A76F GT PUSH2 0x13F JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0xB3 JUMPI DUP1 PUSH4 0xE5A6B10F GT PUSH2 0x78 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x73B JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0xF0F44260 EQ PUSH2 0x7B5 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0xF67B2BAD EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x813 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x6AB JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0xC016F88A EQ PUSH2 0x6FD JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x71C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x71907F17 GT PUSH2 0x104 JUMPI DUP1 PUSH4 0x71907F17 EQ PUSH2 0x5CD JUMPI DUP1 PUSH4 0x792DA09E EQ PUSH2 0x5FF JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x64A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x678 JUMPI DUP1 PUSH4 0x8C916D46 EQ PUSH2 0x68C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6769A76F EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0x6AF6F1EF EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x6B8734E7 EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x6F86C897 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x52D1902D GT PUSH2 0x19B JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x5FCBF445 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x4F5 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x513 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x4A47A3E0 EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x479 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x21C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x24EA54F4 EQ PUSH2 0x343 JUMPI DUP1 PUSH4 0x33D6157A EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0x3ED7C1AE EQ PUSH2 0x3D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x305 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x4C32 JUMP JUMPDEST PUSH2 0x832 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x297 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x85D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x4C7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x2C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D70 JUMP JUMPDEST PUSH2 0x8ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0xA5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x310 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0xA81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x4E29 JUMP JUMPDEST PUSH2 0xB95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3A9 PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x4EB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0xBC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x3EF CALLDATASIZE PUSH1 0x4 PUSH2 0x4FC4 JUMP JUMPDEST PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x13C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x413 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E29 JUMP JUMPDEST PUSH2 0x1482 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0x149C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 DUP2 JUMP JUMPDEST PUSH2 0x2CC PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x501D JUMP JUMPDEST PUSH2 0x1684 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x497 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x174F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x4BA CALLDATASIZE PUSH1 0x4 PUSH2 0x506A JUMP JUMPDEST PUSH2 0x1800 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x50A8 JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12D SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x52D CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0x1BD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x54C CALLDATASIZE PUSH1 0x4 PUSH2 0x50DF JUMP JUMPDEST PUSH2 0x1C34 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x5145 JUMP JUMPDEST PUSH2 0x211A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x50A8 JUMP JUMPDEST PUSH2 0x219D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x5A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x271F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x5C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x2CCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x636 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x645 CALLDATASIZE PUSH1 0x4 PUSH2 0x5160 JUMP JUMPDEST PUSH2 0x2D53 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x683 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x2D74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x518B JUMP JUMPDEST PUSH2 0x2E14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x2ED5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x520A JUMP JUMPDEST PUSH2 0x2EE4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0x2EEF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x708 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x717 CALLDATASIZE PUSH1 0x4 PUSH2 0x529E JUMP JUMPDEST PUSH2 0x2F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x727 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x736 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0x2F54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x778 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x787 CALLDATASIZE PUSH1 0x4 PUSH2 0x52D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x2FB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x7EE CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0x3058 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x82D CALLDATASIZE PUSH1 0x4 PUSH2 0x52FD JUMP JUMPDEST PUSH2 0x30EA JUMP JUMPDEST PUSH0 PUSH2 0x83C DUP3 PUSH2 0x311B JUMP JUMPDEST DUP1 PUSH2 0x857 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x19C676F PUSH1 0xE3 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x898 SWAP1 PUSH2 0x532A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8E3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8BA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8E3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8C6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x90B JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x924 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x924 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x9AD JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST DUP4 MLOAD PUSH0 SUB PUSH2 0x9CD JUMPI PUSH1 0x40 MLOAD PUSH3 0xBEEFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH0 SUB PUSH2 0x9EE JUMPI PUSH1 0x40 MLOAD PUSH4 0x43B47BCB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9F6 PUSH2 0x316A JUMP JUMPDEST PUSH2 0xA00 DUP5 DUP5 PUSH2 0x3192 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0x31C2 JUMP JUMPDEST PUSH2 0xA11 DUP3 PUSH2 0x31F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA56 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA66 DUP3 PUSH2 0x321F JUMP JUMPDEST POP PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xA8B DUP3 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xAF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB14 DUP2 CALLER PUSH2 0x787 JUMP JUMPDEST PUSH2 0xB86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 PUSH2 0x327D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB9F CALLER DUP3 PUSH2 0x32EA JUMP JUMPDEST PUSH2 0xBBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x535C JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xC0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53A9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC56 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53F5 JUMP JUMPDEST PUSH2 0xC85 DUP2 PUSH2 0x34D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xCA0 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xCAC PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0xCB5 DUP6 PUSH2 0x37EA JUMP JUMPDEST PUSH2 0x160 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xCE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCEF DUP2 PUSH1 0x2 PUSH2 0x3850 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0xD5D DUP2 PUSH1 0x3 PUSH2 0x3850 JUMP JUMPDEST TIMESTAMP PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST DUP6 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND EQ PUSH2 0xE35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x426F746820706F6C6963696573206D7573742068617665207468652073616D65 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x207374617274696E672064617465 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD GT ISZERO DUP1 ISZERO PUSH2 0xE55 JUMPI POP DUP6 PUSH1 0xC0 ADD MLOAD DUP8 PUSH1 0xC0 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE69 JUMPI POP DUP6 PUSH1 0xE0 ADD MLOAD DUP8 PUSH1 0xE0 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE7F JUMPI POP DUP6 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x120 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE95 JUMPI POP DUP6 PUSH2 0x140 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEA9 JUMPI POP DUP6 PUSH1 0x60 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEBD JUMPI POP DUP6 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0x80 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xED3 JUMPI POP DUP6 PUSH2 0x100 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEF7 JUMPI POP DUP6 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xF19 JUMPI POP DUP6 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xF81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E657720706F6C696379206D7573742062652067726561746572206F72206571 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x75616C207468616E206F6C6420706F6C696379 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xF8B DUP3 DUP6 PUSH2 0x2F21 JUMP JUMPDEST DUP1 DUP8 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x506F6C69637920616C726561647920657869737473 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xFEB DUP7 PUSH2 0x388B JUMP JUMPDEST DUP7 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE DUP8 MLOAD PUSH2 0x100A SWAP1 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH2 0x1028 DUP2 DUP9 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x3909 JUMP JUMPDEST DUP8 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH4 0x55C1DA5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xAB83B4BE SWAP1 PUSH2 0x1069 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x551C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1080 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1092 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 DUP9 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x10AB SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP9 DUP6 DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x140 ADD MLOAD DUP9 PUSH2 0x140 ADD MLOAD PUSH2 0x10FE SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x119C JUMPI PUSH2 0x119C DUP8 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 SWAP1 DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x120 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x11FA JUMPI PUSH2 0x11FA DUP8 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST DUP9 PUSH1 0xE0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x120E SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1253 JUMPI PUSH2 0x12D SLOAD PUSH2 0x1253 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP2 DUP11 SWAP2 AND DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x100 ADD MLOAD PUSH2 0x1269 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x12EB JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D5 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1330 JUMPI PUSH2 0x1330 DUP8 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP10 PUSH1 0x40 MLOAD PUSH2 0x1369 SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 MLOAD DUP10 MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0x4FF4AC703CB703B7EA535D47E65E64B4CABF11B3E2EB41F152DAB17971953ADD SWAP1 PUSH0 SWAP1 LOG4 DUP9 MLOAD DUP9 MLOAD PUSH2 0x13B6 SWAP2 SWAP1 PUSH2 0x3995 JUMP JUMPDEST POP POP DUP6 MLOAD SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1460 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147E PUSH2 0x3A90 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x2EEF JUMP JUMPDEST PUSH2 0x14A4 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x14AF DUP3 PUSH1 0x1 PUSH2 0x3850 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1517 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x153B SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST SWAP1 POP PUSH2 0x1572 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP6 DUP6 PUSH2 0x393B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH4 0x47E7EF24 CALLER PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x160E SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH2 0x1618 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1660 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x16CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53A9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1714 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x173A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53F5 JUMP JUMPDEST PUSH2 0x1743 DUP3 PUSH2 0x34D6 JUMP JUMPDEST PUSH2 0x147E DUP3 DUP3 PUSH1 0x1 PUSH2 0x363A JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x17EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1895 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH2 0x130 SWAP1 DUP2 PUSH2 0x18BB SWAP2 SWAP1 PUSH2 0x55D1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD CALLER DUP2 MSTORE PUSH1 0x4 SWAP1 PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1990 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 POP DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x19D5 JUMPI PUSH2 0x19D5 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x19F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7D918563 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A07 JUMPI PUSH2 0x1A07 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 PUSH2 0x1A24 JUMPI POP PUSH1 0x2 DUP5 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A22 JUMPI PUSH2 0x1A22 PUSH2 0x4E82 JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AAA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ABC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B46 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B58 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP1 SLOAD DUP5 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1B7B JUMPI PUSH2 0x1B7B PUSH2 0x4E82 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF SWAP2 PUSH2 0x1BC6 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP9 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x857 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x1C3D PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x160 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1C6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C77 DUP2 PUSH1 0x2 PUSH2 0x3850 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CD8 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0x1CE5 DUP2 PUSH1 0x3 PUSH2 0x3850 JUMP JUMPDEST PUSH2 0x1CEF DUP3 DUP6 PUSH2 0x2F21 JUMP JUMPDEST DUP1 DUP9 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x506F6C69637920616C726561647920657869737473 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x1D4F DUP8 PUSH2 0x388B JUMP JUMPDEST DUP8 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP10 MLOAD DUP4 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP4 MSTORE SWAP1 DUP2 MSTORE PUSH2 0x1D7E SWAP2 DUP8 SWAP2 PUSH2 0x3909 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE3638EA3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xE3638EA3 SWAP1 PUSH2 0x1DAA SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x5560 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DD3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0xC0 DUP9 ADD MLOAD PUSH2 0x1E14 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 DUP9 SWAP1 DUP5 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x140 DUP8 ADD MLOAD ISZERO PUSH2 0x1EBB JUMPI PUSH2 0x1EBB DUP7 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E83 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x140 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x120 DUP8 ADD MLOAD ISZERO PUSH2 0x1F62 JUMPI PUSH2 0x1F62 DUP7 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F2A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x120 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x12D SLOAD PUSH1 0xE0 DUP9 ADD MLOAD PUSH2 0x1FA7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP3 DUP11 SWAP3 SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH0 DUP8 PUSH2 0x100 ADD MLOAD GT DUP1 ISZERO PUSH2 0x202C JUMPI POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2016 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x20CD JUMPI PUSH2 0x20CD DUP7 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2071 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2095 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x100 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP9 PUSH1 0x40 MLOAD PUSH2 0x2106 SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP4 MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2122 PUSH2 0x37A4 JUMP JUMPDEST TIMESTAMP PUSH2 0x2135 PUSH2 0x1C0 DUP4 ADD PUSH2 0x1A0 DUP5 ADD PUSH2 0x56B2 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x2183 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141BDB1A58DE481B9BDD08195E1C1A5C9959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xCA0 PUSH2 0x2195 CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x56CB JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x221F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 POP DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2264 JUMPI PUSH2 0x2264 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x2282 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF9A96F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2313 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFDEE243 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2327 JUMPI PUSH2 0x2327 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x23A3 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x2362 SWAP1 PUSH4 0x90770621 PUSH1 0xE0 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x237D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A1 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x2439 JUMPI POP PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23BD JUMPI PUSH2 0x23BD PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x2439 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x23F8 SWAP1 PUSH4 0xE725329 PUSH1 0xE1 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2413 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2437 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x24CF JUMPI POP PUSH1 0x2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2453 JUMPI PUSH2 0x2453 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x24CF JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x248E SWAP1 PUSH4 0xDA40804F PUSH1 0xE0 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24CD SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x24F1 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x502C9A5F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x5716 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT DUP3 AND DUP2 OR DUP4 SSTORE DUP5 SWAP2 DUP4 SWAP2 PUSH2 0xFFFF NOT SWAP1 SWAP2 AND OR PUSH2 0x100 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x251F JUMPI PUSH2 0x251F PUSH2 0x4E82 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2538 JUMPI PUSH2 0x2538 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x26D5 JUMPI PUSH0 DUP5 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x257E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A2 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x260A JUMPI PUSH1 0x40 MLOAD PUSH4 0x38EA38A7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xE3A8E29C SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2605 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2646 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x266A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38EA38A7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xE3A8E29C SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF DUP5 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x2711 SWAP3 SWAP2 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27B3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x27E7 JUMPI PUSH2 0x27E7 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5C92B239 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2822 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x291D JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2863 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2887 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2918 JUMPI DUP1 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28FD SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1D0EC0AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x572F JUMP JUMPDEST PUSH2 0x2C5D JUMP JUMPDEST PUSH1 0x2 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x293A JUMPI PUSH2 0x293A PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x29F1 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF8BF25 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299F SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2918 JUMPI DUP1 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF8BF25 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2A0E JUMPI PUSH2 0x2A0E PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x2C5D JUMPI PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x26CCBD22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A53 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A77 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2AC9 JUMPI DUP2 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x26CCBD22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B06 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B2A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x2B92 JUMPI PUSH1 0x40 MLOAD PUSH4 0x76C7FC55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x76C7FC55 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B8D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BF2 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x2C5A JUMPI PUSH1 0x40 MLOAD PUSH4 0x76C7FC55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x76C7FC55 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C43 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF SWAP2 PUSH2 0x2CA3 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH0 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2D38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2D5B PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x147E PUSH2 0x2D6D CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x56CB JUMP JUMPDEST DUP3 PUSH0 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DF6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E08 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCA0 PUSH2 0x3E0B JUMP JUMPDEST PUSH2 0x2E1C PUSH2 0x37A4 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB90 JUMPI TIMESTAMP DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x2E39 JUMPI PUSH2 0x2E39 PUSH2 0x5746 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C0 MUL ADD PUSH2 0x1A0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2E53 SWAP2 SWAP1 PUSH2 0x56B2 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x2EA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141BDB1A58DE481B9BDD08195E1C1A5C9959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2ECD DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x2EB6 JUMPI PUSH2 0x2EB6 PUSH2 0x5746 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C0 MUL ADD DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2195 SWAP2 SWAP1 PUSH2 0x56CB JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2E1E JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFC DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST PUSH2 0x147E CALLER DUP4 DUP4 PUSH2 0x3E48 JUMP JUMPDEST PUSH2 0x2EF9 CALLER DUP4 PUSH2 0x32EA JUMP JUMPDEST PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x535C JUMP JUMPDEST PUSH2 0xA56 DUP5 DUP5 DUP5 DUP5 PUSH2 0x3F16 JUMP JUMPDEST PUSH0 PUSH2 0x2F4D PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP7 SWAP1 SHL AND PUSH2 0x575A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F5F DUP3 PUSH2 0x321F JUMP JUMPDEST PUSH0 PUSH2 0x2F68 PUSH2 0x3F49 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD GT PUSH2 0x2F86 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x2F4D JUMP JUMPDEST DUP1 PUSH2 0x2F90 DUP5 PUSH2 0x3F59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FA1 SWAP3 SWAP2 SWAP1 PUSH2 0x5784 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3039 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x304B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147E DUP3 PUSH2 0x3FE9 JUMP JUMPDEST PUSH0 PUSH2 0x3061 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x306C DUP4 PUSH1 0x1 PUSH2 0x4072 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH4 0xF3FEF3A3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F4D SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH2 0x30F2 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x147E PUSH2 0x3104 CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x56CB JUMP JUMPDEST DUP3 PUSH2 0x310F JUMPI PUSH0 PUSH2 0x3115 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD CALLDATALOAD JUMPDEST PUSH0 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x314B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x857 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x857 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0x147E DUP3 DUP3 PUSH2 0x40D1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0x3190 PUSH2 0x4110 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3216 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0xCA0 DUP2 PUSH2 0x3FE9 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x32B1 DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x32F5 DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x333C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x13BF JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3355 DUP5 PUSH2 0xA5C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x337A DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x33A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x57E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x340F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x4142 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3422 DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x57E3 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0xFE DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0xFD SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x356F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3581 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 DUP4 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35EF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3613 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF130817 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x366D JUMPI PUSH2 0xB90 DUP4 PUSH2 0x414F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x36C7 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x36C4 SWAP2 DUP2 ADD SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x372A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x3798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH2 0x41EA JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3811 JUMPI POP DUP1 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x380F DUP3 PUSH2 0x388B JUMP JUMPDEST EQ JUMPDEST PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x141BDB1A58DE481B9BDD08199BDD5B99 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x385C DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x386D JUMPI PUSH2 0x386D PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x147E JUMPI PUSH1 0x40 MLOAD PUSH4 0x422F25F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x389D SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP1 POP DUP1 PUSH2 0x3904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963793A20686173682063616E6E6F7420626520300000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3913 DUP4 DUP4 PUSH2 0x4280 JUMP JUMPDEST PUSH2 0x391F PUSH0 DUP5 DUP5 DUP5 PUSH2 0x4415 JUMP JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xA56 SWAP1 DUP6 SWAP1 PUSH2 0x450F JUMP JUMPDEST PUSH0 PUSH2 0x399F DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x39B5 JUMPI POP POP POP JUMP JUMPDEST PUSH2 0x39C6 DUP2 PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x39CF JUMPI POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH4 0x5EE0C7DD CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A37 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A5B SWAP2 SWAP1 PUSH2 0x587A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL EQ PUSH2 0xA56 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x81784A51 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH2 0x3A98 PUSH2 0x45FD JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x3AEB DUP4 PUSH2 0x37EA JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MLOAD DUP2 ISZERO DUP1 ISZERO PUSH2 0x3B08 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x3B26 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B3E JUMPI POP TIMESTAMP DUP5 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT JUMPDEST PUSH2 0x3B8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420706179206578706972656420706F6C6963790000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x3B95 DUP2 PUSH1 0x2 PUSH2 0x4072 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 GT ISZERO PUSH2 0x3BE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1C185E5BDD5D080F881C1BDB1A58DE4B9C185E5BDD5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH0 DUP5 GT SWAP1 POP PUSH0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C25 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C49 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0x3C56 DUP2 PUSH1 0x3 PUSH2 0x4072 JUMP JUMPDEST DUP6 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE DUP2 ISZERO PUSH2 0x3CE0 JUMPI PUSH0 PUSH2 0x3C7A DUP8 PUSH0 ADD MLOAD PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9D8C5EE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x9D8C5EE7 SWAP1 PUSH2 0x3CAD SWAP1 DUP5 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5895 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3CC4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3CD6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0x3D3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC7A9C70D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC7A9C70D SWAP1 PUSH2 0x3D0C SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5560 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D35 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x6A448EF1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x6A448EF1 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D7F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D91 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP6 PUSH0 ADD MLOAD DUP7 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54F4A270EA08F88DC23B2520D6B063FECB24D956C4496F447926D736338F545E DUP8 PUSH1 0x40 MLOAD PUSH2 0x3DD9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP5 ISZERO PUSH2 0x3DF8 JUMPI DUP6 MLOAD PUSH2 0x3DF3 SWAP1 DUP7 PUSH2 0x4646 JUMP JUMPDEST PUSH2 0x3E03 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3E03 SWAP1 PUSH2 0x4741 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3E13 PUSH2 0x37A4 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x3AC5 CALLER SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x3EA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3F21 DUP5 DUP5 DUP5 PUSH2 0x3367 JUMP JUMPDEST PUSH2 0x3F2D DUP5 DUP5 DUP5 DUP5 PUSH2 0x4415 JUMP JUMPDEST PUSH2 0xA56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130 DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x3F65 DUP4 PUSH2 0x483B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F84 JUMPI PUSH2 0x3F84 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3FAE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x3FB8 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4010 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7A2EE8B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x12D SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x407D DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4093 JUMPI PUSH2 0x4093 PUSH2 0x4E82 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x40B3 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x40B0 JUMPI PUSH2 0x40B0 PUSH2 0x4E82 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD08EF1FF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x4103 DUP4 DUP3 PUSH2 0x55D1 JUMP JUMPDEST POP PUSH1 0xFC PUSH2 0xB90 DUP3 DUP3 PUSH2 0x55D1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x414A PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x41BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x41F3 DUP4 PUSH2 0x4912 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x41FF JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB90 JUMPI PUSH2 0xA56 DUP4 DUP4 PUSH2 0x4951 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4238 JUMPI PUSH2 0x4238 PUSH2 0x4E82 JUMP JUMPDEST DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4253 JUMPI PUSH2 0x4253 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x4275 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x502C9A5F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x5716 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x42D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x433A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x4347 PUSH0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x4142 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x43AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0xFD SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x4507 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x4458 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x58C2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x4492 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x448F SWAP2 DUP2 ADD SWAP1 PUSH2 0x587A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x44ED JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x44BF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x44C4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH0 SUB PUSH2 0x44E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x13BF JUMP JUMPDEST POP PUSH1 0x1 PUSH2 0x13BF JUMP JUMPDEST PUSH0 PUSH2 0x4563 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4976 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x4583 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4583 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x45EC DUP4 PUSH2 0x4984 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F4D JUMPI POP PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x49B6 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x4650 DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x4666 JUMPI POP POP POP JUMP JUMPDEST PUSH2 0x4677 DUP2 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x4680 JUMPI POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH4 0xD6281D3E CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46E8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x470C SWAP2 SWAP1 PUSH2 0x587A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0x6B140E9F PUSH1 0xE1 SHL EQ PUSH2 0xA56 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x81784A51 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH0 PUSH2 0x474B DUP3 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x4760 JUMPI POP POP JUMP JUMPDEST PUSH2 0x4771 DUP2 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x4779 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE8E617B7 PUSH3 0x249F0 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP9 DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x47FC JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x47F9 SWAP2 DUP2 ADD SWAP1 PUSH2 0x587A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE DUP3 SWAP1 PUSH32 0x6CE8016F81523F240956BCA9A698E643D09E84E7D0E931470B1016BAF1027BD0 SWAP1 PUSH1 0x20 ADD PUSH2 0x18EB JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x4879 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x48A5 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x48C3 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x48DB JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x48EF JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4901 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x857 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x491B DUP2 PUSH2 0x414F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F4D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5940 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x4A44 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x13BF DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4AB8 JUMP JUMPDEST PUSH0 PUSH2 0x4996 DUP3 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x49B6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x857 JUMPI POP PUSH2 0x49AF DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH2 0x49B6 JUMP JUMPDEST ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP4 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x49D1 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH0 PUSH0 PUSH0 PUSH1 0x20 PUSH0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x4A2E JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4A39 JUMPI POP PUSH0 DUP2 GT JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4A60 SWAP2 SWAP1 PUSH2 0x58F4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4A98 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4A9D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4AAE DUP7 DUP4 DUP4 DUP8 PUSH2 0x4B80 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x4B19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B34 SWAP2 SWAP1 PUSH2 0x58F4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4B6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4B73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4A39 DUP8 DUP4 DUP4 DUP8 JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4BEE JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4BE7 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4BE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST POP DUP2 PUSH2 0x13BF JUMP JUMPDEST PUSH2 0x13BF DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x4C03 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x4C7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C42 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F4D DUP2 PUSH2 0x4C1D JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x2F4D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4C4D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4CC5 JUMPI PUSH2 0x4CC5 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4CDA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4CFA JUMPI PUSH2 0x4CFA PUSH2 0x4C8D JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4D29 JUMPI PUSH2 0x4D29 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x4D40 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4D82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4D98 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4DA4 DUP7 DUP3 DUP8 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4DC0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4DCC DUP7 DUP3 DUP8 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4DDD DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4DF8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E10 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E1B DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4E3B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4E46 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4E56 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E77 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F4D DUP2 PUSH2 0x4D5C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xCA0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4EBF DUP4 PUSH2 0x4E96 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3904 DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3904 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4EF5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EFD PUSH2 0x4CA1 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x4F77 PUSH2 0x160 DUP4 ADD PUSH2 0x4EC5 JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x4F8A PUSH2 0x180 DUP4 ADD PUSH2 0x4ED0 JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x4F9D PUSH2 0x1A0 DUP4 ADD PUSH2 0x4ED0 JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3904 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4FD8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4FE2 DUP7 DUP7 PUSH2 0x4EE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x4FF2 DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0x4EE4 JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0x5003 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x5012 PUSH2 0x3A0 DUP7 ADD PUSH2 0x4FA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x502E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5039 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5054 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5060 DUP6 DUP3 DUP7 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x507A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5090 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x4CCB JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x50B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x50C4 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x509C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x50F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x50FD DUP7 DUP7 PUSH2 0x4EE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0x510E DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0x511F DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x5012 PUSH2 0x200 DUP7 ADD PUSH2 0x4FA9 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x513F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5156 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x512E JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5172 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x517C DUP5 DUP5 PUSH2 0x512E JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x519C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x51C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP6 PUSH1 0x20 PUSH2 0x1C0 DUP4 MUL DUP5 ADD ADD GT ISZERO PUSH2 0x51ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x521B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5226 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5249 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5254 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x5264 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5286 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5292 DUP8 DUP3 DUP9 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x52BA DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x52C8 PUSH1 0x20 DUP5 ADD PUSH2 0x4FA9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x52ED DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x4D5C JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x530F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5319 DUP5 DUP5 PUSH2 0x512E JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x533E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x513F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x54E6 PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x5501 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0xB90 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x380 DUP2 ADD PUSH2 0x552B DUP3 DUP6 PUSH2 0x545C JUMP JUMPDEST PUSH2 0x2F4D PUSH2 0x1C0 DUP4 ADD DUP5 PUSH2 0x545C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x857 PUSH2 0x5539 JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x857 DUP3 DUP5 PUSH2 0x545C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x557F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB90 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x55AB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x55CA JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x55B7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55EB JUMPI PUSH2 0x55EB PUSH2 0x4C8D JUMP JUMPDEST PUSH2 0x55FF DUP2 PUSH2 0x55F9 DUP5 SLOAD PUSH2 0x532A JUMP JUMPDEST DUP5 PUSH2 0x5586 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5631 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x561A JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x55CA JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5660 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5640 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x567D JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x5699 DUP5 PUSH2 0x4E96 JUMP JUMPDEST DUP4 DUP3 MSTORE PUSH2 0x56A5 DUP4 PUSH2 0x4E96 JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP3 PUSH2 0x4ED0 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56DC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x4EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x570B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x56A5 DUP4 PUSH2 0x4E96 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x573C DUP5 PUSH2 0x4E96 JUMP JUMPDEST SWAP3 DUP2 MSTORE PUSH1 0x20 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x857 PUSH2 0x5539 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x13BF PUSH2 0x5792 DUP4 DUP7 PUSH2 0x576D JUMP JUMPDEST DUP5 PUSH2 0x576D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x588A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x4C1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH2 0x200 DUP2 ADD PUSH2 0x58B3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x545C JUMP JUMPDEST DUP3 PUSH2 0x1E0 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x4AAE SWAP1 DUP4 ADD DUP5 PUSH2 0x4C4D JUMP JUMPDEST PUSH0 PUSH2 0x2F4D DUP3 DUP5 PUSH2 0x576D JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65645543 TSTORE 0xD2 PUSH2 0xA4B9 0xB3 CALLDATASIZE BLOBHASH PUSH4 0xF7738A7A PUSH7 0x2AD9C84396D64B 0xE3 CALLDATASIZE MSTORE DUP5 0xBB PUSH32 0xA5041A2646970667358221220B1DA5C23D2DC17F863551361C2DEB4CA7A4E8E LOG0 0xEB 0xC4 ORIGIN PUSH23 0xC37001FA42C1758064736F6C634300081C003300000000 ","sourceMap":"2099:29143:56:-:0;;;1198:4:7;1155:48;;10251:275:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10323:30:56;;10319:57;;10362:14;;-1:-1:-1;;;10362:14:56;;;;;;;;;;;10319:57;-1:-1:-1;;;;;10386:32:56;;10382:61;;10427:16;;-1:-1:-1;;;10427:16:56;;;;;;;;;;;10382:61;10449:22;:20;:22::i;:::-;-1:-1:-1;;;;;10477:17:56;;;;;10500:21;;;2099:29143;;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;837:2:88;5998:66:6;;;819:21:88;876:2;856:18;;;849:30;915:34;895:18;;;888:62;-1:-1:-1;;;966:18:88;;;959:37;1013:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1185:36:88;;;6174:28:6;;1173:2:88;1158:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:147:88:-;-1:-1:-1;;;;;105:31:88;;95:42;;85:70;;151:1;148;141:12;85:70;14:147;:::o;166:464::-;292:6;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;401:9;395:16;420:47;461:5;420:47;:::i;:::-;536:2;521:18;;515:25;486:5;;-1:-1:-1;549:49:88;515:25;549:49;:::i;:::-;617:7;607:17;;;166:464;;;;;:::o;1043:184::-;2099:29143:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GUARDIAN_ROLE_15500":{"entryPoint":null,"id":15500,"parameterSlots":0,"returnSlots":0},"@LEVEL1_ROLE_15505":{"entryPoint":null,"id":15505,"parameterSlots":0,"returnSlots":0},"@LEVEL2_ROLE_15510":{"entryPoint":null,"id":15510,"parameterSlots":0,"returnSlots":0},"@__ERC721_init_1275":{"entryPoint":12690,"id":1275,"parameterSlots":2,"returnSlots":0},"@__ERC721_init_unchained_1293":{"entryPoint":16593,"id":1293,"parameterSlots":2,"returnSlots":0},"@__Pausable_init_1113":{"entryPoint":12738,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":16656,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPool_init_unchained_15813":{"entryPoint":12784,"id":15813,"parameterSlots":1,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":12650,"id":1008,"parameterSlots":0,"returnSlots":0},"@_afterTokenTransfer_2141":{"entryPoint":null,"id":2141,"parameterSlots":4,"returnSlots":0},"@_approve_2007":{"entryPoint":12925,"id":2007,"parameterSlots":2,"returnSlots":0},"@_authorizeUpgrade_15840":{"entryPoint":13526,"id":15840,"parameterSlots":1,"returnSlots":0},"@_baseURI_17634":{"entryPoint":16201,"id":17634,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_17680":{"entryPoint":16706,"id":17680,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_2128":{"entryPoint":null,"id":2128,"parameterSlots":4,"returnSlots":0},"@_callOptionalReturn_6429":{"entryPoint":17679,"id":6429,"parameterSlots":2,"returnSlots":0},"@_checkOnERC721Received_2115":{"entryPoint":17429,"id":2115,"parameterSlots":4,"returnSlots":1},"@_componentStatus_16422":{"entryPoint":16910,"id":16422,"parameterSlots":2,"returnSlots":1},"@_exists_1676":{"entryPoint":null,"id":1676,"parameterSlots":1,"returnSlots":1},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_isApprovedOrOwner_1710":{"entryPoint":13034,"id":1710,"parameterSlots":2,"returnSlots":1},"@_mint_1831":{"entryPoint":17024,"id":1831,"parameterSlots":2,"returnSlots":0},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_notifyExpiration_17565":{"entryPoint":18241,"id":17565,"parameterSlots":1,"returnSlots":0},"@_notifyPayout_17503":{"entryPoint":17990,"id":17503,"parameterSlots":2,"returnSlots":0},"@_notifyReplacement_17624":{"entryPoint":14741,"id":17624,"parameterSlots":2,"returnSlots":0},"@_ownerOf_1658":{"entryPoint":null,"id":1658,"parameterSlots":1,"returnSlots":1},"@_pause_1187":{"entryPoint":15883,"id":1187,"parameterSlots":0,"returnSlots":0},"@_requireCompActiveOrDeprecated_16472":{"entryPoint":16498,"id":16472,"parameterSlots":2,"returnSlots":0},"@_requireCompActive_16442":{"entryPoint":14416,"id":16442,"parameterSlots":2,"returnSlots":0},"@_requireMinted_2053":{"entryPoint":12831,"id":2053,"parameterSlots":1,"returnSlots":0},"@_requireNotPaused_1160":{"entryPoint":14244,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":17917,"id":1171,"parameterSlots":0,"returnSlots":0},"@_resolvePolicy_17444":{"entryPoint":15074,"id":17444,"parameterSlots":3,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_revert_6941":{"entryPoint":null,"id":6941,"parameterSlots":2,"returnSlots":0},"@_safeMint_1754":{"entryPoint":14601,"id":1754,"parameterSlots":3,"returnSlots":0},"@_safeTransfer_1645":{"entryPoint":16150,"id":1645,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_2039":{"entryPoint":15944,"id":2039,"parameterSlots":3,"returnSlots":0},"@_setImplementation_510":{"entryPoint":16719,"id":510,"parameterSlots":1,"returnSlots":0},"@_setTreasury_15910":{"entryPoint":16361,"id":15910,"parameterSlots":1,"returnSlots":0},"@_transfer_1983":{"entryPoint":13159,"id":1983,"parameterSlots":3,"returnSlots":0},"@_unpause_1203":{"entryPoint":14992,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":13882,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":16874,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":18706,"id":525,"parameterSlots":1,"returnSlots":0},"@_validatePolicy_17128":{"entryPoint":14314,"id":17128,"parameterSlots":1,"returnSlots":0},"@access_15873":{"entryPoint":null,"id":15873,"parameterSlots":0,"returnSlots":1},"@addComponent_16112":{"entryPoint":8605,"id":16112,"parameterSlots":2,"returnSlots":0},"@approve_1487":{"entryPoint":2689,"id":1487,"parameterSlots":2,"returnSlots":0},"@balanceOf_1348":{"entryPoint":11471,"id":1348,"parameterSlots":1,"returnSlots":1},"@changeComponentStatus_16370":{"entryPoint":6391,"id":16370,"parameterSlots":2,"returnSlots":0},"@currency_15883":{"entryPoint":null,"id":15883,"parameterSlots":0,"returnSlots":1},"@deposit_16531":{"entryPoint":5276,"id":16531,"parameterSlots":2,"returnSlots":0},"@expirePolicies_17222":{"entryPoint":11796,"id":17222,"parameterSlots":2,"returnSlots":0},"@expirePolicy_17180":{"entryPoint":8474,"id":17180,"parameterSlots":1,"returnSlots":0},"@functionCallWithValue_6766":{"entryPoint":19128,"id":6766,"parameterSlots":4,"returnSlots":1},"@functionCall_6702":{"entryPoint":18806,"id":6702,"parameterSlots":3,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":18769,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":19012,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getApproved_1505":{"entryPoint":2652,"id":1505,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getComponentStatus_16386":{"entryPoint":null,"id":16386,"parameterSlots":1,"returnSlots":1},"@getPolicyHash_17293":{"entryPoint":null,"id":17293,"parameterSlots":1,"returnSlots":1},"@hash_15438":{"entryPoint":14475,"id":15438,"parameterSlots":1,"returnSlots":1},"@initialize_15779":{"entryPoint":2285,"id":15779,"parameterSlots":3,"returnSlots":0},"@isActive_17280":{"entryPoint":null,"id":17280,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_1540":{"entryPoint":null,"id":1540,"parameterSlots":2,"returnSlots":1},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@isContract_6630":{"entryPoint":null,"id":6630,"parameterSlots":1,"returnSlots":1},"@log10_3803":{"entryPoint":18491,"id":3803,"parameterSlots":1,"returnSlots":1},"@makePolicyId_17155":{"entryPoint":12065,"id":17155,"parameterSlots":2,"returnSlots":1},"@name_1386":{"entryPoint":2141,"id":1386,"parameterSlots":0,"returnSlots":1},"@newPolicy_16754":{"entryPoint":7220,"id":16754,"parameterSlots":4,"returnSlots":1},"@ownerOf_1376":{"entryPoint":7125,"id":1376,"parameterSlots":1,"returnSlots":1},"@pause_15851":{"entryPoint":11636,"id":15851,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":5967,"id":1026,"parameterSlots":0,"returnSlots":1},"@removeComponent_16298":{"entryPoint":10015,"id":16298,"parameterSlots":1,"returnSlots":0},"@replacePolicy_17104":{"entryPoint":3235,"id":17104,"parameterSlots":4,"returnSlots":1},"@resolvePolicyFullPayout_17262":{"entryPoint":12522,"id":17262,"parameterSlots":2,"returnSlots":0},"@resolvePolicy_17240":{"entryPoint":11603,"id":17240,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_1586":{"entryPoint":5250,"id":1586,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_1616":{"entryPoint":12015,"id":1616,"parameterSlots":4,"returnSlots":0},"@safeTransferFrom_6162":{"entryPoint":14651,"id":6162,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_1522":{"entryPoint":12004,"id":1522,"parameterSlots":2,"returnSlots":0},"@setBaseURI_17656":{"entryPoint":6144,"id":17656,"parameterSlots":1,"returnSlots":0},"@setTreasury_15924":{"entryPoint":12215,"id":15924,"parameterSlots":1,"returnSlots":0},"@supportsERC165InterfaceUnchecked_7870":{"entryPoint":18870,"id":7870,"parameterSlots":2,"returnSlots":1},"@supportsERC165_7707":{"entryPoint":18820,"id":7707,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1324":{"entryPoint":12571,"id":1324,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15801":{"entryPoint":2098,"id":15801,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3082":{"entryPoint":null,"id":3082,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7727":{"entryPoint":17890,"id":7727,"parameterSlots":2,"returnSlots":1},"@symbol_1396":{"entryPoint":11989,"id":1396,"parameterSlots":0,"returnSlots":1},"@toString_2873":{"entryPoint":16217,"id":2873,"parameterSlots":1,"returnSlots":1},"@tokenURI_1435":{"entryPoint":12116,"id":1435,"parameterSlots":1,"returnSlots":1},"@transferFrom_1567":{"entryPoint":2965,"id":1567,"parameterSlots":3,"returnSlots":0},"@treasury_15934":{"entryPoint":null,"id":15934,"parameterSlots":0,"returnSlots":1},"@unpause_15863":{"entryPoint":5063,"id":15863,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":5764,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":3014,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":19328,"id":2608,"parameterSlots":4,"returnSlots":1},"@verifyCallResultFromTarget_6897":{"entryPoint":null,"id":6897,"parameterSlots":4,"returnSlots":1},"@withdraw_16561":{"entryPoint":12376,"id":16561,"parameterSlots":2,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":20165,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string":{"entryPoint":19659,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_PolicyData":{"entryPoint":20196,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":20782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":21201,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":20009,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":21046,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":21002,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":20509,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":19967,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":20875,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":22267,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":19506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":22650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823":{"entryPoint":20071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentKind_$15536":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentStatus_$15530":{"entryPoint":20648,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":21569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IRiskModule_$23983t_uint96":{"entryPoint":21150,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":20586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address":{"entryPoint":19824,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr":{"entryPoint":20805,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool":{"entryPoint":21245,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":20832,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr":{"entryPoint":22219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96":{"entryPoint":20703,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96":{"entryPoint":20420,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":19944,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":21871,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint40":{"entryPoint":22194,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":20176,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":20393,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IAccessManager":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":22381,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_memory_ptr":{"entryPoint":19533,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_PolicyData":{"entryPoint":21596,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":22772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":22404,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22722,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__to_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":22677,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":22246,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyHolder_$23630__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPoolComponent_$23823_t_enum$_ComponentKind_$15536__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":22294,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_enum$_ComponentKind_$15536_t_enum$_ComponentStatus_$15530__to_t_uint8_t_uint8__fromStack_reversed":{"entryPoint":22156,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_enum$_ComponentKind_$15536_t_uint256__to_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":22319,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_enum$_ComponentStatus_$15530__to_t_uint8__fromStack_reversed":{"entryPoint":20146,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d3b3746791a6b0b7dfd79946411ee9df69dc2115b94a363d0f83c50da62a2b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e87e56359fa2526540650e2139138b7e293eed59c4b4b2e8327e8e5ebcd0b33__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21340,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22568,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22499,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21417,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21493,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8936f923c8d57cefbc1d85a8336fe08180318e8f5ff0798ebb9c587ef446aad2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b59f45c7a76e3f8ea29ffa631ac18db16134d43739485ba56421b066418784a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22424,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":21856,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":21788,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":19617,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":22362,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":21837,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":21894,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":21969,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":21290,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":21817,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":20098,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":22342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":19597,"id":null,"parameterSlots":0,"returnSlots":0},"validator_assert_enum_ComponentStatus":{"entryPoint":20118,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_address":{"entryPoint":19804,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":20989,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":19485,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_enum_ComponentStatus":{"entryPoint":20636,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:41531:88","nodeType":"YulBlock","src":"0:41531:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"58:87:88","nodeType":"YulBlock","src":"58:87:88","statements":[{"body":{"nativeSrc":"123:16:88","nodeType":"YulBlock","src":"123:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:88","nodeType":"YulLiteral","src":"132:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:88","nodeType":"YulLiteral","src":"135:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:88","nodeType":"YulIdentifier","src":"125:6:88"},"nativeSrc":"125:12:88","nodeType":"YulFunctionCall","src":"125:12:88"},"nativeSrc":"125:12:88","nodeType":"YulExpressionStatement","src":"125:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:88","nodeType":"YulIdentifier","src":"81:5:88"},{"arguments":[{"name":"value","nativeSrc":"92:5:88","nodeType":"YulIdentifier","src":"92:5:88"},{"arguments":[{"kind":"number","nativeSrc":"103:3:88","nodeType":"YulLiteral","src":"103:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:88","nodeType":"YulLiteral","src":"108:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:88","nodeType":"YulIdentifier","src":"99:3:88"},"nativeSrc":"99:20:88","nodeType":"YulFunctionCall","src":"99:20:88"}],"functionName":{"name":"and","nativeSrc":"88:3:88","nodeType":"YulIdentifier","src":"88:3:88"},"nativeSrc":"88:32:88","nodeType":"YulFunctionCall","src":"88:32:88"}],"functionName":{"name":"eq","nativeSrc":"78:2:88","nodeType":"YulIdentifier","src":"78:2:88"},"nativeSrc":"78:43:88","nodeType":"YulFunctionCall","src":"78:43:88"}],"functionName":{"name":"iszero","nativeSrc":"71:6:88","nodeType":"YulIdentifier","src":"71:6:88"},"nativeSrc":"71:51:88","nodeType":"YulFunctionCall","src":"71:51:88"},"nativeSrc":"68:71:88","nodeType":"YulIf","src":"68:71:88"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:88","nodeType":"YulTypedName","src":"47:5:88","type":""}],"src":"14:131:88"},{"body":{"nativeSrc":"219:176:88","nodeType":"YulBlock","src":"219:176:88","statements":[{"body":{"nativeSrc":"265:16:88","nodeType":"YulBlock","src":"265:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:88","nodeType":"YulLiteral","src":"274:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:88","nodeType":"YulLiteral","src":"277:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:88","nodeType":"YulIdentifier","src":"267:6:88"},"nativeSrc":"267:12:88","nodeType":"YulFunctionCall","src":"267:12:88"},"nativeSrc":"267:12:88","nodeType":"YulExpressionStatement","src":"267:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:88","nodeType":"YulIdentifier","src":"240:7:88"},{"name":"headStart","nativeSrc":"249:9:88","nodeType":"YulIdentifier","src":"249:9:88"}],"functionName":{"name":"sub","nativeSrc":"236:3:88","nodeType":"YulIdentifier","src":"236:3:88"},"nativeSrc":"236:23:88","nodeType":"YulFunctionCall","src":"236:23:88"},{"kind":"number","nativeSrc":"261:2:88","nodeType":"YulLiteral","src":"261:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:88","nodeType":"YulIdentifier","src":"232:3:88"},"nativeSrc":"232:32:88","nodeType":"YulFunctionCall","src":"232:32:88"},"nativeSrc":"229:52:88","nodeType":"YulIf","src":"229:52:88"},{"nativeSrc":"290:36:88","nodeType":"YulVariableDeclaration","src":"290:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:88","nodeType":"YulIdentifier","src":"316:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:88","nodeType":"YulIdentifier","src":"303:12:88"},"nativeSrc":"303:23:88","nodeType":"YulFunctionCall","src":"303:23:88"},"variables":[{"name":"value","nativeSrc":"294:5:88","nodeType":"YulTypedName","src":"294:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:88","nodeType":"YulIdentifier","src":"359:5:88"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:88","nodeType":"YulIdentifier","src":"335:23:88"},"nativeSrc":"335:30:88","nodeType":"YulFunctionCall","src":"335:30:88"},"nativeSrc":"335:30:88","nodeType":"YulExpressionStatement","src":"335:30:88"},{"nativeSrc":"374:15:88","nodeType":"YulAssignment","src":"374:15:88","value":{"name":"value","nativeSrc":"384:5:88","nodeType":"YulIdentifier","src":"384:5:88"},"variableNames":[{"name":"value0","nativeSrc":"374:6:88","nodeType":"YulIdentifier","src":"374:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:88","nodeType":"YulTypedName","src":"185:9:88","type":""},{"name":"dataEnd","nativeSrc":"196:7:88","nodeType":"YulTypedName","src":"196:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:88","nodeType":"YulTypedName","src":"208:6:88","type":""}],"src":"150:245:88"},{"body":{"nativeSrc":"495:92:88","nodeType":"YulBlock","src":"495:92:88","statements":[{"nativeSrc":"505:26:88","nodeType":"YulAssignment","src":"505:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:88","nodeType":"YulIdentifier","src":"517:9:88"},{"kind":"number","nativeSrc":"528:2:88","nodeType":"YulLiteral","src":"528:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:88","nodeType":"YulIdentifier","src":"513:3:88"},"nativeSrc":"513:18:88","nodeType":"YulFunctionCall","src":"513:18:88"},"variableNames":[{"name":"tail","nativeSrc":"505:4:88","nodeType":"YulIdentifier","src":"505:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:88","nodeType":"YulIdentifier","src":"547:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:88","nodeType":"YulIdentifier","src":"572:6:88"}],"functionName":{"name":"iszero","nativeSrc":"565:6:88","nodeType":"YulIdentifier","src":"565:6:88"},"nativeSrc":"565:14:88","nodeType":"YulFunctionCall","src":"565:14:88"}],"functionName":{"name":"iszero","nativeSrc":"558:6:88","nodeType":"YulIdentifier","src":"558:6:88"},"nativeSrc":"558:22:88","nodeType":"YulFunctionCall","src":"558:22:88"}],"functionName":{"name":"mstore","nativeSrc":"540:6:88","nodeType":"YulIdentifier","src":"540:6:88"},"nativeSrc":"540:41:88","nodeType":"YulFunctionCall","src":"540:41:88"},"nativeSrc":"540:41:88","nodeType":"YulExpressionStatement","src":"540:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:88","nodeType":"YulTypedName","src":"464:9:88","type":""},{"name":"value0","nativeSrc":"475:6:88","nodeType":"YulTypedName","src":"475:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:88","nodeType":"YulTypedName","src":"486:4:88","type":""}],"src":"400:187:88"},{"body":{"nativeSrc":"653:239:88","nodeType":"YulBlock","src":"653:239:88","statements":[{"nativeSrc":"663:26:88","nodeType":"YulVariableDeclaration","src":"663:26:88","value":{"arguments":[{"name":"value","nativeSrc":"683:5:88","nodeType":"YulIdentifier","src":"683:5:88"}],"functionName":{"name":"mload","nativeSrc":"677:5:88","nodeType":"YulIdentifier","src":"677:5:88"},"nativeSrc":"677:12:88","nodeType":"YulFunctionCall","src":"677:12:88"},"variables":[{"name":"length","nativeSrc":"667:6:88","nodeType":"YulTypedName","src":"667:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"705:3:88","nodeType":"YulIdentifier","src":"705:3:88"},{"name":"length","nativeSrc":"710:6:88","nodeType":"YulIdentifier","src":"710:6:88"}],"functionName":{"name":"mstore","nativeSrc":"698:6:88","nodeType":"YulIdentifier","src":"698:6:88"},"nativeSrc":"698:19:88","nodeType":"YulFunctionCall","src":"698:19:88"},"nativeSrc":"698:19:88","nodeType":"YulExpressionStatement","src":"698:19:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"736:3:88","nodeType":"YulIdentifier","src":"736:3:88"},{"kind":"number","nativeSrc":"741:4:88","nodeType":"YulLiteral","src":"741:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"732:3:88","nodeType":"YulIdentifier","src":"732:3:88"},"nativeSrc":"732:14:88","nodeType":"YulFunctionCall","src":"732:14:88"},{"arguments":[{"name":"value","nativeSrc":"752:5:88","nodeType":"YulIdentifier","src":"752:5:88"},{"kind":"number","nativeSrc":"759:4:88","nodeType":"YulLiteral","src":"759:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"748:3:88","nodeType":"YulIdentifier","src":"748:3:88"},"nativeSrc":"748:16:88","nodeType":"YulFunctionCall","src":"748:16:88"},{"name":"length","nativeSrc":"766:6:88","nodeType":"YulIdentifier","src":"766:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"726:5:88","nodeType":"YulIdentifier","src":"726:5:88"},"nativeSrc":"726:47:88","nodeType":"YulFunctionCall","src":"726:47:88"},"nativeSrc":"726:47:88","nodeType":"YulExpressionStatement","src":"726:47:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"797:3:88","nodeType":"YulIdentifier","src":"797:3:88"},{"name":"length","nativeSrc":"802:6:88","nodeType":"YulIdentifier","src":"802:6:88"}],"functionName":{"name":"add","nativeSrc":"793:3:88","nodeType":"YulIdentifier","src":"793:3:88"},"nativeSrc":"793:16:88","nodeType":"YulFunctionCall","src":"793:16:88"},{"kind":"number","nativeSrc":"811:4:88","nodeType":"YulLiteral","src":"811:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"789:3:88","nodeType":"YulIdentifier","src":"789:3:88"},"nativeSrc":"789:27:88","nodeType":"YulFunctionCall","src":"789:27:88"},{"kind":"number","nativeSrc":"818:1:88","nodeType":"YulLiteral","src":"818:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"782:6:88","nodeType":"YulIdentifier","src":"782:6:88"},"nativeSrc":"782:38:88","nodeType":"YulFunctionCall","src":"782:38:88"},"nativeSrc":"782:38:88","nodeType":"YulExpressionStatement","src":"782:38:88"},{"nativeSrc":"829:57:88","nodeType":"YulAssignment","src":"829:57:88","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"844:3:88","nodeType":"YulIdentifier","src":"844:3:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"857:6:88","nodeType":"YulIdentifier","src":"857:6:88"},{"kind":"number","nativeSrc":"865:2:88","nodeType":"YulLiteral","src":"865:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"853:3:88","nodeType":"YulIdentifier","src":"853:3:88"},"nativeSrc":"853:15:88","nodeType":"YulFunctionCall","src":"853:15:88"},{"arguments":[{"kind":"number","nativeSrc":"874:2:88","nodeType":"YulLiteral","src":"874:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"870:3:88","nodeType":"YulIdentifier","src":"870:3:88"},"nativeSrc":"870:7:88","nodeType":"YulFunctionCall","src":"870:7:88"}],"functionName":{"name":"and","nativeSrc":"849:3:88","nodeType":"YulIdentifier","src":"849:3:88"},"nativeSrc":"849:29:88","nodeType":"YulFunctionCall","src":"849:29:88"}],"functionName":{"name":"add","nativeSrc":"840:3:88","nodeType":"YulIdentifier","src":"840:3:88"},"nativeSrc":"840:39:88","nodeType":"YulFunctionCall","src":"840:39:88"},{"kind":"number","nativeSrc":"881:4:88","nodeType":"YulLiteral","src":"881:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"836:3:88","nodeType":"YulIdentifier","src":"836:3:88"},"nativeSrc":"836:50:88","nodeType":"YulFunctionCall","src":"836:50:88"},"variableNames":[{"name":"end","nativeSrc":"829:3:88","nodeType":"YulIdentifier","src":"829:3:88"}]}]},"name":"abi_encode_string_memory_ptr","nativeSrc":"592:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"630:5:88","nodeType":"YulTypedName","src":"630:5:88","type":""},{"name":"pos","nativeSrc":"637:3:88","nodeType":"YulTypedName","src":"637:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"645:3:88","nodeType":"YulTypedName","src":"645:3:88","type":""}],"src":"592:300:88"},{"body":{"nativeSrc":"1018:110:88","nodeType":"YulBlock","src":"1018:110:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1035:9:88","nodeType":"YulIdentifier","src":"1035:9:88"},{"kind":"number","nativeSrc":"1046:2:88","nodeType":"YulLiteral","src":"1046:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1028:6:88","nodeType":"YulIdentifier","src":"1028:6:88"},"nativeSrc":"1028:21:88","nodeType":"YulFunctionCall","src":"1028:21:88"},"nativeSrc":"1028:21:88","nodeType":"YulExpressionStatement","src":"1028:21:88"},{"nativeSrc":"1058:64:88","nodeType":"YulAssignment","src":"1058:64:88","value":{"arguments":[{"name":"value0","nativeSrc":"1095:6:88","nodeType":"YulIdentifier","src":"1095:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1103:3:88","nodeType":"YulIdentifier","src":"1103:3:88"},"nativeSrc":"1103:18:88","nodeType":"YulFunctionCall","src":"1103:18:88"}],"functionName":{"name":"abi_encode_string_memory_ptr","nativeSrc":"1066:28:88","nodeType":"YulIdentifier","src":"1066:28:88"},"nativeSrc":"1066:56:88","nodeType":"YulFunctionCall","src":"1066:56:88"},"variableNames":[{"name":"tail","nativeSrc":"1058:4:88","nodeType":"YulIdentifier","src":"1058:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"897:231:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"987:9:88","nodeType":"YulTypedName","src":"987:9:88","type":""},{"name":"value0","nativeSrc":"998:6:88","nodeType":"YulTypedName","src":"998:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1009:4:88","nodeType":"YulTypedName","src":"1009:4:88","type":""}],"src":"897:231:88"},{"body":{"nativeSrc":"1165:95:88","nodeType":"YulBlock","src":"1165:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1182:1:88","nodeType":"YulLiteral","src":"1182:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1189:3:88","nodeType":"YulLiteral","src":"1189:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1194:10:88","nodeType":"YulLiteral","src":"1194:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1185:3:88","nodeType":"YulIdentifier","src":"1185:3:88"},"nativeSrc":"1185:20:88","nodeType":"YulFunctionCall","src":"1185:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1175:6:88","nodeType":"YulIdentifier","src":"1175:6:88"},"nativeSrc":"1175:31:88","nodeType":"YulFunctionCall","src":"1175:31:88"},"nativeSrc":"1175:31:88","nodeType":"YulExpressionStatement","src":"1175:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1222:1:88","nodeType":"YulLiteral","src":"1222:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1225:4:88","nodeType":"YulLiteral","src":"1225:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1215:6:88","nodeType":"YulIdentifier","src":"1215:6:88"},"nativeSrc":"1215:15:88","nodeType":"YulFunctionCall","src":"1215:15:88"},"nativeSrc":"1215:15:88","nodeType":"YulExpressionStatement","src":"1215:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1246:1:88","nodeType":"YulLiteral","src":"1246:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1249:4:88","nodeType":"YulLiteral","src":"1249:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1239:6:88","nodeType":"YulIdentifier","src":"1239:6:88"},"nativeSrc":"1239:15:88","nodeType":"YulFunctionCall","src":"1239:15:88"},"nativeSrc":"1239:15:88","nodeType":"YulExpressionStatement","src":"1239:15:88"}]},"name":"panic_error_0x41","nativeSrc":"1133:127:88","nodeType":"YulFunctionDefinition","src":"1133:127:88"},{"body":{"nativeSrc":"1306:209:88","nodeType":"YulBlock","src":"1306:209:88","statements":[{"nativeSrc":"1316:19:88","nodeType":"YulAssignment","src":"1316:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"1332:2:88","nodeType":"YulLiteral","src":"1332:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1326:5:88","nodeType":"YulIdentifier","src":"1326:5:88"},"nativeSrc":"1326:9:88","nodeType":"YulFunctionCall","src":"1326:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"1316:6:88","nodeType":"YulIdentifier","src":"1316:6:88"}]},{"nativeSrc":"1344:37:88","nodeType":"YulVariableDeclaration","src":"1344:37:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"1366:6:88","nodeType":"YulIdentifier","src":"1366:6:88"},{"kind":"number","nativeSrc":"1374:6:88","nodeType":"YulLiteral","src":"1374:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"add","nativeSrc":"1362:3:88","nodeType":"YulIdentifier","src":"1362:3:88"},"nativeSrc":"1362:19:88","nodeType":"YulFunctionCall","src":"1362:19:88"},"variables":[{"name":"newFreePtr","nativeSrc":"1348:10:88","nodeType":"YulTypedName","src":"1348:10:88","type":""}]},{"body":{"nativeSrc":"1456:22:88","nodeType":"YulBlock","src":"1456:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1458:16:88","nodeType":"YulIdentifier","src":"1458:16:88"},"nativeSrc":"1458:18:88","nodeType":"YulFunctionCall","src":"1458:18:88"},"nativeSrc":"1458:18:88","nodeType":"YulExpressionStatement","src":"1458:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1399:10:88","nodeType":"YulIdentifier","src":"1399:10:88"},{"kind":"number","nativeSrc":"1411:18:88","nodeType":"YulLiteral","src":"1411:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1396:2:88","nodeType":"YulIdentifier","src":"1396:2:88"},"nativeSrc":"1396:34:88","nodeType":"YulFunctionCall","src":"1396:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1435:10:88","nodeType":"YulIdentifier","src":"1435:10:88"},{"name":"memPtr","nativeSrc":"1447:6:88","nodeType":"YulIdentifier","src":"1447:6:88"}],"functionName":{"name":"lt","nativeSrc":"1432:2:88","nodeType":"YulIdentifier","src":"1432:2:88"},"nativeSrc":"1432:22:88","nodeType":"YulFunctionCall","src":"1432:22:88"}],"functionName":{"name":"or","nativeSrc":"1393:2:88","nodeType":"YulIdentifier","src":"1393:2:88"},"nativeSrc":"1393:62:88","nodeType":"YulFunctionCall","src":"1393:62:88"},"nativeSrc":"1390:88:88","nodeType":"YulIf","src":"1390:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1494:2:88","nodeType":"YulLiteral","src":"1494:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1498:10:88","nodeType":"YulIdentifier","src":"1498:10:88"}],"functionName":{"name":"mstore","nativeSrc":"1487:6:88","nodeType":"YulIdentifier","src":"1487:6:88"},"nativeSrc":"1487:22:88","nodeType":"YulFunctionCall","src":"1487:22:88"},"nativeSrc":"1487:22:88","nodeType":"YulExpressionStatement","src":"1487:22:88"}]},"name":"allocate_memory","nativeSrc":"1265:250:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1295:6:88","nodeType":"YulTypedName","src":"1295:6:88","type":""}],"src":"1265:250:88"},{"body":{"nativeSrc":"1573:836:88","nodeType":"YulBlock","src":"1573:836:88","statements":[{"body":{"nativeSrc":"1622:16:88","nodeType":"YulBlock","src":"1622:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1631:1:88","nodeType":"YulLiteral","src":"1631:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1634:1:88","nodeType":"YulLiteral","src":"1634:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1624:6:88","nodeType":"YulIdentifier","src":"1624:6:88"},"nativeSrc":"1624:12:88","nodeType":"YulFunctionCall","src":"1624:12:88"},"nativeSrc":"1624:12:88","nodeType":"YulExpressionStatement","src":"1624:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1601:6:88","nodeType":"YulIdentifier","src":"1601:6:88"},{"kind":"number","nativeSrc":"1609:4:88","nodeType":"YulLiteral","src":"1609:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1597:3:88","nodeType":"YulIdentifier","src":"1597:3:88"},"nativeSrc":"1597:17:88","nodeType":"YulFunctionCall","src":"1597:17:88"},{"name":"end","nativeSrc":"1616:3:88","nodeType":"YulIdentifier","src":"1616:3:88"}],"functionName":{"name":"slt","nativeSrc":"1593:3:88","nodeType":"YulIdentifier","src":"1593:3:88"},"nativeSrc":"1593:27:88","nodeType":"YulFunctionCall","src":"1593:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1586:6:88","nodeType":"YulIdentifier","src":"1586:6:88"},"nativeSrc":"1586:35:88","nodeType":"YulFunctionCall","src":"1586:35:88"},"nativeSrc":"1583:55:88","nodeType":"YulIf","src":"1583:55:88"},{"nativeSrc":"1647:34:88","nodeType":"YulVariableDeclaration","src":"1647:34:88","value":{"arguments":[{"name":"offset","nativeSrc":"1674:6:88","nodeType":"YulIdentifier","src":"1674:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1661:12:88","nodeType":"YulIdentifier","src":"1661:12:88"},"nativeSrc":"1661:20:88","nodeType":"YulFunctionCall","src":"1661:20:88"},"variables":[{"name":"length","nativeSrc":"1651:6:88","nodeType":"YulTypedName","src":"1651:6:88","type":""}]},{"nativeSrc":"1690:28:88","nodeType":"YulVariableDeclaration","src":"1690:28:88","value":{"arguments":[{"name":"offset","nativeSrc":"1705:6:88","nodeType":"YulIdentifier","src":"1705:6:88"},{"kind":"number","nativeSrc":"1713:4:88","nodeType":"YulLiteral","src":"1713:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1701:3:88","nodeType":"YulIdentifier","src":"1701:3:88"},"nativeSrc":"1701:17:88","nodeType":"YulFunctionCall","src":"1701:17:88"},"variables":[{"name":"src","nativeSrc":"1694:3:88","nodeType":"YulTypedName","src":"1694:3:88","type":""}]},{"nativeSrc":"1727:16:88","nodeType":"YulVariableDeclaration","src":"1727:16:88","value":{"kind":"number","nativeSrc":"1742:1:88","nodeType":"YulLiteral","src":"1742:1:88","type":"","value":"0"},"variables":[{"name":"array_1","nativeSrc":"1731:7:88","nodeType":"YulTypedName","src":"1731:7:88","type":""}]},{"nativeSrc":"1752:13:88","nodeType":"YulVariableDeclaration","src":"1752:13:88","value":{"kind":"number","nativeSrc":"1764:1:88","nodeType":"YulLiteral","src":"1764:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"1756:4:88","nodeType":"YulTypedName","src":"1756:4:88","type":""}]},{"body":{"nativeSrc":"1808:22:88","nodeType":"YulBlock","src":"1808:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1810:16:88","nodeType":"YulIdentifier","src":"1810:16:88"},"nativeSrc":"1810:18:88","nodeType":"YulFunctionCall","src":"1810:18:88"},"nativeSrc":"1810:18:88","nodeType":"YulExpressionStatement","src":"1810:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1780:6:88","nodeType":"YulIdentifier","src":"1780:6:88"},{"kind":"number","nativeSrc":"1788:18:88","nodeType":"YulLiteral","src":"1788:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1777:2:88","nodeType":"YulIdentifier","src":"1777:2:88"},"nativeSrc":"1777:30:88","nodeType":"YulFunctionCall","src":"1777:30:88"},"nativeSrc":"1774:56:88","nodeType":"YulIf","src":"1774:56:88"},{"nativeSrc":"1839:43:88","nodeType":"YulVariableDeclaration","src":"1839:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1861:6:88","nodeType":"YulIdentifier","src":"1861:6:88"},{"kind":"number","nativeSrc":"1869:2:88","nodeType":"YulLiteral","src":"1869:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1857:3:88","nodeType":"YulIdentifier","src":"1857:3:88"},"nativeSrc":"1857:15:88","nodeType":"YulFunctionCall","src":"1857:15:88"},{"arguments":[{"kind":"number","nativeSrc":"1878:2:88","nodeType":"YulLiteral","src":"1878:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1874:3:88","nodeType":"YulIdentifier","src":"1874:3:88"},"nativeSrc":"1874:7:88","nodeType":"YulFunctionCall","src":"1874:7:88"}],"functionName":{"name":"and","nativeSrc":"1853:3:88","nodeType":"YulIdentifier","src":"1853:3:88"},"nativeSrc":"1853:29:88","nodeType":"YulFunctionCall","src":"1853:29:88"},"variables":[{"name":"result","nativeSrc":"1843:6:88","nodeType":"YulTypedName","src":"1843:6:88","type":""}]},{"nativeSrc":"1891:25:88","nodeType":"YulAssignment","src":"1891:25:88","value":{"arguments":[{"name":"result","nativeSrc":"1903:6:88","nodeType":"YulIdentifier","src":"1903:6:88"},{"kind":"number","nativeSrc":"1911:4:88","nodeType":"YulLiteral","src":"1911:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1899:3:88","nodeType":"YulIdentifier","src":"1899:3:88"},"nativeSrc":"1899:17:88","nodeType":"YulFunctionCall","src":"1899:17:88"},"variableNames":[{"name":"size","nativeSrc":"1891:4:88","nodeType":"YulIdentifier","src":"1891:4:88"}]},{"nativeSrc":"1925:15:88","nodeType":"YulVariableDeclaration","src":"1925:15:88","value":{"kind":"number","nativeSrc":"1939:1:88","nodeType":"YulLiteral","src":"1939:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"1929:6:88","nodeType":"YulTypedName","src":"1929:6:88","type":""}]},{"nativeSrc":"1949:19:88","nodeType":"YulAssignment","src":"1949:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"1965:2:88","nodeType":"YulLiteral","src":"1965:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1959:5:88","nodeType":"YulIdentifier","src":"1959:5:88"},"nativeSrc":"1959:9:88","nodeType":"YulFunctionCall","src":"1959:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"1949:6:88","nodeType":"YulIdentifier","src":"1949:6:88"}]},{"nativeSrc":"1977:60:88","nodeType":"YulVariableDeclaration","src":"1977:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"1999:6:88","nodeType":"YulIdentifier","src":"1999:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"2015:6:88","nodeType":"YulIdentifier","src":"2015:6:88"},{"kind":"number","nativeSrc":"2023:2:88","nodeType":"YulLiteral","src":"2023:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2011:3:88","nodeType":"YulIdentifier","src":"2011:3:88"},"nativeSrc":"2011:15:88","nodeType":"YulFunctionCall","src":"2011:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2032:2:88","nodeType":"YulLiteral","src":"2032:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2028:3:88","nodeType":"YulIdentifier","src":"2028:3:88"},"nativeSrc":"2028:7:88","nodeType":"YulFunctionCall","src":"2028:7:88"}],"functionName":{"name":"and","nativeSrc":"2007:3:88","nodeType":"YulIdentifier","src":"2007:3:88"},"nativeSrc":"2007:29:88","nodeType":"YulFunctionCall","src":"2007:29:88"}],"functionName":{"name":"add","nativeSrc":"1995:3:88","nodeType":"YulIdentifier","src":"1995:3:88"},"nativeSrc":"1995:42:88","nodeType":"YulFunctionCall","src":"1995:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"1981:10:88","nodeType":"YulTypedName","src":"1981:10:88","type":""}]},{"body":{"nativeSrc":"2112:22:88","nodeType":"YulBlock","src":"2112:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2114:16:88","nodeType":"YulIdentifier","src":"2114:16:88"},"nativeSrc":"2114:18:88","nodeType":"YulFunctionCall","src":"2114:18:88"},"nativeSrc":"2114:18:88","nodeType":"YulExpressionStatement","src":"2114:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2055:10:88","nodeType":"YulIdentifier","src":"2055:10:88"},{"kind":"number","nativeSrc":"2067:18:88","nodeType":"YulLiteral","src":"2067:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2052:2:88","nodeType":"YulIdentifier","src":"2052:2:88"},"nativeSrc":"2052:34:88","nodeType":"YulFunctionCall","src":"2052:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2091:10:88","nodeType":"YulIdentifier","src":"2091:10:88"},{"name":"memPtr","nativeSrc":"2103:6:88","nodeType":"YulIdentifier","src":"2103:6:88"}],"functionName":{"name":"lt","nativeSrc":"2088:2:88","nodeType":"YulIdentifier","src":"2088:2:88"},"nativeSrc":"2088:22:88","nodeType":"YulFunctionCall","src":"2088:22:88"}],"functionName":{"name":"or","nativeSrc":"2049:2:88","nodeType":"YulIdentifier","src":"2049:2:88"},"nativeSrc":"2049:62:88","nodeType":"YulFunctionCall","src":"2049:62:88"},"nativeSrc":"2046:88:88","nodeType":"YulIf","src":"2046:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2150:2:88","nodeType":"YulLiteral","src":"2150:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2154:10:88","nodeType":"YulIdentifier","src":"2154:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2143:6:88","nodeType":"YulIdentifier","src":"2143:6:88"},"nativeSrc":"2143:22:88","nodeType":"YulFunctionCall","src":"2143:22:88"},"nativeSrc":"2143:22:88","nodeType":"YulExpressionStatement","src":"2143:22:88"},{"nativeSrc":"2174:17:88","nodeType":"YulAssignment","src":"2174:17:88","value":{"name":"memPtr","nativeSrc":"2185:6:88","nodeType":"YulIdentifier","src":"2185:6:88"},"variableNames":[{"name":"array_1","nativeSrc":"2174:7:88","nodeType":"YulIdentifier","src":"2174:7:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2207:6:88","nodeType":"YulIdentifier","src":"2207:6:88"},{"name":"length","nativeSrc":"2215:6:88","nodeType":"YulIdentifier","src":"2215:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2200:6:88","nodeType":"YulIdentifier","src":"2200:6:88"},"nativeSrc":"2200:22:88","nodeType":"YulFunctionCall","src":"2200:22:88"},"nativeSrc":"2200:22:88","nodeType":"YulExpressionStatement","src":"2200:22:88"},{"body":{"nativeSrc":"2260:16:88","nodeType":"YulBlock","src":"2260:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2269:1:88","nodeType":"YulLiteral","src":"2269:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2272:1:88","nodeType":"YulLiteral","src":"2272:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2262:6:88","nodeType":"YulIdentifier","src":"2262:6:88"},"nativeSrc":"2262:12:88","nodeType":"YulFunctionCall","src":"2262:12:88"},"nativeSrc":"2262:12:88","nodeType":"YulExpressionStatement","src":"2262:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2241:3:88","nodeType":"YulIdentifier","src":"2241:3:88"},{"name":"length","nativeSrc":"2246:6:88","nodeType":"YulIdentifier","src":"2246:6:88"}],"functionName":{"name":"add","nativeSrc":"2237:3:88","nodeType":"YulIdentifier","src":"2237:3:88"},"nativeSrc":"2237:16:88","nodeType":"YulFunctionCall","src":"2237:16:88"},{"name":"end","nativeSrc":"2255:3:88","nodeType":"YulIdentifier","src":"2255:3:88"}],"functionName":{"name":"gt","nativeSrc":"2234:2:88","nodeType":"YulIdentifier","src":"2234:2:88"},"nativeSrc":"2234:25:88","nodeType":"YulFunctionCall","src":"2234:25:88"},"nativeSrc":"2231:45:88","nodeType":"YulIf","src":"2231:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2302:6:88","nodeType":"YulIdentifier","src":"2302:6:88"},{"kind":"number","nativeSrc":"2310:4:88","nodeType":"YulLiteral","src":"2310:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2298:3:88","nodeType":"YulIdentifier","src":"2298:3:88"},"nativeSrc":"2298:17:88","nodeType":"YulFunctionCall","src":"2298:17:88"},{"name":"src","nativeSrc":"2317:3:88","nodeType":"YulIdentifier","src":"2317:3:88"},{"name":"length","nativeSrc":"2322:6:88","nodeType":"YulIdentifier","src":"2322:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"2285:12:88","nodeType":"YulIdentifier","src":"2285:12:88"},"nativeSrc":"2285:44:88","nodeType":"YulFunctionCall","src":"2285:44:88"},"nativeSrc":"2285:44:88","nodeType":"YulExpressionStatement","src":"2285:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2353:6:88","nodeType":"YulIdentifier","src":"2353:6:88"},{"name":"length","nativeSrc":"2361:6:88","nodeType":"YulIdentifier","src":"2361:6:88"}],"functionName":{"name":"add","nativeSrc":"2349:3:88","nodeType":"YulIdentifier","src":"2349:3:88"},"nativeSrc":"2349:19:88","nodeType":"YulFunctionCall","src":"2349:19:88"},{"kind":"number","nativeSrc":"2370:4:88","nodeType":"YulLiteral","src":"2370:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2345:3:88","nodeType":"YulIdentifier","src":"2345:3:88"},"nativeSrc":"2345:30:88","nodeType":"YulFunctionCall","src":"2345:30:88"},{"kind":"number","nativeSrc":"2377:1:88","nodeType":"YulLiteral","src":"2377:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2338:6:88","nodeType":"YulIdentifier","src":"2338:6:88"},"nativeSrc":"2338:41:88","nodeType":"YulFunctionCall","src":"2338:41:88"},"nativeSrc":"2338:41:88","nodeType":"YulExpressionStatement","src":"2338:41:88"},{"nativeSrc":"2388:15:88","nodeType":"YulAssignment","src":"2388:15:88","value":{"name":"memPtr","nativeSrc":"2397:6:88","nodeType":"YulIdentifier","src":"2397:6:88"},"variableNames":[{"name":"array","nativeSrc":"2388:5:88","nodeType":"YulIdentifier","src":"2388:5:88"}]}]},"name":"abi_decode_string","nativeSrc":"1520:889:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1547:6:88","nodeType":"YulTypedName","src":"1547:6:88","type":""},{"name":"end","nativeSrc":"1555:3:88","nodeType":"YulTypedName","src":"1555:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1563:5:88","nodeType":"YulTypedName","src":"1563:5:88","type":""}],"src":"1520:889:88"},{"body":{"nativeSrc":"2459:86:88","nodeType":"YulBlock","src":"2459:86:88","statements":[{"body":{"nativeSrc":"2523:16:88","nodeType":"YulBlock","src":"2523:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2532:1:88","nodeType":"YulLiteral","src":"2532:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2535:1:88","nodeType":"YulLiteral","src":"2535:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2525:6:88","nodeType":"YulIdentifier","src":"2525:6:88"},"nativeSrc":"2525:12:88","nodeType":"YulFunctionCall","src":"2525:12:88"},"nativeSrc":"2525:12:88","nodeType":"YulExpressionStatement","src":"2525:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2482:5:88","nodeType":"YulIdentifier","src":"2482:5:88"},{"arguments":[{"name":"value","nativeSrc":"2493:5:88","nodeType":"YulIdentifier","src":"2493:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2508:3:88","nodeType":"YulLiteral","src":"2508:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2513:1:88","nodeType":"YulLiteral","src":"2513:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2504:3:88","nodeType":"YulIdentifier","src":"2504:3:88"},"nativeSrc":"2504:11:88","nodeType":"YulFunctionCall","src":"2504:11:88"},{"kind":"number","nativeSrc":"2517:1:88","nodeType":"YulLiteral","src":"2517:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2500:3:88","nodeType":"YulIdentifier","src":"2500:3:88"},"nativeSrc":"2500:19:88","nodeType":"YulFunctionCall","src":"2500:19:88"}],"functionName":{"name":"and","nativeSrc":"2489:3:88","nodeType":"YulIdentifier","src":"2489:3:88"},"nativeSrc":"2489:31:88","nodeType":"YulFunctionCall","src":"2489:31:88"}],"functionName":{"name":"eq","nativeSrc":"2479:2:88","nodeType":"YulIdentifier","src":"2479:2:88"},"nativeSrc":"2479:42:88","nodeType":"YulFunctionCall","src":"2479:42:88"}],"functionName":{"name":"iszero","nativeSrc":"2472:6:88","nodeType":"YulIdentifier","src":"2472:6:88"},"nativeSrc":"2472:50:88","nodeType":"YulFunctionCall","src":"2472:50:88"},"nativeSrc":"2469:70:88","nodeType":"YulIf","src":"2469:70:88"}]},"name":"validator_revert_address","nativeSrc":"2414:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2448:5:88","nodeType":"YulTypedName","src":"2448:5:88","type":""}],"src":"2414:131:88"},{"body":{"nativeSrc":"2674:549:88","nodeType":"YulBlock","src":"2674:549:88","statements":[{"body":{"nativeSrc":"2720:16:88","nodeType":"YulBlock","src":"2720:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2729:1:88","nodeType":"YulLiteral","src":"2729:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2732:1:88","nodeType":"YulLiteral","src":"2732:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2722:6:88","nodeType":"YulIdentifier","src":"2722:6:88"},"nativeSrc":"2722:12:88","nodeType":"YulFunctionCall","src":"2722:12:88"},"nativeSrc":"2722:12:88","nodeType":"YulExpressionStatement","src":"2722:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2695:7:88","nodeType":"YulIdentifier","src":"2695:7:88"},{"name":"headStart","nativeSrc":"2704:9:88","nodeType":"YulIdentifier","src":"2704:9:88"}],"functionName":{"name":"sub","nativeSrc":"2691:3:88","nodeType":"YulIdentifier","src":"2691:3:88"},"nativeSrc":"2691:23:88","nodeType":"YulFunctionCall","src":"2691:23:88"},{"kind":"number","nativeSrc":"2716:2:88","nodeType":"YulLiteral","src":"2716:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2687:3:88","nodeType":"YulIdentifier","src":"2687:3:88"},"nativeSrc":"2687:32:88","nodeType":"YulFunctionCall","src":"2687:32:88"},"nativeSrc":"2684:52:88","nodeType":"YulIf","src":"2684:52:88"},{"nativeSrc":"2745:37:88","nodeType":"YulVariableDeclaration","src":"2745:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2772:9:88","nodeType":"YulIdentifier","src":"2772:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2759:12:88","nodeType":"YulIdentifier","src":"2759:12:88"},"nativeSrc":"2759:23:88","nodeType":"YulFunctionCall","src":"2759:23:88"},"variables":[{"name":"offset","nativeSrc":"2749:6:88","nodeType":"YulTypedName","src":"2749:6:88","type":""}]},{"body":{"nativeSrc":"2825:16:88","nodeType":"YulBlock","src":"2825:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2834:1:88","nodeType":"YulLiteral","src":"2834:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2837:1:88","nodeType":"YulLiteral","src":"2837:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2827:6:88","nodeType":"YulIdentifier","src":"2827:6:88"},"nativeSrc":"2827:12:88","nodeType":"YulFunctionCall","src":"2827:12:88"},"nativeSrc":"2827:12:88","nodeType":"YulExpressionStatement","src":"2827:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2797:6:88","nodeType":"YulIdentifier","src":"2797:6:88"},{"kind":"number","nativeSrc":"2805:18:88","nodeType":"YulLiteral","src":"2805:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2794:2:88","nodeType":"YulIdentifier","src":"2794:2:88"},"nativeSrc":"2794:30:88","nodeType":"YulFunctionCall","src":"2794:30:88"},"nativeSrc":"2791:50:88","nodeType":"YulIf","src":"2791:50:88"},{"nativeSrc":"2850:60:88","nodeType":"YulAssignment","src":"2850:60:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2882:9:88","nodeType":"YulIdentifier","src":"2882:9:88"},{"name":"offset","nativeSrc":"2893:6:88","nodeType":"YulIdentifier","src":"2893:6:88"}],"functionName":{"name":"add","nativeSrc":"2878:3:88","nodeType":"YulIdentifier","src":"2878:3:88"},"nativeSrc":"2878:22:88","nodeType":"YulFunctionCall","src":"2878:22:88"},{"name":"dataEnd","nativeSrc":"2902:7:88","nodeType":"YulIdentifier","src":"2902:7:88"}],"functionName":{"name":"abi_decode_string","nativeSrc":"2860:17:88","nodeType":"YulIdentifier","src":"2860:17:88"},"nativeSrc":"2860:50:88","nodeType":"YulFunctionCall","src":"2860:50:88"},"variableNames":[{"name":"value0","nativeSrc":"2850:6:88","nodeType":"YulIdentifier","src":"2850:6:88"}]},{"nativeSrc":"2919:48:88","nodeType":"YulVariableDeclaration","src":"2919:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2952:9:88","nodeType":"YulIdentifier","src":"2952:9:88"},{"kind":"number","nativeSrc":"2963:2:88","nodeType":"YulLiteral","src":"2963:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2948:3:88","nodeType":"YulIdentifier","src":"2948:3:88"},"nativeSrc":"2948:18:88","nodeType":"YulFunctionCall","src":"2948:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2935:12:88","nodeType":"YulIdentifier","src":"2935:12:88"},"nativeSrc":"2935:32:88","nodeType":"YulFunctionCall","src":"2935:32:88"},"variables":[{"name":"offset_1","nativeSrc":"2923:8:88","nodeType":"YulTypedName","src":"2923:8:88","type":""}]},{"body":{"nativeSrc":"3012:16:88","nodeType":"YulBlock","src":"3012:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3021:1:88","nodeType":"YulLiteral","src":"3021:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3024:1:88","nodeType":"YulLiteral","src":"3024:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3014:6:88","nodeType":"YulIdentifier","src":"3014:6:88"},"nativeSrc":"3014:12:88","nodeType":"YulFunctionCall","src":"3014:12:88"},"nativeSrc":"3014:12:88","nodeType":"YulExpressionStatement","src":"3014:12:88"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"2982:8:88","nodeType":"YulIdentifier","src":"2982:8:88"},{"kind":"number","nativeSrc":"2992:18:88","nodeType":"YulLiteral","src":"2992:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2979:2:88","nodeType":"YulIdentifier","src":"2979:2:88"},"nativeSrc":"2979:32:88","nodeType":"YulFunctionCall","src":"2979:32:88"},"nativeSrc":"2976:52:88","nodeType":"YulIf","src":"2976:52:88"},{"nativeSrc":"3037:62:88","nodeType":"YulAssignment","src":"3037:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3069:9:88","nodeType":"YulIdentifier","src":"3069:9:88"},{"name":"offset_1","nativeSrc":"3080:8:88","nodeType":"YulIdentifier","src":"3080:8:88"}],"functionName":{"name":"add","nativeSrc":"3065:3:88","nodeType":"YulIdentifier","src":"3065:3:88"},"nativeSrc":"3065:24:88","nodeType":"YulFunctionCall","src":"3065:24:88"},{"name":"dataEnd","nativeSrc":"3091:7:88","nodeType":"YulIdentifier","src":"3091:7:88"}],"functionName":{"name":"abi_decode_string","nativeSrc":"3047:17:88","nodeType":"YulIdentifier","src":"3047:17:88"},"nativeSrc":"3047:52:88","nodeType":"YulFunctionCall","src":"3047:52:88"},"variableNames":[{"name":"value1","nativeSrc":"3037:6:88","nodeType":"YulIdentifier","src":"3037:6:88"}]},{"nativeSrc":"3108:45:88","nodeType":"YulVariableDeclaration","src":"3108:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3138:9:88","nodeType":"YulIdentifier","src":"3138:9:88"},{"kind":"number","nativeSrc":"3149:2:88","nodeType":"YulLiteral","src":"3149:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3134:3:88","nodeType":"YulIdentifier","src":"3134:3:88"},"nativeSrc":"3134:18:88","nodeType":"YulFunctionCall","src":"3134:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3121:12:88","nodeType":"YulIdentifier","src":"3121:12:88"},"nativeSrc":"3121:32:88","nodeType":"YulFunctionCall","src":"3121:32:88"},"variables":[{"name":"value","nativeSrc":"3112:5:88","nodeType":"YulTypedName","src":"3112:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3187:5:88","nodeType":"YulIdentifier","src":"3187:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3162:24:88","nodeType":"YulIdentifier","src":"3162:24:88"},"nativeSrc":"3162:31:88","nodeType":"YulFunctionCall","src":"3162:31:88"},"nativeSrc":"3162:31:88","nodeType":"YulExpressionStatement","src":"3162:31:88"},{"nativeSrc":"3202:15:88","nodeType":"YulAssignment","src":"3202:15:88","value":{"name":"value","nativeSrc":"3212:5:88","nodeType":"YulIdentifier","src":"3212:5:88"},"variableNames":[{"name":"value2","nativeSrc":"3202:6:88","nodeType":"YulIdentifier","src":"3202:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address","nativeSrc":"2550:673:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2624:9:88","nodeType":"YulTypedName","src":"2624:9:88","type":""},{"name":"dataEnd","nativeSrc":"2635:7:88","nodeType":"YulTypedName","src":"2635:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2647:6:88","nodeType":"YulTypedName","src":"2647:6:88","type":""},{"name":"value1","nativeSrc":"2655:6:88","nodeType":"YulTypedName","src":"2655:6:88","type":""},{"name":"value2","nativeSrc":"2663:6:88","nodeType":"YulTypedName","src":"2663:6:88","type":""}],"src":"2550:673:88"},{"body":{"nativeSrc":"3298:156:88","nodeType":"YulBlock","src":"3298:156:88","statements":[{"body":{"nativeSrc":"3344:16:88","nodeType":"YulBlock","src":"3344:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3353:1:88","nodeType":"YulLiteral","src":"3353:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3356:1:88","nodeType":"YulLiteral","src":"3356:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3346:6:88","nodeType":"YulIdentifier","src":"3346:6:88"},"nativeSrc":"3346:12:88","nodeType":"YulFunctionCall","src":"3346:12:88"},"nativeSrc":"3346:12:88","nodeType":"YulExpressionStatement","src":"3346:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3319:7:88","nodeType":"YulIdentifier","src":"3319:7:88"},{"name":"headStart","nativeSrc":"3328:9:88","nodeType":"YulIdentifier","src":"3328:9:88"}],"functionName":{"name":"sub","nativeSrc":"3315:3:88","nodeType":"YulIdentifier","src":"3315:3:88"},"nativeSrc":"3315:23:88","nodeType":"YulFunctionCall","src":"3315:23:88"},{"kind":"number","nativeSrc":"3340:2:88","nodeType":"YulLiteral","src":"3340:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3311:3:88","nodeType":"YulIdentifier","src":"3311:3:88"},"nativeSrc":"3311:32:88","nodeType":"YulFunctionCall","src":"3311:32:88"},"nativeSrc":"3308:52:88","nodeType":"YulIf","src":"3308:52:88"},{"nativeSrc":"3369:14:88","nodeType":"YulVariableDeclaration","src":"3369:14:88","value":{"kind":"number","nativeSrc":"3382:1:88","nodeType":"YulLiteral","src":"3382:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3373:5:88","nodeType":"YulTypedName","src":"3373:5:88","type":""}]},{"nativeSrc":"3392:32:88","nodeType":"YulAssignment","src":"3392:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3414:9:88","nodeType":"YulIdentifier","src":"3414:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3401:12:88","nodeType":"YulIdentifier","src":"3401:12:88"},"nativeSrc":"3401:23:88","nodeType":"YulFunctionCall","src":"3401:23:88"},"variableNames":[{"name":"value","nativeSrc":"3392:5:88","nodeType":"YulIdentifier","src":"3392:5:88"}]},{"nativeSrc":"3433:15:88","nodeType":"YulAssignment","src":"3433:15:88","value":{"name":"value","nativeSrc":"3443:5:88","nodeType":"YulIdentifier","src":"3443:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3433:6:88","nodeType":"YulIdentifier","src":"3433:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3228:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3264:9:88","nodeType":"YulTypedName","src":"3264:9:88","type":""},{"name":"dataEnd","nativeSrc":"3275:7:88","nodeType":"YulTypedName","src":"3275:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3287:6:88","nodeType":"YulTypedName","src":"3287:6:88","type":""}],"src":"3228:226:88"},{"body":{"nativeSrc":"3560:102:88","nodeType":"YulBlock","src":"3560:102:88","statements":[{"nativeSrc":"3570:26:88","nodeType":"YulAssignment","src":"3570:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3582:9:88","nodeType":"YulIdentifier","src":"3582:9:88"},{"kind":"number","nativeSrc":"3593:2:88","nodeType":"YulLiteral","src":"3593:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3578:3:88","nodeType":"YulIdentifier","src":"3578:3:88"},"nativeSrc":"3578:18:88","nodeType":"YulFunctionCall","src":"3578:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3570:4:88","nodeType":"YulIdentifier","src":"3570:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3612:9:88","nodeType":"YulIdentifier","src":"3612:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3627:6:88","nodeType":"YulIdentifier","src":"3627:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3643:3:88","nodeType":"YulLiteral","src":"3643:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3648:1:88","nodeType":"YulLiteral","src":"3648:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3639:3:88","nodeType":"YulIdentifier","src":"3639:3:88"},"nativeSrc":"3639:11:88","nodeType":"YulFunctionCall","src":"3639:11:88"},{"kind":"number","nativeSrc":"3652:1:88","nodeType":"YulLiteral","src":"3652:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3635:3:88","nodeType":"YulIdentifier","src":"3635:3:88"},"nativeSrc":"3635:19:88","nodeType":"YulFunctionCall","src":"3635:19:88"}],"functionName":{"name":"and","nativeSrc":"3623:3:88","nodeType":"YulIdentifier","src":"3623:3:88"},"nativeSrc":"3623:32:88","nodeType":"YulFunctionCall","src":"3623:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3605:6:88","nodeType":"YulIdentifier","src":"3605:6:88"},"nativeSrc":"3605:51:88","nodeType":"YulFunctionCall","src":"3605:51:88"},"nativeSrc":"3605:51:88","nodeType":"YulExpressionStatement","src":"3605:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3459:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3529:9:88","nodeType":"YulTypedName","src":"3529:9:88","type":""},{"name":"value0","nativeSrc":"3540:6:88","nodeType":"YulTypedName","src":"3540:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3551:4:88","nodeType":"YulTypedName","src":"3551:4:88","type":""}],"src":"3459:203:88"},{"body":{"nativeSrc":"3754:280:88","nodeType":"YulBlock","src":"3754:280:88","statements":[{"body":{"nativeSrc":"3800:16:88","nodeType":"YulBlock","src":"3800:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3809:1:88","nodeType":"YulLiteral","src":"3809:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3812:1:88","nodeType":"YulLiteral","src":"3812:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3802:6:88","nodeType":"YulIdentifier","src":"3802:6:88"},"nativeSrc":"3802:12:88","nodeType":"YulFunctionCall","src":"3802:12:88"},"nativeSrc":"3802:12:88","nodeType":"YulExpressionStatement","src":"3802:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3775:7:88","nodeType":"YulIdentifier","src":"3775:7:88"},{"name":"headStart","nativeSrc":"3784:9:88","nodeType":"YulIdentifier","src":"3784:9:88"}],"functionName":{"name":"sub","nativeSrc":"3771:3:88","nodeType":"YulIdentifier","src":"3771:3:88"},"nativeSrc":"3771:23:88","nodeType":"YulFunctionCall","src":"3771:23:88"},{"kind":"number","nativeSrc":"3796:2:88","nodeType":"YulLiteral","src":"3796:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3767:3:88","nodeType":"YulIdentifier","src":"3767:3:88"},"nativeSrc":"3767:32:88","nodeType":"YulFunctionCall","src":"3767:32:88"},"nativeSrc":"3764:52:88","nodeType":"YulIf","src":"3764:52:88"},{"nativeSrc":"3825:36:88","nodeType":"YulVariableDeclaration","src":"3825:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3851:9:88","nodeType":"YulIdentifier","src":"3851:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3838:12:88","nodeType":"YulIdentifier","src":"3838:12:88"},"nativeSrc":"3838:23:88","nodeType":"YulFunctionCall","src":"3838:23:88"},"variables":[{"name":"value","nativeSrc":"3829:5:88","nodeType":"YulTypedName","src":"3829:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3895:5:88","nodeType":"YulIdentifier","src":"3895:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3870:24:88","nodeType":"YulIdentifier","src":"3870:24:88"},"nativeSrc":"3870:31:88","nodeType":"YulFunctionCall","src":"3870:31:88"},"nativeSrc":"3870:31:88","nodeType":"YulExpressionStatement","src":"3870:31:88"},{"nativeSrc":"3910:15:88","nodeType":"YulAssignment","src":"3910:15:88","value":{"name":"value","nativeSrc":"3920:5:88","nodeType":"YulIdentifier","src":"3920:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3910:6:88","nodeType":"YulIdentifier","src":"3910:6:88"}]},{"nativeSrc":"3934:16:88","nodeType":"YulVariableDeclaration","src":"3934:16:88","value":{"kind":"number","nativeSrc":"3949:1:88","nodeType":"YulLiteral","src":"3949:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"3938:7:88","nodeType":"YulTypedName","src":"3938:7:88","type":""}]},{"nativeSrc":"3959:43:88","nodeType":"YulAssignment","src":"3959:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3987:9:88","nodeType":"YulIdentifier","src":"3987:9:88"},{"kind":"number","nativeSrc":"3998:2:88","nodeType":"YulLiteral","src":"3998:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3983:3:88","nodeType":"YulIdentifier","src":"3983:3:88"},"nativeSrc":"3983:18:88","nodeType":"YulFunctionCall","src":"3983:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3970:12:88","nodeType":"YulIdentifier","src":"3970:12:88"},"nativeSrc":"3970:32:88","nodeType":"YulFunctionCall","src":"3970:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"3959:7:88","nodeType":"YulIdentifier","src":"3959:7:88"}]},{"nativeSrc":"4011:17:88","nodeType":"YulAssignment","src":"4011:17:88","value":{"name":"value_1","nativeSrc":"4021:7:88","nodeType":"YulIdentifier","src":"4021:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4011:6:88","nodeType":"YulIdentifier","src":"4011:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"3667:367:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3712:9:88","nodeType":"YulTypedName","src":"3712:9:88","type":""},{"name":"dataEnd","nativeSrc":"3723:7:88","nodeType":"YulTypedName","src":"3723:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3735:6:88","nodeType":"YulTypedName","src":"3735:6:88","type":""},{"name":"value1","nativeSrc":"3743:6:88","nodeType":"YulTypedName","src":"3743:6:88","type":""}],"src":"3667:367:88"},{"body":{"nativeSrc":"4143:404:88","nodeType":"YulBlock","src":"4143:404:88","statements":[{"body":{"nativeSrc":"4189:16:88","nodeType":"YulBlock","src":"4189:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4198:1:88","nodeType":"YulLiteral","src":"4198:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4201:1:88","nodeType":"YulLiteral","src":"4201:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4191:6:88","nodeType":"YulIdentifier","src":"4191:6:88"},"nativeSrc":"4191:12:88","nodeType":"YulFunctionCall","src":"4191:12:88"},"nativeSrc":"4191:12:88","nodeType":"YulExpressionStatement","src":"4191:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4164:7:88","nodeType":"YulIdentifier","src":"4164:7:88"},{"name":"headStart","nativeSrc":"4173:9:88","nodeType":"YulIdentifier","src":"4173:9:88"}],"functionName":{"name":"sub","nativeSrc":"4160:3:88","nodeType":"YulIdentifier","src":"4160:3:88"},"nativeSrc":"4160:23:88","nodeType":"YulFunctionCall","src":"4160:23:88"},{"kind":"number","nativeSrc":"4185:2:88","nodeType":"YulLiteral","src":"4185:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4156:3:88","nodeType":"YulIdentifier","src":"4156:3:88"},"nativeSrc":"4156:32:88","nodeType":"YulFunctionCall","src":"4156:32:88"},"nativeSrc":"4153:52:88","nodeType":"YulIf","src":"4153:52:88"},{"nativeSrc":"4214:36:88","nodeType":"YulVariableDeclaration","src":"4214:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4240:9:88","nodeType":"YulIdentifier","src":"4240:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4227:12:88","nodeType":"YulIdentifier","src":"4227:12:88"},"nativeSrc":"4227:23:88","nodeType":"YulFunctionCall","src":"4227:23:88"},"variables":[{"name":"value","nativeSrc":"4218:5:88","nodeType":"YulTypedName","src":"4218:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4284:5:88","nodeType":"YulIdentifier","src":"4284:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4259:24:88","nodeType":"YulIdentifier","src":"4259:24:88"},"nativeSrc":"4259:31:88","nodeType":"YulFunctionCall","src":"4259:31:88"},"nativeSrc":"4259:31:88","nodeType":"YulExpressionStatement","src":"4259:31:88"},{"nativeSrc":"4299:15:88","nodeType":"YulAssignment","src":"4299:15:88","value":{"name":"value","nativeSrc":"4309:5:88","nodeType":"YulIdentifier","src":"4309:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4299:6:88","nodeType":"YulIdentifier","src":"4299:6:88"}]},{"nativeSrc":"4323:47:88","nodeType":"YulVariableDeclaration","src":"4323:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4355:9:88","nodeType":"YulIdentifier","src":"4355:9:88"},{"kind":"number","nativeSrc":"4366:2:88","nodeType":"YulLiteral","src":"4366:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4351:3:88","nodeType":"YulIdentifier","src":"4351:3:88"},"nativeSrc":"4351:18:88","nodeType":"YulFunctionCall","src":"4351:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4338:12:88","nodeType":"YulIdentifier","src":"4338:12:88"},"nativeSrc":"4338:32:88","nodeType":"YulFunctionCall","src":"4338:32:88"},"variables":[{"name":"value_1","nativeSrc":"4327:7:88","nodeType":"YulTypedName","src":"4327:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4404:7:88","nodeType":"YulIdentifier","src":"4404:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4379:24:88","nodeType":"YulIdentifier","src":"4379:24:88"},"nativeSrc":"4379:33:88","nodeType":"YulFunctionCall","src":"4379:33:88"},"nativeSrc":"4379:33:88","nodeType":"YulExpressionStatement","src":"4379:33:88"},{"nativeSrc":"4421:17:88","nodeType":"YulAssignment","src":"4421:17:88","value":{"name":"value_1","nativeSrc":"4431:7:88","nodeType":"YulIdentifier","src":"4431:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4421:6:88","nodeType":"YulIdentifier","src":"4421:6:88"}]},{"nativeSrc":"4447:16:88","nodeType":"YulVariableDeclaration","src":"4447:16:88","value":{"kind":"number","nativeSrc":"4462:1:88","nodeType":"YulLiteral","src":"4462:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"4451:7:88","nodeType":"YulTypedName","src":"4451:7:88","type":""}]},{"nativeSrc":"4472:43:88","nodeType":"YulAssignment","src":"4472:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4500:9:88","nodeType":"YulIdentifier","src":"4500:9:88"},{"kind":"number","nativeSrc":"4511:2:88","nodeType":"YulLiteral","src":"4511:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4496:3:88","nodeType":"YulIdentifier","src":"4496:3:88"},"nativeSrc":"4496:18:88","nodeType":"YulFunctionCall","src":"4496:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4483:12:88","nodeType":"YulIdentifier","src":"4483:12:88"},"nativeSrc":"4483:32:88","nodeType":"YulFunctionCall","src":"4483:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"4472:7:88","nodeType":"YulIdentifier","src":"4472:7:88"}]},{"nativeSrc":"4524:17:88","nodeType":"YulAssignment","src":"4524:17:88","value":{"name":"value_2","nativeSrc":"4534:7:88","nodeType":"YulIdentifier","src":"4534:7:88"},"variableNames":[{"name":"value2","nativeSrc":"4524:6:88","nodeType":"YulIdentifier","src":"4524:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"4039:508:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4093:9:88","nodeType":"YulTypedName","src":"4093:9:88","type":""},{"name":"dataEnd","nativeSrc":"4104:7:88","nodeType":"YulTypedName","src":"4104:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4116:6:88","nodeType":"YulTypedName","src":"4116:6:88","type":""},{"name":"value1","nativeSrc":"4124:6:88","nodeType":"YulTypedName","src":"4124:6:88","type":""},{"name":"value2","nativeSrc":"4132:6:88","nodeType":"YulTypedName","src":"4132:6:88","type":""}],"src":"4039:508:88"},{"body":{"nativeSrc":"4653:76:88","nodeType":"YulBlock","src":"4653:76:88","statements":[{"nativeSrc":"4663:26:88","nodeType":"YulAssignment","src":"4663:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4675:9:88","nodeType":"YulIdentifier","src":"4675:9:88"},{"kind":"number","nativeSrc":"4686:2:88","nodeType":"YulLiteral","src":"4686:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4671:3:88","nodeType":"YulIdentifier","src":"4671:3:88"},"nativeSrc":"4671:18:88","nodeType":"YulFunctionCall","src":"4671:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4663:4:88","nodeType":"YulIdentifier","src":"4663:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4705:9:88","nodeType":"YulIdentifier","src":"4705:9:88"},{"name":"value0","nativeSrc":"4716:6:88","nodeType":"YulIdentifier","src":"4716:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4698:6:88","nodeType":"YulIdentifier","src":"4698:6:88"},"nativeSrc":"4698:25:88","nodeType":"YulFunctionCall","src":"4698:25:88"},"nativeSrc":"4698:25:88","nodeType":"YulExpressionStatement","src":"4698:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4552:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4622:9:88","nodeType":"YulTypedName","src":"4622:9:88","type":""},{"name":"value0","nativeSrc":"4633:6:88","nodeType":"YulTypedName","src":"4633:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4644:4:88","nodeType":"YulTypedName","src":"4644:4:88","type":""}],"src":"4552:177:88"},{"body":{"nativeSrc":"4834:177:88","nodeType":"YulBlock","src":"4834:177:88","statements":[{"body":{"nativeSrc":"4880:16:88","nodeType":"YulBlock","src":"4880:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4889:1:88","nodeType":"YulLiteral","src":"4889:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4892:1:88","nodeType":"YulLiteral","src":"4892:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4882:6:88","nodeType":"YulIdentifier","src":"4882:6:88"},"nativeSrc":"4882:12:88","nodeType":"YulFunctionCall","src":"4882:12:88"},"nativeSrc":"4882:12:88","nodeType":"YulExpressionStatement","src":"4882:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4855:7:88","nodeType":"YulIdentifier","src":"4855:7:88"},{"name":"headStart","nativeSrc":"4864:9:88","nodeType":"YulIdentifier","src":"4864:9:88"}],"functionName":{"name":"sub","nativeSrc":"4851:3:88","nodeType":"YulIdentifier","src":"4851:3:88"},"nativeSrc":"4851:23:88","nodeType":"YulFunctionCall","src":"4851:23:88"},{"kind":"number","nativeSrc":"4876:2:88","nodeType":"YulLiteral","src":"4876:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4847:3:88","nodeType":"YulIdentifier","src":"4847:3:88"},"nativeSrc":"4847:32:88","nodeType":"YulFunctionCall","src":"4847:32:88"},"nativeSrc":"4844:52:88","nodeType":"YulIf","src":"4844:52:88"},{"nativeSrc":"4905:36:88","nodeType":"YulVariableDeclaration","src":"4905:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4931:9:88","nodeType":"YulIdentifier","src":"4931:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4918:12:88","nodeType":"YulIdentifier","src":"4918:12:88"},"nativeSrc":"4918:23:88","nodeType":"YulFunctionCall","src":"4918:23:88"},"variables":[{"name":"value","nativeSrc":"4909:5:88","nodeType":"YulTypedName","src":"4909:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4975:5:88","nodeType":"YulIdentifier","src":"4975:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4950:24:88","nodeType":"YulIdentifier","src":"4950:24:88"},"nativeSrc":"4950:31:88","nodeType":"YulFunctionCall","src":"4950:31:88"},"nativeSrc":"4950:31:88","nodeType":"YulExpressionStatement","src":"4950:31:88"},{"nativeSrc":"4990:15:88","nodeType":"YulAssignment","src":"4990:15:88","value":{"name":"value","nativeSrc":"5000:5:88","nodeType":"YulIdentifier","src":"5000:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4990:6:88","nodeType":"YulIdentifier","src":"4990:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823","nativeSrc":"4734:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4800:9:88","nodeType":"YulTypedName","src":"4800:9:88","type":""},{"name":"dataEnd","nativeSrc":"4811:7:88","nodeType":"YulTypedName","src":"4811:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4823:6:88","nodeType":"YulTypedName","src":"4823:6:88","type":""}],"src":"4734:277:88"},{"body":{"nativeSrc":"5048:95:88","nodeType":"YulBlock","src":"5048:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5065:1:88","nodeType":"YulLiteral","src":"5065:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5072:3:88","nodeType":"YulLiteral","src":"5072:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"5077:10:88","nodeType":"YulLiteral","src":"5077:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5068:3:88","nodeType":"YulIdentifier","src":"5068:3:88"},"nativeSrc":"5068:20:88","nodeType":"YulFunctionCall","src":"5068:20:88"}],"functionName":{"name":"mstore","nativeSrc":"5058:6:88","nodeType":"YulIdentifier","src":"5058:6:88"},"nativeSrc":"5058:31:88","nodeType":"YulFunctionCall","src":"5058:31:88"},"nativeSrc":"5058:31:88","nodeType":"YulExpressionStatement","src":"5058:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5105:1:88","nodeType":"YulLiteral","src":"5105:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"5108:4:88","nodeType":"YulLiteral","src":"5108:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5098:6:88","nodeType":"YulIdentifier","src":"5098:6:88"},"nativeSrc":"5098:15:88","nodeType":"YulFunctionCall","src":"5098:15:88"},"nativeSrc":"5098:15:88","nodeType":"YulExpressionStatement","src":"5098:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5129:1:88","nodeType":"YulLiteral","src":"5129:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5132:4:88","nodeType":"YulLiteral","src":"5132:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5122:6:88","nodeType":"YulIdentifier","src":"5122:6:88"},"nativeSrc":"5122:15:88","nodeType":"YulFunctionCall","src":"5122:15:88"},"nativeSrc":"5122:15:88","nodeType":"YulExpressionStatement","src":"5122:15:88"}]},"name":"panic_error_0x21","nativeSrc":"5016:127:88","nodeType":"YulFunctionDefinition","src":"5016:127:88"},{"body":{"nativeSrc":"5206:159:88","nodeType":"YulBlock","src":"5206:159:88","statements":[{"body":{"nativeSrc":"5248:111:88","nodeType":"YulBlock","src":"5248:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5269:1:88","nodeType":"YulLiteral","src":"5269:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5276:3:88","nodeType":"YulLiteral","src":"5276:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"5281:10:88","nodeType":"YulLiteral","src":"5281:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5272:3:88","nodeType":"YulIdentifier","src":"5272:3:88"},"nativeSrc":"5272:20:88","nodeType":"YulFunctionCall","src":"5272:20:88"}],"functionName":{"name":"mstore","nativeSrc":"5262:6:88","nodeType":"YulIdentifier","src":"5262:6:88"},"nativeSrc":"5262:31:88","nodeType":"YulFunctionCall","src":"5262:31:88"},"nativeSrc":"5262:31:88","nodeType":"YulExpressionStatement","src":"5262:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5313:1:88","nodeType":"YulLiteral","src":"5313:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"5316:4:88","nodeType":"YulLiteral","src":"5316:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5306:6:88","nodeType":"YulIdentifier","src":"5306:6:88"},"nativeSrc":"5306:15:88","nodeType":"YulFunctionCall","src":"5306:15:88"},"nativeSrc":"5306:15:88","nodeType":"YulExpressionStatement","src":"5306:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5341:1:88","nodeType":"YulLiteral","src":"5341:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5344:4:88","nodeType":"YulLiteral","src":"5344:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5334:6:88","nodeType":"YulIdentifier","src":"5334:6:88"},"nativeSrc":"5334:15:88","nodeType":"YulFunctionCall","src":"5334:15:88"},"nativeSrc":"5334:15:88","nodeType":"YulExpressionStatement","src":"5334:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5229:5:88","nodeType":"YulIdentifier","src":"5229:5:88"},{"kind":"number","nativeSrc":"5236:1:88","nodeType":"YulLiteral","src":"5236:1:88","type":"","value":"4"}],"functionName":{"name":"lt","nativeSrc":"5226:2:88","nodeType":"YulIdentifier","src":"5226:2:88"},"nativeSrc":"5226:12:88","nodeType":"YulFunctionCall","src":"5226:12:88"}],"functionName":{"name":"iszero","nativeSrc":"5219:6:88","nodeType":"YulIdentifier","src":"5219:6:88"},"nativeSrc":"5219:20:88","nodeType":"YulFunctionCall","src":"5219:20:88"},"nativeSrc":"5216:143:88","nodeType":"YulIf","src":"5216:143:88"}]},"name":"validator_assert_enum_ComponentStatus","nativeSrc":"5148:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5195:5:88","nodeType":"YulTypedName","src":"5195:5:88","type":""}],"src":"5148:217:88"},{"body":{"nativeSrc":"5490:130:88","nodeType":"YulBlock","src":"5490:130:88","statements":[{"nativeSrc":"5500:26:88","nodeType":"YulAssignment","src":"5500:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5512:9:88","nodeType":"YulIdentifier","src":"5512:9:88"},{"kind":"number","nativeSrc":"5523:2:88","nodeType":"YulLiteral","src":"5523:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5508:3:88","nodeType":"YulIdentifier","src":"5508:3:88"},"nativeSrc":"5508:18:88","nodeType":"YulFunctionCall","src":"5508:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5500:4:88","nodeType":"YulIdentifier","src":"5500:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5573:6:88","nodeType":"YulIdentifier","src":"5573:6:88"}],"functionName":{"name":"validator_assert_enum_ComponentStatus","nativeSrc":"5535:37:88","nodeType":"YulIdentifier","src":"5535:37:88"},"nativeSrc":"5535:45:88","nodeType":"YulFunctionCall","src":"5535:45:88"},"nativeSrc":"5535:45:88","nodeType":"YulExpressionStatement","src":"5535:45:88"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5596:9:88","nodeType":"YulIdentifier","src":"5596:9:88"},{"name":"value0","nativeSrc":"5607:6:88","nodeType":"YulIdentifier","src":"5607:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5589:6:88","nodeType":"YulIdentifier","src":"5589:6:88"},"nativeSrc":"5589:25:88","nodeType":"YulFunctionCall","src":"5589:25:88"},"nativeSrc":"5589:25:88","nodeType":"YulExpressionStatement","src":"5589:25:88"}]},"name":"abi_encode_tuple_t_enum$_ComponentStatus_$15530__to_t_uint8__fromStack_reversed","nativeSrc":"5370:250:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5459:9:88","nodeType":"YulTypedName","src":"5459:9:88","type":""},{"name":"value0","nativeSrc":"5470:6:88","nodeType":"YulTypedName","src":"5470:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5481:4:88","nodeType":"YulTypedName","src":"5481:4:88","type":""}],"src":"5370:250:88"},{"body":{"nativeSrc":"5695:177:88","nodeType":"YulBlock","src":"5695:177:88","statements":[{"body":{"nativeSrc":"5741:16:88","nodeType":"YulBlock","src":"5741:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5750:1:88","nodeType":"YulLiteral","src":"5750:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5753:1:88","nodeType":"YulLiteral","src":"5753:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5743:6:88","nodeType":"YulIdentifier","src":"5743:6:88"},"nativeSrc":"5743:12:88","nodeType":"YulFunctionCall","src":"5743:12:88"},"nativeSrc":"5743:12:88","nodeType":"YulExpressionStatement","src":"5743:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5716:7:88","nodeType":"YulIdentifier","src":"5716:7:88"},{"name":"headStart","nativeSrc":"5725:9:88","nodeType":"YulIdentifier","src":"5725:9:88"}],"functionName":{"name":"sub","nativeSrc":"5712:3:88","nodeType":"YulIdentifier","src":"5712:3:88"},"nativeSrc":"5712:23:88","nodeType":"YulFunctionCall","src":"5712:23:88"},{"kind":"number","nativeSrc":"5737:2:88","nodeType":"YulLiteral","src":"5737:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5708:3:88","nodeType":"YulIdentifier","src":"5708:3:88"},"nativeSrc":"5708:32:88","nodeType":"YulFunctionCall","src":"5708:32:88"},"nativeSrc":"5705:52:88","nodeType":"YulIf","src":"5705:52:88"},{"nativeSrc":"5766:36:88","nodeType":"YulVariableDeclaration","src":"5766:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5792:9:88","nodeType":"YulIdentifier","src":"5792:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5779:12:88","nodeType":"YulIdentifier","src":"5779:12:88"},"nativeSrc":"5779:23:88","nodeType":"YulFunctionCall","src":"5779:23:88"},"variables":[{"name":"value","nativeSrc":"5770:5:88","nodeType":"YulTypedName","src":"5770:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5836:5:88","nodeType":"YulIdentifier","src":"5836:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5811:24:88","nodeType":"YulIdentifier","src":"5811:24:88"},"nativeSrc":"5811:31:88","nodeType":"YulFunctionCall","src":"5811:31:88"},"nativeSrc":"5811:31:88","nodeType":"YulExpressionStatement","src":"5811:31:88"},{"nativeSrc":"5851:15:88","nodeType":"YulAssignment","src":"5851:15:88","value":{"name":"value","nativeSrc":"5861:5:88","nodeType":"YulIdentifier","src":"5861:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5851:6:88","nodeType":"YulIdentifier","src":"5851:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5625:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5661:9:88","nodeType":"YulTypedName","src":"5661:9:88","type":""},{"name":"dataEnd","nativeSrc":"5672:7:88","nodeType":"YulTypedName","src":"5672:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5684:6:88","nodeType":"YulTypedName","src":"5684:6:88","type":""}],"src":"5625:247:88"},{"body":{"nativeSrc":"5939:85:88","nodeType":"YulBlock","src":"5939:85:88","statements":[{"nativeSrc":"5949:29:88","nodeType":"YulAssignment","src":"5949:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"5971:6:88","nodeType":"YulIdentifier","src":"5971:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"5958:12:88","nodeType":"YulIdentifier","src":"5958:12:88"},"nativeSrc":"5958:20:88","nodeType":"YulFunctionCall","src":"5958:20:88"},"variableNames":[{"name":"value","nativeSrc":"5949:5:88","nodeType":"YulIdentifier","src":"5949:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6012:5:88","nodeType":"YulIdentifier","src":"6012:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5987:24:88","nodeType":"YulIdentifier","src":"5987:24:88"},"nativeSrc":"5987:31:88","nodeType":"YulFunctionCall","src":"5987:31:88"},"nativeSrc":"5987:31:88","nodeType":"YulExpressionStatement","src":"5987:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"5877:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5918:6:88","nodeType":"YulTypedName","src":"5918:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5929:5:88","nodeType":"YulTypedName","src":"5929:5:88","type":""}],"src":"5877:147:88"},{"body":{"nativeSrc":"6077:117:88","nodeType":"YulBlock","src":"6077:117:88","statements":[{"nativeSrc":"6087:29:88","nodeType":"YulAssignment","src":"6087:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"6109:6:88","nodeType":"YulIdentifier","src":"6109:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"6096:12:88","nodeType":"YulIdentifier","src":"6096:12:88"},"nativeSrc":"6096:20:88","nodeType":"YulFunctionCall","src":"6096:20:88"},"variableNames":[{"name":"value","nativeSrc":"6087:5:88","nodeType":"YulIdentifier","src":"6087:5:88"}]},{"body":{"nativeSrc":"6172:16:88","nodeType":"YulBlock","src":"6172:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6181:1:88","nodeType":"YulLiteral","src":"6181:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6184:1:88","nodeType":"YulLiteral","src":"6184:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6174:6:88","nodeType":"YulIdentifier","src":"6174:6:88"},"nativeSrc":"6174:12:88","nodeType":"YulFunctionCall","src":"6174:12:88"},"nativeSrc":"6174:12:88","nodeType":"YulExpressionStatement","src":"6174:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6138:5:88","nodeType":"YulIdentifier","src":"6138:5:88"},{"arguments":[{"name":"value","nativeSrc":"6149:5:88","nodeType":"YulIdentifier","src":"6149:5:88"},{"kind":"number","nativeSrc":"6156:12:88","nodeType":"YulLiteral","src":"6156:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"6145:3:88","nodeType":"YulIdentifier","src":"6145:3:88"},"nativeSrc":"6145:24:88","nodeType":"YulFunctionCall","src":"6145:24:88"}],"functionName":{"name":"eq","nativeSrc":"6135:2:88","nodeType":"YulIdentifier","src":"6135:2:88"},"nativeSrc":"6135:35:88","nodeType":"YulFunctionCall","src":"6135:35:88"}],"functionName":{"name":"iszero","nativeSrc":"6128:6:88","nodeType":"YulIdentifier","src":"6128:6:88"},"nativeSrc":"6128:43:88","nodeType":"YulFunctionCall","src":"6128:43:88"},"nativeSrc":"6125:63:88","nodeType":"YulIf","src":"6125:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"6029:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6056:6:88","nodeType":"YulTypedName","src":"6056:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6067:5:88","nodeType":"YulTypedName","src":"6067:5:88","type":""}],"src":"6029:165:88"},{"body":{"nativeSrc":"6266:1622:88","nodeType":"YulBlock","src":"6266:1622:88","statements":[{"body":{"nativeSrc":"6312:16:88","nodeType":"YulBlock","src":"6312:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6321:1:88","nodeType":"YulLiteral","src":"6321:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6324:1:88","nodeType":"YulLiteral","src":"6324:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6314:6:88","nodeType":"YulIdentifier","src":"6314:6:88"},"nativeSrc":"6314:12:88","nodeType":"YulFunctionCall","src":"6314:12:88"},"nativeSrc":"6314:12:88","nodeType":"YulExpressionStatement","src":"6314:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"6287:3:88","nodeType":"YulIdentifier","src":"6287:3:88"},{"name":"headStart","nativeSrc":"6292:9:88","nodeType":"YulIdentifier","src":"6292:9:88"}],"functionName":{"name":"sub","nativeSrc":"6283:3:88","nodeType":"YulIdentifier","src":"6283:3:88"},"nativeSrc":"6283:19:88","nodeType":"YulFunctionCall","src":"6283:19:88"},{"kind":"number","nativeSrc":"6304:6:88","nodeType":"YulLiteral","src":"6304:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"slt","nativeSrc":"6279:3:88","nodeType":"YulIdentifier","src":"6279:3:88"},"nativeSrc":"6279:32:88","nodeType":"YulFunctionCall","src":"6279:32:88"},"nativeSrc":"6276:52:88","nodeType":"YulIf","src":"6276:52:88"},{"nativeSrc":"6337:26:88","nodeType":"YulAssignment","src":"6337:26:88","value":{"arguments":[],"functionName":{"name":"allocate_memory","nativeSrc":"6346:15:88","nodeType":"YulIdentifier","src":"6346:15:88"},"nativeSrc":"6346:17:88","nodeType":"YulFunctionCall","src":"6346:17:88"},"variableNames":[{"name":"value","nativeSrc":"6337:5:88","nodeType":"YulIdentifier","src":"6337:5:88"}]},{"nativeSrc":"6372:16:88","nodeType":"YulVariableDeclaration","src":"6372:16:88","value":{"kind":"number","nativeSrc":"6387:1:88","nodeType":"YulLiteral","src":"6387:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6376:7:88","nodeType":"YulTypedName","src":"6376:7:88","type":""}]},{"nativeSrc":"6397:34:88","nodeType":"YulAssignment","src":"6397:34:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6421:9:88","nodeType":"YulIdentifier","src":"6421:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6408:12:88","nodeType":"YulIdentifier","src":"6408:12:88"},"nativeSrc":"6408:23:88","nodeType":"YulFunctionCall","src":"6408:23:88"},"variableNames":[{"name":"value_1","nativeSrc":"6397:7:88","nodeType":"YulIdentifier","src":"6397:7:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6447:5:88","nodeType":"YulIdentifier","src":"6447:5:88"},{"name":"value_1","nativeSrc":"6454:7:88","nodeType":"YulIdentifier","src":"6454:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6440:6:88","nodeType":"YulIdentifier","src":"6440:6:88"},"nativeSrc":"6440:22:88","nodeType":"YulFunctionCall","src":"6440:22:88"},"nativeSrc":"6440:22:88","nodeType":"YulExpressionStatement","src":"6440:22:88"},{"nativeSrc":"6471:16:88","nodeType":"YulVariableDeclaration","src":"6471:16:88","value":{"kind":"number","nativeSrc":"6486:1:88","nodeType":"YulLiteral","src":"6486:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"6475:7:88","nodeType":"YulTypedName","src":"6475:7:88","type":""}]},{"nativeSrc":"6496:43:88","nodeType":"YulAssignment","src":"6496:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6524:9:88","nodeType":"YulIdentifier","src":"6524:9:88"},{"kind":"number","nativeSrc":"6535:2:88","nodeType":"YulLiteral","src":"6535:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6520:3:88","nodeType":"YulIdentifier","src":"6520:3:88"},"nativeSrc":"6520:18:88","nodeType":"YulFunctionCall","src":"6520:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6507:12:88","nodeType":"YulIdentifier","src":"6507:12:88"},"nativeSrc":"6507:32:88","nodeType":"YulFunctionCall","src":"6507:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"6496:7:88","nodeType":"YulIdentifier","src":"6496:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6559:5:88","nodeType":"YulIdentifier","src":"6559:5:88"},{"kind":"number","nativeSrc":"6566:2:88","nodeType":"YulLiteral","src":"6566:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6555:3:88","nodeType":"YulIdentifier","src":"6555:3:88"},"nativeSrc":"6555:14:88","nodeType":"YulFunctionCall","src":"6555:14:88"},{"name":"value_2","nativeSrc":"6571:7:88","nodeType":"YulIdentifier","src":"6571:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6548:6:88","nodeType":"YulIdentifier","src":"6548:6:88"},"nativeSrc":"6548:31:88","nodeType":"YulFunctionCall","src":"6548:31:88"},"nativeSrc":"6548:31:88","nodeType":"YulExpressionStatement","src":"6548:31:88"},{"nativeSrc":"6588:16:88","nodeType":"YulVariableDeclaration","src":"6588:16:88","value":{"kind":"number","nativeSrc":"6603:1:88","nodeType":"YulLiteral","src":"6603:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"6592:7:88","nodeType":"YulTypedName","src":"6592:7:88","type":""}]},{"nativeSrc":"6613:43:88","nodeType":"YulAssignment","src":"6613:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6641:9:88","nodeType":"YulIdentifier","src":"6641:9:88"},{"kind":"number","nativeSrc":"6652:2:88","nodeType":"YulLiteral","src":"6652:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6637:3:88","nodeType":"YulIdentifier","src":"6637:3:88"},"nativeSrc":"6637:18:88","nodeType":"YulFunctionCall","src":"6637:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6624:12:88","nodeType":"YulIdentifier","src":"6624:12:88"},"nativeSrc":"6624:32:88","nodeType":"YulFunctionCall","src":"6624:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"6613:7:88","nodeType":"YulIdentifier","src":"6613:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6676:5:88","nodeType":"YulIdentifier","src":"6676:5:88"},{"kind":"number","nativeSrc":"6683:2:88","nodeType":"YulLiteral","src":"6683:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6672:3:88","nodeType":"YulIdentifier","src":"6672:3:88"},"nativeSrc":"6672:14:88","nodeType":"YulFunctionCall","src":"6672:14:88"},{"name":"value_3","nativeSrc":"6688:7:88","nodeType":"YulIdentifier","src":"6688:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6665:6:88","nodeType":"YulIdentifier","src":"6665:6:88"},"nativeSrc":"6665:31:88","nodeType":"YulFunctionCall","src":"6665:31:88"},"nativeSrc":"6665:31:88","nodeType":"YulExpressionStatement","src":"6665:31:88"},{"nativeSrc":"6705:16:88","nodeType":"YulVariableDeclaration","src":"6705:16:88","value":{"kind":"number","nativeSrc":"6720:1:88","nodeType":"YulLiteral","src":"6720:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"6709:7:88","nodeType":"YulTypedName","src":"6709:7:88","type":""}]},{"nativeSrc":"6730:43:88","nodeType":"YulAssignment","src":"6730:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6758:9:88","nodeType":"YulIdentifier","src":"6758:9:88"},{"kind":"number","nativeSrc":"6769:2:88","nodeType":"YulLiteral","src":"6769:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6754:3:88","nodeType":"YulIdentifier","src":"6754:3:88"},"nativeSrc":"6754:18:88","nodeType":"YulFunctionCall","src":"6754:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6741:12:88","nodeType":"YulIdentifier","src":"6741:12:88"},"nativeSrc":"6741:32:88","nodeType":"YulFunctionCall","src":"6741:32:88"},"variableNames":[{"name":"value_4","nativeSrc":"6730:7:88","nodeType":"YulIdentifier","src":"6730:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6793:5:88","nodeType":"YulIdentifier","src":"6793:5:88"},{"kind":"number","nativeSrc":"6800:2:88","nodeType":"YulLiteral","src":"6800:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6789:3:88","nodeType":"YulIdentifier","src":"6789:3:88"},"nativeSrc":"6789:14:88","nodeType":"YulFunctionCall","src":"6789:14:88"},{"name":"value_4","nativeSrc":"6805:7:88","nodeType":"YulIdentifier","src":"6805:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6782:6:88","nodeType":"YulIdentifier","src":"6782:6:88"},"nativeSrc":"6782:31:88","nodeType":"YulFunctionCall","src":"6782:31:88"},"nativeSrc":"6782:31:88","nodeType":"YulExpressionStatement","src":"6782:31:88"},{"nativeSrc":"6822:16:88","nodeType":"YulVariableDeclaration","src":"6822:16:88","value":{"kind":"number","nativeSrc":"6837:1:88","nodeType":"YulLiteral","src":"6837:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"6826:7:88","nodeType":"YulTypedName","src":"6826:7:88","type":""}]},{"nativeSrc":"6847:44:88","nodeType":"YulAssignment","src":"6847:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6875:9:88","nodeType":"YulIdentifier","src":"6875:9:88"},{"kind":"number","nativeSrc":"6886:3:88","nodeType":"YulLiteral","src":"6886:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6871:3:88","nodeType":"YulIdentifier","src":"6871:3:88"},"nativeSrc":"6871:19:88","nodeType":"YulFunctionCall","src":"6871:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6858:12:88","nodeType":"YulIdentifier","src":"6858:12:88"},"nativeSrc":"6858:33:88","nodeType":"YulFunctionCall","src":"6858:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"6847:7:88","nodeType":"YulIdentifier","src":"6847:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6911:5:88","nodeType":"YulIdentifier","src":"6911:5:88"},{"kind":"number","nativeSrc":"6918:3:88","nodeType":"YulLiteral","src":"6918:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6907:3:88","nodeType":"YulIdentifier","src":"6907:3:88"},"nativeSrc":"6907:15:88","nodeType":"YulFunctionCall","src":"6907:15:88"},{"name":"value_5","nativeSrc":"6924:7:88","nodeType":"YulIdentifier","src":"6924:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6900:6:88","nodeType":"YulIdentifier","src":"6900:6:88"},"nativeSrc":"6900:32:88","nodeType":"YulFunctionCall","src":"6900:32:88"},"nativeSrc":"6900:32:88","nodeType":"YulExpressionStatement","src":"6900:32:88"},{"nativeSrc":"6941:16:88","nodeType":"YulVariableDeclaration","src":"6941:16:88","value":{"kind":"number","nativeSrc":"6956:1:88","nodeType":"YulLiteral","src":"6956:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"6945:7:88","nodeType":"YulTypedName","src":"6945:7:88","type":""}]},{"nativeSrc":"6966:44:88","nodeType":"YulAssignment","src":"6966:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6994:9:88","nodeType":"YulIdentifier","src":"6994:9:88"},{"kind":"number","nativeSrc":"7005:3:88","nodeType":"YulLiteral","src":"7005:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6990:3:88","nodeType":"YulIdentifier","src":"6990:3:88"},"nativeSrc":"6990:19:88","nodeType":"YulFunctionCall","src":"6990:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6977:12:88","nodeType":"YulIdentifier","src":"6977:12:88"},"nativeSrc":"6977:33:88","nodeType":"YulFunctionCall","src":"6977:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"6966:7:88","nodeType":"YulIdentifier","src":"6966:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7030:5:88","nodeType":"YulIdentifier","src":"7030:5:88"},{"kind":"number","nativeSrc":"7037:3:88","nodeType":"YulLiteral","src":"7037:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7026:3:88","nodeType":"YulIdentifier","src":"7026:3:88"},"nativeSrc":"7026:15:88","nodeType":"YulFunctionCall","src":"7026:15:88"},{"name":"value_6","nativeSrc":"7043:7:88","nodeType":"YulIdentifier","src":"7043:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7019:6:88","nodeType":"YulIdentifier","src":"7019:6:88"},"nativeSrc":"7019:32:88","nodeType":"YulFunctionCall","src":"7019:32:88"},"nativeSrc":"7019:32:88","nodeType":"YulExpressionStatement","src":"7019:32:88"},{"nativeSrc":"7060:16:88","nodeType":"YulVariableDeclaration","src":"7060:16:88","value":{"kind":"number","nativeSrc":"7075:1:88","nodeType":"YulLiteral","src":"7075:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"7064:7:88","nodeType":"YulTypedName","src":"7064:7:88","type":""}]},{"nativeSrc":"7085:44:88","nodeType":"YulAssignment","src":"7085:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7113:9:88","nodeType":"YulIdentifier","src":"7113:9:88"},{"kind":"number","nativeSrc":"7124:3:88","nodeType":"YulLiteral","src":"7124:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7109:3:88","nodeType":"YulIdentifier","src":"7109:3:88"},"nativeSrc":"7109:19:88","nodeType":"YulFunctionCall","src":"7109:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7096:12:88","nodeType":"YulIdentifier","src":"7096:12:88"},"nativeSrc":"7096:33:88","nodeType":"YulFunctionCall","src":"7096:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"7085:7:88","nodeType":"YulIdentifier","src":"7085:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7149:5:88","nodeType":"YulIdentifier","src":"7149:5:88"},{"kind":"number","nativeSrc":"7156:3:88","nodeType":"YulLiteral","src":"7156:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7145:3:88","nodeType":"YulIdentifier","src":"7145:3:88"},"nativeSrc":"7145:15:88","nodeType":"YulFunctionCall","src":"7145:15:88"},{"name":"value_7","nativeSrc":"7162:7:88","nodeType":"YulIdentifier","src":"7162:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7138:6:88","nodeType":"YulIdentifier","src":"7138:6:88"},"nativeSrc":"7138:32:88","nodeType":"YulFunctionCall","src":"7138:32:88"},"nativeSrc":"7138:32:88","nodeType":"YulExpressionStatement","src":"7138:32:88"},{"nativeSrc":"7179:16:88","nodeType":"YulVariableDeclaration","src":"7179:16:88","value":{"kind":"number","nativeSrc":"7194:1:88","nodeType":"YulLiteral","src":"7194:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"7183:7:88","nodeType":"YulTypedName","src":"7183:7:88","type":""}]},{"nativeSrc":"7204:44:88","nodeType":"YulAssignment","src":"7204:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7232:9:88","nodeType":"YulIdentifier","src":"7232:9:88"},{"kind":"number","nativeSrc":"7243:3:88","nodeType":"YulLiteral","src":"7243:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"7228:3:88","nodeType":"YulIdentifier","src":"7228:3:88"},"nativeSrc":"7228:19:88","nodeType":"YulFunctionCall","src":"7228:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7215:12:88","nodeType":"YulIdentifier","src":"7215:12:88"},"nativeSrc":"7215:33:88","nodeType":"YulFunctionCall","src":"7215:33:88"},"variableNames":[{"name":"value_8","nativeSrc":"7204:7:88","nodeType":"YulIdentifier","src":"7204:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7268:5:88","nodeType":"YulIdentifier","src":"7268:5:88"},{"kind":"number","nativeSrc":"7275:3:88","nodeType":"YulLiteral","src":"7275:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"7264:3:88","nodeType":"YulIdentifier","src":"7264:3:88"},"nativeSrc":"7264:15:88","nodeType":"YulFunctionCall","src":"7264:15:88"},{"name":"value_8","nativeSrc":"7281:7:88","nodeType":"YulIdentifier","src":"7281:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7257:6:88","nodeType":"YulIdentifier","src":"7257:6:88"},"nativeSrc":"7257:32:88","nodeType":"YulFunctionCall","src":"7257:32:88"},"nativeSrc":"7257:32:88","nodeType":"YulExpressionStatement","src":"7257:32:88"},{"nativeSrc":"7298:16:88","nodeType":"YulVariableDeclaration","src":"7298:16:88","value":{"kind":"number","nativeSrc":"7313:1:88","nodeType":"YulLiteral","src":"7313:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"7302:7:88","nodeType":"YulTypedName","src":"7302:7:88","type":""}]},{"nativeSrc":"7323:44:88","nodeType":"YulAssignment","src":"7323:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7351:9:88","nodeType":"YulIdentifier","src":"7351:9:88"},{"kind":"number","nativeSrc":"7362:3:88","nodeType":"YulLiteral","src":"7362:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"7347:3:88","nodeType":"YulIdentifier","src":"7347:3:88"},"nativeSrc":"7347:19:88","nodeType":"YulFunctionCall","src":"7347:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7334:12:88","nodeType":"YulIdentifier","src":"7334:12:88"},"nativeSrc":"7334:33:88","nodeType":"YulFunctionCall","src":"7334:33:88"},"variableNames":[{"name":"value_9","nativeSrc":"7323:7:88","nodeType":"YulIdentifier","src":"7323:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7387:5:88","nodeType":"YulIdentifier","src":"7387:5:88"},{"kind":"number","nativeSrc":"7394:3:88","nodeType":"YulLiteral","src":"7394:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"7383:3:88","nodeType":"YulIdentifier","src":"7383:3:88"},"nativeSrc":"7383:15:88","nodeType":"YulFunctionCall","src":"7383:15:88"},{"name":"value_9","nativeSrc":"7400:7:88","nodeType":"YulIdentifier","src":"7400:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7376:6:88","nodeType":"YulIdentifier","src":"7376:6:88"},"nativeSrc":"7376:32:88","nodeType":"YulFunctionCall","src":"7376:32:88"},"nativeSrc":"7376:32:88","nodeType":"YulExpressionStatement","src":"7376:32:88"},{"nativeSrc":"7417:17:88","nodeType":"YulVariableDeclaration","src":"7417:17:88","value":{"kind":"number","nativeSrc":"7433:1:88","nodeType":"YulLiteral","src":"7433:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"7421:8:88","nodeType":"YulTypedName","src":"7421:8:88","type":""}]},{"nativeSrc":"7443:45:88","nodeType":"YulAssignment","src":"7443:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7472:9:88","nodeType":"YulIdentifier","src":"7472:9:88"},{"kind":"number","nativeSrc":"7483:3:88","nodeType":"YulLiteral","src":"7483:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"7468:3:88","nodeType":"YulIdentifier","src":"7468:3:88"},"nativeSrc":"7468:19:88","nodeType":"YulFunctionCall","src":"7468:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7455:12:88","nodeType":"YulIdentifier","src":"7455:12:88"},"nativeSrc":"7455:33:88","nodeType":"YulFunctionCall","src":"7455:33:88"},"variableNames":[{"name":"value_10","nativeSrc":"7443:8:88","nodeType":"YulIdentifier","src":"7443:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7508:5:88","nodeType":"YulIdentifier","src":"7508:5:88"},{"kind":"number","nativeSrc":"7515:3:88","nodeType":"YulLiteral","src":"7515:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"7504:3:88","nodeType":"YulIdentifier","src":"7504:3:88"},"nativeSrc":"7504:15:88","nodeType":"YulFunctionCall","src":"7504:15:88"},{"name":"value_10","nativeSrc":"7521:8:88","nodeType":"YulIdentifier","src":"7521:8:88"}],"functionName":{"name":"mstore","nativeSrc":"7497:6:88","nodeType":"YulIdentifier","src":"7497:6:88"},"nativeSrc":"7497:33:88","nodeType":"YulFunctionCall","src":"7497:33:88"},"nativeSrc":"7497:33:88","nodeType":"YulExpressionStatement","src":"7497:33:88"},{"nativeSrc":"7539:17:88","nodeType":"YulVariableDeclaration","src":"7539:17:88","value":{"kind":"number","nativeSrc":"7555:1:88","nodeType":"YulLiteral","src":"7555:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"7543:8:88","nodeType":"YulTypedName","src":"7543:8:88","type":""}]},{"nativeSrc":"7565:45:88","nodeType":"YulAssignment","src":"7565:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7594:9:88","nodeType":"YulIdentifier","src":"7594:9:88"},{"kind":"number","nativeSrc":"7605:3:88","nodeType":"YulLiteral","src":"7605:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"7590:3:88","nodeType":"YulIdentifier","src":"7590:3:88"},"nativeSrc":"7590:19:88","nodeType":"YulFunctionCall","src":"7590:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7577:12:88","nodeType":"YulIdentifier","src":"7577:12:88"},"nativeSrc":"7577:33:88","nodeType":"YulFunctionCall","src":"7577:33:88"},"variableNames":[{"name":"value_11","nativeSrc":"7565:8:88","nodeType":"YulIdentifier","src":"7565:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7630:5:88","nodeType":"YulIdentifier","src":"7630:5:88"},{"kind":"number","nativeSrc":"7637:3:88","nodeType":"YulLiteral","src":"7637:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"7626:3:88","nodeType":"YulIdentifier","src":"7626:3:88"},"nativeSrc":"7626:15:88","nodeType":"YulFunctionCall","src":"7626:15:88"},{"name":"value_11","nativeSrc":"7643:8:88","nodeType":"YulIdentifier","src":"7643:8:88"}],"functionName":{"name":"mstore","nativeSrc":"7619:6:88","nodeType":"YulIdentifier","src":"7619:6:88"},"nativeSrc":"7619:33:88","nodeType":"YulFunctionCall","src":"7619:33:88"},"nativeSrc":"7619:33:88","nodeType":"YulExpressionStatement","src":"7619:33:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7672:5:88","nodeType":"YulIdentifier","src":"7672:5:88"},{"kind":"number","nativeSrc":"7679:3:88","nodeType":"YulLiteral","src":"7679:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"7668:3:88","nodeType":"YulIdentifier","src":"7668:3:88"},"nativeSrc":"7668:15:88","nodeType":"YulFunctionCall","src":"7668:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7721:9:88","nodeType":"YulIdentifier","src":"7721:9:88"},{"kind":"number","nativeSrc":"7732:3:88","nodeType":"YulLiteral","src":"7732:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"7717:3:88","nodeType":"YulIdentifier","src":"7717:3:88"},"nativeSrc":"7717:19:88","nodeType":"YulFunctionCall","src":"7717:19:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"7685:31:88","nodeType":"YulIdentifier","src":"7685:31:88"},"nativeSrc":"7685:52:88","nodeType":"YulFunctionCall","src":"7685:52:88"}],"functionName":{"name":"mstore","nativeSrc":"7661:6:88","nodeType":"YulIdentifier","src":"7661:6:88"},"nativeSrc":"7661:77:88","nodeType":"YulFunctionCall","src":"7661:77:88"},"nativeSrc":"7661:77:88","nodeType":"YulExpressionStatement","src":"7661:77:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7758:5:88","nodeType":"YulIdentifier","src":"7758:5:88"},{"kind":"number","nativeSrc":"7765:3:88","nodeType":"YulLiteral","src":"7765:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"7754:3:88","nodeType":"YulIdentifier","src":"7754:3:88"},"nativeSrc":"7754:15:88","nodeType":"YulFunctionCall","src":"7754:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7793:9:88","nodeType":"YulIdentifier","src":"7793:9:88"},{"kind":"number","nativeSrc":"7804:3:88","nodeType":"YulLiteral","src":"7804:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"7789:3:88","nodeType":"YulIdentifier","src":"7789:3:88"},"nativeSrc":"7789:19:88","nodeType":"YulFunctionCall","src":"7789:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7771:17:88","nodeType":"YulIdentifier","src":"7771:17:88"},"nativeSrc":"7771:38:88","nodeType":"YulFunctionCall","src":"7771:38:88"}],"functionName":{"name":"mstore","nativeSrc":"7747:6:88","nodeType":"YulIdentifier","src":"7747:6:88"},"nativeSrc":"7747:63:88","nodeType":"YulFunctionCall","src":"7747:63:88"},"nativeSrc":"7747:63:88","nodeType":"YulExpressionStatement","src":"7747:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7830:5:88","nodeType":"YulIdentifier","src":"7830:5:88"},{"kind":"number","nativeSrc":"7837:3:88","nodeType":"YulLiteral","src":"7837:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"7826:3:88","nodeType":"YulIdentifier","src":"7826:3:88"},"nativeSrc":"7826:15:88","nodeType":"YulFunctionCall","src":"7826:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7865:9:88","nodeType":"YulIdentifier","src":"7865:9:88"},{"kind":"number","nativeSrc":"7876:3:88","nodeType":"YulLiteral","src":"7876:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"7861:3:88","nodeType":"YulIdentifier","src":"7861:3:88"},"nativeSrc":"7861:19:88","nodeType":"YulFunctionCall","src":"7861:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7843:17:88","nodeType":"YulIdentifier","src":"7843:17:88"},"nativeSrc":"7843:38:88","nodeType":"YulFunctionCall","src":"7843:38:88"}],"functionName":{"name":"mstore","nativeSrc":"7819:6:88","nodeType":"YulIdentifier","src":"7819:6:88"},"nativeSrc":"7819:63:88","nodeType":"YulFunctionCall","src":"7819:63:88"},"nativeSrc":"7819:63:88","nodeType":"YulExpressionStatement","src":"7819:63:88"}]},"name":"abi_decode_struct_PolicyData","nativeSrc":"6199:1689:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6237:9:88","nodeType":"YulTypedName","src":"6237:9:88","type":""},{"name":"end","nativeSrc":"6248:3:88","nodeType":"YulTypedName","src":"6248:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6256:5:88","nodeType":"YulTypedName","src":"6256:5:88","type":""}],"src":"6199:1689:88"},{"body":{"nativeSrc":"7941:131:88","nodeType":"YulBlock","src":"7941:131:88","statements":[{"nativeSrc":"7951:29:88","nodeType":"YulAssignment","src":"7951:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"7973:6:88","nodeType":"YulIdentifier","src":"7973:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"7960:12:88","nodeType":"YulIdentifier","src":"7960:12:88"},"nativeSrc":"7960:20:88","nodeType":"YulFunctionCall","src":"7960:20:88"},"variableNames":[{"name":"value","nativeSrc":"7951:5:88","nodeType":"YulIdentifier","src":"7951:5:88"}]},{"body":{"nativeSrc":"8050:16:88","nodeType":"YulBlock","src":"8050:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8059:1:88","nodeType":"YulLiteral","src":"8059:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8062:1:88","nodeType":"YulLiteral","src":"8062:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8052:6:88","nodeType":"YulIdentifier","src":"8052:6:88"},"nativeSrc":"8052:12:88","nodeType":"YulFunctionCall","src":"8052:12:88"},"nativeSrc":"8052:12:88","nodeType":"YulExpressionStatement","src":"8052:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8002:5:88","nodeType":"YulIdentifier","src":"8002:5:88"},{"arguments":[{"name":"value","nativeSrc":"8013:5:88","nodeType":"YulIdentifier","src":"8013:5:88"},{"kind":"number","nativeSrc":"8020:26:88","nodeType":"YulLiteral","src":"8020:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8009:3:88","nodeType":"YulIdentifier","src":"8009:3:88"},"nativeSrc":"8009:38:88","nodeType":"YulFunctionCall","src":"8009:38:88"}],"functionName":{"name":"eq","nativeSrc":"7999:2:88","nodeType":"YulIdentifier","src":"7999:2:88"},"nativeSrc":"7999:49:88","nodeType":"YulFunctionCall","src":"7999:49:88"}],"functionName":{"name":"iszero","nativeSrc":"7992:6:88","nodeType":"YulIdentifier","src":"7992:6:88"},"nativeSrc":"7992:57:88","nodeType":"YulFunctionCall","src":"7992:57:88"},"nativeSrc":"7989:77:88","nodeType":"YulIf","src":"7989:77:88"}]},"name":"abi_decode_uint96","nativeSrc":"7893:179:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7920:6:88","nodeType":"YulTypedName","src":"7920:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7931:5:88","nodeType":"YulTypedName","src":"7931:5:88","type":""}],"src":"7893:179:88"},{"body":{"nativeSrc":"8255:389:88","nodeType":"YulBlock","src":"8255:389:88","statements":[{"body":{"nativeSrc":"8302:16:88","nodeType":"YulBlock","src":"8302:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8311:1:88","nodeType":"YulLiteral","src":"8311:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8314:1:88","nodeType":"YulLiteral","src":"8314:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8304:6:88","nodeType":"YulIdentifier","src":"8304:6:88"},"nativeSrc":"8304:12:88","nodeType":"YulFunctionCall","src":"8304:12:88"},"nativeSrc":"8304:12:88","nodeType":"YulExpressionStatement","src":"8304:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8276:7:88","nodeType":"YulIdentifier","src":"8276:7:88"},{"name":"headStart","nativeSrc":"8285:9:88","nodeType":"YulIdentifier","src":"8285:9:88"}],"functionName":{"name":"sub","nativeSrc":"8272:3:88","nodeType":"YulIdentifier","src":"8272:3:88"},"nativeSrc":"8272:23:88","nodeType":"YulFunctionCall","src":"8272:23:88"},{"kind":"number","nativeSrc":"8297:3:88","nodeType":"YulLiteral","src":"8297:3:88","type":"","value":"960"}],"functionName":{"name":"slt","nativeSrc":"8268:3:88","nodeType":"YulIdentifier","src":"8268:3:88"},"nativeSrc":"8268:33:88","nodeType":"YulFunctionCall","src":"8268:33:88"},"nativeSrc":"8265:53:88","nodeType":"YulIf","src":"8265:53:88"},{"nativeSrc":"8327:58:88","nodeType":"YulAssignment","src":"8327:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8366:9:88","nodeType":"YulIdentifier","src":"8366:9:88"},{"name":"dataEnd","nativeSrc":"8377:7:88","nodeType":"YulIdentifier","src":"8377:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"8337:28:88","nodeType":"YulIdentifier","src":"8337:28:88"},"nativeSrc":"8337:48:88","nodeType":"YulFunctionCall","src":"8337:48:88"},"variableNames":[{"name":"value0","nativeSrc":"8327:6:88","nodeType":"YulIdentifier","src":"8327:6:88"}]},{"nativeSrc":"8394:68:88","nodeType":"YulAssignment","src":"8394:68:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8437:9:88","nodeType":"YulIdentifier","src":"8437:9:88"},{"kind":"number","nativeSrc":"8448:3:88","nodeType":"YulLiteral","src":"8448:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"8433:3:88","nodeType":"YulIdentifier","src":"8433:3:88"},"nativeSrc":"8433:19:88","nodeType":"YulFunctionCall","src":"8433:19:88"},{"name":"dataEnd","nativeSrc":"8454:7:88","nodeType":"YulIdentifier","src":"8454:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"8404:28:88","nodeType":"YulIdentifier","src":"8404:28:88"},"nativeSrc":"8404:58:88","nodeType":"YulFunctionCall","src":"8404:58:88"},"variableNames":[{"name":"value1","nativeSrc":"8394:6:88","nodeType":"YulIdentifier","src":"8394:6:88"}]},{"nativeSrc":"8471:46:88","nodeType":"YulVariableDeclaration","src":"8471:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8501:9:88","nodeType":"YulIdentifier","src":"8501:9:88"},{"kind":"number","nativeSrc":"8512:3:88","nodeType":"YulLiteral","src":"8512:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"8497:3:88","nodeType":"YulIdentifier","src":"8497:3:88"},"nativeSrc":"8497:19:88","nodeType":"YulFunctionCall","src":"8497:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8484:12:88","nodeType":"YulIdentifier","src":"8484:12:88"},"nativeSrc":"8484:33:88","nodeType":"YulFunctionCall","src":"8484:33:88"},"variables":[{"name":"value","nativeSrc":"8475:5:88","nodeType":"YulTypedName","src":"8475:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8551:5:88","nodeType":"YulIdentifier","src":"8551:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8526:24:88","nodeType":"YulIdentifier","src":"8526:24:88"},"nativeSrc":"8526:31:88","nodeType":"YulFunctionCall","src":"8526:31:88"},"nativeSrc":"8526:31:88","nodeType":"YulExpressionStatement","src":"8526:31:88"},{"nativeSrc":"8566:15:88","nodeType":"YulAssignment","src":"8566:15:88","value":{"name":"value","nativeSrc":"8576:5:88","nodeType":"YulIdentifier","src":"8576:5:88"},"variableNames":[{"name":"value2","nativeSrc":"8566:6:88","nodeType":"YulIdentifier","src":"8566:6:88"}]},{"nativeSrc":"8590:48:88","nodeType":"YulAssignment","src":"8590:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8622:9:88","nodeType":"YulIdentifier","src":"8622:9:88"},{"kind":"number","nativeSrc":"8633:3:88","nodeType":"YulLiteral","src":"8633:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"8618:3:88","nodeType":"YulIdentifier","src":"8618:3:88"},"nativeSrc":"8618:19:88","nodeType":"YulFunctionCall","src":"8618:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"8600:17:88","nodeType":"YulIdentifier","src":"8600:17:88"},"nativeSrc":"8600:38:88","nodeType":"YulFunctionCall","src":"8600:38:88"},"variableNames":[{"name":"value3","nativeSrc":"8590:6:88","nodeType":"YulIdentifier","src":"8590:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96","nativeSrc":"8077:567:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8197:9:88","nodeType":"YulTypedName","src":"8197:9:88","type":""},{"name":"dataEnd","nativeSrc":"8208:7:88","nodeType":"YulTypedName","src":"8208:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8220:6:88","nodeType":"YulTypedName","src":"8220:6:88","type":""},{"name":"value1","nativeSrc":"8228:6:88","nodeType":"YulTypedName","src":"8228:6:88","type":""},{"name":"value2","nativeSrc":"8236:6:88","nodeType":"YulTypedName","src":"8236:6:88","type":""},{"name":"value3","nativeSrc":"8244:6:88","nodeType":"YulTypedName","src":"8244:6:88","type":""}],"src":"8077:567:88"},{"body":{"nativeSrc":"8750:76:88","nodeType":"YulBlock","src":"8750:76:88","statements":[{"nativeSrc":"8760:26:88","nodeType":"YulAssignment","src":"8760:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8772:9:88","nodeType":"YulIdentifier","src":"8772:9:88"},{"kind":"number","nativeSrc":"8783:2:88","nodeType":"YulLiteral","src":"8783:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8768:3:88","nodeType":"YulIdentifier","src":"8768:3:88"},"nativeSrc":"8768:18:88","nodeType":"YulFunctionCall","src":"8768:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8760:4:88","nodeType":"YulIdentifier","src":"8760:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8802:9:88","nodeType":"YulIdentifier","src":"8802:9:88"},{"name":"value0","nativeSrc":"8813:6:88","nodeType":"YulIdentifier","src":"8813:6:88"}],"functionName":{"name":"mstore","nativeSrc":"8795:6:88","nodeType":"YulIdentifier","src":"8795:6:88"},"nativeSrc":"8795:25:88","nodeType":"YulFunctionCall","src":"8795:25:88"},"nativeSrc":"8795:25:88","nodeType":"YulExpressionStatement","src":"8795:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8649:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8719:9:88","nodeType":"YulTypedName","src":"8719:9:88","type":""},{"name":"value0","nativeSrc":"8730:6:88","nodeType":"YulTypedName","src":"8730:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8741:4:88","nodeType":"YulTypedName","src":"8741:4:88","type":""}],"src":"8649:177:88"},{"body":{"nativeSrc":"8935:280:88","nodeType":"YulBlock","src":"8935:280:88","statements":[{"body":{"nativeSrc":"8981:16:88","nodeType":"YulBlock","src":"8981:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8990:1:88","nodeType":"YulLiteral","src":"8990:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8993:1:88","nodeType":"YulLiteral","src":"8993:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8983:6:88","nodeType":"YulIdentifier","src":"8983:6:88"},"nativeSrc":"8983:12:88","nodeType":"YulFunctionCall","src":"8983:12:88"},"nativeSrc":"8983:12:88","nodeType":"YulExpressionStatement","src":"8983:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8956:7:88","nodeType":"YulIdentifier","src":"8956:7:88"},{"name":"headStart","nativeSrc":"8965:9:88","nodeType":"YulIdentifier","src":"8965:9:88"}],"functionName":{"name":"sub","nativeSrc":"8952:3:88","nodeType":"YulIdentifier","src":"8952:3:88"},"nativeSrc":"8952:23:88","nodeType":"YulFunctionCall","src":"8952:23:88"},{"kind":"number","nativeSrc":"8977:2:88","nodeType":"YulLiteral","src":"8977:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8948:3:88","nodeType":"YulIdentifier","src":"8948:3:88"},"nativeSrc":"8948:32:88","nodeType":"YulFunctionCall","src":"8948:32:88"},"nativeSrc":"8945:52:88","nodeType":"YulIf","src":"8945:52:88"},{"nativeSrc":"9006:36:88","nodeType":"YulVariableDeclaration","src":"9006:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9032:9:88","nodeType":"YulIdentifier","src":"9032:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9019:12:88","nodeType":"YulIdentifier","src":"9019:12:88"},"nativeSrc":"9019:23:88","nodeType":"YulFunctionCall","src":"9019:23:88"},"variables":[{"name":"value","nativeSrc":"9010:5:88","nodeType":"YulTypedName","src":"9010:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9076:5:88","nodeType":"YulIdentifier","src":"9076:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9051:24:88","nodeType":"YulIdentifier","src":"9051:24:88"},"nativeSrc":"9051:31:88","nodeType":"YulFunctionCall","src":"9051:31:88"},"nativeSrc":"9051:31:88","nodeType":"YulExpressionStatement","src":"9051:31:88"},{"nativeSrc":"9091:15:88","nodeType":"YulAssignment","src":"9091:15:88","value":{"name":"value","nativeSrc":"9101:5:88","nodeType":"YulIdentifier","src":"9101:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9091:6:88","nodeType":"YulIdentifier","src":"9091:6:88"}]},{"nativeSrc":"9115:16:88","nodeType":"YulVariableDeclaration","src":"9115:16:88","value":{"kind":"number","nativeSrc":"9130:1:88","nodeType":"YulLiteral","src":"9130:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9119:7:88","nodeType":"YulTypedName","src":"9119:7:88","type":""}]},{"nativeSrc":"9140:43:88","nodeType":"YulAssignment","src":"9140:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9168:9:88","nodeType":"YulIdentifier","src":"9168:9:88"},{"kind":"number","nativeSrc":"9179:2:88","nodeType":"YulLiteral","src":"9179:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9164:3:88","nodeType":"YulIdentifier","src":"9164:3:88"},"nativeSrc":"9164:18:88","nodeType":"YulFunctionCall","src":"9164:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9151:12:88","nodeType":"YulIdentifier","src":"9151:12:88"},"nativeSrc":"9151:32:88","nodeType":"YulFunctionCall","src":"9151:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9140:7:88","nodeType":"YulIdentifier","src":"9140:7:88"}]},{"nativeSrc":"9192:17:88","nodeType":"YulAssignment","src":"9192:17:88","value":{"name":"value_1","nativeSrc":"9202:7:88","nodeType":"YulIdentifier","src":"9202:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9192:6:88","nodeType":"YulIdentifier","src":"9192:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_uint256","nativeSrc":"8831:384:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8893:9:88","nodeType":"YulTypedName","src":"8893:9:88","type":""},{"name":"dataEnd","nativeSrc":"8904:7:88","nodeType":"YulTypedName","src":"8904:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8916:6:88","nodeType":"YulTypedName","src":"8916:6:88","type":""},{"name":"value1","nativeSrc":"8924:6:88","nodeType":"YulTypedName","src":"8924:6:88","type":""}],"src":"8831:384:88"},{"body":{"nativeSrc":"9316:360:88","nodeType":"YulBlock","src":"9316:360:88","statements":[{"body":{"nativeSrc":"9362:16:88","nodeType":"YulBlock","src":"9362:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9371:1:88","nodeType":"YulLiteral","src":"9371:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9374:1:88","nodeType":"YulLiteral","src":"9374:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9364:6:88","nodeType":"YulIdentifier","src":"9364:6:88"},"nativeSrc":"9364:12:88","nodeType":"YulFunctionCall","src":"9364:12:88"},"nativeSrc":"9364:12:88","nodeType":"YulExpressionStatement","src":"9364:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9337:7:88","nodeType":"YulIdentifier","src":"9337:7:88"},{"name":"headStart","nativeSrc":"9346:9:88","nodeType":"YulIdentifier","src":"9346:9:88"}],"functionName":{"name":"sub","nativeSrc":"9333:3:88","nodeType":"YulIdentifier","src":"9333:3:88"},"nativeSrc":"9333:23:88","nodeType":"YulFunctionCall","src":"9333:23:88"},{"kind":"number","nativeSrc":"9358:2:88","nodeType":"YulLiteral","src":"9358:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9329:3:88","nodeType":"YulIdentifier","src":"9329:3:88"},"nativeSrc":"9329:32:88","nodeType":"YulFunctionCall","src":"9329:32:88"},"nativeSrc":"9326:52:88","nodeType":"YulIf","src":"9326:52:88"},{"nativeSrc":"9387:36:88","nodeType":"YulVariableDeclaration","src":"9387:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9413:9:88","nodeType":"YulIdentifier","src":"9413:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9400:12:88","nodeType":"YulIdentifier","src":"9400:12:88"},"nativeSrc":"9400:23:88","nodeType":"YulFunctionCall","src":"9400:23:88"},"variables":[{"name":"value","nativeSrc":"9391:5:88","nodeType":"YulTypedName","src":"9391:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9457:5:88","nodeType":"YulIdentifier","src":"9457:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9432:24:88","nodeType":"YulIdentifier","src":"9432:24:88"},"nativeSrc":"9432:31:88","nodeType":"YulFunctionCall","src":"9432:31:88"},"nativeSrc":"9432:31:88","nodeType":"YulExpressionStatement","src":"9432:31:88"},{"nativeSrc":"9472:15:88","nodeType":"YulAssignment","src":"9472:15:88","value":{"name":"value","nativeSrc":"9482:5:88","nodeType":"YulIdentifier","src":"9482:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9472:6:88","nodeType":"YulIdentifier","src":"9472:6:88"}]},{"nativeSrc":"9496:46:88","nodeType":"YulVariableDeclaration","src":"9496:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9527:9:88","nodeType":"YulIdentifier","src":"9527:9:88"},{"kind":"number","nativeSrc":"9538:2:88","nodeType":"YulLiteral","src":"9538:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9523:3:88","nodeType":"YulIdentifier","src":"9523:3:88"},"nativeSrc":"9523:18:88","nodeType":"YulFunctionCall","src":"9523:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9510:12:88","nodeType":"YulIdentifier","src":"9510:12:88"},"nativeSrc":"9510:32:88","nodeType":"YulFunctionCall","src":"9510:32:88"},"variables":[{"name":"offset","nativeSrc":"9500:6:88","nodeType":"YulTypedName","src":"9500:6:88","type":""}]},{"body":{"nativeSrc":"9585:16:88","nodeType":"YulBlock","src":"9585:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9594:1:88","nodeType":"YulLiteral","src":"9594:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9597:1:88","nodeType":"YulLiteral","src":"9597:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9587:6:88","nodeType":"YulIdentifier","src":"9587:6:88"},"nativeSrc":"9587:12:88","nodeType":"YulFunctionCall","src":"9587:12:88"},"nativeSrc":"9587:12:88","nodeType":"YulExpressionStatement","src":"9587:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9557:6:88","nodeType":"YulIdentifier","src":"9557:6:88"},{"kind":"number","nativeSrc":"9565:18:88","nodeType":"YulLiteral","src":"9565:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9554:2:88","nodeType":"YulIdentifier","src":"9554:2:88"},"nativeSrc":"9554:30:88","nodeType":"YulFunctionCall","src":"9554:30:88"},"nativeSrc":"9551:50:88","nodeType":"YulIf","src":"9551:50:88"},{"nativeSrc":"9610:60:88","nodeType":"YulAssignment","src":"9610:60:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9642:9:88","nodeType":"YulIdentifier","src":"9642:9:88"},{"name":"offset","nativeSrc":"9653:6:88","nodeType":"YulIdentifier","src":"9653:6:88"}],"functionName":{"name":"add","nativeSrc":"9638:3:88","nodeType":"YulIdentifier","src":"9638:3:88"},"nativeSrc":"9638:22:88","nodeType":"YulFunctionCall","src":"9638:22:88"},{"name":"dataEnd","nativeSrc":"9662:7:88","nodeType":"YulIdentifier","src":"9662:7:88"}],"functionName":{"name":"abi_decode_string","nativeSrc":"9620:17:88","nodeType":"YulIdentifier","src":"9620:17:88"},"nativeSrc":"9620:50:88","nodeType":"YulFunctionCall","src":"9620:50:88"},"variableNames":[{"name":"value1","nativeSrc":"9610:6:88","nodeType":"YulIdentifier","src":"9610:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"9220:456:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9274:9:88","nodeType":"YulTypedName","src":"9274:9:88","type":""},{"name":"dataEnd","nativeSrc":"9285:7:88","nodeType":"YulTypedName","src":"9285:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9297:6:88","nodeType":"YulTypedName","src":"9297:6:88","type":""},{"name":"value1","nativeSrc":"9305:6:88","nodeType":"YulTypedName","src":"9305:6:88","type":""}],"src":"9220:456:88"},{"body":{"nativeSrc":"9761:242:88","nodeType":"YulBlock","src":"9761:242:88","statements":[{"body":{"nativeSrc":"9807:16:88","nodeType":"YulBlock","src":"9807:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9816:1:88","nodeType":"YulLiteral","src":"9816:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9819:1:88","nodeType":"YulLiteral","src":"9819:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9809:6:88","nodeType":"YulIdentifier","src":"9809:6:88"},"nativeSrc":"9809:12:88","nodeType":"YulFunctionCall","src":"9809:12:88"},"nativeSrc":"9809:12:88","nodeType":"YulExpressionStatement","src":"9809:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9782:7:88","nodeType":"YulIdentifier","src":"9782:7:88"},{"name":"headStart","nativeSrc":"9791:9:88","nodeType":"YulIdentifier","src":"9791:9:88"}],"functionName":{"name":"sub","nativeSrc":"9778:3:88","nodeType":"YulIdentifier","src":"9778:3:88"},"nativeSrc":"9778:23:88","nodeType":"YulFunctionCall","src":"9778:23:88"},{"kind":"number","nativeSrc":"9803:2:88","nodeType":"YulLiteral","src":"9803:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9774:3:88","nodeType":"YulIdentifier","src":"9774:3:88"},"nativeSrc":"9774:32:88","nodeType":"YulFunctionCall","src":"9774:32:88"},"nativeSrc":"9771:52:88","nodeType":"YulIf","src":"9771:52:88"},{"nativeSrc":"9832:37:88","nodeType":"YulVariableDeclaration","src":"9832:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9859:9:88","nodeType":"YulIdentifier","src":"9859:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9846:12:88","nodeType":"YulIdentifier","src":"9846:12:88"},"nativeSrc":"9846:23:88","nodeType":"YulFunctionCall","src":"9846:23:88"},"variables":[{"name":"offset","nativeSrc":"9836:6:88","nodeType":"YulTypedName","src":"9836:6:88","type":""}]},{"body":{"nativeSrc":"9912:16:88","nodeType":"YulBlock","src":"9912:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9921:1:88","nodeType":"YulLiteral","src":"9921:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9924:1:88","nodeType":"YulLiteral","src":"9924:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9914:6:88","nodeType":"YulIdentifier","src":"9914:6:88"},"nativeSrc":"9914:12:88","nodeType":"YulFunctionCall","src":"9914:12:88"},"nativeSrc":"9914:12:88","nodeType":"YulExpressionStatement","src":"9914:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9884:6:88","nodeType":"YulIdentifier","src":"9884:6:88"},{"kind":"number","nativeSrc":"9892:18:88","nodeType":"YulLiteral","src":"9892:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9881:2:88","nodeType":"YulIdentifier","src":"9881:2:88"},"nativeSrc":"9881:30:88","nodeType":"YulFunctionCall","src":"9881:30:88"},"nativeSrc":"9878:50:88","nodeType":"YulIf","src":"9878:50:88"},{"nativeSrc":"9937:60:88","nodeType":"YulAssignment","src":"9937:60:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9969:9:88","nodeType":"YulIdentifier","src":"9969:9:88"},{"name":"offset","nativeSrc":"9980:6:88","nodeType":"YulIdentifier","src":"9980:6:88"}],"functionName":{"name":"add","nativeSrc":"9965:3:88","nodeType":"YulIdentifier","src":"9965:3:88"},"nativeSrc":"9965:22:88","nodeType":"YulFunctionCall","src":"9965:22:88"},{"name":"dataEnd","nativeSrc":"9989:7:88","nodeType":"YulIdentifier","src":"9989:7:88"}],"functionName":{"name":"abi_decode_string","nativeSrc":"9947:17:88","nodeType":"YulIdentifier","src":"9947:17:88"},"nativeSrc":"9947:50:88","nodeType":"YulFunctionCall","src":"9947:50:88"},"variableNames":[{"name":"value0","nativeSrc":"9937:6:88","nodeType":"YulIdentifier","src":"9937:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"9681:322:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9727:9:88","nodeType":"YulTypedName","src":"9727:9:88","type":""},{"name":"dataEnd","nativeSrc":"9738:7:88","nodeType":"YulTypedName","src":"9738:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9750:6:88","nodeType":"YulTypedName","src":"9750:6:88","type":""}],"src":"9681:322:88"},{"body":{"nativeSrc":"10066:56:88","nodeType":"YulBlock","src":"10066:56:88","statements":[{"body":{"nativeSrc":"10100:16:88","nodeType":"YulBlock","src":"10100:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10109:1:88","nodeType":"YulLiteral","src":"10109:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10112:1:88","nodeType":"YulLiteral","src":"10112:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10102:6:88","nodeType":"YulIdentifier","src":"10102:6:88"},"nativeSrc":"10102:12:88","nodeType":"YulFunctionCall","src":"10102:12:88"},"nativeSrc":"10102:12:88","nodeType":"YulExpressionStatement","src":"10102:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10089:5:88","nodeType":"YulIdentifier","src":"10089:5:88"},{"kind":"number","nativeSrc":"10096:1:88","nodeType":"YulLiteral","src":"10096:1:88","type":"","value":"4"}],"functionName":{"name":"lt","nativeSrc":"10086:2:88","nodeType":"YulIdentifier","src":"10086:2:88"},"nativeSrc":"10086:12:88","nodeType":"YulFunctionCall","src":"10086:12:88"}],"functionName":{"name":"iszero","nativeSrc":"10079:6:88","nodeType":"YulIdentifier","src":"10079:6:88"},"nativeSrc":"10079:20:88","nodeType":"YulFunctionCall","src":"10079:20:88"},"nativeSrc":"10076:40:88","nodeType":"YulIf","src":"10076:40:88"}]},"name":"validator_revert_enum_ComponentStatus","nativeSrc":"10008:114:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10055:5:88","nodeType":"YulTypedName","src":"10055:5:88","type":""}],"src":"10008:114:88"},{"body":{"nativeSrc":"10265:314:88","nodeType":"YulBlock","src":"10265:314:88","statements":[{"body":{"nativeSrc":"10311:16:88","nodeType":"YulBlock","src":"10311:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10320:1:88","nodeType":"YulLiteral","src":"10320:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10323:1:88","nodeType":"YulLiteral","src":"10323:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10313:6:88","nodeType":"YulIdentifier","src":"10313:6:88"},"nativeSrc":"10313:12:88","nodeType":"YulFunctionCall","src":"10313:12:88"},"nativeSrc":"10313:12:88","nodeType":"YulExpressionStatement","src":"10313:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10286:7:88","nodeType":"YulIdentifier","src":"10286:7:88"},{"name":"headStart","nativeSrc":"10295:9:88","nodeType":"YulIdentifier","src":"10295:9:88"}],"functionName":{"name":"sub","nativeSrc":"10282:3:88","nodeType":"YulIdentifier","src":"10282:3:88"},"nativeSrc":"10282:23:88","nodeType":"YulFunctionCall","src":"10282:23:88"},{"kind":"number","nativeSrc":"10307:2:88","nodeType":"YulLiteral","src":"10307:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10278:3:88","nodeType":"YulIdentifier","src":"10278:3:88"},"nativeSrc":"10278:32:88","nodeType":"YulFunctionCall","src":"10278:32:88"},"nativeSrc":"10275:52:88","nodeType":"YulIf","src":"10275:52:88"},{"nativeSrc":"10336:36:88","nodeType":"YulVariableDeclaration","src":"10336:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10362:9:88","nodeType":"YulIdentifier","src":"10362:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"10349:12:88","nodeType":"YulIdentifier","src":"10349:12:88"},"nativeSrc":"10349:23:88","nodeType":"YulFunctionCall","src":"10349:23:88"},"variables":[{"name":"value","nativeSrc":"10340:5:88","nodeType":"YulTypedName","src":"10340:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10406:5:88","nodeType":"YulIdentifier","src":"10406:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10381:24:88","nodeType":"YulIdentifier","src":"10381:24:88"},"nativeSrc":"10381:31:88","nodeType":"YulFunctionCall","src":"10381:31:88"},"nativeSrc":"10381:31:88","nodeType":"YulExpressionStatement","src":"10381:31:88"},{"nativeSrc":"10421:15:88","nodeType":"YulAssignment","src":"10421:15:88","value":{"name":"value","nativeSrc":"10431:5:88","nodeType":"YulIdentifier","src":"10431:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10421:6:88","nodeType":"YulIdentifier","src":"10421:6:88"}]},{"nativeSrc":"10445:47:88","nodeType":"YulVariableDeclaration","src":"10445:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10477:9:88","nodeType":"YulIdentifier","src":"10477:9:88"},{"kind":"number","nativeSrc":"10488:2:88","nodeType":"YulLiteral","src":"10488:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10473:3:88","nodeType":"YulIdentifier","src":"10473:3:88"},"nativeSrc":"10473:18:88","nodeType":"YulFunctionCall","src":"10473:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"10460:12:88","nodeType":"YulIdentifier","src":"10460:12:88"},"nativeSrc":"10460:32:88","nodeType":"YulFunctionCall","src":"10460:32:88"},"variables":[{"name":"value_1","nativeSrc":"10449:7:88","nodeType":"YulTypedName","src":"10449:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10539:7:88","nodeType":"YulIdentifier","src":"10539:7:88"}],"functionName":{"name":"validator_revert_enum_ComponentStatus","nativeSrc":"10501:37:88","nodeType":"YulIdentifier","src":"10501:37:88"},"nativeSrc":"10501:46:88","nodeType":"YulFunctionCall","src":"10501:46:88"},"nativeSrc":"10501:46:88","nodeType":"YulExpressionStatement","src":"10501:46:88"},{"nativeSrc":"10556:17:88","nodeType":"YulAssignment","src":"10556:17:88","value":{"name":"value_1","nativeSrc":"10566:7:88","nodeType":"YulIdentifier","src":"10566:7:88"},"variableNames":[{"name":"value1","nativeSrc":"10556:6:88","nodeType":"YulIdentifier","src":"10556:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentStatus_$15530","nativeSrc":"10127:452:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10223:9:88","nodeType":"YulTypedName","src":"10223:9:88","type":""},{"name":"dataEnd","nativeSrc":"10234:7:88","nodeType":"YulTypedName","src":"10234:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10246:6:88","nodeType":"YulTypedName","src":"10246:6:88","type":""},{"name":"value1","nativeSrc":"10254:6:88","nodeType":"YulTypedName","src":"10254:6:88","type":""}],"src":"10127:452:88"},{"body":{"nativeSrc":"10733:437:88","nodeType":"YulBlock","src":"10733:437:88","statements":[{"body":{"nativeSrc":"10780:16:88","nodeType":"YulBlock","src":"10780:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10789:1:88","nodeType":"YulLiteral","src":"10789:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10792:1:88","nodeType":"YulLiteral","src":"10792:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10782:6:88","nodeType":"YulIdentifier","src":"10782:6:88"},"nativeSrc":"10782:12:88","nodeType":"YulFunctionCall","src":"10782:12:88"},"nativeSrc":"10782:12:88","nodeType":"YulExpressionStatement","src":"10782:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10754:7:88","nodeType":"YulIdentifier","src":"10754:7:88"},{"name":"headStart","nativeSrc":"10763:9:88","nodeType":"YulIdentifier","src":"10763:9:88"}],"functionName":{"name":"sub","nativeSrc":"10750:3:88","nodeType":"YulIdentifier","src":"10750:3:88"},"nativeSrc":"10750:23:88","nodeType":"YulFunctionCall","src":"10750:23:88"},{"kind":"number","nativeSrc":"10775:3:88","nodeType":"YulLiteral","src":"10775:3:88","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"10746:3:88","nodeType":"YulIdentifier","src":"10746:3:88"},"nativeSrc":"10746:33:88","nodeType":"YulFunctionCall","src":"10746:33:88"},"nativeSrc":"10743:53:88","nodeType":"YulIf","src":"10743:53:88"},{"nativeSrc":"10805:58:88","nodeType":"YulAssignment","src":"10805:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10844:9:88","nodeType":"YulIdentifier","src":"10844:9:88"},{"name":"dataEnd","nativeSrc":"10855:7:88","nodeType":"YulIdentifier","src":"10855:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"10815:28:88","nodeType":"YulIdentifier","src":"10815:28:88"},"nativeSrc":"10815:48:88","nodeType":"YulFunctionCall","src":"10815:48:88"},"variableNames":[{"name":"value0","nativeSrc":"10805:6:88","nodeType":"YulIdentifier","src":"10805:6:88"}]},{"nativeSrc":"10872:46:88","nodeType":"YulVariableDeclaration","src":"10872:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10902:9:88","nodeType":"YulIdentifier","src":"10902:9:88"},{"kind":"number","nativeSrc":"10913:3:88","nodeType":"YulLiteral","src":"10913:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"10898:3:88","nodeType":"YulIdentifier","src":"10898:3:88"},"nativeSrc":"10898:19:88","nodeType":"YulFunctionCall","src":"10898:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10885:12:88","nodeType":"YulIdentifier","src":"10885:12:88"},"nativeSrc":"10885:33:88","nodeType":"YulFunctionCall","src":"10885:33:88"},"variables":[{"name":"value","nativeSrc":"10876:5:88","nodeType":"YulTypedName","src":"10876:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10952:5:88","nodeType":"YulIdentifier","src":"10952:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10927:24:88","nodeType":"YulIdentifier","src":"10927:24:88"},"nativeSrc":"10927:31:88","nodeType":"YulFunctionCall","src":"10927:31:88"},"nativeSrc":"10927:31:88","nodeType":"YulExpressionStatement","src":"10927:31:88"},{"nativeSrc":"10967:15:88","nodeType":"YulAssignment","src":"10967:15:88","value":{"name":"value","nativeSrc":"10977:5:88","nodeType":"YulIdentifier","src":"10977:5:88"},"variableNames":[{"name":"value1","nativeSrc":"10967:6:88","nodeType":"YulIdentifier","src":"10967:6:88"}]},{"nativeSrc":"10991:48:88","nodeType":"YulVariableDeclaration","src":"10991:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11023:9:88","nodeType":"YulIdentifier","src":"11023:9:88"},{"kind":"number","nativeSrc":"11034:3:88","nodeType":"YulLiteral","src":"11034:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"11019:3:88","nodeType":"YulIdentifier","src":"11019:3:88"},"nativeSrc":"11019:19:88","nodeType":"YulFunctionCall","src":"11019:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11006:12:88","nodeType":"YulIdentifier","src":"11006:12:88"},"nativeSrc":"11006:33:88","nodeType":"YulFunctionCall","src":"11006:33:88"},"variables":[{"name":"value_1","nativeSrc":"10995:7:88","nodeType":"YulTypedName","src":"10995:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11073:7:88","nodeType":"YulIdentifier","src":"11073:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11048:24:88","nodeType":"YulIdentifier","src":"11048:24:88"},"nativeSrc":"11048:33:88","nodeType":"YulFunctionCall","src":"11048:33:88"},"nativeSrc":"11048:33:88","nodeType":"YulExpressionStatement","src":"11048:33:88"},{"nativeSrc":"11090:17:88","nodeType":"YulAssignment","src":"11090:17:88","value":{"name":"value_1","nativeSrc":"11100:7:88","nodeType":"YulIdentifier","src":"11100:7:88"},"variableNames":[{"name":"value2","nativeSrc":"11090:6:88","nodeType":"YulIdentifier","src":"11090:6:88"}]},{"nativeSrc":"11116:48:88","nodeType":"YulAssignment","src":"11116:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11148:9:88","nodeType":"YulIdentifier","src":"11148:9:88"},{"kind":"number","nativeSrc":"11159:3:88","nodeType":"YulLiteral","src":"11159:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"11144:3:88","nodeType":"YulIdentifier","src":"11144:3:88"},"nativeSrc":"11144:19:88","nodeType":"YulFunctionCall","src":"11144:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"11126:17:88","nodeType":"YulIdentifier","src":"11126:17:88"},"nativeSrc":"11126:38:88","nodeType":"YulFunctionCall","src":"11126:38:88"},"variableNames":[{"name":"value3","nativeSrc":"11116:6:88","nodeType":"YulIdentifier","src":"11116:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96","nativeSrc":"10584:586:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10675:9:88","nodeType":"YulTypedName","src":"10675:9:88","type":""},{"name":"dataEnd","nativeSrc":"10686:7:88","nodeType":"YulTypedName","src":"10686:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10698:6:88","nodeType":"YulTypedName","src":"10698:6:88","type":""},{"name":"value1","nativeSrc":"10706:6:88","nodeType":"YulTypedName","src":"10706:6:88","type":""},{"name":"value2","nativeSrc":"10714:6:88","nodeType":"YulTypedName","src":"10714:6:88","type":""},{"name":"value3","nativeSrc":"10722:6:88","nodeType":"YulTypedName","src":"10722:6:88","type":""}],"src":"10584:586:88"},{"body":{"nativeSrc":"11248:86:88","nodeType":"YulBlock","src":"11248:86:88","statements":[{"body":{"nativeSrc":"11288:16:88","nodeType":"YulBlock","src":"11288:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11297:1:88","nodeType":"YulLiteral","src":"11297:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11300:1:88","nodeType":"YulLiteral","src":"11300:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11290:6:88","nodeType":"YulIdentifier","src":"11290:6:88"},"nativeSrc":"11290:12:88","nodeType":"YulFunctionCall","src":"11290:12:88"},"nativeSrc":"11290:12:88","nodeType":"YulExpressionStatement","src":"11290:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"11269:3:88","nodeType":"YulIdentifier","src":"11269:3:88"},{"name":"offset","nativeSrc":"11274:6:88","nodeType":"YulIdentifier","src":"11274:6:88"}],"functionName":{"name":"sub","nativeSrc":"11265:3:88","nodeType":"YulIdentifier","src":"11265:3:88"},"nativeSrc":"11265:16:88","nodeType":"YulFunctionCall","src":"11265:16:88"},{"kind":"number","nativeSrc":"11283:3:88","nodeType":"YulLiteral","src":"11283:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"11261:3:88","nodeType":"YulIdentifier","src":"11261:3:88"},"nativeSrc":"11261:26:88","nodeType":"YulFunctionCall","src":"11261:26:88"},"nativeSrc":"11258:46:88","nodeType":"YulIf","src":"11258:46:88"},{"nativeSrc":"11313:15:88","nodeType":"YulAssignment","src":"11313:15:88","value":{"name":"offset","nativeSrc":"11322:6:88","nodeType":"YulIdentifier","src":"11322:6:88"},"variableNames":[{"name":"value","nativeSrc":"11313:5:88","nodeType":"YulIdentifier","src":"11313:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"11175:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11222:6:88","nodeType":"YulTypedName","src":"11222:6:88","type":""},{"name":"end","nativeSrc":"11230:3:88","nodeType":"YulTypedName","src":"11230:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11238:5:88","nodeType":"YulTypedName","src":"11238:5:88","type":""}],"src":"11175:159:88"},{"body":{"nativeSrc":"11440:145:88","nodeType":"YulBlock","src":"11440:145:88","statements":[{"body":{"nativeSrc":"11487:16:88","nodeType":"YulBlock","src":"11487:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11496:1:88","nodeType":"YulLiteral","src":"11496:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11499:1:88","nodeType":"YulLiteral","src":"11499:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11489:6:88","nodeType":"YulIdentifier","src":"11489:6:88"},"nativeSrc":"11489:12:88","nodeType":"YulFunctionCall","src":"11489:12:88"},"nativeSrc":"11489:12:88","nodeType":"YulExpressionStatement","src":"11489:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11461:7:88","nodeType":"YulIdentifier","src":"11461:7:88"},{"name":"headStart","nativeSrc":"11470:9:88","nodeType":"YulIdentifier","src":"11470:9:88"}],"functionName":{"name":"sub","nativeSrc":"11457:3:88","nodeType":"YulIdentifier","src":"11457:3:88"},"nativeSrc":"11457:23:88","nodeType":"YulFunctionCall","src":"11457:23:88"},{"kind":"number","nativeSrc":"11482:3:88","nodeType":"YulLiteral","src":"11482:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"11453:3:88","nodeType":"YulIdentifier","src":"11453:3:88"},"nativeSrc":"11453:33:88","nodeType":"YulFunctionCall","src":"11453:33:88"},"nativeSrc":"11450:53:88","nodeType":"YulIf","src":"11450:53:88"},{"nativeSrc":"11512:67:88","nodeType":"YulAssignment","src":"11512:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11560:9:88","nodeType":"YulIdentifier","src":"11560:9:88"},{"name":"dataEnd","nativeSrc":"11571:7:88","nodeType":"YulIdentifier","src":"11571:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"11522:37:88","nodeType":"YulIdentifier","src":"11522:37:88"},"nativeSrc":"11522:57:88","nodeType":"YulFunctionCall","src":"11522:57:88"},"variableNames":[{"name":"value0","nativeSrc":"11512:6:88","nodeType":"YulIdentifier","src":"11512:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr","nativeSrc":"11339:246:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11406:9:88","nodeType":"YulTypedName","src":"11406:9:88","type":""},{"name":"dataEnd","nativeSrc":"11417:7:88","nodeType":"YulTypedName","src":"11417:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11429:6:88","nodeType":"YulTypedName","src":"11429:6:88","type":""}],"src":"11339:246:88"},{"body":{"nativeSrc":"11726:314:88","nodeType":"YulBlock","src":"11726:314:88","statements":[{"body":{"nativeSrc":"11772:16:88","nodeType":"YulBlock","src":"11772:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11781:1:88","nodeType":"YulLiteral","src":"11781:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11784:1:88","nodeType":"YulLiteral","src":"11784:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11774:6:88","nodeType":"YulIdentifier","src":"11774:6:88"},"nativeSrc":"11774:12:88","nodeType":"YulFunctionCall","src":"11774:12:88"},"nativeSrc":"11774:12:88","nodeType":"YulExpressionStatement","src":"11774:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11747:7:88","nodeType":"YulIdentifier","src":"11747:7:88"},{"name":"headStart","nativeSrc":"11756:9:88","nodeType":"YulIdentifier","src":"11756:9:88"}],"functionName":{"name":"sub","nativeSrc":"11743:3:88","nodeType":"YulIdentifier","src":"11743:3:88"},"nativeSrc":"11743:23:88","nodeType":"YulFunctionCall","src":"11743:23:88"},{"kind":"number","nativeSrc":"11768:2:88","nodeType":"YulLiteral","src":"11768:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11739:3:88","nodeType":"YulIdentifier","src":"11739:3:88"},"nativeSrc":"11739:32:88","nodeType":"YulFunctionCall","src":"11739:32:88"},"nativeSrc":"11736:52:88","nodeType":"YulIf","src":"11736:52:88"},{"nativeSrc":"11797:36:88","nodeType":"YulVariableDeclaration","src":"11797:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11823:9:88","nodeType":"YulIdentifier","src":"11823:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"11810:12:88","nodeType":"YulIdentifier","src":"11810:12:88"},"nativeSrc":"11810:23:88","nodeType":"YulFunctionCall","src":"11810:23:88"},"variables":[{"name":"value","nativeSrc":"11801:5:88","nodeType":"YulTypedName","src":"11801:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11867:5:88","nodeType":"YulIdentifier","src":"11867:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11842:24:88","nodeType":"YulIdentifier","src":"11842:24:88"},"nativeSrc":"11842:31:88","nodeType":"YulFunctionCall","src":"11842:31:88"},"nativeSrc":"11842:31:88","nodeType":"YulExpressionStatement","src":"11842:31:88"},{"nativeSrc":"11882:15:88","nodeType":"YulAssignment","src":"11882:15:88","value":{"name":"value","nativeSrc":"11892:5:88","nodeType":"YulIdentifier","src":"11892:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11882:6:88","nodeType":"YulIdentifier","src":"11882:6:88"}]},{"nativeSrc":"11906:47:88","nodeType":"YulVariableDeclaration","src":"11906:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11938:9:88","nodeType":"YulIdentifier","src":"11938:9:88"},{"kind":"number","nativeSrc":"11949:2:88","nodeType":"YulLiteral","src":"11949:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11934:3:88","nodeType":"YulIdentifier","src":"11934:3:88"},"nativeSrc":"11934:18:88","nodeType":"YulFunctionCall","src":"11934:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"11921:12:88","nodeType":"YulIdentifier","src":"11921:12:88"},"nativeSrc":"11921:32:88","nodeType":"YulFunctionCall","src":"11921:32:88"},"variables":[{"name":"value_1","nativeSrc":"11910:7:88","nodeType":"YulTypedName","src":"11910:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"12000:7:88","nodeType":"YulIdentifier","src":"12000:7:88"}],"functionName":{"name":"validator_revert_enum_ComponentStatus","nativeSrc":"11962:37:88","nodeType":"YulIdentifier","src":"11962:37:88"},"nativeSrc":"11962:46:88","nodeType":"YulFunctionCall","src":"11962:46:88"},"nativeSrc":"11962:46:88","nodeType":"YulExpressionStatement","src":"11962:46:88"},{"nativeSrc":"12017:17:88","nodeType":"YulAssignment","src":"12017:17:88","value":{"name":"value_1","nativeSrc":"12027:7:88","nodeType":"YulIdentifier","src":"12027:7:88"},"variableNames":[{"name":"value1","nativeSrc":"12017:6:88","nodeType":"YulIdentifier","src":"12017:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentKind_$15536","nativeSrc":"11590:450:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11684:9:88","nodeType":"YulTypedName","src":"11684:9:88","type":""},{"name":"dataEnd","nativeSrc":"11695:7:88","nodeType":"YulTypedName","src":"11695:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11707:6:88","nodeType":"YulTypedName","src":"11707:6:88","type":""},{"name":"value1","nativeSrc":"11715:6:88","nodeType":"YulTypedName","src":"11715:6:88","type":""}],"src":"11590:450:88"},{"body":{"nativeSrc":"12105:60:88","nodeType":"YulBlock","src":"12105:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12122:3:88","nodeType":"YulIdentifier","src":"12122:3:88"},{"arguments":[{"name":"value","nativeSrc":"12131:5:88","nodeType":"YulIdentifier","src":"12131:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12146:3:88","nodeType":"YulLiteral","src":"12146:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12151:1:88","nodeType":"YulLiteral","src":"12151:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12142:3:88","nodeType":"YulIdentifier","src":"12142:3:88"},"nativeSrc":"12142:11:88","nodeType":"YulFunctionCall","src":"12142:11:88"},{"kind":"number","nativeSrc":"12155:1:88","nodeType":"YulLiteral","src":"12155:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12138:3:88","nodeType":"YulIdentifier","src":"12138:3:88"},"nativeSrc":"12138:19:88","nodeType":"YulFunctionCall","src":"12138:19:88"}],"functionName":{"name":"and","nativeSrc":"12127:3:88","nodeType":"YulIdentifier","src":"12127:3:88"},"nativeSrc":"12127:31:88","nodeType":"YulFunctionCall","src":"12127:31:88"}],"functionName":{"name":"mstore","nativeSrc":"12115:6:88","nodeType":"YulIdentifier","src":"12115:6:88"},"nativeSrc":"12115:44:88","nodeType":"YulFunctionCall","src":"12115:44:88"},"nativeSrc":"12115:44:88","nodeType":"YulExpressionStatement","src":"12115:44:88"}]},"name":"abi_encode_contract_IAccessManager","nativeSrc":"12045:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12089:5:88","nodeType":"YulTypedName","src":"12089:5:88","type":""},{"name":"pos","nativeSrc":"12096:3:88","nodeType":"YulTypedName","src":"12096:3:88","type":""}],"src":"12045:120:88"},{"body":{"nativeSrc":"12295:102:88","nodeType":"YulBlock","src":"12295:102:88","statements":[{"nativeSrc":"12305:26:88","nodeType":"YulAssignment","src":"12305:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12317:9:88","nodeType":"YulIdentifier","src":"12317:9:88"},{"kind":"number","nativeSrc":"12328:2:88","nodeType":"YulLiteral","src":"12328:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12313:3:88","nodeType":"YulIdentifier","src":"12313:3:88"},"nativeSrc":"12313:18:88","nodeType":"YulFunctionCall","src":"12313:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12305:4:88","nodeType":"YulIdentifier","src":"12305:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12347:9:88","nodeType":"YulIdentifier","src":"12347:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12362:6:88","nodeType":"YulIdentifier","src":"12362:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12378:3:88","nodeType":"YulLiteral","src":"12378:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12383:1:88","nodeType":"YulLiteral","src":"12383:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12374:3:88","nodeType":"YulIdentifier","src":"12374:3:88"},"nativeSrc":"12374:11:88","nodeType":"YulFunctionCall","src":"12374:11:88"},{"kind":"number","nativeSrc":"12387:1:88","nodeType":"YulLiteral","src":"12387:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12370:3:88","nodeType":"YulIdentifier","src":"12370:3:88"},"nativeSrc":"12370:19:88","nodeType":"YulFunctionCall","src":"12370:19:88"}],"functionName":{"name":"and","nativeSrc":"12358:3:88","nodeType":"YulIdentifier","src":"12358:3:88"},"nativeSrc":"12358:32:88","nodeType":"YulFunctionCall","src":"12358:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12340:6:88","nodeType":"YulIdentifier","src":"12340:6:88"},"nativeSrc":"12340:51:88","nodeType":"YulFunctionCall","src":"12340:51:88"},"nativeSrc":"12340:51:88","nodeType":"YulExpressionStatement","src":"12340:51:88"}]},"name":"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed","nativeSrc":"12170:227:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12264:9:88","nodeType":"YulTypedName","src":"12264:9:88","type":""},{"name":"value0","nativeSrc":"12275:6:88","nodeType":"YulTypedName","src":"12275:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12286:4:88","nodeType":"YulTypedName","src":"12286:4:88","type":""}],"src":"12170:227:88"},{"body":{"nativeSrc":"12520:243:88","nodeType":"YulBlock","src":"12520:243:88","statements":[{"body":{"nativeSrc":"12567:16:88","nodeType":"YulBlock","src":"12567:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12576:1:88","nodeType":"YulLiteral","src":"12576:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12579:1:88","nodeType":"YulLiteral","src":"12579:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12569:6:88","nodeType":"YulIdentifier","src":"12569:6:88"},"nativeSrc":"12569:12:88","nodeType":"YulFunctionCall","src":"12569:12:88"},"nativeSrc":"12569:12:88","nodeType":"YulExpressionStatement","src":"12569:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12541:7:88","nodeType":"YulIdentifier","src":"12541:7:88"},{"name":"headStart","nativeSrc":"12550:9:88","nodeType":"YulIdentifier","src":"12550:9:88"}],"functionName":{"name":"sub","nativeSrc":"12537:3:88","nodeType":"YulIdentifier","src":"12537:3:88"},"nativeSrc":"12537:23:88","nodeType":"YulFunctionCall","src":"12537:23:88"},{"kind":"number","nativeSrc":"12562:3:88","nodeType":"YulLiteral","src":"12562:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"12533:3:88","nodeType":"YulIdentifier","src":"12533:3:88"},"nativeSrc":"12533:33:88","nodeType":"YulFunctionCall","src":"12533:33:88"},"nativeSrc":"12530:53:88","nodeType":"YulIf","src":"12530:53:88"},{"nativeSrc":"12592:67:88","nodeType":"YulAssignment","src":"12592:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12640:9:88","nodeType":"YulIdentifier","src":"12640:9:88"},{"name":"dataEnd","nativeSrc":"12651:7:88","nodeType":"YulIdentifier","src":"12651:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"12602:37:88","nodeType":"YulIdentifier","src":"12602:37:88"},"nativeSrc":"12602:57:88","nodeType":"YulFunctionCall","src":"12602:57:88"},"variableNames":[{"name":"value0","nativeSrc":"12592:6:88","nodeType":"YulIdentifier","src":"12592:6:88"}]},{"nativeSrc":"12668:14:88","nodeType":"YulVariableDeclaration","src":"12668:14:88","value":{"kind":"number","nativeSrc":"12681:1:88","nodeType":"YulLiteral","src":"12681:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"12672:5:88","nodeType":"YulTypedName","src":"12672:5:88","type":""}]},{"nativeSrc":"12691:42:88","nodeType":"YulAssignment","src":"12691:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12717:9:88","nodeType":"YulIdentifier","src":"12717:9:88"},{"kind":"number","nativeSrc":"12728:3:88","nodeType":"YulLiteral","src":"12728:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"12713:3:88","nodeType":"YulIdentifier","src":"12713:3:88"},"nativeSrc":"12713:19:88","nodeType":"YulFunctionCall","src":"12713:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"12700:12:88","nodeType":"YulIdentifier","src":"12700:12:88"},"nativeSrc":"12700:33:88","nodeType":"YulFunctionCall","src":"12700:33:88"},"variableNames":[{"name":"value","nativeSrc":"12691:5:88","nodeType":"YulIdentifier","src":"12691:5:88"}]},{"nativeSrc":"12742:15:88","nodeType":"YulAssignment","src":"12742:15:88","value":{"name":"value","nativeSrc":"12752:5:88","nodeType":"YulIdentifier","src":"12752:5:88"},"variableNames":[{"name":"value1","nativeSrc":"12742:6:88","nodeType":"YulIdentifier","src":"12742:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"12402:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12478:9:88","nodeType":"YulTypedName","src":"12478:9:88","type":""},{"name":"dataEnd","nativeSrc":"12489:7:88","nodeType":"YulTypedName","src":"12489:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12501:6:88","nodeType":"YulTypedName","src":"12501:6:88","type":""},{"name":"value1","nativeSrc":"12509:6:88","nodeType":"YulTypedName","src":"12509:6:88","type":""}],"src":"12402:361:88"},{"body":{"nativeSrc":"12904:510:88","nodeType":"YulBlock","src":"12904:510:88","statements":[{"body":{"nativeSrc":"12950:16:88","nodeType":"YulBlock","src":"12950:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12959:1:88","nodeType":"YulLiteral","src":"12959:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12962:1:88","nodeType":"YulLiteral","src":"12962:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12952:6:88","nodeType":"YulIdentifier","src":"12952:6:88"},"nativeSrc":"12952:12:88","nodeType":"YulFunctionCall","src":"12952:12:88"},"nativeSrc":"12952:12:88","nodeType":"YulExpressionStatement","src":"12952:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12925:7:88","nodeType":"YulIdentifier","src":"12925:7:88"},{"name":"headStart","nativeSrc":"12934:9:88","nodeType":"YulIdentifier","src":"12934:9:88"}],"functionName":{"name":"sub","nativeSrc":"12921:3:88","nodeType":"YulIdentifier","src":"12921:3:88"},"nativeSrc":"12921:23:88","nodeType":"YulFunctionCall","src":"12921:23:88"},{"kind":"number","nativeSrc":"12946:2:88","nodeType":"YulLiteral","src":"12946:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12917:3:88","nodeType":"YulIdentifier","src":"12917:3:88"},"nativeSrc":"12917:32:88","nodeType":"YulFunctionCall","src":"12917:32:88"},"nativeSrc":"12914:52:88","nodeType":"YulIf","src":"12914:52:88"},{"nativeSrc":"12975:37:88","nodeType":"YulVariableDeclaration","src":"12975:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13002:9:88","nodeType":"YulIdentifier","src":"13002:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"12989:12:88","nodeType":"YulIdentifier","src":"12989:12:88"},"nativeSrc":"12989:23:88","nodeType":"YulFunctionCall","src":"12989:23:88"},"variables":[{"name":"offset","nativeSrc":"12979:6:88","nodeType":"YulTypedName","src":"12979:6:88","type":""}]},{"body":{"nativeSrc":"13055:16:88","nodeType":"YulBlock","src":"13055:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13064:1:88","nodeType":"YulLiteral","src":"13064:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13067:1:88","nodeType":"YulLiteral","src":"13067:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13057:6:88","nodeType":"YulIdentifier","src":"13057:6:88"},"nativeSrc":"13057:12:88","nodeType":"YulFunctionCall","src":"13057:12:88"},"nativeSrc":"13057:12:88","nodeType":"YulExpressionStatement","src":"13057:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13027:6:88","nodeType":"YulIdentifier","src":"13027:6:88"},{"kind":"number","nativeSrc":"13035:18:88","nodeType":"YulLiteral","src":"13035:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13024:2:88","nodeType":"YulIdentifier","src":"13024:2:88"},"nativeSrc":"13024:30:88","nodeType":"YulFunctionCall","src":"13024:30:88"},"nativeSrc":"13021:50:88","nodeType":"YulIf","src":"13021:50:88"},{"nativeSrc":"13080:32:88","nodeType":"YulVariableDeclaration","src":"13080:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13094:9:88","nodeType":"YulIdentifier","src":"13094:9:88"},{"name":"offset","nativeSrc":"13105:6:88","nodeType":"YulIdentifier","src":"13105:6:88"}],"functionName":{"name":"add","nativeSrc":"13090:3:88","nodeType":"YulIdentifier","src":"13090:3:88"},"nativeSrc":"13090:22:88","nodeType":"YulFunctionCall","src":"13090:22:88"},"variables":[{"name":"_1","nativeSrc":"13084:2:88","nodeType":"YulTypedName","src":"13084:2:88","type":""}]},{"body":{"nativeSrc":"13160:16:88","nodeType":"YulBlock","src":"13160:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13169:1:88","nodeType":"YulLiteral","src":"13169:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13172:1:88","nodeType":"YulLiteral","src":"13172:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13162:6:88","nodeType":"YulIdentifier","src":"13162:6:88"},"nativeSrc":"13162:12:88","nodeType":"YulFunctionCall","src":"13162:12:88"},"nativeSrc":"13162:12:88","nodeType":"YulExpressionStatement","src":"13162:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"13139:2:88","nodeType":"YulIdentifier","src":"13139:2:88"},{"kind":"number","nativeSrc":"13143:4:88","nodeType":"YulLiteral","src":"13143:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13135:3:88","nodeType":"YulIdentifier","src":"13135:3:88"},"nativeSrc":"13135:13:88","nodeType":"YulFunctionCall","src":"13135:13:88"},{"name":"dataEnd","nativeSrc":"13150:7:88","nodeType":"YulIdentifier","src":"13150:7:88"}],"functionName":{"name":"slt","nativeSrc":"13131:3:88","nodeType":"YulIdentifier","src":"13131:3:88"},"nativeSrc":"13131:27:88","nodeType":"YulFunctionCall","src":"13131:27:88"}],"functionName":{"name":"iszero","nativeSrc":"13124:6:88","nodeType":"YulIdentifier","src":"13124:6:88"},"nativeSrc":"13124:35:88","nodeType":"YulFunctionCall","src":"13124:35:88"},"nativeSrc":"13121:55:88","nodeType":"YulIf","src":"13121:55:88"},{"nativeSrc":"13185:30:88","nodeType":"YulVariableDeclaration","src":"13185:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"13212:2:88","nodeType":"YulIdentifier","src":"13212:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"13199:12:88","nodeType":"YulIdentifier","src":"13199:12:88"},"nativeSrc":"13199:16:88","nodeType":"YulFunctionCall","src":"13199:16:88"},"variables":[{"name":"length","nativeSrc":"13189:6:88","nodeType":"YulTypedName","src":"13189:6:88","type":""}]},{"body":{"nativeSrc":"13258:16:88","nodeType":"YulBlock","src":"13258:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13267:1:88","nodeType":"YulLiteral","src":"13267:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13270:1:88","nodeType":"YulLiteral","src":"13270:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13260:6:88","nodeType":"YulIdentifier","src":"13260:6:88"},"nativeSrc":"13260:12:88","nodeType":"YulFunctionCall","src":"13260:12:88"},"nativeSrc":"13260:12:88","nodeType":"YulExpressionStatement","src":"13260:12:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13230:6:88","nodeType":"YulIdentifier","src":"13230:6:88"},{"kind":"number","nativeSrc":"13238:18:88","nodeType":"YulLiteral","src":"13238:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13227:2:88","nodeType":"YulIdentifier","src":"13227:2:88"},"nativeSrc":"13227:30:88","nodeType":"YulFunctionCall","src":"13227:30:88"},"nativeSrc":"13224:50:88","nodeType":"YulIf","src":"13224:50:88"},{"body":{"nativeSrc":"13337:16:88","nodeType":"YulBlock","src":"13337:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13346:1:88","nodeType":"YulLiteral","src":"13346:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13349:1:88","nodeType":"YulLiteral","src":"13349:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13339:6:88","nodeType":"YulIdentifier","src":"13339:6:88"},"nativeSrc":"13339:12:88","nodeType":"YulFunctionCall","src":"13339:12:88"},"nativeSrc":"13339:12:88","nodeType":"YulExpressionStatement","src":"13339:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"13297:2:88","nodeType":"YulIdentifier","src":"13297:2:88"},{"arguments":[{"name":"length","nativeSrc":"13305:6:88","nodeType":"YulIdentifier","src":"13305:6:88"},{"kind":"number","nativeSrc":"13313:6:88","nodeType":"YulLiteral","src":"13313:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"mul","nativeSrc":"13301:3:88","nodeType":"YulIdentifier","src":"13301:3:88"},"nativeSrc":"13301:19:88","nodeType":"YulFunctionCall","src":"13301:19:88"}],"functionName":{"name":"add","nativeSrc":"13293:3:88","nodeType":"YulIdentifier","src":"13293:3:88"},"nativeSrc":"13293:28:88","nodeType":"YulFunctionCall","src":"13293:28:88"},{"kind":"number","nativeSrc":"13323:2:88","nodeType":"YulLiteral","src":"13323:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13289:3:88","nodeType":"YulIdentifier","src":"13289:3:88"},"nativeSrc":"13289:37:88","nodeType":"YulFunctionCall","src":"13289:37:88"},{"name":"dataEnd","nativeSrc":"13328:7:88","nodeType":"YulIdentifier","src":"13328:7:88"}],"functionName":{"name":"gt","nativeSrc":"13286:2:88","nodeType":"YulIdentifier","src":"13286:2:88"},"nativeSrc":"13286:50:88","nodeType":"YulFunctionCall","src":"13286:50:88"},"nativeSrc":"13283:70:88","nodeType":"YulIf","src":"13283:70:88"},{"nativeSrc":"13362:21:88","nodeType":"YulAssignment","src":"13362:21:88","value":{"arguments":[{"name":"_1","nativeSrc":"13376:2:88","nodeType":"YulIdentifier","src":"13376:2:88"},{"kind":"number","nativeSrc":"13380:2:88","nodeType":"YulLiteral","src":"13380:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13372:3:88","nodeType":"YulIdentifier","src":"13372:3:88"},"nativeSrc":"13372:11:88","nodeType":"YulFunctionCall","src":"13372:11:88"},"variableNames":[{"name":"value0","nativeSrc":"13362:6:88","nodeType":"YulIdentifier","src":"13362:6:88"}]},{"nativeSrc":"13392:16:88","nodeType":"YulAssignment","src":"13392:16:88","value":{"name":"length","nativeSrc":"13402:6:88","nodeType":"YulIdentifier","src":"13402:6:88"},"variableNames":[{"name":"value1","nativeSrc":"13392:6:88","nodeType":"YulIdentifier","src":"13392:6:88"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"12768:646:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12862:9:88","nodeType":"YulTypedName","src":"12862:9:88","type":""},{"name":"dataEnd","nativeSrc":"12873:7:88","nodeType":"YulTypedName","src":"12873:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12885:6:88","nodeType":"YulTypedName","src":"12885:6:88","type":""},{"name":"value1","nativeSrc":"12893:6:88","nodeType":"YulTypedName","src":"12893:6:88","type":""}],"src":"12768:646:88"},{"body":{"nativeSrc":"13461:76:88","nodeType":"YulBlock","src":"13461:76:88","statements":[{"body":{"nativeSrc":"13515:16:88","nodeType":"YulBlock","src":"13515:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13524:1:88","nodeType":"YulLiteral","src":"13524:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13527:1:88","nodeType":"YulLiteral","src":"13527:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13517:6:88","nodeType":"YulIdentifier","src":"13517:6:88"},"nativeSrc":"13517:12:88","nodeType":"YulFunctionCall","src":"13517:12:88"},"nativeSrc":"13517:12:88","nodeType":"YulExpressionStatement","src":"13517:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13484:5:88","nodeType":"YulIdentifier","src":"13484:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13505:5:88","nodeType":"YulIdentifier","src":"13505:5:88"}],"functionName":{"name":"iszero","nativeSrc":"13498:6:88","nodeType":"YulIdentifier","src":"13498:6:88"},"nativeSrc":"13498:13:88","nodeType":"YulFunctionCall","src":"13498:13:88"}],"functionName":{"name":"iszero","nativeSrc":"13491:6:88","nodeType":"YulIdentifier","src":"13491:6:88"},"nativeSrc":"13491:21:88","nodeType":"YulFunctionCall","src":"13491:21:88"}],"functionName":{"name":"eq","nativeSrc":"13481:2:88","nodeType":"YulIdentifier","src":"13481:2:88"},"nativeSrc":"13481:32:88","nodeType":"YulFunctionCall","src":"13481:32:88"}],"functionName":{"name":"iszero","nativeSrc":"13474:6:88","nodeType":"YulIdentifier","src":"13474:6:88"},"nativeSrc":"13474:40:88","nodeType":"YulFunctionCall","src":"13474:40:88"},"nativeSrc":"13471:60:88","nodeType":"YulIf","src":"13471:60:88"}]},"name":"validator_revert_bool","nativeSrc":"13419:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13450:5:88","nodeType":"YulTypedName","src":"13450:5:88","type":""}],"src":"13419:118:88"},{"body":{"nativeSrc":"13626:298:88","nodeType":"YulBlock","src":"13626:298:88","statements":[{"body":{"nativeSrc":"13672:16:88","nodeType":"YulBlock","src":"13672:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13681:1:88","nodeType":"YulLiteral","src":"13681:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13684:1:88","nodeType":"YulLiteral","src":"13684:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13674:6:88","nodeType":"YulIdentifier","src":"13674:6:88"},"nativeSrc":"13674:12:88","nodeType":"YulFunctionCall","src":"13674:12:88"},"nativeSrc":"13674:12:88","nodeType":"YulExpressionStatement","src":"13674:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13647:7:88","nodeType":"YulIdentifier","src":"13647:7:88"},{"name":"headStart","nativeSrc":"13656:9:88","nodeType":"YulIdentifier","src":"13656:9:88"}],"functionName":{"name":"sub","nativeSrc":"13643:3:88","nodeType":"YulIdentifier","src":"13643:3:88"},"nativeSrc":"13643:23:88","nodeType":"YulFunctionCall","src":"13643:23:88"},{"kind":"number","nativeSrc":"13668:2:88","nodeType":"YulLiteral","src":"13668:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"13639:3:88","nodeType":"YulIdentifier","src":"13639:3:88"},"nativeSrc":"13639:32:88","nodeType":"YulFunctionCall","src":"13639:32:88"},"nativeSrc":"13636:52:88","nodeType":"YulIf","src":"13636:52:88"},{"nativeSrc":"13697:36:88","nodeType":"YulVariableDeclaration","src":"13697:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13723:9:88","nodeType":"YulIdentifier","src":"13723:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"13710:12:88","nodeType":"YulIdentifier","src":"13710:12:88"},"nativeSrc":"13710:23:88","nodeType":"YulFunctionCall","src":"13710:23:88"},"variables":[{"name":"value","nativeSrc":"13701:5:88","nodeType":"YulTypedName","src":"13701:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13767:5:88","nodeType":"YulIdentifier","src":"13767:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13742:24:88","nodeType":"YulIdentifier","src":"13742:24:88"},"nativeSrc":"13742:31:88","nodeType":"YulFunctionCall","src":"13742:31:88"},"nativeSrc":"13742:31:88","nodeType":"YulExpressionStatement","src":"13742:31:88"},{"nativeSrc":"13782:15:88","nodeType":"YulAssignment","src":"13782:15:88","value":{"name":"value","nativeSrc":"13792:5:88","nodeType":"YulIdentifier","src":"13792:5:88"},"variableNames":[{"name":"value0","nativeSrc":"13782:6:88","nodeType":"YulIdentifier","src":"13782:6:88"}]},{"nativeSrc":"13806:47:88","nodeType":"YulVariableDeclaration","src":"13806:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13838:9:88","nodeType":"YulIdentifier","src":"13838:9:88"},{"kind":"number","nativeSrc":"13849:2:88","nodeType":"YulLiteral","src":"13849:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13834:3:88","nodeType":"YulIdentifier","src":"13834:3:88"},"nativeSrc":"13834:18:88","nodeType":"YulFunctionCall","src":"13834:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"13821:12:88","nodeType":"YulIdentifier","src":"13821:12:88"},"nativeSrc":"13821:32:88","nodeType":"YulFunctionCall","src":"13821:32:88"},"variables":[{"name":"value_1","nativeSrc":"13810:7:88","nodeType":"YulTypedName","src":"13810:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"13884:7:88","nodeType":"YulIdentifier","src":"13884:7:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"13862:21:88","nodeType":"YulIdentifier","src":"13862:21:88"},"nativeSrc":"13862:30:88","nodeType":"YulFunctionCall","src":"13862:30:88"},"nativeSrc":"13862:30:88","nodeType":"YulExpressionStatement","src":"13862:30:88"},{"nativeSrc":"13901:17:88","nodeType":"YulAssignment","src":"13901:17:88","value":{"name":"value_1","nativeSrc":"13911:7:88","nodeType":"YulIdentifier","src":"13911:7:88"},"variableNames":[{"name":"value1","nativeSrc":"13901:6:88","nodeType":"YulIdentifier","src":"13901:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"13542:382:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13584:9:88","nodeType":"YulTypedName","src":"13584:9:88","type":""},{"name":"dataEnd","nativeSrc":"13595:7:88","nodeType":"YulTypedName","src":"13595:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13607:6:88","nodeType":"YulTypedName","src":"13607:6:88","type":""},{"name":"value1","nativeSrc":"13615:6:88","nodeType":"YulTypedName","src":"13615:6:88","type":""}],"src":"13542:382:88"},{"body":{"nativeSrc":"14059:588:88","nodeType":"YulBlock","src":"14059:588:88","statements":[{"body":{"nativeSrc":"14106:16:88","nodeType":"YulBlock","src":"14106:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14115:1:88","nodeType":"YulLiteral","src":"14115:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14118:1:88","nodeType":"YulLiteral","src":"14118:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14108:6:88","nodeType":"YulIdentifier","src":"14108:6:88"},"nativeSrc":"14108:12:88","nodeType":"YulFunctionCall","src":"14108:12:88"},"nativeSrc":"14108:12:88","nodeType":"YulExpressionStatement","src":"14108:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14080:7:88","nodeType":"YulIdentifier","src":"14080:7:88"},{"name":"headStart","nativeSrc":"14089:9:88","nodeType":"YulIdentifier","src":"14089:9:88"}],"functionName":{"name":"sub","nativeSrc":"14076:3:88","nodeType":"YulIdentifier","src":"14076:3:88"},"nativeSrc":"14076:23:88","nodeType":"YulFunctionCall","src":"14076:23:88"},{"kind":"number","nativeSrc":"14101:3:88","nodeType":"YulLiteral","src":"14101:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"14072:3:88","nodeType":"YulIdentifier","src":"14072:3:88"},"nativeSrc":"14072:33:88","nodeType":"YulFunctionCall","src":"14072:33:88"},"nativeSrc":"14069:53:88","nodeType":"YulIf","src":"14069:53:88"},{"nativeSrc":"14131:36:88","nodeType":"YulVariableDeclaration","src":"14131:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14157:9:88","nodeType":"YulIdentifier","src":"14157:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"14144:12:88","nodeType":"YulIdentifier","src":"14144:12:88"},"nativeSrc":"14144:23:88","nodeType":"YulFunctionCall","src":"14144:23:88"},"variables":[{"name":"value","nativeSrc":"14135:5:88","nodeType":"YulTypedName","src":"14135:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14201:5:88","nodeType":"YulIdentifier","src":"14201:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"14176:24:88","nodeType":"YulIdentifier","src":"14176:24:88"},"nativeSrc":"14176:31:88","nodeType":"YulFunctionCall","src":"14176:31:88"},"nativeSrc":"14176:31:88","nodeType":"YulExpressionStatement","src":"14176:31:88"},{"nativeSrc":"14216:15:88","nodeType":"YulAssignment","src":"14216:15:88","value":{"name":"value","nativeSrc":"14226:5:88","nodeType":"YulIdentifier","src":"14226:5:88"},"variableNames":[{"name":"value0","nativeSrc":"14216:6:88","nodeType":"YulIdentifier","src":"14216:6:88"}]},{"nativeSrc":"14240:47:88","nodeType":"YulVariableDeclaration","src":"14240:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14272:9:88","nodeType":"YulIdentifier","src":"14272:9:88"},{"kind":"number","nativeSrc":"14283:2:88","nodeType":"YulLiteral","src":"14283:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14268:3:88","nodeType":"YulIdentifier","src":"14268:3:88"},"nativeSrc":"14268:18:88","nodeType":"YulFunctionCall","src":"14268:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"14255:12:88","nodeType":"YulIdentifier","src":"14255:12:88"},"nativeSrc":"14255:32:88","nodeType":"YulFunctionCall","src":"14255:32:88"},"variables":[{"name":"value_1","nativeSrc":"14244:7:88","nodeType":"YulTypedName","src":"14244:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"14321:7:88","nodeType":"YulIdentifier","src":"14321:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"14296:24:88","nodeType":"YulIdentifier","src":"14296:24:88"},"nativeSrc":"14296:33:88","nodeType":"YulFunctionCall","src":"14296:33:88"},"nativeSrc":"14296:33:88","nodeType":"YulExpressionStatement","src":"14296:33:88"},{"nativeSrc":"14338:17:88","nodeType":"YulAssignment","src":"14338:17:88","value":{"name":"value_1","nativeSrc":"14348:7:88","nodeType":"YulIdentifier","src":"14348:7:88"},"variableNames":[{"name":"value1","nativeSrc":"14338:6:88","nodeType":"YulIdentifier","src":"14338:6:88"}]},{"nativeSrc":"14364:16:88","nodeType":"YulVariableDeclaration","src":"14364:16:88","value":{"kind":"number","nativeSrc":"14379:1:88","nodeType":"YulLiteral","src":"14379:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"14368:7:88","nodeType":"YulTypedName","src":"14368:7:88","type":""}]},{"nativeSrc":"14389:43:88","nodeType":"YulAssignment","src":"14389:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14417:9:88","nodeType":"YulIdentifier","src":"14417:9:88"},{"kind":"number","nativeSrc":"14428:2:88","nodeType":"YulLiteral","src":"14428:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14413:3:88","nodeType":"YulIdentifier","src":"14413:3:88"},"nativeSrc":"14413:18:88","nodeType":"YulFunctionCall","src":"14413:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"14400:12:88","nodeType":"YulIdentifier","src":"14400:12:88"},"nativeSrc":"14400:32:88","nodeType":"YulFunctionCall","src":"14400:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"14389:7:88","nodeType":"YulIdentifier","src":"14389:7:88"}]},{"nativeSrc":"14441:17:88","nodeType":"YulAssignment","src":"14441:17:88","value":{"name":"value_2","nativeSrc":"14451:7:88","nodeType":"YulIdentifier","src":"14451:7:88"},"variableNames":[{"name":"value2","nativeSrc":"14441:6:88","nodeType":"YulIdentifier","src":"14441:6:88"}]},{"nativeSrc":"14467:46:88","nodeType":"YulVariableDeclaration","src":"14467:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14498:9:88","nodeType":"YulIdentifier","src":"14498:9:88"},{"kind":"number","nativeSrc":"14509:2:88","nodeType":"YulLiteral","src":"14509:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14494:3:88","nodeType":"YulIdentifier","src":"14494:3:88"},"nativeSrc":"14494:18:88","nodeType":"YulFunctionCall","src":"14494:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"14481:12:88","nodeType":"YulIdentifier","src":"14481:12:88"},"nativeSrc":"14481:32:88","nodeType":"YulFunctionCall","src":"14481:32:88"},"variables":[{"name":"offset","nativeSrc":"14471:6:88","nodeType":"YulTypedName","src":"14471:6:88","type":""}]},{"body":{"nativeSrc":"14556:16:88","nodeType":"YulBlock","src":"14556:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14565:1:88","nodeType":"YulLiteral","src":"14565:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14568:1:88","nodeType":"YulLiteral","src":"14568:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14558:6:88","nodeType":"YulIdentifier","src":"14558:6:88"},"nativeSrc":"14558:12:88","nodeType":"YulFunctionCall","src":"14558:12:88"},"nativeSrc":"14558:12:88","nodeType":"YulExpressionStatement","src":"14558:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14528:6:88","nodeType":"YulIdentifier","src":"14528:6:88"},{"kind":"number","nativeSrc":"14536:18:88","nodeType":"YulLiteral","src":"14536:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14525:2:88","nodeType":"YulIdentifier","src":"14525:2:88"},"nativeSrc":"14525:30:88","nodeType":"YulFunctionCall","src":"14525:30:88"},"nativeSrc":"14522:50:88","nodeType":"YulIf","src":"14522:50:88"},{"nativeSrc":"14581:60:88","nodeType":"YulAssignment","src":"14581:60:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14613:9:88","nodeType":"YulIdentifier","src":"14613:9:88"},{"name":"offset","nativeSrc":"14624:6:88","nodeType":"YulIdentifier","src":"14624:6:88"}],"functionName":{"name":"add","nativeSrc":"14609:3:88","nodeType":"YulIdentifier","src":"14609:3:88"},"nativeSrc":"14609:22:88","nodeType":"YulFunctionCall","src":"14609:22:88"},{"name":"dataEnd","nativeSrc":"14633:7:88","nodeType":"YulIdentifier","src":"14633:7:88"}],"functionName":{"name":"abi_decode_string","nativeSrc":"14591:17:88","nodeType":"YulIdentifier","src":"14591:17:88"},"nativeSrc":"14591:50:88","nodeType":"YulFunctionCall","src":"14591:50:88"},"variableNames":[{"name":"value3","nativeSrc":"14581:6:88","nodeType":"YulIdentifier","src":"14581:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"13929:718:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14001:9:88","nodeType":"YulTypedName","src":"14001:9:88","type":""},{"name":"dataEnd","nativeSrc":"14012:7:88","nodeType":"YulTypedName","src":"14012:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14024:6:88","nodeType":"YulTypedName","src":"14024:6:88","type":""},{"name":"value1","nativeSrc":"14032:6:88","nodeType":"YulTypedName","src":"14032:6:88","type":""},{"name":"value2","nativeSrc":"14040:6:88","nodeType":"YulTypedName","src":"14040:6:88","type":""},{"name":"value3","nativeSrc":"14048:6:88","nodeType":"YulTypedName","src":"14048:6:88","type":""}],"src":"13929:718:88"},{"body":{"nativeSrc":"14759:233:88","nodeType":"YulBlock","src":"14759:233:88","statements":[{"body":{"nativeSrc":"14805:16:88","nodeType":"YulBlock","src":"14805:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14814:1:88","nodeType":"YulLiteral","src":"14814:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14817:1:88","nodeType":"YulLiteral","src":"14817:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14807:6:88","nodeType":"YulIdentifier","src":"14807:6:88"},"nativeSrc":"14807:12:88","nodeType":"YulFunctionCall","src":"14807:12:88"},"nativeSrc":"14807:12:88","nodeType":"YulExpressionStatement","src":"14807:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14780:7:88","nodeType":"YulIdentifier","src":"14780:7:88"},{"name":"headStart","nativeSrc":"14789:9:88","nodeType":"YulIdentifier","src":"14789:9:88"}],"functionName":{"name":"sub","nativeSrc":"14776:3:88","nodeType":"YulIdentifier","src":"14776:3:88"},"nativeSrc":"14776:23:88","nodeType":"YulFunctionCall","src":"14776:23:88"},{"kind":"number","nativeSrc":"14801:2:88","nodeType":"YulLiteral","src":"14801:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"14772:3:88","nodeType":"YulIdentifier","src":"14772:3:88"},"nativeSrc":"14772:32:88","nodeType":"YulFunctionCall","src":"14772:32:88"},"nativeSrc":"14769:52:88","nodeType":"YulIf","src":"14769:52:88"},{"nativeSrc":"14830:36:88","nodeType":"YulVariableDeclaration","src":"14830:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14856:9:88","nodeType":"YulIdentifier","src":"14856:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"14843:12:88","nodeType":"YulIdentifier","src":"14843:12:88"},"nativeSrc":"14843:23:88","nodeType":"YulFunctionCall","src":"14843:23:88"},"variables":[{"name":"value","nativeSrc":"14834:5:88","nodeType":"YulTypedName","src":"14834:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14900:5:88","nodeType":"YulIdentifier","src":"14900:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"14875:24:88","nodeType":"YulIdentifier","src":"14875:24:88"},"nativeSrc":"14875:31:88","nodeType":"YulFunctionCall","src":"14875:31:88"},"nativeSrc":"14875:31:88","nodeType":"YulExpressionStatement","src":"14875:31:88"},{"nativeSrc":"14915:15:88","nodeType":"YulAssignment","src":"14915:15:88","value":{"name":"value","nativeSrc":"14925:5:88","nodeType":"YulIdentifier","src":"14925:5:88"},"variableNames":[{"name":"value0","nativeSrc":"14915:6:88","nodeType":"YulIdentifier","src":"14915:6:88"}]},{"nativeSrc":"14939:47:88","nodeType":"YulAssignment","src":"14939:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14971:9:88","nodeType":"YulIdentifier","src":"14971:9:88"},{"kind":"number","nativeSrc":"14982:2:88","nodeType":"YulLiteral","src":"14982:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14967:3:88","nodeType":"YulIdentifier","src":"14967:3:88"},"nativeSrc":"14967:18:88","nodeType":"YulFunctionCall","src":"14967:18:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"14949:17:88","nodeType":"YulIdentifier","src":"14949:17:88"},"nativeSrc":"14949:37:88","nodeType":"YulFunctionCall","src":"14949:37:88"},"variableNames":[{"name":"value1","nativeSrc":"14939:6:88","nodeType":"YulIdentifier","src":"14939:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IRiskModule_$23983t_uint96","nativeSrc":"14652:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14717:9:88","nodeType":"YulTypedName","src":"14717:9:88","type":""},{"name":"dataEnd","nativeSrc":"14728:7:88","nodeType":"YulTypedName","src":"14728:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14740:6:88","nodeType":"YulTypedName","src":"14740:6:88","type":""},{"name":"value1","nativeSrc":"14748:6:88","nodeType":"YulTypedName","src":"14748:6:88","type":""}],"src":"14652:340:88"},{"body":{"nativeSrc":"15121:102:88","nodeType":"YulBlock","src":"15121:102:88","statements":[{"nativeSrc":"15131:26:88","nodeType":"YulAssignment","src":"15131:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15143:9:88","nodeType":"YulIdentifier","src":"15143:9:88"},{"kind":"number","nativeSrc":"15154:2:88","nodeType":"YulLiteral","src":"15154:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15139:3:88","nodeType":"YulIdentifier","src":"15139:3:88"},"nativeSrc":"15139:18:88","nodeType":"YulFunctionCall","src":"15139:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15131:4:88","nodeType":"YulIdentifier","src":"15131:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15173:9:88","nodeType":"YulIdentifier","src":"15173:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15188:6:88","nodeType":"YulIdentifier","src":"15188:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15204:3:88","nodeType":"YulLiteral","src":"15204:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15209:1:88","nodeType":"YulLiteral","src":"15209:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15200:3:88","nodeType":"YulIdentifier","src":"15200:3:88"},"nativeSrc":"15200:11:88","nodeType":"YulFunctionCall","src":"15200:11:88"},{"kind":"number","nativeSrc":"15213:1:88","nodeType":"YulLiteral","src":"15213:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15196:3:88","nodeType":"YulIdentifier","src":"15196:3:88"},"nativeSrc":"15196:19:88","nodeType":"YulFunctionCall","src":"15196:19:88"}],"functionName":{"name":"and","nativeSrc":"15184:3:88","nodeType":"YulIdentifier","src":"15184:3:88"},"nativeSrc":"15184:32:88","nodeType":"YulFunctionCall","src":"15184:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15166:6:88","nodeType":"YulIdentifier","src":"15166:6:88"},"nativeSrc":"15166:51:88","nodeType":"YulFunctionCall","src":"15166:51:88"},"nativeSrc":"15166:51:88","nodeType":"YulExpressionStatement","src":"15166:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"14997:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15090:9:88","nodeType":"YulTypedName","src":"15090:9:88","type":""},{"name":"value0","nativeSrc":"15101:6:88","nodeType":"YulTypedName","src":"15101:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15112:4:88","nodeType":"YulTypedName","src":"15112:4:88","type":""}],"src":"14997:226:88"},{"body":{"nativeSrc":"15315:301:88","nodeType":"YulBlock","src":"15315:301:88","statements":[{"body":{"nativeSrc":"15361:16:88","nodeType":"YulBlock","src":"15361:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15370:1:88","nodeType":"YulLiteral","src":"15370:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15373:1:88","nodeType":"YulLiteral","src":"15373:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15363:6:88","nodeType":"YulIdentifier","src":"15363:6:88"},"nativeSrc":"15363:12:88","nodeType":"YulFunctionCall","src":"15363:12:88"},"nativeSrc":"15363:12:88","nodeType":"YulExpressionStatement","src":"15363:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15336:7:88","nodeType":"YulIdentifier","src":"15336:7:88"},{"name":"headStart","nativeSrc":"15345:9:88","nodeType":"YulIdentifier","src":"15345:9:88"}],"functionName":{"name":"sub","nativeSrc":"15332:3:88","nodeType":"YulIdentifier","src":"15332:3:88"},"nativeSrc":"15332:23:88","nodeType":"YulFunctionCall","src":"15332:23:88"},{"kind":"number","nativeSrc":"15357:2:88","nodeType":"YulLiteral","src":"15357:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15328:3:88","nodeType":"YulIdentifier","src":"15328:3:88"},"nativeSrc":"15328:32:88","nodeType":"YulFunctionCall","src":"15328:32:88"},"nativeSrc":"15325:52:88","nodeType":"YulIf","src":"15325:52:88"},{"nativeSrc":"15386:36:88","nodeType":"YulVariableDeclaration","src":"15386:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15412:9:88","nodeType":"YulIdentifier","src":"15412:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"15399:12:88","nodeType":"YulIdentifier","src":"15399:12:88"},"nativeSrc":"15399:23:88","nodeType":"YulFunctionCall","src":"15399:23:88"},"variables":[{"name":"value","nativeSrc":"15390:5:88","nodeType":"YulTypedName","src":"15390:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15456:5:88","nodeType":"YulIdentifier","src":"15456:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15431:24:88","nodeType":"YulIdentifier","src":"15431:24:88"},"nativeSrc":"15431:31:88","nodeType":"YulFunctionCall","src":"15431:31:88"},"nativeSrc":"15431:31:88","nodeType":"YulExpressionStatement","src":"15431:31:88"},{"nativeSrc":"15471:15:88","nodeType":"YulAssignment","src":"15471:15:88","value":{"name":"value","nativeSrc":"15481:5:88","nodeType":"YulIdentifier","src":"15481:5:88"},"variableNames":[{"name":"value0","nativeSrc":"15471:6:88","nodeType":"YulIdentifier","src":"15471:6:88"}]},{"nativeSrc":"15495:47:88","nodeType":"YulVariableDeclaration","src":"15495:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15527:9:88","nodeType":"YulIdentifier","src":"15527:9:88"},{"kind":"number","nativeSrc":"15538:2:88","nodeType":"YulLiteral","src":"15538:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15523:3:88","nodeType":"YulIdentifier","src":"15523:3:88"},"nativeSrc":"15523:18:88","nodeType":"YulFunctionCall","src":"15523:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"15510:12:88","nodeType":"YulIdentifier","src":"15510:12:88"},"nativeSrc":"15510:32:88","nodeType":"YulFunctionCall","src":"15510:32:88"},"variables":[{"name":"value_1","nativeSrc":"15499:7:88","nodeType":"YulTypedName","src":"15499:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"15576:7:88","nodeType":"YulIdentifier","src":"15576:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15551:24:88","nodeType":"YulIdentifier","src":"15551:24:88"},"nativeSrc":"15551:33:88","nodeType":"YulFunctionCall","src":"15551:33:88"},"nativeSrc":"15551:33:88","nodeType":"YulExpressionStatement","src":"15551:33:88"},{"nativeSrc":"15593:17:88","nodeType":"YulAssignment","src":"15593:17:88","value":{"name":"value_1","nativeSrc":"15603:7:88","nodeType":"YulIdentifier","src":"15603:7:88"},"variableNames":[{"name":"value1","nativeSrc":"15593:6:88","nodeType":"YulIdentifier","src":"15593:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"15228:388:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15273:9:88","nodeType":"YulTypedName","src":"15273:9:88","type":""},{"name":"dataEnd","nativeSrc":"15284:7:88","nodeType":"YulTypedName","src":"15284:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15296:6:88","nodeType":"YulTypedName","src":"15296:6:88","type":""},{"name":"value1","nativeSrc":"15304:6:88","nodeType":"YulTypedName","src":"15304:6:88","type":""}],"src":"15228:388:88"},{"body":{"nativeSrc":"15736:261:88","nodeType":"YulBlock","src":"15736:261:88","statements":[{"body":{"nativeSrc":"15783:16:88","nodeType":"YulBlock","src":"15783:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15792:1:88","nodeType":"YulLiteral","src":"15792:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15795:1:88","nodeType":"YulLiteral","src":"15795:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15785:6:88","nodeType":"YulIdentifier","src":"15785:6:88"},"nativeSrc":"15785:12:88","nodeType":"YulFunctionCall","src":"15785:12:88"},"nativeSrc":"15785:12:88","nodeType":"YulExpressionStatement","src":"15785:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15757:7:88","nodeType":"YulIdentifier","src":"15757:7:88"},{"name":"headStart","nativeSrc":"15766:9:88","nodeType":"YulIdentifier","src":"15766:9:88"}],"functionName":{"name":"sub","nativeSrc":"15753:3:88","nodeType":"YulIdentifier","src":"15753:3:88"},"nativeSrc":"15753:23:88","nodeType":"YulFunctionCall","src":"15753:23:88"},{"kind":"number","nativeSrc":"15778:3:88","nodeType":"YulLiteral","src":"15778:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"15749:3:88","nodeType":"YulIdentifier","src":"15749:3:88"},"nativeSrc":"15749:33:88","nodeType":"YulFunctionCall","src":"15749:33:88"},"nativeSrc":"15746:53:88","nodeType":"YulIf","src":"15746:53:88"},{"nativeSrc":"15808:67:88","nodeType":"YulAssignment","src":"15808:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15856:9:88","nodeType":"YulIdentifier","src":"15856:9:88"},{"name":"dataEnd","nativeSrc":"15867:7:88","nodeType":"YulIdentifier","src":"15867:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"15818:37:88","nodeType":"YulIdentifier","src":"15818:37:88"},"nativeSrc":"15818:57:88","nodeType":"YulFunctionCall","src":"15818:57:88"},"variableNames":[{"name":"value0","nativeSrc":"15808:6:88","nodeType":"YulIdentifier","src":"15808:6:88"}]},{"nativeSrc":"15884:46:88","nodeType":"YulVariableDeclaration","src":"15884:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15914:9:88","nodeType":"YulIdentifier","src":"15914:9:88"},{"kind":"number","nativeSrc":"15925:3:88","nodeType":"YulLiteral","src":"15925:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"15910:3:88","nodeType":"YulIdentifier","src":"15910:3:88"},"nativeSrc":"15910:19:88","nodeType":"YulFunctionCall","src":"15910:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"15897:12:88","nodeType":"YulIdentifier","src":"15897:12:88"},"nativeSrc":"15897:33:88","nodeType":"YulFunctionCall","src":"15897:33:88"},"variables":[{"name":"value","nativeSrc":"15888:5:88","nodeType":"YulTypedName","src":"15888:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15961:5:88","nodeType":"YulIdentifier","src":"15961:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"15939:21:88","nodeType":"YulIdentifier","src":"15939:21:88"},"nativeSrc":"15939:28:88","nodeType":"YulFunctionCall","src":"15939:28:88"},"nativeSrc":"15939:28:88","nodeType":"YulExpressionStatement","src":"15939:28:88"},{"nativeSrc":"15976:15:88","nodeType":"YulAssignment","src":"15976:15:88","value":{"name":"value","nativeSrc":"15986:5:88","nodeType":"YulIdentifier","src":"15986:5:88"},"variableNames":[{"name":"value1","nativeSrc":"15976:6:88","nodeType":"YulIdentifier","src":"15976:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool","nativeSrc":"15621:376:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15694:9:88","nodeType":"YulTypedName","src":"15694:9:88","type":""},{"name":"dataEnd","nativeSrc":"15705:7:88","nodeType":"YulTypedName","src":"15705:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15717:6:88","nodeType":"YulTypedName","src":"15717:6:88","type":""},{"name":"value1","nativeSrc":"15725:6:88","nodeType":"YulTypedName","src":"15725:6:88","type":""}],"src":"15621:376:88"},{"body":{"nativeSrc":"16057:325:88","nodeType":"YulBlock","src":"16057:325:88","statements":[{"nativeSrc":"16067:22:88","nodeType":"YulAssignment","src":"16067:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"16081:1:88","nodeType":"YulLiteral","src":"16081:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"16084:4:88","nodeType":"YulIdentifier","src":"16084:4:88"}],"functionName":{"name":"shr","nativeSrc":"16077:3:88","nodeType":"YulIdentifier","src":"16077:3:88"},"nativeSrc":"16077:12:88","nodeType":"YulFunctionCall","src":"16077:12:88"},"variableNames":[{"name":"length","nativeSrc":"16067:6:88","nodeType":"YulIdentifier","src":"16067:6:88"}]},{"nativeSrc":"16098:38:88","nodeType":"YulVariableDeclaration","src":"16098:38:88","value":{"arguments":[{"name":"data","nativeSrc":"16128:4:88","nodeType":"YulIdentifier","src":"16128:4:88"},{"kind":"number","nativeSrc":"16134:1:88","nodeType":"YulLiteral","src":"16134:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16124:3:88","nodeType":"YulIdentifier","src":"16124:3:88"},"nativeSrc":"16124:12:88","nodeType":"YulFunctionCall","src":"16124:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"16102:18:88","nodeType":"YulTypedName","src":"16102:18:88","type":""}]},{"body":{"nativeSrc":"16175:31:88","nodeType":"YulBlock","src":"16175:31:88","statements":[{"nativeSrc":"16177:27:88","nodeType":"YulAssignment","src":"16177:27:88","value":{"arguments":[{"name":"length","nativeSrc":"16191:6:88","nodeType":"YulIdentifier","src":"16191:6:88"},{"kind":"number","nativeSrc":"16199:4:88","nodeType":"YulLiteral","src":"16199:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"16187:3:88","nodeType":"YulIdentifier","src":"16187:3:88"},"nativeSrc":"16187:17:88","nodeType":"YulFunctionCall","src":"16187:17:88"},"variableNames":[{"name":"length","nativeSrc":"16177:6:88","nodeType":"YulIdentifier","src":"16177:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16155:18:88","nodeType":"YulIdentifier","src":"16155:18:88"}],"functionName":{"name":"iszero","nativeSrc":"16148:6:88","nodeType":"YulIdentifier","src":"16148:6:88"},"nativeSrc":"16148:26:88","nodeType":"YulFunctionCall","src":"16148:26:88"},"nativeSrc":"16145:61:88","nodeType":"YulIf","src":"16145:61:88"},{"body":{"nativeSrc":"16265:111:88","nodeType":"YulBlock","src":"16265:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16286:1:88","nodeType":"YulLiteral","src":"16286:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"16293:3:88","nodeType":"YulLiteral","src":"16293:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"16298:10:88","nodeType":"YulLiteral","src":"16298:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"16289:3:88","nodeType":"YulIdentifier","src":"16289:3:88"},"nativeSrc":"16289:20:88","nodeType":"YulFunctionCall","src":"16289:20:88"}],"functionName":{"name":"mstore","nativeSrc":"16279:6:88","nodeType":"YulIdentifier","src":"16279:6:88"},"nativeSrc":"16279:31:88","nodeType":"YulFunctionCall","src":"16279:31:88"},"nativeSrc":"16279:31:88","nodeType":"YulExpressionStatement","src":"16279:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16330:1:88","nodeType":"YulLiteral","src":"16330:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"16333:4:88","nodeType":"YulLiteral","src":"16333:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"16323:6:88","nodeType":"YulIdentifier","src":"16323:6:88"},"nativeSrc":"16323:15:88","nodeType":"YulFunctionCall","src":"16323:15:88"},"nativeSrc":"16323:15:88","nodeType":"YulExpressionStatement","src":"16323:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16358:1:88","nodeType":"YulLiteral","src":"16358:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"16361:4:88","nodeType":"YulLiteral","src":"16361:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16351:6:88","nodeType":"YulIdentifier","src":"16351:6:88"},"nativeSrc":"16351:15:88","nodeType":"YulFunctionCall","src":"16351:15:88"},"nativeSrc":"16351:15:88","nodeType":"YulExpressionStatement","src":"16351:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16221:18:88","nodeType":"YulIdentifier","src":"16221:18:88"},{"arguments":[{"name":"length","nativeSrc":"16244:6:88","nodeType":"YulIdentifier","src":"16244:6:88"},{"kind":"number","nativeSrc":"16252:2:88","nodeType":"YulLiteral","src":"16252:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"16241:2:88","nodeType":"YulIdentifier","src":"16241:2:88"},"nativeSrc":"16241:14:88","nodeType":"YulFunctionCall","src":"16241:14:88"}],"functionName":{"name":"eq","nativeSrc":"16218:2:88","nodeType":"YulIdentifier","src":"16218:2:88"},"nativeSrc":"16218:38:88","nodeType":"YulFunctionCall","src":"16218:38:88"},"nativeSrc":"16215:161:88","nodeType":"YulIf","src":"16215:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"16002:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"16037:4:88","nodeType":"YulTypedName","src":"16037:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16046:6:88","nodeType":"YulTypedName","src":"16046:6:88","type":""}],"src":"16002:380:88"},{"body":{"nativeSrc":"16561:236:88","nodeType":"YulBlock","src":"16561:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16578:9:88","nodeType":"YulIdentifier","src":"16578:9:88"},{"kind":"number","nativeSrc":"16589:2:88","nodeType":"YulLiteral","src":"16589:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16571:6:88","nodeType":"YulIdentifier","src":"16571:6:88"},"nativeSrc":"16571:21:88","nodeType":"YulFunctionCall","src":"16571:21:88"},"nativeSrc":"16571:21:88","nodeType":"YulExpressionStatement","src":"16571:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16612:9:88","nodeType":"YulIdentifier","src":"16612:9:88"},{"kind":"number","nativeSrc":"16623:2:88","nodeType":"YulLiteral","src":"16623:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16608:3:88","nodeType":"YulIdentifier","src":"16608:3:88"},"nativeSrc":"16608:18:88","nodeType":"YulFunctionCall","src":"16608:18:88"},{"kind":"number","nativeSrc":"16628:2:88","nodeType":"YulLiteral","src":"16628:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"16601:6:88","nodeType":"YulIdentifier","src":"16601:6:88"},"nativeSrc":"16601:30:88","nodeType":"YulFunctionCall","src":"16601:30:88"},"nativeSrc":"16601:30:88","nodeType":"YulExpressionStatement","src":"16601:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16651:9:88","nodeType":"YulIdentifier","src":"16651:9:88"},{"kind":"number","nativeSrc":"16662:2:88","nodeType":"YulLiteral","src":"16662:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16647:3:88","nodeType":"YulIdentifier","src":"16647:3:88"},"nativeSrc":"16647:18:88","nodeType":"YulFunctionCall","src":"16647:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"16667:34:88","nodeType":"YulLiteral","src":"16667:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"16640:6:88","nodeType":"YulIdentifier","src":"16640:6:88"},"nativeSrc":"16640:62:88","nodeType":"YulFunctionCall","src":"16640:62:88"},"nativeSrc":"16640:62:88","nodeType":"YulExpressionStatement","src":"16640:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16722:9:88","nodeType":"YulIdentifier","src":"16722:9:88"},{"kind":"number","nativeSrc":"16733:2:88","nodeType":"YulLiteral","src":"16733:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16718:3:88","nodeType":"YulIdentifier","src":"16718:3:88"},"nativeSrc":"16718:18:88","nodeType":"YulFunctionCall","src":"16718:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"16738:16:88","nodeType":"YulLiteral","src":"16738:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"16711:6:88","nodeType":"YulIdentifier","src":"16711:6:88"},"nativeSrc":"16711:44:88","nodeType":"YulFunctionCall","src":"16711:44:88"},"nativeSrc":"16711:44:88","nodeType":"YulExpressionStatement","src":"16711:44:88"},{"nativeSrc":"16764:27:88","nodeType":"YulAssignment","src":"16764:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16776:9:88","nodeType":"YulIdentifier","src":"16776:9:88"},{"kind":"number","nativeSrc":"16787:3:88","nodeType":"YulLiteral","src":"16787:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16772:3:88","nodeType":"YulIdentifier","src":"16772:3:88"},"nativeSrc":"16772:19:88","nodeType":"YulFunctionCall","src":"16772:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16764:4:88","nodeType":"YulIdentifier","src":"16764:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16387:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16538:9:88","nodeType":"YulTypedName","src":"16538:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16552:4:88","nodeType":"YulTypedName","src":"16552:4:88","type":""}],"src":"16387:410:88"},{"body":{"nativeSrc":"16909:87:88","nodeType":"YulBlock","src":"16909:87:88","statements":[{"nativeSrc":"16919:26:88","nodeType":"YulAssignment","src":"16919:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16931:9:88","nodeType":"YulIdentifier","src":"16931:9:88"},{"kind":"number","nativeSrc":"16942:2:88","nodeType":"YulLiteral","src":"16942:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16927:3:88","nodeType":"YulIdentifier","src":"16927:3:88"},"nativeSrc":"16927:18:88","nodeType":"YulFunctionCall","src":"16927:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16919:4:88","nodeType":"YulIdentifier","src":"16919:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16961:9:88","nodeType":"YulIdentifier","src":"16961:9:88"},{"arguments":[{"name":"value0","nativeSrc":"16976:6:88","nodeType":"YulIdentifier","src":"16976:6:88"},{"kind":"number","nativeSrc":"16984:4:88","nodeType":"YulLiteral","src":"16984:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"16972:3:88","nodeType":"YulIdentifier","src":"16972:3:88"},"nativeSrc":"16972:17:88","nodeType":"YulFunctionCall","src":"16972:17:88"}],"functionName":{"name":"mstore","nativeSrc":"16954:6:88","nodeType":"YulIdentifier","src":"16954:6:88"},"nativeSrc":"16954:36:88","nodeType":"YulFunctionCall","src":"16954:36:88"},"nativeSrc":"16954:36:88","nodeType":"YulExpressionStatement","src":"16954:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"16802:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16878:9:88","nodeType":"YulTypedName","src":"16878:9:88","type":""},{"name":"value0","nativeSrc":"16889:6:88","nodeType":"YulTypedName","src":"16889:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16900:4:88","nodeType":"YulTypedName","src":"16900:4:88","type":""}],"src":"16802:194:88"},{"body":{"nativeSrc":"17175:223:88","nodeType":"YulBlock","src":"17175:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17192:9:88","nodeType":"YulIdentifier","src":"17192:9:88"},{"kind":"number","nativeSrc":"17203:2:88","nodeType":"YulLiteral","src":"17203:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17185:6:88","nodeType":"YulIdentifier","src":"17185:6:88"},"nativeSrc":"17185:21:88","nodeType":"YulFunctionCall","src":"17185:21:88"},"nativeSrc":"17185:21:88","nodeType":"YulExpressionStatement","src":"17185:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17226:9:88","nodeType":"YulIdentifier","src":"17226:9:88"},{"kind":"number","nativeSrc":"17237:2:88","nodeType":"YulLiteral","src":"17237:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17222:3:88","nodeType":"YulIdentifier","src":"17222:3:88"},"nativeSrc":"17222:18:88","nodeType":"YulFunctionCall","src":"17222:18:88"},{"kind":"number","nativeSrc":"17242:2:88","nodeType":"YulLiteral","src":"17242:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"17215:6:88","nodeType":"YulIdentifier","src":"17215:6:88"},"nativeSrc":"17215:30:88","nodeType":"YulFunctionCall","src":"17215:30:88"},"nativeSrc":"17215:30:88","nodeType":"YulExpressionStatement","src":"17215:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17265:9:88","nodeType":"YulIdentifier","src":"17265:9:88"},{"kind":"number","nativeSrc":"17276:2:88","nodeType":"YulLiteral","src":"17276:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17261:3:88","nodeType":"YulIdentifier","src":"17261:3:88"},"nativeSrc":"17261:18:88","nodeType":"YulFunctionCall","src":"17261:18:88"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nativeSrc":"17281:34:88","nodeType":"YulLiteral","src":"17281:34:88","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nativeSrc":"17254:6:88","nodeType":"YulIdentifier","src":"17254:6:88"},"nativeSrc":"17254:62:88","nodeType":"YulFunctionCall","src":"17254:62:88"},"nativeSrc":"17254:62:88","nodeType":"YulExpressionStatement","src":"17254:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17336:9:88","nodeType":"YulIdentifier","src":"17336:9:88"},{"kind":"number","nativeSrc":"17347:2:88","nodeType":"YulLiteral","src":"17347:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17332:3:88","nodeType":"YulIdentifier","src":"17332:3:88"},"nativeSrc":"17332:18:88","nodeType":"YulFunctionCall","src":"17332:18:88"},{"hexValue":"72","kind":"string","nativeSrc":"17352:3:88","nodeType":"YulLiteral","src":"17352:3:88","type":"","value":"r"}],"functionName":{"name":"mstore","nativeSrc":"17325:6:88","nodeType":"YulIdentifier","src":"17325:6:88"},"nativeSrc":"17325:31:88","nodeType":"YulFunctionCall","src":"17325:31:88"},"nativeSrc":"17325:31:88","nodeType":"YulExpressionStatement","src":"17325:31:88"},{"nativeSrc":"17365:27:88","nodeType":"YulAssignment","src":"17365:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17377:9:88","nodeType":"YulIdentifier","src":"17377:9:88"},{"kind":"number","nativeSrc":"17388:3:88","nodeType":"YulLiteral","src":"17388:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17373:3:88","nodeType":"YulIdentifier","src":"17373:3:88"},"nativeSrc":"17373:19:88","nodeType":"YulFunctionCall","src":"17373:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17365:4:88","nodeType":"YulIdentifier","src":"17365:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17001:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17152:9:88","nodeType":"YulTypedName","src":"17152:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17166:4:88","nodeType":"YulTypedName","src":"17166:4:88","type":""}],"src":"17001:397:88"},{"body":{"nativeSrc":"17577:251:88","nodeType":"YulBlock","src":"17577:251:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17594:9:88","nodeType":"YulIdentifier","src":"17594:9:88"},{"kind":"number","nativeSrc":"17605:2:88","nodeType":"YulLiteral","src":"17605:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17587:6:88","nodeType":"YulIdentifier","src":"17587:6:88"},"nativeSrc":"17587:21:88","nodeType":"YulFunctionCall","src":"17587:21:88"},"nativeSrc":"17587:21:88","nodeType":"YulExpressionStatement","src":"17587:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17628:9:88","nodeType":"YulIdentifier","src":"17628:9:88"},{"kind":"number","nativeSrc":"17639:2:88","nodeType":"YulLiteral","src":"17639:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17624:3:88","nodeType":"YulIdentifier","src":"17624:3:88"},"nativeSrc":"17624:18:88","nodeType":"YulFunctionCall","src":"17624:18:88"},{"kind":"number","nativeSrc":"17644:2:88","nodeType":"YulLiteral","src":"17644:2:88","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"17617:6:88","nodeType":"YulIdentifier","src":"17617:6:88"},"nativeSrc":"17617:30:88","nodeType":"YulFunctionCall","src":"17617:30:88"},"nativeSrc":"17617:30:88","nodeType":"YulExpressionStatement","src":"17617:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17667:9:88","nodeType":"YulIdentifier","src":"17667:9:88"},{"kind":"number","nativeSrc":"17678:2:88","nodeType":"YulLiteral","src":"17678:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17663:3:88","nodeType":"YulIdentifier","src":"17663:3:88"},"nativeSrc":"17663:18:88","nodeType":"YulFunctionCall","src":"17663:18:88"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nativeSrc":"17683:34:88","nodeType":"YulLiteral","src":"17683:34:88","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nativeSrc":"17656:6:88","nodeType":"YulIdentifier","src":"17656:6:88"},"nativeSrc":"17656:62:88","nodeType":"YulFunctionCall","src":"17656:62:88"},"nativeSrc":"17656:62:88","nodeType":"YulExpressionStatement","src":"17656:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17738:9:88","nodeType":"YulIdentifier","src":"17738:9:88"},{"kind":"number","nativeSrc":"17749:2:88","nodeType":"YulLiteral","src":"17749:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17734:3:88","nodeType":"YulIdentifier","src":"17734:3:88"},"nativeSrc":"17734:18:88","nodeType":"YulFunctionCall","src":"17734:18:88"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nativeSrc":"17754:31:88","nodeType":"YulLiteral","src":"17754:31:88","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nativeSrc":"17727:6:88","nodeType":"YulIdentifier","src":"17727:6:88"},"nativeSrc":"17727:59:88","nodeType":"YulFunctionCall","src":"17727:59:88"},"nativeSrc":"17727:59:88","nodeType":"YulExpressionStatement","src":"17727:59:88"},{"nativeSrc":"17795:27:88","nodeType":"YulAssignment","src":"17795:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17807:9:88","nodeType":"YulIdentifier","src":"17807:9:88"},{"kind":"number","nativeSrc":"17818:3:88","nodeType":"YulLiteral","src":"17818:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17803:3:88","nodeType":"YulIdentifier","src":"17803:3:88"},"nativeSrc":"17803:19:88","nodeType":"YulFunctionCall","src":"17803:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17795:4:88","nodeType":"YulIdentifier","src":"17795:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17403:425:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17554:9:88","nodeType":"YulTypedName","src":"17554:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17568:4:88","nodeType":"YulTypedName","src":"17568:4:88","type":""}],"src":"17403:425:88"},{"body":{"nativeSrc":"18007:235:88","nodeType":"YulBlock","src":"18007:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18024:9:88","nodeType":"YulIdentifier","src":"18024:9:88"},{"kind":"number","nativeSrc":"18035:2:88","nodeType":"YulLiteral","src":"18035:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18017:6:88","nodeType":"YulIdentifier","src":"18017:6:88"},"nativeSrc":"18017:21:88","nodeType":"YulFunctionCall","src":"18017:21:88"},"nativeSrc":"18017:21:88","nodeType":"YulExpressionStatement","src":"18017:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18058:9:88","nodeType":"YulIdentifier","src":"18058:9:88"},{"kind":"number","nativeSrc":"18069:2:88","nodeType":"YulLiteral","src":"18069:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18054:3:88","nodeType":"YulIdentifier","src":"18054:3:88"},"nativeSrc":"18054:18:88","nodeType":"YulFunctionCall","src":"18054:18:88"},{"kind":"number","nativeSrc":"18074:2:88","nodeType":"YulLiteral","src":"18074:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"18047:6:88","nodeType":"YulIdentifier","src":"18047:6:88"},"nativeSrc":"18047:30:88","nodeType":"YulFunctionCall","src":"18047:30:88"},"nativeSrc":"18047:30:88","nodeType":"YulExpressionStatement","src":"18047:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18097:9:88","nodeType":"YulIdentifier","src":"18097:9:88"},{"kind":"number","nativeSrc":"18108:2:88","nodeType":"YulLiteral","src":"18108:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18093:3:88","nodeType":"YulIdentifier","src":"18093:3:88"},"nativeSrc":"18093:18:88","nodeType":"YulFunctionCall","src":"18093:18:88"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nativeSrc":"18113:34:88","nodeType":"YulLiteral","src":"18113:34:88","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nativeSrc":"18086:6:88","nodeType":"YulIdentifier","src":"18086:6:88"},"nativeSrc":"18086:62:88","nodeType":"YulFunctionCall","src":"18086:62:88"},"nativeSrc":"18086:62:88","nodeType":"YulExpressionStatement","src":"18086:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18168:9:88","nodeType":"YulIdentifier","src":"18168:9:88"},{"kind":"number","nativeSrc":"18179:2:88","nodeType":"YulLiteral","src":"18179:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18164:3:88","nodeType":"YulIdentifier","src":"18164:3:88"},"nativeSrc":"18164:18:88","nodeType":"YulFunctionCall","src":"18164:18:88"},{"hexValue":"72206f7220617070726f766564","kind":"string","nativeSrc":"18184:15:88","nodeType":"YulLiteral","src":"18184:15:88","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nativeSrc":"18157:6:88","nodeType":"YulIdentifier","src":"18157:6:88"},"nativeSrc":"18157:43:88","nodeType":"YulFunctionCall","src":"18157:43:88"},"nativeSrc":"18157:43:88","nodeType":"YulExpressionStatement","src":"18157:43:88"},{"nativeSrc":"18209:27:88","nodeType":"YulAssignment","src":"18209:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18221:9:88","nodeType":"YulIdentifier","src":"18221:9:88"},{"kind":"number","nativeSrc":"18232:3:88","nodeType":"YulLiteral","src":"18232:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18217:3:88","nodeType":"YulIdentifier","src":"18217:3:88"},"nativeSrc":"18217:19:88","nodeType":"YulFunctionCall","src":"18217:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18209:4:88","nodeType":"YulIdentifier","src":"18209:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17833:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17984:9:88","nodeType":"YulTypedName","src":"17984:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17998:4:88","nodeType":"YulTypedName","src":"17998:4:88","type":""}],"src":"17833:409:88"},{"body":{"nativeSrc":"18421:234:88","nodeType":"YulBlock","src":"18421:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18438:9:88","nodeType":"YulIdentifier","src":"18438:9:88"},{"kind":"number","nativeSrc":"18449:2:88","nodeType":"YulLiteral","src":"18449:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18431:6:88","nodeType":"YulIdentifier","src":"18431:6:88"},"nativeSrc":"18431:21:88","nodeType":"YulFunctionCall","src":"18431:21:88"},"nativeSrc":"18431:21:88","nodeType":"YulExpressionStatement","src":"18431:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18472:9:88","nodeType":"YulIdentifier","src":"18472:9:88"},{"kind":"number","nativeSrc":"18483:2:88","nodeType":"YulLiteral","src":"18483:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18468:3:88","nodeType":"YulIdentifier","src":"18468:3:88"},"nativeSrc":"18468:18:88","nodeType":"YulFunctionCall","src":"18468:18:88"},{"kind":"number","nativeSrc":"18488:2:88","nodeType":"YulLiteral","src":"18488:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"18461:6:88","nodeType":"YulIdentifier","src":"18461:6:88"},"nativeSrc":"18461:30:88","nodeType":"YulFunctionCall","src":"18461:30:88"},"nativeSrc":"18461:30:88","nodeType":"YulExpressionStatement","src":"18461:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18511:9:88","nodeType":"YulIdentifier","src":"18511:9:88"},{"kind":"number","nativeSrc":"18522:2:88","nodeType":"YulLiteral","src":"18522:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18507:3:88","nodeType":"YulIdentifier","src":"18507:3:88"},"nativeSrc":"18507:18:88","nodeType":"YulFunctionCall","src":"18507:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"18527:34:88","nodeType":"YulLiteral","src":"18527:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"18500:6:88","nodeType":"YulIdentifier","src":"18500:6:88"},"nativeSrc":"18500:62:88","nodeType":"YulFunctionCall","src":"18500:62:88"},"nativeSrc":"18500:62:88","nodeType":"YulExpressionStatement","src":"18500:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18582:9:88","nodeType":"YulIdentifier","src":"18582:9:88"},{"kind":"number","nativeSrc":"18593:2:88","nodeType":"YulLiteral","src":"18593:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18578:3:88","nodeType":"YulIdentifier","src":"18578:3:88"},"nativeSrc":"18578:18:88","nodeType":"YulFunctionCall","src":"18578:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"18598:14:88","nodeType":"YulLiteral","src":"18598:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"18571:6:88","nodeType":"YulIdentifier","src":"18571:6:88"},"nativeSrc":"18571:42:88","nodeType":"YulFunctionCall","src":"18571:42:88"},"nativeSrc":"18571:42:88","nodeType":"YulExpressionStatement","src":"18571:42:88"},{"nativeSrc":"18622:27:88","nodeType":"YulAssignment","src":"18622:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18634:9:88","nodeType":"YulIdentifier","src":"18634:9:88"},{"kind":"number","nativeSrc":"18645:3:88","nodeType":"YulLiteral","src":"18645:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18630:3:88","nodeType":"YulIdentifier","src":"18630:3:88"},"nativeSrc":"18630:19:88","nodeType":"YulFunctionCall","src":"18630:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18622:4:88","nodeType":"YulIdentifier","src":"18622:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18247:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18398:9:88","nodeType":"YulTypedName","src":"18398:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18412:4:88","nodeType":"YulTypedName","src":"18412:4:88","type":""}],"src":"18247:408:88"},{"body":{"nativeSrc":"18834:234:88","nodeType":"YulBlock","src":"18834:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18851:9:88","nodeType":"YulIdentifier","src":"18851:9:88"},{"kind":"number","nativeSrc":"18862:2:88","nodeType":"YulLiteral","src":"18862:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18844:6:88","nodeType":"YulIdentifier","src":"18844:6:88"},"nativeSrc":"18844:21:88","nodeType":"YulFunctionCall","src":"18844:21:88"},"nativeSrc":"18844:21:88","nodeType":"YulExpressionStatement","src":"18844:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18885:9:88","nodeType":"YulIdentifier","src":"18885:9:88"},{"kind":"number","nativeSrc":"18896:2:88","nodeType":"YulLiteral","src":"18896:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18881:3:88","nodeType":"YulIdentifier","src":"18881:3:88"},"nativeSrc":"18881:18:88","nodeType":"YulFunctionCall","src":"18881:18:88"},{"kind":"number","nativeSrc":"18901:2:88","nodeType":"YulLiteral","src":"18901:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"18874:6:88","nodeType":"YulIdentifier","src":"18874:6:88"},"nativeSrc":"18874:30:88","nodeType":"YulFunctionCall","src":"18874:30:88"},"nativeSrc":"18874:30:88","nodeType":"YulExpressionStatement","src":"18874:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18924:9:88","nodeType":"YulIdentifier","src":"18924:9:88"},{"kind":"number","nativeSrc":"18935:2:88","nodeType":"YulLiteral","src":"18935:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18920:3:88","nodeType":"YulIdentifier","src":"18920:3:88"},"nativeSrc":"18920:18:88","nodeType":"YulFunctionCall","src":"18920:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"18940:34:88","nodeType":"YulLiteral","src":"18940:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"18913:6:88","nodeType":"YulIdentifier","src":"18913:6:88"},"nativeSrc":"18913:62:88","nodeType":"YulFunctionCall","src":"18913:62:88"},"nativeSrc":"18913:62:88","nodeType":"YulExpressionStatement","src":"18913:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18995:9:88","nodeType":"YulIdentifier","src":"18995:9:88"},{"kind":"number","nativeSrc":"19006:2:88","nodeType":"YulLiteral","src":"19006:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18991:3:88","nodeType":"YulIdentifier","src":"18991:3:88"},"nativeSrc":"18991:18:88","nodeType":"YulFunctionCall","src":"18991:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"19011:14:88","nodeType":"YulLiteral","src":"19011:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"18984:6:88","nodeType":"YulIdentifier","src":"18984:6:88"},"nativeSrc":"18984:42:88","nodeType":"YulFunctionCall","src":"18984:42:88"},"nativeSrc":"18984:42:88","nodeType":"YulExpressionStatement","src":"18984:42:88"},{"nativeSrc":"19035:27:88","nodeType":"YulAssignment","src":"19035:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19047:9:88","nodeType":"YulIdentifier","src":"19047:9:88"},{"kind":"number","nativeSrc":"19058:3:88","nodeType":"YulLiteral","src":"19058:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19043:3:88","nodeType":"YulIdentifier","src":"19043:3:88"},"nativeSrc":"19043:19:88","nodeType":"YulFunctionCall","src":"19043:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19035:4:88","nodeType":"YulIdentifier","src":"19035:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18660:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18811:9:88","nodeType":"YulTypedName","src":"18811:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18825:4:88","nodeType":"YulTypedName","src":"18825:4:88","type":""}],"src":"18660:408:88"},{"body":{"nativeSrc":"19180:170:88","nodeType":"YulBlock","src":"19180:170:88","statements":[{"body":{"nativeSrc":"19226:16:88","nodeType":"YulBlock","src":"19226:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19235:1:88","nodeType":"YulLiteral","src":"19235:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19238:1:88","nodeType":"YulLiteral","src":"19238:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19228:6:88","nodeType":"YulIdentifier","src":"19228:6:88"},"nativeSrc":"19228:12:88","nodeType":"YulFunctionCall","src":"19228:12:88"},"nativeSrc":"19228:12:88","nodeType":"YulExpressionStatement","src":"19228:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19201:7:88","nodeType":"YulIdentifier","src":"19201:7:88"},{"name":"headStart","nativeSrc":"19210:9:88","nodeType":"YulIdentifier","src":"19210:9:88"}],"functionName":{"name":"sub","nativeSrc":"19197:3:88","nodeType":"YulIdentifier","src":"19197:3:88"},"nativeSrc":"19197:23:88","nodeType":"YulFunctionCall","src":"19197:23:88"},{"kind":"number","nativeSrc":"19222:2:88","nodeType":"YulLiteral","src":"19222:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19193:3:88","nodeType":"YulIdentifier","src":"19193:3:88"},"nativeSrc":"19193:32:88","nodeType":"YulFunctionCall","src":"19193:32:88"},"nativeSrc":"19190:52:88","nodeType":"YulIf","src":"19190:52:88"},{"nativeSrc":"19251:29:88","nodeType":"YulVariableDeclaration","src":"19251:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19270:9:88","nodeType":"YulIdentifier","src":"19270:9:88"}],"functionName":{"name":"mload","nativeSrc":"19264:5:88","nodeType":"YulIdentifier","src":"19264:5:88"},"nativeSrc":"19264:16:88","nodeType":"YulFunctionCall","src":"19264:16:88"},"variables":[{"name":"value","nativeSrc":"19255:5:88","nodeType":"YulTypedName","src":"19255:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19314:5:88","nodeType":"YulIdentifier","src":"19314:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"19289:24:88","nodeType":"YulIdentifier","src":"19289:24:88"},"nativeSrc":"19289:31:88","nodeType":"YulFunctionCall","src":"19289:31:88"},"nativeSrc":"19289:31:88","nodeType":"YulExpressionStatement","src":"19289:31:88"},{"nativeSrc":"19329:15:88","nodeType":"YulAssignment","src":"19329:15:88","value":{"name":"value","nativeSrc":"19339:5:88","nodeType":"YulIdentifier","src":"19339:5:88"},"variableNames":[{"name":"value0","nativeSrc":"19329:6:88","nodeType":"YulIdentifier","src":"19329:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"19073:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19146:9:88","nodeType":"YulTypedName","src":"19146:9:88","type":""},{"name":"dataEnd","nativeSrc":"19157:7:88","nodeType":"YulTypedName","src":"19157:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19169:6:88","nodeType":"YulTypedName","src":"19169:6:88","type":""}],"src":"19073:277:88"},{"body":{"nativeSrc":"19529:171:88","nodeType":"YulBlock","src":"19529:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19546:9:88","nodeType":"YulIdentifier","src":"19546:9:88"},{"kind":"number","nativeSrc":"19557:2:88","nodeType":"YulLiteral","src":"19557:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19539:6:88","nodeType":"YulIdentifier","src":"19539:6:88"},"nativeSrc":"19539:21:88","nodeType":"YulFunctionCall","src":"19539:21:88"},"nativeSrc":"19539:21:88","nodeType":"YulExpressionStatement","src":"19539:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19580:9:88","nodeType":"YulIdentifier","src":"19580:9:88"},{"kind":"number","nativeSrc":"19591:2:88","nodeType":"YulLiteral","src":"19591:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19576:3:88","nodeType":"YulIdentifier","src":"19576:3:88"},"nativeSrc":"19576:18:88","nodeType":"YulFunctionCall","src":"19576:18:88"},{"kind":"number","nativeSrc":"19596:2:88","nodeType":"YulLiteral","src":"19596:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"19569:6:88","nodeType":"YulIdentifier","src":"19569:6:88"},"nativeSrc":"19569:30:88","nodeType":"YulFunctionCall","src":"19569:30:88"},"nativeSrc":"19569:30:88","nodeType":"YulExpressionStatement","src":"19569:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19619:9:88","nodeType":"YulIdentifier","src":"19619:9:88"},{"kind":"number","nativeSrc":"19630:2:88","nodeType":"YulLiteral","src":"19630:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19615:3:88","nodeType":"YulIdentifier","src":"19615:3:88"},"nativeSrc":"19615:18:88","nodeType":"YulFunctionCall","src":"19615:18:88"},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","kind":"string","nativeSrc":"19635:23:88","nodeType":"YulLiteral","src":"19635:23:88","type":"","value":"Old policy is expired"}],"functionName":{"name":"mstore","nativeSrc":"19608:6:88","nodeType":"YulIdentifier","src":"19608:6:88"},"nativeSrc":"19608:51:88","nodeType":"YulFunctionCall","src":"19608:51:88"},"nativeSrc":"19608:51:88","nodeType":"YulExpressionStatement","src":"19608:51:88"},{"nativeSrc":"19668:26:88","nodeType":"YulAssignment","src":"19668:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19680:9:88","nodeType":"YulIdentifier","src":"19680:9:88"},{"kind":"number","nativeSrc":"19691:2:88","nodeType":"YulLiteral","src":"19691:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19676:3:88","nodeType":"YulIdentifier","src":"19676:3:88"},"nativeSrc":"19676:18:88","nodeType":"YulFunctionCall","src":"19676:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19668:4:88","nodeType":"YulIdentifier","src":"19668:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19355:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19506:9:88","nodeType":"YulTypedName","src":"19506:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19520:4:88","nodeType":"YulTypedName","src":"19520:4:88","type":""}],"src":"19355:345:88"},{"body":{"nativeSrc":"19879:236:88","nodeType":"YulBlock","src":"19879:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19896:9:88","nodeType":"YulIdentifier","src":"19896:9:88"},{"kind":"number","nativeSrc":"19907:2:88","nodeType":"YulLiteral","src":"19907:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19889:6:88","nodeType":"YulIdentifier","src":"19889:6:88"},"nativeSrc":"19889:21:88","nodeType":"YulFunctionCall","src":"19889:21:88"},"nativeSrc":"19889:21:88","nodeType":"YulExpressionStatement","src":"19889:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19930:9:88","nodeType":"YulIdentifier","src":"19930:9:88"},{"kind":"number","nativeSrc":"19941:2:88","nodeType":"YulLiteral","src":"19941:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19926:3:88","nodeType":"YulIdentifier","src":"19926:3:88"},"nativeSrc":"19926:18:88","nodeType":"YulFunctionCall","src":"19926:18:88"},{"kind":"number","nativeSrc":"19946:2:88","nodeType":"YulLiteral","src":"19946:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"19919:6:88","nodeType":"YulIdentifier","src":"19919:6:88"},"nativeSrc":"19919:30:88","nodeType":"YulFunctionCall","src":"19919:30:88"},"nativeSrc":"19919:30:88","nodeType":"YulExpressionStatement","src":"19919:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19969:9:88","nodeType":"YulIdentifier","src":"19969:9:88"},{"kind":"number","nativeSrc":"19980:2:88","nodeType":"YulLiteral","src":"19980:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19965:3:88","nodeType":"YulIdentifier","src":"19965:3:88"},"nativeSrc":"19965:18:88","nodeType":"YulFunctionCall","src":"19965:18:88"},{"hexValue":"426f746820706f6c6963696573206d7573742068617665207468652073616d65","kind":"string","nativeSrc":"19985:34:88","nodeType":"YulLiteral","src":"19985:34:88","type":"","value":"Both policies must have the same"}],"functionName":{"name":"mstore","nativeSrc":"19958:6:88","nodeType":"YulIdentifier","src":"19958:6:88"},"nativeSrc":"19958:62:88","nodeType":"YulFunctionCall","src":"19958:62:88"},"nativeSrc":"19958:62:88","nodeType":"YulExpressionStatement","src":"19958:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20040:9:88","nodeType":"YulIdentifier","src":"20040:9:88"},{"kind":"number","nativeSrc":"20051:2:88","nodeType":"YulLiteral","src":"20051:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20036:3:88","nodeType":"YulIdentifier","src":"20036:3:88"},"nativeSrc":"20036:18:88","nodeType":"YulFunctionCall","src":"20036:18:88"},{"hexValue":"207374617274696e672064617465","kind":"string","nativeSrc":"20056:16:88","nodeType":"YulLiteral","src":"20056:16:88","type":"","value":" starting date"}],"functionName":{"name":"mstore","nativeSrc":"20029:6:88","nodeType":"YulIdentifier","src":"20029:6:88"},"nativeSrc":"20029:44:88","nodeType":"YulFunctionCall","src":"20029:44:88"},"nativeSrc":"20029:44:88","nodeType":"YulExpressionStatement","src":"20029:44:88"},{"nativeSrc":"20082:27:88","nodeType":"YulAssignment","src":"20082:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20094:9:88","nodeType":"YulIdentifier","src":"20094:9:88"},{"kind":"number","nativeSrc":"20105:3:88","nodeType":"YulLiteral","src":"20105:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20090:3:88","nodeType":"YulIdentifier","src":"20090:3:88"},"nativeSrc":"20090:19:88","nodeType":"YulFunctionCall","src":"20090:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20082:4:88","nodeType":"YulIdentifier","src":"20082:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e87e56359fa2526540650e2139138b7e293eed59c4b4b2e8327e8e5ebcd0b33__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19705:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19856:9:88","nodeType":"YulTypedName","src":"19856:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19870:4:88","nodeType":"YulTypedName","src":"19870:4:88","type":""}],"src":"19705:410:88"},{"body":{"nativeSrc":"20294:241:88","nodeType":"YulBlock","src":"20294:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20311:9:88","nodeType":"YulIdentifier","src":"20311:9:88"},{"kind":"number","nativeSrc":"20322:2:88","nodeType":"YulLiteral","src":"20322:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20304:6:88","nodeType":"YulIdentifier","src":"20304:6:88"},"nativeSrc":"20304:21:88","nodeType":"YulFunctionCall","src":"20304:21:88"},"nativeSrc":"20304:21:88","nodeType":"YulExpressionStatement","src":"20304:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20345:9:88","nodeType":"YulIdentifier","src":"20345:9:88"},{"kind":"number","nativeSrc":"20356:2:88","nodeType":"YulLiteral","src":"20356:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20341:3:88","nodeType":"YulIdentifier","src":"20341:3:88"},"nativeSrc":"20341:18:88","nodeType":"YulFunctionCall","src":"20341:18:88"},{"kind":"number","nativeSrc":"20361:2:88","nodeType":"YulLiteral","src":"20361:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"20334:6:88","nodeType":"YulIdentifier","src":"20334:6:88"},"nativeSrc":"20334:30:88","nodeType":"YulFunctionCall","src":"20334:30:88"},"nativeSrc":"20334:30:88","nodeType":"YulExpressionStatement","src":"20334:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20384:9:88","nodeType":"YulIdentifier","src":"20384:9:88"},{"kind":"number","nativeSrc":"20395:2:88","nodeType":"YulLiteral","src":"20395:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20380:3:88","nodeType":"YulIdentifier","src":"20380:3:88"},"nativeSrc":"20380:18:88","nodeType":"YulFunctionCall","src":"20380:18:88"},{"hexValue":"4e657720706f6c696379206d7573742062652067726561746572206f72206571","kind":"string","nativeSrc":"20400:34:88","nodeType":"YulLiteral","src":"20400:34:88","type":"","value":"New policy must be greater or eq"}],"functionName":{"name":"mstore","nativeSrc":"20373:6:88","nodeType":"YulIdentifier","src":"20373:6:88"},"nativeSrc":"20373:62:88","nodeType":"YulFunctionCall","src":"20373:62:88"},"nativeSrc":"20373:62:88","nodeType":"YulExpressionStatement","src":"20373:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20455:9:88","nodeType":"YulIdentifier","src":"20455:9:88"},{"kind":"number","nativeSrc":"20466:2:88","nodeType":"YulLiteral","src":"20466:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20451:3:88","nodeType":"YulIdentifier","src":"20451:3:88"},"nativeSrc":"20451:18:88","nodeType":"YulFunctionCall","src":"20451:18:88"},{"hexValue":"75616c207468616e206f6c6420706f6c696379","kind":"string","nativeSrc":"20471:21:88","nodeType":"YulLiteral","src":"20471:21:88","type":"","value":"ual than old policy"}],"functionName":{"name":"mstore","nativeSrc":"20444:6:88","nodeType":"YulIdentifier","src":"20444:6:88"},"nativeSrc":"20444:49:88","nodeType":"YulFunctionCall","src":"20444:49:88"},"nativeSrc":"20444:49:88","nodeType":"YulExpressionStatement","src":"20444:49:88"},{"nativeSrc":"20502:27:88","nodeType":"YulAssignment","src":"20502:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20514:9:88","nodeType":"YulIdentifier","src":"20514:9:88"},{"kind":"number","nativeSrc":"20525:3:88","nodeType":"YulLiteral","src":"20525:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20510:3:88","nodeType":"YulIdentifier","src":"20510:3:88"},"nativeSrc":"20510:19:88","nodeType":"YulFunctionCall","src":"20510:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20502:4:88","nodeType":"YulIdentifier","src":"20502:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d3b3746791a6b0b7dfd79946411ee9df69dc2115b94a363d0f83c50da62a2b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20120:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20271:9:88","nodeType":"YulTypedName","src":"20271:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20285:4:88","nodeType":"YulTypedName","src":"20285:4:88","type":""}],"src":"20120:415:88"},{"body":{"nativeSrc":"20714:171:88","nodeType":"YulBlock","src":"20714:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20731:9:88","nodeType":"YulIdentifier","src":"20731:9:88"},{"kind":"number","nativeSrc":"20742:2:88","nodeType":"YulLiteral","src":"20742:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20724:6:88","nodeType":"YulIdentifier","src":"20724:6:88"},"nativeSrc":"20724:21:88","nodeType":"YulFunctionCall","src":"20724:21:88"},"nativeSrc":"20724:21:88","nodeType":"YulExpressionStatement","src":"20724:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20765:9:88","nodeType":"YulIdentifier","src":"20765:9:88"},{"kind":"number","nativeSrc":"20776:2:88","nodeType":"YulLiteral","src":"20776:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20761:3:88","nodeType":"YulIdentifier","src":"20761:3:88"},"nativeSrc":"20761:18:88","nodeType":"YulFunctionCall","src":"20761:18:88"},{"kind":"number","nativeSrc":"20781:2:88","nodeType":"YulLiteral","src":"20781:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"20754:6:88","nodeType":"YulIdentifier","src":"20754:6:88"},"nativeSrc":"20754:30:88","nodeType":"YulFunctionCall","src":"20754:30:88"},"nativeSrc":"20754:30:88","nodeType":"YulExpressionStatement","src":"20754:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20804:9:88","nodeType":"YulIdentifier","src":"20804:9:88"},{"kind":"number","nativeSrc":"20815:2:88","nodeType":"YulLiteral","src":"20815:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20800:3:88","nodeType":"YulIdentifier","src":"20800:3:88"},"nativeSrc":"20800:18:88","nodeType":"YulFunctionCall","src":"20800:18:88"},{"hexValue":"506f6c69637920616c726561647920657869737473","kind":"string","nativeSrc":"20820:23:88","nodeType":"YulLiteral","src":"20820:23:88","type":"","value":"Policy already exists"}],"functionName":{"name":"mstore","nativeSrc":"20793:6:88","nodeType":"YulIdentifier","src":"20793:6:88"},"nativeSrc":"20793:51:88","nodeType":"YulFunctionCall","src":"20793:51:88"},"nativeSrc":"20793:51:88","nodeType":"YulExpressionStatement","src":"20793:51:88"},{"nativeSrc":"20853:26:88","nodeType":"YulAssignment","src":"20853:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20865:9:88","nodeType":"YulIdentifier","src":"20865:9:88"},{"kind":"number","nativeSrc":"20876:2:88","nodeType":"YulLiteral","src":"20876:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20861:3:88","nodeType":"YulIdentifier","src":"20861:3:88"},"nativeSrc":"20861:18:88","nodeType":"YulFunctionCall","src":"20861:18:88"},"variableNames":[{"name":"tail","nativeSrc":"20853:4:88","nodeType":"YulIdentifier","src":"20853:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20540:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20691:9:88","nodeType":"YulTypedName","src":"20691:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20705:4:88","nodeType":"YulTypedName","src":"20705:4:88","type":""}],"src":"20540:345:88"},{"body":{"nativeSrc":"20933:53:88","nodeType":"YulBlock","src":"20933:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20950:3:88","nodeType":"YulIdentifier","src":"20950:3:88"},{"arguments":[{"name":"value","nativeSrc":"20959:5:88","nodeType":"YulIdentifier","src":"20959:5:88"},{"kind":"number","nativeSrc":"20966:12:88","nodeType":"YulLiteral","src":"20966:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"20955:3:88","nodeType":"YulIdentifier","src":"20955:3:88"},"nativeSrc":"20955:24:88","nodeType":"YulFunctionCall","src":"20955:24:88"}],"functionName":{"name":"mstore","nativeSrc":"20943:6:88","nodeType":"YulIdentifier","src":"20943:6:88"},"nativeSrc":"20943:37:88","nodeType":"YulFunctionCall","src":"20943:37:88"},"nativeSrc":"20943:37:88","nodeType":"YulExpressionStatement","src":"20943:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"20890:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20917:5:88","nodeType":"YulTypedName","src":"20917:5:88","type":""},{"name":"pos","nativeSrc":"20924:3:88","nodeType":"YulTypedName","src":"20924:3:88","type":""}],"src":"20890:96:88"},{"body":{"nativeSrc":"21045:974:88","nodeType":"YulBlock","src":"21045:974:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21062:3:88","nodeType":"YulIdentifier","src":"21062:3:88"},{"arguments":[{"name":"value","nativeSrc":"21073:5:88","nodeType":"YulIdentifier","src":"21073:5:88"}],"functionName":{"name":"mload","nativeSrc":"21067:5:88","nodeType":"YulIdentifier","src":"21067:5:88"},"nativeSrc":"21067:12:88","nodeType":"YulFunctionCall","src":"21067:12:88"}],"functionName":{"name":"mstore","nativeSrc":"21055:6:88","nodeType":"YulIdentifier","src":"21055:6:88"},"nativeSrc":"21055:25:88","nodeType":"YulFunctionCall","src":"21055:25:88"},"nativeSrc":"21055:25:88","nodeType":"YulExpressionStatement","src":"21055:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21100:3:88","nodeType":"YulIdentifier","src":"21100:3:88"},{"kind":"number","nativeSrc":"21105:4:88","nodeType":"YulLiteral","src":"21105:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21096:3:88","nodeType":"YulIdentifier","src":"21096:3:88"},"nativeSrc":"21096:14:88","nodeType":"YulFunctionCall","src":"21096:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21122:5:88","nodeType":"YulIdentifier","src":"21122:5:88"},{"kind":"number","nativeSrc":"21129:4:88","nodeType":"YulLiteral","src":"21129:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21118:3:88","nodeType":"YulIdentifier","src":"21118:3:88"},"nativeSrc":"21118:16:88","nodeType":"YulFunctionCall","src":"21118:16:88"}],"functionName":{"name":"mload","nativeSrc":"21112:5:88","nodeType":"YulIdentifier","src":"21112:5:88"},"nativeSrc":"21112:23:88","nodeType":"YulFunctionCall","src":"21112:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21089:6:88","nodeType":"YulIdentifier","src":"21089:6:88"},"nativeSrc":"21089:47:88","nodeType":"YulFunctionCall","src":"21089:47:88"},"nativeSrc":"21089:47:88","nodeType":"YulExpressionStatement","src":"21089:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21156:3:88","nodeType":"YulIdentifier","src":"21156:3:88"},{"kind":"number","nativeSrc":"21161:4:88","nodeType":"YulLiteral","src":"21161:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21152:3:88","nodeType":"YulIdentifier","src":"21152:3:88"},"nativeSrc":"21152:14:88","nodeType":"YulFunctionCall","src":"21152:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21178:5:88","nodeType":"YulIdentifier","src":"21178:5:88"},{"kind":"number","nativeSrc":"21185:4:88","nodeType":"YulLiteral","src":"21185:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21174:3:88","nodeType":"YulIdentifier","src":"21174:3:88"},"nativeSrc":"21174:16:88","nodeType":"YulFunctionCall","src":"21174:16:88"}],"functionName":{"name":"mload","nativeSrc":"21168:5:88","nodeType":"YulIdentifier","src":"21168:5:88"},"nativeSrc":"21168:23:88","nodeType":"YulFunctionCall","src":"21168:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21145:6:88","nodeType":"YulIdentifier","src":"21145:6:88"},"nativeSrc":"21145:47:88","nodeType":"YulFunctionCall","src":"21145:47:88"},"nativeSrc":"21145:47:88","nodeType":"YulExpressionStatement","src":"21145:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21212:3:88","nodeType":"YulIdentifier","src":"21212:3:88"},{"kind":"number","nativeSrc":"21217:4:88","nodeType":"YulLiteral","src":"21217:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"21208:3:88","nodeType":"YulIdentifier","src":"21208:3:88"},"nativeSrc":"21208:14:88","nodeType":"YulFunctionCall","src":"21208:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21234:5:88","nodeType":"YulIdentifier","src":"21234:5:88"},{"kind":"number","nativeSrc":"21241:4:88","nodeType":"YulLiteral","src":"21241:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"21230:3:88","nodeType":"YulIdentifier","src":"21230:3:88"},"nativeSrc":"21230:16:88","nodeType":"YulFunctionCall","src":"21230:16:88"}],"functionName":{"name":"mload","nativeSrc":"21224:5:88","nodeType":"YulIdentifier","src":"21224:5:88"},"nativeSrc":"21224:23:88","nodeType":"YulFunctionCall","src":"21224:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21201:6:88","nodeType":"YulIdentifier","src":"21201:6:88"},"nativeSrc":"21201:47:88","nodeType":"YulFunctionCall","src":"21201:47:88"},"nativeSrc":"21201:47:88","nodeType":"YulExpressionStatement","src":"21201:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21268:3:88","nodeType":"YulIdentifier","src":"21268:3:88"},{"kind":"number","nativeSrc":"21273:4:88","nodeType":"YulLiteral","src":"21273:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"21264:3:88","nodeType":"YulIdentifier","src":"21264:3:88"},"nativeSrc":"21264:14:88","nodeType":"YulFunctionCall","src":"21264:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21290:5:88","nodeType":"YulIdentifier","src":"21290:5:88"},{"kind":"number","nativeSrc":"21297:4:88","nodeType":"YulLiteral","src":"21297:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"21286:3:88","nodeType":"YulIdentifier","src":"21286:3:88"},"nativeSrc":"21286:16:88","nodeType":"YulFunctionCall","src":"21286:16:88"}],"functionName":{"name":"mload","nativeSrc":"21280:5:88","nodeType":"YulIdentifier","src":"21280:5:88"},"nativeSrc":"21280:23:88","nodeType":"YulFunctionCall","src":"21280:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21257:6:88","nodeType":"YulIdentifier","src":"21257:6:88"},"nativeSrc":"21257:47:88","nodeType":"YulFunctionCall","src":"21257:47:88"},"nativeSrc":"21257:47:88","nodeType":"YulExpressionStatement","src":"21257:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21324:3:88","nodeType":"YulIdentifier","src":"21324:3:88"},{"kind":"number","nativeSrc":"21329:4:88","nodeType":"YulLiteral","src":"21329:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"21320:3:88","nodeType":"YulIdentifier","src":"21320:3:88"},"nativeSrc":"21320:14:88","nodeType":"YulFunctionCall","src":"21320:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21346:5:88","nodeType":"YulIdentifier","src":"21346:5:88"},{"kind":"number","nativeSrc":"21353:4:88","nodeType":"YulLiteral","src":"21353:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"21342:3:88","nodeType":"YulIdentifier","src":"21342:3:88"},"nativeSrc":"21342:16:88","nodeType":"YulFunctionCall","src":"21342:16:88"}],"functionName":{"name":"mload","nativeSrc":"21336:5:88","nodeType":"YulIdentifier","src":"21336:5:88"},"nativeSrc":"21336:23:88","nodeType":"YulFunctionCall","src":"21336:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21313:6:88","nodeType":"YulIdentifier","src":"21313:6:88"},"nativeSrc":"21313:47:88","nodeType":"YulFunctionCall","src":"21313:47:88"},"nativeSrc":"21313:47:88","nodeType":"YulExpressionStatement","src":"21313:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21380:3:88","nodeType":"YulIdentifier","src":"21380:3:88"},{"kind":"number","nativeSrc":"21385:4:88","nodeType":"YulLiteral","src":"21385:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"21376:3:88","nodeType":"YulIdentifier","src":"21376:3:88"},"nativeSrc":"21376:14:88","nodeType":"YulFunctionCall","src":"21376:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21402:5:88","nodeType":"YulIdentifier","src":"21402:5:88"},{"kind":"number","nativeSrc":"21409:4:88","nodeType":"YulLiteral","src":"21409:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"21398:3:88","nodeType":"YulIdentifier","src":"21398:3:88"},"nativeSrc":"21398:16:88","nodeType":"YulFunctionCall","src":"21398:16:88"}],"functionName":{"name":"mload","nativeSrc":"21392:5:88","nodeType":"YulIdentifier","src":"21392:5:88"},"nativeSrc":"21392:23:88","nodeType":"YulFunctionCall","src":"21392:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21369:6:88","nodeType":"YulIdentifier","src":"21369:6:88"},"nativeSrc":"21369:47:88","nodeType":"YulFunctionCall","src":"21369:47:88"},"nativeSrc":"21369:47:88","nodeType":"YulExpressionStatement","src":"21369:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21436:3:88","nodeType":"YulIdentifier","src":"21436:3:88"},{"kind":"number","nativeSrc":"21441:4:88","nodeType":"YulLiteral","src":"21441:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"21432:3:88","nodeType":"YulIdentifier","src":"21432:3:88"},"nativeSrc":"21432:14:88","nodeType":"YulFunctionCall","src":"21432:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21458:5:88","nodeType":"YulIdentifier","src":"21458:5:88"},{"kind":"number","nativeSrc":"21465:4:88","nodeType":"YulLiteral","src":"21465:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"21454:3:88","nodeType":"YulIdentifier","src":"21454:3:88"},"nativeSrc":"21454:16:88","nodeType":"YulFunctionCall","src":"21454:16:88"}],"functionName":{"name":"mload","nativeSrc":"21448:5:88","nodeType":"YulIdentifier","src":"21448:5:88"},"nativeSrc":"21448:23:88","nodeType":"YulFunctionCall","src":"21448:23:88"}],"functionName":{"name":"mstore","nativeSrc":"21425:6:88","nodeType":"YulIdentifier","src":"21425:6:88"},"nativeSrc":"21425:47:88","nodeType":"YulFunctionCall","src":"21425:47:88"},"nativeSrc":"21425:47:88","nodeType":"YulExpressionStatement","src":"21425:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21492:3:88","nodeType":"YulIdentifier","src":"21492:3:88"},{"kind":"number","nativeSrc":"21497:6:88","nodeType":"YulLiteral","src":"21497:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"21488:3:88","nodeType":"YulIdentifier","src":"21488:3:88"},"nativeSrc":"21488:16:88","nodeType":"YulFunctionCall","src":"21488:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21516:5:88","nodeType":"YulIdentifier","src":"21516:5:88"},{"kind":"number","nativeSrc":"21523:6:88","nodeType":"YulLiteral","src":"21523:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"21512:3:88","nodeType":"YulIdentifier","src":"21512:3:88"},"nativeSrc":"21512:18:88","nodeType":"YulFunctionCall","src":"21512:18:88"}],"functionName":{"name":"mload","nativeSrc":"21506:5:88","nodeType":"YulIdentifier","src":"21506:5:88"},"nativeSrc":"21506:25:88","nodeType":"YulFunctionCall","src":"21506:25:88"}],"functionName":{"name":"mstore","nativeSrc":"21481:6:88","nodeType":"YulIdentifier","src":"21481:6:88"},"nativeSrc":"21481:51:88","nodeType":"YulFunctionCall","src":"21481:51:88"},"nativeSrc":"21481:51:88","nodeType":"YulExpressionStatement","src":"21481:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21552:3:88","nodeType":"YulIdentifier","src":"21552:3:88"},{"kind":"number","nativeSrc":"21557:6:88","nodeType":"YulLiteral","src":"21557:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"21548:3:88","nodeType":"YulIdentifier","src":"21548:3:88"},"nativeSrc":"21548:16:88","nodeType":"YulFunctionCall","src":"21548:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21576:5:88","nodeType":"YulIdentifier","src":"21576:5:88"},{"kind":"number","nativeSrc":"21583:6:88","nodeType":"YulLiteral","src":"21583:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"21572:3:88","nodeType":"YulIdentifier","src":"21572:3:88"},"nativeSrc":"21572:18:88","nodeType":"YulFunctionCall","src":"21572:18:88"}],"functionName":{"name":"mload","nativeSrc":"21566:5:88","nodeType":"YulIdentifier","src":"21566:5:88"},"nativeSrc":"21566:25:88","nodeType":"YulFunctionCall","src":"21566:25:88"}],"functionName":{"name":"mstore","nativeSrc":"21541:6:88","nodeType":"YulIdentifier","src":"21541:6:88"},"nativeSrc":"21541:51:88","nodeType":"YulFunctionCall","src":"21541:51:88"},"nativeSrc":"21541:51:88","nodeType":"YulExpressionStatement","src":"21541:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21612:3:88","nodeType":"YulIdentifier","src":"21612:3:88"},{"kind":"number","nativeSrc":"21617:6:88","nodeType":"YulLiteral","src":"21617:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"21608:3:88","nodeType":"YulIdentifier","src":"21608:3:88"},"nativeSrc":"21608:16:88","nodeType":"YulFunctionCall","src":"21608:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21636:5:88","nodeType":"YulIdentifier","src":"21636:5:88"},{"kind":"number","nativeSrc":"21643:6:88","nodeType":"YulLiteral","src":"21643:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"21632:3:88","nodeType":"YulIdentifier","src":"21632:3:88"},"nativeSrc":"21632:18:88","nodeType":"YulFunctionCall","src":"21632:18:88"}],"functionName":{"name":"mload","nativeSrc":"21626:5:88","nodeType":"YulIdentifier","src":"21626:5:88"},"nativeSrc":"21626:25:88","nodeType":"YulFunctionCall","src":"21626:25:88"}],"functionName":{"name":"mstore","nativeSrc":"21601:6:88","nodeType":"YulIdentifier","src":"21601:6:88"},"nativeSrc":"21601:51:88","nodeType":"YulFunctionCall","src":"21601:51:88"},"nativeSrc":"21601:51:88","nodeType":"YulExpressionStatement","src":"21601:51:88"},{"nativeSrc":"21661:45:88","nodeType":"YulVariableDeclaration","src":"21661:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21691:5:88","nodeType":"YulIdentifier","src":"21691:5:88"},{"kind":"number","nativeSrc":"21698:6:88","nodeType":"YulLiteral","src":"21698:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"21687:3:88","nodeType":"YulIdentifier","src":"21687:3:88"},"nativeSrc":"21687:18:88","nodeType":"YulFunctionCall","src":"21687:18:88"}],"functionName":{"name":"mload","nativeSrc":"21681:5:88","nodeType":"YulIdentifier","src":"21681:5:88"},"nativeSrc":"21681:25:88","nodeType":"YulFunctionCall","src":"21681:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"21665:12:88","nodeType":"YulTypedName","src":"21665:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"21750:12:88","nodeType":"YulIdentifier","src":"21750:12:88"},{"arguments":[{"name":"pos","nativeSrc":"21768:3:88","nodeType":"YulIdentifier","src":"21768:3:88"},{"kind":"number","nativeSrc":"21773:6:88","nodeType":"YulLiteral","src":"21773:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"21764:3:88","nodeType":"YulIdentifier","src":"21764:3:88"},"nativeSrc":"21764:16:88","nodeType":"YulFunctionCall","src":"21764:16:88"}],"functionName":{"name":"abi_encode_contract_IAccessManager","nativeSrc":"21715:34:88","nodeType":"YulIdentifier","src":"21715:34:88"},"nativeSrc":"21715:66:88","nodeType":"YulFunctionCall","src":"21715:66:88"},"nativeSrc":"21715:66:88","nodeType":"YulExpressionStatement","src":"21715:66:88"},{"nativeSrc":"21790:47:88","nodeType":"YulVariableDeclaration","src":"21790:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21822:5:88","nodeType":"YulIdentifier","src":"21822:5:88"},{"kind":"number","nativeSrc":"21829:6:88","nodeType":"YulLiteral","src":"21829:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"21818:3:88","nodeType":"YulIdentifier","src":"21818:3:88"},"nativeSrc":"21818:18:88","nodeType":"YulFunctionCall","src":"21818:18:88"}],"functionName":{"name":"mload","nativeSrc":"21812:5:88","nodeType":"YulIdentifier","src":"21812:5:88"},"nativeSrc":"21812:25:88","nodeType":"YulFunctionCall","src":"21812:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"21794:14:88","nodeType":"YulTypedName","src":"21794:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"21864:14:88","nodeType":"YulIdentifier","src":"21864:14:88"},{"arguments":[{"name":"pos","nativeSrc":"21884:3:88","nodeType":"YulIdentifier","src":"21884:3:88"},{"kind":"number","nativeSrc":"21889:6:88","nodeType":"YulLiteral","src":"21889:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"21880:3:88","nodeType":"YulIdentifier","src":"21880:3:88"},"nativeSrc":"21880:16:88","nodeType":"YulFunctionCall","src":"21880:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"21846:17:88","nodeType":"YulIdentifier","src":"21846:17:88"},"nativeSrc":"21846:51:88","nodeType":"YulFunctionCall","src":"21846:51:88"},"nativeSrc":"21846:51:88","nodeType":"YulExpressionStatement","src":"21846:51:88"},{"nativeSrc":"21906:47:88","nodeType":"YulVariableDeclaration","src":"21906:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21938:5:88","nodeType":"YulIdentifier","src":"21938:5:88"},{"kind":"number","nativeSrc":"21945:6:88","nodeType":"YulLiteral","src":"21945:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"21934:3:88","nodeType":"YulIdentifier","src":"21934:3:88"},"nativeSrc":"21934:18:88","nodeType":"YulFunctionCall","src":"21934:18:88"}],"functionName":{"name":"mload","nativeSrc":"21928:5:88","nodeType":"YulIdentifier","src":"21928:5:88"},"nativeSrc":"21928:25:88","nodeType":"YulFunctionCall","src":"21928:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"21910:14:88","nodeType":"YulTypedName","src":"21910:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"21980:14:88","nodeType":"YulIdentifier","src":"21980:14:88"},{"arguments":[{"name":"pos","nativeSrc":"22000:3:88","nodeType":"YulIdentifier","src":"22000:3:88"},{"kind":"number","nativeSrc":"22005:6:88","nodeType":"YulLiteral","src":"22005:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"21996:3:88","nodeType":"YulIdentifier","src":"21996:3:88"},"nativeSrc":"21996:16:88","nodeType":"YulFunctionCall","src":"21996:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"21962:17:88","nodeType":"YulIdentifier","src":"21962:17:88"},"nativeSrc":"21962:51:88","nodeType":"YulFunctionCall","src":"21962:51:88"},"nativeSrc":"21962:51:88","nodeType":"YulExpressionStatement","src":"21962:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"20991:1028:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21029:5:88","nodeType":"YulTypedName","src":"21029:5:88","type":""},{"name":"pos","nativeSrc":"21036:3:88","nodeType":"YulTypedName","src":"21036:3:88","type":""}],"src":"20991:1028:88"},{"body":{"nativeSrc":"22269:165:88","nodeType":"YulBlock","src":"22269:165:88","statements":[{"nativeSrc":"22279:27:88","nodeType":"YulAssignment","src":"22279:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22291:9:88","nodeType":"YulIdentifier","src":"22291:9:88"},{"kind":"number","nativeSrc":"22302:3:88","nodeType":"YulLiteral","src":"22302:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"22287:3:88","nodeType":"YulIdentifier","src":"22287:3:88"},"nativeSrc":"22287:19:88","nodeType":"YulFunctionCall","src":"22287:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22279:4:88","nodeType":"YulIdentifier","src":"22279:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22344:6:88","nodeType":"YulIdentifier","src":"22344:6:88"},{"name":"headStart","nativeSrc":"22352:9:88","nodeType":"YulIdentifier","src":"22352:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"22315:28:88","nodeType":"YulIdentifier","src":"22315:28:88"},"nativeSrc":"22315:47:88","nodeType":"YulFunctionCall","src":"22315:47:88"},"nativeSrc":"22315:47:88","nodeType":"YulExpressionStatement","src":"22315:47:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"22400:6:88","nodeType":"YulIdentifier","src":"22400:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"22412:9:88","nodeType":"YulIdentifier","src":"22412:9:88"},{"kind":"number","nativeSrc":"22423:3:88","nodeType":"YulLiteral","src":"22423:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"22408:3:88","nodeType":"YulIdentifier","src":"22408:3:88"},"nativeSrc":"22408:19:88","nodeType":"YulFunctionCall","src":"22408:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"22371:28:88","nodeType":"YulIdentifier","src":"22371:28:88"},"nativeSrc":"22371:57:88","nodeType":"YulFunctionCall","src":"22371:57:88"},"nativeSrc":"22371:57:88","nodeType":"YulExpressionStatement","src":"22371:57:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"22024:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22230:9:88","nodeType":"YulTypedName","src":"22230:9:88","type":""},{"name":"value1","nativeSrc":"22241:6:88","nodeType":"YulTypedName","src":"22241:6:88","type":""},{"name":"value0","nativeSrc":"22249:6:88","nodeType":"YulTypedName","src":"22249:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22260:4:88","nodeType":"YulTypedName","src":"22260:4:88","type":""}],"src":"22024:410:88"},{"body":{"nativeSrc":"22471:95:88","nodeType":"YulBlock","src":"22471:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22488:1:88","nodeType":"YulLiteral","src":"22488:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"22495:3:88","nodeType":"YulLiteral","src":"22495:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"22500:10:88","nodeType":"YulLiteral","src":"22500:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"22491:3:88","nodeType":"YulIdentifier","src":"22491:3:88"},"nativeSrc":"22491:20:88","nodeType":"YulFunctionCall","src":"22491:20:88"}],"functionName":{"name":"mstore","nativeSrc":"22481:6:88","nodeType":"YulIdentifier","src":"22481:6:88"},"nativeSrc":"22481:31:88","nodeType":"YulFunctionCall","src":"22481:31:88"},"nativeSrc":"22481:31:88","nodeType":"YulExpressionStatement","src":"22481:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22528:1:88","nodeType":"YulLiteral","src":"22528:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"22531:4:88","nodeType":"YulLiteral","src":"22531:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"22521:6:88","nodeType":"YulIdentifier","src":"22521:6:88"},"nativeSrc":"22521:15:88","nodeType":"YulFunctionCall","src":"22521:15:88"},"nativeSrc":"22521:15:88","nodeType":"YulExpressionStatement","src":"22521:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22552:1:88","nodeType":"YulLiteral","src":"22552:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"22555:4:88","nodeType":"YulLiteral","src":"22555:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22545:6:88","nodeType":"YulIdentifier","src":"22545:6:88"},"nativeSrc":"22545:15:88","nodeType":"YulFunctionCall","src":"22545:15:88"},"nativeSrc":"22545:15:88","nodeType":"YulExpressionStatement","src":"22545:15:88"}]},"name":"panic_error_0x11","nativeSrc":"22439:127:88","nodeType":"YulFunctionDefinition","src":"22439:127:88"},{"body":{"nativeSrc":"22620:79:88","nodeType":"YulBlock","src":"22620:79:88","statements":[{"nativeSrc":"22630:17:88","nodeType":"YulAssignment","src":"22630:17:88","value":{"arguments":[{"name":"x","nativeSrc":"22642:1:88","nodeType":"YulIdentifier","src":"22642:1:88"},{"name":"y","nativeSrc":"22645:1:88","nodeType":"YulIdentifier","src":"22645:1:88"}],"functionName":{"name":"sub","nativeSrc":"22638:3:88","nodeType":"YulIdentifier","src":"22638:3:88"},"nativeSrc":"22638:9:88","nodeType":"YulFunctionCall","src":"22638:9:88"},"variableNames":[{"name":"diff","nativeSrc":"22630:4:88","nodeType":"YulIdentifier","src":"22630:4:88"}]},{"body":{"nativeSrc":"22671:22:88","nodeType":"YulBlock","src":"22671:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22673:16:88","nodeType":"YulIdentifier","src":"22673:16:88"},"nativeSrc":"22673:18:88","nodeType":"YulFunctionCall","src":"22673:18:88"},"nativeSrc":"22673:18:88","nodeType":"YulExpressionStatement","src":"22673:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"22662:4:88","nodeType":"YulIdentifier","src":"22662:4:88"},{"name":"x","nativeSrc":"22668:1:88","nodeType":"YulIdentifier","src":"22668:1:88"}],"functionName":{"name":"gt","nativeSrc":"22659:2:88","nodeType":"YulIdentifier","src":"22659:2:88"},"nativeSrc":"22659:11:88","nodeType":"YulFunctionCall","src":"22659:11:88"},"nativeSrc":"22656:37:88","nodeType":"YulIf","src":"22656:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"22571:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22602:1:88","nodeType":"YulTypedName","src":"22602:1:88","type":""},{"name":"y","nativeSrc":"22605:1:88","nodeType":"YulTypedName","src":"22605:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"22611:4:88","nodeType":"YulTypedName","src":"22611:4:88","type":""}],"src":"22571:128:88"},{"body":{"nativeSrc":"22802:170:88","nodeType":"YulBlock","src":"22802:170:88","statements":[{"body":{"nativeSrc":"22848:16:88","nodeType":"YulBlock","src":"22848:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22857:1:88","nodeType":"YulLiteral","src":"22857:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"22860:1:88","nodeType":"YulLiteral","src":"22860:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22850:6:88","nodeType":"YulIdentifier","src":"22850:6:88"},"nativeSrc":"22850:12:88","nodeType":"YulFunctionCall","src":"22850:12:88"},"nativeSrc":"22850:12:88","nodeType":"YulExpressionStatement","src":"22850:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22823:7:88","nodeType":"YulIdentifier","src":"22823:7:88"},{"name":"headStart","nativeSrc":"22832:9:88","nodeType":"YulIdentifier","src":"22832:9:88"}],"functionName":{"name":"sub","nativeSrc":"22819:3:88","nodeType":"YulIdentifier","src":"22819:3:88"},"nativeSrc":"22819:23:88","nodeType":"YulFunctionCall","src":"22819:23:88"},{"kind":"number","nativeSrc":"22844:2:88","nodeType":"YulLiteral","src":"22844:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22815:3:88","nodeType":"YulIdentifier","src":"22815:3:88"},"nativeSrc":"22815:32:88","nodeType":"YulFunctionCall","src":"22815:32:88"},"nativeSrc":"22812:52:88","nodeType":"YulIf","src":"22812:52:88"},{"nativeSrc":"22873:29:88","nodeType":"YulVariableDeclaration","src":"22873:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22892:9:88","nodeType":"YulIdentifier","src":"22892:9:88"}],"functionName":{"name":"mload","nativeSrc":"22886:5:88","nodeType":"YulIdentifier","src":"22886:5:88"},"nativeSrc":"22886:16:88","nodeType":"YulFunctionCall","src":"22886:16:88"},"variables":[{"name":"value","nativeSrc":"22877:5:88","nodeType":"YulTypedName","src":"22877:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22936:5:88","nodeType":"YulIdentifier","src":"22936:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"22911:24:88","nodeType":"YulIdentifier","src":"22911:24:88"},"nativeSrc":"22911:31:88","nodeType":"YulFunctionCall","src":"22911:31:88"},"nativeSrc":"22911:31:88","nodeType":"YulExpressionStatement","src":"22911:31:88"},{"nativeSrc":"22951:15:88","nodeType":"YulAssignment","src":"22951:15:88","value":{"name":"value","nativeSrc":"22961:5:88","nodeType":"YulIdentifier","src":"22961:5:88"},"variableNames":[{"name":"value0","nativeSrc":"22951:6:88","nodeType":"YulIdentifier","src":"22951:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory","nativeSrc":"22704:268:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22768:9:88","nodeType":"YulTypedName","src":"22768:9:88","type":""},{"name":"dataEnd","nativeSrc":"22779:7:88","nodeType":"YulTypedName","src":"22779:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22791:6:88","nodeType":"YulTypedName","src":"22791:6:88","type":""}],"src":"22704:268:88"},{"body":{"nativeSrc":"23058:170:88","nodeType":"YulBlock","src":"23058:170:88","statements":[{"body":{"nativeSrc":"23104:16:88","nodeType":"YulBlock","src":"23104:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23113:1:88","nodeType":"YulLiteral","src":"23113:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23116:1:88","nodeType":"YulLiteral","src":"23116:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23106:6:88","nodeType":"YulIdentifier","src":"23106:6:88"},"nativeSrc":"23106:12:88","nodeType":"YulFunctionCall","src":"23106:12:88"},"nativeSrc":"23106:12:88","nodeType":"YulExpressionStatement","src":"23106:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23079:7:88","nodeType":"YulIdentifier","src":"23079:7:88"},{"name":"headStart","nativeSrc":"23088:9:88","nodeType":"YulIdentifier","src":"23088:9:88"}],"functionName":{"name":"sub","nativeSrc":"23075:3:88","nodeType":"YulIdentifier","src":"23075:3:88"},"nativeSrc":"23075:23:88","nodeType":"YulFunctionCall","src":"23075:23:88"},{"kind":"number","nativeSrc":"23100:2:88","nodeType":"YulLiteral","src":"23100:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23071:3:88","nodeType":"YulIdentifier","src":"23071:3:88"},"nativeSrc":"23071:32:88","nodeType":"YulFunctionCall","src":"23071:32:88"},"nativeSrc":"23068:52:88","nodeType":"YulIf","src":"23068:52:88"},{"nativeSrc":"23129:29:88","nodeType":"YulVariableDeclaration","src":"23129:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23148:9:88","nodeType":"YulIdentifier","src":"23148:9:88"}],"functionName":{"name":"mload","nativeSrc":"23142:5:88","nodeType":"YulIdentifier","src":"23142:5:88"},"nativeSrc":"23142:16:88","nodeType":"YulFunctionCall","src":"23142:16:88"},"variables":[{"name":"value","nativeSrc":"23133:5:88","nodeType":"YulTypedName","src":"23133:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"23192:5:88","nodeType":"YulIdentifier","src":"23192:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"23167:24:88","nodeType":"YulIdentifier","src":"23167:24:88"},"nativeSrc":"23167:31:88","nodeType":"YulFunctionCall","src":"23167:31:88"},"nativeSrc":"23167:31:88","nodeType":"YulExpressionStatement","src":"23167:31:88"},{"nativeSrc":"23207:15:88","nodeType":"YulAssignment","src":"23207:15:88","value":{"name":"value","nativeSrc":"23217:5:88","nodeType":"YulIdentifier","src":"23217:5:88"},"variableNames":[{"name":"value0","nativeSrc":"23207:6:88","nodeType":"YulIdentifier","src":"23207:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"22977:251:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23024:9:88","nodeType":"YulTypedName","src":"23024:9:88","type":""},{"name":"dataEnd","nativeSrc":"23035:7:88","nodeType":"YulTypedName","src":"23035:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23047:6:88","nodeType":"YulTypedName","src":"23047:6:88","type":""}],"src":"22977:251:88"},{"body":{"nativeSrc":"23392:99:88","nodeType":"YulBlock","src":"23392:99:88","statements":[{"nativeSrc":"23402:27:88","nodeType":"YulAssignment","src":"23402:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23414:9:88","nodeType":"YulIdentifier","src":"23414:9:88"},{"kind":"number","nativeSrc":"23425:3:88","nodeType":"YulLiteral","src":"23425:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"23410:3:88","nodeType":"YulIdentifier","src":"23410:3:88"},"nativeSrc":"23410:19:88","nodeType":"YulFunctionCall","src":"23410:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23402:4:88","nodeType":"YulIdentifier","src":"23402:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"23467:6:88","nodeType":"YulIdentifier","src":"23467:6:88"},{"name":"headStart","nativeSrc":"23475:9:88","nodeType":"YulIdentifier","src":"23475:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"23438:28:88","nodeType":"YulIdentifier","src":"23438:28:88"},"nativeSrc":"23438:47:88","nodeType":"YulFunctionCall","src":"23438:47:88"},"nativeSrc":"23438:47:88","nodeType":"YulExpressionStatement","src":"23438:47:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"23233:258:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23361:9:88","nodeType":"YulTypedName","src":"23361:9:88","type":""},{"name":"value0","nativeSrc":"23372:6:88","nodeType":"YulTypedName","src":"23372:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23383:4:88","nodeType":"YulTypedName","src":"23383:4:88","type":""}],"src":"23233:258:88"},{"body":{"nativeSrc":"23653:188:88","nodeType":"YulBlock","src":"23653:188:88","statements":[{"nativeSrc":"23663:26:88","nodeType":"YulAssignment","src":"23663:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23675:9:88","nodeType":"YulIdentifier","src":"23675:9:88"},{"kind":"number","nativeSrc":"23686:2:88","nodeType":"YulLiteral","src":"23686:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23671:3:88","nodeType":"YulIdentifier","src":"23671:3:88"},"nativeSrc":"23671:18:88","nodeType":"YulFunctionCall","src":"23671:18:88"},"variableNames":[{"name":"tail","nativeSrc":"23663:4:88","nodeType":"YulIdentifier","src":"23663:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23705:9:88","nodeType":"YulIdentifier","src":"23705:9:88"},{"name":"value0","nativeSrc":"23716:6:88","nodeType":"YulIdentifier","src":"23716:6:88"}],"functionName":{"name":"mstore","nativeSrc":"23698:6:88","nodeType":"YulIdentifier","src":"23698:6:88"},"nativeSrc":"23698:25:88","nodeType":"YulFunctionCall","src":"23698:25:88"},"nativeSrc":"23698:25:88","nodeType":"YulExpressionStatement","src":"23698:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23743:9:88","nodeType":"YulIdentifier","src":"23743:9:88"},{"kind":"number","nativeSrc":"23754:2:88","nodeType":"YulLiteral","src":"23754:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23739:3:88","nodeType":"YulIdentifier","src":"23739:3:88"},"nativeSrc":"23739:18:88","nodeType":"YulFunctionCall","src":"23739:18:88"},{"name":"value1","nativeSrc":"23759:6:88","nodeType":"YulIdentifier","src":"23759:6:88"}],"functionName":{"name":"mstore","nativeSrc":"23732:6:88","nodeType":"YulIdentifier","src":"23732:6:88"},"nativeSrc":"23732:34:88","nodeType":"YulFunctionCall","src":"23732:34:88"},"nativeSrc":"23732:34:88","nodeType":"YulExpressionStatement","src":"23732:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23786:9:88","nodeType":"YulIdentifier","src":"23786:9:88"},{"kind":"number","nativeSrc":"23797:2:88","nodeType":"YulLiteral","src":"23797:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23782:3:88","nodeType":"YulIdentifier","src":"23782:3:88"},"nativeSrc":"23782:18:88","nodeType":"YulFunctionCall","src":"23782:18:88"},{"arguments":[{"name":"value2","nativeSrc":"23806:6:88","nodeType":"YulIdentifier","src":"23806:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23822:3:88","nodeType":"YulLiteral","src":"23822:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"23827:1:88","nodeType":"YulLiteral","src":"23827:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"23818:3:88","nodeType":"YulIdentifier","src":"23818:3:88"},"nativeSrc":"23818:11:88","nodeType":"YulFunctionCall","src":"23818:11:88"},{"kind":"number","nativeSrc":"23831:1:88","nodeType":"YulLiteral","src":"23831:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"23814:3:88","nodeType":"YulIdentifier","src":"23814:3:88"},"nativeSrc":"23814:19:88","nodeType":"YulFunctionCall","src":"23814:19:88"}],"functionName":{"name":"and","nativeSrc":"23802:3:88","nodeType":"YulIdentifier","src":"23802:3:88"},"nativeSrc":"23802:32:88","nodeType":"YulFunctionCall","src":"23802:32:88"}],"functionName":{"name":"mstore","nativeSrc":"23775:6:88","nodeType":"YulIdentifier","src":"23775:6:88"},"nativeSrc":"23775:60:88","nodeType":"YulFunctionCall","src":"23775:60:88"},"nativeSrc":"23775:60:88","nodeType":"YulExpressionStatement","src":"23775:60:88"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed","nativeSrc":"23496:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23606:9:88","nodeType":"YulTypedName","src":"23606:9:88","type":""},{"name":"value2","nativeSrc":"23617:6:88","nodeType":"YulTypedName","src":"23617:6:88","type":""},{"name":"value1","nativeSrc":"23625:6:88","nodeType":"YulTypedName","src":"23625:6:88","type":""},{"name":"value0","nativeSrc":"23633:6:88","nodeType":"YulTypedName","src":"23633:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23644:4:88","nodeType":"YulTypedName","src":"23644:4:88","type":""}],"src":"23496:345:88"},{"body":{"nativeSrc":"23927:103:88","nodeType":"YulBlock","src":"23927:103:88","statements":[{"body":{"nativeSrc":"23973:16:88","nodeType":"YulBlock","src":"23973:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23982:1:88","nodeType":"YulLiteral","src":"23982:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23985:1:88","nodeType":"YulLiteral","src":"23985:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23975:6:88","nodeType":"YulIdentifier","src":"23975:6:88"},"nativeSrc":"23975:12:88","nodeType":"YulFunctionCall","src":"23975:12:88"},"nativeSrc":"23975:12:88","nodeType":"YulExpressionStatement","src":"23975:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23948:7:88","nodeType":"YulIdentifier","src":"23948:7:88"},{"name":"headStart","nativeSrc":"23957:9:88","nodeType":"YulIdentifier","src":"23957:9:88"}],"functionName":{"name":"sub","nativeSrc":"23944:3:88","nodeType":"YulIdentifier","src":"23944:3:88"},"nativeSrc":"23944:23:88","nodeType":"YulFunctionCall","src":"23944:23:88"},{"kind":"number","nativeSrc":"23969:2:88","nodeType":"YulLiteral","src":"23969:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23940:3:88","nodeType":"YulIdentifier","src":"23940:3:88"},"nativeSrc":"23940:32:88","nodeType":"YulFunctionCall","src":"23940:32:88"},"nativeSrc":"23937:52:88","nodeType":"YulIf","src":"23937:52:88"},{"nativeSrc":"23998:26:88","nodeType":"YulAssignment","src":"23998:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24014:9:88","nodeType":"YulIdentifier","src":"24014:9:88"}],"functionName":{"name":"mload","nativeSrc":"24008:5:88","nodeType":"YulIdentifier","src":"24008:5:88"},"nativeSrc":"24008:16:88","nodeType":"YulFunctionCall","src":"24008:16:88"},"variableNames":[{"name":"value0","nativeSrc":"23998:6:88","nodeType":"YulIdentifier","src":"23998:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"23846:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23893:9:88","nodeType":"YulTypedName","src":"23893:9:88","type":""},{"name":"dataEnd","nativeSrc":"23904:7:88","nodeType":"YulTypedName","src":"23904:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23916:6:88","nodeType":"YulTypedName","src":"23916:6:88","type":""}],"src":"23846:184:88"},{"body":{"nativeSrc":"24164:145:88","nodeType":"YulBlock","src":"24164:145:88","statements":[{"nativeSrc":"24174:26:88","nodeType":"YulAssignment","src":"24174:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24186:9:88","nodeType":"YulIdentifier","src":"24186:9:88"},{"kind":"number","nativeSrc":"24197:2:88","nodeType":"YulLiteral","src":"24197:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24182:3:88","nodeType":"YulIdentifier","src":"24182:3:88"},"nativeSrc":"24182:18:88","nodeType":"YulFunctionCall","src":"24182:18:88"},"variableNames":[{"name":"tail","nativeSrc":"24174:4:88","nodeType":"YulIdentifier","src":"24174:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24216:9:88","nodeType":"YulIdentifier","src":"24216:9:88"},{"arguments":[{"name":"value0","nativeSrc":"24231:6:88","nodeType":"YulIdentifier","src":"24231:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24247:3:88","nodeType":"YulLiteral","src":"24247:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"24252:1:88","nodeType":"YulLiteral","src":"24252:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24243:3:88","nodeType":"YulIdentifier","src":"24243:3:88"},"nativeSrc":"24243:11:88","nodeType":"YulFunctionCall","src":"24243:11:88"},{"kind":"number","nativeSrc":"24256:1:88","nodeType":"YulLiteral","src":"24256:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24239:3:88","nodeType":"YulIdentifier","src":"24239:3:88"},"nativeSrc":"24239:19:88","nodeType":"YulFunctionCall","src":"24239:19:88"}],"functionName":{"name":"and","nativeSrc":"24227:3:88","nodeType":"YulIdentifier","src":"24227:3:88"},"nativeSrc":"24227:32:88","nodeType":"YulFunctionCall","src":"24227:32:88"}],"functionName":{"name":"mstore","nativeSrc":"24209:6:88","nodeType":"YulIdentifier","src":"24209:6:88"},"nativeSrc":"24209:51:88","nodeType":"YulFunctionCall","src":"24209:51:88"},"nativeSrc":"24209:51:88","nodeType":"YulExpressionStatement","src":"24209:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24280:9:88","nodeType":"YulIdentifier","src":"24280:9:88"},{"kind":"number","nativeSrc":"24291:2:88","nodeType":"YulLiteral","src":"24291:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24276:3:88","nodeType":"YulIdentifier","src":"24276:3:88"},"nativeSrc":"24276:18:88","nodeType":"YulFunctionCall","src":"24276:18:88"},{"name":"value1","nativeSrc":"24296:6:88","nodeType":"YulIdentifier","src":"24296:6:88"}],"functionName":{"name":"mstore","nativeSrc":"24269:6:88","nodeType":"YulIdentifier","src":"24269:6:88"},"nativeSrc":"24269:34:88","nodeType":"YulFunctionCall","src":"24269:34:88"},"nativeSrc":"24269:34:88","nodeType":"YulExpressionStatement","src":"24269:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"24035:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24125:9:88","nodeType":"YulTypedName","src":"24125:9:88","type":""},{"name":"value1","nativeSrc":"24136:6:88","nodeType":"YulTypedName","src":"24136:6:88","type":""},{"name":"value0","nativeSrc":"24144:6:88","nodeType":"YulTypedName","src":"24144:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24155:4:88","nodeType":"YulTypedName","src":"24155:4:88","type":""}],"src":"24035:274:88"},{"body":{"nativeSrc":"24488:246:88","nodeType":"YulBlock","src":"24488:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24505:9:88","nodeType":"YulIdentifier","src":"24505:9:88"},{"kind":"number","nativeSrc":"24516:2:88","nodeType":"YulLiteral","src":"24516:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24498:6:88","nodeType":"YulIdentifier","src":"24498:6:88"},"nativeSrc":"24498:21:88","nodeType":"YulFunctionCall","src":"24498:21:88"},"nativeSrc":"24498:21:88","nodeType":"YulExpressionStatement","src":"24498:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24539:9:88","nodeType":"YulIdentifier","src":"24539:9:88"},{"kind":"number","nativeSrc":"24550:2:88","nodeType":"YulLiteral","src":"24550:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24535:3:88","nodeType":"YulIdentifier","src":"24535:3:88"},"nativeSrc":"24535:18:88","nodeType":"YulFunctionCall","src":"24535:18:88"},{"kind":"number","nativeSrc":"24555:2:88","nodeType":"YulLiteral","src":"24555:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"24528:6:88","nodeType":"YulIdentifier","src":"24528:6:88"},"nativeSrc":"24528:30:88","nodeType":"YulFunctionCall","src":"24528:30:88"},"nativeSrc":"24528:30:88","nodeType":"YulExpressionStatement","src":"24528:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24578:9:88","nodeType":"YulIdentifier","src":"24578:9:88"},{"kind":"number","nativeSrc":"24589:2:88","nodeType":"YulLiteral","src":"24589:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24574:3:88","nodeType":"YulIdentifier","src":"24574:3:88"},"nativeSrc":"24574:18:88","nodeType":"YulFunctionCall","src":"24574:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"24594:34:88","nodeType":"YulLiteral","src":"24594:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"24567:6:88","nodeType":"YulIdentifier","src":"24567:6:88"},"nativeSrc":"24567:62:88","nodeType":"YulFunctionCall","src":"24567:62:88"},"nativeSrc":"24567:62:88","nodeType":"YulExpressionStatement","src":"24567:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24649:9:88","nodeType":"YulIdentifier","src":"24649:9:88"},{"kind":"number","nativeSrc":"24660:2:88","nodeType":"YulLiteral","src":"24660:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24645:3:88","nodeType":"YulIdentifier","src":"24645:3:88"},"nativeSrc":"24645:18:88","nodeType":"YulFunctionCall","src":"24645:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"24665:26:88","nodeType":"YulLiteral","src":"24665:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"24638:6:88","nodeType":"YulIdentifier","src":"24638:6:88"},"nativeSrc":"24638:54:88","nodeType":"YulFunctionCall","src":"24638:54:88"},"nativeSrc":"24638:54:88","nodeType":"YulExpressionStatement","src":"24638:54:88"},{"nativeSrc":"24701:27:88","nodeType":"YulAssignment","src":"24701:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24713:9:88","nodeType":"YulIdentifier","src":"24713:9:88"},{"kind":"number","nativeSrc":"24724:3:88","nodeType":"YulLiteral","src":"24724:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24709:3:88","nodeType":"YulIdentifier","src":"24709:3:88"},"nativeSrc":"24709:19:88","nodeType":"YulFunctionCall","src":"24709:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24701:4:88","nodeType":"YulIdentifier","src":"24701:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24314:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24465:9:88","nodeType":"YulTypedName","src":"24465:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24479:4:88","nodeType":"YulTypedName","src":"24479:4:88","type":""}],"src":"24314:420:88"},{"body":{"nativeSrc":"24868:145:88","nodeType":"YulBlock","src":"24868:145:88","statements":[{"nativeSrc":"24878:26:88","nodeType":"YulAssignment","src":"24878:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24890:9:88","nodeType":"YulIdentifier","src":"24890:9:88"},{"kind":"number","nativeSrc":"24901:2:88","nodeType":"YulLiteral","src":"24901:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24886:3:88","nodeType":"YulIdentifier","src":"24886:3:88"},"nativeSrc":"24886:18:88","nodeType":"YulFunctionCall","src":"24886:18:88"},"variableNames":[{"name":"tail","nativeSrc":"24878:4:88","nodeType":"YulIdentifier","src":"24878:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24920:9:88","nodeType":"YulIdentifier","src":"24920:9:88"},{"name":"value0","nativeSrc":"24931:6:88","nodeType":"YulIdentifier","src":"24931:6:88"}],"functionName":{"name":"mstore","nativeSrc":"24913:6:88","nodeType":"YulIdentifier","src":"24913:6:88"},"nativeSrc":"24913:25:88","nodeType":"YulFunctionCall","src":"24913:25:88"},"nativeSrc":"24913:25:88","nodeType":"YulExpressionStatement","src":"24913:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24958:9:88","nodeType":"YulIdentifier","src":"24958:9:88"},{"kind":"number","nativeSrc":"24969:2:88","nodeType":"YulLiteral","src":"24969:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24954:3:88","nodeType":"YulIdentifier","src":"24954:3:88"},"nativeSrc":"24954:18:88","nodeType":"YulFunctionCall","src":"24954:18:88"},{"arguments":[{"name":"value1","nativeSrc":"24978:6:88","nodeType":"YulIdentifier","src":"24978:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24994:3:88","nodeType":"YulLiteral","src":"24994:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"24999:1:88","nodeType":"YulLiteral","src":"24999:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24990:3:88","nodeType":"YulIdentifier","src":"24990:3:88"},"nativeSrc":"24990:11:88","nodeType":"YulFunctionCall","src":"24990:11:88"},{"kind":"number","nativeSrc":"25003:1:88","nodeType":"YulLiteral","src":"25003:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24986:3:88","nodeType":"YulIdentifier","src":"24986:3:88"},"nativeSrc":"24986:19:88","nodeType":"YulFunctionCall","src":"24986:19:88"}],"functionName":{"name":"and","nativeSrc":"24974:3:88","nodeType":"YulIdentifier","src":"24974:3:88"},"nativeSrc":"24974:32:88","nodeType":"YulFunctionCall","src":"24974:32:88"}],"functionName":{"name":"mstore","nativeSrc":"24947:6:88","nodeType":"YulIdentifier","src":"24947:6:88"},"nativeSrc":"24947:60:88","nodeType":"YulFunctionCall","src":"24947:60:88"},"nativeSrc":"24947:60:88","nodeType":"YulExpressionStatement","src":"24947:60:88"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nativeSrc":"24739:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24829:9:88","nodeType":"YulTypedName","src":"24829:9:88","type":""},{"name":"value1","nativeSrc":"24840:6:88","nodeType":"YulTypedName","src":"24840:6:88","type":""},{"name":"value0","nativeSrc":"24848:6:88","nodeType":"YulTypedName","src":"24848:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24859:4:88","nodeType":"YulTypedName","src":"24859:4:88","type":""}],"src":"24739:274:88"},{"body":{"nativeSrc":"25074:65:88","nodeType":"YulBlock","src":"25074:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25091:1:88","nodeType":"YulLiteral","src":"25091:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"25094:3:88","nodeType":"YulIdentifier","src":"25094:3:88"}],"functionName":{"name":"mstore","nativeSrc":"25084:6:88","nodeType":"YulIdentifier","src":"25084:6:88"},"nativeSrc":"25084:14:88","nodeType":"YulFunctionCall","src":"25084:14:88"},"nativeSrc":"25084:14:88","nodeType":"YulExpressionStatement","src":"25084:14:88"},{"nativeSrc":"25107:26:88","nodeType":"YulAssignment","src":"25107:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"25125:1:88","nodeType":"YulLiteral","src":"25125:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"25128:4:88","nodeType":"YulLiteral","src":"25128:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"25115:9:88","nodeType":"YulIdentifier","src":"25115:9:88"},"nativeSrc":"25115:18:88","nodeType":"YulFunctionCall","src":"25115:18:88"},"variableNames":[{"name":"data","nativeSrc":"25107:4:88","nodeType":"YulIdentifier","src":"25107:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"25018:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"25057:3:88","nodeType":"YulTypedName","src":"25057:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"25065:4:88","nodeType":"YulTypedName","src":"25065:4:88","type":""}],"src":"25018:121:88"},{"body":{"nativeSrc":"25225:437:88","nodeType":"YulBlock","src":"25225:437:88","statements":[{"body":{"nativeSrc":"25258:398:88","nodeType":"YulBlock","src":"25258:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25279:1:88","nodeType":"YulLiteral","src":"25279:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"25282:5:88","nodeType":"YulIdentifier","src":"25282:5:88"}],"functionName":{"name":"mstore","nativeSrc":"25272:6:88","nodeType":"YulIdentifier","src":"25272:6:88"},"nativeSrc":"25272:16:88","nodeType":"YulFunctionCall","src":"25272:16:88"},"nativeSrc":"25272:16:88","nodeType":"YulExpressionStatement","src":"25272:16:88"},{"nativeSrc":"25301:30:88","nodeType":"YulVariableDeclaration","src":"25301:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"25323:1:88","nodeType":"YulLiteral","src":"25323:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"25326:4:88","nodeType":"YulLiteral","src":"25326:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"25313:9:88","nodeType":"YulIdentifier","src":"25313:9:88"},"nativeSrc":"25313:18:88","nodeType":"YulFunctionCall","src":"25313:18:88"},"variables":[{"name":"data","nativeSrc":"25305:4:88","nodeType":"YulTypedName","src":"25305:4:88","type":""}]},{"nativeSrc":"25344:57:88","nodeType":"YulVariableDeclaration","src":"25344:57:88","value":{"arguments":[{"name":"data","nativeSrc":"25367:4:88","nodeType":"YulIdentifier","src":"25367:4:88"},{"arguments":[{"kind":"number","nativeSrc":"25377:1:88","nodeType":"YulLiteral","src":"25377:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"25384:10:88","nodeType":"YulIdentifier","src":"25384:10:88"},{"kind":"number","nativeSrc":"25396:2:88","nodeType":"YulLiteral","src":"25396:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"25380:3:88","nodeType":"YulIdentifier","src":"25380:3:88"},"nativeSrc":"25380:19:88","nodeType":"YulFunctionCall","src":"25380:19:88"}],"functionName":{"name":"shr","nativeSrc":"25373:3:88","nodeType":"YulIdentifier","src":"25373:3:88"},"nativeSrc":"25373:27:88","nodeType":"YulFunctionCall","src":"25373:27:88"}],"functionName":{"name":"add","nativeSrc":"25363:3:88","nodeType":"YulIdentifier","src":"25363:3:88"},"nativeSrc":"25363:38:88","nodeType":"YulFunctionCall","src":"25363:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"25348:11:88","nodeType":"YulTypedName","src":"25348:11:88","type":""}]},{"body":{"nativeSrc":"25438:23:88","nodeType":"YulBlock","src":"25438:23:88","statements":[{"nativeSrc":"25440:19:88","nodeType":"YulAssignment","src":"25440:19:88","value":{"name":"data","nativeSrc":"25455:4:88","nodeType":"YulIdentifier","src":"25455:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"25440:11:88","nodeType":"YulIdentifier","src":"25440:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"25420:10:88","nodeType":"YulIdentifier","src":"25420:10:88"},{"kind":"number","nativeSrc":"25432:4:88","nodeType":"YulLiteral","src":"25432:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"25417:2:88","nodeType":"YulIdentifier","src":"25417:2:88"},"nativeSrc":"25417:20:88","nodeType":"YulFunctionCall","src":"25417:20:88"},"nativeSrc":"25414:47:88","nodeType":"YulIf","src":"25414:47:88"},{"nativeSrc":"25474:41:88","nodeType":"YulVariableDeclaration","src":"25474:41:88","value":{"arguments":[{"name":"data","nativeSrc":"25488:4:88","nodeType":"YulIdentifier","src":"25488:4:88"},{"arguments":[{"kind":"number","nativeSrc":"25498:1:88","nodeType":"YulLiteral","src":"25498:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"25505:3:88","nodeType":"YulIdentifier","src":"25505:3:88"},{"kind":"number","nativeSrc":"25510:2:88","nodeType":"YulLiteral","src":"25510:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"25501:3:88","nodeType":"YulIdentifier","src":"25501:3:88"},"nativeSrc":"25501:12:88","nodeType":"YulFunctionCall","src":"25501:12:88"}],"functionName":{"name":"shr","nativeSrc":"25494:3:88","nodeType":"YulIdentifier","src":"25494:3:88"},"nativeSrc":"25494:20:88","nodeType":"YulFunctionCall","src":"25494:20:88"}],"functionName":{"name":"add","nativeSrc":"25484:3:88","nodeType":"YulIdentifier","src":"25484:3:88"},"nativeSrc":"25484:31:88","nodeType":"YulFunctionCall","src":"25484:31:88"},"variables":[{"name":"_1","nativeSrc":"25478:2:88","nodeType":"YulTypedName","src":"25478:2:88","type":""}]},{"nativeSrc":"25528:24:88","nodeType":"YulVariableDeclaration","src":"25528:24:88","value":{"name":"deleteStart","nativeSrc":"25541:11:88","nodeType":"YulIdentifier","src":"25541:11:88"},"variables":[{"name":"start","nativeSrc":"25532:5:88","nodeType":"YulTypedName","src":"25532:5:88","type":""}]},{"body":{"nativeSrc":"25626:20:88","nodeType":"YulBlock","src":"25626:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"25635:5:88","nodeType":"YulIdentifier","src":"25635:5:88"},{"kind":"number","nativeSrc":"25642:1:88","nodeType":"YulLiteral","src":"25642:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"25628:6:88","nodeType":"YulIdentifier","src":"25628:6:88"},"nativeSrc":"25628:16:88","nodeType":"YulFunctionCall","src":"25628:16:88"},"nativeSrc":"25628:16:88","nodeType":"YulExpressionStatement","src":"25628:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"25576:5:88","nodeType":"YulIdentifier","src":"25576:5:88"},{"name":"_1","nativeSrc":"25583:2:88","nodeType":"YulIdentifier","src":"25583:2:88"}],"functionName":{"name":"lt","nativeSrc":"25573:2:88","nodeType":"YulIdentifier","src":"25573:2:88"},"nativeSrc":"25573:13:88","nodeType":"YulFunctionCall","src":"25573:13:88"},"nativeSrc":"25565:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"25587:26:88","nodeType":"YulBlock","src":"25587:26:88","statements":[{"nativeSrc":"25589:22:88","nodeType":"YulAssignment","src":"25589:22:88","value":{"arguments":[{"name":"start","nativeSrc":"25602:5:88","nodeType":"YulIdentifier","src":"25602:5:88"},{"kind":"number","nativeSrc":"25609:1:88","nodeType":"YulLiteral","src":"25609:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"25598:3:88","nodeType":"YulIdentifier","src":"25598:3:88"},"nativeSrc":"25598:13:88","nodeType":"YulFunctionCall","src":"25598:13:88"},"variableNames":[{"name":"start","nativeSrc":"25589:5:88","nodeType":"YulIdentifier","src":"25589:5:88"}]}]},"pre":{"nativeSrc":"25569:3:88","nodeType":"YulBlock","src":"25569:3:88","statements":[]},"src":"25565:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"25241:3:88","nodeType":"YulIdentifier","src":"25241:3:88"},{"kind":"number","nativeSrc":"25246:2:88","nodeType":"YulLiteral","src":"25246:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"25238:2:88","nodeType":"YulIdentifier","src":"25238:2:88"},"nativeSrc":"25238:11:88","nodeType":"YulFunctionCall","src":"25238:11:88"},"nativeSrc":"25235:421:88","nodeType":"YulIf","src":"25235:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"25144:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"25197:5:88","nodeType":"YulTypedName","src":"25197:5:88","type":""},{"name":"len","nativeSrc":"25204:3:88","nodeType":"YulTypedName","src":"25204:3:88","type":""},{"name":"startIndex","nativeSrc":"25209:10:88","nodeType":"YulTypedName","src":"25209:10:88","type":""}],"src":"25144:518:88"},{"body":{"nativeSrc":"25752:81:88","nodeType":"YulBlock","src":"25752:81:88","statements":[{"nativeSrc":"25762:65:88","nodeType":"YulAssignment","src":"25762:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"25777:4:88","nodeType":"YulIdentifier","src":"25777:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25795:1:88","nodeType":"YulLiteral","src":"25795:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"25798:3:88","nodeType":"YulIdentifier","src":"25798:3:88"}],"functionName":{"name":"shl","nativeSrc":"25791:3:88","nodeType":"YulIdentifier","src":"25791:3:88"},"nativeSrc":"25791:11:88","nodeType":"YulFunctionCall","src":"25791:11:88"},{"arguments":[{"kind":"number","nativeSrc":"25808:1:88","nodeType":"YulLiteral","src":"25808:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"25804:3:88","nodeType":"YulIdentifier","src":"25804:3:88"},"nativeSrc":"25804:6:88","nodeType":"YulFunctionCall","src":"25804:6:88"}],"functionName":{"name":"shr","nativeSrc":"25787:3:88","nodeType":"YulIdentifier","src":"25787:3:88"},"nativeSrc":"25787:24:88","nodeType":"YulFunctionCall","src":"25787:24:88"}],"functionName":{"name":"not","nativeSrc":"25783:3:88","nodeType":"YulIdentifier","src":"25783:3:88"},"nativeSrc":"25783:29:88","nodeType":"YulFunctionCall","src":"25783:29:88"}],"functionName":{"name":"and","nativeSrc":"25773:3:88","nodeType":"YulIdentifier","src":"25773:3:88"},"nativeSrc":"25773:40:88","nodeType":"YulFunctionCall","src":"25773:40:88"},{"arguments":[{"kind":"number","nativeSrc":"25819:1:88","nodeType":"YulLiteral","src":"25819:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"25822:3:88","nodeType":"YulIdentifier","src":"25822:3:88"}],"functionName":{"name":"shl","nativeSrc":"25815:3:88","nodeType":"YulIdentifier","src":"25815:3:88"},"nativeSrc":"25815:11:88","nodeType":"YulFunctionCall","src":"25815:11:88"}],"functionName":{"name":"or","nativeSrc":"25770:2:88","nodeType":"YulIdentifier","src":"25770:2:88"},"nativeSrc":"25770:57:88","nodeType":"YulFunctionCall","src":"25770:57:88"},"variableNames":[{"name":"used","nativeSrc":"25762:4:88","nodeType":"YulIdentifier","src":"25762:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25667:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"25729:4:88","nodeType":"YulTypedName","src":"25729:4:88","type":""},{"name":"len","nativeSrc":"25735:3:88","nodeType":"YulTypedName","src":"25735:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"25743:4:88","nodeType":"YulTypedName","src":"25743:4:88","type":""}],"src":"25667:166:88"},{"body":{"nativeSrc":"25934:1203:88","nodeType":"YulBlock","src":"25934:1203:88","statements":[{"nativeSrc":"25944:24:88","nodeType":"YulVariableDeclaration","src":"25944:24:88","value":{"arguments":[{"name":"src","nativeSrc":"25964:3:88","nodeType":"YulIdentifier","src":"25964:3:88"}],"functionName":{"name":"mload","nativeSrc":"25958:5:88","nodeType":"YulIdentifier","src":"25958:5:88"},"nativeSrc":"25958:10:88","nodeType":"YulFunctionCall","src":"25958:10:88"},"variables":[{"name":"newLen","nativeSrc":"25948:6:88","nodeType":"YulTypedName","src":"25948:6:88","type":""}]},{"body":{"nativeSrc":"26011:22:88","nodeType":"YulBlock","src":"26011:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"26013:16:88","nodeType":"YulIdentifier","src":"26013:16:88"},"nativeSrc":"26013:18:88","nodeType":"YulFunctionCall","src":"26013:18:88"},"nativeSrc":"26013:18:88","nodeType":"YulExpressionStatement","src":"26013:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"25983:6:88","nodeType":"YulIdentifier","src":"25983:6:88"},{"kind":"number","nativeSrc":"25991:18:88","nodeType":"YulLiteral","src":"25991:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25980:2:88","nodeType":"YulIdentifier","src":"25980:2:88"},"nativeSrc":"25980:30:88","nodeType":"YulFunctionCall","src":"25980:30:88"},"nativeSrc":"25977:56:88","nodeType":"YulIf","src":"25977:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"26086:4:88","nodeType":"YulIdentifier","src":"26086:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"26124:4:88","nodeType":"YulIdentifier","src":"26124:4:88"}],"functionName":{"name":"sload","nativeSrc":"26118:5:88","nodeType":"YulIdentifier","src":"26118:5:88"},"nativeSrc":"26118:11:88","nodeType":"YulFunctionCall","src":"26118:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"26092:25:88","nodeType":"YulIdentifier","src":"26092:25:88"},"nativeSrc":"26092:38:88","nodeType":"YulFunctionCall","src":"26092:38:88"},{"name":"newLen","nativeSrc":"26132:6:88","nodeType":"YulIdentifier","src":"26132:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"26042:43:88","nodeType":"YulIdentifier","src":"26042:43:88"},"nativeSrc":"26042:97:88","nodeType":"YulFunctionCall","src":"26042:97:88"},"nativeSrc":"26042:97:88","nodeType":"YulExpressionStatement","src":"26042:97:88"},{"nativeSrc":"26148:18:88","nodeType":"YulVariableDeclaration","src":"26148:18:88","value":{"kind":"number","nativeSrc":"26165:1:88","nodeType":"YulLiteral","src":"26165:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"26152:9:88","nodeType":"YulTypedName","src":"26152:9:88","type":""}]},{"nativeSrc":"26175:17:88","nodeType":"YulAssignment","src":"26175:17:88","value":{"kind":"number","nativeSrc":"26188:4:88","nodeType":"YulLiteral","src":"26188:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"26175:9:88","nodeType":"YulIdentifier","src":"26175:9:88"}]},{"cases":[{"body":{"nativeSrc":"26238:642:88","nodeType":"YulBlock","src":"26238:642:88","statements":[{"nativeSrc":"26252:35:88","nodeType":"YulVariableDeclaration","src":"26252:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"26271:6:88","nodeType":"YulIdentifier","src":"26271:6:88"},{"arguments":[{"kind":"number","nativeSrc":"26283:2:88","nodeType":"YulLiteral","src":"26283:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"26279:3:88","nodeType":"YulIdentifier","src":"26279:3:88"},"nativeSrc":"26279:7:88","nodeType":"YulFunctionCall","src":"26279:7:88"}],"functionName":{"name":"and","nativeSrc":"26267:3:88","nodeType":"YulIdentifier","src":"26267:3:88"},"nativeSrc":"26267:20:88","nodeType":"YulFunctionCall","src":"26267:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"26256:7:88","nodeType":"YulTypedName","src":"26256:7:88","type":""}]},{"nativeSrc":"26300:49:88","nodeType":"YulVariableDeclaration","src":"26300:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"26344:4:88","nodeType":"YulIdentifier","src":"26344:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"26314:29:88","nodeType":"YulIdentifier","src":"26314:29:88"},"nativeSrc":"26314:35:88","nodeType":"YulFunctionCall","src":"26314:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"26304:6:88","nodeType":"YulTypedName","src":"26304:6:88","type":""}]},{"nativeSrc":"26362:10:88","nodeType":"YulVariableDeclaration","src":"26362:10:88","value":{"kind":"number","nativeSrc":"26371:1:88","nodeType":"YulLiteral","src":"26371:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"26366:1:88","nodeType":"YulTypedName","src":"26366:1:88","type":""}]},{"body":{"nativeSrc":"26442:165:88","nodeType":"YulBlock","src":"26442:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"26467:6:88","nodeType":"YulIdentifier","src":"26467:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26485:3:88","nodeType":"YulIdentifier","src":"26485:3:88"},{"name":"srcOffset","nativeSrc":"26490:9:88","nodeType":"YulIdentifier","src":"26490:9:88"}],"functionName":{"name":"add","nativeSrc":"26481:3:88","nodeType":"YulIdentifier","src":"26481:3:88"},"nativeSrc":"26481:19:88","nodeType":"YulFunctionCall","src":"26481:19:88"}],"functionName":{"name":"mload","nativeSrc":"26475:5:88","nodeType":"YulIdentifier","src":"26475:5:88"},"nativeSrc":"26475:26:88","nodeType":"YulFunctionCall","src":"26475:26:88"}],"functionName":{"name":"sstore","nativeSrc":"26460:6:88","nodeType":"YulIdentifier","src":"26460:6:88"},"nativeSrc":"26460:42:88","nodeType":"YulFunctionCall","src":"26460:42:88"},"nativeSrc":"26460:42:88","nodeType":"YulExpressionStatement","src":"26460:42:88"},{"nativeSrc":"26519:24:88","nodeType":"YulAssignment","src":"26519:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"26533:6:88","nodeType":"YulIdentifier","src":"26533:6:88"},{"kind":"number","nativeSrc":"26541:1:88","nodeType":"YulLiteral","src":"26541:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26529:3:88","nodeType":"YulIdentifier","src":"26529:3:88"},"nativeSrc":"26529:14:88","nodeType":"YulFunctionCall","src":"26529:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"26519:6:88","nodeType":"YulIdentifier","src":"26519:6:88"}]},{"nativeSrc":"26560:33:88","nodeType":"YulAssignment","src":"26560:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"26577:9:88","nodeType":"YulIdentifier","src":"26577:9:88"},{"kind":"number","nativeSrc":"26588:4:88","nodeType":"YulLiteral","src":"26588:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26573:3:88","nodeType":"YulIdentifier","src":"26573:3:88"},"nativeSrc":"26573:20:88","nodeType":"YulFunctionCall","src":"26573:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"26560:9:88","nodeType":"YulIdentifier","src":"26560:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"26396:1:88","nodeType":"YulIdentifier","src":"26396:1:88"},{"name":"loopEnd","nativeSrc":"26399:7:88","nodeType":"YulIdentifier","src":"26399:7:88"}],"functionName":{"name":"lt","nativeSrc":"26393:2:88","nodeType":"YulIdentifier","src":"26393:2:88"},"nativeSrc":"26393:14:88","nodeType":"YulFunctionCall","src":"26393:14:88"},"nativeSrc":"26385:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"26408:21:88","nodeType":"YulBlock","src":"26408:21:88","statements":[{"nativeSrc":"26410:17:88","nodeType":"YulAssignment","src":"26410:17:88","value":{"arguments":[{"name":"i","nativeSrc":"26419:1:88","nodeType":"YulIdentifier","src":"26419:1:88"},{"kind":"number","nativeSrc":"26422:4:88","nodeType":"YulLiteral","src":"26422:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26415:3:88","nodeType":"YulIdentifier","src":"26415:3:88"},"nativeSrc":"26415:12:88","nodeType":"YulFunctionCall","src":"26415:12:88"},"variableNames":[{"name":"i","nativeSrc":"26410:1:88","nodeType":"YulIdentifier","src":"26410:1:88"}]}]},"pre":{"nativeSrc":"26389:3:88","nodeType":"YulBlock","src":"26389:3:88","statements":[]},"src":"26385:222:88"},{"body":{"nativeSrc":"26655:166:88","nodeType":"YulBlock","src":"26655:166:88","statements":[{"nativeSrc":"26673:43:88","nodeType":"YulVariableDeclaration","src":"26673:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26700:3:88","nodeType":"YulIdentifier","src":"26700:3:88"},{"name":"srcOffset","nativeSrc":"26705:9:88","nodeType":"YulIdentifier","src":"26705:9:88"}],"functionName":{"name":"add","nativeSrc":"26696:3:88","nodeType":"YulIdentifier","src":"26696:3:88"},"nativeSrc":"26696:19:88","nodeType":"YulFunctionCall","src":"26696:19:88"}],"functionName":{"name":"mload","nativeSrc":"26690:5:88","nodeType":"YulIdentifier","src":"26690:5:88"},"nativeSrc":"26690:26:88","nodeType":"YulFunctionCall","src":"26690:26:88"},"variables":[{"name":"lastValue","nativeSrc":"26677:9:88","nodeType":"YulTypedName","src":"26677:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"26740:6:88","nodeType":"YulIdentifier","src":"26740:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"26752:9:88","nodeType":"YulIdentifier","src":"26752:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26779:1:88","nodeType":"YulLiteral","src":"26779:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"26782:6:88","nodeType":"YulIdentifier","src":"26782:6:88"}],"functionName":{"name":"shl","nativeSrc":"26775:3:88","nodeType":"YulIdentifier","src":"26775:3:88"},"nativeSrc":"26775:14:88","nodeType":"YulFunctionCall","src":"26775:14:88"},{"kind":"number","nativeSrc":"26791:3:88","nodeType":"YulLiteral","src":"26791:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"26771:3:88","nodeType":"YulIdentifier","src":"26771:3:88"},"nativeSrc":"26771:24:88","nodeType":"YulFunctionCall","src":"26771:24:88"},{"arguments":[{"kind":"number","nativeSrc":"26801:1:88","nodeType":"YulLiteral","src":"26801:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"26797:3:88","nodeType":"YulIdentifier","src":"26797:3:88"},"nativeSrc":"26797:6:88","nodeType":"YulFunctionCall","src":"26797:6:88"}],"functionName":{"name":"shr","nativeSrc":"26767:3:88","nodeType":"YulIdentifier","src":"26767:3:88"},"nativeSrc":"26767:37:88","nodeType":"YulFunctionCall","src":"26767:37:88"}],"functionName":{"name":"not","nativeSrc":"26763:3:88","nodeType":"YulIdentifier","src":"26763:3:88"},"nativeSrc":"26763:42:88","nodeType":"YulFunctionCall","src":"26763:42:88"}],"functionName":{"name":"and","nativeSrc":"26748:3:88","nodeType":"YulIdentifier","src":"26748:3:88"},"nativeSrc":"26748:58:88","nodeType":"YulFunctionCall","src":"26748:58:88"}],"functionName":{"name":"sstore","nativeSrc":"26733:6:88","nodeType":"YulIdentifier","src":"26733:6:88"},"nativeSrc":"26733:74:88","nodeType":"YulFunctionCall","src":"26733:74:88"},"nativeSrc":"26733:74:88","nodeType":"YulExpressionStatement","src":"26733:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"26626:7:88","nodeType":"YulIdentifier","src":"26626:7:88"},{"name":"newLen","nativeSrc":"26635:6:88","nodeType":"YulIdentifier","src":"26635:6:88"}],"functionName":{"name":"lt","nativeSrc":"26623:2:88","nodeType":"YulIdentifier","src":"26623:2:88"},"nativeSrc":"26623:19:88","nodeType":"YulFunctionCall","src":"26623:19:88"},"nativeSrc":"26620:201:88","nodeType":"YulIf","src":"26620:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"26841:4:88","nodeType":"YulIdentifier","src":"26841:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26855:1:88","nodeType":"YulLiteral","src":"26855:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"26858:6:88","nodeType":"YulIdentifier","src":"26858:6:88"}],"functionName":{"name":"shl","nativeSrc":"26851:3:88","nodeType":"YulIdentifier","src":"26851:3:88"},"nativeSrc":"26851:14:88","nodeType":"YulFunctionCall","src":"26851:14:88"},{"kind":"number","nativeSrc":"26867:1:88","nodeType":"YulLiteral","src":"26867:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26847:3:88","nodeType":"YulIdentifier","src":"26847:3:88"},"nativeSrc":"26847:22:88","nodeType":"YulFunctionCall","src":"26847:22:88"}],"functionName":{"name":"sstore","nativeSrc":"26834:6:88","nodeType":"YulIdentifier","src":"26834:6:88"},"nativeSrc":"26834:36:88","nodeType":"YulFunctionCall","src":"26834:36:88"},"nativeSrc":"26834:36:88","nodeType":"YulExpressionStatement","src":"26834:36:88"}]},"nativeSrc":"26231:649:88","nodeType":"YulCase","src":"26231:649:88","value":{"kind":"number","nativeSrc":"26236:1:88","nodeType":"YulLiteral","src":"26236:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"26897:234:88","nodeType":"YulBlock","src":"26897:234:88","statements":[{"nativeSrc":"26911:14:88","nodeType":"YulVariableDeclaration","src":"26911:14:88","value":{"kind":"number","nativeSrc":"26924:1:88","nodeType":"YulLiteral","src":"26924:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"26915:5:88","nodeType":"YulTypedName","src":"26915:5:88","type":""}]},{"body":{"nativeSrc":"26960:67:88","nodeType":"YulBlock","src":"26960:67:88","statements":[{"nativeSrc":"26978:35:88","nodeType":"YulAssignment","src":"26978:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26997:3:88","nodeType":"YulIdentifier","src":"26997:3:88"},{"name":"srcOffset","nativeSrc":"27002:9:88","nodeType":"YulIdentifier","src":"27002:9:88"}],"functionName":{"name":"add","nativeSrc":"26993:3:88","nodeType":"YulIdentifier","src":"26993:3:88"},"nativeSrc":"26993:19:88","nodeType":"YulFunctionCall","src":"26993:19:88"}],"functionName":{"name":"mload","nativeSrc":"26987:5:88","nodeType":"YulIdentifier","src":"26987:5:88"},"nativeSrc":"26987:26:88","nodeType":"YulFunctionCall","src":"26987:26:88"},"variableNames":[{"name":"value","nativeSrc":"26978:5:88","nodeType":"YulIdentifier","src":"26978:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"26941:6:88","nodeType":"YulIdentifier","src":"26941:6:88"},"nativeSrc":"26938:89:88","nodeType":"YulIf","src":"26938:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"27047:4:88","nodeType":"YulIdentifier","src":"27047:4:88"},{"arguments":[{"name":"value","nativeSrc":"27106:5:88","nodeType":"YulIdentifier","src":"27106:5:88"},{"name":"newLen","nativeSrc":"27113:6:88","nodeType":"YulIdentifier","src":"27113:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"27053:52:88","nodeType":"YulIdentifier","src":"27053:52:88"},"nativeSrc":"27053:67:88","nodeType":"YulFunctionCall","src":"27053:67:88"}],"functionName":{"name":"sstore","nativeSrc":"27040:6:88","nodeType":"YulIdentifier","src":"27040:6:88"},"nativeSrc":"27040:81:88","nodeType":"YulFunctionCall","src":"27040:81:88"},"nativeSrc":"27040:81:88","nodeType":"YulExpressionStatement","src":"27040:81:88"}]},"nativeSrc":"26889:242:88","nodeType":"YulCase","src":"26889:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"26211:6:88","nodeType":"YulIdentifier","src":"26211:6:88"},{"kind":"number","nativeSrc":"26219:2:88","nodeType":"YulLiteral","src":"26219:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"26208:2:88","nodeType":"YulIdentifier","src":"26208:2:88"},"nativeSrc":"26208:14:88","nodeType":"YulFunctionCall","src":"26208:14:88"},"nativeSrc":"26201:930:88","nodeType":"YulSwitch","src":"26201:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"25838:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"25919:4:88","nodeType":"YulTypedName","src":"25919:4:88","type":""},{"name":"src","nativeSrc":"25925:3:88","nodeType":"YulTypedName","src":"25925:3:88","type":""}],"src":"25838:1299:88"},{"body":{"nativeSrc":"27307:227:88","nodeType":"YulBlock","src":"27307:227:88","statements":[{"nativeSrc":"27317:26:88","nodeType":"YulAssignment","src":"27317:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27329:9:88","nodeType":"YulIdentifier","src":"27329:9:88"},{"kind":"number","nativeSrc":"27340:2:88","nodeType":"YulLiteral","src":"27340:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27325:3:88","nodeType":"YulIdentifier","src":"27325:3:88"},"nativeSrc":"27325:18:88","nodeType":"YulFunctionCall","src":"27325:18:88"},"variableNames":[{"name":"tail","nativeSrc":"27317:4:88","nodeType":"YulIdentifier","src":"27317:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27390:6:88","nodeType":"YulIdentifier","src":"27390:6:88"}],"functionName":{"name":"validator_assert_enum_ComponentStatus","nativeSrc":"27352:37:88","nodeType":"YulIdentifier","src":"27352:37:88"},"nativeSrc":"27352:45:88","nodeType":"YulFunctionCall","src":"27352:45:88"},"nativeSrc":"27352:45:88","nodeType":"YulExpressionStatement","src":"27352:45:88"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27413:9:88","nodeType":"YulIdentifier","src":"27413:9:88"},{"name":"value0","nativeSrc":"27424:6:88","nodeType":"YulIdentifier","src":"27424:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27406:6:88","nodeType":"YulIdentifier","src":"27406:6:88"},"nativeSrc":"27406:25:88","nodeType":"YulFunctionCall","src":"27406:25:88"},"nativeSrc":"27406:25:88","nodeType":"YulExpressionStatement","src":"27406:25:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"27478:6:88","nodeType":"YulIdentifier","src":"27478:6:88"}],"functionName":{"name":"validator_assert_enum_ComponentStatus","nativeSrc":"27440:37:88","nodeType":"YulIdentifier","src":"27440:37:88"},"nativeSrc":"27440:45:88","nodeType":"YulFunctionCall","src":"27440:45:88"},"nativeSrc":"27440:45:88","nodeType":"YulExpressionStatement","src":"27440:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27505:9:88","nodeType":"YulIdentifier","src":"27505:9:88"},{"kind":"number","nativeSrc":"27516:2:88","nodeType":"YulLiteral","src":"27516:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27501:3:88","nodeType":"YulIdentifier","src":"27501:3:88"},"nativeSrc":"27501:18:88","nodeType":"YulFunctionCall","src":"27501:18:88"},{"name":"value1","nativeSrc":"27521:6:88","nodeType":"YulIdentifier","src":"27521:6:88"}],"functionName":{"name":"mstore","nativeSrc":"27494:6:88","nodeType":"YulIdentifier","src":"27494:6:88"},"nativeSrc":"27494:34:88","nodeType":"YulFunctionCall","src":"27494:34:88"},"nativeSrc":"27494:34:88","nodeType":"YulExpressionStatement","src":"27494:34:88"}]},"name":"abi_encode_tuple_t_enum$_ComponentKind_$15536_t_enum$_ComponentStatus_$15530__to_t_uint8_t_uint8__fromStack_reversed","nativeSrc":"27142:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27268:9:88","nodeType":"YulTypedName","src":"27268:9:88","type":""},{"name":"value1","nativeSrc":"27279:6:88","nodeType":"YulTypedName","src":"27279:6:88","type":""},{"name":"value0","nativeSrc":"27287:6:88","nodeType":"YulTypedName","src":"27287:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27298:4:88","nodeType":"YulTypedName","src":"27298:4:88","type":""}],"src":"27142:392:88"},{"body":{"nativeSrc":"27713:174:88","nodeType":"YulBlock","src":"27713:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27730:9:88","nodeType":"YulIdentifier","src":"27730:9:88"},{"kind":"number","nativeSrc":"27741:2:88","nodeType":"YulLiteral","src":"27741:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27723:6:88","nodeType":"YulIdentifier","src":"27723:6:88"},"nativeSrc":"27723:21:88","nodeType":"YulFunctionCall","src":"27723:21:88"},"nativeSrc":"27723:21:88","nodeType":"YulExpressionStatement","src":"27723:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27764:9:88","nodeType":"YulIdentifier","src":"27764:9:88"},{"kind":"number","nativeSrc":"27775:2:88","nodeType":"YulLiteral","src":"27775:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27760:3:88","nodeType":"YulIdentifier","src":"27760:3:88"},"nativeSrc":"27760:18:88","nodeType":"YulFunctionCall","src":"27760:18:88"},{"kind":"number","nativeSrc":"27780:2:88","nodeType":"YulLiteral","src":"27780:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"27753:6:88","nodeType":"YulIdentifier","src":"27753:6:88"},"nativeSrc":"27753:30:88","nodeType":"YulFunctionCall","src":"27753:30:88"},"nativeSrc":"27753:30:88","nodeType":"YulExpressionStatement","src":"27753:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27803:9:88","nodeType":"YulIdentifier","src":"27803:9:88"},{"kind":"number","nativeSrc":"27814:2:88","nodeType":"YulLiteral","src":"27814:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27799:3:88","nodeType":"YulIdentifier","src":"27799:3:88"},"nativeSrc":"27799:18:88","nodeType":"YulFunctionCall","src":"27799:18:88"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nativeSrc":"27819:26:88","nodeType":"YulLiteral","src":"27819:26:88","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nativeSrc":"27792:6:88","nodeType":"YulIdentifier","src":"27792:6:88"},"nativeSrc":"27792:54:88","nodeType":"YulFunctionCall","src":"27792:54:88"},"nativeSrc":"27792:54:88","nodeType":"YulExpressionStatement","src":"27792:54:88"},{"nativeSrc":"27855:26:88","nodeType":"YulAssignment","src":"27855:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27867:9:88","nodeType":"YulIdentifier","src":"27867:9:88"},{"kind":"number","nativeSrc":"27878:2:88","nodeType":"YulLiteral","src":"27878:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27863:3:88","nodeType":"YulIdentifier","src":"27863:3:88"},"nativeSrc":"27863:18:88","nodeType":"YulFunctionCall","src":"27863:18:88"},"variableNames":[{"name":"tail","nativeSrc":"27855:4:88","nodeType":"YulIdentifier","src":"27855:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27539:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27690:9:88","nodeType":"YulTypedName","src":"27690:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27704:4:88","nodeType":"YulTypedName","src":"27704:4:88","type":""}],"src":"27539:348:88"},{"body":{"nativeSrc":"27961:115:88","nodeType":"YulBlock","src":"27961:115:88","statements":[{"body":{"nativeSrc":"28007:16:88","nodeType":"YulBlock","src":"28007:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28016:1:88","nodeType":"YulLiteral","src":"28016:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28019:1:88","nodeType":"YulLiteral","src":"28019:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28009:6:88","nodeType":"YulIdentifier","src":"28009:6:88"},"nativeSrc":"28009:12:88","nodeType":"YulFunctionCall","src":"28009:12:88"},"nativeSrc":"28009:12:88","nodeType":"YulExpressionStatement","src":"28009:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27982:7:88","nodeType":"YulIdentifier","src":"27982:7:88"},{"name":"headStart","nativeSrc":"27991:9:88","nodeType":"YulIdentifier","src":"27991:9:88"}],"functionName":{"name":"sub","nativeSrc":"27978:3:88","nodeType":"YulIdentifier","src":"27978:3:88"},"nativeSrc":"27978:23:88","nodeType":"YulFunctionCall","src":"27978:23:88"},{"kind":"number","nativeSrc":"28003:2:88","nodeType":"YulLiteral","src":"28003:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27974:3:88","nodeType":"YulIdentifier","src":"27974:3:88"},"nativeSrc":"27974:32:88","nodeType":"YulFunctionCall","src":"27974:32:88"},"nativeSrc":"27971:52:88","nodeType":"YulIf","src":"27971:52:88"},{"nativeSrc":"28032:38:88","nodeType":"YulAssignment","src":"28032:38:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28060:9:88","nodeType":"YulIdentifier","src":"28060:9:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"28042:17:88","nodeType":"YulIdentifier","src":"28042:17:88"},"nativeSrc":"28042:28:88","nodeType":"YulFunctionCall","src":"28042:28:88"},"variableNames":[{"name":"value0","nativeSrc":"28032:6:88","nodeType":"YulIdentifier","src":"28032:6:88"}]}]},"name":"abi_decode_tuple_t_uint40","nativeSrc":"27892:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27927:9:88","nodeType":"YulTypedName","src":"27927:9:88","type":""},{"name":"dataEnd","nativeSrc":"27938:7:88","nodeType":"YulTypedName","src":"27938:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27950:6:88","nodeType":"YulTypedName","src":"27950:6:88","type":""}],"src":"27892:184:88"},{"body":{"nativeSrc":"28255:172:88","nodeType":"YulBlock","src":"28255:172:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28272:9:88","nodeType":"YulIdentifier","src":"28272:9:88"},{"kind":"number","nativeSrc":"28283:2:88","nodeType":"YulLiteral","src":"28283:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28265:6:88","nodeType":"YulIdentifier","src":"28265:6:88"},"nativeSrc":"28265:21:88","nodeType":"YulFunctionCall","src":"28265:21:88"},"nativeSrc":"28265:21:88","nodeType":"YulExpressionStatement","src":"28265:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28306:9:88","nodeType":"YulIdentifier","src":"28306:9:88"},{"kind":"number","nativeSrc":"28317:2:88","nodeType":"YulLiteral","src":"28317:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28302:3:88","nodeType":"YulIdentifier","src":"28302:3:88"},"nativeSrc":"28302:18:88","nodeType":"YulFunctionCall","src":"28302:18:88"},{"kind":"number","nativeSrc":"28322:2:88","nodeType":"YulLiteral","src":"28322:2:88","type":"","value":"22"}],"functionName":{"name":"mstore","nativeSrc":"28295:6:88","nodeType":"YulIdentifier","src":"28295:6:88"},"nativeSrc":"28295:30:88","nodeType":"YulFunctionCall","src":"28295:30:88"},"nativeSrc":"28295:30:88","nodeType":"YulExpressionStatement","src":"28295:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28345:9:88","nodeType":"YulIdentifier","src":"28345:9:88"},{"kind":"number","nativeSrc":"28356:2:88","nodeType":"YulLiteral","src":"28356:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28341:3:88","nodeType":"YulIdentifier","src":"28341:3:88"},"nativeSrc":"28341:18:88","nodeType":"YulFunctionCall","src":"28341:18:88"},{"hexValue":"506f6c696379206e6f74206578706972656420796574","kind":"string","nativeSrc":"28361:24:88","nodeType":"YulLiteral","src":"28361:24:88","type":"","value":"Policy not expired yet"}],"functionName":{"name":"mstore","nativeSrc":"28334:6:88","nodeType":"YulIdentifier","src":"28334:6:88"},"nativeSrc":"28334:52:88","nodeType":"YulFunctionCall","src":"28334:52:88"},"nativeSrc":"28334:52:88","nodeType":"YulExpressionStatement","src":"28334:52:88"},{"nativeSrc":"28395:26:88","nodeType":"YulAssignment","src":"28395:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28407:9:88","nodeType":"YulIdentifier","src":"28407:9:88"},{"kind":"number","nativeSrc":"28418:2:88","nodeType":"YulLiteral","src":"28418:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28403:3:88","nodeType":"YulIdentifier","src":"28403:3:88"},"nativeSrc":"28403:18:88","nodeType":"YulFunctionCall","src":"28403:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28395:4:88","nodeType":"YulIdentifier","src":"28395:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28081:346:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28232:9:88","nodeType":"YulTypedName","src":"28232:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28246:4:88","nodeType":"YulTypedName","src":"28246:4:88","type":""}],"src":"28081:346:88"},{"body":{"nativeSrc":"28531:136:88","nodeType":"YulBlock","src":"28531:136:88","statements":[{"body":{"nativeSrc":"28578:16:88","nodeType":"YulBlock","src":"28578:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28587:1:88","nodeType":"YulLiteral","src":"28587:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28590:1:88","nodeType":"YulLiteral","src":"28590:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28580:6:88","nodeType":"YulIdentifier","src":"28580:6:88"},"nativeSrc":"28580:12:88","nodeType":"YulFunctionCall","src":"28580:12:88"},"nativeSrc":"28580:12:88","nodeType":"YulExpressionStatement","src":"28580:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28552:7:88","nodeType":"YulIdentifier","src":"28552:7:88"},{"name":"headStart","nativeSrc":"28561:9:88","nodeType":"YulIdentifier","src":"28561:9:88"}],"functionName":{"name":"sub","nativeSrc":"28548:3:88","nodeType":"YulIdentifier","src":"28548:3:88"},"nativeSrc":"28548:23:88","nodeType":"YulFunctionCall","src":"28548:23:88"},{"kind":"number","nativeSrc":"28573:3:88","nodeType":"YulLiteral","src":"28573:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"28544:3:88","nodeType":"YulIdentifier","src":"28544:3:88"},"nativeSrc":"28544:33:88","nodeType":"YulFunctionCall","src":"28544:33:88"},"nativeSrc":"28541:53:88","nodeType":"YulIf","src":"28541:53:88"},{"nativeSrc":"28603:58:88","nodeType":"YulAssignment","src":"28603:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28642:9:88","nodeType":"YulIdentifier","src":"28642:9:88"},{"name":"dataEnd","nativeSrc":"28653:7:88","nodeType":"YulIdentifier","src":"28653:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"28613:28:88","nodeType":"YulIdentifier","src":"28613:28:88"},"nativeSrc":"28613:48:88","nodeType":"YulFunctionCall","src":"28613:48:88"},"variableNames":[{"name":"value0","nativeSrc":"28603:6:88","nodeType":"YulIdentifier","src":"28603:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr","nativeSrc":"28432:235:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28497:9:88","nodeType":"YulTypedName","src":"28497:9:88","type":""},{"name":"dataEnd","nativeSrc":"28508:7:88","nodeType":"YulTypedName","src":"28508:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28520:6:88","nodeType":"YulTypedName","src":"28520:6:88","type":""}],"src":"28432:235:88"},{"body":{"nativeSrc":"28774:170:88","nodeType":"YulBlock","src":"28774:170:88","statements":[{"body":{"nativeSrc":"28820:16:88","nodeType":"YulBlock","src":"28820:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28829:1:88","nodeType":"YulLiteral","src":"28829:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28832:1:88","nodeType":"YulLiteral","src":"28832:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28822:6:88","nodeType":"YulIdentifier","src":"28822:6:88"},"nativeSrc":"28822:12:88","nodeType":"YulFunctionCall","src":"28822:12:88"},"nativeSrc":"28822:12:88","nodeType":"YulExpressionStatement","src":"28822:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28795:7:88","nodeType":"YulIdentifier","src":"28795:7:88"},{"name":"headStart","nativeSrc":"28804:9:88","nodeType":"YulIdentifier","src":"28804:9:88"}],"functionName":{"name":"sub","nativeSrc":"28791:3:88","nodeType":"YulIdentifier","src":"28791:3:88"},"nativeSrc":"28791:23:88","nodeType":"YulFunctionCall","src":"28791:23:88"},{"kind":"number","nativeSrc":"28816:2:88","nodeType":"YulLiteral","src":"28816:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"28787:3:88","nodeType":"YulIdentifier","src":"28787:3:88"},"nativeSrc":"28787:32:88","nodeType":"YulFunctionCall","src":"28787:32:88"},"nativeSrc":"28784:52:88","nodeType":"YulIf","src":"28784:52:88"},{"nativeSrc":"28845:29:88","nodeType":"YulVariableDeclaration","src":"28845:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28864:9:88","nodeType":"YulIdentifier","src":"28864:9:88"}],"functionName":{"name":"mload","nativeSrc":"28858:5:88","nodeType":"YulIdentifier","src":"28858:5:88"},"nativeSrc":"28858:16:88","nodeType":"YulFunctionCall","src":"28858:16:88"},"variables":[{"name":"value","nativeSrc":"28849:5:88","nodeType":"YulTypedName","src":"28849:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"28908:5:88","nodeType":"YulIdentifier","src":"28908:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"28883:24:88","nodeType":"YulIdentifier","src":"28883:24:88"},"nativeSrc":"28883:31:88","nodeType":"YulFunctionCall","src":"28883:31:88"},"nativeSrc":"28883:31:88","nodeType":"YulExpressionStatement","src":"28883:31:88"},{"nativeSrc":"28923:15:88","nodeType":"YulAssignment","src":"28923:15:88","value":{"name":"value","nativeSrc":"28933:5:88","nodeType":"YulIdentifier","src":"28933:5:88"},"variableNames":[{"name":"value0","nativeSrc":"28923:6:88","nodeType":"YulIdentifier","src":"28923:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"28672:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28740:9:88","nodeType":"YulTypedName","src":"28740:9:88","type":""},{"name":"dataEnd","nativeSrc":"28751:7:88","nodeType":"YulTypedName","src":"28751:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28763:6:88","nodeType":"YulTypedName","src":"28763:6:88","type":""}],"src":"28672:272:88"},{"body":{"nativeSrc":"29048:103:88","nodeType":"YulBlock","src":"29048:103:88","statements":[{"nativeSrc":"29058:26:88","nodeType":"YulAssignment","src":"29058:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29070:9:88","nodeType":"YulIdentifier","src":"29070:9:88"},{"kind":"number","nativeSrc":"29081:2:88","nodeType":"YulLiteral","src":"29081:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29066:3:88","nodeType":"YulIdentifier","src":"29066:3:88"},"nativeSrc":"29066:18:88","nodeType":"YulFunctionCall","src":"29066:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29058:4:88","nodeType":"YulIdentifier","src":"29058:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29100:9:88","nodeType":"YulIdentifier","src":"29100:9:88"},{"arguments":[{"name":"value0","nativeSrc":"29115:6:88","nodeType":"YulIdentifier","src":"29115:6:88"},{"arguments":[{"kind":"number","nativeSrc":"29127:3:88","nodeType":"YulLiteral","src":"29127:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"29132:10:88","nodeType":"YulLiteral","src":"29132:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"29123:3:88","nodeType":"YulIdentifier","src":"29123:3:88"},"nativeSrc":"29123:20:88","nodeType":"YulFunctionCall","src":"29123:20:88"}],"functionName":{"name":"and","nativeSrc":"29111:3:88","nodeType":"YulIdentifier","src":"29111:3:88"},"nativeSrc":"29111:33:88","nodeType":"YulFunctionCall","src":"29111:33:88"}],"functionName":{"name":"mstore","nativeSrc":"29093:6:88","nodeType":"YulIdentifier","src":"29093:6:88"},"nativeSrc":"29093:52:88","nodeType":"YulFunctionCall","src":"29093:52:88"},"nativeSrc":"29093:52:88","nodeType":"YulExpressionStatement","src":"29093:52:88"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"28949:202:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29017:9:88","nodeType":"YulTypedName","src":"29017:9:88","type":""},{"name":"value0","nativeSrc":"29028:6:88","nodeType":"YulTypedName","src":"29028:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29039:4:88","nodeType":"YulTypedName","src":"29039:4:88","type":""}],"src":"28949:202:88"},{"body":{"nativeSrc":"29234:167:88","nodeType":"YulBlock","src":"29234:167:88","statements":[{"body":{"nativeSrc":"29280:16:88","nodeType":"YulBlock","src":"29280:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29289:1:88","nodeType":"YulLiteral","src":"29289:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"29292:1:88","nodeType":"YulLiteral","src":"29292:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29282:6:88","nodeType":"YulIdentifier","src":"29282:6:88"},"nativeSrc":"29282:12:88","nodeType":"YulFunctionCall","src":"29282:12:88"},"nativeSrc":"29282:12:88","nodeType":"YulExpressionStatement","src":"29282:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29255:7:88","nodeType":"YulIdentifier","src":"29255:7:88"},{"name":"headStart","nativeSrc":"29264:9:88","nodeType":"YulIdentifier","src":"29264:9:88"}],"functionName":{"name":"sub","nativeSrc":"29251:3:88","nodeType":"YulIdentifier","src":"29251:3:88"},"nativeSrc":"29251:23:88","nodeType":"YulFunctionCall","src":"29251:23:88"},{"kind":"number","nativeSrc":"29276:2:88","nodeType":"YulLiteral","src":"29276:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29247:3:88","nodeType":"YulIdentifier","src":"29247:3:88"},"nativeSrc":"29247:32:88","nodeType":"YulFunctionCall","src":"29247:32:88"},"nativeSrc":"29244:52:88","nodeType":"YulIf","src":"29244:52:88"},{"nativeSrc":"29305:29:88","nodeType":"YulVariableDeclaration","src":"29305:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29324:9:88","nodeType":"YulIdentifier","src":"29324:9:88"}],"functionName":{"name":"mload","nativeSrc":"29318:5:88","nodeType":"YulIdentifier","src":"29318:5:88"},"nativeSrc":"29318:16:88","nodeType":"YulFunctionCall","src":"29318:16:88"},"variables":[{"name":"value","nativeSrc":"29309:5:88","nodeType":"YulTypedName","src":"29309:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"29365:5:88","nodeType":"YulIdentifier","src":"29365:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"29343:21:88","nodeType":"YulIdentifier","src":"29343:21:88"},"nativeSrc":"29343:28:88","nodeType":"YulFunctionCall","src":"29343:28:88"},"nativeSrc":"29343:28:88","nodeType":"YulExpressionStatement","src":"29343:28:88"},{"nativeSrc":"29380:15:88","nodeType":"YulAssignment","src":"29380:15:88","value":{"name":"value","nativeSrc":"29390:5:88","nodeType":"YulIdentifier","src":"29390:5:88"},"variableNames":[{"name":"value0","nativeSrc":"29380:6:88","nodeType":"YulIdentifier","src":"29380:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"29156:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29200:9:88","nodeType":"YulTypedName","src":"29200:9:88","type":""},{"name":"dataEnd","nativeSrc":"29211:7:88","nodeType":"YulTypedName","src":"29211:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29223:6:88","nodeType":"YulTypedName","src":"29223:6:88","type":""}],"src":"29156:245:88"},{"body":{"nativeSrc":"29582:199:88","nodeType":"YulBlock","src":"29582:199:88","statements":[{"nativeSrc":"29592:26:88","nodeType":"YulAssignment","src":"29592:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29604:9:88","nodeType":"YulIdentifier","src":"29604:9:88"},{"kind":"number","nativeSrc":"29615:2:88","nodeType":"YulLiteral","src":"29615:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29600:3:88","nodeType":"YulIdentifier","src":"29600:3:88"},"nativeSrc":"29600:18:88","nodeType":"YulFunctionCall","src":"29600:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29592:4:88","nodeType":"YulIdentifier","src":"29592:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29634:9:88","nodeType":"YulIdentifier","src":"29634:9:88"},{"arguments":[{"name":"value0","nativeSrc":"29649:6:88","nodeType":"YulIdentifier","src":"29649:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29665:3:88","nodeType":"YulLiteral","src":"29665:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"29670:1:88","nodeType":"YulLiteral","src":"29670:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"29661:3:88","nodeType":"YulIdentifier","src":"29661:3:88"},"nativeSrc":"29661:11:88","nodeType":"YulFunctionCall","src":"29661:11:88"},{"kind":"number","nativeSrc":"29674:1:88","nodeType":"YulLiteral","src":"29674:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"29657:3:88","nodeType":"YulIdentifier","src":"29657:3:88"},"nativeSrc":"29657:19:88","nodeType":"YulFunctionCall","src":"29657:19:88"}],"functionName":{"name":"and","nativeSrc":"29645:3:88","nodeType":"YulIdentifier","src":"29645:3:88"},"nativeSrc":"29645:32:88","nodeType":"YulFunctionCall","src":"29645:32:88"}],"functionName":{"name":"mstore","nativeSrc":"29627:6:88","nodeType":"YulIdentifier","src":"29627:6:88"},"nativeSrc":"29627:51:88","nodeType":"YulFunctionCall","src":"29627:51:88"},"nativeSrc":"29627:51:88","nodeType":"YulExpressionStatement","src":"29627:51:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29725:6:88","nodeType":"YulIdentifier","src":"29725:6:88"}],"functionName":{"name":"validator_assert_enum_ComponentStatus","nativeSrc":"29687:37:88","nodeType":"YulIdentifier","src":"29687:37:88"},"nativeSrc":"29687:45:88","nodeType":"YulFunctionCall","src":"29687:45:88"},"nativeSrc":"29687:45:88","nodeType":"YulExpressionStatement","src":"29687:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29752:9:88","nodeType":"YulIdentifier","src":"29752:9:88"},{"kind":"number","nativeSrc":"29763:2:88","nodeType":"YulLiteral","src":"29763:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29748:3:88","nodeType":"YulIdentifier","src":"29748:3:88"},"nativeSrc":"29748:18:88","nodeType":"YulFunctionCall","src":"29748:18:88"},{"name":"value1","nativeSrc":"29768:6:88","nodeType":"YulIdentifier","src":"29768:6:88"}],"functionName":{"name":"mstore","nativeSrc":"29741:6:88","nodeType":"YulIdentifier","src":"29741:6:88"},"nativeSrc":"29741:34:88","nodeType":"YulFunctionCall","src":"29741:34:88"},"nativeSrc":"29741:34:88","nodeType":"YulExpressionStatement","src":"29741:34:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPoolComponent_$23823_t_enum$_ComponentKind_$15536__to_t_address_t_uint8__fromStack_reversed","nativeSrc":"29406:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29543:9:88","nodeType":"YulTypedName","src":"29543:9:88","type":""},{"name":"value1","nativeSrc":"29554:6:88","nodeType":"YulTypedName","src":"29554:6:88","type":""},{"name":"value0","nativeSrc":"29562:6:88","nodeType":"YulTypedName","src":"29562:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29573:4:88","nodeType":"YulTypedName","src":"29573:4:88","type":""}],"src":"29406:375:88"},{"body":{"nativeSrc":"29932:173:88","nodeType":"YulBlock","src":"29932:173:88","statements":[{"nativeSrc":"29942:26:88","nodeType":"YulAssignment","src":"29942:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29954:9:88","nodeType":"YulIdentifier","src":"29954:9:88"},{"kind":"number","nativeSrc":"29965:2:88","nodeType":"YulLiteral","src":"29965:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29950:3:88","nodeType":"YulIdentifier","src":"29950:3:88"},"nativeSrc":"29950:18:88","nodeType":"YulFunctionCall","src":"29950:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29942:4:88","nodeType":"YulIdentifier","src":"29942:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"30015:6:88","nodeType":"YulIdentifier","src":"30015:6:88"}],"functionName":{"name":"validator_assert_enum_ComponentStatus","nativeSrc":"29977:37:88","nodeType":"YulIdentifier","src":"29977:37:88"},"nativeSrc":"29977:45:88","nodeType":"YulFunctionCall","src":"29977:45:88"},"nativeSrc":"29977:45:88","nodeType":"YulExpressionStatement","src":"29977:45:88"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30038:9:88","nodeType":"YulIdentifier","src":"30038:9:88"},{"name":"value0","nativeSrc":"30049:6:88","nodeType":"YulIdentifier","src":"30049:6:88"}],"functionName":{"name":"mstore","nativeSrc":"30031:6:88","nodeType":"YulIdentifier","src":"30031:6:88"},"nativeSrc":"30031:25:88","nodeType":"YulFunctionCall","src":"30031:25:88"},"nativeSrc":"30031:25:88","nodeType":"YulExpressionStatement","src":"30031:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30076:9:88","nodeType":"YulIdentifier","src":"30076:9:88"},{"kind":"number","nativeSrc":"30087:2:88","nodeType":"YulLiteral","src":"30087:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30072:3:88","nodeType":"YulIdentifier","src":"30072:3:88"},"nativeSrc":"30072:18:88","nodeType":"YulFunctionCall","src":"30072:18:88"},{"name":"value1","nativeSrc":"30092:6:88","nodeType":"YulIdentifier","src":"30092:6:88"}],"functionName":{"name":"mstore","nativeSrc":"30065:6:88","nodeType":"YulIdentifier","src":"30065:6:88"},"nativeSrc":"30065:34:88","nodeType":"YulFunctionCall","src":"30065:34:88"},"nativeSrc":"30065:34:88","nodeType":"YulExpressionStatement","src":"30065:34:88"}]},"name":"abi_encode_tuple_t_enum$_ComponentKind_$15536_t_uint256__to_t_uint8_t_uint256__fromStack_reversed","nativeSrc":"29786:319:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29893:9:88","nodeType":"YulTypedName","src":"29893:9:88","type":""},{"name":"value1","nativeSrc":"29904:6:88","nodeType":"YulTypedName","src":"29904:6:88","type":""},{"name":"value0","nativeSrc":"29912:6:88","nodeType":"YulTypedName","src":"29912:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29923:4:88","nodeType":"YulTypedName","src":"29923:4:88","type":""}],"src":"29786:319:88"},{"body":{"nativeSrc":"30284:231:88","nodeType":"YulBlock","src":"30284:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30301:9:88","nodeType":"YulIdentifier","src":"30301:9:88"},{"kind":"number","nativeSrc":"30312:2:88","nodeType":"YulLiteral","src":"30312:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30294:6:88","nodeType":"YulIdentifier","src":"30294:6:88"},"nativeSrc":"30294:21:88","nodeType":"YulFunctionCall","src":"30294:21:88"},"nativeSrc":"30294:21:88","nodeType":"YulExpressionStatement","src":"30294:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30335:9:88","nodeType":"YulIdentifier","src":"30335:9:88"},{"kind":"number","nativeSrc":"30346:2:88","nodeType":"YulLiteral","src":"30346:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30331:3:88","nodeType":"YulIdentifier","src":"30331:3:88"},"nativeSrc":"30331:18:88","nodeType":"YulFunctionCall","src":"30331:18:88"},{"kind":"number","nativeSrc":"30351:2:88","nodeType":"YulLiteral","src":"30351:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"30324:6:88","nodeType":"YulIdentifier","src":"30324:6:88"},"nativeSrc":"30324:30:88","nodeType":"YulFunctionCall","src":"30324:30:88"},"nativeSrc":"30324:30:88","nodeType":"YulExpressionStatement","src":"30324:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30374:9:88","nodeType":"YulIdentifier","src":"30374:9:88"},{"kind":"number","nativeSrc":"30385:2:88","nodeType":"YulLiteral","src":"30385:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30370:3:88","nodeType":"YulIdentifier","src":"30370:3:88"},"nativeSrc":"30370:18:88","nodeType":"YulFunctionCall","src":"30370:18:88"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nativeSrc":"30390:34:88","nodeType":"YulLiteral","src":"30390:34:88","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nativeSrc":"30363:6:88","nodeType":"YulIdentifier","src":"30363:6:88"},"nativeSrc":"30363:62:88","nodeType":"YulFunctionCall","src":"30363:62:88"},"nativeSrc":"30363:62:88","nodeType":"YulExpressionStatement","src":"30363:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30445:9:88","nodeType":"YulIdentifier","src":"30445:9:88"},{"kind":"number","nativeSrc":"30456:2:88","nodeType":"YulLiteral","src":"30456:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30441:3:88","nodeType":"YulIdentifier","src":"30441:3:88"},"nativeSrc":"30441:18:88","nodeType":"YulFunctionCall","src":"30441:18:88"},{"hexValue":"6c6964206f776e6572","kind":"string","nativeSrc":"30461:11:88","nodeType":"YulLiteral","src":"30461:11:88","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nativeSrc":"30434:6:88","nodeType":"YulIdentifier","src":"30434:6:88"},"nativeSrc":"30434:39:88","nodeType":"YulFunctionCall","src":"30434:39:88"},"nativeSrc":"30434:39:88","nodeType":"YulExpressionStatement","src":"30434:39:88"},{"nativeSrc":"30482:27:88","nodeType":"YulAssignment","src":"30482:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30494:9:88","nodeType":"YulIdentifier","src":"30494:9:88"},{"kind":"number","nativeSrc":"30505:3:88","nodeType":"YulLiteral","src":"30505:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30490:3:88","nodeType":"YulIdentifier","src":"30490:3:88"},"nativeSrc":"30490:19:88","nodeType":"YulFunctionCall","src":"30490:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30482:4:88","nodeType":"YulIdentifier","src":"30482:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30110:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30261:9:88","nodeType":"YulTypedName","src":"30261:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30275:4:88","nodeType":"YulTypedName","src":"30275:4:88","type":""}],"src":"30110:405:88"},{"body":{"nativeSrc":"30552:95:88","nodeType":"YulBlock","src":"30552:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30569:1:88","nodeType":"YulLiteral","src":"30569:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"30576:3:88","nodeType":"YulLiteral","src":"30576:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"30581:10:88","nodeType":"YulLiteral","src":"30581:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"30572:3:88","nodeType":"YulIdentifier","src":"30572:3:88"},"nativeSrc":"30572:20:88","nodeType":"YulFunctionCall","src":"30572:20:88"}],"functionName":{"name":"mstore","nativeSrc":"30562:6:88","nodeType":"YulIdentifier","src":"30562:6:88"},"nativeSrc":"30562:31:88","nodeType":"YulFunctionCall","src":"30562:31:88"},"nativeSrc":"30562:31:88","nodeType":"YulExpressionStatement","src":"30562:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30609:1:88","nodeType":"YulLiteral","src":"30609:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"30612:4:88","nodeType":"YulLiteral","src":"30612:4:88","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"30602:6:88","nodeType":"YulIdentifier","src":"30602:6:88"},"nativeSrc":"30602:15:88","nodeType":"YulFunctionCall","src":"30602:15:88"},"nativeSrc":"30602:15:88","nodeType":"YulExpressionStatement","src":"30602:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30633:1:88","nodeType":"YulLiteral","src":"30633:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"30636:4:88","nodeType":"YulLiteral","src":"30636:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30626:6:88","nodeType":"YulIdentifier","src":"30626:6:88"},"nativeSrc":"30626:15:88","nodeType":"YulFunctionCall","src":"30626:15:88"},"nativeSrc":"30626:15:88","nodeType":"YulExpressionStatement","src":"30626:15:88"}]},"name":"panic_error_0x32","nativeSrc":"30520:127:88","nodeType":"YulFunctionDefinition","src":"30520:127:88"},{"body":{"nativeSrc":"30700:77:88","nodeType":"YulBlock","src":"30700:77:88","statements":[{"nativeSrc":"30710:16:88","nodeType":"YulAssignment","src":"30710:16:88","value":{"arguments":[{"name":"x","nativeSrc":"30721:1:88","nodeType":"YulIdentifier","src":"30721:1:88"},{"name":"y","nativeSrc":"30724:1:88","nodeType":"YulIdentifier","src":"30724:1:88"}],"functionName":{"name":"add","nativeSrc":"30717:3:88","nodeType":"YulIdentifier","src":"30717:3:88"},"nativeSrc":"30717:9:88","nodeType":"YulFunctionCall","src":"30717:9:88"},"variableNames":[{"name":"sum","nativeSrc":"30710:3:88","nodeType":"YulIdentifier","src":"30710:3:88"}]},{"body":{"nativeSrc":"30749:22:88","nodeType":"YulBlock","src":"30749:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"30751:16:88","nodeType":"YulIdentifier","src":"30751:16:88"},"nativeSrc":"30751:18:88","nodeType":"YulFunctionCall","src":"30751:18:88"},"nativeSrc":"30751:18:88","nodeType":"YulExpressionStatement","src":"30751:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"30741:1:88","nodeType":"YulIdentifier","src":"30741:1:88"},{"name":"sum","nativeSrc":"30744:3:88","nodeType":"YulIdentifier","src":"30744:3:88"}],"functionName":{"name":"gt","nativeSrc":"30738:2:88","nodeType":"YulIdentifier","src":"30738:2:88"},"nativeSrc":"30738:10:88","nodeType":"YulFunctionCall","src":"30738:10:88"},"nativeSrc":"30735:36:88","nodeType":"YulIf","src":"30735:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"30652:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"30683:1:88","nodeType":"YulTypedName","src":"30683:1:88","type":""},{"name":"y","nativeSrc":"30686:1:88","nodeType":"YulTypedName","src":"30686:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"30692:3:88","nodeType":"YulTypedName","src":"30692:3:88","type":""}],"src":"30652:125:88"},{"body":{"nativeSrc":"30832:162:88","nodeType":"YulBlock","src":"30832:162:88","statements":[{"nativeSrc":"30842:26:88","nodeType":"YulVariableDeclaration","src":"30842:26:88","value":{"arguments":[{"name":"value","nativeSrc":"30862:5:88","nodeType":"YulIdentifier","src":"30862:5:88"}],"functionName":{"name":"mload","nativeSrc":"30856:5:88","nodeType":"YulIdentifier","src":"30856:5:88"},"nativeSrc":"30856:12:88","nodeType":"YulFunctionCall","src":"30856:12:88"},"variables":[{"name":"length","nativeSrc":"30846:6:88","nodeType":"YulTypedName","src":"30846:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"30883:3:88","nodeType":"YulIdentifier","src":"30883:3:88"},{"arguments":[{"name":"value","nativeSrc":"30892:5:88","nodeType":"YulIdentifier","src":"30892:5:88"},{"kind":"number","nativeSrc":"30899:4:88","nodeType":"YulLiteral","src":"30899:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30888:3:88","nodeType":"YulIdentifier","src":"30888:3:88"},"nativeSrc":"30888:16:88","nodeType":"YulFunctionCall","src":"30888:16:88"},{"name":"length","nativeSrc":"30906:6:88","nodeType":"YulIdentifier","src":"30906:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"30877:5:88","nodeType":"YulIdentifier","src":"30877:5:88"},"nativeSrc":"30877:36:88","nodeType":"YulFunctionCall","src":"30877:36:88"},"nativeSrc":"30877:36:88","nodeType":"YulExpressionStatement","src":"30877:36:88"},{"nativeSrc":"30922:26:88","nodeType":"YulVariableDeclaration","src":"30922:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"30936:3:88","nodeType":"YulIdentifier","src":"30936:3:88"},{"name":"length","nativeSrc":"30941:6:88","nodeType":"YulIdentifier","src":"30941:6:88"}],"functionName":{"name":"add","nativeSrc":"30932:3:88","nodeType":"YulIdentifier","src":"30932:3:88"},"nativeSrc":"30932:16:88","nodeType":"YulFunctionCall","src":"30932:16:88"},"variables":[{"name":"_1","nativeSrc":"30926:2:88","nodeType":"YulTypedName","src":"30926:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"30964:2:88","nodeType":"YulIdentifier","src":"30964:2:88"},{"kind":"number","nativeSrc":"30968:1:88","nodeType":"YulLiteral","src":"30968:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"30957:6:88","nodeType":"YulIdentifier","src":"30957:6:88"},"nativeSrc":"30957:13:88","nodeType":"YulFunctionCall","src":"30957:13:88"},"nativeSrc":"30957:13:88","nodeType":"YulExpressionStatement","src":"30957:13:88"},{"nativeSrc":"30979:9:88","nodeType":"YulAssignment","src":"30979:9:88","value":{"name":"_1","nativeSrc":"30986:2:88","nodeType":"YulIdentifier","src":"30986:2:88"},"variableNames":[{"name":"end","nativeSrc":"30979:3:88","nodeType":"YulIdentifier","src":"30979:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"30782:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30809:5:88","nodeType":"YulTypedName","src":"30809:5:88","type":""},{"name":"pos","nativeSrc":"30816:3:88","nodeType":"YulTypedName","src":"30816:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30824:3:88","nodeType":"YulTypedName","src":"30824:3:88","type":""}],"src":"30782:212:88"},{"body":{"nativeSrc":"31186:80:88","nodeType":"YulBlock","src":"31186:80:88","statements":[{"nativeSrc":"31196:64:88","nodeType":"YulAssignment","src":"31196:64:88","value":{"arguments":[{"name":"value1","nativeSrc":"31221:6:88","nodeType":"YulIdentifier","src":"31221:6:88"},{"arguments":[{"name":"value0","nativeSrc":"31247:6:88","nodeType":"YulIdentifier","src":"31247:6:88"},{"name":"pos","nativeSrc":"31255:3:88","nodeType":"YulIdentifier","src":"31255:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"31229:17:88","nodeType":"YulIdentifier","src":"31229:17:88"},"nativeSrc":"31229:30:88","nodeType":"YulFunctionCall","src":"31229:30:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"31203:17:88","nodeType":"YulIdentifier","src":"31203:17:88"},"nativeSrc":"31203:57:88","nodeType":"YulFunctionCall","src":"31203:57:88"},"variableNames":[{"name":"end","nativeSrc":"31196:3:88","nodeType":"YulIdentifier","src":"31196:3:88"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"30999:267:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31154:3:88","nodeType":"YulTypedName","src":"31154:3:88","type":""},{"name":"value1","nativeSrc":"31159:6:88","nodeType":"YulTypedName","src":"31159:6:88","type":""},{"name":"value0","nativeSrc":"31167:6:88","nodeType":"YulTypedName","src":"31167:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31178:3:88","nodeType":"YulTypedName","src":"31178:3:88","type":""}],"src":"30999:267:88"},{"body":{"nativeSrc":"31445:233:88","nodeType":"YulBlock","src":"31445:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31462:9:88","nodeType":"YulIdentifier","src":"31462:9:88"},{"kind":"number","nativeSrc":"31473:2:88","nodeType":"YulLiteral","src":"31473:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31455:6:88","nodeType":"YulIdentifier","src":"31455:6:88"},"nativeSrc":"31455:21:88","nodeType":"YulFunctionCall","src":"31455:21:88"},"nativeSrc":"31455:21:88","nodeType":"YulExpressionStatement","src":"31455:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31496:9:88","nodeType":"YulIdentifier","src":"31496:9:88"},{"kind":"number","nativeSrc":"31507:2:88","nodeType":"YulLiteral","src":"31507:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31492:3:88","nodeType":"YulIdentifier","src":"31492:3:88"},"nativeSrc":"31492:18:88","nodeType":"YulFunctionCall","src":"31492:18:88"},{"kind":"number","nativeSrc":"31512:2:88","nodeType":"YulLiteral","src":"31512:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"31485:6:88","nodeType":"YulIdentifier","src":"31485:6:88"},"nativeSrc":"31485:30:88","nodeType":"YulFunctionCall","src":"31485:30:88"},"nativeSrc":"31485:30:88","nodeType":"YulExpressionStatement","src":"31485:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31535:9:88","nodeType":"YulIdentifier","src":"31535:9:88"},{"kind":"number","nativeSrc":"31546:2:88","nodeType":"YulLiteral","src":"31546:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31531:3:88","nodeType":"YulIdentifier","src":"31531:3:88"},"nativeSrc":"31531:18:88","nodeType":"YulFunctionCall","src":"31531:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"31551:34:88","nodeType":"YulLiteral","src":"31551:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"31524:6:88","nodeType":"YulIdentifier","src":"31524:6:88"},"nativeSrc":"31524:62:88","nodeType":"YulFunctionCall","src":"31524:62:88"},"nativeSrc":"31524:62:88","nodeType":"YulExpressionStatement","src":"31524:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31606:9:88","nodeType":"YulIdentifier","src":"31606:9:88"},{"kind":"number","nativeSrc":"31617:2:88","nodeType":"YulLiteral","src":"31617:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31602:3:88","nodeType":"YulIdentifier","src":"31602:3:88"},"nativeSrc":"31602:18:88","nodeType":"YulFunctionCall","src":"31602:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"31622:13:88","nodeType":"YulLiteral","src":"31622:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"31595:6:88","nodeType":"YulIdentifier","src":"31595:6:88"},"nativeSrc":"31595:41:88","nodeType":"YulFunctionCall","src":"31595:41:88"},"nativeSrc":"31595:41:88","nodeType":"YulExpressionStatement","src":"31595:41:88"},{"nativeSrc":"31645:27:88","nodeType":"YulAssignment","src":"31645:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31657:9:88","nodeType":"YulIdentifier","src":"31657:9:88"},{"kind":"number","nativeSrc":"31668:3:88","nodeType":"YulLiteral","src":"31668:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31653:3:88","nodeType":"YulIdentifier","src":"31653:3:88"},"nativeSrc":"31653:19:88","nodeType":"YulFunctionCall","src":"31653:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31645:4:88","nodeType":"YulIdentifier","src":"31645:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31271:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31422:9:88","nodeType":"YulTypedName","src":"31422:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31436:4:88","nodeType":"YulTypedName","src":"31436:4:88","type":""}],"src":"31271:407:88"},{"body":{"nativeSrc":"31857:227:88","nodeType":"YulBlock","src":"31857:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31874:9:88","nodeType":"YulIdentifier","src":"31874:9:88"},{"kind":"number","nativeSrc":"31885:2:88","nodeType":"YulLiteral","src":"31885:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31867:6:88","nodeType":"YulIdentifier","src":"31867:6:88"},"nativeSrc":"31867:21:88","nodeType":"YulFunctionCall","src":"31867:21:88"},"nativeSrc":"31867:21:88","nodeType":"YulExpressionStatement","src":"31867:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31908:9:88","nodeType":"YulIdentifier","src":"31908:9:88"},{"kind":"number","nativeSrc":"31919:2:88","nodeType":"YulLiteral","src":"31919:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31904:3:88","nodeType":"YulIdentifier","src":"31904:3:88"},"nativeSrc":"31904:18:88","nodeType":"YulFunctionCall","src":"31904:18:88"},{"kind":"number","nativeSrc":"31924:2:88","nodeType":"YulLiteral","src":"31924:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"31897:6:88","nodeType":"YulIdentifier","src":"31897:6:88"},"nativeSrc":"31897:30:88","nodeType":"YulFunctionCall","src":"31897:30:88"},"nativeSrc":"31897:30:88","nodeType":"YulExpressionStatement","src":"31897:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31947:9:88","nodeType":"YulIdentifier","src":"31947:9:88"},{"kind":"number","nativeSrc":"31958:2:88","nodeType":"YulLiteral","src":"31958:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31943:3:88","nodeType":"YulIdentifier","src":"31943:3:88"},"nativeSrc":"31943:18:88","nodeType":"YulFunctionCall","src":"31943:18:88"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nativeSrc":"31963:34:88","nodeType":"YulLiteral","src":"31963:34:88","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nativeSrc":"31936:6:88","nodeType":"YulIdentifier","src":"31936:6:88"},"nativeSrc":"31936:62:88","nodeType":"YulFunctionCall","src":"31936:62:88"},"nativeSrc":"31936:62:88","nodeType":"YulExpressionStatement","src":"31936:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32018:9:88","nodeType":"YulIdentifier","src":"32018:9:88"},{"kind":"number","nativeSrc":"32029:2:88","nodeType":"YulLiteral","src":"32029:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32014:3:88","nodeType":"YulIdentifier","src":"32014:3:88"},"nativeSrc":"32014:18:88","nodeType":"YulFunctionCall","src":"32014:18:88"},{"hexValue":"6f776e6572","kind":"string","nativeSrc":"32034:7:88","nodeType":"YulLiteral","src":"32034:7:88","type":"","value":"owner"}],"functionName":{"name":"mstore","nativeSrc":"32007:6:88","nodeType":"YulIdentifier","src":"32007:6:88"},"nativeSrc":"32007:35:88","nodeType":"YulFunctionCall","src":"32007:35:88"},"nativeSrc":"32007:35:88","nodeType":"YulExpressionStatement","src":"32007:35:88"},{"nativeSrc":"32051:27:88","nodeType":"YulAssignment","src":"32051:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32063:9:88","nodeType":"YulIdentifier","src":"32063:9:88"},{"kind":"number","nativeSrc":"32074:3:88","nodeType":"YulLiteral","src":"32074:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32059:3:88","nodeType":"YulIdentifier","src":"32059:3:88"},"nativeSrc":"32059:19:88","nodeType":"YulFunctionCall","src":"32059:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32051:4:88","nodeType":"YulIdentifier","src":"32051:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31683:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31834:9:88","nodeType":"YulTypedName","src":"31834:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31848:4:88","nodeType":"YulTypedName","src":"31848:4:88","type":""}],"src":"31683:401:88"},{"body":{"nativeSrc":"32263:226:88","nodeType":"YulBlock","src":"32263:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32280:9:88","nodeType":"YulIdentifier","src":"32280:9:88"},{"kind":"number","nativeSrc":"32291:2:88","nodeType":"YulLiteral","src":"32291:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32273:6:88","nodeType":"YulIdentifier","src":"32273:6:88"},"nativeSrc":"32273:21:88","nodeType":"YulFunctionCall","src":"32273:21:88"},"nativeSrc":"32273:21:88","nodeType":"YulExpressionStatement","src":"32273:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32314:9:88","nodeType":"YulIdentifier","src":"32314:9:88"},{"kind":"number","nativeSrc":"32325:2:88","nodeType":"YulLiteral","src":"32325:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32310:3:88","nodeType":"YulIdentifier","src":"32310:3:88"},"nativeSrc":"32310:18:88","nodeType":"YulFunctionCall","src":"32310:18:88"},{"kind":"number","nativeSrc":"32330:2:88","nodeType":"YulLiteral","src":"32330:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"32303:6:88","nodeType":"YulIdentifier","src":"32303:6:88"},"nativeSrc":"32303:30:88","nodeType":"YulFunctionCall","src":"32303:30:88"},"nativeSrc":"32303:30:88","nodeType":"YulExpressionStatement","src":"32303:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32353:9:88","nodeType":"YulIdentifier","src":"32353:9:88"},{"kind":"number","nativeSrc":"32364:2:88","nodeType":"YulLiteral","src":"32364:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32349:3:88","nodeType":"YulIdentifier","src":"32349:3:88"},"nativeSrc":"32349:18:88","nodeType":"YulFunctionCall","src":"32349:18:88"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nativeSrc":"32369:34:88","nodeType":"YulLiteral","src":"32369:34:88","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nativeSrc":"32342:6:88","nodeType":"YulIdentifier","src":"32342:6:88"},"nativeSrc":"32342:62:88","nodeType":"YulFunctionCall","src":"32342:62:88"},"nativeSrc":"32342:62:88","nodeType":"YulExpressionStatement","src":"32342:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32424:9:88","nodeType":"YulIdentifier","src":"32424:9:88"},{"kind":"number","nativeSrc":"32435:2:88","nodeType":"YulLiteral","src":"32435:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32420:3:88","nodeType":"YulIdentifier","src":"32420:3:88"},"nativeSrc":"32420:18:88","nodeType":"YulFunctionCall","src":"32420:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"32440:6:88","nodeType":"YulLiteral","src":"32440:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"32413:6:88","nodeType":"YulIdentifier","src":"32413:6:88"},"nativeSrc":"32413:34:88","nodeType":"YulFunctionCall","src":"32413:34:88"},"nativeSrc":"32413:34:88","nodeType":"YulExpressionStatement","src":"32413:34:88"},{"nativeSrc":"32456:27:88","nodeType":"YulAssignment","src":"32456:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32468:9:88","nodeType":"YulIdentifier","src":"32468:9:88"},{"kind":"number","nativeSrc":"32479:3:88","nodeType":"YulLiteral","src":"32479:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32464:3:88","nodeType":"YulIdentifier","src":"32464:3:88"},"nativeSrc":"32464:19:88","nodeType":"YulFunctionCall","src":"32464:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32456:4:88","nodeType":"YulIdentifier","src":"32456:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32089:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32240:9:88","nodeType":"YulTypedName","src":"32240:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32254:4:88","nodeType":"YulTypedName","src":"32254:4:88","type":""}],"src":"32089:400:88"},{"body":{"nativeSrc":"32599:170:88","nodeType":"YulBlock","src":"32599:170:88","statements":[{"body":{"nativeSrc":"32645:16:88","nodeType":"YulBlock","src":"32645:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32654:1:88","nodeType":"YulLiteral","src":"32654:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"32657:1:88","nodeType":"YulLiteral","src":"32657:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32647:6:88","nodeType":"YulIdentifier","src":"32647:6:88"},"nativeSrc":"32647:12:88","nodeType":"YulFunctionCall","src":"32647:12:88"},"nativeSrc":"32647:12:88","nodeType":"YulExpressionStatement","src":"32647:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32620:7:88","nodeType":"YulIdentifier","src":"32620:7:88"},{"name":"headStart","nativeSrc":"32629:9:88","nodeType":"YulIdentifier","src":"32629:9:88"}],"functionName":{"name":"sub","nativeSrc":"32616:3:88","nodeType":"YulIdentifier","src":"32616:3:88"},"nativeSrc":"32616:23:88","nodeType":"YulFunctionCall","src":"32616:23:88"},{"kind":"number","nativeSrc":"32641:2:88","nodeType":"YulLiteral","src":"32641:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"32612:3:88","nodeType":"YulIdentifier","src":"32612:3:88"},"nativeSrc":"32612:32:88","nodeType":"YulFunctionCall","src":"32612:32:88"},"nativeSrc":"32609:52:88","nodeType":"YulIf","src":"32609:52:88"},{"nativeSrc":"32670:29:88","nodeType":"YulVariableDeclaration","src":"32670:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32689:9:88","nodeType":"YulIdentifier","src":"32689:9:88"}],"functionName":{"name":"mload","nativeSrc":"32683:5:88","nodeType":"YulIdentifier","src":"32683:5:88"},"nativeSrc":"32683:16:88","nodeType":"YulFunctionCall","src":"32683:16:88"},"variables":[{"name":"value","nativeSrc":"32674:5:88","nodeType":"YulTypedName","src":"32674:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"32733:5:88","nodeType":"YulIdentifier","src":"32733:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"32708:24:88","nodeType":"YulIdentifier","src":"32708:24:88"},"nativeSrc":"32708:31:88","nodeType":"YulFunctionCall","src":"32708:31:88"},"nativeSrc":"32708:31:88","nodeType":"YulExpressionStatement","src":"32708:31:88"},{"nativeSrc":"32748:15:88","nodeType":"YulAssignment","src":"32748:15:88","value":{"name":"value","nativeSrc":"32758:5:88","nodeType":"YulIdentifier","src":"32758:5:88"},"variableNames":[{"name":"value0","nativeSrc":"32748:6:88","nodeType":"YulIdentifier","src":"32748:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"32494:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32565:9:88","nodeType":"YulTypedName","src":"32565:9:88","type":""},{"name":"dataEnd","nativeSrc":"32576:7:88","nodeType":"YulTypedName","src":"32576:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32588:6:88","nodeType":"YulTypedName","src":"32588:6:88","type":""}],"src":"32494:275:88"},{"body":{"nativeSrc":"32855:103:88","nodeType":"YulBlock","src":"32855:103:88","statements":[{"body":{"nativeSrc":"32901:16:88","nodeType":"YulBlock","src":"32901:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32910:1:88","nodeType":"YulLiteral","src":"32910:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"32913:1:88","nodeType":"YulLiteral","src":"32913:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32903:6:88","nodeType":"YulIdentifier","src":"32903:6:88"},"nativeSrc":"32903:12:88","nodeType":"YulFunctionCall","src":"32903:12:88"},"nativeSrc":"32903:12:88","nodeType":"YulExpressionStatement","src":"32903:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32876:7:88","nodeType":"YulIdentifier","src":"32876:7:88"},{"name":"headStart","nativeSrc":"32885:9:88","nodeType":"YulIdentifier","src":"32885:9:88"}],"functionName":{"name":"sub","nativeSrc":"32872:3:88","nodeType":"YulIdentifier","src":"32872:3:88"},"nativeSrc":"32872:23:88","nodeType":"YulFunctionCall","src":"32872:23:88"},{"kind":"number","nativeSrc":"32897:2:88","nodeType":"YulLiteral","src":"32897:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"32868:3:88","nodeType":"YulIdentifier","src":"32868:3:88"},"nativeSrc":"32868:32:88","nodeType":"YulFunctionCall","src":"32868:32:88"},"nativeSrc":"32865:52:88","nodeType":"YulIf","src":"32865:52:88"},{"nativeSrc":"32926:26:88","nodeType":"YulAssignment","src":"32926:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32942:9:88","nodeType":"YulIdentifier","src":"32942:9:88"}],"functionName":{"name":"mload","nativeSrc":"32936:5:88","nodeType":"YulIdentifier","src":"32936:5:88"},"nativeSrc":"32936:16:88","nodeType":"YulFunctionCall","src":"32936:16:88"},"variableNames":[{"name":"value0","nativeSrc":"32926:6:88","nodeType":"YulIdentifier","src":"32926:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"32774:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32821:9:88","nodeType":"YulTypedName","src":"32821:9:88","type":""},{"name":"dataEnd","nativeSrc":"32832:7:88","nodeType":"YulTypedName","src":"32832:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32844:6:88","nodeType":"YulTypedName","src":"32844:6:88","type":""}],"src":"32774:184:88"},{"body":{"nativeSrc":"33137:236:88","nodeType":"YulBlock","src":"33137:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33154:9:88","nodeType":"YulIdentifier","src":"33154:9:88"},{"kind":"number","nativeSrc":"33165:2:88","nodeType":"YulLiteral","src":"33165:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33147:6:88","nodeType":"YulIdentifier","src":"33147:6:88"},"nativeSrc":"33147:21:88","nodeType":"YulFunctionCall","src":"33147:21:88"},"nativeSrc":"33147:21:88","nodeType":"YulExpressionStatement","src":"33147:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33188:9:88","nodeType":"YulIdentifier","src":"33188:9:88"},{"kind":"number","nativeSrc":"33199:2:88","nodeType":"YulLiteral","src":"33199:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33184:3:88","nodeType":"YulIdentifier","src":"33184:3:88"},"nativeSrc":"33184:18:88","nodeType":"YulFunctionCall","src":"33184:18:88"},{"kind":"number","nativeSrc":"33204:2:88","nodeType":"YulLiteral","src":"33204:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"33177:6:88","nodeType":"YulIdentifier","src":"33177:6:88"},"nativeSrc":"33177:30:88","nodeType":"YulFunctionCall","src":"33177:30:88"},"nativeSrc":"33177:30:88","nodeType":"YulExpressionStatement","src":"33177:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33227:9:88","nodeType":"YulIdentifier","src":"33227:9:88"},{"kind":"number","nativeSrc":"33238:2:88","nodeType":"YulLiteral","src":"33238:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33223:3:88","nodeType":"YulIdentifier","src":"33223:3:88"},"nativeSrc":"33223:18:88","nodeType":"YulFunctionCall","src":"33223:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"33243:34:88","nodeType":"YulLiteral","src":"33243:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"33216:6:88","nodeType":"YulIdentifier","src":"33216:6:88"},"nativeSrc":"33216:62:88","nodeType":"YulFunctionCall","src":"33216:62:88"},"nativeSrc":"33216:62:88","nodeType":"YulExpressionStatement","src":"33216:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33298:9:88","nodeType":"YulIdentifier","src":"33298:9:88"},{"kind":"number","nativeSrc":"33309:2:88","nodeType":"YulLiteral","src":"33309:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33294:3:88","nodeType":"YulIdentifier","src":"33294:3:88"},"nativeSrc":"33294:18:88","nodeType":"YulFunctionCall","src":"33294:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"33314:16:88","nodeType":"YulLiteral","src":"33314:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"33287:6:88","nodeType":"YulIdentifier","src":"33287:6:88"},"nativeSrc":"33287:44:88","nodeType":"YulFunctionCall","src":"33287:44:88"},"nativeSrc":"33287:44:88","nodeType":"YulExpressionStatement","src":"33287:44:88"},{"nativeSrc":"33340:27:88","nodeType":"YulAssignment","src":"33340:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33352:9:88","nodeType":"YulIdentifier","src":"33352:9:88"},{"kind":"number","nativeSrc":"33363:3:88","nodeType":"YulLiteral","src":"33363:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33348:3:88","nodeType":"YulIdentifier","src":"33348:3:88"},"nativeSrc":"33348:19:88","nodeType":"YulFunctionCall","src":"33348:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33340:4:88","nodeType":"YulIdentifier","src":"33340:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32963:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33114:9:88","nodeType":"YulTypedName","src":"33114:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33128:4:88","nodeType":"YulTypedName","src":"33128:4:88","type":""}],"src":"32963:410:88"},{"body":{"nativeSrc":"33552:231:88","nodeType":"YulBlock","src":"33552:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33569:9:88","nodeType":"YulIdentifier","src":"33569:9:88"},{"kind":"number","nativeSrc":"33580:2:88","nodeType":"YulLiteral","src":"33580:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33562:6:88","nodeType":"YulIdentifier","src":"33562:6:88"},"nativeSrc":"33562:21:88","nodeType":"YulFunctionCall","src":"33562:21:88"},"nativeSrc":"33562:21:88","nodeType":"YulExpressionStatement","src":"33562:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33603:9:88","nodeType":"YulIdentifier","src":"33603:9:88"},{"kind":"number","nativeSrc":"33614:2:88","nodeType":"YulLiteral","src":"33614:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33599:3:88","nodeType":"YulIdentifier","src":"33599:3:88"},"nativeSrc":"33599:18:88","nodeType":"YulFunctionCall","src":"33599:18:88"},{"kind":"number","nativeSrc":"33619:2:88","nodeType":"YulLiteral","src":"33619:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"33592:6:88","nodeType":"YulIdentifier","src":"33592:6:88"},"nativeSrc":"33592:30:88","nodeType":"YulFunctionCall","src":"33592:30:88"},"nativeSrc":"33592:30:88","nodeType":"YulExpressionStatement","src":"33592:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33642:9:88","nodeType":"YulIdentifier","src":"33642:9:88"},{"kind":"number","nativeSrc":"33653:2:88","nodeType":"YulLiteral","src":"33653:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33638:3:88","nodeType":"YulIdentifier","src":"33638:3:88"},"nativeSrc":"33638:18:88","nodeType":"YulFunctionCall","src":"33638:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"33658:34:88","nodeType":"YulLiteral","src":"33658:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"33631:6:88","nodeType":"YulIdentifier","src":"33631:6:88"},"nativeSrc":"33631:62:88","nodeType":"YulFunctionCall","src":"33631:62:88"},"nativeSrc":"33631:62:88","nodeType":"YulExpressionStatement","src":"33631:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33713:9:88","nodeType":"YulIdentifier","src":"33713:9:88"},{"kind":"number","nativeSrc":"33724:2:88","nodeType":"YulLiteral","src":"33724:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33709:3:88","nodeType":"YulIdentifier","src":"33709:3:88"},"nativeSrc":"33709:18:88","nodeType":"YulFunctionCall","src":"33709:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"33729:11:88","nodeType":"YulLiteral","src":"33729:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"33702:6:88","nodeType":"YulIdentifier","src":"33702:6:88"},"nativeSrc":"33702:39:88","nodeType":"YulFunctionCall","src":"33702:39:88"},"nativeSrc":"33702:39:88","nodeType":"YulExpressionStatement","src":"33702:39:88"},{"nativeSrc":"33750:27:88","nodeType":"YulAssignment","src":"33750:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33762:9:88","nodeType":"YulIdentifier","src":"33762:9:88"},{"kind":"number","nativeSrc":"33773:3:88","nodeType":"YulLiteral","src":"33773:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33758:3:88","nodeType":"YulIdentifier","src":"33758:3:88"},"nativeSrc":"33758:19:88","nodeType":"YulFunctionCall","src":"33758:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33750:4:88","nodeType":"YulIdentifier","src":"33750:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33378:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33529:9:88","nodeType":"YulTypedName","src":"33529:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33543:4:88","nodeType":"YulTypedName","src":"33543:4:88","type":""}],"src":"33378:405:88"},{"body":{"nativeSrc":"33962:166:88","nodeType":"YulBlock","src":"33962:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33979:9:88","nodeType":"YulIdentifier","src":"33979:9:88"},{"kind":"number","nativeSrc":"33990:2:88","nodeType":"YulLiteral","src":"33990:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33972:6:88","nodeType":"YulIdentifier","src":"33972:6:88"},"nativeSrc":"33972:21:88","nodeType":"YulFunctionCall","src":"33972:21:88"},"nativeSrc":"33972:21:88","nodeType":"YulExpressionStatement","src":"33972:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34013:9:88","nodeType":"YulIdentifier","src":"34013:9:88"},{"kind":"number","nativeSrc":"34024:2:88","nodeType":"YulLiteral","src":"34024:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34009:3:88","nodeType":"YulIdentifier","src":"34009:3:88"},"nativeSrc":"34009:18:88","nodeType":"YulFunctionCall","src":"34009:18:88"},{"kind":"number","nativeSrc":"34029:2:88","nodeType":"YulLiteral","src":"34029:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"34002:6:88","nodeType":"YulIdentifier","src":"34002:6:88"},"nativeSrc":"34002:30:88","nodeType":"YulFunctionCall","src":"34002:30:88"},"nativeSrc":"34002:30:88","nodeType":"YulExpressionStatement","src":"34002:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34052:9:88","nodeType":"YulIdentifier","src":"34052:9:88"},{"kind":"number","nativeSrc":"34063:2:88","nodeType":"YulLiteral","src":"34063:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34048:3:88","nodeType":"YulIdentifier","src":"34048:3:88"},"nativeSrc":"34048:18:88","nodeType":"YulFunctionCall","src":"34048:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"34068:18:88","nodeType":"YulLiteral","src":"34068:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"34041:6:88","nodeType":"YulIdentifier","src":"34041:6:88"},"nativeSrc":"34041:46:88","nodeType":"YulFunctionCall","src":"34041:46:88"},"nativeSrc":"34041:46:88","nodeType":"YulExpressionStatement","src":"34041:46:88"},{"nativeSrc":"34096:26:88","nodeType":"YulAssignment","src":"34096:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34108:9:88","nodeType":"YulIdentifier","src":"34108:9:88"},{"kind":"number","nativeSrc":"34119:2:88","nodeType":"YulLiteral","src":"34119:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34104:3:88","nodeType":"YulIdentifier","src":"34104:3:88"},"nativeSrc":"34104:18:88","nodeType":"YulFunctionCall","src":"34104:18:88"},"variableNames":[{"name":"tail","nativeSrc":"34096:4:88","nodeType":"YulIdentifier","src":"34096:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33788:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33939:9:88","nodeType":"YulTypedName","src":"33939:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33953:4:88","nodeType":"YulTypedName","src":"33953:4:88","type":""}],"src":"33788:340:88"},{"body":{"nativeSrc":"34307:166:88","nodeType":"YulBlock","src":"34307:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34324:9:88","nodeType":"YulIdentifier","src":"34324:9:88"},{"kind":"number","nativeSrc":"34335:2:88","nodeType":"YulLiteral","src":"34335:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34317:6:88","nodeType":"YulIdentifier","src":"34317:6:88"},"nativeSrc":"34317:21:88","nodeType":"YulFunctionCall","src":"34317:21:88"},"nativeSrc":"34317:21:88","nodeType":"YulExpressionStatement","src":"34317:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34358:9:88","nodeType":"YulIdentifier","src":"34358:9:88"},{"kind":"number","nativeSrc":"34369:2:88","nodeType":"YulLiteral","src":"34369:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34354:3:88","nodeType":"YulIdentifier","src":"34354:3:88"},"nativeSrc":"34354:18:88","nodeType":"YulFunctionCall","src":"34354:18:88"},{"kind":"number","nativeSrc":"34374:2:88","nodeType":"YulLiteral","src":"34374:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"34347:6:88","nodeType":"YulIdentifier","src":"34347:6:88"},"nativeSrc":"34347:30:88","nodeType":"YulFunctionCall","src":"34347:30:88"},"nativeSrc":"34347:30:88","nodeType":"YulExpressionStatement","src":"34347:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34397:9:88","nodeType":"YulIdentifier","src":"34397:9:88"},{"kind":"number","nativeSrc":"34408:2:88","nodeType":"YulLiteral","src":"34408:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34393:3:88","nodeType":"YulIdentifier","src":"34393:3:88"},"nativeSrc":"34393:18:88","nodeType":"YulFunctionCall","src":"34393:18:88"},{"hexValue":"506f6c696379206e6f7420666f756e64","kind":"string","nativeSrc":"34413:18:88","nodeType":"YulLiteral","src":"34413:18:88","type":"","value":"Policy not found"}],"functionName":{"name":"mstore","nativeSrc":"34386:6:88","nodeType":"YulIdentifier","src":"34386:6:88"},"nativeSrc":"34386:46:88","nodeType":"YulFunctionCall","src":"34386:46:88"},"nativeSrc":"34386:46:88","nodeType":"YulExpressionStatement","src":"34386:46:88"},{"nativeSrc":"34441:26:88","nodeType":"YulAssignment","src":"34441:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34453:9:88","nodeType":"YulIdentifier","src":"34453:9:88"},{"kind":"number","nativeSrc":"34464:2:88","nodeType":"YulLiteral","src":"34464:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34449:3:88","nodeType":"YulIdentifier","src":"34449:3:88"},"nativeSrc":"34449:18:88","nodeType":"YulFunctionCall","src":"34449:18:88"},"variableNames":[{"name":"tail","nativeSrc":"34441:4:88","nodeType":"YulIdentifier","src":"34441:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34133:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34284:9:88","nodeType":"YulTypedName","src":"34284:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34298:4:88","nodeType":"YulTypedName","src":"34298:4:88","type":""}],"src":"34133:340:88"},{"body":{"nativeSrc":"34652:174:88","nodeType":"YulBlock","src":"34652:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34669:9:88","nodeType":"YulIdentifier","src":"34669:9:88"},{"kind":"number","nativeSrc":"34680:2:88","nodeType":"YulLiteral","src":"34680:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34662:6:88","nodeType":"YulIdentifier","src":"34662:6:88"},"nativeSrc":"34662:21:88","nodeType":"YulFunctionCall","src":"34662:21:88"},"nativeSrc":"34662:21:88","nodeType":"YulExpressionStatement","src":"34662:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34703:9:88","nodeType":"YulIdentifier","src":"34703:9:88"},{"kind":"number","nativeSrc":"34714:2:88","nodeType":"YulLiteral","src":"34714:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34699:3:88","nodeType":"YulIdentifier","src":"34699:3:88"},"nativeSrc":"34699:18:88","nodeType":"YulFunctionCall","src":"34699:18:88"},{"kind":"number","nativeSrc":"34719:2:88","nodeType":"YulLiteral","src":"34719:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"34692:6:88","nodeType":"YulIdentifier","src":"34692:6:88"},"nativeSrc":"34692:30:88","nodeType":"YulFunctionCall","src":"34692:30:88"},"nativeSrc":"34692:30:88","nodeType":"YulExpressionStatement","src":"34692:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34742:9:88","nodeType":"YulIdentifier","src":"34742:9:88"},{"kind":"number","nativeSrc":"34753:2:88","nodeType":"YulLiteral","src":"34753:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34738:3:88","nodeType":"YulIdentifier","src":"34738:3:88"},"nativeSrc":"34738:18:88","nodeType":"YulFunctionCall","src":"34738:18:88"},{"hexValue":"506f6c6963793a20686173682063616e6e6f742062652030","kind":"string","nativeSrc":"34758:26:88","nodeType":"YulLiteral","src":"34758:26:88","type":"","value":"Policy: hash cannot be 0"}],"functionName":{"name":"mstore","nativeSrc":"34731:6:88","nodeType":"YulIdentifier","src":"34731:6:88"},"nativeSrc":"34731:54:88","nodeType":"YulFunctionCall","src":"34731:54:88"},"nativeSrc":"34731:54:88","nodeType":"YulExpressionStatement","src":"34731:54:88"},{"nativeSrc":"34794:26:88","nodeType":"YulAssignment","src":"34794:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34806:9:88","nodeType":"YulIdentifier","src":"34806:9:88"},{"kind":"number","nativeSrc":"34817:2:88","nodeType":"YulLiteral","src":"34817:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34802:3:88","nodeType":"YulIdentifier","src":"34802:3:88"},"nativeSrc":"34802:18:88","nodeType":"YulFunctionCall","src":"34802:18:88"},"variableNames":[{"name":"tail","nativeSrc":"34794:4:88","nodeType":"YulIdentifier","src":"34794:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34478:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34629:9:88","nodeType":"YulTypedName","src":"34629:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34643:4:88","nodeType":"YulTypedName","src":"34643:4:88","type":""}],"src":"34478:348:88"},{"body":{"nativeSrc":"35005:240:88","nodeType":"YulBlock","src":"35005:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35022:9:88","nodeType":"YulIdentifier","src":"35022:9:88"},{"kind":"number","nativeSrc":"35033:2:88","nodeType":"YulLiteral","src":"35033:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35015:6:88","nodeType":"YulIdentifier","src":"35015:6:88"},"nativeSrc":"35015:21:88","nodeType":"YulFunctionCall","src":"35015:21:88"},"nativeSrc":"35015:21:88","nodeType":"YulExpressionStatement","src":"35015:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35056:9:88","nodeType":"YulIdentifier","src":"35056:9:88"},{"kind":"number","nativeSrc":"35067:2:88","nodeType":"YulLiteral","src":"35067:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35052:3:88","nodeType":"YulIdentifier","src":"35052:3:88"},"nativeSrc":"35052:18:88","nodeType":"YulFunctionCall","src":"35052:18:88"},{"kind":"number","nativeSrc":"35072:2:88","nodeType":"YulLiteral","src":"35072:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"35045:6:88","nodeType":"YulIdentifier","src":"35045:6:88"},"nativeSrc":"35045:30:88","nodeType":"YulFunctionCall","src":"35045:30:88"},"nativeSrc":"35045:30:88","nodeType":"YulExpressionStatement","src":"35045:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35095:9:88","nodeType":"YulIdentifier","src":"35095:9:88"},{"kind":"number","nativeSrc":"35106:2:88","nodeType":"YulLiteral","src":"35106:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35091:3:88","nodeType":"YulIdentifier","src":"35091:3:88"},"nativeSrc":"35091:18:88","nodeType":"YulFunctionCall","src":"35091:18:88"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nativeSrc":"35111:34:88","nodeType":"YulLiteral","src":"35111:34:88","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nativeSrc":"35084:6:88","nodeType":"YulIdentifier","src":"35084:6:88"},"nativeSrc":"35084:62:88","nodeType":"YulFunctionCall","src":"35084:62:88"},"nativeSrc":"35084:62:88","nodeType":"YulExpressionStatement","src":"35084:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35166:9:88","nodeType":"YulIdentifier","src":"35166:9:88"},{"kind":"number","nativeSrc":"35177:2:88","nodeType":"YulLiteral","src":"35177:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35162:3:88","nodeType":"YulIdentifier","src":"35162:3:88"},"nativeSrc":"35162:18:88","nodeType":"YulFunctionCall","src":"35162:18:88"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nativeSrc":"35182:20:88","nodeType":"YulLiteral","src":"35182:20:88","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nativeSrc":"35155:6:88","nodeType":"YulIdentifier","src":"35155:6:88"},"nativeSrc":"35155:48:88","nodeType":"YulFunctionCall","src":"35155:48:88"},"nativeSrc":"35155:48:88","nodeType":"YulExpressionStatement","src":"35155:48:88"},{"nativeSrc":"35212:27:88","nodeType":"YulAssignment","src":"35212:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35224:9:88","nodeType":"YulIdentifier","src":"35224:9:88"},{"kind":"number","nativeSrc":"35235:3:88","nodeType":"YulLiteral","src":"35235:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35220:3:88","nodeType":"YulIdentifier","src":"35220:3:88"},"nativeSrc":"35220:19:88","nodeType":"YulFunctionCall","src":"35220:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35212:4:88","nodeType":"YulIdentifier","src":"35212:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34831:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34982:9:88","nodeType":"YulTypedName","src":"34982:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34996:4:88","nodeType":"YulTypedName","src":"34996:4:88","type":""}],"src":"34831:414:88"},{"body":{"nativeSrc":"35407:214:88","nodeType":"YulBlock","src":"35407:214:88","statements":[{"nativeSrc":"35417:26:88","nodeType":"YulAssignment","src":"35417:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35429:9:88","nodeType":"YulIdentifier","src":"35429:9:88"},{"kind":"number","nativeSrc":"35440:2:88","nodeType":"YulLiteral","src":"35440:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35425:3:88","nodeType":"YulIdentifier","src":"35425:3:88"},"nativeSrc":"35425:18:88","nodeType":"YulFunctionCall","src":"35425:18:88"},"variableNames":[{"name":"tail","nativeSrc":"35417:4:88","nodeType":"YulIdentifier","src":"35417:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35459:9:88","nodeType":"YulIdentifier","src":"35459:9:88"},{"arguments":[{"name":"value0","nativeSrc":"35474:6:88","nodeType":"YulIdentifier","src":"35474:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35490:3:88","nodeType":"YulLiteral","src":"35490:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"35495:1:88","nodeType":"YulLiteral","src":"35495:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"35486:3:88","nodeType":"YulIdentifier","src":"35486:3:88"},"nativeSrc":"35486:11:88","nodeType":"YulFunctionCall","src":"35486:11:88"},{"kind":"number","nativeSrc":"35499:1:88","nodeType":"YulLiteral","src":"35499:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"35482:3:88","nodeType":"YulIdentifier","src":"35482:3:88"},"nativeSrc":"35482:19:88","nodeType":"YulFunctionCall","src":"35482:19:88"}],"functionName":{"name":"and","nativeSrc":"35470:3:88","nodeType":"YulIdentifier","src":"35470:3:88"},"nativeSrc":"35470:32:88","nodeType":"YulFunctionCall","src":"35470:32:88"}],"functionName":{"name":"mstore","nativeSrc":"35452:6:88","nodeType":"YulIdentifier","src":"35452:6:88"},"nativeSrc":"35452:51:88","nodeType":"YulFunctionCall","src":"35452:51:88"},"nativeSrc":"35452:51:88","nodeType":"YulExpressionStatement","src":"35452:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35523:9:88","nodeType":"YulIdentifier","src":"35523:9:88"},{"kind":"number","nativeSrc":"35534:2:88","nodeType":"YulLiteral","src":"35534:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35519:3:88","nodeType":"YulIdentifier","src":"35519:3:88"},"nativeSrc":"35519:18:88","nodeType":"YulFunctionCall","src":"35519:18:88"},{"arguments":[{"name":"value1","nativeSrc":"35543:6:88","nodeType":"YulIdentifier","src":"35543:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35559:3:88","nodeType":"YulLiteral","src":"35559:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"35564:1:88","nodeType":"YulLiteral","src":"35564:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"35555:3:88","nodeType":"YulIdentifier","src":"35555:3:88"},"nativeSrc":"35555:11:88","nodeType":"YulFunctionCall","src":"35555:11:88"},{"kind":"number","nativeSrc":"35568:1:88","nodeType":"YulLiteral","src":"35568:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"35551:3:88","nodeType":"YulIdentifier","src":"35551:3:88"},"nativeSrc":"35551:19:88","nodeType":"YulFunctionCall","src":"35551:19:88"}],"functionName":{"name":"and","nativeSrc":"35539:3:88","nodeType":"YulIdentifier","src":"35539:3:88"},"nativeSrc":"35539:32:88","nodeType":"YulFunctionCall","src":"35539:32:88"}],"functionName":{"name":"mstore","nativeSrc":"35512:6:88","nodeType":"YulIdentifier","src":"35512:6:88"},"nativeSrc":"35512:60:88","nodeType":"YulFunctionCall","src":"35512:60:88"},"nativeSrc":"35512:60:88","nodeType":"YulExpressionStatement","src":"35512:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35592:9:88","nodeType":"YulIdentifier","src":"35592:9:88"},{"kind":"number","nativeSrc":"35603:2:88","nodeType":"YulLiteral","src":"35603:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35588:3:88","nodeType":"YulIdentifier","src":"35588:3:88"},"nativeSrc":"35588:18:88","nodeType":"YulFunctionCall","src":"35588:18:88"},{"name":"value2","nativeSrc":"35608:6:88","nodeType":"YulIdentifier","src":"35608:6:88"}],"functionName":{"name":"mstore","nativeSrc":"35581:6:88","nodeType":"YulIdentifier","src":"35581:6:88"},"nativeSrc":"35581:34:88","nodeType":"YulFunctionCall","src":"35581:34:88"},"nativeSrc":"35581:34:88","nodeType":"YulExpressionStatement","src":"35581:34:88"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"35250:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35360:9:88","nodeType":"YulTypedName","src":"35360:9:88","type":""},{"name":"value2","nativeSrc":"35371:6:88","nodeType":"YulTypedName","src":"35371:6:88","type":""},{"name":"value1","nativeSrc":"35379:6:88","nodeType":"YulTypedName","src":"35379:6:88","type":""},{"name":"value0","nativeSrc":"35387:6:88","nodeType":"YulTypedName","src":"35387:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35398:4:88","nodeType":"YulTypedName","src":"35398:4:88","type":""}],"src":"35250:371:88"},{"body":{"nativeSrc":"35811:258:88","nodeType":"YulBlock","src":"35811:258:88","statements":[{"nativeSrc":"35821:27:88","nodeType":"YulAssignment","src":"35821:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35833:9:88","nodeType":"YulIdentifier","src":"35833:9:88"},{"kind":"number","nativeSrc":"35844:3:88","nodeType":"YulLiteral","src":"35844:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35829:3:88","nodeType":"YulIdentifier","src":"35829:3:88"},"nativeSrc":"35829:19:88","nodeType":"YulFunctionCall","src":"35829:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35821:4:88","nodeType":"YulIdentifier","src":"35821:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35864:9:88","nodeType":"YulIdentifier","src":"35864:9:88"},{"arguments":[{"name":"value0","nativeSrc":"35879:6:88","nodeType":"YulIdentifier","src":"35879:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35895:3:88","nodeType":"YulLiteral","src":"35895:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"35900:1:88","nodeType":"YulLiteral","src":"35900:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"35891:3:88","nodeType":"YulIdentifier","src":"35891:3:88"},"nativeSrc":"35891:11:88","nodeType":"YulFunctionCall","src":"35891:11:88"},{"kind":"number","nativeSrc":"35904:1:88","nodeType":"YulLiteral","src":"35904:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"35887:3:88","nodeType":"YulIdentifier","src":"35887:3:88"},"nativeSrc":"35887:19:88","nodeType":"YulFunctionCall","src":"35887:19:88"}],"functionName":{"name":"and","nativeSrc":"35875:3:88","nodeType":"YulIdentifier","src":"35875:3:88"},"nativeSrc":"35875:32:88","nodeType":"YulFunctionCall","src":"35875:32:88"}],"functionName":{"name":"mstore","nativeSrc":"35857:6:88","nodeType":"YulIdentifier","src":"35857:6:88"},"nativeSrc":"35857:51:88","nodeType":"YulFunctionCall","src":"35857:51:88"},"nativeSrc":"35857:51:88","nodeType":"YulExpressionStatement","src":"35857:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35928:9:88","nodeType":"YulIdentifier","src":"35928:9:88"},{"kind":"number","nativeSrc":"35939:2:88","nodeType":"YulLiteral","src":"35939:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35924:3:88","nodeType":"YulIdentifier","src":"35924:3:88"},"nativeSrc":"35924:18:88","nodeType":"YulFunctionCall","src":"35924:18:88"},{"arguments":[{"name":"value1","nativeSrc":"35948:6:88","nodeType":"YulIdentifier","src":"35948:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35964:3:88","nodeType":"YulLiteral","src":"35964:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"35969:1:88","nodeType":"YulLiteral","src":"35969:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"35960:3:88","nodeType":"YulIdentifier","src":"35960:3:88"},"nativeSrc":"35960:11:88","nodeType":"YulFunctionCall","src":"35960:11:88"},{"kind":"number","nativeSrc":"35973:1:88","nodeType":"YulLiteral","src":"35973:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"35956:3:88","nodeType":"YulIdentifier","src":"35956:3:88"},"nativeSrc":"35956:19:88","nodeType":"YulFunctionCall","src":"35956:19:88"}],"functionName":{"name":"and","nativeSrc":"35944:3:88","nodeType":"YulIdentifier","src":"35944:3:88"},"nativeSrc":"35944:32:88","nodeType":"YulFunctionCall","src":"35944:32:88"}],"functionName":{"name":"mstore","nativeSrc":"35917:6:88","nodeType":"YulIdentifier","src":"35917:6:88"},"nativeSrc":"35917:60:88","nodeType":"YulFunctionCall","src":"35917:60:88"},"nativeSrc":"35917:60:88","nodeType":"YulExpressionStatement","src":"35917:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35997:9:88","nodeType":"YulIdentifier","src":"35997:9:88"},{"kind":"number","nativeSrc":"36008:2:88","nodeType":"YulLiteral","src":"36008:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35993:3:88","nodeType":"YulIdentifier","src":"35993:3:88"},"nativeSrc":"35993:18:88","nodeType":"YulFunctionCall","src":"35993:18:88"},{"name":"value2","nativeSrc":"36013:6:88","nodeType":"YulIdentifier","src":"36013:6:88"}],"functionName":{"name":"mstore","nativeSrc":"35986:6:88","nodeType":"YulIdentifier","src":"35986:6:88"},"nativeSrc":"35986:34:88","nodeType":"YulFunctionCall","src":"35986:34:88"},"nativeSrc":"35986:34:88","nodeType":"YulExpressionStatement","src":"35986:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36040:9:88","nodeType":"YulIdentifier","src":"36040:9:88"},{"kind":"number","nativeSrc":"36051:2:88","nodeType":"YulLiteral","src":"36051:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36036:3:88","nodeType":"YulIdentifier","src":"36036:3:88"},"nativeSrc":"36036:18:88","nodeType":"YulFunctionCall","src":"36036:18:88"},{"name":"value3","nativeSrc":"36056:6:88","nodeType":"YulIdentifier","src":"36056:6:88"}],"functionName":{"name":"mstore","nativeSrc":"36029:6:88","nodeType":"YulIdentifier","src":"36029:6:88"},"nativeSrc":"36029:34:88","nodeType":"YulFunctionCall","src":"36029:34:88"},"nativeSrc":"36029:34:88","nodeType":"YulExpressionStatement","src":"36029:34:88"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"35626:443:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35756:9:88","nodeType":"YulTypedName","src":"35756:9:88","type":""},{"name":"value3","nativeSrc":"35767:6:88","nodeType":"YulTypedName","src":"35767:6:88","type":""},{"name":"value2","nativeSrc":"35775:6:88","nodeType":"YulTypedName","src":"35775:6:88","type":""},{"name":"value1","nativeSrc":"35783:6:88","nodeType":"YulTypedName","src":"35783:6:88","type":""},{"name":"value0","nativeSrc":"35791:6:88","nodeType":"YulTypedName","src":"35791:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35802:4:88","nodeType":"YulTypedName","src":"35802:4:88","type":""}],"src":"35626:443:88"},{"body":{"nativeSrc":"36154:169:88","nodeType":"YulBlock","src":"36154:169:88","statements":[{"body":{"nativeSrc":"36200:16:88","nodeType":"YulBlock","src":"36200:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36209:1:88","nodeType":"YulLiteral","src":"36209:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"36212:1:88","nodeType":"YulLiteral","src":"36212:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"36202:6:88","nodeType":"YulIdentifier","src":"36202:6:88"},"nativeSrc":"36202:12:88","nodeType":"YulFunctionCall","src":"36202:12:88"},"nativeSrc":"36202:12:88","nodeType":"YulExpressionStatement","src":"36202:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"36175:7:88","nodeType":"YulIdentifier","src":"36175:7:88"},{"name":"headStart","nativeSrc":"36184:9:88","nodeType":"YulIdentifier","src":"36184:9:88"}],"functionName":{"name":"sub","nativeSrc":"36171:3:88","nodeType":"YulIdentifier","src":"36171:3:88"},"nativeSrc":"36171:23:88","nodeType":"YulFunctionCall","src":"36171:23:88"},{"kind":"number","nativeSrc":"36196:2:88","nodeType":"YulLiteral","src":"36196:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"36167:3:88","nodeType":"YulIdentifier","src":"36167:3:88"},"nativeSrc":"36167:32:88","nodeType":"YulFunctionCall","src":"36167:32:88"},"nativeSrc":"36164:52:88","nodeType":"YulIf","src":"36164:52:88"},{"nativeSrc":"36225:29:88","nodeType":"YulVariableDeclaration","src":"36225:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36244:9:88","nodeType":"YulIdentifier","src":"36244:9:88"}],"functionName":{"name":"mload","nativeSrc":"36238:5:88","nodeType":"YulIdentifier","src":"36238:5:88"},"nativeSrc":"36238:16:88","nodeType":"YulFunctionCall","src":"36238:16:88"},"variables":[{"name":"value","nativeSrc":"36229:5:88","nodeType":"YulTypedName","src":"36229:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"36287:5:88","nodeType":"YulIdentifier","src":"36287:5:88"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"36263:23:88","nodeType":"YulIdentifier","src":"36263:23:88"},"nativeSrc":"36263:30:88","nodeType":"YulFunctionCall","src":"36263:30:88"},"nativeSrc":"36263:30:88","nodeType":"YulExpressionStatement","src":"36263:30:88"},{"nativeSrc":"36302:15:88","nodeType":"YulAssignment","src":"36302:15:88","value":{"name":"value","nativeSrc":"36312:5:88","nodeType":"YulIdentifier","src":"36312:5:88"},"variableNames":[{"name":"value0","nativeSrc":"36302:6:88","nodeType":"YulIdentifier","src":"36302:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"36074:249:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36120:9:88","nodeType":"YulTypedName","src":"36120:9:88","type":""},{"name":"dataEnd","nativeSrc":"36131:7:88","nodeType":"YulTypedName","src":"36131:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"36143:6:88","nodeType":"YulTypedName","src":"36143:6:88","type":""}],"src":"36074:249:88"},{"body":{"nativeSrc":"36502:174:88","nodeType":"YulBlock","src":"36502:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36519:9:88","nodeType":"YulIdentifier","src":"36519:9:88"},{"kind":"number","nativeSrc":"36530:2:88","nodeType":"YulLiteral","src":"36530:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36512:6:88","nodeType":"YulIdentifier","src":"36512:6:88"},"nativeSrc":"36512:21:88","nodeType":"YulFunctionCall","src":"36512:21:88"},"nativeSrc":"36512:21:88","nodeType":"YulExpressionStatement","src":"36512:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36553:9:88","nodeType":"YulIdentifier","src":"36553:9:88"},{"kind":"number","nativeSrc":"36564:2:88","nodeType":"YulLiteral","src":"36564:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36549:3:88","nodeType":"YulIdentifier","src":"36549:3:88"},"nativeSrc":"36549:18:88","nodeType":"YulFunctionCall","src":"36549:18:88"},{"kind":"number","nativeSrc":"36569:2:88","nodeType":"YulLiteral","src":"36569:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"36542:6:88","nodeType":"YulIdentifier","src":"36542:6:88"},"nativeSrc":"36542:30:88","nodeType":"YulFunctionCall","src":"36542:30:88"},"nativeSrc":"36542:30:88","nodeType":"YulExpressionStatement","src":"36542:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36592:9:88","nodeType":"YulIdentifier","src":"36592:9:88"},{"kind":"number","nativeSrc":"36603:2:88","nodeType":"YulLiteral","src":"36603:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36588:3:88","nodeType":"YulIdentifier","src":"36588:3:88"},"nativeSrc":"36588:18:88","nodeType":"YulFunctionCall","src":"36588:18:88"},{"hexValue":"43616e277420706179206578706972656420706f6c696379","kind":"string","nativeSrc":"36608:26:88","nodeType":"YulLiteral","src":"36608:26:88","type":"","value":"Can't pay expired policy"}],"functionName":{"name":"mstore","nativeSrc":"36581:6:88","nodeType":"YulIdentifier","src":"36581:6:88"},"nativeSrc":"36581:54:88","nodeType":"YulFunctionCall","src":"36581:54:88"},"nativeSrc":"36581:54:88","nodeType":"YulExpressionStatement","src":"36581:54:88"},{"nativeSrc":"36644:26:88","nodeType":"YulAssignment","src":"36644:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36656:9:88","nodeType":"YulIdentifier","src":"36656:9:88"},{"kind":"number","nativeSrc":"36667:2:88","nodeType":"YulLiteral","src":"36667:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36652:3:88","nodeType":"YulIdentifier","src":"36652:3:88"},"nativeSrc":"36652:18:88","nodeType":"YulFunctionCall","src":"36652:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36644:4:88","nodeType":"YulIdentifier","src":"36644:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8936f923c8d57cefbc1d85a8336fe08180318e8f5ff0798ebb9c587ef446aad2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36328:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36479:9:88","nodeType":"YulTypedName","src":"36479:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36493:4:88","nodeType":"YulTypedName","src":"36493:4:88","type":""}],"src":"36328:348:88"},{"body":{"nativeSrc":"36855:172:88","nodeType":"YulBlock","src":"36855:172:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36872:9:88","nodeType":"YulIdentifier","src":"36872:9:88"},{"kind":"number","nativeSrc":"36883:2:88","nodeType":"YulLiteral","src":"36883:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36865:6:88","nodeType":"YulIdentifier","src":"36865:6:88"},"nativeSrc":"36865:21:88","nodeType":"YulFunctionCall","src":"36865:21:88"},"nativeSrc":"36865:21:88","nodeType":"YulExpressionStatement","src":"36865:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36906:9:88","nodeType":"YulIdentifier","src":"36906:9:88"},{"kind":"number","nativeSrc":"36917:2:88","nodeType":"YulLiteral","src":"36917:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36902:3:88","nodeType":"YulIdentifier","src":"36902:3:88"},"nativeSrc":"36902:18:88","nodeType":"YulFunctionCall","src":"36902:18:88"},{"kind":"number","nativeSrc":"36922:2:88","nodeType":"YulLiteral","src":"36922:2:88","type":"","value":"22"}],"functionName":{"name":"mstore","nativeSrc":"36895:6:88","nodeType":"YulIdentifier","src":"36895:6:88"},"nativeSrc":"36895:30:88","nodeType":"YulFunctionCall","src":"36895:30:88"},"nativeSrc":"36895:30:88","nodeType":"YulExpressionStatement","src":"36895:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36945:9:88","nodeType":"YulIdentifier","src":"36945:9:88"},{"kind":"number","nativeSrc":"36956:2:88","nodeType":"YulLiteral","src":"36956:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36941:3:88","nodeType":"YulIdentifier","src":"36941:3:88"},"nativeSrc":"36941:18:88","nodeType":"YulFunctionCall","src":"36941:18:88"},{"hexValue":"7061796f7574203e20706f6c6963792e7061796f7574","kind":"string","nativeSrc":"36961:24:88","nodeType":"YulLiteral","src":"36961:24:88","type":"","value":"payout > policy.payout"}],"functionName":{"name":"mstore","nativeSrc":"36934:6:88","nodeType":"YulIdentifier","src":"36934:6:88"},"nativeSrc":"36934:52:88","nodeType":"YulFunctionCall","src":"36934:52:88"},"nativeSrc":"36934:52:88","nodeType":"YulExpressionStatement","src":"36934:52:88"},{"nativeSrc":"36995:26:88","nodeType":"YulAssignment","src":"36995:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37007:9:88","nodeType":"YulIdentifier","src":"37007:9:88"},{"kind":"number","nativeSrc":"37018:2:88","nodeType":"YulLiteral","src":"37018:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37003:3:88","nodeType":"YulIdentifier","src":"37003:3:88"},"nativeSrc":"37003:18:88","nodeType":"YulFunctionCall","src":"37003:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36995:4:88","nodeType":"YulIdentifier","src":"36995:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b59f45c7a76e3f8ea29ffa631ac18db16134d43739485ba56421b066418784a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36681:346:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36832:9:88","nodeType":"YulTypedName","src":"36832:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36846:4:88","nodeType":"YulTypedName","src":"36846:4:88","type":""}],"src":"36681:346:88"},{"body":{"nativeSrc":"37247:212:88","nodeType":"YulBlock","src":"37247:212:88","statements":[{"nativeSrc":"37257:27:88","nodeType":"YulAssignment","src":"37257:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37269:9:88","nodeType":"YulIdentifier","src":"37269:9:88"},{"kind":"number","nativeSrc":"37280:3:88","nodeType":"YulLiteral","src":"37280:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"37265:3:88","nodeType":"YulIdentifier","src":"37265:3:88"},"nativeSrc":"37265:19:88","nodeType":"YulFunctionCall","src":"37265:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37257:4:88","nodeType":"YulIdentifier","src":"37257:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37300:9:88","nodeType":"YulIdentifier","src":"37300:9:88"},{"arguments":[{"name":"value0","nativeSrc":"37315:6:88","nodeType":"YulIdentifier","src":"37315:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37331:3:88","nodeType":"YulLiteral","src":"37331:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"37336:1:88","nodeType":"YulLiteral","src":"37336:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"37327:3:88","nodeType":"YulIdentifier","src":"37327:3:88"},"nativeSrc":"37327:11:88","nodeType":"YulFunctionCall","src":"37327:11:88"},{"kind":"number","nativeSrc":"37340:1:88","nodeType":"YulLiteral","src":"37340:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"37323:3:88","nodeType":"YulIdentifier","src":"37323:3:88"},"nativeSrc":"37323:19:88","nodeType":"YulFunctionCall","src":"37323:19:88"}],"functionName":{"name":"and","nativeSrc":"37311:3:88","nodeType":"YulIdentifier","src":"37311:3:88"},"nativeSrc":"37311:32:88","nodeType":"YulFunctionCall","src":"37311:32:88"}],"functionName":{"name":"mstore","nativeSrc":"37293:6:88","nodeType":"YulIdentifier","src":"37293:6:88"},"nativeSrc":"37293:51:88","nodeType":"YulFunctionCall","src":"37293:51:88"},"nativeSrc":"37293:51:88","nodeType":"YulExpressionStatement","src":"37293:51:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"37382:6:88","nodeType":"YulIdentifier","src":"37382:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"37394:9:88","nodeType":"YulIdentifier","src":"37394:9:88"},{"kind":"number","nativeSrc":"37405:2:88","nodeType":"YulLiteral","src":"37405:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37390:3:88","nodeType":"YulIdentifier","src":"37390:3:88"},"nativeSrc":"37390:18:88","nodeType":"YulFunctionCall","src":"37390:18:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"37353:28:88","nodeType":"YulIdentifier","src":"37353:28:88"},"nativeSrc":"37353:56:88","nodeType":"YulFunctionCall","src":"37353:56:88"},"nativeSrc":"37353:56:88","nodeType":"YulExpressionStatement","src":"37353:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37429:9:88","nodeType":"YulIdentifier","src":"37429:9:88"},{"kind":"number","nativeSrc":"37440:3:88","nodeType":"YulLiteral","src":"37440:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"37425:3:88","nodeType":"YulIdentifier","src":"37425:3:88"},"nativeSrc":"37425:19:88","nodeType":"YulFunctionCall","src":"37425:19:88"},{"name":"value2","nativeSrc":"37446:6:88","nodeType":"YulIdentifier","src":"37446:6:88"}],"functionName":{"name":"mstore","nativeSrc":"37418:6:88","nodeType":"YulIdentifier","src":"37418:6:88"},"nativeSrc":"37418:35:88","nodeType":"YulFunctionCall","src":"37418:35:88"},"nativeSrc":"37418:35:88","nodeType":"YulExpressionStatement","src":"37418:35:88"}]},"name":"abi_encode_tuple_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__to_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"37032:427:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37200:9:88","nodeType":"YulTypedName","src":"37200:9:88","type":""},{"name":"value2","nativeSrc":"37211:6:88","nodeType":"YulTypedName","src":"37211:6:88","type":""},{"name":"value1","nativeSrc":"37219:6:88","nodeType":"YulTypedName","src":"37219:6:88","type":""},{"name":"value0","nativeSrc":"37227:6:88","nodeType":"YulTypedName","src":"37227:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37238:4:88","nodeType":"YulTypedName","src":"37238:4:88","type":""}],"src":"37032:427:88"},{"body":{"nativeSrc":"37638:175:88","nodeType":"YulBlock","src":"37638:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37655:9:88","nodeType":"YulIdentifier","src":"37655:9:88"},{"kind":"number","nativeSrc":"37666:2:88","nodeType":"YulLiteral","src":"37666:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37648:6:88","nodeType":"YulIdentifier","src":"37648:6:88"},"nativeSrc":"37648:21:88","nodeType":"YulFunctionCall","src":"37648:21:88"},"nativeSrc":"37648:21:88","nodeType":"YulExpressionStatement","src":"37648:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37689:9:88","nodeType":"YulIdentifier","src":"37689:9:88"},{"kind":"number","nativeSrc":"37700:2:88","nodeType":"YulLiteral","src":"37700:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37685:3:88","nodeType":"YulIdentifier","src":"37685:3:88"},"nativeSrc":"37685:18:88","nodeType":"YulFunctionCall","src":"37685:18:88"},{"kind":"number","nativeSrc":"37705:2:88","nodeType":"YulLiteral","src":"37705:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"37678:6:88","nodeType":"YulIdentifier","src":"37678:6:88"},"nativeSrc":"37678:30:88","nodeType":"YulFunctionCall","src":"37678:30:88"},"nativeSrc":"37678:30:88","nodeType":"YulExpressionStatement","src":"37678:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37728:9:88","nodeType":"YulIdentifier","src":"37728:9:88"},{"kind":"number","nativeSrc":"37739:2:88","nodeType":"YulLiteral","src":"37739:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37724:3:88","nodeType":"YulIdentifier","src":"37724:3:88"},"nativeSrc":"37724:18:88","nodeType":"YulFunctionCall","src":"37724:18:88"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nativeSrc":"37744:27:88","nodeType":"YulLiteral","src":"37744:27:88","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nativeSrc":"37717:6:88","nodeType":"YulIdentifier","src":"37717:6:88"},"nativeSrc":"37717:55:88","nodeType":"YulFunctionCall","src":"37717:55:88"},"nativeSrc":"37717:55:88","nodeType":"YulExpressionStatement","src":"37717:55:88"},{"nativeSrc":"37781:26:88","nodeType":"YulAssignment","src":"37781:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37793:9:88","nodeType":"YulIdentifier","src":"37793:9:88"},{"kind":"number","nativeSrc":"37804:2:88","nodeType":"YulLiteral","src":"37804:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37789:3:88","nodeType":"YulIdentifier","src":"37789:3:88"},"nativeSrc":"37789:18:88","nodeType":"YulFunctionCall","src":"37789:18:88"},"variableNames":[{"name":"tail","nativeSrc":"37781:4:88","nodeType":"YulIdentifier","src":"37781:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37464:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37615:9:88","nodeType":"YulTypedName","src":"37615:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37629:4:88","nodeType":"YulTypedName","src":"37629:4:88","type":""}],"src":"37464:349:88"},{"body":{"nativeSrc":"37850:95:88","nodeType":"YulBlock","src":"37850:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37867:1:88","nodeType":"YulLiteral","src":"37867:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"37874:3:88","nodeType":"YulLiteral","src":"37874:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"37879:10:88","nodeType":"YulLiteral","src":"37879:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"37870:3:88","nodeType":"YulIdentifier","src":"37870:3:88"},"nativeSrc":"37870:20:88","nodeType":"YulFunctionCall","src":"37870:20:88"}],"functionName":{"name":"mstore","nativeSrc":"37860:6:88","nodeType":"YulIdentifier","src":"37860:6:88"},"nativeSrc":"37860:31:88","nodeType":"YulFunctionCall","src":"37860:31:88"},"nativeSrc":"37860:31:88","nodeType":"YulExpressionStatement","src":"37860:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37907:1:88","nodeType":"YulLiteral","src":"37907:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"37910:4:88","nodeType":"YulLiteral","src":"37910:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"37900:6:88","nodeType":"YulIdentifier","src":"37900:6:88"},"nativeSrc":"37900:15:88","nodeType":"YulFunctionCall","src":"37900:15:88"},"nativeSrc":"37900:15:88","nodeType":"YulExpressionStatement","src":"37900:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37931:1:88","nodeType":"YulLiteral","src":"37931:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"37934:4:88","nodeType":"YulLiteral","src":"37934:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"37924:6:88","nodeType":"YulIdentifier","src":"37924:6:88"},"nativeSrc":"37924:15:88","nodeType":"YulFunctionCall","src":"37924:15:88"},"nativeSrc":"37924:15:88","nodeType":"YulExpressionStatement","src":"37924:15:88"}]},"name":"panic_error_0x12","nativeSrc":"37818:127:88","nodeType":"YulFunctionDefinition","src":"37818:127:88"},{"body":{"nativeSrc":"38124:235:88","nodeType":"YulBlock","src":"38124:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38141:9:88","nodeType":"YulIdentifier","src":"38141:9:88"},{"kind":"number","nativeSrc":"38152:2:88","nodeType":"YulLiteral","src":"38152:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38134:6:88","nodeType":"YulIdentifier","src":"38134:6:88"},"nativeSrc":"38134:21:88","nodeType":"YulFunctionCall","src":"38134:21:88"},"nativeSrc":"38134:21:88","nodeType":"YulExpressionStatement","src":"38134:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38175:9:88","nodeType":"YulIdentifier","src":"38175:9:88"},{"kind":"number","nativeSrc":"38186:2:88","nodeType":"YulLiteral","src":"38186:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38171:3:88","nodeType":"YulIdentifier","src":"38171:3:88"},"nativeSrc":"38171:18:88","nodeType":"YulFunctionCall","src":"38171:18:88"},{"kind":"number","nativeSrc":"38191:2:88","nodeType":"YulLiteral","src":"38191:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"38164:6:88","nodeType":"YulIdentifier","src":"38164:6:88"},"nativeSrc":"38164:30:88","nodeType":"YulFunctionCall","src":"38164:30:88"},"nativeSrc":"38164:30:88","nodeType":"YulExpressionStatement","src":"38164:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38214:9:88","nodeType":"YulIdentifier","src":"38214:9:88"},{"kind":"number","nativeSrc":"38225:2:88","nodeType":"YulLiteral","src":"38225:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38210:3:88","nodeType":"YulIdentifier","src":"38210:3:88"},"nativeSrc":"38210:18:88","nodeType":"YulFunctionCall","src":"38210:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"38230:34:88","nodeType":"YulLiteral","src":"38230:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"38203:6:88","nodeType":"YulIdentifier","src":"38203:6:88"},"nativeSrc":"38203:62:88","nodeType":"YulFunctionCall","src":"38203:62:88"},"nativeSrc":"38203:62:88","nodeType":"YulExpressionStatement","src":"38203:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38285:9:88","nodeType":"YulIdentifier","src":"38285:9:88"},{"kind":"number","nativeSrc":"38296:2:88","nodeType":"YulLiteral","src":"38296:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38281:3:88","nodeType":"YulIdentifier","src":"38281:3:88"},"nativeSrc":"38281:18:88","nodeType":"YulFunctionCall","src":"38281:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"38301:15:88","nodeType":"YulLiteral","src":"38301:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"38274:6:88","nodeType":"YulIdentifier","src":"38274:6:88"},"nativeSrc":"38274:43:88","nodeType":"YulFunctionCall","src":"38274:43:88"},"nativeSrc":"38274:43:88","nodeType":"YulExpressionStatement","src":"38274:43:88"},{"nativeSrc":"38326:27:88","nodeType":"YulAssignment","src":"38326:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38338:9:88","nodeType":"YulIdentifier","src":"38338:9:88"},{"kind":"number","nativeSrc":"38349:3:88","nodeType":"YulLiteral","src":"38349:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38334:3:88","nodeType":"YulIdentifier","src":"38334:3:88"},"nativeSrc":"38334:19:88","nodeType":"YulFunctionCall","src":"38334:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38326:4:88","nodeType":"YulIdentifier","src":"38326:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37950:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38101:9:88","nodeType":"YulTypedName","src":"38101:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38115:4:88","nodeType":"YulTypedName","src":"38115:4:88","type":""}],"src":"37950:409:88"},{"body":{"nativeSrc":"38538:182:88","nodeType":"YulBlock","src":"38538:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38555:9:88","nodeType":"YulIdentifier","src":"38555:9:88"},{"kind":"number","nativeSrc":"38566:2:88","nodeType":"YulLiteral","src":"38566:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38548:6:88","nodeType":"YulIdentifier","src":"38548:6:88"},"nativeSrc":"38548:21:88","nodeType":"YulFunctionCall","src":"38548:21:88"},"nativeSrc":"38548:21:88","nodeType":"YulExpressionStatement","src":"38548:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38589:9:88","nodeType":"YulIdentifier","src":"38589:9:88"},{"kind":"number","nativeSrc":"38600:2:88","nodeType":"YulLiteral","src":"38600:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38585:3:88","nodeType":"YulIdentifier","src":"38585:3:88"},"nativeSrc":"38585:18:88","nodeType":"YulFunctionCall","src":"38585:18:88"},{"kind":"number","nativeSrc":"38605:2:88","nodeType":"YulLiteral","src":"38605:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38578:6:88","nodeType":"YulIdentifier","src":"38578:6:88"},"nativeSrc":"38578:30:88","nodeType":"YulFunctionCall","src":"38578:30:88"},"nativeSrc":"38578:30:88","nodeType":"YulExpressionStatement","src":"38578:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38628:9:88","nodeType":"YulIdentifier","src":"38628:9:88"},{"kind":"number","nativeSrc":"38639:2:88","nodeType":"YulLiteral","src":"38639:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38624:3:88","nodeType":"YulIdentifier","src":"38624:3:88"},"nativeSrc":"38624:18:88","nodeType":"YulFunctionCall","src":"38624:18:88"},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"38644:34:88","nodeType":"YulLiteral","src":"38644:34:88","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"38617:6:88","nodeType":"YulIdentifier","src":"38617:6:88"},"nativeSrc":"38617:62:88","nodeType":"YulFunctionCall","src":"38617:62:88"},"nativeSrc":"38617:62:88","nodeType":"YulExpressionStatement","src":"38617:62:88"},{"nativeSrc":"38688:26:88","nodeType":"YulAssignment","src":"38688:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38700:9:88","nodeType":"YulIdentifier","src":"38700:9:88"},{"kind":"number","nativeSrc":"38711:2:88","nodeType":"YulLiteral","src":"38711:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38696:3:88","nodeType":"YulIdentifier","src":"38696:3:88"},"nativeSrc":"38696:18:88","nodeType":"YulFunctionCall","src":"38696:18:88"},"variableNames":[{"name":"tail","nativeSrc":"38688:4:88","nodeType":"YulIdentifier","src":"38688:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38364:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38515:9:88","nodeType":"YulTypedName","src":"38515:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38529:4:88","nodeType":"YulTypedName","src":"38529:4:88","type":""}],"src":"38364:356:88"},{"body":{"nativeSrc":"38899:178:88","nodeType":"YulBlock","src":"38899:178:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38916:9:88","nodeType":"YulIdentifier","src":"38916:9:88"},{"kind":"number","nativeSrc":"38927:2:88","nodeType":"YulLiteral","src":"38927:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38909:6:88","nodeType":"YulIdentifier","src":"38909:6:88"},"nativeSrc":"38909:21:88","nodeType":"YulFunctionCall","src":"38909:21:88"},"nativeSrc":"38909:21:88","nodeType":"YulExpressionStatement","src":"38909:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38950:9:88","nodeType":"YulIdentifier","src":"38950:9:88"},{"kind":"number","nativeSrc":"38961:2:88","nodeType":"YulLiteral","src":"38961:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38946:3:88","nodeType":"YulIdentifier","src":"38946:3:88"},"nativeSrc":"38946:18:88","nodeType":"YulFunctionCall","src":"38946:18:88"},{"kind":"number","nativeSrc":"38966:2:88","nodeType":"YulLiteral","src":"38966:2:88","type":"","value":"28"}],"functionName":{"name":"mstore","nativeSrc":"38939:6:88","nodeType":"YulIdentifier","src":"38939:6:88"},"nativeSrc":"38939:30:88","nodeType":"YulFunctionCall","src":"38939:30:88"},"nativeSrc":"38939:30:88","nodeType":"YulExpressionStatement","src":"38939:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38989:9:88","nodeType":"YulIdentifier","src":"38989:9:88"},{"kind":"number","nativeSrc":"39000:2:88","nodeType":"YulLiteral","src":"39000:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38985:3:88","nodeType":"YulIdentifier","src":"38985:3:88"},"nativeSrc":"38985:18:88","nodeType":"YulFunctionCall","src":"38985:18:88"},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","kind":"string","nativeSrc":"39005:30:88","nodeType":"YulLiteral","src":"39005:30:88","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nativeSrc":"38978:6:88","nodeType":"YulIdentifier","src":"38978:6:88"},"nativeSrc":"38978:58:88","nodeType":"YulFunctionCall","src":"38978:58:88"},"nativeSrc":"38978:58:88","nodeType":"YulExpressionStatement","src":"38978:58:88"},{"nativeSrc":"39045:26:88","nodeType":"YulAssignment","src":"39045:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39057:9:88","nodeType":"YulIdentifier","src":"39057:9:88"},{"kind":"number","nativeSrc":"39068:2:88","nodeType":"YulLiteral","src":"39068:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39053:3:88","nodeType":"YulIdentifier","src":"39053:3:88"},"nativeSrc":"39053:18:88","nodeType":"YulFunctionCall","src":"39053:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39045:4:88","nodeType":"YulIdentifier","src":"39045:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38725:352:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38876:9:88","nodeType":"YulTypedName","src":"38876:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38890:4:88","nodeType":"YulTypedName","src":"38890:4:88","type":""}],"src":"38725:352:88"},{"body":{"nativeSrc":"39285:293:88","nodeType":"YulBlock","src":"39285:293:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39302:9:88","nodeType":"YulIdentifier","src":"39302:9:88"},{"arguments":[{"name":"value0","nativeSrc":"39317:6:88","nodeType":"YulIdentifier","src":"39317:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39333:3:88","nodeType":"YulLiteral","src":"39333:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39338:1:88","nodeType":"YulLiteral","src":"39338:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39329:3:88","nodeType":"YulIdentifier","src":"39329:3:88"},"nativeSrc":"39329:11:88","nodeType":"YulFunctionCall","src":"39329:11:88"},{"kind":"number","nativeSrc":"39342:1:88","nodeType":"YulLiteral","src":"39342:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39325:3:88","nodeType":"YulIdentifier","src":"39325:3:88"},"nativeSrc":"39325:19:88","nodeType":"YulFunctionCall","src":"39325:19:88"}],"functionName":{"name":"and","nativeSrc":"39313:3:88","nodeType":"YulIdentifier","src":"39313:3:88"},"nativeSrc":"39313:32:88","nodeType":"YulFunctionCall","src":"39313:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39295:6:88","nodeType":"YulIdentifier","src":"39295:6:88"},"nativeSrc":"39295:51:88","nodeType":"YulFunctionCall","src":"39295:51:88"},"nativeSrc":"39295:51:88","nodeType":"YulExpressionStatement","src":"39295:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39366:9:88","nodeType":"YulIdentifier","src":"39366:9:88"},{"kind":"number","nativeSrc":"39377:2:88","nodeType":"YulLiteral","src":"39377:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39362:3:88","nodeType":"YulIdentifier","src":"39362:3:88"},"nativeSrc":"39362:18:88","nodeType":"YulFunctionCall","src":"39362:18:88"},{"arguments":[{"name":"value1","nativeSrc":"39386:6:88","nodeType":"YulIdentifier","src":"39386:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39402:3:88","nodeType":"YulLiteral","src":"39402:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39407:1:88","nodeType":"YulLiteral","src":"39407:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39398:3:88","nodeType":"YulIdentifier","src":"39398:3:88"},"nativeSrc":"39398:11:88","nodeType":"YulFunctionCall","src":"39398:11:88"},{"kind":"number","nativeSrc":"39411:1:88","nodeType":"YulLiteral","src":"39411:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39394:3:88","nodeType":"YulIdentifier","src":"39394:3:88"},"nativeSrc":"39394:19:88","nodeType":"YulFunctionCall","src":"39394:19:88"}],"functionName":{"name":"and","nativeSrc":"39382:3:88","nodeType":"YulIdentifier","src":"39382:3:88"},"nativeSrc":"39382:32:88","nodeType":"YulFunctionCall","src":"39382:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39355:6:88","nodeType":"YulIdentifier","src":"39355:6:88"},"nativeSrc":"39355:60:88","nodeType":"YulFunctionCall","src":"39355:60:88"},"nativeSrc":"39355:60:88","nodeType":"YulExpressionStatement","src":"39355:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39435:9:88","nodeType":"YulIdentifier","src":"39435:9:88"},{"kind":"number","nativeSrc":"39446:2:88","nodeType":"YulLiteral","src":"39446:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39431:3:88","nodeType":"YulIdentifier","src":"39431:3:88"},"nativeSrc":"39431:18:88","nodeType":"YulFunctionCall","src":"39431:18:88"},{"name":"value2","nativeSrc":"39451:6:88","nodeType":"YulIdentifier","src":"39451:6:88"}],"functionName":{"name":"mstore","nativeSrc":"39424:6:88","nodeType":"YulIdentifier","src":"39424:6:88"},"nativeSrc":"39424:34:88","nodeType":"YulFunctionCall","src":"39424:34:88"},"nativeSrc":"39424:34:88","nodeType":"YulExpressionStatement","src":"39424:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39478:9:88","nodeType":"YulIdentifier","src":"39478:9:88"},{"kind":"number","nativeSrc":"39489:2:88","nodeType":"YulLiteral","src":"39489:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39474:3:88","nodeType":"YulIdentifier","src":"39474:3:88"},"nativeSrc":"39474:18:88","nodeType":"YulFunctionCall","src":"39474:18:88"},{"kind":"number","nativeSrc":"39494:3:88","nodeType":"YulLiteral","src":"39494:3:88","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"39467:6:88","nodeType":"YulIdentifier","src":"39467:6:88"},"nativeSrc":"39467:31:88","nodeType":"YulFunctionCall","src":"39467:31:88"},"nativeSrc":"39467:31:88","nodeType":"YulExpressionStatement","src":"39467:31:88"},{"nativeSrc":"39507:65:88","nodeType":"YulAssignment","src":"39507:65:88","value":{"arguments":[{"name":"value3","nativeSrc":"39544:6:88","nodeType":"YulIdentifier","src":"39544:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"39556:9:88","nodeType":"YulIdentifier","src":"39556:9:88"},{"kind":"number","nativeSrc":"39567:3:88","nodeType":"YulLiteral","src":"39567:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39552:3:88","nodeType":"YulIdentifier","src":"39552:3:88"},"nativeSrc":"39552:19:88","nodeType":"YulFunctionCall","src":"39552:19:88"}],"functionName":{"name":"abi_encode_string_memory_ptr","nativeSrc":"39515:28:88","nodeType":"YulIdentifier","src":"39515:28:88"},"nativeSrc":"39515:57:88","nodeType":"YulFunctionCall","src":"39515:57:88"},"variableNames":[{"name":"tail","nativeSrc":"39507:4:88","nodeType":"YulIdentifier","src":"39507:4:88"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"39082:496:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39230:9:88","nodeType":"YulTypedName","src":"39230:9:88","type":""},{"name":"value3","nativeSrc":"39241:6:88","nodeType":"YulTypedName","src":"39241:6:88","type":""},{"name":"value2","nativeSrc":"39249:6:88","nodeType":"YulTypedName","src":"39249:6:88","type":""},{"name":"value1","nativeSrc":"39257:6:88","nodeType":"YulTypedName","src":"39257:6:88","type":""},{"name":"value0","nativeSrc":"39265:6:88","nodeType":"YulTypedName","src":"39265:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39276:4:88","nodeType":"YulTypedName","src":"39276:4:88","type":""}],"src":"39082:496:88"},{"body":{"nativeSrc":"39757:232:88","nodeType":"YulBlock","src":"39757:232:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39774:9:88","nodeType":"YulIdentifier","src":"39774:9:88"},{"kind":"number","nativeSrc":"39785:2:88","nodeType":"YulLiteral","src":"39785:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39767:6:88","nodeType":"YulIdentifier","src":"39767:6:88"},"nativeSrc":"39767:21:88","nodeType":"YulFunctionCall","src":"39767:21:88"},"nativeSrc":"39767:21:88","nodeType":"YulExpressionStatement","src":"39767:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39808:9:88","nodeType":"YulIdentifier","src":"39808:9:88"},{"kind":"number","nativeSrc":"39819:2:88","nodeType":"YulLiteral","src":"39819:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39804:3:88","nodeType":"YulIdentifier","src":"39804:3:88"},"nativeSrc":"39804:18:88","nodeType":"YulFunctionCall","src":"39804:18:88"},{"kind":"number","nativeSrc":"39824:2:88","nodeType":"YulLiteral","src":"39824:2:88","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"39797:6:88","nodeType":"YulIdentifier","src":"39797:6:88"},"nativeSrc":"39797:30:88","nodeType":"YulFunctionCall","src":"39797:30:88"},"nativeSrc":"39797:30:88","nodeType":"YulExpressionStatement","src":"39797:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39847:9:88","nodeType":"YulIdentifier","src":"39847:9:88"},{"kind":"number","nativeSrc":"39858:2:88","nodeType":"YulLiteral","src":"39858:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39843:3:88","nodeType":"YulIdentifier","src":"39843:3:88"},"nativeSrc":"39843:18:88","nodeType":"YulFunctionCall","src":"39843:18:88"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"39863:34:88","nodeType":"YulLiteral","src":"39863:34:88","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"39836:6:88","nodeType":"YulIdentifier","src":"39836:6:88"},"nativeSrc":"39836:62:88","nodeType":"YulFunctionCall","src":"39836:62:88"},"nativeSrc":"39836:62:88","nodeType":"YulExpressionStatement","src":"39836:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39918:9:88","nodeType":"YulIdentifier","src":"39918:9:88"},{"kind":"number","nativeSrc":"39929:2:88","nodeType":"YulLiteral","src":"39929:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39914:3:88","nodeType":"YulIdentifier","src":"39914:3:88"},"nativeSrc":"39914:18:88","nodeType":"YulFunctionCall","src":"39914:18:88"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"39934:12:88","nodeType":"YulLiteral","src":"39934:12:88","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"39907:6:88","nodeType":"YulIdentifier","src":"39907:6:88"},"nativeSrc":"39907:40:88","nodeType":"YulFunctionCall","src":"39907:40:88"},"nativeSrc":"39907:40:88","nodeType":"YulExpressionStatement","src":"39907:40:88"},{"nativeSrc":"39956:27:88","nodeType":"YulAssignment","src":"39956:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39968:9:88","nodeType":"YulIdentifier","src":"39968:9:88"},{"kind":"number","nativeSrc":"39979:3:88","nodeType":"YulLiteral","src":"39979:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39964:3:88","nodeType":"YulIdentifier","src":"39964:3:88"},"nativeSrc":"39964:19:88","nodeType":"YulFunctionCall","src":"39964:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39956:4:88","nodeType":"YulIdentifier","src":"39956:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39583:406:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39734:9:88","nodeType":"YulTypedName","src":"39734:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39748:4:88","nodeType":"YulTypedName","src":"39748:4:88","type":""}],"src":"39583:406:88"},{"body":{"nativeSrc":"40168:170:88","nodeType":"YulBlock","src":"40168:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40185:9:88","nodeType":"YulIdentifier","src":"40185:9:88"},{"kind":"number","nativeSrc":"40196:2:88","nodeType":"YulLiteral","src":"40196:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40178:6:88","nodeType":"YulIdentifier","src":"40178:6:88"},"nativeSrc":"40178:21:88","nodeType":"YulFunctionCall","src":"40178:21:88"},"nativeSrc":"40178:21:88","nodeType":"YulExpressionStatement","src":"40178:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40219:9:88","nodeType":"YulIdentifier","src":"40219:9:88"},{"kind":"number","nativeSrc":"40230:2:88","nodeType":"YulLiteral","src":"40230:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40215:3:88","nodeType":"YulIdentifier","src":"40215:3:88"},"nativeSrc":"40215:18:88","nodeType":"YulFunctionCall","src":"40215:18:88"},{"kind":"number","nativeSrc":"40235:2:88","nodeType":"YulLiteral","src":"40235:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"40208:6:88","nodeType":"YulIdentifier","src":"40208:6:88"},"nativeSrc":"40208:30:88","nodeType":"YulFunctionCall","src":"40208:30:88"},"nativeSrc":"40208:30:88","nodeType":"YulExpressionStatement","src":"40208:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40258:9:88","nodeType":"YulIdentifier","src":"40258:9:88"},{"kind":"number","nativeSrc":"40269:2:88","nodeType":"YulLiteral","src":"40269:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40254:3:88","nodeType":"YulIdentifier","src":"40254:3:88"},"nativeSrc":"40254:18:88","nodeType":"YulFunctionCall","src":"40254:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"40274:22:88","nodeType":"YulLiteral","src":"40274:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"40247:6:88","nodeType":"YulIdentifier","src":"40247:6:88"},"nativeSrc":"40247:50:88","nodeType":"YulFunctionCall","src":"40247:50:88"},"nativeSrc":"40247:50:88","nodeType":"YulExpressionStatement","src":"40247:50:88"},{"nativeSrc":"40306:26:88","nodeType":"YulAssignment","src":"40306:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40318:9:88","nodeType":"YulIdentifier","src":"40318:9:88"},{"kind":"number","nativeSrc":"40329:2:88","nodeType":"YulLiteral","src":"40329:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40314:3:88","nodeType":"YulIdentifier","src":"40314:3:88"},"nativeSrc":"40314:18:88","nodeType":"YulFunctionCall","src":"40314:18:88"},"variableNames":[{"name":"tail","nativeSrc":"40306:4:88","nodeType":"YulIdentifier","src":"40306:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39994:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40145:9:88","nodeType":"YulTypedName","src":"40145:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40159:4:88","nodeType":"YulTypedName","src":"40159:4:88","type":""}],"src":"39994:344:88"},{"body":{"nativeSrc":"40467:102:88","nodeType":"YulBlock","src":"40467:102:88","statements":[{"nativeSrc":"40477:26:88","nodeType":"YulAssignment","src":"40477:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40489:9:88","nodeType":"YulIdentifier","src":"40489:9:88"},{"kind":"number","nativeSrc":"40500:2:88","nodeType":"YulLiteral","src":"40500:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40485:3:88","nodeType":"YulIdentifier","src":"40485:3:88"},"nativeSrc":"40485:18:88","nodeType":"YulFunctionCall","src":"40485:18:88"},"variableNames":[{"name":"tail","nativeSrc":"40477:4:88","nodeType":"YulIdentifier","src":"40477:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40519:9:88","nodeType":"YulIdentifier","src":"40519:9:88"},{"arguments":[{"name":"value0","nativeSrc":"40534:6:88","nodeType":"YulIdentifier","src":"40534:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40550:3:88","nodeType":"YulLiteral","src":"40550:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"40555:1:88","nodeType":"YulLiteral","src":"40555:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"40546:3:88","nodeType":"YulIdentifier","src":"40546:3:88"},"nativeSrc":"40546:11:88","nodeType":"YulFunctionCall","src":"40546:11:88"},{"kind":"number","nativeSrc":"40559:1:88","nodeType":"YulLiteral","src":"40559:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"40542:3:88","nodeType":"YulIdentifier","src":"40542:3:88"},"nativeSrc":"40542:19:88","nodeType":"YulFunctionCall","src":"40542:19:88"}],"functionName":{"name":"and","nativeSrc":"40530:3:88","nodeType":"YulIdentifier","src":"40530:3:88"},"nativeSrc":"40530:32:88","nodeType":"YulFunctionCall","src":"40530:32:88"}],"functionName":{"name":"mstore","nativeSrc":"40512:6:88","nodeType":"YulIdentifier","src":"40512:6:88"},"nativeSrc":"40512:51:88","nodeType":"YulFunctionCall","src":"40512:51:88"},"nativeSrc":"40512:51:88","nodeType":"YulExpressionStatement","src":"40512:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyHolder_$23630__to_t_address__fromStack_reversed","nativeSrc":"40343:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40436:9:88","nodeType":"YulTypedName","src":"40436:9:88","type":""},{"name":"value0","nativeSrc":"40447:6:88","nodeType":"YulTypedName","src":"40447:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40458:4:88","nodeType":"YulTypedName","src":"40458:4:88","type":""}],"src":"40343:226:88"},{"body":{"nativeSrc":"40711:53:88","nodeType":"YulBlock","src":"40711:53:88","statements":[{"nativeSrc":"40721:37:88","nodeType":"YulAssignment","src":"40721:37:88","value":{"arguments":[{"name":"value0","nativeSrc":"40746:6:88","nodeType":"YulIdentifier","src":"40746:6:88"},{"name":"pos","nativeSrc":"40754:3:88","nodeType":"YulIdentifier","src":"40754:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"40728:17:88","nodeType":"YulIdentifier","src":"40728:17:88"},"nativeSrc":"40728:30:88","nodeType":"YulFunctionCall","src":"40728:30:88"},"variableNames":[{"name":"end","nativeSrc":"40721:3:88","nodeType":"YulIdentifier","src":"40721:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"40574:190:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"40687:3:88","nodeType":"YulTypedName","src":"40687:3:88","type":""},{"name":"value0","nativeSrc":"40692:6:88","nodeType":"YulTypedName","src":"40692:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"40703:3:88","nodeType":"YulTypedName","src":"40703:3:88","type":""}],"src":"40574:190:88"},{"body":{"nativeSrc":"40943:228:88","nodeType":"YulBlock","src":"40943:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40960:9:88","nodeType":"YulIdentifier","src":"40960:9:88"},{"kind":"number","nativeSrc":"40971:2:88","nodeType":"YulLiteral","src":"40971:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40953:6:88","nodeType":"YulIdentifier","src":"40953:6:88"},"nativeSrc":"40953:21:88","nodeType":"YulFunctionCall","src":"40953:21:88"},"nativeSrc":"40953:21:88","nodeType":"YulExpressionStatement","src":"40953:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40994:9:88","nodeType":"YulIdentifier","src":"40994:9:88"},{"kind":"number","nativeSrc":"41005:2:88","nodeType":"YulLiteral","src":"41005:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40990:3:88","nodeType":"YulIdentifier","src":"40990:3:88"},"nativeSrc":"40990:18:88","nodeType":"YulFunctionCall","src":"40990:18:88"},{"kind":"number","nativeSrc":"41010:2:88","nodeType":"YulLiteral","src":"41010:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"40983:6:88","nodeType":"YulIdentifier","src":"40983:6:88"},"nativeSrc":"40983:30:88","nodeType":"YulFunctionCall","src":"40983:30:88"},"nativeSrc":"40983:30:88","nodeType":"YulExpressionStatement","src":"40983:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41033:9:88","nodeType":"YulIdentifier","src":"41033:9:88"},{"kind":"number","nativeSrc":"41044:2:88","nodeType":"YulLiteral","src":"41044:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41029:3:88","nodeType":"YulIdentifier","src":"41029:3:88"},"nativeSrc":"41029:18:88","nodeType":"YulFunctionCall","src":"41029:18:88"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"41049:34:88","nodeType":"YulLiteral","src":"41049:34:88","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"41022:6:88","nodeType":"YulIdentifier","src":"41022:6:88"},"nativeSrc":"41022:62:88","nodeType":"YulFunctionCall","src":"41022:62:88"},"nativeSrc":"41022:62:88","nodeType":"YulExpressionStatement","src":"41022:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41104:9:88","nodeType":"YulIdentifier","src":"41104:9:88"},{"kind":"number","nativeSrc":"41115:2:88","nodeType":"YulLiteral","src":"41115:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41100:3:88","nodeType":"YulIdentifier","src":"41100:3:88"},"nativeSrc":"41100:18:88","nodeType":"YulFunctionCall","src":"41100:18:88"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"41120:8:88","nodeType":"YulLiteral","src":"41120:8:88","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"41093:6:88","nodeType":"YulIdentifier","src":"41093:6:88"},"nativeSrc":"41093:36:88","nodeType":"YulFunctionCall","src":"41093:36:88"},"nativeSrc":"41093:36:88","nodeType":"YulExpressionStatement","src":"41093:36:88"},{"nativeSrc":"41138:27:88","nodeType":"YulAssignment","src":"41138:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41150:9:88","nodeType":"YulIdentifier","src":"41150:9:88"},{"kind":"number","nativeSrc":"41161:3:88","nodeType":"YulLiteral","src":"41161:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41146:3:88","nodeType":"YulIdentifier","src":"41146:3:88"},"nativeSrc":"41146:19:88","nodeType":"YulFunctionCall","src":"41146:19:88"},"variableNames":[{"name":"tail","nativeSrc":"41138:4:88","nodeType":"YulIdentifier","src":"41138:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40769:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40920:9:88","nodeType":"YulTypedName","src":"40920:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40934:4:88","nodeType":"YulTypedName","src":"40934:4:88","type":""}],"src":"40769:402:88"},{"body":{"nativeSrc":"41350:179:88","nodeType":"YulBlock","src":"41350:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41367:9:88","nodeType":"YulIdentifier","src":"41367:9:88"},{"kind":"number","nativeSrc":"41378:2:88","nodeType":"YulLiteral","src":"41378:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41360:6:88","nodeType":"YulIdentifier","src":"41360:6:88"},"nativeSrc":"41360:21:88","nodeType":"YulFunctionCall","src":"41360:21:88"},"nativeSrc":"41360:21:88","nodeType":"YulExpressionStatement","src":"41360:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41401:9:88","nodeType":"YulIdentifier","src":"41401:9:88"},{"kind":"number","nativeSrc":"41412:2:88","nodeType":"YulLiteral","src":"41412:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41397:3:88","nodeType":"YulIdentifier","src":"41397:3:88"},"nativeSrc":"41397:18:88","nodeType":"YulFunctionCall","src":"41397:18:88"},{"kind":"number","nativeSrc":"41417:2:88","nodeType":"YulLiteral","src":"41417:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"41390:6:88","nodeType":"YulIdentifier","src":"41390:6:88"},"nativeSrc":"41390:30:88","nodeType":"YulFunctionCall","src":"41390:30:88"},"nativeSrc":"41390:30:88","nodeType":"YulExpressionStatement","src":"41390:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41440:9:88","nodeType":"YulIdentifier","src":"41440:9:88"},{"kind":"number","nativeSrc":"41451:2:88","nodeType":"YulLiteral","src":"41451:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41436:3:88","nodeType":"YulIdentifier","src":"41436:3:88"},"nativeSrc":"41436:18:88","nodeType":"YulFunctionCall","src":"41436:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"41456:31:88","nodeType":"YulLiteral","src":"41456:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"41429:6:88","nodeType":"YulIdentifier","src":"41429:6:88"},"nativeSrc":"41429:59:88","nodeType":"YulFunctionCall","src":"41429:59:88"},"nativeSrc":"41429:59:88","nodeType":"YulExpressionStatement","src":"41429:59:88"},{"nativeSrc":"41497:26:88","nodeType":"YulAssignment","src":"41497:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41509:9:88","nodeType":"YulIdentifier","src":"41509:9:88"},{"kind":"number","nativeSrc":"41520:2:88","nodeType":"YulLiteral","src":"41520:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41505:3:88","nodeType":"YulIdentifier","src":"41505:3:88"},"nativeSrc":"41505:18:88","nodeType":"YulFunctionCall","src":"41505:18:88"},"variableNames":[{"name":"tail","nativeSrc":"41497:4:88","nodeType":"YulIdentifier","src":"41497:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41176:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41327:9:88","nodeType":"YulTypedName","src":"41327:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41341:4:88","nodeType":"YulTypedName","src":"41341:4:88","type":""}],"src":"41176:353:88"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_string_memory_ptr(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x01c0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        let src := add(offset, 0x20)\n        let array_1 := 0\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array_1 := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function validator_assert_enum_ComponentStatus(value)\n    {\n        if iszero(lt(value, 4))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_enum$_ComponentStatus_$15530__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        validator_assert_enum_ComponentStatus(value0)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_PolicyData(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x01c0) { revert(0, 0) }\n        value := allocate_memory()\n        let value_1 := 0\n        value_1 := calldataload(headStart)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 96))\n        mstore(add(value, 96), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 128))\n        mstore(add(value, 128), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 160))\n        mstore(add(value, 160), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 192))\n        mstore(add(value, 192), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(headStart, 224))\n        mstore(add(value, 224), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(headStart, 256))\n        mstore(add(value, 256), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(headStart, 288))\n        mstore(add(value, 288), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(headStart, 320))\n        mstore(add(value, 320), value_11)\n        mstore(add(value, 352), abi_decode_contract_IRiskModule(add(headStart, 352)))\n        mstore(add(value, 384), abi_decode_uint40(add(headStart, 384)))\n        mstore(add(value, 416), abi_decode_uint40(add(headStart, 416)))\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 960) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        value1 := abi_decode_struct_PolicyData(add(headStart, 448), dataEnd)\n        let value := calldataload(add(headStart, 896))\n        validator_revert_address(value)\n        value2 := value\n        value3 := abi_decode_uint96(add(headStart, 928))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function validator_revert_enum_ComponentStatus(value)\n    {\n        if iszero(lt(value, 4)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentStatus_$15530(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_enum_ComponentStatus(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 544) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_address(value)\n        value1 := value\n        let value_1 := calldataload(add(headStart, 480))\n        validator_revert_address(value_1)\n        value2 := value_1\n        value3 := abi_decode_uint96(add(headStart, 512))\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 448) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPoolComponent_$23823t_enum$_ComponentKind_$15536(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_enum_ComponentStatus(value_1)\n        value1 := value_1\n    }\n    function abi_encode_contract_IAccessManager(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_array$_t_struct$_PolicyData_$14966_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, mul(length, 0x01c0)), 32), dataEnd) { revert(0, 0) }\n        value0 := add(_1, 32)\n        value1 := length\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_contract$_IRiskModule_$23983t_uint96(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_uint96(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_bool(value)\n        value1 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Old policy is expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0e87e56359fa2526540650e2139138b7e293eed59c4b4b2e8327e8e5ebcd0b33__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Both policies must have the same\")\n        mstore(add(headStart, 96), \" starting date\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d3b3746791a6b0b7dfd79946411ee9df69dc2115b94a363d0f83c50da62a2b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"New policy must be greater or eq\")\n        mstore(add(headStart, 96), \"ual than old policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_df9648054d8ca19cfbaa727dd26881c0c0ba1cb52a57f27d423acdca20e18d26__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Policy already exists\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IAccessManager(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 896)\n        abi_encode_struct_PolicyData(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 448)\n        abi_encode_struct_PolicyData(value0, headStart)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_enum$_ComponentKind_$15536_t_enum$_ComponentStatus_$15530__to_t_uint8_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        validator_assert_enum_ComponentStatus(value0)\n        mstore(headStart, value0)\n        validator_assert_enum_ComponentStatus(value1)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint40(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_9aafd5dcd30e979f8c3beee09b6304ef28299d42c2153a123cd764955010f881__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Policy not expired yet\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 448) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPoolComponent_$23823_t_enum$_ComponentKind_$15536__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        validator_assert_enum_ComponentStatus(value1)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_enum$_ComponentKind_$15536_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        validator_assert_enum_ComponentStatus(value0)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string(value1, abi_encode_string(value0, pos))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Policy not found\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Policy: hash cannot be 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_8936f923c8d57cefbc1d85a8336fe08180318e8f5ff0798ebb9c587ef446aad2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Can't pay expired policy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9b59f45c7a76e3f8ea29ffa631ac18db16134d43739485ba56421b066418784a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"payout > policy.payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__to_t_address_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 512)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        abi_encode_struct_PolicyData(value1, add(headStart, 32))\n        mstore(add(headStart, 480), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"ERC721: token already minted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string_memory_ptr(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_contract$_IPolicyHolder_$23630__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":3024},{"length":32,"start":3088},{"length":32,"start":5774},{"length":32,"start":5838},{"length":32,"start":5979}],"15517":[{"length":32,"start":1499},{"length":32,"start":5101},{"length":32,"start":6187},{"length":32,"start":6429},{"length":32,"start":6707},{"length":32,"start":6863},{"length":32,"start":8629},{"length":32,"start":10039},{"length":32,"start":11660},{"length":32,"start":12239},{"length":32,"start":13564},{"length":32,"start":13707}],"15521":[{"length":32,"start":1865},{"length":32,"start":4288},{"length":32,"start":4468},{"length":32,"start":4648},{"length":32,"start":5328},{"length":32,"start":5442},{"length":32,"start":5539},{"length":32,"start":7658},{"length":32,"start":7827},{"length":32,"start":7994},{"length":32,"start":8057},{"length":32,"start":8357}]},"linkReferences":{},"object":"608060405260043610610254575f3560e01c80636769a76f1161013f57806395d89b41116100b3578063e5a6b10f11610078578063e5a6b10f1461073b578063e985e9c51461076d578063f0f44260146107b5578063f3fef3a3146107d4578063f67b2bad146107f3578063ffa600e314610813575f5ffd5b806395d89b41146106ab578063a22cb465146106bf578063b88d4fde146106de578063c016f88a146106fd578063c87b56dd1461071c575f5ffd5b806371907f171161010457806371907f17146105cd578063792da09e146105ff5780637a702b3c1461062b57806382afd23b1461064a5780638456cb59146106785780638c916d461461068c575f5ffd5b80636769a76f146105325780636af6f1ef146105515780636b8734e7146105705780636f86c8971461058f57806370a08231146105ae575f5ffd5b80633f4ba83a116101d657806352d1902d1161019b57806352d1902d1461048c57806355f804b3146104a05780635c975abb146104bf5780635fcbf445146104d657806361d027b3146104f55780636352211e14610513575f5ffd5b80633f4ba83a146103f457806342842e0e1461040857806347e7ef24146104275780634a47a3e0146104465780634f1ef28614610479575f5ffd5b806323b872dd1161021c57806323b872dd1461032457806324ea54f41461034357806333d6157a146103715780633659cfe6146103b65780633ed7c1ae146103d5575f5ffd5b806301ffc9a71461025857806306fdde031461028c578063077f224a146102ad578063081812fc146102ce578063095ea7b314610305575b5f5ffd5b348015610263575f5ffd5b50610277610272366004614c32565b610832565b60405190151581526020015b60405180910390f35b348015610297575f5ffd5b506102a061085d565b6040516102839190614c7b565b3480156102b8575f5ffd5b506102cc6102c7366004614d70565b6108ed565b005b3480156102d9575f5ffd5b506102ed6102e8366004614de8565b610a5c565b6040516001600160a01b039091168152602001610283565b348015610310575f5ffd5b506102cc61031f366004614dff565b610a81565b34801561032f575f5ffd5b506102cc61033e366004614e29565b610b95565b34801561034e575f5ffd5b506103635f5160206159675f395f51905f5281565b604051908152602001610283565b34801561037c575f5ffd5b506103a961038b366004614e67565b6001600160a01b03165f90815261012e602052604090205460ff1690565b6040516102839190614eb2565b3480156103c1575f5ffd5b506102cc6103d0366004614e67565b610bc6565b3480156103e0575f5ffd5b506103636103ef366004614fc4565b610ca3565b3480156103ff575f5ffd5b506102cc6113c7565b348015610413575f5ffd5b506102cc610422366004614e29565b611482565b348015610432575f5ffd5b506102cc610441366004614dff565b61149c565b348015610451575f5ffd5b506103637fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6102cc61048736600461501d565b611684565b348015610497575f5ffd5b5061036361174f565b3480156104ab575f5ffd5b506102cc6104ba36600461506a565b611800565b3480156104ca575f5ffd5b5060335460ff16610277565b3480156104e1575f5ffd5b506102cc6104f03660046150a8565b6118f7565b348015610500575f5ffd5b5061012d546001600160a01b03166102ed565b34801561051e575f5ffd5b506102ed61052d366004614de8565b611bd5565b34801561053d575f5ffd5b5061036361054c3660046150df565b611c34565b34801561055c575f5ffd5b506102cc61056b366004615145565b61211a565b34801561057b575f5ffd5b506102cc61058a3660046150a8565b61219d565b34801561059a575f5ffd5b506102cc6105a9366004614e67565b61271f565b3480156105b9575f5ffd5b506103636105c8366004614e67565b612ccf565b3480156105d8575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b34801561060a575f5ffd5b50610363610619366004614de8565b5f90815261012f602052604090205490565b348015610636575f5ffd5b506102cc610645366004615160565b612d53565b348015610655575f5ffd5b50610277610664366004614de8565b5f90815261012f6020526040902054151590565b348015610683575f5ffd5b506102cc612d74565b348015610697575f5ffd5b506102cc6106a636600461518b565b612e14565b3480156106b6575f5ffd5b506102a0612ed5565b3480156106ca575f5ffd5b506102cc6106d936600461520a565b612ee4565b3480156106e9575f5ffd5b506102cc6106f8366004615236565b612eef565b348015610708575f5ffd5b5061036361071736600461529e565b612f21565b348015610727575f5ffd5b506102a0610736366004614de8565b612f54565b348015610746575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b348015610778575f5ffd5b506102776107873660046152d1565b6001600160a01b039182165f9081526101006020908152604080832093909416825291909152205460ff1690565b3480156107c0575f5ffd5b506102cc6107cf366004614e67565b612fb7565b3480156107df575f5ffd5b506103636107ee366004614dff565b613058565b3480156107fe575f5ffd5b506103635f5160206159205f395f51905f5281565b34801561081e575f5ffd5b506102cc61082d3660046152fd565b6130ea565b5f61083c8261311b565b8061085757506001600160e01b0319821663019c676f60e31b145b92915050565b606060fb805461086c9061532a565b80601f01602080910402602001604051908101604052809291908181526020018280546108989061532a565b80156108e35780601f106108ba576101008083540402835291602001916108e3565b820191905f5260205f20905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b5f54610100900460ff161580801561090b57505f54600160ff909116105b806109245750303b15801561092457505f5460ff166001145b61098c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156109ad575f805461ff0019166101001790555b83515f036109cd57604051620beefb60e01b815260040160405180910390fd5b82515f036109ee576040516343b47bcb60e01b815260040160405180910390fd5b6109f661316a565b610a008484613192565b610a086131c2565b610a11826131f0565b8015610a56575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f610a668261321f565b505f90815260ff60205260409020546001600160a01b031690565b5f610a8b82611bd5565b9050806001600160a01b0316836001600160a01b031603610af85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610983565b336001600160a01b0382161480610b145750610b148133610787565b610b865760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610983565b610b90838361327d565b505050565b610b9f33826132ea565b610bbb5760405162461bcd60e51b81526004016109839061535c565b610b90838383613367565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c0e5760405162461bcd60e51b8152600401610983906153a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c565f5160206159005f395f51905f52546001600160a01b031690565b6001600160a01b031614610c7c5760405162461bcd60e51b8152600401610983906153f5565b610c85816134d6565b604080515f80825260208201909252610ca09183919061363a565b50565b5f610cac6137a4565b610cb5856137ea565b6101608501516001600160a01b0381163314610ce457604051634ace04f960e01b815260040160405180910390fd5b610cef816002613850565b5f816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190615441565b9050610d5d816003613850565b4264ffffffffff16876101a0015164ffffffffff1611610db75760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b6044820152606401610983565b85610180015164ffffffffff1687610180015164ffffffffff1614610e355760405162461bcd60e51b815260206004820152602e60248201527f426f746820706f6c6963696573206d7573742068617665207468652073616d6560448201526d207374617274696e67206461746560901b6064820152608401610983565b8560200151876020015111158015610e5557508560c001518760c0015111155b8015610e6957508560e001518760e0015111155b8015610e7f575085610120015187610120015111155b8015610e95575085610140015187610140015111155b8015610ea957508560600151876060015111155b8015610ebd57508560800151876080015111155b8015610ed3575085610100015187610100015111155b8015610ef75750856101a0015164ffffffffff16876101a0015164ffffffffff1611155b8015610f1957508561016001516001600160a01b0316826001600160a01b0316145b610f815760405162461bcd60e51b815260206004820152603360248201527f4e657720706f6c696379206d7573742062652067726561746572206f7220657160448201527275616c207468616e206f6c6420706f6c69637960681b6064820152608401610983565b610f8b8285612f21565b8087525f90815261012f602052604090205415610fe25760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b6044820152606401610983565b610feb8661388b565b86515f90815261012f6020526040812091909155875161100a90611bd5565b905061102881885f015160405180602001604052805f815250613909565b87515f90815261012f602052604080822091909155516355c1da5f60e11b81526001600160a01b0383169063ab83b4be90611069908b908b9060040161551c565b5f604051808303815f87803b158015611080575f5ffd5b505af1158015611092573d5f5f3e3d5ffd5b505050505f8860c001518860c001516110ab919061554d565b905080156110e8576110e86001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688858461393b565b8861014001518861014001516110fe919061554d565b9050801561119c5761119c87846001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116a9190615441565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691908461393b565b8861012001518861012001516111b2919061554d565b905080156111fa576111fa87846001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b8860e001518860e0015161120e919061554d565b905080156112535761012d54611253906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116918a91168461393b565b886101000151886101000151611269919061554d565b90505f811180156112eb5750836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d59190615441565b6001600160a01b0316876001600160a01b031614155b156113305761133087856001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611146573d5f5f3e3d5ffd5b836001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b896040516113699190615560565b60405180910390a2875189516040516001600160a01b038716907f4ff4ac703cb703b7ea535d47e65e64b4cabf11b3e2eb41f152dab17971953add905f90a4885188516113b69190613995565b50508551925050505b949350505050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b158015611460575f5ffd5b505afa158015611472573d5f5f3e3d5ffd5b5050505061147e613a90565b5050565b610b9083838360405180602001604052805f815250612eef565b6114a46137a4565b6114af826001613850565b6040516370a0823160e01b81526001600160a01b0383811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611517573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153b919061556f565b90506115727f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633858561393b565b6001600160a01b0383166347e7ef24336040516370a0823160e01b81526001600160a01b03878116600483015285917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156115ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160e919061556f565b611618919061554d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015611660573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a56919061556f565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116cc5760405162461bcd60e51b8152600401610983906153a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117145f5160206159005f395f51905f52546001600160a01b031690565b6001600160a01b03161461173a5760405162461bcd60e51b8152600401610983906153f5565b611743826134d6565b61147e8282600161363a565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610983565b505f5160206159005f395f51905f5290565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611895575f5ffd5b505afa1580156118a7573d5f5f3e3d5ffd5b505050508161013090816118bb91906155d1565b506040513381526004907fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f906020015b60405180910390a25050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b158015611990575f5ffd5b505afa1580156119a2573d5f5f3e3d5ffd5b5050506001600160a01b0385165f90815261012e602052604081209150815460ff1660038111156119d5576119d5614e82565b036119f357604051637d91856360e01b815260040160405180910390fd5b6001846003811115611a0757611a07614e82565b1480611a2457506002846003811115611a2257611a22614e82565b145b15611ac5576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad5f5160206159205f395f51905f52336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611aaa575f5ffd5b505afa158015611abc573d5f5f3e3d5ffd5b50505050611b5d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad5f5160206159675f395f51905f52336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015611b46575f5ffd5b505afa158015611b58573d5f5f3e3d5ffd5b505050505b80548490829060ff19166001836003811115611b7b57611b7b614e82565b021790555080546040516001600160a01b038716917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef91611bc691610100900460ff1690889061568c565b60405180910390a25050505050565b5f81815260fd60205260408120546001600160a01b0316806108575760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610983565b5f611c3d6137a4565b6101608501516001600160a01b0381163314611c6c57604051634ace04f960e01b815260040160405180910390fd5b611c77816002613850565b5f816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd89190615441565b9050611ce5816003613850565b611cef8285612f21565b8088525f90815261012f602052604090205415611d465760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b6044820152606401610983565b611d4f8761388b565b87515f90815261012f602090815260408083209390935589518351918201909352908152611d7e918791613909565b60405163e3638ea360e01b81526001600160a01b0382169063e3638ea390611daa908a90600401615560565b5f604051808303815f87803b158015611dc1575f5ffd5b505af1158015611dd3573d5f5f3e3d5ffd5b50505060c0880151611e1491506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908890849061393b565b61014087015115611ebb57611ebb86826001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190615441565b6101408a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b61012087015115611f6257611f6286826001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2a9190615441565b6101208a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b61012d5460e0880151611fa7916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116928a92919091169061393b565b5f87610100015111801561202c5750816001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120169190615441565b6001600160a01b0316866001600160a01b031614155b156120cd576120cd86836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015612071573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120959190615441565b6101008a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061393b565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b886040516121069190615560565b60405180910390a250509351949350505050565b6121226137a4565b426121356101c083016101a084016156b2565b64ffffffffff1611156121835760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610983565b610ca0612195368390038301836156cb565b5f6001613ae2565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b15801561221f575f5ffd5b505afa158015612231573d5f5f3e3d5ffd5b5050506001600160a01b0384165f90815261012e602052604081209150815460ff16600381111561226457612264614e82565b146122825760405163cf9a96f360e01b815260040160405180910390fd5b306001600160a01b0316846001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ec9190615441565b6001600160a01b03161461231357604051630fdee24360e11b815260040160405180910390fd5b600183600381111561232757612327614e82565b1480156123a357506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061236290639077062160e01b906004016156e6565b602060405180830381865afa15801561237d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a191906156fb565b155b80612439575060038360038111156123bd576123bd614e82565b14801561243957506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a7906123f890630e72532960e11b906004016156e6565b602060405180830381865afa158015612413573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243791906156fb565b155b806124cf5750600283600381111561245357612453614e82565b1480156124cf57506040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061248e9063da40804f60e01b906004016156e6565b602060405180830381865afa1580156124a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cd91906156fb565b155b156124f157838360405163502c9a5f60e01b8152600401610983929190615716565b8054600160ff198216811783558491839161ffff199091161761010083600381111561251f5761251f614e82565b0217905550600383600381111561253857612538614e82565b036126d5575f8490505f816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561257e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a29190615441565b90506001600160a01b0381161561260a576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c906024015f604051808303815f87803b1580156125f3575f5ffd5b505af1158015612605573d5f5f3e3d5ffd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612646573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061266a9190615441565b90506001600160a01b038116156126d2576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c906024015f604051808303815f87803b1580156126bb575f5ffd5b505af11580156126cd573d5f5f3e3d5ffd5b505050505b50505b836001600160a01b03167ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef84600160405161271192919061568c565b60405180910390a250505050565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b1580156127a1575f5ffd5b505afa1580156127b3573d5f5f3e3d5ffd5b505050506001600160a01b0382165f90815261012e602052604090206002815460ff1660038111156127e7576127e7614e82565b1461280557604051635c92b23960e11b815260040160405180910390fd5b60018154610100900460ff16600381111561282257612822614e82565b0361291d57826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612863573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612887919061556f565b1561291857805f0160019054906101000a900460ff16836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128fd919061556f565b604051631d0ec0ab60e01b815260040161098392919061572f565b612c5d565b60028154610100900460ff16600381111561293a5761293a614e82565b036129f157826001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299f919061556f565b1561291857805f0160019054906101000a900460ff16836001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b60038154610100900460ff166003811115612a0e57612a0e614e82565b03612c5d575f839050806001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a77919061556f565b15612ac957815f0160019054906101000a900460ff16816001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d9573d5f5f3e3d5ffd5b5f816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2a9190615441565b90506001600160a01b03811615612b92576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc55906024015f604051808303815f87803b158015612b7b575f5ffd5b505af1158015612b8d573d5f5f3e3d5ffd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf29190615441565b90506001600160a01b03811615612c5a576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc55906024015f604051808303815f87803b158015612c43575f5ffd5b505af1158015612c55573d5f5f3e3d5ffd5b505050505b50505b80546040516001600160a01b038516917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef91612ca391610100900460ff16905f9061568c565b60405180910390a250506001600160a01b03165f90815261012e60205260409020805461ffff19169055565b5f6001600160a01b038216612d385760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610983565b506001600160a01b03165f90815260fe602052604090205490565b612d5b6137a4565b61147e612d6d368490038401846156cb565b825f613ae2565b5f5160206159675f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612df6575f5ffd5b505afa158015612e08573d5f5f3e3d5ffd5b50505050610ca0613e0b565b612e1c6137a4565b5f5b81811015610b905742838383818110612e3957612e39615746565b90506101c002016101a0016020810190612e5391906156b2565b64ffffffffff161115612ea15760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610983565b612ecd838383818110612eb657612eb6615746565b90506101c0020180360381019061219591906156cb565b600101612e1e565b606060fc805461086c9061532a565b61147e338383613e48565b612ef933836132ea565b612f155760405162461bcd60e51b81526004016109839061535c565b610a5684848484613f16565b5f612f4d6bffffffffffffffffffffffff83166bffffffffffffffffffffffff19606086901b1661575a565b9392505050565b6060612f5f8261321f565b5f612f68613f49565b90505f815111612f865760405180602001604052805f815250612f4d565b80612f9084613f59565b604051602001612fa1929190615784565b6040516020818303038152906040529392505050565b5f5160206159205f395f51905f526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015613039575f5ffd5b505afa15801561304b573d5f5f3e3d5ffd5b5050505061147e82613fe9565b5f6130616137a4565b61306c836001614072565b6001600160a01b03831663f3fef3a3336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af11580156130c6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f4d919061556f565b6130f26137a4565b61147e613104368490038401846156cb565b8261310f575f613115565b83602001355b5f613ae2565b5f6001600160e01b031982166380ac58cd60e01b148061314b57506001600160e01b03198216635b5e139f60e01b145b8061085757506301ffc9a760e01b6001600160e01b0319831614610857565b5f54610100900460ff166131905760405162461bcd60e51b815260040161098390615798565b565b5f54610100900460ff166131b85760405162461bcd60e51b815260040161098390615798565b61147e82826140d1565b5f54610100900460ff166131e85760405162461bcd60e51b815260040161098390615798565b613190614110565b5f54610100900460ff166132165760405162461bcd60e51b815260040161098390615798565b610ca081613fe9565b5f81815260fd60205260409020546001600160a01b0316610ca05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610983565b5f81815260ff6020526040902080546001600160a01b0319166001600160a01b03841690811790915581906132b182611bd5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f5f6132f583611bd5565b9050806001600160a01b0316846001600160a01b0316148061333c57506001600160a01b038082165f908152610100602090815260408083209388168352929052205460ff165b806113bf5750836001600160a01b031661335584610a5c565b6001600160a01b031614949350505050565b826001600160a01b031661337a82611bd5565b6001600160a01b0316146133a05760405162461bcd60e51b8152600401610983906157e3565b6001600160a01b0382166134025760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610983565b61340f8383836001614142565b826001600160a01b031661342282611bd5565b6001600160a01b0316146134485760405162461bcd60e51b8152600401610983906157e3565b5f81815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260fe855283862080545f190190559087168086528386208054600101905586865260fd90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f5160206159675f395f51905f525f5160206159205f395f51905f526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b031660448201526064015f6040518083038186803b15801561356f575f5ffd5b505afa158015613581573d5f5f3e3d5ffd5b505050505f8390507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136139190615441565b6001600160a01b031614610a5657604051630f13081760e01b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561366d57610b908361414f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156136c7575060408051601f3d908101601f191682019092526136c49181019061556f565b60015b61372a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610983565b5f5160206159005f395f51905f5281146137985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610983565b50610b908383836141ea565b60335460ff16156131905760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610983565b805115801590613811575080515f90815261012f602052604090205461380f8261388b565b145b610ca05760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610983565b600161385c838361420e565b600381111561386d5761386d614e82565b1461147e57604051630422f25f60e01b815260040160405180910390fd5b5f8160405160200161389d9190615560565b60408051601f1981840301815291905280516020909101209050806139045760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f74206265203000000000000000006044820152606401610983565b919050565b6139138383614280565b61391f5f848484614415565b610b905760405162461bcd60e51b815260040161098390615828565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610a5690859061450f565b5f61399f83611bd5565b90506001600160a01b0381163b6139b557505050565b6139c681635ee0c7dd60e01b6145e2565b6139cf57505050565b5f6001600160a01b038216635ee0c7dd336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101879052606481018690526084016020604051808303815f875af1158015613a37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5b919061587a565b90506001600160e01b03198116635ee0c7dd60e01b14610a5657806040516381784a5160e01b815260040161098391906156e6565b613a986145fd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b613aeb836137ea565b61016083015181158015613b0857506001600160a01b0381163314155b15613b2657604051634ace04f960e01b815260040160405180910390fd5b821580613b3e575042846101a0015164ffffffffff16115b613b8a5760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610983565b613b95816002614072565b8360200151831115613be25760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610983565b5f5f841190505f826001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c499190615441565b9050613c56816003614072565b85515f90815261012f60205260408120558115613ce0575f613c7a875f0151611bd5565b604051639d8c5ee760e01b81529091506001600160a01b03831690639d8c5ee790613cad9084908b908b90600401615895565b5f604051808303815f87803b158015613cc4575f5ffd5b505af1158015613cd6573d5f5f3e3d5ffd5b5050505050613d3a565b60405163c7a9c70d60e01b81526001600160a01b0382169063c7a9c70d90613d0c908990600401615560565b5f604051808303815f87803b158015613d23575f5ffd5b505af1158015613d35573d5f5f3e3d5ffd5b505050505b6020860151604051636a448ef160e01b815260048101919091526001600160a01b03841690636a448ef1906024015f604051808303815f87803b158015613d7f575f5ffd5b505af1158015613d91573d5f5f3e3d5ffd5b50505050855f01518661016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e87604051613dd991815260200190565b60405180910390a38415613df8578551613df39086614646565b613e03565b8551613e0390614741565b505050505050565b613e136137a4565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ac53390565b816001600160a01b0316836001600160a01b031603613ea95760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610983565b6001600160a01b038381165f8181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613f21848484613367565b613f2d84848484614415565b610a565760405162461bcd60e51b815260040161098390615828565b6060610130805461086c9061532a565b60605f613f658361483b565b60010190505f8167ffffffffffffffff811115613f8457613f84614c8d565b6040519080825280601f01601f191660200182016040528015613fae576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613fb857509392505050565b6001600160a01b038116614010576040516307a2ee8b60e11b815260040160405180910390fd5b61012d80546001600160a01b0319166001600160a01b038316179055600161012d546040516001600160a01b0390911681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200160405180910390a250565b5f61407d838361420e565b9050600181600381111561409357614093614e82565b141580156140b3575060028160038111156140b0576140b0614e82565b14155b15610b905760405163d08ef1ff60e01b815260040160405180910390fd5b5f54610100900460ff166140f75760405162461bcd60e51b815260040161098390615798565b60fb61410383826155d1565b5060fc610b9082826155d1565b5f54610100900460ff166141365760405162461bcd60e51b815260040161098390615798565b6033805460ff19169055565b61414a6137a4565b610a56565b6001600160a01b0381163b6141bc5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610983565b5f5160206159005f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6141f383614912565b5f825111806141ff5750805b15610b9057610a568383614951565b6001600160a01b0382165f90815261012e6020526040812082600381111561423857614238614e82565b8154610100900460ff16600381111561425357614253614e82565b1461427557838360405163502c9a5f60e01b8152600401610983929190615716565b5460ff169392505050565b6001600160a01b0382166142d65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610983565b5f81815260fd60205260409020546001600160a01b03161561433a5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610983565b6143475f83836001614142565b5f81815260fd60205260409020546001600160a01b0316156143ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610983565b6001600160a01b0382165f81815260fe602090815260408083208054600101905584835260fd90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f6001600160a01b0384163b1561450757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144589033908990889088906004016158c2565b6020604051808303815f875af1925050508015614492575060408051601f3d908101601f1916820190925261448f9181019061587a565b60015b6144ed573d8080156144bf576040519150601f19603f3d011682016040523d82523d5f602084013e6144c4565b606091505b5080515f036144e55760405162461bcd60e51b815260040161098390615828565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506113bf565b5060016113bf565b5f614563826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149769092919063ffffffff16565b905080515f148061458357508080602001905181019061458391906156fb565b610b905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610983565b5f6145ec83614984565b8015612f4d5750612f4d83836149b6565b60335460ff166131905760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610983565b5f61465083611bd5565b90506001600160a01b0381163b61466657505050565b61467781633ece0a8960e01b6145e2565b61468057505050565b5f6001600160a01b03821663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101879052606481018690526084016020604051808303815f875af11580156146e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061470c919061587a565b90506001600160e01b03198116636b140e9f60e11b14610a5657806040516381784a5160e01b815260040161098391906156e6565b5f61474b82611bd5565b90506001600160a01b0381163b614760575050565b61477181633ece0a8960e01b6145e2565b614779575050565b6001600160a01b03811663e8e617b7620249f0336040516001600160e01b031960e085901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303815f8887f1935050505080156147fc575060408051601f3d908101601f191682019092526147f99181019061587a565b60015b610b90576040516001600160a01b038216815282907f6ce8016f81523f240956bca9a698e643d09e84e7d0e931470b1016baf1027bd0906020016118eb565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106148795772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106148a5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106148c357662386f26fc10000830492506010015b6305f5e10083106148db576305f5e100830492506008015b61271083106148ef57612710830492506004015b60648310614901576064830492506002015b600a83106108575760010192915050565b61491b8161414f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060612f4d838360405180606001604052806027815260200161594060279139614a44565b60606113bf84845f85614ab8565b5f614996826301ffc9a760e01b6149b6565b801561085757506149af826001600160e01b03196149b6565b1592915050565b5f5f6301ffc9a760e01b836040516024016149d191906156e6565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090505f5f5f60205f8551602087018a617530fa92503d91505f519050828015614a2e575060208210155b8015614a3957505f81115b979650505050505050565b60605f5f856001600160a01b031685604051614a6091906158f4565b5f60405180830381855af49150503d805f8114614a98576040519150601f19603f3d011682016040523d82523d5f602084013e614a9d565b606091505b5091509150614aae86838387614b80565b9695505050505050565b606082471015614b195760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610983565b5f5f866001600160a01b03168587604051614b3491906158f4565b5f6040518083038185875af1925050503d805f8114614b6e576040519150601f19603f3d011682016040523d82523d5f602084013e614b73565b606091505b5091509150614a39878383875b60608315614bee5782515f03614be7576001600160a01b0385163b614be75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610983565b50816113bf565b6113bf8383815115614c035781518083602001fd5b8060405162461bcd60e51b81526004016109839190614c7b565b6001600160e01b031981168114610ca0575f5ffd5b5f60208284031215614c42575f5ffd5b8135612f4d81614c1d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f612f4d6020830184614c4d565b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff81118282101715614cc557614cc5614c8d565b60405290565b5f82601f830112614cda575f5ffd5b8135602083015f5f67ffffffffffffffff841115614cfa57614cfa614c8d565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715614d2957614d29614c8d565b604052838152905080828401871015614d40575f5ffd5b838360208301375f602085830101528094505050505092915050565b6001600160a01b0381168114610ca0575f5ffd5b5f5f5f60608486031215614d82575f5ffd5b833567ffffffffffffffff811115614d98575f5ffd5b614da486828701614ccb565b935050602084013567ffffffffffffffff811115614dc0575f5ffd5b614dcc86828701614ccb565b9250506040840135614ddd81614d5c565b809150509250925092565b5f60208284031215614df8575f5ffd5b5035919050565b5f5f60408385031215614e10575f5ffd5b8235614e1b81614d5c565b946020939093013593505050565b5f5f5f60608486031215614e3b575f5ffd5b8335614e4681614d5c565b92506020840135614e5681614d5c565b929592945050506040919091013590565b5f60208284031215614e77575f5ffd5b8135612f4d81614d5c565b634e487b7160e01b5f52602160045260245ffd5b60048110610ca057634e487b7160e01b5f52602160045260245ffd5b60208101614ebf83614e96565b91905290565b803561390481614d5c565b803564ffffffffff81168114613904575f5ffd5b5f6101c08284031215614ef5575f5ffd5b614efd614ca1565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e080840135908201526101008084013590820152610120808401359082015261014080840135908201529050614f776101608301614ec5565b610160820152614f8a6101808301614ed0565b610180820152614f9d6101a08301614ed0565b6101a082015292915050565b80356bffffffffffffffffffffffff81168114613904575f5ffd5b5f5f5f5f6103c08587031215614fd8575f5ffd5b614fe28686614ee4565b9350614ff2866101c08701614ee4565b925061038085013561500381614d5c565b91506150126103a08601614fa9565b905092959194509250565b5f5f6040838503121561502e575f5ffd5b823561503981614d5c565b9150602083013567ffffffffffffffff811115615054575f5ffd5b61506085828601614ccb565b9150509250929050565b5f6020828403121561507a575f5ffd5b813567ffffffffffffffff811115615090575f5ffd5b6113bf84828501614ccb565b60048110610ca0575f5ffd5b5f5f604083850312156150b9575f5ffd5b82356150c481614d5c565b915060208301356150d48161509c565b809150509250929050565b5f5f5f5f61022085870312156150f3575f5ffd5b6150fd8686614ee4565b93506101c085013561510e81614d5c565b92506101e085013561511f81614d5c565b91506150126102008601614fa9565b5f6101c0828403121561513f575f5ffd5b50919050565b5f6101c08284031215615156575f5ffd5b612f4d838361512e565b5f5f6101e08385031215615172575f5ffd5b61517c848461512e565b946101c0939093013593505050565b5f5f6020838503121561519c575f5ffd5b823567ffffffffffffffff8111156151b2575f5ffd5b8301601f810185136151c2575f5ffd5b803567ffffffffffffffff8111156151d8575f5ffd5b8560206101c0830284010111156151ed575f5ffd5b6020919091019590945092505050565b8015158114610ca0575f5ffd5b5f5f6040838503121561521b575f5ffd5b823561522681614d5c565b915060208301356150d4816151fd565b5f5f5f5f60808587031215615249575f5ffd5b843561525481614d5c565b9350602085013561526481614d5c565b925060408501359150606085013567ffffffffffffffff811115615286575f5ffd5b61529287828801614ccb565b91505092959194509250565b5f5f604083850312156152af575f5ffd5b82356152ba81614d5c565b91506152c860208401614fa9565b90509250929050565b5f5f604083850312156152e2575f5ffd5b82356152ed81614d5c565b915060208301356150d481614d5c565b5f5f6101e0838503121561530f575f5ffd5b615319848461512e565b91506101c08301356150d4816151fd565b600181811c9082168061533e57607f821691505b60208210810361513f57634e487b7160e01b5f52602260045260245ffd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215615451575f5ffd5b8151612f4d81614d5c565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516154e66101608401826001600160a01b03169052565b5061018081015161550161018084018264ffffffffff169052565b506101a0810151610b906101a084018264ffffffffff169052565b610380810161552b828561545c565b612f4d6101c083018461545c565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561085757610857615539565b6101c08101610857828461545c565b5f6020828403121561557f575f5ffd5b5051919050565b601f821115610b9057805f5260205f20601f840160051c810160208510156155ab5750805b601f840160051c820191505b818110156155ca575f81556001016155b7565b5050505050565b815167ffffffffffffffff8111156155eb576155eb614c8d565b6155ff816155f9845461532a565b84615586565b6020601f821160018114615631575f831561561a5750848201515b5f19600385901b1c1916600184901b1784556155ca565b5f84815260208120601f198516915b828110156156605787850151825560209485019460019092019101615640565b508482101561567d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6040810161569984614e96565b8382526156a583614e96565b8260208301529392505050565b5f602082840312156156c2575f5ffd5b612f4d82614ed0565b5f6101c082840312156156dc575f5ffd5b612f4d8383614ee4565b6001600160e01b031991909116815260200190565b5f6020828403121561570b575f5ffd5b8151612f4d816151fd565b6001600160a01b0383168152604081016156a583614e96565b6040810161573c84614e96565b9281526020015290565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561085757610857615539565b5f81518060208401855e5f93019283525090919050565b5f6113bf615792838661576d565b8461576d565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b5f6020828403121561588a575f5ffd5b8151612f4d81614c1d565b6001600160a01b038416815261020081016158b3602083018561545c565b826101e0830152949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90614aae90830184614c4d565b5f612f4d828461576d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b1da5c23d2dc17f863551361c2deb4ca7a4e8ea0ebc43276c37001fa42c1758064736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x254 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6769A76F GT PUSH2 0x13F JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0xB3 JUMPI DUP1 PUSH4 0xE5A6B10F GT PUSH2 0x78 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x73B JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0xF0F44260 EQ PUSH2 0x7B5 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0xF67B2BAD EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x813 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x6AB JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0xC016F88A EQ PUSH2 0x6FD JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x71C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x71907F17 GT PUSH2 0x104 JUMPI DUP1 PUSH4 0x71907F17 EQ PUSH2 0x5CD JUMPI DUP1 PUSH4 0x792DA09E EQ PUSH2 0x5FF JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x64A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x678 JUMPI DUP1 PUSH4 0x8C916D46 EQ PUSH2 0x68C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6769A76F EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0x6AF6F1EF EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x6B8734E7 EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x6F86C897 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x52D1902D GT PUSH2 0x19B JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x5FCBF445 EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x4F5 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x513 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x3F4 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x4A47A3E0 EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x479 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x21C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x24EA54F4 EQ PUSH2 0x343 JUMPI DUP1 PUSH4 0x33D6157A EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0x3ED7C1AE EQ PUSH2 0x3D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x305 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x4C32 JUMP JUMPDEST PUSH2 0x832 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x297 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x85D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x4C7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x2C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D70 JUMP JUMPDEST PUSH2 0x8ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0xA5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x310 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0xA81 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x33E CALLDATASIZE PUSH1 0x4 PUSH2 0x4E29 JUMP JUMPDEST PUSH2 0xB95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x283 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x3A9 PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x283 SWAP2 SWAP1 PUSH2 0x4EB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x3D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0xBC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x3EF CALLDATASIZE PUSH1 0x4 PUSH2 0x4FC4 JUMP JUMPDEST PUSH2 0xCA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x13C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x413 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E29 JUMP JUMPDEST PUSH2 0x1482 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0x149C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 DUP2 JUMP JUMPDEST PUSH2 0x2CC PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x501D JUMP JUMPDEST PUSH2 0x1684 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x497 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x174F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x4BA CALLDATASIZE PUSH1 0x4 PUSH2 0x506A JUMP JUMPDEST PUSH2 0x1800 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x277 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x50A8 JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x500 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12D SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0x52D CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0x1BD5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x54C CALLDATASIZE PUSH1 0x4 PUSH2 0x50DF JUMP JUMPDEST PUSH2 0x1C34 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x5145 JUMP JUMPDEST PUSH2 0x211A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x50A8 JUMP JUMPDEST PUSH2 0x219D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x5A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x271F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x5C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x2CCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x636 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x645 CALLDATASIZE PUSH1 0x4 PUSH2 0x5160 JUMP JUMPDEST PUSH2 0x2D53 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x683 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x2D74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x697 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x518B JUMP JUMPDEST PUSH2 0x2E14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x2ED5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x520A JUMP JUMPDEST PUSH2 0x2EE4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x6F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x5236 JUMP JUMPDEST PUSH2 0x2EEF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x708 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x717 CALLDATASIZE PUSH1 0x4 PUSH2 0x529E JUMP JUMPDEST PUSH2 0x2F21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x727 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0x736 CALLDATASIZE PUSH1 0x4 PUSH2 0x4DE8 JUMP JUMPDEST PUSH2 0x2F54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x746 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x778 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x277 PUSH2 0x787 CALLDATASIZE PUSH1 0x4 PUSH2 0x52D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x4E67 JUMP JUMPDEST PUSH2 0x2FB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0x7EE CALLDATASIZE PUSH1 0x4 PUSH2 0x4DFF JUMP JUMPDEST PUSH2 0x3058 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x363 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2CC PUSH2 0x82D CALLDATASIZE PUSH1 0x4 PUSH2 0x52FD JUMP JUMPDEST PUSH2 0x30EA JUMP JUMPDEST PUSH0 PUSH2 0x83C DUP3 PUSH2 0x311B JUMP JUMPDEST DUP1 PUSH2 0x857 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x19C676F PUSH1 0xE3 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x898 SWAP1 PUSH2 0x532A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8E3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8BA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8E3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8C6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x90B JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x924 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x924 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x98C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x9AD JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST DUP4 MLOAD PUSH0 SUB PUSH2 0x9CD JUMPI PUSH1 0x40 MLOAD PUSH3 0xBEEFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 MLOAD PUSH0 SUB PUSH2 0x9EE JUMPI PUSH1 0x40 MLOAD PUSH4 0x43B47BCB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9F6 PUSH2 0x316A JUMP JUMPDEST PUSH2 0xA00 DUP5 DUP5 PUSH2 0x3192 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0x31C2 JUMP JUMPDEST PUSH2 0xA11 DUP3 PUSH2 0x31F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA56 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA66 DUP3 PUSH2 0x321F JUMP JUMPDEST POP PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xA8B DUP3 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xAF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0xB14 JUMPI POP PUSH2 0xB14 DUP2 CALLER PUSH2 0x787 JUMP JUMPDEST PUSH2 0xB86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 PUSH2 0x327D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB9F CALLER DUP3 PUSH2 0x32EA JUMP JUMPDEST PUSH2 0xBBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x535C JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xC0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53A9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC56 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53F5 JUMP JUMPDEST PUSH2 0xC85 DUP2 PUSH2 0x34D6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xCA0 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x363A JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xCAC PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0xCB5 DUP6 PUSH2 0x37EA JUMP JUMPDEST PUSH2 0x160 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xCE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCEF DUP2 PUSH1 0x2 PUSH2 0x3850 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD50 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0xD5D DUP2 PUSH1 0x3 PUSH2 0x3850 JUMP JUMPDEST TIMESTAMP PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST DUP6 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND EQ PUSH2 0xE35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x426F746820706F6C6963696573206D7573742068617665207468652073616D65 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x207374617274696E672064617465 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD GT ISZERO DUP1 ISZERO PUSH2 0xE55 JUMPI POP DUP6 PUSH1 0xC0 ADD MLOAD DUP8 PUSH1 0xC0 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE69 JUMPI POP DUP6 PUSH1 0xE0 ADD MLOAD DUP8 PUSH1 0xE0 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE7F JUMPI POP DUP6 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x120 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xE95 JUMPI POP DUP6 PUSH2 0x140 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEA9 JUMPI POP DUP6 PUSH1 0x60 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEBD JUMPI POP DUP6 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0x80 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xED3 JUMPI POP DUP6 PUSH2 0x100 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xEF7 JUMPI POP DUP6 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND DUP8 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xF19 JUMPI POP DUP6 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0xF81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E657720706F6C696379206D7573742062652067726561746572206F72206571 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x75616C207468616E206F6C6420706F6C696379 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xF8B DUP3 DUP6 PUSH2 0x2F21 JUMP JUMPDEST DUP1 DUP8 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x506F6C69637920616C726561647920657869737473 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xFEB DUP7 PUSH2 0x388B JUMP JUMPDEST DUP7 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE DUP8 MLOAD PUSH2 0x100A SWAP1 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH2 0x1028 DUP2 DUP9 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x3909 JUMP JUMPDEST DUP8 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH4 0x55C1DA5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xAB83B4BE SWAP1 PUSH2 0x1069 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x551C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1080 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1092 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 DUP9 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x10AB SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP9 DUP6 DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x140 ADD MLOAD DUP9 PUSH2 0x140 ADD MLOAD PUSH2 0x10FE SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x119C JUMPI PUSH2 0x119C DUP8 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 SWAP1 DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x120 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x11FA JUMPI PUSH2 0x11FA DUP8 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST DUP9 PUSH1 0xE0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x120E SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1253 JUMPI PUSH2 0x12D SLOAD PUSH2 0x1253 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP2 DUP11 SWAP2 AND DUP5 PUSH2 0x393B JUMP JUMPDEST DUP9 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x100 ADD MLOAD PUSH2 0x1269 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x12EB JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D5 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1330 JUMPI PUSH2 0x1330 DUP8 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1146 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP10 PUSH1 0x40 MLOAD PUSH2 0x1369 SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 MLOAD DUP10 MLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0x4FF4AC703CB703B7EA535D47E65E64B4CABF11B3E2EB41F152DAB17971953ADD SWAP1 PUSH0 SWAP1 LOG4 DUP9 MLOAD DUP9 MLOAD PUSH2 0x13B6 SWAP2 SWAP1 PUSH2 0x3995 JUMP JUMPDEST POP POP DUP6 MLOAD SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1460 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147E PUSH2 0x3A90 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x2EEF JUMP JUMPDEST PUSH2 0x14A4 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x14AF DUP3 PUSH1 0x1 PUSH2 0x3850 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1517 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x153B SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST SWAP1 POP PUSH2 0x1572 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP6 DUP6 PUSH2 0x393B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH4 0x47E7EF24 CALLER PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x160E SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH2 0x1618 SWAP2 SWAP1 PUSH2 0x554D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1660 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA56 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x16CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53A9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1714 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x173A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x53F5 JUMP JUMPDEST PUSH2 0x1743 DUP3 PUSH2 0x34D6 JUMP JUMPDEST PUSH2 0x147E DUP3 DUP3 PUSH1 0x1 PUSH2 0x363A JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x17EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1895 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH2 0x130 SWAP1 DUP2 PUSH2 0x18BB SWAP2 SWAP1 PUSH2 0x55D1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD CALLER DUP2 MSTORE PUSH1 0x4 SWAP1 PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1990 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 POP DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x19D5 JUMPI PUSH2 0x19D5 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x19F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7D918563 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A07 JUMPI PUSH2 0x1A07 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 PUSH2 0x1A24 JUMPI POP PUSH1 0x2 DUP5 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A22 JUMPI PUSH2 0x1A22 PUSH2 0x4E82 JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x1AC5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AAA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ABC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B5D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B46 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B58 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP1 SLOAD DUP5 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1B7B JUMPI PUSH2 0x1B7B PUSH2 0x4E82 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF SWAP2 PUSH2 0x1BC6 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP9 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x857 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x1C3D PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x160 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1C6C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C77 DUP2 PUSH1 0x2 PUSH2 0x3850 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CB4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CD8 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0x1CE5 DUP2 PUSH1 0x3 PUSH2 0x3850 JUMP JUMPDEST PUSH2 0x1CEF DUP3 DUP6 PUSH2 0x2F21 JUMP JUMPDEST DUP1 DUP9 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x506F6C69637920616C726561647920657869737473 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x1D4F DUP8 PUSH2 0x388B JUMP JUMPDEST DUP8 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP10 MLOAD DUP4 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP4 MSTORE SWAP1 DUP2 MSTORE PUSH2 0x1D7E SWAP2 DUP8 SWAP2 PUSH2 0x3909 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE3638EA3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xE3638EA3 SWAP1 PUSH2 0x1DAA SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x5560 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DD3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0xC0 DUP9 ADD MLOAD PUSH2 0x1E14 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 DUP9 SWAP1 DUP5 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x140 DUP8 ADD MLOAD ISZERO PUSH2 0x1EBB JUMPI PUSH2 0x1EBB DUP7 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E5F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E83 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x140 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x120 DUP8 ADD MLOAD ISZERO PUSH2 0x1F62 JUMPI PUSH2 0x1F62 DUP7 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F2A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x120 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH2 0x12D SLOAD PUSH1 0xE0 DUP9 ADD MLOAD PUSH2 0x1FA7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP3 DUP11 SWAP3 SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH2 0x393B JUMP JUMPDEST PUSH0 DUP8 PUSH2 0x100 ADD MLOAD GT DUP1 ISZERO PUSH2 0x202C JUMPI POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2016 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x20CD JUMPI PUSH2 0x20CD DUP7 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x521EB273 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2071 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2095 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH2 0x100 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP2 SWAP1 PUSH2 0x393B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP9 PUSH1 0x40 MLOAD PUSH2 0x2106 SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP4 MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2122 PUSH2 0x37A4 JUMP JUMPDEST TIMESTAMP PUSH2 0x2135 PUSH2 0x1C0 DUP4 ADD PUSH2 0x1A0 DUP5 ADD PUSH2 0x56B2 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x2183 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141BDB1A58DE481B9BDD08195E1C1A5C9959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0xCA0 PUSH2 0x2195 CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x56CB JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x221F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 POP DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2264 JUMPI PUSH2 0x2264 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x2282 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF9A96F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2313 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFDEE243 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2327 JUMPI PUSH2 0x2327 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x23A3 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x2362 SWAP1 PUSH4 0x90770621 PUSH1 0xE0 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x237D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A1 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x2439 JUMPI POP PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23BD JUMPI PUSH2 0x23BD PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x2439 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x23F8 SWAP1 PUSH4 0xE725329 PUSH1 0xE1 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2413 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2437 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x24CF JUMPI POP PUSH1 0x2 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2453 JUMPI PUSH2 0x2453 PUSH2 0x4E82 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x24CF JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH2 0x248E SWAP1 PUSH4 0xDA40804F PUSH1 0xE0 SHL SWAP1 PUSH1 0x4 ADD PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24CD SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x24F1 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x502C9A5F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x5716 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT DUP3 AND DUP2 OR DUP4 SSTORE DUP5 SWAP2 DUP4 SWAP2 PUSH2 0xFFFF NOT SWAP1 SWAP2 AND OR PUSH2 0x100 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x251F JUMPI PUSH2 0x251F PUSH2 0x4E82 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2538 JUMPI PUSH2 0x2538 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x26D5 JUMPI PUSH0 DUP5 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x257E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A2 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x260A JUMPI PUSH1 0x40 MLOAD PUSH4 0x38EA38A7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xE3A8E29C SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2605 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2646 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x266A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38EA38A7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xE3A8E29C SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF DUP5 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x2711 SWAP3 SWAP2 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27B3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x27E7 JUMPI PUSH2 0x27E7 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5C92B239 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2822 PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x291D JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2863 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2887 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2918 JUMPI DUP1 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28FD SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1D0EC0AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x572F JUMP JUMPDEST PUSH2 0x2C5D JUMP JUMPDEST PUSH1 0x2 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x293A JUMPI PUSH2 0x293A PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x29F1 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF8BF25 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299F SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2918 JUMPI DUP1 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7FF8BF25 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2A0E JUMPI PUSH2 0x2A0E PUSH2 0x4E82 JUMP JUMPDEST SUB PUSH2 0x2C5D JUMPI PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x26CCBD22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A53 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A77 SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST ISZERO PUSH2 0x2AC9 JUMPI DUP2 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x26CCBD22 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28D9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B06 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B2A SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x2B92 JUMPI PUSH1 0x40 MLOAD PUSH4 0x76C7FC55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x76C7FC55 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B7B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B8D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BF2 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x2C5A JUMPI PUSH1 0x40 MLOAD PUSH4 0x76C7FC55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x76C7FC55 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C43 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH32 0xFE4C6998A06520B63340A48710B374432CB395DA90E4E5360E1EC7AEEFEBECEF SWAP2 PUSH2 0x2CA3 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 PUSH0 SWAP1 PUSH2 0x568C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2D38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2D5B PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x147E PUSH2 0x2D6D CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x56CB JUMP JUMPDEST DUP3 PUSH0 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2DF6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E08 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCA0 PUSH2 0x3E0B JUMP JUMPDEST PUSH2 0x2E1C PUSH2 0x37A4 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB90 JUMPI TIMESTAMP DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x2E39 JUMPI PUSH2 0x2E39 PUSH2 0x5746 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C0 MUL ADD PUSH2 0x1A0 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2E53 SWAP2 SWAP1 PUSH2 0x56B2 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x2EA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141BDB1A58DE481B9BDD08195E1C1A5C9959081E595D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2ECD DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x2EB6 JUMPI PUSH2 0x2EB6 PUSH2 0x5746 JUMP JUMPDEST SWAP1 POP PUSH2 0x1C0 MUL ADD DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2195 SWAP2 SWAP1 PUSH2 0x56CB JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2E1E JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFC DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST PUSH2 0x147E CALLER DUP4 DUP4 PUSH2 0x3E48 JUMP JUMPDEST PUSH2 0x2EF9 CALLER DUP4 PUSH2 0x32EA JUMP JUMPDEST PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x535C JUMP JUMPDEST PUSH2 0xA56 DUP5 DUP5 DUP5 DUP5 PUSH2 0x3F16 JUMP JUMPDEST PUSH0 PUSH2 0x2F4D PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP7 SWAP1 SHL AND PUSH2 0x575A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F5F DUP3 PUSH2 0x321F JUMP JUMPDEST PUSH0 PUSH2 0x2F68 PUSH2 0x3F49 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD GT PUSH2 0x2F86 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x2F4D JUMP JUMPDEST DUP1 PUSH2 0x2F90 DUP5 PUSH2 0x3F59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FA1 SWAP3 SWAP2 SWAP1 PUSH2 0x5784 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0x12D9A6AD DUP3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3039 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x304B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x147E DUP3 PUSH2 0x3FE9 JUMP JUMPDEST PUSH0 PUSH2 0x3061 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x306C DUP4 PUSH1 0x1 PUSH2 0x4072 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH4 0xF3FEF3A3 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F4D SWAP2 SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH2 0x30F2 PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0x147E PUSH2 0x3104 CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x56CB JUMP JUMPDEST DUP3 PUSH2 0x310F JUMPI PUSH0 PUSH2 0x3115 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD CALLDATALOAD JUMPDEST PUSH0 PUSH2 0x3AE2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x314B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x857 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x857 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0x147E DUP3 DUP3 PUSH2 0x40D1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0x3190 PUSH2 0x4110 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3216 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH2 0xCA0 DUP2 PUSH2 0x3FE9 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x32B1 DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x32F5 DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x333C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x13BF JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3355 DUP5 PUSH2 0xA5C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x337A DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x33A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x57E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x340F DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x4142 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3422 DUP3 PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x57E3 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0xFE DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0xFD SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5967 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5920 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC5B8F5CF DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x356F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3581 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 DUP4 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35EF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3613 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF130817 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x366D JUMPI PUSH2 0xB90 DUP4 PUSH2 0x414F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x36C7 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x36C4 SWAP2 DUP2 ADD SWAP1 PUSH2 0x556F JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x372A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x3798 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST POP PUSH2 0xB90 DUP4 DUP4 DUP4 PUSH2 0x41EA JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3811 JUMPI POP DUP1 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x380F DUP3 PUSH2 0x388B JUMP JUMPDEST EQ JUMPDEST PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x141BDB1A58DE481B9BDD08199BDD5B99 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x385C DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x386D JUMPI PUSH2 0x386D PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x147E JUMPI PUSH1 0x40 MLOAD PUSH4 0x422F25F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x389D SWAP2 SWAP1 PUSH2 0x5560 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP1 POP DUP1 PUSH2 0x3904 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963793A20686173682063616E6E6F7420626520300000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3913 DUP4 DUP4 PUSH2 0x4280 JUMP JUMPDEST PUSH2 0x391F PUSH0 DUP5 DUP5 DUP5 PUSH2 0x4415 JUMP JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xA56 SWAP1 DUP6 SWAP1 PUSH2 0x450F JUMP JUMPDEST PUSH0 PUSH2 0x399F DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x39B5 JUMPI POP POP POP JUMP JUMPDEST PUSH2 0x39C6 DUP2 PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x39CF JUMPI POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH4 0x5EE0C7DD CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A37 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A5B SWAP2 SWAP1 PUSH2 0x587A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL EQ PUSH2 0xA56 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x81784A51 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH2 0x3A98 PUSH2 0x45FD JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x3AEB DUP4 PUSH2 0x37EA JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MLOAD DUP2 ISZERO DUP1 ISZERO PUSH2 0x3B08 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ ISZERO JUMPDEST ISZERO PUSH2 0x3B26 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4ACE04F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x3B3E JUMPI POP TIMESTAMP DUP5 PUSH2 0x1A0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND GT JUMPDEST PUSH2 0x3B8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420706179206578706972656420706F6C6963790000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x3B95 DUP2 PUSH1 0x2 PUSH2 0x4072 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 GT ISZERO PUSH2 0x3BE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1C185E5BDD5D080F881C1BDB1A58DE4B9C185E5BDD5D PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH0 DUP5 GT SWAP1 POP PUSH0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C25 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3C49 SWAP2 SWAP1 PUSH2 0x5441 JUMP JUMPDEST SWAP1 POP PUSH2 0x3C56 DUP2 PUSH1 0x3 PUSH2 0x4072 JUMP JUMPDEST DUP6 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE DUP2 ISZERO PUSH2 0x3CE0 JUMPI PUSH0 PUSH2 0x3C7A DUP8 PUSH0 ADD MLOAD PUSH2 0x1BD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9D8C5EE7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x9D8C5EE7 SWAP1 PUSH2 0x3CAD SWAP1 DUP5 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5895 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3CC4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3CD6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0x3D3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC7A9C70D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC7A9C70D SWAP1 PUSH2 0x3D0C SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5560 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D35 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0x6A448EF1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x6A448EF1 SWAP1 PUSH1 0x24 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D7F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3D91 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP6 PUSH0 ADD MLOAD DUP7 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54F4A270EA08F88DC23B2520D6B063FECB24D956C4496F447926D736338F545E DUP8 PUSH1 0x40 MLOAD PUSH2 0x3DD9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP5 ISZERO PUSH2 0x3DF8 JUMPI DUP6 MLOAD PUSH2 0x3DF3 SWAP1 DUP7 PUSH2 0x4646 JUMP JUMPDEST PUSH2 0x3E03 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3E03 SWAP1 PUSH2 0x4741 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3E13 PUSH2 0x37A4 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x3AC5 CALLER SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x3EA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3F21 DUP5 DUP5 DUP5 PUSH2 0x3367 JUMP JUMPDEST PUSH2 0x3F2D DUP5 DUP5 DUP5 DUP5 PUSH2 0x4415 JUMP JUMPDEST PUSH2 0xA56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130 DUP1 SLOAD PUSH2 0x86C SWAP1 PUSH2 0x532A JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x3F65 DUP4 PUSH2 0x483B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F84 JUMPI PUSH2 0x3F84 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3FAE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x3FB8 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4010 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7A2EE8B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH2 0x12D SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH2 0x407D DUP4 DUP4 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4093 JUMPI PUSH2 0x4093 PUSH2 0x4E82 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x40B3 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x40B0 JUMPI PUSH2 0x40B0 PUSH2 0x4E82 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD08EF1FF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x4103 DUP4 DUP3 PUSH2 0x55D1 JUMP JUMPDEST POP PUSH1 0xFC PUSH2 0xB90 DUP3 DUP3 PUSH2 0x55D1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5798 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x414A PUSH2 0x37A4 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x41BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x5900 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x41F3 DUP4 PUSH2 0x4912 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x41FF JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB90 JUMPI PUSH2 0xA56 DUP4 DUP4 PUSH2 0x4951 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH2 0x12E PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4238 JUMPI PUSH2 0x4238 PUSH2 0x4E82 JUMP JUMPDEST DUP2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4253 JUMPI PUSH2 0x4253 PUSH2 0x4E82 JUMP JUMPDEST EQ PUSH2 0x4275 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x502C9A5F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP3 SWAP2 SWAP1 PUSH2 0x5716 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x42D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x433A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH2 0x4347 PUSH0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x4142 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x43AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0xFD SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x4507 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x4458 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x58C2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x4492 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x448F SWAP2 DUP2 ADD SWAP1 PUSH2 0x587A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x44ED JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x44BF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x44C4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH0 SUB PUSH2 0x44E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP1 PUSH2 0x5828 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x13BF JUMP JUMPDEST POP PUSH1 0x1 PUSH2 0x13BF JUMP JUMPDEST PUSH0 PUSH2 0x4563 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4976 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x4583 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4583 SWAP2 SWAP1 PUSH2 0x56FB JUMP JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x45EC DUP4 PUSH2 0x4984 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F4D JUMPI POP PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x49B6 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x3190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH2 0x4650 DUP4 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x4666 JUMPI POP POP POP JUMP JUMPDEST PUSH2 0x4677 DUP2 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x4680 JUMPI POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH4 0xD6281D3E CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46E8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x470C SWAP2 SWAP1 PUSH2 0x587A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0x6B140E9F PUSH1 0xE1 SHL EQ PUSH2 0xA56 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH4 0x81784A51 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH0 PUSH2 0x474B DUP3 PUSH2 0x1BD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x4760 JUMPI POP POP JUMP JUMPDEST PUSH2 0x4771 DUP2 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL PUSH2 0x45E2 JUMP JUMPDEST PUSH2 0x4779 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE8E617B7 PUSH3 0x249F0 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP9 DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x47FC JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x47F9 SWAP2 DUP2 ADD SWAP1 PUSH2 0x587A JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE DUP3 SWAP1 PUSH32 0x6CE8016F81523F240956BCA9A698E643D09E84E7D0E931470B1016BAF1027BD0 SWAP1 PUSH1 0x20 ADD PUSH2 0x18EB JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x4879 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x48A5 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x48C3 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x48DB JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x48EF JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4901 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x857 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x491B DUP2 PUSH2 0x414F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F4D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5940 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x4A44 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x13BF DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4AB8 JUMP JUMPDEST PUSH0 PUSH2 0x4996 DUP3 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH2 0x49B6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x857 JUMPI POP PUSH2 0x49AF DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH2 0x49B6 JUMP JUMPDEST ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP4 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x49D1 SWAP2 SWAP1 PUSH2 0x56E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH0 PUSH0 PUSH0 PUSH1 0x20 PUSH0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x4A2E JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4A39 JUMPI POP PUSH0 DUP2 GT JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4A60 SWAP2 SWAP1 PUSH2 0x58F4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4A98 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4A9D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4AAE DUP7 DUP4 DUP4 DUP8 PUSH2 0x4B80 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x4B19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x983 JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B34 SWAP2 SWAP1 PUSH2 0x58F4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4B6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4B73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4A39 DUP8 DUP4 DUP4 DUP8 JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4BEE JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x4BE7 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x4BE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x983 JUMP JUMPDEST POP DUP2 PUSH2 0x13BF JUMP JUMPDEST PUSH2 0x13BF DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x4C03 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x983 SWAP2 SWAP1 PUSH2 0x4C7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C42 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F4D DUP2 PUSH2 0x4C1D JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x2F4D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4C4D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4CC5 JUMPI PUSH2 0x4CC5 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4CDA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4CFA JUMPI PUSH2 0x4CFA PUSH2 0x4C8D JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4D29 JUMPI PUSH2 0x4D29 PUSH2 0x4C8D JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x4D40 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4D82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4D98 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4DA4 DUP7 DUP3 DUP8 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4DC0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4DCC DUP7 DUP3 DUP8 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x4DDD DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4DF8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4E10 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4E1B DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4E3B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4E46 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4E56 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E77 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2F4D DUP2 PUSH2 0x4D5C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xCA0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4EBF DUP4 PUSH2 0x4E96 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3904 DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3904 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4EF5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4EFD PUSH2 0x4CA1 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x4F77 PUSH2 0x160 DUP4 ADD PUSH2 0x4EC5 JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x4F8A PUSH2 0x180 DUP4 ADD PUSH2 0x4ED0 JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x4F9D PUSH2 0x1A0 DUP4 ADD PUSH2 0x4ED0 JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3904 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4FD8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4FE2 DUP7 DUP7 PUSH2 0x4EE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x4FF2 DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0x4EE4 JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0x5003 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x5012 PUSH2 0x3A0 DUP7 ADD PUSH2 0x4FA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x502E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5039 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5054 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5060 DUP6 DUP3 DUP7 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x507A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5090 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x13BF DUP5 DUP3 DUP6 ADD PUSH2 0x4CCB JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x50B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x50C4 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x509C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x50F3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x50FD DUP7 DUP7 PUSH2 0x4EE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0x510E DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0x511F DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x5012 PUSH2 0x200 DUP7 ADD PUSH2 0x4FA9 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x513F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5156 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x512E JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5172 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x517C DUP5 DUP5 PUSH2 0x512E JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x519C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x51C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51D8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP6 PUSH1 0x20 PUSH2 0x1C0 DUP4 MUL DUP5 ADD ADD GT ISZERO PUSH2 0x51ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCA0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x521B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5226 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5249 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5254 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x5264 DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5286 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5292 DUP8 DUP3 DUP9 ADD PUSH2 0x4CCB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x52BA DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH2 0x52C8 PUSH1 0x20 DUP5 ADD PUSH2 0x4FA9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x52E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x52ED DUP2 PUSH2 0x4D5C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x4D5C JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x530F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x5319 DUP5 DUP5 PUSH2 0x512E JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x50D4 DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x533E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x513F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x4D5C JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x54E6 PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x5501 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0xB90 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x380 DUP2 ADD PUSH2 0x552B DUP3 DUP6 PUSH2 0x545C JUMP JUMPDEST PUSH2 0x2F4D PUSH2 0x1C0 DUP4 ADD DUP5 PUSH2 0x545C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x857 PUSH2 0x5539 JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x857 DUP3 DUP5 PUSH2 0x545C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x557F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB90 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x55AB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x55CA JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x55B7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x55EB JUMPI PUSH2 0x55EB PUSH2 0x4C8D JUMP JUMPDEST PUSH2 0x55FF DUP2 PUSH2 0x55F9 DUP5 SLOAD PUSH2 0x532A JUMP JUMPDEST DUP5 PUSH2 0x5586 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5631 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x561A JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x55CA JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5660 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x5640 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x567D JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x5699 DUP5 PUSH2 0x4E96 JUMP JUMPDEST DUP4 DUP3 MSTORE PUSH2 0x56A5 DUP4 PUSH2 0x4E96 JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP3 PUSH2 0x4ED0 JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x56DC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x2F4D DUP4 DUP4 PUSH2 0x4EE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x570B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x51FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x56A5 DUP4 PUSH2 0x4E96 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x573C DUP5 PUSH2 0x4E96 JUMP JUMPDEST SWAP3 DUP2 MSTORE PUSH1 0x20 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x857 JUMPI PUSH2 0x857 PUSH2 0x5539 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x13BF PUSH2 0x5792 DUP4 DUP7 PUSH2 0x576D JUMP JUMPDEST DUP5 PUSH2 0x576D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x588A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2F4D DUP2 PUSH2 0x4C1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH2 0x200 DUP2 ADD PUSH2 0x58B3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x545C JUMP JUMPDEST DUP3 PUSH2 0x1E0 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x4AAE SWAP1 DUP4 ADD DUP5 PUSH2 0x4C4D JUMP JUMPDEST PUSH0 PUSH2 0x2F4D DUP3 DUP5 PUSH2 0x576D JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65645543 TSTORE 0xD2 PUSH2 0xA4B9 0xB3 CALLDATASIZE BLOBHASH PUSH4 0xF7738A7A PUSH7 0x2AD9C84396D64B 0xE3 CALLDATASIZE MSTORE DUP5 0xBB PUSH32 0xA5041A2646970667358221220B1DA5C23D2DC17F863551361C2DEB4CA7A4E8E LOG0 0xEB 0xC4 ORIGIN PUSH23 0xC37001FA42C1758064736F6C634300081C003300000000 ","sourceMap":"2099:29143:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11184:193;;;;;;;;;;-1:-1:-1;11184:193:56;;;;;:::i;:::-;;:::i;:::-;;;565:14:88;;558:22;540:41;;528:2;513:18;11184:193:56;;;;;;;;2953:98:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10770:355:56:-;;;;;;;;;;-1:-1:-1;10770:355:56;;;;;:::i;:::-;;:::i;:::-;;4428:167:9;;;;;;;;;;-1:-1:-1;4428:167:9;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3623:32:88;;;3605:51;;3593:2;3578:18;4428:167:9;3459:203:88;3950:417:9;;;;;;;;;;-1:-1:-1;3950:417:9;;;;;:::i;:::-;;:::i;5105:296::-;;;;;;;;;;-1:-1:-1;5105:296:9;;;;;:::i;:::-;;:::i;2304:66:56:-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2304:66:56;;;;;4698:25:88;;;4686:2;4671:18;2304:66:56;4552:177:88;18707:147:56;;;;;;;;;;-1:-1:-1;18707:147:56;;;;;:::i;:::-;-1:-1:-1;;;;;18820:22:56;18790:15;18820:22;;;:11;:22;;;;;:29;;;;18707:147;;;;;;;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;21928:2941:56:-;;;;;;;;;;-1:-1:-1;21928:2941:56;;;;;:::i;:::-;;:::i;12686:85::-;;;;;;;;;;;;;:::i;5467:149:9:-;;;;;;;;;;-1:-1:-1;5467:149:9;;;;;:::i;:::-;;:::i;19666:374:56:-;;;;;;;;;;-1:-1:-1;19666:374:56;;;;;:::i;:::-;;:::i;2440:62::-;;;;;;;;;;;;2478:24;2440:62;;3922:220:7;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;30546:200:56:-;;;;;;;;;;-1:-1:-1;30546:200:56;;;;;:::i;:::-;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;17874:652:56;;;;;;;;;;-1:-1:-1;17874:652:56;;;;;:::i;:::-;;:::i;13715:88::-;;;;;;;;;;-1:-1:-1;13789:9:56;;-1:-1:-1;;;;;13789:9:56;13715:88;;2672:219:9;;;;;;;;;;-1:-1:-1;2672:219:9;;;;;:::i;:::-;;:::i;20278:1646:56:-;;;;;;;;;;-1:-1:-1;20278:1646:56;;;;;:::i;:::-;;:::i;25203:215::-;;;;;;;;;;-1:-1:-1;25203:215:56;;;;;:::i;:::-;;:::i;14431:1209::-;;;;;;;;;;-1:-1:-1;14431:1209:56;;;;;:::i;:::-;;:::i;16086:1245::-;;;;;;;;;;-1:-1:-1;16086:1245:56;;;;;:::i;:::-;;:::i;2411:204:9:-;;;;;;;;;;-1:-1:-1;2411:204:9;;;;;:::i;:::-;;:::i;12775:99:56:-;;;;;;;;;;-1:-1:-1;12862:7:56;12775:99;;26211:119;;;;;;;;;;-1:-1:-1;26211:119:56;;;;;:::i;:::-;26284:7;26306:19;;;:9;:19;;;;;;;26211:119;25703:161;;;;;;;;;;-1:-1:-1;25703:161:56;;;;;:::i;:::-;;:::i;26082:125::-;;;;;;;;;;-1:-1:-1;26082:125:56;;;;;:::i;:::-;26150:4;26169:19;;;:9;:19;;;;;;:33;;;26082:125;12389:67;;;;;;;;;;;;;:::i;25422:277::-;;;;;;;;;;-1:-1:-1;25422:277:56;;;;;:::i;:::-;;:::i;3115:102:9:-;;;;;;;;;;;;;:::i;4662:153::-;;;;;;;;;;-1:-1:-1;4662:153:9;;;;;:::i;:::-;;:::i;5682:276::-;;;;;;;;;;-1:-1:-1;5682:276:9;;;;;:::i;:::-;;:::i;25044:155:56:-;;;;;;;;;;-1:-1:-1;25044:155:56;;;;;:::i;:::-;;:::i;3283:276:9:-;;;;;;;;;;-1:-1:-1;3283:276:9;;;;;:::i;:::-;;:::i;12878:103:56:-;;;;;;;;;;-1:-1:-1;12967:9:56;12878:103;;4881:162:9;;;;;;;;;;-1:-1:-1;4881:162:9;;;;;:::i;:::-;-1:-1:-1;;;;;5001:25:9;;;4978:4;5001:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4881:162;13506:105:56;;;;;;;;;;-1:-1:-1;13506:105:56;;;;;:::i;:::-;;:::i;20044:230::-;;;;;;;;;;-1:-1:-1;20044:230:56;;;;;:::i;:::-;;:::i;2374:62::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2374:62:56;;25868:210;;;;;;;;;;-1:-1:-1;25868:210:56;;;;;:::i;:::-;;:::i;11184:193::-;11269:4;11288:36;11312:11;11288:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;11328:44:56;;-1:-1:-1;;;11328:44:56;11288:84;11281:91;11184:193;-1:-1:-1;;11184:193:56:o;2953:98:9:-;3007:13;3039:5;3032:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2953:98;:::o;10770:355:56:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;16589:2:88;3325:201:6;;;16571:21:88;16628:2;16608:18;;;16601:30;16667:34;16647:18;;;16640:62;-1:-1:-1;;;16718:18:88;;;16711:44;16772:19;;3325:201:6;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;10888:5:56::1;10882:19;10905:1;10882:24:::0;10878:50:::1;;10915:13;;-1:-1:-1::0;;;10915:13:56::1;;;;;;;;;;;10878:50;10944:7;10938:21;10963:1;10938:26:::0;10934:54:::1;;10973:15;;-1:-1:-1::0;;;10973:15:56::1;;;;;;;;;;;10934:54;10994:24;:22;:24::i;:::-;11024:29;11038:5;11045:7;11024:13;:29::i;:::-;11059:17;:15;:17::i;:::-;11082:38;11110:9;11082:27;:38::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;16954:36:88;;3721:14:6;;16942:2:88;16927:18;3721:14:6;;;;;;;3647:99;3269:483;10770:355:56;;;:::o;4428:167:9:-;4504:7;4523:23;4538:7;4523:14;:23::i;:::-;-1:-1:-1;4564:24:9;;;;:15;:24;;;;;;-1:-1:-1;;;;;4564:24:9;;4428:167::o;3950:417::-;4030:13;4046:34;4072:7;4046:25;:34::i;:::-;4030:50;;4104:5;-1:-1:-1;;;;;4098:11:9;:2;-1:-1:-1;;;;;4098:11:9;;4090:57;;;;-1:-1:-1;;;4090:57:9;;17203:2:88;4090:57:9;;;17185:21:88;17242:2;17222:18;;;17215:30;17281:34;17261:18;;;17254:62;-1:-1:-1;;;17332:18:88;;;17325:31;17373:19;;4090:57:9;17001:397:88;4090:57:9;965:10:14;-1:-1:-1;;;;;4179:21:9;;;;:62;;-1:-1:-1;4204:37:9;4221:5;965:10:14;4881:162:9;:::i;4204:37::-;4158:170;;;;-1:-1:-1;;;4158:170:9;;17605:2:88;4158:170:9;;;17587:21:88;17644:2;17624:18;;;17617:30;17683:34;17663:18;;;17656:62;17754:31;17734:18;;;17727:59;17803:19;;4158:170:9;17403:425:88;4158:170:9;4339:21;4348:2;4352:7;4339:8;:21::i;:::-;4020:347;3950:417;;:::o;5105:296::-;5264:41;965:10:14;5297:7:9;5264:18;:41::i;:::-;5256:99;;;;-1:-1:-1;;;5256:99:9;;;;;;;:::i;:::-;5366:28;5376:4;5382:2;5386:7;5366:9;:28::i;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;21928:2941:56:-;22119:7;1503:19:8;:17;:19::i;:::-;22148:26:56::1;22164:9;22148:15;:26::i;:::-;22197:20;::::0;::::1;::::0;-1:-1:-1;;;;;22227:27:56;::::1;965:10:14::0;22227:27:56::1;22223:63;;22263:23;;-1:-1:-1::0;;;22263:23:56::1;;;;;;;;;;;22223:63;22292:57;22319:2;22324:24;22292:18;:57::i;:::-;22355:19;22377:2;-1:-1:-1::0;;;;;22377:18:56::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22355:42;;22403:62;22430:2;22435:29;22403:18;:62::i;:::-;22509:15;22479:46;;:9;:20;;;:46;;;22471:80;;;::::0;-1:-1:-1;;;22471:80:56;;19557:2:88;22471:80:56::1;::::0;::::1;19539:21:88::0;19596:2;19576:18;;;19569:30;-1:-1:-1;;;19615:18:88;;;19608:51;19676:18;;22471:80:56::1;19355:345:88::0;22471:80:56::1;22584:10;:16;;;22565:35;;:9;:15;;;:35;;;22557:94;;;::::0;-1:-1:-1;;;22557:94:56;;19907:2:88;22557:94:56::1;::::0;::::1;19889:21:88::0;19946:2;19926:18;;;19919:30;19985:34;19965:18;;;19958:62;-1:-1:-1;;;20036:18:88;;;20029:44;20090:19;;22557:94:56::1;19705:410:88::0;22557:94:56::1;22692:10;:17;;;22672:9;:16;;;:37;;:96;;;;;22746:10;:22;;;22721:9;:21;;;:47;;22672:96;:165;;;;;22810:10;:27;;;22780:9;:26;;;:57;;22672:165;:212;;;;;22868:10;:16;;;22849:9;:15;;;:35;;22672:212;:259;;;;;22915:10;:16;;;22896:9;:15;;;:35;;22672:259;:306;;;;;22962:10;:16;;;22943:9;:15;;;:35;;22672:306;:353;;;;;23009:10;:16;;;22990:9;:15;;;:35;;22672:353;:424;;;;;23068:10;:28;;;23037:9;:27;;;:59;;22672:424;:481;;;;;23132:10;:21;;;23108:45;;:9;:20;;;:45;;;;22672:481;:520;;;;;23171:10;:21;;;-1:-1:-1::0;;;;;23165:27:56::1;:2;-1:-1:-1::0;;;;;23165:27:56::1;;22672:520;22657:602;;;::::0;-1:-1:-1;;;22657:602:56;;20322:2:88;22657:602:56::1;::::0;::::1;20304:21:88::0;20361:2;20341:18;;;20334:30;20400:34;20380:18;;;20373:62;-1:-1:-1;;;20451:18:88;;;20444:49;20510:19;;22657:602:56::1;20120:415:88::0;22657:602:56::1;23297:28;23310:2;23314:10;23297:12;:28::i;:::-;23281:44:::0;;;:13:::1;23339:24:::0;;;:9:::1;:24;::::0;;;;;:38;23331:72:::1;;;::::0;-1:-1:-1;;;23331:72:56;;20742:2:88;23331:72:56::1;::::0;::::1;20724:21:88::0;20781:2;20761:18;;;20754:30;-1:-1:-1;;;20800:18:88;;;20793:51;20861:18;;23331:72:56::1;20540:345:88::0;23331:72:56::1;23436:17;:10;:15;:17::i;:::-;23419:13:::0;;23409:24:::1;::::0;;;:9:::1;:24;::::0;;;;:44;;;;23490:12;;23482:21:::1;::::0;:7:::1;:21::i;:::-;23459:44;;23509:42;23519:12;23533:10;:13;;;23509:42;;;;;;;;;;;::::0;:9:::1;:42::i;:::-;23574:12:::0;;23564:23:::1;::::0;;;:9:::1;:23;::::0;;;;;23557:30;;;;23614:40;-1:-1:-1;;;23614:40:56;;-1:-1:-1;;;;;23614:17:56;::::1;::::0;::::1;::::0;:40:::1;::::0;23574:9;;23643:10;;23614:40:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23691:11;23730:9;:21;;;23705:10;:22;;;:46;;;;:::i;:::-;23691:60:::0;-1:-1:-1;23761:7:56;;23757:64:::1;;23770:51;-1:-1:-1::0;;;;;23770:9:56::1;:26;23797:5:::0;23812:2;23817:3;23770:26:::1;:51::i;:::-;23852:9;:15;;;23833:10;:16;;;:34;;;;:::i;:::-;23827:40:::0;-1:-1:-1;23877:7:56;;23873:76:::1;;23886:63;23913:5;23928:2;-1:-1:-1::0;;;;;23928:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23886:9:56::1;:26;::::0;:63;23945:3;23886:26:::1;:63::i;:::-;23980:9;:15;;;23961:10;:16;;;:34;;;;:::i;:::-;23955:40:::0;-1:-1:-1;24005:7:56;;24001:76:::1;;24014:63;24041:5;24056:2;-1:-1:-1::0;;;;;24056:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24014:63;24119:9;:26;;;24089:10;:27;;;:56;;;;:::i;:::-;24083:62:::0;-1:-1:-1;24155:7:56;;24151:62:::1;;24198:9;::::0;24164:49:::1;::::0;-1:-1:-1;;;;;24164:9:56::1;:26:::0;::::1;::::0;24191:5;;24198:9:::1;24209:3:::0;24164:26:::1;:49::i;:::-;24256:9;:27;;;24225:10;:28;;;:58;;;;:::i;:::-;24219:64;;24299:1;24293:3;:7;:31;;;;;24313:2;-1:-1:-1::0;;;;;24313:9:56::1;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24304:20:56::1;:5;-1:-1:-1::0;;;;;24304:20:56::1;;;24293:31;24289:88;;;24326:51;24353:5;24360:2;-1:-1:-1::0;;;;;24360:9:56::1;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24326:51;24712:2;-1:-1:-1::0;;;;;24702:25:56::1;;24716:10;24702:25;;;;;;:::i;:::-;;;;;;;;24771:13:::0;;24757:12;;24738:47:::1;::::0;-1:-1:-1;;;;;24738:47:56;::::1;::::0;::::1;::::0;24771:13:::1;::::0;24738:47:::1;24810:12:::0;;24824:13;;24791:47:::1;::::0;24810:12;24791:18:::1;:47::i;:::-;-1:-1:-1::0;;24851:13:56;;;-1:-1:-1;;;1532:1:8::1;21928:2941:56::0;;;;;;:::o;12686:85::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;9810:7:56;:18;;2344:26;2412:24;965:10:14;9810:46:56;;-1:-1:-1;;;;;;9810:46:56;;;;;;;;;;23698:25:88;;;;23739:18;;;23732:34;;;;-1:-1:-1;;;;;23802:32:88;23782:18;;;23775:60;23671:18;;9810:46:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12756:10:::1;:8;:10::i;:::-;12686:85:::0;;:::o;5467:149:9:-;5570:39;5587:4;5593:2;5597:7;5570:39;;;;;;;;;;;;:16;:39::i;19666:374:56:-;1503:19:8;:17;:19::i;:::-;19753:57:56::1;19780:6;19789:20;19753:18;:57::i;:::-;19840:36;::::0;-1:-1:-1;;;19840:36:56;;-1:-1:-1;;;;;3623:32:88;;;19840:36:56::1;::::0;::::1;3605:51:88::0;19816:21:56::1;::::0;19840:9:::1;:19:::0;;::::1;::::0;::::1;::::0;3578:18:88;;19840:36:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19816:60:::0;-1:-1:-1;19882:65:56::1;:9;-1:-1:-1::0;;;;;19882:26:56::1;965:10:14::0;19931:6:56;19940;19882:26:::1;:65::i;:::-;-1:-1:-1::0;;;;;19953:14:56;::::1;;965:10:14::0;19982:36:56::1;::::0;-1:-1:-1;;;19982:36:56;;-1:-1:-1;;;;;3623:32:88;;;19982:36:56::1;::::0;::::1;3605:51:88::0;20021:13:56;;19982:9:::1;:19:::0;;::::1;::::0;::::1;::::0;3578:18:88;;19982:36:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;19953:82;::::0;-1:-1:-1;;;;;;19953:82:56::1;::::0;;;;;;-1:-1:-1;;;;;24227:32:88;;;19953:82:56::1;::::0;::::1;24209:51:88::0;24276:18;;;24269:34;24182:18;;19953:82:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3922:220:7:-:0;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;24516:2:88;2174:92:7;;;24498:21:88;24555:2;24535:18;;;24528:30;24594:34;24574:18;;;24567:62;24665:26;24645:18;;;24638:54;24709:19;;2174:92:7;24314:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;30546:200:56:-;2478:24;-1:-1:-1;;;;;9621:7:56;:17;;2478:24;965:10:14;9621:37:56;;-1:-1:-1;;;;;;9621:37:56;;;;;;;;;;24913:25:88;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;9621:37:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30644:11:::1;30630;:25;;;;;;:::i;:::-;-1:-1:-1::0;30666:75:56::1;::::0;965:10:14;3605:51:88;;30683:43:56::1;::::0;30666:75:::1;::::0;3593:2:88;3578:18;30666:75:56::1;;;;;;;;30546:200:::0;;:::o;17874:652::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;9810:7:56;:18;;2344:26;2412:24;965:10:14;9810:46:56;;-1:-1:-1;;;;;;9810:46:56;;;;;;;;;;23698:25:88;;;;23739:18;;;23732:34;;;;-1:-1:-1;;;;;23802:32:88;23782:18;;;23775:60;23671:18;;9810:46:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;18054:22:56;::::1;18029;18054::::0;;;:11:::1;:22;::::0;;;;;-1:-1:-1;18086:11:56;;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;::::0;18082:71:::1;;18134:19;;-1:-1:-1::0;;;18134:19:56::1;;;;;;;;;;;18082:71;18176:22;18163:9;:35;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1::0;18215:26:56::1;18202:9;:39;;;;;;;;:::i;:::-;;18163:78;18159:268;;;-1:-1:-1::0;;;;;18251:7:56::1;:17;;-1:-1:-1::0;;;;;;;;;;;965:10:14;18251:44:56::1;::::0;-1:-1:-1;;;;;;18251:44:56::1;::::0;;;;;;::::1;::::0;::::1;24913:25:88::0;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;18251:44:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18159:268;;;-1:-1:-1::0;;;;;18374:7:56::1;:17;;-1:-1:-1::0;;;;;;;;;;;965:10:14;18374:46:56::1;::::0;-1:-1:-1;;;;;;18374:46:56::1;::::0;;;;;;::::1;::::0;::::1;24913:25:88::0;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;18374:46:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18159:268;18432:23:::0;;18446:9;;18432:4;;-1:-1:-1;;18432:23:56::1;::::0;18446:9;18432:23:::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;18500:9:56;;18466:55:::1;::::0;-1:-1:-1;;;;;18466:55:56;::::1;::::0;::::1;::::0;::::1;::::0;18500:9:::1;::::0;::::1;;;::::0;18511;;18466:55:::1;:::i;:::-;;;;;;;;18023:503;17874:652:::0;;;;:::o;2672:219:9:-;2744:7;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;;2806:56;;;;-1:-1:-1;;;2806:56:9;;27741:2:88;2806:56:9;;;27723:21:88;27780:2;27760:18;;;27753:30;-1:-1:-1;;;27799:18:88;;;27792:54;27863:18;;2806:56:9;27539:348:88;20278:1646:56;20447:7;1503:19:8;:17;:19::i;:::-;20493:17:56::1;::::0;::::1;::::0;-1:-1:-1;;;;;20520:27:56;::::1;965:10:14::0;20520:27:56::1;20516:63;;20556:23;;-1:-1:-1::0;;;20556:23:56::1;;;;;;;;;;;20516:63;20585:57;20612:2;20617:24;20585:18;:57::i;:::-;20648:19;20670:2;-1:-1:-1::0;;;;;20670:18:56::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20648:42;;20696:62;20723:2;20728:29;20696:18;:62::i;:::-;20792:28;20805:2;20809:10;20792:12;:28::i;:::-;20780:40:::0;;;:9:::1;20834:20:::0;;;:9:::1;:20;::::0;;;;;:34;20826:68:::1;;;::::0;-1:-1:-1;;;20826:68:56;;20742:2:88;20826:68:56::1;::::0;::::1;20724:21:88::0;20781:2;20761:18;;;20754:30;-1:-1:-1;;;20800:18:88;;;20793:51;20861:18;;20826:68:56::1;20540:345:88::0;20826:68:56::1;20923:13;:6;:11;:13::i;:::-;20910:9:::0;;20900:20:::1;::::0;;;:9:::1;:20;::::0;;;;;;;:36;;;;20966:9;;20942:38;;;;::::1;::::0;;;;;;::::1;::::0;20952:12;;20942:9:::1;:38::i;:::-;21007:24;::::0;-1:-1:-1;;;21007:24:56;;-1:-1:-1;;;;;21007:16:56;::::1;::::0;::::1;::::0;:24:::1;::::0;21024:6;;21007:24:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;21115:18:56::1;::::0;::::1;::::0;21068:66:::1;::::0;-1:-1:-1;;;;;;21068:9:56::1;:26;::::0;21095:5;;21110:2;;21068:26:::1;:66::i;:::-;21144:12;::::0;::::1;::::0;:16;21140:94:::1;;21162:72;21189:5;21204:2;-1:-1:-1::0;;;;;21204:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21221:12;::::0;::::1;::::0;-1:-1:-1;;;;;21162:9:56::1;:26;::::0;:72;;:26:::1;:72::i;:::-;21244:12;::::0;::::1;::::0;:16;21240:94:::1;;21262:72;21289:5;21304:2;-1:-1:-1::0;;;;;21304:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21321:12;::::0;::::1;::::0;-1:-1:-1;;;;;21262:9:56::1;:26;::::0;:72;;:26:::1;:72::i;:::-;21374:9;::::0;21385:23:::1;::::0;::::1;::::0;21340:69:::1;::::0;-1:-1:-1;;;;;21340:9:56::1;:26:::0;::::1;::::0;21367:5;;21374:9;;;::::1;::::0;21340:26:::1;:69::i;:::-;21446:1;21419:6;:24;;;:28;:52;;;;;21460:2;-1:-1:-1::0;;;;;21460:9:56::1;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21451:20:56::1;:5;-1:-1:-1::0;;;;;21451:20:56::1;;;21419:52;21415:136;;;21479:72;21506:5;21513:2;-1:-1:-1::0;;;;;21513:9:56::1;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21526:24;::::0;::::1;::::0;-1:-1:-1;;;;;21479:9:56::1;:26;::::0;:72;;:26:::1;:72::i;:::-;21886:2;-1:-1:-1::0;;;;;21876:21:56::1;;21890:6;21876:21;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;21910:9:56;;;20278:1646;-1:-1:-1;;;;20278:1646:56:o;25203:215::-;1503:19:8;:17;:19::i;:::-;25327:15:56::1;25306:17;::::0;;;::::1;::::0;::::1;;:::i;:::-;:36;;;;25298:71;;;::::0;-1:-1:-1;;;25298:71:56;;28283:2:88;25298:71:56::1;::::0;::::1;28265:21:88::0;28322:2;28302:18;;;28295:30;-1:-1:-1;;;28341:18:88;;;28334:52;28403:18;;25298:71:56::1;28081:346:88::0;25298:71:56::1;25382:31;;;::::0;;::::1;::::0;::::1;25397:6:::0;25382:31:::1;:::i;:::-;25405:1;25408:4;25382:14;:31::i;14431:1209::-:0;-1:-1:-1;;;;;;;;;;;;;;;;9621:7:56;:17;;2412:24;965:10:14;9621:37:56;;-1:-1:-1;;;;;;9621:37:56;;;;;;;;;;24913:25:88;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;9621:37:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;14567:22:56;::::1;14542;14567::::0;;;:11:::1;:22;::::0;;;;;-1:-1:-1;14599:11:56;;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;;14595:79;;14647:27;;-1:-1:-1::0;;;14647:27:56::1;;;;;;;;;;;14595:79;14710:4;-1:-1:-1::0;;;;;14684:30:56::1;:9;-1:-1:-1::0;;;;;14684:20:56::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14684:30:56::1;;14680:73;;14723:30;;-1:-1:-1::0;;;14723:30:56::1;;;;;;;;;;;14680:73;14780:20;14772:4;:28;;;;;;;;:::i;:::-;;:87;;;;-1:-1:-1::0;14805:54:56::1;::::0;-1:-1:-1;;;14805:54:56;;-1:-1:-1;;;;;14805:27:56;::::1;::::0;::::1;::::0;:54:::1;::::0;-1:-1:-1;;;14833:25:56;14805:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14804:55;14772:87;14771:206;;;-1:-1:-1::0;14879:29:56::1;14871:4;:37;;;;;;;;:::i;:::-;;:105;;;;-1:-1:-1::0;14913:63:56::1;::::0;-1:-1:-1;;;14913:63:56;;-1:-1:-1;;;;;14913:27:56;::::1;::::0;::::1;::::0;:63:::1;::::0;-1:-1:-1;;;14941:34:56;14913:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14912:64;14871:105;14771:313;;;-1:-1:-1::0;14996:24:56::1;14988:4;:32;;;;;;;;:::i;:::-;;:95;;;;-1:-1:-1::0;15025:58:56::1;::::0;-1:-1:-1;;;15025:58:56;;-1:-1:-1;;;;;15025:27:56;::::1;::::0;::::1;::::0;:58:::1;::::0;-1:-1:-1;;;15053:29:56;15025:58:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15024:59;14988:95;14760:379;;;15123:9;15134:4;15098:41;;-1:-1:-1::0;;;15098:41:56::1;;;;;;;;;:::i;14760:379::-;15146:36:::0;;15160:22:::1;-1:-1:-1::0;;15146:36:56;::::1;::::0;::::1;::::0;;15200:4;;15146:36;;-1:-1:-1;;15188:16:56;;;;::::1;15200:4:::0;15188:16:::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;15222:29:56::1;15214:4;:37;;;;;;;;:::i;:::-;::::0;15210:352:::1;;15261:19;15308:9;15261:58;;15327:11;15341:2;-1:-1:-1::0;;;;;15341:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15327:28:::0;-1:-1:-1;;;;;;15367:26:56;::::1;::::0;15363:79:::1;;15405:28;::::0;-1:-1:-1;;;15405:28:56;;-1:-1:-1;;;;;3623:32:88;;;15405:28:56::1;::::0;::::1;3605:51:88::0;15405:15:56;::::1;::::0;::::1;::::0;3578:18:88;;15405:28:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15363:79;15455:2;-1:-1:-1::0;;;;;15455:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15449:20:::0;-1:-1:-1;;;;;;15481:26:56;::::1;::::0;15477:79:::1;;15519:28;::::0;-1:-1:-1;;;15519:28:56;;-1:-1:-1;;;;;3623:32:88;;;15519:28:56::1;::::0;::::1;3605:51:88::0;15519:15:56;::::1;::::0;::::1;::::0;3578:18:88;;15519:28:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15477:79;15253:309;;15210:352;15595:9;-1:-1:-1::0;;;;;15572:63:56::1;;15606:4;15612:22;15572:63;;;;;;;:::i;:::-;;;;;;;;14536:1104;14431:1209:::0;;;:::o;16086:1245::-;-1:-1:-1;;;;;;;;;;;;;;;;9621:7:56;:17;;2412:24;965:10:14;9621:37:56;;-1:-1:-1;;;;;;9621:37:56;;;;;;;;;;24913:25:88;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;9621:37:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;16205:22:56;::::1;16180;16205::::0;;;:11:::1;:22;::::0;;;;16252:26:::1;16237:11:::0;;::::1;;:41;::::0;::::1;;;;;;:::i;:::-;;16233:78;;16287:24;;-1:-1:-1::0;;;16287:24:56::1;;;;;;;;;;;16233:78;16334:20;16321:9:::0;;::::1;::::0;::::1;;;:33;::::0;::::1;;;;;;:::i;:::-;::::0;16317:894:::1;;16384:9;-1:-1:-1::0;;;;;16368:39:56::1;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46:::0;16364:147:::1;;16458:4;:9;;;;;;;;;;;;16485;-1:-1:-1::0;;;;;16469:39:56::1;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16431:80;;-1:-1:-1::0;;;16431:80:56::1;;;;;;;;;:::i;16364:147::-;16317:894;;;16541:24;16528:9:::0;;::::1;::::0;::::1;;;:37;::::0;::::1;;;;;;:::i;:::-;::::0;16524:687:::1;;16599:9;-1:-1:-1::0;;;;;16579:46:56::1;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53:::0;16575:161:::1;;16676:4;:9;;;;;;;;;;;;16707;-1:-1:-1::0;;;;;16687:46:56::1;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16524:687;16766:29;16753:9:::0;;::::1;::::0;::::1;;;:42;::::0;::::1;;;;;;:::i;:::-;::::0;16749:462:::1;;16805:19;16852:9;16805:58;;16875:2;-1:-1:-1::0;;;;;16875:15:56::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:22:::0;16871:91:::1;;16933:4;:9;;;;;;;;;;;;16944:2;-1:-1:-1::0;;;;;16944:15:56::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16871:91;16970:11;16984:2;-1:-1:-1::0;;;;;16984:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16970:28:::0;-1:-1:-1;;;;;;17010:26:56;::::1;::::0;17006:82:::1;;17048:31;::::0;-1:-1:-1;;;17048:31:56;;-1:-1:-1;;;;;3623:32:88;;;17048:31:56::1;::::0;::::1;3605:51:88::0;17048:18:56;::::1;::::0;::::1;::::0;3578::88;;17048:31:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17006:82;17101:2;-1:-1:-1::0;;;;;17101:12:56::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17095:20:::0;-1:-1:-1;;;;;;17127:26:56;::::1;::::0;17123:82:::1;;17165:31;::::0;-1:-1:-1;;;17165:31:56;;-1:-1:-1;;;;;3623:32:88;;;17165:31:56::1;::::0;::::1;3605:51:88::0;17165:18:56;::::1;::::0;::::1;::::0;3578::88;;17165:31:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17123:82;16797:414;;16749:462;17255:9:::0;;17221:70:::1;::::0;-1:-1:-1;;;;;17221:70:56;::::1;::::0;::::1;::::0;::::1;::::0;17255:9:::1;::::0;::::1;;;::::0;::::1;::::0;17221:70:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;;;17304:22:56::1;;::::0;;;:11:::1;:22;::::0;;;;17297:29;;-1:-1:-1;;17297:29:56;;;16086:1245::o;2411:204:9:-;2483:7;-1:-1:-1;;;;;2510:19:9;;2502:73;;;;-1:-1:-1;;;2502:73:9;;30312:2:88;2502:73:9;;;30294:21:88;30351:2;30331:18;;;30324:30;30390:34;30370:18;;;30363:62;-1:-1:-1;;;30441:18:88;;;30434:39;30490:19;;2502:73:9;30110:405:88;2502:73:9;-1:-1:-1;;;;;;2592:16:9;;;;;:9;:16;;;;;;;2411:204::o;25703:161:56:-;1503:19:8;:17;:19::i;:::-;25822:37:56::1;;;::::0;;::::1;::::0;::::1;25837:6:::0;25822:37:::1;:::i;:::-;25845:6;25853:5;25822:14;:37::i;12389:67::-:0;-1:-1:-1;;;;;;;;;;;;;;;;9621:7:56;:17;;2344:26;965:10:14;9621:37:56;;-1:-1:-1;;;;;;9621:37:56;;;;;;;;;;24913:25:88;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;9621:37:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12443:8:::1;:6;:8::i;25422:277::-:0;1503:19:8;:17;:19::i;:::-;25519:9:56::1;25514:181;25534:19:::0;;::::1;25514:181;;;25602:15;25576:8;;25585:1;25576:11;;;;;;;:::i;:::-;;;;;;:22;;;;;;;;;;:::i;:::-;:41;;;;25568:76;;;::::0;-1:-1:-1;;;25568:76:56;;28283:2:88;25568:76:56::1;::::0;::::1;28265:21:88::0;28322:2;28302:18;;;28295:30;-1:-1:-1;;;28341:18:88;;;28334:52;28403:18;;25568:76:56::1;28081:346:88::0;25568:76:56::1;25652:36;25667:8;;25676:1;25667:11;;;;;;;:::i;:::-;;;;;;25652:36;;;;;;;;;;:::i;:::-;25555:3;;25514:181;;3115:102:9::0;3171:13;3203:7;3196:14;;;;;:::i;4662:153::-;4756:52;965:10:14;4789:8:9;4799;4756:18;:52::i;5682:276::-;5812:41;965:10:14;5845:7:9;5812:18;:41::i;:::-;5804:99;;;;-1:-1:-1;;;5804:99:9;;;;;;;:::i;:::-;5913:38;5927:4;5933:2;5937:7;5946:4;5913:13;:38::i;25044:155:56:-;25122:7;25144:50;;;;-1:-1:-1;;25178:2:56;25145:35;;;;25144:50;:::i;:::-;25137:57;25044:155;-1:-1:-1;;;25044:155:56:o;3283:276:9:-;3356:13;3381:23;3396:7;3381:14;:23::i;:::-;3415:21;3439:10;:8;:10::i;:::-;3415:34;;3490:1;3472:7;3466:21;:25;:86;;;;;;;;;;;;;;;;;3518:7;3527:18;:7;:16;:18::i;:::-;3501:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3459:93;3283:276;-1:-1:-1;;;3283:276:9:o;13506:105:56:-;-1:-1:-1;;;;;;;;;;;;;;;;9621:7:56;:17;;2412:24;965:10:14;9621:37:56;;-1:-1:-1;;;;;;9621:37:56;;;;;;;;;;24913:25:88;;;;-1:-1:-1;;;;;24974:32:88;24954:18;;;24947:60;24886:18;;9621:37:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13583:23:::1;13596:9;13583:12;:23::i;20044:230::-:0;20135:7;1503:19:8;:17;:19::i;:::-;20150:69:56::1;20189:6;20198:20;20150:30;:69::i;:::-;-1:-1:-1::0;;;;;20232:15:56;::::1;;965:10:14::0;20232:37:56::1;::::0;-1:-1:-1;;;;;;20232:37:56::1;::::0;;;;;;-1:-1:-1;;;;;24227:32:88;;;20232:37:56::1;::::0;::::1;24209:51:88::0;24276:18;;;24269:34;;;24182:18;;20232:37:56::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25868:210::-:0;1503:19:8;:17;:19::i;:::-;26011:62:56::1;;;::::0;;::::1;::::0;::::1;26026:6:::0;26011:62:::1;:::i;:::-;26034:11;:31;;26064:1;26034:31;;;26048:6;:13;;;26034:31;26067:5;26011:14;:62::i;2008:344:9:-:0;2132:4;-1:-1:-1;;;;;;2167:51:9;;-1:-1:-1;;;2167:51:9;;:126;;-1:-1:-1;;;;;;;2234:59:9;;-1:-1:-1;;;2234:59:9;2167:126;:178;;;-1:-1:-1;;;;;;;;;;1189:51:17;;;2309:36:9;1081:166:17;2290:67:7;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;2290:67:7:o;1626:149:9:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1729:39:9::1;1753:5;1760:7;1729:23;:39::i;1084:97:8:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;11432:116:56:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;11520:23:56::1;11533:9;11520:12;:23::i;13799:133:9:-:0;7678:4;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;13872:53;;;;-1:-1:-1;;;13872:53:9;;27741:2:88;13872:53:9;;;27723:21:88;27780:2;27760:18;;;27753:30;-1:-1:-1;;;27799:18:88;;;27792:54;27863:18;;13872:53:9;27539:348:88;13120:182:9;13194:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13194:29:9;-1:-1:-1;;;;;13194:29:9;;;;;;;;:24;;13247:34;13194:24;13247:25;:34::i;:::-;-1:-1:-1;;;;;13238:57:9;;;;;;;;;;;13120:182;;:::o;7897:272::-;7990:4;8006:13;8022:34;8048:7;8022:25;:34::i;:::-;8006:50;;8085:5;-1:-1:-1;;;;;8074:16:9;:7;-1:-1:-1;;;;;8074:16:9;;:52;;;-1:-1:-1;;;;;;5001:25:9;;;4978:4;5001:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8094:32;8074:87;;;;8154:7;-1:-1:-1;;;;;8130:31:9;:20;8142:7;8130:11;:20::i;:::-;-1:-1:-1;;;;;8130:31:9;;8066:96;7897:272;-1:-1:-1;;;;7897:272:9:o;11783:1225::-;11918:4;-1:-1:-1;;;;;11880:42:9;:34;11906:7;11880:25;:34::i;:::-;-1:-1:-1;;;;;11880:42:9;;11872:92;;;;-1:-1:-1;;;11872:92:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;11982:16:9;;11974:65;;;;-1:-1:-1;;;11974:65:9;;32291:2:88;11974:65:9;;;32273:21:88;32330:2;32310:18;;;32303:30;32369:34;32349:18;;;32342:62;-1:-1:-1;;;32420:18:88;;;32413:34;32464:19;;11974:65:9;32089:400:88;11974:65:9;12050:42;12071:4;12077:2;12081:7;12090:1;12050:20;:42::i;:::-;12230:4;-1:-1:-1;;;;;12192:42:9;:34;12218:7;12192:25;:34::i;:::-;-1:-1:-1;;;;;12192:42:9;;12184:92;;;;-1:-1:-1;;;12184:92:9;;;;;;;:::i;:::-;12345:24;;;;:15;:24;;;;;;;;12338:31;;-1:-1:-1;;;;;;12338:31:9;;;;;;-1:-1:-1;;;;;12813:15:9;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12813:20:9;;;12847:13;;;;;;;;;:18;;12338:31;12847:18;;;12885:16;;;:7;:16;;;;;;:21;;;;;;;;;;12922:27;;12361:7;;12922:27;;;4020:347;3950:417;;:::o;11552:553:56:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;9810:7:56;:18;;2344:26;2412:24;965:10:14;9810:46:56;;-1:-1:-1;;;;;;9810:46:56;;;;;;;;;;23698:25:88;;;;23739:18;;;23732:34;;;;-1:-1:-1;;;;;23802:32:88;23782:18;;;23775:60;23671:18;;9810:46:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11663:19:::1;11697:7;11663:42;;11735:7;-1:-1:-1::0;;;;;11715:27:56::1;:7;-1:-1:-1::0;;;;;11715:14:56::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11715:27:56::1;;11711:67;;11751:27;;-1:-1:-1::0;;;11751:27:56::1;;;;;;;;;;;2841:944:4::0;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;33165:2:88;3631:56:4;;;33147:21:88;33204:2;33184:18;;;33177:30;33243:34;33223:18;;;33216:62;-1:-1:-1;;;33294:18:88;;;33287:44;33348:19;;3631:56:4;32963:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;33580:2:88;3509:82:4;;;33562:21:88;33619:2;33599:18;;;33592:30;33658:34;33638:18;;;33631:62;-1:-1:-1;;;33709:18:88;;;33702:39;33758:19;;3509:82:4;33378:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2031:106:8:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;33990:2:88;2092:38:8;;;33972:21:88;34029:2;34009:18;;;34002:30;-1:-1:-1;;;34048:18:88;;;34041:46;34104:18;;2092:38:8;33788:340:88;24873:167:56;24959:9;;:14;;;;:55;;-1:-1:-1;25004:9:56;;24994:20;;;;:9;:20;;;;;;24977:13;25004:6;24977:11;:13::i;:::-;:37;24959:55;24951:84;;;;-1:-1:-1;;;24951:84:56;;34335:2:88;24951:84:56;;;34317:21:88;34374:2;34354:18;;;34347:30;-1:-1:-1;;;34393:18:88;;;34386:46;34449:18;;24951:84:56;34133:340:88;19170:194:56;19298:22;19261:33;19278:9;19289:4;19261:16;:33::i;:::-;:59;;;;;;;;:::i;:::-;;19257:102;;19329:30;;-1:-1:-1;;;19329:30:56;;;;;;;;;;;4693:214:55;4756:15;4810:6;4799:18;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4799:18:55;;;;;;;;;4789:29;;4799:18;4789:29;;;;;-1:-1:-1;4789:29:55;4824:58;;;;-1:-1:-1;;;4824:58:55;;34680:2:88;4824:58:55;;;34662:21:88;34719:2;34699:18;;;34692:30;34758:26;34738:18;;;34731:54;34802:18;;4824:58:55;34478:348:88;4824:58:55;4693:214;;;:::o;8828:279:9:-;8922:18;8928:2;8932:7;8922:5;:18::i;:::-;8971:53;9002:1;9006:2;9010:7;9019:4;8971:22;:53::i;:::-;8950:150;;;;-1:-1:-1;;;8950:150:9;;;;;;;:::i;1355:203:35:-;1482:68;;;-1:-1:-1;;;;;35470:32:88;;;1482:68:35;;;35452:51:88;35539:32;;35519:18;;;35512:60;35588:18;;;;35581:34;;;1482:68:35;;;;;;;;;;35425:18:88;;;;1482:68:35;;;;;;;;-1:-1:-1;;;;;1482:68:35;-1:-1:-1;;;1482:68:35;;;1455:96;;1475:5;;1455:19;:96::i;29382:572:56:-;29467:16;29486:20;29494:11;29486:7;:20::i;:::-;29467:39;-1:-1:-1;;;;;;1713:19:13;;;29512:53:56;;29558:7;29382:572;;:::o;29512:53::-;29575:76;29607:8;-1:-1:-1;;;29575:31:56;:76::i;:::-;29570:90;;29653:7;29382:572;;:::o;29570:90::-;29666:13;-1:-1:-1;;;;;29682:42:56;;;965:10:14;29682:97:56;;-1:-1:-1;;;;;;29682:97:56;;;;;;;-1:-1:-1;;;;;35875:32:88;;;29682:97:56;;;35857:51:88;29747:4:56;35924:18:88;;;35917:60;35993:18;;;35986:34;;;36036:18;;;36029:34;;;35829:19;;29682:97:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29666:113;-1:-1:-1;;;;;;;29854:51:56;;-1:-1:-1;;;29854:51:56;29850:99;;29942:6;29914:35;;-1:-1:-1;;;29914:35:56;;;;;;;;:::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;3623:32:88;;;3605:51;;3593:2;3578:18;2785:22:8::1;;;;;;;2697:117::o:0;26743:1138:56:-;26859:23;26875:6;26859:15;:23::i;:::-;26905:17;;;;26932:8;;:39;;;;-1:-1:-1;;;;;;26944:27:56;;965:10:14;26944:27:56;;26932:39;26928:75;;;26980:23;;-1:-1:-1;;;26980:23:56;;;;;;;;;;;26928:75;27017:11;;;:50;;;27052:15;27032:6;:17;;;:35;;;27017:50;27009:87;;;;-1:-1:-1;;;27009:87:56;;36530:2:88;27009:87:56;;;36512:21:88;36569:2;36549:18;;;36542:30;36608:26;36588:18;;;36581:54;36652:18;;27009:87:56;36328:348:88;27009:87:56;27102:69;27141:2;27146:24;27102:30;:69::i;:::-;27196:6;:13;;;27186:6;:23;;27178:58;;;;-1:-1:-1;;;27178:58:56;;36883:2:88;27178:58:56;;;36865:21:88;36922:2;36902:18;;;36895:30;-1:-1:-1;;;36941:18:88;;;36934:52;37003:18;;27178:58:56;36681:346:88;27178:58:56;27243:16;27271:1;27262:6;:10;27243:29;;27279:19;27301:2;-1:-1:-1;;;;;27301:18:56;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27279:42;;27327:74;27366:2;27371:29;27327:30;:74::i;:::-;27439:9;;27429:20;;;;:9;:20;;;;;27422:27;27475:181;;;;27500:19;27522:18;27530:6;:9;;;27522:7;:18::i;:::-;27548:56;;-1:-1:-1;;;27548:56:56;;27500:40;;-1:-1:-1;;;;;;27548:27:56;;;;;:56;;27500:40;;27589:6;;27597;;27548:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27492:119;27475:181;;;27625:24;;-1:-1:-1;;;27625:24:56;;-1:-1:-1;;;;;27625:16:56;;;;;:24;;27642:6;;27625:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27475:181;27681:13;;;;27662:33;;-1:-1:-1;;;27662:33:56;;;;;4698:25:88;;;;-1:-1:-1;;;;;27662:18:56;;;;;4671::88;;27662:33:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27741:6;:9;;;27722:6;:17;;;-1:-1:-1;;;;;27707:52:56;;27752:6;27707:52;;;;4698:25:88;;4686:2;4671:18;;4552:177;27707:52:56;;;;;;;;27769:10;;27765:112;;27803:9;;27789:32;;27814:6;27789:13;:32::i;:::-;27765:112;;;27860:9;;27842:28;;:17;:28::i;:::-;26839:1042;;;26743:1138;;;:::o;2450:115:8:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;13438:277:9;13558:8;-1:-1:-1;;;;;13549:17:9;:5;-1:-1:-1;;;;;13549:17:9;;13541:55;;;;-1:-1:-1;;;13541:55:9;;37666:2:88;13541:55:9;;;37648:21:88;37705:2;37685:18;;;37678:30;37744:27;37724:18;;;37717:55;37789:18;;13541:55:9;37464:349:88;13541:55:9;-1:-1:-1;;;;;13606:25:9;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13606:46:9;;;;;;;;;;13667:41;;540::88;;;13667::9;;513:18:88;13667:41:9;;;;;;;13438:277;;;:::o;6819:267::-;6931:28;6941:4;6947:2;6951:7;6931:9;:28::i;:::-;6977:47;7000:4;7006:2;7010:7;7019:4;6977:22;:47::i;:::-;6969:110;;;;-1:-1:-1;;;6969:110:9;;;;;;;:::i;30184:104:56:-;30244:13;30272:11;30265:18;;;;;:::i;480:707:16:-;536:13;585:14;602:28;624:5;602:21;:28::i;:::-;633:1;602:32;585:49;;648:20;682:6;671:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;671:18:16;-1:-1:-1;648:41:16;-1:-1:-1;809:28:16;;;825:2;809:28;864:280;-1:-1:-1;;895:5:16;-1:-1:-1;;;1029:2:16;1018:14;;1013:30;895:5;1000:44;1088:2;1079:11;;;-1:-1:-1;1108:21:16;864:280;1108:21;-1:-1:-1;1164:6:16;480:707;-1:-1:-1;;;480:707:16:o;12985:224:56:-;-1:-1:-1;;;;;13045:23:56;;13041:52;;13077:16;;-1:-1:-1;;;13077:16:56;;;;;;;;;;;13041:52;13099:9;:21;;-1:-1:-1;;;;;;13099:21:56;-1:-1:-1;;;;;13099:21:56;;;;;-1:-1:-1;13194:9:56;;13131:73;;-1:-1:-1;;;;;13194:9:56;;;3605:51:88;;13131:73:56;;3593:2:88;3578:18;13131:73:56;;;;;;;12985:224;:::o;19368:294::-;19467:22;19492:33;19509:9;19520:4;19492:16;:33::i;:::-;19467:58;-1:-1:-1;19545:22:56;19535:6;:32;;;;;;;;:::i;:::-;;;:72;;;;-1:-1:-1;19581:26:56;19571:6;:36;;;;;;;;:::i;:::-;;;19535:72;19531:126;;;19622:35;;-1:-1:-1;;;19622:35:56;;;;;;;;;;;1781:160:9;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1894:5:9::1;:13;1902:5:::0;1894;:13:::1;:::i;:::-;-1:-1:-1::0;1917:7:9::1;:17;1927:7:::0;1917;:17:::1;:::i;1187:95:8:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;30750:211:56:-;1503:19:8;:17;:19::i;:::-;30900:56:56::1;10770:355:::0;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;38152:2:88;1793:106:4;;;38134:21:88;38191:2;38171:18;;;38164:30;38230:34;38210:18;;;38203:62;-1:-1:-1;;;38281:18:88;;;38274:43;38334:19;;1793:106:4;37950:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;18858:308:56:-;-1:-1:-1;;;;;18994:44:56;;18946:15;18994:44;;;:11;:44;;;;;19061:4;19048:17;;;;;;;;:::i;:::-;:9;;;;;;;:17;;;;;;;;:::i;:::-;;19044:93;;19120:9;19132:4;19074:63;;-1:-1:-1;;;19074:63:56;;;;;;;;;:::i;19044:93::-;19150:11;;;;18858:308;-1:-1:-1;;;18858:308:56:o;9429:920:9:-;-1:-1:-1;;;;;9508:16:9;;9500:61;;;;-1:-1:-1;;;9500:61:9;;38566:2:88;9500:61:9;;;38548:21:88;;;38585:18;;;38578:30;38644:34;38624:18;;;38617:62;38696:18;;9500:61:9;38364:356:88;9500:61:9;7678:4;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;7701:31;9571:58;;;;-1:-1:-1;;;9571:58:9;;38927:2:88;9571:58:9;;;38909:21:88;38966:2;38946:18;;;38939:30;39005;38985:18;;;38978:58;39053:18;;9571:58:9;38725:352:88;9571:58:9;9640:48;9669:1;9673:2;9677:7;9686:1;9640:20;:48::i;:::-;7678:4;7287:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7287:16:9;7701:31;9775:58;;;;-1:-1:-1;;;9775:58:9;;38927:2:88;9775:58:9;;;38909:21:88;38966:2;38946:18;;;38939:30;39005;38985:18;;;38978:58;39053:18;;9775:58:9;38725:352:88;9775:58:9;-1:-1:-1;;;;;10175:13:9;;;;;;:9;:13;;;;;;;;:18;;10192:1;10175:18;;;10214:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10214:21:9;;;;;10251:33;10222:7;;10175:13;;10251:33;;10175:13;;10251:33;12686:85:56;;:::o;14484:853:9:-;14633:4;-1:-1:-1;;;;;14653:13:9;;1713:19:13;:23;14649:682:9;;14688:82;;-1:-1:-1;;;14688:82:9;;-1:-1:-1;;;;;14688:47:9;;;;;:82;;965:10:14;;14750:4:9;;14756:7;;14765:4;;14688:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14688:82:9;;;;;;;;-1:-1:-1;;14688:82:9;;;;;;;;;;;;:::i;:::-;;;14684:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14948:6;:13;14965:1;14948:18;14944:321;;14990:60;;-1:-1:-1;;;14990:60:9;;;;;;;:::i;14944:321::-;15217:6;15211:13;15202:6;15198:2;15194:15;15187:38;14684:595;-1:-1:-1;;;;;;14820:62:9;-1:-1:-1;;;14820:62:9;;-1:-1:-1;14813:69:9;;14649:682;-1:-1:-1;15316:4:9;15309:11;;5196:642:35;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:35;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:35;;39785:2:88;5720:111:35;;;39767:21:88;39824:2;39804:18;;;39797:30;39863:34;39843:18;;;39836:62;-1:-1:-1;;;39914:18:88;;;39907:40;39964:19;;5720:111:35;39583:406:88;1349:282:43;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;40196:2:88;2267:41:8;;;40178:21:88;40235:2;40215:18;;;40208:30;-1:-1:-1;;;40254:18:88;;;40247:50;40314:18;;2267:41:8;39994:344:88;28154:477:56;28226:16;28245:17;28253:8;28245:7;:17::i;:::-;28226:36;-1:-1:-1;;;;;;1713:19:13;;;28268:53:56;;28314:7;28154:477;;:::o;28268:53::-;28331:74;28363:8;-1:-1:-1;;;28331:31:56;:74::i;:::-;28326:88;;28407:7;28154:477;;:::o;28326:88::-;28420:13;-1:-1:-1;;;;;28436:40:56;;;965:10:14;28436:87:56;;-1:-1:-1;;;;;;28436:87:56;;;;;;;-1:-1:-1;;;;;35875:32:88;;;28436:87:56;;;35857:51:88;28499:4:56;35924:18:88;;;35917:60;35993:18;;;35986:34;;;36036:18;;;36029:34;;;35829:19;;28436:87:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28420:103;-1:-1:-1;;;;;;;28533:49:56;;-1:-1:-1;;;28533:49:56;28529:97;;28619:6;28591:35;;-1:-1:-1;;;28591:35:56;;;;;;;;:::i;28747:518::-;28807:16;28826:17;28834:8;28826:7;:17::i;:::-;28807:36;-1:-1:-1;;;;;;1713:19:13;;;28849:53:56;;28895:7;28747:518;:::o;28849:53::-;28912:74;28944:8;-1:-1:-1;;;28912:31:56;:74::i;:::-;28907:88;;28988:7;28747:518;:::o;28907:88::-;-1:-1:-1;;;;;29005:39:56;;;2552:6;965:10:14;29005:101:56;;-1:-1:-1;;;;;;29005:101:56;;;;;;;-1:-1:-1;;;;;35470:32:88;;;29005:101:56;;;35452:51:88;29090:4:56;35519:18:88;;;35512:60;35588:18;;;35581:34;;;35425:18;;29005:101:56;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29005:101:56;;;;;;;;-1:-1:-1;;29005:101:56;;;;;;;;;;;;:::i;:::-;;;29001:260;;29177:63;;-1:-1:-1;;;;;3623:32:88;;3605:51;;29206:8:56;;29177:63;;3593:2:88;3578:18;29177:63:56;3459:203:88;10150:916:19;10203:7;;-1:-1:-1;;;10278:17:19;;10274:103;;-1:-1:-1;;;10315:17:19;;;-1:-1:-1;10360:2:19;10350:12;10274:103;10403:8;10394:5;:17;10390:103;;10440:8;10431:17;;;-1:-1:-1;10476:2:19;10466:12;10390:103;10519:8;10510:5;:17;10506:103;;10556:8;10547:17;;;-1:-1:-1;10592:2:19;10582:12;10506:103;10635:7;10626:5;:16;10622:100;;10671:7;10662:16;;;-1:-1:-1;10706:1:19;10696:11;10622:100;10748:7;10739:5;:16;10735:100;;10784:7;10775:16;;;-1:-1:-1;10819:1:19;10809:11;10735:100;10861:7;10852:5;:16;10848:100;;10897:7;10888:16;;;-1:-1:-1;10932:1:19;10922:11;10848:100;10974:7;10965:5;:16;10961:66;;11011:1;11001:11;11053:6;10150:916;-1:-1:-1;;10150:916:19:o;2107:152:4:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;4108:223:38:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;704:427:43:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:43;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:43;1093:7;-1:-1:-1;;;;;;1060:32:43;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:43:o;4421:647::-;4523:4;4563:26;4615:34;;;4651:11;4592:71;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;4592:71:43;;;;;;;-1:-1:-1;;;;;4592:71:43;;;;;;;;;;;4563:100;;4705:12;4727:18;4755:19;4899:4;4893;4877:13;4871:20;4864:4;4849:13;4845:24;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:43:o;7069:325:13:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;5165:446:38:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:38;;40971:2:88;5354:81:38;;;40953:21:88;41010:2;40990:18;;;40983:30;41049:34;41029:18;;;41022:62;-1:-1:-1;;;41100:18:88;;;41093:36;41146:19;;5354:81:38;40769:402:88;5354:81:38;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:38;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7682:628:13;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;41378:2:88;8124:60:13;;;41360:21:88;41417:2;41397:18;;;41390:30;41456:31;41436:18;;;41429:59;41505:18;;8124:60:13;41176:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;14:131:88:-;-1:-1:-1;;;;;;88:32:88;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:300::-;645:3;683:5;677:12;710:6;705:3;698:19;766:6;759:4;752:5;748:16;741:4;736:3;732:14;726:47;818:1;811:4;802:6;797:3;793:16;789:27;782:38;881:4;874:2;870:7;865:2;857:6;853:15;849:29;844:3;840:39;836:50;829:57;;;592:300;;;;:::o;897:231::-;1046:2;1035:9;1028:21;1009:4;1066:56;1118:2;1107:9;1103:18;1095:6;1066:56;:::i;1133:127::-;1194:10;1189:3;1185:20;1182:1;1175:31;1225:4;1222:1;1215:15;1249:4;1246:1;1239:15;1265:250;1332:2;1326:9;1374:6;1362:19;;1411:18;1396:34;;1432:22;;;1393:62;1390:88;;;1458:18;;:::i;:::-;1494:2;1487:22;1265:250;:::o;1520:889::-;1563:5;1616:3;1609:4;1601:6;1597:17;1593:27;1583:55;;1634:1;1631;1624:12;1583:55;1674:6;1661:20;1713:4;1705:6;1701:17;1742:1;1764;1788:18;1780:6;1777:30;1774:56;;;1810:18;;:::i;:::-;-1:-1:-1;1965:2:88;1959:9;-1:-1:-1;;1878:2:88;1857:15;;1853:29;;2023:2;2011:15;2007:29;1995:42;;2088:22;;;2067:18;2052:34;;2049:62;2046:88;;;2114:18;;:::i;:::-;2150:2;2143:22;2200;;;2185:6;-1:-1:-1;2185:6:88;2237:16;;;2234:25;-1:-1:-1;2231:45:88;;;2272:1;2269;2262:12;2231:45;2322:6;2317:3;2310:4;2302:6;2298:17;2285:44;2377:1;2370:4;2361:6;2353;2349:19;2345:30;2338:41;2397:6;2388:15;;;;;;1520:889;;;;:::o;2414:131::-;-1:-1:-1;;;;;2489:31:88;;2479:42;;2469:70;;2535:1;2532;2525:12;2550:673;2647:6;2655;2663;2716:2;2704:9;2695:7;2691:23;2687:32;2684:52;;;2732:1;2729;2722:12;2684:52;2772:9;2759:23;2805:18;2797:6;2794:30;2791:50;;;2837:1;2834;2827:12;2791:50;2860;2902:7;2893:6;2882:9;2878:22;2860:50;:::i;:::-;2850:60;;;2963:2;2952:9;2948:18;2935:32;2992:18;2982:8;2979:32;2976:52;;;3024:1;3021;3014:12;2976:52;3047;3091:7;3080:8;3069:9;3065:24;3047:52;:::i;:::-;3037:62;;;3149:2;3138:9;3134:18;3121:32;3162:31;3187:5;3162:31;:::i;:::-;3212:5;3202:15;;;2550:673;;;;;:::o;3228:226::-;3287:6;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;-1:-1:-1;3401:23:88;;3228:226;-1:-1:-1;3228:226:88:o;3667:367::-;3735:6;3743;3796:2;3784:9;3775:7;3771:23;3767:32;3764:52;;;3812:1;3809;3802:12;3764:52;3851:9;3838:23;3870:31;3895:5;3870:31;:::i;:::-;3920:5;3998:2;3983:18;;;;3970:32;;-1:-1:-1;;;3667:367:88:o;4039:508::-;4116:6;4124;4132;4185:2;4173:9;4164:7;4160:23;4156:32;4153:52;;;4201:1;4198;4191:12;4153:52;4240:9;4227:23;4259:31;4284:5;4259:31;:::i;:::-;4309:5;-1:-1:-1;4366:2:88;4351:18;;4338:32;4379:33;4338:32;4379:33;:::i;:::-;4039:508;;4431:7;;-1:-1:-1;;;4511:2:88;4496:18;;;;4483:32;;4039:508::o;4734:277::-;4823:6;4876:2;4864:9;4855:7;4851:23;4847:32;4844:52;;;4892:1;4889;4882:12;4844:52;4931:9;4918:23;4950:31;4975:5;4950:31;:::i;5016:127::-;5077:10;5072:3;5068:20;5065:1;5058:31;5108:4;5105:1;5098:15;5132:4;5129:1;5122:15;5148:217;5236:1;5229:5;5226:12;5216:143;;5281:10;5276:3;5272:20;5269:1;5262:31;5316:4;5313:1;5306:15;5344:4;5341:1;5334:15;5370:250;5523:2;5508:18;;5535:45;5573:6;5535:45;:::i;:::-;5589:25;;;5370:250;:::o;5877:147::-;5958:20;;5987:31;5958:20;5987:31;:::i;6029:165::-;6096:20;;6156:12;6145:24;;6135:35;;6125:63;;6184:1;6181;6174:12;6199:1689;6256:5;6304:6;6292:9;6287:3;6283:19;6279:32;6276:52;;;6324:1;6321;6314:12;6276:52;6346:17;;:::i;:::-;6408:23;;6440:22;;6535:2;6520:18;;;6507:32;6555:14;;;6548:31;6652:2;6637:18;;;6624:32;6672:14;;;6665:31;6769:2;6754:18;;;6741:32;6789:14;;;6782:31;6886:3;6871:19;;;6858:33;6907:15;;;6900:32;7005:3;6990:19;;;6977:33;7026:15;;;7019:32;7124:3;7109:19;;;7096:33;7145:15;;;7138:32;7243:3;7228:19;;;7215:33;7264:15;;;7257:32;7362:3;7347:19;;;7334:33;7383:15;;;7376:32;7483:3;7468:19;;;7455:33;7504:15;;;7497:33;7605:3;7590:19;;;7577:33;7626:15;;;7619:33;6337:26;-1:-1:-1;7685:52:88;7732:3;7717:19;;7685:52;:::i;:::-;7679:3;7672:5;7668:15;7661:77;7771:38;7804:3;7793:9;7789:19;7771:38;:::i;:::-;7765:3;7758:5;7754:15;7747:63;7843:38;7876:3;7865:9;7861:19;7843:38;:::i;:::-;7837:3;7830:5;7826:15;7819:63;6199:1689;;;;:::o;7893:179::-;7960:20;;8020:26;8009:38;;7999:49;;7989:77;;8062:1;8059;8052:12;8077:567;8220:6;8228;8236;8244;8297:3;8285:9;8276:7;8272:23;8268:33;8265:53;;;8314:1;8311;8304:12;8265:53;8337:48;8377:7;8366:9;8337:48;:::i;:::-;8327:58;;8404;8454:7;8448:3;8437:9;8433:19;8404:58;:::i;:::-;8394:68;;8512:3;8501:9;8497:19;8484:33;8526:31;8551:5;8526:31;:::i;:::-;8576:5;-1:-1:-1;8600:38:88;8633:3;8618:19;;8600:38;:::i;:::-;8590:48;;8077:567;;;;;;;:::o;9220:456::-;9297:6;9305;9358:2;9346:9;9337:7;9333:23;9329:32;9326:52;;;9374:1;9371;9364:12;9326:52;9413:9;9400:23;9432:31;9457:5;9432:31;:::i;:::-;9482:5;-1:-1:-1;9538:2:88;9523:18;;9510:32;9565:18;9554:30;;9551:50;;;9597:1;9594;9587:12;9551:50;9620;9662:7;9653:6;9642:9;9638:22;9620:50;:::i;:::-;9610:60;;;9220:456;;;;;:::o;9681:322::-;9750:6;9803:2;9791:9;9782:7;9778:23;9774:32;9771:52;;;9819:1;9816;9809:12;9771:52;9859:9;9846:23;9892:18;9884:6;9881:30;9878:50;;;9924:1;9921;9914:12;9878:50;9947;9989:7;9980:6;9969:9;9965:22;9947:50;:::i;10008:114::-;10096:1;10089:5;10086:12;10076:40;;10112:1;10109;10102:12;10127:452;10246:6;10254;10307:2;10295:9;10286:7;10282:23;10278:32;10275:52;;;10323:1;10320;10313:12;10275:52;10362:9;10349:23;10381:31;10406:5;10381:31;:::i;:::-;10431:5;-1:-1:-1;10488:2:88;10473:18;;10460:32;10501:46;10460:32;10501:46;:::i;:::-;10566:7;10556:17;;;10127:452;;;;;:::o;10584:586::-;10698:6;10706;10714;10722;10775:3;10763:9;10754:7;10750:23;10746:33;10743:53;;;10792:1;10789;10782:12;10743:53;10815:48;10855:7;10844:9;10815:48;:::i;:::-;10805:58;;10913:3;10902:9;10898:19;10885:33;10927:31;10952:5;10927:31;:::i;:::-;10977:5;-1:-1:-1;11034:3:88;11019:19;;11006:33;11048;11006;11048;:::i;:::-;11100:7;-1:-1:-1;11126:38:88;11159:3;11144:19;;11126:38;:::i;11175:159::-;11238:5;11283:3;11274:6;11269:3;11265:16;11261:26;11258:46;;;11300:1;11297;11290:12;11258:46;-1:-1:-1;11322:6:88;11175:159;-1:-1:-1;11175:159:88:o;11339:246::-;11429:6;11482:3;11470:9;11461:7;11457:23;11453:33;11450:53;;;11499:1;11496;11489:12;11450:53;11522:57;11571:7;11560:9;11522:57;:::i;12402:361::-;12501:6;12509;12562:3;12550:9;12541:7;12537:23;12533:33;12530:53;;;12579:1;12576;12569:12;12530:53;12602:57;12651:7;12640:9;12602:57;:::i;:::-;12592:67;12728:3;12713:19;;;;12700:33;;-1:-1:-1;;;12402:361:88:o;12768:646::-;12885:6;12893;12946:2;12934:9;12925:7;12921:23;12917:32;12914:52;;;12962:1;12959;12952:12;12914:52;13002:9;12989:23;13035:18;13027:6;13024:30;13021:50;;;13067:1;13064;13057:12;13021:50;13090:22;;13143:4;13135:13;;13131:27;-1:-1:-1;13121:55:88;;13172:1;13169;13162:12;13121:55;13212:2;13199:16;13238:18;13230:6;13227:30;13224:50;;;13270:1;13267;13260:12;13224:50;13328:7;13323:2;13313:6;13305;13301:19;13297:2;13293:28;13289:37;13286:50;13283:70;;;13349:1;13346;13339:12;13283:70;13380:2;13372:11;;;;;13402:6;;-1:-1:-1;12768:646:88;-1:-1:-1;;;12768:646:88:o;13419:118::-;13505:5;13498:13;13491:21;13484:5;13481:32;13471:60;;13527:1;13524;13517:12;13542:382;13607:6;13615;13668:2;13656:9;13647:7;13643:23;13639:32;13636:52;;;13684:1;13681;13674:12;13636:52;13723:9;13710:23;13742:31;13767:5;13742:31;:::i;:::-;13792:5;-1:-1:-1;13849:2:88;13834:18;;13821:32;13862:30;13821:32;13862:30;:::i;13929:718::-;14024:6;14032;14040;14048;14101:3;14089:9;14080:7;14076:23;14072:33;14069:53;;;14118:1;14115;14108:12;14069:53;14157:9;14144:23;14176:31;14201:5;14176:31;:::i;:::-;14226:5;-1:-1:-1;14283:2:88;14268:18;;14255:32;14296:33;14255:32;14296:33;:::i;:::-;14348:7;-1:-1:-1;14428:2:88;14413:18;;14400:32;;-1:-1:-1;14509:2:88;14494:18;;14481:32;14536:18;14525:30;;14522:50;;;14568:1;14565;14558:12;14522:50;14591;14633:7;14624:6;14613:9;14609:22;14591:50;:::i;:::-;14581:60;;;13929:718;;;;;;;:::o;14652:340::-;14740:6;14748;14801:2;14789:9;14780:7;14776:23;14772:32;14769:52;;;14817:1;14814;14807:12;14769:52;14856:9;14843:23;14875:31;14900:5;14875:31;:::i;:::-;14925:5;-1:-1:-1;14949:37:88;14982:2;14967:18;;14949:37;:::i;:::-;14939:47;;14652:340;;;;;:::o;15228:388::-;15296:6;15304;15357:2;15345:9;15336:7;15332:23;15328:32;15325:52;;;15373:1;15370;15363:12;15325:52;15412:9;15399:23;15431:31;15456:5;15431:31;:::i;:::-;15481:5;-1:-1:-1;15538:2:88;15523:18;;15510:32;15551:33;15510:32;15551:33;:::i;15621:376::-;15717:6;15725;15778:3;15766:9;15757:7;15753:23;15749:33;15746:53;;;15795:1;15792;15785:12;15746:53;15818:57;15867:7;15856:9;15818:57;:::i;:::-;15808:67;;15925:3;15914:9;15910:19;15897:33;15939:28;15961:5;15939:28;:::i;16002:380::-;16081:1;16077:12;;;;16124;;;16145:61;;16199:4;16191:6;16187:17;16177:27;;16145:61;16252:2;16244:6;16241:14;16221:18;16218:38;16215:161;;16298:10;16293:3;16289:20;16286:1;16279:31;16333:4;16330:1;16323:15;16361:4;16358:1;16351:15;17833:409;18035:2;18017:21;;;18074:2;18054:18;;;18047:30;18113:34;18108:2;18093:18;;18086:62;-1:-1:-1;;;18179:2:88;18164:18;;18157:43;18232:3;18217:19;;17833:409::o;18247:408::-;18449:2;18431:21;;;18488:2;18468:18;;;18461:30;18527:34;18522:2;18507:18;;18500:62;-1:-1:-1;;;18593:2:88;18578:18;;18571:42;18645:3;18630:19;;18247:408::o;18660:::-;18862:2;18844:21;;;18901:2;18881:18;;;18874:30;18940:34;18935:2;18920:18;;18913:62;-1:-1:-1;;;19006:2:88;18991:18;;18984:42;19058:3;19043:19;;18660:408::o;19073:277::-;19169:6;19222:2;19210:9;19201:7;19197:23;19193:32;19190:52;;;19238:1;19235;19228:12;19190:52;19270:9;19264:16;19289:31;19314:5;19289:31;:::i;20991:1028::-;21073:5;21067:12;21062:3;21055:25;21129:4;21122:5;21118:16;21112:23;21105:4;21100:3;21096:14;21089:47;21185:4;21178:5;21174:16;21168:23;21161:4;21156:3;21152:14;21145:47;21241:4;21234:5;21230:16;21224:23;21217:4;21212:3;21208:14;21201:47;21297:4;21290:5;21286:16;21280:23;21273:4;21268:3;21264:14;21257:47;21353:4;21346:5;21342:16;21336:23;21329:4;21324:3;21320:14;21313:47;21409:4;21402:5;21398:16;21392:23;21385:4;21380:3;21376:14;21369:47;21465:4;21458:5;21454:16;21448:23;21441:4;21436:3;21432:14;21425:47;21523:6;21516:5;21512:18;21506:25;21497:6;21492:3;21488:16;21481:51;21583:6;21576:5;21572:18;21566:25;21557:6;21552:3;21548:16;21541:51;21643:6;21636:5;21632:18;21626:25;21617:6;21612:3;21608:16;21601:51;21698:6;21691:5;21687:18;21681:25;21715:66;21773:6;21768:3;21764:16;21750:12;-1:-1:-1;;;;;12127:31:88;12115:44;;12045:120;21715:66;;21829:6;21822:5;21818:18;21812:25;21846:51;21889:6;21884:3;21880:16;21864:14;20966:12;20955:24;20943:37;;20890:96;21846:51;;21945:6;21938:5;21934:18;21928:25;21962:51;22005:6;22000:3;21996:16;21980:14;20966:12;20955:24;20943:37;;20890:96;22024:410;22302:3;22287:19;;22315:47;22291:9;22344:6;22315:47;:::i;:::-;22371:57;22423:3;22412:9;22408:19;22400:6;22371:57;:::i;22439:127::-;22500:10;22495:3;22491:20;22488:1;22481:31;22531:4;22528:1;22521:15;22555:4;22552:1;22545:15;22571:128;22638:9;;;22659:11;;;22656:37;;;22673:18;;:::i;23233:258::-;23425:3;23410:19;;23438:47;23414:9;23467:6;23438:47;:::i;23846:184::-;23916:6;23969:2;23957:9;23948:7;23944:23;23940:32;23937:52;;;23985:1;23982;23975:12;23937:52;-1:-1:-1;24008:16:88;;23846:184;-1:-1:-1;23846:184:88:o;25144:518::-;25246:2;25241:3;25238:11;25235:421;;;25282:5;25279:1;25272:16;25326:4;25323:1;25313:18;25396:2;25384:10;25380:19;25377:1;25373:27;25367:4;25363:38;25432:4;25420:10;25417:20;25414:47;;;-1:-1:-1;25455:4:88;25414:47;25510:2;25505:3;25501:12;25498:1;25494:20;25488:4;25484:31;25474:41;;25565:81;25583:2;25576:5;25573:13;25565:81;;;25642:1;25628:16;;25609:1;25598:13;25565:81;;;25569:3;;25144:518;;;:::o;25838:1299::-;25964:3;25958:10;25991:18;25983:6;25980:30;25977:56;;;26013:18;;:::i;:::-;26042:97;26132:6;26092:38;26124:4;26118:11;26092:38;:::i;:::-;26086:4;26042:97;:::i;:::-;26188:4;26219:2;26208:14;;26236:1;26231:649;;;;26924:1;26941:6;26938:89;;;-1:-1:-1;26993:19:88;;;26987:26;26938:89;-1:-1:-1;;25795:1:88;25791:11;;;25787:24;25783:29;25773:40;25819:1;25815:11;;;25770:57;27040:81;;26201:930;;26231:649;25091:1;25084:14;;;25128:4;25115:18;;-1:-1:-1;;26267:20:88;;;26385:222;26399:7;26396:1;26393:14;26385:222;;;26481:19;;;26475:26;26460:42;;26588:4;26573:20;;;;26541:1;26529:14;;;;26415:12;26385:222;;;26389:3;26635:6;26626:7;26623:19;26620:201;;;26696:19;;;26690:26;-1:-1:-1;;26779:1:88;26775:14;;;26791:3;26771:24;26767:37;26763:42;26748:58;26733:74;;26620:201;-1:-1:-1;;;;26867:1:88;26851:14;;;26847:22;26834:36;;-1:-1:-1;25838:1299:88:o;27142:392::-;27340:2;27325:18;;27352:45;27390:6;27352:45;:::i;:::-;27424:6;27413:9;27406:25;27440:45;27478:6;27440:45;:::i;:::-;27521:6;27516:2;27505:9;27501:18;27494:34;27142:392;;;;;:::o;27892:184::-;27950:6;28003:2;27991:9;27982:7;27978:23;27974:32;27971:52;;;28019:1;28016;28009:12;27971:52;28042:28;28060:9;28042:28;:::i;28432:235::-;28520:6;28573:3;28561:9;28552:7;28548:23;28544:33;28541:53;;;28590:1;28587;28580:12;28541:53;28613:48;28653:7;28642:9;28613:48;:::i;28949:202::-;-1:-1:-1;;;;;;29111:33:88;;;;29093:52;;29081:2;29066:18;;28949:202::o;29156:245::-;29223:6;29276:2;29264:9;29255:7;29251:23;29247:32;29244:52;;;29292:1;29289;29282:12;29244:52;29324:9;29318:16;29343:28;29365:5;29343:28;:::i;29406:375::-;-1:-1:-1;;;;;29645:32:88;;29627:51;;29615:2;29600:18;;29687:45;29725:6;29687:45;:::i;29786:319::-;29965:2;29950:18;;29977:45;30015:6;29977:45;:::i;:::-;30031:25;;;30087:2;30072:18;30065:34;29786:319;:::o;30520:127::-;30581:10;30576:3;30572:20;30569:1;30562:31;30612:4;30609:1;30602:15;30636:4;30633:1;30626:15;30652:125;30717:9;;;30738:10;;;30735:36;;;30751:18;;:::i;30782:212::-;30824:3;30862:5;30856:12;30906:6;30899:4;30892:5;30888:16;30883:3;30877:36;30968:1;30932:16;;30957:13;;;-1:-1:-1;30932:16:88;;30782:212;-1:-1:-1;30782:212:88:o;30999:267::-;31178:3;31203:57;31229:30;31255:3;31247:6;31229:30;:::i;:::-;31221:6;31203:57;:::i;31271:407::-;31473:2;31455:21;;;31512:2;31492:18;;;31485:30;31551:34;31546:2;31531:18;;31524:62;-1:-1:-1;;;31617:2:88;31602:18;;31595:41;31668:3;31653:19;;31271:407::o;31683:401::-;31885:2;31867:21;;;31924:2;31904:18;;;31897:30;31963:34;31958:2;31943:18;;31936:62;-1:-1:-1;;;32029:2:88;32014:18;;32007:35;32074:3;32059:19;;31683:401::o;34831:414::-;35033:2;35015:21;;;35072:2;35052:18;;;35045:30;35111:34;35106:2;35091:18;;35084:62;-1:-1:-1;;;35177:2:88;35162:18;;35155:48;35235:3;35220:19;;34831:414::o;36074:249::-;36143:6;36196:2;36184:9;36175:7;36171:23;36167:32;36164:52;;;36212:1;36209;36202:12;36164:52;36244:9;36238:16;36263:30;36287:5;36263:30;:::i;37032:427::-;-1:-1:-1;;;;;37311:32:88;;37293:51;;37280:3;37265:19;;37353:56;37405:2;37390:18;;37382:6;37353:56;:::i;:::-;37446:6;37440:3;37429:9;37425:19;37418:35;37032:427;;;;;;:::o;39082:496::-;-1:-1:-1;;;;;39313:32:88;;;39295:51;;39382:32;;39377:2;39362:18;;39355:60;39446:2;39431:18;;39424:34;;;39494:3;39489:2;39474:18;;39467:31;;;-1:-1:-1;;39515:57:88;;39552:19;;39544:6;39515:57;:::i;40574:190::-;40703:3;40728:30;40754:3;40746:6;40728:30;:::i"},"methodIdentifiers":{"GUARDIAN_ROLE()":"24ea54f4","LEVEL1_ROLE()":"f67b2bad","LEVEL2_ROLE()":"4a47a3e0","access()":"71907f17","addComponent(address,uint8)":"6b8734e7","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","changeComponentStatus(address,uint8)":"5fcbf445","currency()":"e5a6b10f","deposit(address,uint256)":"47e7ef24","expirePolicies((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40)[])":"8c916d46","expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"6af6f1ef","getApproved(uint256)":"081812fc","getComponentStatus(address)":"33d6157a","getPolicyHash(uint256)":"792da09e","initialize(string,string,address)":"077f224a","isActive(uint256)":"82afd23b","isApprovedForAll(address,address)":"e985e9c5","makePolicyId(address,uint96)":"c016f88a","name()":"06fdde03","newPolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)":"6769a76f","ownerOf(uint256)":"6352211e","pause()":"8456cb59","paused()":"5c975abb","proxiableUUID()":"52d1902d","removeComponent(address)":"6f86c897","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)":"3ed7c1ae","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)":"ffa600e3","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setBaseURI(string)":"55f804b3","setTreasury(address)":"f0f44260","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","treasury()":"61d027b3","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAccessManager\",\"name\":\"access_\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"currency_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ComponentAlreadyInThePool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum PolicyPool.ComponentKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ComponentInUseCannotRemove\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ComponentMustBeActiveOrDeprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ComponentNotDeprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ComponentNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ComponentNotFoundOrNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ComponentNotLinkedToThisPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"enum PolicyPool.ComponentKind\",\"name\":\"expectedKind\",\"type\":\"uint8\"}],\"name\":\"ComponentNotTheRightKind\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"response\",\"type\":\"bytes4\"}],\"name\":\"InvalidNotificationResponse\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEmptyName\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEmptySymbol\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroAccess\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroTreasury\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyRiskModuleAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangeAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum PolicyPool.ComponentKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum PolicyPool.ComponentStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"ComponentStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"contract IPolicyHolder\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"ExpirationNotificationFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"NewPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldPolicyId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newPolicyId\",\"type\":\"uint256\"}],\"name\":\"PolicyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"PolicyResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GUARDIAN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LEVEL1_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LEVEL2_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"access\",\"outputs\":[{\"internalType\":\"contract IAccessManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"enum PolicyPool.ComponentKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"addComponent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"enum PolicyPool.ComponentStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"changeComponentStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"eToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData[]\",\"name\":\"policies\",\"type\":\"tuple[]\"}],\"name\":\"expirePolicies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"getComponentStatus\",\"outputs\":[{\"internalType\":\"enum PolicyPool.ComponentStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"getPolicyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRiskModule\",\"name\":\"rm\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"makePolicyId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPolicyPoolComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"removeComponent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy_\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"customerWon\",\"type\":\"bool\"}],\"name\":\"resolvePolicyFullPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"nftBaseURI_\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"eToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"This is the main contract of the protocol, it stores the eTokens (liquidity pools) and has the operations      to interact with them. This is also the contract that receives and sends the underlying asset (currency).      Also this contract keeps track of accumulated premiums in different stages:      - activePurePremiums      - wonPurePremiums (surplus)      - borrowedActivePP (deficit borrowed from activePurePremiums)      This contract also implements the ERC721 standard, because it mints and NFT for each policy created. The      property of the NFT represents the one that will receive the payout.\",\"errors\":{\"ComponentAlreadyInThePool()\":[{\"details\":\"Error when trying to add a component that was already added to the PolicyPool\"}],\"ComponentInUseCannotRemove(uint8,uint256)\":[{\"details\":\"Error when trying to remove a component that is still in use. The \\\"in use\\\" definition can change from one      component to the other. For eToken in use means `totalSupply() != 0`. For PremiumsAccount means      `purePremiums() != 0`. For RiskModule means `activeExposure() != 0`.\"}],\"ComponentMustBeActiveOrDeprecated()\":[{\"details\":\"Error when a component is not active or deprecated. Happens on some operations like eToken withdrawals or      policy resolutions that accept the component might be active or deprecated and isn't on any of those states.\"}],\"ComponentNotDeprecated()\":[{\"details\":\"Error when a component is expected to be deprecated for the operation (see `removeComponent`) and it isn't.\"}],\"ComponentNotFound()\":[{\"details\":\"Error when a component is not found in the pool (status = 0 = inactive)\"}],\"ComponentNotFoundOrNotActive()\":[{\"details\":\"Error when a component is not found in the pool or is not active (status != active)\"}],\"ComponentNotLinkedToThisPool()\":[{\"details\":\"Error when trying to add a component that isn't linked to this pool (`.policyPool() != this`)\"}],\"ComponentNotTheRightKind(address,uint8)\":[{\"details\":\"Error when a component is not of the right kind, it might happen if a component declared as      ComponentKind.eToken doesn't support the IEToken interface (or similar) or when in a given operation      we expect a component to be a risk module and the stored kind is different.\"}],\"InvalidNotificationResponse(bytes4)\":[{\"details\":\"Error raised when IPolicyHolder doesn't return the expected selector answer when notified of policy payout,      reception or replacement.\"}],\"NoEmptyName()\":[{\"details\":\"Initialization error when empty name for the ERC721 is sent\"}],\"NoEmptySymbol()\":[{\"details\":\"Initialization error when empty symbol for the ERC721 is sent\"}],\"NoZeroAccess()\":[{\"details\":\"Constructor error when address(0) is sent as `access()`\"}],\"NoZeroCurrency()\":[{\"details\":\"Constructor error when address(0) is sent as `currency()`\"}],\"NoZeroTreasury()\":[{\"details\":\"Constructor error (or setTreasury) when address(0) is sent as `treasury()`\"}],\"OnlyRiskModuleAllowed()\":[{\"details\":\"Error when a method intented to be called by riskModule (and by policy's risk module) is called by someone      else.\"}],\"UpgradeCannotChangeAccess()\":[{\"details\":\"Upgrade error when the new implementation contract tries to change the `access()`\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"ComponentChanged(uint8,address)\":{\"details\":\"Event emitted when the treasury changes\",\"params\":{\"action\":\"The type of governance action (setTreasury or setBaseURI for now)\",\"value\":\"The address of the new treasury or the address of the caller (for setBaseURI)\"}},\"ComponentStatusChanged(address,uint8,uint8)\":{\"details\":\"Event emitted when a new component added/removed to the pool or the status changes.\",\"params\":{\"component\":\"The address of the component, it can be an {EToken}, {RiskModule} or {PremiumsAccount}\",\"kind\":\"Value indicating the kind of component. See {ComponentKind}\",\"newStatus\":\"The status of the component after the operation. See {ComponentStatus}\"}},\"ExpirationNotificationFailed(uint256,address)\":{\"details\":\"Event emitted when a IPolicyHolder reverts on the expiration notification. The operation doesn't reverts\",\"params\":{\"holder\":\"The address of the contract that owns the policy\",\"policyId\":\"The id of the policy being expired\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NewPolicy(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Event emitted every time a new policy is added to the pool. Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"policy\":\"The {Policy-PolicyData} struct with all the immutable fields of the policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"PolicyReplaced(address,uint256,uint256)\":{\"details\":\"Event emitted every time a new policy replaces an old Policy Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"newPolicyId\":\"The id of the new policy.\",\"oldPolicyId\":\"The id of the replaced policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"PolicyResolved(address,uint256,uint256)\":{\"details\":\"Event emitted every time a policy is removed from the pool. If the policy expired, the `payout` is 0, otherwise is the amount transferred to the policyholder.\",\"params\":{\"payout\":\"The payout that has been paid to the policy holder. 0 when the policy expired.\",\"policyId\":\"The unique id of the policy\",\"riskModule\":\"The risk module where that created the policy initially.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"access()\":{\"details\":\"Reference to the {AccessManager} contract, this contract manages the access controls.\",\"returns\":{\"_0\":\"The address of the AccessManager contract\"}},\"addComponent(address,uint8)\":{\"details\":\"Adds a new component (either an {EToken}, {RiskModule} or {PremiumsAccount}) to the protocol. The component status will be `active`. Requirements: - Must be called by a user with the {LEVEL1_ROLE} - The component wasn't added before. Events: - Emits {ComponentStatusChanged} with status active.\",\"params\":{\"component\":\"The address of component contract. Must be an {EToken}, {RiskModule} or {PremiumsAccount} linked to this specific {PolicyPool} and matching the `kind` specified in the next paramter.\",\"kind\":\"The type of component to be added.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"changeComponentStatus(address,uint8)\":{\"details\":\"Changes the status of a component. Requirements: - Must be called by a user with the {LEVEL1_ROLE} if the new status is `active` or `deprecated`. - Must be called by a user with the {GUARDIAN_ROLE} if the new status is `suspended`. Events: - Emits {ComponentStatusChanged} with the new status.\",\"params\":{\"component\":\"The address of component contract. Must be a component added before.\",\"newStatus\":\"The new status, must be either `active`, `deprecated` or `suspended`.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"currency()\":{\"details\":\"Reference to the main currency (ERC20) used in the protocol\",\"returns\":{\"_0\":\"The address of the currency (e.g. USDC) token used in the protocol\"}},\"deposit(address,uint256)\":{\"details\":\"Deposits liquidity into an eToken. Forwards the call to {EToken-deposit}, after transferring the funds. The user will receive etokens for the same amount deposited. Requirements: - `msg.sender` approved the spending of `currency()` for at least `amount` - `eToken` is an active eToken installed in the pool. Events: - {EToken-Transfer}: from 0x0 to `msg.sender`, reflects the eTokens minted. - {ERC20-Transfer}: from `msg.sender` to address(eToken)\",\"params\":{\"amount\":\"The amount to deposit\",\"eToken\":\"The address of the eToken to which the user wants to provide liquidity\"}},\"expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Resolves a policy with a payout 0, unlocking the solvency. Can be called by anyone, but only after `Policy.expiration`. Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not resolved before - Policy expired: `Policy.expiration` <= block.timestamp Events: - {PolicyPool-PolicyResolved}: with payout == 0\",\"params\":{\"policy\":\"A policy previously created with `newPolicy`\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getComponentStatus(address)\":{\"details\":\"Returns the status of a component.\",\"params\":{\"component\":\"The address of the component\"},\"returns\":{\"_0\":\"The status of the component. See {ComponentStatus}\"}},\"getPolicyHash(uint256)\":{\"details\":\"Returns the stored hash of the policy. It's `bytes32(0)` is the policy isn't active.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Returns the hash of a given policy id\"}},\"initialize(string,string,address)\":{\"details\":\"Initializes a Policy Pool\",\"params\":{\"name_\":\"The name of the ERC721 token.\",\"symbol_\":\"The symbol of the ERC721 token.\",\"treasury_\":\"The address of the treasury that will receive the protocol fees.\"}},\"isActive(uint256)\":{\"details\":\"Returns whether a policy is active, i.e., it's still in the PolicyPool, not yet resolved or expired.      Be aware that a policy might be active but the `block.timestamp` might be after the expiration date, so it      can't be triggered with a payout.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Whether the policy is active or not\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"newPolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)\":{\"details\":\"Creates a new Policy. Must be called from an active RiskModule Requirements: - `msg.sender` must be an active RiskModule - `caller` approved the spending of `currency()` for at least `policy.premium` - `internalId` must be unique within `policy.riskModule` and not used before Events: - {PolicyPool-NewPolicy}: with all the details about the policy - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium (see Premium Split in the docs)\",\"params\":{\"internalId\":\"A unique id within the RiskModule, that will be used to compute the policy id\",\"payer\":\"The address that will pay for the premium\",\"policy\":\"A policy created with {Policy-initialize}\",\"policyHolder\":\"The address of the policy holder\"},\"returns\":{\"_0\":\"The policy id, identifying the NFT and the policy\"}},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause()\":{\"details\":\"Pauses the contract. When the contract is paused, several operations are rejected: deposits, withdrawals, new policies, policy resolution and expiration, nft transfers. Requirements: - Must be executed by a user with the {GUARDIAN_ROLE}.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"removeComponent(address)\":{\"details\":\"Removes a component from the protocol. The component needs to be in `deprecated` status before doing this operation. Requirements: - Must be called by a user with the {LEVEL1_ROLE} - The component status is `deprecated`. Events: - Emits {ComponentStatusChanged} with status inactive.\",\"params\":{\"component\":\"The address of component contract. Must be a component added before.\"}},\"replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)\":{\"details\":\"Replaces a policy with another. Must be called from an active RiskModule Requirements: - `msg.sender` must be an active RiskModule - `caller` approved the spending of `currency()` for at least `newPolicy_.premium - oldPolicy.premium` - `internalId` must be unique within `policy.riskModule` and not used before Events: - {PolicyPool-PolicyReplaced}: with all the details about the policy - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium (see Premium Split in the docs)\",\"params\":{\"internalId\":\"A unique id within the RiskModule, that will be used to compute the policy id\",\"newPolicy_\":\"A policy created with {Policy-initialize}\",\"oldPolicy\":\"A policy created previously and not expired\",\"payer\":\"The address that will pay for the premium\"},\"returns\":{\"_0\":\"The policy id, identifying the NFT and the policy\"}},\"resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"Resolves a policy with a payout. Must be called from an active RiskModule Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if payout > 0). - `payout`: must be less than equal to `policy.payout`. Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"payout\":\"The amount to paid to the policyholder\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)\":{\"details\":\"Resolves a policy with a payout that can be either 0 or the maximum payout of the policy Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if customerWon). Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"customerWon\":\"Indicated if the payout is zero or the maximum payout\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBaseURI(string)\":{\"details\":\"Changes the baseURI of the minted policy NFTs Requirements: - Must be called by a user with the {LEVEL2_ROLE}. Events: - Emits {ComponentChanged} with action = setBaseURI and the address of the caller.\"},\"setTreasury(address)\":{\"details\":\"Changes the address of the treasury, the one that receives the protocol fees. Requirements: - Must be called by a user with the {LEVEL1_ROLE}. Events: - Emits {ComponentChanged} with action = setTreasury and the address of the new treasury.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"treasury()\":{\"details\":\"Returns the address of the treasury, the one that receives the protocol fees.\"},\"unpause()\":{\"details\":\"Unpauses the contract. All the operations disabled when the contract was paused are re-enabled. Requirements: - Must be called by a user with either the {GUARDIAN_ROLE} or a {LEVEL1_ROLE}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256)\":{\"details\":\"Withdraws an amount from an eToken. Forwards the call to {EToken-withdraw}. `amount` of eTokens will be burned and the user will receive the same amount in `currency()`. Requirements: - `eToken` is an active (or deprecated) eToken installed in the pool. Events: - {EToken-Transfer}: from `msg.sender` to `0x0`, reflects the eTokens burned. - {ERC20-Transfer}: from address(eToken) to `msg.sender`\",\"params\":{\"amount\":\"The amount to withdraw. If equal to type(uint256).max, means full withdrawal.               If the balance is not enough or can't be withdrawn (locked as SCR), it withdraws               as much as it can, but doesn't fails.\",\"eToken\":\"The address of the eToken from where the user wants to withdraw liquidity\"},\"returns\":{\"_0\":\"Returns the actual amount withdrawn.\"}}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"_access\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_components\":{\"details\":\"Mapping of installed components (see {EToken}, {RiskModule}, {PremiumsAccount}) in the PolicyPool.\"},\"_currency\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_nftBaseURI\":{\"details\":\"Base URI for the minted policy NFTs.\"},\"_policies\":{\"details\":\"Mapping that stores the active policies (the policyId is the key). It just saves the hash of the policies, the full {Policy-PolicyData} struct has to be sent for each operation (hash is used to verify).\"},\"_treasury\":{\"details\":\"Address of Ensuro's treasury that receives the protocol fees.\"}},\"title\":\"Ensuro PolicyPool contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/PolicyPool.sol\":\"PolicyPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xd6e2dc520133229f192493fc0a53c0cfb0cbcee1e45bf0817c34e416486d9359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bda0b8ba2463ef7a8d1189ce54139691f5986aab83a3c502614dd2f29996fe8\",\"dweb:/ipfs/QmapEyXhDZCJL4ho7BQMmZUHtkhyJzABn4iWxyJYae1Kom\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0xbe63437e37e32162d5d11ea8f11a44378c092b4bcbb05b51a813fe4bf33297d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68a514febde6ffd8afe3cb5b40815d10c0a926063237d5d167cbaa90239f75ae\",\"dweb:/ipfs/QmVBvYeR6oGBw7K7vu5FMotr8josejtaGwugM68VTZacww\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPool.sol\":{\"keccak256\":\"0xbb18e5561da231404c0dfa2103090674f39ac046b25a21dd3865910d503080dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://532278b7e0360066585a688d7f7ba3b6eef9d8297b1fb5170ab60084dc7ac7ff\",\"dweb:/ipfs/QmebTv2GosQ26Gt1EzMcewaGs695yPhNvJWuSSSj4uXsS6\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyHolder.sol\":{\"keccak256\":\"0xddf0d346e5ee68e7ae051048112384409797d7e094a47ab404c6fb6bdf8827c1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98a041a857a99cda900188969283dbf941ec034b641c7abea399c3e4ee94cb64\",\"dweb:/ipfs/QmdjuJipt2jAapKAk2APC1BTcsgajnbkQTthd4LiwA8F7r\"]},\"contracts/interfaces/IPolicyHolderV2.sol\":{\"keccak256\":\"0x978c37bf3a9dfa2942a53ff10d0b6a4ac16510b6f3231ee2415ea6ea5349512f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b777c52b8697624c3504156f409b5238de8ebc778ccdadb5dafb42d6293a559\",\"dweb:/ipfs/QmVgGMPkpCL3ompGN4tHG5jdopkTuGaHQvK7eZUcxCDvh6\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2703,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_paused","offset":0,"slot":"51","type":"t_bool"},{"astId":1208,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":764,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"},{"astId":3087,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":1239,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":1241,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_symbol","offset":0,"slot":"252","type":"t_string_storage"},{"astId":1245,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_owners","offset":0,"slot":"253","type":"t_mapping(t_uint256,t_address)"},{"astId":1249,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_balances","offset":0,"slot":"254","type":"t_mapping(t_address,t_uint256)"},{"astId":1253,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_tokenApprovals","offset":0,"slot":"255","type":"t_mapping(t_uint256,t_address)"},{"astId":1259,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_operatorApprovals","offset":0,"slot":"256","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":2161,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"257","type":"t_array(t_uint256)44_storage"},{"astId":15524,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_treasury","offset":0,"slot":"301","type":"t_address"},{"astId":15551,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_components","offset":0,"slot":"302","type":"t_mapping(t_contract(IPolicyPoolComponent)23823,t_struct(Component)15544_storage)"},{"astId":15556,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_policies","offset":0,"slot":"303","type":"t_mapping(t_uint256,t_bytes32)"},{"astId":15559,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"_nftBaseURI","offset":0,"slot":"304","type":"t_string_storage"},{"astId":17685,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"__gap","offset":0,"slot":"305","type":"t_array(t_uint256)46_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IPolicyPoolComponent)23823":{"encoding":"inplace","label":"contract IPolicyPoolComponent","numberOfBytes":"20"},"t_enum(ComponentKind)15536":{"encoding":"inplace","label":"enum PolicyPool.ComponentKind","numberOfBytes":"1"},"t_enum(ComponentStatus)15530":{"encoding":"inplace","label":"enum PolicyPool.ComponentStatus","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_contract(IPolicyPoolComponent)23823,t_struct(Component)15544_storage)":{"encoding":"mapping","key":"t_contract(IPolicyPoolComponent)23823","label":"mapping(contract IPolicyPoolComponent => struct PolicyPool.Component)","numberOfBytes":"32","value":"t_struct(Component)15544_storage"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Component)15544_storage":{"encoding":"inplace","label":"struct PolicyPool.Component","members":[{"astId":15540,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"status","offset":0,"slot":"0","type":"t_enum(ComponentStatus)15530"},{"astId":15543,"contract":"contracts/PolicyPool.sol:PolicyPool","label":"kind","offset":1,"slot":"0","type":"t_enum(ComponentKind)15536"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/PolicyPoolComponent.sol":{"PolicyPoolComponent":{"abi":[{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"currency()":"e5a6b10f","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"This is the base class of all the components of the protocol that are linked to the PolicyPool and created      after it.      Holds the reference to _policyPool as immutable, also provides access to common admin roles:      - LEVEL1_ROLE: High impact changes like upgrades, adding or removing components or other critical operations      - LEVEL2_ROLE: Mid-impact changes like changing some parameters      - GUARDIAN_ROLE: For emergency operations oriented to protect the protocol in case of attacks or hacking.      This contract also keeps track of the tweaks to avoid two tweaks of the same type are done in a short period.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"_policyPool\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"Base class for PolicyPool components\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/PolicyPoolComponent.sol\":\"PolicyPoolComponent\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/PolicyPoolComponent.sol:PolicyPoolComponent","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/PremiumsAccount.sol":{"PremiumsAccount":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IEToken","name":"juniorEtk_","type":"address"},{"internalType":"contract IEToken","name":"seniorEtk_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"moneyIn","type":"bool"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"WonPremiumsInOut","type":"event"},{"inputs":[],"name":"REPAY_LOANS_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_WON_PREMIUMS_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activePurePremiums","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetManager","outputs":[{"internalType":"contract IAssetManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"borrowedActivePP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deficitRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"functionCall","type":"bytes"}],"name":"forwardToAssetManager","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundsAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"jrLoanLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"juniorEtk","outputs":[{"internalType":"contract IEToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"policyCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"policyExpired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy","type":"tuple"}],"name":"policyReplaced","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"policyHolder","type":"address"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"policyResolvedWithPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purePremiums","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"receiveGrant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"repayLoans","outputs":[{"internalType":"uint256","name":"available","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seniorEtk","outputs":[{"internalType":"contract IEToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IAssetManager","name":"newAM","type":"address"},{"internalType":"bool","name":"force","type":"bool"}],"name":"setAssetManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRatio","type":"uint256"},{"internalType":"bool","name":"adjustment","type":"bool"}],"name":"setDeficitRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimitJr","type":"uint256"},{"internalType":"uint256","name":"newLimitSr","type":"uint256"}],"name":"setLoanLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"srLoanLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplus","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"destination","type":"address"}],"name":"withdrawWonPremiums","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wonPurePremiums","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_18265":{"entryPoint":null,"id":18265,"parameterSlots":3,"returnSlots":0},"@_19734":{"entryPoint":null,"id":19734,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":370,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":655,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IEToken_$23549t_contract$_IEToken_$23549_fromMemory":{"entryPoint":581,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":689,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint8":{"entryPoint":741,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":786,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":1015,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":853,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":721,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IPolicyPool":{"entryPoint":558,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3776:88","nodeType":"YulBlock","src":"0:3776:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"333:443:88","nodeType":"YulBlock","src":"333:443:88","statements":[{"body":{"nativeSrc":"379:16:88","nodeType":"YulBlock","src":"379:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"388:1:88","nodeType":"YulLiteral","src":"388:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"391:1:88","nodeType":"YulLiteral","src":"391:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"381:6:88","nodeType":"YulIdentifier","src":"381:6:88"},"nativeSrc":"381:12:88","nodeType":"YulFunctionCall","src":"381:12:88"},"nativeSrc":"381:12:88","nodeType":"YulExpressionStatement","src":"381:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"354:7:88","nodeType":"YulIdentifier","src":"354:7:88"},{"name":"headStart","nativeSrc":"363:9:88","nodeType":"YulIdentifier","src":"363:9:88"}],"functionName":{"name":"sub","nativeSrc":"350:3:88","nodeType":"YulIdentifier","src":"350:3:88"},"nativeSrc":"350:23:88","nodeType":"YulFunctionCall","src":"350:23:88"},{"kind":"number","nativeSrc":"375:2:88","nodeType":"YulLiteral","src":"375:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"346:3:88","nodeType":"YulIdentifier","src":"346:3:88"},"nativeSrc":"346:32:88","nodeType":"YulFunctionCall","src":"346:32:88"},"nativeSrc":"343:52:88","nodeType":"YulIf","src":"343:52:88"},{"nativeSrc":"404:29:88","nodeType":"YulVariableDeclaration","src":"404:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"423:9:88","nodeType":"YulIdentifier","src":"423:9:88"}],"functionName":{"name":"mload","nativeSrc":"417:5:88","nodeType":"YulIdentifier","src":"417:5:88"},"nativeSrc":"417:16:88","nodeType":"YulFunctionCall","src":"417:16:88"},"variables":[{"name":"value","nativeSrc":"408:5:88","nodeType":"YulTypedName","src":"408:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"480:5:88","nodeType":"YulIdentifier","src":"480:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"442:37:88","nodeType":"YulIdentifier","src":"442:37:88"},"nativeSrc":"442:44:88","nodeType":"YulFunctionCall","src":"442:44:88"},"nativeSrc":"442:44:88","nodeType":"YulExpressionStatement","src":"442:44:88"},{"nativeSrc":"495:15:88","nodeType":"YulAssignment","src":"495:15:88","value":{"name":"value","nativeSrc":"505:5:88","nodeType":"YulIdentifier","src":"505:5:88"},"variableNames":[{"name":"value0","nativeSrc":"495:6:88","nodeType":"YulIdentifier","src":"495:6:88"}]},{"nativeSrc":"519:40:88","nodeType":"YulVariableDeclaration","src":"519:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"544:9:88","nodeType":"YulIdentifier","src":"544:9:88"},{"kind":"number","nativeSrc":"555:2:88","nodeType":"YulLiteral","src":"555:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"540:3:88","nodeType":"YulIdentifier","src":"540:3:88"},"nativeSrc":"540:18:88","nodeType":"YulFunctionCall","src":"540:18:88"}],"functionName":{"name":"mload","nativeSrc":"534:5:88","nodeType":"YulIdentifier","src":"534:5:88"},"nativeSrc":"534:25:88","nodeType":"YulFunctionCall","src":"534:25:88"},"variables":[{"name":"value_1","nativeSrc":"523:7:88","nodeType":"YulTypedName","src":"523:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"606:7:88","nodeType":"YulIdentifier","src":"606:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"568:37:88","nodeType":"YulIdentifier","src":"568:37:88"},"nativeSrc":"568:46:88","nodeType":"YulFunctionCall","src":"568:46:88"},"nativeSrc":"568:46:88","nodeType":"YulExpressionStatement","src":"568:46:88"},{"nativeSrc":"623:17:88","nodeType":"YulAssignment","src":"623:17:88","value":{"name":"value_1","nativeSrc":"633:7:88","nodeType":"YulIdentifier","src":"633:7:88"},"variableNames":[{"name":"value1","nativeSrc":"623:6:88","nodeType":"YulIdentifier","src":"623:6:88"}]},{"nativeSrc":"649:40:88","nodeType":"YulVariableDeclaration","src":"649:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"674:9:88","nodeType":"YulIdentifier","src":"674:9:88"},{"kind":"number","nativeSrc":"685:2:88","nodeType":"YulLiteral","src":"685:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"670:3:88","nodeType":"YulIdentifier","src":"670:3:88"},"nativeSrc":"670:18:88","nodeType":"YulFunctionCall","src":"670:18:88"}],"functionName":{"name":"mload","nativeSrc":"664:5:88","nodeType":"YulIdentifier","src":"664:5:88"},"nativeSrc":"664:25:88","nodeType":"YulFunctionCall","src":"664:25:88"},"variables":[{"name":"value_2","nativeSrc":"653:7:88","nodeType":"YulTypedName","src":"653:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"736:7:88","nodeType":"YulIdentifier","src":"736:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"698:37:88","nodeType":"YulIdentifier","src":"698:37:88"},"nativeSrc":"698:46:88","nodeType":"YulFunctionCall","src":"698:46:88"},"nativeSrc":"698:46:88","nodeType":"YulExpressionStatement","src":"698:46:88"},{"nativeSrc":"753:17:88","nodeType":"YulAssignment","src":"753:17:88","value":{"name":"value_2","nativeSrc":"763:7:88","nodeType":"YulIdentifier","src":"763:7:88"},"variableNames":[{"name":"value2","nativeSrc":"753:6:88","nodeType":"YulIdentifier","src":"753:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IEToken_$23549t_contract$_IEToken_$23549_fromMemory","nativeSrc":"163:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"283:9:88","nodeType":"YulTypedName","src":"283:9:88","type":""},{"name":"dataEnd","nativeSrc":"294:7:88","nodeType":"YulTypedName","src":"294:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"306:6:88","nodeType":"YulTypedName","src":"306:6:88","type":""},{"name":"value1","nativeSrc":"314:6:88","nodeType":"YulTypedName","src":"314:6:88","type":""},{"name":"value2","nativeSrc":"322:6:88","nodeType":"YulTypedName","src":"322:6:88","type":""}],"src":"163:613:88"},{"body":{"nativeSrc":"885:183:88","nodeType":"YulBlock","src":"885:183:88","statements":[{"body":{"nativeSrc":"931:16:88","nodeType":"YulBlock","src":"931:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"940:1:88","nodeType":"YulLiteral","src":"940:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"943:1:88","nodeType":"YulLiteral","src":"943:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"933:6:88","nodeType":"YulIdentifier","src":"933:6:88"},"nativeSrc":"933:12:88","nodeType":"YulFunctionCall","src":"933:12:88"},"nativeSrc":"933:12:88","nodeType":"YulExpressionStatement","src":"933:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"906:7:88","nodeType":"YulIdentifier","src":"906:7:88"},{"name":"headStart","nativeSrc":"915:9:88","nodeType":"YulIdentifier","src":"915:9:88"}],"functionName":{"name":"sub","nativeSrc":"902:3:88","nodeType":"YulIdentifier","src":"902:3:88"},"nativeSrc":"902:23:88","nodeType":"YulFunctionCall","src":"902:23:88"},{"kind":"number","nativeSrc":"927:2:88","nodeType":"YulLiteral","src":"927:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"898:3:88","nodeType":"YulIdentifier","src":"898:3:88"},"nativeSrc":"898:32:88","nodeType":"YulFunctionCall","src":"898:32:88"},"nativeSrc":"895:52:88","nodeType":"YulIf","src":"895:52:88"},{"nativeSrc":"956:29:88","nodeType":"YulVariableDeclaration","src":"956:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"975:9:88","nodeType":"YulIdentifier","src":"975:9:88"}],"functionName":{"name":"mload","nativeSrc":"969:5:88","nodeType":"YulIdentifier","src":"969:5:88"},"nativeSrc":"969:16:88","nodeType":"YulFunctionCall","src":"969:16:88"},"variables":[{"name":"value","nativeSrc":"960:5:88","nodeType":"YulTypedName","src":"960:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1032:5:88","nodeType":"YulIdentifier","src":"1032:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"994:37:88","nodeType":"YulIdentifier","src":"994:37:88"},"nativeSrc":"994:44:88","nodeType":"YulFunctionCall","src":"994:44:88"},"nativeSrc":"994:44:88","nodeType":"YulExpressionStatement","src":"994:44:88"},{"nativeSrc":"1047:15:88","nodeType":"YulAssignment","src":"1047:15:88","value":{"name":"value","nativeSrc":"1057:5:88","nodeType":"YulIdentifier","src":"1057:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1047:6:88","nodeType":"YulIdentifier","src":"1047:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"781:287:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"851:9:88","nodeType":"YulTypedName","src":"851:9:88","type":""},{"name":"dataEnd","nativeSrc":"862:7:88","nodeType":"YulTypedName","src":"862:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"874:6:88","nodeType":"YulTypedName","src":"874:6:88","type":""}],"src":"781:287:88"},{"body":{"nativeSrc":"1152:194:88","nodeType":"YulBlock","src":"1152:194:88","statements":[{"body":{"nativeSrc":"1198:16:88","nodeType":"YulBlock","src":"1198:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1207:1:88","nodeType":"YulLiteral","src":"1207:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1210:1:88","nodeType":"YulLiteral","src":"1210:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1200:6:88","nodeType":"YulIdentifier","src":"1200:6:88"},"nativeSrc":"1200:12:88","nodeType":"YulFunctionCall","src":"1200:12:88"},"nativeSrc":"1200:12:88","nodeType":"YulExpressionStatement","src":"1200:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1173:7:88","nodeType":"YulIdentifier","src":"1173:7:88"},{"name":"headStart","nativeSrc":"1182:9:88","nodeType":"YulIdentifier","src":"1182:9:88"}],"functionName":{"name":"sub","nativeSrc":"1169:3:88","nodeType":"YulIdentifier","src":"1169:3:88"},"nativeSrc":"1169:23:88","nodeType":"YulFunctionCall","src":"1169:23:88"},{"kind":"number","nativeSrc":"1194:2:88","nodeType":"YulLiteral","src":"1194:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1165:3:88","nodeType":"YulIdentifier","src":"1165:3:88"},"nativeSrc":"1165:32:88","nodeType":"YulFunctionCall","src":"1165:32:88"},"nativeSrc":"1162:52:88","nodeType":"YulIf","src":"1162:52:88"},{"nativeSrc":"1223:29:88","nodeType":"YulVariableDeclaration","src":"1223:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1242:9:88","nodeType":"YulIdentifier","src":"1242:9:88"}],"functionName":{"name":"mload","nativeSrc":"1236:5:88","nodeType":"YulIdentifier","src":"1236:5:88"},"nativeSrc":"1236:16:88","nodeType":"YulFunctionCall","src":"1236:16:88"},"variables":[{"name":"value","nativeSrc":"1227:5:88","nodeType":"YulTypedName","src":"1227:5:88","type":""}]},{"body":{"nativeSrc":"1300:16:88","nodeType":"YulBlock","src":"1300:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1309:1:88","nodeType":"YulLiteral","src":"1309:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1312:1:88","nodeType":"YulLiteral","src":"1312:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1302:6:88","nodeType":"YulIdentifier","src":"1302:6:88"},"nativeSrc":"1302:12:88","nodeType":"YulFunctionCall","src":"1302:12:88"},"nativeSrc":"1302:12:88","nodeType":"YulExpressionStatement","src":"1302:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1274:5:88","nodeType":"YulIdentifier","src":"1274:5:88"},{"arguments":[{"name":"value","nativeSrc":"1285:5:88","nodeType":"YulIdentifier","src":"1285:5:88"},{"kind":"number","nativeSrc":"1292:4:88","nodeType":"YulLiteral","src":"1292:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1281:3:88","nodeType":"YulIdentifier","src":"1281:3:88"},"nativeSrc":"1281:16:88","nodeType":"YulFunctionCall","src":"1281:16:88"}],"functionName":{"name":"eq","nativeSrc":"1271:2:88","nodeType":"YulIdentifier","src":"1271:2:88"},"nativeSrc":"1271:27:88","nodeType":"YulFunctionCall","src":"1271:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1264:6:88","nodeType":"YulIdentifier","src":"1264:6:88"},"nativeSrc":"1264:35:88","nodeType":"YulFunctionCall","src":"1264:35:88"},"nativeSrc":"1261:55:88","nodeType":"YulIf","src":"1261:55:88"},{"nativeSrc":"1325:15:88","nodeType":"YulAssignment","src":"1325:15:88","value":{"name":"value","nativeSrc":"1335:5:88","nodeType":"YulIdentifier","src":"1335:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1325:6:88","nodeType":"YulIdentifier","src":"1325:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"1073:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1118:9:88","nodeType":"YulTypedName","src":"1118:9:88","type":""},{"name":"dataEnd","nativeSrc":"1129:7:88","nodeType":"YulTypedName","src":"1129:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1141:6:88","nodeType":"YulTypedName","src":"1141:6:88","type":""}],"src":"1073:273:88"},{"body":{"nativeSrc":"1383:95:88","nodeType":"YulBlock","src":"1383:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1400:1:88","nodeType":"YulLiteral","src":"1400:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1407:3:88","nodeType":"YulLiteral","src":"1407:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1412:10:88","nodeType":"YulLiteral","src":"1412:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1403:3:88","nodeType":"YulIdentifier","src":"1403:3:88"},"nativeSrc":"1403:20:88","nodeType":"YulFunctionCall","src":"1403:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1393:6:88","nodeType":"YulIdentifier","src":"1393:6:88"},"nativeSrc":"1393:31:88","nodeType":"YulFunctionCall","src":"1393:31:88"},"nativeSrc":"1393:31:88","nodeType":"YulExpressionStatement","src":"1393:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1440:1:88","nodeType":"YulLiteral","src":"1440:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1443:4:88","nodeType":"YulLiteral","src":"1443:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1433:6:88","nodeType":"YulIdentifier","src":"1433:6:88"},"nativeSrc":"1433:15:88","nodeType":"YulFunctionCall","src":"1433:15:88"},"nativeSrc":"1433:15:88","nodeType":"YulExpressionStatement","src":"1433:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:88","nodeType":"YulLiteral","src":"1464:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:4:88","nodeType":"YulLiteral","src":"1467:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1457:6:88","nodeType":"YulIdentifier","src":"1457:6:88"},"nativeSrc":"1457:15:88","nodeType":"YulFunctionCall","src":"1457:15:88"},"nativeSrc":"1457:15:88","nodeType":"YulExpressionStatement","src":"1457:15:88"}]},"name":"panic_error_0x11","nativeSrc":"1351:127:88","nodeType":"YulFunctionDefinition","src":"1351:127:88"},{"body":{"nativeSrc":"1527:218:88","nodeType":"YulBlock","src":"1527:218:88","statements":[{"nativeSrc":"1537:23:88","nodeType":"YulVariableDeclaration","src":"1537:23:88","value":{"arguments":[{"name":"y","nativeSrc":"1552:1:88","nodeType":"YulIdentifier","src":"1552:1:88"},{"kind":"number","nativeSrc":"1555:4:88","nodeType":"YulLiteral","src":"1555:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1548:3:88","nodeType":"YulIdentifier","src":"1548:3:88"},"nativeSrc":"1548:12:88","nodeType":"YulFunctionCall","src":"1548:12:88"},"variables":[{"name":"y_1","nativeSrc":"1541:3:88","nodeType":"YulTypedName","src":"1541:3:88","type":""}]},{"body":{"nativeSrc":"1592:111:88","nodeType":"YulBlock","src":"1592:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1613:1:88","nodeType":"YulLiteral","src":"1613:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1620:3:88","nodeType":"YulLiteral","src":"1620:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1625:10:88","nodeType":"YulLiteral","src":"1625:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1616:3:88","nodeType":"YulIdentifier","src":"1616:3:88"},"nativeSrc":"1616:20:88","nodeType":"YulFunctionCall","src":"1616:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1606:6:88","nodeType":"YulIdentifier","src":"1606:6:88"},"nativeSrc":"1606:31:88","nodeType":"YulFunctionCall","src":"1606:31:88"},"nativeSrc":"1606:31:88","nodeType":"YulExpressionStatement","src":"1606:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1657:1:88","nodeType":"YulLiteral","src":"1657:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1660:4:88","nodeType":"YulLiteral","src":"1660:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"1650:6:88","nodeType":"YulIdentifier","src":"1650:6:88"},"nativeSrc":"1650:15:88","nodeType":"YulFunctionCall","src":"1650:15:88"},"nativeSrc":"1650:15:88","nodeType":"YulExpressionStatement","src":"1650:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1685:1:88","nodeType":"YulLiteral","src":"1685:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1688:4:88","nodeType":"YulLiteral","src":"1688:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1678:6:88","nodeType":"YulIdentifier","src":"1678:6:88"},"nativeSrc":"1678:15:88","nodeType":"YulFunctionCall","src":"1678:15:88"},"nativeSrc":"1678:15:88","nodeType":"YulExpressionStatement","src":"1678:15:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"1579:3:88","nodeType":"YulIdentifier","src":"1579:3:88"}],"functionName":{"name":"iszero","nativeSrc":"1572:6:88","nodeType":"YulIdentifier","src":"1572:6:88"},"nativeSrc":"1572:11:88","nodeType":"YulFunctionCall","src":"1572:11:88"},"nativeSrc":"1569:134:88","nodeType":"YulIf","src":"1569:134:88"},{"nativeSrc":"1712:27:88","nodeType":"YulAssignment","src":"1712:27:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"1725:1:88","nodeType":"YulIdentifier","src":"1725:1:88"},{"kind":"number","nativeSrc":"1728:4:88","nodeType":"YulLiteral","src":"1728:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1721:3:88","nodeType":"YulIdentifier","src":"1721:3:88"},"nativeSrc":"1721:12:88","nodeType":"YulFunctionCall","src":"1721:12:88"},{"name":"y_1","nativeSrc":"1735:3:88","nodeType":"YulIdentifier","src":"1735:3:88"}],"functionName":{"name":"div","nativeSrc":"1717:3:88","nodeType":"YulIdentifier","src":"1717:3:88"},"nativeSrc":"1717:22:88","nodeType":"YulFunctionCall","src":"1717:22:88"},"variableNames":[{"name":"r","nativeSrc":"1712:1:88","nodeType":"YulIdentifier","src":"1712:1:88"}]}]},"name":"checked_div_t_uint8","nativeSrc":"1483:262:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1512:1:88","nodeType":"YulTypedName","src":"1512:1:88","type":""},{"name":"y","nativeSrc":"1515:1:88","nodeType":"YulTypedName","src":"1515:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"1521:1:88","nodeType":"YulTypedName","src":"1521:1:88","type":""}],"src":"1483:262:88"},{"body":{"nativeSrc":"1819:306:88","nodeType":"YulBlock","src":"1819:306:88","statements":[{"nativeSrc":"1829:10:88","nodeType":"YulAssignment","src":"1829:10:88","value":{"kind":"number","nativeSrc":"1838:1:88","nodeType":"YulLiteral","src":"1838:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"1829:5:88","nodeType":"YulIdentifier","src":"1829:5:88"}]},{"nativeSrc":"1848:13:88","nodeType":"YulAssignment","src":"1848:13:88","value":{"name":"_base","nativeSrc":"1856:5:88","nodeType":"YulIdentifier","src":"1856:5:88"},"variableNames":[{"name":"base","nativeSrc":"1848:4:88","nodeType":"YulIdentifier","src":"1848:4:88"}]},{"body":{"nativeSrc":"1906:213:88","nodeType":"YulBlock","src":"1906:213:88","statements":[{"body":{"nativeSrc":"1948:22:88","nodeType":"YulBlock","src":"1948:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"1950:16:88","nodeType":"YulIdentifier","src":"1950:16:88"},"nativeSrc":"1950:18:88","nodeType":"YulFunctionCall","src":"1950:18:88"},"nativeSrc":"1950:18:88","nodeType":"YulExpressionStatement","src":"1950:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"1926:4:88","nodeType":"YulIdentifier","src":"1926:4:88"},{"arguments":[{"name":"max","nativeSrc":"1936:3:88","nodeType":"YulIdentifier","src":"1936:3:88"},{"name":"base","nativeSrc":"1941:4:88","nodeType":"YulIdentifier","src":"1941:4:88"}],"functionName":{"name":"div","nativeSrc":"1932:3:88","nodeType":"YulIdentifier","src":"1932:3:88"},"nativeSrc":"1932:14:88","nodeType":"YulFunctionCall","src":"1932:14:88"}],"functionName":{"name":"gt","nativeSrc":"1923:2:88","nodeType":"YulIdentifier","src":"1923:2:88"},"nativeSrc":"1923:24:88","nodeType":"YulFunctionCall","src":"1923:24:88"},"nativeSrc":"1920:50:88","nodeType":"YulIf","src":"1920:50:88"},{"body":{"nativeSrc":"2003:29:88","nodeType":"YulBlock","src":"2003:29:88","statements":[{"nativeSrc":"2005:25:88","nodeType":"YulAssignment","src":"2005:25:88","value":{"arguments":[{"name":"power","nativeSrc":"2018:5:88","nodeType":"YulIdentifier","src":"2018:5:88"},{"name":"base","nativeSrc":"2025:4:88","nodeType":"YulIdentifier","src":"2025:4:88"}],"functionName":{"name":"mul","nativeSrc":"2014:3:88","nodeType":"YulIdentifier","src":"2014:3:88"},"nativeSrc":"2014:16:88","nodeType":"YulFunctionCall","src":"2014:16:88"},"variableNames":[{"name":"power","nativeSrc":"2005:5:88","nodeType":"YulIdentifier","src":"2005:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"1990:8:88","nodeType":"YulIdentifier","src":"1990:8:88"},{"kind":"number","nativeSrc":"2000:1:88","nodeType":"YulLiteral","src":"2000:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1986:3:88","nodeType":"YulIdentifier","src":"1986:3:88"},"nativeSrc":"1986:16:88","nodeType":"YulFunctionCall","src":"1986:16:88"},"nativeSrc":"1983:49:88","nodeType":"YulIf","src":"1983:49:88"},{"nativeSrc":"2045:23:88","nodeType":"YulAssignment","src":"2045:23:88","value":{"arguments":[{"name":"base","nativeSrc":"2057:4:88","nodeType":"YulIdentifier","src":"2057:4:88"},{"name":"base","nativeSrc":"2063:4:88","nodeType":"YulIdentifier","src":"2063:4:88"}],"functionName":{"name":"mul","nativeSrc":"2053:3:88","nodeType":"YulIdentifier","src":"2053:3:88"},"nativeSrc":"2053:15:88","nodeType":"YulFunctionCall","src":"2053:15:88"},"variableNames":[{"name":"base","nativeSrc":"2045:4:88","nodeType":"YulIdentifier","src":"2045:4:88"}]},{"nativeSrc":"2081:28:88","nodeType":"YulAssignment","src":"2081:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"2097:1:88","nodeType":"YulLiteral","src":"2097:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"2100:8:88","nodeType":"YulIdentifier","src":"2100:8:88"}],"functionName":{"name":"shr","nativeSrc":"2093:3:88","nodeType":"YulIdentifier","src":"2093:3:88"},"nativeSrc":"2093:16:88","nodeType":"YulFunctionCall","src":"2093:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"2081:8:88","nodeType":"YulIdentifier","src":"2081:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"1881:8:88","nodeType":"YulIdentifier","src":"1881:8:88"},{"kind":"number","nativeSrc":"1891:1:88","nodeType":"YulLiteral","src":"1891:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"1878:2:88","nodeType":"YulIdentifier","src":"1878:2:88"},"nativeSrc":"1878:15:88","nodeType":"YulFunctionCall","src":"1878:15:88"},"nativeSrc":"1870:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"1894:3:88","nodeType":"YulBlock","src":"1894:3:88","statements":[]},"pre":{"nativeSrc":"1874:3:88","nodeType":"YulBlock","src":"1874:3:88","statements":[]},"src":"1870:249:88"}]},"name":"checked_exp_helper","nativeSrc":"1750:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"1778:5:88","nodeType":"YulTypedName","src":"1778:5:88","type":""},{"name":"exponent","nativeSrc":"1785:8:88","nodeType":"YulTypedName","src":"1785:8:88","type":""},{"name":"max","nativeSrc":"1795:3:88","nodeType":"YulTypedName","src":"1795:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"1803:5:88","nodeType":"YulTypedName","src":"1803:5:88","type":""},{"name":"base","nativeSrc":"1810:4:88","nodeType":"YulTypedName","src":"1810:4:88","type":""}],"src":"1750:375:88"},{"body":{"nativeSrc":"2189:843:88","nodeType":"YulBlock","src":"2189:843:88","statements":[{"body":{"nativeSrc":"2227:52:88","nodeType":"YulBlock","src":"2227:52:88","statements":[{"nativeSrc":"2241:10:88","nodeType":"YulAssignment","src":"2241:10:88","value":{"kind":"number","nativeSrc":"2250:1:88","nodeType":"YulLiteral","src":"2250:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2241:5:88","nodeType":"YulIdentifier","src":"2241:5:88"}]},{"nativeSrc":"2264:5:88","nodeType":"YulLeave","src":"2264:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2209:8:88","nodeType":"YulIdentifier","src":"2209:8:88"}],"functionName":{"name":"iszero","nativeSrc":"2202:6:88","nodeType":"YulIdentifier","src":"2202:6:88"},"nativeSrc":"2202:16:88","nodeType":"YulFunctionCall","src":"2202:16:88"},"nativeSrc":"2199:80:88","nodeType":"YulIf","src":"2199:80:88"},{"body":{"nativeSrc":"2312:52:88","nodeType":"YulBlock","src":"2312:52:88","statements":[{"nativeSrc":"2326:10:88","nodeType":"YulAssignment","src":"2326:10:88","value":{"kind":"number","nativeSrc":"2335:1:88","nodeType":"YulLiteral","src":"2335:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"2326:5:88","nodeType":"YulIdentifier","src":"2326:5:88"}]},{"nativeSrc":"2349:5:88","nodeType":"YulLeave","src":"2349:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"2298:4:88","nodeType":"YulIdentifier","src":"2298:4:88"}],"functionName":{"name":"iszero","nativeSrc":"2291:6:88","nodeType":"YulIdentifier","src":"2291:6:88"},"nativeSrc":"2291:12:88","nodeType":"YulFunctionCall","src":"2291:12:88"},"nativeSrc":"2288:76:88","nodeType":"YulIf","src":"2288:76:88"},{"cases":[{"body":{"nativeSrc":"2400:52:88","nodeType":"YulBlock","src":"2400:52:88","statements":[{"nativeSrc":"2414:10:88","nodeType":"YulAssignment","src":"2414:10:88","value":{"kind":"number","nativeSrc":"2423:1:88","nodeType":"YulLiteral","src":"2423:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"2414:5:88","nodeType":"YulIdentifier","src":"2414:5:88"}]},{"nativeSrc":"2437:5:88","nodeType":"YulLeave","src":"2437:5:88"}]},"nativeSrc":"2393:59:88","nodeType":"YulCase","src":"2393:59:88","value":{"kind":"number","nativeSrc":"2398:1:88","nodeType":"YulLiteral","src":"2398:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"2468:167:88","nodeType":"YulBlock","src":"2468:167:88","statements":[{"body":{"nativeSrc":"2503:22:88","nodeType":"YulBlock","src":"2503:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2505:16:88","nodeType":"YulIdentifier","src":"2505:16:88"},"nativeSrc":"2505:18:88","nodeType":"YulFunctionCall","src":"2505:18:88"},"nativeSrc":"2505:18:88","nodeType":"YulExpressionStatement","src":"2505:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"2488:8:88","nodeType":"YulIdentifier","src":"2488:8:88"},{"kind":"number","nativeSrc":"2498:3:88","nodeType":"YulLiteral","src":"2498:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"2485:2:88","nodeType":"YulIdentifier","src":"2485:2:88"},"nativeSrc":"2485:17:88","nodeType":"YulFunctionCall","src":"2485:17:88"},"nativeSrc":"2482:43:88","nodeType":"YulIf","src":"2482:43:88"},{"nativeSrc":"2538:25:88","nodeType":"YulAssignment","src":"2538:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"2551:8:88","nodeType":"YulIdentifier","src":"2551:8:88"},{"kind":"number","nativeSrc":"2561:1:88","nodeType":"YulLiteral","src":"2561:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2547:3:88","nodeType":"YulIdentifier","src":"2547:3:88"},"nativeSrc":"2547:16:88","nodeType":"YulFunctionCall","src":"2547:16:88"},"variableNames":[{"name":"power","nativeSrc":"2538:5:88","nodeType":"YulIdentifier","src":"2538:5:88"}]},{"nativeSrc":"2576:11:88","nodeType":"YulVariableDeclaration","src":"2576:11:88","value":{"kind":"number","nativeSrc":"2586:1:88","nodeType":"YulLiteral","src":"2586:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2580:2:88","nodeType":"YulTypedName","src":"2580:2:88","type":""}]},{"nativeSrc":"2600:7:88","nodeType":"YulAssignment","src":"2600:7:88","value":{"kind":"number","nativeSrc":"2606:1:88","nodeType":"YulLiteral","src":"2606:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"2600:2:88","nodeType":"YulIdentifier","src":"2600:2:88"}]},{"nativeSrc":"2620:5:88","nodeType":"YulLeave","src":"2620:5:88"}]},"nativeSrc":"2461:174:88","nodeType":"YulCase","src":"2461:174:88","value":{"kind":"number","nativeSrc":"2466:1:88","nodeType":"YulLiteral","src":"2466:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"2380:4:88","nodeType":"YulIdentifier","src":"2380:4:88"},"nativeSrc":"2373:262:88","nodeType":"YulSwitch","src":"2373:262:88"},{"body":{"nativeSrc":"2733:114:88","nodeType":"YulBlock","src":"2733:114:88","statements":[{"nativeSrc":"2747:28:88","nodeType":"YulAssignment","src":"2747:28:88","value":{"arguments":[{"name":"base","nativeSrc":"2760:4:88","nodeType":"YulIdentifier","src":"2760:4:88"},{"name":"exponent","nativeSrc":"2766:8:88","nodeType":"YulIdentifier","src":"2766:8:88"}],"functionName":{"name":"exp","nativeSrc":"2756:3:88","nodeType":"YulIdentifier","src":"2756:3:88"},"nativeSrc":"2756:19:88","nodeType":"YulFunctionCall","src":"2756:19:88"},"variableNames":[{"name":"power","nativeSrc":"2747:5:88","nodeType":"YulIdentifier","src":"2747:5:88"}]},{"nativeSrc":"2788:11:88","nodeType":"YulVariableDeclaration","src":"2788:11:88","value":{"kind":"number","nativeSrc":"2798:1:88","nodeType":"YulLiteral","src":"2798:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"2792:2:88","nodeType":"YulTypedName","src":"2792:2:88","type":""}]},{"nativeSrc":"2812:7:88","nodeType":"YulAssignment","src":"2812:7:88","value":{"kind":"number","nativeSrc":"2818:1:88","nodeType":"YulLiteral","src":"2818:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"2812:2:88","nodeType":"YulIdentifier","src":"2812:2:88"}]},{"nativeSrc":"2832:5:88","nodeType":"YulLeave","src":"2832:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2657:4:88","nodeType":"YulIdentifier","src":"2657:4:88"},{"kind":"number","nativeSrc":"2663:2:88","nodeType":"YulLiteral","src":"2663:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"2654:2:88","nodeType":"YulIdentifier","src":"2654:2:88"},"nativeSrc":"2654:12:88","nodeType":"YulFunctionCall","src":"2654:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"2671:8:88","nodeType":"YulIdentifier","src":"2671:8:88"},{"kind":"number","nativeSrc":"2681:2:88","nodeType":"YulLiteral","src":"2681:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"2668:2:88","nodeType":"YulIdentifier","src":"2668:2:88"},"nativeSrc":"2668:16:88","nodeType":"YulFunctionCall","src":"2668:16:88"}],"functionName":{"name":"and","nativeSrc":"2650:3:88","nodeType":"YulIdentifier","src":"2650:3:88"},"nativeSrc":"2650:35:88","nodeType":"YulFunctionCall","src":"2650:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"2694:4:88","nodeType":"YulIdentifier","src":"2694:4:88"},{"kind":"number","nativeSrc":"2700:3:88","nodeType":"YulLiteral","src":"2700:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"2691:2:88","nodeType":"YulIdentifier","src":"2691:2:88"},"nativeSrc":"2691:13:88","nodeType":"YulFunctionCall","src":"2691:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"2709:8:88","nodeType":"YulIdentifier","src":"2709:8:88"},{"kind":"number","nativeSrc":"2719:2:88","nodeType":"YulLiteral","src":"2719:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2706:2:88","nodeType":"YulIdentifier","src":"2706:2:88"},"nativeSrc":"2706:16:88","nodeType":"YulFunctionCall","src":"2706:16:88"}],"functionName":{"name":"and","nativeSrc":"2687:3:88","nodeType":"YulIdentifier","src":"2687:3:88"},"nativeSrc":"2687:36:88","nodeType":"YulFunctionCall","src":"2687:36:88"}],"functionName":{"name":"or","nativeSrc":"2647:2:88","nodeType":"YulIdentifier","src":"2647:2:88"},"nativeSrc":"2647:77:88","nodeType":"YulFunctionCall","src":"2647:77:88"},"nativeSrc":"2644:203:88","nodeType":"YulIf","src":"2644:203:88"},{"nativeSrc":"2856:65:88","nodeType":"YulVariableDeclaration","src":"2856:65:88","value":{"arguments":[{"name":"base","nativeSrc":"2898:4:88","nodeType":"YulIdentifier","src":"2898:4:88"},{"name":"exponent","nativeSrc":"2904:8:88","nodeType":"YulIdentifier","src":"2904:8:88"},{"arguments":[{"kind":"number","nativeSrc":"2918:1:88","nodeType":"YulLiteral","src":"2918:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2914:3:88","nodeType":"YulIdentifier","src":"2914:3:88"},"nativeSrc":"2914:6:88","nodeType":"YulFunctionCall","src":"2914:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"2879:18:88","nodeType":"YulIdentifier","src":"2879:18:88"},"nativeSrc":"2879:42:88","nodeType":"YulFunctionCall","src":"2879:42:88"},"variables":[{"name":"power_1","nativeSrc":"2860:7:88","nodeType":"YulTypedName","src":"2860:7:88","type":""},{"name":"base_1","nativeSrc":"2869:6:88","nodeType":"YulTypedName","src":"2869:6:88","type":""}]},{"body":{"nativeSrc":"2966:22:88","nodeType":"YulBlock","src":"2966:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2968:16:88","nodeType":"YulIdentifier","src":"2968:16:88"},"nativeSrc":"2968:18:88","nodeType":"YulFunctionCall","src":"2968:18:88"},"nativeSrc":"2968:18:88","nodeType":"YulExpressionStatement","src":"2968:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"2936:7:88","nodeType":"YulIdentifier","src":"2936:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2953:1:88","nodeType":"YulLiteral","src":"2953:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2949:3:88","nodeType":"YulIdentifier","src":"2949:3:88"},"nativeSrc":"2949:6:88","nodeType":"YulFunctionCall","src":"2949:6:88"},{"name":"base_1","nativeSrc":"2957:6:88","nodeType":"YulIdentifier","src":"2957:6:88"}],"functionName":{"name":"div","nativeSrc":"2945:3:88","nodeType":"YulIdentifier","src":"2945:3:88"},"nativeSrc":"2945:19:88","nodeType":"YulFunctionCall","src":"2945:19:88"}],"functionName":{"name":"gt","nativeSrc":"2933:2:88","nodeType":"YulIdentifier","src":"2933:2:88"},"nativeSrc":"2933:32:88","nodeType":"YulFunctionCall","src":"2933:32:88"},"nativeSrc":"2930:58:88","nodeType":"YulIf","src":"2930:58:88"},{"nativeSrc":"2997:29:88","nodeType":"YulAssignment","src":"2997:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"3010:7:88","nodeType":"YulIdentifier","src":"3010:7:88"},{"name":"base_1","nativeSrc":"3019:6:88","nodeType":"YulIdentifier","src":"3019:6:88"}],"functionName":{"name":"mul","nativeSrc":"3006:3:88","nodeType":"YulIdentifier","src":"3006:3:88"},"nativeSrc":"3006:20:88","nodeType":"YulFunctionCall","src":"3006:20:88"},"variableNames":[{"name":"power","nativeSrc":"2997:5:88","nodeType":"YulIdentifier","src":"2997:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"2130:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"2160:4:88","nodeType":"YulTypedName","src":"2160:4:88","type":""},{"name":"exponent","nativeSrc":"2166:8:88","nodeType":"YulTypedName","src":"2166:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"2179:5:88","nodeType":"YulTypedName","src":"2179:5:88","type":""}],"src":"2130:902:88"},{"body":{"nativeSrc":"3105:72:88","nodeType":"YulBlock","src":"3105:72:88","statements":[{"nativeSrc":"3115:56:88","nodeType":"YulAssignment","src":"3115:56:88","value":{"arguments":[{"name":"base","nativeSrc":"3145:4:88","nodeType":"YulIdentifier","src":"3145:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"3155:8:88","nodeType":"YulIdentifier","src":"3155:8:88"},{"kind":"number","nativeSrc":"3165:4:88","nodeType":"YulLiteral","src":"3165:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3151:3:88","nodeType":"YulIdentifier","src":"3151:3:88"},"nativeSrc":"3151:19:88","nodeType":"YulFunctionCall","src":"3151:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"3124:20:88","nodeType":"YulIdentifier","src":"3124:20:88"},"nativeSrc":"3124:47:88","nodeType":"YulFunctionCall","src":"3124:47:88"},"variableNames":[{"name":"power","nativeSrc":"3115:5:88","nodeType":"YulIdentifier","src":"3115:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"3037:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"3076:4:88","nodeType":"YulTypedName","src":"3076:4:88","type":""},{"name":"exponent","nativeSrc":"3082:8:88","nodeType":"YulTypedName","src":"3082:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"3095:5:88","nodeType":"YulTypedName","src":"3095:5:88","type":""}],"src":"3037:140:88"},{"body":{"nativeSrc":"3356:229:88","nodeType":"YulBlock","src":"3356:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3373:9:88","nodeType":"YulIdentifier","src":"3373:9:88"},{"kind":"number","nativeSrc":"3384:2:88","nodeType":"YulLiteral","src":"3384:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3366:6:88","nodeType":"YulIdentifier","src":"3366:6:88"},"nativeSrc":"3366:21:88","nodeType":"YulFunctionCall","src":"3366:21:88"},"nativeSrc":"3366:21:88","nodeType":"YulExpressionStatement","src":"3366:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3407:9:88","nodeType":"YulIdentifier","src":"3407:9:88"},{"kind":"number","nativeSrc":"3418:2:88","nodeType":"YulLiteral","src":"3418:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3403:3:88","nodeType":"YulIdentifier","src":"3403:3:88"},"nativeSrc":"3403:18:88","nodeType":"YulFunctionCall","src":"3403:18:88"},{"kind":"number","nativeSrc":"3423:2:88","nodeType":"YulLiteral","src":"3423:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"3396:6:88","nodeType":"YulIdentifier","src":"3396:6:88"},"nativeSrc":"3396:30:88","nodeType":"YulFunctionCall","src":"3396:30:88"},"nativeSrc":"3396:30:88","nodeType":"YulExpressionStatement","src":"3396:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3446:9:88","nodeType":"YulIdentifier","src":"3446:9:88"},{"kind":"number","nativeSrc":"3457:2:88","nodeType":"YulLiteral","src":"3457:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3442:3:88","nodeType":"YulIdentifier","src":"3442:3:88"},"nativeSrc":"3442:18:88","nodeType":"YulFunctionCall","src":"3442:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"3462:34:88","nodeType":"YulLiteral","src":"3462:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"3435:6:88","nodeType":"YulIdentifier","src":"3435:6:88"},"nativeSrc":"3435:62:88","nodeType":"YulFunctionCall","src":"3435:62:88"},"nativeSrc":"3435:62:88","nodeType":"YulExpressionStatement","src":"3435:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3517:9:88","nodeType":"YulIdentifier","src":"3517:9:88"},{"kind":"number","nativeSrc":"3528:2:88","nodeType":"YulLiteral","src":"3528:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3513:3:88","nodeType":"YulIdentifier","src":"3513:3:88"},"nativeSrc":"3513:18:88","nodeType":"YulFunctionCall","src":"3513:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"3533:9:88","nodeType":"YulLiteral","src":"3533:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:88","nodeType":"YulIdentifier","src":"3506:6:88"},"nativeSrc":"3506:37:88","nodeType":"YulFunctionCall","src":"3506:37:88"},"nativeSrc":"3506:37:88","nodeType":"YulExpressionStatement","src":"3506:37:88"},{"nativeSrc":"3552:27:88","nodeType":"YulAssignment","src":"3552:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3564:9:88","nodeType":"YulIdentifier","src":"3564:9:88"},{"kind":"number","nativeSrc":"3575:3:88","nodeType":"YulLiteral","src":"3575:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3560:3:88","nodeType":"YulIdentifier","src":"3560:3:88"},"nativeSrc":"3560:19:88","nodeType":"YulFunctionCall","src":"3560:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3552:4:88","nodeType":"YulIdentifier","src":"3552:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3182:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3333:9:88","nodeType":"YulTypedName","src":"3333:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3347:4:88","nodeType":"YulTypedName","src":"3347:4:88","type":""}],"src":"3182:403:88"},{"body":{"nativeSrc":"3687:87:88","nodeType":"YulBlock","src":"3687:87:88","statements":[{"nativeSrc":"3697:26:88","nodeType":"YulAssignment","src":"3697:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3709:9:88","nodeType":"YulIdentifier","src":"3709:9:88"},{"kind":"number","nativeSrc":"3720:2:88","nodeType":"YulLiteral","src":"3720:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3705:3:88","nodeType":"YulIdentifier","src":"3705:3:88"},"nativeSrc":"3705:18:88","nodeType":"YulFunctionCall","src":"3705:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3697:4:88","nodeType":"YulIdentifier","src":"3697:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3739:9:88","nodeType":"YulIdentifier","src":"3739:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3754:6:88","nodeType":"YulIdentifier","src":"3754:6:88"},{"kind":"number","nativeSrc":"3762:4:88","nodeType":"YulLiteral","src":"3762:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3750:3:88","nodeType":"YulIdentifier","src":"3750:3:88"},"nativeSrc":"3750:17:88","nodeType":"YulFunctionCall","src":"3750:17:88"}],"functionName":{"name":"mstore","nativeSrc":"3732:6:88","nodeType":"YulIdentifier","src":"3732:6:88"},"nativeSrc":"3732:36:88","nodeType":"YulFunctionCall","src":"3732:36:88"},"nativeSrc":"3732:36:88","nodeType":"YulExpressionStatement","src":"3732:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"3590:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3656:9:88","nodeType":"YulTypedName","src":"3656:9:88","type":""},{"name":"value0","nativeSrc":"3667:6:88","nodeType":"YulTypedName","src":"3667:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3678:4:88","nodeType":"YulTypedName","src":"3678:4:88","type":""}],"src":"3590:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IEToken_$23549t_contract$_IEToken_$23549_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_contract_IPolicyPool(value_2)\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(and(x, 0xff), y_1)\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"61012060405230608052348015610014575f5ffd5b5060405161508a38038061508a83398101604081905261003391610245565b82806001600160a01b03811661005c57604051636b23cf0160e01b815260040160405180910390fd5b610064610172565b806001600160a01b031660a0816001600160a01b031681525050506002816001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e1919061028f565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014091906102b1565b61014a91906102e5565b61015590600a6103f7565b60c052506001600160a01b0391821660e052166101005250610405565b5f54610100900460ff16156101dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161461022c575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610242575f5ffd5b50565b5f5f5f60608486031215610257575f5ffd5b83516102628161022e565b60208501519093506102738161022e565b60408501519092506102848161022e565b809150509250925092565b5f6020828403121561029f575f5ffd5b81516102aa8161022e565b9392505050565b5f602082840312156102c1575f5ffd5b815160ff811681146102aa575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff83168061030357634e487b7160e01b5f52601260045260245ffd5b8060ff84160491505092915050565b6001815b600184111561034d57808504811115610331576103316102d1565b600184161561033f57908102905b60019390931c928002610316565b935093915050565b5f82610363575060016103f1565b8161036f57505f6103f1565b8160018114610385576002811461038f576103ab565b60019150506103f1565b60ff8411156103a0576103a06102d1565b50506001821b6103f1565b5060208310610133831016604e8410600b84101617156103ce575081810a6103f1565b6103da5f198484610312565b805f19048211156103ed576103ed6102d1565b0290505b92915050565b5f6102aa60ff841683610355565b60805160a05160c05160e05161010051614b066105845f395f8181610445015281816119b601528181611aee015281816120e0015281816124230152818161245901528181612daf01528181612e56015281816132370152818161395801526139f201525f81816103fc01528181610e090152818161191701528181611a55015281816120470152818161248c015281816124c201528181612a6101528181612b0701528181612b9501528181612c2c01528181612cbd0152818161317d0152818161382501526138bf01525f8181612d6a01528181612ec501526133c501525f8181610334015281816106db0152818161095201528181610bd3015281816111150152818161121c0152818161143e0152818161152e0152818161176101528181611b9301528181611c4401528181611fd2015281816121730152818161223301528181612328015281816125fb0152613fe401525f81816108450152818161088e01528181610ad001528181610b100152610e5c0152614b065ff3fe60806040526004361061021d575f3560e01c80637bb623191161011e578063a0ce58b8116100a8578063d80359f11161006d578063d80359f114610611578063e3638ea314610630578063e5a6b10f1461064f578063e823584a14610663578063f39a4bc514610677575f5ffd5b8063a0ce58b81461056d578063aac0cfaf1461058c578063ab83b4be146105bf578063c2c4c5c1146105de578063c7a9c70d146105f2575f5ffd5b80638456cb59116100ee5780638456cb59146104c45780638ca23bc9146104d857806394217ad11461050b57806397a146c01461052f5780639d8c5ee71461054e575f5ffd5b80637bb62319146104695780637d7c2a1c1461047d5780638129fc1c1461049157806381ced71f146104a5575f5ffd5b80634d15eb03116101aa57806352d1902d1161016f57806352d1902d146103c6578063536c9a43146103da578063536ebbfc146103ee5780635c975abb146104205780637b83037b14610437575f5ffd5b80634d15eb03146103265780634eb978a41461036c5780634f1ef286146103805780634fe0bd1e1461039357806350093f04146103a7575f5ffd5b806326ccbd22116101f057806326ccbd22146102b55780632d8f892a146102c95780633659cfe6146102dd5780633f4ba83a146102fe5780634863c8b014610312575f5ffd5b806301ffc9a71461022157806313888565146102555780631a548a27146102745780631e9c465814610289575b5f5ffd5b34801561022c575f5ffd5b5061024061023b36600461429d565b61068b565b60405190151581526020015b60405180910390f35b348015610260575f5ffd5b5061012e545b60405190815260200161024c565b34801561027f575f5ffd5b5061012d54610266565b348015610294575f5ffd5b506102a86102a336600461438d565b6106b6565b60405161024c91906143ed565b3480156102c0575f5ffd5b506102666107eb565b3480156102d4575f5ffd5b50610266610803565b3480156102e8575f5ffd5b506102fc6102f7366004614413565b61083b565b005b348015610309575f5ffd5b506102fc610921565b34801561031d575f5ffd5b50610266610a3c565b348015610331575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161024c565b348015610377575f5ffd5b506102fc610a57565b6102fc61038e36600461442e565b610ac6565b34801561039e575f5ffd5b50610266610b91565b3480156103b2575f5ffd5b506102fc6103c1366004614488565b610bb0565b3480156103d1575f5ffd5b50610266610e50565b3480156103e5575f5ffd5b50610266610f01565b3480156103f9575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610354565b34801561042b575f5ffd5b5060975460ff16610240565b348015610442575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610354565b348015610474575f5ffd5b50610266610f1a565b348015610488575f5ffd5b506102fc610f4c565b34801561049c575f5ffd5b506102fc610f9b565b3480156104b0575f5ffd5b506102fc6104bf3660046144b6565b6110a6565b3480156104cf575f5ffd5b506102fc611105565b3480156104e3575f5ffd5b506102667fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b348015610516575f5ffd5b5061012f546201000090046001600160a01b0316610354565b34801561053a575f5ffd5b506102fc6105493660046144cd565b6111f9565b348015610559575f5ffd5b506102fc6105683660046145d6565b61143b565b348015610578575f5ffd5b50610266610587366004614615565b61150a565b348015610597575f5ffd5b506102667f963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa81565b3480156105ca575f5ffd5b506102fc6105d9366004614638565b61175e565b3480156105e9575f5ffd5b506102fc611b76565b3480156105fd575f5ffd5b506102fc61060c36600461466d565b611b90565b34801561061c575f5ffd5b506102fc61062b366004614688565b611c13565b34801561063b575f5ffd5b506102fc61064a36600461466d565b611fcf565b34801561065a575f5ffd5b50610354612170565b34801561066e575f5ffd5b506102666121f1565b348015610682575f5ffd5b5061026661220f565b5f610695826124ed565b806106b057506001600160e01b03198216630e72532960e11b145b92915050565b60607fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075991906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161078b94939291906146cf565b5f6040518083038186803b1580156107a1575f5ffd5b505afa1580156107b3573d5f5f3e3d5ffd5b505050506107e4836107d561012f546001600160a01b03620100009091041690565b6001600160a01b031690612522565b9392505050565b5f61012e5461012d546107fe919061470d565b905090565b61012f545f90600160b01b900463ffffffff16156108355761012f546107fe90600160b01b900463ffffffff16612547565b505f1990565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361088c5760405162461bcd60e51b815260040161088390614734565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108d45f516020614a6a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146108fa5760405162461bcd60e51b815260040161088390614780565b610903816125ca565b604080515f8082526020820190925261091e918391906126e2565b50565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d091906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a049594939291906147cc565b5f6040518083038186803b158015610a1a575f5ffd5b505afa158015610a2c573d5f5f3e3d5ffd5b50505050610a3861284c565b5050565b61012f545f906107fe90655af3107a40009061ffff166147ff565b610a5f61289e565b6040805160048152602481019091526020810180516001600160e01b03166313ae5e2960e21b1790525f90610aa8906107d561012f546001600160a01b03620100009091041690565b905061091e81806020019051810190610ac19190614816565b6128e4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b0e5760405162461bcd60e51b815260040161088390614734565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b565f516020614a6a5f395f51905f52546001600160a01b031690565b6001600160a01b031614610b7c5760405162461bcd60e51b815260040161088390614780565b610b85826125ca565b610a38828260016126e2565b5f610ba2610b9d610a3c565b61294d565b61012e546107fe919061482d565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5191906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610c8394939291906146cf565b5f6040518083038186803b158015610c99575f5ffd5b505afa158015610cab573d5f5f3e3d5ffd5b505050505f610cca655af3107a400085610cc5919061484c565b612966565b905083610ce1655af3107a400061ffff84166147ff565b14610d405760405162461bcd60e51b815260206004820152602960248201527f56616c69646174696f6e3a206f6e6c7920757020746f203420646563696d616c6044820152681cc8185b1b1bddd95960ba1b6064820152608401610883565b5f610d4a8561294d565b90508380610d5b57508061012e5412155b610db95760405162461bcd60e51b815260206004820152602960248201527f56616c69646174696f6e3a20737572706c7573206d757374206265203e3d206d604482015268185e1119599a58da5d60ba1b6064820152608401610883565b61012f805461ffff191661ffff8416179055610dd36129c8565b61012e54602090821315610e3e575f8261012e54610df09061486b565b610dfa919061470d565b61012e8490559050610e3881307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515612a3b565b60219150505b610e488187612f4c565b505050505050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eef5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610883565b505f516020614a6a5f395f51905f5290565b5f5f61012e541215610f1257505f90565b5061012e5490565b61012f545f90600160d01b900463ffffffff16156108355761012f546107fe90600160d01b900463ffffffff16612547565b610f5461289e565b6040805160048152602481019091526020810180516001600160e01b0316631f5f0a8760e21b17905261091e906107d561012f546001600160a01b03620100009091041690565b5f54610100900460ff1615808015610fb957505f54600160ff909116105b80610fd25750303b158015610fd257505f5460ff166001145b6110355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610883565b5f805460ff191660011790558015611056575f805461ff0019166101001790555b61105e612f9e565b801561091e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110af81612fd4565b6110ce3330836110bd612170565b6001600160a01b0316929190612fee565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910161109b565b5f516020614ab15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561116f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119391906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016111c594939291906146cf565b5f6040518083038186803b1580156111db575f5ffd5b505afa1580156111ed573d5f5f3e3d5ffd5b5050505061091e613059565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611276573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a91906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016112cc94939291906146cf565b5f6040518083038186803b1580156112e2575f5ffd5b505afa1580156112f4573d5f5f3e3d5ffd5b505050505f1983146113975761130983613096565b61012f805463ffffffff60b01b1916600160b01b63ffffffff93841681029190911791829055859261133f929190910416612547565b1461138c5760405162461bcd60e51b815260206004820152601f60248201527f56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564006044820152606401610883565b611397602284612f4c565b5f198214611436576113a882613096565b61012f805463ffffffff60d01b1916600160d01b63ffffffff9384168102919091179182905584926113de929190910416612547565b1461142b5760405162461bcd60e51b815260206004820152601f60248201527f56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564006044820152606401610883565b611436602383612f4c565b505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146114845760405163799e780f60e01b815260040160405180910390fd5b61148c61289e565b8160c0015161012d5f8282546114a29190614885565b909155505060c08201515f906114c1906114bc908461482d565b61311b565b905080156114e8576114d283613171565b6114e381855f866060015111612a3b565b6114f1565b6114f183613171565b611504846114ff8385614885565b6132bc565b50505050565b5f7fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b7940577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611588573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ac91906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016115de94939291906146cf565b5f6040518083038186803b1580156115f4575f5ffd5b505afa158015611606573d5f5f3e3d5ffd5b5050506001600160a01b03841690506116875760405162461bcd60e51b815260206004820152603760248201527f5072656d69756d734163636f756e743a2064657374696e6174696f6e2063616e60448201527f6e6f7420626520746865207a65726f20616464726573730000000000000000006064820152608401610883565b5f61012e5413611699575f93506116a9565b6116a68461012e54613415565b93505b5f84116116f85760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f2077697468647261770000000000000000006044820152606401610883565b8361012e5f82825461170a919061482d565b9091555061171a905083856132bc565b604080515f8152602081018690527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a18391505b5092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146117a75760405163799e780f60e01b815260040160405180910390fd5b6117af61289e565b5f82608001511180156117c557505f8160800151115b15611848575f6117d48261342a565b6117dd8461342a565b6117e7919061482d565b9050655af3107a40006117f982613475565b106118465760405162461bcd60e51b815260206004820152601a60248201527f496e74657265737420726174652063616e2774206368616e67650000000000006044820152606401610883565b505b5f826060015111801561185e57505f8160600151115b156118e1575f61186d82613486565b61187684613486565b611880919061482d565b9050655af3107a400061189282613475565b106118df5760405162461bcd60e51b815260206004820152601a60248201527f496e74657265737420726174652063616e2774206368616e67650000000000006044820152606401610883565b505b8160c001518160c001516118f59190614885565b61012d5f8282546119069190614898565b90915550506060820151156119aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf836060015161195285613486565b6040516001600160e01b031960e085901b168152600481019290925260248201525f60448201526064015f604051808303815f87803b158015611993575f5ffd5b505af11580156119a5573d5f5f3e3d5ffd5b505050505b608082015115611a49577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf83608001516119f18561342a565b6040516001600160e01b031960e085901b168152600481019290925260248201525f60448201526064015f604051808303815f87803b158015611a32575f5ffd5b505af1158015611a44573d5f5f3e3d5ffd5b505050505b606081015115611ae2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a38260600151611a9084613486565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b158015611acb575f5ffd5b505af1158015611add573d5f5f3e3d5ffd5b505050505b608081015115610a38577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a38260800151611b298461342a565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b158015611b64575f5ffd5b505af1158015610e48573d5f5f3e3d5ffd5b611b7e61289e565b611b86610a57565b611b8e610f4c565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611bd95760405163799e780f60e01b815260040160405180910390fd5b611be161289e565b8060c0015161012d5f828254611bf79190614885565b909155505060c0810151611c0a90612fd4565b61091e81613171565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc291906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611cf69594939291906147cc565b5f6040518083038186803b158015611d0c575f5ffd5b505afa158015611d1e573d5f5f3e3d5ffd5b505050506001600160a01b0384161580611da057506040516301ffc9a760e01b8152631e670a9760e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611d7c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da091906148ab565b611e14576040805162461bcd60e51b81526020600482015260248101919091527f526573657276653a206173736574206d616e6167657220646f65736e2774206960448201527f6d706c656d656e74732074686520726571756972656420696e746572666163656064820152608401610883565b61012f546201000090046001600160a01b031660028115611f3f578415611ee55760408051600481526024810182526020810180516001600160e01b031663cec16f3f60e01b17905290515f9182916001600160a01b03861691611e77916148c6565b5f60405180830381855af49150503d805f8114611eaf576040519150601f19603f3d011682016040523d82523d5f602084013e611eb4565b606091505b509150915081611ec75760039250611ede565b611ede81806020019051810190610ac19190614816565b5050611f3f565b6040805160048152602481019091526020810180516001600160e01b031663cec16f3f60e01b1790525f90611f24906001600160a01b03851690612522565b9050611f3d81806020019051810190610ac19190614816565b505b61012f805462010000600160b01b031916620100006001600160a01b0389160217905561012f546201000090046001600160a01b031691506001600160a01b03821615611fc5576040805160048152602481019091526020810180516001600160e01b031663948cb71960e01b179052611fc3906001600160a01b03841690612522565b505b610e4881876134c1565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146120185760405163799e780f60e01b815260040160405180910390fd5b61202061289e565b8060c0015161012d5f8282546120369190614898565b90915550506060810151156120d4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a3826060015161208284613486565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b1580156120bd575f5ffd5b505af11580156120cf573d5f5f3e3d5ffd5b505050505b60808101511561091e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a3826080015161211b8461342a565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015b5f604051808303815f87803b158015612157575f5ffd5b505af1158015612169573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe91906146b4565b5f5f61012e54121561220a5761012e546107fe9061486b565b505f90565b5f7f963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b191906146b4565b6001600160a01b031663b3efcbd230835f60016040518563ffffffff1660e01b81526004016122e394939291906146cf565b602060405180830381865afa1580156122fe573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232291906148ab565b612405577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612382573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a691906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016123d894939291906146cf565b5f6040518083038186803b1580156123ee575f5ffd5b505afa158015612400573d5f5f3e3d5ffd5b505050505b61240d61289e565b612415610b91565b9150811580159061244e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b156124805761247d827f0000000000000000000000000000000000000000000000000000000000000000613514565b91505b81158015906124b757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b156124e9576124e6827f0000000000000000000000000000000000000000000000000000000000000000613514565b91505b5090565b5f6001600160e01b031982166301ffc9a760e01b14806106b057506001600160e01b03198216634d15eb0360e01b1492915050565b60606107e48383604051806060016040528060278152602001614a8a602791396137a2565b5f612550612170565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561258b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125af91906148dc565b6125ba90600a6149df565b6106b09063ffffffff84166147ff565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612655573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267991906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016126ad9594939291906147cc565b5f6040518083038186803b1580156126c3575f5ffd5b505afa1580156126d5573d5f5f3e3d5ffd5b5050505061143683613816565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156127155761143683613a89565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561276f575060408051601f3d908101601f1916820190925261276c91810190614816565b60015b6127d25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610883565b5f516020614a6a5f395f51905f5281146128405760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610883565b50611436838383613b24565b612854613b48565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff1615611b8e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610883565b5f81126128f45761091e81612fd4565b6129006114bc8261486b565b1561091e5760405162461bcd60e51b815260206004820152601e60248201527f4c6f737365732063616e277420657863656564206d61784465666963697400006044820152606401610883565b61012d545f9061295d9083613b91565b6106b09061486b565b5f61ffff8211156124e95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610883565b61012f5461271061ffff909116118015906129e1575060015b611b8e5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2064656669636974526174696f206d757374206265604482015264203c3d203160d81b6064820152608401610883565b828115612d6857612a4a610803565b6040516333481fc960e01b815230600482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612aae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ad29190614816565b612adc9190614898565b11612b78576040516330f7e76b60e21b8152600481018590526001600160a01b0384811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063c3df9dac906044016020604051808303815f875af1158015612b4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b719190614816565b9050612d68565b612b80610803565b6040516333481fc960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612be2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c069190614816565b1015612d68575f612c15610803565b6040516333481fc960e01b815230600482015286907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612c79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c9d9190614816565b612ca79190614898565b612cb19190614885565b90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c3df9dac612cec8388614885565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b03871660248201526044016020604051808303815f875af1158015612d36573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d5a9190614816565b612d649082614898565b9150505b7f000000000000000000000000000000000000000000000000000000000000000081111561150457612d98610f1a565b6040516333481fc960e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612dfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e209190614816565b612e2a9190614898565b1015612ec3576040516330f7e76b60e21b8152600481018290526001600160a01b0384811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063c3df9dac906044016020604051808303815f875af1158015612e9c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ec09190614816565b90505b7f00000000000000000000000000000000000000000000000000000000000000008111156115045760405162461bcd60e51b815260206004820152603060248201527f446f6e2774206b6e6f7720776865726520746f20736f7572636520746865207260448201526f657374206f6620746865206d6f6e657960801b6064820152608401610883565b612f546129c8565b81602d811115612f6657612f666149ed565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb13906020015b60405180910390a25050565b5f54610100900460ff16612fc45760405162461bcd60e51b815260040161088390614a01565b612fcc613bc7565b611b8e613bf5565b8061012e5f828254612fe6919061470d565b909155505050565b6040516001600160a01b03808516602483015283166044820152606481018290526115049085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c5e565b61306161289e565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128813390565b5f6106b06130a2612170565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310191906148dc565b61310c90600a6149df565b613116908461484c565b613d31565b5f5f8261012e5461312c919061482d565b90505f61313a610b9d610a3c565b905080821261314f575061012e55505f919050565b61012e8190558061315f8361486b565b613169919061470d565b949350505050565b60608101511561322b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf82606001516131b884613486565b6131c185613d95565b8561012001516131d1919061482d565b6040516001600160e01b031960e086901b1681526004810193909352602483019190915260448201526064015f604051808303815f87803b158015613214575f5ffd5b505af1158015613226573d5f5f3e3d5ffd5b505050505b60808101511561091e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf82608001516132728461342a565b61327b85613de5565b85610140015161328b919061482d565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401612140565b6001600160a01b0382166133205760405162461bcd60e51b815260206004820152602560248201527f526573657276653a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610883565b805f0361332b575050565b5f613334612170565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613378573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339c9190614816565b9050818110156133f8576133af82613e2b565b6133b99082614898565b9050808211156133f8577f00000000000000000000000000000000000000000000000000000000000000006133ee8284614885565b10156133f8578091505b6114368383613405612170565b6001600160a01b03169190613f05565b5f81831061342357816107e4565b5090919050565b5f6106b08260800151836101800151846101a001516134499190614a4c565b64ffffffffff166301e1338085610140015161346591906147ff565b61346f919061484c565b90613f35565b5f5f8212156124e957815f036106b0565b5f6106b08260600151836101800151846101a001516134a59190614a4c565b64ffffffffff166301e1338085610120015161346591906147ff565b6134c96129c8565b81602d8111156134db576134db6149ed565b6040516001600160a01b03831681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f90602001612f92565b6040516333481fc960e01b81523060048201525f9081906001600160a01b038416906333481fc990602401602060405180830381865afa15801561355a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061357e9190614816565b9050805f0361359057839150506106b0565b5f61359b8583613415565b90508061012e5f8282546135af919061482d565b909155508190506135be612170565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613602573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136269190614816565b10156136375761363581613e2b565b505b80613640612170565b604051636eb1769f60e11b81523060048201526001600160a01b038781166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561368c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b09190614816565b1015613732576136be612170565b60405163095ea7b360e01b81526001600160a01b03868116600483015260248201859052919091169063095ea7b3906044016020604051808303815f875af115801561370c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373091906148ab565b505b60405163918344d360e01b8152600481018290523060248201526001600160a01b0385169063918344d3906044015f604051808303815f87803b158015613777575f5ffd5b505af1158015613789573d5f5f3e3d5ffd5b5050505080856137999190614885565b95945050505050565b60605f5f856001600160a01b0316856040516137be91906148c6565b5f60405180830381855af49150503d805f81146137f6576040519150601f19603f3d011682016040523d82523d5f602084013e6137fb565b606091505b509150915061380c86838387613f6a565b9695505050505050565b61381f81613fe2565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613889573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138ad91906146b4565b6001600160a01b031614806138e957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b6139565760405162461bcd60e51b815260206004820152603860248201527f43616e27742075706772616465206368616e67696e6720746865204a756e696f604482015277722045544b20756e6c65737320746f206e6f6e2d7a65726f60401b6064820152608401610883565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e091906146b4565b6001600160a01b03161480613a1c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b610a385760405162461bcd60e51b815260206004820152603860248201527f43616e27742075706772616465206368616e67696e67207468652053656e696f604482015277722045544b20756e6c65737320746f206e6f6e2d7a65726f60401b6064820152608401610883565b6001600160a01b0381163b613af65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610883565b5f516020614a6a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b613b2d83614093565b5f82511180613b395750805b15611436576115048383612522565b60975460ff16611b8e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610883565b5f81156706f05b59d3b200001983900484111517613bad575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b5f54610100900460ff16613bed5760405162461bcd60e51b815260040161088390614a01565b611b8e6140d2565b5f54610100900460ff16613c1b5760405162461bcd60e51b815260040161088390614a01565b604080516080810182526127108082525f6020830181905292820183905260609091019190915261012f80546001600160f01b0319169091179055611b8e6129c8565b5f613cb2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141089092919063ffffffff16565b905080515f1480613cd2575080806020019051810190613cd291906148ab565b6114365760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610883565b5f63ffffffff8211156124e95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610883565b5f816101800151826101a00151613dac9190614a4c565b64ffffffffff1682610180015164ffffffffff1642613dcb9190614885565b836101200151613ddb91906147ff565b6106b0919061484c565b5f816101800151826101a00151613dfc9190614a4c565b64ffffffffff1682610180015164ffffffffff1642613e1b9190614885565b836101400151613ddb91906147ff565b5f5f613e4761012f546001600160a01b03620100009091041690565b90506001600160a01b03811615613efd575f613ee7631014a0c260e01b85604051602401613e7791815260200190565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935280518082019091526016815275115c9c9bdc881c99599a5b1b1a5b99c81dd85b1b195d60521b928101929092526001600160a01b038516916137a2565b9050808060200190518101906131699190614816565b505f92915050565b6040516001600160a01b03831660248201526044810182905261143690849063a9059cbb60e01b90606401613022565b5f8115670de0b6b3a764000060028404190484111715613f53575f5ffd5b50670de0b6b3a76400009190910260028204010490565b60608315613fd85782515f03613fd1576001600160a01b0385163b613fd15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610883565b5081613169565b6131698383614116565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015614048573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061406c91906146b4565b6001600160a01b03161461091e5760405163d2b3d33f60e01b815260040160405180910390fd5b61409c81613a89565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f54610100900460ff166140f85760405162461bcd60e51b815260040161088390614a01565b614100614140565b611b8e614166565b606061316984845f85614194565b8151156141265781518083602001fd5b8060405162461bcd60e51b815260040161088391906143ed565b5f54610100900460ff16611b8e5760405162461bcd60e51b815260040161088390614a01565b5f54610100900460ff1661418c5760405162461bcd60e51b815260040161088390614a01565b611b8e61426b565b6060824710156141f55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610883565b5f5f866001600160a01b0316858760405161421091906148c6565b5f6040518083038185875af1925050503d805f811461424a576040519150601f19603f3d011682016040523d82523d5f602084013e61424f565b606091505b509150915061426087838387613f6a565b979650505050505050565b5f54610100900460ff166142915760405162461bcd60e51b815260040161088390614a01565b6097805460ff19169055565b5f602082840312156142ad575f5ffd5b81356001600160e01b0319811681146107e4575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff811182821017156142fc576142fc6142c4565b60405290565b5f82601f830112614311575f5ffd5b813567ffffffffffffffff81111561432b5761432b6142c4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561435a5761435a6142c4565b604052818152838201602001851015614371575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561439d575f5ffd5b813567ffffffffffffffff8111156143b3575f5ffd5b61316984828501614302565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107e460208301846143bf565b6001600160a01b038116811461091e575f5ffd5b5f60208284031215614423575f5ffd5b81356107e4816143ff565b5f5f6040838503121561443f575f5ffd5b823561444a816143ff565b9150602083013567ffffffffffffffff811115614465575f5ffd5b61447185828601614302565b9150509250929050565b801515811461091e575f5ffd5b5f5f60408385031215614499575f5ffd5b8235915060208301356144ab8161447b565b809150509250929050565b5f602082840312156144c6575f5ffd5b5035919050565b5f5f604083850312156144de575f5ffd5b50508035926020909101359150565b80356144f8816143ff565b919050565b803564ffffffffff811681146144f8575f5ffd5b5f6101c08284031215614522575f5ffd5b61452a6142d8565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e0808401359082015261010080840135908201526101208084013590820152610140808401359082015290506145a461016083016144ed565b6101608201526145b761018083016144fd565b6101808201526145ca6101a083016144fd565b6101a082015292915050565b5f5f5f61020084860312156145e9575f5ffd5b83356145f4816143ff565b92506146038560208601614511565b929592945050506101e0919091013590565b5f5f60408385031215614626575f5ffd5b8235915060208301356144ab816143ff565b5f5f610380838503121561464a575f5ffd5b6146548484614511565b9150614664846101c08501614511565b90509250929050565b5f6101c0828403121561467e575f5ffd5b6107e48383614511565b5f5f60408385031215614699575f5ffd5b82356146a4816143ff565b915060208301356144ab8161447b565b5f602082840312156146c4575f5ffd5b81516107e4816143ff565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018281125f83128015821682158216171561472c5761472c6146f9565b505092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b80820281158282048414176106b0576106b06146f9565b5f60208284031215614826575f5ffd5b5051919050565b8181035f831280158383131683831282161715611757576117576146f9565b5f8261486657634e487b7160e01b5f52601260045260245ffd5b500490565b5f600160ff1b820161487f5761487f6146f9565b505f0390565b818103818111156106b0576106b06146f9565b808201808211156106b0576106b06146f9565b5f602082840312156148bb575f5ffd5b81516107e48161447b565b5f82518060208501845e5f920191825250919050565b5f602082840312156148ec575f5ffd5b815160ff811681146107e4575f5ffd5b6001815b60018411156149375780850481111561491b5761491b6146f9565b600184161561492957908102905b60019390931c928002614900565b935093915050565b5f8261494d575060016106b0565b8161495957505f6106b0565b816001811461496f576002811461497957614995565b60019150506106b0565b60ff84111561498a5761498a6146f9565b50506001821b6106b0565b5060208310610133831016604e8410600b84101617156149b8575081810a6106b0565b6149c45f1984846148fc565b805f19048211156149d7576149d76146f9565b029392505050565b5f6107e460ff84168361493f565b634e487b7160e01b5f52602160045260245ffd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b64ffffffffff82811682821603908111156106b0576106b06146f956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220447006f903c02a51e5e220c8670d71278f5a53fd67bfe64f3c4391ca0dab1ff664736f6c634300081c0033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x508A CODESIZE SUB DUP1 PUSH2 0x508A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x33 SWAP2 PUSH2 0x245 JUMP JUMPDEST DUP3 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x172 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP PUSH1 0x2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x140 SWAP2 SWAP1 PUSH2 0x2B1 JUMP JUMPDEST PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x2E5 JUMP JUMPDEST PUSH2 0x155 SWAP1 PUSH1 0xA PUSH2 0x3F7 JUMP JUMPDEST PUSH1 0xC0 MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0xE0 MSTORE AND PUSH2 0x100 MSTORE POP PUSH2 0x405 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x22C JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x242 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x257 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x262 DUP2 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x273 DUP2 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x284 DUP2 PUSH2 0x22E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2AA DUP2 PUSH2 0x22E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND DUP1 PUSH2 0x303 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 PUSH1 0xFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x34D JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x331 JUMPI PUSH2 0x331 PUSH2 0x2D1 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x33F JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x316 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x363 JUMPI POP PUSH1 0x1 PUSH2 0x3F1 JUMP JUMPDEST DUP2 PUSH2 0x36F JUMPI POP PUSH0 PUSH2 0x3F1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x385 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x38F JUMPI PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x3A0 JUMPI PUSH2 0x3A0 PUSH2 0x2D1 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x3F1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x3CE JUMPI POP DUP2 DUP2 EXP PUSH2 0x3F1 JUMP JUMPDEST PUSH2 0x3DA PUSH0 NOT DUP5 DUP5 PUSH2 0x312 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3ED PUSH2 0x2D1 JUMP JUMPDEST MUL SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2AA PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x4B06 PUSH2 0x584 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x445 ADD MSTORE DUP2 DUP2 PUSH2 0x19B6 ADD MSTORE DUP2 DUP2 PUSH2 0x1AEE ADD MSTORE DUP2 DUP2 PUSH2 0x20E0 ADD MSTORE DUP2 DUP2 PUSH2 0x2423 ADD MSTORE DUP2 DUP2 PUSH2 0x2459 ADD MSTORE DUP2 DUP2 PUSH2 0x2DAF ADD MSTORE DUP2 DUP2 PUSH2 0x2E56 ADD MSTORE DUP2 DUP2 PUSH2 0x3237 ADD MSTORE DUP2 DUP2 PUSH2 0x3958 ADD MSTORE PUSH2 0x39F2 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x3FC ADD MSTORE DUP2 DUP2 PUSH2 0xE09 ADD MSTORE DUP2 DUP2 PUSH2 0x1917 ADD MSTORE DUP2 DUP2 PUSH2 0x1A55 ADD MSTORE DUP2 DUP2 PUSH2 0x2047 ADD MSTORE DUP2 DUP2 PUSH2 0x248C ADD MSTORE DUP2 DUP2 PUSH2 0x24C2 ADD MSTORE DUP2 DUP2 PUSH2 0x2A61 ADD MSTORE DUP2 DUP2 PUSH2 0x2B07 ADD MSTORE DUP2 DUP2 PUSH2 0x2B95 ADD MSTORE DUP2 DUP2 PUSH2 0x2C2C ADD MSTORE DUP2 DUP2 PUSH2 0x2CBD ADD MSTORE DUP2 DUP2 PUSH2 0x317D ADD MSTORE DUP2 DUP2 PUSH2 0x3825 ADD MSTORE PUSH2 0x38BF ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x2D6A ADD MSTORE DUP2 DUP2 PUSH2 0x2EC5 ADD MSTORE PUSH2 0x33C5 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x334 ADD MSTORE DUP2 DUP2 PUSH2 0x6DB ADD MSTORE DUP2 DUP2 PUSH2 0x952 ADD MSTORE DUP2 DUP2 PUSH2 0xBD3 ADD MSTORE DUP2 DUP2 PUSH2 0x1115 ADD MSTORE DUP2 DUP2 PUSH2 0x121C ADD MSTORE DUP2 DUP2 PUSH2 0x143E ADD MSTORE DUP2 DUP2 PUSH2 0x152E ADD MSTORE DUP2 DUP2 PUSH2 0x1761 ADD MSTORE DUP2 DUP2 PUSH2 0x1B93 ADD MSTORE DUP2 DUP2 PUSH2 0x1C44 ADD MSTORE DUP2 DUP2 PUSH2 0x1FD2 ADD MSTORE DUP2 DUP2 PUSH2 0x2173 ADD MSTORE DUP2 DUP2 PUSH2 0x2233 ADD MSTORE DUP2 DUP2 PUSH2 0x2328 ADD MSTORE DUP2 DUP2 PUSH2 0x25FB ADD MSTORE PUSH2 0x3FE4 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x845 ADD MSTORE DUP2 DUP2 PUSH2 0x88E ADD MSTORE DUP2 DUP2 PUSH2 0xAD0 ADD MSTORE DUP2 DUP2 PUSH2 0xB10 ADD MSTORE PUSH2 0xE5C ADD MSTORE PUSH2 0x4B06 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BB62319 GT PUSH2 0x11E JUMPI DUP1 PUSH4 0xA0CE58B8 GT PUSH2 0xA8 JUMPI DUP1 PUSH4 0xD80359F1 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD80359F1 EQ PUSH2 0x611 JUMPI DUP1 PUSH4 0xE3638EA3 EQ PUSH2 0x630 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xE823584A EQ PUSH2 0x663 JUMPI DUP1 PUSH4 0xF39A4BC5 EQ PUSH2 0x677 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xA0CE58B8 EQ PUSH2 0x56D JUMPI DUP1 PUSH4 0xAAC0CFAF EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0xAB83B4BE EQ PUSH2 0x5BF JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xC7A9C70D EQ PUSH2 0x5F2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0x8CA23BC9 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x94217AD1 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0x97A146C0 EQ PUSH2 0x52F JUMPI DUP1 PUSH4 0x9D8C5EE7 EQ PUSH2 0x54E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7BB62319 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x491 JUMPI DUP1 PUSH4 0x81CED71F EQ PUSH2 0x4A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x1AA JUMPI DUP1 PUSH4 0x52D1902D GT PUSH2 0x16F JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0x536C9A43 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x536EBBFC EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x7B83037B EQ PUSH2 0x437 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x4FE0BD1E EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0x50093F04 EQ PUSH2 0x3A7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x26CCBD22 GT PUSH2 0x1F0 JUMPI DUP1 PUSH4 0x26CCBD22 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x2D8F892A EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x4863C8B0 EQ PUSH2 0x312 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x13888565 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x1A548A27 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x1E9C4658 EQ PUSH2 0x289 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x240 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x429D JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12E SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12D SLOAD PUSH2 0x266 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x438D JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24C SWAP2 SWAP1 PUSH2 0x43ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x7EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x803 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4413 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x921 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xA3C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x2FC PUSH2 0x38E CALLDATASIZE PUSH1 0x4 PUSH2 0x442E JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xB91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4488 JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xE50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xF01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x442 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xF1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xF9B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x10A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1105 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH32 0xA23B11D346B90FC279E0A917152CAF41F3C1247B12211B7CBC0E0E3F8B794057 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x549 CALLDATASIZE PUSH1 0x4 PUSH2 0x44CD JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x568 CALLDATASIZE PUSH1 0x4 PUSH2 0x45D6 JUMP JUMPDEST PUSH2 0x143B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x578 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x587 CALLDATASIZE PUSH1 0x4 PUSH2 0x4615 JUMP JUMPDEST PUSH2 0x150A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH32 0x963CE71E8EFEF763EFAED378C32433E843C9E3083032DEC79FA806375F2FC7AA DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4638 JUMP JUMPDEST PUSH2 0x175E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1B76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x60C CALLDATASIZE PUSH1 0x4 PUSH2 0x466D JUMP JUMPDEST PUSH2 0x1B90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x62B CALLDATASIZE PUSH1 0x4 PUSH2 0x4688 JUMP JUMPDEST PUSH2 0x1C13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x64A CALLDATASIZE PUSH1 0x4 PUSH2 0x466D JUMP JUMPDEST PUSH2 0x1FCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x354 PUSH2 0x2170 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x21F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x220F JUMP JUMPDEST PUSH0 PUSH2 0x695 DUP3 PUSH2 0x24ED JUMP JUMPDEST DUP1 PUSH2 0x6B0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xE725329 PUSH1 0xE1 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x735 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x759 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x78B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x7E4 DUP4 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12E SLOAD PUSH2 0x12D SLOAD PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO PUSH2 0x835 JUMPI PUSH2 0x12F SLOAD PUSH2 0x7FE SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2547 JUMP JUMPDEST POP PUSH0 NOT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x88C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4734 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x8D4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4780 JUMP JUMPDEST PUSH2 0x903 DUP2 PUSH2 0x25CA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x91E SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D0 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA04 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA38 PUSH2 0x284C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH2 0x7FE SWAP1 PUSH6 0x5AF3107A4000 SWAP1 PUSH2 0xFFFF AND PUSH2 0x47FF JUMP JUMPDEST PUSH2 0xA5F PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x13AE5E29 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0xAA8 SWAP1 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x91E DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xB0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4734 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB56 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4780 JUMP JUMPDEST PUSH2 0xB85 DUP3 PUSH2 0x25CA JUMP JUMPDEST PUSH2 0xA38 DUP3 DUP3 PUSH1 0x1 PUSH2 0x26E2 JUMP JUMPDEST PUSH0 PUSH2 0xBA2 PUSH2 0xB9D PUSH2 0xA3C JUMP JUMPDEST PUSH2 0x294D JUMP JUMPDEST PUSH2 0x12E SLOAD PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC51 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC83 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 PUSH2 0xCCA PUSH6 0x5AF3107A4000 DUP6 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST PUSH2 0x2966 JUMP JUMPDEST SWAP1 POP DUP4 PUSH2 0xCE1 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x47FF JUMP JUMPDEST EQ PUSH2 0xD40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206F6E6C7920757020746F203420646563696D616C PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1CC8185B1B1BDDD959 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH2 0xD4A DUP6 PUSH2 0x294D JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xD5B JUMPI POP DUP1 PUSH2 0x12E SLOAD SLT ISZERO JUMPDEST PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20737572706C7573206D757374206265203E3D206D PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x185E1119599A58DA5D PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xDD3 PUSH2 0x29C8 JUMP JUMPDEST PUSH2 0x12E SLOAD PUSH1 0x20 SWAP1 DUP3 SGT ISZERO PUSH2 0xE3E JUMPI PUSH0 DUP3 PUSH2 0x12E SLOAD PUSH2 0xDF0 SWAP1 PUSH2 0x486B JUMP JUMPDEST PUSH2 0xDFA SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST PUSH2 0x12E DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xE38 DUP2 ADDRESS PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO PUSH2 0x2A3B JUMP JUMPDEST PUSH1 0x21 SWAP2 POP POP JUMPDEST PUSH2 0xE48 DUP2 DUP8 PUSH2 0x2F4C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xEEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12E SLOAD SLT ISZERO PUSH2 0xF12 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST POP PUSH2 0x12E SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO PUSH2 0x835 JUMPI PUSH2 0x12F SLOAD PUSH2 0x7FE SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2547 JUMP JUMPDEST PUSH2 0xF54 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x1F5F0A87 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x91E SWAP1 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xFB9 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xFD2 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD2 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1035 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1056 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x105E PUSH2 0x2F9E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x91E JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x10AF DUP2 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x10CE CALLER ADDRESS DUP4 PUSH2 0x10BD PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 SWAP1 PUSH2 0x2FEE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD60D524F1CAE273480BB0A4DDFB992B6AC0B61C8E12FFBE2E4E31463F9E90199 SWAP2 ADD PUSH2 0x109B JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x116F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1193 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x91E PUSH2 0x3059 JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x129A SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12F4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 NOT DUP4 EQ PUSH2 0x1397 JUMPI PUSH2 0x1309 DUP4 PUSH2 0x3096 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xB0 SHL NOT AND PUSH1 0x1 PUSH1 0xB0 SHL PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE DUP6 SWAP3 PUSH2 0x133F SWAP3 SWAP2 SWAP1 SWAP2 DIV AND PUSH2 0x2547 JUMP JUMPDEST EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206E6F20646563696D616C7320616C6C6F77656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x1397 PUSH1 0x22 DUP5 PUSH2 0x2F4C JUMP JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x1436 JUMPI PUSH2 0x13A8 DUP3 PUSH2 0x3096 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xD0 SHL NOT AND PUSH1 0x1 PUSH1 0xD0 SHL PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE DUP5 SWAP3 PUSH2 0x13DE SWAP3 SWAP2 SWAP1 SWAP2 DIV AND PUSH2 0x2547 JUMP JUMPDEST EQ PUSH2 0x142B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206E6F20646563696D616C7320616C6C6F77656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x1436 PUSH1 0x23 DUP4 PUSH2 0x2F4C JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1484 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x148C PUSH2 0x289E JUMP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x14A2 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH0 SWAP1 PUSH2 0x14C1 SWAP1 PUSH2 0x14BC SWAP1 DUP5 PUSH2 0x482D JUMP JUMPDEST PUSH2 0x311B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14E8 JUMPI PUSH2 0x14D2 DUP4 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x14E3 DUP2 DUP6 PUSH0 DUP7 PUSH1 0x60 ADD MLOAD GT PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x14F1 JUMP JUMPDEST PUSH2 0x14F1 DUP4 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1504 DUP5 PUSH2 0x14FF DUP4 DUP6 PUSH2 0x4885 JUMP JUMPDEST PUSH2 0x32BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xA23B11D346B90FC279E0A917152CAF41F3C1247B12211B7CBC0E0E3F8B794057 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1588 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15AC SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15DE SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15F4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1606 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 POP PUSH2 0x1687 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D734163636F756E743A2064657374696E6174696F6E2063616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6F7420626520746865207A65726F2061646472657373000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH2 0x12E SLOAD SGT PUSH2 0x1699 JUMPI PUSH0 SWAP4 POP PUSH2 0x16A9 JUMP JUMPDEST PUSH2 0x16A6 DUP5 PUSH2 0x12E SLOAD PUSH2 0x3415 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH0 DUP5 GT PUSH2 0x16F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F207072656D69756D7320746F207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST DUP4 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x170A SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x171A SWAP1 POP DUP4 DUP6 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xD60D524F1CAE273480BB0A4DDFB992B6AC0B61C8E12FFBE2E4E31463F9E90199 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP4 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17A7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17AF PUSH2 0x289E JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0x17C5 JUMPI POP PUSH0 DUP2 PUSH1 0x80 ADD MLOAD GT JUMPDEST ISZERO PUSH2 0x1848 JUMPI PUSH0 PUSH2 0x17D4 DUP3 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x17DD DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x17E7 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH6 0x5AF3107A4000 PUSH2 0x17F9 DUP3 PUSH2 0x3475 JUMP JUMPDEST LT PUSH2 0x1846 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E74657265737420726174652063616E2774206368616E6765000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP JUMPDEST PUSH0 DUP3 PUSH1 0x60 ADD MLOAD GT DUP1 ISZERO PUSH2 0x185E JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD GT JUMPDEST ISZERO PUSH2 0x18E1 JUMPI PUSH0 PUSH2 0x186D DUP3 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x1876 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x1880 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH6 0x5AF3107A4000 PUSH2 0x1892 DUP3 PUSH2 0x3475 JUMP JUMPDEST LT PUSH2 0x18DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E74657265737420726174652063616E2774206368616E6765000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x18F5 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1906 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x60 DUP3 ADD MLOAD ISZERO PUSH2 0x19AA JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP4 PUSH1 0x60 ADD MLOAD PUSH2 0x1952 DUP6 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19A5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP3 ADD MLOAD ISZERO PUSH2 0x1A49 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP4 PUSH1 0x80 ADD MLOAD PUSH2 0x19F1 DUP6 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A32 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A44 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x1AE2 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x1A90 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0xA38 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x1B29 DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B64 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE48 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x1B7E PUSH2 0x289E JUMP JUMPDEST PUSH2 0x1B86 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0xF4C JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1BD9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BE1 PUSH2 0x289E JUMP JUMPDEST DUP1 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1BF7 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xC0 DUP2 ADD MLOAD PUSH2 0x1C0A SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x91E DUP2 PUSH2 0x3171 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CC2 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D1E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x1DA0 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x1E670A97 PUSH1 0xE2 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DA0 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x1E14 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x526573657276653A206173736574206D616E6167657220646F65736E27742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D706C656D656E74732074686520726571756972656420696E74657266616365 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x2 DUP2 ISZERO PUSH2 0x1F3F JUMPI DUP5 ISZERO PUSH2 0x1EE5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH2 0x1E77 SWAP2 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1EAF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1EC7 JUMPI PUSH1 0x3 SWAP3 POP PUSH2 0x1EDE JUMP JUMPDEST PUSH2 0x1EDE DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP POP PUSH2 0x1F3F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x1F24 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x1F3D DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND MUL OR SWAP1 SSTORE PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x948CB719 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0x1FC3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE48 DUP2 DUP8 PUSH2 0x34C1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2018 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2020 PUSH2 0x289E JUMP JUMPDEST DUP1 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x20D4 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x2082 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20BD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20CF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0x91E JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x211B DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2157 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2169 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12E SLOAD SLT ISZERO PUSH2 0x220A JUMPI PUSH2 0x12E SLOAD PUSH2 0x7FE SWAP1 PUSH2 0x486B JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x963CE71E8EFEF763EFAED378C32433E843C9E3083032DEC79FA806375F2FC7AA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x228D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP4 PUSH0 PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2322 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x2405 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2382 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A6 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23D8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2400 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x240D PUSH2 0x289E JUMP JUMPDEST PUSH2 0x2415 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x244E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2480 JUMPI PUSH2 0x247D DUP3 PUSH32 0x0 PUSH2 0x3514 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x24B7 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x24E9 JUMPI PUSH2 0x24E6 DUP3 PUSH32 0x0 PUSH2 0x3514 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7E4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A8A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x37A2 JUMP JUMPDEST PUSH0 PUSH2 0x2550 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25AF SWAP2 SWAP1 PUSH2 0x48DC JUMP JUMPDEST PUSH2 0x25BA SWAP1 PUSH1 0xA PUSH2 0x49DF JUMP JUMPDEST PUSH2 0x6B0 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x47FF JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2679 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1436 DUP4 PUSH2 0x3816 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2715 JUMPI PUSH2 0x1436 DUP4 PUSH2 0x3A89 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x276F JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x276C SWAP2 DUP2 ADD SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x27D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x2840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST POP PUSH2 0x1436 DUP4 DUP4 DUP4 PUSH2 0x3B24 JUMP JUMPDEST PUSH2 0x2854 PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 SLT PUSH2 0x28F4 JUMPI PUSH2 0x91E DUP2 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x2900 PUSH2 0x14BC DUP3 PUSH2 0x486B JUMP JUMPDEST ISZERO PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C6F737365732063616E277420657863656564206D6178446566696369740000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12D SLOAD PUSH0 SWAP1 PUSH2 0x295D SWAP1 DUP4 PUSH2 0x3B91 JUMP JUMPDEST PUSH2 0x6B0 SWAP1 PUSH2 0x486B JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x24E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH2 0x2710 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x29E1 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A2064656669636974526174696F206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST DUP3 DUP2 ISZERO PUSH2 0x2D68 JUMPI PUSH2 0x2A4A PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP6 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AAE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AD2 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2ADC SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST GT PUSH2 0x2B78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x30F7E76B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xC3DF9DAC SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B4D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B71 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D68 JUMP JUMPDEST PUSH2 0x2B80 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BE2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C06 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x2D68 JUMPI PUSH0 PUSH2 0x2C15 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP7 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C79 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C9D SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2CA7 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST PUSH2 0x2CB1 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC3DF9DAC PUSH2 0x2CEC DUP4 DUP9 PUSH2 0x4885 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D36 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D5A SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2D64 SWAP1 DUP3 PUSH2 0x4898 JUMP JUMPDEST SWAP2 POP POP JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x2D98 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DFC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E20 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2E2A SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST LT ISZERO PUSH2 0x2EC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x30F7E76B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xC3DF9DAC SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E9C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2EC0 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F6E2774206B6E6F7720776865726520746F20736F75726365207468652072 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x657374206F6620746865206D6F6E6579 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x2F54 PUSH2 0x29C8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x2F66 JUMPI PUSH2 0x2F66 PUSH2 0x49ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2FC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x2FCC PUSH2 0x3BC7 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x3BF5 JUMP JUMPDEST DUP1 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2FE6 SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1504 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3C5E JUMP JUMPDEST PUSH2 0x3061 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2881 CALLER SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6B0 PUSH2 0x30A2 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30DD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3101 SWAP2 SWAP1 PUSH2 0x48DC JUMP JUMPDEST PUSH2 0x310C SWAP1 PUSH1 0xA PUSH2 0x49DF JUMP JUMPDEST PUSH2 0x3116 SWAP1 DUP5 PUSH2 0x484C JUMP JUMPDEST PUSH2 0x3D31 JUMP JUMPDEST PUSH0 PUSH0 DUP3 PUSH2 0x12E SLOAD PUSH2 0x312C SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x313A PUSH2 0xB9D PUSH2 0xA3C JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SLT PUSH2 0x314F JUMPI POP PUSH2 0x12E SSTORE POP PUSH0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E DUP2 SWAP1 SSTORE DUP1 PUSH2 0x315F DUP4 PUSH2 0x486B JUMP JUMPDEST PUSH2 0x3169 SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x322B JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x31B8 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x31C1 DUP6 PUSH2 0x3D95 JUMP JUMPDEST DUP6 PUSH2 0x120 ADD MLOAD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3214 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3226 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0x91E JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x3272 DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x327B DUP6 PUSH2 0x3DE5 JUMP JUMPDEST DUP6 PUSH2 0x140 ADD MLOAD PUSH2 0x328B SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3320 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526573657276653A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x332B JUMPI POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3334 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3378 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x339C SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x33F8 JUMPI PUSH2 0x33AF DUP3 PUSH2 0x3E2B JUMP JUMPDEST PUSH2 0x33B9 SWAP1 DUP3 PUSH2 0x4898 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x33F8 JUMPI PUSH32 0x0 PUSH2 0x33EE DUP3 DUP5 PUSH2 0x4885 JUMP JUMPDEST LT ISZERO PUSH2 0x33F8 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH2 0x1436 DUP4 DUP4 PUSH2 0x3405 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x3F05 JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x3423 JUMPI DUP2 PUSH2 0x7E4 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH2 0x180 ADD MLOAD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3449 SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH4 0x1E13380 DUP6 PUSH2 0x140 ADD MLOAD PUSH2 0x3465 SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x346F SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST SWAP1 PUSH2 0x3F35 JUMP JUMPDEST PUSH0 PUSH0 DUP3 SLT ISZERO PUSH2 0x24E9 JUMPI DUP2 PUSH0 SUB PUSH2 0x6B0 JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 PUSH1 0x60 ADD MLOAD DUP4 PUSH2 0x180 ADD MLOAD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH2 0x34A5 SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH4 0x1E13380 DUP6 PUSH2 0x120 ADD MLOAD PUSH2 0x3465 SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x34C9 PUSH2 0x29C8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x34DB JUMPI PUSH2 0x34DB PUSH2 0x49ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH2 0x2F92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x357E SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x3590 JUMPI DUP4 SWAP2 POP POP PUSH2 0x6B0 JUMP JUMPDEST PUSH0 PUSH2 0x359B DUP6 DUP4 PUSH2 0x3415 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x35AF SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP DUP2 SWAP1 POP PUSH2 0x35BE PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3602 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3626 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x3637 JUMPI PUSH2 0x3635 DUP2 PUSH2 0x3E2B JUMP JUMPDEST POP JUMPDEST DUP1 PUSH2 0x3640 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x368C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B0 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x3732 JUMPI PUSH2 0x36BE PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3730 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x918344D3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x918344D3 SWAP1 PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3777 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3789 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 DUP6 PUSH2 0x3799 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x37BE SWAP2 SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x37F6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x37FB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x380C DUP7 DUP4 DUP4 DUP8 PUSH2 0x3F6A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x381F DUP2 PUSH2 0x3FE2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3889 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38AD SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x38E9 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST PUSH2 0x3956 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E27742075706772616465206368616E67696E6720746865204A756E696F PUSH1 0x44 DUP3 ADD MSTORE PUSH24 0x722045544B20756E6C65737320746F206E6F6E2D7A65726F PUSH1 0x40 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39BC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39E0 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x3A1C JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST PUSH2 0xA38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E27742075706772616465206368616E67696E67207468652053656E696F PUSH1 0x44 DUP3 ADD MSTORE PUSH24 0x722045544B20756E6C65737320746F206E6F6E2D7A65726F PUSH1 0x40 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3AF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B2D DUP4 PUSH2 0x4093 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3B39 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1436 JUMPI PUSH2 0x1504 DUP4 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3BAD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x40D2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3C1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP1 DUP3 MSTORE PUSH0 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x12F DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1B8E PUSH2 0x29C8 JUMP JUMPDEST PUSH0 PUSH2 0x3CB2 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4108 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x3CD2 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3CD2 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x1436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x24E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x180 ADD MLOAD DUP3 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3DAC SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP3 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x3DCB SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST DUP4 PUSH2 0x120 ADD MLOAD PUSH2 0x3DDB SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x6B0 SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x180 ADD MLOAD DUP3 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3DFC SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP3 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x3E1B SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST DUP4 PUSH2 0x140 ADD MLOAD PUSH2 0x3DDB SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x3E47 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3EFD JUMPI PUSH0 PUSH2 0x3EE7 PUSH4 0x1014A0C2 PUSH1 0xE0 SHL DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3E77 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x115C9C9BDC881C99599A5B1B1A5B99C81DD85B1B195D PUSH1 0x52 SHL SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH2 0x37A2 JUMP JUMPDEST SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3169 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1436 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x3022 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x3F53 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3FD8 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3FD1 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP DUP2 PUSH2 0x3169 JUMP JUMPDEST PUSH2 0x3169 DUP4 DUP4 PUSH2 0x4116 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4048 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x406C SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x409C DUP2 PUSH2 0x3A89 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x4100 PUSH2 0x4140 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x4166 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3169 DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4194 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x4126 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x43ED JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x418C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x426B JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x41F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4210 SWAP2 SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x424A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x424F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4260 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3F6A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4291 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x42FC JUMPI PUSH2 0x42FC PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4311 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432B JUMPI PUSH2 0x432B PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x435A JUMPI PUSH2 0x435A PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4371 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3169 DUP5 DUP3 DUP6 ADD PUSH2 0x4302 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x7E4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x43BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x91E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4423 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7E4 DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x443F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x444A DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4465 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4471 DUP6 DUP3 DUP7 ADD PUSH2 0x4302 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x91E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4499 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x447B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44C6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x44DE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x44F8 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x44F8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4522 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x452A PUSH2 0x42D8 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x45A4 PUSH2 0x160 DUP4 ADD PUSH2 0x44ED JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x45B7 PUSH2 0x180 DUP4 ADD PUSH2 0x44FD JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x45CA PUSH2 0x1A0 DUP4 ADD PUSH2 0x44FD JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x200 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x45E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x45F4 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP3 POP PUSH2 0x4603 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4511 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH2 0x1E0 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4626 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x380 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x464A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4654 DUP5 DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP2 POP PUSH2 0x4664 DUP5 PUSH2 0x1C0 DUP6 ADD PUSH2 0x4511 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x467E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x7E4 DUP4 DUP4 PUSH2 0x4511 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4699 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46A4 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x447B JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7E4 DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 SLT PUSH0 DUP4 SLT DUP1 ISZERO DUP3 AND DUP3 ISZERO DUP3 AND OR ISZERO PUSH2 0x472C JUMPI PUSH2 0x472C PUSH2 0x46F9 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4826 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x1757 JUMPI PUSH2 0x1757 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4866 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x487F JUMPI PUSH2 0x487F PUSH2 0x46F9 JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7E4 DUP2 PUSH2 0x447B JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4937 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x491B JUMPI PUSH2 0x491B PUSH2 0x46F9 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x4929 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4900 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x494D JUMPI POP PUSH1 0x1 PUSH2 0x6B0 JUMP JUMPDEST DUP2 PUSH2 0x4959 JUMPI POP PUSH0 PUSH2 0x6B0 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x496F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x4979 JUMPI PUSH2 0x4995 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x498A JUMPI PUSH2 0x498A PUSH2 0x46F9 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x6B0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x49B8 JUMPI POP DUP2 DUP2 EXP PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x49C4 PUSH0 NOT DUP5 DUP5 PUSH2 0x48FC JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x49D7 JUMPI PUSH2 0x49D7 PUSH2 0x46F9 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7E4 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x493F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x656455435DD261A4B9B3364963 0xF7 PUSH20 0x8A7A662AD9C84396D64BE3365284BB7F0A5041A2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH17 0x6F903C02A51E5E220C8670D71278F5A53 REVERT PUSH8 0xBFE64F3C4391CA0D 0xAB 0x1F 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1554:23326:58:-:0;;;1198:4:7;1155:48;;5275:161:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5360:11;;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;1794:1:59::1;1758:11;-1:-1:-1::0;;;;;1758:20:59::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1758:31:59::1;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;:::i;:::-;1751:45;::::0;:2:::1;:45;:::i;:::-;1731:65;::::0;-1:-1:-1;;;;;;5379:23:58;;::::1;;::::0;5408::::1;;::::0;-1:-1:-1;1554:23326:58;;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;3384:2:88;5998:66:6;;;3366:21:88;3423:2;3403:18;;;3396:30;3462:34;3442:18;;;3435:62;-1:-1:-1;;;3513:18:88;;;3506:37;3560:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;3732:36:88;;;6174:28:6;;3720:2:88;3705:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:613::-;306:6;314;322;375:2;363:9;354:7;350:23;346:32;343:52;;;391:1;388;381:12;343:52;423:9;417:16;442:44;480:5;442:44;:::i;:::-;555:2;540:18;;534:25;505:5;;-1:-1:-1;568:46:88;534:25;568:46;:::i;:::-;685:2;670:18;;664:25;633:7;;-1:-1:-1;698:46:88;664:25;698:46;:::i;:::-;763:7;753:17;;;163:613;;;;;:::o;781:287::-;874:6;927:2;915:9;906:7;902:23;898:32;895:52;;;943:1;940;933:12;895:52;975:9;969:16;994:44;1032:5;994:44;:::i;:::-;1057:5;781:287;-1:-1:-1;;;781:287:88:o;1073:273::-;1141:6;1194:2;1182:9;1173:7;1169:23;1165:32;1162:52;;;1210:1;1207;1200:12;1162:52;1242:9;1236:16;1292:4;1285:5;1281:16;1274:5;1271:27;1261:55;;1312:1;1309;1302:12;1351:127;1412:10;1407:3;1403:20;1400:1;1393:31;1443:4;1440:1;1433:15;1467:4;1464:1;1457:15;1483:262;1521:1;1555:4;1552:1;1548:12;1579:3;1569:134;;1625:10;1620:3;1616:20;1613:1;1606:31;1660:4;1657:1;1650:15;1688:4;1685:1;1678:15;1569:134;1735:3;1728:4;1725:1;1721:12;1717:22;1712:27;;;1483:262;;;;:::o;1750:375::-;1838:1;1856:5;1870:249;1891:1;1881:8;1878:15;1870:249;;;1941:4;1936:3;1932:14;1926:4;1923:24;1920:50;;;1950:18;;:::i;:::-;2000:1;1990:8;1986:16;1983:49;;;2014:16;;;;1983:49;2097:1;2093:16;;;;;2053:15;;1870:249;;;1750:375;;;;;;:::o;2130:902::-;2179:5;2209:8;2199:80;;-1:-1:-1;2250:1:88;2264:5;;2199:80;2298:4;2288:76;;-1:-1:-1;2335:1:88;2349:5;;2288:76;2380:4;2398:1;2393:59;;;;2466:1;2461:174;;;;2373:262;;2393:59;2423:1;2414:10;;2437:5;;;2461:174;2498:3;2488:8;2485:17;2482:43;;;2505:18;;:::i;:::-;-1:-1:-1;;2561:1:88;2547:16;;2620:5;;2373:262;;2719:2;2709:8;2706:16;2700:3;2694:4;2691:13;2687:36;2681:2;2671:8;2668:16;2663:2;2657:4;2654:12;2650:35;2647:77;2644:203;;;-1:-1:-1;2756:19:88;;;2832:5;;2644:203;2879:42;-1:-1:-1;;2904:8:88;2898:4;2879:42;:::i;:::-;2957:6;2953:1;2949:6;2945:19;2936:7;2933:32;2930:58;;;2968:18;;:::i;:::-;3006:20;;-1:-1:-1;2130:902:88;;;;;:::o;3037:140::-;3095:5;3124:47;3165:4;3155:8;3151:19;3145:4;3124:47;:::i;3590:184::-;1554:23326:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@REPAY_LOANS_ROLE_18159":{"entryPoint":null,"id":18159,"parameterSlots":0,"returnSlots":0},"@WITHDRAW_WON_PREMIUMS_ROLE_18154":{"entryPoint":null,"id":18154,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_1113":{"entryPoint":16742,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":17003,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":16594,"id":17875,"parameterSlots":0,"returnSlots":0},"@__PremiumsAccount_init_18288":{"entryPoint":12190,"id":18288,"parameterSlots":0,"returnSlots":0},"@__PremiumsAccount_init_unchained_18311":{"entryPoint":15349,"id":18311,"parameterSlots":0,"returnSlots":0},"@__Reserve_init_19744":{"entryPoint":15303,"id":19744,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":16704,"id":1008,"parameterSlots":0,"returnSlots":0},"@_assetEarnings_18447":{"entryPoint":10468,"id":18447,"parameterSlots":1,"returnSlots":0},"@_authorizeUpgrade_17890":{"entryPoint":9674,"id":17890,"parameterSlots":1,"returnSlots":0},"@_borrowFromEtk_18995":{"entryPoint":10811,"id":18995,"parameterSlots":3,"returnSlots":0},"@_callOptionalReturn_6429":{"entryPoint":15454,"id":6429,"parameterSlots":2,"returnSlots":0},"@_componentChanged_18094":{"entryPoint":13505,"id":18094,"parameterSlots":2,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_maxDeficit_18590":{"entryPoint":10573,"id":18590,"parameterSlots":1,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":12108,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":12377,"id":1187,"parameterSlots":0,"returnSlots":0},"@_payFromPremiums_19040":{"entryPoint":12571,"id":19040,"parameterSlots":1,"returnSlots":1},"@_refillWallet_19793":{"entryPoint":15915,"id":19793,"parameterSlots":1,"returnSlots":1},"@_repayLoan_19649":{"entryPoint":13588,"id":19649,"parameterSlots":2,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":10398,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":15176,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_revert_6941":{"entryPoint":16662,"id":6941,"parameterSlots":2,"returnSlots":0},"@_setAssetManager_18416":{"entryPoint":null,"id":18416,"parameterSlots":1,"returnSlots":0},"@_setImplementation_510":{"entryPoint":14985,"id":510,"parameterSlots":1,"returnSlots":0},"@_storePurePremiumWon_19054":{"entryPoint":12244,"id":19054,"parameterSlots":1,"returnSlots":0},"@_toAmount_18610":{"entryPoint":9543,"id":18610,"parameterSlots":1,"returnSlots":1},"@_toZeroDecimals_18630":{"entryPoint":12438,"id":18630,"parameterSlots":1,"returnSlots":1},"@_transferTo_19863":{"entryPoint":12988,"id":19863,"parameterSlots":2,"returnSlots":0},"@_unlockScr_19489":{"entryPoint":12657,"id":19489,"parameterSlots":1,"returnSlots":0},"@_unpause_1203":{"entryPoint":10316,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":9954,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":15140,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":16531,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":16354,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_18369":{"entryPoint":14358,"id":18369,"parameterSlots":1,"returnSlots":0},"@_validateParameters_18465":{"entryPoint":10696,"id":18465,"parameterSlots":0,"returnSlots":0},"@abs_10394":{"entryPoint":13429,"id":10394,"parameterSlots":1,"returnSlots":1},"@activePurePremiums_18491":{"entryPoint":null,"id":18491,"parameterSlots":0,"returnSlots":1},"@assetManager_18402":{"entryPoint":null,"id":18402,"parameterSlots":0,"returnSlots":1},"@borrowedActivePP_18526":{"entryPoint":8689,"id":18526,"parameterSlots":0,"returnSlots":1},"@checkpoint_20110":{"entryPoint":7030,"id":20110,"parameterSlots":0,"returnSlots":0},"@currency_17973":{"entryPoint":8560,"id":17973,"parameterSlots":0,"returnSlots":1},"@deficitRatio_18645":{"entryPoint":2620,"id":18645,"parameterSlots":0,"returnSlots":1},"@forwardToAssetManager_20131":{"entryPoint":1718,"id":20131,"parameterSlots":1,"returnSlots":1},"@functionCallWithValue_6766":{"entryPoint":16788,"id":6766,"parameterSlots":4,"returnSlots":1},"@functionCall_6702":{"entryPoint":16648,"id":6702,"parameterSlots":3,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":null,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":null,"id":2569,"parameterSlots":3,"returnSlots":1},"@functionDelegateCall_6829":{"entryPoint":9506,"id":6829,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_6858":{"entryPoint":14242,"id":6858,"parameterSlots":3,"returnSlots":1},"@fundsAvailable_18552":{"entryPoint":2961,"id":18552,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@initialize_18275":{"entryPoint":3995,"id":18275,"parameterSlots":0,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@isContract_6630":{"entryPoint":null,"id":6630,"parameterSlots":1,"returnSlots":1},"@jrAccruedInterest_15354":{"entryPoint":15765,"id":15354,"parameterSlots":1,"returnSlots":1},"@jrInterestRate_15327":{"entryPoint":13446,"id":15327,"parameterSlots":1,"returnSlots":1},"@jrLoanLimit_18667":{"entryPoint":2051,"id":18667,"parameterSlots":0,"returnSlots":1},"@juniorEtk_18572":{"entryPoint":null,"id":18572,"parameterSlots":0,"returnSlots":1},"@min_7926":{"entryPoint":13333,"id":7926,"parameterSlots":2,"returnSlots":1},"@pause_17941":{"entryPoint":4357,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyCreated_19200":{"entryPoint":8143,"id":19200,"parameterSlots":1,"returnSlots":0},"@policyExpired_19675":{"entryPoint":7056,"id":19675,"parameterSlots":1,"returnSlots":0},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@policyReplaced_19359":{"entryPoint":5982,"id":19359,"parameterSlots":2,"returnSlots":0},"@policyResolvedWithPayout_19425":{"entryPoint":5179,"id":19425,"parameterSlots":3,"returnSlots":0},"@proxiableUUID_1026":{"entryPoint":3664,"id":1026,"parameterSlots":0,"returnSlots":1},"@purePremiums_18482":{"entryPoint":2027,"id":18482,"parameterSlots":0,"returnSlots":1},"@rebalance_20064":{"entryPoint":3916,"id":20064,"parameterSlots":0,"returnSlots":0},"@receiveGrant_19082":{"entryPoint":4262,"id":19082,"parameterSlots":1,"returnSlots":0},"@recordEarnings_20097":{"entryPoint":2647,"id":20097,"parameterSlots":0,"returnSlots":0},"@repayLoans_19550":{"entryPoint":8719,"id":19550,"parameterSlots":0,"returnSlots":1},"@safeTransferFrom_6162":{"entryPoint":12270,"id":6162,"parameterSlots":4,"returnSlots":0},"@safeTransfer_6135":{"entryPoint":16133,"id":6135,"parameterSlots":3,"returnSlots":0},"@seniorEtk_18562":{"entryPoint":null,"id":18562,"parameterSlots":0,"returnSlots":1},"@setAssetManager_20043":{"entryPoint":7187,"id":20043,"parameterSlots":2,"returnSlots":0},"@setDeficitRatio_18802":{"entryPoint":2992,"id":18802,"parameterSlots":2,"returnSlots":0},"@setLoanLimits_18882":{"entryPoint":4601,"id":18882,"parameterSlots":2,"returnSlots":0},"@srAccruedInterest_15408":{"entryPoint":15845,"id":15408,"parameterSlots":1,"returnSlots":1},"@srInterestRate_15381":{"entryPoint":13354,"id":15381,"parameterSlots":1,"returnSlots":1},"@srLoanLimit_18689":{"entryPoint":3866,"id":18689,"parameterSlots":0,"returnSlots":1},"@supportsInterface_17931":{"entryPoint":9453,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18391":{"entryPoint":1675,"id":18391,"parameterSlots":1,"returnSlots":1},"@surplus_18535":{"entryPoint":null,"id":18535,"parameterSlots":0,"returnSlots":1},"@toUint16_9502":{"entryPoint":10598,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":15665,"id":9452,"parameterSlots":1,"returnSlots":1},"@unpause_17952":{"entryPoint":2337,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":2758,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":2107,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":null,"id":2608,"parameterSlots":4,"returnSlots":1},"@verifyCallResultFromTarget_6897":{"entryPoint":16234,"id":6897,"parameterSlots":4,"returnSlots":1},"@wadDiv_23198":{"entryPoint":16181,"id":23198,"parameterSlots":2,"returnSlots":1},"@wadMul_23186":{"entryPoint":15249,"id":23186,"parameterSlots":2,"returnSlots":1},"@withdrawWonPremiums_19153":{"entryPoint":5386,"id":19153,"parameterSlots":2,"returnSlots":1},"@wonPurePremiums_18508":{"entryPoint":3841,"id":18508,"parameterSlots":0,"returnSlots":1},"abi_decode_bytes":{"entryPoint":17154,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":17645,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData":{"entryPoint":17681,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":17427,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":17454,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_struct$_PolicyData_$14966_memory_ptrt_uint256":{"entryPoint":17878,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18603,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":17053,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":17293,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":18100,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool":{"entryPoint":18056,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_int256_fromMemory":{"entryPoint":18454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr":{"entryPoint":18029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptr":{"entryPoint":17976,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":17590,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":17941,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_bool":{"entryPoint":17544,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":17613,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":18652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":17661,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":17343,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":18630,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":18127,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":18380,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256__to_t_bool_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IEToken_$23549__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_05c3a31a2f127d85ad0695421cb22bc9d1a6204afb4738d719d773ecd2796be9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a00a823022fd2dc99b7021ea998105a0aa4e34f3bb6534c0f1bbb341b534786__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d1a4de2b1a192a07e8c03dbae7805a4a293287ee451ffc5c57af97d34258cdc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2dd17c9d4ecea5478e08d5e7aae2580c553b0dd1578809a01b859af596738c4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18228,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48dfafddd549e64c761b83ac8b5580b6b870825350af14c44e86b9dab59e527b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_495e5d5ae96f4a92de4c7e46823cf0f415aec3a853b962248cd8fe1c513de6db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18304,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6fb52a6adba91dbdb89dd23972f573b9fba4a5c7c6cf1978d8becbf69230f76c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_beb1a2cdae0d6b157b904c90c0fabe52f538ee148f0a030c572031892eca9034__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18945,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d9febc2e3b479326be2b800bd244e6d2b8f8e42fd77d5f1d40526272a67a0efb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_int256__to_t_uint256_t_uint256_t_int256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_int256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"allocate_memory":{"entryPoint":17112,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_int256":{"entryPoint":18189,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":18584,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":18508,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":18684,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":18911,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":18751,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":18431,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int256":{"entryPoint":18477,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":18565,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":19020,"id":null,"parameterSlots":2,"returnSlots":1},"negate_t_int256":{"entryPoint":18539,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":18169,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":18925,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":17092,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":17407,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":17531,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30775:88","nodeType":"YulBlock","src":"0:30775:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"596:76:88","nodeType":"YulBlock","src":"596:76:88","statements":[{"nativeSrc":"606:26:88","nodeType":"YulAssignment","src":"606:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"618:9:88","nodeType":"YulIdentifier","src":"618:9:88"},{"kind":"number","nativeSrc":"629:2:88","nodeType":"YulLiteral","src":"629:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"614:3:88","nodeType":"YulIdentifier","src":"614:3:88"},"nativeSrc":"614:18:88","nodeType":"YulFunctionCall","src":"614:18:88"},"variableNames":[{"name":"tail","nativeSrc":"606:4:88","nodeType":"YulIdentifier","src":"606:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"648:9:88","nodeType":"YulIdentifier","src":"648:9:88"},{"name":"value0","nativeSrc":"659:6:88","nodeType":"YulIdentifier","src":"659:6:88"}],"functionName":{"name":"mstore","nativeSrc":"641:6:88","nodeType":"YulIdentifier","src":"641:6:88"},"nativeSrc":"641:25:88","nodeType":"YulFunctionCall","src":"641:25:88"},"nativeSrc":"641:25:88","nodeType":"YulExpressionStatement","src":"641:25:88"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nativeSrc":"497:175:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"565:9:88","nodeType":"YulTypedName","src":"565:9:88","type":""},{"name":"value0","nativeSrc":"576:6:88","nodeType":"YulTypedName","src":"576:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"587:4:88","nodeType":"YulTypedName","src":"587:4:88","type":""}],"src":"497:175:88"},{"body":{"nativeSrc":"778:76:88","nodeType":"YulBlock","src":"778:76:88","statements":[{"nativeSrc":"788:26:88","nodeType":"YulAssignment","src":"788:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"800:9:88","nodeType":"YulIdentifier","src":"800:9:88"},{"kind":"number","nativeSrc":"811:2:88","nodeType":"YulLiteral","src":"811:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"796:3:88","nodeType":"YulIdentifier","src":"796:3:88"},"nativeSrc":"796:18:88","nodeType":"YulFunctionCall","src":"796:18:88"},"variableNames":[{"name":"tail","nativeSrc":"788:4:88","nodeType":"YulIdentifier","src":"788:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"830:9:88","nodeType":"YulIdentifier","src":"830:9:88"},{"name":"value0","nativeSrc":"841:6:88","nodeType":"YulIdentifier","src":"841:6:88"}],"functionName":{"name":"mstore","nativeSrc":"823:6:88","nodeType":"YulIdentifier","src":"823:6:88"},"nativeSrc":"823:25:88","nodeType":"YulFunctionCall","src":"823:25:88"},"nativeSrc":"823:25:88","nodeType":"YulExpressionStatement","src":"823:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"677:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"747:9:88","nodeType":"YulTypedName","src":"747:9:88","type":""},{"name":"value0","nativeSrc":"758:6:88","nodeType":"YulTypedName","src":"758:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"769:4:88","nodeType":"YulTypedName","src":"769:4:88","type":""}],"src":"677:177:88"},{"body":{"nativeSrc":"891:95:88","nodeType":"YulBlock","src":"891:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"908:1:88","nodeType":"YulLiteral","src":"908:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"915:3:88","nodeType":"YulLiteral","src":"915:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"920:10:88","nodeType":"YulLiteral","src":"920:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"911:3:88","nodeType":"YulIdentifier","src":"911:3:88"},"nativeSrc":"911:20:88","nodeType":"YulFunctionCall","src":"911:20:88"}],"functionName":{"name":"mstore","nativeSrc":"901:6:88","nodeType":"YulIdentifier","src":"901:6:88"},"nativeSrc":"901:31:88","nodeType":"YulFunctionCall","src":"901:31:88"},"nativeSrc":"901:31:88","nodeType":"YulExpressionStatement","src":"901:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"948:1:88","nodeType":"YulLiteral","src":"948:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"951:4:88","nodeType":"YulLiteral","src":"951:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"941:6:88","nodeType":"YulIdentifier","src":"941:6:88"},"nativeSrc":"941:15:88","nodeType":"YulFunctionCall","src":"941:15:88"},"nativeSrc":"941:15:88","nodeType":"YulExpressionStatement","src":"941:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"972:1:88","nodeType":"YulLiteral","src":"972:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"975:4:88","nodeType":"YulLiteral","src":"975:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"965:6:88","nodeType":"YulIdentifier","src":"965:6:88"},"nativeSrc":"965:15:88","nodeType":"YulFunctionCall","src":"965:15:88"},"nativeSrc":"965:15:88","nodeType":"YulExpressionStatement","src":"965:15:88"}]},"name":"panic_error_0x41","nativeSrc":"859:127:88","nodeType":"YulFunctionDefinition","src":"859:127:88"},{"body":{"nativeSrc":"1032:209:88","nodeType":"YulBlock","src":"1032:209:88","statements":[{"nativeSrc":"1042:19:88","nodeType":"YulAssignment","src":"1042:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"1058:2:88","nodeType":"YulLiteral","src":"1058:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1052:5:88","nodeType":"YulIdentifier","src":"1052:5:88"},"nativeSrc":"1052:9:88","nodeType":"YulFunctionCall","src":"1052:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"1042:6:88","nodeType":"YulIdentifier","src":"1042:6:88"}]},{"nativeSrc":"1070:37:88","nodeType":"YulVariableDeclaration","src":"1070:37:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"1092:6:88","nodeType":"YulIdentifier","src":"1092:6:88"},{"kind":"number","nativeSrc":"1100:6:88","nodeType":"YulLiteral","src":"1100:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"add","nativeSrc":"1088:3:88","nodeType":"YulIdentifier","src":"1088:3:88"},"nativeSrc":"1088:19:88","nodeType":"YulFunctionCall","src":"1088:19:88"},"variables":[{"name":"newFreePtr","nativeSrc":"1074:10:88","nodeType":"YulTypedName","src":"1074:10:88","type":""}]},{"body":{"nativeSrc":"1182:22:88","nodeType":"YulBlock","src":"1182:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1184:16:88","nodeType":"YulIdentifier","src":"1184:16:88"},"nativeSrc":"1184:18:88","nodeType":"YulFunctionCall","src":"1184:18:88"},"nativeSrc":"1184:18:88","nodeType":"YulExpressionStatement","src":"1184:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1125:10:88","nodeType":"YulIdentifier","src":"1125:10:88"},{"kind":"number","nativeSrc":"1137:18:88","nodeType":"YulLiteral","src":"1137:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1122:2:88","nodeType":"YulIdentifier","src":"1122:2:88"},"nativeSrc":"1122:34:88","nodeType":"YulFunctionCall","src":"1122:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1161:10:88","nodeType":"YulIdentifier","src":"1161:10:88"},{"name":"memPtr","nativeSrc":"1173:6:88","nodeType":"YulIdentifier","src":"1173:6:88"}],"functionName":{"name":"lt","nativeSrc":"1158:2:88","nodeType":"YulIdentifier","src":"1158:2:88"},"nativeSrc":"1158:22:88","nodeType":"YulFunctionCall","src":"1158:22:88"}],"functionName":{"name":"or","nativeSrc":"1119:2:88","nodeType":"YulIdentifier","src":"1119:2:88"},"nativeSrc":"1119:62:88","nodeType":"YulFunctionCall","src":"1119:62:88"},"nativeSrc":"1116:88:88","nodeType":"YulIf","src":"1116:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1220:2:88","nodeType":"YulLiteral","src":"1220:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1224:10:88","nodeType":"YulIdentifier","src":"1224:10:88"}],"functionName":{"name":"mstore","nativeSrc":"1213:6:88","nodeType":"YulIdentifier","src":"1213:6:88"},"nativeSrc":"1213:22:88","nodeType":"YulFunctionCall","src":"1213:22:88"},"nativeSrc":"1213:22:88","nodeType":"YulExpressionStatement","src":"1213:22:88"}]},"name":"allocate_memory","nativeSrc":"991:250:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1021:6:88","nodeType":"YulTypedName","src":"1021:6:88","type":""}],"src":"991:250:88"},{"body":{"nativeSrc":"1298:693:88","nodeType":"YulBlock","src":"1298:693:88","statements":[{"body":{"nativeSrc":"1347:16:88","nodeType":"YulBlock","src":"1347:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1356:1:88","nodeType":"YulLiteral","src":"1356:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1359:1:88","nodeType":"YulLiteral","src":"1359:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1349:6:88","nodeType":"YulIdentifier","src":"1349:6:88"},"nativeSrc":"1349:12:88","nodeType":"YulFunctionCall","src":"1349:12:88"},"nativeSrc":"1349:12:88","nodeType":"YulExpressionStatement","src":"1349:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1326:6:88","nodeType":"YulIdentifier","src":"1326:6:88"},{"kind":"number","nativeSrc":"1334:4:88","nodeType":"YulLiteral","src":"1334:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1322:3:88","nodeType":"YulIdentifier","src":"1322:3:88"},"nativeSrc":"1322:17:88","nodeType":"YulFunctionCall","src":"1322:17:88"},{"name":"end","nativeSrc":"1341:3:88","nodeType":"YulIdentifier","src":"1341:3:88"}],"functionName":{"name":"slt","nativeSrc":"1318:3:88","nodeType":"YulIdentifier","src":"1318:3:88"},"nativeSrc":"1318:27:88","nodeType":"YulFunctionCall","src":"1318:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1311:6:88","nodeType":"YulIdentifier","src":"1311:6:88"},"nativeSrc":"1311:35:88","nodeType":"YulFunctionCall","src":"1311:35:88"},"nativeSrc":"1308:55:88","nodeType":"YulIf","src":"1308:55:88"},{"nativeSrc":"1372:34:88","nodeType":"YulVariableDeclaration","src":"1372:34:88","value":{"arguments":[{"name":"offset","nativeSrc":"1399:6:88","nodeType":"YulIdentifier","src":"1399:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1386:12:88","nodeType":"YulIdentifier","src":"1386:12:88"},"nativeSrc":"1386:20:88","nodeType":"YulFunctionCall","src":"1386:20:88"},"variables":[{"name":"length","nativeSrc":"1376:6:88","nodeType":"YulTypedName","src":"1376:6:88","type":""}]},{"body":{"nativeSrc":"1449:22:88","nodeType":"YulBlock","src":"1449:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1451:16:88","nodeType":"YulIdentifier","src":"1451:16:88"},"nativeSrc":"1451:18:88","nodeType":"YulFunctionCall","src":"1451:18:88"},"nativeSrc":"1451:18:88","nodeType":"YulExpressionStatement","src":"1451:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1421:6:88","nodeType":"YulIdentifier","src":"1421:6:88"},{"kind":"number","nativeSrc":"1429:18:88","nodeType":"YulLiteral","src":"1429:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1418:2:88","nodeType":"YulIdentifier","src":"1418:2:88"},"nativeSrc":"1418:30:88","nodeType":"YulFunctionCall","src":"1418:30:88"},"nativeSrc":"1415:56:88","nodeType":"YulIf","src":"1415:56:88"},{"nativeSrc":"1480:15:88","nodeType":"YulVariableDeclaration","src":"1480:15:88","value":{"kind":"number","nativeSrc":"1494:1:88","nodeType":"YulLiteral","src":"1494:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"1484:6:88","nodeType":"YulTypedName","src":"1484:6:88","type":""}]},{"nativeSrc":"1504:19:88","nodeType":"YulAssignment","src":"1504:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"1520:2:88","nodeType":"YulLiteral","src":"1520:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1514:5:88","nodeType":"YulIdentifier","src":"1514:5:88"},"nativeSrc":"1514:9:88","nodeType":"YulFunctionCall","src":"1514:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"1504:6:88","nodeType":"YulIdentifier","src":"1504:6:88"}]},{"nativeSrc":"1532:85:88","nodeType":"YulVariableDeclaration","src":"1532:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"1554:6:88","nodeType":"YulIdentifier","src":"1554:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1578:6:88","nodeType":"YulIdentifier","src":"1578:6:88"},{"kind":"number","nativeSrc":"1586:4:88","nodeType":"YulLiteral","src":"1586:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1574:3:88","nodeType":"YulIdentifier","src":"1574:3:88"},"nativeSrc":"1574:17:88","nodeType":"YulFunctionCall","src":"1574:17:88"},{"arguments":[{"kind":"number","nativeSrc":"1597:2:88","nodeType":"YulLiteral","src":"1597:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1593:3:88","nodeType":"YulIdentifier","src":"1593:3:88"},"nativeSrc":"1593:7:88","nodeType":"YulFunctionCall","src":"1593:7:88"}],"functionName":{"name":"and","nativeSrc":"1570:3:88","nodeType":"YulIdentifier","src":"1570:3:88"},"nativeSrc":"1570:31:88","nodeType":"YulFunctionCall","src":"1570:31:88"},{"kind":"number","nativeSrc":"1603:2:88","nodeType":"YulLiteral","src":"1603:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1566:3:88","nodeType":"YulIdentifier","src":"1566:3:88"},"nativeSrc":"1566:40:88","nodeType":"YulFunctionCall","src":"1566:40:88"},{"arguments":[{"kind":"number","nativeSrc":"1612:2:88","nodeType":"YulLiteral","src":"1612:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1608:3:88","nodeType":"YulIdentifier","src":"1608:3:88"},"nativeSrc":"1608:7:88","nodeType":"YulFunctionCall","src":"1608:7:88"}],"functionName":{"name":"and","nativeSrc":"1562:3:88","nodeType":"YulIdentifier","src":"1562:3:88"},"nativeSrc":"1562:54:88","nodeType":"YulFunctionCall","src":"1562:54:88"}],"functionName":{"name":"add","nativeSrc":"1550:3:88","nodeType":"YulIdentifier","src":"1550:3:88"},"nativeSrc":"1550:67:88","nodeType":"YulFunctionCall","src":"1550:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"1536:10:88","nodeType":"YulTypedName","src":"1536:10:88","type":""}]},{"body":{"nativeSrc":"1692:22:88","nodeType":"YulBlock","src":"1692:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1694:16:88","nodeType":"YulIdentifier","src":"1694:16:88"},"nativeSrc":"1694:18:88","nodeType":"YulFunctionCall","src":"1694:18:88"},"nativeSrc":"1694:18:88","nodeType":"YulExpressionStatement","src":"1694:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1635:10:88","nodeType":"YulIdentifier","src":"1635:10:88"},{"kind":"number","nativeSrc":"1647:18:88","nodeType":"YulLiteral","src":"1647:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1632:2:88","nodeType":"YulIdentifier","src":"1632:2:88"},"nativeSrc":"1632:34:88","nodeType":"YulFunctionCall","src":"1632:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1671:10:88","nodeType":"YulIdentifier","src":"1671:10:88"},{"name":"memPtr","nativeSrc":"1683:6:88","nodeType":"YulIdentifier","src":"1683:6:88"}],"functionName":{"name":"lt","nativeSrc":"1668:2:88","nodeType":"YulIdentifier","src":"1668:2:88"},"nativeSrc":"1668:22:88","nodeType":"YulFunctionCall","src":"1668:22:88"}],"functionName":{"name":"or","nativeSrc":"1629:2:88","nodeType":"YulIdentifier","src":"1629:2:88"},"nativeSrc":"1629:62:88","nodeType":"YulFunctionCall","src":"1629:62:88"},"nativeSrc":"1626:88:88","nodeType":"YulIf","src":"1626:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1730:2:88","nodeType":"YulLiteral","src":"1730:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1734:10:88","nodeType":"YulIdentifier","src":"1734:10:88"}],"functionName":{"name":"mstore","nativeSrc":"1723:6:88","nodeType":"YulIdentifier","src":"1723:6:88"},"nativeSrc":"1723:22:88","nodeType":"YulFunctionCall","src":"1723:22:88"},"nativeSrc":"1723:22:88","nodeType":"YulExpressionStatement","src":"1723:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1761:6:88","nodeType":"YulIdentifier","src":"1761:6:88"},{"name":"length","nativeSrc":"1769:6:88","nodeType":"YulIdentifier","src":"1769:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1754:6:88","nodeType":"YulIdentifier","src":"1754:6:88"},"nativeSrc":"1754:22:88","nodeType":"YulFunctionCall","src":"1754:22:88"},"nativeSrc":"1754:22:88","nodeType":"YulExpressionStatement","src":"1754:22:88"},{"body":{"nativeSrc":"1828:16:88","nodeType":"YulBlock","src":"1828:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1837:1:88","nodeType":"YulLiteral","src":"1837:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1840:1:88","nodeType":"YulLiteral","src":"1840:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1830:6:88","nodeType":"YulIdentifier","src":"1830:6:88"},"nativeSrc":"1830:12:88","nodeType":"YulFunctionCall","src":"1830:12:88"},"nativeSrc":"1830:12:88","nodeType":"YulExpressionStatement","src":"1830:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1799:6:88","nodeType":"YulIdentifier","src":"1799:6:88"},{"name":"length","nativeSrc":"1807:6:88","nodeType":"YulIdentifier","src":"1807:6:88"}],"functionName":{"name":"add","nativeSrc":"1795:3:88","nodeType":"YulIdentifier","src":"1795:3:88"},"nativeSrc":"1795:19:88","nodeType":"YulFunctionCall","src":"1795:19:88"},{"kind":"number","nativeSrc":"1816:4:88","nodeType":"YulLiteral","src":"1816:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1791:3:88","nodeType":"YulIdentifier","src":"1791:3:88"},"nativeSrc":"1791:30:88","nodeType":"YulFunctionCall","src":"1791:30:88"},{"name":"end","nativeSrc":"1823:3:88","nodeType":"YulIdentifier","src":"1823:3:88"}],"functionName":{"name":"gt","nativeSrc":"1788:2:88","nodeType":"YulIdentifier","src":"1788:2:88"},"nativeSrc":"1788:39:88","nodeType":"YulFunctionCall","src":"1788:39:88"},"nativeSrc":"1785:59:88","nodeType":"YulIf","src":"1785:59:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1870:6:88","nodeType":"YulIdentifier","src":"1870:6:88"},{"kind":"number","nativeSrc":"1878:4:88","nodeType":"YulLiteral","src":"1878:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1866:3:88","nodeType":"YulIdentifier","src":"1866:3:88"},"nativeSrc":"1866:17:88","nodeType":"YulFunctionCall","src":"1866:17:88"},{"arguments":[{"name":"offset","nativeSrc":"1889:6:88","nodeType":"YulIdentifier","src":"1889:6:88"},{"kind":"number","nativeSrc":"1897:4:88","nodeType":"YulLiteral","src":"1897:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1885:3:88","nodeType":"YulIdentifier","src":"1885:3:88"},"nativeSrc":"1885:17:88","nodeType":"YulFunctionCall","src":"1885:17:88"},{"name":"length","nativeSrc":"1904:6:88","nodeType":"YulIdentifier","src":"1904:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"1853:12:88","nodeType":"YulIdentifier","src":"1853:12:88"},"nativeSrc":"1853:58:88","nodeType":"YulFunctionCall","src":"1853:58:88"},"nativeSrc":"1853:58:88","nodeType":"YulExpressionStatement","src":"1853:58:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1935:6:88","nodeType":"YulIdentifier","src":"1935:6:88"},{"name":"length","nativeSrc":"1943:6:88","nodeType":"YulIdentifier","src":"1943:6:88"}],"functionName":{"name":"add","nativeSrc":"1931:3:88","nodeType":"YulIdentifier","src":"1931:3:88"},"nativeSrc":"1931:19:88","nodeType":"YulFunctionCall","src":"1931:19:88"},{"kind":"number","nativeSrc":"1952:4:88","nodeType":"YulLiteral","src":"1952:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1927:3:88","nodeType":"YulIdentifier","src":"1927:3:88"},"nativeSrc":"1927:30:88","nodeType":"YulFunctionCall","src":"1927:30:88"},{"kind":"number","nativeSrc":"1959:1:88","nodeType":"YulLiteral","src":"1959:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1920:6:88","nodeType":"YulIdentifier","src":"1920:6:88"},"nativeSrc":"1920:41:88","nodeType":"YulFunctionCall","src":"1920:41:88"},"nativeSrc":"1920:41:88","nodeType":"YulExpressionStatement","src":"1920:41:88"},{"nativeSrc":"1970:15:88","nodeType":"YulAssignment","src":"1970:15:88","value":{"name":"memPtr","nativeSrc":"1979:6:88","nodeType":"YulIdentifier","src":"1979:6:88"},"variableNames":[{"name":"array","nativeSrc":"1970:5:88","nodeType":"YulIdentifier","src":"1970:5:88"}]}]},"name":"abi_decode_bytes","nativeSrc":"1246:745:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1272:6:88","nodeType":"YulTypedName","src":"1272:6:88","type":""},{"name":"end","nativeSrc":"1280:3:88","nodeType":"YulTypedName","src":"1280:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1288:5:88","nodeType":"YulTypedName","src":"1288:5:88","type":""}],"src":"1246:745:88"},{"body":{"nativeSrc":"2075:241:88","nodeType":"YulBlock","src":"2075:241:88","statements":[{"body":{"nativeSrc":"2121:16:88","nodeType":"YulBlock","src":"2121:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2130:1:88","nodeType":"YulLiteral","src":"2130:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2133:1:88","nodeType":"YulLiteral","src":"2133:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2123:6:88","nodeType":"YulIdentifier","src":"2123:6:88"},"nativeSrc":"2123:12:88","nodeType":"YulFunctionCall","src":"2123:12:88"},"nativeSrc":"2123:12:88","nodeType":"YulExpressionStatement","src":"2123:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2096:7:88","nodeType":"YulIdentifier","src":"2096:7:88"},{"name":"headStart","nativeSrc":"2105:9:88","nodeType":"YulIdentifier","src":"2105:9:88"}],"functionName":{"name":"sub","nativeSrc":"2092:3:88","nodeType":"YulIdentifier","src":"2092:3:88"},"nativeSrc":"2092:23:88","nodeType":"YulFunctionCall","src":"2092:23:88"},{"kind":"number","nativeSrc":"2117:2:88","nodeType":"YulLiteral","src":"2117:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2088:3:88","nodeType":"YulIdentifier","src":"2088:3:88"},"nativeSrc":"2088:32:88","nodeType":"YulFunctionCall","src":"2088:32:88"},"nativeSrc":"2085:52:88","nodeType":"YulIf","src":"2085:52:88"},{"nativeSrc":"2146:37:88","nodeType":"YulVariableDeclaration","src":"2146:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2173:9:88","nodeType":"YulIdentifier","src":"2173:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2160:12:88","nodeType":"YulIdentifier","src":"2160:12:88"},"nativeSrc":"2160:23:88","nodeType":"YulFunctionCall","src":"2160:23:88"},"variables":[{"name":"offset","nativeSrc":"2150:6:88","nodeType":"YulTypedName","src":"2150:6:88","type":""}]},{"body":{"nativeSrc":"2226:16:88","nodeType":"YulBlock","src":"2226:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2235:1:88","nodeType":"YulLiteral","src":"2235:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2238:1:88","nodeType":"YulLiteral","src":"2238:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2228:6:88","nodeType":"YulIdentifier","src":"2228:6:88"},"nativeSrc":"2228:12:88","nodeType":"YulFunctionCall","src":"2228:12:88"},"nativeSrc":"2228:12:88","nodeType":"YulExpressionStatement","src":"2228:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2198:6:88","nodeType":"YulIdentifier","src":"2198:6:88"},{"kind":"number","nativeSrc":"2206:18:88","nodeType":"YulLiteral","src":"2206:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2195:2:88","nodeType":"YulIdentifier","src":"2195:2:88"},"nativeSrc":"2195:30:88","nodeType":"YulFunctionCall","src":"2195:30:88"},"nativeSrc":"2192:50:88","nodeType":"YulIf","src":"2192:50:88"},{"nativeSrc":"2251:59:88","nodeType":"YulAssignment","src":"2251:59:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2282:9:88","nodeType":"YulIdentifier","src":"2282:9:88"},{"name":"offset","nativeSrc":"2293:6:88","nodeType":"YulIdentifier","src":"2293:6:88"}],"functionName":{"name":"add","nativeSrc":"2278:3:88","nodeType":"YulIdentifier","src":"2278:3:88"},"nativeSrc":"2278:22:88","nodeType":"YulFunctionCall","src":"2278:22:88"},{"name":"dataEnd","nativeSrc":"2302:7:88","nodeType":"YulIdentifier","src":"2302:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"2261:16:88","nodeType":"YulIdentifier","src":"2261:16:88"},"nativeSrc":"2261:49:88","nodeType":"YulFunctionCall","src":"2261:49:88"},"variableNames":[{"name":"value0","nativeSrc":"2251:6:88","nodeType":"YulIdentifier","src":"2251:6:88"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nativeSrc":"1996:320:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2041:9:88","nodeType":"YulTypedName","src":"2041:9:88","type":""},{"name":"dataEnd","nativeSrc":"2052:7:88","nodeType":"YulTypedName","src":"2052:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2064:6:88","nodeType":"YulTypedName","src":"2064:6:88","type":""}],"src":"1996:320:88"},{"body":{"nativeSrc":"2370:239:88","nodeType":"YulBlock","src":"2370:239:88","statements":[{"nativeSrc":"2380:26:88","nodeType":"YulVariableDeclaration","src":"2380:26:88","value":{"arguments":[{"name":"value","nativeSrc":"2400:5:88","nodeType":"YulIdentifier","src":"2400:5:88"}],"functionName":{"name":"mload","nativeSrc":"2394:5:88","nodeType":"YulIdentifier","src":"2394:5:88"},"nativeSrc":"2394:12:88","nodeType":"YulFunctionCall","src":"2394:12:88"},"variables":[{"name":"length","nativeSrc":"2384:6:88","nodeType":"YulTypedName","src":"2384:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2422:3:88","nodeType":"YulIdentifier","src":"2422:3:88"},{"name":"length","nativeSrc":"2427:6:88","nodeType":"YulIdentifier","src":"2427:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2415:6:88","nodeType":"YulIdentifier","src":"2415:6:88"},"nativeSrc":"2415:19:88","nodeType":"YulFunctionCall","src":"2415:19:88"},"nativeSrc":"2415:19:88","nodeType":"YulExpressionStatement","src":"2415:19:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2453:3:88","nodeType":"YulIdentifier","src":"2453:3:88"},{"kind":"number","nativeSrc":"2458:4:88","nodeType":"YulLiteral","src":"2458:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2449:3:88","nodeType":"YulIdentifier","src":"2449:3:88"},"nativeSrc":"2449:14:88","nodeType":"YulFunctionCall","src":"2449:14:88"},{"arguments":[{"name":"value","nativeSrc":"2469:5:88","nodeType":"YulIdentifier","src":"2469:5:88"},{"kind":"number","nativeSrc":"2476:4:88","nodeType":"YulLiteral","src":"2476:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2465:3:88","nodeType":"YulIdentifier","src":"2465:3:88"},"nativeSrc":"2465:16:88","nodeType":"YulFunctionCall","src":"2465:16:88"},{"name":"length","nativeSrc":"2483:6:88","nodeType":"YulIdentifier","src":"2483:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"2443:5:88","nodeType":"YulIdentifier","src":"2443:5:88"},"nativeSrc":"2443:47:88","nodeType":"YulFunctionCall","src":"2443:47:88"},"nativeSrc":"2443:47:88","nodeType":"YulExpressionStatement","src":"2443:47:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2514:3:88","nodeType":"YulIdentifier","src":"2514:3:88"},{"name":"length","nativeSrc":"2519:6:88","nodeType":"YulIdentifier","src":"2519:6:88"}],"functionName":{"name":"add","nativeSrc":"2510:3:88","nodeType":"YulIdentifier","src":"2510:3:88"},"nativeSrc":"2510:16:88","nodeType":"YulFunctionCall","src":"2510:16:88"},{"kind":"number","nativeSrc":"2528:4:88","nodeType":"YulLiteral","src":"2528:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2506:3:88","nodeType":"YulIdentifier","src":"2506:3:88"},"nativeSrc":"2506:27:88","nodeType":"YulFunctionCall","src":"2506:27:88"},{"kind":"number","nativeSrc":"2535:1:88","nodeType":"YulLiteral","src":"2535:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2499:6:88","nodeType":"YulIdentifier","src":"2499:6:88"},"nativeSrc":"2499:38:88","nodeType":"YulFunctionCall","src":"2499:38:88"},"nativeSrc":"2499:38:88","nodeType":"YulExpressionStatement","src":"2499:38:88"},{"nativeSrc":"2546:57:88","nodeType":"YulAssignment","src":"2546:57:88","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2561:3:88","nodeType":"YulIdentifier","src":"2561:3:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2574:6:88","nodeType":"YulIdentifier","src":"2574:6:88"},{"kind":"number","nativeSrc":"2582:2:88","nodeType":"YulLiteral","src":"2582:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2570:3:88","nodeType":"YulIdentifier","src":"2570:3:88"},"nativeSrc":"2570:15:88","nodeType":"YulFunctionCall","src":"2570:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2591:2:88","nodeType":"YulLiteral","src":"2591:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2587:3:88","nodeType":"YulIdentifier","src":"2587:3:88"},"nativeSrc":"2587:7:88","nodeType":"YulFunctionCall","src":"2587:7:88"}],"functionName":{"name":"and","nativeSrc":"2566:3:88","nodeType":"YulIdentifier","src":"2566:3:88"},"nativeSrc":"2566:29:88","nodeType":"YulFunctionCall","src":"2566:29:88"}],"functionName":{"name":"add","nativeSrc":"2557:3:88","nodeType":"YulIdentifier","src":"2557:3:88"},"nativeSrc":"2557:39:88","nodeType":"YulFunctionCall","src":"2557:39:88"},{"kind":"number","nativeSrc":"2598:4:88","nodeType":"YulLiteral","src":"2598:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2553:3:88","nodeType":"YulIdentifier","src":"2553:3:88"},"nativeSrc":"2553:50:88","nodeType":"YulFunctionCall","src":"2553:50:88"},"variableNames":[{"name":"end","nativeSrc":"2546:3:88","nodeType":"YulIdentifier","src":"2546:3:88"}]}]},"name":"abi_encode_bytes","nativeSrc":"2321:288:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2347:5:88","nodeType":"YulTypedName","src":"2347:5:88","type":""},{"name":"pos","nativeSrc":"2354:3:88","nodeType":"YulTypedName","src":"2354:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2362:3:88","nodeType":"YulTypedName","src":"2362:3:88","type":""}],"src":"2321:288:88"},{"body":{"nativeSrc":"2733:98:88","nodeType":"YulBlock","src":"2733:98:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2750:9:88","nodeType":"YulIdentifier","src":"2750:9:88"},{"kind":"number","nativeSrc":"2761:2:88","nodeType":"YulLiteral","src":"2761:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2743:6:88","nodeType":"YulIdentifier","src":"2743:6:88"},"nativeSrc":"2743:21:88","nodeType":"YulFunctionCall","src":"2743:21:88"},"nativeSrc":"2743:21:88","nodeType":"YulExpressionStatement","src":"2743:21:88"},{"nativeSrc":"2773:52:88","nodeType":"YulAssignment","src":"2773:52:88","value":{"arguments":[{"name":"value0","nativeSrc":"2798:6:88","nodeType":"YulIdentifier","src":"2798:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"2810:9:88","nodeType":"YulIdentifier","src":"2810:9:88"},{"kind":"number","nativeSrc":"2821:2:88","nodeType":"YulLiteral","src":"2821:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2806:3:88","nodeType":"YulIdentifier","src":"2806:3:88"},"nativeSrc":"2806:18:88","nodeType":"YulFunctionCall","src":"2806:18:88"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"2781:16:88","nodeType":"YulIdentifier","src":"2781:16:88"},"nativeSrc":"2781:44:88","nodeType":"YulFunctionCall","src":"2781:44:88"},"variableNames":[{"name":"tail","nativeSrc":"2773:4:88","nodeType":"YulIdentifier","src":"2773:4:88"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"2614:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2702:9:88","nodeType":"YulTypedName","src":"2702:9:88","type":""},{"name":"value0","nativeSrc":"2713:6:88","nodeType":"YulTypedName","src":"2713:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2724:4:88","nodeType":"YulTypedName","src":"2724:4:88","type":""}],"src":"2614:217:88"},{"body":{"nativeSrc":"2881:86:88","nodeType":"YulBlock","src":"2881:86:88","statements":[{"body":{"nativeSrc":"2945:16:88","nodeType":"YulBlock","src":"2945:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2954:1:88","nodeType":"YulLiteral","src":"2954:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2957:1:88","nodeType":"YulLiteral","src":"2957:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2947:6:88","nodeType":"YulIdentifier","src":"2947:6:88"},"nativeSrc":"2947:12:88","nodeType":"YulFunctionCall","src":"2947:12:88"},"nativeSrc":"2947:12:88","nodeType":"YulExpressionStatement","src":"2947:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2904:5:88","nodeType":"YulIdentifier","src":"2904:5:88"},{"arguments":[{"name":"value","nativeSrc":"2915:5:88","nodeType":"YulIdentifier","src":"2915:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2930:3:88","nodeType":"YulLiteral","src":"2930:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2935:1:88","nodeType":"YulLiteral","src":"2935:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2926:3:88","nodeType":"YulIdentifier","src":"2926:3:88"},"nativeSrc":"2926:11:88","nodeType":"YulFunctionCall","src":"2926:11:88"},{"kind":"number","nativeSrc":"2939:1:88","nodeType":"YulLiteral","src":"2939:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2922:3:88","nodeType":"YulIdentifier","src":"2922:3:88"},"nativeSrc":"2922:19:88","nodeType":"YulFunctionCall","src":"2922:19:88"}],"functionName":{"name":"and","nativeSrc":"2911:3:88","nodeType":"YulIdentifier","src":"2911:3:88"},"nativeSrc":"2911:31:88","nodeType":"YulFunctionCall","src":"2911:31:88"}],"functionName":{"name":"eq","nativeSrc":"2901:2:88","nodeType":"YulIdentifier","src":"2901:2:88"},"nativeSrc":"2901:42:88","nodeType":"YulFunctionCall","src":"2901:42:88"}],"functionName":{"name":"iszero","nativeSrc":"2894:6:88","nodeType":"YulIdentifier","src":"2894:6:88"},"nativeSrc":"2894:50:88","nodeType":"YulFunctionCall","src":"2894:50:88"},"nativeSrc":"2891:70:88","nodeType":"YulIf","src":"2891:70:88"}]},"name":"validator_revert_address","nativeSrc":"2836:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2870:5:88","nodeType":"YulTypedName","src":"2870:5:88","type":""}],"src":"2836:131:88"},{"body":{"nativeSrc":"3042:177:88","nodeType":"YulBlock","src":"3042:177:88","statements":[{"body":{"nativeSrc":"3088:16:88","nodeType":"YulBlock","src":"3088:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3097:1:88","nodeType":"YulLiteral","src":"3097:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3100:1:88","nodeType":"YulLiteral","src":"3100:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3090:6:88","nodeType":"YulIdentifier","src":"3090:6:88"},"nativeSrc":"3090:12:88","nodeType":"YulFunctionCall","src":"3090:12:88"},"nativeSrc":"3090:12:88","nodeType":"YulExpressionStatement","src":"3090:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3063:7:88","nodeType":"YulIdentifier","src":"3063:7:88"},{"name":"headStart","nativeSrc":"3072:9:88","nodeType":"YulIdentifier","src":"3072:9:88"}],"functionName":{"name":"sub","nativeSrc":"3059:3:88","nodeType":"YulIdentifier","src":"3059:3:88"},"nativeSrc":"3059:23:88","nodeType":"YulFunctionCall","src":"3059:23:88"},{"kind":"number","nativeSrc":"3084:2:88","nodeType":"YulLiteral","src":"3084:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3055:3:88","nodeType":"YulIdentifier","src":"3055:3:88"},"nativeSrc":"3055:32:88","nodeType":"YulFunctionCall","src":"3055:32:88"},"nativeSrc":"3052:52:88","nodeType":"YulIf","src":"3052:52:88"},{"nativeSrc":"3113:36:88","nodeType":"YulVariableDeclaration","src":"3113:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3139:9:88","nodeType":"YulIdentifier","src":"3139:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3126:12:88","nodeType":"YulIdentifier","src":"3126:12:88"},"nativeSrc":"3126:23:88","nodeType":"YulFunctionCall","src":"3126:23:88"},"variables":[{"name":"value","nativeSrc":"3117:5:88","nodeType":"YulTypedName","src":"3117:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3183:5:88","nodeType":"YulIdentifier","src":"3183:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3158:24:88","nodeType":"YulIdentifier","src":"3158:24:88"},"nativeSrc":"3158:31:88","nodeType":"YulFunctionCall","src":"3158:31:88"},"nativeSrc":"3158:31:88","nodeType":"YulExpressionStatement","src":"3158:31:88"},{"nativeSrc":"3198:15:88","nodeType":"YulAssignment","src":"3198:15:88","value":{"name":"value","nativeSrc":"3208:5:88","nodeType":"YulIdentifier","src":"3208:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3198:6:88","nodeType":"YulIdentifier","src":"3198:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2972:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3008:9:88","nodeType":"YulTypedName","src":"3008:9:88","type":""},{"name":"dataEnd","nativeSrc":"3019:7:88","nodeType":"YulTypedName","src":"3019:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3031:6:88","nodeType":"YulTypedName","src":"3031:6:88","type":""}],"src":"2972:247:88"},{"body":{"nativeSrc":"3346:102:88","nodeType":"YulBlock","src":"3346:102:88","statements":[{"nativeSrc":"3356:26:88","nodeType":"YulAssignment","src":"3356:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3368:9:88","nodeType":"YulIdentifier","src":"3368:9:88"},{"kind":"number","nativeSrc":"3379:2:88","nodeType":"YulLiteral","src":"3379:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3364:3:88","nodeType":"YulIdentifier","src":"3364:3:88"},"nativeSrc":"3364:18:88","nodeType":"YulFunctionCall","src":"3364:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3356:4:88","nodeType":"YulIdentifier","src":"3356:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3398:9:88","nodeType":"YulIdentifier","src":"3398:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3413:6:88","nodeType":"YulIdentifier","src":"3413:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3429:3:88","nodeType":"YulLiteral","src":"3429:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3434:1:88","nodeType":"YulLiteral","src":"3434:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3425:3:88","nodeType":"YulIdentifier","src":"3425:3:88"},"nativeSrc":"3425:11:88","nodeType":"YulFunctionCall","src":"3425:11:88"},{"kind":"number","nativeSrc":"3438:1:88","nodeType":"YulLiteral","src":"3438:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3421:3:88","nodeType":"YulIdentifier","src":"3421:3:88"},"nativeSrc":"3421:19:88","nodeType":"YulFunctionCall","src":"3421:19:88"}],"functionName":{"name":"and","nativeSrc":"3409:3:88","nodeType":"YulIdentifier","src":"3409:3:88"},"nativeSrc":"3409:32:88","nodeType":"YulFunctionCall","src":"3409:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3391:6:88","nodeType":"YulIdentifier","src":"3391:6:88"},"nativeSrc":"3391:51:88","nodeType":"YulFunctionCall","src":"3391:51:88"},"nativeSrc":"3391:51:88","nodeType":"YulExpressionStatement","src":"3391:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"3224:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3315:9:88","nodeType":"YulTypedName","src":"3315:9:88","type":""},{"name":"value0","nativeSrc":"3326:6:88","nodeType":"YulTypedName","src":"3326:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3337:4:88","nodeType":"YulTypedName","src":"3337:4:88","type":""}],"src":"3224:224:88"},{"body":{"nativeSrc":"3549:359:88","nodeType":"YulBlock","src":"3549:359:88","statements":[{"body":{"nativeSrc":"3595:16:88","nodeType":"YulBlock","src":"3595:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3604:1:88","nodeType":"YulLiteral","src":"3604:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3607:1:88","nodeType":"YulLiteral","src":"3607:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3597:6:88","nodeType":"YulIdentifier","src":"3597:6:88"},"nativeSrc":"3597:12:88","nodeType":"YulFunctionCall","src":"3597:12:88"},"nativeSrc":"3597:12:88","nodeType":"YulExpressionStatement","src":"3597:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3570:7:88","nodeType":"YulIdentifier","src":"3570:7:88"},{"name":"headStart","nativeSrc":"3579:9:88","nodeType":"YulIdentifier","src":"3579:9:88"}],"functionName":{"name":"sub","nativeSrc":"3566:3:88","nodeType":"YulIdentifier","src":"3566:3:88"},"nativeSrc":"3566:23:88","nodeType":"YulFunctionCall","src":"3566:23:88"},{"kind":"number","nativeSrc":"3591:2:88","nodeType":"YulLiteral","src":"3591:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3562:3:88","nodeType":"YulIdentifier","src":"3562:3:88"},"nativeSrc":"3562:32:88","nodeType":"YulFunctionCall","src":"3562:32:88"},"nativeSrc":"3559:52:88","nodeType":"YulIf","src":"3559:52:88"},{"nativeSrc":"3620:36:88","nodeType":"YulVariableDeclaration","src":"3620:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3646:9:88","nodeType":"YulIdentifier","src":"3646:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3633:12:88","nodeType":"YulIdentifier","src":"3633:12:88"},"nativeSrc":"3633:23:88","nodeType":"YulFunctionCall","src":"3633:23:88"},"variables":[{"name":"value","nativeSrc":"3624:5:88","nodeType":"YulTypedName","src":"3624:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3690:5:88","nodeType":"YulIdentifier","src":"3690:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3665:24:88","nodeType":"YulIdentifier","src":"3665:24:88"},"nativeSrc":"3665:31:88","nodeType":"YulFunctionCall","src":"3665:31:88"},"nativeSrc":"3665:31:88","nodeType":"YulExpressionStatement","src":"3665:31:88"},{"nativeSrc":"3705:15:88","nodeType":"YulAssignment","src":"3705:15:88","value":{"name":"value","nativeSrc":"3715:5:88","nodeType":"YulIdentifier","src":"3715:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3705:6:88","nodeType":"YulIdentifier","src":"3705:6:88"}]},{"nativeSrc":"3729:46:88","nodeType":"YulVariableDeclaration","src":"3729:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3760:9:88","nodeType":"YulIdentifier","src":"3760:9:88"},{"kind":"number","nativeSrc":"3771:2:88","nodeType":"YulLiteral","src":"3771:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3756:3:88","nodeType":"YulIdentifier","src":"3756:3:88"},"nativeSrc":"3756:18:88","nodeType":"YulFunctionCall","src":"3756:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3743:12:88","nodeType":"YulIdentifier","src":"3743:12:88"},"nativeSrc":"3743:32:88","nodeType":"YulFunctionCall","src":"3743:32:88"},"variables":[{"name":"offset","nativeSrc":"3733:6:88","nodeType":"YulTypedName","src":"3733:6:88","type":""}]},{"body":{"nativeSrc":"3818:16:88","nodeType":"YulBlock","src":"3818:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3827:1:88","nodeType":"YulLiteral","src":"3827:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3830:1:88","nodeType":"YulLiteral","src":"3830:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3820:6:88","nodeType":"YulIdentifier","src":"3820:6:88"},"nativeSrc":"3820:12:88","nodeType":"YulFunctionCall","src":"3820:12:88"},"nativeSrc":"3820:12:88","nodeType":"YulExpressionStatement","src":"3820:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3790:6:88","nodeType":"YulIdentifier","src":"3790:6:88"},{"kind":"number","nativeSrc":"3798:18:88","nodeType":"YulLiteral","src":"3798:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3787:2:88","nodeType":"YulIdentifier","src":"3787:2:88"},"nativeSrc":"3787:30:88","nodeType":"YulFunctionCall","src":"3787:30:88"},"nativeSrc":"3784:50:88","nodeType":"YulIf","src":"3784:50:88"},{"nativeSrc":"3843:59:88","nodeType":"YulAssignment","src":"3843:59:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3874:9:88","nodeType":"YulIdentifier","src":"3874:9:88"},{"name":"offset","nativeSrc":"3885:6:88","nodeType":"YulIdentifier","src":"3885:6:88"}],"functionName":{"name":"add","nativeSrc":"3870:3:88","nodeType":"YulIdentifier","src":"3870:3:88"},"nativeSrc":"3870:22:88","nodeType":"YulFunctionCall","src":"3870:22:88"},{"name":"dataEnd","nativeSrc":"3894:7:88","nodeType":"YulIdentifier","src":"3894:7:88"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3853:16:88","nodeType":"YulIdentifier","src":"3853:16:88"},"nativeSrc":"3853:49:88","nodeType":"YulFunctionCall","src":"3853:49:88"},"variableNames":[{"name":"value1","nativeSrc":"3843:6:88","nodeType":"YulIdentifier","src":"3843:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"3453:455:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3507:9:88","nodeType":"YulTypedName","src":"3507:9:88","type":""},{"name":"dataEnd","nativeSrc":"3518:7:88","nodeType":"YulTypedName","src":"3518:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3530:6:88","nodeType":"YulTypedName","src":"3530:6:88","type":""},{"name":"value1","nativeSrc":"3538:6:88","nodeType":"YulTypedName","src":"3538:6:88","type":""}],"src":"3453:455:88"},{"body":{"nativeSrc":"3955:76:88","nodeType":"YulBlock","src":"3955:76:88","statements":[{"body":{"nativeSrc":"4009:16:88","nodeType":"YulBlock","src":"4009:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4018:1:88","nodeType":"YulLiteral","src":"4018:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4021:1:88","nodeType":"YulLiteral","src":"4021:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4011:6:88","nodeType":"YulIdentifier","src":"4011:6:88"},"nativeSrc":"4011:12:88","nodeType":"YulFunctionCall","src":"4011:12:88"},"nativeSrc":"4011:12:88","nodeType":"YulExpressionStatement","src":"4011:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3978:5:88","nodeType":"YulIdentifier","src":"3978:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3999:5:88","nodeType":"YulIdentifier","src":"3999:5:88"}],"functionName":{"name":"iszero","nativeSrc":"3992:6:88","nodeType":"YulIdentifier","src":"3992:6:88"},"nativeSrc":"3992:13:88","nodeType":"YulFunctionCall","src":"3992:13:88"}],"functionName":{"name":"iszero","nativeSrc":"3985:6:88","nodeType":"YulIdentifier","src":"3985:6:88"},"nativeSrc":"3985:21:88","nodeType":"YulFunctionCall","src":"3985:21:88"}],"functionName":{"name":"eq","nativeSrc":"3975:2:88","nodeType":"YulIdentifier","src":"3975:2:88"},"nativeSrc":"3975:32:88","nodeType":"YulFunctionCall","src":"3975:32:88"}],"functionName":{"name":"iszero","nativeSrc":"3968:6:88","nodeType":"YulIdentifier","src":"3968:6:88"},"nativeSrc":"3968:40:88","nodeType":"YulFunctionCall","src":"3968:40:88"},"nativeSrc":"3965:60:88","nodeType":"YulIf","src":"3965:60:88"}]},"name":"validator_revert_bool","nativeSrc":"3913:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3944:5:88","nodeType":"YulTypedName","src":"3944:5:88","type":""}],"src":"3913:118:88"},{"body":{"nativeSrc":"4120:277:88","nodeType":"YulBlock","src":"4120:277:88","statements":[{"body":{"nativeSrc":"4166:16:88","nodeType":"YulBlock","src":"4166:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4175:1:88","nodeType":"YulLiteral","src":"4175:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4178:1:88","nodeType":"YulLiteral","src":"4178:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4168:6:88","nodeType":"YulIdentifier","src":"4168:6:88"},"nativeSrc":"4168:12:88","nodeType":"YulFunctionCall","src":"4168:12:88"},"nativeSrc":"4168:12:88","nodeType":"YulExpressionStatement","src":"4168:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4141:7:88","nodeType":"YulIdentifier","src":"4141:7:88"},{"name":"headStart","nativeSrc":"4150:9:88","nodeType":"YulIdentifier","src":"4150:9:88"}],"functionName":{"name":"sub","nativeSrc":"4137:3:88","nodeType":"YulIdentifier","src":"4137:3:88"},"nativeSrc":"4137:23:88","nodeType":"YulFunctionCall","src":"4137:23:88"},{"kind":"number","nativeSrc":"4162:2:88","nodeType":"YulLiteral","src":"4162:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4133:3:88","nodeType":"YulIdentifier","src":"4133:3:88"},"nativeSrc":"4133:32:88","nodeType":"YulFunctionCall","src":"4133:32:88"},"nativeSrc":"4130:52:88","nodeType":"YulIf","src":"4130:52:88"},{"nativeSrc":"4191:14:88","nodeType":"YulVariableDeclaration","src":"4191:14:88","value":{"kind":"number","nativeSrc":"4204:1:88","nodeType":"YulLiteral","src":"4204:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4195:5:88","nodeType":"YulTypedName","src":"4195:5:88","type":""}]},{"nativeSrc":"4214:32:88","nodeType":"YulAssignment","src":"4214:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4236:9:88","nodeType":"YulIdentifier","src":"4236:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4223:12:88","nodeType":"YulIdentifier","src":"4223:12:88"},"nativeSrc":"4223:23:88","nodeType":"YulFunctionCall","src":"4223:23:88"},"variableNames":[{"name":"value","nativeSrc":"4214:5:88","nodeType":"YulIdentifier","src":"4214:5:88"}]},{"nativeSrc":"4255:15:88","nodeType":"YulAssignment","src":"4255:15:88","value":{"name":"value","nativeSrc":"4265:5:88","nodeType":"YulIdentifier","src":"4265:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4255:6:88","nodeType":"YulIdentifier","src":"4255:6:88"}]},{"nativeSrc":"4279:47:88","nodeType":"YulVariableDeclaration","src":"4279:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4311:9:88","nodeType":"YulIdentifier","src":"4311:9:88"},{"kind":"number","nativeSrc":"4322:2:88","nodeType":"YulLiteral","src":"4322:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4307:3:88","nodeType":"YulIdentifier","src":"4307:3:88"},"nativeSrc":"4307:18:88","nodeType":"YulFunctionCall","src":"4307:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4294:12:88","nodeType":"YulIdentifier","src":"4294:12:88"},"nativeSrc":"4294:32:88","nodeType":"YulFunctionCall","src":"4294:32:88"},"variables":[{"name":"value_1","nativeSrc":"4283:7:88","nodeType":"YulTypedName","src":"4283:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4357:7:88","nodeType":"YulIdentifier","src":"4357:7:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"4335:21:88","nodeType":"YulIdentifier","src":"4335:21:88"},"nativeSrc":"4335:30:88","nodeType":"YulFunctionCall","src":"4335:30:88"},"nativeSrc":"4335:30:88","nodeType":"YulExpressionStatement","src":"4335:30:88"},{"nativeSrc":"4374:17:88","nodeType":"YulAssignment","src":"4374:17:88","value":{"name":"value_1","nativeSrc":"4384:7:88","nodeType":"YulIdentifier","src":"4384:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4374:6:88","nodeType":"YulIdentifier","src":"4374:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_bool","nativeSrc":"4036:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4078:9:88","nodeType":"YulTypedName","src":"4078:9:88","type":""},{"name":"dataEnd","nativeSrc":"4089:7:88","nodeType":"YulTypedName","src":"4089:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4101:6:88","nodeType":"YulTypedName","src":"4101:6:88","type":""},{"name":"value1","nativeSrc":"4109:6:88","nodeType":"YulTypedName","src":"4109:6:88","type":""}],"src":"4036:361:88"},{"body":{"nativeSrc":"4503:76:88","nodeType":"YulBlock","src":"4503:76:88","statements":[{"nativeSrc":"4513:26:88","nodeType":"YulAssignment","src":"4513:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4525:9:88","nodeType":"YulIdentifier","src":"4525:9:88"},{"kind":"number","nativeSrc":"4536:2:88","nodeType":"YulLiteral","src":"4536:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4521:3:88","nodeType":"YulIdentifier","src":"4521:3:88"},"nativeSrc":"4521:18:88","nodeType":"YulFunctionCall","src":"4521:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4513:4:88","nodeType":"YulIdentifier","src":"4513:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4555:9:88","nodeType":"YulIdentifier","src":"4555:9:88"},{"name":"value0","nativeSrc":"4566:6:88","nodeType":"YulIdentifier","src":"4566:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4548:6:88","nodeType":"YulIdentifier","src":"4548:6:88"},"nativeSrc":"4548:25:88","nodeType":"YulFunctionCall","src":"4548:25:88"},"nativeSrc":"4548:25:88","nodeType":"YulExpressionStatement","src":"4548:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4402:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4472:9:88","nodeType":"YulTypedName","src":"4472:9:88","type":""},{"name":"value0","nativeSrc":"4483:6:88","nodeType":"YulTypedName","src":"4483:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4494:4:88","nodeType":"YulTypedName","src":"4494:4:88","type":""}],"src":"4402:177:88"},{"body":{"nativeSrc":"4702:102:88","nodeType":"YulBlock","src":"4702:102:88","statements":[{"nativeSrc":"4712:26:88","nodeType":"YulAssignment","src":"4712:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4724:9:88","nodeType":"YulIdentifier","src":"4724:9:88"},{"kind":"number","nativeSrc":"4735:2:88","nodeType":"YulLiteral","src":"4735:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4720:3:88","nodeType":"YulIdentifier","src":"4720:3:88"},"nativeSrc":"4720:18:88","nodeType":"YulFunctionCall","src":"4720:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4712:4:88","nodeType":"YulIdentifier","src":"4712:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4754:9:88","nodeType":"YulIdentifier","src":"4754:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4769:6:88","nodeType":"YulIdentifier","src":"4769:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4785:3:88","nodeType":"YulLiteral","src":"4785:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4790:1:88","nodeType":"YulLiteral","src":"4790:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4781:3:88","nodeType":"YulIdentifier","src":"4781:3:88"},"nativeSrc":"4781:11:88","nodeType":"YulFunctionCall","src":"4781:11:88"},{"kind":"number","nativeSrc":"4794:1:88","nodeType":"YulLiteral","src":"4794:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4777:3:88","nodeType":"YulIdentifier","src":"4777:3:88"},"nativeSrc":"4777:19:88","nodeType":"YulFunctionCall","src":"4777:19:88"}],"functionName":{"name":"and","nativeSrc":"4765:3:88","nodeType":"YulIdentifier","src":"4765:3:88"},"nativeSrc":"4765:32:88","nodeType":"YulFunctionCall","src":"4765:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4747:6:88","nodeType":"YulIdentifier","src":"4747:6:88"},"nativeSrc":"4747:51:88","nodeType":"YulFunctionCall","src":"4747:51:88"},"nativeSrc":"4747:51:88","nodeType":"YulExpressionStatement","src":"4747:51:88"}]},"name":"abi_encode_tuple_t_contract$_IEToken_$23549__to_t_address__fromStack_reversed","nativeSrc":"4584:220:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4671:9:88","nodeType":"YulTypedName","src":"4671:9:88","type":""},{"name":"value0","nativeSrc":"4682:6:88","nodeType":"YulTypedName","src":"4682:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4693:4:88","nodeType":"YulTypedName","src":"4693:4:88","type":""}],"src":"4584:220:88"},{"body":{"nativeSrc":"4879:156:88","nodeType":"YulBlock","src":"4879:156:88","statements":[{"body":{"nativeSrc":"4925:16:88","nodeType":"YulBlock","src":"4925:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4934:1:88","nodeType":"YulLiteral","src":"4934:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4937:1:88","nodeType":"YulLiteral","src":"4937:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4927:6:88","nodeType":"YulIdentifier","src":"4927:6:88"},"nativeSrc":"4927:12:88","nodeType":"YulFunctionCall","src":"4927:12:88"},"nativeSrc":"4927:12:88","nodeType":"YulExpressionStatement","src":"4927:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4900:7:88","nodeType":"YulIdentifier","src":"4900:7:88"},{"name":"headStart","nativeSrc":"4909:9:88","nodeType":"YulIdentifier","src":"4909:9:88"}],"functionName":{"name":"sub","nativeSrc":"4896:3:88","nodeType":"YulIdentifier","src":"4896:3:88"},"nativeSrc":"4896:23:88","nodeType":"YulFunctionCall","src":"4896:23:88"},{"kind":"number","nativeSrc":"4921:2:88","nodeType":"YulLiteral","src":"4921:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4892:3:88","nodeType":"YulIdentifier","src":"4892:3:88"},"nativeSrc":"4892:32:88","nodeType":"YulFunctionCall","src":"4892:32:88"},"nativeSrc":"4889:52:88","nodeType":"YulIf","src":"4889:52:88"},{"nativeSrc":"4950:14:88","nodeType":"YulVariableDeclaration","src":"4950:14:88","value":{"kind":"number","nativeSrc":"4963:1:88","nodeType":"YulLiteral","src":"4963:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4954:5:88","nodeType":"YulTypedName","src":"4954:5:88","type":""}]},{"nativeSrc":"4973:32:88","nodeType":"YulAssignment","src":"4973:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4995:9:88","nodeType":"YulIdentifier","src":"4995:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4982:12:88","nodeType":"YulIdentifier","src":"4982:12:88"},"nativeSrc":"4982:23:88","nodeType":"YulFunctionCall","src":"4982:23:88"},"variableNames":[{"name":"value","nativeSrc":"4973:5:88","nodeType":"YulIdentifier","src":"4973:5:88"}]},{"nativeSrc":"5014:15:88","nodeType":"YulAssignment","src":"5014:15:88","value":{"name":"value","nativeSrc":"5024:5:88","nodeType":"YulIdentifier","src":"5024:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5014:6:88","nodeType":"YulIdentifier","src":"5014:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4809:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4845:9:88","nodeType":"YulTypedName","src":"4845:9:88","type":""},{"name":"dataEnd","nativeSrc":"4856:7:88","nodeType":"YulTypedName","src":"4856:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4868:6:88","nodeType":"YulTypedName","src":"4868:6:88","type":""}],"src":"4809:226:88"},{"body":{"nativeSrc":"5164:102:88","nodeType":"YulBlock","src":"5164:102:88","statements":[{"nativeSrc":"5174:26:88","nodeType":"YulAssignment","src":"5174:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5186:9:88","nodeType":"YulIdentifier","src":"5186:9:88"},{"kind":"number","nativeSrc":"5197:2:88","nodeType":"YulLiteral","src":"5197:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5182:3:88","nodeType":"YulIdentifier","src":"5182:3:88"},"nativeSrc":"5182:18:88","nodeType":"YulFunctionCall","src":"5182:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5174:4:88","nodeType":"YulIdentifier","src":"5174:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5216:9:88","nodeType":"YulIdentifier","src":"5216:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5231:6:88","nodeType":"YulIdentifier","src":"5231:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5247:3:88","nodeType":"YulLiteral","src":"5247:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5252:1:88","nodeType":"YulLiteral","src":"5252:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5243:3:88","nodeType":"YulIdentifier","src":"5243:3:88"},"nativeSrc":"5243:11:88","nodeType":"YulFunctionCall","src":"5243:11:88"},{"kind":"number","nativeSrc":"5256:1:88","nodeType":"YulLiteral","src":"5256:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5239:3:88","nodeType":"YulIdentifier","src":"5239:3:88"},"nativeSrc":"5239:19:88","nodeType":"YulFunctionCall","src":"5239:19:88"}],"functionName":{"name":"and","nativeSrc":"5227:3:88","nodeType":"YulIdentifier","src":"5227:3:88"},"nativeSrc":"5227:32:88","nodeType":"YulFunctionCall","src":"5227:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5209:6:88","nodeType":"YulIdentifier","src":"5209:6:88"},"nativeSrc":"5209:51:88","nodeType":"YulFunctionCall","src":"5209:51:88"},"nativeSrc":"5209:51:88","nodeType":"YulExpressionStatement","src":"5209:51:88"}]},"name":"abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed","nativeSrc":"5040:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5133:9:88","nodeType":"YulTypedName","src":"5133:9:88","type":""},{"name":"value0","nativeSrc":"5144:6:88","nodeType":"YulTypedName","src":"5144:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5155:4:88","nodeType":"YulTypedName","src":"5155:4:88","type":""}],"src":"5040:226:88"},{"body":{"nativeSrc":"5358:259:88","nodeType":"YulBlock","src":"5358:259:88","statements":[{"body":{"nativeSrc":"5404:16:88","nodeType":"YulBlock","src":"5404:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5413:1:88","nodeType":"YulLiteral","src":"5413:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5416:1:88","nodeType":"YulLiteral","src":"5416:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5406:6:88","nodeType":"YulIdentifier","src":"5406:6:88"},"nativeSrc":"5406:12:88","nodeType":"YulFunctionCall","src":"5406:12:88"},"nativeSrc":"5406:12:88","nodeType":"YulExpressionStatement","src":"5406:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5379:7:88","nodeType":"YulIdentifier","src":"5379:7:88"},{"name":"headStart","nativeSrc":"5388:9:88","nodeType":"YulIdentifier","src":"5388:9:88"}],"functionName":{"name":"sub","nativeSrc":"5375:3:88","nodeType":"YulIdentifier","src":"5375:3:88"},"nativeSrc":"5375:23:88","nodeType":"YulFunctionCall","src":"5375:23:88"},{"kind":"number","nativeSrc":"5400:2:88","nodeType":"YulLiteral","src":"5400:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5371:3:88","nodeType":"YulIdentifier","src":"5371:3:88"},"nativeSrc":"5371:32:88","nodeType":"YulFunctionCall","src":"5371:32:88"},"nativeSrc":"5368:52:88","nodeType":"YulIf","src":"5368:52:88"},{"nativeSrc":"5429:14:88","nodeType":"YulVariableDeclaration","src":"5429:14:88","value":{"kind":"number","nativeSrc":"5442:1:88","nodeType":"YulLiteral","src":"5442:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5433:5:88","nodeType":"YulTypedName","src":"5433:5:88","type":""}]},{"nativeSrc":"5452:32:88","nodeType":"YulAssignment","src":"5452:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5474:9:88","nodeType":"YulIdentifier","src":"5474:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5461:12:88","nodeType":"YulIdentifier","src":"5461:12:88"},"nativeSrc":"5461:23:88","nodeType":"YulFunctionCall","src":"5461:23:88"},"variableNames":[{"name":"value","nativeSrc":"5452:5:88","nodeType":"YulIdentifier","src":"5452:5:88"}]},{"nativeSrc":"5493:15:88","nodeType":"YulAssignment","src":"5493:15:88","value":{"name":"value","nativeSrc":"5503:5:88","nodeType":"YulIdentifier","src":"5503:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5493:6:88","nodeType":"YulIdentifier","src":"5493:6:88"}]},{"nativeSrc":"5517:16:88","nodeType":"YulVariableDeclaration","src":"5517:16:88","value":{"kind":"number","nativeSrc":"5532:1:88","nodeType":"YulLiteral","src":"5532:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"5521:7:88","nodeType":"YulTypedName","src":"5521:7:88","type":""}]},{"nativeSrc":"5542:43:88","nodeType":"YulAssignment","src":"5542:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5570:9:88","nodeType":"YulIdentifier","src":"5570:9:88"},{"kind":"number","nativeSrc":"5581:2:88","nodeType":"YulLiteral","src":"5581:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5566:3:88","nodeType":"YulIdentifier","src":"5566:3:88"},"nativeSrc":"5566:18:88","nodeType":"YulFunctionCall","src":"5566:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5553:12:88","nodeType":"YulIdentifier","src":"5553:12:88"},"nativeSrc":"5553:32:88","nodeType":"YulFunctionCall","src":"5553:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"5542:7:88","nodeType":"YulIdentifier","src":"5542:7:88"}]},{"nativeSrc":"5594:17:88","nodeType":"YulAssignment","src":"5594:17:88","value":{"name":"value_1","nativeSrc":"5604:7:88","nodeType":"YulIdentifier","src":"5604:7:88"},"variableNames":[{"name":"value1","nativeSrc":"5594:6:88","nodeType":"YulIdentifier","src":"5594:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"5271:346:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5316:9:88","nodeType":"YulTypedName","src":"5316:9:88","type":""},{"name":"dataEnd","nativeSrc":"5327:7:88","nodeType":"YulTypedName","src":"5327:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5339:6:88","nodeType":"YulTypedName","src":"5339:6:88","type":""},{"name":"value1","nativeSrc":"5347:6:88","nodeType":"YulTypedName","src":"5347:6:88","type":""}],"src":"5271:346:88"},{"body":{"nativeSrc":"5684:85:88","nodeType":"YulBlock","src":"5684:85:88","statements":[{"nativeSrc":"5694:29:88","nodeType":"YulAssignment","src":"5694:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"5716:6:88","nodeType":"YulIdentifier","src":"5716:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"5703:12:88","nodeType":"YulIdentifier","src":"5703:12:88"},"nativeSrc":"5703:20:88","nodeType":"YulFunctionCall","src":"5703:20:88"},"variableNames":[{"name":"value","nativeSrc":"5694:5:88","nodeType":"YulIdentifier","src":"5694:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5757:5:88","nodeType":"YulIdentifier","src":"5757:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5732:24:88","nodeType":"YulIdentifier","src":"5732:24:88"},"nativeSrc":"5732:31:88","nodeType":"YulFunctionCall","src":"5732:31:88"},"nativeSrc":"5732:31:88","nodeType":"YulExpressionStatement","src":"5732:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"5622:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5663:6:88","nodeType":"YulTypedName","src":"5663:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5674:5:88","nodeType":"YulTypedName","src":"5674:5:88","type":""}],"src":"5622:147:88"},{"body":{"nativeSrc":"5822:117:88","nodeType":"YulBlock","src":"5822:117:88","statements":[{"nativeSrc":"5832:29:88","nodeType":"YulAssignment","src":"5832:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"5854:6:88","nodeType":"YulIdentifier","src":"5854:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"5841:12:88","nodeType":"YulIdentifier","src":"5841:12:88"},"nativeSrc":"5841:20:88","nodeType":"YulFunctionCall","src":"5841:20:88"},"variableNames":[{"name":"value","nativeSrc":"5832:5:88","nodeType":"YulIdentifier","src":"5832:5:88"}]},{"body":{"nativeSrc":"5917:16:88","nodeType":"YulBlock","src":"5917:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5926:1:88","nodeType":"YulLiteral","src":"5926:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5929:1:88","nodeType":"YulLiteral","src":"5929:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5919:6:88","nodeType":"YulIdentifier","src":"5919:6:88"},"nativeSrc":"5919:12:88","nodeType":"YulFunctionCall","src":"5919:12:88"},"nativeSrc":"5919:12:88","nodeType":"YulExpressionStatement","src":"5919:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5883:5:88","nodeType":"YulIdentifier","src":"5883:5:88"},{"arguments":[{"name":"value","nativeSrc":"5894:5:88","nodeType":"YulIdentifier","src":"5894:5:88"},{"kind":"number","nativeSrc":"5901:12:88","nodeType":"YulLiteral","src":"5901:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"5890:3:88","nodeType":"YulIdentifier","src":"5890:3:88"},"nativeSrc":"5890:24:88","nodeType":"YulFunctionCall","src":"5890:24:88"}],"functionName":{"name":"eq","nativeSrc":"5880:2:88","nodeType":"YulIdentifier","src":"5880:2:88"},"nativeSrc":"5880:35:88","nodeType":"YulFunctionCall","src":"5880:35:88"}],"functionName":{"name":"iszero","nativeSrc":"5873:6:88","nodeType":"YulIdentifier","src":"5873:6:88"},"nativeSrc":"5873:43:88","nodeType":"YulFunctionCall","src":"5873:43:88"},"nativeSrc":"5870:63:88","nodeType":"YulIf","src":"5870:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"5774:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5801:6:88","nodeType":"YulTypedName","src":"5801:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5812:5:88","nodeType":"YulTypedName","src":"5812:5:88","type":""}],"src":"5774:165:88"},{"body":{"nativeSrc":"6011:1622:88","nodeType":"YulBlock","src":"6011:1622:88","statements":[{"body":{"nativeSrc":"6057:16:88","nodeType":"YulBlock","src":"6057:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6066:1:88","nodeType":"YulLiteral","src":"6066:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6069:1:88","nodeType":"YulLiteral","src":"6069:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6059:6:88","nodeType":"YulIdentifier","src":"6059:6:88"},"nativeSrc":"6059:12:88","nodeType":"YulFunctionCall","src":"6059:12:88"},"nativeSrc":"6059:12:88","nodeType":"YulExpressionStatement","src":"6059:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"6032:3:88","nodeType":"YulIdentifier","src":"6032:3:88"},{"name":"headStart","nativeSrc":"6037:9:88","nodeType":"YulIdentifier","src":"6037:9:88"}],"functionName":{"name":"sub","nativeSrc":"6028:3:88","nodeType":"YulIdentifier","src":"6028:3:88"},"nativeSrc":"6028:19:88","nodeType":"YulFunctionCall","src":"6028:19:88"},{"kind":"number","nativeSrc":"6049:6:88","nodeType":"YulLiteral","src":"6049:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"slt","nativeSrc":"6024:3:88","nodeType":"YulIdentifier","src":"6024:3:88"},"nativeSrc":"6024:32:88","nodeType":"YulFunctionCall","src":"6024:32:88"},"nativeSrc":"6021:52:88","nodeType":"YulIf","src":"6021:52:88"},{"nativeSrc":"6082:26:88","nodeType":"YulAssignment","src":"6082:26:88","value":{"arguments":[],"functionName":{"name":"allocate_memory","nativeSrc":"6091:15:88","nodeType":"YulIdentifier","src":"6091:15:88"},"nativeSrc":"6091:17:88","nodeType":"YulFunctionCall","src":"6091:17:88"},"variableNames":[{"name":"value","nativeSrc":"6082:5:88","nodeType":"YulIdentifier","src":"6082:5:88"}]},{"nativeSrc":"6117:16:88","nodeType":"YulVariableDeclaration","src":"6117:16:88","value":{"kind":"number","nativeSrc":"6132:1:88","nodeType":"YulLiteral","src":"6132:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6121:7:88","nodeType":"YulTypedName","src":"6121:7:88","type":""}]},{"nativeSrc":"6142:34:88","nodeType":"YulAssignment","src":"6142:34:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6166:9:88","nodeType":"YulIdentifier","src":"6166:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6153:12:88","nodeType":"YulIdentifier","src":"6153:12:88"},"nativeSrc":"6153:23:88","nodeType":"YulFunctionCall","src":"6153:23:88"},"variableNames":[{"name":"value_1","nativeSrc":"6142:7:88","nodeType":"YulIdentifier","src":"6142:7:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6192:5:88","nodeType":"YulIdentifier","src":"6192:5:88"},{"name":"value_1","nativeSrc":"6199:7:88","nodeType":"YulIdentifier","src":"6199:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6185:6:88","nodeType":"YulIdentifier","src":"6185:6:88"},"nativeSrc":"6185:22:88","nodeType":"YulFunctionCall","src":"6185:22:88"},"nativeSrc":"6185:22:88","nodeType":"YulExpressionStatement","src":"6185:22:88"},{"nativeSrc":"6216:16:88","nodeType":"YulVariableDeclaration","src":"6216:16:88","value":{"kind":"number","nativeSrc":"6231:1:88","nodeType":"YulLiteral","src":"6231:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"6220:7:88","nodeType":"YulTypedName","src":"6220:7:88","type":""}]},{"nativeSrc":"6241:43:88","nodeType":"YulAssignment","src":"6241:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6269:9:88","nodeType":"YulIdentifier","src":"6269:9:88"},{"kind":"number","nativeSrc":"6280:2:88","nodeType":"YulLiteral","src":"6280:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6265:3:88","nodeType":"YulIdentifier","src":"6265:3:88"},"nativeSrc":"6265:18:88","nodeType":"YulFunctionCall","src":"6265:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6252:12:88","nodeType":"YulIdentifier","src":"6252:12:88"},"nativeSrc":"6252:32:88","nodeType":"YulFunctionCall","src":"6252:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"6241:7:88","nodeType":"YulIdentifier","src":"6241:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6304:5:88","nodeType":"YulIdentifier","src":"6304:5:88"},{"kind":"number","nativeSrc":"6311:2:88","nodeType":"YulLiteral","src":"6311:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6300:3:88","nodeType":"YulIdentifier","src":"6300:3:88"},"nativeSrc":"6300:14:88","nodeType":"YulFunctionCall","src":"6300:14:88"},{"name":"value_2","nativeSrc":"6316:7:88","nodeType":"YulIdentifier","src":"6316:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6293:6:88","nodeType":"YulIdentifier","src":"6293:6:88"},"nativeSrc":"6293:31:88","nodeType":"YulFunctionCall","src":"6293:31:88"},"nativeSrc":"6293:31:88","nodeType":"YulExpressionStatement","src":"6293:31:88"},{"nativeSrc":"6333:16:88","nodeType":"YulVariableDeclaration","src":"6333:16:88","value":{"kind":"number","nativeSrc":"6348:1:88","nodeType":"YulLiteral","src":"6348:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"6337:7:88","nodeType":"YulTypedName","src":"6337:7:88","type":""}]},{"nativeSrc":"6358:43:88","nodeType":"YulAssignment","src":"6358:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6386:9:88","nodeType":"YulIdentifier","src":"6386:9:88"},{"kind":"number","nativeSrc":"6397:2:88","nodeType":"YulLiteral","src":"6397:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6382:3:88","nodeType":"YulIdentifier","src":"6382:3:88"},"nativeSrc":"6382:18:88","nodeType":"YulFunctionCall","src":"6382:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6369:12:88","nodeType":"YulIdentifier","src":"6369:12:88"},"nativeSrc":"6369:32:88","nodeType":"YulFunctionCall","src":"6369:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"6358:7:88","nodeType":"YulIdentifier","src":"6358:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6421:5:88","nodeType":"YulIdentifier","src":"6421:5:88"},{"kind":"number","nativeSrc":"6428:2:88","nodeType":"YulLiteral","src":"6428:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6417:3:88","nodeType":"YulIdentifier","src":"6417:3:88"},"nativeSrc":"6417:14:88","nodeType":"YulFunctionCall","src":"6417:14:88"},{"name":"value_3","nativeSrc":"6433:7:88","nodeType":"YulIdentifier","src":"6433:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6410:6:88","nodeType":"YulIdentifier","src":"6410:6:88"},"nativeSrc":"6410:31:88","nodeType":"YulFunctionCall","src":"6410:31:88"},"nativeSrc":"6410:31:88","nodeType":"YulExpressionStatement","src":"6410:31:88"},{"nativeSrc":"6450:16:88","nodeType":"YulVariableDeclaration","src":"6450:16:88","value":{"kind":"number","nativeSrc":"6465:1:88","nodeType":"YulLiteral","src":"6465:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"6454:7:88","nodeType":"YulTypedName","src":"6454:7:88","type":""}]},{"nativeSrc":"6475:43:88","nodeType":"YulAssignment","src":"6475:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6503:9:88","nodeType":"YulIdentifier","src":"6503:9:88"},{"kind":"number","nativeSrc":"6514:2:88","nodeType":"YulLiteral","src":"6514:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6499:3:88","nodeType":"YulIdentifier","src":"6499:3:88"},"nativeSrc":"6499:18:88","nodeType":"YulFunctionCall","src":"6499:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6486:12:88","nodeType":"YulIdentifier","src":"6486:12:88"},"nativeSrc":"6486:32:88","nodeType":"YulFunctionCall","src":"6486:32:88"},"variableNames":[{"name":"value_4","nativeSrc":"6475:7:88","nodeType":"YulIdentifier","src":"6475:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6538:5:88","nodeType":"YulIdentifier","src":"6538:5:88"},{"kind":"number","nativeSrc":"6545:2:88","nodeType":"YulLiteral","src":"6545:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6534:3:88","nodeType":"YulIdentifier","src":"6534:3:88"},"nativeSrc":"6534:14:88","nodeType":"YulFunctionCall","src":"6534:14:88"},{"name":"value_4","nativeSrc":"6550:7:88","nodeType":"YulIdentifier","src":"6550:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6527:6:88","nodeType":"YulIdentifier","src":"6527:6:88"},"nativeSrc":"6527:31:88","nodeType":"YulFunctionCall","src":"6527:31:88"},"nativeSrc":"6527:31:88","nodeType":"YulExpressionStatement","src":"6527:31:88"},{"nativeSrc":"6567:16:88","nodeType":"YulVariableDeclaration","src":"6567:16:88","value":{"kind":"number","nativeSrc":"6582:1:88","nodeType":"YulLiteral","src":"6582:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"6571:7:88","nodeType":"YulTypedName","src":"6571:7:88","type":""}]},{"nativeSrc":"6592:44:88","nodeType":"YulAssignment","src":"6592:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6620:9:88","nodeType":"YulIdentifier","src":"6620:9:88"},{"kind":"number","nativeSrc":"6631:3:88","nodeType":"YulLiteral","src":"6631:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6616:3:88","nodeType":"YulIdentifier","src":"6616:3:88"},"nativeSrc":"6616:19:88","nodeType":"YulFunctionCall","src":"6616:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6603:12:88","nodeType":"YulIdentifier","src":"6603:12:88"},"nativeSrc":"6603:33:88","nodeType":"YulFunctionCall","src":"6603:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"6592:7:88","nodeType":"YulIdentifier","src":"6592:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6656:5:88","nodeType":"YulIdentifier","src":"6656:5:88"},{"kind":"number","nativeSrc":"6663:3:88","nodeType":"YulLiteral","src":"6663:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6652:3:88","nodeType":"YulIdentifier","src":"6652:3:88"},"nativeSrc":"6652:15:88","nodeType":"YulFunctionCall","src":"6652:15:88"},{"name":"value_5","nativeSrc":"6669:7:88","nodeType":"YulIdentifier","src":"6669:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6645:6:88","nodeType":"YulIdentifier","src":"6645:6:88"},"nativeSrc":"6645:32:88","nodeType":"YulFunctionCall","src":"6645:32:88"},"nativeSrc":"6645:32:88","nodeType":"YulExpressionStatement","src":"6645:32:88"},{"nativeSrc":"6686:16:88","nodeType":"YulVariableDeclaration","src":"6686:16:88","value":{"kind":"number","nativeSrc":"6701:1:88","nodeType":"YulLiteral","src":"6701:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"6690:7:88","nodeType":"YulTypedName","src":"6690:7:88","type":""}]},{"nativeSrc":"6711:44:88","nodeType":"YulAssignment","src":"6711:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6739:9:88","nodeType":"YulIdentifier","src":"6739:9:88"},{"kind":"number","nativeSrc":"6750:3:88","nodeType":"YulLiteral","src":"6750:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6735:3:88","nodeType":"YulIdentifier","src":"6735:3:88"},"nativeSrc":"6735:19:88","nodeType":"YulFunctionCall","src":"6735:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6722:12:88","nodeType":"YulIdentifier","src":"6722:12:88"},"nativeSrc":"6722:33:88","nodeType":"YulFunctionCall","src":"6722:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"6711:7:88","nodeType":"YulIdentifier","src":"6711:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6775:5:88","nodeType":"YulIdentifier","src":"6775:5:88"},{"kind":"number","nativeSrc":"6782:3:88","nodeType":"YulLiteral","src":"6782:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6771:3:88","nodeType":"YulIdentifier","src":"6771:3:88"},"nativeSrc":"6771:15:88","nodeType":"YulFunctionCall","src":"6771:15:88"},{"name":"value_6","nativeSrc":"6788:7:88","nodeType":"YulIdentifier","src":"6788:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6764:6:88","nodeType":"YulIdentifier","src":"6764:6:88"},"nativeSrc":"6764:32:88","nodeType":"YulFunctionCall","src":"6764:32:88"},"nativeSrc":"6764:32:88","nodeType":"YulExpressionStatement","src":"6764:32:88"},{"nativeSrc":"6805:16:88","nodeType":"YulVariableDeclaration","src":"6805:16:88","value":{"kind":"number","nativeSrc":"6820:1:88","nodeType":"YulLiteral","src":"6820:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"6809:7:88","nodeType":"YulTypedName","src":"6809:7:88","type":""}]},{"nativeSrc":"6830:44:88","nodeType":"YulAssignment","src":"6830:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6858:9:88","nodeType":"YulIdentifier","src":"6858:9:88"},{"kind":"number","nativeSrc":"6869:3:88","nodeType":"YulLiteral","src":"6869:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6854:3:88","nodeType":"YulIdentifier","src":"6854:3:88"},"nativeSrc":"6854:19:88","nodeType":"YulFunctionCall","src":"6854:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6841:12:88","nodeType":"YulIdentifier","src":"6841:12:88"},"nativeSrc":"6841:33:88","nodeType":"YulFunctionCall","src":"6841:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"6830:7:88","nodeType":"YulIdentifier","src":"6830:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6894:5:88","nodeType":"YulIdentifier","src":"6894:5:88"},{"kind":"number","nativeSrc":"6901:3:88","nodeType":"YulLiteral","src":"6901:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6890:3:88","nodeType":"YulIdentifier","src":"6890:3:88"},"nativeSrc":"6890:15:88","nodeType":"YulFunctionCall","src":"6890:15:88"},{"name":"value_7","nativeSrc":"6907:7:88","nodeType":"YulIdentifier","src":"6907:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6883:6:88","nodeType":"YulIdentifier","src":"6883:6:88"},"nativeSrc":"6883:32:88","nodeType":"YulFunctionCall","src":"6883:32:88"},"nativeSrc":"6883:32:88","nodeType":"YulExpressionStatement","src":"6883:32:88"},{"nativeSrc":"6924:16:88","nodeType":"YulVariableDeclaration","src":"6924:16:88","value":{"kind":"number","nativeSrc":"6939:1:88","nodeType":"YulLiteral","src":"6939:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"6928:7:88","nodeType":"YulTypedName","src":"6928:7:88","type":""}]},{"nativeSrc":"6949:44:88","nodeType":"YulAssignment","src":"6949:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6977:9:88","nodeType":"YulIdentifier","src":"6977:9:88"},{"kind":"number","nativeSrc":"6988:3:88","nodeType":"YulLiteral","src":"6988:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"6973:3:88","nodeType":"YulIdentifier","src":"6973:3:88"},"nativeSrc":"6973:19:88","nodeType":"YulFunctionCall","src":"6973:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6960:12:88","nodeType":"YulIdentifier","src":"6960:12:88"},"nativeSrc":"6960:33:88","nodeType":"YulFunctionCall","src":"6960:33:88"},"variableNames":[{"name":"value_8","nativeSrc":"6949:7:88","nodeType":"YulIdentifier","src":"6949:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7013:5:88","nodeType":"YulIdentifier","src":"7013:5:88"},{"kind":"number","nativeSrc":"7020:3:88","nodeType":"YulLiteral","src":"7020:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"7009:3:88","nodeType":"YulIdentifier","src":"7009:3:88"},"nativeSrc":"7009:15:88","nodeType":"YulFunctionCall","src":"7009:15:88"},{"name":"value_8","nativeSrc":"7026:7:88","nodeType":"YulIdentifier","src":"7026:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7002:6:88","nodeType":"YulIdentifier","src":"7002:6:88"},"nativeSrc":"7002:32:88","nodeType":"YulFunctionCall","src":"7002:32:88"},"nativeSrc":"7002:32:88","nodeType":"YulExpressionStatement","src":"7002:32:88"},{"nativeSrc":"7043:16:88","nodeType":"YulVariableDeclaration","src":"7043:16:88","value":{"kind":"number","nativeSrc":"7058:1:88","nodeType":"YulLiteral","src":"7058:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"7047:7:88","nodeType":"YulTypedName","src":"7047:7:88","type":""}]},{"nativeSrc":"7068:44:88","nodeType":"YulAssignment","src":"7068:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7096:9:88","nodeType":"YulIdentifier","src":"7096:9:88"},{"kind":"number","nativeSrc":"7107:3:88","nodeType":"YulLiteral","src":"7107:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"7092:3:88","nodeType":"YulIdentifier","src":"7092:3:88"},"nativeSrc":"7092:19:88","nodeType":"YulFunctionCall","src":"7092:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7079:12:88","nodeType":"YulIdentifier","src":"7079:12:88"},"nativeSrc":"7079:33:88","nodeType":"YulFunctionCall","src":"7079:33:88"},"variableNames":[{"name":"value_9","nativeSrc":"7068:7:88","nodeType":"YulIdentifier","src":"7068:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7132:5:88","nodeType":"YulIdentifier","src":"7132:5:88"},{"kind":"number","nativeSrc":"7139:3:88","nodeType":"YulLiteral","src":"7139:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"7128:3:88","nodeType":"YulIdentifier","src":"7128:3:88"},"nativeSrc":"7128:15:88","nodeType":"YulFunctionCall","src":"7128:15:88"},{"name":"value_9","nativeSrc":"7145:7:88","nodeType":"YulIdentifier","src":"7145:7:88"}],"functionName":{"name":"mstore","nativeSrc":"7121:6:88","nodeType":"YulIdentifier","src":"7121:6:88"},"nativeSrc":"7121:32:88","nodeType":"YulFunctionCall","src":"7121:32:88"},"nativeSrc":"7121:32:88","nodeType":"YulExpressionStatement","src":"7121:32:88"},{"nativeSrc":"7162:17:88","nodeType":"YulVariableDeclaration","src":"7162:17:88","value":{"kind":"number","nativeSrc":"7178:1:88","nodeType":"YulLiteral","src":"7178:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"7166:8:88","nodeType":"YulTypedName","src":"7166:8:88","type":""}]},{"nativeSrc":"7188:45:88","nodeType":"YulAssignment","src":"7188:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7217:9:88","nodeType":"YulIdentifier","src":"7217:9:88"},{"kind":"number","nativeSrc":"7228:3:88","nodeType":"YulLiteral","src":"7228:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"7213:3:88","nodeType":"YulIdentifier","src":"7213:3:88"},"nativeSrc":"7213:19:88","nodeType":"YulFunctionCall","src":"7213:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7200:12:88","nodeType":"YulIdentifier","src":"7200:12:88"},"nativeSrc":"7200:33:88","nodeType":"YulFunctionCall","src":"7200:33:88"},"variableNames":[{"name":"value_10","nativeSrc":"7188:8:88","nodeType":"YulIdentifier","src":"7188:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7253:5:88","nodeType":"YulIdentifier","src":"7253:5:88"},{"kind":"number","nativeSrc":"7260:3:88","nodeType":"YulLiteral","src":"7260:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"7249:3:88","nodeType":"YulIdentifier","src":"7249:3:88"},"nativeSrc":"7249:15:88","nodeType":"YulFunctionCall","src":"7249:15:88"},{"name":"value_10","nativeSrc":"7266:8:88","nodeType":"YulIdentifier","src":"7266:8:88"}],"functionName":{"name":"mstore","nativeSrc":"7242:6:88","nodeType":"YulIdentifier","src":"7242:6:88"},"nativeSrc":"7242:33:88","nodeType":"YulFunctionCall","src":"7242:33:88"},"nativeSrc":"7242:33:88","nodeType":"YulExpressionStatement","src":"7242:33:88"},{"nativeSrc":"7284:17:88","nodeType":"YulVariableDeclaration","src":"7284:17:88","value":{"kind":"number","nativeSrc":"7300:1:88","nodeType":"YulLiteral","src":"7300:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"7288:8:88","nodeType":"YulTypedName","src":"7288:8:88","type":""}]},{"nativeSrc":"7310:45:88","nodeType":"YulAssignment","src":"7310:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7339:9:88","nodeType":"YulIdentifier","src":"7339:9:88"},{"kind":"number","nativeSrc":"7350:3:88","nodeType":"YulLiteral","src":"7350:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"7335:3:88","nodeType":"YulIdentifier","src":"7335:3:88"},"nativeSrc":"7335:19:88","nodeType":"YulFunctionCall","src":"7335:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7322:12:88","nodeType":"YulIdentifier","src":"7322:12:88"},"nativeSrc":"7322:33:88","nodeType":"YulFunctionCall","src":"7322:33:88"},"variableNames":[{"name":"value_11","nativeSrc":"7310:8:88","nodeType":"YulIdentifier","src":"7310:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7375:5:88","nodeType":"YulIdentifier","src":"7375:5:88"},{"kind":"number","nativeSrc":"7382:3:88","nodeType":"YulLiteral","src":"7382:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"7371:3:88","nodeType":"YulIdentifier","src":"7371:3:88"},"nativeSrc":"7371:15:88","nodeType":"YulFunctionCall","src":"7371:15:88"},{"name":"value_11","nativeSrc":"7388:8:88","nodeType":"YulIdentifier","src":"7388:8:88"}],"functionName":{"name":"mstore","nativeSrc":"7364:6:88","nodeType":"YulIdentifier","src":"7364:6:88"},"nativeSrc":"7364:33:88","nodeType":"YulFunctionCall","src":"7364:33:88"},"nativeSrc":"7364:33:88","nodeType":"YulExpressionStatement","src":"7364:33:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7417:5:88","nodeType":"YulIdentifier","src":"7417:5:88"},{"kind":"number","nativeSrc":"7424:3:88","nodeType":"YulLiteral","src":"7424:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"7413:3:88","nodeType":"YulIdentifier","src":"7413:3:88"},"nativeSrc":"7413:15:88","nodeType":"YulFunctionCall","src":"7413:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7466:9:88","nodeType":"YulIdentifier","src":"7466:9:88"},{"kind":"number","nativeSrc":"7477:3:88","nodeType":"YulLiteral","src":"7477:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"7462:3:88","nodeType":"YulIdentifier","src":"7462:3:88"},"nativeSrc":"7462:19:88","nodeType":"YulFunctionCall","src":"7462:19:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"7430:31:88","nodeType":"YulIdentifier","src":"7430:31:88"},"nativeSrc":"7430:52:88","nodeType":"YulFunctionCall","src":"7430:52:88"}],"functionName":{"name":"mstore","nativeSrc":"7406:6:88","nodeType":"YulIdentifier","src":"7406:6:88"},"nativeSrc":"7406:77:88","nodeType":"YulFunctionCall","src":"7406:77:88"},"nativeSrc":"7406:77:88","nodeType":"YulExpressionStatement","src":"7406:77:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7503:5:88","nodeType":"YulIdentifier","src":"7503:5:88"},{"kind":"number","nativeSrc":"7510:3:88","nodeType":"YulLiteral","src":"7510:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"7499:3:88","nodeType":"YulIdentifier","src":"7499:3:88"},"nativeSrc":"7499:15:88","nodeType":"YulFunctionCall","src":"7499:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7538:9:88","nodeType":"YulIdentifier","src":"7538:9:88"},{"kind":"number","nativeSrc":"7549:3:88","nodeType":"YulLiteral","src":"7549:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"7534:3:88","nodeType":"YulIdentifier","src":"7534:3:88"},"nativeSrc":"7534:19:88","nodeType":"YulFunctionCall","src":"7534:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7516:17:88","nodeType":"YulIdentifier","src":"7516:17:88"},"nativeSrc":"7516:38:88","nodeType":"YulFunctionCall","src":"7516:38:88"}],"functionName":{"name":"mstore","nativeSrc":"7492:6:88","nodeType":"YulIdentifier","src":"7492:6:88"},"nativeSrc":"7492:63:88","nodeType":"YulFunctionCall","src":"7492:63:88"},"nativeSrc":"7492:63:88","nodeType":"YulExpressionStatement","src":"7492:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7575:5:88","nodeType":"YulIdentifier","src":"7575:5:88"},{"kind":"number","nativeSrc":"7582:3:88","nodeType":"YulLiteral","src":"7582:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"7571:3:88","nodeType":"YulIdentifier","src":"7571:3:88"},"nativeSrc":"7571:15:88","nodeType":"YulFunctionCall","src":"7571:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7610:9:88","nodeType":"YulIdentifier","src":"7610:9:88"},{"kind":"number","nativeSrc":"7621:3:88","nodeType":"YulLiteral","src":"7621:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"7606:3:88","nodeType":"YulIdentifier","src":"7606:3:88"},"nativeSrc":"7606:19:88","nodeType":"YulFunctionCall","src":"7606:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7588:17:88","nodeType":"YulIdentifier","src":"7588:17:88"},"nativeSrc":"7588:38:88","nodeType":"YulFunctionCall","src":"7588:38:88"}],"functionName":{"name":"mstore","nativeSrc":"7564:6:88","nodeType":"YulIdentifier","src":"7564:6:88"},"nativeSrc":"7564:63:88","nodeType":"YulFunctionCall","src":"7564:63:88"},"nativeSrc":"7564:63:88","nodeType":"YulExpressionStatement","src":"7564:63:88"}]},"name":"abi_decode_struct_PolicyData","nativeSrc":"5944:1689:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5982:9:88","nodeType":"YulTypedName","src":"5982:9:88","type":""},{"name":"end","nativeSrc":"5993:3:88","nodeType":"YulTypedName","src":"5993:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6001:5:88","nodeType":"YulTypedName","src":"6001:5:88","type":""}],"src":"5944:1689:88"},{"body":{"nativeSrc":"7771:358:88","nodeType":"YulBlock","src":"7771:358:88","statements":[{"body":{"nativeSrc":"7818:16:88","nodeType":"YulBlock","src":"7818:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7827:1:88","nodeType":"YulLiteral","src":"7827:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7830:1:88","nodeType":"YulLiteral","src":"7830:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7820:6:88","nodeType":"YulIdentifier","src":"7820:6:88"},"nativeSrc":"7820:12:88","nodeType":"YulFunctionCall","src":"7820:12:88"},"nativeSrc":"7820:12:88","nodeType":"YulExpressionStatement","src":"7820:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7792:7:88","nodeType":"YulIdentifier","src":"7792:7:88"},{"name":"headStart","nativeSrc":"7801:9:88","nodeType":"YulIdentifier","src":"7801:9:88"}],"functionName":{"name":"sub","nativeSrc":"7788:3:88","nodeType":"YulIdentifier","src":"7788:3:88"},"nativeSrc":"7788:23:88","nodeType":"YulFunctionCall","src":"7788:23:88"},{"kind":"number","nativeSrc":"7813:3:88","nodeType":"YulLiteral","src":"7813:3:88","type":"","value":"512"}],"functionName":{"name":"slt","nativeSrc":"7784:3:88","nodeType":"YulIdentifier","src":"7784:3:88"},"nativeSrc":"7784:33:88","nodeType":"YulFunctionCall","src":"7784:33:88"},"nativeSrc":"7781:53:88","nodeType":"YulIf","src":"7781:53:88"},{"nativeSrc":"7843:36:88","nodeType":"YulVariableDeclaration","src":"7843:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7869:9:88","nodeType":"YulIdentifier","src":"7869:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7856:12:88","nodeType":"YulIdentifier","src":"7856:12:88"},"nativeSrc":"7856:23:88","nodeType":"YulFunctionCall","src":"7856:23:88"},"variables":[{"name":"value","nativeSrc":"7847:5:88","nodeType":"YulTypedName","src":"7847:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7913:5:88","nodeType":"YulIdentifier","src":"7913:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7888:24:88","nodeType":"YulIdentifier","src":"7888:24:88"},"nativeSrc":"7888:31:88","nodeType":"YulFunctionCall","src":"7888:31:88"},"nativeSrc":"7888:31:88","nodeType":"YulExpressionStatement","src":"7888:31:88"},{"nativeSrc":"7928:15:88","nodeType":"YulAssignment","src":"7928:15:88","value":{"name":"value","nativeSrc":"7938:5:88","nodeType":"YulIdentifier","src":"7938:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7928:6:88","nodeType":"YulIdentifier","src":"7928:6:88"}]},{"nativeSrc":"7952:67:88","nodeType":"YulAssignment","src":"7952:67:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7995:9:88","nodeType":"YulIdentifier","src":"7995:9:88"},{"kind":"number","nativeSrc":"8006:2:88","nodeType":"YulLiteral","src":"8006:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7991:3:88","nodeType":"YulIdentifier","src":"7991:3:88"},"nativeSrc":"7991:18:88","nodeType":"YulFunctionCall","src":"7991:18:88"},{"name":"dataEnd","nativeSrc":"8011:7:88","nodeType":"YulIdentifier","src":"8011:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"7962:28:88","nodeType":"YulIdentifier","src":"7962:28:88"},"nativeSrc":"7962:57:88","nodeType":"YulFunctionCall","src":"7962:57:88"},"variableNames":[{"name":"value1","nativeSrc":"7952:6:88","nodeType":"YulIdentifier","src":"7952:6:88"}]},{"nativeSrc":"8028:16:88","nodeType":"YulVariableDeclaration","src":"8028:16:88","value":{"kind":"number","nativeSrc":"8043:1:88","nodeType":"YulLiteral","src":"8043:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8032:7:88","nodeType":"YulTypedName","src":"8032:7:88","type":""}]},{"nativeSrc":"8053:44:88","nodeType":"YulAssignment","src":"8053:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8081:9:88","nodeType":"YulIdentifier","src":"8081:9:88"},{"kind":"number","nativeSrc":"8092:3:88","nodeType":"YulLiteral","src":"8092:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"8077:3:88","nodeType":"YulIdentifier","src":"8077:3:88"},"nativeSrc":"8077:19:88","nodeType":"YulFunctionCall","src":"8077:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8064:12:88","nodeType":"YulIdentifier","src":"8064:12:88"},"nativeSrc":"8064:33:88","nodeType":"YulFunctionCall","src":"8064:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"8053:7:88","nodeType":"YulIdentifier","src":"8053:7:88"}]},{"nativeSrc":"8106:17:88","nodeType":"YulAssignment","src":"8106:17:88","value":{"name":"value_1","nativeSrc":"8116:7:88","nodeType":"YulIdentifier","src":"8116:7:88"},"variableNames":[{"name":"value2","nativeSrc":"8106:6:88","nodeType":"YulIdentifier","src":"8106:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_struct$_PolicyData_$14966_memory_ptrt_uint256","nativeSrc":"7638:491:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7721:9:88","nodeType":"YulTypedName","src":"7721:9:88","type":""},{"name":"dataEnd","nativeSrc":"7732:7:88","nodeType":"YulTypedName","src":"7732:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7744:6:88","nodeType":"YulTypedName","src":"7744:6:88","type":""},{"name":"value1","nativeSrc":"7752:6:88","nodeType":"YulTypedName","src":"7752:6:88","type":""},{"name":"value2","nativeSrc":"7760:6:88","nodeType":"YulTypedName","src":"7760:6:88","type":""}],"src":"7638:491:88"},{"body":{"nativeSrc":"8221:280:88","nodeType":"YulBlock","src":"8221:280:88","statements":[{"body":{"nativeSrc":"8267:16:88","nodeType":"YulBlock","src":"8267:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8276:1:88","nodeType":"YulLiteral","src":"8276:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8279:1:88","nodeType":"YulLiteral","src":"8279:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8269:6:88","nodeType":"YulIdentifier","src":"8269:6:88"},"nativeSrc":"8269:12:88","nodeType":"YulFunctionCall","src":"8269:12:88"},"nativeSrc":"8269:12:88","nodeType":"YulExpressionStatement","src":"8269:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8242:7:88","nodeType":"YulIdentifier","src":"8242:7:88"},{"name":"headStart","nativeSrc":"8251:9:88","nodeType":"YulIdentifier","src":"8251:9:88"}],"functionName":{"name":"sub","nativeSrc":"8238:3:88","nodeType":"YulIdentifier","src":"8238:3:88"},"nativeSrc":"8238:23:88","nodeType":"YulFunctionCall","src":"8238:23:88"},{"kind":"number","nativeSrc":"8263:2:88","nodeType":"YulLiteral","src":"8263:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8234:3:88","nodeType":"YulIdentifier","src":"8234:3:88"},"nativeSrc":"8234:32:88","nodeType":"YulFunctionCall","src":"8234:32:88"},"nativeSrc":"8231:52:88","nodeType":"YulIf","src":"8231:52:88"},{"nativeSrc":"8292:14:88","nodeType":"YulVariableDeclaration","src":"8292:14:88","value":{"kind":"number","nativeSrc":"8305:1:88","nodeType":"YulLiteral","src":"8305:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8296:5:88","nodeType":"YulTypedName","src":"8296:5:88","type":""}]},{"nativeSrc":"8315:32:88","nodeType":"YulAssignment","src":"8315:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8337:9:88","nodeType":"YulIdentifier","src":"8337:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8324:12:88","nodeType":"YulIdentifier","src":"8324:12:88"},"nativeSrc":"8324:23:88","nodeType":"YulFunctionCall","src":"8324:23:88"},"variableNames":[{"name":"value","nativeSrc":"8315:5:88","nodeType":"YulIdentifier","src":"8315:5:88"}]},{"nativeSrc":"8356:15:88","nodeType":"YulAssignment","src":"8356:15:88","value":{"name":"value","nativeSrc":"8366:5:88","nodeType":"YulIdentifier","src":"8366:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8356:6:88","nodeType":"YulIdentifier","src":"8356:6:88"}]},{"nativeSrc":"8380:47:88","nodeType":"YulVariableDeclaration","src":"8380:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8412:9:88","nodeType":"YulIdentifier","src":"8412:9:88"},{"kind":"number","nativeSrc":"8423:2:88","nodeType":"YulLiteral","src":"8423:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8408:3:88","nodeType":"YulIdentifier","src":"8408:3:88"},"nativeSrc":"8408:18:88","nodeType":"YulFunctionCall","src":"8408:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8395:12:88","nodeType":"YulIdentifier","src":"8395:12:88"},"nativeSrc":"8395:32:88","nodeType":"YulFunctionCall","src":"8395:32:88"},"variables":[{"name":"value_1","nativeSrc":"8384:7:88","nodeType":"YulTypedName","src":"8384:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"8461:7:88","nodeType":"YulIdentifier","src":"8461:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8436:24:88","nodeType":"YulIdentifier","src":"8436:24:88"},"nativeSrc":"8436:33:88","nodeType":"YulFunctionCall","src":"8436:33:88"},"nativeSrc":"8436:33:88","nodeType":"YulExpressionStatement","src":"8436:33:88"},{"nativeSrc":"8478:17:88","nodeType":"YulAssignment","src":"8478:17:88","value":{"name":"value_1","nativeSrc":"8488:7:88","nodeType":"YulIdentifier","src":"8488:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8478:6:88","nodeType":"YulIdentifier","src":"8478:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nativeSrc":"8134:367:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8179:9:88","nodeType":"YulTypedName","src":"8179:9:88","type":""},{"name":"dataEnd","nativeSrc":"8190:7:88","nodeType":"YulTypedName","src":"8190:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8202:6:88","nodeType":"YulTypedName","src":"8202:6:88","type":""},{"name":"value1","nativeSrc":"8210:6:88","nodeType":"YulTypedName","src":"8210:6:88","type":""}],"src":"8134:367:88"},{"body":{"nativeSrc":"8651:213:88","nodeType":"YulBlock","src":"8651:213:88","statements":[{"body":{"nativeSrc":"8698:16:88","nodeType":"YulBlock","src":"8698:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8707:1:88","nodeType":"YulLiteral","src":"8707:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8710:1:88","nodeType":"YulLiteral","src":"8710:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8700:6:88","nodeType":"YulIdentifier","src":"8700:6:88"},"nativeSrc":"8700:12:88","nodeType":"YulFunctionCall","src":"8700:12:88"},"nativeSrc":"8700:12:88","nodeType":"YulExpressionStatement","src":"8700:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8672:7:88","nodeType":"YulIdentifier","src":"8672:7:88"},{"name":"headStart","nativeSrc":"8681:9:88","nodeType":"YulIdentifier","src":"8681:9:88"}],"functionName":{"name":"sub","nativeSrc":"8668:3:88","nodeType":"YulIdentifier","src":"8668:3:88"},"nativeSrc":"8668:23:88","nodeType":"YulFunctionCall","src":"8668:23:88"},{"kind":"number","nativeSrc":"8693:3:88","nodeType":"YulLiteral","src":"8693:3:88","type":"","value":"896"}],"functionName":{"name":"slt","nativeSrc":"8664:3:88","nodeType":"YulIdentifier","src":"8664:3:88"},"nativeSrc":"8664:33:88","nodeType":"YulFunctionCall","src":"8664:33:88"},"nativeSrc":"8661:53:88","nodeType":"YulIf","src":"8661:53:88"},{"nativeSrc":"8723:58:88","nodeType":"YulAssignment","src":"8723:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8762:9:88","nodeType":"YulIdentifier","src":"8762:9:88"},{"name":"dataEnd","nativeSrc":"8773:7:88","nodeType":"YulIdentifier","src":"8773:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"8733:28:88","nodeType":"YulIdentifier","src":"8733:28:88"},"nativeSrc":"8733:48:88","nodeType":"YulFunctionCall","src":"8733:48:88"},"variableNames":[{"name":"value0","nativeSrc":"8723:6:88","nodeType":"YulIdentifier","src":"8723:6:88"}]},{"nativeSrc":"8790:68:88","nodeType":"YulAssignment","src":"8790:68:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8833:9:88","nodeType":"YulIdentifier","src":"8833:9:88"},{"kind":"number","nativeSrc":"8844:3:88","nodeType":"YulLiteral","src":"8844:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"8829:3:88","nodeType":"YulIdentifier","src":"8829:3:88"},"nativeSrc":"8829:19:88","nodeType":"YulFunctionCall","src":"8829:19:88"},{"name":"dataEnd","nativeSrc":"8850:7:88","nodeType":"YulIdentifier","src":"8850:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"8800:28:88","nodeType":"YulIdentifier","src":"8800:28:88"},"nativeSrc":"8800:58:88","nodeType":"YulFunctionCall","src":"8800:58:88"},"variableNames":[{"name":"value1","nativeSrc":"8790:6:88","nodeType":"YulIdentifier","src":"8790:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptr","nativeSrc":"8506:358:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8609:9:88","nodeType":"YulTypedName","src":"8609:9:88","type":""},{"name":"dataEnd","nativeSrc":"8620:7:88","nodeType":"YulTypedName","src":"8620:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8632:6:88","nodeType":"YulTypedName","src":"8632:6:88","type":""},{"name":"value1","nativeSrc":"8640:6:88","nodeType":"YulTypedName","src":"8640:6:88","type":""}],"src":"8506:358:88"},{"body":{"nativeSrc":"8968:136:88","nodeType":"YulBlock","src":"8968:136:88","statements":[{"body":{"nativeSrc":"9015:16:88","nodeType":"YulBlock","src":"9015:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9024:1:88","nodeType":"YulLiteral","src":"9024:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9027:1:88","nodeType":"YulLiteral","src":"9027:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9017:6:88","nodeType":"YulIdentifier","src":"9017:6:88"},"nativeSrc":"9017:12:88","nodeType":"YulFunctionCall","src":"9017:12:88"},"nativeSrc":"9017:12:88","nodeType":"YulExpressionStatement","src":"9017:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8989:7:88","nodeType":"YulIdentifier","src":"8989:7:88"},{"name":"headStart","nativeSrc":"8998:9:88","nodeType":"YulIdentifier","src":"8998:9:88"}],"functionName":{"name":"sub","nativeSrc":"8985:3:88","nodeType":"YulIdentifier","src":"8985:3:88"},"nativeSrc":"8985:23:88","nodeType":"YulFunctionCall","src":"8985:23:88"},{"kind":"number","nativeSrc":"9010:3:88","nodeType":"YulLiteral","src":"9010:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"8981:3:88","nodeType":"YulIdentifier","src":"8981:3:88"},"nativeSrc":"8981:33:88","nodeType":"YulFunctionCall","src":"8981:33:88"},"nativeSrc":"8978:53:88","nodeType":"YulIf","src":"8978:53:88"},{"nativeSrc":"9040:58:88","nodeType":"YulAssignment","src":"9040:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9079:9:88","nodeType":"YulIdentifier","src":"9079:9:88"},{"name":"dataEnd","nativeSrc":"9090:7:88","nodeType":"YulIdentifier","src":"9090:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"9050:28:88","nodeType":"YulIdentifier","src":"9050:28:88"},"nativeSrc":"9050:48:88","nodeType":"YulFunctionCall","src":"9050:48:88"},"variableNames":[{"name":"value0","nativeSrc":"9040:6:88","nodeType":"YulIdentifier","src":"9040:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr","nativeSrc":"8869:235:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8934:9:88","nodeType":"YulTypedName","src":"8934:9:88","type":""},{"name":"dataEnd","nativeSrc":"8945:7:88","nodeType":"YulTypedName","src":"8945:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8957:6:88","nodeType":"YulTypedName","src":"8957:6:88","type":""}],"src":"8869:235:88"},{"body":{"nativeSrc":"9216:298:88","nodeType":"YulBlock","src":"9216:298:88","statements":[{"body":{"nativeSrc":"9262:16:88","nodeType":"YulBlock","src":"9262:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9271:1:88","nodeType":"YulLiteral","src":"9271:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9274:1:88","nodeType":"YulLiteral","src":"9274:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9264:6:88","nodeType":"YulIdentifier","src":"9264:6:88"},"nativeSrc":"9264:12:88","nodeType":"YulFunctionCall","src":"9264:12:88"},"nativeSrc":"9264:12:88","nodeType":"YulExpressionStatement","src":"9264:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9237:7:88","nodeType":"YulIdentifier","src":"9237:7:88"},{"name":"headStart","nativeSrc":"9246:9:88","nodeType":"YulIdentifier","src":"9246:9:88"}],"functionName":{"name":"sub","nativeSrc":"9233:3:88","nodeType":"YulIdentifier","src":"9233:3:88"},"nativeSrc":"9233:23:88","nodeType":"YulFunctionCall","src":"9233:23:88"},{"kind":"number","nativeSrc":"9258:2:88","nodeType":"YulLiteral","src":"9258:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9229:3:88","nodeType":"YulIdentifier","src":"9229:3:88"},"nativeSrc":"9229:32:88","nodeType":"YulFunctionCall","src":"9229:32:88"},"nativeSrc":"9226:52:88","nodeType":"YulIf","src":"9226:52:88"},{"nativeSrc":"9287:36:88","nodeType":"YulVariableDeclaration","src":"9287:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9313:9:88","nodeType":"YulIdentifier","src":"9313:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9300:12:88","nodeType":"YulIdentifier","src":"9300:12:88"},"nativeSrc":"9300:23:88","nodeType":"YulFunctionCall","src":"9300:23:88"},"variables":[{"name":"value","nativeSrc":"9291:5:88","nodeType":"YulTypedName","src":"9291:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9357:5:88","nodeType":"YulIdentifier","src":"9357:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9332:24:88","nodeType":"YulIdentifier","src":"9332:24:88"},"nativeSrc":"9332:31:88","nodeType":"YulFunctionCall","src":"9332:31:88"},"nativeSrc":"9332:31:88","nodeType":"YulExpressionStatement","src":"9332:31:88"},{"nativeSrc":"9372:15:88","nodeType":"YulAssignment","src":"9372:15:88","value":{"name":"value","nativeSrc":"9382:5:88","nodeType":"YulIdentifier","src":"9382:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9372:6:88","nodeType":"YulIdentifier","src":"9372:6:88"}]},{"nativeSrc":"9396:47:88","nodeType":"YulVariableDeclaration","src":"9396:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9428:9:88","nodeType":"YulIdentifier","src":"9428:9:88"},{"kind":"number","nativeSrc":"9439:2:88","nodeType":"YulLiteral","src":"9439:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9424:3:88","nodeType":"YulIdentifier","src":"9424:3:88"},"nativeSrc":"9424:18:88","nodeType":"YulFunctionCall","src":"9424:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9411:12:88","nodeType":"YulIdentifier","src":"9411:12:88"},"nativeSrc":"9411:32:88","nodeType":"YulFunctionCall","src":"9411:32:88"},"variables":[{"name":"value_1","nativeSrc":"9400:7:88","nodeType":"YulTypedName","src":"9400:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9474:7:88","nodeType":"YulIdentifier","src":"9474:7:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"9452:21:88","nodeType":"YulIdentifier","src":"9452:21:88"},"nativeSrc":"9452:30:88","nodeType":"YulFunctionCall","src":"9452:30:88"},"nativeSrc":"9452:30:88","nodeType":"YulExpressionStatement","src":"9452:30:88"},{"nativeSrc":"9491:17:88","nodeType":"YulAssignment","src":"9491:17:88","value":{"name":"value_1","nativeSrc":"9501:7:88","nodeType":"YulIdentifier","src":"9501:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9491:6:88","nodeType":"YulIdentifier","src":"9491:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool","nativeSrc":"9109:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9174:9:88","nodeType":"YulTypedName","src":"9174:9:88","type":""},{"name":"dataEnd","nativeSrc":"9185:7:88","nodeType":"YulTypedName","src":"9185:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9197:6:88","nodeType":"YulTypedName","src":"9197:6:88","type":""},{"name":"value1","nativeSrc":"9205:6:88","nodeType":"YulTypedName","src":"9205:6:88","type":""}],"src":"9109:405:88"},{"body":{"nativeSrc":"9643:102:88","nodeType":"YulBlock","src":"9643:102:88","statements":[{"nativeSrc":"9653:26:88","nodeType":"YulAssignment","src":"9653:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9665:9:88","nodeType":"YulIdentifier","src":"9665:9:88"},{"kind":"number","nativeSrc":"9676:2:88","nodeType":"YulLiteral","src":"9676:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9661:3:88","nodeType":"YulIdentifier","src":"9661:3:88"},"nativeSrc":"9661:18:88","nodeType":"YulFunctionCall","src":"9661:18:88"},"variableNames":[{"name":"tail","nativeSrc":"9653:4:88","nodeType":"YulIdentifier","src":"9653:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9695:9:88","nodeType":"YulIdentifier","src":"9695:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9710:6:88","nodeType":"YulIdentifier","src":"9710:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9726:3:88","nodeType":"YulLiteral","src":"9726:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"9731:1:88","nodeType":"YulLiteral","src":"9731:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9722:3:88","nodeType":"YulIdentifier","src":"9722:3:88"},"nativeSrc":"9722:11:88","nodeType":"YulFunctionCall","src":"9722:11:88"},{"kind":"number","nativeSrc":"9735:1:88","nodeType":"YulLiteral","src":"9735:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9718:3:88","nodeType":"YulIdentifier","src":"9718:3:88"},"nativeSrc":"9718:19:88","nodeType":"YulFunctionCall","src":"9718:19:88"}],"functionName":{"name":"and","nativeSrc":"9706:3:88","nodeType":"YulIdentifier","src":"9706:3:88"},"nativeSrc":"9706:32:88","nodeType":"YulFunctionCall","src":"9706:32:88"}],"functionName":{"name":"mstore","nativeSrc":"9688:6:88","nodeType":"YulIdentifier","src":"9688:6:88"},"nativeSrc":"9688:51:88","nodeType":"YulFunctionCall","src":"9688:51:88"},"nativeSrc":"9688:51:88","nodeType":"YulExpressionStatement","src":"9688:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"9519:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9612:9:88","nodeType":"YulTypedName","src":"9612:9:88","type":""},{"name":"value0","nativeSrc":"9623:6:88","nodeType":"YulTypedName","src":"9623:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9634:4:88","nodeType":"YulTypedName","src":"9634:4:88","type":""}],"src":"9519:226:88"},{"body":{"nativeSrc":"9855:170:88","nodeType":"YulBlock","src":"9855:170:88","statements":[{"body":{"nativeSrc":"9901:16:88","nodeType":"YulBlock","src":"9901:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9910:1:88","nodeType":"YulLiteral","src":"9910:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9913:1:88","nodeType":"YulLiteral","src":"9913:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9903:6:88","nodeType":"YulIdentifier","src":"9903:6:88"},"nativeSrc":"9903:12:88","nodeType":"YulFunctionCall","src":"9903:12:88"},"nativeSrc":"9903:12:88","nodeType":"YulExpressionStatement","src":"9903:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9876:7:88","nodeType":"YulIdentifier","src":"9876:7:88"},{"name":"headStart","nativeSrc":"9885:9:88","nodeType":"YulIdentifier","src":"9885:9:88"}],"functionName":{"name":"sub","nativeSrc":"9872:3:88","nodeType":"YulIdentifier","src":"9872:3:88"},"nativeSrc":"9872:23:88","nodeType":"YulFunctionCall","src":"9872:23:88"},{"kind":"number","nativeSrc":"9897:2:88","nodeType":"YulLiteral","src":"9897:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9868:3:88","nodeType":"YulIdentifier","src":"9868:3:88"},"nativeSrc":"9868:32:88","nodeType":"YulFunctionCall","src":"9868:32:88"},"nativeSrc":"9865:52:88","nodeType":"YulIf","src":"9865:52:88"},{"nativeSrc":"9926:29:88","nodeType":"YulVariableDeclaration","src":"9926:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9945:9:88","nodeType":"YulIdentifier","src":"9945:9:88"}],"functionName":{"name":"mload","nativeSrc":"9939:5:88","nodeType":"YulIdentifier","src":"9939:5:88"},"nativeSrc":"9939:16:88","nodeType":"YulFunctionCall","src":"9939:16:88"},"variables":[{"name":"value","nativeSrc":"9930:5:88","nodeType":"YulTypedName","src":"9930:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9989:5:88","nodeType":"YulIdentifier","src":"9989:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9964:24:88","nodeType":"YulIdentifier","src":"9964:24:88"},"nativeSrc":"9964:31:88","nodeType":"YulFunctionCall","src":"9964:31:88"},"nativeSrc":"9964:31:88","nodeType":"YulExpressionStatement","src":"9964:31:88"},{"nativeSrc":"10004:15:88","nodeType":"YulAssignment","src":"10004:15:88","value":{"name":"value","nativeSrc":"10014:5:88","nodeType":"YulIdentifier","src":"10014:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10004:6:88","nodeType":"YulIdentifier","src":"10004:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"9750:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9821:9:88","nodeType":"YulTypedName","src":"9821:9:88","type":""},{"name":"dataEnd","nativeSrc":"9832:7:88","nodeType":"YulTypedName","src":"9832:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9844:6:88","nodeType":"YulTypedName","src":"9844:6:88","type":""}],"src":"9750:275:88"},{"body":{"nativeSrc":"10209:274:88","nodeType":"YulBlock","src":"10209:274:88","statements":[{"nativeSrc":"10219:27:88","nodeType":"YulAssignment","src":"10219:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10231:9:88","nodeType":"YulIdentifier","src":"10231:9:88"},{"kind":"number","nativeSrc":"10242:3:88","nodeType":"YulLiteral","src":"10242:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10227:3:88","nodeType":"YulIdentifier","src":"10227:3:88"},"nativeSrc":"10227:19:88","nodeType":"YulFunctionCall","src":"10227:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10219:4:88","nodeType":"YulIdentifier","src":"10219:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10262:9:88","nodeType":"YulIdentifier","src":"10262:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10277:6:88","nodeType":"YulIdentifier","src":"10277:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10293:3:88","nodeType":"YulLiteral","src":"10293:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"10298:1:88","nodeType":"YulLiteral","src":"10298:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10289:3:88","nodeType":"YulIdentifier","src":"10289:3:88"},"nativeSrc":"10289:11:88","nodeType":"YulFunctionCall","src":"10289:11:88"},{"kind":"number","nativeSrc":"10302:1:88","nodeType":"YulLiteral","src":"10302:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10285:3:88","nodeType":"YulIdentifier","src":"10285:3:88"},"nativeSrc":"10285:19:88","nodeType":"YulFunctionCall","src":"10285:19:88"}],"functionName":{"name":"and","nativeSrc":"10273:3:88","nodeType":"YulIdentifier","src":"10273:3:88"},"nativeSrc":"10273:32:88","nodeType":"YulFunctionCall","src":"10273:32:88"}],"functionName":{"name":"mstore","nativeSrc":"10255:6:88","nodeType":"YulIdentifier","src":"10255:6:88"},"nativeSrc":"10255:51:88","nodeType":"YulFunctionCall","src":"10255:51:88"},"nativeSrc":"10255:51:88","nodeType":"YulExpressionStatement","src":"10255:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10326:9:88","nodeType":"YulIdentifier","src":"10326:9:88"},{"kind":"number","nativeSrc":"10337:2:88","nodeType":"YulLiteral","src":"10337:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10322:3:88","nodeType":"YulIdentifier","src":"10322:3:88"},"nativeSrc":"10322:18:88","nodeType":"YulFunctionCall","src":"10322:18:88"},{"name":"value1","nativeSrc":"10342:6:88","nodeType":"YulIdentifier","src":"10342:6:88"}],"functionName":{"name":"mstore","nativeSrc":"10315:6:88","nodeType":"YulIdentifier","src":"10315:6:88"},"nativeSrc":"10315:34:88","nodeType":"YulFunctionCall","src":"10315:34:88"},"nativeSrc":"10315:34:88","nodeType":"YulExpressionStatement","src":"10315:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10369:9:88","nodeType":"YulIdentifier","src":"10369:9:88"},{"kind":"number","nativeSrc":"10380:2:88","nodeType":"YulLiteral","src":"10380:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10365:3:88","nodeType":"YulIdentifier","src":"10365:3:88"},"nativeSrc":"10365:18:88","nodeType":"YulFunctionCall","src":"10365:18:88"},{"arguments":[{"name":"value2","nativeSrc":"10389:6:88","nodeType":"YulIdentifier","src":"10389:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10405:3:88","nodeType":"YulLiteral","src":"10405:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"10410:1:88","nodeType":"YulLiteral","src":"10410:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10401:3:88","nodeType":"YulIdentifier","src":"10401:3:88"},"nativeSrc":"10401:11:88","nodeType":"YulFunctionCall","src":"10401:11:88"},{"kind":"number","nativeSrc":"10414:1:88","nodeType":"YulLiteral","src":"10414:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10397:3:88","nodeType":"YulIdentifier","src":"10397:3:88"},"nativeSrc":"10397:19:88","nodeType":"YulFunctionCall","src":"10397:19:88"}],"functionName":{"name":"and","nativeSrc":"10385:3:88","nodeType":"YulIdentifier","src":"10385:3:88"},"nativeSrc":"10385:32:88","nodeType":"YulFunctionCall","src":"10385:32:88"}],"functionName":{"name":"mstore","nativeSrc":"10358:6:88","nodeType":"YulIdentifier","src":"10358:6:88"},"nativeSrc":"10358:60:88","nodeType":"YulFunctionCall","src":"10358:60:88"},"nativeSrc":"10358:60:88","nodeType":"YulExpressionStatement","src":"10358:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10438:9:88","nodeType":"YulIdentifier","src":"10438:9:88"},{"kind":"number","nativeSrc":"10449:2:88","nodeType":"YulLiteral","src":"10449:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10434:3:88","nodeType":"YulIdentifier","src":"10434:3:88"},"nativeSrc":"10434:18:88","nodeType":"YulFunctionCall","src":"10434:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"10468:6:88","nodeType":"YulIdentifier","src":"10468:6:88"}],"functionName":{"name":"iszero","nativeSrc":"10461:6:88","nodeType":"YulIdentifier","src":"10461:6:88"},"nativeSrc":"10461:14:88","nodeType":"YulFunctionCall","src":"10461:14:88"}],"functionName":{"name":"iszero","nativeSrc":"10454:6:88","nodeType":"YulIdentifier","src":"10454:6:88"},"nativeSrc":"10454:22:88","nodeType":"YulFunctionCall","src":"10454:22:88"}],"functionName":{"name":"mstore","nativeSrc":"10427:6:88","nodeType":"YulIdentifier","src":"10427:6:88"},"nativeSrc":"10427:50:88","nodeType":"YulFunctionCall","src":"10427:50:88"},"nativeSrc":"10427:50:88","nodeType":"YulExpressionStatement","src":"10427:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"10030:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10154:9:88","nodeType":"YulTypedName","src":"10154:9:88","type":""},{"name":"value3","nativeSrc":"10165:6:88","nodeType":"YulTypedName","src":"10165:6:88","type":""},{"name":"value2","nativeSrc":"10173:6:88","nodeType":"YulTypedName","src":"10173:6:88","type":""},{"name":"value1","nativeSrc":"10181:6:88","nodeType":"YulTypedName","src":"10181:6:88","type":""},{"name":"value0","nativeSrc":"10189:6:88","nodeType":"YulTypedName","src":"10189:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10200:4:88","nodeType":"YulTypedName","src":"10200:4:88","type":""}],"src":"10030:453:88"},{"body":{"nativeSrc":"10520:95:88","nodeType":"YulBlock","src":"10520:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10537:1:88","nodeType":"YulLiteral","src":"10537:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"10544:3:88","nodeType":"YulLiteral","src":"10544:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"10549:10:88","nodeType":"YulLiteral","src":"10549:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"10540:3:88","nodeType":"YulIdentifier","src":"10540:3:88"},"nativeSrc":"10540:20:88","nodeType":"YulFunctionCall","src":"10540:20:88"}],"functionName":{"name":"mstore","nativeSrc":"10530:6:88","nodeType":"YulIdentifier","src":"10530:6:88"},"nativeSrc":"10530:31:88","nodeType":"YulFunctionCall","src":"10530:31:88"},"nativeSrc":"10530:31:88","nodeType":"YulExpressionStatement","src":"10530:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10577:1:88","nodeType":"YulLiteral","src":"10577:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"10580:4:88","nodeType":"YulLiteral","src":"10580:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10570:6:88","nodeType":"YulIdentifier","src":"10570:6:88"},"nativeSrc":"10570:15:88","nodeType":"YulFunctionCall","src":"10570:15:88"},"nativeSrc":"10570:15:88","nodeType":"YulExpressionStatement","src":"10570:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10601:1:88","nodeType":"YulLiteral","src":"10601:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10604:4:88","nodeType":"YulLiteral","src":"10604:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10594:6:88","nodeType":"YulIdentifier","src":"10594:6:88"},"nativeSrc":"10594:15:88","nodeType":"YulFunctionCall","src":"10594:15:88"},"nativeSrc":"10594:15:88","nodeType":"YulExpressionStatement","src":"10594:15:88"}]},"name":"panic_error_0x11","nativeSrc":"10488:127:88","nodeType":"YulFunctionDefinition","src":"10488:127:88"},{"body":{"nativeSrc":"10667:169:88","nodeType":"YulBlock","src":"10667:169:88","statements":[{"nativeSrc":"10677:16:88","nodeType":"YulAssignment","src":"10677:16:88","value":{"arguments":[{"name":"x","nativeSrc":"10688:1:88","nodeType":"YulIdentifier","src":"10688:1:88"},{"name":"y","nativeSrc":"10691:1:88","nodeType":"YulIdentifier","src":"10691:1:88"}],"functionName":{"name":"add","nativeSrc":"10684:3:88","nodeType":"YulIdentifier","src":"10684:3:88"},"nativeSrc":"10684:9:88","nodeType":"YulFunctionCall","src":"10684:9:88"},"variableNames":[{"name":"sum","nativeSrc":"10677:3:88","nodeType":"YulIdentifier","src":"10677:3:88"}]},{"nativeSrc":"10702:21:88","nodeType":"YulVariableDeclaration","src":"10702:21:88","value":{"arguments":[{"name":"sum","nativeSrc":"10716:3:88","nodeType":"YulIdentifier","src":"10716:3:88"},{"name":"y","nativeSrc":"10721:1:88","nodeType":"YulIdentifier","src":"10721:1:88"}],"functionName":{"name":"slt","nativeSrc":"10712:3:88","nodeType":"YulIdentifier","src":"10712:3:88"},"nativeSrc":"10712:11:88","nodeType":"YulFunctionCall","src":"10712:11:88"},"variables":[{"name":"_1","nativeSrc":"10706:2:88","nodeType":"YulTypedName","src":"10706:2:88","type":""}]},{"nativeSrc":"10732:19:88","nodeType":"YulVariableDeclaration","src":"10732:19:88","value":{"arguments":[{"name":"x","nativeSrc":"10746:1:88","nodeType":"YulIdentifier","src":"10746:1:88"},{"kind":"number","nativeSrc":"10749:1:88","nodeType":"YulLiteral","src":"10749:1:88","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"10742:3:88","nodeType":"YulIdentifier","src":"10742:3:88"},"nativeSrc":"10742:9:88","nodeType":"YulFunctionCall","src":"10742:9:88"},"variables":[{"name":"_2","nativeSrc":"10736:2:88","nodeType":"YulTypedName","src":"10736:2:88","type":""}]},{"body":{"nativeSrc":"10808:22:88","nodeType":"YulBlock","src":"10808:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10810:16:88","nodeType":"YulIdentifier","src":"10810:16:88"},"nativeSrc":"10810:18:88","nodeType":"YulFunctionCall","src":"10810:18:88"},"nativeSrc":"10810:18:88","nodeType":"YulExpressionStatement","src":"10810:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"10777:2:88","nodeType":"YulIdentifier","src":"10777:2:88"}],"functionName":{"name":"iszero","nativeSrc":"10770:6:88","nodeType":"YulIdentifier","src":"10770:6:88"},"nativeSrc":"10770:10:88","nodeType":"YulFunctionCall","src":"10770:10:88"},{"name":"_1","nativeSrc":"10782:2:88","nodeType":"YulIdentifier","src":"10782:2:88"}],"functionName":{"name":"and","nativeSrc":"10766:3:88","nodeType":"YulIdentifier","src":"10766:3:88"},"nativeSrc":"10766:19:88","nodeType":"YulFunctionCall","src":"10766:19:88"},{"arguments":[{"name":"_2","nativeSrc":"10791:2:88","nodeType":"YulIdentifier","src":"10791:2:88"},{"arguments":[{"name":"_1","nativeSrc":"10802:2:88","nodeType":"YulIdentifier","src":"10802:2:88"}],"functionName":{"name":"iszero","nativeSrc":"10795:6:88","nodeType":"YulIdentifier","src":"10795:6:88"},"nativeSrc":"10795:10:88","nodeType":"YulFunctionCall","src":"10795:10:88"}],"functionName":{"name":"and","nativeSrc":"10787:3:88","nodeType":"YulIdentifier","src":"10787:3:88"},"nativeSrc":"10787:19:88","nodeType":"YulFunctionCall","src":"10787:19:88"}],"functionName":{"name":"or","nativeSrc":"10763:2:88","nodeType":"YulIdentifier","src":"10763:2:88"},"nativeSrc":"10763:44:88","nodeType":"YulFunctionCall","src":"10763:44:88"},"nativeSrc":"10760:70:88","nodeType":"YulIf","src":"10760:70:88"}]},"name":"checked_add_t_int256","nativeSrc":"10620:216:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10650:1:88","nodeType":"YulTypedName","src":"10650:1:88","type":""},{"name":"y","nativeSrc":"10653:1:88","nodeType":"YulTypedName","src":"10653:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"10659:3:88","nodeType":"YulTypedName","src":"10659:3:88","type":""}],"src":"10620:216:88"},{"body":{"nativeSrc":"11015:234:88","nodeType":"YulBlock","src":"11015:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11032:9:88","nodeType":"YulIdentifier","src":"11032:9:88"},{"kind":"number","nativeSrc":"11043:2:88","nodeType":"YulLiteral","src":"11043:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11025:6:88","nodeType":"YulIdentifier","src":"11025:6:88"},"nativeSrc":"11025:21:88","nodeType":"YulFunctionCall","src":"11025:21:88"},"nativeSrc":"11025:21:88","nodeType":"YulExpressionStatement","src":"11025:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11066:9:88","nodeType":"YulIdentifier","src":"11066:9:88"},{"kind":"number","nativeSrc":"11077:2:88","nodeType":"YulLiteral","src":"11077:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11062:3:88","nodeType":"YulIdentifier","src":"11062:3:88"},"nativeSrc":"11062:18:88","nodeType":"YulFunctionCall","src":"11062:18:88"},{"kind":"number","nativeSrc":"11082:2:88","nodeType":"YulLiteral","src":"11082:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"11055:6:88","nodeType":"YulIdentifier","src":"11055:6:88"},"nativeSrc":"11055:30:88","nodeType":"YulFunctionCall","src":"11055:30:88"},"nativeSrc":"11055:30:88","nodeType":"YulExpressionStatement","src":"11055:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11105:9:88","nodeType":"YulIdentifier","src":"11105:9:88"},{"kind":"number","nativeSrc":"11116:2:88","nodeType":"YulLiteral","src":"11116:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11101:3:88","nodeType":"YulIdentifier","src":"11101:3:88"},"nativeSrc":"11101:18:88","nodeType":"YulFunctionCall","src":"11101:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"11121:34:88","nodeType":"YulLiteral","src":"11121:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"11094:6:88","nodeType":"YulIdentifier","src":"11094:6:88"},"nativeSrc":"11094:62:88","nodeType":"YulFunctionCall","src":"11094:62:88"},"nativeSrc":"11094:62:88","nodeType":"YulExpressionStatement","src":"11094:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11176:9:88","nodeType":"YulIdentifier","src":"11176:9:88"},{"kind":"number","nativeSrc":"11187:2:88","nodeType":"YulLiteral","src":"11187:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11172:3:88","nodeType":"YulIdentifier","src":"11172:3:88"},"nativeSrc":"11172:18:88","nodeType":"YulFunctionCall","src":"11172:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"11192:14:88","nodeType":"YulLiteral","src":"11192:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"11165:6:88","nodeType":"YulIdentifier","src":"11165:6:88"},"nativeSrc":"11165:42:88","nodeType":"YulFunctionCall","src":"11165:42:88"},"nativeSrc":"11165:42:88","nodeType":"YulExpressionStatement","src":"11165:42:88"},{"nativeSrc":"11216:27:88","nodeType":"YulAssignment","src":"11216:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11228:9:88","nodeType":"YulIdentifier","src":"11228:9:88"},{"kind":"number","nativeSrc":"11239:3:88","nodeType":"YulLiteral","src":"11239:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11224:3:88","nodeType":"YulIdentifier","src":"11224:3:88"},"nativeSrc":"11224:19:88","nodeType":"YulFunctionCall","src":"11224:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11216:4:88","nodeType":"YulIdentifier","src":"11216:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10841:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10992:9:88","nodeType":"YulTypedName","src":"10992:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11006:4:88","nodeType":"YulTypedName","src":"11006:4:88","type":""}],"src":"10841:408:88"},{"body":{"nativeSrc":"11428:234:88","nodeType":"YulBlock","src":"11428:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11445:9:88","nodeType":"YulIdentifier","src":"11445:9:88"},{"kind":"number","nativeSrc":"11456:2:88","nodeType":"YulLiteral","src":"11456:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11438:6:88","nodeType":"YulIdentifier","src":"11438:6:88"},"nativeSrc":"11438:21:88","nodeType":"YulFunctionCall","src":"11438:21:88"},"nativeSrc":"11438:21:88","nodeType":"YulExpressionStatement","src":"11438:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11479:9:88","nodeType":"YulIdentifier","src":"11479:9:88"},{"kind":"number","nativeSrc":"11490:2:88","nodeType":"YulLiteral","src":"11490:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11475:3:88","nodeType":"YulIdentifier","src":"11475:3:88"},"nativeSrc":"11475:18:88","nodeType":"YulFunctionCall","src":"11475:18:88"},{"kind":"number","nativeSrc":"11495:2:88","nodeType":"YulLiteral","src":"11495:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"11468:6:88","nodeType":"YulIdentifier","src":"11468:6:88"},"nativeSrc":"11468:30:88","nodeType":"YulFunctionCall","src":"11468:30:88"},"nativeSrc":"11468:30:88","nodeType":"YulExpressionStatement","src":"11468:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11518:9:88","nodeType":"YulIdentifier","src":"11518:9:88"},{"kind":"number","nativeSrc":"11529:2:88","nodeType":"YulLiteral","src":"11529:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11514:3:88","nodeType":"YulIdentifier","src":"11514:3:88"},"nativeSrc":"11514:18:88","nodeType":"YulFunctionCall","src":"11514:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"11534:34:88","nodeType":"YulLiteral","src":"11534:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"11507:6:88","nodeType":"YulIdentifier","src":"11507:6:88"},"nativeSrc":"11507:62:88","nodeType":"YulFunctionCall","src":"11507:62:88"},"nativeSrc":"11507:62:88","nodeType":"YulExpressionStatement","src":"11507:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11589:9:88","nodeType":"YulIdentifier","src":"11589:9:88"},{"kind":"number","nativeSrc":"11600:2:88","nodeType":"YulLiteral","src":"11600:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11585:3:88","nodeType":"YulIdentifier","src":"11585:3:88"},"nativeSrc":"11585:18:88","nodeType":"YulFunctionCall","src":"11585:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"11605:14:88","nodeType":"YulLiteral","src":"11605:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"11578:6:88","nodeType":"YulIdentifier","src":"11578:6:88"},"nativeSrc":"11578:42:88","nodeType":"YulFunctionCall","src":"11578:42:88"},"nativeSrc":"11578:42:88","nodeType":"YulExpressionStatement","src":"11578:42:88"},{"nativeSrc":"11629:27:88","nodeType":"YulAssignment","src":"11629:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11641:9:88","nodeType":"YulIdentifier","src":"11641:9:88"},{"kind":"number","nativeSrc":"11652:3:88","nodeType":"YulLiteral","src":"11652:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11637:3:88","nodeType":"YulIdentifier","src":"11637:3:88"},"nativeSrc":"11637:19:88","nodeType":"YulFunctionCall","src":"11637:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11629:4:88","nodeType":"YulIdentifier","src":"11629:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11254:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11405:9:88","nodeType":"YulTypedName","src":"11405:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11419:4:88","nodeType":"YulTypedName","src":"11419:4:88","type":""}],"src":"11254:408:88"},{"body":{"nativeSrc":"11874:318:88","nodeType":"YulBlock","src":"11874:318:88","statements":[{"nativeSrc":"11884:27:88","nodeType":"YulAssignment","src":"11884:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11896:9:88","nodeType":"YulIdentifier","src":"11896:9:88"},{"kind":"number","nativeSrc":"11907:3:88","nodeType":"YulLiteral","src":"11907:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"11892:3:88","nodeType":"YulIdentifier","src":"11892:3:88"},"nativeSrc":"11892:19:88","nodeType":"YulFunctionCall","src":"11892:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11884:4:88","nodeType":"YulIdentifier","src":"11884:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11927:9:88","nodeType":"YulIdentifier","src":"11927:9:88"},{"arguments":[{"name":"value0","nativeSrc":"11942:6:88","nodeType":"YulIdentifier","src":"11942:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11958:3:88","nodeType":"YulLiteral","src":"11958:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"11963:1:88","nodeType":"YulLiteral","src":"11963:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"11954:3:88","nodeType":"YulIdentifier","src":"11954:3:88"},"nativeSrc":"11954:11:88","nodeType":"YulFunctionCall","src":"11954:11:88"},{"kind":"number","nativeSrc":"11967:1:88","nodeType":"YulLiteral","src":"11967:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11950:3:88","nodeType":"YulIdentifier","src":"11950:3:88"},"nativeSrc":"11950:19:88","nodeType":"YulFunctionCall","src":"11950:19:88"}],"functionName":{"name":"and","nativeSrc":"11938:3:88","nodeType":"YulIdentifier","src":"11938:3:88"},"nativeSrc":"11938:32:88","nodeType":"YulFunctionCall","src":"11938:32:88"}],"functionName":{"name":"mstore","nativeSrc":"11920:6:88","nodeType":"YulIdentifier","src":"11920:6:88"},"nativeSrc":"11920:51:88","nodeType":"YulFunctionCall","src":"11920:51:88"},"nativeSrc":"11920:51:88","nodeType":"YulExpressionStatement","src":"11920:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11991:9:88","nodeType":"YulIdentifier","src":"11991:9:88"},{"kind":"number","nativeSrc":"12002:2:88","nodeType":"YulLiteral","src":"12002:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11987:3:88","nodeType":"YulIdentifier","src":"11987:3:88"},"nativeSrc":"11987:18:88","nodeType":"YulFunctionCall","src":"11987:18:88"},{"name":"value1","nativeSrc":"12007:6:88","nodeType":"YulIdentifier","src":"12007:6:88"}],"functionName":{"name":"mstore","nativeSrc":"11980:6:88","nodeType":"YulIdentifier","src":"11980:6:88"},"nativeSrc":"11980:34:88","nodeType":"YulFunctionCall","src":"11980:34:88"},"nativeSrc":"11980:34:88","nodeType":"YulExpressionStatement","src":"11980:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12034:9:88","nodeType":"YulIdentifier","src":"12034:9:88"},{"kind":"number","nativeSrc":"12045:2:88","nodeType":"YulLiteral","src":"12045:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12030:3:88","nodeType":"YulIdentifier","src":"12030:3:88"},"nativeSrc":"12030:18:88","nodeType":"YulFunctionCall","src":"12030:18:88"},{"name":"value2","nativeSrc":"12050:6:88","nodeType":"YulIdentifier","src":"12050:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12023:6:88","nodeType":"YulIdentifier","src":"12023:6:88"},"nativeSrc":"12023:34:88","nodeType":"YulFunctionCall","src":"12023:34:88"},"nativeSrc":"12023:34:88","nodeType":"YulExpressionStatement","src":"12023:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12077:9:88","nodeType":"YulIdentifier","src":"12077:9:88"},{"kind":"number","nativeSrc":"12088:2:88","nodeType":"YulLiteral","src":"12088:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12073:3:88","nodeType":"YulIdentifier","src":"12073:3:88"},"nativeSrc":"12073:18:88","nodeType":"YulFunctionCall","src":"12073:18:88"},{"arguments":[{"name":"value3","nativeSrc":"12097:6:88","nodeType":"YulIdentifier","src":"12097:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12113:3:88","nodeType":"YulLiteral","src":"12113:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12118:1:88","nodeType":"YulLiteral","src":"12118:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12109:3:88","nodeType":"YulIdentifier","src":"12109:3:88"},"nativeSrc":"12109:11:88","nodeType":"YulFunctionCall","src":"12109:11:88"},{"kind":"number","nativeSrc":"12122:1:88","nodeType":"YulLiteral","src":"12122:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12105:3:88","nodeType":"YulIdentifier","src":"12105:3:88"},"nativeSrc":"12105:19:88","nodeType":"YulFunctionCall","src":"12105:19:88"}],"functionName":{"name":"and","nativeSrc":"12093:3:88","nodeType":"YulIdentifier","src":"12093:3:88"},"nativeSrc":"12093:32:88","nodeType":"YulFunctionCall","src":"12093:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12066:6:88","nodeType":"YulIdentifier","src":"12066:6:88"},"nativeSrc":"12066:60:88","nodeType":"YulFunctionCall","src":"12066:60:88"},"nativeSrc":"12066:60:88","nodeType":"YulExpressionStatement","src":"12066:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12146:9:88","nodeType":"YulIdentifier","src":"12146:9:88"},{"kind":"number","nativeSrc":"12157:3:88","nodeType":"YulLiteral","src":"12157:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12142:3:88","nodeType":"YulIdentifier","src":"12142:3:88"},"nativeSrc":"12142:19:88","nodeType":"YulFunctionCall","src":"12142:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"12177:6:88","nodeType":"YulIdentifier","src":"12177:6:88"}],"functionName":{"name":"iszero","nativeSrc":"12170:6:88","nodeType":"YulIdentifier","src":"12170:6:88"},"nativeSrc":"12170:14:88","nodeType":"YulFunctionCall","src":"12170:14:88"}],"functionName":{"name":"iszero","nativeSrc":"12163:6:88","nodeType":"YulIdentifier","src":"12163:6:88"},"nativeSrc":"12163:22:88","nodeType":"YulFunctionCall","src":"12163:22:88"}],"functionName":{"name":"mstore","nativeSrc":"12135:6:88","nodeType":"YulIdentifier","src":"12135:6:88"},"nativeSrc":"12135:51:88","nodeType":"YulFunctionCall","src":"12135:51:88"},"nativeSrc":"12135:51:88","nodeType":"YulExpressionStatement","src":"12135:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"11667:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11811:9:88","nodeType":"YulTypedName","src":"11811:9:88","type":""},{"name":"value4","nativeSrc":"11822:6:88","nodeType":"YulTypedName","src":"11822:6:88","type":""},{"name":"value3","nativeSrc":"11830:6:88","nodeType":"YulTypedName","src":"11830:6:88","type":""},{"name":"value2","nativeSrc":"11838:6:88","nodeType":"YulTypedName","src":"11838:6:88","type":""},{"name":"value1","nativeSrc":"11846:6:88","nodeType":"YulTypedName","src":"11846:6:88","type":""},{"name":"value0","nativeSrc":"11854:6:88","nodeType":"YulTypedName","src":"11854:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11865:4:88","nodeType":"YulTypedName","src":"11865:4:88","type":""}],"src":"11667:525:88"},{"body":{"nativeSrc":"12249:116:88","nodeType":"YulBlock","src":"12249:116:88","statements":[{"nativeSrc":"12259:20:88","nodeType":"YulAssignment","src":"12259:20:88","value":{"arguments":[{"name":"x","nativeSrc":"12274:1:88","nodeType":"YulIdentifier","src":"12274:1:88"},{"name":"y","nativeSrc":"12277:1:88","nodeType":"YulIdentifier","src":"12277:1:88"}],"functionName":{"name":"mul","nativeSrc":"12270:3:88","nodeType":"YulIdentifier","src":"12270:3:88"},"nativeSrc":"12270:9:88","nodeType":"YulFunctionCall","src":"12270:9:88"},"variableNames":[{"name":"product","nativeSrc":"12259:7:88","nodeType":"YulIdentifier","src":"12259:7:88"}]},{"body":{"nativeSrc":"12337:22:88","nodeType":"YulBlock","src":"12337:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12339:16:88","nodeType":"YulIdentifier","src":"12339:16:88"},"nativeSrc":"12339:18:88","nodeType":"YulFunctionCall","src":"12339:18:88"},"nativeSrc":"12339:18:88","nodeType":"YulExpressionStatement","src":"12339:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12308:1:88","nodeType":"YulIdentifier","src":"12308:1:88"}],"functionName":{"name":"iszero","nativeSrc":"12301:6:88","nodeType":"YulIdentifier","src":"12301:6:88"},"nativeSrc":"12301:9:88","nodeType":"YulFunctionCall","src":"12301:9:88"},{"arguments":[{"name":"y","nativeSrc":"12315:1:88","nodeType":"YulIdentifier","src":"12315:1:88"},{"arguments":[{"name":"product","nativeSrc":"12322:7:88","nodeType":"YulIdentifier","src":"12322:7:88"},{"name":"x","nativeSrc":"12331:1:88","nodeType":"YulIdentifier","src":"12331:1:88"}],"functionName":{"name":"div","nativeSrc":"12318:3:88","nodeType":"YulIdentifier","src":"12318:3:88"},"nativeSrc":"12318:15:88","nodeType":"YulFunctionCall","src":"12318:15:88"}],"functionName":{"name":"eq","nativeSrc":"12312:2:88","nodeType":"YulIdentifier","src":"12312:2:88"},"nativeSrc":"12312:22:88","nodeType":"YulFunctionCall","src":"12312:22:88"}],"functionName":{"name":"or","nativeSrc":"12298:2:88","nodeType":"YulIdentifier","src":"12298:2:88"},"nativeSrc":"12298:37:88","nodeType":"YulFunctionCall","src":"12298:37:88"}],"functionName":{"name":"iszero","nativeSrc":"12291:6:88","nodeType":"YulIdentifier","src":"12291:6:88"},"nativeSrc":"12291:45:88","nodeType":"YulFunctionCall","src":"12291:45:88"},"nativeSrc":"12288:71:88","nodeType":"YulIf","src":"12288:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"12197:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12228:1:88","nodeType":"YulTypedName","src":"12228:1:88","type":""},{"name":"y","nativeSrc":"12231:1:88","nodeType":"YulTypedName","src":"12231:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"12237:7:88","nodeType":"YulTypedName","src":"12237:7:88","type":""}],"src":"12197:168:88"},{"body":{"nativeSrc":"12450:103:88","nodeType":"YulBlock","src":"12450:103:88","statements":[{"body":{"nativeSrc":"12496:16:88","nodeType":"YulBlock","src":"12496:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12505:1:88","nodeType":"YulLiteral","src":"12505:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12508:1:88","nodeType":"YulLiteral","src":"12508:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12498:6:88","nodeType":"YulIdentifier","src":"12498:6:88"},"nativeSrc":"12498:12:88","nodeType":"YulFunctionCall","src":"12498:12:88"},"nativeSrc":"12498:12:88","nodeType":"YulExpressionStatement","src":"12498:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12471:7:88","nodeType":"YulIdentifier","src":"12471:7:88"},{"name":"headStart","nativeSrc":"12480:9:88","nodeType":"YulIdentifier","src":"12480:9:88"}],"functionName":{"name":"sub","nativeSrc":"12467:3:88","nodeType":"YulIdentifier","src":"12467:3:88"},"nativeSrc":"12467:23:88","nodeType":"YulFunctionCall","src":"12467:23:88"},{"kind":"number","nativeSrc":"12492:2:88","nodeType":"YulLiteral","src":"12492:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12463:3:88","nodeType":"YulIdentifier","src":"12463:3:88"},"nativeSrc":"12463:32:88","nodeType":"YulFunctionCall","src":"12463:32:88"},"nativeSrc":"12460:52:88","nodeType":"YulIf","src":"12460:52:88"},{"nativeSrc":"12521:26:88","nodeType":"YulAssignment","src":"12521:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12537:9:88","nodeType":"YulIdentifier","src":"12537:9:88"}],"functionName":{"name":"mload","nativeSrc":"12531:5:88","nodeType":"YulIdentifier","src":"12531:5:88"},"nativeSrc":"12531:16:88","nodeType":"YulFunctionCall","src":"12531:16:88"},"variableNames":[{"name":"value0","nativeSrc":"12521:6:88","nodeType":"YulIdentifier","src":"12521:6:88"}]}]},"name":"abi_decode_tuple_t_int256_fromMemory","nativeSrc":"12370:183:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12416:9:88","nodeType":"YulTypedName","src":"12416:9:88","type":""},{"name":"dataEnd","nativeSrc":"12427:7:88","nodeType":"YulTypedName","src":"12427:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12439:6:88","nodeType":"YulTypedName","src":"12439:6:88","type":""}],"src":"12370:183:88"},{"body":{"nativeSrc":"12606:152:88","nodeType":"YulBlock","src":"12606:152:88","statements":[{"nativeSrc":"12616:17:88","nodeType":"YulAssignment","src":"12616:17:88","value":{"arguments":[{"name":"x","nativeSrc":"12628:1:88","nodeType":"YulIdentifier","src":"12628:1:88"},{"name":"y","nativeSrc":"12631:1:88","nodeType":"YulIdentifier","src":"12631:1:88"}],"functionName":{"name":"sub","nativeSrc":"12624:3:88","nodeType":"YulIdentifier","src":"12624:3:88"},"nativeSrc":"12624:9:88","nodeType":"YulFunctionCall","src":"12624:9:88"},"variableNames":[{"name":"diff","nativeSrc":"12616:4:88","nodeType":"YulIdentifier","src":"12616:4:88"}]},{"nativeSrc":"12642:19:88","nodeType":"YulVariableDeclaration","src":"12642:19:88","value":{"arguments":[{"name":"y","nativeSrc":"12656:1:88","nodeType":"YulIdentifier","src":"12656:1:88"},{"kind":"number","nativeSrc":"12659:1:88","nodeType":"YulLiteral","src":"12659:1:88","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"12652:3:88","nodeType":"YulIdentifier","src":"12652:3:88"},"nativeSrc":"12652:9:88","nodeType":"YulFunctionCall","src":"12652:9:88"},"variables":[{"name":"_1","nativeSrc":"12646:2:88","nodeType":"YulTypedName","src":"12646:2:88","type":""}]},{"body":{"nativeSrc":"12730:22:88","nodeType":"YulBlock","src":"12730:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12732:16:88","nodeType":"YulIdentifier","src":"12732:16:88"},"nativeSrc":"12732:18:88","nodeType":"YulFunctionCall","src":"12732:18:88"},"nativeSrc":"12732:18:88","nodeType":"YulExpressionStatement","src":"12732:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12687:2:88","nodeType":"YulIdentifier","src":"12687:2:88"}],"functionName":{"name":"iszero","nativeSrc":"12680:6:88","nodeType":"YulIdentifier","src":"12680:6:88"},"nativeSrc":"12680:10:88","nodeType":"YulFunctionCall","src":"12680:10:88"},{"arguments":[{"name":"diff","nativeSrc":"12696:4:88","nodeType":"YulIdentifier","src":"12696:4:88"},{"name":"x","nativeSrc":"12702:1:88","nodeType":"YulIdentifier","src":"12702:1:88"}],"functionName":{"name":"sgt","nativeSrc":"12692:3:88","nodeType":"YulIdentifier","src":"12692:3:88"},"nativeSrc":"12692:12:88","nodeType":"YulFunctionCall","src":"12692:12:88"}],"functionName":{"name":"and","nativeSrc":"12676:3:88","nodeType":"YulIdentifier","src":"12676:3:88"},"nativeSrc":"12676:29:88","nodeType":"YulFunctionCall","src":"12676:29:88"},{"arguments":[{"name":"_1","nativeSrc":"12711:2:88","nodeType":"YulIdentifier","src":"12711:2:88"},{"arguments":[{"name":"diff","nativeSrc":"12719:4:88","nodeType":"YulIdentifier","src":"12719:4:88"},{"name":"x","nativeSrc":"12725:1:88","nodeType":"YulIdentifier","src":"12725:1:88"}],"functionName":{"name":"slt","nativeSrc":"12715:3:88","nodeType":"YulIdentifier","src":"12715:3:88"},"nativeSrc":"12715:12:88","nodeType":"YulFunctionCall","src":"12715:12:88"}],"functionName":{"name":"and","nativeSrc":"12707:3:88","nodeType":"YulIdentifier","src":"12707:3:88"},"nativeSrc":"12707:21:88","nodeType":"YulFunctionCall","src":"12707:21:88"}],"functionName":{"name":"or","nativeSrc":"12673:2:88","nodeType":"YulIdentifier","src":"12673:2:88"},"nativeSrc":"12673:56:88","nodeType":"YulFunctionCall","src":"12673:56:88"},"nativeSrc":"12670:82:88","nodeType":"YulIf","src":"12670:82:88"}]},"name":"checked_sub_t_int256","nativeSrc":"12558:200:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12588:1:88","nodeType":"YulTypedName","src":"12588:1:88","type":""},{"name":"y","nativeSrc":"12591:1:88","nodeType":"YulTypedName","src":"12591:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"12597:4:88","nodeType":"YulTypedName","src":"12597:4:88","type":""}],"src":"12558:200:88"},{"body":{"nativeSrc":"12809:171:88","nodeType":"YulBlock","src":"12809:171:88","statements":[{"body":{"nativeSrc":"12840:111:88","nodeType":"YulBlock","src":"12840:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12861:1:88","nodeType":"YulLiteral","src":"12861:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"12868:3:88","nodeType":"YulLiteral","src":"12868:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"12873:10:88","nodeType":"YulLiteral","src":"12873:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"12864:3:88","nodeType":"YulIdentifier","src":"12864:3:88"},"nativeSrc":"12864:20:88","nodeType":"YulFunctionCall","src":"12864:20:88"}],"functionName":{"name":"mstore","nativeSrc":"12854:6:88","nodeType":"YulIdentifier","src":"12854:6:88"},"nativeSrc":"12854:31:88","nodeType":"YulFunctionCall","src":"12854:31:88"},"nativeSrc":"12854:31:88","nodeType":"YulExpressionStatement","src":"12854:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12905:1:88","nodeType":"YulLiteral","src":"12905:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"12908:4:88","nodeType":"YulLiteral","src":"12908:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"12898:6:88","nodeType":"YulIdentifier","src":"12898:6:88"},"nativeSrc":"12898:15:88","nodeType":"YulFunctionCall","src":"12898:15:88"},"nativeSrc":"12898:15:88","nodeType":"YulExpressionStatement","src":"12898:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12933:1:88","nodeType":"YulLiteral","src":"12933:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12936:4:88","nodeType":"YulLiteral","src":"12936:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12926:6:88","nodeType":"YulIdentifier","src":"12926:6:88"},"nativeSrc":"12926:15:88","nodeType":"YulFunctionCall","src":"12926:15:88"},"nativeSrc":"12926:15:88","nodeType":"YulExpressionStatement","src":"12926:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"12829:1:88","nodeType":"YulIdentifier","src":"12829:1:88"}],"functionName":{"name":"iszero","nativeSrc":"12822:6:88","nodeType":"YulIdentifier","src":"12822:6:88"},"nativeSrc":"12822:9:88","nodeType":"YulFunctionCall","src":"12822:9:88"},"nativeSrc":"12819:132:88","nodeType":"YulIf","src":"12819:132:88"},{"nativeSrc":"12960:14:88","nodeType":"YulAssignment","src":"12960:14:88","value":{"arguments":[{"name":"x","nativeSrc":"12969:1:88","nodeType":"YulIdentifier","src":"12969:1:88"},{"name":"y","nativeSrc":"12972:1:88","nodeType":"YulIdentifier","src":"12972:1:88"}],"functionName":{"name":"div","nativeSrc":"12965:3:88","nodeType":"YulIdentifier","src":"12965:3:88"},"nativeSrc":"12965:9:88","nodeType":"YulFunctionCall","src":"12965:9:88"},"variableNames":[{"name":"r","nativeSrc":"12960:1:88","nodeType":"YulIdentifier","src":"12960:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"12763:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12794:1:88","nodeType":"YulTypedName","src":"12794:1:88","type":""},{"name":"y","nativeSrc":"12797:1:88","nodeType":"YulTypedName","src":"12797:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"12803:1:88","nodeType":"YulTypedName","src":"12803:1:88","type":""}],"src":"12763:217:88"},{"body":{"nativeSrc":"13159:231:88","nodeType":"YulBlock","src":"13159:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13176:9:88","nodeType":"YulIdentifier","src":"13176:9:88"},{"kind":"number","nativeSrc":"13187:2:88","nodeType":"YulLiteral","src":"13187:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13169:6:88","nodeType":"YulIdentifier","src":"13169:6:88"},"nativeSrc":"13169:21:88","nodeType":"YulFunctionCall","src":"13169:21:88"},"nativeSrc":"13169:21:88","nodeType":"YulExpressionStatement","src":"13169:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13210:9:88","nodeType":"YulIdentifier","src":"13210:9:88"},{"kind":"number","nativeSrc":"13221:2:88","nodeType":"YulLiteral","src":"13221:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13206:3:88","nodeType":"YulIdentifier","src":"13206:3:88"},"nativeSrc":"13206:18:88","nodeType":"YulFunctionCall","src":"13206:18:88"},{"kind":"number","nativeSrc":"13226:2:88","nodeType":"YulLiteral","src":"13226:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"13199:6:88","nodeType":"YulIdentifier","src":"13199:6:88"},"nativeSrc":"13199:30:88","nodeType":"YulFunctionCall","src":"13199:30:88"},"nativeSrc":"13199:30:88","nodeType":"YulExpressionStatement","src":"13199:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13249:9:88","nodeType":"YulIdentifier","src":"13249:9:88"},{"kind":"number","nativeSrc":"13260:2:88","nodeType":"YulLiteral","src":"13260:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13245:3:88","nodeType":"YulIdentifier","src":"13245:3:88"},"nativeSrc":"13245:18:88","nodeType":"YulFunctionCall","src":"13245:18:88"},{"hexValue":"56616c69646174696f6e3a206f6e6c7920757020746f203420646563696d616c","kind":"string","nativeSrc":"13265:34:88","nodeType":"YulLiteral","src":"13265:34:88","type":"","value":"Validation: only up to 4 decimal"}],"functionName":{"name":"mstore","nativeSrc":"13238:6:88","nodeType":"YulIdentifier","src":"13238:6:88"},"nativeSrc":"13238:62:88","nodeType":"YulFunctionCall","src":"13238:62:88"},"nativeSrc":"13238:62:88","nodeType":"YulExpressionStatement","src":"13238:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13320:9:88","nodeType":"YulIdentifier","src":"13320:9:88"},{"kind":"number","nativeSrc":"13331:2:88","nodeType":"YulLiteral","src":"13331:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13316:3:88","nodeType":"YulIdentifier","src":"13316:3:88"},"nativeSrc":"13316:18:88","nodeType":"YulFunctionCall","src":"13316:18:88"},{"hexValue":"7320616c6c6f776564","kind":"string","nativeSrc":"13336:11:88","nodeType":"YulLiteral","src":"13336:11:88","type":"","value":"s allowed"}],"functionName":{"name":"mstore","nativeSrc":"13309:6:88","nodeType":"YulIdentifier","src":"13309:6:88"},"nativeSrc":"13309:39:88","nodeType":"YulFunctionCall","src":"13309:39:88"},"nativeSrc":"13309:39:88","nodeType":"YulExpressionStatement","src":"13309:39:88"},{"nativeSrc":"13357:27:88","nodeType":"YulAssignment","src":"13357:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13369:9:88","nodeType":"YulIdentifier","src":"13369:9:88"},{"kind":"number","nativeSrc":"13380:3:88","nodeType":"YulLiteral","src":"13380:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13365:3:88","nodeType":"YulIdentifier","src":"13365:3:88"},"nativeSrc":"13365:19:88","nodeType":"YulFunctionCall","src":"13365:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13357:4:88","nodeType":"YulIdentifier","src":"13357:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_beb1a2cdae0d6b157b904c90c0fabe52f538ee148f0a030c572031892eca9034__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12985:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13136:9:88","nodeType":"YulTypedName","src":"13136:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13150:4:88","nodeType":"YulTypedName","src":"13150:4:88","type":""}],"src":"12985:405:88"},{"body":{"nativeSrc":"13569:231:88","nodeType":"YulBlock","src":"13569:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13586:9:88","nodeType":"YulIdentifier","src":"13586:9:88"},{"kind":"number","nativeSrc":"13597:2:88","nodeType":"YulLiteral","src":"13597:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13579:6:88","nodeType":"YulIdentifier","src":"13579:6:88"},"nativeSrc":"13579:21:88","nodeType":"YulFunctionCall","src":"13579:21:88"},"nativeSrc":"13579:21:88","nodeType":"YulExpressionStatement","src":"13579:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13620:9:88","nodeType":"YulIdentifier","src":"13620:9:88"},{"kind":"number","nativeSrc":"13631:2:88","nodeType":"YulLiteral","src":"13631:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13616:3:88","nodeType":"YulIdentifier","src":"13616:3:88"},"nativeSrc":"13616:18:88","nodeType":"YulFunctionCall","src":"13616:18:88"},{"kind":"number","nativeSrc":"13636:2:88","nodeType":"YulLiteral","src":"13636:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"13609:6:88","nodeType":"YulIdentifier","src":"13609:6:88"},"nativeSrc":"13609:30:88","nodeType":"YulFunctionCall","src":"13609:30:88"},"nativeSrc":"13609:30:88","nodeType":"YulExpressionStatement","src":"13609:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13659:9:88","nodeType":"YulIdentifier","src":"13659:9:88"},{"kind":"number","nativeSrc":"13670:2:88","nodeType":"YulLiteral","src":"13670:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13655:3:88","nodeType":"YulIdentifier","src":"13655:3:88"},"nativeSrc":"13655:18:88","nodeType":"YulFunctionCall","src":"13655:18:88"},{"hexValue":"56616c69646174696f6e3a20737572706c7573206d757374206265203e3d206d","kind":"string","nativeSrc":"13675:34:88","nodeType":"YulLiteral","src":"13675:34:88","type":"","value":"Validation: surplus must be >= m"}],"functionName":{"name":"mstore","nativeSrc":"13648:6:88","nodeType":"YulIdentifier","src":"13648:6:88"},"nativeSrc":"13648:62:88","nodeType":"YulFunctionCall","src":"13648:62:88"},"nativeSrc":"13648:62:88","nodeType":"YulExpressionStatement","src":"13648:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13730:9:88","nodeType":"YulIdentifier","src":"13730:9:88"},{"kind":"number","nativeSrc":"13741:2:88","nodeType":"YulLiteral","src":"13741:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13726:3:88","nodeType":"YulIdentifier","src":"13726:3:88"},"nativeSrc":"13726:18:88","nodeType":"YulFunctionCall","src":"13726:18:88"},{"hexValue":"617844656669636974","kind":"string","nativeSrc":"13746:11:88","nodeType":"YulLiteral","src":"13746:11:88","type":"","value":"axDeficit"}],"functionName":{"name":"mstore","nativeSrc":"13719:6:88","nodeType":"YulIdentifier","src":"13719:6:88"},"nativeSrc":"13719:39:88","nodeType":"YulFunctionCall","src":"13719:39:88"},"nativeSrc":"13719:39:88","nodeType":"YulExpressionStatement","src":"13719:39:88"},{"nativeSrc":"13767:27:88","nodeType":"YulAssignment","src":"13767:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13779:9:88","nodeType":"YulIdentifier","src":"13779:9:88"},{"kind":"number","nativeSrc":"13790:3:88","nodeType":"YulLiteral","src":"13790:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13775:3:88","nodeType":"YulIdentifier","src":"13775:3:88"},"nativeSrc":"13775:19:88","nodeType":"YulFunctionCall","src":"13775:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13767:4:88","nodeType":"YulIdentifier","src":"13767:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48dfafddd549e64c761b83ac8b5580b6b870825350af14c44e86b9dab59e527b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13395:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13546:9:88","nodeType":"YulTypedName","src":"13546:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13560:4:88","nodeType":"YulTypedName","src":"13560:4:88","type":""}],"src":"13395:405:88"},{"body":{"nativeSrc":"13848:93:88","nodeType":"YulBlock","src":"13848:93:88","statements":[{"body":{"nativeSrc":"13884:22:88","nodeType":"YulBlock","src":"13884:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"13886:16:88","nodeType":"YulIdentifier","src":"13886:16:88"},"nativeSrc":"13886:18:88","nodeType":"YulFunctionCall","src":"13886:18:88"},"nativeSrc":"13886:18:88","nodeType":"YulExpressionStatement","src":"13886:18:88"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"13864:5:88","nodeType":"YulIdentifier","src":"13864:5:88"},{"arguments":[{"kind":"number","nativeSrc":"13875:3:88","nodeType":"YulLiteral","src":"13875:3:88","type":"","value":"255"},{"kind":"number","nativeSrc":"13880:1:88","nodeType":"YulLiteral","src":"13880:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13871:3:88","nodeType":"YulIdentifier","src":"13871:3:88"},"nativeSrc":"13871:11:88","nodeType":"YulFunctionCall","src":"13871:11:88"}],"functionName":{"name":"eq","nativeSrc":"13861:2:88","nodeType":"YulIdentifier","src":"13861:2:88"},"nativeSrc":"13861:22:88","nodeType":"YulFunctionCall","src":"13861:22:88"},"nativeSrc":"13858:48:88","nodeType":"YulIf","src":"13858:48:88"},{"nativeSrc":"13915:20:88","nodeType":"YulAssignment","src":"13915:20:88","value":{"arguments":[{"kind":"number","nativeSrc":"13926:1:88","nodeType":"YulLiteral","src":"13926:1:88","type":"","value":"0"},{"name":"value","nativeSrc":"13929:5:88","nodeType":"YulIdentifier","src":"13929:5:88"}],"functionName":{"name":"sub","nativeSrc":"13922:3:88","nodeType":"YulIdentifier","src":"13922:3:88"},"nativeSrc":"13922:13:88","nodeType":"YulFunctionCall","src":"13922:13:88"},"variableNames":[{"name":"ret","nativeSrc":"13915:3:88","nodeType":"YulIdentifier","src":"13915:3:88"}]}]},"name":"negate_t_int256","nativeSrc":"13805:136:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13830:5:88","nodeType":"YulTypedName","src":"13830:5:88","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"13840:3:88","nodeType":"YulTypedName","src":"13840:3:88","type":""}],"src":"13805:136:88"},{"body":{"nativeSrc":"14120:246:88","nodeType":"YulBlock","src":"14120:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14137:9:88","nodeType":"YulIdentifier","src":"14137:9:88"},{"kind":"number","nativeSrc":"14148:2:88","nodeType":"YulLiteral","src":"14148:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14130:6:88","nodeType":"YulIdentifier","src":"14130:6:88"},"nativeSrc":"14130:21:88","nodeType":"YulFunctionCall","src":"14130:21:88"},"nativeSrc":"14130:21:88","nodeType":"YulExpressionStatement","src":"14130:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14171:9:88","nodeType":"YulIdentifier","src":"14171:9:88"},{"kind":"number","nativeSrc":"14182:2:88","nodeType":"YulLiteral","src":"14182:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14167:3:88","nodeType":"YulIdentifier","src":"14167:3:88"},"nativeSrc":"14167:18:88","nodeType":"YulFunctionCall","src":"14167:18:88"},{"kind":"number","nativeSrc":"14187:2:88","nodeType":"YulLiteral","src":"14187:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"14160:6:88","nodeType":"YulIdentifier","src":"14160:6:88"},"nativeSrc":"14160:30:88","nodeType":"YulFunctionCall","src":"14160:30:88"},"nativeSrc":"14160:30:88","nodeType":"YulExpressionStatement","src":"14160:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14210:9:88","nodeType":"YulIdentifier","src":"14210:9:88"},{"kind":"number","nativeSrc":"14221:2:88","nodeType":"YulLiteral","src":"14221:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14206:3:88","nodeType":"YulIdentifier","src":"14206:3:88"},"nativeSrc":"14206:18:88","nodeType":"YulFunctionCall","src":"14206:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"14226:34:88","nodeType":"YulLiteral","src":"14226:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"14199:6:88","nodeType":"YulIdentifier","src":"14199:6:88"},"nativeSrc":"14199:62:88","nodeType":"YulFunctionCall","src":"14199:62:88"},"nativeSrc":"14199:62:88","nodeType":"YulExpressionStatement","src":"14199:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14281:9:88","nodeType":"YulIdentifier","src":"14281:9:88"},{"kind":"number","nativeSrc":"14292:2:88","nodeType":"YulLiteral","src":"14292:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14277:3:88","nodeType":"YulIdentifier","src":"14277:3:88"},"nativeSrc":"14277:18:88","nodeType":"YulFunctionCall","src":"14277:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"14297:26:88","nodeType":"YulLiteral","src":"14297:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"14270:6:88","nodeType":"YulIdentifier","src":"14270:6:88"},"nativeSrc":"14270:54:88","nodeType":"YulFunctionCall","src":"14270:54:88"},"nativeSrc":"14270:54:88","nodeType":"YulExpressionStatement","src":"14270:54:88"},{"nativeSrc":"14333:27:88","nodeType":"YulAssignment","src":"14333:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14345:9:88","nodeType":"YulIdentifier","src":"14345:9:88"},{"kind":"number","nativeSrc":"14356:3:88","nodeType":"YulLiteral","src":"14356:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14341:3:88","nodeType":"YulIdentifier","src":"14341:3:88"},"nativeSrc":"14341:19:88","nodeType":"YulFunctionCall","src":"14341:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14333:4:88","nodeType":"YulIdentifier","src":"14333:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13946:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14097:9:88","nodeType":"YulTypedName","src":"14097:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14111:4:88","nodeType":"YulTypedName","src":"14111:4:88","type":""}],"src":"13946:420:88"},{"body":{"nativeSrc":"14545:236:88","nodeType":"YulBlock","src":"14545:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14562:9:88","nodeType":"YulIdentifier","src":"14562:9:88"},{"kind":"number","nativeSrc":"14573:2:88","nodeType":"YulLiteral","src":"14573:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14555:6:88","nodeType":"YulIdentifier","src":"14555:6:88"},"nativeSrc":"14555:21:88","nodeType":"YulFunctionCall","src":"14555:21:88"},"nativeSrc":"14555:21:88","nodeType":"YulExpressionStatement","src":"14555:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14596:9:88","nodeType":"YulIdentifier","src":"14596:9:88"},{"kind":"number","nativeSrc":"14607:2:88","nodeType":"YulLiteral","src":"14607:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14592:3:88","nodeType":"YulIdentifier","src":"14592:3:88"},"nativeSrc":"14592:18:88","nodeType":"YulFunctionCall","src":"14592:18:88"},{"kind":"number","nativeSrc":"14612:2:88","nodeType":"YulLiteral","src":"14612:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"14585:6:88","nodeType":"YulIdentifier","src":"14585:6:88"},"nativeSrc":"14585:30:88","nodeType":"YulFunctionCall","src":"14585:30:88"},"nativeSrc":"14585:30:88","nodeType":"YulExpressionStatement","src":"14585:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14635:9:88","nodeType":"YulIdentifier","src":"14635:9:88"},{"kind":"number","nativeSrc":"14646:2:88","nodeType":"YulLiteral","src":"14646:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14631:3:88","nodeType":"YulIdentifier","src":"14631:3:88"},"nativeSrc":"14631:18:88","nodeType":"YulFunctionCall","src":"14631:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"14651:34:88","nodeType":"YulLiteral","src":"14651:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"14624:6:88","nodeType":"YulIdentifier","src":"14624:6:88"},"nativeSrc":"14624:62:88","nodeType":"YulFunctionCall","src":"14624:62:88"},"nativeSrc":"14624:62:88","nodeType":"YulExpressionStatement","src":"14624:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14706:9:88","nodeType":"YulIdentifier","src":"14706:9:88"},{"kind":"number","nativeSrc":"14717:2:88","nodeType":"YulLiteral","src":"14717:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14702:3:88","nodeType":"YulIdentifier","src":"14702:3:88"},"nativeSrc":"14702:18:88","nodeType":"YulFunctionCall","src":"14702:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"14722:16:88","nodeType":"YulLiteral","src":"14722:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"14695:6:88","nodeType":"YulIdentifier","src":"14695:6:88"},"nativeSrc":"14695:44:88","nodeType":"YulFunctionCall","src":"14695:44:88"},"nativeSrc":"14695:44:88","nodeType":"YulExpressionStatement","src":"14695:44:88"},{"nativeSrc":"14748:27:88","nodeType":"YulAssignment","src":"14748:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14760:9:88","nodeType":"YulIdentifier","src":"14760:9:88"},{"kind":"number","nativeSrc":"14771:3:88","nodeType":"YulLiteral","src":"14771:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14756:3:88","nodeType":"YulIdentifier","src":"14756:3:88"},"nativeSrc":"14756:19:88","nodeType":"YulFunctionCall","src":"14756:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14748:4:88","nodeType":"YulIdentifier","src":"14748:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14371:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14522:9:88","nodeType":"YulTypedName","src":"14522:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14536:4:88","nodeType":"YulTypedName","src":"14536:4:88","type":""}],"src":"14371:410:88"},{"body":{"nativeSrc":"14893:87:88","nodeType":"YulBlock","src":"14893:87:88","statements":[{"nativeSrc":"14903:26:88","nodeType":"YulAssignment","src":"14903:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14915:9:88","nodeType":"YulIdentifier","src":"14915:9:88"},{"kind":"number","nativeSrc":"14926:2:88","nodeType":"YulLiteral","src":"14926:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14911:3:88","nodeType":"YulIdentifier","src":"14911:3:88"},"nativeSrc":"14911:18:88","nodeType":"YulFunctionCall","src":"14911:18:88"},"variableNames":[{"name":"tail","nativeSrc":"14903:4:88","nodeType":"YulIdentifier","src":"14903:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14945:9:88","nodeType":"YulIdentifier","src":"14945:9:88"},{"arguments":[{"name":"value0","nativeSrc":"14960:6:88","nodeType":"YulIdentifier","src":"14960:6:88"},{"kind":"number","nativeSrc":"14968:4:88","nodeType":"YulLiteral","src":"14968:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"14956:3:88","nodeType":"YulIdentifier","src":"14956:3:88"},"nativeSrc":"14956:17:88","nodeType":"YulFunctionCall","src":"14956:17:88"}],"functionName":{"name":"mstore","nativeSrc":"14938:6:88","nodeType":"YulIdentifier","src":"14938:6:88"},"nativeSrc":"14938:36:88","nodeType":"YulFunctionCall","src":"14938:36:88"},"nativeSrc":"14938:36:88","nodeType":"YulExpressionStatement","src":"14938:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"14786:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14862:9:88","nodeType":"YulTypedName","src":"14862:9:88","type":""},{"name":"value0","nativeSrc":"14873:6:88","nodeType":"YulTypedName","src":"14873:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14884:4:88","nodeType":"YulTypedName","src":"14884:4:88","type":""}],"src":"14786:194:88"},{"body":{"nativeSrc":"15108:135:88","nodeType":"YulBlock","src":"15108:135:88","statements":[{"nativeSrc":"15118:26:88","nodeType":"YulAssignment","src":"15118:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15130:9:88","nodeType":"YulIdentifier","src":"15130:9:88"},{"kind":"number","nativeSrc":"15141:2:88","nodeType":"YulLiteral","src":"15141:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15126:3:88","nodeType":"YulIdentifier","src":"15126:3:88"},"nativeSrc":"15126:18:88","nodeType":"YulFunctionCall","src":"15126:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15118:4:88","nodeType":"YulIdentifier","src":"15118:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15160:9:88","nodeType":"YulIdentifier","src":"15160:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"15185:6:88","nodeType":"YulIdentifier","src":"15185:6:88"}],"functionName":{"name":"iszero","nativeSrc":"15178:6:88","nodeType":"YulIdentifier","src":"15178:6:88"},"nativeSrc":"15178:14:88","nodeType":"YulFunctionCall","src":"15178:14:88"}],"functionName":{"name":"iszero","nativeSrc":"15171:6:88","nodeType":"YulIdentifier","src":"15171:6:88"},"nativeSrc":"15171:22:88","nodeType":"YulFunctionCall","src":"15171:22:88"}],"functionName":{"name":"mstore","nativeSrc":"15153:6:88","nodeType":"YulIdentifier","src":"15153:6:88"},"nativeSrc":"15153:41:88","nodeType":"YulFunctionCall","src":"15153:41:88"},"nativeSrc":"15153:41:88","nodeType":"YulExpressionStatement","src":"15153:41:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15214:9:88","nodeType":"YulIdentifier","src":"15214:9:88"},{"kind":"number","nativeSrc":"15225:2:88","nodeType":"YulLiteral","src":"15225:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15210:3:88","nodeType":"YulIdentifier","src":"15210:3:88"},"nativeSrc":"15210:18:88","nodeType":"YulFunctionCall","src":"15210:18:88"},{"name":"value1","nativeSrc":"15230:6:88","nodeType":"YulIdentifier","src":"15230:6:88"}],"functionName":{"name":"mstore","nativeSrc":"15203:6:88","nodeType":"YulIdentifier","src":"15203:6:88"},"nativeSrc":"15203:34:88","nodeType":"YulFunctionCall","src":"15203:34:88"},"nativeSrc":"15203:34:88","nodeType":"YulExpressionStatement","src":"15203:34:88"}]},"name":"abi_encode_tuple_t_bool_t_uint256__to_t_bool_t_uint256__fromStack_reversed","nativeSrc":"14985:258:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15069:9:88","nodeType":"YulTypedName","src":"15069:9:88","type":""},{"name":"value1","nativeSrc":"15080:6:88","nodeType":"YulTypedName","src":"15080:6:88","type":""},{"name":"value0","nativeSrc":"15088:6:88","nodeType":"YulTypedName","src":"15088:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15099:4:88","nodeType":"YulTypedName","src":"15099:4:88","type":""}],"src":"14985:258:88"},{"body":{"nativeSrc":"15422:181:88","nodeType":"YulBlock","src":"15422:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15439:9:88","nodeType":"YulIdentifier","src":"15439:9:88"},{"kind":"number","nativeSrc":"15450:2:88","nodeType":"YulLiteral","src":"15450:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15432:6:88","nodeType":"YulIdentifier","src":"15432:6:88"},"nativeSrc":"15432:21:88","nodeType":"YulFunctionCall","src":"15432:21:88"},"nativeSrc":"15432:21:88","nodeType":"YulExpressionStatement","src":"15432:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15473:9:88","nodeType":"YulIdentifier","src":"15473:9:88"},{"kind":"number","nativeSrc":"15484:2:88","nodeType":"YulLiteral","src":"15484:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15469:3:88","nodeType":"YulIdentifier","src":"15469:3:88"},"nativeSrc":"15469:18:88","nodeType":"YulFunctionCall","src":"15469:18:88"},{"kind":"number","nativeSrc":"15489:2:88","nodeType":"YulLiteral","src":"15489:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"15462:6:88","nodeType":"YulIdentifier","src":"15462:6:88"},"nativeSrc":"15462:30:88","nodeType":"YulFunctionCall","src":"15462:30:88"},"nativeSrc":"15462:30:88","nodeType":"YulExpressionStatement","src":"15462:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15512:9:88","nodeType":"YulIdentifier","src":"15512:9:88"},{"kind":"number","nativeSrc":"15523:2:88","nodeType":"YulLiteral","src":"15523:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15508:3:88","nodeType":"YulIdentifier","src":"15508:3:88"},"nativeSrc":"15508:18:88","nodeType":"YulFunctionCall","src":"15508:18:88"},{"hexValue":"56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564","kind":"string","nativeSrc":"15528:33:88","nodeType":"YulLiteral","src":"15528:33:88","type":"","value":"Validation: no decimals allowed"}],"functionName":{"name":"mstore","nativeSrc":"15501:6:88","nodeType":"YulIdentifier","src":"15501:6:88"},"nativeSrc":"15501:61:88","nodeType":"YulFunctionCall","src":"15501:61:88"},"nativeSrc":"15501:61:88","nodeType":"YulExpressionStatement","src":"15501:61:88"},{"nativeSrc":"15571:26:88","nodeType":"YulAssignment","src":"15571:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15583:9:88","nodeType":"YulIdentifier","src":"15583:9:88"},{"kind":"number","nativeSrc":"15594:2:88","nodeType":"YulLiteral","src":"15594:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15579:3:88","nodeType":"YulIdentifier","src":"15579:3:88"},"nativeSrc":"15579:18:88","nodeType":"YulFunctionCall","src":"15579:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15571:4:88","nodeType":"YulIdentifier","src":"15571:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15248:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15399:9:88","nodeType":"YulTypedName","src":"15399:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15413:4:88","nodeType":"YulTypedName","src":"15413:4:88","type":""}],"src":"15248:355:88"},{"body":{"nativeSrc":"15657:79:88","nodeType":"YulBlock","src":"15657:79:88","statements":[{"nativeSrc":"15667:17:88","nodeType":"YulAssignment","src":"15667:17:88","value":{"arguments":[{"name":"x","nativeSrc":"15679:1:88","nodeType":"YulIdentifier","src":"15679:1:88"},{"name":"y","nativeSrc":"15682:1:88","nodeType":"YulIdentifier","src":"15682:1:88"}],"functionName":{"name":"sub","nativeSrc":"15675:3:88","nodeType":"YulIdentifier","src":"15675:3:88"},"nativeSrc":"15675:9:88","nodeType":"YulFunctionCall","src":"15675:9:88"},"variableNames":[{"name":"diff","nativeSrc":"15667:4:88","nodeType":"YulIdentifier","src":"15667:4:88"}]},{"body":{"nativeSrc":"15708:22:88","nodeType":"YulBlock","src":"15708:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15710:16:88","nodeType":"YulIdentifier","src":"15710:16:88"},"nativeSrc":"15710:18:88","nodeType":"YulFunctionCall","src":"15710:18:88"},"nativeSrc":"15710:18:88","nodeType":"YulExpressionStatement","src":"15710:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"15699:4:88","nodeType":"YulIdentifier","src":"15699:4:88"},{"name":"x","nativeSrc":"15705:1:88","nodeType":"YulIdentifier","src":"15705:1:88"}],"functionName":{"name":"gt","nativeSrc":"15696:2:88","nodeType":"YulIdentifier","src":"15696:2:88"},"nativeSrc":"15696:11:88","nodeType":"YulFunctionCall","src":"15696:11:88"},"nativeSrc":"15693:37:88","nodeType":"YulIf","src":"15693:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"15608:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"15639:1:88","nodeType":"YulTypedName","src":"15639:1:88","type":""},{"name":"y","nativeSrc":"15642:1:88","nodeType":"YulTypedName","src":"15642:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"15648:4:88","nodeType":"YulTypedName","src":"15648:4:88","type":""}],"src":"15608:128:88"},{"body":{"nativeSrc":"15915:245:88","nodeType":"YulBlock","src":"15915:245:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15932:9:88","nodeType":"YulIdentifier","src":"15932:9:88"},{"kind":"number","nativeSrc":"15943:2:88","nodeType":"YulLiteral","src":"15943:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15925:6:88","nodeType":"YulIdentifier","src":"15925:6:88"},"nativeSrc":"15925:21:88","nodeType":"YulFunctionCall","src":"15925:21:88"},"nativeSrc":"15925:21:88","nodeType":"YulExpressionStatement","src":"15925:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15966:9:88","nodeType":"YulIdentifier","src":"15966:9:88"},{"kind":"number","nativeSrc":"15977:2:88","nodeType":"YulLiteral","src":"15977:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15962:3:88","nodeType":"YulIdentifier","src":"15962:3:88"},"nativeSrc":"15962:18:88","nodeType":"YulFunctionCall","src":"15962:18:88"},{"kind":"number","nativeSrc":"15982:2:88","nodeType":"YulLiteral","src":"15982:2:88","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"15955:6:88","nodeType":"YulIdentifier","src":"15955:6:88"},"nativeSrc":"15955:30:88","nodeType":"YulFunctionCall","src":"15955:30:88"},"nativeSrc":"15955:30:88","nodeType":"YulExpressionStatement","src":"15955:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16005:9:88","nodeType":"YulIdentifier","src":"16005:9:88"},{"kind":"number","nativeSrc":"16016:2:88","nodeType":"YulLiteral","src":"16016:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16001:3:88","nodeType":"YulIdentifier","src":"16001:3:88"},"nativeSrc":"16001:18:88","nodeType":"YulFunctionCall","src":"16001:18:88"},{"hexValue":"5072656d69756d734163636f756e743a2064657374696e6174696f6e2063616e","kind":"string","nativeSrc":"16021:34:88","nodeType":"YulLiteral","src":"16021:34:88","type":"","value":"PremiumsAccount: destination can"}],"functionName":{"name":"mstore","nativeSrc":"15994:6:88","nodeType":"YulIdentifier","src":"15994:6:88"},"nativeSrc":"15994:62:88","nodeType":"YulFunctionCall","src":"15994:62:88"},"nativeSrc":"15994:62:88","nodeType":"YulExpressionStatement","src":"15994:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16076:9:88","nodeType":"YulIdentifier","src":"16076:9:88"},{"kind":"number","nativeSrc":"16087:2:88","nodeType":"YulLiteral","src":"16087:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16072:3:88","nodeType":"YulIdentifier","src":"16072:3:88"},"nativeSrc":"16072:18:88","nodeType":"YulFunctionCall","src":"16072:18:88"},{"hexValue":"6e6f7420626520746865207a65726f2061646472657373","kind":"string","nativeSrc":"16092:25:88","nodeType":"YulLiteral","src":"16092:25:88","type":"","value":"not be the zero address"}],"functionName":{"name":"mstore","nativeSrc":"16065:6:88","nodeType":"YulIdentifier","src":"16065:6:88"},"nativeSrc":"16065:53:88","nodeType":"YulFunctionCall","src":"16065:53:88"},"nativeSrc":"16065:53:88","nodeType":"YulExpressionStatement","src":"16065:53:88"},{"nativeSrc":"16127:27:88","nodeType":"YulAssignment","src":"16127:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16139:9:88","nodeType":"YulIdentifier","src":"16139:9:88"},{"kind":"number","nativeSrc":"16150:3:88","nodeType":"YulLiteral","src":"16150:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16135:3:88","nodeType":"YulIdentifier","src":"16135:3:88"},"nativeSrc":"16135:19:88","nodeType":"YulFunctionCall","src":"16135:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16127:4:88","nodeType":"YulIdentifier","src":"16127:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_05c3a31a2f127d85ad0695421cb22bc9d1a6204afb4738d719d773ecd2796be9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15741:419:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15892:9:88","nodeType":"YulTypedName","src":"15892:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15906:4:88","nodeType":"YulTypedName","src":"15906:4:88","type":""}],"src":"15741:419:88"},{"body":{"nativeSrc":"16339:173:88","nodeType":"YulBlock","src":"16339:173:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16356:9:88","nodeType":"YulIdentifier","src":"16356:9:88"},{"kind":"number","nativeSrc":"16367:2:88","nodeType":"YulLiteral","src":"16367:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16349:6:88","nodeType":"YulIdentifier","src":"16349:6:88"},"nativeSrc":"16349:21:88","nodeType":"YulFunctionCall","src":"16349:21:88"},"nativeSrc":"16349:21:88","nodeType":"YulExpressionStatement","src":"16349:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16390:9:88","nodeType":"YulIdentifier","src":"16390:9:88"},{"kind":"number","nativeSrc":"16401:2:88","nodeType":"YulLiteral","src":"16401:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16386:3:88","nodeType":"YulIdentifier","src":"16386:3:88"},"nativeSrc":"16386:18:88","nodeType":"YulFunctionCall","src":"16386:18:88"},{"kind":"number","nativeSrc":"16406:2:88","nodeType":"YulLiteral","src":"16406:2:88","type":"","value":"23"}],"functionName":{"name":"mstore","nativeSrc":"16379:6:88","nodeType":"YulIdentifier","src":"16379:6:88"},"nativeSrc":"16379:30:88","nodeType":"YulFunctionCall","src":"16379:30:88"},"nativeSrc":"16379:30:88","nodeType":"YulExpressionStatement","src":"16379:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16429:9:88","nodeType":"YulIdentifier","src":"16429:9:88"},{"kind":"number","nativeSrc":"16440:2:88","nodeType":"YulLiteral","src":"16440:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16425:3:88","nodeType":"YulIdentifier","src":"16425:3:88"},"nativeSrc":"16425:18:88","nodeType":"YulFunctionCall","src":"16425:18:88"},{"hexValue":"4e6f207072656d69756d7320746f207769746864726177","kind":"string","nativeSrc":"16445:25:88","nodeType":"YulLiteral","src":"16445:25:88","type":"","value":"No premiums to withdraw"}],"functionName":{"name":"mstore","nativeSrc":"16418:6:88","nodeType":"YulIdentifier","src":"16418:6:88"},"nativeSrc":"16418:53:88","nodeType":"YulFunctionCall","src":"16418:53:88"},"nativeSrc":"16418:53:88","nodeType":"YulExpressionStatement","src":"16418:53:88"},{"nativeSrc":"16480:26:88","nodeType":"YulAssignment","src":"16480:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16492:9:88","nodeType":"YulIdentifier","src":"16492:9:88"},{"kind":"number","nativeSrc":"16503:2:88","nodeType":"YulLiteral","src":"16503:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16488:3:88","nodeType":"YulIdentifier","src":"16488:3:88"},"nativeSrc":"16488:18:88","nodeType":"YulFunctionCall","src":"16488:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16480:4:88","nodeType":"YulIdentifier","src":"16480:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_2dd17c9d4ecea5478e08d5e7aae2580c553b0dd1578809a01b859af596738c4a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16165:347:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16316:9:88","nodeType":"YulTypedName","src":"16316:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16330:4:88","nodeType":"YulTypedName","src":"16330:4:88","type":""}],"src":"16165:347:88"},{"body":{"nativeSrc":"16691:176:88","nodeType":"YulBlock","src":"16691:176:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16708:9:88","nodeType":"YulIdentifier","src":"16708:9:88"},{"kind":"number","nativeSrc":"16719:2:88","nodeType":"YulLiteral","src":"16719:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16701:6:88","nodeType":"YulIdentifier","src":"16701:6:88"},"nativeSrc":"16701:21:88","nodeType":"YulFunctionCall","src":"16701:21:88"},"nativeSrc":"16701:21:88","nodeType":"YulExpressionStatement","src":"16701:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16742:9:88","nodeType":"YulIdentifier","src":"16742:9:88"},{"kind":"number","nativeSrc":"16753:2:88","nodeType":"YulLiteral","src":"16753:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16738:3:88","nodeType":"YulIdentifier","src":"16738:3:88"},"nativeSrc":"16738:18:88","nodeType":"YulFunctionCall","src":"16738:18:88"},{"kind":"number","nativeSrc":"16758:2:88","nodeType":"YulLiteral","src":"16758:2:88","type":"","value":"26"}],"functionName":{"name":"mstore","nativeSrc":"16731:6:88","nodeType":"YulIdentifier","src":"16731:6:88"},"nativeSrc":"16731:30:88","nodeType":"YulFunctionCall","src":"16731:30:88"},"nativeSrc":"16731:30:88","nodeType":"YulExpressionStatement","src":"16731:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16781:9:88","nodeType":"YulIdentifier","src":"16781:9:88"},{"kind":"number","nativeSrc":"16792:2:88","nodeType":"YulLiteral","src":"16792:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16777:3:88","nodeType":"YulIdentifier","src":"16777:3:88"},"nativeSrc":"16777:18:88","nodeType":"YulFunctionCall","src":"16777:18:88"},{"hexValue":"496e74657265737420726174652063616e2774206368616e6765","kind":"string","nativeSrc":"16797:28:88","nodeType":"YulLiteral","src":"16797:28:88","type":"","value":"Interest rate can't change"}],"functionName":{"name":"mstore","nativeSrc":"16770:6:88","nodeType":"YulIdentifier","src":"16770:6:88"},"nativeSrc":"16770:56:88","nodeType":"YulFunctionCall","src":"16770:56:88"},"nativeSrc":"16770:56:88","nodeType":"YulExpressionStatement","src":"16770:56:88"},{"nativeSrc":"16835:26:88","nodeType":"YulAssignment","src":"16835:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16847:9:88","nodeType":"YulIdentifier","src":"16847:9:88"},{"kind":"number","nativeSrc":"16858:2:88","nodeType":"YulLiteral","src":"16858:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16843:3:88","nodeType":"YulIdentifier","src":"16843:3:88"},"nativeSrc":"16843:18:88","nodeType":"YulFunctionCall","src":"16843:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16835:4:88","nodeType":"YulIdentifier","src":"16835:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16517:350:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16668:9:88","nodeType":"YulTypedName","src":"16668:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16682:4:88","nodeType":"YulTypedName","src":"16682:4:88","type":""}],"src":"16517:350:88"},{"body":{"nativeSrc":"16920:77:88","nodeType":"YulBlock","src":"16920:77:88","statements":[{"nativeSrc":"16930:16:88","nodeType":"YulAssignment","src":"16930:16:88","value":{"arguments":[{"name":"x","nativeSrc":"16941:1:88","nodeType":"YulIdentifier","src":"16941:1:88"},{"name":"y","nativeSrc":"16944:1:88","nodeType":"YulIdentifier","src":"16944:1:88"}],"functionName":{"name":"add","nativeSrc":"16937:3:88","nodeType":"YulIdentifier","src":"16937:3:88"},"nativeSrc":"16937:9:88","nodeType":"YulFunctionCall","src":"16937:9:88"},"variableNames":[{"name":"sum","nativeSrc":"16930:3:88","nodeType":"YulIdentifier","src":"16930:3:88"}]},{"body":{"nativeSrc":"16969:22:88","nodeType":"YulBlock","src":"16969:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"16971:16:88","nodeType":"YulIdentifier","src":"16971:16:88"},"nativeSrc":"16971:18:88","nodeType":"YulFunctionCall","src":"16971:18:88"},"nativeSrc":"16971:18:88","nodeType":"YulExpressionStatement","src":"16971:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"16961:1:88","nodeType":"YulIdentifier","src":"16961:1:88"},{"name":"sum","nativeSrc":"16964:3:88","nodeType":"YulIdentifier","src":"16964:3:88"}],"functionName":{"name":"gt","nativeSrc":"16958:2:88","nodeType":"YulIdentifier","src":"16958:2:88"},"nativeSrc":"16958:10:88","nodeType":"YulFunctionCall","src":"16958:10:88"},"nativeSrc":"16955:36:88","nodeType":"YulIf","src":"16955:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"16872:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"16903:1:88","nodeType":"YulTypedName","src":"16903:1:88","type":""},{"name":"y","nativeSrc":"16906:1:88","nodeType":"YulTypedName","src":"16906:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"16912:3:88","nodeType":"YulTypedName","src":"16912:3:88","type":""}],"src":"16872:125:88"},{"body":{"nativeSrc":"17166:162:88","nodeType":"YulBlock","src":"17166:162:88","statements":[{"nativeSrc":"17176:26:88","nodeType":"YulAssignment","src":"17176:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17188:9:88","nodeType":"YulIdentifier","src":"17188:9:88"},{"kind":"number","nativeSrc":"17199:2:88","nodeType":"YulLiteral","src":"17199:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17184:3:88","nodeType":"YulIdentifier","src":"17184:3:88"},"nativeSrc":"17184:18:88","nodeType":"YulFunctionCall","src":"17184:18:88"},"variableNames":[{"name":"tail","nativeSrc":"17176:4:88","nodeType":"YulIdentifier","src":"17176:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17218:9:88","nodeType":"YulIdentifier","src":"17218:9:88"},{"name":"value0","nativeSrc":"17229:6:88","nodeType":"YulIdentifier","src":"17229:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17211:6:88","nodeType":"YulIdentifier","src":"17211:6:88"},"nativeSrc":"17211:25:88","nodeType":"YulFunctionCall","src":"17211:25:88"},"nativeSrc":"17211:25:88","nodeType":"YulExpressionStatement","src":"17211:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17256:9:88","nodeType":"YulIdentifier","src":"17256:9:88"},{"kind":"number","nativeSrc":"17267:2:88","nodeType":"YulLiteral","src":"17267:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17252:3:88","nodeType":"YulIdentifier","src":"17252:3:88"},"nativeSrc":"17252:18:88","nodeType":"YulFunctionCall","src":"17252:18:88"},{"name":"value1","nativeSrc":"17272:6:88","nodeType":"YulIdentifier","src":"17272:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17245:6:88","nodeType":"YulIdentifier","src":"17245:6:88"},"nativeSrc":"17245:34:88","nodeType":"YulFunctionCall","src":"17245:34:88"},"nativeSrc":"17245:34:88","nodeType":"YulExpressionStatement","src":"17245:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17299:9:88","nodeType":"YulIdentifier","src":"17299:9:88"},{"kind":"number","nativeSrc":"17310:2:88","nodeType":"YulLiteral","src":"17310:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17295:3:88","nodeType":"YulIdentifier","src":"17295:3:88"},"nativeSrc":"17295:18:88","nodeType":"YulFunctionCall","src":"17295:18:88"},{"name":"value2","nativeSrc":"17315:6:88","nodeType":"YulIdentifier","src":"17315:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17288:6:88","nodeType":"YulIdentifier","src":"17288:6:88"},"nativeSrc":"17288:34:88","nodeType":"YulFunctionCall","src":"17288:34:88"},"nativeSrc":"17288:34:88","nodeType":"YulExpressionStatement","src":"17288:34:88"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_int256__fromStack_reversed","nativeSrc":"17002:326:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17119:9:88","nodeType":"YulTypedName","src":"17119:9:88","type":""},{"name":"value2","nativeSrc":"17130:6:88","nodeType":"YulTypedName","src":"17130:6:88","type":""},{"name":"value1","nativeSrc":"17138:6:88","nodeType":"YulTypedName","src":"17138:6:88","type":""},{"name":"value0","nativeSrc":"17146:6:88","nodeType":"YulTypedName","src":"17146:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17157:4:88","nodeType":"YulTypedName","src":"17157:4:88","type":""}],"src":"17002:326:88"},{"body":{"nativeSrc":"17462:119:88","nodeType":"YulBlock","src":"17462:119:88","statements":[{"nativeSrc":"17472:26:88","nodeType":"YulAssignment","src":"17472:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17484:9:88","nodeType":"YulIdentifier","src":"17484:9:88"},{"kind":"number","nativeSrc":"17495:2:88","nodeType":"YulLiteral","src":"17495:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17480:3:88","nodeType":"YulIdentifier","src":"17480:3:88"},"nativeSrc":"17480:18:88","nodeType":"YulFunctionCall","src":"17480:18:88"},"variableNames":[{"name":"tail","nativeSrc":"17472:4:88","nodeType":"YulIdentifier","src":"17472:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17514:9:88","nodeType":"YulIdentifier","src":"17514:9:88"},{"name":"value0","nativeSrc":"17525:6:88","nodeType":"YulIdentifier","src":"17525:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17507:6:88","nodeType":"YulIdentifier","src":"17507:6:88"},"nativeSrc":"17507:25:88","nodeType":"YulFunctionCall","src":"17507:25:88"},"nativeSrc":"17507:25:88","nodeType":"YulExpressionStatement","src":"17507:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17552:9:88","nodeType":"YulIdentifier","src":"17552:9:88"},{"kind":"number","nativeSrc":"17563:2:88","nodeType":"YulLiteral","src":"17563:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17548:3:88","nodeType":"YulIdentifier","src":"17548:3:88"},"nativeSrc":"17548:18:88","nodeType":"YulFunctionCall","src":"17548:18:88"},{"name":"value1","nativeSrc":"17568:6:88","nodeType":"YulIdentifier","src":"17568:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17541:6:88","nodeType":"YulIdentifier","src":"17541:6:88"},"nativeSrc":"17541:34:88","nodeType":"YulFunctionCall","src":"17541:34:88"},"nativeSrc":"17541:34:88","nodeType":"YulExpressionStatement","src":"17541:34:88"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17333:248:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17423:9:88","nodeType":"YulTypedName","src":"17423:9:88","type":""},{"name":"value1","nativeSrc":"17434:6:88","nodeType":"YulTypedName","src":"17434:6:88","type":""},{"name":"value0","nativeSrc":"17442:6:88","nodeType":"YulTypedName","src":"17442:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17453:4:88","nodeType":"YulTypedName","src":"17453:4:88","type":""}],"src":"17333:248:88"},{"body":{"nativeSrc":"17685:103:88","nodeType":"YulBlock","src":"17685:103:88","statements":[{"nativeSrc":"17695:26:88","nodeType":"YulAssignment","src":"17695:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17707:9:88","nodeType":"YulIdentifier","src":"17707:9:88"},{"kind":"number","nativeSrc":"17718:2:88","nodeType":"YulLiteral","src":"17718:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17703:3:88","nodeType":"YulIdentifier","src":"17703:3:88"},"nativeSrc":"17703:18:88","nodeType":"YulFunctionCall","src":"17703:18:88"},"variableNames":[{"name":"tail","nativeSrc":"17695:4:88","nodeType":"YulIdentifier","src":"17695:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17737:9:88","nodeType":"YulIdentifier","src":"17737:9:88"},{"arguments":[{"name":"value0","nativeSrc":"17752:6:88","nodeType":"YulIdentifier","src":"17752:6:88"},{"arguments":[{"kind":"number","nativeSrc":"17764:3:88","nodeType":"YulLiteral","src":"17764:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"17769:10:88","nodeType":"YulLiteral","src":"17769:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"17760:3:88","nodeType":"YulIdentifier","src":"17760:3:88"},"nativeSrc":"17760:20:88","nodeType":"YulFunctionCall","src":"17760:20:88"}],"functionName":{"name":"and","nativeSrc":"17748:3:88","nodeType":"YulIdentifier","src":"17748:3:88"},"nativeSrc":"17748:33:88","nodeType":"YulFunctionCall","src":"17748:33:88"}],"functionName":{"name":"mstore","nativeSrc":"17730:6:88","nodeType":"YulIdentifier","src":"17730:6:88"},"nativeSrc":"17730:52:88","nodeType":"YulFunctionCall","src":"17730:52:88"},"nativeSrc":"17730:52:88","nodeType":"YulExpressionStatement","src":"17730:52:88"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"17586:202:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17654:9:88","nodeType":"YulTypedName","src":"17654:9:88","type":""},{"name":"value0","nativeSrc":"17665:6:88","nodeType":"YulTypedName","src":"17665:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17676:4:88","nodeType":"YulTypedName","src":"17676:4:88","type":""}],"src":"17586:202:88"},{"body":{"nativeSrc":"17871:167:88","nodeType":"YulBlock","src":"17871:167:88","statements":[{"body":{"nativeSrc":"17917:16:88","nodeType":"YulBlock","src":"17917:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17926:1:88","nodeType":"YulLiteral","src":"17926:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17929:1:88","nodeType":"YulLiteral","src":"17929:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17919:6:88","nodeType":"YulIdentifier","src":"17919:6:88"},"nativeSrc":"17919:12:88","nodeType":"YulFunctionCall","src":"17919:12:88"},"nativeSrc":"17919:12:88","nodeType":"YulExpressionStatement","src":"17919:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17892:7:88","nodeType":"YulIdentifier","src":"17892:7:88"},{"name":"headStart","nativeSrc":"17901:9:88","nodeType":"YulIdentifier","src":"17901:9:88"}],"functionName":{"name":"sub","nativeSrc":"17888:3:88","nodeType":"YulIdentifier","src":"17888:3:88"},"nativeSrc":"17888:23:88","nodeType":"YulFunctionCall","src":"17888:23:88"},{"kind":"number","nativeSrc":"17913:2:88","nodeType":"YulLiteral","src":"17913:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17884:3:88","nodeType":"YulIdentifier","src":"17884:3:88"},"nativeSrc":"17884:32:88","nodeType":"YulFunctionCall","src":"17884:32:88"},"nativeSrc":"17881:52:88","nodeType":"YulIf","src":"17881:52:88"},{"nativeSrc":"17942:29:88","nodeType":"YulVariableDeclaration","src":"17942:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17961:9:88","nodeType":"YulIdentifier","src":"17961:9:88"}],"functionName":{"name":"mload","nativeSrc":"17955:5:88","nodeType":"YulIdentifier","src":"17955:5:88"},"nativeSrc":"17955:16:88","nodeType":"YulFunctionCall","src":"17955:16:88"},"variables":[{"name":"value","nativeSrc":"17946:5:88","nodeType":"YulTypedName","src":"17946:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18002:5:88","nodeType":"YulIdentifier","src":"18002:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"17980:21:88","nodeType":"YulIdentifier","src":"17980:21:88"},"nativeSrc":"17980:28:88","nodeType":"YulFunctionCall","src":"17980:28:88"},"nativeSrc":"17980:28:88","nodeType":"YulExpressionStatement","src":"17980:28:88"},{"nativeSrc":"18017:15:88","nodeType":"YulAssignment","src":"18017:15:88","value":{"name":"value","nativeSrc":"18027:5:88","nodeType":"YulIdentifier","src":"18027:5:88"},"variableNames":[{"name":"value0","nativeSrc":"18017:6:88","nodeType":"YulIdentifier","src":"18017:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17793:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17837:9:88","nodeType":"YulTypedName","src":"17837:9:88","type":""},{"name":"dataEnd","nativeSrc":"17848:7:88","nodeType":"YulTypedName","src":"17848:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17860:6:88","nodeType":"YulTypedName","src":"17860:6:88","type":""}],"src":"17793:245:88"},{"body":{"nativeSrc":"18217:254:88","nodeType":"YulBlock","src":"18217:254:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18234:9:88","nodeType":"YulIdentifier","src":"18234:9:88"},{"kind":"number","nativeSrc":"18245:2:88","nodeType":"YulLiteral","src":"18245:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18227:6:88","nodeType":"YulIdentifier","src":"18227:6:88"},"nativeSrc":"18227:21:88","nodeType":"YulFunctionCall","src":"18227:21:88"},"nativeSrc":"18227:21:88","nodeType":"YulExpressionStatement","src":"18227:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18268:9:88","nodeType":"YulIdentifier","src":"18268:9:88"},{"kind":"number","nativeSrc":"18279:2:88","nodeType":"YulLiteral","src":"18279:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18264:3:88","nodeType":"YulIdentifier","src":"18264:3:88"},"nativeSrc":"18264:18:88","nodeType":"YulFunctionCall","src":"18264:18:88"},{"kind":"number","nativeSrc":"18284:2:88","nodeType":"YulLiteral","src":"18284:2:88","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"18257:6:88","nodeType":"YulIdentifier","src":"18257:6:88"},"nativeSrc":"18257:30:88","nodeType":"YulFunctionCall","src":"18257:30:88"},"nativeSrc":"18257:30:88","nodeType":"YulExpressionStatement","src":"18257:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18307:9:88","nodeType":"YulIdentifier","src":"18307:9:88"},{"kind":"number","nativeSrc":"18318:2:88","nodeType":"YulLiteral","src":"18318:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18303:3:88","nodeType":"YulIdentifier","src":"18303:3:88"},"nativeSrc":"18303:18:88","nodeType":"YulFunctionCall","src":"18303:18:88"},{"hexValue":"526573657276653a206173736574206d616e6167657220646f65736e27742069","kind":"string","nativeSrc":"18323:34:88","nodeType":"YulLiteral","src":"18323:34:88","type":"","value":"Reserve: asset manager doesn't i"}],"functionName":{"name":"mstore","nativeSrc":"18296:6:88","nodeType":"YulIdentifier","src":"18296:6:88"},"nativeSrc":"18296:62:88","nodeType":"YulFunctionCall","src":"18296:62:88"},"nativeSrc":"18296:62:88","nodeType":"YulExpressionStatement","src":"18296:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18378:9:88","nodeType":"YulIdentifier","src":"18378:9:88"},{"kind":"number","nativeSrc":"18389:2:88","nodeType":"YulLiteral","src":"18389:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18374:3:88","nodeType":"YulIdentifier","src":"18374:3:88"},"nativeSrc":"18374:18:88","nodeType":"YulFunctionCall","src":"18374:18:88"},{"hexValue":"6d706c656d656e74732074686520726571756972656420696e74657266616365","kind":"string","nativeSrc":"18394:34:88","nodeType":"YulLiteral","src":"18394:34:88","type":"","value":"mplements the required interface"}],"functionName":{"name":"mstore","nativeSrc":"18367:6:88","nodeType":"YulIdentifier","src":"18367:6:88"},"nativeSrc":"18367:62:88","nodeType":"YulFunctionCall","src":"18367:62:88"},"nativeSrc":"18367:62:88","nodeType":"YulExpressionStatement","src":"18367:62:88"},{"nativeSrc":"18438:27:88","nodeType":"YulAssignment","src":"18438:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18450:9:88","nodeType":"YulIdentifier","src":"18450:9:88"},{"kind":"number","nativeSrc":"18461:3:88","nodeType":"YulLiteral","src":"18461:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18446:3:88","nodeType":"YulIdentifier","src":"18446:3:88"},"nativeSrc":"18446:19:88","nodeType":"YulFunctionCall","src":"18446:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18438:4:88","nodeType":"YulIdentifier","src":"18438:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18043:428:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18194:9:88","nodeType":"YulTypedName","src":"18194:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18208:4:88","nodeType":"YulTypedName","src":"18208:4:88","type":""}],"src":"18043:428:88"},{"body":{"nativeSrc":"18613:164:88","nodeType":"YulBlock","src":"18613:164:88","statements":[{"nativeSrc":"18623:27:88","nodeType":"YulVariableDeclaration","src":"18623:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"18643:6:88","nodeType":"YulIdentifier","src":"18643:6:88"}],"functionName":{"name":"mload","nativeSrc":"18637:5:88","nodeType":"YulIdentifier","src":"18637:5:88"},"nativeSrc":"18637:13:88","nodeType":"YulFunctionCall","src":"18637:13:88"},"variables":[{"name":"length","nativeSrc":"18627:6:88","nodeType":"YulTypedName","src":"18627:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18665:3:88","nodeType":"YulIdentifier","src":"18665:3:88"},{"arguments":[{"name":"value0","nativeSrc":"18674:6:88","nodeType":"YulIdentifier","src":"18674:6:88"},{"kind":"number","nativeSrc":"18682:4:88","nodeType":"YulLiteral","src":"18682:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18670:3:88","nodeType":"YulIdentifier","src":"18670:3:88"},"nativeSrc":"18670:17:88","nodeType":"YulFunctionCall","src":"18670:17:88"},{"name":"length","nativeSrc":"18689:6:88","nodeType":"YulIdentifier","src":"18689:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"18659:5:88","nodeType":"YulIdentifier","src":"18659:5:88"},"nativeSrc":"18659:37:88","nodeType":"YulFunctionCall","src":"18659:37:88"},"nativeSrc":"18659:37:88","nodeType":"YulExpressionStatement","src":"18659:37:88"},{"nativeSrc":"18705:26:88","nodeType":"YulVariableDeclaration","src":"18705:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"18719:3:88","nodeType":"YulIdentifier","src":"18719:3:88"},{"name":"length","nativeSrc":"18724:6:88","nodeType":"YulIdentifier","src":"18724:6:88"}],"functionName":{"name":"add","nativeSrc":"18715:3:88","nodeType":"YulIdentifier","src":"18715:3:88"},"nativeSrc":"18715:16:88","nodeType":"YulFunctionCall","src":"18715:16:88"},"variables":[{"name":"_1","nativeSrc":"18709:2:88","nodeType":"YulTypedName","src":"18709:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"18747:2:88","nodeType":"YulIdentifier","src":"18747:2:88"},{"kind":"number","nativeSrc":"18751:1:88","nodeType":"YulLiteral","src":"18751:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18740:6:88","nodeType":"YulIdentifier","src":"18740:6:88"},"nativeSrc":"18740:13:88","nodeType":"YulFunctionCall","src":"18740:13:88"},"nativeSrc":"18740:13:88","nodeType":"YulExpressionStatement","src":"18740:13:88"},{"nativeSrc":"18762:9:88","nodeType":"YulAssignment","src":"18762:9:88","value":{"name":"_1","nativeSrc":"18769:2:88","nodeType":"YulIdentifier","src":"18769:2:88"},"variableNames":[{"name":"end","nativeSrc":"18762:3:88","nodeType":"YulIdentifier","src":"18762:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"18476:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18589:3:88","nodeType":"YulTypedName","src":"18589:3:88","type":""},{"name":"value0","nativeSrc":"18594:6:88","nodeType":"YulTypedName","src":"18594:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18605:3:88","nodeType":"YulTypedName","src":"18605:3:88","type":""}],"src":"18476:301:88"},{"body":{"nativeSrc":"18886:170:88","nodeType":"YulBlock","src":"18886:170:88","statements":[{"body":{"nativeSrc":"18932:16:88","nodeType":"YulBlock","src":"18932:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18941:1:88","nodeType":"YulLiteral","src":"18941:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"18944:1:88","nodeType":"YulLiteral","src":"18944:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18934:6:88","nodeType":"YulIdentifier","src":"18934:6:88"},"nativeSrc":"18934:12:88","nodeType":"YulFunctionCall","src":"18934:12:88"},"nativeSrc":"18934:12:88","nodeType":"YulExpressionStatement","src":"18934:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18907:7:88","nodeType":"YulIdentifier","src":"18907:7:88"},{"name":"headStart","nativeSrc":"18916:9:88","nodeType":"YulIdentifier","src":"18916:9:88"}],"functionName":{"name":"sub","nativeSrc":"18903:3:88","nodeType":"YulIdentifier","src":"18903:3:88"},"nativeSrc":"18903:23:88","nodeType":"YulFunctionCall","src":"18903:23:88"},{"kind":"number","nativeSrc":"18928:2:88","nodeType":"YulLiteral","src":"18928:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18899:3:88","nodeType":"YulIdentifier","src":"18899:3:88"},"nativeSrc":"18899:32:88","nodeType":"YulFunctionCall","src":"18899:32:88"},"nativeSrc":"18896:52:88","nodeType":"YulIf","src":"18896:52:88"},{"nativeSrc":"18957:29:88","nodeType":"YulVariableDeclaration","src":"18957:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18976:9:88","nodeType":"YulIdentifier","src":"18976:9:88"}],"functionName":{"name":"mload","nativeSrc":"18970:5:88","nodeType":"YulIdentifier","src":"18970:5:88"},"nativeSrc":"18970:16:88","nodeType":"YulFunctionCall","src":"18970:16:88"},"variables":[{"name":"value","nativeSrc":"18961:5:88","nodeType":"YulTypedName","src":"18961:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19020:5:88","nodeType":"YulIdentifier","src":"19020:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"18995:24:88","nodeType":"YulIdentifier","src":"18995:24:88"},"nativeSrc":"18995:31:88","nodeType":"YulFunctionCall","src":"18995:31:88"},"nativeSrc":"18995:31:88","nodeType":"YulExpressionStatement","src":"18995:31:88"},{"nativeSrc":"19035:15:88","nodeType":"YulAssignment","src":"19035:15:88","value":{"name":"value","nativeSrc":"19045:5:88","nodeType":"YulIdentifier","src":"19045:5:88"},"variableNames":[{"name":"value0","nativeSrc":"19035:6:88","nodeType":"YulIdentifier","src":"19035:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"18782:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18852:9:88","nodeType":"YulTypedName","src":"18852:9:88","type":""},{"name":"dataEnd","nativeSrc":"18863:7:88","nodeType":"YulTypedName","src":"18863:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18875:6:88","nodeType":"YulTypedName","src":"18875:6:88","type":""}],"src":"18782:274:88"},{"body":{"nativeSrc":"19140:194:88","nodeType":"YulBlock","src":"19140:194:88","statements":[{"body":{"nativeSrc":"19186:16:88","nodeType":"YulBlock","src":"19186:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19195:1:88","nodeType":"YulLiteral","src":"19195:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19198:1:88","nodeType":"YulLiteral","src":"19198:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19188:6:88","nodeType":"YulIdentifier","src":"19188:6:88"},"nativeSrc":"19188:12:88","nodeType":"YulFunctionCall","src":"19188:12:88"},"nativeSrc":"19188:12:88","nodeType":"YulExpressionStatement","src":"19188:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19161:7:88","nodeType":"YulIdentifier","src":"19161:7:88"},{"name":"headStart","nativeSrc":"19170:9:88","nodeType":"YulIdentifier","src":"19170:9:88"}],"functionName":{"name":"sub","nativeSrc":"19157:3:88","nodeType":"YulIdentifier","src":"19157:3:88"},"nativeSrc":"19157:23:88","nodeType":"YulFunctionCall","src":"19157:23:88"},{"kind":"number","nativeSrc":"19182:2:88","nodeType":"YulLiteral","src":"19182:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19153:3:88","nodeType":"YulIdentifier","src":"19153:3:88"},"nativeSrc":"19153:32:88","nodeType":"YulFunctionCall","src":"19153:32:88"},"nativeSrc":"19150:52:88","nodeType":"YulIf","src":"19150:52:88"},{"nativeSrc":"19211:29:88","nodeType":"YulVariableDeclaration","src":"19211:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19230:9:88","nodeType":"YulIdentifier","src":"19230:9:88"}],"functionName":{"name":"mload","nativeSrc":"19224:5:88","nodeType":"YulIdentifier","src":"19224:5:88"},"nativeSrc":"19224:16:88","nodeType":"YulFunctionCall","src":"19224:16:88"},"variables":[{"name":"value","nativeSrc":"19215:5:88","nodeType":"YulTypedName","src":"19215:5:88","type":""}]},{"body":{"nativeSrc":"19288:16:88","nodeType":"YulBlock","src":"19288:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19297:1:88","nodeType":"YulLiteral","src":"19297:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19300:1:88","nodeType":"YulLiteral","src":"19300:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19290:6:88","nodeType":"YulIdentifier","src":"19290:6:88"},"nativeSrc":"19290:12:88","nodeType":"YulFunctionCall","src":"19290:12:88"},"nativeSrc":"19290:12:88","nodeType":"YulExpressionStatement","src":"19290:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19262:5:88","nodeType":"YulIdentifier","src":"19262:5:88"},{"arguments":[{"name":"value","nativeSrc":"19273:5:88","nodeType":"YulIdentifier","src":"19273:5:88"},{"kind":"number","nativeSrc":"19280:4:88","nodeType":"YulLiteral","src":"19280:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"19269:3:88","nodeType":"YulIdentifier","src":"19269:3:88"},"nativeSrc":"19269:16:88","nodeType":"YulFunctionCall","src":"19269:16:88"}],"functionName":{"name":"eq","nativeSrc":"19259:2:88","nodeType":"YulIdentifier","src":"19259:2:88"},"nativeSrc":"19259:27:88","nodeType":"YulFunctionCall","src":"19259:27:88"}],"functionName":{"name":"iszero","nativeSrc":"19252:6:88","nodeType":"YulIdentifier","src":"19252:6:88"},"nativeSrc":"19252:35:88","nodeType":"YulFunctionCall","src":"19252:35:88"},"nativeSrc":"19249:55:88","nodeType":"YulIf","src":"19249:55:88"},{"nativeSrc":"19313:15:88","nodeType":"YulAssignment","src":"19313:15:88","value":{"name":"value","nativeSrc":"19323:5:88","nodeType":"YulIdentifier","src":"19323:5:88"},"variableNames":[{"name":"value0","nativeSrc":"19313:6:88","nodeType":"YulIdentifier","src":"19313:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"19061:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19106:9:88","nodeType":"YulTypedName","src":"19106:9:88","type":""},{"name":"dataEnd","nativeSrc":"19117:7:88","nodeType":"YulTypedName","src":"19117:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19129:6:88","nodeType":"YulTypedName","src":"19129:6:88","type":""}],"src":"19061:273:88"},{"body":{"nativeSrc":"19408:306:88","nodeType":"YulBlock","src":"19408:306:88","statements":[{"nativeSrc":"19418:10:88","nodeType":"YulAssignment","src":"19418:10:88","value":{"kind":"number","nativeSrc":"19427:1:88","nodeType":"YulLiteral","src":"19427:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"19418:5:88","nodeType":"YulIdentifier","src":"19418:5:88"}]},{"nativeSrc":"19437:13:88","nodeType":"YulAssignment","src":"19437:13:88","value":{"name":"_base","nativeSrc":"19445:5:88","nodeType":"YulIdentifier","src":"19445:5:88"},"variableNames":[{"name":"base","nativeSrc":"19437:4:88","nodeType":"YulIdentifier","src":"19437:4:88"}]},{"body":{"nativeSrc":"19495:213:88","nodeType":"YulBlock","src":"19495:213:88","statements":[{"body":{"nativeSrc":"19537:22:88","nodeType":"YulBlock","src":"19537:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19539:16:88","nodeType":"YulIdentifier","src":"19539:16:88"},"nativeSrc":"19539:18:88","nodeType":"YulFunctionCall","src":"19539:18:88"},"nativeSrc":"19539:18:88","nodeType":"YulExpressionStatement","src":"19539:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"19515:4:88","nodeType":"YulIdentifier","src":"19515:4:88"},{"arguments":[{"name":"max","nativeSrc":"19525:3:88","nodeType":"YulIdentifier","src":"19525:3:88"},{"name":"base","nativeSrc":"19530:4:88","nodeType":"YulIdentifier","src":"19530:4:88"}],"functionName":{"name":"div","nativeSrc":"19521:3:88","nodeType":"YulIdentifier","src":"19521:3:88"},"nativeSrc":"19521:14:88","nodeType":"YulFunctionCall","src":"19521:14:88"}],"functionName":{"name":"gt","nativeSrc":"19512:2:88","nodeType":"YulIdentifier","src":"19512:2:88"},"nativeSrc":"19512:24:88","nodeType":"YulFunctionCall","src":"19512:24:88"},"nativeSrc":"19509:50:88","nodeType":"YulIf","src":"19509:50:88"},{"body":{"nativeSrc":"19592:29:88","nodeType":"YulBlock","src":"19592:29:88","statements":[{"nativeSrc":"19594:25:88","nodeType":"YulAssignment","src":"19594:25:88","value":{"arguments":[{"name":"power","nativeSrc":"19607:5:88","nodeType":"YulIdentifier","src":"19607:5:88"},{"name":"base","nativeSrc":"19614:4:88","nodeType":"YulIdentifier","src":"19614:4:88"}],"functionName":{"name":"mul","nativeSrc":"19603:3:88","nodeType":"YulIdentifier","src":"19603:3:88"},"nativeSrc":"19603:16:88","nodeType":"YulFunctionCall","src":"19603:16:88"},"variableNames":[{"name":"power","nativeSrc":"19594:5:88","nodeType":"YulIdentifier","src":"19594:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"19579:8:88","nodeType":"YulIdentifier","src":"19579:8:88"},{"kind":"number","nativeSrc":"19589:1:88","nodeType":"YulLiteral","src":"19589:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"19575:3:88","nodeType":"YulIdentifier","src":"19575:3:88"},"nativeSrc":"19575:16:88","nodeType":"YulFunctionCall","src":"19575:16:88"},"nativeSrc":"19572:49:88","nodeType":"YulIf","src":"19572:49:88"},{"nativeSrc":"19634:23:88","nodeType":"YulAssignment","src":"19634:23:88","value":{"arguments":[{"name":"base","nativeSrc":"19646:4:88","nodeType":"YulIdentifier","src":"19646:4:88"},{"name":"base","nativeSrc":"19652:4:88","nodeType":"YulIdentifier","src":"19652:4:88"}],"functionName":{"name":"mul","nativeSrc":"19642:3:88","nodeType":"YulIdentifier","src":"19642:3:88"},"nativeSrc":"19642:15:88","nodeType":"YulFunctionCall","src":"19642:15:88"},"variableNames":[{"name":"base","nativeSrc":"19634:4:88","nodeType":"YulIdentifier","src":"19634:4:88"}]},{"nativeSrc":"19670:28:88","nodeType":"YulAssignment","src":"19670:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"19686:1:88","nodeType":"YulLiteral","src":"19686:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"19689:8:88","nodeType":"YulIdentifier","src":"19689:8:88"}],"functionName":{"name":"shr","nativeSrc":"19682:3:88","nodeType":"YulIdentifier","src":"19682:3:88"},"nativeSrc":"19682:16:88","nodeType":"YulFunctionCall","src":"19682:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"19670:8:88","nodeType":"YulIdentifier","src":"19670:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"19470:8:88","nodeType":"YulIdentifier","src":"19470:8:88"},{"kind":"number","nativeSrc":"19480:1:88","nodeType":"YulLiteral","src":"19480:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"19467:2:88","nodeType":"YulIdentifier","src":"19467:2:88"},"nativeSrc":"19467:15:88","nodeType":"YulFunctionCall","src":"19467:15:88"},"nativeSrc":"19459:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"19483:3:88","nodeType":"YulBlock","src":"19483:3:88","statements":[]},"pre":{"nativeSrc":"19463:3:88","nodeType":"YulBlock","src":"19463:3:88","statements":[]},"src":"19459:249:88"}]},"name":"checked_exp_helper","nativeSrc":"19339:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"19367:5:88","nodeType":"YulTypedName","src":"19367:5:88","type":""},{"name":"exponent","nativeSrc":"19374:8:88","nodeType":"YulTypedName","src":"19374:8:88","type":""},{"name":"max","nativeSrc":"19384:3:88","nodeType":"YulTypedName","src":"19384:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"19392:5:88","nodeType":"YulTypedName","src":"19392:5:88","type":""},{"name":"base","nativeSrc":"19399:4:88","nodeType":"YulTypedName","src":"19399:4:88","type":""}],"src":"19339:375:88"},{"body":{"nativeSrc":"19778:843:88","nodeType":"YulBlock","src":"19778:843:88","statements":[{"body":{"nativeSrc":"19816:52:88","nodeType":"YulBlock","src":"19816:52:88","statements":[{"nativeSrc":"19830:10:88","nodeType":"YulAssignment","src":"19830:10:88","value":{"kind":"number","nativeSrc":"19839:1:88","nodeType":"YulLiteral","src":"19839:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"19830:5:88","nodeType":"YulIdentifier","src":"19830:5:88"}]},{"nativeSrc":"19853:5:88","nodeType":"YulLeave","src":"19853:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"19798:8:88","nodeType":"YulIdentifier","src":"19798:8:88"}],"functionName":{"name":"iszero","nativeSrc":"19791:6:88","nodeType":"YulIdentifier","src":"19791:6:88"},"nativeSrc":"19791:16:88","nodeType":"YulFunctionCall","src":"19791:16:88"},"nativeSrc":"19788:80:88","nodeType":"YulIf","src":"19788:80:88"},{"body":{"nativeSrc":"19901:52:88","nodeType":"YulBlock","src":"19901:52:88","statements":[{"nativeSrc":"19915:10:88","nodeType":"YulAssignment","src":"19915:10:88","value":{"kind":"number","nativeSrc":"19924:1:88","nodeType":"YulLiteral","src":"19924:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"19915:5:88","nodeType":"YulIdentifier","src":"19915:5:88"}]},{"nativeSrc":"19938:5:88","nodeType":"YulLeave","src":"19938:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"19887:4:88","nodeType":"YulIdentifier","src":"19887:4:88"}],"functionName":{"name":"iszero","nativeSrc":"19880:6:88","nodeType":"YulIdentifier","src":"19880:6:88"},"nativeSrc":"19880:12:88","nodeType":"YulFunctionCall","src":"19880:12:88"},"nativeSrc":"19877:76:88","nodeType":"YulIf","src":"19877:76:88"},{"cases":[{"body":{"nativeSrc":"19989:52:88","nodeType":"YulBlock","src":"19989:52:88","statements":[{"nativeSrc":"20003:10:88","nodeType":"YulAssignment","src":"20003:10:88","value":{"kind":"number","nativeSrc":"20012:1:88","nodeType":"YulLiteral","src":"20012:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"20003:5:88","nodeType":"YulIdentifier","src":"20003:5:88"}]},{"nativeSrc":"20026:5:88","nodeType":"YulLeave","src":"20026:5:88"}]},"nativeSrc":"19982:59:88","nodeType":"YulCase","src":"19982:59:88","value":{"kind":"number","nativeSrc":"19987:1:88","nodeType":"YulLiteral","src":"19987:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"20057:167:88","nodeType":"YulBlock","src":"20057:167:88","statements":[{"body":{"nativeSrc":"20092:22:88","nodeType":"YulBlock","src":"20092:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20094:16:88","nodeType":"YulIdentifier","src":"20094:16:88"},"nativeSrc":"20094:18:88","nodeType":"YulFunctionCall","src":"20094:18:88"},"nativeSrc":"20094:18:88","nodeType":"YulExpressionStatement","src":"20094:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"20077:8:88","nodeType":"YulIdentifier","src":"20077:8:88"},{"kind":"number","nativeSrc":"20087:3:88","nodeType":"YulLiteral","src":"20087:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"20074:2:88","nodeType":"YulIdentifier","src":"20074:2:88"},"nativeSrc":"20074:17:88","nodeType":"YulFunctionCall","src":"20074:17:88"},"nativeSrc":"20071:43:88","nodeType":"YulIf","src":"20071:43:88"},{"nativeSrc":"20127:25:88","nodeType":"YulAssignment","src":"20127:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"20140:8:88","nodeType":"YulIdentifier","src":"20140:8:88"},{"kind":"number","nativeSrc":"20150:1:88","nodeType":"YulLiteral","src":"20150:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"20136:3:88","nodeType":"YulIdentifier","src":"20136:3:88"},"nativeSrc":"20136:16:88","nodeType":"YulFunctionCall","src":"20136:16:88"},"variableNames":[{"name":"power","nativeSrc":"20127:5:88","nodeType":"YulIdentifier","src":"20127:5:88"}]},{"nativeSrc":"20165:11:88","nodeType":"YulVariableDeclaration","src":"20165:11:88","value":{"kind":"number","nativeSrc":"20175:1:88","nodeType":"YulLiteral","src":"20175:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"20169:2:88","nodeType":"YulTypedName","src":"20169:2:88","type":""}]},{"nativeSrc":"20189:7:88","nodeType":"YulAssignment","src":"20189:7:88","value":{"kind":"number","nativeSrc":"20195:1:88","nodeType":"YulLiteral","src":"20195:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"20189:2:88","nodeType":"YulIdentifier","src":"20189:2:88"}]},{"nativeSrc":"20209:5:88","nodeType":"YulLeave","src":"20209:5:88"}]},"nativeSrc":"20050:174:88","nodeType":"YulCase","src":"20050:174:88","value":{"kind":"number","nativeSrc":"20055:1:88","nodeType":"YulLiteral","src":"20055:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"19969:4:88","nodeType":"YulIdentifier","src":"19969:4:88"},"nativeSrc":"19962:262:88","nodeType":"YulSwitch","src":"19962:262:88"},{"body":{"nativeSrc":"20322:114:88","nodeType":"YulBlock","src":"20322:114:88","statements":[{"nativeSrc":"20336:28:88","nodeType":"YulAssignment","src":"20336:28:88","value":{"arguments":[{"name":"base","nativeSrc":"20349:4:88","nodeType":"YulIdentifier","src":"20349:4:88"},{"name":"exponent","nativeSrc":"20355:8:88","nodeType":"YulIdentifier","src":"20355:8:88"}],"functionName":{"name":"exp","nativeSrc":"20345:3:88","nodeType":"YulIdentifier","src":"20345:3:88"},"nativeSrc":"20345:19:88","nodeType":"YulFunctionCall","src":"20345:19:88"},"variableNames":[{"name":"power","nativeSrc":"20336:5:88","nodeType":"YulIdentifier","src":"20336:5:88"}]},{"nativeSrc":"20377:11:88","nodeType":"YulVariableDeclaration","src":"20377:11:88","value":{"kind":"number","nativeSrc":"20387:1:88","nodeType":"YulLiteral","src":"20387:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"20381:2:88","nodeType":"YulTypedName","src":"20381:2:88","type":""}]},{"nativeSrc":"20401:7:88","nodeType":"YulAssignment","src":"20401:7:88","value":{"kind":"number","nativeSrc":"20407:1:88","nodeType":"YulLiteral","src":"20407:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"20401:2:88","nodeType":"YulIdentifier","src":"20401:2:88"}]},{"nativeSrc":"20421:5:88","nodeType":"YulLeave","src":"20421:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"20246:4:88","nodeType":"YulIdentifier","src":"20246:4:88"},{"kind":"number","nativeSrc":"20252:2:88","nodeType":"YulLiteral","src":"20252:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"20243:2:88","nodeType":"YulIdentifier","src":"20243:2:88"},"nativeSrc":"20243:12:88","nodeType":"YulFunctionCall","src":"20243:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"20260:8:88","nodeType":"YulIdentifier","src":"20260:8:88"},{"kind":"number","nativeSrc":"20270:2:88","nodeType":"YulLiteral","src":"20270:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"20257:2:88","nodeType":"YulIdentifier","src":"20257:2:88"},"nativeSrc":"20257:16:88","nodeType":"YulFunctionCall","src":"20257:16:88"}],"functionName":{"name":"and","nativeSrc":"20239:3:88","nodeType":"YulIdentifier","src":"20239:3:88"},"nativeSrc":"20239:35:88","nodeType":"YulFunctionCall","src":"20239:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"20283:4:88","nodeType":"YulIdentifier","src":"20283:4:88"},{"kind":"number","nativeSrc":"20289:3:88","nodeType":"YulLiteral","src":"20289:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"20280:2:88","nodeType":"YulIdentifier","src":"20280:2:88"},"nativeSrc":"20280:13:88","nodeType":"YulFunctionCall","src":"20280:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"20298:8:88","nodeType":"YulIdentifier","src":"20298:8:88"},{"kind":"number","nativeSrc":"20308:2:88","nodeType":"YulLiteral","src":"20308:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"20295:2:88","nodeType":"YulIdentifier","src":"20295:2:88"},"nativeSrc":"20295:16:88","nodeType":"YulFunctionCall","src":"20295:16:88"}],"functionName":{"name":"and","nativeSrc":"20276:3:88","nodeType":"YulIdentifier","src":"20276:3:88"},"nativeSrc":"20276:36:88","nodeType":"YulFunctionCall","src":"20276:36:88"}],"functionName":{"name":"or","nativeSrc":"20236:2:88","nodeType":"YulIdentifier","src":"20236:2:88"},"nativeSrc":"20236:77:88","nodeType":"YulFunctionCall","src":"20236:77:88"},"nativeSrc":"20233:203:88","nodeType":"YulIf","src":"20233:203:88"},{"nativeSrc":"20445:65:88","nodeType":"YulVariableDeclaration","src":"20445:65:88","value":{"arguments":[{"name":"base","nativeSrc":"20487:4:88","nodeType":"YulIdentifier","src":"20487:4:88"},{"name":"exponent","nativeSrc":"20493:8:88","nodeType":"YulIdentifier","src":"20493:8:88"},{"arguments":[{"kind":"number","nativeSrc":"20507:1:88","nodeType":"YulLiteral","src":"20507:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"20503:3:88","nodeType":"YulIdentifier","src":"20503:3:88"},"nativeSrc":"20503:6:88","nodeType":"YulFunctionCall","src":"20503:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"20468:18:88","nodeType":"YulIdentifier","src":"20468:18:88"},"nativeSrc":"20468:42:88","nodeType":"YulFunctionCall","src":"20468:42:88"},"variables":[{"name":"power_1","nativeSrc":"20449:7:88","nodeType":"YulTypedName","src":"20449:7:88","type":""},{"name":"base_1","nativeSrc":"20458:6:88","nodeType":"YulTypedName","src":"20458:6:88","type":""}]},{"body":{"nativeSrc":"20555:22:88","nodeType":"YulBlock","src":"20555:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20557:16:88","nodeType":"YulIdentifier","src":"20557:16:88"},"nativeSrc":"20557:18:88","nodeType":"YulFunctionCall","src":"20557:18:88"},"nativeSrc":"20557:18:88","nodeType":"YulExpressionStatement","src":"20557:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"20525:7:88","nodeType":"YulIdentifier","src":"20525:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20542:1:88","nodeType":"YulLiteral","src":"20542:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"20538:3:88","nodeType":"YulIdentifier","src":"20538:3:88"},"nativeSrc":"20538:6:88","nodeType":"YulFunctionCall","src":"20538:6:88"},{"name":"base_1","nativeSrc":"20546:6:88","nodeType":"YulIdentifier","src":"20546:6:88"}],"functionName":{"name":"div","nativeSrc":"20534:3:88","nodeType":"YulIdentifier","src":"20534:3:88"},"nativeSrc":"20534:19:88","nodeType":"YulFunctionCall","src":"20534:19:88"}],"functionName":{"name":"gt","nativeSrc":"20522:2:88","nodeType":"YulIdentifier","src":"20522:2:88"},"nativeSrc":"20522:32:88","nodeType":"YulFunctionCall","src":"20522:32:88"},"nativeSrc":"20519:58:88","nodeType":"YulIf","src":"20519:58:88"},{"nativeSrc":"20586:29:88","nodeType":"YulAssignment","src":"20586:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"20599:7:88","nodeType":"YulIdentifier","src":"20599:7:88"},{"name":"base_1","nativeSrc":"20608:6:88","nodeType":"YulIdentifier","src":"20608:6:88"}],"functionName":{"name":"mul","nativeSrc":"20595:3:88","nodeType":"YulIdentifier","src":"20595:3:88"},"nativeSrc":"20595:20:88","nodeType":"YulFunctionCall","src":"20595:20:88"},"variableNames":[{"name":"power","nativeSrc":"20586:5:88","nodeType":"YulIdentifier","src":"20586:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"19719:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"19749:4:88","nodeType":"YulTypedName","src":"19749:4:88","type":""},{"name":"exponent","nativeSrc":"19755:8:88","nodeType":"YulTypedName","src":"19755:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"19768:5:88","nodeType":"YulTypedName","src":"19768:5:88","type":""}],"src":"19719:902:88"},{"body":{"nativeSrc":"20694:72:88","nodeType":"YulBlock","src":"20694:72:88","statements":[{"nativeSrc":"20704:56:88","nodeType":"YulAssignment","src":"20704:56:88","value":{"arguments":[{"name":"base","nativeSrc":"20734:4:88","nodeType":"YulIdentifier","src":"20734:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"20744:8:88","nodeType":"YulIdentifier","src":"20744:8:88"},{"kind":"number","nativeSrc":"20754:4:88","nodeType":"YulLiteral","src":"20754:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"20740:3:88","nodeType":"YulIdentifier","src":"20740:3:88"},"nativeSrc":"20740:19:88","nodeType":"YulFunctionCall","src":"20740:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"20713:20:88","nodeType":"YulIdentifier","src":"20713:20:88"},"nativeSrc":"20713:47:88","nodeType":"YulFunctionCall","src":"20713:47:88"},"variableNames":[{"name":"power","nativeSrc":"20704:5:88","nodeType":"YulIdentifier","src":"20704:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"20626:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"20665:4:88","nodeType":"YulTypedName","src":"20665:4:88","type":""},{"name":"exponent","nativeSrc":"20671:8:88","nodeType":"YulTypedName","src":"20671:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"20684:5:88","nodeType":"YulTypedName","src":"20684:5:88","type":""}],"src":"20626:140:88"},{"body":{"nativeSrc":"20852:103:88","nodeType":"YulBlock","src":"20852:103:88","statements":[{"body":{"nativeSrc":"20898:16:88","nodeType":"YulBlock","src":"20898:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20907:1:88","nodeType":"YulLiteral","src":"20907:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"20910:1:88","nodeType":"YulLiteral","src":"20910:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20900:6:88","nodeType":"YulIdentifier","src":"20900:6:88"},"nativeSrc":"20900:12:88","nodeType":"YulFunctionCall","src":"20900:12:88"},"nativeSrc":"20900:12:88","nodeType":"YulExpressionStatement","src":"20900:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20873:7:88","nodeType":"YulIdentifier","src":"20873:7:88"},{"name":"headStart","nativeSrc":"20882:9:88","nodeType":"YulIdentifier","src":"20882:9:88"}],"functionName":{"name":"sub","nativeSrc":"20869:3:88","nodeType":"YulIdentifier","src":"20869:3:88"},"nativeSrc":"20869:23:88","nodeType":"YulFunctionCall","src":"20869:23:88"},{"kind":"number","nativeSrc":"20894:2:88","nodeType":"YulLiteral","src":"20894:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20865:3:88","nodeType":"YulIdentifier","src":"20865:3:88"},"nativeSrc":"20865:32:88","nodeType":"YulFunctionCall","src":"20865:32:88"},"nativeSrc":"20862:52:88","nodeType":"YulIf","src":"20862:52:88"},{"nativeSrc":"20923:26:88","nodeType":"YulAssignment","src":"20923:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20939:9:88","nodeType":"YulIdentifier","src":"20939:9:88"}],"functionName":{"name":"mload","nativeSrc":"20933:5:88","nodeType":"YulIdentifier","src":"20933:5:88"},"nativeSrc":"20933:16:88","nodeType":"YulFunctionCall","src":"20933:16:88"},"variableNames":[{"name":"value0","nativeSrc":"20923:6:88","nodeType":"YulIdentifier","src":"20923:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"20771:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20818:9:88","nodeType":"YulTypedName","src":"20818:9:88","type":""},{"name":"dataEnd","nativeSrc":"20829:7:88","nodeType":"YulTypedName","src":"20829:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20841:6:88","nodeType":"YulTypedName","src":"20841:6:88","type":""}],"src":"20771:184:88"},{"body":{"nativeSrc":"21134:236:88","nodeType":"YulBlock","src":"21134:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21151:9:88","nodeType":"YulIdentifier","src":"21151:9:88"},{"kind":"number","nativeSrc":"21162:2:88","nodeType":"YulLiteral","src":"21162:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21144:6:88","nodeType":"YulIdentifier","src":"21144:6:88"},"nativeSrc":"21144:21:88","nodeType":"YulFunctionCall","src":"21144:21:88"},"nativeSrc":"21144:21:88","nodeType":"YulExpressionStatement","src":"21144:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21185:9:88","nodeType":"YulIdentifier","src":"21185:9:88"},{"kind":"number","nativeSrc":"21196:2:88","nodeType":"YulLiteral","src":"21196:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21181:3:88","nodeType":"YulIdentifier","src":"21181:3:88"},"nativeSrc":"21181:18:88","nodeType":"YulFunctionCall","src":"21181:18:88"},{"kind":"number","nativeSrc":"21201:2:88","nodeType":"YulLiteral","src":"21201:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"21174:6:88","nodeType":"YulIdentifier","src":"21174:6:88"},"nativeSrc":"21174:30:88","nodeType":"YulFunctionCall","src":"21174:30:88"},"nativeSrc":"21174:30:88","nodeType":"YulExpressionStatement","src":"21174:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21224:9:88","nodeType":"YulIdentifier","src":"21224:9:88"},{"kind":"number","nativeSrc":"21235:2:88","nodeType":"YulLiteral","src":"21235:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21220:3:88","nodeType":"YulIdentifier","src":"21220:3:88"},"nativeSrc":"21220:18:88","nodeType":"YulFunctionCall","src":"21220:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"21240:34:88","nodeType":"YulLiteral","src":"21240:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"21213:6:88","nodeType":"YulIdentifier","src":"21213:6:88"},"nativeSrc":"21213:62:88","nodeType":"YulFunctionCall","src":"21213:62:88"},"nativeSrc":"21213:62:88","nodeType":"YulExpressionStatement","src":"21213:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21295:9:88","nodeType":"YulIdentifier","src":"21295:9:88"},{"kind":"number","nativeSrc":"21306:2:88","nodeType":"YulLiteral","src":"21306:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21291:3:88","nodeType":"YulIdentifier","src":"21291:3:88"},"nativeSrc":"21291:18:88","nodeType":"YulFunctionCall","src":"21291:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"21311:16:88","nodeType":"YulLiteral","src":"21311:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"21284:6:88","nodeType":"YulIdentifier","src":"21284:6:88"},"nativeSrc":"21284:44:88","nodeType":"YulFunctionCall","src":"21284:44:88"},"nativeSrc":"21284:44:88","nodeType":"YulExpressionStatement","src":"21284:44:88"},{"nativeSrc":"21337:27:88","nodeType":"YulAssignment","src":"21337:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21349:9:88","nodeType":"YulIdentifier","src":"21349:9:88"},{"kind":"number","nativeSrc":"21360:3:88","nodeType":"YulLiteral","src":"21360:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21345:3:88","nodeType":"YulIdentifier","src":"21345:3:88"},"nativeSrc":"21345:19:88","nodeType":"YulFunctionCall","src":"21345:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21337:4:88","nodeType":"YulIdentifier","src":"21337:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20960:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21111:9:88","nodeType":"YulTypedName","src":"21111:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21125:4:88","nodeType":"YulTypedName","src":"21125:4:88","type":""}],"src":"20960:410:88"},{"body":{"nativeSrc":"21549:231:88","nodeType":"YulBlock","src":"21549:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21566:9:88","nodeType":"YulIdentifier","src":"21566:9:88"},{"kind":"number","nativeSrc":"21577:2:88","nodeType":"YulLiteral","src":"21577:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21559:6:88","nodeType":"YulIdentifier","src":"21559:6:88"},"nativeSrc":"21559:21:88","nodeType":"YulFunctionCall","src":"21559:21:88"},"nativeSrc":"21559:21:88","nodeType":"YulExpressionStatement","src":"21559:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21600:9:88","nodeType":"YulIdentifier","src":"21600:9:88"},{"kind":"number","nativeSrc":"21611:2:88","nodeType":"YulLiteral","src":"21611:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21596:3:88","nodeType":"YulIdentifier","src":"21596:3:88"},"nativeSrc":"21596:18:88","nodeType":"YulFunctionCall","src":"21596:18:88"},{"kind":"number","nativeSrc":"21616:2:88","nodeType":"YulLiteral","src":"21616:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"21589:6:88","nodeType":"YulIdentifier","src":"21589:6:88"},"nativeSrc":"21589:30:88","nodeType":"YulFunctionCall","src":"21589:30:88"},"nativeSrc":"21589:30:88","nodeType":"YulExpressionStatement","src":"21589:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21639:9:88","nodeType":"YulIdentifier","src":"21639:9:88"},{"kind":"number","nativeSrc":"21650:2:88","nodeType":"YulLiteral","src":"21650:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21635:3:88","nodeType":"YulIdentifier","src":"21635:3:88"},"nativeSrc":"21635:18:88","nodeType":"YulFunctionCall","src":"21635:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"21655:34:88","nodeType":"YulLiteral","src":"21655:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"21628:6:88","nodeType":"YulIdentifier","src":"21628:6:88"},"nativeSrc":"21628:62:88","nodeType":"YulFunctionCall","src":"21628:62:88"},"nativeSrc":"21628:62:88","nodeType":"YulExpressionStatement","src":"21628:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21710:9:88","nodeType":"YulIdentifier","src":"21710:9:88"},{"kind":"number","nativeSrc":"21721:2:88","nodeType":"YulLiteral","src":"21721:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21706:3:88","nodeType":"YulIdentifier","src":"21706:3:88"},"nativeSrc":"21706:18:88","nodeType":"YulFunctionCall","src":"21706:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"21726:11:88","nodeType":"YulLiteral","src":"21726:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"21699:6:88","nodeType":"YulIdentifier","src":"21699:6:88"},"nativeSrc":"21699:39:88","nodeType":"YulFunctionCall","src":"21699:39:88"},"nativeSrc":"21699:39:88","nodeType":"YulExpressionStatement","src":"21699:39:88"},{"nativeSrc":"21747:27:88","nodeType":"YulAssignment","src":"21747:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21759:9:88","nodeType":"YulIdentifier","src":"21759:9:88"},{"kind":"number","nativeSrc":"21770:3:88","nodeType":"YulLiteral","src":"21770:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21755:3:88","nodeType":"YulIdentifier","src":"21755:3:88"},"nativeSrc":"21755:19:88","nodeType":"YulFunctionCall","src":"21755:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21747:4:88","nodeType":"YulIdentifier","src":"21747:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21375:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21526:9:88","nodeType":"YulTypedName","src":"21526:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21540:4:88","nodeType":"YulTypedName","src":"21540:4:88","type":""}],"src":"21375:405:88"},{"body":{"nativeSrc":"21886:102:88","nodeType":"YulBlock","src":"21886:102:88","statements":[{"nativeSrc":"21896:26:88","nodeType":"YulAssignment","src":"21896:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21908:9:88","nodeType":"YulIdentifier","src":"21908:9:88"},{"kind":"number","nativeSrc":"21919:2:88","nodeType":"YulLiteral","src":"21919:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21904:3:88","nodeType":"YulIdentifier","src":"21904:3:88"},"nativeSrc":"21904:18:88","nodeType":"YulFunctionCall","src":"21904:18:88"},"variableNames":[{"name":"tail","nativeSrc":"21896:4:88","nodeType":"YulIdentifier","src":"21896:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21938:9:88","nodeType":"YulIdentifier","src":"21938:9:88"},{"arguments":[{"name":"value0","nativeSrc":"21953:6:88","nodeType":"YulIdentifier","src":"21953:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21969:3:88","nodeType":"YulLiteral","src":"21969:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"21974:1:88","nodeType":"YulLiteral","src":"21974:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"21965:3:88","nodeType":"YulIdentifier","src":"21965:3:88"},"nativeSrc":"21965:11:88","nodeType":"YulFunctionCall","src":"21965:11:88"},{"kind":"number","nativeSrc":"21978:1:88","nodeType":"YulLiteral","src":"21978:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"21961:3:88","nodeType":"YulIdentifier","src":"21961:3:88"},"nativeSrc":"21961:19:88","nodeType":"YulFunctionCall","src":"21961:19:88"}],"functionName":{"name":"and","nativeSrc":"21949:3:88","nodeType":"YulIdentifier","src":"21949:3:88"},"nativeSrc":"21949:32:88","nodeType":"YulFunctionCall","src":"21949:32:88"}],"functionName":{"name":"mstore","nativeSrc":"21931:6:88","nodeType":"YulIdentifier","src":"21931:6:88"},"nativeSrc":"21931:51:88","nodeType":"YulFunctionCall","src":"21931:51:88"},"nativeSrc":"21931:51:88","nodeType":"YulExpressionStatement","src":"21931:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"21785:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21855:9:88","nodeType":"YulTypedName","src":"21855:9:88","type":""},{"name":"value0","nativeSrc":"21866:6:88","nodeType":"YulTypedName","src":"21866:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21877:4:88","nodeType":"YulTypedName","src":"21877:4:88","type":""}],"src":"21785:203:88"},{"body":{"nativeSrc":"22167:166:88","nodeType":"YulBlock","src":"22167:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22184:9:88","nodeType":"YulIdentifier","src":"22184:9:88"},{"kind":"number","nativeSrc":"22195:2:88","nodeType":"YulLiteral","src":"22195:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22177:6:88","nodeType":"YulIdentifier","src":"22177:6:88"},"nativeSrc":"22177:21:88","nodeType":"YulFunctionCall","src":"22177:21:88"},"nativeSrc":"22177:21:88","nodeType":"YulExpressionStatement","src":"22177:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22218:9:88","nodeType":"YulIdentifier","src":"22218:9:88"},{"kind":"number","nativeSrc":"22229:2:88","nodeType":"YulLiteral","src":"22229:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22214:3:88","nodeType":"YulIdentifier","src":"22214:3:88"},"nativeSrc":"22214:18:88","nodeType":"YulFunctionCall","src":"22214:18:88"},{"kind":"number","nativeSrc":"22234:2:88","nodeType":"YulLiteral","src":"22234:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"22207:6:88","nodeType":"YulIdentifier","src":"22207:6:88"},"nativeSrc":"22207:30:88","nodeType":"YulFunctionCall","src":"22207:30:88"},"nativeSrc":"22207:30:88","nodeType":"YulExpressionStatement","src":"22207:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22257:9:88","nodeType":"YulIdentifier","src":"22257:9:88"},{"kind":"number","nativeSrc":"22268:2:88","nodeType":"YulLiteral","src":"22268:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22253:3:88","nodeType":"YulIdentifier","src":"22253:3:88"},"nativeSrc":"22253:18:88","nodeType":"YulFunctionCall","src":"22253:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"22273:18:88","nodeType":"YulLiteral","src":"22273:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"22246:6:88","nodeType":"YulIdentifier","src":"22246:6:88"},"nativeSrc":"22246:46:88","nodeType":"YulFunctionCall","src":"22246:46:88"},"nativeSrc":"22246:46:88","nodeType":"YulExpressionStatement","src":"22246:46:88"},{"nativeSrc":"22301:26:88","nodeType":"YulAssignment","src":"22301:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22313:9:88","nodeType":"YulIdentifier","src":"22313:9:88"},{"kind":"number","nativeSrc":"22324:2:88","nodeType":"YulLiteral","src":"22324:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22309:3:88","nodeType":"YulIdentifier","src":"22309:3:88"},"nativeSrc":"22309:18:88","nodeType":"YulFunctionCall","src":"22309:18:88"},"variableNames":[{"name":"tail","nativeSrc":"22301:4:88","nodeType":"YulIdentifier","src":"22301:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21993:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22144:9:88","nodeType":"YulTypedName","src":"22144:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22158:4:88","nodeType":"YulTypedName","src":"22158:4:88","type":""}],"src":"21993:340:88"},{"body":{"nativeSrc":"22512:180:88","nodeType":"YulBlock","src":"22512:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22529:9:88","nodeType":"YulIdentifier","src":"22529:9:88"},{"kind":"number","nativeSrc":"22540:2:88","nodeType":"YulLiteral","src":"22540:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22522:6:88","nodeType":"YulIdentifier","src":"22522:6:88"},"nativeSrc":"22522:21:88","nodeType":"YulFunctionCall","src":"22522:21:88"},"nativeSrc":"22522:21:88","nodeType":"YulExpressionStatement","src":"22522:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22563:9:88","nodeType":"YulIdentifier","src":"22563:9:88"},{"kind":"number","nativeSrc":"22574:2:88","nodeType":"YulLiteral","src":"22574:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22559:3:88","nodeType":"YulIdentifier","src":"22559:3:88"},"nativeSrc":"22559:18:88","nodeType":"YulFunctionCall","src":"22559:18:88"},{"kind":"number","nativeSrc":"22579:2:88","nodeType":"YulLiteral","src":"22579:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"22552:6:88","nodeType":"YulIdentifier","src":"22552:6:88"},"nativeSrc":"22552:30:88","nodeType":"YulFunctionCall","src":"22552:30:88"},"nativeSrc":"22552:30:88","nodeType":"YulExpressionStatement","src":"22552:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22602:9:88","nodeType":"YulIdentifier","src":"22602:9:88"},{"kind":"number","nativeSrc":"22613:2:88","nodeType":"YulLiteral","src":"22613:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22598:3:88","nodeType":"YulIdentifier","src":"22598:3:88"},"nativeSrc":"22598:18:88","nodeType":"YulFunctionCall","src":"22598:18:88"},{"hexValue":"4c6f737365732063616e277420657863656564206d617844656669636974","kind":"string","nativeSrc":"22618:32:88","nodeType":"YulLiteral","src":"22618:32:88","type":"","value":"Losses can't exceed maxDeficit"}],"functionName":{"name":"mstore","nativeSrc":"22591:6:88","nodeType":"YulIdentifier","src":"22591:6:88"},"nativeSrc":"22591:60:88","nodeType":"YulFunctionCall","src":"22591:60:88"},"nativeSrc":"22591:60:88","nodeType":"YulExpressionStatement","src":"22591:60:88"},{"nativeSrc":"22660:26:88","nodeType":"YulAssignment","src":"22660:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22672:9:88","nodeType":"YulIdentifier","src":"22672:9:88"},{"kind":"number","nativeSrc":"22683:2:88","nodeType":"YulLiteral","src":"22683:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22668:3:88","nodeType":"YulIdentifier","src":"22668:3:88"},"nativeSrc":"22668:18:88","nodeType":"YulFunctionCall","src":"22668:18:88"},"variableNames":[{"name":"tail","nativeSrc":"22660:4:88","nodeType":"YulIdentifier","src":"22660:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d9febc2e3b479326be2b800bd244e6d2b8f8e42fd77d5f1d40526272a67a0efb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22338:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22489:9:88","nodeType":"YulTypedName","src":"22489:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22503:4:88","nodeType":"YulTypedName","src":"22503:4:88","type":""}],"src":"22338:354:88"},{"body":{"nativeSrc":"22871:228:88","nodeType":"YulBlock","src":"22871:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22888:9:88","nodeType":"YulIdentifier","src":"22888:9:88"},{"kind":"number","nativeSrc":"22899:2:88","nodeType":"YulLiteral","src":"22899:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22881:6:88","nodeType":"YulIdentifier","src":"22881:6:88"},"nativeSrc":"22881:21:88","nodeType":"YulFunctionCall","src":"22881:21:88"},"nativeSrc":"22881:21:88","nodeType":"YulExpressionStatement","src":"22881:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22922:9:88","nodeType":"YulIdentifier","src":"22922:9:88"},{"kind":"number","nativeSrc":"22933:2:88","nodeType":"YulLiteral","src":"22933:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22918:3:88","nodeType":"YulIdentifier","src":"22918:3:88"},"nativeSrc":"22918:18:88","nodeType":"YulFunctionCall","src":"22918:18:88"},{"kind":"number","nativeSrc":"22938:2:88","nodeType":"YulLiteral","src":"22938:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"22911:6:88","nodeType":"YulIdentifier","src":"22911:6:88"},"nativeSrc":"22911:30:88","nodeType":"YulFunctionCall","src":"22911:30:88"},"nativeSrc":"22911:30:88","nodeType":"YulExpressionStatement","src":"22911:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22961:9:88","nodeType":"YulIdentifier","src":"22961:9:88"},{"kind":"number","nativeSrc":"22972:2:88","nodeType":"YulLiteral","src":"22972:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22957:3:88","nodeType":"YulIdentifier","src":"22957:3:88"},"nativeSrc":"22957:18:88","nodeType":"YulFunctionCall","src":"22957:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"22977:34:88","nodeType":"YulLiteral","src":"22977:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"22950:6:88","nodeType":"YulIdentifier","src":"22950:6:88"},"nativeSrc":"22950:62:88","nodeType":"YulFunctionCall","src":"22950:62:88"},"nativeSrc":"22950:62:88","nodeType":"YulExpressionStatement","src":"22950:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23032:9:88","nodeType":"YulIdentifier","src":"23032:9:88"},{"kind":"number","nativeSrc":"23043:2:88","nodeType":"YulLiteral","src":"23043:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23028:3:88","nodeType":"YulIdentifier","src":"23028:3:88"},"nativeSrc":"23028:18:88","nodeType":"YulFunctionCall","src":"23028:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"23048:8:88","nodeType":"YulLiteral","src":"23048:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"23021:6:88","nodeType":"YulIdentifier","src":"23021:6:88"},"nativeSrc":"23021:36:88","nodeType":"YulFunctionCall","src":"23021:36:88"},"nativeSrc":"23021:36:88","nodeType":"YulExpressionStatement","src":"23021:36:88"},{"nativeSrc":"23066:27:88","nodeType":"YulAssignment","src":"23066:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23078:9:88","nodeType":"YulIdentifier","src":"23078:9:88"},{"kind":"number","nativeSrc":"23089:3:88","nodeType":"YulLiteral","src":"23089:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23074:3:88","nodeType":"YulIdentifier","src":"23074:3:88"},"nativeSrc":"23074:19:88","nodeType":"YulFunctionCall","src":"23074:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23066:4:88","nodeType":"YulIdentifier","src":"23066:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22697:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22848:9:88","nodeType":"YulTypedName","src":"22848:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22862:4:88","nodeType":"YulTypedName","src":"22862:4:88","type":""}],"src":"22697:402:88"},{"body":{"nativeSrc":"23278:227:88","nodeType":"YulBlock","src":"23278:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23295:9:88","nodeType":"YulIdentifier","src":"23295:9:88"},{"kind":"number","nativeSrc":"23306:2:88","nodeType":"YulLiteral","src":"23306:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23288:6:88","nodeType":"YulIdentifier","src":"23288:6:88"},"nativeSrc":"23288:21:88","nodeType":"YulFunctionCall","src":"23288:21:88"},"nativeSrc":"23288:21:88","nodeType":"YulExpressionStatement","src":"23288:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23329:9:88","nodeType":"YulIdentifier","src":"23329:9:88"},{"kind":"number","nativeSrc":"23340:2:88","nodeType":"YulLiteral","src":"23340:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23325:3:88","nodeType":"YulIdentifier","src":"23325:3:88"},"nativeSrc":"23325:18:88","nodeType":"YulFunctionCall","src":"23325:18:88"},{"kind":"number","nativeSrc":"23345:2:88","nodeType":"YulLiteral","src":"23345:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"23318:6:88","nodeType":"YulIdentifier","src":"23318:6:88"},"nativeSrc":"23318:30:88","nodeType":"YulFunctionCall","src":"23318:30:88"},"nativeSrc":"23318:30:88","nodeType":"YulExpressionStatement","src":"23318:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23368:9:88","nodeType":"YulIdentifier","src":"23368:9:88"},{"kind":"number","nativeSrc":"23379:2:88","nodeType":"YulLiteral","src":"23379:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23364:3:88","nodeType":"YulIdentifier","src":"23364:3:88"},"nativeSrc":"23364:18:88","nodeType":"YulFunctionCall","src":"23364:18:88"},{"hexValue":"56616c69646174696f6e3a2064656669636974526174696f206d757374206265","kind":"string","nativeSrc":"23384:34:88","nodeType":"YulLiteral","src":"23384:34:88","type":"","value":"Validation: deficitRatio must be"}],"functionName":{"name":"mstore","nativeSrc":"23357:6:88","nodeType":"YulIdentifier","src":"23357:6:88"},"nativeSrc":"23357:62:88","nodeType":"YulFunctionCall","src":"23357:62:88"},"nativeSrc":"23357:62:88","nodeType":"YulExpressionStatement","src":"23357:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23439:9:88","nodeType":"YulIdentifier","src":"23439:9:88"},{"kind":"number","nativeSrc":"23450:2:88","nodeType":"YulLiteral","src":"23450:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23435:3:88","nodeType":"YulIdentifier","src":"23435:3:88"},"nativeSrc":"23435:18:88","nodeType":"YulFunctionCall","src":"23435:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"23455:7:88","nodeType":"YulLiteral","src":"23455:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"23428:6:88","nodeType":"YulIdentifier","src":"23428:6:88"},"nativeSrc":"23428:35:88","nodeType":"YulFunctionCall","src":"23428:35:88"},"nativeSrc":"23428:35:88","nodeType":"YulExpressionStatement","src":"23428:35:88"},{"nativeSrc":"23472:27:88","nodeType":"YulAssignment","src":"23472:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23484:9:88","nodeType":"YulIdentifier","src":"23484:9:88"},{"kind":"number","nativeSrc":"23495:3:88","nodeType":"YulLiteral","src":"23495:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23480:3:88","nodeType":"YulIdentifier","src":"23480:3:88"},"nativeSrc":"23480:19:88","nodeType":"YulFunctionCall","src":"23480:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23472:4:88","nodeType":"YulIdentifier","src":"23472:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a00a823022fd2dc99b7021ea998105a0aa4e34f3bb6534c0f1bbb341b534786__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23104:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23255:9:88","nodeType":"YulTypedName","src":"23255:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23269:4:88","nodeType":"YulTypedName","src":"23269:4:88","type":""}],"src":"23104:401:88"},{"body":{"nativeSrc":"23591:103:88","nodeType":"YulBlock","src":"23591:103:88","statements":[{"body":{"nativeSrc":"23637:16:88","nodeType":"YulBlock","src":"23637:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23646:1:88","nodeType":"YulLiteral","src":"23646:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23649:1:88","nodeType":"YulLiteral","src":"23649:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23639:6:88","nodeType":"YulIdentifier","src":"23639:6:88"},"nativeSrc":"23639:12:88","nodeType":"YulFunctionCall","src":"23639:12:88"},"nativeSrc":"23639:12:88","nodeType":"YulExpressionStatement","src":"23639:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23612:7:88","nodeType":"YulIdentifier","src":"23612:7:88"},{"name":"headStart","nativeSrc":"23621:9:88","nodeType":"YulIdentifier","src":"23621:9:88"}],"functionName":{"name":"sub","nativeSrc":"23608:3:88","nodeType":"YulIdentifier","src":"23608:3:88"},"nativeSrc":"23608:23:88","nodeType":"YulFunctionCall","src":"23608:23:88"},{"kind":"number","nativeSrc":"23633:2:88","nodeType":"YulLiteral","src":"23633:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23604:3:88","nodeType":"YulIdentifier","src":"23604:3:88"},"nativeSrc":"23604:32:88","nodeType":"YulFunctionCall","src":"23604:32:88"},"nativeSrc":"23601:52:88","nodeType":"YulIf","src":"23601:52:88"},{"nativeSrc":"23662:26:88","nodeType":"YulAssignment","src":"23662:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23678:9:88","nodeType":"YulIdentifier","src":"23678:9:88"}],"functionName":{"name":"mload","nativeSrc":"23672:5:88","nodeType":"YulIdentifier","src":"23672:5:88"},"nativeSrc":"23672:16:88","nodeType":"YulFunctionCall","src":"23672:16:88"},"variableNames":[{"name":"value0","nativeSrc":"23662:6:88","nodeType":"YulIdentifier","src":"23662:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"23510:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23557:9:88","nodeType":"YulTypedName","src":"23557:9:88","type":""},{"name":"dataEnd","nativeSrc":"23568:7:88","nodeType":"YulTypedName","src":"23568:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23580:6:88","nodeType":"YulTypedName","src":"23580:6:88","type":""}],"src":"23510:184:88"},{"body":{"nativeSrc":"23828:145:88","nodeType":"YulBlock","src":"23828:145:88","statements":[{"nativeSrc":"23838:26:88","nodeType":"YulAssignment","src":"23838:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23850:9:88","nodeType":"YulIdentifier","src":"23850:9:88"},{"kind":"number","nativeSrc":"23861:2:88","nodeType":"YulLiteral","src":"23861:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23846:3:88","nodeType":"YulIdentifier","src":"23846:3:88"},"nativeSrc":"23846:18:88","nodeType":"YulFunctionCall","src":"23846:18:88"},"variableNames":[{"name":"tail","nativeSrc":"23838:4:88","nodeType":"YulIdentifier","src":"23838:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23880:9:88","nodeType":"YulIdentifier","src":"23880:9:88"},{"name":"value0","nativeSrc":"23891:6:88","nodeType":"YulIdentifier","src":"23891:6:88"}],"functionName":{"name":"mstore","nativeSrc":"23873:6:88","nodeType":"YulIdentifier","src":"23873:6:88"},"nativeSrc":"23873:25:88","nodeType":"YulFunctionCall","src":"23873:25:88"},"nativeSrc":"23873:25:88","nodeType":"YulExpressionStatement","src":"23873:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23918:9:88","nodeType":"YulIdentifier","src":"23918:9:88"},{"kind":"number","nativeSrc":"23929:2:88","nodeType":"YulLiteral","src":"23929:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23914:3:88","nodeType":"YulIdentifier","src":"23914:3:88"},"nativeSrc":"23914:18:88","nodeType":"YulFunctionCall","src":"23914:18:88"},{"arguments":[{"name":"value1","nativeSrc":"23938:6:88","nodeType":"YulIdentifier","src":"23938:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23954:3:88","nodeType":"YulLiteral","src":"23954:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"23959:1:88","nodeType":"YulLiteral","src":"23959:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"23950:3:88","nodeType":"YulIdentifier","src":"23950:3:88"},"nativeSrc":"23950:11:88","nodeType":"YulFunctionCall","src":"23950:11:88"},{"kind":"number","nativeSrc":"23963:1:88","nodeType":"YulLiteral","src":"23963:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"23946:3:88","nodeType":"YulIdentifier","src":"23946:3:88"},"nativeSrc":"23946:19:88","nodeType":"YulFunctionCall","src":"23946:19:88"}],"functionName":{"name":"and","nativeSrc":"23934:3:88","nodeType":"YulIdentifier","src":"23934:3:88"},"nativeSrc":"23934:32:88","nodeType":"YulFunctionCall","src":"23934:32:88"}],"functionName":{"name":"mstore","nativeSrc":"23907:6:88","nodeType":"YulIdentifier","src":"23907:6:88"},"nativeSrc":"23907:60:88","nodeType":"YulFunctionCall","src":"23907:60:88"},"nativeSrc":"23907:60:88","nodeType":"YulExpressionStatement","src":"23907:60:88"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nativeSrc":"23699:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23789:9:88","nodeType":"YulTypedName","src":"23789:9:88","type":""},{"name":"value1","nativeSrc":"23800:6:88","nodeType":"YulTypedName","src":"23800:6:88","type":""},{"name":"value0","nativeSrc":"23808:6:88","nodeType":"YulTypedName","src":"23808:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23819:4:88","nodeType":"YulTypedName","src":"23819:4:88","type":""}],"src":"23699:274:88"},{"body":{"nativeSrc":"24152:238:88","nodeType":"YulBlock","src":"24152:238:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24169:9:88","nodeType":"YulIdentifier","src":"24169:9:88"},{"kind":"number","nativeSrc":"24180:2:88","nodeType":"YulLiteral","src":"24180:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24162:6:88","nodeType":"YulIdentifier","src":"24162:6:88"},"nativeSrc":"24162:21:88","nodeType":"YulFunctionCall","src":"24162:21:88"},"nativeSrc":"24162:21:88","nodeType":"YulExpressionStatement","src":"24162:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24203:9:88","nodeType":"YulIdentifier","src":"24203:9:88"},{"kind":"number","nativeSrc":"24214:2:88","nodeType":"YulLiteral","src":"24214:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24199:3:88","nodeType":"YulIdentifier","src":"24199:3:88"},"nativeSrc":"24199:18:88","nodeType":"YulFunctionCall","src":"24199:18:88"},{"kind":"number","nativeSrc":"24219:2:88","nodeType":"YulLiteral","src":"24219:2:88","type":"","value":"48"}],"functionName":{"name":"mstore","nativeSrc":"24192:6:88","nodeType":"YulIdentifier","src":"24192:6:88"},"nativeSrc":"24192:30:88","nodeType":"YulFunctionCall","src":"24192:30:88"},"nativeSrc":"24192:30:88","nodeType":"YulExpressionStatement","src":"24192:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24242:9:88","nodeType":"YulIdentifier","src":"24242:9:88"},{"kind":"number","nativeSrc":"24253:2:88","nodeType":"YulLiteral","src":"24253:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24238:3:88","nodeType":"YulIdentifier","src":"24238:3:88"},"nativeSrc":"24238:18:88","nodeType":"YulFunctionCall","src":"24238:18:88"},{"hexValue":"446f6e2774206b6e6f7720776865726520746f20736f75726365207468652072","kind":"string","nativeSrc":"24258:34:88","nodeType":"YulLiteral","src":"24258:34:88","type":"","value":"Don't know where to source the r"}],"functionName":{"name":"mstore","nativeSrc":"24231:6:88","nodeType":"YulIdentifier","src":"24231:6:88"},"nativeSrc":"24231:62:88","nodeType":"YulFunctionCall","src":"24231:62:88"},"nativeSrc":"24231:62:88","nodeType":"YulExpressionStatement","src":"24231:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24313:9:88","nodeType":"YulIdentifier","src":"24313:9:88"},{"kind":"number","nativeSrc":"24324:2:88","nodeType":"YulLiteral","src":"24324:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24309:3:88","nodeType":"YulIdentifier","src":"24309:3:88"},"nativeSrc":"24309:18:88","nodeType":"YulFunctionCall","src":"24309:18:88"},{"hexValue":"657374206f6620746865206d6f6e6579","kind":"string","nativeSrc":"24329:18:88","nodeType":"YulLiteral","src":"24329:18:88","type":"","value":"est of the money"}],"functionName":{"name":"mstore","nativeSrc":"24302:6:88","nodeType":"YulIdentifier","src":"24302:6:88"},"nativeSrc":"24302:46:88","nodeType":"YulFunctionCall","src":"24302:46:88"},"nativeSrc":"24302:46:88","nodeType":"YulExpressionStatement","src":"24302:46:88"},{"nativeSrc":"24357:27:88","nodeType":"YulAssignment","src":"24357:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24369:9:88","nodeType":"YulIdentifier","src":"24369:9:88"},{"kind":"number","nativeSrc":"24380:3:88","nodeType":"YulLiteral","src":"24380:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24365:3:88","nodeType":"YulIdentifier","src":"24365:3:88"},"nativeSrc":"24365:19:88","nodeType":"YulFunctionCall","src":"24365:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24357:4:88","nodeType":"YulIdentifier","src":"24357:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d1a4de2b1a192a07e8c03dbae7805a4a293287ee451ffc5c57af97d34258cdc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23978:412:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24129:9:88","nodeType":"YulTypedName","src":"24129:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24143:4:88","nodeType":"YulTypedName","src":"24143:4:88","type":""}],"src":"23978:412:88"},{"body":{"nativeSrc":"24427:95:88","nodeType":"YulBlock","src":"24427:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24444:1:88","nodeType":"YulLiteral","src":"24444:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"24451:3:88","nodeType":"YulLiteral","src":"24451:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"24456:10:88","nodeType":"YulLiteral","src":"24456:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"24447:3:88","nodeType":"YulIdentifier","src":"24447:3:88"},"nativeSrc":"24447:20:88","nodeType":"YulFunctionCall","src":"24447:20:88"}],"functionName":{"name":"mstore","nativeSrc":"24437:6:88","nodeType":"YulIdentifier","src":"24437:6:88"},"nativeSrc":"24437:31:88","nodeType":"YulFunctionCall","src":"24437:31:88"},"nativeSrc":"24437:31:88","nodeType":"YulExpressionStatement","src":"24437:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24484:1:88","nodeType":"YulLiteral","src":"24484:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"24487:4:88","nodeType":"YulLiteral","src":"24487:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"24477:6:88","nodeType":"YulIdentifier","src":"24477:6:88"},"nativeSrc":"24477:15:88","nodeType":"YulFunctionCall","src":"24477:15:88"},"nativeSrc":"24477:15:88","nodeType":"YulExpressionStatement","src":"24477:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24508:1:88","nodeType":"YulLiteral","src":"24508:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"24511:4:88","nodeType":"YulLiteral","src":"24511:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"24501:6:88","nodeType":"YulIdentifier","src":"24501:6:88"},"nativeSrc":"24501:15:88","nodeType":"YulFunctionCall","src":"24501:15:88"},"nativeSrc":"24501:15:88","nodeType":"YulExpressionStatement","src":"24501:15:88"}]},"name":"panic_error_0x21","nativeSrc":"24395:127:88","nodeType":"YulFunctionDefinition","src":"24395:127:88"},{"body":{"nativeSrc":"24701:233:88","nodeType":"YulBlock","src":"24701:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24718:9:88","nodeType":"YulIdentifier","src":"24718:9:88"},{"kind":"number","nativeSrc":"24729:2:88","nodeType":"YulLiteral","src":"24729:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24711:6:88","nodeType":"YulIdentifier","src":"24711:6:88"},"nativeSrc":"24711:21:88","nodeType":"YulFunctionCall","src":"24711:21:88"},"nativeSrc":"24711:21:88","nodeType":"YulExpressionStatement","src":"24711:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24752:9:88","nodeType":"YulIdentifier","src":"24752:9:88"},{"kind":"number","nativeSrc":"24763:2:88","nodeType":"YulLiteral","src":"24763:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24748:3:88","nodeType":"YulIdentifier","src":"24748:3:88"},"nativeSrc":"24748:18:88","nodeType":"YulFunctionCall","src":"24748:18:88"},{"kind":"number","nativeSrc":"24768:2:88","nodeType":"YulLiteral","src":"24768:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"24741:6:88","nodeType":"YulIdentifier","src":"24741:6:88"},"nativeSrc":"24741:30:88","nodeType":"YulFunctionCall","src":"24741:30:88"},"nativeSrc":"24741:30:88","nodeType":"YulExpressionStatement","src":"24741:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24791:9:88","nodeType":"YulIdentifier","src":"24791:9:88"},{"kind":"number","nativeSrc":"24802:2:88","nodeType":"YulLiteral","src":"24802:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24787:3:88","nodeType":"YulIdentifier","src":"24787:3:88"},"nativeSrc":"24787:18:88","nodeType":"YulFunctionCall","src":"24787:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"24807:34:88","nodeType":"YulLiteral","src":"24807:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"24780:6:88","nodeType":"YulIdentifier","src":"24780:6:88"},"nativeSrc":"24780:62:88","nodeType":"YulFunctionCall","src":"24780:62:88"},"nativeSrc":"24780:62:88","nodeType":"YulExpressionStatement","src":"24780:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24862:9:88","nodeType":"YulIdentifier","src":"24862:9:88"},{"kind":"number","nativeSrc":"24873:2:88","nodeType":"YulLiteral","src":"24873:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24858:3:88","nodeType":"YulIdentifier","src":"24858:3:88"},"nativeSrc":"24858:18:88","nodeType":"YulFunctionCall","src":"24858:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"24878:13:88","nodeType":"YulLiteral","src":"24878:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"24851:6:88","nodeType":"YulIdentifier","src":"24851:6:88"},"nativeSrc":"24851:41:88","nodeType":"YulFunctionCall","src":"24851:41:88"},"nativeSrc":"24851:41:88","nodeType":"YulExpressionStatement","src":"24851:41:88"},{"nativeSrc":"24901:27:88","nodeType":"YulAssignment","src":"24901:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24913:9:88","nodeType":"YulIdentifier","src":"24913:9:88"},{"kind":"number","nativeSrc":"24924:3:88","nodeType":"YulLiteral","src":"24924:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24909:3:88","nodeType":"YulIdentifier","src":"24909:3:88"},"nativeSrc":"24909:19:88","nodeType":"YulFunctionCall","src":"24909:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24901:4:88","nodeType":"YulIdentifier","src":"24901:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24527:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24678:9:88","nodeType":"YulTypedName","src":"24678:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24692:4:88","nodeType":"YulTypedName","src":"24692:4:88","type":""}],"src":"24527:407:88"},{"body":{"nativeSrc":"25096:214:88","nodeType":"YulBlock","src":"25096:214:88","statements":[{"nativeSrc":"25106:26:88","nodeType":"YulAssignment","src":"25106:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25118:9:88","nodeType":"YulIdentifier","src":"25118:9:88"},{"kind":"number","nativeSrc":"25129:2:88","nodeType":"YulLiteral","src":"25129:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25114:3:88","nodeType":"YulIdentifier","src":"25114:3:88"},"nativeSrc":"25114:18:88","nodeType":"YulFunctionCall","src":"25114:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25106:4:88","nodeType":"YulIdentifier","src":"25106:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25148:9:88","nodeType":"YulIdentifier","src":"25148:9:88"},{"arguments":[{"name":"value0","nativeSrc":"25163:6:88","nodeType":"YulIdentifier","src":"25163:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25179:3:88","nodeType":"YulLiteral","src":"25179:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"25184:1:88","nodeType":"YulLiteral","src":"25184:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"25175:3:88","nodeType":"YulIdentifier","src":"25175:3:88"},"nativeSrc":"25175:11:88","nodeType":"YulFunctionCall","src":"25175:11:88"},{"kind":"number","nativeSrc":"25188:1:88","nodeType":"YulLiteral","src":"25188:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25171:3:88","nodeType":"YulIdentifier","src":"25171:3:88"},"nativeSrc":"25171:19:88","nodeType":"YulFunctionCall","src":"25171:19:88"}],"functionName":{"name":"and","nativeSrc":"25159:3:88","nodeType":"YulIdentifier","src":"25159:3:88"},"nativeSrc":"25159:32:88","nodeType":"YulFunctionCall","src":"25159:32:88"}],"functionName":{"name":"mstore","nativeSrc":"25141:6:88","nodeType":"YulIdentifier","src":"25141:6:88"},"nativeSrc":"25141:51:88","nodeType":"YulFunctionCall","src":"25141:51:88"},"nativeSrc":"25141:51:88","nodeType":"YulExpressionStatement","src":"25141:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25212:9:88","nodeType":"YulIdentifier","src":"25212:9:88"},{"kind":"number","nativeSrc":"25223:2:88","nodeType":"YulLiteral","src":"25223:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25208:3:88","nodeType":"YulIdentifier","src":"25208:3:88"},"nativeSrc":"25208:18:88","nodeType":"YulFunctionCall","src":"25208:18:88"},{"arguments":[{"name":"value1","nativeSrc":"25232:6:88","nodeType":"YulIdentifier","src":"25232:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25248:3:88","nodeType":"YulLiteral","src":"25248:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"25253:1:88","nodeType":"YulLiteral","src":"25253:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"25244:3:88","nodeType":"YulIdentifier","src":"25244:3:88"},"nativeSrc":"25244:11:88","nodeType":"YulFunctionCall","src":"25244:11:88"},{"kind":"number","nativeSrc":"25257:1:88","nodeType":"YulLiteral","src":"25257:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25240:3:88","nodeType":"YulIdentifier","src":"25240:3:88"},"nativeSrc":"25240:19:88","nodeType":"YulFunctionCall","src":"25240:19:88"}],"functionName":{"name":"and","nativeSrc":"25228:3:88","nodeType":"YulIdentifier","src":"25228:3:88"},"nativeSrc":"25228:32:88","nodeType":"YulFunctionCall","src":"25228:32:88"}],"functionName":{"name":"mstore","nativeSrc":"25201:6:88","nodeType":"YulIdentifier","src":"25201:6:88"},"nativeSrc":"25201:60:88","nodeType":"YulFunctionCall","src":"25201:60:88"},"nativeSrc":"25201:60:88","nodeType":"YulExpressionStatement","src":"25201:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25281:9:88","nodeType":"YulIdentifier","src":"25281:9:88"},{"kind":"number","nativeSrc":"25292:2:88","nodeType":"YulLiteral","src":"25292:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25277:3:88","nodeType":"YulIdentifier","src":"25277:3:88"},"nativeSrc":"25277:18:88","nodeType":"YulFunctionCall","src":"25277:18:88"},{"name":"value2","nativeSrc":"25297:6:88","nodeType":"YulIdentifier","src":"25297:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25270:6:88","nodeType":"YulIdentifier","src":"25270:6:88"},"nativeSrc":"25270:34:88","nodeType":"YulFunctionCall","src":"25270:34:88"},"nativeSrc":"25270:34:88","nodeType":"YulExpressionStatement","src":"25270:34:88"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"24939:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25049:9:88","nodeType":"YulTypedName","src":"25049:9:88","type":""},{"name":"value2","nativeSrc":"25060:6:88","nodeType":"YulTypedName","src":"25060:6:88","type":""},{"name":"value1","nativeSrc":"25068:6:88","nodeType":"YulTypedName","src":"25068:6:88","type":""},{"name":"value0","nativeSrc":"25076:6:88","nodeType":"YulTypedName","src":"25076:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25087:4:88","nodeType":"YulTypedName","src":"25087:4:88","type":""}],"src":"24939:371:88"},{"body":{"nativeSrc":"25470:162:88","nodeType":"YulBlock","src":"25470:162:88","statements":[{"nativeSrc":"25480:26:88","nodeType":"YulAssignment","src":"25480:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25492:9:88","nodeType":"YulIdentifier","src":"25492:9:88"},{"kind":"number","nativeSrc":"25503:2:88","nodeType":"YulLiteral","src":"25503:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25488:3:88","nodeType":"YulIdentifier","src":"25488:3:88"},"nativeSrc":"25488:18:88","nodeType":"YulFunctionCall","src":"25488:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25480:4:88","nodeType":"YulIdentifier","src":"25480:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25522:9:88","nodeType":"YulIdentifier","src":"25522:9:88"},{"name":"value0","nativeSrc":"25533:6:88","nodeType":"YulIdentifier","src":"25533:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25515:6:88","nodeType":"YulIdentifier","src":"25515:6:88"},"nativeSrc":"25515:25:88","nodeType":"YulFunctionCall","src":"25515:25:88"},"nativeSrc":"25515:25:88","nodeType":"YulExpressionStatement","src":"25515:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25560:9:88","nodeType":"YulIdentifier","src":"25560:9:88"},{"kind":"number","nativeSrc":"25571:2:88","nodeType":"YulLiteral","src":"25571:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25556:3:88","nodeType":"YulIdentifier","src":"25556:3:88"},"nativeSrc":"25556:18:88","nodeType":"YulFunctionCall","src":"25556:18:88"},{"name":"value1","nativeSrc":"25576:6:88","nodeType":"YulIdentifier","src":"25576:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25549:6:88","nodeType":"YulIdentifier","src":"25549:6:88"},"nativeSrc":"25549:34:88","nodeType":"YulFunctionCall","src":"25549:34:88"},"nativeSrc":"25549:34:88","nodeType":"YulExpressionStatement","src":"25549:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25603:9:88","nodeType":"YulIdentifier","src":"25603:9:88"},{"kind":"number","nativeSrc":"25614:2:88","nodeType":"YulLiteral","src":"25614:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25599:3:88","nodeType":"YulIdentifier","src":"25599:3:88"},"nativeSrc":"25599:18:88","nodeType":"YulFunctionCall","src":"25599:18:88"},{"name":"value2","nativeSrc":"25619:6:88","nodeType":"YulIdentifier","src":"25619:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25592:6:88","nodeType":"YulIdentifier","src":"25592:6:88"},"nativeSrc":"25592:34:88","nodeType":"YulFunctionCall","src":"25592:34:88"},"nativeSrc":"25592:34:88","nodeType":"YulExpressionStatement","src":"25592:34:88"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_int256__to_t_uint256_t_uint256_t_int256__fromStack_reversed","nativeSrc":"25315:317:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25423:9:88","nodeType":"YulTypedName","src":"25423:9:88","type":""},{"name":"value2","nativeSrc":"25434:6:88","nodeType":"YulTypedName","src":"25434:6:88","type":""},{"name":"value1","nativeSrc":"25442:6:88","nodeType":"YulTypedName","src":"25442:6:88","type":""},{"name":"value0","nativeSrc":"25450:6:88","nodeType":"YulTypedName","src":"25450:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25461:4:88","nodeType":"YulTypedName","src":"25461:4:88","type":""}],"src":"25315:317:88"},{"body":{"nativeSrc":"25811:227:88","nodeType":"YulBlock","src":"25811:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25828:9:88","nodeType":"YulIdentifier","src":"25828:9:88"},{"kind":"number","nativeSrc":"25839:2:88","nodeType":"YulLiteral","src":"25839:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25821:6:88","nodeType":"YulIdentifier","src":"25821:6:88"},"nativeSrc":"25821:21:88","nodeType":"YulFunctionCall","src":"25821:21:88"},"nativeSrc":"25821:21:88","nodeType":"YulExpressionStatement","src":"25821:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25862:9:88","nodeType":"YulIdentifier","src":"25862:9:88"},{"kind":"number","nativeSrc":"25873:2:88","nodeType":"YulLiteral","src":"25873:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25858:3:88","nodeType":"YulIdentifier","src":"25858:3:88"},"nativeSrc":"25858:18:88","nodeType":"YulFunctionCall","src":"25858:18:88"},{"kind":"number","nativeSrc":"25878:2:88","nodeType":"YulLiteral","src":"25878:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"25851:6:88","nodeType":"YulIdentifier","src":"25851:6:88"},"nativeSrc":"25851:30:88","nodeType":"YulFunctionCall","src":"25851:30:88"},"nativeSrc":"25851:30:88","nodeType":"YulExpressionStatement","src":"25851:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25901:9:88","nodeType":"YulIdentifier","src":"25901:9:88"},{"kind":"number","nativeSrc":"25912:2:88","nodeType":"YulLiteral","src":"25912:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25897:3:88","nodeType":"YulIdentifier","src":"25897:3:88"},"nativeSrc":"25897:18:88","nodeType":"YulFunctionCall","src":"25897:18:88"},{"hexValue":"526573657276653a207472616e7366657220746f20746865207a65726f206164","kind":"string","nativeSrc":"25917:34:88","nodeType":"YulLiteral","src":"25917:34:88","type":"","value":"Reserve: transfer to the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"25890:6:88","nodeType":"YulIdentifier","src":"25890:6:88"},"nativeSrc":"25890:62:88","nodeType":"YulFunctionCall","src":"25890:62:88"},"nativeSrc":"25890:62:88","nodeType":"YulExpressionStatement","src":"25890:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25972:9:88","nodeType":"YulIdentifier","src":"25972:9:88"},{"kind":"number","nativeSrc":"25983:2:88","nodeType":"YulLiteral","src":"25983:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25968:3:88","nodeType":"YulIdentifier","src":"25968:3:88"},"nativeSrc":"25968:18:88","nodeType":"YulFunctionCall","src":"25968:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"25988:7:88","nodeType":"YulLiteral","src":"25988:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"25961:6:88","nodeType":"YulIdentifier","src":"25961:6:88"},"nativeSrc":"25961:35:88","nodeType":"YulFunctionCall","src":"25961:35:88"},"nativeSrc":"25961:35:88","nodeType":"YulExpressionStatement","src":"25961:35:88"},{"nativeSrc":"26005:27:88","nodeType":"YulAssignment","src":"26005:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26017:9:88","nodeType":"YulIdentifier","src":"26017:9:88"},{"kind":"number","nativeSrc":"26028:3:88","nodeType":"YulLiteral","src":"26028:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26013:3:88","nodeType":"YulIdentifier","src":"26013:3:88"},"nativeSrc":"26013:19:88","nodeType":"YulFunctionCall","src":"26013:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26005:4:88","nodeType":"YulIdentifier","src":"26005:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25637:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25788:9:88","nodeType":"YulTypedName","src":"25788:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25802:4:88","nodeType":"YulTypedName","src":"25802:4:88","type":""}],"src":"25637:401:88"},{"body":{"nativeSrc":"26091:128:88","nodeType":"YulBlock","src":"26091:128:88","statements":[{"nativeSrc":"26101:55:88","nodeType":"YulAssignment","src":"26101:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"26117:1:88","nodeType":"YulIdentifier","src":"26117:1:88"},{"kind":"number","nativeSrc":"26120:12:88","nodeType":"YulLiteral","src":"26120:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"26113:3:88","nodeType":"YulIdentifier","src":"26113:3:88"},"nativeSrc":"26113:20:88","nodeType":"YulFunctionCall","src":"26113:20:88"},{"arguments":[{"name":"y","nativeSrc":"26139:1:88","nodeType":"YulIdentifier","src":"26139:1:88"},{"kind":"number","nativeSrc":"26142:12:88","nodeType":"YulLiteral","src":"26142:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"26135:3:88","nodeType":"YulIdentifier","src":"26135:3:88"},"nativeSrc":"26135:20:88","nodeType":"YulFunctionCall","src":"26135:20:88"}],"functionName":{"name":"sub","nativeSrc":"26109:3:88","nodeType":"YulIdentifier","src":"26109:3:88"},"nativeSrc":"26109:47:88","nodeType":"YulFunctionCall","src":"26109:47:88"},"variableNames":[{"name":"diff","nativeSrc":"26101:4:88","nodeType":"YulIdentifier","src":"26101:4:88"}]},{"body":{"nativeSrc":"26191:22:88","nodeType":"YulBlock","src":"26191:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"26193:16:88","nodeType":"YulIdentifier","src":"26193:16:88"},"nativeSrc":"26193:18:88","nodeType":"YulFunctionCall","src":"26193:18:88"},"nativeSrc":"26193:18:88","nodeType":"YulExpressionStatement","src":"26193:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"26171:4:88","nodeType":"YulIdentifier","src":"26171:4:88"},{"kind":"number","nativeSrc":"26177:12:88","nodeType":"YulLiteral","src":"26177:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26168:2:88","nodeType":"YulIdentifier","src":"26168:2:88"},"nativeSrc":"26168:22:88","nodeType":"YulFunctionCall","src":"26168:22:88"},"nativeSrc":"26165:48:88","nodeType":"YulIf","src":"26165:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"26043:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26073:1:88","nodeType":"YulTypedName","src":"26073:1:88","type":""},{"name":"y","nativeSrc":"26076:1:88","nodeType":"YulTypedName","src":"26076:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"26082:4:88","nodeType":"YulTypedName","src":"26082:4:88","type":""}],"src":"26043:176:88"},{"body":{"nativeSrc":"26353:171:88","nodeType":"YulBlock","src":"26353:171:88","statements":[{"nativeSrc":"26363:26:88","nodeType":"YulAssignment","src":"26363:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26375:9:88","nodeType":"YulIdentifier","src":"26375:9:88"},{"kind":"number","nativeSrc":"26386:2:88","nodeType":"YulLiteral","src":"26386:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26371:3:88","nodeType":"YulIdentifier","src":"26371:3:88"},"nativeSrc":"26371:18:88","nodeType":"YulFunctionCall","src":"26371:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26363:4:88","nodeType":"YulIdentifier","src":"26363:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26405:9:88","nodeType":"YulIdentifier","src":"26405:9:88"},{"arguments":[{"name":"value0","nativeSrc":"26420:6:88","nodeType":"YulIdentifier","src":"26420:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26436:3:88","nodeType":"YulLiteral","src":"26436:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"26441:1:88","nodeType":"YulLiteral","src":"26441:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"26432:3:88","nodeType":"YulIdentifier","src":"26432:3:88"},"nativeSrc":"26432:11:88","nodeType":"YulFunctionCall","src":"26432:11:88"},{"kind":"number","nativeSrc":"26445:1:88","nodeType":"YulLiteral","src":"26445:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26428:3:88","nodeType":"YulIdentifier","src":"26428:3:88"},"nativeSrc":"26428:19:88","nodeType":"YulFunctionCall","src":"26428:19:88"}],"functionName":{"name":"and","nativeSrc":"26416:3:88","nodeType":"YulIdentifier","src":"26416:3:88"},"nativeSrc":"26416:32:88","nodeType":"YulFunctionCall","src":"26416:32:88"}],"functionName":{"name":"mstore","nativeSrc":"26398:6:88","nodeType":"YulIdentifier","src":"26398:6:88"},"nativeSrc":"26398:51:88","nodeType":"YulFunctionCall","src":"26398:51:88"},"nativeSrc":"26398:51:88","nodeType":"YulExpressionStatement","src":"26398:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26469:9:88","nodeType":"YulIdentifier","src":"26469:9:88"},{"kind":"number","nativeSrc":"26480:2:88","nodeType":"YulLiteral","src":"26480:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26465:3:88","nodeType":"YulIdentifier","src":"26465:3:88"},"nativeSrc":"26465:18:88","nodeType":"YulFunctionCall","src":"26465:18:88"},{"arguments":[{"name":"value1","nativeSrc":"26489:6:88","nodeType":"YulIdentifier","src":"26489:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26505:3:88","nodeType":"YulLiteral","src":"26505:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"26510:1:88","nodeType":"YulLiteral","src":"26510:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"26501:3:88","nodeType":"YulIdentifier","src":"26501:3:88"},"nativeSrc":"26501:11:88","nodeType":"YulFunctionCall","src":"26501:11:88"},{"kind":"number","nativeSrc":"26514:1:88","nodeType":"YulLiteral","src":"26514:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26497:3:88","nodeType":"YulIdentifier","src":"26497:3:88"},"nativeSrc":"26497:19:88","nodeType":"YulFunctionCall","src":"26497:19:88"}],"functionName":{"name":"and","nativeSrc":"26485:3:88","nodeType":"YulIdentifier","src":"26485:3:88"},"nativeSrc":"26485:32:88","nodeType":"YulFunctionCall","src":"26485:32:88"}],"functionName":{"name":"mstore","nativeSrc":"26458:6:88","nodeType":"YulIdentifier","src":"26458:6:88"},"nativeSrc":"26458:60:88","nodeType":"YulFunctionCall","src":"26458:60:88"},"nativeSrc":"26458:60:88","nodeType":"YulExpressionStatement","src":"26458:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"26224:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26314:9:88","nodeType":"YulTypedName","src":"26314:9:88","type":""},{"name":"value1","nativeSrc":"26325:6:88","nodeType":"YulTypedName","src":"26325:6:88","type":""},{"name":"value0","nativeSrc":"26333:6:88","nodeType":"YulTypedName","src":"26333:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26344:4:88","nodeType":"YulTypedName","src":"26344:4:88","type":""}],"src":"26224:300:88"},{"body":{"nativeSrc":"26658:145:88","nodeType":"YulBlock","src":"26658:145:88","statements":[{"nativeSrc":"26668:26:88","nodeType":"YulAssignment","src":"26668:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26680:9:88","nodeType":"YulIdentifier","src":"26680:9:88"},{"kind":"number","nativeSrc":"26691:2:88","nodeType":"YulLiteral","src":"26691:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26676:3:88","nodeType":"YulIdentifier","src":"26676:3:88"},"nativeSrc":"26676:18:88","nodeType":"YulFunctionCall","src":"26676:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26668:4:88","nodeType":"YulIdentifier","src":"26668:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26710:9:88","nodeType":"YulIdentifier","src":"26710:9:88"},{"arguments":[{"name":"value0","nativeSrc":"26725:6:88","nodeType":"YulIdentifier","src":"26725:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26741:3:88","nodeType":"YulLiteral","src":"26741:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"26746:1:88","nodeType":"YulLiteral","src":"26746:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"26737:3:88","nodeType":"YulIdentifier","src":"26737:3:88"},"nativeSrc":"26737:11:88","nodeType":"YulFunctionCall","src":"26737:11:88"},{"kind":"number","nativeSrc":"26750:1:88","nodeType":"YulLiteral","src":"26750:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26733:3:88","nodeType":"YulIdentifier","src":"26733:3:88"},"nativeSrc":"26733:19:88","nodeType":"YulFunctionCall","src":"26733:19:88"}],"functionName":{"name":"and","nativeSrc":"26721:3:88","nodeType":"YulIdentifier","src":"26721:3:88"},"nativeSrc":"26721:32:88","nodeType":"YulFunctionCall","src":"26721:32:88"}],"functionName":{"name":"mstore","nativeSrc":"26703:6:88","nodeType":"YulIdentifier","src":"26703:6:88"},"nativeSrc":"26703:51:88","nodeType":"YulFunctionCall","src":"26703:51:88"},"nativeSrc":"26703:51:88","nodeType":"YulExpressionStatement","src":"26703:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26774:9:88","nodeType":"YulIdentifier","src":"26774:9:88"},{"kind":"number","nativeSrc":"26785:2:88","nodeType":"YulLiteral","src":"26785:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26770:3:88","nodeType":"YulIdentifier","src":"26770:3:88"},"nativeSrc":"26770:18:88","nodeType":"YulFunctionCall","src":"26770:18:88"},{"name":"value1","nativeSrc":"26790:6:88","nodeType":"YulIdentifier","src":"26790:6:88"}],"functionName":{"name":"mstore","nativeSrc":"26763:6:88","nodeType":"YulIdentifier","src":"26763:6:88"},"nativeSrc":"26763:34:88","nodeType":"YulFunctionCall","src":"26763:34:88"},"nativeSrc":"26763:34:88","nodeType":"YulExpressionStatement","src":"26763:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"26529:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26619:9:88","nodeType":"YulTypedName","src":"26619:9:88","type":""},{"name":"value1","nativeSrc":"26630:6:88","nodeType":"YulTypedName","src":"26630:6:88","type":""},{"name":"value0","nativeSrc":"26638:6:88","nodeType":"YulTypedName","src":"26638:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26649:4:88","nodeType":"YulTypedName","src":"26649:4:88","type":""}],"src":"26529:274:88"},{"body":{"nativeSrc":"26906:170:88","nodeType":"YulBlock","src":"26906:170:88","statements":[{"body":{"nativeSrc":"26952:16:88","nodeType":"YulBlock","src":"26952:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26961:1:88","nodeType":"YulLiteral","src":"26961:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26964:1:88","nodeType":"YulLiteral","src":"26964:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26954:6:88","nodeType":"YulIdentifier","src":"26954:6:88"},"nativeSrc":"26954:12:88","nodeType":"YulFunctionCall","src":"26954:12:88"},"nativeSrc":"26954:12:88","nodeType":"YulExpressionStatement","src":"26954:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26927:7:88","nodeType":"YulIdentifier","src":"26927:7:88"},{"name":"headStart","nativeSrc":"26936:9:88","nodeType":"YulIdentifier","src":"26936:9:88"}],"functionName":{"name":"sub","nativeSrc":"26923:3:88","nodeType":"YulIdentifier","src":"26923:3:88"},"nativeSrc":"26923:23:88","nodeType":"YulFunctionCall","src":"26923:23:88"},{"kind":"number","nativeSrc":"26948:2:88","nodeType":"YulLiteral","src":"26948:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26919:3:88","nodeType":"YulIdentifier","src":"26919:3:88"},"nativeSrc":"26919:32:88","nodeType":"YulFunctionCall","src":"26919:32:88"},"nativeSrc":"26916:52:88","nodeType":"YulIf","src":"26916:52:88"},{"nativeSrc":"26977:29:88","nodeType":"YulVariableDeclaration","src":"26977:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26996:9:88","nodeType":"YulIdentifier","src":"26996:9:88"}],"functionName":{"name":"mload","nativeSrc":"26990:5:88","nodeType":"YulIdentifier","src":"26990:5:88"},"nativeSrc":"26990:16:88","nodeType":"YulFunctionCall","src":"26990:16:88"},"variables":[{"name":"value","nativeSrc":"26981:5:88","nodeType":"YulTypedName","src":"26981:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"27040:5:88","nodeType":"YulIdentifier","src":"27040:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"27015:24:88","nodeType":"YulIdentifier","src":"27015:24:88"},"nativeSrc":"27015:31:88","nodeType":"YulFunctionCall","src":"27015:31:88"},"nativeSrc":"27015:31:88","nodeType":"YulExpressionStatement","src":"27015:31:88"},{"nativeSrc":"27055:15:88","nodeType":"YulAssignment","src":"27055:15:88","value":{"name":"value","nativeSrc":"27065:5:88","nodeType":"YulIdentifier","src":"27065:5:88"},"variableNames":[{"name":"value0","nativeSrc":"27055:6:88","nodeType":"YulIdentifier","src":"27055:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory","nativeSrc":"26808:268:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26872:9:88","nodeType":"YulTypedName","src":"26872:9:88","type":""},{"name":"dataEnd","nativeSrc":"26883:7:88","nodeType":"YulTypedName","src":"26883:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26895:6:88","nodeType":"YulTypedName","src":"26895:6:88","type":""}],"src":"26808:268:88"},{"body":{"nativeSrc":"27255:246:88","nodeType":"YulBlock","src":"27255:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27272:9:88","nodeType":"YulIdentifier","src":"27272:9:88"},{"kind":"number","nativeSrc":"27283:2:88","nodeType":"YulLiteral","src":"27283:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27265:6:88","nodeType":"YulIdentifier","src":"27265:6:88"},"nativeSrc":"27265:21:88","nodeType":"YulFunctionCall","src":"27265:21:88"},"nativeSrc":"27265:21:88","nodeType":"YulExpressionStatement","src":"27265:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27306:9:88","nodeType":"YulIdentifier","src":"27306:9:88"},{"kind":"number","nativeSrc":"27317:2:88","nodeType":"YulLiteral","src":"27317:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27302:3:88","nodeType":"YulIdentifier","src":"27302:3:88"},"nativeSrc":"27302:18:88","nodeType":"YulFunctionCall","src":"27302:18:88"},{"kind":"number","nativeSrc":"27322:2:88","nodeType":"YulLiteral","src":"27322:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"27295:6:88","nodeType":"YulIdentifier","src":"27295:6:88"},"nativeSrc":"27295:30:88","nodeType":"YulFunctionCall","src":"27295:30:88"},"nativeSrc":"27295:30:88","nodeType":"YulExpressionStatement","src":"27295:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27345:9:88","nodeType":"YulIdentifier","src":"27345:9:88"},{"kind":"number","nativeSrc":"27356:2:88","nodeType":"YulLiteral","src":"27356:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27341:3:88","nodeType":"YulIdentifier","src":"27341:3:88"},"nativeSrc":"27341:18:88","nodeType":"YulFunctionCall","src":"27341:18:88"},{"hexValue":"43616e27742075706772616465206368616e67696e6720746865204a756e696f","kind":"string","nativeSrc":"27361:34:88","nodeType":"YulLiteral","src":"27361:34:88","type":"","value":"Can't upgrade changing the Junio"}],"functionName":{"name":"mstore","nativeSrc":"27334:6:88","nodeType":"YulIdentifier","src":"27334:6:88"},"nativeSrc":"27334:62:88","nodeType":"YulFunctionCall","src":"27334:62:88"},"nativeSrc":"27334:62:88","nodeType":"YulExpressionStatement","src":"27334:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27416:9:88","nodeType":"YulIdentifier","src":"27416:9:88"},{"kind":"number","nativeSrc":"27427:2:88","nodeType":"YulLiteral","src":"27427:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27412:3:88","nodeType":"YulIdentifier","src":"27412:3:88"},"nativeSrc":"27412:18:88","nodeType":"YulFunctionCall","src":"27412:18:88"},{"hexValue":"722045544b20756e6c65737320746f206e6f6e2d7a65726f","kind":"string","nativeSrc":"27432:26:88","nodeType":"YulLiteral","src":"27432:26:88","type":"","value":"r ETK unless to non-zero"}],"functionName":{"name":"mstore","nativeSrc":"27405:6:88","nodeType":"YulIdentifier","src":"27405:6:88"},"nativeSrc":"27405:54:88","nodeType":"YulFunctionCall","src":"27405:54:88"},"nativeSrc":"27405:54:88","nodeType":"YulExpressionStatement","src":"27405:54:88"},{"nativeSrc":"27468:27:88","nodeType":"YulAssignment","src":"27468:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27480:9:88","nodeType":"YulIdentifier","src":"27480:9:88"},{"kind":"number","nativeSrc":"27491:3:88","nodeType":"YulLiteral","src":"27491:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27476:3:88","nodeType":"YulIdentifier","src":"27476:3:88"},"nativeSrc":"27476:19:88","nodeType":"YulFunctionCall","src":"27476:19:88"},"variableNames":[{"name":"tail","nativeSrc":"27468:4:88","nodeType":"YulIdentifier","src":"27468:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fb52a6adba91dbdb89dd23972f573b9fba4a5c7c6cf1978d8becbf69230f76c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27081:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27232:9:88","nodeType":"YulTypedName","src":"27232:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27246:4:88","nodeType":"YulTypedName","src":"27246:4:88","type":""}],"src":"27081:420:88"},{"body":{"nativeSrc":"27680:246:88","nodeType":"YulBlock","src":"27680:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27697:9:88","nodeType":"YulIdentifier","src":"27697:9:88"},{"kind":"number","nativeSrc":"27708:2:88","nodeType":"YulLiteral","src":"27708:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27690:6:88","nodeType":"YulIdentifier","src":"27690:6:88"},"nativeSrc":"27690:21:88","nodeType":"YulFunctionCall","src":"27690:21:88"},"nativeSrc":"27690:21:88","nodeType":"YulExpressionStatement","src":"27690:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27731:9:88","nodeType":"YulIdentifier","src":"27731:9:88"},{"kind":"number","nativeSrc":"27742:2:88","nodeType":"YulLiteral","src":"27742:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27727:3:88","nodeType":"YulIdentifier","src":"27727:3:88"},"nativeSrc":"27727:18:88","nodeType":"YulFunctionCall","src":"27727:18:88"},{"kind":"number","nativeSrc":"27747:2:88","nodeType":"YulLiteral","src":"27747:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"27720:6:88","nodeType":"YulIdentifier","src":"27720:6:88"},"nativeSrc":"27720:30:88","nodeType":"YulFunctionCall","src":"27720:30:88"},"nativeSrc":"27720:30:88","nodeType":"YulExpressionStatement","src":"27720:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27770:9:88","nodeType":"YulIdentifier","src":"27770:9:88"},{"kind":"number","nativeSrc":"27781:2:88","nodeType":"YulLiteral","src":"27781:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27766:3:88","nodeType":"YulIdentifier","src":"27766:3:88"},"nativeSrc":"27766:18:88","nodeType":"YulFunctionCall","src":"27766:18:88"},{"hexValue":"43616e27742075706772616465206368616e67696e67207468652053656e696f","kind":"string","nativeSrc":"27786:34:88","nodeType":"YulLiteral","src":"27786:34:88","type":"","value":"Can't upgrade changing the Senio"}],"functionName":{"name":"mstore","nativeSrc":"27759:6:88","nodeType":"YulIdentifier","src":"27759:6:88"},"nativeSrc":"27759:62:88","nodeType":"YulFunctionCall","src":"27759:62:88"},"nativeSrc":"27759:62:88","nodeType":"YulExpressionStatement","src":"27759:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27841:9:88","nodeType":"YulIdentifier","src":"27841:9:88"},{"kind":"number","nativeSrc":"27852:2:88","nodeType":"YulLiteral","src":"27852:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27837:3:88","nodeType":"YulIdentifier","src":"27837:3:88"},"nativeSrc":"27837:18:88","nodeType":"YulFunctionCall","src":"27837:18:88"},{"hexValue":"722045544b20756e6c65737320746f206e6f6e2d7a65726f","kind":"string","nativeSrc":"27857:26:88","nodeType":"YulLiteral","src":"27857:26:88","type":"","value":"r ETK unless to non-zero"}],"functionName":{"name":"mstore","nativeSrc":"27830:6:88","nodeType":"YulIdentifier","src":"27830:6:88"},"nativeSrc":"27830:54:88","nodeType":"YulFunctionCall","src":"27830:54:88"},"nativeSrc":"27830:54:88","nodeType":"YulExpressionStatement","src":"27830:54:88"},{"nativeSrc":"27893:27:88","nodeType":"YulAssignment","src":"27893:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27905:9:88","nodeType":"YulIdentifier","src":"27905:9:88"},{"kind":"number","nativeSrc":"27916:3:88","nodeType":"YulLiteral","src":"27916:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27901:3:88","nodeType":"YulIdentifier","src":"27901:3:88"},"nativeSrc":"27901:19:88","nodeType":"YulFunctionCall","src":"27901:19:88"},"variableNames":[{"name":"tail","nativeSrc":"27893:4:88","nodeType":"YulIdentifier","src":"27893:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_495e5d5ae96f4a92de4c7e46823cf0f415aec3a853b962248cd8fe1c513de6db__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27506:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27657:9:88","nodeType":"YulTypedName","src":"27657:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27671:4:88","nodeType":"YulTypedName","src":"27671:4:88","type":""}],"src":"27506:420:88"},{"body":{"nativeSrc":"28105:235:88","nodeType":"YulBlock","src":"28105:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28122:9:88","nodeType":"YulIdentifier","src":"28122:9:88"},{"kind":"number","nativeSrc":"28133:2:88","nodeType":"YulLiteral","src":"28133:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28115:6:88","nodeType":"YulIdentifier","src":"28115:6:88"},"nativeSrc":"28115:21:88","nodeType":"YulFunctionCall","src":"28115:21:88"},"nativeSrc":"28115:21:88","nodeType":"YulExpressionStatement","src":"28115:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28156:9:88","nodeType":"YulIdentifier","src":"28156:9:88"},{"kind":"number","nativeSrc":"28167:2:88","nodeType":"YulLiteral","src":"28167:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28152:3:88","nodeType":"YulIdentifier","src":"28152:3:88"},"nativeSrc":"28152:18:88","nodeType":"YulFunctionCall","src":"28152:18:88"},{"kind":"number","nativeSrc":"28172:2:88","nodeType":"YulLiteral","src":"28172:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"28145:6:88","nodeType":"YulIdentifier","src":"28145:6:88"},"nativeSrc":"28145:30:88","nodeType":"YulFunctionCall","src":"28145:30:88"},"nativeSrc":"28145:30:88","nodeType":"YulExpressionStatement","src":"28145:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28195:9:88","nodeType":"YulIdentifier","src":"28195:9:88"},{"kind":"number","nativeSrc":"28206:2:88","nodeType":"YulLiteral","src":"28206:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28191:3:88","nodeType":"YulIdentifier","src":"28191:3:88"},"nativeSrc":"28191:18:88","nodeType":"YulFunctionCall","src":"28191:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"28211:34:88","nodeType":"YulLiteral","src":"28211:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"28184:6:88","nodeType":"YulIdentifier","src":"28184:6:88"},"nativeSrc":"28184:62:88","nodeType":"YulFunctionCall","src":"28184:62:88"},"nativeSrc":"28184:62:88","nodeType":"YulExpressionStatement","src":"28184:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28266:9:88","nodeType":"YulIdentifier","src":"28266:9:88"},{"kind":"number","nativeSrc":"28277:2:88","nodeType":"YulLiteral","src":"28277:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28262:3:88","nodeType":"YulIdentifier","src":"28262:3:88"},"nativeSrc":"28262:18:88","nodeType":"YulFunctionCall","src":"28262:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"28282:15:88","nodeType":"YulLiteral","src":"28282:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"28255:6:88","nodeType":"YulIdentifier","src":"28255:6:88"},"nativeSrc":"28255:43:88","nodeType":"YulFunctionCall","src":"28255:43:88"},"nativeSrc":"28255:43:88","nodeType":"YulExpressionStatement","src":"28255:43:88"},{"nativeSrc":"28307:27:88","nodeType":"YulAssignment","src":"28307:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28319:9:88","nodeType":"YulIdentifier","src":"28319:9:88"},{"kind":"number","nativeSrc":"28330:3:88","nodeType":"YulLiteral","src":"28330:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28315:3:88","nodeType":"YulIdentifier","src":"28315:3:88"},"nativeSrc":"28315:19:88","nodeType":"YulFunctionCall","src":"28315:19:88"},"variableNames":[{"name":"tail","nativeSrc":"28307:4:88","nodeType":"YulIdentifier","src":"28307:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27931:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28082:9:88","nodeType":"YulTypedName","src":"28082:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28096:4:88","nodeType":"YulTypedName","src":"28096:4:88","type":""}],"src":"27931:409:88"},{"body":{"nativeSrc":"28519:170:88","nodeType":"YulBlock","src":"28519:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28536:9:88","nodeType":"YulIdentifier","src":"28536:9:88"},{"kind":"number","nativeSrc":"28547:2:88","nodeType":"YulLiteral","src":"28547:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28529:6:88","nodeType":"YulIdentifier","src":"28529:6:88"},"nativeSrc":"28529:21:88","nodeType":"YulFunctionCall","src":"28529:21:88"},"nativeSrc":"28529:21:88","nodeType":"YulExpressionStatement","src":"28529:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28570:9:88","nodeType":"YulIdentifier","src":"28570:9:88"},{"kind":"number","nativeSrc":"28581:2:88","nodeType":"YulLiteral","src":"28581:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28566:3:88","nodeType":"YulIdentifier","src":"28566:3:88"},"nativeSrc":"28566:18:88","nodeType":"YulFunctionCall","src":"28566:18:88"},{"kind":"number","nativeSrc":"28586:2:88","nodeType":"YulLiteral","src":"28586:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"28559:6:88","nodeType":"YulIdentifier","src":"28559:6:88"},"nativeSrc":"28559:30:88","nodeType":"YulFunctionCall","src":"28559:30:88"},"nativeSrc":"28559:30:88","nodeType":"YulExpressionStatement","src":"28559:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28609:9:88","nodeType":"YulIdentifier","src":"28609:9:88"},{"kind":"number","nativeSrc":"28620:2:88","nodeType":"YulLiteral","src":"28620:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28605:3:88","nodeType":"YulIdentifier","src":"28605:3:88"},"nativeSrc":"28605:18:88","nodeType":"YulFunctionCall","src":"28605:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"28625:22:88","nodeType":"YulLiteral","src":"28625:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"28598:6:88","nodeType":"YulIdentifier","src":"28598:6:88"},"nativeSrc":"28598:50:88","nodeType":"YulFunctionCall","src":"28598:50:88"},"nativeSrc":"28598:50:88","nodeType":"YulExpressionStatement","src":"28598:50:88"},{"nativeSrc":"28657:26:88","nodeType":"YulAssignment","src":"28657:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28669:9:88","nodeType":"YulIdentifier","src":"28669:9:88"},{"kind":"number","nativeSrc":"28680:2:88","nodeType":"YulLiteral","src":"28680:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28665:3:88","nodeType":"YulIdentifier","src":"28665:3:88"},"nativeSrc":"28665:18:88","nodeType":"YulFunctionCall","src":"28665:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28657:4:88","nodeType":"YulIdentifier","src":"28657:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28345:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28496:9:88","nodeType":"YulTypedName","src":"28496:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28510:4:88","nodeType":"YulTypedName","src":"28510:4:88","type":""}],"src":"28345:344:88"},{"body":{"nativeSrc":"28868:232:88","nodeType":"YulBlock","src":"28868:232:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28885:9:88","nodeType":"YulIdentifier","src":"28885:9:88"},{"kind":"number","nativeSrc":"28896:2:88","nodeType":"YulLiteral","src":"28896:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28878:6:88","nodeType":"YulIdentifier","src":"28878:6:88"},"nativeSrc":"28878:21:88","nodeType":"YulFunctionCall","src":"28878:21:88"},"nativeSrc":"28878:21:88","nodeType":"YulExpressionStatement","src":"28878:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28919:9:88","nodeType":"YulIdentifier","src":"28919:9:88"},{"kind":"number","nativeSrc":"28930:2:88","nodeType":"YulLiteral","src":"28930:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28915:3:88","nodeType":"YulIdentifier","src":"28915:3:88"},"nativeSrc":"28915:18:88","nodeType":"YulFunctionCall","src":"28915:18:88"},{"kind":"number","nativeSrc":"28935:2:88","nodeType":"YulLiteral","src":"28935:2:88","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"28908:6:88","nodeType":"YulIdentifier","src":"28908:6:88"},"nativeSrc":"28908:30:88","nodeType":"YulFunctionCall","src":"28908:30:88"},"nativeSrc":"28908:30:88","nodeType":"YulExpressionStatement","src":"28908:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28958:9:88","nodeType":"YulIdentifier","src":"28958:9:88"},{"kind":"number","nativeSrc":"28969:2:88","nodeType":"YulLiteral","src":"28969:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28954:3:88","nodeType":"YulIdentifier","src":"28954:3:88"},"nativeSrc":"28954:18:88","nodeType":"YulFunctionCall","src":"28954:18:88"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"28974:34:88","nodeType":"YulLiteral","src":"28974:34:88","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"28947:6:88","nodeType":"YulIdentifier","src":"28947:6:88"},"nativeSrc":"28947:62:88","nodeType":"YulFunctionCall","src":"28947:62:88"},"nativeSrc":"28947:62:88","nodeType":"YulExpressionStatement","src":"28947:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29029:9:88","nodeType":"YulIdentifier","src":"29029:9:88"},{"kind":"number","nativeSrc":"29040:2:88","nodeType":"YulLiteral","src":"29040:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29025:3:88","nodeType":"YulIdentifier","src":"29025:3:88"},"nativeSrc":"29025:18:88","nodeType":"YulFunctionCall","src":"29025:18:88"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"29045:12:88","nodeType":"YulLiteral","src":"29045:12:88","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"29018:6:88","nodeType":"YulIdentifier","src":"29018:6:88"},"nativeSrc":"29018:40:88","nodeType":"YulFunctionCall","src":"29018:40:88"},"nativeSrc":"29018:40:88","nodeType":"YulExpressionStatement","src":"29018:40:88"},{"nativeSrc":"29067:27:88","nodeType":"YulAssignment","src":"29067:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29079:9:88","nodeType":"YulIdentifier","src":"29079:9:88"},{"kind":"number","nativeSrc":"29090:3:88","nodeType":"YulLiteral","src":"29090:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29075:3:88","nodeType":"YulIdentifier","src":"29075:3:88"},"nativeSrc":"29075:19:88","nodeType":"YulFunctionCall","src":"29075:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29067:4:88","nodeType":"YulIdentifier","src":"29067:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28694:406:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28845:9:88","nodeType":"YulTypedName","src":"28845:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28859:4:88","nodeType":"YulTypedName","src":"28859:4:88","type":""}],"src":"28694:406:88"},{"body":{"nativeSrc":"29279:228:88","nodeType":"YulBlock","src":"29279:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29296:9:88","nodeType":"YulIdentifier","src":"29296:9:88"},{"kind":"number","nativeSrc":"29307:2:88","nodeType":"YulLiteral","src":"29307:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29289:6:88","nodeType":"YulIdentifier","src":"29289:6:88"},"nativeSrc":"29289:21:88","nodeType":"YulFunctionCall","src":"29289:21:88"},"nativeSrc":"29289:21:88","nodeType":"YulExpressionStatement","src":"29289:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29330:9:88","nodeType":"YulIdentifier","src":"29330:9:88"},{"kind":"number","nativeSrc":"29341:2:88","nodeType":"YulLiteral","src":"29341:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29326:3:88","nodeType":"YulIdentifier","src":"29326:3:88"},"nativeSrc":"29326:18:88","nodeType":"YulFunctionCall","src":"29326:18:88"},{"kind":"number","nativeSrc":"29346:2:88","nodeType":"YulLiteral","src":"29346:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"29319:6:88","nodeType":"YulIdentifier","src":"29319:6:88"},"nativeSrc":"29319:30:88","nodeType":"YulFunctionCall","src":"29319:30:88"},"nativeSrc":"29319:30:88","nodeType":"YulExpressionStatement","src":"29319:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29369:9:88","nodeType":"YulIdentifier","src":"29369:9:88"},{"kind":"number","nativeSrc":"29380:2:88","nodeType":"YulLiteral","src":"29380:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29365:3:88","nodeType":"YulIdentifier","src":"29365:3:88"},"nativeSrc":"29365:18:88","nodeType":"YulFunctionCall","src":"29365:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"29385:34:88","nodeType":"YulLiteral","src":"29385:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"29358:6:88","nodeType":"YulIdentifier","src":"29358:6:88"},"nativeSrc":"29358:62:88","nodeType":"YulFunctionCall","src":"29358:62:88"},"nativeSrc":"29358:62:88","nodeType":"YulExpressionStatement","src":"29358:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29440:9:88","nodeType":"YulIdentifier","src":"29440:9:88"},{"kind":"number","nativeSrc":"29451:2:88","nodeType":"YulLiteral","src":"29451:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29436:3:88","nodeType":"YulIdentifier","src":"29436:3:88"},"nativeSrc":"29436:18:88","nodeType":"YulFunctionCall","src":"29436:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"29456:8:88","nodeType":"YulLiteral","src":"29456:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"29429:6:88","nodeType":"YulIdentifier","src":"29429:6:88"},"nativeSrc":"29429:36:88","nodeType":"YulFunctionCall","src":"29429:36:88"},"nativeSrc":"29429:36:88","nodeType":"YulExpressionStatement","src":"29429:36:88"},{"nativeSrc":"29474:27:88","nodeType":"YulAssignment","src":"29474:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29486:9:88","nodeType":"YulIdentifier","src":"29486:9:88"},{"kind":"number","nativeSrc":"29497:3:88","nodeType":"YulLiteral","src":"29497:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29482:3:88","nodeType":"YulIdentifier","src":"29482:3:88"},"nativeSrc":"29482:19:88","nodeType":"YulFunctionCall","src":"29482:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29474:4:88","nodeType":"YulIdentifier","src":"29474:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29105:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29256:9:88","nodeType":"YulTypedName","src":"29256:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29270:4:88","nodeType":"YulTypedName","src":"29270:4:88","type":""}],"src":"29105:402:88"},{"body":{"nativeSrc":"29686:179:88","nodeType":"YulBlock","src":"29686:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29703:9:88","nodeType":"YulIdentifier","src":"29703:9:88"},{"kind":"number","nativeSrc":"29714:2:88","nodeType":"YulLiteral","src":"29714:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29696:6:88","nodeType":"YulIdentifier","src":"29696:6:88"},"nativeSrc":"29696:21:88","nodeType":"YulFunctionCall","src":"29696:21:88"},"nativeSrc":"29696:21:88","nodeType":"YulExpressionStatement","src":"29696:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29737:9:88","nodeType":"YulIdentifier","src":"29737:9:88"},{"kind":"number","nativeSrc":"29748:2:88","nodeType":"YulLiteral","src":"29748:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29733:3:88","nodeType":"YulIdentifier","src":"29733:3:88"},"nativeSrc":"29733:18:88","nodeType":"YulFunctionCall","src":"29733:18:88"},{"kind":"number","nativeSrc":"29753:2:88","nodeType":"YulLiteral","src":"29753:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"29726:6:88","nodeType":"YulIdentifier","src":"29726:6:88"},"nativeSrc":"29726:30:88","nodeType":"YulFunctionCall","src":"29726:30:88"},"nativeSrc":"29726:30:88","nodeType":"YulExpressionStatement","src":"29726:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29776:9:88","nodeType":"YulIdentifier","src":"29776:9:88"},{"kind":"number","nativeSrc":"29787:2:88","nodeType":"YulLiteral","src":"29787:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29772:3:88","nodeType":"YulIdentifier","src":"29772:3:88"},"nativeSrc":"29772:18:88","nodeType":"YulFunctionCall","src":"29772:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"29792:31:88","nodeType":"YulLiteral","src":"29792:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"29765:6:88","nodeType":"YulIdentifier","src":"29765:6:88"},"nativeSrc":"29765:59:88","nodeType":"YulFunctionCall","src":"29765:59:88"},"nativeSrc":"29765:59:88","nodeType":"YulExpressionStatement","src":"29765:59:88"},{"nativeSrc":"29833:26:88","nodeType":"YulAssignment","src":"29833:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29845:9:88","nodeType":"YulIdentifier","src":"29845:9:88"},{"kind":"number","nativeSrc":"29856:2:88","nodeType":"YulLiteral","src":"29856:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29841:3:88","nodeType":"YulIdentifier","src":"29841:3:88"},"nativeSrc":"29841:18:88","nodeType":"YulFunctionCall","src":"29841:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29833:4:88","nodeType":"YulIdentifier","src":"29833:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29512:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29663:9:88","nodeType":"YulTypedName","src":"29663:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29677:4:88","nodeType":"YulTypedName","src":"29677:4:88","type":""}],"src":"29512:353:88"},{"body":{"nativeSrc":"29972:170:88","nodeType":"YulBlock","src":"29972:170:88","statements":[{"body":{"nativeSrc":"30018:16:88","nodeType":"YulBlock","src":"30018:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30027:1:88","nodeType":"YulLiteral","src":"30027:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"30030:1:88","nodeType":"YulLiteral","src":"30030:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30020:6:88","nodeType":"YulIdentifier","src":"30020:6:88"},"nativeSrc":"30020:12:88","nodeType":"YulFunctionCall","src":"30020:12:88"},"nativeSrc":"30020:12:88","nodeType":"YulExpressionStatement","src":"30020:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29993:7:88","nodeType":"YulIdentifier","src":"29993:7:88"},{"name":"headStart","nativeSrc":"30002:9:88","nodeType":"YulIdentifier","src":"30002:9:88"}],"functionName":{"name":"sub","nativeSrc":"29989:3:88","nodeType":"YulIdentifier","src":"29989:3:88"},"nativeSrc":"29989:23:88","nodeType":"YulFunctionCall","src":"29989:23:88"},{"kind":"number","nativeSrc":"30014:2:88","nodeType":"YulLiteral","src":"30014:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29985:3:88","nodeType":"YulIdentifier","src":"29985:3:88"},"nativeSrc":"29985:32:88","nodeType":"YulFunctionCall","src":"29985:32:88"},"nativeSrc":"29982:52:88","nodeType":"YulIf","src":"29982:52:88"},{"nativeSrc":"30043:29:88","nodeType":"YulVariableDeclaration","src":"30043:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30062:9:88","nodeType":"YulIdentifier","src":"30062:9:88"}],"functionName":{"name":"mload","nativeSrc":"30056:5:88","nodeType":"YulIdentifier","src":"30056:5:88"},"nativeSrc":"30056:16:88","nodeType":"YulFunctionCall","src":"30056:16:88"},"variables":[{"name":"value","nativeSrc":"30047:5:88","nodeType":"YulTypedName","src":"30047:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"30106:5:88","nodeType":"YulIdentifier","src":"30106:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"30081:24:88","nodeType":"YulIdentifier","src":"30081:24:88"},"nativeSrc":"30081:31:88","nodeType":"YulFunctionCall","src":"30081:31:88"},"nativeSrc":"30081:31:88","nodeType":"YulExpressionStatement","src":"30081:31:88"},{"nativeSrc":"30121:15:88","nodeType":"YulAssignment","src":"30121:15:88","value":{"name":"value","nativeSrc":"30131:5:88","nodeType":"YulIdentifier","src":"30131:5:88"},"variableNames":[{"name":"value0","nativeSrc":"30121:6:88","nodeType":"YulIdentifier","src":"30121:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"29870:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29938:9:88","nodeType":"YulTypedName","src":"29938:9:88","type":""},{"name":"dataEnd","nativeSrc":"29949:7:88","nodeType":"YulTypedName","src":"29949:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29961:6:88","nodeType":"YulTypedName","src":"29961:6:88","type":""}],"src":"29870:272:88"},{"body":{"nativeSrc":"30268:98:88","nodeType":"YulBlock","src":"30268:98:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30285:9:88","nodeType":"YulIdentifier","src":"30285:9:88"},{"kind":"number","nativeSrc":"30296:2:88","nodeType":"YulLiteral","src":"30296:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30278:6:88","nodeType":"YulIdentifier","src":"30278:6:88"},"nativeSrc":"30278:21:88","nodeType":"YulFunctionCall","src":"30278:21:88"},"nativeSrc":"30278:21:88","nodeType":"YulExpressionStatement","src":"30278:21:88"},{"nativeSrc":"30308:52:88","nodeType":"YulAssignment","src":"30308:52:88","value":{"arguments":[{"name":"value0","nativeSrc":"30333:6:88","nodeType":"YulIdentifier","src":"30333:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"30345:9:88","nodeType":"YulIdentifier","src":"30345:9:88"},{"kind":"number","nativeSrc":"30356:2:88","nodeType":"YulLiteral","src":"30356:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30341:3:88","nodeType":"YulIdentifier","src":"30341:3:88"},"nativeSrc":"30341:18:88","nodeType":"YulFunctionCall","src":"30341:18:88"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"30316:16:88","nodeType":"YulIdentifier","src":"30316:16:88"},"nativeSrc":"30316:44:88","nodeType":"YulFunctionCall","src":"30316:44:88"},"variableNames":[{"name":"tail","nativeSrc":"30308:4:88","nodeType":"YulIdentifier","src":"30308:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30147:219:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30237:9:88","nodeType":"YulTypedName","src":"30237:9:88","type":""},{"name":"value0","nativeSrc":"30248:6:88","nodeType":"YulTypedName","src":"30248:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30259:4:88","nodeType":"YulTypedName","src":"30259:4:88","type":""}],"src":"30147:219:88"},{"body":{"nativeSrc":"30545:228:88","nodeType":"YulBlock","src":"30545:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30562:9:88","nodeType":"YulIdentifier","src":"30562:9:88"},{"kind":"number","nativeSrc":"30573:2:88","nodeType":"YulLiteral","src":"30573:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30555:6:88","nodeType":"YulIdentifier","src":"30555:6:88"},"nativeSrc":"30555:21:88","nodeType":"YulFunctionCall","src":"30555:21:88"},"nativeSrc":"30555:21:88","nodeType":"YulExpressionStatement","src":"30555:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30596:9:88","nodeType":"YulIdentifier","src":"30596:9:88"},{"kind":"number","nativeSrc":"30607:2:88","nodeType":"YulLiteral","src":"30607:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30592:3:88","nodeType":"YulIdentifier","src":"30592:3:88"},"nativeSrc":"30592:18:88","nodeType":"YulFunctionCall","src":"30592:18:88"},{"kind":"number","nativeSrc":"30612:2:88","nodeType":"YulLiteral","src":"30612:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"30585:6:88","nodeType":"YulIdentifier","src":"30585:6:88"},"nativeSrc":"30585:30:88","nodeType":"YulFunctionCall","src":"30585:30:88"},"nativeSrc":"30585:30:88","nodeType":"YulExpressionStatement","src":"30585:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30635:9:88","nodeType":"YulIdentifier","src":"30635:9:88"},{"kind":"number","nativeSrc":"30646:2:88","nodeType":"YulLiteral","src":"30646:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30631:3:88","nodeType":"YulIdentifier","src":"30631:3:88"},"nativeSrc":"30631:18:88","nodeType":"YulFunctionCall","src":"30631:18:88"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"30651:34:88","nodeType":"YulLiteral","src":"30651:34:88","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"30624:6:88","nodeType":"YulIdentifier","src":"30624:6:88"},"nativeSrc":"30624:62:88","nodeType":"YulFunctionCall","src":"30624:62:88"},"nativeSrc":"30624:62:88","nodeType":"YulExpressionStatement","src":"30624:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30706:9:88","nodeType":"YulIdentifier","src":"30706:9:88"},{"kind":"number","nativeSrc":"30717:2:88","nodeType":"YulLiteral","src":"30717:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30702:3:88","nodeType":"YulIdentifier","src":"30702:3:88"},"nativeSrc":"30702:18:88","nodeType":"YulFunctionCall","src":"30702:18:88"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"30722:8:88","nodeType":"YulLiteral","src":"30722:8:88","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"30695:6:88","nodeType":"YulIdentifier","src":"30695:6:88"},"nativeSrc":"30695:36:88","nodeType":"YulFunctionCall","src":"30695:36:88"},"nativeSrc":"30695:36:88","nodeType":"YulExpressionStatement","src":"30695:36:88"},{"nativeSrc":"30740:27:88","nodeType":"YulAssignment","src":"30740:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30752:9:88","nodeType":"YulIdentifier","src":"30752:9:88"},{"kind":"number","nativeSrc":"30763:3:88","nodeType":"YulLiteral","src":"30763:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30748:3:88","nodeType":"YulIdentifier","src":"30748:3:88"},"nativeSrc":"30748:19:88","nodeType":"YulFunctionCall","src":"30748:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30740:4:88","nodeType":"YulIdentifier","src":"30740:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30371:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30522:9:88","nodeType":"YulTypedName","src":"30522:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30536:4:88","nodeType":"YulTypedName","src":"30536:4:88","type":""}],"src":"30371:402:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x01c0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IEToken_$23549__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IAssetManager_$23421__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_PolicyData(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x01c0) { revert(0, 0) }\n        value := allocate_memory()\n        let value_1 := 0\n        value_1 := calldataload(headStart)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 96))\n        mstore(add(value, 96), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 128))\n        mstore(add(value, 128), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 160))\n        mstore(add(value, 160), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 192))\n        mstore(add(value, 192), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(headStart, 224))\n        mstore(add(value, 224), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(headStart, 256))\n        mstore(add(value, 256), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(headStart, 288))\n        mstore(add(value, 288), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(headStart, 320))\n        mstore(add(value, 320), value_11)\n        mstore(add(value, 352), abi_decode_contract_IRiskModule(add(headStart, 352)))\n        mstore(add(value, 384), abi_decode_uint40(add(headStart, 384)))\n        mstore(add(value, 416), abi_decode_uint40(add(headStart, 416)))\n    }\n    function abi_decode_tuple_t_addresst_struct$_PolicyData_$14966_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_struct_PolicyData(add(headStart, 32), dataEnd)\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 896) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        value1 := abi_decode_struct_PolicyData(add(headStart, 448), dataEnd)\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 448) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n    }\n    function abi_decode_tuple_t_contract$_IAssetManager_$23421t_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_int256(x, y) -> sum\n    {\n        sum := add(x, y)\n        let _1 := slt(sum, y)\n        let _2 := slt(x, 0)\n        if or(and(iszero(_2), _1), and(_2, iszero(_1))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_int256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        let _1 := slt(y, 0)\n        if or(and(iszero(_1), sgt(diff, x)), and(_1, slt(diff, x))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_beb1a2cdae0d6b157b904c90c0fabe52f538ee148f0a030c572031892eca9034__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Validation: only up to 4 decimal\")\n        mstore(add(headStart, 96), \"s allowed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_48dfafddd549e64c761b83ac8b5580b6b870825350af14c44e86b9dab59e527b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Validation: surplus must be >= m\")\n        mstore(add(headStart, 96), \"axDeficit\")\n        tail := add(headStart, 128)\n    }\n    function negate_t_int256(value) -> ret\n    {\n        if eq(value, shl(255, 1)) { panic_error_0x11() }\n        ret := sub(0, value)\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_bool_t_uint256__to_t_bool_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_334fa6e8b560f332a3d8f0a5b17196d451fcc6d312aa718ceef56404fa9f8d6d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Validation: no decimals allowed\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_05c3a31a2f127d85ad0695421cb22bc9d1a6204afb4738d719d773ecd2796be9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"PremiumsAccount: destination can\")\n        mstore(add(headStart, 96), \"not be the zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_2dd17c9d4ecea5478e08d5e7aae2580c553b0dd1578809a01b859af596738c4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"No premiums to withdraw\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_84b4c5cff8a8b5cdac722b3f6e46cb87a320e587fe0267f0077f993f0bbfc7ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Interest rate can't change\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_int256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_086bf35ad7aeeefb9c3f2c98abfa9234ba06322f0a5649fed9978c94d7932fb7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), \"Reserve: asset manager doesn't i\")\n        mstore(add(headStart, 96), \"mplements the required interface\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d9febc2e3b479326be2b800bd244e6d2b8f8e42fd77d5f1d40526272a67a0efb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Losses can't exceed maxDeficit\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1a00a823022fd2dc99b7021ea998105a0aa4e34f3bb6534c0f1bbb341b534786__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: deficitRatio must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_1d1a4de2b1a192a07e8c03dbae7805a4a293287ee451ffc5c57af97d34258cdc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 48)\n        mstore(add(headStart, 64), \"Don't know where to source the r\")\n        mstore(add(headStart, 96), \"est of the money\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_int256__to_t_uint256_t_uint256_t_int256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_fb7282d2b23ee3bdb52eca32208c383c11d67253928cfd90f92d04f17550cb0f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Reserve: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_6fb52a6adba91dbdb89dd23972f573b9fba4a5c7c6cf1978d8becbf69230f76c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Can't upgrade changing the Junio\")\n        mstore(add(headStart, 96), \"r ETK unless to non-zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_495e5d5ae96f4a92de4c7e46823cf0f415aec3a853b962248cd8fe1c513de6db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Can't upgrade changing the Senio\")\n        mstore(add(headStart, 96), \"r ETK unless to non-zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":2117},{"length":32,"start":2190},{"length":32,"start":2768},{"length":32,"start":2832},{"length":32,"start":3676}],"17733":[{"length":32,"start":820},{"length":32,"start":1755},{"length":32,"start":2386},{"length":32,"start":3027},{"length":32,"start":4373},{"length":32,"start":4636},{"length":32,"start":5182},{"length":32,"start":5422},{"length":32,"start":5985},{"length":32,"start":7059},{"length":32,"start":7236},{"length":32,"start":8146},{"length":32,"start":8563},{"length":32,"start":8755},{"length":32,"start":9000},{"length":32,"start":9723},{"length":32,"start":16356}],"18169":[{"length":32,"start":1020},{"length":32,"start":3593},{"length":32,"start":6423},{"length":32,"start":6741},{"length":32,"start":8263},{"length":32,"start":9356},{"length":32,"start":9410},{"length":32,"start":10849},{"length":32,"start":11015},{"length":32,"start":11157},{"length":32,"start":11308},{"length":32,"start":11453},{"length":32,"start":12669},{"length":32,"start":14373},{"length":32,"start":14527}],"18173":[{"length":32,"start":1093},{"length":32,"start":6582},{"length":32,"start":6894},{"length":32,"start":8416},{"length":32,"start":9251},{"length":32,"start":9305},{"length":32,"start":11695},{"length":32,"start":11862},{"length":32,"start":12855},{"length":32,"start":14680},{"length":32,"start":14834}],"19710":[{"length":32,"start":11626},{"length":32,"start":11973},{"length":32,"start":13253}]},"linkReferences":{},"object":"60806040526004361061021d575f3560e01c80637bb623191161011e578063a0ce58b8116100a8578063d80359f11161006d578063d80359f114610611578063e3638ea314610630578063e5a6b10f1461064f578063e823584a14610663578063f39a4bc514610677575f5ffd5b8063a0ce58b81461056d578063aac0cfaf1461058c578063ab83b4be146105bf578063c2c4c5c1146105de578063c7a9c70d146105f2575f5ffd5b80638456cb59116100ee5780638456cb59146104c45780638ca23bc9146104d857806394217ad11461050b57806397a146c01461052f5780639d8c5ee71461054e575f5ffd5b80637bb62319146104695780637d7c2a1c1461047d5780638129fc1c1461049157806381ced71f146104a5575f5ffd5b80634d15eb03116101aa57806352d1902d1161016f57806352d1902d146103c6578063536c9a43146103da578063536ebbfc146103ee5780635c975abb146104205780637b83037b14610437575f5ffd5b80634d15eb03146103265780634eb978a41461036c5780634f1ef286146103805780634fe0bd1e1461039357806350093f04146103a7575f5ffd5b806326ccbd22116101f057806326ccbd22146102b55780632d8f892a146102c95780633659cfe6146102dd5780633f4ba83a146102fe5780634863c8b014610312575f5ffd5b806301ffc9a71461022157806313888565146102555780631a548a27146102745780631e9c465814610289575b5f5ffd5b34801561022c575f5ffd5b5061024061023b36600461429d565b61068b565b60405190151581526020015b60405180910390f35b348015610260575f5ffd5b5061012e545b60405190815260200161024c565b34801561027f575f5ffd5b5061012d54610266565b348015610294575f5ffd5b506102a86102a336600461438d565b6106b6565b60405161024c91906143ed565b3480156102c0575f5ffd5b506102666107eb565b3480156102d4575f5ffd5b50610266610803565b3480156102e8575f5ffd5b506102fc6102f7366004614413565b61083b565b005b348015610309575f5ffd5b506102fc610921565b34801561031d575f5ffd5b50610266610a3c565b348015610331575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161024c565b348015610377575f5ffd5b506102fc610a57565b6102fc61038e36600461442e565b610ac6565b34801561039e575f5ffd5b50610266610b91565b3480156103b2575f5ffd5b506102fc6103c1366004614488565b610bb0565b3480156103d1575f5ffd5b50610266610e50565b3480156103e5575f5ffd5b50610266610f01565b3480156103f9575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610354565b34801561042b575f5ffd5b5060975460ff16610240565b348015610442575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610354565b348015610474575f5ffd5b50610266610f1a565b348015610488575f5ffd5b506102fc610f4c565b34801561049c575f5ffd5b506102fc610f9b565b3480156104b0575f5ffd5b506102fc6104bf3660046144b6565b6110a6565b3480156104cf575f5ffd5b506102fc611105565b3480156104e3575f5ffd5b506102667fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b348015610516575f5ffd5b5061012f546201000090046001600160a01b0316610354565b34801561053a575f5ffd5b506102fc6105493660046144cd565b6111f9565b348015610559575f5ffd5b506102fc6105683660046145d6565b61143b565b348015610578575f5ffd5b50610266610587366004614615565b61150a565b348015610597575f5ffd5b506102667f963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa81565b3480156105ca575f5ffd5b506102fc6105d9366004614638565b61175e565b3480156105e9575f5ffd5b506102fc611b76565b3480156105fd575f5ffd5b506102fc61060c36600461466d565b611b90565b34801561061c575f5ffd5b506102fc61062b366004614688565b611c13565b34801561063b575f5ffd5b506102fc61064a36600461466d565b611fcf565b34801561065a575f5ffd5b50610354612170565b34801561066e575f5ffd5b506102666121f1565b348015610682575f5ffd5b5061026661220f565b5f610695826124ed565b806106b057506001600160e01b03198216630e72532960e11b145b92915050565b60607fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075991906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161078b94939291906146cf565b5f6040518083038186803b1580156107a1575f5ffd5b505afa1580156107b3573d5f5f3e3d5ffd5b505050506107e4836107d561012f546001600160a01b03620100009091041690565b6001600160a01b031690612522565b9392505050565b5f61012e5461012d546107fe919061470d565b905090565b61012f545f90600160b01b900463ffffffff16156108355761012f546107fe90600160b01b900463ffffffff16612547565b505f1990565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361088c5760405162461bcd60e51b815260040161088390614734565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108d45f516020614a6a5f395f51905f52546001600160a01b031690565b6001600160a01b0316146108fa5760405162461bcd60e51b815260040161088390614780565b610903816125ca565b604080515f8082526020820190925261091e918391906126e2565b50565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d091906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a049594939291906147cc565b5f6040518083038186803b158015610a1a575f5ffd5b505afa158015610a2c573d5f5f3e3d5ffd5b50505050610a3861284c565b5050565b61012f545f906107fe90655af3107a40009061ffff166147ff565b610a5f61289e565b6040805160048152602481019091526020810180516001600160e01b03166313ae5e2960e21b1790525f90610aa8906107d561012f546001600160a01b03620100009091041690565b905061091e81806020019051810190610ac19190614816565b6128e4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b0e5760405162461bcd60e51b815260040161088390614734565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b565f516020614a6a5f395f51905f52546001600160a01b031690565b6001600160a01b031614610b7c5760405162461bcd60e51b815260040161088390614780565b610b85826125ca565b610a38828260016126e2565b5f610ba2610b9d610a3c565b61294d565b61012e546107fe919061482d565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5191906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610c8394939291906146cf565b5f6040518083038186803b158015610c99575f5ffd5b505afa158015610cab573d5f5f3e3d5ffd5b505050505f610cca655af3107a400085610cc5919061484c565b612966565b905083610ce1655af3107a400061ffff84166147ff565b14610d405760405162461bcd60e51b815260206004820152602960248201527f56616c69646174696f6e3a206f6e6c7920757020746f203420646563696d616c6044820152681cc8185b1b1bddd95960ba1b6064820152608401610883565b5f610d4a8561294d565b90508380610d5b57508061012e5412155b610db95760405162461bcd60e51b815260206004820152602960248201527f56616c69646174696f6e3a20737572706c7573206d757374206265203e3d206d604482015268185e1119599a58da5d60ba1b6064820152608401610883565b61012f805461ffff191661ffff8416179055610dd36129c8565b61012e54602090821315610e3e575f8261012e54610df09061486b565b610dfa919061470d565b61012e8490559050610e3881307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515612a3b565b60219150505b610e488187612f4c565b505050505050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eef5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610883565b505f516020614a6a5f395f51905f5290565b5f5f61012e541215610f1257505f90565b5061012e5490565b61012f545f90600160d01b900463ffffffff16156108355761012f546107fe90600160d01b900463ffffffff16612547565b610f5461289e565b6040805160048152602481019091526020810180516001600160e01b0316631f5f0a8760e21b17905261091e906107d561012f546001600160a01b03620100009091041690565b5f54610100900460ff1615808015610fb957505f54600160ff909116105b80610fd25750303b158015610fd257505f5460ff166001145b6110355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610883565b5f805460ff191660011790558015611056575f805461ff0019166101001790555b61105e612f9e565b801561091e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6110af81612fd4565b6110ce3330836110bd612170565b6001600160a01b0316929190612fee565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910161109b565b5f516020614ab15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561116f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119391906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016111c594939291906146cf565b5f6040518083038186803b1580156111db575f5ffd5b505afa1580156111ed573d5f5f3e3d5ffd5b5050505061091e613059565b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611276573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a91906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016112cc94939291906146cf565b5f6040518083038186803b1580156112e2575f5ffd5b505afa1580156112f4573d5f5f3e3d5ffd5b505050505f1983146113975761130983613096565b61012f805463ffffffff60b01b1916600160b01b63ffffffff93841681029190911791829055859261133f929190910416612547565b1461138c5760405162461bcd60e51b815260206004820152601f60248201527f56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564006044820152606401610883565b611397602284612f4c565b5f198214611436576113a882613096565b61012f805463ffffffff60d01b1916600160d01b63ffffffff9384168102919091179182905584926113de929190910416612547565b1461142b5760405162461bcd60e51b815260206004820152601f60248201527f56616c69646174696f6e3a206e6f20646563696d616c7320616c6c6f776564006044820152606401610883565b611436602383612f4c565b505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146114845760405163799e780f60e01b815260040160405180910390fd5b61148c61289e565b8160c0015161012d5f8282546114a29190614885565b909155505060c08201515f906114c1906114bc908461482d565b61311b565b905080156114e8576114d283613171565b6114e381855f866060015111612a3b565b6114f1565b6114f183613171565b611504846114ff8385614885565b6132bc565b50505050565b5f7fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b7940577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611588573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ac91906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016115de94939291906146cf565b5f6040518083038186803b1580156115f4575f5ffd5b505afa158015611606573d5f5f3e3d5ffd5b5050506001600160a01b03841690506116875760405162461bcd60e51b815260206004820152603760248201527f5072656d69756d734163636f756e743a2064657374696e6174696f6e2063616e60448201527f6e6f7420626520746865207a65726f20616464726573730000000000000000006064820152608401610883565b5f61012e5413611699575f93506116a9565b6116a68461012e54613415565b93505b5f84116116f85760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f2077697468647261770000000000000000006044820152606401610883565b8361012e5f82825461170a919061482d565b9091555061171a905083856132bc565b604080515f8152602081018690527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a18391505b5092915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146117a75760405163799e780f60e01b815260040160405180910390fd5b6117af61289e565b5f82608001511180156117c557505f8160800151115b15611848575f6117d48261342a565b6117dd8461342a565b6117e7919061482d565b9050655af3107a40006117f982613475565b106118465760405162461bcd60e51b815260206004820152601a60248201527f496e74657265737420726174652063616e2774206368616e67650000000000006044820152606401610883565b505b5f826060015111801561185e57505f8160600151115b156118e1575f61186d82613486565b61187684613486565b611880919061482d565b9050655af3107a400061189282613475565b106118df5760405162461bcd60e51b815260206004820152601a60248201527f496e74657265737420726174652063616e2774206368616e67650000000000006044820152606401610883565b505b8160c001518160c001516118f59190614885565b61012d5f8282546119069190614898565b90915550506060820151156119aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf836060015161195285613486565b6040516001600160e01b031960e085901b168152600481019290925260248201525f60448201526064015f604051808303815f87803b158015611993575f5ffd5b505af11580156119a5573d5f5f3e3d5ffd5b505050505b608082015115611a49577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf83608001516119f18561342a565b6040516001600160e01b031960e085901b168152600481019290925260248201525f60448201526064015f604051808303815f87803b158015611a32575f5ffd5b505af1158015611a44573d5f5f3e3d5ffd5b505050505b606081015115611ae2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a38260600151611a9084613486565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b158015611acb575f5ffd5b505af1158015611add573d5f5f3e3d5ffd5b505050505b608081015115610a38577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a38260800151611b298461342a565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b158015611b64575f5ffd5b505af1158015610e48573d5f5f3e3d5ffd5b611b7e61289e565b611b86610a57565b611b8e610f4c565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611bd95760405163799e780f60e01b815260040160405180910390fd5b611be161289e565b8060c0015161012d5f828254611bf79190614885565b909155505060c0810151611c0a90612fd4565b61091e81613171565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc291906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611cf69594939291906147cc565b5f6040518083038186803b158015611d0c575f5ffd5b505afa158015611d1e573d5f5f3e3d5ffd5b505050506001600160a01b0384161580611da057506040516301ffc9a760e01b8152631e670a9760e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611d7c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da091906148ab565b611e14576040805162461bcd60e51b81526020600482015260248101919091527f526573657276653a206173736574206d616e6167657220646f65736e2774206960448201527f6d706c656d656e74732074686520726571756972656420696e746572666163656064820152608401610883565b61012f546201000090046001600160a01b031660028115611f3f578415611ee55760408051600481526024810182526020810180516001600160e01b031663cec16f3f60e01b17905290515f9182916001600160a01b03861691611e77916148c6565b5f60405180830381855af49150503d805f8114611eaf576040519150601f19603f3d011682016040523d82523d5f602084013e611eb4565b606091505b509150915081611ec75760039250611ede565b611ede81806020019051810190610ac19190614816565b5050611f3f565b6040805160048152602481019091526020810180516001600160e01b031663cec16f3f60e01b1790525f90611f24906001600160a01b03851690612522565b9050611f3d81806020019051810190610ac19190614816565b505b61012f805462010000600160b01b031916620100006001600160a01b0389160217905561012f546201000090046001600160a01b031691506001600160a01b03821615611fc5576040805160048152602481019091526020810180516001600160e01b031663948cb71960e01b179052611fc3906001600160a01b03841690612522565b505b610e4881876134c1565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146120185760405163799e780f60e01b815260040160405180910390fd5b61202061289e565b8060c0015161012d5f8282546120369190614898565b90915550506060810151156120d4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a3826060015161208284613486565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015f604051808303815f87803b1580156120bd575f5ffd5b505af11580156120cf573d5f5f3e3d5ffd5b505050505b60808101511561091e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663837c83a3826080015161211b8461342a565b6040516001600160e01b031960e085901b168152600481019290925260248201526044015b5f604051808303815f87803b158015612157575f5ffd5b505af1158015612169573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe91906146b4565b5f5f61012e54121561220a5761012e546107fe9061486b565b505f90565b5f7f963ce71e8efef763efaed378c32433e843c9e3083032dec79fa806375f2fc7aa7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b191906146b4565b6001600160a01b031663b3efcbd230835f60016040518563ffffffff1660e01b81526004016122e394939291906146cf565b602060405180830381865afa1580156122fe573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232291906148ab565b612405577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612382573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a691906146b4565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016123d894939291906146cf565b5f6040518083038186803b1580156123ee575f5ffd5b505afa158015612400573d5f5f3e3d5ffd5b505050505b61240d61289e565b612415610b91565b9150811580159061244e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b156124805761247d827f0000000000000000000000000000000000000000000000000000000000000000613514565b91505b81158015906124b757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b156124e9576124e6827f0000000000000000000000000000000000000000000000000000000000000000613514565b91505b5090565b5f6001600160e01b031982166301ffc9a760e01b14806106b057506001600160e01b03198216634d15eb0360e01b1492915050565b60606107e48383604051806060016040528060278152602001614a8a602791396137a2565b5f612550612170565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561258b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125af91906148dc565b6125ba90600a6149df565b6106b09063ffffffff84166147ff565b5f516020614ab15f395f51905f527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612655573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061267991906146b4565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016126ad9594939291906147cc565b5f6040518083038186803b1580156126c3575f5ffd5b505afa1580156126d5573d5f5f3e3d5ffd5b5050505061143683613816565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156127155761143683613a89565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561276f575060408051601f3d908101601f1916820190925261276c91810190614816565b60015b6127d25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610883565b5f516020614a6a5f395f51905f5281146128405760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610883565b50611436838383613b24565b612854613b48565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff1615611b8e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610883565b5f81126128f45761091e81612fd4565b6129006114bc8261486b565b1561091e5760405162461bcd60e51b815260206004820152601e60248201527f4c6f737365732063616e277420657863656564206d61784465666963697400006044820152606401610883565b61012d545f9061295d9083613b91565b6106b09061486b565b5f61ffff8211156124e95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610883565b61012f5461271061ffff909116118015906129e1575060015b611b8e5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2064656669636974526174696f206d757374206265604482015264203c3d203160d81b6064820152608401610883565b828115612d6857612a4a610803565b6040516333481fc960e01b815230600482015285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612aae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ad29190614816565b612adc9190614898565b11612b78576040516330f7e76b60e21b8152600481018590526001600160a01b0384811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063c3df9dac906044016020604051808303815f875af1158015612b4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b719190614816565b9050612d68565b612b80610803565b6040516333481fc960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612be2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c069190614816565b1015612d68575f612c15610803565b6040516333481fc960e01b815230600482015286907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612c79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c9d9190614816565b612ca79190614898565b612cb19190614885565b90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c3df9dac612cec8388614885565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b03871660248201526044016020604051808303815f875af1158015612d36573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d5a9190614816565b612d649082614898565b9150505b7f000000000000000000000000000000000000000000000000000000000000000081111561150457612d98610f1a565b6040516333481fc960e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333481fc990602401602060405180830381865afa158015612dfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e209190614816565b612e2a9190614898565b1015612ec3576040516330f7e76b60e21b8152600481018290526001600160a01b0384811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063c3df9dac906044016020604051808303815f875af1158015612e9c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ec09190614816565b90505b7f00000000000000000000000000000000000000000000000000000000000000008111156115045760405162461bcd60e51b815260206004820152603060248201527f446f6e2774206b6e6f7720776865726520746f20736f7572636520746865207260448201526f657374206f6620746865206d6f6e657960801b6064820152608401610883565b612f546129c8565b81602d811115612f6657612f666149ed565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb13906020015b60405180910390a25050565b5f54610100900460ff16612fc45760405162461bcd60e51b815260040161088390614a01565b612fcc613bc7565b611b8e613bf5565b8061012e5f828254612fe6919061470d565b909155505050565b6040516001600160a01b03808516602483015283166044820152606481018290526115049085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c5e565b61306161289e565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128813390565b5f6106b06130a2612170565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310191906148dc565b61310c90600a6149df565b613116908461484c565b613d31565b5f5f8261012e5461312c919061482d565b90505f61313a610b9d610a3c565b905080821261314f575061012e55505f919050565b61012e8190558061315f8361486b565b613169919061470d565b949350505050565b60608101511561322b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf82606001516131b884613486565b6131c185613d95565b8561012001516131d1919061482d565b6040516001600160e01b031960e086901b1681526004810193909352602483019190915260448201526064015f604051808303815f87803b158015613214575f5ffd5b505af1158015613226573d5f5f3e3d5ffd5b505050505b60808101511561091e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1081ccf82608001516132728461342a565b61327b85613de5565b85610140015161328b919061482d565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401612140565b6001600160a01b0382166133205760405162461bcd60e51b815260206004820152602560248201527f526573657276653a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610883565b805f0361332b575050565b5f613334612170565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613378573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339c9190614816565b9050818110156133f8576133af82613e2b565b6133b99082614898565b9050808211156133f8577f00000000000000000000000000000000000000000000000000000000000000006133ee8284614885565b10156133f8578091505b6114368383613405612170565b6001600160a01b03169190613f05565b5f81831061342357816107e4565b5090919050565b5f6106b08260800151836101800151846101a001516134499190614a4c565b64ffffffffff166301e1338085610140015161346591906147ff565b61346f919061484c565b90613f35565b5f5f8212156124e957815f036106b0565b5f6106b08260600151836101800151846101a001516134a59190614a4c565b64ffffffffff166301e1338085610120015161346591906147ff565b6134c96129c8565b81602d8111156134db576134db6149ed565b6040516001600160a01b03831681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f90602001612f92565b6040516333481fc960e01b81523060048201525f9081906001600160a01b038416906333481fc990602401602060405180830381865afa15801561355a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061357e9190614816565b9050805f0361359057839150506106b0565b5f61359b8583613415565b90508061012e5f8282546135af919061482d565b909155508190506135be612170565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015613602573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136269190614816565b10156136375761363581613e2b565b505b80613640612170565b604051636eb1769f60e11b81523060048201526001600160a01b038781166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561368c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b09190614816565b1015613732576136be612170565b60405163095ea7b360e01b81526001600160a01b03868116600483015260248201859052919091169063095ea7b3906044016020604051808303815f875af115801561370c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061373091906148ab565b505b60405163918344d360e01b8152600481018290523060248201526001600160a01b0385169063918344d3906044015f604051808303815f87803b158015613777575f5ffd5b505af1158015613789573d5f5f3e3d5ffd5b5050505080856137999190614885565b95945050505050565b60605f5f856001600160a01b0316856040516137be91906148c6565b5f60405180830381855af49150503d805f81146137f6576040519150601f19603f3d011682016040523d82523d5f602084013e6137fb565b606091505b509150915061380c86838387613f6a565b9695505050505050565b61381f81613fe2565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613889573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138ad91906146b4565b6001600160a01b031614806138e957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b6139565760405162461bcd60e51b815260206004820152603860248201527f43616e27742075706772616465206368616e67696e6720746865204a756e696f604482015277722045544b20756e6c65737320746f206e6f6e2d7a65726f60401b6064820152608401610883565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e091906146b4565b6001600160a01b03161480613a1c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b610a385760405162461bcd60e51b815260206004820152603860248201527f43616e27742075706772616465206368616e67696e67207468652053656e696f604482015277722045544b20756e6c65737320746f206e6f6e2d7a65726f60401b6064820152608401610883565b6001600160a01b0381163b613af65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610883565b5f516020614a6a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b613b2d83614093565b5f82511180613b395750805b15611436576115048383612522565b60975460ff16611b8e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610883565b5f81156706f05b59d3b200001983900484111517613bad575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b5f54610100900460ff16613bed5760405162461bcd60e51b815260040161088390614a01565b611b8e6140d2565b5f54610100900460ff16613c1b5760405162461bcd60e51b815260040161088390614a01565b604080516080810182526127108082525f6020830181905292820183905260609091019190915261012f80546001600160f01b0319169091179055611b8e6129c8565b5f613cb2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141089092919063ffffffff16565b905080515f1480613cd2575080806020019051810190613cd291906148ab565b6114365760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610883565b5f63ffffffff8211156124e95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610883565b5f816101800151826101a00151613dac9190614a4c565b64ffffffffff1682610180015164ffffffffff1642613dcb9190614885565b836101200151613ddb91906147ff565b6106b0919061484c565b5f816101800151826101a00151613dfc9190614a4c565b64ffffffffff1682610180015164ffffffffff1642613e1b9190614885565b836101400151613ddb91906147ff565b5f5f613e4761012f546001600160a01b03620100009091041690565b90506001600160a01b03811615613efd575f613ee7631014a0c260e01b85604051602401613e7791815260200190565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935280518082019091526016815275115c9c9bdc881c99599a5b1b1a5b99c81dd85b1b195d60521b928101929092526001600160a01b038516916137a2565b9050808060200190518101906131699190614816565b505f92915050565b6040516001600160a01b03831660248201526044810182905261143690849063a9059cbb60e01b90606401613022565b5f8115670de0b6b3a764000060028404190484111715613f53575f5ffd5b50670de0b6b3a76400009190910260028204010490565b60608315613fd85782515f03613fd1576001600160a01b0385163b613fd15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610883565b5081613169565b6131698383614116565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015614048573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061406c91906146b4565b6001600160a01b03161461091e5760405163d2b3d33f60e01b815260040160405180910390fd5b61409c81613a89565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f54610100900460ff166140f85760405162461bcd60e51b815260040161088390614a01565b614100614140565b611b8e614166565b606061316984845f85614194565b8151156141265781518083602001fd5b8060405162461bcd60e51b815260040161088391906143ed565b5f54610100900460ff16611b8e5760405162461bcd60e51b815260040161088390614a01565b5f54610100900460ff1661418c5760405162461bcd60e51b815260040161088390614a01565b611b8e61426b565b6060824710156141f55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610883565b5f5f866001600160a01b0316858760405161421091906148c6565b5f6040518083038185875af1925050503d805f811461424a576040519150601f19603f3d011682016040523d82523d5f602084013e61424f565b606091505b509150915061426087838387613f6a565b979650505050505050565b5f54610100900460ff166142915760405162461bcd60e51b815260040161088390614a01565b6097805460ff19169055565b5f602082840312156142ad575f5ffd5b81356001600160e01b0319811681146107e4575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff811182821017156142fc576142fc6142c4565b60405290565b5f82601f830112614311575f5ffd5b813567ffffffffffffffff81111561432b5761432b6142c4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561435a5761435a6142c4565b604052818152838201602001851015614371575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561439d575f5ffd5b813567ffffffffffffffff8111156143b3575f5ffd5b61316984828501614302565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107e460208301846143bf565b6001600160a01b038116811461091e575f5ffd5b5f60208284031215614423575f5ffd5b81356107e4816143ff565b5f5f6040838503121561443f575f5ffd5b823561444a816143ff565b9150602083013567ffffffffffffffff811115614465575f5ffd5b61447185828601614302565b9150509250929050565b801515811461091e575f5ffd5b5f5f60408385031215614499575f5ffd5b8235915060208301356144ab8161447b565b809150509250929050565b5f602082840312156144c6575f5ffd5b5035919050565b5f5f604083850312156144de575f5ffd5b50508035926020909101359150565b80356144f8816143ff565b919050565b803564ffffffffff811681146144f8575f5ffd5b5f6101c08284031215614522575f5ffd5b61452a6142d8565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e0808401359082015261010080840135908201526101208084013590820152610140808401359082015290506145a461016083016144ed565b6101608201526145b761018083016144fd565b6101808201526145ca6101a083016144fd565b6101a082015292915050565b5f5f5f61020084860312156145e9575f5ffd5b83356145f4816143ff565b92506146038560208601614511565b929592945050506101e0919091013590565b5f5f60408385031215614626575f5ffd5b8235915060208301356144ab816143ff565b5f5f610380838503121561464a575f5ffd5b6146548484614511565b9150614664846101c08501614511565b90509250929050565b5f6101c0828403121561467e575f5ffd5b6107e48383614511565b5f5f60408385031215614699575f5ffd5b82356146a4816143ff565b915060208301356144ab8161447b565b5f602082840312156146c4575f5ffd5b81516107e4816143ff565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018281125f83128015821682158216171561472c5761472c6146f9565b505092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b80820281158282048414176106b0576106b06146f9565b5f60208284031215614826575f5ffd5b5051919050565b8181035f831280158383131683831282161715611757576117576146f9565b5f8261486657634e487b7160e01b5f52601260045260245ffd5b500490565b5f600160ff1b820161487f5761487f6146f9565b505f0390565b818103818111156106b0576106b06146f9565b808201808211156106b0576106b06146f9565b5f602082840312156148bb575f5ffd5b81516107e48161447b565b5f82518060208501845e5f920191825250919050565b5f602082840312156148ec575f5ffd5b815160ff811681146107e4575f5ffd5b6001815b60018411156149375780850481111561491b5761491b6146f9565b600184161561492957908102905b60019390931c928002614900565b935093915050565b5f8261494d575060016106b0565b8161495957505f6106b0565b816001811461496f576002811461497957614995565b60019150506106b0565b60ff84111561498a5761498a6146f9565b50506001821b6106b0565b5060208310610133831016604e8410600b84101617156149b8575081810a6106b0565b6149c45f1984846148fc565b805f19048211156149d7576149d76146f9565b029392505050565b5f6107e460ff84168361493f565b634e487b7160e01b5f52602160045260245ffd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b64ffffffffff82811682821603908111156106b0576106b06146f956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220447006f903c02a51e5e220c8670d71278f5a53fd67bfe64f3c4391ca0dab1ff664736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BB62319 GT PUSH2 0x11E JUMPI DUP1 PUSH4 0xA0CE58B8 GT PUSH2 0xA8 JUMPI DUP1 PUSH4 0xD80359F1 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD80359F1 EQ PUSH2 0x611 JUMPI DUP1 PUSH4 0xE3638EA3 EQ PUSH2 0x630 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xE823584A EQ PUSH2 0x663 JUMPI DUP1 PUSH4 0xF39A4BC5 EQ PUSH2 0x677 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xA0CE58B8 EQ PUSH2 0x56D JUMPI DUP1 PUSH4 0xAAC0CFAF EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0xAB83B4BE EQ PUSH2 0x5BF JUMPI DUP1 PUSH4 0xC2C4C5C1 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0xC7A9C70D EQ PUSH2 0x5F2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0x8CA23BC9 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x94217AD1 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0x97A146C0 EQ PUSH2 0x52F JUMPI DUP1 PUSH4 0x9D8C5EE7 EQ PUSH2 0x54E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7BB62319 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x7D7C2A1C EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x491 JUMPI DUP1 PUSH4 0x81CED71F EQ PUSH2 0x4A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x1AA JUMPI DUP1 PUSH4 0x52D1902D GT PUSH2 0x16F JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0x536C9A43 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x536EBBFC EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x7B83037B EQ PUSH2 0x437 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0x4EB978A4 EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x4FE0BD1E EQ PUSH2 0x393 JUMPI DUP1 PUSH4 0x50093F04 EQ PUSH2 0x3A7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x26CCBD22 GT PUSH2 0x1F0 JUMPI DUP1 PUSH4 0x26CCBD22 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x2D8F892A EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x4863C8B0 EQ PUSH2 0x312 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0x13888565 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x1A548A27 EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x1E9C4658 EQ PUSH2 0x289 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x240 PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0x429D JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12E SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12D SLOAD PUSH2 0x266 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x294 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x438D JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24C SWAP2 SWAP1 PUSH2 0x43ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x7EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x803 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4413 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x921 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xA3C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x2FC PUSH2 0x38E CALLDATASIZE PUSH1 0x4 PUSH2 0x442E JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xB91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4488 JUMP JUMPDEST PUSH2 0xBB0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xE50 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xF01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x240 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x442 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0xF1A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xF4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0xF9B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x44B6 JUMP JUMPDEST PUSH2 0x10A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1105 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH32 0xA23B11D346B90FC279E0A917152CAF41F3C1247B12211B7CBC0E0E3F8B794057 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x354 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x549 CALLDATASIZE PUSH1 0x4 PUSH2 0x44CD JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x559 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x568 CALLDATASIZE PUSH1 0x4 PUSH2 0x45D6 JUMP JUMPDEST PUSH2 0x143B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x578 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x587 CALLDATASIZE PUSH1 0x4 PUSH2 0x4615 JUMP JUMPDEST PUSH2 0x150A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH32 0x963CE71E8EFEF763EFAED378C32433E843C9E3083032DEC79FA806375F2FC7AA DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4638 JUMP JUMPDEST PUSH2 0x175E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x1B76 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x60C CALLDATASIZE PUSH1 0x4 PUSH2 0x466D JUMP JUMPDEST PUSH2 0x1B90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x62B CALLDATASIZE PUSH1 0x4 PUSH2 0x4688 JUMP JUMPDEST PUSH2 0x1C13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2FC PUSH2 0x64A CALLDATASIZE PUSH1 0x4 PUSH2 0x466D JUMP JUMPDEST PUSH2 0x1FCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x354 PUSH2 0x2170 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x21F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x220F JUMP JUMPDEST PUSH0 PUSH2 0x695 DUP3 PUSH2 0x24ED JUMP JUMPDEST DUP1 PUSH2 0x6B0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xE725329 PUSH1 0xE1 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x735 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x759 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x78B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x7E4 DUP4 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12E SLOAD PUSH2 0x12D SLOAD PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO PUSH2 0x835 JUMPI PUSH2 0x12F SLOAD PUSH2 0x7FE SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2547 JUMP JUMPDEST POP PUSH0 NOT SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x88C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4734 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x8D4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4780 JUMP JUMPDEST PUSH2 0x903 DUP2 PUSH2 0x25CA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x91E SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9D0 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA04 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA38 PUSH2 0x284C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH2 0x7FE SWAP1 PUSH6 0x5AF3107A4000 SWAP1 PUSH2 0xFFFF AND PUSH2 0x47FF JUMP JUMPDEST PUSH2 0xA5F PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x13AE5E29 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0xAA8 SWAP1 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x91E DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xB0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4734 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB56 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4780 JUMP JUMPDEST PUSH2 0xB85 DUP3 PUSH2 0x25CA JUMP JUMPDEST PUSH2 0xA38 DUP3 DUP3 PUSH1 0x1 PUSH2 0x26E2 JUMP JUMPDEST PUSH0 PUSH2 0xBA2 PUSH2 0xB9D PUSH2 0xA3C JUMP JUMPDEST PUSH2 0x294D JUMP JUMPDEST PUSH2 0x12E SLOAD PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC51 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC83 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC99 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 PUSH2 0xCCA PUSH6 0x5AF3107A4000 DUP6 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST PUSH2 0x2966 JUMP JUMPDEST SWAP1 POP DUP4 PUSH2 0xCE1 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x47FF JUMP JUMPDEST EQ PUSH2 0xD40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206F6E6C7920757020746F203420646563696D616C PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1CC8185B1B1BDDD959 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH2 0xD4A DUP6 PUSH2 0x294D JUMP JUMPDEST SWAP1 POP DUP4 DUP1 PUSH2 0xD5B JUMPI POP DUP1 PUSH2 0x12E SLOAD SLT ISZERO JUMPDEST PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20737572706C7573206D757374206265203E3D206D PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x185E1119599A58DA5D PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xDD3 PUSH2 0x29C8 JUMP JUMPDEST PUSH2 0x12E SLOAD PUSH1 0x20 SWAP1 DUP3 SGT ISZERO PUSH2 0xE3E JUMPI PUSH0 DUP3 PUSH2 0x12E SLOAD PUSH2 0xDF0 SWAP1 PUSH2 0x486B JUMP JUMPDEST PUSH2 0xDFA SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST PUSH2 0x12E DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xE38 DUP2 ADDRESS PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO PUSH2 0x2A3B JUMP JUMPDEST PUSH1 0x21 SWAP2 POP POP JUMPDEST PUSH2 0xE48 DUP2 DUP8 PUSH2 0x2F4C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xEEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12E SLOAD SLT ISZERO PUSH2 0xF12 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST POP PUSH2 0x12E SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO PUSH2 0x835 JUMPI PUSH2 0x12F SLOAD PUSH2 0x7FE SWAP1 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2547 JUMP JUMPDEST PUSH2 0xF54 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x1F5F0A87 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x91E SWAP1 PUSH2 0x7D5 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xFB9 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xFD2 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFD2 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1035 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1056 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x105E PUSH2 0x2F9E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x91E JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x10AF DUP2 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x10CE CALLER ADDRESS DUP4 PUSH2 0x10BD PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 SWAP1 PUSH2 0x2FEE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD60D524F1CAE273480BB0A4DDFB992B6AC0B61C8E12FFBE2E4E31463F9E90199 SWAP2 ADD PUSH2 0x109B JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x116F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1193 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x91E PUSH2 0x3059 JUMP JUMPDEST PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x129A SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12F4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 NOT DUP4 EQ PUSH2 0x1397 JUMPI PUSH2 0x1309 DUP4 PUSH2 0x3096 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xB0 SHL NOT AND PUSH1 0x1 PUSH1 0xB0 SHL PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE DUP6 SWAP3 PUSH2 0x133F SWAP3 SWAP2 SWAP1 SWAP2 DIV AND PUSH2 0x2547 JUMP JUMPDEST EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206E6F20646563696D616C7320616C6C6F77656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x1397 PUSH1 0x22 DUP5 PUSH2 0x2F4C JUMP JUMPDEST PUSH0 NOT DUP3 EQ PUSH2 0x1436 JUMPI PUSH2 0x13A8 DUP3 PUSH2 0x3096 JUMP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xD0 SHL NOT AND PUSH1 0x1 PUSH1 0xD0 SHL PUSH4 0xFFFFFFFF SWAP4 DUP5 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE DUP5 SWAP3 PUSH2 0x13DE SWAP3 SWAP2 SWAP1 SWAP2 DIV AND PUSH2 0x2547 JUMP JUMPDEST EQ PUSH2 0x142B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206E6F20646563696D616C7320616C6C6F77656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x1436 PUSH1 0x23 DUP4 PUSH2 0x2F4C JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1484 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x148C PUSH2 0x289E JUMP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x14A2 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH0 SWAP1 PUSH2 0x14C1 SWAP1 PUSH2 0x14BC SWAP1 DUP5 PUSH2 0x482D JUMP JUMPDEST PUSH2 0x311B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14E8 JUMPI PUSH2 0x14D2 DUP4 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x14E3 DUP2 DUP6 PUSH0 DUP7 PUSH1 0x60 ADD MLOAD GT PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x14F1 JUMP JUMPDEST PUSH2 0x14F1 DUP4 PUSH2 0x3171 JUMP JUMPDEST PUSH2 0x1504 DUP5 PUSH2 0x14FF DUP4 DUP6 PUSH2 0x4885 JUMP JUMPDEST PUSH2 0x32BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xA23B11D346B90FC279E0A917152CAF41F3C1247B12211B7CBC0E0E3F8B794057 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1588 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15AC SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15DE SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15F4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1606 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 POP PUSH2 0x1687 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D734163636F756E743A2064657374696E6174696F6E2063616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6F7420626520746865207A65726F2061646472657373000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH2 0x12E SLOAD SGT PUSH2 0x1699 JUMPI PUSH0 SWAP4 POP PUSH2 0x16A9 JUMP JUMPDEST PUSH2 0x16A6 DUP5 PUSH2 0x12E SLOAD PUSH2 0x3415 JUMP JUMPDEST SWAP4 POP JUMPDEST PUSH0 DUP5 GT PUSH2 0x16F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F207072656D69756D7320746F207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST DUP4 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x170A SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x171A SWAP1 POP DUP4 DUP6 PUSH2 0x32BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xD60D524F1CAE273480BB0A4DDFB992B6AC0B61C8E12FFBE2E4E31463F9E90199 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP4 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17A7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17AF PUSH2 0x289E JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0x17C5 JUMPI POP PUSH0 DUP2 PUSH1 0x80 ADD MLOAD GT JUMPDEST ISZERO PUSH2 0x1848 JUMPI PUSH0 PUSH2 0x17D4 DUP3 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x17DD DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x17E7 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH6 0x5AF3107A4000 PUSH2 0x17F9 DUP3 PUSH2 0x3475 JUMP JUMPDEST LT PUSH2 0x1846 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E74657265737420726174652063616E2774206368616E6765000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP JUMPDEST PUSH0 DUP3 PUSH1 0x60 ADD MLOAD GT DUP1 ISZERO PUSH2 0x185E JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD GT JUMPDEST ISZERO PUSH2 0x18E1 JUMPI PUSH0 PUSH2 0x186D DUP3 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x1876 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x1880 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH6 0x5AF3107A4000 PUSH2 0x1892 DUP3 PUSH2 0x3475 JUMP JUMPDEST LT PUSH2 0x18DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E74657265737420726174652063616E2774206368616E6765000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x18F5 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1906 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x60 DUP3 ADD MLOAD ISZERO PUSH2 0x19AA JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP4 PUSH1 0x60 ADD MLOAD PUSH2 0x1952 DUP6 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19A5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP3 ADD MLOAD ISZERO PUSH2 0x1A49 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP4 PUSH1 0x80 ADD MLOAD PUSH2 0x19F1 DUP6 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A32 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A44 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x1AE2 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x1A90 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ACB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1ADD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0xA38 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x1B29 DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B64 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE48 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x1B7E PUSH2 0x289E JUMP JUMPDEST PUSH2 0x1B86 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0xF4C JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1BD9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BE1 PUSH2 0x289E JUMP JUMPDEST DUP1 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1BF7 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xC0 DUP2 ADD MLOAD PUSH2 0x1C0A SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x91E DUP2 PUSH2 0x3171 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CC2 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D1E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x1DA0 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0x1E670A97 PUSH1 0xE2 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DA0 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x1E14 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x526573657276653A206173736574206D616E6167657220646F65736E27742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D706C656D656E74732074686520726571756972656420696E74657266616365 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x2 DUP2 ISZERO PUSH2 0x1F3F JUMPI DUP5 ISZERO PUSH2 0x1EE5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH2 0x1E77 SWAP2 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1EAF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1EB4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1EC7 JUMPI PUSH1 0x3 SWAP3 POP PUSH2 0x1EDE JUMP JUMPDEST PUSH2 0x1EDE DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP POP PUSH2 0x1F3F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xCEC16F3F PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH0 SWAP1 PUSH2 0x1F24 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST SWAP1 POP PUSH2 0x1F3D DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP JUMPDEST PUSH2 0x12F DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND MUL OR SWAP1 SSTORE PUSH2 0x12F SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x948CB719 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0x1FC3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH2 0x2522 JUMP JUMPDEST POP JUMPDEST PUSH2 0xE48 DUP2 DUP8 PUSH2 0x34C1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2018 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2020 PUSH2 0x289E JUMP JUMPDEST DUP1 PUSH1 0xC0 ADD MLOAD PUSH2 0x12D PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2036 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x20D4 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x2082 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20BD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20CF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0x91E JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x837C83A3 DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x211B DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2157 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2169 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7FE SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x12E SLOAD SLT ISZERO PUSH2 0x220A JUMPI PUSH2 0x12E SLOAD PUSH2 0x7FE SWAP1 PUSH2 0x486B JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x963CE71E8EFEF763EFAED378C32433E843C9E3083032DEC79FA806375F2FC7AA PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x228D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22B1 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP4 PUSH0 PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2322 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x2405 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2382 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23A6 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23D8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46CF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2400 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x240D PUSH2 0x289E JUMP JUMPDEST PUSH2 0x2415 PUSH2 0xB91 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x244E JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2480 JUMPI PUSH2 0x247D DUP3 PUSH32 0x0 PUSH2 0x3514 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x24B7 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x24E9 JUMPI PUSH2 0x24E6 DUP3 PUSH32 0x0 PUSH2 0x3514 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7E4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4A8A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x37A2 JUMP JUMPDEST PUSH0 PUSH2 0x2550 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x258B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25AF SWAP2 SWAP1 PUSH2 0x48DC JUMP JUMPDEST PUSH2 0x25BA SWAP1 PUSH1 0xA PUSH2 0x49DF JUMP JUMPDEST PUSH2 0x6B0 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x47FF JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AB1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2679 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26AD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26C3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26D5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1436 DUP4 PUSH2 0x3816 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2715 JUMPI PUSH2 0x1436 DUP4 PUSH2 0x3A89 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x276F JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x276C SWAP2 DUP2 ADD SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x27D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x2840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST POP PUSH2 0x1436 DUP4 DUP4 DUP4 PUSH2 0x3B24 JUMP JUMPDEST PUSH2 0x2854 PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 SLT PUSH2 0x28F4 JUMPI PUSH2 0x91E DUP2 PUSH2 0x2FD4 JUMP JUMPDEST PUSH2 0x2900 PUSH2 0x14BC DUP3 PUSH2 0x486B JUMP JUMPDEST ISZERO PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C6F737365732063616E277420657863656564206D6178446566696369740000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12D SLOAD PUSH0 SWAP1 PUSH2 0x295D SWAP1 DUP4 PUSH2 0x3B91 JUMP JUMPDEST PUSH2 0x6B0 SWAP1 PUSH2 0x486B JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x24E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x12F SLOAD PUSH2 0x2710 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x29E1 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A2064656669636974526174696F206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST DUP3 DUP2 ISZERO PUSH2 0x2D68 JUMPI PUSH2 0x2A4A PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP6 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AAE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AD2 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2ADC SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST GT PUSH2 0x2B78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x30F7E76B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xC3DF9DAC SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B4D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B71 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D68 JUMP JUMPDEST PUSH2 0x2B80 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BE2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C06 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x2D68 JUMPI PUSH0 PUSH2 0x2C15 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP7 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C79 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C9D SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2CA7 SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST PUSH2 0x2CB1 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND PUSH4 0xC3DF9DAC PUSH2 0x2CEC DUP4 DUP9 PUSH2 0x4885 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D36 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D5A SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2D64 SWAP1 DUP3 PUSH2 0x4898 JUMP JUMPDEST SWAP2 POP POP JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x2D98 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DFC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E20 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST PUSH2 0x2E2A SWAP2 SWAP1 PUSH2 0x4898 JUMP JUMPDEST LT ISZERO PUSH2 0x2EC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x30F7E76B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xC3DF9DAC SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E9C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2EC0 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x1504 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446F6E2774206B6E6F7720776865726520746F20736F75726365207468652072 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x657374206F6620746865206D6F6E6579 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH2 0x2F54 PUSH2 0x29C8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x2F66 JUMPI PUSH2 0x2F66 PUSH2 0x49ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2FC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x2FCC PUSH2 0x3BC7 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x3BF5 JUMP JUMPDEST DUP1 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2FE6 SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1504 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x3C5E JUMP JUMPDEST PUSH2 0x3061 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2881 CALLER SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6B0 PUSH2 0x30A2 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30DD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3101 SWAP2 SWAP1 PUSH2 0x48DC JUMP JUMPDEST PUSH2 0x310C SWAP1 PUSH1 0xA PUSH2 0x49DF JUMP JUMPDEST PUSH2 0x3116 SWAP1 DUP5 PUSH2 0x484C JUMP JUMPDEST PUSH2 0x3D31 JUMP JUMPDEST PUSH0 PUSH0 DUP3 PUSH2 0x12E SLOAD PUSH2 0x312C SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x313A PUSH2 0xB9D PUSH2 0xA3C JUMP JUMPDEST SWAP1 POP DUP1 DUP3 SLT PUSH2 0x314F JUMPI POP PUSH2 0x12E SSTORE POP PUSH0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E DUP2 SWAP1 SSTORE DUP1 PUSH2 0x315F DUP4 PUSH2 0x486B JUMP JUMPDEST PUSH2 0x3169 SWAP2 SWAP1 PUSH2 0x470D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD ISZERO PUSH2 0x322B JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP3 PUSH1 0x60 ADD MLOAD PUSH2 0x31B8 DUP5 PUSH2 0x3486 JUMP JUMPDEST PUSH2 0x31C1 DUP6 PUSH2 0x3D95 JUMP JUMPDEST DUP6 PUSH2 0x120 ADD MLOAD PUSH2 0x31D1 SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3214 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3226 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD ISZERO PUSH2 0x91E JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB1081CCF DUP3 PUSH1 0x80 ADD MLOAD PUSH2 0x3272 DUP5 PUSH2 0x342A JUMP JUMPDEST PUSH2 0x327B DUP6 PUSH2 0x3DE5 JUMP JUMPDEST DUP6 PUSH2 0x140 ADD MLOAD PUSH2 0x328B SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3320 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526573657276653A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x332B JUMPI POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3334 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3378 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x339C SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x33F8 JUMPI PUSH2 0x33AF DUP3 PUSH2 0x3E2B JUMP JUMPDEST PUSH2 0x33B9 SWAP1 DUP3 PUSH2 0x4898 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x33F8 JUMPI PUSH32 0x0 PUSH2 0x33EE DUP3 DUP5 PUSH2 0x4885 JUMP JUMPDEST LT ISZERO PUSH2 0x33F8 JUMPI DUP1 SWAP2 POP JUMPDEST PUSH2 0x1436 DUP4 DUP4 PUSH2 0x3405 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x3F05 JUMP JUMPDEST PUSH0 DUP2 DUP4 LT PUSH2 0x3423 JUMPI DUP2 PUSH2 0x7E4 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH2 0x180 ADD MLOAD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3449 SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH4 0x1E13380 DUP6 PUSH2 0x140 ADD MLOAD PUSH2 0x3465 SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x346F SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST SWAP1 PUSH2 0x3F35 JUMP JUMPDEST PUSH0 PUSH0 DUP3 SLT ISZERO PUSH2 0x24E9 JUMPI DUP2 PUSH0 SUB PUSH2 0x6B0 JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 PUSH1 0x60 ADD MLOAD DUP4 PUSH2 0x180 ADD MLOAD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH2 0x34A5 SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH4 0x1E13380 DUP6 PUSH2 0x120 ADD MLOAD PUSH2 0x3465 SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x34C9 PUSH2 0x29C8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x34DB JUMPI PUSH2 0x34DB PUSH2 0x49ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xB6BDBD44472629FC24A00B6F4EE3348B72C9EFF333D0E9C16D78C49DA1323C8F SWAP1 PUSH1 0x20 ADD PUSH2 0x2F92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33481FC9 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x33481FC9 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x357E SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x3590 JUMPI DUP4 SWAP2 POP POP PUSH2 0x6B0 JUMP JUMPDEST PUSH0 PUSH2 0x359B DUP6 DUP4 PUSH2 0x3415 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x12E PUSH0 DUP3 DUP3 SLOAD PUSH2 0x35AF SWAP2 SWAP1 PUSH2 0x482D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP DUP2 SWAP1 POP PUSH2 0x35BE PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3602 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3626 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x3637 JUMPI PUSH2 0x3635 DUP2 PUSH2 0x3E2B JUMP JUMPDEST POP JUMPDEST DUP1 PUSH2 0x3640 PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x368C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B0 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST LT ISZERO PUSH2 0x3732 JUMPI PUSH2 0x36BE PUSH2 0x2170 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x370C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3730 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x918344D3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x918344D3 SWAP1 PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3777 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3789 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 DUP6 PUSH2 0x3799 SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x37BE SWAP2 SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x37F6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x37FB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x380C DUP7 DUP4 DUP4 DUP8 PUSH2 0x3F6A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x381F DUP2 PUSH2 0x3FE2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x536EBBFC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3889 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38AD SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x38E9 JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST PUSH2 0x3956 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E27742075706772616465206368616E67696E6720746865204A756E696F PUSH1 0x44 DUP3 ADD MSTORE PUSH24 0x722045544B20756E6C65737320746F206E6F6E2D7A65726F PUSH1 0x40 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7B83037B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39BC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x39E0 SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x3A1C JUMPI POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO JUMPDEST PUSH2 0xA38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E27742075706772616465206368616E67696E67207468652053656E696F PUSH1 0x44 DUP3 ADD MSTORE PUSH24 0x722045544B20756E6C65737320746F206E6F6E2D7A65726F PUSH1 0x40 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3AF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4A6A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B2D DUP4 PUSH2 0x4093 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3B39 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1436 JUMPI PUSH2 0x1504 DUP4 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3BAD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x40D2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3C1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP1 DUP3 MSTORE PUSH0 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x12F DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1B8E PUSH2 0x29C8 JUMP JUMPDEST PUSH0 PUSH2 0x3CB2 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x4108 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x3CD2 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3CD2 SWAP2 SWAP1 PUSH2 0x48AB JUMP JUMPDEST PUSH2 0x1436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x24E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x180 ADD MLOAD DUP3 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3DAC SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP3 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x3DCB SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST DUP4 PUSH2 0x120 ADD MLOAD PUSH2 0x3DDB SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH2 0x6B0 SWAP2 SWAP1 PUSH2 0x484C JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x180 ADD MLOAD DUP3 PUSH2 0x1A0 ADD MLOAD PUSH2 0x3DFC SWAP2 SWAP1 PUSH2 0x4A4C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP3 PUSH2 0x180 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x3E1B SWAP2 SWAP1 PUSH2 0x4885 JUMP JUMPDEST DUP4 PUSH2 0x140 ADD MLOAD PUSH2 0x3DDB SWAP2 SWAP1 PUSH2 0x47FF JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x3E47 PUSH2 0x12F SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH3 0x10000 SWAP1 SWAP2 DIV AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3EFD JUMPI PUSH0 PUSH2 0x3EE7 PUSH4 0x1014A0C2 PUSH1 0xE0 SHL DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3E77 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 MSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x115C9C9BDC881C99599A5B1B1A5B99C81DD85B1B195D PUSH1 0x52 SHL SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP2 PUSH2 0x37A2 JUMP JUMPDEST SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3169 SWAP2 SWAP1 PUSH2 0x4816 JUMP JUMPDEST POP PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1436 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x3022 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x3F53 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3FD8 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3FD1 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3FD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x883 JUMP JUMPDEST POP DUP2 PUSH2 0x3169 JUMP JUMPDEST PUSH2 0x3169 DUP4 DUP4 PUSH2 0x4116 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4048 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x406C SWAP2 SWAP1 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x91E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x409C DUP2 PUSH2 0x3A89 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x4100 PUSH2 0x4140 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x4166 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3169 DUP5 DUP5 PUSH0 DUP6 PUSH2 0x4194 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x4126 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x43ED JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1B8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x418C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH2 0x1B8E PUSH2 0x426B JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x41F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x883 JUMP JUMPDEST PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4210 SWAP2 SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x424A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x424F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4260 DUP8 DUP4 DUP4 DUP8 PUSH2 0x3F6A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4291 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP1 PUSH2 0x4A01 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x42FC JUMPI PUSH2 0x42FC PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4311 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432B JUMPI PUSH2 0x432B PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x435A JUMPI PUSH2 0x435A PUSH2 0x42C4 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x4371 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3169 DUP5 DUP3 DUP6 ADD PUSH2 0x4302 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP1 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP7 ADD MCOPY PUSH0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 PUSH2 0x7E4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x43BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x91E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4423 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7E4 DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x443F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x444A DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4465 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4471 DUP6 DUP3 DUP7 ADD PUSH2 0x4302 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x91E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4499 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x447B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44C6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x44DE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x44F8 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x44F8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4522 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x452A PUSH2 0x42D8 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x45A4 PUSH2 0x160 DUP4 ADD PUSH2 0x44ED JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x45B7 PUSH2 0x180 DUP4 ADD PUSH2 0x44FD JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x45CA PUSH2 0x1A0 DUP4 ADD PUSH2 0x44FD JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x200 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x45E9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x45F4 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP3 POP PUSH2 0x4603 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4511 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH2 0x1E0 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4626 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x380 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x464A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4654 DUP5 DUP5 PUSH2 0x4511 JUMP JUMPDEST SWAP2 POP PUSH2 0x4664 DUP5 PUSH2 0x1C0 DUP6 ADD PUSH2 0x4511 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x467E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x7E4 DUP4 DUP4 PUSH2 0x4511 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4699 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46A4 DUP2 PUSH2 0x43FF JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x44AB DUP2 PUSH2 0x447B JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7E4 DUP2 PUSH2 0x43FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 SLT PUSH0 DUP4 SLT DUP1 ISZERO DUP3 AND DUP3 ISZERO DUP3 AND OR ISZERO PUSH2 0x472C JUMPI PUSH2 0x472C PUSH2 0x46F9 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4826 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH0 DUP4 SLT DUP1 ISZERO DUP4 DUP4 SGT AND DUP4 DUP4 SLT DUP3 AND OR ISZERO PUSH2 0x1757 JUMPI PUSH2 0x1757 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4866 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x487F JUMPI PUSH2 0x487F PUSH2 0x46F9 JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7E4 DUP2 PUSH2 0x447B JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x7E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4937 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x491B JUMPI PUSH2 0x491B PUSH2 0x46F9 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x4929 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4900 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x494D JUMPI POP PUSH1 0x1 PUSH2 0x6B0 JUMP JUMPDEST DUP2 PUSH2 0x4959 JUMPI POP PUSH0 PUSH2 0x6B0 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x496F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x4979 JUMPI PUSH2 0x4995 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x498A JUMPI PUSH2 0x498A PUSH2 0x46F9 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x6B0 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x49B8 JUMPI POP DUP2 DUP2 EXP PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x49C4 PUSH0 NOT DUP5 DUP5 PUSH2 0x48FC JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x49D7 JUMPI PUSH2 0x49D7 PUSH2 0x46F9 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x7E4 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x493F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x46F9 JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x656455435DD261A4B9B3364963 0xF7 PUSH20 0x8A7A662AD9C84396D64BE3365284BB7F0A5041A2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH17 0x6F903C02A51E5E220C8670D71278F5A53 REVERT PUSH8 0xBFE64F3C4391CA0D 0xAB 0x1F 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1554:23326:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6762:198;;;;;;;;;;-1:-1:-1;6762:198:58;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;6762:198:58;;;;;;;;9380:76;;;;;;;;;;-1:-1:-1;9443:8:58;;9380:76;;;641:25:88;;;629:2;614:18;9380:76:58;497:175:88;8406:99:58;;;;;;;;;;-1:-1:-1;8481:19:58;;8406:99;;9386:213:59;;;;;;;;;;-1:-1:-1;9386:213:59;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8108:130:58:-;;;;;;;;;;;;;:::i;11745:148::-;;;;;;;;;;;;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;3916:102:57;;;;;;;;;;;;;:::i;11492:143:58:-;;;;;;;;;;;;;:::i;4022:94:57:-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;3409:32:88;;;3391:51;;3379:2;3364:18;4022:94:57;3224:224:88;8389:249:59;;;;;;;;;;;;;:::i;3922:220:7:-;;;;;;:::i;:::-;;:::i;9559:236:58:-;;;;;;;;;;;;;:::i;12745:965::-;;;;;;;;;;-1:-1:-1;12745:965:58;;;;;:::i;:::-;;:::i;3027:131:7:-;;;;;;;;;;;;;:::i;8659:114:58:-;;;;;;;;;;;;;:::i;9893:90::-;;;;;;;;;;-1:-1:-1;9968:10:58;9893:90;;1879:84:8;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;9799:90:58;;;;;;;;;;-1:-1:-1;9874:10:58;9799:90;;12003:148;;;;;;;;;;;;;:::i;7871:155:59:-;;;;;;;;;;;;;:::i;5494:76:58:-;;;;;;;;;;;;;:::i;17911:197::-;;;;;;;;;;-1:-1:-1;17911:197:58;;;;;:::i;:::-;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;1751:92:58:-;;;;;;;;;;;;1804:39;1751:92;;6964:107;;;;;;;;;;-1:-1:-1;7046:7:58;:20;;;;-1:-1:-1;;;;;7046:20:58;6964:107;;14409:692;;;;;;;;;;-1:-1:-1;14409:692:58;;;;;:::i;:::-;;:::i;21052:536::-;;;;;;;;;;-1:-1:-1;21052:536:58;;;;;:::i;:::-;;:::i;18772:560::-;;;;;;;;;;-1:-1:-1;18772:560:58;;;;;:::i;:::-;;:::i;1847:72::-;;;;;;;;;;;;1890:29;1847:72;;19665:1383;;;;;;;;;;-1:-1:-1;19665:1383:58;;;;;:::i;:::-;;:::i;8809:89:59:-;;;;;;;;;;;;;:::i;24374:225:58:-;;;;;;;;;;-1:-1:-1;24374:225:58;;;;;:::i;:::-;;:::i;5845:1689:59:-;;;;;;;;;;-1:-1:-1;5845:1689:59;;;;;:::i;:::-;;:::i;19336:325:58:-;;;;;;;;;;-1:-1:-1;19336:325:58;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;8975:116:58:-;;;;;;;;;;;;;:::i;22353:418::-;;;;;;;;;;;;;:::i;6762:198::-;6847:4;6866:36;6890:11;6866:23;:36::i;:::-;:89;;;-1:-1:-1;;;;;;;6906:49:58;;-1:-1:-1;;;6906:49:58;6866:89;6859:96;6762:198;-1:-1:-1;;6762:198:58:o;9386:213:59:-;9509:12;1802:24:57;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9536:58:59::1;9581:12;9544:14;7046:7:58::0;:20;-1:-1:-1;;;;;7046:20:58;;;;;;6964:107;9544:14:59::1;-1:-1:-1::0;;;;;9536:44:59::1;::::0;::::1;:58::i;:::-;9529:65:::0;9386:213;-1:-1:-1;;;9386:213:59:o;8108:130:58:-;8164:7;8224:8;;8201:19;;8194:38;;;;:::i;:::-;8179:54;;8108:130;:::o;11745:148::-;11811:7;:19;11789:7;;-1:-1:-1;;;11811:19:58;;;;:24;:77;;11868:7;:19;11858:30;;-1:-1:-1;;;11868:19:58;;;;11858:9;:30::i;11811:77::-;-1:-1:-1;;;11838:17:58;11745:148::o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;-1:-1:-1;;;;;;;;;;;1734:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;11492:143:58:-;11567:7;:20;11537:7;;11559:51;;1971:4;;11567:20;;11559:51;:::i;8389:249:59:-;1503:19:8;:17;:19::i;:::-;8516:61:59::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;8516:61:59::1;-1:-1:-1::0;;;8516:61:59::1;::::0;;8442:19:::1;::::0;8464:119:::1;::::0;8472:14:::1;7046:7:58::0;:20;-1:-1:-1;;;;;7046:20:58;;;;;;6964:107;8464:119:59::1;8442:141;;8589:44;8615:6;8604:28;;;;;;;;;;;;:::i;:::-;8589:14;:44::i;3922:220:7:-:0;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;9559:236:58:-:0;9606:7;9762:27;9774:14;:12;:14::i;:::-;9762:11;:27::i;:::-;9751:8;;:38;;;;:::i;12745:965::-;1802:24:57;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12859:21:58::1;12883:43;1971:4;12884:8;:30;;;;:::i;:::-;12883:41;:43::i;:::-;12859:67:::0;-1:-1:-1;12989:8:58;12940:45:::1;1971:4;12940:23;::::0;::::1;:45;:::i;:::-;:57;12932:111;;;::::0;-1:-1:-1;;;12932:111:58;;13187:2:88;12932:111:58::1;::::0;::::1;13169:21:88::0;13226:2;13206:18;;;13199:30;13265:34;13245:18;;;13238:62;-1:-1:-1;;;13316:18:88;;;13309:39;13365:19;;12932:111:58::1;12985:405:88::0;12932:111:58::1;13050:17;13070:21;13082:8;13070:11;:21::i;:::-;13050:41;;13105:10;:36;;;;13131:10;13119:8;;:22;;13105:36;13097:90;;;::::0;-1:-1:-1;;;13097:90:58;;13597:2:88;13097:90:58::1;::::0;::::1;13579:21:88::0;13636:2;13616:18;;;13609:30;13675:34;13655:18;;;13648:62;-1:-1:-1;;;13726:18:88;;;13719:39;13775:19;;13097:90:58::1;13395:405:88::0;13097:90:58::1;13193:7;:37:::0;;-1:-1:-1;;13193:37:58::1;;::::0;::::1;;::::0;;13236:21:::1;:19;:21::i;:::-;13364:8;::::0;13306:48:::1;::::0;13364:21;-1:-1:-1;13360:305:58::1;;;13422:14;13459:10;13448:8;;13447:9;;;:::i;:::-;:22;;;;:::i;:::-;13478:8;:21:::0;;;13422:48;-1:-1:-1;13507:72:58::1;13422:48:::0;13538:4:::1;13553:10;-1:-1:-1::0;;;;;13545:33:58::1;::::0;::::1;13507:14;:72::i;:::-;13596:62;13587:71;;13387:278;13360:305;13670:35;13688:6;13696:8;13670:17;:35::i;:::-;12853:857;;;12745:965:::0;;;:::o;3027:131:7:-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;14148:2:88;2174:92:7;;;14130:21:88;14187:2;14167:18;;;14160:30;14226:34;14206:18;;;14199:62;14297:26;14277:18;;;14270:54;14341:19;;2174:92:7;13946:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;8659:114:58:-;8709:7;8743:1;8731:8;;:13;;:37;;-1:-1:-1;8767:1:58;;8108:130::o;8731:37::-;-1:-1:-1;8755:8:58;;;8659:114::o;12003:148::-;12069:7;:19;12047:7;;-1:-1:-1;;;12069:19:58;;;;:24;:77;;12126:7;:19;12116:30;;-1:-1:-1;;;12126:19:58;;;;12116:9;:30::i;7871:155:59:-;1503:19:8;:17;:19::i;:::-;7964:56:59::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7964:56:59::1;-1:-1:-1::0;;;7964:56:59::1;::::0;;7919:102:::1;::::0;7927:14:::1;7046:7:58::0;:20;-1:-1:-1;;;;;7046:20:58;;;;;;6964:107;5494:76;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;14573:2:88;3325:201:6;;;14555:21:88;14612:2;14592:18;;;14585:30;14651:34;14631:18;;;14624:62;-1:-1:-1;;;14702:18:88;;;14695:44;14756:19;;3325:201:6;14371:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;5541:24:58::1;:22;:24::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;14938:36:88;;3721:14:6;;14926:2:88;14911:18;3721:14:6;;;;;;;;3269:483;5494:76:58:o;17911:197::-;17964:28;17985:6;17964:20;:28::i;:::-;17998:64;965:10:14;18048:4:58;18055:6;17998:10;:8;:10::i;:::-;-1:-1:-1;;;;;17998:27:58;;:64;;:27;:64::i;:::-;18073:30;;;18090:4;15153:41:88;;15225:2;15210:18;;15203:34;;;18073:30:58;;15126:18:88;18073:30:58;14985:258:88;3828:84:57;-1:-1:-1;;;;;;;;;;;2529:11:57;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;14409:692:58:-:0;1802:24:57;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14530:10:58::1;:31;14526:283;;14593:27;14609:10;14593:15;:27::i;:::-;14571:7;:49:::0;;-1:-1:-1;;;;14571:49:58::1;-1:-1:-1::0;;;14571:49:58::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;14670:10;;14636:30:::1;::::0;14646:19;;;::::1;;14636:9;:30::i;:::-;:44;14628:88;;;::::0;-1:-1:-1;;;14628:88:58;;15450:2:88;14628:88:58::1;::::0;::::1;15432:21:88::0;15489:2;15469:18;;;15462:30;15528:33;15508:18;;;15501:61;15579:18;;14628:88:58::1;15248:355:88::0;14628:88:58::1;14724:78;14742:47;14791:10;14724:17;:78::i;:::-;-1:-1:-1::0;;14818:10:58::1;:31;14814:283;;14881:27;14897:10;14881:15;:27::i;:::-;14859:7;:49:::0;;-1:-1:-1;;;;14859:49:58::1;-1:-1:-1::0;;;14859:49:58::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;14958:10;;14924:30:::1;::::0;14934:19;;;::::1;;14924:9;:30::i;:::-;:44;14916:88;;;::::0;-1:-1:-1;;;14916:88:58;;15450:2:88;14916:88:58::1;::::0;::::1;15432:21:88::0;15489:2;15469:18;;;15462:30;15528:33;15508:18;;;15501:61;15579:18;;14916:88:58::1;15248:355:88::0;14916:88:58::1;15012:78;15030:47;15079:10;15012:17;:78::i;:::-;14409:692:::0;;;:::o;21052:536::-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;21249:6:58::2;:18;;;21226:19;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21338:18:58::2;::::0;::::2;::::0;21273:21:::2;::::0;21297:61:::2;::::0;21314:43:::2;::::0;21321:6;21314:43:::2;:::i;:::-;21297:16;:61::i;:::-;21273:85:::0;-1:-1:-1;21368:18:58;;21364:165:::2;;21396:18;21407:6;21396:10;:18::i;:::-;21422:61;21437:13;21452:12;21481:1;21466:6;:12;;;:16;21422:14;:61::i;:::-;21364:165;;;21504:18;21515:6;21504:10;:18::i;:::-;21534:49;21546:12:::0;21560:22:::2;21569:13:::0;21560:6;:22:::2;:::i;:::-;21534:11;:49::i;:::-;21220:368;21052:536:::0;;;:::o;18772:560::-;18922:7;1804:39;2529:11:57;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;18945:25:58;::::1;::::0;-1:-1:-1;18937:93:58::1;;;::::0;-1:-1:-1;;;18937:93:58;;15943:2:88;18937:93:58::1;::::0;::::1;15925:21:88::0;15982:2;15962:18;;;15955:30;16021:34;16001:18;;;15994:62;16092:25;16072:18;;;16065:53;16135:19;;18937:93:58::1;15741:419:88::0;18937:93:58::1;19052:1;19040:8;;:13;19036:109;;19072:1;19063:10;;19036:109;;;19103:35;19112:6;19128:8;;19103;:35::i;:::-;19094:44;;19036:109;19167:1;19158:6;:10;19150:46;;;::::0;-1:-1:-1;;;19150:46:58;;16367:2:88;19150:46:58::1;::::0;::::1;16349:21:88::0;16406:2;16386:18;;;16379:30;16445:25;16425:18;;;16418:53;16488:18;;19150:46:58::1;16165:347:88::0;19150:46:58::1;19221:6;19202:8;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;19234:32:58::1;::::0;-1:-1:-1;19246:11:58;19259:6;19234:11:::1;:32::i;:::-;19277:31;::::0;;19294:5:::1;15153:41:88::0;;15225:2;15210:18;;15203:34;;;19277:31:58::1;::::0;15126:18:88;19277:31:58::1;;;;;;;19321:6;19314:13;;2615:1:57;18772:560:58::0;;;;;:::o;19665:1383::-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;19848:1:58::2;19830:9;:15;;;:19;:42;;;;;19871:1;19853:9;:15;;;:19;19830:42;19826:222;;;19882:11;19940:26;:9;:24;:26::i;:::-;19903;:9;:24;:26::i;:::-;19896:71;;;;:::i;:::-;19882:85;;20006:4;19983:20;19998:4;19983:14;:20::i;:::-;:27;19975:66;;;::::0;-1:-1:-1;;;19975:66:58;;16719:2:88;19975:66:58::2;::::0;::::2;16701:21:88::0;16758:2;16738:18;;;16731:30;16797:28;16777:18;;;16770:56;16843:18;;19975:66:58::2;16517:350:88::0;19975:66:58::2;19874:174;19826:222;20075:1;20057:9;:15;;;:19;:42;;;;;20098:1;20080:9;:15;;;:19;20057:42;20053:222;;;20109:11;20167:26;:9;:24;:26::i;:::-;20130;:9;:24;:26::i;:::-;20123:71;;;;:::i;:::-;20109:85;;20233:4;20210:20;20225:4;20210:14;:20::i;:::-;:27;20202:66;;;::::0;-1:-1:-1;;;20202:66:58;;16719:2:88;20202:66:58::2;::::0;::::2;16701:21:88::0;16758:2;16738:18;;;16731:30;16797:28;16777:18;;;16770:56;16843:18;;20202:66:58::2;16517:350:88::0;20202:66:58::2;20101:174;20053:222;20636:9;:21;;;20612:9;:21;;;:45;;;;:::i;:::-;20589:19;;:68;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;20667:15:58::2;::::0;::::2;::::0;:19;20663:93:::2;;20688:10;-1:-1:-1::0;;;;;20688:20:58::2;;20709:9;:15;;;20726:26;:9;:24;:26::i;:::-;20688:68;::::0;-1:-1:-1;;;;;;20688:68:58::2;::::0;;;;;;::::2;::::0;::::2;17211:25:88::0;;;;17252:18;;;17245:34;20754:1:58::2;17295:18:88::0;;;17288:34;17184:18;;20688:68:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20663:93;20766:15;::::0;::::2;::::0;:19;20762:93:::2;;20787:10;-1:-1:-1::0;;;;;20787:20:58::2;;20808:9;:15;;;20825:26;:9;:24;:26::i;:::-;20787:68;::::0;-1:-1:-1;;;;;;20787:68:58::2;::::0;;;;;;::::2;::::0;::::2;17211:25:88::0;;;;17252:18;;;17245:34;20853:1:58::2;17295:18:88::0;;;17288:34;17184:18;;20787:68:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20762:93;20865:15;::::0;::::2;::::0;:19;20861:88:::2;;20886:10;-1:-1:-1::0;;;;;20886:18:58::2;;20905:9;:15;;;20922:26;:9;:24;:26::i;:::-;20886:63;::::0;-1:-1:-1;;;;;;20886:63:58::2;::::0;;;;;;::::2;::::0;::::2;17507:25:88::0;;;;17548:18;;;17541:34;17480:18;;20886:63:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20861:88;20959:15;::::0;::::2;::::0;:19;20955:88:::2;;20980:10;-1:-1:-1::0;;;;;20980:18:58::2;;20999:9;:15;;;21016:26;:9;:24;:26::i;:::-;20980:63;::::0;-1:-1:-1;;;;;;20980:63:58::2;::::0;;;;;;::::2;::::0;::::2;17507:25:88::0;;;;17548:18;;;17541:34;17480:18;;20980:63:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8809:89:59::0;1503:19:8;:17;:19::i;:::-;8860:16:59::1;:14;:16::i;:::-;8882:11;:9;:11::i;:::-;8809:89::o:0;24374:225:58:-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;24506:6:58::2;:18;;;24483:19;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;24551:18:58::2;::::0;::::2;::::0;24530:40:::2;::::0;:20:::2;:40::i;:::-;24576:18;24587:6;24576:10;:18::i;5845:1689:59:-:0;-1:-1:-1;;;;;;;;;;;1734:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;6000:28:59;::::1;::::0;;:88:::1;;-1:-1:-1::0;6032:56:59::1;::::0;-1:-1:-1;;;6032:56:59;;-1:-1:-1;;;6032:56:59::1;::::0;::::1;17730:52:88::0;-1:-1:-1;;;;;6032:23:59;::::1;::::0;::::1;::::0;17703:18:88;;6032:56:59::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5985:183;;;::::0;;-1:-1:-1;;;5985:183:59;;18245:2:88;5985:183:59::1;::::0;::::1;18227:21:88::0;18264:18;;;18257:30;;;;18323:34;18303:18;;;18296:62;18394:34;18374:18;;;18367:62;18446:19;;5985:183:59::1;18043:428:88::0;5985:183:59::1;7046:7:58::0;:20;;;;-1:-1:-1;;;;;7046:20:58;6258:48:59::1;6316:16:::0;;6312:987:::1;;6346:5;6342:951;;;6521:58;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6521:58:59::1;-1:-1:-1::0;;;6521:58:59::1;::::0;;6494:95;;6457:12:::1;::::0;;;-1:-1:-1;;;;;6494:15:59;::::1;::::0;:95:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6456:133;;;;6604:7;6599:173;;6634:54;6625:63;;6599:173;;;6717:44;6743:6;6732:28;;;;;;;;;;;;:::i;6717:44::-;6353:756;;6342:951;;;7171:58;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7171:58:59::1;-1:-1:-1::0;;;7171:58:59::1;::::0;;7125:19:::1;::::0;7147:83:::1;::::0;-1:-1:-1;;;;;7147:23:59;::::1;::::0;::::1;:83::i;:::-;7125:105;;7240:44;7266:6;7255:28;;;;;;;;;;;;:::i;7240:44::-;7115:178;6342:951;7146:7:58::0;:28;;-1:-1:-1;;;;;;7146:28:58;;-1:-1:-1;;;;;7146:28:58;;;;;;7046:7;:20;;;;-1:-1:-1;;;;;7046:20:58;7333:28:59;-1:-1:-1;;;;;;7371:16:59;::::1;::::0;7367:116:::1;;7421:54;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7421:54:59::1;-1:-1:-1::0;;;7421:54:59::1;::::0;;7397:79:::1;::::0;-1:-1:-1;;;;;7397:23:59;::::1;::::0;::::1;:79::i;:::-;;7367:116;7488:41;7506:6;7522:5;7488:17;:41::i;19336:325:58:-:0;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;19468:6:58::2;:18;;;19445:19;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19496:12:58::2;::::0;::::2;::::0;:16;19492:79:::2;;19514:10;-1:-1:-1::0;;;;;19514:18:58::2;;19533:6;:12;;;19547:23;:6;:21;:23::i;:::-;19514:57;::::0;-1:-1:-1;;;;;;19514:57:58::2;::::0;;;;;;::::2;::::0;::::2;17507:25:88::0;;;;17548:18;;;17541:34;17480:18;;19514:57:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19492:79;19581:12;::::0;::::2;::::0;:16;19577:79:::2;;19599:10;-1:-1:-1::0;;;;;19599:18:58::2;;19618:6;:12;;;19632:23;:6;:21;:23::i;:::-;19599:57;::::0;-1:-1:-1;;;;;;19599:57:58::2;::::0;;;;;;::::2;::::0;::::2;17507:25:88::0;;;;17548:18;;;17541:34;17480:18;;19599:57:58::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19336:325:::0;:::o;4120:97:57:-;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8975:116:58:-;9026:7;9060:1;9048:8;;:13;;:38;;9077:8;;9076:9;;;:::i;9048:38::-;-1:-1:-1;9064:1:58;;8975:116::o;22353:418::-;22473:17;1890:29;4751:11;-1:-1:-1;;;;;4751:18:58;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4751:37:58;;4797:4;4804;4818:1;4822:4;4751:76;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4746:178;;4837:11;-1:-1:-1;;;;;4837:18:58;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4837:39:58;;4885:4;4892;965:10:14;4912:4:58;4837:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4746:178;1503:19:8::1;:17;:19::i;:::-;22512:16:58::2;:14;:16::i;:::-;22500:28:::0;-1:-1:-1;22538:14:58;;;::::2;::::0;:51:::2;;-1:-1:-1::0;22564:10:58::2;-1:-1:-1::0;;;;;22556:33:58::2;::::0;::::2;22538:51;22534:102;;;22603:33;22614:9;22625:10;22603;:33::i;:::-;22591:45;;22534:102;22646:14:::0;;;::::2;::::0;:51:::2;;-1:-1:-1::0;22672:10:58::2;-1:-1:-1::0;;;;;22664:33:58::2;::::0;::::2;22646:51;22642:102;;;22711:33;22722:9;22733:10;22711;:33::i;:::-;22699:45;;22642:102;22353:418:::0;;:::o;3618:206:57:-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;6674:198:38:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;11008:164:58:-;11064:7;11146:10;:8;:10::i;:::-;-1:-1:-1;;;;;11146:19:58;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11140:27;;:2;:27;:::i;:::-;11123:44;;:14;;;:44;:::i;3206:169:57:-;-1:-1:-1;;;;;;;;;;;1734:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;2841:944:4:-:0;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;21162:2:88;3631:56:4;;;21144:21:88;21201:2;21181:18;;;21174:30;21240:34;21220:18;;;21213:62;-1:-1:-1;;;21291:18:88;;;21284:44;21345:19;;3631:56:4;20960:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;21577:2:88;3509:82:4;;;21559:21:88;21616:2;21596:18;;;21589:30;21655:34;21635:18;;;21628:62;-1:-1:-1;;;21706:18:88;;;21699:39;21755:19;;3509:82:4;21375:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;3409:32:88;;;3391:51;;3379:2;3364:18;2785:22:8::1;;;;;;;2697:117::o:0;2031:106::-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;22195:2:88;2092:38:8;;;22177:21:88;22234:2;22214:18;;;22207:30;-1:-1:-1;;;22253:18:88;;;22246:46;22309:18;;2092:38:8;21993:340:88;7629:270:58;7726:1;7706:16;:21;7702:193;;7737:47;7766:16;7737:20;:47::i;7702:193::-;7813:35;7830:17;7831:16;7830:17;:::i;7813:35::-;:40;7805:83;;;;-1:-1:-1;;;7805:83:58;;22540:2:88;7805:83:58;;;22522:21:88;22579:2;22559:18;;;22552:30;22618:32;22598:18;;;22591:60;22668:18;;7805:83:58;22338:354:88;10877:127:58;10965:19;;10936:6;;10965:33;;10992:5;10965:26;:33::i;:::-;10957:42;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;22899:2:88;16362:76:46;;;22881:21:88;22938:2;22918:18;;;22911:30;22977:34;22957:18;;;22950:62;-1:-1:-1;;;23028:18:88;;;23021:36;23074:19;;16362:76:46;22697:402:88;7903:201:58;7978:7;:20;2022:3;7978:39;:20;;;:39;;;;:68;;-1:-1:-1;8021:20:58;7978:68;7963:136;;;;-1:-1:-1;;;7963:136:58;;23306:2:88;7963:136:58;;;23288:21:88;23345:2;23325:18;;;23318:30;23384:34;23364:18;;;23357:62;-1:-1:-1;;;23435:18:88;;;23428:35;23480:19;;7963:136:58;23104:401:88;15560:920:58;15660:6;15672:424;;;;15741:13;:11;:13::i;:::-;15695:33;;-1:-1:-1;;;15695:33:58;;15722:4;15695:33;;;3391:51:88;15731:6:58;;15695:10;-1:-1:-1;;;;;15695:18:58;;;;3364::88;;15695:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;:59;15691:399;;15773:41;;-1:-1:-1;;;15773:41:58;;;;;23873:25:88;;;-1:-1:-1;;;;;23934:32:88;;;23914:18;;;23907:60;15773:10:58;:23;;;;23846:18:88;;15773:41:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15766:48;;15691:399;;;15869:13;:11;:13::i;:::-;15833:33;;-1:-1:-1;;;15833:33:58;;15860:4;15833:33;;;3391:51:88;15833:10:58;-1:-1:-1;;;;;15833:18:58;;;;3364::88;;15833:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;15829:261;;;15918:18;15984:13;:11;:13::i;:::-;15939:33;;-1:-1:-1;;;15939:33:58;;15966:4;15939:33;;;3391:51:88;15975:6:58;;15939:10;-1:-1:-1;;;;;15939:18:58;;;;3364::88;;15939:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;:58;;;;:::i;:::-;15918:79;-1:-1:-1;;;;;;16027:10:58;:23;;16051:19;15918:79;16051:6;:19;:::i;:::-;16027:54;;-1:-1:-1;;;;;;16027:54:58;;;;;;;;;;23873:25:88;;;;-1:-1:-1;;;;;23934:32:88;;23914:18;;;23907:60;23846:18;;16027:54:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16014:67;;:10;:67;:::i;:::-;16007:74;;15884:206;15829:261;16112:17;16105:4;:24;16101:375;;;16230:13;:11;:13::i;:::-;16187:33;;-1:-1:-1;;;16187:33:58;;16214:4;16187:33;;;3391:51:88;16223:4:58;;16187:10;-1:-1:-1;;;;;16187:18:58;;;;3364::88;;16187:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;:56;16183:127;;;16262:39;;-1:-1:-1;;;16262:39:58;;;;;23873:25:88;;;-1:-1:-1;;;;;23934:32:88;;;23914:18;;;23907:60;16262:10:58;:23;;;;23846:18:88;;16262:39:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16255:46;;16183:127;16399:17;16391:4;:25;;16383:86;;;;-1:-1:-1;;;16383:86:58;;24180:2:88;16383:86:58;;;24162:21:88;24219:2;24199:18;;;24192:30;24258:34;24238:18;;;24231:62;-1:-1:-1;;;24309:18:88;;;24302:46;24365:19;;16383:86:58;23978:412:88;4985:166:57;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;641:25:88;;;5115:31:57;;629:2:88;614:18;5115:31:57;;;;;;;;4985:166;;:::o;5708:127:58:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;5774:16:58::1;:14;:16::i;:::-;5796:34;:32;:34::i;17364:108::-:0;17452:14;17433:8;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;;17364:108:58:o;1355:203:35:-;1482:68;;-1:-1:-1;;;;;25159:32:88;;;1482:68:35;;;25141:51:88;25228:32;;25208:18;;;25201:60;25277:18;;;25270:34;;;1455:96:35;;1475:5;;-1:-1:-1;;;1505:27:35;25114:18:88;;1482:68:35;;;;-1:-1:-1;;1482:68:35;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:35;-1:-1:-1;;;;;;1482:68:35;;;;;;;;;;1455:19;:96::i;2450:115:8:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;11176:183:58;11240:6;11305:49;11321:10;:8;:10::i;:::-;-1:-1:-1;;;;;11321:19:58;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11315:27;;:2;:27;:::i;:::-;11306:36;;:6;:36;:::i;:::-;11305:47;:49::i;16818:327::-;16876:7;16891:17;16922:5;16911:8;;:16;;;;:::i;:::-;16891:36;;16933:17;16953:27;16965:14;:12;:14::i;16953:27::-;16933:47;;17004:10;16990;:24;16986:82;;-1:-1:-1;17024:8:58;:21;-1:-1:-1;17060:1:58;;16818:327;-1:-1:-1;16818:327:58:o;16986:82::-;17073:8;:21;;;17084:10;17115:11;17116:10;17115:11;:::i;:::-;:24;;;;:::i;:::-;17100:40;16818:327;-1:-1:-1;;;;16818:327:58:o;21755:451::-;21827:12;;;;:16;21823:187;;21853:10;-1:-1:-1;;;;;21853:20:58;;21883:6;:12;;;21905:23;:6;:21;:23::i;:::-;21968:26;:6;:24;:26::i;:::-;21945:6;:12;;;21938:57;;;;:::i;:::-;21853:150;;-1:-1:-1;;;;;;21853:150:58;;;;;;;;;;17211:25:88;;;;17252:18;;;17245:34;;;;17295:18;;;17288:34;17184:18;;21853:150:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21823:187;22019:12;;;;:16;22015:187;;22045:10;-1:-1:-1;;;;;22045:20:58;;22075:6;:12;;;22097:23;:6;:21;:23::i;:::-;22160:26;:6;:24;:26::i;:::-;22137:6;:12;;;22130:57;;;;:::i;:::-;22045:150;;-1:-1:-1;;;;;;22045:150:58;;;;;;;;;;17211:25:88;;;;17252:18;;;17245:34;;;;17295:18;;;17288:34;17184:18;;22045:150:58;17002:326:88;3266:564:59;-1:-1:-1;;;;;3347:25:59;;3339:75;;;;-1:-1:-1;;;3339:75:59;;25839:2:88;3339:75:59;;;25821:21:88;25878:2;25858:18;;;25851:30;25917:34;25897:18;;;25890:62;-1:-1:-1;;;25968:18:88;;;25961:35;26013:19;;3339:75:59;25637:401:88;3339:75:59;3424:6;3434:1;3424:11;3420:24;;3266:564;;:::o;3420:24::-;3449:15;3467:10;:8;:10::i;:::-;:35;;-1:-1:-1;;;3467:35:59;;3496:4;3467:35;;;3391:51:88;-1:-1:-1;;;;;3467:20:59;;;;;;;3364:18:88;;3467:35:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3449:53;;3522:6;3512:7;:16;3508:268;;;3549:21;3563:6;3549:13;:21::i;:::-;3538:32;;;;:::i;:::-;;;3591:7;3582:6;:16;3578:192;;;3635:17;3615:16;3624:7;3615:6;:16;:::i;:::-;3614:38;3610:83;;;3675:7;3666:16;;3610:83;3781:44;3805:11;3818:6;3781:10;:8;:10::i;:::-;-1:-1:-1;;;;;3781:23:59;;:44;:23;:44::i;588:104:45:-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:45;;588:104;-1:-1:-1;588:104:45:o;4303:193:55:-;4376:7;4398:93;4478:6;:12;;;4456:6;:12;;;4436:6;:17;;;:32;;;;:::i;:::-;4399:70;;562:8;4400:6;:12;;;:31;;;;:::i;:::-;4399:70;;;;:::i;:::-;4398:79;;:93::i;1047:213:47:-;1093:7;1232:1;1227;:6;;:15;;1241:1;1240:2;;1227:15;;3913:193:55;3986:7;4008:93;4088:6;:12;;;4066:6;:12;;;4046:6;:17;;;:32;;;;:::i;:::-;4009:70;;562:8;4010:6;:12;;;:31;;;;:::i;5155:166:57:-;5253:21;:19;:21::i;:::-;5302:6;5285:31;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3409:32:88;;3391:51;;5285:31:57;;3379:2:88;3364:18;5285:31:57;3224:224:88;23106:1264:58;23223:26;;-1:-1:-1;;;23223:26:58;;23243:4;23223:26;;;3391:51:88;23182:7:58;;;;-1:-1:-1;;;;;23223:11:58;;;;;3364:18:88;;23223:26:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23197:52;;23259:15;23278:1;23259:20;23255:48;;23288:15;23281:22;;;;;23255:48;23309:19;23331:42;23340:15;23357;23331:8;:42::i;:::-;23309:64;;23398:11;23379:8;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;23527:11:58;;-1:-1:-1;23489:10:58;:8;:10::i;:::-;:35;;-1:-1:-1;;;23489:35:58;;23518:4;23489:35;;;3391:51:88;-1:-1:-1;;;;;23489:20:58;;;;;;;3364:18:88;;23489:35:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;23485:470;;;23922:26;23936:11;23922:13;:26::i;:::-;;23485:470;24061:11;24009:10;:8;:10::i;:::-;:49;;-1:-1:-1;;;24009:49:58;;24038:4;24009:49;;;26398:51:88;-1:-1:-1;;;;;26485:32:88;;;26465:18;;;26458:60;24009:20:58;;;;;;;26371:18:88;;24009:49:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;24005:272;;;24221:10;:8;:10::i;:::-;:49;;-1:-1:-1;;;24221:49:58;;-1:-1:-1;;;;;26721:32:88;;;24221:49:58;;;26703:51:88;26770:18;;;26763:34;;;24221:18:58;;;;;;;26676::88;;24221:49:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24005:272;24282:41;;-1:-1:-1;;;24282:41:58;;;;;23873:25:88;;;24317:4:58;23914:18:88;;;23907:60;-1:-1:-1;;;;;24282:13:58;;;;;23846:18:88;;24282:41:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24354:11;24336:15;:29;;;;:::i;:::-;24329:36;23106:1264;-1:-1:-1;;;;;23106:1264:58:o;7058:325:38:-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:38;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:38:o;6203:500:58:-;6286:34;6312:7;6286:25;:34::i;:::-;6326:22;6368:7;6326:50;;6418:10;-1:-1:-1;;;;;6397:31:58;:5;-1:-1:-1;;;;;6397:15:58;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6397:31:58;;:68;;;-1:-1:-1;6440:10:58;-1:-1:-1;;;;;6432:33:58;;6397:68;6382:155;;;;-1:-1:-1;;;6382:155:58;;27283:2:88;6382:155:58;;;27265:21:88;27322:2;27302:18;;;27295:30;27361:34;27341:18;;;27334:62;-1:-1:-1;;;27412:18:88;;;27405:54;27476:19;;6382:155:58;27081:420:88;6382:155:58;6579:10;-1:-1:-1;;;;;6558:31:58;:5;-1:-1:-1;;;;;6558:15:58;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6558:31:58;;:68;;;-1:-1:-1;6601:10:58;-1:-1:-1;;;;;6593:33:58;;6558:68;6543:155;;;;-1:-1:-1;;;6543:155:58;;27708:2:88;6543:155:58;;;27690:21:88;27747:2;27727:18;;;27720:30;27786:34;27766:18;;;27759:62;-1:-1:-1;;;27837:18:88;;;27830:54;27901:19;;6543:155:58;27506:420:88;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;28133:2:88;1793:106:4;;;28115:21:88;28172:2;28152:18;;;28145:30;28211:34;28191:18;;;28184:62;-1:-1:-1;;;28262:18:88;;;28255:43;28315:19;;1793:106:4;27931:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;28547:2:88;2267:41:8;;;28529:21:88;28586:2;28566:18;;;28559:30;-1:-1:-1;;;28605:18:88;;;28598:50;28665:18;;2267:41:8;28345:344:88;1077:319:65;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;1931:91:59:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1989:28:59::1;:26;:28::i;5890:309:58:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;6019:148:58::1;::::0;;::::1;::::0;::::1;::::0;;2022:3:::1;6019:148:::0;;;-1:-1:-1;6019:148:58::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;6009:7:::1;:158:::0;;-1:-1:-1;;;;;;6009:158:58;;;;;;6173:21:::1;:19;:21::i;5196:642:35:-:0;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:35;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:35;;28896:2:88;5720:111:35;;;28878:21:88;28935:2;28915:18;;;28908:30;28974:34;28954:18;;;28947:62;-1:-1:-1;;;29025:18:88;;;29018:40;29075:19;;5720:111:35;28694:406:88;15264:187:46;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;29307:2:88;15338:76:46;;;29289:21:88;29346:2;29326:18;;;29319:30;29385:34;29365:18;;;29358:62;-1:-1:-1;;;29436:18:88;;;29429:36;29482:19;;15338:76:46;29105:402:88;4110:189:55;4186:7;4281:6;:12;;;4261:6;:17;;;:32;;;;:::i;:::-;4208:86;;4243:6;:12;;;4225:30;;:15;:30;;;;:::i;:::-;4209:6;:12;;;:47;;;;:::i;:::-;4208:86;;;;:::i;4500:189::-;4576:7;4671:6;:12;;;4651:6;:17;;;:32;;;;:::i;:::-;4598:86;;4633:6;:12;;;4615:30;;:15;:30;;;;:::i;:::-;4599:6;:12;;;:47;;;;:::i;2587:377:59:-;2644:7;2659:10;2680:14;7046:7:58;:20;-1:-1:-1;;;;;7046:20:58;;;;;;6964:107;2680:14:59;2659:36;-1:-1:-1;;;;;;2705:16:59;;;2701:245;;2731:19;2753:142;2809:35;;;2846:6;2786:67;;;;;;641:25:88;;629:2;614:18;;497:175;2786:67:59;;;;-1:-1:-1;;2786:67:59;;;;;;;;;;;;;;;-1:-1:-1;;;;;2786:67:59;-1:-1:-1;;;;;;2786:67:59;;;;;;;;;;2753:142;;;;;;;;;;;-1:-1:-1;;;2753:142:59;;;;;;;-1:-1:-1;;;;;2753:23:59;;;;:142::i;:::-;2731:164;;2921:6;2910:29;;;;;;;;;;;;:::i;2701:245::-;-1:-1:-1;2958:1:59;;2587:377;-1:-1:-1;;2587:377:59:o;941:175:35:-;1050:58;;-1:-1:-1;;;;;26721:32:88;;1050:58:35;;;26703:51:88;26770:18;;;26763:34;;;1023:86:35;;1043:5;;-1:-1:-1;;;1073:23:35;26676:18:88;;1050:58:35;26529:274:88;1663:322:65;1724:9;1829;;1888:3;1883:1;1876:9;;1864:22;1860:32;1854:39;;1826:70;1823:104;;;1917:1;1914;1907:12;1823:104;-1:-1:-1;1955:3:65;1948:11;;;;1968:1;1961:9;;1944:27;1940:35;;1663:322::o;7671:628:38:-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:13;;;8113:60:38;;;;-1:-1:-1;;;8113:60:38;;29714:2:88;8113:60:38;;;29696:21:88;29753:2;29733:18;;;29726:30;29792:31;29772:18;;;29765:59;29841:18;;8113:60:38;29512:353:88;8113:60:38;-1:-1:-1;8208:10:38;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;3080:122:57:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4108:223:38:-:0;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:38;;;;;;;;:::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;5165:446:38:-:0;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:38;;30573:2:88;5354:81:38;;;30555:21:88;30612:2;30592:18;;;30585:30;30651:34;30631:18;;;30624:62;-1:-1:-1;;;30702:18:88;;;30695:36;30748:19;;5354:81:38;30371:402:88;5354:81:38;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:38;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:38:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;859:127;920:10;915:3;911:20;908:1;901:31;951:4;948:1;941:15;975:4;972:1;965:15;991:250;1058:2;1052:9;1100:6;1088:19;;1137:18;1122:34;;1158:22;;;1119:62;1116:88;;;1184:18;;:::i;:::-;1220:2;1213:22;991:250;:::o;1246:745::-;1288:5;1341:3;1334:4;1326:6;1322:17;1318:27;1308:55;;1359:1;1356;1349:12;1308:55;1399:6;1386:20;1429:18;1421:6;1418:30;1415:56;;;1451:18;;:::i;:::-;1520:2;1514:9;1612:2;1574:17;;-1:-1:-1;;1570:31:88;;;1603:2;1566:40;1562:54;1550:67;;1647:18;1632:34;;1668:22;;;1629:62;1626:88;;;1694:18;;:::i;:::-;1730:2;1723:22;1754;;;1795:19;;;1816:4;1791:30;1788:39;-1:-1:-1;1785:59:88;;;1840:1;1837;1830:12;1785:59;1904:6;1897:4;1889:6;1885:17;1878:4;1870:6;1866:17;1853:58;1959:1;1931:19;;;1952:4;1927:30;1920:41;;;;1935:6;1246:745;-1:-1:-1;;;1246:745:88:o;1996:320::-;2064:6;2117:2;2105:9;2096:7;2092:23;2088:32;2085:52;;;2133:1;2130;2123:12;2085:52;2173:9;2160:23;2206:18;2198:6;2195:30;2192:50;;;2238:1;2235;2228:12;2192:50;2261:49;2302:7;2293:6;2282:9;2278:22;2261:49;:::i;2321:288::-;2362:3;2400:5;2394:12;2427:6;2422:3;2415:19;2483:6;2476:4;2469:5;2465:16;2458:4;2453:3;2449:14;2443:47;2535:1;2528:4;2519:6;2514:3;2510:16;2506:27;2499:38;2598:4;2591:2;2587:7;2582:2;2574:6;2570:15;2566:29;2561:3;2557:39;2553:50;2546:57;;;2321:288;;;;:::o;2614:217::-;2761:2;2750:9;2743:21;2724:4;2781:44;2821:2;2810:9;2806:18;2798:6;2781:44;:::i;2836:131::-;-1:-1:-1;;;;;2911:31:88;;2901:42;;2891:70;;2957:1;2954;2947:12;2972:247;3031:6;3084:2;3072:9;3063:7;3059:23;3055:32;3052:52;;;3100:1;3097;3090:12;3052:52;3139:9;3126:23;3158:31;3183:5;3158:31;:::i;3453:455::-;3530:6;3538;3591:2;3579:9;3570:7;3566:23;3562:32;3559:52;;;3607:1;3604;3597:12;3559:52;3646:9;3633:23;3665:31;3690:5;3665:31;:::i;:::-;3715:5;-1:-1:-1;3771:2:88;3756:18;;3743:32;3798:18;3787:30;;3784:50;;;3830:1;3827;3820:12;3784:50;3853:49;3894:7;3885:6;3874:9;3870:22;3853:49;:::i;:::-;3843:59;;;3453:455;;;;;:::o;3913:118::-;3999:5;3992:13;3985:21;3978:5;3975:32;3965:60;;4021:1;4018;4011:12;4036:361;4101:6;4109;4162:2;4150:9;4141:7;4137:23;4133:32;4130:52;;;4178:1;4175;4168:12;4130:52;4223:23;;;-1:-1:-1;4322:2:88;4307:18;;4294:32;4335:30;4294:32;4335:30;:::i;:::-;4384:7;4374:17;;;4036:361;;;;;:::o;4809:226::-;4868:6;4921:2;4909:9;4900:7;4896:23;4892:32;4889:52;;;4937:1;4934;4927:12;4889:52;-1:-1:-1;4982:23:88;;4809:226;-1:-1:-1;4809:226:88:o;5271:346::-;5339:6;5347;5400:2;5388:9;5379:7;5375:23;5371:32;5368:52;;;5416:1;5413;5406:12;5368:52;-1:-1:-1;;5461:23:88;;;5581:2;5566:18;;;5553:32;;-1:-1:-1;5271:346:88:o;5622:147::-;5703:20;;5732:31;5703:20;5732:31;:::i;:::-;5622:147;;;:::o;5774:165::-;5841:20;;5901:12;5890:24;;5880:35;;5870:63;;5929:1;5926;5919:12;5944:1689;6001:5;6049:6;6037:9;6032:3;6028:19;6024:32;6021:52;;;6069:1;6066;6059:12;6021:52;6091:17;;:::i;:::-;6153:23;;6185:22;;6280:2;6265:18;;;6252:32;6300:14;;;6293:31;6397:2;6382:18;;;6369:32;6417:14;;;6410:31;6514:2;6499:18;;;6486:32;6534:14;;;6527:31;6631:3;6616:19;;;6603:33;6652:15;;;6645:32;6750:3;6735:19;;;6722:33;6771:15;;;6764:32;6869:3;6854:19;;;6841:33;6890:15;;;6883:32;6988:3;6973:19;;;6960:33;7009:15;;;7002:32;7107:3;7092:19;;;7079:33;7128:15;;;7121:32;7228:3;7213:19;;;7200:33;7249:15;;;7242:33;7350:3;7335:19;;;7322:33;7371:15;;;7364:33;6082:26;-1:-1:-1;7430:52:88;7477:3;7462:19;;7430:52;:::i;:::-;7424:3;7417:5;7413:15;7406:77;7516:38;7549:3;7538:9;7534:19;7516:38;:::i;:::-;7510:3;7503:5;7499:15;7492:63;7588:38;7621:3;7610:9;7606:19;7588:38;:::i;:::-;7582:3;7575:5;7571:15;7564:63;5944:1689;;;;:::o;7638:491::-;7744:6;7752;7760;7813:3;7801:9;7792:7;7788:23;7784:33;7781:53;;;7830:1;7827;7820:12;7781:53;7869:9;7856:23;7888:31;7913:5;7888:31;:::i;:::-;7938:5;-1:-1:-1;7962:57:88;8011:7;8006:2;7991:18;;7962:57;:::i;:::-;7638:491;;7952:67;;-1:-1:-1;;;8092:3:88;8077:19;;;;8064:33;;7638:491::o;8134:367::-;8202:6;8210;8263:2;8251:9;8242:7;8238:23;8234:32;8231:52;;;8279:1;8276;8269:12;8231:52;8324:23;;;-1:-1:-1;8423:2:88;8408:18;;8395:32;8436:33;8395:32;8436:33;:::i;8506:358::-;8632:6;8640;8693:3;8681:9;8672:7;8668:23;8664:33;8661:53;;;8710:1;8707;8700:12;8661:53;8733:48;8773:7;8762:9;8733:48;:::i;:::-;8723:58;;8800;8850:7;8844:3;8833:9;8829:19;8800:58;:::i;:::-;8790:68;;8506:358;;;;;:::o;8869:235::-;8957:6;9010:3;8998:9;8989:7;8985:23;8981:33;8978:53;;;9027:1;9024;9017:12;8978:53;9050:48;9090:7;9079:9;9050:48;:::i;9109:405::-;9197:6;9205;9258:2;9246:9;9237:7;9233:23;9229:32;9226:52;;;9274:1;9271;9264:12;9226:52;9313:9;9300:23;9332:31;9357:5;9332:31;:::i;:::-;9382:5;-1:-1:-1;9439:2:88;9424:18;;9411:32;9452:30;9411:32;9452:30;:::i;9750:275::-;9844:6;9897:2;9885:9;9876:7;9872:23;9868:32;9865:52;;;9913:1;9910;9903:12;9865:52;9945:9;9939:16;9964:31;9989:5;9964:31;:::i;10030:453::-;-1:-1:-1;;;;;10273:32:88;;;10255:51;;10337:2;10322:18;;10315:34;;;;10385:32;;10380:2;10365:18;;10358:60;10461:14;;10454:22;10449:2;10434:18;;10427:50;10242:3;10227:19;;10030:453::o;10488:127::-;10549:10;10544:3;10540:20;10537:1;10530:31;10580:4;10577:1;10570:15;10604:4;10601:1;10594:15;10620:216;10684:9;;;10712:11;;;10659:3;10742:9;;10770:10;;10766:19;;10795:10;;10787:19;;10763:44;10760:70;;;10810:18;;:::i;:::-;10760:70;;10620:216;;;;:::o;10841:408::-;11043:2;11025:21;;;11082:2;11062:18;;;11055:30;11121:34;11116:2;11101:18;;11094:62;-1:-1:-1;;;11187:2:88;11172:18;;11165:42;11239:3;11224:19;;10841:408::o;11254:::-;11456:2;11438:21;;;11495:2;11475:18;;;11468:30;11534:34;11529:2;11514:18;;11507:62;-1:-1:-1;;;11600:2:88;11585:18;;11578:42;11652:3;11637:19;;11254:408::o;11667:525::-;-1:-1:-1;;;;;11938:32:88;;;11920:51;;12002:2;11987:18;;11980:34;;;;12045:2;12030:18;;12023:34;;;;12093:32;;;12088:2;12073:18;;12066:60;12170:14;;12163:22;12157:3;12142:19;;12135:51;11907:3;11892:19;;11667:525::o;12197:168::-;12270:9;;;12301;;12318:15;;;12312:22;;12298:37;12288:71;;12339:18;;:::i;12370:183::-;12439:6;12492:2;12480:9;12471:7;12467:23;12463:32;12460:52;;;12508:1;12505;12498:12;12460:52;-1:-1:-1;12531:16:88;;12370:183;-1:-1:-1;12370:183:88:o;12558:200::-;12624:9;;;12597:4;12652:9;;12680:10;;12692:12;;;12676:29;12715:12;;;12707:21;;12673:56;12670:82;;;12732:18;;:::i;12763:217::-;12803:1;12829;12819:132;;12873:10;12868:3;12864:20;12861:1;12854:31;12908:4;12905:1;12898:15;12936:4;12933:1;12926:15;12819:132;-1:-1:-1;12965:9:88;;12763:217::o;13805:136::-;13840:3;-1:-1:-1;;;13861:22:88;;13858:48;;13886:18;;:::i;:::-;-1:-1:-1;13926:1:88;13922:13;;13805:136::o;15608:128::-;15675:9;;;15696:11;;;15693:37;;;15710:18;;:::i;16872:125::-;16937:9;;;16958:10;;;16955:36;;;16971:18;;:::i;17793:245::-;17860:6;17913:2;17901:9;17892:7;17888:23;17884:32;17881:52;;;17929:1;17926;17919:12;17881:52;17961:9;17955:16;17980:28;18002:5;17980:28;:::i;18476:301::-;18605:3;18643:6;18637:13;18689:6;18682:4;18674:6;18670:17;18665:3;18659:37;18751:1;18715:16;;18740:13;;;-1:-1:-1;18715:16:88;18476:301;-1:-1:-1;18476:301:88:o;19061:273::-;19129:6;19182:2;19170:9;19161:7;19157:23;19153:32;19150:52;;;19198:1;19195;19188:12;19150:52;19230:9;19224:16;19280:4;19273:5;19269:16;19262:5;19259:27;19249:55;;19300:1;19297;19290:12;19339:375;19427:1;19445:5;19459:249;19480:1;19470:8;19467:15;19459:249;;;19530:4;19525:3;19521:14;19515:4;19512:24;19509:50;;;19539:18;;:::i;:::-;19589:1;19579:8;19575:16;19572:49;;;19603:16;;;;19572:49;19686:1;19682:16;;;;;19642:15;;19459:249;;;19339:375;;;;;;:::o;19719:902::-;19768:5;19798:8;19788:80;;-1:-1:-1;19839:1:88;19853:5;;19788:80;19887:4;19877:76;;-1:-1:-1;19924:1:88;19938:5;;19877:76;19969:4;19987:1;19982:59;;;;20055:1;20050:174;;;;19962:262;;19982:59;20012:1;20003:10;;20026:5;;;20050:174;20087:3;20077:8;20074:17;20071:43;;;20094:18;;:::i;:::-;-1:-1:-1;;20150:1:88;20136:16;;20209:5;;19962:262;;20308:2;20298:8;20295:16;20289:3;20283:4;20280:13;20276:36;20270:2;20260:8;20257:16;20252:2;20246:4;20243:12;20239:35;20236:77;20233:203;;;-1:-1:-1;20345:19:88;;;20421:5;;20233:203;20468:42;-1:-1:-1;;20493:8:88;20487:4;20468:42;:::i;:::-;20546:6;20542:1;20538:6;20534:19;20525:7;20522:32;20519:58;;;20557:18;;:::i;:::-;20595:20;;19719:902;-1:-1:-1;;;19719:902:88:o;20626:140::-;20684:5;20713:47;20754:4;20744:8;20740:19;20734:4;20713:47;:::i;24395:127::-;24456:10;24451:3;24447:20;24444:1;24437:31;24487:4;24484:1;24477:15;24511:4;24508:1;24501:15;24527:407;24729:2;24711:21;;;24768:2;24748:18;;;24741:30;24807:34;24802:2;24787:18;;24780:62;-1:-1:-1;;;24873:2:88;24858:18;;24851:41;24924:3;24909:19;;24527:407::o;26043:176::-;26142:12;26135:20;;;26113;;;26109:47;;26168:22;;26165:48;;;26193:18;;:::i"},"methodIdentifiers":{"REPAY_LOANS_ROLE()":"aac0cfaf","WITHDRAW_WON_PREMIUMS_ROLE()":"8ca23bc9","activePurePremiums()":"1a548a27","assetManager()":"94217ad1","borrowedActivePP()":"e823584a","checkpoint()":"c2c4c5c1","currency()":"e5a6b10f","deficitRatio()":"4863c8b0","forwardToAssetManager(bytes)":"1e9c4658","fundsAvailable()":"4fe0bd1e","initialize()":"8129fc1c","jrLoanLimit()":"2d8f892a","juniorEtk()":"536ebbfc","pause()":"8456cb59","paused()":"5c975abb","policyCreated((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"e3638ea3","policyExpired((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"c7a9c70d","policyPool()":"4d15eb03","policyReplaced((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"ab83b4be","policyResolvedWithPayout(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"9d8c5ee7","proxiableUUID()":"52d1902d","purePremiums()":"26ccbd22","rebalance()":"7d7c2a1c","receiveGrant(uint256)":"81ced71f","recordEarnings()":"4eb978a4","repayLoans()":"f39a4bc5","seniorEtk()":"7b83037b","setAssetManager(address,bool)":"d80359f1","setDeficitRatio(uint256,bool)":"50093f04","setLoanLimits(uint256,uint256)":"97a146c0","srLoanLimit()":"7bb62319","supportsInterface(bytes4)":"01ffc9a7","surplus()":"13888565","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","withdrawWonPremiums(uint256,address)":"a0ce58b8","wonPurePremiums()":"536c9a43"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IEToken\",\"name\":\"juniorEtk_\",\"type\":\"address\"},{\"internalType\":\"contract IEToken\",\"name\":\"seniorEtk_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"moneyIn\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"WonPremiumsInOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REPAY_LOANS_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAW_WON_PREMIUMS_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activePurePremiums\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetManager\",\"outputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowedActivePP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deficitRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"functionCall\",\"type\":\"bytes\"}],\"name\":\"forwardToAssetManager\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fundsAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"jrLoanLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"juniorEtk\",\"outputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"policyCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"policyExpired\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy\",\"type\":\"tuple\"}],\"name\":\"policyReplaced\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"policyResolvedWithPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"purePremiums\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveGrant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"repayLoans\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"seniorEtk\",\"outputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"newAM\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"force\",\"type\":\"bool\"}],\"name\":\"setAssetManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRatio\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"adjustment\",\"type\":\"bool\"}],\"name\":\"setDeficitRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLimitJr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimitSr\",\"type\":\"uint256\"}],\"name\":\"setLoanLimits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"srLoanLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"surplus\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"withdrawWonPremiums\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wonPurePremiums\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"This contract holds the pure premiums of a set of risk modules. The pure premiums is the part of the premium that is expected to cover the losses. The contract keeps track of the pure premiums of the active policies (_activePurePremiums) and the surplus or deficit generated by the finalized policies (pure premiums collected - losses). Collaborates with a junior {EToken} and a senior {EToken} that act as lenders when the premiums aren't enough to cover the losses.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WonPremiumsInOut(bool,uint256)\":{\"params\":{\"moneyIn\":\"Indicates if money came in or out (false).\",\"value\":\"The amount of money received or given\"}}},\"kind\":\"dev\",\"methods\":{\"activePurePremiums()\":{\"details\":\"Returns the total amount of pure premiums that were collected by the active policies of the risk modules linked to this PremiumsAccount.\"},\"assetManager()\":{\"details\":\"Returns the address of the asset manager for this reserve. The asset manager is the contract that manages the funds to generate additional yields. Can be `address(0)` if no asset manager has been set.\"},\"borrowedActivePP()\":{\"details\":\"Returns the amount of active pure premiums that was used to cover payouts of finalized policies (in excess of collected pure premiums). This is limited by `_maxDeficit()`\"},\"checkpoint()\":{\"details\":\"Function that calls both `recordEarnings()` and `rebalance()` (in that order). Usually scheduled to run once a day by a keeper or crontask.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deficitRatio()\":{\"details\":\"Returns the percentage of the active pure premiums that can be used to cover losses of finalized policies.\"},\"forwardToAssetManager(bytes)\":{\"details\":\"This function allows to call custom functions of the asset manager (for example for setting parameters).      This functions will be called with `delegatecall`, in the context of the reserve. Requirements: - The caller must have been granted of global or component roles LEVEL2_ROLE.\",\"params\":{\"functionCall\":\"Abi encoded function call to make.\"},\"returns\":{\"_0\":\"Returns the return value of the function called, to be decoded by the receiver.\"}},\"fundsAvailable()\":{\"details\":\"Returns the amount of funds available to cover losses or repay eToken loans.\"},\"initialize()\":{\"details\":\"Initializes the PremiumsAccount\"},\"jrLoanLimit()\":{\"details\":\"Returns the limit on the Junior eToken loans (infinite if _params.jrLoanLimit == 0)\"},\"juniorEtk()\":{\"details\":\"The junior eToken, the primary source of solvency, used if the premiums account is exhausted.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyCreated((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Adds a policy to the PremiumsAccount. Stores the pure premiums and locks the aditional funds from junior and senior eTokens. Requirements: - Must be called by `policyPool()` Events: - {EToken-SCRLocked}\",\"params\":{\"policy\":\"The policy to add (created in this transaction)\"}},\"policyExpired((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"The PremiumsAccount is notified that the policy has expired, unlocks the SCR and earns the pure premium. Requirements: - Must be called by `policyPool()` Events: - {ERC20-Transfer}: `to == policyHolder`, `amount == payout` - {EToken-InternalLoanRepaid}: optional, if a loan was taken before\",\"params\":{\"policy\":\"The policy that has expired\"}},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"policyReplaced((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Replaces a policy with another in PremiumsAccount. Stores the pure premiums difference and re-locks the aditional funds from junior and senior eTokens. Requirements: - Must be called by `policyPool()` Events: - {EToken-SCRUnlocked} - {EToken-SCRLocked}\",\"params\":{\"newPolicy\":\"The policy that will replace the old one (created in this transaction)\",\"oldPolicy\":\"The policy to replace (created in a previous transaction)\"}},\"policyResolvedWithPayout(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"The PremiumsAccount is notified that the policy was resolved and issues the payout to the policyHolder. Requirements: - Must be called by `policyPool()` Events: - {ERC20-Transfer}: `to == policyHolder`, `amount == payout` - {EToken-InternalLoan}: optional, if a loan needs to be taken - {EToken-SCRUnlocked}\",\"params\":{\"payout\":\"The amount that has to be transferred to `policyHolder`\",\"policy\":\"The policy that was resolved\",\"policyHolder\":\"The one that will receive the payout\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"purePremiums()\":{\"details\":\"The total amount of premiums hold by this PremiumsAccount\"},\"rebalance()\":{\"details\":\"Calls {IAssetManager-rebalance} of the assigned asset manager (fails if no asset manager). This operation is intended to give the opportunity to rebalance the liquid and invested for better returns and/or gas optimization. - Emits {IAssetManager-MoneyInvested} or {IAssetManager-MoneyDeinvested}\"},\"receiveGrant(uint256)\":{\"params\":{\"amount\":\"The amount to be transferred.\"}},\"recordEarnings()\":{\"details\":\"Calls {IAssetManager-recordEarnings} of the assigned asset manager (fails if no asset manager). The asset manager will return the earnings since last time the earnings where recorded. It then calls `_assetEarnings` to reflect the earnings in the way defined for each reserve. - Emits {IAssetManager-EarningsRecorded}\"},\"repayLoans()\":{\"details\":\"Function that repays the loan(s) if fundsAvailable\",\"returns\":{\"available\":\"The funds still available after repayment\"}},\"seniorEtk()\":{\"details\":\"The senior eToken, the secondary source of solvency, used if the premiums account is exhausted and junior too\"},\"setAssetManager(address,bool)\":{\"details\":\"Sets the asset manager for this reserve. If the reserve had previously an asset manager, it will deinvest all the funds, making all of the liquid in the reserve balance. Requirements: - The caller must have been granted of global or component roles GUARDIAN_ROLE or LEVEL1_ROLE. Events: - Emits ComponentChanged with action setAssetManager or setAssetManagerForced\",\"params\":{\"force\":\"When a previous asset manager exists, before setting the new one, the funds are deinvested. When `force` is true, an error in the deinvestAll() operation is ignored. When `force` is false, if `deinvestAll()` fails, it reverts.\",\"newAM\":\"The address of the new asset manager to assign to the reserve. If is `address(0)` it means the reserve will not have an asset manager. If not `address(0)` it MUST be a contract following the IAssetManager interface.\"}},\"setDeficitRatio(uint256,bool)\":{\"details\":\"Changes the `deficitRatio` parameter. Requirements: - onlyGlobalOrComponentRole(LEVEL2_ROLE) Events: - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\",\"params\":{\"adjustment\":\"If true and the new ratio leaves `_surplus < -_maxDeficit()`, it adjusts the _surplus to the new                   `_maxDeficit()` and borrows the difference from the eTokens.                   If false and the new ratio leaves `_surplus < -_maxDeficit()`, the operation is reverted.\"}},\"setLoanLimits(uint256,uint256)\":{\"details\":\"Changes the `jrLoanLimit` or `srLoanLimit` parameter. Requirements: - onlyGlobalOrComponentRole(LEVEL2_ROLE) Events: - Emits GovernanceAction with action = setDeficitRatio or setDeficitRatioWithAdjustment if an adjustment was made.\",\"params\":{\"newLimitJr\":\"The new limit to be set for the loans taken from the Junior eToken. If newLimitJr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded.\",\"newLimitSr\":\"The new limit to be set for the loans taken from the Senior eToken. If newLimitSr == MAX_UINT, it's ignored. If == 0, means the loans are unbounded.\"}},\"srLoanLimit()\":{\"details\":\"Returns the limit on the Senior eToken loans (infinite if _params.srLoanLimit == 0)\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"surplus()\":{\"details\":\"Returns the surplus between pure premiums collected and payouts of finalized policies. Losses where more than premiums collected, returns a negative number that indicates the amount of the active pure premiums that was used to cover finalized premiums.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdrawWonPremiums(uint256,address)\":{\"params\":{\"amount\":\"The amount to withdraw\",\"destination\":\"The address that will receive the transferred funds.\"},\"returns\":{\"_0\":\"Returns the actual amount withdrawn.\"}},\"wonPurePremiums()\":{\"details\":\"Returns the surplus between pure premiums collected and payouts of finalized policies. Returns 0 if no surplus or deficit.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"_activePurePremiums\":{\"details\":\"The active pure premiums field keeps track of the pure premiums collected by the active policies of risk modules linked with this PremiumsAccount.\"},\"_juniorEtk\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_seniorEtk\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_surplus\":{\"details\":\"The surplus field keeps track of the surplus or deficit (when negative) of the actual payouts made by the PremiumsAccount versus the collected pure premiums. On the negative side, it has a limit defined by `_maxDeficit()`, after that limit, internal loans are taken from the eTokens.\"}},\"title\":\"Ensuro Premiums Account\",\"version\":1},\"userdoc\":{\"events\":{\"WonPremiumsInOut(bool,uint256)\":{\"notice\":\"Premiums can come in (for \\\"free\\\", without liability) with receiveGrant. And can come out (withdrawed to treasury) with withdrawWonPremiums\"}},\"kind\":\"user\",\"methods\":{\"receiveGrant(uint256)\":{\"notice\":\"Endpoint to receive \\\"free money\\\" and inject that money into the premium pool. Can be used for example if the PolicyPool subscribes an excess loss policy with other company. Requirements: - The sender needs to approve the spending of `currency()` by this contract. Events: - Emits {WonPremiumsInOut} with moneyIn = true\"},\"withdrawWonPremiums(uint256,address)\":{\"notice\":\"Withdraws excess premiums (surplus) to the destination. This might be needed in some cases for example if we are deprecating the protocol or the excess premiums are needed to compensate something. Shouldn't be used. Can be disabled revoking role WITHDRAW_WON_PREMIUMS_ROLE Requirements: - onlyGlobalOrComponentRole(WITHDRAW_WON_PREMIUMS_ROLE) - _surplus > 0 Events: - Emits {WonPremiumsInOut} with moneyIn = false\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/PremiumsAccount.sol\":\"PremiumsAccount\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/PremiumsAccount.sol\":{\"keccak256\":\"0x7dc03cf9cd932355598c5eecb5bd2e3ed4279f86b0efbf474a4a928a1028b35c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cc3792e32b02e100608a0622a234ccdf3428f9af6433f33040bcc54bd5abc623\",\"dweb:/ipfs/QmWMTqs9mgeb45ww4EEK4yD87PSYdfXvcRLcLF3rwJnyrx\"]},\"contracts/Reserve.sol\":{\"keccak256\":\"0x9a881b99d913e58494fbc7657ce10787f2283f8edf4bca66e134c52688773be7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e602a2cbca27d2db3cf596a49ab367bf6de897acd7aa29c4075a37d1cd2fb58e\",\"dweb:/ipfs/QmZuoQ8ZEy2E9sGWjhDnkKGMuC6qQaetR4Ww6YRMoqM2n7\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20136,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"251","type":"t_array(t_uint256)50_storage"},{"astId":18176,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_activePurePremiums","offset":0,"slot":"301","type":"t_uint256"},{"astId":18179,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_surplus","offset":0,"slot":"302","type":"t_int256"},{"astId":18193,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"_params","offset":0,"slot":"303","type":"t_struct(PackedParams)18190_storage"},{"astId":19680,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"__gap","offset":0,"slot":"304","type":"t_array(t_uint256)47_storage"}],"types":{"t_array(t_uint256)47_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[47]","numberOfBytes":"1504"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAssetManager)23421":{"encoding":"inplace","label":"contract IAssetManager","numberOfBytes":"20"},"t_int256":{"encoding":"inplace","label":"int256","numberOfBytes":"32"},"t_struct(PackedParams)18190_storage":{"encoding":"inplace","label":"struct PremiumsAccount.PackedParams","members":[{"astId":18182,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"deficitRatio","offset":0,"slot":"0","type":"t_uint16"},{"astId":18185,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"assetManager","offset":2,"slot":"0","type":"t_contract(IAssetManager)23421"},{"astId":18187,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"jrLoanLimit","offset":22,"slot":"0","type":"t_uint32"},{"astId":18189,"contract":"contracts/PremiumsAccount.sol:PremiumsAccount","label":"srLoanLimit","offset":26,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/Reserve.sol":{"Reserve":{"abi":[{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"assetManager","outputs":[{"internalType":"contract IAssetManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"functionCall","type":"bytes"}],"name":"forwardToAssetManager","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IAssetManager","name":"newAM","type":"address"},{"internalType":"bool","name":"force","type":"bool"}],"name":"setAssetManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"assetManager()":"94217ad1","checkpoint()":"c2c4c5c1","currency()":"e5a6b10f","forwardToAssetManager(bytes)":"1e9c4658","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","setAssetManager(address,bool)":"d80359f1","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"assetManager\",\"outputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"functionCall\",\"type\":\"bytes\"}],\"name\":\"forwardToAssetManager\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAssetManager\",\"name\":\"newAM\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"force\",\"type\":\"bool\"}],\"name\":\"setAssetManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"This contract implements the methods related with management of the reserves and payments. {EToken} and {PremiumsAccount} inherit from this contract. These contracts have an asset manager {IAssetManager} that's a strategy contract that runs in the same context (called with delegatecall) that apply some strategy to reinvest the assets managed by the contract to generate additional returns.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"assetManager()\":{\"details\":\"Returns the address of the asset manager for this reserve. The asset manager is the contract that manages the funds to generate additional yields. Can be `address(0)` if no asset manager has been set.\"},\"checkpoint()\":{\"details\":\"Function that calls both `recordEarnings()` and `rebalance()` (in that order). Usually scheduled to run once a day by a keeper or crontask.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"forwardToAssetManager(bytes)\":{\"details\":\"This function allows to call custom functions of the asset manager (for example for setting parameters).      This functions will be called with `delegatecall`, in the context of the reserve. Requirements: - The caller must have been granted of global or component roles LEVEL2_ROLE.\",\"params\":{\"functionCall\":\"Abi encoded function call to make.\"},\"returns\":{\"_0\":\"Returns the return value of the function called, to be decoded by the receiver.\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"rebalance()\":{\"details\":\"Calls {IAssetManager-rebalance} of the assigned asset manager (fails if no asset manager). This operation is intended to give the opportunity to rebalance the liquid and invested for better returns and/or gas optimization. - Emits {IAssetManager-MoneyInvested} or {IAssetManager-MoneyDeinvested}\"},\"recordEarnings()\":{\"details\":\"Calls {IAssetManager-recordEarnings} of the assigned asset manager (fails if no asset manager). The asset manager will return the earnings since last time the earnings where recorded. It then calls `_assetEarnings` to reflect the earnings in the way defined for each reserve. - Emits {IAssetManager-EarningsRecorded}\"},\"setAssetManager(address,bool)\":{\"details\":\"Sets the asset manager for this reserve. If the reserve had previously an asset manager, it will deinvest all the funds, making all of the liquid in the reserve balance. Requirements: - The caller must have been granted of global or component roles GUARDIAN_ROLE or LEVEL1_ROLE. Events: - Emits ComponentChanged with action setAssetManager or setAssetManagerForced\",\"params\":{\"force\":\"When a previous asset manager exists, before setting the new one, the funds are deinvested. When `force` is true, an error in the deinvestAll() operation is ignored. When `force` is false, if `deinvestAll()` fails, it reverts.\",\"newAM\":\"The address of the new asset manager to assign to the reserve. If is `address(0)` it means the reserve will not have an asset manager. If not `address(0)` it MUST be a contract following the IAssetManager interface.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"NEGLIGIBLE_AMOUNT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Base contract for Ensuro cash reserves\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Reserve.sol\":\"Reserve\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/Reserve.sol\":{\"keccak256\":\"0x9a881b99d913e58494fbc7657ce10787f2283f8edf4bca66e134c52688773be7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e602a2cbca27d2db3cf596a49ab367bf6de897acd7aa29c4075a37d1cd2fb58e\",\"dweb:/ipfs/QmZuoQ8ZEy2E9sGWjhDnkKGMuC6qQaetR4Ww6YRMoqM2n7\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/Reserve.sol:Reserve","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/Reserve.sol:Reserve","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/Reserve.sol:Reserve","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20136,"contract":"contracts/Reserve.sol:Reserve","label":"__gap","offset":0,"slot":"251","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/RiskModule.sol":{"RiskModule":{"abi":[{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","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":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeExposure()":"7ff8bf25","currency()":"e5a6b10f","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"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\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Risk Module that keeps the configuration and is responsible for pricing and policy resolution\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"_premiumsAccount\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"Ensuro Risk Module base contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskModule.sol\":\"RiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/RiskModule.sol:RiskModule","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/RiskModule.sol:RiskModule","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/RiskModule.sol:RiskModule","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/RiskModule.sol:RiskModule","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/RiskModule.sol:RiskModule","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/RiskModule.sol:RiskModule","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/RiskModule.sol:RiskModule","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/RiskModule.sol:RiskModule","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/RiskModule.sol:RiskModule","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/RiskModule.sol:RiskModule","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/RiskModule.sol:RiskModule","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/RiskModule.sol:RiskModule","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/RiskModule.sol:RiskModule","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/RiskModule.sol:RiskModule","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/RiskModule.sol:RiskModule","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/RiskModule.sol:RiskModule","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/RiskModule.sol:RiskModule","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/RiskModule.sol:RiskModule","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/SignedBucketRiskModule.sol":{"SignedBucketRiskModule":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IPremiumsAccount","name":"premiumsAccount_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BucketCannotBeZero","type":"error"},{"inputs":[],"name":"BucketNotFound","type":"error"},{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"QuoteExpired","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"BucketDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"bucketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"indexed":false,"internalType":"struct IRiskModule.Params","name":"params","type":"tuple"}],"name":"NewBucket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"policyData","type":"bytes32"}],"name":"NewSignedPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"bucketParams","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"params_","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"deleteBucket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"uint256","name":"bucketId","type":"uint256"}],"name":"getMinimumPremiumForBucket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"uint256","name":"collRatio_","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee_","type":"uint256"},{"internalType":"uint256","name":"srRoc_","type":"uint256"},{"internalType":"uint256","name":"maxPayoutPerPolicy_","type":"uint256"},{"internalType":"uint256","name":"exposureLimit_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"uint256","name":"bucketId","type":"uint256"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"uint256","name":"bucketId","type":"uint256"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"params_","type":"tuple"}],"name":"setBucketParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_20268":{"entryPoint":null,"id":20268,"parameterSlots":2,"returnSlots":0},"@_21547":{"entryPoint":null,"id":21547,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":293,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":504,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IPolicyPool":{"entryPoint":481,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1510:88","nodeType":"YulBlock","src":"0:1510:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"308:313:88","nodeType":"YulBlock","src":"308:313:88","statements":[{"body":{"nativeSrc":"354:16:88","nodeType":"YulBlock","src":"354:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"363:1:88","nodeType":"YulLiteral","src":"363:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"356:6:88","nodeType":"YulIdentifier","src":"356:6:88"},"nativeSrc":"356:12:88","nodeType":"YulFunctionCall","src":"356:12:88"},"nativeSrc":"356:12:88","nodeType":"YulExpressionStatement","src":"356:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"329:7:88","nodeType":"YulIdentifier","src":"329:7:88"},{"name":"headStart","nativeSrc":"338:9:88","nodeType":"YulIdentifier","src":"338:9:88"}],"functionName":{"name":"sub","nativeSrc":"325:3:88","nodeType":"YulIdentifier","src":"325:3:88"},"nativeSrc":"325:23:88","nodeType":"YulFunctionCall","src":"325:23:88"},{"kind":"number","nativeSrc":"350:2:88","nodeType":"YulLiteral","src":"350:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"321:3:88","nodeType":"YulIdentifier","src":"321:3:88"},"nativeSrc":"321:32:88","nodeType":"YulFunctionCall","src":"321:32:88"},"nativeSrc":"318:52:88","nodeType":"YulIf","src":"318:52:88"},{"nativeSrc":"379:29:88","nodeType":"YulVariableDeclaration","src":"379:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"398:9:88","nodeType":"YulIdentifier","src":"398:9:88"}],"functionName":{"name":"mload","nativeSrc":"392:5:88","nodeType":"YulIdentifier","src":"392:5:88"},"nativeSrc":"392:16:88","nodeType":"YulFunctionCall","src":"392:16:88"},"variables":[{"name":"value","nativeSrc":"383:5:88","nodeType":"YulTypedName","src":"383:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"455:5:88","nodeType":"YulIdentifier","src":"455:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"417:37:88","nodeType":"YulIdentifier","src":"417:37:88"},"nativeSrc":"417:44:88","nodeType":"YulFunctionCall","src":"417:44:88"},"nativeSrc":"417:44:88","nodeType":"YulExpressionStatement","src":"417:44:88"},{"nativeSrc":"470:15:88","nodeType":"YulAssignment","src":"470:15:88","value":{"name":"value","nativeSrc":"480:5:88","nodeType":"YulIdentifier","src":"480:5:88"},"variableNames":[{"name":"value0","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"}]},{"nativeSrc":"494:40:88","nodeType":"YulVariableDeclaration","src":"494:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"519:9:88","nodeType":"YulIdentifier","src":"519:9:88"},{"kind":"number","nativeSrc":"530:2:88","nodeType":"YulLiteral","src":"530:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"515:3:88","nodeType":"YulIdentifier","src":"515:3:88"},"nativeSrc":"515:18:88","nodeType":"YulFunctionCall","src":"515:18:88"}],"functionName":{"name":"mload","nativeSrc":"509:5:88","nodeType":"YulIdentifier","src":"509:5:88"},"nativeSrc":"509:25:88","nodeType":"YulFunctionCall","src":"509:25:88"},"variables":[{"name":"value_1","nativeSrc":"498:7:88","nodeType":"YulTypedName","src":"498:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"581:7:88","nodeType":"YulIdentifier","src":"581:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"543:37:88","nodeType":"YulIdentifier","src":"543:37:88"},"nativeSrc":"543:46:88","nodeType":"YulFunctionCall","src":"543:46:88"},"nativeSrc":"543:46:88","nodeType":"YulExpressionStatement","src":"543:46:88"},{"nativeSrc":"598:17:88","nodeType":"YulAssignment","src":"598:17:88","value":{"name":"value_1","nativeSrc":"608:7:88","nodeType":"YulIdentifier","src":"608:7:88"},"variableNames":[{"name":"value1","nativeSrc":"598:6:88","nodeType":"YulIdentifier","src":"598:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"163:458:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"266:9:88","nodeType":"YulTypedName","src":"266:9:88","type":""},{"name":"dataEnd","nativeSrc":"277:7:88","nodeType":"YulTypedName","src":"277:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"289:6:88","nodeType":"YulTypedName","src":"289:6:88","type":""},{"name":"value1","nativeSrc":"297:6:88","nodeType":"YulTypedName","src":"297:6:88","type":""}],"src":"163:458:88"},{"body":{"nativeSrc":"728:183:88","nodeType":"YulBlock","src":"728:183:88","statements":[{"body":{"nativeSrc":"774:16:88","nodeType":"YulBlock","src":"774:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:88","nodeType":"YulLiteral","src":"783:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"786:1:88","nodeType":"YulLiteral","src":"786:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"776:6:88","nodeType":"YulIdentifier","src":"776:6:88"},"nativeSrc":"776:12:88","nodeType":"YulFunctionCall","src":"776:12:88"},"nativeSrc":"776:12:88","nodeType":"YulExpressionStatement","src":"776:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"749:7:88","nodeType":"YulIdentifier","src":"749:7:88"},{"name":"headStart","nativeSrc":"758:9:88","nodeType":"YulIdentifier","src":"758:9:88"}],"functionName":{"name":"sub","nativeSrc":"745:3:88","nodeType":"YulIdentifier","src":"745:3:88"},"nativeSrc":"745:23:88","nodeType":"YulFunctionCall","src":"745:23:88"},{"kind":"number","nativeSrc":"770:2:88","nodeType":"YulLiteral","src":"770:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"741:3:88","nodeType":"YulIdentifier","src":"741:3:88"},"nativeSrc":"741:32:88","nodeType":"YulFunctionCall","src":"741:32:88"},"nativeSrc":"738:52:88","nodeType":"YulIf","src":"738:52:88"},{"nativeSrc":"799:29:88","nodeType":"YulVariableDeclaration","src":"799:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:88","nodeType":"YulIdentifier","src":"818:9:88"}],"functionName":{"name":"mload","nativeSrc":"812:5:88","nodeType":"YulIdentifier","src":"812:5:88"},"nativeSrc":"812:16:88","nodeType":"YulFunctionCall","src":"812:16:88"},"variables":[{"name":"value","nativeSrc":"803:5:88","nodeType":"YulTypedName","src":"803:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"875:5:88","nodeType":"YulIdentifier","src":"875:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"837:37:88","nodeType":"YulIdentifier","src":"837:37:88"},"nativeSrc":"837:44:88","nodeType":"YulFunctionCall","src":"837:44:88"},"nativeSrc":"837:44:88","nodeType":"YulExpressionStatement","src":"837:44:88"},{"nativeSrc":"890:15:88","nodeType":"YulAssignment","src":"890:15:88","value":{"name":"value","nativeSrc":"900:5:88","nodeType":"YulIdentifier","src":"900:5:88"},"variableNames":[{"name":"value0","nativeSrc":"890:6:88","nodeType":"YulIdentifier","src":"890:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"626:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"694:9:88","nodeType":"YulTypedName","src":"694:9:88","type":""},{"name":"dataEnd","nativeSrc":"705:7:88","nodeType":"YulTypedName","src":"705:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"717:6:88","nodeType":"YulTypedName","src":"717:6:88","type":""}],"src":"626:285:88"},{"body":{"nativeSrc":"1090:229:88","nodeType":"YulBlock","src":"1090:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:88","nodeType":"YulIdentifier","src":"1100:6:88"},"nativeSrc":"1100:21:88","nodeType":"YulFunctionCall","src":"1100:21:88"},"nativeSrc":"1100:21:88","nodeType":"YulExpressionStatement","src":"1100:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1141:9:88","nodeType":"YulIdentifier","src":"1141:9:88"},{"kind":"number","nativeSrc":"1152:2:88","nodeType":"YulLiteral","src":"1152:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1137:3:88","nodeType":"YulIdentifier","src":"1137:3:88"},"nativeSrc":"1137:18:88","nodeType":"YulFunctionCall","src":"1137:18:88"},{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"1130:6:88","nodeType":"YulIdentifier","src":"1130:6:88"},"nativeSrc":"1130:30:88","nodeType":"YulFunctionCall","src":"1130:30:88"},"nativeSrc":"1130:30:88","nodeType":"YulExpressionStatement","src":"1130:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1180:9:88","nodeType":"YulIdentifier","src":"1180:9:88"},{"kind":"number","nativeSrc":"1191:2:88","nodeType":"YulLiteral","src":"1191:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1176:3:88","nodeType":"YulIdentifier","src":"1176:3:88"},"nativeSrc":"1176:18:88","nodeType":"YulFunctionCall","src":"1176:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1196:34:88","nodeType":"YulLiteral","src":"1196:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:88","nodeType":"YulIdentifier","src":"1169:6:88"},"nativeSrc":"1169:62:88","nodeType":"YulFunctionCall","src":"1169:62:88"},"nativeSrc":"1169:62:88","nodeType":"YulExpressionStatement","src":"1169:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1251:9:88","nodeType":"YulIdentifier","src":"1251:9:88"},{"kind":"number","nativeSrc":"1262:2:88","nodeType":"YulLiteral","src":"1262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1247:3:88","nodeType":"YulIdentifier","src":"1247:3:88"},"nativeSrc":"1247:18:88","nodeType":"YulFunctionCall","src":"1247:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1267:9:88","nodeType":"YulLiteral","src":"1267:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1240:6:88","nodeType":"YulIdentifier","src":"1240:6:88"},"nativeSrc":"1240:37:88","nodeType":"YulFunctionCall","src":"1240:37:88"},"nativeSrc":"1240:37:88","nodeType":"YulExpressionStatement","src":"1240:37:88"},{"nativeSrc":"1286:27:88","nodeType":"YulAssignment","src":"1286:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1298:9:88","nodeType":"YulIdentifier","src":"1298:9:88"},{"kind":"number","nativeSrc":"1309:3:88","nodeType":"YulLiteral","src":"1309:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1294:3:88","nodeType":"YulIdentifier","src":"1294:3:88"},"nativeSrc":"1294:19:88","nodeType":"YulFunctionCall","src":"1294:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1286:4:88","nodeType":"YulIdentifier","src":"1286:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"916:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulTypedName","src":"1067:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1081:4:88","nodeType":"YulTypedName","src":"1081:4:88","type":""}],"src":"916:403:88"},{"body":{"nativeSrc":"1421:87:88","nodeType":"YulBlock","src":"1421:87:88","statements":[{"nativeSrc":"1431:26:88","nodeType":"YulAssignment","src":"1431:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1443:9:88","nodeType":"YulIdentifier","src":"1443:9:88"},{"kind":"number","nativeSrc":"1454:2:88","nodeType":"YulLiteral","src":"1454:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1439:3:88","nodeType":"YulIdentifier","src":"1439:3:88"},"nativeSrc":"1439:18:88","nodeType":"YulFunctionCall","src":"1439:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1431:4:88","nodeType":"YulIdentifier","src":"1431:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1473:9:88","nodeType":"YulIdentifier","src":"1473:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1488:6:88","nodeType":"YulIdentifier","src":"1488:6:88"},{"kind":"number","nativeSrc":"1496:4:88","nodeType":"YulLiteral","src":"1496:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1484:3:88","nodeType":"YulIdentifier","src":"1484:3:88"},"nativeSrc":"1484:17:88","nodeType":"YulFunctionCall","src":"1484:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"},"nativeSrc":"1466:36:88","nodeType":"YulFunctionCall","src":"1466:36:88"},"nativeSrc":"1466:36:88","nodeType":"YulExpressionStatement","src":"1466:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1324:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1390:9:88","nodeType":"YulTypedName","src":"1390:9:88","type":""},{"name":"value0","nativeSrc":"1401:6:88","nodeType":"YulTypedName","src":"1401:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1412:4:88","nodeType":"YulTypedName","src":"1412:4:88","type":""}],"src":"1324:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051615793380380615793833981016040819052610032916101f8565b8181816001600160a01b03811661005c57604051636b23cf0160e01b815260040160405180910390fd5b610064610125565b806001600160a01b031660a0816001600160a01b03168152505050816001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610230565b6001600160a01b0316146101105760405163fec343d560e01b815260040160405180910390fd5b6001600160a01b031660c05250610252915050565b5f54610100900460ff16156101905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101df575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f5575f5ffd5b50565b5f5f60408385031215610209575f5ffd5b8251610214816101e1565b6020840151909250610225816101e1565b809150509250929050565b5f60208284031215610240575f5ffd5b815161024b816101e1565b9392505050565b60805160a05160c05161544c6103475f395f81816103a001526131e801525f8181610275015281816106750152818161090401528181610b9b01528181610f02015281816110a6015281816111d6015281816112d001528181611365015281816114940152818161160201528181611cbd01528181611ded01528181611ed1015281816126c401528181612a7e01528181612b1b01528181612bce01528181612d9d01528181612fa0015281816137d3015281816138700152818161391601528181613ac30152613f8801525f81816107f701528181610840015281816109f801528181610a380152610ac5015261544c5ff3fe6080604052600436106101ba575f3560e01c806373a952e8116100f25780638bac3a2411610092578063cfd4c60611610062578063cfd4c6061461052e578063cff0ab9614610542578063deaa59df14610556578063e5a6b10f14610575575f5ffd5b80638bac3a241461045d578063b9b28f2a1461047c578063c1cca2b31461049b578063ceddac6f146104ba575f5ffd5b80637ff8bf25116100cd5780637ff8bf251461040257806382ff9c8c146104165780638456cb591461043557806385272a6e14610449575f5ffd5b806373a952e814610392578063766dbc56146103c45780637a702b3c146103e3575f5ffd5b8063521eb2731161015d5780635c975abb116101385780635c975abb1461031e5780636a448ef1146103355780636db5c8fd146103545780636f0dbe6f14610373575f5ffd5b8063521eb273146102c057806352d1902d146102dd578063571e8bcc146102ff575f5ffd5b80633659cfe6116101985780633659cfe6146102345780633f4ba83a146102535780634d15eb03146102675780634f1ef286146102ad575f5ffd5b806301ffc9a7146101be57806306fdde03146101f257806318e26bb914610213575b5f5ffd5b3480156101c9575f5ffd5b506101dd6101d83660046146bc565b610589565b60405190151581526020015b60405180910390f35b3480156101fd575f5ffd5b506102066105b4565b6040516101e991906146e3565b34801561021e575f5ffd5b5061023261022d366004614718565b610644565b005b34801561023f575f5ffd5b5061023261024e366004614743565b6107ed565b34801561025e575f5ffd5b506102326108d3565b348015610272575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101e9565b6102326102bb3660046147e9565b6109ee565b3480156102cb575f5ffd5b5060fe546001600160a01b0316610295565b3480156102e8575f5ffd5b506102f1610ab9565b6040519081526020016101e9565b34801561030a575f5ffd5b50610232610319366004614849565b610b6a565b348015610329575f5ffd5b5060975460ff166101dd565b348015610340575f5ffd5b5061023261034f366004614718565b610eff565b34801561035f575f5ffd5b5060fc54600160b01b900461ffff166102f1565b34801561037e575f5ffd5b5061023261038d36600461487f565b610f61565b34801561039d575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610295565b3480156103cf575f5ffd5b506102f16103de366004614922565b61107a565b3480156103ee575f5ffd5b506102326103fd3660046149be565b6111b3565b34801561040d575f5ffd5b5060fd546102f1565b348015610421575f5ffd5b506102f16104303660046149e9565b611339565b348015610440575f5ffd5b50610232611471565b348015610454575f5ffd5b506102f1611578565b348015610468575f5ffd5b506102f1610477366004614a63565b61159a565b348015610487575f5ffd5b506102f1610496366004614a95565b6115b7565b3480156104a6575f5ffd5b506102326104b5366004614acf565b6115d1565b3480156104c5575f5ffd5b506104d96104d4366004614718565b611ad2565b6040516101e991905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610539575f5ffd5b506102f1611bcf565b34801561054d575f5ffd5b506104d9611bed565b348015610561575f5ffd5b50610232610570366004614743565b611c9a565b348015610580575f5ffd5b50610295611dea565b5f61059382611e6b565b806105ae57506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb80546105c390614afc565b80601f01602080910402602001604051908101604052809291908181526020018280546105ef90614afc565b801561063a5780601f106106115761010080835404028352916020019161063a565b820191905f5260205f20905b81548152906001019060200180831161061d57829003601f168201915b5050505050905090565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610727959493929190614b49565b5f6040518083038186803b15801561073d575f5ffd5b505afa15801561074f573d5f5f3e3d5ffd5b50505050825f03610773576040516364ba211360e11b815260040160405180910390fd5b5f83815261012d602052604081205461ffff1690036107a55760405163c4c1a0c560e01b815260040160405180910390fd5b5f83815261012d602052604080822080546001600160c01b03191690555184917fda8c8883e1b3ead63d3ef64674f8fc499048554f6fa36776af0ab41d2f99834691a2505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361083e5760405162461bcd60e51b815260040161083590614b7c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108865f5160206153b05f395f51905f52546001600160a01b031690565b6001600160a01b0316146108ac5760405162461bcd60e51b815260040161083590614bc8565b6108b581611ea0565b604080515f808252602082019092526108d091839190611fbd565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206153d05f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109829190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016109b6959493929190614b49565b5f6040518083038186803b1580156109cc575f5ffd5b505afa1580156109de573d5f5f3e3d5ffd5b505050506109ea612127565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a365760405162461bcd60e51b815260040161083590614b7c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a7e5f5160206153b05f395f51905f52546001600160a01b031690565b6001600160a01b031614610aa45760405162461bcd60e51b815260040161083590614bc8565b610aad82611ea0565b6109ea82826001611fbd565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610835565b505f5160206153b05f395f51905f5290565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c199190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610c4d959493929190614b49565b5f6040518083038186803b158015610c63575f5ffd5b505afa158015610c75573d5f5f3e3d5ffd5b50505050835f03610c99576040516364ba211360e11b815260040160405180910390fd5b604051806101400160405280610cb1855f0135612179565b61ffff168152602001610cc78560200135612179565b61ffff168152602001610cdd8560400135612179565b61ffff168152602001610cf38560600135612179565b61ffff168152602001610d098560800135612179565b61ffff168152602001610d1f8560a00135612179565b61ffff168152602001610d358560c00135612179565b61ffff908116825263ffffffff6020808401829052604080850183905260609485018490525f8a815261012d835281902086518154938801519288015196880151608089015160a08a015160c08b015160e08c01516101008d0151610120909d01518b16600160b01b0261ffff60b01b199d8b16600160901b029d909d1665ffffffffffff60901b1991909a16600160701b0263ffffffff60701b19928c16600160601b029290921665ffffffffffff60601b19938c16600160501b0261ffff60501b19958d16600160401b029590951663ffffffff60401b19968d16600160301b0261ffff60301b199e8e16600160201b029e909e1667ffffffff00000000199a8e16620100000263ffffffff19909c1698909d1697909717999099179790971699909917999099179190911691909117179590951691909117929092179190911617919091178155610e8890612192565b6040805184358152602080860135908201528482013581830152606080860135908201526080808601359082015260a0808601359082015260c08086013590820152905185917f1f02d2d352ddbf27121545f4d4730d7656c038f9ce75851410c9ef6982728975919081900360e00190a250505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610f485760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610f599190614c28565b909155505050565b5f54610100900460ff1615808015610f7f57505f54600160ff909116105b80610f985750303b158015610f9857505f5460ff166001145b610ffb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610835565b5f805460ff19166001179055801561101c575f805461ff0019166101001790555b61102b8888888888888861258c565b8015611070575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b5f6110836125c9565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611100573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111249190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016111559493929190614c3b565b5f6040518083038186803b15801561116b575f5ffd5b505afa15801561117d573d5f5f3e3d5ffd5b505050506111928c8c8c8c8b8b8b8b8b612611565b6111a28c8c8c8c8b8b338f6127cc565b519c9b505050505050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611230573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016112859493929190614c3b565b5f6040518083038186803b15801561129b575f5ffd5b505afa1580156112ad573d5f5f3e3d5ffd5b505050506112b96125c9565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906113079086908690600401614d31565b5f604051808303815f87803b15801561131e575f5ffd5b505af1158015611330573d5f5f3e3d5ffd5b50505050505050565b5f6113426125c9565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e39190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016114149493929190614c3b565b5f6040518083038186803b15801561142a575f5ffd5b505afa15801561143c573d5f5f3e3d5ffd5b505050506114518b8b8b8b8b8b8b8b8b612611565b6111a28c8c8c8c8c336114638e612839565b61146c8e611ad2565b612848565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115129190614b2e565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016115449493929190614c3b565b5f6040518083038186803b15801561155a575f5ffd5b505afa15801561156c573d5f5f3e3d5ffd5b505050506108d0612e26565b60fc545f90611595908290600160901b900463ffffffff16612e63565b905090565b5f6115af848484426115aa611bed565b612ef1565b949350505050565b5f6115c8858585426115aa87611ad2565b95945050505050565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116809190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016116b4959493929190614b49565b5f6040518083038186803b1580156116ca575f5ffd5b505afa1580156116dc573d5f5f3e3d5ffd5b505f92506116e8915050565b8460098111156116fa576116fa614d4e565b036117235761170883612179565b60fc805461ffff191661ffff92909216919091179055611a95565b600184600981111561173757611737614d4e565b036117695761174583612179565b60fc805461ffff92909216620100000263ffff000019909216919091179055611a95565b600284600981111561177d5761177d614d4e565b036117b25761178b83612179565b60fc805461ffff92909216600160201b0265ffff0000000019909216919091179055611a95565b60038460098111156117c6576117c6614d4e565b036117fa576117d483612179565b60fc805461ffff92909216600160301b0261ffff60301b19909216919091179055611a95565b600484600981111561180e5761180e614d4e565b036118475761181c83612179565b60fc805461ffff92909216600160401b0269ffff000000000000000019909216919091179055611a95565b600584600981111561185b5761185b614d4e565b0361188f5761186983612179565b60fc805461ffff92909216600160501b0261ffff60501b19909216919091179055611a95565b60068460098111156118a3576118a3614d4e565b036118d7576118b183612179565b60fc805461ffff92909216600160601b0261ffff60601b19909216919091179055611a95565b60078460098111156118eb576118eb614d4e565b03611925576118fb600284612f0d565b60fc805463ffffffff92909216600160701b0263ffffffff60701b19909216919091179055611a95565b600884600981111561193957611939614d4e565b03611a515760fd548310156119aa5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b6064820152608401610835565b6119b2611578565b831115806119d157506119d15f5160206153d05f395f51905f52612f9d565b611a1d5760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c450000006044820152606401610835565b611a275f84612f0d565b60fc805463ffffffff92909216600160901b0263ffffffff60901b19909216919091179055611a95565b6009846009811115611a6557611a65614d4e565b03611a9557611a738361308f565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b611acc846009811115611aaa57611aaa614d4e565b611ab5906008614d62565b602d811115611ac657611ac6614d4e565b846130f5565b50505050565b611ada61460e565b8115611bc2575f82815261012d602052604081208054909161ffff9091169003611b175760405163c4c1a0c560e01b815260040160405180910390fd5b6040805161014081018252825461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611bbb90613146565b9392505050565b6105ae611bed565b919050565b60fc545f9061159590600290600160701b900463ffffffff16612e63565b611bf561460e565b604080516101408101825260fc5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b900490911661012082015261159590613146565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3b9190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611d6c9493929190614c3b565b5f6040518083038186803b158015611d82575f5ffd5b505afa158015611d94573d5f5f3e3d5ffd5b5050506001600160a01b0383169050611dc057604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b0384169081179091556109ea906012906130f5565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e47573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115959190614b2e565b5f6001600160e01b031982166301ffc9a760e01b14806105ae57506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206153d05f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4f9190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611f83959493929190614b49565b5f6040518083038186803b158015611f99575f5ffd5b505afa158015611fab573d5f5f3e3d5ffd5b50505050611fb8836131d9565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611ff057611fb883613297565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190614d75565b60015b6120ad5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610835565b5f5160206153b05f395f51905f52811461211b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610835565b50611fb8838383613332565b61212f613356565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f6105ae61218d655af3107a400084614da0565b61308f565b80546127106201000090910461ffff1611156121fc5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b6064820152608401610835565b8054612710600160201b90910461ffff161180159061222657508054600160201b900461ffff1615155b61227c5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b6064820152608401610835565b805461ffff6201000082048116600160201b9092041610156122ec5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b6064820152608401610835565b8054619c4061ffff9091161180159061230e5750805461138861ffff90911610155b61235a5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d6044820152606401610835565b8054612710600160301b90910461ffff1611156123c55760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b6064820152608401610835565b8054612710600160401b90910461ffff1611156124325760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b6064820152608401610835565b8054612710600160601b90910461ffff16111561249f5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b6064820152608401610835565b8054612710600160501b90910461ffff16111561250c5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b6064820152608401610835565b8054600160901b900463ffffffff161580159061253657508054600160701b900463ffffffff1615155b6108d05760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b6064820152608401610835565b5f54610100900460ff166125b25760405162461bcd60e51b815260040161083590614db3565b6125ba61339f565b611330878787878787876133d5565b60975460ff161561260f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610835565b565b428164ffffffffff16101561263957604051638727a7f960e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193060601b166020820152603481018a905260548101899052607481018890526001600160d81b031960d888811b821660948401526099830188905260b9830187905283901b1660d98201525f906126b29060de016040516020818303038152906040526135d6565b90505f6126c0828686613610565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127429190614b2e565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a845f6040518563ffffffff1660e01b81526004016127939493929190614c3b565b5f6040518083038186803b1580156127a9575f5ffd5b505afa1580156127bb573d5f5f3e3d5ffd5b505050505050505050505050505050565b6127d4614644565b6127f48989898987876127e68c612839565b6127ef8c611ad2565b613634565b8051604051878152919250907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a298975050505050505050565b5f6105ae600160601b83614dfe565b612850614644565b5f198703612879576128768887876128706101a08e016101808f01614e11565b86612ef1565b96505b8787106128c85760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610835565b64ffffffffff42166128e26101c08b016101a08c01614e11565b64ffffffffff161161292e5760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b6044820152606401610835565b6129406101c08a016101a08b01614e11565b64ffffffffff168564ffffffffff1610158015612961575088602001358810155b8015612971575088604001358710155b6129e35760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c69637900000000006064820152608401610835565b60fc54600160b01b900461ffff16610e10612a066101a08c016101808d01614e11565b612a109088614e2a565b612a1a9190614e47565b64ffffffffff1610612a6e5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e00000000006044820152606401610835565b612a7c60408a013588614c28565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612afc9190614b2e565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8e9190614d75565b1015612bac5760405162461bcd60e51b815260040161083590614e70565b6001600160a01b038416331480612ccc5750612bcc60408a013588614c28565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4c9190614b2e565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612ca5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc99190614d75565b10155b612ce85760405162461bcd60e51b815260040161083590614ebd565b612cf0611bcf565b881115612d0f5760405162461bcd60e51b815260040161083590614f0c565b612d313083898b8a8a8f610180016020810190612d2c9190614e11565b613b4d565b905088602001358160200151612d479190614c28565b60fd5f828254612d579190614d62565b90915550612d659050611578565b60fd541115612d865760405162461bcd60e51b815260040161083590614f5e565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae90612dd8908c90859089908990600401615061565b6020604051808303815f875af1158015612df4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e189190614d75565b815298975050505050505050565b612e2e6125c9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861215c3390565b5f82612e6d611dea565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecc91906150ae565b612ed691906150ce565b612ee190600a6151c2565b611bbb9063ffffffff84166151d0565b5f612eff8287878787613cbd565b60e001519695505050505050565b5f611bbb83612f1a611dea565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f7991906150ae565b612f8391906150ce565b612f8e90600a6151c2565b612f989084614da0565b613eb0565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ffa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301e9190614b2e565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b81526004016130509493929190614c3b565b602060405180830381865afa15801561306b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ae91906151e7565b5f61ffff8211156130f15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610835565b5090565b6130fd613f14565b81602d81111561310f5761310f614d4e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b61314e61460e565b6040518060e00160405280613165845f0151613f71565b81526020016131778460200151613f71565b81526020016131898460400151613f71565b815260200161319b8460600151613f71565b81526020016131ad8460800151613f71565b81526020016131bf8460a00151613f71565b81526020016131d18460c00151613f71565b905292915050565b6131e281613f86565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561324c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132709190614b2e565b6001600160a01b0316146109ea5760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6133045760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610835565b5f5160206153b05f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61333b83614037565b5f825111806133475750805b15611fb857611acc8383614076565b60975460ff1661260f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610835565b5f54610100900460ff166133c55760405162461bcd60e51b815260040161083590614db3565b6133cd61409b565b61260f6140c1565b5f54610100900460ff166133fb5760405162461bcd60e51b815260040161083590614db3565b60fb6134078882615251565b50604080516101408101825261271081525f602082015290810161342a88612179565b61ffff16815260200161343c87612179565b61ffff1681525f60208201819052604082015260600161345b86612179565b61ffff16815260200161346f600286612f0d565b63ffffffff1681526020016134845f85612f0d565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff000000001916600160201b9589169590950261ffff60301b191694909417600160301b938816939093029290921763ffffffff60401b1916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055611330613f14565b5f6135e182516140ef565b826040516020016135f3929190615323565b604051602081830303815290604052805190602001209050919050565b5f5f5f61361e86868661417f565b9150915061362b816141b8565b50949350505050565b61363c614644565b4260018901613655576136528a89898487612ef1565b98505b8989106136a45760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610835565b8064ffffffffff168764ffffffffff16116137015760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610835565b60fc54600160b01b900461ffff16610e1061371c838a614e2a565b6137269190614e47565b64ffffffffff161061377a5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e00000000006044820152606401610835565b6001600160a01b0385166137d05760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610835565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561382d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138519190614b2e565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156138bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e39190614d75565b10156139015760405162461bcd60e51b815260040161083590614e70565b6001600160a01b038616331480613a145750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613970573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139949190614b2e565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156139ed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a119190614d75565b10155b613a305760405162461bcd60e51b815260040161083590614ebd565b613a38611bcf565b8a1115613a575760405162461bcd60e51b815260040161083590614f0c565b613a6630848b8d8c8c87613b4d565b9150816020015160fd5f828254613a7d9190614d62565b90915550613a8b9050611578565b60fd541115613aac5760405162461bcd60e51b815260040161083590614f5e565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f90613afe9085908a908a908a9060040161535d565b6020604051808303815f875af1158015613b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b3e9190614d75565b82525098975050505050505050565b613b55614644565b84861115613bb05760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610835565b613bb8614644565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613c028988888888613cbd565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613c9b5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610835565b60e0810151613caa9089614c28565b6101008301525098975050505050505050565b613cfd6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8551613d1590613d0e908690614301565b8690614301565b81526020860151613d27908690614301565b6020820181905281511015613d51578051602082018051613d49908390614c28565b905250613d58565b5f60208201525b6040860151613d68908690614301565b604082015260208101518151613d7e9190614d62565b81604001511115613db35760208101518151613d9a9190614d62565b81604001818151613dab9190614c28565b905250613dba565b5f60408201525b613df76301e13380613dcc8486614e2a565b64ffffffffff168860a00151613de291906151d0565b613dec9190614da0565b602083015190614301565b6060820152613e396301e13380613e0e8486614e2a565b64ffffffffff168860c00151613e2491906151d0565b613e2e9190614da0565b604083015190614301565b6080820181905260608201515f91613e5091614d62565b9050613e6987608001518261430190919063ffffffff16565b60608801518351613e7991614301565b613e839190614d62565b60a0830181905282518291613e9791614d62565b613ea19190614d62565b60e08301525095945050505050565b5f63ffffffff8211156130f15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610835565b60fd54613f1f611578565b1015613f3e57604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b0316613f6757604051634d1c286960e11b815260040160405180910390fd5b61260f60fc612192565b5f6105ae655af3107a400061ffff84166151d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140109190614b2e565b6001600160a01b0316146108d05760405163d2b3d33f60e01b815260040160405180910390fd5b61404081613297565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611bbb83836040518060600160405280602781526020016153f060279139614337565b5f54610100900460ff1661260f5760405162461bcd60e51b815260040161083590614db3565b5f54610100900460ff166140e75760405162461bcd60e51b815260040161083590614db3565b61260f6143ab565b60605f6140fb836143dd565b60010190505f8167ffffffffffffffff81111561411a5761411a61475e565b6040519080825280601f01601f191660200182016040528015614144576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461414e57509392505050565b5f806001600160ff1b0383168161419b60ff86901c601b614d62565b90506141a9878288856144b4565b9350935050505b935093915050565b5f8160048111156141cb576141cb614d4e565b036141d35750565b60018160048111156141e7576141e7614d4e565b036142345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610835565b600281600481111561424857614248614d4e565b036142955760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610835565b60038160048111156142a9576142a9614d4e565b036108d05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610835565b5f81156706f05b59d3b20000198390048411151761431d575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b60605f5f856001600160a01b03168560405161435391906153a4565b5f60405180830381855af49150503d805f811461438b576040519150601f19603f3d011682016040523d82523d5f602084013e614390565b606091505b50915091506143a186838387614571565b9695505050505050565b5f54610100900460ff166143d15760405162461bcd60e51b815260040161083590614db3565b6097805460ff19169055565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061441b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614447576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061446557662386f26fc10000830492506010015b6305f5e100831061447d576305f5e100830492506008015b612710831061449157612710830492506004015b606483106144a3576064830492506002015b600a83106105ae5760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156144e957505f90506003614568565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561453a573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614562575f60019250925050614568565b91505f90505b94509492505050565b606083156145df5782515f036145d8576001600160a01b0385163b6145d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610835565b50816115af565b6115af83838151156145f45781518083602001fd5b8060405162461bcd60e51b815260040161083591906146e3565b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f602082840312156146cc575f5ffd5b81356001600160e01b031981168114611bbb575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215614728575f5ffd5b5035919050565b6001600160a01b03811681146108d0575f5ffd5b5f60208284031215614753575f5ffd5b8135611bbb8161472f565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561478c5761478c61475e565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156147bb576147bb61475e565b6040528381529050808284018510156147d2575f5ffd5b838360208301375f60208583010152509392505050565b5f5f604083850312156147fa575f5ffd5b82356148058161472f565b9150602083013567ffffffffffffffff811115614820575f5ffd5b8301601f81018513614830575f5ffd5b61483f85823560208401614772565b9150509250929050565b5f5f82840361010081121561485c575f5ffd5b8335925060e0601f1982011215614871575f5ffd5b506020830190509250929050565b5f5f5f5f5f5f5f60e0888a031215614895575f5ffd5b873567ffffffffffffffff8111156148ab575f5ffd5b8801601f81018a136148bb575f5ffd5b6148ca8a823560208401614772565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c08801356148fe8161472f565b8091505092959891949750929550565b803564ffffffffff81168114611bca575f5ffd5b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561493c575f5ffd5b8a35995060208b0135985060408b0135975061495a60608c0161490e565b965060808b013561496a8161472f565b955060a08b0135945060c08b0135935060e08b013592506101008b013591506149966101208c0161490e565b90509295989b9194979a5092959850565b5f6101c082840312156149b8575f5ffd5b50919050565b5f5f6101e083850312156149d0575f5ffd5b6149da84846149a7565b946101c0939093013593505050565b5f5f5f5f5f5f5f5f5f5f6102e08b8d031215614a03575f5ffd5b614a0d8c8c6149a7565b99506101c08b013598506101e08b013597506102008b01359650614a346102208c0161490e565b95506102408b013594506102608b013593506102808b013592506102a08b013591506149966102c08c0161490e565b5f5f5f60608486031215614a75575f5ffd5b8335925060208401359150614a8c6040850161490e565b90509250925092565b5f5f5f5f60808587031215614aa8575f5ffd5b8435935060208501359250614abf6040860161490e565b9396929550929360600135925050565b5f5f60408385031215614ae0575f5ffd5b8235600a8110614aee575f5ffd5b946020939093013593505050565b600181811c90821680614b1057607f821691505b6020821081036149b857634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614b3e575f5ffd5b8151611bbb8161472f565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105ae576105ae614c14565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b8035611bca8161472f565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e08082013590830152610100808201359083015261012080820135908301526101408082013590830152614ce86101608201614c65565b6001600160a01b0316610160830152614d04610180820161490e565b64ffffffffff16610180830152614d1e6101a0820161490e565b64ffffffffff81166101a0840152505050565b6101e08101614d408285614c70565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b808201808211156105ae576105ae614c14565b5f60208284031215614d85575f5ffd5b5051919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614dae57614dae614d8c565b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f82614e0c57614e0c614d8c565b500690565b5f60208284031215614e21575f5ffd5b611bbb8261490e565b64ffffffffff82811682821603908111156105ae576105ae614c14565b5f64ffffffffff831680614e5d57614e5d614d8c565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161502b6101608401826001600160a01b03169052565b5061018081015161504661018084018264ffffffffff169052565b506101a0810151611fb86101a084018264ffffffffff169052565b6103c081016150708287614c70565b61507e6101c0830186614fa1565b6001600160a01b03939093166103808201526bffffffffffffffffffffffff919091166103a09091015292915050565b5f602082840312156150be575f5ffd5b815160ff81168114611bbb575f5ffd5b60ff82811682821603908111156105ae576105ae614c14565b6001815b60018411156141b05780850481111561510657615106614c14565b600184161561511457908102905b60019390931c9280026150eb565b5f82615130575060016105ae565b8161513c57505f6105ae565b8160018114615152576002811461515c57615178565b60019150506105ae565b60ff84111561516d5761516d614c14565b50506001821b6105ae565b5060208310610133831016604e8410600b841016171561519b575081810a6105ae565b6151a75f1984846150e7565b805f19048211156151ba576151ba614c14565b029392505050565b5f611bbb60ff841683615122565b80820281158282048414176105ae576105ae614c14565b5f602082840312156151f7575f5ffd5b81518015158114611bbb575f5ffd5b601f821115611fb857805f5260205f20601f840160051c8101602085101561522b5750805b601f840160051c820191505b8181101561524a575f8155600101615237565b5050505050565b815167ffffffffffffffff81111561526b5761526b61475e565b61527f816152798454614afc565b84615206565b6020601f8211600181146152b1575f831561529a5750848201515b5f19600385901b1c1916600184901b17845561524a565b5f84815260208120601f198516915b828110156152e057878501518255602094850194600190920191016152c0565b50848210156152fd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f6115af615357601a84018661530c565b8461530c565b610220810161536c8287614fa1565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f611bbb828461530c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045fe15e502ee7d27e2c181a8de19eca3c79e4d983eccf2fa9a60440a1002699764736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5793 CODESIZE SUB DUP1 PUSH2 0x5793 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x125 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFEC343D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x1DF JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x209 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x214 DUP2 PUSH2 0x1E1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x225 DUP2 PUSH2 0x1E1 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24B DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x544C PUSH2 0x347 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x3A0 ADD MSTORE PUSH2 0x31E8 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x275 ADD MSTORE DUP2 DUP2 PUSH2 0x675 ADD MSTORE DUP2 DUP2 PUSH2 0x904 ADD MSTORE DUP2 DUP2 PUSH2 0xB9B ADD MSTORE DUP2 DUP2 PUSH2 0xF02 ADD MSTORE DUP2 DUP2 PUSH2 0x10A6 ADD MSTORE DUP2 DUP2 PUSH2 0x11D6 ADD MSTORE DUP2 DUP2 PUSH2 0x12D0 ADD MSTORE DUP2 DUP2 PUSH2 0x1365 ADD MSTORE DUP2 DUP2 PUSH2 0x1494 ADD MSTORE DUP2 DUP2 PUSH2 0x1602 ADD MSTORE DUP2 DUP2 PUSH2 0x1CBD ADD MSTORE DUP2 DUP2 PUSH2 0x1DED ADD MSTORE DUP2 DUP2 PUSH2 0x1ED1 ADD MSTORE DUP2 DUP2 PUSH2 0x26C4 ADD MSTORE DUP2 DUP2 PUSH2 0x2A7E ADD MSTORE DUP2 DUP2 PUSH2 0x2B1B ADD MSTORE DUP2 DUP2 PUSH2 0x2BCE ADD MSTORE DUP2 DUP2 PUSH2 0x2D9D ADD MSTORE DUP2 DUP2 PUSH2 0x2FA0 ADD MSTORE DUP2 DUP2 PUSH2 0x37D3 ADD MSTORE DUP2 DUP2 PUSH2 0x3870 ADD MSTORE DUP2 DUP2 PUSH2 0x3916 ADD MSTORE DUP2 DUP2 PUSH2 0x3AC3 ADD MSTORE PUSH2 0x3F88 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x7F7 ADD MSTORE DUP2 DUP2 PUSH2 0x840 ADD MSTORE DUP2 DUP2 PUSH2 0x9F8 ADD MSTORE DUP2 DUP2 PUSH2 0xA38 ADD MSTORE PUSH2 0xAC5 ADD MSTORE PUSH2 0x544C PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BA JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x73A952E8 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BAC3A24 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xCFD4C606 GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x52E JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x575 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0xB9B28F2A EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xCEDDAC6F EQ PUSH2 0x4BA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7FF8BF25 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x82FF9C8C EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x449 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x766DBC56 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x3E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x15D JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x373 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x571E8BCC EQ PUSH2 0x2FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0x18E26BB9 EQ PUSH2 0x213 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1DD PUSH2 0x1D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x46BC JUMP JUMPDEST PUSH2 0x589 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x46E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0x644 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x4743 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x8D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E9 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x47E9 JUMP JUMPDEST PUSH2 0x9EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0x4849 JUMP JUMPDEST PUSH2 0xB6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x34F CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x2F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x487F JUMP JUMPDEST PUSH2 0xF61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x3DE CALLDATASIZE PUSH1 0x4 PUSH2 0x4922 JUMP JUMPDEST PUSH2 0x107A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x49BE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x2F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E9 JUMP JUMPDEST PUSH2 0x1339 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x1471 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x454 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x1578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x468 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A63 JUMP JUMPDEST PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A95 JUMP JUMPDEST PUSH2 0x15B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4ACF JUMP JUMPDEST PUSH2 0x15D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4D9 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0x1AD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x539 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x1BCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4D9 PUSH2 0x1BED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x4743 JUMP JUMPDEST PUSH2 0x1C9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x580 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x1DEA JUMP JUMPDEST PUSH0 PUSH2 0x593 DUP3 PUSH2 0x1E6B JUMP JUMPDEST DUP1 PUSH2 0x5AE JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x5C3 SWAP1 PUSH2 0x4AFC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EF SWAP1 PUSH2 0x4AFC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x63A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x611 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x63A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6CF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6F3 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x727 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x73D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x74F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH0 SUB PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFFFF AND SWAP1 SUB PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH32 0xDA8C8883E1B3EAD63D3EF64674F8FC499048554F6FA36776AF0AB41D2F998346 SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x83E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4B7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x886 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4BC8 JUMP JUMPDEST PUSH2 0x8B5 DUP2 PUSH2 0x1EA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x8D0 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x1FBD JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x982 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9EA PUSH2 0x2127 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xA36 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4B7C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA7E PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4BC8 JUMP JUMPDEST PUSH2 0xAAD DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x9EA DUP3 DUP3 PUSH1 0x1 PUSH2 0x1FBD JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xB58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBF5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC75 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP4 PUSH0 SUB PUSH2 0xC99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xCB1 DUP6 PUSH0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC7 DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCDD DUP6 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCF3 DUP6 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD09 DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1F DUP6 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD35 DUP6 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP5 DUP6 ADD DUP5 SWAP1 MSTORE PUSH0 DUP11 DUP2 MSTORE PUSH2 0x12D DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP4 DUP9 ADD MLOAD SWAP3 DUP9 ADD MLOAD SWAP7 DUP9 ADD MLOAD PUSH1 0x80 DUP10 ADD MLOAD PUSH1 0xA0 DUP11 ADD MLOAD PUSH1 0xC0 DUP12 ADD MLOAD PUSH1 0xE0 DUP13 ADD MLOAD PUSH2 0x100 DUP14 ADD MLOAD PUSH2 0x120 SWAP1 SWAP14 ADD MLOAD DUP12 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP14 DUP12 AND PUSH1 0x1 PUSH1 0x90 SHL MUL SWAP14 SWAP1 SWAP14 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT SWAP2 SWAP1 SWAP11 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP3 DUP13 AND PUSH1 0x1 PUSH1 0x60 SHL MUL SWAP3 SWAP1 SWAP3 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT SWAP4 DUP13 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP6 DUP14 AND PUSH1 0x1 PUSH1 0x40 SHL MUL SWAP6 SWAP1 SWAP6 AND PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT SWAP7 DUP14 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP15 DUP15 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP15 SWAP1 SWAP15 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP11 DUP15 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP9 SWAP1 SWAP14 AND SWAP8 SWAP1 SWAP8 OR SWAP10 SWAP1 SWAP10 OR SWAP8 SWAP1 SWAP8 AND SWAP10 SWAP1 SWAP10 OR SWAP10 SWAP1 SWAP10 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR OR SWAP6 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH2 0xE88 SWAP1 PUSH2 0x2192 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP5 DUP3 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD DUP6 SWAP2 PUSH32 0x1F02D2D352DDBF27121545F4D4730D7656C038F9CE75851410C9EF6982728975 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xE0 ADD SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF48 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF59 SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xF7F JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xF98 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF98 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x101C JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x102B DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x258C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1070 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1083 PUSH2 0x25C9 JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1155 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1192 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x11A2 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 CALLER DUP16 PUSH2 0x27CC JUMP JUMPDEST MLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1285 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x12B9 PUSH2 0x25C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x1307 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4D31 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1330 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1342 PUSH2 0x25C9 JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13BF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13E3 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1414 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1451 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x11A2 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0x1463 DUP15 PUSH2 0x2839 JUMP JUMPDEST PUSH2 0x146C DUP15 PUSH2 0x1AD2 JUMP JUMPDEST PUSH2 0x2848 JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14EE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1512 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1544 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x8D0 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1595 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2E63 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x15AF DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x15AA PUSH2 0x1BED JUMP JUMPDEST PUSH2 0x2EF1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15C8 DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x15AA DUP8 PUSH2 0x1AD2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1680 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16B4 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16DC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x16E8 SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x16FA JUMPI PUSH2 0x16FA PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1723 JUMPI PUSH2 0x1708 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1737 JUMPI PUSH2 0x1737 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1769 JUMPI PUSH2 0x1745 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177D PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x17B2 JUMPI PUSH2 0x178B DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x17C6 JUMPI PUSH2 0x17C6 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x17FA JUMPI PUSH2 0x17D4 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x180E JUMPI PUSH2 0x180E PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1847 JUMPI PUSH2 0x181C DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x185B JUMPI PUSH2 0x185B PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x188F JUMPI PUSH2 0x1869 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A3 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x18D7 JUMPI PUSH2 0x18B1 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x18EB JUMPI PUSH2 0x18EB PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1925 JUMPI PUSH2 0x18FB PUSH1 0x2 DUP5 PUSH2 0x2F0D JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH2 0x1939 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1A51 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x19AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x19B2 PUSH2 0x1578 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x19D1 JUMPI POP PUSH2 0x19D1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x1A1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x1A27 PUSH0 DUP5 PUSH2 0x2F0D JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A65 JUMPI PUSH2 0x1A65 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1A95 JUMPI PUSH2 0x1A73 DUP4 PUSH2 0x308F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1ACC DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1AAA JUMPI PUSH2 0x1AAA PUSH2 0x4D4E JUMP JUMPDEST PUSH2 0x1AB5 SWAP1 PUSH1 0x8 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x1AC6 JUMPI PUSH2 0x1AC6 PUSH2 0x4D4E JUMP JUMPDEST DUP5 PUSH2 0x30F5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1ADA PUSH2 0x460E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1BC2 JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0xFFFF SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1B17 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1BBB SWAP1 PUSH2 0x3146 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5AE PUSH2 0x1BED JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1595 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x1BF5 PUSH2 0x460E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1595 SWAP1 PUSH2 0x3146 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D17 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D3B SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x1DC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x9EA SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x30F5 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E47 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x5AE JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F4F SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F83 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F99 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1FB8 DUP4 PUSH2 0x31D9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1FF0 JUMPI PUSH2 0x1FB8 DUP4 PUSH2 0x3297 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x204A JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2047 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4D75 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x20AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x211B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP PUSH2 0x1FB8 DUP4 DUP4 DUP4 PUSH2 0x3332 JUMP JUMPDEST PUSH2 0x212F PUSH2 0x3356 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH2 0x218D PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4DA0 JUMP JUMPDEST PUSH2 0x308F JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x21FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x2226 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x227C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x230E JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x235A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x23C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x249F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x250C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2536 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x25B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x25BA PUSH2 0x339F JUMP JUMPDEST PUSH2 0x1330 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x33D5 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x2639 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x54 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x74 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT PUSH1 0xD8 DUP9 DUP2 SHL DUP3 AND PUSH1 0x94 DUP5 ADD MSTORE PUSH1 0x99 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0xB9 DUP4 ADD DUP8 SWAP1 MSTORE DUP4 SWAP1 SHL AND PUSH1 0xD9 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x26B2 SWAP1 PUSH1 0xDE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x35D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26C0 DUP3 DUP7 DUP7 PUSH2 0x3610 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x271E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2793 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27A9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27BB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x27D4 PUSH2 0x4644 JUMP JUMPDEST PUSH2 0x27F4 DUP10 DUP10 DUP10 DUP10 DUP8 DUP8 PUSH2 0x27E6 DUP13 PUSH2 0x2839 JUMP JUMPDEST PUSH2 0x27EF DUP13 PUSH2 0x1AD2 JUMP JUMPDEST PUSH2 0x3634 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE SWAP2 SWAP3 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x4DFE JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x4644 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x2879 JUMPI PUSH2 0x2876 DUP9 DUP8 DUP8 PUSH2 0x2870 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x4E11 JUMP JUMPDEST DUP7 PUSH2 0x2EF1 JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x28C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x28E2 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x292E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x2940 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x2961 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2971 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x29E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2A06 PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH2 0x2A10 SWAP1 DUP9 PUSH2 0x4E2A JUMP JUMPDEST PUSH2 0x2A1A SWAP2 SWAP1 PUSH2 0x4E47 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2A6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x2A7C PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4C28 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AD8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AFC SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B6A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8E SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO PUSH2 0x2BAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x2CCC JUMPI POP PUSH2 0x2BCC PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4C28 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C28 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C4C SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CA5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CC9 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4EBD JUMP JUMPDEST PUSH2 0x2CF0 PUSH2 0x1BCF JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2D0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F0C JUMP JUMPDEST PUSH2 0x2D31 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2D2C SWAP2 SWAP1 PUSH2 0x4E11 JUMP JUMPDEST PUSH2 0x3B4D JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2D47 SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2D57 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2D65 SWAP1 POP PUSH2 0x1578 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2D86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x2DD8 SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5061 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DF4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E18 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2E2E PUSH2 0x25C9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x215C CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2E6D PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EA8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECC SWAP2 SWAP1 PUSH2 0x50AE JUMP JUMPDEST PUSH2 0x2ED6 SWAP2 SWAP1 PUSH2 0x50CE JUMP JUMPDEST PUSH2 0x2EE1 SWAP1 PUSH1 0xA PUSH2 0x51C2 JUMP JUMPDEST PUSH2 0x1BBB SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x51D0 JUMP JUMPDEST PUSH0 PUSH2 0x2EFF DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3CBD JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB DUP4 PUSH2 0x2F1A PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F79 SWAP2 SWAP1 PUSH2 0x50AE JUMP JUMPDEST PUSH2 0x2F83 SWAP2 SWAP1 PUSH2 0x50CE JUMP JUMPDEST PUSH2 0x2F8E SWAP1 PUSH1 0xA PUSH2 0x51C2 JUMP JUMPDEST PUSH2 0x2F98 SWAP1 DUP5 PUSH2 0x4DA0 JUMP JUMPDEST PUSH2 0x3EB0 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FFA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x301E SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3050 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x306B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5AE SWAP2 SWAP1 PUSH2 0x51E7 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x30FD PUSH2 0x3F14 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x310F JUMPI PUSH2 0x310F PUSH2 0x4D4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x314E PUSH2 0x460E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3165 DUP5 PUSH0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3177 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3189 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x319B DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31AD DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31BF DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31D1 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31E2 DUP2 PUSH2 0x3F86 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x324C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3270 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9EA JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3304 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x333B DUP4 PUSH2 0x4037 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3347 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1ACC DUP4 DUP4 PUSH2 0x4076 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x33C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x33CD PUSH2 0x409B JUMP JUMPDEST PUSH2 0x260F PUSH2 0x40C1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x33FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3407 DUP9 DUP3 PUSH2 0x5251 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x342A DUP9 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x343C DUP8 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x345B DUP7 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x346F PUSH1 0x2 DUP7 PUSH2 0x2F0D JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3484 PUSH0 DUP6 PUSH2 0x2F0D JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x1330 PUSH2 0x3F14 JUMP JUMPDEST PUSH0 PUSH2 0x35E1 DUP3 MLOAD PUSH2 0x40EF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x35F3 SWAP3 SWAP2 SWAP1 PUSH2 0x5323 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x361E DUP7 DUP7 DUP7 PUSH2 0x417F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x362B DUP2 PUSH2 0x41B8 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x363C PUSH2 0x4644 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x3655 JUMPI PUSH2 0x3652 DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x2EF1 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x36A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x3701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x371C DUP4 DUP11 PUSH2 0x4E2A JUMP JUMPDEST PUSH2 0x3726 SWAP2 SWAP1 PUSH2 0x4E47 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x377A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x37D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x382D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3851 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38BF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E3 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO PUSH2 0x3901 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3A14 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3970 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3994 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39ED JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A11 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x3A30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4EBD JUMP JUMPDEST PUSH2 0x3A38 PUSH2 0x1BCF JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3A57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F0C JUMP JUMPDEST PUSH2 0x3A66 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3B4D JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x3A7D SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3A8B SWAP1 POP PUSH2 0x1578 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3AAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3AFE SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x535D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B1A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3B3E SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3B55 PUSH2 0x4644 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3BB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x3BB8 PUSH2 0x4644 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3C02 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3CBD JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3C9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3CAA SWAP1 DUP10 PUSH2 0x4C28 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3CFD PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3D15 SWAP1 PUSH2 0x3D0E SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3D27 SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x3D51 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3D49 SWAP1 DUP4 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3D58 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x3D68 SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3D7E SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3DB3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3D9A SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x3DAB SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3DBA JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3DF7 PUSH4 0x1E13380 PUSH2 0x3DCC DUP5 DUP7 PUSH2 0x4E2A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x3DE2 SWAP2 SWAP1 PUSH2 0x51D0 JUMP JUMPDEST PUSH2 0x3DEC SWAP2 SWAP1 PUSH2 0x4DA0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3E39 PUSH4 0x1E13380 PUSH2 0x3E0E DUP5 DUP7 PUSH2 0x4E2A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x3E24 SWAP2 SWAP1 PUSH2 0x51D0 JUMP JUMPDEST PUSH2 0x3E2E SWAP2 SWAP1 PUSH2 0x4DA0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x3E50 SWAP2 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 POP PUSH2 0x3E69 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x4301 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x3E79 SWAP2 PUSH2 0x4301 JUMP JUMPDEST PUSH2 0x3E83 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x3E97 SWAP2 PUSH2 0x4D62 JUMP JUMPDEST PUSH2 0x3EA1 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x3F1F PUSH2 0x1578 JUMP JUMPDEST LT ISZERO PUSH2 0x3F3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3F67 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x260F PUSH1 0xFC PUSH2 0x2192 JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x51D0 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3FEC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4010 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4040 DUP2 PUSH2 0x3297 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1BBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x53F0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x4337 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x260F PUSH2 0x43AB JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x40FB DUP4 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411A JUMPI PUSH2 0x411A PUSH2 0x475E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4144 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x414E JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x419B PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x4D62 JUMP JUMPDEST SWAP1 POP PUSH2 0x41A9 DUP8 DUP3 DUP9 DUP6 PUSH2 0x44B4 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x41CB JUMPI PUSH2 0x41CB PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x41D3 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x41E7 JUMPI PUSH2 0x41E7 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x4234 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x4248 JUMPI PUSH2 0x4248 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x4295 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x42A9 JUMPI PUSH2 0x42A9 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x431D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4353 SWAP2 SWAP1 PUSH2 0x53A4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x438B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4390 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x43A1 DUP7 DUP4 DUP4 DUP8 PUSH2 0x4571 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x43D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x441B JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4447 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4465 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x447D JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4491 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x44A3 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x5AE JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x44E9 JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x4568 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x453A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4562 JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x4568 JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x45DF JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x45D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x45D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST POP DUP2 PUSH2 0x15AF JUMP JUMPDEST PUSH2 0x15AF DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x45F4 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP2 SWAP1 PUSH2 0x46E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4728 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4753 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BBB DUP2 PUSH2 0x472F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x478C JUMPI PUSH2 0x478C PUSH2 0x475E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x47BB JUMPI PUSH2 0x47BB PUSH2 0x475E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x47D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x47FA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4805 DUP2 PUSH2 0x472F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4820 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4830 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x483F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4772 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0x485C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x4871 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4895 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x48BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x48CA DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4772 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x48FE DUP2 PUSH2 0x472F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1BCA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x493C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x495A PUSH1 0x60 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x496A DUP2 PUSH2 0x472F JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4996 PUSH2 0x120 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x49D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x49DA DUP5 DUP5 PUSH2 0x49A7 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x2E0 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4A03 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4A0D DUP13 DUP13 PUSH2 0x49A7 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x4A34 PUSH2 0x220 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x260 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH2 0x280 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x2A0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4996 PUSH2 0x2C0 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4A75 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A8C PUSH1 0x40 DUP6 ADD PUSH2 0x490E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4AA8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x4ABF PUSH1 0x40 DUP7 ADD PUSH2 0x490E JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4AE0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x4AEE JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4B10 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x49B8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B3E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1BBB DUP2 PUSH2 0x472F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1BCA DUP2 PUSH2 0x472F JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x4CE8 PUSH2 0x160 DUP3 ADD PUSH2 0x4C65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4D04 PUSH2 0x180 DUP3 ADD PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x4D1E PUSH2 0x1A0 DUP3 ADD PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4D40 DUP3 DUP6 PUSH2 0x4C70 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x4DAE JUMPI PUSH2 0x4DAE PUSH2 0x4D8C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4E0C JUMPI PUSH2 0x4E0C PUSH2 0x4D8C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E21 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1BBB DUP3 PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x4E5D JUMPI PUSH2 0x4E5D PUSH2 0x4D8C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x502B PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x5046 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x1FB8 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x5070 DUP3 DUP8 PUSH2 0x4C70 JUMP JUMPDEST PUSH2 0x507E PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x4FA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x41B0 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x5106 JUMPI PUSH2 0x5106 PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x5114 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x50EB JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x5130 JUMPI POP PUSH1 0x1 PUSH2 0x5AE JUMP JUMPDEST DUP2 PUSH2 0x513C JUMPI POP PUSH0 PUSH2 0x5AE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x5152 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x515C JUMPI PUSH2 0x5178 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x516D JUMPI PUSH2 0x516D PUSH2 0x4C14 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x5AE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x519B JUMPI POP DUP2 DUP2 EXP PUSH2 0x5AE JUMP JUMPDEST PUSH2 0x51A7 PUSH0 NOT DUP5 DUP5 PUSH2 0x50E7 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x51BA JUMPI PUSH2 0x51BA PUSH2 0x4C14 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x5122 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FB8 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x522B JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x524A JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5237 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526B JUMPI PUSH2 0x526B PUSH2 0x475E JUMP JUMPDEST PUSH2 0x527F DUP2 PUSH2 0x5279 DUP5 SLOAD PUSH2 0x4AFC JUMP JUMPDEST DUP5 PUSH2 0x5206 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x52B1 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x529A JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x524A JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x52E0 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x52C0 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x52FD JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0x15AF PUSH2 0x5357 PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x530C JUMP JUMPDEST DUP5 PUSH2 0x530C JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x536C DUP3 DUP8 PUSH2 0x4FA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB DUP3 DUP5 PUSH2 0x530C JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122045FE15 0xE5 MUL 0xEE PUSH30 0x27E2C181A8DE19ECA3C79E4D983ECCF2FA9A60440A1002699764736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"870:11289:61:-:0;;;1198:4:7;1155:48;;2198:116:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2281:11;2294:16;2281:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;3107:11:60::1;-1:-1:-1::0;;;;;3044:74:60::1;3072:16;-1:-1:-1::0;;;;;3044:57:60::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3044:74:60::1;;3040:138;;3135:36;;-1:-1:-1::0;;;3135:36:60::1;;;;;;;;;;;3040:138;-1:-1:-1::0;;;;;3183:35:60::1;;::::0;-1:-1:-1;870:11289:61;;-1:-1:-1;;870:11289:61;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;1118:2:88;5998:66:6;;;1100:21:88;1157:2;1137:18;;;1130:30;1196:34;1176:18;;;1169:62;-1:-1:-1;;;1247:18:88;;;1240:37;1294:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1466:36:88;;;6174:28:6;;1454:2:88;1439:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:458::-;289:6;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;417:44;455:5;417:44;:::i;:::-;530:2;515:18;;509:25;480:5;;-1:-1:-1;543:46:88;509:25;543:46;:::i;:::-;608:7;598:17;;;163:458;;;;;:::o;626:285::-;717:6;770:2;758:9;749:7;745:23;741:32;738:52;;;786:1;783;776:12;738:52;818:9;812:16;837:44;875:5;837:44;:::i;:::-;900:5;626:285;-1:-1:-1;;;626:285:88:o;1324:184::-;870:11289:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_4toWad_20564":{"entryPoint":16241,"id":20564,"parameterSlots":1,"returnSlots":1},"@_XtoAmount_20604":{"entryPoint":11875,"id":20604,"parameterSlots":2,"returnSlots":1},"@__Pausable_init_1113":{"entryPoint":16577,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":17323,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":13215,"id":17875,"parameterSlots":0,"returnSlots":0},"@__RiskModule_init_20302":{"entryPoint":9612,"id":20302,"parameterSlots":7,"returnSlots":0},"@__RiskModule_init_unchained_20364":{"entryPoint":13269,"id":20364,"parameterSlots":7,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":16539,"id":1008,"parameterSlots":0,"returnSlots":0},"@_amountToX_20629":{"entryPoint":12045,"id":20629,"parameterSlots":2,"returnSlots":1},"@_authorizeUpgrade_17890":{"entryPoint":7840,"id":17890,"parameterSlots":1,"returnSlots":0},"@_checkSignature_21652":{"entryPoint":9745,"id":21652,"parameterSlots":9,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_getMinimumPremium_21037":{"entryPoint":12017,"id":21037,"parameterSlots":5,"returnSlots":1},"@_makeInternalId_20948":{"entryPoint":10297,"id":20948,"parameterSlots":1,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_newPolicySigned_21700":{"entryPoint":10188,"id":21700,"parameterSlots":8,"returnSlots":1},"@_newPolicyWithParams_21244":{"entryPoint":13876,"id":21244,"parameterSlots":8,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":12533,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":11814,"id":1187,"parameterSlots":0,"returnSlots":0},"@_replacePolicy_21437":{"entryPoint":10312,"id":21437,"parameterSlots":8,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":9673,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":13142,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":12951,"id":510,"parameterSlots":1,"returnSlots":0},"@_throwError_7365":{"entryPoint":16824,"id":7365,"parameterSlots":1,"returnSlots":0},"@_unpackParams_20928":{"entryPoint":12614,"id":20928,"parameterSlots":1,"returnSlots":1},"@_unpause_1203":{"entryPoint":8487,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":8125,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":13106,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":16439,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":16262,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_20394":{"entryPoint":12761,"id":20394,"parameterSlots":1,"returnSlots":0},"@_validatePackedParams_20540":{"entryPoint":8594,"id":20540,"parameterSlots":1,"returnSlots":0},"@_validateParameters_20445":{"entryPoint":16148,"id":20445,"parameterSlots":0,"returnSlots":0},"@_wadTo4_20579":{"entryPoint":8569,"id":20579,"parameterSlots":1,"returnSlots":1},"@activeExposure_20674":{"entryPoint":null,"id":20674,"parameterSlots":0,"returnSlots":1},"@bucketParams_22001":{"entryPoint":6866,"id":22001,"parameterSlots":1,"returnSlots":1},"@currency_17973":{"entryPoint":7658,"id":17973,"parameterSlots":0,"returnSlots":1},"@deleteBucket_21959":{"entryPoint":1604,"id":21959,"parameterSlots":1,"returnSlots":0},"@exposureLimit_20655":{"entryPoint":5496,"id":20655,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":16502,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":17207,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getMinimumPremiumForBucket_22030":{"entryPoint":5559,"id":22030,"parameterSlots":4,"returnSlots":1},"@getMinimumPremium_15158":{"entryPoint":15549,"id":15158,"parameterSlots":5,"returnSlots":1},"@getMinimumPremium_21010":{"entryPoint":5530,"id":21010,"parameterSlots":3,"returnSlots":1},"@hasPoolRole_17995":{"entryPoint":12189,"id":17995,"parameterSlots":1,"returnSlots":1},"@initialize_15300":{"entryPoint":15181,"id":15300,"parameterSlots":7,"returnSlots":1},"@initialize_21578":{"entryPoint":3937,"id":21578,"parameterSlots":7,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@log10_8586":{"entryPoint":17373,"id":8586,"parameterSlots":1,"returnSlots":1},"@maxDuration_20665":{"entryPoint":null,"id":20665,"parameterSlots":0,"returnSlots":1},"@maxPayoutPerPolicy_20642":{"entryPoint":7119,"id":20642,"parameterSlots":0,"returnSlots":1},"@name_20549":{"entryPoint":1460,"id":20549,"parameterSlots":0,"returnSlots":1},"@newPolicy_21757":{"entryPoint":4218,"id":21757,"parameterSlots":10,"returnSlots":1},"@params_20887":{"entryPoint":7149,"id":20887,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":5233,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@premiumsAccount_21460":{"entryPoint":null,"id":21460,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":2745,"id":1026,"parameterSlots":0,"returnSlots":1},"@recover_7515":{"entryPoint":13840,"id":7515,"parameterSlots":3,"returnSlots":1},"@releaseExposure_21450":{"entryPoint":3839,"id":21450,"parameterSlots":1,"returnSlots":0},"@replacePolicy_21819":{"entryPoint":4921,"id":21819,"parameterSlots":10,"returnSlots":1},"@resolvePolicy_21840":{"entryPoint":4531,"id":21840,"parameterSlots":2,"returnSlots":0},"@setBucketParams_21922":{"entryPoint":2922,"id":21922,"parameterSlots":2,"returnSlots":0},"@setParam_20875":{"entryPoint":5585,"id":20875,"parameterSlots":2,"returnSlots":0},"@setWallet_20985":{"entryPoint":7322,"id":20985,"parameterSlots":1,"returnSlots":0},"@supportsInterface_17931":{"entryPoint":7787,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_20416":{"entryPoint":1417,"id":20416,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_7644":{"entryPoint":13782,"id":7644,"parameterSlots":1,"returnSlots":1},"@toString_7141":{"entryPoint":16623,"id":7141,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":12431,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":16048,"id":9452,"parameterSlots":1,"returnSlots":1},"@tryRecover_7485":{"entryPoint":16767,"id":7485,"parameterSlots":3,"returnSlots":2},"@tryRecover_7579":{"entryPoint":17588,"id":7579,"parameterSlots":4,"returnSlots":2},"@unpause_17952":{"entryPoint":2259,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":2542,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":2029,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":17777,"id":2608,"parameterSlots":4,"returnSlots":1},"@wadMul_23186":{"entryPoint":17153,"id":23186,"parameterSlots":2,"returnSlots":1},"@wallet_20683":{"entryPoint":null,"id":20683,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":18290,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":19557,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":18855,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":18243,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":18409,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":20967,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":19829,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":18108,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":19246,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256":{"entryPoint":19151,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address":{"entryPoint":18559,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":18878,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40":{"entryPoint":18921,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint256":{"entryPoint":18200,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr":{"entryPoint":18505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40":{"entryPoint":18722,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint256t_uint256t_uint40":{"entryPoint":19043,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256":{"entryPoint":19093,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint40":{"entryPoint":19985,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":20654,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":18702,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IPolicyPool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":21260,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_PolicyData":{"entryPoint":20385,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData_calldata":{"entryPoint":19568,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":21412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":21283,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":19515,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":19273,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18147,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20318,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20080,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20236,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19400,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20157,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19891,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed":{"entryPoint":20577,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":19761,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed":{"entryPoint":21341,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19810,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":19872,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint40":{"entryPoint":20039,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":20711,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":20930,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":20770,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":20944,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":19496,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":20010,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":20686,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":20998,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":21073,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":19196,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":19966,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":19476,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":19852,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":19790,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":18270,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":18223,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:43328:88","nodeType":"YulBlock","src":"0:43328:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"618:297:88","nodeType":"YulBlock","src":"618:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"635:9:88","nodeType":"YulIdentifier","src":"635:9:88"},{"kind":"number","nativeSrc":"646:2:88","nodeType":"YulLiteral","src":"646:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"628:6:88","nodeType":"YulIdentifier","src":"628:6:88"},"nativeSrc":"628:21:88","nodeType":"YulFunctionCall","src":"628:21:88"},"nativeSrc":"628:21:88","nodeType":"YulExpressionStatement","src":"628:21:88"},{"nativeSrc":"658:27:88","nodeType":"YulVariableDeclaration","src":"658:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"678:6:88","nodeType":"YulIdentifier","src":"678:6:88"}],"functionName":{"name":"mload","nativeSrc":"672:5:88","nodeType":"YulIdentifier","src":"672:5:88"},"nativeSrc":"672:13:88","nodeType":"YulFunctionCall","src":"672:13:88"},"variables":[{"name":"length","nativeSrc":"662:6:88","nodeType":"YulTypedName","src":"662:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:88","nodeType":"YulIdentifier","src":"705:9:88"},{"kind":"number","nativeSrc":"716:2:88","nodeType":"YulLiteral","src":"716:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:18:88","nodeType":"YulFunctionCall","src":"701:18:88"},{"name":"length","nativeSrc":"721:6:88","nodeType":"YulIdentifier","src":"721:6:88"}],"functionName":{"name":"mstore","nativeSrc":"694:6:88","nodeType":"YulIdentifier","src":"694:6:88"},"nativeSrc":"694:34:88","nodeType":"YulFunctionCall","src":"694:34:88"},"nativeSrc":"694:34:88","nodeType":"YulExpressionStatement","src":"694:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"747:9:88","nodeType":"YulIdentifier","src":"747:9:88"},{"kind":"number","nativeSrc":"758:2:88","nodeType":"YulLiteral","src":"758:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"743:3:88","nodeType":"YulIdentifier","src":"743:3:88"},"nativeSrc":"743:18:88","nodeType":"YulFunctionCall","src":"743:18:88"},{"arguments":[{"name":"value0","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:2:88","nodeType":"YulLiteral","src":"775:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:15:88","nodeType":"YulFunctionCall","src":"763:15:88"},{"name":"length","nativeSrc":"780:6:88","nodeType":"YulIdentifier","src":"780:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"737:5:88","nodeType":"YulIdentifier","src":"737:5:88"},"nativeSrc":"737:50:88","nodeType":"YulFunctionCall","src":"737:50:88"},"nativeSrc":"737:50:88","nodeType":"YulExpressionStatement","src":"737:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"811:9:88","nodeType":"YulIdentifier","src":"811:9:88"},{"name":"length","nativeSrc":"822:6:88","nodeType":"YulIdentifier","src":"822:6:88"}],"functionName":{"name":"add","nativeSrc":"807:3:88","nodeType":"YulIdentifier","src":"807:3:88"},"nativeSrc":"807:22:88","nodeType":"YulFunctionCall","src":"807:22:88"},{"kind":"number","nativeSrc":"831:2:88","nodeType":"YulLiteral","src":"831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"803:3:88","nodeType":"YulIdentifier","src":"803:3:88"},"nativeSrc":"803:31:88","nodeType":"YulFunctionCall","src":"803:31:88"},{"kind":"number","nativeSrc":"836:1:88","nodeType":"YulLiteral","src":"836:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"796:6:88","nodeType":"YulIdentifier","src":"796:6:88"},"nativeSrc":"796:42:88","nodeType":"YulFunctionCall","src":"796:42:88"},"nativeSrc":"796:42:88","nodeType":"YulExpressionStatement","src":"796:42:88"},{"nativeSrc":"847:62:88","nodeType":"YulAssignment","src":"847:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"863:9:88","nodeType":"YulIdentifier","src":"863:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"882:6:88","nodeType":"YulIdentifier","src":"882:6:88"},{"kind":"number","nativeSrc":"890:2:88","nodeType":"YulLiteral","src":"890:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"878:3:88","nodeType":"YulIdentifier","src":"878:3:88"},"nativeSrc":"878:15:88","nodeType":"YulFunctionCall","src":"878:15:88"},{"arguments":[{"kind":"number","nativeSrc":"899:2:88","nodeType":"YulLiteral","src":"899:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"895:3:88","nodeType":"YulIdentifier","src":"895:3:88"},"nativeSrc":"895:7:88","nodeType":"YulFunctionCall","src":"895:7:88"}],"functionName":{"name":"and","nativeSrc":"874:3:88","nodeType":"YulIdentifier","src":"874:3:88"},"nativeSrc":"874:29:88","nodeType":"YulFunctionCall","src":"874:29:88"}],"functionName":{"name":"add","nativeSrc":"859:3:88","nodeType":"YulIdentifier","src":"859:3:88"},"nativeSrc":"859:45:88","nodeType":"YulFunctionCall","src":"859:45:88"},{"kind":"number","nativeSrc":"906:2:88","nodeType":"YulLiteral","src":"906:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"855:3:88","nodeType":"YulIdentifier","src":"855:3:88"},"nativeSrc":"855:54:88","nodeType":"YulFunctionCall","src":"855:54:88"},"variableNames":[{"name":"tail","nativeSrc":"847:4:88","nodeType":"YulIdentifier","src":"847:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"497:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"587:9:88","nodeType":"YulTypedName","src":"587:9:88","type":""},{"name":"value0","nativeSrc":"598:6:88","nodeType":"YulTypedName","src":"598:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"609:4:88","nodeType":"YulTypedName","src":"609:4:88","type":""}],"src":"497:418:88"},{"body":{"nativeSrc":"990:156:88","nodeType":"YulBlock","src":"990:156:88","statements":[{"body":{"nativeSrc":"1036:16:88","nodeType":"YulBlock","src":"1036:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1045:1:88","nodeType":"YulLiteral","src":"1045:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1048:1:88","nodeType":"YulLiteral","src":"1048:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1038:6:88","nodeType":"YulIdentifier","src":"1038:6:88"},"nativeSrc":"1038:12:88","nodeType":"YulFunctionCall","src":"1038:12:88"},"nativeSrc":"1038:12:88","nodeType":"YulExpressionStatement","src":"1038:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1011:7:88","nodeType":"YulIdentifier","src":"1011:7:88"},{"name":"headStart","nativeSrc":"1020:9:88","nodeType":"YulIdentifier","src":"1020:9:88"}],"functionName":{"name":"sub","nativeSrc":"1007:3:88","nodeType":"YulIdentifier","src":"1007:3:88"},"nativeSrc":"1007:23:88","nodeType":"YulFunctionCall","src":"1007:23:88"},{"kind":"number","nativeSrc":"1032:2:88","nodeType":"YulLiteral","src":"1032:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1003:3:88","nodeType":"YulIdentifier","src":"1003:3:88"},"nativeSrc":"1003:32:88","nodeType":"YulFunctionCall","src":"1003:32:88"},"nativeSrc":"1000:52:88","nodeType":"YulIf","src":"1000:52:88"},{"nativeSrc":"1061:14:88","nodeType":"YulVariableDeclaration","src":"1061:14:88","value":{"kind":"number","nativeSrc":"1074:1:88","nodeType":"YulLiteral","src":"1074:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1065:5:88","nodeType":"YulTypedName","src":"1065:5:88","type":""}]},{"nativeSrc":"1084:32:88","nodeType":"YulAssignment","src":"1084:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1106:9:88","nodeType":"YulIdentifier","src":"1106:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1093:12:88","nodeType":"YulIdentifier","src":"1093:12:88"},"nativeSrc":"1093:23:88","nodeType":"YulFunctionCall","src":"1093:23:88"},"variableNames":[{"name":"value","nativeSrc":"1084:5:88","nodeType":"YulIdentifier","src":"1084:5:88"}]},{"nativeSrc":"1125:15:88","nodeType":"YulAssignment","src":"1125:15:88","value":{"name":"value","nativeSrc":"1135:5:88","nodeType":"YulIdentifier","src":"1135:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1125:6:88","nodeType":"YulIdentifier","src":"1125:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"920:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"956:9:88","nodeType":"YulTypedName","src":"956:9:88","type":""},{"name":"dataEnd","nativeSrc":"967:7:88","nodeType":"YulTypedName","src":"967:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"979:6:88","nodeType":"YulTypedName","src":"979:6:88","type":""}],"src":"920:226:88"},{"body":{"nativeSrc":"1196:86:88","nodeType":"YulBlock","src":"1196:86:88","statements":[{"body":{"nativeSrc":"1260:16:88","nodeType":"YulBlock","src":"1260:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1269:1:88","nodeType":"YulLiteral","src":"1269:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1272:1:88","nodeType":"YulLiteral","src":"1272:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1262:6:88","nodeType":"YulIdentifier","src":"1262:6:88"},"nativeSrc":"1262:12:88","nodeType":"YulFunctionCall","src":"1262:12:88"},"nativeSrc":"1262:12:88","nodeType":"YulExpressionStatement","src":"1262:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1219:5:88","nodeType":"YulIdentifier","src":"1219:5:88"},{"arguments":[{"name":"value","nativeSrc":"1230:5:88","nodeType":"YulIdentifier","src":"1230:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1245:3:88","nodeType":"YulLiteral","src":"1245:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1250:1:88","nodeType":"YulLiteral","src":"1250:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1241:3:88","nodeType":"YulIdentifier","src":"1241:3:88"},"nativeSrc":"1241:11:88","nodeType":"YulFunctionCall","src":"1241:11:88"},{"kind":"number","nativeSrc":"1254:1:88","nodeType":"YulLiteral","src":"1254:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1237:3:88","nodeType":"YulIdentifier","src":"1237:3:88"},"nativeSrc":"1237:19:88","nodeType":"YulFunctionCall","src":"1237:19:88"}],"functionName":{"name":"and","nativeSrc":"1226:3:88","nodeType":"YulIdentifier","src":"1226:3:88"},"nativeSrc":"1226:31:88","nodeType":"YulFunctionCall","src":"1226:31:88"}],"functionName":{"name":"eq","nativeSrc":"1216:2:88","nodeType":"YulIdentifier","src":"1216:2:88"},"nativeSrc":"1216:42:88","nodeType":"YulFunctionCall","src":"1216:42:88"}],"functionName":{"name":"iszero","nativeSrc":"1209:6:88","nodeType":"YulIdentifier","src":"1209:6:88"},"nativeSrc":"1209:50:88","nodeType":"YulFunctionCall","src":"1209:50:88"},"nativeSrc":"1206:70:88","nodeType":"YulIf","src":"1206:70:88"}]},"name":"validator_revert_address","nativeSrc":"1151:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1185:5:88","nodeType":"YulTypedName","src":"1185:5:88","type":""}],"src":"1151:131:88"},{"body":{"nativeSrc":"1357:177:88","nodeType":"YulBlock","src":"1357:177:88","statements":[{"body":{"nativeSrc":"1403:16:88","nodeType":"YulBlock","src":"1403:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1412:1:88","nodeType":"YulLiteral","src":"1412:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1415:1:88","nodeType":"YulLiteral","src":"1415:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1405:6:88","nodeType":"YulIdentifier","src":"1405:6:88"},"nativeSrc":"1405:12:88","nodeType":"YulFunctionCall","src":"1405:12:88"},"nativeSrc":"1405:12:88","nodeType":"YulExpressionStatement","src":"1405:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1378:7:88","nodeType":"YulIdentifier","src":"1378:7:88"},{"name":"headStart","nativeSrc":"1387:9:88","nodeType":"YulIdentifier","src":"1387:9:88"}],"functionName":{"name":"sub","nativeSrc":"1374:3:88","nodeType":"YulIdentifier","src":"1374:3:88"},"nativeSrc":"1374:23:88","nodeType":"YulFunctionCall","src":"1374:23:88"},{"kind":"number","nativeSrc":"1399:2:88","nodeType":"YulLiteral","src":"1399:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1370:3:88","nodeType":"YulIdentifier","src":"1370:3:88"},"nativeSrc":"1370:32:88","nodeType":"YulFunctionCall","src":"1370:32:88"},"nativeSrc":"1367:52:88","nodeType":"YulIf","src":"1367:52:88"},{"nativeSrc":"1428:36:88","nodeType":"YulVariableDeclaration","src":"1428:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1454:9:88","nodeType":"YulIdentifier","src":"1454:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1441:12:88","nodeType":"YulIdentifier","src":"1441:12:88"},"nativeSrc":"1441:23:88","nodeType":"YulFunctionCall","src":"1441:23:88"},"variables":[{"name":"value","nativeSrc":"1432:5:88","nodeType":"YulTypedName","src":"1432:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1498:5:88","nodeType":"YulIdentifier","src":"1498:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1473:24:88","nodeType":"YulIdentifier","src":"1473:24:88"},"nativeSrc":"1473:31:88","nodeType":"YulFunctionCall","src":"1473:31:88"},"nativeSrc":"1473:31:88","nodeType":"YulExpressionStatement","src":"1473:31:88"},{"nativeSrc":"1513:15:88","nodeType":"YulAssignment","src":"1513:15:88","value":{"name":"value","nativeSrc":"1523:5:88","nodeType":"YulIdentifier","src":"1523:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1513:6:88","nodeType":"YulIdentifier","src":"1513:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1287:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1323:9:88","nodeType":"YulTypedName","src":"1323:9:88","type":""},{"name":"dataEnd","nativeSrc":"1334:7:88","nodeType":"YulTypedName","src":"1334:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1346:6:88","nodeType":"YulTypedName","src":"1346:6:88","type":""}],"src":"1287:247:88"},{"body":{"nativeSrc":"1596:60:88","nodeType":"YulBlock","src":"1596:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1613:3:88","nodeType":"YulIdentifier","src":"1613:3:88"},{"arguments":[{"name":"value","nativeSrc":"1622:5:88","nodeType":"YulIdentifier","src":"1622:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1637:3:88","nodeType":"YulLiteral","src":"1637:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1642:1:88","nodeType":"YulLiteral","src":"1642:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1633:3:88","nodeType":"YulIdentifier","src":"1633:3:88"},"nativeSrc":"1633:11:88","nodeType":"YulFunctionCall","src":"1633:11:88"},{"kind":"number","nativeSrc":"1646:1:88","nodeType":"YulLiteral","src":"1646:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1629:3:88","nodeType":"YulIdentifier","src":"1629:3:88"},"nativeSrc":"1629:19:88","nodeType":"YulFunctionCall","src":"1629:19:88"}],"functionName":{"name":"and","nativeSrc":"1618:3:88","nodeType":"YulIdentifier","src":"1618:3:88"},"nativeSrc":"1618:31:88","nodeType":"YulFunctionCall","src":"1618:31:88"}],"functionName":{"name":"mstore","nativeSrc":"1606:6:88","nodeType":"YulIdentifier","src":"1606:6:88"},"nativeSrc":"1606:44:88","nodeType":"YulFunctionCall","src":"1606:44:88"},"nativeSrc":"1606:44:88","nodeType":"YulExpressionStatement","src":"1606:44:88"}]},"name":"abi_encode_contract_IPolicyPool","nativeSrc":"1539:117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1580:5:88","nodeType":"YulTypedName","src":"1580:5:88","type":""},{"name":"pos","nativeSrc":"1587:3:88","nodeType":"YulTypedName","src":"1587:3:88","type":""}],"src":"1539:117:88"},{"body":{"nativeSrc":"1783:102:88","nodeType":"YulBlock","src":"1783:102:88","statements":[{"nativeSrc":"1793:26:88","nodeType":"YulAssignment","src":"1793:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1805:9:88","nodeType":"YulIdentifier","src":"1805:9:88"},{"kind":"number","nativeSrc":"1816:2:88","nodeType":"YulLiteral","src":"1816:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1801:3:88","nodeType":"YulIdentifier","src":"1801:3:88"},"nativeSrc":"1801:18:88","nodeType":"YulFunctionCall","src":"1801:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1793:4:88","nodeType":"YulIdentifier","src":"1793:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1835:9:88","nodeType":"YulIdentifier","src":"1835:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1850:6:88","nodeType":"YulIdentifier","src":"1850:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1866:3:88","nodeType":"YulLiteral","src":"1866:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1871:1:88","nodeType":"YulLiteral","src":"1871:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1862:3:88","nodeType":"YulIdentifier","src":"1862:3:88"},"nativeSrc":"1862:11:88","nodeType":"YulFunctionCall","src":"1862:11:88"},{"kind":"number","nativeSrc":"1875:1:88","nodeType":"YulLiteral","src":"1875:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1858:3:88","nodeType":"YulIdentifier","src":"1858:3:88"},"nativeSrc":"1858:19:88","nodeType":"YulFunctionCall","src":"1858:19:88"}],"functionName":{"name":"and","nativeSrc":"1846:3:88","nodeType":"YulIdentifier","src":"1846:3:88"},"nativeSrc":"1846:32:88","nodeType":"YulFunctionCall","src":"1846:32:88"}],"functionName":{"name":"mstore","nativeSrc":"1828:6:88","nodeType":"YulIdentifier","src":"1828:6:88"},"nativeSrc":"1828:51:88","nodeType":"YulFunctionCall","src":"1828:51:88"},"nativeSrc":"1828:51:88","nodeType":"YulExpressionStatement","src":"1828:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"1661:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1752:9:88","nodeType":"YulTypedName","src":"1752:9:88","type":""},{"name":"value0","nativeSrc":"1763:6:88","nodeType":"YulTypedName","src":"1763:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1774:4:88","nodeType":"YulTypedName","src":"1774:4:88","type":""}],"src":"1661:224:88"},{"body":{"nativeSrc":"1922:95:88","nodeType":"YulBlock","src":"1922:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1939:1:88","nodeType":"YulLiteral","src":"1939:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1946:3:88","nodeType":"YulLiteral","src":"1946:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1951:10:88","nodeType":"YulLiteral","src":"1951:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1942:3:88","nodeType":"YulIdentifier","src":"1942:3:88"},"nativeSrc":"1942:20:88","nodeType":"YulFunctionCall","src":"1942:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1932:6:88","nodeType":"YulIdentifier","src":"1932:6:88"},"nativeSrc":"1932:31:88","nodeType":"YulFunctionCall","src":"1932:31:88"},"nativeSrc":"1932:31:88","nodeType":"YulExpressionStatement","src":"1932:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1979:1:88","nodeType":"YulLiteral","src":"1979:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1982:4:88","nodeType":"YulLiteral","src":"1982:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1972:6:88","nodeType":"YulIdentifier","src":"1972:6:88"},"nativeSrc":"1972:15:88","nodeType":"YulFunctionCall","src":"1972:15:88"},"nativeSrc":"1972:15:88","nodeType":"YulExpressionStatement","src":"1972:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2003:1:88","nodeType":"YulLiteral","src":"2003:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2006:4:88","nodeType":"YulLiteral","src":"2006:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1996:6:88","nodeType":"YulIdentifier","src":"1996:6:88"},"nativeSrc":"1996:15:88","nodeType":"YulFunctionCall","src":"1996:15:88"},"nativeSrc":"1996:15:88","nodeType":"YulExpressionStatement","src":"1996:15:88"}]},"name":"panic_error_0x41","nativeSrc":"1890:127:88","nodeType":"YulFunctionDefinition","src":"1890:127:88"},{"body":{"nativeSrc":"2096:641:88","nodeType":"YulBlock","src":"2096:641:88","statements":[{"nativeSrc":"2106:13:88","nodeType":"YulVariableDeclaration","src":"2106:13:88","value":{"kind":"number","nativeSrc":"2118:1:88","nodeType":"YulLiteral","src":"2118:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"2110:4:88","nodeType":"YulTypedName","src":"2110:4:88","type":""}]},{"body":{"nativeSrc":"2162:22:88","nodeType":"YulBlock","src":"2162:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2164:16:88","nodeType":"YulIdentifier","src":"2164:16:88"},"nativeSrc":"2164:18:88","nodeType":"YulFunctionCall","src":"2164:18:88"},"nativeSrc":"2164:18:88","nodeType":"YulExpressionStatement","src":"2164:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2134:6:88","nodeType":"YulIdentifier","src":"2134:6:88"},{"kind":"number","nativeSrc":"2142:18:88","nodeType":"YulLiteral","src":"2142:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2131:2:88","nodeType":"YulIdentifier","src":"2131:2:88"},"nativeSrc":"2131:30:88","nodeType":"YulFunctionCall","src":"2131:30:88"},"nativeSrc":"2128:56:88","nodeType":"YulIf","src":"2128:56:88"},{"nativeSrc":"2193:43:88","nodeType":"YulVariableDeclaration","src":"2193:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2215:6:88","nodeType":"YulIdentifier","src":"2215:6:88"},{"kind":"number","nativeSrc":"2223:2:88","nodeType":"YulLiteral","src":"2223:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2211:3:88","nodeType":"YulIdentifier","src":"2211:3:88"},"nativeSrc":"2211:15:88","nodeType":"YulFunctionCall","src":"2211:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2232:2:88","nodeType":"YulLiteral","src":"2232:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2228:3:88","nodeType":"YulIdentifier","src":"2228:3:88"},"nativeSrc":"2228:7:88","nodeType":"YulFunctionCall","src":"2228:7:88"}],"functionName":{"name":"and","nativeSrc":"2207:3:88","nodeType":"YulIdentifier","src":"2207:3:88"},"nativeSrc":"2207:29:88","nodeType":"YulFunctionCall","src":"2207:29:88"},"variables":[{"name":"result","nativeSrc":"2197:6:88","nodeType":"YulTypedName","src":"2197:6:88","type":""}]},{"nativeSrc":"2245:25:88","nodeType":"YulAssignment","src":"2245:25:88","value":{"arguments":[{"name":"result","nativeSrc":"2257:6:88","nodeType":"YulIdentifier","src":"2257:6:88"},{"kind":"number","nativeSrc":"2265:4:88","nodeType":"YulLiteral","src":"2265:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2253:3:88","nodeType":"YulIdentifier","src":"2253:3:88"},"nativeSrc":"2253:17:88","nodeType":"YulFunctionCall","src":"2253:17:88"},"variableNames":[{"name":"size","nativeSrc":"2245:4:88","nodeType":"YulIdentifier","src":"2245:4:88"}]},{"nativeSrc":"2279:15:88","nodeType":"YulVariableDeclaration","src":"2279:15:88","value":{"kind":"number","nativeSrc":"2293:1:88","nodeType":"YulLiteral","src":"2293:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"2283:6:88","nodeType":"YulTypedName","src":"2283:6:88","type":""}]},{"nativeSrc":"2303:19:88","nodeType":"YulAssignment","src":"2303:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"2319:2:88","nodeType":"YulLiteral","src":"2319:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2313:5:88","nodeType":"YulIdentifier","src":"2313:5:88"},"nativeSrc":"2313:9:88","nodeType":"YulFunctionCall","src":"2313:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"2303:6:88","nodeType":"YulIdentifier","src":"2303:6:88"}]},{"nativeSrc":"2331:60:88","nodeType":"YulVariableDeclaration","src":"2331:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"2353:6:88","nodeType":"YulIdentifier","src":"2353:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"2369:6:88","nodeType":"YulIdentifier","src":"2369:6:88"},{"kind":"number","nativeSrc":"2377:2:88","nodeType":"YulLiteral","src":"2377:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2365:3:88","nodeType":"YulIdentifier","src":"2365:3:88"},"nativeSrc":"2365:15:88","nodeType":"YulFunctionCall","src":"2365:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2386:2:88","nodeType":"YulLiteral","src":"2386:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2382:3:88","nodeType":"YulIdentifier","src":"2382:3:88"},"nativeSrc":"2382:7:88","nodeType":"YulFunctionCall","src":"2382:7:88"}],"functionName":{"name":"and","nativeSrc":"2361:3:88","nodeType":"YulIdentifier","src":"2361:3:88"},"nativeSrc":"2361:29:88","nodeType":"YulFunctionCall","src":"2361:29:88"}],"functionName":{"name":"add","nativeSrc":"2349:3:88","nodeType":"YulIdentifier","src":"2349:3:88"},"nativeSrc":"2349:42:88","nodeType":"YulFunctionCall","src":"2349:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"2335:10:88","nodeType":"YulTypedName","src":"2335:10:88","type":""}]},{"body":{"nativeSrc":"2466:22:88","nodeType":"YulBlock","src":"2466:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2468:16:88","nodeType":"YulIdentifier","src":"2468:16:88"},"nativeSrc":"2468:18:88","nodeType":"YulFunctionCall","src":"2468:18:88"},"nativeSrc":"2468:18:88","nodeType":"YulExpressionStatement","src":"2468:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2409:10:88","nodeType":"YulIdentifier","src":"2409:10:88"},{"kind":"number","nativeSrc":"2421:18:88","nodeType":"YulLiteral","src":"2421:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2406:2:88","nodeType":"YulIdentifier","src":"2406:2:88"},"nativeSrc":"2406:34:88","nodeType":"YulFunctionCall","src":"2406:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2445:10:88","nodeType":"YulIdentifier","src":"2445:10:88"},{"name":"memPtr","nativeSrc":"2457:6:88","nodeType":"YulIdentifier","src":"2457:6:88"}],"functionName":{"name":"lt","nativeSrc":"2442:2:88","nodeType":"YulIdentifier","src":"2442:2:88"},"nativeSrc":"2442:22:88","nodeType":"YulFunctionCall","src":"2442:22:88"}],"functionName":{"name":"or","nativeSrc":"2403:2:88","nodeType":"YulIdentifier","src":"2403:2:88"},"nativeSrc":"2403:62:88","nodeType":"YulFunctionCall","src":"2403:62:88"},"nativeSrc":"2400:88:88","nodeType":"YulIf","src":"2400:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2504:2:88","nodeType":"YulLiteral","src":"2504:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2508:10:88","nodeType":"YulIdentifier","src":"2508:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2497:6:88","nodeType":"YulIdentifier","src":"2497:6:88"},"nativeSrc":"2497:22:88","nodeType":"YulFunctionCall","src":"2497:22:88"},"nativeSrc":"2497:22:88","nodeType":"YulExpressionStatement","src":"2497:22:88"},{"nativeSrc":"2528:15:88","nodeType":"YulAssignment","src":"2528:15:88","value":{"name":"memPtr","nativeSrc":"2537:6:88","nodeType":"YulIdentifier","src":"2537:6:88"},"variableNames":[{"name":"array","nativeSrc":"2528:5:88","nodeType":"YulIdentifier","src":"2528:5:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2559:6:88","nodeType":"YulIdentifier","src":"2559:6:88"},{"name":"length","nativeSrc":"2567:6:88","nodeType":"YulIdentifier","src":"2567:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2552:6:88","nodeType":"YulIdentifier","src":"2552:6:88"},"nativeSrc":"2552:22:88","nodeType":"YulFunctionCall","src":"2552:22:88"},"nativeSrc":"2552:22:88","nodeType":"YulExpressionStatement","src":"2552:22:88"},{"body":{"nativeSrc":"2612:16:88","nodeType":"YulBlock","src":"2612:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2621:1:88","nodeType":"YulLiteral","src":"2621:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2624:1:88","nodeType":"YulLiteral","src":"2624:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2614:6:88","nodeType":"YulIdentifier","src":"2614:6:88"},"nativeSrc":"2614:12:88","nodeType":"YulFunctionCall","src":"2614:12:88"},"nativeSrc":"2614:12:88","nodeType":"YulExpressionStatement","src":"2614:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2593:3:88","nodeType":"YulIdentifier","src":"2593:3:88"},{"name":"length","nativeSrc":"2598:6:88","nodeType":"YulIdentifier","src":"2598:6:88"}],"functionName":{"name":"add","nativeSrc":"2589:3:88","nodeType":"YulIdentifier","src":"2589:3:88"},"nativeSrc":"2589:16:88","nodeType":"YulFunctionCall","src":"2589:16:88"},{"name":"end","nativeSrc":"2607:3:88","nodeType":"YulIdentifier","src":"2607:3:88"}],"functionName":{"name":"gt","nativeSrc":"2586:2:88","nodeType":"YulIdentifier","src":"2586:2:88"},"nativeSrc":"2586:25:88","nodeType":"YulFunctionCall","src":"2586:25:88"},"nativeSrc":"2583:45:88","nodeType":"YulIf","src":"2583:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2654:6:88","nodeType":"YulIdentifier","src":"2654:6:88"},{"kind":"number","nativeSrc":"2662:4:88","nodeType":"YulLiteral","src":"2662:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2650:3:88","nodeType":"YulIdentifier","src":"2650:3:88"},"nativeSrc":"2650:17:88","nodeType":"YulFunctionCall","src":"2650:17:88"},{"name":"src","nativeSrc":"2669:3:88","nodeType":"YulIdentifier","src":"2669:3:88"},{"name":"length","nativeSrc":"2674:6:88","nodeType":"YulIdentifier","src":"2674:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"2637:12:88","nodeType":"YulIdentifier","src":"2637:12:88"},"nativeSrc":"2637:44:88","nodeType":"YulFunctionCall","src":"2637:44:88"},"nativeSrc":"2637:44:88","nodeType":"YulExpressionStatement","src":"2637:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2705:6:88","nodeType":"YulIdentifier","src":"2705:6:88"},{"name":"length","nativeSrc":"2713:6:88","nodeType":"YulIdentifier","src":"2713:6:88"}],"functionName":{"name":"add","nativeSrc":"2701:3:88","nodeType":"YulIdentifier","src":"2701:3:88"},"nativeSrc":"2701:19:88","nodeType":"YulFunctionCall","src":"2701:19:88"},{"kind":"number","nativeSrc":"2722:4:88","nodeType":"YulLiteral","src":"2722:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2697:3:88","nodeType":"YulIdentifier","src":"2697:3:88"},"nativeSrc":"2697:30:88","nodeType":"YulFunctionCall","src":"2697:30:88"},{"kind":"number","nativeSrc":"2729:1:88","nodeType":"YulLiteral","src":"2729:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2690:6:88","nodeType":"YulIdentifier","src":"2690:6:88"},"nativeSrc":"2690:41:88","nodeType":"YulFunctionCall","src":"2690:41:88"},"nativeSrc":"2690:41:88","nodeType":"YulExpressionStatement","src":"2690:41:88"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"2022:715:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2065:3:88","nodeType":"YulTypedName","src":"2065:3:88","type":""},{"name":"length","nativeSrc":"2070:6:88","nodeType":"YulTypedName","src":"2070:6:88","type":""},{"name":"end","nativeSrc":"2078:3:88","nodeType":"YulTypedName","src":"2078:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2086:5:88","nodeType":"YulTypedName","src":"2086:5:88","type":""}],"src":"2022:715:88"},{"body":{"nativeSrc":"2838:488:88","nodeType":"YulBlock","src":"2838:488:88","statements":[{"body":{"nativeSrc":"2884:16:88","nodeType":"YulBlock","src":"2884:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2893:1:88","nodeType":"YulLiteral","src":"2893:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2896:1:88","nodeType":"YulLiteral","src":"2896:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2886:6:88","nodeType":"YulIdentifier","src":"2886:6:88"},"nativeSrc":"2886:12:88","nodeType":"YulFunctionCall","src":"2886:12:88"},"nativeSrc":"2886:12:88","nodeType":"YulExpressionStatement","src":"2886:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2859:7:88","nodeType":"YulIdentifier","src":"2859:7:88"},{"name":"headStart","nativeSrc":"2868:9:88","nodeType":"YulIdentifier","src":"2868:9:88"}],"functionName":{"name":"sub","nativeSrc":"2855:3:88","nodeType":"YulIdentifier","src":"2855:3:88"},"nativeSrc":"2855:23:88","nodeType":"YulFunctionCall","src":"2855:23:88"},{"kind":"number","nativeSrc":"2880:2:88","nodeType":"YulLiteral","src":"2880:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2851:3:88","nodeType":"YulIdentifier","src":"2851:3:88"},"nativeSrc":"2851:32:88","nodeType":"YulFunctionCall","src":"2851:32:88"},"nativeSrc":"2848:52:88","nodeType":"YulIf","src":"2848:52:88"},{"nativeSrc":"2909:36:88","nodeType":"YulVariableDeclaration","src":"2909:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2935:9:88","nodeType":"YulIdentifier","src":"2935:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2922:12:88","nodeType":"YulIdentifier","src":"2922:12:88"},"nativeSrc":"2922:23:88","nodeType":"YulFunctionCall","src":"2922:23:88"},"variables":[{"name":"value","nativeSrc":"2913:5:88","nodeType":"YulTypedName","src":"2913:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2979:5:88","nodeType":"YulIdentifier","src":"2979:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2954:24:88","nodeType":"YulIdentifier","src":"2954:24:88"},"nativeSrc":"2954:31:88","nodeType":"YulFunctionCall","src":"2954:31:88"},"nativeSrc":"2954:31:88","nodeType":"YulExpressionStatement","src":"2954:31:88"},{"nativeSrc":"2994:15:88","nodeType":"YulAssignment","src":"2994:15:88","value":{"name":"value","nativeSrc":"3004:5:88","nodeType":"YulIdentifier","src":"3004:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2994:6:88","nodeType":"YulIdentifier","src":"2994:6:88"}]},{"nativeSrc":"3018:46:88","nodeType":"YulVariableDeclaration","src":"3018:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3049:9:88","nodeType":"YulIdentifier","src":"3049:9:88"},{"kind":"number","nativeSrc":"3060:2:88","nodeType":"YulLiteral","src":"3060:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3045:3:88","nodeType":"YulIdentifier","src":"3045:3:88"},"nativeSrc":"3045:18:88","nodeType":"YulFunctionCall","src":"3045:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3032:12:88","nodeType":"YulIdentifier","src":"3032:12:88"},"nativeSrc":"3032:32:88","nodeType":"YulFunctionCall","src":"3032:32:88"},"variables":[{"name":"offset","nativeSrc":"3022:6:88","nodeType":"YulTypedName","src":"3022:6:88","type":""}]},{"body":{"nativeSrc":"3107:16:88","nodeType":"YulBlock","src":"3107:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3116:1:88","nodeType":"YulLiteral","src":"3116:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3119:1:88","nodeType":"YulLiteral","src":"3119:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3109:6:88","nodeType":"YulIdentifier","src":"3109:6:88"},"nativeSrc":"3109:12:88","nodeType":"YulFunctionCall","src":"3109:12:88"},"nativeSrc":"3109:12:88","nodeType":"YulExpressionStatement","src":"3109:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3079:6:88","nodeType":"YulIdentifier","src":"3079:6:88"},{"kind":"number","nativeSrc":"3087:18:88","nodeType":"YulLiteral","src":"3087:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3076:2:88","nodeType":"YulIdentifier","src":"3076:2:88"},"nativeSrc":"3076:30:88","nodeType":"YulFunctionCall","src":"3076:30:88"},"nativeSrc":"3073:50:88","nodeType":"YulIf","src":"3073:50:88"},{"nativeSrc":"3132:32:88","nodeType":"YulVariableDeclaration","src":"3132:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3146:9:88","nodeType":"YulIdentifier","src":"3146:9:88"},{"name":"offset","nativeSrc":"3157:6:88","nodeType":"YulIdentifier","src":"3157:6:88"}],"functionName":{"name":"add","nativeSrc":"3142:3:88","nodeType":"YulIdentifier","src":"3142:3:88"},"nativeSrc":"3142:22:88","nodeType":"YulFunctionCall","src":"3142:22:88"},"variables":[{"name":"_1","nativeSrc":"3136:2:88","nodeType":"YulTypedName","src":"3136:2:88","type":""}]},{"body":{"nativeSrc":"3212:16:88","nodeType":"YulBlock","src":"3212:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3221:1:88","nodeType":"YulLiteral","src":"3221:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3224:1:88","nodeType":"YulLiteral","src":"3224:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3214:6:88","nodeType":"YulIdentifier","src":"3214:6:88"},"nativeSrc":"3214:12:88","nodeType":"YulFunctionCall","src":"3214:12:88"},"nativeSrc":"3214:12:88","nodeType":"YulExpressionStatement","src":"3214:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3191:2:88","nodeType":"YulIdentifier","src":"3191:2:88"},{"kind":"number","nativeSrc":"3195:4:88","nodeType":"YulLiteral","src":"3195:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3187:3:88","nodeType":"YulIdentifier","src":"3187:3:88"},"nativeSrc":"3187:13:88","nodeType":"YulFunctionCall","src":"3187:13:88"},{"name":"dataEnd","nativeSrc":"3202:7:88","nodeType":"YulIdentifier","src":"3202:7:88"}],"functionName":{"name":"slt","nativeSrc":"3183:3:88","nodeType":"YulIdentifier","src":"3183:3:88"},"nativeSrc":"3183:27:88","nodeType":"YulFunctionCall","src":"3183:27:88"}],"functionName":{"name":"iszero","nativeSrc":"3176:6:88","nodeType":"YulIdentifier","src":"3176:6:88"},"nativeSrc":"3176:35:88","nodeType":"YulFunctionCall","src":"3176:35:88"},"nativeSrc":"3173:55:88","nodeType":"YulIf","src":"3173:55:88"},{"nativeSrc":"3237:83:88","nodeType":"YulAssignment","src":"3237:83:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"3285:2:88","nodeType":"YulIdentifier","src":"3285:2:88"},{"kind":"number","nativeSrc":"3289:2:88","nodeType":"YulLiteral","src":"3289:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3281:3:88","nodeType":"YulIdentifier","src":"3281:3:88"},"nativeSrc":"3281:11:88","nodeType":"YulFunctionCall","src":"3281:11:88"},{"arguments":[{"name":"_1","nativeSrc":"3307:2:88","nodeType":"YulIdentifier","src":"3307:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"3294:12:88","nodeType":"YulIdentifier","src":"3294:12:88"},"nativeSrc":"3294:16:88","nodeType":"YulFunctionCall","src":"3294:16:88"},{"name":"dataEnd","nativeSrc":"3312:7:88","nodeType":"YulIdentifier","src":"3312:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"3247:33:88","nodeType":"YulIdentifier","src":"3247:33:88"},"nativeSrc":"3247:73:88","nodeType":"YulFunctionCall","src":"3247:73:88"},"variableNames":[{"name":"value1","nativeSrc":"3237:6:88","nodeType":"YulIdentifier","src":"3237:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"2742:584:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2796:9:88","nodeType":"YulTypedName","src":"2796:9:88","type":""},{"name":"dataEnd","nativeSrc":"2807:7:88","nodeType":"YulTypedName","src":"2807:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2819:6:88","nodeType":"YulTypedName","src":"2819:6:88","type":""},{"name":"value1","nativeSrc":"2827:6:88","nodeType":"YulTypedName","src":"2827:6:88","type":""}],"src":"2742:584:88"},{"body":{"nativeSrc":"3432:102:88","nodeType":"YulBlock","src":"3432:102:88","statements":[{"nativeSrc":"3442:26:88","nodeType":"YulAssignment","src":"3442:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3454:9:88","nodeType":"YulIdentifier","src":"3454:9:88"},{"kind":"number","nativeSrc":"3465:2:88","nodeType":"YulLiteral","src":"3465:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3450:3:88","nodeType":"YulIdentifier","src":"3450:3:88"},"nativeSrc":"3450:18:88","nodeType":"YulFunctionCall","src":"3450:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3442:4:88","nodeType":"YulIdentifier","src":"3442:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3484:9:88","nodeType":"YulIdentifier","src":"3484:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3499:6:88","nodeType":"YulIdentifier","src":"3499:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3515:3:88","nodeType":"YulLiteral","src":"3515:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3520:1:88","nodeType":"YulLiteral","src":"3520:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3511:3:88","nodeType":"YulIdentifier","src":"3511:3:88"},"nativeSrc":"3511:11:88","nodeType":"YulFunctionCall","src":"3511:11:88"},{"kind":"number","nativeSrc":"3524:1:88","nodeType":"YulLiteral","src":"3524:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3507:3:88","nodeType":"YulIdentifier","src":"3507:3:88"},"nativeSrc":"3507:19:88","nodeType":"YulFunctionCall","src":"3507:19:88"}],"functionName":{"name":"and","nativeSrc":"3495:3:88","nodeType":"YulIdentifier","src":"3495:3:88"},"nativeSrc":"3495:32:88","nodeType":"YulFunctionCall","src":"3495:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3477:6:88","nodeType":"YulIdentifier","src":"3477:6:88"},"nativeSrc":"3477:51:88","nodeType":"YulFunctionCall","src":"3477:51:88"},"nativeSrc":"3477:51:88","nodeType":"YulExpressionStatement","src":"3477:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3331:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3401:9:88","nodeType":"YulTypedName","src":"3401:9:88","type":""},{"name":"value0","nativeSrc":"3412:6:88","nodeType":"YulTypedName","src":"3412:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3423:4:88","nodeType":"YulTypedName","src":"3423:4:88","type":""}],"src":"3331:203:88"},{"body":{"nativeSrc":"3640:76:88","nodeType":"YulBlock","src":"3640:76:88","statements":[{"nativeSrc":"3650:26:88","nodeType":"YulAssignment","src":"3650:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3662:9:88","nodeType":"YulIdentifier","src":"3662:9:88"},{"kind":"number","nativeSrc":"3673:2:88","nodeType":"YulLiteral","src":"3673:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3658:3:88","nodeType":"YulIdentifier","src":"3658:3:88"},"nativeSrc":"3658:18:88","nodeType":"YulFunctionCall","src":"3658:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3650:4:88","nodeType":"YulIdentifier","src":"3650:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3692:9:88","nodeType":"YulIdentifier","src":"3692:9:88"},{"name":"value0","nativeSrc":"3703:6:88","nodeType":"YulIdentifier","src":"3703:6:88"}],"functionName":{"name":"mstore","nativeSrc":"3685:6:88","nodeType":"YulIdentifier","src":"3685:6:88"},"nativeSrc":"3685:25:88","nodeType":"YulFunctionCall","src":"3685:25:88"},"nativeSrc":"3685:25:88","nodeType":"YulExpressionStatement","src":"3685:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"3539:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3609:9:88","nodeType":"YulTypedName","src":"3609:9:88","type":""},{"name":"value0","nativeSrc":"3620:6:88","nodeType":"YulTypedName","src":"3620:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3631:4:88","nodeType":"YulTypedName","src":"3631:4:88","type":""}],"src":"3539:177:88"},{"body":{"nativeSrc":"3835:270:88","nodeType":"YulBlock","src":"3835:270:88","statements":[{"nativeSrc":"3845:33:88","nodeType":"YulVariableDeclaration","src":"3845:33:88","value":{"arguments":[{"name":"dataEnd","nativeSrc":"3859:7:88","nodeType":"YulIdentifier","src":"3859:7:88"},{"name":"headStart","nativeSrc":"3868:9:88","nodeType":"YulIdentifier","src":"3868:9:88"}],"functionName":{"name":"sub","nativeSrc":"3855:3:88","nodeType":"YulIdentifier","src":"3855:3:88"},"nativeSrc":"3855:23:88","nodeType":"YulFunctionCall","src":"3855:23:88"},"variables":[{"name":"_1","nativeSrc":"3849:2:88","nodeType":"YulTypedName","src":"3849:2:88","type":""}]},{"body":{"nativeSrc":"3903:16:88","nodeType":"YulBlock","src":"3903:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3912:1:88","nodeType":"YulLiteral","src":"3912:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3915:1:88","nodeType":"YulLiteral","src":"3915:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3905:6:88","nodeType":"YulIdentifier","src":"3905:6:88"},"nativeSrc":"3905:12:88","nodeType":"YulFunctionCall","src":"3905:12:88"},"nativeSrc":"3905:12:88","nodeType":"YulExpressionStatement","src":"3905:12:88"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"3894:2:88","nodeType":"YulIdentifier","src":"3894:2:88"},{"kind":"number","nativeSrc":"3898:3:88","nodeType":"YulLiteral","src":"3898:3:88","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"3890:3:88","nodeType":"YulIdentifier","src":"3890:3:88"},"nativeSrc":"3890:12:88","nodeType":"YulFunctionCall","src":"3890:12:88"},"nativeSrc":"3887:32:88","nodeType":"YulIf","src":"3887:32:88"},{"nativeSrc":"3928:14:88","nodeType":"YulVariableDeclaration","src":"3928:14:88","value":{"kind":"number","nativeSrc":"3941:1:88","nodeType":"YulLiteral","src":"3941:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3932:5:88","nodeType":"YulTypedName","src":"3932:5:88","type":""}]},{"nativeSrc":"3951:32:88","nodeType":"YulAssignment","src":"3951:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3973:9:88","nodeType":"YulIdentifier","src":"3973:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3960:12:88","nodeType":"YulIdentifier","src":"3960:12:88"},"nativeSrc":"3960:23:88","nodeType":"YulFunctionCall","src":"3960:23:88"},"variableNames":[{"name":"value","nativeSrc":"3951:5:88","nodeType":"YulIdentifier","src":"3951:5:88"}]},{"nativeSrc":"3992:15:88","nodeType":"YulAssignment","src":"3992:15:88","value":{"name":"value","nativeSrc":"4002:5:88","nodeType":"YulIdentifier","src":"4002:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3992:6:88","nodeType":"YulIdentifier","src":"3992:6:88"}]},{"body":{"nativeSrc":"4046:16:88","nodeType":"YulBlock","src":"4046:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4055:1:88","nodeType":"YulLiteral","src":"4055:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4058:1:88","nodeType":"YulLiteral","src":"4058:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4048:6:88","nodeType":"YulIdentifier","src":"4048:6:88"},"nativeSrc":"4048:12:88","nodeType":"YulFunctionCall","src":"4048:12:88"},"nativeSrc":"4048:12:88","nodeType":"YulExpressionStatement","src":"4048:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4027:2:88","nodeType":"YulIdentifier","src":"4027:2:88"},{"arguments":[{"kind":"number","nativeSrc":"4035:2:88","nodeType":"YulLiteral","src":"4035:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4031:3:88","nodeType":"YulIdentifier","src":"4031:3:88"},"nativeSrc":"4031:7:88","nodeType":"YulFunctionCall","src":"4031:7:88"}],"functionName":{"name":"add","nativeSrc":"4023:3:88","nodeType":"YulIdentifier","src":"4023:3:88"},"nativeSrc":"4023:16:88","nodeType":"YulFunctionCall","src":"4023:16:88"},{"kind":"number","nativeSrc":"4041:3:88","nodeType":"YulLiteral","src":"4041:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"4019:3:88","nodeType":"YulIdentifier","src":"4019:3:88"},"nativeSrc":"4019:26:88","nodeType":"YulFunctionCall","src":"4019:26:88"},"nativeSrc":"4016:46:88","nodeType":"YulIf","src":"4016:46:88"},{"nativeSrc":"4071:28:88","nodeType":"YulAssignment","src":"4071:28:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4085:9:88","nodeType":"YulIdentifier","src":"4085:9:88"},{"kind":"number","nativeSrc":"4096:2:88","nodeType":"YulLiteral","src":"4096:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4081:3:88","nodeType":"YulIdentifier","src":"4081:3:88"},"nativeSrc":"4081:18:88","nodeType":"YulFunctionCall","src":"4081:18:88"},"variableNames":[{"name":"value1","nativeSrc":"4071:6:88","nodeType":"YulIdentifier","src":"4071:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr","nativeSrc":"3721:384:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3793:9:88","nodeType":"YulTypedName","src":"3793:9:88","type":""},{"name":"dataEnd","nativeSrc":"3804:7:88","nodeType":"YulTypedName","src":"3804:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3816:6:88","nodeType":"YulTypedName","src":"3816:6:88","type":""},{"name":"value1","nativeSrc":"3824:6:88","nodeType":"YulTypedName","src":"3824:6:88","type":""}],"src":"3721:384:88"},{"body":{"nativeSrc":"4211:76:88","nodeType":"YulBlock","src":"4211:76:88","statements":[{"nativeSrc":"4221:26:88","nodeType":"YulAssignment","src":"4221:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4233:9:88","nodeType":"YulIdentifier","src":"4233:9:88"},{"kind":"number","nativeSrc":"4244:2:88","nodeType":"YulLiteral","src":"4244:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4229:3:88","nodeType":"YulIdentifier","src":"4229:3:88"},"nativeSrc":"4229:18:88","nodeType":"YulFunctionCall","src":"4229:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4221:4:88","nodeType":"YulIdentifier","src":"4221:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4263:9:88","nodeType":"YulIdentifier","src":"4263:9:88"},{"name":"value0","nativeSrc":"4274:6:88","nodeType":"YulIdentifier","src":"4274:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4256:6:88","nodeType":"YulIdentifier","src":"4256:6:88"},"nativeSrc":"4256:25:88","nodeType":"YulFunctionCall","src":"4256:25:88"},"nativeSrc":"4256:25:88","nodeType":"YulExpressionStatement","src":"4256:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4110:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4180:9:88","nodeType":"YulTypedName","src":"4180:9:88","type":""},{"name":"value0","nativeSrc":"4191:6:88","nodeType":"YulTypedName","src":"4191:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4202:4:88","nodeType":"YulTypedName","src":"4202:4:88","type":""}],"src":"4110:177:88"},{"body":{"nativeSrc":"4474:1011:88","nodeType":"YulBlock","src":"4474:1011:88","statements":[{"body":{"nativeSrc":"4521:16:88","nodeType":"YulBlock","src":"4521:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4530:1:88","nodeType":"YulLiteral","src":"4530:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4533:1:88","nodeType":"YulLiteral","src":"4533:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4523:6:88","nodeType":"YulIdentifier","src":"4523:6:88"},"nativeSrc":"4523:12:88","nodeType":"YulFunctionCall","src":"4523:12:88"},"nativeSrc":"4523:12:88","nodeType":"YulExpressionStatement","src":"4523:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4495:7:88","nodeType":"YulIdentifier","src":"4495:7:88"},{"name":"headStart","nativeSrc":"4504:9:88","nodeType":"YulIdentifier","src":"4504:9:88"}],"functionName":{"name":"sub","nativeSrc":"4491:3:88","nodeType":"YulIdentifier","src":"4491:3:88"},"nativeSrc":"4491:23:88","nodeType":"YulFunctionCall","src":"4491:23:88"},{"kind":"number","nativeSrc":"4516:3:88","nodeType":"YulLiteral","src":"4516:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"4487:3:88","nodeType":"YulIdentifier","src":"4487:3:88"},"nativeSrc":"4487:33:88","nodeType":"YulFunctionCall","src":"4487:33:88"},"nativeSrc":"4484:53:88","nodeType":"YulIf","src":"4484:53:88"},{"nativeSrc":"4546:37:88","nodeType":"YulVariableDeclaration","src":"4546:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4573:9:88","nodeType":"YulIdentifier","src":"4573:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4560:12:88","nodeType":"YulIdentifier","src":"4560:12:88"},"nativeSrc":"4560:23:88","nodeType":"YulFunctionCall","src":"4560:23:88"},"variables":[{"name":"offset","nativeSrc":"4550:6:88","nodeType":"YulTypedName","src":"4550:6:88","type":""}]},{"body":{"nativeSrc":"4626:16:88","nodeType":"YulBlock","src":"4626:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4635:1:88","nodeType":"YulLiteral","src":"4635:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4638:1:88","nodeType":"YulLiteral","src":"4638:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4628:6:88","nodeType":"YulIdentifier","src":"4628:6:88"},"nativeSrc":"4628:12:88","nodeType":"YulFunctionCall","src":"4628:12:88"},"nativeSrc":"4628:12:88","nodeType":"YulExpressionStatement","src":"4628:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4598:6:88","nodeType":"YulIdentifier","src":"4598:6:88"},{"kind":"number","nativeSrc":"4606:18:88","nodeType":"YulLiteral","src":"4606:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4595:2:88","nodeType":"YulIdentifier","src":"4595:2:88"},"nativeSrc":"4595:30:88","nodeType":"YulFunctionCall","src":"4595:30:88"},"nativeSrc":"4592:50:88","nodeType":"YulIf","src":"4592:50:88"},{"nativeSrc":"4651:32:88","nodeType":"YulVariableDeclaration","src":"4651:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4665:9:88","nodeType":"YulIdentifier","src":"4665:9:88"},{"name":"offset","nativeSrc":"4676:6:88","nodeType":"YulIdentifier","src":"4676:6:88"}],"functionName":{"name":"add","nativeSrc":"4661:3:88","nodeType":"YulIdentifier","src":"4661:3:88"},"nativeSrc":"4661:22:88","nodeType":"YulFunctionCall","src":"4661:22:88"},"variables":[{"name":"_1","nativeSrc":"4655:2:88","nodeType":"YulTypedName","src":"4655:2:88","type":""}]},{"body":{"nativeSrc":"4731:16:88","nodeType":"YulBlock","src":"4731:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4740:1:88","nodeType":"YulLiteral","src":"4740:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4743:1:88","nodeType":"YulLiteral","src":"4743:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4733:6:88","nodeType":"YulIdentifier","src":"4733:6:88"},"nativeSrc":"4733:12:88","nodeType":"YulFunctionCall","src":"4733:12:88"},"nativeSrc":"4733:12:88","nodeType":"YulExpressionStatement","src":"4733:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4710:2:88","nodeType":"YulIdentifier","src":"4710:2:88"},{"kind":"number","nativeSrc":"4714:4:88","nodeType":"YulLiteral","src":"4714:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4706:3:88","nodeType":"YulIdentifier","src":"4706:3:88"},"nativeSrc":"4706:13:88","nodeType":"YulFunctionCall","src":"4706:13:88"},{"name":"dataEnd","nativeSrc":"4721:7:88","nodeType":"YulIdentifier","src":"4721:7:88"}],"functionName":{"name":"slt","nativeSrc":"4702:3:88","nodeType":"YulIdentifier","src":"4702:3:88"},"nativeSrc":"4702:27:88","nodeType":"YulFunctionCall","src":"4702:27:88"}],"functionName":{"name":"iszero","nativeSrc":"4695:6:88","nodeType":"YulIdentifier","src":"4695:6:88"},"nativeSrc":"4695:35:88","nodeType":"YulFunctionCall","src":"4695:35:88"},"nativeSrc":"4692:55:88","nodeType":"YulIf","src":"4692:55:88"},{"nativeSrc":"4756:85:88","nodeType":"YulAssignment","src":"4756:85:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4804:2:88","nodeType":"YulIdentifier","src":"4804:2:88"},{"kind":"number","nativeSrc":"4808:4:88","nodeType":"YulLiteral","src":"4808:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4800:3:88","nodeType":"YulIdentifier","src":"4800:3:88"},"nativeSrc":"4800:13:88","nodeType":"YulFunctionCall","src":"4800:13:88"},{"arguments":[{"name":"_1","nativeSrc":"4828:2:88","nodeType":"YulIdentifier","src":"4828:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"4815:12:88","nodeType":"YulIdentifier","src":"4815:12:88"},"nativeSrc":"4815:16:88","nodeType":"YulFunctionCall","src":"4815:16:88"},{"name":"dataEnd","nativeSrc":"4833:7:88","nodeType":"YulIdentifier","src":"4833:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"4766:33:88","nodeType":"YulIdentifier","src":"4766:33:88"},"nativeSrc":"4766:75:88","nodeType":"YulFunctionCall","src":"4766:75:88"},"variableNames":[{"name":"value0","nativeSrc":"4756:6:88","nodeType":"YulIdentifier","src":"4756:6:88"}]},{"nativeSrc":"4850:14:88","nodeType":"YulVariableDeclaration","src":"4850:14:88","value":{"kind":"number","nativeSrc":"4863:1:88","nodeType":"YulLiteral","src":"4863:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4854:5:88","nodeType":"YulTypedName","src":"4854:5:88","type":""}]},{"nativeSrc":"4873:43:88","nodeType":"YulAssignment","src":"4873:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4899:9:88","nodeType":"YulIdentifier","src":"4899:9:88"},{"kind":"number","nativeSrc":"4910:4:88","nodeType":"YulLiteral","src":"4910:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4895:3:88","nodeType":"YulIdentifier","src":"4895:3:88"},"nativeSrc":"4895:20:88","nodeType":"YulFunctionCall","src":"4895:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"4882:12:88","nodeType":"YulIdentifier","src":"4882:12:88"},"nativeSrc":"4882:34:88","nodeType":"YulFunctionCall","src":"4882:34:88"},"variableNames":[{"name":"value","nativeSrc":"4873:5:88","nodeType":"YulIdentifier","src":"4873:5:88"}]},{"nativeSrc":"4925:15:88","nodeType":"YulAssignment","src":"4925:15:88","value":{"name":"value","nativeSrc":"4935:5:88","nodeType":"YulIdentifier","src":"4935:5:88"},"variableNames":[{"name":"value1","nativeSrc":"4925:6:88","nodeType":"YulIdentifier","src":"4925:6:88"}]},{"nativeSrc":"4949:16:88","nodeType":"YulVariableDeclaration","src":"4949:16:88","value":{"kind":"number","nativeSrc":"4964:1:88","nodeType":"YulLiteral","src":"4964:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"4953:7:88","nodeType":"YulTypedName","src":"4953:7:88","type":""}]},{"nativeSrc":"4974:43:88","nodeType":"YulAssignment","src":"4974:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5002:9:88","nodeType":"YulIdentifier","src":"5002:9:88"},{"kind":"number","nativeSrc":"5013:2:88","nodeType":"YulLiteral","src":"5013:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4998:3:88","nodeType":"YulIdentifier","src":"4998:3:88"},"nativeSrc":"4998:18:88","nodeType":"YulFunctionCall","src":"4998:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4985:12:88","nodeType":"YulIdentifier","src":"4985:12:88"},"nativeSrc":"4985:32:88","nodeType":"YulFunctionCall","src":"4985:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"4974:7:88","nodeType":"YulIdentifier","src":"4974:7:88"}]},{"nativeSrc":"5026:17:88","nodeType":"YulAssignment","src":"5026:17:88","value":{"name":"value_1","nativeSrc":"5036:7:88","nodeType":"YulIdentifier","src":"5036:7:88"},"variableNames":[{"name":"value2","nativeSrc":"5026:6:88","nodeType":"YulIdentifier","src":"5026:6:88"}]},{"nativeSrc":"5052:16:88","nodeType":"YulVariableDeclaration","src":"5052:16:88","value":{"kind":"number","nativeSrc":"5067:1:88","nodeType":"YulLiteral","src":"5067:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"5056:7:88","nodeType":"YulTypedName","src":"5056:7:88","type":""}]},{"nativeSrc":"5077:43:88","nodeType":"YulAssignment","src":"5077:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5105:9:88","nodeType":"YulIdentifier","src":"5105:9:88"},{"kind":"number","nativeSrc":"5116:2:88","nodeType":"YulLiteral","src":"5116:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5101:3:88","nodeType":"YulIdentifier","src":"5101:3:88"},"nativeSrc":"5101:18:88","nodeType":"YulFunctionCall","src":"5101:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5088:12:88","nodeType":"YulIdentifier","src":"5088:12:88"},"nativeSrc":"5088:32:88","nodeType":"YulFunctionCall","src":"5088:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"5077:7:88","nodeType":"YulIdentifier","src":"5077:7:88"}]},{"nativeSrc":"5129:17:88","nodeType":"YulAssignment","src":"5129:17:88","value":{"name":"value_2","nativeSrc":"5139:7:88","nodeType":"YulIdentifier","src":"5139:7:88"},"variableNames":[{"name":"value3","nativeSrc":"5129:6:88","nodeType":"YulIdentifier","src":"5129:6:88"}]},{"nativeSrc":"5155:16:88","nodeType":"YulVariableDeclaration","src":"5155:16:88","value":{"kind":"number","nativeSrc":"5170:1:88","nodeType":"YulLiteral","src":"5170:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"5159:7:88","nodeType":"YulTypedName","src":"5159:7:88","type":""}]},{"nativeSrc":"5180:44:88","nodeType":"YulAssignment","src":"5180:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5208:9:88","nodeType":"YulIdentifier","src":"5208:9:88"},{"kind":"number","nativeSrc":"5219:3:88","nodeType":"YulLiteral","src":"5219:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5204:3:88","nodeType":"YulIdentifier","src":"5204:3:88"},"nativeSrc":"5204:19:88","nodeType":"YulFunctionCall","src":"5204:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"5191:12:88","nodeType":"YulIdentifier","src":"5191:12:88"},"nativeSrc":"5191:33:88","nodeType":"YulFunctionCall","src":"5191:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"5180:7:88","nodeType":"YulIdentifier","src":"5180:7:88"}]},{"nativeSrc":"5233:17:88","nodeType":"YulAssignment","src":"5233:17:88","value":{"name":"value_3","nativeSrc":"5243:7:88","nodeType":"YulIdentifier","src":"5243:7:88"},"variableNames":[{"name":"value4","nativeSrc":"5233:6:88","nodeType":"YulIdentifier","src":"5233:6:88"}]},{"nativeSrc":"5259:16:88","nodeType":"YulVariableDeclaration","src":"5259:16:88","value":{"kind":"number","nativeSrc":"5274:1:88","nodeType":"YulLiteral","src":"5274:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"5263:7:88","nodeType":"YulTypedName","src":"5263:7:88","type":""}]},{"nativeSrc":"5284:44:88","nodeType":"YulAssignment","src":"5284:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5312:9:88","nodeType":"YulIdentifier","src":"5312:9:88"},{"kind":"number","nativeSrc":"5323:3:88","nodeType":"YulLiteral","src":"5323:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5308:3:88","nodeType":"YulIdentifier","src":"5308:3:88"},"nativeSrc":"5308:19:88","nodeType":"YulFunctionCall","src":"5308:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"5295:12:88","nodeType":"YulIdentifier","src":"5295:12:88"},"nativeSrc":"5295:33:88","nodeType":"YulFunctionCall","src":"5295:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"5284:7:88","nodeType":"YulIdentifier","src":"5284:7:88"}]},{"nativeSrc":"5337:17:88","nodeType":"YulAssignment","src":"5337:17:88","value":{"name":"value_4","nativeSrc":"5347:7:88","nodeType":"YulIdentifier","src":"5347:7:88"},"variableNames":[{"name":"value5","nativeSrc":"5337:6:88","nodeType":"YulIdentifier","src":"5337:6:88"}]},{"nativeSrc":"5363:48:88","nodeType":"YulVariableDeclaration","src":"5363:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5395:9:88","nodeType":"YulIdentifier","src":"5395:9:88"},{"kind":"number","nativeSrc":"5406:3:88","nodeType":"YulLiteral","src":"5406:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"5391:3:88","nodeType":"YulIdentifier","src":"5391:3:88"},"nativeSrc":"5391:19:88","nodeType":"YulFunctionCall","src":"5391:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"5378:12:88","nodeType":"YulIdentifier","src":"5378:12:88"},"nativeSrc":"5378:33:88","nodeType":"YulFunctionCall","src":"5378:33:88"},"variables":[{"name":"value_5","nativeSrc":"5367:7:88","nodeType":"YulTypedName","src":"5367:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"5445:7:88","nodeType":"YulIdentifier","src":"5445:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5420:24:88","nodeType":"YulIdentifier","src":"5420:24:88"},"nativeSrc":"5420:33:88","nodeType":"YulFunctionCall","src":"5420:33:88"},"nativeSrc":"5420:33:88","nodeType":"YulExpressionStatement","src":"5420:33:88"},{"nativeSrc":"5462:17:88","nodeType":"YulAssignment","src":"5462:17:88","value":{"name":"value_5","nativeSrc":"5472:7:88","nodeType":"YulIdentifier","src":"5472:7:88"},"variableNames":[{"name":"value6","nativeSrc":"5462:6:88","nodeType":"YulIdentifier","src":"5462:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address","nativeSrc":"4292:1193:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4392:9:88","nodeType":"YulTypedName","src":"4392:9:88","type":""},{"name":"dataEnd","nativeSrc":"4403:7:88","nodeType":"YulTypedName","src":"4403:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4415:6:88","nodeType":"YulTypedName","src":"4415:6:88","type":""},{"name":"value1","nativeSrc":"4423:6:88","nodeType":"YulTypedName","src":"4423:6:88","type":""},{"name":"value2","nativeSrc":"4431:6:88","nodeType":"YulTypedName","src":"4431:6:88","type":""},{"name":"value3","nativeSrc":"4439:6:88","nodeType":"YulTypedName","src":"4439:6:88","type":""},{"name":"value4","nativeSrc":"4447:6:88","nodeType":"YulTypedName","src":"4447:6:88","type":""},{"name":"value5","nativeSrc":"4455:6:88","nodeType":"YulTypedName","src":"4455:6:88","type":""},{"name":"value6","nativeSrc":"4463:6:88","nodeType":"YulTypedName","src":"4463:6:88","type":""}],"src":"4292:1193:88"},{"body":{"nativeSrc":"5617:102:88","nodeType":"YulBlock","src":"5617:102:88","statements":[{"nativeSrc":"5627:26:88","nodeType":"YulAssignment","src":"5627:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5639:9:88","nodeType":"YulIdentifier","src":"5639:9:88"},{"kind":"number","nativeSrc":"5650:2:88","nodeType":"YulLiteral","src":"5650:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5635:3:88","nodeType":"YulIdentifier","src":"5635:3:88"},"nativeSrc":"5635:18:88","nodeType":"YulFunctionCall","src":"5635:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5627:4:88","nodeType":"YulIdentifier","src":"5627:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5669:9:88","nodeType":"YulIdentifier","src":"5669:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5684:6:88","nodeType":"YulIdentifier","src":"5684:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5700:3:88","nodeType":"YulLiteral","src":"5700:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5705:1:88","nodeType":"YulLiteral","src":"5705:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5696:3:88","nodeType":"YulIdentifier","src":"5696:3:88"},"nativeSrc":"5696:11:88","nodeType":"YulFunctionCall","src":"5696:11:88"},{"kind":"number","nativeSrc":"5709:1:88","nodeType":"YulLiteral","src":"5709:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5692:3:88","nodeType":"YulIdentifier","src":"5692:3:88"},"nativeSrc":"5692:19:88","nodeType":"YulFunctionCall","src":"5692:19:88"}],"functionName":{"name":"and","nativeSrc":"5680:3:88","nodeType":"YulIdentifier","src":"5680:3:88"},"nativeSrc":"5680:32:88","nodeType":"YulFunctionCall","src":"5680:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5662:6:88","nodeType":"YulIdentifier","src":"5662:6:88"},"nativeSrc":"5662:51:88","nodeType":"YulFunctionCall","src":"5662:51:88"},"nativeSrc":"5662:51:88","nodeType":"YulExpressionStatement","src":"5662:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed","nativeSrc":"5490:229:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5586:9:88","nodeType":"YulTypedName","src":"5586:9:88","type":""},{"name":"value0","nativeSrc":"5597:6:88","nodeType":"YulTypedName","src":"5597:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5608:4:88","nodeType":"YulTypedName","src":"5608:4:88","type":""}],"src":"5490:229:88"},{"body":{"nativeSrc":"5772:117:88","nodeType":"YulBlock","src":"5772:117:88","statements":[{"nativeSrc":"5782:29:88","nodeType":"YulAssignment","src":"5782:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"5804:6:88","nodeType":"YulIdentifier","src":"5804:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"5791:12:88","nodeType":"YulIdentifier","src":"5791:12:88"},"nativeSrc":"5791:20:88","nodeType":"YulFunctionCall","src":"5791:20:88"},"variableNames":[{"name":"value","nativeSrc":"5782:5:88","nodeType":"YulIdentifier","src":"5782:5:88"}]},{"body":{"nativeSrc":"5867:16:88","nodeType":"YulBlock","src":"5867:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5876:1:88","nodeType":"YulLiteral","src":"5876:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5879:1:88","nodeType":"YulLiteral","src":"5879:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5869:6:88","nodeType":"YulIdentifier","src":"5869:6:88"},"nativeSrc":"5869:12:88","nodeType":"YulFunctionCall","src":"5869:12:88"},"nativeSrc":"5869:12:88","nodeType":"YulExpressionStatement","src":"5869:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5833:5:88","nodeType":"YulIdentifier","src":"5833:5:88"},{"arguments":[{"name":"value","nativeSrc":"5844:5:88","nodeType":"YulIdentifier","src":"5844:5:88"},{"kind":"number","nativeSrc":"5851:12:88","nodeType":"YulLiteral","src":"5851:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"5840:3:88","nodeType":"YulIdentifier","src":"5840:3:88"},"nativeSrc":"5840:24:88","nodeType":"YulFunctionCall","src":"5840:24:88"}],"functionName":{"name":"eq","nativeSrc":"5830:2:88","nodeType":"YulIdentifier","src":"5830:2:88"},"nativeSrc":"5830:35:88","nodeType":"YulFunctionCall","src":"5830:35:88"}],"functionName":{"name":"iszero","nativeSrc":"5823:6:88","nodeType":"YulIdentifier","src":"5823:6:88"},"nativeSrc":"5823:43:88","nodeType":"YulFunctionCall","src":"5823:43:88"},"nativeSrc":"5820:63:88","nodeType":"YulIf","src":"5820:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"5724:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5751:6:88","nodeType":"YulTypedName","src":"5751:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5762:5:88","nodeType":"YulTypedName","src":"5762:5:88","type":""}],"src":"5724:165:88"},{"body":{"nativeSrc":"6115:1017:88","nodeType":"YulBlock","src":"6115:1017:88","statements":[{"body":{"nativeSrc":"6162:16:88","nodeType":"YulBlock","src":"6162:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6171:1:88","nodeType":"YulLiteral","src":"6171:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6174:1:88","nodeType":"YulLiteral","src":"6174:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6164:6:88","nodeType":"YulIdentifier","src":"6164:6:88"},"nativeSrc":"6164:12:88","nodeType":"YulFunctionCall","src":"6164:12:88"},"nativeSrc":"6164:12:88","nodeType":"YulExpressionStatement","src":"6164:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6136:7:88","nodeType":"YulIdentifier","src":"6136:7:88"},{"name":"headStart","nativeSrc":"6145:9:88","nodeType":"YulIdentifier","src":"6145:9:88"}],"functionName":{"name":"sub","nativeSrc":"6132:3:88","nodeType":"YulIdentifier","src":"6132:3:88"},"nativeSrc":"6132:23:88","nodeType":"YulFunctionCall","src":"6132:23:88"},{"kind":"number","nativeSrc":"6157:3:88","nodeType":"YulLiteral","src":"6157:3:88","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"6128:3:88","nodeType":"YulIdentifier","src":"6128:3:88"},"nativeSrc":"6128:33:88","nodeType":"YulFunctionCall","src":"6128:33:88"},"nativeSrc":"6125:53:88","nodeType":"YulIf","src":"6125:53:88"},{"nativeSrc":"6187:14:88","nodeType":"YulVariableDeclaration","src":"6187:14:88","value":{"kind":"number","nativeSrc":"6200:1:88","nodeType":"YulLiteral","src":"6200:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"6191:5:88","nodeType":"YulTypedName","src":"6191:5:88","type":""}]},{"nativeSrc":"6210:32:88","nodeType":"YulAssignment","src":"6210:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6232:9:88","nodeType":"YulIdentifier","src":"6232:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6219:12:88","nodeType":"YulIdentifier","src":"6219:12:88"},"nativeSrc":"6219:23:88","nodeType":"YulFunctionCall","src":"6219:23:88"},"variableNames":[{"name":"value","nativeSrc":"6210:5:88","nodeType":"YulIdentifier","src":"6210:5:88"}]},{"nativeSrc":"6251:15:88","nodeType":"YulAssignment","src":"6251:15:88","value":{"name":"value","nativeSrc":"6261:5:88","nodeType":"YulIdentifier","src":"6261:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6251:6:88","nodeType":"YulIdentifier","src":"6251:6:88"}]},{"nativeSrc":"6275:16:88","nodeType":"YulVariableDeclaration","src":"6275:16:88","value":{"kind":"number","nativeSrc":"6290:1:88","nodeType":"YulLiteral","src":"6290:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6279:7:88","nodeType":"YulTypedName","src":"6279:7:88","type":""}]},{"nativeSrc":"6300:43:88","nodeType":"YulAssignment","src":"6300:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6328:9:88","nodeType":"YulIdentifier","src":"6328:9:88"},{"kind":"number","nativeSrc":"6339:2:88","nodeType":"YulLiteral","src":"6339:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6324:3:88","nodeType":"YulIdentifier","src":"6324:3:88"},"nativeSrc":"6324:18:88","nodeType":"YulFunctionCall","src":"6324:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6311:12:88","nodeType":"YulIdentifier","src":"6311:12:88"},"nativeSrc":"6311:32:88","nodeType":"YulFunctionCall","src":"6311:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"6300:7:88","nodeType":"YulIdentifier","src":"6300:7:88"}]},{"nativeSrc":"6352:17:88","nodeType":"YulAssignment","src":"6352:17:88","value":{"name":"value_1","nativeSrc":"6362:7:88","nodeType":"YulIdentifier","src":"6362:7:88"},"variableNames":[{"name":"value1","nativeSrc":"6352:6:88","nodeType":"YulIdentifier","src":"6352:6:88"}]},{"nativeSrc":"6378:16:88","nodeType":"YulVariableDeclaration","src":"6378:16:88","value":{"kind":"number","nativeSrc":"6393:1:88","nodeType":"YulLiteral","src":"6393:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"6382:7:88","nodeType":"YulTypedName","src":"6382:7:88","type":""}]},{"nativeSrc":"6403:43:88","nodeType":"YulAssignment","src":"6403:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6431:9:88","nodeType":"YulIdentifier","src":"6431:9:88"},{"kind":"number","nativeSrc":"6442:2:88","nodeType":"YulLiteral","src":"6442:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6427:3:88","nodeType":"YulIdentifier","src":"6427:3:88"},"nativeSrc":"6427:18:88","nodeType":"YulFunctionCall","src":"6427:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6414:12:88","nodeType":"YulIdentifier","src":"6414:12:88"},"nativeSrc":"6414:32:88","nodeType":"YulFunctionCall","src":"6414:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"6403:7:88","nodeType":"YulIdentifier","src":"6403:7:88"}]},{"nativeSrc":"6455:17:88","nodeType":"YulAssignment","src":"6455:17:88","value":{"name":"value_2","nativeSrc":"6465:7:88","nodeType":"YulIdentifier","src":"6465:7:88"},"variableNames":[{"name":"value2","nativeSrc":"6455:6:88","nodeType":"YulIdentifier","src":"6455:6:88"}]},{"nativeSrc":"6481:47:88","nodeType":"YulAssignment","src":"6481:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6513:9:88","nodeType":"YulIdentifier","src":"6513:9:88"},{"kind":"number","nativeSrc":"6524:2:88","nodeType":"YulLiteral","src":"6524:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6509:3:88","nodeType":"YulIdentifier","src":"6509:3:88"},"nativeSrc":"6509:18:88","nodeType":"YulFunctionCall","src":"6509:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"6491:17:88","nodeType":"YulIdentifier","src":"6491:17:88"},"nativeSrc":"6491:37:88","nodeType":"YulFunctionCall","src":"6491:37:88"},"variableNames":[{"name":"value3","nativeSrc":"6481:6:88","nodeType":"YulIdentifier","src":"6481:6:88"}]},{"nativeSrc":"6537:48:88","nodeType":"YulVariableDeclaration","src":"6537:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6569:9:88","nodeType":"YulIdentifier","src":"6569:9:88"},{"kind":"number","nativeSrc":"6580:3:88","nodeType":"YulLiteral","src":"6580:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6565:3:88","nodeType":"YulIdentifier","src":"6565:3:88"},"nativeSrc":"6565:19:88","nodeType":"YulFunctionCall","src":"6565:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6552:12:88","nodeType":"YulIdentifier","src":"6552:12:88"},"nativeSrc":"6552:33:88","nodeType":"YulFunctionCall","src":"6552:33:88"},"variables":[{"name":"value_3","nativeSrc":"6541:7:88","nodeType":"YulTypedName","src":"6541:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"6619:7:88","nodeType":"YulIdentifier","src":"6619:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6594:24:88","nodeType":"YulIdentifier","src":"6594:24:88"},"nativeSrc":"6594:33:88","nodeType":"YulFunctionCall","src":"6594:33:88"},"nativeSrc":"6594:33:88","nodeType":"YulExpressionStatement","src":"6594:33:88"},{"nativeSrc":"6636:17:88","nodeType":"YulAssignment","src":"6636:17:88","value":{"name":"value_3","nativeSrc":"6646:7:88","nodeType":"YulIdentifier","src":"6646:7:88"},"variableNames":[{"name":"value4","nativeSrc":"6636:6:88","nodeType":"YulIdentifier","src":"6636:6:88"}]},{"nativeSrc":"6662:16:88","nodeType":"YulVariableDeclaration","src":"6662:16:88","value":{"kind":"number","nativeSrc":"6677:1:88","nodeType":"YulLiteral","src":"6677:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"6666:7:88","nodeType":"YulTypedName","src":"6666:7:88","type":""}]},{"nativeSrc":"6687:44:88","nodeType":"YulAssignment","src":"6687:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6715:9:88","nodeType":"YulIdentifier","src":"6715:9:88"},{"kind":"number","nativeSrc":"6726:3:88","nodeType":"YulLiteral","src":"6726:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6711:3:88","nodeType":"YulIdentifier","src":"6711:3:88"},"nativeSrc":"6711:19:88","nodeType":"YulFunctionCall","src":"6711:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6698:12:88","nodeType":"YulIdentifier","src":"6698:12:88"},"nativeSrc":"6698:33:88","nodeType":"YulFunctionCall","src":"6698:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"6687:7:88","nodeType":"YulIdentifier","src":"6687:7:88"}]},{"nativeSrc":"6740:17:88","nodeType":"YulAssignment","src":"6740:17:88","value":{"name":"value_4","nativeSrc":"6750:7:88","nodeType":"YulIdentifier","src":"6750:7:88"},"variableNames":[{"name":"value5","nativeSrc":"6740:6:88","nodeType":"YulIdentifier","src":"6740:6:88"}]},{"nativeSrc":"6766:16:88","nodeType":"YulVariableDeclaration","src":"6766:16:88","value":{"kind":"number","nativeSrc":"6781:1:88","nodeType":"YulLiteral","src":"6781:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"6770:7:88","nodeType":"YulTypedName","src":"6770:7:88","type":""}]},{"nativeSrc":"6791:44:88","nodeType":"YulAssignment","src":"6791:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6819:9:88","nodeType":"YulIdentifier","src":"6819:9:88"},{"kind":"number","nativeSrc":"6830:3:88","nodeType":"YulLiteral","src":"6830:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6815:3:88","nodeType":"YulIdentifier","src":"6815:3:88"},"nativeSrc":"6815:19:88","nodeType":"YulFunctionCall","src":"6815:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6802:12:88","nodeType":"YulIdentifier","src":"6802:12:88"},"nativeSrc":"6802:33:88","nodeType":"YulFunctionCall","src":"6802:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"6791:7:88","nodeType":"YulIdentifier","src":"6791:7:88"}]},{"nativeSrc":"6844:17:88","nodeType":"YulAssignment","src":"6844:17:88","value":{"name":"value_5","nativeSrc":"6854:7:88","nodeType":"YulIdentifier","src":"6854:7:88"},"variableNames":[{"name":"value6","nativeSrc":"6844:6:88","nodeType":"YulIdentifier","src":"6844:6:88"}]},{"nativeSrc":"6870:16:88","nodeType":"YulVariableDeclaration","src":"6870:16:88","value":{"kind":"number","nativeSrc":"6885:1:88","nodeType":"YulLiteral","src":"6885:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"6874:7:88","nodeType":"YulTypedName","src":"6874:7:88","type":""}]},{"nativeSrc":"6895:44:88","nodeType":"YulAssignment","src":"6895:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6923:9:88","nodeType":"YulIdentifier","src":"6923:9:88"},{"kind":"number","nativeSrc":"6934:3:88","nodeType":"YulLiteral","src":"6934:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"6919:3:88","nodeType":"YulIdentifier","src":"6919:3:88"},"nativeSrc":"6919:19:88","nodeType":"YulFunctionCall","src":"6919:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6906:12:88","nodeType":"YulIdentifier","src":"6906:12:88"},"nativeSrc":"6906:33:88","nodeType":"YulFunctionCall","src":"6906:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"6895:7:88","nodeType":"YulIdentifier","src":"6895:7:88"}]},{"nativeSrc":"6948:17:88","nodeType":"YulAssignment","src":"6948:17:88","value":{"name":"value_6","nativeSrc":"6958:7:88","nodeType":"YulIdentifier","src":"6958:7:88"},"variableNames":[{"name":"value7","nativeSrc":"6948:6:88","nodeType":"YulIdentifier","src":"6948:6:88"}]},{"nativeSrc":"6974:16:88","nodeType":"YulVariableDeclaration","src":"6974:16:88","value":{"kind":"number","nativeSrc":"6989:1:88","nodeType":"YulLiteral","src":"6989:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"6978:7:88","nodeType":"YulTypedName","src":"6978:7:88","type":""}]},{"nativeSrc":"6999:44:88","nodeType":"YulAssignment","src":"6999:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7027:9:88","nodeType":"YulIdentifier","src":"7027:9:88"},{"kind":"number","nativeSrc":"7038:3:88","nodeType":"YulLiteral","src":"7038:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"7023:3:88","nodeType":"YulIdentifier","src":"7023:3:88"},"nativeSrc":"7023:19:88","nodeType":"YulFunctionCall","src":"7023:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7010:12:88","nodeType":"YulIdentifier","src":"7010:12:88"},"nativeSrc":"7010:33:88","nodeType":"YulFunctionCall","src":"7010:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"6999:7:88","nodeType":"YulIdentifier","src":"6999:7:88"}]},{"nativeSrc":"7052:17:88","nodeType":"YulAssignment","src":"7052:17:88","value":{"name":"value_7","nativeSrc":"7062:7:88","nodeType":"YulIdentifier","src":"7062:7:88"},"variableNames":[{"name":"value8","nativeSrc":"7052:6:88","nodeType":"YulIdentifier","src":"7052:6:88"}]},{"nativeSrc":"7078:48:88","nodeType":"YulAssignment","src":"7078:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7110:9:88","nodeType":"YulIdentifier","src":"7110:9:88"},{"kind":"number","nativeSrc":"7121:3:88","nodeType":"YulLiteral","src":"7121:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"7106:3:88","nodeType":"YulIdentifier","src":"7106:3:88"},"nativeSrc":"7106:19:88","nodeType":"YulFunctionCall","src":"7106:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7088:17:88","nodeType":"YulIdentifier","src":"7088:17:88"},"nativeSrc":"7088:38:88","nodeType":"YulFunctionCall","src":"7088:38:88"},"variableNames":[{"name":"value9","nativeSrc":"7078:6:88","nodeType":"YulIdentifier","src":"7078:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40","nativeSrc":"5894:1238:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6009:9:88","nodeType":"YulTypedName","src":"6009:9:88","type":""},{"name":"dataEnd","nativeSrc":"6020:7:88","nodeType":"YulTypedName","src":"6020:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6032:6:88","nodeType":"YulTypedName","src":"6032:6:88","type":""},{"name":"value1","nativeSrc":"6040:6:88","nodeType":"YulTypedName","src":"6040:6:88","type":""},{"name":"value2","nativeSrc":"6048:6:88","nodeType":"YulTypedName","src":"6048:6:88","type":""},{"name":"value3","nativeSrc":"6056:6:88","nodeType":"YulTypedName","src":"6056:6:88","type":""},{"name":"value4","nativeSrc":"6064:6:88","nodeType":"YulTypedName","src":"6064:6:88","type":""},{"name":"value5","nativeSrc":"6072:6:88","nodeType":"YulTypedName","src":"6072:6:88","type":""},{"name":"value6","nativeSrc":"6080:6:88","nodeType":"YulTypedName","src":"6080:6:88","type":""},{"name":"value7","nativeSrc":"6088:6:88","nodeType":"YulTypedName","src":"6088:6:88","type":""},{"name":"value8","nativeSrc":"6096:6:88","nodeType":"YulTypedName","src":"6096:6:88","type":""},{"name":"value9","nativeSrc":"6104:6:88","nodeType":"YulTypedName","src":"6104:6:88","type":""}],"src":"5894:1238:88"},{"body":{"nativeSrc":"7210:86:88","nodeType":"YulBlock","src":"7210:86:88","statements":[{"body":{"nativeSrc":"7250:16:88","nodeType":"YulBlock","src":"7250:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7259:1:88","nodeType":"YulLiteral","src":"7259:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7262:1:88","nodeType":"YulLiteral","src":"7262:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7252:6:88","nodeType":"YulIdentifier","src":"7252:6:88"},"nativeSrc":"7252:12:88","nodeType":"YulFunctionCall","src":"7252:12:88"},"nativeSrc":"7252:12:88","nodeType":"YulExpressionStatement","src":"7252:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7231:3:88","nodeType":"YulIdentifier","src":"7231:3:88"},{"name":"offset","nativeSrc":"7236:6:88","nodeType":"YulIdentifier","src":"7236:6:88"}],"functionName":{"name":"sub","nativeSrc":"7227:3:88","nodeType":"YulIdentifier","src":"7227:3:88"},"nativeSrc":"7227:16:88","nodeType":"YulFunctionCall","src":"7227:16:88"},{"kind":"number","nativeSrc":"7245:3:88","nodeType":"YulLiteral","src":"7245:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"7223:3:88","nodeType":"YulIdentifier","src":"7223:3:88"},"nativeSrc":"7223:26:88","nodeType":"YulFunctionCall","src":"7223:26:88"},"nativeSrc":"7220:46:88","nodeType":"YulIf","src":"7220:46:88"},{"nativeSrc":"7275:15:88","nodeType":"YulAssignment","src":"7275:15:88","value":{"name":"offset","nativeSrc":"7284:6:88","nodeType":"YulIdentifier","src":"7284:6:88"},"variableNames":[{"name":"value","nativeSrc":"7275:5:88","nodeType":"YulIdentifier","src":"7275:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"7137:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7184:6:88","nodeType":"YulTypedName","src":"7184:6:88","type":""},{"name":"end","nativeSrc":"7192:3:88","nodeType":"YulTypedName","src":"7192:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7200:5:88","nodeType":"YulTypedName","src":"7200:5:88","type":""}],"src":"7137:159:88"},{"body":{"nativeSrc":"7419:243:88","nodeType":"YulBlock","src":"7419:243:88","statements":[{"body":{"nativeSrc":"7466:16:88","nodeType":"YulBlock","src":"7466:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7475:1:88","nodeType":"YulLiteral","src":"7475:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7478:1:88","nodeType":"YulLiteral","src":"7478:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7468:6:88","nodeType":"YulIdentifier","src":"7468:6:88"},"nativeSrc":"7468:12:88","nodeType":"YulFunctionCall","src":"7468:12:88"},"nativeSrc":"7468:12:88","nodeType":"YulExpressionStatement","src":"7468:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7440:7:88","nodeType":"YulIdentifier","src":"7440:7:88"},{"name":"headStart","nativeSrc":"7449:9:88","nodeType":"YulIdentifier","src":"7449:9:88"}],"functionName":{"name":"sub","nativeSrc":"7436:3:88","nodeType":"YulIdentifier","src":"7436:3:88"},"nativeSrc":"7436:23:88","nodeType":"YulFunctionCall","src":"7436:23:88"},{"kind":"number","nativeSrc":"7461:3:88","nodeType":"YulLiteral","src":"7461:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"7432:3:88","nodeType":"YulIdentifier","src":"7432:3:88"},"nativeSrc":"7432:33:88","nodeType":"YulFunctionCall","src":"7432:33:88"},"nativeSrc":"7429:53:88","nodeType":"YulIf","src":"7429:53:88"},{"nativeSrc":"7491:67:88","nodeType":"YulAssignment","src":"7491:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7539:9:88","nodeType":"YulIdentifier","src":"7539:9:88"},{"name":"dataEnd","nativeSrc":"7550:7:88","nodeType":"YulIdentifier","src":"7550:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"7501:37:88","nodeType":"YulIdentifier","src":"7501:37:88"},"nativeSrc":"7501:57:88","nodeType":"YulFunctionCall","src":"7501:57:88"},"variableNames":[{"name":"value0","nativeSrc":"7491:6:88","nodeType":"YulIdentifier","src":"7491:6:88"}]},{"nativeSrc":"7567:14:88","nodeType":"YulVariableDeclaration","src":"7567:14:88","value":{"kind":"number","nativeSrc":"7580:1:88","nodeType":"YulLiteral","src":"7580:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7571:5:88","nodeType":"YulTypedName","src":"7571:5:88","type":""}]},{"nativeSrc":"7590:42:88","nodeType":"YulAssignment","src":"7590:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7616:9:88","nodeType":"YulIdentifier","src":"7616:9:88"},{"kind":"number","nativeSrc":"7627:3:88","nodeType":"YulLiteral","src":"7627:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"7612:3:88","nodeType":"YulIdentifier","src":"7612:3:88"},"nativeSrc":"7612:19:88","nodeType":"YulFunctionCall","src":"7612:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7599:12:88","nodeType":"YulIdentifier","src":"7599:12:88"},"nativeSrc":"7599:33:88","nodeType":"YulFunctionCall","src":"7599:33:88"},"variableNames":[{"name":"value","nativeSrc":"7590:5:88","nodeType":"YulIdentifier","src":"7590:5:88"}]},{"nativeSrc":"7641:15:88","nodeType":"YulAssignment","src":"7641:15:88","value":{"name":"value","nativeSrc":"7651:5:88","nodeType":"YulIdentifier","src":"7651:5:88"},"variableNames":[{"name":"value1","nativeSrc":"7641:6:88","nodeType":"YulIdentifier","src":"7641:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"7301:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7377:9:88","nodeType":"YulTypedName","src":"7377:9:88","type":""},{"name":"dataEnd","nativeSrc":"7388:7:88","nodeType":"YulTypedName","src":"7388:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7400:6:88","nodeType":"YulTypedName","src":"7400:6:88","type":""},{"name":"value1","nativeSrc":"7408:6:88","nodeType":"YulTypedName","src":"7408:6:88","type":""}],"src":"7301:361:88"},{"body":{"nativeSrc":"7919:981:88","nodeType":"YulBlock","src":"7919:981:88","statements":[{"body":{"nativeSrc":"7966:16:88","nodeType":"YulBlock","src":"7966:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7975:1:88","nodeType":"YulLiteral","src":"7975:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7978:1:88","nodeType":"YulLiteral","src":"7978:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7968:6:88","nodeType":"YulIdentifier","src":"7968:6:88"},"nativeSrc":"7968:12:88","nodeType":"YulFunctionCall","src":"7968:12:88"},"nativeSrc":"7968:12:88","nodeType":"YulExpressionStatement","src":"7968:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7940:7:88","nodeType":"YulIdentifier","src":"7940:7:88"},{"name":"headStart","nativeSrc":"7949:9:88","nodeType":"YulIdentifier","src":"7949:9:88"}],"functionName":{"name":"sub","nativeSrc":"7936:3:88","nodeType":"YulIdentifier","src":"7936:3:88"},"nativeSrc":"7936:23:88","nodeType":"YulFunctionCall","src":"7936:23:88"},{"kind":"number","nativeSrc":"7961:3:88","nodeType":"YulLiteral","src":"7961:3:88","type":"","value":"736"}],"functionName":{"name":"slt","nativeSrc":"7932:3:88","nodeType":"YulIdentifier","src":"7932:3:88"},"nativeSrc":"7932:33:88","nodeType":"YulFunctionCall","src":"7932:33:88"},"nativeSrc":"7929:53:88","nodeType":"YulIf","src":"7929:53:88"},{"nativeSrc":"7991:67:88","nodeType":"YulAssignment","src":"7991:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8039:9:88","nodeType":"YulIdentifier","src":"8039:9:88"},{"name":"dataEnd","nativeSrc":"8050:7:88","nodeType":"YulIdentifier","src":"8050:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"8001:37:88","nodeType":"YulIdentifier","src":"8001:37:88"},"nativeSrc":"8001:57:88","nodeType":"YulFunctionCall","src":"8001:57:88"},"variableNames":[{"name":"value0","nativeSrc":"7991:6:88","nodeType":"YulIdentifier","src":"7991:6:88"}]},{"nativeSrc":"8067:14:88","nodeType":"YulVariableDeclaration","src":"8067:14:88","value":{"kind":"number","nativeSrc":"8080:1:88","nodeType":"YulLiteral","src":"8080:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8071:5:88","nodeType":"YulTypedName","src":"8071:5:88","type":""}]},{"nativeSrc":"8090:42:88","nodeType":"YulAssignment","src":"8090:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8116:9:88","nodeType":"YulIdentifier","src":"8116:9:88"},{"kind":"number","nativeSrc":"8127:3:88","nodeType":"YulLiteral","src":"8127:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"8112:3:88","nodeType":"YulIdentifier","src":"8112:3:88"},"nativeSrc":"8112:19:88","nodeType":"YulFunctionCall","src":"8112:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8099:12:88","nodeType":"YulIdentifier","src":"8099:12:88"},"nativeSrc":"8099:33:88","nodeType":"YulFunctionCall","src":"8099:33:88"},"variableNames":[{"name":"value","nativeSrc":"8090:5:88","nodeType":"YulIdentifier","src":"8090:5:88"}]},{"nativeSrc":"8141:15:88","nodeType":"YulAssignment","src":"8141:15:88","value":{"name":"value","nativeSrc":"8151:5:88","nodeType":"YulIdentifier","src":"8151:5:88"},"variableNames":[{"name":"value1","nativeSrc":"8141:6:88","nodeType":"YulIdentifier","src":"8141:6:88"}]},{"nativeSrc":"8165:16:88","nodeType":"YulVariableDeclaration","src":"8165:16:88","value":{"kind":"number","nativeSrc":"8180:1:88","nodeType":"YulLiteral","src":"8180:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8169:7:88","nodeType":"YulTypedName","src":"8169:7:88","type":""}]},{"nativeSrc":"8190:44:88","nodeType":"YulAssignment","src":"8190:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8218:9:88","nodeType":"YulIdentifier","src":"8218:9:88"},{"kind":"number","nativeSrc":"8229:3:88","nodeType":"YulLiteral","src":"8229:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"8214:3:88","nodeType":"YulIdentifier","src":"8214:3:88"},"nativeSrc":"8214:19:88","nodeType":"YulFunctionCall","src":"8214:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8201:12:88","nodeType":"YulIdentifier","src":"8201:12:88"},"nativeSrc":"8201:33:88","nodeType":"YulFunctionCall","src":"8201:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"8190:7:88","nodeType":"YulIdentifier","src":"8190:7:88"}]},{"nativeSrc":"8243:17:88","nodeType":"YulAssignment","src":"8243:17:88","value":{"name":"value_1","nativeSrc":"8253:7:88","nodeType":"YulIdentifier","src":"8253:7:88"},"variableNames":[{"name":"value2","nativeSrc":"8243:6:88","nodeType":"YulIdentifier","src":"8243:6:88"}]},{"nativeSrc":"8269:16:88","nodeType":"YulVariableDeclaration","src":"8269:16:88","value":{"kind":"number","nativeSrc":"8284:1:88","nodeType":"YulLiteral","src":"8284:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"8273:7:88","nodeType":"YulTypedName","src":"8273:7:88","type":""}]},{"nativeSrc":"8294:44:88","nodeType":"YulAssignment","src":"8294:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8322:9:88","nodeType":"YulIdentifier","src":"8322:9:88"},{"kind":"number","nativeSrc":"8333:3:88","nodeType":"YulLiteral","src":"8333:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"8318:3:88","nodeType":"YulIdentifier","src":"8318:3:88"},"nativeSrc":"8318:19:88","nodeType":"YulFunctionCall","src":"8318:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8305:12:88","nodeType":"YulIdentifier","src":"8305:12:88"},"nativeSrc":"8305:33:88","nodeType":"YulFunctionCall","src":"8305:33:88"},"variableNames":[{"name":"value_2","nativeSrc":"8294:7:88","nodeType":"YulIdentifier","src":"8294:7:88"}]},{"nativeSrc":"8347:17:88","nodeType":"YulAssignment","src":"8347:17:88","value":{"name":"value_2","nativeSrc":"8357:7:88","nodeType":"YulIdentifier","src":"8357:7:88"},"variableNames":[{"name":"value3","nativeSrc":"8347:6:88","nodeType":"YulIdentifier","src":"8347:6:88"}]},{"nativeSrc":"8373:48:88","nodeType":"YulAssignment","src":"8373:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8405:9:88","nodeType":"YulIdentifier","src":"8405:9:88"},{"kind":"number","nativeSrc":"8416:3:88","nodeType":"YulLiteral","src":"8416:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"8401:3:88","nodeType":"YulIdentifier","src":"8401:3:88"},"nativeSrc":"8401:19:88","nodeType":"YulFunctionCall","src":"8401:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"8383:17:88","nodeType":"YulIdentifier","src":"8383:17:88"},"nativeSrc":"8383:38:88","nodeType":"YulFunctionCall","src":"8383:38:88"},"variableNames":[{"name":"value4","nativeSrc":"8373:6:88","nodeType":"YulIdentifier","src":"8373:6:88"}]},{"nativeSrc":"8430:16:88","nodeType":"YulVariableDeclaration","src":"8430:16:88","value":{"kind":"number","nativeSrc":"8445:1:88","nodeType":"YulLiteral","src":"8445:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"8434:7:88","nodeType":"YulTypedName","src":"8434:7:88","type":""}]},{"nativeSrc":"8455:44:88","nodeType":"YulAssignment","src":"8455:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8483:9:88","nodeType":"YulIdentifier","src":"8483:9:88"},{"kind":"number","nativeSrc":"8494:3:88","nodeType":"YulLiteral","src":"8494:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"8479:3:88","nodeType":"YulIdentifier","src":"8479:3:88"},"nativeSrc":"8479:19:88","nodeType":"YulFunctionCall","src":"8479:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8466:12:88","nodeType":"YulIdentifier","src":"8466:12:88"},"nativeSrc":"8466:33:88","nodeType":"YulFunctionCall","src":"8466:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"8455:7:88","nodeType":"YulIdentifier","src":"8455:7:88"}]},{"nativeSrc":"8508:17:88","nodeType":"YulAssignment","src":"8508:17:88","value":{"name":"value_3","nativeSrc":"8518:7:88","nodeType":"YulIdentifier","src":"8518:7:88"},"variableNames":[{"name":"value5","nativeSrc":"8508:6:88","nodeType":"YulIdentifier","src":"8508:6:88"}]},{"nativeSrc":"8534:16:88","nodeType":"YulVariableDeclaration","src":"8534:16:88","value":{"kind":"number","nativeSrc":"8549:1:88","nodeType":"YulLiteral","src":"8549:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"8538:7:88","nodeType":"YulTypedName","src":"8538:7:88","type":""}]},{"nativeSrc":"8559:44:88","nodeType":"YulAssignment","src":"8559:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8587:9:88","nodeType":"YulIdentifier","src":"8587:9:88"},{"kind":"number","nativeSrc":"8598:3:88","nodeType":"YulLiteral","src":"8598:3:88","type":"","value":"608"}],"functionName":{"name":"add","nativeSrc":"8583:3:88","nodeType":"YulIdentifier","src":"8583:3:88"},"nativeSrc":"8583:19:88","nodeType":"YulFunctionCall","src":"8583:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8570:12:88","nodeType":"YulIdentifier","src":"8570:12:88"},"nativeSrc":"8570:33:88","nodeType":"YulFunctionCall","src":"8570:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"8559:7:88","nodeType":"YulIdentifier","src":"8559:7:88"}]},{"nativeSrc":"8612:17:88","nodeType":"YulAssignment","src":"8612:17:88","value":{"name":"value_4","nativeSrc":"8622:7:88","nodeType":"YulIdentifier","src":"8622:7:88"},"variableNames":[{"name":"value6","nativeSrc":"8612:6:88","nodeType":"YulIdentifier","src":"8612:6:88"}]},{"nativeSrc":"8638:16:88","nodeType":"YulVariableDeclaration","src":"8638:16:88","value":{"kind":"number","nativeSrc":"8653:1:88","nodeType":"YulLiteral","src":"8653:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"8642:7:88","nodeType":"YulTypedName","src":"8642:7:88","type":""}]},{"nativeSrc":"8663:44:88","nodeType":"YulAssignment","src":"8663:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8691:9:88","nodeType":"YulIdentifier","src":"8691:9:88"},{"kind":"number","nativeSrc":"8702:3:88","nodeType":"YulLiteral","src":"8702:3:88","type":"","value":"640"}],"functionName":{"name":"add","nativeSrc":"8687:3:88","nodeType":"YulIdentifier","src":"8687:3:88"},"nativeSrc":"8687:19:88","nodeType":"YulFunctionCall","src":"8687:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8674:12:88","nodeType":"YulIdentifier","src":"8674:12:88"},"nativeSrc":"8674:33:88","nodeType":"YulFunctionCall","src":"8674:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"8663:7:88","nodeType":"YulIdentifier","src":"8663:7:88"}]},{"nativeSrc":"8716:17:88","nodeType":"YulAssignment","src":"8716:17:88","value":{"name":"value_5","nativeSrc":"8726:7:88","nodeType":"YulIdentifier","src":"8726:7:88"},"variableNames":[{"name":"value7","nativeSrc":"8716:6:88","nodeType":"YulIdentifier","src":"8716:6:88"}]},{"nativeSrc":"8742:16:88","nodeType":"YulVariableDeclaration","src":"8742:16:88","value":{"kind":"number","nativeSrc":"8757:1:88","nodeType":"YulLiteral","src":"8757:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"8746:7:88","nodeType":"YulTypedName","src":"8746:7:88","type":""}]},{"nativeSrc":"8767:44:88","nodeType":"YulAssignment","src":"8767:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8795:9:88","nodeType":"YulIdentifier","src":"8795:9:88"},{"kind":"number","nativeSrc":"8806:3:88","nodeType":"YulLiteral","src":"8806:3:88","type":"","value":"672"}],"functionName":{"name":"add","nativeSrc":"8791:3:88","nodeType":"YulIdentifier","src":"8791:3:88"},"nativeSrc":"8791:19:88","nodeType":"YulFunctionCall","src":"8791:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8778:12:88","nodeType":"YulIdentifier","src":"8778:12:88"},"nativeSrc":"8778:33:88","nodeType":"YulFunctionCall","src":"8778:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"8767:7:88","nodeType":"YulIdentifier","src":"8767:7:88"}]},{"nativeSrc":"8820:17:88","nodeType":"YulAssignment","src":"8820:17:88","value":{"name":"value_6","nativeSrc":"8830:7:88","nodeType":"YulIdentifier","src":"8830:7:88"},"variableNames":[{"name":"value8","nativeSrc":"8820:6:88","nodeType":"YulIdentifier","src":"8820:6:88"}]},{"nativeSrc":"8846:48:88","nodeType":"YulAssignment","src":"8846:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8878:9:88","nodeType":"YulIdentifier","src":"8878:9:88"},{"kind":"number","nativeSrc":"8889:3:88","nodeType":"YulLiteral","src":"8889:3:88","type":"","value":"704"}],"functionName":{"name":"add","nativeSrc":"8874:3:88","nodeType":"YulIdentifier","src":"8874:3:88"},"nativeSrc":"8874:19:88","nodeType":"YulFunctionCall","src":"8874:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"8856:17:88","nodeType":"YulIdentifier","src":"8856:17:88"},"nativeSrc":"8856:38:88","nodeType":"YulFunctionCall","src":"8856:38:88"},"variableNames":[{"name":"value9","nativeSrc":"8846:6:88","nodeType":"YulIdentifier","src":"8846:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40","nativeSrc":"7667:1233:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7813:9:88","nodeType":"YulTypedName","src":"7813:9:88","type":""},{"name":"dataEnd","nativeSrc":"7824:7:88","nodeType":"YulTypedName","src":"7824:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7836:6:88","nodeType":"YulTypedName","src":"7836:6:88","type":""},{"name":"value1","nativeSrc":"7844:6:88","nodeType":"YulTypedName","src":"7844:6:88","type":""},{"name":"value2","nativeSrc":"7852:6:88","nodeType":"YulTypedName","src":"7852:6:88","type":""},{"name":"value3","nativeSrc":"7860:6:88","nodeType":"YulTypedName","src":"7860:6:88","type":""},{"name":"value4","nativeSrc":"7868:6:88","nodeType":"YulTypedName","src":"7868:6:88","type":""},{"name":"value5","nativeSrc":"7876:6:88","nodeType":"YulTypedName","src":"7876:6:88","type":""},{"name":"value6","nativeSrc":"7884:6:88","nodeType":"YulTypedName","src":"7884:6:88","type":""},{"name":"value7","nativeSrc":"7892:6:88","nodeType":"YulTypedName","src":"7892:6:88","type":""},{"name":"value8","nativeSrc":"7900:6:88","nodeType":"YulTypedName","src":"7900:6:88","type":""},{"name":"value9","nativeSrc":"7908:6:88","nodeType":"YulTypedName","src":"7908:6:88","type":""}],"src":"7667:1233:88"},{"body":{"nativeSrc":"9008:315:88","nodeType":"YulBlock","src":"9008:315:88","statements":[{"body":{"nativeSrc":"9054:16:88","nodeType":"YulBlock","src":"9054:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9063:1:88","nodeType":"YulLiteral","src":"9063:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9066:1:88","nodeType":"YulLiteral","src":"9066:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9056:6:88","nodeType":"YulIdentifier","src":"9056:6:88"},"nativeSrc":"9056:12:88","nodeType":"YulFunctionCall","src":"9056:12:88"},"nativeSrc":"9056:12:88","nodeType":"YulExpressionStatement","src":"9056:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9029:7:88","nodeType":"YulIdentifier","src":"9029:7:88"},{"name":"headStart","nativeSrc":"9038:9:88","nodeType":"YulIdentifier","src":"9038:9:88"}],"functionName":{"name":"sub","nativeSrc":"9025:3:88","nodeType":"YulIdentifier","src":"9025:3:88"},"nativeSrc":"9025:23:88","nodeType":"YulFunctionCall","src":"9025:23:88"},{"kind":"number","nativeSrc":"9050:2:88","nodeType":"YulLiteral","src":"9050:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"9021:3:88","nodeType":"YulIdentifier","src":"9021:3:88"},"nativeSrc":"9021:32:88","nodeType":"YulFunctionCall","src":"9021:32:88"},"nativeSrc":"9018:52:88","nodeType":"YulIf","src":"9018:52:88"},{"nativeSrc":"9079:14:88","nodeType":"YulVariableDeclaration","src":"9079:14:88","value":{"kind":"number","nativeSrc":"9092:1:88","nodeType":"YulLiteral","src":"9092:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9083:5:88","nodeType":"YulTypedName","src":"9083:5:88","type":""}]},{"nativeSrc":"9102:32:88","nodeType":"YulAssignment","src":"9102:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9124:9:88","nodeType":"YulIdentifier","src":"9124:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9111:12:88","nodeType":"YulIdentifier","src":"9111:12:88"},"nativeSrc":"9111:23:88","nodeType":"YulFunctionCall","src":"9111:23:88"},"variableNames":[{"name":"value","nativeSrc":"9102:5:88","nodeType":"YulIdentifier","src":"9102:5:88"}]},{"nativeSrc":"9143:15:88","nodeType":"YulAssignment","src":"9143:15:88","value":{"name":"value","nativeSrc":"9153:5:88","nodeType":"YulIdentifier","src":"9153:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9143:6:88","nodeType":"YulIdentifier","src":"9143:6:88"}]},{"nativeSrc":"9167:16:88","nodeType":"YulVariableDeclaration","src":"9167:16:88","value":{"kind":"number","nativeSrc":"9182:1:88","nodeType":"YulLiteral","src":"9182:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9171:7:88","nodeType":"YulTypedName","src":"9171:7:88","type":""}]},{"nativeSrc":"9192:43:88","nodeType":"YulAssignment","src":"9192:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9220:9:88","nodeType":"YulIdentifier","src":"9220:9:88"},{"kind":"number","nativeSrc":"9231:2:88","nodeType":"YulLiteral","src":"9231:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9216:3:88","nodeType":"YulIdentifier","src":"9216:3:88"},"nativeSrc":"9216:18:88","nodeType":"YulFunctionCall","src":"9216:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9203:12:88","nodeType":"YulIdentifier","src":"9203:12:88"},"nativeSrc":"9203:32:88","nodeType":"YulFunctionCall","src":"9203:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9192:7:88","nodeType":"YulIdentifier","src":"9192:7:88"}]},{"nativeSrc":"9244:17:88","nodeType":"YulAssignment","src":"9244:17:88","value":{"name":"value_1","nativeSrc":"9254:7:88","nodeType":"YulIdentifier","src":"9254:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9244:6:88","nodeType":"YulIdentifier","src":"9244:6:88"}]},{"nativeSrc":"9270:47:88","nodeType":"YulAssignment","src":"9270:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9302:9:88","nodeType":"YulIdentifier","src":"9302:9:88"},{"kind":"number","nativeSrc":"9313:2:88","nodeType":"YulLiteral","src":"9313:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9298:3:88","nodeType":"YulIdentifier","src":"9298:3:88"},"nativeSrc":"9298:18:88","nodeType":"YulFunctionCall","src":"9298:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"9280:17:88","nodeType":"YulIdentifier","src":"9280:17:88"},"nativeSrc":"9280:37:88","nodeType":"YulFunctionCall","src":"9280:37:88"},"variableNames":[{"name":"value2","nativeSrc":"9270:6:88","nodeType":"YulIdentifier","src":"9270:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40","nativeSrc":"8905:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8958:9:88","nodeType":"YulTypedName","src":"8958:9:88","type":""},{"name":"dataEnd","nativeSrc":"8969:7:88","nodeType":"YulTypedName","src":"8969:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8981:6:88","nodeType":"YulTypedName","src":"8981:6:88","type":""},{"name":"value1","nativeSrc":"8989:6:88","nodeType":"YulTypedName","src":"8989:6:88","type":""},{"name":"value2","nativeSrc":"8997:6:88","nodeType":"YulTypedName","src":"8997:6:88","type":""}],"src":"8905:418:88"},{"body":{"nativeSrc":"9448:419:88","nodeType":"YulBlock","src":"9448:419:88","statements":[{"body":{"nativeSrc":"9495:16:88","nodeType":"YulBlock","src":"9495:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9504:1:88","nodeType":"YulLiteral","src":"9504:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9507:1:88","nodeType":"YulLiteral","src":"9507:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9497:6:88","nodeType":"YulIdentifier","src":"9497:6:88"},"nativeSrc":"9497:12:88","nodeType":"YulFunctionCall","src":"9497:12:88"},"nativeSrc":"9497:12:88","nodeType":"YulExpressionStatement","src":"9497:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9469:7:88","nodeType":"YulIdentifier","src":"9469:7:88"},{"name":"headStart","nativeSrc":"9478:9:88","nodeType":"YulIdentifier","src":"9478:9:88"}],"functionName":{"name":"sub","nativeSrc":"9465:3:88","nodeType":"YulIdentifier","src":"9465:3:88"},"nativeSrc":"9465:23:88","nodeType":"YulFunctionCall","src":"9465:23:88"},{"kind":"number","nativeSrc":"9490:3:88","nodeType":"YulLiteral","src":"9490:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"9461:3:88","nodeType":"YulIdentifier","src":"9461:3:88"},"nativeSrc":"9461:33:88","nodeType":"YulFunctionCall","src":"9461:33:88"},"nativeSrc":"9458:53:88","nodeType":"YulIf","src":"9458:53:88"},{"nativeSrc":"9520:14:88","nodeType":"YulVariableDeclaration","src":"9520:14:88","value":{"kind":"number","nativeSrc":"9533:1:88","nodeType":"YulLiteral","src":"9533:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9524:5:88","nodeType":"YulTypedName","src":"9524:5:88","type":""}]},{"nativeSrc":"9543:32:88","nodeType":"YulAssignment","src":"9543:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9565:9:88","nodeType":"YulIdentifier","src":"9565:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9552:12:88","nodeType":"YulIdentifier","src":"9552:12:88"},"nativeSrc":"9552:23:88","nodeType":"YulFunctionCall","src":"9552:23:88"},"variableNames":[{"name":"value","nativeSrc":"9543:5:88","nodeType":"YulIdentifier","src":"9543:5:88"}]},{"nativeSrc":"9584:15:88","nodeType":"YulAssignment","src":"9584:15:88","value":{"name":"value","nativeSrc":"9594:5:88","nodeType":"YulIdentifier","src":"9594:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9584:6:88","nodeType":"YulIdentifier","src":"9584:6:88"}]},{"nativeSrc":"9608:16:88","nodeType":"YulVariableDeclaration","src":"9608:16:88","value":{"kind":"number","nativeSrc":"9623:1:88","nodeType":"YulLiteral","src":"9623:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9612:7:88","nodeType":"YulTypedName","src":"9612:7:88","type":""}]},{"nativeSrc":"9633:43:88","nodeType":"YulAssignment","src":"9633:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9661:9:88","nodeType":"YulIdentifier","src":"9661:9:88"},{"kind":"number","nativeSrc":"9672:2:88","nodeType":"YulLiteral","src":"9672:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9657:3:88","nodeType":"YulIdentifier","src":"9657:3:88"},"nativeSrc":"9657:18:88","nodeType":"YulFunctionCall","src":"9657:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9644:12:88","nodeType":"YulIdentifier","src":"9644:12:88"},"nativeSrc":"9644:32:88","nodeType":"YulFunctionCall","src":"9644:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9633:7:88","nodeType":"YulIdentifier","src":"9633:7:88"}]},{"nativeSrc":"9685:17:88","nodeType":"YulAssignment","src":"9685:17:88","value":{"name":"value_1","nativeSrc":"9695:7:88","nodeType":"YulIdentifier","src":"9695:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9685:6:88","nodeType":"YulIdentifier","src":"9685:6:88"}]},{"nativeSrc":"9711:47:88","nodeType":"YulAssignment","src":"9711:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9743:9:88","nodeType":"YulIdentifier","src":"9743:9:88"},{"kind":"number","nativeSrc":"9754:2:88","nodeType":"YulLiteral","src":"9754:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9739:3:88","nodeType":"YulIdentifier","src":"9739:3:88"},"nativeSrc":"9739:18:88","nodeType":"YulFunctionCall","src":"9739:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"9721:17:88","nodeType":"YulIdentifier","src":"9721:17:88"},"nativeSrc":"9721:37:88","nodeType":"YulFunctionCall","src":"9721:37:88"},"variableNames":[{"name":"value2","nativeSrc":"9711:6:88","nodeType":"YulIdentifier","src":"9711:6:88"}]},{"nativeSrc":"9767:16:88","nodeType":"YulVariableDeclaration","src":"9767:16:88","value":{"kind":"number","nativeSrc":"9782:1:88","nodeType":"YulLiteral","src":"9782:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"9771:7:88","nodeType":"YulTypedName","src":"9771:7:88","type":""}]},{"nativeSrc":"9792:43:88","nodeType":"YulAssignment","src":"9792:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9820:9:88","nodeType":"YulIdentifier","src":"9820:9:88"},{"kind":"number","nativeSrc":"9831:2:88","nodeType":"YulLiteral","src":"9831:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9816:3:88","nodeType":"YulIdentifier","src":"9816:3:88"},"nativeSrc":"9816:18:88","nodeType":"YulFunctionCall","src":"9816:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9803:12:88","nodeType":"YulIdentifier","src":"9803:12:88"},"nativeSrc":"9803:32:88","nodeType":"YulFunctionCall","src":"9803:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"9792:7:88","nodeType":"YulIdentifier","src":"9792:7:88"}]},{"nativeSrc":"9844:17:88","nodeType":"YulAssignment","src":"9844:17:88","value":{"name":"value_2","nativeSrc":"9854:7:88","nodeType":"YulIdentifier","src":"9854:7:88"},"variableNames":[{"name":"value3","nativeSrc":"9844:6:88","nodeType":"YulIdentifier","src":"9844:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256","nativeSrc":"9328:539:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9390:9:88","nodeType":"YulTypedName","src":"9390:9:88","type":""},{"name":"dataEnd","nativeSrc":"9401:7:88","nodeType":"YulTypedName","src":"9401:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9413:6:88","nodeType":"YulTypedName","src":"9413:6:88","type":""},{"name":"value1","nativeSrc":"9421:6:88","nodeType":"YulTypedName","src":"9421:6:88","type":""},{"name":"value2","nativeSrc":"9429:6:88","nodeType":"YulTypedName","src":"9429:6:88","type":""},{"name":"value3","nativeSrc":"9437:6:88","nodeType":"YulTypedName","src":"9437:6:88","type":""}],"src":"9328:539:88"},{"body":{"nativeSrc":"9974:290:88","nodeType":"YulBlock","src":"9974:290:88","statements":[{"body":{"nativeSrc":"10020:16:88","nodeType":"YulBlock","src":"10020:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10029:1:88","nodeType":"YulLiteral","src":"10029:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10032:1:88","nodeType":"YulLiteral","src":"10032:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10022:6:88","nodeType":"YulIdentifier","src":"10022:6:88"},"nativeSrc":"10022:12:88","nodeType":"YulFunctionCall","src":"10022:12:88"},"nativeSrc":"10022:12:88","nodeType":"YulExpressionStatement","src":"10022:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9995:7:88","nodeType":"YulIdentifier","src":"9995:7:88"},{"name":"headStart","nativeSrc":"10004:9:88","nodeType":"YulIdentifier","src":"10004:9:88"}],"functionName":{"name":"sub","nativeSrc":"9991:3:88","nodeType":"YulIdentifier","src":"9991:3:88"},"nativeSrc":"9991:23:88","nodeType":"YulFunctionCall","src":"9991:23:88"},{"kind":"number","nativeSrc":"10016:2:88","nodeType":"YulLiteral","src":"10016:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9987:3:88","nodeType":"YulIdentifier","src":"9987:3:88"},"nativeSrc":"9987:32:88","nodeType":"YulFunctionCall","src":"9987:32:88"},"nativeSrc":"9984:52:88","nodeType":"YulIf","src":"9984:52:88"},{"nativeSrc":"10045:36:88","nodeType":"YulVariableDeclaration","src":"10045:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10071:9:88","nodeType":"YulIdentifier","src":"10071:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"10058:12:88","nodeType":"YulIdentifier","src":"10058:12:88"},"nativeSrc":"10058:23:88","nodeType":"YulFunctionCall","src":"10058:23:88"},"variables":[{"name":"value","nativeSrc":"10049:5:88","nodeType":"YulTypedName","src":"10049:5:88","type":""}]},{"body":{"nativeSrc":"10115:16:88","nodeType":"YulBlock","src":"10115:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10124:1:88","nodeType":"YulLiteral","src":"10124:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10127:1:88","nodeType":"YulLiteral","src":"10127:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10117:6:88","nodeType":"YulIdentifier","src":"10117:6:88"},"nativeSrc":"10117:12:88","nodeType":"YulFunctionCall","src":"10117:12:88"},"nativeSrc":"10117:12:88","nodeType":"YulExpressionStatement","src":"10117:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10103:5:88","nodeType":"YulIdentifier","src":"10103:5:88"},{"kind":"number","nativeSrc":"10110:2:88","nodeType":"YulLiteral","src":"10110:2:88","type":"","value":"10"}],"functionName":{"name":"lt","nativeSrc":"10100:2:88","nodeType":"YulIdentifier","src":"10100:2:88"},"nativeSrc":"10100:13:88","nodeType":"YulFunctionCall","src":"10100:13:88"}],"functionName":{"name":"iszero","nativeSrc":"10093:6:88","nodeType":"YulIdentifier","src":"10093:6:88"},"nativeSrc":"10093:21:88","nodeType":"YulFunctionCall","src":"10093:21:88"},"nativeSrc":"10090:41:88","nodeType":"YulIf","src":"10090:41:88"},{"nativeSrc":"10140:15:88","nodeType":"YulAssignment","src":"10140:15:88","value":{"name":"value","nativeSrc":"10150:5:88","nodeType":"YulIdentifier","src":"10150:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10140:6:88","nodeType":"YulIdentifier","src":"10140:6:88"}]},{"nativeSrc":"10164:16:88","nodeType":"YulVariableDeclaration","src":"10164:16:88","value":{"kind":"number","nativeSrc":"10179:1:88","nodeType":"YulLiteral","src":"10179:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"10168:7:88","nodeType":"YulTypedName","src":"10168:7:88","type":""}]},{"nativeSrc":"10189:43:88","nodeType":"YulAssignment","src":"10189:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10217:9:88","nodeType":"YulIdentifier","src":"10217:9:88"},{"kind":"number","nativeSrc":"10228:2:88","nodeType":"YulLiteral","src":"10228:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10213:3:88","nodeType":"YulIdentifier","src":"10213:3:88"},"nativeSrc":"10213:18:88","nodeType":"YulFunctionCall","src":"10213:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"10200:12:88","nodeType":"YulIdentifier","src":"10200:12:88"},"nativeSrc":"10200:32:88","nodeType":"YulFunctionCall","src":"10200:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"10189:7:88","nodeType":"YulIdentifier","src":"10189:7:88"}]},{"nativeSrc":"10241:17:88","nodeType":"YulAssignment","src":"10241:17:88","value":{"name":"value_1","nativeSrc":"10251:7:88","nodeType":"YulIdentifier","src":"10251:7:88"},"variableNames":[{"name":"value1","nativeSrc":"10241:6:88","nodeType":"YulIdentifier","src":"10241:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256","nativeSrc":"9872:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9932:9:88","nodeType":"YulTypedName","src":"9932:9:88","type":""},{"name":"dataEnd","nativeSrc":"9943:7:88","nodeType":"YulTypedName","src":"9943:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9955:6:88","nodeType":"YulTypedName","src":"9955:6:88","type":""},{"name":"value1","nativeSrc":"9963:6:88","nodeType":"YulTypedName","src":"9963:6:88","type":""}],"src":"9872:392:88"},{"body":{"nativeSrc":"10420:462:88","nodeType":"YulBlock","src":"10420:462:88","statements":[{"nativeSrc":"10430:27:88","nodeType":"YulAssignment","src":"10430:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10442:9:88","nodeType":"YulIdentifier","src":"10442:9:88"},{"kind":"number","nativeSrc":"10453:3:88","nodeType":"YulLiteral","src":"10453:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10438:3:88","nodeType":"YulIdentifier","src":"10438:3:88"},"nativeSrc":"10438:19:88","nodeType":"YulFunctionCall","src":"10438:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10430:4:88","nodeType":"YulIdentifier","src":"10430:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10473:9:88","nodeType":"YulIdentifier","src":"10473:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10490:6:88","nodeType":"YulIdentifier","src":"10490:6:88"}],"functionName":{"name":"mload","nativeSrc":"10484:5:88","nodeType":"YulIdentifier","src":"10484:5:88"},"nativeSrc":"10484:13:88","nodeType":"YulFunctionCall","src":"10484:13:88"}],"functionName":{"name":"mstore","nativeSrc":"10466:6:88","nodeType":"YulIdentifier","src":"10466:6:88"},"nativeSrc":"10466:32:88","nodeType":"YulFunctionCall","src":"10466:32:88"},"nativeSrc":"10466:32:88","nodeType":"YulExpressionStatement","src":"10466:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10518:9:88","nodeType":"YulIdentifier","src":"10518:9:88"},{"kind":"number","nativeSrc":"10529:4:88","nodeType":"YulLiteral","src":"10529:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10514:3:88","nodeType":"YulIdentifier","src":"10514:3:88"},"nativeSrc":"10514:20:88","nodeType":"YulFunctionCall","src":"10514:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10546:6:88","nodeType":"YulIdentifier","src":"10546:6:88"},{"kind":"number","nativeSrc":"10554:4:88","nodeType":"YulLiteral","src":"10554:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10542:3:88","nodeType":"YulIdentifier","src":"10542:3:88"},"nativeSrc":"10542:17:88","nodeType":"YulFunctionCall","src":"10542:17:88"}],"functionName":{"name":"mload","nativeSrc":"10536:5:88","nodeType":"YulIdentifier","src":"10536:5:88"},"nativeSrc":"10536:24:88","nodeType":"YulFunctionCall","src":"10536:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10507:6:88","nodeType":"YulIdentifier","src":"10507:6:88"},"nativeSrc":"10507:54:88","nodeType":"YulFunctionCall","src":"10507:54:88"},"nativeSrc":"10507:54:88","nodeType":"YulExpressionStatement","src":"10507:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10581:9:88","nodeType":"YulIdentifier","src":"10581:9:88"},{"kind":"number","nativeSrc":"10592:4:88","nodeType":"YulLiteral","src":"10592:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10577:3:88","nodeType":"YulIdentifier","src":"10577:3:88"},"nativeSrc":"10577:20:88","nodeType":"YulFunctionCall","src":"10577:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10609:6:88","nodeType":"YulIdentifier","src":"10609:6:88"},{"kind":"number","nativeSrc":"10617:4:88","nodeType":"YulLiteral","src":"10617:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10605:3:88","nodeType":"YulIdentifier","src":"10605:3:88"},"nativeSrc":"10605:17:88","nodeType":"YulFunctionCall","src":"10605:17:88"}],"functionName":{"name":"mload","nativeSrc":"10599:5:88","nodeType":"YulIdentifier","src":"10599:5:88"},"nativeSrc":"10599:24:88","nodeType":"YulFunctionCall","src":"10599:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10570:6:88","nodeType":"YulIdentifier","src":"10570:6:88"},"nativeSrc":"10570:54:88","nodeType":"YulFunctionCall","src":"10570:54:88"},"nativeSrc":"10570:54:88","nodeType":"YulExpressionStatement","src":"10570:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10644:9:88","nodeType":"YulIdentifier","src":"10644:9:88"},{"kind":"number","nativeSrc":"10655:4:88","nodeType":"YulLiteral","src":"10655:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10640:3:88","nodeType":"YulIdentifier","src":"10640:3:88"},"nativeSrc":"10640:20:88","nodeType":"YulFunctionCall","src":"10640:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10672:6:88","nodeType":"YulIdentifier","src":"10672:6:88"},{"kind":"number","nativeSrc":"10680:4:88","nodeType":"YulLiteral","src":"10680:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10668:3:88","nodeType":"YulIdentifier","src":"10668:3:88"},"nativeSrc":"10668:17:88","nodeType":"YulFunctionCall","src":"10668:17:88"}],"functionName":{"name":"mload","nativeSrc":"10662:5:88","nodeType":"YulIdentifier","src":"10662:5:88"},"nativeSrc":"10662:24:88","nodeType":"YulFunctionCall","src":"10662:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10633:6:88","nodeType":"YulIdentifier","src":"10633:6:88"},"nativeSrc":"10633:54:88","nodeType":"YulFunctionCall","src":"10633:54:88"},"nativeSrc":"10633:54:88","nodeType":"YulExpressionStatement","src":"10633:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10707:9:88","nodeType":"YulIdentifier","src":"10707:9:88"},{"kind":"number","nativeSrc":"10718:4:88","nodeType":"YulLiteral","src":"10718:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10703:3:88","nodeType":"YulIdentifier","src":"10703:3:88"},"nativeSrc":"10703:20:88","nodeType":"YulFunctionCall","src":"10703:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10735:6:88","nodeType":"YulIdentifier","src":"10735:6:88"},{"kind":"number","nativeSrc":"10743:4:88","nodeType":"YulLiteral","src":"10743:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10731:3:88","nodeType":"YulIdentifier","src":"10731:3:88"},"nativeSrc":"10731:17:88","nodeType":"YulFunctionCall","src":"10731:17:88"}],"functionName":{"name":"mload","nativeSrc":"10725:5:88","nodeType":"YulIdentifier","src":"10725:5:88"},"nativeSrc":"10725:24:88","nodeType":"YulFunctionCall","src":"10725:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10696:6:88","nodeType":"YulIdentifier","src":"10696:6:88"},"nativeSrc":"10696:54:88","nodeType":"YulFunctionCall","src":"10696:54:88"},"nativeSrc":"10696:54:88","nodeType":"YulExpressionStatement","src":"10696:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10770:9:88","nodeType":"YulIdentifier","src":"10770:9:88"},{"kind":"number","nativeSrc":"10781:4:88","nodeType":"YulLiteral","src":"10781:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10766:3:88","nodeType":"YulIdentifier","src":"10766:3:88"},"nativeSrc":"10766:20:88","nodeType":"YulFunctionCall","src":"10766:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10798:6:88","nodeType":"YulIdentifier","src":"10798:6:88"},{"kind":"number","nativeSrc":"10806:4:88","nodeType":"YulLiteral","src":"10806:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10794:3:88","nodeType":"YulIdentifier","src":"10794:3:88"},"nativeSrc":"10794:17:88","nodeType":"YulFunctionCall","src":"10794:17:88"}],"functionName":{"name":"mload","nativeSrc":"10788:5:88","nodeType":"YulIdentifier","src":"10788:5:88"},"nativeSrc":"10788:24:88","nodeType":"YulFunctionCall","src":"10788:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10759:6:88","nodeType":"YulIdentifier","src":"10759:6:88"},"nativeSrc":"10759:54:88","nodeType":"YulFunctionCall","src":"10759:54:88"},"nativeSrc":"10759:54:88","nodeType":"YulExpressionStatement","src":"10759:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10833:9:88","nodeType":"YulIdentifier","src":"10833:9:88"},{"kind":"number","nativeSrc":"10844:4:88","nodeType":"YulLiteral","src":"10844:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10829:3:88","nodeType":"YulIdentifier","src":"10829:3:88"},"nativeSrc":"10829:20:88","nodeType":"YulFunctionCall","src":"10829:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10861:6:88","nodeType":"YulIdentifier","src":"10861:6:88"},{"kind":"number","nativeSrc":"10869:4:88","nodeType":"YulLiteral","src":"10869:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10857:3:88","nodeType":"YulIdentifier","src":"10857:3:88"},"nativeSrc":"10857:17:88","nodeType":"YulFunctionCall","src":"10857:17:88"}],"functionName":{"name":"mload","nativeSrc":"10851:5:88","nodeType":"YulIdentifier","src":"10851:5:88"},"nativeSrc":"10851:24:88","nodeType":"YulFunctionCall","src":"10851:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10822:6:88","nodeType":"YulIdentifier","src":"10822:6:88"},"nativeSrc":"10822:54:88","nodeType":"YulFunctionCall","src":"10822:54:88"},"nativeSrc":"10822:54:88","nodeType":"YulExpressionStatement","src":"10822:54:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"10269:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10389:9:88","nodeType":"YulTypedName","src":"10389:9:88","type":""},{"name":"value0","nativeSrc":"10400:6:88","nodeType":"YulTypedName","src":"10400:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10411:4:88","nodeType":"YulTypedName","src":"10411:4:88","type":""}],"src":"10269:613:88"},{"body":{"nativeSrc":"11011:102:88","nodeType":"YulBlock","src":"11011:102:88","statements":[{"nativeSrc":"11021:26:88","nodeType":"YulAssignment","src":"11021:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11033:9:88","nodeType":"YulIdentifier","src":"11033:9:88"},{"kind":"number","nativeSrc":"11044:2:88","nodeType":"YulLiteral","src":"11044:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11029:3:88","nodeType":"YulIdentifier","src":"11029:3:88"},"nativeSrc":"11029:18:88","nodeType":"YulFunctionCall","src":"11029:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11021:4:88","nodeType":"YulIdentifier","src":"11021:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11063:9:88","nodeType":"YulIdentifier","src":"11063:9:88"},{"arguments":[{"name":"value0","nativeSrc":"11078:6:88","nodeType":"YulIdentifier","src":"11078:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11094:3:88","nodeType":"YulLiteral","src":"11094:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"11099:1:88","nodeType":"YulLiteral","src":"11099:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"11090:3:88","nodeType":"YulIdentifier","src":"11090:3:88"},"nativeSrc":"11090:11:88","nodeType":"YulFunctionCall","src":"11090:11:88"},{"kind":"number","nativeSrc":"11103:1:88","nodeType":"YulLiteral","src":"11103:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11086:3:88","nodeType":"YulIdentifier","src":"11086:3:88"},"nativeSrc":"11086:19:88","nodeType":"YulFunctionCall","src":"11086:19:88"}],"functionName":{"name":"and","nativeSrc":"11074:3:88","nodeType":"YulIdentifier","src":"11074:3:88"},"nativeSrc":"11074:32:88","nodeType":"YulFunctionCall","src":"11074:32:88"}],"functionName":{"name":"mstore","nativeSrc":"11056:6:88","nodeType":"YulIdentifier","src":"11056:6:88"},"nativeSrc":"11056:51:88","nodeType":"YulFunctionCall","src":"11056:51:88"},"nativeSrc":"11056:51:88","nodeType":"YulExpressionStatement","src":"11056:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"10887:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10980:9:88","nodeType":"YulTypedName","src":"10980:9:88","type":""},{"name":"value0","nativeSrc":"10991:6:88","nodeType":"YulTypedName","src":"10991:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11002:4:88","nodeType":"YulTypedName","src":"11002:4:88","type":""}],"src":"10887:226:88"},{"body":{"nativeSrc":"11173:325:88","nodeType":"YulBlock","src":"11173:325:88","statements":[{"nativeSrc":"11183:22:88","nodeType":"YulAssignment","src":"11183:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"11197:1:88","nodeType":"YulLiteral","src":"11197:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"11200:4:88","nodeType":"YulIdentifier","src":"11200:4:88"}],"functionName":{"name":"shr","nativeSrc":"11193:3:88","nodeType":"YulIdentifier","src":"11193:3:88"},"nativeSrc":"11193:12:88","nodeType":"YulFunctionCall","src":"11193:12:88"},"variableNames":[{"name":"length","nativeSrc":"11183:6:88","nodeType":"YulIdentifier","src":"11183:6:88"}]},{"nativeSrc":"11214:38:88","nodeType":"YulVariableDeclaration","src":"11214:38:88","value":{"arguments":[{"name":"data","nativeSrc":"11244:4:88","nodeType":"YulIdentifier","src":"11244:4:88"},{"kind":"number","nativeSrc":"11250:1:88","nodeType":"YulLiteral","src":"11250:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"11240:3:88","nodeType":"YulIdentifier","src":"11240:3:88"},"nativeSrc":"11240:12:88","nodeType":"YulFunctionCall","src":"11240:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"11218:18:88","nodeType":"YulTypedName","src":"11218:18:88","type":""}]},{"body":{"nativeSrc":"11291:31:88","nodeType":"YulBlock","src":"11291:31:88","statements":[{"nativeSrc":"11293:27:88","nodeType":"YulAssignment","src":"11293:27:88","value":{"arguments":[{"name":"length","nativeSrc":"11307:6:88","nodeType":"YulIdentifier","src":"11307:6:88"},{"kind":"number","nativeSrc":"11315:4:88","nodeType":"YulLiteral","src":"11315:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11303:3:88","nodeType":"YulIdentifier","src":"11303:3:88"},"nativeSrc":"11303:17:88","nodeType":"YulFunctionCall","src":"11303:17:88"},"variableNames":[{"name":"length","nativeSrc":"11293:6:88","nodeType":"YulIdentifier","src":"11293:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11271:18:88","nodeType":"YulIdentifier","src":"11271:18:88"}],"functionName":{"name":"iszero","nativeSrc":"11264:6:88","nodeType":"YulIdentifier","src":"11264:6:88"},"nativeSrc":"11264:26:88","nodeType":"YulFunctionCall","src":"11264:26:88"},"nativeSrc":"11261:61:88","nodeType":"YulIf","src":"11261:61:88"},{"body":{"nativeSrc":"11381:111:88","nodeType":"YulBlock","src":"11381:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11402:1:88","nodeType":"YulLiteral","src":"11402:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"11409:3:88","nodeType":"YulLiteral","src":"11409:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"11414:10:88","nodeType":"YulLiteral","src":"11414:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"11405:3:88","nodeType":"YulIdentifier","src":"11405:3:88"},"nativeSrc":"11405:20:88","nodeType":"YulFunctionCall","src":"11405:20:88"}],"functionName":{"name":"mstore","nativeSrc":"11395:6:88","nodeType":"YulIdentifier","src":"11395:6:88"},"nativeSrc":"11395:31:88","nodeType":"YulFunctionCall","src":"11395:31:88"},"nativeSrc":"11395:31:88","nodeType":"YulExpressionStatement","src":"11395:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11446:1:88","nodeType":"YulLiteral","src":"11446:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"11449:4:88","nodeType":"YulLiteral","src":"11449:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11439:6:88","nodeType":"YulIdentifier","src":"11439:6:88"},"nativeSrc":"11439:15:88","nodeType":"YulFunctionCall","src":"11439:15:88"},"nativeSrc":"11439:15:88","nodeType":"YulExpressionStatement","src":"11439:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11474:1:88","nodeType":"YulLiteral","src":"11474:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11477:4:88","nodeType":"YulLiteral","src":"11477:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11467:6:88","nodeType":"YulIdentifier","src":"11467:6:88"},"nativeSrc":"11467:15:88","nodeType":"YulFunctionCall","src":"11467:15:88"},"nativeSrc":"11467:15:88","nodeType":"YulExpressionStatement","src":"11467:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11337:18:88","nodeType":"YulIdentifier","src":"11337:18:88"},{"arguments":[{"name":"length","nativeSrc":"11360:6:88","nodeType":"YulIdentifier","src":"11360:6:88"},{"kind":"number","nativeSrc":"11368:2:88","nodeType":"YulLiteral","src":"11368:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11357:2:88","nodeType":"YulIdentifier","src":"11357:2:88"},"nativeSrc":"11357:14:88","nodeType":"YulFunctionCall","src":"11357:14:88"}],"functionName":{"name":"eq","nativeSrc":"11334:2:88","nodeType":"YulIdentifier","src":"11334:2:88"},"nativeSrc":"11334:38:88","nodeType":"YulFunctionCall","src":"11334:38:88"},"nativeSrc":"11331:161:88","nodeType":"YulIf","src":"11331:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"11118:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11153:4:88","nodeType":"YulTypedName","src":"11153:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11162:6:88","nodeType":"YulTypedName","src":"11162:6:88","type":""}],"src":"11118:380:88"},{"body":{"nativeSrc":"11608:170:88","nodeType":"YulBlock","src":"11608:170:88","statements":[{"body":{"nativeSrc":"11654:16:88","nodeType":"YulBlock","src":"11654:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11663:1:88","nodeType":"YulLiteral","src":"11663:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11666:1:88","nodeType":"YulLiteral","src":"11666:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11656:6:88","nodeType":"YulIdentifier","src":"11656:6:88"},"nativeSrc":"11656:12:88","nodeType":"YulFunctionCall","src":"11656:12:88"},"nativeSrc":"11656:12:88","nodeType":"YulExpressionStatement","src":"11656:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11629:7:88","nodeType":"YulIdentifier","src":"11629:7:88"},{"name":"headStart","nativeSrc":"11638:9:88","nodeType":"YulIdentifier","src":"11638:9:88"}],"functionName":{"name":"sub","nativeSrc":"11625:3:88","nodeType":"YulIdentifier","src":"11625:3:88"},"nativeSrc":"11625:23:88","nodeType":"YulFunctionCall","src":"11625:23:88"},{"kind":"number","nativeSrc":"11650:2:88","nodeType":"YulLiteral","src":"11650:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11621:3:88","nodeType":"YulIdentifier","src":"11621:3:88"},"nativeSrc":"11621:32:88","nodeType":"YulFunctionCall","src":"11621:32:88"},"nativeSrc":"11618:52:88","nodeType":"YulIf","src":"11618:52:88"},{"nativeSrc":"11679:29:88","nodeType":"YulVariableDeclaration","src":"11679:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11698:9:88","nodeType":"YulIdentifier","src":"11698:9:88"}],"functionName":{"name":"mload","nativeSrc":"11692:5:88","nodeType":"YulIdentifier","src":"11692:5:88"},"nativeSrc":"11692:16:88","nodeType":"YulFunctionCall","src":"11692:16:88"},"variables":[{"name":"value","nativeSrc":"11683:5:88","nodeType":"YulTypedName","src":"11683:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11742:5:88","nodeType":"YulIdentifier","src":"11742:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11717:24:88","nodeType":"YulIdentifier","src":"11717:24:88"},"nativeSrc":"11717:31:88","nodeType":"YulFunctionCall","src":"11717:31:88"},"nativeSrc":"11717:31:88","nodeType":"YulExpressionStatement","src":"11717:31:88"},{"nativeSrc":"11757:15:88","nodeType":"YulAssignment","src":"11757:15:88","value":{"name":"value","nativeSrc":"11767:5:88","nodeType":"YulIdentifier","src":"11767:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11757:6:88","nodeType":"YulIdentifier","src":"11757:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"11503:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11574:9:88","nodeType":"YulTypedName","src":"11574:9:88","type":""},{"name":"dataEnd","nativeSrc":"11585:7:88","nodeType":"YulTypedName","src":"11585:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11597:6:88","nodeType":"YulTypedName","src":"11597:6:88","type":""}],"src":"11503:275:88"},{"body":{"nativeSrc":"11990:318:88","nodeType":"YulBlock","src":"11990:318:88","statements":[{"nativeSrc":"12000:27:88","nodeType":"YulAssignment","src":"12000:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12012:9:88","nodeType":"YulIdentifier","src":"12012:9:88"},{"kind":"number","nativeSrc":"12023:3:88","nodeType":"YulLiteral","src":"12023:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12008:3:88","nodeType":"YulIdentifier","src":"12008:3:88"},"nativeSrc":"12008:19:88","nodeType":"YulFunctionCall","src":"12008:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12000:4:88","nodeType":"YulIdentifier","src":"12000:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12043:9:88","nodeType":"YulIdentifier","src":"12043:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12058:6:88","nodeType":"YulIdentifier","src":"12058:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12074:3:88","nodeType":"YulLiteral","src":"12074:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12079:1:88","nodeType":"YulLiteral","src":"12079:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12070:3:88","nodeType":"YulIdentifier","src":"12070:3:88"},"nativeSrc":"12070:11:88","nodeType":"YulFunctionCall","src":"12070:11:88"},{"kind":"number","nativeSrc":"12083:1:88","nodeType":"YulLiteral","src":"12083:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12066:3:88","nodeType":"YulIdentifier","src":"12066:3:88"},"nativeSrc":"12066:19:88","nodeType":"YulFunctionCall","src":"12066:19:88"}],"functionName":{"name":"and","nativeSrc":"12054:3:88","nodeType":"YulIdentifier","src":"12054:3:88"},"nativeSrc":"12054:32:88","nodeType":"YulFunctionCall","src":"12054:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12036:6:88","nodeType":"YulIdentifier","src":"12036:6:88"},"nativeSrc":"12036:51:88","nodeType":"YulFunctionCall","src":"12036:51:88"},"nativeSrc":"12036:51:88","nodeType":"YulExpressionStatement","src":"12036:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12107:9:88","nodeType":"YulIdentifier","src":"12107:9:88"},{"kind":"number","nativeSrc":"12118:2:88","nodeType":"YulLiteral","src":"12118:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12103:3:88","nodeType":"YulIdentifier","src":"12103:3:88"},"nativeSrc":"12103:18:88","nodeType":"YulFunctionCall","src":"12103:18:88"},{"name":"value1","nativeSrc":"12123:6:88","nodeType":"YulIdentifier","src":"12123:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12096:6:88","nodeType":"YulIdentifier","src":"12096:6:88"},"nativeSrc":"12096:34:88","nodeType":"YulFunctionCall","src":"12096:34:88"},"nativeSrc":"12096:34:88","nodeType":"YulExpressionStatement","src":"12096:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12150:9:88","nodeType":"YulIdentifier","src":"12150:9:88"},{"kind":"number","nativeSrc":"12161:2:88","nodeType":"YulLiteral","src":"12161:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12146:3:88","nodeType":"YulIdentifier","src":"12146:3:88"},"nativeSrc":"12146:18:88","nodeType":"YulFunctionCall","src":"12146:18:88"},{"name":"value2","nativeSrc":"12166:6:88","nodeType":"YulIdentifier","src":"12166:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12139:6:88","nodeType":"YulIdentifier","src":"12139:6:88"},"nativeSrc":"12139:34:88","nodeType":"YulFunctionCall","src":"12139:34:88"},"nativeSrc":"12139:34:88","nodeType":"YulExpressionStatement","src":"12139:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12193:9:88","nodeType":"YulIdentifier","src":"12193:9:88"},{"kind":"number","nativeSrc":"12204:2:88","nodeType":"YulLiteral","src":"12204:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12189:3:88","nodeType":"YulIdentifier","src":"12189:3:88"},"nativeSrc":"12189:18:88","nodeType":"YulFunctionCall","src":"12189:18:88"},{"arguments":[{"name":"value3","nativeSrc":"12213:6:88","nodeType":"YulIdentifier","src":"12213:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12229:3:88","nodeType":"YulLiteral","src":"12229:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12234:1:88","nodeType":"YulLiteral","src":"12234:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12225:3:88","nodeType":"YulIdentifier","src":"12225:3:88"},"nativeSrc":"12225:11:88","nodeType":"YulFunctionCall","src":"12225:11:88"},{"kind":"number","nativeSrc":"12238:1:88","nodeType":"YulLiteral","src":"12238:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12221:3:88","nodeType":"YulIdentifier","src":"12221:3:88"},"nativeSrc":"12221:19:88","nodeType":"YulFunctionCall","src":"12221:19:88"}],"functionName":{"name":"and","nativeSrc":"12209:3:88","nodeType":"YulIdentifier","src":"12209:3:88"},"nativeSrc":"12209:32:88","nodeType":"YulFunctionCall","src":"12209:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12182:6:88","nodeType":"YulIdentifier","src":"12182:6:88"},"nativeSrc":"12182:60:88","nodeType":"YulFunctionCall","src":"12182:60:88"},"nativeSrc":"12182:60:88","nodeType":"YulExpressionStatement","src":"12182:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12262:9:88","nodeType":"YulIdentifier","src":"12262:9:88"},{"kind":"number","nativeSrc":"12273:3:88","nodeType":"YulLiteral","src":"12273:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12258:3:88","nodeType":"YulIdentifier","src":"12258:3:88"},"nativeSrc":"12258:19:88","nodeType":"YulFunctionCall","src":"12258:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"12293:6:88","nodeType":"YulIdentifier","src":"12293:6:88"}],"functionName":{"name":"iszero","nativeSrc":"12286:6:88","nodeType":"YulIdentifier","src":"12286:6:88"},"nativeSrc":"12286:14:88","nodeType":"YulFunctionCall","src":"12286:14:88"}],"functionName":{"name":"iszero","nativeSrc":"12279:6:88","nodeType":"YulIdentifier","src":"12279:6:88"},"nativeSrc":"12279:22:88","nodeType":"YulFunctionCall","src":"12279:22:88"}],"functionName":{"name":"mstore","nativeSrc":"12251:6:88","nodeType":"YulIdentifier","src":"12251:6:88"},"nativeSrc":"12251:51:88","nodeType":"YulFunctionCall","src":"12251:51:88"},"nativeSrc":"12251:51:88","nodeType":"YulExpressionStatement","src":"12251:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"11783:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11927:9:88","nodeType":"YulTypedName","src":"11927:9:88","type":""},{"name":"value4","nativeSrc":"11938:6:88","nodeType":"YulTypedName","src":"11938:6:88","type":""},{"name":"value3","nativeSrc":"11946:6:88","nodeType":"YulTypedName","src":"11946:6:88","type":""},{"name":"value2","nativeSrc":"11954:6:88","nodeType":"YulTypedName","src":"11954:6:88","type":""},{"name":"value1","nativeSrc":"11962:6:88","nodeType":"YulTypedName","src":"11962:6:88","type":""},{"name":"value0","nativeSrc":"11970:6:88","nodeType":"YulTypedName","src":"11970:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11981:4:88","nodeType":"YulTypedName","src":"11981:4:88","type":""}],"src":"11783:525:88"},{"body":{"nativeSrc":"12487:234:88","nodeType":"YulBlock","src":"12487:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12504:9:88","nodeType":"YulIdentifier","src":"12504:9:88"},{"kind":"number","nativeSrc":"12515:2:88","nodeType":"YulLiteral","src":"12515:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12497:6:88","nodeType":"YulIdentifier","src":"12497:6:88"},"nativeSrc":"12497:21:88","nodeType":"YulFunctionCall","src":"12497:21:88"},"nativeSrc":"12497:21:88","nodeType":"YulExpressionStatement","src":"12497:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12538:9:88","nodeType":"YulIdentifier","src":"12538:9:88"},{"kind":"number","nativeSrc":"12549:2:88","nodeType":"YulLiteral","src":"12549:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12534:3:88","nodeType":"YulIdentifier","src":"12534:3:88"},"nativeSrc":"12534:18:88","nodeType":"YulFunctionCall","src":"12534:18:88"},{"kind":"number","nativeSrc":"12554:2:88","nodeType":"YulLiteral","src":"12554:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"12527:6:88","nodeType":"YulIdentifier","src":"12527:6:88"},"nativeSrc":"12527:30:88","nodeType":"YulFunctionCall","src":"12527:30:88"},"nativeSrc":"12527:30:88","nodeType":"YulExpressionStatement","src":"12527:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12577:9:88","nodeType":"YulIdentifier","src":"12577:9:88"},{"kind":"number","nativeSrc":"12588:2:88","nodeType":"YulLiteral","src":"12588:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12573:3:88","nodeType":"YulIdentifier","src":"12573:3:88"},"nativeSrc":"12573:18:88","nodeType":"YulFunctionCall","src":"12573:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"12593:34:88","nodeType":"YulLiteral","src":"12593:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"12566:6:88","nodeType":"YulIdentifier","src":"12566:6:88"},"nativeSrc":"12566:62:88","nodeType":"YulFunctionCall","src":"12566:62:88"},"nativeSrc":"12566:62:88","nodeType":"YulExpressionStatement","src":"12566:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12648:9:88","nodeType":"YulIdentifier","src":"12648:9:88"},{"kind":"number","nativeSrc":"12659:2:88","nodeType":"YulLiteral","src":"12659:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12644:3:88","nodeType":"YulIdentifier","src":"12644:3:88"},"nativeSrc":"12644:18:88","nodeType":"YulFunctionCall","src":"12644:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"12664:14:88","nodeType":"YulLiteral","src":"12664:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"12637:6:88","nodeType":"YulIdentifier","src":"12637:6:88"},"nativeSrc":"12637:42:88","nodeType":"YulFunctionCall","src":"12637:42:88"},"nativeSrc":"12637:42:88","nodeType":"YulExpressionStatement","src":"12637:42:88"},{"nativeSrc":"12688:27:88","nodeType":"YulAssignment","src":"12688:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12700:9:88","nodeType":"YulIdentifier","src":"12700:9:88"},{"kind":"number","nativeSrc":"12711:3:88","nodeType":"YulLiteral","src":"12711:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12696:3:88","nodeType":"YulIdentifier","src":"12696:3:88"},"nativeSrc":"12696:19:88","nodeType":"YulFunctionCall","src":"12696:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12688:4:88","nodeType":"YulIdentifier","src":"12688:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12313:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12464:9:88","nodeType":"YulTypedName","src":"12464:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12478:4:88","nodeType":"YulTypedName","src":"12478:4:88","type":""}],"src":"12313:408:88"},{"body":{"nativeSrc":"12900:234:88","nodeType":"YulBlock","src":"12900:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12917:9:88","nodeType":"YulIdentifier","src":"12917:9:88"},{"kind":"number","nativeSrc":"12928:2:88","nodeType":"YulLiteral","src":"12928:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12910:6:88","nodeType":"YulIdentifier","src":"12910:6:88"},"nativeSrc":"12910:21:88","nodeType":"YulFunctionCall","src":"12910:21:88"},"nativeSrc":"12910:21:88","nodeType":"YulExpressionStatement","src":"12910:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12951:9:88","nodeType":"YulIdentifier","src":"12951:9:88"},{"kind":"number","nativeSrc":"12962:2:88","nodeType":"YulLiteral","src":"12962:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12947:3:88","nodeType":"YulIdentifier","src":"12947:3:88"},"nativeSrc":"12947:18:88","nodeType":"YulFunctionCall","src":"12947:18:88"},{"kind":"number","nativeSrc":"12967:2:88","nodeType":"YulLiteral","src":"12967:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"12940:6:88","nodeType":"YulIdentifier","src":"12940:6:88"},"nativeSrc":"12940:30:88","nodeType":"YulFunctionCall","src":"12940:30:88"},"nativeSrc":"12940:30:88","nodeType":"YulExpressionStatement","src":"12940:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12990:9:88","nodeType":"YulIdentifier","src":"12990:9:88"},{"kind":"number","nativeSrc":"13001:2:88","nodeType":"YulLiteral","src":"13001:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12986:3:88","nodeType":"YulIdentifier","src":"12986:3:88"},"nativeSrc":"12986:18:88","nodeType":"YulFunctionCall","src":"12986:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"13006:34:88","nodeType":"YulLiteral","src":"13006:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"12979:6:88","nodeType":"YulIdentifier","src":"12979:6:88"},"nativeSrc":"12979:62:88","nodeType":"YulFunctionCall","src":"12979:62:88"},"nativeSrc":"12979:62:88","nodeType":"YulExpressionStatement","src":"12979:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13061:9:88","nodeType":"YulIdentifier","src":"13061:9:88"},{"kind":"number","nativeSrc":"13072:2:88","nodeType":"YulLiteral","src":"13072:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13057:3:88","nodeType":"YulIdentifier","src":"13057:3:88"},"nativeSrc":"13057:18:88","nodeType":"YulFunctionCall","src":"13057:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"13077:14:88","nodeType":"YulLiteral","src":"13077:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"13050:6:88","nodeType":"YulIdentifier","src":"13050:6:88"},"nativeSrc":"13050:42:88","nodeType":"YulFunctionCall","src":"13050:42:88"},"nativeSrc":"13050:42:88","nodeType":"YulExpressionStatement","src":"13050:42:88"},{"nativeSrc":"13101:27:88","nodeType":"YulAssignment","src":"13101:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13113:9:88","nodeType":"YulIdentifier","src":"13113:9:88"},{"kind":"number","nativeSrc":"13124:3:88","nodeType":"YulLiteral","src":"13124:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13109:3:88","nodeType":"YulIdentifier","src":"13109:3:88"},"nativeSrc":"13109:19:88","nodeType":"YulFunctionCall","src":"13109:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13101:4:88","nodeType":"YulIdentifier","src":"13101:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12726:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12877:9:88","nodeType":"YulTypedName","src":"12877:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12891:4:88","nodeType":"YulTypedName","src":"12891:4:88","type":""}],"src":"12726:408:88"},{"body":{"nativeSrc":"13313:246:88","nodeType":"YulBlock","src":"13313:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13330:9:88","nodeType":"YulIdentifier","src":"13330:9:88"},{"kind":"number","nativeSrc":"13341:2:88","nodeType":"YulLiteral","src":"13341:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13323:6:88","nodeType":"YulIdentifier","src":"13323:6:88"},"nativeSrc":"13323:21:88","nodeType":"YulFunctionCall","src":"13323:21:88"},"nativeSrc":"13323:21:88","nodeType":"YulExpressionStatement","src":"13323:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13364:9:88","nodeType":"YulIdentifier","src":"13364:9:88"},{"kind":"number","nativeSrc":"13375:2:88","nodeType":"YulLiteral","src":"13375:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13360:3:88","nodeType":"YulIdentifier","src":"13360:3:88"},"nativeSrc":"13360:18:88","nodeType":"YulFunctionCall","src":"13360:18:88"},{"kind":"number","nativeSrc":"13380:2:88","nodeType":"YulLiteral","src":"13380:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"13353:6:88","nodeType":"YulIdentifier","src":"13353:6:88"},"nativeSrc":"13353:30:88","nodeType":"YulFunctionCall","src":"13353:30:88"},"nativeSrc":"13353:30:88","nodeType":"YulExpressionStatement","src":"13353:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13403:9:88","nodeType":"YulIdentifier","src":"13403:9:88"},{"kind":"number","nativeSrc":"13414:2:88","nodeType":"YulLiteral","src":"13414:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13399:3:88","nodeType":"YulIdentifier","src":"13399:3:88"},"nativeSrc":"13399:18:88","nodeType":"YulFunctionCall","src":"13399:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"13419:34:88","nodeType":"YulLiteral","src":"13419:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"13392:6:88","nodeType":"YulIdentifier","src":"13392:6:88"},"nativeSrc":"13392:62:88","nodeType":"YulFunctionCall","src":"13392:62:88"},"nativeSrc":"13392:62:88","nodeType":"YulExpressionStatement","src":"13392:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13474:9:88","nodeType":"YulIdentifier","src":"13474:9:88"},{"kind":"number","nativeSrc":"13485:2:88","nodeType":"YulLiteral","src":"13485:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13470:3:88","nodeType":"YulIdentifier","src":"13470:3:88"},"nativeSrc":"13470:18:88","nodeType":"YulFunctionCall","src":"13470:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"13490:26:88","nodeType":"YulLiteral","src":"13490:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"13463:6:88","nodeType":"YulIdentifier","src":"13463:6:88"},"nativeSrc":"13463:54:88","nodeType":"YulFunctionCall","src":"13463:54:88"},"nativeSrc":"13463:54:88","nodeType":"YulExpressionStatement","src":"13463:54:88"},{"nativeSrc":"13526:27:88","nodeType":"YulAssignment","src":"13526:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13538:9:88","nodeType":"YulIdentifier","src":"13538:9:88"},{"kind":"number","nativeSrc":"13549:3:88","nodeType":"YulLiteral","src":"13549:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13534:3:88","nodeType":"YulIdentifier","src":"13534:3:88"},"nativeSrc":"13534:19:88","nodeType":"YulFunctionCall","src":"13534:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13526:4:88","nodeType":"YulIdentifier","src":"13526:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13139:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13290:9:88","nodeType":"YulTypedName","src":"13290:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13304:4:88","nodeType":"YulTypedName","src":"13304:4:88","type":""}],"src":"13139:420:88"},{"body":{"nativeSrc":"13717:869:88","nodeType":"YulBlock","src":"13717:869:88","statements":[{"nativeSrc":"13727:27:88","nodeType":"YulAssignment","src":"13727:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13739:9:88","nodeType":"YulIdentifier","src":"13739:9:88"},{"kind":"number","nativeSrc":"13750:3:88","nodeType":"YulLiteral","src":"13750:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"13735:3:88","nodeType":"YulIdentifier","src":"13735:3:88"},"nativeSrc":"13735:19:88","nodeType":"YulFunctionCall","src":"13735:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13727:4:88","nodeType":"YulIdentifier","src":"13727:4:88"}]},{"nativeSrc":"13763:14:88","nodeType":"YulVariableDeclaration","src":"13763:14:88","value":{"kind":"number","nativeSrc":"13776:1:88","nodeType":"YulLiteral","src":"13776:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"13767:5:88","nodeType":"YulTypedName","src":"13767:5:88","type":""}]},{"nativeSrc":"13786:29:88","nodeType":"YulAssignment","src":"13786:29:88","value":{"arguments":[{"name":"value0","nativeSrc":"13808:6:88","nodeType":"YulIdentifier","src":"13808:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"13795:12:88","nodeType":"YulIdentifier","src":"13795:12:88"},"nativeSrc":"13795:20:88","nodeType":"YulFunctionCall","src":"13795:20:88"},"variableNames":[{"name":"value","nativeSrc":"13786:5:88","nodeType":"YulIdentifier","src":"13786:5:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13831:9:88","nodeType":"YulIdentifier","src":"13831:9:88"},{"name":"value","nativeSrc":"13842:5:88","nodeType":"YulIdentifier","src":"13842:5:88"}],"functionName":{"name":"mstore","nativeSrc":"13824:6:88","nodeType":"YulIdentifier","src":"13824:6:88"},"nativeSrc":"13824:24:88","nodeType":"YulFunctionCall","src":"13824:24:88"},"nativeSrc":"13824:24:88","nodeType":"YulExpressionStatement","src":"13824:24:88"},{"nativeSrc":"13857:16:88","nodeType":"YulVariableDeclaration","src":"13857:16:88","value":{"kind":"number","nativeSrc":"13872:1:88","nodeType":"YulLiteral","src":"13872:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"13861:7:88","nodeType":"YulTypedName","src":"13861:7:88","type":""}]},{"nativeSrc":"13882:42:88","nodeType":"YulAssignment","src":"13882:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"13910:6:88","nodeType":"YulIdentifier","src":"13910:6:88"},{"kind":"number","nativeSrc":"13918:4:88","nodeType":"YulLiteral","src":"13918:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13906:3:88","nodeType":"YulIdentifier","src":"13906:3:88"},"nativeSrc":"13906:17:88","nodeType":"YulFunctionCall","src":"13906:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"13893:12:88","nodeType":"YulIdentifier","src":"13893:12:88"},"nativeSrc":"13893:31:88","nodeType":"YulFunctionCall","src":"13893:31:88"},"variableNames":[{"name":"value_1","nativeSrc":"13882:7:88","nodeType":"YulIdentifier","src":"13882:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13944:9:88","nodeType":"YulIdentifier","src":"13944:9:88"},{"kind":"number","nativeSrc":"13955:4:88","nodeType":"YulLiteral","src":"13955:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13940:3:88","nodeType":"YulIdentifier","src":"13940:3:88"},"nativeSrc":"13940:20:88","nodeType":"YulFunctionCall","src":"13940:20:88"},{"name":"value_1","nativeSrc":"13962:7:88","nodeType":"YulIdentifier","src":"13962:7:88"}],"functionName":{"name":"mstore","nativeSrc":"13933:6:88","nodeType":"YulIdentifier","src":"13933:6:88"},"nativeSrc":"13933:37:88","nodeType":"YulFunctionCall","src":"13933:37:88"},"nativeSrc":"13933:37:88","nodeType":"YulExpressionStatement","src":"13933:37:88"},{"nativeSrc":"13979:16:88","nodeType":"YulVariableDeclaration","src":"13979:16:88","value":{"kind":"number","nativeSrc":"13994:1:88","nodeType":"YulLiteral","src":"13994:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"13983:7:88","nodeType":"YulTypedName","src":"13983:7:88","type":""}]},{"nativeSrc":"14004:42:88","nodeType":"YulAssignment","src":"14004:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14032:6:88","nodeType":"YulIdentifier","src":"14032:6:88"},{"kind":"number","nativeSrc":"14040:4:88","nodeType":"YulLiteral","src":"14040:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14028:3:88","nodeType":"YulIdentifier","src":"14028:3:88"},"nativeSrc":"14028:17:88","nodeType":"YulFunctionCall","src":"14028:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"14015:12:88","nodeType":"YulIdentifier","src":"14015:12:88"},"nativeSrc":"14015:31:88","nodeType":"YulFunctionCall","src":"14015:31:88"},"variableNames":[{"name":"value_2","nativeSrc":"14004:7:88","nodeType":"YulIdentifier","src":"14004:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14066:9:88","nodeType":"YulIdentifier","src":"14066:9:88"},{"kind":"number","nativeSrc":"14077:4:88","nodeType":"YulLiteral","src":"14077:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14062:3:88","nodeType":"YulIdentifier","src":"14062:3:88"},"nativeSrc":"14062:20:88","nodeType":"YulFunctionCall","src":"14062:20:88"},{"name":"value_2","nativeSrc":"14084:7:88","nodeType":"YulIdentifier","src":"14084:7:88"}],"functionName":{"name":"mstore","nativeSrc":"14055:6:88","nodeType":"YulIdentifier","src":"14055:6:88"},"nativeSrc":"14055:37:88","nodeType":"YulFunctionCall","src":"14055:37:88"},"nativeSrc":"14055:37:88","nodeType":"YulExpressionStatement","src":"14055:37:88"},{"nativeSrc":"14101:16:88","nodeType":"YulVariableDeclaration","src":"14101:16:88","value":{"kind":"number","nativeSrc":"14116:1:88","nodeType":"YulLiteral","src":"14116:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"14105:7:88","nodeType":"YulTypedName","src":"14105:7:88","type":""}]},{"nativeSrc":"14126:42:88","nodeType":"YulAssignment","src":"14126:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14154:6:88","nodeType":"YulIdentifier","src":"14154:6:88"},{"kind":"number","nativeSrc":"14162:4:88","nodeType":"YulLiteral","src":"14162:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14150:3:88","nodeType":"YulIdentifier","src":"14150:3:88"},"nativeSrc":"14150:17:88","nodeType":"YulFunctionCall","src":"14150:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"14137:12:88","nodeType":"YulIdentifier","src":"14137:12:88"},"nativeSrc":"14137:31:88","nodeType":"YulFunctionCall","src":"14137:31:88"},"variableNames":[{"name":"value_3","nativeSrc":"14126:7:88","nodeType":"YulIdentifier","src":"14126:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14188:9:88","nodeType":"YulIdentifier","src":"14188:9:88"},{"kind":"number","nativeSrc":"14199:4:88","nodeType":"YulLiteral","src":"14199:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14184:3:88","nodeType":"YulIdentifier","src":"14184:3:88"},"nativeSrc":"14184:20:88","nodeType":"YulFunctionCall","src":"14184:20:88"},{"name":"value_3","nativeSrc":"14206:7:88","nodeType":"YulIdentifier","src":"14206:7:88"}],"functionName":{"name":"mstore","nativeSrc":"14177:6:88","nodeType":"YulIdentifier","src":"14177:6:88"},"nativeSrc":"14177:37:88","nodeType":"YulFunctionCall","src":"14177:37:88"},"nativeSrc":"14177:37:88","nodeType":"YulExpressionStatement","src":"14177:37:88"},{"nativeSrc":"14223:16:88","nodeType":"YulVariableDeclaration","src":"14223:16:88","value":{"kind":"number","nativeSrc":"14238:1:88","nodeType":"YulLiteral","src":"14238:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"14227:7:88","nodeType":"YulTypedName","src":"14227:7:88","type":""}]},{"nativeSrc":"14248:42:88","nodeType":"YulAssignment","src":"14248:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14276:6:88","nodeType":"YulIdentifier","src":"14276:6:88"},{"kind":"number","nativeSrc":"14284:4:88","nodeType":"YulLiteral","src":"14284:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14272:3:88","nodeType":"YulIdentifier","src":"14272:3:88"},"nativeSrc":"14272:17:88","nodeType":"YulFunctionCall","src":"14272:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"14259:12:88","nodeType":"YulIdentifier","src":"14259:12:88"},"nativeSrc":"14259:31:88","nodeType":"YulFunctionCall","src":"14259:31:88"},"variableNames":[{"name":"value_4","nativeSrc":"14248:7:88","nodeType":"YulIdentifier","src":"14248:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14310:9:88","nodeType":"YulIdentifier","src":"14310:9:88"},{"kind":"number","nativeSrc":"14321:4:88","nodeType":"YulLiteral","src":"14321:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14306:3:88","nodeType":"YulIdentifier","src":"14306:3:88"},"nativeSrc":"14306:20:88","nodeType":"YulFunctionCall","src":"14306:20:88"},{"name":"value_4","nativeSrc":"14328:7:88","nodeType":"YulIdentifier","src":"14328:7:88"}],"functionName":{"name":"mstore","nativeSrc":"14299:6:88","nodeType":"YulIdentifier","src":"14299:6:88"},"nativeSrc":"14299:37:88","nodeType":"YulFunctionCall","src":"14299:37:88"},"nativeSrc":"14299:37:88","nodeType":"YulExpressionStatement","src":"14299:37:88"},{"nativeSrc":"14345:16:88","nodeType":"YulVariableDeclaration","src":"14345:16:88","value":{"kind":"number","nativeSrc":"14360:1:88","nodeType":"YulLiteral","src":"14360:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"14349:7:88","nodeType":"YulTypedName","src":"14349:7:88","type":""}]},{"nativeSrc":"14370:42:88","nodeType":"YulAssignment","src":"14370:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14398:6:88","nodeType":"YulIdentifier","src":"14398:6:88"},{"kind":"number","nativeSrc":"14406:4:88","nodeType":"YulLiteral","src":"14406:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"14394:3:88","nodeType":"YulIdentifier","src":"14394:3:88"},"nativeSrc":"14394:17:88","nodeType":"YulFunctionCall","src":"14394:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"14381:12:88","nodeType":"YulIdentifier","src":"14381:12:88"},"nativeSrc":"14381:31:88","nodeType":"YulFunctionCall","src":"14381:31:88"},"variableNames":[{"name":"value_5","nativeSrc":"14370:7:88","nodeType":"YulIdentifier","src":"14370:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14432:9:88","nodeType":"YulIdentifier","src":"14432:9:88"},{"kind":"number","nativeSrc":"14443:4:88","nodeType":"YulLiteral","src":"14443:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"14428:3:88","nodeType":"YulIdentifier","src":"14428:3:88"},"nativeSrc":"14428:20:88","nodeType":"YulFunctionCall","src":"14428:20:88"},{"name":"value_5","nativeSrc":"14450:7:88","nodeType":"YulIdentifier","src":"14450:7:88"}],"functionName":{"name":"mstore","nativeSrc":"14421:6:88","nodeType":"YulIdentifier","src":"14421:6:88"},"nativeSrc":"14421:37:88","nodeType":"YulFunctionCall","src":"14421:37:88"},"nativeSrc":"14421:37:88","nodeType":"YulExpressionStatement","src":"14421:37:88"},{"nativeSrc":"14467:16:88","nodeType":"YulVariableDeclaration","src":"14467:16:88","value":{"kind":"number","nativeSrc":"14482:1:88","nodeType":"YulLiteral","src":"14482:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"14471:7:88","nodeType":"YulTypedName","src":"14471:7:88","type":""}]},{"nativeSrc":"14492:42:88","nodeType":"YulAssignment","src":"14492:42:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14520:6:88","nodeType":"YulIdentifier","src":"14520:6:88"},{"kind":"number","nativeSrc":"14528:4:88","nodeType":"YulLiteral","src":"14528:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"14516:3:88","nodeType":"YulIdentifier","src":"14516:3:88"},"nativeSrc":"14516:17:88","nodeType":"YulFunctionCall","src":"14516:17:88"}],"functionName":{"name":"calldataload","nativeSrc":"14503:12:88","nodeType":"YulIdentifier","src":"14503:12:88"},"nativeSrc":"14503:31:88","nodeType":"YulFunctionCall","src":"14503:31:88"},"variableNames":[{"name":"value_6","nativeSrc":"14492:7:88","nodeType":"YulIdentifier","src":"14492:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14554:9:88","nodeType":"YulIdentifier","src":"14554:9:88"},{"kind":"number","nativeSrc":"14565:4:88","nodeType":"YulLiteral","src":"14565:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"14550:3:88","nodeType":"YulIdentifier","src":"14550:3:88"},"nativeSrc":"14550:20:88","nodeType":"YulFunctionCall","src":"14550:20:88"},{"name":"value_6","nativeSrc":"14572:7:88","nodeType":"YulIdentifier","src":"14572:7:88"}],"functionName":{"name":"mstore","nativeSrc":"14543:6:88","nodeType":"YulIdentifier","src":"14543:6:88"},"nativeSrc":"14543:37:88","nodeType":"YulFunctionCall","src":"14543:37:88"},"nativeSrc":"14543:37:88","nodeType":"YulExpressionStatement","src":"14543:37:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"13564:1022:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13686:9:88","nodeType":"YulTypedName","src":"13686:9:88","type":""},{"name":"value0","nativeSrc":"13697:6:88","nodeType":"YulTypedName","src":"13697:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13708:4:88","nodeType":"YulTypedName","src":"13708:4:88","type":""}],"src":"13564:1022:88"},{"body":{"nativeSrc":"14623:95:88","nodeType":"YulBlock","src":"14623:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14640:1:88","nodeType":"YulLiteral","src":"14640:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"14647:3:88","nodeType":"YulLiteral","src":"14647:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"14652:10:88","nodeType":"YulLiteral","src":"14652:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"14643:3:88","nodeType":"YulIdentifier","src":"14643:3:88"},"nativeSrc":"14643:20:88","nodeType":"YulFunctionCall","src":"14643:20:88"}],"functionName":{"name":"mstore","nativeSrc":"14633:6:88","nodeType":"YulIdentifier","src":"14633:6:88"},"nativeSrc":"14633:31:88","nodeType":"YulFunctionCall","src":"14633:31:88"},"nativeSrc":"14633:31:88","nodeType":"YulExpressionStatement","src":"14633:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14680:1:88","nodeType":"YulLiteral","src":"14680:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"14683:4:88","nodeType":"YulLiteral","src":"14683:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"14673:6:88","nodeType":"YulIdentifier","src":"14673:6:88"},"nativeSrc":"14673:15:88","nodeType":"YulFunctionCall","src":"14673:15:88"},"nativeSrc":"14673:15:88","nodeType":"YulExpressionStatement","src":"14673:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14704:1:88","nodeType":"YulLiteral","src":"14704:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14707:4:88","nodeType":"YulLiteral","src":"14707:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14697:6:88","nodeType":"YulIdentifier","src":"14697:6:88"},"nativeSrc":"14697:15:88","nodeType":"YulFunctionCall","src":"14697:15:88"},"nativeSrc":"14697:15:88","nodeType":"YulExpressionStatement","src":"14697:15:88"}]},"name":"panic_error_0x11","nativeSrc":"14591:127:88","nodeType":"YulFunctionDefinition","src":"14591:127:88"},{"body":{"nativeSrc":"14772:79:88","nodeType":"YulBlock","src":"14772:79:88","statements":[{"nativeSrc":"14782:17:88","nodeType":"YulAssignment","src":"14782:17:88","value":{"arguments":[{"name":"x","nativeSrc":"14794:1:88","nodeType":"YulIdentifier","src":"14794:1:88"},{"name":"y","nativeSrc":"14797:1:88","nodeType":"YulIdentifier","src":"14797:1:88"}],"functionName":{"name":"sub","nativeSrc":"14790:3:88","nodeType":"YulIdentifier","src":"14790:3:88"},"nativeSrc":"14790:9:88","nodeType":"YulFunctionCall","src":"14790:9:88"},"variableNames":[{"name":"diff","nativeSrc":"14782:4:88","nodeType":"YulIdentifier","src":"14782:4:88"}]},{"body":{"nativeSrc":"14823:22:88","nodeType":"YulBlock","src":"14823:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14825:16:88","nodeType":"YulIdentifier","src":"14825:16:88"},"nativeSrc":"14825:18:88","nodeType":"YulFunctionCall","src":"14825:18:88"},"nativeSrc":"14825:18:88","nodeType":"YulExpressionStatement","src":"14825:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"14814:4:88","nodeType":"YulIdentifier","src":"14814:4:88"},{"name":"x","nativeSrc":"14820:1:88","nodeType":"YulIdentifier","src":"14820:1:88"}],"functionName":{"name":"gt","nativeSrc":"14811:2:88","nodeType":"YulIdentifier","src":"14811:2:88"},"nativeSrc":"14811:11:88","nodeType":"YulFunctionCall","src":"14811:11:88"},"nativeSrc":"14808:37:88","nodeType":"YulIf","src":"14808:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"14723:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14754:1:88","nodeType":"YulTypedName","src":"14754:1:88","type":""},{"name":"y","nativeSrc":"14757:1:88","nodeType":"YulTypedName","src":"14757:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"14763:4:88","nodeType":"YulTypedName","src":"14763:4:88","type":""}],"src":"14723:128:88"},{"body":{"nativeSrc":"15030:236:88","nodeType":"YulBlock","src":"15030:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15047:9:88","nodeType":"YulIdentifier","src":"15047:9:88"},{"kind":"number","nativeSrc":"15058:2:88","nodeType":"YulLiteral","src":"15058:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15040:6:88","nodeType":"YulIdentifier","src":"15040:6:88"},"nativeSrc":"15040:21:88","nodeType":"YulFunctionCall","src":"15040:21:88"},"nativeSrc":"15040:21:88","nodeType":"YulExpressionStatement","src":"15040:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15081:9:88","nodeType":"YulIdentifier","src":"15081:9:88"},{"kind":"number","nativeSrc":"15092:2:88","nodeType":"YulLiteral","src":"15092:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15077:3:88","nodeType":"YulIdentifier","src":"15077:3:88"},"nativeSrc":"15077:18:88","nodeType":"YulFunctionCall","src":"15077:18:88"},{"kind":"number","nativeSrc":"15097:2:88","nodeType":"YulLiteral","src":"15097:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"15070:6:88","nodeType":"YulIdentifier","src":"15070:6:88"},"nativeSrc":"15070:30:88","nodeType":"YulFunctionCall","src":"15070:30:88"},"nativeSrc":"15070:30:88","nodeType":"YulExpressionStatement","src":"15070:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15120:9:88","nodeType":"YulIdentifier","src":"15120:9:88"},{"kind":"number","nativeSrc":"15131:2:88","nodeType":"YulLiteral","src":"15131:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15116:3:88","nodeType":"YulIdentifier","src":"15116:3:88"},"nativeSrc":"15116:18:88","nodeType":"YulFunctionCall","src":"15116:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"15136:34:88","nodeType":"YulLiteral","src":"15136:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"15109:6:88","nodeType":"YulIdentifier","src":"15109:6:88"},"nativeSrc":"15109:62:88","nodeType":"YulFunctionCall","src":"15109:62:88"},"nativeSrc":"15109:62:88","nodeType":"YulExpressionStatement","src":"15109:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15191:9:88","nodeType":"YulIdentifier","src":"15191:9:88"},{"kind":"number","nativeSrc":"15202:2:88","nodeType":"YulLiteral","src":"15202:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15187:3:88","nodeType":"YulIdentifier","src":"15187:3:88"},"nativeSrc":"15187:18:88","nodeType":"YulFunctionCall","src":"15187:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"15207:16:88","nodeType":"YulLiteral","src":"15207:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"15180:6:88","nodeType":"YulIdentifier","src":"15180:6:88"},"nativeSrc":"15180:44:88","nodeType":"YulFunctionCall","src":"15180:44:88"},"nativeSrc":"15180:44:88","nodeType":"YulExpressionStatement","src":"15180:44:88"},{"nativeSrc":"15233:27:88","nodeType":"YulAssignment","src":"15233:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15245:9:88","nodeType":"YulIdentifier","src":"15245:9:88"},{"kind":"number","nativeSrc":"15256:3:88","nodeType":"YulLiteral","src":"15256:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15241:3:88","nodeType":"YulIdentifier","src":"15241:3:88"},"nativeSrc":"15241:19:88","nodeType":"YulFunctionCall","src":"15241:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15233:4:88","nodeType":"YulIdentifier","src":"15233:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14856:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15007:9:88","nodeType":"YulTypedName","src":"15007:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15021:4:88","nodeType":"YulTypedName","src":"15021:4:88","type":""}],"src":"14856:410:88"},{"body":{"nativeSrc":"15378:87:88","nodeType":"YulBlock","src":"15378:87:88","statements":[{"nativeSrc":"15388:26:88","nodeType":"YulAssignment","src":"15388:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15400:9:88","nodeType":"YulIdentifier","src":"15400:9:88"},{"kind":"number","nativeSrc":"15411:2:88","nodeType":"YulLiteral","src":"15411:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15396:3:88","nodeType":"YulIdentifier","src":"15396:3:88"},"nativeSrc":"15396:18:88","nodeType":"YulFunctionCall","src":"15396:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15388:4:88","nodeType":"YulIdentifier","src":"15388:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15430:9:88","nodeType":"YulIdentifier","src":"15430:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15445:6:88","nodeType":"YulIdentifier","src":"15445:6:88"},{"kind":"number","nativeSrc":"15453:4:88","nodeType":"YulLiteral","src":"15453:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"15441:3:88","nodeType":"YulIdentifier","src":"15441:3:88"},"nativeSrc":"15441:17:88","nodeType":"YulFunctionCall","src":"15441:17:88"}],"functionName":{"name":"mstore","nativeSrc":"15423:6:88","nodeType":"YulIdentifier","src":"15423:6:88"},"nativeSrc":"15423:36:88","nodeType":"YulFunctionCall","src":"15423:36:88"},"nativeSrc":"15423:36:88","nodeType":"YulExpressionStatement","src":"15423:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"15271:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15347:9:88","nodeType":"YulTypedName","src":"15347:9:88","type":""},{"name":"value0","nativeSrc":"15358:6:88","nodeType":"YulTypedName","src":"15358:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15369:4:88","nodeType":"YulTypedName","src":"15369:4:88","type":""}],"src":"15271:194:88"},{"body":{"nativeSrc":"15649:274:88","nodeType":"YulBlock","src":"15649:274:88","statements":[{"nativeSrc":"15659:27:88","nodeType":"YulAssignment","src":"15659:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15671:9:88","nodeType":"YulIdentifier","src":"15671:9:88"},{"kind":"number","nativeSrc":"15682:3:88","nodeType":"YulLiteral","src":"15682:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15667:3:88","nodeType":"YulIdentifier","src":"15667:3:88"},"nativeSrc":"15667:19:88","nodeType":"YulFunctionCall","src":"15667:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15659:4:88","nodeType":"YulIdentifier","src":"15659:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15702:9:88","nodeType":"YulIdentifier","src":"15702:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15717:6:88","nodeType":"YulIdentifier","src":"15717:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15733:3:88","nodeType":"YulLiteral","src":"15733:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15738:1:88","nodeType":"YulLiteral","src":"15738:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15729:3:88","nodeType":"YulIdentifier","src":"15729:3:88"},"nativeSrc":"15729:11:88","nodeType":"YulFunctionCall","src":"15729:11:88"},{"kind":"number","nativeSrc":"15742:1:88","nodeType":"YulLiteral","src":"15742:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15725:3:88","nodeType":"YulIdentifier","src":"15725:3:88"},"nativeSrc":"15725:19:88","nodeType":"YulFunctionCall","src":"15725:19:88"}],"functionName":{"name":"and","nativeSrc":"15713:3:88","nodeType":"YulIdentifier","src":"15713:3:88"},"nativeSrc":"15713:32:88","nodeType":"YulFunctionCall","src":"15713:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15695:6:88","nodeType":"YulIdentifier","src":"15695:6:88"},"nativeSrc":"15695:51:88","nodeType":"YulFunctionCall","src":"15695:51:88"},"nativeSrc":"15695:51:88","nodeType":"YulExpressionStatement","src":"15695:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15766:9:88","nodeType":"YulIdentifier","src":"15766:9:88"},{"kind":"number","nativeSrc":"15777:2:88","nodeType":"YulLiteral","src":"15777:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15762:3:88","nodeType":"YulIdentifier","src":"15762:3:88"},"nativeSrc":"15762:18:88","nodeType":"YulFunctionCall","src":"15762:18:88"},{"name":"value1","nativeSrc":"15782:6:88","nodeType":"YulIdentifier","src":"15782:6:88"}],"functionName":{"name":"mstore","nativeSrc":"15755:6:88","nodeType":"YulIdentifier","src":"15755:6:88"},"nativeSrc":"15755:34:88","nodeType":"YulFunctionCall","src":"15755:34:88"},"nativeSrc":"15755:34:88","nodeType":"YulExpressionStatement","src":"15755:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15809:9:88","nodeType":"YulIdentifier","src":"15809:9:88"},{"kind":"number","nativeSrc":"15820:2:88","nodeType":"YulLiteral","src":"15820:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15805:3:88","nodeType":"YulIdentifier","src":"15805:3:88"},"nativeSrc":"15805:18:88","nodeType":"YulFunctionCall","src":"15805:18:88"},{"arguments":[{"name":"value2","nativeSrc":"15829:6:88","nodeType":"YulIdentifier","src":"15829:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15845:3:88","nodeType":"YulLiteral","src":"15845:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15850:1:88","nodeType":"YulLiteral","src":"15850:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15841:3:88","nodeType":"YulIdentifier","src":"15841:3:88"},"nativeSrc":"15841:11:88","nodeType":"YulFunctionCall","src":"15841:11:88"},{"kind":"number","nativeSrc":"15854:1:88","nodeType":"YulLiteral","src":"15854:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15837:3:88","nodeType":"YulIdentifier","src":"15837:3:88"},"nativeSrc":"15837:19:88","nodeType":"YulFunctionCall","src":"15837:19:88"}],"functionName":{"name":"and","nativeSrc":"15825:3:88","nodeType":"YulIdentifier","src":"15825:3:88"},"nativeSrc":"15825:32:88","nodeType":"YulFunctionCall","src":"15825:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15798:6:88","nodeType":"YulIdentifier","src":"15798:6:88"},"nativeSrc":"15798:60:88","nodeType":"YulFunctionCall","src":"15798:60:88"},"nativeSrc":"15798:60:88","nodeType":"YulExpressionStatement","src":"15798:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15878:9:88","nodeType":"YulIdentifier","src":"15878:9:88"},{"kind":"number","nativeSrc":"15889:2:88","nodeType":"YulLiteral","src":"15889:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15874:3:88","nodeType":"YulIdentifier","src":"15874:3:88"},"nativeSrc":"15874:18:88","nodeType":"YulFunctionCall","src":"15874:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"15908:6:88","nodeType":"YulIdentifier","src":"15908:6:88"}],"functionName":{"name":"iszero","nativeSrc":"15901:6:88","nodeType":"YulIdentifier","src":"15901:6:88"},"nativeSrc":"15901:14:88","nodeType":"YulFunctionCall","src":"15901:14:88"}],"functionName":{"name":"iszero","nativeSrc":"15894:6:88","nodeType":"YulIdentifier","src":"15894:6:88"},"nativeSrc":"15894:22:88","nodeType":"YulFunctionCall","src":"15894:22:88"}],"functionName":{"name":"mstore","nativeSrc":"15867:6:88","nodeType":"YulIdentifier","src":"15867:6:88"},"nativeSrc":"15867:50:88","nodeType":"YulFunctionCall","src":"15867:50:88"},"nativeSrc":"15867:50:88","nodeType":"YulExpressionStatement","src":"15867:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"15470:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15594:9:88","nodeType":"YulTypedName","src":"15594:9:88","type":""},{"name":"value3","nativeSrc":"15605:6:88","nodeType":"YulTypedName","src":"15605:6:88","type":""},{"name":"value2","nativeSrc":"15613:6:88","nodeType":"YulTypedName","src":"15613:6:88","type":""},{"name":"value1","nativeSrc":"15621:6:88","nodeType":"YulTypedName","src":"15621:6:88","type":""},{"name":"value0","nativeSrc":"15629:6:88","nodeType":"YulTypedName","src":"15629:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15640:4:88","nodeType":"YulTypedName","src":"15640:4:88","type":""}],"src":"15470:453:88"},{"body":{"nativeSrc":"15990:85:88","nodeType":"YulBlock","src":"15990:85:88","statements":[{"nativeSrc":"16000:29:88","nodeType":"YulAssignment","src":"16000:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"16022:6:88","nodeType":"YulIdentifier","src":"16022:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"16009:12:88","nodeType":"YulIdentifier","src":"16009:12:88"},"nativeSrc":"16009:20:88","nodeType":"YulFunctionCall","src":"16009:20:88"},"variableNames":[{"name":"value","nativeSrc":"16000:5:88","nodeType":"YulIdentifier","src":"16000:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16063:5:88","nodeType":"YulIdentifier","src":"16063:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"16038:24:88","nodeType":"YulIdentifier","src":"16038:24:88"},"nativeSrc":"16038:31:88","nodeType":"YulFunctionCall","src":"16038:31:88"},"nativeSrc":"16038:31:88","nodeType":"YulExpressionStatement","src":"16038:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"15928:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15969:6:88","nodeType":"YulTypedName","src":"15969:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15980:5:88","nodeType":"YulTypedName","src":"15980:5:88","type":""}],"src":"15928:147:88"},{"body":{"nativeSrc":"16123:53:88","nodeType":"YulBlock","src":"16123:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16140:3:88","nodeType":"YulIdentifier","src":"16140:3:88"},{"arguments":[{"name":"value","nativeSrc":"16149:5:88","nodeType":"YulIdentifier","src":"16149:5:88"},{"kind":"number","nativeSrc":"16156:12:88","nodeType":"YulLiteral","src":"16156:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"16145:3:88","nodeType":"YulIdentifier","src":"16145:3:88"},"nativeSrc":"16145:24:88","nodeType":"YulFunctionCall","src":"16145:24:88"}],"functionName":{"name":"mstore","nativeSrc":"16133:6:88","nodeType":"YulIdentifier","src":"16133:6:88"},"nativeSrc":"16133:37:88","nodeType":"YulFunctionCall","src":"16133:37:88"},"nativeSrc":"16133:37:88","nodeType":"YulExpressionStatement","src":"16133:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"16080:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16107:5:88","nodeType":"YulTypedName","src":"16107:5:88","type":""},{"name":"pos","nativeSrc":"16114:3:88","nodeType":"YulTypedName","src":"16114:3:88","type":""}],"src":"16080:96:88"},{"body":{"nativeSrc":"16244:1676:88","nodeType":"YulBlock","src":"16244:1676:88","statements":[{"nativeSrc":"16254:16:88","nodeType":"YulVariableDeclaration","src":"16254:16:88","value":{"kind":"number","nativeSrc":"16269:1:88","nodeType":"YulLiteral","src":"16269:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"16258:7:88","nodeType":"YulTypedName","src":"16258:7:88","type":""}]},{"nativeSrc":"16279:30:88","nodeType":"YulAssignment","src":"16279:30:88","value":{"arguments":[{"name":"value","nativeSrc":"16303:5:88","nodeType":"YulIdentifier","src":"16303:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"16290:12:88","nodeType":"YulIdentifier","src":"16290:12:88"},"nativeSrc":"16290:19:88","nodeType":"YulFunctionCall","src":"16290:19:88"},"variableNames":[{"name":"value_1","nativeSrc":"16279:7:88","nodeType":"YulIdentifier","src":"16279:7:88"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16325:3:88","nodeType":"YulIdentifier","src":"16325:3:88"},{"name":"value_1","nativeSrc":"16330:7:88","nodeType":"YulIdentifier","src":"16330:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16318:6:88","nodeType":"YulIdentifier","src":"16318:6:88"},"nativeSrc":"16318:20:88","nodeType":"YulFunctionCall","src":"16318:20:88"},"nativeSrc":"16318:20:88","nodeType":"YulExpressionStatement","src":"16318:20:88"},{"nativeSrc":"16347:16:88","nodeType":"YulVariableDeclaration","src":"16347:16:88","value":{"kind":"number","nativeSrc":"16362:1:88","nodeType":"YulLiteral","src":"16362:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"16351:7:88","nodeType":"YulTypedName","src":"16351:7:88","type":""}]},{"nativeSrc":"16372:41:88","nodeType":"YulAssignment","src":"16372:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16400:5:88","nodeType":"YulIdentifier","src":"16400:5:88"},{"kind":"number","nativeSrc":"16407:4:88","nodeType":"YulLiteral","src":"16407:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16396:3:88","nodeType":"YulIdentifier","src":"16396:3:88"},"nativeSrc":"16396:16:88","nodeType":"YulFunctionCall","src":"16396:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16383:12:88","nodeType":"YulIdentifier","src":"16383:12:88"},"nativeSrc":"16383:30:88","nodeType":"YulFunctionCall","src":"16383:30:88"},"variableNames":[{"name":"value_2","nativeSrc":"16372:7:88","nodeType":"YulIdentifier","src":"16372:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16433:3:88","nodeType":"YulIdentifier","src":"16433:3:88"},{"kind":"number","nativeSrc":"16438:4:88","nodeType":"YulLiteral","src":"16438:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16429:3:88","nodeType":"YulIdentifier","src":"16429:3:88"},"nativeSrc":"16429:14:88","nodeType":"YulFunctionCall","src":"16429:14:88"},{"name":"value_2","nativeSrc":"16445:7:88","nodeType":"YulIdentifier","src":"16445:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16422:6:88","nodeType":"YulIdentifier","src":"16422:6:88"},"nativeSrc":"16422:31:88","nodeType":"YulFunctionCall","src":"16422:31:88"},"nativeSrc":"16422:31:88","nodeType":"YulExpressionStatement","src":"16422:31:88"},{"nativeSrc":"16462:16:88","nodeType":"YulVariableDeclaration","src":"16462:16:88","value":{"kind":"number","nativeSrc":"16477:1:88","nodeType":"YulLiteral","src":"16477:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"16466:7:88","nodeType":"YulTypedName","src":"16466:7:88","type":""}]},{"nativeSrc":"16487:41:88","nodeType":"YulAssignment","src":"16487:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16515:5:88","nodeType":"YulIdentifier","src":"16515:5:88"},{"kind":"number","nativeSrc":"16522:4:88","nodeType":"YulLiteral","src":"16522:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16511:3:88","nodeType":"YulIdentifier","src":"16511:3:88"},"nativeSrc":"16511:16:88","nodeType":"YulFunctionCall","src":"16511:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16498:12:88","nodeType":"YulIdentifier","src":"16498:12:88"},"nativeSrc":"16498:30:88","nodeType":"YulFunctionCall","src":"16498:30:88"},"variableNames":[{"name":"value_3","nativeSrc":"16487:7:88","nodeType":"YulIdentifier","src":"16487:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16548:3:88","nodeType":"YulIdentifier","src":"16548:3:88"},{"kind":"number","nativeSrc":"16553:4:88","nodeType":"YulLiteral","src":"16553:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16544:3:88","nodeType":"YulIdentifier","src":"16544:3:88"},"nativeSrc":"16544:14:88","nodeType":"YulFunctionCall","src":"16544:14:88"},{"name":"value_3","nativeSrc":"16560:7:88","nodeType":"YulIdentifier","src":"16560:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16537:6:88","nodeType":"YulIdentifier","src":"16537:6:88"},"nativeSrc":"16537:31:88","nodeType":"YulFunctionCall","src":"16537:31:88"},"nativeSrc":"16537:31:88","nodeType":"YulExpressionStatement","src":"16537:31:88"},{"nativeSrc":"16577:16:88","nodeType":"YulVariableDeclaration","src":"16577:16:88","value":{"kind":"number","nativeSrc":"16592:1:88","nodeType":"YulLiteral","src":"16592:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"16581:7:88","nodeType":"YulTypedName","src":"16581:7:88","type":""}]},{"nativeSrc":"16602:41:88","nodeType":"YulAssignment","src":"16602:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16630:5:88","nodeType":"YulIdentifier","src":"16630:5:88"},{"kind":"number","nativeSrc":"16637:4:88","nodeType":"YulLiteral","src":"16637:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16626:3:88","nodeType":"YulIdentifier","src":"16626:3:88"},"nativeSrc":"16626:16:88","nodeType":"YulFunctionCall","src":"16626:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16613:12:88","nodeType":"YulIdentifier","src":"16613:12:88"},"nativeSrc":"16613:30:88","nodeType":"YulFunctionCall","src":"16613:30:88"},"variableNames":[{"name":"value_4","nativeSrc":"16602:7:88","nodeType":"YulIdentifier","src":"16602:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16663:3:88","nodeType":"YulIdentifier","src":"16663:3:88"},{"kind":"number","nativeSrc":"16668:4:88","nodeType":"YulLiteral","src":"16668:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16659:3:88","nodeType":"YulIdentifier","src":"16659:3:88"},"nativeSrc":"16659:14:88","nodeType":"YulFunctionCall","src":"16659:14:88"},{"name":"value_4","nativeSrc":"16675:7:88","nodeType":"YulIdentifier","src":"16675:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16652:6:88","nodeType":"YulIdentifier","src":"16652:6:88"},"nativeSrc":"16652:31:88","nodeType":"YulFunctionCall","src":"16652:31:88"},"nativeSrc":"16652:31:88","nodeType":"YulExpressionStatement","src":"16652:31:88"},{"nativeSrc":"16692:16:88","nodeType":"YulVariableDeclaration","src":"16692:16:88","value":{"kind":"number","nativeSrc":"16707:1:88","nodeType":"YulLiteral","src":"16707:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"16696:7:88","nodeType":"YulTypedName","src":"16696:7:88","type":""}]},{"nativeSrc":"16717:41:88","nodeType":"YulAssignment","src":"16717:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16745:5:88","nodeType":"YulIdentifier","src":"16745:5:88"},{"kind":"number","nativeSrc":"16752:4:88","nodeType":"YulLiteral","src":"16752:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16741:3:88","nodeType":"YulIdentifier","src":"16741:3:88"},"nativeSrc":"16741:16:88","nodeType":"YulFunctionCall","src":"16741:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16728:12:88","nodeType":"YulIdentifier","src":"16728:12:88"},"nativeSrc":"16728:30:88","nodeType":"YulFunctionCall","src":"16728:30:88"},"variableNames":[{"name":"value_5","nativeSrc":"16717:7:88","nodeType":"YulIdentifier","src":"16717:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16778:3:88","nodeType":"YulIdentifier","src":"16778:3:88"},{"kind":"number","nativeSrc":"16783:4:88","nodeType":"YulLiteral","src":"16783:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16774:3:88","nodeType":"YulIdentifier","src":"16774:3:88"},"nativeSrc":"16774:14:88","nodeType":"YulFunctionCall","src":"16774:14:88"},{"name":"value_5","nativeSrc":"16790:7:88","nodeType":"YulIdentifier","src":"16790:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16767:6:88","nodeType":"YulIdentifier","src":"16767:6:88"},"nativeSrc":"16767:31:88","nodeType":"YulFunctionCall","src":"16767:31:88"},"nativeSrc":"16767:31:88","nodeType":"YulExpressionStatement","src":"16767:31:88"},{"nativeSrc":"16807:16:88","nodeType":"YulVariableDeclaration","src":"16807:16:88","value":{"kind":"number","nativeSrc":"16822:1:88","nodeType":"YulLiteral","src":"16822:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"16811:7:88","nodeType":"YulTypedName","src":"16811:7:88","type":""}]},{"nativeSrc":"16832:41:88","nodeType":"YulAssignment","src":"16832:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16860:5:88","nodeType":"YulIdentifier","src":"16860:5:88"},{"kind":"number","nativeSrc":"16867:4:88","nodeType":"YulLiteral","src":"16867:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16856:3:88","nodeType":"YulIdentifier","src":"16856:3:88"},"nativeSrc":"16856:16:88","nodeType":"YulFunctionCall","src":"16856:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16843:12:88","nodeType":"YulIdentifier","src":"16843:12:88"},"nativeSrc":"16843:30:88","nodeType":"YulFunctionCall","src":"16843:30:88"},"variableNames":[{"name":"value_6","nativeSrc":"16832:7:88","nodeType":"YulIdentifier","src":"16832:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16893:3:88","nodeType":"YulIdentifier","src":"16893:3:88"},{"kind":"number","nativeSrc":"16898:4:88","nodeType":"YulLiteral","src":"16898:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16889:3:88","nodeType":"YulIdentifier","src":"16889:3:88"},"nativeSrc":"16889:14:88","nodeType":"YulFunctionCall","src":"16889:14:88"},{"name":"value_6","nativeSrc":"16905:7:88","nodeType":"YulIdentifier","src":"16905:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16882:6:88","nodeType":"YulIdentifier","src":"16882:6:88"},"nativeSrc":"16882:31:88","nodeType":"YulFunctionCall","src":"16882:31:88"},"nativeSrc":"16882:31:88","nodeType":"YulExpressionStatement","src":"16882:31:88"},{"nativeSrc":"16922:16:88","nodeType":"YulVariableDeclaration","src":"16922:16:88","value":{"kind":"number","nativeSrc":"16937:1:88","nodeType":"YulLiteral","src":"16937:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"16926:7:88","nodeType":"YulTypedName","src":"16926:7:88","type":""}]},{"nativeSrc":"16947:41:88","nodeType":"YulAssignment","src":"16947:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16975:5:88","nodeType":"YulIdentifier","src":"16975:5:88"},{"kind":"number","nativeSrc":"16982:4:88","nodeType":"YulLiteral","src":"16982:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16971:3:88","nodeType":"YulIdentifier","src":"16971:3:88"},"nativeSrc":"16971:16:88","nodeType":"YulFunctionCall","src":"16971:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16958:12:88","nodeType":"YulIdentifier","src":"16958:12:88"},"nativeSrc":"16958:30:88","nodeType":"YulFunctionCall","src":"16958:30:88"},"variableNames":[{"name":"value_7","nativeSrc":"16947:7:88","nodeType":"YulIdentifier","src":"16947:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17008:3:88","nodeType":"YulIdentifier","src":"17008:3:88"},{"kind":"number","nativeSrc":"17013:4:88","nodeType":"YulLiteral","src":"17013:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"17004:3:88","nodeType":"YulIdentifier","src":"17004:3:88"},"nativeSrc":"17004:14:88","nodeType":"YulFunctionCall","src":"17004:14:88"},{"name":"value_7","nativeSrc":"17020:7:88","nodeType":"YulIdentifier","src":"17020:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16997:6:88","nodeType":"YulIdentifier","src":"16997:6:88"},"nativeSrc":"16997:31:88","nodeType":"YulFunctionCall","src":"16997:31:88"},"nativeSrc":"16997:31:88","nodeType":"YulExpressionStatement","src":"16997:31:88"},{"nativeSrc":"17037:16:88","nodeType":"YulVariableDeclaration","src":"17037:16:88","value":{"kind":"number","nativeSrc":"17052:1:88","nodeType":"YulLiteral","src":"17052:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"17041:7:88","nodeType":"YulTypedName","src":"17041:7:88","type":""}]},{"nativeSrc":"17062:41:88","nodeType":"YulAssignment","src":"17062:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17090:5:88","nodeType":"YulIdentifier","src":"17090:5:88"},{"kind":"number","nativeSrc":"17097:4:88","nodeType":"YulLiteral","src":"17097:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"17086:3:88","nodeType":"YulIdentifier","src":"17086:3:88"},"nativeSrc":"17086:16:88","nodeType":"YulFunctionCall","src":"17086:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17073:12:88","nodeType":"YulIdentifier","src":"17073:12:88"},"nativeSrc":"17073:30:88","nodeType":"YulFunctionCall","src":"17073:30:88"},"variableNames":[{"name":"value_8","nativeSrc":"17062:7:88","nodeType":"YulIdentifier","src":"17062:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17123:3:88","nodeType":"YulIdentifier","src":"17123:3:88"},{"kind":"number","nativeSrc":"17128:4:88","nodeType":"YulLiteral","src":"17128:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"17119:3:88","nodeType":"YulIdentifier","src":"17119:3:88"},"nativeSrc":"17119:14:88","nodeType":"YulFunctionCall","src":"17119:14:88"},{"name":"value_8","nativeSrc":"17135:7:88","nodeType":"YulIdentifier","src":"17135:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17112:6:88","nodeType":"YulIdentifier","src":"17112:6:88"},"nativeSrc":"17112:31:88","nodeType":"YulFunctionCall","src":"17112:31:88"},"nativeSrc":"17112:31:88","nodeType":"YulExpressionStatement","src":"17112:31:88"},{"nativeSrc":"17152:16:88","nodeType":"YulVariableDeclaration","src":"17152:16:88","value":{"kind":"number","nativeSrc":"17167:1:88","nodeType":"YulLiteral","src":"17167:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"17156:7:88","nodeType":"YulTypedName","src":"17156:7:88","type":""}]},{"nativeSrc":"17177:43:88","nodeType":"YulAssignment","src":"17177:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17205:5:88","nodeType":"YulIdentifier","src":"17205:5:88"},{"kind":"number","nativeSrc":"17212:6:88","nodeType":"YulLiteral","src":"17212:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"17201:3:88","nodeType":"YulIdentifier","src":"17201:3:88"},"nativeSrc":"17201:18:88","nodeType":"YulFunctionCall","src":"17201:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"17188:12:88","nodeType":"YulIdentifier","src":"17188:12:88"},"nativeSrc":"17188:32:88","nodeType":"YulFunctionCall","src":"17188:32:88"},"variableNames":[{"name":"value_9","nativeSrc":"17177:7:88","nodeType":"YulIdentifier","src":"17177:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17240:3:88","nodeType":"YulIdentifier","src":"17240:3:88"},{"kind":"number","nativeSrc":"17245:6:88","nodeType":"YulLiteral","src":"17245:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"17236:3:88","nodeType":"YulIdentifier","src":"17236:3:88"},"nativeSrc":"17236:16:88","nodeType":"YulFunctionCall","src":"17236:16:88"},{"name":"value_9","nativeSrc":"17254:7:88","nodeType":"YulIdentifier","src":"17254:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17229:6:88","nodeType":"YulIdentifier","src":"17229:6:88"},"nativeSrc":"17229:33:88","nodeType":"YulFunctionCall","src":"17229:33:88"},"nativeSrc":"17229:33:88","nodeType":"YulExpressionStatement","src":"17229:33:88"},{"nativeSrc":"17271:17:88","nodeType":"YulVariableDeclaration","src":"17271:17:88","value":{"kind":"number","nativeSrc":"17287:1:88","nodeType":"YulLiteral","src":"17287:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"17275:8:88","nodeType":"YulTypedName","src":"17275:8:88","type":""}]},{"nativeSrc":"17297:44:88","nodeType":"YulAssignment","src":"17297:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17326:5:88","nodeType":"YulIdentifier","src":"17326:5:88"},{"kind":"number","nativeSrc":"17333:6:88","nodeType":"YulLiteral","src":"17333:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"17322:3:88","nodeType":"YulIdentifier","src":"17322:3:88"},"nativeSrc":"17322:18:88","nodeType":"YulFunctionCall","src":"17322:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"17309:12:88","nodeType":"YulIdentifier","src":"17309:12:88"},"nativeSrc":"17309:32:88","nodeType":"YulFunctionCall","src":"17309:32:88"},"variableNames":[{"name":"value_10","nativeSrc":"17297:8:88","nodeType":"YulIdentifier","src":"17297:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17361:3:88","nodeType":"YulIdentifier","src":"17361:3:88"},{"kind":"number","nativeSrc":"17366:6:88","nodeType":"YulLiteral","src":"17366:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"17357:3:88","nodeType":"YulIdentifier","src":"17357:3:88"},"nativeSrc":"17357:16:88","nodeType":"YulFunctionCall","src":"17357:16:88"},{"name":"value_10","nativeSrc":"17375:8:88","nodeType":"YulIdentifier","src":"17375:8:88"}],"functionName":{"name":"mstore","nativeSrc":"17350:6:88","nodeType":"YulIdentifier","src":"17350:6:88"},"nativeSrc":"17350:34:88","nodeType":"YulFunctionCall","src":"17350:34:88"},"nativeSrc":"17350:34:88","nodeType":"YulExpressionStatement","src":"17350:34:88"},{"nativeSrc":"17393:17:88","nodeType":"YulVariableDeclaration","src":"17393:17:88","value":{"kind":"number","nativeSrc":"17409:1:88","nodeType":"YulLiteral","src":"17409:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"17397:8:88","nodeType":"YulTypedName","src":"17397:8:88","type":""}]},{"nativeSrc":"17419:44:88","nodeType":"YulAssignment","src":"17419:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17448:5:88","nodeType":"YulIdentifier","src":"17448:5:88"},{"kind":"number","nativeSrc":"17455:6:88","nodeType":"YulLiteral","src":"17455:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"17444:3:88","nodeType":"YulIdentifier","src":"17444:3:88"},"nativeSrc":"17444:18:88","nodeType":"YulFunctionCall","src":"17444:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"17431:12:88","nodeType":"YulIdentifier","src":"17431:12:88"},"nativeSrc":"17431:32:88","nodeType":"YulFunctionCall","src":"17431:32:88"},"variableNames":[{"name":"value_11","nativeSrc":"17419:8:88","nodeType":"YulIdentifier","src":"17419:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17483:3:88","nodeType":"YulIdentifier","src":"17483:3:88"},{"kind":"number","nativeSrc":"17488:6:88","nodeType":"YulLiteral","src":"17488:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"17479:3:88","nodeType":"YulIdentifier","src":"17479:3:88"},"nativeSrc":"17479:16:88","nodeType":"YulFunctionCall","src":"17479:16:88"},{"name":"value_11","nativeSrc":"17497:8:88","nodeType":"YulIdentifier","src":"17497:8:88"}],"functionName":{"name":"mstore","nativeSrc":"17472:6:88","nodeType":"YulIdentifier","src":"17472:6:88"},"nativeSrc":"17472:34:88","nodeType":"YulFunctionCall","src":"17472:34:88"},"nativeSrc":"17472:34:88","nodeType":"YulExpressionStatement","src":"17472:34:88"},{"nativeSrc":"17515:71:88","nodeType":"YulVariableDeclaration","src":"17515:71:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17571:5:88","nodeType":"YulIdentifier","src":"17571:5:88"},{"kind":"number","nativeSrc":"17578:6:88","nodeType":"YulLiteral","src":"17578:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"17567:3:88","nodeType":"YulIdentifier","src":"17567:3:88"},"nativeSrc":"17567:18:88","nodeType":"YulFunctionCall","src":"17567:18:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"17535:31:88","nodeType":"YulIdentifier","src":"17535:31:88"},"nativeSrc":"17535:51:88","nodeType":"YulFunctionCall","src":"17535:51:88"},"variables":[{"name":"memberValue0","nativeSrc":"17519:12:88","nodeType":"YulTypedName","src":"17519:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17627:12:88","nodeType":"YulIdentifier","src":"17627:12:88"},{"arguments":[{"name":"pos","nativeSrc":"17645:3:88","nodeType":"YulIdentifier","src":"17645:3:88"},{"kind":"number","nativeSrc":"17650:6:88","nodeType":"YulLiteral","src":"17650:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"17641:3:88","nodeType":"YulIdentifier","src":"17641:3:88"},"nativeSrc":"17641:16:88","nodeType":"YulFunctionCall","src":"17641:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"17595:31:88","nodeType":"YulIdentifier","src":"17595:31:88"},"nativeSrc":"17595:63:88","nodeType":"YulFunctionCall","src":"17595:63:88"},"nativeSrc":"17595:63:88","nodeType":"YulExpressionStatement","src":"17595:63:88"},{"nativeSrc":"17667:59:88","nodeType":"YulVariableDeclaration","src":"17667:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17711:5:88","nodeType":"YulIdentifier","src":"17711:5:88"},{"kind":"number","nativeSrc":"17718:6:88","nodeType":"YulLiteral","src":"17718:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17707:3:88","nodeType":"YulIdentifier","src":"17707:3:88"},"nativeSrc":"17707:18:88","nodeType":"YulFunctionCall","src":"17707:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"17689:17:88","nodeType":"YulIdentifier","src":"17689:17:88"},"nativeSrc":"17689:37:88","nodeType":"YulFunctionCall","src":"17689:37:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"17671:14:88","nodeType":"YulTypedName","src":"17671:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"17753:14:88","nodeType":"YulIdentifier","src":"17753:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17773:3:88","nodeType":"YulIdentifier","src":"17773:3:88"},{"kind":"number","nativeSrc":"17778:6:88","nodeType":"YulLiteral","src":"17778:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17769:3:88","nodeType":"YulIdentifier","src":"17769:3:88"},"nativeSrc":"17769:16:88","nodeType":"YulFunctionCall","src":"17769:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17735:17:88","nodeType":"YulIdentifier","src":"17735:17:88"},"nativeSrc":"17735:51:88","nodeType":"YulFunctionCall","src":"17735:51:88"},"nativeSrc":"17735:51:88","nodeType":"YulExpressionStatement","src":"17735:51:88"},{"nativeSrc":"17795:59:88","nodeType":"YulVariableDeclaration","src":"17795:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17839:5:88","nodeType":"YulIdentifier","src":"17839:5:88"},{"kind":"number","nativeSrc":"17846:6:88","nodeType":"YulLiteral","src":"17846:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17835:3:88","nodeType":"YulIdentifier","src":"17835:3:88"},"nativeSrc":"17835:18:88","nodeType":"YulFunctionCall","src":"17835:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"17817:17:88","nodeType":"YulIdentifier","src":"17817:17:88"},"nativeSrc":"17817:37:88","nodeType":"YulFunctionCall","src":"17817:37:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"17799:14:88","nodeType":"YulTypedName","src":"17799:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"17881:14:88","nodeType":"YulIdentifier","src":"17881:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17901:3:88","nodeType":"YulIdentifier","src":"17901:3:88"},{"kind":"number","nativeSrc":"17906:6:88","nodeType":"YulLiteral","src":"17906:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17897:3:88","nodeType":"YulIdentifier","src":"17897:3:88"},"nativeSrc":"17897:16:88","nodeType":"YulFunctionCall","src":"17897:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17863:17:88","nodeType":"YulIdentifier","src":"17863:17:88"},"nativeSrc":"17863:51:88","nodeType":"YulFunctionCall","src":"17863:51:88"},"nativeSrc":"17863:51:88","nodeType":"YulExpressionStatement","src":"17863:51:88"}]},"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"16181:1739:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16228:5:88","nodeType":"YulTypedName","src":"16228:5:88","type":""},{"name":"pos","nativeSrc":"16235:3:88","nodeType":"YulTypedName","src":"16235:3:88","type":""}],"src":"16181:1739:88"},{"body":{"nativeSrc":"18114:152:88","nodeType":"YulBlock","src":"18114:152:88","statements":[{"nativeSrc":"18124:27:88","nodeType":"YulAssignment","src":"18124:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18136:9:88","nodeType":"YulIdentifier","src":"18136:9:88"},{"kind":"number","nativeSrc":"18147:3:88","nodeType":"YulLiteral","src":"18147:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"18132:3:88","nodeType":"YulIdentifier","src":"18132:3:88"},"nativeSrc":"18132:19:88","nodeType":"YulFunctionCall","src":"18132:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18124:4:88","nodeType":"YulIdentifier","src":"18124:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18198:6:88","nodeType":"YulIdentifier","src":"18198:6:88"},{"name":"headStart","nativeSrc":"18206:9:88","nodeType":"YulIdentifier","src":"18206:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"18160:37:88","nodeType":"YulIdentifier","src":"18160:37:88"},"nativeSrc":"18160:56:88","nodeType":"YulFunctionCall","src":"18160:56:88"},"nativeSrc":"18160:56:88","nodeType":"YulExpressionStatement","src":"18160:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18236:9:88","nodeType":"YulIdentifier","src":"18236:9:88"},{"kind":"number","nativeSrc":"18247:3:88","nodeType":"YulLiteral","src":"18247:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"18232:3:88","nodeType":"YulIdentifier","src":"18232:3:88"},"nativeSrc":"18232:19:88","nodeType":"YulFunctionCall","src":"18232:19:88"},{"name":"value1","nativeSrc":"18253:6:88","nodeType":"YulIdentifier","src":"18253:6:88"}],"functionName":{"name":"mstore","nativeSrc":"18225:6:88","nodeType":"YulIdentifier","src":"18225:6:88"},"nativeSrc":"18225:35:88","nodeType":"YulFunctionCall","src":"18225:35:88"},"nativeSrc":"18225:35:88","nodeType":"YulExpressionStatement","src":"18225:35:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"17925:341:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18075:9:88","nodeType":"YulTypedName","src":"18075:9:88","type":""},{"name":"value1","nativeSrc":"18086:6:88","nodeType":"YulTypedName","src":"18086:6:88","type":""},{"name":"value0","nativeSrc":"18094:6:88","nodeType":"YulTypedName","src":"18094:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18105:4:88","nodeType":"YulTypedName","src":"18105:4:88","type":""}],"src":"17925:341:88"},{"body":{"nativeSrc":"18303:95:88","nodeType":"YulBlock","src":"18303:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18320:1:88","nodeType":"YulLiteral","src":"18320:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"18327:3:88","nodeType":"YulLiteral","src":"18327:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"18332:10:88","nodeType":"YulLiteral","src":"18332:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"18323:3:88","nodeType":"YulIdentifier","src":"18323:3:88"},"nativeSrc":"18323:20:88","nodeType":"YulFunctionCall","src":"18323:20:88"}],"functionName":{"name":"mstore","nativeSrc":"18313:6:88","nodeType":"YulIdentifier","src":"18313:6:88"},"nativeSrc":"18313:31:88","nodeType":"YulFunctionCall","src":"18313:31:88"},"nativeSrc":"18313:31:88","nodeType":"YulExpressionStatement","src":"18313:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18360:1:88","nodeType":"YulLiteral","src":"18360:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"18363:4:88","nodeType":"YulLiteral","src":"18363:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"18353:6:88","nodeType":"YulIdentifier","src":"18353:6:88"},"nativeSrc":"18353:15:88","nodeType":"YulFunctionCall","src":"18353:15:88"},"nativeSrc":"18353:15:88","nodeType":"YulExpressionStatement","src":"18353:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18384:1:88","nodeType":"YulLiteral","src":"18384:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"18387:4:88","nodeType":"YulLiteral","src":"18387:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18377:6:88","nodeType":"YulIdentifier","src":"18377:6:88"},"nativeSrc":"18377:15:88","nodeType":"YulFunctionCall","src":"18377:15:88"},"nativeSrc":"18377:15:88","nodeType":"YulExpressionStatement","src":"18377:15:88"}]},"name":"panic_error_0x21","nativeSrc":"18271:127:88","nodeType":"YulFunctionDefinition","src":"18271:127:88"},{"body":{"nativeSrc":"18577:239:88","nodeType":"YulBlock","src":"18577:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18594:9:88","nodeType":"YulIdentifier","src":"18594:9:88"},{"kind":"number","nativeSrc":"18605:2:88","nodeType":"YulLiteral","src":"18605:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18587:6:88","nodeType":"YulIdentifier","src":"18587:6:88"},"nativeSrc":"18587:21:88","nodeType":"YulFunctionCall","src":"18587:21:88"},"nativeSrc":"18587:21:88","nodeType":"YulExpressionStatement","src":"18587:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18628:9:88","nodeType":"YulIdentifier","src":"18628:9:88"},{"kind":"number","nativeSrc":"18639:2:88","nodeType":"YulLiteral","src":"18639:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18624:3:88","nodeType":"YulIdentifier","src":"18624:3:88"},"nativeSrc":"18624:18:88","nodeType":"YulFunctionCall","src":"18624:18:88"},{"kind":"number","nativeSrc":"18644:2:88","nodeType":"YulLiteral","src":"18644:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"18617:6:88","nodeType":"YulIdentifier","src":"18617:6:88"},"nativeSrc":"18617:30:88","nodeType":"YulFunctionCall","src":"18617:30:88"},"nativeSrc":"18617:30:88","nodeType":"YulExpressionStatement","src":"18617:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18667:9:88","nodeType":"YulIdentifier","src":"18667:9:88"},{"kind":"number","nativeSrc":"18678:2:88","nodeType":"YulLiteral","src":"18678:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18663:3:88","nodeType":"YulIdentifier","src":"18663:3:88"},"nativeSrc":"18663:18:88","nodeType":"YulFunctionCall","src":"18663:18:88"},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c65737320746861","kind":"string","nativeSrc":"18683:34:88","nodeType":"YulLiteral","src":"18683:34:88","type":"","value":"Can't set exposureLimit less tha"}],"functionName":{"name":"mstore","nativeSrc":"18656:6:88","nodeType":"YulIdentifier","src":"18656:6:88"},"nativeSrc":"18656:62:88","nodeType":"YulFunctionCall","src":"18656:62:88"},"nativeSrc":"18656:62:88","nodeType":"YulExpressionStatement","src":"18656:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18738:9:88","nodeType":"YulIdentifier","src":"18738:9:88"},{"kind":"number","nativeSrc":"18749:2:88","nodeType":"YulLiteral","src":"18749:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18734:3:88","nodeType":"YulIdentifier","src":"18734:3:88"},"nativeSrc":"18734:18:88","nodeType":"YulFunctionCall","src":"18734:18:88"},{"hexValue":"6e20616374697665206578706f73757265","kind":"string","nativeSrc":"18754:19:88","nodeType":"YulLiteral","src":"18754:19:88","type":"","value":"n active exposure"}],"functionName":{"name":"mstore","nativeSrc":"18727:6:88","nodeType":"YulIdentifier","src":"18727:6:88"},"nativeSrc":"18727:47:88","nodeType":"YulFunctionCall","src":"18727:47:88"},"nativeSrc":"18727:47:88","nodeType":"YulExpressionStatement","src":"18727:47:88"},{"nativeSrc":"18783:27:88","nodeType":"YulAssignment","src":"18783:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18795:9:88","nodeType":"YulIdentifier","src":"18795:9:88"},{"kind":"number","nativeSrc":"18806:3:88","nodeType":"YulLiteral","src":"18806:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18791:3:88","nodeType":"YulIdentifier","src":"18791:3:88"},"nativeSrc":"18791:19:88","nodeType":"YulFunctionCall","src":"18791:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18783:4:88","nodeType":"YulIdentifier","src":"18783:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18403:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18554:9:88","nodeType":"YulTypedName","src":"18554:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18568:4:88","nodeType":"YulTypedName","src":"18568:4:88","type":""}],"src":"18403:413:88"},{"body":{"nativeSrc":"18995:179:88","nodeType":"YulBlock","src":"18995:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19012:9:88","nodeType":"YulIdentifier","src":"19012:9:88"},{"kind":"number","nativeSrc":"19023:2:88","nodeType":"YulLiteral","src":"19023:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19005:6:88","nodeType":"YulIdentifier","src":"19005:6:88"},"nativeSrc":"19005:21:88","nodeType":"YulFunctionCall","src":"19005:21:88"},"nativeSrc":"19005:21:88","nodeType":"YulExpressionStatement","src":"19005:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19046:9:88","nodeType":"YulIdentifier","src":"19046:9:88"},{"kind":"number","nativeSrc":"19057:2:88","nodeType":"YulLiteral","src":"19057:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19042:3:88","nodeType":"YulIdentifier","src":"19042:3:88"},"nativeSrc":"19042:18:88","nodeType":"YulFunctionCall","src":"19042:18:88"},{"kind":"number","nativeSrc":"19062:2:88","nodeType":"YulLiteral","src":"19062:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"19035:6:88","nodeType":"YulIdentifier","src":"19035:6:88"},"nativeSrc":"19035:30:88","nodeType":"YulFunctionCall","src":"19035:30:88"},"nativeSrc":"19035:30:88","nodeType":"YulExpressionStatement","src":"19035:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19085:9:88","nodeType":"YulIdentifier","src":"19085:9:88"},{"kind":"number","nativeSrc":"19096:2:88","nodeType":"YulLiteral","src":"19096:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19081:3:88","nodeType":"YulIdentifier","src":"19081:3:88"},"nativeSrc":"19081:18:88","nodeType":"YulFunctionCall","src":"19081:18:88"},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","kind":"string","nativeSrc":"19101:31:88","nodeType":"YulLiteral","src":"19101:31:88","type":"","value":"Increase requires LEVEL1_ROLE"}],"functionName":{"name":"mstore","nativeSrc":"19074:6:88","nodeType":"YulIdentifier","src":"19074:6:88"},"nativeSrc":"19074:59:88","nodeType":"YulFunctionCall","src":"19074:59:88"},"nativeSrc":"19074:59:88","nodeType":"YulExpressionStatement","src":"19074:59:88"},{"nativeSrc":"19142:26:88","nodeType":"YulAssignment","src":"19142:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19154:9:88","nodeType":"YulIdentifier","src":"19154:9:88"},{"kind":"number","nativeSrc":"19165:2:88","nodeType":"YulLiteral","src":"19165:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19150:3:88","nodeType":"YulIdentifier","src":"19150:3:88"},"nativeSrc":"19150:18:88","nodeType":"YulFunctionCall","src":"19150:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19142:4:88","nodeType":"YulIdentifier","src":"19142:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18821:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18972:9:88","nodeType":"YulTypedName","src":"18972:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18986:4:88","nodeType":"YulTypedName","src":"18986:4:88","type":""}],"src":"18821:353:88"},{"body":{"nativeSrc":"19227:77:88","nodeType":"YulBlock","src":"19227:77:88","statements":[{"nativeSrc":"19237:16:88","nodeType":"YulAssignment","src":"19237:16:88","value":{"arguments":[{"name":"x","nativeSrc":"19248:1:88","nodeType":"YulIdentifier","src":"19248:1:88"},{"name":"y","nativeSrc":"19251:1:88","nodeType":"YulIdentifier","src":"19251:1:88"}],"functionName":{"name":"add","nativeSrc":"19244:3:88","nodeType":"YulIdentifier","src":"19244:3:88"},"nativeSrc":"19244:9:88","nodeType":"YulFunctionCall","src":"19244:9:88"},"variableNames":[{"name":"sum","nativeSrc":"19237:3:88","nodeType":"YulIdentifier","src":"19237:3:88"}]},{"body":{"nativeSrc":"19276:22:88","nodeType":"YulBlock","src":"19276:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19278:16:88","nodeType":"YulIdentifier","src":"19278:16:88"},"nativeSrc":"19278:18:88","nodeType":"YulFunctionCall","src":"19278:18:88"},"nativeSrc":"19278:18:88","nodeType":"YulExpressionStatement","src":"19278:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"19268:1:88","nodeType":"YulIdentifier","src":"19268:1:88"},{"name":"sum","nativeSrc":"19271:3:88","nodeType":"YulIdentifier","src":"19271:3:88"}],"functionName":{"name":"gt","nativeSrc":"19265:2:88","nodeType":"YulIdentifier","src":"19265:2:88"},"nativeSrc":"19265:10:88","nodeType":"YulFunctionCall","src":"19265:10:88"},"nativeSrc":"19262:36:88","nodeType":"YulIf","src":"19262:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"19179:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"19210:1:88","nodeType":"YulTypedName","src":"19210:1:88","type":""},{"name":"y","nativeSrc":"19213:1:88","nodeType":"YulTypedName","src":"19213:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"19219:3:88","nodeType":"YulTypedName","src":"19219:3:88","type":""}],"src":"19179:125:88"},{"body":{"nativeSrc":"19413:170:88","nodeType":"YulBlock","src":"19413:170:88","statements":[{"body":{"nativeSrc":"19459:16:88","nodeType":"YulBlock","src":"19459:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19468:1:88","nodeType":"YulLiteral","src":"19468:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19471:1:88","nodeType":"YulLiteral","src":"19471:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19461:6:88","nodeType":"YulIdentifier","src":"19461:6:88"},"nativeSrc":"19461:12:88","nodeType":"YulFunctionCall","src":"19461:12:88"},"nativeSrc":"19461:12:88","nodeType":"YulExpressionStatement","src":"19461:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19434:7:88","nodeType":"YulIdentifier","src":"19434:7:88"},{"name":"headStart","nativeSrc":"19443:9:88","nodeType":"YulIdentifier","src":"19443:9:88"}],"functionName":{"name":"sub","nativeSrc":"19430:3:88","nodeType":"YulIdentifier","src":"19430:3:88"},"nativeSrc":"19430:23:88","nodeType":"YulFunctionCall","src":"19430:23:88"},{"kind":"number","nativeSrc":"19455:2:88","nodeType":"YulLiteral","src":"19455:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19426:3:88","nodeType":"YulIdentifier","src":"19426:3:88"},"nativeSrc":"19426:32:88","nodeType":"YulFunctionCall","src":"19426:32:88"},"nativeSrc":"19423:52:88","nodeType":"YulIf","src":"19423:52:88"},{"nativeSrc":"19484:29:88","nodeType":"YulVariableDeclaration","src":"19484:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19503:9:88","nodeType":"YulIdentifier","src":"19503:9:88"}],"functionName":{"name":"mload","nativeSrc":"19497:5:88","nodeType":"YulIdentifier","src":"19497:5:88"},"nativeSrc":"19497:16:88","nodeType":"YulFunctionCall","src":"19497:16:88"},"variables":[{"name":"value","nativeSrc":"19488:5:88","nodeType":"YulTypedName","src":"19488:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19547:5:88","nodeType":"YulIdentifier","src":"19547:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"19522:24:88","nodeType":"YulIdentifier","src":"19522:24:88"},"nativeSrc":"19522:31:88","nodeType":"YulFunctionCall","src":"19522:31:88"},"nativeSrc":"19522:31:88","nodeType":"YulExpressionStatement","src":"19522:31:88"},{"nativeSrc":"19562:15:88","nodeType":"YulAssignment","src":"19562:15:88","value":{"name":"value","nativeSrc":"19572:5:88","nodeType":"YulIdentifier","src":"19572:5:88"},"variableNames":[{"name":"value0","nativeSrc":"19562:6:88","nodeType":"YulIdentifier","src":"19562:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"19309:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19379:9:88","nodeType":"YulTypedName","src":"19379:9:88","type":""},{"name":"dataEnd","nativeSrc":"19390:7:88","nodeType":"YulTypedName","src":"19390:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19402:6:88","nodeType":"YulTypedName","src":"19402:6:88","type":""}],"src":"19309:274:88"},{"body":{"nativeSrc":"19669:103:88","nodeType":"YulBlock","src":"19669:103:88","statements":[{"body":{"nativeSrc":"19715:16:88","nodeType":"YulBlock","src":"19715:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19724:1:88","nodeType":"YulLiteral","src":"19724:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19727:1:88","nodeType":"YulLiteral","src":"19727:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19717:6:88","nodeType":"YulIdentifier","src":"19717:6:88"},"nativeSrc":"19717:12:88","nodeType":"YulFunctionCall","src":"19717:12:88"},"nativeSrc":"19717:12:88","nodeType":"YulExpressionStatement","src":"19717:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19690:7:88","nodeType":"YulIdentifier","src":"19690:7:88"},{"name":"headStart","nativeSrc":"19699:9:88","nodeType":"YulIdentifier","src":"19699:9:88"}],"functionName":{"name":"sub","nativeSrc":"19686:3:88","nodeType":"YulIdentifier","src":"19686:3:88"},"nativeSrc":"19686:23:88","nodeType":"YulFunctionCall","src":"19686:23:88"},{"kind":"number","nativeSrc":"19711:2:88","nodeType":"YulLiteral","src":"19711:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19682:3:88","nodeType":"YulIdentifier","src":"19682:3:88"},"nativeSrc":"19682:32:88","nodeType":"YulFunctionCall","src":"19682:32:88"},"nativeSrc":"19679:52:88","nodeType":"YulIf","src":"19679:52:88"},{"nativeSrc":"19740:26:88","nodeType":"YulAssignment","src":"19740:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19756:9:88","nodeType":"YulIdentifier","src":"19756:9:88"}],"functionName":{"name":"mload","nativeSrc":"19750:5:88","nodeType":"YulIdentifier","src":"19750:5:88"},"nativeSrc":"19750:16:88","nodeType":"YulFunctionCall","src":"19750:16:88"},"variableNames":[{"name":"value0","nativeSrc":"19740:6:88","nodeType":"YulIdentifier","src":"19740:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"19588:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19635:9:88","nodeType":"YulTypedName","src":"19635:9:88","type":""},{"name":"dataEnd","nativeSrc":"19646:7:88","nodeType":"YulTypedName","src":"19646:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19658:6:88","nodeType":"YulTypedName","src":"19658:6:88","type":""}],"src":"19588:184:88"},{"body":{"nativeSrc":"19951:236:88","nodeType":"YulBlock","src":"19951:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19968:9:88","nodeType":"YulIdentifier","src":"19968:9:88"},{"kind":"number","nativeSrc":"19979:2:88","nodeType":"YulLiteral","src":"19979:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19961:6:88","nodeType":"YulIdentifier","src":"19961:6:88"},"nativeSrc":"19961:21:88","nodeType":"YulFunctionCall","src":"19961:21:88"},"nativeSrc":"19961:21:88","nodeType":"YulExpressionStatement","src":"19961:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20002:9:88","nodeType":"YulIdentifier","src":"20002:9:88"},{"kind":"number","nativeSrc":"20013:2:88","nodeType":"YulLiteral","src":"20013:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19998:3:88","nodeType":"YulIdentifier","src":"19998:3:88"},"nativeSrc":"19998:18:88","nodeType":"YulFunctionCall","src":"19998:18:88"},{"kind":"number","nativeSrc":"20018:2:88","nodeType":"YulLiteral","src":"20018:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"19991:6:88","nodeType":"YulIdentifier","src":"19991:6:88"},"nativeSrc":"19991:30:88","nodeType":"YulFunctionCall","src":"19991:30:88"},"nativeSrc":"19991:30:88","nodeType":"YulExpressionStatement","src":"19991:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20041:9:88","nodeType":"YulIdentifier","src":"20041:9:88"},{"kind":"number","nativeSrc":"20052:2:88","nodeType":"YulLiteral","src":"20052:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20037:3:88","nodeType":"YulIdentifier","src":"20037:3:88"},"nativeSrc":"20037:18:88","nodeType":"YulFunctionCall","src":"20037:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"20057:34:88","nodeType":"YulLiteral","src":"20057:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"20030:6:88","nodeType":"YulIdentifier","src":"20030:6:88"},"nativeSrc":"20030:62:88","nodeType":"YulFunctionCall","src":"20030:62:88"},"nativeSrc":"20030:62:88","nodeType":"YulExpressionStatement","src":"20030:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20112:9:88","nodeType":"YulIdentifier","src":"20112:9:88"},{"kind":"number","nativeSrc":"20123:2:88","nodeType":"YulLiteral","src":"20123:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20108:3:88","nodeType":"YulIdentifier","src":"20108:3:88"},"nativeSrc":"20108:18:88","nodeType":"YulFunctionCall","src":"20108:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"20128:16:88","nodeType":"YulLiteral","src":"20128:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"20101:6:88","nodeType":"YulIdentifier","src":"20101:6:88"},"nativeSrc":"20101:44:88","nodeType":"YulFunctionCall","src":"20101:44:88"},"nativeSrc":"20101:44:88","nodeType":"YulExpressionStatement","src":"20101:44:88"},{"nativeSrc":"20154:27:88","nodeType":"YulAssignment","src":"20154:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20166:9:88","nodeType":"YulIdentifier","src":"20166:9:88"},{"kind":"number","nativeSrc":"20177:3:88","nodeType":"YulLiteral","src":"20177:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20162:3:88","nodeType":"YulIdentifier","src":"20162:3:88"},"nativeSrc":"20162:19:88","nodeType":"YulFunctionCall","src":"20162:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20154:4:88","nodeType":"YulIdentifier","src":"20154:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19777:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19928:9:88","nodeType":"YulTypedName","src":"19928:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19942:4:88","nodeType":"YulTypedName","src":"19942:4:88","type":""}],"src":"19777:410:88"},{"body":{"nativeSrc":"20366:231:88","nodeType":"YulBlock","src":"20366:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20383:9:88","nodeType":"YulIdentifier","src":"20383:9:88"},{"kind":"number","nativeSrc":"20394:2:88","nodeType":"YulLiteral","src":"20394:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20376:6:88","nodeType":"YulIdentifier","src":"20376:6:88"},"nativeSrc":"20376:21:88","nodeType":"YulFunctionCall","src":"20376:21:88"},"nativeSrc":"20376:21:88","nodeType":"YulExpressionStatement","src":"20376:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20417:9:88","nodeType":"YulIdentifier","src":"20417:9:88"},{"kind":"number","nativeSrc":"20428:2:88","nodeType":"YulLiteral","src":"20428:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20413:3:88","nodeType":"YulIdentifier","src":"20413:3:88"},"nativeSrc":"20413:18:88","nodeType":"YulFunctionCall","src":"20413:18:88"},{"kind":"number","nativeSrc":"20433:2:88","nodeType":"YulLiteral","src":"20433:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"20406:6:88","nodeType":"YulIdentifier","src":"20406:6:88"},"nativeSrc":"20406:30:88","nodeType":"YulFunctionCall","src":"20406:30:88"},"nativeSrc":"20406:30:88","nodeType":"YulExpressionStatement","src":"20406:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20456:9:88","nodeType":"YulIdentifier","src":"20456:9:88"},{"kind":"number","nativeSrc":"20467:2:88","nodeType":"YulLiteral","src":"20467:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20452:3:88","nodeType":"YulIdentifier","src":"20452:3:88"},"nativeSrc":"20452:18:88","nodeType":"YulFunctionCall","src":"20452:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"20472:34:88","nodeType":"YulLiteral","src":"20472:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"20445:6:88","nodeType":"YulIdentifier","src":"20445:6:88"},"nativeSrc":"20445:62:88","nodeType":"YulFunctionCall","src":"20445:62:88"},"nativeSrc":"20445:62:88","nodeType":"YulExpressionStatement","src":"20445:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20527:9:88","nodeType":"YulIdentifier","src":"20527:9:88"},{"kind":"number","nativeSrc":"20538:2:88","nodeType":"YulLiteral","src":"20538:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20523:3:88","nodeType":"YulIdentifier","src":"20523:3:88"},"nativeSrc":"20523:18:88","nodeType":"YulFunctionCall","src":"20523:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"20543:11:88","nodeType":"YulLiteral","src":"20543:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"20516:6:88","nodeType":"YulIdentifier","src":"20516:6:88"},"nativeSrc":"20516:39:88","nodeType":"YulFunctionCall","src":"20516:39:88"},"nativeSrc":"20516:39:88","nodeType":"YulExpressionStatement","src":"20516:39:88"},{"nativeSrc":"20564:27:88","nodeType":"YulAssignment","src":"20564:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20576:9:88","nodeType":"YulIdentifier","src":"20576:9:88"},{"kind":"number","nativeSrc":"20587:3:88","nodeType":"YulLiteral","src":"20587:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20572:3:88","nodeType":"YulIdentifier","src":"20572:3:88"},"nativeSrc":"20572:19:88","nodeType":"YulFunctionCall","src":"20572:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20564:4:88","nodeType":"YulIdentifier","src":"20564:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20192:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20343:9:88","nodeType":"YulTypedName","src":"20343:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20357:4:88","nodeType":"YulTypedName","src":"20357:4:88","type":""}],"src":"20192:405:88"},{"body":{"nativeSrc":"20634:95:88","nodeType":"YulBlock","src":"20634:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20651:1:88","nodeType":"YulLiteral","src":"20651:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"20658:3:88","nodeType":"YulLiteral","src":"20658:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"20663:10:88","nodeType":"YulLiteral","src":"20663:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"20654:3:88","nodeType":"YulIdentifier","src":"20654:3:88"},"nativeSrc":"20654:20:88","nodeType":"YulFunctionCall","src":"20654:20:88"}],"functionName":{"name":"mstore","nativeSrc":"20644:6:88","nodeType":"YulIdentifier","src":"20644:6:88"},"nativeSrc":"20644:31:88","nodeType":"YulFunctionCall","src":"20644:31:88"},"nativeSrc":"20644:31:88","nodeType":"YulExpressionStatement","src":"20644:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20691:1:88","nodeType":"YulLiteral","src":"20691:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"20694:4:88","nodeType":"YulLiteral","src":"20694:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"20684:6:88","nodeType":"YulIdentifier","src":"20684:6:88"},"nativeSrc":"20684:15:88","nodeType":"YulFunctionCall","src":"20684:15:88"},"nativeSrc":"20684:15:88","nodeType":"YulExpressionStatement","src":"20684:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20715:1:88","nodeType":"YulLiteral","src":"20715:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"20718:4:88","nodeType":"YulLiteral","src":"20718:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20708:6:88","nodeType":"YulIdentifier","src":"20708:6:88"},"nativeSrc":"20708:15:88","nodeType":"YulFunctionCall","src":"20708:15:88"},"nativeSrc":"20708:15:88","nodeType":"YulExpressionStatement","src":"20708:15:88"}]},"name":"panic_error_0x12","nativeSrc":"20602:127:88","nodeType":"YulFunctionDefinition","src":"20602:127:88"},{"body":{"nativeSrc":"20780:74:88","nodeType":"YulBlock","src":"20780:74:88","statements":[{"body":{"nativeSrc":"20803:22:88","nodeType":"YulBlock","src":"20803:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"20805:16:88","nodeType":"YulIdentifier","src":"20805:16:88"},"nativeSrc":"20805:18:88","nodeType":"YulFunctionCall","src":"20805:18:88"},"nativeSrc":"20805:18:88","nodeType":"YulExpressionStatement","src":"20805:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"20800:1:88","nodeType":"YulIdentifier","src":"20800:1:88"}],"functionName":{"name":"iszero","nativeSrc":"20793:6:88","nodeType":"YulIdentifier","src":"20793:6:88"},"nativeSrc":"20793:9:88","nodeType":"YulFunctionCall","src":"20793:9:88"},"nativeSrc":"20790:35:88","nodeType":"YulIf","src":"20790:35:88"},{"nativeSrc":"20834:14:88","nodeType":"YulAssignment","src":"20834:14:88","value":{"arguments":[{"name":"x","nativeSrc":"20843:1:88","nodeType":"YulIdentifier","src":"20843:1:88"},{"name":"y","nativeSrc":"20846:1:88","nodeType":"YulIdentifier","src":"20846:1:88"}],"functionName":{"name":"div","nativeSrc":"20839:3:88","nodeType":"YulIdentifier","src":"20839:3:88"},"nativeSrc":"20839:9:88","nodeType":"YulFunctionCall","src":"20839:9:88"},"variableNames":[{"name":"r","nativeSrc":"20834:1:88","nodeType":"YulIdentifier","src":"20834:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"20734:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20765:1:88","nodeType":"YulTypedName","src":"20765:1:88","type":""},{"name":"y","nativeSrc":"20768:1:88","nodeType":"YulTypedName","src":"20768:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"20774:1:88","nodeType":"YulTypedName","src":"20774:1:88","type":""}],"src":"20734:120:88"},{"body":{"nativeSrc":"21033:225:88","nodeType":"YulBlock","src":"21033:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21050:9:88","nodeType":"YulIdentifier","src":"21050:9:88"},{"kind":"number","nativeSrc":"21061:2:88","nodeType":"YulLiteral","src":"21061:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21043:6:88","nodeType":"YulIdentifier","src":"21043:6:88"},"nativeSrc":"21043:21:88","nodeType":"YulFunctionCall","src":"21043:21:88"},"nativeSrc":"21043:21:88","nodeType":"YulExpressionStatement","src":"21043:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21084:9:88","nodeType":"YulIdentifier","src":"21084:9:88"},{"kind":"number","nativeSrc":"21095:2:88","nodeType":"YulLiteral","src":"21095:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21080:3:88","nodeType":"YulIdentifier","src":"21080:3:88"},"nativeSrc":"21080:18:88","nodeType":"YulFunctionCall","src":"21080:18:88"},{"kind":"number","nativeSrc":"21100:2:88","nodeType":"YulLiteral","src":"21100:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"21073:6:88","nodeType":"YulIdentifier","src":"21073:6:88"},"nativeSrc":"21073:30:88","nodeType":"YulFunctionCall","src":"21073:30:88"},"nativeSrc":"21073:30:88","nodeType":"YulExpressionStatement","src":"21073:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21123:9:88","nodeType":"YulIdentifier","src":"21123:9:88"},{"kind":"number","nativeSrc":"21134:2:88","nodeType":"YulLiteral","src":"21134:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21119:3:88","nodeType":"YulIdentifier","src":"21119:3:88"},"nativeSrc":"21119:18:88","nodeType":"YulFunctionCall","src":"21119:18:88"},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d75737420626520","kind":"string","nativeSrc":"21139:34:88","nodeType":"YulLiteral","src":"21139:34:88","type":"","value":"Validation: jrCollRatio must be "}],"functionName":{"name":"mstore","nativeSrc":"21112:6:88","nodeType":"YulIdentifier","src":"21112:6:88"},"nativeSrc":"21112:62:88","nodeType":"YulFunctionCall","src":"21112:62:88"},"nativeSrc":"21112:62:88","nodeType":"YulExpressionStatement","src":"21112:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21194:9:88","nodeType":"YulIdentifier","src":"21194:9:88"},{"kind":"number","nativeSrc":"21205:2:88","nodeType":"YulLiteral","src":"21205:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21190:3:88","nodeType":"YulIdentifier","src":"21190:3:88"},"nativeSrc":"21190:18:88","nodeType":"YulFunctionCall","src":"21190:18:88"},{"hexValue":"3c3d31","kind":"string","nativeSrc":"21210:5:88","nodeType":"YulLiteral","src":"21210:5:88","type":"","value":"<=1"}],"functionName":{"name":"mstore","nativeSrc":"21183:6:88","nodeType":"YulIdentifier","src":"21183:6:88"},"nativeSrc":"21183:33:88","nodeType":"YulFunctionCall","src":"21183:33:88"},"nativeSrc":"21183:33:88","nodeType":"YulExpressionStatement","src":"21183:33:88"},{"nativeSrc":"21225:27:88","nodeType":"YulAssignment","src":"21225:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21237:9:88","nodeType":"YulIdentifier","src":"21237:9:88"},{"kind":"number","nativeSrc":"21248:3:88","nodeType":"YulLiteral","src":"21248:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21233:3:88","nodeType":"YulIdentifier","src":"21233:3:88"},"nativeSrc":"21233:19:88","nodeType":"YulFunctionCall","src":"21233:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21225:4:88","nodeType":"YulIdentifier","src":"21225:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20859:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21010:9:88","nodeType":"YulTypedName","src":"21010:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21024:4:88","nodeType":"YulTypedName","src":"21024:4:88","type":""}],"src":"20859:399:88"},{"body":{"nativeSrc":"21437:223:88","nodeType":"YulBlock","src":"21437:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21454:9:88","nodeType":"YulIdentifier","src":"21454:9:88"},{"kind":"number","nativeSrc":"21465:2:88","nodeType":"YulLiteral","src":"21465:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21447:6:88","nodeType":"YulIdentifier","src":"21447:6:88"},"nativeSrc":"21447:21:88","nodeType":"YulFunctionCall","src":"21447:21:88"},"nativeSrc":"21447:21:88","nodeType":"YulExpressionStatement","src":"21447:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21488:9:88","nodeType":"YulIdentifier","src":"21488:9:88"},{"kind":"number","nativeSrc":"21499:2:88","nodeType":"YulLiteral","src":"21499:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21484:3:88","nodeType":"YulIdentifier","src":"21484:3:88"},"nativeSrc":"21484:18:88","nodeType":"YulFunctionCall","src":"21484:18:88"},{"kind":"number","nativeSrc":"21504:2:88","nodeType":"YulLiteral","src":"21504:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"21477:6:88","nodeType":"YulIdentifier","src":"21477:6:88"},"nativeSrc":"21477:30:88","nodeType":"YulFunctionCall","src":"21477:30:88"},"nativeSrc":"21477:30:88","nodeType":"YulExpressionStatement","src":"21477:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21527:9:88","nodeType":"YulIdentifier","src":"21527:9:88"},{"kind":"number","nativeSrc":"21538:2:88","nodeType":"YulLiteral","src":"21538:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21523:3:88","nodeType":"YulIdentifier","src":"21523:3:88"},"nativeSrc":"21523:18:88","nodeType":"YulFunctionCall","src":"21523:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d","kind":"string","nativeSrc":"21543:34:88","nodeType":"YulLiteral","src":"21543:34:88","type":"","value":"Validation: collRatio must be <="}],"functionName":{"name":"mstore","nativeSrc":"21516:6:88","nodeType":"YulIdentifier","src":"21516:6:88"},"nativeSrc":"21516:62:88","nodeType":"YulFunctionCall","src":"21516:62:88"},"nativeSrc":"21516:62:88","nodeType":"YulExpressionStatement","src":"21516:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21598:9:88","nodeType":"YulIdentifier","src":"21598:9:88"},{"kind":"number","nativeSrc":"21609:2:88","nodeType":"YulLiteral","src":"21609:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21594:3:88","nodeType":"YulIdentifier","src":"21594:3:88"},"nativeSrc":"21594:18:88","nodeType":"YulFunctionCall","src":"21594:18:88"},{"hexValue":"31","kind":"string","nativeSrc":"21614:3:88","nodeType":"YulLiteral","src":"21614:3:88","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"21587:6:88","nodeType":"YulIdentifier","src":"21587:6:88"},"nativeSrc":"21587:31:88","nodeType":"YulFunctionCall","src":"21587:31:88"},"nativeSrc":"21587:31:88","nodeType":"YulExpressionStatement","src":"21587:31:88"},{"nativeSrc":"21627:27:88","nodeType":"YulAssignment","src":"21627:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21639:9:88","nodeType":"YulIdentifier","src":"21639:9:88"},{"kind":"number","nativeSrc":"21650:3:88","nodeType":"YulLiteral","src":"21650:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21635:3:88","nodeType":"YulIdentifier","src":"21635:3:88"},"nativeSrc":"21635:19:88","nodeType":"YulFunctionCall","src":"21635:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21627:4:88","nodeType":"YulIdentifier","src":"21627:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21263:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21414:9:88","nodeType":"YulTypedName","src":"21414:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21428:4:88","nodeType":"YulTypedName","src":"21428:4:88","type":""}],"src":"21263:397:88"},{"body":{"nativeSrc":"21839:226:88","nodeType":"YulBlock","src":"21839:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21856:9:88","nodeType":"YulIdentifier","src":"21856:9:88"},{"kind":"number","nativeSrc":"21867:2:88","nodeType":"YulLiteral","src":"21867:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21849:6:88","nodeType":"YulIdentifier","src":"21849:6:88"},"nativeSrc":"21849:21:88","nodeType":"YulFunctionCall","src":"21849:21:88"},"nativeSrc":"21849:21:88","nodeType":"YulExpressionStatement","src":"21849:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21890:9:88","nodeType":"YulIdentifier","src":"21890:9:88"},{"kind":"number","nativeSrc":"21901:2:88","nodeType":"YulLiteral","src":"21901:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21886:3:88","nodeType":"YulIdentifier","src":"21886:3:88"},"nativeSrc":"21886:18:88","nodeType":"YulFunctionCall","src":"21886:18:88"},{"kind":"number","nativeSrc":"21906:2:88","nodeType":"YulLiteral","src":"21906:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"21879:6:88","nodeType":"YulIdentifier","src":"21879:6:88"},"nativeSrc":"21879:30:88","nodeType":"YulFunctionCall","src":"21879:30:88"},"nativeSrc":"21879:30:88","nodeType":"YulExpressionStatement","src":"21879:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21929:9:88","nodeType":"YulIdentifier","src":"21929:9:88"},{"kind":"number","nativeSrc":"21940:2:88","nodeType":"YulLiteral","src":"21940:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21925:3:88","nodeType":"YulIdentifier","src":"21925:3:88"},"nativeSrc":"21925:18:88","nodeType":"YulFunctionCall","src":"21925:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c52","kind":"string","nativeSrc":"21945:34:88","nodeType":"YulLiteral","src":"21945:34:88","type":"","value":"Validation: collRatio >= jrCollR"}],"functionName":{"name":"mstore","nativeSrc":"21918:6:88","nodeType":"YulIdentifier","src":"21918:6:88"},"nativeSrc":"21918:62:88","nodeType":"YulFunctionCall","src":"21918:62:88"},"nativeSrc":"21918:62:88","nodeType":"YulExpressionStatement","src":"21918:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22000:9:88","nodeType":"YulIdentifier","src":"22000:9:88"},{"kind":"number","nativeSrc":"22011:2:88","nodeType":"YulLiteral","src":"22011:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21996:3:88","nodeType":"YulIdentifier","src":"21996:3:88"},"nativeSrc":"21996:18:88","nodeType":"YulFunctionCall","src":"21996:18:88"},{"hexValue":"6174696f","kind":"string","nativeSrc":"22016:6:88","nodeType":"YulLiteral","src":"22016:6:88","type":"","value":"atio"}],"functionName":{"name":"mstore","nativeSrc":"21989:6:88","nodeType":"YulIdentifier","src":"21989:6:88"},"nativeSrc":"21989:34:88","nodeType":"YulFunctionCall","src":"21989:34:88"},"nativeSrc":"21989:34:88","nodeType":"YulExpressionStatement","src":"21989:34:88"},{"nativeSrc":"22032:27:88","nodeType":"YulAssignment","src":"22032:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22044:9:88","nodeType":"YulIdentifier","src":"22044:9:88"},{"kind":"number","nativeSrc":"22055:3:88","nodeType":"YulLiteral","src":"22055:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22040:3:88","nodeType":"YulIdentifier","src":"22040:3:88"},"nativeSrc":"22040:19:88","nodeType":"YulFunctionCall","src":"22040:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22032:4:88","nodeType":"YulIdentifier","src":"22032:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21665:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21816:9:88","nodeType":"YulTypedName","src":"21816:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21830:4:88","nodeType":"YulTypedName","src":"21830:4:88","type":""}],"src":"21665:400:88"},{"body":{"nativeSrc":"22244:182:88","nodeType":"YulBlock","src":"22244:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22261:9:88","nodeType":"YulIdentifier","src":"22261:9:88"},{"kind":"number","nativeSrc":"22272:2:88","nodeType":"YulLiteral","src":"22272:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22254:6:88","nodeType":"YulIdentifier","src":"22254:6:88"},"nativeSrc":"22254:21:88","nodeType":"YulFunctionCall","src":"22254:21:88"},"nativeSrc":"22254:21:88","nodeType":"YulExpressionStatement","src":"22254:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22295:9:88","nodeType":"YulIdentifier","src":"22295:9:88"},{"kind":"number","nativeSrc":"22306:2:88","nodeType":"YulLiteral","src":"22306:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22291:3:88","nodeType":"YulIdentifier","src":"22291:3:88"},"nativeSrc":"22291:18:88","nodeType":"YulFunctionCall","src":"22291:18:88"},{"kind":"number","nativeSrc":"22311:2:88","nodeType":"YulLiteral","src":"22311:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22284:6:88","nodeType":"YulIdentifier","src":"22284:6:88"},"nativeSrc":"22284:30:88","nodeType":"YulFunctionCall","src":"22284:30:88"},"nativeSrc":"22284:30:88","nodeType":"YulExpressionStatement","src":"22284:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22334:9:88","nodeType":"YulIdentifier","src":"22334:9:88"},{"kind":"number","nativeSrc":"22345:2:88","nodeType":"YulLiteral","src":"22345:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22330:3:88","nodeType":"YulIdentifier","src":"22330:3:88"},"nativeSrc":"22330:18:88","nodeType":"YulFunctionCall","src":"22330:18:88"},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","kind":"string","nativeSrc":"22350:34:88","nodeType":"YulLiteral","src":"22350:34:88","type":"","value":"Validation: moc must be [0.5, 4]"}],"functionName":{"name":"mstore","nativeSrc":"22323:6:88","nodeType":"YulIdentifier","src":"22323:6:88"},"nativeSrc":"22323:62:88","nodeType":"YulFunctionCall","src":"22323:62:88"},"nativeSrc":"22323:62:88","nodeType":"YulExpressionStatement","src":"22323:62:88"},{"nativeSrc":"22394:26:88","nodeType":"YulAssignment","src":"22394:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22406:9:88","nodeType":"YulIdentifier","src":"22406:9:88"},{"kind":"number","nativeSrc":"22417:2:88","nodeType":"YulLiteral","src":"22417:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22402:3:88","nodeType":"YulIdentifier","src":"22402:3:88"},"nativeSrc":"22402:18:88","nodeType":"YulFunctionCall","src":"22402:18:88"},"variableNames":[{"name":"tail","nativeSrc":"22394:4:88","nodeType":"YulIdentifier","src":"22394:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22070:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22221:9:88","nodeType":"YulTypedName","src":"22221:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22235:4:88","nodeType":"YulTypedName","src":"22235:4:88","type":""}],"src":"22070:356:88"},{"body":{"nativeSrc":"22605:226:88","nodeType":"YulBlock","src":"22605:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22622:9:88","nodeType":"YulIdentifier","src":"22622:9:88"},{"kind":"number","nativeSrc":"22633:2:88","nodeType":"YulLiteral","src":"22633:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22615:6:88","nodeType":"YulIdentifier","src":"22615:6:88"},"nativeSrc":"22615:21:88","nodeType":"YulFunctionCall","src":"22615:21:88"},"nativeSrc":"22615:21:88","nodeType":"YulExpressionStatement","src":"22615:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22656:9:88","nodeType":"YulIdentifier","src":"22656:9:88"},{"kind":"number","nativeSrc":"22667:2:88","nodeType":"YulLiteral","src":"22667:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22652:3:88","nodeType":"YulIdentifier","src":"22652:3:88"},"nativeSrc":"22652:18:88","nodeType":"YulFunctionCall","src":"22652:18:88"},{"kind":"number","nativeSrc":"22672:2:88","nodeType":"YulLiteral","src":"22672:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"22645:6:88","nodeType":"YulIdentifier","src":"22645:6:88"},"nativeSrc":"22645:30:88","nodeType":"YulFunctionCall","src":"22645:30:88"},"nativeSrc":"22645:30:88","nodeType":"YulExpressionStatement","src":"22645:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22695:9:88","nodeType":"YulIdentifier","src":"22695:9:88"},{"kind":"number","nativeSrc":"22706:2:88","nodeType":"YulLiteral","src":"22706:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22691:3:88","nodeType":"YulIdentifier","src":"22691:3:88"},"nativeSrc":"22691:18:88","nodeType":"YulFunctionCall","src":"22691:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d75737420626520","kind":"string","nativeSrc":"22711:34:88","nodeType":"YulLiteral","src":"22711:34:88","type":"","value":"Validation: ensuroPpFee must be "}],"functionName":{"name":"mstore","nativeSrc":"22684:6:88","nodeType":"YulIdentifier","src":"22684:6:88"},"nativeSrc":"22684:62:88","nodeType":"YulFunctionCall","src":"22684:62:88"},"nativeSrc":"22684:62:88","nodeType":"YulExpressionStatement","src":"22684:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22766:9:88","nodeType":"YulIdentifier","src":"22766:9:88"},{"kind":"number","nativeSrc":"22777:2:88","nodeType":"YulLiteral","src":"22777:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22762:3:88","nodeType":"YulIdentifier","src":"22762:3:88"},"nativeSrc":"22762:18:88","nodeType":"YulFunctionCall","src":"22762:18:88"},{"hexValue":"3c3d2031","kind":"string","nativeSrc":"22782:6:88","nodeType":"YulLiteral","src":"22782:6:88","type":"","value":"<= 1"}],"functionName":{"name":"mstore","nativeSrc":"22755:6:88","nodeType":"YulIdentifier","src":"22755:6:88"},"nativeSrc":"22755:34:88","nodeType":"YulFunctionCall","src":"22755:34:88"},"nativeSrc":"22755:34:88","nodeType":"YulExpressionStatement","src":"22755:34:88"},{"nativeSrc":"22798:27:88","nodeType":"YulAssignment","src":"22798:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22810:9:88","nodeType":"YulIdentifier","src":"22810:9:88"},{"kind":"number","nativeSrc":"22821:3:88","nodeType":"YulLiteral","src":"22821:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22806:3:88","nodeType":"YulIdentifier","src":"22806:3:88"},"nativeSrc":"22806:19:88","nodeType":"YulFunctionCall","src":"22806:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22798:4:88","nodeType":"YulIdentifier","src":"22798:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22431:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22582:9:88","nodeType":"YulTypedName","src":"22582:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22596:4:88","nodeType":"YulTypedName","src":"22596:4:88","type":""}],"src":"22431:400:88"},{"body":{"nativeSrc":"23010:227:88","nodeType":"YulBlock","src":"23010:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23027:9:88","nodeType":"YulIdentifier","src":"23027:9:88"},{"kind":"number","nativeSrc":"23038:2:88","nodeType":"YulLiteral","src":"23038:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23020:6:88","nodeType":"YulIdentifier","src":"23020:6:88"},"nativeSrc":"23020:21:88","nodeType":"YulFunctionCall","src":"23020:21:88"},"nativeSrc":"23020:21:88","nodeType":"YulExpressionStatement","src":"23020:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23061:9:88","nodeType":"YulIdentifier","src":"23061:9:88"},{"kind":"number","nativeSrc":"23072:2:88","nodeType":"YulLiteral","src":"23072:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23057:3:88","nodeType":"YulIdentifier","src":"23057:3:88"},"nativeSrc":"23057:18:88","nodeType":"YulFunctionCall","src":"23057:18:88"},{"kind":"number","nativeSrc":"23077:2:88","nodeType":"YulLiteral","src":"23077:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"23050:6:88","nodeType":"YulIdentifier","src":"23050:6:88"},"nativeSrc":"23050:30:88","nodeType":"YulFunctionCall","src":"23050:30:88"},"nativeSrc":"23050:30:88","nodeType":"YulExpressionStatement","src":"23050:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23100:9:88","nodeType":"YulIdentifier","src":"23100:9:88"},{"kind":"number","nativeSrc":"23111:2:88","nodeType":"YulLiteral","src":"23111:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23096:3:88","nodeType":"YulIdentifier","src":"23096:3:88"},"nativeSrc":"23096:18:88","nodeType":"YulFunctionCall","src":"23096:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265","kind":"string","nativeSrc":"23116:34:88","nodeType":"YulLiteral","src":"23116:34:88","type":"","value":"Validation: ensuroCocFee must be"}],"functionName":{"name":"mstore","nativeSrc":"23089:6:88","nodeType":"YulIdentifier","src":"23089:6:88"},"nativeSrc":"23089:62:88","nodeType":"YulFunctionCall","src":"23089:62:88"},"nativeSrc":"23089:62:88","nodeType":"YulExpressionStatement","src":"23089:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23171:9:88","nodeType":"YulIdentifier","src":"23171:9:88"},{"kind":"number","nativeSrc":"23182:2:88","nodeType":"YulLiteral","src":"23182:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23167:3:88","nodeType":"YulIdentifier","src":"23167:3:88"},"nativeSrc":"23167:18:88","nodeType":"YulFunctionCall","src":"23167:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"23187:7:88","nodeType":"YulLiteral","src":"23187:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"23160:6:88","nodeType":"YulIdentifier","src":"23160:6:88"},"nativeSrc":"23160:35:88","nodeType":"YulFunctionCall","src":"23160:35:88"},"nativeSrc":"23160:35:88","nodeType":"YulExpressionStatement","src":"23160:35:88"},{"nativeSrc":"23204:27:88","nodeType":"YulAssignment","src":"23204:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23216:9:88","nodeType":"YulIdentifier","src":"23216:9:88"},{"kind":"number","nativeSrc":"23227:3:88","nodeType":"YulLiteral","src":"23227:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23212:3:88","nodeType":"YulIdentifier","src":"23212:3:88"},"nativeSrc":"23212:19:88","nodeType":"YulFunctionCall","src":"23212:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23204:4:88","nodeType":"YulIdentifier","src":"23204:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22836:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22987:9:88","nodeType":"YulTypedName","src":"22987:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23001:4:88","nodeType":"YulTypedName","src":"23001:4:88","type":""}],"src":"22836:401:88"},{"body":{"nativeSrc":"23416:227:88","nodeType":"YulBlock","src":"23416:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23433:9:88","nodeType":"YulIdentifier","src":"23433:9:88"},{"kind":"number","nativeSrc":"23444:2:88","nodeType":"YulLiteral","src":"23444:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23426:6:88","nodeType":"YulIdentifier","src":"23426:6:88"},"nativeSrc":"23426:21:88","nodeType":"YulFunctionCall","src":"23426:21:88"},"nativeSrc":"23426:21:88","nodeType":"YulExpressionStatement","src":"23426:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23467:9:88","nodeType":"YulIdentifier","src":"23467:9:88"},{"kind":"number","nativeSrc":"23478:2:88","nodeType":"YulLiteral","src":"23478:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23463:3:88","nodeType":"YulIdentifier","src":"23463:3:88"},"nativeSrc":"23463:18:88","nodeType":"YulFunctionCall","src":"23463:18:88"},{"kind":"number","nativeSrc":"23483:2:88","nodeType":"YulLiteral","src":"23483:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"23456:6:88","nodeType":"YulIdentifier","src":"23456:6:88"},"nativeSrc":"23456:30:88","nodeType":"YulFunctionCall","src":"23456:30:88"},"nativeSrc":"23456:30:88","nodeType":"YulExpressionStatement","src":"23456:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23506:9:88","nodeType":"YulIdentifier","src":"23506:9:88"},{"kind":"number","nativeSrc":"23517:2:88","nodeType":"YulLiteral","src":"23517:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23502:3:88","nodeType":"YulIdentifier","src":"23502:3:88"},"nativeSrc":"23502:18:88","nodeType":"YulFunctionCall","src":"23502:18:88"},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"23522:34:88","nodeType":"YulLiteral","src":"23522:34:88","type":"","value":"Validation: srRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"23495:6:88","nodeType":"YulIdentifier","src":"23495:6:88"},"nativeSrc":"23495:62:88","nodeType":"YulFunctionCall","src":"23495:62:88"},"nativeSrc":"23495:62:88","nodeType":"YulExpressionStatement","src":"23495:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23577:9:88","nodeType":"YulIdentifier","src":"23577:9:88"},{"kind":"number","nativeSrc":"23588:2:88","nodeType":"YulLiteral","src":"23588:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23573:3:88","nodeType":"YulIdentifier","src":"23573:3:88"},"nativeSrc":"23573:18:88","nodeType":"YulFunctionCall","src":"23573:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"23593:7:88","nodeType":"YulLiteral","src":"23593:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"23566:6:88","nodeType":"YulIdentifier","src":"23566:6:88"},"nativeSrc":"23566:35:88","nodeType":"YulFunctionCall","src":"23566:35:88"},"nativeSrc":"23566:35:88","nodeType":"YulExpressionStatement","src":"23566:35:88"},{"nativeSrc":"23610:27:88","nodeType":"YulAssignment","src":"23610:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23622:9:88","nodeType":"YulIdentifier","src":"23622:9:88"},{"kind":"number","nativeSrc":"23633:3:88","nodeType":"YulLiteral","src":"23633:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23618:3:88","nodeType":"YulIdentifier","src":"23618:3:88"},"nativeSrc":"23618:19:88","nodeType":"YulFunctionCall","src":"23618:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23610:4:88","nodeType":"YulIdentifier","src":"23610:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23242:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23393:9:88","nodeType":"YulTypedName","src":"23393:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23407:4:88","nodeType":"YulTypedName","src":"23407:4:88","type":""}],"src":"23242:401:88"},{"body":{"nativeSrc":"23822:227:88","nodeType":"YulBlock","src":"23822:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23839:9:88","nodeType":"YulIdentifier","src":"23839:9:88"},{"kind":"number","nativeSrc":"23850:2:88","nodeType":"YulLiteral","src":"23850:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23832:6:88","nodeType":"YulIdentifier","src":"23832:6:88"},"nativeSrc":"23832:21:88","nodeType":"YulFunctionCall","src":"23832:21:88"},"nativeSrc":"23832:21:88","nodeType":"YulExpressionStatement","src":"23832:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23873:9:88","nodeType":"YulIdentifier","src":"23873:9:88"},{"kind":"number","nativeSrc":"23884:2:88","nodeType":"YulLiteral","src":"23884:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23869:3:88","nodeType":"YulIdentifier","src":"23869:3:88"},"nativeSrc":"23869:18:88","nodeType":"YulFunctionCall","src":"23869:18:88"},{"kind":"number","nativeSrc":"23889:2:88","nodeType":"YulLiteral","src":"23889:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"23862:6:88","nodeType":"YulIdentifier","src":"23862:6:88"},"nativeSrc":"23862:30:88","nodeType":"YulFunctionCall","src":"23862:30:88"},"nativeSrc":"23862:30:88","nodeType":"YulExpressionStatement","src":"23862:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23912:9:88","nodeType":"YulIdentifier","src":"23912:9:88"},{"kind":"number","nativeSrc":"23923:2:88","nodeType":"YulLiteral","src":"23923:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23908:3:88","nodeType":"YulIdentifier","src":"23908:3:88"},"nativeSrc":"23908:18:88","nodeType":"YulFunctionCall","src":"23908:18:88"},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"23928:34:88","nodeType":"YulLiteral","src":"23928:34:88","type":"","value":"Validation: jrRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"23901:6:88","nodeType":"YulIdentifier","src":"23901:6:88"},"nativeSrc":"23901:62:88","nodeType":"YulFunctionCall","src":"23901:62:88"},"nativeSrc":"23901:62:88","nodeType":"YulExpressionStatement","src":"23901:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23983:9:88","nodeType":"YulIdentifier","src":"23983:9:88"},{"kind":"number","nativeSrc":"23994:2:88","nodeType":"YulLiteral","src":"23994:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23979:3:88","nodeType":"YulIdentifier","src":"23979:3:88"},"nativeSrc":"23979:18:88","nodeType":"YulFunctionCall","src":"23979:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"23999:7:88","nodeType":"YulLiteral","src":"23999:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"23972:6:88","nodeType":"YulIdentifier","src":"23972:6:88"},"nativeSrc":"23972:35:88","nodeType":"YulFunctionCall","src":"23972:35:88"},"nativeSrc":"23972:35:88","nodeType":"YulExpressionStatement","src":"23972:35:88"},{"nativeSrc":"24016:27:88","nodeType":"YulAssignment","src":"24016:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24028:9:88","nodeType":"YulIdentifier","src":"24028:9:88"},{"kind":"number","nativeSrc":"24039:3:88","nodeType":"YulLiteral","src":"24039:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24024:3:88","nodeType":"YulIdentifier","src":"24024:3:88"},"nativeSrc":"24024:19:88","nodeType":"YulFunctionCall","src":"24024:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24016:4:88","nodeType":"YulIdentifier","src":"24016:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23648:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23799:9:88","nodeType":"YulTypedName","src":"23799:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23813:4:88","nodeType":"YulTypedName","src":"23813:4:88","type":""}],"src":"23648:401:88"},{"body":{"nativeSrc":"24228:223:88","nodeType":"YulBlock","src":"24228:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24245:9:88","nodeType":"YulIdentifier","src":"24245:9:88"},{"kind":"number","nativeSrc":"24256:2:88","nodeType":"YulLiteral","src":"24256:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24238:6:88","nodeType":"YulIdentifier","src":"24238:6:88"},"nativeSrc":"24238:21:88","nodeType":"YulFunctionCall","src":"24238:21:88"},"nativeSrc":"24238:21:88","nodeType":"YulExpressionStatement","src":"24238:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24279:9:88","nodeType":"YulIdentifier","src":"24279:9:88"},{"kind":"number","nativeSrc":"24290:2:88","nodeType":"YulLiteral","src":"24290:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24275:3:88","nodeType":"YulIdentifier","src":"24275:3:88"},"nativeSrc":"24275:18:88","nodeType":"YulFunctionCall","src":"24275:18:88"},{"kind":"number","nativeSrc":"24295:2:88","nodeType":"YulLiteral","src":"24295:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"24268:6:88","nodeType":"YulIdentifier","src":"24268:6:88"},"nativeSrc":"24268:30:88","nodeType":"YulFunctionCall","src":"24268:30:88"},"nativeSrc":"24268:30:88","nodeType":"YulExpressionStatement","src":"24268:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24318:9:88","nodeType":"YulIdentifier","src":"24318:9:88"},{"kind":"number","nativeSrc":"24329:2:88","nodeType":"YulLiteral","src":"24329:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24314:3:88","nodeType":"YulIdentifier","src":"24314:3:88"},"nativeSrc":"24314:18:88","nodeType":"YulFunctionCall","src":"24314:18:88"},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e","kind":"string","nativeSrc":"24334:34:88","nodeType":"YulLiteral","src":"24334:34:88","type":"","value":"Exposure and MaxPayout must be >"}],"functionName":{"name":"mstore","nativeSrc":"24307:6:88","nodeType":"YulIdentifier","src":"24307:6:88"},"nativeSrc":"24307:62:88","nodeType":"YulFunctionCall","src":"24307:62:88"},"nativeSrc":"24307:62:88","nodeType":"YulExpressionStatement","src":"24307:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24389:9:88","nodeType":"YulIdentifier","src":"24389:9:88"},{"kind":"number","nativeSrc":"24400:2:88","nodeType":"YulLiteral","src":"24400:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24385:3:88","nodeType":"YulIdentifier","src":"24385:3:88"},"nativeSrc":"24385:18:88","nodeType":"YulFunctionCall","src":"24385:18:88"},{"hexValue":"30","kind":"string","nativeSrc":"24405:3:88","nodeType":"YulLiteral","src":"24405:3:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"24378:6:88","nodeType":"YulIdentifier","src":"24378:6:88"},"nativeSrc":"24378:31:88","nodeType":"YulFunctionCall","src":"24378:31:88"},"nativeSrc":"24378:31:88","nodeType":"YulExpressionStatement","src":"24378:31:88"},{"nativeSrc":"24418:27:88","nodeType":"YulAssignment","src":"24418:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24430:9:88","nodeType":"YulIdentifier","src":"24430:9:88"},{"kind":"number","nativeSrc":"24441:3:88","nodeType":"YulLiteral","src":"24441:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24426:3:88","nodeType":"YulIdentifier","src":"24426:3:88"},"nativeSrc":"24426:19:88","nodeType":"YulFunctionCall","src":"24426:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24418:4:88","nodeType":"YulIdentifier","src":"24418:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24054:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24205:9:88","nodeType":"YulTypedName","src":"24205:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24219:4:88","nodeType":"YulTypedName","src":"24219:4:88","type":""}],"src":"24054:397:88"},{"body":{"nativeSrc":"24630:233:88","nodeType":"YulBlock","src":"24630:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24647:9:88","nodeType":"YulIdentifier","src":"24647:9:88"},{"kind":"number","nativeSrc":"24658:2:88","nodeType":"YulLiteral","src":"24658:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24640:6:88","nodeType":"YulIdentifier","src":"24640:6:88"},"nativeSrc":"24640:21:88","nodeType":"YulFunctionCall","src":"24640:21:88"},"nativeSrc":"24640:21:88","nodeType":"YulExpressionStatement","src":"24640:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24681:9:88","nodeType":"YulIdentifier","src":"24681:9:88"},{"kind":"number","nativeSrc":"24692:2:88","nodeType":"YulLiteral","src":"24692:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24677:3:88","nodeType":"YulIdentifier","src":"24677:3:88"},"nativeSrc":"24677:18:88","nodeType":"YulFunctionCall","src":"24677:18:88"},{"kind":"number","nativeSrc":"24697:2:88","nodeType":"YulLiteral","src":"24697:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"24670:6:88","nodeType":"YulIdentifier","src":"24670:6:88"},"nativeSrc":"24670:30:88","nodeType":"YulFunctionCall","src":"24670:30:88"},"nativeSrc":"24670:30:88","nodeType":"YulExpressionStatement","src":"24670:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24720:9:88","nodeType":"YulIdentifier","src":"24720:9:88"},{"kind":"number","nativeSrc":"24731:2:88","nodeType":"YulLiteral","src":"24731:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24716:3:88","nodeType":"YulIdentifier","src":"24716:3:88"},"nativeSrc":"24716:18:88","nodeType":"YulFunctionCall","src":"24716:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"24736:34:88","nodeType":"YulLiteral","src":"24736:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"24709:6:88","nodeType":"YulIdentifier","src":"24709:6:88"},"nativeSrc":"24709:62:88","nodeType":"YulFunctionCall","src":"24709:62:88"},"nativeSrc":"24709:62:88","nodeType":"YulExpressionStatement","src":"24709:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24791:9:88","nodeType":"YulIdentifier","src":"24791:9:88"},{"kind":"number","nativeSrc":"24802:2:88","nodeType":"YulLiteral","src":"24802:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24787:3:88","nodeType":"YulIdentifier","src":"24787:3:88"},"nativeSrc":"24787:18:88","nodeType":"YulFunctionCall","src":"24787:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"24807:13:88","nodeType":"YulLiteral","src":"24807:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"24780:6:88","nodeType":"YulIdentifier","src":"24780:6:88"},"nativeSrc":"24780:41:88","nodeType":"YulFunctionCall","src":"24780:41:88"},"nativeSrc":"24780:41:88","nodeType":"YulExpressionStatement","src":"24780:41:88"},{"nativeSrc":"24830:27:88","nodeType":"YulAssignment","src":"24830:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24842:9:88","nodeType":"YulIdentifier","src":"24842:9:88"},{"kind":"number","nativeSrc":"24853:3:88","nodeType":"YulLiteral","src":"24853:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24838:3:88","nodeType":"YulIdentifier","src":"24838:3:88"},"nativeSrc":"24838:19:88","nodeType":"YulFunctionCall","src":"24838:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24830:4:88","nodeType":"YulIdentifier","src":"24830:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24456:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24607:9:88","nodeType":"YulTypedName","src":"24607:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24621:4:88","nodeType":"YulTypedName","src":"24621:4:88","type":""}],"src":"24456:407:88"},{"body":{"nativeSrc":"25042:166:88","nodeType":"YulBlock","src":"25042:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25059:9:88","nodeType":"YulIdentifier","src":"25059:9:88"},{"kind":"number","nativeSrc":"25070:2:88","nodeType":"YulLiteral","src":"25070:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25052:6:88","nodeType":"YulIdentifier","src":"25052:6:88"},"nativeSrc":"25052:21:88","nodeType":"YulFunctionCall","src":"25052:21:88"},"nativeSrc":"25052:21:88","nodeType":"YulExpressionStatement","src":"25052:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25093:9:88","nodeType":"YulIdentifier","src":"25093:9:88"},{"kind":"number","nativeSrc":"25104:2:88","nodeType":"YulLiteral","src":"25104:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25089:3:88","nodeType":"YulIdentifier","src":"25089:3:88"},"nativeSrc":"25089:18:88","nodeType":"YulFunctionCall","src":"25089:18:88"},{"kind":"number","nativeSrc":"25109:2:88","nodeType":"YulLiteral","src":"25109:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"25082:6:88","nodeType":"YulIdentifier","src":"25082:6:88"},"nativeSrc":"25082:30:88","nodeType":"YulFunctionCall","src":"25082:30:88"},"nativeSrc":"25082:30:88","nodeType":"YulExpressionStatement","src":"25082:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25132:9:88","nodeType":"YulIdentifier","src":"25132:9:88"},{"kind":"number","nativeSrc":"25143:2:88","nodeType":"YulLiteral","src":"25143:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25128:3:88","nodeType":"YulIdentifier","src":"25128:3:88"},"nativeSrc":"25128:18:88","nodeType":"YulFunctionCall","src":"25128:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"25148:18:88","nodeType":"YulLiteral","src":"25148:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"25121:6:88","nodeType":"YulIdentifier","src":"25121:6:88"},"nativeSrc":"25121:46:88","nodeType":"YulFunctionCall","src":"25121:46:88"},"nativeSrc":"25121:46:88","nodeType":"YulExpressionStatement","src":"25121:46:88"},{"nativeSrc":"25176:26:88","nodeType":"YulAssignment","src":"25176:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25188:9:88","nodeType":"YulIdentifier","src":"25188:9:88"},{"kind":"number","nativeSrc":"25199:2:88","nodeType":"YulLiteral","src":"25199:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25184:3:88","nodeType":"YulIdentifier","src":"25184:3:88"},"nativeSrc":"25184:18:88","nodeType":"YulFunctionCall","src":"25184:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25176:4:88","nodeType":"YulIdentifier","src":"25176:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24868:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25019:9:88","nodeType":"YulTypedName","src":"25019:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25033:4:88","nodeType":"YulTypedName","src":"25033:4:88","type":""}],"src":"24868:340:88"},{"body":{"nativeSrc":"25524:452:88","nodeType":"YulBlock","src":"25524:452:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25541:3:88","nodeType":"YulIdentifier","src":"25541:3:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25554:2:88","nodeType":"YulLiteral","src":"25554:2:88","type":"","value":"96"},{"name":"value0","nativeSrc":"25558:6:88","nodeType":"YulIdentifier","src":"25558:6:88"}],"functionName":{"name":"shl","nativeSrc":"25550:3:88","nodeType":"YulIdentifier","src":"25550:3:88"},"nativeSrc":"25550:15:88","nodeType":"YulFunctionCall","src":"25550:15:88"},{"arguments":[{"kind":"number","nativeSrc":"25571:26:88","nodeType":"YulLiteral","src":"25571:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nativeSrc":"25567:3:88","nodeType":"YulIdentifier","src":"25567:3:88"},"nativeSrc":"25567:31:88","nodeType":"YulFunctionCall","src":"25567:31:88"}],"functionName":{"name":"and","nativeSrc":"25546:3:88","nodeType":"YulIdentifier","src":"25546:3:88"},"nativeSrc":"25546:53:88","nodeType":"YulFunctionCall","src":"25546:53:88"}],"functionName":{"name":"mstore","nativeSrc":"25534:6:88","nodeType":"YulIdentifier","src":"25534:6:88"},"nativeSrc":"25534:66:88","nodeType":"YulFunctionCall","src":"25534:66:88"},"nativeSrc":"25534:66:88","nodeType":"YulExpressionStatement","src":"25534:66:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25620:3:88","nodeType":"YulIdentifier","src":"25620:3:88"},{"kind":"number","nativeSrc":"25625:2:88","nodeType":"YulLiteral","src":"25625:2:88","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"25616:3:88","nodeType":"YulIdentifier","src":"25616:3:88"},"nativeSrc":"25616:12:88","nodeType":"YulFunctionCall","src":"25616:12:88"},{"name":"value1","nativeSrc":"25630:6:88","nodeType":"YulIdentifier","src":"25630:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25609:6:88","nodeType":"YulIdentifier","src":"25609:6:88"},"nativeSrc":"25609:28:88","nodeType":"YulFunctionCall","src":"25609:28:88"},"nativeSrc":"25609:28:88","nodeType":"YulExpressionStatement","src":"25609:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25657:3:88","nodeType":"YulIdentifier","src":"25657:3:88"},{"kind":"number","nativeSrc":"25662:2:88","nodeType":"YulLiteral","src":"25662:2:88","type":"","value":"52"}],"functionName":{"name":"add","nativeSrc":"25653:3:88","nodeType":"YulIdentifier","src":"25653:3:88"},"nativeSrc":"25653:12:88","nodeType":"YulFunctionCall","src":"25653:12:88"},{"name":"value2","nativeSrc":"25667:6:88","nodeType":"YulIdentifier","src":"25667:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25646:6:88","nodeType":"YulIdentifier","src":"25646:6:88"},"nativeSrc":"25646:28:88","nodeType":"YulFunctionCall","src":"25646:28:88"},"nativeSrc":"25646:28:88","nodeType":"YulExpressionStatement","src":"25646:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25694:3:88","nodeType":"YulIdentifier","src":"25694:3:88"},{"kind":"number","nativeSrc":"25699:2:88","nodeType":"YulLiteral","src":"25699:2:88","type":"","value":"84"}],"functionName":{"name":"add","nativeSrc":"25690:3:88","nodeType":"YulIdentifier","src":"25690:3:88"},"nativeSrc":"25690:12:88","nodeType":"YulFunctionCall","src":"25690:12:88"},{"name":"value3","nativeSrc":"25704:6:88","nodeType":"YulIdentifier","src":"25704:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25683:6:88","nodeType":"YulIdentifier","src":"25683:6:88"},"nativeSrc":"25683:28:88","nodeType":"YulFunctionCall","src":"25683:28:88"},"nativeSrc":"25683:28:88","nodeType":"YulExpressionStatement","src":"25683:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25731:3:88","nodeType":"YulIdentifier","src":"25731:3:88"},{"kind":"number","nativeSrc":"25736:3:88","nodeType":"YulLiteral","src":"25736:3:88","type":"","value":"116"}],"functionName":{"name":"add","nativeSrc":"25727:3:88","nodeType":"YulIdentifier","src":"25727:3:88"},"nativeSrc":"25727:13:88","nodeType":"YulFunctionCall","src":"25727:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25750:3:88","nodeType":"YulLiteral","src":"25750:3:88","type":"","value":"216"},{"name":"value4","nativeSrc":"25755:6:88","nodeType":"YulIdentifier","src":"25755:6:88"}],"functionName":{"name":"shl","nativeSrc":"25746:3:88","nodeType":"YulIdentifier","src":"25746:3:88"},"nativeSrc":"25746:16:88","nodeType":"YulFunctionCall","src":"25746:16:88"},{"arguments":[{"kind":"number","nativeSrc":"25768:3:88","nodeType":"YulLiteral","src":"25768:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"25773:12:88","nodeType":"YulLiteral","src":"25773:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"25764:3:88","nodeType":"YulIdentifier","src":"25764:3:88"},"nativeSrc":"25764:22:88","nodeType":"YulFunctionCall","src":"25764:22:88"}],"functionName":{"name":"and","nativeSrc":"25742:3:88","nodeType":"YulIdentifier","src":"25742:3:88"},"nativeSrc":"25742:45:88","nodeType":"YulFunctionCall","src":"25742:45:88"}],"functionName":{"name":"mstore","nativeSrc":"25720:6:88","nodeType":"YulIdentifier","src":"25720:6:88"},"nativeSrc":"25720:68:88","nodeType":"YulFunctionCall","src":"25720:68:88"},"nativeSrc":"25720:68:88","nodeType":"YulExpressionStatement","src":"25720:68:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25808:3:88","nodeType":"YulIdentifier","src":"25808:3:88"},{"kind":"number","nativeSrc":"25813:3:88","nodeType":"YulLiteral","src":"25813:3:88","type":"","value":"121"}],"functionName":{"name":"add","nativeSrc":"25804:3:88","nodeType":"YulIdentifier","src":"25804:3:88"},"nativeSrc":"25804:13:88","nodeType":"YulFunctionCall","src":"25804:13:88"},{"name":"value5","nativeSrc":"25819:6:88","nodeType":"YulIdentifier","src":"25819:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25797:6:88","nodeType":"YulIdentifier","src":"25797:6:88"},"nativeSrc":"25797:29:88","nodeType":"YulFunctionCall","src":"25797:29:88"},"nativeSrc":"25797:29:88","nodeType":"YulExpressionStatement","src":"25797:29:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25846:3:88","nodeType":"YulIdentifier","src":"25846:3:88"},{"kind":"number","nativeSrc":"25851:3:88","nodeType":"YulLiteral","src":"25851:3:88","type":"","value":"153"}],"functionName":{"name":"add","nativeSrc":"25842:3:88","nodeType":"YulIdentifier","src":"25842:3:88"},"nativeSrc":"25842:13:88","nodeType":"YulFunctionCall","src":"25842:13:88"},{"name":"value6","nativeSrc":"25857:6:88","nodeType":"YulIdentifier","src":"25857:6:88"}],"functionName":{"name":"mstore","nativeSrc":"25835:6:88","nodeType":"YulIdentifier","src":"25835:6:88"},"nativeSrc":"25835:29:88","nodeType":"YulFunctionCall","src":"25835:29:88"},"nativeSrc":"25835:29:88","nodeType":"YulExpressionStatement","src":"25835:29:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"25884:3:88","nodeType":"YulIdentifier","src":"25884:3:88"},{"kind":"number","nativeSrc":"25889:3:88","nodeType":"YulLiteral","src":"25889:3:88","type":"","value":"185"}],"functionName":{"name":"add","nativeSrc":"25880:3:88","nodeType":"YulIdentifier","src":"25880:3:88"},"nativeSrc":"25880:13:88","nodeType":"YulFunctionCall","src":"25880:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25903:3:88","nodeType":"YulLiteral","src":"25903:3:88","type":"","value":"216"},{"name":"value7","nativeSrc":"25908:6:88","nodeType":"YulIdentifier","src":"25908:6:88"}],"functionName":{"name":"shl","nativeSrc":"25899:3:88","nodeType":"YulIdentifier","src":"25899:3:88"},"nativeSrc":"25899:16:88","nodeType":"YulFunctionCall","src":"25899:16:88"},{"arguments":[{"kind":"number","nativeSrc":"25921:3:88","nodeType":"YulLiteral","src":"25921:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"25926:12:88","nodeType":"YulLiteral","src":"25926:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"25917:3:88","nodeType":"YulIdentifier","src":"25917:3:88"},"nativeSrc":"25917:22:88","nodeType":"YulFunctionCall","src":"25917:22:88"}],"functionName":{"name":"and","nativeSrc":"25895:3:88","nodeType":"YulIdentifier","src":"25895:3:88"},"nativeSrc":"25895:45:88","nodeType":"YulFunctionCall","src":"25895:45:88"}],"functionName":{"name":"mstore","nativeSrc":"25873:6:88","nodeType":"YulIdentifier","src":"25873:6:88"},"nativeSrc":"25873:68:88","nodeType":"YulFunctionCall","src":"25873:68:88"},"nativeSrc":"25873:68:88","nodeType":"YulExpressionStatement","src":"25873:68:88"},{"nativeSrc":"25950:20:88","nodeType":"YulAssignment","src":"25950:20:88","value":{"arguments":[{"name":"pos","nativeSrc":"25961:3:88","nodeType":"YulIdentifier","src":"25961:3:88"},{"kind":"number","nativeSrc":"25966:3:88","nodeType":"YulLiteral","src":"25966:3:88","type":"","value":"190"}],"functionName":{"name":"add","nativeSrc":"25957:3:88","nodeType":"YulIdentifier","src":"25957:3:88"},"nativeSrc":"25957:13:88","nodeType":"YulFunctionCall","src":"25957:13:88"},"variableNames":[{"name":"end","nativeSrc":"25950:3:88","nodeType":"YulIdentifier","src":"25950:3:88"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed","nativeSrc":"25213:763:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25444:3:88","nodeType":"YulTypedName","src":"25444:3:88","type":""},{"name":"value7","nativeSrc":"25449:6:88","nodeType":"YulTypedName","src":"25449:6:88","type":""},{"name":"value6","nativeSrc":"25457:6:88","nodeType":"YulTypedName","src":"25457:6:88","type":""},{"name":"value5","nativeSrc":"25465:6:88","nodeType":"YulTypedName","src":"25465:6:88","type":""},{"name":"value4","nativeSrc":"25473:6:88","nodeType":"YulTypedName","src":"25473:6:88","type":""},{"name":"value3","nativeSrc":"25481:6:88","nodeType":"YulTypedName","src":"25481:6:88","type":""},{"name":"value2","nativeSrc":"25489:6:88","nodeType":"YulTypedName","src":"25489:6:88","type":""},{"name":"value1","nativeSrc":"25497:6:88","nodeType":"YulTypedName","src":"25497:6:88","type":""},{"name":"value0","nativeSrc":"25505:6:88","nodeType":"YulTypedName","src":"25505:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25516:3:88","nodeType":"YulTypedName","src":"25516:3:88","type":""}],"src":"25213:763:88"},{"body":{"nativeSrc":"26019:74:88","nodeType":"YulBlock","src":"26019:74:88","statements":[{"body":{"nativeSrc":"26042:22:88","nodeType":"YulBlock","src":"26042:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"26044:16:88","nodeType":"YulIdentifier","src":"26044:16:88"},"nativeSrc":"26044:18:88","nodeType":"YulFunctionCall","src":"26044:18:88"},"nativeSrc":"26044:18:88","nodeType":"YulExpressionStatement","src":"26044:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"26039:1:88","nodeType":"YulIdentifier","src":"26039:1:88"}],"functionName":{"name":"iszero","nativeSrc":"26032:6:88","nodeType":"YulIdentifier","src":"26032:6:88"},"nativeSrc":"26032:9:88","nodeType":"YulFunctionCall","src":"26032:9:88"},"nativeSrc":"26029:35:88","nodeType":"YulIf","src":"26029:35:88"},{"nativeSrc":"26073:14:88","nodeType":"YulAssignment","src":"26073:14:88","value":{"arguments":[{"name":"x","nativeSrc":"26082:1:88","nodeType":"YulIdentifier","src":"26082:1:88"},{"name":"y","nativeSrc":"26085:1:88","nodeType":"YulIdentifier","src":"26085:1:88"}],"functionName":{"name":"mod","nativeSrc":"26078:3:88","nodeType":"YulIdentifier","src":"26078:3:88"},"nativeSrc":"26078:9:88","nodeType":"YulFunctionCall","src":"26078:9:88"},"variableNames":[{"name":"r","nativeSrc":"26073:1:88","nodeType":"YulIdentifier","src":"26073:1:88"}]}]},"name":"mod_t_uint256","nativeSrc":"25981:112:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26004:1:88","nodeType":"YulTypedName","src":"26004:1:88","type":""},{"name":"y","nativeSrc":"26007:1:88","nodeType":"YulTypedName","src":"26007:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"26013:1:88","nodeType":"YulTypedName","src":"26013:1:88","type":""}],"src":"25981:112:88"},{"body":{"nativeSrc":"26167:115:88","nodeType":"YulBlock","src":"26167:115:88","statements":[{"body":{"nativeSrc":"26213:16:88","nodeType":"YulBlock","src":"26213:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26222:1:88","nodeType":"YulLiteral","src":"26222:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26225:1:88","nodeType":"YulLiteral","src":"26225:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26215:6:88","nodeType":"YulIdentifier","src":"26215:6:88"},"nativeSrc":"26215:12:88","nodeType":"YulFunctionCall","src":"26215:12:88"},"nativeSrc":"26215:12:88","nodeType":"YulExpressionStatement","src":"26215:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26188:7:88","nodeType":"YulIdentifier","src":"26188:7:88"},{"name":"headStart","nativeSrc":"26197:9:88","nodeType":"YulIdentifier","src":"26197:9:88"}],"functionName":{"name":"sub","nativeSrc":"26184:3:88","nodeType":"YulIdentifier","src":"26184:3:88"},"nativeSrc":"26184:23:88","nodeType":"YulFunctionCall","src":"26184:23:88"},{"kind":"number","nativeSrc":"26209:2:88","nodeType":"YulLiteral","src":"26209:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26180:3:88","nodeType":"YulIdentifier","src":"26180:3:88"},"nativeSrc":"26180:32:88","nodeType":"YulFunctionCall","src":"26180:32:88"},"nativeSrc":"26177:52:88","nodeType":"YulIf","src":"26177:52:88"},{"nativeSrc":"26238:38:88","nodeType":"YulAssignment","src":"26238:38:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26266:9:88","nodeType":"YulIdentifier","src":"26266:9:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"26248:17:88","nodeType":"YulIdentifier","src":"26248:17:88"},"nativeSrc":"26248:28:88","nodeType":"YulFunctionCall","src":"26248:28:88"},"variableNames":[{"name":"value0","nativeSrc":"26238:6:88","nodeType":"YulIdentifier","src":"26238:6:88"}]}]},"name":"abi_decode_tuple_t_uint40","nativeSrc":"26098:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26133:9:88","nodeType":"YulTypedName","src":"26133:9:88","type":""},{"name":"dataEnd","nativeSrc":"26144:7:88","nodeType":"YulTypedName","src":"26144:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26156:6:88","nodeType":"YulTypedName","src":"26156:6:88","type":""}],"src":"26098:184:88"},{"body":{"nativeSrc":"26461:182:88","nodeType":"YulBlock","src":"26461:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26478:9:88","nodeType":"YulIdentifier","src":"26478:9:88"},{"kind":"number","nativeSrc":"26489:2:88","nodeType":"YulLiteral","src":"26489:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26471:6:88","nodeType":"YulIdentifier","src":"26471:6:88"},"nativeSrc":"26471:21:88","nodeType":"YulFunctionCall","src":"26471:21:88"},"nativeSrc":"26471:21:88","nodeType":"YulExpressionStatement","src":"26471:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26512:9:88","nodeType":"YulIdentifier","src":"26512:9:88"},{"kind":"number","nativeSrc":"26523:2:88","nodeType":"YulLiteral","src":"26523:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26508:3:88","nodeType":"YulIdentifier","src":"26508:3:88"},"nativeSrc":"26508:18:88","nodeType":"YulFunctionCall","src":"26508:18:88"},{"kind":"number","nativeSrc":"26528:2:88","nodeType":"YulLiteral","src":"26528:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26501:6:88","nodeType":"YulIdentifier","src":"26501:6:88"},"nativeSrc":"26501:30:88","nodeType":"YulFunctionCall","src":"26501:30:88"},"nativeSrc":"26501:30:88","nodeType":"YulExpressionStatement","src":"26501:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26551:9:88","nodeType":"YulIdentifier","src":"26551:9:88"},{"kind":"number","nativeSrc":"26562:2:88","nodeType":"YulLiteral","src":"26562:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26547:3:88","nodeType":"YulIdentifier","src":"26547:3:88"},"nativeSrc":"26547:18:88","nodeType":"YulFunctionCall","src":"26547:18:88"},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","kind":"string","nativeSrc":"26567:34:88","nodeType":"YulLiteral","src":"26567:34:88","type":"","value":"Premium must be less than payout"}],"functionName":{"name":"mstore","nativeSrc":"26540:6:88","nodeType":"YulIdentifier","src":"26540:6:88"},"nativeSrc":"26540:62:88","nodeType":"YulFunctionCall","src":"26540:62:88"},"nativeSrc":"26540:62:88","nodeType":"YulExpressionStatement","src":"26540:62:88"},{"nativeSrc":"26611:26:88","nodeType":"YulAssignment","src":"26611:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26623:9:88","nodeType":"YulIdentifier","src":"26623:9:88"},{"kind":"number","nativeSrc":"26634:2:88","nodeType":"YulLiteral","src":"26634:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26619:3:88","nodeType":"YulIdentifier","src":"26619:3:88"},"nativeSrc":"26619:18:88","nodeType":"YulFunctionCall","src":"26619:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26611:4:88","nodeType":"YulIdentifier","src":"26611:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26287:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26438:9:88","nodeType":"YulTypedName","src":"26438:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26452:4:88","nodeType":"YulTypedName","src":"26452:4:88","type":""}],"src":"26287:356:88"},{"body":{"nativeSrc":"26822:171:88","nodeType":"YulBlock","src":"26822:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26839:9:88","nodeType":"YulIdentifier","src":"26839:9:88"},{"kind":"number","nativeSrc":"26850:2:88","nodeType":"YulLiteral","src":"26850:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26832:6:88","nodeType":"YulIdentifier","src":"26832:6:88"},"nativeSrc":"26832:21:88","nodeType":"YulFunctionCall","src":"26832:21:88"},"nativeSrc":"26832:21:88","nodeType":"YulExpressionStatement","src":"26832:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26873:9:88","nodeType":"YulIdentifier","src":"26873:9:88"},{"kind":"number","nativeSrc":"26884:2:88","nodeType":"YulLiteral","src":"26884:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26869:3:88","nodeType":"YulIdentifier","src":"26869:3:88"},"nativeSrc":"26869:18:88","nodeType":"YulFunctionCall","src":"26869:18:88"},{"kind":"number","nativeSrc":"26889:2:88","nodeType":"YulLiteral","src":"26889:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"26862:6:88","nodeType":"YulIdentifier","src":"26862:6:88"},"nativeSrc":"26862:30:88","nodeType":"YulFunctionCall","src":"26862:30:88"},"nativeSrc":"26862:30:88","nodeType":"YulExpressionStatement","src":"26862:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26912:9:88","nodeType":"YulIdentifier","src":"26912:9:88"},{"kind":"number","nativeSrc":"26923:2:88","nodeType":"YulLiteral","src":"26923:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26908:3:88","nodeType":"YulIdentifier","src":"26908:3:88"},"nativeSrc":"26908:18:88","nodeType":"YulFunctionCall","src":"26908:18:88"},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","kind":"string","nativeSrc":"26928:23:88","nodeType":"YulLiteral","src":"26928:23:88","type":"","value":"Old policy is expired"}],"functionName":{"name":"mstore","nativeSrc":"26901:6:88","nodeType":"YulIdentifier","src":"26901:6:88"},"nativeSrc":"26901:51:88","nodeType":"YulFunctionCall","src":"26901:51:88"},"nativeSrc":"26901:51:88","nodeType":"YulExpressionStatement","src":"26901:51:88"},{"nativeSrc":"26961:26:88","nodeType":"YulAssignment","src":"26961:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26973:9:88","nodeType":"YulIdentifier","src":"26973:9:88"},{"kind":"number","nativeSrc":"26984:2:88","nodeType":"YulLiteral","src":"26984:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26969:3:88","nodeType":"YulIdentifier","src":"26969:3:88"},"nativeSrc":"26969:18:88","nodeType":"YulFunctionCall","src":"26969:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26961:4:88","nodeType":"YulIdentifier","src":"26961:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26648:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26799:9:88","nodeType":"YulTypedName","src":"26799:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26813:4:88","nodeType":"YulTypedName","src":"26813:4:88","type":""}],"src":"26648:345:88"},{"body":{"nativeSrc":"27172:249:88","nodeType":"YulBlock","src":"27172:249:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27189:9:88","nodeType":"YulIdentifier","src":"27189:9:88"},{"kind":"number","nativeSrc":"27200:2:88","nodeType":"YulLiteral","src":"27200:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27182:6:88","nodeType":"YulIdentifier","src":"27182:6:88"},"nativeSrc":"27182:21:88","nodeType":"YulFunctionCall","src":"27182:21:88"},"nativeSrc":"27182:21:88","nodeType":"YulExpressionStatement","src":"27182:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27223:9:88","nodeType":"YulIdentifier","src":"27223:9:88"},{"kind":"number","nativeSrc":"27234:2:88","nodeType":"YulLiteral","src":"27234:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27219:3:88","nodeType":"YulIdentifier","src":"27219:3:88"},"nativeSrc":"27219:18:88","nodeType":"YulFunctionCall","src":"27219:18:88"},{"kind":"number","nativeSrc":"27239:2:88","nodeType":"YulLiteral","src":"27239:2:88","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"27212:6:88","nodeType":"YulIdentifier","src":"27212:6:88"},"nativeSrc":"27212:30:88","nodeType":"YulFunctionCall","src":"27212:30:88"},"nativeSrc":"27212:30:88","nodeType":"YulExpressionStatement","src":"27212:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27262:9:88","nodeType":"YulIdentifier","src":"27262:9:88"},{"kind":"number","nativeSrc":"27273:2:88","nodeType":"YulLiteral","src":"27273:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27258:3:88","nodeType":"YulIdentifier","src":"27258:3:88"},"nativeSrc":"27258:18:88","nodeType":"YulFunctionCall","src":"27258:18:88"},{"hexValue":"506f6c696379207265706c6163656d656e74206d757374206265206772656174","kind":"string","nativeSrc":"27278:34:88","nodeType":"YulLiteral","src":"27278:34:88","type":"","value":"Policy replacement must be great"}],"functionName":{"name":"mstore","nativeSrc":"27251:6:88","nodeType":"YulIdentifier","src":"27251:6:88"},"nativeSrc":"27251:62:88","nodeType":"YulFunctionCall","src":"27251:62:88"},"nativeSrc":"27251:62:88","nodeType":"YulExpressionStatement","src":"27251:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27333:9:88","nodeType":"YulIdentifier","src":"27333:9:88"},{"kind":"number","nativeSrc":"27344:2:88","nodeType":"YulLiteral","src":"27344:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27329:3:88","nodeType":"YulIdentifier","src":"27329:3:88"},"nativeSrc":"27329:18:88","nodeType":"YulFunctionCall","src":"27329:18:88"},{"hexValue":"6572206f7220657175616c207468616e206f6c6420706f6c696379","kind":"string","nativeSrc":"27349:29:88","nodeType":"YulLiteral","src":"27349:29:88","type":"","value":"er or equal than old policy"}],"functionName":{"name":"mstore","nativeSrc":"27322:6:88","nodeType":"YulIdentifier","src":"27322:6:88"},"nativeSrc":"27322:57:88","nodeType":"YulFunctionCall","src":"27322:57:88"},"nativeSrc":"27322:57:88","nodeType":"YulExpressionStatement","src":"27322:57:88"},{"nativeSrc":"27388:27:88","nodeType":"YulAssignment","src":"27388:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27400:9:88","nodeType":"YulIdentifier","src":"27400:9:88"},{"kind":"number","nativeSrc":"27411:3:88","nodeType":"YulLiteral","src":"27411:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27396:3:88","nodeType":"YulIdentifier","src":"27396:3:88"},"nativeSrc":"27396:19:88","nodeType":"YulFunctionCall","src":"27396:19:88"},"variableNames":[{"name":"tail","nativeSrc":"27388:4:88","nodeType":"YulIdentifier","src":"27388:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26998:423:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27149:9:88","nodeType":"YulTypedName","src":"27149:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27163:4:88","nodeType":"YulTypedName","src":"27163:4:88","type":""}],"src":"26998:423:88"},{"body":{"nativeSrc":"27474:128:88","nodeType":"YulBlock","src":"27474:128:88","statements":[{"nativeSrc":"27484:55:88","nodeType":"YulAssignment","src":"27484:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"27500:1:88","nodeType":"YulIdentifier","src":"27500:1:88"},{"kind":"number","nativeSrc":"27503:12:88","nodeType":"YulLiteral","src":"27503:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"27496:3:88","nodeType":"YulIdentifier","src":"27496:3:88"},"nativeSrc":"27496:20:88","nodeType":"YulFunctionCall","src":"27496:20:88"},{"arguments":[{"name":"y","nativeSrc":"27522:1:88","nodeType":"YulIdentifier","src":"27522:1:88"},{"kind":"number","nativeSrc":"27525:12:88","nodeType":"YulLiteral","src":"27525:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"27518:3:88","nodeType":"YulIdentifier","src":"27518:3:88"},"nativeSrc":"27518:20:88","nodeType":"YulFunctionCall","src":"27518:20:88"}],"functionName":{"name":"sub","nativeSrc":"27492:3:88","nodeType":"YulIdentifier","src":"27492:3:88"},"nativeSrc":"27492:47:88","nodeType":"YulFunctionCall","src":"27492:47:88"},"variableNames":[{"name":"diff","nativeSrc":"27484:4:88","nodeType":"YulIdentifier","src":"27484:4:88"}]},{"body":{"nativeSrc":"27574:22:88","nodeType":"YulBlock","src":"27574:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27576:16:88","nodeType":"YulIdentifier","src":"27576:16:88"},"nativeSrc":"27576:18:88","nodeType":"YulFunctionCall","src":"27576:18:88"},"nativeSrc":"27576:18:88","nodeType":"YulExpressionStatement","src":"27576:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"27554:4:88","nodeType":"YulIdentifier","src":"27554:4:88"},{"kind":"number","nativeSrc":"27560:12:88","nodeType":"YulLiteral","src":"27560:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27551:2:88","nodeType":"YulIdentifier","src":"27551:2:88"},"nativeSrc":"27551:22:88","nodeType":"YulFunctionCall","src":"27551:22:88"},"nativeSrc":"27548:48:88","nodeType":"YulIf","src":"27548:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"27426:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27456:1:88","nodeType":"YulTypedName","src":"27456:1:88","type":""},{"name":"y","nativeSrc":"27459:1:88","nodeType":"YulTypedName","src":"27459:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"27465:4:88","nodeType":"YulTypedName","src":"27465:4:88","type":""}],"src":"27426:176:88"},{"body":{"nativeSrc":"27652:137:88","nodeType":"YulBlock","src":"27652:137:88","statements":[{"nativeSrc":"27662:31:88","nodeType":"YulVariableDeclaration","src":"27662:31:88","value":{"arguments":[{"name":"y","nativeSrc":"27677:1:88","nodeType":"YulIdentifier","src":"27677:1:88"},{"kind":"number","nativeSrc":"27680:12:88","nodeType":"YulLiteral","src":"27680:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"27673:3:88","nodeType":"YulIdentifier","src":"27673:3:88"},"nativeSrc":"27673:20:88","nodeType":"YulFunctionCall","src":"27673:20:88"},"variables":[{"name":"y_1","nativeSrc":"27666:3:88","nodeType":"YulTypedName","src":"27666:3:88","type":""}]},{"body":{"nativeSrc":"27717:22:88","nodeType":"YulBlock","src":"27717:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"27719:16:88","nodeType":"YulIdentifier","src":"27719:16:88"},"nativeSrc":"27719:18:88","nodeType":"YulFunctionCall","src":"27719:18:88"},"nativeSrc":"27719:18:88","nodeType":"YulExpressionStatement","src":"27719:18:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"27712:3:88","nodeType":"YulIdentifier","src":"27712:3:88"}],"functionName":{"name":"iszero","nativeSrc":"27705:6:88","nodeType":"YulIdentifier","src":"27705:6:88"},"nativeSrc":"27705:11:88","nodeType":"YulFunctionCall","src":"27705:11:88"},"nativeSrc":"27702:37:88","nodeType":"YulIf","src":"27702:37:88"},{"nativeSrc":"27748:35:88","nodeType":"YulAssignment","src":"27748:35:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"27761:1:88","nodeType":"YulIdentifier","src":"27761:1:88"},{"kind":"number","nativeSrc":"27764:12:88","nodeType":"YulLiteral","src":"27764:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"27757:3:88","nodeType":"YulIdentifier","src":"27757:3:88"},"nativeSrc":"27757:20:88","nodeType":"YulFunctionCall","src":"27757:20:88"},{"name":"y_1","nativeSrc":"27779:3:88","nodeType":"YulIdentifier","src":"27779:3:88"}],"functionName":{"name":"div","nativeSrc":"27753:3:88","nodeType":"YulIdentifier","src":"27753:3:88"},"nativeSrc":"27753:30:88","nodeType":"YulFunctionCall","src":"27753:30:88"},"variableNames":[{"name":"r","nativeSrc":"27748:1:88","nodeType":"YulIdentifier","src":"27748:1:88"}]}]},"name":"checked_div_t_uint40","nativeSrc":"27607:182:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27637:1:88","nodeType":"YulTypedName","src":"27637:1:88","type":""},{"name":"y","nativeSrc":"27640:1:88","nodeType":"YulTypedName","src":"27640:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"27646:1:88","nodeType":"YulTypedName","src":"27646:1:88","type":""}],"src":"27607:182:88"},{"body":{"nativeSrc":"27968:177:88","nodeType":"YulBlock","src":"27968:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27985:9:88","nodeType":"YulIdentifier","src":"27985:9:88"},{"kind":"number","nativeSrc":"27996:2:88","nodeType":"YulLiteral","src":"27996:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27978:6:88","nodeType":"YulIdentifier","src":"27978:6:88"},"nativeSrc":"27978:21:88","nodeType":"YulFunctionCall","src":"27978:21:88"},"nativeSrc":"27978:21:88","nodeType":"YulExpressionStatement","src":"27978:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28019:9:88","nodeType":"YulIdentifier","src":"28019:9:88"},{"kind":"number","nativeSrc":"28030:2:88","nodeType":"YulLiteral","src":"28030:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28015:3:88","nodeType":"YulIdentifier","src":"28015:3:88"},"nativeSrc":"28015:18:88","nodeType":"YulFunctionCall","src":"28015:18:88"},{"kind":"number","nativeSrc":"28035:2:88","nodeType":"YulLiteral","src":"28035:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"28008:6:88","nodeType":"YulIdentifier","src":"28008:6:88"},"nativeSrc":"28008:30:88","nodeType":"YulFunctionCall","src":"28008:30:88"},"nativeSrc":"28008:30:88","nodeType":"YulExpressionStatement","src":"28008:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28058:9:88","nodeType":"YulIdentifier","src":"28058:9:88"},{"kind":"number","nativeSrc":"28069:2:88","nodeType":"YulLiteral","src":"28069:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28054:3:88","nodeType":"YulIdentifier","src":"28054:3:88"},"nativeSrc":"28054:18:88","nodeType":"YulFunctionCall","src":"28054:18:88"},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","kind":"string","nativeSrc":"28074:29:88","nodeType":"YulLiteral","src":"28074:29:88","type":"","value":"Policy exceeds max duration"}],"functionName":{"name":"mstore","nativeSrc":"28047:6:88","nodeType":"YulIdentifier","src":"28047:6:88"},"nativeSrc":"28047:57:88","nodeType":"YulFunctionCall","src":"28047:57:88"},"nativeSrc":"28047:57:88","nodeType":"YulExpressionStatement","src":"28047:57:88"},{"nativeSrc":"28113:26:88","nodeType":"YulAssignment","src":"28113:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28125:9:88","nodeType":"YulIdentifier","src":"28125:9:88"},{"kind":"number","nativeSrc":"28136:2:88","nodeType":"YulLiteral","src":"28136:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28121:3:88","nodeType":"YulIdentifier","src":"28121:3:88"},"nativeSrc":"28121:18:88","nodeType":"YulFunctionCall","src":"28121:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28113:4:88","nodeType":"YulIdentifier","src":"28113:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27794:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27945:9:88","nodeType":"YulTypedName","src":"27945:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27959:4:88","nodeType":"YulTypedName","src":"27959:4:88","type":""}],"src":"27794:351:88"},{"body":{"nativeSrc":"28279:171:88","nodeType":"YulBlock","src":"28279:171:88","statements":[{"nativeSrc":"28289:26:88","nodeType":"YulAssignment","src":"28289:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28301:9:88","nodeType":"YulIdentifier","src":"28301:9:88"},{"kind":"number","nativeSrc":"28312:2:88","nodeType":"YulLiteral","src":"28312:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28297:3:88","nodeType":"YulIdentifier","src":"28297:3:88"},"nativeSrc":"28297:18:88","nodeType":"YulFunctionCall","src":"28297:18:88"},"variableNames":[{"name":"tail","nativeSrc":"28289:4:88","nodeType":"YulIdentifier","src":"28289:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28331:9:88","nodeType":"YulIdentifier","src":"28331:9:88"},{"arguments":[{"name":"value0","nativeSrc":"28346:6:88","nodeType":"YulIdentifier","src":"28346:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28362:3:88","nodeType":"YulLiteral","src":"28362:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"28367:1:88","nodeType":"YulLiteral","src":"28367:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"28358:3:88","nodeType":"YulIdentifier","src":"28358:3:88"},"nativeSrc":"28358:11:88","nodeType":"YulFunctionCall","src":"28358:11:88"},{"kind":"number","nativeSrc":"28371:1:88","nodeType":"YulLiteral","src":"28371:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"28354:3:88","nodeType":"YulIdentifier","src":"28354:3:88"},"nativeSrc":"28354:19:88","nodeType":"YulFunctionCall","src":"28354:19:88"}],"functionName":{"name":"and","nativeSrc":"28342:3:88","nodeType":"YulIdentifier","src":"28342:3:88"},"nativeSrc":"28342:32:88","nodeType":"YulFunctionCall","src":"28342:32:88"}],"functionName":{"name":"mstore","nativeSrc":"28324:6:88","nodeType":"YulIdentifier","src":"28324:6:88"},"nativeSrc":"28324:51:88","nodeType":"YulFunctionCall","src":"28324:51:88"},"nativeSrc":"28324:51:88","nodeType":"YulExpressionStatement","src":"28324:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28395:9:88","nodeType":"YulIdentifier","src":"28395:9:88"},{"kind":"number","nativeSrc":"28406:2:88","nodeType":"YulLiteral","src":"28406:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28391:3:88","nodeType":"YulIdentifier","src":"28391:3:88"},"nativeSrc":"28391:18:88","nodeType":"YulFunctionCall","src":"28391:18:88"},{"arguments":[{"name":"value1","nativeSrc":"28415:6:88","nodeType":"YulIdentifier","src":"28415:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28431:3:88","nodeType":"YulLiteral","src":"28431:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"28436:1:88","nodeType":"YulLiteral","src":"28436:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"28427:3:88","nodeType":"YulIdentifier","src":"28427:3:88"},"nativeSrc":"28427:11:88","nodeType":"YulFunctionCall","src":"28427:11:88"},{"kind":"number","nativeSrc":"28440:1:88","nodeType":"YulLiteral","src":"28440:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"28423:3:88","nodeType":"YulIdentifier","src":"28423:3:88"},"nativeSrc":"28423:19:88","nodeType":"YulFunctionCall","src":"28423:19:88"}],"functionName":{"name":"and","nativeSrc":"28411:3:88","nodeType":"YulIdentifier","src":"28411:3:88"},"nativeSrc":"28411:32:88","nodeType":"YulFunctionCall","src":"28411:32:88"}],"functionName":{"name":"mstore","nativeSrc":"28384:6:88","nodeType":"YulIdentifier","src":"28384:6:88"},"nativeSrc":"28384:60:88","nodeType":"YulFunctionCall","src":"28384:60:88"},"nativeSrc":"28384:60:88","nodeType":"YulExpressionStatement","src":"28384:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"28150:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28240:9:88","nodeType":"YulTypedName","src":"28240:9:88","type":""},{"name":"value1","nativeSrc":"28251:6:88","nodeType":"YulTypedName","src":"28251:6:88","type":""},{"name":"value0","nativeSrc":"28259:6:88","nodeType":"YulTypedName","src":"28259:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28270:4:88","nodeType":"YulTypedName","src":"28270:4:88","type":""}],"src":"28150:300:88"},{"body":{"nativeSrc":"28536:103:88","nodeType":"YulBlock","src":"28536:103:88","statements":[{"body":{"nativeSrc":"28582:16:88","nodeType":"YulBlock","src":"28582:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28591:1:88","nodeType":"YulLiteral","src":"28591:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28594:1:88","nodeType":"YulLiteral","src":"28594:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28584:6:88","nodeType":"YulIdentifier","src":"28584:6:88"},"nativeSrc":"28584:12:88","nodeType":"YulFunctionCall","src":"28584:12:88"},"nativeSrc":"28584:12:88","nodeType":"YulExpressionStatement","src":"28584:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28557:7:88","nodeType":"YulIdentifier","src":"28557:7:88"},{"name":"headStart","nativeSrc":"28566:9:88","nodeType":"YulIdentifier","src":"28566:9:88"}],"functionName":{"name":"sub","nativeSrc":"28553:3:88","nodeType":"YulIdentifier","src":"28553:3:88"},"nativeSrc":"28553:23:88","nodeType":"YulFunctionCall","src":"28553:23:88"},{"kind":"number","nativeSrc":"28578:2:88","nodeType":"YulLiteral","src":"28578:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"28549:3:88","nodeType":"YulIdentifier","src":"28549:3:88"},"nativeSrc":"28549:32:88","nodeType":"YulFunctionCall","src":"28549:32:88"},"nativeSrc":"28546:52:88","nodeType":"YulIf","src":"28546:52:88"},{"nativeSrc":"28607:26:88","nodeType":"YulAssignment","src":"28607:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28623:9:88","nodeType":"YulIdentifier","src":"28623:9:88"}],"functionName":{"name":"mload","nativeSrc":"28617:5:88","nodeType":"YulIdentifier","src":"28617:5:88"},"nativeSrc":"28617:16:88","nodeType":"YulFunctionCall","src":"28617:16:88"},"variableNames":[{"name":"value0","nativeSrc":"28607:6:88","nodeType":"YulIdentifier","src":"28607:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"28455:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28502:9:88","nodeType":"YulTypedName","src":"28502:9:88","type":""},{"name":"dataEnd","nativeSrc":"28513:7:88","nodeType":"YulTypedName","src":"28513:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28525:6:88","nodeType":"YulTypedName","src":"28525:6:88","type":""}],"src":"28455:184:88"},{"body":{"nativeSrc":"28818:235:88","nodeType":"YulBlock","src":"28818:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28835:9:88","nodeType":"YulIdentifier","src":"28835:9:88"},{"kind":"number","nativeSrc":"28846:2:88","nodeType":"YulLiteral","src":"28846:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28828:6:88","nodeType":"YulIdentifier","src":"28828:6:88"},"nativeSrc":"28828:21:88","nodeType":"YulFunctionCall","src":"28828:21:88"},"nativeSrc":"28828:21:88","nodeType":"YulExpressionStatement","src":"28828:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28869:9:88","nodeType":"YulIdentifier","src":"28869:9:88"},{"kind":"number","nativeSrc":"28880:2:88","nodeType":"YulLiteral","src":"28880:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28865:3:88","nodeType":"YulIdentifier","src":"28865:3:88"},"nativeSrc":"28865:18:88","nodeType":"YulFunctionCall","src":"28865:18:88"},{"kind":"number","nativeSrc":"28885:2:88","nodeType":"YulLiteral","src":"28885:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"28858:6:88","nodeType":"YulIdentifier","src":"28858:6:88"},"nativeSrc":"28858:30:88","nodeType":"YulFunctionCall","src":"28858:30:88"},"nativeSrc":"28858:30:88","nodeType":"YulExpressionStatement","src":"28858:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28908:9:88","nodeType":"YulIdentifier","src":"28908:9:88"},{"kind":"number","nativeSrc":"28919:2:88","nodeType":"YulLiteral","src":"28919:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28904:3:88","nodeType":"YulIdentifier","src":"28904:3:88"},"nativeSrc":"28904:18:88","nodeType":"YulFunctionCall","src":"28904:18:88"},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e736665","kind":"string","nativeSrc":"28924:34:88","nodeType":"YulLiteral","src":"28924:34:88","type":"","value":"You must allow ENSURO to transfe"}],"functionName":{"name":"mstore","nativeSrc":"28897:6:88","nodeType":"YulIdentifier","src":"28897:6:88"},"nativeSrc":"28897:62:88","nodeType":"YulFunctionCall","src":"28897:62:88"},"nativeSrc":"28897:62:88","nodeType":"YulExpressionStatement","src":"28897:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28979:9:88","nodeType":"YulIdentifier","src":"28979:9:88"},{"kind":"number","nativeSrc":"28990:2:88","nodeType":"YulLiteral","src":"28990:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28975:3:88","nodeType":"YulIdentifier","src":"28975:3:88"},"nativeSrc":"28975:18:88","nodeType":"YulFunctionCall","src":"28975:18:88"},{"hexValue":"7220746865207072656d69756d","kind":"string","nativeSrc":"28995:15:88","nodeType":"YulLiteral","src":"28995:15:88","type":"","value":"r the premium"}],"functionName":{"name":"mstore","nativeSrc":"28968:6:88","nodeType":"YulIdentifier","src":"28968:6:88"},"nativeSrc":"28968:43:88","nodeType":"YulFunctionCall","src":"28968:43:88"},"nativeSrc":"28968:43:88","nodeType":"YulExpressionStatement","src":"28968:43:88"},{"nativeSrc":"29020:27:88","nodeType":"YulAssignment","src":"29020:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29032:9:88","nodeType":"YulIdentifier","src":"29032:9:88"},{"kind":"number","nativeSrc":"29043:3:88","nodeType":"YulLiteral","src":"29043:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29028:3:88","nodeType":"YulIdentifier","src":"29028:3:88"},"nativeSrc":"29028:19:88","nodeType":"YulFunctionCall","src":"29028:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29020:4:88","nodeType":"YulIdentifier","src":"29020:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28644:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28795:9:88","nodeType":"YulTypedName","src":"28795:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28809:4:88","nodeType":"YulTypedName","src":"28809:4:88","type":""}],"src":"28644:409:88"},{"body":{"nativeSrc":"29232:237:88","nodeType":"YulBlock","src":"29232:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29249:9:88","nodeType":"YulIdentifier","src":"29249:9:88"},{"kind":"number","nativeSrc":"29260:2:88","nodeType":"YulLiteral","src":"29260:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29242:6:88","nodeType":"YulIdentifier","src":"29242:6:88"},"nativeSrc":"29242:21:88","nodeType":"YulFunctionCall","src":"29242:21:88"},"nativeSrc":"29242:21:88","nodeType":"YulExpressionStatement","src":"29242:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29283:9:88","nodeType":"YulIdentifier","src":"29283:9:88"},{"kind":"number","nativeSrc":"29294:2:88","nodeType":"YulLiteral","src":"29294:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29279:3:88","nodeType":"YulIdentifier","src":"29279:3:88"},"nativeSrc":"29279:18:88","nodeType":"YulFunctionCall","src":"29279:18:88"},{"kind":"number","nativeSrc":"29299:2:88","nodeType":"YulLiteral","src":"29299:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"29272:6:88","nodeType":"YulIdentifier","src":"29272:6:88"},"nativeSrc":"29272:30:88","nodeType":"YulFunctionCall","src":"29272:30:88"},"nativeSrc":"29272:30:88","nodeType":"YulExpressionStatement","src":"29272:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29322:9:88","nodeType":"YulIdentifier","src":"29322:9:88"},{"kind":"number","nativeSrc":"29333:2:88","nodeType":"YulLiteral","src":"29333:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29318:3:88","nodeType":"YulIdentifier","src":"29318:3:88"},"nativeSrc":"29318:18:88","nodeType":"YulFunctionCall","src":"29318:18:88"},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e73","kind":"string","nativeSrc":"29338:34:88","nodeType":"YulLiteral","src":"29338:34:88","type":"","value":"Payer must allow caller to trans"}],"functionName":{"name":"mstore","nativeSrc":"29311:6:88","nodeType":"YulIdentifier","src":"29311:6:88"},"nativeSrc":"29311:62:88","nodeType":"YulFunctionCall","src":"29311:62:88"},"nativeSrc":"29311:62:88","nodeType":"YulExpressionStatement","src":"29311:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29393:9:88","nodeType":"YulIdentifier","src":"29393:9:88"},{"kind":"number","nativeSrc":"29404:2:88","nodeType":"YulLiteral","src":"29404:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29389:3:88","nodeType":"YulIdentifier","src":"29389:3:88"},"nativeSrc":"29389:18:88","nodeType":"YulFunctionCall","src":"29389:18:88"},{"hexValue":"66657220746865207072656d69756d","kind":"string","nativeSrc":"29409:17:88","nodeType":"YulLiteral","src":"29409:17:88","type":"","value":"fer the premium"}],"functionName":{"name":"mstore","nativeSrc":"29382:6:88","nodeType":"YulIdentifier","src":"29382:6:88"},"nativeSrc":"29382:45:88","nodeType":"YulFunctionCall","src":"29382:45:88"},"nativeSrc":"29382:45:88","nodeType":"YulExpressionStatement","src":"29382:45:88"},{"nativeSrc":"29436:27:88","nodeType":"YulAssignment","src":"29436:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29448:9:88","nodeType":"YulIdentifier","src":"29448:9:88"},{"kind":"number","nativeSrc":"29459:3:88","nodeType":"YulLiteral","src":"29459:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29444:3:88","nodeType":"YulIdentifier","src":"29444:3:88"},"nativeSrc":"29444:19:88","nodeType":"YulFunctionCall","src":"29444:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29436:4:88","nodeType":"YulIdentifier","src":"29436:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29058:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29209:9:88","nodeType":"YulTypedName","src":"29209:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29223:4:88","nodeType":"YulTypedName","src":"29223:4:88","type":""}],"src":"29058:411:88"},{"body":{"nativeSrc":"29648:240:88","nodeType":"YulBlock","src":"29648:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29665:9:88","nodeType":"YulIdentifier","src":"29665:9:88"},{"kind":"number","nativeSrc":"29676:2:88","nodeType":"YulLiteral","src":"29676:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29658:6:88","nodeType":"YulIdentifier","src":"29658:6:88"},"nativeSrc":"29658:21:88","nodeType":"YulFunctionCall","src":"29658:21:88"},"nativeSrc":"29658:21:88","nodeType":"YulExpressionStatement","src":"29658:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29699:9:88","nodeType":"YulIdentifier","src":"29699:9:88"},{"kind":"number","nativeSrc":"29710:2:88","nodeType":"YulLiteral","src":"29710:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29695:3:88","nodeType":"YulIdentifier","src":"29695:3:88"},"nativeSrc":"29695:18:88","nodeType":"YulFunctionCall","src":"29695:18:88"},{"kind":"number","nativeSrc":"29715:2:88","nodeType":"YulLiteral","src":"29715:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"29688:6:88","nodeType":"YulIdentifier","src":"29688:6:88"},"nativeSrc":"29688:30:88","nodeType":"YulFunctionCall","src":"29688:30:88"},"nativeSrc":"29688:30:88","nodeType":"YulExpressionStatement","src":"29688:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29738:9:88","nodeType":"YulIdentifier","src":"29738:9:88"},{"kind":"number","nativeSrc":"29749:2:88","nodeType":"YulLiteral","src":"29749:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29734:3:88","nodeType":"YulIdentifier","src":"29734:3:88"},"nativeSrc":"29734:18:88","nodeType":"YulFunctionCall","src":"29734:18:88"},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e20","kind":"string","nativeSrc":"29754:34:88","nodeType":"YulLiteral","src":"29754:34:88","type":"","value":"RiskModule: Payout is more than "}],"functionName":{"name":"mstore","nativeSrc":"29727:6:88","nodeType":"YulIdentifier","src":"29727:6:88"},"nativeSrc":"29727:62:88","nodeType":"YulFunctionCall","src":"29727:62:88"},"nativeSrc":"29727:62:88","nodeType":"YulExpressionStatement","src":"29727:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29809:9:88","nodeType":"YulIdentifier","src":"29809:9:88"},{"kind":"number","nativeSrc":"29820:2:88","nodeType":"YulLiteral","src":"29820:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29805:3:88","nodeType":"YulIdentifier","src":"29805:3:88"},"nativeSrc":"29805:18:88","nodeType":"YulFunctionCall","src":"29805:18:88"},{"hexValue":"6d6178696d756d2070657220706f6c696379","kind":"string","nativeSrc":"29825:20:88","nodeType":"YulLiteral","src":"29825:20:88","type":"","value":"maximum per policy"}],"functionName":{"name":"mstore","nativeSrc":"29798:6:88","nodeType":"YulIdentifier","src":"29798:6:88"},"nativeSrc":"29798:48:88","nodeType":"YulFunctionCall","src":"29798:48:88"},"nativeSrc":"29798:48:88","nodeType":"YulExpressionStatement","src":"29798:48:88"},{"nativeSrc":"29855:27:88","nodeType":"YulAssignment","src":"29855:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29867:9:88","nodeType":"YulIdentifier","src":"29867:9:88"},{"kind":"number","nativeSrc":"29878:3:88","nodeType":"YulLiteral","src":"29878:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29863:3:88","nodeType":"YulIdentifier","src":"29863:3:88"},"nativeSrc":"29863:19:88","nodeType":"YulFunctionCall","src":"29863:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29855:4:88","nodeType":"YulIdentifier","src":"29855:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29474:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29625:9:88","nodeType":"YulTypedName","src":"29625:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29639:4:88","nodeType":"YulTypedName","src":"29639:4:88","type":""}],"src":"29474:414:88"},{"body":{"nativeSrc":"30067:225:88","nodeType":"YulBlock","src":"30067:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30084:9:88","nodeType":"YulIdentifier","src":"30084:9:88"},{"kind":"number","nativeSrc":"30095:2:88","nodeType":"YulLiteral","src":"30095:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30077:6:88","nodeType":"YulIdentifier","src":"30077:6:88"},"nativeSrc":"30077:21:88","nodeType":"YulFunctionCall","src":"30077:21:88"},"nativeSrc":"30077:21:88","nodeType":"YulExpressionStatement","src":"30077:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30118:9:88","nodeType":"YulIdentifier","src":"30118:9:88"},{"kind":"number","nativeSrc":"30129:2:88","nodeType":"YulLiteral","src":"30129:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30114:3:88","nodeType":"YulIdentifier","src":"30114:3:88"},"nativeSrc":"30114:18:88","nodeType":"YulFunctionCall","src":"30114:18:88"},{"kind":"number","nativeSrc":"30134:2:88","nodeType":"YulLiteral","src":"30134:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"30107:6:88","nodeType":"YulIdentifier","src":"30107:6:88"},"nativeSrc":"30107:30:88","nodeType":"YulFunctionCall","src":"30107:30:88"},"nativeSrc":"30107:30:88","nodeType":"YulExpressionStatement","src":"30107:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30157:9:88","nodeType":"YulIdentifier","src":"30157:9:88"},{"kind":"number","nativeSrc":"30168:2:88","nodeType":"YulLiteral","src":"30168:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30153:3:88","nodeType":"YulIdentifier","src":"30153:3:88"},"nativeSrc":"30153:18:88","nodeType":"YulFunctionCall","src":"30153:18:88"},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565","kind":"string","nativeSrc":"30173:34:88","nodeType":"YulLiteral","src":"30173:34:88","type":"","value":"RiskModule: Exposure limit excee"}],"functionName":{"name":"mstore","nativeSrc":"30146:6:88","nodeType":"YulIdentifier","src":"30146:6:88"},"nativeSrc":"30146:62:88","nodeType":"YulFunctionCall","src":"30146:62:88"},"nativeSrc":"30146:62:88","nodeType":"YulExpressionStatement","src":"30146:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30228:9:88","nodeType":"YulIdentifier","src":"30228:9:88"},{"kind":"number","nativeSrc":"30239:2:88","nodeType":"YulLiteral","src":"30239:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30224:3:88","nodeType":"YulIdentifier","src":"30224:3:88"},"nativeSrc":"30224:18:88","nodeType":"YulFunctionCall","src":"30224:18:88"},{"hexValue":"646564","kind":"string","nativeSrc":"30244:5:88","nodeType":"YulLiteral","src":"30244:5:88","type":"","value":"ded"}],"functionName":{"name":"mstore","nativeSrc":"30217:6:88","nodeType":"YulIdentifier","src":"30217:6:88"},"nativeSrc":"30217:33:88","nodeType":"YulFunctionCall","src":"30217:33:88"},"nativeSrc":"30217:33:88","nodeType":"YulExpressionStatement","src":"30217:33:88"},{"nativeSrc":"30259:27:88","nodeType":"YulAssignment","src":"30259:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30271:9:88","nodeType":"YulIdentifier","src":"30271:9:88"},{"kind":"number","nativeSrc":"30282:3:88","nodeType":"YulLiteral","src":"30282:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30267:3:88","nodeType":"YulIdentifier","src":"30267:3:88"},"nativeSrc":"30267:19:88","nodeType":"YulFunctionCall","src":"30267:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30259:4:88","nodeType":"YulIdentifier","src":"30259:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29893:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30044:9:88","nodeType":"YulTypedName","src":"30044:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30058:4:88","nodeType":"YulTypedName","src":"30058:4:88","type":""}],"src":"29893:399:88"},{"body":{"nativeSrc":"30351:971:88","nodeType":"YulBlock","src":"30351:971:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30368:3:88","nodeType":"YulIdentifier","src":"30368:3:88"},{"arguments":[{"name":"value","nativeSrc":"30379:5:88","nodeType":"YulIdentifier","src":"30379:5:88"}],"functionName":{"name":"mload","nativeSrc":"30373:5:88","nodeType":"YulIdentifier","src":"30373:5:88"},"nativeSrc":"30373:12:88","nodeType":"YulFunctionCall","src":"30373:12:88"}],"functionName":{"name":"mstore","nativeSrc":"30361:6:88","nodeType":"YulIdentifier","src":"30361:6:88"},"nativeSrc":"30361:25:88","nodeType":"YulFunctionCall","src":"30361:25:88"},"nativeSrc":"30361:25:88","nodeType":"YulExpressionStatement","src":"30361:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30406:3:88","nodeType":"YulIdentifier","src":"30406:3:88"},{"kind":"number","nativeSrc":"30411:4:88","nodeType":"YulLiteral","src":"30411:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30402:3:88","nodeType":"YulIdentifier","src":"30402:3:88"},"nativeSrc":"30402:14:88","nodeType":"YulFunctionCall","src":"30402:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30428:5:88","nodeType":"YulIdentifier","src":"30428:5:88"},{"kind":"number","nativeSrc":"30435:4:88","nodeType":"YulLiteral","src":"30435:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30424:3:88","nodeType":"YulIdentifier","src":"30424:3:88"},"nativeSrc":"30424:16:88","nodeType":"YulFunctionCall","src":"30424:16:88"}],"functionName":{"name":"mload","nativeSrc":"30418:5:88","nodeType":"YulIdentifier","src":"30418:5:88"},"nativeSrc":"30418:23:88","nodeType":"YulFunctionCall","src":"30418:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30395:6:88","nodeType":"YulIdentifier","src":"30395:6:88"},"nativeSrc":"30395:47:88","nodeType":"YulFunctionCall","src":"30395:47:88"},"nativeSrc":"30395:47:88","nodeType":"YulExpressionStatement","src":"30395:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30462:3:88","nodeType":"YulIdentifier","src":"30462:3:88"},{"kind":"number","nativeSrc":"30467:4:88","nodeType":"YulLiteral","src":"30467:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"30458:3:88","nodeType":"YulIdentifier","src":"30458:3:88"},"nativeSrc":"30458:14:88","nodeType":"YulFunctionCall","src":"30458:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30484:5:88","nodeType":"YulIdentifier","src":"30484:5:88"},{"kind":"number","nativeSrc":"30491:4:88","nodeType":"YulLiteral","src":"30491:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"30480:3:88","nodeType":"YulIdentifier","src":"30480:3:88"},"nativeSrc":"30480:16:88","nodeType":"YulFunctionCall","src":"30480:16:88"}],"functionName":{"name":"mload","nativeSrc":"30474:5:88","nodeType":"YulIdentifier","src":"30474:5:88"},"nativeSrc":"30474:23:88","nodeType":"YulFunctionCall","src":"30474:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30451:6:88","nodeType":"YulIdentifier","src":"30451:6:88"},"nativeSrc":"30451:47:88","nodeType":"YulFunctionCall","src":"30451:47:88"},"nativeSrc":"30451:47:88","nodeType":"YulExpressionStatement","src":"30451:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30518:3:88","nodeType":"YulIdentifier","src":"30518:3:88"},{"kind":"number","nativeSrc":"30523:4:88","nodeType":"YulLiteral","src":"30523:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"30514:3:88","nodeType":"YulIdentifier","src":"30514:3:88"},"nativeSrc":"30514:14:88","nodeType":"YulFunctionCall","src":"30514:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30540:5:88","nodeType":"YulIdentifier","src":"30540:5:88"},{"kind":"number","nativeSrc":"30547:4:88","nodeType":"YulLiteral","src":"30547:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"30536:3:88","nodeType":"YulIdentifier","src":"30536:3:88"},"nativeSrc":"30536:16:88","nodeType":"YulFunctionCall","src":"30536:16:88"}],"functionName":{"name":"mload","nativeSrc":"30530:5:88","nodeType":"YulIdentifier","src":"30530:5:88"},"nativeSrc":"30530:23:88","nodeType":"YulFunctionCall","src":"30530:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30507:6:88","nodeType":"YulIdentifier","src":"30507:6:88"},"nativeSrc":"30507:47:88","nodeType":"YulFunctionCall","src":"30507:47:88"},"nativeSrc":"30507:47:88","nodeType":"YulExpressionStatement","src":"30507:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30574:3:88","nodeType":"YulIdentifier","src":"30574:3:88"},{"kind":"number","nativeSrc":"30579:4:88","nodeType":"YulLiteral","src":"30579:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"30570:3:88","nodeType":"YulIdentifier","src":"30570:3:88"},"nativeSrc":"30570:14:88","nodeType":"YulFunctionCall","src":"30570:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30596:5:88","nodeType":"YulIdentifier","src":"30596:5:88"},{"kind":"number","nativeSrc":"30603:4:88","nodeType":"YulLiteral","src":"30603:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"30592:3:88","nodeType":"YulIdentifier","src":"30592:3:88"},"nativeSrc":"30592:16:88","nodeType":"YulFunctionCall","src":"30592:16:88"}],"functionName":{"name":"mload","nativeSrc":"30586:5:88","nodeType":"YulIdentifier","src":"30586:5:88"},"nativeSrc":"30586:23:88","nodeType":"YulFunctionCall","src":"30586:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30563:6:88","nodeType":"YulIdentifier","src":"30563:6:88"},"nativeSrc":"30563:47:88","nodeType":"YulFunctionCall","src":"30563:47:88"},"nativeSrc":"30563:47:88","nodeType":"YulExpressionStatement","src":"30563:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30630:3:88","nodeType":"YulIdentifier","src":"30630:3:88"},{"kind":"number","nativeSrc":"30635:4:88","nodeType":"YulLiteral","src":"30635:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"30626:3:88","nodeType":"YulIdentifier","src":"30626:3:88"},"nativeSrc":"30626:14:88","nodeType":"YulFunctionCall","src":"30626:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30652:5:88","nodeType":"YulIdentifier","src":"30652:5:88"},{"kind":"number","nativeSrc":"30659:4:88","nodeType":"YulLiteral","src":"30659:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"30648:3:88","nodeType":"YulIdentifier","src":"30648:3:88"},"nativeSrc":"30648:16:88","nodeType":"YulFunctionCall","src":"30648:16:88"}],"functionName":{"name":"mload","nativeSrc":"30642:5:88","nodeType":"YulIdentifier","src":"30642:5:88"},"nativeSrc":"30642:23:88","nodeType":"YulFunctionCall","src":"30642:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30619:6:88","nodeType":"YulIdentifier","src":"30619:6:88"},"nativeSrc":"30619:47:88","nodeType":"YulFunctionCall","src":"30619:47:88"},"nativeSrc":"30619:47:88","nodeType":"YulExpressionStatement","src":"30619:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30686:3:88","nodeType":"YulIdentifier","src":"30686:3:88"},{"kind":"number","nativeSrc":"30691:4:88","nodeType":"YulLiteral","src":"30691:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"30682:3:88","nodeType":"YulIdentifier","src":"30682:3:88"},"nativeSrc":"30682:14:88","nodeType":"YulFunctionCall","src":"30682:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30708:5:88","nodeType":"YulIdentifier","src":"30708:5:88"},{"kind":"number","nativeSrc":"30715:4:88","nodeType":"YulLiteral","src":"30715:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"30704:3:88","nodeType":"YulIdentifier","src":"30704:3:88"},"nativeSrc":"30704:16:88","nodeType":"YulFunctionCall","src":"30704:16:88"}],"functionName":{"name":"mload","nativeSrc":"30698:5:88","nodeType":"YulIdentifier","src":"30698:5:88"},"nativeSrc":"30698:23:88","nodeType":"YulFunctionCall","src":"30698:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30675:6:88","nodeType":"YulIdentifier","src":"30675:6:88"},"nativeSrc":"30675:47:88","nodeType":"YulFunctionCall","src":"30675:47:88"},"nativeSrc":"30675:47:88","nodeType":"YulExpressionStatement","src":"30675:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30742:3:88","nodeType":"YulIdentifier","src":"30742:3:88"},{"kind":"number","nativeSrc":"30747:4:88","nodeType":"YulLiteral","src":"30747:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"30738:3:88","nodeType":"YulIdentifier","src":"30738:3:88"},"nativeSrc":"30738:14:88","nodeType":"YulFunctionCall","src":"30738:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30764:5:88","nodeType":"YulIdentifier","src":"30764:5:88"},{"kind":"number","nativeSrc":"30771:4:88","nodeType":"YulLiteral","src":"30771:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"30760:3:88","nodeType":"YulIdentifier","src":"30760:3:88"},"nativeSrc":"30760:16:88","nodeType":"YulFunctionCall","src":"30760:16:88"}],"functionName":{"name":"mload","nativeSrc":"30754:5:88","nodeType":"YulIdentifier","src":"30754:5:88"},"nativeSrc":"30754:23:88","nodeType":"YulFunctionCall","src":"30754:23:88"}],"functionName":{"name":"mstore","nativeSrc":"30731:6:88","nodeType":"YulIdentifier","src":"30731:6:88"},"nativeSrc":"30731:47:88","nodeType":"YulFunctionCall","src":"30731:47:88"},"nativeSrc":"30731:47:88","nodeType":"YulExpressionStatement","src":"30731:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30798:3:88","nodeType":"YulIdentifier","src":"30798:3:88"},{"kind":"number","nativeSrc":"30803:6:88","nodeType":"YulLiteral","src":"30803:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"30794:3:88","nodeType":"YulIdentifier","src":"30794:3:88"},"nativeSrc":"30794:16:88","nodeType":"YulFunctionCall","src":"30794:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30822:5:88","nodeType":"YulIdentifier","src":"30822:5:88"},{"kind":"number","nativeSrc":"30829:6:88","nodeType":"YulLiteral","src":"30829:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"30818:3:88","nodeType":"YulIdentifier","src":"30818:3:88"},"nativeSrc":"30818:18:88","nodeType":"YulFunctionCall","src":"30818:18:88"}],"functionName":{"name":"mload","nativeSrc":"30812:5:88","nodeType":"YulIdentifier","src":"30812:5:88"},"nativeSrc":"30812:25:88","nodeType":"YulFunctionCall","src":"30812:25:88"}],"functionName":{"name":"mstore","nativeSrc":"30787:6:88","nodeType":"YulIdentifier","src":"30787:6:88"},"nativeSrc":"30787:51:88","nodeType":"YulFunctionCall","src":"30787:51:88"},"nativeSrc":"30787:51:88","nodeType":"YulExpressionStatement","src":"30787:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30858:3:88","nodeType":"YulIdentifier","src":"30858:3:88"},{"kind":"number","nativeSrc":"30863:6:88","nodeType":"YulLiteral","src":"30863:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"30854:3:88","nodeType":"YulIdentifier","src":"30854:3:88"},"nativeSrc":"30854:16:88","nodeType":"YulFunctionCall","src":"30854:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30882:5:88","nodeType":"YulIdentifier","src":"30882:5:88"},{"kind":"number","nativeSrc":"30889:6:88","nodeType":"YulLiteral","src":"30889:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"30878:3:88","nodeType":"YulIdentifier","src":"30878:3:88"},"nativeSrc":"30878:18:88","nodeType":"YulFunctionCall","src":"30878:18:88"}],"functionName":{"name":"mload","nativeSrc":"30872:5:88","nodeType":"YulIdentifier","src":"30872:5:88"},"nativeSrc":"30872:25:88","nodeType":"YulFunctionCall","src":"30872:25:88"}],"functionName":{"name":"mstore","nativeSrc":"30847:6:88","nodeType":"YulIdentifier","src":"30847:6:88"},"nativeSrc":"30847:51:88","nodeType":"YulFunctionCall","src":"30847:51:88"},"nativeSrc":"30847:51:88","nodeType":"YulExpressionStatement","src":"30847:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30918:3:88","nodeType":"YulIdentifier","src":"30918:3:88"},{"kind":"number","nativeSrc":"30923:6:88","nodeType":"YulLiteral","src":"30923:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"30914:3:88","nodeType":"YulIdentifier","src":"30914:3:88"},"nativeSrc":"30914:16:88","nodeType":"YulFunctionCall","src":"30914:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30942:5:88","nodeType":"YulIdentifier","src":"30942:5:88"},{"kind":"number","nativeSrc":"30949:6:88","nodeType":"YulLiteral","src":"30949:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"30938:3:88","nodeType":"YulIdentifier","src":"30938:3:88"},"nativeSrc":"30938:18:88","nodeType":"YulFunctionCall","src":"30938:18:88"}],"functionName":{"name":"mload","nativeSrc":"30932:5:88","nodeType":"YulIdentifier","src":"30932:5:88"},"nativeSrc":"30932:25:88","nodeType":"YulFunctionCall","src":"30932:25:88"}],"functionName":{"name":"mstore","nativeSrc":"30907:6:88","nodeType":"YulIdentifier","src":"30907:6:88"},"nativeSrc":"30907:51:88","nodeType":"YulFunctionCall","src":"30907:51:88"},"nativeSrc":"30907:51:88","nodeType":"YulExpressionStatement","src":"30907:51:88"},{"nativeSrc":"30967:45:88","nodeType":"YulVariableDeclaration","src":"30967:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30997:5:88","nodeType":"YulIdentifier","src":"30997:5:88"},{"kind":"number","nativeSrc":"31004:6:88","nodeType":"YulLiteral","src":"31004:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"30993:3:88","nodeType":"YulIdentifier","src":"30993:3:88"},"nativeSrc":"30993:18:88","nodeType":"YulFunctionCall","src":"30993:18:88"}],"functionName":{"name":"mload","nativeSrc":"30987:5:88","nodeType":"YulIdentifier","src":"30987:5:88"},"nativeSrc":"30987:25:88","nodeType":"YulFunctionCall","src":"30987:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"30971:12:88","nodeType":"YulTypedName","src":"30971:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"31053:12:88","nodeType":"YulIdentifier","src":"31053:12:88"},{"arguments":[{"name":"pos","nativeSrc":"31071:3:88","nodeType":"YulIdentifier","src":"31071:3:88"},{"kind":"number","nativeSrc":"31076:6:88","nodeType":"YulLiteral","src":"31076:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"31067:3:88","nodeType":"YulIdentifier","src":"31067:3:88"},"nativeSrc":"31067:16:88","nodeType":"YulFunctionCall","src":"31067:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"31021:31:88","nodeType":"YulIdentifier","src":"31021:31:88"},"nativeSrc":"31021:63:88","nodeType":"YulFunctionCall","src":"31021:63:88"},"nativeSrc":"31021:63:88","nodeType":"YulExpressionStatement","src":"31021:63:88"},{"nativeSrc":"31093:47:88","nodeType":"YulVariableDeclaration","src":"31093:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31125:5:88","nodeType":"YulIdentifier","src":"31125:5:88"},{"kind":"number","nativeSrc":"31132:6:88","nodeType":"YulLiteral","src":"31132:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"31121:3:88","nodeType":"YulIdentifier","src":"31121:3:88"},"nativeSrc":"31121:18:88","nodeType":"YulFunctionCall","src":"31121:18:88"}],"functionName":{"name":"mload","nativeSrc":"31115:5:88","nodeType":"YulIdentifier","src":"31115:5:88"},"nativeSrc":"31115:25:88","nodeType":"YulFunctionCall","src":"31115:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"31097:14:88","nodeType":"YulTypedName","src":"31097:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"31167:14:88","nodeType":"YulIdentifier","src":"31167:14:88"},{"arguments":[{"name":"pos","nativeSrc":"31187:3:88","nodeType":"YulIdentifier","src":"31187:3:88"},{"kind":"number","nativeSrc":"31192:6:88","nodeType":"YulLiteral","src":"31192:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"31183:3:88","nodeType":"YulIdentifier","src":"31183:3:88"},"nativeSrc":"31183:16:88","nodeType":"YulFunctionCall","src":"31183:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"31149:17:88","nodeType":"YulIdentifier","src":"31149:17:88"},"nativeSrc":"31149:51:88","nodeType":"YulFunctionCall","src":"31149:51:88"},"nativeSrc":"31149:51:88","nodeType":"YulExpressionStatement","src":"31149:51:88"},{"nativeSrc":"31209:47:88","nodeType":"YulVariableDeclaration","src":"31209:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31241:5:88","nodeType":"YulIdentifier","src":"31241:5:88"},{"kind":"number","nativeSrc":"31248:6:88","nodeType":"YulLiteral","src":"31248:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"31237:3:88","nodeType":"YulIdentifier","src":"31237:3:88"},"nativeSrc":"31237:18:88","nodeType":"YulFunctionCall","src":"31237:18:88"}],"functionName":{"name":"mload","nativeSrc":"31231:5:88","nodeType":"YulIdentifier","src":"31231:5:88"},"nativeSrc":"31231:25:88","nodeType":"YulFunctionCall","src":"31231:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"31213:14:88","nodeType":"YulTypedName","src":"31213:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"31283:14:88","nodeType":"YulIdentifier","src":"31283:14:88"},{"arguments":[{"name":"pos","nativeSrc":"31303:3:88","nodeType":"YulIdentifier","src":"31303:3:88"},{"kind":"number","nativeSrc":"31308:6:88","nodeType":"YulLiteral","src":"31308:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"31299:3:88","nodeType":"YulIdentifier","src":"31299:3:88"},"nativeSrc":"31299:16:88","nodeType":"YulFunctionCall","src":"31299:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"31265:17:88","nodeType":"YulIdentifier","src":"31265:17:88"},"nativeSrc":"31265:51:88","nodeType":"YulFunctionCall","src":"31265:51:88"},"nativeSrc":"31265:51:88","nodeType":"YulExpressionStatement","src":"31265:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"30297:1025:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30335:5:88","nodeType":"YulTypedName","src":"30335:5:88","type":""},{"name":"pos","nativeSrc":"30342:3:88","nodeType":"YulTypedName","src":"30342:3:88","type":""}],"src":"30297:1025:88"},{"body":{"nativeSrc":"31628:321:88","nodeType":"YulBlock","src":"31628:321:88","statements":[{"nativeSrc":"31638:27:88","nodeType":"YulAssignment","src":"31638:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31650:9:88","nodeType":"YulIdentifier","src":"31650:9:88"},{"kind":"number","nativeSrc":"31661:3:88","nodeType":"YulLiteral","src":"31661:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"31646:3:88","nodeType":"YulIdentifier","src":"31646:3:88"},"nativeSrc":"31646:19:88","nodeType":"YulFunctionCall","src":"31646:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31638:4:88","nodeType":"YulIdentifier","src":"31638:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"31712:6:88","nodeType":"YulIdentifier","src":"31712:6:88"},{"name":"headStart","nativeSrc":"31720:9:88","nodeType":"YulIdentifier","src":"31720:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"31674:37:88","nodeType":"YulIdentifier","src":"31674:37:88"},"nativeSrc":"31674:56:88","nodeType":"YulFunctionCall","src":"31674:56:88"},"nativeSrc":"31674:56:88","nodeType":"YulExpressionStatement","src":"31674:56:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"31768:6:88","nodeType":"YulIdentifier","src":"31768:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"31780:9:88","nodeType":"YulIdentifier","src":"31780:9:88"},{"kind":"number","nativeSrc":"31791:3:88","nodeType":"YulLiteral","src":"31791:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"31776:3:88","nodeType":"YulIdentifier","src":"31776:3:88"},"nativeSrc":"31776:19:88","nodeType":"YulFunctionCall","src":"31776:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"31739:28:88","nodeType":"YulIdentifier","src":"31739:28:88"},"nativeSrc":"31739:57:88","nodeType":"YulFunctionCall","src":"31739:57:88"},"nativeSrc":"31739:57:88","nodeType":"YulExpressionStatement","src":"31739:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31816:9:88","nodeType":"YulIdentifier","src":"31816:9:88"},{"kind":"number","nativeSrc":"31827:3:88","nodeType":"YulLiteral","src":"31827:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"31812:3:88","nodeType":"YulIdentifier","src":"31812:3:88"},"nativeSrc":"31812:19:88","nodeType":"YulFunctionCall","src":"31812:19:88"},{"arguments":[{"name":"value2","nativeSrc":"31837:6:88","nodeType":"YulIdentifier","src":"31837:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31853:3:88","nodeType":"YulLiteral","src":"31853:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"31858:1:88","nodeType":"YulLiteral","src":"31858:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"31849:3:88","nodeType":"YulIdentifier","src":"31849:3:88"},"nativeSrc":"31849:11:88","nodeType":"YulFunctionCall","src":"31849:11:88"},{"kind":"number","nativeSrc":"31862:1:88","nodeType":"YulLiteral","src":"31862:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"31845:3:88","nodeType":"YulIdentifier","src":"31845:3:88"},"nativeSrc":"31845:19:88","nodeType":"YulFunctionCall","src":"31845:19:88"}],"functionName":{"name":"and","nativeSrc":"31833:3:88","nodeType":"YulIdentifier","src":"31833:3:88"},"nativeSrc":"31833:32:88","nodeType":"YulFunctionCall","src":"31833:32:88"}],"functionName":{"name":"mstore","nativeSrc":"31805:6:88","nodeType":"YulIdentifier","src":"31805:6:88"},"nativeSrc":"31805:61:88","nodeType":"YulFunctionCall","src":"31805:61:88"},"nativeSrc":"31805:61:88","nodeType":"YulExpressionStatement","src":"31805:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31886:9:88","nodeType":"YulIdentifier","src":"31886:9:88"},{"kind":"number","nativeSrc":"31897:3:88","nodeType":"YulLiteral","src":"31897:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"31882:3:88","nodeType":"YulIdentifier","src":"31882:3:88"},"nativeSrc":"31882:19:88","nodeType":"YulFunctionCall","src":"31882:19:88"},{"arguments":[{"name":"value3","nativeSrc":"31907:6:88","nodeType":"YulIdentifier","src":"31907:6:88"},{"kind":"number","nativeSrc":"31915:26:88","nodeType":"YulLiteral","src":"31915:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"31903:3:88","nodeType":"YulIdentifier","src":"31903:3:88"},"nativeSrc":"31903:39:88","nodeType":"YulFunctionCall","src":"31903:39:88"}],"functionName":{"name":"mstore","nativeSrc":"31875:6:88","nodeType":"YulIdentifier","src":"31875:6:88"},"nativeSrc":"31875:68:88","nodeType":"YulFunctionCall","src":"31875:68:88"},"nativeSrc":"31875:68:88","nodeType":"YulExpressionStatement","src":"31875:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed","nativeSrc":"31327:622:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31573:9:88","nodeType":"YulTypedName","src":"31573:9:88","type":""},{"name":"value3","nativeSrc":"31584:6:88","nodeType":"YulTypedName","src":"31584:6:88","type":""},{"name":"value2","nativeSrc":"31592:6:88","nodeType":"YulTypedName","src":"31592:6:88","type":""},{"name":"value1","nativeSrc":"31600:6:88","nodeType":"YulTypedName","src":"31600:6:88","type":""},{"name":"value0","nativeSrc":"31608:6:88","nodeType":"YulTypedName","src":"31608:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31619:4:88","nodeType":"YulTypedName","src":"31619:4:88","type":""}],"src":"31327:622:88"},{"body":{"nativeSrc":"32033:194:88","nodeType":"YulBlock","src":"32033:194:88","statements":[{"body":{"nativeSrc":"32079:16:88","nodeType":"YulBlock","src":"32079:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32088:1:88","nodeType":"YulLiteral","src":"32088:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"32091:1:88","nodeType":"YulLiteral","src":"32091:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32081:6:88","nodeType":"YulIdentifier","src":"32081:6:88"},"nativeSrc":"32081:12:88","nodeType":"YulFunctionCall","src":"32081:12:88"},"nativeSrc":"32081:12:88","nodeType":"YulExpressionStatement","src":"32081:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32054:7:88","nodeType":"YulIdentifier","src":"32054:7:88"},{"name":"headStart","nativeSrc":"32063:9:88","nodeType":"YulIdentifier","src":"32063:9:88"}],"functionName":{"name":"sub","nativeSrc":"32050:3:88","nodeType":"YulIdentifier","src":"32050:3:88"},"nativeSrc":"32050:23:88","nodeType":"YulFunctionCall","src":"32050:23:88"},{"kind":"number","nativeSrc":"32075:2:88","nodeType":"YulLiteral","src":"32075:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"32046:3:88","nodeType":"YulIdentifier","src":"32046:3:88"},"nativeSrc":"32046:32:88","nodeType":"YulFunctionCall","src":"32046:32:88"},"nativeSrc":"32043:52:88","nodeType":"YulIf","src":"32043:52:88"},{"nativeSrc":"32104:29:88","nodeType":"YulVariableDeclaration","src":"32104:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32123:9:88","nodeType":"YulIdentifier","src":"32123:9:88"}],"functionName":{"name":"mload","nativeSrc":"32117:5:88","nodeType":"YulIdentifier","src":"32117:5:88"},"nativeSrc":"32117:16:88","nodeType":"YulFunctionCall","src":"32117:16:88"},"variables":[{"name":"value","nativeSrc":"32108:5:88","nodeType":"YulTypedName","src":"32108:5:88","type":""}]},{"body":{"nativeSrc":"32181:16:88","nodeType":"YulBlock","src":"32181:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32190:1:88","nodeType":"YulLiteral","src":"32190:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"32193:1:88","nodeType":"YulLiteral","src":"32193:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32183:6:88","nodeType":"YulIdentifier","src":"32183:6:88"},"nativeSrc":"32183:12:88","nodeType":"YulFunctionCall","src":"32183:12:88"},"nativeSrc":"32183:12:88","nodeType":"YulExpressionStatement","src":"32183:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32155:5:88","nodeType":"YulIdentifier","src":"32155:5:88"},{"arguments":[{"name":"value","nativeSrc":"32166:5:88","nodeType":"YulIdentifier","src":"32166:5:88"},{"kind":"number","nativeSrc":"32173:4:88","nodeType":"YulLiteral","src":"32173:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"32162:3:88","nodeType":"YulIdentifier","src":"32162:3:88"},"nativeSrc":"32162:16:88","nodeType":"YulFunctionCall","src":"32162:16:88"}],"functionName":{"name":"eq","nativeSrc":"32152:2:88","nodeType":"YulIdentifier","src":"32152:2:88"},"nativeSrc":"32152:27:88","nodeType":"YulFunctionCall","src":"32152:27:88"}],"functionName":{"name":"iszero","nativeSrc":"32145:6:88","nodeType":"YulIdentifier","src":"32145:6:88"},"nativeSrc":"32145:35:88","nodeType":"YulFunctionCall","src":"32145:35:88"},"nativeSrc":"32142:55:88","nodeType":"YulIf","src":"32142:55:88"},{"nativeSrc":"32206:15:88","nodeType":"YulAssignment","src":"32206:15:88","value":{"name":"value","nativeSrc":"32216:5:88","nodeType":"YulIdentifier","src":"32216:5:88"},"variableNames":[{"name":"value0","nativeSrc":"32206:6:88","nodeType":"YulIdentifier","src":"32206:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"31954:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31999:9:88","nodeType":"YulTypedName","src":"31999:9:88","type":""},{"name":"dataEnd","nativeSrc":"32010:7:88","nodeType":"YulTypedName","src":"32010:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32022:6:88","nodeType":"YulTypedName","src":"32022:6:88","type":""}],"src":"31954:273:88"},{"body":{"nativeSrc":"32279:104:88","nodeType":"YulBlock","src":"32279:104:88","statements":[{"nativeSrc":"32289:39:88","nodeType":"YulAssignment","src":"32289:39:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"32305:1:88","nodeType":"YulIdentifier","src":"32305:1:88"},{"kind":"number","nativeSrc":"32308:4:88","nodeType":"YulLiteral","src":"32308:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"32301:3:88","nodeType":"YulIdentifier","src":"32301:3:88"},"nativeSrc":"32301:12:88","nodeType":"YulFunctionCall","src":"32301:12:88"},{"arguments":[{"name":"y","nativeSrc":"32319:1:88","nodeType":"YulIdentifier","src":"32319:1:88"},{"kind":"number","nativeSrc":"32322:4:88","nodeType":"YulLiteral","src":"32322:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"32315:3:88","nodeType":"YulIdentifier","src":"32315:3:88"},"nativeSrc":"32315:12:88","nodeType":"YulFunctionCall","src":"32315:12:88"}],"functionName":{"name":"sub","nativeSrc":"32297:3:88","nodeType":"YulIdentifier","src":"32297:3:88"},"nativeSrc":"32297:31:88","nodeType":"YulFunctionCall","src":"32297:31:88"},"variableNames":[{"name":"diff","nativeSrc":"32289:4:88","nodeType":"YulIdentifier","src":"32289:4:88"}]},{"body":{"nativeSrc":"32355:22:88","nodeType":"YulBlock","src":"32355:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"32357:16:88","nodeType":"YulIdentifier","src":"32357:16:88"},"nativeSrc":"32357:18:88","nodeType":"YulFunctionCall","src":"32357:18:88"},"nativeSrc":"32357:18:88","nodeType":"YulExpressionStatement","src":"32357:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"32343:4:88","nodeType":"YulIdentifier","src":"32343:4:88"},{"kind":"number","nativeSrc":"32349:4:88","nodeType":"YulLiteral","src":"32349:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"32340:2:88","nodeType":"YulIdentifier","src":"32340:2:88"},"nativeSrc":"32340:14:88","nodeType":"YulFunctionCall","src":"32340:14:88"},"nativeSrc":"32337:40:88","nodeType":"YulIf","src":"32337:40:88"}]},"name":"checked_sub_t_uint8","nativeSrc":"32232:151:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"32261:1:88","nodeType":"YulTypedName","src":"32261:1:88","type":""},{"name":"y","nativeSrc":"32264:1:88","nodeType":"YulTypedName","src":"32264:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"32270:4:88","nodeType":"YulTypedName","src":"32270:4:88","type":""}],"src":"32232:151:88"},{"body":{"nativeSrc":"32457:306:88","nodeType":"YulBlock","src":"32457:306:88","statements":[{"nativeSrc":"32467:10:88","nodeType":"YulAssignment","src":"32467:10:88","value":{"kind":"number","nativeSrc":"32476:1:88","nodeType":"YulLiteral","src":"32476:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"32467:5:88","nodeType":"YulIdentifier","src":"32467:5:88"}]},{"nativeSrc":"32486:13:88","nodeType":"YulAssignment","src":"32486:13:88","value":{"name":"_base","nativeSrc":"32494:5:88","nodeType":"YulIdentifier","src":"32494:5:88"},"variableNames":[{"name":"base","nativeSrc":"32486:4:88","nodeType":"YulIdentifier","src":"32486:4:88"}]},{"body":{"nativeSrc":"32544:213:88","nodeType":"YulBlock","src":"32544:213:88","statements":[{"body":{"nativeSrc":"32586:22:88","nodeType":"YulBlock","src":"32586:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"32588:16:88","nodeType":"YulIdentifier","src":"32588:16:88"},"nativeSrc":"32588:18:88","nodeType":"YulFunctionCall","src":"32588:18:88"},"nativeSrc":"32588:18:88","nodeType":"YulExpressionStatement","src":"32588:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"32564:4:88","nodeType":"YulIdentifier","src":"32564:4:88"},{"arguments":[{"name":"max","nativeSrc":"32574:3:88","nodeType":"YulIdentifier","src":"32574:3:88"},{"name":"base","nativeSrc":"32579:4:88","nodeType":"YulIdentifier","src":"32579:4:88"}],"functionName":{"name":"div","nativeSrc":"32570:3:88","nodeType":"YulIdentifier","src":"32570:3:88"},"nativeSrc":"32570:14:88","nodeType":"YulFunctionCall","src":"32570:14:88"}],"functionName":{"name":"gt","nativeSrc":"32561:2:88","nodeType":"YulIdentifier","src":"32561:2:88"},"nativeSrc":"32561:24:88","nodeType":"YulFunctionCall","src":"32561:24:88"},"nativeSrc":"32558:50:88","nodeType":"YulIf","src":"32558:50:88"},{"body":{"nativeSrc":"32641:29:88","nodeType":"YulBlock","src":"32641:29:88","statements":[{"nativeSrc":"32643:25:88","nodeType":"YulAssignment","src":"32643:25:88","value":{"arguments":[{"name":"power","nativeSrc":"32656:5:88","nodeType":"YulIdentifier","src":"32656:5:88"},{"name":"base","nativeSrc":"32663:4:88","nodeType":"YulIdentifier","src":"32663:4:88"}],"functionName":{"name":"mul","nativeSrc":"32652:3:88","nodeType":"YulIdentifier","src":"32652:3:88"},"nativeSrc":"32652:16:88","nodeType":"YulFunctionCall","src":"32652:16:88"},"variableNames":[{"name":"power","nativeSrc":"32643:5:88","nodeType":"YulIdentifier","src":"32643:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"32628:8:88","nodeType":"YulIdentifier","src":"32628:8:88"},{"kind":"number","nativeSrc":"32638:1:88","nodeType":"YulLiteral","src":"32638:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"32624:3:88","nodeType":"YulIdentifier","src":"32624:3:88"},"nativeSrc":"32624:16:88","nodeType":"YulFunctionCall","src":"32624:16:88"},"nativeSrc":"32621:49:88","nodeType":"YulIf","src":"32621:49:88"},{"nativeSrc":"32683:23:88","nodeType":"YulAssignment","src":"32683:23:88","value":{"arguments":[{"name":"base","nativeSrc":"32695:4:88","nodeType":"YulIdentifier","src":"32695:4:88"},{"name":"base","nativeSrc":"32701:4:88","nodeType":"YulIdentifier","src":"32701:4:88"}],"functionName":{"name":"mul","nativeSrc":"32691:3:88","nodeType":"YulIdentifier","src":"32691:3:88"},"nativeSrc":"32691:15:88","nodeType":"YulFunctionCall","src":"32691:15:88"},"variableNames":[{"name":"base","nativeSrc":"32683:4:88","nodeType":"YulIdentifier","src":"32683:4:88"}]},{"nativeSrc":"32719:28:88","nodeType":"YulAssignment","src":"32719:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"32735:1:88","nodeType":"YulLiteral","src":"32735:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"32738:8:88","nodeType":"YulIdentifier","src":"32738:8:88"}],"functionName":{"name":"shr","nativeSrc":"32731:3:88","nodeType":"YulIdentifier","src":"32731:3:88"},"nativeSrc":"32731:16:88","nodeType":"YulFunctionCall","src":"32731:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"32719:8:88","nodeType":"YulIdentifier","src":"32719:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"32519:8:88","nodeType":"YulIdentifier","src":"32519:8:88"},{"kind":"number","nativeSrc":"32529:1:88","nodeType":"YulLiteral","src":"32529:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"32516:2:88","nodeType":"YulIdentifier","src":"32516:2:88"},"nativeSrc":"32516:15:88","nodeType":"YulFunctionCall","src":"32516:15:88"},"nativeSrc":"32508:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"32532:3:88","nodeType":"YulBlock","src":"32532:3:88","statements":[]},"pre":{"nativeSrc":"32512:3:88","nodeType":"YulBlock","src":"32512:3:88","statements":[]},"src":"32508:249:88"}]},"name":"checked_exp_helper","nativeSrc":"32388:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"32416:5:88","nodeType":"YulTypedName","src":"32416:5:88","type":""},{"name":"exponent","nativeSrc":"32423:8:88","nodeType":"YulTypedName","src":"32423:8:88","type":""},{"name":"max","nativeSrc":"32433:3:88","nodeType":"YulTypedName","src":"32433:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"32441:5:88","nodeType":"YulTypedName","src":"32441:5:88","type":""},{"name":"base","nativeSrc":"32448:4:88","nodeType":"YulTypedName","src":"32448:4:88","type":""}],"src":"32388:375:88"},{"body":{"nativeSrc":"32827:843:88","nodeType":"YulBlock","src":"32827:843:88","statements":[{"body":{"nativeSrc":"32865:52:88","nodeType":"YulBlock","src":"32865:52:88","statements":[{"nativeSrc":"32879:10:88","nodeType":"YulAssignment","src":"32879:10:88","value":{"kind":"number","nativeSrc":"32888:1:88","nodeType":"YulLiteral","src":"32888:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"32879:5:88","nodeType":"YulIdentifier","src":"32879:5:88"}]},{"nativeSrc":"32902:5:88","nodeType":"YulLeave","src":"32902:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"32847:8:88","nodeType":"YulIdentifier","src":"32847:8:88"}],"functionName":{"name":"iszero","nativeSrc":"32840:6:88","nodeType":"YulIdentifier","src":"32840:6:88"},"nativeSrc":"32840:16:88","nodeType":"YulFunctionCall","src":"32840:16:88"},"nativeSrc":"32837:80:88","nodeType":"YulIf","src":"32837:80:88"},{"body":{"nativeSrc":"32950:52:88","nodeType":"YulBlock","src":"32950:52:88","statements":[{"nativeSrc":"32964:10:88","nodeType":"YulAssignment","src":"32964:10:88","value":{"kind":"number","nativeSrc":"32973:1:88","nodeType":"YulLiteral","src":"32973:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"32964:5:88","nodeType":"YulIdentifier","src":"32964:5:88"}]},{"nativeSrc":"32987:5:88","nodeType":"YulLeave","src":"32987:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"32936:4:88","nodeType":"YulIdentifier","src":"32936:4:88"}],"functionName":{"name":"iszero","nativeSrc":"32929:6:88","nodeType":"YulIdentifier","src":"32929:6:88"},"nativeSrc":"32929:12:88","nodeType":"YulFunctionCall","src":"32929:12:88"},"nativeSrc":"32926:76:88","nodeType":"YulIf","src":"32926:76:88"},{"cases":[{"body":{"nativeSrc":"33038:52:88","nodeType":"YulBlock","src":"33038:52:88","statements":[{"nativeSrc":"33052:10:88","nodeType":"YulAssignment","src":"33052:10:88","value":{"kind":"number","nativeSrc":"33061:1:88","nodeType":"YulLiteral","src":"33061:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"33052:5:88","nodeType":"YulIdentifier","src":"33052:5:88"}]},{"nativeSrc":"33075:5:88","nodeType":"YulLeave","src":"33075:5:88"}]},"nativeSrc":"33031:59:88","nodeType":"YulCase","src":"33031:59:88","value":{"kind":"number","nativeSrc":"33036:1:88","nodeType":"YulLiteral","src":"33036:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"33106:167:88","nodeType":"YulBlock","src":"33106:167:88","statements":[{"body":{"nativeSrc":"33141:22:88","nodeType":"YulBlock","src":"33141:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33143:16:88","nodeType":"YulIdentifier","src":"33143:16:88"},"nativeSrc":"33143:18:88","nodeType":"YulFunctionCall","src":"33143:18:88"},"nativeSrc":"33143:18:88","nodeType":"YulExpressionStatement","src":"33143:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"33126:8:88","nodeType":"YulIdentifier","src":"33126:8:88"},{"kind":"number","nativeSrc":"33136:3:88","nodeType":"YulLiteral","src":"33136:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"33123:2:88","nodeType":"YulIdentifier","src":"33123:2:88"},"nativeSrc":"33123:17:88","nodeType":"YulFunctionCall","src":"33123:17:88"},"nativeSrc":"33120:43:88","nodeType":"YulIf","src":"33120:43:88"},{"nativeSrc":"33176:25:88","nodeType":"YulAssignment","src":"33176:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"33189:8:88","nodeType":"YulIdentifier","src":"33189:8:88"},{"kind":"number","nativeSrc":"33199:1:88","nodeType":"YulLiteral","src":"33199:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"33185:3:88","nodeType":"YulIdentifier","src":"33185:3:88"},"nativeSrc":"33185:16:88","nodeType":"YulFunctionCall","src":"33185:16:88"},"variableNames":[{"name":"power","nativeSrc":"33176:5:88","nodeType":"YulIdentifier","src":"33176:5:88"}]},{"nativeSrc":"33214:11:88","nodeType":"YulVariableDeclaration","src":"33214:11:88","value":{"kind":"number","nativeSrc":"33224:1:88","nodeType":"YulLiteral","src":"33224:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"33218:2:88","nodeType":"YulTypedName","src":"33218:2:88","type":""}]},{"nativeSrc":"33238:7:88","nodeType":"YulAssignment","src":"33238:7:88","value":{"kind":"number","nativeSrc":"33244:1:88","nodeType":"YulLiteral","src":"33244:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"33238:2:88","nodeType":"YulIdentifier","src":"33238:2:88"}]},{"nativeSrc":"33258:5:88","nodeType":"YulLeave","src":"33258:5:88"}]},"nativeSrc":"33099:174:88","nodeType":"YulCase","src":"33099:174:88","value":{"kind":"number","nativeSrc":"33104:1:88","nodeType":"YulLiteral","src":"33104:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"33018:4:88","nodeType":"YulIdentifier","src":"33018:4:88"},"nativeSrc":"33011:262:88","nodeType":"YulSwitch","src":"33011:262:88"},{"body":{"nativeSrc":"33371:114:88","nodeType":"YulBlock","src":"33371:114:88","statements":[{"nativeSrc":"33385:28:88","nodeType":"YulAssignment","src":"33385:28:88","value":{"arguments":[{"name":"base","nativeSrc":"33398:4:88","nodeType":"YulIdentifier","src":"33398:4:88"},{"name":"exponent","nativeSrc":"33404:8:88","nodeType":"YulIdentifier","src":"33404:8:88"}],"functionName":{"name":"exp","nativeSrc":"33394:3:88","nodeType":"YulIdentifier","src":"33394:3:88"},"nativeSrc":"33394:19:88","nodeType":"YulFunctionCall","src":"33394:19:88"},"variableNames":[{"name":"power","nativeSrc":"33385:5:88","nodeType":"YulIdentifier","src":"33385:5:88"}]},{"nativeSrc":"33426:11:88","nodeType":"YulVariableDeclaration","src":"33426:11:88","value":{"kind":"number","nativeSrc":"33436:1:88","nodeType":"YulLiteral","src":"33436:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"33430:2:88","nodeType":"YulTypedName","src":"33430:2:88","type":""}]},{"nativeSrc":"33450:7:88","nodeType":"YulAssignment","src":"33450:7:88","value":{"kind":"number","nativeSrc":"33456:1:88","nodeType":"YulLiteral","src":"33456:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"33450:2:88","nodeType":"YulIdentifier","src":"33450:2:88"}]},{"nativeSrc":"33470:5:88","nodeType":"YulLeave","src":"33470:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"33295:4:88","nodeType":"YulIdentifier","src":"33295:4:88"},{"kind":"number","nativeSrc":"33301:2:88","nodeType":"YulLiteral","src":"33301:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"33292:2:88","nodeType":"YulIdentifier","src":"33292:2:88"},"nativeSrc":"33292:12:88","nodeType":"YulFunctionCall","src":"33292:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"33309:8:88","nodeType":"YulIdentifier","src":"33309:8:88"},{"kind":"number","nativeSrc":"33319:2:88","nodeType":"YulLiteral","src":"33319:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"33306:2:88","nodeType":"YulIdentifier","src":"33306:2:88"},"nativeSrc":"33306:16:88","nodeType":"YulFunctionCall","src":"33306:16:88"}],"functionName":{"name":"and","nativeSrc":"33288:3:88","nodeType":"YulIdentifier","src":"33288:3:88"},"nativeSrc":"33288:35:88","nodeType":"YulFunctionCall","src":"33288:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"33332:4:88","nodeType":"YulIdentifier","src":"33332:4:88"},{"kind":"number","nativeSrc":"33338:3:88","nodeType":"YulLiteral","src":"33338:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"33329:2:88","nodeType":"YulIdentifier","src":"33329:2:88"},"nativeSrc":"33329:13:88","nodeType":"YulFunctionCall","src":"33329:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"33347:8:88","nodeType":"YulIdentifier","src":"33347:8:88"},{"kind":"number","nativeSrc":"33357:2:88","nodeType":"YulLiteral","src":"33357:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"33344:2:88","nodeType":"YulIdentifier","src":"33344:2:88"},"nativeSrc":"33344:16:88","nodeType":"YulFunctionCall","src":"33344:16:88"}],"functionName":{"name":"and","nativeSrc":"33325:3:88","nodeType":"YulIdentifier","src":"33325:3:88"},"nativeSrc":"33325:36:88","nodeType":"YulFunctionCall","src":"33325:36:88"}],"functionName":{"name":"or","nativeSrc":"33285:2:88","nodeType":"YulIdentifier","src":"33285:2:88"},"nativeSrc":"33285:77:88","nodeType":"YulFunctionCall","src":"33285:77:88"},"nativeSrc":"33282:203:88","nodeType":"YulIf","src":"33282:203:88"},{"nativeSrc":"33494:65:88","nodeType":"YulVariableDeclaration","src":"33494:65:88","value":{"arguments":[{"name":"base","nativeSrc":"33536:4:88","nodeType":"YulIdentifier","src":"33536:4:88"},{"name":"exponent","nativeSrc":"33542:8:88","nodeType":"YulIdentifier","src":"33542:8:88"},{"arguments":[{"kind":"number","nativeSrc":"33556:1:88","nodeType":"YulLiteral","src":"33556:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"33552:3:88","nodeType":"YulIdentifier","src":"33552:3:88"},"nativeSrc":"33552:6:88","nodeType":"YulFunctionCall","src":"33552:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"33517:18:88","nodeType":"YulIdentifier","src":"33517:18:88"},"nativeSrc":"33517:42:88","nodeType":"YulFunctionCall","src":"33517:42:88"},"variables":[{"name":"power_1","nativeSrc":"33498:7:88","nodeType":"YulTypedName","src":"33498:7:88","type":""},{"name":"base_1","nativeSrc":"33507:6:88","nodeType":"YulTypedName","src":"33507:6:88","type":""}]},{"body":{"nativeSrc":"33604:22:88","nodeType":"YulBlock","src":"33604:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33606:16:88","nodeType":"YulIdentifier","src":"33606:16:88"},"nativeSrc":"33606:18:88","nodeType":"YulFunctionCall","src":"33606:18:88"},"nativeSrc":"33606:18:88","nodeType":"YulExpressionStatement","src":"33606:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"33574:7:88","nodeType":"YulIdentifier","src":"33574:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33591:1:88","nodeType":"YulLiteral","src":"33591:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"33587:3:88","nodeType":"YulIdentifier","src":"33587:3:88"},"nativeSrc":"33587:6:88","nodeType":"YulFunctionCall","src":"33587:6:88"},{"name":"base_1","nativeSrc":"33595:6:88","nodeType":"YulIdentifier","src":"33595:6:88"}],"functionName":{"name":"div","nativeSrc":"33583:3:88","nodeType":"YulIdentifier","src":"33583:3:88"},"nativeSrc":"33583:19:88","nodeType":"YulFunctionCall","src":"33583:19:88"}],"functionName":{"name":"gt","nativeSrc":"33571:2:88","nodeType":"YulIdentifier","src":"33571:2:88"},"nativeSrc":"33571:32:88","nodeType":"YulFunctionCall","src":"33571:32:88"},"nativeSrc":"33568:58:88","nodeType":"YulIf","src":"33568:58:88"},{"nativeSrc":"33635:29:88","nodeType":"YulAssignment","src":"33635:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"33648:7:88","nodeType":"YulIdentifier","src":"33648:7:88"},{"name":"base_1","nativeSrc":"33657:6:88","nodeType":"YulIdentifier","src":"33657:6:88"}],"functionName":{"name":"mul","nativeSrc":"33644:3:88","nodeType":"YulIdentifier","src":"33644:3:88"},"nativeSrc":"33644:20:88","nodeType":"YulFunctionCall","src":"33644:20:88"},"variableNames":[{"name":"power","nativeSrc":"33635:5:88","nodeType":"YulIdentifier","src":"33635:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"32768:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"32798:4:88","nodeType":"YulTypedName","src":"32798:4:88","type":""},{"name":"exponent","nativeSrc":"32804:8:88","nodeType":"YulTypedName","src":"32804:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"32817:5:88","nodeType":"YulTypedName","src":"32817:5:88","type":""}],"src":"32768:902:88"},{"body":{"nativeSrc":"33743:72:88","nodeType":"YulBlock","src":"33743:72:88","statements":[{"nativeSrc":"33753:56:88","nodeType":"YulAssignment","src":"33753:56:88","value":{"arguments":[{"name":"base","nativeSrc":"33783:4:88","nodeType":"YulIdentifier","src":"33783:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"33793:8:88","nodeType":"YulIdentifier","src":"33793:8:88"},{"kind":"number","nativeSrc":"33803:4:88","nodeType":"YulLiteral","src":"33803:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"33789:3:88","nodeType":"YulIdentifier","src":"33789:3:88"},"nativeSrc":"33789:19:88","nodeType":"YulFunctionCall","src":"33789:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"33762:20:88","nodeType":"YulIdentifier","src":"33762:20:88"},"nativeSrc":"33762:47:88","nodeType":"YulFunctionCall","src":"33762:47:88"},"variableNames":[{"name":"power","nativeSrc":"33753:5:88","nodeType":"YulIdentifier","src":"33753:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"33675:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"33714:4:88","nodeType":"YulTypedName","src":"33714:4:88","type":""},{"name":"exponent","nativeSrc":"33720:8:88","nodeType":"YulTypedName","src":"33720:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"33733:5:88","nodeType":"YulTypedName","src":"33733:5:88","type":""}],"src":"33675:140:88"},{"body":{"nativeSrc":"33872:116:88","nodeType":"YulBlock","src":"33872:116:88","statements":[{"nativeSrc":"33882:20:88","nodeType":"YulAssignment","src":"33882:20:88","value":{"arguments":[{"name":"x","nativeSrc":"33897:1:88","nodeType":"YulIdentifier","src":"33897:1:88"},{"name":"y","nativeSrc":"33900:1:88","nodeType":"YulIdentifier","src":"33900:1:88"}],"functionName":{"name":"mul","nativeSrc":"33893:3:88","nodeType":"YulIdentifier","src":"33893:3:88"},"nativeSrc":"33893:9:88","nodeType":"YulFunctionCall","src":"33893:9:88"},"variableNames":[{"name":"product","nativeSrc":"33882:7:88","nodeType":"YulIdentifier","src":"33882:7:88"}]},{"body":{"nativeSrc":"33960:22:88","nodeType":"YulBlock","src":"33960:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33962:16:88","nodeType":"YulIdentifier","src":"33962:16:88"},"nativeSrc":"33962:18:88","nodeType":"YulFunctionCall","src":"33962:18:88"},"nativeSrc":"33962:18:88","nodeType":"YulExpressionStatement","src":"33962:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"33931:1:88","nodeType":"YulIdentifier","src":"33931:1:88"}],"functionName":{"name":"iszero","nativeSrc":"33924:6:88","nodeType":"YulIdentifier","src":"33924:6:88"},"nativeSrc":"33924:9:88","nodeType":"YulFunctionCall","src":"33924:9:88"},{"arguments":[{"name":"y","nativeSrc":"33938:1:88","nodeType":"YulIdentifier","src":"33938:1:88"},{"arguments":[{"name":"product","nativeSrc":"33945:7:88","nodeType":"YulIdentifier","src":"33945:7:88"},{"name":"x","nativeSrc":"33954:1:88","nodeType":"YulIdentifier","src":"33954:1:88"}],"functionName":{"name":"div","nativeSrc":"33941:3:88","nodeType":"YulIdentifier","src":"33941:3:88"},"nativeSrc":"33941:15:88","nodeType":"YulFunctionCall","src":"33941:15:88"}],"functionName":{"name":"eq","nativeSrc":"33935:2:88","nodeType":"YulIdentifier","src":"33935:2:88"},"nativeSrc":"33935:22:88","nodeType":"YulFunctionCall","src":"33935:22:88"}],"functionName":{"name":"or","nativeSrc":"33921:2:88","nodeType":"YulIdentifier","src":"33921:2:88"},"nativeSrc":"33921:37:88","nodeType":"YulFunctionCall","src":"33921:37:88"}],"functionName":{"name":"iszero","nativeSrc":"33914:6:88","nodeType":"YulIdentifier","src":"33914:6:88"},"nativeSrc":"33914:45:88","nodeType":"YulFunctionCall","src":"33914:45:88"},"nativeSrc":"33911:71:88","nodeType":"YulIf","src":"33911:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"33820:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33851:1:88","nodeType":"YulTypedName","src":"33851:1:88","type":""},{"name":"y","nativeSrc":"33854:1:88","nodeType":"YulTypedName","src":"33854:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"33860:7:88","nodeType":"YulTypedName","src":"33860:7:88","type":""}],"src":"33820:168:88"},{"body":{"nativeSrc":"34071:199:88","nodeType":"YulBlock","src":"34071:199:88","statements":[{"body":{"nativeSrc":"34117:16:88","nodeType":"YulBlock","src":"34117:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34126:1:88","nodeType":"YulLiteral","src":"34126:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34129:1:88","nodeType":"YulLiteral","src":"34129:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34119:6:88","nodeType":"YulIdentifier","src":"34119:6:88"},"nativeSrc":"34119:12:88","nodeType":"YulFunctionCall","src":"34119:12:88"},"nativeSrc":"34119:12:88","nodeType":"YulExpressionStatement","src":"34119:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"34092:7:88","nodeType":"YulIdentifier","src":"34092:7:88"},{"name":"headStart","nativeSrc":"34101:9:88","nodeType":"YulIdentifier","src":"34101:9:88"}],"functionName":{"name":"sub","nativeSrc":"34088:3:88","nodeType":"YulIdentifier","src":"34088:3:88"},"nativeSrc":"34088:23:88","nodeType":"YulFunctionCall","src":"34088:23:88"},{"kind":"number","nativeSrc":"34113:2:88","nodeType":"YulLiteral","src":"34113:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"34084:3:88","nodeType":"YulIdentifier","src":"34084:3:88"},"nativeSrc":"34084:32:88","nodeType":"YulFunctionCall","src":"34084:32:88"},"nativeSrc":"34081:52:88","nodeType":"YulIf","src":"34081:52:88"},{"nativeSrc":"34142:29:88","nodeType":"YulVariableDeclaration","src":"34142:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34161:9:88","nodeType":"YulIdentifier","src":"34161:9:88"}],"functionName":{"name":"mload","nativeSrc":"34155:5:88","nodeType":"YulIdentifier","src":"34155:5:88"},"nativeSrc":"34155:16:88","nodeType":"YulFunctionCall","src":"34155:16:88"},"variables":[{"name":"value","nativeSrc":"34146:5:88","nodeType":"YulTypedName","src":"34146:5:88","type":""}]},{"body":{"nativeSrc":"34224:16:88","nodeType":"YulBlock","src":"34224:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34233:1:88","nodeType":"YulLiteral","src":"34233:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34236:1:88","nodeType":"YulLiteral","src":"34236:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34226:6:88","nodeType":"YulIdentifier","src":"34226:6:88"},"nativeSrc":"34226:12:88","nodeType":"YulFunctionCall","src":"34226:12:88"},"nativeSrc":"34226:12:88","nodeType":"YulExpressionStatement","src":"34226:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"34193:5:88","nodeType":"YulIdentifier","src":"34193:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"34214:5:88","nodeType":"YulIdentifier","src":"34214:5:88"}],"functionName":{"name":"iszero","nativeSrc":"34207:6:88","nodeType":"YulIdentifier","src":"34207:6:88"},"nativeSrc":"34207:13:88","nodeType":"YulFunctionCall","src":"34207:13:88"}],"functionName":{"name":"iszero","nativeSrc":"34200:6:88","nodeType":"YulIdentifier","src":"34200:6:88"},"nativeSrc":"34200:21:88","nodeType":"YulFunctionCall","src":"34200:21:88"}],"functionName":{"name":"eq","nativeSrc":"34190:2:88","nodeType":"YulIdentifier","src":"34190:2:88"},"nativeSrc":"34190:32:88","nodeType":"YulFunctionCall","src":"34190:32:88"}],"functionName":{"name":"iszero","nativeSrc":"34183:6:88","nodeType":"YulIdentifier","src":"34183:6:88"},"nativeSrc":"34183:40:88","nodeType":"YulFunctionCall","src":"34183:40:88"},"nativeSrc":"34180:60:88","nodeType":"YulIf","src":"34180:60:88"},{"nativeSrc":"34249:15:88","nodeType":"YulAssignment","src":"34249:15:88","value":{"name":"value","nativeSrc":"34259:5:88","nodeType":"YulIdentifier","src":"34259:5:88"},"variableNames":[{"name":"value0","nativeSrc":"34249:6:88","nodeType":"YulIdentifier","src":"34249:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"33993:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34037:9:88","nodeType":"YulTypedName","src":"34037:9:88","type":""},{"name":"dataEnd","nativeSrc":"34048:7:88","nodeType":"YulTypedName","src":"34048:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"34060:6:88","nodeType":"YulTypedName","src":"34060:6:88","type":""}],"src":"33993:277:88"},{"body":{"nativeSrc":"34449:228:88","nodeType":"YulBlock","src":"34449:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34466:9:88","nodeType":"YulIdentifier","src":"34466:9:88"},{"kind":"number","nativeSrc":"34477:2:88","nodeType":"YulLiteral","src":"34477:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34459:6:88","nodeType":"YulIdentifier","src":"34459:6:88"},"nativeSrc":"34459:21:88","nodeType":"YulFunctionCall","src":"34459:21:88"},"nativeSrc":"34459:21:88","nodeType":"YulExpressionStatement","src":"34459:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34500:9:88","nodeType":"YulIdentifier","src":"34500:9:88"},{"kind":"number","nativeSrc":"34511:2:88","nodeType":"YulLiteral","src":"34511:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34496:3:88","nodeType":"YulIdentifier","src":"34496:3:88"},"nativeSrc":"34496:18:88","nodeType":"YulFunctionCall","src":"34496:18:88"},{"kind":"number","nativeSrc":"34516:2:88","nodeType":"YulLiteral","src":"34516:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"34489:6:88","nodeType":"YulIdentifier","src":"34489:6:88"},"nativeSrc":"34489:30:88","nodeType":"YulFunctionCall","src":"34489:30:88"},"nativeSrc":"34489:30:88","nodeType":"YulExpressionStatement","src":"34489:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34539:9:88","nodeType":"YulIdentifier","src":"34539:9:88"},{"kind":"number","nativeSrc":"34550:2:88","nodeType":"YulLiteral","src":"34550:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34535:3:88","nodeType":"YulIdentifier","src":"34535:3:88"},"nativeSrc":"34535:18:88","nodeType":"YulFunctionCall","src":"34535:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"34555:34:88","nodeType":"YulLiteral","src":"34555:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"34528:6:88","nodeType":"YulIdentifier","src":"34528:6:88"},"nativeSrc":"34528:62:88","nodeType":"YulFunctionCall","src":"34528:62:88"},"nativeSrc":"34528:62:88","nodeType":"YulExpressionStatement","src":"34528:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34610:9:88","nodeType":"YulIdentifier","src":"34610:9:88"},{"kind":"number","nativeSrc":"34621:2:88","nodeType":"YulLiteral","src":"34621:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34606:3:88","nodeType":"YulIdentifier","src":"34606:3:88"},"nativeSrc":"34606:18:88","nodeType":"YulFunctionCall","src":"34606:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"34626:8:88","nodeType":"YulLiteral","src":"34626:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"34599:6:88","nodeType":"YulIdentifier","src":"34599:6:88"},"nativeSrc":"34599:36:88","nodeType":"YulFunctionCall","src":"34599:36:88"},"nativeSrc":"34599:36:88","nodeType":"YulExpressionStatement","src":"34599:36:88"},{"nativeSrc":"34644:27:88","nodeType":"YulAssignment","src":"34644:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34656:9:88","nodeType":"YulIdentifier","src":"34656:9:88"},{"kind":"number","nativeSrc":"34667:3:88","nodeType":"YulLiteral","src":"34667:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34652:3:88","nodeType":"YulIdentifier","src":"34652:3:88"},"nativeSrc":"34652:19:88","nodeType":"YulFunctionCall","src":"34652:19:88"},"variableNames":[{"name":"tail","nativeSrc":"34644:4:88","nodeType":"YulIdentifier","src":"34644:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34275:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34426:9:88","nodeType":"YulTypedName","src":"34426:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34440:4:88","nodeType":"YulTypedName","src":"34440:4:88","type":""}],"src":"34275:402:88"},{"body":{"nativeSrc":"34789:170:88","nodeType":"YulBlock","src":"34789:170:88","statements":[{"body":{"nativeSrc":"34835:16:88","nodeType":"YulBlock","src":"34835:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34844:1:88","nodeType":"YulLiteral","src":"34844:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34847:1:88","nodeType":"YulLiteral","src":"34847:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34837:6:88","nodeType":"YulIdentifier","src":"34837:6:88"},"nativeSrc":"34837:12:88","nodeType":"YulFunctionCall","src":"34837:12:88"},"nativeSrc":"34837:12:88","nodeType":"YulExpressionStatement","src":"34837:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"34810:7:88","nodeType":"YulIdentifier","src":"34810:7:88"},{"name":"headStart","nativeSrc":"34819:9:88","nodeType":"YulIdentifier","src":"34819:9:88"}],"functionName":{"name":"sub","nativeSrc":"34806:3:88","nodeType":"YulIdentifier","src":"34806:3:88"},"nativeSrc":"34806:23:88","nodeType":"YulFunctionCall","src":"34806:23:88"},{"kind":"number","nativeSrc":"34831:2:88","nodeType":"YulLiteral","src":"34831:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"34802:3:88","nodeType":"YulIdentifier","src":"34802:3:88"},"nativeSrc":"34802:32:88","nodeType":"YulFunctionCall","src":"34802:32:88"},"nativeSrc":"34799:52:88","nodeType":"YulIf","src":"34799:52:88"},{"nativeSrc":"34860:29:88","nodeType":"YulVariableDeclaration","src":"34860:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34879:9:88","nodeType":"YulIdentifier","src":"34879:9:88"}],"functionName":{"name":"mload","nativeSrc":"34873:5:88","nodeType":"YulIdentifier","src":"34873:5:88"},"nativeSrc":"34873:16:88","nodeType":"YulFunctionCall","src":"34873:16:88"},"variables":[{"name":"value","nativeSrc":"34864:5:88","nodeType":"YulTypedName","src":"34864:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34923:5:88","nodeType":"YulIdentifier","src":"34923:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34898:24:88","nodeType":"YulIdentifier","src":"34898:24:88"},"nativeSrc":"34898:31:88","nodeType":"YulFunctionCall","src":"34898:31:88"},"nativeSrc":"34898:31:88","nodeType":"YulExpressionStatement","src":"34898:31:88"},{"nativeSrc":"34938:15:88","nodeType":"YulAssignment","src":"34938:15:88","value":{"name":"value","nativeSrc":"34948:5:88","nodeType":"YulIdentifier","src":"34948:5:88"},"variableNames":[{"name":"value0","nativeSrc":"34938:6:88","nodeType":"YulIdentifier","src":"34938:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"34682:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34755:9:88","nodeType":"YulTypedName","src":"34755:9:88","type":""},{"name":"dataEnd","nativeSrc":"34766:7:88","nodeType":"YulTypedName","src":"34766:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"34778:6:88","nodeType":"YulTypedName","src":"34778:6:88","type":""}],"src":"34682:277:88"},{"body":{"nativeSrc":"35138:235:88","nodeType":"YulBlock","src":"35138:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35155:9:88","nodeType":"YulIdentifier","src":"35155:9:88"},{"kind":"number","nativeSrc":"35166:2:88","nodeType":"YulLiteral","src":"35166:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35148:6:88","nodeType":"YulIdentifier","src":"35148:6:88"},"nativeSrc":"35148:21:88","nodeType":"YulFunctionCall","src":"35148:21:88"},"nativeSrc":"35148:21:88","nodeType":"YulExpressionStatement","src":"35148:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35189:9:88","nodeType":"YulIdentifier","src":"35189:9:88"},{"kind":"number","nativeSrc":"35200:2:88","nodeType":"YulLiteral","src":"35200:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35185:3:88","nodeType":"YulIdentifier","src":"35185:3:88"},"nativeSrc":"35185:18:88","nodeType":"YulFunctionCall","src":"35185:18:88"},{"kind":"number","nativeSrc":"35205:2:88","nodeType":"YulLiteral","src":"35205:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"35178:6:88","nodeType":"YulIdentifier","src":"35178:6:88"},"nativeSrc":"35178:30:88","nodeType":"YulFunctionCall","src":"35178:30:88"},"nativeSrc":"35178:30:88","nodeType":"YulExpressionStatement","src":"35178:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35228:9:88","nodeType":"YulIdentifier","src":"35228:9:88"},{"kind":"number","nativeSrc":"35239:2:88","nodeType":"YulLiteral","src":"35239:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35224:3:88","nodeType":"YulIdentifier","src":"35224:3:88"},"nativeSrc":"35224:18:88","nodeType":"YulFunctionCall","src":"35224:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"35244:34:88","nodeType":"YulLiteral","src":"35244:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"35217:6:88","nodeType":"YulIdentifier","src":"35217:6:88"},"nativeSrc":"35217:62:88","nodeType":"YulFunctionCall","src":"35217:62:88"},"nativeSrc":"35217:62:88","nodeType":"YulExpressionStatement","src":"35217:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35299:9:88","nodeType":"YulIdentifier","src":"35299:9:88"},{"kind":"number","nativeSrc":"35310:2:88","nodeType":"YulLiteral","src":"35310:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35295:3:88","nodeType":"YulIdentifier","src":"35295:3:88"},"nativeSrc":"35295:18:88","nodeType":"YulFunctionCall","src":"35295:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"35315:15:88","nodeType":"YulLiteral","src":"35315:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"35288:6:88","nodeType":"YulIdentifier","src":"35288:6:88"},"nativeSrc":"35288:43:88","nodeType":"YulFunctionCall","src":"35288:43:88"},"nativeSrc":"35288:43:88","nodeType":"YulExpressionStatement","src":"35288:43:88"},{"nativeSrc":"35340:27:88","nodeType":"YulAssignment","src":"35340:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35352:9:88","nodeType":"YulIdentifier","src":"35352:9:88"},{"kind":"number","nativeSrc":"35363:3:88","nodeType":"YulLiteral","src":"35363:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35348:3:88","nodeType":"YulIdentifier","src":"35348:3:88"},"nativeSrc":"35348:19:88","nodeType":"YulFunctionCall","src":"35348:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35340:4:88","nodeType":"YulIdentifier","src":"35340:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34964:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35115:9:88","nodeType":"YulTypedName","src":"35115:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35129:4:88","nodeType":"YulTypedName","src":"35129:4:88","type":""}],"src":"34964:409:88"},{"body":{"nativeSrc":"35552:170:88","nodeType":"YulBlock","src":"35552:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35569:9:88","nodeType":"YulIdentifier","src":"35569:9:88"},{"kind":"number","nativeSrc":"35580:2:88","nodeType":"YulLiteral","src":"35580:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35562:6:88","nodeType":"YulIdentifier","src":"35562:6:88"},"nativeSrc":"35562:21:88","nodeType":"YulFunctionCall","src":"35562:21:88"},"nativeSrc":"35562:21:88","nodeType":"YulExpressionStatement","src":"35562:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35603:9:88","nodeType":"YulIdentifier","src":"35603:9:88"},{"kind":"number","nativeSrc":"35614:2:88","nodeType":"YulLiteral","src":"35614:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35599:3:88","nodeType":"YulIdentifier","src":"35599:3:88"},"nativeSrc":"35599:18:88","nodeType":"YulFunctionCall","src":"35599:18:88"},{"kind":"number","nativeSrc":"35619:2:88","nodeType":"YulLiteral","src":"35619:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"35592:6:88","nodeType":"YulIdentifier","src":"35592:6:88"},"nativeSrc":"35592:30:88","nodeType":"YulFunctionCall","src":"35592:30:88"},"nativeSrc":"35592:30:88","nodeType":"YulExpressionStatement","src":"35592:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35642:9:88","nodeType":"YulIdentifier","src":"35642:9:88"},{"kind":"number","nativeSrc":"35653:2:88","nodeType":"YulLiteral","src":"35653:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35638:3:88","nodeType":"YulIdentifier","src":"35638:3:88"},"nativeSrc":"35638:18:88","nodeType":"YulFunctionCall","src":"35638:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"35658:22:88","nodeType":"YulLiteral","src":"35658:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"35631:6:88","nodeType":"YulIdentifier","src":"35631:6:88"},"nativeSrc":"35631:50:88","nodeType":"YulFunctionCall","src":"35631:50:88"},"nativeSrc":"35631:50:88","nodeType":"YulExpressionStatement","src":"35631:50:88"},{"nativeSrc":"35690:26:88","nodeType":"YulAssignment","src":"35690:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35702:9:88","nodeType":"YulIdentifier","src":"35702:9:88"},{"kind":"number","nativeSrc":"35713:2:88","nodeType":"YulLiteral","src":"35713:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35698:3:88","nodeType":"YulIdentifier","src":"35698:3:88"},"nativeSrc":"35698:18:88","nodeType":"YulFunctionCall","src":"35698:18:88"},"variableNames":[{"name":"tail","nativeSrc":"35690:4:88","nodeType":"YulIdentifier","src":"35690:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35378:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35529:9:88","nodeType":"YulTypedName","src":"35529:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35543:4:88","nodeType":"YulTypedName","src":"35543:4:88","type":""}],"src":"35378:344:88"},{"body":{"nativeSrc":"35783:65:88","nodeType":"YulBlock","src":"35783:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35800:1:88","nodeType":"YulLiteral","src":"35800:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"35803:3:88","nodeType":"YulIdentifier","src":"35803:3:88"}],"functionName":{"name":"mstore","nativeSrc":"35793:6:88","nodeType":"YulIdentifier","src":"35793:6:88"},"nativeSrc":"35793:14:88","nodeType":"YulFunctionCall","src":"35793:14:88"},"nativeSrc":"35793:14:88","nodeType":"YulExpressionStatement","src":"35793:14:88"},{"nativeSrc":"35816:26:88","nodeType":"YulAssignment","src":"35816:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"35834:1:88","nodeType":"YulLiteral","src":"35834:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"35837:4:88","nodeType":"YulLiteral","src":"35837:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"35824:9:88","nodeType":"YulIdentifier","src":"35824:9:88"},"nativeSrc":"35824:18:88","nodeType":"YulFunctionCall","src":"35824:18:88"},"variableNames":[{"name":"data","nativeSrc":"35816:4:88","nodeType":"YulIdentifier","src":"35816:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"35727:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"35766:3:88","nodeType":"YulTypedName","src":"35766:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"35774:4:88","nodeType":"YulTypedName","src":"35774:4:88","type":""}],"src":"35727:121:88"},{"body":{"nativeSrc":"35934:437:88","nodeType":"YulBlock","src":"35934:437:88","statements":[{"body":{"nativeSrc":"35967:398:88","nodeType":"YulBlock","src":"35967:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35988:1:88","nodeType":"YulLiteral","src":"35988:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"35991:5:88","nodeType":"YulIdentifier","src":"35991:5:88"}],"functionName":{"name":"mstore","nativeSrc":"35981:6:88","nodeType":"YulIdentifier","src":"35981:6:88"},"nativeSrc":"35981:16:88","nodeType":"YulFunctionCall","src":"35981:16:88"},"nativeSrc":"35981:16:88","nodeType":"YulExpressionStatement","src":"35981:16:88"},{"nativeSrc":"36010:30:88","nodeType":"YulVariableDeclaration","src":"36010:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"36032:1:88","nodeType":"YulLiteral","src":"36032:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"36035:4:88","nodeType":"YulLiteral","src":"36035:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"36022:9:88","nodeType":"YulIdentifier","src":"36022:9:88"},"nativeSrc":"36022:18:88","nodeType":"YulFunctionCall","src":"36022:18:88"},"variables":[{"name":"data","nativeSrc":"36014:4:88","nodeType":"YulTypedName","src":"36014:4:88","type":""}]},{"nativeSrc":"36053:57:88","nodeType":"YulVariableDeclaration","src":"36053:57:88","value":{"arguments":[{"name":"data","nativeSrc":"36076:4:88","nodeType":"YulIdentifier","src":"36076:4:88"},{"arguments":[{"kind":"number","nativeSrc":"36086:1:88","nodeType":"YulLiteral","src":"36086:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"36093:10:88","nodeType":"YulIdentifier","src":"36093:10:88"},{"kind":"number","nativeSrc":"36105:2:88","nodeType":"YulLiteral","src":"36105:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"36089:3:88","nodeType":"YulIdentifier","src":"36089:3:88"},"nativeSrc":"36089:19:88","nodeType":"YulFunctionCall","src":"36089:19:88"}],"functionName":{"name":"shr","nativeSrc":"36082:3:88","nodeType":"YulIdentifier","src":"36082:3:88"},"nativeSrc":"36082:27:88","nodeType":"YulFunctionCall","src":"36082:27:88"}],"functionName":{"name":"add","nativeSrc":"36072:3:88","nodeType":"YulIdentifier","src":"36072:3:88"},"nativeSrc":"36072:38:88","nodeType":"YulFunctionCall","src":"36072:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"36057:11:88","nodeType":"YulTypedName","src":"36057:11:88","type":""}]},{"body":{"nativeSrc":"36147:23:88","nodeType":"YulBlock","src":"36147:23:88","statements":[{"nativeSrc":"36149:19:88","nodeType":"YulAssignment","src":"36149:19:88","value":{"name":"data","nativeSrc":"36164:4:88","nodeType":"YulIdentifier","src":"36164:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"36149:11:88","nodeType":"YulIdentifier","src":"36149:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"36129:10:88","nodeType":"YulIdentifier","src":"36129:10:88"},{"kind":"number","nativeSrc":"36141:4:88","nodeType":"YulLiteral","src":"36141:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"36126:2:88","nodeType":"YulIdentifier","src":"36126:2:88"},"nativeSrc":"36126:20:88","nodeType":"YulFunctionCall","src":"36126:20:88"},"nativeSrc":"36123:47:88","nodeType":"YulIf","src":"36123:47:88"},{"nativeSrc":"36183:41:88","nodeType":"YulVariableDeclaration","src":"36183:41:88","value":{"arguments":[{"name":"data","nativeSrc":"36197:4:88","nodeType":"YulIdentifier","src":"36197:4:88"},{"arguments":[{"kind":"number","nativeSrc":"36207:1:88","nodeType":"YulLiteral","src":"36207:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"36214:3:88","nodeType":"YulIdentifier","src":"36214:3:88"},{"kind":"number","nativeSrc":"36219:2:88","nodeType":"YulLiteral","src":"36219:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"36210:3:88","nodeType":"YulIdentifier","src":"36210:3:88"},"nativeSrc":"36210:12:88","nodeType":"YulFunctionCall","src":"36210:12:88"}],"functionName":{"name":"shr","nativeSrc":"36203:3:88","nodeType":"YulIdentifier","src":"36203:3:88"},"nativeSrc":"36203:20:88","nodeType":"YulFunctionCall","src":"36203:20:88"}],"functionName":{"name":"add","nativeSrc":"36193:3:88","nodeType":"YulIdentifier","src":"36193:3:88"},"nativeSrc":"36193:31:88","nodeType":"YulFunctionCall","src":"36193:31:88"},"variables":[{"name":"_1","nativeSrc":"36187:2:88","nodeType":"YulTypedName","src":"36187:2:88","type":""}]},{"nativeSrc":"36237:24:88","nodeType":"YulVariableDeclaration","src":"36237:24:88","value":{"name":"deleteStart","nativeSrc":"36250:11:88","nodeType":"YulIdentifier","src":"36250:11:88"},"variables":[{"name":"start","nativeSrc":"36241:5:88","nodeType":"YulTypedName","src":"36241:5:88","type":""}]},{"body":{"nativeSrc":"36335:20:88","nodeType":"YulBlock","src":"36335:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"36344:5:88","nodeType":"YulIdentifier","src":"36344:5:88"},{"kind":"number","nativeSrc":"36351:1:88","nodeType":"YulLiteral","src":"36351:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"36337:6:88","nodeType":"YulIdentifier","src":"36337:6:88"},"nativeSrc":"36337:16:88","nodeType":"YulFunctionCall","src":"36337:16:88"},"nativeSrc":"36337:16:88","nodeType":"YulExpressionStatement","src":"36337:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"36285:5:88","nodeType":"YulIdentifier","src":"36285:5:88"},{"name":"_1","nativeSrc":"36292:2:88","nodeType":"YulIdentifier","src":"36292:2:88"}],"functionName":{"name":"lt","nativeSrc":"36282:2:88","nodeType":"YulIdentifier","src":"36282:2:88"},"nativeSrc":"36282:13:88","nodeType":"YulFunctionCall","src":"36282:13:88"},"nativeSrc":"36274:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"36296:26:88","nodeType":"YulBlock","src":"36296:26:88","statements":[{"nativeSrc":"36298:22:88","nodeType":"YulAssignment","src":"36298:22:88","value":{"arguments":[{"name":"start","nativeSrc":"36311:5:88","nodeType":"YulIdentifier","src":"36311:5:88"},{"kind":"number","nativeSrc":"36318:1:88","nodeType":"YulLiteral","src":"36318:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"36307:3:88","nodeType":"YulIdentifier","src":"36307:3:88"},"nativeSrc":"36307:13:88","nodeType":"YulFunctionCall","src":"36307:13:88"},"variableNames":[{"name":"start","nativeSrc":"36298:5:88","nodeType":"YulIdentifier","src":"36298:5:88"}]}]},"pre":{"nativeSrc":"36278:3:88","nodeType":"YulBlock","src":"36278:3:88","statements":[]},"src":"36274:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"35950:3:88","nodeType":"YulIdentifier","src":"35950:3:88"},{"kind":"number","nativeSrc":"35955:2:88","nodeType":"YulLiteral","src":"35955:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"35947:2:88","nodeType":"YulIdentifier","src":"35947:2:88"},"nativeSrc":"35947:11:88","nodeType":"YulFunctionCall","src":"35947:11:88"},"nativeSrc":"35944:421:88","nodeType":"YulIf","src":"35944:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"35853:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"35906:5:88","nodeType":"YulTypedName","src":"35906:5:88","type":""},{"name":"len","nativeSrc":"35913:3:88","nodeType":"YulTypedName","src":"35913:3:88","type":""},{"name":"startIndex","nativeSrc":"35918:10:88","nodeType":"YulTypedName","src":"35918:10:88","type":""}],"src":"35853:518:88"},{"body":{"nativeSrc":"36461:81:88","nodeType":"YulBlock","src":"36461:81:88","statements":[{"nativeSrc":"36471:65:88","nodeType":"YulAssignment","src":"36471:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36486:4:88","nodeType":"YulIdentifier","src":"36486:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"36504:1:88","nodeType":"YulLiteral","src":"36504:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"36507:3:88","nodeType":"YulIdentifier","src":"36507:3:88"}],"functionName":{"name":"shl","nativeSrc":"36500:3:88","nodeType":"YulIdentifier","src":"36500:3:88"},"nativeSrc":"36500:11:88","nodeType":"YulFunctionCall","src":"36500:11:88"},{"arguments":[{"kind":"number","nativeSrc":"36517:1:88","nodeType":"YulLiteral","src":"36517:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"36513:3:88","nodeType":"YulIdentifier","src":"36513:3:88"},"nativeSrc":"36513:6:88","nodeType":"YulFunctionCall","src":"36513:6:88"}],"functionName":{"name":"shr","nativeSrc":"36496:3:88","nodeType":"YulIdentifier","src":"36496:3:88"},"nativeSrc":"36496:24:88","nodeType":"YulFunctionCall","src":"36496:24:88"}],"functionName":{"name":"not","nativeSrc":"36492:3:88","nodeType":"YulIdentifier","src":"36492:3:88"},"nativeSrc":"36492:29:88","nodeType":"YulFunctionCall","src":"36492:29:88"}],"functionName":{"name":"and","nativeSrc":"36482:3:88","nodeType":"YulIdentifier","src":"36482:3:88"},"nativeSrc":"36482:40:88","nodeType":"YulFunctionCall","src":"36482:40:88"},{"arguments":[{"kind":"number","nativeSrc":"36528:1:88","nodeType":"YulLiteral","src":"36528:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"36531:3:88","nodeType":"YulIdentifier","src":"36531:3:88"}],"functionName":{"name":"shl","nativeSrc":"36524:3:88","nodeType":"YulIdentifier","src":"36524:3:88"},"nativeSrc":"36524:11:88","nodeType":"YulFunctionCall","src":"36524:11:88"}],"functionName":{"name":"or","nativeSrc":"36479:2:88","nodeType":"YulIdentifier","src":"36479:2:88"},"nativeSrc":"36479:57:88","nodeType":"YulFunctionCall","src":"36479:57:88"},"variableNames":[{"name":"used","nativeSrc":"36471:4:88","nodeType":"YulIdentifier","src":"36471:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"36376:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"36438:4:88","nodeType":"YulTypedName","src":"36438:4:88","type":""},{"name":"len","nativeSrc":"36444:3:88","nodeType":"YulTypedName","src":"36444:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"36452:4:88","nodeType":"YulTypedName","src":"36452:4:88","type":""}],"src":"36376:166:88"},{"body":{"nativeSrc":"36643:1203:88","nodeType":"YulBlock","src":"36643:1203:88","statements":[{"nativeSrc":"36653:24:88","nodeType":"YulVariableDeclaration","src":"36653:24:88","value":{"arguments":[{"name":"src","nativeSrc":"36673:3:88","nodeType":"YulIdentifier","src":"36673:3:88"}],"functionName":{"name":"mload","nativeSrc":"36667:5:88","nodeType":"YulIdentifier","src":"36667:5:88"},"nativeSrc":"36667:10:88","nodeType":"YulFunctionCall","src":"36667:10:88"},"variables":[{"name":"newLen","nativeSrc":"36657:6:88","nodeType":"YulTypedName","src":"36657:6:88","type":""}]},{"body":{"nativeSrc":"36720:22:88","nodeType":"YulBlock","src":"36720:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"36722:16:88","nodeType":"YulIdentifier","src":"36722:16:88"},"nativeSrc":"36722:18:88","nodeType":"YulFunctionCall","src":"36722:18:88"},"nativeSrc":"36722:18:88","nodeType":"YulExpressionStatement","src":"36722:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"36692:6:88","nodeType":"YulIdentifier","src":"36692:6:88"},{"kind":"number","nativeSrc":"36700:18:88","nodeType":"YulLiteral","src":"36700:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"36689:2:88","nodeType":"YulIdentifier","src":"36689:2:88"},"nativeSrc":"36689:30:88","nodeType":"YulFunctionCall","src":"36689:30:88"},"nativeSrc":"36686:56:88","nodeType":"YulIf","src":"36686:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"36795:4:88","nodeType":"YulIdentifier","src":"36795:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"36833:4:88","nodeType":"YulIdentifier","src":"36833:4:88"}],"functionName":{"name":"sload","nativeSrc":"36827:5:88","nodeType":"YulIdentifier","src":"36827:5:88"},"nativeSrc":"36827:11:88","nodeType":"YulFunctionCall","src":"36827:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"36801:25:88","nodeType":"YulIdentifier","src":"36801:25:88"},"nativeSrc":"36801:38:88","nodeType":"YulFunctionCall","src":"36801:38:88"},{"name":"newLen","nativeSrc":"36841:6:88","nodeType":"YulIdentifier","src":"36841:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"36751:43:88","nodeType":"YulIdentifier","src":"36751:43:88"},"nativeSrc":"36751:97:88","nodeType":"YulFunctionCall","src":"36751:97:88"},"nativeSrc":"36751:97:88","nodeType":"YulExpressionStatement","src":"36751:97:88"},{"nativeSrc":"36857:18:88","nodeType":"YulVariableDeclaration","src":"36857:18:88","value":{"kind":"number","nativeSrc":"36874:1:88","nodeType":"YulLiteral","src":"36874:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"36861:9:88","nodeType":"YulTypedName","src":"36861:9:88","type":""}]},{"nativeSrc":"36884:17:88","nodeType":"YulAssignment","src":"36884:17:88","value":{"kind":"number","nativeSrc":"36897:4:88","nodeType":"YulLiteral","src":"36897:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"36884:9:88","nodeType":"YulIdentifier","src":"36884:9:88"}]},{"cases":[{"body":{"nativeSrc":"36947:642:88","nodeType":"YulBlock","src":"36947:642:88","statements":[{"nativeSrc":"36961:35:88","nodeType":"YulVariableDeclaration","src":"36961:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"36980:6:88","nodeType":"YulIdentifier","src":"36980:6:88"},{"arguments":[{"kind":"number","nativeSrc":"36992:2:88","nodeType":"YulLiteral","src":"36992:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"36988:3:88","nodeType":"YulIdentifier","src":"36988:3:88"},"nativeSrc":"36988:7:88","nodeType":"YulFunctionCall","src":"36988:7:88"}],"functionName":{"name":"and","nativeSrc":"36976:3:88","nodeType":"YulIdentifier","src":"36976:3:88"},"nativeSrc":"36976:20:88","nodeType":"YulFunctionCall","src":"36976:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"36965:7:88","nodeType":"YulTypedName","src":"36965:7:88","type":""}]},{"nativeSrc":"37009:49:88","nodeType":"YulVariableDeclaration","src":"37009:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"37053:4:88","nodeType":"YulIdentifier","src":"37053:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"37023:29:88","nodeType":"YulIdentifier","src":"37023:29:88"},"nativeSrc":"37023:35:88","nodeType":"YulFunctionCall","src":"37023:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"37013:6:88","nodeType":"YulTypedName","src":"37013:6:88","type":""}]},{"nativeSrc":"37071:10:88","nodeType":"YulVariableDeclaration","src":"37071:10:88","value":{"kind":"number","nativeSrc":"37080:1:88","nodeType":"YulLiteral","src":"37080:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"37075:1:88","nodeType":"YulTypedName","src":"37075:1:88","type":""}]},{"body":{"nativeSrc":"37151:165:88","nodeType":"YulBlock","src":"37151:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"37176:6:88","nodeType":"YulIdentifier","src":"37176:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37194:3:88","nodeType":"YulIdentifier","src":"37194:3:88"},{"name":"srcOffset","nativeSrc":"37199:9:88","nodeType":"YulIdentifier","src":"37199:9:88"}],"functionName":{"name":"add","nativeSrc":"37190:3:88","nodeType":"YulIdentifier","src":"37190:3:88"},"nativeSrc":"37190:19:88","nodeType":"YulFunctionCall","src":"37190:19:88"}],"functionName":{"name":"mload","nativeSrc":"37184:5:88","nodeType":"YulIdentifier","src":"37184:5:88"},"nativeSrc":"37184:26:88","nodeType":"YulFunctionCall","src":"37184:26:88"}],"functionName":{"name":"sstore","nativeSrc":"37169:6:88","nodeType":"YulIdentifier","src":"37169:6:88"},"nativeSrc":"37169:42:88","nodeType":"YulFunctionCall","src":"37169:42:88"},"nativeSrc":"37169:42:88","nodeType":"YulExpressionStatement","src":"37169:42:88"},{"nativeSrc":"37228:24:88","nodeType":"YulAssignment","src":"37228:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"37242:6:88","nodeType":"YulIdentifier","src":"37242:6:88"},{"kind":"number","nativeSrc":"37250:1:88","nodeType":"YulLiteral","src":"37250:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37238:3:88","nodeType":"YulIdentifier","src":"37238:3:88"},"nativeSrc":"37238:14:88","nodeType":"YulFunctionCall","src":"37238:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"37228:6:88","nodeType":"YulIdentifier","src":"37228:6:88"}]},{"nativeSrc":"37269:33:88","nodeType":"YulAssignment","src":"37269:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"37286:9:88","nodeType":"YulIdentifier","src":"37286:9:88"},{"kind":"number","nativeSrc":"37297:4:88","nodeType":"YulLiteral","src":"37297:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37282:3:88","nodeType":"YulIdentifier","src":"37282:3:88"},"nativeSrc":"37282:20:88","nodeType":"YulFunctionCall","src":"37282:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"37269:9:88","nodeType":"YulIdentifier","src":"37269:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"37105:1:88","nodeType":"YulIdentifier","src":"37105:1:88"},{"name":"loopEnd","nativeSrc":"37108:7:88","nodeType":"YulIdentifier","src":"37108:7:88"}],"functionName":{"name":"lt","nativeSrc":"37102:2:88","nodeType":"YulIdentifier","src":"37102:2:88"},"nativeSrc":"37102:14:88","nodeType":"YulFunctionCall","src":"37102:14:88"},"nativeSrc":"37094:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"37117:21:88","nodeType":"YulBlock","src":"37117:21:88","statements":[{"nativeSrc":"37119:17:88","nodeType":"YulAssignment","src":"37119:17:88","value":{"arguments":[{"name":"i","nativeSrc":"37128:1:88","nodeType":"YulIdentifier","src":"37128:1:88"},{"kind":"number","nativeSrc":"37131:4:88","nodeType":"YulLiteral","src":"37131:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37124:3:88","nodeType":"YulIdentifier","src":"37124:3:88"},"nativeSrc":"37124:12:88","nodeType":"YulFunctionCall","src":"37124:12:88"},"variableNames":[{"name":"i","nativeSrc":"37119:1:88","nodeType":"YulIdentifier","src":"37119:1:88"}]}]},"pre":{"nativeSrc":"37098:3:88","nodeType":"YulBlock","src":"37098:3:88","statements":[]},"src":"37094:222:88"},{"body":{"nativeSrc":"37364:166:88","nodeType":"YulBlock","src":"37364:166:88","statements":[{"nativeSrc":"37382:43:88","nodeType":"YulVariableDeclaration","src":"37382:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37409:3:88","nodeType":"YulIdentifier","src":"37409:3:88"},{"name":"srcOffset","nativeSrc":"37414:9:88","nodeType":"YulIdentifier","src":"37414:9:88"}],"functionName":{"name":"add","nativeSrc":"37405:3:88","nodeType":"YulIdentifier","src":"37405:3:88"},"nativeSrc":"37405:19:88","nodeType":"YulFunctionCall","src":"37405:19:88"}],"functionName":{"name":"mload","nativeSrc":"37399:5:88","nodeType":"YulIdentifier","src":"37399:5:88"},"nativeSrc":"37399:26:88","nodeType":"YulFunctionCall","src":"37399:26:88"},"variables":[{"name":"lastValue","nativeSrc":"37386:9:88","nodeType":"YulTypedName","src":"37386:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"37449:6:88","nodeType":"YulIdentifier","src":"37449:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"37461:9:88","nodeType":"YulIdentifier","src":"37461:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37488:1:88","nodeType":"YulLiteral","src":"37488:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"37491:6:88","nodeType":"YulIdentifier","src":"37491:6:88"}],"functionName":{"name":"shl","nativeSrc":"37484:3:88","nodeType":"YulIdentifier","src":"37484:3:88"},"nativeSrc":"37484:14:88","nodeType":"YulFunctionCall","src":"37484:14:88"},{"kind":"number","nativeSrc":"37500:3:88","nodeType":"YulLiteral","src":"37500:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"37480:3:88","nodeType":"YulIdentifier","src":"37480:3:88"},"nativeSrc":"37480:24:88","nodeType":"YulFunctionCall","src":"37480:24:88"},{"arguments":[{"kind":"number","nativeSrc":"37510:1:88","nodeType":"YulLiteral","src":"37510:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"37506:3:88","nodeType":"YulIdentifier","src":"37506:3:88"},"nativeSrc":"37506:6:88","nodeType":"YulFunctionCall","src":"37506:6:88"}],"functionName":{"name":"shr","nativeSrc":"37476:3:88","nodeType":"YulIdentifier","src":"37476:3:88"},"nativeSrc":"37476:37:88","nodeType":"YulFunctionCall","src":"37476:37:88"}],"functionName":{"name":"not","nativeSrc":"37472:3:88","nodeType":"YulIdentifier","src":"37472:3:88"},"nativeSrc":"37472:42:88","nodeType":"YulFunctionCall","src":"37472:42:88"}],"functionName":{"name":"and","nativeSrc":"37457:3:88","nodeType":"YulIdentifier","src":"37457:3:88"},"nativeSrc":"37457:58:88","nodeType":"YulFunctionCall","src":"37457:58:88"}],"functionName":{"name":"sstore","nativeSrc":"37442:6:88","nodeType":"YulIdentifier","src":"37442:6:88"},"nativeSrc":"37442:74:88","nodeType":"YulFunctionCall","src":"37442:74:88"},"nativeSrc":"37442:74:88","nodeType":"YulExpressionStatement","src":"37442:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"37335:7:88","nodeType":"YulIdentifier","src":"37335:7:88"},{"name":"newLen","nativeSrc":"37344:6:88","nodeType":"YulIdentifier","src":"37344:6:88"}],"functionName":{"name":"lt","nativeSrc":"37332:2:88","nodeType":"YulIdentifier","src":"37332:2:88"},"nativeSrc":"37332:19:88","nodeType":"YulFunctionCall","src":"37332:19:88"},"nativeSrc":"37329:201:88","nodeType":"YulIf","src":"37329:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"37550:4:88","nodeType":"YulIdentifier","src":"37550:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37564:1:88","nodeType":"YulLiteral","src":"37564:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"37567:6:88","nodeType":"YulIdentifier","src":"37567:6:88"}],"functionName":{"name":"shl","nativeSrc":"37560:3:88","nodeType":"YulIdentifier","src":"37560:3:88"},"nativeSrc":"37560:14:88","nodeType":"YulFunctionCall","src":"37560:14:88"},{"kind":"number","nativeSrc":"37576:1:88","nodeType":"YulLiteral","src":"37576:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37556:3:88","nodeType":"YulIdentifier","src":"37556:3:88"},"nativeSrc":"37556:22:88","nodeType":"YulFunctionCall","src":"37556:22:88"}],"functionName":{"name":"sstore","nativeSrc":"37543:6:88","nodeType":"YulIdentifier","src":"37543:6:88"},"nativeSrc":"37543:36:88","nodeType":"YulFunctionCall","src":"37543:36:88"},"nativeSrc":"37543:36:88","nodeType":"YulExpressionStatement","src":"37543:36:88"}]},"nativeSrc":"36940:649:88","nodeType":"YulCase","src":"36940:649:88","value":{"kind":"number","nativeSrc":"36945:1:88","nodeType":"YulLiteral","src":"36945:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"37606:234:88","nodeType":"YulBlock","src":"37606:234:88","statements":[{"nativeSrc":"37620:14:88","nodeType":"YulVariableDeclaration","src":"37620:14:88","value":{"kind":"number","nativeSrc":"37633:1:88","nodeType":"YulLiteral","src":"37633:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"37624:5:88","nodeType":"YulTypedName","src":"37624:5:88","type":""}]},{"body":{"nativeSrc":"37669:67:88","nodeType":"YulBlock","src":"37669:67:88","statements":[{"nativeSrc":"37687:35:88","nodeType":"YulAssignment","src":"37687:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37706:3:88","nodeType":"YulIdentifier","src":"37706:3:88"},{"name":"srcOffset","nativeSrc":"37711:9:88","nodeType":"YulIdentifier","src":"37711:9:88"}],"functionName":{"name":"add","nativeSrc":"37702:3:88","nodeType":"YulIdentifier","src":"37702:3:88"},"nativeSrc":"37702:19:88","nodeType":"YulFunctionCall","src":"37702:19:88"}],"functionName":{"name":"mload","nativeSrc":"37696:5:88","nodeType":"YulIdentifier","src":"37696:5:88"},"nativeSrc":"37696:26:88","nodeType":"YulFunctionCall","src":"37696:26:88"},"variableNames":[{"name":"value","nativeSrc":"37687:5:88","nodeType":"YulIdentifier","src":"37687:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"37650:6:88","nodeType":"YulIdentifier","src":"37650:6:88"},"nativeSrc":"37647:89:88","nodeType":"YulIf","src":"37647:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"37756:4:88","nodeType":"YulIdentifier","src":"37756:4:88"},{"arguments":[{"name":"value","nativeSrc":"37815:5:88","nodeType":"YulIdentifier","src":"37815:5:88"},{"name":"newLen","nativeSrc":"37822:6:88","nodeType":"YulIdentifier","src":"37822:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"37762:52:88","nodeType":"YulIdentifier","src":"37762:52:88"},"nativeSrc":"37762:67:88","nodeType":"YulFunctionCall","src":"37762:67:88"}],"functionName":{"name":"sstore","nativeSrc":"37749:6:88","nodeType":"YulIdentifier","src":"37749:6:88"},"nativeSrc":"37749:81:88","nodeType":"YulFunctionCall","src":"37749:81:88"},"nativeSrc":"37749:81:88","nodeType":"YulExpressionStatement","src":"37749:81:88"}]},"nativeSrc":"37598:242:88","nodeType":"YulCase","src":"37598:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"36920:6:88","nodeType":"YulIdentifier","src":"36920:6:88"},{"kind":"number","nativeSrc":"36928:2:88","nodeType":"YulLiteral","src":"36928:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"36917:2:88","nodeType":"YulIdentifier","src":"36917:2:88"},"nativeSrc":"36917:14:88","nodeType":"YulFunctionCall","src":"36917:14:88"},"nativeSrc":"36910:930:88","nodeType":"YulSwitch","src":"36910:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"36547:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"36628:4:88","nodeType":"YulTypedName","src":"36628:4:88","type":""},{"name":"src","nativeSrc":"36634:3:88","nodeType":"YulTypedName","src":"36634:3:88","type":""}],"src":"36547:1299:88"},{"body":{"nativeSrc":"37901:162:88","nodeType":"YulBlock","src":"37901:162:88","statements":[{"nativeSrc":"37911:26:88","nodeType":"YulVariableDeclaration","src":"37911:26:88","value":{"arguments":[{"name":"value","nativeSrc":"37931:5:88","nodeType":"YulIdentifier","src":"37931:5:88"}],"functionName":{"name":"mload","nativeSrc":"37925:5:88","nodeType":"YulIdentifier","src":"37925:5:88"},"nativeSrc":"37925:12:88","nodeType":"YulFunctionCall","src":"37925:12:88"},"variables":[{"name":"length","nativeSrc":"37915:6:88","nodeType":"YulTypedName","src":"37915:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"37952:3:88","nodeType":"YulIdentifier","src":"37952:3:88"},{"arguments":[{"name":"value","nativeSrc":"37961:5:88","nodeType":"YulIdentifier","src":"37961:5:88"},{"kind":"number","nativeSrc":"37968:4:88","nodeType":"YulLiteral","src":"37968:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37957:3:88","nodeType":"YulIdentifier","src":"37957:3:88"},"nativeSrc":"37957:16:88","nodeType":"YulFunctionCall","src":"37957:16:88"},{"name":"length","nativeSrc":"37975:6:88","nodeType":"YulIdentifier","src":"37975:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"37946:5:88","nodeType":"YulIdentifier","src":"37946:5:88"},"nativeSrc":"37946:36:88","nodeType":"YulFunctionCall","src":"37946:36:88"},"nativeSrc":"37946:36:88","nodeType":"YulExpressionStatement","src":"37946:36:88"},{"nativeSrc":"37991:26:88","nodeType":"YulVariableDeclaration","src":"37991:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"38005:3:88","nodeType":"YulIdentifier","src":"38005:3:88"},{"name":"length","nativeSrc":"38010:6:88","nodeType":"YulIdentifier","src":"38010:6:88"}],"functionName":{"name":"add","nativeSrc":"38001:3:88","nodeType":"YulIdentifier","src":"38001:3:88"},"nativeSrc":"38001:16:88","nodeType":"YulFunctionCall","src":"38001:16:88"},"variables":[{"name":"_1","nativeSrc":"37995:2:88","nodeType":"YulTypedName","src":"37995:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"38033:2:88","nodeType":"YulIdentifier","src":"38033:2:88"},{"kind":"number","nativeSrc":"38037:1:88","nodeType":"YulLiteral","src":"38037:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38026:6:88","nodeType":"YulIdentifier","src":"38026:6:88"},"nativeSrc":"38026:13:88","nodeType":"YulFunctionCall","src":"38026:13:88"},"nativeSrc":"38026:13:88","nodeType":"YulExpressionStatement","src":"38026:13:88"},{"nativeSrc":"38048:9:88","nodeType":"YulAssignment","src":"38048:9:88","value":{"name":"_1","nativeSrc":"38055:2:88","nodeType":"YulIdentifier","src":"38055:2:88"},"variableNames":[{"name":"end","nativeSrc":"38048:3:88","nodeType":"YulIdentifier","src":"38048:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"37851:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"37878:5:88","nodeType":"YulTypedName","src":"37878:5:88","type":""},{"name":"pos","nativeSrc":"37885:3:88","nodeType":"YulTypedName","src":"37885:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"37893:3:88","nodeType":"YulTypedName","src":"37893:3:88","type":""}],"src":"37851:212:88"},{"body":{"nativeSrc":"38354:177:88","nodeType":"YulBlock","src":"38354:177:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"38371:3:88","nodeType":"YulIdentifier","src":"38371:3:88"},{"kind":"number","nativeSrc":"38376:66:88","nodeType":"YulLiteral","src":"38376:66:88","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nativeSrc":"38364:6:88","nodeType":"YulIdentifier","src":"38364:6:88"},"nativeSrc":"38364:79:88","nodeType":"YulFunctionCall","src":"38364:79:88"},"nativeSrc":"38364:79:88","nodeType":"YulExpressionStatement","src":"38364:79:88"},{"nativeSrc":"38452:73:88","nodeType":"YulAssignment","src":"38452:73:88","value":{"arguments":[{"name":"value1","nativeSrc":"38477:6:88","nodeType":"YulIdentifier","src":"38477:6:88"},{"arguments":[{"name":"value0","nativeSrc":"38503:6:88","nodeType":"YulIdentifier","src":"38503:6:88"},{"arguments":[{"name":"pos","nativeSrc":"38515:3:88","nodeType":"YulIdentifier","src":"38515:3:88"},{"kind":"number","nativeSrc":"38520:2:88","nodeType":"YulLiteral","src":"38520:2:88","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"38511:3:88","nodeType":"YulIdentifier","src":"38511:3:88"},"nativeSrc":"38511:12:88","nodeType":"YulFunctionCall","src":"38511:12:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"38485:17:88","nodeType":"YulIdentifier","src":"38485:17:88"},"nativeSrc":"38485:39:88","nodeType":"YulFunctionCall","src":"38485:39:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"38459:17:88","nodeType":"YulIdentifier","src":"38459:17:88"},"nativeSrc":"38459:66:88","nodeType":"YulFunctionCall","src":"38459:66:88"},"variableNames":[{"name":"end","nativeSrc":"38452:3:88","nodeType":"YulIdentifier","src":"38452:3:88"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"38068:463:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"38322:3:88","nodeType":"YulTypedName","src":"38322:3:88","type":""},{"name":"value1","nativeSrc":"38327:6:88","nodeType":"YulTypedName","src":"38327:6:88","type":""},{"name":"value0","nativeSrc":"38335:6:88","nodeType":"YulTypedName","src":"38335:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"38346:3:88","nodeType":"YulTypedName","src":"38346:3:88","type":""}],"src":"38068:463:88"},{"body":{"nativeSrc":"38710:182:88","nodeType":"YulBlock","src":"38710:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38727:9:88","nodeType":"YulIdentifier","src":"38727:9:88"},{"kind":"number","nativeSrc":"38738:2:88","nodeType":"YulLiteral","src":"38738:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38720:6:88","nodeType":"YulIdentifier","src":"38720:6:88"},"nativeSrc":"38720:21:88","nodeType":"YulFunctionCall","src":"38720:21:88"},"nativeSrc":"38720:21:88","nodeType":"YulExpressionStatement","src":"38720:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38761:9:88","nodeType":"YulIdentifier","src":"38761:9:88"},{"kind":"number","nativeSrc":"38772:2:88","nodeType":"YulLiteral","src":"38772:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38757:3:88","nodeType":"YulIdentifier","src":"38757:3:88"},"nativeSrc":"38757:18:88","nodeType":"YulFunctionCall","src":"38757:18:88"},{"kind":"number","nativeSrc":"38777:2:88","nodeType":"YulLiteral","src":"38777:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38750:6:88","nodeType":"YulIdentifier","src":"38750:6:88"},"nativeSrc":"38750:30:88","nodeType":"YulFunctionCall","src":"38750:30:88"},"nativeSrc":"38750:30:88","nodeType":"YulExpressionStatement","src":"38750:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38800:9:88","nodeType":"YulIdentifier","src":"38800:9:88"},{"kind":"number","nativeSrc":"38811:2:88","nodeType":"YulLiteral","src":"38811:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38796:3:88","nodeType":"YulIdentifier","src":"38796:3:88"},"nativeSrc":"38796:18:88","nodeType":"YulFunctionCall","src":"38796:18:88"},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","kind":"string","nativeSrc":"38816:34:88","nodeType":"YulLiteral","src":"38816:34:88","type":"","value":"Expiration must be in the future"}],"functionName":{"name":"mstore","nativeSrc":"38789:6:88","nodeType":"YulIdentifier","src":"38789:6:88"},"nativeSrc":"38789:62:88","nodeType":"YulFunctionCall","src":"38789:62:88"},"nativeSrc":"38789:62:88","nodeType":"YulExpressionStatement","src":"38789:62:88"},{"nativeSrc":"38860:26:88","nodeType":"YulAssignment","src":"38860:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38872:9:88","nodeType":"YulIdentifier","src":"38872:9:88"},{"kind":"number","nativeSrc":"38883:2:88","nodeType":"YulLiteral","src":"38883:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38868:3:88","nodeType":"YulIdentifier","src":"38868:3:88"},"nativeSrc":"38868:18:88","nodeType":"YulFunctionCall","src":"38868:18:88"},"variableNames":[{"name":"tail","nativeSrc":"38860:4:88","nodeType":"YulIdentifier","src":"38860:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38536:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38687:9:88","nodeType":"YulTypedName","src":"38687:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38701:4:88","nodeType":"YulTypedName","src":"38701:4:88","type":""}],"src":"38536:356:88"},{"body":{"nativeSrc":"39071:180:88","nodeType":"YulBlock","src":"39071:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39088:9:88","nodeType":"YulIdentifier","src":"39088:9:88"},{"kind":"number","nativeSrc":"39099:2:88","nodeType":"YulLiteral","src":"39099:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39081:6:88","nodeType":"YulIdentifier","src":"39081:6:88"},"nativeSrc":"39081:21:88","nodeType":"YulFunctionCall","src":"39081:21:88"},"nativeSrc":"39081:21:88","nodeType":"YulExpressionStatement","src":"39081:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39122:9:88","nodeType":"YulIdentifier","src":"39122:9:88"},{"kind":"number","nativeSrc":"39133:2:88","nodeType":"YulLiteral","src":"39133:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39118:3:88","nodeType":"YulIdentifier","src":"39118:3:88"},"nativeSrc":"39118:18:88","nodeType":"YulFunctionCall","src":"39118:18:88"},{"kind":"number","nativeSrc":"39138:2:88","nodeType":"YulLiteral","src":"39138:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"39111:6:88","nodeType":"YulIdentifier","src":"39111:6:88"},"nativeSrc":"39111:30:88","nodeType":"YulFunctionCall","src":"39111:30:88"},"nativeSrc":"39111:30:88","nodeType":"YulExpressionStatement","src":"39111:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39161:9:88","nodeType":"YulIdentifier","src":"39161:9:88"},{"kind":"number","nativeSrc":"39172:2:88","nodeType":"YulLiteral","src":"39172:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39157:3:88","nodeType":"YulIdentifier","src":"39157:3:88"},"nativeSrc":"39157:18:88","nodeType":"YulFunctionCall","src":"39157:18:88"},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"39177:32:88","nodeType":"YulLiteral","src":"39177:32:88","type":"","value":"Customer can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"39150:6:88","nodeType":"YulIdentifier","src":"39150:6:88"},"nativeSrc":"39150:60:88","nodeType":"YulFunctionCall","src":"39150:60:88"},"nativeSrc":"39150:60:88","nodeType":"YulExpressionStatement","src":"39150:60:88"},{"nativeSrc":"39219:26:88","nodeType":"YulAssignment","src":"39219:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39231:9:88","nodeType":"YulIdentifier","src":"39231:9:88"},{"kind":"number","nativeSrc":"39242:2:88","nodeType":"YulLiteral","src":"39242:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39227:3:88","nodeType":"YulIdentifier","src":"39227:3:88"},"nativeSrc":"39227:18:88","nodeType":"YulFunctionCall","src":"39227:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39219:4:88","nodeType":"YulIdentifier","src":"39219:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38897:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39048:9:88","nodeType":"YulTypedName","src":"39048:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39062:4:88","nodeType":"YulTypedName","src":"39062:4:88","type":""}],"src":"38897:354:88"},{"body":{"nativeSrc":"39497:316:88","nodeType":"YulBlock","src":"39497:316:88","statements":[{"nativeSrc":"39507:27:88","nodeType":"YulAssignment","src":"39507:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39519:9:88","nodeType":"YulIdentifier","src":"39519:9:88"},{"kind":"number","nativeSrc":"39530:3:88","nodeType":"YulLiteral","src":"39530:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"39515:3:88","nodeType":"YulIdentifier","src":"39515:3:88"},"nativeSrc":"39515:19:88","nodeType":"YulFunctionCall","src":"39515:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39507:4:88","nodeType":"YulIdentifier","src":"39507:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"39572:6:88","nodeType":"YulIdentifier","src":"39572:6:88"},{"name":"headStart","nativeSrc":"39580:9:88","nodeType":"YulIdentifier","src":"39580:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"39543:28:88","nodeType":"YulIdentifier","src":"39543:28:88"},"nativeSrc":"39543:47:88","nodeType":"YulFunctionCall","src":"39543:47:88"},"nativeSrc":"39543:47:88","nodeType":"YulExpressionStatement","src":"39543:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39610:9:88","nodeType":"YulIdentifier","src":"39610:9:88"},{"kind":"number","nativeSrc":"39621:3:88","nodeType":"YulLiteral","src":"39621:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"39606:3:88","nodeType":"YulIdentifier","src":"39606:3:88"},"nativeSrc":"39606:19:88","nodeType":"YulFunctionCall","src":"39606:19:88"},{"arguments":[{"name":"value1","nativeSrc":"39631:6:88","nodeType":"YulIdentifier","src":"39631:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39647:3:88","nodeType":"YulLiteral","src":"39647:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39652:1:88","nodeType":"YulLiteral","src":"39652:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39643:3:88","nodeType":"YulIdentifier","src":"39643:3:88"},"nativeSrc":"39643:11:88","nodeType":"YulFunctionCall","src":"39643:11:88"},{"kind":"number","nativeSrc":"39656:1:88","nodeType":"YulLiteral","src":"39656:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39639:3:88","nodeType":"YulIdentifier","src":"39639:3:88"},"nativeSrc":"39639:19:88","nodeType":"YulFunctionCall","src":"39639:19:88"}],"functionName":{"name":"and","nativeSrc":"39627:3:88","nodeType":"YulIdentifier","src":"39627:3:88"},"nativeSrc":"39627:32:88","nodeType":"YulFunctionCall","src":"39627:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39599:6:88","nodeType":"YulIdentifier","src":"39599:6:88"},"nativeSrc":"39599:61:88","nodeType":"YulFunctionCall","src":"39599:61:88"},"nativeSrc":"39599:61:88","nodeType":"YulExpressionStatement","src":"39599:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39680:9:88","nodeType":"YulIdentifier","src":"39680:9:88"},{"kind":"number","nativeSrc":"39691:3:88","nodeType":"YulLiteral","src":"39691:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"39676:3:88","nodeType":"YulIdentifier","src":"39676:3:88"},"nativeSrc":"39676:19:88","nodeType":"YulFunctionCall","src":"39676:19:88"},{"arguments":[{"name":"value2","nativeSrc":"39701:6:88","nodeType":"YulIdentifier","src":"39701:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39717:3:88","nodeType":"YulLiteral","src":"39717:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"39722:1:88","nodeType":"YulLiteral","src":"39722:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"39713:3:88","nodeType":"YulIdentifier","src":"39713:3:88"},"nativeSrc":"39713:11:88","nodeType":"YulFunctionCall","src":"39713:11:88"},{"kind":"number","nativeSrc":"39726:1:88","nodeType":"YulLiteral","src":"39726:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39709:3:88","nodeType":"YulIdentifier","src":"39709:3:88"},"nativeSrc":"39709:19:88","nodeType":"YulFunctionCall","src":"39709:19:88"}],"functionName":{"name":"and","nativeSrc":"39697:3:88","nodeType":"YulIdentifier","src":"39697:3:88"},"nativeSrc":"39697:32:88","nodeType":"YulFunctionCall","src":"39697:32:88"}],"functionName":{"name":"mstore","nativeSrc":"39669:6:88","nodeType":"YulIdentifier","src":"39669:6:88"},"nativeSrc":"39669:61:88","nodeType":"YulFunctionCall","src":"39669:61:88"},"nativeSrc":"39669:61:88","nodeType":"YulExpressionStatement","src":"39669:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39750:9:88","nodeType":"YulIdentifier","src":"39750:9:88"},{"kind":"number","nativeSrc":"39761:3:88","nodeType":"YulLiteral","src":"39761:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"39746:3:88","nodeType":"YulIdentifier","src":"39746:3:88"},"nativeSrc":"39746:19:88","nodeType":"YulFunctionCall","src":"39746:19:88"},{"arguments":[{"name":"value3","nativeSrc":"39771:6:88","nodeType":"YulIdentifier","src":"39771:6:88"},{"kind":"number","nativeSrc":"39779:26:88","nodeType":"YulLiteral","src":"39779:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"39767:3:88","nodeType":"YulIdentifier","src":"39767:3:88"},"nativeSrc":"39767:39:88","nodeType":"YulFunctionCall","src":"39767:39:88"}],"functionName":{"name":"mstore","nativeSrc":"39739:6:88","nodeType":"YulIdentifier","src":"39739:6:88"},"nativeSrc":"39739:68:88","nodeType":"YulFunctionCall","src":"39739:68:88"},"nativeSrc":"39739:68:88","nodeType":"YulExpressionStatement","src":"39739:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed","nativeSrc":"39256:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39442:9:88","nodeType":"YulTypedName","src":"39442:9:88","type":""},{"name":"value3","nativeSrc":"39453:6:88","nodeType":"YulTypedName","src":"39453:6:88","type":""},{"name":"value2","nativeSrc":"39461:6:88","nodeType":"YulTypedName","src":"39461:6:88","type":""},{"name":"value1","nativeSrc":"39469:6:88","nodeType":"YulTypedName","src":"39469:6:88","type":""},{"name":"value0","nativeSrc":"39477:6:88","nodeType":"YulTypedName","src":"39477:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39488:4:88","nodeType":"YulTypedName","src":"39488:4:88","type":""}],"src":"39256:557:88"},{"body":{"nativeSrc":"39992:224:88","nodeType":"YulBlock","src":"39992:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40009:9:88","nodeType":"YulIdentifier","src":"40009:9:88"},{"kind":"number","nativeSrc":"40020:2:88","nodeType":"YulLiteral","src":"40020:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40002:6:88","nodeType":"YulIdentifier","src":"40002:6:88"},"nativeSrc":"40002:21:88","nodeType":"YulFunctionCall","src":"40002:21:88"},"nativeSrc":"40002:21:88","nodeType":"YulExpressionStatement","src":"40002:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40043:9:88","nodeType":"YulIdentifier","src":"40043:9:88"},{"kind":"number","nativeSrc":"40054:2:88","nodeType":"YulLiteral","src":"40054:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40039:3:88","nodeType":"YulIdentifier","src":"40039:3:88"},"nativeSrc":"40039:18:88","nodeType":"YulFunctionCall","src":"40039:18:88"},{"kind":"number","nativeSrc":"40059:2:88","nodeType":"YulLiteral","src":"40059:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"40032:6:88","nodeType":"YulIdentifier","src":"40032:6:88"},"nativeSrc":"40032:30:88","nodeType":"YulFunctionCall","src":"40032:30:88"},"nativeSrc":"40032:30:88","nodeType":"YulExpressionStatement","src":"40032:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40082:9:88","nodeType":"YulIdentifier","src":"40082:9:88"},{"kind":"number","nativeSrc":"40093:2:88","nodeType":"YulLiteral","src":"40093:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40078:3:88","nodeType":"YulIdentifier","src":"40078:3:88"},"nativeSrc":"40078:18:88","nodeType":"YulFunctionCall","src":"40078:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"40098:34:88","nodeType":"YulLiteral","src":"40098:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"40071:6:88","nodeType":"YulIdentifier","src":"40071:6:88"},"nativeSrc":"40071:62:88","nodeType":"YulFunctionCall","src":"40071:62:88"},"nativeSrc":"40071:62:88","nodeType":"YulExpressionStatement","src":"40071:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40153:9:88","nodeType":"YulIdentifier","src":"40153:9:88"},{"kind":"number","nativeSrc":"40164:2:88","nodeType":"YulLiteral","src":"40164:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40149:3:88","nodeType":"YulIdentifier","src":"40149:3:88"},"nativeSrc":"40149:18:88","nodeType":"YulFunctionCall","src":"40149:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"40169:4:88","nodeType":"YulLiteral","src":"40169:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"40142:6:88","nodeType":"YulIdentifier","src":"40142:6:88"},"nativeSrc":"40142:32:88","nodeType":"YulFunctionCall","src":"40142:32:88"},"nativeSrc":"40142:32:88","nodeType":"YulExpressionStatement","src":"40142:32:88"},{"nativeSrc":"40183:27:88","nodeType":"YulAssignment","src":"40183:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40195:9:88","nodeType":"YulIdentifier","src":"40195:9:88"},{"kind":"number","nativeSrc":"40206:3:88","nodeType":"YulLiteral","src":"40206:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40191:3:88","nodeType":"YulIdentifier","src":"40191:3:88"},"nativeSrc":"40191:19:88","nodeType":"YulFunctionCall","src":"40191:19:88"},"variableNames":[{"name":"tail","nativeSrc":"40183:4:88","nodeType":"YulIdentifier","src":"40183:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39818:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39969:9:88","nodeType":"YulTypedName","src":"39969:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39983:4:88","nodeType":"YulTypedName","src":"39983:4:88","type":""}],"src":"39818:398:88"},{"body":{"nativeSrc":"40395:175:88","nodeType":"YulBlock","src":"40395:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40412:9:88","nodeType":"YulIdentifier","src":"40412:9:88"},{"kind":"number","nativeSrc":"40423:2:88","nodeType":"YulLiteral","src":"40423:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40405:6:88","nodeType":"YulIdentifier","src":"40405:6:88"},"nativeSrc":"40405:21:88","nodeType":"YulFunctionCall","src":"40405:21:88"},"nativeSrc":"40405:21:88","nodeType":"YulExpressionStatement","src":"40405:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40446:9:88","nodeType":"YulIdentifier","src":"40446:9:88"},{"kind":"number","nativeSrc":"40457:2:88","nodeType":"YulLiteral","src":"40457:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40442:3:88","nodeType":"YulIdentifier","src":"40442:3:88"},"nativeSrc":"40442:18:88","nodeType":"YulFunctionCall","src":"40442:18:88"},{"kind":"number","nativeSrc":"40462:2:88","nodeType":"YulLiteral","src":"40462:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"40435:6:88","nodeType":"YulIdentifier","src":"40435:6:88"},"nativeSrc":"40435:30:88","nodeType":"YulFunctionCall","src":"40435:30:88"},"nativeSrc":"40435:30:88","nodeType":"YulExpressionStatement","src":"40435:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40485:9:88","nodeType":"YulIdentifier","src":"40485:9:88"},{"kind":"number","nativeSrc":"40496:2:88","nodeType":"YulLiteral","src":"40496:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40481:3:88","nodeType":"YulIdentifier","src":"40481:3:88"},"nativeSrc":"40481:18:88","nodeType":"YulFunctionCall","src":"40481:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"40501:27:88","nodeType":"YulLiteral","src":"40501:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"40474:6:88","nodeType":"YulIdentifier","src":"40474:6:88"},"nativeSrc":"40474:55:88","nodeType":"YulFunctionCall","src":"40474:55:88"},"nativeSrc":"40474:55:88","nodeType":"YulExpressionStatement","src":"40474:55:88"},{"nativeSrc":"40538:26:88","nodeType":"YulAssignment","src":"40538:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40550:9:88","nodeType":"YulIdentifier","src":"40550:9:88"},{"kind":"number","nativeSrc":"40561:2:88","nodeType":"YulLiteral","src":"40561:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40546:3:88","nodeType":"YulIdentifier","src":"40546:3:88"},"nativeSrc":"40546:18:88","nodeType":"YulFunctionCall","src":"40546:18:88"},"variableNames":[{"name":"tail","nativeSrc":"40538:4:88","nodeType":"YulIdentifier","src":"40538:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40221:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40372:9:88","nodeType":"YulTypedName","src":"40372:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40386:4:88","nodeType":"YulTypedName","src":"40386:4:88","type":""}],"src":"40221:349:88"},{"body":{"nativeSrc":"40749:228:88","nodeType":"YulBlock","src":"40749:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40766:9:88","nodeType":"YulIdentifier","src":"40766:9:88"},{"kind":"number","nativeSrc":"40777:2:88","nodeType":"YulLiteral","src":"40777:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40759:6:88","nodeType":"YulIdentifier","src":"40759:6:88"},"nativeSrc":"40759:21:88","nodeType":"YulFunctionCall","src":"40759:21:88"},"nativeSrc":"40759:21:88","nodeType":"YulExpressionStatement","src":"40759:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40800:9:88","nodeType":"YulIdentifier","src":"40800:9:88"},{"kind":"number","nativeSrc":"40811:2:88","nodeType":"YulLiteral","src":"40811:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40796:3:88","nodeType":"YulIdentifier","src":"40796:3:88"},"nativeSrc":"40796:18:88","nodeType":"YulFunctionCall","src":"40796:18:88"},{"kind":"number","nativeSrc":"40816:2:88","nodeType":"YulLiteral","src":"40816:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"40789:6:88","nodeType":"YulIdentifier","src":"40789:6:88"},"nativeSrc":"40789:30:88","nodeType":"YulFunctionCall","src":"40789:30:88"},"nativeSrc":"40789:30:88","nodeType":"YulExpressionStatement","src":"40789:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40839:9:88","nodeType":"YulIdentifier","src":"40839:9:88"},{"kind":"number","nativeSrc":"40850:2:88","nodeType":"YulLiteral","src":"40850:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40835:3:88","nodeType":"YulIdentifier","src":"40835:3:88"},"nativeSrc":"40835:18:88","nodeType":"YulFunctionCall","src":"40835:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"40855:34:88","nodeType":"YulLiteral","src":"40855:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"40828:6:88","nodeType":"YulIdentifier","src":"40828:6:88"},"nativeSrc":"40828:62:88","nodeType":"YulFunctionCall","src":"40828:62:88"},"nativeSrc":"40828:62:88","nodeType":"YulExpressionStatement","src":"40828:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40910:9:88","nodeType":"YulIdentifier","src":"40910:9:88"},{"kind":"number","nativeSrc":"40921:2:88","nodeType":"YulLiteral","src":"40921:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40906:3:88","nodeType":"YulIdentifier","src":"40906:3:88"},"nativeSrc":"40906:18:88","nodeType":"YulFunctionCall","src":"40906:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"40926:8:88","nodeType":"YulLiteral","src":"40926:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"40899:6:88","nodeType":"YulIdentifier","src":"40899:6:88"},"nativeSrc":"40899:36:88","nodeType":"YulFunctionCall","src":"40899:36:88"},"nativeSrc":"40899:36:88","nodeType":"YulExpressionStatement","src":"40899:36:88"},{"nativeSrc":"40944:27:88","nodeType":"YulAssignment","src":"40944:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40956:9:88","nodeType":"YulIdentifier","src":"40956:9:88"},{"kind":"number","nativeSrc":"40967:3:88","nodeType":"YulLiteral","src":"40967:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40952:3:88","nodeType":"YulIdentifier","src":"40952:3:88"},"nativeSrc":"40952:19:88","nodeType":"YulFunctionCall","src":"40952:19:88"},"variableNames":[{"name":"tail","nativeSrc":"40944:4:88","nodeType":"YulIdentifier","src":"40944:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40575:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40726:9:88","nodeType":"YulTypedName","src":"40726:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40740:4:88","nodeType":"YulTypedName","src":"40740:4:88","type":""}],"src":"40575:402:88"},{"body":{"nativeSrc":"41084:170:88","nodeType":"YulBlock","src":"41084:170:88","statements":[{"body":{"nativeSrc":"41130:16:88","nodeType":"YulBlock","src":"41130:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41139:1:88","nodeType":"YulLiteral","src":"41139:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"41142:1:88","nodeType":"YulLiteral","src":"41142:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41132:6:88","nodeType":"YulIdentifier","src":"41132:6:88"},"nativeSrc":"41132:12:88","nodeType":"YulFunctionCall","src":"41132:12:88"},"nativeSrc":"41132:12:88","nodeType":"YulExpressionStatement","src":"41132:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"41105:7:88","nodeType":"YulIdentifier","src":"41105:7:88"},{"name":"headStart","nativeSrc":"41114:9:88","nodeType":"YulIdentifier","src":"41114:9:88"}],"functionName":{"name":"sub","nativeSrc":"41101:3:88","nodeType":"YulIdentifier","src":"41101:3:88"},"nativeSrc":"41101:23:88","nodeType":"YulFunctionCall","src":"41101:23:88"},{"kind":"number","nativeSrc":"41126:2:88","nodeType":"YulLiteral","src":"41126:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"41097:3:88","nodeType":"YulIdentifier","src":"41097:3:88"},"nativeSrc":"41097:32:88","nodeType":"YulFunctionCall","src":"41097:32:88"},"nativeSrc":"41094:52:88","nodeType":"YulIf","src":"41094:52:88"},{"nativeSrc":"41155:29:88","nodeType":"YulVariableDeclaration","src":"41155:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41174:9:88","nodeType":"YulIdentifier","src":"41174:9:88"}],"functionName":{"name":"mload","nativeSrc":"41168:5:88","nodeType":"YulIdentifier","src":"41168:5:88"},"nativeSrc":"41168:16:88","nodeType":"YulFunctionCall","src":"41168:16:88"},"variables":[{"name":"value","nativeSrc":"41159:5:88","nodeType":"YulTypedName","src":"41159:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"41218:5:88","nodeType":"YulIdentifier","src":"41218:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"41193:24:88","nodeType":"YulIdentifier","src":"41193:24:88"},"nativeSrc":"41193:31:88","nodeType":"YulFunctionCall","src":"41193:31:88"},"nativeSrc":"41193:31:88","nodeType":"YulExpressionStatement","src":"41193:31:88"},{"nativeSrc":"41233:15:88","nodeType":"YulAssignment","src":"41233:15:88","value":{"name":"value","nativeSrc":"41243:5:88","nodeType":"YulIdentifier","src":"41243:5:88"},"variableNames":[{"name":"value0","nativeSrc":"41233:6:88","nodeType":"YulIdentifier","src":"41233:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"40982:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41050:9:88","nodeType":"YulTypedName","src":"41050:9:88","type":""},{"name":"dataEnd","nativeSrc":"41061:7:88","nodeType":"YulTypedName","src":"41061:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"41073:6:88","nodeType":"YulTypedName","src":"41073:6:88","type":""}],"src":"40982:272:88"},{"body":{"nativeSrc":"41433:174:88","nodeType":"YulBlock","src":"41433:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41450:9:88","nodeType":"YulIdentifier","src":"41450:9:88"},{"kind":"number","nativeSrc":"41461:2:88","nodeType":"YulLiteral","src":"41461:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41443:6:88","nodeType":"YulIdentifier","src":"41443:6:88"},"nativeSrc":"41443:21:88","nodeType":"YulFunctionCall","src":"41443:21:88"},"nativeSrc":"41443:21:88","nodeType":"YulExpressionStatement","src":"41443:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41484:9:88","nodeType":"YulIdentifier","src":"41484:9:88"},{"kind":"number","nativeSrc":"41495:2:88","nodeType":"YulLiteral","src":"41495:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41480:3:88","nodeType":"YulIdentifier","src":"41480:3:88"},"nativeSrc":"41480:18:88","nodeType":"YulFunctionCall","src":"41480:18:88"},{"kind":"number","nativeSrc":"41500:2:88","nodeType":"YulLiteral","src":"41500:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"41473:6:88","nodeType":"YulIdentifier","src":"41473:6:88"},"nativeSrc":"41473:30:88","nodeType":"YulFunctionCall","src":"41473:30:88"},"nativeSrc":"41473:30:88","nodeType":"YulExpressionStatement","src":"41473:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41523:9:88","nodeType":"YulIdentifier","src":"41523:9:88"},{"kind":"number","nativeSrc":"41534:2:88","nodeType":"YulLiteral","src":"41534:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41519:3:88","nodeType":"YulIdentifier","src":"41519:3:88"},"nativeSrc":"41519:18:88","nodeType":"YulFunctionCall","src":"41519:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nativeSrc":"41539:26:88","nodeType":"YulLiteral","src":"41539:26:88","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nativeSrc":"41512:6:88","nodeType":"YulIdentifier","src":"41512:6:88"},"nativeSrc":"41512:54:88","nodeType":"YulFunctionCall","src":"41512:54:88"},"nativeSrc":"41512:54:88","nodeType":"YulExpressionStatement","src":"41512:54:88"},{"nativeSrc":"41575:26:88","nodeType":"YulAssignment","src":"41575:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41587:9:88","nodeType":"YulIdentifier","src":"41587:9:88"},{"kind":"number","nativeSrc":"41598:2:88","nodeType":"YulLiteral","src":"41598:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41583:3:88","nodeType":"YulIdentifier","src":"41583:3:88"},"nativeSrc":"41583:18:88","nodeType":"YulFunctionCall","src":"41583:18:88"},"variableNames":[{"name":"tail","nativeSrc":"41575:4:88","nodeType":"YulIdentifier","src":"41575:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41259:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41410:9:88","nodeType":"YulTypedName","src":"41410:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41424:4:88","nodeType":"YulTypedName","src":"41424:4:88","type":""}],"src":"41259:348:88"},{"body":{"nativeSrc":"41786:181:88","nodeType":"YulBlock","src":"41786:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41803:9:88","nodeType":"YulIdentifier","src":"41803:9:88"},{"kind":"number","nativeSrc":"41814:2:88","nodeType":"YulLiteral","src":"41814:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41796:6:88","nodeType":"YulIdentifier","src":"41796:6:88"},"nativeSrc":"41796:21:88","nodeType":"YulFunctionCall","src":"41796:21:88"},"nativeSrc":"41796:21:88","nodeType":"YulExpressionStatement","src":"41796:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41837:9:88","nodeType":"YulIdentifier","src":"41837:9:88"},{"kind":"number","nativeSrc":"41848:2:88","nodeType":"YulLiteral","src":"41848:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41833:3:88","nodeType":"YulIdentifier","src":"41833:3:88"},"nativeSrc":"41833:18:88","nodeType":"YulFunctionCall","src":"41833:18:88"},{"kind":"number","nativeSrc":"41853:2:88","nodeType":"YulLiteral","src":"41853:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"41826:6:88","nodeType":"YulIdentifier","src":"41826:6:88"},"nativeSrc":"41826:30:88","nodeType":"YulFunctionCall","src":"41826:30:88"},"nativeSrc":"41826:30:88","nodeType":"YulExpressionStatement","src":"41826:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41876:9:88","nodeType":"YulIdentifier","src":"41876:9:88"},{"kind":"number","nativeSrc":"41887:2:88","nodeType":"YulLiteral","src":"41887:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41872:3:88","nodeType":"YulIdentifier","src":"41872:3:88"},"nativeSrc":"41872:18:88","nodeType":"YulFunctionCall","src":"41872:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nativeSrc":"41892:33:88","nodeType":"YulLiteral","src":"41892:33:88","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nativeSrc":"41865:6:88","nodeType":"YulIdentifier","src":"41865:6:88"},"nativeSrc":"41865:61:88","nodeType":"YulFunctionCall","src":"41865:61:88"},"nativeSrc":"41865:61:88","nodeType":"YulExpressionStatement","src":"41865:61:88"},{"nativeSrc":"41935:26:88","nodeType":"YulAssignment","src":"41935:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41947:9:88","nodeType":"YulIdentifier","src":"41947:9:88"},{"kind":"number","nativeSrc":"41958:2:88","nodeType":"YulLiteral","src":"41958:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41943:3:88","nodeType":"YulIdentifier","src":"41943:3:88"},"nativeSrc":"41943:18:88","nodeType":"YulFunctionCall","src":"41943:18:88"},"variableNames":[{"name":"tail","nativeSrc":"41935:4:88","nodeType":"YulIdentifier","src":"41935:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41612:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41763:9:88","nodeType":"YulTypedName","src":"41763:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41777:4:88","nodeType":"YulTypedName","src":"41777:4:88","type":""}],"src":"41612:355:88"},{"body":{"nativeSrc":"42146:224:88","nodeType":"YulBlock","src":"42146:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42163:9:88","nodeType":"YulIdentifier","src":"42163:9:88"},{"kind":"number","nativeSrc":"42174:2:88","nodeType":"YulLiteral","src":"42174:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42156:6:88","nodeType":"YulIdentifier","src":"42156:6:88"},"nativeSrc":"42156:21:88","nodeType":"YulFunctionCall","src":"42156:21:88"},"nativeSrc":"42156:21:88","nodeType":"YulExpressionStatement","src":"42156:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42197:9:88","nodeType":"YulIdentifier","src":"42197:9:88"},{"kind":"number","nativeSrc":"42208:2:88","nodeType":"YulLiteral","src":"42208:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42193:3:88","nodeType":"YulIdentifier","src":"42193:3:88"},"nativeSrc":"42193:18:88","nodeType":"YulFunctionCall","src":"42193:18:88"},{"kind":"number","nativeSrc":"42213:2:88","nodeType":"YulLiteral","src":"42213:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"42186:6:88","nodeType":"YulIdentifier","src":"42186:6:88"},"nativeSrc":"42186:30:88","nodeType":"YulFunctionCall","src":"42186:30:88"},"nativeSrc":"42186:30:88","nodeType":"YulExpressionStatement","src":"42186:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42236:9:88","nodeType":"YulIdentifier","src":"42236:9:88"},{"kind":"number","nativeSrc":"42247:2:88","nodeType":"YulLiteral","src":"42247:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42232:3:88","nodeType":"YulIdentifier","src":"42232:3:88"},"nativeSrc":"42232:18:88","nodeType":"YulFunctionCall","src":"42232:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nativeSrc":"42252:34:88","nodeType":"YulLiteral","src":"42252:34:88","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nativeSrc":"42225:6:88","nodeType":"YulIdentifier","src":"42225:6:88"},"nativeSrc":"42225:62:88","nodeType":"YulFunctionCall","src":"42225:62:88"},"nativeSrc":"42225:62:88","nodeType":"YulExpressionStatement","src":"42225:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42307:9:88","nodeType":"YulIdentifier","src":"42307:9:88"},{"kind":"number","nativeSrc":"42318:2:88","nodeType":"YulLiteral","src":"42318:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42303:3:88","nodeType":"YulIdentifier","src":"42303:3:88"},"nativeSrc":"42303:18:88","nodeType":"YulFunctionCall","src":"42303:18:88"},{"hexValue":"7565","kind":"string","nativeSrc":"42323:4:88","nodeType":"YulLiteral","src":"42323:4:88","type":"","value":"ue"}],"functionName":{"name":"mstore","nativeSrc":"42296:6:88","nodeType":"YulIdentifier","src":"42296:6:88"},"nativeSrc":"42296:32:88","nodeType":"YulFunctionCall","src":"42296:32:88"},"nativeSrc":"42296:32:88","nodeType":"YulExpressionStatement","src":"42296:32:88"},{"nativeSrc":"42337:27:88","nodeType":"YulAssignment","src":"42337:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"42349:9:88","nodeType":"YulIdentifier","src":"42349:9:88"},{"kind":"number","nativeSrc":"42360:3:88","nodeType":"YulLiteral","src":"42360:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"42345:3:88","nodeType":"YulIdentifier","src":"42345:3:88"},"nativeSrc":"42345:19:88","nodeType":"YulFunctionCall","src":"42345:19:88"},"variableNames":[{"name":"tail","nativeSrc":"42337:4:88","nodeType":"YulIdentifier","src":"42337:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41972:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42123:9:88","nodeType":"YulTypedName","src":"42123:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42137:4:88","nodeType":"YulTypedName","src":"42137:4:88","type":""}],"src":"41972:398:88"},{"body":{"nativeSrc":"42512:53:88","nodeType":"YulBlock","src":"42512:53:88","statements":[{"nativeSrc":"42522:37:88","nodeType":"YulAssignment","src":"42522:37:88","value":{"arguments":[{"name":"value0","nativeSrc":"42547:6:88","nodeType":"YulIdentifier","src":"42547:6:88"},{"name":"pos","nativeSrc":"42555:3:88","nodeType":"YulIdentifier","src":"42555:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"42529:17:88","nodeType":"YulIdentifier","src":"42529:17:88"},"nativeSrc":"42529:30:88","nodeType":"YulFunctionCall","src":"42529:30:88"},"variableNames":[{"name":"end","nativeSrc":"42522:3:88","nodeType":"YulIdentifier","src":"42522:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"42375:190:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"42488:3:88","nodeType":"YulTypedName","src":"42488:3:88","type":""},{"name":"value0","nativeSrc":"42493:6:88","nodeType":"YulTypedName","src":"42493:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"42504:3:88","nodeType":"YulTypedName","src":"42504:3:88","type":""}],"src":"42375:190:88"},{"body":{"nativeSrc":"42751:217:88","nodeType":"YulBlock","src":"42751:217:88","statements":[{"nativeSrc":"42761:27:88","nodeType":"YulAssignment","src":"42761:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"42773:9:88","nodeType":"YulIdentifier","src":"42773:9:88"},{"kind":"number","nativeSrc":"42784:3:88","nodeType":"YulLiteral","src":"42784:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"42769:3:88","nodeType":"YulIdentifier","src":"42769:3:88"},"nativeSrc":"42769:19:88","nodeType":"YulFunctionCall","src":"42769:19:88"},"variableNames":[{"name":"tail","nativeSrc":"42761:4:88","nodeType":"YulIdentifier","src":"42761:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42804:9:88","nodeType":"YulIdentifier","src":"42804:9:88"},{"name":"value0","nativeSrc":"42815:6:88","nodeType":"YulIdentifier","src":"42815:6:88"}],"functionName":{"name":"mstore","nativeSrc":"42797:6:88","nodeType":"YulIdentifier","src":"42797:6:88"},"nativeSrc":"42797:25:88","nodeType":"YulFunctionCall","src":"42797:25:88"},"nativeSrc":"42797:25:88","nodeType":"YulExpressionStatement","src":"42797:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42842:9:88","nodeType":"YulIdentifier","src":"42842:9:88"},{"kind":"number","nativeSrc":"42853:2:88","nodeType":"YulLiteral","src":"42853:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42838:3:88","nodeType":"YulIdentifier","src":"42838:3:88"},"nativeSrc":"42838:18:88","nodeType":"YulFunctionCall","src":"42838:18:88"},{"arguments":[{"name":"value1","nativeSrc":"42862:6:88","nodeType":"YulIdentifier","src":"42862:6:88"},{"kind":"number","nativeSrc":"42870:4:88","nodeType":"YulLiteral","src":"42870:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"42858:3:88","nodeType":"YulIdentifier","src":"42858:3:88"},"nativeSrc":"42858:17:88","nodeType":"YulFunctionCall","src":"42858:17:88"}],"functionName":{"name":"mstore","nativeSrc":"42831:6:88","nodeType":"YulIdentifier","src":"42831:6:88"},"nativeSrc":"42831:45:88","nodeType":"YulFunctionCall","src":"42831:45:88"},"nativeSrc":"42831:45:88","nodeType":"YulExpressionStatement","src":"42831:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42896:9:88","nodeType":"YulIdentifier","src":"42896:9:88"},{"kind":"number","nativeSrc":"42907:2:88","nodeType":"YulLiteral","src":"42907:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42892:3:88","nodeType":"YulIdentifier","src":"42892:3:88"},"nativeSrc":"42892:18:88","nodeType":"YulFunctionCall","src":"42892:18:88"},{"name":"value2","nativeSrc":"42912:6:88","nodeType":"YulIdentifier","src":"42912:6:88"}],"functionName":{"name":"mstore","nativeSrc":"42885:6:88","nodeType":"YulIdentifier","src":"42885:6:88"},"nativeSrc":"42885:34:88","nodeType":"YulFunctionCall","src":"42885:34:88"},"nativeSrc":"42885:34:88","nodeType":"YulExpressionStatement","src":"42885:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42939:9:88","nodeType":"YulIdentifier","src":"42939:9:88"},{"kind":"number","nativeSrc":"42950:2:88","nodeType":"YulLiteral","src":"42950:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42935:3:88","nodeType":"YulIdentifier","src":"42935:3:88"},"nativeSrc":"42935:18:88","nodeType":"YulFunctionCall","src":"42935:18:88"},{"name":"value3","nativeSrc":"42955:6:88","nodeType":"YulIdentifier","src":"42955:6:88"}],"functionName":{"name":"mstore","nativeSrc":"42928:6:88","nodeType":"YulIdentifier","src":"42928:6:88"},"nativeSrc":"42928:34:88","nodeType":"YulFunctionCall","src":"42928:34:88"},"nativeSrc":"42928:34:88","nodeType":"YulExpressionStatement","src":"42928:34:88"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nativeSrc":"42570:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42696:9:88","nodeType":"YulTypedName","src":"42696:9:88","type":""},{"name":"value3","nativeSrc":"42707:6:88","nodeType":"YulTypedName","src":"42707:6:88","type":""},{"name":"value2","nativeSrc":"42715:6:88","nodeType":"YulTypedName","src":"42715:6:88","type":""},{"name":"value1","nativeSrc":"42723:6:88","nodeType":"YulTypedName","src":"42723:6:88","type":""},{"name":"value0","nativeSrc":"42731:6:88","nodeType":"YulTypedName","src":"42731:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42742:4:88","nodeType":"YulTypedName","src":"42742:4:88","type":""}],"src":"42570:398:88"},{"body":{"nativeSrc":"43147:179:88","nodeType":"YulBlock","src":"43147:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"43164:9:88","nodeType":"YulIdentifier","src":"43164:9:88"},{"kind":"number","nativeSrc":"43175:2:88","nodeType":"YulLiteral","src":"43175:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"43157:6:88","nodeType":"YulIdentifier","src":"43157:6:88"},"nativeSrc":"43157:21:88","nodeType":"YulFunctionCall","src":"43157:21:88"},"nativeSrc":"43157:21:88","nodeType":"YulExpressionStatement","src":"43157:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43198:9:88","nodeType":"YulIdentifier","src":"43198:9:88"},{"kind":"number","nativeSrc":"43209:2:88","nodeType":"YulLiteral","src":"43209:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43194:3:88","nodeType":"YulIdentifier","src":"43194:3:88"},"nativeSrc":"43194:18:88","nodeType":"YulFunctionCall","src":"43194:18:88"},{"kind":"number","nativeSrc":"43214:2:88","nodeType":"YulLiteral","src":"43214:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"43187:6:88","nodeType":"YulIdentifier","src":"43187:6:88"},"nativeSrc":"43187:30:88","nodeType":"YulFunctionCall","src":"43187:30:88"},"nativeSrc":"43187:30:88","nodeType":"YulExpressionStatement","src":"43187:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43237:9:88","nodeType":"YulIdentifier","src":"43237:9:88"},{"kind":"number","nativeSrc":"43248:2:88","nodeType":"YulLiteral","src":"43248:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43233:3:88","nodeType":"YulIdentifier","src":"43233:3:88"},"nativeSrc":"43233:18:88","nodeType":"YulFunctionCall","src":"43233:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"43253:31:88","nodeType":"YulLiteral","src":"43253:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"43226:6:88","nodeType":"YulIdentifier","src":"43226:6:88"},"nativeSrc":"43226:59:88","nodeType":"YulFunctionCall","src":"43226:59:88"},"nativeSrc":"43226:59:88","nodeType":"YulExpressionStatement","src":"43226:59:88"},{"nativeSrc":"43294:26:88","nodeType":"YulAssignment","src":"43294:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"43306:9:88","nodeType":"YulIdentifier","src":"43306:9:88"},{"kind":"number","nativeSrc":"43317:2:88","nodeType":"YulLiteral","src":"43317:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"43302:3:88","nodeType":"YulIdentifier","src":"43302:3:88"},"nativeSrc":"43302:18:88","nodeType":"YulFunctionCall","src":"43302:18:88"},"variableNames":[{"name":"tail","nativeSrc":"43294:4:88","nodeType":"YulIdentifier","src":"43294:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42973:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43124:9:88","nodeType":"YulTypedName","src":"43124:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43138:4:88","nodeType":"YulTypedName","src":"43138:4:88","type":""}],"src":"42973:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_contract_IPolicyPool(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256t_struct$_Params_$23926_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 256) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        if slt(add(_1, not(31)), 224) { revert(0, 0) }\n        value1 := add(headStart, 32)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes(add(_1, 0x20), calldataload(_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 0x20))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := calldataload(add(headStart, 192))\n        validator_revert_address(value_5)\n        value6 := value_5\n    }\n    function abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_uint256t_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 320) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 192))\n        value6 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 224))\n        value7 := value_6\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 256))\n        value8 := value_7\n        value9 := abi_decode_uint40(add(headStart, 288))\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_bytes32t_uint256t_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        if slt(sub(dataEnd, headStart), 736) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 512))\n        value3 := value_2\n        value4 := abi_decode_uint40(add(headStart, 544))\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 576))\n        value5 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 608))\n        value6 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 640))\n        value7 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 672))\n        value8 := value_6\n        value9 := abi_decode_uint40(add(headStart, 704))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23903t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 10)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_calldata_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        let value := 0\n        value := calldataload(value0)\n        mstore(headStart, value)\n        let value_1 := 0\n        value_1 := calldataload(add(value0, 0x20))\n        mstore(add(headStart, 0x20), value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value0, 0x40))\n        mstore(add(headStart, 0x40), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value0, 0x60))\n        mstore(add(headStart, 0x60), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value0, 0x80))\n        mstore(add(headStart, 0x80), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value0, 0xa0))\n        mstore(add(headStart, 0xa0), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value0, 0xc0))\n        mstore(add(headStart, 0xc0), value_6)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData_calldata(value, pos)\n    {\n        let value_1 := 0\n        value_1 := calldataload(value)\n        mstore(pos, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 0x40))\n        mstore(add(pos, 0x40), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value, 0x60))\n        mstore(add(pos, 0x60), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value, 0x80))\n        mstore(add(pos, 0x80), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(value, 0xe0))\n        mstore(add(pos, 0xe0), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(value, 0x0100))\n        mstore(add(pos, 0x0100), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(value, 0x0120))\n        mstore(add(pos, 0x0120), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(value, 0x0140))\n        mstore(add(pos, 0x0140), value_11)\n        let memberValue0 := abi_decode_contract_IRiskModule(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := abi_decode_uint40(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := abi_decode_uint40(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), value1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Can't set exposureLimit less tha\")\n        mstore(add(headStart, 96), \"n active exposure\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Increase requires LEVEL1_ROLE\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Validation: jrCollRatio must be \")\n        mstore(add(headStart, 96), \"<=1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Validation: collRatio must be <=\")\n        mstore(add(headStart, 96), \"1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: collRatio >= jrCollR\")\n        mstore(add(headStart, 96), \"atio\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Validation: moc must be [0.5, 4]\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: ensuroPpFee must be \")\n        mstore(add(headStart, 96), \"<= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: ensuroCocFee must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: srRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: jrRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Exposure and MaxPayout must be >\")\n        mstore(add(headStart, 96), \"0\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint256_t_uint40__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), value1)\n        mstore(add(pos, 52), value2)\n        mstore(add(pos, 84), value3)\n        mstore(add(pos, 116), and(shl(216, value4), shl(216, 0xffffffffff)))\n        mstore(add(pos, 121), value5)\n        mstore(add(pos, 153), value6)\n        mstore(add(pos, 185), and(shl(216, value7), shl(216, 0xffffffffff)))\n        end := add(pos, 190)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint40(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Premium must be less than payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Old policy is expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Policy replacement must be great\")\n        mstore(add(headStart, 96), \"er or equal than old policy\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function checked_div_t_uint40(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Policy exceeds max duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"You must allow ENSURO to transfe\")\n        mstore(add(headStart, 96), \"r the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Payer must allow caller to trans\")\n        mstore(add(headStart, 96), \"fer the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"RiskModule: Payout is more than \")\n        mstore(add(headStart, 96), \"maximum per policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"RiskModule: Exposure limit excee\")\n        mstore(add(headStart, 96), \"ded\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 960)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n        mstore(add(headStart, 896), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 928), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_sub_t_uint8(x, y) -> diff\n    {\n        diff := sub(and(x, 0xff), and(y, 0xff))\n        if gt(diff, 0xff) { panic_error_0x11() }\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        end := abi_encode_string(value1, abi_encode_string(value0, add(pos, 26)))\n    }\n    function abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Expiration must be in the future\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Customer can't be zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 544)\n        abi_encode_struct_PolicyData(value0, headStart)\n        mstore(add(headStart, 448), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 480), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 512), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":2039},{"length":32,"start":2112},{"length":32,"start":2552},{"length":32,"start":2616},{"length":32,"start":2757}],"17733":[{"length":32,"start":629},{"length":32,"start":1653},{"length":32,"start":2308},{"length":32,"start":2971},{"length":32,"start":3842},{"length":32,"start":4262},{"length":32,"start":4566},{"length":32,"start":4816},{"length":32,"start":4965},{"length":32,"start":5268},{"length":32,"start":5634},{"length":32,"start":7357},{"length":32,"start":7661},{"length":32,"start":7889},{"length":32,"start":9924},{"length":32,"start":10878},{"length":32,"start":11035},{"length":32,"start":11214},{"length":32,"start":11677},{"length":32,"start":12192},{"length":32,"start":14291},{"length":32,"start":14448},{"length":32,"start":14614},{"length":32,"start":15043},{"length":32,"start":16264}],"20197":[{"length":32,"start":928},{"length":32,"start":12776}]},"linkReferences":{},"object":"6080604052600436106101ba575f3560e01c806373a952e8116100f25780638bac3a2411610092578063cfd4c60611610062578063cfd4c6061461052e578063cff0ab9614610542578063deaa59df14610556578063e5a6b10f14610575575f5ffd5b80638bac3a241461045d578063b9b28f2a1461047c578063c1cca2b31461049b578063ceddac6f146104ba575f5ffd5b80637ff8bf25116100cd5780637ff8bf251461040257806382ff9c8c146104165780638456cb591461043557806385272a6e14610449575f5ffd5b806373a952e814610392578063766dbc56146103c45780637a702b3c146103e3575f5ffd5b8063521eb2731161015d5780635c975abb116101385780635c975abb1461031e5780636a448ef1146103355780636db5c8fd146103545780636f0dbe6f14610373575f5ffd5b8063521eb273146102c057806352d1902d146102dd578063571e8bcc146102ff575f5ffd5b80633659cfe6116101985780633659cfe6146102345780633f4ba83a146102535780634d15eb03146102675780634f1ef286146102ad575f5ffd5b806301ffc9a7146101be57806306fdde03146101f257806318e26bb914610213575b5f5ffd5b3480156101c9575f5ffd5b506101dd6101d83660046146bc565b610589565b60405190151581526020015b60405180910390f35b3480156101fd575f5ffd5b506102066105b4565b6040516101e991906146e3565b34801561021e575f5ffd5b5061023261022d366004614718565b610644565b005b34801561023f575f5ffd5b5061023261024e366004614743565b6107ed565b34801561025e575f5ffd5b506102326108d3565b348015610272575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101e9565b6102326102bb3660046147e9565b6109ee565b3480156102cb575f5ffd5b5060fe546001600160a01b0316610295565b3480156102e8575f5ffd5b506102f1610ab9565b6040519081526020016101e9565b34801561030a575f5ffd5b50610232610319366004614849565b610b6a565b348015610329575f5ffd5b5060975460ff166101dd565b348015610340575f5ffd5b5061023261034f366004614718565b610eff565b34801561035f575f5ffd5b5060fc54600160b01b900461ffff166102f1565b34801561037e575f5ffd5b5061023261038d36600461487f565b610f61565b34801561039d575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610295565b3480156103cf575f5ffd5b506102f16103de366004614922565b61107a565b3480156103ee575f5ffd5b506102326103fd3660046149be565b6111b3565b34801561040d575f5ffd5b5060fd546102f1565b348015610421575f5ffd5b506102f16104303660046149e9565b611339565b348015610440575f5ffd5b50610232611471565b348015610454575f5ffd5b506102f1611578565b348015610468575f5ffd5b506102f1610477366004614a63565b61159a565b348015610487575f5ffd5b506102f1610496366004614a95565b6115b7565b3480156104a6575f5ffd5b506102326104b5366004614acf565b6115d1565b3480156104c5575f5ffd5b506104d96104d4366004614718565b611ad2565b6040516101e991905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610539575f5ffd5b506102f1611bcf565b34801561054d575f5ffd5b506104d9611bed565b348015610561575f5ffd5b50610232610570366004614743565b611c9a565b348015610580575f5ffd5b50610295611dea565b5f61059382611e6b565b806105ae57506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb80546105c390614afc565b80601f01602080910402602001604051908101604052809291908181526020018280546105ef90614afc565b801561063a5780601f106106115761010080835404028352916020019161063a565b820191905f5260205f20905b81548152906001019060200180831161061d57829003601f168201915b5050505050905090565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610727959493929190614b49565b5f6040518083038186803b15801561073d575f5ffd5b505afa15801561074f573d5f5f3e3d5ffd5b50505050825f03610773576040516364ba211360e11b815260040160405180910390fd5b5f83815261012d602052604081205461ffff1690036107a55760405163c4c1a0c560e01b815260040160405180910390fd5b5f83815261012d602052604080822080546001600160c01b03191690555184917fda8c8883e1b3ead63d3ef64674f8fc499048554f6fa36776af0ab41d2f99834691a2505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361083e5760405162461bcd60e51b815260040161083590614b7c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108865f5160206153b05f395f51905f52546001600160a01b031690565b6001600160a01b0316146108ac5760405162461bcd60e51b815260040161083590614bc8565b6108b581611ea0565b604080515f808252602082019092526108d091839190611fbd565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206153d05f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109829190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016109b6959493929190614b49565b5f6040518083038186803b1580156109cc575f5ffd5b505afa1580156109de573d5f5f3e3d5ffd5b505050506109ea612127565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a365760405162461bcd60e51b815260040161083590614b7c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a7e5f5160206153b05f395f51905f52546001600160a01b031690565b6001600160a01b031614610aa45760405162461bcd60e51b815260040161083590614bc8565b610aad82611ea0565b6109ea82826001611fbd565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610835565b505f5160206153b05f395f51905f5290565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c199190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610c4d959493929190614b49565b5f6040518083038186803b158015610c63575f5ffd5b505afa158015610c75573d5f5f3e3d5ffd5b50505050835f03610c99576040516364ba211360e11b815260040160405180910390fd5b604051806101400160405280610cb1855f0135612179565b61ffff168152602001610cc78560200135612179565b61ffff168152602001610cdd8560400135612179565b61ffff168152602001610cf38560600135612179565b61ffff168152602001610d098560800135612179565b61ffff168152602001610d1f8560a00135612179565b61ffff168152602001610d358560c00135612179565b61ffff908116825263ffffffff6020808401829052604080850183905260609485018490525f8a815261012d835281902086518154938801519288015196880151608089015160a08a015160c08b015160e08c01516101008d0151610120909d01518b16600160b01b0261ffff60b01b199d8b16600160901b029d909d1665ffffffffffff60901b1991909a16600160701b0263ffffffff60701b19928c16600160601b029290921665ffffffffffff60601b19938c16600160501b0261ffff60501b19958d16600160401b029590951663ffffffff60401b19968d16600160301b0261ffff60301b199e8e16600160201b029e909e1667ffffffff00000000199a8e16620100000263ffffffff19909c1698909d1697909717999099179790971699909917999099179190911691909117179590951691909117929092179190911617919091178155610e8890612192565b6040805184358152602080860135908201528482013581830152606080860135908201526080808601359082015260a0808601359082015260c08086013590820152905185917f1f02d2d352ddbf27121545f4d4730d7656c038f9ce75851410c9ef6982728975919081900360e00190a250505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610f485760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610f599190614c28565b909155505050565b5f54610100900460ff1615808015610f7f57505f54600160ff909116105b80610f985750303b158015610f9857505f5460ff166001145b610ffb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610835565b5f805460ff19166001179055801561101c575f805461ff0019166101001790555b61102b8888888888888861258c565b8015611070575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b5f6110836125c9565b7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611100573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111249190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016111559493929190614c3b565b5f6040518083038186803b15801561116b575f5ffd5b505afa15801561117d573d5f5f3e3d5ffd5b505050506111928c8c8c8c8b8b8b8b8b612611565b6111a28c8c8c8c8b8b338f6127cc565b519c9b505050505050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611230573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016112859493929190614c3b565b5f6040518083038186803b15801561129b575f5ffd5b505afa1580156112ad573d5f5f3e3d5ffd5b505050506112b96125c9565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906113079086908690600401614d31565b5f604051808303815f87803b15801561131e575f5ffd5b505af1158015611330573d5f5f3e3d5ffd5b50505050505050565b5f6113426125c9565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e39190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016114149493929190614c3b565b5f6040518083038186803b15801561142a575f5ffd5b505afa15801561143c573d5f5f3e3d5ffd5b505050506114518b8b8b8b8b8b8b8b8b612611565b6111a28c8c8c8c8c336114638e612839565b61146c8e611ad2565b612848565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115129190614b2e565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b81526004016115449493929190614c3b565b5f6040518083038186803b15801561155a575f5ffd5b505afa15801561156c573d5f5f3e3d5ffd5b505050506108d0612e26565b60fc545f90611595908290600160901b900463ffffffff16612e63565b905090565b5f6115af848484426115aa611bed565b612ef1565b949350505050565b5f6115c8858585426115aa87611ad2565b95945050505050565b5f5160206153d05f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116809190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016116b4959493929190614b49565b5f6040518083038186803b1580156116ca575f5ffd5b505afa1580156116dc573d5f5f3e3d5ffd5b505f92506116e8915050565b8460098111156116fa576116fa614d4e565b036117235761170883612179565b60fc805461ffff191661ffff92909216919091179055611a95565b600184600981111561173757611737614d4e565b036117695761174583612179565b60fc805461ffff92909216620100000263ffff000019909216919091179055611a95565b600284600981111561177d5761177d614d4e565b036117b25761178b83612179565b60fc805461ffff92909216600160201b0265ffff0000000019909216919091179055611a95565b60038460098111156117c6576117c6614d4e565b036117fa576117d483612179565b60fc805461ffff92909216600160301b0261ffff60301b19909216919091179055611a95565b600484600981111561180e5761180e614d4e565b036118475761181c83612179565b60fc805461ffff92909216600160401b0269ffff000000000000000019909216919091179055611a95565b600584600981111561185b5761185b614d4e565b0361188f5761186983612179565b60fc805461ffff92909216600160501b0261ffff60501b19909216919091179055611a95565b60068460098111156118a3576118a3614d4e565b036118d7576118b183612179565b60fc805461ffff92909216600160601b0261ffff60601b19909216919091179055611a95565b60078460098111156118eb576118eb614d4e565b03611925576118fb600284612f0d565b60fc805463ffffffff92909216600160701b0263ffffffff60701b19909216919091179055611a95565b600884600981111561193957611939614d4e565b03611a515760fd548310156119aa5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b6064820152608401610835565b6119b2611578565b831115806119d157506119d15f5160206153d05f395f51905f52612f9d565b611a1d5760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c450000006044820152606401610835565b611a275f84612f0d565b60fc805463ffffffff92909216600160901b0263ffffffff60901b19909216919091179055611a95565b6009846009811115611a6557611a65614d4e565b03611a9557611a738361308f565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b611acc846009811115611aaa57611aaa614d4e565b611ab5906008614d62565b602d811115611ac657611ac6614d4e565b846130f5565b50505050565b611ada61460e565b8115611bc2575f82815261012d602052604081208054909161ffff9091169003611b175760405163c4c1a0c560e01b815260040160405180910390fd5b6040805161014081018252825461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611bbb90613146565b9392505050565b6105ae611bed565b919050565b60fc545f9061159590600290600160701b900463ffffffff16612e63565b611bf561460e565b604080516101408101825260fc5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b900490911661012082015261159590613146565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3b9190614b2e565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611d6c9493929190614c3b565b5f6040518083038186803b158015611d82575f5ffd5b505afa158015611d94573d5f5f3e3d5ffd5b5050506001600160a01b0383169050611dc057604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b0384169081179091556109ea906012906130f5565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e47573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115959190614b2e565b5f6001600160e01b031982166301ffc9a760e01b14806105ae57506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206153d05f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4f9190614b2e565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611f83959493929190614b49565b5f6040518083038186803b158015611f99575f5ffd5b505afa158015611fab573d5f5f3e3d5ffd5b50505050611fb8836131d9565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611ff057611fb883613297565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190614d75565b60015b6120ad5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610835565b5f5160206153b05f395f51905f52811461211b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610835565b50611fb8838383613332565b61212f613356565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f6105ae61218d655af3107a400084614da0565b61308f565b80546127106201000090910461ffff1611156121fc5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b6064820152608401610835565b8054612710600160201b90910461ffff161180159061222657508054600160201b900461ffff1615155b61227c5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b6064820152608401610835565b805461ffff6201000082048116600160201b9092041610156122ec5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b6064820152608401610835565b8054619c4061ffff9091161180159061230e5750805461138861ffff90911610155b61235a5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d6044820152606401610835565b8054612710600160301b90910461ffff1611156123c55760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b6064820152608401610835565b8054612710600160401b90910461ffff1611156124325760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b6064820152608401610835565b8054612710600160601b90910461ffff16111561249f5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b6064820152608401610835565b8054612710600160501b90910461ffff16111561250c5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b6064820152608401610835565b8054600160901b900463ffffffff161580159061253657508054600160701b900463ffffffff1615155b6108d05760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b6064820152608401610835565b5f54610100900460ff166125b25760405162461bcd60e51b815260040161083590614db3565b6125ba61339f565b611330878787878787876133d5565b60975460ff161561260f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610835565b565b428164ffffffffff16101561263957604051638727a7f960e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193060601b166020820152603481018a905260548101899052607481018890526001600160d81b031960d888811b821660948401526099830188905260b9830187905283901b1660d98201525f906126b29060de016040516020818303038152906040526135d6565b90505f6126c0828686613610565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127429190614b2e565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a845f6040518563ffffffff1660e01b81526004016127939493929190614c3b565b5f6040518083038186803b1580156127a9575f5ffd5b505afa1580156127bb573d5f5f3e3d5ffd5b505050505050505050505050505050565b6127d4614644565b6127f48989898987876127e68c612839565b6127ef8c611ad2565b613634565b8051604051878152919250907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a298975050505050505050565b5f6105ae600160601b83614dfe565b612850614644565b5f198703612879576128768887876128706101a08e016101808f01614e11565b86612ef1565b96505b8787106128c85760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610835565b64ffffffffff42166128e26101c08b016101a08c01614e11565b64ffffffffff161161292e5760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b6044820152606401610835565b6129406101c08a016101a08b01614e11565b64ffffffffff168564ffffffffff1610158015612961575088602001358810155b8015612971575088604001358710155b6129e35760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c69637900000000006064820152608401610835565b60fc54600160b01b900461ffff16610e10612a066101a08c016101808d01614e11565b612a109088614e2a565b612a1a9190614e47565b64ffffffffff1610612a6e5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e00000000006044820152606401610835565b612a7c60408a013588614c28565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612afc9190614b2e565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8e9190614d75565b1015612bac5760405162461bcd60e51b815260040161083590614e70565b6001600160a01b038416331480612ccc5750612bcc60408a013588614c28565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4c9190614b2e565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612ca5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc99190614d75565b10155b612ce85760405162461bcd60e51b815260040161083590614ebd565b612cf0611bcf565b881115612d0f5760405162461bcd60e51b815260040161083590614f0c565b612d313083898b8a8a8f610180016020810190612d2c9190614e11565b613b4d565b905088602001358160200151612d479190614c28565b60fd5f828254612d579190614d62565b90915550612d659050611578565b60fd541115612d865760405162461bcd60e51b815260040161083590614f5e565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae90612dd8908c90859089908990600401615061565b6020604051808303815f875af1158015612df4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e189190614d75565b815298975050505050505050565b612e2e6125c9565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861215c3390565b5f82612e6d611dea565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecc91906150ae565b612ed691906150ce565b612ee190600a6151c2565b611bbb9063ffffffff84166151d0565b5f612eff8287878787613cbd565b60e001519695505050505050565b5f611bbb83612f1a611dea565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f7991906150ae565b612f8391906150ce565b612f8e90600a6151c2565b612f989084614da0565b613eb0565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ffa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301e9190614b2e565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b81526004016130509493929190614c3b565b602060405180830381865afa15801561306b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ae91906151e7565b5f61ffff8211156130f15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610835565b5090565b6130fd613f14565b81602d81111561310f5761310f614d4e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b61314e61460e565b6040518060e00160405280613165845f0151613f71565b81526020016131778460200151613f71565b81526020016131898460400151613f71565b815260200161319b8460600151613f71565b81526020016131ad8460800151613f71565b81526020016131bf8460a00151613f71565b81526020016131d18460c00151613f71565b905292915050565b6131e281613f86565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561324c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132709190614b2e565b6001600160a01b0316146109ea5760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6133045760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610835565b5f5160206153b05f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61333b83614037565b5f825111806133475750805b15611fb857611acc8383614076565b60975460ff1661260f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610835565b5f54610100900460ff166133c55760405162461bcd60e51b815260040161083590614db3565b6133cd61409b565b61260f6140c1565b5f54610100900460ff166133fb5760405162461bcd60e51b815260040161083590614db3565b60fb6134078882615251565b50604080516101408101825261271081525f602082015290810161342a88612179565b61ffff16815260200161343c87612179565b61ffff1681525f60208201819052604082015260600161345b86612179565b61ffff16815260200161346f600286612f0d565b63ffffffff1681526020016134845f85612f0d565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff000000001916600160201b9589169590950261ffff60301b191694909417600160301b938816939093029290921763ffffffff60401b1916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055611330613f14565b5f6135e182516140ef565b826040516020016135f3929190615323565b604051602081830303815290604052805190602001209050919050565b5f5f5f61361e86868661417f565b9150915061362b816141b8565b50949350505050565b61363c614644565b4260018901613655576136528a89898487612ef1565b98505b8989106136a45760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610835565b8064ffffffffff168764ffffffffff16116137015760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610835565b60fc54600160b01b900461ffff16610e1061371c838a614e2a565b6137269190614e47565b64ffffffffff161061377a5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e00000000006044820152606401610835565b6001600160a01b0385166137d05760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610835565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561382d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138519190614b2e565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156138bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e39190614d75565b10156139015760405162461bcd60e51b815260040161083590614e70565b6001600160a01b038616331480613a145750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613970573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139949190614b2e565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156139ed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a119190614d75565b10155b613a305760405162461bcd60e51b815260040161083590614ebd565b613a38611bcf565b8a1115613a575760405162461bcd60e51b815260040161083590614f0c565b613a6630848b8d8c8c87613b4d565b9150816020015160fd5f828254613a7d9190614d62565b90915550613a8b9050611578565b60fd541115613aac5760405162461bcd60e51b815260040161083590614f5e565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f90613afe9085908a908a908a9060040161535d565b6020604051808303815f875af1158015613b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b3e9190614d75565b82525098975050505050505050565b613b55614644565b84861115613bb05760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610835565b613bb8614644565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613c028988888888613cbd565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613c9b5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610835565b60e0810151613caa9089614c28565b6101008301525098975050505050505050565b613cfd6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b8551613d1590613d0e908690614301565b8690614301565b81526020860151613d27908690614301565b6020820181905281511015613d51578051602082018051613d49908390614c28565b905250613d58565b5f60208201525b6040860151613d68908690614301565b604082015260208101518151613d7e9190614d62565b81604001511115613db35760208101518151613d9a9190614d62565b81604001818151613dab9190614c28565b905250613dba565b5f60408201525b613df76301e13380613dcc8486614e2a565b64ffffffffff168860a00151613de291906151d0565b613dec9190614da0565b602083015190614301565b6060820152613e396301e13380613e0e8486614e2a565b64ffffffffff168860c00151613e2491906151d0565b613e2e9190614da0565b604083015190614301565b6080820181905260608201515f91613e5091614d62565b9050613e6987608001518261430190919063ffffffff16565b60608801518351613e7991614301565b613e839190614d62565b60a0830181905282518291613e9791614d62565b613ea19190614d62565b60e08301525095945050505050565b5f63ffffffff8211156130f15760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610835565b60fd54613f1f611578565b1015613f3e57604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b0316613f6757604051634d1c286960e11b815260040160405180910390fd5b61260f60fc612192565b5f6105ae655af3107a400061ffff84166151d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140109190614b2e565b6001600160a01b0316146108d05760405163d2b3d33f60e01b815260040160405180910390fd5b61404081613297565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611bbb83836040518060600160405280602781526020016153f060279139614337565b5f54610100900460ff1661260f5760405162461bcd60e51b815260040161083590614db3565b5f54610100900460ff166140e75760405162461bcd60e51b815260040161083590614db3565b61260f6143ab565b60605f6140fb836143dd565b60010190505f8167ffffffffffffffff81111561411a5761411a61475e565b6040519080825280601f01601f191660200182016040528015614144576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461414e57509392505050565b5f806001600160ff1b0383168161419b60ff86901c601b614d62565b90506141a9878288856144b4565b9350935050505b935093915050565b5f8160048111156141cb576141cb614d4e565b036141d35750565b60018160048111156141e7576141e7614d4e565b036142345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610835565b600281600481111561424857614248614d4e565b036142955760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610835565b60038160048111156142a9576142a9614d4e565b036108d05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610835565b5f81156706f05b59d3b20000198390048411151761431d575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b60605f5f856001600160a01b03168560405161435391906153a4565b5f60405180830381855af49150503d805f811461438b576040519150601f19603f3d011682016040523d82523d5f602084013e614390565b606091505b50915091506143a186838387614571565b9695505050505050565b5f54610100900460ff166143d15760405162461bcd60e51b815260040161083590614db3565b6097805460ff19169055565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061441b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614447576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061446557662386f26fc10000830492506010015b6305f5e100831061447d576305f5e100830492506008015b612710831061449157612710830492506004015b606483106144a3576064830492506002015b600a83106105ae5760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156144e957505f90506003614568565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561453a573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614562575f60019250925050614568565b91505f90505b94509492505050565b606083156145df5782515f036145d8576001600160a01b0385163b6145d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610835565b50816115af565b6115af83838151156145f45781518083602001fd5b8060405162461bcd60e51b815260040161083591906146e3565b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f602082840312156146cc575f5ffd5b81356001600160e01b031981168114611bbb575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215614728575f5ffd5b5035919050565b6001600160a01b03811681146108d0575f5ffd5b5f60208284031215614753575f5ffd5b8135611bbb8161472f565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561478c5761478c61475e565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156147bb576147bb61475e565b6040528381529050808284018510156147d2575f5ffd5b838360208301375f60208583010152509392505050565b5f5f604083850312156147fa575f5ffd5b82356148058161472f565b9150602083013567ffffffffffffffff811115614820575f5ffd5b8301601f81018513614830575f5ffd5b61483f85823560208401614772565b9150509250929050565b5f5f82840361010081121561485c575f5ffd5b8335925060e0601f1982011215614871575f5ffd5b506020830190509250929050565b5f5f5f5f5f5f5f60e0888a031215614895575f5ffd5b873567ffffffffffffffff8111156148ab575f5ffd5b8801601f81018a136148bb575f5ffd5b6148ca8a823560208401614772565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c08801356148fe8161472f565b8091505092959891949750929550565b803564ffffffffff81168114611bca575f5ffd5b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561493c575f5ffd5b8a35995060208b0135985060408b0135975061495a60608c0161490e565b965060808b013561496a8161472f565b955060a08b0135945060c08b0135935060e08b013592506101008b013591506149966101208c0161490e565b90509295989b9194979a5092959850565b5f6101c082840312156149b8575f5ffd5b50919050565b5f5f6101e083850312156149d0575f5ffd5b6149da84846149a7565b946101c0939093013593505050565b5f5f5f5f5f5f5f5f5f5f6102e08b8d031215614a03575f5ffd5b614a0d8c8c6149a7565b99506101c08b013598506101e08b013597506102008b01359650614a346102208c0161490e565b95506102408b013594506102608b013593506102808b013592506102a08b013591506149966102c08c0161490e565b5f5f5f60608486031215614a75575f5ffd5b8335925060208401359150614a8c6040850161490e565b90509250925092565b5f5f5f5f60808587031215614aa8575f5ffd5b8435935060208501359250614abf6040860161490e565b9396929550929360600135925050565b5f5f60408385031215614ae0575f5ffd5b8235600a8110614aee575f5ffd5b946020939093013593505050565b600181811c90821680614b1057607f821691505b6020821081036149b857634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614b3e575f5ffd5b8151611bbb8161472f565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105ae576105ae614c14565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b8035611bca8161472f565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e08082013590830152610100808201359083015261012080820135908301526101408082013590830152614ce86101608201614c65565b6001600160a01b0316610160830152614d04610180820161490e565b64ffffffffff16610180830152614d1e6101a0820161490e565b64ffffffffff81166101a0840152505050565b6101e08101614d408285614c70565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b808201808211156105ae576105ae614c14565b5f60208284031215614d85575f5ffd5b5051919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614dae57614dae614d8c565b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f82614e0c57614e0c614d8c565b500690565b5f60208284031215614e21575f5ffd5b611bbb8261490e565b64ffffffffff82811682821603908111156105ae576105ae614c14565b5f64ffffffffff831680614e5d57614e5d614d8c565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161502b6101608401826001600160a01b03169052565b5061018081015161504661018084018264ffffffffff169052565b506101a0810151611fb86101a084018264ffffffffff169052565b6103c081016150708287614c70565b61507e6101c0830186614fa1565b6001600160a01b03939093166103808201526bffffffffffffffffffffffff919091166103a09091015292915050565b5f602082840312156150be575f5ffd5b815160ff81168114611bbb575f5ffd5b60ff82811682821603908111156105ae576105ae614c14565b6001815b60018411156141b05780850481111561510657615106614c14565b600184161561511457908102905b60019390931c9280026150eb565b5f82615130575060016105ae565b8161513c57505f6105ae565b8160018114615152576002811461515c57615178565b60019150506105ae565b60ff84111561516d5761516d614c14565b50506001821b6105ae565b5060208310610133831016604e8410600b841016171561519b575081810a6105ae565b6151a75f1984846150e7565b805f19048211156151ba576151ba614c14565b029392505050565b5f611bbb60ff841683615122565b80820281158282048414176105ae576105ae614c14565b5f602082840312156151f7575f5ffd5b81518015158114611bbb575f5ffd5b601f821115611fb857805f5260205f20601f840160051c8101602085101561522b5750805b601f840160051c820191505b8181101561524a575f8155600101615237565b5050505050565b815167ffffffffffffffff81111561526b5761526b61475e565b61527f816152798454614afc565b84615206565b6020601f8211600181146152b1575f831561529a5750848201515b5f19600385901b1c1916600184901b17845561524a565b5f84815260208120601f198516915b828110156152e057878501518255602094850194600190920191016152c0565b50848210156152fd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f6115af615357601a84018661530c565b8461530c565b610220810161536c8287614fa1565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f611bbb828461530c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045fe15e502ee7d27e2c181a8de19eca3c79e4d983eccf2fa9a60440a1002699764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BA JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x73A952E8 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BAC3A24 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xCFD4C606 GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x52E JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x556 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x575 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0xB9B28F2A EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xCEDDAC6F EQ PUSH2 0x4BA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7FF8BF25 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0x82FF9C8C EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x449 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x766DBC56 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x3E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x15D JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x373 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x571E8BCC EQ PUSH2 0x2FF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2AD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0x18E26BB9 EQ PUSH2 0x213 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1DD PUSH2 0x1D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x46BC JUMP JUMPDEST PUSH2 0x589 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x5B4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x46E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0x644 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x24E CALLDATASIZE PUSH1 0x4 PUSH2 0x4743 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x8D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E9 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x47E9 JUMP JUMPDEST PUSH2 0x9EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0x4849 JUMP JUMPDEST PUSH2 0xB6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x340 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x34F CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x2F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x487F JUMP JUMPDEST PUSH2 0xF61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x295 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x3DE CALLDATASIZE PUSH1 0x4 PUSH2 0x4922 JUMP JUMPDEST PUSH2 0x107A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x49BE JUMP JUMPDEST PUSH2 0x11B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x2F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x49E9 JUMP JUMPDEST PUSH2 0x1339 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x1471 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x454 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x1578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x468 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A63 JUMP JUMPDEST PUSH2 0x159A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A95 JUMP JUMPDEST PUSH2 0x15B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4ACF JUMP JUMPDEST PUSH2 0x15D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4D9 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4718 JUMP JUMPDEST PUSH2 0x1AD2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x539 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F1 PUSH2 0x1BCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4D9 PUSH2 0x1BED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x232 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x4743 JUMP JUMPDEST PUSH2 0x1C9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x580 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x295 PUSH2 0x1DEA JUMP JUMPDEST PUSH0 PUSH2 0x593 DUP3 PUSH2 0x1E6B JUMP JUMPDEST DUP1 PUSH2 0x5AE JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x5C3 SWAP1 PUSH2 0x4AFC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EF SWAP1 PUSH2 0x4AFC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x63A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x611 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x63A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6CF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6F3 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x727 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x73D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x74F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH0 SUB PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xFFFF AND SWAP1 SUB PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP5 SWAP2 PUSH32 0xDA8C8883E1B3EAD63D3EF64674F8FC499048554F6FA36776AF0AB41D2F998346 SWAP2 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x83E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4B7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x886 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4BC8 JUMP JUMPDEST PUSH2 0x8B5 DUP2 PUSH2 0x1EA0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x8D0 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x1FBD JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x95E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x982 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x9EA PUSH2 0x2127 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xA36 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4B7C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA7E PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4BC8 JUMP JUMPDEST PUSH2 0xAAD DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x9EA DUP3 DUP3 PUSH1 0x1 PUSH2 0x1FBD JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xB58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBF5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC63 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC75 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP4 PUSH0 SUB PUSH2 0xC99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64BA2113 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xCB1 DUP6 PUSH0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC7 DUP6 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCDD DUP6 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCF3 DUP6 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD09 DUP6 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1F DUP6 PUSH1 0xA0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD35 DUP6 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 SWAP5 DUP6 ADD DUP5 SWAP1 MSTORE PUSH0 DUP11 DUP2 MSTORE PUSH2 0x12D DUP4 MSTORE DUP2 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP4 DUP9 ADD MLOAD SWAP3 DUP9 ADD MLOAD SWAP7 DUP9 ADD MLOAD PUSH1 0x80 DUP10 ADD MLOAD PUSH1 0xA0 DUP11 ADD MLOAD PUSH1 0xC0 DUP12 ADD MLOAD PUSH1 0xE0 DUP13 ADD MLOAD PUSH2 0x100 DUP14 ADD MLOAD PUSH2 0x120 SWAP1 SWAP14 ADD MLOAD DUP12 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP14 DUP12 AND PUSH1 0x1 PUSH1 0x90 SHL MUL SWAP14 SWAP1 SWAP14 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT SWAP2 SWAP1 SWAP11 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP3 DUP13 AND PUSH1 0x1 PUSH1 0x60 SHL MUL SWAP3 SWAP1 SWAP3 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT SWAP4 DUP13 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP6 DUP14 AND PUSH1 0x1 PUSH1 0x40 SHL MUL SWAP6 SWAP1 SWAP6 AND PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT SWAP7 DUP14 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP15 DUP15 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP15 SWAP1 SWAP15 AND PUSH8 0xFFFFFFFF00000000 NOT SWAP11 DUP15 AND PUSH3 0x10000 MUL PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP9 SWAP1 SWAP14 AND SWAP8 SWAP1 SWAP8 OR SWAP10 SWAP1 SWAP10 OR SWAP8 SWAP1 SWAP8 AND SWAP10 SWAP1 SWAP10 OR SWAP10 SWAP1 SWAP10 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR OR SWAP6 SWAP1 SWAP6 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH2 0xE88 SWAP1 PUSH2 0x2192 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP5 DUP3 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD DUP6 SWAP2 PUSH32 0x1F02D2D352DDBF27121545F4D4730D7656C038F9CE75851410C9EF6982728975 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0xE0 ADD SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF48 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF59 SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xF7F JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xF98 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF98 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x101C JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x102B DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x258C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1070 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1083 PUSH2 0x25C9 JUMP JUMPDEST PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1155 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x116B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x117D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1192 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x11A2 DUP13 DUP13 DUP13 DUP13 DUP12 DUP12 CALLER DUP16 PUSH2 0x27CC JUMP JUMPDEST MLOAD SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1230 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1254 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1285 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x12B9 PUSH2 0x25C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x1307 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4D31 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1330 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1342 PUSH2 0x25C9 JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13BF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13E3 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1414 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x143C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1451 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x11A2 DUP13 DUP13 DUP13 DUP13 DUP13 CALLER PUSH2 0x1463 DUP15 PUSH2 0x2839 JUMP JUMPDEST PUSH2 0x146C DUP15 PUSH2 0x1AD2 JUMP JUMPDEST PUSH2 0x2848 JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14EE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1512 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1544 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x8D0 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1595 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2E63 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x15AF DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x15AA PUSH2 0x1BED JUMP JUMPDEST PUSH2 0x2EF1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15C8 DUP6 DUP6 DUP6 TIMESTAMP PUSH2 0x15AA DUP8 PUSH2 0x1AD2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1680 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16B4 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16DC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x16E8 SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x16FA JUMPI PUSH2 0x16FA PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1723 JUMPI PUSH2 0x1708 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1737 JUMPI PUSH2 0x1737 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1769 JUMPI PUSH2 0x1745 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x177D JUMPI PUSH2 0x177D PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x17B2 JUMPI PUSH2 0x178B DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x17C6 JUMPI PUSH2 0x17C6 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x17FA JUMPI PUSH2 0x17D4 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x180E JUMPI PUSH2 0x180E PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1847 JUMPI PUSH2 0x181C DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x185B JUMPI PUSH2 0x185B PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x188F JUMPI PUSH2 0x1869 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x18A3 JUMPI PUSH2 0x18A3 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x18D7 JUMPI PUSH2 0x18B1 DUP4 PUSH2 0x2179 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x18EB JUMPI PUSH2 0x18EB PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1925 JUMPI PUSH2 0x18FB PUSH1 0x2 DUP5 PUSH2 0x2F0D JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH2 0x1939 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1A51 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x19AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x19B2 PUSH2 0x1578 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x19D1 JUMPI POP PUSH2 0x19D1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x1A1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x1A27 PUSH0 DUP5 PUSH2 0x2F0D JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1A95 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1A65 JUMPI PUSH2 0x1A65 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x1A95 JUMPI PUSH2 0x1A73 DUP4 PUSH2 0x308F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1ACC DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1AAA JUMPI PUSH2 0x1AAA PUSH2 0x4D4E JUMP JUMPDEST PUSH2 0x1AB5 SWAP1 PUSH1 0x8 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x1AC6 JUMPI PUSH2 0x1AC6 PUSH2 0x4D4E JUMP JUMPDEST DUP5 PUSH2 0x30F5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1ADA PUSH2 0x460E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1BC2 JUMPI PUSH0 DUP3 DUP2 MSTORE PUSH2 0x12D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0xFFFF SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1B17 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4C1A0C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1BBB SWAP1 PUSH2 0x3146 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5AE PUSH2 0x1BED JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1595 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2E63 JUMP JUMPDEST PUSH2 0x1BF5 PUSH2 0x460E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x20 SHL DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1595 SWAP1 PUSH2 0x3146 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D17 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D3B SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D94 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x1DC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x9EA SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x30F5 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E47 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1595 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x5AE JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53D0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F4F SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F83 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B49 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F99 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1FB8 DUP4 PUSH2 0x31D9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1FF0 JUMPI PUSH2 0x1FB8 DUP4 PUSH2 0x3297 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x204A JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2047 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4D75 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x20AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x211B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP PUSH2 0x1FB8 DUP4 DUP4 DUP4 PUSH2 0x3332 JUMP JUMPDEST PUSH2 0x212F PUSH2 0x3356 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH2 0x218D PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4DA0 JUMP JUMPDEST PUSH2 0x308F JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x21FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x2226 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x227C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x230E JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x235A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x23C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x249F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x250C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2536 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x25B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x25BA PUSH2 0x339F JUMP JUMPDEST PUSH2 0x1330 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x33D5 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST JUMP JUMPDEST TIMESTAMP DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x2639 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x54 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x74 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT PUSH1 0xD8 DUP9 DUP2 SHL DUP3 AND PUSH1 0x94 DUP5 ADD MSTORE PUSH1 0x99 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0xB9 DUP4 ADD DUP8 SWAP1 MSTORE DUP4 SWAP1 SHL AND PUSH1 0xD9 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x26B2 SWAP1 PUSH1 0xDE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x35D6 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x26C0 DUP3 DUP7 DUP7 PUSH2 0x3610 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x271E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2742 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP5 PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2793 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27A9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27BB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x27D4 PUSH2 0x4644 JUMP JUMPDEST PUSH2 0x27F4 DUP10 DUP10 DUP10 DUP10 DUP8 DUP8 PUSH2 0x27E6 DUP13 PUSH2 0x2839 JUMP JUMPDEST PUSH2 0x27EF DUP13 PUSH2 0x1AD2 JUMP JUMPDEST PUSH2 0x3634 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE SWAP2 SWAP3 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x4DFE JUMP JUMPDEST PUSH2 0x2850 PUSH2 0x4644 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x2879 JUMPI PUSH2 0x2876 DUP9 DUP8 DUP8 PUSH2 0x2870 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x4E11 JUMP JUMPDEST DUP7 PUSH2 0x2EF1 JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x28C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x28E2 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x292E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x2940 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x2961 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2971 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x29E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2A06 PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x4E11 JUMP JUMPDEST PUSH2 0x2A10 SWAP1 DUP9 PUSH2 0x4E2A JUMP JUMPDEST PUSH2 0x2A1A SWAP2 SWAP1 PUSH2 0x4E47 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2A6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x2A7C PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4C28 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AD8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AFC SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B6A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8E SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO PUSH2 0x2BAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x2CCC JUMPI POP PUSH2 0x2BCC PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4C28 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C28 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C4C SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2CA5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CC9 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4EBD JUMP JUMPDEST PUSH2 0x2CF0 PUSH2 0x1BCF JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2D0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F0C JUMP JUMPDEST PUSH2 0x2D31 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2D2C SWAP2 SWAP1 PUSH2 0x4E11 JUMP JUMPDEST PUSH2 0x3B4D JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2D47 SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2D57 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2D65 SWAP1 POP PUSH2 0x1578 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2D86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x2DD8 SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x5061 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2DF4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E18 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2E2E PUSH2 0x25C9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x215C CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2E6D PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EA8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECC SWAP2 SWAP1 PUSH2 0x50AE JUMP JUMPDEST PUSH2 0x2ED6 SWAP2 SWAP1 PUSH2 0x50CE JUMP JUMPDEST PUSH2 0x2EE1 SWAP1 PUSH1 0xA PUSH2 0x51C2 JUMP JUMPDEST PUSH2 0x1BBB SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x51D0 JUMP JUMPDEST PUSH0 PUSH2 0x2EFF DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3CBD JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB DUP4 PUSH2 0x2F1A PUSH2 0x1DEA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F79 SWAP2 SWAP1 PUSH2 0x50AE JUMP JUMPDEST PUSH2 0x2F83 SWAP2 SWAP1 PUSH2 0x50CE JUMP JUMPDEST PUSH2 0x2F8E SWAP1 PUSH1 0xA PUSH2 0x51C2 JUMP JUMPDEST PUSH2 0x2F98 SWAP1 DUP5 PUSH2 0x4DA0 JUMP JUMPDEST PUSH2 0x3EB0 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FFA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x301E SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3050 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x306B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5AE SWAP2 SWAP1 PUSH2 0x51E7 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x30FD PUSH2 0x3F14 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x310F JUMPI PUSH2 0x310F PUSH2 0x4D4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x314E PUSH2 0x460E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3165 DUP5 PUSH0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3177 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3189 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x319B DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31AD DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31BF DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31D1 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x3F71 JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31E2 DUP2 PUSH2 0x3F86 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x324C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3270 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9EA JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3304 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x53B0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x333B DUP4 PUSH2 0x4037 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3347 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1FB8 JUMPI PUSH2 0x1ACC DUP4 DUP4 PUSH2 0x4076 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x33C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x33CD PUSH2 0x409B JUMP JUMPDEST PUSH2 0x260F PUSH2 0x40C1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x33FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3407 DUP9 DUP3 PUSH2 0x5251 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x342A DUP9 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x343C DUP8 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x345B DUP7 PUSH2 0x2179 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x346F PUSH1 0x2 DUP7 PUSH2 0x2F0D JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3484 PUSH0 DUP6 PUSH2 0x2F0D JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH2 0xFFFF PUSH1 0x30 SHL NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH4 0xFFFFFFFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x1330 PUSH2 0x3F14 JUMP JUMPDEST PUSH0 PUSH2 0x35E1 DUP3 MLOAD PUSH2 0x40EF JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x35F3 SWAP3 SWAP2 SWAP1 PUSH2 0x5323 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x361E DUP7 DUP7 DUP7 PUSH2 0x417F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x362B DUP2 PUSH2 0x41B8 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x363C PUSH2 0x4644 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x3655 JUMPI PUSH2 0x3652 DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x2EF1 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x36A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x3701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x371C DUP4 DUP11 PUSH2 0x4E2A JUMP JUMPDEST PUSH2 0x3726 SWAP2 SWAP1 PUSH2 0x4E47 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x377A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x37D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x382D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3851 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38BF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E3 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO PUSH2 0x3901 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3A14 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3970 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3994 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39ED JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A11 SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x3A30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4EBD JUMP JUMPDEST PUSH2 0x3A38 PUSH2 0x1BCF JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3A57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F0C JUMP JUMPDEST PUSH2 0x3A66 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3B4D JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x3A7D SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3A8B SWAP1 POP PUSH2 0x1578 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3AAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3AFE SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x535D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B1A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3B3E SWAP2 SWAP1 PUSH2 0x4D75 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3B55 PUSH2 0x4644 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3BB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH2 0x3BB8 PUSH2 0x4644 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3C02 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3CBD JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3C9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3CAA SWAP1 DUP10 PUSH2 0x4C28 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3CFD PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3D15 SWAP1 PUSH2 0x3D0E SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3D27 SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x3D51 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3D49 SWAP1 DUP4 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3D58 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x3D68 SWAP1 DUP7 SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3D7E SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3DB3 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3D9A SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x3DAB SWAP2 SWAP1 PUSH2 0x4C28 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3DBA JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3DF7 PUSH4 0x1E13380 PUSH2 0x3DCC DUP5 DUP7 PUSH2 0x4E2A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x3DE2 SWAP2 SWAP1 PUSH2 0x51D0 JUMP JUMPDEST PUSH2 0x3DEC SWAP2 SWAP1 PUSH2 0x4DA0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3E39 PUSH4 0x1E13380 PUSH2 0x3E0E DUP5 DUP7 PUSH2 0x4E2A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x3E24 SWAP2 SWAP1 PUSH2 0x51D0 JUMP JUMPDEST PUSH2 0x3E2E SWAP2 SWAP1 PUSH2 0x4DA0 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x4301 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x3E50 SWAP2 PUSH2 0x4D62 JUMP JUMPDEST SWAP1 POP PUSH2 0x3E69 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x4301 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x3E79 SWAP2 PUSH2 0x4301 JUMP JUMPDEST PUSH2 0x3E83 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x3E97 SWAP2 PUSH2 0x4D62 JUMP JUMPDEST PUSH2 0x3EA1 SWAP2 SWAP1 PUSH2 0x4D62 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x3F1F PUSH2 0x1578 JUMP JUMPDEST LT ISZERO PUSH2 0x3F3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3F67 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x260F PUSH1 0xFC PUSH2 0x2192 JUMP JUMPDEST PUSH0 PUSH2 0x5AE PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x51D0 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3FEC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4010 SWAP2 SWAP1 PUSH2 0x4B2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4040 DUP2 PUSH2 0x3297 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1BBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x53F0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x4337 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x260F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x40E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH2 0x260F PUSH2 0x43AB JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x40FB DUP4 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411A JUMPI PUSH2 0x411A PUSH2 0x475E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x4144 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x414E JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x419B PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x4D62 JUMP JUMPDEST SWAP1 POP PUSH2 0x41A9 DUP8 DUP3 DUP9 DUP6 PUSH2 0x44B4 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x41CB JUMPI PUSH2 0x41CB PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x41D3 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x41E7 JUMPI PUSH2 0x41E7 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x4234 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x4248 JUMPI PUSH2 0x4248 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x4295 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x42A9 JUMPI PUSH2 0x42A9 PUSH2 0x4D4E JUMP JUMPDEST SUB PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x835 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x431D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4353 SWAP2 SWAP1 PUSH2 0x53A4 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x438B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4390 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x43A1 DUP7 DUP4 DUP4 DUP8 PUSH2 0x4571 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x43D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP1 PUSH2 0x4DB3 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x441B JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4447 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4465 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x447D JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4491 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x44A3 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x5AE JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x44E9 JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x4568 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x453A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4562 JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x4568 JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x45DF JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x45D8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x45D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x835 JUMP JUMPDEST POP DUP2 PUSH2 0x15AF JUMP JUMPDEST PUSH2 0x15AF DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x45F4 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x835 SWAP2 SWAP1 PUSH2 0x46E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46CC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4728 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4753 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BBB DUP2 PUSH2 0x472F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x478C JUMPI PUSH2 0x478C PUSH2 0x475E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x47BB JUMPI PUSH2 0x47BB PUSH2 0x475E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x47D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x47FA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4805 DUP2 PUSH2 0x472F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4820 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4830 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x483F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4772 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0x485C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x4871 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4895 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x48BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x48CA DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4772 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x48FE DUP2 PUSH2 0x472F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1BCA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x493C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP11 CALLDATALOAD SWAP10 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x495A PUSH1 0x60 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP7 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD PUSH2 0x496A DUP2 PUSH2 0x472F JUMP JUMPDEST SWAP6 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH1 0xE0 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x100 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4996 PUSH2 0x120 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49B8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x49D0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x49DA DUP5 DUP5 PUSH2 0x49A7 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x2E0 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4A03 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4A0D DUP13 DUP13 PUSH2 0x49A7 JUMP JUMPDEST SWAP10 POP PUSH2 0x1C0 DUP12 ADD CALLDATALOAD SWAP9 POP PUSH2 0x1E0 DUP12 ADD CALLDATALOAD SWAP8 POP PUSH2 0x200 DUP12 ADD CALLDATALOAD SWAP7 POP PUSH2 0x4A34 PUSH2 0x220 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST SWAP6 POP PUSH2 0x240 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH2 0x260 DUP12 ADD CALLDATALOAD SWAP4 POP PUSH2 0x280 DUP12 ADD CALLDATALOAD SWAP3 POP PUSH2 0x2A0 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4996 PUSH2 0x2C0 DUP13 ADD PUSH2 0x490E JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4A75 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A8C PUSH1 0x40 DUP6 ADD PUSH2 0x490E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4AA8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH2 0x4ABF PUSH1 0x40 DUP7 ADD PUSH2 0x490E JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4AE0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x4AEE JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4B10 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x49B8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B3E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1BBB DUP2 PUSH2 0x472F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1BCA DUP2 PUSH2 0x472F JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x4CE8 PUSH2 0x160 DUP3 ADD PUSH2 0x4C65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4D04 PUSH2 0x180 DUP3 ADD PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x4D1E PUSH2 0x1A0 DUP3 ADD PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4D40 DUP3 DUP6 PUSH2 0x4C70 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x4DAE JUMPI PUSH2 0x4DAE PUSH2 0x4D8C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4E0C JUMPI PUSH2 0x4E0C PUSH2 0x4D8C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E21 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1BBB DUP3 PUSH2 0x490E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x4E5D JUMPI PUSH2 0x4E5D PUSH2 0x4D8C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x502B PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x5046 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x1FB8 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x5070 DUP3 DUP8 PUSH2 0x4C70 JUMP JUMPDEST PUSH2 0x507E PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x4FA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x41B0 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x5106 JUMPI PUSH2 0x5106 PUSH2 0x4C14 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x5114 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x50EB JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x5130 JUMPI POP PUSH1 0x1 PUSH2 0x5AE JUMP JUMPDEST DUP2 PUSH2 0x513C JUMPI POP PUSH0 PUSH2 0x5AE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x5152 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x515C JUMPI PUSH2 0x5178 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x5AE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x516D JUMPI PUSH2 0x516D PUSH2 0x4C14 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x5AE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x519B JUMPI POP DUP2 DUP2 EXP PUSH2 0x5AE JUMP JUMPDEST PUSH2 0x51A7 PUSH0 NOT DUP5 DUP5 PUSH2 0x50E7 JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x51BA JUMPI PUSH2 0x51BA PUSH2 0x4C14 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x5122 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x5AE JUMPI PUSH2 0x5AE PUSH2 0x4C14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1BBB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FB8 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x522B JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x524A JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5237 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x526B JUMPI PUSH2 0x526B PUSH2 0x475E JUMP JUMPDEST PUSH2 0x527F DUP2 PUSH2 0x5279 DUP5 SLOAD PUSH2 0x4AFC JUMP JUMPDEST DUP5 PUSH2 0x5206 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x52B1 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x529A JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x524A JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x52E0 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x52C0 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x52FD JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0x15AF PUSH2 0x5357 PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x530C JUMP JUMPDEST DUP5 PUSH2 0x530C JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x536C DUP3 DUP8 PUSH2 0x4FA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1BBB DUP3 DUP5 PUSH2 0x530C JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122045FE15 0xE5 MUL 0xEE PUSH30 0x27E2C181A8DE19ECA3C79E4D983ECCF2FA9A60440A1002699764736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"870:11289:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:193:60;;;;;;;;;;-1:-1:-1;5376:193:60;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5376:193:60;;;;;;;;6900:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10491:286:61:-;;;;;;;;;;-1:-1:-1;10491:286:61;;;;;:::i;:::-;;:::i;:::-;;3408:195:7;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;3916:102:57:-;;;;;;;;;;;;;:::i;4022:94::-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;1846:32:88;;;1828:51;;1816:2;1801:18;4022:94:57;1661:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;8309:82:60:-;;;;;;;;;;-1:-1:-1;8379:7:60;;-1:-1:-1;;;;;8379:7:60;8309:82;;3027:131:7;;;;;;;;;;;;;:::i;:::-;;;3685:25:88;;;3673:2;3658:18;3027:131:7;3539:177:88;9445:823:61;;;;;;;;;;-1:-1:-1;9445:823:61;;;;;:::i;:::-;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;16309:342:60;;;;;;;;;;-1:-1:-1;16309:342:60;;;;;:::i;:::-;;:::i;8104:99::-;;;;;;;;;;-1:-1:-1;8179:7:60;:19;-1:-1:-1;;;8179:19:60;;;;8104:99;;2905:335:61;;;;;;;;;;-1:-1:-1;2905:335:61;;;;;:::i;:::-;;:::i;16655:111:60:-;;;;;;;;;;-1:-1:-1;16745:16:60;16655:111;;6205:664:61;;;;;;;;;;-1:-1:-1;6205:664:61;;;;;:::i;:::-;;:::i;8952:194::-;;;;;;;;;;-1:-1:-1;8952:194:61;;;;;:::i;:::-;;:::i;8207:98:60:-;;;;;;;;;;-1:-1:-1;8285:15:60;;8207:98;;8162:786:61;;;;;;;;;;-1:-1:-1;8162:786:61;;;;;:::i;:::-;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;7982:118:60:-;;;;;;;;;;;;;:::i;10804:235::-;;;;;;;;;;-1:-1:-1;10804:235:60;;;;;:::i;:::-;;:::i;11598:280:61:-;;;;;;;;;;-1:-1:-1;11598:280:61;;;;;:::i;:::-;;:::i;8395:1423:60:-;;;;;;;;;;-1:-1:-1;8395:1423:60;;;;;:::i;:::-;;:::i;10940:327:61:-;;;;;;;;;;-1:-1:-1;10940:327:61;;;;;:::i;:::-;;:::i;:::-;;;;;;10411:4:88;10453:3;10442:9;10438:19;10430:27;;10490:6;10484:13;10473:9;10466:32;10554:4;10546:6;10542:17;10536:24;10529:4;10518:9;10514:20;10507:54;10617:4;10609:6;10605:17;10599:24;10592:4;10581:9;10577:20;10570:54;10680:4;10672:6;10668:17;10662:24;10655:4;10644:9;10640:20;10633:54;10743:4;10735:6;10731:17;10725:24;10718:4;10707:9;10703:20;10696:54;10806:4;10798:6;10794:17;10788:24;10781:4;10770:9;10766:20;10759:54;10869:4;10861:6;10857:17;10851:24;10844:4;10833:9;10829:20;10822:54;10269:613;;;;;7850:128:60;;;;;;;;;;;;;:::i;9822:115::-;;;;;;;;;;;;;:::i;10529:271::-;;;;;;;;;;-1:-1:-1;10529:271:60;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;5376:193:60:-;5461:4;5480:36;5504:11;5480:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;5520:44:60;;-1:-1:-1;;;5520:44:60;5480:84;5473:91;5376:193;-1:-1:-1;;5376:193:60:o;6900:84::-;6946:13;6974:5;6967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:84;:::o;10491:286:61:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:8:61::1;10615:1;10603:13:::0;10599:46:::1;;10625:20;;-1:-1:-1::0;;;10625:20:61::1;;;;;;;;;;;10599:46;10655:18;::::0;;;:8:::1;:18;::::0;;;;:22;::::1;;:27:::0;;10651:56:::1;;10691:16;;-1:-1:-1::0;;;10691:16:61::1;;;;;;;;;;;10651:56;10720:18;::::0;;;:8:::1;:18;::::0;;;;;10713:25;;-1:-1:-1;;;;;;10713:25:61;;;10749:23;10729:8;;10749:23:::1;::::0;::::1;10491:286:::0;;;:::o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;13341:2:88;2174:92:7;;;13323:21:88;13380:2;13360:18;;;13353:30;13419:34;13399:18;;;13392:62;13490:26;13470:18;;;13463:54;13534:19;;2174:92:7;13139:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;9445:823:61:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9597:8:61::1;9609:1;9597:13:::0;9593:46:::1;;9619:20;;-1:-1:-1::0;;;9619:20:61::1;;;;;;;;;;;9593:46;9666:511;;;;;;;;9692:20;9700:7;:11;;;9692:7;:20::i;:::-;9666:511;;;;;;9733:28;9741:7;:19;;;9733:7;:28::i;:::-;9666:511;;;;;;9780:26;9788:7;:17;;;9780:7;:26::i;:::-;9666:511;;;;;;9827:28;9835:7;:19;;;9827:7;:28::i;:::-;9666:511;;;;;;9877:29;9885:7;:20;;;9877:7;:29::i;:::-;9666:511;;;;;;9921:22;9929:7;:13;;;9921:7;:22::i;:::-;9666:511;;;;;;9958:22;9966:7;:13;;;9958:7;:22::i;:::-;9666:511;::::0;;::::1;::::0;;10008:16:::1;9666:511;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;9645:18:61;;;:8:::1;:18:::0;;;;;:532;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;-1:-1:-1::0;;;;9645:532:61;;::::1;-1:-1:-1::0;;;9645:532:61::1;::::0;;;;-1:-1:-1;;9645:532:61;;::::1;::::0;::::1;-1:-1:-1::0;;9645:532:61;;;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;10183:41:::1;::::0;:21:::1;:41::i;:::-;10235:28;::::0;;13795:20:88;;13824:24;;13918:4;13906:17;;;13893:31;13940:20;;;13933:37;14028:17;;;14015:31;14062:20;;;14055:37;14162:4;14150:17;;;14137:31;14184:20;;;14177:37;14284:4;14272:17;;;14259:31;14306:20;;;14299:37;14406:4;14394:17;;;14381:31;14428:20;;;14421:37;14528:4;14516:17;;;14503:31;14550:20;;;14543:37;10235:28:61;;10245:8;;10235:28:::1;::::0;;;;;13750:3:88;10235:28:61;;::::1;9445:823:::0;;;;:::o;16309:342:60:-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;16640:6:60::1;16621:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16309:342:60:o;2905:335:61:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;15058:2:88;3325:201:6;;;15040:21:88;15097:2;15077:18;;;15070:30;15136:34;15116:18;;;15109:62;-1:-1:-1;;;15187:18:88;;;15180:44;15241:19;;3325:201:6;14856:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;3131:104:61::1;3149:5;3156:10;3168:12;3182:6;3190:19;3211:14;3227:7;3131:17;:104::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;15423:36:88;;3721:14:6;;15411:2:88;15396:18;3721:14:6;;;;;;;3647:99;3269:483;2905:335:61;;;;;;;:::o;6205:664::-;6542:7;1503:19:8;:17;:19::i;:::-;968:32:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6557:188:61::2;6580:6;6594:7;6609:8;6625:10;6643;6661:8;6677:15;6700:16;6724:15;6557;:188::i;:::-;6758:103;6775:6:::0;6783:7;6792:8;6802:10;6814;6826:8;965:10:14;6850::61::2;6758:16;:103::i;:::-;:106:::0;;6205:664;-1:-1:-1;;;;;;;;;;;;6205:664:61:o;8952:194::-;1186:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;9100:41:61::2;::::0;-1:-1:-1;;;9100:41:61;;-1:-1:-1;;;;;9100:11:61::2;:25;::::0;::::2;::::0;:41:::2;::::0;9126:6;;9134;;9100:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8952:194:::0;;;:::o;8162:786::-;8515:7;1503:19:8;:17;:19::i;:::-;1046:26:61::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8530:188:61::2;8553:6;8567:7;8582:8;8598:10;8616;8634:8;8650:15;8673:16;8697:15;8530;:188::i;:::-;8737:203;8761:9:::0;8780:6;8796:7;8813:8;8831:10;965::14;8873:27:61::2;8889:10;8873:15;:27::i;:::-;8910:22;8923:8;8910:12;:22::i;:::-;8737:14;:203::i;3828:84:57:-:0;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;7982:118:60:-:0;8073:7;:21;8037:7;;8059:36;;8037:7;;-1:-1:-1;;;8073:21:60;;;;8059:10;:36::i;:::-;8052:43;;7982:118;:::o;10804:235::-;10929:7;10951:83;10970:6;10978:8;10988:10;11007:15;11025:8;:6;:8::i;:::-;10951:18;:83::i;:::-;10944:90;10804:235;-1:-1:-1;;;;10804:235:60:o;11598:280:61:-;11754:7;11776:97;11795:6;11803:8;11813:10;11832:15;11850:22;11863:8;11850:12;:22::i;11776:97::-;11769:104;11598:280;-1:-1:-1;;;;;11598:280:61:o;8395:1423:60:-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8529:13:60::1;::::0;-1:-1:-1;8520:22:60::1;::::0;-1:-1:-1;;8520:22:60;::::1;:5;:22;;;;;;;;:::i;:::-;::::0;8516:1146:::1;;8566:17;8574:8;8566:7;:17::i;:::-;8552:7;:31:::0;;-1:-1:-1;;8552:31:60::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8516:1146:::1;;;8609:21;8600:5;:30;;;;;;;;:::i;:::-;::::0;8596:1066:::1;;8662:17;8670:8;8662:7;:17::i;:::-;8640:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8640:39:60;;::::1;::::0;;;::::1;::::0;;8596:1066:::1;;;8705:19;8696:5;:28;;;;;;;;:::i;:::-;::::0;8692:970:::1;;8754:17;8762:8;8754:7;:17::i;:::-;8734:7;:37:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8734:37:60::1;-1:-1:-1::0;;8734:37:60;;::::1;::::0;;;::::1;::::0;;8692:970:::1;;;8797:21;8788:5;:30;;;;;;;;:::i;:::-;::::0;8784:878:::1;;8850:17;8858:8;8850:7;:17::i;:::-;8828:7;:39:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8828:39:60::1;-1:-1:-1::0;;;;8828:39:60;;::::1;::::0;;;::::1;::::0;;8784:878:::1;;;8893:22;8884:5;:31;;;;;;;;:::i;:::-;::::0;8880:782:::1;;8948:17;8956:8;8948:7;:17::i;:::-;8925:7;:40:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8925:40:60::1;-1:-1:-1::0;;8925:40:60;;::::1;::::0;;;::::1;::::0;;8880:782:::1;;;8991:15;8982:5;:24;;;;;;;;:::i;:::-;::::0;8978:684:::1;;9032:17;9040:8;9032:7;:17::i;:::-;9016:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9016:33:60::1;-1:-1:-1::0;;;;9016:33:60;;::::1;::::0;;;::::1;::::0;;8978:684:::1;;;9075:15;9066:5;:24;;;;;;;;:::i;:::-;::::0;9062:600:::1;;9116:17;9124:8;9116:7;:17::i;:::-;9100:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9100:33:60::1;-1:-1:-1::0;;;;9100:33:60;;::::1;::::0;;;::::1;::::0;;9062:600:::1;;;9159:28;9150:5;:37;;;;;;;;:::i;:::-;::::0;9146:516:::1;;9226:23;9237:1;9240:8;9226:10;:23::i;:::-;9197:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9197:52:60::1;-1:-1:-1::0;;;;9197:52:60;;::::1;::::0;;;::::1;::::0;;9146:516:::1;;;9275:23;9266:5;:32;;;;;;;;:::i;:::-;::::0;9262:400:::1;;9328:15;;9316:8;:27;;9308:89;;;::::0;-1:-1:-1;;;9308:89:60;;18605:2:88;9308:89:60::1;::::0;::::1;18587:21:88::0;18644:2;18624:18;;;18617:30;18683:34;18663:18;;;18656:62;-1:-1:-1;;;18734:18:88;;;18727:47;18791:19;;9308:89:60::1;18403:413:88::0;9308:89:60::1;9425:15;:13;:15::i;:::-;9413:8;:27;;:55;;;;9444:24;-1:-1:-1::0;;;;;;;;;;;9444:11:60::1;:24::i;:::-;9405:97;;;::::0;-1:-1:-1;;;9405:97:60;;19023:2:88;9405:97:60::1;::::0;::::1;19005:21:88::0;19062:2;19042:18;;;19035:30;19101:31;19081:18;;;19074:59;19150:18;;9405:97:60::1;18821:353:88::0;9405:97:60::1;9534:23;9545:1;9548:8;9534:10;:23::i;:::-;9510:7;:47:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9510:47:60::1;-1:-1:-1::0;;;;9510:47:60;;::::1;::::0;;;::::1;::::0;;9262:400:::1;;;9583:21;9574:5;:30;;;;;;;;:::i;:::-;::::0;9570:92:::1;;9636:19;:8;:17;:19::i;:::-;9614:7;:41:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9614:41:60::1;-1:-1:-1::0;;;;9614:41:60;;::::1;::::0;;;::::1;::::0;;9570:92:::1;9667:146;9784:5;9776:14;;;;;;;;:::i;:::-;9725:65;::::0;9733:39:::1;9725:65;:::i;:::-;9692:99;;;;;;;;:::i;:::-;9799:8;9667:17;:146::i;:::-;8395:1423:::0;;;;:::o;10940:327:61:-;11001:21;;:::i;:::-;11034:13;;11030:233;;11057:34;11094:18;;;:8;:18;;;;;11124:17;;11094:18;;11124:17;;;;:22;;11120:51;;11155:16;;-1:-1:-1;;;11155:16:61;;;;;;;;;;;11120:51;11189:28;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;-1:-1:-1;;;11189:28:61;;;;;;;;;;;:13;:28::i;:::-;11179:38;10940:327;-1:-1:-1;;;10940:327:61:o;11030:233::-;11248:8;:6;:8::i;11030:233::-;10940:327;;;:::o;7850:128:60:-;7946:7;:26;7910:7;;7932:41;;7943:1;;-1:-1:-1;;;7946:26:60;;;;7932:10;:41::i;9822:115::-;9878:17;;:::i;:::-;9910:22;;;;;;;;9924:7;9910:22;;;;;;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;:13;:22::i;10529:271::-;1411:29;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;10620:21:60;::::1;::::0;-1:-1:-1;10616:63:60::1;;10658:14;;-1:-1:-1::0;;;10658:14:60::1;;;;;;;;;;;10616:63;10684:7;:17:::0;;-1:-1:-1;;;;;;10684:17:60::1;-1:-1:-1::0;;;;;10684:17:60;::::1;::::0;;::::1;::::0;;;10707:88:::1;::::0;10725:42:::1;::::0;10707:17:::1;:88::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3618:206::-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;3206:169::-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;:::-;3206:169:::0;;;:::o;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;19979:2:88;3631:56:4;;;19961:21:88;20018:2;19998:18;;;19991:30;20057:34;20037:18;;;20030:62;-1:-1:-1;;;20108:18:88;;;20101:44;20162:19;;3631:56:4;19777:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;20394:2:88;3509:82:4;;;20376:21:88;20433:2;20413:18;;;20406:30;20472:34;20452:18;;;20445:62;-1:-1:-1;;;20523:18:88;;;20516:39;20572:19;;3509:82:4;20192:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;1846:32:88;;;1828:51;;1816:2;1801:18;2785:22:8::1;;;;;;;2697:117::o:0;7199:146:60:-;7254:6;7300:40;7301:27;1140:4;7301:5;:27;:::i;:::-;7300:38;:40::i;5942:954::-;6031:19;;1191:3;6031:19;;;;:38;:19;:38;;6023:86;;;;-1:-1:-1;;;6023:86:60;;21061:2:88;6023:86:60;;;21043:21:88;21100:2;21080:18;;;21073:30;21139:34;21119:18;;;21112:62;-1:-1:-1;;;21190:18:88;;;21183:33;21233:19;;6023:86:60;20859:399:88;6023:86:60;6123:17;;1191:3;-1:-1:-1;;;6123:17:60;;;:36;:17;:36;;;;:61;;-1:-1:-1;6163:17:60;;-1:-1:-1;;;6163:17:60;;;;:21;;6123:61;6115:107;;;;-1:-1:-1;;;6115:107:60;;21465:2:88;6115:107:60;;;21447:21:88;21504:2;21484:18;;;21477:30;21543:34;21523:18;;;21516:62;-1:-1:-1;;;21594:18:88;;;21587:31;21635:19;;6115:107:60;21263:397:88;6115:107:60;6257:19;;;;;;;;-1:-1:-1;;;6236:17:60;;;;:40;;6228:89;;;;-1:-1:-1;;;6228:89:60;;21867:2:88;6228:89:60;;;21849:21:88;21906:2;21886:18;;;21879:30;21945:34;21925:18;;;21918:62;-1:-1:-1;;;21996:18:88;;;21989:34;22040:19;;6228:89:60;21665:400:88;6228:89:60;6331:11;;1282:3;6331:22;:11;;;:22;;;;:48;;-1:-1:-1;6357:11:60;;1233:3;6357:22;:11;;;:22;;6331:48;6323:93;;;;-1:-1:-1;;;6323:93:60;;22272:2:88;6323:93:60;;;22254:21:88;;;22291:18;;;22284:30;22350:34;22330:18;;;22323:62;22402:18;;6323:93:60;22070:356:88;6323:93:60;6430:19;;1191:3;-1:-1:-1;;;6430:19:60;;;:38;:19;:38;;6422:87;;;;-1:-1:-1;;;6422:87:60;;22633:2:88;6422:87:60;;;22615:21:88;22672:2;22652:18;;;22645:30;22711:34;22691:18;;;22684:62;-1:-1:-1;;;22762:18:88;;;22755:34;22806:19;;6422:87:60;22431:400:88;6422:87:60;6523:20;;1191:3;-1:-1:-1;;;6523:20:60;;;:39;:20;:39;;6515:89;;;;-1:-1:-1;;;6515:89:60;;23038:2:88;6515:89:60;;;23020:21:88;23077:2;23057:18;;;23050:30;23116:34;23096:18;;;23089:62;-1:-1:-1;;;23167:18:88;;;23160:35;23212:19;;6515:89:60;22836:401:88;6515:89:60;6618:13;;1191:3;-1:-1:-1;;;6618:13:60;;;:32;:13;:32;;6610:82;;;;-1:-1:-1;;;6610:82:60;;23444:2:88;6610:82:60;;;23426:21:88;23483:2;23463:18;;;23456:30;23522:34;23502:18;;;23495:62;-1:-1:-1;;;23573:18:88;;;23566:35;23618:19;;6610:82:60;23242:401:88;6610:82:60;6706:13;;1191:3;-1:-1:-1;;;6706:13:60;;;:32;:13;:32;;6698:82;;;;-1:-1:-1;;;6698:82:60;;23850:2:88;6698:82:60;;;23832:21:88;23889:2;23869:18;;;23862:30;23928:34;23908:18;;;23901:62;-1:-1:-1;;;23979:18:88;;;23972:35;24024:19;;6698:82:60;23648:401:88;6698:82:60;6794:21;;-1:-1:-1;;;6794:21:60;;;;:25;;;;:59;;-1:-1:-1;6823:26:60;;-1:-1:-1;;;6823:26:60;;;;:30;;6794:59;6786:105;;;;-1:-1:-1;;;6786:105:60;;24256:2:88;6786:105:60;;;24238:21:88;24295:2;24275:18;;;24268:30;24334:34;24314:18;;;24307:62;-1:-1:-1;;;24385:18:88;;;24378:31;24426:19;;6786:105:60;24054:397:88;3858:393:60;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4098:28:60::1;:26;:28::i;:::-;4132:114;4160:5;4167:10;4179:12;4193:6;4201:19;4222:14;4238:7;4132:27;:114::i;2031:106:8:-:0;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;25070:2:88;2092:38:8;;;25052:21:88;25109:2;25089:18;;;25082:30;-1:-1:-1;;;25128:18:88;;;25121:46;25184:18;;2092:38:8;24868:340:88;2092:38:8;2031:106::o;3244:1207:61:-;3534:15;3516;:33;;;3512:60;;;3558:14;;-1:-1:-1;;;3558:14:61;;;;;;;;;;;3512:60;4161:109;;-1:-1:-1;;4186:4:61;25554:2:88;25550:15;25546:53;4161:109:61;;;25534:66:88;25616:12;;;25609:28;;;25653:12;;;25646:28;;;25690:12;;;25683:28;;;-1:-1:-1;;;;;;25768:3:88;25746:16;;;25742:45;;25727:13;;;25720:68;25804:13;;;25797:29;;;25842:13;;;25835:29;;;25899:16;;;25895:45;25880:13;;;25873:68;4105:17:61;;4125:151;;25957:13:88;;4161:109:61;;;;;;;;;;;;4125:28;:151::i;:::-;4105:171;;4282:14;4299:59;4313:9;4324:15;4341:16;4299:13;:59::i;:::-;4282:76;;4364:11;-1:-1:-1;;;;;4364:18:61;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4364:39:61;;4412:4;1116:24;4432:6;4440:5;4364:82;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3506:945;;3244:1207;;;;;;;;;:::o;4455:557::-;4678:38;;:::i;:::-;4740:185;4768:6;4782:7;4797:8;4813:10;4831:5;4844:10;4862:27;4878:10;4862:15;:27::i;:::-;4897:22;4910:8;4897:12;:22::i;:::-;4740:20;:185::i;:::-;4952:16;;4936:45;;3685:25:88;;;4724:201:61;;-1:-1:-1;4952:16:61;4936:45;;3673:2:88;3658:18;4936:45:61;;;;;;;4455:557;;;;;;;;;;:::o;10394:131:60:-;10462:6;10490:29;-1:-1:-1;;;10498:10:60;10490:29;:::i;14606:1699::-;14857:31;;:::i;:::-;-1:-1:-1;;14900:7:60;:28;14896:133;;14948:74;14967:6;14975:8;14985:10;14997:15;;;;;;;;:::i;:::-;15014:7;14948:18;:74::i;:::-;14938:84;;14896:133;15052:6;15042:7;:16;15034:61;;;;-1:-1:-1;;;15034:61:60;;26489:2:88;15034:61:60;;;26471:21:88;;;26508:18;;;26501:30;26567:34;26547:18;;;26540:62;26619:18;;15034:61:60;26287:356:88;15034:61:60;15109:46;15139:15;15109:46;:20;;;;;;;;:::i;:::-;:46;;;15101:80;;;;-1:-1:-1;;;15101:80:60;;26850:2:88;15101:80:60;;;26832:21:88;26889:2;26869:18;;;26862:30;-1:-1:-1;;;26908:18:88;;;26901:51;26969:18;;15101:80:60;26648:345:88;15101:80:60;15216:20;;;;;;;;:::i;:::-;15202:34;;:10;:34;;;;:64;;;;;15250:9;:16;;;15240:6;:26;;15202:64;:96;;;;;15281:9;:17;;;15270:7;:28;;15202:96;15187:186;;;;-1:-1:-1;;;15187:186:60;;27200:2:88;15187:186:60;;;27182:21:88;27239:2;27219:18;;;27212:30;27278:34;27258:18;;;27251:62;27349:29;27329:18;;;27322:57;27396:19;;15187:186:60;26998:423:88;15187:186:60;15429:7;:19;-1:-1:-1;;;15429:19:60;;;;15421:4;15402:15;;;;;;;;:::i;:::-;15389:28;;:10;:28;:::i;:::-;15388:37;;;;:::i;:::-;15387:61;;;15379:101;;;;-1:-1:-1;;;15379:101:60;;27996:2:88;15379:101:60;;;27978:21:88;28035:2;28015:18;;;28008:30;28074:29;28054:18;;;28047:57;28121:18;;15379:101:60;27794:351:88;15379:101:60;15567:27;15577:17;;;;15567:7;:27;:::i;:::-;15501:11;-1:-1:-1;;;;;15501:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;15501:61:60;;-1:-1:-1;;;;;28342:32:88;;;15501:61:60;;;28324:51:88;15549:11:60;28411:32:88;;28391:18;;;28384:60;15501:32:60;;;;;;;28297:18:88;;15501:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;15486:170;;;;-1:-1:-1;;;15486:170:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;15677:21:60;;965:10:14;15677:21:60;;:111;;-1:-1:-1;15760:27:60;15770:17;;;;15760:7;:27;:::i;:::-;15702:11;-1:-1:-1;;;;;15702:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15702:32:60;;15735:5;965:10:14;15702:53:60;;-1:-1:-1;;;;;;15702:53:60;;;;;;;-1:-1:-1;;;;;28342:32:88;;;15702:53:60;;;28324:51:88;28411:32;;28391:18;;;28384:60;28297:18;;15702:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;15677:111;15662:189;;;;-1:-1:-1;;;15662:189:60;;;;;;;:::i;:::-;15875:20;:18;:20::i;:::-;15865:6;:30;;15857:93;;;;-1:-1:-1;;;15857:93:60;;;;;;;:::i;:::-;15965:88;15983:4;15989:7;15998;16007:6;16015:8;16025:10;16037:9;:15;;;;;;;;;;:::i;:::-;15965:17;:88::i;:::-;15956:97;;16095:9;:16;;;16079:6;:13;;;:32;;;;:::i;:::-;16060:15;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;16144:15:60;;-1:-1:-1;16144:13:60;:15::i;:::-;16125;;:34;;16117:82;;;;-1:-1:-1;;;16117:82:60;;;;;;;:::i;:::-;16218:63;;-1:-1:-1;;;16218:63:60;;-1:-1:-1;;;;;16218:11:60;:25;;;;:63;;16244:9;;16255:6;;16263:5;;16270:10;;16218:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:75;;14606:1699;;;;;;;;;;:::o;2450:115:8:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;7400:209:60;7473:7;7595:8;7571:10;:8;:10::i;:::-;-1:-1:-1;;;;;7571:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7564:40;;:2;:40;:::i;:::-;7547:57;;:14;;;:57;:::i;11043:263::-;11202:7;11224:64;11249:1;11252:6;11260:8;11270:10;11282:5;11224:24;:64::i;:::-;:77;;;;11043:263;-1:-1:-1;;;;;;11043:263:60:o;7613:233::-;7687:6;7780:61;7820:8;7796:10;:8;:10::i;:::-;-1:-1:-1;;;;;7796:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7789:40;;:2;:40;:::i;:::-;7781:48;;:5;:48;:::i;:::-;7780:59;:61::i;4221:160:57:-;4279:4;4298:11;-1:-1:-1;;;;;4298:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4298:37:57;;4344:4;4351;965:10:14;4371:4:57;4298:78;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;34477:2:88;16362:76:46;;;34459:21:88;34516:2;34496:18;;;34489:30;34555:34;34535:18;;;34528:62;-1:-1:-1;;;34606:18:88;;;34599:36;34652:19;;16362:76:46;34275:402:88;16362:76:46;-1:-1:-1;16462:5:46;16288:187::o;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;3685:25:88;;;5115:31:57;;3673:2:88;3658:18;5115:31:57;;;;;;;4985:166;;:::o;9941:449:60:-;10016:17;;:::i;:::-;10054:331;;;;;;;;10076:20;10084:7;:11;;;10076:7;:20::i;:::-;10054:331;;;;10119:28;10127:7;:19;;;10119:7;:28::i;:::-;10054:331;;;;10168:26;10176:7;:17;;;10168:7;:26::i;:::-;10054:331;;;;10217:28;10225:7;:19;;;10217:7;:28::i;:::-;10054:331;;;;10269:29;10277:7;:20;;;10269:7;:29::i;:::-;10054:331;;;;10315:22;10323:7;:13;;;10315:7;:22::i;:::-;10054:331;;;;10354:22;10362:7;:13;;;10354:7;:22::i;:::-;10054:331;;10041:344;9941:449;-1:-1:-1;;9941:449:60:o;5037:280::-;5120:34;5146:7;5120:25;:34::i;:::-;5160:17;5192:7;5160:40;;5237:16;-1:-1:-1;;;;;5210:43:60;:5;-1:-1:-1;;;;;5210:21:60;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5210:43:60;;5206:107;;5270:36;;-1:-1:-1;;;5270:36:60;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;35166:2:88;1793:106:4;;;35148:21:88;35205:2;35185:18;;;35178:30;35244:34;35224:18;;;35217:62;-1:-1:-1;;;35295:18:88;;;35288:43;35348:19;;1793:106:4;34964:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;35580:2:88;2267:41:8;;;35562:21:88;35619:2;35599:18;;;35592:30;-1:-1:-1;;;35638:18:88;;;35631:50;35698:18;;2267:41:8;35378:344:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4306:727:60:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4556:5:60::1;:13;4564:5:::0;4556;:13:::1;:::i;:::-;-1:-1:-1::0;4585:368:60::1;::::0;;::::1;::::0;::::1;::::0;;1191:3:::1;4585:368:::0;;-1:-1:-1;4585:368:60::1;::::0;::::1;::::0;;;;4667:19:::1;4675:10:::0;4667:7:::1;:19::i;:::-;4585:368;;;;;;4707:21;4715:12;4707:7;:21::i;:::-;4585:368;;::::0;;4750:1:::1;4585:368;::::0;::::1;::::0;;;;;;;;;4782:15:::1;4790:6:::0;4782:7:::1;:15::i;:::-;4585:368;;;;;;4825:34;4836:1;4839:19;4825:10;:34::i;:::-;4585:368;;;;;;4882:29;4893:1;4896:14;4882:10;:29::i;:::-;4585:368;::::0;;::::1;::::0;;1068:4:::1;4585:368;::::0;;::::1;::::0;4575:378;;:7:::1;:378:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;4585:368:::1;4575:378:::0;;::::1;-1:-1:-1::0;;4575:378:60;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;;::::1;;;::::0;;-1:-1:-1;4959:15:60::1;:19:::0;4984:7:::1;:17:::0;;-1:-1:-1;;;;;;4984:17:60::1;-1:-1:-1::0;;;;;4984:17:60;::::1;;::::0;;5007:21:::1;:19;:21::i;7801:196:42:-:0;7872:7;7959:26;7976:1;:8;7959:16;:26::i;:::-;7987:1;7908:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7898:92;;;;;;7891:99;;7801:196;;;:::o;4613:222::-;4690:7;4710:17;4729:18;4751:23;4762:4;4768:1;4771:2;4751:10;:23::i;:::-;4709:65;;;;4784:18;4796:5;4784:11;:18::i;:::-;-1:-1:-1;4819:9:42;4613:222;-1:-1:-1;;;;4613:222:42:o;12439:1484:60:-;12670:31;;:::i;:::-;12730:15;12756:28;;;12752:122;;12804:63;12823:6;12831:8;12841:10;12853:4;12859:7;12804:18;:63::i;:::-;12794:73;;12752:122;12897:6;12887:7;:16;12879:61;;;;-1:-1:-1;;;12879:61:60;;26489:2:88;12879:61:60;;;26471:21:88;;;26508:18;;;26501:30;26567:34;26547:18;;;26540:62;26619:18;;12879:61:60;26287:356:88;12879:61:60;12967:4;12954:17;;:10;:17;;;12946:62;;;;-1:-1:-1;;;12946:62:60;;38738:2:88;12946:62:60;;;38720:21:88;;;38757:18;;;38750:30;38816:34;38796:18;;;38789:62;38868:18;;12946:62:60;38536:356:88;12946:62:60;13053:7;:19;-1:-1:-1;;;13053:19:60;;;;13045:4;13024:17;13037:4;13024:10;:17;:::i;:::-;13023:26;;;;:::i;:::-;13022:50;;;13014:90;;;;-1:-1:-1;;;13014:90:60;;27996:2:88;13014:90:60;;;27978:21:88;28035:2;28015:18;;;28008:30;28074:29;28054:18;;;28047:57;28121:18;;13014:90:60;27794:351:88;13014:90:60;-1:-1:-1;;;;;13118:24:60;;13110:67;;;;-1:-1:-1;;;13110:67:60;;39099:2:88;13110:67:60;;;39081:21:88;39138:2;39118:18;;;39111:30;39177:32;39157:18;;;39150:60;39227:18;;13110:67:60;38897:354:88;13110:67:60;13263:7;13198:11;-1:-1:-1;;;;;13198:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;13198:61:60;;-1:-1:-1;;;;;28342:32:88;;;13198:61:60;;;28324:51:88;13246:11:60;28411:32:88;;28391:18;;;28384:60;13198:32:60;;;;;;;28297:18:88;;13198:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;13183:148;;;;-1:-1:-1;;;13183:148:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;13352:21:60;;965:10:14;13352:21:60;;:89;;;13434:7;13377:11;-1:-1:-1;;;;;13377:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:32:60;;13410:5;965:10:14;13377:53:60;;-1:-1:-1;;;;;;13377:53:60;;;;;;;-1:-1:-1;;;;;28342:32:88;;;13377:53:60;;;28324:51:88;28411:32;;28391:18;;;28384:60;28297:18;;13377:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;13352:89;13337:167;;;;-1:-1:-1;;;13337:167:60;;;;;;;:::i;:::-;13528:20;:18;:20::i;:::-;13518:6;:30;;13510:93;;;;-1:-1:-1;;;13510:93:60;;;;;;;:::i;:::-;13618:77;13636:4;13642:7;13651;13660:6;13668:8;13678:10;13690:4;13618:17;:77::i;:::-;13609:86;;13720:6;:13;;;13701:15;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:15:60;;-1:-1:-1;13766:13:60;:15::i;:::-;13747;;:34;;13739:82;;;;-1:-1:-1;;;13739:82:60;;;;;;;:::i;:::-;13839:60;;-1:-1:-1;;;13839:60:60;;-1:-1:-1;;;;;13839:11:60;:21;;;;:60;;13861:6;;13869:5;;13876:10;;13888;;13839:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13827:72;;-1:-1:-1;12439:1484:60;;;;;;;;;;:::o;2835:1074:55:-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;40020:2:88;3089:64:55;;;40002:21:88;40059:2;40039:18;;;40032:30;40098:34;40078:18;;;40071:62;-1:-1:-1;;;40149:18:88;;;40142:32;40191:19;;3089:64:55;39818:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;40423:2:88;3746:72:55;;;40405:21:88;40462:2;40442:18;;;40435:30;40501:27;40481:18;;;40474:55;40546:18;;3746:72:55;40221:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;1541:1290::-;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;40777:2:88;15338:76:46;;;40759:21:88;40816:2;40796:18;;;40789:30;40855:34;40835:18;;;40828:62;-1:-1:-1;;;40906:18:88;;;40899:36;40952:19;;15338:76:46;40575:402:88;5619:319:60;5746:15;;5728;:13;:15::i;:::-;:33;5724:106;;;5778:45;;-1:-1:-1;;;5778:45:60;;;;;;;;;;;5724:106;5839:7;;-1:-1:-1;;;;;5839:7:60;5835:63;;5877:14;;-1:-1:-1;;;5877:14:60;;;;;;;;;;;5835:63;5903:30;5925:7;5903:21;:30::i;7039:156::-;7093:7;7154:36;1140:4;7154:14;;;:36;:::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;447:696:41:-:0;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:41;-1:-1:-1;604:41:41;-1:-1:-1;765:28:41;;;781:2;765:28;820:280;-1:-1:-1;;851:5:41;-1:-1:-1;;;985:2:41;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:41;820:280;1064:21;-1:-1:-1;1120:6:41;447:696;-1:-1:-1;;;447:696:41:o;4142:306:42:-;4222:7;;-1:-1:-1;;;;;4267:80:42;;4222:7;4373:25;4389:3;4374:18;;;4396:2;4373:25;:::i;:::-;4357:42;;4416:25;4427:4;4433:1;4436;4439;4416:10;:25::i;:::-;4409:32;;;;;;4142:306;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:42;;41461:2:88;788:34:42;;;41443:21:88;41500:2;41480:18;;;41473:30;41539:26;41519:18;;;41512:54;41583:18;;788:34:42;41259:348:88;730:345:42;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:42;;41814:2:88;903:41:42;;;41796:21:88;41853:2;41833:18;;;41826:30;41892:33;41872:18;;;41865:61;41943:18;;903:41:42;41612:355:88;839:236:42;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:42;;42174:2:88;1020:44:42;;;42156:21:88;42213:2;42193:18;;;42186:30;42252:34;42232:18;;;42225:62;-1:-1:-1;;;42303:18:88;;;42296:32;42345:19;;1020:44:42;41972:398:88;1077:319:65;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;7069:325:13:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;10139:916:45:-;10192:7;;-1:-1:-1;;;10267:17:45;;10263:103;;-1:-1:-1;;;10304:17:45;;;-1:-1:-1;10349:2:45;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:45;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:45;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:45;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:45;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:45;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:45:o;5009:1456:42:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:42;;-1:-1:-1;6123:30:42;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;42797:25:88;;;42870:4;42858:17;;42838:18;;;42831:45;;;;42892:18;;;42885:34;;;42935:18;;;42928:34;;;6276:24:42;;42769:19:88;;6276:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:42;;-1:-1:-1;;6276:24:42;;;-1:-1:-1;;;;;;;6314:20:42;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:42;;-1:-1:-1;5009:1456:42;;;;;;;;:::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;43175:2:88;8124:60:13;;;43157:21:88;43214:2;43194:18;;;43187:30;43253:31;43233:18;;;43226:59;43302:18;;8124:60:13;42973:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:418;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;780:6;775:2;767:6;763:15;758:2;747:9;743:18;737:50;836:1;831:2;822:6;811:9;807:22;803:31;796:42;906:2;899;895:7;890:2;882:6;878:15;874:29;863:9;859:45;855:54;847:62;;;497:418;;;;:::o;920:226::-;979:6;1032:2;1020:9;1011:7;1007:23;1003:32;1000:52;;;1048:1;1045;1038:12;1000:52;-1:-1:-1;1093:23:88;;920:226;-1:-1:-1;920:226:88:o;1151:131::-;-1:-1:-1;;;;;1226:31:88;;1216:42;;1206:70;;1272:1;1269;1262:12;1287:247;1346:6;1399:2;1387:9;1378:7;1374:23;1370:32;1367:52;;;1415:1;1412;1405:12;1367:52;1454:9;1441:23;1473:31;1498:5;1473:31;:::i;1890:127::-;1951:10;1946:3;1942:20;1939:1;1932:31;1982:4;1979:1;1972:15;2006:4;2003:1;1996:15;2022:715;2086:5;2118:1;2142:18;2134:6;2131:30;2128:56;;;2164:18;;:::i;:::-;-1:-1:-1;2319:2:88;2313:9;-1:-1:-1;;2232:2:88;2211:15;;2207:29;;2377:2;2365:15;2361:29;2349:42;;2442:22;;;2421:18;2406:34;;2403:62;2400:88;;;2468:18;;:::i;:::-;2504:2;2497:22;2552;;;2537:6;-1:-1:-1;2537:6:88;2589:16;;;2586:25;-1:-1:-1;2583:45:88;;;2624:1;2621;2614:12;2583:45;2674:6;2669:3;2662:4;2654:6;2650:17;2637:44;2729:1;2722:4;2713:6;2705;2701:19;2697:30;2690:41;;2022:715;;;;;:::o;2742:584::-;2819:6;2827;2880:2;2868:9;2859:7;2855:23;2851:32;2848:52;;;2896:1;2893;2886:12;2848:52;2935:9;2922:23;2954:31;2979:5;2954:31;:::i;:::-;3004:5;-1:-1:-1;3060:2:88;3045:18;;3032:32;3087:18;3076:30;;3073:50;;;3119:1;3116;3109:12;3073:50;3142:22;;3195:4;3187:13;;3183:27;-1:-1:-1;3173:55:88;;3224:1;3221;3214:12;3173:55;3247:73;3312:7;3307:2;3294:16;3289:2;3285;3281:11;3247:73;:::i;:::-;3237:83;;;2742:584;;;;;:::o;3721:384::-;3816:6;3824;3868:9;3859:7;3855:23;3898:3;3894:2;3890:12;3887:32;;;3915:1;3912;3905:12;3887:32;3960:23;;;-1:-1:-1;4041:3:88;-1:-1:-1;;4023:16:88;;4019:26;4016:46;;;4058:1;4055;4048:12;4016:46;;4096:2;4085:9;4081:18;4071:28;;3721:384;;;;;:::o;4292:1193::-;4415:6;4423;4431;4439;4447;4455;4463;4516:3;4504:9;4495:7;4491:23;4487:33;4484:53;;;4533:1;4530;4523:12;4484:53;4573:9;4560:23;4606:18;4598:6;4595:30;4592:50;;;4638:1;4635;4628:12;4592:50;4661:22;;4714:4;4706:13;;4702:27;-1:-1:-1;4692:55:88;;4743:1;4740;4733:12;4692:55;4766:75;4833:7;4828:2;4815:16;4808:4;4804:2;4800:13;4766:75;:::i;:::-;4756:85;-1:-1:-1;;4910:4:88;4895:20;;4882:34;;-1:-1:-1;5013:2:88;4998:18;;4985:32;;-1:-1:-1;5116:2:88;5101:18;;5088:32;;-1:-1:-1;5219:3:88;5204:19;;5191:33;;-1:-1:-1;5323:3:88;5308:19;;5295:33;;-1:-1:-1;5406:3:88;5391:19;;5378:33;5420;5378;5420;:::i;:::-;5472:7;5462:17;;;4292:1193;;;;;;;;;;:::o;5724:165::-;5791:20;;5851:12;5840:24;;5830:35;;5820:63;;5879:1;5876;5869:12;5894:1238;6032:6;6040;6048;6056;6064;6072;6080;6088;6096;6104;6157:3;6145:9;6136:7;6132:23;6128:33;6125:53;;;6174:1;6171;6164:12;6125:53;6219:23;;;-1:-1:-1;6339:2:88;6324:18;;6311:32;;-1:-1:-1;6442:2:88;6427:18;;6414:32;;-1:-1:-1;6491:37:88;6524:2;6509:18;;6491:37;:::i;:::-;6481:47;;6580:3;6569:9;6565:19;6552:33;6594;6619:7;6594:33;:::i;:::-;6646:7;-1:-1:-1;6726:3:88;6711:19;;6698:33;;-1:-1:-1;6830:3:88;6815:19;;6802:33;;-1:-1:-1;6934:3:88;6919:19;;6906:33;;-1:-1:-1;7038:3:88;7023:19;;7010:33;;-1:-1:-1;7088:38:88;7121:3;7106:19;;7088:38;:::i;:::-;7078:48;;5894:1238;;;;;;;;;;;;;:::o;7137:159::-;7200:5;7245:3;7236:6;7231:3;7227:16;7223:26;7220:46;;;7262:1;7259;7252:12;7220:46;-1:-1:-1;7284:6:88;7137:159;-1:-1:-1;7137:159:88:o;7301:361::-;7400:6;7408;7461:3;7449:9;7440:7;7436:23;7432:33;7429:53;;;7478:1;7475;7468:12;7429:53;7501:57;7550:7;7539:9;7501:57;:::i;:::-;7491:67;7627:3;7612:19;;;;7599:33;;-1:-1:-1;;;7301:361:88:o;7667:1233::-;7836:6;7844;7852;7860;7868;7876;7884;7892;7900;7908;7961:3;7949:9;7940:7;7936:23;7932:33;7929:53;;;7978:1;7975;7968:12;7929:53;8001:57;8050:7;8039:9;8001:57;:::i;:::-;7991:67;-1:-1:-1;8127:3:88;8112:19;;8099:33;;-1:-1:-1;8229:3:88;8214:19;;8201:33;;-1:-1:-1;8333:3:88;8318:19;;8305:33;;-1:-1:-1;8383:38:88;8416:3;8401:19;;8383:38;:::i;:::-;8373:48;-1:-1:-1;8494:3:88;8479:19;;8466:33;;-1:-1:-1;8598:3:88;8583:19;;8570:33;;-1:-1:-1;8702:3:88;8687:19;;8674:33;;-1:-1:-1;8806:3:88;8791:19;;8778:33;;-1:-1:-1;8856:38:88;8889:3;8874:19;;8856:38;:::i;8905:418::-;8981:6;8989;8997;9050:2;9038:9;9029:7;9025:23;9021:32;9018:52;;;9066:1;9063;9056:12;9018:52;9111:23;;;-1:-1:-1;9231:2:88;9216:18;;9203:32;;-1:-1:-1;9280:37:88;9313:2;9298:18;;9280:37;:::i;:::-;9270:47;;8905:418;;;;;:::o;9328:539::-;9413:6;9421;9429;9437;9490:3;9478:9;9469:7;9465:23;9461:33;9458:53;;;9507:1;9504;9497:12;9458:53;9552:23;;;-1:-1:-1;9672:2:88;9657:18;;9644:32;;-1:-1:-1;9721:37:88;9754:2;9739:18;;9721:37;:::i;:::-;9328:539;;;;-1:-1:-1;9711:47:88;;9831:2;9816:18;9803:32;;-1:-1:-1;;9328:539:88:o;9872:392::-;9955:6;9963;10016:2;10004:9;9995:7;9991:23;9987:32;9984:52;;;10032:1;10029;10022:12;9984:52;10071:9;10058:23;10110:2;10103:5;10100:13;10090:41;;10127:1;10124;10117:12;10090:41;10150:5;10228:2;10213:18;;;;10200:32;;-1:-1:-1;;;9872:392:88:o;11118:380::-;11197:1;11193:12;;;;11240;;;11261:61;;11315:4;11307:6;11303:17;11293:27;;11261:61;11368:2;11360:6;11357:14;11337:18;11334:38;11331:161;;11414:10;11409:3;11405:20;11402:1;11395:31;11449:4;11446:1;11439:15;11477:4;11474:1;11467:15;11503:275;11597:6;11650:2;11638:9;11629:7;11625:23;11621:32;11618:52;;;11666:1;11663;11656:12;11618:52;11698:9;11692:16;11717:31;11742:5;11717:31;:::i;11783:525::-;-1:-1:-1;;;;;12054:32:88;;;12036:51;;12118:2;12103:18;;12096:34;;;;12161:2;12146:18;;12139:34;;;;12209:32;;;12204:2;12189:18;;12182:60;12286:14;;12279:22;12273:3;12258:19;;12251:51;12023:3;12008:19;;11783:525::o;12313:408::-;12515:2;12497:21;;;12554:2;12534:18;;;12527:30;12593:34;12588:2;12573:18;;12566:62;-1:-1:-1;;;12659:2:88;12644:18;;12637:42;12711:3;12696:19;;12313:408::o;12726:::-;12928:2;12910:21;;;12967:2;12947:18;;;12940:30;13006:34;13001:2;12986:18;;12979:62;-1:-1:-1;;;13072:2:88;13057:18;;13050:42;13124:3;13109:19;;12726:408::o;14591:127::-;14652:10;14647:3;14643:20;14640:1;14633:31;14683:4;14680:1;14673:15;14707:4;14704:1;14697:15;14723:128;14790:9;;;14811:11;;;14808:37;;;14825:18;;:::i;15470:453::-;-1:-1:-1;;;;;15713:32:88;;;15695:51;;15777:2;15762:18;;15755:34;;;;15825:32;;15820:2;15805:18;;15798:60;15901:14;;15894:22;15889:2;15874:18;;15867:50;15682:3;15667:19;;15470:453::o;15928:147::-;16009:20;;16038:31;16009:20;16038:31;:::i;16181:1739::-;16290:19;;16318:20;;16407:4;16396:16;;;16383:30;16429:14;;;16422:31;16522:4;16511:16;;;16498:30;16544:14;;;16537:31;16637:4;16626:16;;;16613:30;16659:14;;;16652:31;16752:4;16741:16;;;16728:30;16774:14;;;16767:31;16867:4;16856:16;;;16843:30;16889:14;;;16882:31;16982:4;16971:16;;;16958:30;17004:14;;;16997:31;17097:4;17086:16;;;17073:30;17119:14;;;17112:31;17212:6;17201:18;;;17188:32;17236:16;;;17229:33;17333:6;17322:18;;;17309:32;17357:16;;;17350:34;17455:6;17444:18;;;17431:32;17479:16;;;17472:34;17535:51;17578:6;17567:18;;17535:51;:::i;:::-;-1:-1:-1;;;;;1618:31:88;17650:6;17641:16;;1606:44;17689:37;17718:6;17707:18;;17689:37;:::i;:::-;16156:12;16145:24;17778:6;17769:16;;16133:37;17817;17846:6;17835:18;;17817:37;:::i;:::-;16156:12;16145:24;;17906:6;17897:16;;16133:37;3206:169:57;;;:::o;17925:341:88:-;18147:3;18132:19;;18160:56;18136:9;18198:6;18160:56;:::i;:::-;18253:6;18247:3;18236:9;18232:19;18225:35;17925:341;;;;;:::o;18271:127::-;18332:10;18327:3;18323:20;18320:1;18313:31;18363:4;18360:1;18353:15;18387:4;18384:1;18377:15;19179:125;19244:9;;;19265:10;;;19262:36;;;19278:18;;:::i;19588:184::-;19658:6;19711:2;19699:9;19690:7;19686:23;19682:32;19679:52;;;19727:1;19724;19717:12;19679:52;-1:-1:-1;19750:16:88;;19588:184;-1:-1:-1;19588:184:88:o;20602:127::-;20663:10;20658:3;20654:20;20651:1;20644:31;20694:4;20691:1;20684:15;20718:4;20715:1;20708:15;20734:120;20774:1;20800;20790:35;;20805:18;;:::i;:::-;-1:-1:-1;20839:9:88;;20734:120::o;24456:407::-;24658:2;24640:21;;;24697:2;24677:18;;;24670:30;24736:34;24731:2;24716:18;;24709:62;-1:-1:-1;;;24802:2:88;24787:18;;24780:41;24853:3;24838:19;;24456:407::o;25981:112::-;26013:1;26039;26029:35;;26044:18;;:::i;:::-;-1:-1:-1;26078:9:88;;25981:112::o;26098:184::-;26156:6;26209:2;26197:9;26188:7;26184:23;26180:32;26177:52;;;26225:1;26222;26215:12;26177:52;26248:28;26266:9;26248:28;:::i;27426:176::-;27525:12;27518:20;;;27496;;;27492:47;;27551:22;;27548:48;;;27576:18;;:::i;27607:182::-;27646:1;27680:12;27677:1;27673:20;27712:3;27702:37;;27719:18;;:::i;:::-;27779:3;27764:12;27761:1;27757:20;27753:30;27748:35;;;27607:182;;;;:::o;28644:409::-;28846:2;28828:21;;;28885:2;28865:18;;;28858:30;28924:34;28919:2;28904:18;;28897:62;-1:-1:-1;;;28990:2:88;28975:18;;28968:43;29043:3;29028:19;;28644:409::o;29058:411::-;29260:2;29242:21;;;29299:2;29279:18;;;29272:30;29338:34;29333:2;29318:18;;29311:62;-1:-1:-1;;;29404:2:88;29389:18;;29382:45;29459:3;29444:19;;29058:411::o;29474:414::-;29676:2;29658:21;;;29715:2;29695:18;;;29688:30;29754:34;29749:2;29734:18;;29727:62;-1:-1:-1;;;29820:2:88;29805:18;;29798:48;29878:3;29863:19;;29474:414::o;29893:399::-;30095:2;30077:21;;;30134:2;30114:18;;;30107:30;30173:34;30168:2;30153:18;;30146:62;-1:-1:-1;;;30239:2:88;30224:18;;30217:33;30282:3;30267:19;;29893:399::o;30297:1025::-;30379:5;30373:12;30368:3;30361:25;30435:4;30428:5;30424:16;30418:23;30411:4;30406:3;30402:14;30395:47;30491:4;30484:5;30480:16;30474:23;30467:4;30462:3;30458:14;30451:47;30547:4;30540:5;30536:16;30530:23;30523:4;30518:3;30514:14;30507:47;30603:4;30596:5;30592:16;30586:23;30579:4;30574:3;30570:14;30563:47;30659:4;30652:5;30648:16;30642:23;30635:4;30630:3;30626:14;30619:47;30715:4;30708:5;30704:16;30698:23;30691:4;30686:3;30682:14;30675:47;30771:4;30764:5;30760:16;30754:23;30747:4;30742:3;30738:14;30731:47;30829:6;30822:5;30818:18;30812:25;30803:6;30798:3;30794:16;30787:51;30889:6;30882:5;30878:18;30872:25;30863:6;30858:3;30854:16;30847:51;30949:6;30942:5;30938:18;30932:25;30923:6;30918:3;30914:16;30907:51;31004:6;30997:5;30993:18;30987:25;31021:63;31076:6;31071:3;31067:16;31053:12;-1:-1:-1;;;;;1618:31:88;1606:44;;1539:117;31021:63;;31132:6;31125:5;31121:18;31115:25;31149:51;31192:6;31187:3;31183:16;31167:14;16156:12;16145:24;16133:37;;16080:96;31149:51;;31248:6;31241:5;31237:18;31231:25;31265:51;31308:6;31303:3;31299:16;31283:14;16156:12;16145:24;16133:37;;16080:96;31327:622;31661:3;31646:19;;31674:56;31650:9;31712:6;31674:56;:::i;:::-;31739:57;31791:3;31780:9;31776:19;31768:6;31739:57;:::i;:::-;-1:-1:-1;;;;;31833:32:88;;;;31827:3;31812:19;;31805:61;31915:26;31903:39;;;;31897:3;31882:19;;;31875:68;31327:622;;-1:-1:-1;;31327:622:88:o;31954:273::-;32022:6;32075:2;32063:9;32054:7;32050:23;32046:32;32043:52;;;32091:1;32088;32081:12;32043:52;32123:9;32117:16;32173:4;32166:5;32162:16;32155:5;32152:27;32142:55;;32193:1;32190;32183:12;32232:151;32322:4;32315:12;;;32301;;;32297:31;;32340:14;;32337:40;;;32357:18;;:::i;32388:375::-;32476:1;32494:5;32508:249;32529:1;32519:8;32516:15;32508:249;;;32579:4;32574:3;32570:14;32564:4;32561:24;32558:50;;;32588:18;;:::i;:::-;32638:1;32628:8;32624:16;32621:49;;;32652:16;;;;32621:49;32735:1;32731:16;;;;;32691:15;;32508:249;;32768:902;32817:5;32847:8;32837:80;;-1:-1:-1;32888:1:88;32902:5;;32837:80;32936:4;32926:76;;-1:-1:-1;32973:1:88;32987:5;;32926:76;33018:4;33036:1;33031:59;;;;33104:1;33099:174;;;;33011:262;;33031:59;33061:1;33052:10;;33075:5;;;33099:174;33136:3;33126:8;33123:17;33120:43;;;33143:18;;:::i;:::-;-1:-1:-1;;33199:1:88;33185:16;;33258:5;;33011:262;;33357:2;33347:8;33344:16;33338:3;33332:4;33329:13;33325:36;33319:2;33309:8;33306:16;33301:2;33295:4;33292:12;33288:35;33285:77;33282:203;;;-1:-1:-1;33394:19:88;;;33470:5;;33282:203;33517:42;-1:-1:-1;;33542:8:88;33536:4;33517:42;:::i;:::-;33595:6;33591:1;33587:6;33583:19;33574:7;33571:32;33568:58;;;33606:18;;:::i;:::-;33644:20;;32768:902;-1:-1:-1;;;32768:902:88:o;33675:140::-;33733:5;33762:47;33803:4;33793:8;33789:19;33783:4;33762:47;:::i;33820:168::-;33893:9;;;33924;;33941:15;;;33935:22;;33921:37;33911:71;;33962:18;;:::i;33993:277::-;34060:6;34113:2;34101:9;34092:7;34088:23;34084:32;34081:52;;;34129:1;34126;34119:12;34081:52;34161:9;34155:16;34214:5;34207:13;34200:21;34193:5;34190:32;34180:60;;34236:1;34233;34226:12;35853:518;35955:2;35950:3;35947:11;35944:421;;;35991:5;35988:1;35981:16;36035:4;36032:1;36022:18;36105:2;36093:10;36089:19;36086:1;36082:27;36076:4;36072:38;36141:4;36129:10;36126:20;36123:47;;;-1:-1:-1;36164:4:88;36123:47;36219:2;36214:3;36210:12;36207:1;36203:20;36197:4;36193:31;36183:41;;36274:81;36292:2;36285:5;36282:13;36274:81;;;36351:1;36337:16;;36318:1;36307:13;36274:81;;;36278:3;;35853:518;;;:::o;36547:1299::-;36673:3;36667:10;36700:18;36692:6;36689:30;36686:56;;;36722:18;;:::i;:::-;36751:97;36841:6;36801:38;36833:4;36827:11;36801:38;:::i;:::-;36795:4;36751:97;:::i;:::-;36897:4;36928:2;36917:14;;36945:1;36940:649;;;;37633:1;37650:6;37647:89;;;-1:-1:-1;37702:19:88;;;37696:26;37647:89;-1:-1:-1;;36504:1:88;36500:11;;;36496:24;36492:29;36482:40;36528:1;36524:11;;;36479:57;37749:81;;36910:930;;36940:649;35800:1;35793:14;;;35837:4;35824:18;;-1:-1:-1;;36976:20:88;;;37094:222;37108:7;37105:1;37102:14;37094:222;;;37190:19;;;37184:26;37169:42;;37297:4;37282:20;;;;37250:1;37238:14;;;;37124:12;37094:222;;;37098:3;37344:6;37335:7;37332:19;37329:201;;;37405:19;;;37399:26;-1:-1:-1;;37488:1:88;37484:14;;;37500:3;37480:24;37476:37;37472:42;37457:58;37442:74;;37329:201;-1:-1:-1;;;;37576:1:88;37560:14;;;37556:22;37543:36;;-1:-1:-1;36547:1299:88:o;37851:212::-;37893:3;37931:5;37925:12;37975:6;37968:4;37961:5;37957:16;37952:3;37946:36;38037:1;38001:16;;38026:13;;;-1:-1:-1;38001:16:88;;37851:212;-1:-1:-1;37851:212:88:o;38068:463::-;38376:66;38371:3;38364:79;38346:3;38459:66;38485:39;38520:2;38515:3;38511:12;38503:6;38485:39;:::i;:::-;38477:6;38459:66;:::i;39256:557::-;39530:3;39515:19;;39543:47;39519:9;39572:6;39543:47;:::i;:::-;-1:-1:-1;;;;;39627:32:88;;;39621:3;39606:19;;39599:61;39697:32;;;;39691:3;39676:19;;39669:61;39779:26;39767:39;39761:3;39746:19;;;39739:68;;;;39256:557;;-1:-1:-1;39256:557:88:o;42375:190::-;42504:3;42529:30;42555:3;42547:6;42529:30;:::i"},"methodIdentifiers":{"activeExposure()":"7ff8bf25","bucketParams(uint256)":"ceddac6f","currency()":"e5a6b10f","deleteBucket(uint256)":"18e26bb9","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","getMinimumPremiumForBucket(uint256,uint256,uint40,uint256)":"b9b28f2a","initialize(string,uint256,uint256,uint256,uint256,uint256,address)":"6f0dbe6f","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","newPolicy(uint256,uint256,uint256,uint40,address,bytes32,uint256,bytes32,bytes32,uint40)":"766dbc56","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40)":"82ff9c8c","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","setBucketParams(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))":"571e8bcc","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"premiumsAccount_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BucketCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BucketNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"BucketDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"NewBucket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"}],\"name\":\"NewSignedPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"bucketParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params_\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"deleteBucket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"}],\"name\":\"getMinimumPremiumForBucket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"collRatio_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayoutPerPolicy_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exposureLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bucketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"params_\",\"type\":\"tuple\"}],\"name\":\"setBucketParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Risk Module that for policy creation verifies the different components of the price have been signed by a trusted account (PRICER_ROLE). One of the components of the price is a bucket id that groups policies within a risk module, with different parameters (such as collaterallization levels or fees). For the resolution (resolvePolicy), it has to be called by an authorized user\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"BucketDeleted(uint256)\":{\"details\":\"Emitted when a risk bucket is deleted.\",\"params\":{\"bucketId\":\"The identifier of the group of policies.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NewBucket(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))\":{\"details\":\"Emitted when a new risk bucket is created (or modified).\",\"params\":{\"bucketId\":\"The identifier of the group of policies.\",\"params\":\"The packed parameters of the new bucket.\"}},\"NewSignedPolicy(uint256,bytes32)\":{\"details\":\"Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\",\"params\":{\"policyData\":\"The value sent in `policyData` parameter that's the hash of the off-chain stored data.\",\"policyId\":\"The id of the policy\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"bucketParams(uint256)\":{\"details\":\"returns the risk bucket parameters for the given bucketId\",\"params\":{\"bucketId\":\"Id of the bucket or 0 if you want the default params\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deleteBucket(uint256)\":{\"details\":\"Deletes a bucket Requirements: - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\",\"params\":{\"bucketId\":\"Group identifier for the policies that will have these parameters\"}},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"getMinimumPremiumForBucket(uint256,uint256,uint40,uint256)\":{\"details\":\"Returns the minimum premium for a given bucket\",\"params\":{\"bucketId\":\"Id of the bucket of 0 if you want the default params\",\"expiration\":\"Expiration date of the policy\",\"lossProb\":\"Probability of having a loss equal to the maximum payout\",\"payout\":\"Maximum payout of the policy\"}},\"initialize(string,uint256,uint256,uint256,uint256,uint256,address)\":{\"details\":\"Initializes the RiskModule\",\"params\":{\"collRatio_\":\"Collateralization ratio to compute solvency requirement as % of payout (in ray)\",\"ensuroPpFee_\":\"% of pure premium that will go for Ensuro treasury (in ray)\",\"exposureLimit_\":\"Max exposure (sum of payouts) to be allocated to this module (in wad)\",\"maxPayoutPerPolicy_\":\"Maximum payout per policy (in wad)\",\"name_\":\"Name of the Risk Module\",\"srRoc_\":\"return on capital paid to Senior LPs (annualized percentage - in ray)\",\"wallet_\":\"Address of the RiskModule provider\"}},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"newPolicy(uint256,uint256,uint256,uint40,address,bytes32,uint256,bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a signed quote. The caller is the payer of the policy. Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE Emits: - {PolicyPool.NewPolicy} - {NewSignedPolicy}\",\"params\":{\"bucketId\":\"Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\",\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,bytes32,uint256,bytes32,bytes32,uint40)\":{\"details\":\"Replace a policy with a new one, reusing the premium and the capital locked Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE - The caller has been granted component role REPLACER_ROLE or creation is open Emits: - {PolicyPool.PolicyReplaced} - {PolicyPool.NewPolicy}\",\"params\":{\"bucketId\":\"Identifies the group to which the policy belongs (that defines the RM parameters applicable to it)\",\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"oldPolicy\":\"The policy to be replaced\",\"payout\":\"The exposure (maximum payout) of the new policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the caller\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"setBucketParams(uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))\":{\"details\":\"Sets the parameters for a risk bucket. Requirements: - The caller must have the LEVEL1_ROLE or LEVEL2_ROLE\",\"params\":{\"bucketId\":\"Group identifier for the policies that will have these parameters\",\"params_\":\"The parameters of the new bucket.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"SignedBucket Risk Module\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SignedBucketRiskModule.sol\":\"SignedBucketRiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/SignedBucketRiskModule.sol\":{\"keccak256\":\"0x4f7fb334b302a89d9700519d66d5c699700d003fb67eb756ed4d0b446f70d62b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d0c65f019af158d80832fa3ae824521d020d826d12930dbfabefb3b750f891eb\",\"dweb:/ipfs/QmQ5GaCQGy8SDVdRtsEEz5mZx5LmseEzC2tYvX6zKcKAXh\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"},{"astId":21506,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"_buckets","offset":0,"slot":"301","type":"t_mapping(t_uint256,t_struct(PackedParams)20220_storage)"},{"astId":22035,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"__gap","offset":0,"slot":"302","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_uint256,t_struct(PackedParams)20220_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct RiskModule.PackedParams)","numberOfBytes":"32","value":"t_struct(PackedParams)20220_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/SignedBucketRiskModule.sol:SignedBucketRiskModule","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/SignedQuoteRiskModule.sol":{"SignedQuoteRiskModule":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IPremiumsAccount","name":"premiumsAccount_","type":"address"},{"internalType":"bool","name":"creationIsOpen_","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"QuoteExpired","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"policyData","type":"bytes32"}],"name":"NewSignedPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"POLICY_CREATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESOLVER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"uint256","name":"collRatio_","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee_","type":"uint256"},{"internalType":"uint256","name":"srRoc_","type":"uint256"},{"internalType":"uint256","name":"maxPayoutPerPolicy_","type":"uint256"},{"internalType":"uint256","name":"exposureLimit_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicyFull","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"createdPolicy","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"bytes32","name":"policyData","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureR","type":"bytes32"},{"internalType":"bytes32","name":"quoteSignatureVS","type":"bytes32"},{"internalType":"uint40","name":"quoteValidUntil","type":"uint40"}],"name":"newPolicyPaidByHolder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"bool","name":"customerWon","type":"bool"}],"name":"resolvePolicyFullPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_20268":{"entryPoint":null,"id":20268,"parameterSlots":2,"returnSlots":0},"@_22099":{"entryPoint":null,"id":22099,"parameterSlots":3,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":299,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":588,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886t_bool_fromMemory":{"entryPoint":510,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IPolicyPool":{"entryPoint":487,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1672:88","nodeType":"YulBlock","src":"0:1672:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"322:461:88","nodeType":"YulBlock","src":"322:461:88","statements":[{"body":{"nativeSrc":"368:16:88","nodeType":"YulBlock","src":"368:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"377:1:88","nodeType":"YulLiteral","src":"377:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"380:1:88","nodeType":"YulLiteral","src":"380:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"370:6:88","nodeType":"YulIdentifier","src":"370:6:88"},"nativeSrc":"370:12:88","nodeType":"YulFunctionCall","src":"370:12:88"},"nativeSrc":"370:12:88","nodeType":"YulExpressionStatement","src":"370:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"343:7:88","nodeType":"YulIdentifier","src":"343:7:88"},{"name":"headStart","nativeSrc":"352:9:88","nodeType":"YulIdentifier","src":"352:9:88"}],"functionName":{"name":"sub","nativeSrc":"339:3:88","nodeType":"YulIdentifier","src":"339:3:88"},"nativeSrc":"339:23:88","nodeType":"YulFunctionCall","src":"339:23:88"},{"kind":"number","nativeSrc":"364:2:88","nodeType":"YulLiteral","src":"364:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"335:3:88","nodeType":"YulIdentifier","src":"335:3:88"},"nativeSrc":"335:32:88","nodeType":"YulFunctionCall","src":"335:32:88"},"nativeSrc":"332:52:88","nodeType":"YulIf","src":"332:52:88"},{"nativeSrc":"393:29:88","nodeType":"YulVariableDeclaration","src":"393:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"412:9:88","nodeType":"YulIdentifier","src":"412:9:88"}],"functionName":{"name":"mload","nativeSrc":"406:5:88","nodeType":"YulIdentifier","src":"406:5:88"},"nativeSrc":"406:16:88","nodeType":"YulFunctionCall","src":"406:16:88"},"variables":[{"name":"value","nativeSrc":"397:5:88","nodeType":"YulTypedName","src":"397:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"469:5:88","nodeType":"YulIdentifier","src":"469:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"431:37:88","nodeType":"YulIdentifier","src":"431:37:88"},"nativeSrc":"431:44:88","nodeType":"YulFunctionCall","src":"431:44:88"},"nativeSrc":"431:44:88","nodeType":"YulExpressionStatement","src":"431:44:88"},{"nativeSrc":"484:15:88","nodeType":"YulAssignment","src":"484:15:88","value":{"name":"value","nativeSrc":"494:5:88","nodeType":"YulIdentifier","src":"494:5:88"},"variableNames":[{"name":"value0","nativeSrc":"484:6:88","nodeType":"YulIdentifier","src":"484:6:88"}]},{"nativeSrc":"508:40:88","nodeType":"YulVariableDeclaration","src":"508:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"533:9:88","nodeType":"YulIdentifier","src":"533:9:88"},{"kind":"number","nativeSrc":"544:2:88","nodeType":"YulLiteral","src":"544:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"529:3:88","nodeType":"YulIdentifier","src":"529:3:88"},"nativeSrc":"529:18:88","nodeType":"YulFunctionCall","src":"529:18:88"}],"functionName":{"name":"mload","nativeSrc":"523:5:88","nodeType":"YulIdentifier","src":"523:5:88"},"nativeSrc":"523:25:88","nodeType":"YulFunctionCall","src":"523:25:88"},"variables":[{"name":"value_1","nativeSrc":"512:7:88","nodeType":"YulTypedName","src":"512:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"595:7:88","nodeType":"YulIdentifier","src":"595:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"557:37:88","nodeType":"YulIdentifier","src":"557:37:88"},"nativeSrc":"557:46:88","nodeType":"YulFunctionCall","src":"557:46:88"},"nativeSrc":"557:46:88","nodeType":"YulExpressionStatement","src":"557:46:88"},{"nativeSrc":"612:17:88","nodeType":"YulAssignment","src":"612:17:88","value":{"name":"value_1","nativeSrc":"622:7:88","nodeType":"YulIdentifier","src":"622:7:88"},"variableNames":[{"name":"value1","nativeSrc":"612:6:88","nodeType":"YulIdentifier","src":"612:6:88"}]},{"nativeSrc":"638:40:88","nodeType":"YulVariableDeclaration","src":"638:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"663:9:88","nodeType":"YulIdentifier","src":"663:9:88"},{"kind":"number","nativeSrc":"674:2:88","nodeType":"YulLiteral","src":"674:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"659:3:88","nodeType":"YulIdentifier","src":"659:3:88"},"nativeSrc":"659:18:88","nodeType":"YulFunctionCall","src":"659:18:88"}],"functionName":{"name":"mload","nativeSrc":"653:5:88","nodeType":"YulIdentifier","src":"653:5:88"},"nativeSrc":"653:25:88","nodeType":"YulFunctionCall","src":"653:25:88"},"variables":[{"name":"value_2","nativeSrc":"642:7:88","nodeType":"YulTypedName","src":"642:7:88","type":""}]},{"body":{"nativeSrc":"735:16:88","nodeType":"YulBlock","src":"735:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"744:1:88","nodeType":"YulLiteral","src":"744:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"747:1:88","nodeType":"YulLiteral","src":"747:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"737:6:88","nodeType":"YulIdentifier","src":"737:6:88"},"nativeSrc":"737:12:88","nodeType":"YulFunctionCall","src":"737:12:88"},"nativeSrc":"737:12:88","nodeType":"YulExpressionStatement","src":"737:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nativeSrc":"700:7:88","nodeType":"YulIdentifier","src":"700:7:88"},{"arguments":[{"arguments":[{"name":"value_2","nativeSrc":"723:7:88","nodeType":"YulIdentifier","src":"723:7:88"}],"functionName":{"name":"iszero","nativeSrc":"716:6:88","nodeType":"YulIdentifier","src":"716:6:88"},"nativeSrc":"716:15:88","nodeType":"YulFunctionCall","src":"716:15:88"}],"functionName":{"name":"iszero","nativeSrc":"709:6:88","nodeType":"YulIdentifier","src":"709:6:88"},"nativeSrc":"709:23:88","nodeType":"YulFunctionCall","src":"709:23:88"}],"functionName":{"name":"eq","nativeSrc":"697:2:88","nodeType":"YulIdentifier","src":"697:2:88"},"nativeSrc":"697:36:88","nodeType":"YulFunctionCall","src":"697:36:88"}],"functionName":{"name":"iszero","nativeSrc":"690:6:88","nodeType":"YulIdentifier","src":"690:6:88"},"nativeSrc":"690:44:88","nodeType":"YulFunctionCall","src":"690:44:88"},"nativeSrc":"687:64:88","nodeType":"YulIf","src":"687:64:88"},{"nativeSrc":"760:17:88","nodeType":"YulAssignment","src":"760:17:88","value":{"name":"value_2","nativeSrc":"770:7:88","nodeType":"YulIdentifier","src":"770:7:88"},"variableNames":[{"name":"value2","nativeSrc":"760:6:88","nodeType":"YulIdentifier","src":"760:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886t_bool_fromMemory","nativeSrc":"163:620:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"272:9:88","nodeType":"YulTypedName","src":"272:9:88","type":""},{"name":"dataEnd","nativeSrc":"283:7:88","nodeType":"YulTypedName","src":"283:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"295:6:88","nodeType":"YulTypedName","src":"295:6:88","type":""},{"name":"value1","nativeSrc":"303:6:88","nodeType":"YulTypedName","src":"303:6:88","type":""},{"name":"value2","nativeSrc":"311:6:88","nodeType":"YulTypedName","src":"311:6:88","type":""}],"src":"163:620:88"},{"body":{"nativeSrc":"890:183:88","nodeType":"YulBlock","src":"890:183:88","statements":[{"body":{"nativeSrc":"936:16:88","nodeType":"YulBlock","src":"936:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"945:1:88","nodeType":"YulLiteral","src":"945:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"948:1:88","nodeType":"YulLiteral","src":"948:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"938:6:88","nodeType":"YulIdentifier","src":"938:6:88"},"nativeSrc":"938:12:88","nodeType":"YulFunctionCall","src":"938:12:88"},"nativeSrc":"938:12:88","nodeType":"YulExpressionStatement","src":"938:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"911:7:88","nodeType":"YulIdentifier","src":"911:7:88"},{"name":"headStart","nativeSrc":"920:9:88","nodeType":"YulIdentifier","src":"920:9:88"}],"functionName":{"name":"sub","nativeSrc":"907:3:88","nodeType":"YulIdentifier","src":"907:3:88"},"nativeSrc":"907:23:88","nodeType":"YulFunctionCall","src":"907:23:88"},{"kind":"number","nativeSrc":"932:2:88","nodeType":"YulLiteral","src":"932:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"903:3:88","nodeType":"YulIdentifier","src":"903:3:88"},"nativeSrc":"903:32:88","nodeType":"YulFunctionCall","src":"903:32:88"},"nativeSrc":"900:52:88","nodeType":"YulIf","src":"900:52:88"},{"nativeSrc":"961:29:88","nodeType":"YulVariableDeclaration","src":"961:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"980:9:88","nodeType":"YulIdentifier","src":"980:9:88"}],"functionName":{"name":"mload","nativeSrc":"974:5:88","nodeType":"YulIdentifier","src":"974:5:88"},"nativeSrc":"974:16:88","nodeType":"YulFunctionCall","src":"974:16:88"},"variables":[{"name":"value","nativeSrc":"965:5:88","nodeType":"YulTypedName","src":"965:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1037:5:88","nodeType":"YulIdentifier","src":"1037:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"999:37:88","nodeType":"YulIdentifier","src":"999:37:88"},"nativeSrc":"999:44:88","nodeType":"YulFunctionCall","src":"999:44:88"},"nativeSrc":"999:44:88","nodeType":"YulExpressionStatement","src":"999:44:88"},{"nativeSrc":"1052:15:88","nodeType":"YulAssignment","src":"1052:15:88","value":{"name":"value","nativeSrc":"1062:5:88","nodeType":"YulIdentifier","src":"1062:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1052:6:88","nodeType":"YulIdentifier","src":"1052:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"788:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"856:9:88","nodeType":"YulTypedName","src":"856:9:88","type":""},{"name":"dataEnd","nativeSrc":"867:7:88","nodeType":"YulTypedName","src":"867:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"879:6:88","nodeType":"YulTypedName","src":"879:6:88","type":""}],"src":"788:285:88"},{"body":{"nativeSrc":"1252:229:88","nodeType":"YulBlock","src":"1252:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1269:9:88","nodeType":"YulIdentifier","src":"1269:9:88"},{"kind":"number","nativeSrc":"1280:2:88","nodeType":"YulLiteral","src":"1280:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1262:6:88","nodeType":"YulIdentifier","src":"1262:6:88"},"nativeSrc":"1262:21:88","nodeType":"YulFunctionCall","src":"1262:21:88"},"nativeSrc":"1262:21:88","nodeType":"YulExpressionStatement","src":"1262:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1303:9:88","nodeType":"YulIdentifier","src":"1303:9:88"},{"kind":"number","nativeSrc":"1314:2:88","nodeType":"YulLiteral","src":"1314:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1299:3:88","nodeType":"YulIdentifier","src":"1299:3:88"},"nativeSrc":"1299:18:88","nodeType":"YulFunctionCall","src":"1299:18:88"},{"kind":"number","nativeSrc":"1319:2:88","nodeType":"YulLiteral","src":"1319:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"1292:6:88","nodeType":"YulIdentifier","src":"1292:6:88"},"nativeSrc":"1292:30:88","nodeType":"YulFunctionCall","src":"1292:30:88"},"nativeSrc":"1292:30:88","nodeType":"YulExpressionStatement","src":"1292:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1342:9:88","nodeType":"YulIdentifier","src":"1342:9:88"},{"kind":"number","nativeSrc":"1353:2:88","nodeType":"YulLiteral","src":"1353:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1338:3:88","nodeType":"YulIdentifier","src":"1338:3:88"},"nativeSrc":"1338:18:88","nodeType":"YulFunctionCall","src":"1338:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1358:34:88","nodeType":"YulLiteral","src":"1358:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1331:6:88","nodeType":"YulIdentifier","src":"1331:6:88"},"nativeSrc":"1331:62:88","nodeType":"YulFunctionCall","src":"1331:62:88"},"nativeSrc":"1331:62:88","nodeType":"YulExpressionStatement","src":"1331:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1413:9:88","nodeType":"YulIdentifier","src":"1413:9:88"},{"kind":"number","nativeSrc":"1424:2:88","nodeType":"YulLiteral","src":"1424:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1409:3:88","nodeType":"YulIdentifier","src":"1409:3:88"},"nativeSrc":"1409:18:88","nodeType":"YulFunctionCall","src":"1409:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1429:9:88","nodeType":"YulLiteral","src":"1429:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1402:6:88","nodeType":"YulIdentifier","src":"1402:6:88"},"nativeSrc":"1402:37:88","nodeType":"YulFunctionCall","src":"1402:37:88"},"nativeSrc":"1402:37:88","nodeType":"YulExpressionStatement","src":"1402:37:88"},{"nativeSrc":"1448:27:88","nodeType":"YulAssignment","src":"1448:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1460:9:88","nodeType":"YulIdentifier","src":"1460:9:88"},{"kind":"number","nativeSrc":"1471:3:88","nodeType":"YulLiteral","src":"1471:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1456:3:88","nodeType":"YulIdentifier","src":"1456:3:88"},"nativeSrc":"1456:19:88","nodeType":"YulFunctionCall","src":"1456:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1448:4:88","nodeType":"YulIdentifier","src":"1448:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1078:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1229:9:88","nodeType":"YulTypedName","src":"1229:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1243:4:88","nodeType":"YulTypedName","src":"1243:4:88","type":""}],"src":"1078:403:88"},{"body":{"nativeSrc":"1583:87:88","nodeType":"YulBlock","src":"1583:87:88","statements":[{"nativeSrc":"1593:26:88","nodeType":"YulAssignment","src":"1593:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1605:9:88","nodeType":"YulIdentifier","src":"1605:9:88"},{"kind":"number","nativeSrc":"1616:2:88","nodeType":"YulLiteral","src":"1616:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1601:3:88","nodeType":"YulIdentifier","src":"1601:3:88"},"nativeSrc":"1601:18:88","nodeType":"YulFunctionCall","src":"1601:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1593:4:88","nodeType":"YulIdentifier","src":"1593:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1635:9:88","nodeType":"YulIdentifier","src":"1635:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1650:6:88","nodeType":"YulIdentifier","src":"1650:6:88"},{"kind":"number","nativeSrc":"1658:4:88","nodeType":"YulLiteral","src":"1658:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1646:3:88","nodeType":"YulIdentifier","src":"1646:3:88"},"nativeSrc":"1646:17:88","nodeType":"YulFunctionCall","src":"1646:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1628:6:88","nodeType":"YulIdentifier","src":"1628:6:88"},"nativeSrc":"1628:36:88","nodeType":"YulFunctionCall","src":"1628:36:88"},"nativeSrc":"1628:36:88","nodeType":"YulExpressionStatement","src":"1628:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1486:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1552:9:88","nodeType":"YulTypedName","src":"1552:9:88","type":""},{"name":"value0","nativeSrc":"1563:6:88","nodeType":"YulTypedName","src":"1563:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1574:4:88","nodeType":"YulTypedName","src":"1574:4:88","type":""}],"src":"1486:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        if iszero(eq(value_2, iszero(iszero(value_2)))) { revert(0, 0) }\n        value2 := value_2\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"61010060405230608052348015610014575f5ffd5b50604051614ca6380380614ca6833981016040819052610033916101fe565b8282816001600160a01b03811661005d57604051636b23cf0160e01b815260040160405180910390fd5b61006561012b565b806001600160a01b031660a0816001600160a01b03168152505050816001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ea919061024c565b6001600160a01b0316146101115760405163fec343d560e01b815260040160405180910390fd5b6001600160a01b031660c05250151560e0525061026e9050565b5f54610100900460ff16156101965760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101e5575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101fb575f5ffd5b50565b5f5f5f60608486031215610210575f5ffd5b835161021b816101e7565b602085015190935061022c816101e7565b60408501519092508015158114610241575f5ffd5b809150509250925092565b5f6020828403121561025c575f5ffd5b8151610267816101e7565b9392505050565b60805160a05160c05160e05161495d6103495f395f6119a601525f818161040a015261248a01525f81816102ed0152818161082801528181610bb101528181610d4c01528181610e4601528181610ed2015281816110260152818161161a0152818161174a015281816117eb015281816118e8015281816119cb01528181611b6501528181611cfa0152818161217901528181612efb01528181612f980152818161308401528181613300015261338c01525f81816106ec015281816107350152818161091c0152818161095c01526109e9015261495d5ff3fe6080604052600436106101c5575f3560e01c80636f0dbe6f116100f25780638bac3a2411610092578063deaa59df11610062578063deaa59df14610577578063e5a6b10f14610596578063fbb81279146105aa578063ffa600e3146105dd575f5ffd5b80638bac3a24146104bc578063c1cca2b3146104db578063cfd4c606146104fa578063cff0ab961461050e575f5ffd5b80637a702b3c116100cd5780637a702b3c146104615780637ff8bf25146104805780638456cb591461049457806385272a6e146104a8575f5ffd5b80636f0dbe6f146103dd57806373a952e8146103fc57806378fab2601461042e575f5ffd5b80634d15eb03116101685780635c975abb116101385780635c975abb1461036957806365533024146103805780636a448ef11461039f5780636db5c8fd146103be575f5ffd5b80634d15eb03146102df5780634f1ef28614610325578063521eb2731461033857806352d1902d14610355575f5ffd5b80633659cfe6116101a35780633659cfe61461024b5780633711bbf51461026c5780633f4ba83a1461029857806345f739ff146102ac575f5ffd5b806301ffc9a7146101c957806305918a79146101fd57806306fdde031461022a575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004613de5565b6105fc565b60405190151581526020015b60405180910390f35b348015610208575f5ffd5b5061021c610217366004613e39565b610627565b6040519081526020016101f4565b348015610235575f5ffd5b5061023e610652565b6040516101f49190613eb3565b348015610256575f5ffd5b5061026a610265366004613ee8565b6106e2565b005b348015610277575f5ffd5b5061028b610286366004613e39565b6107c8565b6040516101f49190613fc3565b3480156102a3575f5ffd5b5061026a6107f7565b3480156102b7575f5ffd5b5061021c7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb81565b3480156102ea575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101f4565b61026a61033336600461405d565b610912565b348015610343575f5ffd5b5060fe546001600160a01b031661030d565b348015610360575f5ffd5b5061021c6109dd565b348015610374575f5ffd5b5060975460ff166101e8565b34801561038b575f5ffd5b5061021c61039a366004613e39565b610a8e565b3480156103aa575f5ffd5b5061026a6103b93660046140bd565b610bae565b3480156103c9575f5ffd5b5060fc54600160b01b900461ffff1661021c565b3480156103e8575f5ffd5b5061026a6103f73660046140d4565b610c10565b348015610407575f5ffd5b507f000000000000000000000000000000000000000000000000000000000000000061030d565b348015610439575f5ffd5b5061021c7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b34801561046c575f5ffd5b5061026a61047b36600461417a565b610d29565b34801561048b575f5ffd5b5060fd5461021c565b34801561049f575f5ffd5b5061026a610eaf565b3480156104b3575f5ffd5b5061021c610fb6565b3480156104c7575f5ffd5b5061021c6104d63660046141a5565b610fd8565b3480156104e6575f5ffd5b5061026a6104f53660046141d7565b610ff5565b348015610505575f5ffd5b5061021c6114fa565b348015610519575f5ffd5b50610522611518565b6040516101f491905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610582575f5ffd5b5061026a610591366004613ee8565b6115f7565b3480156105a1575f5ffd5b5061030d611747565b3480156105b5575f5ffd5b5061021c7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b3480156105e8575f5ffd5b5061026a6105f7366004614211565b6117c8565b5f6106068261191f565b8061062157506001600160e01b0319821663da40804f60e01b145b92915050565b5f610630611954565b6106438a8a8a8a89898989335b8f61199c565b519a9950505050505050505050565b606060fb805461066190614249565b80601f016020809104026020016040519081016040528092919081815260200182805461068d90614249565b80156106d85780601f106106af576101008083540402835291602001916106d8565b820191905f5260205f20905b8154815290600101906020018083116106bb57829003601f168201915b5050505050905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107335760405162461bcd60e51b815260040161072a9061427b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661077b5f5160206148c15f395f51905f52546001600160a01b031690565b6001600160a01b0316146107a15760405162461bcd60e51b815260040161072a906142c7565b6107aa81611cc9565b604080515f808252602082019092526107c591839190611de6565b50565b6107d0613d6d565b6107d8611954565b6107e98a8a8a8a898989893361063d565b9a9950505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206148e15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016108da95949392919061432e565b5f6040518083038186803b1580156108f0575f5ffd5b505afa158015610902573d5f5f3e3d5ffd5b5050505061090e611f50565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361095a5760405162461bcd60e51b815260040161072a9061427b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109a25f5160206148c15f395f51905f52546001600160a01b031690565b6001600160a01b0316146109c85760405162461bcd60e51b815260040161072a906142c7565b6109d182611cc9565b61090e82826001611de6565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161072a565b505f5160206148c15f395f51905f5290565b5f610a97611954565b6001600160a01b038616331480610b3157505f610ab2611747565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2f9190614361565b115b610b9c5760405162461bcd60e51b815260206004820152603660248201527f53656e646572206973206e6f7420617574686f72697a656420746f20637265616044820152753a32903837b634b1b4b2b99037b72132b430b63327b360511b606482015260840161072a565b6106438a8a8a8a898989898e8f61199c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610bf75760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610c08919061438c565b909155505050565b5f54610100900460ff1615808015610c2e57505f54600160ff909116105b80610c475750303b158015610c4757505f5460ff166001145b610caa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161072a565b5f805460ff191660011790558015610ccb575f805461ff0019166101001790555b610cda88888888888888611fa2565b8015610d1f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dca9190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610dfb949392919061439f565b5f6040518083038186803b158015610e11575f5ffd5b505afa158015610e23573d5f5f3e3d5ffd5b50505050610e2f611954565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c90610e7d9086908690600401614495565b5f604051808303815f87803b158015610e94575f5ffd5b505af1158015610ea6573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190614313565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610f82949392919061439f565b5f6040518083038186803b158015610f98575f5ffd5b505afa158015610faa573d5f5f3e3d5ffd5b505050506107c5611fdf565b60fc545f90610fd3908290600160901b900463ffffffff1661201c565b905090565b5f610fed84848442610fe8611518565b6120b1565b949350505050565b5f5160206148e15f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611080573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016110d895949392919061432e565b5f6040518083038186803b1580156110ee575f5ffd5b505afa158015611100573d5f5f3e3d5ffd5b505f925061110c915050565b84600981111561111e5761111e6144b2565b036111475761112c836120cd565b60fc805461ffff191661ffff929092169190911790556114bd565b600184600981111561115b5761115b6144b2565b0361118d57611169836120cd565b60fc805461ffff92909216620100000263ffff0000199092169190911790556114bd565b60028460098111156111a1576111a16144b2565b036111d7576111af836120cd565b60fc805461ffff929092166401000000000265ffff00000000199092169190911790556114bd565b60038460098111156111eb576111eb6144b2565b03611222576111f9836120cd565b60fc805461ffff92909216600160301b0267ffff000000000000199092169190911790556114bd565b6004846009811115611236576112366144b2565b0361126f57611244836120cd565b60fc805461ffff92909216600160401b0269ffff0000000000000000199092169190911790556114bd565b6005846009811115611283576112836144b2565b036112b757611291836120cd565b60fc805461ffff92909216600160501b0261ffff60501b199092169190911790556114bd565b60068460098111156112cb576112cb6144b2565b036112ff576112d9836120cd565b60fc805461ffff92909216600160601b0261ffff60601b199092169190911790556114bd565b6007846009811115611313576113136144b2565b0361134d576113236002846120e6565b60fc805463ffffffff92909216600160701b0263ffffffff60701b199092169190911790556114bd565b6008846009811115611361576113616144b2565b036114795760fd548310156113d25760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b606482015260840161072a565b6113da610fb6565b831115806113f957506113f95f5160206148e15f395f51905f52612176565b6114455760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c45000000604482015260640161072a565b61144f5f846120e6565b60fc805463ffffffff92909216600160901b0263ffffffff60901b199092169190911790556114bd565b600984600981111561148d5761148d6144b2565b036114bd5761149b83612268565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b6114f48460098111156114d2576114d26144b2565b6114dd9060086144c6565b602d8111156114ee576114ee6144b2565b846122ce565b50505050565b60fc545f90610fd390600290600160701b900463ffffffff1661201c565b6115516040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152610fd39061231f565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611674573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116989190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016116c9949392919061439f565b5f6040518083038186803b1580156116df575f5ffd5b505afa1580156116f1573d5f5f3e3d5ffd5b5050506001600160a01b038316905061171d57604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b03841690811790915561090e906012906122ce565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190614313565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611845573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118699190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161189a949392919061439f565b5f6040518083038186803b1580156118b0575f5ffd5b505afa1580156118c2573d5f5f3e3d5ffd5b505050506118ce611954565b60405160016259ff1d60e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ffa600e390610e7d90869086906004016144d9565b5f6001600160e01b031982166301ffc9a760e01b148061062157506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff161561199a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161072a565b565b6119a4613d6d565b7f0000000000000000000000000000000000000000000000000000000000000000611ac7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a499190614313565b6001600160a01b0316635ff57d20307f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb335f6040518563ffffffff1660e01b8152600401611a9a949392919061439f565b5f6040518083038186803b158015611ab0575f5ffd5b505afa158015611ac2573d5f5f3e3d5ffd5b505050505b428464ffffffffff161015611aef57604051638727a7f960e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193060601b166020820152603481018c9052605481018b9052607481018a90526001600160d81b031960d88a811b82166094840152609983018a905286901b1660b98201525f90611b619060be016040516020818303038152906040526123e3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be39190614313565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611c1e858c8c61241d565b5f6040518563ffffffff1660e01b8152600401611c3e949392919061439f565b5f6040518083038186803b158015611c54575f5ffd5b505afa158015611c66573d5f5f3e3d5ffd5b50505050611c818c8c8c8c8888611c7c8f612441565b612450565b80516040518a8152919350907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a2509a9950505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206148e15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d789190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611dac95949392919061432e565b5f6040518083038186803b158015611dc2575f5ffd5b505afa158015611dd4573d5f5f3e3d5ffd5b50505050611de18361247b565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611e1957611de183612539565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611e73575060408051601f3d908101601f19168201909252611e7091810190614361565b60015b611ed65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161072a565b5f5160206148c15f395f51905f528114611f445760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161072a565b50611de18383836125d4565b611f586125f8565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff16611fc85760405162461bcd60e51b815260040161072a906144f8565b611fd0612641565b610ea687878787878787612677565b611fe7611954565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f853390565b5f82612026611747565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612061573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120859190614543565b61208f9190614563565b61209a90600a614657565b6120aa9063ffffffff8416614665565b9392505050565b5f6120bf8287878787612881565b60e001519695505050505050565b5f6106216120e1655af3107a400084614690565b612268565b5f6120aa836120f3611747565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121529190614543565b61215c9190614563565b61216790600a614657565b6121719084614690565b612a74565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f79190614313565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b8152600401612229949392919061439f565b602060405180830381865afa158015612244573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062191906146a3565b5f61ffff8211156122ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b606482015260840161072a565b5090565b6122d6612ad8565b81602d8111156122e8576122e86144b2565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6123586040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e0016040528061236f845f0151612b35565b81526020016123818460200151612b35565b81526020016123938460400151612b35565b81526020016123a58460600151612b35565b81526020016123b78460800151612b35565b81526020016123c98460a00151612b35565b81526020016123db8460c00151612b35565b905292915050565b5f6123ee8251612b4a565b826040516020016124009291906146d5565b604051602081830303815290604052805190602001209050919050565b5f5f5f61242b868686612bda565b9150915061243881612c13565b50949350505050565b5f610621600160601b8361470f565b612458613d6d565b61246f8888888888888861246a611518565b612d5c565b98975050505050505050565b6124848161338a565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125129190614313565b6001600160a01b03161461090e5760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6125a65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161072a565b5f5160206148c15f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6125dd8361343b565b5f825111806125e95750805b15611de1576114f4838361347a565b60975460ff1661199a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161072a565b5f54610100900460ff166126675760405162461bcd60e51b815260040161072a906144f8565b61266f61349f565b61199a6134c5565b5f54610100900460ff1661269d5760405162461bcd60e51b815260040161072a906144f8565b60fb6126a9888261476d565b50604080516101408101825261271081525f60208201529081016126cc886120cd565b61ffff1681526020016126de876120cd565b61ffff1681525f6020820181905260408201526060016126fd866120cd565b61ffff1681526020016127116002866120e6565b63ffffffff1681526020016127265f856120e6565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055610ea6612ad8565b6128c16040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516128d9906128d29086906134f3565b86906134f3565b815260208601516128eb9086906134f3565b602082018190528151101561291557805160208201805161290d90839061438c565b90525061291c565b5f60208201525b604086015161292c9086906134f3565b60408201526020810151815161294291906144c6565b81604001511115612977576020810151815161295e91906144c6565b8160400181815161296f919061438c565b90525061297e565b5f60408201525b6129bb6301e133806129908486614828565b64ffffffffff168860a001516129a69190614665565b6129b09190614690565b6020830151906134f3565b60608201526129fd6301e133806129d28486614828565b64ffffffffff168860c001516129e89190614665565b6129f29190614690565b6040830151906134f3565b6080820181905260608201515f91612a14916144c6565b9050612a2d8760800151826134f390919063ffffffff16565b60608801518351612a3d916134f3565b612a4791906144c6565b60a0830181905282518291612a5b916144c6565b612a6591906144c6565b60e08301525095945050505050565b5f63ffffffff8211156122ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161072a565b60fd54612ae3610fb6565b1015612b0257604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b0316612b2b57604051634d1c286960e11b815260040160405180910390fd5b61199a60fc613529565b5f610621655af3107a400061ffff8416614665565b60605f612b5683613926565b60010190505f8167ffffffffffffffff811115612b7557612b75613fd2565b6040519080825280601f01601f191660200182016040528015612b9f576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612ba957509392505050565b5f806001600160ff1b03831681612bf660ff86901c601b6144c6565b9050612c04878288856139fd565b9350935050505b935093915050565b5f816004811115612c2657612c266144b2565b03612c2e5750565b6001816004811115612c4257612c426144b2565b03612c8f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161072a565b6002816004811115612ca357612ca36144b2565b03612cf05760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161072a565b6003816004811115612d0457612d046144b2565b036107c55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161072a565b612d64613d6d565b4260018901612d7d57612d7a8a898984876120b1565b98505b898910612dcc5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f7574604482015260640161072a565b8064ffffffffff168764ffffffffff1611612e295760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015260640161072a565b60fc54600160b01b900461ffff16610e10612e44838a614828565b612e4e9190614845565b64ffffffffff1610612ea25760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e0000000000604482015260640161072a565b6001600160a01b038516612ef85760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f20616464726573730000604482015260640161072a565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f799190614313565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612fe7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300b9190614361565b101561306f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b606482015260840161072a565b6001600160a01b0386163314806131825750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131029190614313565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614361565b10155b6131e65760405162461bcd60e51b815260206004820152602f60248201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360448201526e66657220746865207072656d69756d60881b606482015260840161072a565b6131ee6114fa565b8a11156132585760405162461bcd60e51b815260206004820152603260248201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206044820152716d6178696d756d2070657220706f6c69637960701b606482015260840161072a565b61326730848b8d8c8c87613aba565b9150816020015160fd5f82825461327e91906144c6565b9091555061328c9050610fb6565b60fd5411156132e95760405162461bcd60e51b815260206004820152602360248201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560448201526219195960ea1b606482015260840161072a565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f9061333b9085908a908a908a9060040161486e565b6020604051808303815f875af1158015613357573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061337b9190614361565b82525098975050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134149190614313565b6001600160a01b0316146107c55760405163d2b3d33f60e01b815260040160405180910390fd5b61344481612539565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606120aa838360405180606001604052806027815260200161490160279139613c2a565b5f54610100900460ff1661199a5760405162461bcd60e51b815260040161072a906144f8565b5f54610100900460ff166134eb5760405162461bcd60e51b815260040161072a906144f8565b61199a613c9e565b5f81156706f05b59d3b20000198390048411151761350f575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156135935760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b606482015260840161072a565b805461271064010000000090910461ffff16118015906135bf57508054640100000000900461ffff1615155b6136155760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b606482015260840161072a565b805461ffff62010000820481166401000000009092041610156136865760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b606482015260840161072a565b8054619c4061ffff909116118015906136a85750805461138861ffff90911610155b6136f45760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d604482015260640161072a565b8054612710600160301b90910461ffff16111561375f5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b606482015260840161072a565b8054612710600160401b90910461ffff1611156137cc5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b606482015260840161072a565b8054612710600160601b90910461ffff1611156138395760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b606482015260840161072a565b8054612710600160501b90910461ffff1611156138a65760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b606482015260840161072a565b8054600160901b900463ffffffff16158015906138d057508054600160701b900463ffffffff1615155b6107c55760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b606482015260840161072a565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106139645772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613990576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106139ae57662386f26fc10000830492506010015b6305f5e10083106139c6576305f5e100830492506008015b61271083106139da57612710830492506004015b606483106139ec576064830492506002015b600a83106106215760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613a3257505f90506003613ab1565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613a83573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613aab575f60019250925050613ab1565b91505f90505b94509492505050565b613ac2613d6d565b84861115613b1d5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b606482015260840161072a565b613b25613d6d565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613b6f8988888888612881565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613c085760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d00000000000000604482015260640161072a565b60e0810151613c17908961438c565b6101008301525098975050505050505050565b60605f5f856001600160a01b031685604051613c4691906148b5565b5f60405180830381855af49150503d805f8114613c7e576040519150601f19603f3d011682016040523d82523d5f602084013e613c83565b606091505b5091509150613c9486838387613cd0565b9695505050505050565b5f54610100900460ff16613cc45760405162461bcd60e51b815260040161072a906144f8565b6097805460ff19169055565b60608315613d3e5782515f03613d37576001600160a01b0385163b613d375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161072a565b5081610fed565b610fed8383815115613d535781518083602001fd5b8060405162461bcd60e51b815260040161072a9190613eb3565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613df5575f5ffd5b81356001600160e01b0319811681146120aa575f5ffd5b803564ffffffffff81168114613e20575f5ffd5b919050565b6001600160a01b03811681146107c5575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215613e52575f5ffd5b8935985060208a0135975060408a01359650613e7060608b01613e0c565b955060808a0135613e8081613e25565b945060a08a0135935060c08a0135925060e08a01359150613ea46101008b01613e0c565b90509295985092959850929598565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613ef8575f5ffd5b81356120aa81613e25565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610140810151610140830152610160810151613f8d6101608401826001600160a01b03169052565b50610180810151613fa861018084018264ffffffffff169052565b506101a0810151611de16101a084018264ffffffffff169052565b6101c081016106218284613f03565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561400057614000613fd2565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561402f5761402f613fd2565b604052838152905080828401851015614046575f5ffd5b838360208301375f60208583010152509392505050565b5f5f6040838503121561406e575f5ffd5b823561407981613e25565b9150602083013567ffffffffffffffff811115614094575f5ffd5b8301601f810185136140a4575f5ffd5b6140b385823560208401613fe6565b9150509250929050565b5f602082840312156140cd575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a0312156140ea575f5ffd5b873567ffffffffffffffff811115614100575f5ffd5b8801601f81018a13614110575f5ffd5b61411f8a823560208401613fe6565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c088013561415381613e25565b8091505092959891949750929550565b5f6101c08284031215614174575f5ffd5b50919050565b5f5f6101e0838503121561418c575f5ffd5b6141968484614163565b946101c0939093013593505050565b5f5f5f606084860312156141b7575f5ffd5b83359250602084013591506141ce60408501613e0c565b90509250925092565b5f5f604083850312156141e8575f5ffd5b8235600a81106141f6575f5ffd5b946020939093013593505050565b80151581146107c5575f5ffd5b5f5f6101e08385031215614223575f5ffd5b61422d8484614163565b91506101c083013561423e81614204565b809150509250929050565b600181811c9082168061425d57607f821691505b60208210810361417457634e487b7160e01b5f52602260045260245ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215614323575f5ffd5b81516120aa81613e25565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b5f60208284031215614371575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062157610621614378565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b8035613e2081613e25565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e0808201359083015261010080820135908301526101208082013590830152610140808201359083015261444c61016082016143c9565b6001600160a01b03166101608301526144686101808201613e0c565b64ffffffffff166101808301526144826101a08201613e0c565b64ffffffffff81166101a0840152505050565b6101e081016144a482856143d4565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561062157610621614378565b6101e081016144e882856143d4565b8215156101c08301529392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215614553575f5ffd5b815160ff811681146120aa575f5ffd5b60ff828116828216039081111561062157610621614378565b6001815b6001841115612c0b5780850481111561459b5761459b614378565b60018416156145a957908102905b60019390931c928002614580565b5f826145c557506001610621565b816145d157505f610621565b81600181146145e757600281146145f15761460d565b6001915050610621565b60ff84111561460257614602614378565b50506001821b610621565b5060208310610133831016604e8410600b8410161715614630575081810a610621565b61463c5f19848461457c565b805f190482111561464f5761464f614378565b029392505050565b5f6120aa60ff8416836145b7565b808202811582820484141761062157610621614378565b634e487b7160e01b5f52601260045260245ffd5b5f8261469e5761469e61467c565b500490565b5f602082840312156146b3575f5ffd5b81516120aa81614204565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f610fed614709601a8401866146be565b846146be565b5f8261471d5761471d61467c565b500690565b601f821115611de157805f5260205f20601f840160051c810160208510156147475750805b601f840160051c820191505b81811015614766575f8155600101614753565b5050505050565b815167ffffffffffffffff81111561478757614787613fd2565b61479b816147958454614249565b84614722565b6020601f8211600181146147cd575f83156147b65750848201515b5f19600385901b1c1916600184901b178455614766565b5f84815260208120601f198516915b828110156147fc57878501518255602094850194600190920191016147dc565b508482101561481957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b64ffffffffff828116828216039081111561062157610621614378565b5f64ffffffffff83168061485b5761485b61467c565b8064ffffffffff84160491505092915050565b610220810161487d8287613f03565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f6120aa82846146be56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084a8f184033d9a319d57b0a3d3ce875454f8de6c95d2ee50d6cb5e9382eb9a2064736f6c634300081c0033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4CA6 CODESIZE SUB DUP1 PUSH2 0x4CA6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x33 SWAP2 PUSH2 0x1FE JUMP JUMPDEST DUP3 DUP3 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5D JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x65 PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0x24C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x111 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFEC343D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP ISZERO ISZERO PUSH1 0xE0 MSTORE POP PUSH2 0x26E SWAP1 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x196 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x1E5 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1FB JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x210 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x21B DUP2 PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH2 0x22C DUP2 PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x241 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x267 DUP2 PUSH2 0x1E7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x495D PUSH2 0x349 PUSH0 CODECOPY PUSH0 PUSH2 0x19A6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x40A ADD MSTORE PUSH2 0x248A ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x2ED ADD MSTORE DUP2 DUP2 PUSH2 0x828 ADD MSTORE DUP2 DUP2 PUSH2 0xBB1 ADD MSTORE DUP2 DUP2 PUSH2 0xD4C ADD MSTORE DUP2 DUP2 PUSH2 0xE46 ADD MSTORE DUP2 DUP2 PUSH2 0xED2 ADD MSTORE DUP2 DUP2 PUSH2 0x1026 ADD MSTORE DUP2 DUP2 PUSH2 0x161A ADD MSTORE DUP2 DUP2 PUSH2 0x174A ADD MSTORE DUP2 DUP2 PUSH2 0x17EB ADD MSTORE DUP2 DUP2 PUSH2 0x18E8 ADD MSTORE DUP2 DUP2 PUSH2 0x19CB ADD MSTORE DUP2 DUP2 PUSH2 0x1B65 ADD MSTORE DUP2 DUP2 PUSH2 0x1CFA ADD MSTORE DUP2 DUP2 PUSH2 0x2179 ADD MSTORE DUP2 DUP2 PUSH2 0x2EFB ADD MSTORE DUP2 DUP2 PUSH2 0x2F98 ADD MSTORE DUP2 DUP2 PUSH2 0x3084 ADD MSTORE DUP2 DUP2 PUSH2 0x3300 ADD MSTORE PUSH2 0x338C ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x6EC ADD MSTORE DUP2 DUP2 PUSH2 0x735 ADD MSTORE DUP2 DUP2 PUSH2 0x91C ADD MSTORE DUP2 DUP2 PUSH2 0x95C ADD MSTORE PUSH2 0x9E9 ADD MSTORE PUSH2 0x495D PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6F0DBE6F GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BAC3A24 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x577 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x5DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x50E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7A702B3C GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x4A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3FC JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x168 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x65533024 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x3BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x521EB273 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x355 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x3711BBF5 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x45F739FF EQ PUSH2 0x2AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x5918A79 EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x22A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE5 JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23E PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3EB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EE8 JUMP JUMPDEST PUSH2 0x6E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3FC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x7F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x405D JUMP JUMPDEST PUSH2 0x912 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x30D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x9DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x39A CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x3B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x40BD JUMP JUMPDEST PUSH2 0xBAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x21C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x3F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x40D4 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x30D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x47B CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0xD29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x21C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0xEAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0xFB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x41A5 JUMP JUMPDEST PUSH2 0xFD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D7 JUMP JUMPDEST PUSH2 0xFF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x14FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x519 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x522 PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EE8 JUMP JUMPDEST PUSH2 0x15F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x30D PUSH2 0x1747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x5F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4211 JUMP JUMPDEST PUSH2 0x17C8 JUMP JUMPDEST PUSH0 PUSH2 0x606 DUP3 PUSH2 0x191F JUMP JUMPDEST DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x630 PUSH2 0x1954 JUMP JUMPDEST PUSH2 0x643 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 CALLER JUMPDEST DUP16 PUSH2 0x199C JUMP JUMPDEST MLOAD SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x661 SWAP1 PUSH2 0x4249 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x68D SWAP1 PUSH2 0x4249 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6D8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6BB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x733 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x427B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x77B PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x42C7 JUMP JUMPDEST PUSH2 0x7AA DUP2 PUSH2 0x1CC9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7C5 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x1DE6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7D0 PUSH2 0x3D6D JUMP JUMPDEST PUSH2 0x7D8 PUSH2 0x1954 JUMP JUMPDEST PUSH2 0x7E9 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 CALLER PUSH2 0x63D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x882 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A6 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8DA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x902 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x90E PUSH2 0x1F50 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x95A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x427B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9A2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x42C7 JUMP JUMPDEST PUSH2 0x9D1 DUP3 PUSH2 0x1CC9 JUMP JUMPDEST PUSH2 0x90E DUP3 DUP3 PUSH1 0x1 PUSH2 0x1DE6 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xA97 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0xB31 JUMPI POP PUSH0 PUSH2 0xAB2 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2F SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST GT JUMPDEST PUSH2 0xB9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53656E646572206973206E6F7420617574686F72697A656420746F2063726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x3A32903837B634B1B4B2B99037B72132B430B63327B3 PUSH1 0x51 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x643 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 DUP15 DUP16 PUSH2 0x199C JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC08 SWAP2 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC2E JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xC47 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC47 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xCCB JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xCDA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1FA2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD1F JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDCA SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDFB SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE11 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE23 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE2F PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0xE7D SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4495 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE94 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF50 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF82 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF98 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFAA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x7C5 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0xFD3 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x201C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xFED DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0xFE8 PUSH2 0x1518 JUMP JUMPDEST PUSH2 0x20B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1080 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10A4 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x110C SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x111E JUMPI PUSH2 0x111E PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1147 JUMPI PUSH2 0x112C DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x115B JUMPI PUSH2 0x115B PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x118D JUMPI PUSH2 0x1169 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x11A1 JUMPI PUSH2 0x11A1 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x11D7 JUMPI PUSH2 0x11AF DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x11EB JUMPI PUSH2 0x11EB PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1222 JUMPI PUSH2 0x11F9 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1236 JUMPI PUSH2 0x1236 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x126F JUMPI PUSH2 0x1244 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1283 JUMPI PUSH2 0x1283 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x12B7 JUMPI PUSH2 0x1291 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x12CB JUMPI PUSH2 0x12CB PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x12FF JUMPI PUSH2 0x12D9 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1313 JUMPI PUSH2 0x1313 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x134D JUMPI PUSH2 0x1323 PUSH1 0x2 DUP5 PUSH2 0x20E6 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1361 JUMPI PUSH2 0x1361 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1479 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x13DA PUSH2 0xFB6 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x13F9 JUMPI POP PUSH2 0x13F9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x2176 JUMP JUMPDEST PUSH2 0x1445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x144F PUSH0 DUP5 PUSH2 0x20E6 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x148D JUMPI PUSH2 0x148D PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x14BD JUMPI PUSH2 0x149B DUP4 PUSH2 0x2268 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x14F4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14D2 JUMPI PUSH2 0x14D2 PUSH2 0x44B2 JUMP JUMPDEST PUSH2 0x14DD SWAP1 PUSH1 0x8 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x14EE JUMPI PUSH2 0x14EE PUSH2 0x44B2 JUMP JUMPDEST DUP5 PUSH2 0x22CE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0xFD3 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x201C JUMP JUMPDEST PUSH2 0x1551 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0xFD3 SWAP1 PUSH2 0x231F JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1674 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1698 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16C9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x171D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x90E SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x22CE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17A4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD3 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1845 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1869 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x189A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18CE PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x59FF1D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xFFA600E3 SWAP1 PUSH2 0xE7D SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x44D9 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x19A4 PUSH2 0x3D6D JUMP JUMPDEST PUSH32 0x0 PUSH2 0x1AC7 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A25 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A49 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A9A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AC2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST TIMESTAMP DUP5 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x1AEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x54 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x74 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT PUSH1 0xD8 DUP11 DUP2 SHL DUP3 AND PUSH1 0x94 DUP5 ADD MSTORE PUSH1 0x99 DUP4 ADD DUP11 SWAP1 MSTORE DUP7 SWAP1 SHL AND PUSH1 0xB9 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x1B61 SWAP1 PUSH1 0xBE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x23E3 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BBF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE3 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH2 0x1C1E DUP6 DUP13 DUP13 PUSH2 0x241D JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C3E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C66 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1C81 DUP13 DUP13 DUP13 DUP13 DUP9 DUP9 PUSH2 0x1C7C DUP16 PUSH2 0x2441 JUMP JUMPDEST PUSH2 0x2450 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP11 DUP2 MSTORE SWAP2 SWAP4 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D54 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D78 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DAC SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DC2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1DE1 DUP4 PUSH2 0x247B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1E19 JUMPI PUSH2 0x1DE1 DUP4 PUSH2 0x2539 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1E70 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4361 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1ED6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x1F44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP PUSH2 0x1DE1 DUP4 DUP4 DUP4 PUSH2 0x25D4 JUMP JUMPDEST PUSH2 0x1F58 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1FC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x1FD0 PUSH2 0x2641 JUMP JUMPDEST PUSH2 0xEA6 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x1FE7 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1F85 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2026 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2061 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2085 SWAP2 SWAP1 PUSH2 0x4543 JUMP JUMPDEST PUSH2 0x208F SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x209A SWAP1 PUSH1 0xA PUSH2 0x4657 JUMP JUMPDEST PUSH2 0x20AA SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x4665 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20BF DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH2 0x20E1 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4690 JUMP JUMPDEST PUSH2 0x2268 JUMP JUMPDEST PUSH0 PUSH2 0x20AA DUP4 PUSH2 0x20F3 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x212E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2152 SWAP2 SWAP1 PUSH2 0x4543 JUMP JUMPDEST PUSH2 0x215C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x2167 SWAP1 PUSH1 0xA PUSH2 0x4657 JUMP JUMPDEST PUSH2 0x2171 SWAP1 DUP5 PUSH2 0x4690 JUMP JUMPDEST PUSH2 0x2A74 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21D3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21F7 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2229 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2244 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x621 SWAP2 SWAP1 PUSH2 0x46A3 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x22D6 PUSH2 0x2AD8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x22E8 JUMPI PUSH2 0x22E8 PUSH2 0x44B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x2358 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x236F DUP5 PUSH0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2381 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2393 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23A5 DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23B7 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23C9 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23DB DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23EE DUP3 MLOAD PUSH2 0x2B4A JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2400 SWAP3 SWAP2 SWAP1 PUSH2 0x46D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x242B DUP7 DUP7 DUP7 PUSH2 0x2BDA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x2438 DUP2 PUSH2 0x2C13 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x470F JUMP JUMPDEST PUSH2 0x2458 PUSH2 0x3D6D JUMP JUMPDEST PUSH2 0x246F DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x246A PUSH2 0x1518 JUMP JUMPDEST PUSH2 0x2D5C JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2484 DUP2 PUSH2 0x338A JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24EE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2512 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x90E JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x25A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x25DD DUP4 PUSH2 0x343B JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x25E9 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DE1 JUMPI PUSH2 0x14F4 DUP4 DUP4 PUSH2 0x347A JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2667 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x266F PUSH2 0x349F JUMP JUMPDEST PUSH2 0x199A PUSH2 0x34C5 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x269D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x26A9 DUP9 DUP3 PUSH2 0x476D JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x26CC DUP9 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE DUP8 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x26FD DUP7 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2711 PUSH1 0x2 DUP7 PUSH2 0x20E6 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2726 PUSH0 DUP6 PUSH2 0x20E6 JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0xEA6 PUSH2 0x2AD8 JUMP JUMPDEST PUSH2 0x28C1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x28D9 SWAP1 PUSH2 0x28D2 SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x28EB SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x2915 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x290D SWAP1 DUP4 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x291C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x292C SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x2942 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x2977 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x295E SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x296F SWAP2 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x297E JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x29BB PUSH4 0x1E13380 PUSH2 0x2990 DUP5 DUP7 PUSH2 0x4828 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x29A6 SWAP2 SWAP1 PUSH2 0x4665 JUMP JUMPDEST PUSH2 0x29B0 SWAP2 SWAP1 PUSH2 0x4690 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x29FD PUSH4 0x1E13380 PUSH2 0x29D2 DUP5 DUP7 PUSH2 0x4828 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x29E8 SWAP2 SWAP1 PUSH2 0x4665 JUMP JUMPDEST PUSH2 0x29F2 SWAP2 SWAP1 PUSH2 0x4690 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x2A14 SWAP2 PUSH2 0x44C6 JUMP JUMPDEST SWAP1 POP PUSH2 0x2A2D DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x34F3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x2A3D SWAP2 PUSH2 0x34F3 JUMP JUMPDEST PUSH2 0x2A47 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x2A5B SWAP2 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x2A65 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x2AE3 PUSH2 0xFB6 JUMP JUMPDEST LT ISZERO PUSH2 0x2B02 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x199A PUSH1 0xFC PUSH2 0x3529 JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x4665 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x2B56 DUP4 PUSH2 0x3926 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B75 PUSH2 0x3FD2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2B9F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x2BA9 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x2BF6 PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x44C6 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C04 DUP8 DUP3 DUP9 DUP6 PUSH2 0x39FD JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2C26 JUMPI PUSH2 0x2C26 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2C2E JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2C42 JUMPI PUSH2 0x2C42 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2C8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2CA3 JUMPI PUSH2 0x2CA3 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2CF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2D04 JUMPI PUSH2 0x2D04 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x2D64 PUSH2 0x3D6D JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2D7D JUMPI PUSH2 0x2D7A DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x20B1 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2DCC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2E29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2E44 DUP4 DUP11 PUSH2 0x4828 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x4845 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2EA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2EF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F79 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x300B SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST LT ISZERO PUSH2 0x306F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3182 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30DE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3102 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x315B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x317F SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x31E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x31EE PUSH2 0x14FA JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3258 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3267 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3ABA JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x327E SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x328C SWAP1 POP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x32E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x333B SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x486E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3357 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337B SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33F0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3414 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3444 DUP2 PUSH2 0x2539 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20AA DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4901 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3C2A JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x34EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x199A PUSH2 0x3C9E JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x350F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3593 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x35BF JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x3615 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x3686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x36A8 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x36F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x375F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x37CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3839 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x38A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x38D0 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x3964 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x3990 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x39AE JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x39C6 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x39DA JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x39EC JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x621 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x3A32 JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x3AB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A83 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AAB JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x3AB1 JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3AC2 PUSH2 0x3D6D JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3B1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3B25 PUSH2 0x3D6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3B6F DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2881 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3C08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3C17 SWAP1 DUP10 PUSH2 0x438C JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3C46 SWAP2 SWAP1 PUSH2 0x48B5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3C7E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3C94 DUP7 DUP4 DUP4 DUP8 PUSH2 0x3CD0 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3CC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D3E JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3D37 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3D37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST POP DUP2 PUSH2 0xFED JUMP JUMPDEST PUSH2 0xFED DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3D53 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP2 SWAP1 PUSH2 0x3EB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DF5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x20AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3E20 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x3E52 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP10 CALLDATALOAD SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0x3E70 PUSH1 0x60 DUP12 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH2 0x3E80 DUP2 PUSH2 0x3E25 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x3EA4 PUSH2 0x100 DUP12 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EF8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20AA DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x3F8D PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x3FA8 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x1DE1 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x621 DUP3 DUP5 PUSH2 0x3F03 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4000 JUMPI PUSH2 0x4000 PUSH2 0x3FD2 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x402F JUMPI PUSH2 0x402F PUSH2 0x3FD2 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x4046 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x406E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4079 DUP2 PUSH2 0x3E25 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4094 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x40A4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40B3 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3FE6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x40EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4100 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x4110 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x411F DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3FE6 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x4153 DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4174 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x418C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4196 DUP5 DUP5 PUSH2 0x4163 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x41B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x41CE PUSH1 0x40 DUP6 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x41F6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4223 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x422D DUP5 DUP5 PUSH2 0x4163 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x423E DUP2 PUSH2 0x4204 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x425D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4174 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4323 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x20AA DUP2 PUSH2 0x3E25 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4371 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3E20 DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x444C PUSH2 0x160 DUP3 ADD PUSH2 0x43C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4468 PUSH2 0x180 DUP3 ADD PUSH2 0x3E0C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x4482 PUSH2 0x1A0 DUP3 ADD PUSH2 0x3E0C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x44A4 DUP3 DUP6 PUSH2 0x43D4 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x44E8 DUP3 DUP6 PUSH2 0x43D4 JUMP JUMPDEST DUP3 ISZERO ISZERO PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4553 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x20AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2C0B JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x459B JUMPI PUSH2 0x459B PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x45A9 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4580 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x45C5 JUMPI POP PUSH1 0x1 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH2 0x45D1 JUMPI POP PUSH0 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x45E7 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x45F1 JUMPI PUSH2 0x460D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x621 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x4602 JUMPI PUSH2 0x4602 PUSH2 0x4378 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4630 JUMPI POP DUP2 DUP2 EXP PUSH2 0x621 JUMP JUMPDEST PUSH2 0x463C PUSH0 NOT DUP5 DUP5 PUSH2 0x457C JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x464F JUMPI PUSH2 0x464F PUSH2 0x4378 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20AA PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x45B7 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x469E JUMPI PUSH2 0x469E PUSH2 0x467C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x20AA DUP2 PUSH2 0x4204 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0xFED PUSH2 0x4709 PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x46BE JUMP JUMPDEST DUP5 PUSH2 0x46BE JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x471D JUMPI PUSH2 0x471D PUSH2 0x467C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1DE1 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4747 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4766 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4753 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4787 JUMPI PUSH2 0x4787 PUSH2 0x3FD2 JUMP JUMPDEST PUSH2 0x479B DUP2 PUSH2 0x4795 DUP5 SLOAD PUSH2 0x4249 JUMP JUMPDEST DUP5 PUSH2 0x4722 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x47CD JUMPI PUSH0 DUP4 ISZERO PUSH2 0x47B6 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x4766 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x47FC JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x47DC JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4819 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x485B JUMPI PUSH2 0x485B PUSH2 0x467C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x487D DUP3 DUP8 PUSH2 0x3F03 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20AA DUP3 DUP5 PUSH2 0x46BE JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122084A8F1 DUP5 SUB RETURNDATASIZE SWAP11 BALANCE SWAP14 JUMPI 0xB0 LOG3 0xD3 0xCE DUP8 SLOAD SLOAD 0xF8 0xDE PUSH13 0x95D2EE50D6CB5E9382EB9A2064 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"687:9907:62:-:0;;;1198:4:7;1155:48;;1498:196:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1619:11;1632:16;1619:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;3107:11:60::1;-1:-1:-1::0;;;;;3044:74:60::1;3072:16;-1:-1:-1::0;;;;;3044:57:60::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3044:74:60::1;;3040:138;;3135:36;;-1:-1:-1::0;;;3135:36:60::1;;;;;;;;;;;3040:138;-1:-1:-1::0;;;;;3183:35:60::1;;::::0;-1:-1:-1;1656:33:62::1;;;::::0;-1:-1:-1;687:9907:62;;-1:-1:-1;687:9907:62;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;1280:2:88;5998:66:6;;;1262:21:88;1319:2;1299:18;;;1292:30;1358:34;1338:18;;;1331:62;-1:-1:-1;;;1409:18:88;;;1402:37;1456:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1628:36:88;;;6174:28:6;;1616:2:88;1601:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:620::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;412:9;406:16;431:44;469:5;431:44;:::i;:::-;544:2;529:18;;523:25;494:5;;-1:-1:-1;557:46:88;523:25;557:46;:::i;:::-;674:2;659:18;;653:25;622:7;;-1:-1:-1;716:15:88;;709:23;697:36;;687:64;;747:1;744;737:12;687:64;770:7;760:17;;;163:620;;;;;:::o;788:285::-;879:6;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;980:9;974:16;999:44;1037:5;999:44;:::i;:::-;1062:5;788:285;-1:-1:-1;;;788:285:88:o;1486:184::-;687:9907:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@POLICY_CREATOR_ROLE_22056":{"entryPoint":null,"id":22056,"parameterSlots":0,"returnSlots":0},"@PRICER_ROLE_22061":{"entryPoint":null,"id":22061,"parameterSlots":0,"returnSlots":0},"@RESOLVER_ROLE_22066":{"entryPoint":null,"id":22066,"parameterSlots":0,"returnSlots":0},"@_4toWad_20564":{"entryPoint":11061,"id":20564,"parameterSlots":1,"returnSlots":1},"@_XtoAmount_20604":{"entryPoint":8220,"id":20604,"parameterSlots":2,"returnSlots":1},"@__Pausable_init_1113":{"entryPoint":13509,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":15518,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":9793,"id":17875,"parameterSlots":0,"returnSlots":0},"@__RiskModule_init_20302":{"entryPoint":8098,"id":20302,"parameterSlots":7,"returnSlots":0},"@__RiskModule_init_unchained_20364":{"entryPoint":9847,"id":20364,"parameterSlots":7,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":13471,"id":1008,"parameterSlots":0,"returnSlots":0},"@_amountToX_20629":{"entryPoint":8422,"id":20629,"parameterSlots":2,"returnSlots":1},"@_authorizeUpgrade_17890":{"entryPoint":7369,"id":17890,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_getMinimumPremium_21037":{"entryPoint":8369,"id":21037,"parameterSlots":5,"returnSlots":1},"@_makeInternalId_20948":{"entryPoint":9281,"id":20948,"parameterSlots":1,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_newPolicySigned_22244":{"entryPoint":6556,"id":22244,"parameterSlots":10,"returnSlots":1},"@_newPolicyWithParams_21244":{"entryPoint":11612,"id":21244,"parameterSlots":8,"returnSlots":1},"@_newPolicy_21071":{"entryPoint":9296,"id":21071,"parameterSlots":7,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":8910,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":8159,"id":1187,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_1160":{"entryPoint":6484,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":9720,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":9529,"id":510,"parameterSlots":1,"returnSlots":0},"@_throwError_7365":{"entryPoint":11283,"id":7365,"parameterSlots":1,"returnSlots":0},"@_unpackParams_20928":{"entryPoint":8991,"id":20928,"parameterSlots":1,"returnSlots":1},"@_unpause_1203":{"entryPoint":8016,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":7654,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":9684,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":13371,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":13194,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_20394":{"entryPoint":9339,"id":20394,"parameterSlots":1,"returnSlots":0},"@_validatePackedParams_20540":{"entryPoint":13609,"id":20540,"parameterSlots":1,"returnSlots":0},"@_validateParameters_20445":{"entryPoint":10968,"id":20445,"parameterSlots":0,"returnSlots":0},"@_wadTo4_20579":{"entryPoint":8397,"id":20579,"parameterSlots":1,"returnSlots":1},"@activeExposure_20674":{"entryPoint":null,"id":20674,"parameterSlots":0,"returnSlots":1},"@currency_17973":{"entryPoint":5959,"id":17973,"parameterSlots":0,"returnSlots":1},"@exposureLimit_20655":{"entryPoint":4022,"id":20655,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":13434,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":15402,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getMinimumPremium_15158":{"entryPoint":10369,"id":15158,"parameterSlots":5,"returnSlots":1},"@getMinimumPremium_21010":{"entryPoint":4056,"id":21010,"parameterSlots":3,"returnSlots":1},"@hasPoolRole_17995":{"entryPoint":8566,"id":17995,"parameterSlots":1,"returnSlots":1},"@initialize_15300":{"entryPoint":15034,"id":15300,"parameterSlots":7,"returnSlots":1},"@initialize_22130":{"entryPoint":3088,"id":22130,"parameterSlots":7,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@log10_8586":{"entryPoint":14630,"id":8586,"parameterSlots":1,"returnSlots":1},"@maxDuration_20665":{"entryPoint":null,"id":20665,"parameterSlots":0,"returnSlots":1},"@maxPayoutPerPolicy_20642":{"entryPoint":5370,"id":20642,"parameterSlots":0,"returnSlots":1},"@name_20549":{"entryPoint":1618,"id":20549,"parameterSlots":0,"returnSlots":1},"@newPolicyFull_22286":{"entryPoint":1992,"id":22286,"parameterSlots":9,"returnSlots":1},"@newPolicyPaidByHolder_22387":{"entryPoint":2702,"id":22387,"parameterSlots":9,"returnSlots":1},"@newPolicy_22328":{"entryPoint":1575,"id":22328,"parameterSlots":9,"returnSlots":1},"@params_20887":{"entryPoint":5400,"id":20887,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":3759,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@premiumsAccount_21460":{"entryPoint":null,"id":21460,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":2525,"id":1026,"parameterSlots":0,"returnSlots":1},"@recover_7515":{"entryPoint":9245,"id":7515,"parameterSlots":3,"returnSlots":1},"@releaseExposure_21450":{"entryPoint":2990,"id":21450,"parameterSlots":1,"returnSlots":0},"@resolvePolicyFullPayout_22429":{"entryPoint":6088,"id":22429,"parameterSlots":2,"returnSlots":0},"@resolvePolicy_22408":{"entryPoint":3369,"id":22408,"parameterSlots":2,"returnSlots":0},"@setParam_20875":{"entryPoint":4085,"id":20875,"parameterSlots":2,"returnSlots":0},"@setWallet_20985":{"entryPoint":5623,"id":20985,"parameterSlots":1,"returnSlots":0},"@supportsInterface_17931":{"entryPoint":6431,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_20416":{"entryPoint":1532,"id":20416,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_7644":{"entryPoint":9187,"id":7644,"parameterSlots":1,"returnSlots":1},"@toString_7141":{"entryPoint":11082,"id":7141,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":8808,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":10868,"id":9452,"parameterSlots":1,"returnSlots":1},"@tryRecover_7485":{"entryPoint":11226,"id":7485,"parameterSlots":3,"returnSlots":2},"@tryRecover_7579":{"entryPoint":14845,"id":7579,"parameterSlots":4,"returnSlots":2},"@unpause_17952":{"entryPoint":2039,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":2322,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":1762,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":15568,"id":2608,"parameterSlots":4,"returnSlots":1},"@wadMul_23186":{"entryPoint":13555,"id":23186,"parameterSlots":2,"returnSlots":1},"@wallet_20683":{"entryPoint":null,"id":20683,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":16358,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":17353,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":16739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":16104,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":16477,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18083,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":15845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":17171,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256":{"entryPoint":16855,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address":{"entryPoint":16596,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool":{"entryPoint":16913,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":16762,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":16573,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":17249,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_bytes32t_bytes32t_uint40":{"entryPoint":15929,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_uint256t_uint256t_uint40":{"entryPoint":16805,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":17731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":15884,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IRiskModule":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":18110,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_PolicyData":{"entryPoint":16131,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData_calldata":{"entryPoint":17364,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":18613,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":18133,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17311,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17198,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":16051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17019,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_480764f09f359bc6962cdebf3d411f712e4a569376eab47f7b4f2b9d5b018433__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17095,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17656,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed":{"entryPoint":17625,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":17557,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":16323,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed":{"entryPoint":18542,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":17606,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":18064,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint40":{"entryPoint":18501,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":17788,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":18007,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":17847,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":18021,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":17292,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":18472,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":17763,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":18210,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":18285,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":16969,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":18191,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":17272,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":18044,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":17586,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":16338,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15909,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":16900,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:39863:88","nodeType":"YulBlock","src":"0:39863:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"545:117:88","nodeType":"YulBlock","src":"545:117:88","statements":[{"nativeSrc":"555:29:88","nodeType":"YulAssignment","src":"555:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"577:6:88","nodeType":"YulIdentifier","src":"577:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"564:12:88","nodeType":"YulIdentifier","src":"564:12:88"},"nativeSrc":"564:20:88","nodeType":"YulFunctionCall","src":"564:20:88"},"variableNames":[{"name":"value","nativeSrc":"555:5:88","nodeType":"YulIdentifier","src":"555:5:88"}]},{"body":{"nativeSrc":"640:16:88","nodeType":"YulBlock","src":"640:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"649:1:88","nodeType":"YulLiteral","src":"649:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"652:1:88","nodeType":"YulLiteral","src":"652:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"642:6:88","nodeType":"YulIdentifier","src":"642:6:88"},"nativeSrc":"642:12:88","nodeType":"YulFunctionCall","src":"642:12:88"},"nativeSrc":"642:12:88","nodeType":"YulExpressionStatement","src":"642:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"606:5:88","nodeType":"YulIdentifier","src":"606:5:88"},{"arguments":[{"name":"value","nativeSrc":"617:5:88","nodeType":"YulIdentifier","src":"617:5:88"},{"kind":"number","nativeSrc":"624:12:88","nodeType":"YulLiteral","src":"624:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"613:3:88","nodeType":"YulIdentifier","src":"613:3:88"},"nativeSrc":"613:24:88","nodeType":"YulFunctionCall","src":"613:24:88"}],"functionName":{"name":"eq","nativeSrc":"603:2:88","nodeType":"YulIdentifier","src":"603:2:88"},"nativeSrc":"603:35:88","nodeType":"YulFunctionCall","src":"603:35:88"}],"functionName":{"name":"iszero","nativeSrc":"596:6:88","nodeType":"YulIdentifier","src":"596:6:88"},"nativeSrc":"596:43:88","nodeType":"YulFunctionCall","src":"596:43:88"},"nativeSrc":"593:63:88","nodeType":"YulIf","src":"593:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"497:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"524:6:88","nodeType":"YulTypedName","src":"524:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"535:5:88","nodeType":"YulTypedName","src":"535:5:88","type":""}],"src":"497:165:88"},{"body":{"nativeSrc":"712:86:88","nodeType":"YulBlock","src":"712:86:88","statements":[{"body":{"nativeSrc":"776:16:88","nodeType":"YulBlock","src":"776:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"785:1:88","nodeType":"YulLiteral","src":"785:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"788:1:88","nodeType":"YulLiteral","src":"788:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"778:6:88","nodeType":"YulIdentifier","src":"778:6:88"},"nativeSrc":"778:12:88","nodeType":"YulFunctionCall","src":"778:12:88"},"nativeSrc":"778:12:88","nodeType":"YulExpressionStatement","src":"778:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"735:5:88","nodeType":"YulIdentifier","src":"735:5:88"},{"arguments":[{"name":"value","nativeSrc":"746:5:88","nodeType":"YulIdentifier","src":"746:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"761:3:88","nodeType":"YulLiteral","src":"761:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"766:1:88","nodeType":"YulLiteral","src":"766:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"757:3:88","nodeType":"YulIdentifier","src":"757:3:88"},"nativeSrc":"757:11:88","nodeType":"YulFunctionCall","src":"757:11:88"},{"kind":"number","nativeSrc":"770:1:88","nodeType":"YulLiteral","src":"770:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"753:3:88","nodeType":"YulIdentifier","src":"753:3:88"},"nativeSrc":"753:19:88","nodeType":"YulFunctionCall","src":"753:19:88"}],"functionName":{"name":"and","nativeSrc":"742:3:88","nodeType":"YulIdentifier","src":"742:3:88"},"nativeSrc":"742:31:88","nodeType":"YulFunctionCall","src":"742:31:88"}],"functionName":{"name":"eq","nativeSrc":"732:2:88","nodeType":"YulIdentifier","src":"732:2:88"},"nativeSrc":"732:42:88","nodeType":"YulFunctionCall","src":"732:42:88"}],"functionName":{"name":"iszero","nativeSrc":"725:6:88","nodeType":"YulIdentifier","src":"725:6:88"},"nativeSrc":"725:50:88","nodeType":"YulFunctionCall","src":"725:50:88"},"nativeSrc":"722:70:88","nodeType":"YulIf","src":"722:70:88"}]},"name":"validator_revert_address","nativeSrc":"667:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"701:5:88","nodeType":"YulTypedName","src":"701:5:88","type":""}],"src":"667:131:88"},{"body":{"nativeSrc":"1007:913:88","nodeType":"YulBlock","src":"1007:913:88","statements":[{"body":{"nativeSrc":"1054:16:88","nodeType":"YulBlock","src":"1054:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1063:1:88","nodeType":"YulLiteral","src":"1063:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1066:1:88","nodeType":"YulLiteral","src":"1066:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1056:6:88","nodeType":"YulIdentifier","src":"1056:6:88"},"nativeSrc":"1056:12:88","nodeType":"YulFunctionCall","src":"1056:12:88"},"nativeSrc":"1056:12:88","nodeType":"YulExpressionStatement","src":"1056:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1028:7:88","nodeType":"YulIdentifier","src":"1028:7:88"},{"name":"headStart","nativeSrc":"1037:9:88","nodeType":"YulIdentifier","src":"1037:9:88"}],"functionName":{"name":"sub","nativeSrc":"1024:3:88","nodeType":"YulIdentifier","src":"1024:3:88"},"nativeSrc":"1024:23:88","nodeType":"YulFunctionCall","src":"1024:23:88"},{"kind":"number","nativeSrc":"1049:3:88","nodeType":"YulLiteral","src":"1049:3:88","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1020:3:88","nodeType":"YulIdentifier","src":"1020:3:88"},"nativeSrc":"1020:33:88","nodeType":"YulFunctionCall","src":"1020:33:88"},"nativeSrc":"1017:53:88","nodeType":"YulIf","src":"1017:53:88"},{"nativeSrc":"1079:14:88","nodeType":"YulVariableDeclaration","src":"1079:14:88","value":{"kind":"number","nativeSrc":"1092:1:88","nodeType":"YulLiteral","src":"1092:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1083:5:88","nodeType":"YulTypedName","src":"1083:5:88","type":""}]},{"nativeSrc":"1102:32:88","nodeType":"YulAssignment","src":"1102:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1124:9:88","nodeType":"YulIdentifier","src":"1124:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1111:12:88","nodeType":"YulIdentifier","src":"1111:12:88"},"nativeSrc":"1111:23:88","nodeType":"YulFunctionCall","src":"1111:23:88"},"variableNames":[{"name":"value","nativeSrc":"1102:5:88","nodeType":"YulIdentifier","src":"1102:5:88"}]},{"nativeSrc":"1143:15:88","nodeType":"YulAssignment","src":"1143:15:88","value":{"name":"value","nativeSrc":"1153:5:88","nodeType":"YulIdentifier","src":"1153:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1143:6:88","nodeType":"YulIdentifier","src":"1143:6:88"}]},{"nativeSrc":"1167:16:88","nodeType":"YulVariableDeclaration","src":"1167:16:88","value":{"kind":"number","nativeSrc":"1182:1:88","nodeType":"YulLiteral","src":"1182:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1171:7:88","nodeType":"YulTypedName","src":"1171:7:88","type":""}]},{"nativeSrc":"1192:43:88","nodeType":"YulAssignment","src":"1192:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1220:9:88","nodeType":"YulIdentifier","src":"1220:9:88"},{"kind":"number","nativeSrc":"1231:2:88","nodeType":"YulLiteral","src":"1231:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1216:3:88","nodeType":"YulIdentifier","src":"1216:3:88"},"nativeSrc":"1216:18:88","nodeType":"YulFunctionCall","src":"1216:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1203:12:88","nodeType":"YulIdentifier","src":"1203:12:88"},"nativeSrc":"1203:32:88","nodeType":"YulFunctionCall","src":"1203:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"1192:7:88","nodeType":"YulIdentifier","src":"1192:7:88"}]},{"nativeSrc":"1244:17:88","nodeType":"YulAssignment","src":"1244:17:88","value":{"name":"value_1","nativeSrc":"1254:7:88","nodeType":"YulIdentifier","src":"1254:7:88"},"variableNames":[{"name":"value1","nativeSrc":"1244:6:88","nodeType":"YulIdentifier","src":"1244:6:88"}]},{"nativeSrc":"1270:16:88","nodeType":"YulVariableDeclaration","src":"1270:16:88","value":{"kind":"number","nativeSrc":"1285:1:88","nodeType":"YulLiteral","src":"1285:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1274:7:88","nodeType":"YulTypedName","src":"1274:7:88","type":""}]},{"nativeSrc":"1295:43:88","nodeType":"YulAssignment","src":"1295:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1323:9:88","nodeType":"YulIdentifier","src":"1323:9:88"},{"kind":"number","nativeSrc":"1334:2:88","nodeType":"YulLiteral","src":"1334:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1319:3:88","nodeType":"YulIdentifier","src":"1319:3:88"},"nativeSrc":"1319:18:88","nodeType":"YulFunctionCall","src":"1319:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1306:12:88","nodeType":"YulIdentifier","src":"1306:12:88"},"nativeSrc":"1306:32:88","nodeType":"YulFunctionCall","src":"1306:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"1295:7:88","nodeType":"YulIdentifier","src":"1295:7:88"}]},{"nativeSrc":"1347:17:88","nodeType":"YulAssignment","src":"1347:17:88","value":{"name":"value_2","nativeSrc":"1357:7:88","nodeType":"YulIdentifier","src":"1357:7:88"},"variableNames":[{"name":"value2","nativeSrc":"1347:6:88","nodeType":"YulIdentifier","src":"1347:6:88"}]},{"nativeSrc":"1373:47:88","nodeType":"YulAssignment","src":"1373:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1405:9:88","nodeType":"YulIdentifier","src":"1405:9:88"},{"kind":"number","nativeSrc":"1416:2:88","nodeType":"YulLiteral","src":"1416:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1401:3:88","nodeType":"YulIdentifier","src":"1401:3:88"},"nativeSrc":"1401:18:88","nodeType":"YulFunctionCall","src":"1401:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"1383:17:88","nodeType":"YulIdentifier","src":"1383:17:88"},"nativeSrc":"1383:37:88","nodeType":"YulFunctionCall","src":"1383:37:88"},"variableNames":[{"name":"value3","nativeSrc":"1373:6:88","nodeType":"YulIdentifier","src":"1373:6:88"}]},{"nativeSrc":"1429:48:88","nodeType":"YulVariableDeclaration","src":"1429:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1461:9:88","nodeType":"YulIdentifier","src":"1461:9:88"},{"kind":"number","nativeSrc":"1472:3:88","nodeType":"YulLiteral","src":"1472:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1457:3:88","nodeType":"YulIdentifier","src":"1457:3:88"},"nativeSrc":"1457:19:88","nodeType":"YulFunctionCall","src":"1457:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1444:12:88","nodeType":"YulIdentifier","src":"1444:12:88"},"nativeSrc":"1444:33:88","nodeType":"YulFunctionCall","src":"1444:33:88"},"variables":[{"name":"value_3","nativeSrc":"1433:7:88","nodeType":"YulTypedName","src":"1433:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"1511:7:88","nodeType":"YulIdentifier","src":"1511:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1486:24:88","nodeType":"YulIdentifier","src":"1486:24:88"},"nativeSrc":"1486:33:88","nodeType":"YulFunctionCall","src":"1486:33:88"},"nativeSrc":"1486:33:88","nodeType":"YulExpressionStatement","src":"1486:33:88"},{"nativeSrc":"1528:17:88","nodeType":"YulAssignment","src":"1528:17:88","value":{"name":"value_3","nativeSrc":"1538:7:88","nodeType":"YulIdentifier","src":"1538:7:88"},"variableNames":[{"name":"value4","nativeSrc":"1528:6:88","nodeType":"YulIdentifier","src":"1528:6:88"}]},{"nativeSrc":"1554:16:88","nodeType":"YulVariableDeclaration","src":"1554:16:88","value":{"kind":"number","nativeSrc":"1569:1:88","nodeType":"YulLiteral","src":"1569:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"1558:7:88","nodeType":"YulTypedName","src":"1558:7:88","type":""}]},{"nativeSrc":"1579:44:88","nodeType":"YulAssignment","src":"1579:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1607:9:88","nodeType":"YulIdentifier","src":"1607:9:88"},{"kind":"number","nativeSrc":"1618:3:88","nodeType":"YulLiteral","src":"1618:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1603:3:88","nodeType":"YulIdentifier","src":"1603:3:88"},"nativeSrc":"1603:19:88","nodeType":"YulFunctionCall","src":"1603:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1590:12:88","nodeType":"YulIdentifier","src":"1590:12:88"},"nativeSrc":"1590:33:88","nodeType":"YulFunctionCall","src":"1590:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"1579:7:88","nodeType":"YulIdentifier","src":"1579:7:88"}]},{"nativeSrc":"1632:17:88","nodeType":"YulAssignment","src":"1632:17:88","value":{"name":"value_4","nativeSrc":"1642:7:88","nodeType":"YulIdentifier","src":"1642:7:88"},"variableNames":[{"name":"value5","nativeSrc":"1632:6:88","nodeType":"YulIdentifier","src":"1632:6:88"}]},{"nativeSrc":"1658:16:88","nodeType":"YulVariableDeclaration","src":"1658:16:88","value":{"kind":"number","nativeSrc":"1673:1:88","nodeType":"YulLiteral","src":"1673:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"1662:7:88","nodeType":"YulTypedName","src":"1662:7:88","type":""}]},{"nativeSrc":"1683:44:88","nodeType":"YulAssignment","src":"1683:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1711:9:88","nodeType":"YulIdentifier","src":"1711:9:88"},{"kind":"number","nativeSrc":"1722:3:88","nodeType":"YulLiteral","src":"1722:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"1707:3:88","nodeType":"YulIdentifier","src":"1707:3:88"},"nativeSrc":"1707:19:88","nodeType":"YulFunctionCall","src":"1707:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1694:12:88","nodeType":"YulIdentifier","src":"1694:12:88"},"nativeSrc":"1694:33:88","nodeType":"YulFunctionCall","src":"1694:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"1683:7:88","nodeType":"YulIdentifier","src":"1683:7:88"}]},{"nativeSrc":"1736:17:88","nodeType":"YulAssignment","src":"1736:17:88","value":{"name":"value_5","nativeSrc":"1746:7:88","nodeType":"YulIdentifier","src":"1746:7:88"},"variableNames":[{"name":"value6","nativeSrc":"1736:6:88","nodeType":"YulIdentifier","src":"1736:6:88"}]},{"nativeSrc":"1762:16:88","nodeType":"YulVariableDeclaration","src":"1762:16:88","value":{"kind":"number","nativeSrc":"1777:1:88","nodeType":"YulLiteral","src":"1777:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"1766:7:88","nodeType":"YulTypedName","src":"1766:7:88","type":""}]},{"nativeSrc":"1787:44:88","nodeType":"YulAssignment","src":"1787:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1815:9:88","nodeType":"YulIdentifier","src":"1815:9:88"},{"kind":"number","nativeSrc":"1826:3:88","nodeType":"YulLiteral","src":"1826:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"1811:3:88","nodeType":"YulIdentifier","src":"1811:3:88"},"nativeSrc":"1811:19:88","nodeType":"YulFunctionCall","src":"1811:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1798:12:88","nodeType":"YulIdentifier","src":"1798:12:88"},"nativeSrc":"1798:33:88","nodeType":"YulFunctionCall","src":"1798:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"1787:7:88","nodeType":"YulIdentifier","src":"1787:7:88"}]},{"nativeSrc":"1840:17:88","nodeType":"YulAssignment","src":"1840:17:88","value":{"name":"value_6","nativeSrc":"1850:7:88","nodeType":"YulIdentifier","src":"1850:7:88"},"variableNames":[{"name":"value7","nativeSrc":"1840:6:88","nodeType":"YulIdentifier","src":"1840:6:88"}]},{"nativeSrc":"1866:48:88","nodeType":"YulAssignment","src":"1866:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1898:9:88","nodeType":"YulIdentifier","src":"1898:9:88"},{"kind":"number","nativeSrc":"1909:3:88","nodeType":"YulLiteral","src":"1909:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"1894:3:88","nodeType":"YulIdentifier","src":"1894:3:88"},"nativeSrc":"1894:19:88","nodeType":"YulFunctionCall","src":"1894:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"1876:17:88","nodeType":"YulIdentifier","src":"1876:17:88"},"nativeSrc":"1876:38:88","nodeType":"YulFunctionCall","src":"1876:38:88"},"variableNames":[{"name":"value8","nativeSrc":"1866:6:88","nodeType":"YulIdentifier","src":"1866:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_bytes32t_bytes32t_uint40","nativeSrc":"803:1117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"909:9:88","nodeType":"YulTypedName","src":"909:9:88","type":""},{"name":"dataEnd","nativeSrc":"920:7:88","nodeType":"YulTypedName","src":"920:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"932:6:88","nodeType":"YulTypedName","src":"932:6:88","type":""},{"name":"value1","nativeSrc":"940:6:88","nodeType":"YulTypedName","src":"940:6:88","type":""},{"name":"value2","nativeSrc":"948:6:88","nodeType":"YulTypedName","src":"948:6:88","type":""},{"name":"value3","nativeSrc":"956:6:88","nodeType":"YulTypedName","src":"956:6:88","type":""},{"name":"value4","nativeSrc":"964:6:88","nodeType":"YulTypedName","src":"964:6:88","type":""},{"name":"value5","nativeSrc":"972:6:88","nodeType":"YulTypedName","src":"972:6:88","type":""},{"name":"value6","nativeSrc":"980:6:88","nodeType":"YulTypedName","src":"980:6:88","type":""},{"name":"value7","nativeSrc":"988:6:88","nodeType":"YulTypedName","src":"988:6:88","type":""},{"name":"value8","nativeSrc":"996:6:88","nodeType":"YulTypedName","src":"996:6:88","type":""}],"src":"803:1117:88"},{"body":{"nativeSrc":"2026:76:88","nodeType":"YulBlock","src":"2026:76:88","statements":[{"nativeSrc":"2036:26:88","nodeType":"YulAssignment","src":"2036:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2048:9:88","nodeType":"YulIdentifier","src":"2048:9:88"},{"kind":"number","nativeSrc":"2059:2:88","nodeType":"YulLiteral","src":"2059:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2044:3:88","nodeType":"YulIdentifier","src":"2044:3:88"},"nativeSrc":"2044:18:88","nodeType":"YulFunctionCall","src":"2044:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2036:4:88","nodeType":"YulIdentifier","src":"2036:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2078:9:88","nodeType":"YulIdentifier","src":"2078:9:88"},{"name":"value0","nativeSrc":"2089:6:88","nodeType":"YulIdentifier","src":"2089:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2071:6:88","nodeType":"YulIdentifier","src":"2071:6:88"},"nativeSrc":"2071:25:88","nodeType":"YulFunctionCall","src":"2071:25:88"},"nativeSrc":"2071:25:88","nodeType":"YulExpressionStatement","src":"2071:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1925:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1995:9:88","nodeType":"YulTypedName","src":"1995:9:88","type":""},{"name":"value0","nativeSrc":"2006:6:88","nodeType":"YulTypedName","src":"2006:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2017:4:88","nodeType":"YulTypedName","src":"2017:4:88","type":""}],"src":"1925:177:88"},{"body":{"nativeSrc":"2228:297:88","nodeType":"YulBlock","src":"2228:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2245:9:88","nodeType":"YulIdentifier","src":"2245:9:88"},{"kind":"number","nativeSrc":"2256:2:88","nodeType":"YulLiteral","src":"2256:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2238:6:88","nodeType":"YulIdentifier","src":"2238:6:88"},"nativeSrc":"2238:21:88","nodeType":"YulFunctionCall","src":"2238:21:88"},"nativeSrc":"2238:21:88","nodeType":"YulExpressionStatement","src":"2238:21:88"},{"nativeSrc":"2268:27:88","nodeType":"YulVariableDeclaration","src":"2268:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"2288:6:88","nodeType":"YulIdentifier","src":"2288:6:88"}],"functionName":{"name":"mload","nativeSrc":"2282:5:88","nodeType":"YulIdentifier","src":"2282:5:88"},"nativeSrc":"2282:13:88","nodeType":"YulFunctionCall","src":"2282:13:88"},"variables":[{"name":"length","nativeSrc":"2272:6:88","nodeType":"YulTypedName","src":"2272:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2315:9:88","nodeType":"YulIdentifier","src":"2315:9:88"},{"kind":"number","nativeSrc":"2326:2:88","nodeType":"YulLiteral","src":"2326:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2311:3:88","nodeType":"YulIdentifier","src":"2311:3:88"},"nativeSrc":"2311:18:88","nodeType":"YulFunctionCall","src":"2311:18:88"},{"name":"length","nativeSrc":"2331:6:88","nodeType":"YulIdentifier","src":"2331:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2304:6:88","nodeType":"YulIdentifier","src":"2304:6:88"},"nativeSrc":"2304:34:88","nodeType":"YulFunctionCall","src":"2304:34:88"},"nativeSrc":"2304:34:88","nodeType":"YulExpressionStatement","src":"2304:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2357:9:88","nodeType":"YulIdentifier","src":"2357:9:88"},{"kind":"number","nativeSrc":"2368:2:88","nodeType":"YulLiteral","src":"2368:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2353:3:88","nodeType":"YulIdentifier","src":"2353:3:88"},"nativeSrc":"2353:18:88","nodeType":"YulFunctionCall","src":"2353:18:88"},{"arguments":[{"name":"value0","nativeSrc":"2377:6:88","nodeType":"YulIdentifier","src":"2377:6:88"},{"kind":"number","nativeSrc":"2385:2:88","nodeType":"YulLiteral","src":"2385:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2373:3:88","nodeType":"YulIdentifier","src":"2373:3:88"},"nativeSrc":"2373:15:88","nodeType":"YulFunctionCall","src":"2373:15:88"},{"name":"length","nativeSrc":"2390:6:88","nodeType":"YulIdentifier","src":"2390:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"2347:5:88","nodeType":"YulIdentifier","src":"2347:5:88"},"nativeSrc":"2347:50:88","nodeType":"YulFunctionCall","src":"2347:50:88"},"nativeSrc":"2347:50:88","nodeType":"YulExpressionStatement","src":"2347:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2421:9:88","nodeType":"YulIdentifier","src":"2421:9:88"},{"name":"length","nativeSrc":"2432:6:88","nodeType":"YulIdentifier","src":"2432:6:88"}],"functionName":{"name":"add","nativeSrc":"2417:3:88","nodeType":"YulIdentifier","src":"2417:3:88"},"nativeSrc":"2417:22:88","nodeType":"YulFunctionCall","src":"2417:22:88"},{"kind":"number","nativeSrc":"2441:2:88","nodeType":"YulLiteral","src":"2441:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2413:3:88","nodeType":"YulIdentifier","src":"2413:3:88"},"nativeSrc":"2413:31:88","nodeType":"YulFunctionCall","src":"2413:31:88"},{"kind":"number","nativeSrc":"2446:1:88","nodeType":"YulLiteral","src":"2446:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2406:6:88","nodeType":"YulIdentifier","src":"2406:6:88"},"nativeSrc":"2406:42:88","nodeType":"YulFunctionCall","src":"2406:42:88"},"nativeSrc":"2406:42:88","nodeType":"YulExpressionStatement","src":"2406:42:88"},{"nativeSrc":"2457:62:88","nodeType":"YulAssignment","src":"2457:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2473:9:88","nodeType":"YulIdentifier","src":"2473:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2492:6:88","nodeType":"YulIdentifier","src":"2492:6:88"},{"kind":"number","nativeSrc":"2500:2:88","nodeType":"YulLiteral","src":"2500:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2488:3:88","nodeType":"YulIdentifier","src":"2488:3:88"},"nativeSrc":"2488:15:88","nodeType":"YulFunctionCall","src":"2488:15:88"},{"arguments":[{"kind":"number","nativeSrc":"2509:2:88","nodeType":"YulLiteral","src":"2509:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2505:3:88","nodeType":"YulIdentifier","src":"2505:3:88"},"nativeSrc":"2505:7:88","nodeType":"YulFunctionCall","src":"2505:7:88"}],"functionName":{"name":"and","nativeSrc":"2484:3:88","nodeType":"YulIdentifier","src":"2484:3:88"},"nativeSrc":"2484:29:88","nodeType":"YulFunctionCall","src":"2484:29:88"}],"functionName":{"name":"add","nativeSrc":"2469:3:88","nodeType":"YulIdentifier","src":"2469:3:88"},"nativeSrc":"2469:45:88","nodeType":"YulFunctionCall","src":"2469:45:88"},{"kind":"number","nativeSrc":"2516:2:88","nodeType":"YulLiteral","src":"2516:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2465:3:88","nodeType":"YulIdentifier","src":"2465:3:88"},"nativeSrc":"2465:54:88","nodeType":"YulFunctionCall","src":"2465:54:88"},"variableNames":[{"name":"tail","nativeSrc":"2457:4:88","nodeType":"YulIdentifier","src":"2457:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2107:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2197:9:88","nodeType":"YulTypedName","src":"2197:9:88","type":""},{"name":"value0","nativeSrc":"2208:6:88","nodeType":"YulTypedName","src":"2208:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2219:4:88","nodeType":"YulTypedName","src":"2219:4:88","type":""}],"src":"2107:418:88"},{"body":{"nativeSrc":"2600:177:88","nodeType":"YulBlock","src":"2600:177:88","statements":[{"body":{"nativeSrc":"2646:16:88","nodeType":"YulBlock","src":"2646:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2655:1:88","nodeType":"YulLiteral","src":"2655:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2658:1:88","nodeType":"YulLiteral","src":"2658:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2648:6:88","nodeType":"YulIdentifier","src":"2648:6:88"},"nativeSrc":"2648:12:88","nodeType":"YulFunctionCall","src":"2648:12:88"},"nativeSrc":"2648:12:88","nodeType":"YulExpressionStatement","src":"2648:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2621:7:88","nodeType":"YulIdentifier","src":"2621:7:88"},{"name":"headStart","nativeSrc":"2630:9:88","nodeType":"YulIdentifier","src":"2630:9:88"}],"functionName":{"name":"sub","nativeSrc":"2617:3:88","nodeType":"YulIdentifier","src":"2617:3:88"},"nativeSrc":"2617:23:88","nodeType":"YulFunctionCall","src":"2617:23:88"},{"kind":"number","nativeSrc":"2642:2:88","nodeType":"YulLiteral","src":"2642:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2613:3:88","nodeType":"YulIdentifier","src":"2613:3:88"},"nativeSrc":"2613:32:88","nodeType":"YulFunctionCall","src":"2613:32:88"},"nativeSrc":"2610:52:88","nodeType":"YulIf","src":"2610:52:88"},{"nativeSrc":"2671:36:88","nodeType":"YulVariableDeclaration","src":"2671:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2697:9:88","nodeType":"YulIdentifier","src":"2697:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2684:12:88","nodeType":"YulIdentifier","src":"2684:12:88"},"nativeSrc":"2684:23:88","nodeType":"YulFunctionCall","src":"2684:23:88"},"variables":[{"name":"value","nativeSrc":"2675:5:88","nodeType":"YulTypedName","src":"2675:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2741:5:88","nodeType":"YulIdentifier","src":"2741:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2716:24:88","nodeType":"YulIdentifier","src":"2716:24:88"},"nativeSrc":"2716:31:88","nodeType":"YulFunctionCall","src":"2716:31:88"},"nativeSrc":"2716:31:88","nodeType":"YulExpressionStatement","src":"2716:31:88"},{"nativeSrc":"2756:15:88","nodeType":"YulAssignment","src":"2756:15:88","value":{"name":"value","nativeSrc":"2766:5:88","nodeType":"YulIdentifier","src":"2766:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2756:6:88","nodeType":"YulIdentifier","src":"2756:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2530:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2566:9:88","nodeType":"YulTypedName","src":"2566:9:88","type":""},{"name":"dataEnd","nativeSrc":"2577:7:88","nodeType":"YulTypedName","src":"2577:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2589:6:88","nodeType":"YulTypedName","src":"2589:6:88","type":""}],"src":"2530:247:88"},{"body":{"nativeSrc":"2839:60:88","nodeType":"YulBlock","src":"2839:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2856:3:88","nodeType":"YulIdentifier","src":"2856:3:88"},{"arguments":[{"name":"value","nativeSrc":"2865:5:88","nodeType":"YulIdentifier","src":"2865:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2880:3:88","nodeType":"YulLiteral","src":"2880:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2885:1:88","nodeType":"YulLiteral","src":"2885:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2876:3:88","nodeType":"YulIdentifier","src":"2876:3:88"},"nativeSrc":"2876:11:88","nodeType":"YulFunctionCall","src":"2876:11:88"},{"kind":"number","nativeSrc":"2889:1:88","nodeType":"YulLiteral","src":"2889:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2872:3:88","nodeType":"YulIdentifier","src":"2872:3:88"},"nativeSrc":"2872:19:88","nodeType":"YulFunctionCall","src":"2872:19:88"}],"functionName":{"name":"and","nativeSrc":"2861:3:88","nodeType":"YulIdentifier","src":"2861:3:88"},"nativeSrc":"2861:31:88","nodeType":"YulFunctionCall","src":"2861:31:88"}],"functionName":{"name":"mstore","nativeSrc":"2849:6:88","nodeType":"YulIdentifier","src":"2849:6:88"},"nativeSrc":"2849:44:88","nodeType":"YulFunctionCall","src":"2849:44:88"},"nativeSrc":"2849:44:88","nodeType":"YulExpressionStatement","src":"2849:44:88"}]},"name":"abi_encode_contract_IRiskModule","nativeSrc":"2782:117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2823:5:88","nodeType":"YulTypedName","src":"2823:5:88","type":""},{"name":"pos","nativeSrc":"2830:3:88","nodeType":"YulTypedName","src":"2830:3:88","type":""}],"src":"2782:117:88"},{"body":{"nativeSrc":"2947:53:88","nodeType":"YulBlock","src":"2947:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2964:3:88","nodeType":"YulIdentifier","src":"2964:3:88"},{"arguments":[{"name":"value","nativeSrc":"2973:5:88","nodeType":"YulIdentifier","src":"2973:5:88"},{"kind":"number","nativeSrc":"2980:12:88","nodeType":"YulLiteral","src":"2980:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"2969:3:88","nodeType":"YulIdentifier","src":"2969:3:88"},"nativeSrc":"2969:24:88","nodeType":"YulFunctionCall","src":"2969:24:88"}],"functionName":{"name":"mstore","nativeSrc":"2957:6:88","nodeType":"YulIdentifier","src":"2957:6:88"},"nativeSrc":"2957:37:88","nodeType":"YulFunctionCall","src":"2957:37:88"},"nativeSrc":"2957:37:88","nodeType":"YulExpressionStatement","src":"2957:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"2904:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2931:5:88","nodeType":"YulTypedName","src":"2931:5:88","type":""},{"name":"pos","nativeSrc":"2938:3:88","nodeType":"YulTypedName","src":"2938:3:88","type":""}],"src":"2904:96:88"},{"body":{"nativeSrc":"3059:971:88","nodeType":"YulBlock","src":"3059:971:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3076:3:88","nodeType":"YulIdentifier","src":"3076:3:88"},{"arguments":[{"name":"value","nativeSrc":"3087:5:88","nodeType":"YulIdentifier","src":"3087:5:88"}],"functionName":{"name":"mload","nativeSrc":"3081:5:88","nodeType":"YulIdentifier","src":"3081:5:88"},"nativeSrc":"3081:12:88","nodeType":"YulFunctionCall","src":"3081:12:88"}],"functionName":{"name":"mstore","nativeSrc":"3069:6:88","nodeType":"YulIdentifier","src":"3069:6:88"},"nativeSrc":"3069:25:88","nodeType":"YulFunctionCall","src":"3069:25:88"},"nativeSrc":"3069:25:88","nodeType":"YulExpressionStatement","src":"3069:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3114:3:88","nodeType":"YulIdentifier","src":"3114:3:88"},{"kind":"number","nativeSrc":"3119:4:88","nodeType":"YulLiteral","src":"3119:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3110:3:88","nodeType":"YulIdentifier","src":"3110:3:88"},"nativeSrc":"3110:14:88","nodeType":"YulFunctionCall","src":"3110:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3136:5:88","nodeType":"YulIdentifier","src":"3136:5:88"},{"kind":"number","nativeSrc":"3143:4:88","nodeType":"YulLiteral","src":"3143:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3132:3:88","nodeType":"YulIdentifier","src":"3132:3:88"},"nativeSrc":"3132:16:88","nodeType":"YulFunctionCall","src":"3132:16:88"}],"functionName":{"name":"mload","nativeSrc":"3126:5:88","nodeType":"YulIdentifier","src":"3126:5:88"},"nativeSrc":"3126:23:88","nodeType":"YulFunctionCall","src":"3126:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3103:6:88","nodeType":"YulIdentifier","src":"3103:6:88"},"nativeSrc":"3103:47:88","nodeType":"YulFunctionCall","src":"3103:47:88"},"nativeSrc":"3103:47:88","nodeType":"YulExpressionStatement","src":"3103:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3170:3:88","nodeType":"YulIdentifier","src":"3170:3:88"},{"kind":"number","nativeSrc":"3175:4:88","nodeType":"YulLiteral","src":"3175:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3166:3:88","nodeType":"YulIdentifier","src":"3166:3:88"},"nativeSrc":"3166:14:88","nodeType":"YulFunctionCall","src":"3166:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3192:5:88","nodeType":"YulIdentifier","src":"3192:5:88"},{"kind":"number","nativeSrc":"3199:4:88","nodeType":"YulLiteral","src":"3199:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3188:3:88","nodeType":"YulIdentifier","src":"3188:3:88"},"nativeSrc":"3188:16:88","nodeType":"YulFunctionCall","src":"3188:16:88"}],"functionName":{"name":"mload","nativeSrc":"3182:5:88","nodeType":"YulIdentifier","src":"3182:5:88"},"nativeSrc":"3182:23:88","nodeType":"YulFunctionCall","src":"3182:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3159:6:88","nodeType":"YulIdentifier","src":"3159:6:88"},"nativeSrc":"3159:47:88","nodeType":"YulFunctionCall","src":"3159:47:88"},"nativeSrc":"3159:47:88","nodeType":"YulExpressionStatement","src":"3159:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3226:3:88","nodeType":"YulIdentifier","src":"3226:3:88"},{"kind":"number","nativeSrc":"3231:4:88","nodeType":"YulLiteral","src":"3231:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3222:3:88","nodeType":"YulIdentifier","src":"3222:3:88"},"nativeSrc":"3222:14:88","nodeType":"YulFunctionCall","src":"3222:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3248:5:88","nodeType":"YulIdentifier","src":"3248:5:88"},{"kind":"number","nativeSrc":"3255:4:88","nodeType":"YulLiteral","src":"3255:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3244:3:88","nodeType":"YulIdentifier","src":"3244:3:88"},"nativeSrc":"3244:16:88","nodeType":"YulFunctionCall","src":"3244:16:88"}],"functionName":{"name":"mload","nativeSrc":"3238:5:88","nodeType":"YulIdentifier","src":"3238:5:88"},"nativeSrc":"3238:23:88","nodeType":"YulFunctionCall","src":"3238:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3215:6:88","nodeType":"YulIdentifier","src":"3215:6:88"},"nativeSrc":"3215:47:88","nodeType":"YulFunctionCall","src":"3215:47:88"},"nativeSrc":"3215:47:88","nodeType":"YulExpressionStatement","src":"3215:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3282:3:88","nodeType":"YulIdentifier","src":"3282:3:88"},{"kind":"number","nativeSrc":"3287:4:88","nodeType":"YulLiteral","src":"3287:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"3278:3:88","nodeType":"YulIdentifier","src":"3278:3:88"},"nativeSrc":"3278:14:88","nodeType":"YulFunctionCall","src":"3278:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3304:5:88","nodeType":"YulIdentifier","src":"3304:5:88"},{"kind":"number","nativeSrc":"3311:4:88","nodeType":"YulLiteral","src":"3311:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"3300:3:88","nodeType":"YulIdentifier","src":"3300:3:88"},"nativeSrc":"3300:16:88","nodeType":"YulFunctionCall","src":"3300:16:88"}],"functionName":{"name":"mload","nativeSrc":"3294:5:88","nodeType":"YulIdentifier","src":"3294:5:88"},"nativeSrc":"3294:23:88","nodeType":"YulFunctionCall","src":"3294:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3271:6:88","nodeType":"YulIdentifier","src":"3271:6:88"},"nativeSrc":"3271:47:88","nodeType":"YulFunctionCall","src":"3271:47:88"},"nativeSrc":"3271:47:88","nodeType":"YulExpressionStatement","src":"3271:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3338:3:88","nodeType":"YulIdentifier","src":"3338:3:88"},{"kind":"number","nativeSrc":"3343:4:88","nodeType":"YulLiteral","src":"3343:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"3334:3:88","nodeType":"YulIdentifier","src":"3334:3:88"},"nativeSrc":"3334:14:88","nodeType":"YulFunctionCall","src":"3334:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3360:5:88","nodeType":"YulIdentifier","src":"3360:5:88"},{"kind":"number","nativeSrc":"3367:4:88","nodeType":"YulLiteral","src":"3367:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"3356:3:88","nodeType":"YulIdentifier","src":"3356:3:88"},"nativeSrc":"3356:16:88","nodeType":"YulFunctionCall","src":"3356:16:88"}],"functionName":{"name":"mload","nativeSrc":"3350:5:88","nodeType":"YulIdentifier","src":"3350:5:88"},"nativeSrc":"3350:23:88","nodeType":"YulFunctionCall","src":"3350:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3327:6:88","nodeType":"YulIdentifier","src":"3327:6:88"},"nativeSrc":"3327:47:88","nodeType":"YulFunctionCall","src":"3327:47:88"},"nativeSrc":"3327:47:88","nodeType":"YulExpressionStatement","src":"3327:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3394:3:88","nodeType":"YulIdentifier","src":"3394:3:88"},{"kind":"number","nativeSrc":"3399:4:88","nodeType":"YulLiteral","src":"3399:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"3390:3:88","nodeType":"YulIdentifier","src":"3390:3:88"},"nativeSrc":"3390:14:88","nodeType":"YulFunctionCall","src":"3390:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3416:5:88","nodeType":"YulIdentifier","src":"3416:5:88"},{"kind":"number","nativeSrc":"3423:4:88","nodeType":"YulLiteral","src":"3423:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"3412:3:88","nodeType":"YulIdentifier","src":"3412:3:88"},"nativeSrc":"3412:16:88","nodeType":"YulFunctionCall","src":"3412:16:88"}],"functionName":{"name":"mload","nativeSrc":"3406:5:88","nodeType":"YulIdentifier","src":"3406:5:88"},"nativeSrc":"3406:23:88","nodeType":"YulFunctionCall","src":"3406:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3383:6:88","nodeType":"YulIdentifier","src":"3383:6:88"},"nativeSrc":"3383:47:88","nodeType":"YulFunctionCall","src":"3383:47:88"},"nativeSrc":"3383:47:88","nodeType":"YulExpressionStatement","src":"3383:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3450:3:88","nodeType":"YulIdentifier","src":"3450:3:88"},{"kind":"number","nativeSrc":"3455:4:88","nodeType":"YulLiteral","src":"3455:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"3446:3:88","nodeType":"YulIdentifier","src":"3446:3:88"},"nativeSrc":"3446:14:88","nodeType":"YulFunctionCall","src":"3446:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3472:5:88","nodeType":"YulIdentifier","src":"3472:5:88"},{"kind":"number","nativeSrc":"3479:4:88","nodeType":"YulLiteral","src":"3479:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"3468:3:88","nodeType":"YulIdentifier","src":"3468:3:88"},"nativeSrc":"3468:16:88","nodeType":"YulFunctionCall","src":"3468:16:88"}],"functionName":{"name":"mload","nativeSrc":"3462:5:88","nodeType":"YulIdentifier","src":"3462:5:88"},"nativeSrc":"3462:23:88","nodeType":"YulFunctionCall","src":"3462:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3439:6:88","nodeType":"YulIdentifier","src":"3439:6:88"},"nativeSrc":"3439:47:88","nodeType":"YulFunctionCall","src":"3439:47:88"},"nativeSrc":"3439:47:88","nodeType":"YulExpressionStatement","src":"3439:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3506:3:88","nodeType":"YulIdentifier","src":"3506:3:88"},{"kind":"number","nativeSrc":"3511:6:88","nodeType":"YulLiteral","src":"3511:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"3502:3:88","nodeType":"YulIdentifier","src":"3502:3:88"},"nativeSrc":"3502:16:88","nodeType":"YulFunctionCall","src":"3502:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3530:5:88","nodeType":"YulIdentifier","src":"3530:5:88"},{"kind":"number","nativeSrc":"3537:6:88","nodeType":"YulLiteral","src":"3537:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"3526:3:88","nodeType":"YulIdentifier","src":"3526:3:88"},"nativeSrc":"3526:18:88","nodeType":"YulFunctionCall","src":"3526:18:88"}],"functionName":{"name":"mload","nativeSrc":"3520:5:88","nodeType":"YulIdentifier","src":"3520:5:88"},"nativeSrc":"3520:25:88","nodeType":"YulFunctionCall","src":"3520:25:88"}],"functionName":{"name":"mstore","nativeSrc":"3495:6:88","nodeType":"YulIdentifier","src":"3495:6:88"},"nativeSrc":"3495:51:88","nodeType":"YulFunctionCall","src":"3495:51:88"},"nativeSrc":"3495:51:88","nodeType":"YulExpressionStatement","src":"3495:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3566:3:88","nodeType":"YulIdentifier","src":"3566:3:88"},{"kind":"number","nativeSrc":"3571:6:88","nodeType":"YulLiteral","src":"3571:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"3562:3:88","nodeType":"YulIdentifier","src":"3562:3:88"},"nativeSrc":"3562:16:88","nodeType":"YulFunctionCall","src":"3562:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3590:5:88","nodeType":"YulIdentifier","src":"3590:5:88"},{"kind":"number","nativeSrc":"3597:6:88","nodeType":"YulLiteral","src":"3597:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"3586:3:88","nodeType":"YulIdentifier","src":"3586:3:88"},"nativeSrc":"3586:18:88","nodeType":"YulFunctionCall","src":"3586:18:88"}],"functionName":{"name":"mload","nativeSrc":"3580:5:88","nodeType":"YulIdentifier","src":"3580:5:88"},"nativeSrc":"3580:25:88","nodeType":"YulFunctionCall","src":"3580:25:88"}],"functionName":{"name":"mstore","nativeSrc":"3555:6:88","nodeType":"YulIdentifier","src":"3555:6:88"},"nativeSrc":"3555:51:88","nodeType":"YulFunctionCall","src":"3555:51:88"},"nativeSrc":"3555:51:88","nodeType":"YulExpressionStatement","src":"3555:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3626:3:88","nodeType":"YulIdentifier","src":"3626:3:88"},{"kind":"number","nativeSrc":"3631:6:88","nodeType":"YulLiteral","src":"3631:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"3622:3:88","nodeType":"YulIdentifier","src":"3622:3:88"},"nativeSrc":"3622:16:88","nodeType":"YulFunctionCall","src":"3622:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3650:5:88","nodeType":"YulIdentifier","src":"3650:5:88"},{"kind":"number","nativeSrc":"3657:6:88","nodeType":"YulLiteral","src":"3657:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"3646:3:88","nodeType":"YulIdentifier","src":"3646:3:88"},"nativeSrc":"3646:18:88","nodeType":"YulFunctionCall","src":"3646:18:88"}],"functionName":{"name":"mload","nativeSrc":"3640:5:88","nodeType":"YulIdentifier","src":"3640:5:88"},"nativeSrc":"3640:25:88","nodeType":"YulFunctionCall","src":"3640:25:88"}],"functionName":{"name":"mstore","nativeSrc":"3615:6:88","nodeType":"YulIdentifier","src":"3615:6:88"},"nativeSrc":"3615:51:88","nodeType":"YulFunctionCall","src":"3615:51:88"},"nativeSrc":"3615:51:88","nodeType":"YulExpressionStatement","src":"3615:51:88"},{"nativeSrc":"3675:45:88","nodeType":"YulVariableDeclaration","src":"3675:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3705:5:88","nodeType":"YulIdentifier","src":"3705:5:88"},{"kind":"number","nativeSrc":"3712:6:88","nodeType":"YulLiteral","src":"3712:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"3701:3:88","nodeType":"YulIdentifier","src":"3701:3:88"},"nativeSrc":"3701:18:88","nodeType":"YulFunctionCall","src":"3701:18:88"}],"functionName":{"name":"mload","nativeSrc":"3695:5:88","nodeType":"YulIdentifier","src":"3695:5:88"},"nativeSrc":"3695:25:88","nodeType":"YulFunctionCall","src":"3695:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"3679:12:88","nodeType":"YulTypedName","src":"3679:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"3761:12:88","nodeType":"YulIdentifier","src":"3761:12:88"},{"arguments":[{"name":"pos","nativeSrc":"3779:3:88","nodeType":"YulIdentifier","src":"3779:3:88"},{"kind":"number","nativeSrc":"3784:6:88","nodeType":"YulLiteral","src":"3784:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"3775:3:88","nodeType":"YulIdentifier","src":"3775:3:88"},"nativeSrc":"3775:16:88","nodeType":"YulFunctionCall","src":"3775:16:88"}],"functionName":{"name":"abi_encode_contract_IRiskModule","nativeSrc":"3729:31:88","nodeType":"YulIdentifier","src":"3729:31:88"},"nativeSrc":"3729:63:88","nodeType":"YulFunctionCall","src":"3729:63:88"},"nativeSrc":"3729:63:88","nodeType":"YulExpressionStatement","src":"3729:63:88"},{"nativeSrc":"3801:47:88","nodeType":"YulVariableDeclaration","src":"3801:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3833:5:88","nodeType":"YulIdentifier","src":"3833:5:88"},{"kind":"number","nativeSrc":"3840:6:88","nodeType":"YulLiteral","src":"3840:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"3829:3:88","nodeType":"YulIdentifier","src":"3829:3:88"},"nativeSrc":"3829:18:88","nodeType":"YulFunctionCall","src":"3829:18:88"}],"functionName":{"name":"mload","nativeSrc":"3823:5:88","nodeType":"YulIdentifier","src":"3823:5:88"},"nativeSrc":"3823:25:88","nodeType":"YulFunctionCall","src":"3823:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"3805:14:88","nodeType":"YulTypedName","src":"3805:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"3875:14:88","nodeType":"YulIdentifier","src":"3875:14:88"},{"arguments":[{"name":"pos","nativeSrc":"3895:3:88","nodeType":"YulIdentifier","src":"3895:3:88"},{"kind":"number","nativeSrc":"3900:6:88","nodeType":"YulLiteral","src":"3900:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"3891:3:88","nodeType":"YulIdentifier","src":"3891:3:88"},"nativeSrc":"3891:16:88","nodeType":"YulFunctionCall","src":"3891:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"3857:17:88","nodeType":"YulIdentifier","src":"3857:17:88"},"nativeSrc":"3857:51:88","nodeType":"YulFunctionCall","src":"3857:51:88"},"nativeSrc":"3857:51:88","nodeType":"YulExpressionStatement","src":"3857:51:88"},{"nativeSrc":"3917:47:88","nodeType":"YulVariableDeclaration","src":"3917:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3949:5:88","nodeType":"YulIdentifier","src":"3949:5:88"},{"kind":"number","nativeSrc":"3956:6:88","nodeType":"YulLiteral","src":"3956:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"3945:3:88","nodeType":"YulIdentifier","src":"3945:3:88"},"nativeSrc":"3945:18:88","nodeType":"YulFunctionCall","src":"3945:18:88"}],"functionName":{"name":"mload","nativeSrc":"3939:5:88","nodeType":"YulIdentifier","src":"3939:5:88"},"nativeSrc":"3939:25:88","nodeType":"YulFunctionCall","src":"3939:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"3921:14:88","nodeType":"YulTypedName","src":"3921:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"3991:14:88","nodeType":"YulIdentifier","src":"3991:14:88"},{"arguments":[{"name":"pos","nativeSrc":"4011:3:88","nodeType":"YulIdentifier","src":"4011:3:88"},{"kind":"number","nativeSrc":"4016:6:88","nodeType":"YulLiteral","src":"4016:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"4007:3:88","nodeType":"YulIdentifier","src":"4007:3:88"},"nativeSrc":"4007:16:88","nodeType":"YulFunctionCall","src":"4007:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"3973:17:88","nodeType":"YulIdentifier","src":"3973:17:88"},"nativeSrc":"3973:51:88","nodeType":"YulFunctionCall","src":"3973:51:88"},"nativeSrc":"3973:51:88","nodeType":"YulExpressionStatement","src":"3973:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"3005:1025:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3043:5:88","nodeType":"YulTypedName","src":"3043:5:88","type":""},{"name":"pos","nativeSrc":"3050:3:88","nodeType":"YulTypedName","src":"3050:3:88","type":""}],"src":"3005:1025:88"},{"body":{"nativeSrc":"4194:99:88","nodeType":"YulBlock","src":"4194:99:88","statements":[{"nativeSrc":"4204:27:88","nodeType":"YulAssignment","src":"4204:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4216:9:88","nodeType":"YulIdentifier","src":"4216:9:88"},{"kind":"number","nativeSrc":"4227:3:88","nodeType":"YulLiteral","src":"4227:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"4212:3:88","nodeType":"YulIdentifier","src":"4212:3:88"},"nativeSrc":"4212:19:88","nodeType":"YulFunctionCall","src":"4212:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4204:4:88","nodeType":"YulIdentifier","src":"4204:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4269:6:88","nodeType":"YulIdentifier","src":"4269:6:88"},{"name":"headStart","nativeSrc":"4277:9:88","nodeType":"YulIdentifier","src":"4277:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"4240:28:88","nodeType":"YulIdentifier","src":"4240:28:88"},"nativeSrc":"4240:47:88","nodeType":"YulFunctionCall","src":"4240:47:88"},"nativeSrc":"4240:47:88","nodeType":"YulExpressionStatement","src":"4240:47:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"4035:258:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4163:9:88","nodeType":"YulTypedName","src":"4163:9:88","type":""},{"name":"value0","nativeSrc":"4174:6:88","nodeType":"YulTypedName","src":"4174:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4185:4:88","nodeType":"YulTypedName","src":"4185:4:88","type":""}],"src":"4035:258:88"},{"body":{"nativeSrc":"4399:76:88","nodeType":"YulBlock","src":"4399:76:88","statements":[{"nativeSrc":"4409:26:88","nodeType":"YulAssignment","src":"4409:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4421:9:88","nodeType":"YulIdentifier","src":"4421:9:88"},{"kind":"number","nativeSrc":"4432:2:88","nodeType":"YulLiteral","src":"4432:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4417:3:88","nodeType":"YulIdentifier","src":"4417:3:88"},"nativeSrc":"4417:18:88","nodeType":"YulFunctionCall","src":"4417:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4409:4:88","nodeType":"YulIdentifier","src":"4409:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4451:9:88","nodeType":"YulIdentifier","src":"4451:9:88"},{"name":"value0","nativeSrc":"4462:6:88","nodeType":"YulIdentifier","src":"4462:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4444:6:88","nodeType":"YulIdentifier","src":"4444:6:88"},"nativeSrc":"4444:25:88","nodeType":"YulFunctionCall","src":"4444:25:88"},"nativeSrc":"4444:25:88","nodeType":"YulExpressionStatement","src":"4444:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4298:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4368:9:88","nodeType":"YulTypedName","src":"4368:9:88","type":""},{"name":"value0","nativeSrc":"4379:6:88","nodeType":"YulTypedName","src":"4379:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4390:4:88","nodeType":"YulTypedName","src":"4390:4:88","type":""}],"src":"4298:177:88"},{"body":{"nativeSrc":"4602:102:88","nodeType":"YulBlock","src":"4602:102:88","statements":[{"nativeSrc":"4612:26:88","nodeType":"YulAssignment","src":"4612:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4624:9:88","nodeType":"YulIdentifier","src":"4624:9:88"},{"kind":"number","nativeSrc":"4635:2:88","nodeType":"YulLiteral","src":"4635:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4620:3:88","nodeType":"YulIdentifier","src":"4620:3:88"},"nativeSrc":"4620:18:88","nodeType":"YulFunctionCall","src":"4620:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4612:4:88","nodeType":"YulIdentifier","src":"4612:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4654:9:88","nodeType":"YulIdentifier","src":"4654:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4669:6:88","nodeType":"YulIdentifier","src":"4669:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4685:3:88","nodeType":"YulLiteral","src":"4685:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4690:1:88","nodeType":"YulLiteral","src":"4690:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4681:3:88","nodeType":"YulIdentifier","src":"4681:3:88"},"nativeSrc":"4681:11:88","nodeType":"YulFunctionCall","src":"4681:11:88"},{"kind":"number","nativeSrc":"4694:1:88","nodeType":"YulLiteral","src":"4694:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4677:3:88","nodeType":"YulIdentifier","src":"4677:3:88"},"nativeSrc":"4677:19:88","nodeType":"YulFunctionCall","src":"4677:19:88"}],"functionName":{"name":"and","nativeSrc":"4665:3:88","nodeType":"YulIdentifier","src":"4665:3:88"},"nativeSrc":"4665:32:88","nodeType":"YulFunctionCall","src":"4665:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4647:6:88","nodeType":"YulIdentifier","src":"4647:6:88"},"nativeSrc":"4647:51:88","nodeType":"YulFunctionCall","src":"4647:51:88"},"nativeSrc":"4647:51:88","nodeType":"YulExpressionStatement","src":"4647:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"4480:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4571:9:88","nodeType":"YulTypedName","src":"4571:9:88","type":""},{"name":"value0","nativeSrc":"4582:6:88","nodeType":"YulTypedName","src":"4582:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4593:4:88","nodeType":"YulTypedName","src":"4593:4:88","type":""}],"src":"4480:224:88"},{"body":{"nativeSrc":"4741:95:88","nodeType":"YulBlock","src":"4741:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4758:1:88","nodeType":"YulLiteral","src":"4758:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4765:3:88","nodeType":"YulLiteral","src":"4765:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4770:10:88","nodeType":"YulLiteral","src":"4770:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4761:3:88","nodeType":"YulIdentifier","src":"4761:3:88"},"nativeSrc":"4761:20:88","nodeType":"YulFunctionCall","src":"4761:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4751:6:88","nodeType":"YulIdentifier","src":"4751:6:88"},"nativeSrc":"4751:31:88","nodeType":"YulFunctionCall","src":"4751:31:88"},"nativeSrc":"4751:31:88","nodeType":"YulExpressionStatement","src":"4751:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4798:1:88","nodeType":"YulLiteral","src":"4798:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4801:4:88","nodeType":"YulLiteral","src":"4801:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4791:6:88","nodeType":"YulIdentifier","src":"4791:6:88"},"nativeSrc":"4791:15:88","nodeType":"YulFunctionCall","src":"4791:15:88"},"nativeSrc":"4791:15:88","nodeType":"YulExpressionStatement","src":"4791:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4822:1:88","nodeType":"YulLiteral","src":"4822:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4825:4:88","nodeType":"YulLiteral","src":"4825:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4815:6:88","nodeType":"YulIdentifier","src":"4815:6:88"},"nativeSrc":"4815:15:88","nodeType":"YulFunctionCall","src":"4815:15:88"},"nativeSrc":"4815:15:88","nodeType":"YulExpressionStatement","src":"4815:15:88"}]},"name":"panic_error_0x41","nativeSrc":"4709:127:88","nodeType":"YulFunctionDefinition","src":"4709:127:88"},{"body":{"nativeSrc":"4915:641:88","nodeType":"YulBlock","src":"4915:641:88","statements":[{"nativeSrc":"4925:13:88","nodeType":"YulVariableDeclaration","src":"4925:13:88","value":{"kind":"number","nativeSrc":"4937:1:88","nodeType":"YulLiteral","src":"4937:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"4929:4:88","nodeType":"YulTypedName","src":"4929:4:88","type":""}]},{"body":{"nativeSrc":"4981:22:88","nodeType":"YulBlock","src":"4981:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4983:16:88","nodeType":"YulIdentifier","src":"4983:16:88"},"nativeSrc":"4983:18:88","nodeType":"YulFunctionCall","src":"4983:18:88"},"nativeSrc":"4983:18:88","nodeType":"YulExpressionStatement","src":"4983:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4953:6:88","nodeType":"YulIdentifier","src":"4953:6:88"},{"kind":"number","nativeSrc":"4961:18:88","nodeType":"YulLiteral","src":"4961:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4950:2:88","nodeType":"YulIdentifier","src":"4950:2:88"},"nativeSrc":"4950:30:88","nodeType":"YulFunctionCall","src":"4950:30:88"},"nativeSrc":"4947:56:88","nodeType":"YulIf","src":"4947:56:88"},{"nativeSrc":"5012:43:88","nodeType":"YulVariableDeclaration","src":"5012:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5034:6:88","nodeType":"YulIdentifier","src":"5034:6:88"},{"kind":"number","nativeSrc":"5042:2:88","nodeType":"YulLiteral","src":"5042:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5030:3:88","nodeType":"YulIdentifier","src":"5030:3:88"},"nativeSrc":"5030:15:88","nodeType":"YulFunctionCall","src":"5030:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5051:2:88","nodeType":"YulLiteral","src":"5051:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5047:3:88","nodeType":"YulIdentifier","src":"5047:3:88"},"nativeSrc":"5047:7:88","nodeType":"YulFunctionCall","src":"5047:7:88"}],"functionName":{"name":"and","nativeSrc":"5026:3:88","nodeType":"YulIdentifier","src":"5026:3:88"},"nativeSrc":"5026:29:88","nodeType":"YulFunctionCall","src":"5026:29:88"},"variables":[{"name":"result","nativeSrc":"5016:6:88","nodeType":"YulTypedName","src":"5016:6:88","type":""}]},{"nativeSrc":"5064:25:88","nodeType":"YulAssignment","src":"5064:25:88","value":{"arguments":[{"name":"result","nativeSrc":"5076:6:88","nodeType":"YulIdentifier","src":"5076:6:88"},{"kind":"number","nativeSrc":"5084:4:88","nodeType":"YulLiteral","src":"5084:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5072:3:88","nodeType":"YulIdentifier","src":"5072:3:88"},"nativeSrc":"5072:17:88","nodeType":"YulFunctionCall","src":"5072:17:88"},"variableNames":[{"name":"size","nativeSrc":"5064:4:88","nodeType":"YulIdentifier","src":"5064:4:88"}]},{"nativeSrc":"5098:15:88","nodeType":"YulVariableDeclaration","src":"5098:15:88","value":{"kind":"number","nativeSrc":"5112:1:88","nodeType":"YulLiteral","src":"5112:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"5102:6:88","nodeType":"YulTypedName","src":"5102:6:88","type":""}]},{"nativeSrc":"5122:19:88","nodeType":"YulAssignment","src":"5122:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"5138:2:88","nodeType":"YulLiteral","src":"5138:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5132:5:88","nodeType":"YulIdentifier","src":"5132:5:88"},"nativeSrc":"5132:9:88","nodeType":"YulFunctionCall","src":"5132:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"5122:6:88","nodeType":"YulIdentifier","src":"5122:6:88"}]},{"nativeSrc":"5150:60:88","nodeType":"YulVariableDeclaration","src":"5150:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"5172:6:88","nodeType":"YulIdentifier","src":"5172:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"5188:6:88","nodeType":"YulIdentifier","src":"5188:6:88"},{"kind":"number","nativeSrc":"5196:2:88","nodeType":"YulLiteral","src":"5196:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"5184:3:88","nodeType":"YulIdentifier","src":"5184:3:88"},"nativeSrc":"5184:15:88","nodeType":"YulFunctionCall","src":"5184:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5205:2:88","nodeType":"YulLiteral","src":"5205:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5201:3:88","nodeType":"YulIdentifier","src":"5201:3:88"},"nativeSrc":"5201:7:88","nodeType":"YulFunctionCall","src":"5201:7:88"}],"functionName":{"name":"and","nativeSrc":"5180:3:88","nodeType":"YulIdentifier","src":"5180:3:88"},"nativeSrc":"5180:29:88","nodeType":"YulFunctionCall","src":"5180:29:88"}],"functionName":{"name":"add","nativeSrc":"5168:3:88","nodeType":"YulIdentifier","src":"5168:3:88"},"nativeSrc":"5168:42:88","nodeType":"YulFunctionCall","src":"5168:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"5154:10:88","nodeType":"YulTypedName","src":"5154:10:88","type":""}]},{"body":{"nativeSrc":"5285:22:88","nodeType":"YulBlock","src":"5285:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5287:16:88","nodeType":"YulIdentifier","src":"5287:16:88"},"nativeSrc":"5287:18:88","nodeType":"YulFunctionCall","src":"5287:18:88"},"nativeSrc":"5287:18:88","nodeType":"YulExpressionStatement","src":"5287:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5228:10:88","nodeType":"YulIdentifier","src":"5228:10:88"},{"kind":"number","nativeSrc":"5240:18:88","nodeType":"YulLiteral","src":"5240:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5225:2:88","nodeType":"YulIdentifier","src":"5225:2:88"},"nativeSrc":"5225:34:88","nodeType":"YulFunctionCall","src":"5225:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5264:10:88","nodeType":"YulIdentifier","src":"5264:10:88"},{"name":"memPtr","nativeSrc":"5276:6:88","nodeType":"YulIdentifier","src":"5276:6:88"}],"functionName":{"name":"lt","nativeSrc":"5261:2:88","nodeType":"YulIdentifier","src":"5261:2:88"},"nativeSrc":"5261:22:88","nodeType":"YulFunctionCall","src":"5261:22:88"}],"functionName":{"name":"or","nativeSrc":"5222:2:88","nodeType":"YulIdentifier","src":"5222:2:88"},"nativeSrc":"5222:62:88","nodeType":"YulFunctionCall","src":"5222:62:88"},"nativeSrc":"5219:88:88","nodeType":"YulIf","src":"5219:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5323:2:88","nodeType":"YulLiteral","src":"5323:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5327:10:88","nodeType":"YulIdentifier","src":"5327:10:88"}],"functionName":{"name":"mstore","nativeSrc":"5316:6:88","nodeType":"YulIdentifier","src":"5316:6:88"},"nativeSrc":"5316:22:88","nodeType":"YulFunctionCall","src":"5316:22:88"},"nativeSrc":"5316:22:88","nodeType":"YulExpressionStatement","src":"5316:22:88"},{"nativeSrc":"5347:15:88","nodeType":"YulAssignment","src":"5347:15:88","value":{"name":"memPtr","nativeSrc":"5356:6:88","nodeType":"YulIdentifier","src":"5356:6:88"},"variableNames":[{"name":"array","nativeSrc":"5347:5:88","nodeType":"YulIdentifier","src":"5347:5:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5378:6:88","nodeType":"YulIdentifier","src":"5378:6:88"},{"name":"length","nativeSrc":"5386:6:88","nodeType":"YulIdentifier","src":"5386:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5371:6:88","nodeType":"YulIdentifier","src":"5371:6:88"},"nativeSrc":"5371:22:88","nodeType":"YulFunctionCall","src":"5371:22:88"},"nativeSrc":"5371:22:88","nodeType":"YulExpressionStatement","src":"5371:22:88"},{"body":{"nativeSrc":"5431:16:88","nodeType":"YulBlock","src":"5431:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5440:1:88","nodeType":"YulLiteral","src":"5440:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5443:1:88","nodeType":"YulLiteral","src":"5443:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5433:6:88","nodeType":"YulIdentifier","src":"5433:6:88"},"nativeSrc":"5433:12:88","nodeType":"YulFunctionCall","src":"5433:12:88"},"nativeSrc":"5433:12:88","nodeType":"YulExpressionStatement","src":"5433:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5412:3:88","nodeType":"YulIdentifier","src":"5412:3:88"},{"name":"length","nativeSrc":"5417:6:88","nodeType":"YulIdentifier","src":"5417:6:88"}],"functionName":{"name":"add","nativeSrc":"5408:3:88","nodeType":"YulIdentifier","src":"5408:3:88"},"nativeSrc":"5408:16:88","nodeType":"YulFunctionCall","src":"5408:16:88"},{"name":"end","nativeSrc":"5426:3:88","nodeType":"YulIdentifier","src":"5426:3:88"}],"functionName":{"name":"gt","nativeSrc":"5405:2:88","nodeType":"YulIdentifier","src":"5405:2:88"},"nativeSrc":"5405:25:88","nodeType":"YulFunctionCall","src":"5405:25:88"},"nativeSrc":"5402:45:88","nodeType":"YulIf","src":"5402:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5473:6:88","nodeType":"YulIdentifier","src":"5473:6:88"},{"kind":"number","nativeSrc":"5481:4:88","nodeType":"YulLiteral","src":"5481:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5469:3:88","nodeType":"YulIdentifier","src":"5469:3:88"},"nativeSrc":"5469:17:88","nodeType":"YulFunctionCall","src":"5469:17:88"},{"name":"src","nativeSrc":"5488:3:88","nodeType":"YulIdentifier","src":"5488:3:88"},{"name":"length","nativeSrc":"5493:6:88","nodeType":"YulIdentifier","src":"5493:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"5456:12:88","nodeType":"YulIdentifier","src":"5456:12:88"},"nativeSrc":"5456:44:88","nodeType":"YulFunctionCall","src":"5456:44:88"},"nativeSrc":"5456:44:88","nodeType":"YulExpressionStatement","src":"5456:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5524:6:88","nodeType":"YulIdentifier","src":"5524:6:88"},{"name":"length","nativeSrc":"5532:6:88","nodeType":"YulIdentifier","src":"5532:6:88"}],"functionName":{"name":"add","nativeSrc":"5520:3:88","nodeType":"YulIdentifier","src":"5520:3:88"},"nativeSrc":"5520:19:88","nodeType":"YulFunctionCall","src":"5520:19:88"},{"kind":"number","nativeSrc":"5541:4:88","nodeType":"YulLiteral","src":"5541:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5516:3:88","nodeType":"YulIdentifier","src":"5516:3:88"},"nativeSrc":"5516:30:88","nodeType":"YulFunctionCall","src":"5516:30:88"},{"kind":"number","nativeSrc":"5548:1:88","nodeType":"YulLiteral","src":"5548:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5509:6:88","nodeType":"YulIdentifier","src":"5509:6:88"},"nativeSrc":"5509:41:88","nodeType":"YulFunctionCall","src":"5509:41:88"},"nativeSrc":"5509:41:88","nodeType":"YulExpressionStatement","src":"5509:41:88"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"4841:715:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4884:3:88","nodeType":"YulTypedName","src":"4884:3:88","type":""},{"name":"length","nativeSrc":"4889:6:88","nodeType":"YulTypedName","src":"4889:6:88","type":""},{"name":"end","nativeSrc":"4897:3:88","nodeType":"YulTypedName","src":"4897:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4905:5:88","nodeType":"YulTypedName","src":"4905:5:88","type":""}],"src":"4841:715:88"},{"body":{"nativeSrc":"5657:488:88","nodeType":"YulBlock","src":"5657:488:88","statements":[{"body":{"nativeSrc":"5703:16:88","nodeType":"YulBlock","src":"5703:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5712:1:88","nodeType":"YulLiteral","src":"5712:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5715:1:88","nodeType":"YulLiteral","src":"5715:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5705:6:88","nodeType":"YulIdentifier","src":"5705:6:88"},"nativeSrc":"5705:12:88","nodeType":"YulFunctionCall","src":"5705:12:88"},"nativeSrc":"5705:12:88","nodeType":"YulExpressionStatement","src":"5705:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5678:7:88","nodeType":"YulIdentifier","src":"5678:7:88"},{"name":"headStart","nativeSrc":"5687:9:88","nodeType":"YulIdentifier","src":"5687:9:88"}],"functionName":{"name":"sub","nativeSrc":"5674:3:88","nodeType":"YulIdentifier","src":"5674:3:88"},"nativeSrc":"5674:23:88","nodeType":"YulFunctionCall","src":"5674:23:88"},{"kind":"number","nativeSrc":"5699:2:88","nodeType":"YulLiteral","src":"5699:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5670:3:88","nodeType":"YulIdentifier","src":"5670:3:88"},"nativeSrc":"5670:32:88","nodeType":"YulFunctionCall","src":"5670:32:88"},"nativeSrc":"5667:52:88","nodeType":"YulIf","src":"5667:52:88"},{"nativeSrc":"5728:36:88","nodeType":"YulVariableDeclaration","src":"5728:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5754:9:88","nodeType":"YulIdentifier","src":"5754:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5741:12:88","nodeType":"YulIdentifier","src":"5741:12:88"},"nativeSrc":"5741:23:88","nodeType":"YulFunctionCall","src":"5741:23:88"},"variables":[{"name":"value","nativeSrc":"5732:5:88","nodeType":"YulTypedName","src":"5732:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5798:5:88","nodeType":"YulIdentifier","src":"5798:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5773:24:88","nodeType":"YulIdentifier","src":"5773:24:88"},"nativeSrc":"5773:31:88","nodeType":"YulFunctionCall","src":"5773:31:88"},"nativeSrc":"5773:31:88","nodeType":"YulExpressionStatement","src":"5773:31:88"},{"nativeSrc":"5813:15:88","nodeType":"YulAssignment","src":"5813:15:88","value":{"name":"value","nativeSrc":"5823:5:88","nodeType":"YulIdentifier","src":"5823:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5813:6:88","nodeType":"YulIdentifier","src":"5813:6:88"}]},{"nativeSrc":"5837:46:88","nodeType":"YulVariableDeclaration","src":"5837:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5868:9:88","nodeType":"YulIdentifier","src":"5868:9:88"},{"kind":"number","nativeSrc":"5879:2:88","nodeType":"YulLiteral","src":"5879:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5864:3:88","nodeType":"YulIdentifier","src":"5864:3:88"},"nativeSrc":"5864:18:88","nodeType":"YulFunctionCall","src":"5864:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5851:12:88","nodeType":"YulIdentifier","src":"5851:12:88"},"nativeSrc":"5851:32:88","nodeType":"YulFunctionCall","src":"5851:32:88"},"variables":[{"name":"offset","nativeSrc":"5841:6:88","nodeType":"YulTypedName","src":"5841:6:88","type":""}]},{"body":{"nativeSrc":"5926:16:88","nodeType":"YulBlock","src":"5926:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5935:1:88","nodeType":"YulLiteral","src":"5935:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5938:1:88","nodeType":"YulLiteral","src":"5938:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5928:6:88","nodeType":"YulIdentifier","src":"5928:6:88"},"nativeSrc":"5928:12:88","nodeType":"YulFunctionCall","src":"5928:12:88"},"nativeSrc":"5928:12:88","nodeType":"YulExpressionStatement","src":"5928:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5898:6:88","nodeType":"YulIdentifier","src":"5898:6:88"},{"kind":"number","nativeSrc":"5906:18:88","nodeType":"YulLiteral","src":"5906:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5895:2:88","nodeType":"YulIdentifier","src":"5895:2:88"},"nativeSrc":"5895:30:88","nodeType":"YulFunctionCall","src":"5895:30:88"},"nativeSrc":"5892:50:88","nodeType":"YulIf","src":"5892:50:88"},{"nativeSrc":"5951:32:88","nodeType":"YulVariableDeclaration","src":"5951:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5965:9:88","nodeType":"YulIdentifier","src":"5965:9:88"},{"name":"offset","nativeSrc":"5976:6:88","nodeType":"YulIdentifier","src":"5976:6:88"}],"functionName":{"name":"add","nativeSrc":"5961:3:88","nodeType":"YulIdentifier","src":"5961:3:88"},"nativeSrc":"5961:22:88","nodeType":"YulFunctionCall","src":"5961:22:88"},"variables":[{"name":"_1","nativeSrc":"5955:2:88","nodeType":"YulTypedName","src":"5955:2:88","type":""}]},{"body":{"nativeSrc":"6031:16:88","nodeType":"YulBlock","src":"6031:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6040:1:88","nodeType":"YulLiteral","src":"6040:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6043:1:88","nodeType":"YulLiteral","src":"6043:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6033:6:88","nodeType":"YulIdentifier","src":"6033:6:88"},"nativeSrc":"6033:12:88","nodeType":"YulFunctionCall","src":"6033:12:88"},"nativeSrc":"6033:12:88","nodeType":"YulExpressionStatement","src":"6033:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6010:2:88","nodeType":"YulIdentifier","src":"6010:2:88"},{"kind":"number","nativeSrc":"6014:4:88","nodeType":"YulLiteral","src":"6014:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6006:3:88","nodeType":"YulIdentifier","src":"6006:3:88"},"nativeSrc":"6006:13:88","nodeType":"YulFunctionCall","src":"6006:13:88"},{"name":"dataEnd","nativeSrc":"6021:7:88","nodeType":"YulIdentifier","src":"6021:7:88"}],"functionName":{"name":"slt","nativeSrc":"6002:3:88","nodeType":"YulIdentifier","src":"6002:3:88"},"nativeSrc":"6002:27:88","nodeType":"YulFunctionCall","src":"6002:27:88"}],"functionName":{"name":"iszero","nativeSrc":"5995:6:88","nodeType":"YulIdentifier","src":"5995:6:88"},"nativeSrc":"5995:35:88","nodeType":"YulFunctionCall","src":"5995:35:88"},"nativeSrc":"5992:55:88","nodeType":"YulIf","src":"5992:55:88"},{"nativeSrc":"6056:83:88","nodeType":"YulAssignment","src":"6056:83:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6104:2:88","nodeType":"YulIdentifier","src":"6104:2:88"},{"kind":"number","nativeSrc":"6108:2:88","nodeType":"YulLiteral","src":"6108:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6100:3:88","nodeType":"YulIdentifier","src":"6100:3:88"},"nativeSrc":"6100:11:88","nodeType":"YulFunctionCall","src":"6100:11:88"},{"arguments":[{"name":"_1","nativeSrc":"6126:2:88","nodeType":"YulIdentifier","src":"6126:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"6113:12:88","nodeType":"YulIdentifier","src":"6113:12:88"},"nativeSrc":"6113:16:88","nodeType":"YulFunctionCall","src":"6113:16:88"},{"name":"dataEnd","nativeSrc":"6131:7:88","nodeType":"YulIdentifier","src":"6131:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"6066:33:88","nodeType":"YulIdentifier","src":"6066:33:88"},"nativeSrc":"6066:73:88","nodeType":"YulFunctionCall","src":"6066:73:88"},"variableNames":[{"name":"value1","nativeSrc":"6056:6:88","nodeType":"YulIdentifier","src":"6056:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"5561:584:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5615:9:88","nodeType":"YulTypedName","src":"5615:9:88","type":""},{"name":"dataEnd","nativeSrc":"5626:7:88","nodeType":"YulTypedName","src":"5626:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5638:6:88","nodeType":"YulTypedName","src":"5638:6:88","type":""},{"name":"value1","nativeSrc":"5646:6:88","nodeType":"YulTypedName","src":"5646:6:88","type":""}],"src":"5561:584:88"},{"body":{"nativeSrc":"6251:102:88","nodeType":"YulBlock","src":"6251:102:88","statements":[{"nativeSrc":"6261:26:88","nodeType":"YulAssignment","src":"6261:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6273:9:88","nodeType":"YulIdentifier","src":"6273:9:88"},{"kind":"number","nativeSrc":"6284:2:88","nodeType":"YulLiteral","src":"6284:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6269:3:88","nodeType":"YulIdentifier","src":"6269:3:88"},"nativeSrc":"6269:18:88","nodeType":"YulFunctionCall","src":"6269:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6261:4:88","nodeType":"YulIdentifier","src":"6261:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6303:9:88","nodeType":"YulIdentifier","src":"6303:9:88"},{"arguments":[{"name":"value0","nativeSrc":"6318:6:88","nodeType":"YulIdentifier","src":"6318:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6334:3:88","nodeType":"YulLiteral","src":"6334:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6339:1:88","nodeType":"YulLiteral","src":"6339:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6330:3:88","nodeType":"YulIdentifier","src":"6330:3:88"},"nativeSrc":"6330:11:88","nodeType":"YulFunctionCall","src":"6330:11:88"},{"kind":"number","nativeSrc":"6343:1:88","nodeType":"YulLiteral","src":"6343:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6326:3:88","nodeType":"YulIdentifier","src":"6326:3:88"},"nativeSrc":"6326:19:88","nodeType":"YulFunctionCall","src":"6326:19:88"}],"functionName":{"name":"and","nativeSrc":"6314:3:88","nodeType":"YulIdentifier","src":"6314:3:88"},"nativeSrc":"6314:32:88","nodeType":"YulFunctionCall","src":"6314:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6296:6:88","nodeType":"YulIdentifier","src":"6296:6:88"},"nativeSrc":"6296:51:88","nodeType":"YulFunctionCall","src":"6296:51:88"},"nativeSrc":"6296:51:88","nodeType":"YulExpressionStatement","src":"6296:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6150:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6220:9:88","nodeType":"YulTypedName","src":"6220:9:88","type":""},{"name":"value0","nativeSrc":"6231:6:88","nodeType":"YulTypedName","src":"6231:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6242:4:88","nodeType":"YulTypedName","src":"6242:4:88","type":""}],"src":"6150:203:88"},{"body":{"nativeSrc":"6428:156:88","nodeType":"YulBlock","src":"6428:156:88","statements":[{"body":{"nativeSrc":"6474:16:88","nodeType":"YulBlock","src":"6474:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6483:1:88","nodeType":"YulLiteral","src":"6483:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6486:1:88","nodeType":"YulLiteral","src":"6486:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6476:6:88","nodeType":"YulIdentifier","src":"6476:6:88"},"nativeSrc":"6476:12:88","nodeType":"YulFunctionCall","src":"6476:12:88"},"nativeSrc":"6476:12:88","nodeType":"YulExpressionStatement","src":"6476:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6449:7:88","nodeType":"YulIdentifier","src":"6449:7:88"},{"name":"headStart","nativeSrc":"6458:9:88","nodeType":"YulIdentifier","src":"6458:9:88"}],"functionName":{"name":"sub","nativeSrc":"6445:3:88","nodeType":"YulIdentifier","src":"6445:3:88"},"nativeSrc":"6445:23:88","nodeType":"YulFunctionCall","src":"6445:23:88"},{"kind":"number","nativeSrc":"6470:2:88","nodeType":"YulLiteral","src":"6470:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6441:3:88","nodeType":"YulIdentifier","src":"6441:3:88"},"nativeSrc":"6441:32:88","nodeType":"YulFunctionCall","src":"6441:32:88"},"nativeSrc":"6438:52:88","nodeType":"YulIf","src":"6438:52:88"},{"nativeSrc":"6499:14:88","nodeType":"YulVariableDeclaration","src":"6499:14:88","value":{"kind":"number","nativeSrc":"6512:1:88","nodeType":"YulLiteral","src":"6512:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"6503:5:88","nodeType":"YulTypedName","src":"6503:5:88","type":""}]},{"nativeSrc":"6522:32:88","nodeType":"YulAssignment","src":"6522:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6544:9:88","nodeType":"YulIdentifier","src":"6544:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6531:12:88","nodeType":"YulIdentifier","src":"6531:12:88"},"nativeSrc":"6531:23:88","nodeType":"YulFunctionCall","src":"6531:23:88"},"variableNames":[{"name":"value","nativeSrc":"6522:5:88","nodeType":"YulIdentifier","src":"6522:5:88"}]},{"nativeSrc":"6563:15:88","nodeType":"YulAssignment","src":"6563:15:88","value":{"name":"value","nativeSrc":"6573:5:88","nodeType":"YulIdentifier","src":"6573:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6563:6:88","nodeType":"YulIdentifier","src":"6563:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6358:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6394:9:88","nodeType":"YulTypedName","src":"6394:9:88","type":""},{"name":"dataEnd","nativeSrc":"6405:7:88","nodeType":"YulTypedName","src":"6405:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6417:6:88","nodeType":"YulTypedName","src":"6417:6:88","type":""}],"src":"6358:226:88"},{"body":{"nativeSrc":"6771:1011:88","nodeType":"YulBlock","src":"6771:1011:88","statements":[{"body":{"nativeSrc":"6818:16:88","nodeType":"YulBlock","src":"6818:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6827:1:88","nodeType":"YulLiteral","src":"6827:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6830:1:88","nodeType":"YulLiteral","src":"6830:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6820:6:88","nodeType":"YulIdentifier","src":"6820:6:88"},"nativeSrc":"6820:12:88","nodeType":"YulFunctionCall","src":"6820:12:88"},"nativeSrc":"6820:12:88","nodeType":"YulExpressionStatement","src":"6820:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6792:7:88","nodeType":"YulIdentifier","src":"6792:7:88"},{"name":"headStart","nativeSrc":"6801:9:88","nodeType":"YulIdentifier","src":"6801:9:88"}],"functionName":{"name":"sub","nativeSrc":"6788:3:88","nodeType":"YulIdentifier","src":"6788:3:88"},"nativeSrc":"6788:23:88","nodeType":"YulFunctionCall","src":"6788:23:88"},{"kind":"number","nativeSrc":"6813:3:88","nodeType":"YulLiteral","src":"6813:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"6784:3:88","nodeType":"YulIdentifier","src":"6784:3:88"},"nativeSrc":"6784:33:88","nodeType":"YulFunctionCall","src":"6784:33:88"},"nativeSrc":"6781:53:88","nodeType":"YulIf","src":"6781:53:88"},{"nativeSrc":"6843:37:88","nodeType":"YulVariableDeclaration","src":"6843:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6870:9:88","nodeType":"YulIdentifier","src":"6870:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6857:12:88","nodeType":"YulIdentifier","src":"6857:12:88"},"nativeSrc":"6857:23:88","nodeType":"YulFunctionCall","src":"6857:23:88"},"variables":[{"name":"offset","nativeSrc":"6847:6:88","nodeType":"YulTypedName","src":"6847:6:88","type":""}]},{"body":{"nativeSrc":"6923:16:88","nodeType":"YulBlock","src":"6923:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6932:1:88","nodeType":"YulLiteral","src":"6932:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6935:1:88","nodeType":"YulLiteral","src":"6935:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6925:6:88","nodeType":"YulIdentifier","src":"6925:6:88"},"nativeSrc":"6925:12:88","nodeType":"YulFunctionCall","src":"6925:12:88"},"nativeSrc":"6925:12:88","nodeType":"YulExpressionStatement","src":"6925:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6895:6:88","nodeType":"YulIdentifier","src":"6895:6:88"},{"kind":"number","nativeSrc":"6903:18:88","nodeType":"YulLiteral","src":"6903:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6892:2:88","nodeType":"YulIdentifier","src":"6892:2:88"},"nativeSrc":"6892:30:88","nodeType":"YulFunctionCall","src":"6892:30:88"},"nativeSrc":"6889:50:88","nodeType":"YulIf","src":"6889:50:88"},{"nativeSrc":"6948:32:88","nodeType":"YulVariableDeclaration","src":"6948:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6962:9:88","nodeType":"YulIdentifier","src":"6962:9:88"},{"name":"offset","nativeSrc":"6973:6:88","nodeType":"YulIdentifier","src":"6973:6:88"}],"functionName":{"name":"add","nativeSrc":"6958:3:88","nodeType":"YulIdentifier","src":"6958:3:88"},"nativeSrc":"6958:22:88","nodeType":"YulFunctionCall","src":"6958:22:88"},"variables":[{"name":"_1","nativeSrc":"6952:2:88","nodeType":"YulTypedName","src":"6952:2:88","type":""}]},{"body":{"nativeSrc":"7028:16:88","nodeType":"YulBlock","src":"7028:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7037:1:88","nodeType":"YulLiteral","src":"7037:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7040:1:88","nodeType":"YulLiteral","src":"7040:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7030:6:88","nodeType":"YulIdentifier","src":"7030:6:88"},"nativeSrc":"7030:12:88","nodeType":"YulFunctionCall","src":"7030:12:88"},"nativeSrc":"7030:12:88","nodeType":"YulExpressionStatement","src":"7030:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7007:2:88","nodeType":"YulIdentifier","src":"7007:2:88"},{"kind":"number","nativeSrc":"7011:4:88","nodeType":"YulLiteral","src":"7011:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7003:3:88","nodeType":"YulIdentifier","src":"7003:3:88"},"nativeSrc":"7003:13:88","nodeType":"YulFunctionCall","src":"7003:13:88"},{"name":"dataEnd","nativeSrc":"7018:7:88","nodeType":"YulIdentifier","src":"7018:7:88"}],"functionName":{"name":"slt","nativeSrc":"6999:3:88","nodeType":"YulIdentifier","src":"6999:3:88"},"nativeSrc":"6999:27:88","nodeType":"YulFunctionCall","src":"6999:27:88"}],"functionName":{"name":"iszero","nativeSrc":"6992:6:88","nodeType":"YulIdentifier","src":"6992:6:88"},"nativeSrc":"6992:35:88","nodeType":"YulFunctionCall","src":"6992:35:88"},"nativeSrc":"6989:55:88","nodeType":"YulIf","src":"6989:55:88"},{"nativeSrc":"7053:85:88","nodeType":"YulAssignment","src":"7053:85:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7101:2:88","nodeType":"YulIdentifier","src":"7101:2:88"},{"kind":"number","nativeSrc":"7105:4:88","nodeType":"YulLiteral","src":"7105:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7097:3:88","nodeType":"YulIdentifier","src":"7097:3:88"},"nativeSrc":"7097:13:88","nodeType":"YulFunctionCall","src":"7097:13:88"},{"arguments":[{"name":"_1","nativeSrc":"7125:2:88","nodeType":"YulIdentifier","src":"7125:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"7112:12:88","nodeType":"YulIdentifier","src":"7112:12:88"},"nativeSrc":"7112:16:88","nodeType":"YulFunctionCall","src":"7112:16:88"},{"name":"dataEnd","nativeSrc":"7130:7:88","nodeType":"YulIdentifier","src":"7130:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"7063:33:88","nodeType":"YulIdentifier","src":"7063:33:88"},"nativeSrc":"7063:75:88","nodeType":"YulFunctionCall","src":"7063:75:88"},"variableNames":[{"name":"value0","nativeSrc":"7053:6:88","nodeType":"YulIdentifier","src":"7053:6:88"}]},{"nativeSrc":"7147:14:88","nodeType":"YulVariableDeclaration","src":"7147:14:88","value":{"kind":"number","nativeSrc":"7160:1:88","nodeType":"YulLiteral","src":"7160:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7151:5:88","nodeType":"YulTypedName","src":"7151:5:88","type":""}]},{"nativeSrc":"7170:43:88","nodeType":"YulAssignment","src":"7170:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7196:9:88","nodeType":"YulIdentifier","src":"7196:9:88"},{"kind":"number","nativeSrc":"7207:4:88","nodeType":"YulLiteral","src":"7207:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7192:3:88","nodeType":"YulIdentifier","src":"7192:3:88"},"nativeSrc":"7192:20:88","nodeType":"YulFunctionCall","src":"7192:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"7179:12:88","nodeType":"YulIdentifier","src":"7179:12:88"},"nativeSrc":"7179:34:88","nodeType":"YulFunctionCall","src":"7179:34:88"},"variableNames":[{"name":"value","nativeSrc":"7170:5:88","nodeType":"YulIdentifier","src":"7170:5:88"}]},{"nativeSrc":"7222:15:88","nodeType":"YulAssignment","src":"7222:15:88","value":{"name":"value","nativeSrc":"7232:5:88","nodeType":"YulIdentifier","src":"7232:5:88"},"variableNames":[{"name":"value1","nativeSrc":"7222:6:88","nodeType":"YulIdentifier","src":"7222:6:88"}]},{"nativeSrc":"7246:16:88","nodeType":"YulVariableDeclaration","src":"7246:16:88","value":{"kind":"number","nativeSrc":"7261:1:88","nodeType":"YulLiteral","src":"7261:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"7250:7:88","nodeType":"YulTypedName","src":"7250:7:88","type":""}]},{"nativeSrc":"7271:43:88","nodeType":"YulAssignment","src":"7271:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7299:9:88","nodeType":"YulIdentifier","src":"7299:9:88"},{"kind":"number","nativeSrc":"7310:2:88","nodeType":"YulLiteral","src":"7310:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7295:3:88","nodeType":"YulIdentifier","src":"7295:3:88"},"nativeSrc":"7295:18:88","nodeType":"YulFunctionCall","src":"7295:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"7282:12:88","nodeType":"YulIdentifier","src":"7282:12:88"},"nativeSrc":"7282:32:88","nodeType":"YulFunctionCall","src":"7282:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"7271:7:88","nodeType":"YulIdentifier","src":"7271:7:88"}]},{"nativeSrc":"7323:17:88","nodeType":"YulAssignment","src":"7323:17:88","value":{"name":"value_1","nativeSrc":"7333:7:88","nodeType":"YulIdentifier","src":"7333:7:88"},"variableNames":[{"name":"value2","nativeSrc":"7323:6:88","nodeType":"YulIdentifier","src":"7323:6:88"}]},{"nativeSrc":"7349:16:88","nodeType":"YulVariableDeclaration","src":"7349:16:88","value":{"kind":"number","nativeSrc":"7364:1:88","nodeType":"YulLiteral","src":"7364:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"7353:7:88","nodeType":"YulTypedName","src":"7353:7:88","type":""}]},{"nativeSrc":"7374:43:88","nodeType":"YulAssignment","src":"7374:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7402:9:88","nodeType":"YulIdentifier","src":"7402:9:88"},{"kind":"number","nativeSrc":"7413:2:88","nodeType":"YulLiteral","src":"7413:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7398:3:88","nodeType":"YulIdentifier","src":"7398:3:88"},"nativeSrc":"7398:18:88","nodeType":"YulFunctionCall","src":"7398:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"7385:12:88","nodeType":"YulIdentifier","src":"7385:12:88"},"nativeSrc":"7385:32:88","nodeType":"YulFunctionCall","src":"7385:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"7374:7:88","nodeType":"YulIdentifier","src":"7374:7:88"}]},{"nativeSrc":"7426:17:88","nodeType":"YulAssignment","src":"7426:17:88","value":{"name":"value_2","nativeSrc":"7436:7:88","nodeType":"YulIdentifier","src":"7436:7:88"},"variableNames":[{"name":"value3","nativeSrc":"7426:6:88","nodeType":"YulIdentifier","src":"7426:6:88"}]},{"nativeSrc":"7452:16:88","nodeType":"YulVariableDeclaration","src":"7452:16:88","value":{"kind":"number","nativeSrc":"7467:1:88","nodeType":"YulLiteral","src":"7467:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"7456:7:88","nodeType":"YulTypedName","src":"7456:7:88","type":""}]},{"nativeSrc":"7477:44:88","nodeType":"YulAssignment","src":"7477:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7505:9:88","nodeType":"YulIdentifier","src":"7505:9:88"},{"kind":"number","nativeSrc":"7516:3:88","nodeType":"YulLiteral","src":"7516:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7501:3:88","nodeType":"YulIdentifier","src":"7501:3:88"},"nativeSrc":"7501:19:88","nodeType":"YulFunctionCall","src":"7501:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7488:12:88","nodeType":"YulIdentifier","src":"7488:12:88"},"nativeSrc":"7488:33:88","nodeType":"YulFunctionCall","src":"7488:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"7477:7:88","nodeType":"YulIdentifier","src":"7477:7:88"}]},{"nativeSrc":"7530:17:88","nodeType":"YulAssignment","src":"7530:17:88","value":{"name":"value_3","nativeSrc":"7540:7:88","nodeType":"YulIdentifier","src":"7540:7:88"},"variableNames":[{"name":"value4","nativeSrc":"7530:6:88","nodeType":"YulIdentifier","src":"7530:6:88"}]},{"nativeSrc":"7556:16:88","nodeType":"YulVariableDeclaration","src":"7556:16:88","value":{"kind":"number","nativeSrc":"7571:1:88","nodeType":"YulLiteral","src":"7571:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"7560:7:88","nodeType":"YulTypedName","src":"7560:7:88","type":""}]},{"nativeSrc":"7581:44:88","nodeType":"YulAssignment","src":"7581:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7609:9:88","nodeType":"YulIdentifier","src":"7609:9:88"},{"kind":"number","nativeSrc":"7620:3:88","nodeType":"YulLiteral","src":"7620:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7605:3:88","nodeType":"YulIdentifier","src":"7605:3:88"},"nativeSrc":"7605:19:88","nodeType":"YulFunctionCall","src":"7605:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7592:12:88","nodeType":"YulIdentifier","src":"7592:12:88"},"nativeSrc":"7592:33:88","nodeType":"YulFunctionCall","src":"7592:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"7581:7:88","nodeType":"YulIdentifier","src":"7581:7:88"}]},{"nativeSrc":"7634:17:88","nodeType":"YulAssignment","src":"7634:17:88","value":{"name":"value_4","nativeSrc":"7644:7:88","nodeType":"YulIdentifier","src":"7644:7:88"},"variableNames":[{"name":"value5","nativeSrc":"7634:6:88","nodeType":"YulIdentifier","src":"7634:6:88"}]},{"nativeSrc":"7660:48:88","nodeType":"YulVariableDeclaration","src":"7660:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7692:9:88","nodeType":"YulIdentifier","src":"7692:9:88"},{"kind":"number","nativeSrc":"7703:3:88","nodeType":"YulLiteral","src":"7703:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7688:3:88","nodeType":"YulIdentifier","src":"7688:3:88"},"nativeSrc":"7688:19:88","nodeType":"YulFunctionCall","src":"7688:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7675:12:88","nodeType":"YulIdentifier","src":"7675:12:88"},"nativeSrc":"7675:33:88","nodeType":"YulFunctionCall","src":"7675:33:88"},"variables":[{"name":"value_5","nativeSrc":"7664:7:88","nodeType":"YulTypedName","src":"7664:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"7742:7:88","nodeType":"YulIdentifier","src":"7742:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7717:24:88","nodeType":"YulIdentifier","src":"7717:24:88"},"nativeSrc":"7717:33:88","nodeType":"YulFunctionCall","src":"7717:33:88"},"nativeSrc":"7717:33:88","nodeType":"YulExpressionStatement","src":"7717:33:88"},{"nativeSrc":"7759:17:88","nodeType":"YulAssignment","src":"7759:17:88","value":{"name":"value_5","nativeSrc":"7769:7:88","nodeType":"YulIdentifier","src":"7769:7:88"},"variableNames":[{"name":"value6","nativeSrc":"7759:6:88","nodeType":"YulIdentifier","src":"7759:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address","nativeSrc":"6589:1193:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6689:9:88","nodeType":"YulTypedName","src":"6689:9:88","type":""},{"name":"dataEnd","nativeSrc":"6700:7:88","nodeType":"YulTypedName","src":"6700:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6712:6:88","nodeType":"YulTypedName","src":"6712:6:88","type":""},{"name":"value1","nativeSrc":"6720:6:88","nodeType":"YulTypedName","src":"6720:6:88","type":""},{"name":"value2","nativeSrc":"6728:6:88","nodeType":"YulTypedName","src":"6728:6:88","type":""},{"name":"value3","nativeSrc":"6736:6:88","nodeType":"YulTypedName","src":"6736:6:88","type":""},{"name":"value4","nativeSrc":"6744:6:88","nodeType":"YulTypedName","src":"6744:6:88","type":""},{"name":"value5","nativeSrc":"6752:6:88","nodeType":"YulTypedName","src":"6752:6:88","type":""},{"name":"value6","nativeSrc":"6760:6:88","nodeType":"YulTypedName","src":"6760:6:88","type":""}],"src":"6589:1193:88"},{"body":{"nativeSrc":"7914:102:88","nodeType":"YulBlock","src":"7914:102:88","statements":[{"nativeSrc":"7924:26:88","nodeType":"YulAssignment","src":"7924:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7936:9:88","nodeType":"YulIdentifier","src":"7936:9:88"},{"kind":"number","nativeSrc":"7947:2:88","nodeType":"YulLiteral","src":"7947:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7932:3:88","nodeType":"YulIdentifier","src":"7932:3:88"},"nativeSrc":"7932:18:88","nodeType":"YulFunctionCall","src":"7932:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7924:4:88","nodeType":"YulIdentifier","src":"7924:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7966:9:88","nodeType":"YulIdentifier","src":"7966:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7981:6:88","nodeType":"YulIdentifier","src":"7981:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7997:3:88","nodeType":"YulLiteral","src":"7997:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8002:1:88","nodeType":"YulLiteral","src":"8002:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7993:3:88","nodeType":"YulIdentifier","src":"7993:3:88"},"nativeSrc":"7993:11:88","nodeType":"YulFunctionCall","src":"7993:11:88"},{"kind":"number","nativeSrc":"8006:1:88","nodeType":"YulLiteral","src":"8006:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7989:3:88","nodeType":"YulIdentifier","src":"7989:3:88"},"nativeSrc":"7989:19:88","nodeType":"YulFunctionCall","src":"7989:19:88"}],"functionName":{"name":"and","nativeSrc":"7977:3:88","nodeType":"YulIdentifier","src":"7977:3:88"},"nativeSrc":"7977:32:88","nodeType":"YulFunctionCall","src":"7977:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7959:6:88","nodeType":"YulIdentifier","src":"7959:6:88"},"nativeSrc":"7959:51:88","nodeType":"YulFunctionCall","src":"7959:51:88"},"nativeSrc":"7959:51:88","nodeType":"YulExpressionStatement","src":"7959:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed","nativeSrc":"7787:229:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7883:9:88","nodeType":"YulTypedName","src":"7883:9:88","type":""},{"name":"value0","nativeSrc":"7894:6:88","nodeType":"YulTypedName","src":"7894:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7905:4:88","nodeType":"YulTypedName","src":"7905:4:88","type":""}],"src":"7787:229:88"},{"body":{"nativeSrc":"8094:86:88","nodeType":"YulBlock","src":"8094:86:88","statements":[{"body":{"nativeSrc":"8134:16:88","nodeType":"YulBlock","src":"8134:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8143:1:88","nodeType":"YulLiteral","src":"8143:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8146:1:88","nodeType":"YulLiteral","src":"8146:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8136:6:88","nodeType":"YulIdentifier","src":"8136:6:88"},"nativeSrc":"8136:12:88","nodeType":"YulFunctionCall","src":"8136:12:88"},"nativeSrc":"8136:12:88","nodeType":"YulExpressionStatement","src":"8136:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8115:3:88","nodeType":"YulIdentifier","src":"8115:3:88"},{"name":"offset","nativeSrc":"8120:6:88","nodeType":"YulIdentifier","src":"8120:6:88"}],"functionName":{"name":"sub","nativeSrc":"8111:3:88","nodeType":"YulIdentifier","src":"8111:3:88"},"nativeSrc":"8111:16:88","nodeType":"YulFunctionCall","src":"8111:16:88"},{"kind":"number","nativeSrc":"8129:3:88","nodeType":"YulLiteral","src":"8129:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"8107:3:88","nodeType":"YulIdentifier","src":"8107:3:88"},"nativeSrc":"8107:26:88","nodeType":"YulFunctionCall","src":"8107:26:88"},"nativeSrc":"8104:46:88","nodeType":"YulIf","src":"8104:46:88"},{"nativeSrc":"8159:15:88","nodeType":"YulAssignment","src":"8159:15:88","value":{"name":"offset","nativeSrc":"8168:6:88","nodeType":"YulIdentifier","src":"8168:6:88"},"variableNames":[{"name":"value","nativeSrc":"8159:5:88","nodeType":"YulIdentifier","src":"8159:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"8021:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8068:6:88","nodeType":"YulTypedName","src":"8068:6:88","type":""},{"name":"end","nativeSrc":"8076:3:88","nodeType":"YulTypedName","src":"8076:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8084:5:88","nodeType":"YulTypedName","src":"8084:5:88","type":""}],"src":"8021:159:88"},{"body":{"nativeSrc":"8303:243:88","nodeType":"YulBlock","src":"8303:243:88","statements":[{"body":{"nativeSrc":"8350:16:88","nodeType":"YulBlock","src":"8350:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8359:1:88","nodeType":"YulLiteral","src":"8359:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8362:1:88","nodeType":"YulLiteral","src":"8362:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8352:6:88","nodeType":"YulIdentifier","src":"8352:6:88"},"nativeSrc":"8352:12:88","nodeType":"YulFunctionCall","src":"8352:12:88"},"nativeSrc":"8352:12:88","nodeType":"YulExpressionStatement","src":"8352:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8324:7:88","nodeType":"YulIdentifier","src":"8324:7:88"},{"name":"headStart","nativeSrc":"8333:9:88","nodeType":"YulIdentifier","src":"8333:9:88"}],"functionName":{"name":"sub","nativeSrc":"8320:3:88","nodeType":"YulIdentifier","src":"8320:3:88"},"nativeSrc":"8320:23:88","nodeType":"YulFunctionCall","src":"8320:23:88"},{"kind":"number","nativeSrc":"8345:3:88","nodeType":"YulLiteral","src":"8345:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"8316:3:88","nodeType":"YulIdentifier","src":"8316:3:88"},"nativeSrc":"8316:33:88","nodeType":"YulFunctionCall","src":"8316:33:88"},"nativeSrc":"8313:53:88","nodeType":"YulIf","src":"8313:53:88"},{"nativeSrc":"8375:67:88","nodeType":"YulAssignment","src":"8375:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8423:9:88","nodeType":"YulIdentifier","src":"8423:9:88"},{"name":"dataEnd","nativeSrc":"8434:7:88","nodeType":"YulIdentifier","src":"8434:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"8385:37:88","nodeType":"YulIdentifier","src":"8385:37:88"},"nativeSrc":"8385:57:88","nodeType":"YulFunctionCall","src":"8385:57:88"},"variableNames":[{"name":"value0","nativeSrc":"8375:6:88","nodeType":"YulIdentifier","src":"8375:6:88"}]},{"nativeSrc":"8451:14:88","nodeType":"YulVariableDeclaration","src":"8451:14:88","value":{"kind":"number","nativeSrc":"8464:1:88","nodeType":"YulLiteral","src":"8464:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8455:5:88","nodeType":"YulTypedName","src":"8455:5:88","type":""}]},{"nativeSrc":"8474:42:88","nodeType":"YulAssignment","src":"8474:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8500:9:88","nodeType":"YulIdentifier","src":"8500:9:88"},{"kind":"number","nativeSrc":"8511:3:88","nodeType":"YulLiteral","src":"8511:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"8496:3:88","nodeType":"YulIdentifier","src":"8496:3:88"},"nativeSrc":"8496:19:88","nodeType":"YulFunctionCall","src":"8496:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8483:12:88","nodeType":"YulIdentifier","src":"8483:12:88"},"nativeSrc":"8483:33:88","nodeType":"YulFunctionCall","src":"8483:33:88"},"variableNames":[{"name":"value","nativeSrc":"8474:5:88","nodeType":"YulIdentifier","src":"8474:5:88"}]},{"nativeSrc":"8525:15:88","nodeType":"YulAssignment","src":"8525:15:88","value":{"name":"value","nativeSrc":"8535:5:88","nodeType":"YulIdentifier","src":"8535:5:88"},"variableNames":[{"name":"value1","nativeSrc":"8525:6:88","nodeType":"YulIdentifier","src":"8525:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"8185:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8261:9:88","nodeType":"YulTypedName","src":"8261:9:88","type":""},{"name":"dataEnd","nativeSrc":"8272:7:88","nodeType":"YulTypedName","src":"8272:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8284:6:88","nodeType":"YulTypedName","src":"8284:6:88","type":""},{"name":"value1","nativeSrc":"8292:6:88","nodeType":"YulTypedName","src":"8292:6:88","type":""}],"src":"8185:361:88"},{"body":{"nativeSrc":"8654:315:88","nodeType":"YulBlock","src":"8654:315:88","statements":[{"body":{"nativeSrc":"8700:16:88","nodeType":"YulBlock","src":"8700:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8709:1:88","nodeType":"YulLiteral","src":"8709:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8712:1:88","nodeType":"YulLiteral","src":"8712:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8702:6:88","nodeType":"YulIdentifier","src":"8702:6:88"},"nativeSrc":"8702:12:88","nodeType":"YulFunctionCall","src":"8702:12:88"},"nativeSrc":"8702:12:88","nodeType":"YulExpressionStatement","src":"8702:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8675:7:88","nodeType":"YulIdentifier","src":"8675:7:88"},{"name":"headStart","nativeSrc":"8684:9:88","nodeType":"YulIdentifier","src":"8684:9:88"}],"functionName":{"name":"sub","nativeSrc":"8671:3:88","nodeType":"YulIdentifier","src":"8671:3:88"},"nativeSrc":"8671:23:88","nodeType":"YulFunctionCall","src":"8671:23:88"},{"kind":"number","nativeSrc":"8696:2:88","nodeType":"YulLiteral","src":"8696:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8667:3:88","nodeType":"YulIdentifier","src":"8667:3:88"},"nativeSrc":"8667:32:88","nodeType":"YulFunctionCall","src":"8667:32:88"},"nativeSrc":"8664:52:88","nodeType":"YulIf","src":"8664:52:88"},{"nativeSrc":"8725:14:88","nodeType":"YulVariableDeclaration","src":"8725:14:88","value":{"kind":"number","nativeSrc":"8738:1:88","nodeType":"YulLiteral","src":"8738:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8729:5:88","nodeType":"YulTypedName","src":"8729:5:88","type":""}]},{"nativeSrc":"8748:32:88","nodeType":"YulAssignment","src":"8748:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8770:9:88","nodeType":"YulIdentifier","src":"8770:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8757:12:88","nodeType":"YulIdentifier","src":"8757:12:88"},"nativeSrc":"8757:23:88","nodeType":"YulFunctionCall","src":"8757:23:88"},"variableNames":[{"name":"value","nativeSrc":"8748:5:88","nodeType":"YulIdentifier","src":"8748:5:88"}]},{"nativeSrc":"8789:15:88","nodeType":"YulAssignment","src":"8789:15:88","value":{"name":"value","nativeSrc":"8799:5:88","nodeType":"YulIdentifier","src":"8799:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8789:6:88","nodeType":"YulIdentifier","src":"8789:6:88"}]},{"nativeSrc":"8813:16:88","nodeType":"YulVariableDeclaration","src":"8813:16:88","value":{"kind":"number","nativeSrc":"8828:1:88","nodeType":"YulLiteral","src":"8828:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8817:7:88","nodeType":"YulTypedName","src":"8817:7:88","type":""}]},{"nativeSrc":"8838:43:88","nodeType":"YulAssignment","src":"8838:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8866:9:88","nodeType":"YulIdentifier","src":"8866:9:88"},{"kind":"number","nativeSrc":"8877:2:88","nodeType":"YulLiteral","src":"8877:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8862:3:88","nodeType":"YulIdentifier","src":"8862:3:88"},"nativeSrc":"8862:18:88","nodeType":"YulFunctionCall","src":"8862:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8849:12:88","nodeType":"YulIdentifier","src":"8849:12:88"},"nativeSrc":"8849:32:88","nodeType":"YulFunctionCall","src":"8849:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8838:7:88","nodeType":"YulIdentifier","src":"8838:7:88"}]},{"nativeSrc":"8890:17:88","nodeType":"YulAssignment","src":"8890:17:88","value":{"name":"value_1","nativeSrc":"8900:7:88","nodeType":"YulIdentifier","src":"8900:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8890:6:88","nodeType":"YulIdentifier","src":"8890:6:88"}]},{"nativeSrc":"8916:47:88","nodeType":"YulAssignment","src":"8916:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8948:9:88","nodeType":"YulIdentifier","src":"8948:9:88"},{"kind":"number","nativeSrc":"8959:2:88","nodeType":"YulLiteral","src":"8959:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8944:3:88","nodeType":"YulIdentifier","src":"8944:3:88"},"nativeSrc":"8944:18:88","nodeType":"YulFunctionCall","src":"8944:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"8926:17:88","nodeType":"YulIdentifier","src":"8926:17:88"},"nativeSrc":"8926:37:88","nodeType":"YulFunctionCall","src":"8926:37:88"},"variableNames":[{"name":"value2","nativeSrc":"8916:6:88","nodeType":"YulIdentifier","src":"8916:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40","nativeSrc":"8551:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8604:9:88","nodeType":"YulTypedName","src":"8604:9:88","type":""},{"name":"dataEnd","nativeSrc":"8615:7:88","nodeType":"YulTypedName","src":"8615:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8627:6:88","nodeType":"YulTypedName","src":"8627:6:88","type":""},{"name":"value1","nativeSrc":"8635:6:88","nodeType":"YulTypedName","src":"8635:6:88","type":""},{"name":"value2","nativeSrc":"8643:6:88","nodeType":"YulTypedName","src":"8643:6:88","type":""}],"src":"8551:418:88"},{"body":{"nativeSrc":"9076:290:88","nodeType":"YulBlock","src":"9076:290:88","statements":[{"body":{"nativeSrc":"9122:16:88","nodeType":"YulBlock","src":"9122:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9131:1:88","nodeType":"YulLiteral","src":"9131:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9134:1:88","nodeType":"YulLiteral","src":"9134:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9124:6:88","nodeType":"YulIdentifier","src":"9124:6:88"},"nativeSrc":"9124:12:88","nodeType":"YulFunctionCall","src":"9124:12:88"},"nativeSrc":"9124:12:88","nodeType":"YulExpressionStatement","src":"9124:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9097:7:88","nodeType":"YulIdentifier","src":"9097:7:88"},{"name":"headStart","nativeSrc":"9106:9:88","nodeType":"YulIdentifier","src":"9106:9:88"}],"functionName":{"name":"sub","nativeSrc":"9093:3:88","nodeType":"YulIdentifier","src":"9093:3:88"},"nativeSrc":"9093:23:88","nodeType":"YulFunctionCall","src":"9093:23:88"},{"kind":"number","nativeSrc":"9118:2:88","nodeType":"YulLiteral","src":"9118:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9089:3:88","nodeType":"YulIdentifier","src":"9089:3:88"},"nativeSrc":"9089:32:88","nodeType":"YulFunctionCall","src":"9089:32:88"},"nativeSrc":"9086:52:88","nodeType":"YulIf","src":"9086:52:88"},{"nativeSrc":"9147:36:88","nodeType":"YulVariableDeclaration","src":"9147:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9173:9:88","nodeType":"YulIdentifier","src":"9173:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9160:12:88","nodeType":"YulIdentifier","src":"9160:12:88"},"nativeSrc":"9160:23:88","nodeType":"YulFunctionCall","src":"9160:23:88"},"variables":[{"name":"value","nativeSrc":"9151:5:88","nodeType":"YulTypedName","src":"9151:5:88","type":""}]},{"body":{"nativeSrc":"9217:16:88","nodeType":"YulBlock","src":"9217:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9226:1:88","nodeType":"YulLiteral","src":"9226:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9229:1:88","nodeType":"YulLiteral","src":"9229:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9219:6:88","nodeType":"YulIdentifier","src":"9219:6:88"},"nativeSrc":"9219:12:88","nodeType":"YulFunctionCall","src":"9219:12:88"},"nativeSrc":"9219:12:88","nodeType":"YulExpressionStatement","src":"9219:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9205:5:88","nodeType":"YulIdentifier","src":"9205:5:88"},{"kind":"number","nativeSrc":"9212:2:88","nodeType":"YulLiteral","src":"9212:2:88","type":"","value":"10"}],"functionName":{"name":"lt","nativeSrc":"9202:2:88","nodeType":"YulIdentifier","src":"9202:2:88"},"nativeSrc":"9202:13:88","nodeType":"YulFunctionCall","src":"9202:13:88"}],"functionName":{"name":"iszero","nativeSrc":"9195:6:88","nodeType":"YulIdentifier","src":"9195:6:88"},"nativeSrc":"9195:21:88","nodeType":"YulFunctionCall","src":"9195:21:88"},"nativeSrc":"9192:41:88","nodeType":"YulIf","src":"9192:41:88"},{"nativeSrc":"9242:15:88","nodeType":"YulAssignment","src":"9242:15:88","value":{"name":"value","nativeSrc":"9252:5:88","nodeType":"YulIdentifier","src":"9252:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9242:6:88","nodeType":"YulIdentifier","src":"9242:6:88"}]},{"nativeSrc":"9266:16:88","nodeType":"YulVariableDeclaration","src":"9266:16:88","value":{"kind":"number","nativeSrc":"9281:1:88","nodeType":"YulLiteral","src":"9281:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9270:7:88","nodeType":"YulTypedName","src":"9270:7:88","type":""}]},{"nativeSrc":"9291:43:88","nodeType":"YulAssignment","src":"9291:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9319:9:88","nodeType":"YulIdentifier","src":"9319:9:88"},{"kind":"number","nativeSrc":"9330:2:88","nodeType":"YulLiteral","src":"9330:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9315:3:88","nodeType":"YulIdentifier","src":"9315:3:88"},"nativeSrc":"9315:18:88","nodeType":"YulFunctionCall","src":"9315:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9302:12:88","nodeType":"YulIdentifier","src":"9302:12:88"},"nativeSrc":"9302:32:88","nodeType":"YulFunctionCall","src":"9302:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9291:7:88","nodeType":"YulIdentifier","src":"9291:7:88"}]},{"nativeSrc":"9343:17:88","nodeType":"YulAssignment","src":"9343:17:88","value":{"name":"value_1","nativeSrc":"9353:7:88","nodeType":"YulIdentifier","src":"9353:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9343:6:88","nodeType":"YulIdentifier","src":"9343:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256","nativeSrc":"8974:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9034:9:88","nodeType":"YulTypedName","src":"9034:9:88","type":""},{"name":"dataEnd","nativeSrc":"9045:7:88","nodeType":"YulTypedName","src":"9045:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9057:6:88","nodeType":"YulTypedName","src":"9057:6:88","type":""},{"name":"value1","nativeSrc":"9065:6:88","nodeType":"YulTypedName","src":"9065:6:88","type":""}],"src":"8974:392:88"},{"body":{"nativeSrc":"9522:462:88","nodeType":"YulBlock","src":"9522:462:88","statements":[{"nativeSrc":"9532:27:88","nodeType":"YulAssignment","src":"9532:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9544:9:88","nodeType":"YulIdentifier","src":"9544:9:88"},{"kind":"number","nativeSrc":"9555:3:88","nodeType":"YulLiteral","src":"9555:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"9540:3:88","nodeType":"YulIdentifier","src":"9540:3:88"},"nativeSrc":"9540:19:88","nodeType":"YulFunctionCall","src":"9540:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9532:4:88","nodeType":"YulIdentifier","src":"9532:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9575:9:88","nodeType":"YulIdentifier","src":"9575:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9592:6:88","nodeType":"YulIdentifier","src":"9592:6:88"}],"functionName":{"name":"mload","nativeSrc":"9586:5:88","nodeType":"YulIdentifier","src":"9586:5:88"},"nativeSrc":"9586:13:88","nodeType":"YulFunctionCall","src":"9586:13:88"}],"functionName":{"name":"mstore","nativeSrc":"9568:6:88","nodeType":"YulIdentifier","src":"9568:6:88"},"nativeSrc":"9568:32:88","nodeType":"YulFunctionCall","src":"9568:32:88"},"nativeSrc":"9568:32:88","nodeType":"YulExpressionStatement","src":"9568:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9620:9:88","nodeType":"YulIdentifier","src":"9620:9:88"},{"kind":"number","nativeSrc":"9631:4:88","nodeType":"YulLiteral","src":"9631:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9616:3:88","nodeType":"YulIdentifier","src":"9616:3:88"},"nativeSrc":"9616:20:88","nodeType":"YulFunctionCall","src":"9616:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9648:6:88","nodeType":"YulIdentifier","src":"9648:6:88"},{"kind":"number","nativeSrc":"9656:4:88","nodeType":"YulLiteral","src":"9656:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9644:3:88","nodeType":"YulIdentifier","src":"9644:3:88"},"nativeSrc":"9644:17:88","nodeType":"YulFunctionCall","src":"9644:17:88"}],"functionName":{"name":"mload","nativeSrc":"9638:5:88","nodeType":"YulIdentifier","src":"9638:5:88"},"nativeSrc":"9638:24:88","nodeType":"YulFunctionCall","src":"9638:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9609:6:88","nodeType":"YulIdentifier","src":"9609:6:88"},"nativeSrc":"9609:54:88","nodeType":"YulFunctionCall","src":"9609:54:88"},"nativeSrc":"9609:54:88","nodeType":"YulExpressionStatement","src":"9609:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9683:9:88","nodeType":"YulIdentifier","src":"9683:9:88"},{"kind":"number","nativeSrc":"9694:4:88","nodeType":"YulLiteral","src":"9694:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9679:3:88","nodeType":"YulIdentifier","src":"9679:3:88"},"nativeSrc":"9679:20:88","nodeType":"YulFunctionCall","src":"9679:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9711:6:88","nodeType":"YulIdentifier","src":"9711:6:88"},{"kind":"number","nativeSrc":"9719:4:88","nodeType":"YulLiteral","src":"9719:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9707:3:88","nodeType":"YulIdentifier","src":"9707:3:88"},"nativeSrc":"9707:17:88","nodeType":"YulFunctionCall","src":"9707:17:88"}],"functionName":{"name":"mload","nativeSrc":"9701:5:88","nodeType":"YulIdentifier","src":"9701:5:88"},"nativeSrc":"9701:24:88","nodeType":"YulFunctionCall","src":"9701:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9672:6:88","nodeType":"YulIdentifier","src":"9672:6:88"},"nativeSrc":"9672:54:88","nodeType":"YulFunctionCall","src":"9672:54:88"},"nativeSrc":"9672:54:88","nodeType":"YulExpressionStatement","src":"9672:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9746:9:88","nodeType":"YulIdentifier","src":"9746:9:88"},{"kind":"number","nativeSrc":"9757:4:88","nodeType":"YulLiteral","src":"9757:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9742:3:88","nodeType":"YulIdentifier","src":"9742:3:88"},"nativeSrc":"9742:20:88","nodeType":"YulFunctionCall","src":"9742:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9774:6:88","nodeType":"YulIdentifier","src":"9774:6:88"},{"kind":"number","nativeSrc":"9782:4:88","nodeType":"YulLiteral","src":"9782:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9770:3:88","nodeType":"YulIdentifier","src":"9770:3:88"},"nativeSrc":"9770:17:88","nodeType":"YulFunctionCall","src":"9770:17:88"}],"functionName":{"name":"mload","nativeSrc":"9764:5:88","nodeType":"YulIdentifier","src":"9764:5:88"},"nativeSrc":"9764:24:88","nodeType":"YulFunctionCall","src":"9764:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9735:6:88","nodeType":"YulIdentifier","src":"9735:6:88"},"nativeSrc":"9735:54:88","nodeType":"YulFunctionCall","src":"9735:54:88"},"nativeSrc":"9735:54:88","nodeType":"YulExpressionStatement","src":"9735:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9809:9:88","nodeType":"YulIdentifier","src":"9809:9:88"},{"kind":"number","nativeSrc":"9820:4:88","nodeType":"YulLiteral","src":"9820:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"9805:3:88","nodeType":"YulIdentifier","src":"9805:3:88"},"nativeSrc":"9805:20:88","nodeType":"YulFunctionCall","src":"9805:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9837:6:88","nodeType":"YulIdentifier","src":"9837:6:88"},{"kind":"number","nativeSrc":"9845:4:88","nodeType":"YulLiteral","src":"9845:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"9833:3:88","nodeType":"YulIdentifier","src":"9833:3:88"},"nativeSrc":"9833:17:88","nodeType":"YulFunctionCall","src":"9833:17:88"}],"functionName":{"name":"mload","nativeSrc":"9827:5:88","nodeType":"YulIdentifier","src":"9827:5:88"},"nativeSrc":"9827:24:88","nodeType":"YulFunctionCall","src":"9827:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9798:6:88","nodeType":"YulIdentifier","src":"9798:6:88"},"nativeSrc":"9798:54:88","nodeType":"YulFunctionCall","src":"9798:54:88"},"nativeSrc":"9798:54:88","nodeType":"YulExpressionStatement","src":"9798:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9872:9:88","nodeType":"YulIdentifier","src":"9872:9:88"},{"kind":"number","nativeSrc":"9883:4:88","nodeType":"YulLiteral","src":"9883:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"9868:3:88","nodeType":"YulIdentifier","src":"9868:3:88"},"nativeSrc":"9868:20:88","nodeType":"YulFunctionCall","src":"9868:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9900:6:88","nodeType":"YulIdentifier","src":"9900:6:88"},{"kind":"number","nativeSrc":"9908:4:88","nodeType":"YulLiteral","src":"9908:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"9896:3:88","nodeType":"YulIdentifier","src":"9896:3:88"},"nativeSrc":"9896:17:88","nodeType":"YulFunctionCall","src":"9896:17:88"}],"functionName":{"name":"mload","nativeSrc":"9890:5:88","nodeType":"YulIdentifier","src":"9890:5:88"},"nativeSrc":"9890:24:88","nodeType":"YulFunctionCall","src":"9890:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9861:6:88","nodeType":"YulIdentifier","src":"9861:6:88"},"nativeSrc":"9861:54:88","nodeType":"YulFunctionCall","src":"9861:54:88"},"nativeSrc":"9861:54:88","nodeType":"YulExpressionStatement","src":"9861:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9935:9:88","nodeType":"YulIdentifier","src":"9935:9:88"},{"kind":"number","nativeSrc":"9946:4:88","nodeType":"YulLiteral","src":"9946:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"9931:3:88","nodeType":"YulIdentifier","src":"9931:3:88"},"nativeSrc":"9931:20:88","nodeType":"YulFunctionCall","src":"9931:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9963:6:88","nodeType":"YulIdentifier","src":"9963:6:88"},{"kind":"number","nativeSrc":"9971:4:88","nodeType":"YulLiteral","src":"9971:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"9959:3:88","nodeType":"YulIdentifier","src":"9959:3:88"},"nativeSrc":"9959:17:88","nodeType":"YulFunctionCall","src":"9959:17:88"}],"functionName":{"name":"mload","nativeSrc":"9953:5:88","nodeType":"YulIdentifier","src":"9953:5:88"},"nativeSrc":"9953:24:88","nodeType":"YulFunctionCall","src":"9953:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9924:6:88","nodeType":"YulIdentifier","src":"9924:6:88"},"nativeSrc":"9924:54:88","nodeType":"YulFunctionCall","src":"9924:54:88"},"nativeSrc":"9924:54:88","nodeType":"YulExpressionStatement","src":"9924:54:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"9371:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9491:9:88","nodeType":"YulTypedName","src":"9491:9:88","type":""},{"name":"value0","nativeSrc":"9502:6:88","nodeType":"YulTypedName","src":"9502:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9513:4:88","nodeType":"YulTypedName","src":"9513:4:88","type":""}],"src":"9371:613:88"},{"body":{"nativeSrc":"10113:102:88","nodeType":"YulBlock","src":"10113:102:88","statements":[{"nativeSrc":"10123:26:88","nodeType":"YulAssignment","src":"10123:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10135:9:88","nodeType":"YulIdentifier","src":"10135:9:88"},{"kind":"number","nativeSrc":"10146:2:88","nodeType":"YulLiteral","src":"10146:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10131:3:88","nodeType":"YulIdentifier","src":"10131:3:88"},"nativeSrc":"10131:18:88","nodeType":"YulFunctionCall","src":"10131:18:88"},"variableNames":[{"name":"tail","nativeSrc":"10123:4:88","nodeType":"YulIdentifier","src":"10123:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10165:9:88","nodeType":"YulIdentifier","src":"10165:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10180:6:88","nodeType":"YulIdentifier","src":"10180:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10196:3:88","nodeType":"YulLiteral","src":"10196:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"10201:1:88","nodeType":"YulLiteral","src":"10201:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10192:3:88","nodeType":"YulIdentifier","src":"10192:3:88"},"nativeSrc":"10192:11:88","nodeType":"YulFunctionCall","src":"10192:11:88"},{"kind":"number","nativeSrc":"10205:1:88","nodeType":"YulLiteral","src":"10205:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10188:3:88","nodeType":"YulIdentifier","src":"10188:3:88"},"nativeSrc":"10188:19:88","nodeType":"YulFunctionCall","src":"10188:19:88"}],"functionName":{"name":"and","nativeSrc":"10176:3:88","nodeType":"YulIdentifier","src":"10176:3:88"},"nativeSrc":"10176:32:88","nodeType":"YulFunctionCall","src":"10176:32:88"}],"functionName":{"name":"mstore","nativeSrc":"10158:6:88","nodeType":"YulIdentifier","src":"10158:6:88"},"nativeSrc":"10158:51:88","nodeType":"YulFunctionCall","src":"10158:51:88"},"nativeSrc":"10158:51:88","nodeType":"YulExpressionStatement","src":"10158:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"9989:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10082:9:88","nodeType":"YulTypedName","src":"10082:9:88","type":""},{"name":"value0","nativeSrc":"10093:6:88","nodeType":"YulTypedName","src":"10093:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10104:4:88","nodeType":"YulTypedName","src":"10104:4:88","type":""}],"src":"9989:226:88"},{"body":{"nativeSrc":"10262:76:88","nodeType":"YulBlock","src":"10262:76:88","statements":[{"body":{"nativeSrc":"10316:16:88","nodeType":"YulBlock","src":"10316:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10325:1:88","nodeType":"YulLiteral","src":"10325:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10328:1:88","nodeType":"YulLiteral","src":"10328:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10318:6:88","nodeType":"YulIdentifier","src":"10318:6:88"},"nativeSrc":"10318:12:88","nodeType":"YulFunctionCall","src":"10318:12:88"},"nativeSrc":"10318:12:88","nodeType":"YulExpressionStatement","src":"10318:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10285:5:88","nodeType":"YulIdentifier","src":"10285:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10306:5:88","nodeType":"YulIdentifier","src":"10306:5:88"}],"functionName":{"name":"iszero","nativeSrc":"10299:6:88","nodeType":"YulIdentifier","src":"10299:6:88"},"nativeSrc":"10299:13:88","nodeType":"YulFunctionCall","src":"10299:13:88"}],"functionName":{"name":"iszero","nativeSrc":"10292:6:88","nodeType":"YulIdentifier","src":"10292:6:88"},"nativeSrc":"10292:21:88","nodeType":"YulFunctionCall","src":"10292:21:88"}],"functionName":{"name":"eq","nativeSrc":"10282:2:88","nodeType":"YulIdentifier","src":"10282:2:88"},"nativeSrc":"10282:32:88","nodeType":"YulFunctionCall","src":"10282:32:88"}],"functionName":{"name":"iszero","nativeSrc":"10275:6:88","nodeType":"YulIdentifier","src":"10275:6:88"},"nativeSrc":"10275:40:88","nodeType":"YulFunctionCall","src":"10275:40:88"},"nativeSrc":"10272:60:88","nodeType":"YulIf","src":"10272:60:88"}]},"name":"validator_revert_bool","nativeSrc":"10220:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10251:5:88","nodeType":"YulTypedName","src":"10251:5:88","type":""}],"src":"10220:118:88"},{"body":{"nativeSrc":"10458:261:88","nodeType":"YulBlock","src":"10458:261:88","statements":[{"body":{"nativeSrc":"10505:16:88","nodeType":"YulBlock","src":"10505:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10514:1:88","nodeType":"YulLiteral","src":"10514:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10517:1:88","nodeType":"YulLiteral","src":"10517:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10507:6:88","nodeType":"YulIdentifier","src":"10507:6:88"},"nativeSrc":"10507:12:88","nodeType":"YulFunctionCall","src":"10507:12:88"},"nativeSrc":"10507:12:88","nodeType":"YulExpressionStatement","src":"10507:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10479:7:88","nodeType":"YulIdentifier","src":"10479:7:88"},{"name":"headStart","nativeSrc":"10488:9:88","nodeType":"YulIdentifier","src":"10488:9:88"}],"functionName":{"name":"sub","nativeSrc":"10475:3:88","nodeType":"YulIdentifier","src":"10475:3:88"},"nativeSrc":"10475:23:88","nodeType":"YulFunctionCall","src":"10475:23:88"},{"kind":"number","nativeSrc":"10500:3:88","nodeType":"YulLiteral","src":"10500:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"10471:3:88","nodeType":"YulIdentifier","src":"10471:3:88"},"nativeSrc":"10471:33:88","nodeType":"YulFunctionCall","src":"10471:33:88"},"nativeSrc":"10468:53:88","nodeType":"YulIf","src":"10468:53:88"},{"nativeSrc":"10530:67:88","nodeType":"YulAssignment","src":"10530:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10578:9:88","nodeType":"YulIdentifier","src":"10578:9:88"},{"name":"dataEnd","nativeSrc":"10589:7:88","nodeType":"YulIdentifier","src":"10589:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"10540:37:88","nodeType":"YulIdentifier","src":"10540:37:88"},"nativeSrc":"10540:57:88","nodeType":"YulFunctionCall","src":"10540:57:88"},"variableNames":[{"name":"value0","nativeSrc":"10530:6:88","nodeType":"YulIdentifier","src":"10530:6:88"}]},{"nativeSrc":"10606:46:88","nodeType":"YulVariableDeclaration","src":"10606:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10636:9:88","nodeType":"YulIdentifier","src":"10636:9:88"},{"kind":"number","nativeSrc":"10647:3:88","nodeType":"YulLiteral","src":"10647:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"10632:3:88","nodeType":"YulIdentifier","src":"10632:3:88"},"nativeSrc":"10632:19:88","nodeType":"YulFunctionCall","src":"10632:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10619:12:88","nodeType":"YulIdentifier","src":"10619:12:88"},"nativeSrc":"10619:33:88","nodeType":"YulFunctionCall","src":"10619:33:88"},"variables":[{"name":"value","nativeSrc":"10610:5:88","nodeType":"YulTypedName","src":"10610:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10683:5:88","nodeType":"YulIdentifier","src":"10683:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"10661:21:88","nodeType":"YulIdentifier","src":"10661:21:88"},"nativeSrc":"10661:28:88","nodeType":"YulFunctionCall","src":"10661:28:88"},"nativeSrc":"10661:28:88","nodeType":"YulExpressionStatement","src":"10661:28:88"},{"nativeSrc":"10698:15:88","nodeType":"YulAssignment","src":"10698:15:88","value":{"name":"value","nativeSrc":"10708:5:88","nodeType":"YulIdentifier","src":"10708:5:88"},"variableNames":[{"name":"value1","nativeSrc":"10698:6:88","nodeType":"YulIdentifier","src":"10698:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool","nativeSrc":"10343:376:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10416:9:88","nodeType":"YulTypedName","src":"10416:9:88","type":""},{"name":"dataEnd","nativeSrc":"10427:7:88","nodeType":"YulTypedName","src":"10427:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10439:6:88","nodeType":"YulTypedName","src":"10439:6:88","type":""},{"name":"value1","nativeSrc":"10447:6:88","nodeType":"YulTypedName","src":"10447:6:88","type":""}],"src":"10343:376:88"},{"body":{"nativeSrc":"10779:325:88","nodeType":"YulBlock","src":"10779:325:88","statements":[{"nativeSrc":"10789:22:88","nodeType":"YulAssignment","src":"10789:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"10803:1:88","nodeType":"YulLiteral","src":"10803:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"10806:4:88","nodeType":"YulIdentifier","src":"10806:4:88"}],"functionName":{"name":"shr","nativeSrc":"10799:3:88","nodeType":"YulIdentifier","src":"10799:3:88"},"nativeSrc":"10799:12:88","nodeType":"YulFunctionCall","src":"10799:12:88"},"variableNames":[{"name":"length","nativeSrc":"10789:6:88","nodeType":"YulIdentifier","src":"10789:6:88"}]},{"nativeSrc":"10820:38:88","nodeType":"YulVariableDeclaration","src":"10820:38:88","value":{"arguments":[{"name":"data","nativeSrc":"10850:4:88","nodeType":"YulIdentifier","src":"10850:4:88"},{"kind":"number","nativeSrc":"10856:1:88","nodeType":"YulLiteral","src":"10856:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10846:3:88","nodeType":"YulIdentifier","src":"10846:3:88"},"nativeSrc":"10846:12:88","nodeType":"YulFunctionCall","src":"10846:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"10824:18:88","nodeType":"YulTypedName","src":"10824:18:88","type":""}]},{"body":{"nativeSrc":"10897:31:88","nodeType":"YulBlock","src":"10897:31:88","statements":[{"nativeSrc":"10899:27:88","nodeType":"YulAssignment","src":"10899:27:88","value":{"arguments":[{"name":"length","nativeSrc":"10913:6:88","nodeType":"YulIdentifier","src":"10913:6:88"},{"kind":"number","nativeSrc":"10921:4:88","nodeType":"YulLiteral","src":"10921:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10909:3:88","nodeType":"YulIdentifier","src":"10909:3:88"},"nativeSrc":"10909:17:88","nodeType":"YulFunctionCall","src":"10909:17:88"},"variableNames":[{"name":"length","nativeSrc":"10899:6:88","nodeType":"YulIdentifier","src":"10899:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10877:18:88","nodeType":"YulIdentifier","src":"10877:18:88"}],"functionName":{"name":"iszero","nativeSrc":"10870:6:88","nodeType":"YulIdentifier","src":"10870:6:88"},"nativeSrc":"10870:26:88","nodeType":"YulFunctionCall","src":"10870:26:88"},"nativeSrc":"10867:61:88","nodeType":"YulIf","src":"10867:61:88"},{"body":{"nativeSrc":"10987:111:88","nodeType":"YulBlock","src":"10987:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11008:1:88","nodeType":"YulLiteral","src":"11008:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"11015:3:88","nodeType":"YulLiteral","src":"11015:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"11020:10:88","nodeType":"YulLiteral","src":"11020:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"11011:3:88","nodeType":"YulIdentifier","src":"11011:3:88"},"nativeSrc":"11011:20:88","nodeType":"YulFunctionCall","src":"11011:20:88"}],"functionName":{"name":"mstore","nativeSrc":"11001:6:88","nodeType":"YulIdentifier","src":"11001:6:88"},"nativeSrc":"11001:31:88","nodeType":"YulFunctionCall","src":"11001:31:88"},"nativeSrc":"11001:31:88","nodeType":"YulExpressionStatement","src":"11001:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11052:1:88","nodeType":"YulLiteral","src":"11052:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"11055:4:88","nodeType":"YulLiteral","src":"11055:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11045:6:88","nodeType":"YulIdentifier","src":"11045:6:88"},"nativeSrc":"11045:15:88","nodeType":"YulFunctionCall","src":"11045:15:88"},"nativeSrc":"11045:15:88","nodeType":"YulExpressionStatement","src":"11045:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11080:1:88","nodeType":"YulLiteral","src":"11080:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11083:4:88","nodeType":"YulLiteral","src":"11083:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11073:6:88","nodeType":"YulIdentifier","src":"11073:6:88"},"nativeSrc":"11073:15:88","nodeType":"YulFunctionCall","src":"11073:15:88"},"nativeSrc":"11073:15:88","nodeType":"YulExpressionStatement","src":"11073:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10943:18:88","nodeType":"YulIdentifier","src":"10943:18:88"},{"arguments":[{"name":"length","nativeSrc":"10966:6:88","nodeType":"YulIdentifier","src":"10966:6:88"},{"kind":"number","nativeSrc":"10974:2:88","nodeType":"YulLiteral","src":"10974:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10963:2:88","nodeType":"YulIdentifier","src":"10963:2:88"},"nativeSrc":"10963:14:88","nodeType":"YulFunctionCall","src":"10963:14:88"}],"functionName":{"name":"eq","nativeSrc":"10940:2:88","nodeType":"YulIdentifier","src":"10940:2:88"},"nativeSrc":"10940:38:88","nodeType":"YulFunctionCall","src":"10940:38:88"},"nativeSrc":"10937:161:88","nodeType":"YulIf","src":"10937:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"10724:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10759:4:88","nodeType":"YulTypedName","src":"10759:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10768:6:88","nodeType":"YulTypedName","src":"10768:6:88","type":""}],"src":"10724:380:88"},{"body":{"nativeSrc":"11283:234:88","nodeType":"YulBlock","src":"11283:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11300:9:88","nodeType":"YulIdentifier","src":"11300:9:88"},{"kind":"number","nativeSrc":"11311:2:88","nodeType":"YulLiteral","src":"11311:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11293:6:88","nodeType":"YulIdentifier","src":"11293:6:88"},"nativeSrc":"11293:21:88","nodeType":"YulFunctionCall","src":"11293:21:88"},"nativeSrc":"11293:21:88","nodeType":"YulExpressionStatement","src":"11293:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11334:9:88","nodeType":"YulIdentifier","src":"11334:9:88"},{"kind":"number","nativeSrc":"11345:2:88","nodeType":"YulLiteral","src":"11345:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11330:3:88","nodeType":"YulIdentifier","src":"11330:3:88"},"nativeSrc":"11330:18:88","nodeType":"YulFunctionCall","src":"11330:18:88"},{"kind":"number","nativeSrc":"11350:2:88","nodeType":"YulLiteral","src":"11350:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"11323:6:88","nodeType":"YulIdentifier","src":"11323:6:88"},"nativeSrc":"11323:30:88","nodeType":"YulFunctionCall","src":"11323:30:88"},"nativeSrc":"11323:30:88","nodeType":"YulExpressionStatement","src":"11323:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11373:9:88","nodeType":"YulIdentifier","src":"11373:9:88"},{"kind":"number","nativeSrc":"11384:2:88","nodeType":"YulLiteral","src":"11384:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11369:3:88","nodeType":"YulIdentifier","src":"11369:3:88"},"nativeSrc":"11369:18:88","nodeType":"YulFunctionCall","src":"11369:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"11389:34:88","nodeType":"YulLiteral","src":"11389:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"11362:6:88","nodeType":"YulIdentifier","src":"11362:6:88"},"nativeSrc":"11362:62:88","nodeType":"YulFunctionCall","src":"11362:62:88"},"nativeSrc":"11362:62:88","nodeType":"YulExpressionStatement","src":"11362:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11444:9:88","nodeType":"YulIdentifier","src":"11444:9:88"},{"kind":"number","nativeSrc":"11455:2:88","nodeType":"YulLiteral","src":"11455:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11440:3:88","nodeType":"YulIdentifier","src":"11440:3:88"},"nativeSrc":"11440:18:88","nodeType":"YulFunctionCall","src":"11440:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"11460:14:88","nodeType":"YulLiteral","src":"11460:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"11433:6:88","nodeType":"YulIdentifier","src":"11433:6:88"},"nativeSrc":"11433:42:88","nodeType":"YulFunctionCall","src":"11433:42:88"},"nativeSrc":"11433:42:88","nodeType":"YulExpressionStatement","src":"11433:42:88"},{"nativeSrc":"11484:27:88","nodeType":"YulAssignment","src":"11484:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11496:9:88","nodeType":"YulIdentifier","src":"11496:9:88"},{"kind":"number","nativeSrc":"11507:3:88","nodeType":"YulLiteral","src":"11507:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11492:3:88","nodeType":"YulIdentifier","src":"11492:3:88"},"nativeSrc":"11492:19:88","nodeType":"YulFunctionCall","src":"11492:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11484:4:88","nodeType":"YulIdentifier","src":"11484:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11109:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11260:9:88","nodeType":"YulTypedName","src":"11260:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11274:4:88","nodeType":"YulTypedName","src":"11274:4:88","type":""}],"src":"11109:408:88"},{"body":{"nativeSrc":"11696:234:88","nodeType":"YulBlock","src":"11696:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11713:9:88","nodeType":"YulIdentifier","src":"11713:9:88"},{"kind":"number","nativeSrc":"11724:2:88","nodeType":"YulLiteral","src":"11724:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11706:6:88","nodeType":"YulIdentifier","src":"11706:6:88"},"nativeSrc":"11706:21:88","nodeType":"YulFunctionCall","src":"11706:21:88"},"nativeSrc":"11706:21:88","nodeType":"YulExpressionStatement","src":"11706:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11747:9:88","nodeType":"YulIdentifier","src":"11747:9:88"},{"kind":"number","nativeSrc":"11758:2:88","nodeType":"YulLiteral","src":"11758:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11743:3:88","nodeType":"YulIdentifier","src":"11743:3:88"},"nativeSrc":"11743:18:88","nodeType":"YulFunctionCall","src":"11743:18:88"},{"kind":"number","nativeSrc":"11763:2:88","nodeType":"YulLiteral","src":"11763:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"11736:6:88","nodeType":"YulIdentifier","src":"11736:6:88"},"nativeSrc":"11736:30:88","nodeType":"YulFunctionCall","src":"11736:30:88"},"nativeSrc":"11736:30:88","nodeType":"YulExpressionStatement","src":"11736:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11786:9:88","nodeType":"YulIdentifier","src":"11786:9:88"},{"kind":"number","nativeSrc":"11797:2:88","nodeType":"YulLiteral","src":"11797:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11782:3:88","nodeType":"YulIdentifier","src":"11782:3:88"},"nativeSrc":"11782:18:88","nodeType":"YulFunctionCall","src":"11782:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"11802:34:88","nodeType":"YulLiteral","src":"11802:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"11775:6:88","nodeType":"YulIdentifier","src":"11775:6:88"},"nativeSrc":"11775:62:88","nodeType":"YulFunctionCall","src":"11775:62:88"},"nativeSrc":"11775:62:88","nodeType":"YulExpressionStatement","src":"11775:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11857:9:88","nodeType":"YulIdentifier","src":"11857:9:88"},{"kind":"number","nativeSrc":"11868:2:88","nodeType":"YulLiteral","src":"11868:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11853:3:88","nodeType":"YulIdentifier","src":"11853:3:88"},"nativeSrc":"11853:18:88","nodeType":"YulFunctionCall","src":"11853:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"11873:14:88","nodeType":"YulLiteral","src":"11873:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"11846:6:88","nodeType":"YulIdentifier","src":"11846:6:88"},"nativeSrc":"11846:42:88","nodeType":"YulFunctionCall","src":"11846:42:88"},"nativeSrc":"11846:42:88","nodeType":"YulExpressionStatement","src":"11846:42:88"},{"nativeSrc":"11897:27:88","nodeType":"YulAssignment","src":"11897:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11909:9:88","nodeType":"YulIdentifier","src":"11909:9:88"},{"kind":"number","nativeSrc":"11920:3:88","nodeType":"YulLiteral","src":"11920:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11905:3:88","nodeType":"YulIdentifier","src":"11905:3:88"},"nativeSrc":"11905:19:88","nodeType":"YulFunctionCall","src":"11905:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11897:4:88","nodeType":"YulIdentifier","src":"11897:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11522:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11673:9:88","nodeType":"YulTypedName","src":"11673:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11687:4:88","nodeType":"YulTypedName","src":"11687:4:88","type":""}],"src":"11522:408:88"},{"body":{"nativeSrc":"12040:170:88","nodeType":"YulBlock","src":"12040:170:88","statements":[{"body":{"nativeSrc":"12086:16:88","nodeType":"YulBlock","src":"12086:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12095:1:88","nodeType":"YulLiteral","src":"12095:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12098:1:88","nodeType":"YulLiteral","src":"12098:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12088:6:88","nodeType":"YulIdentifier","src":"12088:6:88"},"nativeSrc":"12088:12:88","nodeType":"YulFunctionCall","src":"12088:12:88"},"nativeSrc":"12088:12:88","nodeType":"YulExpressionStatement","src":"12088:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12061:7:88","nodeType":"YulIdentifier","src":"12061:7:88"},{"name":"headStart","nativeSrc":"12070:9:88","nodeType":"YulIdentifier","src":"12070:9:88"}],"functionName":{"name":"sub","nativeSrc":"12057:3:88","nodeType":"YulIdentifier","src":"12057:3:88"},"nativeSrc":"12057:23:88","nodeType":"YulFunctionCall","src":"12057:23:88"},{"kind":"number","nativeSrc":"12082:2:88","nodeType":"YulLiteral","src":"12082:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12053:3:88","nodeType":"YulIdentifier","src":"12053:3:88"},"nativeSrc":"12053:32:88","nodeType":"YulFunctionCall","src":"12053:32:88"},"nativeSrc":"12050:52:88","nodeType":"YulIf","src":"12050:52:88"},{"nativeSrc":"12111:29:88","nodeType":"YulVariableDeclaration","src":"12111:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12130:9:88","nodeType":"YulIdentifier","src":"12130:9:88"}],"functionName":{"name":"mload","nativeSrc":"12124:5:88","nodeType":"YulIdentifier","src":"12124:5:88"},"nativeSrc":"12124:16:88","nodeType":"YulFunctionCall","src":"12124:16:88"},"variables":[{"name":"value","nativeSrc":"12115:5:88","nodeType":"YulTypedName","src":"12115:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12174:5:88","nodeType":"YulIdentifier","src":"12174:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12149:24:88","nodeType":"YulIdentifier","src":"12149:24:88"},"nativeSrc":"12149:31:88","nodeType":"YulFunctionCall","src":"12149:31:88"},"nativeSrc":"12149:31:88","nodeType":"YulExpressionStatement","src":"12149:31:88"},{"nativeSrc":"12189:15:88","nodeType":"YulAssignment","src":"12189:15:88","value":{"name":"value","nativeSrc":"12199:5:88","nodeType":"YulIdentifier","src":"12199:5:88"},"variableNames":[{"name":"value0","nativeSrc":"12189:6:88","nodeType":"YulIdentifier","src":"12189:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"11935:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12006:9:88","nodeType":"YulTypedName","src":"12006:9:88","type":""},{"name":"dataEnd","nativeSrc":"12017:7:88","nodeType":"YulTypedName","src":"12017:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12029:6:88","nodeType":"YulTypedName","src":"12029:6:88","type":""}],"src":"11935:275:88"},{"body":{"nativeSrc":"12422:318:88","nodeType":"YulBlock","src":"12422:318:88","statements":[{"nativeSrc":"12432:27:88","nodeType":"YulAssignment","src":"12432:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12444:9:88","nodeType":"YulIdentifier","src":"12444:9:88"},{"kind":"number","nativeSrc":"12455:3:88","nodeType":"YulLiteral","src":"12455:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12440:3:88","nodeType":"YulIdentifier","src":"12440:3:88"},"nativeSrc":"12440:19:88","nodeType":"YulFunctionCall","src":"12440:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12432:4:88","nodeType":"YulIdentifier","src":"12432:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12475:9:88","nodeType":"YulIdentifier","src":"12475:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12490:6:88","nodeType":"YulIdentifier","src":"12490:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12506:3:88","nodeType":"YulLiteral","src":"12506:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12511:1:88","nodeType":"YulLiteral","src":"12511:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12502:3:88","nodeType":"YulIdentifier","src":"12502:3:88"},"nativeSrc":"12502:11:88","nodeType":"YulFunctionCall","src":"12502:11:88"},{"kind":"number","nativeSrc":"12515:1:88","nodeType":"YulLiteral","src":"12515:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12498:3:88","nodeType":"YulIdentifier","src":"12498:3:88"},"nativeSrc":"12498:19:88","nodeType":"YulFunctionCall","src":"12498:19:88"}],"functionName":{"name":"and","nativeSrc":"12486:3:88","nodeType":"YulIdentifier","src":"12486:3:88"},"nativeSrc":"12486:32:88","nodeType":"YulFunctionCall","src":"12486:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12468:6:88","nodeType":"YulIdentifier","src":"12468:6:88"},"nativeSrc":"12468:51:88","nodeType":"YulFunctionCall","src":"12468:51:88"},"nativeSrc":"12468:51:88","nodeType":"YulExpressionStatement","src":"12468:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12539:9:88","nodeType":"YulIdentifier","src":"12539:9:88"},{"kind":"number","nativeSrc":"12550:2:88","nodeType":"YulLiteral","src":"12550:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12535:3:88","nodeType":"YulIdentifier","src":"12535:3:88"},"nativeSrc":"12535:18:88","nodeType":"YulFunctionCall","src":"12535:18:88"},{"name":"value1","nativeSrc":"12555:6:88","nodeType":"YulIdentifier","src":"12555:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12528:6:88","nodeType":"YulIdentifier","src":"12528:6:88"},"nativeSrc":"12528:34:88","nodeType":"YulFunctionCall","src":"12528:34:88"},"nativeSrc":"12528:34:88","nodeType":"YulExpressionStatement","src":"12528:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12582:9:88","nodeType":"YulIdentifier","src":"12582:9:88"},{"kind":"number","nativeSrc":"12593:2:88","nodeType":"YulLiteral","src":"12593:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12578:3:88","nodeType":"YulIdentifier","src":"12578:3:88"},"nativeSrc":"12578:18:88","nodeType":"YulFunctionCall","src":"12578:18:88"},{"name":"value2","nativeSrc":"12598:6:88","nodeType":"YulIdentifier","src":"12598:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:88","nodeType":"YulIdentifier","src":"12571:6:88"},"nativeSrc":"12571:34:88","nodeType":"YulFunctionCall","src":"12571:34:88"},"nativeSrc":"12571:34:88","nodeType":"YulExpressionStatement","src":"12571:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12625:9:88","nodeType":"YulIdentifier","src":"12625:9:88"},{"kind":"number","nativeSrc":"12636:2:88","nodeType":"YulLiteral","src":"12636:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12621:3:88","nodeType":"YulIdentifier","src":"12621:3:88"},"nativeSrc":"12621:18:88","nodeType":"YulFunctionCall","src":"12621:18:88"},{"arguments":[{"name":"value3","nativeSrc":"12645:6:88","nodeType":"YulIdentifier","src":"12645:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12661:3:88","nodeType":"YulLiteral","src":"12661:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12666:1:88","nodeType":"YulLiteral","src":"12666:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12657:3:88","nodeType":"YulIdentifier","src":"12657:3:88"},"nativeSrc":"12657:11:88","nodeType":"YulFunctionCall","src":"12657:11:88"},{"kind":"number","nativeSrc":"12670:1:88","nodeType":"YulLiteral","src":"12670:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12653:3:88","nodeType":"YulIdentifier","src":"12653:3:88"},"nativeSrc":"12653:19:88","nodeType":"YulFunctionCall","src":"12653:19:88"}],"functionName":{"name":"and","nativeSrc":"12641:3:88","nodeType":"YulIdentifier","src":"12641:3:88"},"nativeSrc":"12641:32:88","nodeType":"YulFunctionCall","src":"12641:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12614:6:88","nodeType":"YulIdentifier","src":"12614:6:88"},"nativeSrc":"12614:60:88","nodeType":"YulFunctionCall","src":"12614:60:88"},"nativeSrc":"12614:60:88","nodeType":"YulExpressionStatement","src":"12614:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12694:9:88","nodeType":"YulIdentifier","src":"12694:9:88"},{"kind":"number","nativeSrc":"12705:3:88","nodeType":"YulLiteral","src":"12705:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12690:3:88","nodeType":"YulIdentifier","src":"12690:3:88"},"nativeSrc":"12690:19:88","nodeType":"YulFunctionCall","src":"12690:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"12725:6:88","nodeType":"YulIdentifier","src":"12725:6:88"}],"functionName":{"name":"iszero","nativeSrc":"12718:6:88","nodeType":"YulIdentifier","src":"12718:6:88"},"nativeSrc":"12718:14:88","nodeType":"YulFunctionCall","src":"12718:14:88"}],"functionName":{"name":"iszero","nativeSrc":"12711:6:88","nodeType":"YulIdentifier","src":"12711:6:88"},"nativeSrc":"12711:22:88","nodeType":"YulFunctionCall","src":"12711:22:88"}],"functionName":{"name":"mstore","nativeSrc":"12683:6:88","nodeType":"YulIdentifier","src":"12683:6:88"},"nativeSrc":"12683:51:88","nodeType":"YulFunctionCall","src":"12683:51:88"},"nativeSrc":"12683:51:88","nodeType":"YulExpressionStatement","src":"12683:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"12215:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12359:9:88","nodeType":"YulTypedName","src":"12359:9:88","type":""},{"name":"value4","nativeSrc":"12370:6:88","nodeType":"YulTypedName","src":"12370:6:88","type":""},{"name":"value3","nativeSrc":"12378:6:88","nodeType":"YulTypedName","src":"12378:6:88","type":""},{"name":"value2","nativeSrc":"12386:6:88","nodeType":"YulTypedName","src":"12386:6:88","type":""},{"name":"value1","nativeSrc":"12394:6:88","nodeType":"YulTypedName","src":"12394:6:88","type":""},{"name":"value0","nativeSrc":"12402:6:88","nodeType":"YulTypedName","src":"12402:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12413:4:88","nodeType":"YulTypedName","src":"12413:4:88","type":""}],"src":"12215:525:88"},{"body":{"nativeSrc":"12919:246:88","nodeType":"YulBlock","src":"12919:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12936:9:88","nodeType":"YulIdentifier","src":"12936:9:88"},{"kind":"number","nativeSrc":"12947:2:88","nodeType":"YulLiteral","src":"12947:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12929:6:88","nodeType":"YulIdentifier","src":"12929:6:88"},"nativeSrc":"12929:21:88","nodeType":"YulFunctionCall","src":"12929:21:88"},"nativeSrc":"12929:21:88","nodeType":"YulExpressionStatement","src":"12929:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12970:9:88","nodeType":"YulIdentifier","src":"12970:9:88"},{"kind":"number","nativeSrc":"12981:2:88","nodeType":"YulLiteral","src":"12981:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12966:3:88","nodeType":"YulIdentifier","src":"12966:3:88"},"nativeSrc":"12966:18:88","nodeType":"YulFunctionCall","src":"12966:18:88"},{"kind":"number","nativeSrc":"12986:2:88","nodeType":"YulLiteral","src":"12986:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"12959:6:88","nodeType":"YulIdentifier","src":"12959:6:88"},"nativeSrc":"12959:30:88","nodeType":"YulFunctionCall","src":"12959:30:88"},"nativeSrc":"12959:30:88","nodeType":"YulExpressionStatement","src":"12959:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13009:9:88","nodeType":"YulIdentifier","src":"13009:9:88"},{"kind":"number","nativeSrc":"13020:2:88","nodeType":"YulLiteral","src":"13020:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13005:3:88","nodeType":"YulIdentifier","src":"13005:3:88"},"nativeSrc":"13005:18:88","nodeType":"YulFunctionCall","src":"13005:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"13025:34:88","nodeType":"YulLiteral","src":"13025:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"12998:6:88","nodeType":"YulIdentifier","src":"12998:6:88"},"nativeSrc":"12998:62:88","nodeType":"YulFunctionCall","src":"12998:62:88"},"nativeSrc":"12998:62:88","nodeType":"YulExpressionStatement","src":"12998:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13080:9:88","nodeType":"YulIdentifier","src":"13080:9:88"},{"kind":"number","nativeSrc":"13091:2:88","nodeType":"YulLiteral","src":"13091:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13076:3:88","nodeType":"YulIdentifier","src":"13076:3:88"},"nativeSrc":"13076:18:88","nodeType":"YulFunctionCall","src":"13076:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"13096:26:88","nodeType":"YulLiteral","src":"13096:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"13069:6:88","nodeType":"YulIdentifier","src":"13069:6:88"},"nativeSrc":"13069:54:88","nodeType":"YulFunctionCall","src":"13069:54:88"},"nativeSrc":"13069:54:88","nodeType":"YulExpressionStatement","src":"13069:54:88"},{"nativeSrc":"13132:27:88","nodeType":"YulAssignment","src":"13132:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13144:9:88","nodeType":"YulIdentifier","src":"13144:9:88"},{"kind":"number","nativeSrc":"13155:3:88","nodeType":"YulLiteral","src":"13155:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13140:3:88","nodeType":"YulIdentifier","src":"13140:3:88"},"nativeSrc":"13140:19:88","nodeType":"YulFunctionCall","src":"13140:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13132:4:88","nodeType":"YulIdentifier","src":"13132:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12745:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12896:9:88","nodeType":"YulTypedName","src":"12896:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12910:4:88","nodeType":"YulTypedName","src":"12910:4:88","type":""}],"src":"12745:420:88"},{"body":{"nativeSrc":"13299:171:88","nodeType":"YulBlock","src":"13299:171:88","statements":[{"nativeSrc":"13309:26:88","nodeType":"YulAssignment","src":"13309:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13321:9:88","nodeType":"YulIdentifier","src":"13321:9:88"},{"kind":"number","nativeSrc":"13332:2:88","nodeType":"YulLiteral","src":"13332:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13317:3:88","nodeType":"YulIdentifier","src":"13317:3:88"},"nativeSrc":"13317:18:88","nodeType":"YulFunctionCall","src":"13317:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13309:4:88","nodeType":"YulIdentifier","src":"13309:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13351:9:88","nodeType":"YulIdentifier","src":"13351:9:88"},{"arguments":[{"name":"value0","nativeSrc":"13366:6:88","nodeType":"YulIdentifier","src":"13366:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13382:3:88","nodeType":"YulLiteral","src":"13382:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13387:1:88","nodeType":"YulLiteral","src":"13387:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13378:3:88","nodeType":"YulIdentifier","src":"13378:3:88"},"nativeSrc":"13378:11:88","nodeType":"YulFunctionCall","src":"13378:11:88"},{"kind":"number","nativeSrc":"13391:1:88","nodeType":"YulLiteral","src":"13391:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13374:3:88","nodeType":"YulIdentifier","src":"13374:3:88"},"nativeSrc":"13374:19:88","nodeType":"YulFunctionCall","src":"13374:19:88"}],"functionName":{"name":"and","nativeSrc":"13362:3:88","nodeType":"YulIdentifier","src":"13362:3:88"},"nativeSrc":"13362:32:88","nodeType":"YulFunctionCall","src":"13362:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13344:6:88","nodeType":"YulIdentifier","src":"13344:6:88"},"nativeSrc":"13344:51:88","nodeType":"YulFunctionCall","src":"13344:51:88"},"nativeSrc":"13344:51:88","nodeType":"YulExpressionStatement","src":"13344:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13415:9:88","nodeType":"YulIdentifier","src":"13415:9:88"},{"kind":"number","nativeSrc":"13426:2:88","nodeType":"YulLiteral","src":"13426:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13411:3:88","nodeType":"YulIdentifier","src":"13411:3:88"},"nativeSrc":"13411:18:88","nodeType":"YulFunctionCall","src":"13411:18:88"},{"arguments":[{"name":"value1","nativeSrc":"13435:6:88","nodeType":"YulIdentifier","src":"13435:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13451:3:88","nodeType":"YulLiteral","src":"13451:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13456:1:88","nodeType":"YulLiteral","src":"13456:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13447:3:88","nodeType":"YulIdentifier","src":"13447:3:88"},"nativeSrc":"13447:11:88","nodeType":"YulFunctionCall","src":"13447:11:88"},{"kind":"number","nativeSrc":"13460:1:88","nodeType":"YulLiteral","src":"13460:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13443:3:88","nodeType":"YulIdentifier","src":"13443:3:88"},"nativeSrc":"13443:19:88","nodeType":"YulFunctionCall","src":"13443:19:88"}],"functionName":{"name":"and","nativeSrc":"13431:3:88","nodeType":"YulIdentifier","src":"13431:3:88"},"nativeSrc":"13431:32:88","nodeType":"YulFunctionCall","src":"13431:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13404:6:88","nodeType":"YulIdentifier","src":"13404:6:88"},"nativeSrc":"13404:60:88","nodeType":"YulFunctionCall","src":"13404:60:88"},"nativeSrc":"13404:60:88","nodeType":"YulExpressionStatement","src":"13404:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"13170:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13260:9:88","nodeType":"YulTypedName","src":"13260:9:88","type":""},{"name":"value1","nativeSrc":"13271:6:88","nodeType":"YulTypedName","src":"13271:6:88","type":""},{"name":"value0","nativeSrc":"13279:6:88","nodeType":"YulTypedName","src":"13279:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13290:4:88","nodeType":"YulTypedName","src":"13290:4:88","type":""}],"src":"13170:300:88"},{"body":{"nativeSrc":"13556:103:88","nodeType":"YulBlock","src":"13556:103:88","statements":[{"body":{"nativeSrc":"13602:16:88","nodeType":"YulBlock","src":"13602:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13611:1:88","nodeType":"YulLiteral","src":"13611:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13614:1:88","nodeType":"YulLiteral","src":"13614:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13604:6:88","nodeType":"YulIdentifier","src":"13604:6:88"},"nativeSrc":"13604:12:88","nodeType":"YulFunctionCall","src":"13604:12:88"},"nativeSrc":"13604:12:88","nodeType":"YulExpressionStatement","src":"13604:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13577:7:88","nodeType":"YulIdentifier","src":"13577:7:88"},{"name":"headStart","nativeSrc":"13586:9:88","nodeType":"YulIdentifier","src":"13586:9:88"}],"functionName":{"name":"sub","nativeSrc":"13573:3:88","nodeType":"YulIdentifier","src":"13573:3:88"},"nativeSrc":"13573:23:88","nodeType":"YulFunctionCall","src":"13573:23:88"},{"kind":"number","nativeSrc":"13598:2:88","nodeType":"YulLiteral","src":"13598:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13569:3:88","nodeType":"YulIdentifier","src":"13569:3:88"},"nativeSrc":"13569:32:88","nodeType":"YulFunctionCall","src":"13569:32:88"},"nativeSrc":"13566:52:88","nodeType":"YulIf","src":"13566:52:88"},{"nativeSrc":"13627:26:88","nodeType":"YulAssignment","src":"13627:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13643:9:88","nodeType":"YulIdentifier","src":"13643:9:88"}],"functionName":{"name":"mload","nativeSrc":"13637:5:88","nodeType":"YulIdentifier","src":"13637:5:88"},"nativeSrc":"13637:16:88","nodeType":"YulFunctionCall","src":"13637:16:88"},"variableNames":[{"name":"value0","nativeSrc":"13627:6:88","nodeType":"YulIdentifier","src":"13627:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"13475:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13522:9:88","nodeType":"YulTypedName","src":"13522:9:88","type":""},{"name":"dataEnd","nativeSrc":"13533:7:88","nodeType":"YulTypedName","src":"13533:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13545:6:88","nodeType":"YulTypedName","src":"13545:6:88","type":""}],"src":"13475:184:88"},{"body":{"nativeSrc":"13838:244:88","nodeType":"YulBlock","src":"13838:244:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13855:9:88","nodeType":"YulIdentifier","src":"13855:9:88"},{"kind":"number","nativeSrc":"13866:2:88","nodeType":"YulLiteral","src":"13866:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13848:6:88","nodeType":"YulIdentifier","src":"13848:6:88"},"nativeSrc":"13848:21:88","nodeType":"YulFunctionCall","src":"13848:21:88"},"nativeSrc":"13848:21:88","nodeType":"YulExpressionStatement","src":"13848:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13889:9:88","nodeType":"YulIdentifier","src":"13889:9:88"},{"kind":"number","nativeSrc":"13900:2:88","nodeType":"YulLiteral","src":"13900:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13885:3:88","nodeType":"YulIdentifier","src":"13885:3:88"},"nativeSrc":"13885:18:88","nodeType":"YulFunctionCall","src":"13885:18:88"},{"kind":"number","nativeSrc":"13905:2:88","nodeType":"YulLiteral","src":"13905:2:88","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"13878:6:88","nodeType":"YulIdentifier","src":"13878:6:88"},"nativeSrc":"13878:30:88","nodeType":"YulFunctionCall","src":"13878:30:88"},"nativeSrc":"13878:30:88","nodeType":"YulExpressionStatement","src":"13878:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13928:9:88","nodeType":"YulIdentifier","src":"13928:9:88"},{"kind":"number","nativeSrc":"13939:2:88","nodeType":"YulLiteral","src":"13939:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13924:3:88","nodeType":"YulIdentifier","src":"13924:3:88"},"nativeSrc":"13924:18:88","nodeType":"YulFunctionCall","src":"13924:18:88"},{"hexValue":"53656e646572206973206e6f7420617574686f72697a656420746f2063726561","kind":"string","nativeSrc":"13944:34:88","nodeType":"YulLiteral","src":"13944:34:88","type":"","value":"Sender is not authorized to crea"}],"functionName":{"name":"mstore","nativeSrc":"13917:6:88","nodeType":"YulIdentifier","src":"13917:6:88"},"nativeSrc":"13917:62:88","nodeType":"YulFunctionCall","src":"13917:62:88"},"nativeSrc":"13917:62:88","nodeType":"YulExpressionStatement","src":"13917:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13999:9:88","nodeType":"YulIdentifier","src":"13999:9:88"},{"kind":"number","nativeSrc":"14010:2:88","nodeType":"YulLiteral","src":"14010:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13995:3:88","nodeType":"YulIdentifier","src":"13995:3:88"},"nativeSrc":"13995:18:88","nodeType":"YulFunctionCall","src":"13995:18:88"},{"hexValue":"746520706f6c6963696573206f6e426568616c664f66","kind":"string","nativeSrc":"14015:24:88","nodeType":"YulLiteral","src":"14015:24:88","type":"","value":"te policies onBehalfOf"}],"functionName":{"name":"mstore","nativeSrc":"13988:6:88","nodeType":"YulIdentifier","src":"13988:6:88"},"nativeSrc":"13988:52:88","nodeType":"YulFunctionCall","src":"13988:52:88"},"nativeSrc":"13988:52:88","nodeType":"YulExpressionStatement","src":"13988:52:88"},{"nativeSrc":"14049:27:88","nodeType":"YulAssignment","src":"14049:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14061:9:88","nodeType":"YulIdentifier","src":"14061:9:88"},{"kind":"number","nativeSrc":"14072:3:88","nodeType":"YulLiteral","src":"14072:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14057:3:88","nodeType":"YulIdentifier","src":"14057:3:88"},"nativeSrc":"14057:19:88","nodeType":"YulFunctionCall","src":"14057:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14049:4:88","nodeType":"YulIdentifier","src":"14049:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_480764f09f359bc6962cdebf3d411f712e4a569376eab47f7b4f2b9d5b018433__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13664:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13815:9:88","nodeType":"YulTypedName","src":"13815:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13829:4:88","nodeType":"YulTypedName","src":"13829:4:88","type":""}],"src":"13664:418:88"},{"body":{"nativeSrc":"14119:95:88","nodeType":"YulBlock","src":"14119:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14136:1:88","nodeType":"YulLiteral","src":"14136:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"14143:3:88","nodeType":"YulLiteral","src":"14143:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"14148:10:88","nodeType":"YulLiteral","src":"14148:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"14139:3:88","nodeType":"YulIdentifier","src":"14139:3:88"},"nativeSrc":"14139:20:88","nodeType":"YulFunctionCall","src":"14139:20:88"}],"functionName":{"name":"mstore","nativeSrc":"14129:6:88","nodeType":"YulIdentifier","src":"14129:6:88"},"nativeSrc":"14129:31:88","nodeType":"YulFunctionCall","src":"14129:31:88"},"nativeSrc":"14129:31:88","nodeType":"YulExpressionStatement","src":"14129:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14176:1:88","nodeType":"YulLiteral","src":"14176:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"14179:4:88","nodeType":"YulLiteral","src":"14179:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"14169:6:88","nodeType":"YulIdentifier","src":"14169:6:88"},"nativeSrc":"14169:15:88","nodeType":"YulFunctionCall","src":"14169:15:88"},"nativeSrc":"14169:15:88","nodeType":"YulExpressionStatement","src":"14169:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14200:1:88","nodeType":"YulLiteral","src":"14200:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14203:4:88","nodeType":"YulLiteral","src":"14203:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14193:6:88","nodeType":"YulIdentifier","src":"14193:6:88"},"nativeSrc":"14193:15:88","nodeType":"YulFunctionCall","src":"14193:15:88"},"nativeSrc":"14193:15:88","nodeType":"YulExpressionStatement","src":"14193:15:88"}]},"name":"panic_error_0x11","nativeSrc":"14087:127:88","nodeType":"YulFunctionDefinition","src":"14087:127:88"},{"body":{"nativeSrc":"14268:79:88","nodeType":"YulBlock","src":"14268:79:88","statements":[{"nativeSrc":"14278:17:88","nodeType":"YulAssignment","src":"14278:17:88","value":{"arguments":[{"name":"x","nativeSrc":"14290:1:88","nodeType":"YulIdentifier","src":"14290:1:88"},{"name":"y","nativeSrc":"14293:1:88","nodeType":"YulIdentifier","src":"14293:1:88"}],"functionName":{"name":"sub","nativeSrc":"14286:3:88","nodeType":"YulIdentifier","src":"14286:3:88"},"nativeSrc":"14286:9:88","nodeType":"YulFunctionCall","src":"14286:9:88"},"variableNames":[{"name":"diff","nativeSrc":"14278:4:88","nodeType":"YulIdentifier","src":"14278:4:88"}]},{"body":{"nativeSrc":"14319:22:88","nodeType":"YulBlock","src":"14319:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14321:16:88","nodeType":"YulIdentifier","src":"14321:16:88"},"nativeSrc":"14321:18:88","nodeType":"YulFunctionCall","src":"14321:18:88"},"nativeSrc":"14321:18:88","nodeType":"YulExpressionStatement","src":"14321:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"14310:4:88","nodeType":"YulIdentifier","src":"14310:4:88"},{"name":"x","nativeSrc":"14316:1:88","nodeType":"YulIdentifier","src":"14316:1:88"}],"functionName":{"name":"gt","nativeSrc":"14307:2:88","nodeType":"YulIdentifier","src":"14307:2:88"},"nativeSrc":"14307:11:88","nodeType":"YulFunctionCall","src":"14307:11:88"},"nativeSrc":"14304:37:88","nodeType":"YulIf","src":"14304:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"14219:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14250:1:88","nodeType":"YulTypedName","src":"14250:1:88","type":""},{"name":"y","nativeSrc":"14253:1:88","nodeType":"YulTypedName","src":"14253:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"14259:4:88","nodeType":"YulTypedName","src":"14259:4:88","type":""}],"src":"14219:128:88"},{"body":{"nativeSrc":"14526:236:88","nodeType":"YulBlock","src":"14526:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14543:9:88","nodeType":"YulIdentifier","src":"14543:9:88"},{"kind":"number","nativeSrc":"14554:2:88","nodeType":"YulLiteral","src":"14554:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14536:6:88","nodeType":"YulIdentifier","src":"14536:6:88"},"nativeSrc":"14536:21:88","nodeType":"YulFunctionCall","src":"14536:21:88"},"nativeSrc":"14536:21:88","nodeType":"YulExpressionStatement","src":"14536:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14577:9:88","nodeType":"YulIdentifier","src":"14577:9:88"},{"kind":"number","nativeSrc":"14588:2:88","nodeType":"YulLiteral","src":"14588:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14573:3:88","nodeType":"YulIdentifier","src":"14573:3:88"},"nativeSrc":"14573:18:88","nodeType":"YulFunctionCall","src":"14573:18:88"},{"kind":"number","nativeSrc":"14593:2:88","nodeType":"YulLiteral","src":"14593:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"14566:6:88","nodeType":"YulIdentifier","src":"14566:6:88"},"nativeSrc":"14566:30:88","nodeType":"YulFunctionCall","src":"14566:30:88"},"nativeSrc":"14566:30:88","nodeType":"YulExpressionStatement","src":"14566:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14616:9:88","nodeType":"YulIdentifier","src":"14616:9:88"},{"kind":"number","nativeSrc":"14627:2:88","nodeType":"YulLiteral","src":"14627:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14612:3:88","nodeType":"YulIdentifier","src":"14612:3:88"},"nativeSrc":"14612:18:88","nodeType":"YulFunctionCall","src":"14612:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"14632:34:88","nodeType":"YulLiteral","src":"14632:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"14605:6:88","nodeType":"YulIdentifier","src":"14605:6:88"},"nativeSrc":"14605:62:88","nodeType":"YulFunctionCall","src":"14605:62:88"},"nativeSrc":"14605:62:88","nodeType":"YulExpressionStatement","src":"14605:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14687:9:88","nodeType":"YulIdentifier","src":"14687:9:88"},{"kind":"number","nativeSrc":"14698:2:88","nodeType":"YulLiteral","src":"14698:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14683:3:88","nodeType":"YulIdentifier","src":"14683:3:88"},"nativeSrc":"14683:18:88","nodeType":"YulFunctionCall","src":"14683:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"14703:16:88","nodeType":"YulLiteral","src":"14703:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"14676:6:88","nodeType":"YulIdentifier","src":"14676:6:88"},"nativeSrc":"14676:44:88","nodeType":"YulFunctionCall","src":"14676:44:88"},"nativeSrc":"14676:44:88","nodeType":"YulExpressionStatement","src":"14676:44:88"},{"nativeSrc":"14729:27:88","nodeType":"YulAssignment","src":"14729:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14741:9:88","nodeType":"YulIdentifier","src":"14741:9:88"},{"kind":"number","nativeSrc":"14752:3:88","nodeType":"YulLiteral","src":"14752:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14737:3:88","nodeType":"YulIdentifier","src":"14737:3:88"},"nativeSrc":"14737:19:88","nodeType":"YulFunctionCall","src":"14737:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14729:4:88","nodeType":"YulIdentifier","src":"14729:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14352:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14503:9:88","nodeType":"YulTypedName","src":"14503:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14517:4:88","nodeType":"YulTypedName","src":"14517:4:88","type":""}],"src":"14352:410:88"},{"body":{"nativeSrc":"14874:87:88","nodeType":"YulBlock","src":"14874:87:88","statements":[{"nativeSrc":"14884:26:88","nodeType":"YulAssignment","src":"14884:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14896:9:88","nodeType":"YulIdentifier","src":"14896:9:88"},{"kind":"number","nativeSrc":"14907:2:88","nodeType":"YulLiteral","src":"14907:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14892:3:88","nodeType":"YulIdentifier","src":"14892:3:88"},"nativeSrc":"14892:18:88","nodeType":"YulFunctionCall","src":"14892:18:88"},"variableNames":[{"name":"tail","nativeSrc":"14884:4:88","nodeType":"YulIdentifier","src":"14884:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14926:9:88","nodeType":"YulIdentifier","src":"14926:9:88"},{"arguments":[{"name":"value0","nativeSrc":"14941:6:88","nodeType":"YulIdentifier","src":"14941:6:88"},{"kind":"number","nativeSrc":"14949:4:88","nodeType":"YulLiteral","src":"14949:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"14937:3:88","nodeType":"YulIdentifier","src":"14937:3:88"},"nativeSrc":"14937:17:88","nodeType":"YulFunctionCall","src":"14937:17:88"}],"functionName":{"name":"mstore","nativeSrc":"14919:6:88","nodeType":"YulIdentifier","src":"14919:6:88"},"nativeSrc":"14919:36:88","nodeType":"YulFunctionCall","src":"14919:36:88"},"nativeSrc":"14919:36:88","nodeType":"YulExpressionStatement","src":"14919:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"14767:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14843:9:88","nodeType":"YulTypedName","src":"14843:9:88","type":""},{"name":"value0","nativeSrc":"14854:6:88","nodeType":"YulTypedName","src":"14854:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14865:4:88","nodeType":"YulTypedName","src":"14865:4:88","type":""}],"src":"14767:194:88"},{"body":{"nativeSrc":"15145:274:88","nodeType":"YulBlock","src":"15145:274:88","statements":[{"nativeSrc":"15155:27:88","nodeType":"YulAssignment","src":"15155:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15167:9:88","nodeType":"YulIdentifier","src":"15167:9:88"},{"kind":"number","nativeSrc":"15178:3:88","nodeType":"YulLiteral","src":"15178:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15163:3:88","nodeType":"YulIdentifier","src":"15163:3:88"},"nativeSrc":"15163:19:88","nodeType":"YulFunctionCall","src":"15163:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15155:4:88","nodeType":"YulIdentifier","src":"15155:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15198:9:88","nodeType":"YulIdentifier","src":"15198:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15213:6:88","nodeType":"YulIdentifier","src":"15213:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15229:3:88","nodeType":"YulLiteral","src":"15229:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15234:1:88","nodeType":"YulLiteral","src":"15234:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15225:3:88","nodeType":"YulIdentifier","src":"15225:3:88"},"nativeSrc":"15225:11:88","nodeType":"YulFunctionCall","src":"15225:11:88"},{"kind":"number","nativeSrc":"15238:1:88","nodeType":"YulLiteral","src":"15238:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15221:3:88","nodeType":"YulIdentifier","src":"15221:3:88"},"nativeSrc":"15221:19:88","nodeType":"YulFunctionCall","src":"15221:19:88"}],"functionName":{"name":"and","nativeSrc":"15209:3:88","nodeType":"YulIdentifier","src":"15209:3:88"},"nativeSrc":"15209:32:88","nodeType":"YulFunctionCall","src":"15209:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15191:6:88","nodeType":"YulIdentifier","src":"15191:6:88"},"nativeSrc":"15191:51:88","nodeType":"YulFunctionCall","src":"15191:51:88"},"nativeSrc":"15191:51:88","nodeType":"YulExpressionStatement","src":"15191:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15262:9:88","nodeType":"YulIdentifier","src":"15262:9:88"},{"kind":"number","nativeSrc":"15273:2:88","nodeType":"YulLiteral","src":"15273:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15258:3:88","nodeType":"YulIdentifier","src":"15258:3:88"},"nativeSrc":"15258:18:88","nodeType":"YulFunctionCall","src":"15258:18:88"},{"name":"value1","nativeSrc":"15278:6:88","nodeType":"YulIdentifier","src":"15278:6:88"}],"functionName":{"name":"mstore","nativeSrc":"15251:6:88","nodeType":"YulIdentifier","src":"15251:6:88"},"nativeSrc":"15251:34:88","nodeType":"YulFunctionCall","src":"15251:34:88"},"nativeSrc":"15251:34:88","nodeType":"YulExpressionStatement","src":"15251:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15305:9:88","nodeType":"YulIdentifier","src":"15305:9:88"},{"kind":"number","nativeSrc":"15316:2:88","nodeType":"YulLiteral","src":"15316:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15301:3:88","nodeType":"YulIdentifier","src":"15301:3:88"},"nativeSrc":"15301:18:88","nodeType":"YulFunctionCall","src":"15301:18:88"},{"arguments":[{"name":"value2","nativeSrc":"15325:6:88","nodeType":"YulIdentifier","src":"15325:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15341:3:88","nodeType":"YulLiteral","src":"15341:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15346:1:88","nodeType":"YulLiteral","src":"15346:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15337:3:88","nodeType":"YulIdentifier","src":"15337:3:88"},"nativeSrc":"15337:11:88","nodeType":"YulFunctionCall","src":"15337:11:88"},{"kind":"number","nativeSrc":"15350:1:88","nodeType":"YulLiteral","src":"15350:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15333:3:88","nodeType":"YulIdentifier","src":"15333:3:88"},"nativeSrc":"15333:19:88","nodeType":"YulFunctionCall","src":"15333:19:88"}],"functionName":{"name":"and","nativeSrc":"15321:3:88","nodeType":"YulIdentifier","src":"15321:3:88"},"nativeSrc":"15321:32:88","nodeType":"YulFunctionCall","src":"15321:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15294:6:88","nodeType":"YulIdentifier","src":"15294:6:88"},"nativeSrc":"15294:60:88","nodeType":"YulFunctionCall","src":"15294:60:88"},"nativeSrc":"15294:60:88","nodeType":"YulExpressionStatement","src":"15294:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15374:9:88","nodeType":"YulIdentifier","src":"15374:9:88"},{"kind":"number","nativeSrc":"15385:2:88","nodeType":"YulLiteral","src":"15385:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15370:3:88","nodeType":"YulIdentifier","src":"15370:3:88"},"nativeSrc":"15370:18:88","nodeType":"YulFunctionCall","src":"15370:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"15404:6:88","nodeType":"YulIdentifier","src":"15404:6:88"}],"functionName":{"name":"iszero","nativeSrc":"15397:6:88","nodeType":"YulIdentifier","src":"15397:6:88"},"nativeSrc":"15397:14:88","nodeType":"YulFunctionCall","src":"15397:14:88"}],"functionName":{"name":"iszero","nativeSrc":"15390:6:88","nodeType":"YulIdentifier","src":"15390:6:88"},"nativeSrc":"15390:22:88","nodeType":"YulFunctionCall","src":"15390:22:88"}],"functionName":{"name":"mstore","nativeSrc":"15363:6:88","nodeType":"YulIdentifier","src":"15363:6:88"},"nativeSrc":"15363:50:88","nodeType":"YulFunctionCall","src":"15363:50:88"},"nativeSrc":"15363:50:88","nodeType":"YulExpressionStatement","src":"15363:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"14966:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15090:9:88","nodeType":"YulTypedName","src":"15090:9:88","type":""},{"name":"value3","nativeSrc":"15101:6:88","nodeType":"YulTypedName","src":"15101:6:88","type":""},{"name":"value2","nativeSrc":"15109:6:88","nodeType":"YulTypedName","src":"15109:6:88","type":""},{"name":"value1","nativeSrc":"15117:6:88","nodeType":"YulTypedName","src":"15117:6:88","type":""},{"name":"value0","nativeSrc":"15125:6:88","nodeType":"YulTypedName","src":"15125:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15136:4:88","nodeType":"YulTypedName","src":"15136:4:88","type":""}],"src":"14966:453:88"},{"body":{"nativeSrc":"15486:85:88","nodeType":"YulBlock","src":"15486:85:88","statements":[{"nativeSrc":"15496:29:88","nodeType":"YulAssignment","src":"15496:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"15518:6:88","nodeType":"YulIdentifier","src":"15518:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"15505:12:88","nodeType":"YulIdentifier","src":"15505:12:88"},"nativeSrc":"15505:20:88","nodeType":"YulFunctionCall","src":"15505:20:88"},"variableNames":[{"name":"value","nativeSrc":"15496:5:88","nodeType":"YulIdentifier","src":"15496:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15559:5:88","nodeType":"YulIdentifier","src":"15559:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15534:24:88","nodeType":"YulIdentifier","src":"15534:24:88"},"nativeSrc":"15534:31:88","nodeType":"YulFunctionCall","src":"15534:31:88"},"nativeSrc":"15534:31:88","nodeType":"YulExpressionStatement","src":"15534:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"15424:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15465:6:88","nodeType":"YulTypedName","src":"15465:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15476:5:88","nodeType":"YulTypedName","src":"15476:5:88","type":""}],"src":"15424:147:88"},{"body":{"nativeSrc":"15639:1676:88","nodeType":"YulBlock","src":"15639:1676:88","statements":[{"nativeSrc":"15649:16:88","nodeType":"YulVariableDeclaration","src":"15649:16:88","value":{"kind":"number","nativeSrc":"15664:1:88","nodeType":"YulLiteral","src":"15664:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"15653:7:88","nodeType":"YulTypedName","src":"15653:7:88","type":""}]},{"nativeSrc":"15674:30:88","nodeType":"YulAssignment","src":"15674:30:88","value":{"arguments":[{"name":"value","nativeSrc":"15698:5:88","nodeType":"YulIdentifier","src":"15698:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"15685:12:88","nodeType":"YulIdentifier","src":"15685:12:88"},"nativeSrc":"15685:19:88","nodeType":"YulFunctionCall","src":"15685:19:88"},"variableNames":[{"name":"value_1","nativeSrc":"15674:7:88","nodeType":"YulIdentifier","src":"15674:7:88"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15720:3:88","nodeType":"YulIdentifier","src":"15720:3:88"},{"name":"value_1","nativeSrc":"15725:7:88","nodeType":"YulIdentifier","src":"15725:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15713:6:88","nodeType":"YulIdentifier","src":"15713:6:88"},"nativeSrc":"15713:20:88","nodeType":"YulFunctionCall","src":"15713:20:88"},"nativeSrc":"15713:20:88","nodeType":"YulExpressionStatement","src":"15713:20:88"},{"nativeSrc":"15742:16:88","nodeType":"YulVariableDeclaration","src":"15742:16:88","value":{"kind":"number","nativeSrc":"15757:1:88","nodeType":"YulLiteral","src":"15757:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"15746:7:88","nodeType":"YulTypedName","src":"15746:7:88","type":""}]},{"nativeSrc":"15767:41:88","nodeType":"YulAssignment","src":"15767:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15795:5:88","nodeType":"YulIdentifier","src":"15795:5:88"},{"kind":"number","nativeSrc":"15802:4:88","nodeType":"YulLiteral","src":"15802:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15791:3:88","nodeType":"YulIdentifier","src":"15791:3:88"},"nativeSrc":"15791:16:88","nodeType":"YulFunctionCall","src":"15791:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"15778:12:88","nodeType":"YulIdentifier","src":"15778:12:88"},"nativeSrc":"15778:30:88","nodeType":"YulFunctionCall","src":"15778:30:88"},"variableNames":[{"name":"value_2","nativeSrc":"15767:7:88","nodeType":"YulIdentifier","src":"15767:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15828:3:88","nodeType":"YulIdentifier","src":"15828:3:88"},{"kind":"number","nativeSrc":"15833:4:88","nodeType":"YulLiteral","src":"15833:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15824:3:88","nodeType":"YulIdentifier","src":"15824:3:88"},"nativeSrc":"15824:14:88","nodeType":"YulFunctionCall","src":"15824:14:88"},{"name":"value_2","nativeSrc":"15840:7:88","nodeType":"YulIdentifier","src":"15840:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15817:6:88","nodeType":"YulIdentifier","src":"15817:6:88"},"nativeSrc":"15817:31:88","nodeType":"YulFunctionCall","src":"15817:31:88"},"nativeSrc":"15817:31:88","nodeType":"YulExpressionStatement","src":"15817:31:88"},{"nativeSrc":"15857:16:88","nodeType":"YulVariableDeclaration","src":"15857:16:88","value":{"kind":"number","nativeSrc":"15872:1:88","nodeType":"YulLiteral","src":"15872:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"15861:7:88","nodeType":"YulTypedName","src":"15861:7:88","type":""}]},{"nativeSrc":"15882:41:88","nodeType":"YulAssignment","src":"15882:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15910:5:88","nodeType":"YulIdentifier","src":"15910:5:88"},{"kind":"number","nativeSrc":"15917:4:88","nodeType":"YulLiteral","src":"15917:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15906:3:88","nodeType":"YulIdentifier","src":"15906:3:88"},"nativeSrc":"15906:16:88","nodeType":"YulFunctionCall","src":"15906:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"15893:12:88","nodeType":"YulIdentifier","src":"15893:12:88"},"nativeSrc":"15893:30:88","nodeType":"YulFunctionCall","src":"15893:30:88"},"variableNames":[{"name":"value_3","nativeSrc":"15882:7:88","nodeType":"YulIdentifier","src":"15882:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15943:3:88","nodeType":"YulIdentifier","src":"15943:3:88"},{"kind":"number","nativeSrc":"15948:4:88","nodeType":"YulLiteral","src":"15948:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15939:3:88","nodeType":"YulIdentifier","src":"15939:3:88"},"nativeSrc":"15939:14:88","nodeType":"YulFunctionCall","src":"15939:14:88"},{"name":"value_3","nativeSrc":"15955:7:88","nodeType":"YulIdentifier","src":"15955:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15932:6:88","nodeType":"YulIdentifier","src":"15932:6:88"},"nativeSrc":"15932:31:88","nodeType":"YulFunctionCall","src":"15932:31:88"},"nativeSrc":"15932:31:88","nodeType":"YulExpressionStatement","src":"15932:31:88"},{"nativeSrc":"15972:16:88","nodeType":"YulVariableDeclaration","src":"15972:16:88","value":{"kind":"number","nativeSrc":"15987:1:88","nodeType":"YulLiteral","src":"15987:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"15976:7:88","nodeType":"YulTypedName","src":"15976:7:88","type":""}]},{"nativeSrc":"15997:41:88","nodeType":"YulAssignment","src":"15997:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16025:5:88","nodeType":"YulIdentifier","src":"16025:5:88"},{"kind":"number","nativeSrc":"16032:4:88","nodeType":"YulLiteral","src":"16032:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16021:3:88","nodeType":"YulIdentifier","src":"16021:3:88"},"nativeSrc":"16021:16:88","nodeType":"YulFunctionCall","src":"16021:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16008:12:88","nodeType":"YulIdentifier","src":"16008:12:88"},"nativeSrc":"16008:30:88","nodeType":"YulFunctionCall","src":"16008:30:88"},"variableNames":[{"name":"value_4","nativeSrc":"15997:7:88","nodeType":"YulIdentifier","src":"15997:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16058:3:88","nodeType":"YulIdentifier","src":"16058:3:88"},{"kind":"number","nativeSrc":"16063:4:88","nodeType":"YulLiteral","src":"16063:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16054:3:88","nodeType":"YulIdentifier","src":"16054:3:88"},"nativeSrc":"16054:14:88","nodeType":"YulFunctionCall","src":"16054:14:88"},{"name":"value_4","nativeSrc":"16070:7:88","nodeType":"YulIdentifier","src":"16070:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16047:6:88","nodeType":"YulIdentifier","src":"16047:6:88"},"nativeSrc":"16047:31:88","nodeType":"YulFunctionCall","src":"16047:31:88"},"nativeSrc":"16047:31:88","nodeType":"YulExpressionStatement","src":"16047:31:88"},{"nativeSrc":"16087:16:88","nodeType":"YulVariableDeclaration","src":"16087:16:88","value":{"kind":"number","nativeSrc":"16102:1:88","nodeType":"YulLiteral","src":"16102:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"16091:7:88","nodeType":"YulTypedName","src":"16091:7:88","type":""}]},{"nativeSrc":"16112:41:88","nodeType":"YulAssignment","src":"16112:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16140:5:88","nodeType":"YulIdentifier","src":"16140:5:88"},{"kind":"number","nativeSrc":"16147:4:88","nodeType":"YulLiteral","src":"16147:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16136:3:88","nodeType":"YulIdentifier","src":"16136:3:88"},"nativeSrc":"16136:16:88","nodeType":"YulFunctionCall","src":"16136:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16123:12:88","nodeType":"YulIdentifier","src":"16123:12:88"},"nativeSrc":"16123:30:88","nodeType":"YulFunctionCall","src":"16123:30:88"},"variableNames":[{"name":"value_5","nativeSrc":"16112:7:88","nodeType":"YulIdentifier","src":"16112:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16173:3:88","nodeType":"YulIdentifier","src":"16173:3:88"},{"kind":"number","nativeSrc":"16178:4:88","nodeType":"YulLiteral","src":"16178:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16169:3:88","nodeType":"YulIdentifier","src":"16169:3:88"},"nativeSrc":"16169:14:88","nodeType":"YulFunctionCall","src":"16169:14:88"},{"name":"value_5","nativeSrc":"16185:7:88","nodeType":"YulIdentifier","src":"16185:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16162:6:88","nodeType":"YulIdentifier","src":"16162:6:88"},"nativeSrc":"16162:31:88","nodeType":"YulFunctionCall","src":"16162:31:88"},"nativeSrc":"16162:31:88","nodeType":"YulExpressionStatement","src":"16162:31:88"},{"nativeSrc":"16202:16:88","nodeType":"YulVariableDeclaration","src":"16202:16:88","value":{"kind":"number","nativeSrc":"16217:1:88","nodeType":"YulLiteral","src":"16217:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"16206:7:88","nodeType":"YulTypedName","src":"16206:7:88","type":""}]},{"nativeSrc":"16227:41:88","nodeType":"YulAssignment","src":"16227:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16255:5:88","nodeType":"YulIdentifier","src":"16255:5:88"},{"kind":"number","nativeSrc":"16262:4:88","nodeType":"YulLiteral","src":"16262:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16251:3:88","nodeType":"YulIdentifier","src":"16251:3:88"},"nativeSrc":"16251:16:88","nodeType":"YulFunctionCall","src":"16251:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16238:12:88","nodeType":"YulIdentifier","src":"16238:12:88"},"nativeSrc":"16238:30:88","nodeType":"YulFunctionCall","src":"16238:30:88"},"variableNames":[{"name":"value_6","nativeSrc":"16227:7:88","nodeType":"YulIdentifier","src":"16227:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16288:3:88","nodeType":"YulIdentifier","src":"16288:3:88"},{"kind":"number","nativeSrc":"16293:4:88","nodeType":"YulLiteral","src":"16293:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16284:3:88","nodeType":"YulIdentifier","src":"16284:3:88"},"nativeSrc":"16284:14:88","nodeType":"YulFunctionCall","src":"16284:14:88"},{"name":"value_6","nativeSrc":"16300:7:88","nodeType":"YulIdentifier","src":"16300:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16277:6:88","nodeType":"YulIdentifier","src":"16277:6:88"},"nativeSrc":"16277:31:88","nodeType":"YulFunctionCall","src":"16277:31:88"},"nativeSrc":"16277:31:88","nodeType":"YulExpressionStatement","src":"16277:31:88"},{"nativeSrc":"16317:16:88","nodeType":"YulVariableDeclaration","src":"16317:16:88","value":{"kind":"number","nativeSrc":"16332:1:88","nodeType":"YulLiteral","src":"16332:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"16321:7:88","nodeType":"YulTypedName","src":"16321:7:88","type":""}]},{"nativeSrc":"16342:41:88","nodeType":"YulAssignment","src":"16342:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16370:5:88","nodeType":"YulIdentifier","src":"16370:5:88"},{"kind":"number","nativeSrc":"16377:4:88","nodeType":"YulLiteral","src":"16377:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16366:3:88","nodeType":"YulIdentifier","src":"16366:3:88"},"nativeSrc":"16366:16:88","nodeType":"YulFunctionCall","src":"16366:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16353:12:88","nodeType":"YulIdentifier","src":"16353:12:88"},"nativeSrc":"16353:30:88","nodeType":"YulFunctionCall","src":"16353:30:88"},"variableNames":[{"name":"value_7","nativeSrc":"16342:7:88","nodeType":"YulIdentifier","src":"16342:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16403:3:88","nodeType":"YulIdentifier","src":"16403:3:88"},{"kind":"number","nativeSrc":"16408:4:88","nodeType":"YulLiteral","src":"16408:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16399:3:88","nodeType":"YulIdentifier","src":"16399:3:88"},"nativeSrc":"16399:14:88","nodeType":"YulFunctionCall","src":"16399:14:88"},{"name":"value_7","nativeSrc":"16415:7:88","nodeType":"YulIdentifier","src":"16415:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16392:6:88","nodeType":"YulIdentifier","src":"16392:6:88"},"nativeSrc":"16392:31:88","nodeType":"YulFunctionCall","src":"16392:31:88"},"nativeSrc":"16392:31:88","nodeType":"YulExpressionStatement","src":"16392:31:88"},{"nativeSrc":"16432:16:88","nodeType":"YulVariableDeclaration","src":"16432:16:88","value":{"kind":"number","nativeSrc":"16447:1:88","nodeType":"YulLiteral","src":"16447:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"16436:7:88","nodeType":"YulTypedName","src":"16436:7:88","type":""}]},{"nativeSrc":"16457:41:88","nodeType":"YulAssignment","src":"16457:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16485:5:88","nodeType":"YulIdentifier","src":"16485:5:88"},{"kind":"number","nativeSrc":"16492:4:88","nodeType":"YulLiteral","src":"16492:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"16481:3:88","nodeType":"YulIdentifier","src":"16481:3:88"},"nativeSrc":"16481:16:88","nodeType":"YulFunctionCall","src":"16481:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16468:12:88","nodeType":"YulIdentifier","src":"16468:12:88"},"nativeSrc":"16468:30:88","nodeType":"YulFunctionCall","src":"16468:30:88"},"variableNames":[{"name":"value_8","nativeSrc":"16457:7:88","nodeType":"YulIdentifier","src":"16457:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16518:3:88","nodeType":"YulIdentifier","src":"16518:3:88"},{"kind":"number","nativeSrc":"16523:4:88","nodeType":"YulLiteral","src":"16523:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"16514:3:88","nodeType":"YulIdentifier","src":"16514:3:88"},"nativeSrc":"16514:14:88","nodeType":"YulFunctionCall","src":"16514:14:88"},{"name":"value_8","nativeSrc":"16530:7:88","nodeType":"YulIdentifier","src":"16530:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16507:6:88","nodeType":"YulIdentifier","src":"16507:6:88"},"nativeSrc":"16507:31:88","nodeType":"YulFunctionCall","src":"16507:31:88"},"nativeSrc":"16507:31:88","nodeType":"YulExpressionStatement","src":"16507:31:88"},{"nativeSrc":"16547:16:88","nodeType":"YulVariableDeclaration","src":"16547:16:88","value":{"kind":"number","nativeSrc":"16562:1:88","nodeType":"YulLiteral","src":"16562:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"16551:7:88","nodeType":"YulTypedName","src":"16551:7:88","type":""}]},{"nativeSrc":"16572:43:88","nodeType":"YulAssignment","src":"16572:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16600:5:88","nodeType":"YulIdentifier","src":"16600:5:88"},{"kind":"number","nativeSrc":"16607:6:88","nodeType":"YulLiteral","src":"16607:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"16596:3:88","nodeType":"YulIdentifier","src":"16596:3:88"},"nativeSrc":"16596:18:88","nodeType":"YulFunctionCall","src":"16596:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16583:12:88","nodeType":"YulIdentifier","src":"16583:12:88"},"nativeSrc":"16583:32:88","nodeType":"YulFunctionCall","src":"16583:32:88"},"variableNames":[{"name":"value_9","nativeSrc":"16572:7:88","nodeType":"YulIdentifier","src":"16572:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16635:3:88","nodeType":"YulIdentifier","src":"16635:3:88"},{"kind":"number","nativeSrc":"16640:6:88","nodeType":"YulLiteral","src":"16640:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"16631:3:88","nodeType":"YulIdentifier","src":"16631:3:88"},"nativeSrc":"16631:16:88","nodeType":"YulFunctionCall","src":"16631:16:88"},{"name":"value_9","nativeSrc":"16649:7:88","nodeType":"YulIdentifier","src":"16649:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16624:6:88","nodeType":"YulIdentifier","src":"16624:6:88"},"nativeSrc":"16624:33:88","nodeType":"YulFunctionCall","src":"16624:33:88"},"nativeSrc":"16624:33:88","nodeType":"YulExpressionStatement","src":"16624:33:88"},{"nativeSrc":"16666:17:88","nodeType":"YulVariableDeclaration","src":"16666:17:88","value":{"kind":"number","nativeSrc":"16682:1:88","nodeType":"YulLiteral","src":"16682:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"16670:8:88","nodeType":"YulTypedName","src":"16670:8:88","type":""}]},{"nativeSrc":"16692:44:88","nodeType":"YulAssignment","src":"16692:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16721:5:88","nodeType":"YulIdentifier","src":"16721:5:88"},{"kind":"number","nativeSrc":"16728:6:88","nodeType":"YulLiteral","src":"16728:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"16717:3:88","nodeType":"YulIdentifier","src":"16717:3:88"},"nativeSrc":"16717:18:88","nodeType":"YulFunctionCall","src":"16717:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16704:12:88","nodeType":"YulIdentifier","src":"16704:12:88"},"nativeSrc":"16704:32:88","nodeType":"YulFunctionCall","src":"16704:32:88"},"variableNames":[{"name":"value_10","nativeSrc":"16692:8:88","nodeType":"YulIdentifier","src":"16692:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16756:3:88","nodeType":"YulIdentifier","src":"16756:3:88"},{"kind":"number","nativeSrc":"16761:6:88","nodeType":"YulLiteral","src":"16761:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"16752:3:88","nodeType":"YulIdentifier","src":"16752:3:88"},"nativeSrc":"16752:16:88","nodeType":"YulFunctionCall","src":"16752:16:88"},{"name":"value_10","nativeSrc":"16770:8:88","nodeType":"YulIdentifier","src":"16770:8:88"}],"functionName":{"name":"mstore","nativeSrc":"16745:6:88","nodeType":"YulIdentifier","src":"16745:6:88"},"nativeSrc":"16745:34:88","nodeType":"YulFunctionCall","src":"16745:34:88"},"nativeSrc":"16745:34:88","nodeType":"YulExpressionStatement","src":"16745:34:88"},{"nativeSrc":"16788:17:88","nodeType":"YulVariableDeclaration","src":"16788:17:88","value":{"kind":"number","nativeSrc":"16804:1:88","nodeType":"YulLiteral","src":"16804:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"16792:8:88","nodeType":"YulTypedName","src":"16792:8:88","type":""}]},{"nativeSrc":"16814:44:88","nodeType":"YulAssignment","src":"16814:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16843:5:88","nodeType":"YulIdentifier","src":"16843:5:88"},{"kind":"number","nativeSrc":"16850:6:88","nodeType":"YulLiteral","src":"16850:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"16839:3:88","nodeType":"YulIdentifier","src":"16839:3:88"},"nativeSrc":"16839:18:88","nodeType":"YulFunctionCall","src":"16839:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16826:12:88","nodeType":"YulIdentifier","src":"16826:12:88"},"nativeSrc":"16826:32:88","nodeType":"YulFunctionCall","src":"16826:32:88"},"variableNames":[{"name":"value_11","nativeSrc":"16814:8:88","nodeType":"YulIdentifier","src":"16814:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16878:3:88","nodeType":"YulIdentifier","src":"16878:3:88"},{"kind":"number","nativeSrc":"16883:6:88","nodeType":"YulLiteral","src":"16883:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"16874:3:88","nodeType":"YulIdentifier","src":"16874:3:88"},"nativeSrc":"16874:16:88","nodeType":"YulFunctionCall","src":"16874:16:88"},{"name":"value_11","nativeSrc":"16892:8:88","nodeType":"YulIdentifier","src":"16892:8:88"}],"functionName":{"name":"mstore","nativeSrc":"16867:6:88","nodeType":"YulIdentifier","src":"16867:6:88"},"nativeSrc":"16867:34:88","nodeType":"YulFunctionCall","src":"16867:34:88"},"nativeSrc":"16867:34:88","nodeType":"YulExpressionStatement","src":"16867:34:88"},{"nativeSrc":"16910:71:88","nodeType":"YulVariableDeclaration","src":"16910:71:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16966:5:88","nodeType":"YulIdentifier","src":"16966:5:88"},{"kind":"number","nativeSrc":"16973:6:88","nodeType":"YulLiteral","src":"16973:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"16962:3:88","nodeType":"YulIdentifier","src":"16962:3:88"},"nativeSrc":"16962:18:88","nodeType":"YulFunctionCall","src":"16962:18:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"16930:31:88","nodeType":"YulIdentifier","src":"16930:31:88"},"nativeSrc":"16930:51:88","nodeType":"YulFunctionCall","src":"16930:51:88"},"variables":[{"name":"memberValue0","nativeSrc":"16914:12:88","nodeType":"YulTypedName","src":"16914:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17022:12:88","nodeType":"YulIdentifier","src":"17022:12:88"},{"arguments":[{"name":"pos","nativeSrc":"17040:3:88","nodeType":"YulIdentifier","src":"17040:3:88"},{"kind":"number","nativeSrc":"17045:6:88","nodeType":"YulLiteral","src":"17045:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"17036:3:88","nodeType":"YulIdentifier","src":"17036:3:88"},"nativeSrc":"17036:16:88","nodeType":"YulFunctionCall","src":"17036:16:88"}],"functionName":{"name":"abi_encode_contract_IRiskModule","nativeSrc":"16990:31:88","nodeType":"YulIdentifier","src":"16990:31:88"},"nativeSrc":"16990:63:88","nodeType":"YulFunctionCall","src":"16990:63:88"},"nativeSrc":"16990:63:88","nodeType":"YulExpressionStatement","src":"16990:63:88"},{"nativeSrc":"17062:59:88","nodeType":"YulVariableDeclaration","src":"17062:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17106:5:88","nodeType":"YulIdentifier","src":"17106:5:88"},{"kind":"number","nativeSrc":"17113:6:88","nodeType":"YulLiteral","src":"17113:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17102:3:88","nodeType":"YulIdentifier","src":"17102:3:88"},"nativeSrc":"17102:18:88","nodeType":"YulFunctionCall","src":"17102:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"17084:17:88","nodeType":"YulIdentifier","src":"17084:17:88"},"nativeSrc":"17084:37:88","nodeType":"YulFunctionCall","src":"17084:37:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"17066:14:88","nodeType":"YulTypedName","src":"17066:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"17148:14:88","nodeType":"YulIdentifier","src":"17148:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17168:3:88","nodeType":"YulIdentifier","src":"17168:3:88"},{"kind":"number","nativeSrc":"17173:6:88","nodeType":"YulLiteral","src":"17173:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17164:3:88","nodeType":"YulIdentifier","src":"17164:3:88"},"nativeSrc":"17164:16:88","nodeType":"YulFunctionCall","src":"17164:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17130:17:88","nodeType":"YulIdentifier","src":"17130:17:88"},"nativeSrc":"17130:51:88","nodeType":"YulFunctionCall","src":"17130:51:88"},"nativeSrc":"17130:51:88","nodeType":"YulExpressionStatement","src":"17130:51:88"},{"nativeSrc":"17190:59:88","nodeType":"YulVariableDeclaration","src":"17190:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17234:5:88","nodeType":"YulIdentifier","src":"17234:5:88"},{"kind":"number","nativeSrc":"17241:6:88","nodeType":"YulLiteral","src":"17241:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17230:3:88","nodeType":"YulIdentifier","src":"17230:3:88"},"nativeSrc":"17230:18:88","nodeType":"YulFunctionCall","src":"17230:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"17212:17:88","nodeType":"YulIdentifier","src":"17212:17:88"},"nativeSrc":"17212:37:88","nodeType":"YulFunctionCall","src":"17212:37:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"17194:14:88","nodeType":"YulTypedName","src":"17194:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"17276:14:88","nodeType":"YulIdentifier","src":"17276:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17296:3:88","nodeType":"YulIdentifier","src":"17296:3:88"},{"kind":"number","nativeSrc":"17301:6:88","nodeType":"YulLiteral","src":"17301:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17292:3:88","nodeType":"YulIdentifier","src":"17292:3:88"},"nativeSrc":"17292:16:88","nodeType":"YulFunctionCall","src":"17292:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17258:17:88","nodeType":"YulIdentifier","src":"17258:17:88"},"nativeSrc":"17258:51:88","nodeType":"YulFunctionCall","src":"17258:51:88"},"nativeSrc":"17258:51:88","nodeType":"YulExpressionStatement","src":"17258:51:88"}]},"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"15576:1739:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15623:5:88","nodeType":"YulTypedName","src":"15623:5:88","type":""},{"name":"pos","nativeSrc":"15630:3:88","nodeType":"YulTypedName","src":"15630:3:88","type":""}],"src":"15576:1739:88"},{"body":{"nativeSrc":"17509:152:88","nodeType":"YulBlock","src":"17509:152:88","statements":[{"nativeSrc":"17519:27:88","nodeType":"YulAssignment","src":"17519:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17531:9:88","nodeType":"YulIdentifier","src":"17531:9:88"},{"kind":"number","nativeSrc":"17542:3:88","nodeType":"YulLiteral","src":"17542:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"17527:3:88","nodeType":"YulIdentifier","src":"17527:3:88"},"nativeSrc":"17527:19:88","nodeType":"YulFunctionCall","src":"17527:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17519:4:88","nodeType":"YulIdentifier","src":"17519:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17593:6:88","nodeType":"YulIdentifier","src":"17593:6:88"},{"name":"headStart","nativeSrc":"17601:9:88","nodeType":"YulIdentifier","src":"17601:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"17555:37:88","nodeType":"YulIdentifier","src":"17555:37:88"},"nativeSrc":"17555:56:88","nodeType":"YulFunctionCall","src":"17555:56:88"},"nativeSrc":"17555:56:88","nodeType":"YulExpressionStatement","src":"17555:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17631:9:88","nodeType":"YulIdentifier","src":"17631:9:88"},{"kind":"number","nativeSrc":"17642:3:88","nodeType":"YulLiteral","src":"17642:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"17627:3:88","nodeType":"YulIdentifier","src":"17627:3:88"},"nativeSrc":"17627:19:88","nodeType":"YulFunctionCall","src":"17627:19:88"},{"name":"value1","nativeSrc":"17648:6:88","nodeType":"YulIdentifier","src":"17648:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17620:6:88","nodeType":"YulIdentifier","src":"17620:6:88"},"nativeSrc":"17620:35:88","nodeType":"YulFunctionCall","src":"17620:35:88"},"nativeSrc":"17620:35:88","nodeType":"YulExpressionStatement","src":"17620:35:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"17320:341:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17470:9:88","nodeType":"YulTypedName","src":"17470:9:88","type":""},{"name":"value1","nativeSrc":"17481:6:88","nodeType":"YulTypedName","src":"17481:6:88","type":""},{"name":"value0","nativeSrc":"17489:6:88","nodeType":"YulTypedName","src":"17489:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17500:4:88","nodeType":"YulTypedName","src":"17500:4:88","type":""}],"src":"17320:341:88"},{"body":{"nativeSrc":"17698:95:88","nodeType":"YulBlock","src":"17698:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17715:1:88","nodeType":"YulLiteral","src":"17715:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"17722:3:88","nodeType":"YulLiteral","src":"17722:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"17727:10:88","nodeType":"YulLiteral","src":"17727:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"17718:3:88","nodeType":"YulIdentifier","src":"17718:3:88"},"nativeSrc":"17718:20:88","nodeType":"YulFunctionCall","src":"17718:20:88"}],"functionName":{"name":"mstore","nativeSrc":"17708:6:88","nodeType":"YulIdentifier","src":"17708:6:88"},"nativeSrc":"17708:31:88","nodeType":"YulFunctionCall","src":"17708:31:88"},"nativeSrc":"17708:31:88","nodeType":"YulExpressionStatement","src":"17708:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17755:1:88","nodeType":"YulLiteral","src":"17755:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"17758:4:88","nodeType":"YulLiteral","src":"17758:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"17748:6:88","nodeType":"YulIdentifier","src":"17748:6:88"},"nativeSrc":"17748:15:88","nodeType":"YulFunctionCall","src":"17748:15:88"},"nativeSrc":"17748:15:88","nodeType":"YulExpressionStatement","src":"17748:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17779:1:88","nodeType":"YulLiteral","src":"17779:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17782:4:88","nodeType":"YulLiteral","src":"17782:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17772:6:88","nodeType":"YulIdentifier","src":"17772:6:88"},"nativeSrc":"17772:15:88","nodeType":"YulFunctionCall","src":"17772:15:88"},"nativeSrc":"17772:15:88","nodeType":"YulExpressionStatement","src":"17772:15:88"}]},"name":"panic_error_0x21","nativeSrc":"17666:127:88","nodeType":"YulFunctionDefinition","src":"17666:127:88"},{"body":{"nativeSrc":"17972:239:88","nodeType":"YulBlock","src":"17972:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17989:9:88","nodeType":"YulIdentifier","src":"17989:9:88"},{"kind":"number","nativeSrc":"18000:2:88","nodeType":"YulLiteral","src":"18000:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17982:6:88","nodeType":"YulIdentifier","src":"17982:6:88"},"nativeSrc":"17982:21:88","nodeType":"YulFunctionCall","src":"17982:21:88"},"nativeSrc":"17982:21:88","nodeType":"YulExpressionStatement","src":"17982:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18023:9:88","nodeType":"YulIdentifier","src":"18023:9:88"},{"kind":"number","nativeSrc":"18034:2:88","nodeType":"YulLiteral","src":"18034:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18019:3:88","nodeType":"YulIdentifier","src":"18019:3:88"},"nativeSrc":"18019:18:88","nodeType":"YulFunctionCall","src":"18019:18:88"},{"kind":"number","nativeSrc":"18039:2:88","nodeType":"YulLiteral","src":"18039:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"18012:6:88","nodeType":"YulIdentifier","src":"18012:6:88"},"nativeSrc":"18012:30:88","nodeType":"YulFunctionCall","src":"18012:30:88"},"nativeSrc":"18012:30:88","nodeType":"YulExpressionStatement","src":"18012:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18062:9:88","nodeType":"YulIdentifier","src":"18062:9:88"},{"kind":"number","nativeSrc":"18073:2:88","nodeType":"YulLiteral","src":"18073:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18058:3:88","nodeType":"YulIdentifier","src":"18058:3:88"},"nativeSrc":"18058:18:88","nodeType":"YulFunctionCall","src":"18058:18:88"},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c65737320746861","kind":"string","nativeSrc":"18078:34:88","nodeType":"YulLiteral","src":"18078:34:88","type":"","value":"Can't set exposureLimit less tha"}],"functionName":{"name":"mstore","nativeSrc":"18051:6:88","nodeType":"YulIdentifier","src":"18051:6:88"},"nativeSrc":"18051:62:88","nodeType":"YulFunctionCall","src":"18051:62:88"},"nativeSrc":"18051:62:88","nodeType":"YulExpressionStatement","src":"18051:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18133:9:88","nodeType":"YulIdentifier","src":"18133:9:88"},{"kind":"number","nativeSrc":"18144:2:88","nodeType":"YulLiteral","src":"18144:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18129:3:88","nodeType":"YulIdentifier","src":"18129:3:88"},"nativeSrc":"18129:18:88","nodeType":"YulFunctionCall","src":"18129:18:88"},{"hexValue":"6e20616374697665206578706f73757265","kind":"string","nativeSrc":"18149:19:88","nodeType":"YulLiteral","src":"18149:19:88","type":"","value":"n active exposure"}],"functionName":{"name":"mstore","nativeSrc":"18122:6:88","nodeType":"YulIdentifier","src":"18122:6:88"},"nativeSrc":"18122:47:88","nodeType":"YulFunctionCall","src":"18122:47:88"},"nativeSrc":"18122:47:88","nodeType":"YulExpressionStatement","src":"18122:47:88"},{"nativeSrc":"18178:27:88","nodeType":"YulAssignment","src":"18178:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18190:9:88","nodeType":"YulIdentifier","src":"18190:9:88"},{"kind":"number","nativeSrc":"18201:3:88","nodeType":"YulLiteral","src":"18201:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18186:3:88","nodeType":"YulIdentifier","src":"18186:3:88"},"nativeSrc":"18186:19:88","nodeType":"YulFunctionCall","src":"18186:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18178:4:88","nodeType":"YulIdentifier","src":"18178:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17798:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17949:9:88","nodeType":"YulTypedName","src":"17949:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17963:4:88","nodeType":"YulTypedName","src":"17963:4:88","type":""}],"src":"17798:413:88"},{"body":{"nativeSrc":"18390:179:88","nodeType":"YulBlock","src":"18390:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18407:9:88","nodeType":"YulIdentifier","src":"18407:9:88"},{"kind":"number","nativeSrc":"18418:2:88","nodeType":"YulLiteral","src":"18418:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18400:6:88","nodeType":"YulIdentifier","src":"18400:6:88"},"nativeSrc":"18400:21:88","nodeType":"YulFunctionCall","src":"18400:21:88"},"nativeSrc":"18400:21:88","nodeType":"YulExpressionStatement","src":"18400:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18441:9:88","nodeType":"YulIdentifier","src":"18441:9:88"},{"kind":"number","nativeSrc":"18452:2:88","nodeType":"YulLiteral","src":"18452:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18437:3:88","nodeType":"YulIdentifier","src":"18437:3:88"},"nativeSrc":"18437:18:88","nodeType":"YulFunctionCall","src":"18437:18:88"},{"kind":"number","nativeSrc":"18457:2:88","nodeType":"YulLiteral","src":"18457:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"18430:6:88","nodeType":"YulIdentifier","src":"18430:6:88"},"nativeSrc":"18430:30:88","nodeType":"YulFunctionCall","src":"18430:30:88"},"nativeSrc":"18430:30:88","nodeType":"YulExpressionStatement","src":"18430:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18480:9:88","nodeType":"YulIdentifier","src":"18480:9:88"},{"kind":"number","nativeSrc":"18491:2:88","nodeType":"YulLiteral","src":"18491:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18476:3:88","nodeType":"YulIdentifier","src":"18476:3:88"},"nativeSrc":"18476:18:88","nodeType":"YulFunctionCall","src":"18476:18:88"},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","kind":"string","nativeSrc":"18496:31:88","nodeType":"YulLiteral","src":"18496:31:88","type":"","value":"Increase requires LEVEL1_ROLE"}],"functionName":{"name":"mstore","nativeSrc":"18469:6:88","nodeType":"YulIdentifier","src":"18469:6:88"},"nativeSrc":"18469:59:88","nodeType":"YulFunctionCall","src":"18469:59:88"},"nativeSrc":"18469:59:88","nodeType":"YulExpressionStatement","src":"18469:59:88"},{"nativeSrc":"18537:26:88","nodeType":"YulAssignment","src":"18537:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18549:9:88","nodeType":"YulIdentifier","src":"18549:9:88"},{"kind":"number","nativeSrc":"18560:2:88","nodeType":"YulLiteral","src":"18560:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18545:3:88","nodeType":"YulIdentifier","src":"18545:3:88"},"nativeSrc":"18545:18:88","nodeType":"YulFunctionCall","src":"18545:18:88"},"variableNames":[{"name":"tail","nativeSrc":"18537:4:88","nodeType":"YulIdentifier","src":"18537:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18216:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18367:9:88","nodeType":"YulTypedName","src":"18367:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18381:4:88","nodeType":"YulTypedName","src":"18381:4:88","type":""}],"src":"18216:353:88"},{"body":{"nativeSrc":"18622:77:88","nodeType":"YulBlock","src":"18622:77:88","statements":[{"nativeSrc":"18632:16:88","nodeType":"YulAssignment","src":"18632:16:88","value":{"arguments":[{"name":"x","nativeSrc":"18643:1:88","nodeType":"YulIdentifier","src":"18643:1:88"},{"name":"y","nativeSrc":"18646:1:88","nodeType":"YulIdentifier","src":"18646:1:88"}],"functionName":{"name":"add","nativeSrc":"18639:3:88","nodeType":"YulIdentifier","src":"18639:3:88"},"nativeSrc":"18639:9:88","nodeType":"YulFunctionCall","src":"18639:9:88"},"variableNames":[{"name":"sum","nativeSrc":"18632:3:88","nodeType":"YulIdentifier","src":"18632:3:88"}]},{"body":{"nativeSrc":"18671:22:88","nodeType":"YulBlock","src":"18671:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18673:16:88","nodeType":"YulIdentifier","src":"18673:16:88"},"nativeSrc":"18673:18:88","nodeType":"YulFunctionCall","src":"18673:18:88"},"nativeSrc":"18673:18:88","nodeType":"YulExpressionStatement","src":"18673:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"18663:1:88","nodeType":"YulIdentifier","src":"18663:1:88"},{"name":"sum","nativeSrc":"18666:3:88","nodeType":"YulIdentifier","src":"18666:3:88"}],"functionName":{"name":"gt","nativeSrc":"18660:2:88","nodeType":"YulIdentifier","src":"18660:2:88"},"nativeSrc":"18660:10:88","nodeType":"YulFunctionCall","src":"18660:10:88"},"nativeSrc":"18657:36:88","nodeType":"YulIf","src":"18657:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"18574:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"18605:1:88","nodeType":"YulTypedName","src":"18605:1:88","type":""},{"name":"y","nativeSrc":"18608:1:88","nodeType":"YulTypedName","src":"18608:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"18614:3:88","nodeType":"YulTypedName","src":"18614:3:88","type":""}],"src":"18574:125:88"},{"body":{"nativeSrc":"18808:170:88","nodeType":"YulBlock","src":"18808:170:88","statements":[{"body":{"nativeSrc":"18854:16:88","nodeType":"YulBlock","src":"18854:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18863:1:88","nodeType":"YulLiteral","src":"18863:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"18866:1:88","nodeType":"YulLiteral","src":"18866:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18856:6:88","nodeType":"YulIdentifier","src":"18856:6:88"},"nativeSrc":"18856:12:88","nodeType":"YulFunctionCall","src":"18856:12:88"},"nativeSrc":"18856:12:88","nodeType":"YulExpressionStatement","src":"18856:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18829:7:88","nodeType":"YulIdentifier","src":"18829:7:88"},{"name":"headStart","nativeSrc":"18838:9:88","nodeType":"YulIdentifier","src":"18838:9:88"}],"functionName":{"name":"sub","nativeSrc":"18825:3:88","nodeType":"YulIdentifier","src":"18825:3:88"},"nativeSrc":"18825:23:88","nodeType":"YulFunctionCall","src":"18825:23:88"},{"kind":"number","nativeSrc":"18850:2:88","nodeType":"YulLiteral","src":"18850:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18821:3:88","nodeType":"YulIdentifier","src":"18821:3:88"},"nativeSrc":"18821:32:88","nodeType":"YulFunctionCall","src":"18821:32:88"},"nativeSrc":"18818:52:88","nodeType":"YulIf","src":"18818:52:88"},{"nativeSrc":"18879:29:88","nodeType":"YulVariableDeclaration","src":"18879:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18898:9:88","nodeType":"YulIdentifier","src":"18898:9:88"}],"functionName":{"name":"mload","nativeSrc":"18892:5:88","nodeType":"YulIdentifier","src":"18892:5:88"},"nativeSrc":"18892:16:88","nodeType":"YulFunctionCall","src":"18892:16:88"},"variables":[{"name":"value","nativeSrc":"18883:5:88","nodeType":"YulTypedName","src":"18883:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18942:5:88","nodeType":"YulIdentifier","src":"18942:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"18917:24:88","nodeType":"YulIdentifier","src":"18917:24:88"},"nativeSrc":"18917:31:88","nodeType":"YulFunctionCall","src":"18917:31:88"},"nativeSrc":"18917:31:88","nodeType":"YulExpressionStatement","src":"18917:31:88"},{"nativeSrc":"18957:15:88","nodeType":"YulAssignment","src":"18957:15:88","value":{"name":"value","nativeSrc":"18967:5:88","nodeType":"YulIdentifier","src":"18967:5:88"},"variableNames":[{"name":"value0","nativeSrc":"18957:6:88","nodeType":"YulIdentifier","src":"18957:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"18704:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18774:9:88","nodeType":"YulTypedName","src":"18774:9:88","type":""},{"name":"dataEnd","nativeSrc":"18785:7:88","nodeType":"YulTypedName","src":"18785:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18797:6:88","nodeType":"YulTypedName","src":"18797:6:88","type":""}],"src":"18704:274:88"},{"body":{"nativeSrc":"19166:168:88","nodeType":"YulBlock","src":"19166:168:88","statements":[{"nativeSrc":"19176:27:88","nodeType":"YulAssignment","src":"19176:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19188:9:88","nodeType":"YulIdentifier","src":"19188:9:88"},{"kind":"number","nativeSrc":"19199:3:88","nodeType":"YulLiteral","src":"19199:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"19184:3:88","nodeType":"YulIdentifier","src":"19184:3:88"},"nativeSrc":"19184:19:88","nodeType":"YulFunctionCall","src":"19184:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19176:4:88","nodeType":"YulIdentifier","src":"19176:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19250:6:88","nodeType":"YulIdentifier","src":"19250:6:88"},{"name":"headStart","nativeSrc":"19258:9:88","nodeType":"YulIdentifier","src":"19258:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"19212:37:88","nodeType":"YulIdentifier","src":"19212:37:88"},"nativeSrc":"19212:56:88","nodeType":"YulFunctionCall","src":"19212:56:88"},"nativeSrc":"19212:56:88","nodeType":"YulExpressionStatement","src":"19212:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19288:9:88","nodeType":"YulIdentifier","src":"19288:9:88"},{"kind":"number","nativeSrc":"19299:3:88","nodeType":"YulLiteral","src":"19299:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"19284:3:88","nodeType":"YulIdentifier","src":"19284:3:88"},"nativeSrc":"19284:19:88","nodeType":"YulFunctionCall","src":"19284:19:88"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"19319:6:88","nodeType":"YulIdentifier","src":"19319:6:88"}],"functionName":{"name":"iszero","nativeSrc":"19312:6:88","nodeType":"YulIdentifier","src":"19312:6:88"},"nativeSrc":"19312:14:88","nodeType":"YulFunctionCall","src":"19312:14:88"}],"functionName":{"name":"iszero","nativeSrc":"19305:6:88","nodeType":"YulIdentifier","src":"19305:6:88"},"nativeSrc":"19305:22:88","nodeType":"YulFunctionCall","src":"19305:22:88"}],"functionName":{"name":"mstore","nativeSrc":"19277:6:88","nodeType":"YulIdentifier","src":"19277:6:88"},"nativeSrc":"19277:51:88","nodeType":"YulFunctionCall","src":"19277:51:88"},"nativeSrc":"19277:51:88","nodeType":"YulExpressionStatement","src":"19277:51:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed","nativeSrc":"18983:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19127:9:88","nodeType":"YulTypedName","src":"19127:9:88","type":""},{"name":"value1","nativeSrc":"19138:6:88","nodeType":"YulTypedName","src":"19138:6:88","type":""},{"name":"value0","nativeSrc":"19146:6:88","nodeType":"YulTypedName","src":"19146:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19157:4:88","nodeType":"YulTypedName","src":"19157:4:88","type":""}],"src":"18983:351:88"},{"body":{"nativeSrc":"19513:166:88","nodeType":"YulBlock","src":"19513:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19530:9:88","nodeType":"YulIdentifier","src":"19530:9:88"},{"kind":"number","nativeSrc":"19541:2:88","nodeType":"YulLiteral","src":"19541:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19523:6:88","nodeType":"YulIdentifier","src":"19523:6:88"},"nativeSrc":"19523:21:88","nodeType":"YulFunctionCall","src":"19523:21:88"},"nativeSrc":"19523:21:88","nodeType":"YulExpressionStatement","src":"19523:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19564:9:88","nodeType":"YulIdentifier","src":"19564:9:88"},{"kind":"number","nativeSrc":"19575:2:88","nodeType":"YulLiteral","src":"19575:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19560:3:88","nodeType":"YulIdentifier","src":"19560:3:88"},"nativeSrc":"19560:18:88","nodeType":"YulFunctionCall","src":"19560:18:88"},{"kind":"number","nativeSrc":"19580:2:88","nodeType":"YulLiteral","src":"19580:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"19553:6:88","nodeType":"YulIdentifier","src":"19553:6:88"},"nativeSrc":"19553:30:88","nodeType":"YulFunctionCall","src":"19553:30:88"},"nativeSrc":"19553:30:88","nodeType":"YulExpressionStatement","src":"19553:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19603:9:88","nodeType":"YulIdentifier","src":"19603:9:88"},{"kind":"number","nativeSrc":"19614:2:88","nodeType":"YulLiteral","src":"19614:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19599:3:88","nodeType":"YulIdentifier","src":"19599:3:88"},"nativeSrc":"19599:18:88","nodeType":"YulFunctionCall","src":"19599:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"19619:18:88","nodeType":"YulLiteral","src":"19619:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"19592:6:88","nodeType":"YulIdentifier","src":"19592:6:88"},"nativeSrc":"19592:46:88","nodeType":"YulFunctionCall","src":"19592:46:88"},"nativeSrc":"19592:46:88","nodeType":"YulExpressionStatement","src":"19592:46:88"},{"nativeSrc":"19647:26:88","nodeType":"YulAssignment","src":"19647:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19659:9:88","nodeType":"YulIdentifier","src":"19659:9:88"},{"kind":"number","nativeSrc":"19670:2:88","nodeType":"YulLiteral","src":"19670:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19655:3:88","nodeType":"YulIdentifier","src":"19655:3:88"},"nativeSrc":"19655:18:88","nodeType":"YulFunctionCall","src":"19655:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19647:4:88","nodeType":"YulIdentifier","src":"19647:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19339:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19490:9:88","nodeType":"YulTypedName","src":"19490:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19504:4:88","nodeType":"YulTypedName","src":"19504:4:88","type":""}],"src":"19339:340:88"},{"body":{"nativeSrc":"19967:414:88","nodeType":"YulBlock","src":"19967:414:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19984:3:88","nodeType":"YulIdentifier","src":"19984:3:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19997:2:88","nodeType":"YulLiteral","src":"19997:2:88","type":"","value":"96"},{"name":"value0","nativeSrc":"20001:6:88","nodeType":"YulIdentifier","src":"20001:6:88"}],"functionName":{"name":"shl","nativeSrc":"19993:3:88","nodeType":"YulIdentifier","src":"19993:3:88"},"nativeSrc":"19993:15:88","nodeType":"YulFunctionCall","src":"19993:15:88"},{"arguments":[{"kind":"number","nativeSrc":"20014:26:88","nodeType":"YulLiteral","src":"20014:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nativeSrc":"20010:3:88","nodeType":"YulIdentifier","src":"20010:3:88"},"nativeSrc":"20010:31:88","nodeType":"YulFunctionCall","src":"20010:31:88"}],"functionName":{"name":"and","nativeSrc":"19989:3:88","nodeType":"YulIdentifier","src":"19989:3:88"},"nativeSrc":"19989:53:88","nodeType":"YulFunctionCall","src":"19989:53:88"}],"functionName":{"name":"mstore","nativeSrc":"19977:6:88","nodeType":"YulIdentifier","src":"19977:6:88"},"nativeSrc":"19977:66:88","nodeType":"YulFunctionCall","src":"19977:66:88"},"nativeSrc":"19977:66:88","nodeType":"YulExpressionStatement","src":"19977:66:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20063:3:88","nodeType":"YulIdentifier","src":"20063:3:88"},{"kind":"number","nativeSrc":"20068:2:88","nodeType":"YulLiteral","src":"20068:2:88","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20059:3:88","nodeType":"YulIdentifier","src":"20059:3:88"},"nativeSrc":"20059:12:88","nodeType":"YulFunctionCall","src":"20059:12:88"},{"name":"value1","nativeSrc":"20073:6:88","nodeType":"YulIdentifier","src":"20073:6:88"}],"functionName":{"name":"mstore","nativeSrc":"20052:6:88","nodeType":"YulIdentifier","src":"20052:6:88"},"nativeSrc":"20052:28:88","nodeType":"YulFunctionCall","src":"20052:28:88"},"nativeSrc":"20052:28:88","nodeType":"YulExpressionStatement","src":"20052:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20100:3:88","nodeType":"YulIdentifier","src":"20100:3:88"},{"kind":"number","nativeSrc":"20105:2:88","nodeType":"YulLiteral","src":"20105:2:88","type":"","value":"52"}],"functionName":{"name":"add","nativeSrc":"20096:3:88","nodeType":"YulIdentifier","src":"20096:3:88"},"nativeSrc":"20096:12:88","nodeType":"YulFunctionCall","src":"20096:12:88"},{"name":"value2","nativeSrc":"20110:6:88","nodeType":"YulIdentifier","src":"20110:6:88"}],"functionName":{"name":"mstore","nativeSrc":"20089:6:88","nodeType":"YulIdentifier","src":"20089:6:88"},"nativeSrc":"20089:28:88","nodeType":"YulFunctionCall","src":"20089:28:88"},"nativeSrc":"20089:28:88","nodeType":"YulExpressionStatement","src":"20089:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20137:3:88","nodeType":"YulIdentifier","src":"20137:3:88"},{"kind":"number","nativeSrc":"20142:2:88","nodeType":"YulLiteral","src":"20142:2:88","type":"","value":"84"}],"functionName":{"name":"add","nativeSrc":"20133:3:88","nodeType":"YulIdentifier","src":"20133:3:88"},"nativeSrc":"20133:12:88","nodeType":"YulFunctionCall","src":"20133:12:88"},{"name":"value3","nativeSrc":"20147:6:88","nodeType":"YulIdentifier","src":"20147:6:88"}],"functionName":{"name":"mstore","nativeSrc":"20126:6:88","nodeType":"YulIdentifier","src":"20126:6:88"},"nativeSrc":"20126:28:88","nodeType":"YulFunctionCall","src":"20126:28:88"},"nativeSrc":"20126:28:88","nodeType":"YulExpressionStatement","src":"20126:28:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20174:3:88","nodeType":"YulIdentifier","src":"20174:3:88"},{"kind":"number","nativeSrc":"20179:3:88","nodeType":"YulLiteral","src":"20179:3:88","type":"","value":"116"}],"functionName":{"name":"add","nativeSrc":"20170:3:88","nodeType":"YulIdentifier","src":"20170:3:88"},"nativeSrc":"20170:13:88","nodeType":"YulFunctionCall","src":"20170:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20193:3:88","nodeType":"YulLiteral","src":"20193:3:88","type":"","value":"216"},{"name":"value4","nativeSrc":"20198:6:88","nodeType":"YulIdentifier","src":"20198:6:88"}],"functionName":{"name":"shl","nativeSrc":"20189:3:88","nodeType":"YulIdentifier","src":"20189:3:88"},"nativeSrc":"20189:16:88","nodeType":"YulFunctionCall","src":"20189:16:88"},{"arguments":[{"kind":"number","nativeSrc":"20211:3:88","nodeType":"YulLiteral","src":"20211:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"20216:12:88","nodeType":"YulLiteral","src":"20216:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"20207:3:88","nodeType":"YulIdentifier","src":"20207:3:88"},"nativeSrc":"20207:22:88","nodeType":"YulFunctionCall","src":"20207:22:88"}],"functionName":{"name":"and","nativeSrc":"20185:3:88","nodeType":"YulIdentifier","src":"20185:3:88"},"nativeSrc":"20185:45:88","nodeType":"YulFunctionCall","src":"20185:45:88"}],"functionName":{"name":"mstore","nativeSrc":"20163:6:88","nodeType":"YulIdentifier","src":"20163:6:88"},"nativeSrc":"20163:68:88","nodeType":"YulFunctionCall","src":"20163:68:88"},"nativeSrc":"20163:68:88","nodeType":"YulExpressionStatement","src":"20163:68:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20251:3:88","nodeType":"YulIdentifier","src":"20251:3:88"},{"kind":"number","nativeSrc":"20256:3:88","nodeType":"YulLiteral","src":"20256:3:88","type":"","value":"121"}],"functionName":{"name":"add","nativeSrc":"20247:3:88","nodeType":"YulIdentifier","src":"20247:3:88"},"nativeSrc":"20247:13:88","nodeType":"YulFunctionCall","src":"20247:13:88"},{"name":"value5","nativeSrc":"20262:6:88","nodeType":"YulIdentifier","src":"20262:6:88"}],"functionName":{"name":"mstore","nativeSrc":"20240:6:88","nodeType":"YulIdentifier","src":"20240:6:88"},"nativeSrc":"20240:29:88","nodeType":"YulFunctionCall","src":"20240:29:88"},"nativeSrc":"20240:29:88","nodeType":"YulExpressionStatement","src":"20240:29:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20289:3:88","nodeType":"YulIdentifier","src":"20289:3:88"},{"kind":"number","nativeSrc":"20294:3:88","nodeType":"YulLiteral","src":"20294:3:88","type":"","value":"153"}],"functionName":{"name":"add","nativeSrc":"20285:3:88","nodeType":"YulIdentifier","src":"20285:3:88"},"nativeSrc":"20285:13:88","nodeType":"YulFunctionCall","src":"20285:13:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20308:3:88","nodeType":"YulLiteral","src":"20308:3:88","type":"","value":"216"},{"name":"value6","nativeSrc":"20313:6:88","nodeType":"YulIdentifier","src":"20313:6:88"}],"functionName":{"name":"shl","nativeSrc":"20304:3:88","nodeType":"YulIdentifier","src":"20304:3:88"},"nativeSrc":"20304:16:88","nodeType":"YulFunctionCall","src":"20304:16:88"},{"arguments":[{"kind":"number","nativeSrc":"20326:3:88","nodeType":"YulLiteral","src":"20326:3:88","type":"","value":"216"},{"kind":"number","nativeSrc":"20331:12:88","nodeType":"YulLiteral","src":"20331:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"shl","nativeSrc":"20322:3:88","nodeType":"YulIdentifier","src":"20322:3:88"},"nativeSrc":"20322:22:88","nodeType":"YulFunctionCall","src":"20322:22:88"}],"functionName":{"name":"and","nativeSrc":"20300:3:88","nodeType":"YulIdentifier","src":"20300:3:88"},"nativeSrc":"20300:45:88","nodeType":"YulFunctionCall","src":"20300:45:88"}],"functionName":{"name":"mstore","nativeSrc":"20278:6:88","nodeType":"YulIdentifier","src":"20278:6:88"},"nativeSrc":"20278:68:88","nodeType":"YulFunctionCall","src":"20278:68:88"},"nativeSrc":"20278:68:88","nodeType":"YulExpressionStatement","src":"20278:68:88"},{"nativeSrc":"20355:20:88","nodeType":"YulAssignment","src":"20355:20:88","value":{"arguments":[{"name":"pos","nativeSrc":"20366:3:88","nodeType":"YulIdentifier","src":"20366:3:88"},{"kind":"number","nativeSrc":"20371:3:88","nodeType":"YulLiteral","src":"20371:3:88","type":"","value":"158"}],"functionName":{"name":"add","nativeSrc":"20362:3:88","nodeType":"YulIdentifier","src":"20362:3:88"},"nativeSrc":"20362:13:88","nodeType":"YulFunctionCall","src":"20362:13:88"},"variableNames":[{"name":"end","nativeSrc":"20355:3:88","nodeType":"YulIdentifier","src":"20355:3:88"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__nonPadded_inplace_fromStack_reversed","nativeSrc":"19684:697:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19895:3:88","nodeType":"YulTypedName","src":"19895:3:88","type":""},{"name":"value6","nativeSrc":"19900:6:88","nodeType":"YulTypedName","src":"19900:6:88","type":""},{"name":"value5","nativeSrc":"19908:6:88","nodeType":"YulTypedName","src":"19908:6:88","type":""},{"name":"value4","nativeSrc":"19916:6:88","nodeType":"YulTypedName","src":"19916:6:88","type":""},{"name":"value3","nativeSrc":"19924:6:88","nodeType":"YulTypedName","src":"19924:6:88","type":""},{"name":"value2","nativeSrc":"19932:6:88","nodeType":"YulTypedName","src":"19932:6:88","type":""},{"name":"value1","nativeSrc":"19940:6:88","nodeType":"YulTypedName","src":"19940:6:88","type":""},{"name":"value0","nativeSrc":"19948:6:88","nodeType":"YulTypedName","src":"19948:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19959:3:88","nodeType":"YulTypedName","src":"19959:3:88","type":""}],"src":"19684:697:88"},{"body":{"nativeSrc":"20467:103:88","nodeType":"YulBlock","src":"20467:103:88","statements":[{"body":{"nativeSrc":"20513:16:88","nodeType":"YulBlock","src":"20513:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20522:1:88","nodeType":"YulLiteral","src":"20522:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"20525:1:88","nodeType":"YulLiteral","src":"20525:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20515:6:88","nodeType":"YulIdentifier","src":"20515:6:88"},"nativeSrc":"20515:12:88","nodeType":"YulFunctionCall","src":"20515:12:88"},"nativeSrc":"20515:12:88","nodeType":"YulExpressionStatement","src":"20515:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20488:7:88","nodeType":"YulIdentifier","src":"20488:7:88"},{"name":"headStart","nativeSrc":"20497:9:88","nodeType":"YulIdentifier","src":"20497:9:88"}],"functionName":{"name":"sub","nativeSrc":"20484:3:88","nodeType":"YulIdentifier","src":"20484:3:88"},"nativeSrc":"20484:23:88","nodeType":"YulFunctionCall","src":"20484:23:88"},{"kind":"number","nativeSrc":"20509:2:88","nodeType":"YulLiteral","src":"20509:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20480:3:88","nodeType":"YulIdentifier","src":"20480:3:88"},"nativeSrc":"20480:32:88","nodeType":"YulFunctionCall","src":"20480:32:88"},"nativeSrc":"20477:52:88","nodeType":"YulIf","src":"20477:52:88"},{"nativeSrc":"20538:26:88","nodeType":"YulAssignment","src":"20538:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20554:9:88","nodeType":"YulIdentifier","src":"20554:9:88"}],"functionName":{"name":"mload","nativeSrc":"20548:5:88","nodeType":"YulIdentifier","src":"20548:5:88"},"nativeSrc":"20548:16:88","nodeType":"YulFunctionCall","src":"20548:16:88"},"variableNames":[{"name":"value0","nativeSrc":"20538:6:88","nodeType":"YulIdentifier","src":"20538:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"20386:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20433:9:88","nodeType":"YulTypedName","src":"20433:9:88","type":""},{"name":"dataEnd","nativeSrc":"20444:7:88","nodeType":"YulTypedName","src":"20444:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20456:6:88","nodeType":"YulTypedName","src":"20456:6:88","type":""}],"src":"20386:184:88"},{"body":{"nativeSrc":"20749:236:88","nodeType":"YulBlock","src":"20749:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20766:9:88","nodeType":"YulIdentifier","src":"20766:9:88"},{"kind":"number","nativeSrc":"20777:2:88","nodeType":"YulLiteral","src":"20777:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20759:6:88","nodeType":"YulIdentifier","src":"20759:6:88"},"nativeSrc":"20759:21:88","nodeType":"YulFunctionCall","src":"20759:21:88"},"nativeSrc":"20759:21:88","nodeType":"YulExpressionStatement","src":"20759:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20800:9:88","nodeType":"YulIdentifier","src":"20800:9:88"},{"kind":"number","nativeSrc":"20811:2:88","nodeType":"YulLiteral","src":"20811:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20796:3:88","nodeType":"YulIdentifier","src":"20796:3:88"},"nativeSrc":"20796:18:88","nodeType":"YulFunctionCall","src":"20796:18:88"},{"kind":"number","nativeSrc":"20816:2:88","nodeType":"YulLiteral","src":"20816:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"20789:6:88","nodeType":"YulIdentifier","src":"20789:6:88"},"nativeSrc":"20789:30:88","nodeType":"YulFunctionCall","src":"20789:30:88"},"nativeSrc":"20789:30:88","nodeType":"YulExpressionStatement","src":"20789:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20839:9:88","nodeType":"YulIdentifier","src":"20839:9:88"},{"kind":"number","nativeSrc":"20850:2:88","nodeType":"YulLiteral","src":"20850:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20835:3:88","nodeType":"YulIdentifier","src":"20835:3:88"},"nativeSrc":"20835:18:88","nodeType":"YulFunctionCall","src":"20835:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"20855:34:88","nodeType":"YulLiteral","src":"20855:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"20828:6:88","nodeType":"YulIdentifier","src":"20828:6:88"},"nativeSrc":"20828:62:88","nodeType":"YulFunctionCall","src":"20828:62:88"},"nativeSrc":"20828:62:88","nodeType":"YulExpressionStatement","src":"20828:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20910:9:88","nodeType":"YulIdentifier","src":"20910:9:88"},{"kind":"number","nativeSrc":"20921:2:88","nodeType":"YulLiteral","src":"20921:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20906:3:88","nodeType":"YulIdentifier","src":"20906:3:88"},"nativeSrc":"20906:18:88","nodeType":"YulFunctionCall","src":"20906:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"20926:16:88","nodeType":"YulLiteral","src":"20926:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"20899:6:88","nodeType":"YulIdentifier","src":"20899:6:88"},"nativeSrc":"20899:44:88","nodeType":"YulFunctionCall","src":"20899:44:88"},"nativeSrc":"20899:44:88","nodeType":"YulExpressionStatement","src":"20899:44:88"},{"nativeSrc":"20952:27:88","nodeType":"YulAssignment","src":"20952:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20964:9:88","nodeType":"YulIdentifier","src":"20964:9:88"},{"kind":"number","nativeSrc":"20975:3:88","nodeType":"YulLiteral","src":"20975:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20960:3:88","nodeType":"YulIdentifier","src":"20960:3:88"},"nativeSrc":"20960:19:88","nodeType":"YulFunctionCall","src":"20960:19:88"},"variableNames":[{"name":"tail","nativeSrc":"20952:4:88","nodeType":"YulIdentifier","src":"20952:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20575:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20726:9:88","nodeType":"YulTypedName","src":"20726:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20740:4:88","nodeType":"YulTypedName","src":"20740:4:88","type":""}],"src":"20575:410:88"},{"body":{"nativeSrc":"21164:231:88","nodeType":"YulBlock","src":"21164:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21181:9:88","nodeType":"YulIdentifier","src":"21181:9:88"},{"kind":"number","nativeSrc":"21192:2:88","nodeType":"YulLiteral","src":"21192:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21174:6:88","nodeType":"YulIdentifier","src":"21174:6:88"},"nativeSrc":"21174:21:88","nodeType":"YulFunctionCall","src":"21174:21:88"},"nativeSrc":"21174:21:88","nodeType":"YulExpressionStatement","src":"21174:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21215:9:88","nodeType":"YulIdentifier","src":"21215:9:88"},{"kind":"number","nativeSrc":"21226:2:88","nodeType":"YulLiteral","src":"21226:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21211:3:88","nodeType":"YulIdentifier","src":"21211:3:88"},"nativeSrc":"21211:18:88","nodeType":"YulFunctionCall","src":"21211:18:88"},{"kind":"number","nativeSrc":"21231:2:88","nodeType":"YulLiteral","src":"21231:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"21204:6:88","nodeType":"YulIdentifier","src":"21204:6:88"},"nativeSrc":"21204:30:88","nodeType":"YulFunctionCall","src":"21204:30:88"},"nativeSrc":"21204:30:88","nodeType":"YulExpressionStatement","src":"21204:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21254:9:88","nodeType":"YulIdentifier","src":"21254:9:88"},{"kind":"number","nativeSrc":"21265:2:88","nodeType":"YulLiteral","src":"21265:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21250:3:88","nodeType":"YulIdentifier","src":"21250:3:88"},"nativeSrc":"21250:18:88","nodeType":"YulFunctionCall","src":"21250:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"21270:34:88","nodeType":"YulLiteral","src":"21270:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"21243:6:88","nodeType":"YulIdentifier","src":"21243:6:88"},"nativeSrc":"21243:62:88","nodeType":"YulFunctionCall","src":"21243:62:88"},"nativeSrc":"21243:62:88","nodeType":"YulExpressionStatement","src":"21243:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21325:9:88","nodeType":"YulIdentifier","src":"21325:9:88"},{"kind":"number","nativeSrc":"21336:2:88","nodeType":"YulLiteral","src":"21336:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21321:3:88","nodeType":"YulIdentifier","src":"21321:3:88"},"nativeSrc":"21321:18:88","nodeType":"YulFunctionCall","src":"21321:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"21341:11:88","nodeType":"YulLiteral","src":"21341:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"21314:6:88","nodeType":"YulIdentifier","src":"21314:6:88"},"nativeSrc":"21314:39:88","nodeType":"YulFunctionCall","src":"21314:39:88"},"nativeSrc":"21314:39:88","nodeType":"YulExpressionStatement","src":"21314:39:88"},{"nativeSrc":"21362:27:88","nodeType":"YulAssignment","src":"21362:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21374:9:88","nodeType":"YulIdentifier","src":"21374:9:88"},{"kind":"number","nativeSrc":"21385:3:88","nodeType":"YulLiteral","src":"21385:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21370:3:88","nodeType":"YulIdentifier","src":"21370:3:88"},"nativeSrc":"21370:19:88","nodeType":"YulFunctionCall","src":"21370:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21362:4:88","nodeType":"YulIdentifier","src":"21362:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20990:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21141:9:88","nodeType":"YulTypedName","src":"21141:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21155:4:88","nodeType":"YulTypedName","src":"21155:4:88","type":""}],"src":"20990:405:88"},{"body":{"nativeSrc":"21574:233:88","nodeType":"YulBlock","src":"21574:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21591:9:88","nodeType":"YulIdentifier","src":"21591:9:88"},{"kind":"number","nativeSrc":"21602:2:88","nodeType":"YulLiteral","src":"21602:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21584:6:88","nodeType":"YulIdentifier","src":"21584:6:88"},"nativeSrc":"21584:21:88","nodeType":"YulFunctionCall","src":"21584:21:88"},"nativeSrc":"21584:21:88","nodeType":"YulExpressionStatement","src":"21584:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21625:9:88","nodeType":"YulIdentifier","src":"21625:9:88"},{"kind":"number","nativeSrc":"21636:2:88","nodeType":"YulLiteral","src":"21636:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21621:3:88","nodeType":"YulIdentifier","src":"21621:3:88"},"nativeSrc":"21621:18:88","nodeType":"YulFunctionCall","src":"21621:18:88"},{"kind":"number","nativeSrc":"21641:2:88","nodeType":"YulLiteral","src":"21641:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"21614:6:88","nodeType":"YulIdentifier","src":"21614:6:88"},"nativeSrc":"21614:30:88","nodeType":"YulFunctionCall","src":"21614:30:88"},"nativeSrc":"21614:30:88","nodeType":"YulExpressionStatement","src":"21614:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21664:9:88","nodeType":"YulIdentifier","src":"21664:9:88"},{"kind":"number","nativeSrc":"21675:2:88","nodeType":"YulLiteral","src":"21675:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21660:3:88","nodeType":"YulIdentifier","src":"21660:3:88"},"nativeSrc":"21660:18:88","nodeType":"YulFunctionCall","src":"21660:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"21680:34:88","nodeType":"YulLiteral","src":"21680:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"21653:6:88","nodeType":"YulIdentifier","src":"21653:6:88"},"nativeSrc":"21653:62:88","nodeType":"YulFunctionCall","src":"21653:62:88"},"nativeSrc":"21653:62:88","nodeType":"YulExpressionStatement","src":"21653:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21735:9:88","nodeType":"YulIdentifier","src":"21735:9:88"},{"kind":"number","nativeSrc":"21746:2:88","nodeType":"YulLiteral","src":"21746:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21731:3:88","nodeType":"YulIdentifier","src":"21731:3:88"},"nativeSrc":"21731:18:88","nodeType":"YulFunctionCall","src":"21731:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"21751:13:88","nodeType":"YulLiteral","src":"21751:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"21724:6:88","nodeType":"YulIdentifier","src":"21724:6:88"},"nativeSrc":"21724:41:88","nodeType":"YulFunctionCall","src":"21724:41:88"},"nativeSrc":"21724:41:88","nodeType":"YulExpressionStatement","src":"21724:41:88"},{"nativeSrc":"21774:27:88","nodeType":"YulAssignment","src":"21774:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21786:9:88","nodeType":"YulIdentifier","src":"21786:9:88"},{"kind":"number","nativeSrc":"21797:3:88","nodeType":"YulLiteral","src":"21797:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21782:3:88","nodeType":"YulIdentifier","src":"21782:3:88"},"nativeSrc":"21782:19:88","nodeType":"YulFunctionCall","src":"21782:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21774:4:88","nodeType":"YulIdentifier","src":"21774:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21400:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21551:9:88","nodeType":"YulTypedName","src":"21551:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21565:4:88","nodeType":"YulTypedName","src":"21565:4:88","type":""}],"src":"21400:407:88"},{"body":{"nativeSrc":"21891:194:88","nodeType":"YulBlock","src":"21891:194:88","statements":[{"body":{"nativeSrc":"21937:16:88","nodeType":"YulBlock","src":"21937:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21946:1:88","nodeType":"YulLiteral","src":"21946:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"21949:1:88","nodeType":"YulLiteral","src":"21949:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21939:6:88","nodeType":"YulIdentifier","src":"21939:6:88"},"nativeSrc":"21939:12:88","nodeType":"YulFunctionCall","src":"21939:12:88"},"nativeSrc":"21939:12:88","nodeType":"YulExpressionStatement","src":"21939:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21912:7:88","nodeType":"YulIdentifier","src":"21912:7:88"},{"name":"headStart","nativeSrc":"21921:9:88","nodeType":"YulIdentifier","src":"21921:9:88"}],"functionName":{"name":"sub","nativeSrc":"21908:3:88","nodeType":"YulIdentifier","src":"21908:3:88"},"nativeSrc":"21908:23:88","nodeType":"YulFunctionCall","src":"21908:23:88"},{"kind":"number","nativeSrc":"21933:2:88","nodeType":"YulLiteral","src":"21933:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21904:3:88","nodeType":"YulIdentifier","src":"21904:3:88"},"nativeSrc":"21904:32:88","nodeType":"YulFunctionCall","src":"21904:32:88"},"nativeSrc":"21901:52:88","nodeType":"YulIf","src":"21901:52:88"},{"nativeSrc":"21962:29:88","nodeType":"YulVariableDeclaration","src":"21962:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21981:9:88","nodeType":"YulIdentifier","src":"21981:9:88"}],"functionName":{"name":"mload","nativeSrc":"21975:5:88","nodeType":"YulIdentifier","src":"21975:5:88"},"nativeSrc":"21975:16:88","nodeType":"YulFunctionCall","src":"21975:16:88"},"variables":[{"name":"value","nativeSrc":"21966:5:88","nodeType":"YulTypedName","src":"21966:5:88","type":""}]},{"body":{"nativeSrc":"22039:16:88","nodeType":"YulBlock","src":"22039:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22048:1:88","nodeType":"YulLiteral","src":"22048:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"22051:1:88","nodeType":"YulLiteral","src":"22051:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22041:6:88","nodeType":"YulIdentifier","src":"22041:6:88"},"nativeSrc":"22041:12:88","nodeType":"YulFunctionCall","src":"22041:12:88"},"nativeSrc":"22041:12:88","nodeType":"YulExpressionStatement","src":"22041:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22013:5:88","nodeType":"YulIdentifier","src":"22013:5:88"},{"arguments":[{"name":"value","nativeSrc":"22024:5:88","nodeType":"YulIdentifier","src":"22024:5:88"},{"kind":"number","nativeSrc":"22031:4:88","nodeType":"YulLiteral","src":"22031:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"22020:3:88","nodeType":"YulIdentifier","src":"22020:3:88"},"nativeSrc":"22020:16:88","nodeType":"YulFunctionCall","src":"22020:16:88"}],"functionName":{"name":"eq","nativeSrc":"22010:2:88","nodeType":"YulIdentifier","src":"22010:2:88"},"nativeSrc":"22010:27:88","nodeType":"YulFunctionCall","src":"22010:27:88"}],"functionName":{"name":"iszero","nativeSrc":"22003:6:88","nodeType":"YulIdentifier","src":"22003:6:88"},"nativeSrc":"22003:35:88","nodeType":"YulFunctionCall","src":"22003:35:88"},"nativeSrc":"22000:55:88","nodeType":"YulIf","src":"22000:55:88"},{"nativeSrc":"22064:15:88","nodeType":"YulAssignment","src":"22064:15:88","value":{"name":"value","nativeSrc":"22074:5:88","nodeType":"YulIdentifier","src":"22074:5:88"},"variableNames":[{"name":"value0","nativeSrc":"22064:6:88","nodeType":"YulIdentifier","src":"22064:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"21812:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21857:9:88","nodeType":"YulTypedName","src":"21857:9:88","type":""},{"name":"dataEnd","nativeSrc":"21868:7:88","nodeType":"YulTypedName","src":"21868:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21880:6:88","nodeType":"YulTypedName","src":"21880:6:88","type":""}],"src":"21812:273:88"},{"body":{"nativeSrc":"22137:104:88","nodeType":"YulBlock","src":"22137:104:88","statements":[{"nativeSrc":"22147:39:88","nodeType":"YulAssignment","src":"22147:39:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"22163:1:88","nodeType":"YulIdentifier","src":"22163:1:88"},{"kind":"number","nativeSrc":"22166:4:88","nodeType":"YulLiteral","src":"22166:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"22159:3:88","nodeType":"YulIdentifier","src":"22159:3:88"},"nativeSrc":"22159:12:88","nodeType":"YulFunctionCall","src":"22159:12:88"},{"arguments":[{"name":"y","nativeSrc":"22177:1:88","nodeType":"YulIdentifier","src":"22177:1:88"},{"kind":"number","nativeSrc":"22180:4:88","nodeType":"YulLiteral","src":"22180:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"22173:3:88","nodeType":"YulIdentifier","src":"22173:3:88"},"nativeSrc":"22173:12:88","nodeType":"YulFunctionCall","src":"22173:12:88"}],"functionName":{"name":"sub","nativeSrc":"22155:3:88","nodeType":"YulIdentifier","src":"22155:3:88"},"nativeSrc":"22155:31:88","nodeType":"YulFunctionCall","src":"22155:31:88"},"variableNames":[{"name":"diff","nativeSrc":"22147:4:88","nodeType":"YulIdentifier","src":"22147:4:88"}]},{"body":{"nativeSrc":"22213:22:88","nodeType":"YulBlock","src":"22213:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22215:16:88","nodeType":"YulIdentifier","src":"22215:16:88"},"nativeSrc":"22215:18:88","nodeType":"YulFunctionCall","src":"22215:18:88"},"nativeSrc":"22215:18:88","nodeType":"YulExpressionStatement","src":"22215:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"22201:4:88","nodeType":"YulIdentifier","src":"22201:4:88"},{"kind":"number","nativeSrc":"22207:4:88","nodeType":"YulLiteral","src":"22207:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"22198:2:88","nodeType":"YulIdentifier","src":"22198:2:88"},"nativeSrc":"22198:14:88","nodeType":"YulFunctionCall","src":"22198:14:88"},"nativeSrc":"22195:40:88","nodeType":"YulIf","src":"22195:40:88"}]},"name":"checked_sub_t_uint8","nativeSrc":"22090:151:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22119:1:88","nodeType":"YulTypedName","src":"22119:1:88","type":""},{"name":"y","nativeSrc":"22122:1:88","nodeType":"YulTypedName","src":"22122:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"22128:4:88","nodeType":"YulTypedName","src":"22128:4:88","type":""}],"src":"22090:151:88"},{"body":{"nativeSrc":"22315:306:88","nodeType":"YulBlock","src":"22315:306:88","statements":[{"nativeSrc":"22325:10:88","nodeType":"YulAssignment","src":"22325:10:88","value":{"kind":"number","nativeSrc":"22334:1:88","nodeType":"YulLiteral","src":"22334:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"22325:5:88","nodeType":"YulIdentifier","src":"22325:5:88"}]},{"nativeSrc":"22344:13:88","nodeType":"YulAssignment","src":"22344:13:88","value":{"name":"_base","nativeSrc":"22352:5:88","nodeType":"YulIdentifier","src":"22352:5:88"},"variableNames":[{"name":"base","nativeSrc":"22344:4:88","nodeType":"YulIdentifier","src":"22344:4:88"}]},{"body":{"nativeSrc":"22402:213:88","nodeType":"YulBlock","src":"22402:213:88","statements":[{"body":{"nativeSrc":"22444:22:88","nodeType":"YulBlock","src":"22444:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22446:16:88","nodeType":"YulIdentifier","src":"22446:16:88"},"nativeSrc":"22446:18:88","nodeType":"YulFunctionCall","src":"22446:18:88"},"nativeSrc":"22446:18:88","nodeType":"YulExpressionStatement","src":"22446:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"22422:4:88","nodeType":"YulIdentifier","src":"22422:4:88"},{"arguments":[{"name":"max","nativeSrc":"22432:3:88","nodeType":"YulIdentifier","src":"22432:3:88"},{"name":"base","nativeSrc":"22437:4:88","nodeType":"YulIdentifier","src":"22437:4:88"}],"functionName":{"name":"div","nativeSrc":"22428:3:88","nodeType":"YulIdentifier","src":"22428:3:88"},"nativeSrc":"22428:14:88","nodeType":"YulFunctionCall","src":"22428:14:88"}],"functionName":{"name":"gt","nativeSrc":"22419:2:88","nodeType":"YulIdentifier","src":"22419:2:88"},"nativeSrc":"22419:24:88","nodeType":"YulFunctionCall","src":"22419:24:88"},"nativeSrc":"22416:50:88","nodeType":"YulIf","src":"22416:50:88"},{"body":{"nativeSrc":"22499:29:88","nodeType":"YulBlock","src":"22499:29:88","statements":[{"nativeSrc":"22501:25:88","nodeType":"YulAssignment","src":"22501:25:88","value":{"arguments":[{"name":"power","nativeSrc":"22514:5:88","nodeType":"YulIdentifier","src":"22514:5:88"},{"name":"base","nativeSrc":"22521:4:88","nodeType":"YulIdentifier","src":"22521:4:88"}],"functionName":{"name":"mul","nativeSrc":"22510:3:88","nodeType":"YulIdentifier","src":"22510:3:88"},"nativeSrc":"22510:16:88","nodeType":"YulFunctionCall","src":"22510:16:88"},"variableNames":[{"name":"power","nativeSrc":"22501:5:88","nodeType":"YulIdentifier","src":"22501:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22486:8:88","nodeType":"YulIdentifier","src":"22486:8:88"},{"kind":"number","nativeSrc":"22496:1:88","nodeType":"YulLiteral","src":"22496:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"22482:3:88","nodeType":"YulIdentifier","src":"22482:3:88"},"nativeSrc":"22482:16:88","nodeType":"YulFunctionCall","src":"22482:16:88"},"nativeSrc":"22479:49:88","nodeType":"YulIf","src":"22479:49:88"},{"nativeSrc":"22541:23:88","nodeType":"YulAssignment","src":"22541:23:88","value":{"arguments":[{"name":"base","nativeSrc":"22553:4:88","nodeType":"YulIdentifier","src":"22553:4:88"},{"name":"base","nativeSrc":"22559:4:88","nodeType":"YulIdentifier","src":"22559:4:88"}],"functionName":{"name":"mul","nativeSrc":"22549:3:88","nodeType":"YulIdentifier","src":"22549:3:88"},"nativeSrc":"22549:15:88","nodeType":"YulFunctionCall","src":"22549:15:88"},"variableNames":[{"name":"base","nativeSrc":"22541:4:88","nodeType":"YulIdentifier","src":"22541:4:88"}]},{"nativeSrc":"22577:28:88","nodeType":"YulAssignment","src":"22577:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"22593:1:88","nodeType":"YulLiteral","src":"22593:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"22596:8:88","nodeType":"YulIdentifier","src":"22596:8:88"}],"functionName":{"name":"shr","nativeSrc":"22589:3:88","nodeType":"YulIdentifier","src":"22589:3:88"},"nativeSrc":"22589:16:88","nodeType":"YulFunctionCall","src":"22589:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"22577:8:88","nodeType":"YulIdentifier","src":"22577:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22377:8:88","nodeType":"YulIdentifier","src":"22377:8:88"},{"kind":"number","nativeSrc":"22387:1:88","nodeType":"YulLiteral","src":"22387:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"22374:2:88","nodeType":"YulIdentifier","src":"22374:2:88"},"nativeSrc":"22374:15:88","nodeType":"YulFunctionCall","src":"22374:15:88"},"nativeSrc":"22366:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"22390:3:88","nodeType":"YulBlock","src":"22390:3:88","statements":[]},"pre":{"nativeSrc":"22370:3:88","nodeType":"YulBlock","src":"22370:3:88","statements":[]},"src":"22366:249:88"}]},"name":"checked_exp_helper","nativeSrc":"22246:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"22274:5:88","nodeType":"YulTypedName","src":"22274:5:88","type":""},{"name":"exponent","nativeSrc":"22281:8:88","nodeType":"YulTypedName","src":"22281:8:88","type":""},{"name":"max","nativeSrc":"22291:3:88","nodeType":"YulTypedName","src":"22291:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"22299:5:88","nodeType":"YulTypedName","src":"22299:5:88","type":""},{"name":"base","nativeSrc":"22306:4:88","nodeType":"YulTypedName","src":"22306:4:88","type":""}],"src":"22246:375:88"},{"body":{"nativeSrc":"22685:843:88","nodeType":"YulBlock","src":"22685:843:88","statements":[{"body":{"nativeSrc":"22723:52:88","nodeType":"YulBlock","src":"22723:52:88","statements":[{"nativeSrc":"22737:10:88","nodeType":"YulAssignment","src":"22737:10:88","value":{"kind":"number","nativeSrc":"22746:1:88","nodeType":"YulLiteral","src":"22746:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"22737:5:88","nodeType":"YulIdentifier","src":"22737:5:88"}]},{"nativeSrc":"22760:5:88","nodeType":"YulLeave","src":"22760:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22705:8:88","nodeType":"YulIdentifier","src":"22705:8:88"}],"functionName":{"name":"iszero","nativeSrc":"22698:6:88","nodeType":"YulIdentifier","src":"22698:6:88"},"nativeSrc":"22698:16:88","nodeType":"YulFunctionCall","src":"22698:16:88"},"nativeSrc":"22695:80:88","nodeType":"YulIf","src":"22695:80:88"},{"body":{"nativeSrc":"22808:52:88","nodeType":"YulBlock","src":"22808:52:88","statements":[{"nativeSrc":"22822:10:88","nodeType":"YulAssignment","src":"22822:10:88","value":{"kind":"number","nativeSrc":"22831:1:88","nodeType":"YulLiteral","src":"22831:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"22822:5:88","nodeType":"YulIdentifier","src":"22822:5:88"}]},{"nativeSrc":"22845:5:88","nodeType":"YulLeave","src":"22845:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"22794:4:88","nodeType":"YulIdentifier","src":"22794:4:88"}],"functionName":{"name":"iszero","nativeSrc":"22787:6:88","nodeType":"YulIdentifier","src":"22787:6:88"},"nativeSrc":"22787:12:88","nodeType":"YulFunctionCall","src":"22787:12:88"},"nativeSrc":"22784:76:88","nodeType":"YulIf","src":"22784:76:88"},{"cases":[{"body":{"nativeSrc":"22896:52:88","nodeType":"YulBlock","src":"22896:52:88","statements":[{"nativeSrc":"22910:10:88","nodeType":"YulAssignment","src":"22910:10:88","value":{"kind":"number","nativeSrc":"22919:1:88","nodeType":"YulLiteral","src":"22919:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"22910:5:88","nodeType":"YulIdentifier","src":"22910:5:88"}]},{"nativeSrc":"22933:5:88","nodeType":"YulLeave","src":"22933:5:88"}]},"nativeSrc":"22889:59:88","nodeType":"YulCase","src":"22889:59:88","value":{"kind":"number","nativeSrc":"22894:1:88","nodeType":"YulLiteral","src":"22894:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"22964:167:88","nodeType":"YulBlock","src":"22964:167:88","statements":[{"body":{"nativeSrc":"22999:22:88","nodeType":"YulBlock","src":"22999:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23001:16:88","nodeType":"YulIdentifier","src":"23001:16:88"},"nativeSrc":"23001:18:88","nodeType":"YulFunctionCall","src":"23001:18:88"},"nativeSrc":"23001:18:88","nodeType":"YulExpressionStatement","src":"23001:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22984:8:88","nodeType":"YulIdentifier","src":"22984:8:88"},{"kind":"number","nativeSrc":"22994:3:88","nodeType":"YulLiteral","src":"22994:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"22981:2:88","nodeType":"YulIdentifier","src":"22981:2:88"},"nativeSrc":"22981:17:88","nodeType":"YulFunctionCall","src":"22981:17:88"},"nativeSrc":"22978:43:88","nodeType":"YulIf","src":"22978:43:88"},{"nativeSrc":"23034:25:88","nodeType":"YulAssignment","src":"23034:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"23047:8:88","nodeType":"YulIdentifier","src":"23047:8:88"},{"kind":"number","nativeSrc":"23057:1:88","nodeType":"YulLiteral","src":"23057:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"23043:3:88","nodeType":"YulIdentifier","src":"23043:3:88"},"nativeSrc":"23043:16:88","nodeType":"YulFunctionCall","src":"23043:16:88"},"variableNames":[{"name":"power","nativeSrc":"23034:5:88","nodeType":"YulIdentifier","src":"23034:5:88"}]},{"nativeSrc":"23072:11:88","nodeType":"YulVariableDeclaration","src":"23072:11:88","value":{"kind":"number","nativeSrc":"23082:1:88","nodeType":"YulLiteral","src":"23082:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"23076:2:88","nodeType":"YulTypedName","src":"23076:2:88","type":""}]},{"nativeSrc":"23096:7:88","nodeType":"YulAssignment","src":"23096:7:88","value":{"kind":"number","nativeSrc":"23102:1:88","nodeType":"YulLiteral","src":"23102:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"23096:2:88","nodeType":"YulIdentifier","src":"23096:2:88"}]},{"nativeSrc":"23116:5:88","nodeType":"YulLeave","src":"23116:5:88"}]},"nativeSrc":"22957:174:88","nodeType":"YulCase","src":"22957:174:88","value":{"kind":"number","nativeSrc":"22962:1:88","nodeType":"YulLiteral","src":"22962:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"22876:4:88","nodeType":"YulIdentifier","src":"22876:4:88"},"nativeSrc":"22869:262:88","nodeType":"YulSwitch","src":"22869:262:88"},{"body":{"nativeSrc":"23229:114:88","nodeType":"YulBlock","src":"23229:114:88","statements":[{"nativeSrc":"23243:28:88","nodeType":"YulAssignment","src":"23243:28:88","value":{"arguments":[{"name":"base","nativeSrc":"23256:4:88","nodeType":"YulIdentifier","src":"23256:4:88"},{"name":"exponent","nativeSrc":"23262:8:88","nodeType":"YulIdentifier","src":"23262:8:88"}],"functionName":{"name":"exp","nativeSrc":"23252:3:88","nodeType":"YulIdentifier","src":"23252:3:88"},"nativeSrc":"23252:19:88","nodeType":"YulFunctionCall","src":"23252:19:88"},"variableNames":[{"name":"power","nativeSrc":"23243:5:88","nodeType":"YulIdentifier","src":"23243:5:88"}]},{"nativeSrc":"23284:11:88","nodeType":"YulVariableDeclaration","src":"23284:11:88","value":{"kind":"number","nativeSrc":"23294:1:88","nodeType":"YulLiteral","src":"23294:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"23288:2:88","nodeType":"YulTypedName","src":"23288:2:88","type":""}]},{"nativeSrc":"23308:7:88","nodeType":"YulAssignment","src":"23308:7:88","value":{"kind":"number","nativeSrc":"23314:1:88","nodeType":"YulLiteral","src":"23314:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"23308:2:88","nodeType":"YulIdentifier","src":"23308:2:88"}]},{"nativeSrc":"23328:5:88","nodeType":"YulLeave","src":"23328:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"23153:4:88","nodeType":"YulIdentifier","src":"23153:4:88"},{"kind":"number","nativeSrc":"23159:2:88","nodeType":"YulLiteral","src":"23159:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"23150:2:88","nodeType":"YulIdentifier","src":"23150:2:88"},"nativeSrc":"23150:12:88","nodeType":"YulFunctionCall","src":"23150:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"23167:8:88","nodeType":"YulIdentifier","src":"23167:8:88"},{"kind":"number","nativeSrc":"23177:2:88","nodeType":"YulLiteral","src":"23177:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"23164:2:88","nodeType":"YulIdentifier","src":"23164:2:88"},"nativeSrc":"23164:16:88","nodeType":"YulFunctionCall","src":"23164:16:88"}],"functionName":{"name":"and","nativeSrc":"23146:3:88","nodeType":"YulIdentifier","src":"23146:3:88"},"nativeSrc":"23146:35:88","nodeType":"YulFunctionCall","src":"23146:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"23190:4:88","nodeType":"YulIdentifier","src":"23190:4:88"},{"kind":"number","nativeSrc":"23196:3:88","nodeType":"YulLiteral","src":"23196:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"23187:2:88","nodeType":"YulIdentifier","src":"23187:2:88"},"nativeSrc":"23187:13:88","nodeType":"YulFunctionCall","src":"23187:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"23205:8:88","nodeType":"YulIdentifier","src":"23205:8:88"},{"kind":"number","nativeSrc":"23215:2:88","nodeType":"YulLiteral","src":"23215:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"23202:2:88","nodeType":"YulIdentifier","src":"23202:2:88"},"nativeSrc":"23202:16:88","nodeType":"YulFunctionCall","src":"23202:16:88"}],"functionName":{"name":"and","nativeSrc":"23183:3:88","nodeType":"YulIdentifier","src":"23183:3:88"},"nativeSrc":"23183:36:88","nodeType":"YulFunctionCall","src":"23183:36:88"}],"functionName":{"name":"or","nativeSrc":"23143:2:88","nodeType":"YulIdentifier","src":"23143:2:88"},"nativeSrc":"23143:77:88","nodeType":"YulFunctionCall","src":"23143:77:88"},"nativeSrc":"23140:203:88","nodeType":"YulIf","src":"23140:203:88"},{"nativeSrc":"23352:65:88","nodeType":"YulVariableDeclaration","src":"23352:65:88","value":{"arguments":[{"name":"base","nativeSrc":"23394:4:88","nodeType":"YulIdentifier","src":"23394:4:88"},{"name":"exponent","nativeSrc":"23400:8:88","nodeType":"YulIdentifier","src":"23400:8:88"},{"arguments":[{"kind":"number","nativeSrc":"23414:1:88","nodeType":"YulLiteral","src":"23414:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23410:3:88","nodeType":"YulIdentifier","src":"23410:3:88"},"nativeSrc":"23410:6:88","nodeType":"YulFunctionCall","src":"23410:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"23375:18:88","nodeType":"YulIdentifier","src":"23375:18:88"},"nativeSrc":"23375:42:88","nodeType":"YulFunctionCall","src":"23375:42:88"},"variables":[{"name":"power_1","nativeSrc":"23356:7:88","nodeType":"YulTypedName","src":"23356:7:88","type":""},{"name":"base_1","nativeSrc":"23365:6:88","nodeType":"YulTypedName","src":"23365:6:88","type":""}]},{"body":{"nativeSrc":"23462:22:88","nodeType":"YulBlock","src":"23462:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23464:16:88","nodeType":"YulIdentifier","src":"23464:16:88"},"nativeSrc":"23464:18:88","nodeType":"YulFunctionCall","src":"23464:18:88"},"nativeSrc":"23464:18:88","nodeType":"YulExpressionStatement","src":"23464:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"23432:7:88","nodeType":"YulIdentifier","src":"23432:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23449:1:88","nodeType":"YulLiteral","src":"23449:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23445:3:88","nodeType":"YulIdentifier","src":"23445:3:88"},"nativeSrc":"23445:6:88","nodeType":"YulFunctionCall","src":"23445:6:88"},{"name":"base_1","nativeSrc":"23453:6:88","nodeType":"YulIdentifier","src":"23453:6:88"}],"functionName":{"name":"div","nativeSrc":"23441:3:88","nodeType":"YulIdentifier","src":"23441:3:88"},"nativeSrc":"23441:19:88","nodeType":"YulFunctionCall","src":"23441:19:88"}],"functionName":{"name":"gt","nativeSrc":"23429:2:88","nodeType":"YulIdentifier","src":"23429:2:88"},"nativeSrc":"23429:32:88","nodeType":"YulFunctionCall","src":"23429:32:88"},"nativeSrc":"23426:58:88","nodeType":"YulIf","src":"23426:58:88"},{"nativeSrc":"23493:29:88","nodeType":"YulAssignment","src":"23493:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"23506:7:88","nodeType":"YulIdentifier","src":"23506:7:88"},{"name":"base_1","nativeSrc":"23515:6:88","nodeType":"YulIdentifier","src":"23515:6:88"}],"functionName":{"name":"mul","nativeSrc":"23502:3:88","nodeType":"YulIdentifier","src":"23502:3:88"},"nativeSrc":"23502:20:88","nodeType":"YulFunctionCall","src":"23502:20:88"},"variableNames":[{"name":"power","nativeSrc":"23493:5:88","nodeType":"YulIdentifier","src":"23493:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"22626:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"22656:4:88","nodeType":"YulTypedName","src":"22656:4:88","type":""},{"name":"exponent","nativeSrc":"22662:8:88","nodeType":"YulTypedName","src":"22662:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"22675:5:88","nodeType":"YulTypedName","src":"22675:5:88","type":""}],"src":"22626:902:88"},{"body":{"nativeSrc":"23601:72:88","nodeType":"YulBlock","src":"23601:72:88","statements":[{"nativeSrc":"23611:56:88","nodeType":"YulAssignment","src":"23611:56:88","value":{"arguments":[{"name":"base","nativeSrc":"23641:4:88","nodeType":"YulIdentifier","src":"23641:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"23651:8:88","nodeType":"YulIdentifier","src":"23651:8:88"},{"kind":"number","nativeSrc":"23661:4:88","nodeType":"YulLiteral","src":"23661:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"23647:3:88","nodeType":"YulIdentifier","src":"23647:3:88"},"nativeSrc":"23647:19:88","nodeType":"YulFunctionCall","src":"23647:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"23620:20:88","nodeType":"YulIdentifier","src":"23620:20:88"},"nativeSrc":"23620:47:88","nodeType":"YulFunctionCall","src":"23620:47:88"},"variableNames":[{"name":"power","nativeSrc":"23611:5:88","nodeType":"YulIdentifier","src":"23611:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"23533:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"23572:4:88","nodeType":"YulTypedName","src":"23572:4:88","type":""},{"name":"exponent","nativeSrc":"23578:8:88","nodeType":"YulTypedName","src":"23578:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"23591:5:88","nodeType":"YulTypedName","src":"23591:5:88","type":""}],"src":"23533:140:88"},{"body":{"nativeSrc":"23730:116:88","nodeType":"YulBlock","src":"23730:116:88","statements":[{"nativeSrc":"23740:20:88","nodeType":"YulAssignment","src":"23740:20:88","value":{"arguments":[{"name":"x","nativeSrc":"23755:1:88","nodeType":"YulIdentifier","src":"23755:1:88"},{"name":"y","nativeSrc":"23758:1:88","nodeType":"YulIdentifier","src":"23758:1:88"}],"functionName":{"name":"mul","nativeSrc":"23751:3:88","nodeType":"YulIdentifier","src":"23751:3:88"},"nativeSrc":"23751:9:88","nodeType":"YulFunctionCall","src":"23751:9:88"},"variableNames":[{"name":"product","nativeSrc":"23740:7:88","nodeType":"YulIdentifier","src":"23740:7:88"}]},{"body":{"nativeSrc":"23818:22:88","nodeType":"YulBlock","src":"23818:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23820:16:88","nodeType":"YulIdentifier","src":"23820:16:88"},"nativeSrc":"23820:18:88","nodeType":"YulFunctionCall","src":"23820:18:88"},"nativeSrc":"23820:18:88","nodeType":"YulExpressionStatement","src":"23820:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"23789:1:88","nodeType":"YulIdentifier","src":"23789:1:88"}],"functionName":{"name":"iszero","nativeSrc":"23782:6:88","nodeType":"YulIdentifier","src":"23782:6:88"},"nativeSrc":"23782:9:88","nodeType":"YulFunctionCall","src":"23782:9:88"},{"arguments":[{"name":"y","nativeSrc":"23796:1:88","nodeType":"YulIdentifier","src":"23796:1:88"},{"arguments":[{"name":"product","nativeSrc":"23803:7:88","nodeType":"YulIdentifier","src":"23803:7:88"},{"name":"x","nativeSrc":"23812:1:88","nodeType":"YulIdentifier","src":"23812:1:88"}],"functionName":{"name":"div","nativeSrc":"23799:3:88","nodeType":"YulIdentifier","src":"23799:3:88"},"nativeSrc":"23799:15:88","nodeType":"YulFunctionCall","src":"23799:15:88"}],"functionName":{"name":"eq","nativeSrc":"23793:2:88","nodeType":"YulIdentifier","src":"23793:2:88"},"nativeSrc":"23793:22:88","nodeType":"YulFunctionCall","src":"23793:22:88"}],"functionName":{"name":"or","nativeSrc":"23779:2:88","nodeType":"YulIdentifier","src":"23779:2:88"},"nativeSrc":"23779:37:88","nodeType":"YulFunctionCall","src":"23779:37:88"}],"functionName":{"name":"iszero","nativeSrc":"23772:6:88","nodeType":"YulIdentifier","src":"23772:6:88"},"nativeSrc":"23772:45:88","nodeType":"YulFunctionCall","src":"23772:45:88"},"nativeSrc":"23769:71:88","nodeType":"YulIf","src":"23769:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"23678:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"23709:1:88","nodeType":"YulTypedName","src":"23709:1:88","type":""},{"name":"y","nativeSrc":"23712:1:88","nodeType":"YulTypedName","src":"23712:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"23718:7:88","nodeType":"YulTypedName","src":"23718:7:88","type":""}],"src":"23678:168:88"},{"body":{"nativeSrc":"23883:95:88","nodeType":"YulBlock","src":"23883:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23900:1:88","nodeType":"YulLiteral","src":"23900:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"23907:3:88","nodeType":"YulLiteral","src":"23907:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"23912:10:88","nodeType":"YulLiteral","src":"23912:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"23903:3:88","nodeType":"YulIdentifier","src":"23903:3:88"},"nativeSrc":"23903:20:88","nodeType":"YulFunctionCall","src":"23903:20:88"}],"functionName":{"name":"mstore","nativeSrc":"23893:6:88","nodeType":"YulIdentifier","src":"23893:6:88"},"nativeSrc":"23893:31:88","nodeType":"YulFunctionCall","src":"23893:31:88"},"nativeSrc":"23893:31:88","nodeType":"YulExpressionStatement","src":"23893:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23940:1:88","nodeType":"YulLiteral","src":"23940:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"23943:4:88","nodeType":"YulLiteral","src":"23943:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"23933:6:88","nodeType":"YulIdentifier","src":"23933:6:88"},"nativeSrc":"23933:15:88","nodeType":"YulFunctionCall","src":"23933:15:88"},"nativeSrc":"23933:15:88","nodeType":"YulExpressionStatement","src":"23933:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23964:1:88","nodeType":"YulLiteral","src":"23964:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23967:4:88","nodeType":"YulLiteral","src":"23967:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"23957:6:88","nodeType":"YulIdentifier","src":"23957:6:88"},"nativeSrc":"23957:15:88","nodeType":"YulFunctionCall","src":"23957:15:88"},"nativeSrc":"23957:15:88","nodeType":"YulExpressionStatement","src":"23957:15:88"}]},"name":"panic_error_0x12","nativeSrc":"23851:127:88","nodeType":"YulFunctionDefinition","src":"23851:127:88"},{"body":{"nativeSrc":"24029:74:88","nodeType":"YulBlock","src":"24029:74:88","statements":[{"body":{"nativeSrc":"24052:22:88","nodeType":"YulBlock","src":"24052:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"24054:16:88","nodeType":"YulIdentifier","src":"24054:16:88"},"nativeSrc":"24054:18:88","nodeType":"YulFunctionCall","src":"24054:18:88"},"nativeSrc":"24054:18:88","nodeType":"YulExpressionStatement","src":"24054:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"24049:1:88","nodeType":"YulIdentifier","src":"24049:1:88"}],"functionName":{"name":"iszero","nativeSrc":"24042:6:88","nodeType":"YulIdentifier","src":"24042:6:88"},"nativeSrc":"24042:9:88","nodeType":"YulFunctionCall","src":"24042:9:88"},"nativeSrc":"24039:35:88","nodeType":"YulIf","src":"24039:35:88"},{"nativeSrc":"24083:14:88","nodeType":"YulAssignment","src":"24083:14:88","value":{"arguments":[{"name":"x","nativeSrc":"24092:1:88","nodeType":"YulIdentifier","src":"24092:1:88"},{"name":"y","nativeSrc":"24095:1:88","nodeType":"YulIdentifier","src":"24095:1:88"}],"functionName":{"name":"div","nativeSrc":"24088:3:88","nodeType":"YulIdentifier","src":"24088:3:88"},"nativeSrc":"24088:9:88","nodeType":"YulFunctionCall","src":"24088:9:88"},"variableNames":[{"name":"r","nativeSrc":"24083:1:88","nodeType":"YulIdentifier","src":"24083:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"23983:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"24014:1:88","nodeType":"YulTypedName","src":"24014:1:88","type":""},{"name":"y","nativeSrc":"24017:1:88","nodeType":"YulTypedName","src":"24017:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"24023:1:88","nodeType":"YulTypedName","src":"24023:1:88","type":""}],"src":"23983:120:88"},{"body":{"nativeSrc":"24186:167:88","nodeType":"YulBlock","src":"24186:167:88","statements":[{"body":{"nativeSrc":"24232:16:88","nodeType":"YulBlock","src":"24232:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24241:1:88","nodeType":"YulLiteral","src":"24241:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"24244:1:88","nodeType":"YulLiteral","src":"24244:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24234:6:88","nodeType":"YulIdentifier","src":"24234:6:88"},"nativeSrc":"24234:12:88","nodeType":"YulFunctionCall","src":"24234:12:88"},"nativeSrc":"24234:12:88","nodeType":"YulExpressionStatement","src":"24234:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"24207:7:88","nodeType":"YulIdentifier","src":"24207:7:88"},{"name":"headStart","nativeSrc":"24216:9:88","nodeType":"YulIdentifier","src":"24216:9:88"}],"functionName":{"name":"sub","nativeSrc":"24203:3:88","nodeType":"YulIdentifier","src":"24203:3:88"},"nativeSrc":"24203:23:88","nodeType":"YulFunctionCall","src":"24203:23:88"},{"kind":"number","nativeSrc":"24228:2:88","nodeType":"YulLiteral","src":"24228:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"24199:3:88","nodeType":"YulIdentifier","src":"24199:3:88"},"nativeSrc":"24199:32:88","nodeType":"YulFunctionCall","src":"24199:32:88"},"nativeSrc":"24196:52:88","nodeType":"YulIf","src":"24196:52:88"},{"nativeSrc":"24257:29:88","nodeType":"YulVariableDeclaration","src":"24257:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24276:9:88","nodeType":"YulIdentifier","src":"24276:9:88"}],"functionName":{"name":"mload","nativeSrc":"24270:5:88","nodeType":"YulIdentifier","src":"24270:5:88"},"nativeSrc":"24270:16:88","nodeType":"YulFunctionCall","src":"24270:16:88"},"variables":[{"name":"value","nativeSrc":"24261:5:88","nodeType":"YulTypedName","src":"24261:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24317:5:88","nodeType":"YulIdentifier","src":"24317:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"24295:21:88","nodeType":"YulIdentifier","src":"24295:21:88"},"nativeSrc":"24295:28:88","nodeType":"YulFunctionCall","src":"24295:28:88"},"nativeSrc":"24295:28:88","nodeType":"YulExpressionStatement","src":"24295:28:88"},{"nativeSrc":"24332:15:88","nodeType":"YulAssignment","src":"24332:15:88","value":{"name":"value","nativeSrc":"24342:5:88","nodeType":"YulIdentifier","src":"24342:5:88"},"variableNames":[{"name":"value0","nativeSrc":"24332:6:88","nodeType":"YulIdentifier","src":"24332:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"24108:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24152:9:88","nodeType":"YulTypedName","src":"24152:9:88","type":""},{"name":"dataEnd","nativeSrc":"24163:7:88","nodeType":"YulTypedName","src":"24163:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"24175:6:88","nodeType":"YulTypedName","src":"24175:6:88","type":""}],"src":"24108:245:88"},{"body":{"nativeSrc":"24532:228:88","nodeType":"YulBlock","src":"24532:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24549:9:88","nodeType":"YulIdentifier","src":"24549:9:88"},{"kind":"number","nativeSrc":"24560:2:88","nodeType":"YulLiteral","src":"24560:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24542:6:88","nodeType":"YulIdentifier","src":"24542:6:88"},"nativeSrc":"24542:21:88","nodeType":"YulFunctionCall","src":"24542:21:88"},"nativeSrc":"24542:21:88","nodeType":"YulExpressionStatement","src":"24542:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24583:9:88","nodeType":"YulIdentifier","src":"24583:9:88"},{"kind":"number","nativeSrc":"24594:2:88","nodeType":"YulLiteral","src":"24594:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24579:3:88","nodeType":"YulIdentifier","src":"24579:3:88"},"nativeSrc":"24579:18:88","nodeType":"YulFunctionCall","src":"24579:18:88"},{"kind":"number","nativeSrc":"24599:2:88","nodeType":"YulLiteral","src":"24599:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"24572:6:88","nodeType":"YulIdentifier","src":"24572:6:88"},"nativeSrc":"24572:30:88","nodeType":"YulFunctionCall","src":"24572:30:88"},"nativeSrc":"24572:30:88","nodeType":"YulExpressionStatement","src":"24572:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24622:9:88","nodeType":"YulIdentifier","src":"24622:9:88"},{"kind":"number","nativeSrc":"24633:2:88","nodeType":"YulLiteral","src":"24633:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24618:3:88","nodeType":"YulIdentifier","src":"24618:3:88"},"nativeSrc":"24618:18:88","nodeType":"YulFunctionCall","src":"24618:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"24638:34:88","nodeType":"YulLiteral","src":"24638:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"24611:6:88","nodeType":"YulIdentifier","src":"24611:6:88"},"nativeSrc":"24611:62:88","nodeType":"YulFunctionCall","src":"24611:62:88"},"nativeSrc":"24611:62:88","nodeType":"YulExpressionStatement","src":"24611:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24693:9:88","nodeType":"YulIdentifier","src":"24693:9:88"},{"kind":"number","nativeSrc":"24704:2:88","nodeType":"YulLiteral","src":"24704:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24689:3:88","nodeType":"YulIdentifier","src":"24689:3:88"},"nativeSrc":"24689:18:88","nodeType":"YulFunctionCall","src":"24689:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"24709:8:88","nodeType":"YulLiteral","src":"24709:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"24682:6:88","nodeType":"YulIdentifier","src":"24682:6:88"},"nativeSrc":"24682:36:88","nodeType":"YulFunctionCall","src":"24682:36:88"},"nativeSrc":"24682:36:88","nodeType":"YulExpressionStatement","src":"24682:36:88"},{"nativeSrc":"24727:27:88","nodeType":"YulAssignment","src":"24727:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24739:9:88","nodeType":"YulIdentifier","src":"24739:9:88"},{"kind":"number","nativeSrc":"24750:3:88","nodeType":"YulLiteral","src":"24750:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24735:3:88","nodeType":"YulIdentifier","src":"24735:3:88"},"nativeSrc":"24735:19:88","nodeType":"YulFunctionCall","src":"24735:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24727:4:88","nodeType":"YulIdentifier","src":"24727:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24358:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24509:9:88","nodeType":"YulTypedName","src":"24509:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24523:4:88","nodeType":"YulTypedName","src":"24523:4:88","type":""}],"src":"24358:402:88"},{"body":{"nativeSrc":"24815:162:88","nodeType":"YulBlock","src":"24815:162:88","statements":[{"nativeSrc":"24825:26:88","nodeType":"YulVariableDeclaration","src":"24825:26:88","value":{"arguments":[{"name":"value","nativeSrc":"24845:5:88","nodeType":"YulIdentifier","src":"24845:5:88"}],"functionName":{"name":"mload","nativeSrc":"24839:5:88","nodeType":"YulIdentifier","src":"24839:5:88"},"nativeSrc":"24839:12:88","nodeType":"YulFunctionCall","src":"24839:12:88"},"variables":[{"name":"length","nativeSrc":"24829:6:88","nodeType":"YulTypedName","src":"24829:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"24866:3:88","nodeType":"YulIdentifier","src":"24866:3:88"},{"arguments":[{"name":"value","nativeSrc":"24875:5:88","nodeType":"YulIdentifier","src":"24875:5:88"},{"kind":"number","nativeSrc":"24882:4:88","nodeType":"YulLiteral","src":"24882:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24871:3:88","nodeType":"YulIdentifier","src":"24871:3:88"},"nativeSrc":"24871:16:88","nodeType":"YulFunctionCall","src":"24871:16:88"},{"name":"length","nativeSrc":"24889:6:88","nodeType":"YulIdentifier","src":"24889:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"24860:5:88","nodeType":"YulIdentifier","src":"24860:5:88"},"nativeSrc":"24860:36:88","nodeType":"YulFunctionCall","src":"24860:36:88"},"nativeSrc":"24860:36:88","nodeType":"YulExpressionStatement","src":"24860:36:88"},{"nativeSrc":"24905:26:88","nodeType":"YulVariableDeclaration","src":"24905:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"24919:3:88","nodeType":"YulIdentifier","src":"24919:3:88"},{"name":"length","nativeSrc":"24924:6:88","nodeType":"YulIdentifier","src":"24924:6:88"}],"functionName":{"name":"add","nativeSrc":"24915:3:88","nodeType":"YulIdentifier","src":"24915:3:88"},"nativeSrc":"24915:16:88","nodeType":"YulFunctionCall","src":"24915:16:88"},"variables":[{"name":"_1","nativeSrc":"24909:2:88","nodeType":"YulTypedName","src":"24909:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"24947:2:88","nodeType":"YulIdentifier","src":"24947:2:88"},{"kind":"number","nativeSrc":"24951:1:88","nodeType":"YulLiteral","src":"24951:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"24940:6:88","nodeType":"YulIdentifier","src":"24940:6:88"},"nativeSrc":"24940:13:88","nodeType":"YulFunctionCall","src":"24940:13:88"},"nativeSrc":"24940:13:88","nodeType":"YulExpressionStatement","src":"24940:13:88"},{"nativeSrc":"24962:9:88","nodeType":"YulAssignment","src":"24962:9:88","value":{"name":"_1","nativeSrc":"24969:2:88","nodeType":"YulIdentifier","src":"24969:2:88"},"variableNames":[{"name":"end","nativeSrc":"24962:3:88","nodeType":"YulIdentifier","src":"24962:3:88"}]}]},"name":"abi_encode_string","nativeSrc":"24765:212:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24792:5:88","nodeType":"YulTypedName","src":"24792:5:88","type":""},{"name":"pos","nativeSrc":"24799:3:88","nodeType":"YulTypedName","src":"24799:3:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24807:3:88","nodeType":"YulTypedName","src":"24807:3:88","type":""}],"src":"24765:212:88"},{"body":{"nativeSrc":"25268:177:88","nodeType":"YulBlock","src":"25268:177:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25285:3:88","nodeType":"YulIdentifier","src":"25285:3:88"},{"kind":"number","nativeSrc":"25290:66:88","nodeType":"YulLiteral","src":"25290:66:88","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nativeSrc":"25278:6:88","nodeType":"YulIdentifier","src":"25278:6:88"},"nativeSrc":"25278:79:88","nodeType":"YulFunctionCall","src":"25278:79:88"},"nativeSrc":"25278:79:88","nodeType":"YulExpressionStatement","src":"25278:79:88"},{"nativeSrc":"25366:73:88","nodeType":"YulAssignment","src":"25366:73:88","value":{"arguments":[{"name":"value1","nativeSrc":"25391:6:88","nodeType":"YulIdentifier","src":"25391:6:88"},{"arguments":[{"name":"value0","nativeSrc":"25417:6:88","nodeType":"YulIdentifier","src":"25417:6:88"},{"arguments":[{"name":"pos","nativeSrc":"25429:3:88","nodeType":"YulIdentifier","src":"25429:3:88"},{"kind":"number","nativeSrc":"25434:2:88","nodeType":"YulLiteral","src":"25434:2:88","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"25425:3:88","nodeType":"YulIdentifier","src":"25425:3:88"},"nativeSrc":"25425:12:88","nodeType":"YulFunctionCall","src":"25425:12:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25399:17:88","nodeType":"YulIdentifier","src":"25399:17:88"},"nativeSrc":"25399:39:88","nodeType":"YulFunctionCall","src":"25399:39:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25373:17:88","nodeType":"YulIdentifier","src":"25373:17:88"},"nativeSrc":"25373:66:88","nodeType":"YulFunctionCall","src":"25373:66:88"},"variableNames":[{"name":"end","nativeSrc":"25366:3:88","nodeType":"YulIdentifier","src":"25366:3:88"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"24982:463:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25236:3:88","nodeType":"YulTypedName","src":"25236:3:88","type":""},{"name":"value1","nativeSrc":"25241:6:88","nodeType":"YulTypedName","src":"25241:6:88","type":""},{"name":"value0","nativeSrc":"25249:6:88","nodeType":"YulTypedName","src":"25249:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25260:3:88","nodeType":"YulTypedName","src":"25260:3:88","type":""}],"src":"24982:463:88"},{"body":{"nativeSrc":"25488:74:88","nodeType":"YulBlock","src":"25488:74:88","statements":[{"body":{"nativeSrc":"25511:22:88","nodeType":"YulBlock","src":"25511:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"25513:16:88","nodeType":"YulIdentifier","src":"25513:16:88"},"nativeSrc":"25513:18:88","nodeType":"YulFunctionCall","src":"25513:18:88"},"nativeSrc":"25513:18:88","nodeType":"YulExpressionStatement","src":"25513:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"25508:1:88","nodeType":"YulIdentifier","src":"25508:1:88"}],"functionName":{"name":"iszero","nativeSrc":"25501:6:88","nodeType":"YulIdentifier","src":"25501:6:88"},"nativeSrc":"25501:9:88","nodeType":"YulFunctionCall","src":"25501:9:88"},"nativeSrc":"25498:35:88","nodeType":"YulIf","src":"25498:35:88"},{"nativeSrc":"25542:14:88","nodeType":"YulAssignment","src":"25542:14:88","value":{"arguments":[{"name":"x","nativeSrc":"25551:1:88","nodeType":"YulIdentifier","src":"25551:1:88"},{"name":"y","nativeSrc":"25554:1:88","nodeType":"YulIdentifier","src":"25554:1:88"}],"functionName":{"name":"mod","nativeSrc":"25547:3:88","nodeType":"YulIdentifier","src":"25547:3:88"},"nativeSrc":"25547:9:88","nodeType":"YulFunctionCall","src":"25547:9:88"},"variableNames":[{"name":"r","nativeSrc":"25542:1:88","nodeType":"YulIdentifier","src":"25542:1:88"}]}]},"name":"mod_t_uint256","nativeSrc":"25450:112:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"25473:1:88","nodeType":"YulTypedName","src":"25473:1:88","type":""},{"name":"y","nativeSrc":"25476:1:88","nodeType":"YulTypedName","src":"25476:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"25482:1:88","nodeType":"YulTypedName","src":"25482:1:88","type":""}],"src":"25450:112:88"},{"body":{"nativeSrc":"25674:170:88","nodeType":"YulBlock","src":"25674:170:88","statements":[{"body":{"nativeSrc":"25720:16:88","nodeType":"YulBlock","src":"25720:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25729:1:88","nodeType":"YulLiteral","src":"25729:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"25732:1:88","nodeType":"YulLiteral","src":"25732:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25722:6:88","nodeType":"YulIdentifier","src":"25722:6:88"},"nativeSrc":"25722:12:88","nodeType":"YulFunctionCall","src":"25722:12:88"},"nativeSrc":"25722:12:88","nodeType":"YulExpressionStatement","src":"25722:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25695:7:88","nodeType":"YulIdentifier","src":"25695:7:88"},{"name":"headStart","nativeSrc":"25704:9:88","nodeType":"YulIdentifier","src":"25704:9:88"}],"functionName":{"name":"sub","nativeSrc":"25691:3:88","nodeType":"YulIdentifier","src":"25691:3:88"},"nativeSrc":"25691:23:88","nodeType":"YulFunctionCall","src":"25691:23:88"},{"kind":"number","nativeSrc":"25716:2:88","nodeType":"YulLiteral","src":"25716:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25687:3:88","nodeType":"YulIdentifier","src":"25687:3:88"},"nativeSrc":"25687:32:88","nodeType":"YulFunctionCall","src":"25687:32:88"},"nativeSrc":"25684:52:88","nodeType":"YulIf","src":"25684:52:88"},{"nativeSrc":"25745:29:88","nodeType":"YulVariableDeclaration","src":"25745:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25764:9:88","nodeType":"YulIdentifier","src":"25764:9:88"}],"functionName":{"name":"mload","nativeSrc":"25758:5:88","nodeType":"YulIdentifier","src":"25758:5:88"},"nativeSrc":"25758:16:88","nodeType":"YulFunctionCall","src":"25758:16:88"},"variables":[{"name":"value","nativeSrc":"25749:5:88","nodeType":"YulTypedName","src":"25749:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25808:5:88","nodeType":"YulIdentifier","src":"25808:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"25783:24:88","nodeType":"YulIdentifier","src":"25783:24:88"},"nativeSrc":"25783:31:88","nodeType":"YulFunctionCall","src":"25783:31:88"},"nativeSrc":"25783:31:88","nodeType":"YulExpressionStatement","src":"25783:31:88"},{"nativeSrc":"25823:15:88","nodeType":"YulAssignment","src":"25823:15:88","value":{"name":"value","nativeSrc":"25833:5:88","nodeType":"YulIdentifier","src":"25833:5:88"},"variableNames":[{"name":"value0","nativeSrc":"25823:6:88","nodeType":"YulIdentifier","src":"25823:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"25567:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25640:9:88","nodeType":"YulTypedName","src":"25640:9:88","type":""},{"name":"dataEnd","nativeSrc":"25651:7:88","nodeType":"YulTypedName","src":"25651:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25663:6:88","nodeType":"YulTypedName","src":"25663:6:88","type":""}],"src":"25567:277:88"},{"body":{"nativeSrc":"26023:235:88","nodeType":"YulBlock","src":"26023:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26040:9:88","nodeType":"YulIdentifier","src":"26040:9:88"},{"kind":"number","nativeSrc":"26051:2:88","nodeType":"YulLiteral","src":"26051:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26033:6:88","nodeType":"YulIdentifier","src":"26033:6:88"},"nativeSrc":"26033:21:88","nodeType":"YulFunctionCall","src":"26033:21:88"},"nativeSrc":"26033:21:88","nodeType":"YulExpressionStatement","src":"26033:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26074:9:88","nodeType":"YulIdentifier","src":"26074:9:88"},{"kind":"number","nativeSrc":"26085:2:88","nodeType":"YulLiteral","src":"26085:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26070:3:88","nodeType":"YulIdentifier","src":"26070:3:88"},"nativeSrc":"26070:18:88","nodeType":"YulFunctionCall","src":"26070:18:88"},{"kind":"number","nativeSrc":"26090:2:88","nodeType":"YulLiteral","src":"26090:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"26063:6:88","nodeType":"YulIdentifier","src":"26063:6:88"},"nativeSrc":"26063:30:88","nodeType":"YulFunctionCall","src":"26063:30:88"},"nativeSrc":"26063:30:88","nodeType":"YulExpressionStatement","src":"26063:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26113:9:88","nodeType":"YulIdentifier","src":"26113:9:88"},{"kind":"number","nativeSrc":"26124:2:88","nodeType":"YulLiteral","src":"26124:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26109:3:88","nodeType":"YulIdentifier","src":"26109:3:88"},"nativeSrc":"26109:18:88","nodeType":"YulFunctionCall","src":"26109:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"26129:34:88","nodeType":"YulLiteral","src":"26129:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"26102:6:88","nodeType":"YulIdentifier","src":"26102:6:88"},"nativeSrc":"26102:62:88","nodeType":"YulFunctionCall","src":"26102:62:88"},"nativeSrc":"26102:62:88","nodeType":"YulExpressionStatement","src":"26102:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26184:9:88","nodeType":"YulIdentifier","src":"26184:9:88"},{"kind":"number","nativeSrc":"26195:2:88","nodeType":"YulLiteral","src":"26195:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26180:3:88","nodeType":"YulIdentifier","src":"26180:3:88"},"nativeSrc":"26180:18:88","nodeType":"YulFunctionCall","src":"26180:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"26200:15:88","nodeType":"YulLiteral","src":"26200:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"26173:6:88","nodeType":"YulIdentifier","src":"26173:6:88"},"nativeSrc":"26173:43:88","nodeType":"YulFunctionCall","src":"26173:43:88"},"nativeSrc":"26173:43:88","nodeType":"YulExpressionStatement","src":"26173:43:88"},{"nativeSrc":"26225:27:88","nodeType":"YulAssignment","src":"26225:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26237:9:88","nodeType":"YulIdentifier","src":"26237:9:88"},{"kind":"number","nativeSrc":"26248:3:88","nodeType":"YulLiteral","src":"26248:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26233:3:88","nodeType":"YulIdentifier","src":"26233:3:88"},"nativeSrc":"26233:19:88","nodeType":"YulFunctionCall","src":"26233:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26225:4:88","nodeType":"YulIdentifier","src":"26225:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25849:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26000:9:88","nodeType":"YulTypedName","src":"26000:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26014:4:88","nodeType":"YulTypedName","src":"26014:4:88","type":""}],"src":"25849:409:88"},{"body":{"nativeSrc":"26437:170:88","nodeType":"YulBlock","src":"26437:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26454:9:88","nodeType":"YulIdentifier","src":"26454:9:88"},{"kind":"number","nativeSrc":"26465:2:88","nodeType":"YulLiteral","src":"26465:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26447:6:88","nodeType":"YulIdentifier","src":"26447:6:88"},"nativeSrc":"26447:21:88","nodeType":"YulFunctionCall","src":"26447:21:88"},"nativeSrc":"26447:21:88","nodeType":"YulExpressionStatement","src":"26447:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26488:9:88","nodeType":"YulIdentifier","src":"26488:9:88"},{"kind":"number","nativeSrc":"26499:2:88","nodeType":"YulLiteral","src":"26499:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26484:3:88","nodeType":"YulIdentifier","src":"26484:3:88"},"nativeSrc":"26484:18:88","nodeType":"YulFunctionCall","src":"26484:18:88"},{"kind":"number","nativeSrc":"26504:2:88","nodeType":"YulLiteral","src":"26504:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"26477:6:88","nodeType":"YulIdentifier","src":"26477:6:88"},"nativeSrc":"26477:30:88","nodeType":"YulFunctionCall","src":"26477:30:88"},"nativeSrc":"26477:30:88","nodeType":"YulExpressionStatement","src":"26477:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26527:9:88","nodeType":"YulIdentifier","src":"26527:9:88"},{"kind":"number","nativeSrc":"26538:2:88","nodeType":"YulLiteral","src":"26538:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26523:3:88","nodeType":"YulIdentifier","src":"26523:3:88"},"nativeSrc":"26523:18:88","nodeType":"YulFunctionCall","src":"26523:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"26543:22:88","nodeType":"YulLiteral","src":"26543:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"26516:6:88","nodeType":"YulIdentifier","src":"26516:6:88"},"nativeSrc":"26516:50:88","nodeType":"YulFunctionCall","src":"26516:50:88"},"nativeSrc":"26516:50:88","nodeType":"YulExpressionStatement","src":"26516:50:88"},{"nativeSrc":"26575:26:88","nodeType":"YulAssignment","src":"26575:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26587:9:88","nodeType":"YulIdentifier","src":"26587:9:88"},{"kind":"number","nativeSrc":"26598:2:88","nodeType":"YulLiteral","src":"26598:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26583:3:88","nodeType":"YulIdentifier","src":"26583:3:88"},"nativeSrc":"26583:18:88","nodeType":"YulFunctionCall","src":"26583:18:88"},"variableNames":[{"name":"tail","nativeSrc":"26575:4:88","nodeType":"YulIdentifier","src":"26575:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26263:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26414:9:88","nodeType":"YulTypedName","src":"26414:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26428:4:88","nodeType":"YulTypedName","src":"26428:4:88","type":""}],"src":"26263:344:88"},{"body":{"nativeSrc":"26668:65:88","nodeType":"YulBlock","src":"26668:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26685:1:88","nodeType":"YulLiteral","src":"26685:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"26688:3:88","nodeType":"YulIdentifier","src":"26688:3:88"}],"functionName":{"name":"mstore","nativeSrc":"26678:6:88","nodeType":"YulIdentifier","src":"26678:6:88"},"nativeSrc":"26678:14:88","nodeType":"YulFunctionCall","src":"26678:14:88"},"nativeSrc":"26678:14:88","nodeType":"YulExpressionStatement","src":"26678:14:88"},{"nativeSrc":"26701:26:88","nodeType":"YulAssignment","src":"26701:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"26719:1:88","nodeType":"YulLiteral","src":"26719:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26722:4:88","nodeType":"YulLiteral","src":"26722:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"26709:9:88","nodeType":"YulIdentifier","src":"26709:9:88"},"nativeSrc":"26709:18:88","nodeType":"YulFunctionCall","src":"26709:18:88"},"variableNames":[{"name":"data","nativeSrc":"26701:4:88","nodeType":"YulIdentifier","src":"26701:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"26612:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"26651:3:88","nodeType":"YulTypedName","src":"26651:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"26659:4:88","nodeType":"YulTypedName","src":"26659:4:88","type":""}],"src":"26612:121:88"},{"body":{"nativeSrc":"26819:437:88","nodeType":"YulBlock","src":"26819:437:88","statements":[{"body":{"nativeSrc":"26852:398:88","nodeType":"YulBlock","src":"26852:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26873:1:88","nodeType":"YulLiteral","src":"26873:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"26876:5:88","nodeType":"YulIdentifier","src":"26876:5:88"}],"functionName":{"name":"mstore","nativeSrc":"26866:6:88","nodeType":"YulIdentifier","src":"26866:6:88"},"nativeSrc":"26866:16:88","nodeType":"YulFunctionCall","src":"26866:16:88"},"nativeSrc":"26866:16:88","nodeType":"YulExpressionStatement","src":"26866:16:88"},{"nativeSrc":"26895:30:88","nodeType":"YulVariableDeclaration","src":"26895:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"26917:1:88","nodeType":"YulLiteral","src":"26917:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26920:4:88","nodeType":"YulLiteral","src":"26920:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"26907:9:88","nodeType":"YulIdentifier","src":"26907:9:88"},"nativeSrc":"26907:18:88","nodeType":"YulFunctionCall","src":"26907:18:88"},"variables":[{"name":"data","nativeSrc":"26899:4:88","nodeType":"YulTypedName","src":"26899:4:88","type":""}]},{"nativeSrc":"26938:57:88","nodeType":"YulVariableDeclaration","src":"26938:57:88","value":{"arguments":[{"name":"data","nativeSrc":"26961:4:88","nodeType":"YulIdentifier","src":"26961:4:88"},{"arguments":[{"kind":"number","nativeSrc":"26971:1:88","nodeType":"YulLiteral","src":"26971:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"26978:10:88","nodeType":"YulIdentifier","src":"26978:10:88"},{"kind":"number","nativeSrc":"26990:2:88","nodeType":"YulLiteral","src":"26990:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"26974:3:88","nodeType":"YulIdentifier","src":"26974:3:88"},"nativeSrc":"26974:19:88","nodeType":"YulFunctionCall","src":"26974:19:88"}],"functionName":{"name":"shr","nativeSrc":"26967:3:88","nodeType":"YulIdentifier","src":"26967:3:88"},"nativeSrc":"26967:27:88","nodeType":"YulFunctionCall","src":"26967:27:88"}],"functionName":{"name":"add","nativeSrc":"26957:3:88","nodeType":"YulIdentifier","src":"26957:3:88"},"nativeSrc":"26957:38:88","nodeType":"YulFunctionCall","src":"26957:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"26942:11:88","nodeType":"YulTypedName","src":"26942:11:88","type":""}]},{"body":{"nativeSrc":"27032:23:88","nodeType":"YulBlock","src":"27032:23:88","statements":[{"nativeSrc":"27034:19:88","nodeType":"YulAssignment","src":"27034:19:88","value":{"name":"data","nativeSrc":"27049:4:88","nodeType":"YulIdentifier","src":"27049:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"27034:11:88","nodeType":"YulIdentifier","src":"27034:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"27014:10:88","nodeType":"YulIdentifier","src":"27014:10:88"},{"kind":"number","nativeSrc":"27026:4:88","nodeType":"YulLiteral","src":"27026:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"27011:2:88","nodeType":"YulIdentifier","src":"27011:2:88"},"nativeSrc":"27011:20:88","nodeType":"YulFunctionCall","src":"27011:20:88"},"nativeSrc":"27008:47:88","nodeType":"YulIf","src":"27008:47:88"},{"nativeSrc":"27068:41:88","nodeType":"YulVariableDeclaration","src":"27068:41:88","value":{"arguments":[{"name":"data","nativeSrc":"27082:4:88","nodeType":"YulIdentifier","src":"27082:4:88"},{"arguments":[{"kind":"number","nativeSrc":"27092:1:88","nodeType":"YulLiteral","src":"27092:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"27099:3:88","nodeType":"YulIdentifier","src":"27099:3:88"},{"kind":"number","nativeSrc":"27104:2:88","nodeType":"YulLiteral","src":"27104:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"27095:3:88","nodeType":"YulIdentifier","src":"27095:3:88"},"nativeSrc":"27095:12:88","nodeType":"YulFunctionCall","src":"27095:12:88"}],"functionName":{"name":"shr","nativeSrc":"27088:3:88","nodeType":"YulIdentifier","src":"27088:3:88"},"nativeSrc":"27088:20:88","nodeType":"YulFunctionCall","src":"27088:20:88"}],"functionName":{"name":"add","nativeSrc":"27078:3:88","nodeType":"YulIdentifier","src":"27078:3:88"},"nativeSrc":"27078:31:88","nodeType":"YulFunctionCall","src":"27078:31:88"},"variables":[{"name":"_1","nativeSrc":"27072:2:88","nodeType":"YulTypedName","src":"27072:2:88","type":""}]},{"nativeSrc":"27122:24:88","nodeType":"YulVariableDeclaration","src":"27122:24:88","value":{"name":"deleteStart","nativeSrc":"27135:11:88","nodeType":"YulIdentifier","src":"27135:11:88"},"variables":[{"name":"start","nativeSrc":"27126:5:88","nodeType":"YulTypedName","src":"27126:5:88","type":""}]},{"body":{"nativeSrc":"27220:20:88","nodeType":"YulBlock","src":"27220:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"27229:5:88","nodeType":"YulIdentifier","src":"27229:5:88"},{"kind":"number","nativeSrc":"27236:1:88","nodeType":"YulLiteral","src":"27236:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"27222:6:88","nodeType":"YulIdentifier","src":"27222:6:88"},"nativeSrc":"27222:16:88","nodeType":"YulFunctionCall","src":"27222:16:88"},"nativeSrc":"27222:16:88","nodeType":"YulExpressionStatement","src":"27222:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"27170:5:88","nodeType":"YulIdentifier","src":"27170:5:88"},{"name":"_1","nativeSrc":"27177:2:88","nodeType":"YulIdentifier","src":"27177:2:88"}],"functionName":{"name":"lt","nativeSrc":"27167:2:88","nodeType":"YulIdentifier","src":"27167:2:88"},"nativeSrc":"27167:13:88","nodeType":"YulFunctionCall","src":"27167:13:88"},"nativeSrc":"27159:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"27181:26:88","nodeType":"YulBlock","src":"27181:26:88","statements":[{"nativeSrc":"27183:22:88","nodeType":"YulAssignment","src":"27183:22:88","value":{"arguments":[{"name":"start","nativeSrc":"27196:5:88","nodeType":"YulIdentifier","src":"27196:5:88"},{"kind":"number","nativeSrc":"27203:1:88","nodeType":"YulLiteral","src":"27203:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"27192:3:88","nodeType":"YulIdentifier","src":"27192:3:88"},"nativeSrc":"27192:13:88","nodeType":"YulFunctionCall","src":"27192:13:88"},"variableNames":[{"name":"start","nativeSrc":"27183:5:88","nodeType":"YulIdentifier","src":"27183:5:88"}]}]},"pre":{"nativeSrc":"27163:3:88","nodeType":"YulBlock","src":"27163:3:88","statements":[]},"src":"27159:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"26835:3:88","nodeType":"YulIdentifier","src":"26835:3:88"},{"kind":"number","nativeSrc":"26840:2:88","nodeType":"YulLiteral","src":"26840:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"26832:2:88","nodeType":"YulIdentifier","src":"26832:2:88"},"nativeSrc":"26832:11:88","nodeType":"YulFunctionCall","src":"26832:11:88"},"nativeSrc":"26829:421:88","nodeType":"YulIf","src":"26829:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"26738:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"26791:5:88","nodeType":"YulTypedName","src":"26791:5:88","type":""},{"name":"len","nativeSrc":"26798:3:88","nodeType":"YulTypedName","src":"26798:3:88","type":""},{"name":"startIndex","nativeSrc":"26803:10:88","nodeType":"YulTypedName","src":"26803:10:88","type":""}],"src":"26738:518:88"},{"body":{"nativeSrc":"27346:81:88","nodeType":"YulBlock","src":"27346:81:88","statements":[{"nativeSrc":"27356:65:88","nodeType":"YulAssignment","src":"27356:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"27371:4:88","nodeType":"YulIdentifier","src":"27371:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27389:1:88","nodeType":"YulLiteral","src":"27389:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"27392:3:88","nodeType":"YulIdentifier","src":"27392:3:88"}],"functionName":{"name":"shl","nativeSrc":"27385:3:88","nodeType":"YulIdentifier","src":"27385:3:88"},"nativeSrc":"27385:11:88","nodeType":"YulFunctionCall","src":"27385:11:88"},{"arguments":[{"kind":"number","nativeSrc":"27402:1:88","nodeType":"YulLiteral","src":"27402:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"27398:3:88","nodeType":"YulIdentifier","src":"27398:3:88"},"nativeSrc":"27398:6:88","nodeType":"YulFunctionCall","src":"27398:6:88"}],"functionName":{"name":"shr","nativeSrc":"27381:3:88","nodeType":"YulIdentifier","src":"27381:3:88"},"nativeSrc":"27381:24:88","nodeType":"YulFunctionCall","src":"27381:24:88"}],"functionName":{"name":"not","nativeSrc":"27377:3:88","nodeType":"YulIdentifier","src":"27377:3:88"},"nativeSrc":"27377:29:88","nodeType":"YulFunctionCall","src":"27377:29:88"}],"functionName":{"name":"and","nativeSrc":"27367:3:88","nodeType":"YulIdentifier","src":"27367:3:88"},"nativeSrc":"27367:40:88","nodeType":"YulFunctionCall","src":"27367:40:88"},{"arguments":[{"kind":"number","nativeSrc":"27413:1:88","nodeType":"YulLiteral","src":"27413:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"27416:3:88","nodeType":"YulIdentifier","src":"27416:3:88"}],"functionName":{"name":"shl","nativeSrc":"27409:3:88","nodeType":"YulIdentifier","src":"27409:3:88"},"nativeSrc":"27409:11:88","nodeType":"YulFunctionCall","src":"27409:11:88"}],"functionName":{"name":"or","nativeSrc":"27364:2:88","nodeType":"YulIdentifier","src":"27364:2:88"},"nativeSrc":"27364:57:88","nodeType":"YulFunctionCall","src":"27364:57:88"},"variableNames":[{"name":"used","nativeSrc":"27356:4:88","nodeType":"YulIdentifier","src":"27356:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"27261:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"27323:4:88","nodeType":"YulTypedName","src":"27323:4:88","type":""},{"name":"len","nativeSrc":"27329:3:88","nodeType":"YulTypedName","src":"27329:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"27337:4:88","nodeType":"YulTypedName","src":"27337:4:88","type":""}],"src":"27261:166:88"},{"body":{"nativeSrc":"27528:1203:88","nodeType":"YulBlock","src":"27528:1203:88","statements":[{"nativeSrc":"27538:24:88","nodeType":"YulVariableDeclaration","src":"27538:24:88","value":{"arguments":[{"name":"src","nativeSrc":"27558:3:88","nodeType":"YulIdentifier","src":"27558:3:88"}],"functionName":{"name":"mload","nativeSrc":"27552:5:88","nodeType":"YulIdentifier","src":"27552:5:88"},"nativeSrc":"27552:10:88","nodeType":"YulFunctionCall","src":"27552:10:88"},"variables":[{"name":"newLen","nativeSrc":"27542:6:88","nodeType":"YulTypedName","src":"27542:6:88","type":""}]},{"body":{"nativeSrc":"27605:22:88","nodeType":"YulBlock","src":"27605:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"27607:16:88","nodeType":"YulIdentifier","src":"27607:16:88"},"nativeSrc":"27607:18:88","nodeType":"YulFunctionCall","src":"27607:18:88"},"nativeSrc":"27607:18:88","nodeType":"YulExpressionStatement","src":"27607:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"27577:6:88","nodeType":"YulIdentifier","src":"27577:6:88"},{"kind":"number","nativeSrc":"27585:18:88","nodeType":"YulLiteral","src":"27585:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27574:2:88","nodeType":"YulIdentifier","src":"27574:2:88"},"nativeSrc":"27574:30:88","nodeType":"YulFunctionCall","src":"27574:30:88"},"nativeSrc":"27571:56:88","nodeType":"YulIf","src":"27571:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"27680:4:88","nodeType":"YulIdentifier","src":"27680:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"27718:4:88","nodeType":"YulIdentifier","src":"27718:4:88"}],"functionName":{"name":"sload","nativeSrc":"27712:5:88","nodeType":"YulIdentifier","src":"27712:5:88"},"nativeSrc":"27712:11:88","nodeType":"YulFunctionCall","src":"27712:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"27686:25:88","nodeType":"YulIdentifier","src":"27686:25:88"},"nativeSrc":"27686:38:88","nodeType":"YulFunctionCall","src":"27686:38:88"},{"name":"newLen","nativeSrc":"27726:6:88","nodeType":"YulIdentifier","src":"27726:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"27636:43:88","nodeType":"YulIdentifier","src":"27636:43:88"},"nativeSrc":"27636:97:88","nodeType":"YulFunctionCall","src":"27636:97:88"},"nativeSrc":"27636:97:88","nodeType":"YulExpressionStatement","src":"27636:97:88"},{"nativeSrc":"27742:18:88","nodeType":"YulVariableDeclaration","src":"27742:18:88","value":{"kind":"number","nativeSrc":"27759:1:88","nodeType":"YulLiteral","src":"27759:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"27746:9:88","nodeType":"YulTypedName","src":"27746:9:88","type":""}]},{"nativeSrc":"27769:17:88","nodeType":"YulAssignment","src":"27769:17:88","value":{"kind":"number","nativeSrc":"27782:4:88","nodeType":"YulLiteral","src":"27782:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"27769:9:88","nodeType":"YulIdentifier","src":"27769:9:88"}]},{"cases":[{"body":{"nativeSrc":"27832:642:88","nodeType":"YulBlock","src":"27832:642:88","statements":[{"nativeSrc":"27846:35:88","nodeType":"YulVariableDeclaration","src":"27846:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"27865:6:88","nodeType":"YulIdentifier","src":"27865:6:88"},{"arguments":[{"kind":"number","nativeSrc":"27877:2:88","nodeType":"YulLiteral","src":"27877:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"27873:3:88","nodeType":"YulIdentifier","src":"27873:3:88"},"nativeSrc":"27873:7:88","nodeType":"YulFunctionCall","src":"27873:7:88"}],"functionName":{"name":"and","nativeSrc":"27861:3:88","nodeType":"YulIdentifier","src":"27861:3:88"},"nativeSrc":"27861:20:88","nodeType":"YulFunctionCall","src":"27861:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"27850:7:88","nodeType":"YulTypedName","src":"27850:7:88","type":""}]},{"nativeSrc":"27894:49:88","nodeType":"YulVariableDeclaration","src":"27894:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"27938:4:88","nodeType":"YulIdentifier","src":"27938:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"27908:29:88","nodeType":"YulIdentifier","src":"27908:29:88"},"nativeSrc":"27908:35:88","nodeType":"YulFunctionCall","src":"27908:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"27898:6:88","nodeType":"YulTypedName","src":"27898:6:88","type":""}]},{"nativeSrc":"27956:10:88","nodeType":"YulVariableDeclaration","src":"27956:10:88","value":{"kind":"number","nativeSrc":"27965:1:88","nodeType":"YulLiteral","src":"27965:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"27960:1:88","nodeType":"YulTypedName","src":"27960:1:88","type":""}]},{"body":{"nativeSrc":"28036:165:88","nodeType":"YulBlock","src":"28036:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28061:6:88","nodeType":"YulIdentifier","src":"28061:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28079:3:88","nodeType":"YulIdentifier","src":"28079:3:88"},{"name":"srcOffset","nativeSrc":"28084:9:88","nodeType":"YulIdentifier","src":"28084:9:88"}],"functionName":{"name":"add","nativeSrc":"28075:3:88","nodeType":"YulIdentifier","src":"28075:3:88"},"nativeSrc":"28075:19:88","nodeType":"YulFunctionCall","src":"28075:19:88"}],"functionName":{"name":"mload","nativeSrc":"28069:5:88","nodeType":"YulIdentifier","src":"28069:5:88"},"nativeSrc":"28069:26:88","nodeType":"YulFunctionCall","src":"28069:26:88"}],"functionName":{"name":"sstore","nativeSrc":"28054:6:88","nodeType":"YulIdentifier","src":"28054:6:88"},"nativeSrc":"28054:42:88","nodeType":"YulFunctionCall","src":"28054:42:88"},"nativeSrc":"28054:42:88","nodeType":"YulExpressionStatement","src":"28054:42:88"},{"nativeSrc":"28113:24:88","nodeType":"YulAssignment","src":"28113:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"28127:6:88","nodeType":"YulIdentifier","src":"28127:6:88"},{"kind":"number","nativeSrc":"28135:1:88","nodeType":"YulLiteral","src":"28135:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28123:3:88","nodeType":"YulIdentifier","src":"28123:3:88"},"nativeSrc":"28123:14:88","nodeType":"YulFunctionCall","src":"28123:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"28113:6:88","nodeType":"YulIdentifier","src":"28113:6:88"}]},{"nativeSrc":"28154:33:88","nodeType":"YulAssignment","src":"28154:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"28171:9:88","nodeType":"YulIdentifier","src":"28171:9:88"},{"kind":"number","nativeSrc":"28182:4:88","nodeType":"YulLiteral","src":"28182:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28167:3:88","nodeType":"YulIdentifier","src":"28167:3:88"},"nativeSrc":"28167:20:88","nodeType":"YulFunctionCall","src":"28167:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"28154:9:88","nodeType":"YulIdentifier","src":"28154:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"27990:1:88","nodeType":"YulIdentifier","src":"27990:1:88"},{"name":"loopEnd","nativeSrc":"27993:7:88","nodeType":"YulIdentifier","src":"27993:7:88"}],"functionName":{"name":"lt","nativeSrc":"27987:2:88","nodeType":"YulIdentifier","src":"27987:2:88"},"nativeSrc":"27987:14:88","nodeType":"YulFunctionCall","src":"27987:14:88"},"nativeSrc":"27979:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"28002:21:88","nodeType":"YulBlock","src":"28002:21:88","statements":[{"nativeSrc":"28004:17:88","nodeType":"YulAssignment","src":"28004:17:88","value":{"arguments":[{"name":"i","nativeSrc":"28013:1:88","nodeType":"YulIdentifier","src":"28013:1:88"},{"kind":"number","nativeSrc":"28016:4:88","nodeType":"YulLiteral","src":"28016:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28009:3:88","nodeType":"YulIdentifier","src":"28009:3:88"},"nativeSrc":"28009:12:88","nodeType":"YulFunctionCall","src":"28009:12:88"},"variableNames":[{"name":"i","nativeSrc":"28004:1:88","nodeType":"YulIdentifier","src":"28004:1:88"}]}]},"pre":{"nativeSrc":"27983:3:88","nodeType":"YulBlock","src":"27983:3:88","statements":[]},"src":"27979:222:88"},{"body":{"nativeSrc":"28249:166:88","nodeType":"YulBlock","src":"28249:166:88","statements":[{"nativeSrc":"28267:43:88","nodeType":"YulVariableDeclaration","src":"28267:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28294:3:88","nodeType":"YulIdentifier","src":"28294:3:88"},{"name":"srcOffset","nativeSrc":"28299:9:88","nodeType":"YulIdentifier","src":"28299:9:88"}],"functionName":{"name":"add","nativeSrc":"28290:3:88","nodeType":"YulIdentifier","src":"28290:3:88"},"nativeSrc":"28290:19:88","nodeType":"YulFunctionCall","src":"28290:19:88"}],"functionName":{"name":"mload","nativeSrc":"28284:5:88","nodeType":"YulIdentifier","src":"28284:5:88"},"nativeSrc":"28284:26:88","nodeType":"YulFunctionCall","src":"28284:26:88"},"variables":[{"name":"lastValue","nativeSrc":"28271:9:88","nodeType":"YulTypedName","src":"28271:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28334:6:88","nodeType":"YulIdentifier","src":"28334:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"28346:9:88","nodeType":"YulIdentifier","src":"28346:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28373:1:88","nodeType":"YulLiteral","src":"28373:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"28376:6:88","nodeType":"YulIdentifier","src":"28376:6:88"}],"functionName":{"name":"shl","nativeSrc":"28369:3:88","nodeType":"YulIdentifier","src":"28369:3:88"},"nativeSrc":"28369:14:88","nodeType":"YulFunctionCall","src":"28369:14:88"},{"kind":"number","nativeSrc":"28385:3:88","nodeType":"YulLiteral","src":"28385:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"28365:3:88","nodeType":"YulIdentifier","src":"28365:3:88"},"nativeSrc":"28365:24:88","nodeType":"YulFunctionCall","src":"28365:24:88"},{"arguments":[{"kind":"number","nativeSrc":"28395:1:88","nodeType":"YulLiteral","src":"28395:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"28391:3:88","nodeType":"YulIdentifier","src":"28391:3:88"},"nativeSrc":"28391:6:88","nodeType":"YulFunctionCall","src":"28391:6:88"}],"functionName":{"name":"shr","nativeSrc":"28361:3:88","nodeType":"YulIdentifier","src":"28361:3:88"},"nativeSrc":"28361:37:88","nodeType":"YulFunctionCall","src":"28361:37:88"}],"functionName":{"name":"not","nativeSrc":"28357:3:88","nodeType":"YulIdentifier","src":"28357:3:88"},"nativeSrc":"28357:42:88","nodeType":"YulFunctionCall","src":"28357:42:88"}],"functionName":{"name":"and","nativeSrc":"28342:3:88","nodeType":"YulIdentifier","src":"28342:3:88"},"nativeSrc":"28342:58:88","nodeType":"YulFunctionCall","src":"28342:58:88"}],"functionName":{"name":"sstore","nativeSrc":"28327:6:88","nodeType":"YulIdentifier","src":"28327:6:88"},"nativeSrc":"28327:74:88","nodeType":"YulFunctionCall","src":"28327:74:88"},"nativeSrc":"28327:74:88","nodeType":"YulExpressionStatement","src":"28327:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"28220:7:88","nodeType":"YulIdentifier","src":"28220:7:88"},{"name":"newLen","nativeSrc":"28229:6:88","nodeType":"YulIdentifier","src":"28229:6:88"}],"functionName":{"name":"lt","nativeSrc":"28217:2:88","nodeType":"YulIdentifier","src":"28217:2:88"},"nativeSrc":"28217:19:88","nodeType":"YulFunctionCall","src":"28217:19:88"},"nativeSrc":"28214:201:88","nodeType":"YulIf","src":"28214:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28435:4:88","nodeType":"YulIdentifier","src":"28435:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28449:1:88","nodeType":"YulLiteral","src":"28449:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"28452:6:88","nodeType":"YulIdentifier","src":"28452:6:88"}],"functionName":{"name":"shl","nativeSrc":"28445:3:88","nodeType":"YulIdentifier","src":"28445:3:88"},"nativeSrc":"28445:14:88","nodeType":"YulFunctionCall","src":"28445:14:88"},{"kind":"number","nativeSrc":"28461:1:88","nodeType":"YulLiteral","src":"28461:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28441:3:88","nodeType":"YulIdentifier","src":"28441:3:88"},"nativeSrc":"28441:22:88","nodeType":"YulFunctionCall","src":"28441:22:88"}],"functionName":{"name":"sstore","nativeSrc":"28428:6:88","nodeType":"YulIdentifier","src":"28428:6:88"},"nativeSrc":"28428:36:88","nodeType":"YulFunctionCall","src":"28428:36:88"},"nativeSrc":"28428:36:88","nodeType":"YulExpressionStatement","src":"28428:36:88"}]},"nativeSrc":"27825:649:88","nodeType":"YulCase","src":"27825:649:88","value":{"kind":"number","nativeSrc":"27830:1:88","nodeType":"YulLiteral","src":"27830:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"28491:234:88","nodeType":"YulBlock","src":"28491:234:88","statements":[{"nativeSrc":"28505:14:88","nodeType":"YulVariableDeclaration","src":"28505:14:88","value":{"kind":"number","nativeSrc":"28518:1:88","nodeType":"YulLiteral","src":"28518:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"28509:5:88","nodeType":"YulTypedName","src":"28509:5:88","type":""}]},{"body":{"nativeSrc":"28554:67:88","nodeType":"YulBlock","src":"28554:67:88","statements":[{"nativeSrc":"28572:35:88","nodeType":"YulAssignment","src":"28572:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28591:3:88","nodeType":"YulIdentifier","src":"28591:3:88"},{"name":"srcOffset","nativeSrc":"28596:9:88","nodeType":"YulIdentifier","src":"28596:9:88"}],"functionName":{"name":"add","nativeSrc":"28587:3:88","nodeType":"YulIdentifier","src":"28587:3:88"},"nativeSrc":"28587:19:88","nodeType":"YulFunctionCall","src":"28587:19:88"}],"functionName":{"name":"mload","nativeSrc":"28581:5:88","nodeType":"YulIdentifier","src":"28581:5:88"},"nativeSrc":"28581:26:88","nodeType":"YulFunctionCall","src":"28581:26:88"},"variableNames":[{"name":"value","nativeSrc":"28572:5:88","nodeType":"YulIdentifier","src":"28572:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"28535:6:88","nodeType":"YulIdentifier","src":"28535:6:88"},"nativeSrc":"28532:89:88","nodeType":"YulIf","src":"28532:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28641:4:88","nodeType":"YulIdentifier","src":"28641:4:88"},{"arguments":[{"name":"value","nativeSrc":"28700:5:88","nodeType":"YulIdentifier","src":"28700:5:88"},{"name":"newLen","nativeSrc":"28707:6:88","nodeType":"YulIdentifier","src":"28707:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"28647:52:88","nodeType":"YulIdentifier","src":"28647:52:88"},"nativeSrc":"28647:67:88","nodeType":"YulFunctionCall","src":"28647:67:88"}],"functionName":{"name":"sstore","nativeSrc":"28634:6:88","nodeType":"YulIdentifier","src":"28634:6:88"},"nativeSrc":"28634:81:88","nodeType":"YulFunctionCall","src":"28634:81:88"},"nativeSrc":"28634:81:88","nodeType":"YulExpressionStatement","src":"28634:81:88"}]},"nativeSrc":"28483:242:88","nodeType":"YulCase","src":"28483:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"27805:6:88","nodeType":"YulIdentifier","src":"27805:6:88"},{"kind":"number","nativeSrc":"27813:2:88","nodeType":"YulLiteral","src":"27813:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"27802:2:88","nodeType":"YulIdentifier","src":"27802:2:88"},"nativeSrc":"27802:14:88","nodeType":"YulFunctionCall","src":"27802:14:88"},"nativeSrc":"27795:930:88","nodeType":"YulSwitch","src":"27795:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"27432:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"27513:4:88","nodeType":"YulTypedName","src":"27513:4:88","type":""},{"name":"src","nativeSrc":"27519:3:88","nodeType":"YulTypedName","src":"27519:3:88","type":""}],"src":"27432:1299:88"},{"body":{"nativeSrc":"28784:128:88","nodeType":"YulBlock","src":"28784:128:88","statements":[{"nativeSrc":"28794:55:88","nodeType":"YulAssignment","src":"28794:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28810:1:88","nodeType":"YulIdentifier","src":"28810:1:88"},{"kind":"number","nativeSrc":"28813:12:88","nodeType":"YulLiteral","src":"28813:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"28806:3:88","nodeType":"YulIdentifier","src":"28806:3:88"},"nativeSrc":"28806:20:88","nodeType":"YulFunctionCall","src":"28806:20:88"},{"arguments":[{"name":"y","nativeSrc":"28832:1:88","nodeType":"YulIdentifier","src":"28832:1:88"},{"kind":"number","nativeSrc":"28835:12:88","nodeType":"YulLiteral","src":"28835:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"28828:3:88","nodeType":"YulIdentifier","src":"28828:3:88"},"nativeSrc":"28828:20:88","nodeType":"YulFunctionCall","src":"28828:20:88"}],"functionName":{"name":"sub","nativeSrc":"28802:3:88","nodeType":"YulIdentifier","src":"28802:3:88"},"nativeSrc":"28802:47:88","nodeType":"YulFunctionCall","src":"28802:47:88"},"variableNames":[{"name":"diff","nativeSrc":"28794:4:88","nodeType":"YulIdentifier","src":"28794:4:88"}]},{"body":{"nativeSrc":"28884:22:88","nodeType":"YulBlock","src":"28884:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28886:16:88","nodeType":"YulIdentifier","src":"28886:16:88"},"nativeSrc":"28886:18:88","nodeType":"YulFunctionCall","src":"28886:18:88"},"nativeSrc":"28886:18:88","nodeType":"YulExpressionStatement","src":"28886:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"28864:4:88","nodeType":"YulIdentifier","src":"28864:4:88"},{"kind":"number","nativeSrc":"28870:12:88","nodeType":"YulLiteral","src":"28870:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28861:2:88","nodeType":"YulIdentifier","src":"28861:2:88"},"nativeSrc":"28861:22:88","nodeType":"YulFunctionCall","src":"28861:22:88"},"nativeSrc":"28858:48:88","nodeType":"YulIf","src":"28858:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"28736:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28766:1:88","nodeType":"YulTypedName","src":"28766:1:88","type":""},{"name":"y","nativeSrc":"28769:1:88","nodeType":"YulTypedName","src":"28769:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"28775:4:88","nodeType":"YulTypedName","src":"28775:4:88","type":""}],"src":"28736:176:88"},{"body":{"nativeSrc":"29091:228:88","nodeType":"YulBlock","src":"29091:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29108:9:88","nodeType":"YulIdentifier","src":"29108:9:88"},{"kind":"number","nativeSrc":"29119:2:88","nodeType":"YulLiteral","src":"29119:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29101:6:88","nodeType":"YulIdentifier","src":"29101:6:88"},"nativeSrc":"29101:21:88","nodeType":"YulFunctionCall","src":"29101:21:88"},"nativeSrc":"29101:21:88","nodeType":"YulExpressionStatement","src":"29101:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29142:9:88","nodeType":"YulIdentifier","src":"29142:9:88"},{"kind":"number","nativeSrc":"29153:2:88","nodeType":"YulLiteral","src":"29153:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29138:3:88","nodeType":"YulIdentifier","src":"29138:3:88"},"nativeSrc":"29138:18:88","nodeType":"YulFunctionCall","src":"29138:18:88"},{"kind":"number","nativeSrc":"29158:2:88","nodeType":"YulLiteral","src":"29158:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"29131:6:88","nodeType":"YulIdentifier","src":"29131:6:88"},"nativeSrc":"29131:30:88","nodeType":"YulFunctionCall","src":"29131:30:88"},"nativeSrc":"29131:30:88","nodeType":"YulExpressionStatement","src":"29131:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29181:9:88","nodeType":"YulIdentifier","src":"29181:9:88"},{"kind":"number","nativeSrc":"29192:2:88","nodeType":"YulLiteral","src":"29192:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29177:3:88","nodeType":"YulIdentifier","src":"29177:3:88"},"nativeSrc":"29177:18:88","nodeType":"YulFunctionCall","src":"29177:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"29197:34:88","nodeType":"YulLiteral","src":"29197:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"29170:6:88","nodeType":"YulIdentifier","src":"29170:6:88"},"nativeSrc":"29170:62:88","nodeType":"YulFunctionCall","src":"29170:62:88"},"nativeSrc":"29170:62:88","nodeType":"YulExpressionStatement","src":"29170:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29252:9:88","nodeType":"YulIdentifier","src":"29252:9:88"},{"kind":"number","nativeSrc":"29263:2:88","nodeType":"YulLiteral","src":"29263:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29248:3:88","nodeType":"YulIdentifier","src":"29248:3:88"},"nativeSrc":"29248:18:88","nodeType":"YulFunctionCall","src":"29248:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"29268:8:88","nodeType":"YulLiteral","src":"29268:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"29241:6:88","nodeType":"YulIdentifier","src":"29241:6:88"},"nativeSrc":"29241:36:88","nodeType":"YulFunctionCall","src":"29241:36:88"},"nativeSrc":"29241:36:88","nodeType":"YulExpressionStatement","src":"29241:36:88"},{"nativeSrc":"29286:27:88","nodeType":"YulAssignment","src":"29286:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29298:9:88","nodeType":"YulIdentifier","src":"29298:9:88"},{"kind":"number","nativeSrc":"29309:3:88","nodeType":"YulLiteral","src":"29309:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29294:3:88","nodeType":"YulIdentifier","src":"29294:3:88"},"nativeSrc":"29294:19:88","nodeType":"YulFunctionCall","src":"29294:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29286:4:88","nodeType":"YulIdentifier","src":"29286:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28917:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29068:9:88","nodeType":"YulTypedName","src":"29068:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29082:4:88","nodeType":"YulTypedName","src":"29082:4:88","type":""}],"src":"28917:402:88"},{"body":{"nativeSrc":"29498:174:88","nodeType":"YulBlock","src":"29498:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29515:9:88","nodeType":"YulIdentifier","src":"29515:9:88"},{"kind":"number","nativeSrc":"29526:2:88","nodeType":"YulLiteral","src":"29526:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29508:6:88","nodeType":"YulIdentifier","src":"29508:6:88"},"nativeSrc":"29508:21:88","nodeType":"YulFunctionCall","src":"29508:21:88"},"nativeSrc":"29508:21:88","nodeType":"YulExpressionStatement","src":"29508:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29549:9:88","nodeType":"YulIdentifier","src":"29549:9:88"},{"kind":"number","nativeSrc":"29560:2:88","nodeType":"YulLiteral","src":"29560:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29545:3:88","nodeType":"YulIdentifier","src":"29545:3:88"},"nativeSrc":"29545:18:88","nodeType":"YulFunctionCall","src":"29545:18:88"},{"kind":"number","nativeSrc":"29565:2:88","nodeType":"YulLiteral","src":"29565:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"29538:6:88","nodeType":"YulIdentifier","src":"29538:6:88"},"nativeSrc":"29538:30:88","nodeType":"YulFunctionCall","src":"29538:30:88"},"nativeSrc":"29538:30:88","nodeType":"YulExpressionStatement","src":"29538:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29588:9:88","nodeType":"YulIdentifier","src":"29588:9:88"},{"kind":"number","nativeSrc":"29599:2:88","nodeType":"YulLiteral","src":"29599:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29584:3:88","nodeType":"YulIdentifier","src":"29584:3:88"},"nativeSrc":"29584:18:88","nodeType":"YulFunctionCall","src":"29584:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nativeSrc":"29604:26:88","nodeType":"YulLiteral","src":"29604:26:88","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nativeSrc":"29577:6:88","nodeType":"YulIdentifier","src":"29577:6:88"},"nativeSrc":"29577:54:88","nodeType":"YulFunctionCall","src":"29577:54:88"},"nativeSrc":"29577:54:88","nodeType":"YulExpressionStatement","src":"29577:54:88"},{"nativeSrc":"29640:26:88","nodeType":"YulAssignment","src":"29640:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29652:9:88","nodeType":"YulIdentifier","src":"29652:9:88"},{"kind":"number","nativeSrc":"29663:2:88","nodeType":"YulLiteral","src":"29663:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29648:3:88","nodeType":"YulIdentifier","src":"29648:3:88"},"nativeSrc":"29648:18:88","nodeType":"YulFunctionCall","src":"29648:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29640:4:88","nodeType":"YulIdentifier","src":"29640:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29324:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29475:9:88","nodeType":"YulTypedName","src":"29475:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29489:4:88","nodeType":"YulTypedName","src":"29489:4:88","type":""}],"src":"29324:348:88"},{"body":{"nativeSrc":"29851:181:88","nodeType":"YulBlock","src":"29851:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29868:9:88","nodeType":"YulIdentifier","src":"29868:9:88"},{"kind":"number","nativeSrc":"29879:2:88","nodeType":"YulLiteral","src":"29879:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29861:6:88","nodeType":"YulIdentifier","src":"29861:6:88"},"nativeSrc":"29861:21:88","nodeType":"YulFunctionCall","src":"29861:21:88"},"nativeSrc":"29861:21:88","nodeType":"YulExpressionStatement","src":"29861:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29902:9:88","nodeType":"YulIdentifier","src":"29902:9:88"},{"kind":"number","nativeSrc":"29913:2:88","nodeType":"YulLiteral","src":"29913:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29898:3:88","nodeType":"YulIdentifier","src":"29898:3:88"},"nativeSrc":"29898:18:88","nodeType":"YulFunctionCall","src":"29898:18:88"},{"kind":"number","nativeSrc":"29918:2:88","nodeType":"YulLiteral","src":"29918:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"29891:6:88","nodeType":"YulIdentifier","src":"29891:6:88"},"nativeSrc":"29891:30:88","nodeType":"YulFunctionCall","src":"29891:30:88"},"nativeSrc":"29891:30:88","nodeType":"YulExpressionStatement","src":"29891:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29941:9:88","nodeType":"YulIdentifier","src":"29941:9:88"},{"kind":"number","nativeSrc":"29952:2:88","nodeType":"YulLiteral","src":"29952:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29937:3:88","nodeType":"YulIdentifier","src":"29937:3:88"},"nativeSrc":"29937:18:88","nodeType":"YulFunctionCall","src":"29937:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nativeSrc":"29957:33:88","nodeType":"YulLiteral","src":"29957:33:88","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nativeSrc":"29930:6:88","nodeType":"YulIdentifier","src":"29930:6:88"},"nativeSrc":"29930:61:88","nodeType":"YulFunctionCall","src":"29930:61:88"},"nativeSrc":"29930:61:88","nodeType":"YulExpressionStatement","src":"29930:61:88"},{"nativeSrc":"30000:26:88","nodeType":"YulAssignment","src":"30000:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30012:9:88","nodeType":"YulIdentifier","src":"30012:9:88"},{"kind":"number","nativeSrc":"30023:2:88","nodeType":"YulLiteral","src":"30023:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30008:3:88","nodeType":"YulIdentifier","src":"30008:3:88"},"nativeSrc":"30008:18:88","nodeType":"YulFunctionCall","src":"30008:18:88"},"variableNames":[{"name":"tail","nativeSrc":"30000:4:88","nodeType":"YulIdentifier","src":"30000:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29677:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29828:9:88","nodeType":"YulTypedName","src":"29828:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29842:4:88","nodeType":"YulTypedName","src":"29842:4:88","type":""}],"src":"29677:355:88"},{"body":{"nativeSrc":"30211:224:88","nodeType":"YulBlock","src":"30211:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30228:9:88","nodeType":"YulIdentifier","src":"30228:9:88"},{"kind":"number","nativeSrc":"30239:2:88","nodeType":"YulLiteral","src":"30239:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30221:6:88","nodeType":"YulIdentifier","src":"30221:6:88"},"nativeSrc":"30221:21:88","nodeType":"YulFunctionCall","src":"30221:21:88"},"nativeSrc":"30221:21:88","nodeType":"YulExpressionStatement","src":"30221:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30262:9:88","nodeType":"YulIdentifier","src":"30262:9:88"},{"kind":"number","nativeSrc":"30273:2:88","nodeType":"YulLiteral","src":"30273:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30258:3:88","nodeType":"YulIdentifier","src":"30258:3:88"},"nativeSrc":"30258:18:88","nodeType":"YulFunctionCall","src":"30258:18:88"},{"kind":"number","nativeSrc":"30278:2:88","nodeType":"YulLiteral","src":"30278:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"30251:6:88","nodeType":"YulIdentifier","src":"30251:6:88"},"nativeSrc":"30251:30:88","nodeType":"YulFunctionCall","src":"30251:30:88"},"nativeSrc":"30251:30:88","nodeType":"YulExpressionStatement","src":"30251:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30301:9:88","nodeType":"YulIdentifier","src":"30301:9:88"},{"kind":"number","nativeSrc":"30312:2:88","nodeType":"YulLiteral","src":"30312:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30297:3:88","nodeType":"YulIdentifier","src":"30297:3:88"},"nativeSrc":"30297:18:88","nodeType":"YulFunctionCall","src":"30297:18:88"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nativeSrc":"30317:34:88","nodeType":"YulLiteral","src":"30317:34:88","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nativeSrc":"30290:6:88","nodeType":"YulIdentifier","src":"30290:6:88"},"nativeSrc":"30290:62:88","nodeType":"YulFunctionCall","src":"30290:62:88"},"nativeSrc":"30290:62:88","nodeType":"YulExpressionStatement","src":"30290:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30372:9:88","nodeType":"YulIdentifier","src":"30372:9:88"},{"kind":"number","nativeSrc":"30383:2:88","nodeType":"YulLiteral","src":"30383:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30368:3:88","nodeType":"YulIdentifier","src":"30368:3:88"},"nativeSrc":"30368:18:88","nodeType":"YulFunctionCall","src":"30368:18:88"},{"hexValue":"7565","kind":"string","nativeSrc":"30388:4:88","nodeType":"YulLiteral","src":"30388:4:88","type":"","value":"ue"}],"functionName":{"name":"mstore","nativeSrc":"30361:6:88","nodeType":"YulIdentifier","src":"30361:6:88"},"nativeSrc":"30361:32:88","nodeType":"YulFunctionCall","src":"30361:32:88"},"nativeSrc":"30361:32:88","nodeType":"YulExpressionStatement","src":"30361:32:88"},{"nativeSrc":"30402:27:88","nodeType":"YulAssignment","src":"30402:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30414:9:88","nodeType":"YulIdentifier","src":"30414:9:88"},{"kind":"number","nativeSrc":"30425:3:88","nodeType":"YulLiteral","src":"30425:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30410:3:88","nodeType":"YulIdentifier","src":"30410:3:88"},"nativeSrc":"30410:19:88","nodeType":"YulFunctionCall","src":"30410:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30402:4:88","nodeType":"YulIdentifier","src":"30402:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30037:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30188:9:88","nodeType":"YulTypedName","src":"30188:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30202:4:88","nodeType":"YulTypedName","src":"30202:4:88","type":""}],"src":"30037:398:88"},{"body":{"nativeSrc":"30614:182:88","nodeType":"YulBlock","src":"30614:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30631:9:88","nodeType":"YulIdentifier","src":"30631:9:88"},{"kind":"number","nativeSrc":"30642:2:88","nodeType":"YulLiteral","src":"30642:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30624:6:88","nodeType":"YulIdentifier","src":"30624:6:88"},"nativeSrc":"30624:21:88","nodeType":"YulFunctionCall","src":"30624:21:88"},"nativeSrc":"30624:21:88","nodeType":"YulExpressionStatement","src":"30624:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30665:9:88","nodeType":"YulIdentifier","src":"30665:9:88"},{"kind":"number","nativeSrc":"30676:2:88","nodeType":"YulLiteral","src":"30676:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30661:3:88","nodeType":"YulIdentifier","src":"30661:3:88"},"nativeSrc":"30661:18:88","nodeType":"YulFunctionCall","src":"30661:18:88"},{"kind":"number","nativeSrc":"30681:2:88","nodeType":"YulLiteral","src":"30681:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30654:6:88","nodeType":"YulIdentifier","src":"30654:6:88"},"nativeSrc":"30654:30:88","nodeType":"YulFunctionCall","src":"30654:30:88"},"nativeSrc":"30654:30:88","nodeType":"YulExpressionStatement","src":"30654:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30704:9:88","nodeType":"YulIdentifier","src":"30704:9:88"},{"kind":"number","nativeSrc":"30715:2:88","nodeType":"YulLiteral","src":"30715:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30700:3:88","nodeType":"YulIdentifier","src":"30700:3:88"},"nativeSrc":"30700:18:88","nodeType":"YulFunctionCall","src":"30700:18:88"},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","kind":"string","nativeSrc":"30720:34:88","nodeType":"YulLiteral","src":"30720:34:88","type":"","value":"Premium must be less than payout"}],"functionName":{"name":"mstore","nativeSrc":"30693:6:88","nodeType":"YulIdentifier","src":"30693:6:88"},"nativeSrc":"30693:62:88","nodeType":"YulFunctionCall","src":"30693:62:88"},"nativeSrc":"30693:62:88","nodeType":"YulExpressionStatement","src":"30693:62:88"},{"nativeSrc":"30764:26:88","nodeType":"YulAssignment","src":"30764:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30776:9:88","nodeType":"YulIdentifier","src":"30776:9:88"},{"kind":"number","nativeSrc":"30787:2:88","nodeType":"YulLiteral","src":"30787:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30772:3:88","nodeType":"YulIdentifier","src":"30772:3:88"},"nativeSrc":"30772:18:88","nodeType":"YulFunctionCall","src":"30772:18:88"},"variableNames":[{"name":"tail","nativeSrc":"30764:4:88","nodeType":"YulIdentifier","src":"30764:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30440:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30591:9:88","nodeType":"YulTypedName","src":"30591:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30605:4:88","nodeType":"YulTypedName","src":"30605:4:88","type":""}],"src":"30440:356:88"},{"body":{"nativeSrc":"30975:182:88","nodeType":"YulBlock","src":"30975:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30992:9:88","nodeType":"YulIdentifier","src":"30992:9:88"},{"kind":"number","nativeSrc":"31003:2:88","nodeType":"YulLiteral","src":"31003:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30985:6:88","nodeType":"YulIdentifier","src":"30985:6:88"},"nativeSrc":"30985:21:88","nodeType":"YulFunctionCall","src":"30985:21:88"},"nativeSrc":"30985:21:88","nodeType":"YulExpressionStatement","src":"30985:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31026:9:88","nodeType":"YulIdentifier","src":"31026:9:88"},{"kind":"number","nativeSrc":"31037:2:88","nodeType":"YulLiteral","src":"31037:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31022:3:88","nodeType":"YulIdentifier","src":"31022:3:88"},"nativeSrc":"31022:18:88","nodeType":"YulFunctionCall","src":"31022:18:88"},{"kind":"number","nativeSrc":"31042:2:88","nodeType":"YulLiteral","src":"31042:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31015:6:88","nodeType":"YulIdentifier","src":"31015:6:88"},"nativeSrc":"31015:30:88","nodeType":"YulFunctionCall","src":"31015:30:88"},"nativeSrc":"31015:30:88","nodeType":"YulExpressionStatement","src":"31015:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31065:9:88","nodeType":"YulIdentifier","src":"31065:9:88"},{"kind":"number","nativeSrc":"31076:2:88","nodeType":"YulLiteral","src":"31076:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31061:3:88","nodeType":"YulIdentifier","src":"31061:3:88"},"nativeSrc":"31061:18:88","nodeType":"YulFunctionCall","src":"31061:18:88"},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","kind":"string","nativeSrc":"31081:34:88","nodeType":"YulLiteral","src":"31081:34:88","type":"","value":"Expiration must be in the future"}],"functionName":{"name":"mstore","nativeSrc":"31054:6:88","nodeType":"YulIdentifier","src":"31054:6:88"},"nativeSrc":"31054:62:88","nodeType":"YulFunctionCall","src":"31054:62:88"},"nativeSrc":"31054:62:88","nodeType":"YulExpressionStatement","src":"31054:62:88"},{"nativeSrc":"31125:26:88","nodeType":"YulAssignment","src":"31125:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31137:9:88","nodeType":"YulIdentifier","src":"31137:9:88"},{"kind":"number","nativeSrc":"31148:2:88","nodeType":"YulLiteral","src":"31148:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31133:3:88","nodeType":"YulIdentifier","src":"31133:3:88"},"nativeSrc":"31133:18:88","nodeType":"YulFunctionCall","src":"31133:18:88"},"variableNames":[{"name":"tail","nativeSrc":"31125:4:88","nodeType":"YulIdentifier","src":"31125:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30801:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30952:9:88","nodeType":"YulTypedName","src":"30952:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30966:4:88","nodeType":"YulTypedName","src":"30966:4:88","type":""}],"src":"30801:356:88"},{"body":{"nativeSrc":"31207:137:88","nodeType":"YulBlock","src":"31207:137:88","statements":[{"nativeSrc":"31217:31:88","nodeType":"YulVariableDeclaration","src":"31217:31:88","value":{"arguments":[{"name":"y","nativeSrc":"31232:1:88","nodeType":"YulIdentifier","src":"31232:1:88"},{"kind":"number","nativeSrc":"31235:12:88","nodeType":"YulLiteral","src":"31235:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"31228:3:88","nodeType":"YulIdentifier","src":"31228:3:88"},"nativeSrc":"31228:20:88","nodeType":"YulFunctionCall","src":"31228:20:88"},"variables":[{"name":"y_1","nativeSrc":"31221:3:88","nodeType":"YulTypedName","src":"31221:3:88","type":""}]},{"body":{"nativeSrc":"31272:22:88","nodeType":"YulBlock","src":"31272:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"31274:16:88","nodeType":"YulIdentifier","src":"31274:16:88"},"nativeSrc":"31274:18:88","nodeType":"YulFunctionCall","src":"31274:18:88"},"nativeSrc":"31274:18:88","nodeType":"YulExpressionStatement","src":"31274:18:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"31267:3:88","nodeType":"YulIdentifier","src":"31267:3:88"}],"functionName":{"name":"iszero","nativeSrc":"31260:6:88","nodeType":"YulIdentifier","src":"31260:6:88"},"nativeSrc":"31260:11:88","nodeType":"YulFunctionCall","src":"31260:11:88"},"nativeSrc":"31257:37:88","nodeType":"YulIf","src":"31257:37:88"},{"nativeSrc":"31303:35:88","nodeType":"YulAssignment","src":"31303:35:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"31316:1:88","nodeType":"YulIdentifier","src":"31316:1:88"},{"kind":"number","nativeSrc":"31319:12:88","nodeType":"YulLiteral","src":"31319:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"31312:3:88","nodeType":"YulIdentifier","src":"31312:3:88"},"nativeSrc":"31312:20:88","nodeType":"YulFunctionCall","src":"31312:20:88"},{"name":"y_1","nativeSrc":"31334:3:88","nodeType":"YulIdentifier","src":"31334:3:88"}],"functionName":{"name":"div","nativeSrc":"31308:3:88","nodeType":"YulIdentifier","src":"31308:3:88"},"nativeSrc":"31308:30:88","nodeType":"YulFunctionCall","src":"31308:30:88"},"variableNames":[{"name":"r","nativeSrc":"31303:1:88","nodeType":"YulIdentifier","src":"31303:1:88"}]}]},"name":"checked_div_t_uint40","nativeSrc":"31162:182:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"31192:1:88","nodeType":"YulTypedName","src":"31192:1:88","type":""},{"name":"y","nativeSrc":"31195:1:88","nodeType":"YulTypedName","src":"31195:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"31201:1:88","nodeType":"YulTypedName","src":"31201:1:88","type":""}],"src":"31162:182:88"},{"body":{"nativeSrc":"31523:177:88","nodeType":"YulBlock","src":"31523:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31540:9:88","nodeType":"YulIdentifier","src":"31540:9:88"},{"kind":"number","nativeSrc":"31551:2:88","nodeType":"YulLiteral","src":"31551:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31533:6:88","nodeType":"YulIdentifier","src":"31533:6:88"},"nativeSrc":"31533:21:88","nodeType":"YulFunctionCall","src":"31533:21:88"},"nativeSrc":"31533:21:88","nodeType":"YulExpressionStatement","src":"31533:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31574:9:88","nodeType":"YulIdentifier","src":"31574:9:88"},{"kind":"number","nativeSrc":"31585:2:88","nodeType":"YulLiteral","src":"31585:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31570:3:88","nodeType":"YulIdentifier","src":"31570:3:88"},"nativeSrc":"31570:18:88","nodeType":"YulFunctionCall","src":"31570:18:88"},{"kind":"number","nativeSrc":"31590:2:88","nodeType":"YulLiteral","src":"31590:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"31563:6:88","nodeType":"YulIdentifier","src":"31563:6:88"},"nativeSrc":"31563:30:88","nodeType":"YulFunctionCall","src":"31563:30:88"},"nativeSrc":"31563:30:88","nodeType":"YulExpressionStatement","src":"31563:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31613:9:88","nodeType":"YulIdentifier","src":"31613:9:88"},{"kind":"number","nativeSrc":"31624:2:88","nodeType":"YulLiteral","src":"31624:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31609:3:88","nodeType":"YulIdentifier","src":"31609:3:88"},"nativeSrc":"31609:18:88","nodeType":"YulFunctionCall","src":"31609:18:88"},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","kind":"string","nativeSrc":"31629:29:88","nodeType":"YulLiteral","src":"31629:29:88","type":"","value":"Policy exceeds max duration"}],"functionName":{"name":"mstore","nativeSrc":"31602:6:88","nodeType":"YulIdentifier","src":"31602:6:88"},"nativeSrc":"31602:57:88","nodeType":"YulFunctionCall","src":"31602:57:88"},"nativeSrc":"31602:57:88","nodeType":"YulExpressionStatement","src":"31602:57:88"},{"nativeSrc":"31668:26:88","nodeType":"YulAssignment","src":"31668:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31680:9:88","nodeType":"YulIdentifier","src":"31680:9:88"},{"kind":"number","nativeSrc":"31691:2:88","nodeType":"YulLiteral","src":"31691:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31676:3:88","nodeType":"YulIdentifier","src":"31676:3:88"},"nativeSrc":"31676:18:88","nodeType":"YulFunctionCall","src":"31676:18:88"},"variableNames":[{"name":"tail","nativeSrc":"31668:4:88","nodeType":"YulIdentifier","src":"31668:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31349:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31500:9:88","nodeType":"YulTypedName","src":"31500:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31514:4:88","nodeType":"YulTypedName","src":"31514:4:88","type":""}],"src":"31349:351:88"},{"body":{"nativeSrc":"31879:180:88","nodeType":"YulBlock","src":"31879:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31896:9:88","nodeType":"YulIdentifier","src":"31896:9:88"},{"kind":"number","nativeSrc":"31907:2:88","nodeType":"YulLiteral","src":"31907:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31889:6:88","nodeType":"YulIdentifier","src":"31889:6:88"},"nativeSrc":"31889:21:88","nodeType":"YulFunctionCall","src":"31889:21:88"},"nativeSrc":"31889:21:88","nodeType":"YulExpressionStatement","src":"31889:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31930:9:88","nodeType":"YulIdentifier","src":"31930:9:88"},{"kind":"number","nativeSrc":"31941:2:88","nodeType":"YulLiteral","src":"31941:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31926:3:88","nodeType":"YulIdentifier","src":"31926:3:88"},"nativeSrc":"31926:18:88","nodeType":"YulFunctionCall","src":"31926:18:88"},{"kind":"number","nativeSrc":"31946:2:88","nodeType":"YulLiteral","src":"31946:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"31919:6:88","nodeType":"YulIdentifier","src":"31919:6:88"},"nativeSrc":"31919:30:88","nodeType":"YulFunctionCall","src":"31919:30:88"},"nativeSrc":"31919:30:88","nodeType":"YulExpressionStatement","src":"31919:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31969:9:88","nodeType":"YulIdentifier","src":"31969:9:88"},{"kind":"number","nativeSrc":"31980:2:88","nodeType":"YulLiteral","src":"31980:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31965:3:88","nodeType":"YulIdentifier","src":"31965:3:88"},"nativeSrc":"31965:18:88","nodeType":"YulFunctionCall","src":"31965:18:88"},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"31985:32:88","nodeType":"YulLiteral","src":"31985:32:88","type":"","value":"Customer can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"31958:6:88","nodeType":"YulIdentifier","src":"31958:6:88"},"nativeSrc":"31958:60:88","nodeType":"YulFunctionCall","src":"31958:60:88"},"nativeSrc":"31958:60:88","nodeType":"YulExpressionStatement","src":"31958:60:88"},{"nativeSrc":"32027:26:88","nodeType":"YulAssignment","src":"32027:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32039:9:88","nodeType":"YulIdentifier","src":"32039:9:88"},{"kind":"number","nativeSrc":"32050:2:88","nodeType":"YulLiteral","src":"32050:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32035:3:88","nodeType":"YulIdentifier","src":"32035:3:88"},"nativeSrc":"32035:18:88","nodeType":"YulFunctionCall","src":"32035:18:88"},"variableNames":[{"name":"tail","nativeSrc":"32027:4:88","nodeType":"YulIdentifier","src":"32027:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31705:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31856:9:88","nodeType":"YulTypedName","src":"31856:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31870:4:88","nodeType":"YulTypedName","src":"31870:4:88","type":""}],"src":"31705:354:88"},{"body":{"nativeSrc":"32238:235:88","nodeType":"YulBlock","src":"32238:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32255:9:88","nodeType":"YulIdentifier","src":"32255:9:88"},{"kind":"number","nativeSrc":"32266:2:88","nodeType":"YulLiteral","src":"32266:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32248:6:88","nodeType":"YulIdentifier","src":"32248:6:88"},"nativeSrc":"32248:21:88","nodeType":"YulFunctionCall","src":"32248:21:88"},"nativeSrc":"32248:21:88","nodeType":"YulExpressionStatement","src":"32248:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32289:9:88","nodeType":"YulIdentifier","src":"32289:9:88"},{"kind":"number","nativeSrc":"32300:2:88","nodeType":"YulLiteral","src":"32300:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32285:3:88","nodeType":"YulIdentifier","src":"32285:3:88"},"nativeSrc":"32285:18:88","nodeType":"YulFunctionCall","src":"32285:18:88"},{"kind":"number","nativeSrc":"32305:2:88","nodeType":"YulLiteral","src":"32305:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"32278:6:88","nodeType":"YulIdentifier","src":"32278:6:88"},"nativeSrc":"32278:30:88","nodeType":"YulFunctionCall","src":"32278:30:88"},"nativeSrc":"32278:30:88","nodeType":"YulExpressionStatement","src":"32278:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32328:9:88","nodeType":"YulIdentifier","src":"32328:9:88"},{"kind":"number","nativeSrc":"32339:2:88","nodeType":"YulLiteral","src":"32339:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32324:3:88","nodeType":"YulIdentifier","src":"32324:3:88"},"nativeSrc":"32324:18:88","nodeType":"YulFunctionCall","src":"32324:18:88"},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e736665","kind":"string","nativeSrc":"32344:34:88","nodeType":"YulLiteral","src":"32344:34:88","type":"","value":"You must allow ENSURO to transfe"}],"functionName":{"name":"mstore","nativeSrc":"32317:6:88","nodeType":"YulIdentifier","src":"32317:6:88"},"nativeSrc":"32317:62:88","nodeType":"YulFunctionCall","src":"32317:62:88"},"nativeSrc":"32317:62:88","nodeType":"YulExpressionStatement","src":"32317:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32399:9:88","nodeType":"YulIdentifier","src":"32399:9:88"},{"kind":"number","nativeSrc":"32410:2:88","nodeType":"YulLiteral","src":"32410:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32395:3:88","nodeType":"YulIdentifier","src":"32395:3:88"},"nativeSrc":"32395:18:88","nodeType":"YulFunctionCall","src":"32395:18:88"},{"hexValue":"7220746865207072656d69756d","kind":"string","nativeSrc":"32415:15:88","nodeType":"YulLiteral","src":"32415:15:88","type":"","value":"r the premium"}],"functionName":{"name":"mstore","nativeSrc":"32388:6:88","nodeType":"YulIdentifier","src":"32388:6:88"},"nativeSrc":"32388:43:88","nodeType":"YulFunctionCall","src":"32388:43:88"},"nativeSrc":"32388:43:88","nodeType":"YulExpressionStatement","src":"32388:43:88"},{"nativeSrc":"32440:27:88","nodeType":"YulAssignment","src":"32440:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32452:9:88","nodeType":"YulIdentifier","src":"32452:9:88"},{"kind":"number","nativeSrc":"32463:3:88","nodeType":"YulLiteral","src":"32463:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32448:3:88","nodeType":"YulIdentifier","src":"32448:3:88"},"nativeSrc":"32448:19:88","nodeType":"YulFunctionCall","src":"32448:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32440:4:88","nodeType":"YulIdentifier","src":"32440:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32064:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32215:9:88","nodeType":"YulTypedName","src":"32215:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32229:4:88","nodeType":"YulTypedName","src":"32229:4:88","type":""}],"src":"32064:409:88"},{"body":{"nativeSrc":"32652:237:88","nodeType":"YulBlock","src":"32652:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32669:9:88","nodeType":"YulIdentifier","src":"32669:9:88"},{"kind":"number","nativeSrc":"32680:2:88","nodeType":"YulLiteral","src":"32680:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32662:6:88","nodeType":"YulIdentifier","src":"32662:6:88"},"nativeSrc":"32662:21:88","nodeType":"YulFunctionCall","src":"32662:21:88"},"nativeSrc":"32662:21:88","nodeType":"YulExpressionStatement","src":"32662:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32703:9:88","nodeType":"YulIdentifier","src":"32703:9:88"},{"kind":"number","nativeSrc":"32714:2:88","nodeType":"YulLiteral","src":"32714:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32699:3:88","nodeType":"YulIdentifier","src":"32699:3:88"},"nativeSrc":"32699:18:88","nodeType":"YulFunctionCall","src":"32699:18:88"},{"kind":"number","nativeSrc":"32719:2:88","nodeType":"YulLiteral","src":"32719:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"32692:6:88","nodeType":"YulIdentifier","src":"32692:6:88"},"nativeSrc":"32692:30:88","nodeType":"YulFunctionCall","src":"32692:30:88"},"nativeSrc":"32692:30:88","nodeType":"YulExpressionStatement","src":"32692:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32742:9:88","nodeType":"YulIdentifier","src":"32742:9:88"},{"kind":"number","nativeSrc":"32753:2:88","nodeType":"YulLiteral","src":"32753:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32738:3:88","nodeType":"YulIdentifier","src":"32738:3:88"},"nativeSrc":"32738:18:88","nodeType":"YulFunctionCall","src":"32738:18:88"},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e73","kind":"string","nativeSrc":"32758:34:88","nodeType":"YulLiteral","src":"32758:34:88","type":"","value":"Payer must allow caller to trans"}],"functionName":{"name":"mstore","nativeSrc":"32731:6:88","nodeType":"YulIdentifier","src":"32731:6:88"},"nativeSrc":"32731:62:88","nodeType":"YulFunctionCall","src":"32731:62:88"},"nativeSrc":"32731:62:88","nodeType":"YulExpressionStatement","src":"32731:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32813:9:88","nodeType":"YulIdentifier","src":"32813:9:88"},{"kind":"number","nativeSrc":"32824:2:88","nodeType":"YulLiteral","src":"32824:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32809:3:88","nodeType":"YulIdentifier","src":"32809:3:88"},"nativeSrc":"32809:18:88","nodeType":"YulFunctionCall","src":"32809:18:88"},{"hexValue":"66657220746865207072656d69756d","kind":"string","nativeSrc":"32829:17:88","nodeType":"YulLiteral","src":"32829:17:88","type":"","value":"fer the premium"}],"functionName":{"name":"mstore","nativeSrc":"32802:6:88","nodeType":"YulIdentifier","src":"32802:6:88"},"nativeSrc":"32802:45:88","nodeType":"YulFunctionCall","src":"32802:45:88"},"nativeSrc":"32802:45:88","nodeType":"YulExpressionStatement","src":"32802:45:88"},{"nativeSrc":"32856:27:88","nodeType":"YulAssignment","src":"32856:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32868:9:88","nodeType":"YulIdentifier","src":"32868:9:88"},{"kind":"number","nativeSrc":"32879:3:88","nodeType":"YulLiteral","src":"32879:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32864:3:88","nodeType":"YulIdentifier","src":"32864:3:88"},"nativeSrc":"32864:19:88","nodeType":"YulFunctionCall","src":"32864:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32856:4:88","nodeType":"YulIdentifier","src":"32856:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32478:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32629:9:88","nodeType":"YulTypedName","src":"32629:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32643:4:88","nodeType":"YulTypedName","src":"32643:4:88","type":""}],"src":"32478:411:88"},{"body":{"nativeSrc":"33068:240:88","nodeType":"YulBlock","src":"33068:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33085:9:88","nodeType":"YulIdentifier","src":"33085:9:88"},{"kind":"number","nativeSrc":"33096:2:88","nodeType":"YulLiteral","src":"33096:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33078:6:88","nodeType":"YulIdentifier","src":"33078:6:88"},"nativeSrc":"33078:21:88","nodeType":"YulFunctionCall","src":"33078:21:88"},"nativeSrc":"33078:21:88","nodeType":"YulExpressionStatement","src":"33078:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33119:9:88","nodeType":"YulIdentifier","src":"33119:9:88"},{"kind":"number","nativeSrc":"33130:2:88","nodeType":"YulLiteral","src":"33130:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33115:3:88","nodeType":"YulIdentifier","src":"33115:3:88"},"nativeSrc":"33115:18:88","nodeType":"YulFunctionCall","src":"33115:18:88"},{"kind":"number","nativeSrc":"33135:2:88","nodeType":"YulLiteral","src":"33135:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"33108:6:88","nodeType":"YulIdentifier","src":"33108:6:88"},"nativeSrc":"33108:30:88","nodeType":"YulFunctionCall","src":"33108:30:88"},"nativeSrc":"33108:30:88","nodeType":"YulExpressionStatement","src":"33108:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33158:9:88","nodeType":"YulIdentifier","src":"33158:9:88"},{"kind":"number","nativeSrc":"33169:2:88","nodeType":"YulLiteral","src":"33169:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33154:3:88","nodeType":"YulIdentifier","src":"33154:3:88"},"nativeSrc":"33154:18:88","nodeType":"YulFunctionCall","src":"33154:18:88"},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e20","kind":"string","nativeSrc":"33174:34:88","nodeType":"YulLiteral","src":"33174:34:88","type":"","value":"RiskModule: Payout is more than "}],"functionName":{"name":"mstore","nativeSrc":"33147:6:88","nodeType":"YulIdentifier","src":"33147:6:88"},"nativeSrc":"33147:62:88","nodeType":"YulFunctionCall","src":"33147:62:88"},"nativeSrc":"33147:62:88","nodeType":"YulExpressionStatement","src":"33147:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33229:9:88","nodeType":"YulIdentifier","src":"33229:9:88"},{"kind":"number","nativeSrc":"33240:2:88","nodeType":"YulLiteral","src":"33240:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33225:3:88","nodeType":"YulIdentifier","src":"33225:3:88"},"nativeSrc":"33225:18:88","nodeType":"YulFunctionCall","src":"33225:18:88"},{"hexValue":"6d6178696d756d2070657220706f6c696379","kind":"string","nativeSrc":"33245:20:88","nodeType":"YulLiteral","src":"33245:20:88","type":"","value":"maximum per policy"}],"functionName":{"name":"mstore","nativeSrc":"33218:6:88","nodeType":"YulIdentifier","src":"33218:6:88"},"nativeSrc":"33218:48:88","nodeType":"YulFunctionCall","src":"33218:48:88"},"nativeSrc":"33218:48:88","nodeType":"YulExpressionStatement","src":"33218:48:88"},{"nativeSrc":"33275:27:88","nodeType":"YulAssignment","src":"33275:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33287:9:88","nodeType":"YulIdentifier","src":"33287:9:88"},{"kind":"number","nativeSrc":"33298:3:88","nodeType":"YulLiteral","src":"33298:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33283:3:88","nodeType":"YulIdentifier","src":"33283:3:88"},"nativeSrc":"33283:19:88","nodeType":"YulFunctionCall","src":"33283:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33275:4:88","nodeType":"YulIdentifier","src":"33275:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32894:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33045:9:88","nodeType":"YulTypedName","src":"33045:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33059:4:88","nodeType":"YulTypedName","src":"33059:4:88","type":""}],"src":"32894:414:88"},{"body":{"nativeSrc":"33487:225:88","nodeType":"YulBlock","src":"33487:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33504:9:88","nodeType":"YulIdentifier","src":"33504:9:88"},{"kind":"number","nativeSrc":"33515:2:88","nodeType":"YulLiteral","src":"33515:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33497:6:88","nodeType":"YulIdentifier","src":"33497:6:88"},"nativeSrc":"33497:21:88","nodeType":"YulFunctionCall","src":"33497:21:88"},"nativeSrc":"33497:21:88","nodeType":"YulExpressionStatement","src":"33497:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33538:9:88","nodeType":"YulIdentifier","src":"33538:9:88"},{"kind":"number","nativeSrc":"33549:2:88","nodeType":"YulLiteral","src":"33549:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33534:3:88","nodeType":"YulIdentifier","src":"33534:3:88"},"nativeSrc":"33534:18:88","nodeType":"YulFunctionCall","src":"33534:18:88"},{"kind":"number","nativeSrc":"33554:2:88","nodeType":"YulLiteral","src":"33554:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"33527:6:88","nodeType":"YulIdentifier","src":"33527:6:88"},"nativeSrc":"33527:30:88","nodeType":"YulFunctionCall","src":"33527:30:88"},"nativeSrc":"33527:30:88","nodeType":"YulExpressionStatement","src":"33527:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33577:9:88","nodeType":"YulIdentifier","src":"33577:9:88"},{"kind":"number","nativeSrc":"33588:2:88","nodeType":"YulLiteral","src":"33588:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33573:3:88","nodeType":"YulIdentifier","src":"33573:3:88"},"nativeSrc":"33573:18:88","nodeType":"YulFunctionCall","src":"33573:18:88"},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565","kind":"string","nativeSrc":"33593:34:88","nodeType":"YulLiteral","src":"33593:34:88","type":"","value":"RiskModule: Exposure limit excee"}],"functionName":{"name":"mstore","nativeSrc":"33566:6:88","nodeType":"YulIdentifier","src":"33566:6:88"},"nativeSrc":"33566:62:88","nodeType":"YulFunctionCall","src":"33566:62:88"},"nativeSrc":"33566:62:88","nodeType":"YulExpressionStatement","src":"33566:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33648:9:88","nodeType":"YulIdentifier","src":"33648:9:88"},{"kind":"number","nativeSrc":"33659:2:88","nodeType":"YulLiteral","src":"33659:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33644:3:88","nodeType":"YulIdentifier","src":"33644:3:88"},"nativeSrc":"33644:18:88","nodeType":"YulFunctionCall","src":"33644:18:88"},{"hexValue":"646564","kind":"string","nativeSrc":"33664:5:88","nodeType":"YulLiteral","src":"33664:5:88","type":"","value":"ded"}],"functionName":{"name":"mstore","nativeSrc":"33637:6:88","nodeType":"YulIdentifier","src":"33637:6:88"},"nativeSrc":"33637:33:88","nodeType":"YulFunctionCall","src":"33637:33:88"},"nativeSrc":"33637:33:88","nodeType":"YulExpressionStatement","src":"33637:33:88"},{"nativeSrc":"33679:27:88","nodeType":"YulAssignment","src":"33679:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33691:9:88","nodeType":"YulIdentifier","src":"33691:9:88"},{"kind":"number","nativeSrc":"33702:3:88","nodeType":"YulLiteral","src":"33702:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33687:3:88","nodeType":"YulIdentifier","src":"33687:3:88"},"nativeSrc":"33687:19:88","nodeType":"YulFunctionCall","src":"33687:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33679:4:88","nodeType":"YulIdentifier","src":"33679:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33313:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33464:9:88","nodeType":"YulTypedName","src":"33464:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33478:4:88","nodeType":"YulTypedName","src":"33478:4:88","type":""}],"src":"33313:399:88"},{"body":{"nativeSrc":"33958:316:88","nodeType":"YulBlock","src":"33958:316:88","statements":[{"nativeSrc":"33968:27:88","nodeType":"YulAssignment","src":"33968:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33980:9:88","nodeType":"YulIdentifier","src":"33980:9:88"},{"kind":"number","nativeSrc":"33991:3:88","nodeType":"YulLiteral","src":"33991:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"33976:3:88","nodeType":"YulIdentifier","src":"33976:3:88"},"nativeSrc":"33976:19:88","nodeType":"YulFunctionCall","src":"33976:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33968:4:88","nodeType":"YulIdentifier","src":"33968:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"34033:6:88","nodeType":"YulIdentifier","src":"34033:6:88"},{"name":"headStart","nativeSrc":"34041:9:88","nodeType":"YulIdentifier","src":"34041:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"34004:28:88","nodeType":"YulIdentifier","src":"34004:28:88"},"nativeSrc":"34004:47:88","nodeType":"YulFunctionCall","src":"34004:47:88"},"nativeSrc":"34004:47:88","nodeType":"YulExpressionStatement","src":"34004:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34071:9:88","nodeType":"YulIdentifier","src":"34071:9:88"},{"kind":"number","nativeSrc":"34082:3:88","nodeType":"YulLiteral","src":"34082:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"34067:3:88","nodeType":"YulIdentifier","src":"34067:3:88"},"nativeSrc":"34067:19:88","nodeType":"YulFunctionCall","src":"34067:19:88"},{"arguments":[{"name":"value1","nativeSrc":"34092:6:88","nodeType":"YulIdentifier","src":"34092:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34108:3:88","nodeType":"YulLiteral","src":"34108:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"34113:1:88","nodeType":"YulLiteral","src":"34113:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"34104:3:88","nodeType":"YulIdentifier","src":"34104:3:88"},"nativeSrc":"34104:11:88","nodeType":"YulFunctionCall","src":"34104:11:88"},{"kind":"number","nativeSrc":"34117:1:88","nodeType":"YulLiteral","src":"34117:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"34100:3:88","nodeType":"YulIdentifier","src":"34100:3:88"},"nativeSrc":"34100:19:88","nodeType":"YulFunctionCall","src":"34100:19:88"}],"functionName":{"name":"and","nativeSrc":"34088:3:88","nodeType":"YulIdentifier","src":"34088:3:88"},"nativeSrc":"34088:32:88","nodeType":"YulFunctionCall","src":"34088:32:88"}],"functionName":{"name":"mstore","nativeSrc":"34060:6:88","nodeType":"YulIdentifier","src":"34060:6:88"},"nativeSrc":"34060:61:88","nodeType":"YulFunctionCall","src":"34060:61:88"},"nativeSrc":"34060:61:88","nodeType":"YulExpressionStatement","src":"34060:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34141:9:88","nodeType":"YulIdentifier","src":"34141:9:88"},{"kind":"number","nativeSrc":"34152:3:88","nodeType":"YulLiteral","src":"34152:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"34137:3:88","nodeType":"YulIdentifier","src":"34137:3:88"},"nativeSrc":"34137:19:88","nodeType":"YulFunctionCall","src":"34137:19:88"},{"arguments":[{"name":"value2","nativeSrc":"34162:6:88","nodeType":"YulIdentifier","src":"34162:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34178:3:88","nodeType":"YulLiteral","src":"34178:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"34183:1:88","nodeType":"YulLiteral","src":"34183:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"34174:3:88","nodeType":"YulIdentifier","src":"34174:3:88"},"nativeSrc":"34174:11:88","nodeType":"YulFunctionCall","src":"34174:11:88"},{"kind":"number","nativeSrc":"34187:1:88","nodeType":"YulLiteral","src":"34187:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"34170:3:88","nodeType":"YulIdentifier","src":"34170:3:88"},"nativeSrc":"34170:19:88","nodeType":"YulFunctionCall","src":"34170:19:88"}],"functionName":{"name":"and","nativeSrc":"34158:3:88","nodeType":"YulIdentifier","src":"34158:3:88"},"nativeSrc":"34158:32:88","nodeType":"YulFunctionCall","src":"34158:32:88"}],"functionName":{"name":"mstore","nativeSrc":"34130:6:88","nodeType":"YulIdentifier","src":"34130:6:88"},"nativeSrc":"34130:61:88","nodeType":"YulFunctionCall","src":"34130:61:88"},"nativeSrc":"34130:61:88","nodeType":"YulExpressionStatement","src":"34130:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34211:9:88","nodeType":"YulIdentifier","src":"34211:9:88"},{"kind":"number","nativeSrc":"34222:3:88","nodeType":"YulLiteral","src":"34222:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"34207:3:88","nodeType":"YulIdentifier","src":"34207:3:88"},"nativeSrc":"34207:19:88","nodeType":"YulFunctionCall","src":"34207:19:88"},{"arguments":[{"name":"value3","nativeSrc":"34232:6:88","nodeType":"YulIdentifier","src":"34232:6:88"},{"kind":"number","nativeSrc":"34240:26:88","nodeType":"YulLiteral","src":"34240:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"34228:3:88","nodeType":"YulIdentifier","src":"34228:3:88"},"nativeSrc":"34228:39:88","nodeType":"YulFunctionCall","src":"34228:39:88"}],"functionName":{"name":"mstore","nativeSrc":"34200:6:88","nodeType":"YulIdentifier","src":"34200:6:88"},"nativeSrc":"34200:68:88","nodeType":"YulFunctionCall","src":"34200:68:88"},"nativeSrc":"34200:68:88","nodeType":"YulExpressionStatement","src":"34200:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed","nativeSrc":"33717:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33903:9:88","nodeType":"YulTypedName","src":"33903:9:88","type":""},{"name":"value3","nativeSrc":"33914:6:88","nodeType":"YulTypedName","src":"33914:6:88","type":""},{"name":"value2","nativeSrc":"33922:6:88","nodeType":"YulTypedName","src":"33922:6:88","type":""},{"name":"value1","nativeSrc":"33930:6:88","nodeType":"YulTypedName","src":"33930:6:88","type":""},{"name":"value0","nativeSrc":"33938:6:88","nodeType":"YulTypedName","src":"33938:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33949:4:88","nodeType":"YulTypedName","src":"33949:4:88","type":""}],"src":"33717:557:88"},{"body":{"nativeSrc":"34381:170:88","nodeType":"YulBlock","src":"34381:170:88","statements":[{"body":{"nativeSrc":"34427:16:88","nodeType":"YulBlock","src":"34427:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34436:1:88","nodeType":"YulLiteral","src":"34436:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34439:1:88","nodeType":"YulLiteral","src":"34439:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34429:6:88","nodeType":"YulIdentifier","src":"34429:6:88"},"nativeSrc":"34429:12:88","nodeType":"YulFunctionCall","src":"34429:12:88"},"nativeSrc":"34429:12:88","nodeType":"YulExpressionStatement","src":"34429:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"34402:7:88","nodeType":"YulIdentifier","src":"34402:7:88"},{"name":"headStart","nativeSrc":"34411:9:88","nodeType":"YulIdentifier","src":"34411:9:88"}],"functionName":{"name":"sub","nativeSrc":"34398:3:88","nodeType":"YulIdentifier","src":"34398:3:88"},"nativeSrc":"34398:23:88","nodeType":"YulFunctionCall","src":"34398:23:88"},{"kind":"number","nativeSrc":"34423:2:88","nodeType":"YulLiteral","src":"34423:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"34394:3:88","nodeType":"YulIdentifier","src":"34394:3:88"},"nativeSrc":"34394:32:88","nodeType":"YulFunctionCall","src":"34394:32:88"},"nativeSrc":"34391:52:88","nodeType":"YulIf","src":"34391:52:88"},{"nativeSrc":"34452:29:88","nodeType":"YulVariableDeclaration","src":"34452:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34471:9:88","nodeType":"YulIdentifier","src":"34471:9:88"}],"functionName":{"name":"mload","nativeSrc":"34465:5:88","nodeType":"YulIdentifier","src":"34465:5:88"},"nativeSrc":"34465:16:88","nodeType":"YulFunctionCall","src":"34465:16:88"},"variables":[{"name":"value","nativeSrc":"34456:5:88","nodeType":"YulTypedName","src":"34456:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34515:5:88","nodeType":"YulIdentifier","src":"34515:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34490:24:88","nodeType":"YulIdentifier","src":"34490:24:88"},"nativeSrc":"34490:31:88","nodeType":"YulFunctionCall","src":"34490:31:88"},"nativeSrc":"34490:31:88","nodeType":"YulExpressionStatement","src":"34490:31:88"},{"nativeSrc":"34530:15:88","nodeType":"YulAssignment","src":"34530:15:88","value":{"name":"value","nativeSrc":"34540:5:88","nodeType":"YulIdentifier","src":"34540:5:88"},"variableNames":[{"name":"value0","nativeSrc":"34530:6:88","nodeType":"YulIdentifier","src":"34530:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"34279:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34347:9:88","nodeType":"YulTypedName","src":"34347:9:88","type":""},{"name":"dataEnd","nativeSrc":"34358:7:88","nodeType":"YulTypedName","src":"34358:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"34370:6:88","nodeType":"YulTypedName","src":"34370:6:88","type":""}],"src":"34279:272:88"},{"body":{"nativeSrc":"34730:225:88","nodeType":"YulBlock","src":"34730:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34747:9:88","nodeType":"YulIdentifier","src":"34747:9:88"},{"kind":"number","nativeSrc":"34758:2:88","nodeType":"YulLiteral","src":"34758:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34740:6:88","nodeType":"YulIdentifier","src":"34740:6:88"},"nativeSrc":"34740:21:88","nodeType":"YulFunctionCall","src":"34740:21:88"},"nativeSrc":"34740:21:88","nodeType":"YulExpressionStatement","src":"34740:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34781:9:88","nodeType":"YulIdentifier","src":"34781:9:88"},{"kind":"number","nativeSrc":"34792:2:88","nodeType":"YulLiteral","src":"34792:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34777:3:88","nodeType":"YulIdentifier","src":"34777:3:88"},"nativeSrc":"34777:18:88","nodeType":"YulFunctionCall","src":"34777:18:88"},{"kind":"number","nativeSrc":"34797:2:88","nodeType":"YulLiteral","src":"34797:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"34770:6:88","nodeType":"YulIdentifier","src":"34770:6:88"},"nativeSrc":"34770:30:88","nodeType":"YulFunctionCall","src":"34770:30:88"},"nativeSrc":"34770:30:88","nodeType":"YulExpressionStatement","src":"34770:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34820:9:88","nodeType":"YulIdentifier","src":"34820:9:88"},{"kind":"number","nativeSrc":"34831:2:88","nodeType":"YulLiteral","src":"34831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34816:3:88","nodeType":"YulIdentifier","src":"34816:3:88"},"nativeSrc":"34816:18:88","nodeType":"YulFunctionCall","src":"34816:18:88"},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d75737420626520","kind":"string","nativeSrc":"34836:34:88","nodeType":"YulLiteral","src":"34836:34:88","type":"","value":"Validation: jrCollRatio must be "}],"functionName":{"name":"mstore","nativeSrc":"34809:6:88","nodeType":"YulIdentifier","src":"34809:6:88"},"nativeSrc":"34809:62:88","nodeType":"YulFunctionCall","src":"34809:62:88"},"nativeSrc":"34809:62:88","nodeType":"YulExpressionStatement","src":"34809:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34891:9:88","nodeType":"YulIdentifier","src":"34891:9:88"},{"kind":"number","nativeSrc":"34902:2:88","nodeType":"YulLiteral","src":"34902:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34887:3:88","nodeType":"YulIdentifier","src":"34887:3:88"},"nativeSrc":"34887:18:88","nodeType":"YulFunctionCall","src":"34887:18:88"},{"hexValue":"3c3d31","kind":"string","nativeSrc":"34907:5:88","nodeType":"YulLiteral","src":"34907:5:88","type":"","value":"<=1"}],"functionName":{"name":"mstore","nativeSrc":"34880:6:88","nodeType":"YulIdentifier","src":"34880:6:88"},"nativeSrc":"34880:33:88","nodeType":"YulFunctionCall","src":"34880:33:88"},"nativeSrc":"34880:33:88","nodeType":"YulExpressionStatement","src":"34880:33:88"},{"nativeSrc":"34922:27:88","nodeType":"YulAssignment","src":"34922:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34934:9:88","nodeType":"YulIdentifier","src":"34934:9:88"},{"kind":"number","nativeSrc":"34945:3:88","nodeType":"YulLiteral","src":"34945:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34930:3:88","nodeType":"YulIdentifier","src":"34930:3:88"},"nativeSrc":"34930:19:88","nodeType":"YulFunctionCall","src":"34930:19:88"},"variableNames":[{"name":"tail","nativeSrc":"34922:4:88","nodeType":"YulIdentifier","src":"34922:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34556:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34707:9:88","nodeType":"YulTypedName","src":"34707:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34721:4:88","nodeType":"YulTypedName","src":"34721:4:88","type":""}],"src":"34556:399:88"},{"body":{"nativeSrc":"35134:223:88","nodeType":"YulBlock","src":"35134:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35151:9:88","nodeType":"YulIdentifier","src":"35151:9:88"},{"kind":"number","nativeSrc":"35162:2:88","nodeType":"YulLiteral","src":"35162:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35144:6:88","nodeType":"YulIdentifier","src":"35144:6:88"},"nativeSrc":"35144:21:88","nodeType":"YulFunctionCall","src":"35144:21:88"},"nativeSrc":"35144:21:88","nodeType":"YulExpressionStatement","src":"35144:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35185:9:88","nodeType":"YulIdentifier","src":"35185:9:88"},{"kind":"number","nativeSrc":"35196:2:88","nodeType":"YulLiteral","src":"35196:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35181:3:88","nodeType":"YulIdentifier","src":"35181:3:88"},"nativeSrc":"35181:18:88","nodeType":"YulFunctionCall","src":"35181:18:88"},{"kind":"number","nativeSrc":"35201:2:88","nodeType":"YulLiteral","src":"35201:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"35174:6:88","nodeType":"YulIdentifier","src":"35174:6:88"},"nativeSrc":"35174:30:88","nodeType":"YulFunctionCall","src":"35174:30:88"},"nativeSrc":"35174:30:88","nodeType":"YulExpressionStatement","src":"35174:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35224:9:88","nodeType":"YulIdentifier","src":"35224:9:88"},{"kind":"number","nativeSrc":"35235:2:88","nodeType":"YulLiteral","src":"35235:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35220:3:88","nodeType":"YulIdentifier","src":"35220:3:88"},"nativeSrc":"35220:18:88","nodeType":"YulFunctionCall","src":"35220:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d","kind":"string","nativeSrc":"35240:34:88","nodeType":"YulLiteral","src":"35240:34:88","type":"","value":"Validation: collRatio must be <="}],"functionName":{"name":"mstore","nativeSrc":"35213:6:88","nodeType":"YulIdentifier","src":"35213:6:88"},"nativeSrc":"35213:62:88","nodeType":"YulFunctionCall","src":"35213:62:88"},"nativeSrc":"35213:62:88","nodeType":"YulExpressionStatement","src":"35213:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35295:9:88","nodeType":"YulIdentifier","src":"35295:9:88"},{"kind":"number","nativeSrc":"35306:2:88","nodeType":"YulLiteral","src":"35306:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35291:3:88","nodeType":"YulIdentifier","src":"35291:3:88"},"nativeSrc":"35291:18:88","nodeType":"YulFunctionCall","src":"35291:18:88"},{"hexValue":"31","kind":"string","nativeSrc":"35311:3:88","nodeType":"YulLiteral","src":"35311:3:88","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"35284:6:88","nodeType":"YulIdentifier","src":"35284:6:88"},"nativeSrc":"35284:31:88","nodeType":"YulFunctionCall","src":"35284:31:88"},"nativeSrc":"35284:31:88","nodeType":"YulExpressionStatement","src":"35284:31:88"},{"nativeSrc":"35324:27:88","nodeType":"YulAssignment","src":"35324:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35336:9:88","nodeType":"YulIdentifier","src":"35336:9:88"},{"kind":"number","nativeSrc":"35347:3:88","nodeType":"YulLiteral","src":"35347:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35332:3:88","nodeType":"YulIdentifier","src":"35332:3:88"},"nativeSrc":"35332:19:88","nodeType":"YulFunctionCall","src":"35332:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35324:4:88","nodeType":"YulIdentifier","src":"35324:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34960:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35111:9:88","nodeType":"YulTypedName","src":"35111:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35125:4:88","nodeType":"YulTypedName","src":"35125:4:88","type":""}],"src":"34960:397:88"},{"body":{"nativeSrc":"35536:226:88","nodeType":"YulBlock","src":"35536:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35553:9:88","nodeType":"YulIdentifier","src":"35553:9:88"},{"kind":"number","nativeSrc":"35564:2:88","nodeType":"YulLiteral","src":"35564:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35546:6:88","nodeType":"YulIdentifier","src":"35546:6:88"},"nativeSrc":"35546:21:88","nodeType":"YulFunctionCall","src":"35546:21:88"},"nativeSrc":"35546:21:88","nodeType":"YulExpressionStatement","src":"35546:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35587:9:88","nodeType":"YulIdentifier","src":"35587:9:88"},{"kind":"number","nativeSrc":"35598:2:88","nodeType":"YulLiteral","src":"35598:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35583:3:88","nodeType":"YulIdentifier","src":"35583:3:88"},"nativeSrc":"35583:18:88","nodeType":"YulFunctionCall","src":"35583:18:88"},{"kind":"number","nativeSrc":"35603:2:88","nodeType":"YulLiteral","src":"35603:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"35576:6:88","nodeType":"YulIdentifier","src":"35576:6:88"},"nativeSrc":"35576:30:88","nodeType":"YulFunctionCall","src":"35576:30:88"},"nativeSrc":"35576:30:88","nodeType":"YulExpressionStatement","src":"35576:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35626:9:88","nodeType":"YulIdentifier","src":"35626:9:88"},{"kind":"number","nativeSrc":"35637:2:88","nodeType":"YulLiteral","src":"35637:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35622:3:88","nodeType":"YulIdentifier","src":"35622:3:88"},"nativeSrc":"35622:18:88","nodeType":"YulFunctionCall","src":"35622:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c52","kind":"string","nativeSrc":"35642:34:88","nodeType":"YulLiteral","src":"35642:34:88","type":"","value":"Validation: collRatio >= jrCollR"}],"functionName":{"name":"mstore","nativeSrc":"35615:6:88","nodeType":"YulIdentifier","src":"35615:6:88"},"nativeSrc":"35615:62:88","nodeType":"YulFunctionCall","src":"35615:62:88"},"nativeSrc":"35615:62:88","nodeType":"YulExpressionStatement","src":"35615:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35697:9:88","nodeType":"YulIdentifier","src":"35697:9:88"},{"kind":"number","nativeSrc":"35708:2:88","nodeType":"YulLiteral","src":"35708:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35693:3:88","nodeType":"YulIdentifier","src":"35693:3:88"},"nativeSrc":"35693:18:88","nodeType":"YulFunctionCall","src":"35693:18:88"},{"hexValue":"6174696f","kind":"string","nativeSrc":"35713:6:88","nodeType":"YulLiteral","src":"35713:6:88","type":"","value":"atio"}],"functionName":{"name":"mstore","nativeSrc":"35686:6:88","nodeType":"YulIdentifier","src":"35686:6:88"},"nativeSrc":"35686:34:88","nodeType":"YulFunctionCall","src":"35686:34:88"},"nativeSrc":"35686:34:88","nodeType":"YulExpressionStatement","src":"35686:34:88"},{"nativeSrc":"35729:27:88","nodeType":"YulAssignment","src":"35729:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35741:9:88","nodeType":"YulIdentifier","src":"35741:9:88"},{"kind":"number","nativeSrc":"35752:3:88","nodeType":"YulLiteral","src":"35752:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35737:3:88","nodeType":"YulIdentifier","src":"35737:3:88"},"nativeSrc":"35737:19:88","nodeType":"YulFunctionCall","src":"35737:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35729:4:88","nodeType":"YulIdentifier","src":"35729:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35362:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35513:9:88","nodeType":"YulTypedName","src":"35513:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35527:4:88","nodeType":"YulTypedName","src":"35527:4:88","type":""}],"src":"35362:400:88"},{"body":{"nativeSrc":"35941:182:88","nodeType":"YulBlock","src":"35941:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35958:9:88","nodeType":"YulIdentifier","src":"35958:9:88"},{"kind":"number","nativeSrc":"35969:2:88","nodeType":"YulLiteral","src":"35969:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35951:6:88","nodeType":"YulIdentifier","src":"35951:6:88"},"nativeSrc":"35951:21:88","nodeType":"YulFunctionCall","src":"35951:21:88"},"nativeSrc":"35951:21:88","nodeType":"YulExpressionStatement","src":"35951:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35992:9:88","nodeType":"YulIdentifier","src":"35992:9:88"},{"kind":"number","nativeSrc":"36003:2:88","nodeType":"YulLiteral","src":"36003:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35988:3:88","nodeType":"YulIdentifier","src":"35988:3:88"},"nativeSrc":"35988:18:88","nodeType":"YulFunctionCall","src":"35988:18:88"},{"kind":"number","nativeSrc":"36008:2:88","nodeType":"YulLiteral","src":"36008:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35981:6:88","nodeType":"YulIdentifier","src":"35981:6:88"},"nativeSrc":"35981:30:88","nodeType":"YulFunctionCall","src":"35981:30:88"},"nativeSrc":"35981:30:88","nodeType":"YulExpressionStatement","src":"35981:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36031:9:88","nodeType":"YulIdentifier","src":"36031:9:88"},{"kind":"number","nativeSrc":"36042:2:88","nodeType":"YulLiteral","src":"36042:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36027:3:88","nodeType":"YulIdentifier","src":"36027:3:88"},"nativeSrc":"36027:18:88","nodeType":"YulFunctionCall","src":"36027:18:88"},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","kind":"string","nativeSrc":"36047:34:88","nodeType":"YulLiteral","src":"36047:34:88","type":"","value":"Validation: moc must be [0.5, 4]"}],"functionName":{"name":"mstore","nativeSrc":"36020:6:88","nodeType":"YulIdentifier","src":"36020:6:88"},"nativeSrc":"36020:62:88","nodeType":"YulFunctionCall","src":"36020:62:88"},"nativeSrc":"36020:62:88","nodeType":"YulExpressionStatement","src":"36020:62:88"},{"nativeSrc":"36091:26:88","nodeType":"YulAssignment","src":"36091:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36103:9:88","nodeType":"YulIdentifier","src":"36103:9:88"},{"kind":"number","nativeSrc":"36114:2:88","nodeType":"YulLiteral","src":"36114:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36099:3:88","nodeType":"YulIdentifier","src":"36099:3:88"},"nativeSrc":"36099:18:88","nodeType":"YulFunctionCall","src":"36099:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36091:4:88","nodeType":"YulIdentifier","src":"36091:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35767:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35918:9:88","nodeType":"YulTypedName","src":"35918:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35932:4:88","nodeType":"YulTypedName","src":"35932:4:88","type":""}],"src":"35767:356:88"},{"body":{"nativeSrc":"36302:226:88","nodeType":"YulBlock","src":"36302:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36319:9:88","nodeType":"YulIdentifier","src":"36319:9:88"},{"kind":"number","nativeSrc":"36330:2:88","nodeType":"YulLiteral","src":"36330:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36312:6:88","nodeType":"YulIdentifier","src":"36312:6:88"},"nativeSrc":"36312:21:88","nodeType":"YulFunctionCall","src":"36312:21:88"},"nativeSrc":"36312:21:88","nodeType":"YulExpressionStatement","src":"36312:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36353:9:88","nodeType":"YulIdentifier","src":"36353:9:88"},{"kind":"number","nativeSrc":"36364:2:88","nodeType":"YulLiteral","src":"36364:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36349:3:88","nodeType":"YulIdentifier","src":"36349:3:88"},"nativeSrc":"36349:18:88","nodeType":"YulFunctionCall","src":"36349:18:88"},{"kind":"number","nativeSrc":"36369:2:88","nodeType":"YulLiteral","src":"36369:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"36342:6:88","nodeType":"YulIdentifier","src":"36342:6:88"},"nativeSrc":"36342:30:88","nodeType":"YulFunctionCall","src":"36342:30:88"},"nativeSrc":"36342:30:88","nodeType":"YulExpressionStatement","src":"36342:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36392:9:88","nodeType":"YulIdentifier","src":"36392:9:88"},{"kind":"number","nativeSrc":"36403:2:88","nodeType":"YulLiteral","src":"36403:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36388:3:88","nodeType":"YulIdentifier","src":"36388:3:88"},"nativeSrc":"36388:18:88","nodeType":"YulFunctionCall","src":"36388:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d75737420626520","kind":"string","nativeSrc":"36408:34:88","nodeType":"YulLiteral","src":"36408:34:88","type":"","value":"Validation: ensuroPpFee must be "}],"functionName":{"name":"mstore","nativeSrc":"36381:6:88","nodeType":"YulIdentifier","src":"36381:6:88"},"nativeSrc":"36381:62:88","nodeType":"YulFunctionCall","src":"36381:62:88"},"nativeSrc":"36381:62:88","nodeType":"YulExpressionStatement","src":"36381:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36463:9:88","nodeType":"YulIdentifier","src":"36463:9:88"},{"kind":"number","nativeSrc":"36474:2:88","nodeType":"YulLiteral","src":"36474:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36459:3:88","nodeType":"YulIdentifier","src":"36459:3:88"},"nativeSrc":"36459:18:88","nodeType":"YulFunctionCall","src":"36459:18:88"},{"hexValue":"3c3d2031","kind":"string","nativeSrc":"36479:6:88","nodeType":"YulLiteral","src":"36479:6:88","type":"","value":"<= 1"}],"functionName":{"name":"mstore","nativeSrc":"36452:6:88","nodeType":"YulIdentifier","src":"36452:6:88"},"nativeSrc":"36452:34:88","nodeType":"YulFunctionCall","src":"36452:34:88"},"nativeSrc":"36452:34:88","nodeType":"YulExpressionStatement","src":"36452:34:88"},{"nativeSrc":"36495:27:88","nodeType":"YulAssignment","src":"36495:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36507:9:88","nodeType":"YulIdentifier","src":"36507:9:88"},{"kind":"number","nativeSrc":"36518:3:88","nodeType":"YulLiteral","src":"36518:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36503:3:88","nodeType":"YulIdentifier","src":"36503:3:88"},"nativeSrc":"36503:19:88","nodeType":"YulFunctionCall","src":"36503:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36495:4:88","nodeType":"YulIdentifier","src":"36495:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36128:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36279:9:88","nodeType":"YulTypedName","src":"36279:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36293:4:88","nodeType":"YulTypedName","src":"36293:4:88","type":""}],"src":"36128:400:88"},{"body":{"nativeSrc":"36707:227:88","nodeType":"YulBlock","src":"36707:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36724:9:88","nodeType":"YulIdentifier","src":"36724:9:88"},{"kind":"number","nativeSrc":"36735:2:88","nodeType":"YulLiteral","src":"36735:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36717:6:88","nodeType":"YulIdentifier","src":"36717:6:88"},"nativeSrc":"36717:21:88","nodeType":"YulFunctionCall","src":"36717:21:88"},"nativeSrc":"36717:21:88","nodeType":"YulExpressionStatement","src":"36717:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36758:9:88","nodeType":"YulIdentifier","src":"36758:9:88"},{"kind":"number","nativeSrc":"36769:2:88","nodeType":"YulLiteral","src":"36769:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36754:3:88","nodeType":"YulIdentifier","src":"36754:3:88"},"nativeSrc":"36754:18:88","nodeType":"YulFunctionCall","src":"36754:18:88"},{"kind":"number","nativeSrc":"36774:2:88","nodeType":"YulLiteral","src":"36774:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"36747:6:88","nodeType":"YulIdentifier","src":"36747:6:88"},"nativeSrc":"36747:30:88","nodeType":"YulFunctionCall","src":"36747:30:88"},"nativeSrc":"36747:30:88","nodeType":"YulExpressionStatement","src":"36747:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36797:9:88","nodeType":"YulIdentifier","src":"36797:9:88"},{"kind":"number","nativeSrc":"36808:2:88","nodeType":"YulLiteral","src":"36808:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36793:3:88","nodeType":"YulIdentifier","src":"36793:3:88"},"nativeSrc":"36793:18:88","nodeType":"YulFunctionCall","src":"36793:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265","kind":"string","nativeSrc":"36813:34:88","nodeType":"YulLiteral","src":"36813:34:88","type":"","value":"Validation: ensuroCocFee must be"}],"functionName":{"name":"mstore","nativeSrc":"36786:6:88","nodeType":"YulIdentifier","src":"36786:6:88"},"nativeSrc":"36786:62:88","nodeType":"YulFunctionCall","src":"36786:62:88"},"nativeSrc":"36786:62:88","nodeType":"YulExpressionStatement","src":"36786:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36868:9:88","nodeType":"YulIdentifier","src":"36868:9:88"},{"kind":"number","nativeSrc":"36879:2:88","nodeType":"YulLiteral","src":"36879:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36864:3:88","nodeType":"YulIdentifier","src":"36864:3:88"},"nativeSrc":"36864:18:88","nodeType":"YulFunctionCall","src":"36864:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"36884:7:88","nodeType":"YulLiteral","src":"36884:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"36857:6:88","nodeType":"YulIdentifier","src":"36857:6:88"},"nativeSrc":"36857:35:88","nodeType":"YulFunctionCall","src":"36857:35:88"},"nativeSrc":"36857:35:88","nodeType":"YulExpressionStatement","src":"36857:35:88"},{"nativeSrc":"36901:27:88","nodeType":"YulAssignment","src":"36901:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36913:9:88","nodeType":"YulIdentifier","src":"36913:9:88"},{"kind":"number","nativeSrc":"36924:3:88","nodeType":"YulLiteral","src":"36924:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36909:3:88","nodeType":"YulIdentifier","src":"36909:3:88"},"nativeSrc":"36909:19:88","nodeType":"YulFunctionCall","src":"36909:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36901:4:88","nodeType":"YulIdentifier","src":"36901:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36533:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36684:9:88","nodeType":"YulTypedName","src":"36684:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36698:4:88","nodeType":"YulTypedName","src":"36698:4:88","type":""}],"src":"36533:401:88"},{"body":{"nativeSrc":"37113:227:88","nodeType":"YulBlock","src":"37113:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37130:9:88","nodeType":"YulIdentifier","src":"37130:9:88"},{"kind":"number","nativeSrc":"37141:2:88","nodeType":"YulLiteral","src":"37141:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37123:6:88","nodeType":"YulIdentifier","src":"37123:6:88"},"nativeSrc":"37123:21:88","nodeType":"YulFunctionCall","src":"37123:21:88"},"nativeSrc":"37123:21:88","nodeType":"YulExpressionStatement","src":"37123:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37164:9:88","nodeType":"YulIdentifier","src":"37164:9:88"},{"kind":"number","nativeSrc":"37175:2:88","nodeType":"YulLiteral","src":"37175:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37160:3:88","nodeType":"YulIdentifier","src":"37160:3:88"},"nativeSrc":"37160:18:88","nodeType":"YulFunctionCall","src":"37160:18:88"},{"kind":"number","nativeSrc":"37180:2:88","nodeType":"YulLiteral","src":"37180:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"37153:6:88","nodeType":"YulIdentifier","src":"37153:6:88"},"nativeSrc":"37153:30:88","nodeType":"YulFunctionCall","src":"37153:30:88"},"nativeSrc":"37153:30:88","nodeType":"YulExpressionStatement","src":"37153:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37203:9:88","nodeType":"YulIdentifier","src":"37203:9:88"},{"kind":"number","nativeSrc":"37214:2:88","nodeType":"YulLiteral","src":"37214:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37199:3:88","nodeType":"YulIdentifier","src":"37199:3:88"},"nativeSrc":"37199:18:88","nodeType":"YulFunctionCall","src":"37199:18:88"},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"37219:34:88","nodeType":"YulLiteral","src":"37219:34:88","type":"","value":"Validation: srRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"37192:6:88","nodeType":"YulIdentifier","src":"37192:6:88"},"nativeSrc":"37192:62:88","nodeType":"YulFunctionCall","src":"37192:62:88"},"nativeSrc":"37192:62:88","nodeType":"YulExpressionStatement","src":"37192:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37274:9:88","nodeType":"YulIdentifier","src":"37274:9:88"},{"kind":"number","nativeSrc":"37285:2:88","nodeType":"YulLiteral","src":"37285:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37270:3:88","nodeType":"YulIdentifier","src":"37270:3:88"},"nativeSrc":"37270:18:88","nodeType":"YulFunctionCall","src":"37270:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"37290:7:88","nodeType":"YulLiteral","src":"37290:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"37263:6:88","nodeType":"YulIdentifier","src":"37263:6:88"},"nativeSrc":"37263:35:88","nodeType":"YulFunctionCall","src":"37263:35:88"},"nativeSrc":"37263:35:88","nodeType":"YulExpressionStatement","src":"37263:35:88"},{"nativeSrc":"37307:27:88","nodeType":"YulAssignment","src":"37307:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37319:9:88","nodeType":"YulIdentifier","src":"37319:9:88"},{"kind":"number","nativeSrc":"37330:3:88","nodeType":"YulLiteral","src":"37330:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37315:3:88","nodeType":"YulIdentifier","src":"37315:3:88"},"nativeSrc":"37315:19:88","nodeType":"YulFunctionCall","src":"37315:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37307:4:88","nodeType":"YulIdentifier","src":"37307:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36939:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37090:9:88","nodeType":"YulTypedName","src":"37090:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37104:4:88","nodeType":"YulTypedName","src":"37104:4:88","type":""}],"src":"36939:401:88"},{"body":{"nativeSrc":"37519:227:88","nodeType":"YulBlock","src":"37519:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37536:9:88","nodeType":"YulIdentifier","src":"37536:9:88"},{"kind":"number","nativeSrc":"37547:2:88","nodeType":"YulLiteral","src":"37547:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37529:6:88","nodeType":"YulIdentifier","src":"37529:6:88"},"nativeSrc":"37529:21:88","nodeType":"YulFunctionCall","src":"37529:21:88"},"nativeSrc":"37529:21:88","nodeType":"YulExpressionStatement","src":"37529:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37570:9:88","nodeType":"YulIdentifier","src":"37570:9:88"},{"kind":"number","nativeSrc":"37581:2:88","nodeType":"YulLiteral","src":"37581:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37566:3:88","nodeType":"YulIdentifier","src":"37566:3:88"},"nativeSrc":"37566:18:88","nodeType":"YulFunctionCall","src":"37566:18:88"},{"kind":"number","nativeSrc":"37586:2:88","nodeType":"YulLiteral","src":"37586:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"37559:6:88","nodeType":"YulIdentifier","src":"37559:6:88"},"nativeSrc":"37559:30:88","nodeType":"YulFunctionCall","src":"37559:30:88"},"nativeSrc":"37559:30:88","nodeType":"YulExpressionStatement","src":"37559:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37609:9:88","nodeType":"YulIdentifier","src":"37609:9:88"},{"kind":"number","nativeSrc":"37620:2:88","nodeType":"YulLiteral","src":"37620:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37605:3:88","nodeType":"YulIdentifier","src":"37605:3:88"},"nativeSrc":"37605:18:88","nodeType":"YulFunctionCall","src":"37605:18:88"},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"37625:34:88","nodeType":"YulLiteral","src":"37625:34:88","type":"","value":"Validation: jrRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"37598:6:88","nodeType":"YulIdentifier","src":"37598:6:88"},"nativeSrc":"37598:62:88","nodeType":"YulFunctionCall","src":"37598:62:88"},"nativeSrc":"37598:62:88","nodeType":"YulExpressionStatement","src":"37598:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37680:9:88","nodeType":"YulIdentifier","src":"37680:9:88"},{"kind":"number","nativeSrc":"37691:2:88","nodeType":"YulLiteral","src":"37691:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37676:3:88","nodeType":"YulIdentifier","src":"37676:3:88"},"nativeSrc":"37676:18:88","nodeType":"YulFunctionCall","src":"37676:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"37696:7:88","nodeType":"YulLiteral","src":"37696:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"37669:6:88","nodeType":"YulIdentifier","src":"37669:6:88"},"nativeSrc":"37669:35:88","nodeType":"YulFunctionCall","src":"37669:35:88"},"nativeSrc":"37669:35:88","nodeType":"YulExpressionStatement","src":"37669:35:88"},{"nativeSrc":"37713:27:88","nodeType":"YulAssignment","src":"37713:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37725:9:88","nodeType":"YulIdentifier","src":"37725:9:88"},{"kind":"number","nativeSrc":"37736:3:88","nodeType":"YulLiteral","src":"37736:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37721:3:88","nodeType":"YulIdentifier","src":"37721:3:88"},"nativeSrc":"37721:19:88","nodeType":"YulFunctionCall","src":"37721:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37713:4:88","nodeType":"YulIdentifier","src":"37713:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37345:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37496:9:88","nodeType":"YulTypedName","src":"37496:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37510:4:88","nodeType":"YulTypedName","src":"37510:4:88","type":""}],"src":"37345:401:88"},{"body":{"nativeSrc":"37925:223:88","nodeType":"YulBlock","src":"37925:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37942:9:88","nodeType":"YulIdentifier","src":"37942:9:88"},{"kind":"number","nativeSrc":"37953:2:88","nodeType":"YulLiteral","src":"37953:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37935:6:88","nodeType":"YulIdentifier","src":"37935:6:88"},"nativeSrc":"37935:21:88","nodeType":"YulFunctionCall","src":"37935:21:88"},"nativeSrc":"37935:21:88","nodeType":"YulExpressionStatement","src":"37935:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37976:9:88","nodeType":"YulIdentifier","src":"37976:9:88"},{"kind":"number","nativeSrc":"37987:2:88","nodeType":"YulLiteral","src":"37987:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37972:3:88","nodeType":"YulIdentifier","src":"37972:3:88"},"nativeSrc":"37972:18:88","nodeType":"YulFunctionCall","src":"37972:18:88"},{"kind":"number","nativeSrc":"37992:2:88","nodeType":"YulLiteral","src":"37992:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"37965:6:88","nodeType":"YulIdentifier","src":"37965:6:88"},"nativeSrc":"37965:30:88","nodeType":"YulFunctionCall","src":"37965:30:88"},"nativeSrc":"37965:30:88","nodeType":"YulExpressionStatement","src":"37965:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38015:9:88","nodeType":"YulIdentifier","src":"38015:9:88"},{"kind":"number","nativeSrc":"38026:2:88","nodeType":"YulLiteral","src":"38026:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38011:3:88","nodeType":"YulIdentifier","src":"38011:3:88"},"nativeSrc":"38011:18:88","nodeType":"YulFunctionCall","src":"38011:18:88"},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e","kind":"string","nativeSrc":"38031:34:88","nodeType":"YulLiteral","src":"38031:34:88","type":"","value":"Exposure and MaxPayout must be >"}],"functionName":{"name":"mstore","nativeSrc":"38004:6:88","nodeType":"YulIdentifier","src":"38004:6:88"},"nativeSrc":"38004:62:88","nodeType":"YulFunctionCall","src":"38004:62:88"},"nativeSrc":"38004:62:88","nodeType":"YulExpressionStatement","src":"38004:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38086:9:88","nodeType":"YulIdentifier","src":"38086:9:88"},{"kind":"number","nativeSrc":"38097:2:88","nodeType":"YulLiteral","src":"38097:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38082:3:88","nodeType":"YulIdentifier","src":"38082:3:88"},"nativeSrc":"38082:18:88","nodeType":"YulFunctionCall","src":"38082:18:88"},{"hexValue":"30","kind":"string","nativeSrc":"38102:3:88","nodeType":"YulLiteral","src":"38102:3:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38075:6:88","nodeType":"YulIdentifier","src":"38075:6:88"},"nativeSrc":"38075:31:88","nodeType":"YulFunctionCall","src":"38075:31:88"},"nativeSrc":"38075:31:88","nodeType":"YulExpressionStatement","src":"38075:31:88"},{"nativeSrc":"38115:27:88","nodeType":"YulAssignment","src":"38115:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38127:9:88","nodeType":"YulIdentifier","src":"38127:9:88"},{"kind":"number","nativeSrc":"38138:3:88","nodeType":"YulLiteral","src":"38138:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38123:3:88","nodeType":"YulIdentifier","src":"38123:3:88"},"nativeSrc":"38123:19:88","nodeType":"YulFunctionCall","src":"38123:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38115:4:88","nodeType":"YulIdentifier","src":"38115:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37751:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37902:9:88","nodeType":"YulTypedName","src":"37902:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37916:4:88","nodeType":"YulTypedName","src":"37916:4:88","type":""}],"src":"37751:397:88"},{"body":{"nativeSrc":"38334:217:88","nodeType":"YulBlock","src":"38334:217:88","statements":[{"nativeSrc":"38344:27:88","nodeType":"YulAssignment","src":"38344:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38356:9:88","nodeType":"YulIdentifier","src":"38356:9:88"},{"kind":"number","nativeSrc":"38367:3:88","nodeType":"YulLiteral","src":"38367:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38352:3:88","nodeType":"YulIdentifier","src":"38352:3:88"},"nativeSrc":"38352:19:88","nodeType":"YulFunctionCall","src":"38352:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38344:4:88","nodeType":"YulIdentifier","src":"38344:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38387:9:88","nodeType":"YulIdentifier","src":"38387:9:88"},{"name":"value0","nativeSrc":"38398:6:88","nodeType":"YulIdentifier","src":"38398:6:88"}],"functionName":{"name":"mstore","nativeSrc":"38380:6:88","nodeType":"YulIdentifier","src":"38380:6:88"},"nativeSrc":"38380:25:88","nodeType":"YulFunctionCall","src":"38380:25:88"},"nativeSrc":"38380:25:88","nodeType":"YulExpressionStatement","src":"38380:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38425:9:88","nodeType":"YulIdentifier","src":"38425:9:88"},{"kind":"number","nativeSrc":"38436:2:88","nodeType":"YulLiteral","src":"38436:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38421:3:88","nodeType":"YulIdentifier","src":"38421:3:88"},"nativeSrc":"38421:18:88","nodeType":"YulFunctionCall","src":"38421:18:88"},{"arguments":[{"name":"value1","nativeSrc":"38445:6:88","nodeType":"YulIdentifier","src":"38445:6:88"},{"kind":"number","nativeSrc":"38453:4:88","nodeType":"YulLiteral","src":"38453:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"38441:3:88","nodeType":"YulIdentifier","src":"38441:3:88"},"nativeSrc":"38441:17:88","nodeType":"YulFunctionCall","src":"38441:17:88"}],"functionName":{"name":"mstore","nativeSrc":"38414:6:88","nodeType":"YulIdentifier","src":"38414:6:88"},"nativeSrc":"38414:45:88","nodeType":"YulFunctionCall","src":"38414:45:88"},"nativeSrc":"38414:45:88","nodeType":"YulExpressionStatement","src":"38414:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38479:9:88","nodeType":"YulIdentifier","src":"38479:9:88"},{"kind":"number","nativeSrc":"38490:2:88","nodeType":"YulLiteral","src":"38490:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38475:3:88","nodeType":"YulIdentifier","src":"38475:3:88"},"nativeSrc":"38475:18:88","nodeType":"YulFunctionCall","src":"38475:18:88"},{"name":"value2","nativeSrc":"38495:6:88","nodeType":"YulIdentifier","src":"38495:6:88"}],"functionName":{"name":"mstore","nativeSrc":"38468:6:88","nodeType":"YulIdentifier","src":"38468:6:88"},"nativeSrc":"38468:34:88","nodeType":"YulFunctionCall","src":"38468:34:88"},"nativeSrc":"38468:34:88","nodeType":"YulExpressionStatement","src":"38468:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38522:9:88","nodeType":"YulIdentifier","src":"38522:9:88"},{"kind":"number","nativeSrc":"38533:2:88","nodeType":"YulLiteral","src":"38533:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38518:3:88","nodeType":"YulIdentifier","src":"38518:3:88"},"nativeSrc":"38518:18:88","nodeType":"YulFunctionCall","src":"38518:18:88"},{"name":"value3","nativeSrc":"38538:6:88","nodeType":"YulIdentifier","src":"38538:6:88"}],"functionName":{"name":"mstore","nativeSrc":"38511:6:88","nodeType":"YulIdentifier","src":"38511:6:88"},"nativeSrc":"38511:34:88","nodeType":"YulFunctionCall","src":"38511:34:88"},"nativeSrc":"38511:34:88","nodeType":"YulExpressionStatement","src":"38511:34:88"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nativeSrc":"38153:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38279:9:88","nodeType":"YulTypedName","src":"38279:9:88","type":""},{"name":"value3","nativeSrc":"38290:6:88","nodeType":"YulTypedName","src":"38290:6:88","type":""},{"name":"value2","nativeSrc":"38298:6:88","nodeType":"YulTypedName","src":"38298:6:88","type":""},{"name":"value1","nativeSrc":"38306:6:88","nodeType":"YulTypedName","src":"38306:6:88","type":""},{"name":"value0","nativeSrc":"38314:6:88","nodeType":"YulTypedName","src":"38314:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38325:4:88","nodeType":"YulTypedName","src":"38325:4:88","type":""}],"src":"38153:398:88"},{"body":{"nativeSrc":"38730:224:88","nodeType":"YulBlock","src":"38730:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38747:9:88","nodeType":"YulIdentifier","src":"38747:9:88"},{"kind":"number","nativeSrc":"38758:2:88","nodeType":"YulLiteral","src":"38758:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38740:6:88","nodeType":"YulIdentifier","src":"38740:6:88"},"nativeSrc":"38740:21:88","nodeType":"YulFunctionCall","src":"38740:21:88"},"nativeSrc":"38740:21:88","nodeType":"YulExpressionStatement","src":"38740:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38781:9:88","nodeType":"YulIdentifier","src":"38781:9:88"},{"kind":"number","nativeSrc":"38792:2:88","nodeType":"YulLiteral","src":"38792:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38777:3:88","nodeType":"YulIdentifier","src":"38777:3:88"},"nativeSrc":"38777:18:88","nodeType":"YulFunctionCall","src":"38777:18:88"},{"kind":"number","nativeSrc":"38797:2:88","nodeType":"YulLiteral","src":"38797:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"38770:6:88","nodeType":"YulIdentifier","src":"38770:6:88"},"nativeSrc":"38770:30:88","nodeType":"YulFunctionCall","src":"38770:30:88"},"nativeSrc":"38770:30:88","nodeType":"YulExpressionStatement","src":"38770:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38820:9:88","nodeType":"YulIdentifier","src":"38820:9:88"},{"kind":"number","nativeSrc":"38831:2:88","nodeType":"YulLiteral","src":"38831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38816:3:88","nodeType":"YulIdentifier","src":"38816:3:88"},"nativeSrc":"38816:18:88","nodeType":"YulFunctionCall","src":"38816:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"38836:34:88","nodeType":"YulLiteral","src":"38836:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"38809:6:88","nodeType":"YulIdentifier","src":"38809:6:88"},"nativeSrc":"38809:62:88","nodeType":"YulFunctionCall","src":"38809:62:88"},"nativeSrc":"38809:62:88","nodeType":"YulExpressionStatement","src":"38809:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38891:9:88","nodeType":"YulIdentifier","src":"38891:9:88"},{"kind":"number","nativeSrc":"38902:2:88","nodeType":"YulLiteral","src":"38902:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38887:3:88","nodeType":"YulIdentifier","src":"38887:3:88"},"nativeSrc":"38887:18:88","nodeType":"YulFunctionCall","src":"38887:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"38907:4:88","nodeType":"YulLiteral","src":"38907:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"38880:6:88","nodeType":"YulIdentifier","src":"38880:6:88"},"nativeSrc":"38880:32:88","nodeType":"YulFunctionCall","src":"38880:32:88"},"nativeSrc":"38880:32:88","nodeType":"YulExpressionStatement","src":"38880:32:88"},{"nativeSrc":"38921:27:88","nodeType":"YulAssignment","src":"38921:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38933:9:88","nodeType":"YulIdentifier","src":"38933:9:88"},{"kind":"number","nativeSrc":"38944:3:88","nodeType":"YulLiteral","src":"38944:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38929:3:88","nodeType":"YulIdentifier","src":"38929:3:88"},"nativeSrc":"38929:19:88","nodeType":"YulFunctionCall","src":"38929:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38921:4:88","nodeType":"YulIdentifier","src":"38921:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38556:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38707:9:88","nodeType":"YulTypedName","src":"38707:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38721:4:88","nodeType":"YulTypedName","src":"38721:4:88","type":""}],"src":"38556:398:88"},{"body":{"nativeSrc":"39133:175:88","nodeType":"YulBlock","src":"39133:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39150:9:88","nodeType":"YulIdentifier","src":"39150:9:88"},{"kind":"number","nativeSrc":"39161:2:88","nodeType":"YulLiteral","src":"39161:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39143:6:88","nodeType":"YulIdentifier","src":"39143:6:88"},"nativeSrc":"39143:21:88","nodeType":"YulFunctionCall","src":"39143:21:88"},"nativeSrc":"39143:21:88","nodeType":"YulExpressionStatement","src":"39143:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39184:9:88","nodeType":"YulIdentifier","src":"39184:9:88"},{"kind":"number","nativeSrc":"39195:2:88","nodeType":"YulLiteral","src":"39195:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39180:3:88","nodeType":"YulIdentifier","src":"39180:3:88"},"nativeSrc":"39180:18:88","nodeType":"YulFunctionCall","src":"39180:18:88"},{"kind":"number","nativeSrc":"39200:2:88","nodeType":"YulLiteral","src":"39200:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"39173:6:88","nodeType":"YulIdentifier","src":"39173:6:88"},"nativeSrc":"39173:30:88","nodeType":"YulFunctionCall","src":"39173:30:88"},"nativeSrc":"39173:30:88","nodeType":"YulExpressionStatement","src":"39173:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39223:9:88","nodeType":"YulIdentifier","src":"39223:9:88"},{"kind":"number","nativeSrc":"39234:2:88","nodeType":"YulLiteral","src":"39234:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39219:3:88","nodeType":"YulIdentifier","src":"39219:3:88"},"nativeSrc":"39219:18:88","nodeType":"YulFunctionCall","src":"39219:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"39239:27:88","nodeType":"YulLiteral","src":"39239:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"39212:6:88","nodeType":"YulIdentifier","src":"39212:6:88"},"nativeSrc":"39212:55:88","nodeType":"YulFunctionCall","src":"39212:55:88"},"nativeSrc":"39212:55:88","nodeType":"YulExpressionStatement","src":"39212:55:88"},{"nativeSrc":"39276:26:88","nodeType":"YulAssignment","src":"39276:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39288:9:88","nodeType":"YulIdentifier","src":"39288:9:88"},{"kind":"number","nativeSrc":"39299:2:88","nodeType":"YulLiteral","src":"39299:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39284:3:88","nodeType":"YulIdentifier","src":"39284:3:88"},"nativeSrc":"39284:18:88","nodeType":"YulFunctionCall","src":"39284:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39276:4:88","nodeType":"YulIdentifier","src":"39276:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38959:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39110:9:88","nodeType":"YulTypedName","src":"39110:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39124:4:88","nodeType":"YulTypedName","src":"39124:4:88","type":""}],"src":"38959:349:88"},{"body":{"nativeSrc":"39450:53:88","nodeType":"YulBlock","src":"39450:53:88","statements":[{"nativeSrc":"39460:37:88","nodeType":"YulAssignment","src":"39460:37:88","value":{"arguments":[{"name":"value0","nativeSrc":"39485:6:88","nodeType":"YulIdentifier","src":"39485:6:88"},{"name":"pos","nativeSrc":"39493:3:88","nodeType":"YulIdentifier","src":"39493:3:88"}],"functionName":{"name":"abi_encode_string","nativeSrc":"39467:17:88","nodeType":"YulIdentifier","src":"39467:17:88"},"nativeSrc":"39467:30:88","nodeType":"YulFunctionCall","src":"39467:30:88"},"variableNames":[{"name":"end","nativeSrc":"39460:3:88","nodeType":"YulIdentifier","src":"39460:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"39313:190:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"39426:3:88","nodeType":"YulTypedName","src":"39426:3:88","type":""},{"name":"value0","nativeSrc":"39431:6:88","nodeType":"YulTypedName","src":"39431:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"39442:3:88","nodeType":"YulTypedName","src":"39442:3:88","type":""}],"src":"39313:190:88"},{"body":{"nativeSrc":"39682:179:88","nodeType":"YulBlock","src":"39682:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39699:9:88","nodeType":"YulIdentifier","src":"39699:9:88"},{"kind":"number","nativeSrc":"39710:2:88","nodeType":"YulLiteral","src":"39710:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39692:6:88","nodeType":"YulIdentifier","src":"39692:6:88"},"nativeSrc":"39692:21:88","nodeType":"YulFunctionCall","src":"39692:21:88"},"nativeSrc":"39692:21:88","nodeType":"YulExpressionStatement","src":"39692:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39733:9:88","nodeType":"YulIdentifier","src":"39733:9:88"},{"kind":"number","nativeSrc":"39744:2:88","nodeType":"YulLiteral","src":"39744:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39729:3:88","nodeType":"YulIdentifier","src":"39729:3:88"},"nativeSrc":"39729:18:88","nodeType":"YulFunctionCall","src":"39729:18:88"},{"kind":"number","nativeSrc":"39749:2:88","nodeType":"YulLiteral","src":"39749:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"39722:6:88","nodeType":"YulIdentifier","src":"39722:6:88"},"nativeSrc":"39722:30:88","nodeType":"YulFunctionCall","src":"39722:30:88"},"nativeSrc":"39722:30:88","nodeType":"YulExpressionStatement","src":"39722:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39772:9:88","nodeType":"YulIdentifier","src":"39772:9:88"},{"kind":"number","nativeSrc":"39783:2:88","nodeType":"YulLiteral","src":"39783:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39768:3:88","nodeType":"YulIdentifier","src":"39768:3:88"},"nativeSrc":"39768:18:88","nodeType":"YulFunctionCall","src":"39768:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"39788:31:88","nodeType":"YulLiteral","src":"39788:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"39761:6:88","nodeType":"YulIdentifier","src":"39761:6:88"},"nativeSrc":"39761:59:88","nodeType":"YulFunctionCall","src":"39761:59:88"},"nativeSrc":"39761:59:88","nodeType":"YulExpressionStatement","src":"39761:59:88"},{"nativeSrc":"39829:26:88","nodeType":"YulAssignment","src":"39829:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39841:9:88","nodeType":"YulIdentifier","src":"39841:9:88"},{"kind":"number","nativeSrc":"39852:2:88","nodeType":"YulLiteral","src":"39852:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39837:3:88","nodeType":"YulIdentifier","src":"39837:3:88"},"nativeSrc":"39837:18:88","nodeType":"YulFunctionCall","src":"39837:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39829:4:88","nodeType":"YulIdentifier","src":"39829:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39508:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39659:9:88","nodeType":"YulTypedName","src":"39659:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39673:4:88","nodeType":"YulTypedName","src":"39673:4:88","type":""}],"src":"39508:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_bytes32t_bytes32t_bytes32t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 192))\n        value6 := value_5\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 224))\n        value7 := value_6\n        value8 := abi_decode_uint40(add(headStart, 256))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_contract_IRiskModule(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IRiskModule(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 448)\n        abi_encode_struct_PolicyData(value0, headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes(add(_1, 0x20), calldataload(_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 0x20))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := calldataload(add(headStart, 192))\n        validator_revert_address(value_5)\n        value6 := value_5\n    }\n    function abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23903t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 10)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_bool(value)\n        value1 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_480764f09f359bc6962cdebf3d411f712e4a569376eab47f7b4f2b9d5b018433__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"Sender is not authorized to crea\")\n        mstore(add(headStart, 96), \"te policies onBehalfOf\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_encode_struct_PolicyData_calldata(value, pos)\n    {\n        let value_1 := 0\n        value_1 := calldataload(value)\n        mstore(pos, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 0x40))\n        mstore(add(pos, 0x40), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value, 0x60))\n        mstore(add(pos, 0x60), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value, 0x80))\n        mstore(add(pos, 0x80), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(value, 0xe0))\n        mstore(add(pos, 0xe0), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(value, 0x0100))\n        mstore(add(pos, 0x0100), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(value, 0x0120))\n        mstore(add(pos, 0x0120), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(value, 0x0140))\n        mstore(add(pos, 0x0140), value_11)\n        let memberValue0 := abi_decode_contract_IRiskModule(add(value, 0x0160))\n        abi_encode_contract_IRiskModule(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := abi_decode_uint40(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := abi_decode_uint40(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), value1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Can't set exposureLimit less tha\")\n        mstore(add(headStart, 96), \"n active exposure\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Increase requires LEVEL1_ROLE\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), iszero(iszero(value1)))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__to_t_address_t_uint256_t_uint256_t_uint256_t_uint40_t_bytes32_t_uint40__nonPadded_inplace_fromStack_reversed(pos, value6, value5, value4, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), value1)\n        mstore(add(pos, 52), value2)\n        mstore(add(pos, 84), value3)\n        mstore(add(pos, 116), and(shl(216, value4), shl(216, 0xffffffffff)))\n        mstore(add(pos, 121), value5)\n        mstore(add(pos, 153), and(shl(216, value6), shl(216, 0xffffffffff)))\n        end := add(pos, 158)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_sub_t_uint8(x, y) -> diff\n    {\n        diff := sub(and(x, 0xff), and(y, 0xff))\n        if gt(diff, 0xff) { panic_error_0x11() }\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        end := abi_encode_string(value1, abi_encode_string(value0, add(pos, 26)))\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Premium must be less than payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Expiration must be in the future\")\n        tail := add(headStart, 96)\n    }\n    function checked_div_t_uint40(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Policy exceeds max duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Customer can't be zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"You must allow ENSURO to transfe\")\n        mstore(add(headStart, 96), \"r the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Payer must allow caller to trans\")\n        mstore(add(headStart, 96), \"fer the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"RiskModule: Payout is more than \")\n        mstore(add(headStart, 96), \"maximum per policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"RiskModule: Exposure limit excee\")\n        mstore(add(headStart, 96), \"ded\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 544)\n        abi_encode_struct_PolicyData(value0, headStart)\n        mstore(add(headStart, 448), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 480), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 512), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Validation: jrCollRatio must be \")\n        mstore(add(headStart, 96), \"<=1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Validation: collRatio must be <=\")\n        mstore(add(headStart, 96), \"1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: collRatio >= jrCollR\")\n        mstore(add(headStart, 96), \"atio\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Validation: moc must be [0.5, 4]\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: ensuroPpFee must be \")\n        mstore(add(headStart, 96), \"<= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: ensuroCocFee must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: srRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: jrRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Exposure and MaxPayout must be >\")\n        mstore(add(headStart, 96), \"0\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":1772},{"length":32,"start":1845},{"length":32,"start":2332},{"length":32,"start":2396},{"length":32,"start":2537}],"17733":[{"length":32,"start":749},{"length":32,"start":2088},{"length":32,"start":2993},{"length":32,"start":3404},{"length":32,"start":3654},{"length":32,"start":3794},{"length":32,"start":4134},{"length":32,"start":5658},{"length":32,"start":5962},{"length":32,"start":6123},{"length":32,"start":6376},{"length":32,"start":6603},{"length":32,"start":7013},{"length":32,"start":7418},{"length":32,"start":8569},{"length":32,"start":12027},{"length":32,"start":12184},{"length":32,"start":12420},{"length":32,"start":13056},{"length":32,"start":13196}],"20197":[{"length":32,"start":1034},{"length":32,"start":9354}],"22069":[{"length":32,"start":6566}]},"linkReferences":{},"object":"6080604052600436106101c5575f3560e01c80636f0dbe6f116100f25780638bac3a2411610092578063deaa59df11610062578063deaa59df14610577578063e5a6b10f14610596578063fbb81279146105aa578063ffa600e3146105dd575f5ffd5b80638bac3a24146104bc578063c1cca2b3146104db578063cfd4c606146104fa578063cff0ab961461050e575f5ffd5b80637a702b3c116100cd5780637a702b3c146104615780637ff8bf25146104805780638456cb591461049457806385272a6e146104a8575f5ffd5b80636f0dbe6f146103dd57806373a952e8146103fc57806378fab2601461042e575f5ffd5b80634d15eb03116101685780635c975abb116101385780635c975abb1461036957806365533024146103805780636a448ef11461039f5780636db5c8fd146103be575f5ffd5b80634d15eb03146102df5780634f1ef28614610325578063521eb2731461033857806352d1902d14610355575f5ffd5b80633659cfe6116101a35780633659cfe61461024b5780633711bbf51461026c5780633f4ba83a1461029857806345f739ff146102ac575f5ffd5b806301ffc9a7146101c957806305918a79146101fd57806306fdde031461022a575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004613de5565b6105fc565b60405190151581526020015b60405180910390f35b348015610208575f5ffd5b5061021c610217366004613e39565b610627565b6040519081526020016101f4565b348015610235575f5ffd5b5061023e610652565b6040516101f49190613eb3565b348015610256575f5ffd5b5061026a610265366004613ee8565b6106e2565b005b348015610277575f5ffd5b5061028b610286366004613e39565b6107c8565b6040516101f49190613fc3565b3480156102a3575f5ffd5b5061026a6107f7565b3480156102b7575f5ffd5b5061021c7f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb81565b3480156102ea575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101f4565b61026a61033336600461405d565b610912565b348015610343575f5ffd5b5060fe546001600160a01b031661030d565b348015610360575f5ffd5b5061021c6109dd565b348015610374575f5ffd5b5060975460ff166101e8565b34801561038b575f5ffd5b5061021c61039a366004613e39565b610a8e565b3480156103aa575f5ffd5b5061026a6103b93660046140bd565b610bae565b3480156103c9575f5ffd5b5060fc54600160b01b900461ffff1661021c565b3480156103e8575f5ffd5b5061026a6103f73660046140d4565b610c10565b348015610407575f5ffd5b507f000000000000000000000000000000000000000000000000000000000000000061030d565b348015610439575f5ffd5b5061021c7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b34801561046c575f5ffd5b5061026a61047b36600461417a565b610d29565b34801561048b575f5ffd5b5060fd5461021c565b34801561049f575f5ffd5b5061026a610eaf565b3480156104b3575f5ffd5b5061021c610fb6565b3480156104c7575f5ffd5b5061021c6104d63660046141a5565b610fd8565b3480156104e6575f5ffd5b5061026a6104f53660046141d7565b610ff5565b348015610505575f5ffd5b5061021c6114fa565b348015610519575f5ffd5b50610522611518565b6040516101f491905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610582575f5ffd5b5061026a610591366004613ee8565b6115f7565b3480156105a1575f5ffd5b5061030d611747565b3480156105b5575f5ffd5b5061021c7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b3480156105e8575f5ffd5b5061026a6105f7366004614211565b6117c8565b5f6106068261191f565b8061062157506001600160e01b0319821663da40804f60e01b145b92915050565b5f610630611954565b6106438a8a8a8a89898989335b8f61199c565b519a9950505050505050505050565b606060fb805461066190614249565b80601f016020809104026020016040519081016040528092919081815260200182805461068d90614249565b80156106d85780601f106106af576101008083540402835291602001916106d8565b820191905f5260205f20905b8154815290600101906020018083116106bb57829003601f168201915b5050505050905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107335760405162461bcd60e51b815260040161072a9061427b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661077b5f5160206148c15f395f51905f52546001600160a01b031690565b6001600160a01b0316146107a15760405162461bcd60e51b815260040161072a906142c7565b6107aa81611cc9565b604080515f808252602082019092526107c591839190611de6565b50565b6107d0613d6d565b6107d8611954565b6107e98a8a8a8a898989893361063d565b9a9950505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206148e15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016108da95949392919061432e565b5f6040518083038186803b1580156108f0575f5ffd5b505afa158015610902573d5f5f3e3d5ffd5b5050505061090e611f50565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361095a5760405162461bcd60e51b815260040161072a9061427b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109a25f5160206148c15f395f51905f52546001600160a01b031690565b6001600160a01b0316146109c85760405162461bcd60e51b815260040161072a906142c7565b6109d182611cc9565b61090e82826001611de6565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161072a565b505f5160206148c15f395f51905f5290565b5f610a97611954565b6001600160a01b038616331480610b3157505f610ab2611747565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2f9190614361565b115b610b9c5760405162461bcd60e51b815260206004820152603660248201527f53656e646572206973206e6f7420617574686f72697a656420746f20637265616044820152753a32903837b634b1b4b2b99037b72132b430b63327b360511b606482015260840161072a565b6106438a8a8a8a898989898e8f61199c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610bf75760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610c08919061438c565b909155505050565b5f54610100900460ff1615808015610c2e57505f54600160ff909116105b80610c475750303b158015610c4757505f5460ff166001145b610caa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161072a565b5f805460ff191660011790558015610ccb575f805461ff0019166101001790555b610cda88888888888888611fa2565b8015610d1f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dca9190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610dfb949392919061439f565b5f6040518083038186803b158015610e11575f5ffd5b505afa158015610e23573d5f5f3e3d5ffd5b50505050610e2f611954565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c90610e7d9086908690600401614495565b5f604051808303815f87803b158015610e94575f5ffd5b505af1158015610ea6573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190614313565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610f82949392919061439f565b5f6040518083038186803b158015610f98575f5ffd5b505afa158015610faa573d5f5f3e3d5ffd5b505050506107c5611fdf565b60fc545f90610fd3908290600160901b900463ffffffff1661201c565b905090565b5f610fed84848442610fe8611518565b6120b1565b949350505050565b5f5160206148e15f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611080573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016110d895949392919061432e565b5f6040518083038186803b1580156110ee575f5ffd5b505afa158015611100573d5f5f3e3d5ffd5b505f925061110c915050565b84600981111561111e5761111e6144b2565b036111475761112c836120cd565b60fc805461ffff191661ffff929092169190911790556114bd565b600184600981111561115b5761115b6144b2565b0361118d57611169836120cd565b60fc805461ffff92909216620100000263ffff0000199092169190911790556114bd565b60028460098111156111a1576111a16144b2565b036111d7576111af836120cd565b60fc805461ffff929092166401000000000265ffff00000000199092169190911790556114bd565b60038460098111156111eb576111eb6144b2565b03611222576111f9836120cd565b60fc805461ffff92909216600160301b0267ffff000000000000199092169190911790556114bd565b6004846009811115611236576112366144b2565b0361126f57611244836120cd565b60fc805461ffff92909216600160401b0269ffff0000000000000000199092169190911790556114bd565b6005846009811115611283576112836144b2565b036112b757611291836120cd565b60fc805461ffff92909216600160501b0261ffff60501b199092169190911790556114bd565b60068460098111156112cb576112cb6144b2565b036112ff576112d9836120cd565b60fc805461ffff92909216600160601b0261ffff60601b199092169190911790556114bd565b6007846009811115611313576113136144b2565b0361134d576113236002846120e6565b60fc805463ffffffff92909216600160701b0263ffffffff60701b199092169190911790556114bd565b6008846009811115611361576113616144b2565b036114795760fd548310156113d25760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b606482015260840161072a565b6113da610fb6565b831115806113f957506113f95f5160206148e15f395f51905f52612176565b6114455760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c45000000604482015260640161072a565b61144f5f846120e6565b60fc805463ffffffff92909216600160901b0263ffffffff60901b199092169190911790556114bd565b600984600981111561148d5761148d6144b2565b036114bd5761149b83612268565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b6114f48460098111156114d2576114d26144b2565b6114dd9060086144c6565b602d8111156114ee576114ee6144b2565b846122ce565b50505050565b60fc545f90610fd390600290600160701b900463ffffffff1661201c565b6115516040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152610fd39061231f565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611674573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116989190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016116c9949392919061439f565b5f6040518083038186803b1580156116df575f5ffd5b505afa1580156116f1573d5f5f3e3d5ffd5b5050506001600160a01b038316905061171d57604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b03841690811790915561090e906012906122ce565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190614313565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611845573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118699190614313565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b815260040161189a949392919061439f565b5f6040518083038186803b1580156118b0575f5ffd5b505afa1580156118c2573d5f5f3e3d5ffd5b505050506118ce611954565b60405160016259ff1d60e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ffa600e390610e7d90869086906004016144d9565b5f6001600160e01b031982166301ffc9a760e01b148061062157506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff161561199a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161072a565b565b6119a4613d6d565b7f0000000000000000000000000000000000000000000000000000000000000000611ac7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a499190614313565b6001600160a01b0316635ff57d20307f90fe2ba5da14f172ed5a0a0fec391dbf8f191c9a2f3557d79ede5d6b1c1c9ffb335f6040518563ffffffff1660e01b8152600401611a9a949392919061439f565b5f6040518083038186803b158015611ab0575f5ffd5b505afa158015611ac2573d5f5f3e3d5ffd5b505050505b428464ffffffffff161015611aef57604051638727a7f960e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff193060601b166020820152603481018c9052605481018b9052607481018a90526001600160d81b031960d88a811b82166094840152609983018a905286901b1660b98201525f90611b619060be016040516020818303038152906040526123e3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be39190614313565b6001600160a01b0316635ff57d20307fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611c1e858c8c61241d565b5f6040518563ffffffff1660e01b8152600401611c3e949392919061439f565b5f6040518083038186803b158015611c54575f5ffd5b505afa158015611c66573d5f5f3e3d5ffd5b50505050611c818c8c8c8c8888611c7c8f612441565b612450565b80516040518a8152919350907f3e4224c37ba48f27f735eecea98c4d71568b9825d0006b6e128aa73695e35f709060200160405180910390a2509a9950505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f5160206148e15f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d789190614313565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611dac95949392919061432e565b5f6040518083038186803b158015611dc2575f5ffd5b505afa158015611dd4573d5f5f3e3d5ffd5b50505050611de18361247b565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611e1957611de183612539565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611e73575060408051601f3d908101601f19168201909252611e7091810190614361565b60015b611ed65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161072a565b5f5160206148c15f395f51905f528114611f445760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161072a565b50611de18383836125d4565b611f586125f8565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff16611fc85760405162461bcd60e51b815260040161072a906144f8565b611fd0612641565b610ea687878787878787612677565b611fe7611954565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f853390565b5f82612026611747565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612061573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120859190614543565b61208f9190614563565b61209a90600a614657565b6120aa9063ffffffff8416614665565b9392505050565b5f6120bf8287878787612881565b60e001519695505050505050565b5f6106216120e1655af3107a400084614690565b612268565b5f6120aa836120f3611747565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121529190614543565b61215c9190614563565b61216790600a614657565b6121719084614690565b612a74565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f79190614313565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b8152600401612229949392919061439f565b602060405180830381865afa158015612244573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062191906146a3565b5f61ffff8211156122ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b606482015260840161072a565b5090565b6122d6612ad8565b81602d8111156122e8576122e86144b2565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6123586040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e0016040528061236f845f0151612b35565b81526020016123818460200151612b35565b81526020016123938460400151612b35565b81526020016123a58460600151612b35565b81526020016123b78460800151612b35565b81526020016123c98460a00151612b35565b81526020016123db8460c00151612b35565b905292915050565b5f6123ee8251612b4a565b826040516020016124009291906146d5565b604051602081830303815290604052805190602001209050919050565b5f5f5f61242b868686612bda565b9150915061243881612c13565b50949350505050565b5f610621600160601b8361470f565b612458613d6d565b61246f8888888888888861246a611518565b612d5c565b98975050505050505050565b6124848161338a565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125129190614313565b6001600160a01b03161461090e5760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6125a65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161072a565b5f5160206148c15f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6125dd8361343b565b5f825111806125e95750805b15611de1576114f4838361347a565b60975460ff1661199a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161072a565b5f54610100900460ff166126675760405162461bcd60e51b815260040161072a906144f8565b61266f61349f565b61199a6134c5565b5f54610100900460ff1661269d5760405162461bcd60e51b815260040161072a906144f8565b60fb6126a9888261476d565b50604080516101408101825261271081525f60208201529081016126cc886120cd565b61ffff1681526020016126de876120cd565b61ffff1681525f6020820181905260408201526060016126fd866120cd565b61ffff1681526020016127116002866120e6565b63ffffffff1681526020016127265f856120e6565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055610ea6612ad8565b6128c16040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516128d9906128d29086906134f3565b86906134f3565b815260208601516128eb9086906134f3565b602082018190528151101561291557805160208201805161290d90839061438c565b90525061291c565b5f60208201525b604086015161292c9086906134f3565b60408201526020810151815161294291906144c6565b81604001511115612977576020810151815161295e91906144c6565b8160400181815161296f919061438c565b90525061297e565b5f60408201525b6129bb6301e133806129908486614828565b64ffffffffff168860a001516129a69190614665565b6129b09190614690565b6020830151906134f3565b60608201526129fd6301e133806129d28486614828565b64ffffffffff168860c001516129e89190614665565b6129f29190614690565b6040830151906134f3565b6080820181905260608201515f91612a14916144c6565b9050612a2d8760800151826134f390919063ffffffff16565b60608801518351612a3d916134f3565b612a4791906144c6565b60a0830181905282518291612a5b916144c6565b612a6591906144c6565b60e08301525095945050505050565b5f63ffffffff8211156122ca5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161072a565b60fd54612ae3610fb6565b1015612b0257604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b0316612b2b57604051634d1c286960e11b815260040160405180910390fd5b61199a60fc613529565b5f610621655af3107a400061ffff8416614665565b60605f612b5683613926565b60010190505f8167ffffffffffffffff811115612b7557612b75613fd2565b6040519080825280601f01601f191660200182016040528015612b9f576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612ba957509392505050565b5f806001600160ff1b03831681612bf660ff86901c601b6144c6565b9050612c04878288856139fd565b9350935050505b935093915050565b5f816004811115612c2657612c266144b2565b03612c2e5750565b6001816004811115612c4257612c426144b2565b03612c8f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161072a565b6002816004811115612ca357612ca36144b2565b03612cf05760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161072a565b6003816004811115612d0457612d046144b2565b036107c55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161072a565b612d64613d6d565b4260018901612d7d57612d7a8a898984876120b1565b98505b898910612dcc5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f7574604482015260640161072a565b8064ffffffffff168764ffffffffff1611612e295760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e2074686520667574757265604482015260640161072a565b60fc54600160b01b900461ffff16610e10612e44838a614828565b612e4e9190614845565b64ffffffffff1610612ea25760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e0000000000604482015260640161072a565b6001600160a01b038516612ef85760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f20616464726573730000604482015260640161072a565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f799190614313565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612fe7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300b9190614361565b101561306f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b606482015260840161072a565b6001600160a01b0386163314806131825750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131029190614313565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614361565b10155b6131e65760405162461bcd60e51b815260206004820152602f60248201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360448201526e66657220746865207072656d69756d60881b606482015260840161072a565b6131ee6114fa565b8a11156132585760405162461bcd60e51b815260206004820152603260248201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206044820152716d6178696d756d2070657220706f6c69637960701b606482015260840161072a565b61326730848b8d8c8c87613aba565b9150816020015160fd5f82825461327e91906144c6565b9091555061328c9050610fb6565b60fd5411156132e95760405162461bcd60e51b815260206004820152602360248201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560448201526219195960ea1b606482015260840161072a565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f9061333b9085908a908a908a9060040161486e565b6020604051808303815f875af1158015613357573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061337b9190614361565b82525098975050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134149190614313565b6001600160a01b0316146107c55760405163d2b3d33f60e01b815260040160405180910390fd5b61344481612539565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606120aa838360405180606001604052806027815260200161490160279139613c2a565b5f54610100900460ff1661199a5760405162461bcd60e51b815260040161072a906144f8565b5f54610100900460ff166134eb5760405162461bcd60e51b815260040161072a906144f8565b61199a613c9e565b5f81156706f05b59d3b20000198390048411151761350f575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156135935760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b606482015260840161072a565b805461271064010000000090910461ffff16118015906135bf57508054640100000000900461ffff1615155b6136155760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b606482015260840161072a565b805461ffff62010000820481166401000000009092041610156136865760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b606482015260840161072a565b8054619c4061ffff909116118015906136a85750805461138861ffff90911610155b6136f45760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d604482015260640161072a565b8054612710600160301b90910461ffff16111561375f5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b606482015260840161072a565b8054612710600160401b90910461ffff1611156137cc5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b606482015260840161072a565b8054612710600160601b90910461ffff1611156138395760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b606482015260840161072a565b8054612710600160501b90910461ffff1611156138a65760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b606482015260840161072a565b8054600160901b900463ffffffff16158015906138d057508054600160701b900463ffffffff1615155b6107c55760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b606482015260840161072a565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106139645772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613990576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106139ae57662386f26fc10000830492506010015b6305f5e10083106139c6576305f5e100830492506008015b61271083106139da57612710830492506004015b606483106139ec576064830492506002015b600a83106106215760010192915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613a3257505f90506003613ab1565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613a83573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613aab575f60019250925050613ab1565b91505f90505b94509492505050565b613ac2613d6d565b84861115613b1d5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b606482015260840161072a565b613b25613d6d565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f613b6f8988888888612881565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015613c085760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d00000000000000604482015260640161072a565b60e0810151613c17908961438c565b6101008301525098975050505050505050565b60605f5f856001600160a01b031685604051613c4691906148b5565b5f60405180830381855af49150503d805f8114613c7e576040519150601f19603f3d011682016040523d82523d5f602084013e613c83565b606091505b5091509150613c9486838387613cd0565b9695505050505050565b5f54610100900460ff16613cc45760405162461bcd60e51b815260040161072a906144f8565b6097805460ff19169055565b60608315613d3e5782515f03613d37576001600160a01b0385163b613d375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161072a565b5081610fed565b610fed8383815115613d535781518083602001fd5b8060405162461bcd60e51b815260040161072a9190613eb3565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613df5575f5ffd5b81356001600160e01b0319811681146120aa575f5ffd5b803564ffffffffff81168114613e20575f5ffd5b919050565b6001600160a01b03811681146107c5575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215613e52575f5ffd5b8935985060208a0135975060408a01359650613e7060608b01613e0c565b955060808a0135613e8081613e25565b945060a08a0135935060c08a0135925060e08a01359150613ea46101008b01613e0c565b90509295985092959850929598565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613ef8575f5ffd5b81356120aa81613e25565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610140810151610140830152610160810151613f8d6101608401826001600160a01b03169052565b50610180810151613fa861018084018264ffffffffff169052565b506101a0810151611de16101a084018264ffffffffff169052565b6101c081016106218284613f03565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561400057614000613fd2565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561402f5761402f613fd2565b604052838152905080828401851015614046575f5ffd5b838360208301375f60208583010152509392505050565b5f5f6040838503121561406e575f5ffd5b823561407981613e25565b9150602083013567ffffffffffffffff811115614094575f5ffd5b8301601f810185136140a4575f5ffd5b6140b385823560208401613fe6565b9150509250929050565b5f602082840312156140cd575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a0312156140ea575f5ffd5b873567ffffffffffffffff811115614100575f5ffd5b8801601f81018a13614110575f5ffd5b61411f8a823560208401613fe6565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c088013561415381613e25565b8091505092959891949750929550565b5f6101c08284031215614174575f5ffd5b50919050565b5f5f6101e0838503121561418c575f5ffd5b6141968484614163565b946101c0939093013593505050565b5f5f5f606084860312156141b7575f5ffd5b83359250602084013591506141ce60408501613e0c565b90509250925092565b5f5f604083850312156141e8575f5ffd5b8235600a81106141f6575f5ffd5b946020939093013593505050565b80151581146107c5575f5ffd5b5f5f6101e08385031215614223575f5ffd5b61422d8484614163565b91506101c083013561423e81614204565b809150509250929050565b600181811c9082168061425d57607f821691505b60208210810361417457634e487b7160e01b5f52602260045260245ffd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215614323575f5ffd5b81516120aa81613e25565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b5f60208284031215614371575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062157610621614378565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b8035613e2081613e25565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e0808201359083015261010080820135908301526101208082013590830152610140808201359083015261444c61016082016143c9565b6001600160a01b03166101608301526144686101808201613e0c565b64ffffffffff166101808301526144826101a08201613e0c565b64ffffffffff81166101a0840152505050565b6101e081016144a482856143d4565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561062157610621614378565b6101e081016144e882856143d4565b8215156101c08301529392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215614553575f5ffd5b815160ff811681146120aa575f5ffd5b60ff828116828216039081111561062157610621614378565b6001815b6001841115612c0b5780850481111561459b5761459b614378565b60018416156145a957908102905b60019390931c928002614580565b5f826145c557506001610621565b816145d157505f610621565b81600181146145e757600281146145f15761460d565b6001915050610621565b60ff84111561460257614602614378565b50506001821b610621565b5060208310610133831016604e8410600b8410161715614630575081810a610621565b61463c5f19848461457c565b805f190482111561464f5761464f614378565b029392505050565b5f6120aa60ff8416836145b7565b808202811582820484141761062157610621614378565b634e487b7160e01b5f52601260045260245ffd5b5f8261469e5761469e61467c565b500490565b5f602082840312156146b3575f5ffd5b81516120aa81614204565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f610fed614709601a8401866146be565b846146be565b5f8261471d5761471d61467c565b500690565b601f821115611de157805f5260205f20601f840160051c810160208510156147475750805b601f840160051c820191505b81811015614766575f8155600101614753565b5050505050565b815167ffffffffffffffff81111561478757614787613fd2565b61479b816147958454614249565b84614722565b6020601f8211600181146147cd575f83156147b65750848201515b5f19600385901b1c1916600184901b178455614766565b5f84815260208120601f198516915b828110156147fc57878501518255602094850194600190920191016147dc565b508482101561481957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b64ffffffffff828116828216039081111561062157610621614378565b5f64ffffffffff83168061485b5761485b61467c565b8064ffffffffff84160491505092915050565b610220810161487d8287613f03565b6001600160a01b039485166101c0830152929093166101e08401526bffffffffffffffffffffffff1661020090920191909152919050565b5f6120aa82846146be56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084a8f184033d9a319d57b0a3d3ce875454f8de6c95d2ee50d6cb5e9382eb9a2064736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6F0DBE6F GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x8BAC3A24 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x577 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x5DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x4BC JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x50E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7A702B3C GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x494 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x4A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3FC JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x168 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x65533024 EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x3BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x521EB273 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x355 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x3711BBF5 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x45F739FF EQ PUSH2 0x2AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x5918A79 EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x22A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE5 JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0x627 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23E PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3EB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EE8 JUMP JUMPDEST PUSH2 0x6E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x277 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x28B PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3FC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x7F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x26A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x405D JUMP JUMPDEST PUSH2 0x912 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x30D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x9DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x374 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x39A CALLDATASIZE PUSH1 0x4 PUSH2 0x3E39 JUMP JUMPDEST PUSH2 0xA8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x3B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x40BD JUMP JUMPDEST PUSH2 0xBAE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x21C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x3F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x40D4 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x407 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x30D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x47B CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0xD29 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x21C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0xEAF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0xFB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x41A5 JUMP JUMPDEST PUSH2 0xFD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D7 JUMP JUMPDEST PUSH2 0xFF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x14FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x519 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x522 PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EE8 JUMP JUMPDEST PUSH2 0x15F7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x30D PUSH2 0x1747 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x5F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4211 JUMP JUMPDEST PUSH2 0x17C8 JUMP JUMPDEST PUSH0 PUSH2 0x606 DUP3 PUSH2 0x191F JUMP JUMPDEST DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x630 PUSH2 0x1954 JUMP JUMPDEST PUSH2 0x643 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 CALLER JUMPDEST DUP16 PUSH2 0x199C JUMP JUMPDEST MLOAD SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x661 SWAP1 PUSH2 0x4249 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x68D SWAP1 PUSH2 0x4249 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6AF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6D8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6BB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x733 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x427B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x77B PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x42C7 JUMP JUMPDEST PUSH2 0x7AA DUP2 PUSH2 0x1CC9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x7C5 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x1DE6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x7D0 PUSH2 0x3D6D JUMP JUMPDEST PUSH2 0x7D8 PUSH2 0x1954 JUMP JUMPDEST PUSH2 0x7E9 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 CALLER PUSH2 0x63D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x882 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A6 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8DA SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x902 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x90E PUSH2 0x1F50 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x95A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x427B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9A2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x42C7 JUMP JUMPDEST PUSH2 0x9D1 DUP3 PUSH2 0x1CC9 JUMP JUMPDEST PUSH2 0x90E DUP3 DUP3 PUSH1 0x1 PUSH2 0x1DE6 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xA97 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0xB31 JUMPI POP PUSH0 PUSH2 0xAB2 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB0B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB2F SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST GT JUMPDEST PUSH2 0xB9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53656E646572206973206E6F7420617574686F72697A656420746F2063726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x3A32903837B634B1B4B2B99037B72132B430B63327B3 PUSH1 0x51 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x643 DUP11 DUP11 DUP11 DUP11 DUP10 DUP10 DUP10 DUP10 DUP15 DUP16 PUSH2 0x199C JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC08 SWAP2 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC2E JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xC47 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC47 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xCCB JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xCDA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1FA2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD1F JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDCA SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDFB SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE11 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE23 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE2F PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0xE7D SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4495 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE94 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF2C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF50 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF82 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF98 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFAA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x7C5 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0xFD3 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x201C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xFED DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0xFE8 PUSH2 0x1518 JUMP JUMPDEST PUSH2 0x20B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1080 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10A4 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x110C SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x111E JUMPI PUSH2 0x111E PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1147 JUMPI PUSH2 0x112C DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x115B JUMPI PUSH2 0x115B PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x118D JUMPI PUSH2 0x1169 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x11A1 JUMPI PUSH2 0x11A1 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x11D7 JUMPI PUSH2 0x11AF DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x11EB JUMPI PUSH2 0x11EB PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1222 JUMPI PUSH2 0x11F9 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1236 JUMPI PUSH2 0x1236 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x126F JUMPI PUSH2 0x1244 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1283 JUMPI PUSH2 0x1283 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x12B7 JUMPI PUSH2 0x1291 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x12CB JUMPI PUSH2 0x12CB PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x12FF JUMPI PUSH2 0x12D9 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1313 JUMPI PUSH2 0x1313 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x134D JUMPI PUSH2 0x1323 PUSH1 0x2 DUP5 PUSH2 0x20E6 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1361 JUMPI PUSH2 0x1361 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x1479 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x13DA PUSH2 0xFB6 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x13F9 JUMPI POP PUSH2 0x13F9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x2176 JUMP JUMPDEST PUSH2 0x1445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x144F PUSH0 DUP5 PUSH2 0x20E6 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14BD JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x148D JUMPI PUSH2 0x148D PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x14BD JUMPI PUSH2 0x149B DUP4 PUSH2 0x2268 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x14F4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14D2 JUMPI PUSH2 0x14D2 PUSH2 0x44B2 JUMP JUMPDEST PUSH2 0x14DD SWAP1 PUSH1 0x8 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x14EE JUMPI PUSH2 0x14EE PUSH2 0x44B2 JUMP JUMPDEST DUP5 PUSH2 0x22CE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0xFD3 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x201C JUMP JUMPDEST PUSH2 0x1551 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0xFD3 SWAP1 PUSH2 0x231F JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1674 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1698 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16C9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x171D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x90E SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x22CE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17A4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD3 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1845 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1869 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x189A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x18CE PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x59FF1D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xFFA600E3 SWAP1 PUSH2 0xE7D SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x44D9 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x19A4 PUSH2 0x3D6D JUMP JUMPDEST PUSH32 0x0 PUSH2 0x1AC7 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A25 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A49 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0x90FE2BA5DA14F172ED5A0A0FEC391DBF8F191C9A2F3557D79EDE5D6B1C1C9FFB CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A9A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AC2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST TIMESTAMP DUP5 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x1AEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x8727A7F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x54 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x74 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT PUSH1 0xD8 DUP11 DUP2 SHL DUP3 AND PUSH1 0x94 DUP5 ADD MSTORE PUSH1 0x99 DUP4 ADD DUP11 SWAP1 MSTORE DUP7 SWAP1 SHL AND PUSH1 0xB9 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH2 0x1B61 SWAP1 PUSH1 0xBE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x23E3 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BBF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE3 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH2 0x1C1E DUP6 DUP13 DUP13 PUSH2 0x241D JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C3E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C66 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1C81 DUP13 DUP13 DUP13 DUP13 DUP9 DUP9 PUSH2 0x1C7C DUP16 PUSH2 0x2441 JUMP JUMPDEST PUSH2 0x2450 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 MLOAD DUP11 DUP2 MSTORE SWAP2 SWAP4 POP SWAP1 PUSH32 0x3E4224C37BA48F27F735EECEA98C4D71568B9825D0006B6E128AA73695E35F70 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48E1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D54 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D78 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DAC SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x432E JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DC2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1DE1 DUP4 PUSH2 0x247B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1E19 JUMPI PUSH2 0x1DE1 DUP4 PUSH2 0x2539 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1E70 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4361 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1ED6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x1F44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP PUSH2 0x1DE1 DUP4 DUP4 DUP4 PUSH2 0x25D4 JUMP JUMPDEST PUSH2 0x1F58 PUSH2 0x25F8 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1FC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x1FD0 PUSH2 0x2641 JUMP JUMPDEST PUSH2 0xEA6 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2677 JUMP JUMPDEST PUSH2 0x1FE7 PUSH2 0x1954 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1F85 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2026 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2061 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2085 SWAP2 SWAP1 PUSH2 0x4543 JUMP JUMPDEST PUSH2 0x208F SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x209A SWAP1 PUSH1 0xA PUSH2 0x4657 JUMP JUMPDEST PUSH2 0x20AA SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x4665 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20BF DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2881 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH2 0x20E1 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4690 JUMP JUMPDEST PUSH2 0x2268 JUMP JUMPDEST PUSH0 PUSH2 0x20AA DUP4 PUSH2 0x20F3 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x212E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2152 SWAP2 SWAP1 PUSH2 0x4543 JUMP JUMPDEST PUSH2 0x215C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x2167 SWAP1 PUSH1 0xA PUSH2 0x4657 JUMP JUMPDEST PUSH2 0x2171 SWAP1 DUP5 PUSH2 0x4690 JUMP JUMPDEST PUSH2 0x2A74 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21D3 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21F7 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2229 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x439F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2244 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x621 SWAP2 SWAP1 PUSH2 0x46A3 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x22D6 PUSH2 0x2AD8 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x22E8 JUMPI PUSH2 0x22E8 PUSH2 0x44B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x2358 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x236F DUP5 PUSH0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2381 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2393 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23A5 DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23B7 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23C9 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x23DB DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x2B35 JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23EE DUP3 MLOAD PUSH2 0x2B4A JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2400 SWAP3 SWAP2 SWAP1 PUSH2 0x46D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH2 0x242B DUP7 DUP7 DUP7 PUSH2 0x2BDA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x2438 DUP2 PUSH2 0x2C13 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH1 0x1 PUSH1 0x60 SHL DUP4 PUSH2 0x470F JUMP JUMPDEST PUSH2 0x2458 PUSH2 0x3D6D JUMP JUMPDEST PUSH2 0x246F DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x246A PUSH2 0x1518 JUMP JUMPDEST PUSH2 0x2D5C JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2484 DUP2 PUSH2 0x338A JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24EE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2512 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x90E JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x25A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x48C1 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x25DD DUP4 PUSH2 0x343B JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x25E9 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DE1 JUMPI PUSH2 0x14F4 DUP4 DUP4 PUSH2 0x347A JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2667 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x266F PUSH2 0x349F JUMP JUMPDEST PUSH2 0x199A PUSH2 0x34C5 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x269D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x26A9 DUP9 DUP3 PUSH2 0x476D JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x26CC DUP9 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE DUP8 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x26FD DUP7 PUSH2 0x20CD JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2711 PUSH1 0x2 DUP7 PUSH2 0x20E6 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2726 PUSH0 DUP6 PUSH2 0x20E6 JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0xEA6 PUSH2 0x2AD8 JUMP JUMPDEST PUSH2 0x28C1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x28D9 SWAP1 PUSH2 0x28D2 SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x28EB SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x2915 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x290D SWAP1 DUP4 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x291C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x292C SWAP1 DUP7 SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x2942 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x2977 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x295E SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x296F SWAP2 SWAP1 PUSH2 0x438C JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x297E JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x29BB PUSH4 0x1E13380 PUSH2 0x2990 DUP5 DUP7 PUSH2 0x4828 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x29A6 SWAP2 SWAP1 PUSH2 0x4665 JUMP JUMPDEST PUSH2 0x29B0 SWAP2 SWAP1 PUSH2 0x4690 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x29FD PUSH4 0x1E13380 PUSH2 0x29D2 DUP5 DUP7 PUSH2 0x4828 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x29E8 SWAP2 SWAP1 PUSH2 0x4665 JUMP JUMPDEST PUSH2 0x29F2 SWAP2 SWAP1 PUSH2 0x4690 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x34F3 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x2A14 SWAP2 PUSH2 0x44C6 JUMP JUMPDEST SWAP1 POP PUSH2 0x2A2D DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x34F3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x2A3D SWAP2 PUSH2 0x34F3 JUMP JUMPDEST PUSH2 0x2A47 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x2A5B SWAP2 PUSH2 0x44C6 JUMP JUMPDEST PUSH2 0x2A65 SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x2AE3 PUSH2 0xFB6 JUMP JUMPDEST LT ISZERO PUSH2 0x2B02 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x199A PUSH1 0xFC PUSH2 0x3529 JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x4665 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH2 0x2B56 DUP4 PUSH2 0x3926 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B75 PUSH2 0x3FD2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2B9F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x2BA9 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP4 AND DUP2 PUSH2 0x2BF6 PUSH1 0xFF DUP7 SWAP1 SHR PUSH1 0x1B PUSH2 0x44C6 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C04 DUP8 DUP3 DUP9 DUP6 PUSH2 0x39FD JUMP JUMPDEST SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2C26 JUMPI PUSH2 0x2C26 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2C2E JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2C42 JUMPI PUSH2 0x2C42 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2C8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2CA3 JUMPI PUSH2 0x2CA3 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x2CF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2D04 JUMPI PUSH2 0x2D04 PUSH2 0x44B2 JUMP JUMPDEST SUB PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x2D64 PUSH2 0x3D6D JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2D7D JUMPI PUSH2 0x2D7A DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x20B1 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2DCC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2E29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2E44 DUP4 DUP11 PUSH2 0x4828 JUMP JUMPDEST PUSH2 0x2E4E SWAP2 SWAP1 PUSH2 0x4845 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2EA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2EF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F55 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F79 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FE7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x300B SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST LT ISZERO PUSH2 0x306F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x3182 JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30DE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3102 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x315B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x317F SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x31E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x31EE PUSH2 0x14FA JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x3258 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3267 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x3ABA JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x327E SWAP2 SWAP1 PUSH2 0x44C6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x328C SWAP1 POP PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x32E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x333B SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x486E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3357 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337B SWAP2 SWAP1 PUSH2 0x4361 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33F0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3414 SWAP2 SWAP1 PUSH2 0x4313 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3444 DUP2 PUSH2 0x2539 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20AA DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4901 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3C2A JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x199A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x34EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH2 0x199A PUSH2 0x3C9E JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x350F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3593 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x35BF JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x3615 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x3686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x36A8 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x36F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x375F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x37CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3839 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x38A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x38D0 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x3964 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x3990 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x39AE JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x39C6 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x39DA JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x39EC JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x621 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x3A32 JUMPI POP PUSH0 SWAP1 POP PUSH1 0x3 PUSH2 0x3AB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A83 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AAB JUMPI PUSH0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x3AB1 JUMP JUMPDEST SWAP2 POP PUSH0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3AC2 PUSH2 0x3D6D JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x3B1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3B25 PUSH2 0x3D6D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x3B6F DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2881 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x3C08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x3C17 SWAP1 DUP10 PUSH2 0x438C JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3C46 SWAP2 SWAP1 PUSH2 0x48B5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3C7E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3C94 DUP7 DUP4 DUP4 DUP8 PUSH2 0x3CD0 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3CC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP1 PUSH2 0x44F8 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D3E JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3D37 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3D37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x72A JUMP JUMPDEST POP DUP2 PUSH2 0xFED JUMP JUMPDEST PUSH2 0xFED DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3D53 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x72A SWAP2 SWAP1 PUSH2 0x3EB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DF5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x20AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3E20 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x3E52 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP10 CALLDATALOAD SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0x3E70 PUSH1 0x60 DUP12 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD PUSH2 0x3E80 DUP2 PUSH2 0x3E25 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x3EA4 PUSH2 0x100 DUP12 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EF8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20AA DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x3F8D PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x3FA8 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x1DE1 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x621 DUP3 DUP5 PUSH2 0x3F03 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x4000 JUMPI PUSH2 0x4000 PUSH2 0x3FD2 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x402F JUMPI PUSH2 0x402F PUSH2 0x3FD2 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x4046 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x406E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4079 DUP2 PUSH2 0x3E25 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4094 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x40A4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40B3 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3FE6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x40EA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4100 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x4110 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x411F DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3FE6 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x4153 DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4174 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x418C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4196 DUP5 DUP5 PUSH2 0x4163 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x41B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x41CE PUSH1 0x40 DUP6 ADD PUSH2 0x3E0C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x41F6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4223 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x422D DUP5 DUP5 PUSH2 0x4163 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x423E DUP2 PUSH2 0x4204 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x425D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4174 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4323 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x20AA DUP2 PUSH2 0x3E25 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4371 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3E20 DUP2 PUSH2 0x3E25 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x444C PUSH2 0x160 DUP3 ADD PUSH2 0x43C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4468 PUSH2 0x180 DUP3 ADD PUSH2 0x3E0C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x4482 PUSH2 0x1A0 DUP3 ADD PUSH2 0x3E0C JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x44A4 DUP3 DUP6 PUSH2 0x43D4 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x44E8 DUP3 DUP6 PUSH2 0x43D4 JUMP JUMPDEST DUP3 ISZERO ISZERO PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4553 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x20AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x2C0B JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x459B JUMPI PUSH2 0x459B PUSH2 0x4378 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x45A9 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4580 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x45C5 JUMPI POP PUSH1 0x1 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH2 0x45D1 JUMPI POP PUSH0 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x45E7 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x45F1 JUMPI PUSH2 0x460D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x621 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x4602 JUMPI PUSH2 0x4602 PUSH2 0x4378 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4630 JUMPI POP DUP2 DUP2 EXP PUSH2 0x621 JUMP JUMPDEST PUSH2 0x463C PUSH0 NOT DUP5 DUP5 PUSH2 0x457C JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x464F JUMPI PUSH2 0x464F PUSH2 0x4378 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20AA PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x45B7 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x469E JUMPI PUSH2 0x469E PUSH2 0x467C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x20AA DUP2 PUSH2 0x4204 JUMP JUMPDEST PUSH0 DUP2 MLOAD DUP1 PUSH1 0x20 DUP5 ADD DUP6 MCOPY PUSH0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH0 PUSH2 0xFED PUSH2 0x4709 PUSH1 0x1A DUP5 ADD DUP7 PUSH2 0x46BE JUMP JUMPDEST DUP5 PUSH2 0x46BE JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x471D JUMPI PUSH2 0x471D PUSH2 0x467C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1DE1 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4747 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4766 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4753 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4787 JUMPI PUSH2 0x4787 PUSH2 0x3FD2 JUMP JUMPDEST PUSH2 0x479B DUP2 PUSH2 0x4795 DUP5 SLOAD PUSH2 0x4249 JUMP JUMPDEST DUP5 PUSH2 0x4722 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x47CD JUMPI PUSH0 DUP4 ISZERO PUSH2 0x47B6 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x4766 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x47FC JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x47DC JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4819 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4378 JUMP JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x485B JUMPI PUSH2 0x485B PUSH2 0x467C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x487D DUP3 DUP8 PUSH2 0x3F03 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20AA DUP3 DUP5 PUSH2 0x46BE JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122084A8F1 DUP5 SUB RETURNDATASIZE SWAP11 BALANCE SWAP14 JUMPI 0xB0 LOG3 0xD3 0xCE DUP8 SLOAD SLOAD 0xF8 0xDE PUSH13 0x95D2EE50D6CB5E9382EB9A2064 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"687:9907:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:193:60;;;;;;;;;;-1:-1:-1;5376:193:60;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5376:193:60;;;;;;;;6990:545:62;;;;;;;;;;-1:-1:-1;6990:545:62;;;;;:::i;:::-;;:::i;:::-;;;2071:25:88;;;2059:2;2044:18;6990:545:62;1925:177:88;6900:84:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;5340:577:62;;;;;;;;;;-1:-1:-1;5340:577:62;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3916:102:57:-;;;;;;;;;;;;;:::i;736:78:62:-;;;;;;;;;;;;782:32;736:78;;4022:94:57;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;4665:32:88;;;4647:51;;4635:2;4620:18;4022:94:57;4480:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;8309:82:60:-;;;;;;;;;;-1:-1:-1;8379:7:60;;-1:-1:-1;;;;;8379:7:60;8309:82;;3027:131:7;;;;;;;;;;;;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;8585:1305:62;;;;;;;;;;-1:-1:-1;8585:1305:62;;;;;:::i;:::-;;:::i;16309:342:60:-;;;;;;;;;;-1:-1:-1;16309:342:60;;;;;:::i;:::-;;:::i;8104:99::-;;;;;;;;;;-1:-1:-1;8179:7:60;:19;-1:-1:-1;;;8179:19:60;;;;8104:99;;2285:335:62;;;;;;;;;;-1:-1:-1;2285:335:62;;;;;:::i;:::-;;:::i;16655:111:60:-;;;;;;;;;;-1:-1:-1;16745:16:60;16655:111;;884:66:62;;;;;;;;;;;;924:26;884:66;;9894:194;;;;;;;;;;-1:-1:-1;9894:194:62;;;;;:::i;:::-;;:::i;8207:98:60:-;;;;;;;;;;-1:-1:-1;8285:15:60;;8207:98;;3828:84:57;;;;;;;;;;;;;:::i;7982:118:60:-;;;;;;;;;;;;;:::i;10804:235::-;;;;;;;;;;-1:-1:-1;10804:235:60;;;;;:::i;:::-;;:::i;8395:1423::-;;;;;;;;;;-1:-1:-1;8395:1423:60;;;;;:::i;:::-;;:::i;7850:128::-;;;;;;;;;;;;;:::i;9822:115::-;;;;;;;;;;;;;:::i;:::-;;;;;;9513:4:88;9555:3;9544:9;9540:19;9532:27;;9592:6;9586:13;9575:9;9568:32;9656:4;9648:6;9644:17;9638:24;9631:4;9620:9;9616:20;9609:54;9719:4;9711:6;9707:17;9701:24;9694:4;9683:9;9679:20;9672:54;9782:4;9774:6;9770:17;9764:24;9757:4;9746:9;9742:20;9735:54;9845:4;9837:6;9833:17;9827:24;9820:4;9809:9;9805:20;9798:54;9908:4;9900:6;9896:17;9890:24;9883:4;9872:9;9868:20;9861:54;9971:4;9963:6;9959:17;9953:24;9946:4;9935:9;9931:20;9924:54;9371:613;;;;;10529:271:60;;;;;;;;;;-1:-1:-1;10529:271:60;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;818:62:62:-;;;;;;;;;;;;856:24;818:62;;10092:221;;;;;;;;;;-1:-1:-1;10092:221:62;;;;;:::i;:::-;;:::i;5376:193:60:-;5461:4;5480:36;5504:11;5480:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;5520:44:60;;-1:-1:-1;;;5520:44:60;5480:84;5473:91;5376:193;-1:-1:-1;;5376:193:60:o;6990:545:62:-;7266:7;1503:19:8;:17;:19::i;:::-;7294:233:62::1;7320:6:::0;7336:7;7353:8;7371:10;7391;7411:15;7436:16;7462:15;965:10:14;7487:12:62::1;7509:10;7294:16;:233::i;:::-;:236:::0;;6990:545;-1:-1:-1;;;;;;;;;;6990:545:62:o;6900:84:60:-;6946:13;6974:5;6967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:84;:::o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;5340:577:62:-;5620:38;;:::i;:::-;1503:19:8;:17;:19::i;:::-;5679:233:62::1;5705:6:::0;5721:7;5738:8;5756:10;5776;5796:15;5821:16;5847:15;965:10:14;5872:12:62::1;886:96:14::0;5679:233:62::1;5666:246:::0;5340:577;-1:-1:-1;;;;;;;;;;5340:577:62:o;3916:102:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;12947:2:88;2174:92:7;;;12929:21:88;12986:2;12966:18;;;12959:30;13025:34;13005:18;;;12998:62;13096:26;13076:18;;;13069:54;13140:19;;2174:92:7;12745:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;8585:1305:62:-;8873:7;1503:19:8;:17;:19::i;:::-;-1:-1:-1;;;;;8903:26:62;::::1;965:10:14::0;8903:26:62::1;::::0;:80:::1;;;8982:1;8933:10;:8;:10::i;:::-;-1:-1:-1::0;;;;;8933:20:62::1;;8954:10:::0;965::14;8933:46:62::1;::::0;-1:-1:-1;;;;;;8933:46:62::1;::::0;;;;;;-1:-1:-1;;;;;13362:32:88;;;8933:46:62::1;::::0;::::1;13344:51:88::0;13431:32;;13411:18;;;13404:60;13317:18;;8933:46:62::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;8903:80;8888:165;;;::::0;-1:-1:-1;;;8888:165:62;;13866:2:88;8888:165:62::1;::::0;::::1;13848:21:88::0;13905:2;13885:18;;;13878:30;13944:34;13924:18;;;13917:62;-1:-1:-1;;;13995:18:88;;;13988:52;14057:19;;8888:165:62::1;13664:418:88::0;8888:165:62::1;9651:231;9677:6;9693:7;9710:8;9728:10;9748;9768:15;9793:16;9819:15;9844:10;9864;9651:16;:231::i;16309:342:60:-:0;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;16640:6:60::1;16621:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16309:342:60:o;2285:335:62:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;14554:2:88;3325:201:6;;;14536:21:88;14593:2;14573:18;;;14566:30;14632:34;14612:18;;;14605:62;-1:-1:-1;;;14683:18:88;;;14676:44;14737:19;;3325:201:6;14352:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;2511:104:62::1;2529:5;2536:10;2548:12;2562:6;2570:19;2591:14;2607:7;2511:17;:104::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;14919:36:88;;3721:14:6;;14907:2:88;14892:18;3721:14:6;;;;;;;3647:99;3269:483;2285:335:62;;;;;;;:::o;9894:194::-;924:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;10042:41:62::2;::::0;-1:-1:-1;;;10042:41:62;;-1:-1:-1;;;;;10042:11:62::2;:25;::::0;::::2;::::0;:41:::2;::::0;10068:6;;10076;;10042:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:194:::0;;;:::o;3828:84:57:-;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;7982:118:60:-:0;8073:7;:21;8037:7;;8059:36;;8037:7;;-1:-1:-1;;;8073:21:60;;;;8059:10;:36::i;:::-;8052:43;;7982:118;:::o;10804:235::-;10929:7;10951:83;10970:6;10978:8;10988:10;11007:15;11025:8;:6;:8::i;:::-;10951:18;:83::i;:::-;10944:90;10804:235;-1:-1:-1;;;;10804:235:60:o;8395:1423::-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8529:13:60::1;::::0;-1:-1:-1;8520:22:60::1;::::0;-1:-1:-1;;8520:22:60;::::1;:5;:22;;;;;;;;:::i;:::-;::::0;8516:1146:::1;;8566:17;8574:8;8566:7;:17::i;:::-;8552:7;:31:::0;;-1:-1:-1;;8552:31:60::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8516:1146:::1;;;8609:21;8600:5;:30;;;;;;;;:::i;:::-;::::0;8596:1066:::1;;8662:17;8670:8;8662:7;:17::i;:::-;8640:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8640:39:60;;::::1;::::0;;;::::1;::::0;;8596:1066:::1;;;8705:19;8696:5;:28;;;;;;;;:::i;:::-;::::0;8692:970:::1;;8754:17;8762:8;8754:7;:17::i;:::-;8734:7;:37:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8734:37:60;;::::1;::::0;;;::::1;::::0;;8692:970:::1;;;8797:21;8788:5;:30;;;;;;;;:::i;:::-;::::0;8784:878:::1;;8850:17;8858:8;8850:7;:17::i;:::-;8828:7;:39:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8828:39:60::1;-1:-1:-1::0;;8828:39:60;;::::1;::::0;;;::::1;::::0;;8784:878:::1;;;8893:22;8884:5;:31;;;;;;;;:::i;:::-;::::0;8880:782:::1;;8948:17;8956:8;8948:7;:17::i;:::-;8925:7;:40:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8925:40:60::1;-1:-1:-1::0;;8925:40:60;;::::1;::::0;;;::::1;::::0;;8880:782:::1;;;8991:15;8982:5;:24;;;;;;;;:::i;:::-;::::0;8978:684:::1;;9032:17;9040:8;9032:7;:17::i;:::-;9016:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9016:33:60::1;-1:-1:-1::0;;;;9016:33:60;;::::1;::::0;;;::::1;::::0;;8978:684:::1;;;9075:15;9066:5;:24;;;;;;;;:::i;:::-;::::0;9062:600:::1;;9116:17;9124:8;9116:7;:17::i;:::-;9100:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9100:33:60::1;-1:-1:-1::0;;;;9100:33:60;;::::1;::::0;;;::::1;::::0;;9062:600:::1;;;9159:28;9150:5;:37;;;;;;;;:::i;:::-;::::0;9146:516:::1;;9226:23;9237:1;9240:8;9226:10;:23::i;:::-;9197:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9197:52:60::1;-1:-1:-1::0;;;;9197:52:60;;::::1;::::0;;;::::1;::::0;;9146:516:::1;;;9275:23;9266:5;:32;;;;;;;;:::i;:::-;::::0;9262:400:::1;;9328:15;;9316:8;:27;;9308:89;;;::::0;-1:-1:-1;;;9308:89:60;;18000:2:88;9308:89:60::1;::::0;::::1;17982:21:88::0;18039:2;18019:18;;;18012:30;18078:34;18058:18;;;18051:62;-1:-1:-1;;;18129:18:88;;;18122:47;18186:19;;9308:89:60::1;17798:413:88::0;9308:89:60::1;9425:15;:13;:15::i;:::-;9413:8;:27;;:55;;;;9444:24;-1:-1:-1::0;;;;;;;;;;;9444:11:60::1;:24::i;:::-;9405:97;;;::::0;-1:-1:-1;;;9405:97:60;;18418:2:88;9405:97:60::1;::::0;::::1;18400:21:88::0;18457:2;18437:18;;;18430:30;18496:31;18476:18;;;18469:59;18545:18;;9405:97:60::1;18216:353:88::0;9405:97:60::1;9534:23;9545:1;9548:8;9534:10;:23::i;:::-;9510:7;:47:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9510:47:60::1;-1:-1:-1::0;;;;9510:47:60;;::::1;::::0;;;::::1;::::0;;9262:400:::1;;;9583:21;9574:5;:30;;;;;;;;:::i;:::-;::::0;9570:92:::1;;9636:19;:8;:17;:19::i;:::-;9614:7;:41:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9614:41:60::1;-1:-1:-1::0;;;;9614:41:60;;::::1;::::0;;;::::1;::::0;;9570:92:::1;9667:146;9784:5;9776:14;;;;;;;;:::i;:::-;9725:65;::::0;9733:39:::1;9725:65;:::i;:::-;9692:99;;;;;;;;:::i;:::-;9799:8;9667:17;:146::i;:::-;8395:1423:::0;;;;:::o;7850:128::-;7946:7;:26;7910:7;;7932:41;;7943:1;;-1:-1:-1;;;7946:26:60;;;;7932:10;:41::i;9822:115::-;9878:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9878:17:60;9910:22;;;;;;;;9924:7;9910:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;:13;:22::i;10529:271::-;1411:29;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;10620:21:60;::::1;::::0;-1:-1:-1;10616:63:60::1;;10658:14;;-1:-1:-1::0;;;10658:14:60::1;;;;;;;;;;;10616:63;10684:7;:17:::0;;-1:-1:-1;;;;;;10684:17:60::1;-1:-1:-1::0;;;;;10684:17:60;::::1;::::0;;::::1;::::0;;;10707:88:::1;::::0;10725:42:::1;::::0;10707:17:::1;:88::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10092:221:62:-;924:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;10252:56:62::2;::::0;-1:-1:-1;;;;;;10252:56:62;;-1:-1:-1;;;;;10252:11:62::2;:35;::::0;::::2;::::0;:56:::2;::::0;10288:6;;10296:11;;10252:56:::2;;;:::i;3618:206:57:-:0;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;2031:106:8:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;19541:2:88;2092:38:8;;;19523:21:88;19580:2;19560:18;;;19553:30;-1:-1:-1;;;19599:18:88;;;19592:46;19655:18;;2092:38:8;19339:340:88;2092:38:8;2031:106::o;2624:1596:62:-;2912:38;;:::i;:::-;2963:15;2958:124;;2986:11;-1:-1:-1;;;;;2986:18:62;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2986:39:62;;3034:4;782:32;965:10:14;3076:5:62;2986:96;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2958:124;3110:15;3092;:33;;;3088:60;;;3134:14;;-1:-1:-1;;;3134:14:62;;;;;;;;;;;3088:60;3737:99;;-1:-1:-1;;3762:4:62;19997:2:88;19993:15;19989:53;3737:99:62;;;19977:66:88;20059:12;;;20052:28;;;20096:12;;;20089:28;;;20133:12;;;20126:28;;;-1:-1:-1;;;;;;20211:3:88;20189:16;;;20185:45;;20170:13;;;20163:68;20247:13;;;20240:29;;;20304:16;;;20300:45;20285:13;;;20278:68;3681:17:62;;3701:141;;20362:13:88;;3737:99:62;;;;;;;;;;;;3701:28;:141::i;:::-;3681:161;;3848:11;-1:-1:-1;;;;;3848:18:62;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3848:39:62;;3903:4;856:24;3935:59;3949:9;3960:15;3977:16;3935:13;:59::i;:::-;4002:5;3848:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4036:97;4047:6;4055:7;4064:8;4074:10;4086:5;4093:10;4105:27;4121:10;4105:15;:27::i;:::-;4036:10;:97::i;:::-;4160:16;;4144:45;;2071:25:88;;;4020:113:62;;-1:-1:-1;4160:16:62;4144:45;;2059:2:88;2044:18;4144:45:62;;;;;;;4195:20;2624:1596;;;;;;;;;;;;:::o;3206:169:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;:::-;3206:169:::0;;;:::o;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;20777:2:88;3631:56:4;;;20759:21:88;20816:2;20796:18;;;20789:30;20855:34;20835:18;;;20828:62;-1:-1:-1;;;20906:18:88;;;20899:44;20960:19;;3631:56:4;20575:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;21192:2:88;3509:82:4;;;21174:21:88;21231:2;21211:18;;;21204:30;21270:34;21250:18;;;21243:62;-1:-1:-1;;;21321:18:88;;;21314:39;21370:19;;3509:82:4;20990:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;4665:32:88;;;4647:51;;4635:2;4620:18;2785:22:8::1;;;;;;;2697:117::o:0;3858:393:60:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4098:28:60::1;:26;:28::i;:::-;4132:114;4160:5;4167:10;4179:12;4193:6;4201:19;4222:14;4238:7;4132:27;:114::i;2450:115:8:-:0;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;7400:209:60;7473:7;7595:8;7571:10;:8;:10::i;:::-;-1:-1:-1;;;;;7571:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7564:40;;:2;:40;:::i;:::-;7547:57;;:14;;;:57;:::i;:::-;7540:64;7400:209;-1:-1:-1;;;7400:209:60:o;11043:263::-;11202:7;11224:64;11249:1;11252:6;11260:8;11270:10;11282:5;11224:24;:64::i;:::-;:77;;;;11043:263;-1:-1:-1;;;;;;11043:263:60:o;7199:146::-;7254:6;7300:40;7301:27;1140:4;7301:5;:27;:::i;:::-;7300:38;:40::i;7613:233::-;7687:6;7780:61;7820:8;7796:10;:8;:10::i;:::-;-1:-1:-1;;;;;7796:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7789:40;;:2;:40;:::i;:::-;7781:48;;:5;:48;:::i;:::-;7780:59;:61::i;4221:160:57:-;4279:4;4298:11;-1:-1:-1;;;;;4298:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4298:37:57;;4344:4;4351;965:10:14;4371:4:57;4298:78;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;24560:2:88;16362:76:46;;;24542:21:88;24599:2;24579:18;;;24572:30;24638:34;24618:18;;;24611:62;-1:-1:-1;;;24689:18:88;;;24682:36;24735:19;;16362:76:46;24358:402:88;16362:76:46;-1:-1:-1;16462:5:46;16288:187::o;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;2071:25:88;;;5115:31:57;;2059:2:88;2044:18;5115:31:57;;;;;;;4985:166;;:::o;9941:449:60:-;10016:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10016:17:60;10054:331;;;;;;;;10076:20;10084:7;:11;;;10076:7;:20::i;:::-;10054:331;;;;10119:28;10127:7;:19;;;10119:7;:28::i;:::-;10054:331;;;;10168:26;10176:7;:17;;;10168:7;:26::i;:::-;10054:331;;;;10217:28;10225:7;:19;;;10217:7;:28::i;:::-;10054:331;;;;10269:29;10277:7;:20;;;10269:7;:29::i;:::-;10054:331;;;;10315:22;10323:7;:13;;;10315:7;:22::i;:::-;10054:331;;;;10354:22;10362:7;:13;;;10354:7;:22::i;:::-;10054:331;;10041:344;9941:449;-1:-1:-1;;9941:449:60:o;7801:196:42:-;7872:7;7959:26;7976:1;:8;7959:16;:26::i;:::-;7987:1;7908:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7898:92;;;;;;7891:99;;7801:196;;;:::o;4613:222::-;4690:7;4710:17;4729:18;4751:23;4762:4;4768:1;4771:2;4751:10;:23::i;:::-;4709:65;;;;4784:18;4796:5;4784:11;:18::i;:::-;-1:-1:-1;4819:9:42;4613:222;-1:-1:-1;;;;4613:222:42:o;10394:131:60:-;10462:6;10490:29;-1:-1:-1;;;10498:10:60;10490:29;:::i;11970:346::-;12172:24;;:::i;:::-;12211:100;12232:6;12240:7;12249:8;12259:10;12271:5;12278:10;12290;12302:8;:6;:8::i;:::-;12211:20;:100::i;:::-;12204:107;11970:346;-1:-1:-1;;;;;;;;11970:346:60:o;5037:280::-;5120:34;5146:7;5120:25;:34::i;:::-;5160:17;5192:7;5160:40;;5237:16;-1:-1:-1;;;;;5210:43:60;:5;-1:-1:-1;;;;;5210:21:60;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5210:43:60;;5206:107;;5270:36;;-1:-1:-1;;;5270:36:60;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;26051:2:88;1793:106:4;;;26033:21:88;26090:2;26070:18;;;26063:30;26129:34;26109:18;;;26102:62;-1:-1:-1;;;26180:18:88;;;26173:43;26233:19;;1793:106:4;25849:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;26465:2:88;2267:41:8;;;26447:21:88;26504:2;26484:18;;;26477:30;-1:-1:-1;;;26523:18:88;;;26516:50;26583:18;;2267:41:8;26263:344:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4306:727:60:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4556:5:60::1;:13;4564:5:::0;4556;:13:::1;:::i;:::-;-1:-1:-1::0;4585:368:60::1;::::0;;::::1;::::0;::::1;::::0;;1191:3:::1;4585:368:::0;;-1:-1:-1;4585:368:60::1;::::0;::::1;::::0;;;;4667:19:::1;4675:10:::0;4667:7:::1;:19::i;:::-;4585:368;;;;;;4707:21;4715:12;4707:7;:21::i;:::-;4585:368;;::::0;;4750:1:::1;4585:368;::::0;::::1;::::0;;;;;;;;;4782:15:::1;4790:6:::0;4782:7:::1;:15::i;:::-;4585:368;;;;;;4825:34;4836:1;4839:19;4825:10;:34::i;:::-;4585:368;;;;;;4882:29;4893:1;4896:14;4882:10;:29::i;:::-;4585:368;::::0;;::::1;::::0;;1068:4:::1;4585:368;::::0;;::::1;::::0;4575:378;;:7:::1;:378:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;4585:368:::1;4575:378:::0;;::::1;-1:-1:-1::0;;4575:378:60;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;;::::1;;;::::0;;-1:-1:-1;4959:15:60::1;:19:::0;4984:7:::1;:17:::0;;-1:-1:-1;;;;;;4984:17:60::1;-1:-1:-1::0;;;;;4984:17:60;::::1;;::::0;;5007:21:::1;:19;:21::i;1541:1290:55:-:0;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;29119:2:88;15338:76:46;;;29101:21:88;29158:2;29138:18;;;29131:30;29197:34;29177:18;;;29170:62;-1:-1:-1;;;29248:18:88;;;29241:36;29294:19;;15338:76:46;28917:402:88;5619:319:60;5746:15;;5728;:13;:15::i;:::-;:33;5724:106;;;5778:45;;-1:-1:-1;;;5778:45:60;;;;;;;;;;;5724:106;5839:7;;-1:-1:-1;;;;;5839:7:60;5835:63;;5877:14;;-1:-1:-1;;;5877:14:60;;;;;;;;;;;5835:63;5903:30;5925:7;5903:21;:30::i;7039:156::-;7093:7;7154:36;1140:4;7154:14;;;:36;:::i;447:696:41:-;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:41;-1:-1:-1;604:41:41;-1:-1:-1;765:28:41;;;781:2;765:28;820:280;-1:-1:-1;;851:5:41;-1:-1:-1;;;985:2:41;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:41;820:280;1064:21;-1:-1:-1;1120:6:41;447:696;-1:-1:-1;;;447:696:41:o;4142:306:42:-;4222:7;;-1:-1:-1;;;;;4267:80:42;;4222:7;4373:25;4389:3;4374:18;;;4396:2;4373:25;:::i;:::-;4357:42;;4416:25;4427:4;4433:1;4436;4439;4416:10;:25::i;:::-;4409:32;;;;;;4142:306;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:42;;29526:2:88;788:34:42;;;29508:21:88;29565:2;29545:18;;;29538:30;29604:26;29584:18;;;29577:54;29648:18;;788:34:42;29324:348:88;730:345:42;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:42;;29879:2:88;903:41:42;;;29861:21:88;29918:2;29898:18;;;29891:30;29957:33;29937:18;;;29930:61;30008:18;;903:41:42;29677:355:88;839:236:42;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:42;;30239:2:88;1020:44:42;;;30221:21:88;30278:2;30258:18;;;30251:30;30317:34;30297:18;;;30290:62;-1:-1:-1;;;30368:18:88;;;30361:32;30410:19;;1020:44:42;30037:398:88;12439:1484:60;12670:31;;:::i;:::-;12730:15;12756:28;;;12752:122;;12804:63;12823:6;12831:8;12841:10;12853:4;12859:7;12804:18;:63::i;:::-;12794:73;;12752:122;12897:6;12887:7;:16;12879:61;;;;-1:-1:-1;;;12879:61:60;;30642:2:88;12879:61:60;;;30624:21:88;;;30661:18;;;30654:30;30720:34;30700:18;;;30693:62;30772:18;;12879:61:60;30440:356:88;12879:61:60;12967:4;12954:17;;:10;:17;;;12946:62;;;;-1:-1:-1;;;12946:62:60;;31003:2:88;12946:62:60;;;30985:21:88;;;31022:18;;;31015:30;31081:34;31061:18;;;31054:62;31133:18;;12946:62:60;30801:356:88;12946:62:60;13053:7;:19;-1:-1:-1;;;13053:19:60;;;;13045:4;13024:17;13037:4;13024:10;:17;:::i;:::-;13023:26;;;;:::i;:::-;13022:50;;;13014:90;;;;-1:-1:-1;;;13014:90:60;;31551:2:88;13014:90:60;;;31533:21:88;31590:2;31570:18;;;31563:30;31629:29;31609:18;;;31602:57;31676:18;;13014:90:60;31349:351:88;13014:90:60;-1:-1:-1;;;;;13118:24:60;;13110:67;;;;-1:-1:-1;;;13110:67:60;;31907:2:88;13110:67:60;;;31889:21:88;31946:2;31926:18;;;31919:30;31985:32;31965:18;;;31958:60;32035:18;;13110:67:60;31705:354:88;13110:67:60;13263:7;13198:11;-1:-1:-1;;;;;13198:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;13198:61:60;;-1:-1:-1;;;;;13362:32:88;;;13198:61:60;;;13344:51:88;13246:11:60;13431:32:88;;13411:18;;;13404:60;13198:32:60;;;;;;;13317:18:88;;13198:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;13183:148;;;;-1:-1:-1;;;13183:148:60;;32266:2:88;13183:148:60;;;32248:21:88;32305:2;32285:18;;;32278:30;32344:34;32324:18;;;32317:62;-1:-1:-1;;;32395:18:88;;;32388:43;32448:19;;13183:148:60;32064:409:88;13183:148:60;-1:-1:-1;;;;;13352:21:60;;965:10:14;13352:21:60;;:89;;;13434:7;13377:11;-1:-1:-1;;;;;13377:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:32:60;;13410:5;965:10:14;13377:53:60;;-1:-1:-1;;;;;;13377:53:60;;;;;;;-1:-1:-1;;;;;13362:32:88;;;13377:53:60;;;13344:51:88;13431:32;;13411:18;;;13404:60;13317:18;;13377:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;13352:89;13337:167;;;;-1:-1:-1;;;13337:167:60;;32680:2:88;13337:167:60;;;32662:21:88;32719:2;32699:18;;;32692:30;32758:34;32738:18;;;32731:62;-1:-1:-1;;;32809:18:88;;;32802:45;32864:19;;13337:167:60;32478:411:88;13337:167:60;13528:20;:18;:20::i;:::-;13518:6;:30;;13510:93;;;;-1:-1:-1;;;13510:93:60;;33096:2:88;13510:93:60;;;33078:21:88;33135:2;33115:18;;;33108:30;33174:34;33154:18;;;33147:62;-1:-1:-1;;;33225:18:88;;;33218:48;33283:19;;13510:93:60;32894:414:88;13510:93:60;13618:77;13636:4;13642:7;13651;13660:6;13668:8;13678:10;13690:4;13618:17;:77::i;:::-;13609:86;;13720:6;:13;;;13701:15;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:15:60;;-1:-1:-1;13766:13:60;:15::i;:::-;13747;;:34;;13739:82;;;;-1:-1:-1;;;13739:82:60;;33515:2:88;13739:82:60;;;33497:21:88;33554:2;33534:18;;;33527:30;33593:34;33573:18;;;33566:62;-1:-1:-1;;;33644:18:88;;;33637:33;33687:19;;13739:82:60;33313:399:88;13739:82:60;13839:60;;-1:-1:-1;;;13839:60:60;;-1:-1:-1;;;;;13839:11:60;:21;;;;:60;;13861:6;;13869:5;;13876:10;;13888;;13839:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13827:72;;-1:-1:-1;12439:1484:60;;;;;;;;;;:::o;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;1077:319:65:-:0;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;5942:954:60:-;6031:19;;1191:3;6031:19;;;;:38;:19;:38;;6023:86;;;;-1:-1:-1;;;6023:86:60;;34758:2:88;6023:86:60;;;34740:21:88;34797:2;34777:18;;;34770:30;34836:34;34816:18;;;34809:62;-1:-1:-1;;;34887:18:88;;;34880:33;34930:19;;6023:86:60;34556:399:88;6023:86:60;6123:17;;1191:3;6123:17;;;;:36;:17;:36;;;;:61;;-1:-1:-1;6163:17:60;;;;;;;:21;;6123:61;6115:107;;;;-1:-1:-1;;;6115:107:60;;35162:2:88;6115:107:60;;;35144:21:88;35201:2;35181:18;;;35174:30;35240:34;35220:18;;;35213:62;-1:-1:-1;;;35291:18:88;;;35284:31;35332:19;;6115:107:60;34960:397:88;6115:107:60;6257:19;;;;;;;;6236:17;;;;;:40;;6228:89;;;;-1:-1:-1;;;6228:89:60;;35564:2:88;6228:89:60;;;35546:21:88;35603:2;35583:18;;;35576:30;35642:34;35622:18;;;35615:62;-1:-1:-1;;;35693:18:88;;;35686:34;35737:19;;6228:89:60;35362:400:88;6228:89:60;6331:11;;1282:3;6331:22;:11;;;:22;;;;:48;;-1:-1:-1;6357:11:60;;1233:3;6357:22;:11;;;:22;;6331:48;6323:93;;;;-1:-1:-1;;;6323:93:60;;35969:2:88;6323:93:60;;;35951:21:88;;;35988:18;;;35981:30;36047:34;36027:18;;;36020:62;36099:18;;6323:93:60;35767:356:88;6323:93:60;6430:19;;1191:3;-1:-1:-1;;;6430:19:60;;;:38;:19;:38;;6422:87;;;;-1:-1:-1;;;6422:87:60;;36330:2:88;6422:87:60;;;36312:21:88;36369:2;36349:18;;;36342:30;36408:34;36388:18;;;36381:62;-1:-1:-1;;;36459:18:88;;;36452:34;36503:19;;6422:87:60;36128:400:88;6422:87:60;6523:20;;1191:3;-1:-1:-1;;;6523:20:60;;;:39;:20;:39;;6515:89;;;;-1:-1:-1;;;6515:89:60;;36735:2:88;6515:89:60;;;36717:21:88;36774:2;36754:18;;;36747:30;36813:34;36793:18;;;36786:62;-1:-1:-1;;;36864:18:88;;;36857:35;36909:19;;6515:89:60;36533:401:88;6515:89:60;6618:13;;1191:3;-1:-1:-1;;;6618:13:60;;;:32;:13;:32;;6610:82;;;;-1:-1:-1;;;6610:82:60;;37141:2:88;6610:82:60;;;37123:21:88;37180:2;37160:18;;;37153:30;37219:34;37199:18;;;37192:62;-1:-1:-1;;;37270:18:88;;;37263:35;37315:19;;6610:82:60;36939:401:88;6610:82:60;6706:13;;1191:3;-1:-1:-1;;;6706:13:60;;;:32;:13;:32;;6698:82;;;;-1:-1:-1;;;6698:82:60;;37547:2:88;6698:82:60;;;37529:21:88;37586:2;37566:18;;;37559:30;37625:34;37605:18;;;37598:62;-1:-1:-1;;;37676:18:88;;;37669:35;37721:19;;6698:82:60;37345:401:88;6698:82:60;6794:21;;-1:-1:-1;;;6794:21:60;;;;:25;;;;:59;;-1:-1:-1;6823:26:60;;-1:-1:-1;;;6823:26:60;;;;:30;;6794:59;6786:105;;;;-1:-1:-1;;;6786:105:60;;37953:2:88;6786:105:60;;;37935:21:88;37992:2;37972:18;;;37965:30;38031:34;38011:18;;;38004:62;-1:-1:-1;;;38082:18:88;;;38075:31;38123:19;;6786:105:60;37751:397:88;10139:916:45;10192:7;;-1:-1:-1;;;10267:17:45;;10263:103;;-1:-1:-1;;;10304:17:45;;;-1:-1:-1;10349:2:45;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:45;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:45;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:45;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:45;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:45;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:45:o;5009:1456:42:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:42;;-1:-1:-1;6123:30:42;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;38380:25:88;;;38453:4;38441:17;;38421:18;;;38414:45;;;;38475:18;;;38468:34;;;38518:18;;;38511:34;;;6276:24:42;;38352:19:88;;6276:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:42;;-1:-1:-1;;6276:24:42;;;-1:-1:-1;;;;;;;6314:20:42;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:42;;-1:-1:-1;5009:1456:42;;;;;;;;:::o;2835:1074:55:-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;38758:2:88;3089:64:55;;;38740:21:88;38797:2;38777:18;;;38770:30;38836:34;38816:18;;;38809:62;-1:-1:-1;;;38887:18:88;;;38880:32;38929:19;;3089:64:55;38556:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;39161:2:88;3746:72:55;;;39143:21:88;39200:2;39180:18;;;39173:30;39239:27;39219:18;;;39212:55;39284:18;;3746:72:55;38959:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;7069:325:13:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;39710:2:88;8124:60:13;;;39692:21:88;39749:2;39729:18;;;39722:30;39788:31;39768:18;;;39761:59;39837:18;;8124:60:13;39508:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:165;564:20;;624:12;613:24;;603:35;;593:63;;652:1;649;642:12;593:63;497:165;;;:::o;667:131::-;-1:-1:-1;;;;;742:31:88;;732:42;;722:70;;788:1;785;778:12;803:1117;932:6;940;948;956;964;972;980;988;996;1049:3;1037:9;1028:7;1024:23;1020:33;1017:53;;;1066:1;1063;1056:12;1017:53;1111:23;;;-1:-1:-1;1231:2:88;1216:18;;1203:32;;-1:-1:-1;1334:2:88;1319:18;;1306:32;;-1:-1:-1;1383:37:88;1416:2;1401:18;;1383:37;:::i;:::-;1373:47;;1472:3;1461:9;1457:19;1444:33;1486;1511:7;1486:33;:::i;:::-;1538:7;-1:-1:-1;1618:3:88;1603:19;;1590:33;;-1:-1:-1;1722:3:88;1707:19;;1694:33;;-1:-1:-1;1826:3:88;1811:19;;1798:33;;-1:-1:-1;1876:38:88;1909:3;1894:19;;1876:38;:::i;:::-;1866:48;;803:1117;;;;;;;;;;;:::o;2107:418::-;2256:2;2245:9;2238:21;2219:4;2288:6;2282:13;2331:6;2326:2;2315:9;2311:18;2304:34;2390:6;2385:2;2377:6;2373:15;2368:2;2357:9;2353:18;2347:50;2446:1;2441:2;2432:6;2421:9;2417:22;2413:31;2406:42;2516:2;2509;2505:7;2500:2;2492:6;2488:15;2484:29;2473:9;2469:45;2465:54;2457:62;;;2107:418;;;;:::o;2530:247::-;2589:6;2642:2;2630:9;2621:7;2617:23;2613:32;2610:52;;;2658:1;2655;2648:12;2610:52;2697:9;2684:23;2716:31;2741:5;2716:31;:::i;3005:1025::-;3087:5;3081:12;3076:3;3069:25;3143:4;3136:5;3132:16;3126:23;3119:4;3114:3;3110:14;3103:47;3199:4;3192:5;3188:16;3182:23;3175:4;3170:3;3166:14;3159:47;3255:4;3248:5;3244:16;3238:23;3231:4;3226:3;3222:14;3215:47;3311:4;3304:5;3300:16;3294:23;3287:4;3282:3;3278:14;3271:47;3367:4;3360:5;3356:16;3350:23;3343:4;3338:3;3334:14;3327:47;3423:4;3416:5;3412:16;3406:23;3399:4;3394:3;3390:14;3383:47;3479:4;3472:5;3468:16;3462:23;3455:4;3450:3;3446:14;3439:47;3537:6;3530:5;3526:18;3520:25;3511:6;3506:3;3502:16;3495:51;3597:6;3590:5;3586:18;3580:25;3571:6;3566:3;3562:16;3555:51;3657:6;3650:5;3646:18;3640:25;3631:6;3626:3;3622:16;3615:51;3712:6;3705:5;3701:18;3695:25;3729:63;3784:6;3779:3;3775:16;3761:12;-1:-1:-1;;;;;2861:31:88;2849:44;;2782:117;3729:63;;3840:6;3833:5;3829:18;3823:25;3857:51;3900:6;3895:3;3891:16;3875:14;2980:12;2969:24;2957:37;;2904:96;3857:51;;3956:6;3949:5;3945:18;3939:25;3973:51;4016:6;4011:3;4007:16;3991:14;2980:12;2969:24;2957:37;;2904:96;4035:258;4227:3;4212:19;;4240:47;4216:9;4269:6;4240:47;:::i;4709:127::-;4770:10;4765:3;4761:20;4758:1;4751:31;4801:4;4798:1;4791:15;4825:4;4822:1;4815:15;4841:715;4905:5;4937:1;4961:18;4953:6;4950:30;4947:56;;;4983:18;;:::i;:::-;-1:-1:-1;5138:2:88;5132:9;-1:-1:-1;;5051:2:88;5030:15;;5026:29;;5196:2;5184:15;5180:29;5168:42;;5261:22;;;5240:18;5225:34;;5222:62;5219:88;;;5287:18;;:::i;:::-;5323:2;5316:22;5371;;;5356:6;-1:-1:-1;5356:6:88;5408:16;;;5405:25;-1:-1:-1;5402:45:88;;;5443:1;5440;5433:12;5402:45;5493:6;5488:3;5481:4;5473:6;5469:17;5456:44;5548:1;5541:4;5532:6;5524;5520:19;5516:30;5509:41;;4841:715;;;;;:::o;5561:584::-;5638:6;5646;5699:2;5687:9;5678:7;5674:23;5670:32;5667:52;;;5715:1;5712;5705:12;5667:52;5754:9;5741:23;5773:31;5798:5;5773:31;:::i;:::-;5823:5;-1:-1:-1;5879:2:88;5864:18;;5851:32;5906:18;5895:30;;5892:50;;;5938:1;5935;5928:12;5892:50;5961:22;;6014:4;6006:13;;6002:27;-1:-1:-1;5992:55:88;;6043:1;6040;6033:12;5992:55;6066:73;6131:7;6126:2;6113:16;6108:2;6104;6100:11;6066:73;:::i;:::-;6056:83;;;5561:584;;;;;:::o;6358:226::-;6417:6;6470:2;6458:9;6449:7;6445:23;6441:32;6438:52;;;6486:1;6483;6476:12;6438:52;-1:-1:-1;6531:23:88;;6358:226;-1:-1:-1;6358:226:88:o;6589:1193::-;6712:6;6720;6728;6736;6744;6752;6760;6813:3;6801:9;6792:7;6788:23;6784:33;6781:53;;;6830:1;6827;6820:12;6781:53;6870:9;6857:23;6903:18;6895:6;6892:30;6889:50;;;6935:1;6932;6925:12;6889:50;6958:22;;7011:4;7003:13;;6999:27;-1:-1:-1;6989:55:88;;7040:1;7037;7030:12;6989:55;7063:75;7130:7;7125:2;7112:16;7105:4;7101:2;7097:13;7063:75;:::i;:::-;7053:85;-1:-1:-1;;7207:4:88;7192:20;;7179:34;;-1:-1:-1;7310:2:88;7295:18;;7282:32;;-1:-1:-1;7413:2:88;7398:18;;7385:32;;-1:-1:-1;7516:3:88;7501:19;;7488:33;;-1:-1:-1;7620:3:88;7605:19;;7592:33;;-1:-1:-1;7703:3:88;7688:19;;7675:33;7717;7675;7717;:::i;:::-;7769:7;7759:17;;;6589:1193;;;;;;;;;;:::o;8021:159::-;8084:5;8129:3;8120:6;8115:3;8111:16;8107:26;8104:46;;;8146:1;8143;8136:12;8104:46;-1:-1:-1;8168:6:88;8021:159;-1:-1:-1;8021:159:88:o;8185:361::-;8284:6;8292;8345:3;8333:9;8324:7;8320:23;8316:33;8313:53;;;8362:1;8359;8352:12;8313:53;8385:57;8434:7;8423:9;8385:57;:::i;:::-;8375:67;8511:3;8496:19;;;;8483:33;;-1:-1:-1;;;8185:361:88:o;8551:418::-;8627:6;8635;8643;8696:2;8684:9;8675:7;8671:23;8667:32;8664:52;;;8712:1;8709;8702:12;8664:52;8757:23;;;-1:-1:-1;8877:2:88;8862:18;;8849:32;;-1:-1:-1;8926:37:88;8959:2;8944:18;;8926:37;:::i;:::-;8916:47;;8551:418;;;;;:::o;8974:392::-;9057:6;9065;9118:2;9106:9;9097:7;9093:23;9089:32;9086:52;;;9134:1;9131;9124:12;9086:52;9173:9;9160:23;9212:2;9205:5;9202:13;9192:41;;9229:1;9226;9219:12;9192:41;9252:5;9330:2;9315:18;;;;9302:32;;-1:-1:-1;;;8974:392:88:o;10220:118::-;10306:5;10299:13;10292:21;10285:5;10282:32;10272:60;;10328:1;10325;10318:12;10343:376;10439:6;10447;10500:3;10488:9;10479:7;10475:23;10471:33;10468:53;;;10517:1;10514;10507:12;10468:53;10540:57;10589:7;10578:9;10540:57;:::i;:::-;10530:67;;10647:3;10636:9;10632:19;10619:33;10661:28;10683:5;10661:28;:::i;:::-;10708:5;10698:15;;;10343:376;;;;;:::o;10724:380::-;10803:1;10799:12;;;;10846;;;10867:61;;10921:4;10913:6;10909:17;10899:27;;10867:61;10974:2;10966:6;10963:14;10943:18;10940:38;10937:161;;11020:10;11015:3;11011:20;11008:1;11001:31;11055:4;11052:1;11045:15;11083:4;11080:1;11073:15;11109:408;11311:2;11293:21;;;11350:2;11330:18;;;11323:30;11389:34;11384:2;11369:18;;11362:62;-1:-1:-1;;;11455:2:88;11440:18;;11433:42;11507:3;11492:19;;11109:408::o;11522:::-;11724:2;11706:21;;;11763:2;11743:18;;;11736:30;11802:34;11797:2;11782:18;;11775:62;-1:-1:-1;;;11868:2:88;11853:18;;11846:42;11920:3;11905:19;;11522:408::o;11935:275::-;12029:6;12082:2;12070:9;12061:7;12057:23;12053:32;12050:52;;;12098:1;12095;12088:12;12050:52;12130:9;12124:16;12149:31;12174:5;12149:31;:::i;12215:525::-;-1:-1:-1;;;;;12486:32:88;;;12468:51;;12550:2;12535:18;;12528:34;;;;12593:2;12578:18;;12571:34;;;;12641:32;;;12636:2;12621:18;;12614:60;12718:14;;12711:22;12705:3;12690:19;;12683:51;12455:3;12440:19;;12215:525::o;13475:184::-;13545:6;13598:2;13586:9;13577:7;13573:23;13569:32;13566:52;;;13614:1;13611;13604:12;13566:52;-1:-1:-1;13637:16:88;;13475:184;-1:-1:-1;13475:184:88:o;14087:127::-;14148:10;14143:3;14139:20;14136:1;14129:31;14179:4;14176:1;14169:15;14203:4;14200:1;14193:15;14219:128;14286:9;;;14307:11;;;14304:37;;;14321:18;;:::i;14966:453::-;-1:-1:-1;;;;;15209:32:88;;;15191:51;;15273:2;15258:18;;15251:34;;;;15321:32;;15316:2;15301:18;;15294:60;15397:14;;15390:22;15385:2;15370:18;;15363:50;15178:3;15163:19;;14966:453::o;15424:147::-;15505:20;;15534:31;15505:20;15534:31;:::i;15576:1739::-;15685:19;;15713:20;;15802:4;15791:16;;;15778:30;15824:14;;;15817:31;15917:4;15906:16;;;15893:30;15939:14;;;15932:31;16032:4;16021:16;;;16008:30;16054:14;;;16047:31;16147:4;16136:16;;;16123:30;16169:14;;;16162:31;16262:4;16251:16;;;16238:30;16284:14;;;16277:31;16377:4;16366:16;;;16353:30;16399:14;;;16392:31;16492:4;16481:16;;;16468:30;16514:14;;;16507:31;16607:6;16596:18;;;16583:32;16631:16;;;16624:33;16728:6;16717:18;;;16704:32;16752:16;;;16745:34;16850:6;16839:18;;;16826:32;16874:16;;;16867:34;16930:51;16973:6;16962:18;;16930:51;:::i;:::-;-1:-1:-1;;;;;2861:31:88;17045:6;17036:16;;2849:44;17084:37;17113:6;17102:18;;17084:37;:::i;:::-;2980:12;2969:24;17173:6;17164:16;;2957:37;17212;17241:6;17230:18;;17212:37;:::i;:::-;2980:12;2969:24;;17301:6;17292:16;;2957:37;3206:169:57;;;:::o;17320:341:88:-;17542:3;17527:19;;17555:56;17531:9;17593:6;17555:56;:::i;:::-;17648:6;17642:3;17631:9;17627:19;17620:35;17320:341;;;;;:::o;17666:127::-;17727:10;17722:3;17718:20;17715:1;17708:31;17758:4;17755:1;17748:15;17782:4;17779:1;17772:15;18574:125;18639:9;;;18660:10;;;18657:36;;;18673:18;;:::i;18983:351::-;19199:3;19184:19;;19212:56;19188:9;19250:6;19212:56;:::i;:::-;19319:6;19312:14;19305:22;19299:3;19288:9;19284:19;19277:51;18983:351;;;;;:::o;21400:407::-;21602:2;21584:21;;;21641:2;21621:18;;;21614:30;21680:34;21675:2;21660:18;;21653:62;-1:-1:-1;;;21746:2:88;21731:18;;21724:41;21797:3;21782:19;;21400:407::o;21812:273::-;21880:6;21933:2;21921:9;21912:7;21908:23;21904:32;21901:52;;;21949:1;21946;21939:12;21901:52;21981:9;21975:16;22031:4;22024:5;22020:16;22013:5;22010:27;22000:55;;22051:1;22048;22041:12;22090:151;22180:4;22173:12;;;22159;;;22155:31;;22198:14;;22195:40;;;22215:18;;:::i;22246:375::-;22334:1;22352:5;22366:249;22387:1;22377:8;22374:15;22366:249;;;22437:4;22432:3;22428:14;22422:4;22419:24;22416:50;;;22446:18;;:::i;:::-;22496:1;22486:8;22482:16;22479:49;;;22510:16;;;;22479:49;22593:1;22589:16;;;;;22549:15;;22366:249;;22626:902;22675:5;22705:8;22695:80;;-1:-1:-1;22746:1:88;22760:5;;22695:80;22794:4;22784:76;;-1:-1:-1;22831:1:88;22845:5;;22784:76;22876:4;22894:1;22889:59;;;;22962:1;22957:174;;;;22869:262;;22889:59;22919:1;22910:10;;22933:5;;;22957:174;22994:3;22984:8;22981:17;22978:43;;;23001:18;;:::i;:::-;-1:-1:-1;;23057:1:88;23043:16;;23116:5;;22869:262;;23215:2;23205:8;23202:16;23196:3;23190:4;23187:13;23183:36;23177:2;23167:8;23164:16;23159:2;23153:4;23150:12;23146:35;23143:77;23140:203;;;-1:-1:-1;23252:19:88;;;23328:5;;23140:203;23375:42;-1:-1:-1;;23400:8:88;23394:4;23375:42;:::i;:::-;23453:6;23449:1;23445:6;23441:19;23432:7;23429:32;23426:58;;;23464:18;;:::i;:::-;23502:20;;22626:902;-1:-1:-1;;;22626:902:88:o;23533:140::-;23591:5;23620:47;23661:4;23651:8;23647:19;23641:4;23620:47;:::i;23678:168::-;23751:9;;;23782;;23799:15;;;23793:22;;23779:37;23769:71;;23820:18;;:::i;23851:127::-;23912:10;23907:3;23903:20;23900:1;23893:31;23943:4;23940:1;23933:15;23967:4;23964:1;23957:15;23983:120;24023:1;24049;24039:35;;24054:18;;:::i;:::-;-1:-1:-1;24088:9:88;;23983:120::o;24108:245::-;24175:6;24228:2;24216:9;24207:7;24203:23;24199:32;24196:52;;;24244:1;24241;24234:12;24196:52;24276:9;24270:16;24295:28;24317:5;24295:28;:::i;24765:212::-;24807:3;24845:5;24839:12;24889:6;24882:4;24875:5;24871:16;24866:3;24860:36;24951:1;24915:16;;24940:13;;;-1:-1:-1;24915:16:88;;24765:212;-1:-1:-1;24765:212:88:o;24982:463::-;25290:66;25285:3;25278:79;25260:3;25373:66;25399:39;25434:2;25429:3;25425:12;25417:6;25399:39;:::i;:::-;25391:6;25373:66;:::i;25450:112::-;25482:1;25508;25498:35;;25513:18;;:::i;:::-;-1:-1:-1;25547:9:88;;25450:112::o;26738:518::-;26840:2;26835:3;26832:11;26829:421;;;26876:5;26873:1;26866:16;26920:4;26917:1;26907:18;26990:2;26978:10;26974:19;26971:1;26967:27;26961:4;26957:38;27026:4;27014:10;27011:20;27008:47;;;-1:-1:-1;27049:4:88;27008:47;27104:2;27099:3;27095:12;27092:1;27088:20;27082:4;27078:31;27068:41;;27159:81;27177:2;27170:5;27167:13;27159:81;;;27236:1;27222:16;;27203:1;27192:13;27159:81;;;27163:3;;26738:518;;;:::o;27432:1299::-;27558:3;27552:10;27585:18;27577:6;27574:30;27571:56;;;27607:18;;:::i;:::-;27636:97;27726:6;27686:38;27718:4;27712:11;27686:38;:::i;:::-;27680:4;27636:97;:::i;:::-;27782:4;27813:2;27802:14;;27830:1;27825:649;;;;28518:1;28535:6;28532:89;;;-1:-1:-1;28587:19:88;;;28581:26;28532:89;-1:-1:-1;;27389:1:88;27385:11;;;27381:24;27377:29;27367:40;27413:1;27409:11;;;27364:57;28634:81;;27795:930;;27825:649;26685:1;26678:14;;;26722:4;26709:18;;-1:-1:-1;;27861:20:88;;;27979:222;27993:7;27990:1;27987:14;27979:222;;;28075:19;;;28069:26;28054:42;;28182:4;28167:20;;;;28135:1;28123:14;;;;28009:12;27979:222;;;27983:3;28229:6;28220:7;28217:19;28214:201;;;28290:19;;;28284:26;-1:-1:-1;;28373:1:88;28369:14;;;28385:3;28365:24;28361:37;28357:42;28342:58;28327:74;;28214:201;-1:-1:-1;;;;28461:1:88;28445:14;;;28441:22;28428:36;;-1:-1:-1;27432:1299:88:o;28736:176::-;28835:12;28828:20;;;28806;;;28802:47;;28861:22;;28858:48;;;28886:18;;:::i;31162:182::-;31201:1;31235:12;31232:1;31228:20;31267:3;31257:37;;31274:18;;:::i;:::-;31334:3;31319:12;31316:1;31312:20;31308:30;31303:35;;;31162:182;;;;:::o;33717:557::-;33991:3;33976:19;;34004:47;33980:9;34033:6;34004:47;:::i;:::-;-1:-1:-1;;;;;34088:32:88;;;34082:3;34067:19;;34060:61;34158:32;;;;34152:3;34137:19;;34130:61;34240:26;34228:39;34222:3;34207:19;;;34200:68;;;;33717:557;;-1:-1:-1;33717:557:88:o;39313:190::-;39442:3;39467:30;39493:3;39485:6;39467:30;:::i"},"methodIdentifiers":{"POLICY_CREATOR_ROLE()":"45f739ff","PRICER_ROLE()":"fbb81279","RESOLVER_ROLE()":"78fab260","activeExposure()":"7ff8bf25","currency()":"e5a6b10f","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","initialize(string,uint256,uint256,uint256,uint256,uint256,address)":"6f0dbe6f","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","newPolicy(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)":"05918a79","newPolicyFull(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)":"3711bbf5","newPolicyPaidByHolder(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)":"65533024","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)":"ffa600e3","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"premiumsAccount_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"creationIsOpen_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"}],\"name\":\"NewSignedPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_CREATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRICER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESOLVER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"collRatio_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayoutPerPolicy_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exposureLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicyFull\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"createdPolicy\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"policyData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"quoteSignatureVS\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"quoteValidUntil\",\"type\":\"uint40\"}],\"name\":\"newPolicyPaidByHolder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"customerWon\",\"type\":\"bool\"}],\"name\":\"resolvePolicyFullPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Risk Module that for policy creation verifies the different components of the price have been signed by a trusted account (PRICER_ROLE). For the resolution (resolvePolicy), it has to be called by an authorized user\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NewSignedPolicy(uint256,bytes32)\":{\"details\":\"Event emitted every time a new policy is created. It allows to link the policyData with a particular policy\",\"params\":{\"policyData\":\"The value sent in `policyData` parameter that's the hash of the off-chain stored data.\",\"policyId\":\"The id of the policy\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"initialize(string,uint256,uint256,uint256,uint256,uint256,address)\":{\"details\":\"Initializes the RiskModule\",\"params\":{\"collRatio_\":\"Collateralization ratio to compute solvency requirement as % of payout (in ray)\",\"ensuroPpFee_\":\"% of pure premium that will go for Ensuro treasury (in ray)\",\"exposureLimit_\":\"Max exposure (sum of payouts) to be allocated to this module (in wad)\",\"maxPayoutPerPolicy_\":\"Maximum payout per policy (in wad)\",\"name_\":\"Name of the Risk Module\",\"srRoc_\":\"return on capital paid to Senior LPs (annualized percentage - in ray)\",\"wallet_\":\"Address of the RiskModule provider\"}},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"newPolicy(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a signed quote. The caller is the payer of the policy. Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE Emits: - {PolicyPool.NewPolicy} - {NewSignedPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"newPolicyFull(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a signed quote. The caller is the payer of the policy. Returns all the struct, not just the id. Requirements: - The caller approved the spending of the premium to the PolicyPool - The quote has been signed by an address with the component role PRICER_ROLE  Emits: - {PolicyPool.NewPolicy}  - {NewSignedPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"createdPolicy\":\"Returns the created policy\"}},\"newPolicyPaidByHolder(uint256,uint256,uint256,uint40,address,bytes32,bytes32,bytes32,uint40)\":{\"details\":\"Creates a new Policy using a signed quote. The payer is the policy holder Requirements: - currency().allowance(onBehalfOf, _msgSender()) > 0 - The quote has been signed by an address with the component role PRICER_ROLE Emits: - {PolicyPool.NewPolicy} - {NewSignedPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"policyData\":\"A hash of the private details of the policy. The last 96 bits will be used as internalId\",\"premium\":\"The premium that will be paid by the payer\",\"quoteSignatureR\":\"The signature of the quote. R component (EIP-2098 signature)\",\"quoteSignatureVS\":\"The signature of the quote. VS component (EIP-2098 signature)\",\"quoteValidUntil\":\"The expiration of the quote\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"},\"_creationIsOpen\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"SignedQuote Risk Module\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SignedQuoteRiskModule.sol\":\"SignedQuoteRiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/SignedQuoteRiskModule.sol\":{\"keccak256\":\"0x5f3575a3dc702c1999adf2c2a67bfe588efcbdf69902d7e97df42b2e9c2a588f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f83c01194abcfb239504e53b5d68760ee59659177a19f8c2420b0cecf6685af3\",\"dweb:/ipfs/QmY3PVRtN4cAQszPHQ3DeRPjRimE4m4F4y12EfnUkweoQs\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"},{"astId":22434,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"__gap","offset":0,"slot":"301","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/SignedQuoteRiskModule.sol:SignedQuoteRiskModule","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/TimeScaled.sol":{"TimeScaled":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220b58ff017bf9a37a45906ec8f18cb833ebd896f158e0c0be4f3edbcd0d7376f6564736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB5 DUP16 CREATE OR 0xBF SWAP11 CALLDATACOPY LOG4 MSIZE MOD 0xEC DUP16 XOR 0xCB DUP4 RETURNDATACOPY 0xBD DUP10 PUSH16 0x158E0C0BE4F3EDBCD0D7376F6564736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"375:3533:63:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;375:3533:63;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220b58ff017bf9a37a45906ec8f18cb833ebd896f158e0c0be4f3edbcd0d7376f6564736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB5 DUP16 CREATE OR 0xBF SWAP11 CALLDATACOPY LOG4 MSIZE MOD 0xEC DUP16 XOR 0xCB DUP4 RETURNDATACOPY 0xBD DUP10 PUSH16 0x158E0C0BE4F3EDBCD0D7376F6564736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"375:3533:63:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Library for packed amounts that increase continuoulsly with a scale factor\",\"kind\":\"dev\",\"methods\":{},\"title\":\"TimeScaled\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TimeScaled.sol\":\"TimeScaled\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/TimeScaled.sol\":{\"keccak256\":\"0x6a890782602e2ddba87b5447d9d3872dba68766d3005688c65b0e6fcc6594aa9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://40d26b2355a65da60cb26b6c6fef63473f477d3f1271bf6264e42b766f70afb9\",\"dweb:/ipfs/QmWkfwc97WdKXSYZMuaEhFBJWbMKG18jPEmm9GpEyvG2yn\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/TrustfulRiskModule.sol":{"TrustfulRiskModule":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IPremiumsAccount","name":"premiumsAccount_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"PRICER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REPLACER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESOLVER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"uint256","name":"collRatio_","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee_","type":"uint256"},{"internalType":"uint256","name":"srRoc_","type":"uint256"},{"internalType":"uint256","name":"maxPayoutPerPolicy_","type":"uint256"},{"internalType":"uint256","name":"exposureLimit_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicyFull","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"createdPolicy","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"bool","name":"customerWon","type":"bool"}],"name":"resolvePolicyFullPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_20268":{"entryPoint":null,"id":20268,"parameterSlots":2,"returnSlots":0},"@_22908":{"entryPoint":null,"id":22908,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":293,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":504,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IPolicyPool":{"entryPoint":481,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1510:88","nodeType":"YulBlock","src":"0:1510:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"308:313:88","nodeType":"YulBlock","src":"308:313:88","statements":[{"body":{"nativeSrc":"354:16:88","nodeType":"YulBlock","src":"354:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"363:1:88","nodeType":"YulLiteral","src":"363:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"356:6:88","nodeType":"YulIdentifier","src":"356:6:88"},"nativeSrc":"356:12:88","nodeType":"YulFunctionCall","src":"356:12:88"},"nativeSrc":"356:12:88","nodeType":"YulExpressionStatement","src":"356:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"329:7:88","nodeType":"YulIdentifier","src":"329:7:88"},{"name":"headStart","nativeSrc":"338:9:88","nodeType":"YulIdentifier","src":"338:9:88"}],"functionName":{"name":"sub","nativeSrc":"325:3:88","nodeType":"YulIdentifier","src":"325:3:88"},"nativeSrc":"325:23:88","nodeType":"YulFunctionCall","src":"325:23:88"},{"kind":"number","nativeSrc":"350:2:88","nodeType":"YulLiteral","src":"350:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"321:3:88","nodeType":"YulIdentifier","src":"321:3:88"},"nativeSrc":"321:32:88","nodeType":"YulFunctionCall","src":"321:32:88"},"nativeSrc":"318:52:88","nodeType":"YulIf","src":"318:52:88"},{"nativeSrc":"379:29:88","nodeType":"YulVariableDeclaration","src":"379:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"398:9:88","nodeType":"YulIdentifier","src":"398:9:88"}],"functionName":{"name":"mload","nativeSrc":"392:5:88","nodeType":"YulIdentifier","src":"392:5:88"},"nativeSrc":"392:16:88","nodeType":"YulFunctionCall","src":"392:16:88"},"variables":[{"name":"value","nativeSrc":"383:5:88","nodeType":"YulTypedName","src":"383:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"455:5:88","nodeType":"YulIdentifier","src":"455:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"417:37:88","nodeType":"YulIdentifier","src":"417:37:88"},"nativeSrc":"417:44:88","nodeType":"YulFunctionCall","src":"417:44:88"},"nativeSrc":"417:44:88","nodeType":"YulExpressionStatement","src":"417:44:88"},{"nativeSrc":"470:15:88","nodeType":"YulAssignment","src":"470:15:88","value":{"name":"value","nativeSrc":"480:5:88","nodeType":"YulIdentifier","src":"480:5:88"},"variableNames":[{"name":"value0","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"}]},{"nativeSrc":"494:40:88","nodeType":"YulVariableDeclaration","src":"494:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"519:9:88","nodeType":"YulIdentifier","src":"519:9:88"},{"kind":"number","nativeSrc":"530:2:88","nodeType":"YulLiteral","src":"530:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"515:3:88","nodeType":"YulIdentifier","src":"515:3:88"},"nativeSrc":"515:18:88","nodeType":"YulFunctionCall","src":"515:18:88"}],"functionName":{"name":"mload","nativeSrc":"509:5:88","nodeType":"YulIdentifier","src":"509:5:88"},"nativeSrc":"509:25:88","nodeType":"YulFunctionCall","src":"509:25:88"},"variables":[{"name":"value_1","nativeSrc":"498:7:88","nodeType":"YulTypedName","src":"498:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"581:7:88","nodeType":"YulIdentifier","src":"581:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"543:37:88","nodeType":"YulIdentifier","src":"543:37:88"},"nativeSrc":"543:46:88","nodeType":"YulFunctionCall","src":"543:46:88"},"nativeSrc":"543:46:88","nodeType":"YulExpressionStatement","src":"543:46:88"},{"nativeSrc":"598:17:88","nodeType":"YulAssignment","src":"598:17:88","value":{"name":"value_1","nativeSrc":"608:7:88","nodeType":"YulIdentifier","src":"608:7:88"},"variableNames":[{"name":"value1","nativeSrc":"598:6:88","nodeType":"YulIdentifier","src":"598:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"163:458:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"266:9:88","nodeType":"YulTypedName","src":"266:9:88","type":""},{"name":"dataEnd","nativeSrc":"277:7:88","nodeType":"YulTypedName","src":"277:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"289:6:88","nodeType":"YulTypedName","src":"289:6:88","type":""},{"name":"value1","nativeSrc":"297:6:88","nodeType":"YulTypedName","src":"297:6:88","type":""}],"src":"163:458:88"},{"body":{"nativeSrc":"728:183:88","nodeType":"YulBlock","src":"728:183:88","statements":[{"body":{"nativeSrc":"774:16:88","nodeType":"YulBlock","src":"774:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:88","nodeType":"YulLiteral","src":"783:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"786:1:88","nodeType":"YulLiteral","src":"786:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"776:6:88","nodeType":"YulIdentifier","src":"776:6:88"},"nativeSrc":"776:12:88","nodeType":"YulFunctionCall","src":"776:12:88"},"nativeSrc":"776:12:88","nodeType":"YulExpressionStatement","src":"776:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"749:7:88","nodeType":"YulIdentifier","src":"749:7:88"},{"name":"headStart","nativeSrc":"758:9:88","nodeType":"YulIdentifier","src":"758:9:88"}],"functionName":{"name":"sub","nativeSrc":"745:3:88","nodeType":"YulIdentifier","src":"745:3:88"},"nativeSrc":"745:23:88","nodeType":"YulFunctionCall","src":"745:23:88"},{"kind":"number","nativeSrc":"770:2:88","nodeType":"YulLiteral","src":"770:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"741:3:88","nodeType":"YulIdentifier","src":"741:3:88"},"nativeSrc":"741:32:88","nodeType":"YulFunctionCall","src":"741:32:88"},"nativeSrc":"738:52:88","nodeType":"YulIf","src":"738:52:88"},{"nativeSrc":"799:29:88","nodeType":"YulVariableDeclaration","src":"799:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:88","nodeType":"YulIdentifier","src":"818:9:88"}],"functionName":{"name":"mload","nativeSrc":"812:5:88","nodeType":"YulIdentifier","src":"812:5:88"},"nativeSrc":"812:16:88","nodeType":"YulFunctionCall","src":"812:16:88"},"variables":[{"name":"value","nativeSrc":"803:5:88","nodeType":"YulTypedName","src":"803:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"875:5:88","nodeType":"YulIdentifier","src":"875:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"837:37:88","nodeType":"YulIdentifier","src":"837:37:88"},"nativeSrc":"837:44:88","nodeType":"YulFunctionCall","src":"837:44:88"},"nativeSrc":"837:44:88","nodeType":"YulExpressionStatement","src":"837:44:88"},{"nativeSrc":"890:15:88","nodeType":"YulAssignment","src":"890:15:88","value":{"name":"value","nativeSrc":"900:5:88","nodeType":"YulIdentifier","src":"900:5:88"},"variableNames":[{"name":"value0","nativeSrc":"890:6:88","nodeType":"YulIdentifier","src":"890:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"626:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"694:9:88","nodeType":"YulTypedName","src":"694:9:88","type":""},{"name":"dataEnd","nativeSrc":"705:7:88","nodeType":"YulTypedName","src":"705:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"717:6:88","nodeType":"YulTypedName","src":"717:6:88","type":""}],"src":"626:285:88"},{"body":{"nativeSrc":"1090:229:88","nodeType":"YulBlock","src":"1090:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:88","nodeType":"YulIdentifier","src":"1100:6:88"},"nativeSrc":"1100:21:88","nodeType":"YulFunctionCall","src":"1100:21:88"},"nativeSrc":"1100:21:88","nodeType":"YulExpressionStatement","src":"1100:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1141:9:88","nodeType":"YulIdentifier","src":"1141:9:88"},{"kind":"number","nativeSrc":"1152:2:88","nodeType":"YulLiteral","src":"1152:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1137:3:88","nodeType":"YulIdentifier","src":"1137:3:88"},"nativeSrc":"1137:18:88","nodeType":"YulFunctionCall","src":"1137:18:88"},{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"1130:6:88","nodeType":"YulIdentifier","src":"1130:6:88"},"nativeSrc":"1130:30:88","nodeType":"YulFunctionCall","src":"1130:30:88"},"nativeSrc":"1130:30:88","nodeType":"YulExpressionStatement","src":"1130:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1180:9:88","nodeType":"YulIdentifier","src":"1180:9:88"},{"kind":"number","nativeSrc":"1191:2:88","nodeType":"YulLiteral","src":"1191:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1176:3:88","nodeType":"YulIdentifier","src":"1176:3:88"},"nativeSrc":"1176:18:88","nodeType":"YulFunctionCall","src":"1176:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1196:34:88","nodeType":"YulLiteral","src":"1196:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:88","nodeType":"YulIdentifier","src":"1169:6:88"},"nativeSrc":"1169:62:88","nodeType":"YulFunctionCall","src":"1169:62:88"},"nativeSrc":"1169:62:88","nodeType":"YulExpressionStatement","src":"1169:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1251:9:88","nodeType":"YulIdentifier","src":"1251:9:88"},{"kind":"number","nativeSrc":"1262:2:88","nodeType":"YulLiteral","src":"1262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1247:3:88","nodeType":"YulIdentifier","src":"1247:3:88"},"nativeSrc":"1247:18:88","nodeType":"YulFunctionCall","src":"1247:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1267:9:88","nodeType":"YulLiteral","src":"1267:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1240:6:88","nodeType":"YulIdentifier","src":"1240:6:88"},"nativeSrc":"1240:37:88","nodeType":"YulFunctionCall","src":"1240:37:88"},"nativeSrc":"1240:37:88","nodeType":"YulExpressionStatement","src":"1240:37:88"},{"nativeSrc":"1286:27:88","nodeType":"YulAssignment","src":"1286:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1298:9:88","nodeType":"YulIdentifier","src":"1298:9:88"},{"kind":"number","nativeSrc":"1309:3:88","nodeType":"YulLiteral","src":"1309:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1294:3:88","nodeType":"YulIdentifier","src":"1294:3:88"},"nativeSrc":"1294:19:88","nodeType":"YulFunctionCall","src":"1294:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1286:4:88","nodeType":"YulIdentifier","src":"1286:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"916:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulTypedName","src":"1067:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1081:4:88","nodeType":"YulTypedName","src":"1081:4:88","type":""}],"src":"916:403:88"},{"body":{"nativeSrc":"1421:87:88","nodeType":"YulBlock","src":"1421:87:88","statements":[{"nativeSrc":"1431:26:88","nodeType":"YulAssignment","src":"1431:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1443:9:88","nodeType":"YulIdentifier","src":"1443:9:88"},{"kind":"number","nativeSrc":"1454:2:88","nodeType":"YulLiteral","src":"1454:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1439:3:88","nodeType":"YulIdentifier","src":"1439:3:88"},"nativeSrc":"1439:18:88","nodeType":"YulFunctionCall","src":"1439:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1431:4:88","nodeType":"YulIdentifier","src":"1431:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1473:9:88","nodeType":"YulIdentifier","src":"1473:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1488:6:88","nodeType":"YulIdentifier","src":"1488:6:88"},{"kind":"number","nativeSrc":"1496:4:88","nodeType":"YulLiteral","src":"1496:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1484:3:88","nodeType":"YulIdentifier","src":"1484:3:88"},"nativeSrc":"1484:17:88","nodeType":"YulFunctionCall","src":"1484:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"},"nativeSrc":"1466:36:88","nodeType":"YulFunctionCall","src":"1466:36:88"},"nativeSrc":"1466:36:88","nodeType":"YulExpressionStatement","src":"1466:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1324:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1390:9:88","nodeType":"YulTypedName","src":"1390:9:88","type":""},{"name":"value0","nativeSrc":"1401:6:88","nodeType":"YulTypedName","src":"1401:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1412:4:88","nodeType":"YulTypedName","src":"1412:4:88","type":""}],"src":"1324:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051614f73380380614f73833981016040819052610032916101f8565b8181816001600160a01b03811661005c57604051636b23cf0160e01b815260040160405180910390fd5b610064610125565b806001600160a01b031660a0816001600160a01b03168152505050816001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610230565b6001600160a01b0316146101105760405163fec343d560e01b815260040160405180910390fd5b6001600160a01b031660c05250610252915050565b5f54610100900460ff16156101905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101df575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f5575f5ffd5b50565b5f5f60408385031215610209575f5ffd5b8251610214816101e1565b6020840151909250610225816101e1565b809150509250929050565b5f60208284031215610240575f5ffd5b815161024b816101e1565b9392505050565b60805160a05160c051614c1e6103555f395f81816103d7015261310401525f81816102d9015281816106e3015281816107d5015281816108aa01528181610ac001528181610bd601528181610e4e01528181610fe9015281816110e30152818161116f015281816112c3015281816118b7015281816119e701528181611a8801528181611b8501528181611c5101528181611f920152818161202f015281816120e2015281816122b10152818161238a0152818161280201528181612d7b01528181612e1801528181612ebe0152818161306b01526137c601525f81816109b3015281816109fc01528181610cd901528181610d190152610da60152614c1e5ff3fe6080604052600436106101c5575f3560e01c806373a952e8116100f2578063af0e7e0c11610092578063deaa59df11610062578063deaa59df14610577578063e5a6b10f14610596578063fbb81279146105aa578063ffa600e3146105dd575f5ffd5b8063af0e7e0c146104a8578063c1cca2b3146104db578063cfd4c606146104fa578063cff0ab961461050e575f5ffd5b80637ff8bf25116100cd5780637ff8bf251461044d5780638456cb591461046157806385272a6e146104755780638bac3a2414610489575f5ffd5b806373a952e8146103c957806378fab260146103fb5780637a702b3c1461042e575f5ffd5b80634d15eb03116101685780635c975abb116101385780635c975abb146103555780636a448ef11461036c5780636db5c8fd1461038b5780636f0dbe6f146103aa575f5ffd5b80634d15eb03146102cb5780634f1ef28614610311578063521eb2731461032457806352d1902d14610341575f5ffd5b80631d177dc4116101a35780631d177dc41461024b5780633659cfe6146102775780633f4ba83a14610298578063406f7f6f146102ac575f5ffd5b806301ffc9a7146101c957806306fdde03146101fd5780630bc872d91461021e575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004613f1b565b6105fc565b60405190151581526020015b60405180910390f35b348015610208575f5ffd5b50610211610627565b6040516101f49190613f42565b348015610229575f5ffd5b5061023d610238366004613fbd565b6106b7565b6040519081526020016101f4565b348015610256575f5ffd5b5061026a610265366004614033565b610877565b6040516101f49190614144565b348015610282575f5ffd5b50610296610291366004614153565b6109a9565b005b3480156102a3575f5ffd5b50610296610a8f565b3480156102b7575f5ffd5b5061023d6102c6366004614033565b610baa565b3480156102d6575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101f4565b61029661031f3660046141f9565b610ccf565b34801561032f575f5ffd5b5060fe546001600160a01b03166102f9565b34801561034c575f5ffd5b5061023d610d9a565b348015610360575f5ffd5b5060975460ff166101e8565b348015610377575f5ffd5b50610296610386366004614259565b610e4b565b348015610396575f5ffd5b5060fc54600160b01b900461ffff1661023d565b3480156103b5575f5ffd5b506102966103c4366004614270565b610ead565b3480156103d4575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102f9565b348015610406575f5ffd5b5061023d7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b348015610439575f5ffd5b506102966104483660046142ff565b610fc6565b348015610458575f5ffd5b5060fd5461023d565b34801561046c575f5ffd5b5061029661114c565b348015610480575f5ffd5b5061023d611253565b348015610494575f5ffd5b5061023d6104a336600461432a565b611275565b3480156104b3575f5ffd5b5061023d7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d07455581565b3480156104e6575f5ffd5b506102966104f536600461435c565b611292565b348015610505575f5ffd5b5061023d611797565b348015610519575f5ffd5b506105226117b5565b6040516101f491905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610582575f5ffd5b50610296610591366004614153565b611894565b3480156105a1575f5ffd5b506102f96119e4565b3480156105b5575f5ffd5b5061023d7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b3480156105e8575f5ffd5b506102966105f7366004614396565b611a65565b5f61060682611bbc565b8061062157506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb8054610636906143ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610662906143ce565b80156106ad5780601f10610684576101008083540402835291602001916106ad565b820191905f5260205f20905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b5f6106c0611bf1565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610792949392919061441b565b5f6040518083038186803b1580156107a8575f5ffd5b505afa1580156107ba573d5f5f3e3d5ffd5b50506040516331a9108f60e11b81528a3560048201525f92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169150636352211e90602401602060405180830381865afa158015610823573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108479190614400565b9050610869898989898961085b878e611c39565b8a6108646117b5565b611d5c565b519998505050505050505050565b61087f613ea3565b610887611bf1565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109289190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610959949392919061441b565b5f6040518083038186803b15801561096f575f5ffd5b505afa158015610981573d5f5f3e3d5ffd5b5050505061099d88888888610996898d611c39565b898961233a565b98975050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109fa5760405162461bcd60e51b81526004016109f190614445565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a425f516020614b825f395f51905f52546001600160a01b031690565b6001600160a01b031614610a685760405162461bcd60e51b81526004016109f190614491565b610a7181612359565b604080515f80825260208201909252610a8c91839190612476565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ba25f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3e9190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610b729594939291906144dd565b5f6040518083038186803b158015610b88575f5ffd5b505afa158015610b9a573d5f5f3e3d5ffd5b50505050610ba66125e0565b5050565b5f610bb3611bf1565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610c85949392919061441b565b5f6040518083038186803b158015610c9b575f5ffd5b505afa158015610cad573d5f5f3e3d5ffd5b50505050610cc288888888610996898d611c39565b5198975050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d175760405162461bcd60e51b81526004016109f190614445565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d5f5f516020614b825f395f51905f52546001600160a01b031690565b6001600160a01b031614610d855760405162461bcd60e51b81526004016109f190614491565b610d8e82612359565b610ba682826001612476565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e395760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016109f1565b505f516020614b825f395f51905f5290565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610e945760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610ea59190614524565b909155505050565b5f54610100900460ff1615808015610ecb57505f54600160ff909116105b80610ee45750303b158015610ee457505f5460ff166001145b610f475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f1565b5f805460ff191660011790558015610f68575f805461ff0019166101001790555b610f7788888888888888612632565b8015610fbc575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611043573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110679190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611098949392919061441b565b5f6040518083038186803b1580156110ae575f5ffd5b505afa1580156110c0573d5f5f3e3d5ffd5b505050506110cc611bf1565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c9061111a9086908690600401614603565b5f604051808303815f87803b158015611131575f5ffd5b505af1158015611143573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190614400565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161121f949392919061441b565b5f6040518083038186803b158015611235575f5ffd5b505afa158015611247573d5f5f3e3d5ffd5b50505050610a8c61266f565b60fc545f90611270908290600160901b900463ffffffff166126ac565b905090565b5f61128a848484426112856117b5565b61273a565b949350505050565b5f516020614ba25f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113419190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016113759594939291906144dd565b5f6040518083038186803b15801561138b575f5ffd5b505afa15801561139d573d5f5f3e3d5ffd5b505f92506113a9915050565b8460098111156113bb576113bb614620565b036113e4576113c983612756565b60fc805461ffff191661ffff9290921691909117905561175a565b60018460098111156113f8576113f8614620565b0361142a5761140683612756565b60fc805461ffff92909216620100000263ffff00001990921691909117905561175a565b600284600981111561143e5761143e614620565b036114745761144c83612756565b60fc805461ffff929092166401000000000265ffff000000001990921691909117905561175a565b600384600981111561148857611488614620565b036114bf5761149683612756565b60fc805461ffff92909216600160301b0267ffff0000000000001990921691909117905561175a565b60048460098111156114d3576114d3614620565b0361150c576114e183612756565b60fc805461ffff92909216600160401b0269ffff00000000000000001990921691909117905561175a565b600584600981111561152057611520614620565b036115545761152e83612756565b60fc805461ffff92909216600160501b0261ffff60501b1990921691909117905561175a565b600684600981111561156857611568614620565b0361159c5761157683612756565b60fc805461ffff92909216600160601b0261ffff60601b1990921691909117905561175a565b60078460098111156115b0576115b0614620565b036115ea576115c060028461276f565b60fc805463ffffffff92909216600160701b0263ffffffff60701b1990921691909117905561175a565b60088460098111156115fe576115fe614620565b036117165760fd5483101561166f5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016109f1565b611677611253565b8311158061169657506116965f516020614ba25f395f51905f526127ff565b6116e25760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016109f1565b6116ec5f8461276f565b60fc805463ffffffff92909216600160901b0263ffffffff60901b1990921691909117905561175a565b600984600981111561172a5761172a614620565b0361175a57611738836128f1565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b61179184600981111561176f5761176f614620565b61177a906008614634565b602d81111561178b5761178b614620565b84612957565b50505050565b60fc545f9061127090600290600160701b900463ffffffff166126ac565b6117ee6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611270906129a8565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611966949392919061441b565b5f6040518083038186803b15801561197c575f5ffd5b505afa15801561198e573d5f5f3e3d5ffd5b5050506001600160a01b03831690506119ba57604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610ba690601290612957565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a41573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112709190614400565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b069190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611b37949392919061441b565b5f6040518083038186803b158015611b4d575f5ffd5b505afa158015611b5f573d5f5f3e3d5ffd5b50505050611b6b611bf1565b60405160016259ff1d60e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ffa600e39061111a9086908690600401614647565b5f6001600160e01b031982166301ffc9a760e01b148061062157506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff1615611c375760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f1565b565b816001600160a01b0381163314801590611d4e5750817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cab573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ccf9190614400565b6001600160a01b031663dd62ed3e83336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d4c9190614666565b105b1561062157335b9392505050565b611d64613ea3565b5f198703611d8d57611d8a888787611d846101a08e016101808f0161467d565b8661273a565b96505b878710611ddc5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016109f1565b64ffffffffff4216611df66101c08b016101a08c0161467d565b64ffffffffff1611611e425760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016109f1565b611e546101c08a016101a08b0161467d565b64ffffffffff168564ffffffffff1610158015611e75575088602001358810155b8015611e85575088604001358710155b611ef75760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016109f1565b60fc54600160b01b900461ffff16610e10611f1a6101a08c016101808d0161467d565b611f249088614696565b611f2e91906146c7565b64ffffffffff1610611f825760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016109f1565b611f9060408a013588614524565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120109190614400565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561207e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a29190614666565b10156120c05760405162461bcd60e51b81526004016109f1906146f0565b6001600160a01b0384163314806121e057506120e060408a013588614524565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121609190614400565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156121b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121dd9190614666565b10155b6121fc5760405162461bcd60e51b81526004016109f19061473d565b612204611797565b8811156122235760405162461bcd60e51b81526004016109f19061478c565b6122453083898b8a8a8f610180016020810190612240919061467d565b612a6c565b90508860200135816020015161225b9190614524565b60fd5f82825461226b9190614634565b909155506122799050611253565b60fd54111561229a5760405162461bcd60e51b81526004016109f1906147de565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae906122ec908c90859089908990600401614821565b6020604051808303815f875af1158015612308573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232c9190614666565b815298975050505050505050565b612342613ea3565b61099d888888888888886123546117b5565b612bdc565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ba25f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124089190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b815260040161243c9594939291906144dd565b5f6040518083038186803b158015612452575f5ffd5b505afa158015612464573d5f5f3e3d5ffd5b50505050612471836130f5565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124a957612471836131b3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612503575060408051601f3d908101601f1916820190925261250091810190614666565b60015b6125665760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109f1565b5f516020614b825f395f51905f5281146125d45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109f1565b5061247183838361324e565b6125e8613272565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff166126585760405162461bcd60e51b81526004016109f190614869565b6126606132bb565b611143878787878787876132f1565b612677611bf1565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126153390565b5f826126b66119e4565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f1573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061271591906148b4565b61271f91906148d4565b61272a90600a6149d0565b611d559063ffffffff84166149de565b5f61274882878787876134fb565b60e001519695505050505050565b5f61062161276a655af3107a4000846149f5565b6128f1565b5f611d558361277c6119e4565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127db91906148b4565b6127e591906148d4565b6127f090600a6149d0565b6127fa90846149f5565b6136ee565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561285c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128809190614400565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b81526004016128b2949392919061441b565b602060405180830381865afa1580156128cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190614a08565b5f61ffff8211156129535760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016109f1565b5090565b61295f613752565b81602d81111561297157612971614620565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6129e16040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e001604052806129f8845f01516137af565b8152602001612a0a84602001516137af565b8152602001612a1c84604001516137af565b8152602001612a2e84606001516137af565b8152602001612a4084608001516137af565b8152602001612a528460a001516137af565b8152602001612a648460c001516137af565b905292915050565b612a74613ea3565b84861115612acf5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016109f1565b612ad7613ea3565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f612b2189888888886134fb565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015612bba5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016109f1565b60e0810151612bc99089614524565b6101008301525098975050505050505050565b612be4613ea3565b4260018901612bfd57612bfa8a8989848761273a565b98505b898910612c4c5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016109f1565b8064ffffffffff168764ffffffffff1611612ca95760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016109f1565b60fc54600160b01b900461ffff16610e10612cc4838a614696565b612cce91906146c7565b64ffffffffff1610612d225760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016109f1565b6001600160a01b038516612d785760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016109f1565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612df99190614400565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612e67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e8b9190614666565b1015612ea95760405162461bcd60e51b81526004016109f1906146f0565b6001600160a01b038616331480612fbc5750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f3c9190614400565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612f95573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fb99190614666565b10155b612fd85760405162461bcd60e51b81526004016109f19061473d565b612fe0611797565b8a1115612fff5760405162461bcd60e51b81526004016109f19061478c565b61300e30848b8d8c8c87612a6c565b9150816020015160fd5f8282546130259190614634565b909155506130339050611253565b60fd5411156130545760405162461bcd60e51b81526004016109f1906147de565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906130a69085908a908a908a90600401614a23565b6020604051808303815f875af11580156130c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e69190614666565b82525098975050505050505050565b6130fe816137c4565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613168573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061318c9190614400565b6001600160a01b031614610ba65760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6132205760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109f1565b5f516020614b825f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61325783613875565b5f825111806132635750805b156124715761179183836138b4565b60975460ff16611c375760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f1565b5f54610100900460ff166132e15760405162461bcd60e51b81526004016109f190614869565b6132e96138d9565b611c376138ff565b5f54610100900460ff166133175760405162461bcd60e51b81526004016109f190614869565b60fb6133238882614ab0565b50604080516101408101825261271081525f602082015290810161334688612756565b61ffff16815260200161335887612756565b61ffff1681525f60208201819052604082015260600161337786612756565b61ffff16815260200161338b60028661276f565b63ffffffff1681526020016133a05f8561276f565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055611143613752565b61353b6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516135539061354c90869061392d565b869061392d565b8152602086015161356590869061392d565b602082018190528151101561358f578051602082018051613587908390614524565b905250613596565b5f60208201525b60408601516135a690869061392d565b6040820152602081015181516135bc9190614634565b816040015111156135f157602081015181516135d89190614634565b816040018181516135e99190614524565b9052506135f8565b5f60408201525b6136356301e1338061360a8486614696565b64ffffffffff168860a0015161362091906149de565b61362a91906149f5565b60208301519061392d565b60608201526136776301e1338061364c8486614696565b64ffffffffff168860c0015161366291906149de565b61366c91906149f5565b60408301519061392d565b6080820181905260608201515f9161368e91614634565b90506136a787608001518261392d90919063ffffffff16565b606088015183516136b79161392d565b6136c19190614634565b60a08301819052825182916136d591614634565b6136df9190614634565b60e08301525095945050505050565b5f63ffffffff8211156129535760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016109f1565b60fd5461375d611253565b101561377c57604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b03166137a557604051634d1c286960e11b815260040160405180910390fd5b611c3760fc613963565b5f610621655af3107a400061ffff84166149de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561382a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061384e9190614400565b6001600160a01b031614610a8c5760405163d2b3d33f60e01b815260040160405180910390fd5b61387e816131b3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611d558383604051806060016040528060278152602001614bc260279139613d60565b5f54610100900460ff16611c375760405162461bcd60e51b81526004016109f190614869565b5f54610100900460ff166139255760405162461bcd60e51b81526004016109f190614869565b611c37613dd4565b5f81156706f05b59d3b200001983900484111517613949575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156139cd5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016109f1565b805461271064010000000090910461ffff16118015906139f957508054640100000000900461ffff1615155b613a4f5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016109f1565b805461ffff6201000082048116640100000000909204161015613ac05760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016109f1565b8054619c4061ffff90911611801590613ae25750805461138861ffff90911610155b613b2e5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016109f1565b8054612710600160301b90910461ffff161115613b995760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016109f1565b8054612710600160401b90910461ffff161115613c065760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016109f1565b8054612710600160601b90910461ffff161115613c735760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016109f1565b8054612710600160501b90910461ffff161115613ce05760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016109f1565b8054600160901b900463ffffffff1615801590613d0a57508054600160701b900463ffffffff1615155b610a8c5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016109f1565b60605f5f856001600160a01b031685604051613d7c9190614b6b565b5f60405180830381855af49150503d805f8114613db4576040519150601f19603f3d011682016040523d82523d5f602084013e613db9565b606091505b5091509150613dca86838387613e06565b9695505050505050565b5f54610100900460ff16613dfa5760405162461bcd60e51b81526004016109f190614869565b6097805460ff19169055565b60608315613e745782515f03613e6d576001600160a01b0385163b613e6d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f1565b508161128a565b61128a8383815115613e895781518083602001fd5b8060405162461bcd60e51b81526004016109f19190613f42565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613f2b575f5ffd5b81356001600160e01b031981168114611d55575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6101c08284031215613f88575f5ffd5b50919050565b803564ffffffffff81168114613fa2575f5ffd5b919050565b80356001600160601b0381168114613fa2575f5ffd5b5f5f5f5f5f5f6102608789031215613fd3575f5ffd5b613fdd8888613f77565b95506101c087013594506101e0870135935061020087013592506140046102208801613f8e565b91506140136102408801613fa7565b90509295509295509295565b6001600160a01b0381168114610a8c575f5ffd5b5f5f5f5f5f5f60c08789031215614048575f5ffd5b86359550602087013594506040870135935061406660608801613f8e565b925060808701356140768161401f565b915061401360a08801613fa7565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161410e6101608401826001600160a01b03169052565b5061018081015161412961018084018264ffffffffff169052565b506101a08101516124716101a084018264ffffffffff169052565b6101c081016106218284614084565b5f60208284031215614163575f5ffd5b8135611d558161401f565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561419c5761419c61416e565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156141cb576141cb61416e565b6040528381529050808284018510156141e2575f5ffd5b838360208301375f60208583010152509392505050565b5f5f6040838503121561420a575f5ffd5b82356142158161401f565b9150602083013567ffffffffffffffff811115614230575f5ffd5b8301601f81018513614240575f5ffd5b61424f85823560208401614182565b9150509250929050565b5f60208284031215614269575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a031215614286575f5ffd5b873567ffffffffffffffff81111561429c575f5ffd5b8801601f81018a136142ac575f5ffd5b6142bb8a823560208401614182565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c08801356142ef8161401f565b8091505092959891949750929550565b5f5f6101e08385031215614311575f5ffd5b61431b8484613f77565b946101c0939093013593505050565b5f5f5f6060848603121561433c575f5ffd5b833592506020840135915061435360408501613f8e565b90509250925092565b5f5f6040838503121561436d575f5ffd5b8235600a811061437b575f5ffd5b946020939093013593505050565b8015158114610a8c575f5ffd5b5f5f6101e083850312156143a8575f5ffd5b6143b28484613f77565b91506101c08301356143c381614389565b809150509250929050565b600181811c908216806143e257607f821691505b602082108103613f8857634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614410575f5ffd5b8151611d558161401f565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062157610621614510565b8035613fa28161401f565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014080820135908301526145ba6101608201614537565b6001600160a01b03166101608301526145d66101808201613f8e565b64ffffffffff166101808301526145f06101a08201613f8e565b64ffffffffff81166101a0840152505050565b6101e081016146128285614542565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561062157610621614510565b6101e081016146568285614542565b8215156101c08301529392505050565b5f60208284031215614676575f5ffd5b5051919050565b5f6020828403121561468d575f5ffd5b611d5582613f8e565b64ffffffffff828116828216039081111561062157610621614510565b634e487b7160e01b5f52601260045260245ffd5b5f64ffffffffff8316806146dd576146dd6146b3565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c081016148308287614542565b61483e6101c0830186614084565b6001600160a01b03939093166103808201526001600160601b03919091166103a09091015292915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156148c4575f5ffd5b815160ff81168114611d55575f5ffd5b60ff828116828216039081111561062157610621614510565b6001815b60018411156149285780850481111561490c5761490c614510565b600184161561491a57908102905b60019390931c9280026148f1565b935093915050565b5f8261493e57506001610621565b8161494a57505f610621565b8160018114614960576002811461496a57614986565b6001915050610621565b60ff84111561497b5761497b614510565b50506001821b610621565b5060208310610133831016604e8410600b84101617156149a9575081810a610621565b6149b55f1984846148ed565b805f19048211156149c8576149c8614510565b029392505050565b5f611d5560ff841683614930565b808202811582820484141761062157610621614510565b5f82614a0357614a036146b3565b500490565b5f60208284031215614a18575f5ffd5b8151611d5581614389565b6102208101614a328287614084565b6001600160a01b039485166101c0830152929093166101e08401526001600160601b031661020090920191909152919050565b601f82111561247157805f5260205f20601f840160051c81016020851015614a8a5750805b601f840160051c820191505b81811015614aa9575f8155600101614a96565b5050505050565b815167ffffffffffffffff811115614aca57614aca61416e565b614ade81614ad884546143ce565b84614a65565b6020601f821160018114614b10575f8315614af95750848201515b5f19600385901b1c1916600184901b178455614aa9565b5f84815260208120601f198516915b82811015614b3f5787850151825560209485019460019092019101614b1f565b5084821015614b5c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203532fe9ff2a9b7c7614dd2c199f65193213d207ba2ec2e0352e9e89d398790f564736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4F73 CODESIZE SUB DUP1 PUSH2 0x4F73 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x125 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFEC343D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x1DF JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x209 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x214 DUP2 PUSH2 0x1E1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x225 DUP2 PUSH2 0x1E1 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24B DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x4C1E PUSH2 0x355 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x3D7 ADD MSTORE PUSH2 0x3104 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x2D9 ADD MSTORE DUP2 DUP2 PUSH2 0x6E3 ADD MSTORE DUP2 DUP2 PUSH2 0x7D5 ADD MSTORE DUP2 DUP2 PUSH2 0x8AA ADD MSTORE DUP2 DUP2 PUSH2 0xAC0 ADD MSTORE DUP2 DUP2 PUSH2 0xBD6 ADD MSTORE DUP2 DUP2 PUSH2 0xE4E ADD MSTORE DUP2 DUP2 PUSH2 0xFE9 ADD MSTORE DUP2 DUP2 PUSH2 0x10E3 ADD MSTORE DUP2 DUP2 PUSH2 0x116F ADD MSTORE DUP2 DUP2 PUSH2 0x12C3 ADD MSTORE DUP2 DUP2 PUSH2 0x18B7 ADD MSTORE DUP2 DUP2 PUSH2 0x19E7 ADD MSTORE DUP2 DUP2 PUSH2 0x1A88 ADD MSTORE DUP2 DUP2 PUSH2 0x1B85 ADD MSTORE DUP2 DUP2 PUSH2 0x1C51 ADD MSTORE DUP2 DUP2 PUSH2 0x1F92 ADD MSTORE DUP2 DUP2 PUSH2 0x202F ADD MSTORE DUP2 DUP2 PUSH2 0x20E2 ADD MSTORE DUP2 DUP2 PUSH2 0x22B1 ADD MSTORE DUP2 DUP2 PUSH2 0x238A ADD MSTORE DUP2 DUP2 PUSH2 0x2802 ADD MSTORE DUP2 DUP2 PUSH2 0x2D7B ADD MSTORE DUP2 DUP2 PUSH2 0x2E18 ADD MSTORE DUP2 DUP2 PUSH2 0x2EBE ADD MSTORE DUP2 DUP2 PUSH2 0x306B ADD MSTORE PUSH2 0x37C6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x9B3 ADD MSTORE DUP2 DUP2 PUSH2 0x9FC ADD MSTORE DUP2 DUP2 PUSH2 0xCD9 ADD MSTORE DUP2 DUP2 PUSH2 0xD19 ADD MSTORE PUSH2 0xDA6 ADD MSTORE PUSH2 0x4C1E PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x73A952E8 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xAF0E7E0C GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x577 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x5DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xAF0E7E0C EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x50E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7FF8BF25 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x489 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x168 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x521EB273 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x341 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1D177DC4 GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x1D177DC4 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x406F7F6F EQ PUSH2 0x2AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xBC872D9 EQ PUSH2 0x21E JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1B JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x211 PUSH2 0x627 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3F42 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FBD JUMP JUMPDEST PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x4033 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x4144 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x4153 JUMP JUMPDEST PUSH2 0x9A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0xA8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4033 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x41F9 JUMP JUMPDEST PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0xD9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x386 CALLDATASIZE PUSH1 0x4 PUSH2 0x4259 JUMP JUMPDEST PUSH2 0xE4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x396 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x23D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4270 JUMP JUMPDEST PUSH2 0xEAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x448 CALLDATASIZE PUSH1 0x4 PUSH2 0x42FF JUMP JUMPDEST PUSH2 0xFC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x23D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x114C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x1253 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x494 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x432A JUMP JUMPDEST PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x435C JUMP JUMPDEST PUSH2 0x1292 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x1797 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x519 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x522 PUSH2 0x17B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x4153 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH2 0x19E4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x5F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4396 JUMP JUMPDEST PUSH2 0x1A65 JUMP JUMPDEST PUSH0 PUSH2 0x606 DUP3 PUSH2 0x1BBC JUMP JUMPDEST DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x636 SWAP1 PUSH2 0x43CE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x662 SWAP1 PUSH2 0x43CE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6AD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x684 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6AD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x690 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x761 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x792 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE DUP11 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x823 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST SWAP1 POP PUSH2 0x869 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x85B DUP8 DUP15 PUSH2 0x1C39 JUMP JUMPDEST DUP11 PUSH2 0x864 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x1D5C JUMP JUMPDEST MLOAD SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x87F PUSH2 0x3EA3 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x904 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x928 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x959 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x981 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x99D DUP9 DUP9 DUP9 DUP9 PUSH2 0x996 DUP10 DUP14 PUSH2 0x1C39 JUMP JUMPDEST DUP10 DUP10 PUSH2 0x233A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x9FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4445 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA42 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0xA71 DUP2 PUSH2 0x2359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xA8C SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2476 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3E SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB72 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBA6 PUSH2 0x25E0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBB3 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC30 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC54 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC85 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCC2 DUP9 DUP9 DUP9 DUP9 PUSH2 0x996 DUP10 DUP14 PUSH2 0x1C39 JUMP JUMPDEST MLOAD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xD17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4445 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD5F PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0xD8E DUP3 PUSH2 0x2359 JUMP JUMPDEST PUSH2 0xBA6 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2476 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xE39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xEA5 SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xECB JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xEE4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE4 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xF68 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xF77 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2632 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFBC JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1043 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1067 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1098 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10CC PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x111A SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4603 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1131 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1143 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11C9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11ED SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121F SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1235 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1247 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA8C PUSH2 0x266F JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1270 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x26AC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x128A DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1285 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x273A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1341 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1375 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x139D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x13A9 SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13BB JUMPI PUSH2 0x13BB PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x13E4 JUMPI PUSH2 0x13C9 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13F8 JUMPI PUSH2 0x13F8 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x142A JUMPI PUSH2 0x1406 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x143E JUMPI PUSH2 0x143E PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1474 JUMPI PUSH2 0x144C DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1488 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x14BF JUMPI PUSH2 0x1496 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14D3 JUMPI PUSH2 0x14D3 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x150C JUMPI PUSH2 0x14E1 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1554 JUMPI PUSH2 0x152E DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1568 JUMPI PUSH2 0x1568 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x159C JUMPI PUSH2 0x1576 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15B0 JUMPI PUSH2 0x15B0 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x15EA JUMPI PUSH2 0x15C0 PUSH1 0x2 DUP5 PUSH2 0x276F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15FE JUMPI PUSH2 0x15FE PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1716 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1677 PUSH2 0x1253 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1696 JUMPI POP PUSH2 0x1696 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x27FF JUMP JUMPDEST PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x16EC PUSH0 DUP5 PUSH2 0x276F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x172A JUMPI PUSH2 0x172A PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x175A JUMPI PUSH2 0x1738 DUP4 PUSH2 0x28F1 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1791 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x176F JUMPI PUSH2 0x176F PUSH2 0x4620 JUMP JUMPDEST PUSH2 0x177A SWAP1 PUSH1 0x8 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x178B JUMPI PUSH2 0x178B PUSH2 0x4620 JUMP JUMPDEST DUP5 PUSH2 0x2957 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1270 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x17EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1270 SWAP1 PUSH2 0x29A8 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1911 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1935 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1966 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x197C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xBA6 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x2957 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A41 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1270 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AE2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B06 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B37 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B6B PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x59FF1D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xFFA600E3 SWAP1 PUSH2 0x111A SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4647 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x1D4E JUMPI POP DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CCF SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D28 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D4C SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x621 JUMPI CALLER JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D64 PUSH2 0x3EA3 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x1D8D JUMPI PUSH2 0x1D8A DUP9 DUP8 DUP8 PUSH2 0x1D84 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x467D JUMP JUMPDEST DUP7 PUSH2 0x273A JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x1DDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x1DF6 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x467D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x1E42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1E54 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x467D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1E85 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x1EF7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x1F1A PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x467D JUMP JUMPDEST PUSH2 0x1F24 SWAP1 DUP9 PUSH2 0x4696 JUMP JUMPDEST PUSH2 0x1F2E SWAP2 SWAP1 PUSH2 0x46C7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x1F82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1F90 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4524 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2010 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x207E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A2 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO PUSH2 0x20C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x21E0 JUMPI POP PUSH2 0x20E0 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4524 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2160 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21B9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21DD SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x21FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x2204 PUSH2 0x1797 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x478C JUMP JUMPDEST PUSH2 0x2245 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2240 SWAP2 SWAP1 PUSH2 0x467D JUMP JUMPDEST PUSH2 0x2A6C JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x225B SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x226B SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2279 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x229A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x47DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x22EC SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x232C SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2342 PUSH2 0x3EA3 JUMP JUMPDEST PUSH2 0x99D DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2354 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x2BDC JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23E4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2408 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x243C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2452 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2464 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2471 DUP4 PUSH2 0x30F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x2471 DUP4 PUSH2 0x31B3 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2503 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2500 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4666 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x25D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP PUSH2 0x2471 DUP4 DUP4 DUP4 PUSH2 0x324E JUMP JUMPDEST PUSH2 0x25E8 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x2660 PUSH2 0x32BB JUMP JUMPDEST PUSH2 0x1143 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x32F1 JUMP JUMPDEST PUSH2 0x2677 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2615 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x26B6 PUSH2 0x19E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26F1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2715 SWAP2 SWAP1 PUSH2 0x48B4 JUMP JUMPDEST PUSH2 0x271F SWAP2 SWAP1 PUSH2 0x48D4 JUMP JUMPDEST PUSH2 0x272A SWAP1 PUSH1 0xA PUSH2 0x49D0 JUMP JUMPDEST PUSH2 0x1D55 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x49DE JUMP JUMPDEST PUSH0 PUSH2 0x2748 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x34FB JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH2 0x276A PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x49F5 JUMP JUMPDEST PUSH2 0x28F1 JUMP JUMPDEST PUSH0 PUSH2 0x1D55 DUP4 PUSH2 0x277C PUSH2 0x19E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27B7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27DB SWAP2 SWAP1 PUSH2 0x48B4 JUMP JUMPDEST PUSH2 0x27E5 SWAP2 SWAP1 PUSH2 0x48D4 JUMP JUMPDEST PUSH2 0x27F0 SWAP1 PUSH1 0xA PUSH2 0x49D0 JUMP JUMPDEST PUSH2 0x27FA SWAP1 DUP5 PUSH2 0x49F5 JUMP JUMPDEST PUSH2 0x36EE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x285C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2880 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x621 SWAP2 SWAP1 PUSH2 0x4A08 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x295F PUSH2 0x3752 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2971 PUSH2 0x4620 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x29E1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x29F8 DUP5 PUSH0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A0A DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A1C DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A2E DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A40 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A52 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A64 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A74 PUSH2 0x3EA3 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x2ACF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x2AD7 PUSH2 0x3EA3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x2B21 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x34FB JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x2BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x2BC9 SWAP1 DUP10 PUSH2 0x4524 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2BE4 PUSH2 0x3EA3 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2BFD JUMPI PUSH2 0x2BFA DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x273A JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2C4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2CA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2CC4 DUP4 DUP11 PUSH2 0x4696 JUMP JUMPDEST PUSH2 0x2CCE SWAP2 SWAP1 PUSH2 0x46C7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2D22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2D78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DD5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DF9 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E67 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E8B SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO PUSH2 0x2EA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x2FBC JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F18 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F3C SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F95 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FB9 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2FD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x2FE0 PUSH2 0x1797 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x2FFF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x478C JUMP JUMPDEST PUSH2 0x300E ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x2A6C JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x3025 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3033 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3054 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x47DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x30A6 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A23 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30E6 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x30FE DUP2 PUSH2 0x37C4 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3168 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x318C SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBA6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3220 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3257 DUP4 PUSH2 0x3875 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3263 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x2471 JUMPI PUSH2 0x1791 DUP4 DUP4 PUSH2 0x38B4 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x32E9 PUSH2 0x38D9 JUMP JUMPDEST PUSH2 0x1C37 PUSH2 0x38FF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3323 DUP9 DUP3 PUSH2 0x4AB0 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x3346 DUP9 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3358 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3377 DUP7 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x338B PUSH1 0x2 DUP7 PUSH2 0x276F JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33A0 PUSH0 DUP6 PUSH2 0x276F JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x1143 PUSH2 0x3752 JUMP JUMPDEST PUSH2 0x353B PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3553 SWAP1 PUSH2 0x354C SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3565 SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x358F JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3587 SWAP1 DUP4 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3596 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x35A6 SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x35BC SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x35F1 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x35D8 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x35E9 SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x35F8 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3635 PUSH4 0x1E13380 PUSH2 0x360A DUP5 DUP7 PUSH2 0x4696 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x3620 SWAP2 SWAP1 PUSH2 0x49DE JUMP JUMPDEST PUSH2 0x362A SWAP2 SWAP1 PUSH2 0x49F5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3677 PUSH4 0x1E13380 PUSH2 0x364C DUP5 DUP7 PUSH2 0x4696 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x3662 SWAP2 SWAP1 PUSH2 0x49DE JUMP JUMPDEST PUSH2 0x366C SWAP2 SWAP1 PUSH2 0x49F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x368E SWAP2 PUSH2 0x4634 JUMP JUMPDEST SWAP1 POP PUSH2 0x36A7 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x392D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x36B7 SWAP2 PUSH2 0x392D JUMP JUMPDEST PUSH2 0x36C1 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x36D5 SWAP2 PUSH2 0x4634 JUMP JUMPDEST PUSH2 0x36DF SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x375D PUSH2 0x1253 JUMP JUMPDEST LT ISZERO PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x37A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C37 PUSH1 0xFC PUSH2 0x3963 JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x49DE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x382A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x384E SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA8C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x387E DUP2 PUSH2 0x31B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D55 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BC2 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3D60 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3925 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x1C37 PUSH2 0x3DD4 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3949 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x39CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x39F9 JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x3A4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x3AE2 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x3B2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3CE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3D0A JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0xA8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3D7C SWAP2 SWAP1 PUSH2 0x4B6B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3DB4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3DB9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3DCA DUP7 DUP4 DUP4 DUP8 PUSH2 0x3E06 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3E74 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3E6D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3E6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST POP DUP2 PUSH2 0x128A JUMP JUMPDEST PUSH2 0x128A DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3E89 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP2 SWAP1 PUSH2 0x3F42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F2B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1D55 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3FA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3FA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3FD3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3FDD DUP9 DUP9 PUSH2 0x3F77 JUMP JUMPDEST SWAP6 POP PUSH2 0x1C0 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH2 0x1E0 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH2 0x4004 PUSH2 0x220 DUP9 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x4013 PUSH2 0x240 DUP9 ADD PUSH2 0x3FA7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA8C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4048 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x4066 PUSH1 0x60 DUP9 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x4076 DUP2 PUSH2 0x401F JUMP JUMPDEST SWAP2 POP PUSH2 0x4013 PUSH1 0xA0 DUP9 ADD PUSH2 0x3FA7 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x410E PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x4129 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x2471 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x621 DUP3 DUP5 PUSH2 0x4084 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4163 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D55 DUP2 PUSH2 0x401F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x419C JUMPI PUSH2 0x419C PUSH2 0x416E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x41CB JUMPI PUSH2 0x41CB PUSH2 0x416E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x41E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x420A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4215 DUP2 PUSH2 0x401F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4230 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4240 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x424F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4182 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4269 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4286 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x429C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x42AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x42BB DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4182 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x42EF DUP2 PUSH2 0x401F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4311 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x431B DUP5 DUP5 PUSH2 0x3F77 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x433C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4353 PUSH1 0x40 DUP6 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x436D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x437B JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA8C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x43B2 DUP5 DUP5 PUSH2 0x3F77 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x43C3 DUP2 PUSH2 0x4389 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x43E2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3F88 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4410 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D55 DUP2 PUSH2 0x401F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x401F JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x45BA PUSH2 0x160 DUP3 ADD PUSH2 0x4537 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x45D6 PUSH2 0x180 DUP3 ADD PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x45F0 PUSH2 0x1A0 DUP3 ADD PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4612 DUP3 DUP6 PUSH2 0x4542 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4656 DUP3 DUP6 PUSH2 0x4542 JUMP JUMPDEST DUP3 ISZERO ISZERO PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4676 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x468D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1D55 DUP3 PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x46DD JUMPI PUSH2 0x46DD PUSH2 0x46B3 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4830 DUP3 DUP8 PUSH2 0x4542 JUMP JUMPDEST PUSH2 0x483E PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x4084 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D55 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4928 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x490C JUMPI PUSH2 0x490C PUSH2 0x4510 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x491A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x48F1 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x493E JUMPI POP PUSH1 0x1 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH2 0x494A JUMPI POP PUSH0 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x4960 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x496A JUMPI PUSH2 0x4986 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x621 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x497B JUMPI PUSH2 0x497B PUSH2 0x4510 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x49A9 JUMPI POP DUP2 DUP2 EXP PUSH2 0x621 JUMP JUMPDEST PUSH2 0x49B5 PUSH0 NOT DUP5 DUP5 PUSH2 0x48ED JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x49C8 JUMPI PUSH2 0x49C8 PUSH2 0x4510 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D55 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x4930 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4A03 JUMPI PUSH2 0x4A03 PUSH2 0x46B3 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A18 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D55 DUP2 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x4A32 DUP3 DUP8 PUSH2 0x4084 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2471 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4A8A JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4AA9 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4A96 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4ACA JUMPI PUSH2 0x4ACA PUSH2 0x416E JUMP JUMPDEST PUSH2 0x4ADE DUP2 PUSH2 0x4AD8 DUP5 SLOAD PUSH2 0x43CE JUMP JUMPDEST DUP5 PUSH2 0x4A65 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4B10 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x4AF9 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x4AA9 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4B3F JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4B1F JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4B5C JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203532FE SWAP16 CALLCODE 0xA9 0xB7 0xC7 PUSH2 0x4DD2 0xC1 SWAP10 0xF6 MLOAD SWAP4 0x21 RETURNDATASIZE KECCAK256 PUSH28 0xA2EC2E0352E9E89D398790F564736F6C634300081C00330000000000 ","sourceMap":"577:7355:64:-:0;;;1198:4:7;1155:48;;928:116:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1011:11;1024:16;1011:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;3107:11:60::1;-1:-1:-1::0;;;;;3044:74:60::1;3072:16;-1:-1:-1::0;;;;;3044:57:60::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3044:74:60::1;;3040:138;;3135:36;;-1:-1:-1::0;;;3135:36:60::1;;;;;;;;;;;3040:138;-1:-1:-1::0;;;;;3183:35:60::1;;::::0;-1:-1:-1;577:7355:64;;-1:-1:-1;;577:7355:64;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;1118:2:88;5998:66:6;;;1100:21:88;1157:2;1137:18;;;1130:30;1196:34;1176:18;;;1169:62;-1:-1:-1;;;1247:18:88;;;1240:37;1294:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1466:36:88;;;6174:28:6;;1454:2:88;1439:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:458::-;289:6;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;417:44;455:5;417:44;:::i;:::-;530:2;515:18;;509:25;480:5;;-1:-1:-1;543:46:88;509:25;543:46;:::i;:::-;608:7;598:17;;;163:458;;;;;:::o;626:285::-;717:6;770:2;758:9;749:7;745:23;741:32;738:52;;;786:1;783;776:12;738:52;818:9;812:16;837:44;875:5;837:44;:::i;:::-;900:5;626:285;-1:-1:-1;;;626:285:88:o;1324:184::-;577:7355:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PRICER_ROLE_22883":{"entryPoint":null,"id":22883,"parameterSlots":0,"returnSlots":0},"@REPLACER_ROLE_22893":{"entryPoint":null,"id":22893,"parameterSlots":0,"returnSlots":0},"@RESOLVER_ROLE_22888":{"entryPoint":null,"id":22888,"parameterSlots":0,"returnSlots":0},"@_4toWad_20564":{"entryPoint":14255,"id":20564,"parameterSlots":1,"returnSlots":1},"@_XtoAmount_20604":{"entryPoint":9900,"id":20604,"parameterSlots":2,"returnSlots":1},"@__Pausable_init_1113":{"entryPoint":14591,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":15828,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":12987,"id":17875,"parameterSlots":0,"returnSlots":0},"@__RiskModule_init_20302":{"entryPoint":9778,"id":20302,"parameterSlots":7,"returnSlots":0},"@__RiskModule_init_unchained_20364":{"entryPoint":13041,"id":20364,"parameterSlots":7,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":14553,"id":1008,"parameterSlots":0,"returnSlots":0},"@_amountToX_20629":{"entryPoint":10095,"id":20629,"parameterSlots":2,"returnSlots":1},"@_authorizeUpgrade_17890":{"entryPoint":9049,"id":17890,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_getMinimumPremium_21037":{"entryPoint":10042,"id":21037,"parameterSlots":5,"returnSlots":1},"@_getPayer_23106":{"entryPoint":7225,"id":23106,"parameterSlots":2,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_newPolicyWithParams_21244":{"entryPoint":11228,"id":21244,"parameterSlots":8,"returnSlots":1},"@_newPolicy_21071":{"entryPoint":9018,"id":21071,"parameterSlots":7,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":10583,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":9839,"id":1187,"parameterSlots":0,"returnSlots":0},"@_replacePolicy_21437":{"entryPoint":7516,"id":21437,"parameterSlots":8,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":7153,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":12914,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":12723,"id":510,"parameterSlots":1,"returnSlots":0},"@_unpackParams_20928":{"entryPoint":10664,"id":20928,"parameterSlots":1,"returnSlots":1},"@_unpause_1203":{"entryPoint":9696,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":9334,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":12878,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":14453,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":14276,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_20394":{"entryPoint":12533,"id":20394,"parameterSlots":1,"returnSlots":0},"@_validatePackedParams_20540":{"entryPoint":14691,"id":20540,"parameterSlots":1,"returnSlots":0},"@_validateParameters_20445":{"entryPoint":14162,"id":20445,"parameterSlots":0,"returnSlots":0},"@_wadTo4_20579":{"entryPoint":10070,"id":20579,"parameterSlots":1,"returnSlots":1},"@activeExposure_20674":{"entryPoint":null,"id":20674,"parameterSlots":0,"returnSlots":1},"@currency_17973":{"entryPoint":6628,"id":17973,"parameterSlots":0,"returnSlots":1},"@exposureLimit_20655":{"entryPoint":4691,"id":20655,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":14516,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":15712,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getMinimumPremium_15158":{"entryPoint":13563,"id":15158,"parameterSlots":5,"returnSlots":1},"@getMinimumPremium_21010":{"entryPoint":4725,"id":21010,"parameterSlots":3,"returnSlots":1},"@hasPoolRole_17995":{"entryPoint":10239,"id":17995,"parameterSlots":1,"returnSlots":1},"@initialize_15300":{"entryPoint":10860,"id":15300,"parameterSlots":7,"returnSlots":1},"@initialize_22939":{"entryPoint":3757,"id":22939,"parameterSlots":7,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@maxDuration_20665":{"entryPoint":null,"id":20665,"parameterSlots":0,"returnSlots":1},"@maxPayoutPerPolicy_20642":{"entryPoint":6039,"id":20642,"parameterSlots":0,"returnSlots":1},"@name_20549":{"entryPoint":1575,"id":20549,"parameterSlots":0,"returnSlots":1},"@newPolicyFull_23015":{"entryPoint":2167,"id":23015,"parameterSlots":6,"returnSlots":1},"@newPolicy_22977":{"entryPoint":2986,"id":22977,"parameterSlots":6,"returnSlots":1},"@params_20887":{"entryPoint":6069,"id":20887,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":4428,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@premiumsAccount_21460":{"entryPoint":null,"id":21460,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":3482,"id":1026,"parameterSlots":0,"returnSlots":1},"@releaseExposure_21450":{"entryPoint":3659,"id":21450,"parameterSlots":1,"returnSlots":0},"@replacePolicy_23069":{"entryPoint":1719,"id":23069,"parameterSlots":6,"returnSlots":1},"@resolvePolicyFullPayout_23150":{"entryPoint":6757,"id":23150,"parameterSlots":2,"returnSlots":0},"@resolvePolicy_23128":{"entryPoint":4038,"id":23128,"parameterSlots":2,"returnSlots":0},"@setParam_20875":{"entryPoint":4754,"id":20875,"parameterSlots":2,"returnSlots":0},"@setWallet_20985":{"entryPoint":6292,"id":20985,"parameterSlots":1,"returnSlots":0},"@supportsInterface_17931":{"entryPoint":7100,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_20416":{"entryPoint":1532,"id":20416,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":10481,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":14062,"id":9452,"parameterSlots":1,"returnSlots":1},"@unpause_17952":{"entryPoint":2703,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":3279,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":2473,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":15878,"id":2608,"parameterSlots":4,"returnSlots":1},"@wadMul_23186":{"entryPoint":14637,"id":23186,"parameterSlots":2,"returnSlots":1},"@wallet_20683":{"entryPoint":null,"id":20683,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":16770,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":17719,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":16247,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":16723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":16889,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":16155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":17408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256":{"entryPoint":17244,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address":{"entryPoint":17008,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool":{"entryPoint":17302,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":17151,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96":{"entryPoint":16317,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256":{"entryPoint":16985,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_uint96":{"entryPoint":16435,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256t_uint256t_uint40":{"entryPoint":17194,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint40":{"entryPoint":18045,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":18612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":16270,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":16295,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IRiskModule":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData":{"entryPoint":16516,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData_calldata":{"entryPoint":17730,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17435,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17629,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":16194,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18398,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18160,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18316,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17477,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17553,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18237,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18537,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed":{"entryPoint":17991,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed":{"entryPoint":18465,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":17923,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":16708,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed":{"entryPoint":18979,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":17972,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":18933,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint40":{"entryPoint":18119,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":18669,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":18896,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":18736,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":18910,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":17700,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":18070,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":18644,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":19045,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":19120,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":17358,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":17680,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":18099,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":17952,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":16750,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":16415,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":17289,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:38953:88","nodeType":"YulBlock","src":"0:38953:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"618:297:88","nodeType":"YulBlock","src":"618:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"635:9:88","nodeType":"YulIdentifier","src":"635:9:88"},{"kind":"number","nativeSrc":"646:2:88","nodeType":"YulLiteral","src":"646:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"628:6:88","nodeType":"YulIdentifier","src":"628:6:88"},"nativeSrc":"628:21:88","nodeType":"YulFunctionCall","src":"628:21:88"},"nativeSrc":"628:21:88","nodeType":"YulExpressionStatement","src":"628:21:88"},{"nativeSrc":"658:27:88","nodeType":"YulVariableDeclaration","src":"658:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"678:6:88","nodeType":"YulIdentifier","src":"678:6:88"}],"functionName":{"name":"mload","nativeSrc":"672:5:88","nodeType":"YulIdentifier","src":"672:5:88"},"nativeSrc":"672:13:88","nodeType":"YulFunctionCall","src":"672:13:88"},"variables":[{"name":"length","nativeSrc":"662:6:88","nodeType":"YulTypedName","src":"662:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:88","nodeType":"YulIdentifier","src":"705:9:88"},{"kind":"number","nativeSrc":"716:2:88","nodeType":"YulLiteral","src":"716:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:18:88","nodeType":"YulFunctionCall","src":"701:18:88"},{"name":"length","nativeSrc":"721:6:88","nodeType":"YulIdentifier","src":"721:6:88"}],"functionName":{"name":"mstore","nativeSrc":"694:6:88","nodeType":"YulIdentifier","src":"694:6:88"},"nativeSrc":"694:34:88","nodeType":"YulFunctionCall","src":"694:34:88"},"nativeSrc":"694:34:88","nodeType":"YulExpressionStatement","src":"694:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"747:9:88","nodeType":"YulIdentifier","src":"747:9:88"},{"kind":"number","nativeSrc":"758:2:88","nodeType":"YulLiteral","src":"758:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"743:3:88","nodeType":"YulIdentifier","src":"743:3:88"},"nativeSrc":"743:18:88","nodeType":"YulFunctionCall","src":"743:18:88"},{"arguments":[{"name":"value0","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:2:88","nodeType":"YulLiteral","src":"775:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:15:88","nodeType":"YulFunctionCall","src":"763:15:88"},{"name":"length","nativeSrc":"780:6:88","nodeType":"YulIdentifier","src":"780:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"737:5:88","nodeType":"YulIdentifier","src":"737:5:88"},"nativeSrc":"737:50:88","nodeType":"YulFunctionCall","src":"737:50:88"},"nativeSrc":"737:50:88","nodeType":"YulExpressionStatement","src":"737:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"811:9:88","nodeType":"YulIdentifier","src":"811:9:88"},{"name":"length","nativeSrc":"822:6:88","nodeType":"YulIdentifier","src":"822:6:88"}],"functionName":{"name":"add","nativeSrc":"807:3:88","nodeType":"YulIdentifier","src":"807:3:88"},"nativeSrc":"807:22:88","nodeType":"YulFunctionCall","src":"807:22:88"},{"kind":"number","nativeSrc":"831:2:88","nodeType":"YulLiteral","src":"831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"803:3:88","nodeType":"YulIdentifier","src":"803:3:88"},"nativeSrc":"803:31:88","nodeType":"YulFunctionCall","src":"803:31:88"},{"kind":"number","nativeSrc":"836:1:88","nodeType":"YulLiteral","src":"836:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"796:6:88","nodeType":"YulIdentifier","src":"796:6:88"},"nativeSrc":"796:42:88","nodeType":"YulFunctionCall","src":"796:42:88"},"nativeSrc":"796:42:88","nodeType":"YulExpressionStatement","src":"796:42:88"},{"nativeSrc":"847:62:88","nodeType":"YulAssignment","src":"847:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"863:9:88","nodeType":"YulIdentifier","src":"863:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"882:6:88","nodeType":"YulIdentifier","src":"882:6:88"},{"kind":"number","nativeSrc":"890:2:88","nodeType":"YulLiteral","src":"890:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"878:3:88","nodeType":"YulIdentifier","src":"878:3:88"},"nativeSrc":"878:15:88","nodeType":"YulFunctionCall","src":"878:15:88"},{"arguments":[{"kind":"number","nativeSrc":"899:2:88","nodeType":"YulLiteral","src":"899:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"895:3:88","nodeType":"YulIdentifier","src":"895:3:88"},"nativeSrc":"895:7:88","nodeType":"YulFunctionCall","src":"895:7:88"}],"functionName":{"name":"and","nativeSrc":"874:3:88","nodeType":"YulIdentifier","src":"874:3:88"},"nativeSrc":"874:29:88","nodeType":"YulFunctionCall","src":"874:29:88"}],"functionName":{"name":"add","nativeSrc":"859:3:88","nodeType":"YulIdentifier","src":"859:3:88"},"nativeSrc":"859:45:88","nodeType":"YulFunctionCall","src":"859:45:88"},{"kind":"number","nativeSrc":"906:2:88","nodeType":"YulLiteral","src":"906:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"855:3:88","nodeType":"YulIdentifier","src":"855:3:88"},"nativeSrc":"855:54:88","nodeType":"YulFunctionCall","src":"855:54:88"},"variableNames":[{"name":"tail","nativeSrc":"847:4:88","nodeType":"YulIdentifier","src":"847:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"497:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"587:9:88","nodeType":"YulTypedName","src":"587:9:88","type":""},{"name":"value0","nativeSrc":"598:6:88","nodeType":"YulTypedName","src":"598:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"609:4:88","nodeType":"YulTypedName","src":"609:4:88","type":""}],"src":"497:418:88"},{"body":{"nativeSrc":"993:86:88","nodeType":"YulBlock","src":"993:86:88","statements":[{"body":{"nativeSrc":"1033:16:88","nodeType":"YulBlock","src":"1033:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1042:1:88","nodeType":"YulLiteral","src":"1042:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1045:1:88","nodeType":"YulLiteral","src":"1045:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1035:6:88","nodeType":"YulIdentifier","src":"1035:6:88"},"nativeSrc":"1035:12:88","nodeType":"YulFunctionCall","src":"1035:12:88"},"nativeSrc":"1035:12:88","nodeType":"YulExpressionStatement","src":"1035:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"1014:3:88","nodeType":"YulIdentifier","src":"1014:3:88"},{"name":"offset","nativeSrc":"1019:6:88","nodeType":"YulIdentifier","src":"1019:6:88"}],"functionName":{"name":"sub","nativeSrc":"1010:3:88","nodeType":"YulIdentifier","src":"1010:3:88"},"nativeSrc":"1010:16:88","nodeType":"YulFunctionCall","src":"1010:16:88"},{"kind":"number","nativeSrc":"1028:3:88","nodeType":"YulLiteral","src":"1028:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"1006:3:88","nodeType":"YulIdentifier","src":"1006:3:88"},"nativeSrc":"1006:26:88","nodeType":"YulFunctionCall","src":"1006:26:88"},"nativeSrc":"1003:46:88","nodeType":"YulIf","src":"1003:46:88"},{"nativeSrc":"1058:15:88","nodeType":"YulAssignment","src":"1058:15:88","value":{"name":"offset","nativeSrc":"1067:6:88","nodeType":"YulIdentifier","src":"1067:6:88"},"variableNames":[{"name":"value","nativeSrc":"1058:5:88","nodeType":"YulIdentifier","src":"1058:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"920:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"967:6:88","nodeType":"YulTypedName","src":"967:6:88","type":""},{"name":"end","nativeSrc":"975:3:88","nodeType":"YulTypedName","src":"975:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"983:5:88","nodeType":"YulTypedName","src":"983:5:88","type":""}],"src":"920:159:88"},{"body":{"nativeSrc":"1132:117:88","nodeType":"YulBlock","src":"1132:117:88","statements":[{"nativeSrc":"1142:29:88","nodeType":"YulAssignment","src":"1142:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1164:6:88","nodeType":"YulIdentifier","src":"1164:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1151:12:88","nodeType":"YulIdentifier","src":"1151:12:88"},"nativeSrc":"1151:20:88","nodeType":"YulFunctionCall","src":"1151:20:88"},"variableNames":[{"name":"value","nativeSrc":"1142:5:88","nodeType":"YulIdentifier","src":"1142:5:88"}]},{"body":{"nativeSrc":"1227:16:88","nodeType":"YulBlock","src":"1227:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1236:1:88","nodeType":"YulLiteral","src":"1236:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1239:1:88","nodeType":"YulLiteral","src":"1239:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1229:6:88","nodeType":"YulIdentifier","src":"1229:6:88"},"nativeSrc":"1229:12:88","nodeType":"YulFunctionCall","src":"1229:12:88"},"nativeSrc":"1229:12:88","nodeType":"YulExpressionStatement","src":"1229:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1193:5:88","nodeType":"YulIdentifier","src":"1193:5:88"},{"arguments":[{"name":"value","nativeSrc":"1204:5:88","nodeType":"YulIdentifier","src":"1204:5:88"},{"kind":"number","nativeSrc":"1211:12:88","nodeType":"YulLiteral","src":"1211:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"1200:3:88","nodeType":"YulIdentifier","src":"1200:3:88"},"nativeSrc":"1200:24:88","nodeType":"YulFunctionCall","src":"1200:24:88"}],"functionName":{"name":"eq","nativeSrc":"1190:2:88","nodeType":"YulIdentifier","src":"1190:2:88"},"nativeSrc":"1190:35:88","nodeType":"YulFunctionCall","src":"1190:35:88"}],"functionName":{"name":"iszero","nativeSrc":"1183:6:88","nodeType":"YulIdentifier","src":"1183:6:88"},"nativeSrc":"1183:43:88","nodeType":"YulFunctionCall","src":"1183:43:88"},"nativeSrc":"1180:63:88","nodeType":"YulIf","src":"1180:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"1084:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1111:6:88","nodeType":"YulTypedName","src":"1111:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1122:5:88","nodeType":"YulTypedName","src":"1122:5:88","type":""}],"src":"1084:165:88"},{"body":{"nativeSrc":"1302:131:88","nodeType":"YulBlock","src":"1302:131:88","statements":[{"nativeSrc":"1312:29:88","nodeType":"YulAssignment","src":"1312:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1334:6:88","nodeType":"YulIdentifier","src":"1334:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1321:12:88","nodeType":"YulIdentifier","src":"1321:12:88"},"nativeSrc":"1321:20:88","nodeType":"YulFunctionCall","src":"1321:20:88"},"variableNames":[{"name":"value","nativeSrc":"1312:5:88","nodeType":"YulIdentifier","src":"1312:5:88"}]},{"body":{"nativeSrc":"1411:16:88","nodeType":"YulBlock","src":"1411:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1420:1:88","nodeType":"YulLiteral","src":"1420:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1423:1:88","nodeType":"YulLiteral","src":"1423:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1413:6:88","nodeType":"YulIdentifier","src":"1413:6:88"},"nativeSrc":"1413:12:88","nodeType":"YulFunctionCall","src":"1413:12:88"},"nativeSrc":"1413:12:88","nodeType":"YulExpressionStatement","src":"1413:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1363:5:88","nodeType":"YulIdentifier","src":"1363:5:88"},{"arguments":[{"name":"value","nativeSrc":"1374:5:88","nodeType":"YulIdentifier","src":"1374:5:88"},{"kind":"number","nativeSrc":"1381:26:88","nodeType":"YulLiteral","src":"1381:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1370:3:88","nodeType":"YulIdentifier","src":"1370:3:88"},"nativeSrc":"1370:38:88","nodeType":"YulFunctionCall","src":"1370:38:88"}],"functionName":{"name":"eq","nativeSrc":"1360:2:88","nodeType":"YulIdentifier","src":"1360:2:88"},"nativeSrc":"1360:49:88","nodeType":"YulFunctionCall","src":"1360:49:88"}],"functionName":{"name":"iszero","nativeSrc":"1353:6:88","nodeType":"YulIdentifier","src":"1353:6:88"},"nativeSrc":"1353:57:88","nodeType":"YulFunctionCall","src":"1353:57:88"},"nativeSrc":"1350:77:88","nodeType":"YulIf","src":"1350:77:88"}]},"name":"abi_decode_uint96","nativeSrc":"1254:179:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1281:6:88","nodeType":"YulTypedName","src":"1281:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1292:5:88","nodeType":"YulTypedName","src":"1292:5:88","type":""}],"src":"1254:179:88"},{"body":{"nativeSrc":"1622:565:88","nodeType":"YulBlock","src":"1622:565:88","statements":[{"body":{"nativeSrc":"1669:16:88","nodeType":"YulBlock","src":"1669:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1678:1:88","nodeType":"YulLiteral","src":"1678:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1681:1:88","nodeType":"YulLiteral","src":"1681:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1671:6:88","nodeType":"YulIdentifier","src":"1671:6:88"},"nativeSrc":"1671:12:88","nodeType":"YulFunctionCall","src":"1671:12:88"},"nativeSrc":"1671:12:88","nodeType":"YulExpressionStatement","src":"1671:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1643:7:88","nodeType":"YulIdentifier","src":"1643:7:88"},{"name":"headStart","nativeSrc":"1652:9:88","nodeType":"YulIdentifier","src":"1652:9:88"}],"functionName":{"name":"sub","nativeSrc":"1639:3:88","nodeType":"YulIdentifier","src":"1639:3:88"},"nativeSrc":"1639:23:88","nodeType":"YulFunctionCall","src":"1639:23:88"},{"kind":"number","nativeSrc":"1664:3:88","nodeType":"YulLiteral","src":"1664:3:88","type":"","value":"608"}],"functionName":{"name":"slt","nativeSrc":"1635:3:88","nodeType":"YulIdentifier","src":"1635:3:88"},"nativeSrc":"1635:33:88","nodeType":"YulFunctionCall","src":"1635:33:88"},"nativeSrc":"1632:53:88","nodeType":"YulIf","src":"1632:53:88"},{"nativeSrc":"1694:67:88","nodeType":"YulAssignment","src":"1694:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1742:9:88","nodeType":"YulIdentifier","src":"1742:9:88"},{"name":"dataEnd","nativeSrc":"1753:7:88","nodeType":"YulIdentifier","src":"1753:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"1704:37:88","nodeType":"YulIdentifier","src":"1704:37:88"},"nativeSrc":"1704:57:88","nodeType":"YulFunctionCall","src":"1704:57:88"},"variableNames":[{"name":"value0","nativeSrc":"1694:6:88","nodeType":"YulIdentifier","src":"1694:6:88"}]},{"nativeSrc":"1770:14:88","nodeType":"YulVariableDeclaration","src":"1770:14:88","value":{"kind":"number","nativeSrc":"1783:1:88","nodeType":"YulLiteral","src":"1783:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1774:5:88","nodeType":"YulTypedName","src":"1774:5:88","type":""}]},{"nativeSrc":"1793:42:88","nodeType":"YulAssignment","src":"1793:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1819:9:88","nodeType":"YulIdentifier","src":"1819:9:88"},{"kind":"number","nativeSrc":"1830:3:88","nodeType":"YulLiteral","src":"1830:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"1815:3:88","nodeType":"YulIdentifier","src":"1815:3:88"},"nativeSrc":"1815:19:88","nodeType":"YulFunctionCall","src":"1815:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1802:12:88","nodeType":"YulIdentifier","src":"1802:12:88"},"nativeSrc":"1802:33:88","nodeType":"YulFunctionCall","src":"1802:33:88"},"variableNames":[{"name":"value","nativeSrc":"1793:5:88","nodeType":"YulIdentifier","src":"1793:5:88"}]},{"nativeSrc":"1844:15:88","nodeType":"YulAssignment","src":"1844:15:88","value":{"name":"value","nativeSrc":"1854:5:88","nodeType":"YulIdentifier","src":"1854:5:88"},"variableNames":[{"name":"value1","nativeSrc":"1844:6:88","nodeType":"YulIdentifier","src":"1844:6:88"}]},{"nativeSrc":"1868:16:88","nodeType":"YulVariableDeclaration","src":"1868:16:88","value":{"kind":"number","nativeSrc":"1883:1:88","nodeType":"YulLiteral","src":"1883:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1872:7:88","nodeType":"YulTypedName","src":"1872:7:88","type":""}]},{"nativeSrc":"1893:44:88","nodeType":"YulAssignment","src":"1893:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1921:9:88","nodeType":"YulIdentifier","src":"1921:9:88"},{"kind":"number","nativeSrc":"1932:3:88","nodeType":"YulLiteral","src":"1932:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"1917:3:88","nodeType":"YulIdentifier","src":"1917:3:88"},"nativeSrc":"1917:19:88","nodeType":"YulFunctionCall","src":"1917:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1904:12:88","nodeType":"YulIdentifier","src":"1904:12:88"},"nativeSrc":"1904:33:88","nodeType":"YulFunctionCall","src":"1904:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"1893:7:88","nodeType":"YulIdentifier","src":"1893:7:88"}]},{"nativeSrc":"1946:17:88","nodeType":"YulAssignment","src":"1946:17:88","value":{"name":"value_1","nativeSrc":"1956:7:88","nodeType":"YulIdentifier","src":"1956:7:88"},"variableNames":[{"name":"value2","nativeSrc":"1946:6:88","nodeType":"YulIdentifier","src":"1946:6:88"}]},{"nativeSrc":"1972:16:88","nodeType":"YulVariableDeclaration","src":"1972:16:88","value":{"kind":"number","nativeSrc":"1987:1:88","nodeType":"YulLiteral","src":"1987:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1976:7:88","nodeType":"YulTypedName","src":"1976:7:88","type":""}]},{"nativeSrc":"1997:44:88","nodeType":"YulAssignment","src":"1997:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2025:9:88","nodeType":"YulIdentifier","src":"2025:9:88"},{"kind":"number","nativeSrc":"2036:3:88","nodeType":"YulLiteral","src":"2036:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"2021:3:88","nodeType":"YulIdentifier","src":"2021:3:88"},"nativeSrc":"2021:19:88","nodeType":"YulFunctionCall","src":"2021:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2008:12:88","nodeType":"YulIdentifier","src":"2008:12:88"},"nativeSrc":"2008:33:88","nodeType":"YulFunctionCall","src":"2008:33:88"},"variableNames":[{"name":"value_2","nativeSrc":"1997:7:88","nodeType":"YulIdentifier","src":"1997:7:88"}]},{"nativeSrc":"2050:17:88","nodeType":"YulAssignment","src":"2050:17:88","value":{"name":"value_2","nativeSrc":"2060:7:88","nodeType":"YulIdentifier","src":"2060:7:88"},"variableNames":[{"name":"value3","nativeSrc":"2050:6:88","nodeType":"YulIdentifier","src":"2050:6:88"}]},{"nativeSrc":"2076:48:88","nodeType":"YulAssignment","src":"2076:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2108:9:88","nodeType":"YulIdentifier","src":"2108:9:88"},{"kind":"number","nativeSrc":"2119:3:88","nodeType":"YulLiteral","src":"2119:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"2104:3:88","nodeType":"YulIdentifier","src":"2104:3:88"},"nativeSrc":"2104:19:88","nodeType":"YulFunctionCall","src":"2104:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"2086:17:88","nodeType":"YulIdentifier","src":"2086:17:88"},"nativeSrc":"2086:38:88","nodeType":"YulFunctionCall","src":"2086:38:88"},"variableNames":[{"name":"value4","nativeSrc":"2076:6:88","nodeType":"YulIdentifier","src":"2076:6:88"}]},{"nativeSrc":"2133:48:88","nodeType":"YulAssignment","src":"2133:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2165:9:88","nodeType":"YulIdentifier","src":"2165:9:88"},{"kind":"number","nativeSrc":"2176:3:88","nodeType":"YulLiteral","src":"2176:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"2161:3:88","nodeType":"YulIdentifier","src":"2161:3:88"},"nativeSrc":"2161:19:88","nodeType":"YulFunctionCall","src":"2161:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"2143:17:88","nodeType":"YulIdentifier","src":"2143:17:88"},"nativeSrc":"2143:38:88","nodeType":"YulFunctionCall","src":"2143:38:88"},"variableNames":[{"name":"value5","nativeSrc":"2133:6:88","nodeType":"YulIdentifier","src":"2133:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96","nativeSrc":"1438:749:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1548:9:88","nodeType":"YulTypedName","src":"1548:9:88","type":""},{"name":"dataEnd","nativeSrc":"1559:7:88","nodeType":"YulTypedName","src":"1559:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1571:6:88","nodeType":"YulTypedName","src":"1571:6:88","type":""},{"name":"value1","nativeSrc":"1579:6:88","nodeType":"YulTypedName","src":"1579:6:88","type":""},{"name":"value2","nativeSrc":"1587:6:88","nodeType":"YulTypedName","src":"1587:6:88","type":""},{"name":"value3","nativeSrc":"1595:6:88","nodeType":"YulTypedName","src":"1595:6:88","type":""},{"name":"value4","nativeSrc":"1603:6:88","nodeType":"YulTypedName","src":"1603:6:88","type":""},{"name":"value5","nativeSrc":"1611:6:88","nodeType":"YulTypedName","src":"1611:6:88","type":""}],"src":"1438:749:88"},{"body":{"nativeSrc":"2293:76:88","nodeType":"YulBlock","src":"2293:76:88","statements":[{"nativeSrc":"2303:26:88","nodeType":"YulAssignment","src":"2303:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2315:9:88","nodeType":"YulIdentifier","src":"2315:9:88"},{"kind":"number","nativeSrc":"2326:2:88","nodeType":"YulLiteral","src":"2326:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2311:3:88","nodeType":"YulIdentifier","src":"2311:3:88"},"nativeSrc":"2311:18:88","nodeType":"YulFunctionCall","src":"2311:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2303:4:88","nodeType":"YulIdentifier","src":"2303:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2345:9:88","nodeType":"YulIdentifier","src":"2345:9:88"},{"name":"value0","nativeSrc":"2356:6:88","nodeType":"YulIdentifier","src":"2356:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2338:6:88","nodeType":"YulIdentifier","src":"2338:6:88"},"nativeSrc":"2338:25:88","nodeType":"YulFunctionCall","src":"2338:25:88"},"nativeSrc":"2338:25:88","nodeType":"YulExpressionStatement","src":"2338:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2192:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2262:9:88","nodeType":"YulTypedName","src":"2262:9:88","type":""},{"name":"value0","nativeSrc":"2273:6:88","nodeType":"YulTypedName","src":"2273:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2284:4:88","nodeType":"YulTypedName","src":"2284:4:88","type":""}],"src":"2192:177:88"},{"body":{"nativeSrc":"2419:86:88","nodeType":"YulBlock","src":"2419:86:88","statements":[{"body":{"nativeSrc":"2483:16:88","nodeType":"YulBlock","src":"2483:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2492:1:88","nodeType":"YulLiteral","src":"2492:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2495:1:88","nodeType":"YulLiteral","src":"2495:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2485:6:88","nodeType":"YulIdentifier","src":"2485:6:88"},"nativeSrc":"2485:12:88","nodeType":"YulFunctionCall","src":"2485:12:88"},"nativeSrc":"2485:12:88","nodeType":"YulExpressionStatement","src":"2485:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2442:5:88","nodeType":"YulIdentifier","src":"2442:5:88"},{"arguments":[{"name":"value","nativeSrc":"2453:5:88","nodeType":"YulIdentifier","src":"2453:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2468:3:88","nodeType":"YulLiteral","src":"2468:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2473:1:88","nodeType":"YulLiteral","src":"2473:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2464:3:88","nodeType":"YulIdentifier","src":"2464:3:88"},"nativeSrc":"2464:11:88","nodeType":"YulFunctionCall","src":"2464:11:88"},{"kind":"number","nativeSrc":"2477:1:88","nodeType":"YulLiteral","src":"2477:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2460:3:88","nodeType":"YulIdentifier","src":"2460:3:88"},"nativeSrc":"2460:19:88","nodeType":"YulFunctionCall","src":"2460:19:88"}],"functionName":{"name":"and","nativeSrc":"2449:3:88","nodeType":"YulIdentifier","src":"2449:3:88"},"nativeSrc":"2449:31:88","nodeType":"YulFunctionCall","src":"2449:31:88"}],"functionName":{"name":"eq","nativeSrc":"2439:2:88","nodeType":"YulIdentifier","src":"2439:2:88"},"nativeSrc":"2439:42:88","nodeType":"YulFunctionCall","src":"2439:42:88"}],"functionName":{"name":"iszero","nativeSrc":"2432:6:88","nodeType":"YulIdentifier","src":"2432:6:88"},"nativeSrc":"2432:50:88","nodeType":"YulFunctionCall","src":"2432:50:88"},"nativeSrc":"2429:70:88","nodeType":"YulIf","src":"2429:70:88"}]},"name":"validator_revert_address","nativeSrc":"2374:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2408:5:88","nodeType":"YulTypedName","src":"2408:5:88","type":""}],"src":"2374:131:88"},{"body":{"nativeSrc":"2663:601:88","nodeType":"YulBlock","src":"2663:601:88","statements":[{"body":{"nativeSrc":"2710:16:88","nodeType":"YulBlock","src":"2710:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2719:1:88","nodeType":"YulLiteral","src":"2719:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2722:1:88","nodeType":"YulLiteral","src":"2722:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2712:6:88","nodeType":"YulIdentifier","src":"2712:6:88"},"nativeSrc":"2712:12:88","nodeType":"YulFunctionCall","src":"2712:12:88"},"nativeSrc":"2712:12:88","nodeType":"YulExpressionStatement","src":"2712:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2684:7:88","nodeType":"YulIdentifier","src":"2684:7:88"},{"name":"headStart","nativeSrc":"2693:9:88","nodeType":"YulIdentifier","src":"2693:9:88"}],"functionName":{"name":"sub","nativeSrc":"2680:3:88","nodeType":"YulIdentifier","src":"2680:3:88"},"nativeSrc":"2680:23:88","nodeType":"YulFunctionCall","src":"2680:23:88"},{"kind":"number","nativeSrc":"2705:3:88","nodeType":"YulLiteral","src":"2705:3:88","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"2676:3:88","nodeType":"YulIdentifier","src":"2676:3:88"},"nativeSrc":"2676:33:88","nodeType":"YulFunctionCall","src":"2676:33:88"},"nativeSrc":"2673:53:88","nodeType":"YulIf","src":"2673:53:88"},{"nativeSrc":"2735:14:88","nodeType":"YulVariableDeclaration","src":"2735:14:88","value":{"kind":"number","nativeSrc":"2748:1:88","nodeType":"YulLiteral","src":"2748:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2739:5:88","nodeType":"YulTypedName","src":"2739:5:88","type":""}]},{"nativeSrc":"2758:32:88","nodeType":"YulAssignment","src":"2758:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2780:9:88","nodeType":"YulIdentifier","src":"2780:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2767:12:88","nodeType":"YulIdentifier","src":"2767:12:88"},"nativeSrc":"2767:23:88","nodeType":"YulFunctionCall","src":"2767:23:88"},"variableNames":[{"name":"value","nativeSrc":"2758:5:88","nodeType":"YulIdentifier","src":"2758:5:88"}]},{"nativeSrc":"2799:15:88","nodeType":"YulAssignment","src":"2799:15:88","value":{"name":"value","nativeSrc":"2809:5:88","nodeType":"YulIdentifier","src":"2809:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2799:6:88","nodeType":"YulIdentifier","src":"2799:6:88"}]},{"nativeSrc":"2823:16:88","nodeType":"YulVariableDeclaration","src":"2823:16:88","value":{"kind":"number","nativeSrc":"2838:1:88","nodeType":"YulLiteral","src":"2838:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"2827:7:88","nodeType":"YulTypedName","src":"2827:7:88","type":""}]},{"nativeSrc":"2848:43:88","nodeType":"YulAssignment","src":"2848:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2876:9:88","nodeType":"YulIdentifier","src":"2876:9:88"},{"kind":"number","nativeSrc":"2887:2:88","nodeType":"YulLiteral","src":"2887:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2872:3:88","nodeType":"YulIdentifier","src":"2872:3:88"},"nativeSrc":"2872:18:88","nodeType":"YulFunctionCall","src":"2872:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2859:12:88","nodeType":"YulIdentifier","src":"2859:12:88"},"nativeSrc":"2859:32:88","nodeType":"YulFunctionCall","src":"2859:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"2848:7:88","nodeType":"YulIdentifier","src":"2848:7:88"}]},{"nativeSrc":"2900:17:88","nodeType":"YulAssignment","src":"2900:17:88","value":{"name":"value_1","nativeSrc":"2910:7:88","nodeType":"YulIdentifier","src":"2910:7:88"},"variableNames":[{"name":"value1","nativeSrc":"2900:6:88","nodeType":"YulIdentifier","src":"2900:6:88"}]},{"nativeSrc":"2926:16:88","nodeType":"YulVariableDeclaration","src":"2926:16:88","value":{"kind":"number","nativeSrc":"2941:1:88","nodeType":"YulLiteral","src":"2941:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"2930:7:88","nodeType":"YulTypedName","src":"2930:7:88","type":""}]},{"nativeSrc":"2951:43:88","nodeType":"YulAssignment","src":"2951:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2979:9:88","nodeType":"YulIdentifier","src":"2979:9:88"},{"kind":"number","nativeSrc":"2990:2:88","nodeType":"YulLiteral","src":"2990:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2975:3:88","nodeType":"YulIdentifier","src":"2975:3:88"},"nativeSrc":"2975:18:88","nodeType":"YulFunctionCall","src":"2975:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2962:12:88","nodeType":"YulIdentifier","src":"2962:12:88"},"nativeSrc":"2962:32:88","nodeType":"YulFunctionCall","src":"2962:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"2951:7:88","nodeType":"YulIdentifier","src":"2951:7:88"}]},{"nativeSrc":"3003:17:88","nodeType":"YulAssignment","src":"3003:17:88","value":{"name":"value_2","nativeSrc":"3013:7:88","nodeType":"YulIdentifier","src":"3013:7:88"},"variableNames":[{"name":"value2","nativeSrc":"3003:6:88","nodeType":"YulIdentifier","src":"3003:6:88"}]},{"nativeSrc":"3029:47:88","nodeType":"YulAssignment","src":"3029:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3061:9:88","nodeType":"YulIdentifier","src":"3061:9:88"},{"kind":"number","nativeSrc":"3072:2:88","nodeType":"YulLiteral","src":"3072:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3057:3:88","nodeType":"YulIdentifier","src":"3057:3:88"},"nativeSrc":"3057:18:88","nodeType":"YulFunctionCall","src":"3057:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"3039:17:88","nodeType":"YulIdentifier","src":"3039:17:88"},"nativeSrc":"3039:37:88","nodeType":"YulFunctionCall","src":"3039:37:88"},"variableNames":[{"name":"value3","nativeSrc":"3029:6:88","nodeType":"YulIdentifier","src":"3029:6:88"}]},{"nativeSrc":"3085:48:88","nodeType":"YulVariableDeclaration","src":"3085:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3117:9:88","nodeType":"YulIdentifier","src":"3117:9:88"},{"kind":"number","nativeSrc":"3128:3:88","nodeType":"YulLiteral","src":"3128:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3113:3:88","nodeType":"YulIdentifier","src":"3113:3:88"},"nativeSrc":"3113:19:88","nodeType":"YulFunctionCall","src":"3113:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"3100:12:88","nodeType":"YulIdentifier","src":"3100:12:88"},"nativeSrc":"3100:33:88","nodeType":"YulFunctionCall","src":"3100:33:88"},"variables":[{"name":"value_3","nativeSrc":"3089:7:88","nodeType":"YulTypedName","src":"3089:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"3167:7:88","nodeType":"YulIdentifier","src":"3167:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3142:24:88","nodeType":"YulIdentifier","src":"3142:24:88"},"nativeSrc":"3142:33:88","nodeType":"YulFunctionCall","src":"3142:33:88"},"nativeSrc":"3142:33:88","nodeType":"YulExpressionStatement","src":"3142:33:88"},{"nativeSrc":"3184:17:88","nodeType":"YulAssignment","src":"3184:17:88","value":{"name":"value_3","nativeSrc":"3194:7:88","nodeType":"YulIdentifier","src":"3194:7:88"},"variableNames":[{"name":"value4","nativeSrc":"3184:6:88","nodeType":"YulIdentifier","src":"3184:6:88"}]},{"nativeSrc":"3210:48:88","nodeType":"YulAssignment","src":"3210:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3242:9:88","nodeType":"YulIdentifier","src":"3242:9:88"},{"kind":"number","nativeSrc":"3253:3:88","nodeType":"YulLiteral","src":"3253:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3238:3:88","nodeType":"YulIdentifier","src":"3238:3:88"},"nativeSrc":"3238:19:88","nodeType":"YulFunctionCall","src":"3238:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"3220:17:88","nodeType":"YulIdentifier","src":"3220:17:88"},"nativeSrc":"3220:38:88","nodeType":"YulFunctionCall","src":"3220:38:88"},"variableNames":[{"name":"value5","nativeSrc":"3210:6:88","nodeType":"YulIdentifier","src":"3210:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_uint96","nativeSrc":"2510:754:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2589:9:88","nodeType":"YulTypedName","src":"2589:9:88","type":""},{"name":"dataEnd","nativeSrc":"2600:7:88","nodeType":"YulTypedName","src":"2600:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2612:6:88","nodeType":"YulTypedName","src":"2612:6:88","type":""},{"name":"value1","nativeSrc":"2620:6:88","nodeType":"YulTypedName","src":"2620:6:88","type":""},{"name":"value2","nativeSrc":"2628:6:88","nodeType":"YulTypedName","src":"2628:6:88","type":""},{"name":"value3","nativeSrc":"2636:6:88","nodeType":"YulTypedName","src":"2636:6:88","type":""},{"name":"value4","nativeSrc":"2644:6:88","nodeType":"YulTypedName","src":"2644:6:88","type":""},{"name":"value5","nativeSrc":"2652:6:88","nodeType":"YulTypedName","src":"2652:6:88","type":""}],"src":"2510:754:88"},{"body":{"nativeSrc":"3326:60:88","nodeType":"YulBlock","src":"3326:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3343:3:88","nodeType":"YulIdentifier","src":"3343:3:88"},{"arguments":[{"name":"value","nativeSrc":"3352:5:88","nodeType":"YulIdentifier","src":"3352:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3367:3:88","nodeType":"YulLiteral","src":"3367:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3372:1:88","nodeType":"YulLiteral","src":"3372:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3363:3:88","nodeType":"YulIdentifier","src":"3363:3:88"},"nativeSrc":"3363:11:88","nodeType":"YulFunctionCall","src":"3363:11:88"},{"kind":"number","nativeSrc":"3376:1:88","nodeType":"YulLiteral","src":"3376:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3359:3:88","nodeType":"YulIdentifier","src":"3359:3:88"},"nativeSrc":"3359:19:88","nodeType":"YulFunctionCall","src":"3359:19:88"}],"functionName":{"name":"and","nativeSrc":"3348:3:88","nodeType":"YulIdentifier","src":"3348:3:88"},"nativeSrc":"3348:31:88","nodeType":"YulFunctionCall","src":"3348:31:88"}],"functionName":{"name":"mstore","nativeSrc":"3336:6:88","nodeType":"YulIdentifier","src":"3336:6:88"},"nativeSrc":"3336:44:88","nodeType":"YulFunctionCall","src":"3336:44:88"},"nativeSrc":"3336:44:88","nodeType":"YulExpressionStatement","src":"3336:44:88"}]},"name":"abi_encode_contract_IRiskModule","nativeSrc":"3269:117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3310:5:88","nodeType":"YulTypedName","src":"3310:5:88","type":""},{"name":"pos","nativeSrc":"3317:3:88","nodeType":"YulTypedName","src":"3317:3:88","type":""}],"src":"3269:117:88"},{"body":{"nativeSrc":"3434:53:88","nodeType":"YulBlock","src":"3434:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3451:3:88","nodeType":"YulIdentifier","src":"3451:3:88"},{"arguments":[{"name":"value","nativeSrc":"3460:5:88","nodeType":"YulIdentifier","src":"3460:5:88"},{"kind":"number","nativeSrc":"3467:12:88","nodeType":"YulLiteral","src":"3467:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"3456:3:88","nodeType":"YulIdentifier","src":"3456:3:88"},"nativeSrc":"3456:24:88","nodeType":"YulFunctionCall","src":"3456:24:88"}],"functionName":{"name":"mstore","nativeSrc":"3444:6:88","nodeType":"YulIdentifier","src":"3444:6:88"},"nativeSrc":"3444:37:88","nodeType":"YulFunctionCall","src":"3444:37:88"},"nativeSrc":"3444:37:88","nodeType":"YulExpressionStatement","src":"3444:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"3391:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3418:5:88","nodeType":"YulTypedName","src":"3418:5:88","type":""},{"name":"pos","nativeSrc":"3425:3:88","nodeType":"YulTypedName","src":"3425:3:88","type":""}],"src":"3391:96:88"},{"body":{"nativeSrc":"3546:971:88","nodeType":"YulBlock","src":"3546:971:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3563:3:88","nodeType":"YulIdentifier","src":"3563:3:88"},{"arguments":[{"name":"value","nativeSrc":"3574:5:88","nodeType":"YulIdentifier","src":"3574:5:88"}],"functionName":{"name":"mload","nativeSrc":"3568:5:88","nodeType":"YulIdentifier","src":"3568:5:88"},"nativeSrc":"3568:12:88","nodeType":"YulFunctionCall","src":"3568:12:88"}],"functionName":{"name":"mstore","nativeSrc":"3556:6:88","nodeType":"YulIdentifier","src":"3556:6:88"},"nativeSrc":"3556:25:88","nodeType":"YulFunctionCall","src":"3556:25:88"},"nativeSrc":"3556:25:88","nodeType":"YulExpressionStatement","src":"3556:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3601:3:88","nodeType":"YulIdentifier","src":"3601:3:88"},{"kind":"number","nativeSrc":"3606:4:88","nodeType":"YulLiteral","src":"3606:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3597:3:88","nodeType":"YulIdentifier","src":"3597:3:88"},"nativeSrc":"3597:14:88","nodeType":"YulFunctionCall","src":"3597:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3623:5:88","nodeType":"YulIdentifier","src":"3623:5:88"},{"kind":"number","nativeSrc":"3630:4:88","nodeType":"YulLiteral","src":"3630:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3619:3:88","nodeType":"YulIdentifier","src":"3619:3:88"},"nativeSrc":"3619:16:88","nodeType":"YulFunctionCall","src":"3619:16:88"}],"functionName":{"name":"mload","nativeSrc":"3613:5:88","nodeType":"YulIdentifier","src":"3613:5:88"},"nativeSrc":"3613:23:88","nodeType":"YulFunctionCall","src":"3613:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3590:6:88","nodeType":"YulIdentifier","src":"3590:6:88"},"nativeSrc":"3590:47:88","nodeType":"YulFunctionCall","src":"3590:47:88"},"nativeSrc":"3590:47:88","nodeType":"YulExpressionStatement","src":"3590:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3657:3:88","nodeType":"YulIdentifier","src":"3657:3:88"},{"kind":"number","nativeSrc":"3662:4:88","nodeType":"YulLiteral","src":"3662:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3653:3:88","nodeType":"YulIdentifier","src":"3653:3:88"},"nativeSrc":"3653:14:88","nodeType":"YulFunctionCall","src":"3653:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3679:5:88","nodeType":"YulIdentifier","src":"3679:5:88"},{"kind":"number","nativeSrc":"3686:4:88","nodeType":"YulLiteral","src":"3686:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3675:3:88","nodeType":"YulIdentifier","src":"3675:3:88"},"nativeSrc":"3675:16:88","nodeType":"YulFunctionCall","src":"3675:16:88"}],"functionName":{"name":"mload","nativeSrc":"3669:5:88","nodeType":"YulIdentifier","src":"3669:5:88"},"nativeSrc":"3669:23:88","nodeType":"YulFunctionCall","src":"3669:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3646:6:88","nodeType":"YulIdentifier","src":"3646:6:88"},"nativeSrc":"3646:47:88","nodeType":"YulFunctionCall","src":"3646:47:88"},"nativeSrc":"3646:47:88","nodeType":"YulExpressionStatement","src":"3646:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3713:3:88","nodeType":"YulIdentifier","src":"3713:3:88"},{"kind":"number","nativeSrc":"3718:4:88","nodeType":"YulLiteral","src":"3718:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3709:3:88","nodeType":"YulIdentifier","src":"3709:3:88"},"nativeSrc":"3709:14:88","nodeType":"YulFunctionCall","src":"3709:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3735:5:88","nodeType":"YulIdentifier","src":"3735:5:88"},{"kind":"number","nativeSrc":"3742:4:88","nodeType":"YulLiteral","src":"3742:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3731:3:88","nodeType":"YulIdentifier","src":"3731:3:88"},"nativeSrc":"3731:16:88","nodeType":"YulFunctionCall","src":"3731:16:88"}],"functionName":{"name":"mload","nativeSrc":"3725:5:88","nodeType":"YulIdentifier","src":"3725:5:88"},"nativeSrc":"3725:23:88","nodeType":"YulFunctionCall","src":"3725:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3702:6:88","nodeType":"YulIdentifier","src":"3702:6:88"},"nativeSrc":"3702:47:88","nodeType":"YulFunctionCall","src":"3702:47:88"},"nativeSrc":"3702:47:88","nodeType":"YulExpressionStatement","src":"3702:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3769:3:88","nodeType":"YulIdentifier","src":"3769:3:88"},{"kind":"number","nativeSrc":"3774:4:88","nodeType":"YulLiteral","src":"3774:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"3765:3:88","nodeType":"YulIdentifier","src":"3765:3:88"},"nativeSrc":"3765:14:88","nodeType":"YulFunctionCall","src":"3765:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3791:5:88","nodeType":"YulIdentifier","src":"3791:5:88"},{"kind":"number","nativeSrc":"3798:4:88","nodeType":"YulLiteral","src":"3798:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"3787:3:88","nodeType":"YulIdentifier","src":"3787:3:88"},"nativeSrc":"3787:16:88","nodeType":"YulFunctionCall","src":"3787:16:88"}],"functionName":{"name":"mload","nativeSrc":"3781:5:88","nodeType":"YulIdentifier","src":"3781:5:88"},"nativeSrc":"3781:23:88","nodeType":"YulFunctionCall","src":"3781:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3758:6:88","nodeType":"YulIdentifier","src":"3758:6:88"},"nativeSrc":"3758:47:88","nodeType":"YulFunctionCall","src":"3758:47:88"},"nativeSrc":"3758:47:88","nodeType":"YulExpressionStatement","src":"3758:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3825:3:88","nodeType":"YulIdentifier","src":"3825:3:88"},{"kind":"number","nativeSrc":"3830:4:88","nodeType":"YulLiteral","src":"3830:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"3821:3:88","nodeType":"YulIdentifier","src":"3821:3:88"},"nativeSrc":"3821:14:88","nodeType":"YulFunctionCall","src":"3821:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3847:5:88","nodeType":"YulIdentifier","src":"3847:5:88"},{"kind":"number","nativeSrc":"3854:4:88","nodeType":"YulLiteral","src":"3854:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"3843:3:88","nodeType":"YulIdentifier","src":"3843:3:88"},"nativeSrc":"3843:16:88","nodeType":"YulFunctionCall","src":"3843:16:88"}],"functionName":{"name":"mload","nativeSrc":"3837:5:88","nodeType":"YulIdentifier","src":"3837:5:88"},"nativeSrc":"3837:23:88","nodeType":"YulFunctionCall","src":"3837:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3814:6:88","nodeType":"YulIdentifier","src":"3814:6:88"},"nativeSrc":"3814:47:88","nodeType":"YulFunctionCall","src":"3814:47:88"},"nativeSrc":"3814:47:88","nodeType":"YulExpressionStatement","src":"3814:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3881:3:88","nodeType":"YulIdentifier","src":"3881:3:88"},{"kind":"number","nativeSrc":"3886:4:88","nodeType":"YulLiteral","src":"3886:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"3877:3:88","nodeType":"YulIdentifier","src":"3877:3:88"},"nativeSrc":"3877:14:88","nodeType":"YulFunctionCall","src":"3877:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3903:5:88","nodeType":"YulIdentifier","src":"3903:5:88"},{"kind":"number","nativeSrc":"3910:4:88","nodeType":"YulLiteral","src":"3910:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"3899:3:88","nodeType":"YulIdentifier","src":"3899:3:88"},"nativeSrc":"3899:16:88","nodeType":"YulFunctionCall","src":"3899:16:88"}],"functionName":{"name":"mload","nativeSrc":"3893:5:88","nodeType":"YulIdentifier","src":"3893:5:88"},"nativeSrc":"3893:23:88","nodeType":"YulFunctionCall","src":"3893:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3870:6:88","nodeType":"YulIdentifier","src":"3870:6:88"},"nativeSrc":"3870:47:88","nodeType":"YulFunctionCall","src":"3870:47:88"},"nativeSrc":"3870:47:88","nodeType":"YulExpressionStatement","src":"3870:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3937:3:88","nodeType":"YulIdentifier","src":"3937:3:88"},{"kind":"number","nativeSrc":"3942:4:88","nodeType":"YulLiteral","src":"3942:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"3933:3:88","nodeType":"YulIdentifier","src":"3933:3:88"},"nativeSrc":"3933:14:88","nodeType":"YulFunctionCall","src":"3933:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3959:5:88","nodeType":"YulIdentifier","src":"3959:5:88"},{"kind":"number","nativeSrc":"3966:4:88","nodeType":"YulLiteral","src":"3966:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"3955:3:88","nodeType":"YulIdentifier","src":"3955:3:88"},"nativeSrc":"3955:16:88","nodeType":"YulFunctionCall","src":"3955:16:88"}],"functionName":{"name":"mload","nativeSrc":"3949:5:88","nodeType":"YulIdentifier","src":"3949:5:88"},"nativeSrc":"3949:23:88","nodeType":"YulFunctionCall","src":"3949:23:88"}],"functionName":{"name":"mstore","nativeSrc":"3926:6:88","nodeType":"YulIdentifier","src":"3926:6:88"},"nativeSrc":"3926:47:88","nodeType":"YulFunctionCall","src":"3926:47:88"},"nativeSrc":"3926:47:88","nodeType":"YulExpressionStatement","src":"3926:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3993:3:88","nodeType":"YulIdentifier","src":"3993:3:88"},{"kind":"number","nativeSrc":"3998:6:88","nodeType":"YulLiteral","src":"3998:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"3989:3:88","nodeType":"YulIdentifier","src":"3989:3:88"},"nativeSrc":"3989:16:88","nodeType":"YulFunctionCall","src":"3989:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4017:5:88","nodeType":"YulIdentifier","src":"4017:5:88"},{"kind":"number","nativeSrc":"4024:6:88","nodeType":"YulLiteral","src":"4024:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"4013:3:88","nodeType":"YulIdentifier","src":"4013:3:88"},"nativeSrc":"4013:18:88","nodeType":"YulFunctionCall","src":"4013:18:88"}],"functionName":{"name":"mload","nativeSrc":"4007:5:88","nodeType":"YulIdentifier","src":"4007:5:88"},"nativeSrc":"4007:25:88","nodeType":"YulFunctionCall","src":"4007:25:88"}],"functionName":{"name":"mstore","nativeSrc":"3982:6:88","nodeType":"YulIdentifier","src":"3982:6:88"},"nativeSrc":"3982:51:88","nodeType":"YulFunctionCall","src":"3982:51:88"},"nativeSrc":"3982:51:88","nodeType":"YulExpressionStatement","src":"3982:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4053:3:88","nodeType":"YulIdentifier","src":"4053:3:88"},{"kind":"number","nativeSrc":"4058:6:88","nodeType":"YulLiteral","src":"4058:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"4049:3:88","nodeType":"YulIdentifier","src":"4049:3:88"},"nativeSrc":"4049:16:88","nodeType":"YulFunctionCall","src":"4049:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4077:5:88","nodeType":"YulIdentifier","src":"4077:5:88"},{"kind":"number","nativeSrc":"4084:6:88","nodeType":"YulLiteral","src":"4084:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"4073:3:88","nodeType":"YulIdentifier","src":"4073:3:88"},"nativeSrc":"4073:18:88","nodeType":"YulFunctionCall","src":"4073:18:88"}],"functionName":{"name":"mload","nativeSrc":"4067:5:88","nodeType":"YulIdentifier","src":"4067:5:88"},"nativeSrc":"4067:25:88","nodeType":"YulFunctionCall","src":"4067:25:88"}],"functionName":{"name":"mstore","nativeSrc":"4042:6:88","nodeType":"YulIdentifier","src":"4042:6:88"},"nativeSrc":"4042:51:88","nodeType":"YulFunctionCall","src":"4042:51:88"},"nativeSrc":"4042:51:88","nodeType":"YulExpressionStatement","src":"4042:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4113:3:88","nodeType":"YulIdentifier","src":"4113:3:88"},{"kind":"number","nativeSrc":"4118:6:88","nodeType":"YulLiteral","src":"4118:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"4109:3:88","nodeType":"YulIdentifier","src":"4109:3:88"},"nativeSrc":"4109:16:88","nodeType":"YulFunctionCall","src":"4109:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4137:5:88","nodeType":"YulIdentifier","src":"4137:5:88"},{"kind":"number","nativeSrc":"4144:6:88","nodeType":"YulLiteral","src":"4144:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"4133:3:88","nodeType":"YulIdentifier","src":"4133:3:88"},"nativeSrc":"4133:18:88","nodeType":"YulFunctionCall","src":"4133:18:88"}],"functionName":{"name":"mload","nativeSrc":"4127:5:88","nodeType":"YulIdentifier","src":"4127:5:88"},"nativeSrc":"4127:25:88","nodeType":"YulFunctionCall","src":"4127:25:88"}],"functionName":{"name":"mstore","nativeSrc":"4102:6:88","nodeType":"YulIdentifier","src":"4102:6:88"},"nativeSrc":"4102:51:88","nodeType":"YulFunctionCall","src":"4102:51:88"},"nativeSrc":"4102:51:88","nodeType":"YulExpressionStatement","src":"4102:51:88"},{"nativeSrc":"4162:45:88","nodeType":"YulVariableDeclaration","src":"4162:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4192:5:88","nodeType":"YulIdentifier","src":"4192:5:88"},{"kind":"number","nativeSrc":"4199:6:88","nodeType":"YulLiteral","src":"4199:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"4188:3:88","nodeType":"YulIdentifier","src":"4188:3:88"},"nativeSrc":"4188:18:88","nodeType":"YulFunctionCall","src":"4188:18:88"}],"functionName":{"name":"mload","nativeSrc":"4182:5:88","nodeType":"YulIdentifier","src":"4182:5:88"},"nativeSrc":"4182:25:88","nodeType":"YulFunctionCall","src":"4182:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"4166:12:88","nodeType":"YulTypedName","src":"4166:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"4248:12:88","nodeType":"YulIdentifier","src":"4248:12:88"},{"arguments":[{"name":"pos","nativeSrc":"4266:3:88","nodeType":"YulIdentifier","src":"4266:3:88"},{"kind":"number","nativeSrc":"4271:6:88","nodeType":"YulLiteral","src":"4271:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"4262:3:88","nodeType":"YulIdentifier","src":"4262:3:88"},"nativeSrc":"4262:16:88","nodeType":"YulFunctionCall","src":"4262:16:88"}],"functionName":{"name":"abi_encode_contract_IRiskModule","nativeSrc":"4216:31:88","nodeType":"YulIdentifier","src":"4216:31:88"},"nativeSrc":"4216:63:88","nodeType":"YulFunctionCall","src":"4216:63:88"},"nativeSrc":"4216:63:88","nodeType":"YulExpressionStatement","src":"4216:63:88"},{"nativeSrc":"4288:47:88","nodeType":"YulVariableDeclaration","src":"4288:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4320:5:88","nodeType":"YulIdentifier","src":"4320:5:88"},{"kind":"number","nativeSrc":"4327:6:88","nodeType":"YulLiteral","src":"4327:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"4316:3:88","nodeType":"YulIdentifier","src":"4316:3:88"},"nativeSrc":"4316:18:88","nodeType":"YulFunctionCall","src":"4316:18:88"}],"functionName":{"name":"mload","nativeSrc":"4310:5:88","nodeType":"YulIdentifier","src":"4310:5:88"},"nativeSrc":"4310:25:88","nodeType":"YulFunctionCall","src":"4310:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"4292:14:88","nodeType":"YulTypedName","src":"4292:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"4362:14:88","nodeType":"YulIdentifier","src":"4362:14:88"},{"arguments":[{"name":"pos","nativeSrc":"4382:3:88","nodeType":"YulIdentifier","src":"4382:3:88"},{"kind":"number","nativeSrc":"4387:6:88","nodeType":"YulLiteral","src":"4387:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"4378:3:88","nodeType":"YulIdentifier","src":"4378:3:88"},"nativeSrc":"4378:16:88","nodeType":"YulFunctionCall","src":"4378:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"4344:17:88","nodeType":"YulIdentifier","src":"4344:17:88"},"nativeSrc":"4344:51:88","nodeType":"YulFunctionCall","src":"4344:51:88"},"nativeSrc":"4344:51:88","nodeType":"YulExpressionStatement","src":"4344:51:88"},{"nativeSrc":"4404:47:88","nodeType":"YulVariableDeclaration","src":"4404:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4436:5:88","nodeType":"YulIdentifier","src":"4436:5:88"},{"kind":"number","nativeSrc":"4443:6:88","nodeType":"YulLiteral","src":"4443:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"4432:3:88","nodeType":"YulIdentifier","src":"4432:3:88"},"nativeSrc":"4432:18:88","nodeType":"YulFunctionCall","src":"4432:18:88"}],"functionName":{"name":"mload","nativeSrc":"4426:5:88","nodeType":"YulIdentifier","src":"4426:5:88"},"nativeSrc":"4426:25:88","nodeType":"YulFunctionCall","src":"4426:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"4408:14:88","nodeType":"YulTypedName","src":"4408:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"4478:14:88","nodeType":"YulIdentifier","src":"4478:14:88"},{"arguments":[{"name":"pos","nativeSrc":"4498:3:88","nodeType":"YulIdentifier","src":"4498:3:88"},{"kind":"number","nativeSrc":"4503:6:88","nodeType":"YulLiteral","src":"4503:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"4494:3:88","nodeType":"YulIdentifier","src":"4494:3:88"},"nativeSrc":"4494:16:88","nodeType":"YulFunctionCall","src":"4494:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"4460:17:88","nodeType":"YulIdentifier","src":"4460:17:88"},"nativeSrc":"4460:51:88","nodeType":"YulFunctionCall","src":"4460:51:88"},"nativeSrc":"4460:51:88","nodeType":"YulExpressionStatement","src":"4460:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"3492:1025:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3530:5:88","nodeType":"YulTypedName","src":"3530:5:88","type":""},{"name":"pos","nativeSrc":"3537:3:88","nodeType":"YulTypedName","src":"3537:3:88","type":""}],"src":"3492:1025:88"},{"body":{"nativeSrc":"4681:99:88","nodeType":"YulBlock","src":"4681:99:88","statements":[{"nativeSrc":"4691:27:88","nodeType":"YulAssignment","src":"4691:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4703:9:88","nodeType":"YulIdentifier","src":"4703:9:88"},{"kind":"number","nativeSrc":"4714:3:88","nodeType":"YulLiteral","src":"4714:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"4699:3:88","nodeType":"YulIdentifier","src":"4699:3:88"},"nativeSrc":"4699:19:88","nodeType":"YulFunctionCall","src":"4699:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4691:4:88","nodeType":"YulIdentifier","src":"4691:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4756:6:88","nodeType":"YulIdentifier","src":"4756:6:88"},{"name":"headStart","nativeSrc":"4764:9:88","nodeType":"YulIdentifier","src":"4764:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"4727:28:88","nodeType":"YulIdentifier","src":"4727:28:88"},"nativeSrc":"4727:47:88","nodeType":"YulFunctionCall","src":"4727:47:88"},"nativeSrc":"4727:47:88","nodeType":"YulExpressionStatement","src":"4727:47:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"4522:258:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4650:9:88","nodeType":"YulTypedName","src":"4650:9:88","type":""},{"name":"value0","nativeSrc":"4661:6:88","nodeType":"YulTypedName","src":"4661:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4672:4:88","nodeType":"YulTypedName","src":"4672:4:88","type":""}],"src":"4522:258:88"},{"body":{"nativeSrc":"4855:177:88","nodeType":"YulBlock","src":"4855:177:88","statements":[{"body":{"nativeSrc":"4901:16:88","nodeType":"YulBlock","src":"4901:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4910:1:88","nodeType":"YulLiteral","src":"4910:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4913:1:88","nodeType":"YulLiteral","src":"4913:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4903:6:88","nodeType":"YulIdentifier","src":"4903:6:88"},"nativeSrc":"4903:12:88","nodeType":"YulFunctionCall","src":"4903:12:88"},"nativeSrc":"4903:12:88","nodeType":"YulExpressionStatement","src":"4903:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4876:7:88","nodeType":"YulIdentifier","src":"4876:7:88"},{"name":"headStart","nativeSrc":"4885:9:88","nodeType":"YulIdentifier","src":"4885:9:88"}],"functionName":{"name":"sub","nativeSrc":"4872:3:88","nodeType":"YulIdentifier","src":"4872:3:88"},"nativeSrc":"4872:23:88","nodeType":"YulFunctionCall","src":"4872:23:88"},{"kind":"number","nativeSrc":"4897:2:88","nodeType":"YulLiteral","src":"4897:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4868:3:88","nodeType":"YulIdentifier","src":"4868:3:88"},"nativeSrc":"4868:32:88","nodeType":"YulFunctionCall","src":"4868:32:88"},"nativeSrc":"4865:52:88","nodeType":"YulIf","src":"4865:52:88"},{"nativeSrc":"4926:36:88","nodeType":"YulVariableDeclaration","src":"4926:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4952:9:88","nodeType":"YulIdentifier","src":"4952:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4939:12:88","nodeType":"YulIdentifier","src":"4939:12:88"},"nativeSrc":"4939:23:88","nodeType":"YulFunctionCall","src":"4939:23:88"},"variables":[{"name":"value","nativeSrc":"4930:5:88","nodeType":"YulTypedName","src":"4930:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4996:5:88","nodeType":"YulIdentifier","src":"4996:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4971:24:88","nodeType":"YulIdentifier","src":"4971:24:88"},"nativeSrc":"4971:31:88","nodeType":"YulFunctionCall","src":"4971:31:88"},"nativeSrc":"4971:31:88","nodeType":"YulExpressionStatement","src":"4971:31:88"},{"nativeSrc":"5011:15:88","nodeType":"YulAssignment","src":"5011:15:88","value":{"name":"value","nativeSrc":"5021:5:88","nodeType":"YulIdentifier","src":"5021:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5011:6:88","nodeType":"YulIdentifier","src":"5011:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4785:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4821:9:88","nodeType":"YulTypedName","src":"4821:9:88","type":""},{"name":"dataEnd","nativeSrc":"4832:7:88","nodeType":"YulTypedName","src":"4832:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4844:6:88","nodeType":"YulTypedName","src":"4844:6:88","type":""}],"src":"4785:247:88"},{"body":{"nativeSrc":"5159:102:88","nodeType":"YulBlock","src":"5159:102:88","statements":[{"nativeSrc":"5169:26:88","nodeType":"YulAssignment","src":"5169:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5181:9:88","nodeType":"YulIdentifier","src":"5181:9:88"},{"kind":"number","nativeSrc":"5192:2:88","nodeType":"YulLiteral","src":"5192:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5177:3:88","nodeType":"YulIdentifier","src":"5177:3:88"},"nativeSrc":"5177:18:88","nodeType":"YulFunctionCall","src":"5177:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5169:4:88","nodeType":"YulIdentifier","src":"5169:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5211:9:88","nodeType":"YulIdentifier","src":"5211:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5226:6:88","nodeType":"YulIdentifier","src":"5226:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5242:3:88","nodeType":"YulLiteral","src":"5242:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5247:1:88","nodeType":"YulLiteral","src":"5247:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5238:3:88","nodeType":"YulIdentifier","src":"5238:3:88"},"nativeSrc":"5238:11:88","nodeType":"YulFunctionCall","src":"5238:11:88"},{"kind":"number","nativeSrc":"5251:1:88","nodeType":"YulLiteral","src":"5251:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5234:3:88","nodeType":"YulIdentifier","src":"5234:3:88"},"nativeSrc":"5234:19:88","nodeType":"YulFunctionCall","src":"5234:19:88"}],"functionName":{"name":"and","nativeSrc":"5222:3:88","nodeType":"YulIdentifier","src":"5222:3:88"},"nativeSrc":"5222:32:88","nodeType":"YulFunctionCall","src":"5222:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5204:6:88","nodeType":"YulIdentifier","src":"5204:6:88"},"nativeSrc":"5204:51:88","nodeType":"YulFunctionCall","src":"5204:51:88"},"nativeSrc":"5204:51:88","nodeType":"YulExpressionStatement","src":"5204:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"5037:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5128:9:88","nodeType":"YulTypedName","src":"5128:9:88","type":""},{"name":"value0","nativeSrc":"5139:6:88","nodeType":"YulTypedName","src":"5139:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5150:4:88","nodeType":"YulTypedName","src":"5150:4:88","type":""}],"src":"5037:224:88"},{"body":{"nativeSrc":"5298:95:88","nodeType":"YulBlock","src":"5298:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5315:1:88","nodeType":"YulLiteral","src":"5315:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"5322:3:88","nodeType":"YulLiteral","src":"5322:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"5327:10:88","nodeType":"YulLiteral","src":"5327:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"5318:3:88","nodeType":"YulIdentifier","src":"5318:3:88"},"nativeSrc":"5318:20:88","nodeType":"YulFunctionCall","src":"5318:20:88"}],"functionName":{"name":"mstore","nativeSrc":"5308:6:88","nodeType":"YulIdentifier","src":"5308:6:88"},"nativeSrc":"5308:31:88","nodeType":"YulFunctionCall","src":"5308:31:88"},"nativeSrc":"5308:31:88","nodeType":"YulExpressionStatement","src":"5308:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5355:1:88","nodeType":"YulLiteral","src":"5355:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"5358:4:88","nodeType":"YulLiteral","src":"5358:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5348:6:88","nodeType":"YulIdentifier","src":"5348:6:88"},"nativeSrc":"5348:15:88","nodeType":"YulFunctionCall","src":"5348:15:88"},"nativeSrc":"5348:15:88","nodeType":"YulExpressionStatement","src":"5348:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5379:1:88","nodeType":"YulLiteral","src":"5379:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5382:4:88","nodeType":"YulLiteral","src":"5382:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5372:6:88","nodeType":"YulIdentifier","src":"5372:6:88"},"nativeSrc":"5372:15:88","nodeType":"YulFunctionCall","src":"5372:15:88"},"nativeSrc":"5372:15:88","nodeType":"YulExpressionStatement","src":"5372:15:88"}]},"name":"panic_error_0x41","nativeSrc":"5266:127:88","nodeType":"YulFunctionDefinition","src":"5266:127:88"},{"body":{"nativeSrc":"5472:641:88","nodeType":"YulBlock","src":"5472:641:88","statements":[{"nativeSrc":"5482:13:88","nodeType":"YulVariableDeclaration","src":"5482:13:88","value":{"kind":"number","nativeSrc":"5494:1:88","nodeType":"YulLiteral","src":"5494:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"5486:4:88","nodeType":"YulTypedName","src":"5486:4:88","type":""}]},{"body":{"nativeSrc":"5538:22:88","nodeType":"YulBlock","src":"5538:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5540:16:88","nodeType":"YulIdentifier","src":"5540:16:88"},"nativeSrc":"5540:18:88","nodeType":"YulFunctionCall","src":"5540:18:88"},"nativeSrc":"5540:18:88","nodeType":"YulExpressionStatement","src":"5540:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5510:6:88","nodeType":"YulIdentifier","src":"5510:6:88"},{"kind":"number","nativeSrc":"5518:18:88","nodeType":"YulLiteral","src":"5518:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5507:2:88","nodeType":"YulIdentifier","src":"5507:2:88"},"nativeSrc":"5507:30:88","nodeType":"YulFunctionCall","src":"5507:30:88"},"nativeSrc":"5504:56:88","nodeType":"YulIf","src":"5504:56:88"},{"nativeSrc":"5569:43:88","nodeType":"YulVariableDeclaration","src":"5569:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5591:6:88","nodeType":"YulIdentifier","src":"5591:6:88"},{"kind":"number","nativeSrc":"5599:2:88","nodeType":"YulLiteral","src":"5599:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5587:3:88","nodeType":"YulIdentifier","src":"5587:3:88"},"nativeSrc":"5587:15:88","nodeType":"YulFunctionCall","src":"5587:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5608:2:88","nodeType":"YulLiteral","src":"5608:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5604:3:88","nodeType":"YulIdentifier","src":"5604:3:88"},"nativeSrc":"5604:7:88","nodeType":"YulFunctionCall","src":"5604:7:88"}],"functionName":{"name":"and","nativeSrc":"5583:3:88","nodeType":"YulIdentifier","src":"5583:3:88"},"nativeSrc":"5583:29:88","nodeType":"YulFunctionCall","src":"5583:29:88"},"variables":[{"name":"result","nativeSrc":"5573:6:88","nodeType":"YulTypedName","src":"5573:6:88","type":""}]},{"nativeSrc":"5621:25:88","nodeType":"YulAssignment","src":"5621:25:88","value":{"arguments":[{"name":"result","nativeSrc":"5633:6:88","nodeType":"YulIdentifier","src":"5633:6:88"},{"kind":"number","nativeSrc":"5641:4:88","nodeType":"YulLiteral","src":"5641:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5629:3:88","nodeType":"YulIdentifier","src":"5629:3:88"},"nativeSrc":"5629:17:88","nodeType":"YulFunctionCall","src":"5629:17:88"},"variableNames":[{"name":"size","nativeSrc":"5621:4:88","nodeType":"YulIdentifier","src":"5621:4:88"}]},{"nativeSrc":"5655:15:88","nodeType":"YulVariableDeclaration","src":"5655:15:88","value":{"kind":"number","nativeSrc":"5669:1:88","nodeType":"YulLiteral","src":"5669:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"5659:6:88","nodeType":"YulTypedName","src":"5659:6:88","type":""}]},{"nativeSrc":"5679:19:88","nodeType":"YulAssignment","src":"5679:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"5695:2:88","nodeType":"YulLiteral","src":"5695:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"5689:5:88","nodeType":"YulIdentifier","src":"5689:5:88"},"nativeSrc":"5689:9:88","nodeType":"YulFunctionCall","src":"5689:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"5679:6:88","nodeType":"YulIdentifier","src":"5679:6:88"}]},{"nativeSrc":"5707:60:88","nodeType":"YulVariableDeclaration","src":"5707:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"5729:6:88","nodeType":"YulIdentifier","src":"5729:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"5745:6:88","nodeType":"YulIdentifier","src":"5745:6:88"},{"kind":"number","nativeSrc":"5753:2:88","nodeType":"YulLiteral","src":"5753:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"5741:3:88","nodeType":"YulIdentifier","src":"5741:3:88"},"nativeSrc":"5741:15:88","nodeType":"YulFunctionCall","src":"5741:15:88"},{"arguments":[{"kind":"number","nativeSrc":"5762:2:88","nodeType":"YulLiteral","src":"5762:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5758:3:88","nodeType":"YulIdentifier","src":"5758:3:88"},"nativeSrc":"5758:7:88","nodeType":"YulFunctionCall","src":"5758:7:88"}],"functionName":{"name":"and","nativeSrc":"5737:3:88","nodeType":"YulIdentifier","src":"5737:3:88"},"nativeSrc":"5737:29:88","nodeType":"YulFunctionCall","src":"5737:29:88"}],"functionName":{"name":"add","nativeSrc":"5725:3:88","nodeType":"YulIdentifier","src":"5725:3:88"},"nativeSrc":"5725:42:88","nodeType":"YulFunctionCall","src":"5725:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"5711:10:88","nodeType":"YulTypedName","src":"5711:10:88","type":""}]},{"body":{"nativeSrc":"5842:22:88","nodeType":"YulBlock","src":"5842:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5844:16:88","nodeType":"YulIdentifier","src":"5844:16:88"},"nativeSrc":"5844:18:88","nodeType":"YulFunctionCall","src":"5844:18:88"},"nativeSrc":"5844:18:88","nodeType":"YulExpressionStatement","src":"5844:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5785:10:88","nodeType":"YulIdentifier","src":"5785:10:88"},{"kind":"number","nativeSrc":"5797:18:88","nodeType":"YulLiteral","src":"5797:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5782:2:88","nodeType":"YulIdentifier","src":"5782:2:88"},"nativeSrc":"5782:34:88","nodeType":"YulFunctionCall","src":"5782:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5821:10:88","nodeType":"YulIdentifier","src":"5821:10:88"},{"name":"memPtr","nativeSrc":"5833:6:88","nodeType":"YulIdentifier","src":"5833:6:88"}],"functionName":{"name":"lt","nativeSrc":"5818:2:88","nodeType":"YulIdentifier","src":"5818:2:88"},"nativeSrc":"5818:22:88","nodeType":"YulFunctionCall","src":"5818:22:88"}],"functionName":{"name":"or","nativeSrc":"5779:2:88","nodeType":"YulIdentifier","src":"5779:2:88"},"nativeSrc":"5779:62:88","nodeType":"YulFunctionCall","src":"5779:62:88"},"nativeSrc":"5776:88:88","nodeType":"YulIf","src":"5776:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5880:2:88","nodeType":"YulLiteral","src":"5880:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5884:10:88","nodeType":"YulIdentifier","src":"5884:10:88"}],"functionName":{"name":"mstore","nativeSrc":"5873:6:88","nodeType":"YulIdentifier","src":"5873:6:88"},"nativeSrc":"5873:22:88","nodeType":"YulFunctionCall","src":"5873:22:88"},"nativeSrc":"5873:22:88","nodeType":"YulExpressionStatement","src":"5873:22:88"},{"nativeSrc":"5904:15:88","nodeType":"YulAssignment","src":"5904:15:88","value":{"name":"memPtr","nativeSrc":"5913:6:88","nodeType":"YulIdentifier","src":"5913:6:88"},"variableNames":[{"name":"array","nativeSrc":"5904:5:88","nodeType":"YulIdentifier","src":"5904:5:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5935:6:88","nodeType":"YulIdentifier","src":"5935:6:88"},{"name":"length","nativeSrc":"5943:6:88","nodeType":"YulIdentifier","src":"5943:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5928:6:88","nodeType":"YulIdentifier","src":"5928:6:88"},"nativeSrc":"5928:22:88","nodeType":"YulFunctionCall","src":"5928:22:88"},"nativeSrc":"5928:22:88","nodeType":"YulExpressionStatement","src":"5928:22:88"},{"body":{"nativeSrc":"5988:16:88","nodeType":"YulBlock","src":"5988:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5997:1:88","nodeType":"YulLiteral","src":"5997:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6000:1:88","nodeType":"YulLiteral","src":"6000:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5990:6:88","nodeType":"YulIdentifier","src":"5990:6:88"},"nativeSrc":"5990:12:88","nodeType":"YulFunctionCall","src":"5990:12:88"},"nativeSrc":"5990:12:88","nodeType":"YulExpressionStatement","src":"5990:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5969:3:88","nodeType":"YulIdentifier","src":"5969:3:88"},{"name":"length","nativeSrc":"5974:6:88","nodeType":"YulIdentifier","src":"5974:6:88"}],"functionName":{"name":"add","nativeSrc":"5965:3:88","nodeType":"YulIdentifier","src":"5965:3:88"},"nativeSrc":"5965:16:88","nodeType":"YulFunctionCall","src":"5965:16:88"},{"name":"end","nativeSrc":"5983:3:88","nodeType":"YulIdentifier","src":"5983:3:88"}],"functionName":{"name":"gt","nativeSrc":"5962:2:88","nodeType":"YulIdentifier","src":"5962:2:88"},"nativeSrc":"5962:25:88","nodeType":"YulFunctionCall","src":"5962:25:88"},"nativeSrc":"5959:45:88","nodeType":"YulIf","src":"5959:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6030:6:88","nodeType":"YulIdentifier","src":"6030:6:88"},{"kind":"number","nativeSrc":"6038:4:88","nodeType":"YulLiteral","src":"6038:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6026:3:88","nodeType":"YulIdentifier","src":"6026:3:88"},"nativeSrc":"6026:17:88","nodeType":"YulFunctionCall","src":"6026:17:88"},{"name":"src","nativeSrc":"6045:3:88","nodeType":"YulIdentifier","src":"6045:3:88"},{"name":"length","nativeSrc":"6050:6:88","nodeType":"YulIdentifier","src":"6050:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"6013:12:88","nodeType":"YulIdentifier","src":"6013:12:88"},"nativeSrc":"6013:44:88","nodeType":"YulFunctionCall","src":"6013:44:88"},"nativeSrc":"6013:44:88","nodeType":"YulExpressionStatement","src":"6013:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6081:6:88","nodeType":"YulIdentifier","src":"6081:6:88"},{"name":"length","nativeSrc":"6089:6:88","nodeType":"YulIdentifier","src":"6089:6:88"}],"functionName":{"name":"add","nativeSrc":"6077:3:88","nodeType":"YulIdentifier","src":"6077:3:88"},"nativeSrc":"6077:19:88","nodeType":"YulFunctionCall","src":"6077:19:88"},{"kind":"number","nativeSrc":"6098:4:88","nodeType":"YulLiteral","src":"6098:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6073:3:88","nodeType":"YulIdentifier","src":"6073:3:88"},"nativeSrc":"6073:30:88","nodeType":"YulFunctionCall","src":"6073:30:88"},{"kind":"number","nativeSrc":"6105:1:88","nodeType":"YulLiteral","src":"6105:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6066:6:88","nodeType":"YulIdentifier","src":"6066:6:88"},"nativeSrc":"6066:41:88","nodeType":"YulFunctionCall","src":"6066:41:88"},"nativeSrc":"6066:41:88","nodeType":"YulExpressionStatement","src":"6066:41:88"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"5398:715:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5441:3:88","nodeType":"YulTypedName","src":"5441:3:88","type":""},{"name":"length","nativeSrc":"5446:6:88","nodeType":"YulTypedName","src":"5446:6:88","type":""},{"name":"end","nativeSrc":"5454:3:88","nodeType":"YulTypedName","src":"5454:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"5462:5:88","nodeType":"YulTypedName","src":"5462:5:88","type":""}],"src":"5398:715:88"},{"body":{"nativeSrc":"6214:488:88","nodeType":"YulBlock","src":"6214:488:88","statements":[{"body":{"nativeSrc":"6260:16:88","nodeType":"YulBlock","src":"6260:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6269:1:88","nodeType":"YulLiteral","src":"6269:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6272:1:88","nodeType":"YulLiteral","src":"6272:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6262:6:88","nodeType":"YulIdentifier","src":"6262:6:88"},"nativeSrc":"6262:12:88","nodeType":"YulFunctionCall","src":"6262:12:88"},"nativeSrc":"6262:12:88","nodeType":"YulExpressionStatement","src":"6262:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6235:7:88","nodeType":"YulIdentifier","src":"6235:7:88"},{"name":"headStart","nativeSrc":"6244:9:88","nodeType":"YulIdentifier","src":"6244:9:88"}],"functionName":{"name":"sub","nativeSrc":"6231:3:88","nodeType":"YulIdentifier","src":"6231:3:88"},"nativeSrc":"6231:23:88","nodeType":"YulFunctionCall","src":"6231:23:88"},{"kind":"number","nativeSrc":"6256:2:88","nodeType":"YulLiteral","src":"6256:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6227:3:88","nodeType":"YulIdentifier","src":"6227:3:88"},"nativeSrc":"6227:32:88","nodeType":"YulFunctionCall","src":"6227:32:88"},"nativeSrc":"6224:52:88","nodeType":"YulIf","src":"6224:52:88"},{"nativeSrc":"6285:36:88","nodeType":"YulVariableDeclaration","src":"6285:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6311:9:88","nodeType":"YulIdentifier","src":"6311:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"6298:12:88","nodeType":"YulIdentifier","src":"6298:12:88"},"nativeSrc":"6298:23:88","nodeType":"YulFunctionCall","src":"6298:23:88"},"variables":[{"name":"value","nativeSrc":"6289:5:88","nodeType":"YulTypedName","src":"6289:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6355:5:88","nodeType":"YulIdentifier","src":"6355:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6330:24:88","nodeType":"YulIdentifier","src":"6330:24:88"},"nativeSrc":"6330:31:88","nodeType":"YulFunctionCall","src":"6330:31:88"},"nativeSrc":"6330:31:88","nodeType":"YulExpressionStatement","src":"6330:31:88"},{"nativeSrc":"6370:15:88","nodeType":"YulAssignment","src":"6370:15:88","value":{"name":"value","nativeSrc":"6380:5:88","nodeType":"YulIdentifier","src":"6380:5:88"},"variableNames":[{"name":"value0","nativeSrc":"6370:6:88","nodeType":"YulIdentifier","src":"6370:6:88"}]},{"nativeSrc":"6394:46:88","nodeType":"YulVariableDeclaration","src":"6394:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6425:9:88","nodeType":"YulIdentifier","src":"6425:9:88"},{"kind":"number","nativeSrc":"6436:2:88","nodeType":"YulLiteral","src":"6436:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6421:3:88","nodeType":"YulIdentifier","src":"6421:3:88"},"nativeSrc":"6421:18:88","nodeType":"YulFunctionCall","src":"6421:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6408:12:88","nodeType":"YulIdentifier","src":"6408:12:88"},"nativeSrc":"6408:32:88","nodeType":"YulFunctionCall","src":"6408:32:88"},"variables":[{"name":"offset","nativeSrc":"6398:6:88","nodeType":"YulTypedName","src":"6398:6:88","type":""}]},{"body":{"nativeSrc":"6483:16:88","nodeType":"YulBlock","src":"6483:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6492:1:88","nodeType":"YulLiteral","src":"6492:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6495:1:88","nodeType":"YulLiteral","src":"6495:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6485:6:88","nodeType":"YulIdentifier","src":"6485:6:88"},"nativeSrc":"6485:12:88","nodeType":"YulFunctionCall","src":"6485:12:88"},"nativeSrc":"6485:12:88","nodeType":"YulExpressionStatement","src":"6485:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6455:6:88","nodeType":"YulIdentifier","src":"6455:6:88"},{"kind":"number","nativeSrc":"6463:18:88","nodeType":"YulLiteral","src":"6463:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6452:2:88","nodeType":"YulIdentifier","src":"6452:2:88"},"nativeSrc":"6452:30:88","nodeType":"YulFunctionCall","src":"6452:30:88"},"nativeSrc":"6449:50:88","nodeType":"YulIf","src":"6449:50:88"},{"nativeSrc":"6508:32:88","nodeType":"YulVariableDeclaration","src":"6508:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6522:9:88","nodeType":"YulIdentifier","src":"6522:9:88"},{"name":"offset","nativeSrc":"6533:6:88","nodeType":"YulIdentifier","src":"6533:6:88"}],"functionName":{"name":"add","nativeSrc":"6518:3:88","nodeType":"YulIdentifier","src":"6518:3:88"},"nativeSrc":"6518:22:88","nodeType":"YulFunctionCall","src":"6518:22:88"},"variables":[{"name":"_1","nativeSrc":"6512:2:88","nodeType":"YulTypedName","src":"6512:2:88","type":""}]},{"body":{"nativeSrc":"6588:16:88","nodeType":"YulBlock","src":"6588:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6597:1:88","nodeType":"YulLiteral","src":"6597:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6600:1:88","nodeType":"YulLiteral","src":"6600:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6590:6:88","nodeType":"YulIdentifier","src":"6590:6:88"},"nativeSrc":"6590:12:88","nodeType":"YulFunctionCall","src":"6590:12:88"},"nativeSrc":"6590:12:88","nodeType":"YulExpressionStatement","src":"6590:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6567:2:88","nodeType":"YulIdentifier","src":"6567:2:88"},{"kind":"number","nativeSrc":"6571:4:88","nodeType":"YulLiteral","src":"6571:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6563:3:88","nodeType":"YulIdentifier","src":"6563:3:88"},"nativeSrc":"6563:13:88","nodeType":"YulFunctionCall","src":"6563:13:88"},{"name":"dataEnd","nativeSrc":"6578:7:88","nodeType":"YulIdentifier","src":"6578:7:88"}],"functionName":{"name":"slt","nativeSrc":"6559:3:88","nodeType":"YulIdentifier","src":"6559:3:88"},"nativeSrc":"6559:27:88","nodeType":"YulFunctionCall","src":"6559:27:88"}],"functionName":{"name":"iszero","nativeSrc":"6552:6:88","nodeType":"YulIdentifier","src":"6552:6:88"},"nativeSrc":"6552:35:88","nodeType":"YulFunctionCall","src":"6552:35:88"},"nativeSrc":"6549:55:88","nodeType":"YulIf","src":"6549:55:88"},{"nativeSrc":"6613:83:88","nodeType":"YulAssignment","src":"6613:83:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6661:2:88","nodeType":"YulIdentifier","src":"6661:2:88"},{"kind":"number","nativeSrc":"6665:2:88","nodeType":"YulLiteral","src":"6665:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6657:3:88","nodeType":"YulIdentifier","src":"6657:3:88"},"nativeSrc":"6657:11:88","nodeType":"YulFunctionCall","src":"6657:11:88"},{"arguments":[{"name":"_1","nativeSrc":"6683:2:88","nodeType":"YulIdentifier","src":"6683:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"6670:12:88","nodeType":"YulIdentifier","src":"6670:12:88"},"nativeSrc":"6670:16:88","nodeType":"YulFunctionCall","src":"6670:16:88"},{"name":"dataEnd","nativeSrc":"6688:7:88","nodeType":"YulIdentifier","src":"6688:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"6623:33:88","nodeType":"YulIdentifier","src":"6623:33:88"},"nativeSrc":"6623:73:88","nodeType":"YulFunctionCall","src":"6623:73:88"},"variableNames":[{"name":"value1","nativeSrc":"6613:6:88","nodeType":"YulIdentifier","src":"6613:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"6118:584:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6172:9:88","nodeType":"YulTypedName","src":"6172:9:88","type":""},{"name":"dataEnd","nativeSrc":"6183:7:88","nodeType":"YulTypedName","src":"6183:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6195:6:88","nodeType":"YulTypedName","src":"6195:6:88","type":""},{"name":"value1","nativeSrc":"6203:6:88","nodeType":"YulTypedName","src":"6203:6:88","type":""}],"src":"6118:584:88"},{"body":{"nativeSrc":"6808:102:88","nodeType":"YulBlock","src":"6808:102:88","statements":[{"nativeSrc":"6818:26:88","nodeType":"YulAssignment","src":"6818:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6830:9:88","nodeType":"YulIdentifier","src":"6830:9:88"},{"kind":"number","nativeSrc":"6841:2:88","nodeType":"YulLiteral","src":"6841:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6826:3:88","nodeType":"YulIdentifier","src":"6826:3:88"},"nativeSrc":"6826:18:88","nodeType":"YulFunctionCall","src":"6826:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6818:4:88","nodeType":"YulIdentifier","src":"6818:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6860:9:88","nodeType":"YulIdentifier","src":"6860:9:88"},{"arguments":[{"name":"value0","nativeSrc":"6875:6:88","nodeType":"YulIdentifier","src":"6875:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6891:3:88","nodeType":"YulLiteral","src":"6891:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6896:1:88","nodeType":"YulLiteral","src":"6896:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6887:3:88","nodeType":"YulIdentifier","src":"6887:3:88"},"nativeSrc":"6887:11:88","nodeType":"YulFunctionCall","src":"6887:11:88"},{"kind":"number","nativeSrc":"6900:1:88","nodeType":"YulLiteral","src":"6900:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6883:3:88","nodeType":"YulIdentifier","src":"6883:3:88"},"nativeSrc":"6883:19:88","nodeType":"YulFunctionCall","src":"6883:19:88"}],"functionName":{"name":"and","nativeSrc":"6871:3:88","nodeType":"YulIdentifier","src":"6871:3:88"},"nativeSrc":"6871:32:88","nodeType":"YulFunctionCall","src":"6871:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6853:6:88","nodeType":"YulIdentifier","src":"6853:6:88"},"nativeSrc":"6853:51:88","nodeType":"YulFunctionCall","src":"6853:51:88"},"nativeSrc":"6853:51:88","nodeType":"YulExpressionStatement","src":"6853:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6707:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6777:9:88","nodeType":"YulTypedName","src":"6777:9:88","type":""},{"name":"value0","nativeSrc":"6788:6:88","nodeType":"YulTypedName","src":"6788:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6799:4:88","nodeType":"YulTypedName","src":"6799:4:88","type":""}],"src":"6707:203:88"},{"body":{"nativeSrc":"7016:76:88","nodeType":"YulBlock","src":"7016:76:88","statements":[{"nativeSrc":"7026:26:88","nodeType":"YulAssignment","src":"7026:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7038:9:88","nodeType":"YulIdentifier","src":"7038:9:88"},{"kind":"number","nativeSrc":"7049:2:88","nodeType":"YulLiteral","src":"7049:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7034:3:88","nodeType":"YulIdentifier","src":"7034:3:88"},"nativeSrc":"7034:18:88","nodeType":"YulFunctionCall","src":"7034:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7026:4:88","nodeType":"YulIdentifier","src":"7026:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7068:9:88","nodeType":"YulIdentifier","src":"7068:9:88"},{"name":"value0","nativeSrc":"7079:6:88","nodeType":"YulIdentifier","src":"7079:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7061:6:88","nodeType":"YulIdentifier","src":"7061:6:88"},"nativeSrc":"7061:25:88","nodeType":"YulFunctionCall","src":"7061:25:88"},"nativeSrc":"7061:25:88","nodeType":"YulExpressionStatement","src":"7061:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6915:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6985:9:88","nodeType":"YulTypedName","src":"6985:9:88","type":""},{"name":"value0","nativeSrc":"6996:6:88","nodeType":"YulTypedName","src":"6996:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7007:4:88","nodeType":"YulTypedName","src":"7007:4:88","type":""}],"src":"6915:177:88"},{"body":{"nativeSrc":"7167:156:88","nodeType":"YulBlock","src":"7167:156:88","statements":[{"body":{"nativeSrc":"7213:16:88","nodeType":"YulBlock","src":"7213:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:88","nodeType":"YulLiteral","src":"7222:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:88","nodeType":"YulLiteral","src":"7225:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:88","nodeType":"YulIdentifier","src":"7215:6:88"},"nativeSrc":"7215:12:88","nodeType":"YulFunctionCall","src":"7215:12:88"},"nativeSrc":"7215:12:88","nodeType":"YulExpressionStatement","src":"7215:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7188:7:88","nodeType":"YulIdentifier","src":"7188:7:88"},{"name":"headStart","nativeSrc":"7197:9:88","nodeType":"YulIdentifier","src":"7197:9:88"}],"functionName":{"name":"sub","nativeSrc":"7184:3:88","nodeType":"YulIdentifier","src":"7184:3:88"},"nativeSrc":"7184:23:88","nodeType":"YulFunctionCall","src":"7184:23:88"},{"kind":"number","nativeSrc":"7209:2:88","nodeType":"YulLiteral","src":"7209:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7180:3:88","nodeType":"YulIdentifier","src":"7180:3:88"},"nativeSrc":"7180:32:88","nodeType":"YulFunctionCall","src":"7180:32:88"},"nativeSrc":"7177:52:88","nodeType":"YulIf","src":"7177:52:88"},{"nativeSrc":"7238:14:88","nodeType":"YulVariableDeclaration","src":"7238:14:88","value":{"kind":"number","nativeSrc":"7251:1:88","nodeType":"YulLiteral","src":"7251:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7242:5:88","nodeType":"YulTypedName","src":"7242:5:88","type":""}]},{"nativeSrc":"7261:32:88","nodeType":"YulAssignment","src":"7261:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7283:9:88","nodeType":"YulIdentifier","src":"7283:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7270:12:88","nodeType":"YulIdentifier","src":"7270:12:88"},"nativeSrc":"7270:23:88","nodeType":"YulFunctionCall","src":"7270:23:88"},"variableNames":[{"name":"value","nativeSrc":"7261:5:88","nodeType":"YulIdentifier","src":"7261:5:88"}]},{"nativeSrc":"7302:15:88","nodeType":"YulAssignment","src":"7302:15:88","value":{"name":"value","nativeSrc":"7312:5:88","nodeType":"YulIdentifier","src":"7312:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7302:6:88","nodeType":"YulIdentifier","src":"7302:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"7097:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7133:9:88","nodeType":"YulTypedName","src":"7133:9:88","type":""},{"name":"dataEnd","nativeSrc":"7144:7:88","nodeType":"YulTypedName","src":"7144:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7156:6:88","nodeType":"YulTypedName","src":"7156:6:88","type":""}],"src":"7097:226:88"},{"body":{"nativeSrc":"7510:1011:88","nodeType":"YulBlock","src":"7510:1011:88","statements":[{"body":{"nativeSrc":"7557:16:88","nodeType":"YulBlock","src":"7557:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7566:1:88","nodeType":"YulLiteral","src":"7566:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7569:1:88","nodeType":"YulLiteral","src":"7569:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7559:6:88","nodeType":"YulIdentifier","src":"7559:6:88"},"nativeSrc":"7559:12:88","nodeType":"YulFunctionCall","src":"7559:12:88"},"nativeSrc":"7559:12:88","nodeType":"YulExpressionStatement","src":"7559:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7531:7:88","nodeType":"YulIdentifier","src":"7531:7:88"},{"name":"headStart","nativeSrc":"7540:9:88","nodeType":"YulIdentifier","src":"7540:9:88"}],"functionName":{"name":"sub","nativeSrc":"7527:3:88","nodeType":"YulIdentifier","src":"7527:3:88"},"nativeSrc":"7527:23:88","nodeType":"YulFunctionCall","src":"7527:23:88"},{"kind":"number","nativeSrc":"7552:3:88","nodeType":"YulLiteral","src":"7552:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"7523:3:88","nodeType":"YulIdentifier","src":"7523:3:88"},"nativeSrc":"7523:33:88","nodeType":"YulFunctionCall","src":"7523:33:88"},"nativeSrc":"7520:53:88","nodeType":"YulIf","src":"7520:53:88"},{"nativeSrc":"7582:37:88","nodeType":"YulVariableDeclaration","src":"7582:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7609:9:88","nodeType":"YulIdentifier","src":"7609:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7596:12:88","nodeType":"YulIdentifier","src":"7596:12:88"},"nativeSrc":"7596:23:88","nodeType":"YulFunctionCall","src":"7596:23:88"},"variables":[{"name":"offset","nativeSrc":"7586:6:88","nodeType":"YulTypedName","src":"7586:6:88","type":""}]},{"body":{"nativeSrc":"7662:16:88","nodeType":"YulBlock","src":"7662:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7671:1:88","nodeType":"YulLiteral","src":"7671:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7674:1:88","nodeType":"YulLiteral","src":"7674:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7664:6:88","nodeType":"YulIdentifier","src":"7664:6:88"},"nativeSrc":"7664:12:88","nodeType":"YulFunctionCall","src":"7664:12:88"},"nativeSrc":"7664:12:88","nodeType":"YulExpressionStatement","src":"7664:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7634:6:88","nodeType":"YulIdentifier","src":"7634:6:88"},{"kind":"number","nativeSrc":"7642:18:88","nodeType":"YulLiteral","src":"7642:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7631:2:88","nodeType":"YulIdentifier","src":"7631:2:88"},"nativeSrc":"7631:30:88","nodeType":"YulFunctionCall","src":"7631:30:88"},"nativeSrc":"7628:50:88","nodeType":"YulIf","src":"7628:50:88"},{"nativeSrc":"7687:32:88","nodeType":"YulVariableDeclaration","src":"7687:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7701:9:88","nodeType":"YulIdentifier","src":"7701:9:88"},{"name":"offset","nativeSrc":"7712:6:88","nodeType":"YulIdentifier","src":"7712:6:88"}],"functionName":{"name":"add","nativeSrc":"7697:3:88","nodeType":"YulIdentifier","src":"7697:3:88"},"nativeSrc":"7697:22:88","nodeType":"YulFunctionCall","src":"7697:22:88"},"variables":[{"name":"_1","nativeSrc":"7691:2:88","nodeType":"YulTypedName","src":"7691:2:88","type":""}]},{"body":{"nativeSrc":"7767:16:88","nodeType":"YulBlock","src":"7767:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7776:1:88","nodeType":"YulLiteral","src":"7776:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7779:1:88","nodeType":"YulLiteral","src":"7779:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7769:6:88","nodeType":"YulIdentifier","src":"7769:6:88"},"nativeSrc":"7769:12:88","nodeType":"YulFunctionCall","src":"7769:12:88"},"nativeSrc":"7769:12:88","nodeType":"YulExpressionStatement","src":"7769:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7746:2:88","nodeType":"YulIdentifier","src":"7746:2:88"},{"kind":"number","nativeSrc":"7750:4:88","nodeType":"YulLiteral","src":"7750:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7742:3:88","nodeType":"YulIdentifier","src":"7742:3:88"},"nativeSrc":"7742:13:88","nodeType":"YulFunctionCall","src":"7742:13:88"},{"name":"dataEnd","nativeSrc":"7757:7:88","nodeType":"YulIdentifier","src":"7757:7:88"}],"functionName":{"name":"slt","nativeSrc":"7738:3:88","nodeType":"YulIdentifier","src":"7738:3:88"},"nativeSrc":"7738:27:88","nodeType":"YulFunctionCall","src":"7738:27:88"}],"functionName":{"name":"iszero","nativeSrc":"7731:6:88","nodeType":"YulIdentifier","src":"7731:6:88"},"nativeSrc":"7731:35:88","nodeType":"YulFunctionCall","src":"7731:35:88"},"nativeSrc":"7728:55:88","nodeType":"YulIf","src":"7728:55:88"},{"nativeSrc":"7792:85:88","nodeType":"YulAssignment","src":"7792:85:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"7840:2:88","nodeType":"YulIdentifier","src":"7840:2:88"},{"kind":"number","nativeSrc":"7844:4:88","nodeType":"YulLiteral","src":"7844:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7836:3:88","nodeType":"YulIdentifier","src":"7836:3:88"},"nativeSrc":"7836:13:88","nodeType":"YulFunctionCall","src":"7836:13:88"},{"arguments":[{"name":"_1","nativeSrc":"7864:2:88","nodeType":"YulIdentifier","src":"7864:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"7851:12:88","nodeType":"YulIdentifier","src":"7851:12:88"},"nativeSrc":"7851:16:88","nodeType":"YulFunctionCall","src":"7851:16:88"},{"name":"dataEnd","nativeSrc":"7869:7:88","nodeType":"YulIdentifier","src":"7869:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"7802:33:88","nodeType":"YulIdentifier","src":"7802:33:88"},"nativeSrc":"7802:75:88","nodeType":"YulFunctionCall","src":"7802:75:88"},"variableNames":[{"name":"value0","nativeSrc":"7792:6:88","nodeType":"YulIdentifier","src":"7792:6:88"}]},{"nativeSrc":"7886:14:88","nodeType":"YulVariableDeclaration","src":"7886:14:88","value":{"kind":"number","nativeSrc":"7899:1:88","nodeType":"YulLiteral","src":"7899:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7890:5:88","nodeType":"YulTypedName","src":"7890:5:88","type":""}]},{"nativeSrc":"7909:43:88","nodeType":"YulAssignment","src":"7909:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7935:9:88","nodeType":"YulIdentifier","src":"7935:9:88"},{"kind":"number","nativeSrc":"7946:4:88","nodeType":"YulLiteral","src":"7946:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7931:3:88","nodeType":"YulIdentifier","src":"7931:3:88"},"nativeSrc":"7931:20:88","nodeType":"YulFunctionCall","src":"7931:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"7918:12:88","nodeType":"YulIdentifier","src":"7918:12:88"},"nativeSrc":"7918:34:88","nodeType":"YulFunctionCall","src":"7918:34:88"},"variableNames":[{"name":"value","nativeSrc":"7909:5:88","nodeType":"YulIdentifier","src":"7909:5:88"}]},{"nativeSrc":"7961:15:88","nodeType":"YulAssignment","src":"7961:15:88","value":{"name":"value","nativeSrc":"7971:5:88","nodeType":"YulIdentifier","src":"7971:5:88"},"variableNames":[{"name":"value1","nativeSrc":"7961:6:88","nodeType":"YulIdentifier","src":"7961:6:88"}]},{"nativeSrc":"7985:16:88","nodeType":"YulVariableDeclaration","src":"7985:16:88","value":{"kind":"number","nativeSrc":"8000:1:88","nodeType":"YulLiteral","src":"8000:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"7989:7:88","nodeType":"YulTypedName","src":"7989:7:88","type":""}]},{"nativeSrc":"8010:43:88","nodeType":"YulAssignment","src":"8010:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8038:9:88","nodeType":"YulIdentifier","src":"8038:9:88"},{"kind":"number","nativeSrc":"8049:2:88","nodeType":"YulLiteral","src":"8049:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8034:3:88","nodeType":"YulIdentifier","src":"8034:3:88"},"nativeSrc":"8034:18:88","nodeType":"YulFunctionCall","src":"8034:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8021:12:88","nodeType":"YulIdentifier","src":"8021:12:88"},"nativeSrc":"8021:32:88","nodeType":"YulFunctionCall","src":"8021:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8010:7:88","nodeType":"YulIdentifier","src":"8010:7:88"}]},{"nativeSrc":"8062:17:88","nodeType":"YulAssignment","src":"8062:17:88","value":{"name":"value_1","nativeSrc":"8072:7:88","nodeType":"YulIdentifier","src":"8072:7:88"},"variableNames":[{"name":"value2","nativeSrc":"8062:6:88","nodeType":"YulIdentifier","src":"8062:6:88"}]},{"nativeSrc":"8088:16:88","nodeType":"YulVariableDeclaration","src":"8088:16:88","value":{"kind":"number","nativeSrc":"8103:1:88","nodeType":"YulLiteral","src":"8103:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"8092:7:88","nodeType":"YulTypedName","src":"8092:7:88","type":""}]},{"nativeSrc":"8113:43:88","nodeType":"YulAssignment","src":"8113:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8141:9:88","nodeType":"YulIdentifier","src":"8141:9:88"},{"kind":"number","nativeSrc":"8152:2:88","nodeType":"YulLiteral","src":"8152:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8137:3:88","nodeType":"YulIdentifier","src":"8137:3:88"},"nativeSrc":"8137:18:88","nodeType":"YulFunctionCall","src":"8137:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8124:12:88","nodeType":"YulIdentifier","src":"8124:12:88"},"nativeSrc":"8124:32:88","nodeType":"YulFunctionCall","src":"8124:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"8113:7:88","nodeType":"YulIdentifier","src":"8113:7:88"}]},{"nativeSrc":"8165:17:88","nodeType":"YulAssignment","src":"8165:17:88","value":{"name":"value_2","nativeSrc":"8175:7:88","nodeType":"YulIdentifier","src":"8175:7:88"},"variableNames":[{"name":"value3","nativeSrc":"8165:6:88","nodeType":"YulIdentifier","src":"8165:6:88"}]},{"nativeSrc":"8191:16:88","nodeType":"YulVariableDeclaration","src":"8191:16:88","value":{"kind":"number","nativeSrc":"8206:1:88","nodeType":"YulLiteral","src":"8206:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"8195:7:88","nodeType":"YulTypedName","src":"8195:7:88","type":""}]},{"nativeSrc":"8216:44:88","nodeType":"YulAssignment","src":"8216:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8244:9:88","nodeType":"YulIdentifier","src":"8244:9:88"},{"kind":"number","nativeSrc":"8255:3:88","nodeType":"YulLiteral","src":"8255:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8240:3:88","nodeType":"YulIdentifier","src":"8240:3:88"},"nativeSrc":"8240:19:88","nodeType":"YulFunctionCall","src":"8240:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8227:12:88","nodeType":"YulIdentifier","src":"8227:12:88"},"nativeSrc":"8227:33:88","nodeType":"YulFunctionCall","src":"8227:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"8216:7:88","nodeType":"YulIdentifier","src":"8216:7:88"}]},{"nativeSrc":"8269:17:88","nodeType":"YulAssignment","src":"8269:17:88","value":{"name":"value_3","nativeSrc":"8279:7:88","nodeType":"YulIdentifier","src":"8279:7:88"},"variableNames":[{"name":"value4","nativeSrc":"8269:6:88","nodeType":"YulIdentifier","src":"8269:6:88"}]},{"nativeSrc":"8295:16:88","nodeType":"YulVariableDeclaration","src":"8295:16:88","value":{"kind":"number","nativeSrc":"8310:1:88","nodeType":"YulLiteral","src":"8310:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"8299:7:88","nodeType":"YulTypedName","src":"8299:7:88","type":""}]},{"nativeSrc":"8320:44:88","nodeType":"YulAssignment","src":"8320:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8348:9:88","nodeType":"YulIdentifier","src":"8348:9:88"},{"kind":"number","nativeSrc":"8359:3:88","nodeType":"YulLiteral","src":"8359:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8344:3:88","nodeType":"YulIdentifier","src":"8344:3:88"},"nativeSrc":"8344:19:88","nodeType":"YulFunctionCall","src":"8344:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8331:12:88","nodeType":"YulIdentifier","src":"8331:12:88"},"nativeSrc":"8331:33:88","nodeType":"YulFunctionCall","src":"8331:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"8320:7:88","nodeType":"YulIdentifier","src":"8320:7:88"}]},{"nativeSrc":"8373:17:88","nodeType":"YulAssignment","src":"8373:17:88","value":{"name":"value_4","nativeSrc":"8383:7:88","nodeType":"YulIdentifier","src":"8383:7:88"},"variableNames":[{"name":"value5","nativeSrc":"8373:6:88","nodeType":"YulIdentifier","src":"8373:6:88"}]},{"nativeSrc":"8399:48:88","nodeType":"YulVariableDeclaration","src":"8399:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8431:9:88","nodeType":"YulIdentifier","src":"8431:9:88"},{"kind":"number","nativeSrc":"8442:3:88","nodeType":"YulLiteral","src":"8442:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"8427:3:88","nodeType":"YulIdentifier","src":"8427:3:88"},"nativeSrc":"8427:19:88","nodeType":"YulFunctionCall","src":"8427:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8414:12:88","nodeType":"YulIdentifier","src":"8414:12:88"},"nativeSrc":"8414:33:88","nodeType":"YulFunctionCall","src":"8414:33:88"},"variables":[{"name":"value_5","nativeSrc":"8403:7:88","nodeType":"YulTypedName","src":"8403:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"8481:7:88","nodeType":"YulIdentifier","src":"8481:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8456:24:88","nodeType":"YulIdentifier","src":"8456:24:88"},"nativeSrc":"8456:33:88","nodeType":"YulFunctionCall","src":"8456:33:88"},"nativeSrc":"8456:33:88","nodeType":"YulExpressionStatement","src":"8456:33:88"},{"nativeSrc":"8498:17:88","nodeType":"YulAssignment","src":"8498:17:88","value":{"name":"value_5","nativeSrc":"8508:7:88","nodeType":"YulIdentifier","src":"8508:7:88"},"variableNames":[{"name":"value6","nativeSrc":"8498:6:88","nodeType":"YulIdentifier","src":"8498:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address","nativeSrc":"7328:1193:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7428:9:88","nodeType":"YulTypedName","src":"7428:9:88","type":""},{"name":"dataEnd","nativeSrc":"7439:7:88","nodeType":"YulTypedName","src":"7439:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7451:6:88","nodeType":"YulTypedName","src":"7451:6:88","type":""},{"name":"value1","nativeSrc":"7459:6:88","nodeType":"YulTypedName","src":"7459:6:88","type":""},{"name":"value2","nativeSrc":"7467:6:88","nodeType":"YulTypedName","src":"7467:6:88","type":""},{"name":"value3","nativeSrc":"7475:6:88","nodeType":"YulTypedName","src":"7475:6:88","type":""},{"name":"value4","nativeSrc":"7483:6:88","nodeType":"YulTypedName","src":"7483:6:88","type":""},{"name":"value5","nativeSrc":"7491:6:88","nodeType":"YulTypedName","src":"7491:6:88","type":""},{"name":"value6","nativeSrc":"7499:6:88","nodeType":"YulTypedName","src":"7499:6:88","type":""}],"src":"7328:1193:88"},{"body":{"nativeSrc":"8653:102:88","nodeType":"YulBlock","src":"8653:102:88","statements":[{"nativeSrc":"8663:26:88","nodeType":"YulAssignment","src":"8663:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8675:9:88","nodeType":"YulIdentifier","src":"8675:9:88"},{"kind":"number","nativeSrc":"8686:2:88","nodeType":"YulLiteral","src":"8686:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8671:3:88","nodeType":"YulIdentifier","src":"8671:3:88"},"nativeSrc":"8671:18:88","nodeType":"YulFunctionCall","src":"8671:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8663:4:88","nodeType":"YulIdentifier","src":"8663:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8705:9:88","nodeType":"YulIdentifier","src":"8705:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8720:6:88","nodeType":"YulIdentifier","src":"8720:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8736:3:88","nodeType":"YulLiteral","src":"8736:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8741:1:88","nodeType":"YulLiteral","src":"8741:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8732:3:88","nodeType":"YulIdentifier","src":"8732:3:88"},"nativeSrc":"8732:11:88","nodeType":"YulFunctionCall","src":"8732:11:88"},{"kind":"number","nativeSrc":"8745:1:88","nodeType":"YulLiteral","src":"8745:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8728:3:88","nodeType":"YulIdentifier","src":"8728:3:88"},"nativeSrc":"8728:19:88","nodeType":"YulFunctionCall","src":"8728:19:88"}],"functionName":{"name":"and","nativeSrc":"8716:3:88","nodeType":"YulIdentifier","src":"8716:3:88"},"nativeSrc":"8716:32:88","nodeType":"YulFunctionCall","src":"8716:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8698:6:88","nodeType":"YulIdentifier","src":"8698:6:88"},"nativeSrc":"8698:51:88","nodeType":"YulFunctionCall","src":"8698:51:88"},"nativeSrc":"8698:51:88","nodeType":"YulExpressionStatement","src":"8698:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed","nativeSrc":"8526:229:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8622:9:88","nodeType":"YulTypedName","src":"8622:9:88","type":""},{"name":"value0","nativeSrc":"8633:6:88","nodeType":"YulTypedName","src":"8633:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8644:4:88","nodeType":"YulTypedName","src":"8644:4:88","type":""}],"src":"8526:229:88"},{"body":{"nativeSrc":"8878:243:88","nodeType":"YulBlock","src":"8878:243:88","statements":[{"body":{"nativeSrc":"8925:16:88","nodeType":"YulBlock","src":"8925:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8934:1:88","nodeType":"YulLiteral","src":"8934:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8937:1:88","nodeType":"YulLiteral","src":"8937:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8927:6:88","nodeType":"YulIdentifier","src":"8927:6:88"},"nativeSrc":"8927:12:88","nodeType":"YulFunctionCall","src":"8927:12:88"},"nativeSrc":"8927:12:88","nodeType":"YulExpressionStatement","src":"8927:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8899:7:88","nodeType":"YulIdentifier","src":"8899:7:88"},{"name":"headStart","nativeSrc":"8908:9:88","nodeType":"YulIdentifier","src":"8908:9:88"}],"functionName":{"name":"sub","nativeSrc":"8895:3:88","nodeType":"YulIdentifier","src":"8895:3:88"},"nativeSrc":"8895:23:88","nodeType":"YulFunctionCall","src":"8895:23:88"},{"kind":"number","nativeSrc":"8920:3:88","nodeType":"YulLiteral","src":"8920:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"8891:3:88","nodeType":"YulIdentifier","src":"8891:3:88"},"nativeSrc":"8891:33:88","nodeType":"YulFunctionCall","src":"8891:33:88"},"nativeSrc":"8888:53:88","nodeType":"YulIf","src":"8888:53:88"},{"nativeSrc":"8950:67:88","nodeType":"YulAssignment","src":"8950:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8998:9:88","nodeType":"YulIdentifier","src":"8998:9:88"},{"name":"dataEnd","nativeSrc":"9009:7:88","nodeType":"YulIdentifier","src":"9009:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"8960:37:88","nodeType":"YulIdentifier","src":"8960:37:88"},"nativeSrc":"8960:57:88","nodeType":"YulFunctionCall","src":"8960:57:88"},"variableNames":[{"name":"value0","nativeSrc":"8950:6:88","nodeType":"YulIdentifier","src":"8950:6:88"}]},{"nativeSrc":"9026:14:88","nodeType":"YulVariableDeclaration","src":"9026:14:88","value":{"kind":"number","nativeSrc":"9039:1:88","nodeType":"YulLiteral","src":"9039:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9030:5:88","nodeType":"YulTypedName","src":"9030:5:88","type":""}]},{"nativeSrc":"9049:42:88","nodeType":"YulAssignment","src":"9049:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9075:9:88","nodeType":"YulIdentifier","src":"9075:9:88"},{"kind":"number","nativeSrc":"9086:3:88","nodeType":"YulLiteral","src":"9086:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"9071:3:88","nodeType":"YulIdentifier","src":"9071:3:88"},"nativeSrc":"9071:19:88","nodeType":"YulFunctionCall","src":"9071:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9058:12:88","nodeType":"YulIdentifier","src":"9058:12:88"},"nativeSrc":"9058:33:88","nodeType":"YulFunctionCall","src":"9058:33:88"},"variableNames":[{"name":"value","nativeSrc":"9049:5:88","nodeType":"YulIdentifier","src":"9049:5:88"}]},{"nativeSrc":"9100:15:88","nodeType":"YulAssignment","src":"9100:15:88","value":{"name":"value","nativeSrc":"9110:5:88","nodeType":"YulIdentifier","src":"9110:5:88"},"variableNames":[{"name":"value1","nativeSrc":"9100:6:88","nodeType":"YulIdentifier","src":"9100:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"8760:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8836:9:88","nodeType":"YulTypedName","src":"8836:9:88","type":""},{"name":"dataEnd","nativeSrc":"8847:7:88","nodeType":"YulTypedName","src":"8847:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8859:6:88","nodeType":"YulTypedName","src":"8859:6:88","type":""},{"name":"value1","nativeSrc":"8867:6:88","nodeType":"YulTypedName","src":"8867:6:88","type":""}],"src":"8760:361:88"},{"body":{"nativeSrc":"9229:315:88","nodeType":"YulBlock","src":"9229:315:88","statements":[{"body":{"nativeSrc":"9275:16:88","nodeType":"YulBlock","src":"9275:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9284:1:88","nodeType":"YulLiteral","src":"9284:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9287:1:88","nodeType":"YulLiteral","src":"9287:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9277:6:88","nodeType":"YulIdentifier","src":"9277:6:88"},"nativeSrc":"9277:12:88","nodeType":"YulFunctionCall","src":"9277:12:88"},"nativeSrc":"9277:12:88","nodeType":"YulExpressionStatement","src":"9277:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9250:7:88","nodeType":"YulIdentifier","src":"9250:7:88"},{"name":"headStart","nativeSrc":"9259:9:88","nodeType":"YulIdentifier","src":"9259:9:88"}],"functionName":{"name":"sub","nativeSrc":"9246:3:88","nodeType":"YulIdentifier","src":"9246:3:88"},"nativeSrc":"9246:23:88","nodeType":"YulFunctionCall","src":"9246:23:88"},{"kind":"number","nativeSrc":"9271:2:88","nodeType":"YulLiteral","src":"9271:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"9242:3:88","nodeType":"YulIdentifier","src":"9242:3:88"},"nativeSrc":"9242:32:88","nodeType":"YulFunctionCall","src":"9242:32:88"},"nativeSrc":"9239:52:88","nodeType":"YulIf","src":"9239:52:88"},{"nativeSrc":"9300:14:88","nodeType":"YulVariableDeclaration","src":"9300:14:88","value":{"kind":"number","nativeSrc":"9313:1:88","nodeType":"YulLiteral","src":"9313:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9304:5:88","nodeType":"YulTypedName","src":"9304:5:88","type":""}]},{"nativeSrc":"9323:32:88","nodeType":"YulAssignment","src":"9323:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9345:9:88","nodeType":"YulIdentifier","src":"9345:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9332:12:88","nodeType":"YulIdentifier","src":"9332:12:88"},"nativeSrc":"9332:23:88","nodeType":"YulFunctionCall","src":"9332:23:88"},"variableNames":[{"name":"value","nativeSrc":"9323:5:88","nodeType":"YulIdentifier","src":"9323:5:88"}]},{"nativeSrc":"9364:15:88","nodeType":"YulAssignment","src":"9364:15:88","value":{"name":"value","nativeSrc":"9374:5:88","nodeType":"YulIdentifier","src":"9374:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9364:6:88","nodeType":"YulIdentifier","src":"9364:6:88"}]},{"nativeSrc":"9388:16:88","nodeType":"YulVariableDeclaration","src":"9388:16:88","value":{"kind":"number","nativeSrc":"9403:1:88","nodeType":"YulLiteral","src":"9403:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9392:7:88","nodeType":"YulTypedName","src":"9392:7:88","type":""}]},{"nativeSrc":"9413:43:88","nodeType":"YulAssignment","src":"9413:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9441:9:88","nodeType":"YulIdentifier","src":"9441:9:88"},{"kind":"number","nativeSrc":"9452:2:88","nodeType":"YulLiteral","src":"9452:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9437:3:88","nodeType":"YulIdentifier","src":"9437:3:88"},"nativeSrc":"9437:18:88","nodeType":"YulFunctionCall","src":"9437:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9424:12:88","nodeType":"YulIdentifier","src":"9424:12:88"},"nativeSrc":"9424:32:88","nodeType":"YulFunctionCall","src":"9424:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9413:7:88","nodeType":"YulIdentifier","src":"9413:7:88"}]},{"nativeSrc":"9465:17:88","nodeType":"YulAssignment","src":"9465:17:88","value":{"name":"value_1","nativeSrc":"9475:7:88","nodeType":"YulIdentifier","src":"9475:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9465:6:88","nodeType":"YulIdentifier","src":"9465:6:88"}]},{"nativeSrc":"9491:47:88","nodeType":"YulAssignment","src":"9491:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9523:9:88","nodeType":"YulIdentifier","src":"9523:9:88"},{"kind":"number","nativeSrc":"9534:2:88","nodeType":"YulLiteral","src":"9534:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9519:3:88","nodeType":"YulIdentifier","src":"9519:3:88"},"nativeSrc":"9519:18:88","nodeType":"YulFunctionCall","src":"9519:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"9501:17:88","nodeType":"YulIdentifier","src":"9501:17:88"},"nativeSrc":"9501:37:88","nodeType":"YulFunctionCall","src":"9501:37:88"},"variableNames":[{"name":"value2","nativeSrc":"9491:6:88","nodeType":"YulIdentifier","src":"9491:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40","nativeSrc":"9126:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9179:9:88","nodeType":"YulTypedName","src":"9179:9:88","type":""},{"name":"dataEnd","nativeSrc":"9190:7:88","nodeType":"YulTypedName","src":"9190:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9202:6:88","nodeType":"YulTypedName","src":"9202:6:88","type":""},{"name":"value1","nativeSrc":"9210:6:88","nodeType":"YulTypedName","src":"9210:6:88","type":""},{"name":"value2","nativeSrc":"9218:6:88","nodeType":"YulTypedName","src":"9218:6:88","type":""}],"src":"9126:418:88"},{"body":{"nativeSrc":"9651:290:88","nodeType":"YulBlock","src":"9651:290:88","statements":[{"body":{"nativeSrc":"9697:16:88","nodeType":"YulBlock","src":"9697:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9706:1:88","nodeType":"YulLiteral","src":"9706:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9709:1:88","nodeType":"YulLiteral","src":"9709:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9699:6:88","nodeType":"YulIdentifier","src":"9699:6:88"},"nativeSrc":"9699:12:88","nodeType":"YulFunctionCall","src":"9699:12:88"},"nativeSrc":"9699:12:88","nodeType":"YulExpressionStatement","src":"9699:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9672:7:88","nodeType":"YulIdentifier","src":"9672:7:88"},{"name":"headStart","nativeSrc":"9681:9:88","nodeType":"YulIdentifier","src":"9681:9:88"}],"functionName":{"name":"sub","nativeSrc":"9668:3:88","nodeType":"YulIdentifier","src":"9668:3:88"},"nativeSrc":"9668:23:88","nodeType":"YulFunctionCall","src":"9668:23:88"},{"kind":"number","nativeSrc":"9693:2:88","nodeType":"YulLiteral","src":"9693:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9664:3:88","nodeType":"YulIdentifier","src":"9664:3:88"},"nativeSrc":"9664:32:88","nodeType":"YulFunctionCall","src":"9664:32:88"},"nativeSrc":"9661:52:88","nodeType":"YulIf","src":"9661:52:88"},{"nativeSrc":"9722:36:88","nodeType":"YulVariableDeclaration","src":"9722:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9748:9:88","nodeType":"YulIdentifier","src":"9748:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9735:12:88","nodeType":"YulIdentifier","src":"9735:12:88"},"nativeSrc":"9735:23:88","nodeType":"YulFunctionCall","src":"9735:23:88"},"variables":[{"name":"value","nativeSrc":"9726:5:88","nodeType":"YulTypedName","src":"9726:5:88","type":""}]},{"body":{"nativeSrc":"9792:16:88","nodeType":"YulBlock","src":"9792:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9801:1:88","nodeType":"YulLiteral","src":"9801:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9804:1:88","nodeType":"YulLiteral","src":"9804:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9794:6:88","nodeType":"YulIdentifier","src":"9794:6:88"},"nativeSrc":"9794:12:88","nodeType":"YulFunctionCall","src":"9794:12:88"},"nativeSrc":"9794:12:88","nodeType":"YulExpressionStatement","src":"9794:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9780:5:88","nodeType":"YulIdentifier","src":"9780:5:88"},{"kind":"number","nativeSrc":"9787:2:88","nodeType":"YulLiteral","src":"9787:2:88","type":"","value":"10"}],"functionName":{"name":"lt","nativeSrc":"9777:2:88","nodeType":"YulIdentifier","src":"9777:2:88"},"nativeSrc":"9777:13:88","nodeType":"YulFunctionCall","src":"9777:13:88"}],"functionName":{"name":"iszero","nativeSrc":"9770:6:88","nodeType":"YulIdentifier","src":"9770:6:88"},"nativeSrc":"9770:21:88","nodeType":"YulFunctionCall","src":"9770:21:88"},"nativeSrc":"9767:41:88","nodeType":"YulIf","src":"9767:41:88"},{"nativeSrc":"9817:15:88","nodeType":"YulAssignment","src":"9817:15:88","value":{"name":"value","nativeSrc":"9827:5:88","nodeType":"YulIdentifier","src":"9827:5:88"},"variableNames":[{"name":"value0","nativeSrc":"9817:6:88","nodeType":"YulIdentifier","src":"9817:6:88"}]},{"nativeSrc":"9841:16:88","nodeType":"YulVariableDeclaration","src":"9841:16:88","value":{"kind":"number","nativeSrc":"9856:1:88","nodeType":"YulLiteral","src":"9856:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9845:7:88","nodeType":"YulTypedName","src":"9845:7:88","type":""}]},{"nativeSrc":"9866:43:88","nodeType":"YulAssignment","src":"9866:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:88","nodeType":"YulIdentifier","src":"9894:9:88"},{"kind":"number","nativeSrc":"9905:2:88","nodeType":"YulLiteral","src":"9905:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9890:3:88","nodeType":"YulIdentifier","src":"9890:3:88"},"nativeSrc":"9890:18:88","nodeType":"YulFunctionCall","src":"9890:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9877:12:88","nodeType":"YulIdentifier","src":"9877:12:88"},"nativeSrc":"9877:32:88","nodeType":"YulFunctionCall","src":"9877:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"9866:7:88","nodeType":"YulIdentifier","src":"9866:7:88"}]},{"nativeSrc":"9918:17:88","nodeType":"YulAssignment","src":"9918:17:88","value":{"name":"value_1","nativeSrc":"9928:7:88","nodeType":"YulIdentifier","src":"9928:7:88"},"variableNames":[{"name":"value1","nativeSrc":"9918:6:88","nodeType":"YulIdentifier","src":"9918:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256","nativeSrc":"9549:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9609:9:88","nodeType":"YulTypedName","src":"9609:9:88","type":""},{"name":"dataEnd","nativeSrc":"9620:7:88","nodeType":"YulTypedName","src":"9620:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9632:6:88","nodeType":"YulTypedName","src":"9632:6:88","type":""},{"name":"value1","nativeSrc":"9640:6:88","nodeType":"YulTypedName","src":"9640:6:88","type":""}],"src":"9549:392:88"},{"body":{"nativeSrc":"10097:462:88","nodeType":"YulBlock","src":"10097:462:88","statements":[{"nativeSrc":"10107:27:88","nodeType":"YulAssignment","src":"10107:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10119:9:88","nodeType":"YulIdentifier","src":"10119:9:88"},{"kind":"number","nativeSrc":"10130:3:88","nodeType":"YulLiteral","src":"10130:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10115:3:88","nodeType":"YulIdentifier","src":"10115:3:88"},"nativeSrc":"10115:19:88","nodeType":"YulFunctionCall","src":"10115:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10107:4:88","nodeType":"YulIdentifier","src":"10107:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10150:9:88","nodeType":"YulIdentifier","src":"10150:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10167:6:88","nodeType":"YulIdentifier","src":"10167:6:88"}],"functionName":{"name":"mload","nativeSrc":"10161:5:88","nodeType":"YulIdentifier","src":"10161:5:88"},"nativeSrc":"10161:13:88","nodeType":"YulFunctionCall","src":"10161:13:88"}],"functionName":{"name":"mstore","nativeSrc":"10143:6:88","nodeType":"YulIdentifier","src":"10143:6:88"},"nativeSrc":"10143:32:88","nodeType":"YulFunctionCall","src":"10143:32:88"},"nativeSrc":"10143:32:88","nodeType":"YulExpressionStatement","src":"10143:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:88","nodeType":"YulIdentifier","src":"10195:9:88"},{"kind":"number","nativeSrc":"10206:4:88","nodeType":"YulLiteral","src":"10206:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10191:3:88","nodeType":"YulIdentifier","src":"10191:3:88"},"nativeSrc":"10191:20:88","nodeType":"YulFunctionCall","src":"10191:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10223:6:88","nodeType":"YulIdentifier","src":"10223:6:88"},{"kind":"number","nativeSrc":"10231:4:88","nodeType":"YulLiteral","src":"10231:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10219:3:88","nodeType":"YulIdentifier","src":"10219:3:88"},"nativeSrc":"10219:17:88","nodeType":"YulFunctionCall","src":"10219:17:88"}],"functionName":{"name":"mload","nativeSrc":"10213:5:88","nodeType":"YulIdentifier","src":"10213:5:88"},"nativeSrc":"10213:24:88","nodeType":"YulFunctionCall","src":"10213:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10184:6:88","nodeType":"YulIdentifier","src":"10184:6:88"},"nativeSrc":"10184:54:88","nodeType":"YulFunctionCall","src":"10184:54:88"},"nativeSrc":"10184:54:88","nodeType":"YulExpressionStatement","src":"10184:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10258:9:88","nodeType":"YulIdentifier","src":"10258:9:88"},{"kind":"number","nativeSrc":"10269:4:88","nodeType":"YulLiteral","src":"10269:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10254:3:88","nodeType":"YulIdentifier","src":"10254:3:88"},"nativeSrc":"10254:20:88","nodeType":"YulFunctionCall","src":"10254:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10286:6:88","nodeType":"YulIdentifier","src":"10286:6:88"},{"kind":"number","nativeSrc":"10294:4:88","nodeType":"YulLiteral","src":"10294:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10282:3:88","nodeType":"YulIdentifier","src":"10282:3:88"},"nativeSrc":"10282:17:88","nodeType":"YulFunctionCall","src":"10282:17:88"}],"functionName":{"name":"mload","nativeSrc":"10276:5:88","nodeType":"YulIdentifier","src":"10276:5:88"},"nativeSrc":"10276:24:88","nodeType":"YulFunctionCall","src":"10276:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10247:6:88","nodeType":"YulIdentifier","src":"10247:6:88"},"nativeSrc":"10247:54:88","nodeType":"YulFunctionCall","src":"10247:54:88"},"nativeSrc":"10247:54:88","nodeType":"YulExpressionStatement","src":"10247:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10321:9:88","nodeType":"YulIdentifier","src":"10321:9:88"},{"kind":"number","nativeSrc":"10332:4:88","nodeType":"YulLiteral","src":"10332:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10317:3:88","nodeType":"YulIdentifier","src":"10317:3:88"},"nativeSrc":"10317:20:88","nodeType":"YulFunctionCall","src":"10317:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10349:6:88","nodeType":"YulIdentifier","src":"10349:6:88"},{"kind":"number","nativeSrc":"10357:4:88","nodeType":"YulLiteral","src":"10357:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10345:3:88","nodeType":"YulIdentifier","src":"10345:3:88"},"nativeSrc":"10345:17:88","nodeType":"YulFunctionCall","src":"10345:17:88"}],"functionName":{"name":"mload","nativeSrc":"10339:5:88","nodeType":"YulIdentifier","src":"10339:5:88"},"nativeSrc":"10339:24:88","nodeType":"YulFunctionCall","src":"10339:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10310:6:88","nodeType":"YulIdentifier","src":"10310:6:88"},"nativeSrc":"10310:54:88","nodeType":"YulFunctionCall","src":"10310:54:88"},"nativeSrc":"10310:54:88","nodeType":"YulExpressionStatement","src":"10310:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10384:9:88","nodeType":"YulIdentifier","src":"10384:9:88"},{"kind":"number","nativeSrc":"10395:4:88","nodeType":"YulLiteral","src":"10395:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10380:3:88","nodeType":"YulIdentifier","src":"10380:3:88"},"nativeSrc":"10380:20:88","nodeType":"YulFunctionCall","src":"10380:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10412:6:88","nodeType":"YulIdentifier","src":"10412:6:88"},{"kind":"number","nativeSrc":"10420:4:88","nodeType":"YulLiteral","src":"10420:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10408:3:88","nodeType":"YulIdentifier","src":"10408:3:88"},"nativeSrc":"10408:17:88","nodeType":"YulFunctionCall","src":"10408:17:88"}],"functionName":{"name":"mload","nativeSrc":"10402:5:88","nodeType":"YulIdentifier","src":"10402:5:88"},"nativeSrc":"10402:24:88","nodeType":"YulFunctionCall","src":"10402:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10373:6:88","nodeType":"YulIdentifier","src":"10373:6:88"},"nativeSrc":"10373:54:88","nodeType":"YulFunctionCall","src":"10373:54:88"},"nativeSrc":"10373:54:88","nodeType":"YulExpressionStatement","src":"10373:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10447:9:88","nodeType":"YulIdentifier","src":"10447:9:88"},{"kind":"number","nativeSrc":"10458:4:88","nodeType":"YulLiteral","src":"10458:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10443:3:88","nodeType":"YulIdentifier","src":"10443:3:88"},"nativeSrc":"10443:20:88","nodeType":"YulFunctionCall","src":"10443:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10475:6:88","nodeType":"YulIdentifier","src":"10475:6:88"},{"kind":"number","nativeSrc":"10483:4:88","nodeType":"YulLiteral","src":"10483:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10471:3:88","nodeType":"YulIdentifier","src":"10471:3:88"},"nativeSrc":"10471:17:88","nodeType":"YulFunctionCall","src":"10471:17:88"}],"functionName":{"name":"mload","nativeSrc":"10465:5:88","nodeType":"YulIdentifier","src":"10465:5:88"},"nativeSrc":"10465:24:88","nodeType":"YulFunctionCall","src":"10465:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10436:6:88","nodeType":"YulIdentifier","src":"10436:6:88"},"nativeSrc":"10436:54:88","nodeType":"YulFunctionCall","src":"10436:54:88"},"nativeSrc":"10436:54:88","nodeType":"YulExpressionStatement","src":"10436:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10510:9:88","nodeType":"YulIdentifier","src":"10510:9:88"},{"kind":"number","nativeSrc":"10521:4:88","nodeType":"YulLiteral","src":"10521:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10506:3:88","nodeType":"YulIdentifier","src":"10506:3:88"},"nativeSrc":"10506:20:88","nodeType":"YulFunctionCall","src":"10506:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10538:6:88","nodeType":"YulIdentifier","src":"10538:6:88"},{"kind":"number","nativeSrc":"10546:4:88","nodeType":"YulLiteral","src":"10546:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10534:3:88","nodeType":"YulIdentifier","src":"10534:3:88"},"nativeSrc":"10534:17:88","nodeType":"YulFunctionCall","src":"10534:17:88"}],"functionName":{"name":"mload","nativeSrc":"10528:5:88","nodeType":"YulIdentifier","src":"10528:5:88"},"nativeSrc":"10528:24:88","nodeType":"YulFunctionCall","src":"10528:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10499:6:88","nodeType":"YulIdentifier","src":"10499:6:88"},"nativeSrc":"10499:54:88","nodeType":"YulFunctionCall","src":"10499:54:88"},"nativeSrc":"10499:54:88","nodeType":"YulExpressionStatement","src":"10499:54:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"9946:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10066:9:88","nodeType":"YulTypedName","src":"10066:9:88","type":""},{"name":"value0","nativeSrc":"10077:6:88","nodeType":"YulTypedName","src":"10077:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10088:4:88","nodeType":"YulTypedName","src":"10088:4:88","type":""}],"src":"9946:613:88"},{"body":{"nativeSrc":"10688:102:88","nodeType":"YulBlock","src":"10688:102:88","statements":[{"nativeSrc":"10698:26:88","nodeType":"YulAssignment","src":"10698:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10710:9:88","nodeType":"YulIdentifier","src":"10710:9:88"},{"kind":"number","nativeSrc":"10721:2:88","nodeType":"YulLiteral","src":"10721:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10706:3:88","nodeType":"YulIdentifier","src":"10706:3:88"},"nativeSrc":"10706:18:88","nodeType":"YulFunctionCall","src":"10706:18:88"},"variableNames":[{"name":"tail","nativeSrc":"10698:4:88","nodeType":"YulIdentifier","src":"10698:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10740:9:88","nodeType":"YulIdentifier","src":"10740:9:88"},{"arguments":[{"name":"value0","nativeSrc":"10755:6:88","nodeType":"YulIdentifier","src":"10755:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10771:3:88","nodeType":"YulLiteral","src":"10771:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"10776:1:88","nodeType":"YulLiteral","src":"10776:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"10767:3:88","nodeType":"YulIdentifier","src":"10767:3:88"},"nativeSrc":"10767:11:88","nodeType":"YulFunctionCall","src":"10767:11:88"},{"kind":"number","nativeSrc":"10780:1:88","nodeType":"YulLiteral","src":"10780:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10763:3:88","nodeType":"YulIdentifier","src":"10763:3:88"},"nativeSrc":"10763:19:88","nodeType":"YulFunctionCall","src":"10763:19:88"}],"functionName":{"name":"and","nativeSrc":"10751:3:88","nodeType":"YulIdentifier","src":"10751:3:88"},"nativeSrc":"10751:32:88","nodeType":"YulFunctionCall","src":"10751:32:88"}],"functionName":{"name":"mstore","nativeSrc":"10733:6:88","nodeType":"YulIdentifier","src":"10733:6:88"},"nativeSrc":"10733:51:88","nodeType":"YulFunctionCall","src":"10733:51:88"},"nativeSrc":"10733:51:88","nodeType":"YulExpressionStatement","src":"10733:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"10564:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10657:9:88","nodeType":"YulTypedName","src":"10657:9:88","type":""},{"name":"value0","nativeSrc":"10668:6:88","nodeType":"YulTypedName","src":"10668:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10679:4:88","nodeType":"YulTypedName","src":"10679:4:88","type":""}],"src":"10564:226:88"},{"body":{"nativeSrc":"10837:76:88","nodeType":"YulBlock","src":"10837:76:88","statements":[{"body":{"nativeSrc":"10891:16:88","nodeType":"YulBlock","src":"10891:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10900:1:88","nodeType":"YulLiteral","src":"10900:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10903:1:88","nodeType":"YulLiteral","src":"10903:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10893:6:88","nodeType":"YulIdentifier","src":"10893:6:88"},"nativeSrc":"10893:12:88","nodeType":"YulFunctionCall","src":"10893:12:88"},"nativeSrc":"10893:12:88","nodeType":"YulExpressionStatement","src":"10893:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10860:5:88","nodeType":"YulIdentifier","src":"10860:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10881:5:88","nodeType":"YulIdentifier","src":"10881:5:88"}],"functionName":{"name":"iszero","nativeSrc":"10874:6:88","nodeType":"YulIdentifier","src":"10874:6:88"},"nativeSrc":"10874:13:88","nodeType":"YulFunctionCall","src":"10874:13:88"}],"functionName":{"name":"iszero","nativeSrc":"10867:6:88","nodeType":"YulIdentifier","src":"10867:6:88"},"nativeSrc":"10867:21:88","nodeType":"YulFunctionCall","src":"10867:21:88"}],"functionName":{"name":"eq","nativeSrc":"10857:2:88","nodeType":"YulIdentifier","src":"10857:2:88"},"nativeSrc":"10857:32:88","nodeType":"YulFunctionCall","src":"10857:32:88"}],"functionName":{"name":"iszero","nativeSrc":"10850:6:88","nodeType":"YulIdentifier","src":"10850:6:88"},"nativeSrc":"10850:40:88","nodeType":"YulFunctionCall","src":"10850:40:88"},"nativeSrc":"10847:60:88","nodeType":"YulIf","src":"10847:60:88"}]},"name":"validator_revert_bool","nativeSrc":"10795:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10826:5:88","nodeType":"YulTypedName","src":"10826:5:88","type":""}],"src":"10795:118:88"},{"body":{"nativeSrc":"11033:261:88","nodeType":"YulBlock","src":"11033:261:88","statements":[{"body":{"nativeSrc":"11080:16:88","nodeType":"YulBlock","src":"11080:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11089:1:88","nodeType":"YulLiteral","src":"11089:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11092:1:88","nodeType":"YulLiteral","src":"11092:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11082:6:88","nodeType":"YulIdentifier","src":"11082:6:88"},"nativeSrc":"11082:12:88","nodeType":"YulFunctionCall","src":"11082:12:88"},"nativeSrc":"11082:12:88","nodeType":"YulExpressionStatement","src":"11082:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11054:7:88","nodeType":"YulIdentifier","src":"11054:7:88"},{"name":"headStart","nativeSrc":"11063:9:88","nodeType":"YulIdentifier","src":"11063:9:88"}],"functionName":{"name":"sub","nativeSrc":"11050:3:88","nodeType":"YulIdentifier","src":"11050:3:88"},"nativeSrc":"11050:23:88","nodeType":"YulFunctionCall","src":"11050:23:88"},{"kind":"number","nativeSrc":"11075:3:88","nodeType":"YulLiteral","src":"11075:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"11046:3:88","nodeType":"YulIdentifier","src":"11046:3:88"},"nativeSrc":"11046:33:88","nodeType":"YulFunctionCall","src":"11046:33:88"},"nativeSrc":"11043:53:88","nodeType":"YulIf","src":"11043:53:88"},{"nativeSrc":"11105:67:88","nodeType":"YulAssignment","src":"11105:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11153:9:88","nodeType":"YulIdentifier","src":"11153:9:88"},{"name":"dataEnd","nativeSrc":"11164:7:88","nodeType":"YulIdentifier","src":"11164:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"11115:37:88","nodeType":"YulIdentifier","src":"11115:37:88"},"nativeSrc":"11115:57:88","nodeType":"YulFunctionCall","src":"11115:57:88"},"variableNames":[{"name":"value0","nativeSrc":"11105:6:88","nodeType":"YulIdentifier","src":"11105:6:88"}]},{"nativeSrc":"11181:46:88","nodeType":"YulVariableDeclaration","src":"11181:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11211:9:88","nodeType":"YulIdentifier","src":"11211:9:88"},{"kind":"number","nativeSrc":"11222:3:88","nodeType":"YulLiteral","src":"11222:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"11207:3:88","nodeType":"YulIdentifier","src":"11207:3:88"},"nativeSrc":"11207:19:88","nodeType":"YulFunctionCall","src":"11207:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11194:12:88","nodeType":"YulIdentifier","src":"11194:12:88"},"nativeSrc":"11194:33:88","nodeType":"YulFunctionCall","src":"11194:33:88"},"variables":[{"name":"value","nativeSrc":"11185:5:88","nodeType":"YulTypedName","src":"11185:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11258:5:88","nodeType":"YulIdentifier","src":"11258:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"11236:21:88","nodeType":"YulIdentifier","src":"11236:21:88"},"nativeSrc":"11236:28:88","nodeType":"YulFunctionCall","src":"11236:28:88"},"nativeSrc":"11236:28:88","nodeType":"YulExpressionStatement","src":"11236:28:88"},{"nativeSrc":"11273:15:88","nodeType":"YulAssignment","src":"11273:15:88","value":{"name":"value","nativeSrc":"11283:5:88","nodeType":"YulIdentifier","src":"11283:5:88"},"variableNames":[{"name":"value1","nativeSrc":"11273:6:88","nodeType":"YulIdentifier","src":"11273:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool","nativeSrc":"10918:376:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10991:9:88","nodeType":"YulTypedName","src":"10991:9:88","type":""},{"name":"dataEnd","nativeSrc":"11002:7:88","nodeType":"YulTypedName","src":"11002:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11014:6:88","nodeType":"YulTypedName","src":"11014:6:88","type":""},{"name":"value1","nativeSrc":"11022:6:88","nodeType":"YulTypedName","src":"11022:6:88","type":""}],"src":"10918:376:88"},{"body":{"nativeSrc":"11354:325:88","nodeType":"YulBlock","src":"11354:325:88","statements":[{"nativeSrc":"11364:22:88","nodeType":"YulAssignment","src":"11364:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"11378:1:88","nodeType":"YulLiteral","src":"11378:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"11381:4:88","nodeType":"YulIdentifier","src":"11381:4:88"}],"functionName":{"name":"shr","nativeSrc":"11374:3:88","nodeType":"YulIdentifier","src":"11374:3:88"},"nativeSrc":"11374:12:88","nodeType":"YulFunctionCall","src":"11374:12:88"},"variableNames":[{"name":"length","nativeSrc":"11364:6:88","nodeType":"YulIdentifier","src":"11364:6:88"}]},{"nativeSrc":"11395:38:88","nodeType":"YulVariableDeclaration","src":"11395:38:88","value":{"arguments":[{"name":"data","nativeSrc":"11425:4:88","nodeType":"YulIdentifier","src":"11425:4:88"},{"kind":"number","nativeSrc":"11431:1:88","nodeType":"YulLiteral","src":"11431:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"11421:3:88","nodeType":"YulIdentifier","src":"11421:3:88"},"nativeSrc":"11421:12:88","nodeType":"YulFunctionCall","src":"11421:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"11399:18:88","nodeType":"YulTypedName","src":"11399:18:88","type":""}]},{"body":{"nativeSrc":"11472:31:88","nodeType":"YulBlock","src":"11472:31:88","statements":[{"nativeSrc":"11474:27:88","nodeType":"YulAssignment","src":"11474:27:88","value":{"arguments":[{"name":"length","nativeSrc":"11488:6:88","nodeType":"YulIdentifier","src":"11488:6:88"},{"kind":"number","nativeSrc":"11496:4:88","nodeType":"YulLiteral","src":"11496:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11484:3:88","nodeType":"YulIdentifier","src":"11484:3:88"},"nativeSrc":"11484:17:88","nodeType":"YulFunctionCall","src":"11484:17:88"},"variableNames":[{"name":"length","nativeSrc":"11474:6:88","nodeType":"YulIdentifier","src":"11474:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11452:18:88","nodeType":"YulIdentifier","src":"11452:18:88"}],"functionName":{"name":"iszero","nativeSrc":"11445:6:88","nodeType":"YulIdentifier","src":"11445:6:88"},"nativeSrc":"11445:26:88","nodeType":"YulFunctionCall","src":"11445:26:88"},"nativeSrc":"11442:61:88","nodeType":"YulIf","src":"11442:61:88"},{"body":{"nativeSrc":"11562:111:88","nodeType":"YulBlock","src":"11562:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11583:1:88","nodeType":"YulLiteral","src":"11583:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"11590:3:88","nodeType":"YulLiteral","src":"11590:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"11595:10:88","nodeType":"YulLiteral","src":"11595:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"11586:3:88","nodeType":"YulIdentifier","src":"11586:3:88"},"nativeSrc":"11586:20:88","nodeType":"YulFunctionCall","src":"11586:20:88"}],"functionName":{"name":"mstore","nativeSrc":"11576:6:88","nodeType":"YulIdentifier","src":"11576:6:88"},"nativeSrc":"11576:31:88","nodeType":"YulFunctionCall","src":"11576:31:88"},"nativeSrc":"11576:31:88","nodeType":"YulExpressionStatement","src":"11576:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11627:1:88","nodeType":"YulLiteral","src":"11627:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"11630:4:88","nodeType":"YulLiteral","src":"11630:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11620:6:88","nodeType":"YulIdentifier","src":"11620:6:88"},"nativeSrc":"11620:15:88","nodeType":"YulFunctionCall","src":"11620:15:88"},"nativeSrc":"11620:15:88","nodeType":"YulExpressionStatement","src":"11620:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11655:1:88","nodeType":"YulLiteral","src":"11655:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11658:4:88","nodeType":"YulLiteral","src":"11658:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11648:6:88","nodeType":"YulIdentifier","src":"11648:6:88"},"nativeSrc":"11648:15:88","nodeType":"YulFunctionCall","src":"11648:15:88"},"nativeSrc":"11648:15:88","nodeType":"YulExpressionStatement","src":"11648:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11518:18:88","nodeType":"YulIdentifier","src":"11518:18:88"},{"arguments":[{"name":"length","nativeSrc":"11541:6:88","nodeType":"YulIdentifier","src":"11541:6:88"},{"kind":"number","nativeSrc":"11549:2:88","nodeType":"YulLiteral","src":"11549:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11538:2:88","nodeType":"YulIdentifier","src":"11538:2:88"},"nativeSrc":"11538:14:88","nodeType":"YulFunctionCall","src":"11538:14:88"}],"functionName":{"name":"eq","nativeSrc":"11515:2:88","nodeType":"YulIdentifier","src":"11515:2:88"},"nativeSrc":"11515:38:88","nodeType":"YulFunctionCall","src":"11515:38:88"},"nativeSrc":"11512:161:88","nodeType":"YulIf","src":"11512:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"11299:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11334:4:88","nodeType":"YulTypedName","src":"11334:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11343:6:88","nodeType":"YulTypedName","src":"11343:6:88","type":""}],"src":"11299:380:88"},{"body":{"nativeSrc":"11789:170:88","nodeType":"YulBlock","src":"11789:170:88","statements":[{"body":{"nativeSrc":"11835:16:88","nodeType":"YulBlock","src":"11835:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11844:1:88","nodeType":"YulLiteral","src":"11844:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11847:1:88","nodeType":"YulLiteral","src":"11847:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11837:6:88","nodeType":"YulIdentifier","src":"11837:6:88"},"nativeSrc":"11837:12:88","nodeType":"YulFunctionCall","src":"11837:12:88"},"nativeSrc":"11837:12:88","nodeType":"YulExpressionStatement","src":"11837:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11810:7:88","nodeType":"YulIdentifier","src":"11810:7:88"},{"name":"headStart","nativeSrc":"11819:9:88","nodeType":"YulIdentifier","src":"11819:9:88"}],"functionName":{"name":"sub","nativeSrc":"11806:3:88","nodeType":"YulIdentifier","src":"11806:3:88"},"nativeSrc":"11806:23:88","nodeType":"YulFunctionCall","src":"11806:23:88"},{"kind":"number","nativeSrc":"11831:2:88","nodeType":"YulLiteral","src":"11831:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11802:3:88","nodeType":"YulIdentifier","src":"11802:3:88"},"nativeSrc":"11802:32:88","nodeType":"YulFunctionCall","src":"11802:32:88"},"nativeSrc":"11799:52:88","nodeType":"YulIf","src":"11799:52:88"},{"nativeSrc":"11860:29:88","nodeType":"YulVariableDeclaration","src":"11860:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11879:9:88","nodeType":"YulIdentifier","src":"11879:9:88"}],"functionName":{"name":"mload","nativeSrc":"11873:5:88","nodeType":"YulIdentifier","src":"11873:5:88"},"nativeSrc":"11873:16:88","nodeType":"YulFunctionCall","src":"11873:16:88"},"variables":[{"name":"value","nativeSrc":"11864:5:88","nodeType":"YulTypedName","src":"11864:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11923:5:88","nodeType":"YulIdentifier","src":"11923:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11898:24:88","nodeType":"YulIdentifier","src":"11898:24:88"},"nativeSrc":"11898:31:88","nodeType":"YulFunctionCall","src":"11898:31:88"},"nativeSrc":"11898:31:88","nodeType":"YulExpressionStatement","src":"11898:31:88"},{"nativeSrc":"11938:15:88","nodeType":"YulAssignment","src":"11938:15:88","value":{"name":"value","nativeSrc":"11948:5:88","nodeType":"YulIdentifier","src":"11948:5:88"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:88","nodeType":"YulIdentifier","src":"11938:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"11684:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11755:9:88","nodeType":"YulTypedName","src":"11755:9:88","type":""},{"name":"dataEnd","nativeSrc":"11766:7:88","nodeType":"YulTypedName","src":"11766:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11778:6:88","nodeType":"YulTypedName","src":"11778:6:88","type":""}],"src":"11684:275:88"},{"body":{"nativeSrc":"12143:274:88","nodeType":"YulBlock","src":"12143:274:88","statements":[{"nativeSrc":"12153:27:88","nodeType":"YulAssignment","src":"12153:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12165:9:88","nodeType":"YulIdentifier","src":"12165:9:88"},{"kind":"number","nativeSrc":"12176:3:88","nodeType":"YulLiteral","src":"12176:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12161:3:88","nodeType":"YulIdentifier","src":"12161:3:88"},"nativeSrc":"12161:19:88","nodeType":"YulFunctionCall","src":"12161:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12153:4:88","nodeType":"YulIdentifier","src":"12153:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12196:9:88","nodeType":"YulIdentifier","src":"12196:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12211:6:88","nodeType":"YulIdentifier","src":"12211:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12227:3:88","nodeType":"YulLiteral","src":"12227:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12232:1:88","nodeType":"YulLiteral","src":"12232:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12223:3:88","nodeType":"YulIdentifier","src":"12223:3:88"},"nativeSrc":"12223:11:88","nodeType":"YulFunctionCall","src":"12223:11:88"},{"kind":"number","nativeSrc":"12236:1:88","nodeType":"YulLiteral","src":"12236:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12219:3:88","nodeType":"YulIdentifier","src":"12219:3:88"},"nativeSrc":"12219:19:88","nodeType":"YulFunctionCall","src":"12219:19:88"}],"functionName":{"name":"and","nativeSrc":"12207:3:88","nodeType":"YulIdentifier","src":"12207:3:88"},"nativeSrc":"12207:32:88","nodeType":"YulFunctionCall","src":"12207:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12189:6:88","nodeType":"YulIdentifier","src":"12189:6:88"},"nativeSrc":"12189:51:88","nodeType":"YulFunctionCall","src":"12189:51:88"},"nativeSrc":"12189:51:88","nodeType":"YulExpressionStatement","src":"12189:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12260:9:88","nodeType":"YulIdentifier","src":"12260:9:88"},{"kind":"number","nativeSrc":"12271:2:88","nodeType":"YulLiteral","src":"12271:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12256:3:88","nodeType":"YulIdentifier","src":"12256:3:88"},"nativeSrc":"12256:18:88","nodeType":"YulFunctionCall","src":"12256:18:88"},{"name":"value1","nativeSrc":"12276:6:88","nodeType":"YulIdentifier","src":"12276:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12249:6:88","nodeType":"YulIdentifier","src":"12249:6:88"},"nativeSrc":"12249:34:88","nodeType":"YulFunctionCall","src":"12249:34:88"},"nativeSrc":"12249:34:88","nodeType":"YulExpressionStatement","src":"12249:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12303:9:88","nodeType":"YulIdentifier","src":"12303:9:88"},{"kind":"number","nativeSrc":"12314:2:88","nodeType":"YulLiteral","src":"12314:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12299:3:88","nodeType":"YulIdentifier","src":"12299:3:88"},"nativeSrc":"12299:18:88","nodeType":"YulFunctionCall","src":"12299:18:88"},{"arguments":[{"name":"value2","nativeSrc":"12323:6:88","nodeType":"YulIdentifier","src":"12323:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12339:3:88","nodeType":"YulLiteral","src":"12339:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12344:1:88","nodeType":"YulLiteral","src":"12344:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12335:3:88","nodeType":"YulIdentifier","src":"12335:3:88"},"nativeSrc":"12335:11:88","nodeType":"YulFunctionCall","src":"12335:11:88"},{"kind":"number","nativeSrc":"12348:1:88","nodeType":"YulLiteral","src":"12348:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12331:3:88","nodeType":"YulIdentifier","src":"12331:3:88"},"nativeSrc":"12331:19:88","nodeType":"YulFunctionCall","src":"12331:19:88"}],"functionName":{"name":"and","nativeSrc":"12319:3:88","nodeType":"YulIdentifier","src":"12319:3:88"},"nativeSrc":"12319:32:88","nodeType":"YulFunctionCall","src":"12319:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12292:6:88","nodeType":"YulIdentifier","src":"12292:6:88"},"nativeSrc":"12292:60:88","nodeType":"YulFunctionCall","src":"12292:60:88"},"nativeSrc":"12292:60:88","nodeType":"YulExpressionStatement","src":"12292:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12372:9:88","nodeType":"YulIdentifier","src":"12372:9:88"},{"kind":"number","nativeSrc":"12383:2:88","nodeType":"YulLiteral","src":"12383:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12368:3:88","nodeType":"YulIdentifier","src":"12368:3:88"},"nativeSrc":"12368:18:88","nodeType":"YulFunctionCall","src":"12368:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"12402:6:88","nodeType":"YulIdentifier","src":"12402:6:88"}],"functionName":{"name":"iszero","nativeSrc":"12395:6:88","nodeType":"YulIdentifier","src":"12395:6:88"},"nativeSrc":"12395:14:88","nodeType":"YulFunctionCall","src":"12395:14:88"}],"functionName":{"name":"iszero","nativeSrc":"12388:6:88","nodeType":"YulIdentifier","src":"12388:6:88"},"nativeSrc":"12388:22:88","nodeType":"YulFunctionCall","src":"12388:22:88"}],"functionName":{"name":"mstore","nativeSrc":"12361:6:88","nodeType":"YulIdentifier","src":"12361:6:88"},"nativeSrc":"12361:50:88","nodeType":"YulFunctionCall","src":"12361:50:88"},"nativeSrc":"12361:50:88","nodeType":"YulExpressionStatement","src":"12361:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"11964:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12088:9:88","nodeType":"YulTypedName","src":"12088:9:88","type":""},{"name":"value3","nativeSrc":"12099:6:88","nodeType":"YulTypedName","src":"12099:6:88","type":""},{"name":"value2","nativeSrc":"12107:6:88","nodeType":"YulTypedName","src":"12107:6:88","type":""},{"name":"value1","nativeSrc":"12115:6:88","nodeType":"YulTypedName","src":"12115:6:88","type":""},{"name":"value0","nativeSrc":"12123:6:88","nodeType":"YulTypedName","src":"12123:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12134:4:88","nodeType":"YulTypedName","src":"12134:4:88","type":""}],"src":"11964:453:88"},{"body":{"nativeSrc":"12503:170:88","nodeType":"YulBlock","src":"12503:170:88","statements":[{"body":{"nativeSrc":"12549:16:88","nodeType":"YulBlock","src":"12549:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12558:1:88","nodeType":"YulLiteral","src":"12558:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12561:1:88","nodeType":"YulLiteral","src":"12561:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12551:6:88","nodeType":"YulIdentifier","src":"12551:6:88"},"nativeSrc":"12551:12:88","nodeType":"YulFunctionCall","src":"12551:12:88"},"nativeSrc":"12551:12:88","nodeType":"YulExpressionStatement","src":"12551:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12524:7:88","nodeType":"YulIdentifier","src":"12524:7:88"},{"name":"headStart","nativeSrc":"12533:9:88","nodeType":"YulIdentifier","src":"12533:9:88"}],"functionName":{"name":"sub","nativeSrc":"12520:3:88","nodeType":"YulIdentifier","src":"12520:3:88"},"nativeSrc":"12520:23:88","nodeType":"YulFunctionCall","src":"12520:23:88"},{"kind":"number","nativeSrc":"12545:2:88","nodeType":"YulLiteral","src":"12545:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12516:3:88","nodeType":"YulIdentifier","src":"12516:3:88"},"nativeSrc":"12516:32:88","nodeType":"YulFunctionCall","src":"12516:32:88"},"nativeSrc":"12513:52:88","nodeType":"YulIf","src":"12513:52:88"},{"nativeSrc":"12574:29:88","nodeType":"YulVariableDeclaration","src":"12574:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12593:9:88","nodeType":"YulIdentifier","src":"12593:9:88"}],"functionName":{"name":"mload","nativeSrc":"12587:5:88","nodeType":"YulIdentifier","src":"12587:5:88"},"nativeSrc":"12587:16:88","nodeType":"YulFunctionCall","src":"12587:16:88"},"variables":[{"name":"value","nativeSrc":"12578:5:88","nodeType":"YulTypedName","src":"12578:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12637:5:88","nodeType":"YulIdentifier","src":"12637:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12612:24:88","nodeType":"YulIdentifier","src":"12612:24:88"},"nativeSrc":"12612:31:88","nodeType":"YulFunctionCall","src":"12612:31:88"},"nativeSrc":"12612:31:88","nodeType":"YulExpressionStatement","src":"12612:31:88"},{"nativeSrc":"12652:15:88","nodeType":"YulAssignment","src":"12652:15:88","value":{"name":"value","nativeSrc":"12662:5:88","nodeType":"YulIdentifier","src":"12662:5:88"},"variableNames":[{"name":"value0","nativeSrc":"12652:6:88","nodeType":"YulIdentifier","src":"12652:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"12422:251:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12469:9:88","nodeType":"YulTypedName","src":"12469:9:88","type":""},{"name":"dataEnd","nativeSrc":"12480:7:88","nodeType":"YulTypedName","src":"12480:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12492:6:88","nodeType":"YulTypedName","src":"12492:6:88","type":""}],"src":"12422:251:88"},{"body":{"nativeSrc":"12852:234:88","nodeType":"YulBlock","src":"12852:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12869:9:88","nodeType":"YulIdentifier","src":"12869:9:88"},{"kind":"number","nativeSrc":"12880:2:88","nodeType":"YulLiteral","src":"12880:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12862:6:88","nodeType":"YulIdentifier","src":"12862:6:88"},"nativeSrc":"12862:21:88","nodeType":"YulFunctionCall","src":"12862:21:88"},"nativeSrc":"12862:21:88","nodeType":"YulExpressionStatement","src":"12862:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12903:9:88","nodeType":"YulIdentifier","src":"12903:9:88"},{"kind":"number","nativeSrc":"12914:2:88","nodeType":"YulLiteral","src":"12914:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12899:3:88","nodeType":"YulIdentifier","src":"12899:3:88"},"nativeSrc":"12899:18:88","nodeType":"YulFunctionCall","src":"12899:18:88"},{"kind":"number","nativeSrc":"12919:2:88","nodeType":"YulLiteral","src":"12919:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"12892:6:88","nodeType":"YulIdentifier","src":"12892:6:88"},"nativeSrc":"12892:30:88","nodeType":"YulFunctionCall","src":"12892:30:88"},"nativeSrc":"12892:30:88","nodeType":"YulExpressionStatement","src":"12892:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12942:9:88","nodeType":"YulIdentifier","src":"12942:9:88"},{"kind":"number","nativeSrc":"12953:2:88","nodeType":"YulLiteral","src":"12953:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12938:3:88","nodeType":"YulIdentifier","src":"12938:3:88"},"nativeSrc":"12938:18:88","nodeType":"YulFunctionCall","src":"12938:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"12958:34:88","nodeType":"YulLiteral","src":"12958:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"12931:6:88","nodeType":"YulIdentifier","src":"12931:6:88"},"nativeSrc":"12931:62:88","nodeType":"YulFunctionCall","src":"12931:62:88"},"nativeSrc":"12931:62:88","nodeType":"YulExpressionStatement","src":"12931:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13013:9:88","nodeType":"YulIdentifier","src":"13013:9:88"},{"kind":"number","nativeSrc":"13024:2:88","nodeType":"YulLiteral","src":"13024:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13009:3:88","nodeType":"YulIdentifier","src":"13009:3:88"},"nativeSrc":"13009:18:88","nodeType":"YulFunctionCall","src":"13009:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"13029:14:88","nodeType":"YulLiteral","src":"13029:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"13002:6:88","nodeType":"YulIdentifier","src":"13002:6:88"},"nativeSrc":"13002:42:88","nodeType":"YulFunctionCall","src":"13002:42:88"},"nativeSrc":"13002:42:88","nodeType":"YulExpressionStatement","src":"13002:42:88"},{"nativeSrc":"13053:27:88","nodeType":"YulAssignment","src":"13053:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13065:9:88","nodeType":"YulIdentifier","src":"13065:9:88"},{"kind":"number","nativeSrc":"13076:3:88","nodeType":"YulLiteral","src":"13076:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13061:3:88","nodeType":"YulIdentifier","src":"13061:3:88"},"nativeSrc":"13061:19:88","nodeType":"YulFunctionCall","src":"13061:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13053:4:88","nodeType":"YulIdentifier","src":"13053:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12678:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12829:9:88","nodeType":"YulTypedName","src":"12829:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12843:4:88","nodeType":"YulTypedName","src":"12843:4:88","type":""}],"src":"12678:408:88"},{"body":{"nativeSrc":"13265:234:88","nodeType":"YulBlock","src":"13265:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13282:9:88","nodeType":"YulIdentifier","src":"13282:9:88"},{"kind":"number","nativeSrc":"13293:2:88","nodeType":"YulLiteral","src":"13293:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13275:6:88","nodeType":"YulIdentifier","src":"13275:6:88"},"nativeSrc":"13275:21:88","nodeType":"YulFunctionCall","src":"13275:21:88"},"nativeSrc":"13275:21:88","nodeType":"YulExpressionStatement","src":"13275:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13316:9:88","nodeType":"YulIdentifier","src":"13316:9:88"},{"kind":"number","nativeSrc":"13327:2:88","nodeType":"YulLiteral","src":"13327:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13312:3:88","nodeType":"YulIdentifier","src":"13312:3:88"},"nativeSrc":"13312:18:88","nodeType":"YulFunctionCall","src":"13312:18:88"},{"kind":"number","nativeSrc":"13332:2:88","nodeType":"YulLiteral","src":"13332:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"13305:6:88","nodeType":"YulIdentifier","src":"13305:6:88"},"nativeSrc":"13305:30:88","nodeType":"YulFunctionCall","src":"13305:30:88"},"nativeSrc":"13305:30:88","nodeType":"YulExpressionStatement","src":"13305:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13355:9:88","nodeType":"YulIdentifier","src":"13355:9:88"},{"kind":"number","nativeSrc":"13366:2:88","nodeType":"YulLiteral","src":"13366:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13351:3:88","nodeType":"YulIdentifier","src":"13351:3:88"},"nativeSrc":"13351:18:88","nodeType":"YulFunctionCall","src":"13351:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"13371:34:88","nodeType":"YulLiteral","src":"13371:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"13344:6:88","nodeType":"YulIdentifier","src":"13344:6:88"},"nativeSrc":"13344:62:88","nodeType":"YulFunctionCall","src":"13344:62:88"},"nativeSrc":"13344:62:88","nodeType":"YulExpressionStatement","src":"13344:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13426:9:88","nodeType":"YulIdentifier","src":"13426:9:88"},{"kind":"number","nativeSrc":"13437:2:88","nodeType":"YulLiteral","src":"13437:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13422:3:88","nodeType":"YulIdentifier","src":"13422:3:88"},"nativeSrc":"13422:18:88","nodeType":"YulFunctionCall","src":"13422:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"13442:14:88","nodeType":"YulLiteral","src":"13442:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"13415:6:88","nodeType":"YulIdentifier","src":"13415:6:88"},"nativeSrc":"13415:42:88","nodeType":"YulFunctionCall","src":"13415:42:88"},"nativeSrc":"13415:42:88","nodeType":"YulExpressionStatement","src":"13415:42:88"},{"nativeSrc":"13466:27:88","nodeType":"YulAssignment","src":"13466:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13478:9:88","nodeType":"YulIdentifier","src":"13478:9:88"},{"kind":"number","nativeSrc":"13489:3:88","nodeType":"YulLiteral","src":"13489:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13474:3:88","nodeType":"YulIdentifier","src":"13474:3:88"},"nativeSrc":"13474:19:88","nodeType":"YulFunctionCall","src":"13474:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13466:4:88","nodeType":"YulIdentifier","src":"13466:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13091:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13242:9:88","nodeType":"YulTypedName","src":"13242:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13256:4:88","nodeType":"YulTypedName","src":"13256:4:88","type":""}],"src":"13091:408:88"},{"body":{"nativeSrc":"13711:318:88","nodeType":"YulBlock","src":"13711:318:88","statements":[{"nativeSrc":"13721:27:88","nodeType":"YulAssignment","src":"13721:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13733:9:88","nodeType":"YulIdentifier","src":"13733:9:88"},{"kind":"number","nativeSrc":"13744:3:88","nodeType":"YulLiteral","src":"13744:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"13729:3:88","nodeType":"YulIdentifier","src":"13729:3:88"},"nativeSrc":"13729:19:88","nodeType":"YulFunctionCall","src":"13729:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13721:4:88","nodeType":"YulIdentifier","src":"13721:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13764:9:88","nodeType":"YulIdentifier","src":"13764:9:88"},{"arguments":[{"name":"value0","nativeSrc":"13779:6:88","nodeType":"YulIdentifier","src":"13779:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13795:3:88","nodeType":"YulLiteral","src":"13795:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13800:1:88","nodeType":"YulLiteral","src":"13800:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13791:3:88","nodeType":"YulIdentifier","src":"13791:3:88"},"nativeSrc":"13791:11:88","nodeType":"YulFunctionCall","src":"13791:11:88"},{"kind":"number","nativeSrc":"13804:1:88","nodeType":"YulLiteral","src":"13804:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13787:3:88","nodeType":"YulIdentifier","src":"13787:3:88"},"nativeSrc":"13787:19:88","nodeType":"YulFunctionCall","src":"13787:19:88"}],"functionName":{"name":"and","nativeSrc":"13775:3:88","nodeType":"YulIdentifier","src":"13775:3:88"},"nativeSrc":"13775:32:88","nodeType":"YulFunctionCall","src":"13775:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13757:6:88","nodeType":"YulIdentifier","src":"13757:6:88"},"nativeSrc":"13757:51:88","nodeType":"YulFunctionCall","src":"13757:51:88"},"nativeSrc":"13757:51:88","nodeType":"YulExpressionStatement","src":"13757:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13828:9:88","nodeType":"YulIdentifier","src":"13828:9:88"},{"kind":"number","nativeSrc":"13839:2:88","nodeType":"YulLiteral","src":"13839:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13824:3:88","nodeType":"YulIdentifier","src":"13824:3:88"},"nativeSrc":"13824:18:88","nodeType":"YulFunctionCall","src":"13824:18:88"},{"name":"value1","nativeSrc":"13844:6:88","nodeType":"YulIdentifier","src":"13844:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13817:6:88","nodeType":"YulIdentifier","src":"13817:6:88"},"nativeSrc":"13817:34:88","nodeType":"YulFunctionCall","src":"13817:34:88"},"nativeSrc":"13817:34:88","nodeType":"YulExpressionStatement","src":"13817:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13871:9:88","nodeType":"YulIdentifier","src":"13871:9:88"},{"kind":"number","nativeSrc":"13882:2:88","nodeType":"YulLiteral","src":"13882:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13867:3:88","nodeType":"YulIdentifier","src":"13867:3:88"},"nativeSrc":"13867:18:88","nodeType":"YulFunctionCall","src":"13867:18:88"},{"name":"value2","nativeSrc":"13887:6:88","nodeType":"YulIdentifier","src":"13887:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13860:6:88","nodeType":"YulIdentifier","src":"13860:6:88"},"nativeSrc":"13860:34:88","nodeType":"YulFunctionCall","src":"13860:34:88"},"nativeSrc":"13860:34:88","nodeType":"YulExpressionStatement","src":"13860:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13914:9:88","nodeType":"YulIdentifier","src":"13914:9:88"},{"kind":"number","nativeSrc":"13925:2:88","nodeType":"YulLiteral","src":"13925:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13910:3:88","nodeType":"YulIdentifier","src":"13910:3:88"},"nativeSrc":"13910:18:88","nodeType":"YulFunctionCall","src":"13910:18:88"},{"arguments":[{"name":"value3","nativeSrc":"13934:6:88","nodeType":"YulIdentifier","src":"13934:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13950:3:88","nodeType":"YulLiteral","src":"13950:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13955:1:88","nodeType":"YulLiteral","src":"13955:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13946:3:88","nodeType":"YulIdentifier","src":"13946:3:88"},"nativeSrc":"13946:11:88","nodeType":"YulFunctionCall","src":"13946:11:88"},{"kind":"number","nativeSrc":"13959:1:88","nodeType":"YulLiteral","src":"13959:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13942:3:88","nodeType":"YulIdentifier","src":"13942:3:88"},"nativeSrc":"13942:19:88","nodeType":"YulFunctionCall","src":"13942:19:88"}],"functionName":{"name":"and","nativeSrc":"13930:3:88","nodeType":"YulIdentifier","src":"13930:3:88"},"nativeSrc":"13930:32:88","nodeType":"YulFunctionCall","src":"13930:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13903:6:88","nodeType":"YulIdentifier","src":"13903:6:88"},"nativeSrc":"13903:60:88","nodeType":"YulFunctionCall","src":"13903:60:88"},"nativeSrc":"13903:60:88","nodeType":"YulExpressionStatement","src":"13903:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13983:9:88","nodeType":"YulIdentifier","src":"13983:9:88"},{"kind":"number","nativeSrc":"13994:3:88","nodeType":"YulLiteral","src":"13994:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13979:3:88","nodeType":"YulIdentifier","src":"13979:3:88"},"nativeSrc":"13979:19:88","nodeType":"YulFunctionCall","src":"13979:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"14014:6:88","nodeType":"YulIdentifier","src":"14014:6:88"}],"functionName":{"name":"iszero","nativeSrc":"14007:6:88","nodeType":"YulIdentifier","src":"14007:6:88"},"nativeSrc":"14007:14:88","nodeType":"YulFunctionCall","src":"14007:14:88"}],"functionName":{"name":"iszero","nativeSrc":"14000:6:88","nodeType":"YulIdentifier","src":"14000:6:88"},"nativeSrc":"14000:22:88","nodeType":"YulFunctionCall","src":"14000:22:88"}],"functionName":{"name":"mstore","nativeSrc":"13972:6:88","nodeType":"YulIdentifier","src":"13972:6:88"},"nativeSrc":"13972:51:88","nodeType":"YulFunctionCall","src":"13972:51:88"},"nativeSrc":"13972:51:88","nodeType":"YulExpressionStatement","src":"13972:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"13504:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13648:9:88","nodeType":"YulTypedName","src":"13648:9:88","type":""},{"name":"value4","nativeSrc":"13659:6:88","nodeType":"YulTypedName","src":"13659:6:88","type":""},{"name":"value3","nativeSrc":"13667:6:88","nodeType":"YulTypedName","src":"13667:6:88","type":""},{"name":"value2","nativeSrc":"13675:6:88","nodeType":"YulTypedName","src":"13675:6:88","type":""},{"name":"value1","nativeSrc":"13683:6:88","nodeType":"YulTypedName","src":"13683:6:88","type":""},{"name":"value0","nativeSrc":"13691:6:88","nodeType":"YulTypedName","src":"13691:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13702:4:88","nodeType":"YulTypedName","src":"13702:4:88","type":""}],"src":"13504:525:88"},{"body":{"nativeSrc":"14208:246:88","nodeType":"YulBlock","src":"14208:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14225:9:88","nodeType":"YulIdentifier","src":"14225:9:88"},{"kind":"number","nativeSrc":"14236:2:88","nodeType":"YulLiteral","src":"14236:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14218:6:88","nodeType":"YulIdentifier","src":"14218:6:88"},"nativeSrc":"14218:21:88","nodeType":"YulFunctionCall","src":"14218:21:88"},"nativeSrc":"14218:21:88","nodeType":"YulExpressionStatement","src":"14218:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14259:9:88","nodeType":"YulIdentifier","src":"14259:9:88"},{"kind":"number","nativeSrc":"14270:2:88","nodeType":"YulLiteral","src":"14270:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14255:3:88","nodeType":"YulIdentifier","src":"14255:3:88"},"nativeSrc":"14255:18:88","nodeType":"YulFunctionCall","src":"14255:18:88"},{"kind":"number","nativeSrc":"14275:2:88","nodeType":"YulLiteral","src":"14275:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"14248:6:88","nodeType":"YulIdentifier","src":"14248:6:88"},"nativeSrc":"14248:30:88","nodeType":"YulFunctionCall","src":"14248:30:88"},"nativeSrc":"14248:30:88","nodeType":"YulExpressionStatement","src":"14248:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14298:9:88","nodeType":"YulIdentifier","src":"14298:9:88"},{"kind":"number","nativeSrc":"14309:2:88","nodeType":"YulLiteral","src":"14309:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14294:3:88","nodeType":"YulIdentifier","src":"14294:3:88"},"nativeSrc":"14294:18:88","nodeType":"YulFunctionCall","src":"14294:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"14314:34:88","nodeType":"YulLiteral","src":"14314:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"14287:6:88","nodeType":"YulIdentifier","src":"14287:6:88"},"nativeSrc":"14287:62:88","nodeType":"YulFunctionCall","src":"14287:62:88"},"nativeSrc":"14287:62:88","nodeType":"YulExpressionStatement","src":"14287:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14369:9:88","nodeType":"YulIdentifier","src":"14369:9:88"},{"kind":"number","nativeSrc":"14380:2:88","nodeType":"YulLiteral","src":"14380:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14365:3:88","nodeType":"YulIdentifier","src":"14365:3:88"},"nativeSrc":"14365:18:88","nodeType":"YulFunctionCall","src":"14365:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"14385:26:88","nodeType":"YulLiteral","src":"14385:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"14358:6:88","nodeType":"YulIdentifier","src":"14358:6:88"},"nativeSrc":"14358:54:88","nodeType":"YulFunctionCall","src":"14358:54:88"},"nativeSrc":"14358:54:88","nodeType":"YulExpressionStatement","src":"14358:54:88"},{"nativeSrc":"14421:27:88","nodeType":"YulAssignment","src":"14421:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14433:9:88","nodeType":"YulIdentifier","src":"14433:9:88"},{"kind":"number","nativeSrc":"14444:3:88","nodeType":"YulLiteral","src":"14444:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14429:3:88","nodeType":"YulIdentifier","src":"14429:3:88"},"nativeSrc":"14429:19:88","nodeType":"YulFunctionCall","src":"14429:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14421:4:88","nodeType":"YulIdentifier","src":"14421:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14034:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14185:9:88","nodeType":"YulTypedName","src":"14185:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14199:4:88","nodeType":"YulTypedName","src":"14199:4:88","type":""}],"src":"14034:420:88"},{"body":{"nativeSrc":"14491:95:88","nodeType":"YulBlock","src":"14491:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14508:1:88","nodeType":"YulLiteral","src":"14508:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"14515:3:88","nodeType":"YulLiteral","src":"14515:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"14520:10:88","nodeType":"YulLiteral","src":"14520:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"14511:3:88","nodeType":"YulIdentifier","src":"14511:3:88"},"nativeSrc":"14511:20:88","nodeType":"YulFunctionCall","src":"14511:20:88"}],"functionName":{"name":"mstore","nativeSrc":"14501:6:88","nodeType":"YulIdentifier","src":"14501:6:88"},"nativeSrc":"14501:31:88","nodeType":"YulFunctionCall","src":"14501:31:88"},"nativeSrc":"14501:31:88","nodeType":"YulExpressionStatement","src":"14501:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14548:1:88","nodeType":"YulLiteral","src":"14548:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"14551:4:88","nodeType":"YulLiteral","src":"14551:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"14541:6:88","nodeType":"YulIdentifier","src":"14541:6:88"},"nativeSrc":"14541:15:88","nodeType":"YulFunctionCall","src":"14541:15:88"},"nativeSrc":"14541:15:88","nodeType":"YulExpressionStatement","src":"14541:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14572:1:88","nodeType":"YulLiteral","src":"14572:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14575:4:88","nodeType":"YulLiteral","src":"14575:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14565:6:88","nodeType":"YulIdentifier","src":"14565:6:88"},"nativeSrc":"14565:15:88","nodeType":"YulFunctionCall","src":"14565:15:88"},"nativeSrc":"14565:15:88","nodeType":"YulExpressionStatement","src":"14565:15:88"}]},"name":"panic_error_0x11","nativeSrc":"14459:127:88","nodeType":"YulFunctionDefinition","src":"14459:127:88"},{"body":{"nativeSrc":"14640:79:88","nodeType":"YulBlock","src":"14640:79:88","statements":[{"nativeSrc":"14650:17:88","nodeType":"YulAssignment","src":"14650:17:88","value":{"arguments":[{"name":"x","nativeSrc":"14662:1:88","nodeType":"YulIdentifier","src":"14662:1:88"},{"name":"y","nativeSrc":"14665:1:88","nodeType":"YulIdentifier","src":"14665:1:88"}],"functionName":{"name":"sub","nativeSrc":"14658:3:88","nodeType":"YulIdentifier","src":"14658:3:88"},"nativeSrc":"14658:9:88","nodeType":"YulFunctionCall","src":"14658:9:88"},"variableNames":[{"name":"diff","nativeSrc":"14650:4:88","nodeType":"YulIdentifier","src":"14650:4:88"}]},{"body":{"nativeSrc":"14691:22:88","nodeType":"YulBlock","src":"14691:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14693:16:88","nodeType":"YulIdentifier","src":"14693:16:88"},"nativeSrc":"14693:18:88","nodeType":"YulFunctionCall","src":"14693:18:88"},"nativeSrc":"14693:18:88","nodeType":"YulExpressionStatement","src":"14693:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"14682:4:88","nodeType":"YulIdentifier","src":"14682:4:88"},{"name":"x","nativeSrc":"14688:1:88","nodeType":"YulIdentifier","src":"14688:1:88"}],"functionName":{"name":"gt","nativeSrc":"14679:2:88","nodeType":"YulIdentifier","src":"14679:2:88"},"nativeSrc":"14679:11:88","nodeType":"YulFunctionCall","src":"14679:11:88"},"nativeSrc":"14676:37:88","nodeType":"YulIf","src":"14676:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"14591:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14622:1:88","nodeType":"YulTypedName","src":"14622:1:88","type":""},{"name":"y","nativeSrc":"14625:1:88","nodeType":"YulTypedName","src":"14625:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"14631:4:88","nodeType":"YulTypedName","src":"14631:4:88","type":""}],"src":"14591:128:88"},{"body":{"nativeSrc":"14898:236:88","nodeType":"YulBlock","src":"14898:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14915:9:88","nodeType":"YulIdentifier","src":"14915:9:88"},{"kind":"number","nativeSrc":"14926:2:88","nodeType":"YulLiteral","src":"14926:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14908:6:88","nodeType":"YulIdentifier","src":"14908:6:88"},"nativeSrc":"14908:21:88","nodeType":"YulFunctionCall","src":"14908:21:88"},"nativeSrc":"14908:21:88","nodeType":"YulExpressionStatement","src":"14908:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14949:9:88","nodeType":"YulIdentifier","src":"14949:9:88"},{"kind":"number","nativeSrc":"14960:2:88","nodeType":"YulLiteral","src":"14960:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14945:3:88","nodeType":"YulIdentifier","src":"14945:3:88"},"nativeSrc":"14945:18:88","nodeType":"YulFunctionCall","src":"14945:18:88"},{"kind":"number","nativeSrc":"14965:2:88","nodeType":"YulLiteral","src":"14965:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"14938:6:88","nodeType":"YulIdentifier","src":"14938:6:88"},"nativeSrc":"14938:30:88","nodeType":"YulFunctionCall","src":"14938:30:88"},"nativeSrc":"14938:30:88","nodeType":"YulExpressionStatement","src":"14938:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14988:9:88","nodeType":"YulIdentifier","src":"14988:9:88"},{"kind":"number","nativeSrc":"14999:2:88","nodeType":"YulLiteral","src":"14999:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14984:3:88","nodeType":"YulIdentifier","src":"14984:3:88"},"nativeSrc":"14984:18:88","nodeType":"YulFunctionCall","src":"14984:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"15004:34:88","nodeType":"YulLiteral","src":"15004:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"14977:6:88","nodeType":"YulIdentifier","src":"14977:6:88"},"nativeSrc":"14977:62:88","nodeType":"YulFunctionCall","src":"14977:62:88"},"nativeSrc":"14977:62:88","nodeType":"YulExpressionStatement","src":"14977:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15059:9:88","nodeType":"YulIdentifier","src":"15059:9:88"},{"kind":"number","nativeSrc":"15070:2:88","nodeType":"YulLiteral","src":"15070:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15055:3:88","nodeType":"YulIdentifier","src":"15055:3:88"},"nativeSrc":"15055:18:88","nodeType":"YulFunctionCall","src":"15055:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"15075:16:88","nodeType":"YulLiteral","src":"15075:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"15048:6:88","nodeType":"YulIdentifier","src":"15048:6:88"},"nativeSrc":"15048:44:88","nodeType":"YulFunctionCall","src":"15048:44:88"},"nativeSrc":"15048:44:88","nodeType":"YulExpressionStatement","src":"15048:44:88"},{"nativeSrc":"15101:27:88","nodeType":"YulAssignment","src":"15101:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15113:9:88","nodeType":"YulIdentifier","src":"15113:9:88"},{"kind":"number","nativeSrc":"15124:3:88","nodeType":"YulLiteral","src":"15124:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15109:3:88","nodeType":"YulIdentifier","src":"15109:3:88"},"nativeSrc":"15109:19:88","nodeType":"YulFunctionCall","src":"15109:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15101:4:88","nodeType":"YulIdentifier","src":"15101:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14724:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14875:9:88","nodeType":"YulTypedName","src":"14875:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14889:4:88","nodeType":"YulTypedName","src":"14889:4:88","type":""}],"src":"14724:410:88"},{"body":{"nativeSrc":"15246:87:88","nodeType":"YulBlock","src":"15246:87:88","statements":[{"nativeSrc":"15256:26:88","nodeType":"YulAssignment","src":"15256:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15268:9:88","nodeType":"YulIdentifier","src":"15268:9:88"},{"kind":"number","nativeSrc":"15279:2:88","nodeType":"YulLiteral","src":"15279:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15264:3:88","nodeType":"YulIdentifier","src":"15264:3:88"},"nativeSrc":"15264:18:88","nodeType":"YulFunctionCall","src":"15264:18:88"},"variableNames":[{"name":"tail","nativeSrc":"15256:4:88","nodeType":"YulIdentifier","src":"15256:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15298:9:88","nodeType":"YulIdentifier","src":"15298:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15313:6:88","nodeType":"YulIdentifier","src":"15313:6:88"},{"kind":"number","nativeSrc":"15321:4:88","nodeType":"YulLiteral","src":"15321:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"15309:3:88","nodeType":"YulIdentifier","src":"15309:3:88"},"nativeSrc":"15309:17:88","nodeType":"YulFunctionCall","src":"15309:17:88"}],"functionName":{"name":"mstore","nativeSrc":"15291:6:88","nodeType":"YulIdentifier","src":"15291:6:88"},"nativeSrc":"15291:36:88","nodeType":"YulFunctionCall","src":"15291:36:88"},"nativeSrc":"15291:36:88","nodeType":"YulExpressionStatement","src":"15291:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"15139:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15215:9:88","nodeType":"YulTypedName","src":"15215:9:88","type":""},{"name":"value0","nativeSrc":"15226:6:88","nodeType":"YulTypedName","src":"15226:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15237:4:88","nodeType":"YulTypedName","src":"15237:4:88","type":""}],"src":"15139:194:88"},{"body":{"nativeSrc":"15400:85:88","nodeType":"YulBlock","src":"15400:85:88","statements":[{"nativeSrc":"15410:29:88","nodeType":"YulAssignment","src":"15410:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"15432:6:88","nodeType":"YulIdentifier","src":"15432:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"15419:12:88","nodeType":"YulIdentifier","src":"15419:12:88"},"nativeSrc":"15419:20:88","nodeType":"YulFunctionCall","src":"15419:20:88"},"variableNames":[{"name":"value","nativeSrc":"15410:5:88","nodeType":"YulIdentifier","src":"15410:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15473:5:88","nodeType":"YulIdentifier","src":"15473:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15448:24:88","nodeType":"YulIdentifier","src":"15448:24:88"},"nativeSrc":"15448:31:88","nodeType":"YulFunctionCall","src":"15448:31:88"},"nativeSrc":"15448:31:88","nodeType":"YulExpressionStatement","src":"15448:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"15338:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15379:6:88","nodeType":"YulTypedName","src":"15379:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15390:5:88","nodeType":"YulTypedName","src":"15390:5:88","type":""}],"src":"15338:147:88"},{"body":{"nativeSrc":"15553:1676:88","nodeType":"YulBlock","src":"15553:1676:88","statements":[{"nativeSrc":"15563:16:88","nodeType":"YulVariableDeclaration","src":"15563:16:88","value":{"kind":"number","nativeSrc":"15578:1:88","nodeType":"YulLiteral","src":"15578:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"15567:7:88","nodeType":"YulTypedName","src":"15567:7:88","type":""}]},{"nativeSrc":"15588:30:88","nodeType":"YulAssignment","src":"15588:30:88","value":{"arguments":[{"name":"value","nativeSrc":"15612:5:88","nodeType":"YulIdentifier","src":"15612:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"15599:12:88","nodeType":"YulIdentifier","src":"15599:12:88"},"nativeSrc":"15599:19:88","nodeType":"YulFunctionCall","src":"15599:19:88"},"variableNames":[{"name":"value_1","nativeSrc":"15588:7:88","nodeType":"YulIdentifier","src":"15588:7:88"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15634:3:88","nodeType":"YulIdentifier","src":"15634:3:88"},{"name":"value_1","nativeSrc":"15639:7:88","nodeType":"YulIdentifier","src":"15639:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15627:6:88","nodeType":"YulIdentifier","src":"15627:6:88"},"nativeSrc":"15627:20:88","nodeType":"YulFunctionCall","src":"15627:20:88"},"nativeSrc":"15627:20:88","nodeType":"YulExpressionStatement","src":"15627:20:88"},{"nativeSrc":"15656:16:88","nodeType":"YulVariableDeclaration","src":"15656:16:88","value":{"kind":"number","nativeSrc":"15671:1:88","nodeType":"YulLiteral","src":"15671:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"15660:7:88","nodeType":"YulTypedName","src":"15660:7:88","type":""}]},{"nativeSrc":"15681:41:88","nodeType":"YulAssignment","src":"15681:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15709:5:88","nodeType":"YulIdentifier","src":"15709:5:88"},{"kind":"number","nativeSrc":"15716:4:88","nodeType":"YulLiteral","src":"15716:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15705:3:88","nodeType":"YulIdentifier","src":"15705:3:88"},"nativeSrc":"15705:16:88","nodeType":"YulFunctionCall","src":"15705:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"15692:12:88","nodeType":"YulIdentifier","src":"15692:12:88"},"nativeSrc":"15692:30:88","nodeType":"YulFunctionCall","src":"15692:30:88"},"variableNames":[{"name":"value_2","nativeSrc":"15681:7:88","nodeType":"YulIdentifier","src":"15681:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15742:3:88","nodeType":"YulIdentifier","src":"15742:3:88"},{"kind":"number","nativeSrc":"15747:4:88","nodeType":"YulLiteral","src":"15747:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15738:3:88","nodeType":"YulIdentifier","src":"15738:3:88"},"nativeSrc":"15738:14:88","nodeType":"YulFunctionCall","src":"15738:14:88"},{"name":"value_2","nativeSrc":"15754:7:88","nodeType":"YulIdentifier","src":"15754:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15731:6:88","nodeType":"YulIdentifier","src":"15731:6:88"},"nativeSrc":"15731:31:88","nodeType":"YulFunctionCall","src":"15731:31:88"},"nativeSrc":"15731:31:88","nodeType":"YulExpressionStatement","src":"15731:31:88"},{"nativeSrc":"15771:16:88","nodeType":"YulVariableDeclaration","src":"15771:16:88","value":{"kind":"number","nativeSrc":"15786:1:88","nodeType":"YulLiteral","src":"15786:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"15775:7:88","nodeType":"YulTypedName","src":"15775:7:88","type":""}]},{"nativeSrc":"15796:41:88","nodeType":"YulAssignment","src":"15796:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15824:5:88","nodeType":"YulIdentifier","src":"15824:5:88"},{"kind":"number","nativeSrc":"15831:4:88","nodeType":"YulLiteral","src":"15831:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15820:3:88","nodeType":"YulIdentifier","src":"15820:3:88"},"nativeSrc":"15820:16:88","nodeType":"YulFunctionCall","src":"15820:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"15807:12:88","nodeType":"YulIdentifier","src":"15807:12:88"},"nativeSrc":"15807:30:88","nodeType":"YulFunctionCall","src":"15807:30:88"},"variableNames":[{"name":"value_3","nativeSrc":"15796:7:88","nodeType":"YulIdentifier","src":"15796:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15857:3:88","nodeType":"YulIdentifier","src":"15857:3:88"},{"kind":"number","nativeSrc":"15862:4:88","nodeType":"YulLiteral","src":"15862:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15853:3:88","nodeType":"YulIdentifier","src":"15853:3:88"},"nativeSrc":"15853:14:88","nodeType":"YulFunctionCall","src":"15853:14:88"},{"name":"value_3","nativeSrc":"15869:7:88","nodeType":"YulIdentifier","src":"15869:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15846:6:88","nodeType":"YulIdentifier","src":"15846:6:88"},"nativeSrc":"15846:31:88","nodeType":"YulFunctionCall","src":"15846:31:88"},"nativeSrc":"15846:31:88","nodeType":"YulExpressionStatement","src":"15846:31:88"},{"nativeSrc":"15886:16:88","nodeType":"YulVariableDeclaration","src":"15886:16:88","value":{"kind":"number","nativeSrc":"15901:1:88","nodeType":"YulLiteral","src":"15901:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"15890:7:88","nodeType":"YulTypedName","src":"15890:7:88","type":""}]},{"nativeSrc":"15911:41:88","nodeType":"YulAssignment","src":"15911:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15939:5:88","nodeType":"YulIdentifier","src":"15939:5:88"},{"kind":"number","nativeSrc":"15946:4:88","nodeType":"YulLiteral","src":"15946:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15935:3:88","nodeType":"YulIdentifier","src":"15935:3:88"},"nativeSrc":"15935:16:88","nodeType":"YulFunctionCall","src":"15935:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"15922:12:88","nodeType":"YulIdentifier","src":"15922:12:88"},"nativeSrc":"15922:30:88","nodeType":"YulFunctionCall","src":"15922:30:88"},"variableNames":[{"name":"value_4","nativeSrc":"15911:7:88","nodeType":"YulIdentifier","src":"15911:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15972:3:88","nodeType":"YulIdentifier","src":"15972:3:88"},{"kind":"number","nativeSrc":"15977:4:88","nodeType":"YulLiteral","src":"15977:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15968:3:88","nodeType":"YulIdentifier","src":"15968:3:88"},"nativeSrc":"15968:14:88","nodeType":"YulFunctionCall","src":"15968:14:88"},{"name":"value_4","nativeSrc":"15984:7:88","nodeType":"YulIdentifier","src":"15984:7:88"}],"functionName":{"name":"mstore","nativeSrc":"15961:6:88","nodeType":"YulIdentifier","src":"15961:6:88"},"nativeSrc":"15961:31:88","nodeType":"YulFunctionCall","src":"15961:31:88"},"nativeSrc":"15961:31:88","nodeType":"YulExpressionStatement","src":"15961:31:88"},{"nativeSrc":"16001:16:88","nodeType":"YulVariableDeclaration","src":"16001:16:88","value":{"kind":"number","nativeSrc":"16016:1:88","nodeType":"YulLiteral","src":"16016:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"16005:7:88","nodeType":"YulTypedName","src":"16005:7:88","type":""}]},{"nativeSrc":"16026:41:88","nodeType":"YulAssignment","src":"16026:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16054:5:88","nodeType":"YulIdentifier","src":"16054:5:88"},{"kind":"number","nativeSrc":"16061:4:88","nodeType":"YulLiteral","src":"16061:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16050:3:88","nodeType":"YulIdentifier","src":"16050:3:88"},"nativeSrc":"16050:16:88","nodeType":"YulFunctionCall","src":"16050:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16037:12:88","nodeType":"YulIdentifier","src":"16037:12:88"},"nativeSrc":"16037:30:88","nodeType":"YulFunctionCall","src":"16037:30:88"},"variableNames":[{"name":"value_5","nativeSrc":"16026:7:88","nodeType":"YulIdentifier","src":"16026:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16087:3:88","nodeType":"YulIdentifier","src":"16087:3:88"},{"kind":"number","nativeSrc":"16092:4:88","nodeType":"YulLiteral","src":"16092:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16083:3:88","nodeType":"YulIdentifier","src":"16083:3:88"},"nativeSrc":"16083:14:88","nodeType":"YulFunctionCall","src":"16083:14:88"},{"name":"value_5","nativeSrc":"16099:7:88","nodeType":"YulIdentifier","src":"16099:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16076:6:88","nodeType":"YulIdentifier","src":"16076:6:88"},"nativeSrc":"16076:31:88","nodeType":"YulFunctionCall","src":"16076:31:88"},"nativeSrc":"16076:31:88","nodeType":"YulExpressionStatement","src":"16076:31:88"},{"nativeSrc":"16116:16:88","nodeType":"YulVariableDeclaration","src":"16116:16:88","value":{"kind":"number","nativeSrc":"16131:1:88","nodeType":"YulLiteral","src":"16131:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"16120:7:88","nodeType":"YulTypedName","src":"16120:7:88","type":""}]},{"nativeSrc":"16141:41:88","nodeType":"YulAssignment","src":"16141:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16169:5:88","nodeType":"YulIdentifier","src":"16169:5:88"},{"kind":"number","nativeSrc":"16176:4:88","nodeType":"YulLiteral","src":"16176:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16165:3:88","nodeType":"YulIdentifier","src":"16165:3:88"},"nativeSrc":"16165:16:88","nodeType":"YulFunctionCall","src":"16165:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16152:12:88","nodeType":"YulIdentifier","src":"16152:12:88"},"nativeSrc":"16152:30:88","nodeType":"YulFunctionCall","src":"16152:30:88"},"variableNames":[{"name":"value_6","nativeSrc":"16141:7:88","nodeType":"YulIdentifier","src":"16141:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16202:3:88","nodeType":"YulIdentifier","src":"16202:3:88"},{"kind":"number","nativeSrc":"16207:4:88","nodeType":"YulLiteral","src":"16207:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"16198:3:88","nodeType":"YulIdentifier","src":"16198:3:88"},"nativeSrc":"16198:14:88","nodeType":"YulFunctionCall","src":"16198:14:88"},{"name":"value_6","nativeSrc":"16214:7:88","nodeType":"YulIdentifier","src":"16214:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16191:6:88","nodeType":"YulIdentifier","src":"16191:6:88"},"nativeSrc":"16191:31:88","nodeType":"YulFunctionCall","src":"16191:31:88"},"nativeSrc":"16191:31:88","nodeType":"YulExpressionStatement","src":"16191:31:88"},{"nativeSrc":"16231:16:88","nodeType":"YulVariableDeclaration","src":"16231:16:88","value":{"kind":"number","nativeSrc":"16246:1:88","nodeType":"YulLiteral","src":"16246:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"16235:7:88","nodeType":"YulTypedName","src":"16235:7:88","type":""}]},{"nativeSrc":"16256:41:88","nodeType":"YulAssignment","src":"16256:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16284:5:88","nodeType":"YulIdentifier","src":"16284:5:88"},{"kind":"number","nativeSrc":"16291:4:88","nodeType":"YulLiteral","src":"16291:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16280:3:88","nodeType":"YulIdentifier","src":"16280:3:88"},"nativeSrc":"16280:16:88","nodeType":"YulFunctionCall","src":"16280:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16267:12:88","nodeType":"YulIdentifier","src":"16267:12:88"},"nativeSrc":"16267:30:88","nodeType":"YulFunctionCall","src":"16267:30:88"},"variableNames":[{"name":"value_7","nativeSrc":"16256:7:88","nodeType":"YulIdentifier","src":"16256:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16317:3:88","nodeType":"YulIdentifier","src":"16317:3:88"},{"kind":"number","nativeSrc":"16322:4:88","nodeType":"YulLiteral","src":"16322:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"16313:3:88","nodeType":"YulIdentifier","src":"16313:3:88"},"nativeSrc":"16313:14:88","nodeType":"YulFunctionCall","src":"16313:14:88"},{"name":"value_7","nativeSrc":"16329:7:88","nodeType":"YulIdentifier","src":"16329:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16306:6:88","nodeType":"YulIdentifier","src":"16306:6:88"},"nativeSrc":"16306:31:88","nodeType":"YulFunctionCall","src":"16306:31:88"},"nativeSrc":"16306:31:88","nodeType":"YulExpressionStatement","src":"16306:31:88"},{"nativeSrc":"16346:16:88","nodeType":"YulVariableDeclaration","src":"16346:16:88","value":{"kind":"number","nativeSrc":"16361:1:88","nodeType":"YulLiteral","src":"16361:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"16350:7:88","nodeType":"YulTypedName","src":"16350:7:88","type":""}]},{"nativeSrc":"16371:41:88","nodeType":"YulAssignment","src":"16371:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16399:5:88","nodeType":"YulIdentifier","src":"16399:5:88"},{"kind":"number","nativeSrc":"16406:4:88","nodeType":"YulLiteral","src":"16406:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"16395:3:88","nodeType":"YulIdentifier","src":"16395:3:88"},"nativeSrc":"16395:16:88","nodeType":"YulFunctionCall","src":"16395:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"16382:12:88","nodeType":"YulIdentifier","src":"16382:12:88"},"nativeSrc":"16382:30:88","nodeType":"YulFunctionCall","src":"16382:30:88"},"variableNames":[{"name":"value_8","nativeSrc":"16371:7:88","nodeType":"YulIdentifier","src":"16371:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16432:3:88","nodeType":"YulIdentifier","src":"16432:3:88"},{"kind":"number","nativeSrc":"16437:4:88","nodeType":"YulLiteral","src":"16437:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"16428:3:88","nodeType":"YulIdentifier","src":"16428:3:88"},"nativeSrc":"16428:14:88","nodeType":"YulFunctionCall","src":"16428:14:88"},{"name":"value_8","nativeSrc":"16444:7:88","nodeType":"YulIdentifier","src":"16444:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16421:6:88","nodeType":"YulIdentifier","src":"16421:6:88"},"nativeSrc":"16421:31:88","nodeType":"YulFunctionCall","src":"16421:31:88"},"nativeSrc":"16421:31:88","nodeType":"YulExpressionStatement","src":"16421:31:88"},{"nativeSrc":"16461:16:88","nodeType":"YulVariableDeclaration","src":"16461:16:88","value":{"kind":"number","nativeSrc":"16476:1:88","nodeType":"YulLiteral","src":"16476:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"16465:7:88","nodeType":"YulTypedName","src":"16465:7:88","type":""}]},{"nativeSrc":"16486:43:88","nodeType":"YulAssignment","src":"16486:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16514:5:88","nodeType":"YulIdentifier","src":"16514:5:88"},{"kind":"number","nativeSrc":"16521:6:88","nodeType":"YulLiteral","src":"16521:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"16510:3:88","nodeType":"YulIdentifier","src":"16510:3:88"},"nativeSrc":"16510:18:88","nodeType":"YulFunctionCall","src":"16510:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16497:12:88","nodeType":"YulIdentifier","src":"16497:12:88"},"nativeSrc":"16497:32:88","nodeType":"YulFunctionCall","src":"16497:32:88"},"variableNames":[{"name":"value_9","nativeSrc":"16486:7:88","nodeType":"YulIdentifier","src":"16486:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16549:3:88","nodeType":"YulIdentifier","src":"16549:3:88"},{"kind":"number","nativeSrc":"16554:6:88","nodeType":"YulLiteral","src":"16554:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"16545:3:88","nodeType":"YulIdentifier","src":"16545:3:88"},"nativeSrc":"16545:16:88","nodeType":"YulFunctionCall","src":"16545:16:88"},{"name":"value_9","nativeSrc":"16563:7:88","nodeType":"YulIdentifier","src":"16563:7:88"}],"functionName":{"name":"mstore","nativeSrc":"16538:6:88","nodeType":"YulIdentifier","src":"16538:6:88"},"nativeSrc":"16538:33:88","nodeType":"YulFunctionCall","src":"16538:33:88"},"nativeSrc":"16538:33:88","nodeType":"YulExpressionStatement","src":"16538:33:88"},{"nativeSrc":"16580:17:88","nodeType":"YulVariableDeclaration","src":"16580:17:88","value":{"kind":"number","nativeSrc":"16596:1:88","nodeType":"YulLiteral","src":"16596:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"16584:8:88","nodeType":"YulTypedName","src":"16584:8:88","type":""}]},{"nativeSrc":"16606:44:88","nodeType":"YulAssignment","src":"16606:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16635:5:88","nodeType":"YulIdentifier","src":"16635:5:88"},{"kind":"number","nativeSrc":"16642:6:88","nodeType":"YulLiteral","src":"16642:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"16631:3:88","nodeType":"YulIdentifier","src":"16631:3:88"},"nativeSrc":"16631:18:88","nodeType":"YulFunctionCall","src":"16631:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16618:12:88","nodeType":"YulIdentifier","src":"16618:12:88"},"nativeSrc":"16618:32:88","nodeType":"YulFunctionCall","src":"16618:32:88"},"variableNames":[{"name":"value_10","nativeSrc":"16606:8:88","nodeType":"YulIdentifier","src":"16606:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16670:3:88","nodeType":"YulIdentifier","src":"16670:3:88"},{"kind":"number","nativeSrc":"16675:6:88","nodeType":"YulLiteral","src":"16675:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"16666:3:88","nodeType":"YulIdentifier","src":"16666:3:88"},"nativeSrc":"16666:16:88","nodeType":"YulFunctionCall","src":"16666:16:88"},{"name":"value_10","nativeSrc":"16684:8:88","nodeType":"YulIdentifier","src":"16684:8:88"}],"functionName":{"name":"mstore","nativeSrc":"16659:6:88","nodeType":"YulIdentifier","src":"16659:6:88"},"nativeSrc":"16659:34:88","nodeType":"YulFunctionCall","src":"16659:34:88"},"nativeSrc":"16659:34:88","nodeType":"YulExpressionStatement","src":"16659:34:88"},{"nativeSrc":"16702:17:88","nodeType":"YulVariableDeclaration","src":"16702:17:88","value":{"kind":"number","nativeSrc":"16718:1:88","nodeType":"YulLiteral","src":"16718:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"16706:8:88","nodeType":"YulTypedName","src":"16706:8:88","type":""}]},{"nativeSrc":"16728:44:88","nodeType":"YulAssignment","src":"16728:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16757:5:88","nodeType":"YulIdentifier","src":"16757:5:88"},{"kind":"number","nativeSrc":"16764:6:88","nodeType":"YulLiteral","src":"16764:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"16753:3:88","nodeType":"YulIdentifier","src":"16753:3:88"},"nativeSrc":"16753:18:88","nodeType":"YulFunctionCall","src":"16753:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"16740:12:88","nodeType":"YulIdentifier","src":"16740:12:88"},"nativeSrc":"16740:32:88","nodeType":"YulFunctionCall","src":"16740:32:88"},"variableNames":[{"name":"value_11","nativeSrc":"16728:8:88","nodeType":"YulIdentifier","src":"16728:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16792:3:88","nodeType":"YulIdentifier","src":"16792:3:88"},{"kind":"number","nativeSrc":"16797:6:88","nodeType":"YulLiteral","src":"16797:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"16788:3:88","nodeType":"YulIdentifier","src":"16788:3:88"},"nativeSrc":"16788:16:88","nodeType":"YulFunctionCall","src":"16788:16:88"},{"name":"value_11","nativeSrc":"16806:8:88","nodeType":"YulIdentifier","src":"16806:8:88"}],"functionName":{"name":"mstore","nativeSrc":"16781:6:88","nodeType":"YulIdentifier","src":"16781:6:88"},"nativeSrc":"16781:34:88","nodeType":"YulFunctionCall","src":"16781:34:88"},"nativeSrc":"16781:34:88","nodeType":"YulExpressionStatement","src":"16781:34:88"},{"nativeSrc":"16824:71:88","nodeType":"YulVariableDeclaration","src":"16824:71:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16880:5:88","nodeType":"YulIdentifier","src":"16880:5:88"},{"kind":"number","nativeSrc":"16887:6:88","nodeType":"YulLiteral","src":"16887:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"16876:3:88","nodeType":"YulIdentifier","src":"16876:3:88"},"nativeSrc":"16876:18:88","nodeType":"YulFunctionCall","src":"16876:18:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"16844:31:88","nodeType":"YulIdentifier","src":"16844:31:88"},"nativeSrc":"16844:51:88","nodeType":"YulFunctionCall","src":"16844:51:88"},"variables":[{"name":"memberValue0","nativeSrc":"16828:12:88","nodeType":"YulTypedName","src":"16828:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16936:12:88","nodeType":"YulIdentifier","src":"16936:12:88"},{"arguments":[{"name":"pos","nativeSrc":"16954:3:88","nodeType":"YulIdentifier","src":"16954:3:88"},{"kind":"number","nativeSrc":"16959:6:88","nodeType":"YulLiteral","src":"16959:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"16950:3:88","nodeType":"YulIdentifier","src":"16950:3:88"},"nativeSrc":"16950:16:88","nodeType":"YulFunctionCall","src":"16950:16:88"}],"functionName":{"name":"abi_encode_contract_IRiskModule","nativeSrc":"16904:31:88","nodeType":"YulIdentifier","src":"16904:31:88"},"nativeSrc":"16904:63:88","nodeType":"YulFunctionCall","src":"16904:63:88"},"nativeSrc":"16904:63:88","nodeType":"YulExpressionStatement","src":"16904:63:88"},{"nativeSrc":"16976:59:88","nodeType":"YulVariableDeclaration","src":"16976:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17020:5:88","nodeType":"YulIdentifier","src":"17020:5:88"},{"kind":"number","nativeSrc":"17027:6:88","nodeType":"YulLiteral","src":"17027:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17016:3:88","nodeType":"YulIdentifier","src":"17016:3:88"},"nativeSrc":"17016:18:88","nodeType":"YulFunctionCall","src":"17016:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"16998:17:88","nodeType":"YulIdentifier","src":"16998:17:88"},"nativeSrc":"16998:37:88","nodeType":"YulFunctionCall","src":"16998:37:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"16980:14:88","nodeType":"YulTypedName","src":"16980:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"17062:14:88","nodeType":"YulIdentifier","src":"17062:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17082:3:88","nodeType":"YulIdentifier","src":"17082:3:88"},{"kind":"number","nativeSrc":"17087:6:88","nodeType":"YulLiteral","src":"17087:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"17078:3:88","nodeType":"YulIdentifier","src":"17078:3:88"},"nativeSrc":"17078:16:88","nodeType":"YulFunctionCall","src":"17078:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17044:17:88","nodeType":"YulIdentifier","src":"17044:17:88"},"nativeSrc":"17044:51:88","nodeType":"YulFunctionCall","src":"17044:51:88"},"nativeSrc":"17044:51:88","nodeType":"YulExpressionStatement","src":"17044:51:88"},{"nativeSrc":"17104:59:88","nodeType":"YulVariableDeclaration","src":"17104:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17148:5:88","nodeType":"YulIdentifier","src":"17148:5:88"},{"kind":"number","nativeSrc":"17155:6:88","nodeType":"YulLiteral","src":"17155:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17144:3:88","nodeType":"YulIdentifier","src":"17144:3:88"},"nativeSrc":"17144:18:88","nodeType":"YulFunctionCall","src":"17144:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"17126:17:88","nodeType":"YulIdentifier","src":"17126:17:88"},"nativeSrc":"17126:37:88","nodeType":"YulFunctionCall","src":"17126:37:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"17108:14:88","nodeType":"YulTypedName","src":"17108:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"17190:14:88","nodeType":"YulIdentifier","src":"17190:14:88"},{"arguments":[{"name":"pos","nativeSrc":"17210:3:88","nodeType":"YulIdentifier","src":"17210:3:88"},{"kind":"number","nativeSrc":"17215:6:88","nodeType":"YulLiteral","src":"17215:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"17206:3:88","nodeType":"YulIdentifier","src":"17206:3:88"},"nativeSrc":"17206:16:88","nodeType":"YulFunctionCall","src":"17206:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"17172:17:88","nodeType":"YulIdentifier","src":"17172:17:88"},"nativeSrc":"17172:51:88","nodeType":"YulFunctionCall","src":"17172:51:88"},"nativeSrc":"17172:51:88","nodeType":"YulExpressionStatement","src":"17172:51:88"}]},"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"15490:1739:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15537:5:88","nodeType":"YulTypedName","src":"15537:5:88","type":""},{"name":"pos","nativeSrc":"15544:3:88","nodeType":"YulTypedName","src":"15544:3:88","type":""}],"src":"15490:1739:88"},{"body":{"nativeSrc":"17423:152:88","nodeType":"YulBlock","src":"17423:152:88","statements":[{"nativeSrc":"17433:27:88","nodeType":"YulAssignment","src":"17433:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17445:9:88","nodeType":"YulIdentifier","src":"17445:9:88"},{"kind":"number","nativeSrc":"17456:3:88","nodeType":"YulLiteral","src":"17456:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"17441:3:88","nodeType":"YulIdentifier","src":"17441:3:88"},"nativeSrc":"17441:19:88","nodeType":"YulFunctionCall","src":"17441:19:88"},"variableNames":[{"name":"tail","nativeSrc":"17433:4:88","nodeType":"YulIdentifier","src":"17433:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17507:6:88","nodeType":"YulIdentifier","src":"17507:6:88"},{"name":"headStart","nativeSrc":"17515:9:88","nodeType":"YulIdentifier","src":"17515:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"17469:37:88","nodeType":"YulIdentifier","src":"17469:37:88"},"nativeSrc":"17469:56:88","nodeType":"YulFunctionCall","src":"17469:56:88"},"nativeSrc":"17469:56:88","nodeType":"YulExpressionStatement","src":"17469:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17545:9:88","nodeType":"YulIdentifier","src":"17545:9:88"},{"kind":"number","nativeSrc":"17556:3:88","nodeType":"YulLiteral","src":"17556:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"17541:3:88","nodeType":"YulIdentifier","src":"17541:3:88"},"nativeSrc":"17541:19:88","nodeType":"YulFunctionCall","src":"17541:19:88"},{"name":"value1","nativeSrc":"17562:6:88","nodeType":"YulIdentifier","src":"17562:6:88"}],"functionName":{"name":"mstore","nativeSrc":"17534:6:88","nodeType":"YulIdentifier","src":"17534:6:88"},"nativeSrc":"17534:35:88","nodeType":"YulFunctionCall","src":"17534:35:88"},"nativeSrc":"17534:35:88","nodeType":"YulExpressionStatement","src":"17534:35:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"17234:341:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17384:9:88","nodeType":"YulTypedName","src":"17384:9:88","type":""},{"name":"value1","nativeSrc":"17395:6:88","nodeType":"YulTypedName","src":"17395:6:88","type":""},{"name":"value0","nativeSrc":"17403:6:88","nodeType":"YulTypedName","src":"17403:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17414:4:88","nodeType":"YulTypedName","src":"17414:4:88","type":""}],"src":"17234:341:88"},{"body":{"nativeSrc":"17612:95:88","nodeType":"YulBlock","src":"17612:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17629:1:88","nodeType":"YulLiteral","src":"17629:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"17636:3:88","nodeType":"YulLiteral","src":"17636:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"17641:10:88","nodeType":"YulLiteral","src":"17641:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"17632:3:88","nodeType":"YulIdentifier","src":"17632:3:88"},"nativeSrc":"17632:20:88","nodeType":"YulFunctionCall","src":"17632:20:88"}],"functionName":{"name":"mstore","nativeSrc":"17622:6:88","nodeType":"YulIdentifier","src":"17622:6:88"},"nativeSrc":"17622:31:88","nodeType":"YulFunctionCall","src":"17622:31:88"},"nativeSrc":"17622:31:88","nodeType":"YulExpressionStatement","src":"17622:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17669:1:88","nodeType":"YulLiteral","src":"17669:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"17672:4:88","nodeType":"YulLiteral","src":"17672:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"17662:6:88","nodeType":"YulIdentifier","src":"17662:6:88"},"nativeSrc":"17662:15:88","nodeType":"YulFunctionCall","src":"17662:15:88"},"nativeSrc":"17662:15:88","nodeType":"YulExpressionStatement","src":"17662:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17693:1:88","nodeType":"YulLiteral","src":"17693:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"17696:4:88","nodeType":"YulLiteral","src":"17696:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17686:6:88","nodeType":"YulIdentifier","src":"17686:6:88"},"nativeSrc":"17686:15:88","nodeType":"YulFunctionCall","src":"17686:15:88"},"nativeSrc":"17686:15:88","nodeType":"YulExpressionStatement","src":"17686:15:88"}]},"name":"panic_error_0x21","nativeSrc":"17580:127:88","nodeType":"YulFunctionDefinition","src":"17580:127:88"},{"body":{"nativeSrc":"17886:239:88","nodeType":"YulBlock","src":"17886:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17903:9:88","nodeType":"YulIdentifier","src":"17903:9:88"},{"kind":"number","nativeSrc":"17914:2:88","nodeType":"YulLiteral","src":"17914:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17896:6:88","nodeType":"YulIdentifier","src":"17896:6:88"},"nativeSrc":"17896:21:88","nodeType":"YulFunctionCall","src":"17896:21:88"},"nativeSrc":"17896:21:88","nodeType":"YulExpressionStatement","src":"17896:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17937:9:88","nodeType":"YulIdentifier","src":"17937:9:88"},{"kind":"number","nativeSrc":"17948:2:88","nodeType":"YulLiteral","src":"17948:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17933:3:88","nodeType":"YulIdentifier","src":"17933:3:88"},"nativeSrc":"17933:18:88","nodeType":"YulFunctionCall","src":"17933:18:88"},{"kind":"number","nativeSrc":"17953:2:88","nodeType":"YulLiteral","src":"17953:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"17926:6:88","nodeType":"YulIdentifier","src":"17926:6:88"},"nativeSrc":"17926:30:88","nodeType":"YulFunctionCall","src":"17926:30:88"},"nativeSrc":"17926:30:88","nodeType":"YulExpressionStatement","src":"17926:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17976:9:88","nodeType":"YulIdentifier","src":"17976:9:88"},{"kind":"number","nativeSrc":"17987:2:88","nodeType":"YulLiteral","src":"17987:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17972:3:88","nodeType":"YulIdentifier","src":"17972:3:88"},"nativeSrc":"17972:18:88","nodeType":"YulFunctionCall","src":"17972:18:88"},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c65737320746861","kind":"string","nativeSrc":"17992:34:88","nodeType":"YulLiteral","src":"17992:34:88","type":"","value":"Can't set exposureLimit less tha"}],"functionName":{"name":"mstore","nativeSrc":"17965:6:88","nodeType":"YulIdentifier","src":"17965:6:88"},"nativeSrc":"17965:62:88","nodeType":"YulFunctionCall","src":"17965:62:88"},"nativeSrc":"17965:62:88","nodeType":"YulExpressionStatement","src":"17965:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18047:9:88","nodeType":"YulIdentifier","src":"18047:9:88"},{"kind":"number","nativeSrc":"18058:2:88","nodeType":"YulLiteral","src":"18058:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18043:3:88","nodeType":"YulIdentifier","src":"18043:3:88"},"nativeSrc":"18043:18:88","nodeType":"YulFunctionCall","src":"18043:18:88"},{"hexValue":"6e20616374697665206578706f73757265","kind":"string","nativeSrc":"18063:19:88","nodeType":"YulLiteral","src":"18063:19:88","type":"","value":"n active exposure"}],"functionName":{"name":"mstore","nativeSrc":"18036:6:88","nodeType":"YulIdentifier","src":"18036:6:88"},"nativeSrc":"18036:47:88","nodeType":"YulFunctionCall","src":"18036:47:88"},"nativeSrc":"18036:47:88","nodeType":"YulExpressionStatement","src":"18036:47:88"},{"nativeSrc":"18092:27:88","nodeType":"YulAssignment","src":"18092:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18104:9:88","nodeType":"YulIdentifier","src":"18104:9:88"},{"kind":"number","nativeSrc":"18115:3:88","nodeType":"YulLiteral","src":"18115:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18100:3:88","nodeType":"YulIdentifier","src":"18100:3:88"},"nativeSrc":"18100:19:88","nodeType":"YulFunctionCall","src":"18100:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18092:4:88","nodeType":"YulIdentifier","src":"18092:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17712:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17863:9:88","nodeType":"YulTypedName","src":"17863:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17877:4:88","nodeType":"YulTypedName","src":"17877:4:88","type":""}],"src":"17712:413:88"},{"body":{"nativeSrc":"18304:179:88","nodeType":"YulBlock","src":"18304:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18321:9:88","nodeType":"YulIdentifier","src":"18321:9:88"},{"kind":"number","nativeSrc":"18332:2:88","nodeType":"YulLiteral","src":"18332:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18314:6:88","nodeType":"YulIdentifier","src":"18314:6:88"},"nativeSrc":"18314:21:88","nodeType":"YulFunctionCall","src":"18314:21:88"},"nativeSrc":"18314:21:88","nodeType":"YulExpressionStatement","src":"18314:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18355:9:88","nodeType":"YulIdentifier","src":"18355:9:88"},{"kind":"number","nativeSrc":"18366:2:88","nodeType":"YulLiteral","src":"18366:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18351:3:88","nodeType":"YulIdentifier","src":"18351:3:88"},"nativeSrc":"18351:18:88","nodeType":"YulFunctionCall","src":"18351:18:88"},{"kind":"number","nativeSrc":"18371:2:88","nodeType":"YulLiteral","src":"18371:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"18344:6:88","nodeType":"YulIdentifier","src":"18344:6:88"},"nativeSrc":"18344:30:88","nodeType":"YulFunctionCall","src":"18344:30:88"},"nativeSrc":"18344:30:88","nodeType":"YulExpressionStatement","src":"18344:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18394:9:88","nodeType":"YulIdentifier","src":"18394:9:88"},{"kind":"number","nativeSrc":"18405:2:88","nodeType":"YulLiteral","src":"18405:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18390:3:88","nodeType":"YulIdentifier","src":"18390:3:88"},"nativeSrc":"18390:18:88","nodeType":"YulFunctionCall","src":"18390:18:88"},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","kind":"string","nativeSrc":"18410:31:88","nodeType":"YulLiteral","src":"18410:31:88","type":"","value":"Increase requires LEVEL1_ROLE"}],"functionName":{"name":"mstore","nativeSrc":"18383:6:88","nodeType":"YulIdentifier","src":"18383:6:88"},"nativeSrc":"18383:59:88","nodeType":"YulFunctionCall","src":"18383:59:88"},"nativeSrc":"18383:59:88","nodeType":"YulExpressionStatement","src":"18383:59:88"},{"nativeSrc":"18451:26:88","nodeType":"YulAssignment","src":"18451:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18463:9:88","nodeType":"YulIdentifier","src":"18463:9:88"},{"kind":"number","nativeSrc":"18474:2:88","nodeType":"YulLiteral","src":"18474:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18459:3:88","nodeType":"YulIdentifier","src":"18459:3:88"},"nativeSrc":"18459:18:88","nodeType":"YulFunctionCall","src":"18459:18:88"},"variableNames":[{"name":"tail","nativeSrc":"18451:4:88","nodeType":"YulIdentifier","src":"18451:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18130:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18281:9:88","nodeType":"YulTypedName","src":"18281:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18295:4:88","nodeType":"YulTypedName","src":"18295:4:88","type":""}],"src":"18130:353:88"},{"body":{"nativeSrc":"18536:77:88","nodeType":"YulBlock","src":"18536:77:88","statements":[{"nativeSrc":"18546:16:88","nodeType":"YulAssignment","src":"18546:16:88","value":{"arguments":[{"name":"x","nativeSrc":"18557:1:88","nodeType":"YulIdentifier","src":"18557:1:88"},{"name":"y","nativeSrc":"18560:1:88","nodeType":"YulIdentifier","src":"18560:1:88"}],"functionName":{"name":"add","nativeSrc":"18553:3:88","nodeType":"YulIdentifier","src":"18553:3:88"},"nativeSrc":"18553:9:88","nodeType":"YulFunctionCall","src":"18553:9:88"},"variableNames":[{"name":"sum","nativeSrc":"18546:3:88","nodeType":"YulIdentifier","src":"18546:3:88"}]},{"body":{"nativeSrc":"18585:22:88","nodeType":"YulBlock","src":"18585:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18587:16:88","nodeType":"YulIdentifier","src":"18587:16:88"},"nativeSrc":"18587:18:88","nodeType":"YulFunctionCall","src":"18587:18:88"},"nativeSrc":"18587:18:88","nodeType":"YulExpressionStatement","src":"18587:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"18577:1:88","nodeType":"YulIdentifier","src":"18577:1:88"},{"name":"sum","nativeSrc":"18580:3:88","nodeType":"YulIdentifier","src":"18580:3:88"}],"functionName":{"name":"gt","nativeSrc":"18574:2:88","nodeType":"YulIdentifier","src":"18574:2:88"},"nativeSrc":"18574:10:88","nodeType":"YulFunctionCall","src":"18574:10:88"},"nativeSrc":"18571:36:88","nodeType":"YulIf","src":"18571:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"18488:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"18519:1:88","nodeType":"YulTypedName","src":"18519:1:88","type":""},{"name":"y","nativeSrc":"18522:1:88","nodeType":"YulTypedName","src":"18522:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"18528:3:88","nodeType":"YulTypedName","src":"18528:3:88","type":""}],"src":"18488:125:88"},{"body":{"nativeSrc":"18722:170:88","nodeType":"YulBlock","src":"18722:170:88","statements":[{"body":{"nativeSrc":"18768:16:88","nodeType":"YulBlock","src":"18768:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18777:1:88","nodeType":"YulLiteral","src":"18777:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"18780:1:88","nodeType":"YulLiteral","src":"18780:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18770:6:88","nodeType":"YulIdentifier","src":"18770:6:88"},"nativeSrc":"18770:12:88","nodeType":"YulFunctionCall","src":"18770:12:88"},"nativeSrc":"18770:12:88","nodeType":"YulExpressionStatement","src":"18770:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18743:7:88","nodeType":"YulIdentifier","src":"18743:7:88"},{"name":"headStart","nativeSrc":"18752:9:88","nodeType":"YulIdentifier","src":"18752:9:88"}],"functionName":{"name":"sub","nativeSrc":"18739:3:88","nodeType":"YulIdentifier","src":"18739:3:88"},"nativeSrc":"18739:23:88","nodeType":"YulFunctionCall","src":"18739:23:88"},{"kind":"number","nativeSrc":"18764:2:88","nodeType":"YulLiteral","src":"18764:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18735:3:88","nodeType":"YulIdentifier","src":"18735:3:88"},"nativeSrc":"18735:32:88","nodeType":"YulFunctionCall","src":"18735:32:88"},"nativeSrc":"18732:52:88","nodeType":"YulIf","src":"18732:52:88"},{"nativeSrc":"18793:29:88","nodeType":"YulVariableDeclaration","src":"18793:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18812:9:88","nodeType":"YulIdentifier","src":"18812:9:88"}],"functionName":{"name":"mload","nativeSrc":"18806:5:88","nodeType":"YulIdentifier","src":"18806:5:88"},"nativeSrc":"18806:16:88","nodeType":"YulFunctionCall","src":"18806:16:88"},"variables":[{"name":"value","nativeSrc":"18797:5:88","nodeType":"YulTypedName","src":"18797:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18856:5:88","nodeType":"YulIdentifier","src":"18856:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"18831:24:88","nodeType":"YulIdentifier","src":"18831:24:88"},"nativeSrc":"18831:31:88","nodeType":"YulFunctionCall","src":"18831:31:88"},"nativeSrc":"18831:31:88","nodeType":"YulExpressionStatement","src":"18831:31:88"},{"nativeSrc":"18871:15:88","nodeType":"YulAssignment","src":"18871:15:88","value":{"name":"value","nativeSrc":"18881:5:88","nodeType":"YulIdentifier","src":"18881:5:88"},"variableNames":[{"name":"value0","nativeSrc":"18871:6:88","nodeType":"YulIdentifier","src":"18871:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"18618:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18688:9:88","nodeType":"YulTypedName","src":"18688:9:88","type":""},{"name":"dataEnd","nativeSrc":"18699:7:88","nodeType":"YulTypedName","src":"18699:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18711:6:88","nodeType":"YulTypedName","src":"18711:6:88","type":""}],"src":"18618:274:88"},{"body":{"nativeSrc":"19080:168:88","nodeType":"YulBlock","src":"19080:168:88","statements":[{"nativeSrc":"19090:27:88","nodeType":"YulAssignment","src":"19090:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19102:9:88","nodeType":"YulIdentifier","src":"19102:9:88"},{"kind":"number","nativeSrc":"19113:3:88","nodeType":"YulLiteral","src":"19113:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"19098:3:88","nodeType":"YulIdentifier","src":"19098:3:88"},"nativeSrc":"19098:19:88","nodeType":"YulFunctionCall","src":"19098:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19090:4:88","nodeType":"YulIdentifier","src":"19090:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19164:6:88","nodeType":"YulIdentifier","src":"19164:6:88"},{"name":"headStart","nativeSrc":"19172:9:88","nodeType":"YulIdentifier","src":"19172:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"19126:37:88","nodeType":"YulIdentifier","src":"19126:37:88"},"nativeSrc":"19126:56:88","nodeType":"YulFunctionCall","src":"19126:56:88"},"nativeSrc":"19126:56:88","nodeType":"YulExpressionStatement","src":"19126:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19202:9:88","nodeType":"YulIdentifier","src":"19202:9:88"},{"kind":"number","nativeSrc":"19213:3:88","nodeType":"YulLiteral","src":"19213:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"19198:3:88","nodeType":"YulIdentifier","src":"19198:3:88"},"nativeSrc":"19198:19:88","nodeType":"YulFunctionCall","src":"19198:19:88"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"19233:6:88","nodeType":"YulIdentifier","src":"19233:6:88"}],"functionName":{"name":"iszero","nativeSrc":"19226:6:88","nodeType":"YulIdentifier","src":"19226:6:88"},"nativeSrc":"19226:14:88","nodeType":"YulFunctionCall","src":"19226:14:88"}],"functionName":{"name":"iszero","nativeSrc":"19219:6:88","nodeType":"YulIdentifier","src":"19219:6:88"},"nativeSrc":"19219:22:88","nodeType":"YulFunctionCall","src":"19219:22:88"}],"functionName":{"name":"mstore","nativeSrc":"19191:6:88","nodeType":"YulIdentifier","src":"19191:6:88"},"nativeSrc":"19191:51:88","nodeType":"YulFunctionCall","src":"19191:51:88"},"nativeSrc":"19191:51:88","nodeType":"YulExpressionStatement","src":"19191:51:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed","nativeSrc":"18897:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19041:9:88","nodeType":"YulTypedName","src":"19041:9:88","type":""},{"name":"value1","nativeSrc":"19052:6:88","nodeType":"YulTypedName","src":"19052:6:88","type":""},{"name":"value0","nativeSrc":"19060:6:88","nodeType":"YulTypedName","src":"19060:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19071:4:88","nodeType":"YulTypedName","src":"19071:4:88","type":""}],"src":"18897:351:88"},{"body":{"nativeSrc":"19427:166:88","nodeType":"YulBlock","src":"19427:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19444:9:88","nodeType":"YulIdentifier","src":"19444:9:88"},{"kind":"number","nativeSrc":"19455:2:88","nodeType":"YulLiteral","src":"19455:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19437:6:88","nodeType":"YulIdentifier","src":"19437:6:88"},"nativeSrc":"19437:21:88","nodeType":"YulFunctionCall","src":"19437:21:88"},"nativeSrc":"19437:21:88","nodeType":"YulExpressionStatement","src":"19437:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19478:9:88","nodeType":"YulIdentifier","src":"19478:9:88"},{"kind":"number","nativeSrc":"19489:2:88","nodeType":"YulLiteral","src":"19489:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19474:3:88","nodeType":"YulIdentifier","src":"19474:3:88"},"nativeSrc":"19474:18:88","nodeType":"YulFunctionCall","src":"19474:18:88"},{"kind":"number","nativeSrc":"19494:2:88","nodeType":"YulLiteral","src":"19494:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"19467:6:88","nodeType":"YulIdentifier","src":"19467:6:88"},"nativeSrc":"19467:30:88","nodeType":"YulFunctionCall","src":"19467:30:88"},"nativeSrc":"19467:30:88","nodeType":"YulExpressionStatement","src":"19467:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19517:9:88","nodeType":"YulIdentifier","src":"19517:9:88"},{"kind":"number","nativeSrc":"19528:2:88","nodeType":"YulLiteral","src":"19528:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19513:3:88","nodeType":"YulIdentifier","src":"19513:3:88"},"nativeSrc":"19513:18:88","nodeType":"YulFunctionCall","src":"19513:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"19533:18:88","nodeType":"YulLiteral","src":"19533:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"19506:6:88","nodeType":"YulIdentifier","src":"19506:6:88"},"nativeSrc":"19506:46:88","nodeType":"YulFunctionCall","src":"19506:46:88"},"nativeSrc":"19506:46:88","nodeType":"YulExpressionStatement","src":"19506:46:88"},{"nativeSrc":"19561:26:88","nodeType":"YulAssignment","src":"19561:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19573:9:88","nodeType":"YulIdentifier","src":"19573:9:88"},{"kind":"number","nativeSrc":"19584:2:88","nodeType":"YulLiteral","src":"19584:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19569:3:88","nodeType":"YulIdentifier","src":"19569:3:88"},"nativeSrc":"19569:18:88","nodeType":"YulFunctionCall","src":"19569:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19561:4:88","nodeType":"YulIdentifier","src":"19561:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19253:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19404:9:88","nodeType":"YulTypedName","src":"19404:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19418:4:88","nodeType":"YulTypedName","src":"19418:4:88","type":""}],"src":"19253:340:88"},{"body":{"nativeSrc":"19727:171:88","nodeType":"YulBlock","src":"19727:171:88","statements":[{"nativeSrc":"19737:26:88","nodeType":"YulAssignment","src":"19737:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19749:9:88","nodeType":"YulIdentifier","src":"19749:9:88"},{"kind":"number","nativeSrc":"19760:2:88","nodeType":"YulLiteral","src":"19760:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19745:3:88","nodeType":"YulIdentifier","src":"19745:3:88"},"nativeSrc":"19745:18:88","nodeType":"YulFunctionCall","src":"19745:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19737:4:88","nodeType":"YulIdentifier","src":"19737:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19779:9:88","nodeType":"YulIdentifier","src":"19779:9:88"},{"arguments":[{"name":"value0","nativeSrc":"19794:6:88","nodeType":"YulIdentifier","src":"19794:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19810:3:88","nodeType":"YulLiteral","src":"19810:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"19815:1:88","nodeType":"YulLiteral","src":"19815:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"19806:3:88","nodeType":"YulIdentifier","src":"19806:3:88"},"nativeSrc":"19806:11:88","nodeType":"YulFunctionCall","src":"19806:11:88"},{"kind":"number","nativeSrc":"19819:1:88","nodeType":"YulLiteral","src":"19819:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19802:3:88","nodeType":"YulIdentifier","src":"19802:3:88"},"nativeSrc":"19802:19:88","nodeType":"YulFunctionCall","src":"19802:19:88"}],"functionName":{"name":"and","nativeSrc":"19790:3:88","nodeType":"YulIdentifier","src":"19790:3:88"},"nativeSrc":"19790:32:88","nodeType":"YulFunctionCall","src":"19790:32:88"}],"functionName":{"name":"mstore","nativeSrc":"19772:6:88","nodeType":"YulIdentifier","src":"19772:6:88"},"nativeSrc":"19772:51:88","nodeType":"YulFunctionCall","src":"19772:51:88"},"nativeSrc":"19772:51:88","nodeType":"YulExpressionStatement","src":"19772:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19843:9:88","nodeType":"YulIdentifier","src":"19843:9:88"},{"kind":"number","nativeSrc":"19854:2:88","nodeType":"YulLiteral","src":"19854:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19839:3:88","nodeType":"YulIdentifier","src":"19839:3:88"},"nativeSrc":"19839:18:88","nodeType":"YulFunctionCall","src":"19839:18:88"},{"arguments":[{"name":"value1","nativeSrc":"19863:6:88","nodeType":"YulIdentifier","src":"19863:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19879:3:88","nodeType":"YulLiteral","src":"19879:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"19884:1:88","nodeType":"YulLiteral","src":"19884:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"19875:3:88","nodeType":"YulIdentifier","src":"19875:3:88"},"nativeSrc":"19875:11:88","nodeType":"YulFunctionCall","src":"19875:11:88"},{"kind":"number","nativeSrc":"19888:1:88","nodeType":"YulLiteral","src":"19888:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19871:3:88","nodeType":"YulIdentifier","src":"19871:3:88"},"nativeSrc":"19871:19:88","nodeType":"YulFunctionCall","src":"19871:19:88"}],"functionName":{"name":"and","nativeSrc":"19859:3:88","nodeType":"YulIdentifier","src":"19859:3:88"},"nativeSrc":"19859:32:88","nodeType":"YulFunctionCall","src":"19859:32:88"}],"functionName":{"name":"mstore","nativeSrc":"19832:6:88","nodeType":"YulIdentifier","src":"19832:6:88"},"nativeSrc":"19832:60:88","nodeType":"YulFunctionCall","src":"19832:60:88"},"nativeSrc":"19832:60:88","nodeType":"YulExpressionStatement","src":"19832:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"19598:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19688:9:88","nodeType":"YulTypedName","src":"19688:9:88","type":""},{"name":"value1","nativeSrc":"19699:6:88","nodeType":"YulTypedName","src":"19699:6:88","type":""},{"name":"value0","nativeSrc":"19707:6:88","nodeType":"YulTypedName","src":"19707:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19718:4:88","nodeType":"YulTypedName","src":"19718:4:88","type":""}],"src":"19598:300:88"},{"body":{"nativeSrc":"19984:103:88","nodeType":"YulBlock","src":"19984:103:88","statements":[{"body":{"nativeSrc":"20030:16:88","nodeType":"YulBlock","src":"20030:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20039:1:88","nodeType":"YulLiteral","src":"20039:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"20042:1:88","nodeType":"YulLiteral","src":"20042:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20032:6:88","nodeType":"YulIdentifier","src":"20032:6:88"},"nativeSrc":"20032:12:88","nodeType":"YulFunctionCall","src":"20032:12:88"},"nativeSrc":"20032:12:88","nodeType":"YulExpressionStatement","src":"20032:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20005:7:88","nodeType":"YulIdentifier","src":"20005:7:88"},{"name":"headStart","nativeSrc":"20014:9:88","nodeType":"YulIdentifier","src":"20014:9:88"}],"functionName":{"name":"sub","nativeSrc":"20001:3:88","nodeType":"YulIdentifier","src":"20001:3:88"},"nativeSrc":"20001:23:88","nodeType":"YulFunctionCall","src":"20001:23:88"},{"kind":"number","nativeSrc":"20026:2:88","nodeType":"YulLiteral","src":"20026:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19997:3:88","nodeType":"YulIdentifier","src":"19997:3:88"},"nativeSrc":"19997:32:88","nodeType":"YulFunctionCall","src":"19997:32:88"},"nativeSrc":"19994:52:88","nodeType":"YulIf","src":"19994:52:88"},{"nativeSrc":"20055:26:88","nodeType":"YulAssignment","src":"20055:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20071:9:88","nodeType":"YulIdentifier","src":"20071:9:88"}],"functionName":{"name":"mload","nativeSrc":"20065:5:88","nodeType":"YulIdentifier","src":"20065:5:88"},"nativeSrc":"20065:16:88","nodeType":"YulFunctionCall","src":"20065:16:88"},"variableNames":[{"name":"value0","nativeSrc":"20055:6:88","nodeType":"YulIdentifier","src":"20055:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"19903:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19950:9:88","nodeType":"YulTypedName","src":"19950:9:88","type":""},{"name":"dataEnd","nativeSrc":"19961:7:88","nodeType":"YulTypedName","src":"19961:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19973:6:88","nodeType":"YulTypedName","src":"19973:6:88","type":""}],"src":"19903:184:88"},{"body":{"nativeSrc":"20161:115:88","nodeType":"YulBlock","src":"20161:115:88","statements":[{"body":{"nativeSrc":"20207:16:88","nodeType":"YulBlock","src":"20207:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20216:1:88","nodeType":"YulLiteral","src":"20216:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"20219:1:88","nodeType":"YulLiteral","src":"20219:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20209:6:88","nodeType":"YulIdentifier","src":"20209:6:88"},"nativeSrc":"20209:12:88","nodeType":"YulFunctionCall","src":"20209:12:88"},"nativeSrc":"20209:12:88","nodeType":"YulExpressionStatement","src":"20209:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20182:7:88","nodeType":"YulIdentifier","src":"20182:7:88"},{"name":"headStart","nativeSrc":"20191:9:88","nodeType":"YulIdentifier","src":"20191:9:88"}],"functionName":{"name":"sub","nativeSrc":"20178:3:88","nodeType":"YulIdentifier","src":"20178:3:88"},"nativeSrc":"20178:23:88","nodeType":"YulFunctionCall","src":"20178:23:88"},{"kind":"number","nativeSrc":"20203:2:88","nodeType":"YulLiteral","src":"20203:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20174:3:88","nodeType":"YulIdentifier","src":"20174:3:88"},"nativeSrc":"20174:32:88","nodeType":"YulFunctionCall","src":"20174:32:88"},"nativeSrc":"20171:52:88","nodeType":"YulIf","src":"20171:52:88"},{"nativeSrc":"20232:38:88","nodeType":"YulAssignment","src":"20232:38:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20260:9:88","nodeType":"YulIdentifier","src":"20260:9:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"20242:17:88","nodeType":"YulIdentifier","src":"20242:17:88"},"nativeSrc":"20242:28:88","nodeType":"YulFunctionCall","src":"20242:28:88"},"variableNames":[{"name":"value0","nativeSrc":"20232:6:88","nodeType":"YulIdentifier","src":"20232:6:88"}]}]},"name":"abi_decode_tuple_t_uint40","nativeSrc":"20092:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20127:9:88","nodeType":"YulTypedName","src":"20127:9:88","type":""},{"name":"dataEnd","nativeSrc":"20138:7:88","nodeType":"YulTypedName","src":"20138:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20150:6:88","nodeType":"YulTypedName","src":"20150:6:88","type":""}],"src":"20092:184:88"},{"body":{"nativeSrc":"20455:182:88","nodeType":"YulBlock","src":"20455:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20472:9:88","nodeType":"YulIdentifier","src":"20472:9:88"},{"kind":"number","nativeSrc":"20483:2:88","nodeType":"YulLiteral","src":"20483:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20465:6:88","nodeType":"YulIdentifier","src":"20465:6:88"},"nativeSrc":"20465:21:88","nodeType":"YulFunctionCall","src":"20465:21:88"},"nativeSrc":"20465:21:88","nodeType":"YulExpressionStatement","src":"20465:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20506:9:88","nodeType":"YulIdentifier","src":"20506:9:88"},{"kind":"number","nativeSrc":"20517:2:88","nodeType":"YulLiteral","src":"20517:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20502:3:88","nodeType":"YulIdentifier","src":"20502:3:88"},"nativeSrc":"20502:18:88","nodeType":"YulFunctionCall","src":"20502:18:88"},{"kind":"number","nativeSrc":"20522:2:88","nodeType":"YulLiteral","src":"20522:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20495:6:88","nodeType":"YulIdentifier","src":"20495:6:88"},"nativeSrc":"20495:30:88","nodeType":"YulFunctionCall","src":"20495:30:88"},"nativeSrc":"20495:30:88","nodeType":"YulExpressionStatement","src":"20495:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20545:9:88","nodeType":"YulIdentifier","src":"20545:9:88"},{"kind":"number","nativeSrc":"20556:2:88","nodeType":"YulLiteral","src":"20556:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20541:3:88","nodeType":"YulIdentifier","src":"20541:3:88"},"nativeSrc":"20541:18:88","nodeType":"YulFunctionCall","src":"20541:18:88"},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","kind":"string","nativeSrc":"20561:34:88","nodeType":"YulLiteral","src":"20561:34:88","type":"","value":"Premium must be less than payout"}],"functionName":{"name":"mstore","nativeSrc":"20534:6:88","nodeType":"YulIdentifier","src":"20534:6:88"},"nativeSrc":"20534:62:88","nodeType":"YulFunctionCall","src":"20534:62:88"},"nativeSrc":"20534:62:88","nodeType":"YulExpressionStatement","src":"20534:62:88"},{"nativeSrc":"20605:26:88","nodeType":"YulAssignment","src":"20605:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20617:9:88","nodeType":"YulIdentifier","src":"20617:9:88"},{"kind":"number","nativeSrc":"20628:2:88","nodeType":"YulLiteral","src":"20628:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20613:3:88","nodeType":"YulIdentifier","src":"20613:3:88"},"nativeSrc":"20613:18:88","nodeType":"YulFunctionCall","src":"20613:18:88"},"variableNames":[{"name":"tail","nativeSrc":"20605:4:88","nodeType":"YulIdentifier","src":"20605:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20281:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20432:9:88","nodeType":"YulTypedName","src":"20432:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20446:4:88","nodeType":"YulTypedName","src":"20446:4:88","type":""}],"src":"20281:356:88"},{"body":{"nativeSrc":"20816:171:88","nodeType":"YulBlock","src":"20816:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20833:9:88","nodeType":"YulIdentifier","src":"20833:9:88"},{"kind":"number","nativeSrc":"20844:2:88","nodeType":"YulLiteral","src":"20844:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20826:6:88","nodeType":"YulIdentifier","src":"20826:6:88"},"nativeSrc":"20826:21:88","nodeType":"YulFunctionCall","src":"20826:21:88"},"nativeSrc":"20826:21:88","nodeType":"YulExpressionStatement","src":"20826:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20867:9:88","nodeType":"YulIdentifier","src":"20867:9:88"},{"kind":"number","nativeSrc":"20878:2:88","nodeType":"YulLiteral","src":"20878:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20863:3:88","nodeType":"YulIdentifier","src":"20863:3:88"},"nativeSrc":"20863:18:88","nodeType":"YulFunctionCall","src":"20863:18:88"},{"kind":"number","nativeSrc":"20883:2:88","nodeType":"YulLiteral","src":"20883:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"20856:6:88","nodeType":"YulIdentifier","src":"20856:6:88"},"nativeSrc":"20856:30:88","nodeType":"YulFunctionCall","src":"20856:30:88"},"nativeSrc":"20856:30:88","nodeType":"YulExpressionStatement","src":"20856:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20906:9:88","nodeType":"YulIdentifier","src":"20906:9:88"},{"kind":"number","nativeSrc":"20917:2:88","nodeType":"YulLiteral","src":"20917:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20902:3:88","nodeType":"YulIdentifier","src":"20902:3:88"},"nativeSrc":"20902:18:88","nodeType":"YulFunctionCall","src":"20902:18:88"},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","kind":"string","nativeSrc":"20922:23:88","nodeType":"YulLiteral","src":"20922:23:88","type":"","value":"Old policy is expired"}],"functionName":{"name":"mstore","nativeSrc":"20895:6:88","nodeType":"YulIdentifier","src":"20895:6:88"},"nativeSrc":"20895:51:88","nodeType":"YulFunctionCall","src":"20895:51:88"},"nativeSrc":"20895:51:88","nodeType":"YulExpressionStatement","src":"20895:51:88"},{"nativeSrc":"20955:26:88","nodeType":"YulAssignment","src":"20955:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"20967:9:88","nodeType":"YulIdentifier","src":"20967:9:88"},{"kind":"number","nativeSrc":"20978:2:88","nodeType":"YulLiteral","src":"20978:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20963:3:88","nodeType":"YulIdentifier","src":"20963:3:88"},"nativeSrc":"20963:18:88","nodeType":"YulFunctionCall","src":"20963:18:88"},"variableNames":[{"name":"tail","nativeSrc":"20955:4:88","nodeType":"YulIdentifier","src":"20955:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20642:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20793:9:88","nodeType":"YulTypedName","src":"20793:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20807:4:88","nodeType":"YulTypedName","src":"20807:4:88","type":""}],"src":"20642:345:88"},{"body":{"nativeSrc":"21166:249:88","nodeType":"YulBlock","src":"21166:249:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21183:9:88","nodeType":"YulIdentifier","src":"21183:9:88"},{"kind":"number","nativeSrc":"21194:2:88","nodeType":"YulLiteral","src":"21194:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21176:6:88","nodeType":"YulIdentifier","src":"21176:6:88"},"nativeSrc":"21176:21:88","nodeType":"YulFunctionCall","src":"21176:21:88"},"nativeSrc":"21176:21:88","nodeType":"YulExpressionStatement","src":"21176:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21217:9:88","nodeType":"YulIdentifier","src":"21217:9:88"},{"kind":"number","nativeSrc":"21228:2:88","nodeType":"YulLiteral","src":"21228:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21213:3:88","nodeType":"YulIdentifier","src":"21213:3:88"},"nativeSrc":"21213:18:88","nodeType":"YulFunctionCall","src":"21213:18:88"},{"kind":"number","nativeSrc":"21233:2:88","nodeType":"YulLiteral","src":"21233:2:88","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"21206:6:88","nodeType":"YulIdentifier","src":"21206:6:88"},"nativeSrc":"21206:30:88","nodeType":"YulFunctionCall","src":"21206:30:88"},"nativeSrc":"21206:30:88","nodeType":"YulExpressionStatement","src":"21206:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21256:9:88","nodeType":"YulIdentifier","src":"21256:9:88"},{"kind":"number","nativeSrc":"21267:2:88","nodeType":"YulLiteral","src":"21267:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21252:3:88","nodeType":"YulIdentifier","src":"21252:3:88"},"nativeSrc":"21252:18:88","nodeType":"YulFunctionCall","src":"21252:18:88"},{"hexValue":"506f6c696379207265706c6163656d656e74206d757374206265206772656174","kind":"string","nativeSrc":"21272:34:88","nodeType":"YulLiteral","src":"21272:34:88","type":"","value":"Policy replacement must be great"}],"functionName":{"name":"mstore","nativeSrc":"21245:6:88","nodeType":"YulIdentifier","src":"21245:6:88"},"nativeSrc":"21245:62:88","nodeType":"YulFunctionCall","src":"21245:62:88"},"nativeSrc":"21245:62:88","nodeType":"YulExpressionStatement","src":"21245:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21327:9:88","nodeType":"YulIdentifier","src":"21327:9:88"},{"kind":"number","nativeSrc":"21338:2:88","nodeType":"YulLiteral","src":"21338:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21323:3:88","nodeType":"YulIdentifier","src":"21323:3:88"},"nativeSrc":"21323:18:88","nodeType":"YulFunctionCall","src":"21323:18:88"},{"hexValue":"6572206f7220657175616c207468616e206f6c6420706f6c696379","kind":"string","nativeSrc":"21343:29:88","nodeType":"YulLiteral","src":"21343:29:88","type":"","value":"er or equal than old policy"}],"functionName":{"name":"mstore","nativeSrc":"21316:6:88","nodeType":"YulIdentifier","src":"21316:6:88"},"nativeSrc":"21316:57:88","nodeType":"YulFunctionCall","src":"21316:57:88"},"nativeSrc":"21316:57:88","nodeType":"YulExpressionStatement","src":"21316:57:88"},{"nativeSrc":"21382:27:88","nodeType":"YulAssignment","src":"21382:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21394:9:88","nodeType":"YulIdentifier","src":"21394:9:88"},{"kind":"number","nativeSrc":"21405:3:88","nodeType":"YulLiteral","src":"21405:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21390:3:88","nodeType":"YulIdentifier","src":"21390:3:88"},"nativeSrc":"21390:19:88","nodeType":"YulFunctionCall","src":"21390:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21382:4:88","nodeType":"YulIdentifier","src":"21382:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20992:423:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21143:9:88","nodeType":"YulTypedName","src":"21143:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21157:4:88","nodeType":"YulTypedName","src":"21157:4:88","type":""}],"src":"20992:423:88"},{"body":{"nativeSrc":"21468:128:88","nodeType":"YulBlock","src":"21468:128:88","statements":[{"nativeSrc":"21478:55:88","nodeType":"YulAssignment","src":"21478:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"21494:1:88","nodeType":"YulIdentifier","src":"21494:1:88"},{"kind":"number","nativeSrc":"21497:12:88","nodeType":"YulLiteral","src":"21497:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"21490:3:88","nodeType":"YulIdentifier","src":"21490:3:88"},"nativeSrc":"21490:20:88","nodeType":"YulFunctionCall","src":"21490:20:88"},{"arguments":[{"name":"y","nativeSrc":"21516:1:88","nodeType":"YulIdentifier","src":"21516:1:88"},{"kind":"number","nativeSrc":"21519:12:88","nodeType":"YulLiteral","src":"21519:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"21512:3:88","nodeType":"YulIdentifier","src":"21512:3:88"},"nativeSrc":"21512:20:88","nodeType":"YulFunctionCall","src":"21512:20:88"}],"functionName":{"name":"sub","nativeSrc":"21486:3:88","nodeType":"YulIdentifier","src":"21486:3:88"},"nativeSrc":"21486:47:88","nodeType":"YulFunctionCall","src":"21486:47:88"},"variableNames":[{"name":"diff","nativeSrc":"21478:4:88","nodeType":"YulIdentifier","src":"21478:4:88"}]},{"body":{"nativeSrc":"21568:22:88","nodeType":"YulBlock","src":"21568:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21570:16:88","nodeType":"YulIdentifier","src":"21570:16:88"},"nativeSrc":"21570:18:88","nodeType":"YulFunctionCall","src":"21570:18:88"},"nativeSrc":"21570:18:88","nodeType":"YulExpressionStatement","src":"21570:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21548:4:88","nodeType":"YulIdentifier","src":"21548:4:88"},{"kind":"number","nativeSrc":"21554:12:88","nodeType":"YulLiteral","src":"21554:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21545:2:88","nodeType":"YulIdentifier","src":"21545:2:88"},"nativeSrc":"21545:22:88","nodeType":"YulFunctionCall","src":"21545:22:88"},"nativeSrc":"21542:48:88","nodeType":"YulIf","src":"21542:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"21420:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21450:1:88","nodeType":"YulTypedName","src":"21450:1:88","type":""},{"name":"y","nativeSrc":"21453:1:88","nodeType":"YulTypedName","src":"21453:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21459:4:88","nodeType":"YulTypedName","src":"21459:4:88","type":""}],"src":"21420:176:88"},{"body":{"nativeSrc":"21633:95:88","nodeType":"YulBlock","src":"21633:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21650:1:88","nodeType":"YulLiteral","src":"21650:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"21657:3:88","nodeType":"YulLiteral","src":"21657:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"21662:10:88","nodeType":"YulLiteral","src":"21662:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"21653:3:88","nodeType":"YulIdentifier","src":"21653:3:88"},"nativeSrc":"21653:20:88","nodeType":"YulFunctionCall","src":"21653:20:88"}],"functionName":{"name":"mstore","nativeSrc":"21643:6:88","nodeType":"YulIdentifier","src":"21643:6:88"},"nativeSrc":"21643:31:88","nodeType":"YulFunctionCall","src":"21643:31:88"},"nativeSrc":"21643:31:88","nodeType":"YulExpressionStatement","src":"21643:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21690:1:88","nodeType":"YulLiteral","src":"21690:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"21693:4:88","nodeType":"YulLiteral","src":"21693:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"21683:6:88","nodeType":"YulIdentifier","src":"21683:6:88"},"nativeSrc":"21683:15:88","nodeType":"YulFunctionCall","src":"21683:15:88"},"nativeSrc":"21683:15:88","nodeType":"YulExpressionStatement","src":"21683:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21714:1:88","nodeType":"YulLiteral","src":"21714:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"21717:4:88","nodeType":"YulLiteral","src":"21717:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21707:6:88","nodeType":"YulIdentifier","src":"21707:6:88"},"nativeSrc":"21707:15:88","nodeType":"YulFunctionCall","src":"21707:15:88"},"nativeSrc":"21707:15:88","nodeType":"YulExpressionStatement","src":"21707:15:88"}]},"name":"panic_error_0x12","nativeSrc":"21601:127:88","nodeType":"YulFunctionDefinition","src":"21601:127:88"},{"body":{"nativeSrc":"21778:137:88","nodeType":"YulBlock","src":"21778:137:88","statements":[{"nativeSrc":"21788:31:88","nodeType":"YulVariableDeclaration","src":"21788:31:88","value":{"arguments":[{"name":"y","nativeSrc":"21803:1:88","nodeType":"YulIdentifier","src":"21803:1:88"},{"kind":"number","nativeSrc":"21806:12:88","nodeType":"YulLiteral","src":"21806:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"21799:3:88","nodeType":"YulIdentifier","src":"21799:3:88"},"nativeSrc":"21799:20:88","nodeType":"YulFunctionCall","src":"21799:20:88"},"variables":[{"name":"y_1","nativeSrc":"21792:3:88","nodeType":"YulTypedName","src":"21792:3:88","type":""}]},{"body":{"nativeSrc":"21843:22:88","nodeType":"YulBlock","src":"21843:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"21845:16:88","nodeType":"YulIdentifier","src":"21845:16:88"},"nativeSrc":"21845:18:88","nodeType":"YulFunctionCall","src":"21845:18:88"},"nativeSrc":"21845:18:88","nodeType":"YulExpressionStatement","src":"21845:18:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"21838:3:88","nodeType":"YulIdentifier","src":"21838:3:88"}],"functionName":{"name":"iszero","nativeSrc":"21831:6:88","nodeType":"YulIdentifier","src":"21831:6:88"},"nativeSrc":"21831:11:88","nodeType":"YulFunctionCall","src":"21831:11:88"},"nativeSrc":"21828:37:88","nodeType":"YulIf","src":"21828:37:88"},{"nativeSrc":"21874:35:88","nodeType":"YulAssignment","src":"21874:35:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"21887:1:88","nodeType":"YulIdentifier","src":"21887:1:88"},{"kind":"number","nativeSrc":"21890:12:88","nodeType":"YulLiteral","src":"21890:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"21883:3:88","nodeType":"YulIdentifier","src":"21883:3:88"},"nativeSrc":"21883:20:88","nodeType":"YulFunctionCall","src":"21883:20:88"},{"name":"y_1","nativeSrc":"21905:3:88","nodeType":"YulIdentifier","src":"21905:3:88"}],"functionName":{"name":"div","nativeSrc":"21879:3:88","nodeType":"YulIdentifier","src":"21879:3:88"},"nativeSrc":"21879:30:88","nodeType":"YulFunctionCall","src":"21879:30:88"},"variableNames":[{"name":"r","nativeSrc":"21874:1:88","nodeType":"YulIdentifier","src":"21874:1:88"}]}]},"name":"checked_div_t_uint40","nativeSrc":"21733:182:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21763:1:88","nodeType":"YulTypedName","src":"21763:1:88","type":""},{"name":"y","nativeSrc":"21766:1:88","nodeType":"YulTypedName","src":"21766:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"21772:1:88","nodeType":"YulTypedName","src":"21772:1:88","type":""}],"src":"21733:182:88"},{"body":{"nativeSrc":"22094:177:88","nodeType":"YulBlock","src":"22094:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22111:9:88","nodeType":"YulIdentifier","src":"22111:9:88"},{"kind":"number","nativeSrc":"22122:2:88","nodeType":"YulLiteral","src":"22122:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22104:6:88","nodeType":"YulIdentifier","src":"22104:6:88"},"nativeSrc":"22104:21:88","nodeType":"YulFunctionCall","src":"22104:21:88"},"nativeSrc":"22104:21:88","nodeType":"YulExpressionStatement","src":"22104:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22145:9:88","nodeType":"YulIdentifier","src":"22145:9:88"},{"kind":"number","nativeSrc":"22156:2:88","nodeType":"YulLiteral","src":"22156:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22141:3:88","nodeType":"YulIdentifier","src":"22141:3:88"},"nativeSrc":"22141:18:88","nodeType":"YulFunctionCall","src":"22141:18:88"},{"kind":"number","nativeSrc":"22161:2:88","nodeType":"YulLiteral","src":"22161:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"22134:6:88","nodeType":"YulIdentifier","src":"22134:6:88"},"nativeSrc":"22134:30:88","nodeType":"YulFunctionCall","src":"22134:30:88"},"nativeSrc":"22134:30:88","nodeType":"YulExpressionStatement","src":"22134:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22184:9:88","nodeType":"YulIdentifier","src":"22184:9:88"},{"kind":"number","nativeSrc":"22195:2:88","nodeType":"YulLiteral","src":"22195:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22180:3:88","nodeType":"YulIdentifier","src":"22180:3:88"},"nativeSrc":"22180:18:88","nodeType":"YulFunctionCall","src":"22180:18:88"},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","kind":"string","nativeSrc":"22200:29:88","nodeType":"YulLiteral","src":"22200:29:88","type":"","value":"Policy exceeds max duration"}],"functionName":{"name":"mstore","nativeSrc":"22173:6:88","nodeType":"YulIdentifier","src":"22173:6:88"},"nativeSrc":"22173:57:88","nodeType":"YulFunctionCall","src":"22173:57:88"},"nativeSrc":"22173:57:88","nodeType":"YulExpressionStatement","src":"22173:57:88"},{"nativeSrc":"22239:26:88","nodeType":"YulAssignment","src":"22239:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22251:9:88","nodeType":"YulIdentifier","src":"22251:9:88"},{"kind":"number","nativeSrc":"22262:2:88","nodeType":"YulLiteral","src":"22262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22247:3:88","nodeType":"YulIdentifier","src":"22247:3:88"},"nativeSrc":"22247:18:88","nodeType":"YulFunctionCall","src":"22247:18:88"},"variableNames":[{"name":"tail","nativeSrc":"22239:4:88","nodeType":"YulIdentifier","src":"22239:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21920:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22071:9:88","nodeType":"YulTypedName","src":"22071:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22085:4:88","nodeType":"YulTypedName","src":"22085:4:88","type":""}],"src":"21920:351:88"},{"body":{"nativeSrc":"22450:235:88","nodeType":"YulBlock","src":"22450:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22467:9:88","nodeType":"YulIdentifier","src":"22467:9:88"},{"kind":"number","nativeSrc":"22478:2:88","nodeType":"YulLiteral","src":"22478:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22460:6:88","nodeType":"YulIdentifier","src":"22460:6:88"},"nativeSrc":"22460:21:88","nodeType":"YulFunctionCall","src":"22460:21:88"},"nativeSrc":"22460:21:88","nodeType":"YulExpressionStatement","src":"22460:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22501:9:88","nodeType":"YulIdentifier","src":"22501:9:88"},{"kind":"number","nativeSrc":"22512:2:88","nodeType":"YulLiteral","src":"22512:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22497:3:88","nodeType":"YulIdentifier","src":"22497:3:88"},"nativeSrc":"22497:18:88","nodeType":"YulFunctionCall","src":"22497:18:88"},{"kind":"number","nativeSrc":"22517:2:88","nodeType":"YulLiteral","src":"22517:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"22490:6:88","nodeType":"YulIdentifier","src":"22490:6:88"},"nativeSrc":"22490:30:88","nodeType":"YulFunctionCall","src":"22490:30:88"},"nativeSrc":"22490:30:88","nodeType":"YulExpressionStatement","src":"22490:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22540:9:88","nodeType":"YulIdentifier","src":"22540:9:88"},{"kind":"number","nativeSrc":"22551:2:88","nodeType":"YulLiteral","src":"22551:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22536:3:88","nodeType":"YulIdentifier","src":"22536:3:88"},"nativeSrc":"22536:18:88","nodeType":"YulFunctionCall","src":"22536:18:88"},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e736665","kind":"string","nativeSrc":"22556:34:88","nodeType":"YulLiteral","src":"22556:34:88","type":"","value":"You must allow ENSURO to transfe"}],"functionName":{"name":"mstore","nativeSrc":"22529:6:88","nodeType":"YulIdentifier","src":"22529:6:88"},"nativeSrc":"22529:62:88","nodeType":"YulFunctionCall","src":"22529:62:88"},"nativeSrc":"22529:62:88","nodeType":"YulExpressionStatement","src":"22529:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22611:9:88","nodeType":"YulIdentifier","src":"22611:9:88"},{"kind":"number","nativeSrc":"22622:2:88","nodeType":"YulLiteral","src":"22622:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22607:3:88","nodeType":"YulIdentifier","src":"22607:3:88"},"nativeSrc":"22607:18:88","nodeType":"YulFunctionCall","src":"22607:18:88"},{"hexValue":"7220746865207072656d69756d","kind":"string","nativeSrc":"22627:15:88","nodeType":"YulLiteral","src":"22627:15:88","type":"","value":"r the premium"}],"functionName":{"name":"mstore","nativeSrc":"22600:6:88","nodeType":"YulIdentifier","src":"22600:6:88"},"nativeSrc":"22600:43:88","nodeType":"YulFunctionCall","src":"22600:43:88"},"nativeSrc":"22600:43:88","nodeType":"YulExpressionStatement","src":"22600:43:88"},{"nativeSrc":"22652:27:88","nodeType":"YulAssignment","src":"22652:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22664:9:88","nodeType":"YulIdentifier","src":"22664:9:88"},{"kind":"number","nativeSrc":"22675:3:88","nodeType":"YulLiteral","src":"22675:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22660:3:88","nodeType":"YulIdentifier","src":"22660:3:88"},"nativeSrc":"22660:19:88","nodeType":"YulFunctionCall","src":"22660:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22652:4:88","nodeType":"YulIdentifier","src":"22652:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22276:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22427:9:88","nodeType":"YulTypedName","src":"22427:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22441:4:88","nodeType":"YulTypedName","src":"22441:4:88","type":""}],"src":"22276:409:88"},{"body":{"nativeSrc":"22864:237:88","nodeType":"YulBlock","src":"22864:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22881:9:88","nodeType":"YulIdentifier","src":"22881:9:88"},{"kind":"number","nativeSrc":"22892:2:88","nodeType":"YulLiteral","src":"22892:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22874:6:88","nodeType":"YulIdentifier","src":"22874:6:88"},"nativeSrc":"22874:21:88","nodeType":"YulFunctionCall","src":"22874:21:88"},"nativeSrc":"22874:21:88","nodeType":"YulExpressionStatement","src":"22874:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22915:9:88","nodeType":"YulIdentifier","src":"22915:9:88"},{"kind":"number","nativeSrc":"22926:2:88","nodeType":"YulLiteral","src":"22926:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22911:3:88","nodeType":"YulIdentifier","src":"22911:3:88"},"nativeSrc":"22911:18:88","nodeType":"YulFunctionCall","src":"22911:18:88"},{"kind":"number","nativeSrc":"22931:2:88","nodeType":"YulLiteral","src":"22931:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"22904:6:88","nodeType":"YulIdentifier","src":"22904:6:88"},"nativeSrc":"22904:30:88","nodeType":"YulFunctionCall","src":"22904:30:88"},"nativeSrc":"22904:30:88","nodeType":"YulExpressionStatement","src":"22904:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22954:9:88","nodeType":"YulIdentifier","src":"22954:9:88"},{"kind":"number","nativeSrc":"22965:2:88","nodeType":"YulLiteral","src":"22965:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22950:3:88","nodeType":"YulIdentifier","src":"22950:3:88"},"nativeSrc":"22950:18:88","nodeType":"YulFunctionCall","src":"22950:18:88"},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e73","kind":"string","nativeSrc":"22970:34:88","nodeType":"YulLiteral","src":"22970:34:88","type":"","value":"Payer must allow caller to trans"}],"functionName":{"name":"mstore","nativeSrc":"22943:6:88","nodeType":"YulIdentifier","src":"22943:6:88"},"nativeSrc":"22943:62:88","nodeType":"YulFunctionCall","src":"22943:62:88"},"nativeSrc":"22943:62:88","nodeType":"YulExpressionStatement","src":"22943:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23025:9:88","nodeType":"YulIdentifier","src":"23025:9:88"},{"kind":"number","nativeSrc":"23036:2:88","nodeType":"YulLiteral","src":"23036:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23021:3:88","nodeType":"YulIdentifier","src":"23021:3:88"},"nativeSrc":"23021:18:88","nodeType":"YulFunctionCall","src":"23021:18:88"},{"hexValue":"66657220746865207072656d69756d","kind":"string","nativeSrc":"23041:17:88","nodeType":"YulLiteral","src":"23041:17:88","type":"","value":"fer the premium"}],"functionName":{"name":"mstore","nativeSrc":"23014:6:88","nodeType":"YulIdentifier","src":"23014:6:88"},"nativeSrc":"23014:45:88","nodeType":"YulFunctionCall","src":"23014:45:88"},"nativeSrc":"23014:45:88","nodeType":"YulExpressionStatement","src":"23014:45:88"},{"nativeSrc":"23068:27:88","nodeType":"YulAssignment","src":"23068:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23080:9:88","nodeType":"YulIdentifier","src":"23080:9:88"},{"kind":"number","nativeSrc":"23091:3:88","nodeType":"YulLiteral","src":"23091:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23076:3:88","nodeType":"YulIdentifier","src":"23076:3:88"},"nativeSrc":"23076:19:88","nodeType":"YulFunctionCall","src":"23076:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23068:4:88","nodeType":"YulIdentifier","src":"23068:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22690:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22841:9:88","nodeType":"YulTypedName","src":"22841:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22855:4:88","nodeType":"YulTypedName","src":"22855:4:88","type":""}],"src":"22690:411:88"},{"body":{"nativeSrc":"23280:240:88","nodeType":"YulBlock","src":"23280:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23297:9:88","nodeType":"YulIdentifier","src":"23297:9:88"},{"kind":"number","nativeSrc":"23308:2:88","nodeType":"YulLiteral","src":"23308:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23290:6:88","nodeType":"YulIdentifier","src":"23290:6:88"},"nativeSrc":"23290:21:88","nodeType":"YulFunctionCall","src":"23290:21:88"},"nativeSrc":"23290:21:88","nodeType":"YulExpressionStatement","src":"23290:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23331:9:88","nodeType":"YulIdentifier","src":"23331:9:88"},{"kind":"number","nativeSrc":"23342:2:88","nodeType":"YulLiteral","src":"23342:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23327:3:88","nodeType":"YulIdentifier","src":"23327:3:88"},"nativeSrc":"23327:18:88","nodeType":"YulFunctionCall","src":"23327:18:88"},{"kind":"number","nativeSrc":"23347:2:88","nodeType":"YulLiteral","src":"23347:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"23320:6:88","nodeType":"YulIdentifier","src":"23320:6:88"},"nativeSrc":"23320:30:88","nodeType":"YulFunctionCall","src":"23320:30:88"},"nativeSrc":"23320:30:88","nodeType":"YulExpressionStatement","src":"23320:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23370:9:88","nodeType":"YulIdentifier","src":"23370:9:88"},{"kind":"number","nativeSrc":"23381:2:88","nodeType":"YulLiteral","src":"23381:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23366:3:88","nodeType":"YulIdentifier","src":"23366:3:88"},"nativeSrc":"23366:18:88","nodeType":"YulFunctionCall","src":"23366:18:88"},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e20","kind":"string","nativeSrc":"23386:34:88","nodeType":"YulLiteral","src":"23386:34:88","type":"","value":"RiskModule: Payout is more than "}],"functionName":{"name":"mstore","nativeSrc":"23359:6:88","nodeType":"YulIdentifier","src":"23359:6:88"},"nativeSrc":"23359:62:88","nodeType":"YulFunctionCall","src":"23359:62:88"},"nativeSrc":"23359:62:88","nodeType":"YulExpressionStatement","src":"23359:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23441:9:88","nodeType":"YulIdentifier","src":"23441:9:88"},{"kind":"number","nativeSrc":"23452:2:88","nodeType":"YulLiteral","src":"23452:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23437:3:88","nodeType":"YulIdentifier","src":"23437:3:88"},"nativeSrc":"23437:18:88","nodeType":"YulFunctionCall","src":"23437:18:88"},{"hexValue":"6d6178696d756d2070657220706f6c696379","kind":"string","nativeSrc":"23457:20:88","nodeType":"YulLiteral","src":"23457:20:88","type":"","value":"maximum per policy"}],"functionName":{"name":"mstore","nativeSrc":"23430:6:88","nodeType":"YulIdentifier","src":"23430:6:88"},"nativeSrc":"23430:48:88","nodeType":"YulFunctionCall","src":"23430:48:88"},"nativeSrc":"23430:48:88","nodeType":"YulExpressionStatement","src":"23430:48:88"},{"nativeSrc":"23487:27:88","nodeType":"YulAssignment","src":"23487:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23499:9:88","nodeType":"YulIdentifier","src":"23499:9:88"},{"kind":"number","nativeSrc":"23510:3:88","nodeType":"YulLiteral","src":"23510:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23495:3:88","nodeType":"YulIdentifier","src":"23495:3:88"},"nativeSrc":"23495:19:88","nodeType":"YulFunctionCall","src":"23495:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23487:4:88","nodeType":"YulIdentifier","src":"23487:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23106:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23257:9:88","nodeType":"YulTypedName","src":"23257:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23271:4:88","nodeType":"YulTypedName","src":"23271:4:88","type":""}],"src":"23106:414:88"},{"body":{"nativeSrc":"23699:225:88","nodeType":"YulBlock","src":"23699:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23716:9:88","nodeType":"YulIdentifier","src":"23716:9:88"},{"kind":"number","nativeSrc":"23727:2:88","nodeType":"YulLiteral","src":"23727:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23709:6:88","nodeType":"YulIdentifier","src":"23709:6:88"},"nativeSrc":"23709:21:88","nodeType":"YulFunctionCall","src":"23709:21:88"},"nativeSrc":"23709:21:88","nodeType":"YulExpressionStatement","src":"23709:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23750:9:88","nodeType":"YulIdentifier","src":"23750:9:88"},{"kind":"number","nativeSrc":"23761:2:88","nodeType":"YulLiteral","src":"23761:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23746:3:88","nodeType":"YulIdentifier","src":"23746:3:88"},"nativeSrc":"23746:18:88","nodeType":"YulFunctionCall","src":"23746:18:88"},{"kind":"number","nativeSrc":"23766:2:88","nodeType":"YulLiteral","src":"23766:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"23739:6:88","nodeType":"YulIdentifier","src":"23739:6:88"},"nativeSrc":"23739:30:88","nodeType":"YulFunctionCall","src":"23739:30:88"},"nativeSrc":"23739:30:88","nodeType":"YulExpressionStatement","src":"23739:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23789:9:88","nodeType":"YulIdentifier","src":"23789:9:88"},{"kind":"number","nativeSrc":"23800:2:88","nodeType":"YulLiteral","src":"23800:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23785:3:88","nodeType":"YulIdentifier","src":"23785:3:88"},"nativeSrc":"23785:18:88","nodeType":"YulFunctionCall","src":"23785:18:88"},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565","kind":"string","nativeSrc":"23805:34:88","nodeType":"YulLiteral","src":"23805:34:88","type":"","value":"RiskModule: Exposure limit excee"}],"functionName":{"name":"mstore","nativeSrc":"23778:6:88","nodeType":"YulIdentifier","src":"23778:6:88"},"nativeSrc":"23778:62:88","nodeType":"YulFunctionCall","src":"23778:62:88"},"nativeSrc":"23778:62:88","nodeType":"YulExpressionStatement","src":"23778:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23860:9:88","nodeType":"YulIdentifier","src":"23860:9:88"},{"kind":"number","nativeSrc":"23871:2:88","nodeType":"YulLiteral","src":"23871:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23856:3:88","nodeType":"YulIdentifier","src":"23856:3:88"},"nativeSrc":"23856:18:88","nodeType":"YulFunctionCall","src":"23856:18:88"},{"hexValue":"646564","kind":"string","nativeSrc":"23876:5:88","nodeType":"YulLiteral","src":"23876:5:88","type":"","value":"ded"}],"functionName":{"name":"mstore","nativeSrc":"23849:6:88","nodeType":"YulIdentifier","src":"23849:6:88"},"nativeSrc":"23849:33:88","nodeType":"YulFunctionCall","src":"23849:33:88"},"nativeSrc":"23849:33:88","nodeType":"YulExpressionStatement","src":"23849:33:88"},{"nativeSrc":"23891:27:88","nodeType":"YulAssignment","src":"23891:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23903:9:88","nodeType":"YulIdentifier","src":"23903:9:88"},{"kind":"number","nativeSrc":"23914:3:88","nodeType":"YulLiteral","src":"23914:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23899:3:88","nodeType":"YulIdentifier","src":"23899:3:88"},"nativeSrc":"23899:19:88","nodeType":"YulFunctionCall","src":"23899:19:88"},"variableNames":[{"name":"tail","nativeSrc":"23891:4:88","nodeType":"YulIdentifier","src":"23891:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23525:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23676:9:88","nodeType":"YulTypedName","src":"23676:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23690:4:88","nodeType":"YulTypedName","src":"23690:4:88","type":""}],"src":"23525:399:88"},{"body":{"nativeSrc":"24230:321:88","nodeType":"YulBlock","src":"24230:321:88","statements":[{"nativeSrc":"24240:27:88","nodeType":"YulAssignment","src":"24240:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24252:9:88","nodeType":"YulIdentifier","src":"24252:9:88"},{"kind":"number","nativeSrc":"24263:3:88","nodeType":"YulLiteral","src":"24263:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"24248:3:88","nodeType":"YulIdentifier","src":"24248:3:88"},"nativeSrc":"24248:19:88","nodeType":"YulFunctionCall","src":"24248:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24240:4:88","nodeType":"YulIdentifier","src":"24240:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"24314:6:88","nodeType":"YulIdentifier","src":"24314:6:88"},{"name":"headStart","nativeSrc":"24322:9:88","nodeType":"YulIdentifier","src":"24322:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"24276:37:88","nodeType":"YulIdentifier","src":"24276:37:88"},"nativeSrc":"24276:56:88","nodeType":"YulFunctionCall","src":"24276:56:88"},"nativeSrc":"24276:56:88","nodeType":"YulExpressionStatement","src":"24276:56:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"24370:6:88","nodeType":"YulIdentifier","src":"24370:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"24382:9:88","nodeType":"YulIdentifier","src":"24382:9:88"},{"kind":"number","nativeSrc":"24393:3:88","nodeType":"YulLiteral","src":"24393:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"24378:3:88","nodeType":"YulIdentifier","src":"24378:3:88"},"nativeSrc":"24378:19:88","nodeType":"YulFunctionCall","src":"24378:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"24341:28:88","nodeType":"YulIdentifier","src":"24341:28:88"},"nativeSrc":"24341:57:88","nodeType":"YulFunctionCall","src":"24341:57:88"},"nativeSrc":"24341:57:88","nodeType":"YulExpressionStatement","src":"24341:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24418:9:88","nodeType":"YulIdentifier","src":"24418:9:88"},{"kind":"number","nativeSrc":"24429:3:88","nodeType":"YulLiteral","src":"24429:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"24414:3:88","nodeType":"YulIdentifier","src":"24414:3:88"},"nativeSrc":"24414:19:88","nodeType":"YulFunctionCall","src":"24414:19:88"},{"arguments":[{"name":"value2","nativeSrc":"24439:6:88","nodeType":"YulIdentifier","src":"24439:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24455:3:88","nodeType":"YulLiteral","src":"24455:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"24460:1:88","nodeType":"YulLiteral","src":"24460:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24451:3:88","nodeType":"YulIdentifier","src":"24451:3:88"},"nativeSrc":"24451:11:88","nodeType":"YulFunctionCall","src":"24451:11:88"},{"kind":"number","nativeSrc":"24464:1:88","nodeType":"YulLiteral","src":"24464:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24447:3:88","nodeType":"YulIdentifier","src":"24447:3:88"},"nativeSrc":"24447:19:88","nodeType":"YulFunctionCall","src":"24447:19:88"}],"functionName":{"name":"and","nativeSrc":"24435:3:88","nodeType":"YulIdentifier","src":"24435:3:88"},"nativeSrc":"24435:32:88","nodeType":"YulFunctionCall","src":"24435:32:88"}],"functionName":{"name":"mstore","nativeSrc":"24407:6:88","nodeType":"YulIdentifier","src":"24407:6:88"},"nativeSrc":"24407:61:88","nodeType":"YulFunctionCall","src":"24407:61:88"},"nativeSrc":"24407:61:88","nodeType":"YulExpressionStatement","src":"24407:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24488:9:88","nodeType":"YulIdentifier","src":"24488:9:88"},{"kind":"number","nativeSrc":"24499:3:88","nodeType":"YulLiteral","src":"24499:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"24484:3:88","nodeType":"YulIdentifier","src":"24484:3:88"},"nativeSrc":"24484:19:88","nodeType":"YulFunctionCall","src":"24484:19:88"},{"arguments":[{"name":"value3","nativeSrc":"24509:6:88","nodeType":"YulIdentifier","src":"24509:6:88"},{"kind":"number","nativeSrc":"24517:26:88","nodeType":"YulLiteral","src":"24517:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"24505:3:88","nodeType":"YulIdentifier","src":"24505:3:88"},"nativeSrc":"24505:39:88","nodeType":"YulFunctionCall","src":"24505:39:88"}],"functionName":{"name":"mstore","nativeSrc":"24477:6:88","nodeType":"YulIdentifier","src":"24477:6:88"},"nativeSrc":"24477:68:88","nodeType":"YulFunctionCall","src":"24477:68:88"},"nativeSrc":"24477:68:88","nodeType":"YulExpressionStatement","src":"24477:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed","nativeSrc":"23929:622:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24175:9:88","nodeType":"YulTypedName","src":"24175:9:88","type":""},{"name":"value3","nativeSrc":"24186:6:88","nodeType":"YulTypedName","src":"24186:6:88","type":""},{"name":"value2","nativeSrc":"24194:6:88","nodeType":"YulTypedName","src":"24194:6:88","type":""},{"name":"value1","nativeSrc":"24202:6:88","nodeType":"YulTypedName","src":"24202:6:88","type":""},{"name":"value0","nativeSrc":"24210:6:88","nodeType":"YulTypedName","src":"24210:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24221:4:88","nodeType":"YulTypedName","src":"24221:4:88","type":""}],"src":"23929:622:88"},{"body":{"nativeSrc":"24637:103:88","nodeType":"YulBlock","src":"24637:103:88","statements":[{"body":{"nativeSrc":"24683:16:88","nodeType":"YulBlock","src":"24683:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24692:1:88","nodeType":"YulLiteral","src":"24692:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"24695:1:88","nodeType":"YulLiteral","src":"24695:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24685:6:88","nodeType":"YulIdentifier","src":"24685:6:88"},"nativeSrc":"24685:12:88","nodeType":"YulFunctionCall","src":"24685:12:88"},"nativeSrc":"24685:12:88","nodeType":"YulExpressionStatement","src":"24685:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"24658:7:88","nodeType":"YulIdentifier","src":"24658:7:88"},{"name":"headStart","nativeSrc":"24667:9:88","nodeType":"YulIdentifier","src":"24667:9:88"}],"functionName":{"name":"sub","nativeSrc":"24654:3:88","nodeType":"YulIdentifier","src":"24654:3:88"},"nativeSrc":"24654:23:88","nodeType":"YulFunctionCall","src":"24654:23:88"},{"kind":"number","nativeSrc":"24679:2:88","nodeType":"YulLiteral","src":"24679:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"24650:3:88","nodeType":"YulIdentifier","src":"24650:3:88"},"nativeSrc":"24650:32:88","nodeType":"YulFunctionCall","src":"24650:32:88"},"nativeSrc":"24647:52:88","nodeType":"YulIf","src":"24647:52:88"},{"nativeSrc":"24708:26:88","nodeType":"YulAssignment","src":"24708:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24724:9:88","nodeType":"YulIdentifier","src":"24724:9:88"}],"functionName":{"name":"mload","nativeSrc":"24718:5:88","nodeType":"YulIdentifier","src":"24718:5:88"},"nativeSrc":"24718:16:88","nodeType":"YulFunctionCall","src":"24718:16:88"},"variableNames":[{"name":"value0","nativeSrc":"24708:6:88","nodeType":"YulIdentifier","src":"24708:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"24556:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24603:9:88","nodeType":"YulTypedName","src":"24603:9:88","type":""},{"name":"dataEnd","nativeSrc":"24614:7:88","nodeType":"YulTypedName","src":"24614:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"24626:6:88","nodeType":"YulTypedName","src":"24626:6:88","type":""}],"src":"24556:184:88"},{"body":{"nativeSrc":"24919:236:88","nodeType":"YulBlock","src":"24919:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24936:9:88","nodeType":"YulIdentifier","src":"24936:9:88"},{"kind":"number","nativeSrc":"24947:2:88","nodeType":"YulLiteral","src":"24947:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24929:6:88","nodeType":"YulIdentifier","src":"24929:6:88"},"nativeSrc":"24929:21:88","nodeType":"YulFunctionCall","src":"24929:21:88"},"nativeSrc":"24929:21:88","nodeType":"YulExpressionStatement","src":"24929:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24970:9:88","nodeType":"YulIdentifier","src":"24970:9:88"},{"kind":"number","nativeSrc":"24981:2:88","nodeType":"YulLiteral","src":"24981:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24966:3:88","nodeType":"YulIdentifier","src":"24966:3:88"},"nativeSrc":"24966:18:88","nodeType":"YulFunctionCall","src":"24966:18:88"},{"kind":"number","nativeSrc":"24986:2:88","nodeType":"YulLiteral","src":"24986:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"24959:6:88","nodeType":"YulIdentifier","src":"24959:6:88"},"nativeSrc":"24959:30:88","nodeType":"YulFunctionCall","src":"24959:30:88"},"nativeSrc":"24959:30:88","nodeType":"YulExpressionStatement","src":"24959:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25009:9:88","nodeType":"YulIdentifier","src":"25009:9:88"},{"kind":"number","nativeSrc":"25020:2:88","nodeType":"YulLiteral","src":"25020:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25005:3:88","nodeType":"YulIdentifier","src":"25005:3:88"},"nativeSrc":"25005:18:88","nodeType":"YulFunctionCall","src":"25005:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"25025:34:88","nodeType":"YulLiteral","src":"25025:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"24998:6:88","nodeType":"YulIdentifier","src":"24998:6:88"},"nativeSrc":"24998:62:88","nodeType":"YulFunctionCall","src":"24998:62:88"},"nativeSrc":"24998:62:88","nodeType":"YulExpressionStatement","src":"24998:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25080:9:88","nodeType":"YulIdentifier","src":"25080:9:88"},{"kind":"number","nativeSrc":"25091:2:88","nodeType":"YulLiteral","src":"25091:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25076:3:88","nodeType":"YulIdentifier","src":"25076:3:88"},"nativeSrc":"25076:18:88","nodeType":"YulFunctionCall","src":"25076:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"25096:16:88","nodeType":"YulLiteral","src":"25096:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"25069:6:88","nodeType":"YulIdentifier","src":"25069:6:88"},"nativeSrc":"25069:44:88","nodeType":"YulFunctionCall","src":"25069:44:88"},"nativeSrc":"25069:44:88","nodeType":"YulExpressionStatement","src":"25069:44:88"},{"nativeSrc":"25122:27:88","nodeType":"YulAssignment","src":"25122:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25134:9:88","nodeType":"YulIdentifier","src":"25134:9:88"},{"kind":"number","nativeSrc":"25145:3:88","nodeType":"YulLiteral","src":"25145:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25130:3:88","nodeType":"YulIdentifier","src":"25130:3:88"},"nativeSrc":"25130:19:88","nodeType":"YulFunctionCall","src":"25130:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25122:4:88","nodeType":"YulIdentifier","src":"25122:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24745:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24896:9:88","nodeType":"YulTypedName","src":"24896:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24910:4:88","nodeType":"YulTypedName","src":"24910:4:88","type":""}],"src":"24745:410:88"},{"body":{"nativeSrc":"25334:231:88","nodeType":"YulBlock","src":"25334:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25351:9:88","nodeType":"YulIdentifier","src":"25351:9:88"},{"kind":"number","nativeSrc":"25362:2:88","nodeType":"YulLiteral","src":"25362:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25344:6:88","nodeType":"YulIdentifier","src":"25344:6:88"},"nativeSrc":"25344:21:88","nodeType":"YulFunctionCall","src":"25344:21:88"},"nativeSrc":"25344:21:88","nodeType":"YulExpressionStatement","src":"25344:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25385:9:88","nodeType":"YulIdentifier","src":"25385:9:88"},{"kind":"number","nativeSrc":"25396:2:88","nodeType":"YulLiteral","src":"25396:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25381:3:88","nodeType":"YulIdentifier","src":"25381:3:88"},"nativeSrc":"25381:18:88","nodeType":"YulFunctionCall","src":"25381:18:88"},{"kind":"number","nativeSrc":"25401:2:88","nodeType":"YulLiteral","src":"25401:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"25374:6:88","nodeType":"YulIdentifier","src":"25374:6:88"},"nativeSrc":"25374:30:88","nodeType":"YulFunctionCall","src":"25374:30:88"},"nativeSrc":"25374:30:88","nodeType":"YulExpressionStatement","src":"25374:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25424:9:88","nodeType":"YulIdentifier","src":"25424:9:88"},{"kind":"number","nativeSrc":"25435:2:88","nodeType":"YulLiteral","src":"25435:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25420:3:88","nodeType":"YulIdentifier","src":"25420:3:88"},"nativeSrc":"25420:18:88","nodeType":"YulFunctionCall","src":"25420:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"25440:34:88","nodeType":"YulLiteral","src":"25440:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"25413:6:88","nodeType":"YulIdentifier","src":"25413:6:88"},"nativeSrc":"25413:62:88","nodeType":"YulFunctionCall","src":"25413:62:88"},"nativeSrc":"25413:62:88","nodeType":"YulExpressionStatement","src":"25413:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25495:9:88","nodeType":"YulIdentifier","src":"25495:9:88"},{"kind":"number","nativeSrc":"25506:2:88","nodeType":"YulLiteral","src":"25506:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25491:3:88","nodeType":"YulIdentifier","src":"25491:3:88"},"nativeSrc":"25491:18:88","nodeType":"YulFunctionCall","src":"25491:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"25511:11:88","nodeType":"YulLiteral","src":"25511:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"25484:6:88","nodeType":"YulIdentifier","src":"25484:6:88"},"nativeSrc":"25484:39:88","nodeType":"YulFunctionCall","src":"25484:39:88"},"nativeSrc":"25484:39:88","nodeType":"YulExpressionStatement","src":"25484:39:88"},{"nativeSrc":"25532:27:88","nodeType":"YulAssignment","src":"25532:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25544:9:88","nodeType":"YulIdentifier","src":"25544:9:88"},{"kind":"number","nativeSrc":"25555:3:88","nodeType":"YulLiteral","src":"25555:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25540:3:88","nodeType":"YulIdentifier","src":"25540:3:88"},"nativeSrc":"25540:19:88","nodeType":"YulFunctionCall","src":"25540:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25532:4:88","nodeType":"YulIdentifier","src":"25532:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25160:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25311:9:88","nodeType":"YulTypedName","src":"25311:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25325:4:88","nodeType":"YulTypedName","src":"25325:4:88","type":""}],"src":"25160:405:88"},{"body":{"nativeSrc":"25744:233:88","nodeType":"YulBlock","src":"25744:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25761:9:88","nodeType":"YulIdentifier","src":"25761:9:88"},{"kind":"number","nativeSrc":"25772:2:88","nodeType":"YulLiteral","src":"25772:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25754:6:88","nodeType":"YulIdentifier","src":"25754:6:88"},"nativeSrc":"25754:21:88","nodeType":"YulFunctionCall","src":"25754:21:88"},"nativeSrc":"25754:21:88","nodeType":"YulExpressionStatement","src":"25754:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25795:9:88","nodeType":"YulIdentifier","src":"25795:9:88"},{"kind":"number","nativeSrc":"25806:2:88","nodeType":"YulLiteral","src":"25806:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25791:3:88","nodeType":"YulIdentifier","src":"25791:3:88"},"nativeSrc":"25791:18:88","nodeType":"YulFunctionCall","src":"25791:18:88"},{"kind":"number","nativeSrc":"25811:2:88","nodeType":"YulLiteral","src":"25811:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"25784:6:88","nodeType":"YulIdentifier","src":"25784:6:88"},"nativeSrc":"25784:30:88","nodeType":"YulFunctionCall","src":"25784:30:88"},"nativeSrc":"25784:30:88","nodeType":"YulExpressionStatement","src":"25784:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25834:9:88","nodeType":"YulIdentifier","src":"25834:9:88"},{"kind":"number","nativeSrc":"25845:2:88","nodeType":"YulLiteral","src":"25845:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25830:3:88","nodeType":"YulIdentifier","src":"25830:3:88"},"nativeSrc":"25830:18:88","nodeType":"YulFunctionCall","src":"25830:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"25850:34:88","nodeType":"YulLiteral","src":"25850:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"25823:6:88","nodeType":"YulIdentifier","src":"25823:6:88"},"nativeSrc":"25823:62:88","nodeType":"YulFunctionCall","src":"25823:62:88"},"nativeSrc":"25823:62:88","nodeType":"YulExpressionStatement","src":"25823:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25905:9:88","nodeType":"YulIdentifier","src":"25905:9:88"},{"kind":"number","nativeSrc":"25916:2:88","nodeType":"YulLiteral","src":"25916:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25901:3:88","nodeType":"YulIdentifier","src":"25901:3:88"},"nativeSrc":"25901:18:88","nodeType":"YulFunctionCall","src":"25901:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"25921:13:88","nodeType":"YulLiteral","src":"25921:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"25894:6:88","nodeType":"YulIdentifier","src":"25894:6:88"},"nativeSrc":"25894:41:88","nodeType":"YulFunctionCall","src":"25894:41:88"},"nativeSrc":"25894:41:88","nodeType":"YulExpressionStatement","src":"25894:41:88"},{"nativeSrc":"25944:27:88","nodeType":"YulAssignment","src":"25944:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25956:9:88","nodeType":"YulIdentifier","src":"25956:9:88"},{"kind":"number","nativeSrc":"25967:3:88","nodeType":"YulLiteral","src":"25967:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25952:3:88","nodeType":"YulIdentifier","src":"25952:3:88"},"nativeSrc":"25952:19:88","nodeType":"YulFunctionCall","src":"25952:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25944:4:88","nodeType":"YulIdentifier","src":"25944:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25570:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25721:9:88","nodeType":"YulTypedName","src":"25721:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25735:4:88","nodeType":"YulTypedName","src":"25735:4:88","type":""}],"src":"25570:407:88"},{"body":{"nativeSrc":"26061:194:88","nodeType":"YulBlock","src":"26061:194:88","statements":[{"body":{"nativeSrc":"26107:16:88","nodeType":"YulBlock","src":"26107:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26116:1:88","nodeType":"YulLiteral","src":"26116:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26119:1:88","nodeType":"YulLiteral","src":"26119:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26109:6:88","nodeType":"YulIdentifier","src":"26109:6:88"},"nativeSrc":"26109:12:88","nodeType":"YulFunctionCall","src":"26109:12:88"},"nativeSrc":"26109:12:88","nodeType":"YulExpressionStatement","src":"26109:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26082:7:88","nodeType":"YulIdentifier","src":"26082:7:88"},{"name":"headStart","nativeSrc":"26091:9:88","nodeType":"YulIdentifier","src":"26091:9:88"}],"functionName":{"name":"sub","nativeSrc":"26078:3:88","nodeType":"YulIdentifier","src":"26078:3:88"},"nativeSrc":"26078:23:88","nodeType":"YulFunctionCall","src":"26078:23:88"},{"kind":"number","nativeSrc":"26103:2:88","nodeType":"YulLiteral","src":"26103:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26074:3:88","nodeType":"YulIdentifier","src":"26074:3:88"},"nativeSrc":"26074:32:88","nodeType":"YulFunctionCall","src":"26074:32:88"},"nativeSrc":"26071:52:88","nodeType":"YulIf","src":"26071:52:88"},{"nativeSrc":"26132:29:88","nodeType":"YulVariableDeclaration","src":"26132:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26151:9:88","nodeType":"YulIdentifier","src":"26151:9:88"}],"functionName":{"name":"mload","nativeSrc":"26145:5:88","nodeType":"YulIdentifier","src":"26145:5:88"},"nativeSrc":"26145:16:88","nodeType":"YulFunctionCall","src":"26145:16:88"},"variables":[{"name":"value","nativeSrc":"26136:5:88","nodeType":"YulTypedName","src":"26136:5:88","type":""}]},{"body":{"nativeSrc":"26209:16:88","nodeType":"YulBlock","src":"26209:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26218:1:88","nodeType":"YulLiteral","src":"26218:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"26221:1:88","nodeType":"YulLiteral","src":"26221:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26211:6:88","nodeType":"YulIdentifier","src":"26211:6:88"},"nativeSrc":"26211:12:88","nodeType":"YulFunctionCall","src":"26211:12:88"},"nativeSrc":"26211:12:88","nodeType":"YulExpressionStatement","src":"26211:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26183:5:88","nodeType":"YulIdentifier","src":"26183:5:88"},{"arguments":[{"name":"value","nativeSrc":"26194:5:88","nodeType":"YulIdentifier","src":"26194:5:88"},{"kind":"number","nativeSrc":"26201:4:88","nodeType":"YulLiteral","src":"26201:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26190:3:88","nodeType":"YulIdentifier","src":"26190:3:88"},"nativeSrc":"26190:16:88","nodeType":"YulFunctionCall","src":"26190:16:88"}],"functionName":{"name":"eq","nativeSrc":"26180:2:88","nodeType":"YulIdentifier","src":"26180:2:88"},"nativeSrc":"26180:27:88","nodeType":"YulFunctionCall","src":"26180:27:88"}],"functionName":{"name":"iszero","nativeSrc":"26173:6:88","nodeType":"YulIdentifier","src":"26173:6:88"},"nativeSrc":"26173:35:88","nodeType":"YulFunctionCall","src":"26173:35:88"},"nativeSrc":"26170:55:88","nodeType":"YulIf","src":"26170:55:88"},{"nativeSrc":"26234:15:88","nodeType":"YulAssignment","src":"26234:15:88","value":{"name":"value","nativeSrc":"26244:5:88","nodeType":"YulIdentifier","src":"26244:5:88"},"variableNames":[{"name":"value0","nativeSrc":"26234:6:88","nodeType":"YulIdentifier","src":"26234:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"25982:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26027:9:88","nodeType":"YulTypedName","src":"26027:9:88","type":""},{"name":"dataEnd","nativeSrc":"26038:7:88","nodeType":"YulTypedName","src":"26038:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26050:6:88","nodeType":"YulTypedName","src":"26050:6:88","type":""}],"src":"25982:273:88"},{"body":{"nativeSrc":"26307:104:88","nodeType":"YulBlock","src":"26307:104:88","statements":[{"nativeSrc":"26317:39:88","nodeType":"YulAssignment","src":"26317:39:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"26333:1:88","nodeType":"YulIdentifier","src":"26333:1:88"},{"kind":"number","nativeSrc":"26336:4:88","nodeType":"YulLiteral","src":"26336:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26329:3:88","nodeType":"YulIdentifier","src":"26329:3:88"},"nativeSrc":"26329:12:88","nodeType":"YulFunctionCall","src":"26329:12:88"},{"arguments":[{"name":"y","nativeSrc":"26347:1:88","nodeType":"YulIdentifier","src":"26347:1:88"},{"kind":"number","nativeSrc":"26350:4:88","nodeType":"YulLiteral","src":"26350:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26343:3:88","nodeType":"YulIdentifier","src":"26343:3:88"},"nativeSrc":"26343:12:88","nodeType":"YulFunctionCall","src":"26343:12:88"}],"functionName":{"name":"sub","nativeSrc":"26325:3:88","nodeType":"YulIdentifier","src":"26325:3:88"},"nativeSrc":"26325:31:88","nodeType":"YulFunctionCall","src":"26325:31:88"},"variableNames":[{"name":"diff","nativeSrc":"26317:4:88","nodeType":"YulIdentifier","src":"26317:4:88"}]},{"body":{"nativeSrc":"26383:22:88","nodeType":"YulBlock","src":"26383:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"26385:16:88","nodeType":"YulIdentifier","src":"26385:16:88"},"nativeSrc":"26385:18:88","nodeType":"YulFunctionCall","src":"26385:18:88"},"nativeSrc":"26385:18:88","nodeType":"YulExpressionStatement","src":"26385:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"26371:4:88","nodeType":"YulIdentifier","src":"26371:4:88"},{"kind":"number","nativeSrc":"26377:4:88","nodeType":"YulLiteral","src":"26377:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"26368:2:88","nodeType":"YulIdentifier","src":"26368:2:88"},"nativeSrc":"26368:14:88","nodeType":"YulFunctionCall","src":"26368:14:88"},"nativeSrc":"26365:40:88","nodeType":"YulIf","src":"26365:40:88"}]},"name":"checked_sub_t_uint8","nativeSrc":"26260:151:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26289:1:88","nodeType":"YulTypedName","src":"26289:1:88","type":""},{"name":"y","nativeSrc":"26292:1:88","nodeType":"YulTypedName","src":"26292:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"26298:4:88","nodeType":"YulTypedName","src":"26298:4:88","type":""}],"src":"26260:151:88"},{"body":{"nativeSrc":"26485:306:88","nodeType":"YulBlock","src":"26485:306:88","statements":[{"nativeSrc":"26495:10:88","nodeType":"YulAssignment","src":"26495:10:88","value":{"kind":"number","nativeSrc":"26504:1:88","nodeType":"YulLiteral","src":"26504:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"26495:5:88","nodeType":"YulIdentifier","src":"26495:5:88"}]},{"nativeSrc":"26514:13:88","nodeType":"YulAssignment","src":"26514:13:88","value":{"name":"_base","nativeSrc":"26522:5:88","nodeType":"YulIdentifier","src":"26522:5:88"},"variableNames":[{"name":"base","nativeSrc":"26514:4:88","nodeType":"YulIdentifier","src":"26514:4:88"}]},{"body":{"nativeSrc":"26572:213:88","nodeType":"YulBlock","src":"26572:213:88","statements":[{"body":{"nativeSrc":"26614:22:88","nodeType":"YulBlock","src":"26614:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"26616:16:88","nodeType":"YulIdentifier","src":"26616:16:88"},"nativeSrc":"26616:18:88","nodeType":"YulFunctionCall","src":"26616:18:88"},"nativeSrc":"26616:18:88","nodeType":"YulExpressionStatement","src":"26616:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"26592:4:88","nodeType":"YulIdentifier","src":"26592:4:88"},{"arguments":[{"name":"max","nativeSrc":"26602:3:88","nodeType":"YulIdentifier","src":"26602:3:88"},{"name":"base","nativeSrc":"26607:4:88","nodeType":"YulIdentifier","src":"26607:4:88"}],"functionName":{"name":"div","nativeSrc":"26598:3:88","nodeType":"YulIdentifier","src":"26598:3:88"},"nativeSrc":"26598:14:88","nodeType":"YulFunctionCall","src":"26598:14:88"}],"functionName":{"name":"gt","nativeSrc":"26589:2:88","nodeType":"YulIdentifier","src":"26589:2:88"},"nativeSrc":"26589:24:88","nodeType":"YulFunctionCall","src":"26589:24:88"},"nativeSrc":"26586:50:88","nodeType":"YulIf","src":"26586:50:88"},{"body":{"nativeSrc":"26669:29:88","nodeType":"YulBlock","src":"26669:29:88","statements":[{"nativeSrc":"26671:25:88","nodeType":"YulAssignment","src":"26671:25:88","value":{"arguments":[{"name":"power","nativeSrc":"26684:5:88","nodeType":"YulIdentifier","src":"26684:5:88"},{"name":"base","nativeSrc":"26691:4:88","nodeType":"YulIdentifier","src":"26691:4:88"}],"functionName":{"name":"mul","nativeSrc":"26680:3:88","nodeType":"YulIdentifier","src":"26680:3:88"},"nativeSrc":"26680:16:88","nodeType":"YulFunctionCall","src":"26680:16:88"},"variableNames":[{"name":"power","nativeSrc":"26671:5:88","nodeType":"YulIdentifier","src":"26671:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26656:8:88","nodeType":"YulIdentifier","src":"26656:8:88"},{"kind":"number","nativeSrc":"26666:1:88","nodeType":"YulLiteral","src":"26666:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"26652:3:88","nodeType":"YulIdentifier","src":"26652:3:88"},"nativeSrc":"26652:16:88","nodeType":"YulFunctionCall","src":"26652:16:88"},"nativeSrc":"26649:49:88","nodeType":"YulIf","src":"26649:49:88"},{"nativeSrc":"26711:23:88","nodeType":"YulAssignment","src":"26711:23:88","value":{"arguments":[{"name":"base","nativeSrc":"26723:4:88","nodeType":"YulIdentifier","src":"26723:4:88"},{"name":"base","nativeSrc":"26729:4:88","nodeType":"YulIdentifier","src":"26729:4:88"}],"functionName":{"name":"mul","nativeSrc":"26719:3:88","nodeType":"YulIdentifier","src":"26719:3:88"},"nativeSrc":"26719:15:88","nodeType":"YulFunctionCall","src":"26719:15:88"},"variableNames":[{"name":"base","nativeSrc":"26711:4:88","nodeType":"YulIdentifier","src":"26711:4:88"}]},{"nativeSrc":"26747:28:88","nodeType":"YulAssignment","src":"26747:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"26763:1:88","nodeType":"YulLiteral","src":"26763:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"26766:8:88","nodeType":"YulIdentifier","src":"26766:8:88"}],"functionName":{"name":"shr","nativeSrc":"26759:3:88","nodeType":"YulIdentifier","src":"26759:3:88"},"nativeSrc":"26759:16:88","nodeType":"YulFunctionCall","src":"26759:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"26747:8:88","nodeType":"YulIdentifier","src":"26747:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26547:8:88","nodeType":"YulIdentifier","src":"26547:8:88"},{"kind":"number","nativeSrc":"26557:1:88","nodeType":"YulLiteral","src":"26557:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"26544:2:88","nodeType":"YulIdentifier","src":"26544:2:88"},"nativeSrc":"26544:15:88","nodeType":"YulFunctionCall","src":"26544:15:88"},"nativeSrc":"26536:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"26560:3:88","nodeType":"YulBlock","src":"26560:3:88","statements":[]},"pre":{"nativeSrc":"26540:3:88","nodeType":"YulBlock","src":"26540:3:88","statements":[]},"src":"26536:249:88"}]},"name":"checked_exp_helper","nativeSrc":"26416:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"26444:5:88","nodeType":"YulTypedName","src":"26444:5:88","type":""},{"name":"exponent","nativeSrc":"26451:8:88","nodeType":"YulTypedName","src":"26451:8:88","type":""},{"name":"max","nativeSrc":"26461:3:88","nodeType":"YulTypedName","src":"26461:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"26469:5:88","nodeType":"YulTypedName","src":"26469:5:88","type":""},{"name":"base","nativeSrc":"26476:4:88","nodeType":"YulTypedName","src":"26476:4:88","type":""}],"src":"26416:375:88"},{"body":{"nativeSrc":"26855:843:88","nodeType":"YulBlock","src":"26855:843:88","statements":[{"body":{"nativeSrc":"26893:52:88","nodeType":"YulBlock","src":"26893:52:88","statements":[{"nativeSrc":"26907:10:88","nodeType":"YulAssignment","src":"26907:10:88","value":{"kind":"number","nativeSrc":"26916:1:88","nodeType":"YulLiteral","src":"26916:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"26907:5:88","nodeType":"YulIdentifier","src":"26907:5:88"}]},{"nativeSrc":"26930:5:88","nodeType":"YulLeave","src":"26930:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26875:8:88","nodeType":"YulIdentifier","src":"26875:8:88"}],"functionName":{"name":"iszero","nativeSrc":"26868:6:88","nodeType":"YulIdentifier","src":"26868:6:88"},"nativeSrc":"26868:16:88","nodeType":"YulFunctionCall","src":"26868:16:88"},"nativeSrc":"26865:80:88","nodeType":"YulIf","src":"26865:80:88"},{"body":{"nativeSrc":"26978:52:88","nodeType":"YulBlock","src":"26978:52:88","statements":[{"nativeSrc":"26992:10:88","nodeType":"YulAssignment","src":"26992:10:88","value":{"kind":"number","nativeSrc":"27001:1:88","nodeType":"YulLiteral","src":"27001:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"26992:5:88","nodeType":"YulIdentifier","src":"26992:5:88"}]},{"nativeSrc":"27015:5:88","nodeType":"YulLeave","src":"27015:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"26964:4:88","nodeType":"YulIdentifier","src":"26964:4:88"}],"functionName":{"name":"iszero","nativeSrc":"26957:6:88","nodeType":"YulIdentifier","src":"26957:6:88"},"nativeSrc":"26957:12:88","nodeType":"YulFunctionCall","src":"26957:12:88"},"nativeSrc":"26954:76:88","nodeType":"YulIf","src":"26954:76:88"},{"cases":[{"body":{"nativeSrc":"27066:52:88","nodeType":"YulBlock","src":"27066:52:88","statements":[{"nativeSrc":"27080:10:88","nodeType":"YulAssignment","src":"27080:10:88","value":{"kind":"number","nativeSrc":"27089:1:88","nodeType":"YulLiteral","src":"27089:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"27080:5:88","nodeType":"YulIdentifier","src":"27080:5:88"}]},{"nativeSrc":"27103:5:88","nodeType":"YulLeave","src":"27103:5:88"}]},"nativeSrc":"27059:59:88","nodeType":"YulCase","src":"27059:59:88","value":{"kind":"number","nativeSrc":"27064:1:88","nodeType":"YulLiteral","src":"27064:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"27134:167:88","nodeType":"YulBlock","src":"27134:167:88","statements":[{"body":{"nativeSrc":"27169:22:88","nodeType":"YulBlock","src":"27169:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27171:16:88","nodeType":"YulIdentifier","src":"27171:16:88"},"nativeSrc":"27171:18:88","nodeType":"YulFunctionCall","src":"27171:18:88"},"nativeSrc":"27171:18:88","nodeType":"YulExpressionStatement","src":"27171:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"27154:8:88","nodeType":"YulIdentifier","src":"27154:8:88"},{"kind":"number","nativeSrc":"27164:3:88","nodeType":"YulLiteral","src":"27164:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"27151:2:88","nodeType":"YulIdentifier","src":"27151:2:88"},"nativeSrc":"27151:17:88","nodeType":"YulFunctionCall","src":"27151:17:88"},"nativeSrc":"27148:43:88","nodeType":"YulIf","src":"27148:43:88"},{"nativeSrc":"27204:25:88","nodeType":"YulAssignment","src":"27204:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"27217:8:88","nodeType":"YulIdentifier","src":"27217:8:88"},{"kind":"number","nativeSrc":"27227:1:88","nodeType":"YulLiteral","src":"27227:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"27213:3:88","nodeType":"YulIdentifier","src":"27213:3:88"},"nativeSrc":"27213:16:88","nodeType":"YulFunctionCall","src":"27213:16:88"},"variableNames":[{"name":"power","nativeSrc":"27204:5:88","nodeType":"YulIdentifier","src":"27204:5:88"}]},{"nativeSrc":"27242:11:88","nodeType":"YulVariableDeclaration","src":"27242:11:88","value":{"kind":"number","nativeSrc":"27252:1:88","nodeType":"YulLiteral","src":"27252:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"27246:2:88","nodeType":"YulTypedName","src":"27246:2:88","type":""}]},{"nativeSrc":"27266:7:88","nodeType":"YulAssignment","src":"27266:7:88","value":{"kind":"number","nativeSrc":"27272:1:88","nodeType":"YulLiteral","src":"27272:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"27266:2:88","nodeType":"YulIdentifier","src":"27266:2:88"}]},{"nativeSrc":"27286:5:88","nodeType":"YulLeave","src":"27286:5:88"}]},"nativeSrc":"27127:174:88","nodeType":"YulCase","src":"27127:174:88","value":{"kind":"number","nativeSrc":"27132:1:88","nodeType":"YulLiteral","src":"27132:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"27046:4:88","nodeType":"YulIdentifier","src":"27046:4:88"},"nativeSrc":"27039:262:88","nodeType":"YulSwitch","src":"27039:262:88"},{"body":{"nativeSrc":"27399:114:88","nodeType":"YulBlock","src":"27399:114:88","statements":[{"nativeSrc":"27413:28:88","nodeType":"YulAssignment","src":"27413:28:88","value":{"arguments":[{"name":"base","nativeSrc":"27426:4:88","nodeType":"YulIdentifier","src":"27426:4:88"},{"name":"exponent","nativeSrc":"27432:8:88","nodeType":"YulIdentifier","src":"27432:8:88"}],"functionName":{"name":"exp","nativeSrc":"27422:3:88","nodeType":"YulIdentifier","src":"27422:3:88"},"nativeSrc":"27422:19:88","nodeType":"YulFunctionCall","src":"27422:19:88"},"variableNames":[{"name":"power","nativeSrc":"27413:5:88","nodeType":"YulIdentifier","src":"27413:5:88"}]},{"nativeSrc":"27454:11:88","nodeType":"YulVariableDeclaration","src":"27454:11:88","value":{"kind":"number","nativeSrc":"27464:1:88","nodeType":"YulLiteral","src":"27464:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"27458:2:88","nodeType":"YulTypedName","src":"27458:2:88","type":""}]},{"nativeSrc":"27478:7:88","nodeType":"YulAssignment","src":"27478:7:88","value":{"kind":"number","nativeSrc":"27484:1:88","nodeType":"YulLiteral","src":"27484:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"27478:2:88","nodeType":"YulIdentifier","src":"27478:2:88"}]},{"nativeSrc":"27498:5:88","nodeType":"YulLeave","src":"27498:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"27323:4:88","nodeType":"YulIdentifier","src":"27323:4:88"},{"kind":"number","nativeSrc":"27329:2:88","nodeType":"YulLiteral","src":"27329:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"27320:2:88","nodeType":"YulIdentifier","src":"27320:2:88"},"nativeSrc":"27320:12:88","nodeType":"YulFunctionCall","src":"27320:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"27337:8:88","nodeType":"YulIdentifier","src":"27337:8:88"},{"kind":"number","nativeSrc":"27347:2:88","nodeType":"YulLiteral","src":"27347:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"27334:2:88","nodeType":"YulIdentifier","src":"27334:2:88"},"nativeSrc":"27334:16:88","nodeType":"YulFunctionCall","src":"27334:16:88"}],"functionName":{"name":"and","nativeSrc":"27316:3:88","nodeType":"YulIdentifier","src":"27316:3:88"},"nativeSrc":"27316:35:88","nodeType":"YulFunctionCall","src":"27316:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"27360:4:88","nodeType":"YulIdentifier","src":"27360:4:88"},{"kind":"number","nativeSrc":"27366:3:88","nodeType":"YulLiteral","src":"27366:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"27357:2:88","nodeType":"YulIdentifier","src":"27357:2:88"},"nativeSrc":"27357:13:88","nodeType":"YulFunctionCall","src":"27357:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"27375:8:88","nodeType":"YulIdentifier","src":"27375:8:88"},{"kind":"number","nativeSrc":"27385:2:88","nodeType":"YulLiteral","src":"27385:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"27372:2:88","nodeType":"YulIdentifier","src":"27372:2:88"},"nativeSrc":"27372:16:88","nodeType":"YulFunctionCall","src":"27372:16:88"}],"functionName":{"name":"and","nativeSrc":"27353:3:88","nodeType":"YulIdentifier","src":"27353:3:88"},"nativeSrc":"27353:36:88","nodeType":"YulFunctionCall","src":"27353:36:88"}],"functionName":{"name":"or","nativeSrc":"27313:2:88","nodeType":"YulIdentifier","src":"27313:2:88"},"nativeSrc":"27313:77:88","nodeType":"YulFunctionCall","src":"27313:77:88"},"nativeSrc":"27310:203:88","nodeType":"YulIf","src":"27310:203:88"},{"nativeSrc":"27522:65:88","nodeType":"YulVariableDeclaration","src":"27522:65:88","value":{"arguments":[{"name":"base","nativeSrc":"27564:4:88","nodeType":"YulIdentifier","src":"27564:4:88"},{"name":"exponent","nativeSrc":"27570:8:88","nodeType":"YulIdentifier","src":"27570:8:88"},{"arguments":[{"kind":"number","nativeSrc":"27584:1:88","nodeType":"YulLiteral","src":"27584:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"27580:3:88","nodeType":"YulIdentifier","src":"27580:3:88"},"nativeSrc":"27580:6:88","nodeType":"YulFunctionCall","src":"27580:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"27545:18:88","nodeType":"YulIdentifier","src":"27545:18:88"},"nativeSrc":"27545:42:88","nodeType":"YulFunctionCall","src":"27545:42:88"},"variables":[{"name":"power_1","nativeSrc":"27526:7:88","nodeType":"YulTypedName","src":"27526:7:88","type":""},{"name":"base_1","nativeSrc":"27535:6:88","nodeType":"YulTypedName","src":"27535:6:88","type":""}]},{"body":{"nativeSrc":"27632:22:88","nodeType":"YulBlock","src":"27632:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27634:16:88","nodeType":"YulIdentifier","src":"27634:16:88"},"nativeSrc":"27634:18:88","nodeType":"YulFunctionCall","src":"27634:18:88"},"nativeSrc":"27634:18:88","nodeType":"YulExpressionStatement","src":"27634:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"27602:7:88","nodeType":"YulIdentifier","src":"27602:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27619:1:88","nodeType":"YulLiteral","src":"27619:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"27615:3:88","nodeType":"YulIdentifier","src":"27615:3:88"},"nativeSrc":"27615:6:88","nodeType":"YulFunctionCall","src":"27615:6:88"},{"name":"base_1","nativeSrc":"27623:6:88","nodeType":"YulIdentifier","src":"27623:6:88"}],"functionName":{"name":"div","nativeSrc":"27611:3:88","nodeType":"YulIdentifier","src":"27611:3:88"},"nativeSrc":"27611:19:88","nodeType":"YulFunctionCall","src":"27611:19:88"}],"functionName":{"name":"gt","nativeSrc":"27599:2:88","nodeType":"YulIdentifier","src":"27599:2:88"},"nativeSrc":"27599:32:88","nodeType":"YulFunctionCall","src":"27599:32:88"},"nativeSrc":"27596:58:88","nodeType":"YulIf","src":"27596:58:88"},{"nativeSrc":"27663:29:88","nodeType":"YulAssignment","src":"27663:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"27676:7:88","nodeType":"YulIdentifier","src":"27676:7:88"},{"name":"base_1","nativeSrc":"27685:6:88","nodeType":"YulIdentifier","src":"27685:6:88"}],"functionName":{"name":"mul","nativeSrc":"27672:3:88","nodeType":"YulIdentifier","src":"27672:3:88"},"nativeSrc":"27672:20:88","nodeType":"YulFunctionCall","src":"27672:20:88"},"variableNames":[{"name":"power","nativeSrc":"27663:5:88","nodeType":"YulIdentifier","src":"27663:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"26796:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"26826:4:88","nodeType":"YulTypedName","src":"26826:4:88","type":""},{"name":"exponent","nativeSrc":"26832:8:88","nodeType":"YulTypedName","src":"26832:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"26845:5:88","nodeType":"YulTypedName","src":"26845:5:88","type":""}],"src":"26796:902:88"},{"body":{"nativeSrc":"27771:72:88","nodeType":"YulBlock","src":"27771:72:88","statements":[{"nativeSrc":"27781:56:88","nodeType":"YulAssignment","src":"27781:56:88","value":{"arguments":[{"name":"base","nativeSrc":"27811:4:88","nodeType":"YulIdentifier","src":"27811:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"27821:8:88","nodeType":"YulIdentifier","src":"27821:8:88"},{"kind":"number","nativeSrc":"27831:4:88","nodeType":"YulLiteral","src":"27831:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"27817:3:88","nodeType":"YulIdentifier","src":"27817:3:88"},"nativeSrc":"27817:19:88","nodeType":"YulFunctionCall","src":"27817:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"27790:20:88","nodeType":"YulIdentifier","src":"27790:20:88"},"nativeSrc":"27790:47:88","nodeType":"YulFunctionCall","src":"27790:47:88"},"variableNames":[{"name":"power","nativeSrc":"27781:5:88","nodeType":"YulIdentifier","src":"27781:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"27703:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"27742:4:88","nodeType":"YulTypedName","src":"27742:4:88","type":""},{"name":"exponent","nativeSrc":"27748:8:88","nodeType":"YulTypedName","src":"27748:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"27761:5:88","nodeType":"YulTypedName","src":"27761:5:88","type":""}],"src":"27703:140:88"},{"body":{"nativeSrc":"27900:116:88","nodeType":"YulBlock","src":"27900:116:88","statements":[{"nativeSrc":"27910:20:88","nodeType":"YulAssignment","src":"27910:20:88","value":{"arguments":[{"name":"x","nativeSrc":"27925:1:88","nodeType":"YulIdentifier","src":"27925:1:88"},{"name":"y","nativeSrc":"27928:1:88","nodeType":"YulIdentifier","src":"27928:1:88"}],"functionName":{"name":"mul","nativeSrc":"27921:3:88","nodeType":"YulIdentifier","src":"27921:3:88"},"nativeSrc":"27921:9:88","nodeType":"YulFunctionCall","src":"27921:9:88"},"variableNames":[{"name":"product","nativeSrc":"27910:7:88","nodeType":"YulIdentifier","src":"27910:7:88"}]},{"body":{"nativeSrc":"27988:22:88","nodeType":"YulBlock","src":"27988:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27990:16:88","nodeType":"YulIdentifier","src":"27990:16:88"},"nativeSrc":"27990:18:88","nodeType":"YulFunctionCall","src":"27990:18:88"},"nativeSrc":"27990:18:88","nodeType":"YulExpressionStatement","src":"27990:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"27959:1:88","nodeType":"YulIdentifier","src":"27959:1:88"}],"functionName":{"name":"iszero","nativeSrc":"27952:6:88","nodeType":"YulIdentifier","src":"27952:6:88"},"nativeSrc":"27952:9:88","nodeType":"YulFunctionCall","src":"27952:9:88"},{"arguments":[{"name":"y","nativeSrc":"27966:1:88","nodeType":"YulIdentifier","src":"27966:1:88"},{"arguments":[{"name":"product","nativeSrc":"27973:7:88","nodeType":"YulIdentifier","src":"27973:7:88"},{"name":"x","nativeSrc":"27982:1:88","nodeType":"YulIdentifier","src":"27982:1:88"}],"functionName":{"name":"div","nativeSrc":"27969:3:88","nodeType":"YulIdentifier","src":"27969:3:88"},"nativeSrc":"27969:15:88","nodeType":"YulFunctionCall","src":"27969:15:88"}],"functionName":{"name":"eq","nativeSrc":"27963:2:88","nodeType":"YulIdentifier","src":"27963:2:88"},"nativeSrc":"27963:22:88","nodeType":"YulFunctionCall","src":"27963:22:88"}],"functionName":{"name":"or","nativeSrc":"27949:2:88","nodeType":"YulIdentifier","src":"27949:2:88"},"nativeSrc":"27949:37:88","nodeType":"YulFunctionCall","src":"27949:37:88"}],"functionName":{"name":"iszero","nativeSrc":"27942:6:88","nodeType":"YulIdentifier","src":"27942:6:88"},"nativeSrc":"27942:45:88","nodeType":"YulFunctionCall","src":"27942:45:88"},"nativeSrc":"27939:71:88","nodeType":"YulIf","src":"27939:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"27848:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27879:1:88","nodeType":"YulTypedName","src":"27879:1:88","type":""},{"name":"y","nativeSrc":"27882:1:88","nodeType":"YulTypedName","src":"27882:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"27888:7:88","nodeType":"YulTypedName","src":"27888:7:88","type":""}],"src":"27848:168:88"},{"body":{"nativeSrc":"28067:74:88","nodeType":"YulBlock","src":"28067:74:88","statements":[{"body":{"nativeSrc":"28090:22:88","nodeType":"YulBlock","src":"28090:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"28092:16:88","nodeType":"YulIdentifier","src":"28092:16:88"},"nativeSrc":"28092:18:88","nodeType":"YulFunctionCall","src":"28092:18:88"},"nativeSrc":"28092:18:88","nodeType":"YulExpressionStatement","src":"28092:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"28087:1:88","nodeType":"YulIdentifier","src":"28087:1:88"}],"functionName":{"name":"iszero","nativeSrc":"28080:6:88","nodeType":"YulIdentifier","src":"28080:6:88"},"nativeSrc":"28080:9:88","nodeType":"YulFunctionCall","src":"28080:9:88"},"nativeSrc":"28077:35:88","nodeType":"YulIf","src":"28077:35:88"},{"nativeSrc":"28121:14:88","nodeType":"YulAssignment","src":"28121:14:88","value":{"arguments":[{"name":"x","nativeSrc":"28130:1:88","nodeType":"YulIdentifier","src":"28130:1:88"},{"name":"y","nativeSrc":"28133:1:88","nodeType":"YulIdentifier","src":"28133:1:88"}],"functionName":{"name":"div","nativeSrc":"28126:3:88","nodeType":"YulIdentifier","src":"28126:3:88"},"nativeSrc":"28126:9:88","nodeType":"YulFunctionCall","src":"28126:9:88"},"variableNames":[{"name":"r","nativeSrc":"28121:1:88","nodeType":"YulIdentifier","src":"28121:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"28021:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28052:1:88","nodeType":"YulTypedName","src":"28052:1:88","type":""},{"name":"y","nativeSrc":"28055:1:88","nodeType":"YulTypedName","src":"28055:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28061:1:88","nodeType":"YulTypedName","src":"28061:1:88","type":""}],"src":"28021:120:88"},{"body":{"nativeSrc":"28224:167:88","nodeType":"YulBlock","src":"28224:167:88","statements":[{"body":{"nativeSrc":"28270:16:88","nodeType":"YulBlock","src":"28270:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28279:1:88","nodeType":"YulLiteral","src":"28279:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28282:1:88","nodeType":"YulLiteral","src":"28282:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28272:6:88","nodeType":"YulIdentifier","src":"28272:6:88"},"nativeSrc":"28272:12:88","nodeType":"YulFunctionCall","src":"28272:12:88"},"nativeSrc":"28272:12:88","nodeType":"YulExpressionStatement","src":"28272:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28245:7:88","nodeType":"YulIdentifier","src":"28245:7:88"},{"name":"headStart","nativeSrc":"28254:9:88","nodeType":"YulIdentifier","src":"28254:9:88"}],"functionName":{"name":"sub","nativeSrc":"28241:3:88","nodeType":"YulIdentifier","src":"28241:3:88"},"nativeSrc":"28241:23:88","nodeType":"YulFunctionCall","src":"28241:23:88"},{"kind":"number","nativeSrc":"28266:2:88","nodeType":"YulLiteral","src":"28266:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"28237:3:88","nodeType":"YulIdentifier","src":"28237:3:88"},"nativeSrc":"28237:32:88","nodeType":"YulFunctionCall","src":"28237:32:88"},"nativeSrc":"28234:52:88","nodeType":"YulIf","src":"28234:52:88"},{"nativeSrc":"28295:29:88","nodeType":"YulVariableDeclaration","src":"28295:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28314:9:88","nodeType":"YulIdentifier","src":"28314:9:88"}],"functionName":{"name":"mload","nativeSrc":"28308:5:88","nodeType":"YulIdentifier","src":"28308:5:88"},"nativeSrc":"28308:16:88","nodeType":"YulFunctionCall","src":"28308:16:88"},"variables":[{"name":"value","nativeSrc":"28299:5:88","nodeType":"YulTypedName","src":"28299:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"28355:5:88","nodeType":"YulIdentifier","src":"28355:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"28333:21:88","nodeType":"YulIdentifier","src":"28333:21:88"},"nativeSrc":"28333:28:88","nodeType":"YulFunctionCall","src":"28333:28:88"},"nativeSrc":"28333:28:88","nodeType":"YulExpressionStatement","src":"28333:28:88"},{"nativeSrc":"28370:15:88","nodeType":"YulAssignment","src":"28370:15:88","value":{"name":"value","nativeSrc":"28380:5:88","nodeType":"YulIdentifier","src":"28380:5:88"},"variableNames":[{"name":"value0","nativeSrc":"28370:6:88","nodeType":"YulIdentifier","src":"28370:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"28146:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28190:9:88","nodeType":"YulTypedName","src":"28190:9:88","type":""},{"name":"dataEnd","nativeSrc":"28201:7:88","nodeType":"YulTypedName","src":"28201:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28213:6:88","nodeType":"YulTypedName","src":"28213:6:88","type":""}],"src":"28146:245:88"},{"body":{"nativeSrc":"28570:228:88","nodeType":"YulBlock","src":"28570:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28587:9:88","nodeType":"YulIdentifier","src":"28587:9:88"},{"kind":"number","nativeSrc":"28598:2:88","nodeType":"YulLiteral","src":"28598:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28580:6:88","nodeType":"YulIdentifier","src":"28580:6:88"},"nativeSrc":"28580:21:88","nodeType":"YulFunctionCall","src":"28580:21:88"},"nativeSrc":"28580:21:88","nodeType":"YulExpressionStatement","src":"28580:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28621:9:88","nodeType":"YulIdentifier","src":"28621:9:88"},{"kind":"number","nativeSrc":"28632:2:88","nodeType":"YulLiteral","src":"28632:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28617:3:88","nodeType":"YulIdentifier","src":"28617:3:88"},"nativeSrc":"28617:18:88","nodeType":"YulFunctionCall","src":"28617:18:88"},{"kind":"number","nativeSrc":"28637:2:88","nodeType":"YulLiteral","src":"28637:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"28610:6:88","nodeType":"YulIdentifier","src":"28610:6:88"},"nativeSrc":"28610:30:88","nodeType":"YulFunctionCall","src":"28610:30:88"},"nativeSrc":"28610:30:88","nodeType":"YulExpressionStatement","src":"28610:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28660:9:88","nodeType":"YulIdentifier","src":"28660:9:88"},{"kind":"number","nativeSrc":"28671:2:88","nodeType":"YulLiteral","src":"28671:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28656:3:88","nodeType":"YulIdentifier","src":"28656:3:88"},"nativeSrc":"28656:18:88","nodeType":"YulFunctionCall","src":"28656:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"28676:34:88","nodeType":"YulLiteral","src":"28676:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"28649:6:88","nodeType":"YulIdentifier","src":"28649:6:88"},"nativeSrc":"28649:62:88","nodeType":"YulFunctionCall","src":"28649:62:88"},"nativeSrc":"28649:62:88","nodeType":"YulExpressionStatement","src":"28649:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28731:9:88","nodeType":"YulIdentifier","src":"28731:9:88"},{"kind":"number","nativeSrc":"28742:2:88","nodeType":"YulLiteral","src":"28742:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28727:3:88","nodeType":"YulIdentifier","src":"28727:3:88"},"nativeSrc":"28727:18:88","nodeType":"YulFunctionCall","src":"28727:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"28747:8:88","nodeType":"YulLiteral","src":"28747:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"28720:6:88","nodeType":"YulIdentifier","src":"28720:6:88"},"nativeSrc":"28720:36:88","nodeType":"YulFunctionCall","src":"28720:36:88"},"nativeSrc":"28720:36:88","nodeType":"YulExpressionStatement","src":"28720:36:88"},{"nativeSrc":"28765:27:88","nodeType":"YulAssignment","src":"28765:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28777:9:88","nodeType":"YulIdentifier","src":"28777:9:88"},{"kind":"number","nativeSrc":"28788:3:88","nodeType":"YulLiteral","src":"28788:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28773:3:88","nodeType":"YulIdentifier","src":"28773:3:88"},"nativeSrc":"28773:19:88","nodeType":"YulFunctionCall","src":"28773:19:88"},"variableNames":[{"name":"tail","nativeSrc":"28765:4:88","nodeType":"YulIdentifier","src":"28765:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28396:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28547:9:88","nodeType":"YulTypedName","src":"28547:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28561:4:88","nodeType":"YulTypedName","src":"28561:4:88","type":""}],"src":"28396:402:88"},{"body":{"nativeSrc":"28977:224:88","nodeType":"YulBlock","src":"28977:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28994:9:88","nodeType":"YulIdentifier","src":"28994:9:88"},{"kind":"number","nativeSrc":"29005:2:88","nodeType":"YulLiteral","src":"29005:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28987:6:88","nodeType":"YulIdentifier","src":"28987:6:88"},"nativeSrc":"28987:21:88","nodeType":"YulFunctionCall","src":"28987:21:88"},"nativeSrc":"28987:21:88","nodeType":"YulExpressionStatement","src":"28987:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29028:9:88","nodeType":"YulIdentifier","src":"29028:9:88"},{"kind":"number","nativeSrc":"29039:2:88","nodeType":"YulLiteral","src":"29039:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29024:3:88","nodeType":"YulIdentifier","src":"29024:3:88"},"nativeSrc":"29024:18:88","nodeType":"YulFunctionCall","src":"29024:18:88"},{"kind":"number","nativeSrc":"29044:2:88","nodeType":"YulLiteral","src":"29044:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"29017:6:88","nodeType":"YulIdentifier","src":"29017:6:88"},"nativeSrc":"29017:30:88","nodeType":"YulFunctionCall","src":"29017:30:88"},"nativeSrc":"29017:30:88","nodeType":"YulExpressionStatement","src":"29017:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29067:9:88","nodeType":"YulIdentifier","src":"29067:9:88"},{"kind":"number","nativeSrc":"29078:2:88","nodeType":"YulLiteral","src":"29078:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29063:3:88","nodeType":"YulIdentifier","src":"29063:3:88"},"nativeSrc":"29063:18:88","nodeType":"YulFunctionCall","src":"29063:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"29083:34:88","nodeType":"YulLiteral","src":"29083:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"29056:6:88","nodeType":"YulIdentifier","src":"29056:6:88"},"nativeSrc":"29056:62:88","nodeType":"YulFunctionCall","src":"29056:62:88"},"nativeSrc":"29056:62:88","nodeType":"YulExpressionStatement","src":"29056:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29138:9:88","nodeType":"YulIdentifier","src":"29138:9:88"},{"kind":"number","nativeSrc":"29149:2:88","nodeType":"YulLiteral","src":"29149:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29134:3:88","nodeType":"YulIdentifier","src":"29134:3:88"},"nativeSrc":"29134:18:88","nodeType":"YulFunctionCall","src":"29134:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"29154:4:88","nodeType":"YulLiteral","src":"29154:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"29127:6:88","nodeType":"YulIdentifier","src":"29127:6:88"},"nativeSrc":"29127:32:88","nodeType":"YulFunctionCall","src":"29127:32:88"},"nativeSrc":"29127:32:88","nodeType":"YulExpressionStatement","src":"29127:32:88"},{"nativeSrc":"29168:27:88","nodeType":"YulAssignment","src":"29168:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29180:9:88","nodeType":"YulIdentifier","src":"29180:9:88"},{"kind":"number","nativeSrc":"29191:3:88","nodeType":"YulLiteral","src":"29191:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29176:3:88","nodeType":"YulIdentifier","src":"29176:3:88"},"nativeSrc":"29176:19:88","nodeType":"YulFunctionCall","src":"29176:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29168:4:88","nodeType":"YulIdentifier","src":"29168:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28803:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28954:9:88","nodeType":"YulTypedName","src":"28954:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28968:4:88","nodeType":"YulTypedName","src":"28968:4:88","type":""}],"src":"28803:398:88"},{"body":{"nativeSrc":"29380:175:88","nodeType":"YulBlock","src":"29380:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29397:9:88","nodeType":"YulIdentifier","src":"29397:9:88"},{"kind":"number","nativeSrc":"29408:2:88","nodeType":"YulLiteral","src":"29408:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29390:6:88","nodeType":"YulIdentifier","src":"29390:6:88"},"nativeSrc":"29390:21:88","nodeType":"YulFunctionCall","src":"29390:21:88"},"nativeSrc":"29390:21:88","nodeType":"YulExpressionStatement","src":"29390:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29431:9:88","nodeType":"YulIdentifier","src":"29431:9:88"},{"kind":"number","nativeSrc":"29442:2:88","nodeType":"YulLiteral","src":"29442:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29427:3:88","nodeType":"YulIdentifier","src":"29427:3:88"},"nativeSrc":"29427:18:88","nodeType":"YulFunctionCall","src":"29427:18:88"},{"kind":"number","nativeSrc":"29447:2:88","nodeType":"YulLiteral","src":"29447:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"29420:6:88","nodeType":"YulIdentifier","src":"29420:6:88"},"nativeSrc":"29420:30:88","nodeType":"YulFunctionCall","src":"29420:30:88"},"nativeSrc":"29420:30:88","nodeType":"YulExpressionStatement","src":"29420:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29470:9:88","nodeType":"YulIdentifier","src":"29470:9:88"},{"kind":"number","nativeSrc":"29481:2:88","nodeType":"YulLiteral","src":"29481:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29466:3:88","nodeType":"YulIdentifier","src":"29466:3:88"},"nativeSrc":"29466:18:88","nodeType":"YulFunctionCall","src":"29466:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"29486:27:88","nodeType":"YulLiteral","src":"29486:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"29459:6:88","nodeType":"YulIdentifier","src":"29459:6:88"},"nativeSrc":"29459:55:88","nodeType":"YulFunctionCall","src":"29459:55:88"},"nativeSrc":"29459:55:88","nodeType":"YulExpressionStatement","src":"29459:55:88"},{"nativeSrc":"29523:26:88","nodeType":"YulAssignment","src":"29523:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29535:9:88","nodeType":"YulIdentifier","src":"29535:9:88"},{"kind":"number","nativeSrc":"29546:2:88","nodeType":"YulLiteral","src":"29546:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29531:3:88","nodeType":"YulIdentifier","src":"29531:3:88"},"nativeSrc":"29531:18:88","nodeType":"YulFunctionCall","src":"29531:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29523:4:88","nodeType":"YulIdentifier","src":"29523:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29206:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29357:9:88","nodeType":"YulTypedName","src":"29357:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29371:4:88","nodeType":"YulTypedName","src":"29371:4:88","type":""}],"src":"29206:349:88"},{"body":{"nativeSrc":"29734:182:88","nodeType":"YulBlock","src":"29734:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29751:9:88","nodeType":"YulIdentifier","src":"29751:9:88"},{"kind":"number","nativeSrc":"29762:2:88","nodeType":"YulLiteral","src":"29762:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29744:6:88","nodeType":"YulIdentifier","src":"29744:6:88"},"nativeSrc":"29744:21:88","nodeType":"YulFunctionCall","src":"29744:21:88"},"nativeSrc":"29744:21:88","nodeType":"YulExpressionStatement","src":"29744:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29785:9:88","nodeType":"YulIdentifier","src":"29785:9:88"},{"kind":"number","nativeSrc":"29796:2:88","nodeType":"YulLiteral","src":"29796:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29781:3:88","nodeType":"YulIdentifier","src":"29781:3:88"},"nativeSrc":"29781:18:88","nodeType":"YulFunctionCall","src":"29781:18:88"},{"kind":"number","nativeSrc":"29801:2:88","nodeType":"YulLiteral","src":"29801:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29774:6:88","nodeType":"YulIdentifier","src":"29774:6:88"},"nativeSrc":"29774:30:88","nodeType":"YulFunctionCall","src":"29774:30:88"},"nativeSrc":"29774:30:88","nodeType":"YulExpressionStatement","src":"29774:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29824:9:88","nodeType":"YulIdentifier","src":"29824:9:88"},{"kind":"number","nativeSrc":"29835:2:88","nodeType":"YulLiteral","src":"29835:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29820:3:88","nodeType":"YulIdentifier","src":"29820:3:88"},"nativeSrc":"29820:18:88","nodeType":"YulFunctionCall","src":"29820:18:88"},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","kind":"string","nativeSrc":"29840:34:88","nodeType":"YulLiteral","src":"29840:34:88","type":"","value":"Expiration must be in the future"}],"functionName":{"name":"mstore","nativeSrc":"29813:6:88","nodeType":"YulIdentifier","src":"29813:6:88"},"nativeSrc":"29813:62:88","nodeType":"YulFunctionCall","src":"29813:62:88"},"nativeSrc":"29813:62:88","nodeType":"YulExpressionStatement","src":"29813:62:88"},{"nativeSrc":"29884:26:88","nodeType":"YulAssignment","src":"29884:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29896:9:88","nodeType":"YulIdentifier","src":"29896:9:88"},{"kind":"number","nativeSrc":"29907:2:88","nodeType":"YulLiteral","src":"29907:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29892:3:88","nodeType":"YulIdentifier","src":"29892:3:88"},"nativeSrc":"29892:18:88","nodeType":"YulFunctionCall","src":"29892:18:88"},"variableNames":[{"name":"tail","nativeSrc":"29884:4:88","nodeType":"YulIdentifier","src":"29884:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29560:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29711:9:88","nodeType":"YulTypedName","src":"29711:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29725:4:88","nodeType":"YulTypedName","src":"29725:4:88","type":""}],"src":"29560:356:88"},{"body":{"nativeSrc":"30095:180:88","nodeType":"YulBlock","src":"30095:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30112:9:88","nodeType":"YulIdentifier","src":"30112:9:88"},{"kind":"number","nativeSrc":"30123:2:88","nodeType":"YulLiteral","src":"30123:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30105:6:88","nodeType":"YulIdentifier","src":"30105:6:88"},"nativeSrc":"30105:21:88","nodeType":"YulFunctionCall","src":"30105:21:88"},"nativeSrc":"30105:21:88","nodeType":"YulExpressionStatement","src":"30105:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30146:9:88","nodeType":"YulIdentifier","src":"30146:9:88"},{"kind":"number","nativeSrc":"30157:2:88","nodeType":"YulLiteral","src":"30157:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30142:3:88","nodeType":"YulIdentifier","src":"30142:3:88"},"nativeSrc":"30142:18:88","nodeType":"YulFunctionCall","src":"30142:18:88"},{"kind":"number","nativeSrc":"30162:2:88","nodeType":"YulLiteral","src":"30162:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"30135:6:88","nodeType":"YulIdentifier","src":"30135:6:88"},"nativeSrc":"30135:30:88","nodeType":"YulFunctionCall","src":"30135:30:88"},"nativeSrc":"30135:30:88","nodeType":"YulExpressionStatement","src":"30135:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30185:9:88","nodeType":"YulIdentifier","src":"30185:9:88"},{"kind":"number","nativeSrc":"30196:2:88","nodeType":"YulLiteral","src":"30196:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30181:3:88","nodeType":"YulIdentifier","src":"30181:3:88"},"nativeSrc":"30181:18:88","nodeType":"YulFunctionCall","src":"30181:18:88"},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"30201:32:88","nodeType":"YulLiteral","src":"30201:32:88","type":"","value":"Customer can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"30174:6:88","nodeType":"YulIdentifier","src":"30174:6:88"},"nativeSrc":"30174:60:88","nodeType":"YulFunctionCall","src":"30174:60:88"},"nativeSrc":"30174:60:88","nodeType":"YulExpressionStatement","src":"30174:60:88"},{"nativeSrc":"30243:26:88","nodeType":"YulAssignment","src":"30243:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30255:9:88","nodeType":"YulIdentifier","src":"30255:9:88"},{"kind":"number","nativeSrc":"30266:2:88","nodeType":"YulLiteral","src":"30266:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30251:3:88","nodeType":"YulIdentifier","src":"30251:3:88"},"nativeSrc":"30251:18:88","nodeType":"YulFunctionCall","src":"30251:18:88"},"variableNames":[{"name":"tail","nativeSrc":"30243:4:88","nodeType":"YulIdentifier","src":"30243:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29921:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30072:9:88","nodeType":"YulTypedName","src":"30072:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30086:4:88","nodeType":"YulTypedName","src":"30086:4:88","type":""}],"src":"29921:354:88"},{"body":{"nativeSrc":"30521:316:88","nodeType":"YulBlock","src":"30521:316:88","statements":[{"nativeSrc":"30531:27:88","nodeType":"YulAssignment","src":"30531:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"30543:9:88","nodeType":"YulIdentifier","src":"30543:9:88"},{"kind":"number","nativeSrc":"30554:3:88","nodeType":"YulLiteral","src":"30554:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"30539:3:88","nodeType":"YulIdentifier","src":"30539:3:88"},"nativeSrc":"30539:19:88","nodeType":"YulFunctionCall","src":"30539:19:88"},"variableNames":[{"name":"tail","nativeSrc":"30531:4:88","nodeType":"YulIdentifier","src":"30531:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"30596:6:88","nodeType":"YulIdentifier","src":"30596:6:88"},{"name":"headStart","nativeSrc":"30604:9:88","nodeType":"YulIdentifier","src":"30604:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"30567:28:88","nodeType":"YulIdentifier","src":"30567:28:88"},"nativeSrc":"30567:47:88","nodeType":"YulFunctionCall","src":"30567:47:88"},"nativeSrc":"30567:47:88","nodeType":"YulExpressionStatement","src":"30567:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30634:9:88","nodeType":"YulIdentifier","src":"30634:9:88"},{"kind":"number","nativeSrc":"30645:3:88","nodeType":"YulLiteral","src":"30645:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"30630:3:88","nodeType":"YulIdentifier","src":"30630:3:88"},"nativeSrc":"30630:19:88","nodeType":"YulFunctionCall","src":"30630:19:88"},{"arguments":[{"name":"value1","nativeSrc":"30655:6:88","nodeType":"YulIdentifier","src":"30655:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30671:3:88","nodeType":"YulLiteral","src":"30671:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"30676:1:88","nodeType":"YulLiteral","src":"30676:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30667:3:88","nodeType":"YulIdentifier","src":"30667:3:88"},"nativeSrc":"30667:11:88","nodeType":"YulFunctionCall","src":"30667:11:88"},{"kind":"number","nativeSrc":"30680:1:88","nodeType":"YulLiteral","src":"30680:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30663:3:88","nodeType":"YulIdentifier","src":"30663:3:88"},"nativeSrc":"30663:19:88","nodeType":"YulFunctionCall","src":"30663:19:88"}],"functionName":{"name":"and","nativeSrc":"30651:3:88","nodeType":"YulIdentifier","src":"30651:3:88"},"nativeSrc":"30651:32:88","nodeType":"YulFunctionCall","src":"30651:32:88"}],"functionName":{"name":"mstore","nativeSrc":"30623:6:88","nodeType":"YulIdentifier","src":"30623:6:88"},"nativeSrc":"30623:61:88","nodeType":"YulFunctionCall","src":"30623:61:88"},"nativeSrc":"30623:61:88","nodeType":"YulExpressionStatement","src":"30623:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30704:9:88","nodeType":"YulIdentifier","src":"30704:9:88"},{"kind":"number","nativeSrc":"30715:3:88","nodeType":"YulLiteral","src":"30715:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"30700:3:88","nodeType":"YulIdentifier","src":"30700:3:88"},"nativeSrc":"30700:19:88","nodeType":"YulFunctionCall","src":"30700:19:88"},{"arguments":[{"name":"value2","nativeSrc":"30725:6:88","nodeType":"YulIdentifier","src":"30725:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30741:3:88","nodeType":"YulLiteral","src":"30741:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"30746:1:88","nodeType":"YulLiteral","src":"30746:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30737:3:88","nodeType":"YulIdentifier","src":"30737:3:88"},"nativeSrc":"30737:11:88","nodeType":"YulFunctionCall","src":"30737:11:88"},{"kind":"number","nativeSrc":"30750:1:88","nodeType":"YulLiteral","src":"30750:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30733:3:88","nodeType":"YulIdentifier","src":"30733:3:88"},"nativeSrc":"30733:19:88","nodeType":"YulFunctionCall","src":"30733:19:88"}],"functionName":{"name":"and","nativeSrc":"30721:3:88","nodeType":"YulIdentifier","src":"30721:3:88"},"nativeSrc":"30721:32:88","nodeType":"YulFunctionCall","src":"30721:32:88"}],"functionName":{"name":"mstore","nativeSrc":"30693:6:88","nodeType":"YulIdentifier","src":"30693:6:88"},"nativeSrc":"30693:61:88","nodeType":"YulFunctionCall","src":"30693:61:88"},"nativeSrc":"30693:61:88","nodeType":"YulExpressionStatement","src":"30693:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30774:9:88","nodeType":"YulIdentifier","src":"30774:9:88"},{"kind":"number","nativeSrc":"30785:3:88","nodeType":"YulLiteral","src":"30785:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"30770:3:88","nodeType":"YulIdentifier","src":"30770:3:88"},"nativeSrc":"30770:19:88","nodeType":"YulFunctionCall","src":"30770:19:88"},{"arguments":[{"name":"value3","nativeSrc":"30795:6:88","nodeType":"YulIdentifier","src":"30795:6:88"},{"kind":"number","nativeSrc":"30803:26:88","nodeType":"YulLiteral","src":"30803:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"30791:3:88","nodeType":"YulIdentifier","src":"30791:3:88"},"nativeSrc":"30791:39:88","nodeType":"YulFunctionCall","src":"30791:39:88"}],"functionName":{"name":"mstore","nativeSrc":"30763:6:88","nodeType":"YulIdentifier","src":"30763:6:88"},"nativeSrc":"30763:68:88","nodeType":"YulFunctionCall","src":"30763:68:88"},"nativeSrc":"30763:68:88","nodeType":"YulExpressionStatement","src":"30763:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed","nativeSrc":"30280:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30466:9:88","nodeType":"YulTypedName","src":"30466:9:88","type":""},{"name":"value3","nativeSrc":"30477:6:88","nodeType":"YulTypedName","src":"30477:6:88","type":""},{"name":"value2","nativeSrc":"30485:6:88","nodeType":"YulTypedName","src":"30485:6:88","type":""},{"name":"value1","nativeSrc":"30493:6:88","nodeType":"YulTypedName","src":"30493:6:88","type":""},{"name":"value0","nativeSrc":"30501:6:88","nodeType":"YulTypedName","src":"30501:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30512:4:88","nodeType":"YulTypedName","src":"30512:4:88","type":""}],"src":"30280:557:88"},{"body":{"nativeSrc":"30949:170:88","nodeType":"YulBlock","src":"30949:170:88","statements":[{"body":{"nativeSrc":"30995:16:88","nodeType":"YulBlock","src":"30995:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31004:1:88","nodeType":"YulLiteral","src":"31004:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"31007:1:88","nodeType":"YulLiteral","src":"31007:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30997:6:88","nodeType":"YulIdentifier","src":"30997:6:88"},"nativeSrc":"30997:12:88","nodeType":"YulFunctionCall","src":"30997:12:88"},"nativeSrc":"30997:12:88","nodeType":"YulExpressionStatement","src":"30997:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30970:7:88","nodeType":"YulIdentifier","src":"30970:7:88"},{"name":"headStart","nativeSrc":"30979:9:88","nodeType":"YulIdentifier","src":"30979:9:88"}],"functionName":{"name":"sub","nativeSrc":"30966:3:88","nodeType":"YulIdentifier","src":"30966:3:88"},"nativeSrc":"30966:23:88","nodeType":"YulFunctionCall","src":"30966:23:88"},{"kind":"number","nativeSrc":"30991:2:88","nodeType":"YulLiteral","src":"30991:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"30962:3:88","nodeType":"YulIdentifier","src":"30962:3:88"},"nativeSrc":"30962:32:88","nodeType":"YulFunctionCall","src":"30962:32:88"},"nativeSrc":"30959:52:88","nodeType":"YulIf","src":"30959:52:88"},{"nativeSrc":"31020:29:88","nodeType":"YulVariableDeclaration","src":"31020:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31039:9:88","nodeType":"YulIdentifier","src":"31039:9:88"}],"functionName":{"name":"mload","nativeSrc":"31033:5:88","nodeType":"YulIdentifier","src":"31033:5:88"},"nativeSrc":"31033:16:88","nodeType":"YulFunctionCall","src":"31033:16:88"},"variables":[{"name":"value","nativeSrc":"31024:5:88","nodeType":"YulTypedName","src":"31024:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31083:5:88","nodeType":"YulIdentifier","src":"31083:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"31058:24:88","nodeType":"YulIdentifier","src":"31058:24:88"},"nativeSrc":"31058:31:88","nodeType":"YulFunctionCall","src":"31058:31:88"},"nativeSrc":"31058:31:88","nodeType":"YulExpressionStatement","src":"31058:31:88"},{"nativeSrc":"31098:15:88","nodeType":"YulAssignment","src":"31098:15:88","value":{"name":"value","nativeSrc":"31108:5:88","nodeType":"YulIdentifier","src":"31108:5:88"},"variableNames":[{"name":"value0","nativeSrc":"31098:6:88","nodeType":"YulIdentifier","src":"31098:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"30842:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30915:9:88","nodeType":"YulTypedName","src":"30915:9:88","type":""},{"name":"dataEnd","nativeSrc":"30926:7:88","nodeType":"YulTypedName","src":"30926:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30938:6:88","nodeType":"YulTypedName","src":"30938:6:88","type":""}],"src":"30842:277:88"},{"body":{"nativeSrc":"31298:235:88","nodeType":"YulBlock","src":"31298:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31315:9:88","nodeType":"YulIdentifier","src":"31315:9:88"},{"kind":"number","nativeSrc":"31326:2:88","nodeType":"YulLiteral","src":"31326:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31308:6:88","nodeType":"YulIdentifier","src":"31308:6:88"},"nativeSrc":"31308:21:88","nodeType":"YulFunctionCall","src":"31308:21:88"},"nativeSrc":"31308:21:88","nodeType":"YulExpressionStatement","src":"31308:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31349:9:88","nodeType":"YulIdentifier","src":"31349:9:88"},{"kind":"number","nativeSrc":"31360:2:88","nodeType":"YulLiteral","src":"31360:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31345:3:88","nodeType":"YulIdentifier","src":"31345:3:88"},"nativeSrc":"31345:18:88","nodeType":"YulFunctionCall","src":"31345:18:88"},{"kind":"number","nativeSrc":"31365:2:88","nodeType":"YulLiteral","src":"31365:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"31338:6:88","nodeType":"YulIdentifier","src":"31338:6:88"},"nativeSrc":"31338:30:88","nodeType":"YulFunctionCall","src":"31338:30:88"},"nativeSrc":"31338:30:88","nodeType":"YulExpressionStatement","src":"31338:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31388:9:88","nodeType":"YulIdentifier","src":"31388:9:88"},{"kind":"number","nativeSrc":"31399:2:88","nodeType":"YulLiteral","src":"31399:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31384:3:88","nodeType":"YulIdentifier","src":"31384:3:88"},"nativeSrc":"31384:18:88","nodeType":"YulFunctionCall","src":"31384:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"31404:34:88","nodeType":"YulLiteral","src":"31404:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"31377:6:88","nodeType":"YulIdentifier","src":"31377:6:88"},"nativeSrc":"31377:62:88","nodeType":"YulFunctionCall","src":"31377:62:88"},"nativeSrc":"31377:62:88","nodeType":"YulExpressionStatement","src":"31377:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31459:9:88","nodeType":"YulIdentifier","src":"31459:9:88"},{"kind":"number","nativeSrc":"31470:2:88","nodeType":"YulLiteral","src":"31470:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31455:3:88","nodeType":"YulIdentifier","src":"31455:3:88"},"nativeSrc":"31455:18:88","nodeType":"YulFunctionCall","src":"31455:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"31475:15:88","nodeType":"YulLiteral","src":"31475:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"31448:6:88","nodeType":"YulIdentifier","src":"31448:6:88"},"nativeSrc":"31448:43:88","nodeType":"YulFunctionCall","src":"31448:43:88"},"nativeSrc":"31448:43:88","nodeType":"YulExpressionStatement","src":"31448:43:88"},{"nativeSrc":"31500:27:88","nodeType":"YulAssignment","src":"31500:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31512:9:88","nodeType":"YulIdentifier","src":"31512:9:88"},{"kind":"number","nativeSrc":"31523:3:88","nodeType":"YulLiteral","src":"31523:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31508:3:88","nodeType":"YulIdentifier","src":"31508:3:88"},"nativeSrc":"31508:19:88","nodeType":"YulFunctionCall","src":"31508:19:88"},"variableNames":[{"name":"tail","nativeSrc":"31500:4:88","nodeType":"YulIdentifier","src":"31500:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31124:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31275:9:88","nodeType":"YulTypedName","src":"31275:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31289:4:88","nodeType":"YulTypedName","src":"31289:4:88","type":""}],"src":"31124:409:88"},{"body":{"nativeSrc":"31712:170:88","nodeType":"YulBlock","src":"31712:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31729:9:88","nodeType":"YulIdentifier","src":"31729:9:88"},{"kind":"number","nativeSrc":"31740:2:88","nodeType":"YulLiteral","src":"31740:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31722:6:88","nodeType":"YulIdentifier","src":"31722:6:88"},"nativeSrc":"31722:21:88","nodeType":"YulFunctionCall","src":"31722:21:88"},"nativeSrc":"31722:21:88","nodeType":"YulExpressionStatement","src":"31722:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31763:9:88","nodeType":"YulIdentifier","src":"31763:9:88"},{"kind":"number","nativeSrc":"31774:2:88","nodeType":"YulLiteral","src":"31774:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31759:3:88","nodeType":"YulIdentifier","src":"31759:3:88"},"nativeSrc":"31759:18:88","nodeType":"YulFunctionCall","src":"31759:18:88"},{"kind":"number","nativeSrc":"31779:2:88","nodeType":"YulLiteral","src":"31779:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"31752:6:88","nodeType":"YulIdentifier","src":"31752:6:88"},"nativeSrc":"31752:30:88","nodeType":"YulFunctionCall","src":"31752:30:88"},"nativeSrc":"31752:30:88","nodeType":"YulExpressionStatement","src":"31752:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31802:9:88","nodeType":"YulIdentifier","src":"31802:9:88"},{"kind":"number","nativeSrc":"31813:2:88","nodeType":"YulLiteral","src":"31813:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31798:3:88","nodeType":"YulIdentifier","src":"31798:3:88"},"nativeSrc":"31798:18:88","nodeType":"YulFunctionCall","src":"31798:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"31818:22:88","nodeType":"YulLiteral","src":"31818:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"31791:6:88","nodeType":"YulIdentifier","src":"31791:6:88"},"nativeSrc":"31791:50:88","nodeType":"YulFunctionCall","src":"31791:50:88"},"nativeSrc":"31791:50:88","nodeType":"YulExpressionStatement","src":"31791:50:88"},{"nativeSrc":"31850:26:88","nodeType":"YulAssignment","src":"31850:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31862:9:88","nodeType":"YulIdentifier","src":"31862:9:88"},{"kind":"number","nativeSrc":"31873:2:88","nodeType":"YulLiteral","src":"31873:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31858:3:88","nodeType":"YulIdentifier","src":"31858:3:88"},"nativeSrc":"31858:18:88","nodeType":"YulFunctionCall","src":"31858:18:88"},"variableNames":[{"name":"tail","nativeSrc":"31850:4:88","nodeType":"YulIdentifier","src":"31850:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31538:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31689:9:88","nodeType":"YulTypedName","src":"31689:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31703:4:88","nodeType":"YulTypedName","src":"31703:4:88","type":""}],"src":"31538:344:88"},{"body":{"nativeSrc":"31943:65:88","nodeType":"YulBlock","src":"31943:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31960:1:88","nodeType":"YulLiteral","src":"31960:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"31963:3:88","nodeType":"YulIdentifier","src":"31963:3:88"}],"functionName":{"name":"mstore","nativeSrc":"31953:6:88","nodeType":"YulIdentifier","src":"31953:6:88"},"nativeSrc":"31953:14:88","nodeType":"YulFunctionCall","src":"31953:14:88"},"nativeSrc":"31953:14:88","nodeType":"YulExpressionStatement","src":"31953:14:88"},{"nativeSrc":"31976:26:88","nodeType":"YulAssignment","src":"31976:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"31994:1:88","nodeType":"YulLiteral","src":"31994:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"31997:4:88","nodeType":"YulLiteral","src":"31997:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"31984:9:88","nodeType":"YulIdentifier","src":"31984:9:88"},"nativeSrc":"31984:18:88","nodeType":"YulFunctionCall","src":"31984:18:88"},"variableNames":[{"name":"data","nativeSrc":"31976:4:88","nodeType":"YulIdentifier","src":"31976:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"31887:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"31926:3:88","nodeType":"YulTypedName","src":"31926:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"31934:4:88","nodeType":"YulTypedName","src":"31934:4:88","type":""}],"src":"31887:121:88"},{"body":{"nativeSrc":"32094:437:88","nodeType":"YulBlock","src":"32094:437:88","statements":[{"body":{"nativeSrc":"32127:398:88","nodeType":"YulBlock","src":"32127:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32148:1:88","nodeType":"YulLiteral","src":"32148:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"32151:5:88","nodeType":"YulIdentifier","src":"32151:5:88"}],"functionName":{"name":"mstore","nativeSrc":"32141:6:88","nodeType":"YulIdentifier","src":"32141:6:88"},"nativeSrc":"32141:16:88","nodeType":"YulFunctionCall","src":"32141:16:88"},"nativeSrc":"32141:16:88","nodeType":"YulExpressionStatement","src":"32141:16:88"},{"nativeSrc":"32170:30:88","nodeType":"YulVariableDeclaration","src":"32170:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"32192:1:88","nodeType":"YulLiteral","src":"32192:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"32195:4:88","nodeType":"YulLiteral","src":"32195:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"32182:9:88","nodeType":"YulIdentifier","src":"32182:9:88"},"nativeSrc":"32182:18:88","nodeType":"YulFunctionCall","src":"32182:18:88"},"variables":[{"name":"data","nativeSrc":"32174:4:88","nodeType":"YulTypedName","src":"32174:4:88","type":""}]},{"nativeSrc":"32213:57:88","nodeType":"YulVariableDeclaration","src":"32213:57:88","value":{"arguments":[{"name":"data","nativeSrc":"32236:4:88","nodeType":"YulIdentifier","src":"32236:4:88"},{"arguments":[{"kind":"number","nativeSrc":"32246:1:88","nodeType":"YulLiteral","src":"32246:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"32253:10:88","nodeType":"YulIdentifier","src":"32253:10:88"},{"kind":"number","nativeSrc":"32265:2:88","nodeType":"YulLiteral","src":"32265:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"32249:3:88","nodeType":"YulIdentifier","src":"32249:3:88"},"nativeSrc":"32249:19:88","nodeType":"YulFunctionCall","src":"32249:19:88"}],"functionName":{"name":"shr","nativeSrc":"32242:3:88","nodeType":"YulIdentifier","src":"32242:3:88"},"nativeSrc":"32242:27:88","nodeType":"YulFunctionCall","src":"32242:27:88"}],"functionName":{"name":"add","nativeSrc":"32232:3:88","nodeType":"YulIdentifier","src":"32232:3:88"},"nativeSrc":"32232:38:88","nodeType":"YulFunctionCall","src":"32232:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"32217:11:88","nodeType":"YulTypedName","src":"32217:11:88","type":""}]},{"body":{"nativeSrc":"32307:23:88","nodeType":"YulBlock","src":"32307:23:88","statements":[{"nativeSrc":"32309:19:88","nodeType":"YulAssignment","src":"32309:19:88","value":{"name":"data","nativeSrc":"32324:4:88","nodeType":"YulIdentifier","src":"32324:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"32309:11:88","nodeType":"YulIdentifier","src":"32309:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"32289:10:88","nodeType":"YulIdentifier","src":"32289:10:88"},{"kind":"number","nativeSrc":"32301:4:88","nodeType":"YulLiteral","src":"32301:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"32286:2:88","nodeType":"YulIdentifier","src":"32286:2:88"},"nativeSrc":"32286:20:88","nodeType":"YulFunctionCall","src":"32286:20:88"},"nativeSrc":"32283:47:88","nodeType":"YulIf","src":"32283:47:88"},{"nativeSrc":"32343:41:88","nodeType":"YulVariableDeclaration","src":"32343:41:88","value":{"arguments":[{"name":"data","nativeSrc":"32357:4:88","nodeType":"YulIdentifier","src":"32357:4:88"},{"arguments":[{"kind":"number","nativeSrc":"32367:1:88","nodeType":"YulLiteral","src":"32367:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"32374:3:88","nodeType":"YulIdentifier","src":"32374:3:88"},{"kind":"number","nativeSrc":"32379:2:88","nodeType":"YulLiteral","src":"32379:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"32370:3:88","nodeType":"YulIdentifier","src":"32370:3:88"},"nativeSrc":"32370:12:88","nodeType":"YulFunctionCall","src":"32370:12:88"}],"functionName":{"name":"shr","nativeSrc":"32363:3:88","nodeType":"YulIdentifier","src":"32363:3:88"},"nativeSrc":"32363:20:88","nodeType":"YulFunctionCall","src":"32363:20:88"}],"functionName":{"name":"add","nativeSrc":"32353:3:88","nodeType":"YulIdentifier","src":"32353:3:88"},"nativeSrc":"32353:31:88","nodeType":"YulFunctionCall","src":"32353:31:88"},"variables":[{"name":"_1","nativeSrc":"32347:2:88","nodeType":"YulTypedName","src":"32347:2:88","type":""}]},{"nativeSrc":"32397:24:88","nodeType":"YulVariableDeclaration","src":"32397:24:88","value":{"name":"deleteStart","nativeSrc":"32410:11:88","nodeType":"YulIdentifier","src":"32410:11:88"},"variables":[{"name":"start","nativeSrc":"32401:5:88","nodeType":"YulTypedName","src":"32401:5:88","type":""}]},{"body":{"nativeSrc":"32495:20:88","nodeType":"YulBlock","src":"32495:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"32504:5:88","nodeType":"YulIdentifier","src":"32504:5:88"},{"kind":"number","nativeSrc":"32511:1:88","nodeType":"YulLiteral","src":"32511:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"32497:6:88","nodeType":"YulIdentifier","src":"32497:6:88"},"nativeSrc":"32497:16:88","nodeType":"YulFunctionCall","src":"32497:16:88"},"nativeSrc":"32497:16:88","nodeType":"YulExpressionStatement","src":"32497:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"32445:5:88","nodeType":"YulIdentifier","src":"32445:5:88"},{"name":"_1","nativeSrc":"32452:2:88","nodeType":"YulIdentifier","src":"32452:2:88"}],"functionName":{"name":"lt","nativeSrc":"32442:2:88","nodeType":"YulIdentifier","src":"32442:2:88"},"nativeSrc":"32442:13:88","nodeType":"YulFunctionCall","src":"32442:13:88"},"nativeSrc":"32434:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"32456:26:88","nodeType":"YulBlock","src":"32456:26:88","statements":[{"nativeSrc":"32458:22:88","nodeType":"YulAssignment","src":"32458:22:88","value":{"arguments":[{"name":"start","nativeSrc":"32471:5:88","nodeType":"YulIdentifier","src":"32471:5:88"},{"kind":"number","nativeSrc":"32478:1:88","nodeType":"YulLiteral","src":"32478:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"32467:3:88","nodeType":"YulIdentifier","src":"32467:3:88"},"nativeSrc":"32467:13:88","nodeType":"YulFunctionCall","src":"32467:13:88"},"variableNames":[{"name":"start","nativeSrc":"32458:5:88","nodeType":"YulIdentifier","src":"32458:5:88"}]}]},"pre":{"nativeSrc":"32438:3:88","nodeType":"YulBlock","src":"32438:3:88","statements":[]},"src":"32434:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"32110:3:88","nodeType":"YulIdentifier","src":"32110:3:88"},{"kind":"number","nativeSrc":"32115:2:88","nodeType":"YulLiteral","src":"32115:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"32107:2:88","nodeType":"YulIdentifier","src":"32107:2:88"},"nativeSrc":"32107:11:88","nodeType":"YulFunctionCall","src":"32107:11:88"},"nativeSrc":"32104:421:88","nodeType":"YulIf","src":"32104:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"32013:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"32066:5:88","nodeType":"YulTypedName","src":"32066:5:88","type":""},{"name":"len","nativeSrc":"32073:3:88","nodeType":"YulTypedName","src":"32073:3:88","type":""},{"name":"startIndex","nativeSrc":"32078:10:88","nodeType":"YulTypedName","src":"32078:10:88","type":""}],"src":"32013:518:88"},{"body":{"nativeSrc":"32621:81:88","nodeType":"YulBlock","src":"32621:81:88","statements":[{"nativeSrc":"32631:65:88","nodeType":"YulAssignment","src":"32631:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32646:4:88","nodeType":"YulIdentifier","src":"32646:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32664:1:88","nodeType":"YulLiteral","src":"32664:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"32667:3:88","nodeType":"YulIdentifier","src":"32667:3:88"}],"functionName":{"name":"shl","nativeSrc":"32660:3:88","nodeType":"YulIdentifier","src":"32660:3:88"},"nativeSrc":"32660:11:88","nodeType":"YulFunctionCall","src":"32660:11:88"},{"arguments":[{"kind":"number","nativeSrc":"32677:1:88","nodeType":"YulLiteral","src":"32677:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"32673:3:88","nodeType":"YulIdentifier","src":"32673:3:88"},"nativeSrc":"32673:6:88","nodeType":"YulFunctionCall","src":"32673:6:88"}],"functionName":{"name":"shr","nativeSrc":"32656:3:88","nodeType":"YulIdentifier","src":"32656:3:88"},"nativeSrc":"32656:24:88","nodeType":"YulFunctionCall","src":"32656:24:88"}],"functionName":{"name":"not","nativeSrc":"32652:3:88","nodeType":"YulIdentifier","src":"32652:3:88"},"nativeSrc":"32652:29:88","nodeType":"YulFunctionCall","src":"32652:29:88"}],"functionName":{"name":"and","nativeSrc":"32642:3:88","nodeType":"YulIdentifier","src":"32642:3:88"},"nativeSrc":"32642:40:88","nodeType":"YulFunctionCall","src":"32642:40:88"},{"arguments":[{"kind":"number","nativeSrc":"32688:1:88","nodeType":"YulLiteral","src":"32688:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"32691:3:88","nodeType":"YulIdentifier","src":"32691:3:88"}],"functionName":{"name":"shl","nativeSrc":"32684:3:88","nodeType":"YulIdentifier","src":"32684:3:88"},"nativeSrc":"32684:11:88","nodeType":"YulFunctionCall","src":"32684:11:88"}],"functionName":{"name":"or","nativeSrc":"32639:2:88","nodeType":"YulIdentifier","src":"32639:2:88"},"nativeSrc":"32639:57:88","nodeType":"YulFunctionCall","src":"32639:57:88"},"variableNames":[{"name":"used","nativeSrc":"32631:4:88","nodeType":"YulIdentifier","src":"32631:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"32536:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"32598:4:88","nodeType":"YulTypedName","src":"32598:4:88","type":""},{"name":"len","nativeSrc":"32604:3:88","nodeType":"YulTypedName","src":"32604:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"32612:4:88","nodeType":"YulTypedName","src":"32612:4:88","type":""}],"src":"32536:166:88"},{"body":{"nativeSrc":"32803:1203:88","nodeType":"YulBlock","src":"32803:1203:88","statements":[{"nativeSrc":"32813:24:88","nodeType":"YulVariableDeclaration","src":"32813:24:88","value":{"arguments":[{"name":"src","nativeSrc":"32833:3:88","nodeType":"YulIdentifier","src":"32833:3:88"}],"functionName":{"name":"mload","nativeSrc":"32827:5:88","nodeType":"YulIdentifier","src":"32827:5:88"},"nativeSrc":"32827:10:88","nodeType":"YulFunctionCall","src":"32827:10:88"},"variables":[{"name":"newLen","nativeSrc":"32817:6:88","nodeType":"YulTypedName","src":"32817:6:88","type":""}]},{"body":{"nativeSrc":"32880:22:88","nodeType":"YulBlock","src":"32880:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"32882:16:88","nodeType":"YulIdentifier","src":"32882:16:88"},"nativeSrc":"32882:18:88","nodeType":"YulFunctionCall","src":"32882:18:88"},"nativeSrc":"32882:18:88","nodeType":"YulExpressionStatement","src":"32882:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"32852:6:88","nodeType":"YulIdentifier","src":"32852:6:88"},{"kind":"number","nativeSrc":"32860:18:88","nodeType":"YulLiteral","src":"32860:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"32849:2:88","nodeType":"YulIdentifier","src":"32849:2:88"},"nativeSrc":"32849:30:88","nodeType":"YulFunctionCall","src":"32849:30:88"},"nativeSrc":"32846:56:88","nodeType":"YulIf","src":"32846:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"32955:4:88","nodeType":"YulIdentifier","src":"32955:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"32993:4:88","nodeType":"YulIdentifier","src":"32993:4:88"}],"functionName":{"name":"sload","nativeSrc":"32987:5:88","nodeType":"YulIdentifier","src":"32987:5:88"},"nativeSrc":"32987:11:88","nodeType":"YulFunctionCall","src":"32987:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"32961:25:88","nodeType":"YulIdentifier","src":"32961:25:88"},"nativeSrc":"32961:38:88","nodeType":"YulFunctionCall","src":"32961:38:88"},{"name":"newLen","nativeSrc":"33001:6:88","nodeType":"YulIdentifier","src":"33001:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"32911:43:88","nodeType":"YulIdentifier","src":"32911:43:88"},"nativeSrc":"32911:97:88","nodeType":"YulFunctionCall","src":"32911:97:88"},"nativeSrc":"32911:97:88","nodeType":"YulExpressionStatement","src":"32911:97:88"},{"nativeSrc":"33017:18:88","nodeType":"YulVariableDeclaration","src":"33017:18:88","value":{"kind":"number","nativeSrc":"33034:1:88","nodeType":"YulLiteral","src":"33034:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"33021:9:88","nodeType":"YulTypedName","src":"33021:9:88","type":""}]},{"nativeSrc":"33044:17:88","nodeType":"YulAssignment","src":"33044:17:88","value":{"kind":"number","nativeSrc":"33057:4:88","nodeType":"YulLiteral","src":"33057:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"33044:9:88","nodeType":"YulIdentifier","src":"33044:9:88"}]},{"cases":[{"body":{"nativeSrc":"33107:642:88","nodeType":"YulBlock","src":"33107:642:88","statements":[{"nativeSrc":"33121:35:88","nodeType":"YulVariableDeclaration","src":"33121:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"33140:6:88","nodeType":"YulIdentifier","src":"33140:6:88"},{"arguments":[{"kind":"number","nativeSrc":"33152:2:88","nodeType":"YulLiteral","src":"33152:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"33148:3:88","nodeType":"YulIdentifier","src":"33148:3:88"},"nativeSrc":"33148:7:88","nodeType":"YulFunctionCall","src":"33148:7:88"}],"functionName":{"name":"and","nativeSrc":"33136:3:88","nodeType":"YulIdentifier","src":"33136:3:88"},"nativeSrc":"33136:20:88","nodeType":"YulFunctionCall","src":"33136:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"33125:7:88","nodeType":"YulTypedName","src":"33125:7:88","type":""}]},{"nativeSrc":"33169:49:88","nodeType":"YulVariableDeclaration","src":"33169:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"33213:4:88","nodeType":"YulIdentifier","src":"33213:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"33183:29:88","nodeType":"YulIdentifier","src":"33183:29:88"},"nativeSrc":"33183:35:88","nodeType":"YulFunctionCall","src":"33183:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"33173:6:88","nodeType":"YulTypedName","src":"33173:6:88","type":""}]},{"nativeSrc":"33231:10:88","nodeType":"YulVariableDeclaration","src":"33231:10:88","value":{"kind":"number","nativeSrc":"33240:1:88","nodeType":"YulLiteral","src":"33240:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"33235:1:88","nodeType":"YulTypedName","src":"33235:1:88","type":""}]},{"body":{"nativeSrc":"33311:165:88","nodeType":"YulBlock","src":"33311:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"33336:6:88","nodeType":"YulIdentifier","src":"33336:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"33354:3:88","nodeType":"YulIdentifier","src":"33354:3:88"},{"name":"srcOffset","nativeSrc":"33359:9:88","nodeType":"YulIdentifier","src":"33359:9:88"}],"functionName":{"name":"add","nativeSrc":"33350:3:88","nodeType":"YulIdentifier","src":"33350:3:88"},"nativeSrc":"33350:19:88","nodeType":"YulFunctionCall","src":"33350:19:88"}],"functionName":{"name":"mload","nativeSrc":"33344:5:88","nodeType":"YulIdentifier","src":"33344:5:88"},"nativeSrc":"33344:26:88","nodeType":"YulFunctionCall","src":"33344:26:88"}],"functionName":{"name":"sstore","nativeSrc":"33329:6:88","nodeType":"YulIdentifier","src":"33329:6:88"},"nativeSrc":"33329:42:88","nodeType":"YulFunctionCall","src":"33329:42:88"},"nativeSrc":"33329:42:88","nodeType":"YulExpressionStatement","src":"33329:42:88"},{"nativeSrc":"33388:24:88","nodeType":"YulAssignment","src":"33388:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"33402:6:88","nodeType":"YulIdentifier","src":"33402:6:88"},{"kind":"number","nativeSrc":"33410:1:88","nodeType":"YulLiteral","src":"33410:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"33398:3:88","nodeType":"YulIdentifier","src":"33398:3:88"},"nativeSrc":"33398:14:88","nodeType":"YulFunctionCall","src":"33398:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"33388:6:88","nodeType":"YulIdentifier","src":"33388:6:88"}]},{"nativeSrc":"33429:33:88","nodeType":"YulAssignment","src":"33429:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"33446:9:88","nodeType":"YulIdentifier","src":"33446:9:88"},{"kind":"number","nativeSrc":"33457:4:88","nodeType":"YulLiteral","src":"33457:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33442:3:88","nodeType":"YulIdentifier","src":"33442:3:88"},"nativeSrc":"33442:20:88","nodeType":"YulFunctionCall","src":"33442:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"33429:9:88","nodeType":"YulIdentifier","src":"33429:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"33265:1:88","nodeType":"YulIdentifier","src":"33265:1:88"},{"name":"loopEnd","nativeSrc":"33268:7:88","nodeType":"YulIdentifier","src":"33268:7:88"}],"functionName":{"name":"lt","nativeSrc":"33262:2:88","nodeType":"YulIdentifier","src":"33262:2:88"},"nativeSrc":"33262:14:88","nodeType":"YulFunctionCall","src":"33262:14:88"},"nativeSrc":"33254:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"33277:21:88","nodeType":"YulBlock","src":"33277:21:88","statements":[{"nativeSrc":"33279:17:88","nodeType":"YulAssignment","src":"33279:17:88","value":{"arguments":[{"name":"i","nativeSrc":"33288:1:88","nodeType":"YulIdentifier","src":"33288:1:88"},{"kind":"number","nativeSrc":"33291:4:88","nodeType":"YulLiteral","src":"33291:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33284:3:88","nodeType":"YulIdentifier","src":"33284:3:88"},"nativeSrc":"33284:12:88","nodeType":"YulFunctionCall","src":"33284:12:88"},"variableNames":[{"name":"i","nativeSrc":"33279:1:88","nodeType":"YulIdentifier","src":"33279:1:88"}]}]},"pre":{"nativeSrc":"33258:3:88","nodeType":"YulBlock","src":"33258:3:88","statements":[]},"src":"33254:222:88"},{"body":{"nativeSrc":"33524:166:88","nodeType":"YulBlock","src":"33524:166:88","statements":[{"nativeSrc":"33542:43:88","nodeType":"YulVariableDeclaration","src":"33542:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"33569:3:88","nodeType":"YulIdentifier","src":"33569:3:88"},{"name":"srcOffset","nativeSrc":"33574:9:88","nodeType":"YulIdentifier","src":"33574:9:88"}],"functionName":{"name":"add","nativeSrc":"33565:3:88","nodeType":"YulIdentifier","src":"33565:3:88"},"nativeSrc":"33565:19:88","nodeType":"YulFunctionCall","src":"33565:19:88"}],"functionName":{"name":"mload","nativeSrc":"33559:5:88","nodeType":"YulIdentifier","src":"33559:5:88"},"nativeSrc":"33559:26:88","nodeType":"YulFunctionCall","src":"33559:26:88"},"variables":[{"name":"lastValue","nativeSrc":"33546:9:88","nodeType":"YulTypedName","src":"33546:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"33609:6:88","nodeType":"YulIdentifier","src":"33609:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"33621:9:88","nodeType":"YulIdentifier","src":"33621:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33648:1:88","nodeType":"YulLiteral","src":"33648:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"33651:6:88","nodeType":"YulIdentifier","src":"33651:6:88"}],"functionName":{"name":"shl","nativeSrc":"33644:3:88","nodeType":"YulIdentifier","src":"33644:3:88"},"nativeSrc":"33644:14:88","nodeType":"YulFunctionCall","src":"33644:14:88"},{"kind":"number","nativeSrc":"33660:3:88","nodeType":"YulLiteral","src":"33660:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"33640:3:88","nodeType":"YulIdentifier","src":"33640:3:88"},"nativeSrc":"33640:24:88","nodeType":"YulFunctionCall","src":"33640:24:88"},{"arguments":[{"kind":"number","nativeSrc":"33670:1:88","nodeType":"YulLiteral","src":"33670:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"33666:3:88","nodeType":"YulIdentifier","src":"33666:3:88"},"nativeSrc":"33666:6:88","nodeType":"YulFunctionCall","src":"33666:6:88"}],"functionName":{"name":"shr","nativeSrc":"33636:3:88","nodeType":"YulIdentifier","src":"33636:3:88"},"nativeSrc":"33636:37:88","nodeType":"YulFunctionCall","src":"33636:37:88"}],"functionName":{"name":"not","nativeSrc":"33632:3:88","nodeType":"YulIdentifier","src":"33632:3:88"},"nativeSrc":"33632:42:88","nodeType":"YulFunctionCall","src":"33632:42:88"}],"functionName":{"name":"and","nativeSrc":"33617:3:88","nodeType":"YulIdentifier","src":"33617:3:88"},"nativeSrc":"33617:58:88","nodeType":"YulFunctionCall","src":"33617:58:88"}],"functionName":{"name":"sstore","nativeSrc":"33602:6:88","nodeType":"YulIdentifier","src":"33602:6:88"},"nativeSrc":"33602:74:88","nodeType":"YulFunctionCall","src":"33602:74:88"},"nativeSrc":"33602:74:88","nodeType":"YulExpressionStatement","src":"33602:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"33495:7:88","nodeType":"YulIdentifier","src":"33495:7:88"},{"name":"newLen","nativeSrc":"33504:6:88","nodeType":"YulIdentifier","src":"33504:6:88"}],"functionName":{"name":"lt","nativeSrc":"33492:2:88","nodeType":"YulIdentifier","src":"33492:2:88"},"nativeSrc":"33492:19:88","nodeType":"YulFunctionCall","src":"33492:19:88"},"nativeSrc":"33489:201:88","nodeType":"YulIf","src":"33489:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"33710:4:88","nodeType":"YulIdentifier","src":"33710:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33724:1:88","nodeType":"YulLiteral","src":"33724:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"33727:6:88","nodeType":"YulIdentifier","src":"33727:6:88"}],"functionName":{"name":"shl","nativeSrc":"33720:3:88","nodeType":"YulIdentifier","src":"33720:3:88"},"nativeSrc":"33720:14:88","nodeType":"YulFunctionCall","src":"33720:14:88"},{"kind":"number","nativeSrc":"33736:1:88","nodeType":"YulLiteral","src":"33736:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"33716:3:88","nodeType":"YulIdentifier","src":"33716:3:88"},"nativeSrc":"33716:22:88","nodeType":"YulFunctionCall","src":"33716:22:88"}],"functionName":{"name":"sstore","nativeSrc":"33703:6:88","nodeType":"YulIdentifier","src":"33703:6:88"},"nativeSrc":"33703:36:88","nodeType":"YulFunctionCall","src":"33703:36:88"},"nativeSrc":"33703:36:88","nodeType":"YulExpressionStatement","src":"33703:36:88"}]},"nativeSrc":"33100:649:88","nodeType":"YulCase","src":"33100:649:88","value":{"kind":"number","nativeSrc":"33105:1:88","nodeType":"YulLiteral","src":"33105:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"33766:234:88","nodeType":"YulBlock","src":"33766:234:88","statements":[{"nativeSrc":"33780:14:88","nodeType":"YulVariableDeclaration","src":"33780:14:88","value":{"kind":"number","nativeSrc":"33793:1:88","nodeType":"YulLiteral","src":"33793:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"33784:5:88","nodeType":"YulTypedName","src":"33784:5:88","type":""}]},{"body":{"nativeSrc":"33829:67:88","nodeType":"YulBlock","src":"33829:67:88","statements":[{"nativeSrc":"33847:35:88","nodeType":"YulAssignment","src":"33847:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"33866:3:88","nodeType":"YulIdentifier","src":"33866:3:88"},{"name":"srcOffset","nativeSrc":"33871:9:88","nodeType":"YulIdentifier","src":"33871:9:88"}],"functionName":{"name":"add","nativeSrc":"33862:3:88","nodeType":"YulIdentifier","src":"33862:3:88"},"nativeSrc":"33862:19:88","nodeType":"YulFunctionCall","src":"33862:19:88"}],"functionName":{"name":"mload","nativeSrc":"33856:5:88","nodeType":"YulIdentifier","src":"33856:5:88"},"nativeSrc":"33856:26:88","nodeType":"YulFunctionCall","src":"33856:26:88"},"variableNames":[{"name":"value","nativeSrc":"33847:5:88","nodeType":"YulIdentifier","src":"33847:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"33810:6:88","nodeType":"YulIdentifier","src":"33810:6:88"},"nativeSrc":"33807:89:88","nodeType":"YulIf","src":"33807:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"33916:4:88","nodeType":"YulIdentifier","src":"33916:4:88"},{"arguments":[{"name":"value","nativeSrc":"33975:5:88","nodeType":"YulIdentifier","src":"33975:5:88"},{"name":"newLen","nativeSrc":"33982:6:88","nodeType":"YulIdentifier","src":"33982:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"33922:52:88","nodeType":"YulIdentifier","src":"33922:52:88"},"nativeSrc":"33922:67:88","nodeType":"YulFunctionCall","src":"33922:67:88"}],"functionName":{"name":"sstore","nativeSrc":"33909:6:88","nodeType":"YulIdentifier","src":"33909:6:88"},"nativeSrc":"33909:81:88","nodeType":"YulFunctionCall","src":"33909:81:88"},"nativeSrc":"33909:81:88","nodeType":"YulExpressionStatement","src":"33909:81:88"}]},"nativeSrc":"33758:242:88","nodeType":"YulCase","src":"33758:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"33080:6:88","nodeType":"YulIdentifier","src":"33080:6:88"},{"kind":"number","nativeSrc":"33088:2:88","nodeType":"YulLiteral","src":"33088:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"33077:2:88","nodeType":"YulIdentifier","src":"33077:2:88"},"nativeSrc":"33077:14:88","nodeType":"YulFunctionCall","src":"33077:14:88"},"nativeSrc":"33070:930:88","nodeType":"YulSwitch","src":"33070:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"32707:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"32788:4:88","nodeType":"YulTypedName","src":"32788:4:88","type":""},{"name":"src","nativeSrc":"32794:3:88","nodeType":"YulTypedName","src":"32794:3:88","type":""}],"src":"32707:1299:88"},{"body":{"nativeSrc":"34185:228:88","nodeType":"YulBlock","src":"34185:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34202:9:88","nodeType":"YulIdentifier","src":"34202:9:88"},{"kind":"number","nativeSrc":"34213:2:88","nodeType":"YulLiteral","src":"34213:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34195:6:88","nodeType":"YulIdentifier","src":"34195:6:88"},"nativeSrc":"34195:21:88","nodeType":"YulFunctionCall","src":"34195:21:88"},"nativeSrc":"34195:21:88","nodeType":"YulExpressionStatement","src":"34195:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34236:9:88","nodeType":"YulIdentifier","src":"34236:9:88"},{"kind":"number","nativeSrc":"34247:2:88","nodeType":"YulLiteral","src":"34247:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34232:3:88","nodeType":"YulIdentifier","src":"34232:3:88"},"nativeSrc":"34232:18:88","nodeType":"YulFunctionCall","src":"34232:18:88"},{"kind":"number","nativeSrc":"34252:2:88","nodeType":"YulLiteral","src":"34252:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"34225:6:88","nodeType":"YulIdentifier","src":"34225:6:88"},"nativeSrc":"34225:30:88","nodeType":"YulFunctionCall","src":"34225:30:88"},"nativeSrc":"34225:30:88","nodeType":"YulExpressionStatement","src":"34225:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34275:9:88","nodeType":"YulIdentifier","src":"34275:9:88"},{"kind":"number","nativeSrc":"34286:2:88","nodeType":"YulLiteral","src":"34286:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34271:3:88","nodeType":"YulIdentifier","src":"34271:3:88"},"nativeSrc":"34271:18:88","nodeType":"YulFunctionCall","src":"34271:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"34291:34:88","nodeType":"YulLiteral","src":"34291:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"34264:6:88","nodeType":"YulIdentifier","src":"34264:6:88"},"nativeSrc":"34264:62:88","nodeType":"YulFunctionCall","src":"34264:62:88"},"nativeSrc":"34264:62:88","nodeType":"YulExpressionStatement","src":"34264:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34346:9:88","nodeType":"YulIdentifier","src":"34346:9:88"},{"kind":"number","nativeSrc":"34357:2:88","nodeType":"YulLiteral","src":"34357:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34342:3:88","nodeType":"YulIdentifier","src":"34342:3:88"},"nativeSrc":"34342:18:88","nodeType":"YulFunctionCall","src":"34342:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"34362:8:88","nodeType":"YulLiteral","src":"34362:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"34335:6:88","nodeType":"YulIdentifier","src":"34335:6:88"},"nativeSrc":"34335:36:88","nodeType":"YulFunctionCall","src":"34335:36:88"},"nativeSrc":"34335:36:88","nodeType":"YulExpressionStatement","src":"34335:36:88"},{"nativeSrc":"34380:27:88","nodeType":"YulAssignment","src":"34380:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34392:9:88","nodeType":"YulIdentifier","src":"34392:9:88"},{"kind":"number","nativeSrc":"34403:3:88","nodeType":"YulLiteral","src":"34403:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34388:3:88","nodeType":"YulIdentifier","src":"34388:3:88"},"nativeSrc":"34388:19:88","nodeType":"YulFunctionCall","src":"34388:19:88"},"variableNames":[{"name":"tail","nativeSrc":"34380:4:88","nodeType":"YulIdentifier","src":"34380:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34011:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34162:9:88","nodeType":"YulTypedName","src":"34162:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34176:4:88","nodeType":"YulTypedName","src":"34176:4:88","type":""}],"src":"34011:402:88"},{"body":{"nativeSrc":"34520:170:88","nodeType":"YulBlock","src":"34520:170:88","statements":[{"body":{"nativeSrc":"34566:16:88","nodeType":"YulBlock","src":"34566:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34575:1:88","nodeType":"YulLiteral","src":"34575:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34578:1:88","nodeType":"YulLiteral","src":"34578:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34568:6:88","nodeType":"YulIdentifier","src":"34568:6:88"},"nativeSrc":"34568:12:88","nodeType":"YulFunctionCall","src":"34568:12:88"},"nativeSrc":"34568:12:88","nodeType":"YulExpressionStatement","src":"34568:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"34541:7:88","nodeType":"YulIdentifier","src":"34541:7:88"},{"name":"headStart","nativeSrc":"34550:9:88","nodeType":"YulIdentifier","src":"34550:9:88"}],"functionName":{"name":"sub","nativeSrc":"34537:3:88","nodeType":"YulIdentifier","src":"34537:3:88"},"nativeSrc":"34537:23:88","nodeType":"YulFunctionCall","src":"34537:23:88"},{"kind":"number","nativeSrc":"34562:2:88","nodeType":"YulLiteral","src":"34562:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"34533:3:88","nodeType":"YulIdentifier","src":"34533:3:88"},"nativeSrc":"34533:32:88","nodeType":"YulFunctionCall","src":"34533:32:88"},"nativeSrc":"34530:52:88","nodeType":"YulIf","src":"34530:52:88"},{"nativeSrc":"34591:29:88","nodeType":"YulVariableDeclaration","src":"34591:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"34610:9:88","nodeType":"YulIdentifier","src":"34610:9:88"}],"functionName":{"name":"mload","nativeSrc":"34604:5:88","nodeType":"YulIdentifier","src":"34604:5:88"},"nativeSrc":"34604:16:88","nodeType":"YulFunctionCall","src":"34604:16:88"},"variables":[{"name":"value","nativeSrc":"34595:5:88","nodeType":"YulTypedName","src":"34595:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34654:5:88","nodeType":"YulIdentifier","src":"34654:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34629:24:88","nodeType":"YulIdentifier","src":"34629:24:88"},"nativeSrc":"34629:31:88","nodeType":"YulFunctionCall","src":"34629:31:88"},"nativeSrc":"34629:31:88","nodeType":"YulExpressionStatement","src":"34629:31:88"},{"nativeSrc":"34669:15:88","nodeType":"YulAssignment","src":"34669:15:88","value":{"name":"value","nativeSrc":"34679:5:88","nodeType":"YulIdentifier","src":"34679:5:88"},"variableNames":[{"name":"value0","nativeSrc":"34669:6:88","nodeType":"YulIdentifier","src":"34669:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"34418:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34486:9:88","nodeType":"YulTypedName","src":"34486:9:88","type":""},{"name":"dataEnd","nativeSrc":"34497:7:88","nodeType":"YulTypedName","src":"34497:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"34509:6:88","nodeType":"YulTypedName","src":"34509:6:88","type":""}],"src":"34418:272:88"},{"body":{"nativeSrc":"34869:225:88","nodeType":"YulBlock","src":"34869:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34886:9:88","nodeType":"YulIdentifier","src":"34886:9:88"},{"kind":"number","nativeSrc":"34897:2:88","nodeType":"YulLiteral","src":"34897:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"34879:6:88","nodeType":"YulIdentifier","src":"34879:6:88"},"nativeSrc":"34879:21:88","nodeType":"YulFunctionCall","src":"34879:21:88"},"nativeSrc":"34879:21:88","nodeType":"YulExpressionStatement","src":"34879:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34920:9:88","nodeType":"YulIdentifier","src":"34920:9:88"},{"kind":"number","nativeSrc":"34931:2:88","nodeType":"YulLiteral","src":"34931:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34916:3:88","nodeType":"YulIdentifier","src":"34916:3:88"},"nativeSrc":"34916:18:88","nodeType":"YulFunctionCall","src":"34916:18:88"},{"kind":"number","nativeSrc":"34936:2:88","nodeType":"YulLiteral","src":"34936:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"34909:6:88","nodeType":"YulIdentifier","src":"34909:6:88"},"nativeSrc":"34909:30:88","nodeType":"YulFunctionCall","src":"34909:30:88"},"nativeSrc":"34909:30:88","nodeType":"YulExpressionStatement","src":"34909:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34959:9:88","nodeType":"YulIdentifier","src":"34959:9:88"},{"kind":"number","nativeSrc":"34970:2:88","nodeType":"YulLiteral","src":"34970:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34955:3:88","nodeType":"YulIdentifier","src":"34955:3:88"},"nativeSrc":"34955:18:88","nodeType":"YulFunctionCall","src":"34955:18:88"},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d75737420626520","kind":"string","nativeSrc":"34975:34:88","nodeType":"YulLiteral","src":"34975:34:88","type":"","value":"Validation: jrCollRatio must be "}],"functionName":{"name":"mstore","nativeSrc":"34948:6:88","nodeType":"YulIdentifier","src":"34948:6:88"},"nativeSrc":"34948:62:88","nodeType":"YulFunctionCall","src":"34948:62:88"},"nativeSrc":"34948:62:88","nodeType":"YulExpressionStatement","src":"34948:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35030:9:88","nodeType":"YulIdentifier","src":"35030:9:88"},{"kind":"number","nativeSrc":"35041:2:88","nodeType":"YulLiteral","src":"35041:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35026:3:88","nodeType":"YulIdentifier","src":"35026:3:88"},"nativeSrc":"35026:18:88","nodeType":"YulFunctionCall","src":"35026:18:88"},{"hexValue":"3c3d31","kind":"string","nativeSrc":"35046:5:88","nodeType":"YulLiteral","src":"35046:5:88","type":"","value":"<=1"}],"functionName":{"name":"mstore","nativeSrc":"35019:6:88","nodeType":"YulIdentifier","src":"35019:6:88"},"nativeSrc":"35019:33:88","nodeType":"YulFunctionCall","src":"35019:33:88"},"nativeSrc":"35019:33:88","nodeType":"YulExpressionStatement","src":"35019:33:88"},{"nativeSrc":"35061:27:88","nodeType":"YulAssignment","src":"35061:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35073:9:88","nodeType":"YulIdentifier","src":"35073:9:88"},{"kind":"number","nativeSrc":"35084:3:88","nodeType":"YulLiteral","src":"35084:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35069:3:88","nodeType":"YulIdentifier","src":"35069:3:88"},"nativeSrc":"35069:19:88","nodeType":"YulFunctionCall","src":"35069:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35061:4:88","nodeType":"YulIdentifier","src":"35061:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34695:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34846:9:88","nodeType":"YulTypedName","src":"34846:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34860:4:88","nodeType":"YulTypedName","src":"34860:4:88","type":""}],"src":"34695:399:88"},{"body":{"nativeSrc":"35273:223:88","nodeType":"YulBlock","src":"35273:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35290:9:88","nodeType":"YulIdentifier","src":"35290:9:88"},{"kind":"number","nativeSrc":"35301:2:88","nodeType":"YulLiteral","src":"35301:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35283:6:88","nodeType":"YulIdentifier","src":"35283:6:88"},"nativeSrc":"35283:21:88","nodeType":"YulFunctionCall","src":"35283:21:88"},"nativeSrc":"35283:21:88","nodeType":"YulExpressionStatement","src":"35283:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35324:9:88","nodeType":"YulIdentifier","src":"35324:9:88"},{"kind":"number","nativeSrc":"35335:2:88","nodeType":"YulLiteral","src":"35335:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35320:3:88","nodeType":"YulIdentifier","src":"35320:3:88"},"nativeSrc":"35320:18:88","nodeType":"YulFunctionCall","src":"35320:18:88"},{"kind":"number","nativeSrc":"35340:2:88","nodeType":"YulLiteral","src":"35340:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"35313:6:88","nodeType":"YulIdentifier","src":"35313:6:88"},"nativeSrc":"35313:30:88","nodeType":"YulFunctionCall","src":"35313:30:88"},"nativeSrc":"35313:30:88","nodeType":"YulExpressionStatement","src":"35313:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35363:9:88","nodeType":"YulIdentifier","src":"35363:9:88"},{"kind":"number","nativeSrc":"35374:2:88","nodeType":"YulLiteral","src":"35374:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35359:3:88","nodeType":"YulIdentifier","src":"35359:3:88"},"nativeSrc":"35359:18:88","nodeType":"YulFunctionCall","src":"35359:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d","kind":"string","nativeSrc":"35379:34:88","nodeType":"YulLiteral","src":"35379:34:88","type":"","value":"Validation: collRatio must be <="}],"functionName":{"name":"mstore","nativeSrc":"35352:6:88","nodeType":"YulIdentifier","src":"35352:6:88"},"nativeSrc":"35352:62:88","nodeType":"YulFunctionCall","src":"35352:62:88"},"nativeSrc":"35352:62:88","nodeType":"YulExpressionStatement","src":"35352:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35434:9:88","nodeType":"YulIdentifier","src":"35434:9:88"},{"kind":"number","nativeSrc":"35445:2:88","nodeType":"YulLiteral","src":"35445:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35430:3:88","nodeType":"YulIdentifier","src":"35430:3:88"},"nativeSrc":"35430:18:88","nodeType":"YulFunctionCall","src":"35430:18:88"},{"hexValue":"31","kind":"string","nativeSrc":"35450:3:88","nodeType":"YulLiteral","src":"35450:3:88","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"35423:6:88","nodeType":"YulIdentifier","src":"35423:6:88"},"nativeSrc":"35423:31:88","nodeType":"YulFunctionCall","src":"35423:31:88"},"nativeSrc":"35423:31:88","nodeType":"YulExpressionStatement","src":"35423:31:88"},{"nativeSrc":"35463:27:88","nodeType":"YulAssignment","src":"35463:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35475:9:88","nodeType":"YulIdentifier","src":"35475:9:88"},{"kind":"number","nativeSrc":"35486:3:88","nodeType":"YulLiteral","src":"35486:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35471:3:88","nodeType":"YulIdentifier","src":"35471:3:88"},"nativeSrc":"35471:19:88","nodeType":"YulFunctionCall","src":"35471:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35463:4:88","nodeType":"YulIdentifier","src":"35463:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35099:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35250:9:88","nodeType":"YulTypedName","src":"35250:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35264:4:88","nodeType":"YulTypedName","src":"35264:4:88","type":""}],"src":"35099:397:88"},{"body":{"nativeSrc":"35675:226:88","nodeType":"YulBlock","src":"35675:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35692:9:88","nodeType":"YulIdentifier","src":"35692:9:88"},{"kind":"number","nativeSrc":"35703:2:88","nodeType":"YulLiteral","src":"35703:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35685:6:88","nodeType":"YulIdentifier","src":"35685:6:88"},"nativeSrc":"35685:21:88","nodeType":"YulFunctionCall","src":"35685:21:88"},"nativeSrc":"35685:21:88","nodeType":"YulExpressionStatement","src":"35685:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35726:9:88","nodeType":"YulIdentifier","src":"35726:9:88"},{"kind":"number","nativeSrc":"35737:2:88","nodeType":"YulLiteral","src":"35737:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35722:3:88","nodeType":"YulIdentifier","src":"35722:3:88"},"nativeSrc":"35722:18:88","nodeType":"YulFunctionCall","src":"35722:18:88"},{"kind":"number","nativeSrc":"35742:2:88","nodeType":"YulLiteral","src":"35742:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"35715:6:88","nodeType":"YulIdentifier","src":"35715:6:88"},"nativeSrc":"35715:30:88","nodeType":"YulFunctionCall","src":"35715:30:88"},"nativeSrc":"35715:30:88","nodeType":"YulExpressionStatement","src":"35715:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35765:9:88","nodeType":"YulIdentifier","src":"35765:9:88"},{"kind":"number","nativeSrc":"35776:2:88","nodeType":"YulLiteral","src":"35776:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35761:3:88","nodeType":"YulIdentifier","src":"35761:3:88"},"nativeSrc":"35761:18:88","nodeType":"YulFunctionCall","src":"35761:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c52","kind":"string","nativeSrc":"35781:34:88","nodeType":"YulLiteral","src":"35781:34:88","type":"","value":"Validation: collRatio >= jrCollR"}],"functionName":{"name":"mstore","nativeSrc":"35754:6:88","nodeType":"YulIdentifier","src":"35754:6:88"},"nativeSrc":"35754:62:88","nodeType":"YulFunctionCall","src":"35754:62:88"},"nativeSrc":"35754:62:88","nodeType":"YulExpressionStatement","src":"35754:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35836:9:88","nodeType":"YulIdentifier","src":"35836:9:88"},{"kind":"number","nativeSrc":"35847:2:88","nodeType":"YulLiteral","src":"35847:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35832:3:88","nodeType":"YulIdentifier","src":"35832:3:88"},"nativeSrc":"35832:18:88","nodeType":"YulFunctionCall","src":"35832:18:88"},{"hexValue":"6174696f","kind":"string","nativeSrc":"35852:6:88","nodeType":"YulLiteral","src":"35852:6:88","type":"","value":"atio"}],"functionName":{"name":"mstore","nativeSrc":"35825:6:88","nodeType":"YulIdentifier","src":"35825:6:88"},"nativeSrc":"35825:34:88","nodeType":"YulFunctionCall","src":"35825:34:88"},"nativeSrc":"35825:34:88","nodeType":"YulExpressionStatement","src":"35825:34:88"},{"nativeSrc":"35868:27:88","nodeType":"YulAssignment","src":"35868:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"35880:9:88","nodeType":"YulIdentifier","src":"35880:9:88"},{"kind":"number","nativeSrc":"35891:3:88","nodeType":"YulLiteral","src":"35891:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35876:3:88","nodeType":"YulIdentifier","src":"35876:3:88"},"nativeSrc":"35876:19:88","nodeType":"YulFunctionCall","src":"35876:19:88"},"variableNames":[{"name":"tail","nativeSrc":"35868:4:88","nodeType":"YulIdentifier","src":"35868:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35501:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35652:9:88","nodeType":"YulTypedName","src":"35652:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35666:4:88","nodeType":"YulTypedName","src":"35666:4:88","type":""}],"src":"35501:400:88"},{"body":{"nativeSrc":"36080:182:88","nodeType":"YulBlock","src":"36080:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36097:9:88","nodeType":"YulIdentifier","src":"36097:9:88"},{"kind":"number","nativeSrc":"36108:2:88","nodeType":"YulLiteral","src":"36108:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36090:6:88","nodeType":"YulIdentifier","src":"36090:6:88"},"nativeSrc":"36090:21:88","nodeType":"YulFunctionCall","src":"36090:21:88"},"nativeSrc":"36090:21:88","nodeType":"YulExpressionStatement","src":"36090:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36131:9:88","nodeType":"YulIdentifier","src":"36131:9:88"},{"kind":"number","nativeSrc":"36142:2:88","nodeType":"YulLiteral","src":"36142:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36127:3:88","nodeType":"YulIdentifier","src":"36127:3:88"},"nativeSrc":"36127:18:88","nodeType":"YulFunctionCall","src":"36127:18:88"},{"kind":"number","nativeSrc":"36147:2:88","nodeType":"YulLiteral","src":"36147:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36120:6:88","nodeType":"YulIdentifier","src":"36120:6:88"},"nativeSrc":"36120:30:88","nodeType":"YulFunctionCall","src":"36120:30:88"},"nativeSrc":"36120:30:88","nodeType":"YulExpressionStatement","src":"36120:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36170:9:88","nodeType":"YulIdentifier","src":"36170:9:88"},{"kind":"number","nativeSrc":"36181:2:88","nodeType":"YulLiteral","src":"36181:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36166:3:88","nodeType":"YulIdentifier","src":"36166:3:88"},"nativeSrc":"36166:18:88","nodeType":"YulFunctionCall","src":"36166:18:88"},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","kind":"string","nativeSrc":"36186:34:88","nodeType":"YulLiteral","src":"36186:34:88","type":"","value":"Validation: moc must be [0.5, 4]"}],"functionName":{"name":"mstore","nativeSrc":"36159:6:88","nodeType":"YulIdentifier","src":"36159:6:88"},"nativeSrc":"36159:62:88","nodeType":"YulFunctionCall","src":"36159:62:88"},"nativeSrc":"36159:62:88","nodeType":"YulExpressionStatement","src":"36159:62:88"},{"nativeSrc":"36230:26:88","nodeType":"YulAssignment","src":"36230:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36242:9:88","nodeType":"YulIdentifier","src":"36242:9:88"},{"kind":"number","nativeSrc":"36253:2:88","nodeType":"YulLiteral","src":"36253:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36238:3:88","nodeType":"YulIdentifier","src":"36238:3:88"},"nativeSrc":"36238:18:88","nodeType":"YulFunctionCall","src":"36238:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36230:4:88","nodeType":"YulIdentifier","src":"36230:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35906:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36057:9:88","nodeType":"YulTypedName","src":"36057:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36071:4:88","nodeType":"YulTypedName","src":"36071:4:88","type":""}],"src":"35906:356:88"},{"body":{"nativeSrc":"36441:226:88","nodeType":"YulBlock","src":"36441:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36458:9:88","nodeType":"YulIdentifier","src":"36458:9:88"},{"kind":"number","nativeSrc":"36469:2:88","nodeType":"YulLiteral","src":"36469:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36451:6:88","nodeType":"YulIdentifier","src":"36451:6:88"},"nativeSrc":"36451:21:88","nodeType":"YulFunctionCall","src":"36451:21:88"},"nativeSrc":"36451:21:88","nodeType":"YulExpressionStatement","src":"36451:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36492:9:88","nodeType":"YulIdentifier","src":"36492:9:88"},{"kind":"number","nativeSrc":"36503:2:88","nodeType":"YulLiteral","src":"36503:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36488:3:88","nodeType":"YulIdentifier","src":"36488:3:88"},"nativeSrc":"36488:18:88","nodeType":"YulFunctionCall","src":"36488:18:88"},{"kind":"number","nativeSrc":"36508:2:88","nodeType":"YulLiteral","src":"36508:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"36481:6:88","nodeType":"YulIdentifier","src":"36481:6:88"},"nativeSrc":"36481:30:88","nodeType":"YulFunctionCall","src":"36481:30:88"},"nativeSrc":"36481:30:88","nodeType":"YulExpressionStatement","src":"36481:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36531:9:88","nodeType":"YulIdentifier","src":"36531:9:88"},{"kind":"number","nativeSrc":"36542:2:88","nodeType":"YulLiteral","src":"36542:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36527:3:88","nodeType":"YulIdentifier","src":"36527:3:88"},"nativeSrc":"36527:18:88","nodeType":"YulFunctionCall","src":"36527:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d75737420626520","kind":"string","nativeSrc":"36547:34:88","nodeType":"YulLiteral","src":"36547:34:88","type":"","value":"Validation: ensuroPpFee must be "}],"functionName":{"name":"mstore","nativeSrc":"36520:6:88","nodeType":"YulIdentifier","src":"36520:6:88"},"nativeSrc":"36520:62:88","nodeType":"YulFunctionCall","src":"36520:62:88"},"nativeSrc":"36520:62:88","nodeType":"YulExpressionStatement","src":"36520:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36602:9:88","nodeType":"YulIdentifier","src":"36602:9:88"},{"kind":"number","nativeSrc":"36613:2:88","nodeType":"YulLiteral","src":"36613:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36598:3:88","nodeType":"YulIdentifier","src":"36598:3:88"},"nativeSrc":"36598:18:88","nodeType":"YulFunctionCall","src":"36598:18:88"},{"hexValue":"3c3d2031","kind":"string","nativeSrc":"36618:6:88","nodeType":"YulLiteral","src":"36618:6:88","type":"","value":"<= 1"}],"functionName":{"name":"mstore","nativeSrc":"36591:6:88","nodeType":"YulIdentifier","src":"36591:6:88"},"nativeSrc":"36591:34:88","nodeType":"YulFunctionCall","src":"36591:34:88"},"nativeSrc":"36591:34:88","nodeType":"YulExpressionStatement","src":"36591:34:88"},{"nativeSrc":"36634:27:88","nodeType":"YulAssignment","src":"36634:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36646:9:88","nodeType":"YulIdentifier","src":"36646:9:88"},{"kind":"number","nativeSrc":"36657:3:88","nodeType":"YulLiteral","src":"36657:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36642:3:88","nodeType":"YulIdentifier","src":"36642:3:88"},"nativeSrc":"36642:19:88","nodeType":"YulFunctionCall","src":"36642:19:88"},"variableNames":[{"name":"tail","nativeSrc":"36634:4:88","nodeType":"YulIdentifier","src":"36634:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36267:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36418:9:88","nodeType":"YulTypedName","src":"36418:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36432:4:88","nodeType":"YulTypedName","src":"36432:4:88","type":""}],"src":"36267:400:88"},{"body":{"nativeSrc":"36846:227:88","nodeType":"YulBlock","src":"36846:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36863:9:88","nodeType":"YulIdentifier","src":"36863:9:88"},{"kind":"number","nativeSrc":"36874:2:88","nodeType":"YulLiteral","src":"36874:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36856:6:88","nodeType":"YulIdentifier","src":"36856:6:88"},"nativeSrc":"36856:21:88","nodeType":"YulFunctionCall","src":"36856:21:88"},"nativeSrc":"36856:21:88","nodeType":"YulExpressionStatement","src":"36856:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36897:9:88","nodeType":"YulIdentifier","src":"36897:9:88"},{"kind":"number","nativeSrc":"36908:2:88","nodeType":"YulLiteral","src":"36908:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36893:3:88","nodeType":"YulIdentifier","src":"36893:3:88"},"nativeSrc":"36893:18:88","nodeType":"YulFunctionCall","src":"36893:18:88"},{"kind":"number","nativeSrc":"36913:2:88","nodeType":"YulLiteral","src":"36913:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"36886:6:88","nodeType":"YulIdentifier","src":"36886:6:88"},"nativeSrc":"36886:30:88","nodeType":"YulFunctionCall","src":"36886:30:88"},"nativeSrc":"36886:30:88","nodeType":"YulExpressionStatement","src":"36886:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36936:9:88","nodeType":"YulIdentifier","src":"36936:9:88"},{"kind":"number","nativeSrc":"36947:2:88","nodeType":"YulLiteral","src":"36947:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36932:3:88","nodeType":"YulIdentifier","src":"36932:3:88"},"nativeSrc":"36932:18:88","nodeType":"YulFunctionCall","src":"36932:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265","kind":"string","nativeSrc":"36952:34:88","nodeType":"YulLiteral","src":"36952:34:88","type":"","value":"Validation: ensuroCocFee must be"}],"functionName":{"name":"mstore","nativeSrc":"36925:6:88","nodeType":"YulIdentifier","src":"36925:6:88"},"nativeSrc":"36925:62:88","nodeType":"YulFunctionCall","src":"36925:62:88"},"nativeSrc":"36925:62:88","nodeType":"YulExpressionStatement","src":"36925:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37007:9:88","nodeType":"YulIdentifier","src":"37007:9:88"},{"kind":"number","nativeSrc":"37018:2:88","nodeType":"YulLiteral","src":"37018:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37003:3:88","nodeType":"YulIdentifier","src":"37003:3:88"},"nativeSrc":"37003:18:88","nodeType":"YulFunctionCall","src":"37003:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"37023:7:88","nodeType":"YulLiteral","src":"37023:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"36996:6:88","nodeType":"YulIdentifier","src":"36996:6:88"},"nativeSrc":"36996:35:88","nodeType":"YulFunctionCall","src":"36996:35:88"},"nativeSrc":"36996:35:88","nodeType":"YulExpressionStatement","src":"36996:35:88"},{"nativeSrc":"37040:27:88","nodeType":"YulAssignment","src":"37040:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37052:9:88","nodeType":"YulIdentifier","src":"37052:9:88"},{"kind":"number","nativeSrc":"37063:3:88","nodeType":"YulLiteral","src":"37063:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37048:3:88","nodeType":"YulIdentifier","src":"37048:3:88"},"nativeSrc":"37048:19:88","nodeType":"YulFunctionCall","src":"37048:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37040:4:88","nodeType":"YulIdentifier","src":"37040:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36672:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36823:9:88","nodeType":"YulTypedName","src":"36823:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36837:4:88","nodeType":"YulTypedName","src":"36837:4:88","type":""}],"src":"36672:401:88"},{"body":{"nativeSrc":"37252:227:88","nodeType":"YulBlock","src":"37252:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37269:9:88","nodeType":"YulIdentifier","src":"37269:9:88"},{"kind":"number","nativeSrc":"37280:2:88","nodeType":"YulLiteral","src":"37280:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37262:6:88","nodeType":"YulIdentifier","src":"37262:6:88"},"nativeSrc":"37262:21:88","nodeType":"YulFunctionCall","src":"37262:21:88"},"nativeSrc":"37262:21:88","nodeType":"YulExpressionStatement","src":"37262:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37303:9:88","nodeType":"YulIdentifier","src":"37303:9:88"},{"kind":"number","nativeSrc":"37314:2:88","nodeType":"YulLiteral","src":"37314:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37299:3:88","nodeType":"YulIdentifier","src":"37299:3:88"},"nativeSrc":"37299:18:88","nodeType":"YulFunctionCall","src":"37299:18:88"},{"kind":"number","nativeSrc":"37319:2:88","nodeType":"YulLiteral","src":"37319:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"37292:6:88","nodeType":"YulIdentifier","src":"37292:6:88"},"nativeSrc":"37292:30:88","nodeType":"YulFunctionCall","src":"37292:30:88"},"nativeSrc":"37292:30:88","nodeType":"YulExpressionStatement","src":"37292:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37342:9:88","nodeType":"YulIdentifier","src":"37342:9:88"},{"kind":"number","nativeSrc":"37353:2:88","nodeType":"YulLiteral","src":"37353:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37338:3:88","nodeType":"YulIdentifier","src":"37338:3:88"},"nativeSrc":"37338:18:88","nodeType":"YulFunctionCall","src":"37338:18:88"},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"37358:34:88","nodeType":"YulLiteral","src":"37358:34:88","type":"","value":"Validation: srRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"37331:6:88","nodeType":"YulIdentifier","src":"37331:6:88"},"nativeSrc":"37331:62:88","nodeType":"YulFunctionCall","src":"37331:62:88"},"nativeSrc":"37331:62:88","nodeType":"YulExpressionStatement","src":"37331:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37413:9:88","nodeType":"YulIdentifier","src":"37413:9:88"},{"kind":"number","nativeSrc":"37424:2:88","nodeType":"YulLiteral","src":"37424:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37409:3:88","nodeType":"YulIdentifier","src":"37409:3:88"},"nativeSrc":"37409:18:88","nodeType":"YulFunctionCall","src":"37409:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"37429:7:88","nodeType":"YulLiteral","src":"37429:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"37402:6:88","nodeType":"YulIdentifier","src":"37402:6:88"},"nativeSrc":"37402:35:88","nodeType":"YulFunctionCall","src":"37402:35:88"},"nativeSrc":"37402:35:88","nodeType":"YulExpressionStatement","src":"37402:35:88"},{"nativeSrc":"37446:27:88","nodeType":"YulAssignment","src":"37446:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37458:9:88","nodeType":"YulIdentifier","src":"37458:9:88"},{"kind":"number","nativeSrc":"37469:3:88","nodeType":"YulLiteral","src":"37469:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37454:3:88","nodeType":"YulIdentifier","src":"37454:3:88"},"nativeSrc":"37454:19:88","nodeType":"YulFunctionCall","src":"37454:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37446:4:88","nodeType":"YulIdentifier","src":"37446:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37078:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37229:9:88","nodeType":"YulTypedName","src":"37229:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37243:4:88","nodeType":"YulTypedName","src":"37243:4:88","type":""}],"src":"37078:401:88"},{"body":{"nativeSrc":"37658:227:88","nodeType":"YulBlock","src":"37658:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37675:9:88","nodeType":"YulIdentifier","src":"37675:9:88"},{"kind":"number","nativeSrc":"37686:2:88","nodeType":"YulLiteral","src":"37686:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37668:6:88","nodeType":"YulIdentifier","src":"37668:6:88"},"nativeSrc":"37668:21:88","nodeType":"YulFunctionCall","src":"37668:21:88"},"nativeSrc":"37668:21:88","nodeType":"YulExpressionStatement","src":"37668:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37709:9:88","nodeType":"YulIdentifier","src":"37709:9:88"},{"kind":"number","nativeSrc":"37720:2:88","nodeType":"YulLiteral","src":"37720:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37705:3:88","nodeType":"YulIdentifier","src":"37705:3:88"},"nativeSrc":"37705:18:88","nodeType":"YulFunctionCall","src":"37705:18:88"},{"kind":"number","nativeSrc":"37725:2:88","nodeType":"YulLiteral","src":"37725:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"37698:6:88","nodeType":"YulIdentifier","src":"37698:6:88"},"nativeSrc":"37698:30:88","nodeType":"YulFunctionCall","src":"37698:30:88"},"nativeSrc":"37698:30:88","nodeType":"YulExpressionStatement","src":"37698:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37748:9:88","nodeType":"YulIdentifier","src":"37748:9:88"},{"kind":"number","nativeSrc":"37759:2:88","nodeType":"YulLiteral","src":"37759:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37744:3:88","nodeType":"YulIdentifier","src":"37744:3:88"},"nativeSrc":"37744:18:88","nodeType":"YulFunctionCall","src":"37744:18:88"},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"37764:34:88","nodeType":"YulLiteral","src":"37764:34:88","type":"","value":"Validation: jrRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"37737:6:88","nodeType":"YulIdentifier","src":"37737:6:88"},"nativeSrc":"37737:62:88","nodeType":"YulFunctionCall","src":"37737:62:88"},"nativeSrc":"37737:62:88","nodeType":"YulExpressionStatement","src":"37737:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37819:9:88","nodeType":"YulIdentifier","src":"37819:9:88"},{"kind":"number","nativeSrc":"37830:2:88","nodeType":"YulLiteral","src":"37830:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37815:3:88","nodeType":"YulIdentifier","src":"37815:3:88"},"nativeSrc":"37815:18:88","nodeType":"YulFunctionCall","src":"37815:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"37835:7:88","nodeType":"YulLiteral","src":"37835:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"37808:6:88","nodeType":"YulIdentifier","src":"37808:6:88"},"nativeSrc":"37808:35:88","nodeType":"YulFunctionCall","src":"37808:35:88"},"nativeSrc":"37808:35:88","nodeType":"YulExpressionStatement","src":"37808:35:88"},{"nativeSrc":"37852:27:88","nodeType":"YulAssignment","src":"37852:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37864:9:88","nodeType":"YulIdentifier","src":"37864:9:88"},{"kind":"number","nativeSrc":"37875:3:88","nodeType":"YulLiteral","src":"37875:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37860:3:88","nodeType":"YulIdentifier","src":"37860:3:88"},"nativeSrc":"37860:19:88","nodeType":"YulFunctionCall","src":"37860:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37852:4:88","nodeType":"YulIdentifier","src":"37852:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37484:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37635:9:88","nodeType":"YulTypedName","src":"37635:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37649:4:88","nodeType":"YulTypedName","src":"37649:4:88","type":""}],"src":"37484:401:88"},{"body":{"nativeSrc":"38064:223:88","nodeType":"YulBlock","src":"38064:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38081:9:88","nodeType":"YulIdentifier","src":"38081:9:88"},{"kind":"number","nativeSrc":"38092:2:88","nodeType":"YulLiteral","src":"38092:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38074:6:88","nodeType":"YulIdentifier","src":"38074:6:88"},"nativeSrc":"38074:21:88","nodeType":"YulFunctionCall","src":"38074:21:88"},"nativeSrc":"38074:21:88","nodeType":"YulExpressionStatement","src":"38074:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38115:9:88","nodeType":"YulIdentifier","src":"38115:9:88"},{"kind":"number","nativeSrc":"38126:2:88","nodeType":"YulLiteral","src":"38126:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38111:3:88","nodeType":"YulIdentifier","src":"38111:3:88"},"nativeSrc":"38111:18:88","nodeType":"YulFunctionCall","src":"38111:18:88"},{"kind":"number","nativeSrc":"38131:2:88","nodeType":"YulLiteral","src":"38131:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"38104:6:88","nodeType":"YulIdentifier","src":"38104:6:88"},"nativeSrc":"38104:30:88","nodeType":"YulFunctionCall","src":"38104:30:88"},"nativeSrc":"38104:30:88","nodeType":"YulExpressionStatement","src":"38104:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38154:9:88","nodeType":"YulIdentifier","src":"38154:9:88"},{"kind":"number","nativeSrc":"38165:2:88","nodeType":"YulLiteral","src":"38165:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38150:3:88","nodeType":"YulIdentifier","src":"38150:3:88"},"nativeSrc":"38150:18:88","nodeType":"YulFunctionCall","src":"38150:18:88"},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e","kind":"string","nativeSrc":"38170:34:88","nodeType":"YulLiteral","src":"38170:34:88","type":"","value":"Exposure and MaxPayout must be >"}],"functionName":{"name":"mstore","nativeSrc":"38143:6:88","nodeType":"YulIdentifier","src":"38143:6:88"},"nativeSrc":"38143:62:88","nodeType":"YulFunctionCall","src":"38143:62:88"},"nativeSrc":"38143:62:88","nodeType":"YulExpressionStatement","src":"38143:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38225:9:88","nodeType":"YulIdentifier","src":"38225:9:88"},{"kind":"number","nativeSrc":"38236:2:88","nodeType":"YulLiteral","src":"38236:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38221:3:88","nodeType":"YulIdentifier","src":"38221:3:88"},"nativeSrc":"38221:18:88","nodeType":"YulFunctionCall","src":"38221:18:88"},{"hexValue":"30","kind":"string","nativeSrc":"38241:3:88","nodeType":"YulLiteral","src":"38241:3:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38214:6:88","nodeType":"YulIdentifier","src":"38214:6:88"},"nativeSrc":"38214:31:88","nodeType":"YulFunctionCall","src":"38214:31:88"},"nativeSrc":"38214:31:88","nodeType":"YulExpressionStatement","src":"38214:31:88"},{"nativeSrc":"38254:27:88","nodeType":"YulAssignment","src":"38254:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38266:9:88","nodeType":"YulIdentifier","src":"38266:9:88"},{"kind":"number","nativeSrc":"38277:3:88","nodeType":"YulLiteral","src":"38277:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38262:3:88","nodeType":"YulIdentifier","src":"38262:3:88"},"nativeSrc":"38262:19:88","nodeType":"YulFunctionCall","src":"38262:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38254:4:88","nodeType":"YulIdentifier","src":"38254:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37890:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38041:9:88","nodeType":"YulTypedName","src":"38041:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38055:4:88","nodeType":"YulTypedName","src":"38055:4:88","type":""}],"src":"37890:397:88"},{"body":{"nativeSrc":"38429:164:88","nodeType":"YulBlock","src":"38429:164:88","statements":[{"nativeSrc":"38439:27:88","nodeType":"YulVariableDeclaration","src":"38439:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"38459:6:88","nodeType":"YulIdentifier","src":"38459:6:88"}],"functionName":{"name":"mload","nativeSrc":"38453:5:88","nodeType":"YulIdentifier","src":"38453:5:88"},"nativeSrc":"38453:13:88","nodeType":"YulFunctionCall","src":"38453:13:88"},"variables":[{"name":"length","nativeSrc":"38443:6:88","nodeType":"YulTypedName","src":"38443:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"38481:3:88","nodeType":"YulIdentifier","src":"38481:3:88"},{"arguments":[{"name":"value0","nativeSrc":"38490:6:88","nodeType":"YulIdentifier","src":"38490:6:88"},{"kind":"number","nativeSrc":"38498:4:88","nodeType":"YulLiteral","src":"38498:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38486:3:88","nodeType":"YulIdentifier","src":"38486:3:88"},"nativeSrc":"38486:17:88","nodeType":"YulFunctionCall","src":"38486:17:88"},{"name":"length","nativeSrc":"38505:6:88","nodeType":"YulIdentifier","src":"38505:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"38475:5:88","nodeType":"YulIdentifier","src":"38475:5:88"},"nativeSrc":"38475:37:88","nodeType":"YulFunctionCall","src":"38475:37:88"},"nativeSrc":"38475:37:88","nodeType":"YulExpressionStatement","src":"38475:37:88"},{"nativeSrc":"38521:26:88","nodeType":"YulVariableDeclaration","src":"38521:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"38535:3:88","nodeType":"YulIdentifier","src":"38535:3:88"},{"name":"length","nativeSrc":"38540:6:88","nodeType":"YulIdentifier","src":"38540:6:88"}],"functionName":{"name":"add","nativeSrc":"38531:3:88","nodeType":"YulIdentifier","src":"38531:3:88"},"nativeSrc":"38531:16:88","nodeType":"YulFunctionCall","src":"38531:16:88"},"variables":[{"name":"_1","nativeSrc":"38525:2:88","nodeType":"YulTypedName","src":"38525:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"38563:2:88","nodeType":"YulIdentifier","src":"38563:2:88"},{"kind":"number","nativeSrc":"38567:1:88","nodeType":"YulLiteral","src":"38567:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38556:6:88","nodeType":"YulIdentifier","src":"38556:6:88"},"nativeSrc":"38556:13:88","nodeType":"YulFunctionCall","src":"38556:13:88"},"nativeSrc":"38556:13:88","nodeType":"YulExpressionStatement","src":"38556:13:88"},{"nativeSrc":"38578:9:88","nodeType":"YulAssignment","src":"38578:9:88","value":{"name":"_1","nativeSrc":"38585:2:88","nodeType":"YulIdentifier","src":"38585:2:88"},"variableNames":[{"name":"end","nativeSrc":"38578:3:88","nodeType":"YulIdentifier","src":"38578:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"38292:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"38405:3:88","nodeType":"YulTypedName","src":"38405:3:88","type":""},{"name":"value0","nativeSrc":"38410:6:88","nodeType":"YulTypedName","src":"38410:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"38421:3:88","nodeType":"YulTypedName","src":"38421:3:88","type":""}],"src":"38292:301:88"},{"body":{"nativeSrc":"38772:179:88","nodeType":"YulBlock","src":"38772:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38789:9:88","nodeType":"YulIdentifier","src":"38789:9:88"},{"kind":"number","nativeSrc":"38800:2:88","nodeType":"YulLiteral","src":"38800:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38782:6:88","nodeType":"YulIdentifier","src":"38782:6:88"},"nativeSrc":"38782:21:88","nodeType":"YulFunctionCall","src":"38782:21:88"},"nativeSrc":"38782:21:88","nodeType":"YulExpressionStatement","src":"38782:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38823:9:88","nodeType":"YulIdentifier","src":"38823:9:88"},{"kind":"number","nativeSrc":"38834:2:88","nodeType":"YulLiteral","src":"38834:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38819:3:88","nodeType":"YulIdentifier","src":"38819:3:88"},"nativeSrc":"38819:18:88","nodeType":"YulFunctionCall","src":"38819:18:88"},{"kind":"number","nativeSrc":"38839:2:88","nodeType":"YulLiteral","src":"38839:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"38812:6:88","nodeType":"YulIdentifier","src":"38812:6:88"},"nativeSrc":"38812:30:88","nodeType":"YulFunctionCall","src":"38812:30:88"},"nativeSrc":"38812:30:88","nodeType":"YulExpressionStatement","src":"38812:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38862:9:88","nodeType":"YulIdentifier","src":"38862:9:88"},{"kind":"number","nativeSrc":"38873:2:88","nodeType":"YulLiteral","src":"38873:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38858:3:88","nodeType":"YulIdentifier","src":"38858:3:88"},"nativeSrc":"38858:18:88","nodeType":"YulFunctionCall","src":"38858:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"38878:31:88","nodeType":"YulLiteral","src":"38878:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"38851:6:88","nodeType":"YulIdentifier","src":"38851:6:88"},"nativeSrc":"38851:59:88","nodeType":"YulFunctionCall","src":"38851:59:88"},"nativeSrc":"38851:59:88","nodeType":"YulExpressionStatement","src":"38851:59:88"},{"nativeSrc":"38919:26:88","nodeType":"YulAssignment","src":"38919:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38931:9:88","nodeType":"YulIdentifier","src":"38931:9:88"},{"kind":"number","nativeSrc":"38942:2:88","nodeType":"YulLiteral","src":"38942:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38927:3:88","nodeType":"YulIdentifier","src":"38927:3:88"},"nativeSrc":"38927:18:88","nodeType":"YulFunctionCall","src":"38927:18:88"},"variableNames":[{"name":"tail","nativeSrc":"38919:4:88","nodeType":"YulIdentifier","src":"38919:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38598:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38749:9:88","nodeType":"YulTypedName","src":"38749:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38763:4:88","nodeType":"YulTypedName","src":"38763:4:88","type":""}],"src":"38598:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 608) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 512))\n        value3 := value_2\n        value4 := abi_decode_uint40(add(headStart, 544))\n        value5 := abi_decode_uint96(add(headStart, 576))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        value5 := abi_decode_uint96(add(headStart, 160))\n    }\n    function abi_encode_contract_IRiskModule(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IRiskModule(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 448)\n        abi_encode_struct_PolicyData(value0, headStart)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes(add(_1, 0x20), calldataload(_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 0x20))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := calldataload(add(headStart, 192))\n        validator_revert_address(value_5)\n        value6 := value_5\n    }\n    function abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23903t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 10)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_bool(value)\n        value1 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_encode_struct_PolicyData_calldata(value, pos)\n    {\n        let value_1 := 0\n        value_1 := calldataload(value)\n        mstore(pos, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 0x40))\n        mstore(add(pos, 0x40), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value, 0x60))\n        mstore(add(pos, 0x60), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value, 0x80))\n        mstore(add(pos, 0x80), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(value, 0xe0))\n        mstore(add(pos, 0xe0), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(value, 0x0100))\n        mstore(add(pos, 0x0100), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(value, 0x0120))\n        mstore(add(pos, 0x0120), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(value, 0x0140))\n        mstore(add(pos, 0x0140), value_11)\n        let memberValue0 := abi_decode_contract_IRiskModule(add(value, 0x0160))\n        abi_encode_contract_IRiskModule(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := abi_decode_uint40(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := abi_decode_uint40(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), value1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Can't set exposureLimit less tha\")\n        mstore(add(headStart, 96), \"n active exposure\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Increase requires LEVEL1_ROLE\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_bool__to_t_struct$_PolicyData_$14966_memory_ptr_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), iszero(iszero(value1)))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint40(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Premium must be less than payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Old policy is expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Policy replacement must be great\")\n        mstore(add(headStart, 96), \"er or equal than old policy\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint40(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Policy exceeds max duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"You must allow ENSURO to transfe\")\n        mstore(add(headStart, 96), \"r the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Payer must allow caller to trans\")\n        mstore(add(headStart, 96), \"fer the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"RiskModule: Payout is more than \")\n        mstore(add(headStart, 96), \"maximum per policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"RiskModule: Exposure limit excee\")\n        mstore(add(headStart, 96), \"ded\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 960)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n        mstore(add(headStart, 896), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 928), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_sub_t_uint8(x, y) -> diff\n    {\n        diff := sub(and(x, 0xff), and(y, 0xff))\n        if gt(diff, 0xff) { panic_error_0x11() }\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Expiration must be in the future\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Customer can't be zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 544)\n        abi_encode_struct_PolicyData(value0, headStart)\n        mstore(add(headStart, 448), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 480), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 512), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Validation: jrCollRatio must be \")\n        mstore(add(headStart, 96), \"<=1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Validation: collRatio must be <=\")\n        mstore(add(headStart, 96), \"1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: collRatio >= jrCollR\")\n        mstore(add(headStart, 96), \"atio\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Validation: moc must be [0.5, 4]\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: ensuroPpFee must be \")\n        mstore(add(headStart, 96), \"<= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: ensuroCocFee must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: srRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: jrRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Exposure and MaxPayout must be >\")\n        mstore(add(headStart, 96), \"0\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":2483},{"length":32,"start":2556},{"length":32,"start":3289},{"length":32,"start":3353},{"length":32,"start":3494}],"17733":[{"length":32,"start":729},{"length":32,"start":1763},{"length":32,"start":2005},{"length":32,"start":2218},{"length":32,"start":2752},{"length":32,"start":3030},{"length":32,"start":3662},{"length":32,"start":4073},{"length":32,"start":4323},{"length":32,"start":4463},{"length":32,"start":4803},{"length":32,"start":6327},{"length":32,"start":6631},{"length":32,"start":6792},{"length":32,"start":7045},{"length":32,"start":7249},{"length":32,"start":8082},{"length":32,"start":8239},{"length":32,"start":8418},{"length":32,"start":8881},{"length":32,"start":9098},{"length":32,"start":10242},{"length":32,"start":11643},{"length":32,"start":11800},{"length":32,"start":11966},{"length":32,"start":12395},{"length":32,"start":14278}],"20197":[{"length":32,"start":983},{"length":32,"start":12548}]},"linkReferences":{},"object":"6080604052600436106101c5575f3560e01c806373a952e8116100f2578063af0e7e0c11610092578063deaa59df11610062578063deaa59df14610577578063e5a6b10f14610596578063fbb81279146105aa578063ffa600e3146105dd575f5ffd5b8063af0e7e0c146104a8578063c1cca2b3146104db578063cfd4c606146104fa578063cff0ab961461050e575f5ffd5b80637ff8bf25116100cd5780637ff8bf251461044d5780638456cb591461046157806385272a6e146104755780638bac3a2414610489575f5ffd5b806373a952e8146103c957806378fab260146103fb5780637a702b3c1461042e575f5ffd5b80634d15eb03116101685780635c975abb116101385780635c975abb146103555780636a448ef11461036c5780636db5c8fd1461038b5780636f0dbe6f146103aa575f5ffd5b80634d15eb03146102cb5780634f1ef28614610311578063521eb2731461032457806352d1902d14610341575f5ffd5b80631d177dc4116101a35780631d177dc41461024b5780633659cfe6146102775780633f4ba83a14610298578063406f7f6f146102ac575f5ffd5b806301ffc9a7146101c957806306fdde03146101fd5780630bc872d91461021e575b5f5ffd5b3480156101d4575f5ffd5b506101e86101e3366004613f1b565b6105fc565b60405190151581526020015b60405180910390f35b348015610208575f5ffd5b50610211610627565b6040516101f49190613f42565b348015610229575f5ffd5b5061023d610238366004613fbd565b6106b7565b6040519081526020016101f4565b348015610256575f5ffd5b5061026a610265366004614033565b610877565b6040516101f49190614144565b348015610282575f5ffd5b50610296610291366004614153565b6109a9565b005b3480156102a3575f5ffd5b50610296610a8f565b3480156102b7575f5ffd5b5061023d6102c6366004614033565b610baa565b3480156102d6575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101f4565b61029661031f3660046141f9565b610ccf565b34801561032f575f5ffd5b5060fe546001600160a01b03166102f9565b34801561034c575f5ffd5b5061023d610d9a565b348015610360575f5ffd5b5060975460ff166101e8565b348015610377575f5ffd5b50610296610386366004614259565b610e4b565b348015610396575f5ffd5b5060fc54600160b01b900461ffff1661023d565b3480156103b5575f5ffd5b506102966103c4366004614270565b610ead565b3480156103d4575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102f9565b348015610406575f5ffd5b5061023d7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b348015610439575f5ffd5b506102966104483660046142ff565b610fc6565b348015610458575f5ffd5b5060fd5461023d565b34801561046c575f5ffd5b5061029661114c565b348015610480575f5ffd5b5061023d611253565b348015610494575f5ffd5b5061023d6104a336600461432a565b611275565b3480156104b3575f5ffd5b5061023d7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d07455581565b3480156104e6575f5ffd5b506102966104f536600461435c565b611292565b348015610505575f5ffd5b5061023d611797565b348015610519575f5ffd5b506105226117b5565b6040516101f491905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b348015610582575f5ffd5b50610296610591366004614153565b611894565b3480156105a1575f5ffd5b506102f96119e4565b3480156105b5575f5ffd5b5061023d7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b3480156105e8575f5ffd5b506102966105f7366004614396565b611a65565b5f61060682611bbc565b8061062157506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb8054610636906143ce565b80601f0160208091040260200160405190810160405280929190818152602001828054610662906143ce565b80156106ad5780601f10610684576101008083540402835291602001916106ad565b820191905f5260205f20905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b5f6106c0611bf1565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610792949392919061441b565b5f6040518083038186803b1580156107a8575f5ffd5b505afa1580156107ba573d5f5f3e3d5ffd5b50506040516331a9108f60e11b81528a3560048201525f92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169150636352211e90602401602060405180830381865afa158015610823573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108479190614400565b9050610869898989898961085b878e611c39565b8a6108646117b5565b611d5c565b519998505050505050505050565b61087f613ea3565b610887611bf1565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610904573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109289190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610959949392919061441b565b5f6040518083038186803b15801561096f575f5ffd5b505afa158015610981573d5f5f3e3d5ffd5b5050505061099d88888888610996898d611c39565b898961233a565b98975050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109fa5760405162461bcd60e51b81526004016109f190614445565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a425f516020614b825f395f51905f52546001600160a01b031690565b6001600160a01b031614610a685760405162461bcd60e51b81526004016109f190614491565b610a7181612359565b604080515f80825260208201909252610a8c91839190612476565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ba25f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3e9190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610b729594939291906144dd565b5f6040518083038186803b158015610b88575f5ffd5b505afa158015610b9a573d5f5f3e3d5ffd5b50505050610ba66125e0565b5050565b5f610bb3611bf1565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c549190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610c85949392919061441b565b5f6040518083038186803b158015610c9b575f5ffd5b505afa158015610cad573d5f5f3e3d5ffd5b50505050610cc288888888610996898d611c39565b5198975050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d175760405162461bcd60e51b81526004016109f190614445565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d5f5f516020614b825f395f51905f52546001600160a01b031690565b6001600160a01b031614610d855760405162461bcd60e51b81526004016109f190614491565b610d8e82612359565b610ba682826001612476565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e395760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016109f1565b505f516020614b825f395f51905f5290565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610e945760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610ea59190614524565b909155505050565b5f54610100900460ff1615808015610ecb57505f54600160ff909116105b80610ee45750303b158015610ee457505f5460ff166001145b610f475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f1565b5f805460ff191660011790558015610f68575f805461ff0019166101001790555b610f7788888888888888612632565b8015610fbc575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611043573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110679190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611098949392919061441b565b5f6040518083038186803b1580156110ae575f5ffd5b505afa1580156110c0573d5f5f3e3d5ffd5b505050506110cc611bf1565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c9061111a9086908690600401614603565b5f604051808303815f87803b158015611131575f5ffd5b505af1158015611143573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ed9190614400565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b815260040161121f949392919061441b565b5f6040518083038186803b158015611235575f5ffd5b505afa158015611247573d5f5f3e3d5ffd5b50505050610a8c61266f565b60fc545f90611270908290600160901b900463ffffffff166126ac565b905090565b5f61128a848484426112856117b5565b61273a565b949350505050565b5f516020614ba25f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113419190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016113759594939291906144dd565b5f6040518083038186803b15801561138b575f5ffd5b505afa15801561139d573d5f5f3e3d5ffd5b505f92506113a9915050565b8460098111156113bb576113bb614620565b036113e4576113c983612756565b60fc805461ffff191661ffff9290921691909117905561175a565b60018460098111156113f8576113f8614620565b0361142a5761140683612756565b60fc805461ffff92909216620100000263ffff00001990921691909117905561175a565b600284600981111561143e5761143e614620565b036114745761144c83612756565b60fc805461ffff929092166401000000000265ffff000000001990921691909117905561175a565b600384600981111561148857611488614620565b036114bf5761149683612756565b60fc805461ffff92909216600160301b0267ffff0000000000001990921691909117905561175a565b60048460098111156114d3576114d3614620565b0361150c576114e183612756565b60fc805461ffff92909216600160401b0269ffff00000000000000001990921691909117905561175a565b600584600981111561152057611520614620565b036115545761152e83612756565b60fc805461ffff92909216600160501b0261ffff60501b1990921691909117905561175a565b600684600981111561156857611568614620565b0361159c5761157683612756565b60fc805461ffff92909216600160601b0261ffff60601b1990921691909117905561175a565b60078460098111156115b0576115b0614620565b036115ea576115c060028461276f565b60fc805463ffffffff92909216600160701b0263ffffffff60701b1990921691909117905561175a565b60088460098111156115fe576115fe614620565b036117165760fd5483101561166f5760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016109f1565b611677611253565b8311158061169657506116965f516020614ba25f395f51905f526127ff565b6116e25760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016109f1565b6116ec5f8461276f565b60fc805463ffffffff92909216600160901b0263ffffffff60901b1990921691909117905561175a565b600984600981111561172a5761172a614620565b0361175a57611738836128f1565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b61179184600981111561176f5761176f614620565b61177a906008614634565b602d81111561178b5761178b614620565b84612957565b50505050565b60fc545f9061127090600290600160701b900463ffffffff166126ac565b6117ee6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b9004909116610120820152611270906129a8565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119359190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611966949392919061441b565b5f6040518083038186803b15801561197c575f5ffd5b505afa15801561198e573d5f5f3e3d5ffd5b5050506001600160a01b03831690506119ba57604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610ba690601290612957565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a41573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112709190614400565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b069190614400565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401611b37949392919061441b565b5f6040518083038186803b158015611b4d575f5ffd5b505afa158015611b5f573d5f5f3e3d5ffd5b50505050611b6b611bf1565b60405160016259ff1d60e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ffa600e39061111a9086908690600401614647565b5f6001600160e01b031982166301ffc9a760e01b148061062157506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff1615611c375760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109f1565b565b816001600160a01b0381163314801590611d4e5750817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cab573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ccf9190614400565b6001600160a01b031663dd62ed3e83336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611d28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d4c9190614666565b105b1561062157335b9392505050565b611d64613ea3565b5f198703611d8d57611d8a888787611d846101a08e016101808f0161467d565b8661273a565b96505b878710611ddc5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016109f1565b64ffffffffff4216611df66101c08b016101a08c0161467d565b64ffffffffff1611611e425760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016109f1565b611e546101c08a016101a08b0161467d565b64ffffffffff168564ffffffffff1610158015611e75575088602001358810155b8015611e85575088604001358710155b611ef75760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016109f1565b60fc54600160b01b900461ffff16610e10611f1a6101a08c016101808d0161467d565b611f249088614696565b611f2e91906146c7565b64ffffffffff1610611f825760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016109f1565b611f9060408a013588614524565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120109190614400565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561207e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a29190614666565b10156120c05760405162461bcd60e51b81526004016109f1906146f0565b6001600160a01b0384163314806121e057506120e060408a013588614524565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121609190614400565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156121b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121dd9190614666565b10155b6121fc5760405162461bcd60e51b81526004016109f19061473d565b612204611797565b8811156122235760405162461bcd60e51b81526004016109f19061478c565b6122453083898b8a8a8f610180016020810190612240919061467d565b612a6c565b90508860200135816020015161225b9190614524565b60fd5f82825461226b9190614634565b909155506122799050611253565b60fd54111561229a5760405162461bcd60e51b81526004016109f1906147de565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae906122ec908c90859089908990600401614821565b6020604051808303815f875af1158015612308573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232c9190614666565b815298975050505050505050565b612342613ea3565b61099d888888888888886123546117b5565b612bdc565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ba25f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124089190614400565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b815260040161243c9594939291906144dd565b5f6040518083038186803b158015612452575f5ffd5b505afa158015612464573d5f5f3e3d5ffd5b50505050612471836130f5565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124a957612471836131b3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612503575060408051601f3d908101601f1916820190925261250091810190614666565b60015b6125665760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109f1565b5f516020614b825f395f51905f5281146125d45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109f1565b5061247183838361324e565b6125e8613272565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff166126585760405162461bcd60e51b81526004016109f190614869565b6126606132bb565b611143878787878787876132f1565b612677611bf1565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126153390565b5f826126b66119e4565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f1573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061271591906148b4565b61271f91906148d4565b61272a90600a6149d0565b611d559063ffffffff84166149de565b5f61274882878787876134fb565b60e001519695505050505050565b5f61062161276a655af3107a4000846149f5565b6128f1565b5f611d558361277c6119e4565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127db91906148b4565b6127e591906148d4565b6127f090600a6149d0565b6127fa90846149f5565b6136ee565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561285c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128809190614400565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b81526004016128b2949392919061441b565b602060405180830381865afa1580156128cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190614a08565b5f61ffff8211156129535760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016109f1565b5090565b61295f613752565b81602d81111561297157612971614620565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6129e16040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e001604052806129f8845f01516137af565b8152602001612a0a84602001516137af565b8152602001612a1c84604001516137af565b8152602001612a2e84606001516137af565b8152602001612a4084608001516137af565b8152602001612a528460a001516137af565b8152602001612a648460c001516137af565b905292915050565b612a74613ea3565b84861115612acf5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016109f1565b612ad7613ea3565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f612b2189888888886134fb565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e080850191909152810151909150881015612bba5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016109f1565b60e0810151612bc99089614524565b6101008301525098975050505050505050565b612be4613ea3565b4260018901612bfd57612bfa8a8989848761273a565b98505b898910612c4c5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016109f1565b8064ffffffffff168764ffffffffff1611612ca95760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016109f1565b60fc54600160b01b900461ffff16610e10612cc4838a614696565b612cce91906146c7565b64ffffffffff1610612d225760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016109f1565b6001600160a01b038516612d785760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016109f1565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612df99190614400565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612e67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e8b9190614666565b1015612ea95760405162461bcd60e51b81526004016109f1906146f0565b6001600160a01b038616331480612fbc5750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f3c9190614400565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612f95573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fb99190614666565b10155b612fd85760405162461bcd60e51b81526004016109f19061473d565b612fe0611797565b8a1115612fff5760405162461bcd60e51b81526004016109f19061478c565b61300e30848b8d8c8c87612a6c565b9150816020015160fd5f8282546130259190614634565b909155506130339050611253565b60fd5411156130545760405162461bcd60e51b81526004016109f1906147de565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906130a69085908a908a908a90600401614a23565b6020604051808303815f875af11580156130c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e69190614666565b82525098975050505050505050565b6130fe816137c4565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613168573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061318c9190614400565b6001600160a01b031614610ba65760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b6132205760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109f1565b5f516020614b825f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b61325783613875565b5f825111806132635750805b156124715761179183836138b4565b60975460ff16611c375760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109f1565b5f54610100900460ff166132e15760405162461bcd60e51b81526004016109f190614869565b6132e96138d9565b611c376138ff565b5f54610100900460ff166133175760405162461bcd60e51b81526004016109f190614869565b60fb6133238882614ab0565b50604080516101408101825261271081525f602082015290810161334688612756565b61ffff16815260200161335887612756565b61ffff1681525f60208201819052604082015260600161337786612756565b61ffff16815260200161338b60028661276f565b63ffffffff1681526020016133a05f8561276f565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055611143613752565b61353b6040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516135539061354c90869061392d565b869061392d565b8152602086015161356590869061392d565b602082018190528151101561358f578051602082018051613587908390614524565b905250613596565b5f60208201525b60408601516135a690869061392d565b6040820152602081015181516135bc9190614634565b816040015111156135f157602081015181516135d89190614634565b816040018181516135e99190614524565b9052506135f8565b5f60408201525b6136356301e1338061360a8486614696565b64ffffffffff168860a0015161362091906149de565b61362a91906149f5565b60208301519061392d565b60608201526136776301e1338061364c8486614696565b64ffffffffff168860c0015161366291906149de565b61366c91906149f5565b60408301519061392d565b6080820181905260608201515f9161368e91614634565b90506136a787608001518261392d90919063ffffffff16565b606088015183516136b79161392d565b6136c19190614634565b60a08301819052825182916136d591614634565b6136df9190614634565b60e08301525095945050505050565b5f63ffffffff8211156129535760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016109f1565b60fd5461375d611253565b101561377c57604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b03166137a557604051634d1c286960e11b815260040160405180910390fd5b611c3760fc613963565b5f610621655af3107a400061ffff84166149de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561382a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061384e9190614400565b6001600160a01b031614610a8c5760405163d2b3d33f60e01b815260040160405180910390fd5b61387e816131b3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060611d558383604051806060016040528060278152602001614bc260279139613d60565b5f54610100900460ff16611c375760405162461bcd60e51b81526004016109f190614869565b5f54610100900460ff166139255760405162461bcd60e51b81526004016109f190614869565b611c37613dd4565b5f81156706f05b59d3b200001983900484111517613949575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156139cd5760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016109f1565b805461271064010000000090910461ffff16118015906139f957508054640100000000900461ffff1615155b613a4f5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016109f1565b805461ffff6201000082048116640100000000909204161015613ac05760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016109f1565b8054619c4061ffff90911611801590613ae25750805461138861ffff90911610155b613b2e5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016109f1565b8054612710600160301b90910461ffff161115613b995760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016109f1565b8054612710600160401b90910461ffff161115613c065760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016109f1565b8054612710600160601b90910461ffff161115613c735760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016109f1565b8054612710600160501b90910461ffff161115613ce05760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016109f1565b8054600160901b900463ffffffff1615801590613d0a57508054600160701b900463ffffffff1615155b610a8c5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016109f1565b60605f5f856001600160a01b031685604051613d7c9190614b6b565b5f60405180830381855af49150503d805f8114613db4576040519150601f19603f3d011682016040523d82523d5f602084013e613db9565b606091505b5091509150613dca86838387613e06565b9695505050505050565b5f54610100900460ff16613dfa5760405162461bcd60e51b81526004016109f190614869565b6097805460ff19169055565b60608315613e745782515f03613e6d576001600160a01b0385163b613e6d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f1565b508161128a565b61128a8383815115613e895781518083602001fd5b8060405162461bcd60e51b81526004016109f19190613f42565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613f2b575f5ffd5b81356001600160e01b031981168114611d55575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6101c08284031215613f88575f5ffd5b50919050565b803564ffffffffff81168114613fa2575f5ffd5b919050565b80356001600160601b0381168114613fa2575f5ffd5b5f5f5f5f5f5f6102608789031215613fd3575f5ffd5b613fdd8888613f77565b95506101c087013594506101e0870135935061020087013592506140046102208801613f8e565b91506140136102408801613fa7565b90509295509295509295565b6001600160a01b0381168114610a8c575f5ffd5b5f5f5f5f5f5f60c08789031215614048575f5ffd5b86359550602087013594506040870135935061406660608801613f8e565b925060808701356140768161401f565b915061401360a08801613fa7565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161410e6101608401826001600160a01b03169052565b5061018081015161412961018084018264ffffffffff169052565b506101a08101516124716101a084018264ffffffffff169052565b6101c081016106218284614084565b5f60208284031215614163575f5ffd5b8135611d558161401f565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff84111561419c5761419c61416e565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156141cb576141cb61416e565b6040528381529050808284018510156141e2575f5ffd5b838360208301375f60208583010152509392505050565b5f5f6040838503121561420a575f5ffd5b82356142158161401f565b9150602083013567ffffffffffffffff811115614230575f5ffd5b8301601f81018513614240575f5ffd5b61424f85823560208401614182565b9150509250929050565b5f60208284031215614269575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a031215614286575f5ffd5b873567ffffffffffffffff81111561429c575f5ffd5b8801601f81018a136142ac575f5ffd5b6142bb8a823560208401614182565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c08801356142ef8161401f565b8091505092959891949750929550565b5f5f6101e08385031215614311575f5ffd5b61431b8484613f77565b946101c0939093013593505050565b5f5f5f6060848603121561433c575f5ffd5b833592506020840135915061435360408501613f8e565b90509250925092565b5f5f6040838503121561436d575f5ffd5b8235600a811061437b575f5ffd5b946020939093013593505050565b8015158114610a8c575f5ffd5b5f5f6101e083850312156143a8575f5ffd5b6143b28484613f77565b91506101c08301356143c381614389565b809150509250929050565b600181811c908216806143e257607f821691505b602082108103613f8857634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614410575f5ffd5b8151611d558161401f565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561062157610621614510565b8035613fa28161401f565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e080820135908301526101008082013590830152610120808201359083015261014080820135908301526145ba6101608201614537565b6001600160a01b03166101608301526145d66101808201613f8e565b64ffffffffff166101808301526145f06101a08201613f8e565b64ffffffffff81166101a0840152505050565b6101e081016146128285614542565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561062157610621614510565b6101e081016146568285614542565b8215156101c08301529392505050565b5f60208284031215614676575f5ffd5b5051919050565b5f6020828403121561468d575f5ffd5b611d5582613f8e565b64ffffffffff828116828216039081111561062157610621614510565b634e487b7160e01b5f52601260045260245ffd5b5f64ffffffffff8316806146dd576146dd6146b3565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c081016148308287614542565b61483e6101c0830186614084565b6001600160a01b03939093166103808201526001600160601b03919091166103a09091015292915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156148c4575f5ffd5b815160ff81168114611d55575f5ffd5b60ff828116828216039081111561062157610621614510565b6001815b60018411156149285780850481111561490c5761490c614510565b600184161561491a57908102905b60019390931c9280026148f1565b935093915050565b5f8261493e57506001610621565b8161494a57505f610621565b8160018114614960576002811461496a57614986565b6001915050610621565b60ff84111561497b5761497b614510565b50506001821b610621565b5060208310610133831016604e8410600b84101617156149a9575081810a610621565b6149b55f1984846148ed565b805f19048211156149c8576149c8614510565b029392505050565b5f611d5560ff841683614930565b808202811582820484141761062157610621614510565b5f82614a0357614a036146b3565b500490565b5f60208284031215614a18575f5ffd5b8151611d5581614389565b6102208101614a328287614084565b6001600160a01b039485166101c0830152929093166101e08401526001600160601b031661020090920191909152919050565b601f82111561247157805f5260205f20601f840160051c81016020851015614a8a5750805b601f840160051c820191505b81811015614aa9575f8155600101614a96565b5050505050565b815167ffffffffffffffff811115614aca57614aca61416e565b614ade81614ad884546143ce565b84614a65565b6020601f821160018114614b10575f8315614af95750848201515b5f19600385901b1c1916600184901b178455614aa9565b5f84815260208120601f198516915b82811015614b3f5787850151825560209485019460019092019101614b1f565b5084821015614b5c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203532fe9ff2a9b7c7614dd2c199f65193213d207ba2ec2e0352e9e89d398790f564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x73A952E8 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xAF0E7E0C GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x577 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x5DD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xAF0E7E0C EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x4FA JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x50E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7FF8BF25 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x461 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x489 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x42E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 GT PUSH2 0x168 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x138 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x3AA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x521EB273 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x341 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1D177DC4 GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x1D177DC4 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x406F7F6F EQ PUSH2 0x2AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xBC872D9 EQ PUSH2 0x21E JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1B JUMP JUMPDEST PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x208 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x211 PUSH2 0x627 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x3F42 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FBD JUMP JUMPDEST PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x26A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x4033 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH2 0x4144 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x4153 JUMP JUMPDEST PUSH2 0x9A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0xA8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4033 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x296 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x41F9 JUMP JUMPDEST PUSH2 0xCCF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0xD9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x360 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x377 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x386 CALLDATASIZE PUSH1 0x4 PUSH2 0x4259 JUMP JUMPDEST PUSH2 0xE4B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x396 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x23D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4270 JUMP JUMPDEST PUSH2 0xEAD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x448 CALLDATASIZE PUSH1 0x4 PUSH2 0x42FF JUMP JUMPDEST PUSH2 0xFC6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x23D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x114C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x1253 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x494 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x4A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x432A JUMP JUMPDEST PUSH2 0x1275 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x435C JUMP JUMPDEST PUSH2 0x1292 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x505 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH2 0x1797 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x519 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x522 PUSH2 0x17B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F4 SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x582 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x4153 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2F9 PUSH2 0x19E4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x23D PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x296 PUSH2 0x5F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4396 JUMP JUMPDEST PUSH2 0x1A65 JUMP JUMPDEST PUSH0 PUSH2 0x606 DUP3 PUSH2 0x1BBC JUMP JUMPDEST DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x636 SWAP1 PUSH2 0x43CE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x662 SWAP1 PUSH2 0x43CE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6AD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x684 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6AD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x690 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x761 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x792 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7BA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE DUP11 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x823 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST SWAP1 POP PUSH2 0x869 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x85B DUP8 DUP15 PUSH2 0x1C39 JUMP JUMPDEST DUP11 PUSH2 0x864 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x1D5C JUMP JUMPDEST MLOAD SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x87F PUSH2 0x3EA3 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x904 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x928 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x959 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x981 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x99D DUP9 DUP9 DUP9 DUP9 PUSH2 0x996 DUP10 DUP14 PUSH2 0x1C39 JUMP JUMPDEST DUP10 DUP10 PUSH2 0x233A JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x9FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4445 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA42 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0xA71 DUP2 PUSH2 0x2359 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xA8C SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2476 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3E SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB72 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xBA6 PUSH2 0x25E0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBB3 PUSH2 0x1BF1 JUMP JUMPDEST PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC30 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC54 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC85 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC9B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xCC2 DUP9 DUP9 DUP9 DUP9 PUSH2 0x996 DUP10 DUP14 PUSH2 0x1C39 JUMP JUMPDEST MLOAD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xD17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4445 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD5F PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0xD8E DUP3 PUSH2 0x2359 JUMP JUMPDEST PUSH2 0xBA6 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2476 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xE39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xEA5 SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xECB JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xEE4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE4 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xF68 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xF77 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2632 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFBC JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1043 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1067 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1098 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10AE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x10CC PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x111A SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4603 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1131 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1143 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11C9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11ED SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121F SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1235 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1247 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA8C PUSH2 0x266F JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1270 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x26AC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x128A DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1285 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x273A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1341 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1375 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x139D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x13A9 SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13BB JUMPI PUSH2 0x13BB PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x13E4 JUMPI PUSH2 0x13C9 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13F8 JUMPI PUSH2 0x13F8 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x142A JUMPI PUSH2 0x1406 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x143E JUMPI PUSH2 0x143E PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1474 JUMPI PUSH2 0x144C DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1488 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x14BF JUMPI PUSH2 0x1496 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14D3 JUMPI PUSH2 0x14D3 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x150C JUMPI PUSH2 0x14E1 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1554 JUMPI PUSH2 0x152E DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1568 JUMPI PUSH2 0x1568 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x159C JUMPI PUSH2 0x1576 DUP4 PUSH2 0x2756 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15B0 JUMPI PUSH2 0x15B0 PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x15EA JUMPI PUSH2 0x15C0 PUSH1 0x2 DUP5 PUSH2 0x276F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15FE JUMPI PUSH2 0x15FE PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x1716 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x166F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1677 PUSH2 0x1253 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1696 JUMPI POP PUSH2 0x1696 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x27FF JUMP JUMPDEST PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x16EC PUSH0 DUP5 PUSH2 0x276F JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x175A JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x172A JUMPI PUSH2 0x172A PUSH2 0x4620 JUMP JUMPDEST SUB PUSH2 0x175A JUMPI PUSH2 0x1738 DUP4 PUSH2 0x28F1 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1791 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x176F JUMPI PUSH2 0x176F PUSH2 0x4620 JUMP JUMPDEST PUSH2 0x177A SWAP1 PUSH1 0x8 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x178B JUMPI PUSH2 0x178B PUSH2 0x4620 JUMP JUMPDEST DUP5 PUSH2 0x2957 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1270 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x17EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1270 SWAP1 PUSH2 0x29A8 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1911 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1935 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1966 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x197C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xBA6 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x2957 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A41 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1270 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AE2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B06 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B37 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B6B PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x59FF1D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xFFA600E3 SWAP1 PUSH2 0x111A SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4647 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x621 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ DUP1 ISZERO SWAP1 PUSH2 0x1D4E JUMPI POP DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CAB JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CCF SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D28 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D4C SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x621 JUMPI CALLER JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D64 PUSH2 0x3EA3 JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x1D8D JUMPI PUSH2 0x1D8A DUP9 DUP8 DUP8 PUSH2 0x1D84 PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x467D JUMP JUMPDEST DUP7 PUSH2 0x273A JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x1DDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x1DF6 PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x467D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x1E42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1E54 PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x467D JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1E85 JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x1EF7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x1F1A PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x467D JUMP JUMPDEST PUSH2 0x1F24 SWAP1 DUP9 PUSH2 0x4696 JUMP JUMPDEST PUSH2 0x1F2E SWAP2 SWAP1 PUSH2 0x46C7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x1F82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x1F90 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4524 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FEC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2010 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x207E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A2 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO PUSH2 0x20C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x21E0 JUMPI POP PUSH2 0x20E0 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x4524 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2160 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21B9 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21DD SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x21FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x2204 PUSH2 0x1797 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x2223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x478C JUMP JUMPDEST PUSH2 0x2245 ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2240 SWAP2 SWAP1 PUSH2 0x467D JUMP JUMPDEST PUSH2 0x2A6C JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x225B SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x226B SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2279 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x229A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x47DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x22EC SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2308 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x232C SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2342 PUSH2 0x3EA3 JUMP JUMPDEST PUSH2 0x99D DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2354 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x2BDC JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4BA2 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23E4 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2408 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x243C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44DD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2452 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2464 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2471 DUP4 PUSH2 0x30F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x2471 DUP4 PUSH2 0x31B3 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2503 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2500 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4666 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x25D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP PUSH2 0x2471 DUP4 DUP4 DUP4 PUSH2 0x324E JUMP JUMPDEST PUSH2 0x25E8 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x2660 PUSH2 0x32BB JUMP JUMPDEST PUSH2 0x1143 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x32F1 JUMP JUMPDEST PUSH2 0x2677 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2615 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x26B6 PUSH2 0x19E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26F1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2715 SWAP2 SWAP1 PUSH2 0x48B4 JUMP JUMPDEST PUSH2 0x271F SWAP2 SWAP1 PUSH2 0x48D4 JUMP JUMPDEST PUSH2 0x272A SWAP1 PUSH1 0xA PUSH2 0x49D0 JUMP JUMPDEST PUSH2 0x1D55 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x49DE JUMP JUMPDEST PUSH0 PUSH2 0x2748 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x34FB JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH2 0x276A PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x49F5 JUMP JUMPDEST PUSH2 0x28F1 JUMP JUMPDEST PUSH0 PUSH2 0x1D55 DUP4 PUSH2 0x277C PUSH2 0x19E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27B7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27DB SWAP2 SWAP1 PUSH2 0x48B4 JUMP JUMPDEST PUSH2 0x27E5 SWAP2 SWAP1 PUSH2 0x48D4 JUMP JUMPDEST PUSH2 0x27F0 SWAP1 PUSH1 0xA PUSH2 0x49D0 JUMP JUMPDEST PUSH2 0x27FA SWAP1 DUP5 PUSH2 0x49F5 JUMP JUMPDEST PUSH2 0x36EE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x285C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2880 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x441B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x621 SWAP2 SWAP1 PUSH2 0x4A08 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x295F PUSH2 0x3752 JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2971 PUSH2 0x4620 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x29E1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x29F8 DUP5 PUSH0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A0A DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A1C DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A2E DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A40 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A52 DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2A64 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x37AF JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A74 PUSH2 0x3EA3 JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x2ACF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x2AD7 PUSH2 0x3EA3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x2B21 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x34FB JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x2BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x2BC9 SWAP1 DUP10 PUSH2 0x4524 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2BE4 PUSH2 0x3EA3 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2BFD JUMPI PUSH2 0x2BFA DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x273A JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2C4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2CA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2CC4 DUP4 DUP11 PUSH2 0x4696 JUMP JUMPDEST PUSH2 0x2CCE SWAP2 SWAP1 PUSH2 0x46C7 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2D22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2D78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DD5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DF9 SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E67 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E8B SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO PUSH2 0x2EA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x46F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x2FBC JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F18 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F3C SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F95 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FB9 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x2FD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x2FE0 PUSH2 0x1797 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x2FFF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x478C JUMP JUMPDEST PUSH2 0x300E ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x2A6C JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x3025 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3033 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3054 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x47DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x30A6 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A23 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C2 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30E6 SWAP2 SWAP1 PUSH2 0x4666 JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x30FE DUP2 PUSH2 0x37C4 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3168 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x318C SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBA6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3220 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4B82 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3257 DUP4 PUSH2 0x3875 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x3263 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x2471 JUMPI PUSH2 0x1791 DUP4 DUP4 PUSH2 0x38B4 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x32E9 PUSH2 0x38D9 JUMP JUMPDEST PUSH2 0x1C37 PUSH2 0x38FF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x3323 DUP9 DUP3 PUSH2 0x4AB0 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x3346 DUP9 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3358 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3377 DUP7 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x338B PUSH1 0x2 DUP7 PUSH2 0x276F JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x33A0 PUSH0 DUP6 PUSH2 0x276F JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x1143 PUSH2 0x3752 JUMP JUMPDEST PUSH2 0x353B PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x3553 SWAP1 PUSH2 0x354C SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3565 SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x358F JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3587 SWAP1 DUP4 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3596 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x35A6 SWAP1 DUP7 SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x35BC SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x35F1 JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x35D8 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x35E9 SWAP2 SWAP1 PUSH2 0x4524 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x35F8 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3635 PUSH4 0x1E13380 PUSH2 0x360A DUP5 DUP7 PUSH2 0x4696 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x3620 SWAP2 SWAP1 PUSH2 0x49DE JUMP JUMPDEST PUSH2 0x362A SWAP2 SWAP1 PUSH2 0x49F5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3677 PUSH4 0x1E13380 PUSH2 0x364C DUP5 DUP7 PUSH2 0x4696 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x3662 SWAP2 SWAP1 PUSH2 0x49DE JUMP JUMPDEST PUSH2 0x366C SWAP2 SWAP1 PUSH2 0x49F5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x392D JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x368E SWAP2 PUSH2 0x4634 JUMP JUMPDEST SWAP1 POP PUSH2 0x36A7 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x392D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x36B7 SWAP2 PUSH2 0x392D JUMP JUMPDEST PUSH2 0x36C1 SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x36D5 SWAP2 PUSH2 0x4634 JUMP JUMPDEST PUSH2 0x36DF SWAP2 SWAP1 PUSH2 0x4634 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x2953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x375D PUSH2 0x1253 JUMP JUMPDEST LT ISZERO PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x37A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C37 PUSH1 0xFC PUSH2 0x3963 JUMP JUMPDEST PUSH0 PUSH2 0x621 PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x49DE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x382A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x384E SWAP2 SWAP1 PUSH2 0x4400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA8C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x387E DUP2 PUSH2 0x31B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D55 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4BC2 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3D60 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1C37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3925 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH2 0x1C37 PUSH2 0x3DD4 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3949 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x39CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x39F9 JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x3A4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x3AC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x3AE2 JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x3B2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3CE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3D0A JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0xA8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3D7C SWAP2 SWAP1 PUSH2 0x4B6B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3DB4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3DB9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3DCA DUP7 DUP4 DUP4 DUP8 PUSH2 0x3E06 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3DFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP1 PUSH2 0x4869 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3E74 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3E6D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3E6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F1 JUMP JUMPDEST POP DUP2 PUSH2 0x128A JUMP JUMPDEST PUSH2 0x128A DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3E89 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F1 SWAP2 SWAP1 PUSH2 0x3F42 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F2B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1D55 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3FA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3FA2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3FD3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3FDD DUP9 DUP9 PUSH2 0x3F77 JUMP JUMPDEST SWAP6 POP PUSH2 0x1C0 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH2 0x1E0 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH2 0x4004 PUSH2 0x220 DUP9 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP2 POP PUSH2 0x4013 PUSH2 0x240 DUP9 ADD PUSH2 0x3FA7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA8C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4048 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x4066 PUSH1 0x60 DUP9 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH2 0x4076 DUP2 PUSH2 0x401F JUMP JUMPDEST SWAP2 POP PUSH2 0x4013 PUSH1 0xA0 DUP9 ADD PUSH2 0x3FA7 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x410E PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x4129 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x2471 PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x1C0 DUP2 ADD PUSH2 0x621 DUP3 DUP5 PUSH2 0x4084 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4163 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D55 DUP2 PUSH2 0x401F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x419C JUMPI PUSH2 0x419C PUSH2 0x416E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x41CB JUMPI PUSH2 0x41CB PUSH2 0x416E JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x41E2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x420A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4215 DUP2 PUSH2 0x401F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4230 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x4240 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x424F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4182 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4269 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4286 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x429C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x42AC JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x42BB DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x4182 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x42EF DUP2 PUSH2 0x401F JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4311 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x431B DUP5 DUP5 PUSH2 0x3F77 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x433C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4353 PUSH1 0x40 DUP6 ADD PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x436D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x437B JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA8C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43A8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x43B2 DUP5 DUP5 PUSH2 0x3F77 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD PUSH2 0x43C3 DUP2 PUSH2 0x4389 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x43E2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3F88 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4410 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D55 DUP2 PUSH2 0x401F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x401F JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x45BA PUSH2 0x160 DUP3 ADD PUSH2 0x4537 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x45D6 PUSH2 0x180 DUP3 ADD PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x45F0 PUSH2 0x1A0 DUP3 ADD PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4612 DUP3 DUP6 PUSH2 0x4542 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4656 DUP3 DUP6 PUSH2 0x4542 JUMP JUMPDEST DUP3 ISZERO ISZERO PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4676 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x468D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1D55 DUP3 PUSH2 0x3F8E JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x46DD JUMPI PUSH2 0x46DD PUSH2 0x46B3 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4830 DUP3 DUP8 PUSH2 0x4542 JUMP JUMPDEST PUSH2 0x483E PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x4084 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D55 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4928 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x490C JUMPI PUSH2 0x490C PUSH2 0x4510 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x491A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x48F1 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x493E JUMPI POP PUSH1 0x1 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH2 0x494A JUMPI POP PUSH0 PUSH2 0x621 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x4960 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x496A JUMPI PUSH2 0x4986 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x621 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x497B JUMPI PUSH2 0x497B PUSH2 0x4510 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x621 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x49A9 JUMPI POP DUP2 DUP2 EXP PUSH2 0x621 JUMP JUMPDEST PUSH2 0x49B5 PUSH0 NOT DUP5 DUP5 PUSH2 0x48ED JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x49C8 JUMPI PUSH2 0x49C8 PUSH2 0x4510 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D55 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x4930 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x621 JUMPI PUSH2 0x621 PUSH2 0x4510 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4A03 JUMPI PUSH2 0x4A03 PUSH2 0x46B3 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A18 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D55 DUP2 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x4A32 DUP3 DUP8 PUSH2 0x4084 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2471 JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4A8A JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4AA9 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4A96 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4ACA JUMPI PUSH2 0x4ACA PUSH2 0x416E JUMP JUMPDEST PUSH2 0x4ADE DUP2 PUSH2 0x4AD8 DUP5 SLOAD PUSH2 0x43CE JUMP JUMPDEST DUP5 PUSH2 0x4A65 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4B10 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x4AF9 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x4AA9 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4B3F JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4B1F JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4B5C JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203532FE SWAP16 CALLCODE 0xA9 0xB7 0xC7 PUSH2 0x4DD2 0xC1 SWAP10 0xF6 MLOAD SWAP4 0x21 RETURNDATASIZE KECCAK256 PUSH28 0xA2EC2E0352E9E89D398790F564736F6C634300081C00330000000000 ","sourceMap":"577:7355:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:193:60;;;;;;;;;;-1:-1:-1;5376:193:60;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5376:193:60;;;;;;;;6900:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4780:547:64:-;;;;;;;;;;-1:-1:-1;4780:547:64;;;;;:::i;:::-;;:::i;:::-;;;2338:25:88;;;2326:2;2311:18;4780:547:64;2192:177:88;3718:386:64;;;;;;;;;;-1:-1:-1;3718:386:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3408:195:7:-;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;3916:102:57;;;;;;;;;;;;;:::i;2627:354:64:-;;;;;;;;;;-1:-1:-1;2627:354:64;;;;;:::i;:::-;;:::i;4022:94:57:-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;5222:32:88;;;5204:51;;5192:2;5177:18;4022:94:57;5037:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;8309:82:60:-;;;;;;;;;;-1:-1:-1;8379:7:60;;-1:-1:-1;;;;;8379:7:60;8309:82;;3027:131:7;;;;;;;;;;;;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;16309:342:60;;;;;;;;;;-1:-1:-1;16309:342:60;;;;;:::i;:::-;;:::i;8104:99::-;;;;;;;;;;-1:-1:-1;8179:7:60;:19;-1:-1:-1;;;8179:19:60;;;;8104:99;;1635:335:64;;;;;;;;;;-1:-1:-1;1635:335:64;;;;;:::i;:::-;;:::i;16655:111:60:-;;;;;;;;;;-1:-1:-1;16745:16:60;16655:111;;689:66:64;;;;;;;;;;;;729:26;689:66;;6707:194;;;;;;;;;;-1:-1:-1;6707:194:64;;;;;:::i;:::-;;:::i;8207:98:60:-;;;;;;;;;;-1:-1:-1;8285:15:60;;8207:98;;3828:84:57;;;;;;;;;;;;;:::i;7982:118:60:-;;;;;;;;;;;;;:::i;10804:235::-;;;;;;;;;;-1:-1:-1;10804:235:60;;;;;:::i;:::-;;:::i;759:66:64:-;;;;;;;;;;;;799:26;759:66;;8395:1423:60;;;;;;;;;;-1:-1:-1;8395:1423:60;;;;;:::i;:::-;;:::i;7850:128::-;;;;;;;;;;;;;:::i;9822:115::-;;;;;;;;;;;;;:::i;:::-;;;;;;10088:4:88;10130:3;10119:9;10115:19;10107:27;;10167:6;10161:13;10150:9;10143:32;10231:4;10223:6;10219:17;10213:24;10206:4;10195:9;10191:20;10184:54;10294:4;10286:6;10282:17;10276:24;10269:4;10258:9;10254:20;10247:54;10357:4;10349:6;10345:17;10339:24;10332:4;10321:9;10317:20;10310:54;10420:4;10412:6;10408:17;10402:24;10395:4;10384:9;10380:20;10373:54;10483:4;10475:6;10471:17;10465:24;10458:4;10447:9;10443:20;10436:54;10546:4;10538:6;10534:17;10528:24;10521:4;10510:9;10506:20;10499:54;9946:613;;;;;10529:271:60;;;;;;;;;;-1:-1:-1;10529:271:60;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;623:62:64:-;;;;;;;;;;;;661:24;623:62;;7430:221;;;;;;;;;;-1:-1:-1;7430:221:64;;;;;:::i;:::-;;:::i;5376:193:60:-;5461:4;5480:36;5504:11;5480:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;5520:44:60;;-1:-1:-1;;;5520:44:60;5480:84;5473:91;5376:193;-1:-1:-1;;5376:193:60:o;6900:84::-;6946:13;6974:5;6967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:84;:::o;4780:547:64:-;5023:7;1503:19:8;:17;:19::i;:::-;799:26:64::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5059:51:64::2;::::0;-1:-1:-1;;;5059:51:64;;5097:12;::::2;5059:51;::::0;::::2;2338:25:88::0;5038:18:64::2;::::0;-1:-1:-1;5075:11:64::2;-1:-1:-1::0;;;;;5059:37:64::2;::::0;-1:-1:-1;5059:37:64::2;::::0;2311:18:88;;5059:51:64::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5038:72;;5129:190;5153:9;5172:6;5188:7;5205:8;5223:10;5243:30;5253:10;5265:7;5243:9;:30::i;:::-;5283:10;5303:8;:6;:8::i;:::-;5129:14;:190::i;:::-;:193:::0;;4780:547;-1:-1:-1;;;;;;;;;4780:547:64:o;3718:386::-;3941:38;;:::i;:::-;1503:19:8;:17;:19::i;:::-;661:24:64::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3994:105:64::2;4005:6;4013:7;4022:8;4032:10;4044:30;4054:10;4066:7;4044:9;:30::i;:::-;4076:10;4088;3994;:105::i;:::-;3987:112:::0;3718:386;-1:-1:-1;;;;;;;;3718:386:64:o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;2627:354:64:-;2846:7;1503:19:8;:17;:19::i;:::-;661:24:64::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:105:64::2;2879:6;2887:7;2896:8;2906:10;2918:30;2928:10;2940:7;2918:9;:30::i;2868:105::-;:108:::0;;2627:354;-1:-1:-1;;;;;;;;2627:354:64:o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;14236:2:88;2174:92:7;;;14218:21:88;14275:2;14255:18;;;14248:30;14314:34;14294:18;;;14287:62;14385:26;14365:18;;;14358:54;14429:19;;2174:92:7;14034:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;16309:342:60:-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;16640:6:60::1;16621:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16309:342:60:o;1635:335:64:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;14926:2:88;3325:201:6;;;14908:21:88;14965:2;14945:18;;;14938:30;15004:34;14984:18;;;14977:62;-1:-1:-1;;;15055:18:88;;;15048:44;15109:19;;3325:201:6;14724:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;1861:104:64::1;1879:5;1886:10;1898:12;1912:6;1920:19;1941:14;1957:7;1861:17;:104::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;15291:36:88;;3721:14:6;;15279:2:88;15264:18;3721:14:6;;;;;;;3647:99;3269:483;1635:335:64;;;;;;;:::o;6707:194::-;729:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;6855:41:64::2;::::0;-1:-1:-1;;;6855:41:64;;-1:-1:-1;;;;;6855:11:64::2;:25;::::0;::::2;::::0;:41:::2;::::0;6881:6;;6889;;6855:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:194:::0;;;:::o;3828:84:57:-;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;7982:118:60:-:0;8073:7;:21;8037:7;;8059:36;;8037:7;;-1:-1:-1;;;8073:21:60;;;;8059:10;:36::i;:::-;8052:43;;7982:118;:::o;10804:235::-;10929:7;10951:83;10970:6;10978:8;10988:10;11007:15;11025:8;:6;:8::i;:::-;10951:18;:83::i;:::-;10944:90;10804:235;-1:-1:-1;;;;10804:235:60:o;8395:1423::-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8529:13:60::1;::::0;-1:-1:-1;8520:22:60::1;::::0;-1:-1:-1;;8520:22:60;::::1;:5;:22;;;;;;;;:::i;:::-;::::0;8516:1146:::1;;8566:17;8574:8;8566:7;:17::i;:::-;8552:7;:31:::0;;-1:-1:-1;;8552:31:60::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8516:1146:::1;;;8609:21;8600:5;:30;;;;;;;;:::i;:::-;::::0;8596:1066:::1;;8662:17;8670:8;8662:7;:17::i;:::-;8640:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8640:39:60;;::::1;::::0;;;::::1;::::0;;8596:1066:::1;;;8705:19;8696:5;:28;;;;;;;;:::i;:::-;::::0;8692:970:::1;;8754:17;8762:8;8754:7;:17::i;:::-;8734:7;:37:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8734:37:60;;::::1;::::0;;;::::1;::::0;;8692:970:::1;;;8797:21;8788:5;:30;;;;;;;;:::i;:::-;::::0;8784:878:::1;;8850:17;8858:8;8850:7;:17::i;:::-;8828:7;:39:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8828:39:60::1;-1:-1:-1::0;;8828:39:60;;::::1;::::0;;;::::1;::::0;;8784:878:::1;;;8893:22;8884:5;:31;;;;;;;;:::i;:::-;::::0;8880:782:::1;;8948:17;8956:8;8948:7;:17::i;:::-;8925:7;:40:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8925:40:60::1;-1:-1:-1::0;;8925:40:60;;::::1;::::0;;;::::1;::::0;;8880:782:::1;;;8991:15;8982:5;:24;;;;;;;;:::i;:::-;::::0;8978:684:::1;;9032:17;9040:8;9032:7;:17::i;:::-;9016:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9016:33:60::1;-1:-1:-1::0;;;;9016:33:60;;::::1;::::0;;;::::1;::::0;;8978:684:::1;;;9075:15;9066:5;:24;;;;;;;;:::i;:::-;::::0;9062:600:::1;;9116:17;9124:8;9116:7;:17::i;:::-;9100:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9100:33:60::1;-1:-1:-1::0;;;;9100:33:60;;::::1;::::0;;;::::1;::::0;;9062:600:::1;;;9159:28;9150:5;:37;;;;;;;;:::i;:::-;::::0;9146:516:::1;;9226:23;9237:1;9240:8;9226:10;:23::i;:::-;9197:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9197:52:60::1;-1:-1:-1::0;;;;9197:52:60;;::::1;::::0;;;::::1;::::0;;9146:516:::1;;;9275:23;9266:5;:32;;;;;;;;:::i;:::-;::::0;9262:400:::1;;9328:15;;9316:8;:27;;9308:89;;;::::0;-1:-1:-1;;;9308:89:60;;17914:2:88;9308:89:60::1;::::0;::::1;17896:21:88::0;17953:2;17933:18;;;17926:30;17992:34;17972:18;;;17965:62;-1:-1:-1;;;18043:18:88;;;18036:47;18100:19;;9308:89:60::1;17712:413:88::0;9308:89:60::1;9425:15;:13;:15::i;:::-;9413:8;:27;;:55;;;;9444:24;-1:-1:-1::0;;;;;;;;;;;9444:11:60::1;:24::i;:::-;9405:97;;;::::0;-1:-1:-1;;;9405:97:60;;18332:2:88;9405:97:60::1;::::0;::::1;18314:21:88::0;18371:2;18351:18;;;18344:30;18410:31;18390:18;;;18383:59;18459:18;;9405:97:60::1;18130:353:88::0;9405:97:60::1;9534:23;9545:1;9548:8;9534:10;:23::i;:::-;9510:7;:47:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9510:47:60::1;-1:-1:-1::0;;;;9510:47:60;;::::1;::::0;;;::::1;::::0;;9262:400:::1;;;9583:21;9574:5;:30;;;;;;;;:::i;:::-;::::0;9570:92:::1;;9636:19;:8;:17;:19::i;:::-;9614:7;:41:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9614:41:60::1;-1:-1:-1::0;;;;9614:41:60;;::::1;::::0;;;::::1;::::0;;9570:92:::1;9667:146;9784:5;9776:14;;;;;;;;:::i;:::-;9725:65;::::0;9733:39:::1;9725:65;:::i;:::-;9692:99;;;;;;;;:::i;:::-;9799:8;9667:17;:146::i;:::-;8395:1423:::0;;;;:::o;7850:128::-;7946:7;:26;7910:7;;7932:41;;7943:1;;-1:-1:-1;;;7946:26:60;;;;7932:10;:41::i;9822:115::-;9878:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9878:17:60;9910:22;;;;;;;;9924:7;9910:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;:13;:22::i;10529:271::-;1411:29;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;10620:21:60;::::1;::::0;-1:-1:-1;10616:63:60::1;;10658:14;;-1:-1:-1::0;;;10658:14:60::1;;;;;;;;;;;10616:63;10684:7;:17:::0;;-1:-1:-1;;;;;;10684:17:60::1;-1:-1:-1::0;;;;;10684:17:60;::::1;::::0;;::::1;::::0;;;10707:88:::1;::::0;10725:42:::1;::::0;10707:17:::1;:88::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7430:221:64:-;729:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:19:8::1;:17;:19::i;:::-;7590:56:64::2;::::0;-1:-1:-1;;;;;;7590:56:64;;-1:-1:-1;;;;;7590:11:64::2;:35;::::0;::::2;::::0;:56:::2;::::0;7626:6;;7634:11;;7590:56:::2;;;:::i;3618:206:57:-:0;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;2031:106:8:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;19455:2:88;2092:38:8;;;19437:21:88;19494:2;19474:18;;;19467:30;-1:-1:-1;;;19513:18:88;;;19506:46;19569:18;;2092:38:8;19253:340:88;2092:38:8;2031:106::o;5331:929:64:-;5439:10;-1:-1:-1;;;;;5459:21:64;;965:10:14;5459:21:64;;;;:88;;;5540:7;5484:11;-1:-1:-1;;;;;5484:20:64;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5484:32:64;;5517:5;965:10:14;5484:53:64;;-1:-1:-1;;;;;;5484:53:64;;;;;;;-1:-1:-1;;;;;19790:32:88;;;5484:53:64;;;19772:51:88;19859:32;;19839:18;;;19832:60;19745:18;;5484:53:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;5459:88;5455:782;;;965:10:14;6225:12:64;6217:20;5331:929;-1:-1:-1;;;5331:929:64:o;14606:1699:60:-;14857:31;;:::i;:::-;-1:-1:-1;;14900:7:60;:28;14896:133;;14948:74;14967:6;14975:8;14985:10;14997:15;;;;;;;;:::i;:::-;15014:7;14948:18;:74::i;:::-;14938:84;;14896:133;15052:6;15042:7;:16;15034:61;;;;-1:-1:-1;;;15034:61:60;;20483:2:88;15034:61:60;;;20465:21:88;;;20502:18;;;20495:30;20561:34;20541:18;;;20534:62;20613:18;;15034:61:60;20281:356:88;15034:61:60;15109:46;15139:15;15109:46;:20;;;;;;;;:::i;:::-;:46;;;15101:80;;;;-1:-1:-1;;;15101:80:60;;20844:2:88;15101:80:60;;;20826:21:88;20883:2;20863:18;;;20856:30;-1:-1:-1;;;20902:18:88;;;20895:51;20963:18;;15101:80:60;20642:345:88;15101:80:60;15216:20;;;;;;;;:::i;:::-;15202:34;;:10;:34;;;;:64;;;;;15250:9;:16;;;15240:6;:26;;15202:64;:96;;;;;15281:9;:17;;;15270:7;:28;;15202:96;15187:186;;;;-1:-1:-1;;;15187:186:60;;21194:2:88;15187:186:60;;;21176:21:88;21233:2;21213:18;;;21206:30;21272:34;21252:18;;;21245:62;21343:29;21323:18;;;21316:57;21390:19;;15187:186:60;20992:423:88;15187:186:60;15429:7;:19;-1:-1:-1;;;15429:19:60;;;;15421:4;15402:15;;;;;;;;:::i;:::-;15389:28;;:10;:28;:::i;:::-;15388:37;;;;:::i;:::-;15387:61;;;15379:101;;;;-1:-1:-1;;;15379:101:60;;22122:2:88;15379:101:60;;;22104:21:88;22161:2;22141:18;;;22134:30;22200:29;22180:18;;;22173:57;22247:18;;15379:101:60;21920:351:88;15379:101:60;15567:27;15577:17;;;;15567:7;:27;:::i;:::-;15501:11;-1:-1:-1;;;;;15501:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;15501:61:60;;-1:-1:-1;;;;;19790:32:88;;;15501:61:60;;;19772:51:88;15549:11:60;19859:32:88;;19839:18;;;19832:60;15501:32:60;;;;;;;19745:18:88;;15501:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;15486:170;;;;-1:-1:-1;;;15486:170:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;15677:21:60;;965:10:14;15677:21:60;;:111;;-1:-1:-1;15760:27:60;15770:17;;;;15760:7;:27;:::i;:::-;15702:11;-1:-1:-1;;;;;15702:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15702:32:60;;15735:5;965:10:14;15702:53:60;;-1:-1:-1;;;;;;15702:53:60;;;;;;;-1:-1:-1;;;;;19790:32:88;;;15702:53:60;;;19772:51:88;19859:32;;19839:18;;;19832:60;19745:18;;15702:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;15677:111;15662:189;;;;-1:-1:-1;;;15662:189:60;;;;;;;:::i;:::-;15875:20;:18;:20::i;:::-;15865:6;:30;;15857:93;;;;-1:-1:-1;;;15857:93:60;;;;;;;:::i;:::-;15965:88;15983:4;15989:7;15998;16007:6;16015:8;16025:10;16037:9;:15;;;;;;;;;;:::i;:::-;15965:17;:88::i;:::-;15956:97;;16095:9;:16;;;16079:6;:13;;;:32;;;;:::i;:::-;16060:15;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;16144:15:60;;-1:-1:-1;16144:13:60;:15::i;:::-;16125;;:34;;16117:82;;;;-1:-1:-1;;;16117:82:60;;;;;;;:::i;:::-;16218:63;;-1:-1:-1;;;16218:63:60;;-1:-1:-1;;;;;16218:11:60;:25;;;;:63;;16244:9;;16255:6;;16263:5;;16270:10;;16218:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:75;;14606:1699;;;;;;;;;;:::o;11970:346::-;12172:24;;:::i;:::-;12211:100;12232:6;12240:7;12249:8;12259:10;12271:5;12278:10;12290;12302:8;:6;:8::i;:::-;12211:20;:100::i;3206:169:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;:::-;3206:169:::0;;;:::o;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;24947:2:88;3631:56:4;;;24929:21:88;24986:2;24966:18;;;24959:30;25025:34;25005:18;;;24998:62;-1:-1:-1;;;25076:18:88;;;25069:44;25130:19;;3631:56:4;24745:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;25362:2:88;3509:82:4;;;25344:21:88;25401:2;25381:18;;;25374:30;25440:34;25420:18;;;25413:62;-1:-1:-1;;;25491:18:88;;;25484:39;25540:19;;3509:82:4;25160:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;5222:32:88;;;5204:51;;5192:2;5177:18;2785:22:8::1;;;;;;;2697:117::o:0;3858:393:60:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4098:28:60::1;:26;:28::i;:::-;4132:114;4160:5;4167:10;4179:12;4193:6;4201:19;4222:14;4238:7;4132:27;:114::i;2450:115:8:-:0;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;7400:209:60;7473:7;7595:8;7571:10;:8;:10::i;:::-;-1:-1:-1;;;;;7571:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7564:40;;:2;:40;:::i;:::-;7547:57;;:14;;;:57;:::i;11043:263::-;11202:7;11224:64;11249:1;11252:6;11260:8;11270:10;11282:5;11224:24;:64::i;:::-;:77;;;;11043:263;-1:-1:-1;;;;;;11043:263:60:o;7199:146::-;7254:6;7300:40;7301:27;1140:4;7301:5;:27;:::i;:::-;7300:38;:40::i;7613:233::-;7687:6;7780:61;7820:8;7796:10;:8;:10::i;:::-;-1:-1:-1;;;;;7796:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7789:40;;:2;:40;:::i;:::-;7781:48;;:5;:48;:::i;:::-;7780:59;:61::i;4221:160:57:-;4279:4;4298:11;-1:-1:-1;;;;;4298:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4298:37:57;;4344:4;4351;965:10:14;4371:4:57;4298:78;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;28598:2:88;16362:76:46;;;28580:21:88;28637:2;28617:18;;;28610:30;28676:34;28656:18;;;28649:62;-1:-1:-1;;;28727:18:88;;;28720:36;28773:19;;16362:76:46;28396:402:88;16362:76:46;-1:-1:-1;16462:5:46;16288:187::o;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;2338:25:88;;;5115:31:57;;2326:2:88;2311:18;5115:31:57;;;;;;;4985:166;;:::o;9941:449:60:-;10016:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10016:17:60;10054:331;;;;;;;;10076:20;10084:7;:11;;;10076:7;:20::i;:::-;10054:331;;;;10119:28;10127:7;:19;;;10119:7;:28::i;:::-;10054:331;;;;10168:26;10176:7;:17;;;10168:7;:26::i;:::-;10054:331;;;;10217:28;10225:7;:19;;;10217:7;:28::i;:::-;10054:331;;;;10269:29;10277:7;:20;;;10269:7;:29::i;:::-;10054:331;;;;10315:22;10323:7;:13;;;10315:7;:22::i;:::-;10054:331;;;;10354:22;10362:7;:13;;;10354:7;:22::i;:::-;10054:331;;10041:344;9941:449;-1:-1:-1;;9941:449:60:o;2835:1074:55:-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;29005:2:88;3089:64:55;;;28987:21:88;29044:2;29024:18;;;29017:30;29083:34;29063:18;;;29056:62;-1:-1:-1;;;29134:18:88;;;29127:32;29176:19;;3089:64:55;28803:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;29408:2:88;3746:72:55;;;29390:21:88;29447:2;29427:18;;;29420:30;29486:27;29466:18;;;29459:55;29531:18;;3746:72:55;29206:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;12439:1484:60:-;12670:31;;:::i;:::-;12730:15;12756:28;;;12752:122;;12804:63;12823:6;12831:8;12841:10;12853:4;12859:7;12804:18;:63::i;:::-;12794:73;;12752:122;12897:6;12887:7;:16;12879:61;;;;-1:-1:-1;;;12879:61:60;;20483:2:88;12879:61:60;;;20465:21:88;;;20502:18;;;20495:30;20561:34;20541:18;;;20534:62;20613:18;;12879:61:60;20281:356:88;12879:61:60;12967:4;12954:17;;:10;:17;;;12946:62;;;;-1:-1:-1;;;12946:62:60;;29762:2:88;12946:62:60;;;29744:21:88;;;29781:18;;;29774:30;29840:34;29820:18;;;29813:62;29892:18;;12946:62:60;29560:356:88;12946:62:60;13053:7;:19;-1:-1:-1;;;13053:19:60;;;;13045:4;13024:17;13037:4;13024:10;:17;:::i;:::-;13023:26;;;;:::i;:::-;13022:50;;;13014:90;;;;-1:-1:-1;;;13014:90:60;;22122:2:88;13014:90:60;;;22104:21:88;22161:2;22141:18;;;22134:30;22200:29;22180:18;;;22173:57;22247:18;;13014:90:60;21920:351:88;13014:90:60;-1:-1:-1;;;;;13118:24:60;;13110:67;;;;-1:-1:-1;;;13110:67:60;;30123:2:88;13110:67:60;;;30105:21:88;30162:2;30142:18;;;30135:30;30201:32;30181:18;;;30174:60;30251:18;;13110:67:60;29921:354:88;13110:67:60;13263:7;13198:11;-1:-1:-1;;;;;13198:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;13198:61:60;;-1:-1:-1;;;;;19790:32:88;;;13198:61:60;;;19772:51:88;13246:11:60;19859:32:88;;19839:18;;;19832:60;13198:32:60;;;;;;;19745:18:88;;13198:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;13183:148;;;;-1:-1:-1;;;13183:148:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;13352:21:60;;965:10:14;13352:21:60;;:89;;;13434:7;13377:11;-1:-1:-1;;;;;13377:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:32:60;;13410:5;965:10:14;13377:53:60;;-1:-1:-1;;;;;;13377:53:60;;;;;;;-1:-1:-1;;;;;19790:32:88;;;13377:53:60;;;19772:51:88;19859:32;;19839:18;;;19832:60;19745:18;;13377:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;13352:89;13337:167;;;;-1:-1:-1;;;13337:167:60;;;;;;;:::i;:::-;13528:20;:18;:20::i;:::-;13518:6;:30;;13510:93;;;;-1:-1:-1;;;13510:93:60;;;;;;;:::i;:::-;13618:77;13636:4;13642:7;13651;13660:6;13668:8;13678:10;13690:4;13618:17;:77::i;:::-;13609:86;;13720:6;:13;;;13701:15;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:15:60;;-1:-1:-1;13766:13:60;:15::i;:::-;13747;;:34;;13739:82;;;;-1:-1:-1;;;13739:82:60;;;;;;;:::i;:::-;13839:60;;-1:-1:-1;;;13839:60:60;;-1:-1:-1;;;;;13839:11:60;:21;;;;:60;;13861:6;;13869:5;;13876:10;;13888;;13839:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13827:72;;-1:-1:-1;12439:1484:60;;;;;;;;;;:::o;5037:280::-;5120:34;5146:7;5120:25;:34::i;:::-;5160:17;5192:7;5160:40;;5237:16;-1:-1:-1;;;;;5210:43:60;:5;-1:-1:-1;;;;;5210:21:60;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5210:43:60;;5206:107;;5270:36;;-1:-1:-1;;;5270:36:60;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;31326:2:88;1793:106:4;;;31308:21:88;31365:2;31345:18;;;31338:30;31404:34;31384:18;;;31377:62;-1:-1:-1;;;31455:18:88;;;31448:43;31508:19;;1793:106:4;31124:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;31740:2:88;2267:41:8;;;31722:21:88;31779:2;31759:18;;;31752:30;-1:-1:-1;;;31798:18:88;;;31791:50;31858:18;;2267:41:8;31538:344:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4306:727:60:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4556:5:60::1;:13;4564:5:::0;4556;:13:::1;:::i;:::-;-1:-1:-1::0;4585:368:60::1;::::0;;::::1;::::0;::::1;::::0;;1191:3:::1;4585:368:::0;;-1:-1:-1;4585:368:60::1;::::0;::::1;::::0;;;;4667:19:::1;4675:10:::0;4667:7:::1;:19::i;:::-;4585:368;;;;;;4707:21;4715:12;4707:7;:21::i;:::-;4585:368;;::::0;;4750:1:::1;4585:368;::::0;::::1;::::0;;;;;;;;;4782:15:::1;4790:6:::0;4782:7:::1;:15::i;:::-;4585:368;;;;;;4825:34;4836:1;4839:19;4825:10;:34::i;:::-;4585:368;;;;;;4882:29;4893:1;4896:14;4882:10;:29::i;:::-;4585:368;::::0;;::::1;::::0;;1068:4:::1;4585:368;::::0;;::::1;::::0;4575:378;;:7:::1;:378:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;4585:368:::1;4575:378:::0;;::::1;-1:-1:-1::0;;4575:378:60;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;;::::1;;;::::0;;-1:-1:-1;4959:15:60::1;:19:::0;4984:7:::1;:17:::0;;-1:-1:-1;;;;;;4984:17:60::1;-1:-1:-1::0;;;;;4984:17:60;::::1;;::::0;;5007:21:::1;:19;:21::i;1541:1290:55:-:0;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;34213:2:88;15338:76:46;;;34195:21:88;34252:2;34232:18;;;34225:30;34291:34;34271:18;;;34264:62;-1:-1:-1;;;34342:18:88;;;34335:36;34388:19;;15338:76:46;34011:402:88;5619:319:60;5746:15;;5728;:13;:15::i;:::-;:33;5724:106;;;5778:45;;-1:-1:-1;;;5778:45:60;;;;;;;;;;;5724:106;5839:7;;-1:-1:-1;;;;;5839:7:60;5835:63;;5877:14;;-1:-1:-1;;;5877:14:60;;;;;;;;;;;5835:63;5903:30;5925:7;5903:21;:30::i;7039:156::-;7093:7;7154:36;1140:4;7154:14;;;:36;:::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;1077:319:65:-:0;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;5942:954:60:-;6031:19;;1191:3;6031:19;;;;:38;:19;:38;;6023:86;;;;-1:-1:-1;;;6023:86:60;;34897:2:88;6023:86:60;;;34879:21:88;34936:2;34916:18;;;34909:30;34975:34;34955:18;;;34948:62;-1:-1:-1;;;35026:18:88;;;35019:33;35069:19;;6023:86:60;34695:399:88;6023:86:60;6123:17;;1191:3;6123:17;;;;:36;:17;:36;;;;:61;;-1:-1:-1;6163:17:60;;;;;;;:21;;6123:61;6115:107;;;;-1:-1:-1;;;6115:107:60;;35301:2:88;6115:107:60;;;35283:21:88;35340:2;35320:18;;;35313:30;35379:34;35359:18;;;35352:62;-1:-1:-1;;;35430:18:88;;;35423:31;35471:19;;6115:107:60;35099:397:88;6115:107:60;6257:19;;;;;;;;6236:17;;;;;:40;;6228:89;;;;-1:-1:-1;;;6228:89:60;;35703:2:88;6228:89:60;;;35685:21:88;35742:2;35722:18;;;35715:30;35781:34;35761:18;;;35754:62;-1:-1:-1;;;35832:18:88;;;35825:34;35876:19;;6228:89:60;35501:400:88;6228:89:60;6331:11;;1282:3;6331:22;:11;;;:22;;;;:48;;-1:-1:-1;6357:11:60;;1233:3;6357:22;:11;;;:22;;6331:48;6323:93;;;;-1:-1:-1;;;6323:93:60;;36108:2:88;6323:93:60;;;36090:21:88;;;36127:18;;;36120:30;36186:34;36166:18;;;36159:62;36238:18;;6323:93:60;35906:356:88;6323:93:60;6430:19;;1191:3;-1:-1:-1;;;6430:19:60;;;:38;:19;:38;;6422:87;;;;-1:-1:-1;;;6422:87:60;;36469:2:88;6422:87:60;;;36451:21:88;36508:2;36488:18;;;36481:30;36547:34;36527:18;;;36520:62;-1:-1:-1;;;36598:18:88;;;36591:34;36642:19;;6422:87:60;36267:400:88;6422:87:60;6523:20;;1191:3;-1:-1:-1;;;6523:20:60;;;:39;:20;:39;;6515:89;;;;-1:-1:-1;;;6515:89:60;;36874:2:88;6515:89:60;;;36856:21:88;36913:2;36893:18;;;36886:30;36952:34;36932:18;;;36925:62;-1:-1:-1;;;37003:18:88;;;36996:35;37048:19;;6515:89:60;36672:401:88;6515:89:60;6618:13;;1191:3;-1:-1:-1;;;6618:13:60;;;:32;:13;:32;;6610:82;;;;-1:-1:-1;;;6610:82:60;;37280:2:88;6610:82:60;;;37262:21:88;37319:2;37299:18;;;37292:30;37358:34;37338:18;;;37331:62;-1:-1:-1;;;37409:18:88;;;37402:35;37454:19;;6610:82:60;37078:401:88;6610:82:60;6706:13;;1191:3;-1:-1:-1;;;6706:13:60;;;:32;:13;:32;;6698:82;;;;-1:-1:-1;;;6698:82:60;;37686:2:88;6698:82:60;;;37668:21:88;37725:2;37705:18;;;37698:30;37764:34;37744:18;;;37737:62;-1:-1:-1;;;37815:18:88;;;37808:35;37860:19;;6698:82:60;37484:401:88;6698:82:60;6794:21;;-1:-1:-1;;;6794:21:60;;;;:25;;;;:59;;-1:-1:-1;6823:26:60;;-1:-1:-1;;;6823:26:60;;;;:30;;6794:59;6786:105;;;;-1:-1:-1;;;6786:105:60;;38092:2:88;6786:105:60;;;38074:21:88;38131:2;38111:18;;;38104:30;38170:34;38150:18;;;38143:62;-1:-1:-1;;;38221:18:88;;;38214:31;38262:19;;6786:105:60;37890:397:88;7069:325:13;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;38800:2:88;8124:60:13;;;38782:21:88;38839:2;38819:18;;;38812:30;38878:31;38858:18;;;38851:59;38927:18;;8124:60:13;38598:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:418;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;780:6;775:2;767:6;763:15;758:2;747:9;743:18;737:50;836:1;831:2;822:6;811:9;807:22;803:31;796:42;906:2;899;895:7;890:2;882:6;878:15;874:29;863:9;859:45;855:54;847:62;;;497:418;;;;:::o;920:159::-;983:5;1028:3;1019:6;1014:3;1010:16;1006:26;1003:46;;;1045:1;1042;1035:12;1003:46;-1:-1:-1;1067:6:88;920:159;-1:-1:-1;920:159:88:o;1084:165::-;1151:20;;1211:12;1200:24;;1190:35;;1180:63;;1239:1;1236;1229:12;1180:63;1084:165;;;:::o;1254:179::-;1321:20;;-1:-1:-1;;;;;1370:38:88;;1360:49;;1350:77;;1423:1;1420;1413:12;1438:749;1571:6;1579;1587;1595;1603;1611;1664:3;1652:9;1643:7;1639:23;1635:33;1632:53;;;1681:1;1678;1671:12;1632:53;1704:57;1753:7;1742:9;1704:57;:::i;:::-;1694:67;-1:-1:-1;1830:3:88;1815:19;;1802:33;;-1:-1:-1;1932:3:88;1917:19;;1904:33;;-1:-1:-1;2036:3:88;2021:19;;2008:33;;-1:-1:-1;2086:38:88;2119:3;2104:19;;2086:38;:::i;:::-;2076:48;;2143:38;2176:3;2165:9;2161:19;2143:38;:::i;:::-;2133:48;;1438:749;;;;;;;;:::o;2374:131::-;-1:-1:-1;;;;;2449:31:88;;2439:42;;2429:70;;2495:1;2492;2485:12;2510:754;2612:6;2620;2628;2636;2644;2652;2705:3;2693:9;2684:7;2680:23;2676:33;2673:53;;;2722:1;2719;2712:12;2673:53;2767:23;;;-1:-1:-1;2887:2:88;2872:18;;2859:32;;-1:-1:-1;2990:2:88;2975:18;;2962:32;;-1:-1:-1;3039:37:88;3072:2;3057:18;;3039:37;:::i;:::-;3029:47;;3128:3;3117:9;3113:19;3100:33;3142;3167:7;3142:33;:::i;:::-;3194:7;-1:-1:-1;3220:38:88;3253:3;3238:19;;3220:38;:::i;3492:1025::-;3574:5;3568:12;3563:3;3556:25;3630:4;3623:5;3619:16;3613:23;3606:4;3601:3;3597:14;3590:47;3686:4;3679:5;3675:16;3669:23;3662:4;3657:3;3653:14;3646:47;3742:4;3735:5;3731:16;3725:23;3718:4;3713:3;3709:14;3702:47;3798:4;3791:5;3787:16;3781:23;3774:4;3769:3;3765:14;3758:47;3854:4;3847:5;3843:16;3837:23;3830:4;3825:3;3821:14;3814:47;3910:4;3903:5;3899:16;3893:23;3886:4;3881:3;3877:14;3870:47;3966:4;3959:5;3955:16;3949:23;3942:4;3937:3;3933:14;3926:47;4024:6;4017:5;4013:18;4007:25;3998:6;3993:3;3989:16;3982:51;4084:6;4077:5;4073:18;4067:25;4058:6;4053:3;4049:16;4042:51;4144:6;4137:5;4133:18;4127:25;4118:6;4113:3;4109:16;4102:51;4199:6;4192:5;4188:18;4182:25;4216:63;4271:6;4266:3;4262:16;4248:12;-1:-1:-1;;;;;3348:31:88;3336:44;;3269:117;4216:63;;4327:6;4320:5;4316:18;4310:25;4344:51;4387:6;4382:3;4378:16;4362:14;3467:12;3456:24;3444:37;;3391:96;4344:51;;4443:6;4436:5;4432:18;4426:25;4460:51;4503:6;4498:3;4494:16;4478:14;3467:12;3456:24;3444:37;;3391:96;4522:258;4714:3;4699:19;;4727:47;4703:9;4756:6;4727:47;:::i;4785:247::-;4844:6;4897:2;4885:9;4876:7;4872:23;4868:32;4865:52;;;4913:1;4910;4903:12;4865:52;4952:9;4939:23;4971:31;4996:5;4971:31;:::i;5266:127::-;5327:10;5322:3;5318:20;5315:1;5308:31;5358:4;5355:1;5348:15;5382:4;5379:1;5372:15;5398:715;5462:5;5494:1;5518:18;5510:6;5507:30;5504:56;;;5540:18;;:::i;:::-;-1:-1:-1;5695:2:88;5689:9;-1:-1:-1;;5608:2:88;5587:15;;5583:29;;5753:2;5741:15;5737:29;5725:42;;5818:22;;;5797:18;5782:34;;5779:62;5776:88;;;5844:18;;:::i;:::-;5880:2;5873:22;5928;;;5913:6;-1:-1:-1;5913:6:88;5965:16;;;5962:25;-1:-1:-1;5959:45:88;;;6000:1;5997;5990:12;5959:45;6050:6;6045:3;6038:4;6030:6;6026:17;6013:44;6105:1;6098:4;6089:6;6081;6077:19;6073:30;6066:41;;5398:715;;;;;:::o;6118:584::-;6195:6;6203;6256:2;6244:9;6235:7;6231:23;6227:32;6224:52;;;6272:1;6269;6262:12;6224:52;6311:9;6298:23;6330:31;6355:5;6330:31;:::i;:::-;6380:5;-1:-1:-1;6436:2:88;6421:18;;6408:32;6463:18;6452:30;;6449:50;;;6495:1;6492;6485:12;6449:50;6518:22;;6571:4;6563:13;;6559:27;-1:-1:-1;6549:55:88;;6600:1;6597;6590:12;6549:55;6623:73;6688:7;6683:2;6670:16;6665:2;6661;6657:11;6623:73;:::i;:::-;6613:83;;;6118:584;;;;;:::o;7097:226::-;7156:6;7209:2;7197:9;7188:7;7184:23;7180:32;7177:52;;;7225:1;7222;7215:12;7177:52;-1:-1:-1;7270:23:88;;7097:226;-1:-1:-1;7097:226:88:o;7328:1193::-;7451:6;7459;7467;7475;7483;7491;7499;7552:3;7540:9;7531:7;7527:23;7523:33;7520:53;;;7569:1;7566;7559:12;7520:53;7609:9;7596:23;7642:18;7634:6;7631:30;7628:50;;;7674:1;7671;7664:12;7628:50;7697:22;;7750:4;7742:13;;7738:27;-1:-1:-1;7728:55:88;;7779:1;7776;7769:12;7728:55;7802:75;7869:7;7864:2;7851:16;7844:4;7840:2;7836:13;7802:75;:::i;:::-;7792:85;-1:-1:-1;;7946:4:88;7931:20;;7918:34;;-1:-1:-1;8049:2:88;8034:18;;8021:32;;-1:-1:-1;8152:2:88;8137:18;;8124:32;;-1:-1:-1;8255:3:88;8240:19;;8227:33;;-1:-1:-1;8359:3:88;8344:19;;8331:33;;-1:-1:-1;8442:3:88;8427:19;;8414:33;8456;8414;8456;:::i;:::-;8508:7;8498:17;;;7328:1193;;;;;;;;;;:::o;8760:361::-;8859:6;8867;8920:3;8908:9;8899:7;8895:23;8891:33;8888:53;;;8937:1;8934;8927:12;8888:53;8960:57;9009:7;8998:9;8960:57;:::i;:::-;8950:67;9086:3;9071:19;;;;9058:33;;-1:-1:-1;;;8760:361:88:o;9126:418::-;9202:6;9210;9218;9271:2;9259:9;9250:7;9246:23;9242:32;9239:52;;;9287:1;9284;9277:12;9239:52;9332:23;;;-1:-1:-1;9452:2:88;9437:18;;9424:32;;-1:-1:-1;9501:37:88;9534:2;9519:18;;9501:37;:::i;:::-;9491:47;;9126:418;;;;;:::o;9549:392::-;9632:6;9640;9693:2;9681:9;9672:7;9668:23;9664:32;9661:52;;;9709:1;9706;9699:12;9661:52;9748:9;9735:23;9787:2;9780:5;9777:13;9767:41;;9804:1;9801;9794:12;9767:41;9827:5;9905:2;9890:18;;;;9877:32;;-1:-1:-1;;;9549:392:88:o;10795:118::-;10881:5;10874:13;10867:21;10860:5;10857:32;10847:60;;10903:1;10900;10893:12;10918:376;11014:6;11022;11075:3;11063:9;11054:7;11050:23;11046:33;11043:53;;;11092:1;11089;11082:12;11043:53;11115:57;11164:7;11153:9;11115:57;:::i;:::-;11105:67;;11222:3;11211:9;11207:19;11194:33;11236:28;11258:5;11236:28;:::i;:::-;11283:5;11273:15;;;10918:376;;;;;:::o;11299:380::-;11378:1;11374:12;;;;11421;;;11442:61;;11496:4;11488:6;11484:17;11474:27;;11442:61;11549:2;11541:6;11538:14;11518:18;11515:38;11512:161;;11595:10;11590:3;11586:20;11583:1;11576:31;11630:4;11627:1;11620:15;11658:4;11655:1;11648:15;11684:275;11778:6;11831:2;11819:9;11810:7;11806:23;11802:32;11799:52;;;11847:1;11844;11837:12;11799:52;11879:9;11873:16;11898:31;11923:5;11898:31;:::i;11964:453::-;-1:-1:-1;;;;;12207:32:88;;;12189:51;;12271:2;12256:18;;12249:34;;;;12319:32;;12314:2;12299:18;;12292:60;12395:14;;12388:22;12383:2;12368:18;;12361:50;12176:3;12161:19;;11964:453::o;12678:408::-;12880:2;12862:21;;;12919:2;12899:18;;;12892:30;12958:34;12953:2;12938:18;;12931:62;-1:-1:-1;;;13024:2:88;13009:18;;13002:42;13076:3;13061:19;;12678:408::o;13091:::-;13293:2;13275:21;;;13332:2;13312:18;;;13305:30;13371:34;13366:2;13351:18;;13344:62;-1:-1:-1;;;13437:2:88;13422:18;;13415:42;13489:3;13474:19;;13091:408::o;13504:525::-;-1:-1:-1;;;;;13775:32:88;;;13757:51;;13839:2;13824:18;;13817:34;;;;13882:2;13867:18;;13860:34;;;;13930:32;;;13925:2;13910:18;;13903:60;14007:14;;14000:22;13994:3;13979:19;;13972:51;13744:3;13729:19;;13504:525::o;14459:127::-;14520:10;14515:3;14511:20;14508:1;14501:31;14551:4;14548:1;14541:15;14575:4;14572:1;14565:15;14591:128;14658:9;;;14679:11;;;14676:37;;;14693:18;;:::i;15338:147::-;15419:20;;15448:31;15419:20;15448:31;:::i;15490:1739::-;15599:19;;15627:20;;15716:4;15705:16;;;15692:30;15738:14;;;15731:31;15831:4;15820:16;;;15807:30;15853:14;;;15846:31;15946:4;15935:16;;;15922:30;15968:14;;;15961:31;16061:4;16050:16;;;16037:30;16083:14;;;16076:31;16176:4;16165:16;;;16152:30;16198:14;;;16191:31;16291:4;16280:16;;;16267:30;16313:14;;;16306:31;16406:4;16395:16;;;16382:30;16428:14;;;16421:31;16521:6;16510:18;;;16497:32;16545:16;;;16538:33;16642:6;16631:18;;;16618:32;16666:16;;;16659:34;16764:6;16753:18;;;16740:32;16788:16;;;16781:34;16844:51;16887:6;16876:18;;16844:51;:::i;:::-;-1:-1:-1;;;;;3348:31:88;16959:6;16950:16;;3336:44;16998:37;17027:6;17016:18;;16998:37;:::i;:::-;3467:12;3456:24;17087:6;17078:16;;3444:37;17126;17155:6;17144:18;;17126:37;:::i;:::-;3467:12;3456:24;;17215:6;17206:16;;3444:37;3206:169:57;;;:::o;17234:341:88:-;17456:3;17441:19;;17469:56;17445:9;17507:6;17469:56;:::i;:::-;17562:6;17556:3;17545:9;17541:19;17534:35;17234:341;;;;;:::o;17580:127::-;17641:10;17636:3;17632:20;17629:1;17622:31;17672:4;17669:1;17662:15;17696:4;17693:1;17686:15;18488:125;18553:9;;;18574:10;;;18571:36;;;18587:18;;:::i;18897:351::-;19113:3;19098:19;;19126:56;19102:9;19164:6;19126:56;:::i;:::-;19233:6;19226:14;19219:22;19213:3;19202:9;19198:19;19191:51;18897:351;;;;;:::o;19903:184::-;19973:6;20026:2;20014:9;20005:7;20001:23;19997:32;19994:52;;;20042:1;20039;20032:12;19994:52;-1:-1:-1;20065:16:88;;19903:184;-1:-1:-1;19903:184:88:o;20092:::-;20150:6;20203:2;20191:9;20182:7;20178:23;20174:32;20171:52;;;20219:1;20216;20209:12;20171:52;20242:28;20260:9;20242:28;:::i;21420:176::-;21519:12;21512:20;;;21490;;;21486:47;;21545:22;;21542:48;;;21570:18;;:::i;21601:127::-;21662:10;21657:3;21653:20;21650:1;21643:31;21693:4;21690:1;21683:15;21717:4;21714:1;21707:15;21733:182;21772:1;21806:12;21803:1;21799:20;21838:3;21828:37;;21845:18;;:::i;:::-;21905:3;21890:12;21887:1;21883:20;21879:30;21874:35;;;21733:182;;;;:::o;22276:409::-;22478:2;22460:21;;;22517:2;22497:18;;;22490:30;22556:34;22551:2;22536:18;;22529:62;-1:-1:-1;;;22622:2:88;22607:18;;22600:43;22675:3;22660:19;;22276:409::o;22690:411::-;22892:2;22874:21;;;22931:2;22911:18;;;22904:30;22970:34;22965:2;22950:18;;22943:62;-1:-1:-1;;;23036:2:88;23021:18;;23014:45;23091:3;23076:19;;22690:411::o;23106:414::-;23308:2;23290:21;;;23347:2;23327:18;;;23320:30;23386:34;23381:2;23366:18;;23359:62;-1:-1:-1;;;23452:2:88;23437:18;;23430:48;23510:3;23495:19;;23106:414::o;23525:399::-;23727:2;23709:21;;;23766:2;23746:18;;;23739:30;23805:34;23800:2;23785:18;;23778:62;-1:-1:-1;;;23871:2:88;23856:18;;23849:33;23914:3;23899:19;;23525:399::o;23929:622::-;24263:3;24248:19;;24276:56;24252:9;24314:6;24276:56;:::i;:::-;24341:57;24393:3;24382:9;24378:19;24370:6;24341:57;:::i;:::-;-1:-1:-1;;;;;24435:32:88;;;;24429:3;24414:19;;24407:61;-1:-1:-1;;;;;24505:39:88;;;;24499:3;24484:19;;;24477:68;23929:622;;-1:-1:-1;;23929:622:88:o;25570:407::-;25772:2;25754:21;;;25811:2;25791:18;;;25784:30;25850:34;25845:2;25830:18;;25823:62;-1:-1:-1;;;25916:2:88;25901:18;;25894:41;25967:3;25952:19;;25570:407::o;25982:273::-;26050:6;26103:2;26091:9;26082:7;26078:23;26074:32;26071:52;;;26119:1;26116;26109:12;26071:52;26151:9;26145:16;26201:4;26194:5;26190:16;26183:5;26180:27;26170:55;;26221:1;26218;26211:12;26260:151;26350:4;26343:12;;;26329;;;26325:31;;26368:14;;26365:40;;;26385:18;;:::i;26416:375::-;26504:1;26522:5;26536:249;26557:1;26547:8;26544:15;26536:249;;;26607:4;26602:3;26598:14;26592:4;26589:24;26586:50;;;26616:18;;:::i;:::-;26666:1;26656:8;26652:16;26649:49;;;26680:16;;;;26649:49;26763:1;26759:16;;;;;26719:15;;26536:249;;;26416:375;;;;;;:::o;26796:902::-;26845:5;26875:8;26865:80;;-1:-1:-1;26916:1:88;26930:5;;26865:80;26964:4;26954:76;;-1:-1:-1;27001:1:88;27015:5;;26954:76;27046:4;27064:1;27059:59;;;;27132:1;27127:174;;;;27039:262;;27059:59;27089:1;27080:10;;27103:5;;;27127:174;27164:3;27154:8;27151:17;27148:43;;;27171:18;;:::i;:::-;-1:-1:-1;;27227:1:88;27213:16;;27286:5;;27039:262;;27385:2;27375:8;27372:16;27366:3;27360:4;27357:13;27353:36;27347:2;27337:8;27334:16;27329:2;27323:4;27320:12;27316:35;27313:77;27310:203;;;-1:-1:-1;27422:19:88;;;27498:5;;27310:203;27545:42;-1:-1:-1;;27570:8:88;27564:4;27545:42;:::i;:::-;27623:6;27619:1;27615:6;27611:19;27602:7;27599:32;27596:58;;;27634:18;;:::i;:::-;27672:20;;26796:902;-1:-1:-1;;;26796:902:88:o;27703:140::-;27761:5;27790:47;27831:4;27821:8;27817:19;27811:4;27790:47;:::i;27848:168::-;27921:9;;;27952;;27969:15;;;27963:22;;27949:37;27939:71;;27990:18;;:::i;28021:120::-;28061:1;28087;28077:35;;28092:18;;:::i;:::-;-1:-1:-1;28126:9:88;;28021:120::o;28146:245::-;28213:6;28266:2;28254:9;28245:7;28241:23;28237:32;28234:52;;;28282:1;28279;28272:12;28234:52;28314:9;28308:16;28333:28;28355:5;28333:28;:::i;30280:557::-;30554:3;30539:19;;30567:47;30543:9;30596:6;30567:47;:::i;:::-;-1:-1:-1;;;;;30651:32:88;;;30645:3;30630:19;;30623:61;30721:32;;;;30715:3;30700:19;;30693:61;-1:-1:-1;;;;;30791:39:88;30785:3;30770:19;;;30763:68;;;;30280:557;;-1:-1:-1;30280:557:88:o;32013:518::-;32115:2;32110:3;32107:11;32104:421;;;32151:5;32148:1;32141:16;32195:4;32192:1;32182:18;32265:2;32253:10;32249:19;32246:1;32242:27;32236:4;32232:38;32301:4;32289:10;32286:20;32283:47;;;-1:-1:-1;32324:4:88;32283:47;32379:2;32374:3;32370:12;32367:1;32363:20;32357:4;32353:31;32343:41;;32434:81;32452:2;32445:5;32442:13;32434:81;;;32511:1;32497:16;;32478:1;32467:13;32434:81;;;32438:3;;32013:518;;;:::o;32707:1299::-;32833:3;32827:10;32860:18;32852:6;32849:30;32846:56;;;32882:18;;:::i;:::-;32911:97;33001:6;32961:38;32993:4;32987:11;32961:38;:::i;:::-;32955:4;32911:97;:::i;:::-;33057:4;33088:2;33077:14;;33105:1;33100:649;;;;33793:1;33810:6;33807:89;;;-1:-1:-1;33862:19:88;;;33856:26;33807:89;-1:-1:-1;;32664:1:88;32660:11;;;32656:24;32652:29;32642:40;32688:1;32684:11;;;32639:57;33909:81;;33070:930;;33100:649;31960:1;31953:14;;;31997:4;31984:18;;-1:-1:-1;;33136:20:88;;;33254:222;33268:7;33265:1;33262:14;33254:222;;;33350:19;;;33344:26;33329:42;;33457:4;33442:20;;;;33410:1;33398:14;;;;33284:12;33254:222;;;33258:3;33504:6;33495:7;33492:19;33489:201;;;33565:19;;;33559:26;-1:-1:-1;;33648:1:88;33644:14;;;33660:3;33640:24;33636:37;33632:42;33617:58;33602:74;;33489:201;-1:-1:-1;;;;33736:1:88;33720:14;;;33716:22;33703:36;;-1:-1:-1;32707:1299:88:o;38292:301::-;38421:3;38459:6;38453:13;38505:6;38498:4;38490:6;38486:17;38481:3;38475:37;38567:1;38531:16;;38556:13;;;-1:-1:-1;38531:16:88;38292:301;-1:-1:-1;38292:301:88:o"},"methodIdentifiers":{"PRICER_ROLE()":"fbb81279","REPLACER_ROLE()":"af0e7e0c","RESOLVER_ROLE()":"78fab260","activeExposure()":"7ff8bf25","currency()":"e5a6b10f","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","initialize(string,uint256,uint256,uint256,uint256,uint256,address)":"6f0dbe6f","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","newPolicy(uint256,uint256,uint256,uint40,address,uint96)":"406f7f6f","newPolicyFull(uint256,uint256,uint256,uint40,address,uint96)":"1d177dc4","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,uint96)":"0bc872d9","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)":"ffa600e3","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"premiumsAccount_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PRICER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REPLACER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESOLVER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"collRatio_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayoutPerPolicy_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exposureLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicyFull\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"createdPolicy\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"customerWon\",\"type\":\"bool\"}],\"name\":\"resolvePolicyFullPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by authorized users\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"initialize(string,uint256,uint256,uint256,uint256,uint256,address)\":{\"details\":\"Initializes the RiskModule\",\"params\":{\"collRatio_\":\"Collateralization ratio to compute solvency requirement as % of payout (in ray)\",\"ensuroPpFee_\":\"% of pure premium that will go for Ensuro treasury (in ray)\",\"exposureLimit_\":\"Max exposure (sum of payouts) to be allocated to this module (in wad)\",\"maxPayoutPerPolicy_\":\"Maximum payout per policy (in wad)\",\"name_\":\"Name of the Risk Module\",\"srRoc_\":\"return on capital paid to Senior LPs (annualized percentage - in ray)\",\"wallet_\":\"Address of the RiskModule provider\"}},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"newPolicy(uint256,uint256,uint256,uint40,address,uint96)\":{\"details\":\"Creates a new Policy Requirements: - The caller has been granted componentRole(PRICER_ROLE) Emits: - {PolicyPool.NewPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"internalId\":\"An id that's unique within this module and it will be used to identify the policy\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"premium\":\"The premium that will be paid by the policyHolder\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"newPolicyFull(uint256,uint256,uint256,uint40,address,uint96)\":{\"details\":\"Creates a new Policy. Version that returns all the PolicyData struct, not just the id. Requirements: - The caller has been granted componentRole(PRICER_ROLE) Emits: - {PolicyPool.NewPolicy}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"internalId\":\"An id that's unique within this module and it will be used to identify the policy\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"onBehalfOf\":\"The policy holder\",\"payout\":\"The exposure (maximum payout) of the policy\",\"premium\":\"The premium that will be paid by the policyHolder\"},\"returns\":{\"createdPolicy\":\"Returns the id of the created policy\"}},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,uint96)\":{\"details\":\"Replace a policy with a new one, reusing the premium and the capital locked Requirements: - The caller has been granted componentRole(PRICER_ROLE) Emits: - {PolicyPool.PolicyReplaced}\",\"params\":{\"expiration\":\"The expiration of the policy (timestamp)\",\"internalId\":\"An id that's unique within this module and it will be used to identify the policy\",\"lossProb\":\"The probability of having to pay the maximum payout (wad)\",\"payout\":\"The exposure (maximum payout) of the policy\",\"premium\":\"The premium that will be paid by the policyHolder\"},\"returns\":{\"_0\":\"Returns the id of the created policy\"}},\"resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"Resolves a policy, if payout > 0, it pays to the policy holder. Requirements: - The caller has been granted componentRole(RESOLVER_ROLE) - payout <= policy.payout - block.timestamp >= policy.expiration Emits: - {PolicyPool.PolicyResolved}\",\"params\":{\"payout\":\"The payout to transfer to the policy holder\",\"policy\":\"The policy previously created (from {NewPolicy} event)\"}},\"resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)\":{\"details\":\"Resolves a policy with full payout (policy.payout) if customerWon == true Requirements: - The caller has been granted componentRole(RESOLVER_ROLE) - block.timestamp >= policy.expiration Emits: - {PolicyPool.PolicyResolved}\",\"params\":{\"customerWon\":\"If true, policy.payout is transferred to the policy holder. If false, the policy is resolved without payout and can't be longer claimed.\",\"policy\":\"The policy previously created (from {NewPolicy} event)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Trustful Risk Module\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TrustfulRiskModule.sol\":\"TrustfulRiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/TrustfulRiskModule.sol\":{\"keccak256\":\"0x3c75acf3b81072ea50dac52eb87b924252bcd953f63fdf000a7ed3da8dd0b2a3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cde85d2a6dee1de144b02e9df78e653fd265e24dda1546f7ef94231ba2a643a\",\"dweb:/ipfs/QmVmnBB5R1QaeoHuPkHDtUSvdsFUX6ChHMgdRa44wq5ad6\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"},{"astId":23155,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"__gap","offset":0,"slot":"301","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/TrustfulRiskModule.sol:TrustfulRiskModule","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/dependencies/WadRayMath.sol":{"WadRayMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122064b3cde244f5c58bef1105f79fa7a11538c52e5433e161d38f862a8f00ab7f9b64736f6c634300081c0033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xB3CDE244F5 0xC5 DUP12 0xEF GT SDIV 0xF7 SWAP16 0xA7 LOG1 ISZERO CODESIZE 0xC5 0x2E SLOAD CALLER 0xE1 PUSH2 0xD38F DUP7 0x2A DUP16 STOP 0xAB PUSH32 0x9B64736F6C634300081C00330000000000000000000000000000000000000000 ","sourceMap":"440:3717:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;440:3717:65;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122064b3cde244f5c58bef1105f79fa7a11538c52e5433e161d38f862a8f00ab7f9b64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xB3CDE244F5 0xC5 DUP12 0xEF GT SDIV 0xF7 SWAP16 0xA7 LOG1 ISZERO CODESIZE 0xC5 0x2E SLOAD CALLER 0xE1 PUSH2 0xD38F DUP7 0x2A DUP16 STOP 0xAB PUSH32 0x9B64736F6C634300081C00330000000000000000000000000000000000000000 ","sourceMap":"440:3717:65:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Aave\",\"details\":\"Provides mul and div function for wads (decimal numbers with 18 digits of precision) and rays (decimal numbers with 27 digits of precision)Operations are rounded. If a value is >=.5, will be rounded up, otherwise rounded down.*\",\"kind\":\"dev\",\"methods\":{},\"title\":\"WadRayMath library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides functions to perform calculations with Wad and Ray units\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/dependencies/WadRayMath.sol\":\"WadRayMath\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IAccessManager.sol":{"IAccessManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"checkComponentRole","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role1","type":"bytes32"},{"internalType":"bytes32","name":"role2","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"checkComponentRole2","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"checkRole","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role1","type":"bytes32"},{"internalType":"bytes32","name":"role2","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"checkRole2","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getComponentRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"component","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"alsoGlobal","type":"bool"}],"name":"hasComponentRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"checkComponentRole(address,bytes32,address,bool)":"5ff57d20","checkComponentRole2(address,bytes32,bytes32,address,bool)":"2b1cff1f","checkRole(bytes32,address)":"12d9a6ad","checkRole2(bytes32,bytes32,address)":"c5b8f5cf","getComponentRole(address,bytes32)":"374c96c8","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasComponentRole(address,bytes32,address,bool)":"b3efcbd2","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"checkComponentRole\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"role2\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"checkComponentRole2\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkRole\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"role2\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"checkRole2\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getComponentRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"component\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"alsoGlobal\",\"type\":\"bool\"}],\"name\":\"hasComponentRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for the contract that handles roles for the PolicyPool and components\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"checkComponentRole(address,bytes32,address,bool)\":{\"details\":\"Checks if a user has been granted a given component role and reverts if it doesn't\",\"params\":{\"account\":\"The user address for who we want to verify the permission\",\"alsoGlobal\":\"If true, it will accept not only the component role, but also the (global) `role` itself.                   If false, only the component role is accepted\",\"role\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\"}},\"checkComponentRole2(address,bytes32,bytes32,address,bool)\":{\"details\":\"Checks if a user has been granted any of the two component roles specified and reverts if it doesn't\",\"params\":{\"account\":\"The user address for who we want to verify the permission\",\"alsoGlobal\":\"If true, it will accept not only the component roles, but also the global ones.                   If false, only the component roles are accepted\",\"role1\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\",\"role2\":\"Another role such as `keccak256(\\\"GUARDIAN_ROLE\\\")` that's global\"}},\"checkRole(bytes32,address)\":{\"details\":\"Checks if a user has been granted a given role and reverts if it doesn't\",\"params\":{\"account\":\"The user address for who we want to verify the permission\",\"role\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\"}},\"checkRole2(bytes32,bytes32,address)\":{\"details\":\"Checks if a user has been granted any of the two roles specified and reverts if it doesn't\",\"params\":{\"account\":\"The user address for who we want to verify the permission\",\"role1\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\",\"role2\":\"Another role such as `keccak256(\\\"GUARDIAN_ROLE\\\")` that's global\"}},\"getComponentRole(address,bytes32)\":{\"details\":\"Gets a role identifier mixing the hash of the global role and the address of the component\",\"params\":{\"component\":\"The component where this role will apply\",\"role\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\"},\"returns\":{\"_0\":\"A new role, mixing (XOR) the component address and the role.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasComponentRole(address,bytes32,address,bool)\":{\"details\":\"Tells if a user has been granted a given role for a component\",\"params\":{\"account\":\"The user address for who we want to verify the permission\",\"alsoGlobal\":\"If true, it will return if the users has either the component role, or the role itself.                   If false, only the component role is accepted\",\"component\":\"The component where this role will apply\",\"role\":\"A role such as `keccak256(\\\"LEVEL1_ROLE\\\")` that's global\"},\"returns\":{\"_0\":\"Whether the user has or not any of the roles\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"title\":\"IAccessManager - Interface for the contract that handles roles for the PolicyPool and components\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAccessManager.sol\":\"IAccessManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IAssetManager.sol":{"IAssetManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"earnings","type":"int256"}],"name":"EarningsRecorded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyDeinvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MoneyInvested","type":"event"},{"inputs":[],"name":"connect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deinvestAll","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recordEarnings","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"name":"refillWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"connect()":"948cb719","deinvestAll()":"cec16f3f","rebalance()":"7d7c2a1c","recordEarnings()":"4eb978a4","refillWallet(uint256)":"1014a0c2","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"earnings\",\"type\":\"int256\"}],\"name\":\"EarningsRecorded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyDeinvested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MoneyInvested\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"connect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deinvestAll\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordEarnings\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"name\":\"refillWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"The asset manager is a contract that's plugged and called with `delegatecall` (operates in the context of the      reserve - see {Reserve}). The asset manager contract applies a strategy to invest the reserve funds and      get additional yields.      All implementations of this contract should use the Diamond Storage pattern to avoid overwriting the calling contract's state.      See https://eips.ethereum.org/EIPS/eip-2535#storage\",\"events\":{\"EarningsRecorded(int256)\":{\"details\":\"Event emitted when investment yields are accounted in the reserve\",\"params\":{\"earnings\":\"The amount of earnings generated since last record. It's positive in the case of earnings or negative when there are losses.\"}},\"MoneyDeinvested(uint256)\":{\"details\":\"Event emitted when funds are deinvested from the investment strategy and returned to the reserve as liquid funds.\",\"params\":{\"amount\":\"The amount de-invested\"}},\"MoneyInvested(uint256)\":{\"details\":\"Event emitted when funds are removed from Reserve liquidity and invested in the investment strategy,\",\"params\":{\"amount\":\"The amount invested\"}}},\"kind\":\"dev\",\"methods\":{\"connect()\":{\"details\":\"Function called when an asset manager is plugged into a reserve. Useful for initialization tasks Since the asset manager for a reserve can be changed and they use the stoage of the reserve contract, you can't assume the storage starts clean (all zeros). This is because a previous AM, using the same hash for the diamondStorage might have left some data. So, in the connect method you should initialize the state setting to zero what's expected to be zero.\"},\"deinvestAll()\":{\"details\":\"Deinvests all the funds transfer all the assets to the liquid balance. Called from the reserve when the asset manager is unplugged. Events: - Emits {MoneyDeinvested} with the amount transferred to the liquid balance. - Emits {EarningsRecorded} with the amount of earnings since earnings were recorded last time.\",\"returns\":{\"_0\":\"Returns the earnings or losses (negative) since last time earnings were recorded.\"}},\"rebalance()\":{\"details\":\"Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the reserve balance and those that are invested. Called with delegatecall by the reserve from the external function rebalance (see {Reserve-rebalance}). Events: - Emits {MoneyInvested} or {MoneyDeinvested}\"},\"recordEarnings()\":{\"details\":\"Gives the opportunity to the asset manager to rebalance the funds between those that are kept liquid in the reserve balance and those that are invested. Called with delegatecall by the reserve from the external function rebalance (see {Reserve-rebalance}). Events: - Emits {MoneyInvested} or {MoneyDeinvested}\"},\"refillWallet(uint256)\":{\"details\":\"Refills the reserve balance with enough money to do a payment. Called from the reserve when a payment needs to be made and there's no enough liquid balance (`currency().balanceOf(reserve) < paymentAmount`) Events: - Emits {MoneyDeinvested} with the amount transferred to the liquid balance.\",\"params\":{\"paymentAmount\":\"The total amount of the payment that needs to be made. If this function is called, it's because paymentAmount > balanceOf(reserve). The minimum amount that needs to be transferred to the reserve is `paymentAmount - balanceOf(reserve)`, but it can transfer more.\"},\"returns\":{\"_0\":\"Returns the actual amount transferred\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"IAssetManager - Interface of the asset management strategy that's plugged into the reserves\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAssetManager.sol\":\"IAssetManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IEToken.sol":{"IEToken":{"abi":[{"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":[{"indexed":false,"internalType":"uint256","name":"interestRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SCRLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"interestRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SCRUnlocked","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":"address","name":"borrower","type":"address"}],"name":"addBorrower","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"borrower","type":"address"}],"name":"getLoan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"internalLoan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"scrAmount","type":"uint256"},{"internalType":"uint256","name":"policyInterestRate","type":"uint256"}],"name":"lockScr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"borrower","type":"address"}],"name":"removeBorrower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"onBehalfOf","type":"address"}],"name":"repayLoan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"scr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scrInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenInterestRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"scrAmount","type":"uint256"},{"internalType":"uint256","name":"policyInterestRate","type":"uint256"},{"internalType":"int256","name":"adjustment","type":"int256"}],"name":"unlockScr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"withdrawn","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addBorrower(address)":"e3a8e29c","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit(address,uint256)":"47e7ef24","getLoan(address)":"33481fc9","internalLoan(uint256,address)":"c3df9dac","lockScr(uint256,uint256)":"837c83a3","removeBorrower(address)":"76c7fc55","repayLoan(uint256,address)":"918344d3","scr()":"6c6f4542","scrInterestRate()":"9d90724d","tokenInterestRate()":"159ec2df","totalSupply()":"18160ddd","totalWithdrawable()":"0600a865","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","unlockScr(uint256,uint256,int256)":"b1081ccf","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"interestRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SCRLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"interestRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SCRUnlocked\",\"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\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"addBorrower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"getLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"internalLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"scrAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"policyInterestRate\",\"type\":\"uint256\"}],\"name\":\"lockScr\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"removeBorrower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"repayLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scrInterestRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenInterestRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWithdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"scrAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"policyInterestRate\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"adjustment\",\"type\":\"int256\"}],\"name\":\"unlockScr\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for EToken smart contracts, these are the capital pools.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"SCRLocked(uint256,uint256)\":{\"details\":\"Event emitted when part of the funds of the eToken are locked as solvency capital.\",\"params\":{\"interestRate\":\"The annualized interestRate paid for the capital (wad)\",\"value\":\"The amount locked\"}},\"SCRUnlocked(uint256,uint256)\":{\"details\":\"Event emitted when the locked funds are unlocked and no longer used as solvency capital.\",\"params\":{\"interestRate\":\"The annualized interestRate that was paid for the capital (wad)\",\"value\":\"The amount unlocked\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"addBorrower(address)\":{\"details\":\"Adds an authorized _borrower_ to the eToken. This _borrower_ will be allowed to lock/unlock funds and to take loans. Requirements: - Must be called by `policyPool()` Events: - Emits {InternalBorrowerAdded}\",\"params\":{\"borrower\":\"The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\"}},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"deposit(address,uint256)\":{\"details\":\"Registers a deposit of liquidity in the pool. Called from the PolicyPool, assumes the amount has already been transferred. `amount` of eToken are minted and given to the provider in exchange of the liquidity provided. Requirements: - Must be called by `policyPool()` - The amount was transferred - `utilizationRate()` after the deposit is >= `minUtilizationRate()` Events: - Emits {Transfer} with `from` = 0x0 and to = `provider`\",\"params\":{\"amount\":\"The amount deposited.\",\"provider\":\"The address of the liquidity provider\"},\"returns\":{\"_0\":\"The actual balance of the provider\"}},\"getLoan(address)\":{\"details\":\"Returns the updated debt (principal + interest) of the `borrower`.\"},\"internalLoan(uint256,address)\":{\"details\":\"Lends `amount` to the borrower (msg.sender), transferring the money to `receiver`. This reduces the `totalSupply()` of the eToken, and stores a debt that will be repaid (hopefully) with `repayLoan`. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. Events: - Emits {InternalLoan} - Emits {ERC20-Transfer} transferring `lent` to `receiver`\",\"params\":{\"amount\":\"The amount required\",\"receiver\":\"The received of the funds lent. This is usually the policyholder if the loan is used for a payout.\"},\"returns\":{\"_0\":\"Returns the amount that wasn't able to fulfil. `amount - lent`\"}},\"lockScr(uint256,uint256)\":{\"details\":\"Locks part of the liquidity of the EToken as solvency capital. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. - `scrAmount` <= `fundsAvailableToLock()` Events: - Emits {SCRLocked}\",\"params\":{\"policyInterestRate\":\"The annualized interest rate (wad) to be paid for the `scrAmount`\",\"scrAmount\":\"The amount to lock\"}},\"removeBorrower(address)\":{\"details\":\"Removes an authorized _borrower_ to the eToken. The _borrower_ can't no longer lock funds or take loans. Requirements: - Must be called by `policyPool()` Events: - Emits {InternalBorrowerRemoved} with the defaulted debt\",\"params\":{\"borrower\":\"The address of the _borrower_, a PremiumsAccount that has this eToken as senior or junior eToken.\"}},\"repayLoan(uint256,address)\":{\"details\":\"Repays a loan taken with `internalLoan`. Requirements: - `msg.sender` approved the spending of `currency()` for at least `amount` Events: - Emits {InternalLoanRepaid} - Emits {ERC20-Transfer} transferring `amount` from `msg.sender` to `this`\",\"params\":{\"amount\":\"The amount to repaid, that will be transferred from `msg.sender` balance.\",\"onBehalfOf\":\"The address of the borrower that took the loan. Usually `onBehalfOf == msg.sender` but we keep it open because in some cases with might need someone else pays the debt.\"}},\"scr()\":{\"details\":\"Returns the amount of capital that's locked as solvency capital for active policies.\"},\"scrInterestRate()\":{\"details\":\"The weighted average annualized interest rate paid by the currently locked `scr()`.\"},\"tokenInterestRate()\":{\"details\":\"The annualized interest rate at which the `totalSupply()` grows\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"totalWithdrawable()\":{\"details\":\"Returns the total amount that can be withdrawn\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"unlockScr(uint256,uint256,int256)\":{\"details\":\"Unlocks solvency capital previously locked with `lockScr`. The capital no longer needed as solvency. Requirements: - Must be called by a _borrower_ previously added with `addBorrower`. - `scrAmount` <= `scr()` Events: - Emits {SCRUnlocked}\",\"params\":{\"policyInterestRate\":\"The annualized interest rate that was paid for the `scrAmount`, must be the same that was sent in `lockScr` call.\",\"scrAmount\":\"The amount to unlock\"}},\"withdraw(address,uint256)\":{\"details\":\"Withdraws an amount from an eToken. `withdrawn` eTokens are be burned and the user receives the same amount in `currency()`. If the asked `amount` can't be withdrawn, it withdraws as much as possible Requirements: - Must be called by `policyPool()` Events: - Emits {Transfer} with `from` = `provider` and to = `0x0`\",\"params\":{\"amount\":\"The amount to withdraw. If `amount` == `type(uint256).max`, then tries to withdraw all the balance.\",\"provider\":\"The address of the liquidity provider\"},\"returns\":{\"withdrawn\":\"The actual amount that withdrawn. `withdrawn <= amount && withdrawn <= balanceOf(provider)`\"}}},\"title\":\"IEToken interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IEToken.sol\":\"IEToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ILPWhitelist.sol":{"ILPWhitelist":{"abi":[{"inputs":[{"internalType":"contract IEToken","name":"etoken","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"acceptsDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"etoken","type":"address"},{"internalType":"address","name":"providerFrom","type":"address"},{"internalType":"address","name":"providerTo","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"acceptsTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"etoken","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"acceptsWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptsDeposit(address,address,uint256)":"37ee20dd","acceptsTransfer(address,address,address,uint256)":"5fcdca37","acceptsWithdrawal(address,address,uint256)":"9051c763"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"etoken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptsDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"etoken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerFrom\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptsTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"etoken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptsWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"kind\":\"dev\",\"methods\":{\"acceptsDeposit(address,address,uint256)\":{\"details\":\"Indicates whether or not a liquidity provider can do a deposit in an eToken.\",\"params\":{\"amount\":\"The amount of the deposit\",\"etoken\":\"The eToken (see {EToken}) where the provider wants to deposit money.\",\"provider\":\"The address of the liquidity provider (user) that wants to deposit\"},\"returns\":{\"_0\":\"true if `provider` deposit is accepted, false if not\"}},\"acceptsTransfer(address,address,address,uint256)\":{\"details\":\"Indicates whether or not the eTokens can be transferred from `providerFrom` to `providerTo`\",\"params\":{\"amount\":\"The amount of tokens to be transferred\",\"etoken\":\"The eToken (see {EToken}) that the LPs have the intention to transfer.\",\"providerFrom\":\"The current owner of the tokens\",\"providerTo\":\"The destination of the tokens if the transfer is accepted\"},\"returns\":{\"_0\":\"true if the transfer operation is accepted, false if not.\"}},\"acceptsWithdrawal(address,address,uint256)\":{\"details\":\"Indicates whether or not a liquidity provider can withdraw an eToken.\",\"params\":{\"amount\":\"The amount of the withdrawal\",\"etoken\":\"The eToken (see {EToken}) where the provider wants to withdraw money.\",\"provider\":\"The address of the liquidity provider (user) that wants to withdraw\"},\"returns\":{\"_0\":\"true if `provider` withdraw request is accepted, false if not\"}}},\"title\":\"ILPWhitelist - Interface that handles the whitelisting of Liquidity Providers\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ILPWhitelist.sol\":\"ILPWhitelist\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IPolicyHolder.sol":{"IPolicyHolder":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onPayoutReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"onPolicyExpired","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02","onPayoutReceived(address,address,uint256,uint256)":"d6281d3e","onPolicyExpired(address,address,uint256)":"e8e617b7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onPayoutReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"onPolicyExpired\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to be a holder of Ensuro Policies and receive the payouts\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"},\"onPayoutReceived(address,address,uint256,uint256)\":{\"details\":\"Whenever an Policy is resolved with payout > 0, this function is called It must return its Solidity selector to confirm the payout. If interface is not implemented by the recipient, it will be ignored and the payout will be successful. If any other value is returned or it reverts, the policy resolution / payout will be reverted. The selector can be obtained in Solidity with `IPolicyHolder.onPayoutReceived.selector`.\"},\"onPolicyExpired(address,address,uint256)\":{\"details\":\"Whenever an Policy is expired or resolved with payout = 0, this function is called It should return its Solidity selector to confirm the payout. If interface is not implemented by the recipient, it will be ignored and the payout will be successful. No mather what's the return value or even if this function reverts, this function will not revert the policy expiration. The selector can be obtained in Solidity with `IPolicyHolder.onPolicyExpired.selector`.\"}},\"title\":\"Policy holder interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPolicyHolder.sol\":\"IPolicyHolder\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"contracts/interfaces/IPolicyHolder.sol\":{\"keccak256\":\"0xddf0d346e5ee68e7ae051048112384409797d7e094a47ab404c6fb6bdf8827c1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98a041a857a99cda900188969283dbf941ec034b641c7abea399c3e4ee94cb64\",\"dweb:/ipfs/QmdjuJipt2jAapKAk2APC1BTcsgajnbkQTthd4LiwA8F7r\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IPolicyHolderV2.sol":{"IPolicyHolderV2":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onPayoutReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"onPolicyExpired","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"oldPolicyId","type":"uint256"},{"internalType":"uint256","name":"newPolicyId","type":"uint256"}],"name":"onPolicyReplaced","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02","onPayoutReceived(address,address,uint256,uint256)":"d6281d3e","onPolicyExpired(address,address,uint256)":"e8e617b7","onPolicyReplaced(address,address,uint256,uint256)":"5ee0c7dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onPayoutReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"onPolicyExpired\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oldPolicyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newPolicyId\",\"type\":\"uint256\"}],\"name\":\"onPolicyReplaced\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to be a holder of Ensuro Policies and receive notification of payouts and      replacements.      Implementors of this interface MUST return true on supportsInterface for both IPolicyHolder and IPolicyHolderV2.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"},\"onPayoutReceived(address,address,uint256,uint256)\":{\"details\":\"Whenever an Policy is resolved with payout > 0, this function is called It must return its Solidity selector to confirm the payout. If interface is not implemented by the recipient, it will be ignored and the payout will be successful. If any other value is returned or it reverts, the policy resolution / payout will be reverted. The selector can be obtained in Solidity with `IPolicyHolder.onPayoutReceived.selector`.\"},\"onPolicyExpired(address,address,uint256)\":{\"details\":\"Whenever an Policy is expired or resolved with payout = 0, this function is called It should return its Solidity selector to confirm the payout. If interface is not implemented by the recipient, it will be ignored and the payout will be successful. No mather what's the return value or even if this function reverts, this function will not revert the policy expiration. The selector can be obtained in Solidity with `IPolicyHolder.onPolicyExpired.selector`.\"},\"onPolicyReplaced(address,address,uint256,uint256)\":{\"details\":\"Whenever a policy is replaced, this function is called It must return its Solidity selector to confirm the payout. If interface is not implemented by the recipient, it will be ignored and the replacement will be successful. If any other value is returned or it reverts, the policy replacement will be reverted. The selector can be obtained in Solidity with `IPolicyHolderV2.onPolicyReplaced.selector`.\"}},\"title\":\"Policy holder interface - V2 of the interface that adds onPolicyReplaced endpoint\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPolicyHolderV2.sol\":\"IPolicyHolderV2\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"contracts/interfaces/IPolicyHolder.sol\":{\"keccak256\":\"0xddf0d346e5ee68e7ae051048112384409797d7e094a47ab404c6fb6bdf8827c1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98a041a857a99cda900188969283dbf941ec034b641c7abea399c3e4ee94cb64\",\"dweb:/ipfs/QmdjuJipt2jAapKAk2APC1BTcsgajnbkQTthd4LiwA8F7r\"]},\"contracts/interfaces/IPolicyHolderV2.sol\":{\"keccak256\":\"0x978c37bf3a9dfa2942a53ff10d0b6a4ac16510b6f3231ee2415ea6ea5349512f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b777c52b8697624c3504156f409b5238de8ebc778ccdadb5dafb42d6293a559\",\"dweb:/ipfs/QmVgGMPkpCL3ompGN4tHG5jdopkTuGaHQvK7eZUcxCDvh6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IPolicyPool.sol":{"IPolicyPool":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"indexed":false,"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"NewPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldPolicyId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newPolicyId","type":"uint256"}],"name":"PolicyReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payout","type":"uint256"}],"name":"PolicyResolved","type":"event"},{"inputs":[],"name":"access","outputs":[{"internalType":"contract IAccessManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"eToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"getPolicyHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"policyHolder","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy_","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"bool","name":"customerWon","type":"bool"}],"name":"resolvePolicyFullPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"eToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"access()":"71907f17","currency()":"e5a6b10f","deposit(address,uint256)":"47e7ef24","expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"6af6f1ef","getPolicyHash(uint256)":"792da09e","isActive(uint256)":"82afd23b","newPolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)":"6769a76f","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)":"3ed7c1ae","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)":"ffa600e3","treasury()":"61d027b3","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"NewPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldPolicyId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newPolicyId\",\"type\":\"uint256\"}],\"name\":\"PolicyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"PolicyResolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"access\",\"outputs\":[{\"internalType\":\"contract IAccessManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"eToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"getPolicyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy_\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"customerWon\",\"type\":\"bool\"}],\"name\":\"resolvePolicyFullPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"eToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewPolicy(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Event emitted every time a new policy is added to the pool. Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"policy\":\"The {Policy-PolicyData} struct with all the immutable fields of the policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"PolicyReplaced(address,uint256,uint256)\":{\"details\":\"Event emitted every time a new policy replaces an old Policy Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"newPolicyId\":\"The id of the new policy.\",\"oldPolicyId\":\"The id of the replaced policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"PolicyResolved(address,uint256,uint256)\":{\"details\":\"Event emitted every time a policy is removed from the pool. If the policy expired, the `payout` is 0, otherwise is the amount transferred to the policyholder.\",\"params\":{\"payout\":\"The payout that has been paid to the policy holder. 0 when the policy expired.\",\"policyId\":\"The unique id of the policy\",\"riskModule\":\"The risk module where that created the policy initially.\"}}},\"kind\":\"dev\",\"methods\":{\"access()\":{\"details\":\"Reference to the {AccessManager} contract, this contract manages the access controls.\",\"returns\":{\"_0\":\"The address of the AccessManager contract\"}},\"currency()\":{\"details\":\"Reference to the main currency (ERC20) used in the protocol\",\"returns\":{\"_0\":\"The address of the currency (e.g. USDC) token used in the protocol\"}},\"deposit(address,uint256)\":{\"details\":\"Deposits liquidity into an eToken. Forwards the call to {EToken-deposit}, after transferring the funds. The user will receive etokens for the same amount deposited. Requirements: - `msg.sender` approved the spending of `currency()` for at least `amount` - `eToken` is an active eToken installed in the pool. Events: - {EToken-Transfer}: from 0x0 to `msg.sender`, reflects the eTokens minted. - {ERC20-Transfer}: from `msg.sender` to address(eToken)\",\"params\":{\"amount\":\"The amount to deposit\",\"eToken\":\"The address of the eToken to which the user wants to provide liquidity\"}},\"expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Resolves a policy with a payout 0, unlocking the solvency. Can be called by anyone, but only after `Policy.expiration`. Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not resolved before - Policy expired: `Policy.expiration` <= block.timestamp Events: - {PolicyPool-PolicyResolved}: with payout == 0\",\"params\":{\"policy\":\"A policy previously created with `newPolicy`\"}},\"getPolicyHash(uint256)\":{\"details\":\"Returns the stored hash of the policy. It's `bytes32(0)` is the policy isn't active.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Returns the hash of a given policy id\"}},\"isActive(uint256)\":{\"details\":\"Returns whether a policy is active, i.e., it's still in the PolicyPool, not yet resolved or expired.      Be aware that a policy might be active but the `block.timestamp` might be after the expiration date, so it      can't be triggered with a payout.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Whether the policy is active or not\"}},\"newPolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)\":{\"details\":\"Creates a new Policy. Must be called from an active RiskModule Requirements: - `msg.sender` must be an active RiskModule - `caller` approved the spending of `currency()` for at least `policy.premium` - `internalId` must be unique within `policy.riskModule` and not used before Events: - {PolicyPool-NewPolicy}: with all the details about the policy - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium (see Premium Split in the docs)\",\"params\":{\"internalId\":\"A unique id within the RiskModule, that will be used to compute the policy id\",\"payer\":\"The address that will pay for the premium\",\"policy\":\"A policy created with {Policy-initialize}\",\"policyHolder\":\"The address of the policy holder\"},\"returns\":{\"_0\":\"The policy id, identifying the NFT and the policy\"}},\"replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)\":{\"details\":\"Replaces a policy with another. Must be called from an active RiskModule Requirements: - `msg.sender` must be an active RiskModule - `caller` approved the spending of `currency()` for at least `newPolicy_.premium - oldPolicy.premium` - `internalId` must be unique within `policy.riskModule` and not used before Events: - {PolicyPool-PolicyReplaced}: with all the details about the policy - {ERC20-Transfer}: does several transfers from caller address to the different receivers of the premium (see Premium Split in the docs)\",\"params\":{\"internalId\":\"A unique id within the RiskModule, that will be used to compute the policy id\",\"newPolicy_\":\"A policy created with {Policy-initialize}\",\"oldPolicy\":\"A policy created previously and not expired\",\"payer\":\"The address that will pay for the premium\"},\"returns\":{\"_0\":\"The policy id, identifying the NFT and the policy\"}},\"resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"Resolves a policy with a payout. Must be called from an active RiskModule Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if payout > 0). - `payout`: must be less than equal to `policy.payout`. Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"payout\":\"The amount to paid to the policyholder\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)\":{\"details\":\"Resolves a policy with a payout that can be either 0 or the maximum payout of the policy Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if customerWon). Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"customerWon\":\"Indicated if the payout is zero or the maximum payout\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"treasury()\":{\"details\":\"Address of the treasury, that receives protocol fees.\",\"returns\":{\"_0\":\"The address of the treasury\"}},\"withdraw(address,uint256)\":{\"details\":\"Withdraws an amount from an eToken. Forwards the call to {EToken-withdraw}. `amount` of eTokens will be burned and the user will receive the same amount in `currency()`. Requirements: - `eToken` is an active (or deprecated) eToken installed in the pool. Events: - {EToken-Transfer}: from `msg.sender` to `0x0`, reflects the eTokens burned. - {ERC20-Transfer}: from address(eToken) to `msg.sender`\",\"params\":{\"amount\":\"The amount to withdraw. If equal to type(uint256).max, means full withdrawal.               If the balance is not enough or can't be withdrawn (locked as SCR), it withdraws               as much as it can, but doesn't fails.\",\"eToken\":\"The address of the eToken from where the user wants to withdraw liquidity\"},\"returns\":{\"_0\":\"Returns the actual amount withdrawn.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPolicyPool.sol\":\"IPolicyPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IPolicyPoolComponent.sol":{"IPolicyPoolComponent":{"abi":[{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"policyPool()":"4d15eb03","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for Contracts linked (owned) by a PolicyPool. Useful to avoid cyclic dependencies\",\"kind\":\"dev\",\"methods\":{\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"IPolicyPoolComponent interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPolicyPoolComponent.sol\":\"IPolicyPoolComponent\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IPremiumsAccount.sol":{"IPremiumsAccount":{"abi":[{"inputs":[],"name":"juniorEtk","outputs":[{"internalType":"contract IEToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"policyCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"policyExpired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy","type":"tuple"}],"name":"policyReplaced","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"policyHolder","type":"address"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"policyResolvedWithPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"purePremiums","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seniorEtk","outputs":[{"internalType":"contract IEToken","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"juniorEtk()":"536ebbfc","policyCreated((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"e3638ea3","policyExpired((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"c7a9c70d","policyReplaced((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"ab83b4be","policyResolvedWithPayout(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"9d8c5ee7","purePremiums()":"26ccbd22","seniorEtk()":"7b83037b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"juniorEtk\",\"outputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"policyCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"policyExpired\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy\",\"type\":\"tuple\"}],\"name\":\"policyReplaced\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"policyResolvedWithPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"purePremiums\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"seniorEtk\",\"outputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for Premiums Account contracts.\",\"kind\":\"dev\",\"methods\":{\"juniorEtk()\":{\"details\":\"The junior eToken, the primary source of solvency, used if the premiums account is exhausted.\"},\"policyCreated((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Adds a policy to the PremiumsAccount. Stores the pure premiums and locks the aditional funds from junior and senior eTokens. Requirements: - Must be called by `policyPool()` Events: - {EToken-SCRLocked}\",\"params\":{\"policy\":\"The policy to add (created in this transaction)\"}},\"policyExpired((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"The PremiumsAccount is notified that the policy has expired, unlocks the SCR and earns the pure premium. Requirements: - Must be called by `policyPool()` Events: - {ERC20-Transfer}: `to == policyHolder`, `amount == payout` - {EToken-InternalLoanRepaid}: optional, if a loan was taken before\",\"params\":{\"policy\":\"The policy that has expired\"}},\"policyReplaced((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Replaces a policy with another in PremiumsAccount. Stores the pure premiums difference and re-locks the aditional funds from junior and senior eTokens. Requirements: - Must be called by `policyPool()` Events: - {EToken-SCRUnlocked} - {EToken-SCRLocked}\",\"params\":{\"newPolicy\":\"The policy that will replace the old one (created in this transaction)\",\"oldPolicy\":\"The policy to replace (created in a previous transaction)\"}},\"policyResolvedWithPayout(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"The PremiumsAccount is notified that the policy was resolved and issues the payout to the policyHolder. Requirements: - Must be called by `policyPool()` Events: - {ERC20-Transfer}: `to == policyHolder`, `amount == payout` - {EToken-InternalLoan}: optional, if a loan needs to be taken - {EToken-SCRUnlocked}\",\"params\":{\"payout\":\"The amount that has to be transferred to `policyHolder`\",\"policy\":\"The policy that was resolved\",\"policyHolder\":\"The one that will receive the payout\"}},\"purePremiums()\":{\"details\":\"The total amount of premiums hold by this PremiumsAccount\"},\"seniorEtk()\":{\"details\":\"The senior eToken, the secondary source of solvency, used if the premiums account is exhausted and junior too\"}},\"title\":\"IPremiumsAccount interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPremiumsAccount.sol\":\"IPremiumsAccount\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IRiskModule.sol":{"IRiskModule":{"abi":[{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","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":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeExposure()":"7ff8bf25","exposureLimit()":"85272a6e","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","params()":"cff0ab96","premiumsAccount()":"73a952e8","releaseExposure(uint256)":"6a448ef1","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"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\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for RiskModule smart contracts. Gives access to RiskModule configuration parameters\",\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"title\":\"IRiskModule interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IRiskModule.sol\":\"IRiskModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/migration/LPManualWhitelistV20.sol":{"LPManualWhitelistV20":{"abi":[{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"LPWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"LP_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"providerTo","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"etoken","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"acceptsWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"LP_WHITELIST_ROLE()":"aad4148c","acceptsDeposit(address,address,uint256)":"37ee20dd","acceptsTransfer(address,address,address,uint256)":"5fcdca37","acceptsWithdrawal(address,address,uint256)":"9051c763","currency()":"e5a6b10f","initialize()":"8129fc1c","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","whitelistAddress(address,bool)":"b9a45aac"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"LPWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LP_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"etoken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptsWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"whitelistAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"LP addresses are whitelisted (and un-whitelisted) manually with transactions by user with given role\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptsWithdrawal(address,address,uint256)\":{\"details\":\"Indicates whether or not a liquidity provider can withdraw an eToken.\",\"params\":{\"amount\":\"The amount of the withdrawal\",\"etoken\":\"The eToken (see {EToken}) where the provider wants to withdraw money.\",\"provider\":\"The address of the liquidity provider (user) that wants to withdraw\"},\"returns\":{\"_0\":\"true if `provider` withdraw request is accepted, false if not\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize()\":{\"details\":\"Initializes the Whitelist contract\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Manual Whitelisting contract - V2.0\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/migration/LPManualWhitelistV20.sol\":\"LPManualWhitelistV20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/migration/LPManualWhitelistV20.sol\":{\"keccak256\":\"0x28d15e08f7734a74525832b806c37b59c63d0e55e221d759cdfd56f406edbc6f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://46f524d9879cc7ceed78056ca4139ca40d51bc5223a0c05afe4b4332a37500fc\",\"dweb:/ipfs/QmPfVquhufA6ZEPy5zjaZSzTTwQXrfdNCxz8VXQLRGTgU9\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":24007,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"_whitelisted","offset":0,"slot":"251","type":"t_mapping(t_address,t_bool)"},{"astId":24128,"contract":"contracts/migration/LPManualWhitelistV20.sol:LPManualWhitelistV20","label":"__gap","offset":0,"slot":"252","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/migration/LPManualWhitelistV20Upgraded.sol":{"LPManualWhitelistV20Upgraded":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"provider","type":"address"},{"indexed":false,"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"LPWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"LP_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"providerTo","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"acceptsTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"etk","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"acceptsWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_24024":{"entryPoint":null,"id":24024,"parameterSlots":1,"returnSlots":0},"@_24150":{"entryPoint":null,"id":24150,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":119,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:924:88","nodeType":"YulBlock","src":"0:924:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"116:209:88","nodeType":"YulBlock","src":"116:209:88","statements":[{"body":{"nativeSrc":"162:16:88","nodeType":"YulBlock","src":"162:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"171:1:88","nodeType":"YulLiteral","src":"171:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"174:1:88","nodeType":"YulLiteral","src":"174:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"164:6:88","nodeType":"YulIdentifier","src":"164:6:88"},"nativeSrc":"164:12:88","nodeType":"YulFunctionCall","src":"164:12:88"},"nativeSrc":"164:12:88","nodeType":"YulExpressionStatement","src":"164:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"137:7:88","nodeType":"YulIdentifier","src":"137:7:88"},{"name":"headStart","nativeSrc":"146:9:88","nodeType":"YulIdentifier","src":"146:9:88"}],"functionName":{"name":"sub","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:23:88","nodeType":"YulFunctionCall","src":"133:23:88"},{"kind":"number","nativeSrc":"158:2:88","nodeType":"YulLiteral","src":"158:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"129:3:88","nodeType":"YulIdentifier","src":"129:3:88"},"nativeSrc":"129:32:88","nodeType":"YulFunctionCall","src":"129:32:88"},"nativeSrc":"126:52:88","nodeType":"YulIf","src":"126:52:88"},{"nativeSrc":"187:29:88","nodeType":"YulVariableDeclaration","src":"187:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"206:9:88","nodeType":"YulIdentifier","src":"206:9:88"}],"functionName":{"name":"mload","nativeSrc":"200:5:88","nodeType":"YulIdentifier","src":"200:5:88"},"nativeSrc":"200:16:88","nodeType":"YulFunctionCall","src":"200:16:88"},"variables":[{"name":"value","nativeSrc":"191:5:88","nodeType":"YulTypedName","src":"191:5:88","type":""}]},{"body":{"nativeSrc":"279:16:88","nodeType":"YulBlock","src":"279:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"288:1:88","nodeType":"YulLiteral","src":"288:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"291:1:88","nodeType":"YulLiteral","src":"291:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"281:6:88","nodeType":"YulIdentifier","src":"281:6:88"},"nativeSrc":"281:12:88","nodeType":"YulFunctionCall","src":"281:12:88"},"nativeSrc":"281:12:88","nodeType":"YulExpressionStatement","src":"281:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"238:5:88","nodeType":"YulIdentifier","src":"238:5:88"},{"arguments":[{"name":"value","nativeSrc":"249:5:88","nodeType":"YulIdentifier","src":"249:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"264:3:88","nodeType":"YulLiteral","src":"264:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"269:1:88","nodeType":"YulLiteral","src":"269:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"260:3:88","nodeType":"YulIdentifier","src":"260:3:88"},"nativeSrc":"260:11:88","nodeType":"YulFunctionCall","src":"260:11:88"},{"kind":"number","nativeSrc":"273:1:88","nodeType":"YulLiteral","src":"273:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"256:3:88","nodeType":"YulIdentifier","src":"256:3:88"},"nativeSrc":"256:19:88","nodeType":"YulFunctionCall","src":"256:19:88"}],"functionName":{"name":"and","nativeSrc":"245:3:88","nodeType":"YulIdentifier","src":"245:3:88"},"nativeSrc":"245:31:88","nodeType":"YulFunctionCall","src":"245:31:88"}],"functionName":{"name":"eq","nativeSrc":"235:2:88","nodeType":"YulIdentifier","src":"235:2:88"},"nativeSrc":"235:42:88","nodeType":"YulFunctionCall","src":"235:42:88"}],"functionName":{"name":"iszero","nativeSrc":"228:6:88","nodeType":"YulIdentifier","src":"228:6:88"},"nativeSrc":"228:50:88","nodeType":"YulFunctionCall","src":"228:50:88"},"nativeSrc":"225:70:88","nodeType":"YulIf","src":"225:70:88"},{"nativeSrc":"304:15:88","nodeType":"YulAssignment","src":"304:15:88","value":{"name":"value","nativeSrc":"314:5:88","nodeType":"YulIdentifier","src":"314:5:88"},"variableNames":[{"name":"value0","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"14:311:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:88","nodeType":"YulTypedName","src":"82:9:88","type":""},{"name":"dataEnd","nativeSrc":"93:7:88","nodeType":"YulTypedName","src":"93:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"105:6:88","nodeType":"YulTypedName","src":"105:6:88","type":""}],"src":"14:311:88"},{"body":{"nativeSrc":"504:229:88","nodeType":"YulBlock","src":"504:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"521:9:88","nodeType":"YulIdentifier","src":"521:9:88"},{"kind":"number","nativeSrc":"532:2:88","nodeType":"YulLiteral","src":"532:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"514:6:88","nodeType":"YulIdentifier","src":"514:6:88"},"nativeSrc":"514:21:88","nodeType":"YulFunctionCall","src":"514:21:88"},"nativeSrc":"514:21:88","nodeType":"YulExpressionStatement","src":"514:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"555:9:88","nodeType":"YulIdentifier","src":"555:9:88"},{"kind":"number","nativeSrc":"566:2:88","nodeType":"YulLiteral","src":"566:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"551:3:88","nodeType":"YulIdentifier","src":"551:3:88"},"nativeSrc":"551:18:88","nodeType":"YulFunctionCall","src":"551:18:88"},{"kind":"number","nativeSrc":"571:2:88","nodeType":"YulLiteral","src":"571:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"544:6:88","nodeType":"YulIdentifier","src":"544:6:88"},"nativeSrc":"544:30:88","nodeType":"YulFunctionCall","src":"544:30:88"},"nativeSrc":"544:30:88","nodeType":"YulExpressionStatement","src":"544:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"594:9:88","nodeType":"YulIdentifier","src":"594:9:88"},{"kind":"number","nativeSrc":"605:2:88","nodeType":"YulLiteral","src":"605:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"590:3:88","nodeType":"YulIdentifier","src":"590:3:88"},"nativeSrc":"590:18:88","nodeType":"YulFunctionCall","src":"590:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"610:34:88","nodeType":"YulLiteral","src":"610:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"583:6:88","nodeType":"YulIdentifier","src":"583:6:88"},"nativeSrc":"583:62:88","nodeType":"YulFunctionCall","src":"583:62:88"},"nativeSrc":"583:62:88","nodeType":"YulExpressionStatement","src":"583:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"665:9:88","nodeType":"YulIdentifier","src":"665:9:88"},{"kind":"number","nativeSrc":"676:2:88","nodeType":"YulLiteral","src":"676:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"661:3:88","nodeType":"YulIdentifier","src":"661:3:88"},"nativeSrc":"661:18:88","nodeType":"YulFunctionCall","src":"661:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"681:9:88","nodeType":"YulLiteral","src":"681:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"},"nativeSrc":"654:37:88","nodeType":"YulFunctionCall","src":"654:37:88"},"nativeSrc":"654:37:88","nodeType":"YulExpressionStatement","src":"654:37:88"},{"nativeSrc":"700:27:88","nodeType":"YulAssignment","src":"700:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"712:9:88","nodeType":"YulIdentifier","src":"712:9:88"},{"kind":"number","nativeSrc":"723:3:88","nodeType":"YulLiteral","src":"723:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"708:3:88","nodeType":"YulIdentifier","src":"708:3:88"},"nativeSrc":"708:19:88","nodeType":"YulFunctionCall","src":"708:19:88"},"variableNames":[{"name":"tail","nativeSrc":"700:4:88","nodeType":"YulIdentifier","src":"700:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"330:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"481:9:88","nodeType":"YulTypedName","src":"481:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"495:4:88","nodeType":"YulTypedName","src":"495:4:88","type":""}],"src":"330:403:88"},{"body":{"nativeSrc":"835:87:88","nodeType":"YulBlock","src":"835:87:88","statements":[{"nativeSrc":"845:26:88","nodeType":"YulAssignment","src":"845:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"857:9:88","nodeType":"YulIdentifier","src":"857:9:88"},{"kind":"number","nativeSrc":"868:2:88","nodeType":"YulLiteral","src":"868:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"853:3:88","nodeType":"YulIdentifier","src":"853:3:88"},"nativeSrc":"853:18:88","nodeType":"YulFunctionCall","src":"853:18:88"},"variableNames":[{"name":"tail","nativeSrc":"845:4:88","nodeType":"YulIdentifier","src":"845:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"887:9:88","nodeType":"YulIdentifier","src":"887:9:88"},{"arguments":[{"name":"value0","nativeSrc":"902:6:88","nodeType":"YulIdentifier","src":"902:6:88"},{"kind":"number","nativeSrc":"910:4:88","nodeType":"YulLiteral","src":"910:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"898:3:88","nodeType":"YulIdentifier","src":"898:3:88"},"nativeSrc":"898:17:88","nodeType":"YulFunctionCall","src":"898:17:88"}],"functionName":{"name":"mstore","nativeSrc":"880:6:88","nodeType":"YulIdentifier","src":"880:6:88"},"nativeSrc":"880:36:88","nodeType":"YulFunctionCall","src":"880:36:88"},"nativeSrc":"880:36:88","nodeType":"YulExpressionStatement","src":"880:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"738:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"804:9:88","nodeType":"YulTypedName","src":"804:9:88","type":""},{"name":"value0","nativeSrc":"815:6:88","nodeType":"YulTypedName","src":"815:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"826:4:88","nodeType":"YulTypedName","src":"826:4:88","type":""}],"src":"738:184:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405230608052348015610013575f5ffd5b5060405161191f38038061191f83398101604081905261003291610133565b80806001600160a01b03811661005b57604051636b23cf0160e01b815260040160405180910390fd5b610063610077565b6001600160a01b031660a052506101609050565b5f54610100900460ff16156100e25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610131575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610143575f5ffd5b81516001600160a01b0381168114610159575f5ffd5b9392505050565b60805160a0516117586101c75f395f81816101990152818161043e0152818161080d015281816109a801528181610b2d01528181610c290152610f5b01525f818161031e015281816103670152818161054a0152818161058a015261061701526117585ff3fe6080604052600436106100e4575f3560e01c80635c975abb116100875780639051c763116100575780639051c76314610264578063aad4148c14610283578063b9a45aac146102b6578063e5a6b10f146102d5575f5ffd5b80635c975abb146102065780635fcdca371461021d5780638129fc1c1461023c5780638456cb5914610250575f5ffd5b80633f4ba83a116100c25780633f4ba83a146101775780634d15eb031461018b5780634f1ef286146101d157806352d1902d146101e4575f5ffd5b806301ffc9a7146100e85780633659cfe61461011c57806337ee20dd1461013d575b5f5ffd5b3480156100f3575f5ffd5b50610107610102366004611360565b6102e9565b60405190151581526020015b60405180910390f35b348015610127575f5ffd5b5061013b61013636600461139b565b610314565b005b348015610148575f5ffd5b506101076101573660046113b6565b506001600160a01b03165f90815260fb602052604090205460ff16919050565b348015610182575f5ffd5b5061013b6103fa565b348015610196575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610113565b61013b6101df366004611408565b610540565b3480156101ef575f5ffd5b506101f861060b565b604051908152602001610113565b348015610211575f5ffd5b5060975460ff16610107565b348015610228575f5ffd5b506101076102373660046114ce565b6106bc565b348015610247575f5ffd5b5061013b6106e0565b34801561025b575f5ffd5b5061013b6107ea565b34801561026f575f5ffd5b5061010761027e3660046113b6565b61090e565b34801561028e575f5ffd5b506101f87fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b3480156102c1575f5ffd5b5061013b6102d0366004611529565b610985565b3480156102e0575f5ffd5b506101b9610b2a565b5f6102f382610bb0565b8061030e57506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103655760405162461bcd60e51b815260040161035c90611560565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103ad5f5160206116dc5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103d35760405162461bcd60e51b815260040161035c906115ac565b6103dc81610be5565b604080515f808252602082019092526103f791839190610d28565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610498573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104bc91906115f8565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b15801561051e575f5ffd5b505afa158015610530573d5f5f3e3d5ffd5b5050505061053c610e92565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105885760405162461bcd60e51b815260040161035c90611560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105d05f5160206116dc5f395f51905f52546001600160a01b031690565b6001600160a01b0316146105f65760405162461bcd60e51b815260040161035c906115ac565b6105ff82610be5565b61053c82826001610d28565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106aa5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161035c565b505f5160206116dc5f395f51905f5290565b6001600160a01b0382165f90815260fb602052604090205460ff165b949350505050565b5f54610100900460ff16158080156106fe57505f54600160ff909116105b806107175750303b15801561071757505f5460ff166001145b61077a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035c565b5f805460ff19166001179055801561079b575f805461ff0019166101001790555b6107a3610ee4565b80156103f7575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610867573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088b91906115f8565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b03938416600482015260248101929092529091166044820152600160648201526084015f6040518083038186803b1580156108f0575f5ffd5b505afa158015610902573d5f5f3e3d5ffd5b505050506103f7610f1c565b6040516337ee20dd60e01b81526001600160a01b03808516600483015283166024820152604481018290525f9030906337ee20dd90606401602060405180830381865afa158015610961573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190611613565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2691906115f8565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201525f60648201526084015f6040518083038186803b158015610a8a575f5ffd5b505afa158015610a9c573d5f5f3e3d5ffd5b5050506001600160a01b0384165f90815260fb602052604090205460ff161515831515149050610b25576001600160a01b0383165f81815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906115f8565b905090565b5f6001600160e01b031982166301ffc9a760e01b148061030e57506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca791906115f8565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b158015610d09575f5ffd5b505afa158015610d1b573d5f5f3e3d5ffd5b50505050610b2583610f59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d5b57610b258361100a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610db5575060408051601f3d908101601f19168201909252610db29181019061162e565b60015b610e185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161035c565b5f5160206116dc5f395f51905f528114610e865760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161035c565b50610b258383836110a5565b610e9a6110cf565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff16610f0a5760405162461bcd60e51b815260040161035c90611645565b610f12611118565b610f1a61113e565b565b610f2461116c565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ec73390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe391906115f8565b6001600160a01b0316146103f75760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6110775760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161035c565b5f5160206116dc5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6110ae836111b2565b5f825111806110ba5750805b15610b25576110c983836111f1565b50505050565b60975460ff16610f1a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161035c565b5f54610100900460ff16610f1a5760405162461bcd60e51b815260040161035c90611645565b5f54610100900460ff166111645760405162461bcd60e51b815260040161035c90611645565b610f1a61121d565b60975460ff1615610f1a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161035c565b6111bb8161100a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061121683836040518060600160405280602781526020016116fc6027913961124f565b9392505050565b5f54610100900460ff166112435760405162461bcd60e51b815260040161035c90611645565b6097805460ff19169055565b60605f5f856001600160a01b03168560405161126b9190611690565b5f60405180830381855af49150503d805f81146112a3576040519150601f19603f3d011682016040523d82523d5f602084013e6112a8565b606091505b50915091506112b9868383876112c3565b9695505050505050565b606083156113315782515f0361132a576001600160a01b0385163b61132a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161035c565b50816106d8565b6106d883838151156113465781518083602001fd5b8060405162461bcd60e51b815260040161035c91906116a6565b5f60208284031215611370575f5ffd5b81356001600160e01b031981168114611216575f5ffd5b6001600160a01b03811681146103f7575f5ffd5b5f602082840312156113ab575f5ffd5b813561121681611387565b5f5f5f606084860312156113c8575f5ffd5b83356113d381611387565b925060208401356113e381611387565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215611419575f5ffd5b823561142481611387565b9150602083013567ffffffffffffffff81111561143f575f5ffd5b8301601f8101851361144f575f5ffd5b803567ffffffffffffffff811115611469576114696113f4565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611498576114986113f4565b6040528181528282016020018710156114af575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f608085870312156114e1575f5ffd5b84356114ec81611387565b935060208501356114fc81611387565b9250604085013561150c81611387565b9396929550929360600135925050565b80151581146103f7575f5ffd5b5f5f6040838503121561153a575f5ffd5b823561154581611387565b915060208301356115558161151c565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215611608575f5ffd5b815161121681611387565b5f60208284031215611623575f5ffd5b81516112168161151c565b5f6020828403121561163e575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122029a9df32817177485ac459624f0e4c9f97feff2d691f424dab2ed12748cebb9164736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x191F CODESIZE SUB DUP1 PUSH2 0x191F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x133 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x63 PUSH2 0x77 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE POP PUSH2 0x160 SWAP1 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x131 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x143 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x159 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1758 PUSH2 0x1C7 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x199 ADD MSTORE DUP2 DUP2 PUSH2 0x43E ADD MSTORE DUP2 DUP2 PUSH2 0x80D ADD MSTORE DUP2 DUP2 PUSH2 0x9A8 ADD MSTORE DUP2 DUP2 PUSH2 0xB2D ADD MSTORE DUP2 DUP2 PUSH2 0xC29 ADD MSTORE PUSH2 0xF5B ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x31E ADD MSTORE DUP2 DUP2 PUSH2 0x367 ADD MSTORE DUP2 DUP2 PUSH2 0x54A ADD MSTORE DUP2 DUP2 PUSH2 0x58A ADD MSTORE PUSH2 0x617 ADD MSTORE PUSH2 0x1758 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE4 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C975ABB GT PUSH2 0x87 JUMPI DUP1 PUSH4 0x9051C763 GT PUSH2 0x57 JUMPI DUP1 PUSH4 0x9051C763 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xAAD4148C EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0xB9A45AAC EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x2D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x5FCDCA37 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x250 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xC2 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x1E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x37EE20DD EQ PUSH2 0x13D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x102 CALLDATASIZE PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0x139B JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x3FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1408 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x107 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x237 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CE JUMP JUMPDEST PUSH2 0x6BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x247 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x6E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x7EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x27E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B6 JUMP JUMPDEST PUSH2 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1529 JUMP JUMPDEST PUSH2 0x985 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0xB2A JUMP JUMPDEST PUSH0 PUSH2 0x2F3 DUP3 PUSH2 0xBB0 JUMP JUMPDEST DUP1 PUSH2 0x30E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xF8722D89 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x365 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x3DC DUP2 PUSH2 0xBE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3F7 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x498 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x530 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x53C PUSH2 0xE92 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1560 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x5FF DUP3 PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x53C DUP3 DUP3 PUSH1 0x1 PUSH2 0xD28 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x6AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FE JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x717 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x7A3 PUSH2 0xEE4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x867 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88B SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0xE0 DUP6 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x902 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x3F7 PUSH2 0xF1C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x37EE20DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH0 SWAP1 ADDRESS SWAP1 PUSH4 0x37EE20DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x961 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6D8 SWAP2 SWAP1 PUSH2 0x1613 JUMP JUMPDEST PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA02 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA26 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0xE0 DUP6 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH0 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP4 ISZERO ISZERO EQ SWAP1 POP PUSH2 0xB25 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE SWAP1 DUP4 ADD MSTORE PUSH32 0x8EF34CF5CFAA6CE2F80F1BA2912749C912A8B07C4FB8E9949E928E7CB592918F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x30E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC83 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA7 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD09 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD1B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB25 DUP4 PUSH2 0xF59 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD5B JUMPI PUSH2 0xB25 DUP4 PUSH2 0x100A JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xDB5 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xDB2 SWAP2 DUP2 ADD SWAP1 PUSH2 0x162E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xE18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0xE86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST POP PUSH2 0xB25 DUP4 DUP4 DUP4 PUSH2 0x10A5 JUMP JUMPDEST PUSH2 0xE9A PUSH2 0x10CF JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0xF12 PUSH2 0x1118 JUMP JUMPDEST PUSH2 0xF1A PUSH2 0x113E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF24 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xEC7 CALLER SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFBF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFE3 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1077 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x10AE DUP4 PUSH2 0x11B2 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x10BA JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB25 JUMPI PUSH2 0x10C9 DUP4 DUP4 PUSH2 0x11F1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1164 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0xF1A PUSH2 0x121D JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST PUSH2 0x11BB DUP2 PUSH2 0x100A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1216 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16FC PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x124F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1243 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x126B SWAP2 SWAP1 PUSH2 0x1690 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x12A3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12B9 DUP7 DUP4 DUP4 DUP8 PUSH2 0x12C3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1331 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x132A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x132A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST POP DUP2 PUSH2 0x6D8 JUMP JUMPDEST PUSH2 0x6D8 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1346 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x16A6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1370 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1216 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1216 DUP2 PUSH2 0x1387 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x13D3 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x13E3 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1419 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1424 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x143F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x144F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1469 JUMPI PUSH2 0x1469 PUSH2 0x13F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1498 JUMPI PUSH2 0x1498 PUSH2 0x13F4 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x14AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x14E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x14EC DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x14FC DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x150C DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x153A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1545 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1555 DUP2 PUSH2 0x151C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1608 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1216 DUP2 PUSH2 0x1387 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1623 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1216 DUP2 PUSH2 0x151C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x163E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x6564A264697066735822122029 0xA9 0xDF ORIGIN DUP2 PUSH18 0x77485AC459624F0E4C9F97FEFF2D691F424D 0xAB 0x2E 0xD1 0x27 BASEFEE 0xCE 0xBB SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"549:317:78:-:0;;;1198:4:7;1155:48;;615:73:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;673:11;;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;549:317:78;;-1:-1:-1;549:317:78;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;532:2:88;5998:66:6;;;514:21:88;571:2;551:18;;;544:30;610:34;590:18;;;583:62;-1:-1:-1;;;661:18:88;;;654:37;708:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;880:36:88;;;6174:28:6;;868:2:88;853:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:311:88:-;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;200:16;;-1:-1:-1;;;;;245:31:88;;235:42;;225:70;;291:1;288;281:12;225:70;314:5;14:311;-1:-1:-1;;;14:311:88:o;738:184::-;549:317:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LP_WHITELIST_ROLE_24003":{"entryPoint":null,"id":24003,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_1113":{"entryPoint":4414,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":4637,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":3812,"id":17875,"parameterSlots":0,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":4376,"id":1008,"parameterSlots":0,"returnSlots":0},"@_authorizeUpgrade_17890":{"entryPoint":3045,"id":17890,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_pause_1187":{"entryPoint":3868,"id":1187,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_1160":{"entryPoint":4460,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":4303,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":4106,"id":510,"parameterSlots":1,"returnSlots":0},"@_unpause_1203":{"entryPoint":3730,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":3368,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":4261,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":4530,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":3929,"id":17907,"parameterSlots":1,"returnSlots":0},"@acceptsDeposit_24103":{"entryPoint":null,"id":24103,"parameterSlots":3,"returnSlots":1},"@acceptsTransfer_24123":{"entryPoint":1724,"id":24123,"parameterSlots":4,"returnSlots":1},"@acceptsWithdrawal_24171":{"entryPoint":2318,"id":24171,"parameterSlots":3,"returnSlots":1},"@currency_17973":{"entryPoint":2858,"id":17973,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":4593,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":4687,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@initialize_24034":{"entryPoint":1760,"id":24034,"parameterSlots":0,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@pause_17941":{"entryPoint":2026,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":1547,"id":1026,"parameterSlots":0,"returnSlots":1},"@supportsInterface_17931":{"entryPoint":2992,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_24085":{"entryPoint":745,"id":24085,"parameterSlots":1,"returnSlots":1},"@unpause_17952":{"entryPoint":1018,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":1344,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":788,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":4803,"id":2608,"parameterSlots":4,"returnSlots":1},"@whitelistAddress_24063":{"entryPoint":2437,"id":24063,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":5019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool":{"entryPoint":5417,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":5128,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":5678,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4960,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":5624,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256":{"entryPoint":5326,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256":{"entryPoint":5046,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5776,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IEToken_$23549_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5798,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5472,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5548,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5701,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":5108,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":4999,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":5404,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12902:88","nodeType":"YulBlock","src":"0:12902:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"542:86:88","nodeType":"YulBlock","src":"542:86:88","statements":[{"body":{"nativeSrc":"606:16:88","nodeType":"YulBlock","src":"606:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:1:88","nodeType":"YulLiteral","src":"615:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"618:1:88","nodeType":"YulLiteral","src":"618:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"608:6:88","nodeType":"YulIdentifier","src":"608:6:88"},"nativeSrc":"608:12:88","nodeType":"YulFunctionCall","src":"608:12:88"},"nativeSrc":"608:12:88","nodeType":"YulExpressionStatement","src":"608:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"565:5:88","nodeType":"YulIdentifier","src":"565:5:88"},{"arguments":[{"name":"value","nativeSrc":"576:5:88","nodeType":"YulIdentifier","src":"576:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"591:3:88","nodeType":"YulLiteral","src":"591:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"596:1:88","nodeType":"YulLiteral","src":"596:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"587:3:88","nodeType":"YulIdentifier","src":"587:3:88"},"nativeSrc":"587:11:88","nodeType":"YulFunctionCall","src":"587:11:88"},{"kind":"number","nativeSrc":"600:1:88","nodeType":"YulLiteral","src":"600:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"583:3:88","nodeType":"YulIdentifier","src":"583:3:88"},"nativeSrc":"583:19:88","nodeType":"YulFunctionCall","src":"583:19:88"}],"functionName":{"name":"and","nativeSrc":"572:3:88","nodeType":"YulIdentifier","src":"572:3:88"},"nativeSrc":"572:31:88","nodeType":"YulFunctionCall","src":"572:31:88"}],"functionName":{"name":"eq","nativeSrc":"562:2:88","nodeType":"YulIdentifier","src":"562:2:88"},"nativeSrc":"562:42:88","nodeType":"YulFunctionCall","src":"562:42:88"}],"functionName":{"name":"iszero","nativeSrc":"555:6:88","nodeType":"YulIdentifier","src":"555:6:88"},"nativeSrc":"555:50:88","nodeType":"YulFunctionCall","src":"555:50:88"},"nativeSrc":"552:70:88","nodeType":"YulIf","src":"552:70:88"}]},"name":"validator_revert_address","nativeSrc":"497:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"531:5:88","nodeType":"YulTypedName","src":"531:5:88","type":""}],"src":"497:131:88"},{"body":{"nativeSrc":"703:177:88","nodeType":"YulBlock","src":"703:177:88","statements":[{"body":{"nativeSrc":"749:16:88","nodeType":"YulBlock","src":"749:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"758:1:88","nodeType":"YulLiteral","src":"758:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"761:1:88","nodeType":"YulLiteral","src":"761:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"751:6:88","nodeType":"YulIdentifier","src":"751:6:88"},"nativeSrc":"751:12:88","nodeType":"YulFunctionCall","src":"751:12:88"},"nativeSrc":"751:12:88","nodeType":"YulExpressionStatement","src":"751:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"724:7:88","nodeType":"YulIdentifier","src":"724:7:88"},{"name":"headStart","nativeSrc":"733:9:88","nodeType":"YulIdentifier","src":"733:9:88"}],"functionName":{"name":"sub","nativeSrc":"720:3:88","nodeType":"YulIdentifier","src":"720:3:88"},"nativeSrc":"720:23:88","nodeType":"YulFunctionCall","src":"720:23:88"},{"kind":"number","nativeSrc":"745:2:88","nodeType":"YulLiteral","src":"745:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"716:3:88","nodeType":"YulIdentifier","src":"716:3:88"},"nativeSrc":"716:32:88","nodeType":"YulFunctionCall","src":"716:32:88"},"nativeSrc":"713:52:88","nodeType":"YulIf","src":"713:52:88"},{"nativeSrc":"774:36:88","nodeType":"YulVariableDeclaration","src":"774:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"800:9:88","nodeType":"YulIdentifier","src":"800:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"787:12:88","nodeType":"YulIdentifier","src":"787:12:88"},"nativeSrc":"787:23:88","nodeType":"YulFunctionCall","src":"787:23:88"},"variables":[{"name":"value","nativeSrc":"778:5:88","nodeType":"YulTypedName","src":"778:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"844:5:88","nodeType":"YulIdentifier","src":"844:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"819:24:88","nodeType":"YulIdentifier","src":"819:24:88"},"nativeSrc":"819:31:88","nodeType":"YulFunctionCall","src":"819:31:88"},"nativeSrc":"819:31:88","nodeType":"YulExpressionStatement","src":"819:31:88"},{"nativeSrc":"859:15:88","nodeType":"YulAssignment","src":"859:15:88","value":{"name":"value","nativeSrc":"869:5:88","nodeType":"YulIdentifier","src":"869:5:88"},"variableNames":[{"name":"value0","nativeSrc":"859:6:88","nodeType":"YulIdentifier","src":"859:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"633:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"669:9:88","nodeType":"YulTypedName","src":"669:9:88","type":""},{"name":"dataEnd","nativeSrc":"680:7:88","nodeType":"YulTypedName","src":"680:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"692:6:88","nodeType":"YulTypedName","src":"692:6:88","type":""}],"src":"633:247:88"},{"body":{"nativeSrc":"1006:404:88","nodeType":"YulBlock","src":"1006:404:88","statements":[{"body":{"nativeSrc":"1052:16:88","nodeType":"YulBlock","src":"1052:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1061:1:88","nodeType":"YulLiteral","src":"1061:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1064:1:88","nodeType":"YulLiteral","src":"1064:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1054:6:88","nodeType":"YulIdentifier","src":"1054:6:88"},"nativeSrc":"1054:12:88","nodeType":"YulFunctionCall","src":"1054:12:88"},"nativeSrc":"1054:12:88","nodeType":"YulExpressionStatement","src":"1054:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1027:7:88","nodeType":"YulIdentifier","src":"1027:7:88"},{"name":"headStart","nativeSrc":"1036:9:88","nodeType":"YulIdentifier","src":"1036:9:88"}],"functionName":{"name":"sub","nativeSrc":"1023:3:88","nodeType":"YulIdentifier","src":"1023:3:88"},"nativeSrc":"1023:23:88","nodeType":"YulFunctionCall","src":"1023:23:88"},{"kind":"number","nativeSrc":"1048:2:88","nodeType":"YulLiteral","src":"1048:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1019:3:88","nodeType":"YulIdentifier","src":"1019:3:88"},"nativeSrc":"1019:32:88","nodeType":"YulFunctionCall","src":"1019:32:88"},"nativeSrc":"1016:52:88","nodeType":"YulIf","src":"1016:52:88"},{"nativeSrc":"1077:36:88","nodeType":"YulVariableDeclaration","src":"1077:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1103:9:88","nodeType":"YulIdentifier","src":"1103:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1090:12:88","nodeType":"YulIdentifier","src":"1090:12:88"},"nativeSrc":"1090:23:88","nodeType":"YulFunctionCall","src":"1090:23:88"},"variables":[{"name":"value","nativeSrc":"1081:5:88","nodeType":"YulTypedName","src":"1081:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1147:5:88","nodeType":"YulIdentifier","src":"1147:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1122:24:88","nodeType":"YulIdentifier","src":"1122:24:88"},"nativeSrc":"1122:31:88","nodeType":"YulFunctionCall","src":"1122:31:88"},"nativeSrc":"1122:31:88","nodeType":"YulExpressionStatement","src":"1122:31:88"},{"nativeSrc":"1162:15:88","nodeType":"YulAssignment","src":"1162:15:88","value":{"name":"value","nativeSrc":"1172:5:88","nodeType":"YulIdentifier","src":"1172:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1162:6:88","nodeType":"YulIdentifier","src":"1162:6:88"}]},{"nativeSrc":"1186:47:88","nodeType":"YulVariableDeclaration","src":"1186:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1218:9:88","nodeType":"YulIdentifier","src":"1218:9:88"},{"kind":"number","nativeSrc":"1229:2:88","nodeType":"YulLiteral","src":"1229:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1214:3:88","nodeType":"YulIdentifier","src":"1214:3:88"},"nativeSrc":"1214:18:88","nodeType":"YulFunctionCall","src":"1214:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1201:12:88","nodeType":"YulIdentifier","src":"1201:12:88"},"nativeSrc":"1201:32:88","nodeType":"YulFunctionCall","src":"1201:32:88"},"variables":[{"name":"value_1","nativeSrc":"1190:7:88","nodeType":"YulTypedName","src":"1190:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1267:7:88","nodeType":"YulIdentifier","src":"1267:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1242:24:88","nodeType":"YulIdentifier","src":"1242:24:88"},"nativeSrc":"1242:33:88","nodeType":"YulFunctionCall","src":"1242:33:88"},"nativeSrc":"1242:33:88","nodeType":"YulExpressionStatement","src":"1242:33:88"},{"nativeSrc":"1284:17:88","nodeType":"YulAssignment","src":"1284:17:88","value":{"name":"value_1","nativeSrc":"1294:7:88","nodeType":"YulIdentifier","src":"1294:7:88"},"variableNames":[{"name":"value1","nativeSrc":"1284:6:88","nodeType":"YulIdentifier","src":"1284:6:88"}]},{"nativeSrc":"1310:16:88","nodeType":"YulVariableDeclaration","src":"1310:16:88","value":{"kind":"number","nativeSrc":"1325:1:88","nodeType":"YulLiteral","src":"1325:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1314:7:88","nodeType":"YulTypedName","src":"1314:7:88","type":""}]},{"nativeSrc":"1335:43:88","nodeType":"YulAssignment","src":"1335:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1363:9:88","nodeType":"YulIdentifier","src":"1363:9:88"},{"kind":"number","nativeSrc":"1374:2:88","nodeType":"YulLiteral","src":"1374:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1359:3:88","nodeType":"YulIdentifier","src":"1359:3:88"},"nativeSrc":"1359:18:88","nodeType":"YulFunctionCall","src":"1359:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1346:12:88","nodeType":"YulIdentifier","src":"1346:12:88"},"nativeSrc":"1346:32:88","nodeType":"YulFunctionCall","src":"1346:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"1335:7:88","nodeType":"YulIdentifier","src":"1335:7:88"}]},{"nativeSrc":"1387:17:88","nodeType":"YulAssignment","src":"1387:17:88","value":{"name":"value_2","nativeSrc":"1397:7:88","nodeType":"YulIdentifier","src":"1397:7:88"},"variableNames":[{"name":"value2","nativeSrc":"1387:6:88","nodeType":"YulIdentifier","src":"1387:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256","nativeSrc":"885:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"956:9:88","nodeType":"YulTypedName","src":"956:9:88","type":""},{"name":"dataEnd","nativeSrc":"967:7:88","nodeType":"YulTypedName","src":"967:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"979:6:88","nodeType":"YulTypedName","src":"979:6:88","type":""},{"name":"value1","nativeSrc":"987:6:88","nodeType":"YulTypedName","src":"987:6:88","type":""},{"name":"value2","nativeSrc":"995:6:88","nodeType":"YulTypedName","src":"995:6:88","type":""}],"src":"885:525:88"},{"body":{"nativeSrc":"1537:102:88","nodeType":"YulBlock","src":"1537:102:88","statements":[{"nativeSrc":"1547:26:88","nodeType":"YulAssignment","src":"1547:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1559:9:88","nodeType":"YulIdentifier","src":"1559:9:88"},{"kind":"number","nativeSrc":"1570:2:88","nodeType":"YulLiteral","src":"1570:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1555:3:88","nodeType":"YulIdentifier","src":"1555:3:88"},"nativeSrc":"1555:18:88","nodeType":"YulFunctionCall","src":"1555:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1547:4:88","nodeType":"YulIdentifier","src":"1547:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1589:9:88","nodeType":"YulIdentifier","src":"1589:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1604:6:88","nodeType":"YulIdentifier","src":"1604:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1620:3:88","nodeType":"YulLiteral","src":"1620:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1625:1:88","nodeType":"YulLiteral","src":"1625:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1616:3:88","nodeType":"YulIdentifier","src":"1616:3:88"},"nativeSrc":"1616:11:88","nodeType":"YulFunctionCall","src":"1616:11:88"},{"kind":"number","nativeSrc":"1629:1:88","nodeType":"YulLiteral","src":"1629:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1612:3:88","nodeType":"YulIdentifier","src":"1612:3:88"},"nativeSrc":"1612:19:88","nodeType":"YulFunctionCall","src":"1612:19:88"}],"functionName":{"name":"and","nativeSrc":"1600:3:88","nodeType":"YulIdentifier","src":"1600:3:88"},"nativeSrc":"1600:32:88","nodeType":"YulFunctionCall","src":"1600:32:88"}],"functionName":{"name":"mstore","nativeSrc":"1582:6:88","nodeType":"YulIdentifier","src":"1582:6:88"},"nativeSrc":"1582:51:88","nodeType":"YulFunctionCall","src":"1582:51:88"},"nativeSrc":"1582:51:88","nodeType":"YulExpressionStatement","src":"1582:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"1415:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1506:9:88","nodeType":"YulTypedName","src":"1506:9:88","type":""},{"name":"value0","nativeSrc":"1517:6:88","nodeType":"YulTypedName","src":"1517:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1528:4:88","nodeType":"YulTypedName","src":"1528:4:88","type":""}],"src":"1415:224:88"},{"body":{"nativeSrc":"1676:95:88","nodeType":"YulBlock","src":"1676:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1693:1:88","nodeType":"YulLiteral","src":"1693:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1700:3:88","nodeType":"YulLiteral","src":"1700:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1705:10:88","nodeType":"YulLiteral","src":"1705:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1696:3:88","nodeType":"YulIdentifier","src":"1696:3:88"},"nativeSrc":"1696:20:88","nodeType":"YulFunctionCall","src":"1696:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1686:6:88","nodeType":"YulIdentifier","src":"1686:6:88"},"nativeSrc":"1686:31:88","nodeType":"YulFunctionCall","src":"1686:31:88"},"nativeSrc":"1686:31:88","nodeType":"YulExpressionStatement","src":"1686:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1733:1:88","nodeType":"YulLiteral","src":"1733:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1736:4:88","nodeType":"YulLiteral","src":"1736:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1726:6:88","nodeType":"YulIdentifier","src":"1726:6:88"},"nativeSrc":"1726:15:88","nodeType":"YulFunctionCall","src":"1726:15:88"},"nativeSrc":"1726:15:88","nodeType":"YulExpressionStatement","src":"1726:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1757:1:88","nodeType":"YulLiteral","src":"1757:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1760:4:88","nodeType":"YulLiteral","src":"1760:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1750:6:88","nodeType":"YulIdentifier","src":"1750:6:88"},"nativeSrc":"1750:15:88","nodeType":"YulFunctionCall","src":"1750:15:88"},"nativeSrc":"1750:15:88","nodeType":"YulExpressionStatement","src":"1750:15:88"}]},"name":"panic_error_0x41","nativeSrc":"1644:127:88","nodeType":"YulFunctionDefinition","src":"1644:127:88"},{"body":{"nativeSrc":"1872:983:88","nodeType":"YulBlock","src":"1872:983:88","statements":[{"body":{"nativeSrc":"1918:16:88","nodeType":"YulBlock","src":"1918:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1927:1:88","nodeType":"YulLiteral","src":"1927:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1930:1:88","nodeType":"YulLiteral","src":"1930:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1920:6:88","nodeType":"YulIdentifier","src":"1920:6:88"},"nativeSrc":"1920:12:88","nodeType":"YulFunctionCall","src":"1920:12:88"},"nativeSrc":"1920:12:88","nodeType":"YulExpressionStatement","src":"1920:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1893:7:88","nodeType":"YulIdentifier","src":"1893:7:88"},{"name":"headStart","nativeSrc":"1902:9:88","nodeType":"YulIdentifier","src":"1902:9:88"}],"functionName":{"name":"sub","nativeSrc":"1889:3:88","nodeType":"YulIdentifier","src":"1889:3:88"},"nativeSrc":"1889:23:88","nodeType":"YulFunctionCall","src":"1889:23:88"},{"kind":"number","nativeSrc":"1914:2:88","nodeType":"YulLiteral","src":"1914:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1885:3:88","nodeType":"YulIdentifier","src":"1885:3:88"},"nativeSrc":"1885:32:88","nodeType":"YulFunctionCall","src":"1885:32:88"},"nativeSrc":"1882:52:88","nodeType":"YulIf","src":"1882:52:88"},{"nativeSrc":"1943:36:88","nodeType":"YulVariableDeclaration","src":"1943:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1969:9:88","nodeType":"YulIdentifier","src":"1969:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1956:12:88","nodeType":"YulIdentifier","src":"1956:12:88"},"nativeSrc":"1956:23:88","nodeType":"YulFunctionCall","src":"1956:23:88"},"variables":[{"name":"value","nativeSrc":"1947:5:88","nodeType":"YulTypedName","src":"1947:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2013:5:88","nodeType":"YulIdentifier","src":"2013:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1988:24:88","nodeType":"YulIdentifier","src":"1988:24:88"},"nativeSrc":"1988:31:88","nodeType":"YulFunctionCall","src":"1988:31:88"},"nativeSrc":"1988:31:88","nodeType":"YulExpressionStatement","src":"1988:31:88"},{"nativeSrc":"2028:15:88","nodeType":"YulAssignment","src":"2028:15:88","value":{"name":"value","nativeSrc":"2038:5:88","nodeType":"YulIdentifier","src":"2038:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2028:6:88","nodeType":"YulIdentifier","src":"2028:6:88"}]},{"nativeSrc":"2052:46:88","nodeType":"YulVariableDeclaration","src":"2052:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2083:9:88","nodeType":"YulIdentifier","src":"2083:9:88"},{"kind":"number","nativeSrc":"2094:2:88","nodeType":"YulLiteral","src":"2094:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2079:3:88","nodeType":"YulIdentifier","src":"2079:3:88"},"nativeSrc":"2079:18:88","nodeType":"YulFunctionCall","src":"2079:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2066:12:88","nodeType":"YulIdentifier","src":"2066:12:88"},"nativeSrc":"2066:32:88","nodeType":"YulFunctionCall","src":"2066:32:88"},"variables":[{"name":"offset","nativeSrc":"2056:6:88","nodeType":"YulTypedName","src":"2056:6:88","type":""}]},{"body":{"nativeSrc":"2141:16:88","nodeType":"YulBlock","src":"2141:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2150:1:88","nodeType":"YulLiteral","src":"2150:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2153:1:88","nodeType":"YulLiteral","src":"2153:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2143:6:88","nodeType":"YulIdentifier","src":"2143:6:88"},"nativeSrc":"2143:12:88","nodeType":"YulFunctionCall","src":"2143:12:88"},"nativeSrc":"2143:12:88","nodeType":"YulExpressionStatement","src":"2143:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2113:6:88","nodeType":"YulIdentifier","src":"2113:6:88"},{"kind":"number","nativeSrc":"2121:18:88","nodeType":"YulLiteral","src":"2121:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2110:2:88","nodeType":"YulIdentifier","src":"2110:2:88"},"nativeSrc":"2110:30:88","nodeType":"YulFunctionCall","src":"2110:30:88"},"nativeSrc":"2107:50:88","nodeType":"YulIf","src":"2107:50:88"},{"nativeSrc":"2166:32:88","nodeType":"YulVariableDeclaration","src":"2166:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2180:9:88","nodeType":"YulIdentifier","src":"2180:9:88"},{"name":"offset","nativeSrc":"2191:6:88","nodeType":"YulIdentifier","src":"2191:6:88"}],"functionName":{"name":"add","nativeSrc":"2176:3:88","nodeType":"YulIdentifier","src":"2176:3:88"},"nativeSrc":"2176:22:88","nodeType":"YulFunctionCall","src":"2176:22:88"},"variables":[{"name":"_1","nativeSrc":"2170:2:88","nodeType":"YulTypedName","src":"2170:2:88","type":""}]},{"body":{"nativeSrc":"2246:16:88","nodeType":"YulBlock","src":"2246:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2255:1:88","nodeType":"YulLiteral","src":"2255:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2258:1:88","nodeType":"YulLiteral","src":"2258:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2248:6:88","nodeType":"YulIdentifier","src":"2248:6:88"},"nativeSrc":"2248:12:88","nodeType":"YulFunctionCall","src":"2248:12:88"},"nativeSrc":"2248:12:88","nodeType":"YulExpressionStatement","src":"2248:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2225:2:88","nodeType":"YulIdentifier","src":"2225:2:88"},{"kind":"number","nativeSrc":"2229:4:88","nodeType":"YulLiteral","src":"2229:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2221:3:88","nodeType":"YulIdentifier","src":"2221:3:88"},"nativeSrc":"2221:13:88","nodeType":"YulFunctionCall","src":"2221:13:88"},{"name":"dataEnd","nativeSrc":"2236:7:88","nodeType":"YulIdentifier","src":"2236:7:88"}],"functionName":{"name":"slt","nativeSrc":"2217:3:88","nodeType":"YulIdentifier","src":"2217:3:88"},"nativeSrc":"2217:27:88","nodeType":"YulFunctionCall","src":"2217:27:88"}],"functionName":{"name":"iszero","nativeSrc":"2210:6:88","nodeType":"YulIdentifier","src":"2210:6:88"},"nativeSrc":"2210:35:88","nodeType":"YulFunctionCall","src":"2210:35:88"},"nativeSrc":"2207:55:88","nodeType":"YulIf","src":"2207:55:88"},{"nativeSrc":"2271:30:88","nodeType":"YulVariableDeclaration","src":"2271:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"2298:2:88","nodeType":"YulIdentifier","src":"2298:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"2285:12:88","nodeType":"YulIdentifier","src":"2285:12:88"},"nativeSrc":"2285:16:88","nodeType":"YulFunctionCall","src":"2285:16:88"},"variables":[{"name":"length","nativeSrc":"2275:6:88","nodeType":"YulTypedName","src":"2275:6:88","type":""}]},{"body":{"nativeSrc":"2344:22:88","nodeType":"YulBlock","src":"2344:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2346:16:88","nodeType":"YulIdentifier","src":"2346:16:88"},"nativeSrc":"2346:18:88","nodeType":"YulFunctionCall","src":"2346:18:88"},"nativeSrc":"2346:18:88","nodeType":"YulExpressionStatement","src":"2346:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2316:6:88","nodeType":"YulIdentifier","src":"2316:6:88"},{"kind":"number","nativeSrc":"2324:18:88","nodeType":"YulLiteral","src":"2324:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2313:2:88","nodeType":"YulIdentifier","src":"2313:2:88"},"nativeSrc":"2313:30:88","nodeType":"YulFunctionCall","src":"2313:30:88"},"nativeSrc":"2310:56:88","nodeType":"YulIf","src":"2310:56:88"},{"nativeSrc":"2375:23:88","nodeType":"YulVariableDeclaration","src":"2375:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"2395:2:88","nodeType":"YulLiteral","src":"2395:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2389:5:88","nodeType":"YulIdentifier","src":"2389:5:88"},"nativeSrc":"2389:9:88","nodeType":"YulFunctionCall","src":"2389:9:88"},"variables":[{"name":"memPtr","nativeSrc":"2379:6:88","nodeType":"YulTypedName","src":"2379:6:88","type":""}]},{"nativeSrc":"2407:85:88","nodeType":"YulVariableDeclaration","src":"2407:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"2429:6:88","nodeType":"YulIdentifier","src":"2429:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2453:6:88","nodeType":"YulIdentifier","src":"2453:6:88"},{"kind":"number","nativeSrc":"2461:4:88","nodeType":"YulLiteral","src":"2461:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2449:3:88","nodeType":"YulIdentifier","src":"2449:3:88"},"nativeSrc":"2449:17:88","nodeType":"YulFunctionCall","src":"2449:17:88"},{"arguments":[{"kind":"number","nativeSrc":"2472:2:88","nodeType":"YulLiteral","src":"2472:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2468:3:88","nodeType":"YulIdentifier","src":"2468:3:88"},"nativeSrc":"2468:7:88","nodeType":"YulFunctionCall","src":"2468:7:88"}],"functionName":{"name":"and","nativeSrc":"2445:3:88","nodeType":"YulIdentifier","src":"2445:3:88"},"nativeSrc":"2445:31:88","nodeType":"YulFunctionCall","src":"2445:31:88"},{"kind":"number","nativeSrc":"2478:2:88","nodeType":"YulLiteral","src":"2478:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2441:3:88","nodeType":"YulIdentifier","src":"2441:3:88"},"nativeSrc":"2441:40:88","nodeType":"YulFunctionCall","src":"2441:40:88"},{"arguments":[{"kind":"number","nativeSrc":"2487:2:88","nodeType":"YulLiteral","src":"2487:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2483:3:88","nodeType":"YulIdentifier","src":"2483:3:88"},"nativeSrc":"2483:7:88","nodeType":"YulFunctionCall","src":"2483:7:88"}],"functionName":{"name":"and","nativeSrc":"2437:3:88","nodeType":"YulIdentifier","src":"2437:3:88"},"nativeSrc":"2437:54:88","nodeType":"YulFunctionCall","src":"2437:54:88"}],"functionName":{"name":"add","nativeSrc":"2425:3:88","nodeType":"YulIdentifier","src":"2425:3:88"},"nativeSrc":"2425:67:88","nodeType":"YulFunctionCall","src":"2425:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"2411:10:88","nodeType":"YulTypedName","src":"2411:10:88","type":""}]},{"body":{"nativeSrc":"2567:22:88","nodeType":"YulBlock","src":"2567:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2569:16:88","nodeType":"YulIdentifier","src":"2569:16:88"},"nativeSrc":"2569:18:88","nodeType":"YulFunctionCall","src":"2569:18:88"},"nativeSrc":"2569:18:88","nodeType":"YulExpressionStatement","src":"2569:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2510:10:88","nodeType":"YulIdentifier","src":"2510:10:88"},{"kind":"number","nativeSrc":"2522:18:88","nodeType":"YulLiteral","src":"2522:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2507:2:88","nodeType":"YulIdentifier","src":"2507:2:88"},"nativeSrc":"2507:34:88","nodeType":"YulFunctionCall","src":"2507:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2546:10:88","nodeType":"YulIdentifier","src":"2546:10:88"},{"name":"memPtr","nativeSrc":"2558:6:88","nodeType":"YulIdentifier","src":"2558:6:88"}],"functionName":{"name":"lt","nativeSrc":"2543:2:88","nodeType":"YulIdentifier","src":"2543:2:88"},"nativeSrc":"2543:22:88","nodeType":"YulFunctionCall","src":"2543:22:88"}],"functionName":{"name":"or","nativeSrc":"2504:2:88","nodeType":"YulIdentifier","src":"2504:2:88"},"nativeSrc":"2504:62:88","nodeType":"YulFunctionCall","src":"2504:62:88"},"nativeSrc":"2501:88:88","nodeType":"YulIf","src":"2501:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2605:2:88","nodeType":"YulLiteral","src":"2605:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2609:10:88","nodeType":"YulIdentifier","src":"2609:10:88"}],"functionName":{"name":"mstore","nativeSrc":"2598:6:88","nodeType":"YulIdentifier","src":"2598:6:88"},"nativeSrc":"2598:22:88","nodeType":"YulFunctionCall","src":"2598:22:88"},"nativeSrc":"2598:22:88","nodeType":"YulExpressionStatement","src":"2598:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2636:6:88","nodeType":"YulIdentifier","src":"2636:6:88"},{"name":"length","nativeSrc":"2644:6:88","nodeType":"YulIdentifier","src":"2644:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2629:6:88","nodeType":"YulIdentifier","src":"2629:6:88"},"nativeSrc":"2629:22:88","nodeType":"YulFunctionCall","src":"2629:22:88"},"nativeSrc":"2629:22:88","nodeType":"YulExpressionStatement","src":"2629:22:88"},{"body":{"nativeSrc":"2701:16:88","nodeType":"YulBlock","src":"2701:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2710:1:88","nodeType":"YulLiteral","src":"2710:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2713:1:88","nodeType":"YulLiteral","src":"2713:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2703:6:88","nodeType":"YulIdentifier","src":"2703:6:88"},"nativeSrc":"2703:12:88","nodeType":"YulFunctionCall","src":"2703:12:88"},"nativeSrc":"2703:12:88","nodeType":"YulExpressionStatement","src":"2703:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2674:2:88","nodeType":"YulIdentifier","src":"2674:2:88"},{"name":"length","nativeSrc":"2678:6:88","nodeType":"YulIdentifier","src":"2678:6:88"}],"functionName":{"name":"add","nativeSrc":"2670:3:88","nodeType":"YulIdentifier","src":"2670:3:88"},"nativeSrc":"2670:15:88","nodeType":"YulFunctionCall","src":"2670:15:88"},{"kind":"number","nativeSrc":"2687:2:88","nodeType":"YulLiteral","src":"2687:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2666:3:88","nodeType":"YulIdentifier","src":"2666:3:88"},"nativeSrc":"2666:24:88","nodeType":"YulFunctionCall","src":"2666:24:88"},{"name":"dataEnd","nativeSrc":"2692:7:88","nodeType":"YulIdentifier","src":"2692:7:88"}],"functionName":{"name":"gt","nativeSrc":"2663:2:88","nodeType":"YulIdentifier","src":"2663:2:88"},"nativeSrc":"2663:37:88","nodeType":"YulFunctionCall","src":"2663:37:88"},"nativeSrc":"2660:57:88","nodeType":"YulIf","src":"2660:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2743:6:88","nodeType":"YulIdentifier","src":"2743:6:88"},{"kind":"number","nativeSrc":"2751:2:88","nodeType":"YulLiteral","src":"2751:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2739:3:88","nodeType":"YulIdentifier","src":"2739:3:88"},"nativeSrc":"2739:15:88","nodeType":"YulFunctionCall","src":"2739:15:88"},{"arguments":[{"name":"_1","nativeSrc":"2760:2:88","nodeType":"YulIdentifier","src":"2760:2:88"},{"kind":"number","nativeSrc":"2764:2:88","nodeType":"YulLiteral","src":"2764:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2756:3:88","nodeType":"YulIdentifier","src":"2756:3:88"},"nativeSrc":"2756:11:88","nodeType":"YulFunctionCall","src":"2756:11:88"},{"name":"length","nativeSrc":"2769:6:88","nodeType":"YulIdentifier","src":"2769:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"2726:12:88","nodeType":"YulIdentifier","src":"2726:12:88"},"nativeSrc":"2726:50:88","nodeType":"YulFunctionCall","src":"2726:50:88"},"nativeSrc":"2726:50:88","nodeType":"YulExpressionStatement","src":"2726:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2800:6:88","nodeType":"YulIdentifier","src":"2800:6:88"},{"name":"length","nativeSrc":"2808:6:88","nodeType":"YulIdentifier","src":"2808:6:88"}],"functionName":{"name":"add","nativeSrc":"2796:3:88","nodeType":"YulIdentifier","src":"2796:3:88"},"nativeSrc":"2796:19:88","nodeType":"YulFunctionCall","src":"2796:19:88"},{"kind":"number","nativeSrc":"2817:2:88","nodeType":"YulLiteral","src":"2817:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2792:3:88","nodeType":"YulIdentifier","src":"2792:3:88"},"nativeSrc":"2792:28:88","nodeType":"YulFunctionCall","src":"2792:28:88"},{"kind":"number","nativeSrc":"2822:1:88","nodeType":"YulLiteral","src":"2822:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2785:6:88","nodeType":"YulIdentifier","src":"2785:6:88"},"nativeSrc":"2785:39:88","nodeType":"YulFunctionCall","src":"2785:39:88"},"nativeSrc":"2785:39:88","nodeType":"YulExpressionStatement","src":"2785:39:88"},{"nativeSrc":"2833:16:88","nodeType":"YulAssignment","src":"2833:16:88","value":{"name":"memPtr","nativeSrc":"2843:6:88","nodeType":"YulIdentifier","src":"2843:6:88"},"variableNames":[{"name":"value1","nativeSrc":"2833:6:88","nodeType":"YulIdentifier","src":"2833:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"1776:1079:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1830:9:88","nodeType":"YulTypedName","src":"1830:9:88","type":""},{"name":"dataEnd","nativeSrc":"1841:7:88","nodeType":"YulTypedName","src":"1841:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1853:6:88","nodeType":"YulTypedName","src":"1853:6:88","type":""},{"name":"value1","nativeSrc":"1861:6:88","nodeType":"YulTypedName","src":"1861:6:88","type":""}],"src":"1776:1079:88"},{"body":{"nativeSrc":"2961:76:88","nodeType":"YulBlock","src":"2961:76:88","statements":[{"nativeSrc":"2971:26:88","nodeType":"YulAssignment","src":"2971:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2983:9:88","nodeType":"YulIdentifier","src":"2983:9:88"},{"kind":"number","nativeSrc":"2994:2:88","nodeType":"YulLiteral","src":"2994:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2979:3:88","nodeType":"YulIdentifier","src":"2979:3:88"},"nativeSrc":"2979:18:88","nodeType":"YulFunctionCall","src":"2979:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2971:4:88","nodeType":"YulIdentifier","src":"2971:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3013:9:88","nodeType":"YulIdentifier","src":"3013:9:88"},{"name":"value0","nativeSrc":"3024:6:88","nodeType":"YulIdentifier","src":"3024:6:88"}],"functionName":{"name":"mstore","nativeSrc":"3006:6:88","nodeType":"YulIdentifier","src":"3006:6:88"},"nativeSrc":"3006:25:88","nodeType":"YulFunctionCall","src":"3006:25:88"},"nativeSrc":"3006:25:88","nodeType":"YulExpressionStatement","src":"3006:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2860:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2930:9:88","nodeType":"YulTypedName","src":"2930:9:88","type":""},{"name":"value0","nativeSrc":"2941:6:88","nodeType":"YulTypedName","src":"2941:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2952:4:88","nodeType":"YulTypedName","src":"2952:4:88","type":""}],"src":"2860:177:88"},{"body":{"nativeSrc":"3180:529:88","nodeType":"YulBlock","src":"3180:529:88","statements":[{"body":{"nativeSrc":"3227:16:88","nodeType":"YulBlock","src":"3227:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3236:1:88","nodeType":"YulLiteral","src":"3236:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3239:1:88","nodeType":"YulLiteral","src":"3239:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3229:6:88","nodeType":"YulIdentifier","src":"3229:6:88"},"nativeSrc":"3229:12:88","nodeType":"YulFunctionCall","src":"3229:12:88"},"nativeSrc":"3229:12:88","nodeType":"YulExpressionStatement","src":"3229:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3201:7:88","nodeType":"YulIdentifier","src":"3201:7:88"},{"name":"headStart","nativeSrc":"3210:9:88","nodeType":"YulIdentifier","src":"3210:9:88"}],"functionName":{"name":"sub","nativeSrc":"3197:3:88","nodeType":"YulIdentifier","src":"3197:3:88"},"nativeSrc":"3197:23:88","nodeType":"YulFunctionCall","src":"3197:23:88"},{"kind":"number","nativeSrc":"3222:3:88","nodeType":"YulLiteral","src":"3222:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3193:3:88","nodeType":"YulIdentifier","src":"3193:3:88"},"nativeSrc":"3193:33:88","nodeType":"YulFunctionCall","src":"3193:33:88"},"nativeSrc":"3190:53:88","nodeType":"YulIf","src":"3190:53:88"},{"nativeSrc":"3252:36:88","nodeType":"YulVariableDeclaration","src":"3252:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3278:9:88","nodeType":"YulIdentifier","src":"3278:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3265:12:88","nodeType":"YulIdentifier","src":"3265:12:88"},"nativeSrc":"3265:23:88","nodeType":"YulFunctionCall","src":"3265:23:88"},"variables":[{"name":"value","nativeSrc":"3256:5:88","nodeType":"YulTypedName","src":"3256:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3322:5:88","nodeType":"YulIdentifier","src":"3322:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3297:24:88","nodeType":"YulIdentifier","src":"3297:24:88"},"nativeSrc":"3297:31:88","nodeType":"YulFunctionCall","src":"3297:31:88"},"nativeSrc":"3297:31:88","nodeType":"YulExpressionStatement","src":"3297:31:88"},{"nativeSrc":"3337:15:88","nodeType":"YulAssignment","src":"3337:15:88","value":{"name":"value","nativeSrc":"3347:5:88","nodeType":"YulIdentifier","src":"3347:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3337:6:88","nodeType":"YulIdentifier","src":"3337:6:88"}]},{"nativeSrc":"3361:47:88","nodeType":"YulVariableDeclaration","src":"3361:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3393:9:88","nodeType":"YulIdentifier","src":"3393:9:88"},{"kind":"number","nativeSrc":"3404:2:88","nodeType":"YulLiteral","src":"3404:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3389:3:88","nodeType":"YulIdentifier","src":"3389:3:88"},"nativeSrc":"3389:18:88","nodeType":"YulFunctionCall","src":"3389:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3376:12:88","nodeType":"YulIdentifier","src":"3376:12:88"},"nativeSrc":"3376:32:88","nodeType":"YulFunctionCall","src":"3376:32:88"},"variables":[{"name":"value_1","nativeSrc":"3365:7:88","nodeType":"YulTypedName","src":"3365:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"3442:7:88","nodeType":"YulIdentifier","src":"3442:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3417:24:88","nodeType":"YulIdentifier","src":"3417:24:88"},"nativeSrc":"3417:33:88","nodeType":"YulFunctionCall","src":"3417:33:88"},"nativeSrc":"3417:33:88","nodeType":"YulExpressionStatement","src":"3417:33:88"},{"nativeSrc":"3459:17:88","nodeType":"YulAssignment","src":"3459:17:88","value":{"name":"value_1","nativeSrc":"3469:7:88","nodeType":"YulIdentifier","src":"3469:7:88"},"variableNames":[{"name":"value1","nativeSrc":"3459:6:88","nodeType":"YulIdentifier","src":"3459:6:88"}]},{"nativeSrc":"3485:47:88","nodeType":"YulVariableDeclaration","src":"3485:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3517:9:88","nodeType":"YulIdentifier","src":"3517:9:88"},{"kind":"number","nativeSrc":"3528:2:88","nodeType":"YulLiteral","src":"3528:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3513:3:88","nodeType":"YulIdentifier","src":"3513:3:88"},"nativeSrc":"3513:18:88","nodeType":"YulFunctionCall","src":"3513:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3500:12:88","nodeType":"YulIdentifier","src":"3500:12:88"},"nativeSrc":"3500:32:88","nodeType":"YulFunctionCall","src":"3500:32:88"},"variables":[{"name":"value_2","nativeSrc":"3489:7:88","nodeType":"YulTypedName","src":"3489:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"3566:7:88","nodeType":"YulIdentifier","src":"3566:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3541:24:88","nodeType":"YulIdentifier","src":"3541:24:88"},"nativeSrc":"3541:33:88","nodeType":"YulFunctionCall","src":"3541:33:88"},"nativeSrc":"3541:33:88","nodeType":"YulExpressionStatement","src":"3541:33:88"},{"nativeSrc":"3583:17:88","nodeType":"YulAssignment","src":"3583:17:88","value":{"name":"value_2","nativeSrc":"3593:7:88","nodeType":"YulIdentifier","src":"3593:7:88"},"variableNames":[{"name":"value2","nativeSrc":"3583:6:88","nodeType":"YulIdentifier","src":"3583:6:88"}]},{"nativeSrc":"3609:16:88","nodeType":"YulVariableDeclaration","src":"3609:16:88","value":{"kind":"number","nativeSrc":"3624:1:88","nodeType":"YulLiteral","src":"3624:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"3613:7:88","nodeType":"YulTypedName","src":"3613:7:88","type":""}]},{"nativeSrc":"3634:43:88","nodeType":"YulAssignment","src":"3634:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3662:9:88","nodeType":"YulIdentifier","src":"3662:9:88"},{"kind":"number","nativeSrc":"3673:2:88","nodeType":"YulLiteral","src":"3673:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3658:3:88","nodeType":"YulIdentifier","src":"3658:3:88"},"nativeSrc":"3658:18:88","nodeType":"YulFunctionCall","src":"3658:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3645:12:88","nodeType":"YulIdentifier","src":"3645:12:88"},"nativeSrc":"3645:32:88","nodeType":"YulFunctionCall","src":"3645:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"3634:7:88","nodeType":"YulIdentifier","src":"3634:7:88"}]},{"nativeSrc":"3686:17:88","nodeType":"YulAssignment","src":"3686:17:88","value":{"name":"value_3","nativeSrc":"3696:7:88","nodeType":"YulIdentifier","src":"3696:7:88"},"variableNames":[{"name":"value3","nativeSrc":"3686:6:88","nodeType":"YulIdentifier","src":"3686:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256","nativeSrc":"3042:667:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3122:9:88","nodeType":"YulTypedName","src":"3122:9:88","type":""},{"name":"dataEnd","nativeSrc":"3133:7:88","nodeType":"YulTypedName","src":"3133:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3145:6:88","nodeType":"YulTypedName","src":"3145:6:88","type":""},{"name":"value1","nativeSrc":"3153:6:88","nodeType":"YulTypedName","src":"3153:6:88","type":""},{"name":"value2","nativeSrc":"3161:6:88","nodeType":"YulTypedName","src":"3161:6:88","type":""},{"name":"value3","nativeSrc":"3169:6:88","nodeType":"YulTypedName","src":"3169:6:88","type":""}],"src":"3042:667:88"},{"body":{"nativeSrc":"3756:76:88","nodeType":"YulBlock","src":"3756:76:88","statements":[{"body":{"nativeSrc":"3810:16:88","nodeType":"YulBlock","src":"3810:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3819:1:88","nodeType":"YulLiteral","src":"3819:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3822:1:88","nodeType":"YulLiteral","src":"3822:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3812:6:88","nodeType":"YulIdentifier","src":"3812:6:88"},"nativeSrc":"3812:12:88","nodeType":"YulFunctionCall","src":"3812:12:88"},"nativeSrc":"3812:12:88","nodeType":"YulExpressionStatement","src":"3812:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3779:5:88","nodeType":"YulIdentifier","src":"3779:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3800:5:88","nodeType":"YulIdentifier","src":"3800:5:88"}],"functionName":{"name":"iszero","nativeSrc":"3793:6:88","nodeType":"YulIdentifier","src":"3793:6:88"},"nativeSrc":"3793:13:88","nodeType":"YulFunctionCall","src":"3793:13:88"}],"functionName":{"name":"iszero","nativeSrc":"3786:6:88","nodeType":"YulIdentifier","src":"3786:6:88"},"nativeSrc":"3786:21:88","nodeType":"YulFunctionCall","src":"3786:21:88"}],"functionName":{"name":"eq","nativeSrc":"3776:2:88","nodeType":"YulIdentifier","src":"3776:2:88"},"nativeSrc":"3776:32:88","nodeType":"YulFunctionCall","src":"3776:32:88"}],"functionName":{"name":"iszero","nativeSrc":"3769:6:88","nodeType":"YulIdentifier","src":"3769:6:88"},"nativeSrc":"3769:40:88","nodeType":"YulFunctionCall","src":"3769:40:88"},"nativeSrc":"3766:60:88","nodeType":"YulIf","src":"3766:60:88"}]},"name":"validator_revert_bool","nativeSrc":"3714:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3745:5:88","nodeType":"YulTypedName","src":"3745:5:88","type":""}],"src":"3714:118:88"},{"body":{"nativeSrc":"3921:298:88","nodeType":"YulBlock","src":"3921:298:88","statements":[{"body":{"nativeSrc":"3967:16:88","nodeType":"YulBlock","src":"3967:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3976:1:88","nodeType":"YulLiteral","src":"3976:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3979:1:88","nodeType":"YulLiteral","src":"3979:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3969:6:88","nodeType":"YulIdentifier","src":"3969:6:88"},"nativeSrc":"3969:12:88","nodeType":"YulFunctionCall","src":"3969:12:88"},"nativeSrc":"3969:12:88","nodeType":"YulExpressionStatement","src":"3969:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3942:7:88","nodeType":"YulIdentifier","src":"3942:7:88"},{"name":"headStart","nativeSrc":"3951:9:88","nodeType":"YulIdentifier","src":"3951:9:88"}],"functionName":{"name":"sub","nativeSrc":"3938:3:88","nodeType":"YulIdentifier","src":"3938:3:88"},"nativeSrc":"3938:23:88","nodeType":"YulFunctionCall","src":"3938:23:88"},{"kind":"number","nativeSrc":"3963:2:88","nodeType":"YulLiteral","src":"3963:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3934:3:88","nodeType":"YulIdentifier","src":"3934:3:88"},"nativeSrc":"3934:32:88","nodeType":"YulFunctionCall","src":"3934:32:88"},"nativeSrc":"3931:52:88","nodeType":"YulIf","src":"3931:52:88"},{"nativeSrc":"3992:36:88","nodeType":"YulVariableDeclaration","src":"3992:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4018:9:88","nodeType":"YulIdentifier","src":"4018:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4005:12:88","nodeType":"YulIdentifier","src":"4005:12:88"},"nativeSrc":"4005:23:88","nodeType":"YulFunctionCall","src":"4005:23:88"},"variables":[{"name":"value","nativeSrc":"3996:5:88","nodeType":"YulTypedName","src":"3996:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4062:5:88","nodeType":"YulIdentifier","src":"4062:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4037:24:88","nodeType":"YulIdentifier","src":"4037:24:88"},"nativeSrc":"4037:31:88","nodeType":"YulFunctionCall","src":"4037:31:88"},"nativeSrc":"4037:31:88","nodeType":"YulExpressionStatement","src":"4037:31:88"},{"nativeSrc":"4077:15:88","nodeType":"YulAssignment","src":"4077:15:88","value":{"name":"value","nativeSrc":"4087:5:88","nodeType":"YulIdentifier","src":"4087:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4077:6:88","nodeType":"YulIdentifier","src":"4077:6:88"}]},{"nativeSrc":"4101:47:88","nodeType":"YulVariableDeclaration","src":"4101:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4133:9:88","nodeType":"YulIdentifier","src":"4133:9:88"},{"kind":"number","nativeSrc":"4144:2:88","nodeType":"YulLiteral","src":"4144:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4129:3:88","nodeType":"YulIdentifier","src":"4129:3:88"},"nativeSrc":"4129:18:88","nodeType":"YulFunctionCall","src":"4129:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4116:12:88","nodeType":"YulIdentifier","src":"4116:12:88"},"nativeSrc":"4116:32:88","nodeType":"YulFunctionCall","src":"4116:32:88"},"variables":[{"name":"value_1","nativeSrc":"4105:7:88","nodeType":"YulTypedName","src":"4105:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4179:7:88","nodeType":"YulIdentifier","src":"4179:7:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"4157:21:88","nodeType":"YulIdentifier","src":"4157:21:88"},"nativeSrc":"4157:30:88","nodeType":"YulFunctionCall","src":"4157:30:88"},"nativeSrc":"4157:30:88","nodeType":"YulExpressionStatement","src":"4157:30:88"},{"nativeSrc":"4196:17:88","nodeType":"YulAssignment","src":"4196:17:88","value":{"name":"value_1","nativeSrc":"4206:7:88","nodeType":"YulIdentifier","src":"4206:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4196:6:88","nodeType":"YulIdentifier","src":"4196:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"3837:382:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3879:9:88","nodeType":"YulTypedName","src":"3879:9:88","type":""},{"name":"dataEnd","nativeSrc":"3890:7:88","nodeType":"YulTypedName","src":"3890:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3902:6:88","nodeType":"YulTypedName","src":"3902:6:88","type":""},{"name":"value1","nativeSrc":"3910:6:88","nodeType":"YulTypedName","src":"3910:6:88","type":""}],"src":"3837:382:88"},{"body":{"nativeSrc":"4348:102:88","nodeType":"YulBlock","src":"4348:102:88","statements":[{"nativeSrc":"4358:26:88","nodeType":"YulAssignment","src":"4358:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4370:9:88","nodeType":"YulIdentifier","src":"4370:9:88"},{"kind":"number","nativeSrc":"4381:2:88","nodeType":"YulLiteral","src":"4381:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4366:3:88","nodeType":"YulIdentifier","src":"4366:3:88"},"nativeSrc":"4366:18:88","nodeType":"YulFunctionCall","src":"4366:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4358:4:88","nodeType":"YulIdentifier","src":"4358:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4400:9:88","nodeType":"YulIdentifier","src":"4400:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4415:6:88","nodeType":"YulIdentifier","src":"4415:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4431:3:88","nodeType":"YulLiteral","src":"4431:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4436:1:88","nodeType":"YulLiteral","src":"4436:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4427:3:88","nodeType":"YulIdentifier","src":"4427:3:88"},"nativeSrc":"4427:11:88","nodeType":"YulFunctionCall","src":"4427:11:88"},{"kind":"number","nativeSrc":"4440:1:88","nodeType":"YulLiteral","src":"4440:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4423:3:88","nodeType":"YulIdentifier","src":"4423:3:88"},"nativeSrc":"4423:19:88","nodeType":"YulFunctionCall","src":"4423:19:88"}],"functionName":{"name":"and","nativeSrc":"4411:3:88","nodeType":"YulIdentifier","src":"4411:3:88"},"nativeSrc":"4411:32:88","nodeType":"YulFunctionCall","src":"4411:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4393:6:88","nodeType":"YulIdentifier","src":"4393:6:88"},"nativeSrc":"4393:51:88","nodeType":"YulFunctionCall","src":"4393:51:88"},"nativeSrc":"4393:51:88","nodeType":"YulExpressionStatement","src":"4393:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"4224:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4317:9:88","nodeType":"YulTypedName","src":"4317:9:88","type":""},{"name":"value0","nativeSrc":"4328:6:88","nodeType":"YulTypedName","src":"4328:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4339:4:88","nodeType":"YulTypedName","src":"4339:4:88","type":""}],"src":"4224:226:88"},{"body":{"nativeSrc":"4629:234:88","nodeType":"YulBlock","src":"4629:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4646:9:88","nodeType":"YulIdentifier","src":"4646:9:88"},{"kind":"number","nativeSrc":"4657:2:88","nodeType":"YulLiteral","src":"4657:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4639:6:88","nodeType":"YulIdentifier","src":"4639:6:88"},"nativeSrc":"4639:21:88","nodeType":"YulFunctionCall","src":"4639:21:88"},"nativeSrc":"4639:21:88","nodeType":"YulExpressionStatement","src":"4639:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4680:9:88","nodeType":"YulIdentifier","src":"4680:9:88"},{"kind":"number","nativeSrc":"4691:2:88","nodeType":"YulLiteral","src":"4691:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4676:3:88","nodeType":"YulIdentifier","src":"4676:3:88"},"nativeSrc":"4676:18:88","nodeType":"YulFunctionCall","src":"4676:18:88"},{"kind":"number","nativeSrc":"4696:2:88","nodeType":"YulLiteral","src":"4696:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"4669:6:88","nodeType":"YulIdentifier","src":"4669:6:88"},"nativeSrc":"4669:30:88","nodeType":"YulFunctionCall","src":"4669:30:88"},"nativeSrc":"4669:30:88","nodeType":"YulExpressionStatement","src":"4669:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4719:9:88","nodeType":"YulIdentifier","src":"4719:9:88"},{"kind":"number","nativeSrc":"4730:2:88","nodeType":"YulLiteral","src":"4730:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4715:3:88","nodeType":"YulIdentifier","src":"4715:3:88"},"nativeSrc":"4715:18:88","nodeType":"YulFunctionCall","src":"4715:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"4735:34:88","nodeType":"YulLiteral","src":"4735:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"4708:6:88","nodeType":"YulIdentifier","src":"4708:6:88"},"nativeSrc":"4708:62:88","nodeType":"YulFunctionCall","src":"4708:62:88"},"nativeSrc":"4708:62:88","nodeType":"YulExpressionStatement","src":"4708:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4790:9:88","nodeType":"YulIdentifier","src":"4790:9:88"},{"kind":"number","nativeSrc":"4801:2:88","nodeType":"YulLiteral","src":"4801:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4786:3:88","nodeType":"YulIdentifier","src":"4786:3:88"},"nativeSrc":"4786:18:88","nodeType":"YulFunctionCall","src":"4786:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"4806:14:88","nodeType":"YulLiteral","src":"4806:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"4779:6:88","nodeType":"YulIdentifier","src":"4779:6:88"},"nativeSrc":"4779:42:88","nodeType":"YulFunctionCall","src":"4779:42:88"},"nativeSrc":"4779:42:88","nodeType":"YulExpressionStatement","src":"4779:42:88"},{"nativeSrc":"4830:27:88","nodeType":"YulAssignment","src":"4830:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4842:9:88","nodeType":"YulIdentifier","src":"4842:9:88"},{"kind":"number","nativeSrc":"4853:3:88","nodeType":"YulLiteral","src":"4853:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4838:3:88","nodeType":"YulIdentifier","src":"4838:3:88"},"nativeSrc":"4838:19:88","nodeType":"YulFunctionCall","src":"4838:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4830:4:88","nodeType":"YulIdentifier","src":"4830:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4455:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4606:9:88","nodeType":"YulTypedName","src":"4606:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4620:4:88","nodeType":"YulTypedName","src":"4620:4:88","type":""}],"src":"4455:408:88"},{"body":{"nativeSrc":"5042:234:88","nodeType":"YulBlock","src":"5042:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5059:9:88","nodeType":"YulIdentifier","src":"5059:9:88"},{"kind":"number","nativeSrc":"5070:2:88","nodeType":"YulLiteral","src":"5070:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5052:6:88","nodeType":"YulIdentifier","src":"5052:6:88"},"nativeSrc":"5052:21:88","nodeType":"YulFunctionCall","src":"5052:21:88"},"nativeSrc":"5052:21:88","nodeType":"YulExpressionStatement","src":"5052:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5093:9:88","nodeType":"YulIdentifier","src":"5093:9:88"},{"kind":"number","nativeSrc":"5104:2:88","nodeType":"YulLiteral","src":"5104:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5089:3:88","nodeType":"YulIdentifier","src":"5089:3:88"},"nativeSrc":"5089:18:88","nodeType":"YulFunctionCall","src":"5089:18:88"},{"kind":"number","nativeSrc":"5109:2:88","nodeType":"YulLiteral","src":"5109:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"5082:6:88","nodeType":"YulIdentifier","src":"5082:6:88"},"nativeSrc":"5082:30:88","nodeType":"YulFunctionCall","src":"5082:30:88"},"nativeSrc":"5082:30:88","nodeType":"YulExpressionStatement","src":"5082:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5132:9:88","nodeType":"YulIdentifier","src":"5132:9:88"},{"kind":"number","nativeSrc":"5143:2:88","nodeType":"YulLiteral","src":"5143:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5128:3:88","nodeType":"YulIdentifier","src":"5128:3:88"},"nativeSrc":"5128:18:88","nodeType":"YulFunctionCall","src":"5128:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"5148:34:88","nodeType":"YulLiteral","src":"5148:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"5121:6:88","nodeType":"YulIdentifier","src":"5121:6:88"},"nativeSrc":"5121:62:88","nodeType":"YulFunctionCall","src":"5121:62:88"},"nativeSrc":"5121:62:88","nodeType":"YulExpressionStatement","src":"5121:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5203:9:88","nodeType":"YulIdentifier","src":"5203:9:88"},{"kind":"number","nativeSrc":"5214:2:88","nodeType":"YulLiteral","src":"5214:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5199:3:88","nodeType":"YulIdentifier","src":"5199:3:88"},"nativeSrc":"5199:18:88","nodeType":"YulFunctionCall","src":"5199:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"5219:14:88","nodeType":"YulLiteral","src":"5219:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"5192:6:88","nodeType":"YulIdentifier","src":"5192:6:88"},"nativeSrc":"5192:42:88","nodeType":"YulFunctionCall","src":"5192:42:88"},"nativeSrc":"5192:42:88","nodeType":"YulExpressionStatement","src":"5192:42:88"},{"nativeSrc":"5243:27:88","nodeType":"YulAssignment","src":"5243:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5255:9:88","nodeType":"YulIdentifier","src":"5255:9:88"},{"kind":"number","nativeSrc":"5266:3:88","nodeType":"YulLiteral","src":"5266:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5251:3:88","nodeType":"YulIdentifier","src":"5251:3:88"},"nativeSrc":"5251:19:88","nodeType":"YulFunctionCall","src":"5251:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5243:4:88","nodeType":"YulIdentifier","src":"5243:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4868:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5019:9:88","nodeType":"YulTypedName","src":"5019:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5033:4:88","nodeType":"YulTypedName","src":"5033:4:88","type":""}],"src":"4868:408:88"},{"body":{"nativeSrc":"5386:170:88","nodeType":"YulBlock","src":"5386:170:88","statements":[{"body":{"nativeSrc":"5432:16:88","nodeType":"YulBlock","src":"5432:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5441:1:88","nodeType":"YulLiteral","src":"5441:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5444:1:88","nodeType":"YulLiteral","src":"5444:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5434:6:88","nodeType":"YulIdentifier","src":"5434:6:88"},"nativeSrc":"5434:12:88","nodeType":"YulFunctionCall","src":"5434:12:88"},"nativeSrc":"5434:12:88","nodeType":"YulExpressionStatement","src":"5434:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5407:7:88","nodeType":"YulIdentifier","src":"5407:7:88"},{"name":"headStart","nativeSrc":"5416:9:88","nodeType":"YulIdentifier","src":"5416:9:88"}],"functionName":{"name":"sub","nativeSrc":"5403:3:88","nodeType":"YulIdentifier","src":"5403:3:88"},"nativeSrc":"5403:23:88","nodeType":"YulFunctionCall","src":"5403:23:88"},{"kind":"number","nativeSrc":"5428:2:88","nodeType":"YulLiteral","src":"5428:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5399:3:88","nodeType":"YulIdentifier","src":"5399:3:88"},"nativeSrc":"5399:32:88","nodeType":"YulFunctionCall","src":"5399:32:88"},"nativeSrc":"5396:52:88","nodeType":"YulIf","src":"5396:52:88"},{"nativeSrc":"5457:29:88","nodeType":"YulVariableDeclaration","src":"5457:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5476:9:88","nodeType":"YulIdentifier","src":"5476:9:88"}],"functionName":{"name":"mload","nativeSrc":"5470:5:88","nodeType":"YulIdentifier","src":"5470:5:88"},"nativeSrc":"5470:16:88","nodeType":"YulFunctionCall","src":"5470:16:88"},"variables":[{"name":"value","nativeSrc":"5461:5:88","nodeType":"YulTypedName","src":"5461:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5520:5:88","nodeType":"YulIdentifier","src":"5520:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5495:24:88","nodeType":"YulIdentifier","src":"5495:24:88"},"nativeSrc":"5495:31:88","nodeType":"YulFunctionCall","src":"5495:31:88"},"nativeSrc":"5495:31:88","nodeType":"YulExpressionStatement","src":"5495:31:88"},{"nativeSrc":"5535:15:88","nodeType":"YulAssignment","src":"5535:15:88","value":{"name":"value","nativeSrc":"5545:5:88","nodeType":"YulIdentifier","src":"5545:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5535:6:88","nodeType":"YulIdentifier","src":"5535:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"5281:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5352:9:88","nodeType":"YulTypedName","src":"5352:9:88","type":""},{"name":"dataEnd","nativeSrc":"5363:7:88","nodeType":"YulTypedName","src":"5363:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5375:6:88","nodeType":"YulTypedName","src":"5375:6:88","type":""}],"src":"5281:275:88"},{"body":{"nativeSrc":"5768:318:88","nodeType":"YulBlock","src":"5768:318:88","statements":[{"nativeSrc":"5778:27:88","nodeType":"YulAssignment","src":"5778:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5790:9:88","nodeType":"YulIdentifier","src":"5790:9:88"},{"kind":"number","nativeSrc":"5801:3:88","nodeType":"YulLiteral","src":"5801:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5786:3:88","nodeType":"YulIdentifier","src":"5786:3:88"},"nativeSrc":"5786:19:88","nodeType":"YulFunctionCall","src":"5786:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5778:4:88","nodeType":"YulIdentifier","src":"5778:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5821:9:88","nodeType":"YulIdentifier","src":"5821:9:88"},{"arguments":[{"name":"value0","nativeSrc":"5836:6:88","nodeType":"YulIdentifier","src":"5836:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5852:3:88","nodeType":"YulLiteral","src":"5852:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"5857:1:88","nodeType":"YulLiteral","src":"5857:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5848:3:88","nodeType":"YulIdentifier","src":"5848:3:88"},"nativeSrc":"5848:11:88","nodeType":"YulFunctionCall","src":"5848:11:88"},{"kind":"number","nativeSrc":"5861:1:88","nodeType":"YulLiteral","src":"5861:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5844:3:88","nodeType":"YulIdentifier","src":"5844:3:88"},"nativeSrc":"5844:19:88","nodeType":"YulFunctionCall","src":"5844:19:88"}],"functionName":{"name":"and","nativeSrc":"5832:3:88","nodeType":"YulIdentifier","src":"5832:3:88"},"nativeSrc":"5832:32:88","nodeType":"YulFunctionCall","src":"5832:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5814:6:88","nodeType":"YulIdentifier","src":"5814:6:88"},"nativeSrc":"5814:51:88","nodeType":"YulFunctionCall","src":"5814:51:88"},"nativeSrc":"5814:51:88","nodeType":"YulExpressionStatement","src":"5814:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5885:9:88","nodeType":"YulIdentifier","src":"5885:9:88"},{"kind":"number","nativeSrc":"5896:2:88","nodeType":"YulLiteral","src":"5896:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5881:3:88","nodeType":"YulIdentifier","src":"5881:3:88"},"nativeSrc":"5881:18:88","nodeType":"YulFunctionCall","src":"5881:18:88"},{"name":"value1","nativeSrc":"5901:6:88","nodeType":"YulIdentifier","src":"5901:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5874:6:88","nodeType":"YulIdentifier","src":"5874:6:88"},"nativeSrc":"5874:34:88","nodeType":"YulFunctionCall","src":"5874:34:88"},"nativeSrc":"5874:34:88","nodeType":"YulExpressionStatement","src":"5874:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5928:9:88","nodeType":"YulIdentifier","src":"5928:9:88"},{"kind":"number","nativeSrc":"5939:2:88","nodeType":"YulLiteral","src":"5939:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5924:3:88","nodeType":"YulIdentifier","src":"5924:3:88"},"nativeSrc":"5924:18:88","nodeType":"YulFunctionCall","src":"5924:18:88"},{"name":"value2","nativeSrc":"5944:6:88","nodeType":"YulIdentifier","src":"5944:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5917:6:88","nodeType":"YulIdentifier","src":"5917:6:88"},"nativeSrc":"5917:34:88","nodeType":"YulFunctionCall","src":"5917:34:88"},"nativeSrc":"5917:34:88","nodeType":"YulExpressionStatement","src":"5917:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5971:9:88","nodeType":"YulIdentifier","src":"5971:9:88"},{"kind":"number","nativeSrc":"5982:2:88","nodeType":"YulLiteral","src":"5982:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5967:3:88","nodeType":"YulIdentifier","src":"5967:3:88"},"nativeSrc":"5967:18:88","nodeType":"YulFunctionCall","src":"5967:18:88"},{"arguments":[{"name":"value3","nativeSrc":"5991:6:88","nodeType":"YulIdentifier","src":"5991:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6007:3:88","nodeType":"YulLiteral","src":"6007:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6012:1:88","nodeType":"YulLiteral","src":"6012:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6003:3:88","nodeType":"YulIdentifier","src":"6003:3:88"},"nativeSrc":"6003:11:88","nodeType":"YulFunctionCall","src":"6003:11:88"},{"kind":"number","nativeSrc":"6016:1:88","nodeType":"YulLiteral","src":"6016:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5999:3:88","nodeType":"YulIdentifier","src":"5999:3:88"},"nativeSrc":"5999:19:88","nodeType":"YulFunctionCall","src":"5999:19:88"}],"functionName":{"name":"and","nativeSrc":"5987:3:88","nodeType":"YulIdentifier","src":"5987:3:88"},"nativeSrc":"5987:32:88","nodeType":"YulFunctionCall","src":"5987:32:88"}],"functionName":{"name":"mstore","nativeSrc":"5960:6:88","nodeType":"YulIdentifier","src":"5960:6:88"},"nativeSrc":"5960:60:88","nodeType":"YulFunctionCall","src":"5960:60:88"},"nativeSrc":"5960:60:88","nodeType":"YulExpressionStatement","src":"5960:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6040:9:88","nodeType":"YulIdentifier","src":"6040:9:88"},{"kind":"number","nativeSrc":"6051:3:88","nodeType":"YulLiteral","src":"6051:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6036:3:88","nodeType":"YulIdentifier","src":"6036:3:88"},"nativeSrc":"6036:19:88","nodeType":"YulFunctionCall","src":"6036:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"6071:6:88","nodeType":"YulIdentifier","src":"6071:6:88"}],"functionName":{"name":"iszero","nativeSrc":"6064:6:88","nodeType":"YulIdentifier","src":"6064:6:88"},"nativeSrc":"6064:14:88","nodeType":"YulFunctionCall","src":"6064:14:88"}],"functionName":{"name":"iszero","nativeSrc":"6057:6:88","nodeType":"YulIdentifier","src":"6057:6:88"},"nativeSrc":"6057:22:88","nodeType":"YulFunctionCall","src":"6057:22:88"}],"functionName":{"name":"mstore","nativeSrc":"6029:6:88","nodeType":"YulIdentifier","src":"6029:6:88"},"nativeSrc":"6029:51:88","nodeType":"YulFunctionCall","src":"6029:51:88"},"nativeSrc":"6029:51:88","nodeType":"YulExpressionStatement","src":"6029:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"5561:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5705:9:88","nodeType":"YulTypedName","src":"5705:9:88","type":""},{"name":"value4","nativeSrc":"5716:6:88","nodeType":"YulTypedName","src":"5716:6:88","type":""},{"name":"value3","nativeSrc":"5724:6:88","nodeType":"YulTypedName","src":"5724:6:88","type":""},{"name":"value2","nativeSrc":"5732:6:88","nodeType":"YulTypedName","src":"5732:6:88","type":""},{"name":"value1","nativeSrc":"5740:6:88","nodeType":"YulTypedName","src":"5740:6:88","type":""},{"name":"value0","nativeSrc":"5748:6:88","nodeType":"YulTypedName","src":"5748:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5759:4:88","nodeType":"YulTypedName","src":"5759:4:88","type":""}],"src":"5561:525:88"},{"body":{"nativeSrc":"6265:246:88","nodeType":"YulBlock","src":"6265:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6282:9:88","nodeType":"YulIdentifier","src":"6282:9:88"},{"kind":"number","nativeSrc":"6293:2:88","nodeType":"YulLiteral","src":"6293:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6275:6:88","nodeType":"YulIdentifier","src":"6275:6:88"},"nativeSrc":"6275:21:88","nodeType":"YulFunctionCall","src":"6275:21:88"},"nativeSrc":"6275:21:88","nodeType":"YulExpressionStatement","src":"6275:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6316:9:88","nodeType":"YulIdentifier","src":"6316:9:88"},{"kind":"number","nativeSrc":"6327:2:88","nodeType":"YulLiteral","src":"6327:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6312:3:88","nodeType":"YulIdentifier","src":"6312:3:88"},"nativeSrc":"6312:18:88","nodeType":"YulFunctionCall","src":"6312:18:88"},{"kind":"number","nativeSrc":"6332:2:88","nodeType":"YulLiteral","src":"6332:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"6305:6:88","nodeType":"YulIdentifier","src":"6305:6:88"},"nativeSrc":"6305:30:88","nodeType":"YulFunctionCall","src":"6305:30:88"},"nativeSrc":"6305:30:88","nodeType":"YulExpressionStatement","src":"6305:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6355:9:88","nodeType":"YulIdentifier","src":"6355:9:88"},{"kind":"number","nativeSrc":"6366:2:88","nodeType":"YulLiteral","src":"6366:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6351:3:88","nodeType":"YulIdentifier","src":"6351:3:88"},"nativeSrc":"6351:18:88","nodeType":"YulFunctionCall","src":"6351:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"6371:34:88","nodeType":"YulLiteral","src":"6371:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"6344:6:88","nodeType":"YulIdentifier","src":"6344:6:88"},"nativeSrc":"6344:62:88","nodeType":"YulFunctionCall","src":"6344:62:88"},"nativeSrc":"6344:62:88","nodeType":"YulExpressionStatement","src":"6344:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6426:9:88","nodeType":"YulIdentifier","src":"6426:9:88"},{"kind":"number","nativeSrc":"6437:2:88","nodeType":"YulLiteral","src":"6437:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6422:3:88","nodeType":"YulIdentifier","src":"6422:3:88"},"nativeSrc":"6422:18:88","nodeType":"YulFunctionCall","src":"6422:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"6442:26:88","nodeType":"YulLiteral","src":"6442:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"6415:6:88","nodeType":"YulIdentifier","src":"6415:6:88"},"nativeSrc":"6415:54:88","nodeType":"YulFunctionCall","src":"6415:54:88"},"nativeSrc":"6415:54:88","nodeType":"YulExpressionStatement","src":"6415:54:88"},{"nativeSrc":"6478:27:88","nodeType":"YulAssignment","src":"6478:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6490:9:88","nodeType":"YulIdentifier","src":"6490:9:88"},{"kind":"number","nativeSrc":"6501:3:88","nodeType":"YulLiteral","src":"6501:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6486:3:88","nodeType":"YulIdentifier","src":"6486:3:88"},"nativeSrc":"6486:19:88","nodeType":"YulFunctionCall","src":"6486:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6478:4:88","nodeType":"YulIdentifier","src":"6478:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6091:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6242:9:88","nodeType":"YulTypedName","src":"6242:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6256:4:88","nodeType":"YulTypedName","src":"6256:4:88","type":""}],"src":"6091:420:88"},{"body":{"nativeSrc":"6690:236:88","nodeType":"YulBlock","src":"6690:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6707:9:88","nodeType":"YulIdentifier","src":"6707:9:88"},{"kind":"number","nativeSrc":"6718:2:88","nodeType":"YulLiteral","src":"6718:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6700:6:88","nodeType":"YulIdentifier","src":"6700:6:88"},"nativeSrc":"6700:21:88","nodeType":"YulFunctionCall","src":"6700:21:88"},"nativeSrc":"6700:21:88","nodeType":"YulExpressionStatement","src":"6700:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6741:9:88","nodeType":"YulIdentifier","src":"6741:9:88"},{"kind":"number","nativeSrc":"6752:2:88","nodeType":"YulLiteral","src":"6752:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6737:3:88","nodeType":"YulIdentifier","src":"6737:3:88"},"nativeSrc":"6737:18:88","nodeType":"YulFunctionCall","src":"6737:18:88"},{"kind":"number","nativeSrc":"6757:2:88","nodeType":"YulLiteral","src":"6757:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"6730:6:88","nodeType":"YulIdentifier","src":"6730:6:88"},"nativeSrc":"6730:30:88","nodeType":"YulFunctionCall","src":"6730:30:88"},"nativeSrc":"6730:30:88","nodeType":"YulExpressionStatement","src":"6730:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6780:9:88","nodeType":"YulIdentifier","src":"6780:9:88"},{"kind":"number","nativeSrc":"6791:2:88","nodeType":"YulLiteral","src":"6791:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6776:3:88","nodeType":"YulIdentifier","src":"6776:3:88"},"nativeSrc":"6776:18:88","nodeType":"YulFunctionCall","src":"6776:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"6796:34:88","nodeType":"YulLiteral","src":"6796:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"6769:6:88","nodeType":"YulIdentifier","src":"6769:6:88"},"nativeSrc":"6769:62:88","nodeType":"YulFunctionCall","src":"6769:62:88"},"nativeSrc":"6769:62:88","nodeType":"YulExpressionStatement","src":"6769:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6851:9:88","nodeType":"YulIdentifier","src":"6851:9:88"},{"kind":"number","nativeSrc":"6862:2:88","nodeType":"YulLiteral","src":"6862:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6847:3:88","nodeType":"YulIdentifier","src":"6847:3:88"},"nativeSrc":"6847:18:88","nodeType":"YulFunctionCall","src":"6847:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"6867:16:88","nodeType":"YulLiteral","src":"6867:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"6840:6:88","nodeType":"YulIdentifier","src":"6840:6:88"},"nativeSrc":"6840:44:88","nodeType":"YulFunctionCall","src":"6840:44:88"},"nativeSrc":"6840:44:88","nodeType":"YulExpressionStatement","src":"6840:44:88"},{"nativeSrc":"6893:27:88","nodeType":"YulAssignment","src":"6893:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6905:9:88","nodeType":"YulIdentifier","src":"6905:9:88"},{"kind":"number","nativeSrc":"6916:3:88","nodeType":"YulLiteral","src":"6916:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6901:3:88","nodeType":"YulIdentifier","src":"6901:3:88"},"nativeSrc":"6901:19:88","nodeType":"YulFunctionCall","src":"6901:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6893:4:88","nodeType":"YulIdentifier","src":"6893:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6516:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6667:9:88","nodeType":"YulTypedName","src":"6667:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6681:4:88","nodeType":"YulTypedName","src":"6681:4:88","type":""}],"src":"6516:410:88"},{"body":{"nativeSrc":"7038:87:88","nodeType":"YulBlock","src":"7038:87:88","statements":[{"nativeSrc":"7048:26:88","nodeType":"YulAssignment","src":"7048:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7060:9:88","nodeType":"YulIdentifier","src":"7060:9:88"},{"kind":"number","nativeSrc":"7071:2:88","nodeType":"YulLiteral","src":"7071:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7056:3:88","nodeType":"YulIdentifier","src":"7056:3:88"},"nativeSrc":"7056:18:88","nodeType":"YulFunctionCall","src":"7056:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7048:4:88","nodeType":"YulIdentifier","src":"7048:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7090:9:88","nodeType":"YulIdentifier","src":"7090:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7105:6:88","nodeType":"YulIdentifier","src":"7105:6:88"},{"kind":"number","nativeSrc":"7113:4:88","nodeType":"YulLiteral","src":"7113:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7101:3:88","nodeType":"YulIdentifier","src":"7101:3:88"},"nativeSrc":"7101:17:88","nodeType":"YulFunctionCall","src":"7101:17:88"}],"functionName":{"name":"mstore","nativeSrc":"7083:6:88","nodeType":"YulIdentifier","src":"7083:6:88"},"nativeSrc":"7083:36:88","nodeType":"YulFunctionCall","src":"7083:36:88"},"nativeSrc":"7083:36:88","nodeType":"YulExpressionStatement","src":"7083:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"6931:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7007:9:88","nodeType":"YulTypedName","src":"7007:9:88","type":""},{"name":"value0","nativeSrc":"7018:6:88","nodeType":"YulTypedName","src":"7018:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7029:4:88","nodeType":"YulTypedName","src":"7029:4:88","type":""}],"src":"6931:194:88"},{"body":{"nativeSrc":"7309:274:88","nodeType":"YulBlock","src":"7309:274:88","statements":[{"nativeSrc":"7319:27:88","nodeType":"YulAssignment","src":"7319:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7331:9:88","nodeType":"YulIdentifier","src":"7331:9:88"},{"kind":"number","nativeSrc":"7342:3:88","nodeType":"YulLiteral","src":"7342:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7327:3:88","nodeType":"YulIdentifier","src":"7327:3:88"},"nativeSrc":"7327:19:88","nodeType":"YulFunctionCall","src":"7327:19:88"},"variableNames":[{"name":"tail","nativeSrc":"7319:4:88","nodeType":"YulIdentifier","src":"7319:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7362:9:88","nodeType":"YulIdentifier","src":"7362:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7377:6:88","nodeType":"YulIdentifier","src":"7377:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7393:3:88","nodeType":"YulLiteral","src":"7393:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7398:1:88","nodeType":"YulLiteral","src":"7398:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7389:3:88","nodeType":"YulIdentifier","src":"7389:3:88"},"nativeSrc":"7389:11:88","nodeType":"YulFunctionCall","src":"7389:11:88"},{"kind":"number","nativeSrc":"7402:1:88","nodeType":"YulLiteral","src":"7402:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7385:3:88","nodeType":"YulIdentifier","src":"7385:3:88"},"nativeSrc":"7385:19:88","nodeType":"YulFunctionCall","src":"7385:19:88"}],"functionName":{"name":"and","nativeSrc":"7373:3:88","nodeType":"YulIdentifier","src":"7373:3:88"},"nativeSrc":"7373:32:88","nodeType":"YulFunctionCall","src":"7373:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7355:6:88","nodeType":"YulIdentifier","src":"7355:6:88"},"nativeSrc":"7355:51:88","nodeType":"YulFunctionCall","src":"7355:51:88"},"nativeSrc":"7355:51:88","nodeType":"YulExpressionStatement","src":"7355:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7426:9:88","nodeType":"YulIdentifier","src":"7426:9:88"},{"kind":"number","nativeSrc":"7437:2:88","nodeType":"YulLiteral","src":"7437:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7422:3:88","nodeType":"YulIdentifier","src":"7422:3:88"},"nativeSrc":"7422:18:88","nodeType":"YulFunctionCall","src":"7422:18:88"},{"name":"value1","nativeSrc":"7442:6:88","nodeType":"YulIdentifier","src":"7442:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7415:6:88","nodeType":"YulIdentifier","src":"7415:6:88"},"nativeSrc":"7415:34:88","nodeType":"YulFunctionCall","src":"7415:34:88"},"nativeSrc":"7415:34:88","nodeType":"YulExpressionStatement","src":"7415:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7469:9:88","nodeType":"YulIdentifier","src":"7469:9:88"},{"kind":"number","nativeSrc":"7480:2:88","nodeType":"YulLiteral","src":"7480:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7465:3:88","nodeType":"YulIdentifier","src":"7465:3:88"},"nativeSrc":"7465:18:88","nodeType":"YulFunctionCall","src":"7465:18:88"},{"arguments":[{"name":"value2","nativeSrc":"7489:6:88","nodeType":"YulIdentifier","src":"7489:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7505:3:88","nodeType":"YulLiteral","src":"7505:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7510:1:88","nodeType":"YulLiteral","src":"7510:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7501:3:88","nodeType":"YulIdentifier","src":"7501:3:88"},"nativeSrc":"7501:11:88","nodeType":"YulFunctionCall","src":"7501:11:88"},{"kind":"number","nativeSrc":"7514:1:88","nodeType":"YulLiteral","src":"7514:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7497:3:88","nodeType":"YulIdentifier","src":"7497:3:88"},"nativeSrc":"7497:19:88","nodeType":"YulFunctionCall","src":"7497:19:88"}],"functionName":{"name":"and","nativeSrc":"7485:3:88","nodeType":"YulIdentifier","src":"7485:3:88"},"nativeSrc":"7485:32:88","nodeType":"YulFunctionCall","src":"7485:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7458:6:88","nodeType":"YulIdentifier","src":"7458:6:88"},"nativeSrc":"7458:60:88","nodeType":"YulFunctionCall","src":"7458:60:88"},"nativeSrc":"7458:60:88","nodeType":"YulExpressionStatement","src":"7458:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7538:9:88","nodeType":"YulIdentifier","src":"7538:9:88"},{"kind":"number","nativeSrc":"7549:2:88","nodeType":"YulLiteral","src":"7549:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7534:3:88","nodeType":"YulIdentifier","src":"7534:3:88"},"nativeSrc":"7534:18:88","nodeType":"YulFunctionCall","src":"7534:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"7568:6:88","nodeType":"YulIdentifier","src":"7568:6:88"}],"functionName":{"name":"iszero","nativeSrc":"7561:6:88","nodeType":"YulIdentifier","src":"7561:6:88"},"nativeSrc":"7561:14:88","nodeType":"YulFunctionCall","src":"7561:14:88"}],"functionName":{"name":"iszero","nativeSrc":"7554:6:88","nodeType":"YulIdentifier","src":"7554:6:88"},"nativeSrc":"7554:22:88","nodeType":"YulFunctionCall","src":"7554:22:88"}],"functionName":{"name":"mstore","nativeSrc":"7527:6:88","nodeType":"YulIdentifier","src":"7527:6:88"},"nativeSrc":"7527:50:88","nodeType":"YulFunctionCall","src":"7527:50:88"},"nativeSrc":"7527:50:88","nodeType":"YulExpressionStatement","src":"7527:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"7130:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7254:9:88","nodeType":"YulTypedName","src":"7254:9:88","type":""},{"name":"value3","nativeSrc":"7265:6:88","nodeType":"YulTypedName","src":"7265:6:88","type":""},{"name":"value2","nativeSrc":"7273:6:88","nodeType":"YulTypedName","src":"7273:6:88","type":""},{"name":"value1","nativeSrc":"7281:6:88","nodeType":"YulTypedName","src":"7281:6:88","type":""},{"name":"value0","nativeSrc":"7289:6:88","nodeType":"YulTypedName","src":"7289:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7300:4:88","nodeType":"YulTypedName","src":"7300:4:88","type":""}],"src":"7130:453:88"},{"body":{"nativeSrc":"7762:214:88","nodeType":"YulBlock","src":"7762:214:88","statements":[{"nativeSrc":"7772:26:88","nodeType":"YulAssignment","src":"7772:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7784:9:88","nodeType":"YulIdentifier","src":"7784:9:88"},{"kind":"number","nativeSrc":"7795:2:88","nodeType":"YulLiteral","src":"7795:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7780:3:88","nodeType":"YulIdentifier","src":"7780:3:88"},"nativeSrc":"7780:18:88","nodeType":"YulFunctionCall","src":"7780:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7772:4:88","nodeType":"YulIdentifier","src":"7772:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7814:9:88","nodeType":"YulIdentifier","src":"7814:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7829:6:88","nodeType":"YulIdentifier","src":"7829:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7845:3:88","nodeType":"YulLiteral","src":"7845:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7850:1:88","nodeType":"YulLiteral","src":"7850:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7841:3:88","nodeType":"YulIdentifier","src":"7841:3:88"},"nativeSrc":"7841:11:88","nodeType":"YulFunctionCall","src":"7841:11:88"},{"kind":"number","nativeSrc":"7854:1:88","nodeType":"YulLiteral","src":"7854:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7837:3:88","nodeType":"YulIdentifier","src":"7837:3:88"},"nativeSrc":"7837:19:88","nodeType":"YulFunctionCall","src":"7837:19:88"}],"functionName":{"name":"and","nativeSrc":"7825:3:88","nodeType":"YulIdentifier","src":"7825:3:88"},"nativeSrc":"7825:32:88","nodeType":"YulFunctionCall","src":"7825:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7807:6:88","nodeType":"YulIdentifier","src":"7807:6:88"},"nativeSrc":"7807:51:88","nodeType":"YulFunctionCall","src":"7807:51:88"},"nativeSrc":"7807:51:88","nodeType":"YulExpressionStatement","src":"7807:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7878:9:88","nodeType":"YulIdentifier","src":"7878:9:88"},{"kind":"number","nativeSrc":"7889:2:88","nodeType":"YulLiteral","src":"7889:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7874:3:88","nodeType":"YulIdentifier","src":"7874:3:88"},"nativeSrc":"7874:18:88","nodeType":"YulFunctionCall","src":"7874:18:88"},{"arguments":[{"name":"value1","nativeSrc":"7898:6:88","nodeType":"YulIdentifier","src":"7898:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7914:3:88","nodeType":"YulLiteral","src":"7914:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7919:1:88","nodeType":"YulLiteral","src":"7919:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7910:3:88","nodeType":"YulIdentifier","src":"7910:3:88"},"nativeSrc":"7910:11:88","nodeType":"YulFunctionCall","src":"7910:11:88"},{"kind":"number","nativeSrc":"7923:1:88","nodeType":"YulLiteral","src":"7923:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7906:3:88","nodeType":"YulIdentifier","src":"7906:3:88"},"nativeSrc":"7906:19:88","nodeType":"YulFunctionCall","src":"7906:19:88"}],"functionName":{"name":"and","nativeSrc":"7894:3:88","nodeType":"YulIdentifier","src":"7894:3:88"},"nativeSrc":"7894:32:88","nodeType":"YulFunctionCall","src":"7894:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7867:6:88","nodeType":"YulIdentifier","src":"7867:6:88"},"nativeSrc":"7867:60:88","nodeType":"YulFunctionCall","src":"7867:60:88"},"nativeSrc":"7867:60:88","nodeType":"YulExpressionStatement","src":"7867:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7947:9:88","nodeType":"YulIdentifier","src":"7947:9:88"},{"kind":"number","nativeSrc":"7958:2:88","nodeType":"YulLiteral","src":"7958:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7943:3:88","nodeType":"YulIdentifier","src":"7943:3:88"},"nativeSrc":"7943:18:88","nodeType":"YulFunctionCall","src":"7943:18:88"},{"name":"value2","nativeSrc":"7963:6:88","nodeType":"YulIdentifier","src":"7963:6:88"}],"functionName":{"name":"mstore","nativeSrc":"7936:6:88","nodeType":"YulIdentifier","src":"7936:6:88"},"nativeSrc":"7936:34:88","nodeType":"YulFunctionCall","src":"7936:34:88"},"nativeSrc":"7936:34:88","nodeType":"YulExpressionStatement","src":"7936:34:88"}]},"name":"abi_encode_tuple_t_contract$_IEToken_$23549_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"7588:388:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7715:9:88","nodeType":"YulTypedName","src":"7715:9:88","type":""},{"name":"value2","nativeSrc":"7726:6:88","nodeType":"YulTypedName","src":"7726:6:88","type":""},{"name":"value1","nativeSrc":"7734:6:88","nodeType":"YulTypedName","src":"7734:6:88","type":""},{"name":"value0","nativeSrc":"7742:6:88","nodeType":"YulTypedName","src":"7742:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7753:4:88","nodeType":"YulTypedName","src":"7753:4:88","type":""}],"src":"7588:388:88"},{"body":{"nativeSrc":"8059:167:88","nodeType":"YulBlock","src":"8059:167:88","statements":[{"body":{"nativeSrc":"8105:16:88","nodeType":"YulBlock","src":"8105:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8114:1:88","nodeType":"YulLiteral","src":"8114:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8117:1:88","nodeType":"YulLiteral","src":"8117:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8107:6:88","nodeType":"YulIdentifier","src":"8107:6:88"},"nativeSrc":"8107:12:88","nodeType":"YulFunctionCall","src":"8107:12:88"},"nativeSrc":"8107:12:88","nodeType":"YulExpressionStatement","src":"8107:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8080:7:88","nodeType":"YulIdentifier","src":"8080:7:88"},{"name":"headStart","nativeSrc":"8089:9:88","nodeType":"YulIdentifier","src":"8089:9:88"}],"functionName":{"name":"sub","nativeSrc":"8076:3:88","nodeType":"YulIdentifier","src":"8076:3:88"},"nativeSrc":"8076:23:88","nodeType":"YulFunctionCall","src":"8076:23:88"},{"kind":"number","nativeSrc":"8101:2:88","nodeType":"YulLiteral","src":"8101:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8072:3:88","nodeType":"YulIdentifier","src":"8072:3:88"},"nativeSrc":"8072:32:88","nodeType":"YulFunctionCall","src":"8072:32:88"},"nativeSrc":"8069:52:88","nodeType":"YulIf","src":"8069:52:88"},{"nativeSrc":"8130:29:88","nodeType":"YulVariableDeclaration","src":"8130:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8149:9:88","nodeType":"YulIdentifier","src":"8149:9:88"}],"functionName":{"name":"mload","nativeSrc":"8143:5:88","nodeType":"YulIdentifier","src":"8143:5:88"},"nativeSrc":"8143:16:88","nodeType":"YulFunctionCall","src":"8143:16:88"},"variables":[{"name":"value","nativeSrc":"8134:5:88","nodeType":"YulTypedName","src":"8134:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8190:5:88","nodeType":"YulIdentifier","src":"8190:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"8168:21:88","nodeType":"YulIdentifier","src":"8168:21:88"},"nativeSrc":"8168:28:88","nodeType":"YulFunctionCall","src":"8168:28:88"},"nativeSrc":"8168:28:88","nodeType":"YulExpressionStatement","src":"8168:28:88"},{"nativeSrc":"8205:15:88","nodeType":"YulAssignment","src":"8205:15:88","value":{"name":"value","nativeSrc":"8215:5:88","nodeType":"YulIdentifier","src":"8215:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8205:6:88","nodeType":"YulIdentifier","src":"8205:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"7981:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8025:9:88","nodeType":"YulTypedName","src":"8025:9:88","type":""},{"name":"dataEnd","nativeSrc":"8036:7:88","nodeType":"YulTypedName","src":"8036:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8048:6:88","nodeType":"YulTypedName","src":"8048:6:88","type":""}],"src":"7981:245:88"},{"body":{"nativeSrc":"8354:161:88","nodeType":"YulBlock","src":"8354:161:88","statements":[{"nativeSrc":"8364:26:88","nodeType":"YulAssignment","src":"8364:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8376:9:88","nodeType":"YulIdentifier","src":"8376:9:88"},{"kind":"number","nativeSrc":"8387:2:88","nodeType":"YulLiteral","src":"8387:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8372:3:88","nodeType":"YulIdentifier","src":"8372:3:88"},"nativeSrc":"8372:18:88","nodeType":"YulFunctionCall","src":"8372:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8364:4:88","nodeType":"YulIdentifier","src":"8364:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8406:9:88","nodeType":"YulIdentifier","src":"8406:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8421:6:88","nodeType":"YulIdentifier","src":"8421:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8437:3:88","nodeType":"YulLiteral","src":"8437:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8442:1:88","nodeType":"YulLiteral","src":"8442:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8433:3:88","nodeType":"YulIdentifier","src":"8433:3:88"},"nativeSrc":"8433:11:88","nodeType":"YulFunctionCall","src":"8433:11:88"},{"kind":"number","nativeSrc":"8446:1:88","nodeType":"YulLiteral","src":"8446:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8429:3:88","nodeType":"YulIdentifier","src":"8429:3:88"},"nativeSrc":"8429:19:88","nodeType":"YulFunctionCall","src":"8429:19:88"}],"functionName":{"name":"and","nativeSrc":"8417:3:88","nodeType":"YulIdentifier","src":"8417:3:88"},"nativeSrc":"8417:32:88","nodeType":"YulFunctionCall","src":"8417:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8399:6:88","nodeType":"YulIdentifier","src":"8399:6:88"},"nativeSrc":"8399:51:88","nodeType":"YulFunctionCall","src":"8399:51:88"},"nativeSrc":"8399:51:88","nodeType":"YulExpressionStatement","src":"8399:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8470:9:88","nodeType":"YulIdentifier","src":"8470:9:88"},{"kind":"number","nativeSrc":"8481:2:88","nodeType":"YulLiteral","src":"8481:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8466:3:88","nodeType":"YulIdentifier","src":"8466:3:88"},"nativeSrc":"8466:18:88","nodeType":"YulFunctionCall","src":"8466:18:88"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"8500:6:88","nodeType":"YulIdentifier","src":"8500:6:88"}],"functionName":{"name":"iszero","nativeSrc":"8493:6:88","nodeType":"YulIdentifier","src":"8493:6:88"},"nativeSrc":"8493:14:88","nodeType":"YulFunctionCall","src":"8493:14:88"}],"functionName":{"name":"iszero","nativeSrc":"8486:6:88","nodeType":"YulIdentifier","src":"8486:6:88"},"nativeSrc":"8486:22:88","nodeType":"YulFunctionCall","src":"8486:22:88"}],"functionName":{"name":"mstore","nativeSrc":"8459:6:88","nodeType":"YulIdentifier","src":"8459:6:88"},"nativeSrc":"8459:50:88","nodeType":"YulFunctionCall","src":"8459:50:88"},"nativeSrc":"8459:50:88","nodeType":"YulExpressionStatement","src":"8459:50:88"}]},"name":"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed","nativeSrc":"8231:284:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8315:9:88","nodeType":"YulTypedName","src":"8315:9:88","type":""},{"name":"value1","nativeSrc":"8326:6:88","nodeType":"YulTypedName","src":"8326:6:88","type":""},{"name":"value0","nativeSrc":"8334:6:88","nodeType":"YulTypedName","src":"8334:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8345:4:88","nodeType":"YulTypedName","src":"8345:4:88","type":""}],"src":"8231:284:88"},{"body":{"nativeSrc":"8624:170:88","nodeType":"YulBlock","src":"8624:170:88","statements":[{"body":{"nativeSrc":"8670:16:88","nodeType":"YulBlock","src":"8670:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8679:1:88","nodeType":"YulLiteral","src":"8679:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8682:1:88","nodeType":"YulLiteral","src":"8682:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8672:6:88","nodeType":"YulIdentifier","src":"8672:6:88"},"nativeSrc":"8672:12:88","nodeType":"YulFunctionCall","src":"8672:12:88"},"nativeSrc":"8672:12:88","nodeType":"YulExpressionStatement","src":"8672:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8645:7:88","nodeType":"YulIdentifier","src":"8645:7:88"},{"name":"headStart","nativeSrc":"8654:9:88","nodeType":"YulIdentifier","src":"8654:9:88"}],"functionName":{"name":"sub","nativeSrc":"8641:3:88","nodeType":"YulIdentifier","src":"8641:3:88"},"nativeSrc":"8641:23:88","nodeType":"YulFunctionCall","src":"8641:23:88"},{"kind":"number","nativeSrc":"8666:2:88","nodeType":"YulLiteral","src":"8666:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8637:3:88","nodeType":"YulIdentifier","src":"8637:3:88"},"nativeSrc":"8637:32:88","nodeType":"YulFunctionCall","src":"8637:32:88"},"nativeSrc":"8634:52:88","nodeType":"YulIf","src":"8634:52:88"},{"nativeSrc":"8695:29:88","nodeType":"YulVariableDeclaration","src":"8695:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8714:9:88","nodeType":"YulIdentifier","src":"8714:9:88"}],"functionName":{"name":"mload","nativeSrc":"8708:5:88","nodeType":"YulIdentifier","src":"8708:5:88"},"nativeSrc":"8708:16:88","nodeType":"YulFunctionCall","src":"8708:16:88"},"variables":[{"name":"value","nativeSrc":"8699:5:88","nodeType":"YulTypedName","src":"8699:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8758:5:88","nodeType":"YulIdentifier","src":"8758:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8733:24:88","nodeType":"YulIdentifier","src":"8733:24:88"},"nativeSrc":"8733:31:88","nodeType":"YulFunctionCall","src":"8733:31:88"},"nativeSrc":"8733:31:88","nodeType":"YulExpressionStatement","src":"8733:31:88"},{"nativeSrc":"8773:15:88","nodeType":"YulAssignment","src":"8773:15:88","value":{"name":"value","nativeSrc":"8783:5:88","nodeType":"YulIdentifier","src":"8783:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8773:6:88","nodeType":"YulIdentifier","src":"8773:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"8520:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8590:9:88","nodeType":"YulTypedName","src":"8590:9:88","type":""},{"name":"dataEnd","nativeSrc":"8601:7:88","nodeType":"YulTypedName","src":"8601:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8613:6:88","nodeType":"YulTypedName","src":"8613:6:88","type":""}],"src":"8520:274:88"},{"body":{"nativeSrc":"8880:103:88","nodeType":"YulBlock","src":"8880:103:88","statements":[{"body":{"nativeSrc":"8926:16:88","nodeType":"YulBlock","src":"8926:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8935:1:88","nodeType":"YulLiteral","src":"8935:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8938:1:88","nodeType":"YulLiteral","src":"8938:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8928:6:88","nodeType":"YulIdentifier","src":"8928:6:88"},"nativeSrc":"8928:12:88","nodeType":"YulFunctionCall","src":"8928:12:88"},"nativeSrc":"8928:12:88","nodeType":"YulExpressionStatement","src":"8928:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8901:7:88","nodeType":"YulIdentifier","src":"8901:7:88"},{"name":"headStart","nativeSrc":"8910:9:88","nodeType":"YulIdentifier","src":"8910:9:88"}],"functionName":{"name":"sub","nativeSrc":"8897:3:88","nodeType":"YulIdentifier","src":"8897:3:88"},"nativeSrc":"8897:23:88","nodeType":"YulFunctionCall","src":"8897:23:88"},{"kind":"number","nativeSrc":"8922:2:88","nodeType":"YulLiteral","src":"8922:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8893:3:88","nodeType":"YulIdentifier","src":"8893:3:88"},"nativeSrc":"8893:32:88","nodeType":"YulFunctionCall","src":"8893:32:88"},"nativeSrc":"8890:52:88","nodeType":"YulIf","src":"8890:52:88"},{"nativeSrc":"8951:26:88","nodeType":"YulAssignment","src":"8951:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8967:9:88","nodeType":"YulIdentifier","src":"8967:9:88"}],"functionName":{"name":"mload","nativeSrc":"8961:5:88","nodeType":"YulIdentifier","src":"8961:5:88"},"nativeSrc":"8961:16:88","nodeType":"YulFunctionCall","src":"8961:16:88"},"variableNames":[{"name":"value0","nativeSrc":"8951:6:88","nodeType":"YulIdentifier","src":"8951:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"8799:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8846:9:88","nodeType":"YulTypedName","src":"8846:9:88","type":""},{"name":"dataEnd","nativeSrc":"8857:7:88","nodeType":"YulTypedName","src":"8857:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8869:6:88","nodeType":"YulTypedName","src":"8869:6:88","type":""}],"src":"8799:184:88"},{"body":{"nativeSrc":"9162:236:88","nodeType":"YulBlock","src":"9162:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9179:9:88","nodeType":"YulIdentifier","src":"9179:9:88"},{"kind":"number","nativeSrc":"9190:2:88","nodeType":"YulLiteral","src":"9190:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9172:6:88","nodeType":"YulIdentifier","src":"9172:6:88"},"nativeSrc":"9172:21:88","nodeType":"YulFunctionCall","src":"9172:21:88"},"nativeSrc":"9172:21:88","nodeType":"YulExpressionStatement","src":"9172:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9213:9:88","nodeType":"YulIdentifier","src":"9213:9:88"},{"kind":"number","nativeSrc":"9224:2:88","nodeType":"YulLiteral","src":"9224:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9209:3:88","nodeType":"YulIdentifier","src":"9209:3:88"},"nativeSrc":"9209:18:88","nodeType":"YulFunctionCall","src":"9209:18:88"},{"kind":"number","nativeSrc":"9229:2:88","nodeType":"YulLiteral","src":"9229:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"9202:6:88","nodeType":"YulIdentifier","src":"9202:6:88"},"nativeSrc":"9202:30:88","nodeType":"YulFunctionCall","src":"9202:30:88"},"nativeSrc":"9202:30:88","nodeType":"YulExpressionStatement","src":"9202:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9252:9:88","nodeType":"YulIdentifier","src":"9252:9:88"},{"kind":"number","nativeSrc":"9263:2:88","nodeType":"YulLiteral","src":"9263:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9248:3:88","nodeType":"YulIdentifier","src":"9248:3:88"},"nativeSrc":"9248:18:88","nodeType":"YulFunctionCall","src":"9248:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"9268:34:88","nodeType":"YulLiteral","src":"9268:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"9241:6:88","nodeType":"YulIdentifier","src":"9241:6:88"},"nativeSrc":"9241:62:88","nodeType":"YulFunctionCall","src":"9241:62:88"},"nativeSrc":"9241:62:88","nodeType":"YulExpressionStatement","src":"9241:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9323:9:88","nodeType":"YulIdentifier","src":"9323:9:88"},{"kind":"number","nativeSrc":"9334:2:88","nodeType":"YulLiteral","src":"9334:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9319:3:88","nodeType":"YulIdentifier","src":"9319:3:88"},"nativeSrc":"9319:18:88","nodeType":"YulFunctionCall","src":"9319:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"9339:16:88","nodeType":"YulLiteral","src":"9339:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"9312:6:88","nodeType":"YulIdentifier","src":"9312:6:88"},"nativeSrc":"9312:44:88","nodeType":"YulFunctionCall","src":"9312:44:88"},"nativeSrc":"9312:44:88","nodeType":"YulExpressionStatement","src":"9312:44:88"},{"nativeSrc":"9365:27:88","nodeType":"YulAssignment","src":"9365:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9377:9:88","nodeType":"YulIdentifier","src":"9377:9:88"},{"kind":"number","nativeSrc":"9388:3:88","nodeType":"YulLiteral","src":"9388:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9373:3:88","nodeType":"YulIdentifier","src":"9373:3:88"},"nativeSrc":"9373:19:88","nodeType":"YulFunctionCall","src":"9373:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9365:4:88","nodeType":"YulIdentifier","src":"9365:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8988:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9139:9:88","nodeType":"YulTypedName","src":"9139:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9153:4:88","nodeType":"YulTypedName","src":"9153:4:88","type":""}],"src":"8988:410:88"},{"body":{"nativeSrc":"9577:231:88","nodeType":"YulBlock","src":"9577:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9594:9:88","nodeType":"YulIdentifier","src":"9594:9:88"},{"kind":"number","nativeSrc":"9605:2:88","nodeType":"YulLiteral","src":"9605:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9587:6:88","nodeType":"YulIdentifier","src":"9587:6:88"},"nativeSrc":"9587:21:88","nodeType":"YulFunctionCall","src":"9587:21:88"},"nativeSrc":"9587:21:88","nodeType":"YulExpressionStatement","src":"9587:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9628:9:88","nodeType":"YulIdentifier","src":"9628:9:88"},{"kind":"number","nativeSrc":"9639:2:88","nodeType":"YulLiteral","src":"9639:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9624:3:88","nodeType":"YulIdentifier","src":"9624:3:88"},"nativeSrc":"9624:18:88","nodeType":"YulFunctionCall","src":"9624:18:88"},{"kind":"number","nativeSrc":"9644:2:88","nodeType":"YulLiteral","src":"9644:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"9617:6:88","nodeType":"YulIdentifier","src":"9617:6:88"},"nativeSrc":"9617:30:88","nodeType":"YulFunctionCall","src":"9617:30:88"},"nativeSrc":"9617:30:88","nodeType":"YulExpressionStatement","src":"9617:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9667:9:88","nodeType":"YulIdentifier","src":"9667:9:88"},{"kind":"number","nativeSrc":"9678:2:88","nodeType":"YulLiteral","src":"9678:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9663:3:88","nodeType":"YulIdentifier","src":"9663:3:88"},"nativeSrc":"9663:18:88","nodeType":"YulFunctionCall","src":"9663:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"9683:34:88","nodeType":"YulLiteral","src":"9683:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"9656:6:88","nodeType":"YulIdentifier","src":"9656:6:88"},"nativeSrc":"9656:62:88","nodeType":"YulFunctionCall","src":"9656:62:88"},"nativeSrc":"9656:62:88","nodeType":"YulExpressionStatement","src":"9656:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9738:9:88","nodeType":"YulIdentifier","src":"9738:9:88"},{"kind":"number","nativeSrc":"9749:2:88","nodeType":"YulLiteral","src":"9749:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9734:3:88","nodeType":"YulIdentifier","src":"9734:3:88"},"nativeSrc":"9734:18:88","nodeType":"YulFunctionCall","src":"9734:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"9754:11:88","nodeType":"YulLiteral","src":"9754:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"9727:6:88","nodeType":"YulIdentifier","src":"9727:6:88"},"nativeSrc":"9727:39:88","nodeType":"YulFunctionCall","src":"9727:39:88"},"nativeSrc":"9727:39:88","nodeType":"YulExpressionStatement","src":"9727:39:88"},{"nativeSrc":"9775:27:88","nodeType":"YulAssignment","src":"9775:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9787:9:88","nodeType":"YulIdentifier","src":"9787:9:88"},{"kind":"number","nativeSrc":"9798:3:88","nodeType":"YulLiteral","src":"9798:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9783:3:88","nodeType":"YulIdentifier","src":"9783:3:88"},"nativeSrc":"9783:19:88","nodeType":"YulFunctionCall","src":"9783:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9775:4:88","nodeType":"YulIdentifier","src":"9775:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9403:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9554:9:88","nodeType":"YulTypedName","src":"9554:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9568:4:88","nodeType":"YulTypedName","src":"9568:4:88","type":""}],"src":"9403:405:88"},{"body":{"nativeSrc":"9914:102:88","nodeType":"YulBlock","src":"9914:102:88","statements":[{"nativeSrc":"9924:26:88","nodeType":"YulAssignment","src":"9924:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9936:9:88","nodeType":"YulIdentifier","src":"9936:9:88"},{"kind":"number","nativeSrc":"9947:2:88","nodeType":"YulLiteral","src":"9947:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9932:3:88","nodeType":"YulIdentifier","src":"9932:3:88"},"nativeSrc":"9932:18:88","nodeType":"YulFunctionCall","src":"9932:18:88"},"variableNames":[{"name":"tail","nativeSrc":"9924:4:88","nodeType":"YulIdentifier","src":"9924:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9966:9:88","nodeType":"YulIdentifier","src":"9966:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9981:6:88","nodeType":"YulIdentifier","src":"9981:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9997:3:88","nodeType":"YulLiteral","src":"9997:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"10002:1:88","nodeType":"YulLiteral","src":"10002:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"9993:3:88","nodeType":"YulIdentifier","src":"9993:3:88"},"nativeSrc":"9993:11:88","nodeType":"YulFunctionCall","src":"9993:11:88"},{"kind":"number","nativeSrc":"10006:1:88","nodeType":"YulLiteral","src":"10006:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"9989:3:88","nodeType":"YulIdentifier","src":"9989:3:88"},"nativeSrc":"9989:19:88","nodeType":"YulFunctionCall","src":"9989:19:88"}],"functionName":{"name":"and","nativeSrc":"9977:3:88","nodeType":"YulIdentifier","src":"9977:3:88"},"nativeSrc":"9977:32:88","nodeType":"YulFunctionCall","src":"9977:32:88"}],"functionName":{"name":"mstore","nativeSrc":"9959:6:88","nodeType":"YulIdentifier","src":"9959:6:88"},"nativeSrc":"9959:51:88","nodeType":"YulFunctionCall","src":"9959:51:88"},"nativeSrc":"9959:51:88","nodeType":"YulExpressionStatement","src":"9959:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"9813:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9883:9:88","nodeType":"YulTypedName","src":"9883:9:88","type":""},{"name":"value0","nativeSrc":"9894:6:88","nodeType":"YulTypedName","src":"9894:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9905:4:88","nodeType":"YulTypedName","src":"9905:4:88","type":""}],"src":"9813:203:88"},{"body":{"nativeSrc":"10195:233:88","nodeType":"YulBlock","src":"10195:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10212:9:88","nodeType":"YulIdentifier","src":"10212:9:88"},{"kind":"number","nativeSrc":"10223:2:88","nodeType":"YulLiteral","src":"10223:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10205:6:88","nodeType":"YulIdentifier","src":"10205:6:88"},"nativeSrc":"10205:21:88","nodeType":"YulFunctionCall","src":"10205:21:88"},"nativeSrc":"10205:21:88","nodeType":"YulExpressionStatement","src":"10205:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10246:9:88","nodeType":"YulIdentifier","src":"10246:9:88"},{"kind":"number","nativeSrc":"10257:2:88","nodeType":"YulLiteral","src":"10257:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10242:3:88","nodeType":"YulIdentifier","src":"10242:3:88"},"nativeSrc":"10242:18:88","nodeType":"YulFunctionCall","src":"10242:18:88"},{"kind":"number","nativeSrc":"10262:2:88","nodeType":"YulLiteral","src":"10262:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"10235:6:88","nodeType":"YulIdentifier","src":"10235:6:88"},"nativeSrc":"10235:30:88","nodeType":"YulFunctionCall","src":"10235:30:88"},"nativeSrc":"10235:30:88","nodeType":"YulExpressionStatement","src":"10235:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10285:9:88","nodeType":"YulIdentifier","src":"10285:9:88"},{"kind":"number","nativeSrc":"10296:2:88","nodeType":"YulLiteral","src":"10296:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10281:3:88","nodeType":"YulIdentifier","src":"10281:3:88"},"nativeSrc":"10281:18:88","nodeType":"YulFunctionCall","src":"10281:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"10301:34:88","nodeType":"YulLiteral","src":"10301:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"10274:6:88","nodeType":"YulIdentifier","src":"10274:6:88"},"nativeSrc":"10274:62:88","nodeType":"YulFunctionCall","src":"10274:62:88"},"nativeSrc":"10274:62:88","nodeType":"YulExpressionStatement","src":"10274:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10356:9:88","nodeType":"YulIdentifier","src":"10356:9:88"},{"kind":"number","nativeSrc":"10367:2:88","nodeType":"YulLiteral","src":"10367:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10352:3:88","nodeType":"YulIdentifier","src":"10352:3:88"},"nativeSrc":"10352:18:88","nodeType":"YulFunctionCall","src":"10352:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"10372:13:88","nodeType":"YulLiteral","src":"10372:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"10345:6:88","nodeType":"YulIdentifier","src":"10345:6:88"},"nativeSrc":"10345:41:88","nodeType":"YulFunctionCall","src":"10345:41:88"},"nativeSrc":"10345:41:88","nodeType":"YulExpressionStatement","src":"10345:41:88"},{"nativeSrc":"10395:27:88","nodeType":"YulAssignment","src":"10395:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10407:9:88","nodeType":"YulIdentifier","src":"10407:9:88"},{"kind":"number","nativeSrc":"10418:3:88","nodeType":"YulLiteral","src":"10418:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10403:3:88","nodeType":"YulIdentifier","src":"10403:3:88"},"nativeSrc":"10403:19:88","nodeType":"YulFunctionCall","src":"10403:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10395:4:88","nodeType":"YulIdentifier","src":"10395:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10021:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10172:9:88","nodeType":"YulTypedName","src":"10172:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10186:4:88","nodeType":"YulTypedName","src":"10186:4:88","type":""}],"src":"10021:407:88"},{"body":{"nativeSrc":"10535:170:88","nodeType":"YulBlock","src":"10535:170:88","statements":[{"body":{"nativeSrc":"10581:16:88","nodeType":"YulBlock","src":"10581:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10590:1:88","nodeType":"YulLiteral","src":"10590:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"10593:1:88","nodeType":"YulLiteral","src":"10593:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10583:6:88","nodeType":"YulIdentifier","src":"10583:6:88"},"nativeSrc":"10583:12:88","nodeType":"YulFunctionCall","src":"10583:12:88"},"nativeSrc":"10583:12:88","nodeType":"YulExpressionStatement","src":"10583:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10556:7:88","nodeType":"YulIdentifier","src":"10556:7:88"},{"name":"headStart","nativeSrc":"10565:9:88","nodeType":"YulIdentifier","src":"10565:9:88"}],"functionName":{"name":"sub","nativeSrc":"10552:3:88","nodeType":"YulIdentifier","src":"10552:3:88"},"nativeSrc":"10552:23:88","nodeType":"YulFunctionCall","src":"10552:23:88"},{"kind":"number","nativeSrc":"10577:2:88","nodeType":"YulLiteral","src":"10577:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10548:3:88","nodeType":"YulIdentifier","src":"10548:3:88"},"nativeSrc":"10548:32:88","nodeType":"YulFunctionCall","src":"10548:32:88"},"nativeSrc":"10545:52:88","nodeType":"YulIf","src":"10545:52:88"},{"nativeSrc":"10606:29:88","nodeType":"YulVariableDeclaration","src":"10606:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10625:9:88","nodeType":"YulIdentifier","src":"10625:9:88"}],"functionName":{"name":"mload","nativeSrc":"10619:5:88","nodeType":"YulIdentifier","src":"10619:5:88"},"nativeSrc":"10619:16:88","nodeType":"YulFunctionCall","src":"10619:16:88"},"variables":[{"name":"value","nativeSrc":"10610:5:88","nodeType":"YulTypedName","src":"10610:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10669:5:88","nodeType":"YulIdentifier","src":"10669:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10644:24:88","nodeType":"YulIdentifier","src":"10644:24:88"},"nativeSrc":"10644:31:88","nodeType":"YulFunctionCall","src":"10644:31:88"},"nativeSrc":"10644:31:88","nodeType":"YulExpressionStatement","src":"10644:31:88"},{"nativeSrc":"10684:15:88","nodeType":"YulAssignment","src":"10684:15:88","value":{"name":"value","nativeSrc":"10694:5:88","nodeType":"YulIdentifier","src":"10694:5:88"},"variableNames":[{"name":"value0","nativeSrc":"10684:6:88","nodeType":"YulIdentifier","src":"10684:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"10433:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10501:9:88","nodeType":"YulTypedName","src":"10501:9:88","type":""},{"name":"dataEnd","nativeSrc":"10512:7:88","nodeType":"YulTypedName","src":"10512:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10524:6:88","nodeType":"YulTypedName","src":"10524:6:88","type":""}],"src":"10433:272:88"},{"body":{"nativeSrc":"10884:235:88","nodeType":"YulBlock","src":"10884:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10901:9:88","nodeType":"YulIdentifier","src":"10901:9:88"},{"kind":"number","nativeSrc":"10912:2:88","nodeType":"YulLiteral","src":"10912:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10894:6:88","nodeType":"YulIdentifier","src":"10894:6:88"},"nativeSrc":"10894:21:88","nodeType":"YulFunctionCall","src":"10894:21:88"},"nativeSrc":"10894:21:88","nodeType":"YulExpressionStatement","src":"10894:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10935:9:88","nodeType":"YulIdentifier","src":"10935:9:88"},{"kind":"number","nativeSrc":"10946:2:88","nodeType":"YulLiteral","src":"10946:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10931:3:88","nodeType":"YulIdentifier","src":"10931:3:88"},"nativeSrc":"10931:18:88","nodeType":"YulFunctionCall","src":"10931:18:88"},{"kind":"number","nativeSrc":"10951:2:88","nodeType":"YulLiteral","src":"10951:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"10924:6:88","nodeType":"YulIdentifier","src":"10924:6:88"},"nativeSrc":"10924:30:88","nodeType":"YulFunctionCall","src":"10924:30:88"},"nativeSrc":"10924:30:88","nodeType":"YulExpressionStatement","src":"10924:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10974:9:88","nodeType":"YulIdentifier","src":"10974:9:88"},{"kind":"number","nativeSrc":"10985:2:88","nodeType":"YulLiteral","src":"10985:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10970:3:88","nodeType":"YulIdentifier","src":"10970:3:88"},"nativeSrc":"10970:18:88","nodeType":"YulFunctionCall","src":"10970:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"10990:34:88","nodeType":"YulLiteral","src":"10990:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"10963:6:88","nodeType":"YulIdentifier","src":"10963:6:88"},"nativeSrc":"10963:62:88","nodeType":"YulFunctionCall","src":"10963:62:88"},"nativeSrc":"10963:62:88","nodeType":"YulExpressionStatement","src":"10963:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11045:9:88","nodeType":"YulIdentifier","src":"11045:9:88"},{"kind":"number","nativeSrc":"11056:2:88","nodeType":"YulLiteral","src":"11056:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11041:3:88","nodeType":"YulIdentifier","src":"11041:3:88"},"nativeSrc":"11041:18:88","nodeType":"YulFunctionCall","src":"11041:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"11061:15:88","nodeType":"YulLiteral","src":"11061:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"11034:6:88","nodeType":"YulIdentifier","src":"11034:6:88"},"nativeSrc":"11034:43:88","nodeType":"YulFunctionCall","src":"11034:43:88"},"nativeSrc":"11034:43:88","nodeType":"YulExpressionStatement","src":"11034:43:88"},{"nativeSrc":"11086:27:88","nodeType":"YulAssignment","src":"11086:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11098:9:88","nodeType":"YulIdentifier","src":"11098:9:88"},{"kind":"number","nativeSrc":"11109:3:88","nodeType":"YulLiteral","src":"11109:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11094:3:88","nodeType":"YulIdentifier","src":"11094:3:88"},"nativeSrc":"11094:19:88","nodeType":"YulFunctionCall","src":"11094:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11086:4:88","nodeType":"YulIdentifier","src":"11086:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10710:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10861:9:88","nodeType":"YulTypedName","src":"10861:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10875:4:88","nodeType":"YulTypedName","src":"10875:4:88","type":""}],"src":"10710:409:88"},{"body":{"nativeSrc":"11298:170:88","nodeType":"YulBlock","src":"11298:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11315:9:88","nodeType":"YulIdentifier","src":"11315:9:88"},{"kind":"number","nativeSrc":"11326:2:88","nodeType":"YulLiteral","src":"11326:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11308:6:88","nodeType":"YulIdentifier","src":"11308:6:88"},"nativeSrc":"11308:21:88","nodeType":"YulFunctionCall","src":"11308:21:88"},"nativeSrc":"11308:21:88","nodeType":"YulExpressionStatement","src":"11308:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11349:9:88","nodeType":"YulIdentifier","src":"11349:9:88"},{"kind":"number","nativeSrc":"11360:2:88","nodeType":"YulLiteral","src":"11360:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11345:3:88","nodeType":"YulIdentifier","src":"11345:3:88"},"nativeSrc":"11345:18:88","nodeType":"YulFunctionCall","src":"11345:18:88"},{"kind":"number","nativeSrc":"11365:2:88","nodeType":"YulLiteral","src":"11365:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"11338:6:88","nodeType":"YulIdentifier","src":"11338:6:88"},"nativeSrc":"11338:30:88","nodeType":"YulFunctionCall","src":"11338:30:88"},"nativeSrc":"11338:30:88","nodeType":"YulExpressionStatement","src":"11338:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11388:9:88","nodeType":"YulIdentifier","src":"11388:9:88"},{"kind":"number","nativeSrc":"11399:2:88","nodeType":"YulLiteral","src":"11399:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11384:3:88","nodeType":"YulIdentifier","src":"11384:3:88"},"nativeSrc":"11384:18:88","nodeType":"YulFunctionCall","src":"11384:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"11404:22:88","nodeType":"YulLiteral","src":"11404:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"11377:6:88","nodeType":"YulIdentifier","src":"11377:6:88"},"nativeSrc":"11377:50:88","nodeType":"YulFunctionCall","src":"11377:50:88"},"nativeSrc":"11377:50:88","nodeType":"YulExpressionStatement","src":"11377:50:88"},{"nativeSrc":"11436:26:88","nodeType":"YulAssignment","src":"11436:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11448:9:88","nodeType":"YulIdentifier","src":"11448:9:88"},{"kind":"number","nativeSrc":"11459:2:88","nodeType":"YulLiteral","src":"11459:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11444:3:88","nodeType":"YulIdentifier","src":"11444:3:88"},"nativeSrc":"11444:18:88","nodeType":"YulFunctionCall","src":"11444:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11436:4:88","nodeType":"YulIdentifier","src":"11436:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11124:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11275:9:88","nodeType":"YulTypedName","src":"11275:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11289:4:88","nodeType":"YulTypedName","src":"11289:4:88","type":""}],"src":"11124:344:88"},{"body":{"nativeSrc":"11647:166:88","nodeType":"YulBlock","src":"11647:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11664:9:88","nodeType":"YulIdentifier","src":"11664:9:88"},{"kind":"number","nativeSrc":"11675:2:88","nodeType":"YulLiteral","src":"11675:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11657:6:88","nodeType":"YulIdentifier","src":"11657:6:88"},"nativeSrc":"11657:21:88","nodeType":"YulFunctionCall","src":"11657:21:88"},"nativeSrc":"11657:21:88","nodeType":"YulExpressionStatement","src":"11657:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11698:9:88","nodeType":"YulIdentifier","src":"11698:9:88"},{"kind":"number","nativeSrc":"11709:2:88","nodeType":"YulLiteral","src":"11709:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11694:3:88","nodeType":"YulIdentifier","src":"11694:3:88"},"nativeSrc":"11694:18:88","nodeType":"YulFunctionCall","src":"11694:18:88"},{"kind":"number","nativeSrc":"11714:2:88","nodeType":"YulLiteral","src":"11714:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"11687:6:88","nodeType":"YulIdentifier","src":"11687:6:88"},"nativeSrc":"11687:30:88","nodeType":"YulFunctionCall","src":"11687:30:88"},"nativeSrc":"11687:30:88","nodeType":"YulExpressionStatement","src":"11687:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11737:9:88","nodeType":"YulIdentifier","src":"11737:9:88"},{"kind":"number","nativeSrc":"11748:2:88","nodeType":"YulLiteral","src":"11748:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11733:3:88","nodeType":"YulIdentifier","src":"11733:3:88"},"nativeSrc":"11733:18:88","nodeType":"YulFunctionCall","src":"11733:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"11753:18:88","nodeType":"YulLiteral","src":"11753:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"11726:6:88","nodeType":"YulIdentifier","src":"11726:6:88"},"nativeSrc":"11726:46:88","nodeType":"YulFunctionCall","src":"11726:46:88"},"nativeSrc":"11726:46:88","nodeType":"YulExpressionStatement","src":"11726:46:88"},{"nativeSrc":"11781:26:88","nodeType":"YulAssignment","src":"11781:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11793:9:88","nodeType":"YulIdentifier","src":"11793:9:88"},{"kind":"number","nativeSrc":"11804:2:88","nodeType":"YulLiteral","src":"11804:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11789:3:88","nodeType":"YulIdentifier","src":"11789:3:88"},"nativeSrc":"11789:18:88","nodeType":"YulFunctionCall","src":"11789:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11781:4:88","nodeType":"YulIdentifier","src":"11781:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11473:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11624:9:88","nodeType":"YulTypedName","src":"11624:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11638:4:88","nodeType":"YulTypedName","src":"11638:4:88","type":""}],"src":"11473:340:88"},{"body":{"nativeSrc":"11955:164:88","nodeType":"YulBlock","src":"11955:164:88","statements":[{"nativeSrc":"11965:27:88","nodeType":"YulVariableDeclaration","src":"11965:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"11985:6:88","nodeType":"YulIdentifier","src":"11985:6:88"}],"functionName":{"name":"mload","nativeSrc":"11979:5:88","nodeType":"YulIdentifier","src":"11979:5:88"},"nativeSrc":"11979:13:88","nodeType":"YulFunctionCall","src":"11979:13:88"},"variables":[{"name":"length","nativeSrc":"11969:6:88","nodeType":"YulTypedName","src":"11969:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12007:3:88","nodeType":"YulIdentifier","src":"12007:3:88"},{"arguments":[{"name":"value0","nativeSrc":"12016:6:88","nodeType":"YulIdentifier","src":"12016:6:88"},{"kind":"number","nativeSrc":"12024:4:88","nodeType":"YulLiteral","src":"12024:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12012:3:88","nodeType":"YulIdentifier","src":"12012:3:88"},"nativeSrc":"12012:17:88","nodeType":"YulFunctionCall","src":"12012:17:88"},{"name":"length","nativeSrc":"12031:6:88","nodeType":"YulIdentifier","src":"12031:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"12001:5:88","nodeType":"YulIdentifier","src":"12001:5:88"},"nativeSrc":"12001:37:88","nodeType":"YulFunctionCall","src":"12001:37:88"},"nativeSrc":"12001:37:88","nodeType":"YulExpressionStatement","src":"12001:37:88"},{"nativeSrc":"12047:26:88","nodeType":"YulVariableDeclaration","src":"12047:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"12061:3:88","nodeType":"YulIdentifier","src":"12061:3:88"},{"name":"length","nativeSrc":"12066:6:88","nodeType":"YulIdentifier","src":"12066:6:88"}],"functionName":{"name":"add","nativeSrc":"12057:3:88","nodeType":"YulIdentifier","src":"12057:3:88"},"nativeSrc":"12057:16:88","nodeType":"YulFunctionCall","src":"12057:16:88"},"variables":[{"name":"_1","nativeSrc":"12051:2:88","nodeType":"YulTypedName","src":"12051:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"12089:2:88","nodeType":"YulIdentifier","src":"12089:2:88"},{"kind":"number","nativeSrc":"12093:1:88","nodeType":"YulLiteral","src":"12093:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12082:6:88","nodeType":"YulIdentifier","src":"12082:6:88"},"nativeSrc":"12082:13:88","nodeType":"YulFunctionCall","src":"12082:13:88"},"nativeSrc":"12082:13:88","nodeType":"YulExpressionStatement","src":"12082:13:88"},{"nativeSrc":"12104:9:88","nodeType":"YulAssignment","src":"12104:9:88","value":{"name":"_1","nativeSrc":"12111:2:88","nodeType":"YulIdentifier","src":"12111:2:88"},"variableNames":[{"name":"end","nativeSrc":"12104:3:88","nodeType":"YulIdentifier","src":"12104:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"11818:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11931:3:88","nodeType":"YulTypedName","src":"11931:3:88","type":""},{"name":"value0","nativeSrc":"11936:6:88","nodeType":"YulTypedName","src":"11936:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11947:3:88","nodeType":"YulTypedName","src":"11947:3:88","type":""}],"src":"11818:301:88"},{"body":{"nativeSrc":"12298:179:88","nodeType":"YulBlock","src":"12298:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12315:9:88","nodeType":"YulIdentifier","src":"12315:9:88"},{"kind":"number","nativeSrc":"12326:2:88","nodeType":"YulLiteral","src":"12326:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12308:6:88","nodeType":"YulIdentifier","src":"12308:6:88"},"nativeSrc":"12308:21:88","nodeType":"YulFunctionCall","src":"12308:21:88"},"nativeSrc":"12308:21:88","nodeType":"YulExpressionStatement","src":"12308:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12349:9:88","nodeType":"YulIdentifier","src":"12349:9:88"},{"kind":"number","nativeSrc":"12360:2:88","nodeType":"YulLiteral","src":"12360:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12345:3:88","nodeType":"YulIdentifier","src":"12345:3:88"},"nativeSrc":"12345:18:88","nodeType":"YulFunctionCall","src":"12345:18:88"},{"kind":"number","nativeSrc":"12365:2:88","nodeType":"YulLiteral","src":"12365:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"12338:6:88","nodeType":"YulIdentifier","src":"12338:6:88"},"nativeSrc":"12338:30:88","nodeType":"YulFunctionCall","src":"12338:30:88"},"nativeSrc":"12338:30:88","nodeType":"YulExpressionStatement","src":"12338:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12388:9:88","nodeType":"YulIdentifier","src":"12388:9:88"},{"kind":"number","nativeSrc":"12399:2:88","nodeType":"YulLiteral","src":"12399:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12384:3:88","nodeType":"YulIdentifier","src":"12384:3:88"},"nativeSrc":"12384:18:88","nodeType":"YulFunctionCall","src":"12384:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"12404:31:88","nodeType":"YulLiteral","src":"12404:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"12377:6:88","nodeType":"YulIdentifier","src":"12377:6:88"},"nativeSrc":"12377:59:88","nodeType":"YulFunctionCall","src":"12377:59:88"},"nativeSrc":"12377:59:88","nodeType":"YulExpressionStatement","src":"12377:59:88"},{"nativeSrc":"12445:26:88","nodeType":"YulAssignment","src":"12445:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12457:9:88","nodeType":"YulIdentifier","src":"12457:9:88"},{"kind":"number","nativeSrc":"12468:2:88","nodeType":"YulLiteral","src":"12468:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12453:3:88","nodeType":"YulIdentifier","src":"12453:3:88"},"nativeSrc":"12453:18:88","nodeType":"YulFunctionCall","src":"12453:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12445:4:88","nodeType":"YulIdentifier","src":"12445:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12124:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12275:9:88","nodeType":"YulTypedName","src":"12275:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12289:4:88","nodeType":"YulTypedName","src":"12289:4:88","type":""}],"src":"12124:353:88"},{"body":{"nativeSrc":"12603:297:88","nodeType":"YulBlock","src":"12603:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12620:9:88","nodeType":"YulIdentifier","src":"12620:9:88"},{"kind":"number","nativeSrc":"12631:2:88","nodeType":"YulLiteral","src":"12631:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12613:6:88","nodeType":"YulIdentifier","src":"12613:6:88"},"nativeSrc":"12613:21:88","nodeType":"YulFunctionCall","src":"12613:21:88"},"nativeSrc":"12613:21:88","nodeType":"YulExpressionStatement","src":"12613:21:88"},{"nativeSrc":"12643:27:88","nodeType":"YulVariableDeclaration","src":"12643:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"12663:6:88","nodeType":"YulIdentifier","src":"12663:6:88"}],"functionName":{"name":"mload","nativeSrc":"12657:5:88","nodeType":"YulIdentifier","src":"12657:5:88"},"nativeSrc":"12657:13:88","nodeType":"YulFunctionCall","src":"12657:13:88"},"variables":[{"name":"length","nativeSrc":"12647:6:88","nodeType":"YulTypedName","src":"12647:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12690:9:88","nodeType":"YulIdentifier","src":"12690:9:88"},{"kind":"number","nativeSrc":"12701:2:88","nodeType":"YulLiteral","src":"12701:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12686:3:88","nodeType":"YulIdentifier","src":"12686:3:88"},"nativeSrc":"12686:18:88","nodeType":"YulFunctionCall","src":"12686:18:88"},{"name":"length","nativeSrc":"12706:6:88","nodeType":"YulIdentifier","src":"12706:6:88"}],"functionName":{"name":"mstore","nativeSrc":"12679:6:88","nodeType":"YulIdentifier","src":"12679:6:88"},"nativeSrc":"12679:34:88","nodeType":"YulFunctionCall","src":"12679:34:88"},"nativeSrc":"12679:34:88","nodeType":"YulExpressionStatement","src":"12679:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12732:9:88","nodeType":"YulIdentifier","src":"12732:9:88"},{"kind":"number","nativeSrc":"12743:2:88","nodeType":"YulLiteral","src":"12743:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12728:3:88","nodeType":"YulIdentifier","src":"12728:3:88"},"nativeSrc":"12728:18:88","nodeType":"YulFunctionCall","src":"12728:18:88"},{"arguments":[{"name":"value0","nativeSrc":"12752:6:88","nodeType":"YulIdentifier","src":"12752:6:88"},{"kind":"number","nativeSrc":"12760:2:88","nodeType":"YulLiteral","src":"12760:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12748:3:88","nodeType":"YulIdentifier","src":"12748:3:88"},"nativeSrc":"12748:15:88","nodeType":"YulFunctionCall","src":"12748:15:88"},{"name":"length","nativeSrc":"12765:6:88","nodeType":"YulIdentifier","src":"12765:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"12722:5:88","nodeType":"YulIdentifier","src":"12722:5:88"},"nativeSrc":"12722:50:88","nodeType":"YulFunctionCall","src":"12722:50:88"},"nativeSrc":"12722:50:88","nodeType":"YulExpressionStatement","src":"12722:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12796:9:88","nodeType":"YulIdentifier","src":"12796:9:88"},{"name":"length","nativeSrc":"12807:6:88","nodeType":"YulIdentifier","src":"12807:6:88"}],"functionName":{"name":"add","nativeSrc":"12792:3:88","nodeType":"YulIdentifier","src":"12792:3:88"},"nativeSrc":"12792:22:88","nodeType":"YulFunctionCall","src":"12792:22:88"},{"kind":"number","nativeSrc":"12816:2:88","nodeType":"YulLiteral","src":"12816:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12788:3:88","nodeType":"YulIdentifier","src":"12788:3:88"},"nativeSrc":"12788:31:88","nodeType":"YulFunctionCall","src":"12788:31:88"},{"kind":"number","nativeSrc":"12821:1:88","nodeType":"YulLiteral","src":"12821:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12781:6:88","nodeType":"YulIdentifier","src":"12781:6:88"},"nativeSrc":"12781:42:88","nodeType":"YulFunctionCall","src":"12781:42:88"},"nativeSrc":"12781:42:88","nodeType":"YulExpressionStatement","src":"12781:42:88"},{"nativeSrc":"12832:62:88","nodeType":"YulAssignment","src":"12832:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12848:9:88","nodeType":"YulIdentifier","src":"12848:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12867:6:88","nodeType":"YulIdentifier","src":"12867:6:88"},{"kind":"number","nativeSrc":"12875:2:88","nodeType":"YulLiteral","src":"12875:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12863:3:88","nodeType":"YulIdentifier","src":"12863:3:88"},"nativeSrc":"12863:15:88","nodeType":"YulFunctionCall","src":"12863:15:88"},{"arguments":[{"kind":"number","nativeSrc":"12884:2:88","nodeType":"YulLiteral","src":"12884:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12880:3:88","nodeType":"YulIdentifier","src":"12880:3:88"},"nativeSrc":"12880:7:88","nodeType":"YulFunctionCall","src":"12880:7:88"}],"functionName":{"name":"and","nativeSrc":"12859:3:88","nodeType":"YulIdentifier","src":"12859:3:88"},"nativeSrc":"12859:29:88","nodeType":"YulFunctionCall","src":"12859:29:88"}],"functionName":{"name":"add","nativeSrc":"12844:3:88","nodeType":"YulIdentifier","src":"12844:3:88"},"nativeSrc":"12844:45:88","nodeType":"YulFunctionCall","src":"12844:45:88"},{"kind":"number","nativeSrc":"12891:2:88","nodeType":"YulLiteral","src":"12891:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12840:3:88","nodeType":"YulIdentifier","src":"12840:3:88"},"nativeSrc":"12840:54:88","nodeType":"YulFunctionCall","src":"12840:54:88"},"variableNames":[{"name":"tail","nativeSrc":"12832:4:88","nodeType":"YulIdentifier","src":"12832:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12482:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12572:9:88","nodeType":"YulTypedName","src":"12572:9:88","type":""},{"name":"value0","nativeSrc":"12583:6:88","nodeType":"YulTypedName","src":"12583:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12594:4:88","nodeType":"YulTypedName","src":"12594:4:88","type":""}],"src":"12482:418:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value1 := memPtr\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 96))\n        value3 := value_3\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_encode_tuple_t_contract$_IEToken_$23549_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":798},{"length":32,"start":871},{"length":32,"start":1354},{"length":32,"start":1418},{"length":32,"start":1559}],"17733":[{"length":32,"start":409},{"length":32,"start":1086},{"length":32,"start":2061},{"length":32,"start":2472},{"length":32,"start":2861},{"length":32,"start":3113},{"length":32,"start":3931}]},"linkReferences":{},"object":"6080604052600436106100e4575f3560e01c80635c975abb116100875780639051c763116100575780639051c76314610264578063aad4148c14610283578063b9a45aac146102b6578063e5a6b10f146102d5575f5ffd5b80635c975abb146102065780635fcdca371461021d5780638129fc1c1461023c5780638456cb5914610250575f5ffd5b80633f4ba83a116100c25780633f4ba83a146101775780634d15eb031461018b5780634f1ef286146101d157806352d1902d146101e4575f5ffd5b806301ffc9a7146100e85780633659cfe61461011c57806337ee20dd1461013d575b5f5ffd5b3480156100f3575f5ffd5b50610107610102366004611360565b6102e9565b60405190151581526020015b60405180910390f35b348015610127575f5ffd5b5061013b61013636600461139b565b610314565b005b348015610148575f5ffd5b506101076101573660046113b6565b506001600160a01b03165f90815260fb602052604090205460ff16919050565b348015610182575f5ffd5b5061013b6103fa565b348015610196575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610113565b61013b6101df366004611408565b610540565b3480156101ef575f5ffd5b506101f861060b565b604051908152602001610113565b348015610211575f5ffd5b5060975460ff16610107565b348015610228575f5ffd5b506101076102373660046114ce565b6106bc565b348015610247575f5ffd5b5061013b6106e0565b34801561025b575f5ffd5b5061013b6107ea565b34801561026f575f5ffd5b5061010761027e3660046113b6565b61090e565b34801561028e575f5ffd5b506101f87fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b3480156102c1575f5ffd5b5061013b6102d0366004611529565b610985565b3480156102e0575f5ffd5b506101b9610b2a565b5f6102f382610bb0565b8061030e57506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103655760405162461bcd60e51b815260040161035c90611560565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103ad5f5160206116dc5f395f51905f52546001600160a01b031690565b6001600160a01b0316146103d35760405162461bcd60e51b815260040161035c906115ac565b6103dc81610be5565b604080515f808252602082019092526103f791839190610d28565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610498573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104bc91906115f8565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b15801561051e575f5ffd5b505afa158015610530573d5f5f3e3d5ffd5b5050505061053c610e92565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105885760405162461bcd60e51b815260040161035c90611560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105d05f5160206116dc5f395f51905f52546001600160a01b031690565b6001600160a01b0316146105f65760405162461bcd60e51b815260040161035c906115ac565b6105ff82610be5565b61053c82826001610d28565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106aa5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161035c565b505f5160206116dc5f395f51905f5290565b6001600160a01b0382165f90815260fb602052604090205460ff165b949350505050565b5f54610100900460ff16158080156106fe57505f54600160ff909116105b806107175750303b15801561071757505f5460ff166001145b61077a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035c565b5f805460ff19166001179055801561079b575f805461ff0019166101001790555b6107a3610ee4565b80156103f7575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610867573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088b91906115f8565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b03938416600482015260248101929092529091166044820152600160648201526084015f6040518083038186803b1580156108f0575f5ffd5b505afa158015610902573d5f5f3e3d5ffd5b505050506103f7610f1c565b6040516337ee20dd60e01b81526001600160a01b03808516600483015283166024820152604481018290525f9030906337ee20dd90606401602060405180830381865afa158015610961573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190611613565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2691906115f8565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201525f60648201526084015f6040518083038186803b158015610a8a575f5ffd5b505afa158015610a9c573d5f5f3e3d5ffd5b5050506001600160a01b0384165f90815260fb602052604090205460ff161515831515149050610b25576001600160a01b0383165f81815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906115f8565b905090565b5f6001600160e01b031982166301ffc9a760e01b148061030e57506001600160e01b03198216634d15eb0360e01b1492915050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c83573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca791906115f8565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a4808201925f92909190829003018186803b158015610d09575f5ffd5b505afa158015610d1b573d5f5f3e3d5ffd5b50505050610b2583610f59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d5b57610b258361100a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610db5575060408051601f3d908101601f19168201909252610db29181019061162e565b60015b610e185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161035c565b5f5160206116dc5f395f51905f528114610e865760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161035c565b50610b258383836110a5565b610e9a6110cf565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff16610f0a5760405162461bcd60e51b815260040161035c90611645565b610f12611118565b610f1a61113e565b565b610f2461116c565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ec73390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe391906115f8565b6001600160a01b0316146103f75760405163d2b3d33f60e01b815260040160405180910390fd5b6001600160a01b0381163b6110775760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161035c565b5f5160206116dc5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b6110ae836111b2565b5f825111806110ba5750805b15610b25576110c983836111f1565b50505050565b60975460ff16610f1a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161035c565b5f54610100900460ff16610f1a5760405162461bcd60e51b815260040161035c90611645565b5f54610100900460ff166111645760405162461bcd60e51b815260040161035c90611645565b610f1a61121d565b60975460ff1615610f1a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161035c565b6111bb8161100a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061121683836040518060600160405280602781526020016116fc6027913961124f565b9392505050565b5f54610100900460ff166112435760405162461bcd60e51b815260040161035c90611645565b6097805460ff19169055565b60605f5f856001600160a01b03168560405161126b9190611690565b5f60405180830381855af49150503d805f81146112a3576040519150601f19603f3d011682016040523d82523d5f602084013e6112a8565b606091505b50915091506112b9868383876112c3565b9695505050505050565b606083156113315782515f0361132a576001600160a01b0385163b61132a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161035c565b50816106d8565b6106d883838151156113465781518083602001fd5b8060405162461bcd60e51b815260040161035c91906116a6565b5f60208284031215611370575f5ffd5b81356001600160e01b031981168114611216575f5ffd5b6001600160a01b03811681146103f7575f5ffd5b5f602082840312156113ab575f5ffd5b813561121681611387565b5f5f5f606084860312156113c8575f5ffd5b83356113d381611387565b925060208401356113e381611387565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215611419575f5ffd5b823561142481611387565b9150602083013567ffffffffffffffff81111561143f575f5ffd5b8301601f8101851361144f575f5ffd5b803567ffffffffffffffff811115611469576114696113f4565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611498576114986113f4565b6040528181528282016020018710156114af575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f5f608085870312156114e1575f5ffd5b84356114ec81611387565b935060208501356114fc81611387565b9250604085013561150c81611387565b9396929550929360600135925050565b80151581146103f7575f5ffd5b5f5f6040838503121561153a575f5ffd5b823561154581611387565b915060208301356115558161151c565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215611608575f5ffd5b815161121681611387565b5f60208284031215611623575f5ffd5b81516112168161151c565b5f6020828403121561163e575f5ffd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122029a9df32817177485ac459624f0e4c9f97feff2d691f424dab2ed12748cebb9164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE4 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C975ABB GT PUSH2 0x87 JUMPI DUP1 PUSH4 0x9051C763 GT PUSH2 0x57 JUMPI DUP1 PUSH4 0x9051C763 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xAAD4148C EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0xB9A45AAC EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x2D5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x5FCDCA37 EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x250 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xC2 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x1E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0x37EE20DD EQ PUSH2 0x13D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x102 CALLDATASIZE PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x127 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0x139B JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x13B6 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x182 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x3FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1408 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x211 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x107 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x237 CALLDATASIZE PUSH1 0x4 PUSH2 0x14CE JUMP JUMPDEST PUSH2 0x6BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x247 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x6E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x7EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x107 PUSH2 0x27E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B6 JUMP JUMPDEST PUSH2 0x90E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F8 PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1529 JUMP JUMPDEST PUSH2 0x985 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0xB2A JUMP JUMPDEST PUSH0 PUSH2 0x2F3 DUP3 PUSH2 0xBB0 JUMP JUMPDEST DUP1 PUSH2 0x30E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xF8722D89 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x365 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3AD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x3DC DUP2 PUSH2 0xBE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3F7 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x498 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x530 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x53C PUSH2 0xE92 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1560 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x5D0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x5FF DUP3 PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x53C DUP3 DUP3 PUSH1 0x1 PUSH2 0xD28 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x6AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FE JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x717 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x7A3 PUSH2 0xEE4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x867 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88B SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0xE0 DUP6 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x902 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x3F7 PUSH2 0xF1C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x37EE20DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH0 SWAP1 ADDRESS SWAP1 PUSH4 0x37EE20DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x961 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6D8 SWAP2 SWAP1 PUSH2 0x1613 JUMP JUMPDEST PUSH32 0xB494869573B0A0CE9CAAC5394E1D0D255D146EC7E2D30D643A4E1D78980F3235 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA02 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA26 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x40 MLOAD PUSH1 0xE0 DUP6 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH0 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP4 ISZERO ISZERO EQ SWAP1 POP PUSH2 0xB25 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE SWAP1 DUP4 ADD MSTORE PUSH32 0x8EF34CF5CFAA6CE2F80F1BA2912749C912A8B07C4FB8E9949E928E7CB592918F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x30E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0xBF372CA3EBECFE59AC256F17697941BBE63302ACED610E8B0E3646F743C7BEB2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC83 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA7 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0x2B1CFF1F PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE CALLER PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x84 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x2B1CFF1F SWAP2 PUSH1 0xA4 DUP1 DUP3 ADD SWAP3 PUSH0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD09 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD1B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB25 DUP4 PUSH2 0xF59 JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD5B JUMPI PUSH2 0xB25 DUP4 PUSH2 0x100A JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xDB5 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xDB2 SWAP2 DUP2 ADD SWAP1 PUSH2 0x162E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xE18 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0xE86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST POP PUSH2 0xB25 DUP4 DUP4 DUP4 PUSH2 0x10A5 JUMP JUMPDEST PUSH2 0xE9A PUSH2 0x10CF JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0xF12 PUSH2 0x1118 JUMP JUMPDEST PUSH2 0xF1A PUSH2 0x113E JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF24 PUSH2 0x116C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xEC7 CALLER SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFBF JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFE3 SWAP2 SWAP1 PUSH2 0x15F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1077 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x16DC PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x10AE DUP4 PUSH2 0x11B2 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x10BA JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xB25 JUMPI PUSH2 0x10C9 DUP4 DUP4 PUSH2 0x11F1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1164 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0xF1A PUSH2 0x121D JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST PUSH2 0x11BB DUP2 PUSH2 0x100A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1216 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16FC PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x124F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1243 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x126B SWAP2 SWAP1 PUSH2 0x1690 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x12A3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x12A8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x12B9 DUP7 DUP4 DUP4 DUP8 PUSH2 0x12C3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1331 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x132A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x132A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35C JUMP JUMPDEST POP DUP2 PUSH2 0x6D8 JUMP JUMPDEST PUSH2 0x6D8 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x1346 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0x16A6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1370 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1216 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13AB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1216 DUP2 PUSH2 0x1387 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13C8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x13D3 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x13E3 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1419 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1424 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x143F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x144F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1469 JUMPI PUSH2 0x1469 PUSH2 0x13F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1498 JUMPI PUSH2 0x1498 PUSH2 0x13F4 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP3 DUP3 ADD PUSH1 0x20 ADD DUP8 LT ISZERO PUSH2 0x14AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x14E1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x14EC DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x14FC DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x150C DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x153A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1545 DUP2 PUSH2 0x1387 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1555 DUP2 PUSH2 0x151C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1608 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1216 DUP2 PUSH2 0x1387 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1623 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1216 DUP2 PUSH2 0x151C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x163E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x6564A264697066735822122029 0xA9 0xDF ORIGIN DUP2 PUSH18 0x77485AC459624F0E4C9F97FEFF2D691F424D 0xAB 0x2E 0xD1 0x27 BASEFEE 0xCE 0xBB SWAP2 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"549:317:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:194:77;;;;;;;;;;-1:-1:-1;1432:194:77;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;1432:194:77;;;;;;;;3408:195:7;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;1630:138:77;;;;;;;;;;-1:-1:-1;1630:138:77;;;;;:::i;:::-;-1:-1:-1;;;;;;1741:22:77;1722:4;1741:22;;;:12;:22;;;;;;;;;1630:138;-1:-1:-1;1630:138:77;3916:102:57;;;;;;;;;;;;;:::i;4022:94::-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;1600:32:88;;;1582:51;;1570:2;1555:18;4022:94:57;1415:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;:::-;;;3006:25:88;;;2994:2;2979:18;3027:131:7;2860:177:88;1879:84:8;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;1772:152:77;;;;;;;;;;-1:-1:-1;1772:152:77;;;;;:::i;:::-;;:::i;1028:80::-;;;;;;;;;;;;;:::i;3828:84:57:-;;;;;;;;;;;;;:::i;692:172:78:-;;;;;;;;;;-1:-1:-1;692:172:78;;;;;:::i;:::-;;:::i;608:74:77:-;;;;;;;;;;;;652:30;608:74;;1112:261;;;;;;;;;;-1:-1:-1;1112:261:77;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;1432:194:77:-;1517:4;1536:36;1560:11;1536:23;:36::i;:::-;:85;;;-1:-1:-1;;;;;;;1576:45:77;;-1:-1:-1;;;1576:45:77;1536:85;1529:92;1432:194;-1:-1:-1;;1432:194:77:o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;1664:26;1734:24;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;;;-1:-1:-1;;;2697:89:57;;2746:4;2697:89;;;5814:51:88;5881:18;;;5874:34;;;5924:18;;;5917:34;;;965:10:14;5967:18:88;;;5960:60;2781:4:57;6036:19:88;;;6029:51;2697:89:57;;-1:-1:-1;;;;;2697:40:57;;;;;;;5786:19:88;;;;;-1:-1:-1;;2697:89:57;;;;;;;;:40;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;6293:2:88;2174:92:7;;;6275:21:88;6332:2;6312:18;;;6305:30;6371:34;6351:18;;;6344:62;6442:26;6422:18;;;6415:54;6486:19;;2174:92:7;6091:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;1772:152:77:-;-1:-1:-1;;;;;1895:24:77;;1876:4;1895:24;;;:12;:24;;;;;;;;1772:152;;;;;;;:::o;1028:80::-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;6718:2:88;3325:201:6;;;6700:21:88;6757:2;6737:18;;;6730:30;6796:34;6776:18;;;6769:62;-1:-1:-1;;;6847:18:88;;;6840:44;6901:19;;3325:201:6;6516:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;1075:28:77::1;:26;:28::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;7083:36:88;;3721:14:6;;7071:2:88;7056:18;3721:14:6;;;;;;;3269:483;1028:80:77:o;3828:84:57:-;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2529:80:57;;;;;;-1:-1:-1;;;;;;2529:80:57;;;-1:-1:-1;;;;;7373:32:88;;;2529:80:57;;;7355:51:88;7422:18;;;7415:34;;;;7485:32;;;7465:18;;;7458:60;2604:4:57;7534:18:88;;;7527:50;7327:19;;2529:80:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;692:172:78:-:0;817:42;;-1:-1:-1;;;817:42:78;;-1:-1:-1;;;;;7825:32:88;;;817:42:78;;;7807:51:88;7894:32;;7874:18;;;7867:60;7943:18;;;7936:34;;;798:4:78;;817;;:19;;7780:18:88;;817:42:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1112:261:77:-;652:30;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2377:81:57;;;;;;-1:-1:-1;;;;;;2377:81:57;;;-1:-1:-1;;;;;7373:32:88;;;2377:81:57;;;7355:51:88;7422:18;;;7415:34;;;;7485:32;;;7465:18;;;7458:60;-1:-1:-1;7534:18:88;;;7527:50;7327:19;;2377:81:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1230:22:77;::::1;;::::0;;;:12:::1;:22;::::0;;;;;::::1;;:37;;::::0;::::1;;;::::0;-1:-1:-1;1226:143:77::1;;-1:-1:-1::0;;;;;1277:22:77;::::1;;::::0;;;:12:::1;:22;::::0;;;;;;;;:36;;-1:-1:-1;;1277:36:77::1;::::0;::::1;;::::0;;::::1;::::0;;;1326;;8399:51:88;;;8466:18;;;8459:50;1326:36:77::1;::::0;8372:18:88;1326:36:77::1;;;;;;;1226:143;1112:261:::0;;;:::o;4120:97:57:-;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4183:29;;4120:97;:::o;3618:206::-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;3206:169::-;1664:26;1734:24;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;;;-1:-1:-1;;;2697:89:57;;2746:4;2697:89;;;5814:51:88;5881:18;;;5874:34;;;5924:18;;;5917:34;;;965:10:14;5967:18:88;;;5960:60;2781:4:57;6036:19:88;;;6029:51;2697:89:57;;-1:-1:-1;;;;;2697:40:57;;;;;;;5786:19:88;;;;;-1:-1:-1;;2697:89:57;;;;;;;;:40;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;2841:944:4:-:0;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;9190:2:88;3631:56:4;;;9172:21:88;9229:2;9209:18;;;9202:30;9268:34;9248:18;;;9241:62;-1:-1:-1;;;9319:18:88;;;9312:44;9373:19;;3631:56:4;8988:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;9605:2:88;3509:82:4;;;9587:21:88;9644:2;9624:18;;;9617:30;9683:34;9663:18;;;9656:62;-1:-1:-1;;;9734:18:88;;;9727:39;9783:19;;3509:82:4;9403:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;1600:32:88;;;1582:51;;1570:2;1555:18;2785:22:8::1;;;;;;;2697:117::o:0;3080:122:57:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;:::-;3080:122::o:0;2450:115:8:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;3379:180:57;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;10912:2:88;1793:106:4;;;10894:21:88;10951:2;10931:18;;;10924:30;10990:34;10970:18;;;10963:62;-1:-1:-1;;;11041:18:88;;;11034:43;11094:19;;1793:106:4;10710:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;:::-;;2393:276;;;:::o;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;11326:2:88;2267:41:8;;;11308:21:88;11365:2;11345:18;;;11338:30;-1:-1:-1;;;11384:18:88;;;11377:50;11444:18;;2267:41:8;11124:344:88;2290:67:7;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;2031:106::-:0;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;11675:2:88;2092:38:8;;;11657:21:88;11714:2;11694:18;;;11687:30;-1:-1:-1;;;11733:18:88;;;11726:46;11789:18;;2092:38:8;11473:340:88;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7069:325:13:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;7682:628::-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;12326:2:88;8124:60:13;;;12308:21:88;12365:2;12345:18;;;12338:30;12404:31;12384:18;;;12377:59;12453:18;;8124:60:13;12124:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:131;-1:-1:-1;;;;;572:31:88;;562:42;;552:70;;618:1;615;608:12;633:247;692:6;745:2;733:9;724:7;720:23;716:32;713:52;;;761:1;758;751:12;713:52;800:9;787:23;819:31;844:5;819:31;:::i;885:525::-;979:6;987;995;1048:2;1036:9;1027:7;1023:23;1019:32;1016:52;;;1064:1;1061;1054:12;1016:52;1103:9;1090:23;1122:31;1147:5;1122:31;:::i;:::-;1172:5;-1:-1:-1;1229:2:88;1214:18;;1201:32;1242:33;1201:32;1242:33;:::i;:::-;885:525;;1294:7;;-1:-1:-1;;;1374:2:88;1359:18;;;;1346:32;;885:525::o;1644:127::-;1705:10;1700:3;1696:20;1693:1;1686:31;1736:4;1733:1;1726:15;1760:4;1757:1;1750:15;1776:1079;1853:6;1861;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;1969:9;1956:23;1988:31;2013:5;1988:31;:::i;:::-;2038:5;-1:-1:-1;2094:2:88;2079:18;;2066:32;2121:18;2110:30;;2107:50;;;2153:1;2150;2143:12;2107:50;2176:22;;2229:4;2221:13;;2217:27;-1:-1:-1;2207:55:88;;2258:1;2255;2248:12;2207:55;2298:2;2285:16;2324:18;2316:6;2313:30;2310:56;;;2346:18;;:::i;:::-;2395:2;2389:9;2487:2;2449:17;;-1:-1:-1;;2445:31:88;;;2478:2;2441:40;2437:54;2425:67;;2522:18;2507:34;;2543:22;;;2504:62;2501:88;;;2569:18;;:::i;:::-;2605:2;2598:22;2629;;;2670:15;;;2687:2;2666:24;2663:37;-1:-1:-1;2660:57:88;;;2713:1;2710;2703:12;2660:57;2769:6;2764:2;2760;2756:11;2751:2;2743:6;2739:15;2726:50;2822:1;2817:2;2808:6;2800;2796:19;2792:28;2785:39;2843:6;2833:16;;;;;1776:1079;;;;;:::o;3042:667::-;3145:6;3153;3161;3169;3222:3;3210:9;3201:7;3197:23;3193:33;3190:53;;;3239:1;3236;3229:12;3190:53;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:88;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3469:7;-1:-1:-1;3528:2:88;3513:18;;3500:32;3541:33;3500:32;3541:33;:::i;:::-;3042:667;;;;-1:-1:-1;3593:7:88;;3673:2;3658:18;3645:32;;-1:-1:-1;;3042:667:88:o;3714:118::-;3800:5;3793:13;3786:21;3779:5;3776:32;3766:60;;3822:1;3819;3812:12;3837:382;3902:6;3910;3963:2;3951:9;3942:7;3938:23;3934:32;3931:52;;;3979:1;3976;3969:12;3931:52;4018:9;4005:23;4037:31;4062:5;4037:31;:::i;:::-;4087:5;-1:-1:-1;4144:2:88;4129:18;;4116:32;4157:30;4116:32;4157:30;:::i;:::-;4206:7;4196:17;;;3837:382;;;;;:::o;4455:408::-;4657:2;4639:21;;;4696:2;4676:18;;;4669:30;4735:34;4730:2;4715:18;;4708:62;-1:-1:-1;;;4801:2:88;4786:18;;4779:42;4853:3;4838:19;;4455:408::o;4868:::-;5070:2;5052:21;;;5109:2;5089:18;;;5082:30;5148:34;5143:2;5128:18;;5121:62;-1:-1:-1;;;5214:2:88;5199:18;;5192:42;5266:3;5251:19;;4868:408::o;5281:275::-;5375:6;5428:2;5416:9;5407:7;5403:23;5399:32;5396:52;;;5444:1;5441;5434:12;5396:52;5476:9;5470:16;5495:31;5520:5;5495:31;:::i;7981:245::-;8048:6;8101:2;8089:9;8080:7;8076:23;8072:32;8069:52;;;8117:1;8114;8107:12;8069:52;8149:9;8143:16;8168:28;8190:5;8168:28;:::i;8799:184::-;8869:6;8922:2;8910:9;8901:7;8897:23;8893:32;8890:52;;;8938:1;8935;8928:12;8890:52;-1:-1:-1;8961:16:88;;8799:184;-1:-1:-1;8799:184:88:o;10021:407::-;10223:2;10205:21;;;10262:2;10242:18;;;10235:30;10301:34;10296:2;10281:18;;10274:62;-1:-1:-1;;;10367:2:88;10352:18;;10345:41;10418:3;10403:19;;10021:407::o;11818:301::-;11947:3;11985:6;11979:13;12031:6;12024:4;12016:6;12012:17;12007:3;12001:37;12093:1;12057:16;;12082:13;;;-1:-1:-1;12057:16:88;11818:301;-1:-1:-1;11818:301:88:o;12482:418::-;12631:2;12620:9;12613:21;12594:4;12663:6;12657:13;12706:6;12701:2;12690:9;12686:18;12679:34;12765:6;12760:2;12752:6;12748:15;12743:2;12732:9;12728:18;12722:50;12821:1;12816:2;12807:6;12796:9;12792:22;12788:31;12781:42;12891:2;12884;12880:7;12875:2;12867:6;12863:15;12859:29;12848:9;12844:45;12840:54;12832:62;;;12482:418;;;;:::o"},"methodIdentifiers":{"LP_WHITELIST_ROLE()":"aad4148c","acceptsDeposit(address,address,uint256)":"37ee20dd","acceptsTransfer(address,address,address,uint256)":"5fcdca37","acceptsWithdrawal(address,address,uint256)":"9051c763","currency()":"e5a6b10f","initialize()":"8129fc1c","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","proxiableUUID()":"52d1902d","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","whitelistAddress(address,bool)":"b9a45aac"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"LPWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LP_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"acceptsTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"etk\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptsWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"whitelistAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Contract with the same storage as the LPManualWhitelist 2.0 but that complies with the new interface      useful for update in place of the current whitelist\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"initialize()\":{\"details\":\"Initializes the Whitelist contract\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"Manual Whitelisting contract - Migration from 2.0 to 2.1\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/migration/LPManualWhitelistV20Upgraded.sol\":\"LPManualWhitelistV20Upgraded\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/migration/LPManualWhitelistV20.sol\":{\"keccak256\":\"0x28d15e08f7734a74525832b806c37b59c63d0e55e221d759cdfd56f406edbc6f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://46f524d9879cc7ceed78056ca4139ca40d51bc5223a0c05afe4b4332a37500fc\",\"dweb:/ipfs/QmPfVquhufA6ZEPy5zjaZSzTTwQXrfdNCxz8VXQLRGTgU9\"]},\"contracts/migration/LPManualWhitelistV20Upgraded.sol\":{\"keccak256\":\"0x7cb1076c8972e0ed009f93c6b6c743ca5204a1d8a29794fd210e90f13ee5da0e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3eaa7f67b682abca7a9729ae425172d896513e2b7dea69467a25ba2195b809f3\",\"dweb:/ipfs/QmfPVijDaRMtgwxoE1RTLDfTi7a9gwo8bj35PtLs8G8LnH\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":24007,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"_whitelisted","offset":0,"slot":"251","type":"t_mapping(t_address,t_bool)"},{"astId":24128,"contract":"contracts/migration/LPManualWhitelistV20Upgraded.sol:LPManualWhitelistV20Upgraded","label":"__gap","offset":0,"slot":"252","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/mocks/FixedRateVault.sol":{"FixedRateVault":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"contract IERC20Metadata","name":"asset_","type":"address"},{"internalType":"uint256","name":"interestRate_","type":"uint256"}],"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":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"broken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","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":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"assets","type":"int256"}],"name":"discreteEarning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"broken_","type":"bool"}],"name":"setBroken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_24226":{"entryPoint":null,"id":24226,"parameterSlots":4,"returnSlots":0},"@_4794":{"entryPoint":null,"id":4794,"parameterSlots":2,"returnSlots":0},"@_5460":{"entryPoint":null,"id":5460,"parameterSlots":1,"returnSlots":0},"@_tryGetAssetDecimals_5527":{"entryPoint":173,"id":5527,"parameterSlots":1,"returnSlots":2},"@init_22635":{"entryPoint":null,"id":22635,"parameterSlots":1,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_contract$_IERC20Metadata_$6066t_uint256_fromMemory":{"entryPoint":544,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1023,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1001,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":739,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":815,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":683,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":387,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4787:88","nodeType":"YulBlock","src":"0:4787:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"46:95:88","nodeType":"YulBlock","src":"46:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:88","nodeType":"YulLiteral","src":"63:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:88","nodeType":"YulLiteral","src":"70:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:88","nodeType":"YulLiteral","src":"75:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:88","nodeType":"YulIdentifier","src":"66:3:88"},"nativeSrc":"66:20:88","nodeType":"YulFunctionCall","src":"66:20:88"}],"functionName":{"name":"mstore","nativeSrc":"56:6:88","nodeType":"YulIdentifier","src":"56:6:88"},"nativeSrc":"56:31:88","nodeType":"YulFunctionCall","src":"56:31:88"},"nativeSrc":"56:31:88","nodeType":"YulExpressionStatement","src":"56:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:88","nodeType":"YulLiteral","src":"103:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:88","nodeType":"YulLiteral","src":"106:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:88","nodeType":"YulIdentifier","src":"96:6:88"},"nativeSrc":"96:15:88","nodeType":"YulFunctionCall","src":"96:15:88"},"nativeSrc":"96:15:88","nodeType":"YulExpressionStatement","src":"96:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:88","nodeType":"YulLiteral","src":"127:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:88","nodeType":"YulLiteral","src":"130:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:88","nodeType":"YulIdentifier","src":"120:6:88"},"nativeSrc":"120:15:88","nodeType":"YulFunctionCall","src":"120:15:88"},"nativeSrc":"120:15:88","nodeType":"YulExpressionStatement","src":"120:15:88"}]},"name":"panic_error_0x41","nativeSrc":"14:127:88","nodeType":"YulFunctionDefinition","src":"14:127:88"},{"body":{"nativeSrc":"210:659:88","nodeType":"YulBlock","src":"210:659:88","statements":[{"body":{"nativeSrc":"259:16:88","nodeType":"YulBlock","src":"259:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:88","nodeType":"YulLiteral","src":"268:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:88","nodeType":"YulLiteral","src":"271:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:88","nodeType":"YulIdentifier","src":"261:6:88"},"nativeSrc":"261:12:88","nodeType":"YulFunctionCall","src":"261:12:88"},"nativeSrc":"261:12:88","nodeType":"YulExpressionStatement","src":"261:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:88","nodeType":"YulIdentifier","src":"238:6:88"},{"kind":"number","nativeSrc":"246:4:88","nodeType":"YulLiteral","src":"246:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:88","nodeType":"YulIdentifier","src":"234:3:88"},"nativeSrc":"234:17:88","nodeType":"YulFunctionCall","src":"234:17:88"},{"name":"end","nativeSrc":"253:3:88","nodeType":"YulIdentifier","src":"253:3:88"}],"functionName":{"name":"slt","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:27:88","nodeType":"YulFunctionCall","src":"230:27:88"}],"functionName":{"name":"iszero","nativeSrc":"223:6:88","nodeType":"YulIdentifier","src":"223:6:88"},"nativeSrc":"223:35:88","nodeType":"YulFunctionCall","src":"223:35:88"},"nativeSrc":"220:55:88","nodeType":"YulIf","src":"220:55:88"},{"nativeSrc":"284:27:88","nodeType":"YulVariableDeclaration","src":"284:27:88","value":{"arguments":[{"name":"offset","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}],"functionName":{"name":"mload","nativeSrc":"298:5:88","nodeType":"YulIdentifier","src":"298:5:88"},"nativeSrc":"298:13:88","nodeType":"YulFunctionCall","src":"298:13:88"},"variables":[{"name":"length","nativeSrc":"288:6:88","nodeType":"YulTypedName","src":"288:6:88","type":""}]},{"body":{"nativeSrc":"354:22:88","nodeType":"YulBlock","src":"354:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"356:16:88","nodeType":"YulIdentifier","src":"356:16:88"},"nativeSrc":"356:18:88","nodeType":"YulFunctionCall","src":"356:18:88"},"nativeSrc":"356:18:88","nodeType":"YulExpressionStatement","src":"356:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"326:6:88","nodeType":"YulIdentifier","src":"326:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:2:88","nodeType":"YulLiteral","src":"342:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"346:1:88","nodeType":"YulLiteral","src":"346:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:88","nodeType":"YulIdentifier","src":"338:3:88"},"nativeSrc":"338:10:88","nodeType":"YulFunctionCall","src":"338:10:88"},{"kind":"number","nativeSrc":"350:1:88","nodeType":"YulLiteral","src":"350:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:88","nodeType":"YulIdentifier","src":"334:3:88"},"nativeSrc":"334:18:88","nodeType":"YulFunctionCall","src":"334:18:88"}],"functionName":{"name":"gt","nativeSrc":"323:2:88","nodeType":"YulIdentifier","src":"323:2:88"},"nativeSrc":"323:30:88","nodeType":"YulFunctionCall","src":"323:30:88"},"nativeSrc":"320:56:88","nodeType":"YulIf","src":"320:56:88"},{"nativeSrc":"385:23:88","nodeType":"YulVariableDeclaration","src":"385:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"405:2:88","nodeType":"YulLiteral","src":"405:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"399:5:88","nodeType":"YulIdentifier","src":"399:5:88"},"nativeSrc":"399:9:88","nodeType":"YulFunctionCall","src":"399:9:88"},"variables":[{"name":"memPtr","nativeSrc":"389:6:88","nodeType":"YulTypedName","src":"389:6:88","type":""}]},{"nativeSrc":"417:85:88","nodeType":"YulVariableDeclaration","src":"417:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"439:6:88","nodeType":"YulIdentifier","src":"439:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},{"kind":"number","nativeSrc":"471:4:88","nodeType":"YulLiteral","src":"471:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"459:3:88","nodeType":"YulIdentifier","src":"459:3:88"},"nativeSrc":"459:17:88","nodeType":"YulFunctionCall","src":"459:17:88"},{"arguments":[{"kind":"number","nativeSrc":"482:2:88","nodeType":"YulLiteral","src":"482:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"478:3:88","nodeType":"YulIdentifier","src":"478:3:88"},"nativeSrc":"478:7:88","nodeType":"YulFunctionCall","src":"478:7:88"}],"functionName":{"name":"and","nativeSrc":"455:3:88","nodeType":"YulIdentifier","src":"455:3:88"},"nativeSrc":"455:31:88","nodeType":"YulFunctionCall","src":"455:31:88"},{"kind":"number","nativeSrc":"488:2:88","nodeType":"YulLiteral","src":"488:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"451:3:88","nodeType":"YulIdentifier","src":"451:3:88"},"nativeSrc":"451:40:88","nodeType":"YulFunctionCall","src":"451:40:88"},{"arguments":[{"kind":"number","nativeSrc":"497:2:88","nodeType":"YulLiteral","src":"497:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"493:3:88","nodeType":"YulIdentifier","src":"493:3:88"},"nativeSrc":"493:7:88","nodeType":"YulFunctionCall","src":"493:7:88"}],"functionName":{"name":"and","nativeSrc":"447:3:88","nodeType":"YulIdentifier","src":"447:3:88"},"nativeSrc":"447:54:88","nodeType":"YulFunctionCall","src":"447:54:88"}],"functionName":{"name":"add","nativeSrc":"435:3:88","nodeType":"YulIdentifier","src":"435:3:88"},"nativeSrc":"435:67:88","nodeType":"YulFunctionCall","src":"435:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"421:10:88","nodeType":"YulTypedName","src":"421:10:88","type":""}]},{"body":{"nativeSrc":"577:22:88","nodeType":"YulBlock","src":"577:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"579:16:88","nodeType":"YulIdentifier","src":"579:16:88"},"nativeSrc":"579:18:88","nodeType":"YulFunctionCall","src":"579:18:88"},"nativeSrc":"579:18:88","nodeType":"YulExpressionStatement","src":"579:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"520:10:88","nodeType":"YulIdentifier","src":"520:10:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"540:2:88","nodeType":"YulLiteral","src":"540:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"544:1:88","nodeType":"YulLiteral","src":"544:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"536:3:88","nodeType":"YulIdentifier","src":"536:3:88"},"nativeSrc":"536:10:88","nodeType":"YulFunctionCall","src":"536:10:88"},{"kind":"number","nativeSrc":"548:1:88","nodeType":"YulLiteral","src":"548:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"532:3:88","nodeType":"YulIdentifier","src":"532:3:88"},"nativeSrc":"532:18:88","nodeType":"YulFunctionCall","src":"532:18:88"}],"functionName":{"name":"gt","nativeSrc":"517:2:88","nodeType":"YulIdentifier","src":"517:2:88"},"nativeSrc":"517:34:88","nodeType":"YulFunctionCall","src":"517:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"556:10:88","nodeType":"YulIdentifier","src":"556:10:88"},{"name":"memPtr","nativeSrc":"568:6:88","nodeType":"YulIdentifier","src":"568:6:88"}],"functionName":{"name":"lt","nativeSrc":"553:2:88","nodeType":"YulIdentifier","src":"553:2:88"},"nativeSrc":"553:22:88","nodeType":"YulFunctionCall","src":"553:22:88"}],"functionName":{"name":"or","nativeSrc":"514:2:88","nodeType":"YulIdentifier","src":"514:2:88"},"nativeSrc":"514:62:88","nodeType":"YulFunctionCall","src":"514:62:88"},"nativeSrc":"511:88:88","nodeType":"YulIf","src":"511:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:2:88","nodeType":"YulLiteral","src":"615:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"619:10:88","nodeType":"YulIdentifier","src":"619:10:88"}],"functionName":{"name":"mstore","nativeSrc":"608:6:88","nodeType":"YulIdentifier","src":"608:6:88"},"nativeSrc":"608:22:88","nodeType":"YulFunctionCall","src":"608:22:88"},"nativeSrc":"608:22:88","nodeType":"YulExpressionStatement","src":"608:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"646:6:88","nodeType":"YulIdentifier","src":"646:6:88"},{"name":"length","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"}],"functionName":{"name":"mstore","nativeSrc":"639:6:88","nodeType":"YulIdentifier","src":"639:6:88"},"nativeSrc":"639:22:88","nodeType":"YulFunctionCall","src":"639:22:88"},"nativeSrc":"639:22:88","nodeType":"YulExpressionStatement","src":"639:22:88"},{"body":{"nativeSrc":"713:16:88","nodeType":"YulBlock","src":"713:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"722:1:88","nodeType":"YulLiteral","src":"722:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"725:1:88","nodeType":"YulLiteral","src":"725:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"715:6:88","nodeType":"YulIdentifier","src":"715:6:88"},"nativeSrc":"715:12:88","nodeType":"YulFunctionCall","src":"715:12:88"},"nativeSrc":"715:12:88","nodeType":"YulExpressionStatement","src":"715:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"684:6:88","nodeType":"YulIdentifier","src":"684:6:88"},{"name":"length","nativeSrc":"692:6:88","nodeType":"YulIdentifier","src":"692:6:88"}],"functionName":{"name":"add","nativeSrc":"680:3:88","nodeType":"YulIdentifier","src":"680:3:88"},"nativeSrc":"680:19:88","nodeType":"YulFunctionCall","src":"680:19:88"},{"kind":"number","nativeSrc":"701:4:88","nodeType":"YulLiteral","src":"701:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"676:3:88","nodeType":"YulIdentifier","src":"676:3:88"},"nativeSrc":"676:30:88","nodeType":"YulFunctionCall","src":"676:30:88"},{"name":"end","nativeSrc":"708:3:88","nodeType":"YulIdentifier","src":"708:3:88"}],"functionName":{"name":"gt","nativeSrc":"673:2:88","nodeType":"YulIdentifier","src":"673:2:88"},"nativeSrc":"673:39:88","nodeType":"YulFunctionCall","src":"673:39:88"},"nativeSrc":"670:59:88","nodeType":"YulIf","src":"670:59:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"748:6:88","nodeType":"YulIdentifier","src":"748:6:88"},{"kind":"number","nativeSrc":"756:4:88","nodeType":"YulLiteral","src":"756:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"744:3:88","nodeType":"YulIdentifier","src":"744:3:88"},"nativeSrc":"744:17:88","nodeType":"YulFunctionCall","src":"744:17:88"},{"arguments":[{"name":"offset","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:4:88","nodeType":"YulLiteral","src":"775:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:17:88","nodeType":"YulFunctionCall","src":"763:17:88"},{"name":"length","nativeSrc":"782:6:88","nodeType":"YulIdentifier","src":"782:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"738:5:88","nodeType":"YulIdentifier","src":"738:5:88"},"nativeSrc":"738:51:88","nodeType":"YulFunctionCall","src":"738:51:88"},"nativeSrc":"738:51:88","nodeType":"YulExpressionStatement","src":"738:51:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"813:6:88","nodeType":"YulIdentifier","src":"813:6:88"},{"name":"length","nativeSrc":"821:6:88","nodeType":"YulIdentifier","src":"821:6:88"}],"functionName":{"name":"add","nativeSrc":"809:3:88","nodeType":"YulIdentifier","src":"809:3:88"},"nativeSrc":"809:19:88","nodeType":"YulFunctionCall","src":"809:19:88"},{"kind":"number","nativeSrc":"830:4:88","nodeType":"YulLiteral","src":"830:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"805:3:88","nodeType":"YulIdentifier","src":"805:3:88"},"nativeSrc":"805:30:88","nodeType":"YulFunctionCall","src":"805:30:88"},{"kind":"number","nativeSrc":"837:1:88","nodeType":"YulLiteral","src":"837:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"798:6:88","nodeType":"YulIdentifier","src":"798:6:88"},"nativeSrc":"798:41:88","nodeType":"YulFunctionCall","src":"798:41:88"},"nativeSrc":"798:41:88","nodeType":"YulExpressionStatement","src":"798:41:88"},{"nativeSrc":"848:15:88","nodeType":"YulAssignment","src":"848:15:88","value":{"name":"memPtr","nativeSrc":"857:6:88","nodeType":"YulIdentifier","src":"857:6:88"},"variableNames":[{"name":"array","nativeSrc":"848:5:88","nodeType":"YulIdentifier","src":"848:5:88"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:723:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:88","nodeType":"YulTypedName","src":"184:6:88","type":""},{"name":"end","nativeSrc":"192:3:88","nodeType":"YulTypedName","src":"192:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:88","nodeType":"YulTypedName","src":"200:5:88","type":""}],"src":"146:723:88"},{"body":{"nativeSrc":"1049:686:88","nodeType":"YulBlock","src":"1049:686:88","statements":[{"body":{"nativeSrc":"1096:16:88","nodeType":"YulBlock","src":"1096:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1105:1:88","nodeType":"YulLiteral","src":"1105:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1108:1:88","nodeType":"YulLiteral","src":"1108:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1098:6:88","nodeType":"YulIdentifier","src":"1098:6:88"},"nativeSrc":"1098:12:88","nodeType":"YulFunctionCall","src":"1098:12:88"},"nativeSrc":"1098:12:88","nodeType":"YulExpressionStatement","src":"1098:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1070:7:88","nodeType":"YulIdentifier","src":"1070:7:88"},{"name":"headStart","nativeSrc":"1079:9:88","nodeType":"YulIdentifier","src":"1079:9:88"}],"functionName":{"name":"sub","nativeSrc":"1066:3:88","nodeType":"YulIdentifier","src":"1066:3:88"},"nativeSrc":"1066:23:88","nodeType":"YulFunctionCall","src":"1066:23:88"},{"kind":"number","nativeSrc":"1091:3:88","nodeType":"YulLiteral","src":"1091:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1062:3:88","nodeType":"YulIdentifier","src":"1062:3:88"},"nativeSrc":"1062:33:88","nodeType":"YulFunctionCall","src":"1062:33:88"},"nativeSrc":"1059:53:88","nodeType":"YulIf","src":"1059:53:88"},{"nativeSrc":"1121:30:88","nodeType":"YulVariableDeclaration","src":"1121:30:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1141:9:88","nodeType":"YulIdentifier","src":"1141:9:88"}],"functionName":{"name":"mload","nativeSrc":"1135:5:88","nodeType":"YulIdentifier","src":"1135:5:88"},"nativeSrc":"1135:16:88","nodeType":"YulFunctionCall","src":"1135:16:88"},"variables":[{"name":"offset","nativeSrc":"1125:6:88","nodeType":"YulTypedName","src":"1125:6:88","type":""}]},{"body":{"nativeSrc":"1194:16:88","nodeType":"YulBlock","src":"1194:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1203:1:88","nodeType":"YulLiteral","src":"1203:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1206:1:88","nodeType":"YulLiteral","src":"1206:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1196:6:88","nodeType":"YulIdentifier","src":"1196:6:88"},"nativeSrc":"1196:12:88","nodeType":"YulFunctionCall","src":"1196:12:88"},"nativeSrc":"1196:12:88","nodeType":"YulExpressionStatement","src":"1196:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1166:6:88","nodeType":"YulIdentifier","src":"1166:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1182:2:88","nodeType":"YulLiteral","src":"1182:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1186:1:88","nodeType":"YulLiteral","src":"1186:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1178:3:88","nodeType":"YulIdentifier","src":"1178:3:88"},"nativeSrc":"1178:10:88","nodeType":"YulFunctionCall","src":"1178:10:88"},{"kind":"number","nativeSrc":"1190:1:88","nodeType":"YulLiteral","src":"1190:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1174:3:88","nodeType":"YulIdentifier","src":"1174:3:88"},"nativeSrc":"1174:18:88","nodeType":"YulFunctionCall","src":"1174:18:88"}],"functionName":{"name":"gt","nativeSrc":"1163:2:88","nodeType":"YulIdentifier","src":"1163:2:88"},"nativeSrc":"1163:30:88","nodeType":"YulFunctionCall","src":"1163:30:88"},"nativeSrc":"1160:50:88","nodeType":"YulIf","src":"1160:50:88"},{"nativeSrc":"1219:71:88","nodeType":"YulAssignment","src":"1219:71:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1262:9:88","nodeType":"YulIdentifier","src":"1262:9:88"},{"name":"offset","nativeSrc":"1273:6:88","nodeType":"YulIdentifier","src":"1273:6:88"}],"functionName":{"name":"add","nativeSrc":"1258:3:88","nodeType":"YulIdentifier","src":"1258:3:88"},"nativeSrc":"1258:22:88","nodeType":"YulFunctionCall","src":"1258:22:88"},{"name":"dataEnd","nativeSrc":"1282:7:88","nodeType":"YulIdentifier","src":"1282:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1229:28:88","nodeType":"YulIdentifier","src":"1229:28:88"},"nativeSrc":"1229:61:88","nodeType":"YulFunctionCall","src":"1229:61:88"},"variableNames":[{"name":"value0","nativeSrc":"1219:6:88","nodeType":"YulIdentifier","src":"1219:6:88"}]},{"nativeSrc":"1299:41:88","nodeType":"YulVariableDeclaration","src":"1299:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1325:9:88","nodeType":"YulIdentifier","src":"1325:9:88"},{"kind":"number","nativeSrc":"1336:2:88","nodeType":"YulLiteral","src":"1336:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1321:3:88","nodeType":"YulIdentifier","src":"1321:3:88"},"nativeSrc":"1321:18:88","nodeType":"YulFunctionCall","src":"1321:18:88"}],"functionName":{"name":"mload","nativeSrc":"1315:5:88","nodeType":"YulIdentifier","src":"1315:5:88"},"nativeSrc":"1315:25:88","nodeType":"YulFunctionCall","src":"1315:25:88"},"variables":[{"name":"offset_1","nativeSrc":"1303:8:88","nodeType":"YulTypedName","src":"1303:8:88","type":""}]},{"body":{"nativeSrc":"1385:16:88","nodeType":"YulBlock","src":"1385:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1394:1:88","nodeType":"YulLiteral","src":"1394:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1397:1:88","nodeType":"YulLiteral","src":"1397:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1387:6:88","nodeType":"YulIdentifier","src":"1387:6:88"},"nativeSrc":"1387:12:88","nodeType":"YulFunctionCall","src":"1387:12:88"},"nativeSrc":"1387:12:88","nodeType":"YulExpressionStatement","src":"1387:12:88"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1355:8:88","nodeType":"YulIdentifier","src":"1355:8:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1373:2:88","nodeType":"YulLiteral","src":"1373:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1377:1:88","nodeType":"YulLiteral","src":"1377:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1369:3:88","nodeType":"YulIdentifier","src":"1369:3:88"},"nativeSrc":"1369:10:88","nodeType":"YulFunctionCall","src":"1369:10:88"},{"kind":"number","nativeSrc":"1381:1:88","nodeType":"YulLiteral","src":"1381:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1365:3:88","nodeType":"YulIdentifier","src":"1365:3:88"},"nativeSrc":"1365:18:88","nodeType":"YulFunctionCall","src":"1365:18:88"}],"functionName":{"name":"gt","nativeSrc":"1352:2:88","nodeType":"YulIdentifier","src":"1352:2:88"},"nativeSrc":"1352:32:88","nodeType":"YulFunctionCall","src":"1352:32:88"},"nativeSrc":"1349:52:88","nodeType":"YulIf","src":"1349:52:88"},{"nativeSrc":"1410:73:88","nodeType":"YulAssignment","src":"1410:73:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1453:9:88","nodeType":"YulIdentifier","src":"1453:9:88"},{"name":"offset_1","nativeSrc":"1464:8:88","nodeType":"YulIdentifier","src":"1464:8:88"}],"functionName":{"name":"add","nativeSrc":"1449:3:88","nodeType":"YulIdentifier","src":"1449:3:88"},"nativeSrc":"1449:24:88","nodeType":"YulFunctionCall","src":"1449:24:88"},{"name":"dataEnd","nativeSrc":"1475:7:88","nodeType":"YulIdentifier","src":"1475:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1420:28:88","nodeType":"YulIdentifier","src":"1420:28:88"},"nativeSrc":"1420:63:88","nodeType":"YulFunctionCall","src":"1420:63:88"},"variableNames":[{"name":"value1","nativeSrc":"1410:6:88","nodeType":"YulIdentifier","src":"1410:6:88"}]},{"nativeSrc":"1492:38:88","nodeType":"YulVariableDeclaration","src":"1492:38:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1515:9:88","nodeType":"YulIdentifier","src":"1515:9:88"},{"kind":"number","nativeSrc":"1526:2:88","nodeType":"YulLiteral","src":"1526:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1511:3:88","nodeType":"YulIdentifier","src":"1511:3:88"},"nativeSrc":"1511:18:88","nodeType":"YulFunctionCall","src":"1511:18:88"}],"functionName":{"name":"mload","nativeSrc":"1505:5:88","nodeType":"YulIdentifier","src":"1505:5:88"},"nativeSrc":"1505:25:88","nodeType":"YulFunctionCall","src":"1505:25:88"},"variables":[{"name":"value","nativeSrc":"1496:5:88","nodeType":"YulTypedName","src":"1496:5:88","type":""}]},{"body":{"nativeSrc":"1593:16:88","nodeType":"YulBlock","src":"1593:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1602:1:88","nodeType":"YulLiteral","src":"1602:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1605:1:88","nodeType":"YulLiteral","src":"1605:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1595:6:88","nodeType":"YulIdentifier","src":"1595:6:88"},"nativeSrc":"1595:12:88","nodeType":"YulFunctionCall","src":"1595:12:88"},"nativeSrc":"1595:12:88","nodeType":"YulExpressionStatement","src":"1595:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1552:5:88","nodeType":"YulIdentifier","src":"1552:5:88"},{"arguments":[{"name":"value","nativeSrc":"1563:5:88","nodeType":"YulIdentifier","src":"1563:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1578:3:88","nodeType":"YulLiteral","src":"1578:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1583:1:88","nodeType":"YulLiteral","src":"1583:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1574:3:88","nodeType":"YulIdentifier","src":"1574:3:88"},"nativeSrc":"1574:11:88","nodeType":"YulFunctionCall","src":"1574:11:88"},{"kind":"number","nativeSrc":"1587:1:88","nodeType":"YulLiteral","src":"1587:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1570:3:88","nodeType":"YulIdentifier","src":"1570:3:88"},"nativeSrc":"1570:19:88","nodeType":"YulFunctionCall","src":"1570:19:88"}],"functionName":{"name":"and","nativeSrc":"1559:3:88","nodeType":"YulIdentifier","src":"1559:3:88"},"nativeSrc":"1559:31:88","nodeType":"YulFunctionCall","src":"1559:31:88"}],"functionName":{"name":"eq","nativeSrc":"1549:2:88","nodeType":"YulIdentifier","src":"1549:2:88"},"nativeSrc":"1549:42:88","nodeType":"YulFunctionCall","src":"1549:42:88"}],"functionName":{"name":"iszero","nativeSrc":"1542:6:88","nodeType":"YulIdentifier","src":"1542:6:88"},"nativeSrc":"1542:50:88","nodeType":"YulFunctionCall","src":"1542:50:88"},"nativeSrc":"1539:70:88","nodeType":"YulIf","src":"1539:70:88"},{"nativeSrc":"1618:15:88","nodeType":"YulAssignment","src":"1618:15:88","value":{"name":"value","nativeSrc":"1628:5:88","nodeType":"YulIdentifier","src":"1628:5:88"},"variableNames":[{"name":"value2","nativeSrc":"1618:6:88","nodeType":"YulIdentifier","src":"1618:6:88"}]},{"nativeSrc":"1642:16:88","nodeType":"YulVariableDeclaration","src":"1642:16:88","value":{"kind":"number","nativeSrc":"1657:1:88","nodeType":"YulLiteral","src":"1657:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1646:7:88","nodeType":"YulTypedName","src":"1646:7:88","type":""}]},{"nativeSrc":"1667:36:88","nodeType":"YulAssignment","src":"1667:36:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1688:9:88","nodeType":"YulIdentifier","src":"1688:9:88"},{"kind":"number","nativeSrc":"1699:2:88","nodeType":"YulLiteral","src":"1699:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1684:3:88","nodeType":"YulIdentifier","src":"1684:3:88"},"nativeSrc":"1684:18:88","nodeType":"YulFunctionCall","src":"1684:18:88"}],"functionName":{"name":"mload","nativeSrc":"1678:5:88","nodeType":"YulIdentifier","src":"1678:5:88"},"nativeSrc":"1678:25:88","nodeType":"YulFunctionCall","src":"1678:25:88"},"variableNames":[{"name":"value_1","nativeSrc":"1667:7:88","nodeType":"YulIdentifier","src":"1667:7:88"}]},{"nativeSrc":"1712:17:88","nodeType":"YulAssignment","src":"1712:17:88","value":{"name":"value_1","nativeSrc":"1722:7:88","nodeType":"YulIdentifier","src":"1722:7:88"},"variableNames":[{"name":"value3","nativeSrc":"1712:6:88","nodeType":"YulIdentifier","src":"1712:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_contract$_IERC20Metadata_$6066t_uint256_fromMemory","nativeSrc":"874:861:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"991:9:88","nodeType":"YulTypedName","src":"991:9:88","type":""},{"name":"dataEnd","nativeSrc":"1002:7:88","nodeType":"YulTypedName","src":"1002:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1014:6:88","nodeType":"YulTypedName","src":"1014:6:88","type":""},{"name":"value1","nativeSrc":"1022:6:88","nodeType":"YulTypedName","src":"1022:6:88","type":""},{"name":"value2","nativeSrc":"1030:6:88","nodeType":"YulTypedName","src":"1030:6:88","type":""},{"name":"value3","nativeSrc":"1038:6:88","nodeType":"YulTypedName","src":"1038:6:88","type":""}],"src":"874:861:88"},{"body":{"nativeSrc":"1795:325:88","nodeType":"YulBlock","src":"1795:325:88","statements":[{"nativeSrc":"1805:22:88","nodeType":"YulAssignment","src":"1805:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"1819:1:88","nodeType":"YulLiteral","src":"1819:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"1822:4:88","nodeType":"YulIdentifier","src":"1822:4:88"}],"functionName":{"name":"shr","nativeSrc":"1815:3:88","nodeType":"YulIdentifier","src":"1815:3:88"},"nativeSrc":"1815:12:88","nodeType":"YulFunctionCall","src":"1815:12:88"},"variableNames":[{"name":"length","nativeSrc":"1805:6:88","nodeType":"YulIdentifier","src":"1805:6:88"}]},{"nativeSrc":"1836:38:88","nodeType":"YulVariableDeclaration","src":"1836:38:88","value":{"arguments":[{"name":"data","nativeSrc":"1866:4:88","nodeType":"YulIdentifier","src":"1866:4:88"},{"kind":"number","nativeSrc":"1872:1:88","nodeType":"YulLiteral","src":"1872:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1862:3:88","nodeType":"YulIdentifier","src":"1862:3:88"},"nativeSrc":"1862:12:88","nodeType":"YulFunctionCall","src":"1862:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1840:18:88","nodeType":"YulTypedName","src":"1840:18:88","type":""}]},{"body":{"nativeSrc":"1913:31:88","nodeType":"YulBlock","src":"1913:31:88","statements":[{"nativeSrc":"1915:27:88","nodeType":"YulAssignment","src":"1915:27:88","value":{"arguments":[{"name":"length","nativeSrc":"1929:6:88","nodeType":"YulIdentifier","src":"1929:6:88"},{"kind":"number","nativeSrc":"1937:4:88","nodeType":"YulLiteral","src":"1937:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1925:3:88","nodeType":"YulIdentifier","src":"1925:3:88"},"nativeSrc":"1925:17:88","nodeType":"YulFunctionCall","src":"1925:17:88"},"variableNames":[{"name":"length","nativeSrc":"1915:6:88","nodeType":"YulIdentifier","src":"1915:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1893:18:88","nodeType":"YulIdentifier","src":"1893:18:88"}],"functionName":{"name":"iszero","nativeSrc":"1886:6:88","nodeType":"YulIdentifier","src":"1886:6:88"},"nativeSrc":"1886:26:88","nodeType":"YulFunctionCall","src":"1886:26:88"},"nativeSrc":"1883:61:88","nodeType":"YulIf","src":"1883:61:88"},{"body":{"nativeSrc":"2003:111:88","nodeType":"YulBlock","src":"2003:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2024:1:88","nodeType":"YulLiteral","src":"2024:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2031:3:88","nodeType":"YulLiteral","src":"2031:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2036:10:88","nodeType":"YulLiteral","src":"2036:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2027:3:88","nodeType":"YulIdentifier","src":"2027:3:88"},"nativeSrc":"2027:20:88","nodeType":"YulFunctionCall","src":"2027:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2017:6:88","nodeType":"YulIdentifier","src":"2017:6:88"},"nativeSrc":"2017:31:88","nodeType":"YulFunctionCall","src":"2017:31:88"},"nativeSrc":"2017:31:88","nodeType":"YulExpressionStatement","src":"2017:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2068:1:88","nodeType":"YulLiteral","src":"2068:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2071:4:88","nodeType":"YulLiteral","src":"2071:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2061:6:88","nodeType":"YulIdentifier","src":"2061:6:88"},"nativeSrc":"2061:15:88","nodeType":"YulFunctionCall","src":"2061:15:88"},"nativeSrc":"2061:15:88","nodeType":"YulExpressionStatement","src":"2061:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2096:1:88","nodeType":"YulLiteral","src":"2096:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2099:4:88","nodeType":"YulLiteral","src":"2099:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2089:6:88","nodeType":"YulIdentifier","src":"2089:6:88"},"nativeSrc":"2089:15:88","nodeType":"YulFunctionCall","src":"2089:15:88"},"nativeSrc":"2089:15:88","nodeType":"YulExpressionStatement","src":"2089:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1959:18:88","nodeType":"YulIdentifier","src":"1959:18:88"},{"arguments":[{"name":"length","nativeSrc":"1982:6:88","nodeType":"YulIdentifier","src":"1982:6:88"},{"kind":"number","nativeSrc":"1990:2:88","nodeType":"YulLiteral","src":"1990:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1979:2:88","nodeType":"YulIdentifier","src":"1979:2:88"},"nativeSrc":"1979:14:88","nodeType":"YulFunctionCall","src":"1979:14:88"}],"functionName":{"name":"eq","nativeSrc":"1956:2:88","nodeType":"YulIdentifier","src":"1956:2:88"},"nativeSrc":"1956:38:88","nodeType":"YulFunctionCall","src":"1956:38:88"},"nativeSrc":"1953:161:88","nodeType":"YulIf","src":"1953:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"1740:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1775:4:88","nodeType":"YulTypedName","src":"1775:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1784:6:88","nodeType":"YulTypedName","src":"1784:6:88","type":""}],"src":"1740:380:88"},{"body":{"nativeSrc":"2181:65:88","nodeType":"YulBlock","src":"2181:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2198:1:88","nodeType":"YulLiteral","src":"2198:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"2201:3:88","nodeType":"YulIdentifier","src":"2201:3:88"}],"functionName":{"name":"mstore","nativeSrc":"2191:6:88","nodeType":"YulIdentifier","src":"2191:6:88"},"nativeSrc":"2191:14:88","nodeType":"YulFunctionCall","src":"2191:14:88"},"nativeSrc":"2191:14:88","nodeType":"YulExpressionStatement","src":"2191:14:88"},{"nativeSrc":"2214:26:88","nodeType":"YulAssignment","src":"2214:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"2232:1:88","nodeType":"YulLiteral","src":"2232:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2235:4:88","nodeType":"YulLiteral","src":"2235:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2222:9:88","nodeType":"YulIdentifier","src":"2222:9:88"},"nativeSrc":"2222:18:88","nodeType":"YulFunctionCall","src":"2222:18:88"},"variableNames":[{"name":"data","nativeSrc":"2214:4:88","nodeType":"YulIdentifier","src":"2214:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2125:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2164:3:88","nodeType":"YulTypedName","src":"2164:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2172:4:88","nodeType":"YulTypedName","src":"2172:4:88","type":""}],"src":"2125:121:88"},{"body":{"nativeSrc":"2332:437:88","nodeType":"YulBlock","src":"2332:437:88","statements":[{"body":{"nativeSrc":"2365:398:88","nodeType":"YulBlock","src":"2365:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2386:1:88","nodeType":"YulLiteral","src":"2386:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"2389:5:88","nodeType":"YulIdentifier","src":"2389:5:88"}],"functionName":{"name":"mstore","nativeSrc":"2379:6:88","nodeType":"YulIdentifier","src":"2379:6:88"},"nativeSrc":"2379:16:88","nodeType":"YulFunctionCall","src":"2379:16:88"},"nativeSrc":"2379:16:88","nodeType":"YulExpressionStatement","src":"2379:16:88"},{"nativeSrc":"2408:30:88","nodeType":"YulVariableDeclaration","src":"2408:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"2430:1:88","nodeType":"YulLiteral","src":"2430:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2433:4:88","nodeType":"YulLiteral","src":"2433:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2420:9:88","nodeType":"YulIdentifier","src":"2420:9:88"},"nativeSrc":"2420:18:88","nodeType":"YulFunctionCall","src":"2420:18:88"},"variables":[{"name":"data","nativeSrc":"2412:4:88","nodeType":"YulTypedName","src":"2412:4:88","type":""}]},{"nativeSrc":"2451:57:88","nodeType":"YulVariableDeclaration","src":"2451:57:88","value":{"arguments":[{"name":"data","nativeSrc":"2474:4:88","nodeType":"YulIdentifier","src":"2474:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2484:1:88","nodeType":"YulLiteral","src":"2484:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2491:10:88","nodeType":"YulIdentifier","src":"2491:10:88"},{"kind":"number","nativeSrc":"2503:2:88","nodeType":"YulLiteral","src":"2503:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2487:3:88","nodeType":"YulIdentifier","src":"2487:3:88"},"nativeSrc":"2487:19:88","nodeType":"YulFunctionCall","src":"2487:19:88"}],"functionName":{"name":"shr","nativeSrc":"2480:3:88","nodeType":"YulIdentifier","src":"2480:3:88"},"nativeSrc":"2480:27:88","nodeType":"YulFunctionCall","src":"2480:27:88"}],"functionName":{"name":"add","nativeSrc":"2470:3:88","nodeType":"YulIdentifier","src":"2470:3:88"},"nativeSrc":"2470:38:88","nodeType":"YulFunctionCall","src":"2470:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"2455:11:88","nodeType":"YulTypedName","src":"2455:11:88","type":""}]},{"body":{"nativeSrc":"2545:23:88","nodeType":"YulBlock","src":"2545:23:88","statements":[{"nativeSrc":"2547:19:88","nodeType":"YulAssignment","src":"2547:19:88","value":{"name":"data","nativeSrc":"2562:4:88","nodeType":"YulIdentifier","src":"2562:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"2547:11:88","nodeType":"YulIdentifier","src":"2547:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2527:10:88","nodeType":"YulIdentifier","src":"2527:10:88"},{"kind":"number","nativeSrc":"2539:4:88","nodeType":"YulLiteral","src":"2539:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2524:2:88","nodeType":"YulIdentifier","src":"2524:2:88"},"nativeSrc":"2524:20:88","nodeType":"YulFunctionCall","src":"2524:20:88"},"nativeSrc":"2521:47:88","nodeType":"YulIf","src":"2521:47:88"},{"nativeSrc":"2581:41:88","nodeType":"YulVariableDeclaration","src":"2581:41:88","value":{"arguments":[{"name":"data","nativeSrc":"2595:4:88","nodeType":"YulIdentifier","src":"2595:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2605:1:88","nodeType":"YulLiteral","src":"2605:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2612:3:88","nodeType":"YulIdentifier","src":"2612:3:88"},{"kind":"number","nativeSrc":"2617:2:88","nodeType":"YulLiteral","src":"2617:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2608:3:88","nodeType":"YulIdentifier","src":"2608:3:88"},"nativeSrc":"2608:12:88","nodeType":"YulFunctionCall","src":"2608:12:88"}],"functionName":{"name":"shr","nativeSrc":"2601:3:88","nodeType":"YulIdentifier","src":"2601:3:88"},"nativeSrc":"2601:20:88","nodeType":"YulFunctionCall","src":"2601:20:88"}],"functionName":{"name":"add","nativeSrc":"2591:3:88","nodeType":"YulIdentifier","src":"2591:3:88"},"nativeSrc":"2591:31:88","nodeType":"YulFunctionCall","src":"2591:31:88"},"variables":[{"name":"_1","nativeSrc":"2585:2:88","nodeType":"YulTypedName","src":"2585:2:88","type":""}]},{"nativeSrc":"2635:24:88","nodeType":"YulVariableDeclaration","src":"2635:24:88","value":{"name":"deleteStart","nativeSrc":"2648:11:88","nodeType":"YulIdentifier","src":"2648:11:88"},"variables":[{"name":"start","nativeSrc":"2639:5:88","nodeType":"YulTypedName","src":"2639:5:88","type":""}]},{"body":{"nativeSrc":"2733:20:88","nodeType":"YulBlock","src":"2733:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2742:5:88","nodeType":"YulIdentifier","src":"2742:5:88"},{"kind":"number","nativeSrc":"2749:1:88","nodeType":"YulLiteral","src":"2749:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"2735:6:88","nodeType":"YulIdentifier","src":"2735:6:88"},"nativeSrc":"2735:16:88","nodeType":"YulFunctionCall","src":"2735:16:88"},"nativeSrc":"2735:16:88","nodeType":"YulExpressionStatement","src":"2735:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2683:5:88","nodeType":"YulIdentifier","src":"2683:5:88"},{"name":"_1","nativeSrc":"2690:2:88","nodeType":"YulIdentifier","src":"2690:2:88"}],"functionName":{"name":"lt","nativeSrc":"2680:2:88","nodeType":"YulIdentifier","src":"2680:2:88"},"nativeSrc":"2680:13:88","nodeType":"YulFunctionCall","src":"2680:13:88"},"nativeSrc":"2672:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"2694:26:88","nodeType":"YulBlock","src":"2694:26:88","statements":[{"nativeSrc":"2696:22:88","nodeType":"YulAssignment","src":"2696:22:88","value":{"arguments":[{"name":"start","nativeSrc":"2709:5:88","nodeType":"YulIdentifier","src":"2709:5:88"},{"kind":"number","nativeSrc":"2716:1:88","nodeType":"YulLiteral","src":"2716:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2705:3:88","nodeType":"YulIdentifier","src":"2705:3:88"},"nativeSrc":"2705:13:88","nodeType":"YulFunctionCall","src":"2705:13:88"},"variableNames":[{"name":"start","nativeSrc":"2696:5:88","nodeType":"YulIdentifier","src":"2696:5:88"}]}]},"pre":{"nativeSrc":"2676:3:88","nodeType":"YulBlock","src":"2676:3:88","statements":[]},"src":"2672:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2348:3:88","nodeType":"YulIdentifier","src":"2348:3:88"},{"kind":"number","nativeSrc":"2353:2:88","nodeType":"YulLiteral","src":"2353:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2345:2:88","nodeType":"YulIdentifier","src":"2345:2:88"},"nativeSrc":"2345:11:88","nodeType":"YulFunctionCall","src":"2345:11:88"},"nativeSrc":"2342:421:88","nodeType":"YulIf","src":"2342:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2251:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2304:5:88","nodeType":"YulTypedName","src":"2304:5:88","type":""},{"name":"len","nativeSrc":"2311:3:88","nodeType":"YulTypedName","src":"2311:3:88","type":""},{"name":"startIndex","nativeSrc":"2316:10:88","nodeType":"YulTypedName","src":"2316:10:88","type":""}],"src":"2251:518:88"},{"body":{"nativeSrc":"2859:81:88","nodeType":"YulBlock","src":"2859:81:88","statements":[{"nativeSrc":"2869:65:88","nodeType":"YulAssignment","src":"2869:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2884:4:88","nodeType":"YulIdentifier","src":"2884:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2902:1:88","nodeType":"YulLiteral","src":"2902:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"2905:3:88","nodeType":"YulIdentifier","src":"2905:3:88"}],"functionName":{"name":"shl","nativeSrc":"2898:3:88","nodeType":"YulIdentifier","src":"2898:3:88"},"nativeSrc":"2898:11:88","nodeType":"YulFunctionCall","src":"2898:11:88"},{"arguments":[{"kind":"number","nativeSrc":"2915:1:88","nodeType":"YulLiteral","src":"2915:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2911:3:88","nodeType":"YulIdentifier","src":"2911:3:88"},"nativeSrc":"2911:6:88","nodeType":"YulFunctionCall","src":"2911:6:88"}],"functionName":{"name":"shr","nativeSrc":"2894:3:88","nodeType":"YulIdentifier","src":"2894:3:88"},"nativeSrc":"2894:24:88","nodeType":"YulFunctionCall","src":"2894:24:88"}],"functionName":{"name":"not","nativeSrc":"2890:3:88","nodeType":"YulIdentifier","src":"2890:3:88"},"nativeSrc":"2890:29:88","nodeType":"YulFunctionCall","src":"2890:29:88"}],"functionName":{"name":"and","nativeSrc":"2880:3:88","nodeType":"YulIdentifier","src":"2880:3:88"},"nativeSrc":"2880:40:88","nodeType":"YulFunctionCall","src":"2880:40:88"},{"arguments":[{"kind":"number","nativeSrc":"2926:1:88","nodeType":"YulLiteral","src":"2926:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"2929:3:88","nodeType":"YulIdentifier","src":"2929:3:88"}],"functionName":{"name":"shl","nativeSrc":"2922:3:88","nodeType":"YulIdentifier","src":"2922:3:88"},"nativeSrc":"2922:11:88","nodeType":"YulFunctionCall","src":"2922:11:88"}],"functionName":{"name":"or","nativeSrc":"2877:2:88","nodeType":"YulIdentifier","src":"2877:2:88"},"nativeSrc":"2877:57:88","nodeType":"YulFunctionCall","src":"2877:57:88"},"variableNames":[{"name":"used","nativeSrc":"2869:4:88","nodeType":"YulIdentifier","src":"2869:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2774:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2836:4:88","nodeType":"YulTypedName","src":"2836:4:88","type":""},{"name":"len","nativeSrc":"2842:3:88","nodeType":"YulTypedName","src":"2842:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2850:4:88","nodeType":"YulTypedName","src":"2850:4:88","type":""}],"src":"2774:166:88"},{"body":{"nativeSrc":"3041:1203:88","nodeType":"YulBlock","src":"3041:1203:88","statements":[{"nativeSrc":"3051:24:88","nodeType":"YulVariableDeclaration","src":"3051:24:88","value":{"arguments":[{"name":"src","nativeSrc":"3071:3:88","nodeType":"YulIdentifier","src":"3071:3:88"}],"functionName":{"name":"mload","nativeSrc":"3065:5:88","nodeType":"YulIdentifier","src":"3065:5:88"},"nativeSrc":"3065:10:88","nodeType":"YulFunctionCall","src":"3065:10:88"},"variables":[{"name":"newLen","nativeSrc":"3055:6:88","nodeType":"YulTypedName","src":"3055:6:88","type":""}]},{"body":{"nativeSrc":"3118:22:88","nodeType":"YulBlock","src":"3118:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3120:16:88","nodeType":"YulIdentifier","src":"3120:16:88"},"nativeSrc":"3120:18:88","nodeType":"YulFunctionCall","src":"3120:18:88"},"nativeSrc":"3120:18:88","nodeType":"YulExpressionStatement","src":"3120:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"3090:6:88","nodeType":"YulIdentifier","src":"3090:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3106:2:88","nodeType":"YulLiteral","src":"3106:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"3110:1:88","nodeType":"YulLiteral","src":"3110:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3102:3:88","nodeType":"YulIdentifier","src":"3102:3:88"},"nativeSrc":"3102:10:88","nodeType":"YulFunctionCall","src":"3102:10:88"},{"kind":"number","nativeSrc":"3114:1:88","nodeType":"YulLiteral","src":"3114:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3098:3:88","nodeType":"YulIdentifier","src":"3098:3:88"},"nativeSrc":"3098:18:88","nodeType":"YulFunctionCall","src":"3098:18:88"}],"functionName":{"name":"gt","nativeSrc":"3087:2:88","nodeType":"YulIdentifier","src":"3087:2:88"},"nativeSrc":"3087:30:88","nodeType":"YulFunctionCall","src":"3087:30:88"},"nativeSrc":"3084:56:88","nodeType":"YulIf","src":"3084:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3193:4:88","nodeType":"YulIdentifier","src":"3193:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3231:4:88","nodeType":"YulIdentifier","src":"3231:4:88"}],"functionName":{"name":"sload","nativeSrc":"3225:5:88","nodeType":"YulIdentifier","src":"3225:5:88"},"nativeSrc":"3225:11:88","nodeType":"YulFunctionCall","src":"3225:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3199:25:88","nodeType":"YulIdentifier","src":"3199:25:88"},"nativeSrc":"3199:38:88","nodeType":"YulFunctionCall","src":"3199:38:88"},{"name":"newLen","nativeSrc":"3239:6:88","nodeType":"YulIdentifier","src":"3239:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3149:43:88","nodeType":"YulIdentifier","src":"3149:43:88"},"nativeSrc":"3149:97:88","nodeType":"YulFunctionCall","src":"3149:97:88"},"nativeSrc":"3149:97:88","nodeType":"YulExpressionStatement","src":"3149:97:88"},{"nativeSrc":"3255:18:88","nodeType":"YulVariableDeclaration","src":"3255:18:88","value":{"kind":"number","nativeSrc":"3272:1:88","nodeType":"YulLiteral","src":"3272:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3259:9:88","nodeType":"YulTypedName","src":"3259:9:88","type":""}]},{"nativeSrc":"3282:17:88","nodeType":"YulAssignment","src":"3282:17:88","value":{"kind":"number","nativeSrc":"3295:4:88","nodeType":"YulLiteral","src":"3295:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3282:9:88","nodeType":"YulIdentifier","src":"3282:9:88"}]},{"cases":[{"body":{"nativeSrc":"3345:642:88","nodeType":"YulBlock","src":"3345:642:88","statements":[{"nativeSrc":"3359:35:88","nodeType":"YulVariableDeclaration","src":"3359:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"3378:6:88","nodeType":"YulIdentifier","src":"3378:6:88"},{"arguments":[{"kind":"number","nativeSrc":"3390:2:88","nodeType":"YulLiteral","src":"3390:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3386:3:88","nodeType":"YulIdentifier","src":"3386:3:88"},"nativeSrc":"3386:7:88","nodeType":"YulFunctionCall","src":"3386:7:88"}],"functionName":{"name":"and","nativeSrc":"3374:3:88","nodeType":"YulIdentifier","src":"3374:3:88"},"nativeSrc":"3374:20:88","nodeType":"YulFunctionCall","src":"3374:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"3363:7:88","nodeType":"YulTypedName","src":"3363:7:88","type":""}]},{"nativeSrc":"3407:49:88","nodeType":"YulVariableDeclaration","src":"3407:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"3451:4:88","nodeType":"YulIdentifier","src":"3451:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3421:29:88","nodeType":"YulIdentifier","src":"3421:29:88"},"nativeSrc":"3421:35:88","nodeType":"YulFunctionCall","src":"3421:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"3411:6:88","nodeType":"YulTypedName","src":"3411:6:88","type":""}]},{"nativeSrc":"3469:10:88","nodeType":"YulVariableDeclaration","src":"3469:10:88","value":{"kind":"number","nativeSrc":"3478:1:88","nodeType":"YulLiteral","src":"3478:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3473:1:88","nodeType":"YulTypedName","src":"3473:1:88","type":""}]},{"body":{"nativeSrc":"3549:165:88","nodeType":"YulBlock","src":"3549:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3574:6:88","nodeType":"YulIdentifier","src":"3574:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3592:3:88","nodeType":"YulIdentifier","src":"3592:3:88"},{"name":"srcOffset","nativeSrc":"3597:9:88","nodeType":"YulIdentifier","src":"3597:9:88"}],"functionName":{"name":"add","nativeSrc":"3588:3:88","nodeType":"YulIdentifier","src":"3588:3:88"},"nativeSrc":"3588:19:88","nodeType":"YulFunctionCall","src":"3588:19:88"}],"functionName":{"name":"mload","nativeSrc":"3582:5:88","nodeType":"YulIdentifier","src":"3582:5:88"},"nativeSrc":"3582:26:88","nodeType":"YulFunctionCall","src":"3582:26:88"}],"functionName":{"name":"sstore","nativeSrc":"3567:6:88","nodeType":"YulIdentifier","src":"3567:6:88"},"nativeSrc":"3567:42:88","nodeType":"YulFunctionCall","src":"3567:42:88"},"nativeSrc":"3567:42:88","nodeType":"YulExpressionStatement","src":"3567:42:88"},{"nativeSrc":"3626:24:88","nodeType":"YulAssignment","src":"3626:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3640:6:88","nodeType":"YulIdentifier","src":"3640:6:88"},{"kind":"number","nativeSrc":"3648:1:88","nodeType":"YulLiteral","src":"3648:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3636:3:88","nodeType":"YulIdentifier","src":"3636:3:88"},"nativeSrc":"3636:14:88","nodeType":"YulFunctionCall","src":"3636:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"3626:6:88","nodeType":"YulIdentifier","src":"3626:6:88"}]},{"nativeSrc":"3667:33:88","nodeType":"YulAssignment","src":"3667:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3684:9:88","nodeType":"YulIdentifier","src":"3684:9:88"},{"kind":"number","nativeSrc":"3695:4:88","nodeType":"YulLiteral","src":"3695:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3680:3:88","nodeType":"YulIdentifier","src":"3680:3:88"},"nativeSrc":"3680:20:88","nodeType":"YulFunctionCall","src":"3680:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"3667:9:88","nodeType":"YulIdentifier","src":"3667:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3503:1:88","nodeType":"YulIdentifier","src":"3503:1:88"},{"name":"loopEnd","nativeSrc":"3506:7:88","nodeType":"YulIdentifier","src":"3506:7:88"}],"functionName":{"name":"lt","nativeSrc":"3500:2:88","nodeType":"YulIdentifier","src":"3500:2:88"},"nativeSrc":"3500:14:88","nodeType":"YulFunctionCall","src":"3500:14:88"},"nativeSrc":"3492:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"3515:21:88","nodeType":"YulBlock","src":"3515:21:88","statements":[{"nativeSrc":"3517:17:88","nodeType":"YulAssignment","src":"3517:17:88","value":{"arguments":[{"name":"i","nativeSrc":"3526:1:88","nodeType":"YulIdentifier","src":"3526:1:88"},{"kind":"number","nativeSrc":"3529:4:88","nodeType":"YulLiteral","src":"3529:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3522:3:88","nodeType":"YulIdentifier","src":"3522:3:88"},"nativeSrc":"3522:12:88","nodeType":"YulFunctionCall","src":"3522:12:88"},"variableNames":[{"name":"i","nativeSrc":"3517:1:88","nodeType":"YulIdentifier","src":"3517:1:88"}]}]},"pre":{"nativeSrc":"3496:3:88","nodeType":"YulBlock","src":"3496:3:88","statements":[]},"src":"3492:222:88"},{"body":{"nativeSrc":"3762:166:88","nodeType":"YulBlock","src":"3762:166:88","statements":[{"nativeSrc":"3780:43:88","nodeType":"YulVariableDeclaration","src":"3780:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3807:3:88","nodeType":"YulIdentifier","src":"3807:3:88"},{"name":"srcOffset","nativeSrc":"3812:9:88","nodeType":"YulIdentifier","src":"3812:9:88"}],"functionName":{"name":"add","nativeSrc":"3803:3:88","nodeType":"YulIdentifier","src":"3803:3:88"},"nativeSrc":"3803:19:88","nodeType":"YulFunctionCall","src":"3803:19:88"}],"functionName":{"name":"mload","nativeSrc":"3797:5:88","nodeType":"YulIdentifier","src":"3797:5:88"},"nativeSrc":"3797:26:88","nodeType":"YulFunctionCall","src":"3797:26:88"},"variables":[{"name":"lastValue","nativeSrc":"3784:9:88","nodeType":"YulTypedName","src":"3784:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3847:6:88","nodeType":"YulIdentifier","src":"3847:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"3859:9:88","nodeType":"YulIdentifier","src":"3859:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3886:1:88","nodeType":"YulLiteral","src":"3886:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"3889:6:88","nodeType":"YulIdentifier","src":"3889:6:88"}],"functionName":{"name":"shl","nativeSrc":"3882:3:88","nodeType":"YulIdentifier","src":"3882:3:88"},"nativeSrc":"3882:14:88","nodeType":"YulFunctionCall","src":"3882:14:88"},{"kind":"number","nativeSrc":"3898:3:88","nodeType":"YulLiteral","src":"3898:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3878:3:88","nodeType":"YulIdentifier","src":"3878:3:88"},"nativeSrc":"3878:24:88","nodeType":"YulFunctionCall","src":"3878:24:88"},{"arguments":[{"kind":"number","nativeSrc":"3908:1:88","nodeType":"YulLiteral","src":"3908:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3904:3:88","nodeType":"YulIdentifier","src":"3904:3:88"},"nativeSrc":"3904:6:88","nodeType":"YulFunctionCall","src":"3904:6:88"}],"functionName":{"name":"shr","nativeSrc":"3874:3:88","nodeType":"YulIdentifier","src":"3874:3:88"},"nativeSrc":"3874:37:88","nodeType":"YulFunctionCall","src":"3874:37:88"}],"functionName":{"name":"not","nativeSrc":"3870:3:88","nodeType":"YulIdentifier","src":"3870:3:88"},"nativeSrc":"3870:42:88","nodeType":"YulFunctionCall","src":"3870:42:88"}],"functionName":{"name":"and","nativeSrc":"3855:3:88","nodeType":"YulIdentifier","src":"3855:3:88"},"nativeSrc":"3855:58:88","nodeType":"YulFunctionCall","src":"3855:58:88"}],"functionName":{"name":"sstore","nativeSrc":"3840:6:88","nodeType":"YulIdentifier","src":"3840:6:88"},"nativeSrc":"3840:74:88","nodeType":"YulFunctionCall","src":"3840:74:88"},"nativeSrc":"3840:74:88","nodeType":"YulExpressionStatement","src":"3840:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3733:7:88","nodeType":"YulIdentifier","src":"3733:7:88"},{"name":"newLen","nativeSrc":"3742:6:88","nodeType":"YulIdentifier","src":"3742:6:88"}],"functionName":{"name":"lt","nativeSrc":"3730:2:88","nodeType":"YulIdentifier","src":"3730:2:88"},"nativeSrc":"3730:19:88","nodeType":"YulFunctionCall","src":"3730:19:88"},"nativeSrc":"3727:201:88","nodeType":"YulIf","src":"3727:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3948:4:88","nodeType":"YulIdentifier","src":"3948:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3962:1:88","nodeType":"YulLiteral","src":"3962:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"3965:6:88","nodeType":"YulIdentifier","src":"3965:6:88"}],"functionName":{"name":"shl","nativeSrc":"3958:3:88","nodeType":"YulIdentifier","src":"3958:3:88"},"nativeSrc":"3958:14:88","nodeType":"YulFunctionCall","src":"3958:14:88"},{"kind":"number","nativeSrc":"3974:1:88","nodeType":"YulLiteral","src":"3974:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3954:3:88","nodeType":"YulIdentifier","src":"3954:3:88"},"nativeSrc":"3954:22:88","nodeType":"YulFunctionCall","src":"3954:22:88"}],"functionName":{"name":"sstore","nativeSrc":"3941:6:88","nodeType":"YulIdentifier","src":"3941:6:88"},"nativeSrc":"3941:36:88","nodeType":"YulFunctionCall","src":"3941:36:88"},"nativeSrc":"3941:36:88","nodeType":"YulExpressionStatement","src":"3941:36:88"}]},"nativeSrc":"3338:649:88","nodeType":"YulCase","src":"3338:649:88","value":{"kind":"number","nativeSrc":"3343:1:88","nodeType":"YulLiteral","src":"3343:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"4004:234:88","nodeType":"YulBlock","src":"4004:234:88","statements":[{"nativeSrc":"4018:14:88","nodeType":"YulVariableDeclaration","src":"4018:14:88","value":{"kind":"number","nativeSrc":"4031:1:88","nodeType":"YulLiteral","src":"4031:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4022:5:88","nodeType":"YulTypedName","src":"4022:5:88","type":""}]},{"body":{"nativeSrc":"4067:67:88","nodeType":"YulBlock","src":"4067:67:88","statements":[{"nativeSrc":"4085:35:88","nodeType":"YulAssignment","src":"4085:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4104:3:88","nodeType":"YulIdentifier","src":"4104:3:88"},{"name":"srcOffset","nativeSrc":"4109:9:88","nodeType":"YulIdentifier","src":"4109:9:88"}],"functionName":{"name":"add","nativeSrc":"4100:3:88","nodeType":"YulIdentifier","src":"4100:3:88"},"nativeSrc":"4100:19:88","nodeType":"YulFunctionCall","src":"4100:19:88"}],"functionName":{"name":"mload","nativeSrc":"4094:5:88","nodeType":"YulIdentifier","src":"4094:5:88"},"nativeSrc":"4094:26:88","nodeType":"YulFunctionCall","src":"4094:26:88"},"variableNames":[{"name":"value","nativeSrc":"4085:5:88","nodeType":"YulIdentifier","src":"4085:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"4048:6:88","nodeType":"YulIdentifier","src":"4048:6:88"},"nativeSrc":"4045:89:88","nodeType":"YulIf","src":"4045:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4154:4:88","nodeType":"YulIdentifier","src":"4154:4:88"},{"arguments":[{"name":"value","nativeSrc":"4213:5:88","nodeType":"YulIdentifier","src":"4213:5:88"},{"name":"newLen","nativeSrc":"4220:6:88","nodeType":"YulIdentifier","src":"4220:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4160:52:88","nodeType":"YulIdentifier","src":"4160:52:88"},"nativeSrc":"4160:67:88","nodeType":"YulFunctionCall","src":"4160:67:88"}],"functionName":{"name":"sstore","nativeSrc":"4147:6:88","nodeType":"YulIdentifier","src":"4147:6:88"},"nativeSrc":"4147:81:88","nodeType":"YulFunctionCall","src":"4147:81:88"},"nativeSrc":"4147:81:88","nodeType":"YulExpressionStatement","src":"4147:81:88"}]},"nativeSrc":"3996:242:88","nodeType":"YulCase","src":"3996:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3318:6:88","nodeType":"YulIdentifier","src":"3318:6:88"},{"kind":"number","nativeSrc":"3326:2:88","nodeType":"YulLiteral","src":"3326:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3315:2:88","nodeType":"YulIdentifier","src":"3315:2:88"},"nativeSrc":"3315:14:88","nodeType":"YulFunctionCall","src":"3315:14:88"},"nativeSrc":"3308:930:88","nodeType":"YulSwitch","src":"3308:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2945:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3026:4:88","nodeType":"YulTypedName","src":"3026:4:88","type":""},{"name":"src","nativeSrc":"3032:3:88","nodeType":"YulTypedName","src":"3032:3:88","type":""}],"src":"2945:1299:88"},{"body":{"nativeSrc":"4386:164:88","nodeType":"YulBlock","src":"4386:164:88","statements":[{"nativeSrc":"4396:27:88","nodeType":"YulVariableDeclaration","src":"4396:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"4416:6:88","nodeType":"YulIdentifier","src":"4416:6:88"}],"functionName":{"name":"mload","nativeSrc":"4410:5:88","nodeType":"YulIdentifier","src":"4410:5:88"},"nativeSrc":"4410:13:88","nodeType":"YulFunctionCall","src":"4410:13:88"},"variables":[{"name":"length","nativeSrc":"4400:6:88","nodeType":"YulTypedName","src":"4400:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4438:3:88","nodeType":"YulIdentifier","src":"4438:3:88"},{"arguments":[{"name":"value0","nativeSrc":"4447:6:88","nodeType":"YulIdentifier","src":"4447:6:88"},{"kind":"number","nativeSrc":"4455:4:88","nodeType":"YulLiteral","src":"4455:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4443:3:88","nodeType":"YulIdentifier","src":"4443:3:88"},"nativeSrc":"4443:17:88","nodeType":"YulFunctionCall","src":"4443:17:88"},{"name":"length","nativeSrc":"4462:6:88","nodeType":"YulIdentifier","src":"4462:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"4432:5:88","nodeType":"YulIdentifier","src":"4432:5:88"},"nativeSrc":"4432:37:88","nodeType":"YulFunctionCall","src":"4432:37:88"},"nativeSrc":"4432:37:88","nodeType":"YulExpressionStatement","src":"4432:37:88"},{"nativeSrc":"4478:26:88","nodeType":"YulVariableDeclaration","src":"4478:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"4492:3:88","nodeType":"YulIdentifier","src":"4492:3:88"},{"name":"length","nativeSrc":"4497:6:88","nodeType":"YulIdentifier","src":"4497:6:88"}],"functionName":{"name":"add","nativeSrc":"4488:3:88","nodeType":"YulIdentifier","src":"4488:3:88"},"nativeSrc":"4488:16:88","nodeType":"YulFunctionCall","src":"4488:16:88"},"variables":[{"name":"_1","nativeSrc":"4482:2:88","nodeType":"YulTypedName","src":"4482:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"4520:2:88","nodeType":"YulIdentifier","src":"4520:2:88"},{"kind":"number","nativeSrc":"4524:1:88","nodeType":"YulLiteral","src":"4524:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4513:6:88","nodeType":"YulIdentifier","src":"4513:6:88"},"nativeSrc":"4513:13:88","nodeType":"YulFunctionCall","src":"4513:13:88"},"nativeSrc":"4513:13:88","nodeType":"YulExpressionStatement","src":"4513:13:88"},{"nativeSrc":"4535:9:88","nodeType":"YulAssignment","src":"4535:9:88","value":{"name":"_1","nativeSrc":"4542:2:88","nodeType":"YulIdentifier","src":"4542:2:88"},"variableNames":[{"name":"end","nativeSrc":"4535:3:88","nodeType":"YulIdentifier","src":"4535:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"4249:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4362:3:88","nodeType":"YulTypedName","src":"4362:3:88","type":""},{"name":"value0","nativeSrc":"4367:6:88","nodeType":"YulTypedName","src":"4367:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4378:3:88","nodeType":"YulTypedName","src":"4378:3:88","type":""}],"src":"4249:301:88"},{"body":{"nativeSrc":"4636:149:88","nodeType":"YulBlock","src":"4636:149:88","statements":[{"body":{"nativeSrc":"4682:16:88","nodeType":"YulBlock","src":"4682:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4691:1:88","nodeType":"YulLiteral","src":"4691:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4694:1:88","nodeType":"YulLiteral","src":"4694:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4684:6:88","nodeType":"YulIdentifier","src":"4684:6:88"},"nativeSrc":"4684:12:88","nodeType":"YulFunctionCall","src":"4684:12:88"},"nativeSrc":"4684:12:88","nodeType":"YulExpressionStatement","src":"4684:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4657:7:88","nodeType":"YulIdentifier","src":"4657:7:88"},{"name":"headStart","nativeSrc":"4666:9:88","nodeType":"YulIdentifier","src":"4666:9:88"}],"functionName":{"name":"sub","nativeSrc":"4653:3:88","nodeType":"YulIdentifier","src":"4653:3:88"},"nativeSrc":"4653:23:88","nodeType":"YulFunctionCall","src":"4653:23:88"},{"kind":"number","nativeSrc":"4678:2:88","nodeType":"YulLiteral","src":"4678:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4649:3:88","nodeType":"YulIdentifier","src":"4649:3:88"},"nativeSrc":"4649:32:88","nodeType":"YulFunctionCall","src":"4649:32:88"},"nativeSrc":"4646:52:88","nodeType":"YulIf","src":"4646:52:88"},{"nativeSrc":"4707:14:88","nodeType":"YulVariableDeclaration","src":"4707:14:88","value":{"kind":"number","nativeSrc":"4720:1:88","nodeType":"YulLiteral","src":"4720:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4711:5:88","nodeType":"YulTypedName","src":"4711:5:88","type":""}]},{"nativeSrc":"4730:25:88","nodeType":"YulAssignment","src":"4730:25:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4745:9:88","nodeType":"YulIdentifier","src":"4745:9:88"}],"functionName":{"name":"mload","nativeSrc":"4739:5:88","nodeType":"YulIdentifier","src":"4739:5:88"},"nativeSrc":"4739:16:88","nodeType":"YulFunctionCall","src":"4739:16:88"},"variableNames":[{"name":"value","nativeSrc":"4730:5:88","nodeType":"YulIdentifier","src":"4730:5:88"}]},{"nativeSrc":"4764:15:88","nodeType":"YulAssignment","src":"4764:15:88","value":{"name":"value","nativeSrc":"4774:5:88","nodeType":"YulIdentifier","src":"4774:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4764:6:88","nodeType":"YulIdentifier","src":"4764:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"4555:230:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4602:9:88","nodeType":"YulTypedName","src":"4602:9:88","type":""},{"name":"dataEnd","nativeSrc":"4613:7:88","nodeType":"YulTypedName","src":"4613:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4625:6:88","nodeType":"YulTypedName","src":"4625:6:88","type":""}],"src":"4555:230:88"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        mcopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_contract$_IERC20Metadata_$6066t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value2 := value\n        let value_1 := 0\n        value_1 := mload(add(headStart, 96))\n        value3 := value_1\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561000f575f5ffd5b5060405161219b38038061219b83398101604081905261002e91610220565b818484600361003d838261032f565b50600461004a828261032f565b5050505f5f61005e836100ad60201b60201c565b915091508161006e576012610070565b805b60ff1660a05250506001600160a01b031660805260055550505063ffffffff4216600160e01b026b033b2e3c9fd0803ce800000017600655610416565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b038716916100f3916103e9565b5f60405180830381855afa9150503d805f811461012b576040519150601f19603f3d011682016040523d82523d5f602084013e610130565b606091505b509150915081801561014457506020815110155b15610177575f8180602001905181019061015e91906103ff565b905060ff8111610175576001969095509350505050565b505b505f9485945092505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101a6575f5ffd5b81516001600160401b038111156101bf576101bf610183565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101ed576101ed610183565b604052818152838201602001851015610204575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f60808587031215610233575f5ffd5b84516001600160401b03811115610248575f5ffd5b61025487828801610197565b602087015190955090506001600160401b03811115610271575f5ffd5b61027d87828801610197565b604087015190945090506001600160a01b038116811461029b575f5ffd5b6060959095015193969295505050565b600181811c908216806102bf57607f821691505b6020821081036102dd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561032a57805f5260205f20601f840160051c810160208510156103085750805b601f840160051c820191505b81811015610327575f8155600101610314565b50505b505050565b81516001600160401b0381111561034857610348610183565b61035c8161035684546102ab565b846102e3565b6020601f82116001811461038e575f83156103775750848201515b5f19600385901b1c1916600184901b178455610327565b5f84815260208120601f198516915b828110156103bd578785015182556020948501946001909201910161039d565b50848210156103da57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f920191825250919050565b5f6020828403121561040f575f5ffd5b5051919050565b60805160a051611d486104535f395f61055501525f818161029001528181610c6501528181610cf80152818161105201526111120152611d485ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c806386de9e4f116100fe578063ba0876521161009e578063ce96cb771161006e578063ce96cb77146103ea578063d905777e146103fd578063dd62ed3e14610410578063ef8b30f7146103c4575f5ffd5b8063ba087652146103b1578063c63d75b6146102cd578063c6e6f592146103c4578063c7361ed2146103d7575f5ffd5b8063a457c2d7116100d9578063a457c2d714610365578063a9059cbb14610378578063b3d7f6b91461038b578063b460af941461039e575f5ffd5b806386de9e4f1461032757806394bf804d1461034a57806395d89b411461035d575f5ffd5b8063313ce567116101745780634cdad506116101445780634cdad506146102055780636e553f65146102e157806370a08231146102f45780637fb1ad621461031c575f5ffd5b8063313ce5671461026957806338d52e0f1461028357806339509351146102ba578063402d267d146102cd575f5ffd5b8063095ea7b3116101af578063095ea7b3146102185780630a28a4771461023b57806318160ddd1461024e57806323b872dd14610256575f5ffd5b806301e1d114146101d557806306fdde03146101f057806307a2d13a14610205575b5f5ffd5b6101dd610423565b6040519081526020015b60405180910390f35b6101f8610465565b6040516101e791906118c9565b6101dd6102133660046118fe565b6104f5565b61022b61022636600461192b565b610506565b60405190151581526020016101e7565b6101dd6102493660046118fe565b61051d565b6002546101dd565b61022b610264366004611953565b610529565b61027161054e565b60405160ff90911681526020016101e7565b6040516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020016101e7565b61022b6102c836600461192b565b610579565b6101dd6102db36600461198d565b505f1990565b6101dd6102ef3660046119a6565b61059a565b6101dd61030236600461198d565b6001600160a01b03165f9081526020819052604090205490565b60075460ff1661022b565b6103486103353660046119dd565b6007805460ff1916911515919091179055565b005b6101dd6103583660046119a6565b6105b3565b6101f86105cc565b61022b61037336600461192b565b6105db565b61022b61038636600461192b565b610660565b6101dd6103993660046118fe565b61066d565b6101dd6103ac3660046119f8565b610679565b6101dd6103bf3660046119f8565b6106f3565b6101dd6103d23660046118fe565b610765565b6103486103e53660046118fe565b610770565b6101dd6103f836600461198d565b6107a8565b6101dd61040b36600461198d565b6107ca565b6101dd61041e366004611a31565b6107e7565b6007545f9060ff16156104515760405162461bcd60e51b815260040161044890611a59565b60405180910390fd5b60055461046090600690610811565b905090565b60606003805461047490611a82565b80601f01602080910402602001604051908101604052809291908181526020018280546104a090611a82565b80156104eb5780601f106104c2576101008083540402835291602001916104eb565b820191905f5260205f20905b8154815290600101906020018083116104ce57829003601f168201915b5050505050905090565b5f610500825f610848565b92915050565b5f33610513818585610880565b5060019392505050565b5f6105008260016109a3565b5f336105368582856109d2565b610541858585610a4a565b60019150505b9392505050565b5f610460817f0000000000000000000000000000000000000000000000000000000000000000611ac8565b5f3361051381858561058b83836107e7565b6105959190611ae1565b610880565b5f5f6105a584610765565b905061054733848684610bec565b5f5f6105be8461066d565b905061054733848387610bec565b60606004805461047490611a82565b5f33816105e882866107e7565b9050838110156106485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610448565b6106558286868403610880565b506001949350505050565b5f33610513818585610a4a565b5f610500826001610848565b5f610683826107a8565b8411156106d25760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d6178006044820152606401610448565b5f6106dc8561051d565b90506106eb3385858885610c2d565b949350505050565b5f6106fd826107ca565b84111561074c5760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d61780000006044820152606401610448565b5f610756856104f5565b90506106eb3385858489610c2d565b5f610500825f6109a3565b5f81131561078d57600554610789906006908390610d9f565b5050565b61078961079982611af4565b60055460069190610e1c565b50565b6001600160a01b0381165f90815260208190526040812054610500905f610848565b6001600160a01b0381165f90815260208190526040812054610500565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f6105476108436108228585610ec8565b855461083d90600160701b90046001600160701b0316610f70565b90610f8a565b610fcc565b5f610547610854610423565b61085f906001611ae1565b61086a5f600a611bf1565b6002546108779190611ae1565b85919085610fef565b6001600160a01b0383166108e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610448565b6001600160a01b0382166109435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610448565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105476109b282600a611bf1565b6002546109bf9190611ae1565b6109c7610423565b610877906001611ae1565b5f6109dd84846107e7565b90505f198114610a445781811015610a375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610448565b610a448484848403610880565b50505050565b6001600160a01b038316610aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610448565b6001600160a01b038216610b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610448565b6001600160a01b0383165f9081526020819052604090205481811015610b875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610448565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a44565b60075460ff1615610c0f5760405162461bcd60e51b815260040161044890611a59565b600554610c20906006908490610d9f565b50610a448484848461104d565b60075460ff1615610c505760405162461bcd60e51b815260040161044890611a59565b600554610c61906006908490610e1c565b505f7f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610cc8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190611bff565b905082811015610d8a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166340c10f1930610d308487611c16565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015610d73575f5ffd5b505af1158015610d85573d5f5f3e3d5ffd5b505050505b610d9786868686866110df565b505050505050565b5f610daa848361119f565b5f610db5858561123c565b9050610dc081611260565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316610ded9190611c29565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550809150509392505050565b5f610e27848361119f565b5f610e32858561123c565b9050610e3d81611260565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316610e6a9190611c48565b82546101009290920a6001600160701b038181021990931691831602179091558654600160701b9004165f0390506106eb5784546dffffffffffffffffffffffffffff19166b033b2e3c9fd0803ce800000017855590509392505050565b81545f90429063ffffffff808316600160e01b9092041610610ef657505081546001600160701b0316610500565b83545f90610f1190600160e01b900463ffffffff1683611c67565b63ffffffff169050610f676b033b2e3c9fd0803ce80000006301e1338083610f3888610f70565b610f429190611c83565b610f4c9190611cae565b610f569190611ae1565b86546001600160701b031690610f8a565b95945050505050565b633b9aca008181029081048214610f85575f5ffd5b919050565b5f81156b019d971e4fe8401e740000001983900484111517610faa575f5ffd5b506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b633b9aca00808204908206631dcd65008110610fe9576001820191505b50919050565b5f5f610ffc8686866112cb565b9050600183600281111561101257611012611ccd565b14801561102e57505f848061102957611029611c9a565b868809115b15610f675761103e600182611ae1565b9695505050505050565b505050565b6110797f00000000000000000000000000000000000000000000000000000000000000008530856113b0565b611083838261141b565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d784846040516110d1929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614611103576111038386836109d2565b61110d83826114d8565b6111387f00000000000000000000000000000000000000000000000000000000000000008584611608565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051611190929190918252602082015260400190565b60405180910390a45050505050565b815463ffffffff428116600160e01b90920416106111bb575050565b8154600160701b90046001600160701b03165f036111f25781546001600160e01b0316600160e01b4263ffffffff16021782555050565b6112046111ff8383610ec8565b611638565b82546001600160701b03919091166dffffffffffffffffffffffffffff60701b90911617600160e01b4263ffffffff16021790915550565b81545f9061054790610843906001600160701b031661125a85610f70565b906116a0565b5f6001600160601b038211156112c75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610448565b5090565b5f80805f19858709858702925082811083820303915050805f03611302578382816112f8576112f8611c9a565b0492505050610547565b8084116113495760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610448565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610a449085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526116dd565b6001600160a01b0382166114715760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610448565b8060025f8282546114829190611ae1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166115385760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610448565b6001600160a01b0382165f90815260208190526040902054818110156115ab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610448565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b03831660248201526044810182905261104890849063a9059cbb60e01b906064016113e4565b5f6001600160701b038211156112c75760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663132206269747360c81b6064820152608401610448565b5f81156b033b2e3c9fd0803ce8000000600284041904841117156116c2575f5ffd5b506b033b2e3c9fd0803ce80000009190910260028204010490565b5f611731826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117b09092919063ffffffff16565b905080515f14806117515750808060200190518101906117519190611ce1565b6110485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610448565b60606106eb84845f85855f5f866001600160a01b031685876040516117d59190611cfc565b5f6040518083038185875af1925050503d805f811461180f576040519150601f19603f3d011682016040523d82523d5f602084013e611814565b606091505b509150915061182587838387611830565b979650505050505050565b6060831561189e5782515f03611897576001600160a01b0385163b6118975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610448565b50816106eb565b6106eb83838151156118b35781518083602001fd5b8060405162461bcd60e51b815260040161044891905b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561190e575f5ffd5b5035919050565b80356001600160a01b0381168114610f85575f5ffd5b5f5f6040838503121561193c575f5ffd5b61194583611915565b946020939093013593505050565b5f5f5f60608486031215611965575f5ffd5b61196e84611915565b925061197c60208501611915565b929592945050506040919091013590565b5f6020828403121561199d575f5ffd5b61054782611915565b5f5f604083850312156119b7575f5ffd5b823591506119c760208401611915565b90509250929050565b80151581146107a5575f5ffd5b5f602082840312156119ed575f5ffd5b8135610547816119d0565b5f5f5f60608486031215611a0a575f5ffd5b83359250611a1a60208501611915565b9150611a2860408501611915565b90509250925092565b5f5f60408385031215611a42575f5ffd5b611a4b83611915565b91506119c760208401611915565b6020808252600f908201526e2b30bab63a1034b990313937b5b2b760891b604082015260600190565b600181811c90821680611a9657607f821691505b602082108103610fe957634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b60ff818116838216019081111561050057610500611ab4565b8082018082111561050057610500611ab4565b5f600160ff1b8201611b0857611b08611ab4565b505f0390565b6001815b6001841115611b4957808504811115611b2d57611b2d611ab4565b6001841615611b3b57908102905b60019390931c928002611b12565b935093915050565b5f82611b5f57506001610500565b81611b6b57505f610500565b8160018114611b815760028114611b8b57611ba7565b6001915050610500565b60ff841115611b9c57611b9c611ab4565b50506001821b610500565b5060208310610133831016604e8410600b8410161715611bca575081810a610500565b611bd65f198484611b0e565b805f1904821115611be957611be9611ab4565b029392505050565b5f61054760ff841683611b51565b5f60208284031215611c0f575f5ffd5b5051919050565b8181038181111561050057610500611ab4565b6001600160701b03818116838216019081111561050057610500611ab4565b6001600160701b03828116828216039081111561050057610500611ab4565b63ffffffff828116828216039081111561050057610500611ab4565b808202811582820484141761050057610500611ab4565b634e487b7160e01b5f52601260045260245ffd5b5f82611cc857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215611cf1575f5ffd5b8151610547816119d0565b5f82518060208501845e5f92019182525091905056fea2646970667358221220dd185084742b6844ed5c6413558f38966341027d28833a2a8c7a6cbac1f78bd764736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x219B CODESIZE SUB DUP1 PUSH2 0x219B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x220 JUMP JUMPDEST DUP2 DUP5 DUP5 PUSH1 0x3 PUSH2 0x3D DUP4 DUP3 PUSH2 0x32F JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x4A DUP3 DUP3 PUSH2 0x32F JUMP JUMPDEST POP POP POP PUSH0 PUSH0 PUSH2 0x5E DUP4 PUSH2 0xAD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6E JUMPI PUSH1 0x12 PUSH2 0x70 JUMP JUMPDEST DUP1 JUMPDEST PUSH1 0xFF AND PUSH1 0xA0 MSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x5 SSTORE POP POP POP PUSH4 0xFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0xE0 SHL MUL PUSH12 0x33B2E3C9FD0803CE8000000 OR PUSH1 0x6 SSTORE PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP2 PUSH2 0xF3 SWAP2 PUSH2 0x3E9 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x12B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x130 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x144 JUMPI POP PUSH1 0x20 DUP2 MLOAD LT ISZERO JUMPDEST ISZERO PUSH2 0x177 JUMPI PUSH0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x3FF JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP2 GT PUSH2 0x175 JUMPI PUSH1 0x1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST POP JUMPDEST POP PUSH0 SWAP5 DUP6 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BF JUMPI PUSH2 0x1BF PUSH2 0x183 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1ED JUMPI PUSH2 0x1ED PUSH2 0x183 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x204 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD MCOPY PUSH0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x233 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x248 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x254 DUP8 DUP3 DUP9 ADD PUSH2 0x197 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x271 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x27D DUP8 DUP3 DUP9 ADD PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 DUP8 ADD MLOAD SWAP1 SWAP5 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x29B JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x60 SWAP6 SWAP1 SWAP6 ADD MLOAD SWAP4 SWAP7 SWAP3 SWAP6 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2BF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2DD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32A JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x308 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x327 JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x314 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x348 JUMPI PUSH2 0x348 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x35C DUP2 PUSH2 0x356 DUP5 SLOAD PUSH2 0x2AB JUMP JUMPDEST DUP5 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x38E JUMPI PUSH0 DUP4 ISZERO PUSH2 0x377 JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x327 JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3BD JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x39D JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x3DA JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1D48 PUSH2 0x453 PUSH0 CODECOPY PUSH0 PUSH2 0x555 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x290 ADD MSTORE DUP2 DUP2 PUSH2 0xC65 ADD MSTORE DUP2 DUP2 PUSH2 0xCF8 ADD MSTORE DUP2 DUP2 PUSH2 0x1052 ADD MSTORE PUSH2 0x1112 ADD MSTORE PUSH2 0x1D48 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1D1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86DE9E4F GT PUSH2 0xFE JUMPI DUP1 PUSH4 0xBA087652 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xCE96CB77 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xCE96CB77 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0xD905777E EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xEF8B30F7 EQ PUSH2 0x3C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xBA087652 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xC63D75B6 EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xC6E6F592 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xC7361ED2 EQ PUSH2 0x3D7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x378 JUMPI DUP1 PUSH4 0xB3D7F6B9 EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xB460AF94 EQ PUSH2 0x39E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x86DE9E4F EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x35D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x4CDAD506 GT PUSH2 0x144 JUMPI DUP1 PUSH4 0x4CDAD506 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x6E553F65 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x7FB1AD62 EQ PUSH2 0x31C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x402D267D EQ PUSH2 0x2CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x1AF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0xA28A477 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1E1D114 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F0 JUMPI DUP1 PUSH4 0x7A2D13A EQ PUSH2 0x205 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1DD PUSH2 0x423 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x18C9 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x22B PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x249 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x51D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DD JUMP JUMPDEST PUSH2 0x22B PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x1953 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH2 0x271 PUSH2 0x54E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH2 0x22B PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST POP PUSH0 NOT SWAP1 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x19A6 JUMP JUMPDEST PUSH2 0x59A JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x22B JUMP JUMPDEST PUSH2 0x348 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x19DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DD PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x19A6 JUMP JUMPDEST PUSH2 0x5B3 JUMP JUMPDEST PUSH2 0x1F8 PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x22B PUSH2 0x373 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH2 0x22B PUSH2 0x386 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x66D JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3AC CALLDATASIZE PUSH1 0x4 PUSH2 0x19F8 JUMP JUMPDEST PUSH2 0x679 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x19F8 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x765 JUMP JUMPDEST PUSH2 0x348 PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH2 0x7CA JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x1A31 JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x460 SWAP1 PUSH1 0x6 SWAP1 PUSH2 0x811 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x474 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4A0 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4EB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4C2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4EB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4CE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH0 PUSH2 0x848 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0x880 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH1 0x1 PUSH2 0x9A3 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x536 DUP6 DUP3 DUP6 PUSH2 0x9D2 JUMP JUMPDEST PUSH2 0x541 DUP6 DUP6 DUP6 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x460 DUP2 PUSH32 0x0 PUSH2 0x1AC8 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0x58B DUP4 DUP4 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x595 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x880 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x5A5 DUP5 PUSH2 0x765 JUMP JUMPDEST SWAP1 POP PUSH2 0x547 CALLER DUP5 DUP7 DUP5 PUSH2 0xBEC JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x5BE DUP5 PUSH2 0x66D JUMP JUMPDEST SWAP1 POP PUSH2 0x547 CALLER DUP5 DUP4 DUP8 PUSH2 0xBEC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x474 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x5E8 DUP3 DUP7 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH2 0x655 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x880 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0xA4A JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH1 0x1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH2 0x683 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x6D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243343632363A207769746864726177206D6F7265207468616E206D617800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 PUSH2 0x6DC DUP6 PUSH2 0x51D JUMP JUMPDEST SWAP1 POP PUSH2 0x6EB CALLER DUP6 DUP6 DUP9 DUP6 PUSH2 0xC2D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FD DUP3 PUSH2 0x7CA JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243343632363A2072656465656D206D6F7265207468616E206D6178000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 PUSH2 0x756 DUP6 PUSH2 0x4F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x6EB CALLER DUP6 DUP6 DUP5 DUP10 PUSH2 0xC2D JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH0 PUSH2 0x9A3 JUMP JUMPDEST PUSH0 DUP2 SGT ISZERO PUSH2 0x78D JUMPI PUSH1 0x5 SLOAD PUSH2 0x789 SWAP1 PUSH1 0x6 SWAP1 DUP4 SWAP1 PUSH2 0xD9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x789 PUSH2 0x799 DUP3 PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x6 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x500 SWAP1 PUSH0 PUSH2 0x848 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x843 PUSH2 0x822 DUP6 DUP6 PUSH2 0xEC8 JUMP JUMPDEST DUP6 SLOAD PUSH2 0x83D SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xF70 JUMP JUMPDEST SWAP1 PUSH2 0xF8A JUMP JUMPDEST PUSH2 0xFCC JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x854 PUSH2 0x423 JUMP JUMPDEST PUSH2 0x85F SWAP1 PUSH1 0x1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x86A PUSH0 PUSH1 0xA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST DUP6 SWAP2 SWAP1 DUP6 PUSH2 0xFEF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x9B2 DUP3 PUSH1 0xA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x9BF SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x9C7 PUSH2 0x423 JUMP JUMPDEST PUSH2 0x877 SWAP1 PUSH1 0x1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH0 PUSH2 0x9DD DUP5 DUP5 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0xA44 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xA37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH2 0xA44 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x880 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xAAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xB87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA44 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xC20 SWAP1 PUSH1 0x6 SWAP1 DUP5 SWAP1 PUSH2 0xD9F JUMP JUMPDEST POP PUSH2 0xA44 DUP5 DUP5 DUP5 DUP5 PUSH2 0x104D JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xC61 SWAP1 PUSH1 0x6 SWAP1 DUP5 SWAP1 PUSH2 0xE1C JUMP JUMPDEST POP PUSH0 PUSH32 0x0 PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0xD8A JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40C10F19 ADDRESS PUSH2 0xD30 DUP5 DUP8 PUSH2 0x1C16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD73 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0xD97 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x10DF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDAA DUP5 DUP4 PUSH2 0x119F JUMP JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP6 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH2 0xDC0 DUP2 PUSH2 0x1260 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xDED SWAP2 SWAP1 PUSH2 0x1C29 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE27 DUP5 DUP4 PUSH2 0x119F JUMP JUMPDEST PUSH0 PUSH2 0xE32 DUP6 DUP6 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH2 0xE3D DUP2 PUSH2 0x1260 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xE6A SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE DUP7 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV AND PUSH0 SUB SWAP1 POP PUSH2 0x6EB JUMPI DUP5 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0x33B2E3C9FD0803CE8000000 OR DUP6 SSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF DUP1 DUP4 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0xEF6 JUMPI POP POP DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x500 JUMP JUMPDEST DUP4 SLOAD PUSH0 SWAP1 PUSH2 0xF11 SWAP1 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x1C67 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH2 0xF67 PUSH12 0x33B2E3C9FD0803CE8000000 PUSH4 0x1E13380 DUP4 PUSH2 0xF38 DUP9 PUSH2 0xF70 JUMP JUMPDEST PUSH2 0xF42 SWAP2 SWAP1 PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0xF4C SWAP2 SWAP1 PUSH2 0x1CAE JUMP JUMPDEST PUSH2 0xF56 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST DUP7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 PUSH2 0xF8A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP2 DUP2 MUL SWAP1 DUP2 DIV DUP3 EQ PUSH2 0xF85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x19D971E4FE8401E74000000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0xFAA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH12 0x33B2E3C9FD0803CE8000000 SWAP2 MUL PUSH12 0x19D971E4FE8401E74000000 ADD DIV SWAP1 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP1 DUP3 DIV SWAP1 DUP3 MOD PUSH4 0x1DCD6500 DUP2 LT PUSH2 0xFE9 JUMPI PUSH1 0x1 DUP3 ADD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0xFFC DUP7 DUP7 DUP7 PUSH2 0x12CB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1012 PUSH2 0x1CCD JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x102E JUMPI POP PUSH0 DUP5 DUP1 PUSH2 0x1029 JUMPI PUSH2 0x1029 PUSH2 0x1C9A JUMP JUMPDEST DUP7 DUP9 MULMOD GT JUMPDEST ISZERO PUSH2 0xF67 JUMPI PUSH2 0x103E PUSH1 0x1 DUP3 PUSH2 0x1AE1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1079 PUSH32 0x0 DUP6 ADDRESS DUP6 PUSH2 0x13B0 JUMP JUMPDEST PUSH2 0x1083 DUP4 DUP3 PUSH2 0x141B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDCBC1C05240F31FF3AD067EF1EE35CE4997762752E3A095284754544F4C709D7 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x10D1 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1103 JUMPI PUSH2 0x1103 DUP4 DUP7 DUP4 PUSH2 0x9D2 JUMP JUMPDEST PUSH2 0x110D DUP4 DUP3 PUSH2 0x14D8 JUMP JUMPDEST PUSH2 0x1138 PUSH32 0x0 DUP6 DUP5 PUSH2 0x1608 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFBDE797D201C681B91056529119E0B02407C7BB96A4A2C75C01FC9667232C8DB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1190 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x11BB JUMPI POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x11F2 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR DUP3 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1204 PUSH2 0x11FF DUP4 DUP4 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x1638 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL SWAP1 SWAP2 AND OR PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 PUSH2 0x547 SWAP1 PUSH2 0x843 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x125A DUP6 PUSH2 0xF70 JUMP JUMPDEST SWAP1 PUSH2 0x16A0 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 GT ISZERO PUSH2 0x12C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH0 NOT DUP6 DUP8 MULMOD DUP6 DUP8 MUL SWAP3 POP DUP3 DUP2 LT DUP4 DUP3 SUB SUB SWAP2 POP POP DUP1 PUSH0 SUB PUSH2 0x1302 JUMPI DUP4 DUP3 DUP2 PUSH2 0x12F8 JUMPI PUSH2 0x12F8 PUSH2 0x1C9A JUMP JUMPDEST DIV SWAP3 POP POP POP PUSH2 0x547 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x1349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4D6174683A206D756C446976206F766572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x2 PUSH1 0x1 DUP8 NOT DUP2 ADD DUP9 AND SWAP8 DUP9 SWAP1 DIV PUSH1 0x3 DUP2 MUL DUP4 XOR DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL SWAP1 DUP2 MUL SWAP1 SWAP3 SUB SWAP1 SWAP2 MUL PUSH0 DUP9 SWAP1 SUB DUP9 SWAP1 DIV SWAP1 SWAP2 ADD DUP6 DUP4 GT SWAP1 SWAP5 SUB SWAP4 SWAP1 SWAP4 MUL SWAP4 SUB SWAP5 SWAP1 SWAP5 DIV SWAP2 SWAP1 SWAP2 OR MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0xA44 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1482 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1538 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x15AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1048 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x13E4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 GT ISZERO PUSH2 0x12C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x31322062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x33B2E3C9FD0803CE8000000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x16C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH12 0x33B2E3C9FD0803CE8000000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1731 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x17B0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x1751 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1751 SWAP2 SWAP1 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x1048 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6EB DUP5 DUP5 PUSH0 DUP6 DUP6 PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP2 SWAP1 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x180F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1814 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1825 DUP8 DUP4 DUP4 DUP8 PUSH2 0x1830 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x189E JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x1897 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST POP DUP2 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x6EB DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x18B3 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP2 SWAP1 JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x193C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1945 DUP4 PUSH2 0x1915 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1965 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x196E DUP5 PUSH2 0x1915 JUMP JUMPDEST SWAP3 POP PUSH2 0x197C PUSH1 0x20 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x199D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x547 DUP3 PUSH2 0x1915 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x19C7 PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x547 DUP2 PUSH2 0x19D0 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A0A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0x1A1A PUSH1 0x20 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A28 PUSH1 0x40 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A42 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1A4B DUP4 PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP PUSH2 0x19C7 PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xF SWAP1 DUP3 ADD MSTORE PUSH15 0x2B30BAB63A1034B990313937B5B2B7 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1A96 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x1B08 JUMPI PUSH2 0x1B08 PUSH2 0x1AB4 JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x1B49 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2D PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x1B3B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x1B12 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1B5F JUMPI POP PUSH1 0x1 PUSH2 0x500 JUMP JUMPDEST DUP2 PUSH2 0x1B6B JUMPI POP PUSH0 PUSH2 0x500 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1B81 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1B8B JUMPI PUSH2 0x1BA7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x500 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1B9C JUMPI PUSH2 0x1B9C PUSH2 0x1AB4 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x500 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1BCA JUMPI POP DUP2 DUP2 EXP PUSH2 0x500 JUMP JUMPDEST PUSH2 0x1BD6 PUSH0 NOT DUP5 DUP5 PUSH2 0x1B0E JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1BE9 JUMPI PUSH2 0x1BE9 PUSH2 0x1AB4 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x1B51 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x1CC8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x547 DUP2 PUSH2 0x19D0 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD XOR POP DUP5 PUSH21 0x2B6844ED5C6413558F38966341027D28833A2A8C7A PUSH13 0xBAC1F78BD764736F6C63430008 SHR STOP CALLER ","sourceMap":"414:2015:79:-:0;;;611:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;763:6;739:5;746:7;2046:5:30;:13;739:5:79;2046::30;:13;:::i;:::-;-1:-1:-1;2069:7:30;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;3434:12:32;3448:19;3471:28;3492:6;3471:20;;;:28;;:::i;:::-;3433:66;;;;3531:7;:28;;3557:2;3531:28;;;3541:13;3531:28;3509:50;;;;-1:-1:-1;;;;;;;3569:15:32;;;777:13:79::2;:29:::0;-1:-1:-1;;;1957:49:63;1990:15;1957:49;-1:-1:-1;;;1957:49:63;628:4;1957:49;812:12:79::2;1957:49:63::0;414:2015:79;;3734:546:32;3911:56;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3911:56:32;-1:-1:-1;;;3911:56:32;;;3871:106;;3801:4;;;;;;;;-1:-1:-1;;;;;3871:26:32;;;:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3824:153;;;;3991:7;:39;;;;;4028:2;4002:15;:22;:28;;3991:39;3987:260;;;4046:24;4084:15;4073:38;;;;;;;;;;;;:::i;:::-;4046:65;-1:-1:-1;4149:15:32;4129:35;;4125:112;;4192:4;;4204:16;;-1:-1:-1;3734:546:32;-1:-1:-1;;;;3734:546:32:o;4125:112::-;4032:215;3987:260;-1:-1:-1;4264:5:32;;;;-1:-1:-1;3734:546:32;-1:-1:-1;;;3734:546:32:o;14:127:88:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:723;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;298:13;;-1:-1:-1;;;;;323:30:88;;320:56;;;356:18;;:::i;:::-;405:2;399:9;497:2;459:17;;-1:-1:-1;;455:31:88;;;488:2;451:40;447:54;435:67;;-1:-1:-1;;;;;517:34:88;;553:22;;;514:62;511:88;;;579:18;;:::i;:::-;615:2;608:22;639;;;680:19;;;701:4;676:30;673:39;-1:-1:-1;670:59:88;;;725:1;722;715:12;670:59;782:6;775:4;767:6;763:17;756:4;748:6;744:17;738:51;837:1;809:19;;;830:4;805:30;798:41;;;;813:6;146:723;-1:-1:-1;;;146:723:88:o;874:861::-;1014:6;1022;1030;1038;1091:3;1079:9;1070:7;1066:23;1062:33;1059:53;;;1108:1;1105;1098:12;1059:53;1135:16;;-1:-1:-1;;;;;1163:30:88;;1160:50;;;1206:1;1203;1196:12;1160:50;1229:61;1282:7;1273:6;1262:9;1258:22;1229:61;:::i;:::-;1336:2;1321:18;;1315:25;1219:71;;-1:-1:-1;1315:25:88;-1:-1:-1;;;;;;1352:32:88;;1349:52;;;1397:1;1394;1387:12;1349:52;1420:63;1475:7;1464:8;1453:9;1449:24;1420:63;:::i;:::-;1526:2;1511:18;;1505:25;1410:73;;-1:-1:-1;1505:25:88;-1:-1:-1;;;;;;1559:31:88;;1549:42;;1539:70;;1605:1;1602;1595:12;1539:70;1699:2;1684:18;;;;1678:25;874:861;;;;-1:-1:-1;;;874:861:88:o;1740:380::-;1819:1;1815:12;;;;1862;;;1883:61;;1937:4;1929:6;1925:17;1915:27;;1883:61;1990:2;1982:6;1979:14;1959:18;1956:38;1953:161;;2036:10;2031:3;2027:20;2024:1;2017:31;2071:4;2068:1;2061:15;2099:4;2096:1;2089:15;1953:161;;1740:380;;;:::o;2251:518::-;2353:2;2348:3;2345:11;2342:421;;;2389:5;2386:1;2379:16;2433:4;2430:1;2420:18;2503:2;2491:10;2487:19;2484:1;2480:27;2474:4;2470:38;2539:4;2527:10;2524:20;2521:47;;;-1:-1:-1;2562:4:88;2521:47;2617:2;2612:3;2608:12;2605:1;2601:20;2595:4;2591:31;2581:41;;2672:81;2690:2;2683:5;2680:13;2672:81;;;2749:1;2735:16;;2716:1;2705:13;2672:81;;;2676:3;;2342:421;2251:518;;;:::o;2945:1299::-;3065:10;;-1:-1:-1;;;;;3087:30:88;;3084:56;;;3120:18;;:::i;:::-;3149:97;3239:6;3199:38;3231:4;3225:11;3199:38;:::i;:::-;3193:4;3149:97;:::i;:::-;3295:4;3326:2;3315:14;;3343:1;3338:649;;;;4031:1;4048:6;4045:89;;;-1:-1:-1;4100:19:88;;;4094:26;4045:89;-1:-1:-1;;2902:1:88;2898:11;;;2894:24;2890:29;2880:40;2926:1;2922:11;;;2877:57;4147:81;;3308:930;;3338:649;2198:1;2191:14;;;2235:4;2222:18;;-1:-1:-1;;3374:20:88;;;3492:222;3506:7;3503:1;3500:14;3492:222;;;3588:19;;;3582:26;3567:42;;3695:4;3680:20;;;;3648:1;3636:14;;;;3522:12;3492:222;;;3496:3;3742:6;3733:7;3730:19;3727:201;;;3803:19;;;3797:26;-1:-1:-1;;3886:1:88;3882:14;;;3898:3;3878:24;3874:37;3870:42;3855:58;3840:74;;3727:201;-1:-1:-1;;;;3974:1:88;3958:14;;;3954:22;3941:36;;-1:-1:-1;2945:1299:88:o;4249:301::-;4378:3;4416:6;4410:13;4462:6;4455:4;4447:6;4443:17;4438:3;4432:37;4524:1;4488:16;;4513:13;;;-1:-1:-1;4488:16:88;4249:301;-1:-1:-1;4249:301:88:o;4555:230::-;4625:6;4678:2;4666:9;4657:7;4653:23;4649:32;4646:52;;;4694:1;4691;4684:12;4646:52;-1:-1:-1;4739:16:88;;4555:230;-1:-1:-1;4555:230:88:o;:::-;414:2015:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_5335":{"entryPoint":null,"id":5335,"parameterSlots":3,"returnSlots":0},"@_approve_5270":{"entryPoint":2176,"id":5270,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_5324":{"entryPoint":4168,"id":5324,"parameterSlots":3,"returnSlots":0},"@_burn_5225":{"entryPoint":5336,"id":5225,"parameterSlots":2,"returnSlots":0},"@_callOptionalReturn_6429":{"entryPoint":5853,"id":6429,"parameterSlots":2,"returnSlots":0},"@_convertToAssets_5948":{"entryPoint":2120,"id":5948,"parameterSlots":2,"returnSlots":1},"@_convertToShares_5920":{"entryPoint":2467,"id":5920,"parameterSlots":2,"returnSlots":1},"@_decimalsOffset_6040":{"entryPoint":null,"id":6040,"parameterSlots":0,"returnSlots":1},"@_deposit_24281":{"entryPoint":3052,"id":24281,"parameterSlots":4,"returnSlots":0},"@_deposit_5985":{"entryPoint":4173,"id":5985,"parameterSlots":4,"returnSlots":0},"@_mint_5153":{"entryPoint":5147,"id":5153,"parameterSlots":2,"returnSlots":0},"@_msgSender_6954":{"entryPoint":null,"id":6954,"parameterSlots":0,"returnSlots":1},"@_revert_6941":{"entryPoint":null,"id":6941,"parameterSlots":2,"returnSlots":0},"@_spendAllowance_5313":{"entryPoint":2514,"id":5313,"parameterSlots":3,"returnSlots":0},"@_transfer_5096":{"entryPoint":2634,"id":5096,"parameterSlots":3,"returnSlots":0},"@_withdraw_24352":{"entryPoint":3117,"id":24352,"parameterSlots":5,"returnSlots":0},"@_withdraw_6032":{"entryPoint":4319,"id":6032,"parameterSlots":5,"returnSlots":0},"@add_22719":{"entryPoint":3487,"id":22719,"parameterSlots":3,"returnSlots":1},"@allowance_4891":{"entryPoint":2023,"id":4891,"parameterSlots":2,"returnSlots":1},"@approve_4916":{"entryPoint":1286,"id":4916,"parameterSlots":2,"returnSlots":1},"@asset_5555":{"entryPoint":null,"id":5555,"parameterSlots":0,"returnSlots":1},"@balanceOf_4848":{"entryPoint":null,"id":4848,"parameterSlots":1,"returnSlots":1},"@broken_24403":{"entryPoint":null,"id":24403,"parameterSlots":0,"returnSlots":1},"@convertToAssets_5605":{"entryPoint":1269,"id":5605,"parameterSlots":1,"returnSlots":1},"@convertToShares_5588":{"entryPoint":1893,"id":5588,"parameterSlots":1,"returnSlots":1},"@decimals_5542":{"entryPoint":1358,"id":5542,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5019":{"entryPoint":1499,"id":5019,"parameterSlots":2,"returnSlots":1},"@deposit_5775":{"entryPoint":1434,"id":5775,"parameterSlots":2,"returnSlots":1},"@discreteEarning_24385":{"entryPoint":1904,"id":24385,"parameterSlots":1,"returnSlots":0},"@functionCallWithValue_6766":{"entryPoint":null,"id":6766,"parameterSlots":4,"returnSlots":1},"@functionCall_6702":{"entryPoint":6064,"id":6702,"parameterSlots":3,"returnSlots":1},"@getScale_22579":{"entryPoint":3784,"id":22579,"parameterSlots":2,"returnSlots":1},"@getScaledAmount_22606":{"entryPoint":2065,"id":22606,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_4978":{"entryPoint":1401,"id":4978,"parameterSlots":2,"returnSlots":1},"@isContract_6630":{"entryPoint":null,"id":6630,"parameterSlots":1,"returnSlots":1},"@maxDeposit_5621":{"entryPoint":null,"id":5621,"parameterSlots":1,"returnSlots":1},"@maxMint_5637":{"entryPoint":null,"id":5637,"parameterSlots":1,"returnSlots":1},"@maxRedeem_5670":{"entryPoint":1994,"id":5670,"parameterSlots":1,"returnSlots":1},"@maxWithdraw_5656":{"entryPoint":1960,"id":5656,"parameterSlots":1,"returnSlots":1},"@mint_5812":{"entryPoint":1459,"id":5812,"parameterSlots":2,"returnSlots":1},"@mulDiv_8097":{"entryPoint":4811,"id":8097,"parameterSlots":3,"returnSlots":1},"@mulDiv_8141":{"entryPoint":4079,"id":8141,"parameterSlots":4,"returnSlots":1},"@name_4804":{"entryPoint":1125,"id":4804,"parameterSlots":0,"returnSlots":1},"@previewDeposit_5687":{"entryPoint":null,"id":5687,"parameterSlots":1,"returnSlots":1},"@previewMint_5704":{"entryPoint":1645,"id":5704,"parameterSlots":1,"returnSlots":1},"@previewRedeem_5738":{"entryPoint":null,"id":5738,"parameterSlots":1,"returnSlots":1},"@previewWithdraw_5721":{"entryPoint":1309,"id":5721,"parameterSlots":1,"returnSlots":1},"@rayDiv_23222":{"entryPoint":5792,"id":23222,"parameterSlots":2,"returnSlots":1},"@rayMul_23210":{"entryPoint":3978,"id":23210,"parameterSlots":2,"returnSlots":1},"@rayToWad_23232":{"entryPoint":4044,"id":23232,"parameterSlots":1,"returnSlots":1},"@redeem_5892":{"entryPoint":1779,"id":5892,"parameterSlots":3,"returnSlots":1},"@safeTransferFrom_6162":{"entryPoint":5040,"id":6162,"parameterSlots":4,"returnSlots":0},"@safeTransfer_6135":{"entryPoint":5640,"id":6135,"parameterSlots":3,"returnSlots":0},"@scaleAmount_22659":{"entryPoint":4668,"id":22659,"parameterSlots":2,"returnSlots":1},"@setBroken_24395":{"entryPoint":null,"id":24395,"parameterSlots":1,"returnSlots":0},"@sub_22766":{"entryPoint":3612,"id":22766,"parameterSlots":3,"returnSlots":1},"@symbol_4814":{"entryPoint":1484,"id":4814,"parameterSlots":0,"returnSlots":1},"@toUint112_9202":{"entryPoint":5688,"id":9202,"parameterSlots":1,"returnSlots":1},"@toUint96_9252":{"entryPoint":4704,"id":9252,"parameterSlots":1,"returnSlots":1},"@totalAssets_24245":{"entryPoint":1059,"id":24245,"parameterSlots":0,"returnSlots":1},"@totalSupply_4834":{"entryPoint":null,"id":4834,"parameterSlots":0,"returnSlots":1},"@transferFrom_4949":{"entryPoint":1321,"id":4949,"parameterSlots":3,"returnSlots":1},"@transfer_4873":{"entryPoint":1632,"id":4873,"parameterSlots":2,"returnSlots":1},"@updateScale_22521":{"entryPoint":4511,"id":22521,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_6897":{"entryPoint":6192,"id":6897,"parameterSlots":4,"returnSlots":1},"@wadToRay_23242":{"entryPoint":3952,"id":23242,"parameterSlots":1,"returnSlots":1},"@withdraw_5852":{"entryPoint":1657,"id":5852,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":6421,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6541,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":6705,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":6483,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":6443,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":6621,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":7393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_int256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6398,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":6566,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_addresst_address":{"entryPoint":6648,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7420,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6345,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3cf75848883fee8cd3a46e6e14bbbd331bc8d0caaef08fbe607c62e5fba35c6d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d33bd82b6352ef75960e453c6162657943d72f718df3c8a607eeb1427f0aa42__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_942dfdb1d5d5ae526782b9f85d1470d0ba794a7c694ad01b5b8d1ba2521ed1a1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a4a897ed07dc1191e15e1ac5726d86067d87f89bebeded2b310bdf1e25a3dac3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6745,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint112":{"entryPoint":7209,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6881,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":6856,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":7342,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":6926,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":7153,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":6993,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7299,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint112":{"entryPoint":7240,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7190,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint32":{"entryPoint":7271,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":6786,"id":null,"parameterSlots":1,"returnSlots":1},"negate_t_int256":{"entryPoint":6900,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6836,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":7322,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":7373,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":6608,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:17525:88","nodeType":"YulBlock","src":"0:17525:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"115:76:88","nodeType":"YulBlock","src":"115:76:88","statements":[{"nativeSrc":"125:26:88","nodeType":"YulAssignment","src":"125:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:88","nodeType":"YulIdentifier","src":"137:9:88"},{"kind":"number","nativeSrc":"148:2:88","nodeType":"YulLiteral","src":"148:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:18:88","nodeType":"YulFunctionCall","src":"133:18:88"},"variableNames":[{"name":"tail","nativeSrc":"125:4:88","nodeType":"YulIdentifier","src":"125:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:88","nodeType":"YulIdentifier","src":"167:9:88"},{"name":"value0","nativeSrc":"178:6:88","nodeType":"YulIdentifier","src":"178:6:88"}],"functionName":{"name":"mstore","nativeSrc":"160:6:88","nodeType":"YulIdentifier","src":"160:6:88"},"nativeSrc":"160:25:88","nodeType":"YulFunctionCall","src":"160:25:88"},"nativeSrc":"160:25:88","nodeType":"YulExpressionStatement","src":"160:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:88","nodeType":"YulTypedName","src":"84:9:88","type":""},{"name":"value0","nativeSrc":"95:6:88","nodeType":"YulTypedName","src":"95:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:88","nodeType":"YulTypedName","src":"106:4:88","type":""}],"src":"14:177:88"},{"body":{"nativeSrc":"317:297:88","nodeType":"YulBlock","src":"317:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"334:9:88","nodeType":"YulIdentifier","src":"334:9:88"},{"kind":"number","nativeSrc":"345:2:88","nodeType":"YulLiteral","src":"345:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"327:6:88","nodeType":"YulIdentifier","src":"327:6:88"},"nativeSrc":"327:21:88","nodeType":"YulFunctionCall","src":"327:21:88"},"nativeSrc":"327:21:88","nodeType":"YulExpressionStatement","src":"327:21:88"},{"nativeSrc":"357:27:88","nodeType":"YulVariableDeclaration","src":"357:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"377:6:88","nodeType":"YulIdentifier","src":"377:6:88"}],"functionName":{"name":"mload","nativeSrc":"371:5:88","nodeType":"YulIdentifier","src":"371:5:88"},"nativeSrc":"371:13:88","nodeType":"YulFunctionCall","src":"371:13:88"},"variables":[{"name":"length","nativeSrc":"361:6:88","nodeType":"YulTypedName","src":"361:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"404:9:88","nodeType":"YulIdentifier","src":"404:9:88"},{"kind":"number","nativeSrc":"415:2:88","nodeType":"YulLiteral","src":"415:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"400:3:88","nodeType":"YulIdentifier","src":"400:3:88"},"nativeSrc":"400:18:88","nodeType":"YulFunctionCall","src":"400:18:88"},{"name":"length","nativeSrc":"420:6:88","nodeType":"YulIdentifier","src":"420:6:88"}],"functionName":{"name":"mstore","nativeSrc":"393:6:88","nodeType":"YulIdentifier","src":"393:6:88"},"nativeSrc":"393:34:88","nodeType":"YulFunctionCall","src":"393:34:88"},"nativeSrc":"393:34:88","nodeType":"YulExpressionStatement","src":"393:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"446:9:88","nodeType":"YulIdentifier","src":"446:9:88"},{"kind":"number","nativeSrc":"457:2:88","nodeType":"YulLiteral","src":"457:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"442:3:88","nodeType":"YulIdentifier","src":"442:3:88"},"nativeSrc":"442:18:88","nodeType":"YulFunctionCall","src":"442:18:88"},{"arguments":[{"name":"value0","nativeSrc":"466:6:88","nodeType":"YulIdentifier","src":"466:6:88"},{"kind":"number","nativeSrc":"474:2:88","nodeType":"YulLiteral","src":"474:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"462:3:88","nodeType":"YulIdentifier","src":"462:3:88"},"nativeSrc":"462:15:88","nodeType":"YulFunctionCall","src":"462:15:88"},{"name":"length","nativeSrc":"479:6:88","nodeType":"YulIdentifier","src":"479:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"436:5:88","nodeType":"YulIdentifier","src":"436:5:88"},"nativeSrc":"436:50:88","nodeType":"YulFunctionCall","src":"436:50:88"},"nativeSrc":"436:50:88","nodeType":"YulExpressionStatement","src":"436:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"510:9:88","nodeType":"YulIdentifier","src":"510:9:88"},{"name":"length","nativeSrc":"521:6:88","nodeType":"YulIdentifier","src":"521:6:88"}],"functionName":{"name":"add","nativeSrc":"506:3:88","nodeType":"YulIdentifier","src":"506:3:88"},"nativeSrc":"506:22:88","nodeType":"YulFunctionCall","src":"506:22:88"},{"kind":"number","nativeSrc":"530:2:88","nodeType":"YulLiteral","src":"530:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"502:3:88","nodeType":"YulIdentifier","src":"502:3:88"},"nativeSrc":"502:31:88","nodeType":"YulFunctionCall","src":"502:31:88"},{"kind":"number","nativeSrc":"535:1:88","nodeType":"YulLiteral","src":"535:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"495:6:88","nodeType":"YulIdentifier","src":"495:6:88"},"nativeSrc":"495:42:88","nodeType":"YulFunctionCall","src":"495:42:88"},"nativeSrc":"495:42:88","nodeType":"YulExpressionStatement","src":"495:42:88"},{"nativeSrc":"546:62:88","nodeType":"YulAssignment","src":"546:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"562:9:88","nodeType":"YulIdentifier","src":"562:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"581:6:88","nodeType":"YulIdentifier","src":"581:6:88"},{"kind":"number","nativeSrc":"589:2:88","nodeType":"YulLiteral","src":"589:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"577:3:88","nodeType":"YulIdentifier","src":"577:3:88"},"nativeSrc":"577:15:88","nodeType":"YulFunctionCall","src":"577:15:88"},{"arguments":[{"kind":"number","nativeSrc":"598:2:88","nodeType":"YulLiteral","src":"598:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"594:3:88","nodeType":"YulIdentifier","src":"594:3:88"},"nativeSrc":"594:7:88","nodeType":"YulFunctionCall","src":"594:7:88"}],"functionName":{"name":"and","nativeSrc":"573:3:88","nodeType":"YulIdentifier","src":"573:3:88"},"nativeSrc":"573:29:88","nodeType":"YulFunctionCall","src":"573:29:88"}],"functionName":{"name":"add","nativeSrc":"558:3:88","nodeType":"YulIdentifier","src":"558:3:88"},"nativeSrc":"558:45:88","nodeType":"YulFunctionCall","src":"558:45:88"},{"kind":"number","nativeSrc":"605:2:88","nodeType":"YulLiteral","src":"605:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"554:3:88","nodeType":"YulIdentifier","src":"554:3:88"},"nativeSrc":"554:54:88","nodeType":"YulFunctionCall","src":"554:54:88"},"variableNames":[{"name":"tail","nativeSrc":"546:4:88","nodeType":"YulIdentifier","src":"546:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"196:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"286:9:88","nodeType":"YulTypedName","src":"286:9:88","type":""},{"name":"value0","nativeSrc":"297:6:88","nodeType":"YulTypedName","src":"297:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"308:4:88","nodeType":"YulTypedName","src":"308:4:88","type":""}],"src":"196:418:88"},{"body":{"nativeSrc":"689:156:88","nodeType":"YulBlock","src":"689:156:88","statements":[{"body":{"nativeSrc":"735:16:88","nodeType":"YulBlock","src":"735:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"744:1:88","nodeType":"YulLiteral","src":"744:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"747:1:88","nodeType":"YulLiteral","src":"747:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"737:6:88","nodeType":"YulIdentifier","src":"737:6:88"},"nativeSrc":"737:12:88","nodeType":"YulFunctionCall","src":"737:12:88"},"nativeSrc":"737:12:88","nodeType":"YulExpressionStatement","src":"737:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"710:7:88","nodeType":"YulIdentifier","src":"710:7:88"},{"name":"headStart","nativeSrc":"719:9:88","nodeType":"YulIdentifier","src":"719:9:88"}],"functionName":{"name":"sub","nativeSrc":"706:3:88","nodeType":"YulIdentifier","src":"706:3:88"},"nativeSrc":"706:23:88","nodeType":"YulFunctionCall","src":"706:23:88"},{"kind":"number","nativeSrc":"731:2:88","nodeType":"YulLiteral","src":"731:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"702:3:88","nodeType":"YulIdentifier","src":"702:3:88"},"nativeSrc":"702:32:88","nodeType":"YulFunctionCall","src":"702:32:88"},"nativeSrc":"699:52:88","nodeType":"YulIf","src":"699:52:88"},{"nativeSrc":"760:14:88","nodeType":"YulVariableDeclaration","src":"760:14:88","value":{"kind":"number","nativeSrc":"773:1:88","nodeType":"YulLiteral","src":"773:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"764:5:88","nodeType":"YulTypedName","src":"764:5:88","type":""}]},{"nativeSrc":"783:32:88","nodeType":"YulAssignment","src":"783:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"805:9:88","nodeType":"YulIdentifier","src":"805:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"792:12:88","nodeType":"YulIdentifier","src":"792:12:88"},"nativeSrc":"792:23:88","nodeType":"YulFunctionCall","src":"792:23:88"},"variableNames":[{"name":"value","nativeSrc":"783:5:88","nodeType":"YulIdentifier","src":"783:5:88"}]},{"nativeSrc":"824:15:88","nodeType":"YulAssignment","src":"824:15:88","value":{"name":"value","nativeSrc":"834:5:88","nodeType":"YulIdentifier","src":"834:5:88"},"variableNames":[{"name":"value0","nativeSrc":"824:6:88","nodeType":"YulIdentifier","src":"824:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"619:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"655:9:88","nodeType":"YulTypedName","src":"655:9:88","type":""},{"name":"dataEnd","nativeSrc":"666:7:88","nodeType":"YulTypedName","src":"666:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"678:6:88","nodeType":"YulTypedName","src":"678:6:88","type":""}],"src":"619:226:88"},{"body":{"nativeSrc":"899:124:88","nodeType":"YulBlock","src":"899:124:88","statements":[{"nativeSrc":"909:29:88","nodeType":"YulAssignment","src":"909:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"931:6:88","nodeType":"YulIdentifier","src":"931:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"918:12:88","nodeType":"YulIdentifier","src":"918:12:88"},"nativeSrc":"918:20:88","nodeType":"YulFunctionCall","src":"918:20:88"},"variableNames":[{"name":"value","nativeSrc":"909:5:88","nodeType":"YulIdentifier","src":"909:5:88"}]},{"body":{"nativeSrc":"1001:16:88","nodeType":"YulBlock","src":"1001:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1010:1:88","nodeType":"YulLiteral","src":"1010:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1013:1:88","nodeType":"YulLiteral","src":"1013:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1003:6:88","nodeType":"YulIdentifier","src":"1003:6:88"},"nativeSrc":"1003:12:88","nodeType":"YulFunctionCall","src":"1003:12:88"},"nativeSrc":"1003:12:88","nodeType":"YulExpressionStatement","src":"1003:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"960:5:88","nodeType":"YulIdentifier","src":"960:5:88"},{"arguments":[{"name":"value","nativeSrc":"971:5:88","nodeType":"YulIdentifier","src":"971:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"986:3:88","nodeType":"YulLiteral","src":"986:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"991:1:88","nodeType":"YulLiteral","src":"991:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"982:3:88","nodeType":"YulIdentifier","src":"982:3:88"},"nativeSrc":"982:11:88","nodeType":"YulFunctionCall","src":"982:11:88"},{"kind":"number","nativeSrc":"995:1:88","nodeType":"YulLiteral","src":"995:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"978:3:88","nodeType":"YulIdentifier","src":"978:3:88"},"nativeSrc":"978:19:88","nodeType":"YulFunctionCall","src":"978:19:88"}],"functionName":{"name":"and","nativeSrc":"967:3:88","nodeType":"YulIdentifier","src":"967:3:88"},"nativeSrc":"967:31:88","nodeType":"YulFunctionCall","src":"967:31:88"}],"functionName":{"name":"eq","nativeSrc":"957:2:88","nodeType":"YulIdentifier","src":"957:2:88"},"nativeSrc":"957:42:88","nodeType":"YulFunctionCall","src":"957:42:88"}],"functionName":{"name":"iszero","nativeSrc":"950:6:88","nodeType":"YulIdentifier","src":"950:6:88"},"nativeSrc":"950:50:88","nodeType":"YulFunctionCall","src":"950:50:88"},"nativeSrc":"947:70:88","nodeType":"YulIf","src":"947:70:88"}]},"name":"abi_decode_address","nativeSrc":"850:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"878:6:88","nodeType":"YulTypedName","src":"878:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"889:5:88","nodeType":"YulTypedName","src":"889:5:88","type":""}],"src":"850:173:88"},{"body":{"nativeSrc":"1115:213:88","nodeType":"YulBlock","src":"1115:213:88","statements":[{"body":{"nativeSrc":"1161:16:88","nodeType":"YulBlock","src":"1161:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1170:1:88","nodeType":"YulLiteral","src":"1170:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1173:1:88","nodeType":"YulLiteral","src":"1173:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1163:6:88","nodeType":"YulIdentifier","src":"1163:6:88"},"nativeSrc":"1163:12:88","nodeType":"YulFunctionCall","src":"1163:12:88"},"nativeSrc":"1163:12:88","nodeType":"YulExpressionStatement","src":"1163:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1136:7:88","nodeType":"YulIdentifier","src":"1136:7:88"},{"name":"headStart","nativeSrc":"1145:9:88","nodeType":"YulIdentifier","src":"1145:9:88"}],"functionName":{"name":"sub","nativeSrc":"1132:3:88","nodeType":"YulIdentifier","src":"1132:3:88"},"nativeSrc":"1132:23:88","nodeType":"YulFunctionCall","src":"1132:23:88"},{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1128:3:88","nodeType":"YulIdentifier","src":"1128:3:88"},"nativeSrc":"1128:32:88","nodeType":"YulFunctionCall","src":"1128:32:88"},"nativeSrc":"1125:52:88","nodeType":"YulIf","src":"1125:52:88"},{"nativeSrc":"1186:39:88","nodeType":"YulAssignment","src":"1186:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1215:9:88","nodeType":"YulIdentifier","src":"1215:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1196:18:88","nodeType":"YulIdentifier","src":"1196:18:88"},"nativeSrc":"1196:29:88","nodeType":"YulFunctionCall","src":"1196:29:88"},"variableNames":[{"name":"value0","nativeSrc":"1186:6:88","nodeType":"YulIdentifier","src":"1186:6:88"}]},{"nativeSrc":"1234:14:88","nodeType":"YulVariableDeclaration","src":"1234:14:88","value":{"kind":"number","nativeSrc":"1247:1:88","nodeType":"YulLiteral","src":"1247:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1238:5:88","nodeType":"YulTypedName","src":"1238:5:88","type":""}]},{"nativeSrc":"1257:41:88","nodeType":"YulAssignment","src":"1257:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1283:9:88","nodeType":"YulIdentifier","src":"1283:9:88"},{"kind":"number","nativeSrc":"1294:2:88","nodeType":"YulLiteral","src":"1294:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1279:3:88","nodeType":"YulIdentifier","src":"1279:3:88"},"nativeSrc":"1279:18:88","nodeType":"YulFunctionCall","src":"1279:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1266:12:88","nodeType":"YulIdentifier","src":"1266:12:88"},"nativeSrc":"1266:32:88","nodeType":"YulFunctionCall","src":"1266:32:88"},"variableNames":[{"name":"value","nativeSrc":"1257:5:88","nodeType":"YulIdentifier","src":"1257:5:88"}]},{"nativeSrc":"1307:15:88","nodeType":"YulAssignment","src":"1307:15:88","value":{"name":"value","nativeSrc":"1317:5:88","nodeType":"YulIdentifier","src":"1317:5:88"},"variableNames":[{"name":"value1","nativeSrc":"1307:6:88","nodeType":"YulIdentifier","src":"1307:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1028:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1073:9:88","nodeType":"YulTypedName","src":"1073:9:88","type":""},{"name":"dataEnd","nativeSrc":"1084:7:88","nodeType":"YulTypedName","src":"1084:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1096:6:88","nodeType":"YulTypedName","src":"1096:6:88","type":""},{"name":"value1","nativeSrc":"1104:6:88","nodeType":"YulTypedName","src":"1104:6:88","type":""}],"src":"1028:300:88"},{"body":{"nativeSrc":"1428:92:88","nodeType":"YulBlock","src":"1428:92:88","statements":[{"nativeSrc":"1438:26:88","nodeType":"YulAssignment","src":"1438:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1450:9:88","nodeType":"YulIdentifier","src":"1450:9:88"},{"kind":"number","nativeSrc":"1461:2:88","nodeType":"YulLiteral","src":"1461:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1446:3:88","nodeType":"YulIdentifier","src":"1446:3:88"},"nativeSrc":"1446:18:88","nodeType":"YulFunctionCall","src":"1446:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1438:4:88","nodeType":"YulIdentifier","src":"1438:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1480:9:88","nodeType":"YulIdentifier","src":"1480:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1505:6:88","nodeType":"YulIdentifier","src":"1505:6:88"}],"functionName":{"name":"iszero","nativeSrc":"1498:6:88","nodeType":"YulIdentifier","src":"1498:6:88"},"nativeSrc":"1498:14:88","nodeType":"YulFunctionCall","src":"1498:14:88"}],"functionName":{"name":"iszero","nativeSrc":"1491:6:88","nodeType":"YulIdentifier","src":"1491:6:88"},"nativeSrc":"1491:22:88","nodeType":"YulFunctionCall","src":"1491:22:88"}],"functionName":{"name":"mstore","nativeSrc":"1473:6:88","nodeType":"YulIdentifier","src":"1473:6:88"},"nativeSrc":"1473:41:88","nodeType":"YulFunctionCall","src":"1473:41:88"},"nativeSrc":"1473:41:88","nodeType":"YulExpressionStatement","src":"1473:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1333:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1397:9:88","nodeType":"YulTypedName","src":"1397:9:88","type":""},{"name":"value0","nativeSrc":"1408:6:88","nodeType":"YulTypedName","src":"1408:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1419:4:88","nodeType":"YulTypedName","src":"1419:4:88","type":""}],"src":"1333:187:88"},{"body":{"nativeSrc":"1629:270:88","nodeType":"YulBlock","src":"1629:270:88","statements":[{"body":{"nativeSrc":"1675:16:88","nodeType":"YulBlock","src":"1675:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1684:1:88","nodeType":"YulLiteral","src":"1684:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1687:1:88","nodeType":"YulLiteral","src":"1687:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1677:6:88","nodeType":"YulIdentifier","src":"1677:6:88"},"nativeSrc":"1677:12:88","nodeType":"YulFunctionCall","src":"1677:12:88"},"nativeSrc":"1677:12:88","nodeType":"YulExpressionStatement","src":"1677:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1650:7:88","nodeType":"YulIdentifier","src":"1650:7:88"},{"name":"headStart","nativeSrc":"1659:9:88","nodeType":"YulIdentifier","src":"1659:9:88"}],"functionName":{"name":"sub","nativeSrc":"1646:3:88","nodeType":"YulIdentifier","src":"1646:3:88"},"nativeSrc":"1646:23:88","nodeType":"YulFunctionCall","src":"1646:23:88"},{"kind":"number","nativeSrc":"1671:2:88","nodeType":"YulLiteral","src":"1671:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1642:3:88","nodeType":"YulIdentifier","src":"1642:3:88"},"nativeSrc":"1642:32:88","nodeType":"YulFunctionCall","src":"1642:32:88"},"nativeSrc":"1639:52:88","nodeType":"YulIf","src":"1639:52:88"},{"nativeSrc":"1700:39:88","nodeType":"YulAssignment","src":"1700:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1729:9:88","nodeType":"YulIdentifier","src":"1729:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1710:18:88","nodeType":"YulIdentifier","src":"1710:18:88"},"nativeSrc":"1710:29:88","nodeType":"YulFunctionCall","src":"1710:29:88"},"variableNames":[{"name":"value0","nativeSrc":"1700:6:88","nodeType":"YulIdentifier","src":"1700:6:88"}]},{"nativeSrc":"1748:48:88","nodeType":"YulAssignment","src":"1748:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1781:9:88","nodeType":"YulIdentifier","src":"1781:9:88"},{"kind":"number","nativeSrc":"1792:2:88","nodeType":"YulLiteral","src":"1792:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1777:3:88","nodeType":"YulIdentifier","src":"1777:3:88"},"nativeSrc":"1777:18:88","nodeType":"YulFunctionCall","src":"1777:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1758:18:88","nodeType":"YulIdentifier","src":"1758:18:88"},"nativeSrc":"1758:38:88","nodeType":"YulFunctionCall","src":"1758:38:88"},"variableNames":[{"name":"value1","nativeSrc":"1748:6:88","nodeType":"YulIdentifier","src":"1748:6:88"}]},{"nativeSrc":"1805:14:88","nodeType":"YulVariableDeclaration","src":"1805:14:88","value":{"kind":"number","nativeSrc":"1818:1:88","nodeType":"YulLiteral","src":"1818:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1809:5:88","nodeType":"YulTypedName","src":"1809:5:88","type":""}]},{"nativeSrc":"1828:41:88","nodeType":"YulAssignment","src":"1828:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1854:9:88","nodeType":"YulIdentifier","src":"1854:9:88"},{"kind":"number","nativeSrc":"1865:2:88","nodeType":"YulLiteral","src":"1865:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1850:3:88","nodeType":"YulIdentifier","src":"1850:3:88"},"nativeSrc":"1850:18:88","nodeType":"YulFunctionCall","src":"1850:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1837:12:88","nodeType":"YulIdentifier","src":"1837:12:88"},"nativeSrc":"1837:32:88","nodeType":"YulFunctionCall","src":"1837:32:88"},"variableNames":[{"name":"value","nativeSrc":"1828:5:88","nodeType":"YulIdentifier","src":"1828:5:88"}]},{"nativeSrc":"1878:15:88","nodeType":"YulAssignment","src":"1878:15:88","value":{"name":"value","nativeSrc":"1888:5:88","nodeType":"YulIdentifier","src":"1888:5:88"},"variableNames":[{"name":"value2","nativeSrc":"1878:6:88","nodeType":"YulIdentifier","src":"1878:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1525:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1579:9:88","nodeType":"YulTypedName","src":"1579:9:88","type":""},{"name":"dataEnd","nativeSrc":"1590:7:88","nodeType":"YulTypedName","src":"1590:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1602:6:88","nodeType":"YulTypedName","src":"1602:6:88","type":""},{"name":"value1","nativeSrc":"1610:6:88","nodeType":"YulTypedName","src":"1610:6:88","type":""},{"name":"value2","nativeSrc":"1618:6:88","nodeType":"YulTypedName","src":"1618:6:88","type":""}],"src":"1525:374:88"},{"body":{"nativeSrc":"2001:87:88","nodeType":"YulBlock","src":"2001:87:88","statements":[{"nativeSrc":"2011:26:88","nodeType":"YulAssignment","src":"2011:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2023:9:88","nodeType":"YulIdentifier","src":"2023:9:88"},{"kind":"number","nativeSrc":"2034:2:88","nodeType":"YulLiteral","src":"2034:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2019:3:88","nodeType":"YulIdentifier","src":"2019:3:88"},"nativeSrc":"2019:18:88","nodeType":"YulFunctionCall","src":"2019:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2011:4:88","nodeType":"YulIdentifier","src":"2011:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2053:9:88","nodeType":"YulIdentifier","src":"2053:9:88"},{"arguments":[{"name":"value0","nativeSrc":"2068:6:88","nodeType":"YulIdentifier","src":"2068:6:88"},{"kind":"number","nativeSrc":"2076:4:88","nodeType":"YulLiteral","src":"2076:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2064:3:88","nodeType":"YulIdentifier","src":"2064:3:88"},"nativeSrc":"2064:17:88","nodeType":"YulFunctionCall","src":"2064:17:88"}],"functionName":{"name":"mstore","nativeSrc":"2046:6:88","nodeType":"YulIdentifier","src":"2046:6:88"},"nativeSrc":"2046:36:88","nodeType":"YulFunctionCall","src":"2046:36:88"},"nativeSrc":"2046:36:88","nodeType":"YulExpressionStatement","src":"2046:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1904:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1970:9:88","nodeType":"YulTypedName","src":"1970:9:88","type":""},{"name":"value0","nativeSrc":"1981:6:88","nodeType":"YulTypedName","src":"1981:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1992:4:88","nodeType":"YulTypedName","src":"1992:4:88","type":""}],"src":"1904:184:88"},{"body":{"nativeSrc":"2194:102:88","nodeType":"YulBlock","src":"2194:102:88","statements":[{"nativeSrc":"2204:26:88","nodeType":"YulAssignment","src":"2204:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2216:9:88","nodeType":"YulIdentifier","src":"2216:9:88"},{"kind":"number","nativeSrc":"2227:2:88","nodeType":"YulLiteral","src":"2227:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2212:3:88","nodeType":"YulIdentifier","src":"2212:3:88"},"nativeSrc":"2212:18:88","nodeType":"YulFunctionCall","src":"2212:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2204:4:88","nodeType":"YulIdentifier","src":"2204:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2246:9:88","nodeType":"YulIdentifier","src":"2246:9:88"},{"arguments":[{"name":"value0","nativeSrc":"2261:6:88","nodeType":"YulIdentifier","src":"2261:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2277:3:88","nodeType":"YulLiteral","src":"2277:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2282:1:88","nodeType":"YulLiteral","src":"2282:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2273:3:88","nodeType":"YulIdentifier","src":"2273:3:88"},"nativeSrc":"2273:11:88","nodeType":"YulFunctionCall","src":"2273:11:88"},{"kind":"number","nativeSrc":"2286:1:88","nodeType":"YulLiteral","src":"2286:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2269:3:88","nodeType":"YulIdentifier","src":"2269:3:88"},"nativeSrc":"2269:19:88","nodeType":"YulFunctionCall","src":"2269:19:88"}],"functionName":{"name":"and","nativeSrc":"2257:3:88","nodeType":"YulIdentifier","src":"2257:3:88"},"nativeSrc":"2257:32:88","nodeType":"YulFunctionCall","src":"2257:32:88"}],"functionName":{"name":"mstore","nativeSrc":"2239:6:88","nodeType":"YulIdentifier","src":"2239:6:88"},"nativeSrc":"2239:51:88","nodeType":"YulFunctionCall","src":"2239:51:88"},"nativeSrc":"2239:51:88","nodeType":"YulExpressionStatement","src":"2239:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2093:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2163:9:88","nodeType":"YulTypedName","src":"2163:9:88","type":""},{"name":"value0","nativeSrc":"2174:6:88","nodeType":"YulTypedName","src":"2174:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2185:4:88","nodeType":"YulTypedName","src":"2185:4:88","type":""}],"src":"2093:203:88"},{"body":{"nativeSrc":"2371:116:88","nodeType":"YulBlock","src":"2371:116:88","statements":[{"body":{"nativeSrc":"2417:16:88","nodeType":"YulBlock","src":"2417:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2426:1:88","nodeType":"YulLiteral","src":"2426:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2429:1:88","nodeType":"YulLiteral","src":"2429:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2419:6:88","nodeType":"YulIdentifier","src":"2419:6:88"},"nativeSrc":"2419:12:88","nodeType":"YulFunctionCall","src":"2419:12:88"},"nativeSrc":"2419:12:88","nodeType":"YulExpressionStatement","src":"2419:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2392:7:88","nodeType":"YulIdentifier","src":"2392:7:88"},{"name":"headStart","nativeSrc":"2401:9:88","nodeType":"YulIdentifier","src":"2401:9:88"}],"functionName":{"name":"sub","nativeSrc":"2388:3:88","nodeType":"YulIdentifier","src":"2388:3:88"},"nativeSrc":"2388:23:88","nodeType":"YulFunctionCall","src":"2388:23:88"},{"kind":"number","nativeSrc":"2413:2:88","nodeType":"YulLiteral","src":"2413:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2384:3:88","nodeType":"YulIdentifier","src":"2384:3:88"},"nativeSrc":"2384:32:88","nodeType":"YulFunctionCall","src":"2384:32:88"},"nativeSrc":"2381:52:88","nodeType":"YulIf","src":"2381:52:88"},{"nativeSrc":"2442:39:88","nodeType":"YulAssignment","src":"2442:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2471:9:88","nodeType":"YulIdentifier","src":"2471:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2452:18:88","nodeType":"YulIdentifier","src":"2452:18:88"},"nativeSrc":"2452:29:88","nodeType":"YulFunctionCall","src":"2452:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2442:6:88","nodeType":"YulIdentifier","src":"2442:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2301:186:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2337:9:88","nodeType":"YulTypedName","src":"2337:9:88","type":""},{"name":"dataEnd","nativeSrc":"2348:7:88","nodeType":"YulTypedName","src":"2348:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2360:6:88","nodeType":"YulTypedName","src":"2360:6:88","type":""}],"src":"2301:186:88"},{"body":{"nativeSrc":"2579:213:88","nodeType":"YulBlock","src":"2579:213:88","statements":[{"body":{"nativeSrc":"2625:16:88","nodeType":"YulBlock","src":"2625:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2634:1:88","nodeType":"YulLiteral","src":"2634:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2637:1:88","nodeType":"YulLiteral","src":"2637:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2627:6:88","nodeType":"YulIdentifier","src":"2627:6:88"},"nativeSrc":"2627:12:88","nodeType":"YulFunctionCall","src":"2627:12:88"},"nativeSrc":"2627:12:88","nodeType":"YulExpressionStatement","src":"2627:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2600:7:88","nodeType":"YulIdentifier","src":"2600:7:88"},{"name":"headStart","nativeSrc":"2609:9:88","nodeType":"YulIdentifier","src":"2609:9:88"}],"functionName":{"name":"sub","nativeSrc":"2596:3:88","nodeType":"YulIdentifier","src":"2596:3:88"},"nativeSrc":"2596:23:88","nodeType":"YulFunctionCall","src":"2596:23:88"},{"kind":"number","nativeSrc":"2621:2:88","nodeType":"YulLiteral","src":"2621:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2592:3:88","nodeType":"YulIdentifier","src":"2592:3:88"},"nativeSrc":"2592:32:88","nodeType":"YulFunctionCall","src":"2592:32:88"},"nativeSrc":"2589:52:88","nodeType":"YulIf","src":"2589:52:88"},{"nativeSrc":"2650:14:88","nodeType":"YulVariableDeclaration","src":"2650:14:88","value":{"kind":"number","nativeSrc":"2663:1:88","nodeType":"YulLiteral","src":"2663:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2654:5:88","nodeType":"YulTypedName","src":"2654:5:88","type":""}]},{"nativeSrc":"2673:32:88","nodeType":"YulAssignment","src":"2673:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2695:9:88","nodeType":"YulIdentifier","src":"2695:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2682:12:88","nodeType":"YulIdentifier","src":"2682:12:88"},"nativeSrc":"2682:23:88","nodeType":"YulFunctionCall","src":"2682:23:88"},"variableNames":[{"name":"value","nativeSrc":"2673:5:88","nodeType":"YulIdentifier","src":"2673:5:88"}]},{"nativeSrc":"2714:15:88","nodeType":"YulAssignment","src":"2714:15:88","value":{"name":"value","nativeSrc":"2724:5:88","nodeType":"YulIdentifier","src":"2724:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2714:6:88","nodeType":"YulIdentifier","src":"2714:6:88"}]},{"nativeSrc":"2738:48:88","nodeType":"YulAssignment","src":"2738:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2771:9:88","nodeType":"YulIdentifier","src":"2771:9:88"},{"kind":"number","nativeSrc":"2782:2:88","nodeType":"YulLiteral","src":"2782:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2767:3:88","nodeType":"YulIdentifier","src":"2767:3:88"},"nativeSrc":"2767:18:88","nodeType":"YulFunctionCall","src":"2767:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2748:18:88","nodeType":"YulIdentifier","src":"2748:18:88"},"nativeSrc":"2748:38:88","nodeType":"YulFunctionCall","src":"2748:38:88"},"variableNames":[{"name":"value1","nativeSrc":"2738:6:88","nodeType":"YulIdentifier","src":"2738:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nativeSrc":"2492:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2537:9:88","nodeType":"YulTypedName","src":"2537:9:88","type":""},{"name":"dataEnd","nativeSrc":"2548:7:88","nodeType":"YulTypedName","src":"2548:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2560:6:88","nodeType":"YulTypedName","src":"2560:6:88","type":""},{"name":"value1","nativeSrc":"2568:6:88","nodeType":"YulTypedName","src":"2568:6:88","type":""}],"src":"2492:300:88"},{"body":{"nativeSrc":"2839:76:88","nodeType":"YulBlock","src":"2839:76:88","statements":[{"body":{"nativeSrc":"2893:16:88","nodeType":"YulBlock","src":"2893:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2902:1:88","nodeType":"YulLiteral","src":"2902:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2905:1:88","nodeType":"YulLiteral","src":"2905:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2895:6:88","nodeType":"YulIdentifier","src":"2895:6:88"},"nativeSrc":"2895:12:88","nodeType":"YulFunctionCall","src":"2895:12:88"},"nativeSrc":"2895:12:88","nodeType":"YulExpressionStatement","src":"2895:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2862:5:88","nodeType":"YulIdentifier","src":"2862:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2883:5:88","nodeType":"YulIdentifier","src":"2883:5:88"}],"functionName":{"name":"iszero","nativeSrc":"2876:6:88","nodeType":"YulIdentifier","src":"2876:6:88"},"nativeSrc":"2876:13:88","nodeType":"YulFunctionCall","src":"2876:13:88"}],"functionName":{"name":"iszero","nativeSrc":"2869:6:88","nodeType":"YulIdentifier","src":"2869:6:88"},"nativeSrc":"2869:21:88","nodeType":"YulFunctionCall","src":"2869:21:88"}],"functionName":{"name":"eq","nativeSrc":"2859:2:88","nodeType":"YulIdentifier","src":"2859:2:88"},"nativeSrc":"2859:32:88","nodeType":"YulFunctionCall","src":"2859:32:88"}],"functionName":{"name":"iszero","nativeSrc":"2852:6:88","nodeType":"YulIdentifier","src":"2852:6:88"},"nativeSrc":"2852:40:88","nodeType":"YulFunctionCall","src":"2852:40:88"},"nativeSrc":"2849:60:88","nodeType":"YulIf","src":"2849:60:88"}]},"name":"validator_revert_bool","nativeSrc":"2797:118:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2828:5:88","nodeType":"YulTypedName","src":"2828:5:88","type":""}],"src":"2797:118:88"},{"body":{"nativeSrc":"2987:174:88","nodeType":"YulBlock","src":"2987:174:88","statements":[{"body":{"nativeSrc":"3033:16:88","nodeType":"YulBlock","src":"3033:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3042:1:88","nodeType":"YulLiteral","src":"3042:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3045:1:88","nodeType":"YulLiteral","src":"3045:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3035:6:88","nodeType":"YulIdentifier","src":"3035:6:88"},"nativeSrc":"3035:12:88","nodeType":"YulFunctionCall","src":"3035:12:88"},"nativeSrc":"3035:12:88","nodeType":"YulExpressionStatement","src":"3035:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3008:7:88","nodeType":"YulIdentifier","src":"3008:7:88"},{"name":"headStart","nativeSrc":"3017:9:88","nodeType":"YulIdentifier","src":"3017:9:88"}],"functionName":{"name":"sub","nativeSrc":"3004:3:88","nodeType":"YulIdentifier","src":"3004:3:88"},"nativeSrc":"3004:23:88","nodeType":"YulFunctionCall","src":"3004:23:88"},{"kind":"number","nativeSrc":"3029:2:88","nodeType":"YulLiteral","src":"3029:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3000:3:88","nodeType":"YulIdentifier","src":"3000:3:88"},"nativeSrc":"3000:32:88","nodeType":"YulFunctionCall","src":"3000:32:88"},"nativeSrc":"2997:52:88","nodeType":"YulIf","src":"2997:52:88"},{"nativeSrc":"3058:36:88","nodeType":"YulVariableDeclaration","src":"3058:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3084:9:88","nodeType":"YulIdentifier","src":"3084:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3071:12:88","nodeType":"YulIdentifier","src":"3071:12:88"},"nativeSrc":"3071:23:88","nodeType":"YulFunctionCall","src":"3071:23:88"},"variables":[{"name":"value","nativeSrc":"3062:5:88","nodeType":"YulTypedName","src":"3062:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3125:5:88","nodeType":"YulIdentifier","src":"3125:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"3103:21:88","nodeType":"YulIdentifier","src":"3103:21:88"},"nativeSrc":"3103:28:88","nodeType":"YulFunctionCall","src":"3103:28:88"},"nativeSrc":"3103:28:88","nodeType":"YulExpressionStatement","src":"3103:28:88"},{"nativeSrc":"3140:15:88","nodeType":"YulAssignment","src":"3140:15:88","value":{"name":"value","nativeSrc":"3150:5:88","nodeType":"YulIdentifier","src":"3150:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3140:6:88","nodeType":"YulIdentifier","src":"3140:6:88"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"2920:241:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2953:9:88","nodeType":"YulTypedName","src":"2953:9:88","type":""},{"name":"dataEnd","nativeSrc":"2964:7:88","nodeType":"YulTypedName","src":"2964:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2976:6:88","nodeType":"YulTypedName","src":"2976:6:88","type":""}],"src":"2920:241:88"},{"body":{"nativeSrc":"3270:270:88","nodeType":"YulBlock","src":"3270:270:88","statements":[{"body":{"nativeSrc":"3316:16:88","nodeType":"YulBlock","src":"3316:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:88","nodeType":"YulLiteral","src":"3325:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:1:88","nodeType":"YulLiteral","src":"3328:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3318:6:88","nodeType":"YulIdentifier","src":"3318:6:88"},"nativeSrc":"3318:12:88","nodeType":"YulFunctionCall","src":"3318:12:88"},"nativeSrc":"3318:12:88","nodeType":"YulExpressionStatement","src":"3318:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3291:7:88","nodeType":"YulIdentifier","src":"3291:7:88"},{"name":"headStart","nativeSrc":"3300:9:88","nodeType":"YulIdentifier","src":"3300:9:88"}],"functionName":{"name":"sub","nativeSrc":"3287:3:88","nodeType":"YulIdentifier","src":"3287:3:88"},"nativeSrc":"3287:23:88","nodeType":"YulFunctionCall","src":"3287:23:88"},{"kind":"number","nativeSrc":"3312:2:88","nodeType":"YulLiteral","src":"3312:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3283:3:88","nodeType":"YulIdentifier","src":"3283:3:88"},"nativeSrc":"3283:32:88","nodeType":"YulFunctionCall","src":"3283:32:88"},"nativeSrc":"3280:52:88","nodeType":"YulIf","src":"3280:52:88"},{"nativeSrc":"3341:14:88","nodeType":"YulVariableDeclaration","src":"3341:14:88","value":{"kind":"number","nativeSrc":"3354:1:88","nodeType":"YulLiteral","src":"3354:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3345:5:88","nodeType":"YulTypedName","src":"3345:5:88","type":""}]},{"nativeSrc":"3364:32:88","nodeType":"YulAssignment","src":"3364:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3386:9:88","nodeType":"YulIdentifier","src":"3386:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3373:12:88","nodeType":"YulIdentifier","src":"3373:12:88"},"nativeSrc":"3373:23:88","nodeType":"YulFunctionCall","src":"3373:23:88"},"variableNames":[{"name":"value","nativeSrc":"3364:5:88","nodeType":"YulIdentifier","src":"3364:5:88"}]},{"nativeSrc":"3405:15:88","nodeType":"YulAssignment","src":"3405:15:88","value":{"name":"value","nativeSrc":"3415:5:88","nodeType":"YulIdentifier","src":"3415:5:88"},"variableNames":[{"name":"value0","nativeSrc":"3405:6:88","nodeType":"YulIdentifier","src":"3405:6:88"}]},{"nativeSrc":"3429:48:88","nodeType":"YulAssignment","src":"3429:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3462:9:88","nodeType":"YulIdentifier","src":"3462:9:88"},{"kind":"number","nativeSrc":"3473:2:88","nodeType":"YulLiteral","src":"3473:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3458:3:88","nodeType":"YulIdentifier","src":"3458:3:88"},"nativeSrc":"3458:18:88","nodeType":"YulFunctionCall","src":"3458:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3439:18:88","nodeType":"YulIdentifier","src":"3439:18:88"},"nativeSrc":"3439:38:88","nodeType":"YulFunctionCall","src":"3439:38:88"},"variableNames":[{"name":"value1","nativeSrc":"3429:6:88","nodeType":"YulIdentifier","src":"3429:6:88"}]},{"nativeSrc":"3486:48:88","nodeType":"YulAssignment","src":"3486:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3519:9:88","nodeType":"YulIdentifier","src":"3519:9:88"},{"kind":"number","nativeSrc":"3530:2:88","nodeType":"YulLiteral","src":"3530:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3515:3:88","nodeType":"YulIdentifier","src":"3515:3:88"},"nativeSrc":"3515:18:88","nodeType":"YulFunctionCall","src":"3515:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3496:18:88","nodeType":"YulIdentifier","src":"3496:18:88"},"nativeSrc":"3496:38:88","nodeType":"YulFunctionCall","src":"3496:38:88"},"variableNames":[{"name":"value2","nativeSrc":"3486:6:88","nodeType":"YulIdentifier","src":"3486:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_address","nativeSrc":"3166:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3220:9:88","nodeType":"YulTypedName","src":"3220:9:88","type":""},{"name":"dataEnd","nativeSrc":"3231:7:88","nodeType":"YulTypedName","src":"3231:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3243:6:88","nodeType":"YulTypedName","src":"3243:6:88","type":""},{"name":"value1","nativeSrc":"3251:6:88","nodeType":"YulTypedName","src":"3251:6:88","type":""},{"name":"value2","nativeSrc":"3259:6:88","nodeType":"YulTypedName","src":"3259:6:88","type":""}],"src":"3166:374:88"},{"body":{"nativeSrc":"3614:110:88","nodeType":"YulBlock","src":"3614:110:88","statements":[{"body":{"nativeSrc":"3660:16:88","nodeType":"YulBlock","src":"3660:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3669:1:88","nodeType":"YulLiteral","src":"3669:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3672:1:88","nodeType":"YulLiteral","src":"3672:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3662:6:88","nodeType":"YulIdentifier","src":"3662:6:88"},"nativeSrc":"3662:12:88","nodeType":"YulFunctionCall","src":"3662:12:88"},"nativeSrc":"3662:12:88","nodeType":"YulExpressionStatement","src":"3662:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3635:7:88","nodeType":"YulIdentifier","src":"3635:7:88"},{"name":"headStart","nativeSrc":"3644:9:88","nodeType":"YulIdentifier","src":"3644:9:88"}],"functionName":{"name":"sub","nativeSrc":"3631:3:88","nodeType":"YulIdentifier","src":"3631:3:88"},"nativeSrc":"3631:23:88","nodeType":"YulFunctionCall","src":"3631:23:88"},{"kind":"number","nativeSrc":"3656:2:88","nodeType":"YulLiteral","src":"3656:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3627:3:88","nodeType":"YulIdentifier","src":"3627:3:88"},"nativeSrc":"3627:32:88","nodeType":"YulFunctionCall","src":"3627:32:88"},"nativeSrc":"3624:52:88","nodeType":"YulIf","src":"3624:52:88"},{"nativeSrc":"3685:33:88","nodeType":"YulAssignment","src":"3685:33:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3708:9:88","nodeType":"YulIdentifier","src":"3708:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"3695:12:88","nodeType":"YulIdentifier","src":"3695:12:88"},"nativeSrc":"3695:23:88","nodeType":"YulFunctionCall","src":"3695:23:88"},"variableNames":[{"name":"value0","nativeSrc":"3685:6:88","nodeType":"YulIdentifier","src":"3685:6:88"}]}]},"name":"abi_decode_tuple_t_int256","nativeSrc":"3545:179:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3580:9:88","nodeType":"YulTypedName","src":"3580:9:88","type":""},{"name":"dataEnd","nativeSrc":"3591:7:88","nodeType":"YulTypedName","src":"3591:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3603:6:88","nodeType":"YulTypedName","src":"3603:6:88","type":""}],"src":"3545:179:88"},{"body":{"nativeSrc":"3816:173:88","nodeType":"YulBlock","src":"3816:173:88","statements":[{"body":{"nativeSrc":"3862:16:88","nodeType":"YulBlock","src":"3862:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3871:1:88","nodeType":"YulLiteral","src":"3871:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3874:1:88","nodeType":"YulLiteral","src":"3874:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3864:6:88","nodeType":"YulIdentifier","src":"3864:6:88"},"nativeSrc":"3864:12:88","nodeType":"YulFunctionCall","src":"3864:12:88"},"nativeSrc":"3864:12:88","nodeType":"YulExpressionStatement","src":"3864:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3837:7:88","nodeType":"YulIdentifier","src":"3837:7:88"},{"name":"headStart","nativeSrc":"3846:9:88","nodeType":"YulIdentifier","src":"3846:9:88"}],"functionName":{"name":"sub","nativeSrc":"3833:3:88","nodeType":"YulIdentifier","src":"3833:3:88"},"nativeSrc":"3833:23:88","nodeType":"YulFunctionCall","src":"3833:23:88"},{"kind":"number","nativeSrc":"3858:2:88","nodeType":"YulLiteral","src":"3858:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3829:3:88","nodeType":"YulIdentifier","src":"3829:3:88"},"nativeSrc":"3829:32:88","nodeType":"YulFunctionCall","src":"3829:32:88"},"nativeSrc":"3826:52:88","nodeType":"YulIf","src":"3826:52:88"},{"nativeSrc":"3887:39:88","nodeType":"YulAssignment","src":"3887:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3916:9:88","nodeType":"YulIdentifier","src":"3916:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3897:18:88","nodeType":"YulIdentifier","src":"3897:18:88"},"nativeSrc":"3897:29:88","nodeType":"YulFunctionCall","src":"3897:29:88"},"variableNames":[{"name":"value0","nativeSrc":"3887:6:88","nodeType":"YulIdentifier","src":"3887:6:88"}]},{"nativeSrc":"3935:48:88","nodeType":"YulAssignment","src":"3935:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3968:9:88","nodeType":"YulIdentifier","src":"3968:9:88"},{"kind":"number","nativeSrc":"3979:2:88","nodeType":"YulLiteral","src":"3979:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3964:3:88","nodeType":"YulIdentifier","src":"3964:3:88"},"nativeSrc":"3964:18:88","nodeType":"YulFunctionCall","src":"3964:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3945:18:88","nodeType":"YulIdentifier","src":"3945:18:88"},"nativeSrc":"3945:38:88","nodeType":"YulFunctionCall","src":"3945:38:88"},"variableNames":[{"name":"value1","nativeSrc":"3935:6:88","nodeType":"YulIdentifier","src":"3935:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"3729:260:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3774:9:88","nodeType":"YulTypedName","src":"3774:9:88","type":""},{"name":"dataEnd","nativeSrc":"3785:7:88","nodeType":"YulTypedName","src":"3785:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3797:6:88","nodeType":"YulTypedName","src":"3797:6:88","type":""},{"name":"value1","nativeSrc":"3805:6:88","nodeType":"YulTypedName","src":"3805:6:88","type":""}],"src":"3729:260:88"},{"body":{"nativeSrc":"4168:165:88","nodeType":"YulBlock","src":"4168:165:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4185:9:88","nodeType":"YulIdentifier","src":"4185:9:88"},{"kind":"number","nativeSrc":"4196:2:88","nodeType":"YulLiteral","src":"4196:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4178:6:88","nodeType":"YulIdentifier","src":"4178:6:88"},"nativeSrc":"4178:21:88","nodeType":"YulFunctionCall","src":"4178:21:88"},"nativeSrc":"4178:21:88","nodeType":"YulExpressionStatement","src":"4178:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4219:9:88","nodeType":"YulIdentifier","src":"4219:9:88"},{"kind":"number","nativeSrc":"4230:2:88","nodeType":"YulLiteral","src":"4230:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4215:3:88","nodeType":"YulIdentifier","src":"4215:3:88"},"nativeSrc":"4215:18:88","nodeType":"YulFunctionCall","src":"4215:18:88"},{"kind":"number","nativeSrc":"4235:2:88","nodeType":"YulLiteral","src":"4235:2:88","type":"","value":"15"}],"functionName":{"name":"mstore","nativeSrc":"4208:6:88","nodeType":"YulIdentifier","src":"4208:6:88"},"nativeSrc":"4208:30:88","nodeType":"YulFunctionCall","src":"4208:30:88"},"nativeSrc":"4208:30:88","nodeType":"YulExpressionStatement","src":"4208:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4258:9:88","nodeType":"YulIdentifier","src":"4258:9:88"},{"kind":"number","nativeSrc":"4269:2:88","nodeType":"YulLiteral","src":"4269:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4254:3:88","nodeType":"YulIdentifier","src":"4254:3:88"},"nativeSrc":"4254:18:88","nodeType":"YulFunctionCall","src":"4254:18:88"},{"hexValue":"5661756c742069732062726f6b656e","kind":"string","nativeSrc":"4274:17:88","nodeType":"YulLiteral","src":"4274:17:88","type":"","value":"Vault is broken"}],"functionName":{"name":"mstore","nativeSrc":"4247:6:88","nodeType":"YulIdentifier","src":"4247:6:88"},"nativeSrc":"4247:45:88","nodeType":"YulFunctionCall","src":"4247:45:88"},"nativeSrc":"4247:45:88","nodeType":"YulExpressionStatement","src":"4247:45:88"},{"nativeSrc":"4301:26:88","nodeType":"YulAssignment","src":"4301:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4313:9:88","nodeType":"YulIdentifier","src":"4313:9:88"},{"kind":"number","nativeSrc":"4324:2:88","nodeType":"YulLiteral","src":"4324:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4309:3:88","nodeType":"YulIdentifier","src":"4309:3:88"},"nativeSrc":"4309:18:88","nodeType":"YulFunctionCall","src":"4309:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4301:4:88","nodeType":"YulIdentifier","src":"4301:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3994:339:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4145:9:88","nodeType":"YulTypedName","src":"4145:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4159:4:88","nodeType":"YulTypedName","src":"4159:4:88","type":""}],"src":"3994:339:88"},{"body":{"nativeSrc":"4393:325:88","nodeType":"YulBlock","src":"4393:325:88","statements":[{"nativeSrc":"4403:22:88","nodeType":"YulAssignment","src":"4403:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"4417:1:88","nodeType":"YulLiteral","src":"4417:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"4420:4:88","nodeType":"YulIdentifier","src":"4420:4:88"}],"functionName":{"name":"shr","nativeSrc":"4413:3:88","nodeType":"YulIdentifier","src":"4413:3:88"},"nativeSrc":"4413:12:88","nodeType":"YulFunctionCall","src":"4413:12:88"},"variableNames":[{"name":"length","nativeSrc":"4403:6:88","nodeType":"YulIdentifier","src":"4403:6:88"}]},{"nativeSrc":"4434:38:88","nodeType":"YulVariableDeclaration","src":"4434:38:88","value":{"arguments":[{"name":"data","nativeSrc":"4464:4:88","nodeType":"YulIdentifier","src":"4464:4:88"},{"kind":"number","nativeSrc":"4470:1:88","nodeType":"YulLiteral","src":"4470:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4460:3:88","nodeType":"YulIdentifier","src":"4460:3:88"},"nativeSrc":"4460:12:88","nodeType":"YulFunctionCall","src":"4460:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4438:18:88","nodeType":"YulTypedName","src":"4438:18:88","type":""}]},{"body":{"nativeSrc":"4511:31:88","nodeType":"YulBlock","src":"4511:31:88","statements":[{"nativeSrc":"4513:27:88","nodeType":"YulAssignment","src":"4513:27:88","value":{"arguments":[{"name":"length","nativeSrc":"4527:6:88","nodeType":"YulIdentifier","src":"4527:6:88"},{"kind":"number","nativeSrc":"4535:4:88","nodeType":"YulLiteral","src":"4535:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4523:3:88","nodeType":"YulIdentifier","src":"4523:3:88"},"nativeSrc":"4523:17:88","nodeType":"YulFunctionCall","src":"4523:17:88"},"variableNames":[{"name":"length","nativeSrc":"4513:6:88","nodeType":"YulIdentifier","src":"4513:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4491:18:88","nodeType":"YulIdentifier","src":"4491:18:88"}],"functionName":{"name":"iszero","nativeSrc":"4484:6:88","nodeType":"YulIdentifier","src":"4484:6:88"},"nativeSrc":"4484:26:88","nodeType":"YulFunctionCall","src":"4484:26:88"},"nativeSrc":"4481:61:88","nodeType":"YulIf","src":"4481:61:88"},{"body":{"nativeSrc":"4601:111:88","nodeType":"YulBlock","src":"4601:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4622:1:88","nodeType":"YulLiteral","src":"4622:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4629:3:88","nodeType":"YulLiteral","src":"4629:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4634:10:88","nodeType":"YulLiteral","src":"4634:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4625:3:88","nodeType":"YulIdentifier","src":"4625:3:88"},"nativeSrc":"4625:20:88","nodeType":"YulFunctionCall","src":"4625:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4615:6:88","nodeType":"YulIdentifier","src":"4615:6:88"},"nativeSrc":"4615:31:88","nodeType":"YulFunctionCall","src":"4615:31:88"},"nativeSrc":"4615:31:88","nodeType":"YulExpressionStatement","src":"4615:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4666:1:88","nodeType":"YulLiteral","src":"4666:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4669:4:88","nodeType":"YulLiteral","src":"4669:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4659:6:88","nodeType":"YulIdentifier","src":"4659:6:88"},"nativeSrc":"4659:15:88","nodeType":"YulFunctionCall","src":"4659:15:88"},"nativeSrc":"4659:15:88","nodeType":"YulExpressionStatement","src":"4659:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4694:1:88","nodeType":"YulLiteral","src":"4694:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4697:4:88","nodeType":"YulLiteral","src":"4697:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4687:6:88","nodeType":"YulIdentifier","src":"4687:6:88"},"nativeSrc":"4687:15:88","nodeType":"YulFunctionCall","src":"4687:15:88"},"nativeSrc":"4687:15:88","nodeType":"YulExpressionStatement","src":"4687:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4557:18:88","nodeType":"YulIdentifier","src":"4557:18:88"},{"arguments":[{"name":"length","nativeSrc":"4580:6:88","nodeType":"YulIdentifier","src":"4580:6:88"},{"kind":"number","nativeSrc":"4588:2:88","nodeType":"YulLiteral","src":"4588:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4577:2:88","nodeType":"YulIdentifier","src":"4577:2:88"},"nativeSrc":"4577:14:88","nodeType":"YulFunctionCall","src":"4577:14:88"}],"functionName":{"name":"eq","nativeSrc":"4554:2:88","nodeType":"YulIdentifier","src":"4554:2:88"},"nativeSrc":"4554:38:88","nodeType":"YulFunctionCall","src":"4554:38:88"},"nativeSrc":"4551:161:88","nodeType":"YulIf","src":"4551:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"4338:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4373:4:88","nodeType":"YulTypedName","src":"4373:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4382:6:88","nodeType":"YulTypedName","src":"4382:6:88","type":""}],"src":"4338:380:88"},{"body":{"nativeSrc":"4755:95:88","nodeType":"YulBlock","src":"4755:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4772:1:88","nodeType":"YulLiteral","src":"4772:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4779:3:88","nodeType":"YulLiteral","src":"4779:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4784:10:88","nodeType":"YulLiteral","src":"4784:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4775:3:88","nodeType":"YulIdentifier","src":"4775:3:88"},"nativeSrc":"4775:20:88","nodeType":"YulFunctionCall","src":"4775:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4765:6:88","nodeType":"YulIdentifier","src":"4765:6:88"},"nativeSrc":"4765:31:88","nodeType":"YulFunctionCall","src":"4765:31:88"},"nativeSrc":"4765:31:88","nodeType":"YulExpressionStatement","src":"4765:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4812:1:88","nodeType":"YulLiteral","src":"4812:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4815:4:88","nodeType":"YulLiteral","src":"4815:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4805:6:88","nodeType":"YulIdentifier","src":"4805:6:88"},"nativeSrc":"4805:15:88","nodeType":"YulFunctionCall","src":"4805:15:88"},"nativeSrc":"4805:15:88","nodeType":"YulExpressionStatement","src":"4805:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4836:1:88","nodeType":"YulLiteral","src":"4836:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4839:4:88","nodeType":"YulLiteral","src":"4839:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4829:6:88","nodeType":"YulIdentifier","src":"4829:6:88"},"nativeSrc":"4829:15:88","nodeType":"YulFunctionCall","src":"4829:15:88"},"nativeSrc":"4829:15:88","nodeType":"YulExpressionStatement","src":"4829:15:88"}]},"name":"panic_error_0x11","nativeSrc":"4723:127:88","nodeType":"YulFunctionDefinition","src":"4723:127:88"},{"body":{"nativeSrc":"4901:102:88","nodeType":"YulBlock","src":"4901:102:88","statements":[{"nativeSrc":"4911:38:88","nodeType":"YulAssignment","src":"4911:38:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"4926:1:88","nodeType":"YulIdentifier","src":"4926:1:88"},{"kind":"number","nativeSrc":"4929:4:88","nodeType":"YulLiteral","src":"4929:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4922:3:88","nodeType":"YulIdentifier","src":"4922:3:88"},"nativeSrc":"4922:12:88","nodeType":"YulFunctionCall","src":"4922:12:88"},{"arguments":[{"name":"y","nativeSrc":"4940:1:88","nodeType":"YulIdentifier","src":"4940:1:88"},{"kind":"number","nativeSrc":"4943:4:88","nodeType":"YulLiteral","src":"4943:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4936:3:88","nodeType":"YulIdentifier","src":"4936:3:88"},"nativeSrc":"4936:12:88","nodeType":"YulFunctionCall","src":"4936:12:88"}],"functionName":{"name":"add","nativeSrc":"4918:3:88","nodeType":"YulIdentifier","src":"4918:3:88"},"nativeSrc":"4918:31:88","nodeType":"YulFunctionCall","src":"4918:31:88"},"variableNames":[{"name":"sum","nativeSrc":"4911:3:88","nodeType":"YulIdentifier","src":"4911:3:88"}]},{"body":{"nativeSrc":"4975:22:88","nodeType":"YulBlock","src":"4975:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4977:16:88","nodeType":"YulIdentifier","src":"4977:16:88"},"nativeSrc":"4977:18:88","nodeType":"YulFunctionCall","src":"4977:18:88"},"nativeSrc":"4977:18:88","nodeType":"YulExpressionStatement","src":"4977:18:88"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"4964:3:88","nodeType":"YulIdentifier","src":"4964:3:88"},{"kind":"number","nativeSrc":"4969:4:88","nodeType":"YulLiteral","src":"4969:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"4961:2:88","nodeType":"YulIdentifier","src":"4961:2:88"},"nativeSrc":"4961:13:88","nodeType":"YulFunctionCall","src":"4961:13:88"},"nativeSrc":"4958:39:88","nodeType":"YulIf","src":"4958:39:88"}]},"name":"checked_add_t_uint8","nativeSrc":"4855:148:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4884:1:88","nodeType":"YulTypedName","src":"4884:1:88","type":""},{"name":"y","nativeSrc":"4887:1:88","nodeType":"YulTypedName","src":"4887:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4893:3:88","nodeType":"YulTypedName","src":"4893:3:88","type":""}],"src":"4855:148:88"},{"body":{"nativeSrc":"5056:77:88","nodeType":"YulBlock","src":"5056:77:88","statements":[{"nativeSrc":"5066:16:88","nodeType":"YulAssignment","src":"5066:16:88","value":{"arguments":[{"name":"x","nativeSrc":"5077:1:88","nodeType":"YulIdentifier","src":"5077:1:88"},{"name":"y","nativeSrc":"5080:1:88","nodeType":"YulIdentifier","src":"5080:1:88"}],"functionName":{"name":"add","nativeSrc":"5073:3:88","nodeType":"YulIdentifier","src":"5073:3:88"},"nativeSrc":"5073:9:88","nodeType":"YulFunctionCall","src":"5073:9:88"},"variableNames":[{"name":"sum","nativeSrc":"5066:3:88","nodeType":"YulIdentifier","src":"5066:3:88"}]},{"body":{"nativeSrc":"5105:22:88","nodeType":"YulBlock","src":"5105:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5107:16:88","nodeType":"YulIdentifier","src":"5107:16:88"},"nativeSrc":"5107:18:88","nodeType":"YulFunctionCall","src":"5107:18:88"},"nativeSrc":"5107:18:88","nodeType":"YulExpressionStatement","src":"5107:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"5097:1:88","nodeType":"YulIdentifier","src":"5097:1:88"},{"name":"sum","nativeSrc":"5100:3:88","nodeType":"YulIdentifier","src":"5100:3:88"}],"functionName":{"name":"gt","nativeSrc":"5094:2:88","nodeType":"YulIdentifier","src":"5094:2:88"},"nativeSrc":"5094:10:88","nodeType":"YulFunctionCall","src":"5094:10:88"},"nativeSrc":"5091:36:88","nodeType":"YulIf","src":"5091:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"5008:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5039:1:88","nodeType":"YulTypedName","src":"5039:1:88","type":""},{"name":"y","nativeSrc":"5042:1:88","nodeType":"YulTypedName","src":"5042:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5048:3:88","nodeType":"YulTypedName","src":"5048:3:88","type":""}],"src":"5008:125:88"},{"body":{"nativeSrc":"5312:180:88","nodeType":"YulBlock","src":"5312:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5329:9:88","nodeType":"YulIdentifier","src":"5329:9:88"},{"kind":"number","nativeSrc":"5340:2:88","nodeType":"YulLiteral","src":"5340:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5322:6:88","nodeType":"YulIdentifier","src":"5322:6:88"},"nativeSrc":"5322:21:88","nodeType":"YulFunctionCall","src":"5322:21:88"},"nativeSrc":"5322:21:88","nodeType":"YulExpressionStatement","src":"5322:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5363:9:88","nodeType":"YulIdentifier","src":"5363:9:88"},{"kind":"number","nativeSrc":"5374:2:88","nodeType":"YulLiteral","src":"5374:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5359:3:88","nodeType":"YulIdentifier","src":"5359:3:88"},"nativeSrc":"5359:18:88","nodeType":"YulFunctionCall","src":"5359:18:88"},{"kind":"number","nativeSrc":"5379:2:88","nodeType":"YulLiteral","src":"5379:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"5352:6:88","nodeType":"YulIdentifier","src":"5352:6:88"},"nativeSrc":"5352:30:88","nodeType":"YulFunctionCall","src":"5352:30:88"},"nativeSrc":"5352:30:88","nodeType":"YulExpressionStatement","src":"5352:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5402:9:88","nodeType":"YulIdentifier","src":"5402:9:88"},{"kind":"number","nativeSrc":"5413:2:88","nodeType":"YulLiteral","src":"5413:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5398:3:88","nodeType":"YulIdentifier","src":"5398:3:88"},"nativeSrc":"5398:18:88","nodeType":"YulFunctionCall","src":"5398:18:88"},{"hexValue":"455243343632363a206465706f736974206d6f7265207468616e206d6178","kind":"string","nativeSrc":"5418:32:88","nodeType":"YulLiteral","src":"5418:32:88","type":"","value":"ERC4626: deposit more than max"}],"functionName":{"name":"mstore","nativeSrc":"5391:6:88","nodeType":"YulIdentifier","src":"5391:6:88"},"nativeSrc":"5391:60:88","nodeType":"YulFunctionCall","src":"5391:60:88"},"nativeSrc":"5391:60:88","nodeType":"YulExpressionStatement","src":"5391:60:88"},{"nativeSrc":"5460:26:88","nodeType":"YulAssignment","src":"5460:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5472:9:88","nodeType":"YulIdentifier","src":"5472:9:88"},{"kind":"number","nativeSrc":"5483:2:88","nodeType":"YulLiteral","src":"5483:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5468:3:88","nodeType":"YulIdentifier","src":"5468:3:88"},"nativeSrc":"5468:18:88","nodeType":"YulFunctionCall","src":"5468:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5460:4:88","nodeType":"YulIdentifier","src":"5460:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_942dfdb1d5d5ae526782b9f85d1470d0ba794a7c694ad01b5b8d1ba2521ed1a1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5138:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5289:9:88","nodeType":"YulTypedName","src":"5289:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5303:4:88","nodeType":"YulTypedName","src":"5303:4:88","type":""}],"src":"5138:354:88"},{"body":{"nativeSrc":"5671:177:88","nodeType":"YulBlock","src":"5671:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5688:9:88","nodeType":"YulIdentifier","src":"5688:9:88"},{"kind":"number","nativeSrc":"5699:2:88","nodeType":"YulLiteral","src":"5699:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5681:6:88","nodeType":"YulIdentifier","src":"5681:6:88"},"nativeSrc":"5681:21:88","nodeType":"YulFunctionCall","src":"5681:21:88"},"nativeSrc":"5681:21:88","nodeType":"YulExpressionStatement","src":"5681:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5722:9:88","nodeType":"YulIdentifier","src":"5722:9:88"},{"kind":"number","nativeSrc":"5733:2:88","nodeType":"YulLiteral","src":"5733:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5718:3:88","nodeType":"YulIdentifier","src":"5718:3:88"},"nativeSrc":"5718:18:88","nodeType":"YulFunctionCall","src":"5718:18:88"},{"kind":"number","nativeSrc":"5738:2:88","nodeType":"YulLiteral","src":"5738:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"5711:6:88","nodeType":"YulIdentifier","src":"5711:6:88"},"nativeSrc":"5711:30:88","nodeType":"YulFunctionCall","src":"5711:30:88"},"nativeSrc":"5711:30:88","nodeType":"YulExpressionStatement","src":"5711:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5761:9:88","nodeType":"YulIdentifier","src":"5761:9:88"},{"kind":"number","nativeSrc":"5772:2:88","nodeType":"YulLiteral","src":"5772:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5757:3:88","nodeType":"YulIdentifier","src":"5757:3:88"},"nativeSrc":"5757:18:88","nodeType":"YulFunctionCall","src":"5757:18:88"},{"hexValue":"455243343632363a206d696e74206d6f7265207468616e206d6178","kind":"string","nativeSrc":"5777:29:88","nodeType":"YulLiteral","src":"5777:29:88","type":"","value":"ERC4626: mint more than max"}],"functionName":{"name":"mstore","nativeSrc":"5750:6:88","nodeType":"YulIdentifier","src":"5750:6:88"},"nativeSrc":"5750:57:88","nodeType":"YulFunctionCall","src":"5750:57:88"},"nativeSrc":"5750:57:88","nodeType":"YulExpressionStatement","src":"5750:57:88"},{"nativeSrc":"5816:26:88","nodeType":"YulAssignment","src":"5816:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5828:9:88","nodeType":"YulIdentifier","src":"5828:9:88"},{"kind":"number","nativeSrc":"5839:2:88","nodeType":"YulLiteral","src":"5839:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5824:3:88","nodeType":"YulIdentifier","src":"5824:3:88"},"nativeSrc":"5824:18:88","nodeType":"YulFunctionCall","src":"5824:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5816:4:88","nodeType":"YulIdentifier","src":"5816:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4a897ed07dc1191e15e1ac5726d86067d87f89bebeded2b310bdf1e25a3dac3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5497:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5648:9:88","nodeType":"YulTypedName","src":"5648:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5662:4:88","nodeType":"YulTypedName","src":"5662:4:88","type":""}],"src":"5497:351:88"},{"body":{"nativeSrc":"6027:227:88","nodeType":"YulBlock","src":"6027:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6044:9:88","nodeType":"YulIdentifier","src":"6044:9:88"},{"kind":"number","nativeSrc":"6055:2:88","nodeType":"YulLiteral","src":"6055:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6037:6:88","nodeType":"YulIdentifier","src":"6037:6:88"},"nativeSrc":"6037:21:88","nodeType":"YulFunctionCall","src":"6037:21:88"},"nativeSrc":"6037:21:88","nodeType":"YulExpressionStatement","src":"6037:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6078:9:88","nodeType":"YulIdentifier","src":"6078:9:88"},{"kind":"number","nativeSrc":"6089:2:88","nodeType":"YulLiteral","src":"6089:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6074:3:88","nodeType":"YulIdentifier","src":"6074:3:88"},"nativeSrc":"6074:18:88","nodeType":"YulFunctionCall","src":"6074:18:88"},{"kind":"number","nativeSrc":"6094:2:88","nodeType":"YulLiteral","src":"6094:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"6067:6:88","nodeType":"YulIdentifier","src":"6067:6:88"},"nativeSrc":"6067:30:88","nodeType":"YulFunctionCall","src":"6067:30:88"},"nativeSrc":"6067:30:88","nodeType":"YulExpressionStatement","src":"6067:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6117:9:88","nodeType":"YulIdentifier","src":"6117:9:88"},{"kind":"number","nativeSrc":"6128:2:88","nodeType":"YulLiteral","src":"6128:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6113:3:88","nodeType":"YulIdentifier","src":"6113:3:88"},"nativeSrc":"6113:18:88","nodeType":"YulFunctionCall","src":"6113:18:88"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"6133:34:88","nodeType":"YulLiteral","src":"6133:34:88","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"6106:6:88","nodeType":"YulIdentifier","src":"6106:6:88"},"nativeSrc":"6106:62:88","nodeType":"YulFunctionCall","src":"6106:62:88"},"nativeSrc":"6106:62:88","nodeType":"YulExpressionStatement","src":"6106:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6188:9:88","nodeType":"YulIdentifier","src":"6188:9:88"},{"kind":"number","nativeSrc":"6199:2:88","nodeType":"YulLiteral","src":"6199:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6184:3:88","nodeType":"YulIdentifier","src":"6184:3:88"},"nativeSrc":"6184:18:88","nodeType":"YulFunctionCall","src":"6184:18:88"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"6204:7:88","nodeType":"YulLiteral","src":"6204:7:88","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"6177:6:88","nodeType":"YulIdentifier","src":"6177:6:88"},"nativeSrc":"6177:35:88","nodeType":"YulFunctionCall","src":"6177:35:88"},"nativeSrc":"6177:35:88","nodeType":"YulExpressionStatement","src":"6177:35:88"},{"nativeSrc":"6221:27:88","nodeType":"YulAssignment","src":"6221:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6233:9:88","nodeType":"YulIdentifier","src":"6233:9:88"},{"kind":"number","nativeSrc":"6244:3:88","nodeType":"YulLiteral","src":"6244:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6229:3:88","nodeType":"YulIdentifier","src":"6229:3:88"},"nativeSrc":"6229:19:88","nodeType":"YulFunctionCall","src":"6229:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6221:4:88","nodeType":"YulIdentifier","src":"6221:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5853:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6004:9:88","nodeType":"YulTypedName","src":"6004:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6018:4:88","nodeType":"YulTypedName","src":"6018:4:88","type":""}],"src":"5853:401:88"},{"body":{"nativeSrc":"6433:181:88","nodeType":"YulBlock","src":"6433:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6450:9:88","nodeType":"YulIdentifier","src":"6450:9:88"},{"kind":"number","nativeSrc":"6461:2:88","nodeType":"YulLiteral","src":"6461:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6443:6:88","nodeType":"YulIdentifier","src":"6443:6:88"},"nativeSrc":"6443:21:88","nodeType":"YulFunctionCall","src":"6443:21:88"},"nativeSrc":"6443:21:88","nodeType":"YulExpressionStatement","src":"6443:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6484:9:88","nodeType":"YulIdentifier","src":"6484:9:88"},{"kind":"number","nativeSrc":"6495:2:88","nodeType":"YulLiteral","src":"6495:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6480:3:88","nodeType":"YulIdentifier","src":"6480:3:88"},"nativeSrc":"6480:18:88","nodeType":"YulFunctionCall","src":"6480:18:88"},{"kind":"number","nativeSrc":"6500:2:88","nodeType":"YulLiteral","src":"6500:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"6473:6:88","nodeType":"YulIdentifier","src":"6473:6:88"},"nativeSrc":"6473:30:88","nodeType":"YulFunctionCall","src":"6473:30:88"},"nativeSrc":"6473:30:88","nodeType":"YulExpressionStatement","src":"6473:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6523:9:88","nodeType":"YulIdentifier","src":"6523:9:88"},{"kind":"number","nativeSrc":"6534:2:88","nodeType":"YulLiteral","src":"6534:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6519:3:88","nodeType":"YulIdentifier","src":"6519:3:88"},"nativeSrc":"6519:18:88","nodeType":"YulFunctionCall","src":"6519:18:88"},{"hexValue":"455243343632363a207769746864726177206d6f7265207468616e206d6178","kind":"string","nativeSrc":"6539:33:88","nodeType":"YulLiteral","src":"6539:33:88","type":"","value":"ERC4626: withdraw more than max"}],"functionName":{"name":"mstore","nativeSrc":"6512:6:88","nodeType":"YulIdentifier","src":"6512:6:88"},"nativeSrc":"6512:61:88","nodeType":"YulFunctionCall","src":"6512:61:88"},"nativeSrc":"6512:61:88","nodeType":"YulExpressionStatement","src":"6512:61:88"},{"nativeSrc":"6582:26:88","nodeType":"YulAssignment","src":"6582:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6594:9:88","nodeType":"YulIdentifier","src":"6594:9:88"},{"kind":"number","nativeSrc":"6605:2:88","nodeType":"YulLiteral","src":"6605:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6590:3:88","nodeType":"YulIdentifier","src":"6590:3:88"},"nativeSrc":"6590:18:88","nodeType":"YulFunctionCall","src":"6590:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6582:4:88","nodeType":"YulIdentifier","src":"6582:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d33bd82b6352ef75960e453c6162657943d72f718df3c8a607eeb1427f0aa42__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6259:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6410:9:88","nodeType":"YulTypedName","src":"6410:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6424:4:88","nodeType":"YulTypedName","src":"6424:4:88","type":""}],"src":"6259:355:88"},{"body":{"nativeSrc":"6793:179:88","nodeType":"YulBlock","src":"6793:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6810:9:88","nodeType":"YulIdentifier","src":"6810:9:88"},{"kind":"number","nativeSrc":"6821:2:88","nodeType":"YulLiteral","src":"6821:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6803:6:88","nodeType":"YulIdentifier","src":"6803:6:88"},"nativeSrc":"6803:21:88","nodeType":"YulFunctionCall","src":"6803:21:88"},"nativeSrc":"6803:21:88","nodeType":"YulExpressionStatement","src":"6803:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6844:9:88","nodeType":"YulIdentifier","src":"6844:9:88"},{"kind":"number","nativeSrc":"6855:2:88","nodeType":"YulLiteral","src":"6855:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6840:3:88","nodeType":"YulIdentifier","src":"6840:3:88"},"nativeSrc":"6840:18:88","nodeType":"YulFunctionCall","src":"6840:18:88"},{"kind":"number","nativeSrc":"6860:2:88","nodeType":"YulLiteral","src":"6860:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"6833:6:88","nodeType":"YulIdentifier","src":"6833:6:88"},"nativeSrc":"6833:30:88","nodeType":"YulFunctionCall","src":"6833:30:88"},"nativeSrc":"6833:30:88","nodeType":"YulExpressionStatement","src":"6833:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6883:9:88","nodeType":"YulIdentifier","src":"6883:9:88"},{"kind":"number","nativeSrc":"6894:2:88","nodeType":"YulLiteral","src":"6894:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6879:3:88","nodeType":"YulIdentifier","src":"6879:3:88"},"nativeSrc":"6879:18:88","nodeType":"YulFunctionCall","src":"6879:18:88"},{"hexValue":"455243343632363a2072656465656d206d6f7265207468616e206d6178","kind":"string","nativeSrc":"6899:31:88","nodeType":"YulLiteral","src":"6899:31:88","type":"","value":"ERC4626: redeem more than max"}],"functionName":{"name":"mstore","nativeSrc":"6872:6:88","nodeType":"YulIdentifier","src":"6872:6:88"},"nativeSrc":"6872:59:88","nodeType":"YulFunctionCall","src":"6872:59:88"},"nativeSrc":"6872:59:88","nodeType":"YulExpressionStatement","src":"6872:59:88"},{"nativeSrc":"6940:26:88","nodeType":"YulAssignment","src":"6940:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6952:9:88","nodeType":"YulIdentifier","src":"6952:9:88"},{"kind":"number","nativeSrc":"6963:2:88","nodeType":"YulLiteral","src":"6963:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6948:3:88","nodeType":"YulIdentifier","src":"6948:3:88"},"nativeSrc":"6948:18:88","nodeType":"YulFunctionCall","src":"6948:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6940:4:88","nodeType":"YulIdentifier","src":"6940:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3cf75848883fee8cd3a46e6e14bbbd331bc8d0caaef08fbe607c62e5fba35c6d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6619:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6770:9:88","nodeType":"YulTypedName","src":"6770:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6784:4:88","nodeType":"YulTypedName","src":"6784:4:88","type":""}],"src":"6619:353:88"},{"body":{"nativeSrc":"7020:93:88","nodeType":"YulBlock","src":"7020:93:88","statements":[{"body":{"nativeSrc":"7056:22:88","nodeType":"YulBlock","src":"7056:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7058:16:88","nodeType":"YulIdentifier","src":"7058:16:88"},"nativeSrc":"7058:18:88","nodeType":"YulFunctionCall","src":"7058:18:88"},"nativeSrc":"7058:18:88","nodeType":"YulExpressionStatement","src":"7058:18:88"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"7036:5:88","nodeType":"YulIdentifier","src":"7036:5:88"},{"arguments":[{"kind":"number","nativeSrc":"7047:3:88","nodeType":"YulLiteral","src":"7047:3:88","type":"","value":"255"},{"kind":"number","nativeSrc":"7052:1:88","nodeType":"YulLiteral","src":"7052:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7043:3:88","nodeType":"YulIdentifier","src":"7043:3:88"},"nativeSrc":"7043:11:88","nodeType":"YulFunctionCall","src":"7043:11:88"}],"functionName":{"name":"eq","nativeSrc":"7033:2:88","nodeType":"YulIdentifier","src":"7033:2:88"},"nativeSrc":"7033:22:88","nodeType":"YulFunctionCall","src":"7033:22:88"},"nativeSrc":"7030:48:88","nodeType":"YulIf","src":"7030:48:88"},{"nativeSrc":"7087:20:88","nodeType":"YulAssignment","src":"7087:20:88","value":{"arguments":[{"kind":"number","nativeSrc":"7098:1:88","nodeType":"YulLiteral","src":"7098:1:88","type":"","value":"0"},{"name":"value","nativeSrc":"7101:5:88","nodeType":"YulIdentifier","src":"7101:5:88"}],"functionName":{"name":"sub","nativeSrc":"7094:3:88","nodeType":"YulIdentifier","src":"7094:3:88"},"nativeSrc":"7094:13:88","nodeType":"YulFunctionCall","src":"7094:13:88"},"variableNames":[{"name":"ret","nativeSrc":"7087:3:88","nodeType":"YulIdentifier","src":"7087:3:88"}]}]},"name":"negate_t_int256","nativeSrc":"6977:136:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7002:5:88","nodeType":"YulTypedName","src":"7002:5:88","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7012:3:88","nodeType":"YulTypedName","src":"7012:3:88","type":""}],"src":"6977:136:88"},{"body":{"nativeSrc":"7187:306:88","nodeType":"YulBlock","src":"7187:306:88","statements":[{"nativeSrc":"7197:10:88","nodeType":"YulAssignment","src":"7197:10:88","value":{"kind":"number","nativeSrc":"7206:1:88","nodeType":"YulLiteral","src":"7206:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7197:5:88","nodeType":"YulIdentifier","src":"7197:5:88"}]},{"nativeSrc":"7216:13:88","nodeType":"YulAssignment","src":"7216:13:88","value":{"name":"_base","nativeSrc":"7224:5:88","nodeType":"YulIdentifier","src":"7224:5:88"},"variableNames":[{"name":"base","nativeSrc":"7216:4:88","nodeType":"YulIdentifier","src":"7216:4:88"}]},{"body":{"nativeSrc":"7274:213:88","nodeType":"YulBlock","src":"7274:213:88","statements":[{"body":{"nativeSrc":"7316:22:88","nodeType":"YulBlock","src":"7316:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7318:16:88","nodeType":"YulIdentifier","src":"7318:16:88"},"nativeSrc":"7318:18:88","nodeType":"YulFunctionCall","src":"7318:18:88"},"nativeSrc":"7318:18:88","nodeType":"YulExpressionStatement","src":"7318:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7294:4:88","nodeType":"YulIdentifier","src":"7294:4:88"},{"arguments":[{"name":"max","nativeSrc":"7304:3:88","nodeType":"YulIdentifier","src":"7304:3:88"},{"name":"base","nativeSrc":"7309:4:88","nodeType":"YulIdentifier","src":"7309:4:88"}],"functionName":{"name":"div","nativeSrc":"7300:3:88","nodeType":"YulIdentifier","src":"7300:3:88"},"nativeSrc":"7300:14:88","nodeType":"YulFunctionCall","src":"7300:14:88"}],"functionName":{"name":"gt","nativeSrc":"7291:2:88","nodeType":"YulIdentifier","src":"7291:2:88"},"nativeSrc":"7291:24:88","nodeType":"YulFunctionCall","src":"7291:24:88"},"nativeSrc":"7288:50:88","nodeType":"YulIf","src":"7288:50:88"},{"body":{"nativeSrc":"7371:29:88","nodeType":"YulBlock","src":"7371:29:88","statements":[{"nativeSrc":"7373:25:88","nodeType":"YulAssignment","src":"7373:25:88","value":{"arguments":[{"name":"power","nativeSrc":"7386:5:88","nodeType":"YulIdentifier","src":"7386:5:88"},{"name":"base","nativeSrc":"7393:4:88","nodeType":"YulIdentifier","src":"7393:4:88"}],"functionName":{"name":"mul","nativeSrc":"7382:3:88","nodeType":"YulIdentifier","src":"7382:3:88"},"nativeSrc":"7382:16:88","nodeType":"YulFunctionCall","src":"7382:16:88"},"variableNames":[{"name":"power","nativeSrc":"7373:5:88","nodeType":"YulIdentifier","src":"7373:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7358:8:88","nodeType":"YulIdentifier","src":"7358:8:88"},{"kind":"number","nativeSrc":"7368:1:88","nodeType":"YulLiteral","src":"7368:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"7354:3:88","nodeType":"YulIdentifier","src":"7354:3:88"},"nativeSrc":"7354:16:88","nodeType":"YulFunctionCall","src":"7354:16:88"},"nativeSrc":"7351:49:88","nodeType":"YulIf","src":"7351:49:88"},{"nativeSrc":"7413:23:88","nodeType":"YulAssignment","src":"7413:23:88","value":{"arguments":[{"name":"base","nativeSrc":"7425:4:88","nodeType":"YulIdentifier","src":"7425:4:88"},{"name":"base","nativeSrc":"7431:4:88","nodeType":"YulIdentifier","src":"7431:4:88"}],"functionName":{"name":"mul","nativeSrc":"7421:3:88","nodeType":"YulIdentifier","src":"7421:3:88"},"nativeSrc":"7421:15:88","nodeType":"YulFunctionCall","src":"7421:15:88"},"variableNames":[{"name":"base","nativeSrc":"7413:4:88","nodeType":"YulIdentifier","src":"7413:4:88"}]},{"nativeSrc":"7449:28:88","nodeType":"YulAssignment","src":"7449:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"7465:1:88","nodeType":"YulLiteral","src":"7465:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"7468:8:88","nodeType":"YulIdentifier","src":"7468:8:88"}],"functionName":{"name":"shr","nativeSrc":"7461:3:88","nodeType":"YulIdentifier","src":"7461:3:88"},"nativeSrc":"7461:16:88","nodeType":"YulFunctionCall","src":"7461:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"7449:8:88","nodeType":"YulIdentifier","src":"7449:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7249:8:88","nodeType":"YulIdentifier","src":"7249:8:88"},{"kind":"number","nativeSrc":"7259:1:88","nodeType":"YulLiteral","src":"7259:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7246:2:88","nodeType":"YulIdentifier","src":"7246:2:88"},"nativeSrc":"7246:15:88","nodeType":"YulFunctionCall","src":"7246:15:88"},"nativeSrc":"7238:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"7262:3:88","nodeType":"YulBlock","src":"7262:3:88","statements":[]},"pre":{"nativeSrc":"7242:3:88","nodeType":"YulBlock","src":"7242:3:88","statements":[]},"src":"7238:249:88"}]},"name":"checked_exp_helper","nativeSrc":"7118:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"7146:5:88","nodeType":"YulTypedName","src":"7146:5:88","type":""},{"name":"exponent","nativeSrc":"7153:8:88","nodeType":"YulTypedName","src":"7153:8:88","type":""},{"name":"max","nativeSrc":"7163:3:88","nodeType":"YulTypedName","src":"7163:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7171:5:88","nodeType":"YulTypedName","src":"7171:5:88","type":""},{"name":"base","nativeSrc":"7178:4:88","nodeType":"YulTypedName","src":"7178:4:88","type":""}],"src":"7118:375:88"},{"body":{"nativeSrc":"7557:843:88","nodeType":"YulBlock","src":"7557:843:88","statements":[{"body":{"nativeSrc":"7595:52:88","nodeType":"YulBlock","src":"7595:52:88","statements":[{"nativeSrc":"7609:10:88","nodeType":"YulAssignment","src":"7609:10:88","value":{"kind":"number","nativeSrc":"7618:1:88","nodeType":"YulLiteral","src":"7618:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7609:5:88","nodeType":"YulIdentifier","src":"7609:5:88"}]},{"nativeSrc":"7632:5:88","nodeType":"YulLeave","src":"7632:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7577:8:88","nodeType":"YulIdentifier","src":"7577:8:88"}],"functionName":{"name":"iszero","nativeSrc":"7570:6:88","nodeType":"YulIdentifier","src":"7570:6:88"},"nativeSrc":"7570:16:88","nodeType":"YulFunctionCall","src":"7570:16:88"},"nativeSrc":"7567:80:88","nodeType":"YulIf","src":"7567:80:88"},{"body":{"nativeSrc":"7680:52:88","nodeType":"YulBlock","src":"7680:52:88","statements":[{"nativeSrc":"7694:10:88","nodeType":"YulAssignment","src":"7694:10:88","value":{"kind":"number","nativeSrc":"7703:1:88","nodeType":"YulLiteral","src":"7703:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"7694:5:88","nodeType":"YulIdentifier","src":"7694:5:88"}]},{"nativeSrc":"7717:5:88","nodeType":"YulLeave","src":"7717:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7666:4:88","nodeType":"YulIdentifier","src":"7666:4:88"}],"functionName":{"name":"iszero","nativeSrc":"7659:6:88","nodeType":"YulIdentifier","src":"7659:6:88"},"nativeSrc":"7659:12:88","nodeType":"YulFunctionCall","src":"7659:12:88"},"nativeSrc":"7656:76:88","nodeType":"YulIf","src":"7656:76:88"},{"cases":[{"body":{"nativeSrc":"7768:52:88","nodeType":"YulBlock","src":"7768:52:88","statements":[{"nativeSrc":"7782:10:88","nodeType":"YulAssignment","src":"7782:10:88","value":{"kind":"number","nativeSrc":"7791:1:88","nodeType":"YulLiteral","src":"7791:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7782:5:88","nodeType":"YulIdentifier","src":"7782:5:88"}]},{"nativeSrc":"7805:5:88","nodeType":"YulLeave","src":"7805:5:88"}]},"nativeSrc":"7761:59:88","nodeType":"YulCase","src":"7761:59:88","value":{"kind":"number","nativeSrc":"7766:1:88","nodeType":"YulLiteral","src":"7766:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"7836:167:88","nodeType":"YulBlock","src":"7836:167:88","statements":[{"body":{"nativeSrc":"7871:22:88","nodeType":"YulBlock","src":"7871:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7873:16:88","nodeType":"YulIdentifier","src":"7873:16:88"},"nativeSrc":"7873:18:88","nodeType":"YulFunctionCall","src":"7873:18:88"},"nativeSrc":"7873:18:88","nodeType":"YulExpressionStatement","src":"7873:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7856:8:88","nodeType":"YulIdentifier","src":"7856:8:88"},{"kind":"number","nativeSrc":"7866:3:88","nodeType":"YulLiteral","src":"7866:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"7853:2:88","nodeType":"YulIdentifier","src":"7853:2:88"},"nativeSrc":"7853:17:88","nodeType":"YulFunctionCall","src":"7853:17:88"},"nativeSrc":"7850:43:88","nodeType":"YulIf","src":"7850:43:88"},{"nativeSrc":"7906:25:88","nodeType":"YulAssignment","src":"7906:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"7919:8:88","nodeType":"YulIdentifier","src":"7919:8:88"},{"kind":"number","nativeSrc":"7929:1:88","nodeType":"YulLiteral","src":"7929:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7915:3:88","nodeType":"YulIdentifier","src":"7915:3:88"},"nativeSrc":"7915:16:88","nodeType":"YulFunctionCall","src":"7915:16:88"},"variableNames":[{"name":"power","nativeSrc":"7906:5:88","nodeType":"YulIdentifier","src":"7906:5:88"}]},{"nativeSrc":"7944:11:88","nodeType":"YulVariableDeclaration","src":"7944:11:88","value":{"kind":"number","nativeSrc":"7954:1:88","nodeType":"YulLiteral","src":"7954:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"7948:2:88","nodeType":"YulTypedName","src":"7948:2:88","type":""}]},{"nativeSrc":"7968:7:88","nodeType":"YulAssignment","src":"7968:7:88","value":{"kind":"number","nativeSrc":"7974:1:88","nodeType":"YulLiteral","src":"7974:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"7968:2:88","nodeType":"YulIdentifier","src":"7968:2:88"}]},{"nativeSrc":"7988:5:88","nodeType":"YulLeave","src":"7988:5:88"}]},"nativeSrc":"7829:174:88","nodeType":"YulCase","src":"7829:174:88","value":{"kind":"number","nativeSrc":"7834:1:88","nodeType":"YulLiteral","src":"7834:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"7748:4:88","nodeType":"YulIdentifier","src":"7748:4:88"},"nativeSrc":"7741:262:88","nodeType":"YulSwitch","src":"7741:262:88"},{"body":{"nativeSrc":"8101:114:88","nodeType":"YulBlock","src":"8101:114:88","statements":[{"nativeSrc":"8115:28:88","nodeType":"YulAssignment","src":"8115:28:88","value":{"arguments":[{"name":"base","nativeSrc":"8128:4:88","nodeType":"YulIdentifier","src":"8128:4:88"},{"name":"exponent","nativeSrc":"8134:8:88","nodeType":"YulIdentifier","src":"8134:8:88"}],"functionName":{"name":"exp","nativeSrc":"8124:3:88","nodeType":"YulIdentifier","src":"8124:3:88"},"nativeSrc":"8124:19:88","nodeType":"YulFunctionCall","src":"8124:19:88"},"variableNames":[{"name":"power","nativeSrc":"8115:5:88","nodeType":"YulIdentifier","src":"8115:5:88"}]},{"nativeSrc":"8156:11:88","nodeType":"YulVariableDeclaration","src":"8156:11:88","value":{"kind":"number","nativeSrc":"8166:1:88","nodeType":"YulLiteral","src":"8166:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"8160:2:88","nodeType":"YulTypedName","src":"8160:2:88","type":""}]},{"nativeSrc":"8180:7:88","nodeType":"YulAssignment","src":"8180:7:88","value":{"kind":"number","nativeSrc":"8186:1:88","nodeType":"YulLiteral","src":"8186:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"8180:2:88","nodeType":"YulIdentifier","src":"8180:2:88"}]},{"nativeSrc":"8200:5:88","nodeType":"YulLeave","src":"8200:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8025:4:88","nodeType":"YulIdentifier","src":"8025:4:88"},{"kind":"number","nativeSrc":"8031:2:88","nodeType":"YulLiteral","src":"8031:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"8022:2:88","nodeType":"YulIdentifier","src":"8022:2:88"},"nativeSrc":"8022:12:88","nodeType":"YulFunctionCall","src":"8022:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"8039:8:88","nodeType":"YulIdentifier","src":"8039:8:88"},{"kind":"number","nativeSrc":"8049:2:88","nodeType":"YulLiteral","src":"8049:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"8036:2:88","nodeType":"YulIdentifier","src":"8036:2:88"},"nativeSrc":"8036:16:88","nodeType":"YulFunctionCall","src":"8036:16:88"}],"functionName":{"name":"and","nativeSrc":"8018:3:88","nodeType":"YulIdentifier","src":"8018:3:88"},"nativeSrc":"8018:35:88","nodeType":"YulFunctionCall","src":"8018:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8062:4:88","nodeType":"YulIdentifier","src":"8062:4:88"},{"kind":"number","nativeSrc":"8068:3:88","nodeType":"YulLiteral","src":"8068:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"8059:2:88","nodeType":"YulIdentifier","src":"8059:2:88"},"nativeSrc":"8059:13:88","nodeType":"YulFunctionCall","src":"8059:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"8077:8:88","nodeType":"YulIdentifier","src":"8077:8:88"},{"kind":"number","nativeSrc":"8087:2:88","nodeType":"YulLiteral","src":"8087:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"8074:2:88","nodeType":"YulIdentifier","src":"8074:2:88"},"nativeSrc":"8074:16:88","nodeType":"YulFunctionCall","src":"8074:16:88"}],"functionName":{"name":"and","nativeSrc":"8055:3:88","nodeType":"YulIdentifier","src":"8055:3:88"},"nativeSrc":"8055:36:88","nodeType":"YulFunctionCall","src":"8055:36:88"}],"functionName":{"name":"or","nativeSrc":"8015:2:88","nodeType":"YulIdentifier","src":"8015:2:88"},"nativeSrc":"8015:77:88","nodeType":"YulFunctionCall","src":"8015:77:88"},"nativeSrc":"8012:203:88","nodeType":"YulIf","src":"8012:203:88"},{"nativeSrc":"8224:65:88","nodeType":"YulVariableDeclaration","src":"8224:65:88","value":{"arguments":[{"name":"base","nativeSrc":"8266:4:88","nodeType":"YulIdentifier","src":"8266:4:88"},{"name":"exponent","nativeSrc":"8272:8:88","nodeType":"YulIdentifier","src":"8272:8:88"},{"arguments":[{"kind":"number","nativeSrc":"8286:1:88","nodeType":"YulLiteral","src":"8286:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"8282:3:88","nodeType":"YulIdentifier","src":"8282:3:88"},"nativeSrc":"8282:6:88","nodeType":"YulFunctionCall","src":"8282:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"8247:18:88","nodeType":"YulIdentifier","src":"8247:18:88"},"nativeSrc":"8247:42:88","nodeType":"YulFunctionCall","src":"8247:42:88"},"variables":[{"name":"power_1","nativeSrc":"8228:7:88","nodeType":"YulTypedName","src":"8228:7:88","type":""},{"name":"base_1","nativeSrc":"8237:6:88","nodeType":"YulTypedName","src":"8237:6:88","type":""}]},{"body":{"nativeSrc":"8334:22:88","nodeType":"YulBlock","src":"8334:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8336:16:88","nodeType":"YulIdentifier","src":"8336:16:88"},"nativeSrc":"8336:18:88","nodeType":"YulFunctionCall","src":"8336:18:88"},"nativeSrc":"8336:18:88","nodeType":"YulExpressionStatement","src":"8336:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"8304:7:88","nodeType":"YulIdentifier","src":"8304:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8321:1:88","nodeType":"YulLiteral","src":"8321:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"8317:3:88","nodeType":"YulIdentifier","src":"8317:3:88"},"nativeSrc":"8317:6:88","nodeType":"YulFunctionCall","src":"8317:6:88"},{"name":"base_1","nativeSrc":"8325:6:88","nodeType":"YulIdentifier","src":"8325:6:88"}],"functionName":{"name":"div","nativeSrc":"8313:3:88","nodeType":"YulIdentifier","src":"8313:3:88"},"nativeSrc":"8313:19:88","nodeType":"YulFunctionCall","src":"8313:19:88"}],"functionName":{"name":"gt","nativeSrc":"8301:2:88","nodeType":"YulIdentifier","src":"8301:2:88"},"nativeSrc":"8301:32:88","nodeType":"YulFunctionCall","src":"8301:32:88"},"nativeSrc":"8298:58:88","nodeType":"YulIf","src":"8298:58:88"},{"nativeSrc":"8365:29:88","nodeType":"YulAssignment","src":"8365:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"8378:7:88","nodeType":"YulIdentifier","src":"8378:7:88"},{"name":"base_1","nativeSrc":"8387:6:88","nodeType":"YulIdentifier","src":"8387:6:88"}],"functionName":{"name":"mul","nativeSrc":"8374:3:88","nodeType":"YulIdentifier","src":"8374:3:88"},"nativeSrc":"8374:20:88","nodeType":"YulFunctionCall","src":"8374:20:88"},"variableNames":[{"name":"power","nativeSrc":"8365:5:88","nodeType":"YulIdentifier","src":"8365:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"7498:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"7528:4:88","nodeType":"YulTypedName","src":"7528:4:88","type":""},{"name":"exponent","nativeSrc":"7534:8:88","nodeType":"YulTypedName","src":"7534:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7547:5:88","nodeType":"YulTypedName","src":"7547:5:88","type":""}],"src":"7498:902:88"},{"body":{"nativeSrc":"8473:72:88","nodeType":"YulBlock","src":"8473:72:88","statements":[{"nativeSrc":"8483:56:88","nodeType":"YulAssignment","src":"8483:56:88","value":{"arguments":[{"name":"base","nativeSrc":"8513:4:88","nodeType":"YulIdentifier","src":"8513:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"8523:8:88","nodeType":"YulIdentifier","src":"8523:8:88"},{"kind":"number","nativeSrc":"8533:4:88","nodeType":"YulLiteral","src":"8533:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8519:3:88","nodeType":"YulIdentifier","src":"8519:3:88"},"nativeSrc":"8519:19:88","nodeType":"YulFunctionCall","src":"8519:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"8492:20:88","nodeType":"YulIdentifier","src":"8492:20:88"},"nativeSrc":"8492:47:88","nodeType":"YulFunctionCall","src":"8492:47:88"},"variableNames":[{"name":"power","nativeSrc":"8483:5:88","nodeType":"YulIdentifier","src":"8483:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"8405:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8444:4:88","nodeType":"YulTypedName","src":"8444:4:88","type":""},{"name":"exponent","nativeSrc":"8450:8:88","nodeType":"YulTypedName","src":"8450:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8463:5:88","nodeType":"YulTypedName","src":"8463:5:88","type":""}],"src":"8405:140:88"},{"body":{"nativeSrc":"8724:226:88","nodeType":"YulBlock","src":"8724:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8741:9:88","nodeType":"YulIdentifier","src":"8741:9:88"},{"kind":"number","nativeSrc":"8752:2:88","nodeType":"YulLiteral","src":"8752:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8734:6:88","nodeType":"YulIdentifier","src":"8734:6:88"},"nativeSrc":"8734:21:88","nodeType":"YulFunctionCall","src":"8734:21:88"},"nativeSrc":"8734:21:88","nodeType":"YulExpressionStatement","src":"8734:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8775:9:88","nodeType":"YulIdentifier","src":"8775:9:88"},{"kind":"number","nativeSrc":"8786:2:88","nodeType":"YulLiteral","src":"8786:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8771:3:88","nodeType":"YulIdentifier","src":"8771:3:88"},"nativeSrc":"8771:18:88","nodeType":"YulFunctionCall","src":"8771:18:88"},{"kind":"number","nativeSrc":"8791:2:88","nodeType":"YulLiteral","src":"8791:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"8764:6:88","nodeType":"YulIdentifier","src":"8764:6:88"},"nativeSrc":"8764:30:88","nodeType":"YulFunctionCall","src":"8764:30:88"},"nativeSrc":"8764:30:88","nodeType":"YulExpressionStatement","src":"8764:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8814:9:88","nodeType":"YulIdentifier","src":"8814:9:88"},{"kind":"number","nativeSrc":"8825:2:88","nodeType":"YulLiteral","src":"8825:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8810:3:88","nodeType":"YulIdentifier","src":"8810:3:88"},"nativeSrc":"8810:18:88","nodeType":"YulFunctionCall","src":"8810:18:88"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"8830:34:88","nodeType":"YulLiteral","src":"8830:34:88","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"8803:6:88","nodeType":"YulIdentifier","src":"8803:6:88"},"nativeSrc":"8803:62:88","nodeType":"YulFunctionCall","src":"8803:62:88"},"nativeSrc":"8803:62:88","nodeType":"YulExpressionStatement","src":"8803:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8885:9:88","nodeType":"YulIdentifier","src":"8885:9:88"},{"kind":"number","nativeSrc":"8896:2:88","nodeType":"YulLiteral","src":"8896:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8881:3:88","nodeType":"YulIdentifier","src":"8881:3:88"},"nativeSrc":"8881:18:88","nodeType":"YulFunctionCall","src":"8881:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"8901:6:88","nodeType":"YulLiteral","src":"8901:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8874:6:88","nodeType":"YulIdentifier","src":"8874:6:88"},"nativeSrc":"8874:34:88","nodeType":"YulFunctionCall","src":"8874:34:88"},"nativeSrc":"8874:34:88","nodeType":"YulExpressionStatement","src":"8874:34:88"},{"nativeSrc":"8917:27:88","nodeType":"YulAssignment","src":"8917:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8929:9:88","nodeType":"YulIdentifier","src":"8929:9:88"},{"kind":"number","nativeSrc":"8940:3:88","nodeType":"YulLiteral","src":"8940:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8925:3:88","nodeType":"YulIdentifier","src":"8925:3:88"},"nativeSrc":"8925:19:88","nodeType":"YulFunctionCall","src":"8925:19:88"},"variableNames":[{"name":"tail","nativeSrc":"8917:4:88","nodeType":"YulIdentifier","src":"8917:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8550:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8701:9:88","nodeType":"YulTypedName","src":"8701:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8715:4:88","nodeType":"YulTypedName","src":"8715:4:88","type":""}],"src":"8550:400:88"},{"body":{"nativeSrc":"9129:224:88","nodeType":"YulBlock","src":"9129:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9146:9:88","nodeType":"YulIdentifier","src":"9146:9:88"},{"kind":"number","nativeSrc":"9157:2:88","nodeType":"YulLiteral","src":"9157:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9139:6:88","nodeType":"YulIdentifier","src":"9139:6:88"},"nativeSrc":"9139:21:88","nodeType":"YulFunctionCall","src":"9139:21:88"},"nativeSrc":"9139:21:88","nodeType":"YulExpressionStatement","src":"9139:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9180:9:88","nodeType":"YulIdentifier","src":"9180:9:88"},{"kind":"number","nativeSrc":"9191:2:88","nodeType":"YulLiteral","src":"9191:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9176:3:88","nodeType":"YulIdentifier","src":"9176:3:88"},"nativeSrc":"9176:18:88","nodeType":"YulFunctionCall","src":"9176:18:88"},{"kind":"number","nativeSrc":"9196:2:88","nodeType":"YulLiteral","src":"9196:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"9169:6:88","nodeType":"YulIdentifier","src":"9169:6:88"},"nativeSrc":"9169:30:88","nodeType":"YulFunctionCall","src":"9169:30:88"},"nativeSrc":"9169:30:88","nodeType":"YulExpressionStatement","src":"9169:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9219:9:88","nodeType":"YulIdentifier","src":"9219:9:88"},{"kind":"number","nativeSrc":"9230:2:88","nodeType":"YulLiteral","src":"9230:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9215:3:88","nodeType":"YulIdentifier","src":"9215:3:88"},"nativeSrc":"9215:18:88","nodeType":"YulFunctionCall","src":"9215:18:88"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"9235:34:88","nodeType":"YulLiteral","src":"9235:34:88","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"9208:6:88","nodeType":"YulIdentifier","src":"9208:6:88"},"nativeSrc":"9208:62:88","nodeType":"YulFunctionCall","src":"9208:62:88"},"nativeSrc":"9208:62:88","nodeType":"YulExpressionStatement","src":"9208:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9290:9:88","nodeType":"YulIdentifier","src":"9290:9:88"},{"kind":"number","nativeSrc":"9301:2:88","nodeType":"YulLiteral","src":"9301:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9286:3:88","nodeType":"YulIdentifier","src":"9286:3:88"},"nativeSrc":"9286:18:88","nodeType":"YulFunctionCall","src":"9286:18:88"},{"hexValue":"7373","kind":"string","nativeSrc":"9306:4:88","nodeType":"YulLiteral","src":"9306:4:88","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"9279:6:88","nodeType":"YulIdentifier","src":"9279:6:88"},"nativeSrc":"9279:32:88","nodeType":"YulFunctionCall","src":"9279:32:88"},"nativeSrc":"9279:32:88","nodeType":"YulExpressionStatement","src":"9279:32:88"},{"nativeSrc":"9320:27:88","nodeType":"YulAssignment","src":"9320:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9332:9:88","nodeType":"YulIdentifier","src":"9332:9:88"},{"kind":"number","nativeSrc":"9343:3:88","nodeType":"YulLiteral","src":"9343:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9328:3:88","nodeType":"YulIdentifier","src":"9328:3:88"},"nativeSrc":"9328:19:88","nodeType":"YulFunctionCall","src":"9328:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9320:4:88","nodeType":"YulIdentifier","src":"9320:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8955:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9106:9:88","nodeType":"YulTypedName","src":"9106:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9120:4:88","nodeType":"YulTypedName","src":"9120:4:88","type":""}],"src":"8955:398:88"},{"body":{"nativeSrc":"9532:179:88","nodeType":"YulBlock","src":"9532:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9549:9:88","nodeType":"YulIdentifier","src":"9549:9:88"},{"kind":"number","nativeSrc":"9560:2:88","nodeType":"YulLiteral","src":"9560:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9542:6:88","nodeType":"YulIdentifier","src":"9542:6:88"},"nativeSrc":"9542:21:88","nodeType":"YulFunctionCall","src":"9542:21:88"},"nativeSrc":"9542:21:88","nodeType":"YulExpressionStatement","src":"9542:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9583:9:88","nodeType":"YulIdentifier","src":"9583:9:88"},{"kind":"number","nativeSrc":"9594:2:88","nodeType":"YulLiteral","src":"9594:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9579:3:88","nodeType":"YulIdentifier","src":"9579:3:88"},"nativeSrc":"9579:18:88","nodeType":"YulFunctionCall","src":"9579:18:88"},{"kind":"number","nativeSrc":"9599:2:88","nodeType":"YulLiteral","src":"9599:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"9572:6:88","nodeType":"YulIdentifier","src":"9572:6:88"},"nativeSrc":"9572:30:88","nodeType":"YulFunctionCall","src":"9572:30:88"},"nativeSrc":"9572:30:88","nodeType":"YulExpressionStatement","src":"9572:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9622:9:88","nodeType":"YulIdentifier","src":"9622:9:88"},{"kind":"number","nativeSrc":"9633:2:88","nodeType":"YulLiteral","src":"9633:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9618:3:88","nodeType":"YulIdentifier","src":"9618:3:88"},"nativeSrc":"9618:18:88","nodeType":"YulFunctionCall","src":"9618:18:88"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"9638:31:88","nodeType":"YulLiteral","src":"9638:31:88","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"9611:6:88","nodeType":"YulIdentifier","src":"9611:6:88"},"nativeSrc":"9611:59:88","nodeType":"YulFunctionCall","src":"9611:59:88"},"nativeSrc":"9611:59:88","nodeType":"YulExpressionStatement","src":"9611:59:88"},{"nativeSrc":"9679:26:88","nodeType":"YulAssignment","src":"9679:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9691:9:88","nodeType":"YulIdentifier","src":"9691:9:88"},{"kind":"number","nativeSrc":"9702:2:88","nodeType":"YulLiteral","src":"9702:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9687:3:88","nodeType":"YulIdentifier","src":"9687:3:88"},"nativeSrc":"9687:18:88","nodeType":"YulFunctionCall","src":"9687:18:88"},"variableNames":[{"name":"tail","nativeSrc":"9679:4:88","nodeType":"YulIdentifier","src":"9679:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9358:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9509:9:88","nodeType":"YulTypedName","src":"9509:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9523:4:88","nodeType":"YulTypedName","src":"9523:4:88","type":""}],"src":"9358:353:88"},{"body":{"nativeSrc":"9890:227:88","nodeType":"YulBlock","src":"9890:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9907:9:88","nodeType":"YulIdentifier","src":"9907:9:88"},{"kind":"number","nativeSrc":"9918:2:88","nodeType":"YulLiteral","src":"9918:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9900:6:88","nodeType":"YulIdentifier","src":"9900:6:88"},"nativeSrc":"9900:21:88","nodeType":"YulFunctionCall","src":"9900:21:88"},"nativeSrc":"9900:21:88","nodeType":"YulExpressionStatement","src":"9900:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9941:9:88","nodeType":"YulIdentifier","src":"9941:9:88"},{"kind":"number","nativeSrc":"9952:2:88","nodeType":"YulLiteral","src":"9952:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9937:3:88","nodeType":"YulIdentifier","src":"9937:3:88"},"nativeSrc":"9937:18:88","nodeType":"YulFunctionCall","src":"9937:18:88"},{"kind":"number","nativeSrc":"9957:2:88","nodeType":"YulLiteral","src":"9957:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"9930:6:88","nodeType":"YulIdentifier","src":"9930:6:88"},"nativeSrc":"9930:30:88","nodeType":"YulFunctionCall","src":"9930:30:88"},"nativeSrc":"9930:30:88","nodeType":"YulExpressionStatement","src":"9930:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9980:9:88","nodeType":"YulIdentifier","src":"9980:9:88"},{"kind":"number","nativeSrc":"9991:2:88","nodeType":"YulLiteral","src":"9991:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9976:3:88","nodeType":"YulIdentifier","src":"9976:3:88"},"nativeSrc":"9976:18:88","nodeType":"YulFunctionCall","src":"9976:18:88"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"9996:34:88","nodeType":"YulLiteral","src":"9996:34:88","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"9969:6:88","nodeType":"YulIdentifier","src":"9969:6:88"},"nativeSrc":"9969:62:88","nodeType":"YulFunctionCall","src":"9969:62:88"},"nativeSrc":"9969:62:88","nodeType":"YulExpressionStatement","src":"9969:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10051:9:88","nodeType":"YulIdentifier","src":"10051:9:88"},{"kind":"number","nativeSrc":"10062:2:88","nodeType":"YulLiteral","src":"10062:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10047:3:88","nodeType":"YulIdentifier","src":"10047:3:88"},"nativeSrc":"10047:18:88","nodeType":"YulFunctionCall","src":"10047:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"10067:7:88","nodeType":"YulLiteral","src":"10067:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"10040:6:88","nodeType":"YulIdentifier","src":"10040:6:88"},"nativeSrc":"10040:35:88","nodeType":"YulFunctionCall","src":"10040:35:88"},"nativeSrc":"10040:35:88","nodeType":"YulExpressionStatement","src":"10040:35:88"},{"nativeSrc":"10084:27:88","nodeType":"YulAssignment","src":"10084:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10096:9:88","nodeType":"YulIdentifier","src":"10096:9:88"},{"kind":"number","nativeSrc":"10107:3:88","nodeType":"YulLiteral","src":"10107:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10092:3:88","nodeType":"YulIdentifier","src":"10092:3:88"},"nativeSrc":"10092:19:88","nodeType":"YulFunctionCall","src":"10092:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10084:4:88","nodeType":"YulIdentifier","src":"10084:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9716:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9867:9:88","nodeType":"YulTypedName","src":"9867:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9881:4:88","nodeType":"YulTypedName","src":"9881:4:88","type":""}],"src":"9716:401:88"},{"body":{"nativeSrc":"10296:225:88","nodeType":"YulBlock","src":"10296:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10313:9:88","nodeType":"YulIdentifier","src":"10313:9:88"},{"kind":"number","nativeSrc":"10324:2:88","nodeType":"YulLiteral","src":"10324:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10306:6:88","nodeType":"YulIdentifier","src":"10306:6:88"},"nativeSrc":"10306:21:88","nodeType":"YulFunctionCall","src":"10306:21:88"},"nativeSrc":"10306:21:88","nodeType":"YulExpressionStatement","src":"10306:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10347:9:88","nodeType":"YulIdentifier","src":"10347:9:88"},{"kind":"number","nativeSrc":"10358:2:88","nodeType":"YulLiteral","src":"10358:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10343:3:88","nodeType":"YulIdentifier","src":"10343:3:88"},"nativeSrc":"10343:18:88","nodeType":"YulFunctionCall","src":"10343:18:88"},{"kind":"number","nativeSrc":"10363:2:88","nodeType":"YulLiteral","src":"10363:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"10336:6:88","nodeType":"YulIdentifier","src":"10336:6:88"},"nativeSrc":"10336:30:88","nodeType":"YulFunctionCall","src":"10336:30:88"},"nativeSrc":"10336:30:88","nodeType":"YulExpressionStatement","src":"10336:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10386:9:88","nodeType":"YulIdentifier","src":"10386:9:88"},{"kind":"number","nativeSrc":"10397:2:88","nodeType":"YulLiteral","src":"10397:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10382:3:88","nodeType":"YulIdentifier","src":"10382:3:88"},"nativeSrc":"10382:18:88","nodeType":"YulFunctionCall","src":"10382:18:88"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"10402:34:88","nodeType":"YulLiteral","src":"10402:34:88","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"10375:6:88","nodeType":"YulIdentifier","src":"10375:6:88"},"nativeSrc":"10375:62:88","nodeType":"YulFunctionCall","src":"10375:62:88"},"nativeSrc":"10375:62:88","nodeType":"YulExpressionStatement","src":"10375:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10457:9:88","nodeType":"YulIdentifier","src":"10457:9:88"},{"kind":"number","nativeSrc":"10468:2:88","nodeType":"YulLiteral","src":"10468:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10453:3:88","nodeType":"YulIdentifier","src":"10453:3:88"},"nativeSrc":"10453:18:88","nodeType":"YulFunctionCall","src":"10453:18:88"},{"hexValue":"657373","kind":"string","nativeSrc":"10473:5:88","nodeType":"YulLiteral","src":"10473:5:88","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"10446:6:88","nodeType":"YulIdentifier","src":"10446:6:88"},"nativeSrc":"10446:33:88","nodeType":"YulFunctionCall","src":"10446:33:88"},"nativeSrc":"10446:33:88","nodeType":"YulExpressionStatement","src":"10446:33:88"},{"nativeSrc":"10488:27:88","nodeType":"YulAssignment","src":"10488:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10500:9:88","nodeType":"YulIdentifier","src":"10500:9:88"},{"kind":"number","nativeSrc":"10511:3:88","nodeType":"YulLiteral","src":"10511:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10496:3:88","nodeType":"YulIdentifier","src":"10496:3:88"},"nativeSrc":"10496:19:88","nodeType":"YulFunctionCall","src":"10496:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10488:4:88","nodeType":"YulIdentifier","src":"10488:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10122:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10273:9:88","nodeType":"YulTypedName","src":"10273:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10287:4:88","nodeType":"YulTypedName","src":"10287:4:88","type":""}],"src":"10122:399:88"},{"body":{"nativeSrc":"10700:228:88","nodeType":"YulBlock","src":"10700:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10717:9:88","nodeType":"YulIdentifier","src":"10717:9:88"},{"kind":"number","nativeSrc":"10728:2:88","nodeType":"YulLiteral","src":"10728:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10710:6:88","nodeType":"YulIdentifier","src":"10710:6:88"},"nativeSrc":"10710:21:88","nodeType":"YulFunctionCall","src":"10710:21:88"},"nativeSrc":"10710:21:88","nodeType":"YulExpressionStatement","src":"10710:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10751:9:88","nodeType":"YulIdentifier","src":"10751:9:88"},{"kind":"number","nativeSrc":"10762:2:88","nodeType":"YulLiteral","src":"10762:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10747:3:88","nodeType":"YulIdentifier","src":"10747:3:88"},"nativeSrc":"10747:18:88","nodeType":"YulFunctionCall","src":"10747:18:88"},{"kind":"number","nativeSrc":"10767:2:88","nodeType":"YulLiteral","src":"10767:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"10740:6:88","nodeType":"YulIdentifier","src":"10740:6:88"},"nativeSrc":"10740:30:88","nodeType":"YulFunctionCall","src":"10740:30:88"},"nativeSrc":"10740:30:88","nodeType":"YulExpressionStatement","src":"10740:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10790:9:88","nodeType":"YulIdentifier","src":"10790:9:88"},{"kind":"number","nativeSrc":"10801:2:88","nodeType":"YulLiteral","src":"10801:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10786:3:88","nodeType":"YulIdentifier","src":"10786:3:88"},"nativeSrc":"10786:18:88","nodeType":"YulFunctionCall","src":"10786:18:88"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"10806:34:88","nodeType":"YulLiteral","src":"10806:34:88","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"10779:6:88","nodeType":"YulIdentifier","src":"10779:6:88"},"nativeSrc":"10779:62:88","nodeType":"YulFunctionCall","src":"10779:62:88"},"nativeSrc":"10779:62:88","nodeType":"YulExpressionStatement","src":"10779:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10861:9:88","nodeType":"YulIdentifier","src":"10861:9:88"},{"kind":"number","nativeSrc":"10872:2:88","nodeType":"YulLiteral","src":"10872:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10857:3:88","nodeType":"YulIdentifier","src":"10857:3:88"},"nativeSrc":"10857:18:88","nodeType":"YulFunctionCall","src":"10857:18:88"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"10877:8:88","nodeType":"YulLiteral","src":"10877:8:88","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"10850:6:88","nodeType":"YulIdentifier","src":"10850:6:88"},"nativeSrc":"10850:36:88","nodeType":"YulFunctionCall","src":"10850:36:88"},"nativeSrc":"10850:36:88","nodeType":"YulExpressionStatement","src":"10850:36:88"},{"nativeSrc":"10895:27:88","nodeType":"YulAssignment","src":"10895:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"10907:9:88","nodeType":"YulIdentifier","src":"10907:9:88"},{"kind":"number","nativeSrc":"10918:3:88","nodeType":"YulLiteral","src":"10918:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10903:3:88","nodeType":"YulIdentifier","src":"10903:3:88"},"nativeSrc":"10903:19:88","nodeType":"YulFunctionCall","src":"10903:19:88"},"variableNames":[{"name":"tail","nativeSrc":"10895:4:88","nodeType":"YulIdentifier","src":"10895:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10526:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10677:9:88","nodeType":"YulTypedName","src":"10677:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10691:4:88","nodeType":"YulTypedName","src":"10691:4:88","type":""}],"src":"10526:402:88"},{"body":{"nativeSrc":"11014:103:88","nodeType":"YulBlock","src":"11014:103:88","statements":[{"body":{"nativeSrc":"11060:16:88","nodeType":"YulBlock","src":"11060:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11069:1:88","nodeType":"YulLiteral","src":"11069:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11072:1:88","nodeType":"YulLiteral","src":"11072:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11062:6:88","nodeType":"YulIdentifier","src":"11062:6:88"},"nativeSrc":"11062:12:88","nodeType":"YulFunctionCall","src":"11062:12:88"},"nativeSrc":"11062:12:88","nodeType":"YulExpressionStatement","src":"11062:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11035:7:88","nodeType":"YulIdentifier","src":"11035:7:88"},{"name":"headStart","nativeSrc":"11044:9:88","nodeType":"YulIdentifier","src":"11044:9:88"}],"functionName":{"name":"sub","nativeSrc":"11031:3:88","nodeType":"YulIdentifier","src":"11031:3:88"},"nativeSrc":"11031:23:88","nodeType":"YulFunctionCall","src":"11031:23:88"},{"kind":"number","nativeSrc":"11056:2:88","nodeType":"YulLiteral","src":"11056:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11027:3:88","nodeType":"YulIdentifier","src":"11027:3:88"},"nativeSrc":"11027:32:88","nodeType":"YulFunctionCall","src":"11027:32:88"},"nativeSrc":"11024:52:88","nodeType":"YulIf","src":"11024:52:88"},{"nativeSrc":"11085:26:88","nodeType":"YulAssignment","src":"11085:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11101:9:88","nodeType":"YulIdentifier","src":"11101:9:88"}],"functionName":{"name":"mload","nativeSrc":"11095:5:88","nodeType":"YulIdentifier","src":"11095:5:88"},"nativeSrc":"11095:16:88","nodeType":"YulFunctionCall","src":"11095:16:88"},"variableNames":[{"name":"value0","nativeSrc":"11085:6:88","nodeType":"YulIdentifier","src":"11085:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"10933:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10980:9:88","nodeType":"YulTypedName","src":"10980:9:88","type":""},{"name":"dataEnd","nativeSrc":"10991:7:88","nodeType":"YulTypedName","src":"10991:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11003:6:88","nodeType":"YulTypedName","src":"11003:6:88","type":""}],"src":"10933:184:88"},{"body":{"nativeSrc":"11171:79:88","nodeType":"YulBlock","src":"11171:79:88","statements":[{"nativeSrc":"11181:17:88","nodeType":"YulAssignment","src":"11181:17:88","value":{"arguments":[{"name":"x","nativeSrc":"11193:1:88","nodeType":"YulIdentifier","src":"11193:1:88"},{"name":"y","nativeSrc":"11196:1:88","nodeType":"YulIdentifier","src":"11196:1:88"}],"functionName":{"name":"sub","nativeSrc":"11189:3:88","nodeType":"YulIdentifier","src":"11189:3:88"},"nativeSrc":"11189:9:88","nodeType":"YulFunctionCall","src":"11189:9:88"},"variableNames":[{"name":"diff","nativeSrc":"11181:4:88","nodeType":"YulIdentifier","src":"11181:4:88"}]},{"body":{"nativeSrc":"11222:22:88","nodeType":"YulBlock","src":"11222:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11224:16:88","nodeType":"YulIdentifier","src":"11224:16:88"},"nativeSrc":"11224:18:88","nodeType":"YulFunctionCall","src":"11224:18:88"},"nativeSrc":"11224:18:88","nodeType":"YulExpressionStatement","src":"11224:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"11213:4:88","nodeType":"YulIdentifier","src":"11213:4:88"},{"name":"x","nativeSrc":"11219:1:88","nodeType":"YulIdentifier","src":"11219:1:88"}],"functionName":{"name":"gt","nativeSrc":"11210:2:88","nodeType":"YulIdentifier","src":"11210:2:88"},"nativeSrc":"11210:11:88","nodeType":"YulFunctionCall","src":"11210:11:88"},"nativeSrc":"11207:37:88","nodeType":"YulIf","src":"11207:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"11122:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11153:1:88","nodeType":"YulTypedName","src":"11153:1:88","type":""},{"name":"y","nativeSrc":"11156:1:88","nodeType":"YulTypedName","src":"11156:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"11162:4:88","nodeType":"YulTypedName","src":"11162:4:88","type":""}],"src":"11122:128:88"},{"body":{"nativeSrc":"11384:145:88","nodeType":"YulBlock","src":"11384:145:88","statements":[{"nativeSrc":"11394:26:88","nodeType":"YulAssignment","src":"11394:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11406:9:88","nodeType":"YulIdentifier","src":"11406:9:88"},{"kind":"number","nativeSrc":"11417:2:88","nodeType":"YulLiteral","src":"11417:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11402:3:88","nodeType":"YulIdentifier","src":"11402:3:88"},"nativeSrc":"11402:18:88","nodeType":"YulFunctionCall","src":"11402:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11394:4:88","nodeType":"YulIdentifier","src":"11394:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11436:9:88","nodeType":"YulIdentifier","src":"11436:9:88"},{"arguments":[{"name":"value0","nativeSrc":"11451:6:88","nodeType":"YulIdentifier","src":"11451:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11467:3:88","nodeType":"YulLiteral","src":"11467:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"11472:1:88","nodeType":"YulLiteral","src":"11472:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"11463:3:88","nodeType":"YulIdentifier","src":"11463:3:88"},"nativeSrc":"11463:11:88","nodeType":"YulFunctionCall","src":"11463:11:88"},{"kind":"number","nativeSrc":"11476:1:88","nodeType":"YulLiteral","src":"11476:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11459:3:88","nodeType":"YulIdentifier","src":"11459:3:88"},"nativeSrc":"11459:19:88","nodeType":"YulFunctionCall","src":"11459:19:88"}],"functionName":{"name":"and","nativeSrc":"11447:3:88","nodeType":"YulIdentifier","src":"11447:3:88"},"nativeSrc":"11447:32:88","nodeType":"YulFunctionCall","src":"11447:32:88"}],"functionName":{"name":"mstore","nativeSrc":"11429:6:88","nodeType":"YulIdentifier","src":"11429:6:88"},"nativeSrc":"11429:51:88","nodeType":"YulFunctionCall","src":"11429:51:88"},"nativeSrc":"11429:51:88","nodeType":"YulExpressionStatement","src":"11429:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11500:9:88","nodeType":"YulIdentifier","src":"11500:9:88"},{"kind":"number","nativeSrc":"11511:2:88","nodeType":"YulLiteral","src":"11511:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11496:3:88","nodeType":"YulIdentifier","src":"11496:3:88"},"nativeSrc":"11496:18:88","nodeType":"YulFunctionCall","src":"11496:18:88"},{"name":"value1","nativeSrc":"11516:6:88","nodeType":"YulIdentifier","src":"11516:6:88"}],"functionName":{"name":"mstore","nativeSrc":"11489:6:88","nodeType":"YulIdentifier","src":"11489:6:88"},"nativeSrc":"11489:34:88","nodeType":"YulFunctionCall","src":"11489:34:88"},"nativeSrc":"11489:34:88","nodeType":"YulExpressionStatement","src":"11489:34:88"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"11255:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11345:9:88","nodeType":"YulTypedName","src":"11345:9:88","type":""},{"name":"value1","nativeSrc":"11356:6:88","nodeType":"YulTypedName","src":"11356:6:88","type":""},{"name":"value0","nativeSrc":"11364:6:88","nodeType":"YulTypedName","src":"11364:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11375:4:88","nodeType":"YulTypedName","src":"11375:4:88","type":""}],"src":"11255:274:88"},{"body":{"nativeSrc":"11582:180:88","nodeType":"YulBlock","src":"11582:180:88","statements":[{"nativeSrc":"11592:90:88","nodeType":"YulAssignment","src":"11592:90:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"11607:1:88","nodeType":"YulIdentifier","src":"11607:1:88"},{"kind":"number","nativeSrc":"11610:30:88","nodeType":"YulLiteral","src":"11610:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"11603:3:88","nodeType":"YulIdentifier","src":"11603:3:88"},"nativeSrc":"11603:38:88","nodeType":"YulFunctionCall","src":"11603:38:88"},{"arguments":[{"name":"y","nativeSrc":"11647:1:88","nodeType":"YulIdentifier","src":"11647:1:88"},{"kind":"number","nativeSrc":"11650:30:88","nodeType":"YulLiteral","src":"11650:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"11643:3:88","nodeType":"YulIdentifier","src":"11643:3:88"},"nativeSrc":"11643:38:88","nodeType":"YulFunctionCall","src":"11643:38:88"}],"functionName":{"name":"add","nativeSrc":"11599:3:88","nodeType":"YulIdentifier","src":"11599:3:88"},"nativeSrc":"11599:83:88","nodeType":"YulFunctionCall","src":"11599:83:88"},"variableNames":[{"name":"sum","nativeSrc":"11592:3:88","nodeType":"YulIdentifier","src":"11592:3:88"}]},{"body":{"nativeSrc":"11734:22:88","nodeType":"YulBlock","src":"11734:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11736:16:88","nodeType":"YulIdentifier","src":"11736:16:88"},"nativeSrc":"11736:18:88","nodeType":"YulFunctionCall","src":"11736:18:88"},"nativeSrc":"11736:18:88","nodeType":"YulExpressionStatement","src":"11736:18:88"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"11697:3:88","nodeType":"YulIdentifier","src":"11697:3:88"},{"kind":"number","nativeSrc":"11702:30:88","nodeType":"YulLiteral","src":"11702:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11694:2:88","nodeType":"YulIdentifier","src":"11694:2:88"},"nativeSrc":"11694:39:88","nodeType":"YulFunctionCall","src":"11694:39:88"},"nativeSrc":"11691:65:88","nodeType":"YulIf","src":"11691:65:88"}]},"name":"checked_add_t_uint112","nativeSrc":"11534:228:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11565:1:88","nodeType":"YulTypedName","src":"11565:1:88","type":""},{"name":"y","nativeSrc":"11568:1:88","nodeType":"YulTypedName","src":"11568:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"11574:3:88","nodeType":"YulTypedName","src":"11574:3:88","type":""}],"src":"11534:228:88"},{"body":{"nativeSrc":"11816:182:88","nodeType":"YulBlock","src":"11816:182:88","statements":[{"nativeSrc":"11826:91:88","nodeType":"YulAssignment","src":"11826:91:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"11842:1:88","nodeType":"YulIdentifier","src":"11842:1:88"},{"kind":"number","nativeSrc":"11845:30:88","nodeType":"YulLiteral","src":"11845:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"11838:3:88","nodeType":"YulIdentifier","src":"11838:3:88"},"nativeSrc":"11838:38:88","nodeType":"YulFunctionCall","src":"11838:38:88"},{"arguments":[{"name":"y","nativeSrc":"11882:1:88","nodeType":"YulIdentifier","src":"11882:1:88"},{"kind":"number","nativeSrc":"11885:30:88","nodeType":"YulLiteral","src":"11885:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"11878:3:88","nodeType":"YulIdentifier","src":"11878:3:88"},"nativeSrc":"11878:38:88","nodeType":"YulFunctionCall","src":"11878:38:88"}],"functionName":{"name":"sub","nativeSrc":"11834:3:88","nodeType":"YulIdentifier","src":"11834:3:88"},"nativeSrc":"11834:83:88","nodeType":"YulFunctionCall","src":"11834:83:88"},"variableNames":[{"name":"diff","nativeSrc":"11826:4:88","nodeType":"YulIdentifier","src":"11826:4:88"}]},{"body":{"nativeSrc":"11970:22:88","nodeType":"YulBlock","src":"11970:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11972:16:88","nodeType":"YulIdentifier","src":"11972:16:88"},"nativeSrc":"11972:18:88","nodeType":"YulFunctionCall","src":"11972:18:88"},"nativeSrc":"11972:18:88","nodeType":"YulExpressionStatement","src":"11972:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"11932:4:88","nodeType":"YulIdentifier","src":"11932:4:88"},{"kind":"number","nativeSrc":"11938:30:88","nodeType":"YulLiteral","src":"11938:30:88","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11929:2:88","nodeType":"YulIdentifier","src":"11929:2:88"},"nativeSrc":"11929:40:88","nodeType":"YulFunctionCall","src":"11929:40:88"},"nativeSrc":"11926:66:88","nodeType":"YulIf","src":"11926:66:88"}]},"name":"checked_sub_t_uint112","nativeSrc":"11767:231:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11798:1:88","nodeType":"YulTypedName","src":"11798:1:88","type":""},{"name":"y","nativeSrc":"11801:1:88","nodeType":"YulTypedName","src":"11801:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"11807:4:88","nodeType":"YulTypedName","src":"11807:4:88","type":""}],"src":"11767:231:88"},{"body":{"nativeSrc":"12051:122:88","nodeType":"YulBlock","src":"12051:122:88","statements":[{"nativeSrc":"12061:51:88","nodeType":"YulAssignment","src":"12061:51:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12077:1:88","nodeType":"YulIdentifier","src":"12077:1:88"},{"kind":"number","nativeSrc":"12080:10:88","nodeType":"YulLiteral","src":"12080:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"12073:3:88","nodeType":"YulIdentifier","src":"12073:3:88"},"nativeSrc":"12073:18:88","nodeType":"YulFunctionCall","src":"12073:18:88"},{"arguments":[{"name":"y","nativeSrc":"12097:1:88","nodeType":"YulIdentifier","src":"12097:1:88"},{"kind":"number","nativeSrc":"12100:10:88","nodeType":"YulLiteral","src":"12100:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"12093:3:88","nodeType":"YulIdentifier","src":"12093:3:88"},"nativeSrc":"12093:18:88","nodeType":"YulFunctionCall","src":"12093:18:88"}],"functionName":{"name":"sub","nativeSrc":"12069:3:88","nodeType":"YulIdentifier","src":"12069:3:88"},"nativeSrc":"12069:43:88","nodeType":"YulFunctionCall","src":"12069:43:88"},"variableNames":[{"name":"diff","nativeSrc":"12061:4:88","nodeType":"YulIdentifier","src":"12061:4:88"}]},{"body":{"nativeSrc":"12145:22:88","nodeType":"YulBlock","src":"12145:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12147:16:88","nodeType":"YulIdentifier","src":"12147:16:88"},"nativeSrc":"12147:18:88","nodeType":"YulFunctionCall","src":"12147:18:88"},"nativeSrc":"12147:18:88","nodeType":"YulExpressionStatement","src":"12147:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"12127:4:88","nodeType":"YulIdentifier","src":"12127:4:88"},{"kind":"number","nativeSrc":"12133:10:88","nodeType":"YulLiteral","src":"12133:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"gt","nativeSrc":"12124:2:88","nodeType":"YulIdentifier","src":"12124:2:88"},"nativeSrc":"12124:20:88","nodeType":"YulFunctionCall","src":"12124:20:88"},"nativeSrc":"12121:46:88","nodeType":"YulIf","src":"12121:46:88"}]},"name":"checked_sub_t_uint32","nativeSrc":"12003:170:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12033:1:88","nodeType":"YulTypedName","src":"12033:1:88","type":""},{"name":"y","nativeSrc":"12036:1:88","nodeType":"YulTypedName","src":"12036:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"12042:4:88","nodeType":"YulTypedName","src":"12042:4:88","type":""}],"src":"12003:170:88"},{"body":{"nativeSrc":"12230:116:88","nodeType":"YulBlock","src":"12230:116:88","statements":[{"nativeSrc":"12240:20:88","nodeType":"YulAssignment","src":"12240:20:88","value":{"arguments":[{"name":"x","nativeSrc":"12255:1:88","nodeType":"YulIdentifier","src":"12255:1:88"},{"name":"y","nativeSrc":"12258:1:88","nodeType":"YulIdentifier","src":"12258:1:88"}],"functionName":{"name":"mul","nativeSrc":"12251:3:88","nodeType":"YulIdentifier","src":"12251:3:88"},"nativeSrc":"12251:9:88","nodeType":"YulFunctionCall","src":"12251:9:88"},"variableNames":[{"name":"product","nativeSrc":"12240:7:88","nodeType":"YulIdentifier","src":"12240:7:88"}]},{"body":{"nativeSrc":"12318:22:88","nodeType":"YulBlock","src":"12318:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12320:16:88","nodeType":"YulIdentifier","src":"12320:16:88"},"nativeSrc":"12320:18:88","nodeType":"YulFunctionCall","src":"12320:18:88"},"nativeSrc":"12320:18:88","nodeType":"YulExpressionStatement","src":"12320:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12289:1:88","nodeType":"YulIdentifier","src":"12289:1:88"}],"functionName":{"name":"iszero","nativeSrc":"12282:6:88","nodeType":"YulIdentifier","src":"12282:6:88"},"nativeSrc":"12282:9:88","nodeType":"YulFunctionCall","src":"12282:9:88"},{"arguments":[{"name":"y","nativeSrc":"12296:1:88","nodeType":"YulIdentifier","src":"12296:1:88"},{"arguments":[{"name":"product","nativeSrc":"12303:7:88","nodeType":"YulIdentifier","src":"12303:7:88"},{"name":"x","nativeSrc":"12312:1:88","nodeType":"YulIdentifier","src":"12312:1:88"}],"functionName":{"name":"div","nativeSrc":"12299:3:88","nodeType":"YulIdentifier","src":"12299:3:88"},"nativeSrc":"12299:15:88","nodeType":"YulFunctionCall","src":"12299:15:88"}],"functionName":{"name":"eq","nativeSrc":"12293:2:88","nodeType":"YulIdentifier","src":"12293:2:88"},"nativeSrc":"12293:22:88","nodeType":"YulFunctionCall","src":"12293:22:88"}],"functionName":{"name":"or","nativeSrc":"12279:2:88","nodeType":"YulIdentifier","src":"12279:2:88"},"nativeSrc":"12279:37:88","nodeType":"YulFunctionCall","src":"12279:37:88"}],"functionName":{"name":"iszero","nativeSrc":"12272:6:88","nodeType":"YulIdentifier","src":"12272:6:88"},"nativeSrc":"12272:45:88","nodeType":"YulFunctionCall","src":"12272:45:88"},"nativeSrc":"12269:71:88","nodeType":"YulIf","src":"12269:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"12178:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12209:1:88","nodeType":"YulTypedName","src":"12209:1:88","type":""},{"name":"y","nativeSrc":"12212:1:88","nodeType":"YulTypedName","src":"12212:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"12218:7:88","nodeType":"YulTypedName","src":"12218:7:88","type":""}],"src":"12178:168:88"},{"body":{"nativeSrc":"12383:95:88","nodeType":"YulBlock","src":"12383:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12400:1:88","nodeType":"YulLiteral","src":"12400:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"12407:3:88","nodeType":"YulLiteral","src":"12407:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"12412:10:88","nodeType":"YulLiteral","src":"12412:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"12403:3:88","nodeType":"YulIdentifier","src":"12403:3:88"},"nativeSrc":"12403:20:88","nodeType":"YulFunctionCall","src":"12403:20:88"}],"functionName":{"name":"mstore","nativeSrc":"12393:6:88","nodeType":"YulIdentifier","src":"12393:6:88"},"nativeSrc":"12393:31:88","nodeType":"YulFunctionCall","src":"12393:31:88"},"nativeSrc":"12393:31:88","nodeType":"YulExpressionStatement","src":"12393:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12440:1:88","nodeType":"YulLiteral","src":"12440:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"12443:4:88","nodeType":"YulLiteral","src":"12443:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"12433:6:88","nodeType":"YulIdentifier","src":"12433:6:88"},"nativeSrc":"12433:15:88","nodeType":"YulFunctionCall","src":"12433:15:88"},"nativeSrc":"12433:15:88","nodeType":"YulExpressionStatement","src":"12433:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12464:1:88","nodeType":"YulLiteral","src":"12464:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12467:4:88","nodeType":"YulLiteral","src":"12467:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12457:6:88","nodeType":"YulIdentifier","src":"12457:6:88"},"nativeSrc":"12457:15:88","nodeType":"YulFunctionCall","src":"12457:15:88"},"nativeSrc":"12457:15:88","nodeType":"YulExpressionStatement","src":"12457:15:88"}]},"name":"panic_error_0x12","nativeSrc":"12351:127:88","nodeType":"YulFunctionDefinition","src":"12351:127:88"},{"body":{"nativeSrc":"12529:171:88","nodeType":"YulBlock","src":"12529:171:88","statements":[{"body":{"nativeSrc":"12560:111:88","nodeType":"YulBlock","src":"12560:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12581:1:88","nodeType":"YulLiteral","src":"12581:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"12588:3:88","nodeType":"YulLiteral","src":"12588:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"12593:10:88","nodeType":"YulLiteral","src":"12593:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"12584:3:88","nodeType":"YulIdentifier","src":"12584:3:88"},"nativeSrc":"12584:20:88","nodeType":"YulFunctionCall","src":"12584:20:88"}],"functionName":{"name":"mstore","nativeSrc":"12574:6:88","nodeType":"YulIdentifier","src":"12574:6:88"},"nativeSrc":"12574:31:88","nodeType":"YulFunctionCall","src":"12574:31:88"},"nativeSrc":"12574:31:88","nodeType":"YulExpressionStatement","src":"12574:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12625:1:88","nodeType":"YulLiteral","src":"12625:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"12628:4:88","nodeType":"YulLiteral","src":"12628:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"12618:6:88","nodeType":"YulIdentifier","src":"12618:6:88"},"nativeSrc":"12618:15:88","nodeType":"YulFunctionCall","src":"12618:15:88"},"nativeSrc":"12618:15:88","nodeType":"YulExpressionStatement","src":"12618:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12653:1:88","nodeType":"YulLiteral","src":"12653:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12656:4:88","nodeType":"YulLiteral","src":"12656:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12646:6:88","nodeType":"YulIdentifier","src":"12646:6:88"},"nativeSrc":"12646:15:88","nodeType":"YulFunctionCall","src":"12646:15:88"},"nativeSrc":"12646:15:88","nodeType":"YulExpressionStatement","src":"12646:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"12549:1:88","nodeType":"YulIdentifier","src":"12549:1:88"}],"functionName":{"name":"iszero","nativeSrc":"12542:6:88","nodeType":"YulIdentifier","src":"12542:6:88"},"nativeSrc":"12542:9:88","nodeType":"YulFunctionCall","src":"12542:9:88"},"nativeSrc":"12539:132:88","nodeType":"YulIf","src":"12539:132:88"},{"nativeSrc":"12680:14:88","nodeType":"YulAssignment","src":"12680:14:88","value":{"arguments":[{"name":"x","nativeSrc":"12689:1:88","nodeType":"YulIdentifier","src":"12689:1:88"},{"name":"y","nativeSrc":"12692:1:88","nodeType":"YulIdentifier","src":"12692:1:88"}],"functionName":{"name":"div","nativeSrc":"12685:3:88","nodeType":"YulIdentifier","src":"12685:3:88"},"nativeSrc":"12685:9:88","nodeType":"YulFunctionCall","src":"12685:9:88"},"variableNames":[{"name":"r","nativeSrc":"12680:1:88","nodeType":"YulIdentifier","src":"12680:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"12483:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12514:1:88","nodeType":"YulTypedName","src":"12514:1:88","type":""},{"name":"y","nativeSrc":"12517:1:88","nodeType":"YulTypedName","src":"12517:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"12523:1:88","nodeType":"YulTypedName","src":"12523:1:88","type":""}],"src":"12483:217:88"},{"body":{"nativeSrc":"12737:95:88","nodeType":"YulBlock","src":"12737:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12754:1:88","nodeType":"YulLiteral","src":"12754:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"12761:3:88","nodeType":"YulLiteral","src":"12761:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"12766:10:88","nodeType":"YulLiteral","src":"12766:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"12757:3:88","nodeType":"YulIdentifier","src":"12757:3:88"},"nativeSrc":"12757:20:88","nodeType":"YulFunctionCall","src":"12757:20:88"}],"functionName":{"name":"mstore","nativeSrc":"12747:6:88","nodeType":"YulIdentifier","src":"12747:6:88"},"nativeSrc":"12747:31:88","nodeType":"YulFunctionCall","src":"12747:31:88"},"nativeSrc":"12747:31:88","nodeType":"YulExpressionStatement","src":"12747:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12794:1:88","nodeType":"YulLiteral","src":"12794:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"12797:4:88","nodeType":"YulLiteral","src":"12797:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"12787:6:88","nodeType":"YulIdentifier","src":"12787:6:88"},"nativeSrc":"12787:15:88","nodeType":"YulFunctionCall","src":"12787:15:88"},"nativeSrc":"12787:15:88","nodeType":"YulExpressionStatement","src":"12787:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12818:1:88","nodeType":"YulLiteral","src":"12818:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12821:4:88","nodeType":"YulLiteral","src":"12821:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12811:6:88","nodeType":"YulIdentifier","src":"12811:6:88"},"nativeSrc":"12811:15:88","nodeType":"YulFunctionCall","src":"12811:15:88"},"nativeSrc":"12811:15:88","nodeType":"YulExpressionStatement","src":"12811:15:88"}]},"name":"panic_error_0x21","nativeSrc":"12705:127:88","nodeType":"YulFunctionDefinition","src":"12705:127:88"},{"body":{"nativeSrc":"12966:119:88","nodeType":"YulBlock","src":"12966:119:88","statements":[{"nativeSrc":"12976:26:88","nodeType":"YulAssignment","src":"12976:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12988:9:88","nodeType":"YulIdentifier","src":"12988:9:88"},{"kind":"number","nativeSrc":"12999:2:88","nodeType":"YulLiteral","src":"12999:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12984:3:88","nodeType":"YulIdentifier","src":"12984:3:88"},"nativeSrc":"12984:18:88","nodeType":"YulFunctionCall","src":"12984:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12976:4:88","nodeType":"YulIdentifier","src":"12976:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13018:9:88","nodeType":"YulIdentifier","src":"13018:9:88"},{"name":"value0","nativeSrc":"13029:6:88","nodeType":"YulIdentifier","src":"13029:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13011:6:88","nodeType":"YulIdentifier","src":"13011:6:88"},"nativeSrc":"13011:25:88","nodeType":"YulFunctionCall","src":"13011:25:88"},"nativeSrc":"13011:25:88","nodeType":"YulExpressionStatement","src":"13011:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13056:9:88","nodeType":"YulIdentifier","src":"13056:9:88"},{"kind":"number","nativeSrc":"13067:2:88","nodeType":"YulLiteral","src":"13067:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13052:3:88","nodeType":"YulIdentifier","src":"13052:3:88"},"nativeSrc":"13052:18:88","nodeType":"YulFunctionCall","src":"13052:18:88"},{"name":"value1","nativeSrc":"13072:6:88","nodeType":"YulIdentifier","src":"13072:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13045:6:88","nodeType":"YulIdentifier","src":"13045:6:88"},"nativeSrc":"13045:34:88","nodeType":"YulFunctionCall","src":"13045:34:88"},"nativeSrc":"13045:34:88","nodeType":"YulExpressionStatement","src":"13045:34:88"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12837:248:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12927:9:88","nodeType":"YulTypedName","src":"12927:9:88","type":""},{"name":"value1","nativeSrc":"12938:6:88","nodeType":"YulTypedName","src":"12938:6:88","type":""},{"name":"value0","nativeSrc":"12946:6:88","nodeType":"YulTypedName","src":"12946:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12957:4:88","nodeType":"YulTypedName","src":"12957:4:88","type":""}],"src":"12837:248:88"},{"body":{"nativeSrc":"13264:228:88","nodeType":"YulBlock","src":"13264:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13281:9:88","nodeType":"YulIdentifier","src":"13281:9:88"},{"kind":"number","nativeSrc":"13292:2:88","nodeType":"YulLiteral","src":"13292:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13274:6:88","nodeType":"YulIdentifier","src":"13274:6:88"},"nativeSrc":"13274:21:88","nodeType":"YulFunctionCall","src":"13274:21:88"},"nativeSrc":"13274:21:88","nodeType":"YulExpressionStatement","src":"13274:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13315:9:88","nodeType":"YulIdentifier","src":"13315:9:88"},{"kind":"number","nativeSrc":"13326:2:88","nodeType":"YulLiteral","src":"13326:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13311:3:88","nodeType":"YulIdentifier","src":"13311:3:88"},"nativeSrc":"13311:18:88","nodeType":"YulFunctionCall","src":"13311:18:88"},{"kind":"number","nativeSrc":"13331:2:88","nodeType":"YulLiteral","src":"13331:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"13304:6:88","nodeType":"YulIdentifier","src":"13304:6:88"},"nativeSrc":"13304:30:88","nodeType":"YulFunctionCall","src":"13304:30:88"},"nativeSrc":"13304:30:88","nodeType":"YulExpressionStatement","src":"13304:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13354:9:88","nodeType":"YulIdentifier","src":"13354:9:88"},{"kind":"number","nativeSrc":"13365:2:88","nodeType":"YulLiteral","src":"13365:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13350:3:88","nodeType":"YulIdentifier","src":"13350:3:88"},"nativeSrc":"13350:18:88","nodeType":"YulFunctionCall","src":"13350:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039","kind":"string","nativeSrc":"13370:34:88","nodeType":"YulLiteral","src":"13370:34:88","type":"","value":"SafeCast: value doesn't fit in 9"}],"functionName":{"name":"mstore","nativeSrc":"13343:6:88","nodeType":"YulIdentifier","src":"13343:6:88"},"nativeSrc":"13343:62:88","nodeType":"YulFunctionCall","src":"13343:62:88"},"nativeSrc":"13343:62:88","nodeType":"YulExpressionStatement","src":"13343:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13425:9:88","nodeType":"YulIdentifier","src":"13425:9:88"},{"kind":"number","nativeSrc":"13436:2:88","nodeType":"YulLiteral","src":"13436:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13421:3:88","nodeType":"YulIdentifier","src":"13421:3:88"},"nativeSrc":"13421:18:88","nodeType":"YulFunctionCall","src":"13421:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"13441:8:88","nodeType":"YulLiteral","src":"13441:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"13414:6:88","nodeType":"YulIdentifier","src":"13414:6:88"},"nativeSrc":"13414:36:88","nodeType":"YulFunctionCall","src":"13414:36:88"},"nativeSrc":"13414:36:88","nodeType":"YulExpressionStatement","src":"13414:36:88"},{"nativeSrc":"13459:27:88","nodeType":"YulAssignment","src":"13459:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13471:9:88","nodeType":"YulIdentifier","src":"13471:9:88"},{"kind":"number","nativeSrc":"13482:3:88","nodeType":"YulLiteral","src":"13482:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13467:3:88","nodeType":"YulIdentifier","src":"13467:3:88"},"nativeSrc":"13467:19:88","nodeType":"YulFunctionCall","src":"13467:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13459:4:88","nodeType":"YulIdentifier","src":"13459:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13090:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13241:9:88","nodeType":"YulTypedName","src":"13241:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13255:4:88","nodeType":"YulTypedName","src":"13255:4:88","type":""}],"src":"13090:402:88"},{"body":{"nativeSrc":"13671:171:88","nodeType":"YulBlock","src":"13671:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13688:9:88","nodeType":"YulIdentifier","src":"13688:9:88"},{"kind":"number","nativeSrc":"13699:2:88","nodeType":"YulLiteral","src":"13699:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13681:6:88","nodeType":"YulIdentifier","src":"13681:6:88"},"nativeSrc":"13681:21:88","nodeType":"YulFunctionCall","src":"13681:21:88"},"nativeSrc":"13681:21:88","nodeType":"YulExpressionStatement","src":"13681:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13722:9:88","nodeType":"YulIdentifier","src":"13722:9:88"},{"kind":"number","nativeSrc":"13733:2:88","nodeType":"YulLiteral","src":"13733:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13718:3:88","nodeType":"YulIdentifier","src":"13718:3:88"},"nativeSrc":"13718:18:88","nodeType":"YulFunctionCall","src":"13718:18:88"},{"kind":"number","nativeSrc":"13738:2:88","nodeType":"YulLiteral","src":"13738:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"13711:6:88","nodeType":"YulIdentifier","src":"13711:6:88"},"nativeSrc":"13711:30:88","nodeType":"YulFunctionCall","src":"13711:30:88"},"nativeSrc":"13711:30:88","nodeType":"YulExpressionStatement","src":"13711:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13761:9:88","nodeType":"YulIdentifier","src":"13761:9:88"},{"kind":"number","nativeSrc":"13772:2:88","nodeType":"YulLiteral","src":"13772:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13757:3:88","nodeType":"YulIdentifier","src":"13757:3:88"},"nativeSrc":"13757:18:88","nodeType":"YulFunctionCall","src":"13757:18:88"},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","kind":"string","nativeSrc":"13777:23:88","nodeType":"YulLiteral","src":"13777:23:88","type":"","value":"Math: mulDiv overflow"}],"functionName":{"name":"mstore","nativeSrc":"13750:6:88","nodeType":"YulIdentifier","src":"13750:6:88"},"nativeSrc":"13750:51:88","nodeType":"YulFunctionCall","src":"13750:51:88"},"nativeSrc":"13750:51:88","nodeType":"YulExpressionStatement","src":"13750:51:88"},{"nativeSrc":"13810:26:88","nodeType":"YulAssignment","src":"13810:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13822:9:88","nodeType":"YulIdentifier","src":"13822:9:88"},{"kind":"number","nativeSrc":"13833:2:88","nodeType":"YulLiteral","src":"13833:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13818:3:88","nodeType":"YulIdentifier","src":"13818:3:88"},"nativeSrc":"13818:18:88","nodeType":"YulFunctionCall","src":"13818:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13810:4:88","nodeType":"YulIdentifier","src":"13810:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13497:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13648:9:88","nodeType":"YulTypedName","src":"13648:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13662:4:88","nodeType":"YulTypedName","src":"13662:4:88","type":""}],"src":"13497:345:88"},{"body":{"nativeSrc":"14004:214:88","nodeType":"YulBlock","src":"14004:214:88","statements":[{"nativeSrc":"14014:26:88","nodeType":"YulAssignment","src":"14014:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14026:9:88","nodeType":"YulIdentifier","src":"14026:9:88"},{"kind":"number","nativeSrc":"14037:2:88","nodeType":"YulLiteral","src":"14037:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14022:3:88","nodeType":"YulIdentifier","src":"14022:3:88"},"nativeSrc":"14022:18:88","nodeType":"YulFunctionCall","src":"14022:18:88"},"variableNames":[{"name":"tail","nativeSrc":"14014:4:88","nodeType":"YulIdentifier","src":"14014:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14056:9:88","nodeType":"YulIdentifier","src":"14056:9:88"},{"arguments":[{"name":"value0","nativeSrc":"14071:6:88","nodeType":"YulIdentifier","src":"14071:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14087:3:88","nodeType":"YulLiteral","src":"14087:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"14092:1:88","nodeType":"YulLiteral","src":"14092:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"14083:3:88","nodeType":"YulIdentifier","src":"14083:3:88"},"nativeSrc":"14083:11:88","nodeType":"YulFunctionCall","src":"14083:11:88"},{"kind":"number","nativeSrc":"14096:1:88","nodeType":"YulLiteral","src":"14096:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"14079:3:88","nodeType":"YulIdentifier","src":"14079:3:88"},"nativeSrc":"14079:19:88","nodeType":"YulFunctionCall","src":"14079:19:88"}],"functionName":{"name":"and","nativeSrc":"14067:3:88","nodeType":"YulIdentifier","src":"14067:3:88"},"nativeSrc":"14067:32:88","nodeType":"YulFunctionCall","src":"14067:32:88"}],"functionName":{"name":"mstore","nativeSrc":"14049:6:88","nodeType":"YulIdentifier","src":"14049:6:88"},"nativeSrc":"14049:51:88","nodeType":"YulFunctionCall","src":"14049:51:88"},"nativeSrc":"14049:51:88","nodeType":"YulExpressionStatement","src":"14049:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14120:9:88","nodeType":"YulIdentifier","src":"14120:9:88"},{"kind":"number","nativeSrc":"14131:2:88","nodeType":"YulLiteral","src":"14131:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14116:3:88","nodeType":"YulIdentifier","src":"14116:3:88"},"nativeSrc":"14116:18:88","nodeType":"YulFunctionCall","src":"14116:18:88"},{"arguments":[{"name":"value1","nativeSrc":"14140:6:88","nodeType":"YulIdentifier","src":"14140:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14156:3:88","nodeType":"YulLiteral","src":"14156:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"14161:1:88","nodeType":"YulLiteral","src":"14161:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"14152:3:88","nodeType":"YulIdentifier","src":"14152:3:88"},"nativeSrc":"14152:11:88","nodeType":"YulFunctionCall","src":"14152:11:88"},{"kind":"number","nativeSrc":"14165:1:88","nodeType":"YulLiteral","src":"14165:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"14148:3:88","nodeType":"YulIdentifier","src":"14148:3:88"},"nativeSrc":"14148:19:88","nodeType":"YulFunctionCall","src":"14148:19:88"}],"functionName":{"name":"and","nativeSrc":"14136:3:88","nodeType":"YulIdentifier","src":"14136:3:88"},"nativeSrc":"14136:32:88","nodeType":"YulFunctionCall","src":"14136:32:88"}],"functionName":{"name":"mstore","nativeSrc":"14109:6:88","nodeType":"YulIdentifier","src":"14109:6:88"},"nativeSrc":"14109:60:88","nodeType":"YulFunctionCall","src":"14109:60:88"},"nativeSrc":"14109:60:88","nodeType":"YulExpressionStatement","src":"14109:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14189:9:88","nodeType":"YulIdentifier","src":"14189:9:88"},{"kind":"number","nativeSrc":"14200:2:88","nodeType":"YulLiteral","src":"14200:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14185:3:88","nodeType":"YulIdentifier","src":"14185:3:88"},"nativeSrc":"14185:18:88","nodeType":"YulFunctionCall","src":"14185:18:88"},{"name":"value2","nativeSrc":"14205:6:88","nodeType":"YulIdentifier","src":"14205:6:88"}],"functionName":{"name":"mstore","nativeSrc":"14178:6:88","nodeType":"YulIdentifier","src":"14178:6:88"},"nativeSrc":"14178:34:88","nodeType":"YulFunctionCall","src":"14178:34:88"},"nativeSrc":"14178:34:88","nodeType":"YulExpressionStatement","src":"14178:34:88"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"13847:371:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13957:9:88","nodeType":"YulTypedName","src":"13957:9:88","type":""},{"name":"value2","nativeSrc":"13968:6:88","nodeType":"YulTypedName","src":"13968:6:88","type":""},{"name":"value1","nativeSrc":"13976:6:88","nodeType":"YulTypedName","src":"13976:6:88","type":""},{"name":"value0","nativeSrc":"13984:6:88","nodeType":"YulTypedName","src":"13984:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13995:4:88","nodeType":"YulTypedName","src":"13995:4:88","type":""}],"src":"13847:371:88"},{"body":{"nativeSrc":"14397:181:88","nodeType":"YulBlock","src":"14397:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14414:9:88","nodeType":"YulIdentifier","src":"14414:9:88"},{"kind":"number","nativeSrc":"14425:2:88","nodeType":"YulLiteral","src":"14425:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14407:6:88","nodeType":"YulIdentifier","src":"14407:6:88"},"nativeSrc":"14407:21:88","nodeType":"YulFunctionCall","src":"14407:21:88"},"nativeSrc":"14407:21:88","nodeType":"YulExpressionStatement","src":"14407:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14448:9:88","nodeType":"YulIdentifier","src":"14448:9:88"},{"kind":"number","nativeSrc":"14459:2:88","nodeType":"YulLiteral","src":"14459:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14444:3:88","nodeType":"YulIdentifier","src":"14444:3:88"},"nativeSrc":"14444:18:88","nodeType":"YulFunctionCall","src":"14444:18:88"},{"kind":"number","nativeSrc":"14464:2:88","nodeType":"YulLiteral","src":"14464:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"14437:6:88","nodeType":"YulIdentifier","src":"14437:6:88"},"nativeSrc":"14437:30:88","nodeType":"YulFunctionCall","src":"14437:30:88"},"nativeSrc":"14437:30:88","nodeType":"YulExpressionStatement","src":"14437:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14487:9:88","nodeType":"YulIdentifier","src":"14487:9:88"},{"kind":"number","nativeSrc":"14498:2:88","nodeType":"YulLiteral","src":"14498:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14483:3:88","nodeType":"YulIdentifier","src":"14483:3:88"},"nativeSrc":"14483:18:88","nodeType":"YulFunctionCall","src":"14483:18:88"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"14503:33:88","nodeType":"YulLiteral","src":"14503:33:88","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"14476:6:88","nodeType":"YulIdentifier","src":"14476:6:88"},"nativeSrc":"14476:61:88","nodeType":"YulFunctionCall","src":"14476:61:88"},"nativeSrc":"14476:61:88","nodeType":"YulExpressionStatement","src":"14476:61:88"},{"nativeSrc":"14546:26:88","nodeType":"YulAssignment","src":"14546:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14558:9:88","nodeType":"YulIdentifier","src":"14558:9:88"},{"kind":"number","nativeSrc":"14569:2:88","nodeType":"YulLiteral","src":"14569:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14554:3:88","nodeType":"YulIdentifier","src":"14554:3:88"},"nativeSrc":"14554:18:88","nodeType":"YulFunctionCall","src":"14554:18:88"},"variableNames":[{"name":"tail","nativeSrc":"14546:4:88","nodeType":"YulIdentifier","src":"14546:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14223:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14374:9:88","nodeType":"YulTypedName","src":"14374:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14388:4:88","nodeType":"YulTypedName","src":"14388:4:88","type":""}],"src":"14223:355:88"},{"body":{"nativeSrc":"14757:223:88","nodeType":"YulBlock","src":"14757:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14774:9:88","nodeType":"YulIdentifier","src":"14774:9:88"},{"kind":"number","nativeSrc":"14785:2:88","nodeType":"YulLiteral","src":"14785:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14767:6:88","nodeType":"YulIdentifier","src":"14767:6:88"},"nativeSrc":"14767:21:88","nodeType":"YulFunctionCall","src":"14767:21:88"},"nativeSrc":"14767:21:88","nodeType":"YulExpressionStatement","src":"14767:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14808:9:88","nodeType":"YulIdentifier","src":"14808:9:88"},{"kind":"number","nativeSrc":"14819:2:88","nodeType":"YulLiteral","src":"14819:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14804:3:88","nodeType":"YulIdentifier","src":"14804:3:88"},"nativeSrc":"14804:18:88","nodeType":"YulFunctionCall","src":"14804:18:88"},{"kind":"number","nativeSrc":"14824:2:88","nodeType":"YulLiteral","src":"14824:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"14797:6:88","nodeType":"YulIdentifier","src":"14797:6:88"},"nativeSrc":"14797:30:88","nodeType":"YulFunctionCall","src":"14797:30:88"},"nativeSrc":"14797:30:88","nodeType":"YulExpressionStatement","src":"14797:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14847:9:88","nodeType":"YulIdentifier","src":"14847:9:88"},{"kind":"number","nativeSrc":"14858:2:88","nodeType":"YulLiteral","src":"14858:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14843:3:88","nodeType":"YulIdentifier","src":"14843:3:88"},"nativeSrc":"14843:18:88","nodeType":"YulFunctionCall","src":"14843:18:88"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nativeSrc":"14863:34:88","nodeType":"YulLiteral","src":"14863:34:88","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nativeSrc":"14836:6:88","nodeType":"YulIdentifier","src":"14836:6:88"},"nativeSrc":"14836:62:88","nodeType":"YulFunctionCall","src":"14836:62:88"},"nativeSrc":"14836:62:88","nodeType":"YulExpressionStatement","src":"14836:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14918:9:88","nodeType":"YulIdentifier","src":"14918:9:88"},{"kind":"number","nativeSrc":"14929:2:88","nodeType":"YulLiteral","src":"14929:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14914:3:88","nodeType":"YulIdentifier","src":"14914:3:88"},"nativeSrc":"14914:18:88","nodeType":"YulFunctionCall","src":"14914:18:88"},{"hexValue":"73","kind":"string","nativeSrc":"14934:3:88","nodeType":"YulLiteral","src":"14934:3:88","type":"","value":"s"}],"functionName":{"name":"mstore","nativeSrc":"14907:6:88","nodeType":"YulIdentifier","src":"14907:6:88"},"nativeSrc":"14907:31:88","nodeType":"YulFunctionCall","src":"14907:31:88"},"nativeSrc":"14907:31:88","nodeType":"YulExpressionStatement","src":"14907:31:88"},{"nativeSrc":"14947:27:88","nodeType":"YulAssignment","src":"14947:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14959:9:88","nodeType":"YulIdentifier","src":"14959:9:88"},{"kind":"number","nativeSrc":"14970:3:88","nodeType":"YulLiteral","src":"14970:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14955:3:88","nodeType":"YulIdentifier","src":"14955:3:88"},"nativeSrc":"14955:19:88","nodeType":"YulFunctionCall","src":"14955:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14947:4:88","nodeType":"YulIdentifier","src":"14947:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14583:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14734:9:88","nodeType":"YulTypedName","src":"14734:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14748:4:88","nodeType":"YulTypedName","src":"14748:4:88","type":""}],"src":"14583:397:88"},{"body":{"nativeSrc":"15159:224:88","nodeType":"YulBlock","src":"15159:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15176:9:88","nodeType":"YulIdentifier","src":"15176:9:88"},{"kind":"number","nativeSrc":"15187:2:88","nodeType":"YulLiteral","src":"15187:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15169:6:88","nodeType":"YulIdentifier","src":"15169:6:88"},"nativeSrc":"15169:21:88","nodeType":"YulFunctionCall","src":"15169:21:88"},"nativeSrc":"15169:21:88","nodeType":"YulExpressionStatement","src":"15169:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15210:9:88","nodeType":"YulIdentifier","src":"15210:9:88"},{"kind":"number","nativeSrc":"15221:2:88","nodeType":"YulLiteral","src":"15221:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15206:3:88","nodeType":"YulIdentifier","src":"15206:3:88"},"nativeSrc":"15206:18:88","nodeType":"YulFunctionCall","src":"15206:18:88"},{"kind":"number","nativeSrc":"15226:2:88","nodeType":"YulLiteral","src":"15226:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"15199:6:88","nodeType":"YulIdentifier","src":"15199:6:88"},"nativeSrc":"15199:30:88","nodeType":"YulFunctionCall","src":"15199:30:88"},"nativeSrc":"15199:30:88","nodeType":"YulExpressionStatement","src":"15199:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15249:9:88","nodeType":"YulIdentifier","src":"15249:9:88"},{"kind":"number","nativeSrc":"15260:2:88","nodeType":"YulLiteral","src":"15260:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15245:3:88","nodeType":"YulIdentifier","src":"15245:3:88"},"nativeSrc":"15245:18:88","nodeType":"YulFunctionCall","src":"15245:18:88"},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e","kind":"string","nativeSrc":"15265:34:88","nodeType":"YulLiteral","src":"15265:34:88","type":"","value":"ERC20: burn amount exceeds balan"}],"functionName":{"name":"mstore","nativeSrc":"15238:6:88","nodeType":"YulIdentifier","src":"15238:6:88"},"nativeSrc":"15238:62:88","nodeType":"YulFunctionCall","src":"15238:62:88"},"nativeSrc":"15238:62:88","nodeType":"YulExpressionStatement","src":"15238:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15320:9:88","nodeType":"YulIdentifier","src":"15320:9:88"},{"kind":"number","nativeSrc":"15331:2:88","nodeType":"YulLiteral","src":"15331:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15316:3:88","nodeType":"YulIdentifier","src":"15316:3:88"},"nativeSrc":"15316:18:88","nodeType":"YulFunctionCall","src":"15316:18:88"},{"hexValue":"6365","kind":"string","nativeSrc":"15336:4:88","nodeType":"YulLiteral","src":"15336:4:88","type":"","value":"ce"}],"functionName":{"name":"mstore","nativeSrc":"15309:6:88","nodeType":"YulIdentifier","src":"15309:6:88"},"nativeSrc":"15309:32:88","nodeType":"YulFunctionCall","src":"15309:32:88"},"nativeSrc":"15309:32:88","nodeType":"YulExpressionStatement","src":"15309:32:88"},{"nativeSrc":"15350:27:88","nodeType":"YulAssignment","src":"15350:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15362:9:88","nodeType":"YulIdentifier","src":"15362:9:88"},{"kind":"number","nativeSrc":"15373:3:88","nodeType":"YulLiteral","src":"15373:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15358:3:88","nodeType":"YulIdentifier","src":"15358:3:88"},"nativeSrc":"15358:19:88","nodeType":"YulFunctionCall","src":"15358:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15350:4:88","nodeType":"YulIdentifier","src":"15350:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14985:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15136:9:88","nodeType":"YulTypedName","src":"15136:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15150:4:88","nodeType":"YulTypedName","src":"15150:4:88","type":""}],"src":"14985:398:88"},{"body":{"nativeSrc":"15562:229:88","nodeType":"YulBlock","src":"15562:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15579:9:88","nodeType":"YulIdentifier","src":"15579:9:88"},{"kind":"number","nativeSrc":"15590:2:88","nodeType":"YulLiteral","src":"15590:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15572:6:88","nodeType":"YulIdentifier","src":"15572:6:88"},"nativeSrc":"15572:21:88","nodeType":"YulFunctionCall","src":"15572:21:88"},"nativeSrc":"15572:21:88","nodeType":"YulExpressionStatement","src":"15572:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15613:9:88","nodeType":"YulIdentifier","src":"15613:9:88"},{"kind":"number","nativeSrc":"15624:2:88","nodeType":"YulLiteral","src":"15624:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15609:3:88","nodeType":"YulIdentifier","src":"15609:3:88"},"nativeSrc":"15609:18:88","nodeType":"YulFunctionCall","src":"15609:18:88"},{"kind":"number","nativeSrc":"15629:2:88","nodeType":"YulLiteral","src":"15629:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"15602:6:88","nodeType":"YulIdentifier","src":"15602:6:88"},"nativeSrc":"15602:30:88","nodeType":"YulFunctionCall","src":"15602:30:88"},"nativeSrc":"15602:30:88","nodeType":"YulExpressionStatement","src":"15602:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15652:9:88","nodeType":"YulIdentifier","src":"15652:9:88"},{"kind":"number","nativeSrc":"15663:2:88","nodeType":"YulLiteral","src":"15663:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15648:3:88","nodeType":"YulIdentifier","src":"15648:3:88"},"nativeSrc":"15648:18:88","nodeType":"YulFunctionCall","src":"15648:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"15668:34:88","nodeType":"YulLiteral","src":"15668:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"15641:6:88","nodeType":"YulIdentifier","src":"15641:6:88"},"nativeSrc":"15641:62:88","nodeType":"YulFunctionCall","src":"15641:62:88"},"nativeSrc":"15641:62:88","nodeType":"YulExpressionStatement","src":"15641:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15723:9:88","nodeType":"YulIdentifier","src":"15723:9:88"},{"kind":"number","nativeSrc":"15734:2:88","nodeType":"YulLiteral","src":"15734:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15719:3:88","nodeType":"YulIdentifier","src":"15719:3:88"},"nativeSrc":"15719:18:88","nodeType":"YulFunctionCall","src":"15719:18:88"},{"hexValue":"31322062697473","kind":"string","nativeSrc":"15739:9:88","nodeType":"YulLiteral","src":"15739:9:88","type":"","value":"12 bits"}],"functionName":{"name":"mstore","nativeSrc":"15712:6:88","nodeType":"YulIdentifier","src":"15712:6:88"},"nativeSrc":"15712:37:88","nodeType":"YulFunctionCall","src":"15712:37:88"},"nativeSrc":"15712:37:88","nodeType":"YulExpressionStatement","src":"15712:37:88"},{"nativeSrc":"15758:27:88","nodeType":"YulAssignment","src":"15758:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15770:9:88","nodeType":"YulIdentifier","src":"15770:9:88"},{"kind":"number","nativeSrc":"15781:3:88","nodeType":"YulLiteral","src":"15781:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15766:3:88","nodeType":"YulIdentifier","src":"15766:3:88"},"nativeSrc":"15766:19:88","nodeType":"YulFunctionCall","src":"15766:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15758:4:88","nodeType":"YulIdentifier","src":"15758:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15388:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15539:9:88","nodeType":"YulTypedName","src":"15539:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15553:4:88","nodeType":"YulTypedName","src":"15553:4:88","type":""}],"src":"15388:403:88"},{"body":{"nativeSrc":"15874:167:88","nodeType":"YulBlock","src":"15874:167:88","statements":[{"body":{"nativeSrc":"15920:16:88","nodeType":"YulBlock","src":"15920:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15929:1:88","nodeType":"YulLiteral","src":"15929:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"15932:1:88","nodeType":"YulLiteral","src":"15932:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15922:6:88","nodeType":"YulIdentifier","src":"15922:6:88"},"nativeSrc":"15922:12:88","nodeType":"YulFunctionCall","src":"15922:12:88"},"nativeSrc":"15922:12:88","nodeType":"YulExpressionStatement","src":"15922:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15895:7:88","nodeType":"YulIdentifier","src":"15895:7:88"},{"name":"headStart","nativeSrc":"15904:9:88","nodeType":"YulIdentifier","src":"15904:9:88"}],"functionName":{"name":"sub","nativeSrc":"15891:3:88","nodeType":"YulIdentifier","src":"15891:3:88"},"nativeSrc":"15891:23:88","nodeType":"YulFunctionCall","src":"15891:23:88"},{"kind":"number","nativeSrc":"15916:2:88","nodeType":"YulLiteral","src":"15916:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"15887:3:88","nodeType":"YulIdentifier","src":"15887:3:88"},"nativeSrc":"15887:32:88","nodeType":"YulFunctionCall","src":"15887:32:88"},"nativeSrc":"15884:52:88","nodeType":"YulIf","src":"15884:52:88"},{"nativeSrc":"15945:29:88","nodeType":"YulVariableDeclaration","src":"15945:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15964:9:88","nodeType":"YulIdentifier","src":"15964:9:88"}],"functionName":{"name":"mload","nativeSrc":"15958:5:88","nodeType":"YulIdentifier","src":"15958:5:88"},"nativeSrc":"15958:16:88","nodeType":"YulFunctionCall","src":"15958:16:88"},"variables":[{"name":"value","nativeSrc":"15949:5:88","nodeType":"YulTypedName","src":"15949:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16005:5:88","nodeType":"YulIdentifier","src":"16005:5:88"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"15983:21:88","nodeType":"YulIdentifier","src":"15983:21:88"},"nativeSrc":"15983:28:88","nodeType":"YulFunctionCall","src":"15983:28:88"},"nativeSrc":"15983:28:88","nodeType":"YulExpressionStatement","src":"15983:28:88"},{"nativeSrc":"16020:15:88","nodeType":"YulAssignment","src":"16020:15:88","value":{"name":"value","nativeSrc":"16030:5:88","nodeType":"YulIdentifier","src":"16030:5:88"},"variableNames":[{"name":"value0","nativeSrc":"16020:6:88","nodeType":"YulIdentifier","src":"16020:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"15796:245:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15840:9:88","nodeType":"YulTypedName","src":"15840:9:88","type":""},{"name":"dataEnd","nativeSrc":"15851:7:88","nodeType":"YulTypedName","src":"15851:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15863:6:88","nodeType":"YulTypedName","src":"15863:6:88","type":""}],"src":"15796:245:88"},{"body":{"nativeSrc":"16220:232:88","nodeType":"YulBlock","src":"16220:232:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16237:9:88","nodeType":"YulIdentifier","src":"16237:9:88"},{"kind":"number","nativeSrc":"16248:2:88","nodeType":"YulLiteral","src":"16248:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16230:6:88","nodeType":"YulIdentifier","src":"16230:6:88"},"nativeSrc":"16230:21:88","nodeType":"YulFunctionCall","src":"16230:21:88"},"nativeSrc":"16230:21:88","nodeType":"YulExpressionStatement","src":"16230:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16271:9:88","nodeType":"YulIdentifier","src":"16271:9:88"},{"kind":"number","nativeSrc":"16282:2:88","nodeType":"YulLiteral","src":"16282:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16267:3:88","nodeType":"YulIdentifier","src":"16267:3:88"},"nativeSrc":"16267:18:88","nodeType":"YulFunctionCall","src":"16267:18:88"},{"kind":"number","nativeSrc":"16287:2:88","nodeType":"YulLiteral","src":"16287:2:88","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"16260:6:88","nodeType":"YulIdentifier","src":"16260:6:88"},"nativeSrc":"16260:30:88","nodeType":"YulFunctionCall","src":"16260:30:88"},"nativeSrc":"16260:30:88","nodeType":"YulExpressionStatement","src":"16260:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16310:9:88","nodeType":"YulIdentifier","src":"16310:9:88"},{"kind":"number","nativeSrc":"16321:2:88","nodeType":"YulLiteral","src":"16321:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16306:3:88","nodeType":"YulIdentifier","src":"16306:3:88"},"nativeSrc":"16306:18:88","nodeType":"YulFunctionCall","src":"16306:18:88"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"16326:34:88","nodeType":"YulLiteral","src":"16326:34:88","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"16299:6:88","nodeType":"YulIdentifier","src":"16299:6:88"},"nativeSrc":"16299:62:88","nodeType":"YulFunctionCall","src":"16299:62:88"},"nativeSrc":"16299:62:88","nodeType":"YulExpressionStatement","src":"16299:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16381:9:88","nodeType":"YulIdentifier","src":"16381:9:88"},{"kind":"number","nativeSrc":"16392:2:88","nodeType":"YulLiteral","src":"16392:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16377:3:88","nodeType":"YulIdentifier","src":"16377:3:88"},"nativeSrc":"16377:18:88","nodeType":"YulFunctionCall","src":"16377:18:88"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"16397:12:88","nodeType":"YulLiteral","src":"16397:12:88","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"16370:6:88","nodeType":"YulIdentifier","src":"16370:6:88"},"nativeSrc":"16370:40:88","nodeType":"YulFunctionCall","src":"16370:40:88"},"nativeSrc":"16370:40:88","nodeType":"YulExpressionStatement","src":"16370:40:88"},{"nativeSrc":"16419:27:88","nodeType":"YulAssignment","src":"16419:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16431:9:88","nodeType":"YulIdentifier","src":"16431:9:88"},{"kind":"number","nativeSrc":"16442:3:88","nodeType":"YulLiteral","src":"16442:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16427:3:88","nodeType":"YulIdentifier","src":"16427:3:88"},"nativeSrc":"16427:19:88","nodeType":"YulFunctionCall","src":"16427:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16419:4:88","nodeType":"YulIdentifier","src":"16419:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16046:406:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16197:9:88","nodeType":"YulTypedName","src":"16197:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16211:4:88","nodeType":"YulTypedName","src":"16211:4:88","type":""}],"src":"16046:406:88"},{"body":{"nativeSrc":"16631:228:88","nodeType":"YulBlock","src":"16631:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16648:9:88","nodeType":"YulIdentifier","src":"16648:9:88"},{"kind":"number","nativeSrc":"16659:2:88","nodeType":"YulLiteral","src":"16659:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16641:6:88","nodeType":"YulIdentifier","src":"16641:6:88"},"nativeSrc":"16641:21:88","nodeType":"YulFunctionCall","src":"16641:21:88"},"nativeSrc":"16641:21:88","nodeType":"YulExpressionStatement","src":"16641:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16682:9:88","nodeType":"YulIdentifier","src":"16682:9:88"},{"kind":"number","nativeSrc":"16693:2:88","nodeType":"YulLiteral","src":"16693:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16678:3:88","nodeType":"YulIdentifier","src":"16678:3:88"},"nativeSrc":"16678:18:88","nodeType":"YulFunctionCall","src":"16678:18:88"},{"kind":"number","nativeSrc":"16698:2:88","nodeType":"YulLiteral","src":"16698:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"16671:6:88","nodeType":"YulIdentifier","src":"16671:6:88"},"nativeSrc":"16671:30:88","nodeType":"YulFunctionCall","src":"16671:30:88"},"nativeSrc":"16671:30:88","nodeType":"YulExpressionStatement","src":"16671:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16721:9:88","nodeType":"YulIdentifier","src":"16721:9:88"},{"kind":"number","nativeSrc":"16732:2:88","nodeType":"YulLiteral","src":"16732:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16717:3:88","nodeType":"YulIdentifier","src":"16717:3:88"},"nativeSrc":"16717:18:88","nodeType":"YulFunctionCall","src":"16717:18:88"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"16737:34:88","nodeType":"YulLiteral","src":"16737:34:88","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"16710:6:88","nodeType":"YulIdentifier","src":"16710:6:88"},"nativeSrc":"16710:62:88","nodeType":"YulFunctionCall","src":"16710:62:88"},"nativeSrc":"16710:62:88","nodeType":"YulExpressionStatement","src":"16710:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16792:9:88","nodeType":"YulIdentifier","src":"16792:9:88"},{"kind":"number","nativeSrc":"16803:2:88","nodeType":"YulLiteral","src":"16803:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16788:3:88","nodeType":"YulIdentifier","src":"16788:3:88"},"nativeSrc":"16788:18:88","nodeType":"YulFunctionCall","src":"16788:18:88"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"16808:8:88","nodeType":"YulLiteral","src":"16808:8:88","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"16781:6:88","nodeType":"YulIdentifier","src":"16781:6:88"},"nativeSrc":"16781:36:88","nodeType":"YulFunctionCall","src":"16781:36:88"},"nativeSrc":"16781:36:88","nodeType":"YulExpressionStatement","src":"16781:36:88"},{"nativeSrc":"16826:27:88","nodeType":"YulAssignment","src":"16826:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16838:9:88","nodeType":"YulIdentifier","src":"16838:9:88"},{"kind":"number","nativeSrc":"16849:3:88","nodeType":"YulLiteral","src":"16849:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16834:3:88","nodeType":"YulIdentifier","src":"16834:3:88"},"nativeSrc":"16834:19:88","nodeType":"YulFunctionCall","src":"16834:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16826:4:88","nodeType":"YulIdentifier","src":"16826:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16457:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16608:9:88","nodeType":"YulTypedName","src":"16608:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16622:4:88","nodeType":"YulTypedName","src":"16622:4:88","type":""}],"src":"16457:402:88"},{"body":{"nativeSrc":"17001:164:88","nodeType":"YulBlock","src":"17001:164:88","statements":[{"nativeSrc":"17011:27:88","nodeType":"YulVariableDeclaration","src":"17011:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"17031:6:88","nodeType":"YulIdentifier","src":"17031:6:88"}],"functionName":{"name":"mload","nativeSrc":"17025:5:88","nodeType":"YulIdentifier","src":"17025:5:88"},"nativeSrc":"17025:13:88","nodeType":"YulFunctionCall","src":"17025:13:88"},"variables":[{"name":"length","nativeSrc":"17015:6:88","nodeType":"YulTypedName","src":"17015:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17053:3:88","nodeType":"YulIdentifier","src":"17053:3:88"},{"arguments":[{"name":"value0","nativeSrc":"17062:6:88","nodeType":"YulIdentifier","src":"17062:6:88"},{"kind":"number","nativeSrc":"17070:4:88","nodeType":"YulLiteral","src":"17070:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17058:3:88","nodeType":"YulIdentifier","src":"17058:3:88"},"nativeSrc":"17058:17:88","nodeType":"YulFunctionCall","src":"17058:17:88"},{"name":"length","nativeSrc":"17077:6:88","nodeType":"YulIdentifier","src":"17077:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"17047:5:88","nodeType":"YulIdentifier","src":"17047:5:88"},"nativeSrc":"17047:37:88","nodeType":"YulFunctionCall","src":"17047:37:88"},"nativeSrc":"17047:37:88","nodeType":"YulExpressionStatement","src":"17047:37:88"},{"nativeSrc":"17093:26:88","nodeType":"YulVariableDeclaration","src":"17093:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"17107:3:88","nodeType":"YulIdentifier","src":"17107:3:88"},{"name":"length","nativeSrc":"17112:6:88","nodeType":"YulIdentifier","src":"17112:6:88"}],"functionName":{"name":"add","nativeSrc":"17103:3:88","nodeType":"YulIdentifier","src":"17103:3:88"},"nativeSrc":"17103:16:88","nodeType":"YulFunctionCall","src":"17103:16:88"},"variables":[{"name":"_1","nativeSrc":"17097:2:88","nodeType":"YulTypedName","src":"17097:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"17135:2:88","nodeType":"YulIdentifier","src":"17135:2:88"},{"kind":"number","nativeSrc":"17139:1:88","nodeType":"YulLiteral","src":"17139:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17128:6:88","nodeType":"YulIdentifier","src":"17128:6:88"},"nativeSrc":"17128:13:88","nodeType":"YulFunctionCall","src":"17128:13:88"},"nativeSrc":"17128:13:88","nodeType":"YulExpressionStatement","src":"17128:13:88"},{"nativeSrc":"17150:9:88","nodeType":"YulAssignment","src":"17150:9:88","value":{"name":"_1","nativeSrc":"17157:2:88","nodeType":"YulIdentifier","src":"17157:2:88"},"variableNames":[{"name":"end","nativeSrc":"17150:3:88","nodeType":"YulIdentifier","src":"17150:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"16864:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16977:3:88","nodeType":"YulTypedName","src":"16977:3:88","type":""},{"name":"value0","nativeSrc":"16982:6:88","nodeType":"YulTypedName","src":"16982:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16993:3:88","nodeType":"YulTypedName","src":"16993:3:88","type":""}],"src":"16864:301:88"},{"body":{"nativeSrc":"17344:179:88","nodeType":"YulBlock","src":"17344:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17361:9:88","nodeType":"YulIdentifier","src":"17361:9:88"},{"kind":"number","nativeSrc":"17372:2:88","nodeType":"YulLiteral","src":"17372:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17354:6:88","nodeType":"YulIdentifier","src":"17354:6:88"},"nativeSrc":"17354:21:88","nodeType":"YulFunctionCall","src":"17354:21:88"},"nativeSrc":"17354:21:88","nodeType":"YulExpressionStatement","src":"17354:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17395:9:88","nodeType":"YulIdentifier","src":"17395:9:88"},{"kind":"number","nativeSrc":"17406:2:88","nodeType":"YulLiteral","src":"17406:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17391:3:88","nodeType":"YulIdentifier","src":"17391:3:88"},"nativeSrc":"17391:18:88","nodeType":"YulFunctionCall","src":"17391:18:88"},{"kind":"number","nativeSrc":"17411:2:88","nodeType":"YulLiteral","src":"17411:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"17384:6:88","nodeType":"YulIdentifier","src":"17384:6:88"},"nativeSrc":"17384:30:88","nodeType":"YulFunctionCall","src":"17384:30:88"},"nativeSrc":"17384:30:88","nodeType":"YulExpressionStatement","src":"17384:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17434:9:88","nodeType":"YulIdentifier","src":"17434:9:88"},{"kind":"number","nativeSrc":"17445:2:88","nodeType":"YulLiteral","src":"17445:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17430:3:88","nodeType":"YulIdentifier","src":"17430:3:88"},"nativeSrc":"17430:18:88","nodeType":"YulFunctionCall","src":"17430:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"17450:31:88","nodeType":"YulLiteral","src":"17450:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"17423:6:88","nodeType":"YulIdentifier","src":"17423:6:88"},"nativeSrc":"17423:59:88","nodeType":"YulFunctionCall","src":"17423:59:88"},"nativeSrc":"17423:59:88","nodeType":"YulExpressionStatement","src":"17423:59:88"},{"nativeSrc":"17491:26:88","nodeType":"YulAssignment","src":"17491:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"17503:9:88","nodeType":"YulIdentifier","src":"17503:9:88"},{"kind":"number","nativeSrc":"17514:2:88","nodeType":"YulLiteral","src":"17514:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17499:3:88","nodeType":"YulIdentifier","src":"17499:3:88"},"nativeSrc":"17499:18:88","nodeType":"YulFunctionCall","src":"17499:18:88"},"variableNames":[{"name":"tail","nativeSrc":"17491:4:88","nodeType":"YulIdentifier","src":"17491:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17170:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17321:9:88","nodeType":"YulTypedName","src":"17321:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17335:4:88","nodeType":"YulTypedName","src":"17335:4:88","type":""}],"src":"17170:353:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256t_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_int256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_e3a96f8bd7601d55acd817a59961e9a5a778b77f2741fc14ccae0144421e47d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Vault is broken\")\n        tail := add(headStart, 96)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint8(x, y) -> sum\n    {\n        sum := add(and(x, 0xff), and(y, 0xff))\n        if gt(sum, 0xff) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_942dfdb1d5d5ae526782b9f85d1470d0ba794a7c694ad01b5b8d1ba2521ed1a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"ERC4626: deposit more than max\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a4a897ed07dc1191e15e1ac5726d86067d87f89bebeded2b310bdf1e25a3dac3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"ERC4626: mint more than max\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6d33bd82b6352ef75960e453c6162657943d72f718df3c8a607eeb1427f0aa42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC4626: withdraw more than max\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3cf75848883fee8cd3a46e6e14bbbd331bc8d0caaef08fbe607c62e5fba35c6d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC4626: redeem more than max\")\n        tail := add(headStart, 96)\n    }\n    function negate_t_int256(value) -> ret\n    {\n        if eq(value, shl(255, 1)) { panic_error_0x11() }\n        ret := sub(0, value)\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint112(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffff))\n        if gt(sum, 0xffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_sub_t_uint112(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffffffffffffffffffffff), and(y, 0xffffffffffffffffffffffffffff))\n        if gt(diff, 0xffffffffffffffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_sub_t_uint32(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffff), and(y, 0xffffffff))\n        if gt(diff, 0xffffffff) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 9\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Math: mulDiv overflow\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: burn amount exceeds balan\")\n        mstore(add(headStart, 96), \"ce\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"12 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5431":[{"length":32,"start":656},{"length":32,"start":3173},{"length":32,"start":3320},{"length":32,"start":4178},{"length":32,"start":4370}],"5433":[{"length":32,"start":1365}]},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c806386de9e4f116100fe578063ba0876521161009e578063ce96cb771161006e578063ce96cb77146103ea578063d905777e146103fd578063dd62ed3e14610410578063ef8b30f7146103c4575f5ffd5b8063ba087652146103b1578063c63d75b6146102cd578063c6e6f592146103c4578063c7361ed2146103d7575f5ffd5b8063a457c2d7116100d9578063a457c2d714610365578063a9059cbb14610378578063b3d7f6b91461038b578063b460af941461039e575f5ffd5b806386de9e4f1461032757806394bf804d1461034a57806395d89b411461035d575f5ffd5b8063313ce567116101745780634cdad506116101445780634cdad506146102055780636e553f65146102e157806370a08231146102f45780637fb1ad621461031c575f5ffd5b8063313ce5671461026957806338d52e0f1461028357806339509351146102ba578063402d267d146102cd575f5ffd5b8063095ea7b3116101af578063095ea7b3146102185780630a28a4771461023b57806318160ddd1461024e57806323b872dd14610256575f5ffd5b806301e1d114146101d557806306fdde03146101f057806307a2d13a14610205575b5f5ffd5b6101dd610423565b6040519081526020015b60405180910390f35b6101f8610465565b6040516101e791906118c9565b6101dd6102133660046118fe565b6104f5565b61022b61022636600461192b565b610506565b60405190151581526020016101e7565b6101dd6102493660046118fe565b61051d565b6002546101dd565b61022b610264366004611953565b610529565b61027161054e565b60405160ff90911681526020016101e7565b6040516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020016101e7565b61022b6102c836600461192b565b610579565b6101dd6102db36600461198d565b505f1990565b6101dd6102ef3660046119a6565b61059a565b6101dd61030236600461198d565b6001600160a01b03165f9081526020819052604090205490565b60075460ff1661022b565b6103486103353660046119dd565b6007805460ff1916911515919091179055565b005b6101dd6103583660046119a6565b6105b3565b6101f86105cc565b61022b61037336600461192b565b6105db565b61022b61038636600461192b565b610660565b6101dd6103993660046118fe565b61066d565b6101dd6103ac3660046119f8565b610679565b6101dd6103bf3660046119f8565b6106f3565b6101dd6103d23660046118fe565b610765565b6103486103e53660046118fe565b610770565b6101dd6103f836600461198d565b6107a8565b6101dd61040b36600461198d565b6107ca565b6101dd61041e366004611a31565b6107e7565b6007545f9060ff16156104515760405162461bcd60e51b815260040161044890611a59565b60405180910390fd5b60055461046090600690610811565b905090565b60606003805461047490611a82565b80601f01602080910402602001604051908101604052809291908181526020018280546104a090611a82565b80156104eb5780601f106104c2576101008083540402835291602001916104eb565b820191905f5260205f20905b8154815290600101906020018083116104ce57829003601f168201915b5050505050905090565b5f610500825f610848565b92915050565b5f33610513818585610880565b5060019392505050565b5f6105008260016109a3565b5f336105368582856109d2565b610541858585610a4a565b60019150505b9392505050565b5f610460817f0000000000000000000000000000000000000000000000000000000000000000611ac8565b5f3361051381858561058b83836107e7565b6105959190611ae1565b610880565b5f5f6105a584610765565b905061054733848684610bec565b5f5f6105be8461066d565b905061054733848387610bec565b60606004805461047490611a82565b5f33816105e882866107e7565b9050838110156106485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610448565b6106558286868403610880565b506001949350505050565b5f33610513818585610a4a565b5f610500826001610848565b5f610683826107a8565b8411156106d25760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d6178006044820152606401610448565b5f6106dc8561051d565b90506106eb3385858885610c2d565b949350505050565b5f6106fd826107ca565b84111561074c5760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d61780000006044820152606401610448565b5f610756856104f5565b90506106eb3385858489610c2d565b5f610500825f6109a3565b5f81131561078d57600554610789906006908390610d9f565b5050565b61078961079982611af4565b60055460069190610e1c565b50565b6001600160a01b0381165f90815260208190526040812054610500905f610848565b6001600160a01b0381165f90815260208190526040812054610500565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f6105476108436108228585610ec8565b855461083d90600160701b90046001600160701b0316610f70565b90610f8a565b610fcc565b5f610547610854610423565b61085f906001611ae1565b61086a5f600a611bf1565b6002546108779190611ae1565b85919085610fef565b6001600160a01b0383166108e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610448565b6001600160a01b0382166109435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610448565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105476109b282600a611bf1565b6002546109bf9190611ae1565b6109c7610423565b610877906001611ae1565b5f6109dd84846107e7565b90505f198114610a445781811015610a375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610448565b610a448484848403610880565b50505050565b6001600160a01b038316610aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610448565b6001600160a01b038216610b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610448565b6001600160a01b0383165f9081526020819052604090205481811015610b875760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610448565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a44565b60075460ff1615610c0f5760405162461bcd60e51b815260040161044890611a59565b600554610c20906006908490610d9f565b50610a448484848461104d565b60075460ff1615610c505760405162461bcd60e51b815260040161044890611a59565b600554610c61906006908490610e1c565b505f7f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610cc8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190611bff565b905082811015610d8a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166340c10f1930610d308487611c16565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015610d73575f5ffd5b505af1158015610d85573d5f5f3e3d5ffd5b505050505b610d9786868686866110df565b505050505050565b5f610daa848361119f565b5f610db5858561123c565b9050610dc081611260565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316610ded9190611c29565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550809150509392505050565b5f610e27848361119f565b5f610e32858561123c565b9050610e3d81611260565b6001600160601b0316855f01600e8282829054906101000a90046001600160701b0316610e6a9190611c48565b82546101009290920a6001600160701b038181021990931691831602179091558654600160701b9004165f0390506106eb5784546dffffffffffffffffffffffffffff19166b033b2e3c9fd0803ce800000017855590509392505050565b81545f90429063ffffffff808316600160e01b9092041610610ef657505081546001600160701b0316610500565b83545f90610f1190600160e01b900463ffffffff1683611c67565b63ffffffff169050610f676b033b2e3c9fd0803ce80000006301e1338083610f3888610f70565b610f429190611c83565b610f4c9190611cae565b610f569190611ae1565b86546001600160701b031690610f8a565b95945050505050565b633b9aca008181029081048214610f85575f5ffd5b919050565b5f81156b019d971e4fe8401e740000001983900484111517610faa575f5ffd5b506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b633b9aca00808204908206631dcd65008110610fe9576001820191505b50919050565b5f5f610ffc8686866112cb565b9050600183600281111561101257611012611ccd565b14801561102e57505f848061102957611029611c9a565b868809115b15610f675761103e600182611ae1565b9695505050505050565b505050565b6110797f00000000000000000000000000000000000000000000000000000000000000008530856113b0565b611083838261141b565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d784846040516110d1929190918252602082015260400190565b60405180910390a350505050565b826001600160a01b0316856001600160a01b031614611103576111038386836109d2565b61110d83826114d8565b6111387f00000000000000000000000000000000000000000000000000000000000000008584611608565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051611190929190918252602082015260400190565b60405180910390a45050505050565b815463ffffffff428116600160e01b90920416106111bb575050565b8154600160701b90046001600160701b03165f036111f25781546001600160e01b0316600160e01b4263ffffffff16021782555050565b6112046111ff8383610ec8565b611638565b82546001600160701b03919091166dffffffffffffffffffffffffffff60701b90911617600160e01b4263ffffffff16021790915550565b81545f9061054790610843906001600160701b031661125a85610f70565b906116a0565b5f6001600160601b038211156112c75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610448565b5090565b5f80805f19858709858702925082811083820303915050805f03611302578382816112f8576112f8611c9a565b0492505050610547565b8084116113495760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610448565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610a449085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526116dd565b6001600160a01b0382166114715760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610448565b8060025f8282546114829190611ae1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166115385760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610448565b6001600160a01b0382165f90815260208190526040902054818110156115ab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610448565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b03831660248201526044810182905261104890849063a9059cbb60e01b906064016113e4565b5f6001600160701b038211156112c75760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663132206269747360c81b6064820152608401610448565b5f81156b033b2e3c9fd0803ce8000000600284041904841117156116c2575f5ffd5b506b033b2e3c9fd0803ce80000009190910260028204010490565b5f611731826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117b09092919063ffffffff16565b905080515f14806117515750808060200190518101906117519190611ce1565b6110485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610448565b60606106eb84845f85855f5f866001600160a01b031685876040516117d59190611cfc565b5f6040518083038185875af1925050503d805f811461180f576040519150601f19603f3d011682016040523d82523d5f602084013e611814565b606091505b509150915061182587838387611830565b979650505050505050565b6060831561189e5782515f03611897576001600160a01b0385163b6118975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610448565b50816106eb565b6106eb83838151156118b35781518083602001fd5b8060405162461bcd60e51b815260040161044891905b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561190e575f5ffd5b5035919050565b80356001600160a01b0381168114610f85575f5ffd5b5f5f6040838503121561193c575f5ffd5b61194583611915565b946020939093013593505050565b5f5f5f60608486031215611965575f5ffd5b61196e84611915565b925061197c60208501611915565b929592945050506040919091013590565b5f6020828403121561199d575f5ffd5b61054782611915565b5f5f604083850312156119b7575f5ffd5b823591506119c760208401611915565b90509250929050565b80151581146107a5575f5ffd5b5f602082840312156119ed575f5ffd5b8135610547816119d0565b5f5f5f60608486031215611a0a575f5ffd5b83359250611a1a60208501611915565b9150611a2860408501611915565b90509250925092565b5f5f60408385031215611a42575f5ffd5b611a4b83611915565b91506119c760208401611915565b6020808252600f908201526e2b30bab63a1034b990313937b5b2b760891b604082015260600190565b600181811c90821680611a9657607f821691505b602082108103610fe957634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b60ff818116838216019081111561050057610500611ab4565b8082018082111561050057610500611ab4565b5f600160ff1b8201611b0857611b08611ab4565b505f0390565b6001815b6001841115611b4957808504811115611b2d57611b2d611ab4565b6001841615611b3b57908102905b60019390931c928002611b12565b935093915050565b5f82611b5f57506001610500565b81611b6b57505f610500565b8160018114611b815760028114611b8b57611ba7565b6001915050610500565b60ff841115611b9c57611b9c611ab4565b50506001821b610500565b5060208310610133831016604e8410600b8410161715611bca575081810a610500565b611bd65f198484611b0e565b805f1904821115611be957611be9611ab4565b029392505050565b5f61054760ff841683611b51565b5f60208284031215611c0f575f5ffd5b5051919050565b8181038181111561050057610500611ab4565b6001600160701b03818116838216019081111561050057610500611ab4565b6001600160701b03828116828216039081111561050057610500611ab4565b63ffffffff828116828216039081111561050057610500611ab4565b808202811582820484141761050057610500611ab4565b634e487b7160e01b5f52601260045260245ffd5b5f82611cc857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215611cf1575f5ffd5b8151610547816119d0565b5f82518060208501845e5f92019182525091905056fea2646970667358221220dd185084742b6844ed5c6413558f38966341027d28833a2a8c7a6cbac1f78bd764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1D1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86DE9E4F GT PUSH2 0xFE JUMPI DUP1 PUSH4 0xBA087652 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xCE96CB77 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xCE96CB77 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0xD905777E EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xEF8B30F7 EQ PUSH2 0x3C4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xBA087652 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0xC63D75B6 EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xC6E6F592 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xC7361ED2 EQ PUSH2 0x3D7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x365 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x378 JUMPI DUP1 PUSH4 0xB3D7F6B9 EQ PUSH2 0x38B JUMPI DUP1 PUSH4 0xB460AF94 EQ PUSH2 0x39E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x86DE9E4F EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x35D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x4CDAD506 GT PUSH2 0x144 JUMPI DUP1 PUSH4 0x4CDAD506 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x6E553F65 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x7FB1AD62 EQ PUSH2 0x31C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x283 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0x402D267D EQ PUSH2 0x2CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x1AF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0xA28A477 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x256 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1E1D114 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F0 JUMPI DUP1 PUSH4 0x7A2D13A EQ PUSH2 0x205 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1DD PUSH2 0x423 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x18C9 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x22B PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x249 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x51D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1DD JUMP JUMPDEST PUSH2 0x22B PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x1953 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH2 0x271 PUSH2 0x54E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E7 JUMP JUMPDEST PUSH2 0x22B PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST POP PUSH0 NOT SWAP1 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x19A6 JUMP JUMPDEST PUSH2 0x59A JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x22B JUMP JUMPDEST PUSH2 0x348 PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x19DD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DD PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x19A6 JUMP JUMPDEST PUSH2 0x5B3 JUMP JUMPDEST PUSH2 0x1F8 PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x22B PUSH2 0x373 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH2 0x22B PUSH2 0x386 CALLDATASIZE PUSH1 0x4 PUSH2 0x192B JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x66D JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3AC CALLDATASIZE PUSH1 0x4 PUSH2 0x19F8 JUMP JUMPDEST PUSH2 0x679 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x19F8 JUMP JUMPDEST PUSH2 0x6F3 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x765 JUMP JUMPDEST PUSH2 0x348 PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x18FE JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x198D JUMP JUMPDEST PUSH2 0x7CA JUMP JUMPDEST PUSH2 0x1DD PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x1A31 JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x460 SWAP1 PUSH1 0x6 SWAP1 PUSH2 0x811 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x474 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4A0 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4EB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4C2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4EB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4CE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH0 PUSH2 0x848 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0x880 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH1 0x1 PUSH2 0x9A3 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x536 DUP6 DUP3 DUP6 PUSH2 0x9D2 JUMP JUMPDEST PUSH2 0x541 DUP6 DUP6 DUP6 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x460 DUP2 PUSH32 0x0 PUSH2 0x1AC8 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0x58B DUP4 DUP4 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x595 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x880 JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x5A5 DUP5 PUSH2 0x765 JUMP JUMPDEST SWAP1 POP PUSH2 0x547 CALLER DUP5 DUP7 DUP5 PUSH2 0xBEC JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x5BE DUP5 PUSH2 0x66D JUMP JUMPDEST SWAP1 POP PUSH2 0x547 CALLER DUP5 DUP4 DUP8 PUSH2 0xBEC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x474 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x5E8 DUP3 DUP7 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH2 0x655 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x880 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x513 DUP2 DUP6 DUP6 PUSH2 0xA4A JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH1 0x1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH2 0x683 DUP3 PUSH2 0x7A8 JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x6D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243343632363A207769746864726177206D6F7265207468616E206D617800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 PUSH2 0x6DC DUP6 PUSH2 0x51D JUMP JUMPDEST SWAP1 POP PUSH2 0x6EB CALLER DUP6 DUP6 DUP9 DUP6 PUSH2 0xC2D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FD DUP3 PUSH2 0x7CA JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x74C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243343632363A2072656465656D206D6F7265207468616E206D6178000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 PUSH2 0x756 DUP6 PUSH2 0x4F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x6EB CALLER DUP6 DUP6 DUP5 DUP10 PUSH2 0xC2D JUMP JUMPDEST PUSH0 PUSH2 0x500 DUP3 PUSH0 PUSH2 0x9A3 JUMP JUMPDEST PUSH0 DUP2 SGT ISZERO PUSH2 0x78D JUMPI PUSH1 0x5 SLOAD PUSH2 0x789 SWAP1 PUSH1 0x6 SWAP1 DUP4 SWAP1 PUSH2 0xD9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x789 PUSH2 0x799 DUP3 PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x6 SWAP2 SWAP1 PUSH2 0xE1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x500 SWAP1 PUSH0 PUSH2 0x848 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x500 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x843 PUSH2 0x822 DUP6 DUP6 PUSH2 0xEC8 JUMP JUMPDEST DUP6 SLOAD PUSH2 0x83D SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xF70 JUMP JUMPDEST SWAP1 PUSH2 0xF8A JUMP JUMPDEST PUSH2 0xFCC JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x854 PUSH2 0x423 JUMP JUMPDEST PUSH2 0x85F SWAP1 PUSH1 0x1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x86A PUSH0 PUSH1 0xA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST DUP6 SWAP2 SWAP1 DUP6 PUSH2 0xFEF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH2 0x9B2 DUP3 PUSH1 0xA PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x9BF SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH2 0x9C7 PUSH2 0x423 JUMP JUMPDEST PUSH2 0x877 SWAP1 PUSH1 0x1 PUSH2 0x1AE1 JUMP JUMPDEST PUSH0 PUSH2 0x9DD DUP5 DUP5 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0xA44 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xA37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH2 0xA44 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x880 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xAAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xB87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA44 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xC20 SWAP1 PUSH1 0x6 SWAP1 DUP5 SWAP1 PUSH2 0xD9F JUMP JUMPDEST POP PUSH2 0xA44 DUP5 DUP5 DUP5 DUP5 PUSH2 0x104D JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP1 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xC61 SWAP1 PUSH1 0x6 SWAP1 DUP5 SWAP1 PUSH2 0xE1C JUMP JUMPDEST POP PUSH0 PUSH32 0x0 PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCEC SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0xD8A JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40C10F19 ADDRESS PUSH2 0xD30 DUP5 DUP8 PUSH2 0x1C16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD73 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0xD97 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x10DF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDAA DUP5 DUP4 PUSH2 0x119F JUMP JUMPDEST PUSH0 PUSH2 0xDB5 DUP6 DUP6 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH2 0xDC0 DUP2 PUSH2 0x1260 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xDED SWAP2 SWAP1 PUSH2 0x1C29 JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE27 DUP5 DUP4 PUSH2 0x119F JUMP JUMPDEST PUSH0 PUSH2 0xE32 DUP6 DUP6 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH2 0xE3D DUP2 PUSH2 0x1260 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP6 PUSH0 ADD PUSH1 0xE DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0xE6A SWAP2 SWAP1 PUSH2 0x1C48 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE DUP7 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV AND PUSH0 SUB SWAP1 POP PUSH2 0x6EB JUMPI DUP5 SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0x33B2E3C9FD0803CE8000000 OR DUP6 SSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF DUP1 DUP4 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0xEF6 JUMPI POP POP DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x500 JUMP JUMPDEST DUP4 SLOAD PUSH0 SWAP1 PUSH2 0xF11 SWAP1 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x1C67 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP PUSH2 0xF67 PUSH12 0x33B2E3C9FD0803CE8000000 PUSH4 0x1E13380 DUP4 PUSH2 0xF38 DUP9 PUSH2 0xF70 JUMP JUMPDEST PUSH2 0xF42 SWAP2 SWAP1 PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0xF4C SWAP2 SWAP1 PUSH2 0x1CAE JUMP JUMPDEST PUSH2 0xF56 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST DUP7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND SWAP1 PUSH2 0xF8A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP2 DUP2 MUL SWAP1 DUP2 DIV DUP3 EQ PUSH2 0xF85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x19D971E4FE8401E74000000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0xFAA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH12 0x33B2E3C9FD0803CE8000000 SWAP2 MUL PUSH12 0x19D971E4FE8401E74000000 ADD DIV SWAP1 JUMP JUMPDEST PUSH4 0x3B9ACA00 DUP1 DUP3 DIV SWAP1 DUP3 MOD PUSH4 0x1DCD6500 DUP2 LT PUSH2 0xFE9 JUMPI PUSH1 0x1 DUP3 ADD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0xFFC DUP7 DUP7 DUP7 PUSH2 0x12CB JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1012 PUSH2 0x1CCD JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x102E JUMPI POP PUSH0 DUP5 DUP1 PUSH2 0x1029 JUMPI PUSH2 0x1029 PUSH2 0x1C9A JUMP JUMPDEST DUP7 DUP9 MULMOD GT JUMPDEST ISZERO PUSH2 0xF67 JUMPI PUSH2 0x103E PUSH1 0x1 DUP3 PUSH2 0x1AE1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1079 PUSH32 0x0 DUP6 ADDRESS DUP6 PUSH2 0x13B0 JUMP JUMPDEST PUSH2 0x1083 DUP4 DUP3 PUSH2 0x141B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDCBC1C05240F31FF3AD067EF1EE35CE4997762752E3A095284754544F4C709D7 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x10D1 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1103 JUMPI PUSH2 0x1103 DUP4 DUP7 DUP4 PUSH2 0x9D2 JUMP JUMPDEST PUSH2 0x110D DUP4 DUP3 PUSH2 0x14D8 JUMP JUMPDEST PUSH2 0x1138 PUSH32 0x0 DUP6 DUP5 PUSH2 0x1608 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xFBDE797D201C681B91056529119E0B02407C7BB96A4A2C75C01FC9667232C8DB DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1190 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP3 DIV AND LT PUSH2 0x11BB JUMPI POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH0 SUB PUSH2 0x11F2 JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR DUP3 SSTORE POP POP JUMP JUMPDEST PUSH2 0x1204 PUSH2 0x11FF DUP4 DUP4 PUSH2 0xEC8 JUMP JUMPDEST PUSH2 0x1638 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x70 SHL SWAP1 SWAP2 AND OR PUSH1 0x1 PUSH1 0xE0 SHL TIMESTAMP PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST DUP2 SLOAD PUSH0 SWAP1 PUSH2 0x547 SWAP1 PUSH2 0x843 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB AND PUSH2 0x125A DUP6 PUSH2 0xF70 JUMP JUMPDEST SWAP1 PUSH2 0x16A0 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 GT ISZERO PUSH2 0x12C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH0 NOT DUP6 DUP8 MULMOD DUP6 DUP8 MUL SWAP3 POP DUP3 DUP2 LT DUP4 DUP3 SUB SUB SWAP2 POP POP DUP1 PUSH0 SUB PUSH2 0x1302 JUMPI DUP4 DUP3 DUP2 PUSH2 0x12F8 JUMPI PUSH2 0x12F8 PUSH2 0x1C9A JUMP JUMPDEST DIV SWAP3 POP POP POP PUSH2 0x547 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x1349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4D6174683A206D756C446976206F766572666C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x2 PUSH1 0x1 DUP8 NOT DUP2 ADD DUP9 AND SWAP8 DUP9 SWAP1 DIV PUSH1 0x3 DUP2 MUL DUP4 XOR DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL DUP1 DUP3 MUL DUP5 SUB MUL SWAP1 DUP2 MUL SWAP1 SWAP3 SUB SWAP1 SWAP2 MUL PUSH0 DUP9 SWAP1 SUB DUP9 SWAP1 DIV SWAP1 SWAP2 ADD DUP6 DUP4 GT SWAP1 SWAP5 SUB SWAP4 SWAP1 SWAP4 MUL SWAP4 SUB SWAP5 SWAP1 SWAP5 DIV SWAP2 SWAP1 SWAP2 OR MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0xA44 SWAP1 DUP6 SWAP1 PUSH4 0x23B872DD PUSH1 0xE0 SHL SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1482 SWAP2 SWAP1 PUSH2 0x1AE1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1538 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x15AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1048 SWAP1 DUP5 SWAP1 PUSH4 0xA9059CBB PUSH1 0xE0 SHL SWAP1 PUSH1 0x64 ADD PUSH2 0x13E4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 GT ISZERO PUSH2 0x12C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x31322062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH12 0x33B2E3C9FD0803CE8000000 PUSH1 0x2 DUP5 DIV NOT DIV DUP5 GT OR ISZERO PUSH2 0x16C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH12 0x33B2E3C9FD0803CE8000000 SWAP2 SWAP1 SWAP2 MUL PUSH1 0x2 DUP3 DIV ADD DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1731 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x17B0 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH0 EQ DUP1 PUSH2 0x1751 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1751 SWAP2 SWAP1 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x1048 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x448 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6EB DUP5 DUP5 PUSH0 DUP6 DUP6 PUSH0 PUSH0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x17D5 SWAP2 SWAP1 PUSH2 0x1CFC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x180F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1814 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1825 DUP8 DUP4 DUP4 DUP8 PUSH2 0x1830 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x189E JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x1897 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x448 JUMP JUMPDEST POP DUP2 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x6EB DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x18B3 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x448 SWAP2 SWAP1 JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x190E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xF85 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x193C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1945 DUP4 PUSH2 0x1915 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1965 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x196E DUP5 PUSH2 0x1915 JUMP JUMPDEST SWAP3 POP PUSH2 0x197C PUSH1 0x20 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x199D JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x547 DUP3 PUSH2 0x1915 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19B7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x19C7 PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7A5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19ED JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x547 DUP2 PUSH2 0x19D0 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A0A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0x1A1A PUSH1 0x20 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A28 PUSH1 0x40 DUP6 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A42 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x1A4B DUP4 PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP PUSH2 0x19C7 PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0xF SWAP1 DUP3 ADD MSTORE PUSH15 0x2B30BAB63A1034B990313937B5B2B7 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1A96 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFE9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0xFF SHL DUP3 ADD PUSH2 0x1B08 JUMPI PUSH2 0x1B08 PUSH2 0x1AB4 JUMP JUMPDEST POP PUSH0 SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x1B49 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x1B2D JUMPI PUSH2 0x1B2D PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x1B3B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x1B12 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1B5F JUMPI POP PUSH1 0x1 PUSH2 0x500 JUMP JUMPDEST DUP2 PUSH2 0x1B6B JUMPI POP PUSH0 PUSH2 0x500 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1B81 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1B8B JUMPI PUSH2 0x1BA7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x500 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1B9C JUMPI PUSH2 0x1B9C PUSH2 0x1AB4 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x500 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1BCA JUMPI POP DUP2 DUP2 EXP PUSH2 0x500 JUMP JUMPDEST PUSH2 0x1BD6 PUSH0 NOT DUP5 DUP5 PUSH2 0x1B0E JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x1BE9 JUMPI PUSH2 0x1BE9 PUSH2 0x1AB4 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x547 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x1B51 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0x1AB4 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x1CC8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x547 DUP2 PUSH2 0x19D0 JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD XOR POP DUP5 PUSH21 0x2B6844ED5C6413558F38966341027D28833A2A8C7A PUSH13 0xBAC1F78BD764736F6C63430008 SHR STOP CALLER ","sourceMap":"414:2015:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;882:173;;;:::i;:::-;;;160:25:88;;;148:2;133:18;882:173:79;;;;;;;;2158:98:30;;;:::i;:::-;;;;;;;:::i;5422:156:32:-;;;;;;:::i;:::-;;:::i;4444:197:30:-;;;;;;:::i;:::-;;:::i;:::-;;;1498:14:88;;1491:22;1473:41;;1461:2;1446:18;4444:197:30;1333:187:88;6746:154:32;;;;;;:::i;:::-;;:::i;3255:106:30:-;3342:12;;3255:106;;5203:256;;;;;;:::i;:::-;;:::i;4685:151:32:-;;;:::i;:::-;;;2076:4:88;2064:17;;;2046:36;;2034:2;2019:18;4685:151:32;1904:184:88;4880:103:32;;;-1:-1:-1;;;;;4969:6:32;2257:32:88;2239:51;;2227:2;2212:18;4880:103:32;2093:203:88;5854:234:30;;;;;;:::i;:::-;;:::i;5627:117:32:-;;;;;;:::i;:::-;-1:-1:-1;;;5720:17:32;5627:117;7152:315;;;;;;:::i;:::-;;:::i;3419:125:30:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:30;3493:7;3519:18;;;;;;;;;;;;3419:125;2355:72:79;2415:7;;;;2355:72;;2281:70;;;;;;:::i;:::-;2329:7;:17;;-1:-1:-1;;2329:17:79;;;;;;;;;;2281:70;;;7734:303:32;;;;;;:::i;:::-;;:::i;2369:102:30:-;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;6542:150:32:-;;;;;;:::i;:::-;;:::i;8084:339::-;;;;;;:::i;:::-;;:::i;8468:331::-;;;;;;:::i;:::-;;:::i;5212:156::-;;;;;;:::i;:::-;;:::i;2069:208:79:-;;;;;;:::i;:::-;;:::i;5954:161:32:-;;;;;;:::i;:::-;;:::i;6163:121::-;;;;;;:::i;:::-;;:::i;3987:149:30:-;;;;;;:::i;:::-;;:::i;882:173:79:-;967:7;;943;;967;;966:8;958:36;;;;-1:-1:-1;;;958:36:79;;;;;;;:::i;:::-;;;;;;;;;1036:13;;1007:43;;:12;;:28;:43::i;:::-;1000:50;;882:173;:::o;2158:98:30:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;5422:156:32:-;5501:7;5527:44;5544:6;5552:18;5527:16;:44::i;:::-;5520:51;5422:156;-1:-1:-1;;5422:156:32:o;4444:197:30:-;4527:4;734:10:39;4581:32:30;734:10:39;4597:7:30;4606:6;4581:8;:32::i;:::-;-1:-1:-1;4630:4:30;;4444:197;-1:-1:-1;;;4444:197:30:o;6746:154:32:-;6825:7;6851:42;6868:6;6876:16;6851;:42::i;5203:256:30:-;5300:4;734:10:39;5356:38:30;5372:4;734:10:39;5387:6:30;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;;:::o;4685:151:32:-;4766:5;4790:39;4766:5;4790:19;:39;:::i;5854:234:30:-;5942:4;734:10:39;5996:64:30;734:10:39;6012:7:30;6049:10;6021:25;734:10:39;6012:7:30;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;7152:315:32:-;7236:7;7339:14;7356:22;7371:6;7356:14;:22::i;:::-;7339:39;-1:-1:-1;7388:48:32;734:10:39;7411:8:32;7421:6;7429;7388:8;:48::i;7734:303::-;7815:7;7912:14;7929:19;7941:6;7929:11;:19::i;:::-;7912:36;-1:-1:-1;7958:48:32;734:10:39;7981:8:32;7991:6;7999;7958:8;:48::i;2369:102:30:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:39;6668:4:30;6749:25;734:10:39;6766:7:30;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:30;;6055:2:88;6784:85:30;;;6037:21:88;6094:2;6074:18;;;6067:30;6133:34;6113:18;;;6106:62;-1:-1:-1;;;6184:18:88;;;6177:35;6229:19;;6784:85:30;5853:401:88;6784:85:30;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;-1:-1:-1;6991:4:30;;6575:427;-1:-1:-1;;;;6575:427:30:o;3740:189::-;3819:4;734:10:39;3873:28:30;734:10:39;3890:2:30;3894:6;3873:9;:28::i;6542:150:32:-;6617:7;6643:42;6660:6;6668:16;6643;:42::i;8084:339::-;8184:7;8221:18;8233:5;8221:11;:18::i;:::-;8211:6;:28;;8203:72;;;;-1:-1:-1;;;8203:72:32;;6461:2:88;8203:72:32;;;6443:21:88;6500:2;6480:18;;;6473:30;6539:33;6519:18;;;6512:61;6590:18;;8203:72:32;6259:355:88;8203:72:32;8286:14;8303:23;8319:6;8303:15;:23::i;:::-;8286:40;-1:-1:-1;8336:56:32;734:10:39;8360:8:32;8370:5;8377:6;8385;8336:9;:56::i;:::-;8410:6;8084:339;-1:-1:-1;;;;8084:339:32:o;8468:331::-;8566:7;8603:16;8613:5;8603:9;:16::i;:::-;8593:6;:26;;8585:68;;;;-1:-1:-1;;;8585:68:32;;6821:2:88;8585:68:32;;;6803:21:88;6860:2;6840:18;;;6833:30;6899:31;6879:18;;;6872:59;6948:18;;8585:68:32;6619:353:88;8585:68:32;8664:14;8681:21;8695:6;8681:13;:21::i;:::-;8664:38;-1:-1:-1;8712:56:32;734:10:39;8736:8:32;8746:5;8753:6;8761;8712:9;:56::i;5212:156::-;5291:7;5317:44;5334:6;5342:18;5317:16;:44::i;2069:208:79:-;2137:1;2128:6;:10;2124:149;;;2182:13;;2148:48;;:12;;2173:6;;2148:16;:48::i;:::-;;2069:208;:::o;2124:149::-;2217:49;2242:7;2243:6;2242:7;:::i;:::-;2252:13;;2217:12;;:49;:16;:49::i;2124:149::-;2069:208;:::o;5954:161:32:-;-1:-1:-1;;;;;3519:18:30;;6028:7:32;3519:18:30;;;;;;;;;;;6054:54:32;;6089:18;6054:16;:54::i;6163:121::-;-1:-1:-1;;;;;3519:18:30;;6235:7:32;3519:18:30;;;;;;;;;;;6261:16:32;3419:125:30;3987:149;-1:-1:-1;;;;;4102:18:30;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;1600:227:63:-;1705:7;1727:95;:84;1774:36;1783:12;1797;1774:8;:36::i;:::-;1735:19;;1727:39;;-1:-1:-1;;;1735:19:63;;-1:-1:-1;;;;;1735:19:63;1727:37;:39::i;:::-;:46;;:84::i;:::-;:93;:95::i;9260:213:32:-;9357:7;9383:83;9397:13;:11;:13::i;:::-;:17;;9413:1;9397:17;:::i;:::-;9432:23;11412:5;9432:2;:23;:::i;:::-;3342:12:30;;9416:39:32;;;;:::i;:::-;9383:6;;:83;9457:8;9383:13;:83::i;10457:340:30:-;-1:-1:-1;;;;;10558:19:30;;10550:68;;;;-1:-1:-1;;;10550:68:30;;8752:2:88;10550:68:30;;;8734:21:88;8791:2;8771:18;;;8764:30;8830:34;8810:18;;;8803:62;-1:-1:-1;;;8881:18:88;;;8874:34;8925:19;;10550:68:30;8550:400:88;10550:68:30;-1:-1:-1;;;;;10636:21:30;;10628:68;;;;-1:-1:-1;;;10628:68:30;;9157:2:88;10628:68:30;;;9139:21:88;9196:2;9176:18;;;9169:30;9235:34;9215:18;;;9208:62;-1:-1:-1;;;9286:18:88;;;9279:32;9328:19;;10628:68:30;8955:398:88;10628:68:30;-1:-1:-1;;;;;10707:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;160:25:88;;;10758:32:30;;133:18:88;10758:32:30;;;;;;;10457:340;;;:::o;8923:213:32:-;9020:7;9046:83;9076:23;9020:7;9076:2;:23;:::i;:::-;3342:12:30;;9060:39:32;;;;:::i;:::-;9101:13;:11;:13::i;:::-;:17;;9117:1;9101:17;:::i;11078:411:30:-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:30;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:30;;9560:2:88;11297:68:30;;;9542:21:88;9599:2;9579:18;;;9572:30;9638:31;9618:18;;;9611:59;9687:18;;11297:68:30;9358:353:88;11297:68:30;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:30;;7544:68;;;;-1:-1:-1;;;7544:68:30;;9918:2:88;7544:68:30;;;9900:21:88;9957:2;9937:18;;;9930:30;9996:34;9976:18;;;9969:62;-1:-1:-1;;;10047:18:88;;;10040:35;10092:19;;7544:68:30;9716:401:88;7544:68:30;-1:-1:-1;;;;;7630:16:30;;7622:64;;;;-1:-1:-1;;;7622:64:30;;10324:2:88;7622:64:30;;;10306:21:88;10363:2;10343:18;;;10336:30;10402:34;10382:18;;;10375:62;-1:-1:-1;;;10453:18:88;;;10446:33;10496:19;;7622:64:30;10122:399:88;7622:64:30;-1:-1:-1;;;;;7768:15:30;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:30;;10728:2:88;7793:72:30;;;10710:21:88;10767:2;10747:18;;;10740:30;10806:34;10786:18;;;10779:62;-1:-1:-1;;;10857:18:88;;;10850:36;10903:19;;7793:72:30;10526:402:88;7793:72:30;-1:-1:-1;;;;;7899:15:30;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;160:25:88;;;8114:13:30;;8163:26;;133:18:88;8163:26:30;;;;;;;8200:37;12073:91;1111:256:79;1236:7;;;;1235:8;1227:36;;;;-1:-1:-1;;;1227:36:79;;;;;;;:::i;:::-;1294:13;;1269:39;;:12;;1286:6;;1269:16;:39::i;:::-;;1314:48;1329:6;1337:8;1347:6;1355;1314:14;:48::i;1426:522::-;1591:7;;;;1590:8;1582:36;;;;-1:-1:-1;;;1582:36:79;;;;;;;:::i;:::-;1649:13;;1624:39;;:12;;1641:6;;1624:16;:39::i;:::-;-1:-1:-1;1669:15:79;4969:6:32;1687:48:79;;-1:-1:-1;;;1687:48:79;;1729:4;1687:48;;;2239:51:88;-1:-1:-1;;;;;1687:33:79;;;;;;;2212:18:88;;1687:48:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1669:66;;1755:6;1745:7;:16;1741:141;;;4969:6:32;-1:-1:-1;;;;;1814:28:79;;1851:4;1858:16;1867:7;1858:6;:16;:::i;:::-;1814:61;;-1:-1:-1;;;;;;1814:61:79;;;;;;;-1:-1:-1;;;;;11447:32:88;;;1814:61:79;;;11429:51:88;11496:18;;;11489:34;11402:18;;1814:61:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1741:141;1887:56;1903:6;1911:8;1921:5;1928:6;1936;1887:15;:56::i;:::-;1576:372;1426:522;;;;;:::o;2449:293:63:-;2553:7;2568:39;2580:12;2594;2568:11;:39::i;:::-;2613:17;2633:33;2645:12;2659:6;2633:11;:33::i;:::-;2613:53;;2695:20;:9;:18;:20::i;:::-;-1:-1:-1;;;;;2672:43:63;:12;:19;;;:43;;;;;;;;;;-1:-1:-1;;;;;2672:43:63;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2672:43:63;;;;;-1:-1:-1;;;;;2672:43:63;;;;;;2728:9;2721:16;;;2449:293;;;;;:::o;2746:406::-;2850:7;2865:39;2877:12;2891;2865:11;:39::i;:::-;2910:17;2930:33;2942:12;2956:6;2930:11;:33::i;:::-;2910:53;;2992:20;:9;:18;:20::i;:::-;-1:-1:-1;;;;;2969:43:63;:12;:19;;;:43;;;;;;;;;;-1:-1:-1;;;;;2969:43:63;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2969:43:63;;;;;;;;;;;;;;;3022:19;;-1:-1:-1;;;3022:19:63;;;-1:-1:-1;3022:24:63;;-1:-1:-1;3018:108:63;;3092:27;;-1:-1:-1;;3092:27:63;628:4;3092:27;;;3138:9;-1:-1:-1;2746:406:63;;;;;:::o;1138:458::-;1298:23;;1236:7;;1272:15;;1298:31;;;;-1:-1:-1;;;1298:23:63;;;;:31;1294:77;;-1:-1:-1;;1346:18:63;;-1:-1:-1;;;;;1346:18:63;1339:25;;1294:77;1416:23;;1376:22;;1409:30;;-1:-1:-1;;;1416:23:63;;;;1409:4;:30;:::i;:::-;1401:39;;1376:64;;1459:132;705:4:65;505:8:63;1531:14;1505:23;:12;:21;:23::i;:::-;:40;;;;:::i;:::-;1504:61;;;;:::i;:::-;1503:80;;;;:::i;:::-;1467:18;;-1:-1:-1;;;;;1467:18:63;;1459:34;:132::i;:::-;1446:145;1138:458;-1:-1:-1;;;;;1138:458:63:o;3908:247:65:-;4053:13;4046:21;;;;4088;;4085:28;;4075:70;;4135:1;4132;4125:12;4075:70;3908:247;;;:::o;2257:319::-;2318:9;2431;;-1:-1:-1;;2455:29:65;;;2449:36;;2442:44;2428:59;2418:101;;2509:1;2506;2499:12;2418:101;-1:-1:-1;2562:3:65;2540:9;;2551:8;2536:24;2532:34;;2257:319::o;3428:254::-;3526:13;3519:21;;;;3564;;3616;3602:36;;3592:80;;3662:1;3659;3655:9;3650:14;;3592:80;;3428:254;;;:::o;6012:299:45:-;6113:7;6132:14;6149:25;6156:1;6159;6162:11;6149:6;:25::i;:::-;6132:42;-1:-1:-1;6200:11:45;6188:8;:23;;;;;;;;:::i;:::-;;:56;;;;;6243:1;6228:11;6215:25;;;;;:::i;:::-;6225:1;6222;6215:25;:29;6188:56;6184:98;;;6260:11;6270:1;6260:11;;:::i;:::-;;6298:6;-1:-1:-1;;;;;;6012:299:45:o;12073:91:30:-;;;;:::o;9537:830:32:-;10205:65;10232:6;10240;10256:4;10263:6;10205:26;:65::i;:::-;10280:23;10286:8;10296:6;10280:5;:23::i;:::-;10335:8;-1:-1:-1;;;;;10319:41:32;10327:6;-1:-1:-1;;;;;10319:41:32;;10345:6;10353;10319:41;;;;;;13011:25:88;;;13067:2;13052:18;;13045:34;12999:2;12984:18;;12837:248;10319:41:32;;;;;;;;9537:830;;;;:::o;10434:914::-;10621:5;-1:-1:-1;;;;;10611:15:32;:6;-1:-1:-1;;;;;10611:15:32;;10607:84;;10642:38;10658:5;10665:6;10673;10642:15;:38::i;:::-;11198:20;11204:5;11211:6;11198:5;:20::i;:::-;11228:48;11251:6;11259:8;11269:6;11228:22;:48::i;:::-;11319:5;-1:-1:-1;;;;;11292:49:32;11309:8;-1:-1:-1;;;;;11292:49:32;11301:6;-1:-1:-1;;;;;11292:49:32;;11326:6;11334;11292:49;;;;;;13011:25:88;;;13067:2;13052:18;;13045:34;12999:2;12984:18;;12837:248;11292:49:32;;;;;;;;10434:914;;;;;:::o;728:406:63:-;825:23;;:50;859:15;825:50;;-1:-1:-1;;;825:23:63;;;;:50;821:63;;728:406;;:::o;821:63::-;893:19;;-1:-1:-1;;;893:19:63;;-1:-1:-1;;;;;893:19:63;;:24;889:241;;927:49;;-1:-1:-1;;;;;927:49:63;-1:-1:-1;;;960:15:63;927:49;;;;;;2148:48:79;2069:208;:::o;889:241:63:-;1018:48;:36;1027:12;1041;1018:8;:36::i;:::-;:46;:48::i;:::-;997:69;;-1:-1:-1;;;;;997:69:63;;;;-1:-1:-1;;;1074:49:63;;;;-1:-1:-1;;;1107:15:63;1074:49;;;;;;;-1:-1:-1;728:406:63:o;2015:188::-;2167:18;;2111:7;;2133:65;;:54;;-1:-1:-1;;;;;2167:18:63;2133;:7;:16;:18::i;:::-;:25;;:54::i;11168:187:46:-;11224:6;-1:-1:-1;;;;;11250:25:46;;;11242:76;;;;-1:-1:-1;;;11242:76:46;;13292:2:88;11242:76:46;;;13274:21:88;13331:2;13311:18;;;13304:30;13370:34;13350:18;;;13343:62;-1:-1:-1;;;13421:18:88;;;13414:36;13467:19;;11242:76:46;13090:402:88;11242:76:46;-1:-1:-1;11342:5:46;11168:187::o;1667:4213:45:-;1749:14;;;-1:-1:-1;;2286:1:45;2283;2276:20;2329:1;2326;2322:9;2313:18;;2384:5;2380:2;2377:13;2369:5;2365:2;2361:14;2357:34;2348:43;;;2486:5;2495:1;2486:10;2482:368;;2824:11;2816:5;:19;;;;;:::i;:::-;;2809:26;;;;;;2482:368;2974:5;2960:11;:19;2952:53;;;;-1:-1:-1;;;2952:53:45;;13699:2:88;2952:53:45;;;13681:21:88;13738:2;13718:18;;;13711:30;-1:-1:-1;;;13757:18:88;;;13750:51;13818:18;;2952:53:45;13497:345:88;2952:53:45;3261:17;3396:11;3393:1;3390;3383:25;4774:1;3944;3929:12;;:16;;3914:32;;4049:22;;;;4755:1;:15;;4754:21;;5007;;;5003:25;;4992:36;5076:21;;;5072:25;;5061:36;5146:21;;;5142:25;;5131:36;5216:21;;;5212:25;;5201:36;5286:21;;;5282:25;;5271:36;5357:21;;;5353:25;;;5342:36;;;3899:12;4294;;;4290:23;;;4286:31;;;3510:20;;;3499:32;;;4406:12;;;;3557:21;;4147:16;;;;4397:21;;;;5821:15;;;-1:-1:-1;;;;1667:4213:45:o;1355:203:35:-;1482:68;;-1:-1:-1;;;;;14067:32:88;;;1482:68:35;;;14049:51:88;14136:32;;14116:18;;;14109:60;14185:18;;;14178:34;;;1455:96:35;;1475:5;;-1:-1:-1;;;1505:27:35;14022:18:88;;1482:68:35;;;;-1:-1:-1;;1482:68:35;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:35;-1:-1:-1;;;;;;1482:68:35;;;;;;;;;;1455:19;:96::i;8520:535:30:-;-1:-1:-1;;;;;8603:21:30;;8595:65;;;;-1:-1:-1;;;8595:65:30;;14425:2:88;8595:65:30;;;14407:21:88;14464:2;14444:18;;;14437:30;14503:33;14483:18;;;14476:61;14554:18;;8595:65:30;14223:355:88;8595:65:30;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:30;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;160:25:88;;;8952:37:30;;133:18:88;8952:37:30;;;;;;;2148:48:79;2069:208;:::o;9375:659:30:-;-1:-1:-1;;;;;9458:21:30;;9450:67;;;;-1:-1:-1;;;9450:67:30;;14785:2:88;9450:67:30;;;14767:21:88;14824:2;14804:18;;;14797:30;14863:34;14843:18;;;14836:62;-1:-1:-1;;;14914:18:88;;;14907:31;14955:19;;9450:67:30;14583:397:88;9450:67:30;-1:-1:-1;;;;;9613:18:30;;9588:22;9613:18;;;;;;;;;;;9649:24;;;;9641:71;;;;-1:-1:-1;;;9641:71:30;;15187:2:88;9641:71:30;;;15169:21:88;15226:2;15206:18;;;15199:30;15265:34;15245:18;;;15238:62;-1:-1:-1;;;15316:18:88;;;15309:32;15358:19;;9641:71:30;14985:398:88;9641:71:30;-1:-1:-1;;;;;9746:18:30;;:9;:18;;;;;;;;;;;9767:23;;;9746:44;;9883:12;:22;;;;;;;9931:37;160:25:88;;;9746:9:30;;:18;9931:37;;133:18:88;9931:37:30;;;;;;;12073:91;;;:::o;941:175:35:-;1050:58;;-1:-1:-1;;;;;11447:32:88;;1050:58:35;;;11429:51:88;11496:18;;;11489:34;;;1023:86:35;;1043:5;;-1:-1:-1;;;1073:23:35;11402:18:88;;1050:58:35;11255:274:88;10130:192:46;10187:7;-1:-1:-1;;;;;10214:26:46;;;10206:78;;;;-1:-1:-1;;;10206:78:46;;15590:2:88;10206:78:46;;;15572:21:88;15629:2;15609:18;;;15602:30;15668:34;15648:18;;;15641:62;-1:-1:-1;;;15719:18:88;;;15712:37;15766:19;;10206:78:46;15388:403:88;2845:322:65;2906:9;3011;;3070:3;3065:1;3058:9;;3046:22;3042:32;3036:39;;3008:70;3005:104;;;3099:1;3096;3089:12;3005:104;-1:-1:-1;3137:3:65;3130:11;;;;3150:1;3143:9;;3126:27;3122:35;;2845:322::o;5196:642:35:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:35;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:35;;16248:2:88;5720:111:35;;;16230:21:88;16287:2;16267:18;;;16260:30;16326:34;16306:18;;;16299:62;-1:-1:-1;;;16377:18:88;;;16370:40;16427:19;;5720:111:35;16046:406:88;4108:223:38;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:38;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:38:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:38;;;8113:60;;;;-1:-1:-1;;;8113:60:38;;17372:2:88;8113:60:38;;;17354:21:88;17411:2;17391:18;;;17384:30;17450:31;17430:18;;;17423:59;17499:18;;8113:60:38;17170:353:88;8113:60:38;-1:-1:-1;8208:10:38;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:38;;;;;;;196:418:88;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;619:226::-;678:6;731:2;719:9;710:7;706:23;702:32;699:52;;;747:1;744;737:12;699:52;-1:-1:-1;792:23:88;;619:226;-1:-1:-1;619:226:88:o;850:173::-;918:20;;-1:-1:-1;;;;;967:31:88;;957:42;;947:70;;1013:1;1010;1003:12;1028:300;1096:6;1104;1157:2;1145:9;1136:7;1132:23;1128:32;1125:52;;;1173:1;1170;1163:12;1125:52;1196:29;1215:9;1196:29;:::i;:::-;1186:39;1294:2;1279:18;;;;1266:32;;-1:-1:-1;;;1028:300:88:o;1525:374::-;1602:6;1610;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1710:29;1729:9;1710:29;:::i;:::-;1700:39;;1758:38;1792:2;1781:9;1777:18;1758:38;:::i;:::-;1525:374;;1748:48;;-1:-1:-1;;;1865:2:88;1850:18;;;;1837:32;;1525:374::o;2301:186::-;2360:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;2452:29;2471:9;2452:29;:::i;2492:300::-;2560:6;2568;2621:2;2609:9;2600:7;2596:23;2592:32;2589:52;;;2637:1;2634;2627:12;2589:52;2682:23;;;-1:-1:-1;2748:38:88;2782:2;2767:18;;2748:38;:::i;:::-;2738:48;;2492:300;;;;;:::o;2797:118::-;2883:5;2876:13;2869:21;2862:5;2859:32;2849:60;;2905:1;2902;2895:12;2920:241;2976:6;3029:2;3017:9;3008:7;3004:23;3000:32;2997:52;;;3045:1;3042;3035:12;2997:52;3084:9;3071:23;3103:28;3125:5;3103:28;:::i;3166:374::-;3243:6;3251;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3373:23;;;-1:-1:-1;3439:38:88;3473:2;3458:18;;3439:38;:::i;:::-;3429:48;;3496:38;3530:2;3519:9;3515:18;3496:38;:::i;:::-;3486:48;;3166:374;;;;;:::o;3729:260::-;3797:6;3805;3858:2;3846:9;3837:7;3833:23;3829:32;3826:52;;;3874:1;3871;3864:12;3826:52;3897:29;3916:9;3897:29;:::i;:::-;3887:39;;3945:38;3979:2;3968:9;3964:18;3945:38;:::i;3994:339::-;4196:2;4178:21;;;4235:2;4215:18;;;4208:30;-1:-1:-1;;;4269:2:88;4254:18;;4247:45;4324:2;4309:18;;3994:339::o;4338:380::-;4417:1;4413:12;;;;4460;;;4481:61;;4535:4;4527:6;4523:17;4513:27;;4481:61;4588:2;4580:6;4577:14;4557:18;4554:38;4551:161;;4634:10;4629:3;4625:20;4622:1;4615:31;4669:4;4666:1;4659:15;4697:4;4694:1;4687:15;4723:127;4784:10;4779:3;4775:20;4772:1;4765:31;4815:4;4812:1;4805:15;4839:4;4836:1;4829:15;4855:148;4943:4;4922:12;;;4936;;;4918:31;;4961:13;;4958:39;;;4977:18;;:::i;5008:125::-;5073:9;;;5094:10;;;5091:36;;;5107:18;;:::i;6977:136::-;7012:3;-1:-1:-1;;;7033:22:88;;7030:48;;7058:18;;:::i;:::-;-1:-1:-1;7098:1:88;7094:13;;6977:136::o;7118:375::-;7206:1;7224:5;7238:249;7259:1;7249:8;7246:15;7238:249;;;7309:4;7304:3;7300:14;7294:4;7291:24;7288:50;;;7318:18;;:::i;:::-;7368:1;7358:8;7354:16;7351:49;;;7382:16;;;;7351:49;7465:1;7461:16;;;;;7421:15;;7238:249;;;7118:375;;;;;;:::o;7498:902::-;7547:5;7577:8;7567:80;;-1:-1:-1;7618:1:88;7632:5;;7567:80;7666:4;7656:76;;-1:-1:-1;7703:1:88;7717:5;;7656:76;7748:4;7766:1;7761:59;;;;7834:1;7829:174;;;;7741:262;;7761:59;7791:1;7782:10;;7805:5;;;7829:174;7866:3;7856:8;7853:17;7850:43;;;7873:18;;:::i;:::-;-1:-1:-1;;7929:1:88;7915:16;;7988:5;;7741:262;;8087:2;8077:8;8074:16;8068:3;8062:4;8059:13;8055:36;8049:2;8039:8;8036:16;8031:2;8025:4;8022:12;8018:35;8015:77;8012:203;;;-1:-1:-1;8124:19:88;;;8200:5;;8012:203;8247:42;-1:-1:-1;;8272:8:88;8266:4;8247:42;:::i;:::-;8325:6;8321:1;8317:6;8313:19;8304:7;8301:32;8298:58;;;8336:18;;:::i;:::-;8374:20;;7498:902;-1:-1:-1;;;7498:902:88:o;8405:140::-;8463:5;8492:47;8533:4;8523:8;8519:19;8513:4;8492:47;:::i;10933:184::-;11003:6;11056:2;11044:9;11035:7;11031:23;11027:32;11024:52;;;11072:1;11069;11062:12;11024:52;-1:-1:-1;11095:16:88;;10933:184;-1:-1:-1;10933:184:88:o;11122:128::-;11189:9;;;11210:11;;;11207:37;;;11224:18;;:::i;11534:228::-;-1:-1:-1;;;;;11603:38:88;;;11643;;;11599:83;;11694:39;;11691:65;;;11736:18;;:::i;11767:231::-;-1:-1:-1;;;;;11878:38:88;;;11838;;;11834:83;;11929:40;;11926:66;;;11972:18;;:::i;12003:170::-;12100:10;12093:18;;;12073;;;12069:43;;12124:20;;12121:46;;;12147:18;;:::i;12178:168::-;12251:9;;;12282;;12299:15;;;12293:22;;12279:37;12269:71;;12320:18;;:::i;12351:127::-;12412:10;12407:3;12403:20;12400:1;12393:31;12443:4;12440:1;12433:15;12467:4;12464:1;12457:15;12483:217;12523:1;12549;12539:132;;12593:10;12588:3;12584:20;12581:1;12574:31;12628:4;12625:1;12618:15;12656:4;12653:1;12646:15;12539:132;-1:-1:-1;12685:9:88;;12483:217::o;12705:127::-;12766:10;12761:3;12757:20;12754:1;12747:31;12797:4;12794:1;12787:15;12821:4;12818:1;12811:15;15796:245;15863:6;15916:2;15904:9;15895:7;15891:23;15887:32;15884:52;;;15932:1;15929;15922:12;15884:52;15964:9;15958:16;15983:28;16005:5;15983:28;:::i;16864:301::-;16993:3;17031:6;17025:13;17077:6;17070:4;17062:6;17058:17;17053:3;17047:37;17139:1;17103:16;;17128:13;;;-1:-1:-1;17103:16:88;16864:301;-1:-1:-1;16864:301:88:o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","broken()":"7fb1ad62","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(uint256,address)":"6e553f65","discreteEarning(int256)":"c7361ed2","increaseAllowance(address,uint256)":"39509351","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","setBroken(bool)":"86de9e4f","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"interestRate_\",\"type\":\"uint256\"}],\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"assets\",\"type\":\"int256\"}],\"name\":\"discreteEarning\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"broken_\",\"type\":\"bool\"}],\"name\":\"setBroken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. As opposed to {deposit}, minting is allowed even if the vault is in a state where the price of a share is zero. In this case, the shares will be minted without requiring any assets to be deposited.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4262-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/FixedRateVault.sol\":\"FixedRateVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x5a173dcd1c1f0074e4df6a9cdab3257e17f2e64f7b8f30ca9e17a8c5ea250e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7883819ce2b72264a756063ae578661f62b23f4104b08e9565ac075e619f6ce3\",\"dweb:/ipfs/QmcSZdFiEQkWRmZQhnCdfH9ychooV81pBjr7hfaiYiNZT2\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xa0ebd2a1608780392e5bc8805079b1a1961ebd73128ee23ab7149e7f6904fa53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7767ecfd8f8c30fb97fe2dc3b63e96f4593e458551c44e901a3acd4ed930d32c\",\"dweb:/ipfs/QmPJDWJBrzeCee7PqrixFwuCYhsEnFXcQqV6Z6FFdJSNpd\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/TimeScaled.sol\":{\"keccak256\":\"0x6a890782602e2ddba87b5447d9d3872dba68766d3005688c65b0e6fcc6594aa9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://40d26b2355a65da60cb26b6c6fef63473f477d3f1271bf6264e42b766f70afb9\",\"dweb:/ipfs/QmWkfwc97WdKXSYZMuaEhFBJWbMKG18jPEmm9GpEyvG2yn\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/mocks/FixedRateVault.sol\":{\"keccak256\":\"0xb4dfbde5e54318208d0dd0fec338a1f7bcea9a734fb5309e5de388a0188ab09d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://76bbbd6c5bdb8588965b3526dfb1d5293a8b94cf0fa0ffd36b1a3dc5f134e046\",\"dweb:/ipfs/QmWTFn466ZUkPU4fLBZFxNZz55gRV5FEkY5mXrqF1iUJ4Z\"]},\"contracts/mocks/IMintableERC20.sol\":{\"keccak256\":\"0x2b3ceb4d1707ae0ab27cdf289e1169fe0d081df736fa5732afd964762fd88b19\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://41056d1e26cc320ca70acdd4875108390879621f728ea0a732370a0e3c3a2e10\",\"dweb:/ipfs/QmbbGi4Lz8hKDd1jz8Tn1XCrAD79uvf93CsNZuMixnEoFK\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4765,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4771,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4773,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4775,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4777,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":24192,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_interestRate","offset":0,"slot":"5","type":"t_uint256"},{"astId":24195,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_totalAssets","offset":0,"slot":"6","type":"t_struct(ScaledAmount)22464_storage"},{"astId":24197,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"_broken","offset":0,"slot":"7","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(ScaledAmount)22464_storage":{"encoding":"inplace","label":"struct TimeScaled.ScaledAmount","members":[{"astId":22459,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"scale","offset":0,"slot":"0","type":"t_uint112"},{"astId":22461,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"amount","offset":14,"slot":"0","type":"t_uint112"},{"astId":22463,"contract":"contracts/mocks/FixedRateVault.sol:FixedRateVault","label":"lastUpdate","offset":28,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_uint112":{"encoding":"inplace","label":"uint112","numberOfBytes":"14"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}}}},"contracts/mocks/ForwardProxy.sol":{"ForwardProxy":{"abi":[{"inputs":[{"internalType":"address","name":"forwardTo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"forwardTo","type":"address"}],"name":"setForwardTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_24423":{"entryPoint":null,"id":24423,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":78,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:88","nodeType":"YulBlock","src":"0:306:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"95:209:88","nodeType":"YulBlock","src":"95:209:88","statements":[{"body":{"nativeSrc":"141:16:88","nodeType":"YulBlock","src":"141:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:88","nodeType":"YulLiteral","src":"150:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:88","nodeType":"YulLiteral","src":"153:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:88","nodeType":"YulIdentifier","src":"143:6:88"},"nativeSrc":"143:12:88","nodeType":"YulFunctionCall","src":"143:12:88"},"nativeSrc":"143:12:88","nodeType":"YulExpressionStatement","src":"143:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:88","nodeType":"YulIdentifier","src":"116:7:88"},{"name":"headStart","nativeSrc":"125:9:88","nodeType":"YulIdentifier","src":"125:9:88"}],"functionName":{"name":"sub","nativeSrc":"112:3:88","nodeType":"YulIdentifier","src":"112:3:88"},"nativeSrc":"112:23:88","nodeType":"YulFunctionCall","src":"112:23:88"},{"kind":"number","nativeSrc":"137:2:88","nodeType":"YulLiteral","src":"137:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:88","nodeType":"YulIdentifier","src":"108:3:88"},"nativeSrc":"108:32:88","nodeType":"YulFunctionCall","src":"108:32:88"},"nativeSrc":"105:52:88","nodeType":"YulIf","src":"105:52:88"},{"nativeSrc":"166:29:88","nodeType":"YulVariableDeclaration","src":"166:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:88","nodeType":"YulIdentifier","src":"185:9:88"}],"functionName":{"name":"mload","nativeSrc":"179:5:88","nodeType":"YulIdentifier","src":"179:5:88"},"nativeSrc":"179:16:88","nodeType":"YulFunctionCall","src":"179:16:88"},"variables":[{"name":"value","nativeSrc":"170:5:88","nodeType":"YulTypedName","src":"170:5:88","type":""}]},{"body":{"nativeSrc":"258:16:88","nodeType":"YulBlock","src":"258:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:88","nodeType":"YulLiteral","src":"267:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:88","nodeType":"YulLiteral","src":"270:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:88","nodeType":"YulIdentifier","src":"260:6:88"},"nativeSrc":"260:12:88","nodeType":"YulFunctionCall","src":"260:12:88"},"nativeSrc":"260:12:88","nodeType":"YulExpressionStatement","src":"260:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:88","nodeType":"YulIdentifier","src":"217:5:88"},{"arguments":[{"name":"value","nativeSrc":"228:5:88","nodeType":"YulIdentifier","src":"228:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:88","nodeType":"YulLiteral","src":"243:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:88","nodeType":"YulLiteral","src":"248:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:88","nodeType":"YulIdentifier","src":"239:3:88"},"nativeSrc":"239:11:88","nodeType":"YulFunctionCall","src":"239:11:88"},{"kind":"number","nativeSrc":"252:1:88","nodeType":"YulLiteral","src":"252:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:88","nodeType":"YulIdentifier","src":"235:3:88"},"nativeSrc":"235:19:88","nodeType":"YulFunctionCall","src":"235:19:88"}],"functionName":{"name":"and","nativeSrc":"224:3:88","nodeType":"YulIdentifier","src":"224:3:88"},"nativeSrc":"224:31:88","nodeType":"YulFunctionCall","src":"224:31:88"}],"functionName":{"name":"eq","nativeSrc":"214:2:88","nodeType":"YulIdentifier","src":"214:2:88"},"nativeSrc":"214:42:88","nodeType":"YulFunctionCall","src":"214:42:88"}],"functionName":{"name":"iszero","nativeSrc":"207:6:88","nodeType":"YulIdentifier","src":"207:6:88"},"nativeSrc":"207:50:88","nodeType":"YulFunctionCall","src":"207:50:88"},"nativeSrc":"204:70:88","nodeType":"YulIf","src":"204:70:88"},{"nativeSrc":"283:15:88","nodeType":"YulAssignment","src":"283:15:88","value":{"name":"value","nativeSrc":"293:5:88","nodeType":"YulIdentifier","src":"293:5:88"},"variableNames":[{"name":"value0","nativeSrc":"283:6:88","nodeType":"YulIdentifier","src":"283:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:88","nodeType":"YulTypedName","src":"61:9:88","type":""},{"name":"dataEnd","nativeSrc":"72:7:88","nodeType":"YulTypedName","src":"72:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:88","nodeType":"YulTypedName","src":"84:6:88","type":""}],"src":"14:290:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b50604051610183380380610183833981016040819052602b91604e565b5f80546001600160a01b0319166001600160a01b03929092169190911790556079565b5f60208284031215605d575f5ffd5b81516001600160a01b03811681146072575f5ffd5b9392505050565b60fe806100855f395ff3fe608060405260043610601e575f3560e01c8063d4b2700114603057602a565b36602a5760286067565b005b60286067565b348015603a575f5ffd5b5060286046366004609d565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b607d60795f546001600160a01b031690565b607f565b565b365f5f375f5f365f5f855af13d5f5f3e8080156099573d5ff35b3d5ffd5b5f6020828403121560ac575f5ffd5b81356001600160a01b038116811460c1575f5ffd5b939250505056fea264697066735822122064b768d9b69db23a66f3495aeec1f45e5a0e99ce2685b7266cd9ab34fbffb08d64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x183 CODESIZE SUB DUP1 PUSH2 0x183 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x4E JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x79 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x5D JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xFE DUP1 PUSH2 0x85 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD4B27001 EQ PUSH1 0x30 JUMPI PUSH1 0x2A JUMP JUMPDEST CALLDATASIZE PUSH1 0x2A JUMPI PUSH1 0x28 PUSH1 0x67 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x28 PUSH1 0x67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x3A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x28 PUSH1 0x46 CALLDATASIZE PUSH1 0x4 PUSH1 0x9D JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7D PUSH1 0x79 PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x7F JUMP JUMPDEST JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 PUSH0 DUP6 GAS CALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x99 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xAC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xB768D9B69D 0xB2 GASPRICE PUSH7 0xF3495AEEC1F45E GAS 0xE SWAP10 0xCE 0x26 DUP6 0xB7 0x26 PUSH13 0xD9AB34FBFFB08D64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"551:1606:80:-:0;;;618:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;655:10;:22;;-1:-1:-1;;;;;;655:22:80;-1:-1:-1;;;;;655:22:80;;;;;;;;;;551:1606;;14:290:88;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:88;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:88:o;:::-;551:1606:80;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_4725":{"entryPoint":null,"id":4725,"parameterSlots":0,"returnSlots":0},"@_4733":{"entryPoint":null,"id":4733,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_4738":{"entryPoint":null,"id":4738,"parameterSlots":0,"returnSlots":0},"@_delegate_24432":{"entryPoint":127,"id":24432,"parameterSlots":1,"returnSlots":0},"@_fallback_4717":{"entryPoint":103,"id":4717,"parameterSlots":0,"returnSlots":0},"@_implementation_24442":{"entryPoint":null,"id":24442,"parameterSlots":0,"returnSlots":1},"@setForwardTo_24452":{"entryPoint":null,"id":24452,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":157,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:302:88","nodeType":"YulBlock","src":"0:302:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"84:216:88","nodeType":"YulBlock","src":"84:216:88","statements":[{"body":{"nativeSrc":"130:16:88","nodeType":"YulBlock","src":"130:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:88","nodeType":"YulLiteral","src":"139:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:88","nodeType":"YulLiteral","src":"142:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:88","nodeType":"YulIdentifier","src":"132:6:88"},"nativeSrc":"132:12:88","nodeType":"YulFunctionCall","src":"132:12:88"},"nativeSrc":"132:12:88","nodeType":"YulExpressionStatement","src":"132:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:88","nodeType":"YulIdentifier","src":"105:7:88"},{"name":"headStart","nativeSrc":"114:9:88","nodeType":"YulIdentifier","src":"114:9:88"}],"functionName":{"name":"sub","nativeSrc":"101:3:88","nodeType":"YulIdentifier","src":"101:3:88"},"nativeSrc":"101:23:88","nodeType":"YulFunctionCall","src":"101:23:88"},{"kind":"number","nativeSrc":"126:2:88","nodeType":"YulLiteral","src":"126:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:88","nodeType":"YulIdentifier","src":"97:3:88"},"nativeSrc":"97:32:88","nodeType":"YulFunctionCall","src":"97:32:88"},"nativeSrc":"94:52:88","nodeType":"YulIf","src":"94:52:88"},{"nativeSrc":"155:36:88","nodeType":"YulVariableDeclaration","src":"155:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:88","nodeType":"YulIdentifier","src":"181:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:88","nodeType":"YulIdentifier","src":"168:12:88"},"nativeSrc":"168:23:88","nodeType":"YulFunctionCall","src":"168:23:88"},"variables":[{"name":"value","nativeSrc":"159:5:88","nodeType":"YulTypedName","src":"159:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:88","nodeType":"YulIdentifier","src":"213:5:88"},{"arguments":[{"name":"value","nativeSrc":"224:5:88","nodeType":"YulIdentifier","src":"224:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"239:3:88","nodeType":"YulLiteral","src":"239:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"244:1:88","nodeType":"YulLiteral","src":"244:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"235:3:88","nodeType":"YulIdentifier","src":"235:3:88"},"nativeSrc":"235:11:88","nodeType":"YulFunctionCall","src":"235:11:88"},{"kind":"number","nativeSrc":"248:1:88","nodeType":"YulLiteral","src":"248:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"231:3:88","nodeType":"YulIdentifier","src":"231:3:88"},"nativeSrc":"231:19:88","nodeType":"YulFunctionCall","src":"231:19:88"}],"functionName":{"name":"and","nativeSrc":"220:3:88","nodeType":"YulIdentifier","src":"220:3:88"},"nativeSrc":"220:31:88","nodeType":"YulFunctionCall","src":"220:31:88"}],"functionName":{"name":"eq","nativeSrc":"210:2:88","nodeType":"YulIdentifier","src":"210:2:88"},"nativeSrc":"210:42:88","nodeType":"YulFunctionCall","src":"210:42:88"}],"functionName":{"name":"iszero","nativeSrc":"203:6:88","nodeType":"YulIdentifier","src":"203:6:88"},"nativeSrc":"203:50:88","nodeType":"YulFunctionCall","src":"203:50:88"},"nativeSrc":"200:70:88","nodeType":"YulIf","src":"200:70:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:88","nodeType":"YulTypedName","src":"50:9:88","type":""},{"name":"dataEnd","nativeSrc":"61:7:88","nodeType":"YulTypedName","src":"61:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:88","nodeType":"YulTypedName","src":"73:6:88","type":""}],"src":"14:286:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610601e575f3560e01c8063d4b2700114603057602a565b36602a5760286067565b005b60286067565b348015603a575f5ffd5b5060286046366004609d565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b607d60795f546001600160a01b031690565b607f565b565b365f5f375f5f365f5f855af13d5f5f3e8080156099573d5ff35b3d5ffd5b5f6020828403121560ac575f5ffd5b81356001600160a01b038116811460c1575f5ffd5b939250505056fea264697066735822122064b768d9b69db23a66f3495aeec1f45e5a0e99ce2685b7266cd9ab34fbffb08d64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD4B27001 EQ PUSH1 0x30 JUMPI PUSH1 0x2A JUMP JUMPDEST CALLDATASIZE PUSH1 0x2A JUMPI PUSH1 0x28 PUSH1 0x67 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x28 PUSH1 0x67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x3A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x28 PUSH1 0x46 CALLDATASIZE PUSH1 0x4 PUSH1 0x9D JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x7D PUSH1 0x79 PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x7F JUMP JUMPDEST JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 PUSH0 DUP6 GAS CALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x99 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xAC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0xB768D9B69D 0xB2 GASPRICE PUSH7 0xF3495AEEC1F45E GAS 0xE SWAP10 0xCE 0x26 DUP6 0xB7 0x26 PUSH13 0xD9AB34FBFFB08D64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"551:1606:80:-:0;;;;;;;;;;;;;;;;;;;;;;;2898:11:28;:9;:11::i;:::-;551:1606:80;;2675:11:28;:9;:11::i;2072:83:80:-;;;;;;;;;;-1:-1:-1;2072:83:80;;;;;:::i;:::-;2128:10;:22;;-1:-1:-1;;;;;;2128:22:80;-1:-1:-1;;;;;2128:22:80;;;;;;;;;;2072:83;2322:110:28;2397:28;2407:17;2031:7:80;2053:10;-1:-1:-1;;;;;2053:10:80;;1964:104;2407:17:28;2397:9;:28::i;:::-;2322:110::o;872:919:80:-;1243:14;1240:1;1237;1224:34;1518:1;1515;1499:14;1496:1;1493;1477:14;1470:5;1465:55;1582:16;1579:1;1576;1561:38;1614:6;1669:52;;;;1756:16;1753:1;1746:27;1669:52;1696:16;1693:1;1686:27;14:286:88;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:88;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:88:o"},"methodIdentifiers":{"setForwardTo(address)":"d4b27001"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwardTo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwardTo\",\"type\":\"address\"}],\"name\":\"setForwardTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract provides a fallback function that forwards all calls to another contract using the EVM instruction `call`. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ForwardProxy.sol\":\"ForwardProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"contracts/mocks/ForwardProxy.sol\":{\"keccak256\":\"0x8c9e4d0436c3a0fa44d33f2502784a845b5a09f8bf088bd12050e1f2c7c87528\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://775c22411aac4e20cc3c9d8f1958b1d3959b6da0b8c99092d56e7a510f3c6353\",\"dweb:/ipfs/Qmb9S2WL4cz8gZo8wy5x4ZRUgDv4QJLERC9zC2FwzYMZ1F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":24413,"contract":"contracts/mocks/ForwardProxy.sol:ForwardProxy","label":"_forwardTo","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"contracts/mocks/IMintableERC20.sol":{"IMintableERC20":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(address,uint256)":"9dc29fac","mint(address,uint256)":"40c10f19"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"details\":\"Interface for mintable / burnable ERC20 - for testing\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IMintableERC20 interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/IMintableERC20.sol\":\"IMintableERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/mocks/IMintableERC20.sol\":{\"keccak256\":\"0x2b3ceb4d1707ae0ab27cdf289e1169fe0d081df736fa5732afd964762fd88b19\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://41056d1e26cc320ca70acdd4875108390879621f728ea0a732370a0e3c3a2e10\",\"dweb:/ipfs/QmbbGi4Lz8hKDd1jz8Tn1XCrAD79uvf93CsNZuMixnEoFK\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/mocks/InterfaceIdCalculator.sol":{"InterfaceIdCalculator":{"abi":[{"inputs":[],"name":"IACCESSCONTROL_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IACCESSMANAGER_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IASSETMANAGER_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IERC165_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IERC20METADATA_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IERC20_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IERC721_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IETOKEN_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ILPWHITELIST_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IPOLICYHOLDER_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IPOLICYPOOLCOMPONENT_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IPOLICYPOOL_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IPREMIUMSACCOUNT_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IRISKMODULE_INTERFACEID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b506102008061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638b98dad011610088578063a23a166111610063578063a23a166114610192578063a88ecaa2146101a0578063c1bd03a6146101ae578063fef87f0b146101bc575f5ffd5b80638b98dad014610168578063933c234b1461017657806396047c9914610184575f5ffd5b8063731e0f7f116100c3578063731e0f7f146101305780637874bf981461013e578063800915a51461014c5780638786bcbd1461015a575f5ffd5b806311f34418146100e95780632bac8ca314610114578063362466de14610122575b5f5ffd5b6100f7630e72532960e11b81565b6040516001600160e01b0319909116815260200160405180910390f35b6100f763272b8c4760e01b81565b6100f7634d15eb0360e01b81565b6100f763a219a02560e01b81565b6100f7639077062160e01b81565b6100f763f8722d8960e01b81565b6100f7633ece0a8960e01b81565b6100f763da40804f60e01b81565b6100f7637965db0b60e01b81565b6100f76380ac58cd60e01b81565b6100f76301ffc9a760e01b81565b6100f7631e670a9760e21b81565b6100f76336372b0760e01b81565b6100f763019c676f60e31b8156fea26469706673582212208828b3f15a4b5cce14f7e813e222153610fd15bef692da401ef437e423f6480764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x200 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B98DAD0 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xA23A1661 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA23A1661 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xA88ECAA2 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC1BD03A6 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0xFEF87F0B EQ PUSH2 0x1BC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8B98DAD0 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x933C234B EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x96047C99 EQ PUSH2 0x184 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x731E0F7F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x731E0F7F EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x7874BF98 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0x800915A5 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x8786BCBD EQ PUSH2 0x15A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x11F34418 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x2BAC8CA3 EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x362466DE EQ PUSH2 0x122 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xF7 PUSH4 0xE725329 PUSH1 0xE1 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH4 0x272B8C47 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x4D15EB03 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xA219A025 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x90770621 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xF8722D89 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xDA40804F PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x1E670A97 PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x36372B07 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x19C676F PUSH1 0xE3 SHL DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP9 0x28 0xB3 CALL GAS 0x4B TLOAD 0xCE EQ 0xF7 0xE8 SGT 0xE2 0x22 ISZERO CALLDATASIZE LT REVERT ISZERO 0xBE 0xF6 SWAP3 0xDA BLOCKHASH 0x1E DELEGATECALL CALLDATACOPY 0xE4 0x23 0xF6 BASEFEE SMOD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1038:1204:82:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@IACCESSCONTROL_INTERFACEID_24531":{"entryPoint":null,"id":24531,"parameterSlots":0,"returnSlots":0},"@IACCESSMANAGER_INTERFACEID_24573":{"entryPoint":null,"id":24573,"parameterSlots":0,"returnSlots":0},"@IASSETMANAGER_INTERFACEID_24579":{"entryPoint":null,"id":24579,"parameterSlots":0,"returnSlots":0},"@IERC165_INTERFACEID_24507":{"entryPoint":null,"id":24507,"parameterSlots":0,"returnSlots":0},"@IERC20METADATA_INTERFACEID_24519":{"entryPoint":null,"id":24519,"parameterSlots":0,"returnSlots":0},"@IERC20_INTERFACEID_24513":{"entryPoint":null,"id":24513,"parameterSlots":0,"returnSlots":0},"@IERC721_INTERFACEID_24525":{"entryPoint":null,"id":24525,"parameterSlots":0,"returnSlots":0},"@IETOKEN_INTERFACEID_24549":{"entryPoint":null,"id":24549,"parameterSlots":0,"returnSlots":0},"@ILPWHITELIST_INTERFACEID_24567":{"entryPoint":null,"id":24567,"parameterSlots":0,"returnSlots":0},"@IPOLICYHOLDER_INTERFACEID_24585":{"entryPoint":null,"id":24585,"parameterSlots":0,"returnSlots":0},"@IPOLICYPOOLCOMPONENT_INTERFACEID_24543":{"entryPoint":null,"id":24543,"parameterSlots":0,"returnSlots":0},"@IPOLICYPOOL_INTERFACEID_24537":{"entryPoint":null,"id":24537,"parameterSlots":0,"returnSlots":0},"@IPREMIUMSACCOUNT_INTERFACEID_24561":{"entryPoint":null,"id":24561,"parameterSlots":0,"returnSlots":0},"@IRISKMODULE_INTERFACEID_24555":{"entryPoint":null,"id":24555,"parameterSlots":0,"returnSlots":0},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:218:88","nodeType":"YulBlock","src":"0:218:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"113:103:88","nodeType":"YulBlock","src":"113:103:88","statements":[{"nativeSrc":"123:26:88","nodeType":"YulAssignment","src":"123:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"135:9:88","nodeType":"YulIdentifier","src":"135:9:88"},{"kind":"number","nativeSrc":"146:2:88","nodeType":"YulLiteral","src":"146:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"131:3:88","nodeType":"YulIdentifier","src":"131:3:88"},"nativeSrc":"131:18:88","nodeType":"YulFunctionCall","src":"131:18:88"},"variableNames":[{"name":"tail","nativeSrc":"123:4:88","nodeType":"YulIdentifier","src":"123:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"165:9:88","nodeType":"YulIdentifier","src":"165:9:88"},{"arguments":[{"name":"value0","nativeSrc":"180:6:88","nodeType":"YulIdentifier","src":"180:6:88"},{"arguments":[{"kind":"number","nativeSrc":"192:3:88","nodeType":"YulLiteral","src":"192:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"197:10:88","nodeType":"YulLiteral","src":"197:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"188:3:88","nodeType":"YulIdentifier","src":"188:3:88"},"nativeSrc":"188:20:88","nodeType":"YulFunctionCall","src":"188:20:88"}],"functionName":{"name":"and","nativeSrc":"176:3:88","nodeType":"YulIdentifier","src":"176:3:88"},"nativeSrc":"176:33:88","nodeType":"YulFunctionCall","src":"176:33:88"}],"functionName":{"name":"mstore","nativeSrc":"158:6:88","nodeType":"YulIdentifier","src":"158:6:88"},"nativeSrc":"158:52:88","nodeType":"YulFunctionCall","src":"158:52:88"},"nativeSrc":"158:52:88","nodeType":"YulExpressionStatement","src":"158:52:88"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"14:202:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:88","nodeType":"YulTypedName","src":"82:9:88","type":""},{"name":"value0","nativeSrc":"93:6:88","nodeType":"YulTypedName","src":"93:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"104:4:88","nodeType":"YulTypedName","src":"104:4:88","type":""}],"src":"14:202:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638b98dad011610088578063a23a166111610063578063a23a166114610192578063a88ecaa2146101a0578063c1bd03a6146101ae578063fef87f0b146101bc575f5ffd5b80638b98dad014610168578063933c234b1461017657806396047c9914610184575f5ffd5b8063731e0f7f116100c3578063731e0f7f146101305780637874bf981461013e578063800915a51461014c5780638786bcbd1461015a575f5ffd5b806311f34418146100e95780632bac8ca314610114578063362466de14610122575b5f5ffd5b6100f7630e72532960e11b81565b6040516001600160e01b0319909116815260200160405180910390f35b6100f763272b8c4760e01b81565b6100f7634d15eb0360e01b81565b6100f763a219a02560e01b81565b6100f7639077062160e01b81565b6100f763f8722d8960e01b81565b6100f7633ece0a8960e01b81565b6100f763da40804f60e01b81565b6100f7637965db0b60e01b81565b6100f76380ac58cd60e01b81565b6100f76301ffc9a760e01b81565b6100f7631e670a9760e21b81565b6100f76336372b0760e01b81565b6100f763019c676f60e31b8156fea26469706673582212208828b3f15a4b5cce14f7e813e222153610fd15bef692da401ef437e423f6480764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B98DAD0 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xA23A1661 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA23A1661 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0xA88ECAA2 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xC1BD03A6 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0xFEF87F0B EQ PUSH2 0x1BC JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x8B98DAD0 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x933C234B EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x96047C99 EQ PUSH2 0x184 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x731E0F7F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x731E0F7F EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x7874BF98 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0x800915A5 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x8786BCBD EQ PUSH2 0x15A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x11F34418 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x2BAC8CA3 EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x362466DE EQ PUSH2 0x122 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xF7 PUSH4 0xE725329 PUSH1 0xE1 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH4 0x272B8C47 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x4D15EB03 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xA219A025 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x90770621 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xF8722D89 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0xDA40804F PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x1E670A97 PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x36372B07 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH4 0x19C676F PUSH1 0xE3 SHL DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP9 0x28 0xB3 CALL GAS 0x4B TLOAD 0xCE EQ 0xF7 0xE8 SGT 0xE2 0x22 ISZERO CALLDATASIZE LT REVERT ISZERO 0xBE 0xF6 SWAP3 0xDA BLOCKHASH 0x1E DELEGATECALL CALLDATACOPY 0xE4 0x23 0xF6 BASEFEE SMOD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1038:1204:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1807:88;;-1:-1:-1;;;1807:88:82;;;;;-1:-1:-1;;;;;;176:33:88;;;158:52;;146:2;131:18;1807:88:82;;;;;;;1983:84;;-1:-1:-1;;;1983:84:82;;1551:96;;-1:-1:-1;;;1551:96:82;;1219:84;;-1:-1:-1;;;1219:84:82;;1651:70;;-1:-1:-1;;;1651:70:82;;1899:80;;-1:-1:-1;;;1899:80:82;;2157:82;;-1:-1:-1;;;2157:82:82;;1725:78;;-1:-1:-1;;;1725:78:82;;1381:84;;-1:-1:-1;;;1381:84:82;;1307:70;;-1:-1:-1;;;1307:70:82;;1073;;-1:-1:-1;;;1073:70:82;;2071:82;;-1:-1:-1;;;2071:82:82;;1147:68;;-1:-1:-1;;;1147:68:82;;1469:78;;-1:-1:-1;;;1469:78:82;"},"methodIdentifiers":{"IACCESSCONTROL_INTERFACEID()":"933c234b","IACCESSMANAGER_INTERFACEID()":"2bac8ca3","IASSETMANAGER_INTERFACEID()":"a88ecaa2","IERC165_INTERFACEID()":"a23a1661","IERC20METADATA_INTERFACEID()":"731e0f7f","IERC20_INTERFACEID()":"c1bd03a6","IERC721_INTERFACEID()":"96047c99","IETOKEN_INTERFACEID()":"7874bf98","ILPWHITELIST_INTERFACEID()":"800915a5","IPOLICYHOLDER_INTERFACEID()":"8786bcbd","IPOLICYPOOLCOMPONENT_INTERFACEID()":"362466de","IPOLICYPOOL_INTERFACEID()":"fef87f0b","IPREMIUMSACCOUNT_INTERFACEID()":"11f34418","IRISKMODULE_INTERFACEID()":"8b98dad0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IACCESSCONTROL_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IACCESSMANAGER_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IASSETMANAGER_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC165_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC20METADATA_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC20_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IERC721_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IETOKEN_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ILPWHITELIST_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IPOLICYHOLDER_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IPOLICYPOOLCOMPONENT_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IPOLICYPOOL_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IPREMIUMSACCOUNT_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IRISKMODULE_INTERFACEID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/InterfaceIdCalculator.sol\":\"InterfaceIdCalculator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IAssetManager.sol\":{\"keccak256\":\"0x0bc0ba0a910adebf337a8aea1f1bef15e051617824ad3d201fcfa879c9829ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5a8e4f3d2d4c5eca29b6ebe5ef670be48de8d04b7189168437ffc99b4ee7b645\",\"dweb:/ipfs/QmdL2PvmkrLZMLoQjtfF5k1RRXCDDTB7SsmHKpbcb4Ngoo\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/ILPWhitelist.sol\":{\"keccak256\":\"0x6bac657b6cae813509c3fe6fd865661fb2a48632472aba15478b413aabbdc15a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ae57605bfa4d51db3654c5813bcb754fd42ab001942dc36a6b6026821850b924\",\"dweb:/ipfs/QmdLPv8pjN1Ec4gA3YssLz4kKE4LTEiUF4c2t1MNjGRxzM\"]},\"contracts/interfaces/IPolicyHolder.sol\":{\"keccak256\":\"0xddf0d346e5ee68e7ae051048112384409797d7e094a47ab404c6fb6bdf8827c1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98a041a857a99cda900188969283dbf941ec034b641c7abea399c3e4ee94cb64\",\"dweb:/ipfs/QmdjuJipt2jAapKAk2APC1BTcsgajnbkQTthd4LiwA8F7r\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/mocks/InterfaceIdCalculator.sol\":{\"keccak256\":\"0x787e2b7518fadf9bf25735fde5013ffdd5721ef893f01e45c882e3fdde6cb190\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8bdc5ec9893f2fcfd0702c3ab1a7644b31ebbbbaf350b8abcb632b500f3dbd54\",\"dweb:/ipfs/QmQtUZ49DWRddDBBngsXw3CRf9yEJ9hmKNWRdnSteCJnx1\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/mocks/PolicyHolderMock.sol":{"PolicyHolderMock":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum PolicyHolderMock.NotificationKind","name":"kind","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"}],"name":"NotificationReceived","type":"event"},{"inputs":[],"name":"badlyImplemented","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"badlyImplementedReplace","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emptyRevert","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fail","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"failReplace","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noERC165","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noV2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notImplemented","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId_","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId_","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onPayoutReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"policyId_","type":"uint256"}],"name":"onPolicyExpired","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"oldPolicyId","type":"uint256"},{"internalType":"uint256","name":"newPolicyId","type":"uint256"}],"name":"onPolicyReplaced","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"badlyImplemented_","type":"bool"}],"name":"setBadlyImplemented","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"badlyImplementedReplace_","type":"bool"}],"name":"setBadlyImplementedReplace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"emptyRevert_","type":"bool"}],"name":"setEmptyRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"fail_","type":"bool"}],"name":"setFail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"failReplace_","type":"bool"}],"name":"setFailReplace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"noERC165_","type":"bool"}],"name":"setNoERC165","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"noV2_","type":"bool"}],"name":"setNoV2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"notImplemented_","type":"bool"}],"name":"setNotImplemented","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"spendGasCount_","type":"uint256"}],"name":"setSpendGasCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spendGasCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_24674":{"entryPoint":null,"id":24674,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b506002805466ff00ffffff00ff191690555f196001555f600355610b6a806100355f395ff3fe608060405234801561000f575f5ffd5b506004361061016d575f3560e01c806375d475f9116100d9578063bcce539911610093578063d99ba4081161006e578063d99ba408146103f6578063e8e617b71461040c578063ee89ef3a1461041f578063f57c302e14610427575f5ffd5b8063bcce5399146103ba578063c3af904e146103ce578063d6281d3e146103e3575f5ffd5b806375d475f91461030b5780637806ce811461033b5780639568ca0f1461034e5780639d76940214610360578063a9cc471814610381578063aeec8f9d1461038e575f5ffd5b806331ca29441161012a57806331ca294414610260578063352870141461028a5780635177cd131461029e5780635ee0c7dd146102ce57806363bd1d4a146102e15780636db65619146102f8575f5ffd5b806301ffc9a7146101715780630dc13e9914610199578063150b7a02146101ad578063286ee351146101d95780632bb2adb3146102035780632fb6436214610231575b5f5ffd5b61018461017f36600461092a565b610430565b60405190151581526020015b60405180910390f35b60025461018490600160381b900460ff1681565b6101c06101bb36600461096c565b6104c6565b6040516001600160e01b03199091168152602001610190565b6102016101e7366004610a01565b600280549115156101000261ff0019909216919091179055565b005b610201610211366004610a01565b600280549115156401000000000264ff0000000019909216919091179055565b61020161023f366004610a01565b60028054911515600160301b0266ff00000000000019909216919091179055565b61020161026e366004610a01565b60028054911515620100000262ff000019909216919091179055565b600254610184906301000000900460ff1681565b6102016102ac366004610a01565b60028054911515650100000000000265ff000000000019909216919091179055565b6101c06102dc366004610a20565b6105b9565b6102ea60015481565b604051908152602001610190565b6002546101849062010000900460ff1681565b610201610319366004610a01565b60028054911515600160381b0267ff0000000000000019909216919091179055565b610201610349366004610a5f565b600355565b60025461018490610100900460ff1681565b61020161036e366004610a01565b6002805460ff1916911515919091179055565b6002546101849060ff1681565b61020161039c366004610a01565b6002805491151563010000000263ff00000019909216919091179055565b60025461018490600160301b900460ff1681565b60025461018490640100000000900460ff1681565b6101c06103f1366004610a20565b61071e565b6002546101849065010000000000900460ff1681565b6101c061041a366004610a76565b61080a565b6102ea5f5481565b6102ea60035481565b6002545f90600160301b900460ff1615610448575f5ffd5b6002546301000000900460ff161561046157505f919050565b6001600160e01b03198216633ece0a8960e01b14806104a55750600254600160381b900460ff161580156104a557506001600160e01b03198216635ee0c7dd60e01b145b806104c057506001600160e01b031982166301ffc9a760e01b145b92915050565b6002545f9060ff161561054b5760025462010000900460ff16156104e8575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e45524337323152656365697665643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b60648201526084015b60405180910390fd5b5f8481555f196001556040515f516020610b155f395f51905f52916105759187908a908a90610ab0565b60405180910390a1600254640100000000900460ff161561059e5750630badf00d60e01b6105b0565b6105a66108f6565b50630a85bd0160e11b5b95945050505050565b6002545f90600160381b900460ff161561062a5760405162461bcd60e51b815260206004820152602c60248201527f53686f756c646e27742063616c6c2074686973206d6574686f6420696620563260448201526b081b9bdd08195b98589b195960a21b6064820152608401610542565b600254610100900460ff16156106ad5760025462010000900460ff161561064f575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e506f6c6963795265706c616365643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b6064820152608401610542565b5f83905560018290556040515f516020610b155f395f51905f52906106da90600390869089908990610ab0565b60405180910390a160025465010000000000900460ff16156107045750630badf00d60e01b610716565b61070c6108f6565b50635ee0c7dd60e01b5b949350505050565b6002545f9060ff161561079e5760025462010000900460ff1615610740575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e5061796f757452656365697665643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b6064820152608401610542565b5f83905560018281556040515f516020610b155f395f51905f52916107c891869089908990610ab0565b60405180910390a1600254640100000000900460ff16156107f15750630badf00d60e01b610716565b6107f96108f6565b50636b140e9f60e11b949350505050565b6002545f9060ff16156108895760025462010000900460ff161561082c575f5ffd5b60405162461bcd60e51b815260206004820152602c60248201527f6f6e506f6c696379457870697265643a205468657920746f6c64206d6520492060448201526b1a185d99481d1bc819985a5b60a21b6064820152608401610542565b5f8281556001556040515f516020610b155f395f51905f52906108b490600290859088908890610ab0565b60405180910390a1600254640100000000900460ff16156108dd5750630badf00d60e01b6108ef565b6108e56108f6565b5063e8e617b760e01b5b9392505050565b5f5b6003548110156109275761090d816001610af5565b61091e61091b836064610af5565b90565b556001016108f8565b50565b5f6020828403121561093a575f5ffd5b81356001600160e01b0319811681146108ef575f5ffd5b80356001600160a01b0381168114610967575f5ffd5b919050565b5f5f5f5f5f60808688031215610980575f5ffd5b61098986610951565b945061099760208701610951565b935060408601359250606086013567ffffffffffffffff8111156109b9575f5ffd5b8601601f810188136109c9575f5ffd5b803567ffffffffffffffff8111156109df575f5ffd5b8860208284010111156109f0575f5ffd5b959894975092955050506020019190565b5f60208284031215610a11575f5ffd5b813580151581146108ef575f5ffd5b5f5f5f5f60808587031215610a33575f5ffd5b610a3c85610951565b9350610a4a60208601610951565b93969395505050506040820135916060013590565b5f60208284031215610a6f575f5ffd5b5035919050565b5f5f5f60608486031215610a88575f5ffd5b610a9184610951565b9250610a9f60208501610951565b929592945050506040919091013590565b6080810160048610610ad057634e487b7160e01b5f52602160045260245ffd5b94815260208101939093526001600160a01b0391821660408401521660609091015290565b808201808211156104c057634e487b7160e01b5f52601160045260245ffdfecb6442f1752a34d49fd946725ee915eae9914b3fe3f3193b98232c772393e7c5a264697066735822122035daeb15837aafe20f221941736d87414daac6b3bbf21bb77fec1870e9183c9b64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH7 0xFF00FFFFFF00FF NOT AND SWAP1 SSTORE PUSH0 NOT PUSH1 0x1 SSTORE PUSH0 PUSH1 0x3 SSTORE PUSH2 0xB6A DUP1 PUSH2 0x35 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x75D475F9 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0xBCCE5399 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xD99BA408 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xD99BA408 EQ PUSH2 0x3F6 JUMPI DUP1 PUSH4 0xE8E617B7 EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xEE89EF3A EQ PUSH2 0x41F JUMPI DUP1 PUSH4 0xF57C302E EQ PUSH2 0x427 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xBCCE5399 EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xC3AF904E EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0xD6281D3E EQ PUSH2 0x3E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x75D475F9 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x7806CE81 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x9568CA0F EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x9D769402 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xA9CC4718 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xAEEC8F9D EQ PUSH2 0x38E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x31CA2944 GT PUSH2 0x12A JUMPI DUP1 PUSH4 0x31CA2944 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x35287014 EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0x5177CD13 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5EE0C7DD EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x63BD1D4A EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x6DB65619 EQ PUSH2 0x2F8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDC13E99 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x286EE351 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x2BB2ADB3 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2FB64362 EQ PUSH2 0x231 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x92A JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x96C JUMP JUMPDEST PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH5 0x100000000 MUL PUSH5 0xFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH7 0xFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH6 0x10000000000 MUL PUSH6 0xFF0000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0xA20 JUMP JUMPDEST PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x2EA PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x38 SHL MUL PUSH8 0xFF00000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x349 CALLDATASIZE PUSH1 0x4 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH4 0x1000000 MUL PUSH4 0xFF000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x3F1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA20 JUMP JUMPDEST PUSH2 0x71E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0xA76 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST PUSH2 0x2EA PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2EA PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x448 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x461 JUMPI POP PUSH0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4A5 JUMPI POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x4A5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x4C0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x54B JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E45524337323152656365697665643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP5 DUP2 SSTORE PUSH0 NOT PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 PUSH2 0x575 SWAP2 DUP8 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x59E JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x5B0 JUMP JUMPDEST PUSH2 0x5A6 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x62A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53686F756C646E27742063616C6C2074686973206D6574686F64206966205632 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x81B9BDD08195B98589B1959 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6AD JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x64F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E506F6C6963795265706C616365643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP4 SWAP1 SSTORE PUSH1 0x1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH2 0x6DA SWAP1 PUSH1 0x3 SWAP1 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH6 0x10000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x704 JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x716 JUMP JUMPDEST PUSH2 0x70C PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x79E JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x740 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E5061796F757452656365697665643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP4 SWAP1 SSTORE PUSH1 0x1 DUP3 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 PUSH2 0x7C8 SWAP2 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x7F1 JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x716 JUMP JUMPDEST PUSH2 0x7F9 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0x6B140E9F PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x889 JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x82C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E506F6C696379457870697265643A205468657920746F6C64206D65204920 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x1A185D99481D1BC819985A5B PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP3 DUP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH2 0x8B4 SWAP1 PUSH1 0x2 SWAP1 DUP6 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8DD JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x8EF JUMP JUMPDEST PUSH2 0x8E5 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0xE8E617B7 PUSH1 0xE0 SHL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0x927 JUMPI PUSH2 0x90D DUP2 PUSH1 0x1 PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x91E PUSH2 0x91B DUP4 PUSH1 0x64 PUSH2 0xAF5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SSTORE PUSH1 0x1 ADD PUSH2 0x8F8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x93A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x8EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x980 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x989 DUP7 PUSH2 0x951 JUMP JUMPDEST SWAP5 POP PUSH2 0x997 PUSH1 0x20 DUP8 ADD PUSH2 0x951 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x9C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x9F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP PUSH1 0x20 ADD SWAP2 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA11 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xA33 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xA3C DUP6 PUSH2 0x951 JUMP JUMPDEST SWAP4 POP PUSH2 0xA4A PUSH1 0x20 DUP7 ADD PUSH2 0x951 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xA91 DUP5 PUSH2 0x951 JUMP JUMPDEST SWAP3 POP PUSH2 0xA9F PUSH1 0x20 DUP6 ADD PUSH2 0x951 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH1 0x4 DUP7 LT PUSH2 0xAD0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x40 DUP5 ADD MSTORE AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID 0xCB PUSH5 0x42F1752A34 0xD4 SWAP16 0xD9 CHAINID PUSH19 0x5EE915EAE9914B3FE3F3193B98232C772393E7 0xC5 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0xDA 0xEB ISZERO DUP4 PUSH27 0xAFE20F221941736D87414DAAC6B3BBF21BB77FEC1870E9183C9B64 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"441:4755:83:-:0;;;1007:197;;;;;;;;;-1:-1:-1;1027:4:83;:12;;-1:-1:-1;;1128:16:83;;;-1:-1:-1;;1027:12:83;1150:26;1034:5;1045:14;1182:17;441:4755;;;;;;"},"deployedBytecode":{"functionDebugData":{"@badlyImplementedReplace_24616":{"entryPoint":null,"id":24616,"parameterSlots":0,"returnSlots":0},"@badlyImplemented_24614":{"entryPoint":null,"id":24614,"parameterSlots":0,"returnSlots":0},"@emptyRevert_24610":{"entryPoint":null,"id":24610,"parameterSlots":0,"returnSlots":0},"@failReplace_24608":{"entryPoint":null,"id":24608,"parameterSlots":0,"returnSlots":0},"@fail_24606":{"entryPoint":null,"id":24606,"parameterSlots":0,"returnSlots":0},"@getUint256Slot_7037":{"entryPoint":null,"id":7037,"parameterSlots":1,"returnSlots":1},"@noERC165_24618":{"entryPoint":null,"id":24618,"parameterSlots":0,"returnSlots":0},"@noV2_24620":{"entryPoint":null,"id":24620,"parameterSlots":0,"returnSlots":0},"@notImplemented_24612":{"entryPoint":null,"id":24612,"parameterSlots":0,"returnSlots":0},"@onERC721Received_24895":{"entryPoint":1222,"id":24895,"parameterSlots":5,"returnSlots":1},"@onPayoutReceived_25002":{"entryPoint":1822,"id":25002,"parameterSlots":4,"returnSlots":1},"@onPolicyExpired_24947":{"entryPoint":2058,"id":24947,"parameterSlots":3,"returnSlots":1},"@onPolicyReplaced_25063":{"entryPoint":1465,"id":25063,"parameterSlots":4,"returnSlots":1},"@payout_24604":{"entryPoint":null,"id":24604,"parameterSlots":0,"returnSlots":0},"@policyId_24602":{"entryPoint":null,"id":24602,"parameterSlots":0,"returnSlots":0},"@setBadlyImplementedReplace_24734":{"entryPoint":null,"id":24734,"parameterSlots":1,"returnSlots":0},"@setBadlyImplemented_24724":{"entryPoint":null,"id":24724,"parameterSlots":1,"returnSlots":0},"@setEmptyRevert_24764":{"entryPoint":null,"id":24764,"parameterSlots":1,"returnSlots":0},"@setFailReplace_24694":{"entryPoint":null,"id":24694,"parameterSlots":1,"returnSlots":0},"@setFail_24684":{"entryPoint":null,"id":24684,"parameterSlots":1,"returnSlots":0},"@setNoERC165_24754":{"entryPoint":null,"id":24754,"parameterSlots":1,"returnSlots":0},"@setNoV2_24744":{"entryPoint":null,"id":24744,"parameterSlots":1,"returnSlots":0},"@setNotImplemented_24714":{"entryPoint":null,"id":24714,"parameterSlots":1,"returnSlots":0},"@setSpendGasCount_24704":{"entryPoint":null,"id":24704,"parameterSlots":1,"returnSlots":0},"@spendGasCount_24622":{"entryPoint":null,"id":24622,"parameterSlots":0,"returnSlots":0},"@spendGas_24796":{"entryPoint":2294,"id":24796,"parameterSlots":0,"returnSlots":0},"@supportsInterface_24837":{"entryPoint":1072,"id":24837,"parameterSlots":1,"returnSlots":1},"abi_decode_address":{"entryPoint":2385,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2678,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":2412,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256":{"entryPoint":2592,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":2561,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":2346,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2655,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_NotificationKind_$24627_t_uint256_t_address_t_address__to_t_uint8_t_uint256_t_address_t_address__fromStack_reversed":{"entryPoint":2736,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_40ab3b890edc2e3a20f2e8014d51f519c243000d3ee24cd1631a05b868a89f13__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_46ae0231b151a29cb76b0eb0bfc0feea3dce0b818e71e3685082cfa188eaf63d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_58698f5e11d9176307777359c7e820c4c719f9fb53f283df2e9b7afae0920593__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_66a42fcc0cb3a241433f702d08559d4868da600fb6c417c0d22bf3e4e199a226__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7ddfbdd1d4ac69255d0a55452a77fbdbf1242396b0bad9544763e87828ab15fb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2805,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:6219:88","nodeType":"YulBlock","src":"0:6219:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"546:124:88","nodeType":"YulBlock","src":"546:124:88","statements":[{"nativeSrc":"556:29:88","nodeType":"YulAssignment","src":"556:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"578:6:88","nodeType":"YulIdentifier","src":"578:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"565:12:88","nodeType":"YulIdentifier","src":"565:12:88"},"nativeSrc":"565:20:88","nodeType":"YulFunctionCall","src":"565:20:88"},"variableNames":[{"name":"value","nativeSrc":"556:5:88","nodeType":"YulIdentifier","src":"556:5:88"}]},{"body":{"nativeSrc":"648:16:88","nodeType":"YulBlock","src":"648:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"657:1:88","nodeType":"YulLiteral","src":"657:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"660:1:88","nodeType":"YulLiteral","src":"660:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"650:6:88","nodeType":"YulIdentifier","src":"650:6:88"},"nativeSrc":"650:12:88","nodeType":"YulFunctionCall","src":"650:12:88"},"nativeSrc":"650:12:88","nodeType":"YulExpressionStatement","src":"650:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"607:5:88","nodeType":"YulIdentifier","src":"607:5:88"},{"arguments":[{"name":"value","nativeSrc":"618:5:88","nodeType":"YulIdentifier","src":"618:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"633:3:88","nodeType":"YulLiteral","src":"633:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"638:1:88","nodeType":"YulLiteral","src":"638:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"629:3:88","nodeType":"YulIdentifier","src":"629:3:88"},"nativeSrc":"629:11:88","nodeType":"YulFunctionCall","src":"629:11:88"},{"kind":"number","nativeSrc":"642:1:88","nodeType":"YulLiteral","src":"642:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"625:3:88","nodeType":"YulIdentifier","src":"625:3:88"},"nativeSrc":"625:19:88","nodeType":"YulFunctionCall","src":"625:19:88"}],"functionName":{"name":"and","nativeSrc":"614:3:88","nodeType":"YulIdentifier","src":"614:3:88"},"nativeSrc":"614:31:88","nodeType":"YulFunctionCall","src":"614:31:88"}],"functionName":{"name":"eq","nativeSrc":"604:2:88","nodeType":"YulIdentifier","src":"604:2:88"},"nativeSrc":"604:42:88","nodeType":"YulFunctionCall","src":"604:42:88"}],"functionName":{"name":"iszero","nativeSrc":"597:6:88","nodeType":"YulIdentifier","src":"597:6:88"},"nativeSrc":"597:50:88","nodeType":"YulFunctionCall","src":"597:50:88"},"nativeSrc":"594:70:88","nodeType":"YulIf","src":"594:70:88"}]},"name":"abi_decode_address","nativeSrc":"497:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"525:6:88","nodeType":"YulTypedName","src":"525:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"536:5:88","nodeType":"YulTypedName","src":"536:5:88","type":""}],"src":"497:173:88"},{"body":{"nativeSrc":"815:709:88","nodeType":"YulBlock","src":"815:709:88","statements":[{"body":{"nativeSrc":"862:16:88","nodeType":"YulBlock","src":"862:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"871:1:88","nodeType":"YulLiteral","src":"871:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"874:1:88","nodeType":"YulLiteral","src":"874:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"864:6:88","nodeType":"YulIdentifier","src":"864:6:88"},"nativeSrc":"864:12:88","nodeType":"YulFunctionCall","src":"864:12:88"},"nativeSrc":"864:12:88","nodeType":"YulExpressionStatement","src":"864:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"836:7:88","nodeType":"YulIdentifier","src":"836:7:88"},{"name":"headStart","nativeSrc":"845:9:88","nodeType":"YulIdentifier","src":"845:9:88"}],"functionName":{"name":"sub","nativeSrc":"832:3:88","nodeType":"YulIdentifier","src":"832:3:88"},"nativeSrc":"832:23:88","nodeType":"YulFunctionCall","src":"832:23:88"},{"kind":"number","nativeSrc":"857:3:88","nodeType":"YulLiteral","src":"857:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"828:3:88","nodeType":"YulIdentifier","src":"828:3:88"},"nativeSrc":"828:33:88","nodeType":"YulFunctionCall","src":"828:33:88"},"nativeSrc":"825:53:88","nodeType":"YulIf","src":"825:53:88"},{"nativeSrc":"887:39:88","nodeType":"YulAssignment","src":"887:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"916:9:88","nodeType":"YulIdentifier","src":"916:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"897:18:88","nodeType":"YulIdentifier","src":"897:18:88"},"nativeSrc":"897:29:88","nodeType":"YulFunctionCall","src":"897:29:88"},"variableNames":[{"name":"value0","nativeSrc":"887:6:88","nodeType":"YulIdentifier","src":"887:6:88"}]},{"nativeSrc":"935:48:88","nodeType":"YulAssignment","src":"935:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"968:9:88","nodeType":"YulIdentifier","src":"968:9:88"},{"kind":"number","nativeSrc":"979:2:88","nodeType":"YulLiteral","src":"979:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"964:3:88","nodeType":"YulIdentifier","src":"964:3:88"},"nativeSrc":"964:18:88","nodeType":"YulFunctionCall","src":"964:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"945:18:88","nodeType":"YulIdentifier","src":"945:18:88"},"nativeSrc":"945:38:88","nodeType":"YulFunctionCall","src":"945:38:88"},"variableNames":[{"name":"value1","nativeSrc":"935:6:88","nodeType":"YulIdentifier","src":"935:6:88"}]},{"nativeSrc":"992:14:88","nodeType":"YulVariableDeclaration","src":"992:14:88","value":{"kind":"number","nativeSrc":"1005:1:88","nodeType":"YulLiteral","src":"1005:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"996:5:88","nodeType":"YulTypedName","src":"996:5:88","type":""}]},{"nativeSrc":"1015:41:88","nodeType":"YulAssignment","src":"1015:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1041:9:88","nodeType":"YulIdentifier","src":"1041:9:88"},{"kind":"number","nativeSrc":"1052:2:88","nodeType":"YulLiteral","src":"1052:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1037:3:88","nodeType":"YulIdentifier","src":"1037:3:88"},"nativeSrc":"1037:18:88","nodeType":"YulFunctionCall","src":"1037:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1024:12:88","nodeType":"YulIdentifier","src":"1024:12:88"},"nativeSrc":"1024:32:88","nodeType":"YulFunctionCall","src":"1024:32:88"},"variableNames":[{"name":"value","nativeSrc":"1015:5:88","nodeType":"YulIdentifier","src":"1015:5:88"}]},{"nativeSrc":"1065:15:88","nodeType":"YulAssignment","src":"1065:15:88","value":{"name":"value","nativeSrc":"1075:5:88","nodeType":"YulIdentifier","src":"1075:5:88"},"variableNames":[{"name":"value2","nativeSrc":"1065:6:88","nodeType":"YulIdentifier","src":"1065:6:88"}]},{"nativeSrc":"1089:46:88","nodeType":"YulVariableDeclaration","src":"1089:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1120:9:88","nodeType":"YulIdentifier","src":"1120:9:88"},{"kind":"number","nativeSrc":"1131:2:88","nodeType":"YulLiteral","src":"1131:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1116:3:88","nodeType":"YulIdentifier","src":"1116:3:88"},"nativeSrc":"1116:18:88","nodeType":"YulFunctionCall","src":"1116:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1103:12:88","nodeType":"YulIdentifier","src":"1103:12:88"},"nativeSrc":"1103:32:88","nodeType":"YulFunctionCall","src":"1103:32:88"},"variables":[{"name":"offset","nativeSrc":"1093:6:88","nodeType":"YulTypedName","src":"1093:6:88","type":""}]},{"body":{"nativeSrc":"1178:16:88","nodeType":"YulBlock","src":"1178:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1187:1:88","nodeType":"YulLiteral","src":"1187:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1190:1:88","nodeType":"YulLiteral","src":"1190:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1180:6:88","nodeType":"YulIdentifier","src":"1180:6:88"},"nativeSrc":"1180:12:88","nodeType":"YulFunctionCall","src":"1180:12:88"},"nativeSrc":"1180:12:88","nodeType":"YulExpressionStatement","src":"1180:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1150:6:88","nodeType":"YulIdentifier","src":"1150:6:88"},{"kind":"number","nativeSrc":"1158:18:88","nodeType":"YulLiteral","src":"1158:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1147:2:88","nodeType":"YulIdentifier","src":"1147:2:88"},"nativeSrc":"1147:30:88","nodeType":"YulFunctionCall","src":"1147:30:88"},"nativeSrc":"1144:50:88","nodeType":"YulIf","src":"1144:50:88"},{"nativeSrc":"1203:32:88","nodeType":"YulVariableDeclaration","src":"1203:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1217:9:88","nodeType":"YulIdentifier","src":"1217:9:88"},{"name":"offset","nativeSrc":"1228:6:88","nodeType":"YulIdentifier","src":"1228:6:88"}],"functionName":{"name":"add","nativeSrc":"1213:3:88","nodeType":"YulIdentifier","src":"1213:3:88"},"nativeSrc":"1213:22:88","nodeType":"YulFunctionCall","src":"1213:22:88"},"variables":[{"name":"_1","nativeSrc":"1207:2:88","nodeType":"YulTypedName","src":"1207:2:88","type":""}]},{"body":{"nativeSrc":"1283:16:88","nodeType":"YulBlock","src":"1283:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1292:1:88","nodeType":"YulLiteral","src":"1292:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1295:1:88","nodeType":"YulLiteral","src":"1295:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1285:6:88","nodeType":"YulIdentifier","src":"1285:6:88"},"nativeSrc":"1285:12:88","nodeType":"YulFunctionCall","src":"1285:12:88"},"nativeSrc":"1285:12:88","nodeType":"YulExpressionStatement","src":"1285:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1262:2:88","nodeType":"YulIdentifier","src":"1262:2:88"},{"kind":"number","nativeSrc":"1266:4:88","nodeType":"YulLiteral","src":"1266:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1258:3:88","nodeType":"YulIdentifier","src":"1258:3:88"},"nativeSrc":"1258:13:88","nodeType":"YulFunctionCall","src":"1258:13:88"},{"name":"dataEnd","nativeSrc":"1273:7:88","nodeType":"YulIdentifier","src":"1273:7:88"}],"functionName":{"name":"slt","nativeSrc":"1254:3:88","nodeType":"YulIdentifier","src":"1254:3:88"},"nativeSrc":"1254:27:88","nodeType":"YulFunctionCall","src":"1254:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1247:6:88","nodeType":"YulIdentifier","src":"1247:6:88"},"nativeSrc":"1247:35:88","nodeType":"YulFunctionCall","src":"1247:35:88"},"nativeSrc":"1244:55:88","nodeType":"YulIf","src":"1244:55:88"},{"nativeSrc":"1308:30:88","nodeType":"YulVariableDeclaration","src":"1308:30:88","value":{"arguments":[{"name":"_1","nativeSrc":"1335:2:88","nodeType":"YulIdentifier","src":"1335:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"1322:12:88","nodeType":"YulIdentifier","src":"1322:12:88"},"nativeSrc":"1322:16:88","nodeType":"YulFunctionCall","src":"1322:16:88"},"variables":[{"name":"length","nativeSrc":"1312:6:88","nodeType":"YulTypedName","src":"1312:6:88","type":""}]},{"body":{"nativeSrc":"1381:16:88","nodeType":"YulBlock","src":"1381:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1390:1:88","nodeType":"YulLiteral","src":"1390:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1393:1:88","nodeType":"YulLiteral","src":"1393:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1383:6:88","nodeType":"YulIdentifier","src":"1383:6:88"},"nativeSrc":"1383:12:88","nodeType":"YulFunctionCall","src":"1383:12:88"},"nativeSrc":"1383:12:88","nodeType":"YulExpressionStatement","src":"1383:12:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1353:6:88","nodeType":"YulIdentifier","src":"1353:6:88"},{"kind":"number","nativeSrc":"1361:18:88","nodeType":"YulLiteral","src":"1361:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1350:2:88","nodeType":"YulIdentifier","src":"1350:2:88"},"nativeSrc":"1350:30:88","nodeType":"YulFunctionCall","src":"1350:30:88"},"nativeSrc":"1347:50:88","nodeType":"YulIf","src":"1347:50:88"},{"body":{"nativeSrc":"1447:16:88","nodeType":"YulBlock","src":"1447:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1456:1:88","nodeType":"YulLiteral","src":"1456:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1459:1:88","nodeType":"YulLiteral","src":"1459:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1449:6:88","nodeType":"YulIdentifier","src":"1449:6:88"},"nativeSrc":"1449:12:88","nodeType":"YulFunctionCall","src":"1449:12:88"},"nativeSrc":"1449:12:88","nodeType":"YulExpressionStatement","src":"1449:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1420:2:88","nodeType":"YulIdentifier","src":"1420:2:88"},{"name":"length","nativeSrc":"1424:6:88","nodeType":"YulIdentifier","src":"1424:6:88"}],"functionName":{"name":"add","nativeSrc":"1416:3:88","nodeType":"YulIdentifier","src":"1416:3:88"},"nativeSrc":"1416:15:88","nodeType":"YulFunctionCall","src":"1416:15:88"},{"kind":"number","nativeSrc":"1433:2:88","nodeType":"YulLiteral","src":"1433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:88","nodeType":"YulIdentifier","src":"1412:3:88"},"nativeSrc":"1412:24:88","nodeType":"YulFunctionCall","src":"1412:24:88"},{"name":"dataEnd","nativeSrc":"1438:7:88","nodeType":"YulIdentifier","src":"1438:7:88"}],"functionName":{"name":"gt","nativeSrc":"1409:2:88","nodeType":"YulIdentifier","src":"1409:2:88"},"nativeSrc":"1409:37:88","nodeType":"YulFunctionCall","src":"1409:37:88"},"nativeSrc":"1406:57:88","nodeType":"YulIf","src":"1406:57:88"},{"nativeSrc":"1472:21:88","nodeType":"YulAssignment","src":"1472:21:88","value":{"arguments":[{"name":"_1","nativeSrc":"1486:2:88","nodeType":"YulIdentifier","src":"1486:2:88"},{"kind":"number","nativeSrc":"1490:2:88","nodeType":"YulLiteral","src":"1490:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1482:3:88","nodeType":"YulIdentifier","src":"1482:3:88"},"nativeSrc":"1482:11:88","nodeType":"YulFunctionCall","src":"1482:11:88"},"variableNames":[{"name":"value3","nativeSrc":"1472:6:88","nodeType":"YulIdentifier","src":"1472:6:88"}]},{"nativeSrc":"1502:16:88","nodeType":"YulAssignment","src":"1502:16:88","value":{"name":"length","nativeSrc":"1512:6:88","nodeType":"YulIdentifier","src":"1512:6:88"},"variableNames":[{"name":"value4","nativeSrc":"1502:6:88","nodeType":"YulIdentifier","src":"1502:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"675:849:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"749:9:88","nodeType":"YulTypedName","src":"749:9:88","type":""},{"name":"dataEnd","nativeSrc":"760:7:88","nodeType":"YulTypedName","src":"760:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"772:6:88","nodeType":"YulTypedName","src":"772:6:88","type":""},{"name":"value1","nativeSrc":"780:6:88","nodeType":"YulTypedName","src":"780:6:88","type":""},{"name":"value2","nativeSrc":"788:6:88","nodeType":"YulTypedName","src":"788:6:88","type":""},{"name":"value3","nativeSrc":"796:6:88","nodeType":"YulTypedName","src":"796:6:88","type":""},{"name":"value4","nativeSrc":"804:6:88","nodeType":"YulTypedName","src":"804:6:88","type":""}],"src":"675:849:88"},{"body":{"nativeSrc":"1628:103:88","nodeType":"YulBlock","src":"1628:103:88","statements":[{"nativeSrc":"1638:26:88","nodeType":"YulAssignment","src":"1638:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1650:9:88","nodeType":"YulIdentifier","src":"1650:9:88"},{"kind":"number","nativeSrc":"1661:2:88","nodeType":"YulLiteral","src":"1661:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1646:3:88","nodeType":"YulIdentifier","src":"1646:3:88"},"nativeSrc":"1646:18:88","nodeType":"YulFunctionCall","src":"1646:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1638:4:88","nodeType":"YulIdentifier","src":"1638:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1680:9:88","nodeType":"YulIdentifier","src":"1680:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1695:6:88","nodeType":"YulIdentifier","src":"1695:6:88"},{"arguments":[{"kind":"number","nativeSrc":"1707:3:88","nodeType":"YulLiteral","src":"1707:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1712:10:88","nodeType":"YulLiteral","src":"1712:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"1703:3:88","nodeType":"YulIdentifier","src":"1703:3:88"},"nativeSrc":"1703:20:88","nodeType":"YulFunctionCall","src":"1703:20:88"}],"functionName":{"name":"and","nativeSrc":"1691:3:88","nodeType":"YulIdentifier","src":"1691:3:88"},"nativeSrc":"1691:33:88","nodeType":"YulFunctionCall","src":"1691:33:88"}],"functionName":{"name":"mstore","nativeSrc":"1673:6:88","nodeType":"YulIdentifier","src":"1673:6:88"},"nativeSrc":"1673:52:88","nodeType":"YulFunctionCall","src":"1673:52:88"},"nativeSrc":"1673:52:88","nodeType":"YulExpressionStatement","src":"1673:52:88"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1529:202:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1597:9:88","nodeType":"YulTypedName","src":"1597:9:88","type":""},{"name":"value0","nativeSrc":"1608:6:88","nodeType":"YulTypedName","src":"1608:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1619:4:88","nodeType":"YulTypedName","src":"1619:4:88","type":""}],"src":"1529:202:88"},{"body":{"nativeSrc":"1803:206:88","nodeType":"YulBlock","src":"1803:206:88","statements":[{"body":{"nativeSrc":"1849:16:88","nodeType":"YulBlock","src":"1849:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1858:1:88","nodeType":"YulLiteral","src":"1858:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1861:1:88","nodeType":"YulLiteral","src":"1861:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1851:6:88","nodeType":"YulIdentifier","src":"1851:6:88"},"nativeSrc":"1851:12:88","nodeType":"YulFunctionCall","src":"1851:12:88"},"nativeSrc":"1851:12:88","nodeType":"YulExpressionStatement","src":"1851:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1824:7:88","nodeType":"YulIdentifier","src":"1824:7:88"},{"name":"headStart","nativeSrc":"1833:9:88","nodeType":"YulIdentifier","src":"1833:9:88"}],"functionName":{"name":"sub","nativeSrc":"1820:3:88","nodeType":"YulIdentifier","src":"1820:3:88"},"nativeSrc":"1820:23:88","nodeType":"YulFunctionCall","src":"1820:23:88"},{"kind":"number","nativeSrc":"1845:2:88","nodeType":"YulLiteral","src":"1845:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1816:3:88","nodeType":"YulIdentifier","src":"1816:3:88"},"nativeSrc":"1816:32:88","nodeType":"YulFunctionCall","src":"1816:32:88"},"nativeSrc":"1813:52:88","nodeType":"YulIf","src":"1813:52:88"},{"nativeSrc":"1874:36:88","nodeType":"YulVariableDeclaration","src":"1874:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1900:9:88","nodeType":"YulIdentifier","src":"1900:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1887:12:88","nodeType":"YulIdentifier","src":"1887:12:88"},"nativeSrc":"1887:23:88","nodeType":"YulFunctionCall","src":"1887:23:88"},"variables":[{"name":"value","nativeSrc":"1878:5:88","nodeType":"YulTypedName","src":"1878:5:88","type":""}]},{"body":{"nativeSrc":"1963:16:88","nodeType":"YulBlock","src":"1963:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1972:1:88","nodeType":"YulLiteral","src":"1972:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1975:1:88","nodeType":"YulLiteral","src":"1975:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1965:6:88","nodeType":"YulIdentifier","src":"1965:6:88"},"nativeSrc":"1965:12:88","nodeType":"YulFunctionCall","src":"1965:12:88"},"nativeSrc":"1965:12:88","nodeType":"YulExpressionStatement","src":"1965:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1932:5:88","nodeType":"YulIdentifier","src":"1932:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1953:5:88","nodeType":"YulIdentifier","src":"1953:5:88"}],"functionName":{"name":"iszero","nativeSrc":"1946:6:88","nodeType":"YulIdentifier","src":"1946:6:88"},"nativeSrc":"1946:13:88","nodeType":"YulFunctionCall","src":"1946:13:88"}],"functionName":{"name":"iszero","nativeSrc":"1939:6:88","nodeType":"YulIdentifier","src":"1939:6:88"},"nativeSrc":"1939:21:88","nodeType":"YulFunctionCall","src":"1939:21:88"}],"functionName":{"name":"eq","nativeSrc":"1929:2:88","nodeType":"YulIdentifier","src":"1929:2:88"},"nativeSrc":"1929:32:88","nodeType":"YulFunctionCall","src":"1929:32:88"}],"functionName":{"name":"iszero","nativeSrc":"1922:6:88","nodeType":"YulIdentifier","src":"1922:6:88"},"nativeSrc":"1922:40:88","nodeType":"YulFunctionCall","src":"1922:40:88"},"nativeSrc":"1919:60:88","nodeType":"YulIf","src":"1919:60:88"},{"nativeSrc":"1988:15:88","nodeType":"YulAssignment","src":"1988:15:88","value":{"name":"value","nativeSrc":"1998:5:88","nodeType":"YulIdentifier","src":"1998:5:88"},"variableNames":[{"name":"value0","nativeSrc":"1988:6:88","nodeType":"YulIdentifier","src":"1988:6:88"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"1736:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1769:9:88","nodeType":"YulTypedName","src":"1769:9:88","type":""},{"name":"dataEnd","nativeSrc":"1780:7:88","nodeType":"YulTypedName","src":"1780:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1792:6:88","nodeType":"YulTypedName","src":"1792:6:88","type":""}],"src":"1736:273:88"},{"body":{"nativeSrc":"2135:374:88","nodeType":"YulBlock","src":"2135:374:88","statements":[{"body":{"nativeSrc":"2182:16:88","nodeType":"YulBlock","src":"2182:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2191:1:88","nodeType":"YulLiteral","src":"2191:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2194:1:88","nodeType":"YulLiteral","src":"2194:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2184:6:88","nodeType":"YulIdentifier","src":"2184:6:88"},"nativeSrc":"2184:12:88","nodeType":"YulFunctionCall","src":"2184:12:88"},"nativeSrc":"2184:12:88","nodeType":"YulExpressionStatement","src":"2184:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2156:7:88","nodeType":"YulIdentifier","src":"2156:7:88"},{"name":"headStart","nativeSrc":"2165:9:88","nodeType":"YulIdentifier","src":"2165:9:88"}],"functionName":{"name":"sub","nativeSrc":"2152:3:88","nodeType":"YulIdentifier","src":"2152:3:88"},"nativeSrc":"2152:23:88","nodeType":"YulFunctionCall","src":"2152:23:88"},{"kind":"number","nativeSrc":"2177:3:88","nodeType":"YulLiteral","src":"2177:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"2148:3:88","nodeType":"YulIdentifier","src":"2148:3:88"},"nativeSrc":"2148:33:88","nodeType":"YulFunctionCall","src":"2148:33:88"},"nativeSrc":"2145:53:88","nodeType":"YulIf","src":"2145:53:88"},{"nativeSrc":"2207:39:88","nodeType":"YulAssignment","src":"2207:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2236:9:88","nodeType":"YulIdentifier","src":"2236:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2217:18:88","nodeType":"YulIdentifier","src":"2217:18:88"},"nativeSrc":"2217:29:88","nodeType":"YulFunctionCall","src":"2217:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2207:6:88","nodeType":"YulIdentifier","src":"2207:6:88"}]},{"nativeSrc":"2255:48:88","nodeType":"YulAssignment","src":"2255:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2288:9:88","nodeType":"YulIdentifier","src":"2288:9:88"},{"kind":"number","nativeSrc":"2299:2:88","nodeType":"YulLiteral","src":"2299:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2284:3:88","nodeType":"YulIdentifier","src":"2284:3:88"},"nativeSrc":"2284:18:88","nodeType":"YulFunctionCall","src":"2284:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2265:18:88","nodeType":"YulIdentifier","src":"2265:18:88"},"nativeSrc":"2265:38:88","nodeType":"YulFunctionCall","src":"2265:38:88"},"variableNames":[{"name":"value1","nativeSrc":"2255:6:88","nodeType":"YulIdentifier","src":"2255:6:88"}]},{"nativeSrc":"2312:14:88","nodeType":"YulVariableDeclaration","src":"2312:14:88","value":{"kind":"number","nativeSrc":"2325:1:88","nodeType":"YulLiteral","src":"2325:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2316:5:88","nodeType":"YulTypedName","src":"2316:5:88","type":""}]},{"nativeSrc":"2335:41:88","nodeType":"YulAssignment","src":"2335:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2361:9:88","nodeType":"YulIdentifier","src":"2361:9:88"},{"kind":"number","nativeSrc":"2372:2:88","nodeType":"YulLiteral","src":"2372:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2357:3:88","nodeType":"YulIdentifier","src":"2357:3:88"},"nativeSrc":"2357:18:88","nodeType":"YulFunctionCall","src":"2357:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2344:12:88","nodeType":"YulIdentifier","src":"2344:12:88"},"nativeSrc":"2344:32:88","nodeType":"YulFunctionCall","src":"2344:32:88"},"variableNames":[{"name":"value","nativeSrc":"2335:5:88","nodeType":"YulIdentifier","src":"2335:5:88"}]},{"nativeSrc":"2385:15:88","nodeType":"YulAssignment","src":"2385:15:88","value":{"name":"value","nativeSrc":"2395:5:88","nodeType":"YulIdentifier","src":"2395:5:88"},"variableNames":[{"name":"value2","nativeSrc":"2385:6:88","nodeType":"YulIdentifier","src":"2385:6:88"}]},{"nativeSrc":"2409:16:88","nodeType":"YulVariableDeclaration","src":"2409:16:88","value":{"kind":"number","nativeSrc":"2424:1:88","nodeType":"YulLiteral","src":"2424:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"2413:7:88","nodeType":"YulTypedName","src":"2413:7:88","type":""}]},{"nativeSrc":"2434:43:88","nodeType":"YulAssignment","src":"2434:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2462:9:88","nodeType":"YulIdentifier","src":"2462:9:88"},{"kind":"number","nativeSrc":"2473:2:88","nodeType":"YulLiteral","src":"2473:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2458:3:88","nodeType":"YulIdentifier","src":"2458:3:88"},"nativeSrc":"2458:18:88","nodeType":"YulFunctionCall","src":"2458:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"2445:12:88","nodeType":"YulIdentifier","src":"2445:12:88"},"nativeSrc":"2445:32:88","nodeType":"YulFunctionCall","src":"2445:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"2434:7:88","nodeType":"YulIdentifier","src":"2434:7:88"}]},{"nativeSrc":"2486:17:88","nodeType":"YulAssignment","src":"2486:17:88","value":{"name":"value_1","nativeSrc":"2496:7:88","nodeType":"YulIdentifier","src":"2496:7:88"},"variableNames":[{"name":"value3","nativeSrc":"2486:6:88","nodeType":"YulIdentifier","src":"2486:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256","nativeSrc":"2014:495:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2077:9:88","nodeType":"YulTypedName","src":"2077:9:88","type":""},{"name":"dataEnd","nativeSrc":"2088:7:88","nodeType":"YulTypedName","src":"2088:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2100:6:88","nodeType":"YulTypedName","src":"2100:6:88","type":""},{"name":"value1","nativeSrc":"2108:6:88","nodeType":"YulTypedName","src":"2108:6:88","type":""},{"name":"value2","nativeSrc":"2116:6:88","nodeType":"YulTypedName","src":"2116:6:88","type":""},{"name":"value3","nativeSrc":"2124:6:88","nodeType":"YulTypedName","src":"2124:6:88","type":""}],"src":"2014:495:88"},{"body":{"nativeSrc":"2615:76:88","nodeType":"YulBlock","src":"2615:76:88","statements":[{"nativeSrc":"2625:26:88","nodeType":"YulAssignment","src":"2625:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2637:9:88","nodeType":"YulIdentifier","src":"2637:9:88"},{"kind":"number","nativeSrc":"2648:2:88","nodeType":"YulLiteral","src":"2648:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2633:3:88","nodeType":"YulIdentifier","src":"2633:3:88"},"nativeSrc":"2633:18:88","nodeType":"YulFunctionCall","src":"2633:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2625:4:88","nodeType":"YulIdentifier","src":"2625:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2667:9:88","nodeType":"YulIdentifier","src":"2667:9:88"},{"name":"value0","nativeSrc":"2678:6:88","nodeType":"YulIdentifier","src":"2678:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2660:6:88","nodeType":"YulIdentifier","src":"2660:6:88"},"nativeSrc":"2660:25:88","nodeType":"YulFunctionCall","src":"2660:25:88"},"nativeSrc":"2660:25:88","nodeType":"YulExpressionStatement","src":"2660:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2514:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2584:9:88","nodeType":"YulTypedName","src":"2584:9:88","type":""},{"name":"value0","nativeSrc":"2595:6:88","nodeType":"YulTypedName","src":"2595:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2606:4:88","nodeType":"YulTypedName","src":"2606:4:88","type":""}],"src":"2514:177:88"},{"body":{"nativeSrc":"2766:156:88","nodeType":"YulBlock","src":"2766:156:88","statements":[{"body":{"nativeSrc":"2812:16:88","nodeType":"YulBlock","src":"2812:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2821:1:88","nodeType":"YulLiteral","src":"2821:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2824:1:88","nodeType":"YulLiteral","src":"2824:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2814:6:88","nodeType":"YulIdentifier","src":"2814:6:88"},"nativeSrc":"2814:12:88","nodeType":"YulFunctionCall","src":"2814:12:88"},"nativeSrc":"2814:12:88","nodeType":"YulExpressionStatement","src":"2814:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2787:7:88","nodeType":"YulIdentifier","src":"2787:7:88"},{"name":"headStart","nativeSrc":"2796:9:88","nodeType":"YulIdentifier","src":"2796:9:88"}],"functionName":{"name":"sub","nativeSrc":"2783:3:88","nodeType":"YulIdentifier","src":"2783:3:88"},"nativeSrc":"2783:23:88","nodeType":"YulFunctionCall","src":"2783:23:88"},{"kind":"number","nativeSrc":"2808:2:88","nodeType":"YulLiteral","src":"2808:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2779:3:88","nodeType":"YulIdentifier","src":"2779:3:88"},"nativeSrc":"2779:32:88","nodeType":"YulFunctionCall","src":"2779:32:88"},"nativeSrc":"2776:52:88","nodeType":"YulIf","src":"2776:52:88"},{"nativeSrc":"2837:14:88","nodeType":"YulVariableDeclaration","src":"2837:14:88","value":{"kind":"number","nativeSrc":"2850:1:88","nodeType":"YulLiteral","src":"2850:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2841:5:88","nodeType":"YulTypedName","src":"2841:5:88","type":""}]},{"nativeSrc":"2860:32:88","nodeType":"YulAssignment","src":"2860:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2882:9:88","nodeType":"YulIdentifier","src":"2882:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2869:12:88","nodeType":"YulIdentifier","src":"2869:12:88"},"nativeSrc":"2869:23:88","nodeType":"YulFunctionCall","src":"2869:23:88"},"variableNames":[{"name":"value","nativeSrc":"2860:5:88","nodeType":"YulIdentifier","src":"2860:5:88"}]},{"nativeSrc":"2901:15:88","nodeType":"YulAssignment","src":"2901:15:88","value":{"name":"value","nativeSrc":"2911:5:88","nodeType":"YulIdentifier","src":"2911:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2901:6:88","nodeType":"YulIdentifier","src":"2901:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"2696:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2732:9:88","nodeType":"YulTypedName","src":"2732:9:88","type":""},{"name":"dataEnd","nativeSrc":"2743:7:88","nodeType":"YulTypedName","src":"2743:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2755:6:88","nodeType":"YulTypedName","src":"2755:6:88","type":""}],"src":"2696:226:88"},{"body":{"nativeSrc":"3031:270:88","nodeType":"YulBlock","src":"3031:270:88","statements":[{"body":{"nativeSrc":"3077:16:88","nodeType":"YulBlock","src":"3077:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3086:1:88","nodeType":"YulLiteral","src":"3086:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3089:1:88","nodeType":"YulLiteral","src":"3089:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3079:6:88","nodeType":"YulIdentifier","src":"3079:6:88"},"nativeSrc":"3079:12:88","nodeType":"YulFunctionCall","src":"3079:12:88"},"nativeSrc":"3079:12:88","nodeType":"YulExpressionStatement","src":"3079:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3052:7:88","nodeType":"YulIdentifier","src":"3052:7:88"},{"name":"headStart","nativeSrc":"3061:9:88","nodeType":"YulIdentifier","src":"3061:9:88"}],"functionName":{"name":"sub","nativeSrc":"3048:3:88","nodeType":"YulIdentifier","src":"3048:3:88"},"nativeSrc":"3048:23:88","nodeType":"YulFunctionCall","src":"3048:23:88"},{"kind":"number","nativeSrc":"3073:2:88","nodeType":"YulLiteral","src":"3073:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3044:3:88","nodeType":"YulIdentifier","src":"3044:3:88"},"nativeSrc":"3044:32:88","nodeType":"YulFunctionCall","src":"3044:32:88"},"nativeSrc":"3041:52:88","nodeType":"YulIf","src":"3041:52:88"},{"nativeSrc":"3102:39:88","nodeType":"YulAssignment","src":"3102:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3131:9:88","nodeType":"YulIdentifier","src":"3131:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3112:18:88","nodeType":"YulIdentifier","src":"3112:18:88"},"nativeSrc":"3112:29:88","nodeType":"YulFunctionCall","src":"3112:29:88"},"variableNames":[{"name":"value0","nativeSrc":"3102:6:88","nodeType":"YulIdentifier","src":"3102:6:88"}]},{"nativeSrc":"3150:48:88","nodeType":"YulAssignment","src":"3150:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3183:9:88","nodeType":"YulIdentifier","src":"3183:9:88"},{"kind":"number","nativeSrc":"3194:2:88","nodeType":"YulLiteral","src":"3194:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3179:3:88","nodeType":"YulIdentifier","src":"3179:3:88"},"nativeSrc":"3179:18:88","nodeType":"YulFunctionCall","src":"3179:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3160:18:88","nodeType":"YulIdentifier","src":"3160:18:88"},"nativeSrc":"3160:38:88","nodeType":"YulFunctionCall","src":"3160:38:88"},"variableNames":[{"name":"value1","nativeSrc":"3150:6:88","nodeType":"YulIdentifier","src":"3150:6:88"}]},{"nativeSrc":"3207:14:88","nodeType":"YulVariableDeclaration","src":"3207:14:88","value":{"kind":"number","nativeSrc":"3220:1:88","nodeType":"YulLiteral","src":"3220:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3211:5:88","nodeType":"YulTypedName","src":"3211:5:88","type":""}]},{"nativeSrc":"3230:41:88","nodeType":"YulAssignment","src":"3230:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3256:9:88","nodeType":"YulIdentifier","src":"3256:9:88"},{"kind":"number","nativeSrc":"3267:2:88","nodeType":"YulLiteral","src":"3267:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3252:3:88","nodeType":"YulIdentifier","src":"3252:3:88"},"nativeSrc":"3252:18:88","nodeType":"YulFunctionCall","src":"3252:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"3239:12:88","nodeType":"YulIdentifier","src":"3239:12:88"},"nativeSrc":"3239:32:88","nodeType":"YulFunctionCall","src":"3239:32:88"},"variableNames":[{"name":"value","nativeSrc":"3230:5:88","nodeType":"YulIdentifier","src":"3230:5:88"}]},{"nativeSrc":"3280:15:88","nodeType":"YulAssignment","src":"3280:15:88","value":{"name":"value","nativeSrc":"3290:5:88","nodeType":"YulIdentifier","src":"3290:5:88"},"variableNames":[{"name":"value2","nativeSrc":"3280:6:88","nodeType":"YulIdentifier","src":"3280:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2927:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2981:9:88","nodeType":"YulTypedName","src":"2981:9:88","type":""},{"name":"dataEnd","nativeSrc":"2992:7:88","nodeType":"YulTypedName","src":"2992:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3004:6:88","nodeType":"YulTypedName","src":"3004:6:88","type":""},{"name":"value1","nativeSrc":"3012:6:88","nodeType":"YulTypedName","src":"3012:6:88","type":""},{"name":"value2","nativeSrc":"3020:6:88","nodeType":"YulTypedName","src":"3020:6:88","type":""}],"src":"2927:374:88"},{"body":{"nativeSrc":"3480:235:88","nodeType":"YulBlock","src":"3480:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3497:9:88","nodeType":"YulIdentifier","src":"3497:9:88"},{"kind":"number","nativeSrc":"3508:2:88","nodeType":"YulLiteral","src":"3508:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3490:6:88","nodeType":"YulIdentifier","src":"3490:6:88"},"nativeSrc":"3490:21:88","nodeType":"YulFunctionCall","src":"3490:21:88"},"nativeSrc":"3490:21:88","nodeType":"YulExpressionStatement","src":"3490:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3531:9:88","nodeType":"YulIdentifier","src":"3531:9:88"},{"kind":"number","nativeSrc":"3542:2:88","nodeType":"YulLiteral","src":"3542:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3527:3:88","nodeType":"YulIdentifier","src":"3527:3:88"},"nativeSrc":"3527:18:88","nodeType":"YulFunctionCall","src":"3527:18:88"},{"kind":"number","nativeSrc":"3547:2:88","nodeType":"YulLiteral","src":"3547:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"3520:6:88","nodeType":"YulIdentifier","src":"3520:6:88"},"nativeSrc":"3520:30:88","nodeType":"YulFunctionCall","src":"3520:30:88"},"nativeSrc":"3520:30:88","nodeType":"YulExpressionStatement","src":"3520:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3570:9:88","nodeType":"YulIdentifier","src":"3570:9:88"},{"kind":"number","nativeSrc":"3581:2:88","nodeType":"YulLiteral","src":"3581:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3566:3:88","nodeType":"YulIdentifier","src":"3566:3:88"},"nativeSrc":"3566:18:88","nodeType":"YulFunctionCall","src":"3566:18:88"},{"hexValue":"6f6e45524337323152656365697665643a205468657920746f6c64206d652049","kind":"string","nativeSrc":"3586:34:88","nodeType":"YulLiteral","src":"3586:34:88","type":"","value":"onERC721Received: They told me I"}],"functionName":{"name":"mstore","nativeSrc":"3559:6:88","nodeType":"YulIdentifier","src":"3559:6:88"},"nativeSrc":"3559:62:88","nodeType":"YulFunctionCall","src":"3559:62:88"},"nativeSrc":"3559:62:88","nodeType":"YulExpressionStatement","src":"3559:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3641:9:88","nodeType":"YulIdentifier","src":"3641:9:88"},{"kind":"number","nativeSrc":"3652:2:88","nodeType":"YulLiteral","src":"3652:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3637:3:88","nodeType":"YulIdentifier","src":"3637:3:88"},"nativeSrc":"3637:18:88","nodeType":"YulFunctionCall","src":"3637:18:88"},{"hexValue":"206861766520746f206661696c","kind":"string","nativeSrc":"3657:15:88","nodeType":"YulLiteral","src":"3657:15:88","type":"","value":" have to fail"}],"functionName":{"name":"mstore","nativeSrc":"3630:6:88","nodeType":"YulIdentifier","src":"3630:6:88"},"nativeSrc":"3630:43:88","nodeType":"YulFunctionCall","src":"3630:43:88"},"nativeSrc":"3630:43:88","nodeType":"YulExpressionStatement","src":"3630:43:88"},{"nativeSrc":"3682:27:88","nodeType":"YulAssignment","src":"3682:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3694:9:88","nodeType":"YulIdentifier","src":"3694:9:88"},{"kind":"number","nativeSrc":"3705:3:88","nodeType":"YulLiteral","src":"3705:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3690:3:88","nodeType":"YulIdentifier","src":"3690:3:88"},"nativeSrc":"3690:19:88","nodeType":"YulFunctionCall","src":"3690:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3682:4:88","nodeType":"YulIdentifier","src":"3682:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_46ae0231b151a29cb76b0eb0bfc0feea3dce0b818e71e3685082cfa188eaf63d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3306:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3457:9:88","nodeType":"YulTypedName","src":"3457:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3471:4:88","nodeType":"YulTypedName","src":"3471:4:88","type":""}],"src":"3306:409:88"},{"body":{"nativeSrc":"3925:411:88","nodeType":"YulBlock","src":"3925:411:88","statements":[{"nativeSrc":"3935:27:88","nodeType":"YulAssignment","src":"3935:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3947:9:88","nodeType":"YulIdentifier","src":"3947:9:88"},{"kind":"number","nativeSrc":"3958:3:88","nodeType":"YulLiteral","src":"3958:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3943:3:88","nodeType":"YulIdentifier","src":"3943:3:88"},"nativeSrc":"3943:19:88","nodeType":"YulFunctionCall","src":"3943:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3935:4:88","nodeType":"YulIdentifier","src":"3935:4:88"}]},{"body":{"nativeSrc":"4004:111:88","nodeType":"YulBlock","src":"4004:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4025:1:88","nodeType":"YulLiteral","src":"4025:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4032:3:88","nodeType":"YulLiteral","src":"4032:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4037:10:88","nodeType":"YulLiteral","src":"4037:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4028:3:88","nodeType":"YulIdentifier","src":"4028:3:88"},"nativeSrc":"4028:20:88","nodeType":"YulFunctionCall","src":"4028:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4018:6:88","nodeType":"YulIdentifier","src":"4018:6:88"},"nativeSrc":"4018:31:88","nodeType":"YulFunctionCall","src":"4018:31:88"},"nativeSrc":"4018:31:88","nodeType":"YulExpressionStatement","src":"4018:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4069:1:88","nodeType":"YulLiteral","src":"4069:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4072:4:88","nodeType":"YulLiteral","src":"4072:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"4062:6:88","nodeType":"YulIdentifier","src":"4062:6:88"},"nativeSrc":"4062:15:88","nodeType":"YulFunctionCall","src":"4062:15:88"},"nativeSrc":"4062:15:88","nodeType":"YulExpressionStatement","src":"4062:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4097:1:88","nodeType":"YulLiteral","src":"4097:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4100:4:88","nodeType":"YulLiteral","src":"4100:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4090:6:88","nodeType":"YulIdentifier","src":"4090:6:88"},"nativeSrc":"4090:15:88","nodeType":"YulFunctionCall","src":"4090:15:88"},"nativeSrc":"4090:15:88","nodeType":"YulExpressionStatement","src":"4090:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3984:6:88","nodeType":"YulIdentifier","src":"3984:6:88"},{"kind":"number","nativeSrc":"3992:1:88","nodeType":"YulLiteral","src":"3992:1:88","type":"","value":"4"}],"functionName":{"name":"lt","nativeSrc":"3981:2:88","nodeType":"YulIdentifier","src":"3981:2:88"},"nativeSrc":"3981:13:88","nodeType":"YulFunctionCall","src":"3981:13:88"}],"functionName":{"name":"iszero","nativeSrc":"3974:6:88","nodeType":"YulIdentifier","src":"3974:6:88"},"nativeSrc":"3974:21:88","nodeType":"YulFunctionCall","src":"3974:21:88"},"nativeSrc":"3971:144:88","nodeType":"YulIf","src":"3971:144:88"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4131:9:88","nodeType":"YulIdentifier","src":"4131:9:88"},{"name":"value0","nativeSrc":"4142:6:88","nodeType":"YulIdentifier","src":"4142:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4124:6:88","nodeType":"YulIdentifier","src":"4124:6:88"},"nativeSrc":"4124:25:88","nodeType":"YulFunctionCall","src":"4124:25:88"},"nativeSrc":"4124:25:88","nodeType":"YulExpressionStatement","src":"4124:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4169:9:88","nodeType":"YulIdentifier","src":"4169:9:88"},{"kind":"number","nativeSrc":"4180:2:88","nodeType":"YulLiteral","src":"4180:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4165:3:88","nodeType":"YulIdentifier","src":"4165:3:88"},"nativeSrc":"4165:18:88","nodeType":"YulFunctionCall","src":"4165:18:88"},{"name":"value1","nativeSrc":"4185:6:88","nodeType":"YulIdentifier","src":"4185:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4158:6:88","nodeType":"YulIdentifier","src":"4158:6:88"},"nativeSrc":"4158:34:88","nodeType":"YulFunctionCall","src":"4158:34:88"},"nativeSrc":"4158:34:88","nodeType":"YulExpressionStatement","src":"4158:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4212:9:88","nodeType":"YulIdentifier","src":"4212:9:88"},{"kind":"number","nativeSrc":"4223:2:88","nodeType":"YulLiteral","src":"4223:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4208:3:88","nodeType":"YulIdentifier","src":"4208:3:88"},"nativeSrc":"4208:18:88","nodeType":"YulFunctionCall","src":"4208:18:88"},{"arguments":[{"name":"value2","nativeSrc":"4232:6:88","nodeType":"YulIdentifier","src":"4232:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4248:3:88","nodeType":"YulLiteral","src":"4248:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4253:1:88","nodeType":"YulLiteral","src":"4253:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4244:3:88","nodeType":"YulIdentifier","src":"4244:3:88"},"nativeSrc":"4244:11:88","nodeType":"YulFunctionCall","src":"4244:11:88"},{"kind":"number","nativeSrc":"4257:1:88","nodeType":"YulLiteral","src":"4257:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4240:3:88","nodeType":"YulIdentifier","src":"4240:3:88"},"nativeSrc":"4240:19:88","nodeType":"YulFunctionCall","src":"4240:19:88"}],"functionName":{"name":"and","nativeSrc":"4228:3:88","nodeType":"YulIdentifier","src":"4228:3:88"},"nativeSrc":"4228:32:88","nodeType":"YulFunctionCall","src":"4228:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4201:6:88","nodeType":"YulIdentifier","src":"4201:6:88"},"nativeSrc":"4201:60:88","nodeType":"YulFunctionCall","src":"4201:60:88"},"nativeSrc":"4201:60:88","nodeType":"YulExpressionStatement","src":"4201:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4281:9:88","nodeType":"YulIdentifier","src":"4281:9:88"},{"kind":"number","nativeSrc":"4292:2:88","nodeType":"YulLiteral","src":"4292:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4277:3:88","nodeType":"YulIdentifier","src":"4277:3:88"},"nativeSrc":"4277:18:88","nodeType":"YulFunctionCall","src":"4277:18:88"},{"arguments":[{"name":"value3","nativeSrc":"4301:6:88","nodeType":"YulIdentifier","src":"4301:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4317:3:88","nodeType":"YulLiteral","src":"4317:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4322:1:88","nodeType":"YulLiteral","src":"4322:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4313:3:88","nodeType":"YulIdentifier","src":"4313:3:88"},"nativeSrc":"4313:11:88","nodeType":"YulFunctionCall","src":"4313:11:88"},{"kind":"number","nativeSrc":"4326:1:88","nodeType":"YulLiteral","src":"4326:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4309:3:88","nodeType":"YulIdentifier","src":"4309:3:88"},"nativeSrc":"4309:19:88","nodeType":"YulFunctionCall","src":"4309:19:88"}],"functionName":{"name":"and","nativeSrc":"4297:3:88","nodeType":"YulIdentifier","src":"4297:3:88"},"nativeSrc":"4297:32:88","nodeType":"YulFunctionCall","src":"4297:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4270:6:88","nodeType":"YulIdentifier","src":"4270:6:88"},"nativeSrc":"4270:60:88","nodeType":"YulFunctionCall","src":"4270:60:88"},"nativeSrc":"4270:60:88","nodeType":"YulExpressionStatement","src":"4270:60:88"}]},"name":"abi_encode_tuple_t_enum$_NotificationKind_$24627_t_uint256_t_address_t_address__to_t_uint8_t_uint256_t_address_t_address__fromStack_reversed","nativeSrc":"3720:616:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3870:9:88","nodeType":"YulTypedName","src":"3870:9:88","type":""},{"name":"value3","nativeSrc":"3881:6:88","nodeType":"YulTypedName","src":"3881:6:88","type":""},{"name":"value2","nativeSrc":"3889:6:88","nodeType":"YulTypedName","src":"3889:6:88","type":""},{"name":"value1","nativeSrc":"3897:6:88","nodeType":"YulTypedName","src":"3897:6:88","type":""},{"name":"value0","nativeSrc":"3905:6:88","nodeType":"YulTypedName","src":"3905:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3916:4:88","nodeType":"YulTypedName","src":"3916:4:88","type":""}],"src":"3720:616:88"},{"body":{"nativeSrc":"4515:234:88","nodeType":"YulBlock","src":"4515:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4532:9:88","nodeType":"YulIdentifier","src":"4532:9:88"},{"kind":"number","nativeSrc":"4543:2:88","nodeType":"YulLiteral","src":"4543:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4525:6:88","nodeType":"YulIdentifier","src":"4525:6:88"},"nativeSrc":"4525:21:88","nodeType":"YulFunctionCall","src":"4525:21:88"},"nativeSrc":"4525:21:88","nodeType":"YulExpressionStatement","src":"4525:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4566:9:88","nodeType":"YulIdentifier","src":"4566:9:88"},{"kind":"number","nativeSrc":"4577:2:88","nodeType":"YulLiteral","src":"4577:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4562:3:88","nodeType":"YulIdentifier","src":"4562:3:88"},"nativeSrc":"4562:18:88","nodeType":"YulFunctionCall","src":"4562:18:88"},{"kind":"number","nativeSrc":"4582:2:88","nodeType":"YulLiteral","src":"4582:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"4555:6:88","nodeType":"YulIdentifier","src":"4555:6:88"},"nativeSrc":"4555:30:88","nodeType":"YulFunctionCall","src":"4555:30:88"},"nativeSrc":"4555:30:88","nodeType":"YulExpressionStatement","src":"4555:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4605:9:88","nodeType":"YulIdentifier","src":"4605:9:88"},{"kind":"number","nativeSrc":"4616:2:88","nodeType":"YulLiteral","src":"4616:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4601:3:88","nodeType":"YulIdentifier","src":"4601:3:88"},"nativeSrc":"4601:18:88","nodeType":"YulFunctionCall","src":"4601:18:88"},{"hexValue":"53686f756c646e27742063616c6c2074686973206d6574686f64206966205632","kind":"string","nativeSrc":"4621:34:88","nodeType":"YulLiteral","src":"4621:34:88","type":"","value":"Shouldn't call this method if V2"}],"functionName":{"name":"mstore","nativeSrc":"4594:6:88","nodeType":"YulIdentifier","src":"4594:6:88"},"nativeSrc":"4594:62:88","nodeType":"YulFunctionCall","src":"4594:62:88"},"nativeSrc":"4594:62:88","nodeType":"YulExpressionStatement","src":"4594:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4676:9:88","nodeType":"YulIdentifier","src":"4676:9:88"},{"kind":"number","nativeSrc":"4687:2:88","nodeType":"YulLiteral","src":"4687:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4672:3:88","nodeType":"YulIdentifier","src":"4672:3:88"},"nativeSrc":"4672:18:88","nodeType":"YulFunctionCall","src":"4672:18:88"},{"hexValue":"206e6f7420656e61626c6564","kind":"string","nativeSrc":"4692:14:88","nodeType":"YulLiteral","src":"4692:14:88","type":"","value":" not enabled"}],"functionName":{"name":"mstore","nativeSrc":"4665:6:88","nodeType":"YulIdentifier","src":"4665:6:88"},"nativeSrc":"4665:42:88","nodeType":"YulFunctionCall","src":"4665:42:88"},"nativeSrc":"4665:42:88","nodeType":"YulExpressionStatement","src":"4665:42:88"},{"nativeSrc":"4716:27:88","nodeType":"YulAssignment","src":"4716:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4728:9:88","nodeType":"YulIdentifier","src":"4728:9:88"},{"kind":"number","nativeSrc":"4739:3:88","nodeType":"YulLiteral","src":"4739:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4724:3:88","nodeType":"YulIdentifier","src":"4724:3:88"},"nativeSrc":"4724:19:88","nodeType":"YulFunctionCall","src":"4724:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4716:4:88","nodeType":"YulIdentifier","src":"4716:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_40ab3b890edc2e3a20f2e8014d51f519c243000d3ee24cd1631a05b868a89f13__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4341:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4492:9:88","nodeType":"YulTypedName","src":"4492:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4506:4:88","nodeType":"YulTypedName","src":"4506:4:88","type":""}],"src":"4341:408:88"},{"body":{"nativeSrc":"4928:235:88","nodeType":"YulBlock","src":"4928:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4945:9:88","nodeType":"YulIdentifier","src":"4945:9:88"},{"kind":"number","nativeSrc":"4956:2:88","nodeType":"YulLiteral","src":"4956:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4938:6:88","nodeType":"YulIdentifier","src":"4938:6:88"},"nativeSrc":"4938:21:88","nodeType":"YulFunctionCall","src":"4938:21:88"},"nativeSrc":"4938:21:88","nodeType":"YulExpressionStatement","src":"4938:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4979:9:88","nodeType":"YulIdentifier","src":"4979:9:88"},{"kind":"number","nativeSrc":"4990:2:88","nodeType":"YulLiteral","src":"4990:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4975:3:88","nodeType":"YulIdentifier","src":"4975:3:88"},"nativeSrc":"4975:18:88","nodeType":"YulFunctionCall","src":"4975:18:88"},{"kind":"number","nativeSrc":"4995:2:88","nodeType":"YulLiteral","src":"4995:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"4968:6:88","nodeType":"YulIdentifier","src":"4968:6:88"},"nativeSrc":"4968:30:88","nodeType":"YulFunctionCall","src":"4968:30:88"},"nativeSrc":"4968:30:88","nodeType":"YulExpressionStatement","src":"4968:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5018:9:88","nodeType":"YulIdentifier","src":"5018:9:88"},{"kind":"number","nativeSrc":"5029:2:88","nodeType":"YulLiteral","src":"5029:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5014:3:88","nodeType":"YulIdentifier","src":"5014:3:88"},"nativeSrc":"5014:18:88","nodeType":"YulFunctionCall","src":"5014:18:88"},{"hexValue":"6f6e506f6c6963795265706c616365643a205468657920746f6c64206d652049","kind":"string","nativeSrc":"5034:34:88","nodeType":"YulLiteral","src":"5034:34:88","type":"","value":"onPolicyReplaced: They told me I"}],"functionName":{"name":"mstore","nativeSrc":"5007:6:88","nodeType":"YulIdentifier","src":"5007:6:88"},"nativeSrc":"5007:62:88","nodeType":"YulFunctionCall","src":"5007:62:88"},"nativeSrc":"5007:62:88","nodeType":"YulExpressionStatement","src":"5007:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5089:9:88","nodeType":"YulIdentifier","src":"5089:9:88"},{"kind":"number","nativeSrc":"5100:2:88","nodeType":"YulLiteral","src":"5100:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5085:3:88","nodeType":"YulIdentifier","src":"5085:3:88"},"nativeSrc":"5085:18:88","nodeType":"YulFunctionCall","src":"5085:18:88"},{"hexValue":"206861766520746f206661696c","kind":"string","nativeSrc":"5105:15:88","nodeType":"YulLiteral","src":"5105:15:88","type":"","value":" have to fail"}],"functionName":{"name":"mstore","nativeSrc":"5078:6:88","nodeType":"YulIdentifier","src":"5078:6:88"},"nativeSrc":"5078:43:88","nodeType":"YulFunctionCall","src":"5078:43:88"},"nativeSrc":"5078:43:88","nodeType":"YulExpressionStatement","src":"5078:43:88"},{"nativeSrc":"5130:27:88","nodeType":"YulAssignment","src":"5130:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5142:9:88","nodeType":"YulIdentifier","src":"5142:9:88"},{"kind":"number","nativeSrc":"5153:3:88","nodeType":"YulLiteral","src":"5153:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5138:3:88","nodeType":"YulIdentifier","src":"5138:3:88"},"nativeSrc":"5138:19:88","nodeType":"YulFunctionCall","src":"5138:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5130:4:88","nodeType":"YulIdentifier","src":"5130:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7ddfbdd1d4ac69255d0a55452a77fbdbf1242396b0bad9544763e87828ab15fb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4754:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4905:9:88","nodeType":"YulTypedName","src":"4905:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4919:4:88","nodeType":"YulTypedName","src":"4919:4:88","type":""}],"src":"4754:409:88"},{"body":{"nativeSrc":"5342:235:88","nodeType":"YulBlock","src":"5342:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5359:9:88","nodeType":"YulIdentifier","src":"5359:9:88"},{"kind":"number","nativeSrc":"5370:2:88","nodeType":"YulLiteral","src":"5370:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5352:6:88","nodeType":"YulIdentifier","src":"5352:6:88"},"nativeSrc":"5352:21:88","nodeType":"YulFunctionCall","src":"5352:21:88"},"nativeSrc":"5352:21:88","nodeType":"YulExpressionStatement","src":"5352:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5393:9:88","nodeType":"YulIdentifier","src":"5393:9:88"},{"kind":"number","nativeSrc":"5404:2:88","nodeType":"YulLiteral","src":"5404:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5389:3:88","nodeType":"YulIdentifier","src":"5389:3:88"},"nativeSrc":"5389:18:88","nodeType":"YulFunctionCall","src":"5389:18:88"},{"kind":"number","nativeSrc":"5409:2:88","nodeType":"YulLiteral","src":"5409:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"5382:6:88","nodeType":"YulIdentifier","src":"5382:6:88"},"nativeSrc":"5382:30:88","nodeType":"YulFunctionCall","src":"5382:30:88"},"nativeSrc":"5382:30:88","nodeType":"YulExpressionStatement","src":"5382:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5432:9:88","nodeType":"YulIdentifier","src":"5432:9:88"},{"kind":"number","nativeSrc":"5443:2:88","nodeType":"YulLiteral","src":"5443:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5428:3:88","nodeType":"YulIdentifier","src":"5428:3:88"},"nativeSrc":"5428:18:88","nodeType":"YulFunctionCall","src":"5428:18:88"},{"hexValue":"6f6e5061796f757452656365697665643a205468657920746f6c64206d652049","kind":"string","nativeSrc":"5448:34:88","nodeType":"YulLiteral","src":"5448:34:88","type":"","value":"onPayoutReceived: They told me I"}],"functionName":{"name":"mstore","nativeSrc":"5421:6:88","nodeType":"YulIdentifier","src":"5421:6:88"},"nativeSrc":"5421:62:88","nodeType":"YulFunctionCall","src":"5421:62:88"},"nativeSrc":"5421:62:88","nodeType":"YulExpressionStatement","src":"5421:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5503:9:88","nodeType":"YulIdentifier","src":"5503:9:88"},{"kind":"number","nativeSrc":"5514:2:88","nodeType":"YulLiteral","src":"5514:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5499:3:88","nodeType":"YulIdentifier","src":"5499:3:88"},"nativeSrc":"5499:18:88","nodeType":"YulFunctionCall","src":"5499:18:88"},{"hexValue":"206861766520746f206661696c","kind":"string","nativeSrc":"5519:15:88","nodeType":"YulLiteral","src":"5519:15:88","type":"","value":" have to fail"}],"functionName":{"name":"mstore","nativeSrc":"5492:6:88","nodeType":"YulIdentifier","src":"5492:6:88"},"nativeSrc":"5492:43:88","nodeType":"YulFunctionCall","src":"5492:43:88"},"nativeSrc":"5492:43:88","nodeType":"YulExpressionStatement","src":"5492:43:88"},{"nativeSrc":"5544:27:88","nodeType":"YulAssignment","src":"5544:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5556:9:88","nodeType":"YulIdentifier","src":"5556:9:88"},{"kind":"number","nativeSrc":"5567:3:88","nodeType":"YulLiteral","src":"5567:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5552:3:88","nodeType":"YulIdentifier","src":"5552:3:88"},"nativeSrc":"5552:19:88","nodeType":"YulFunctionCall","src":"5552:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5544:4:88","nodeType":"YulIdentifier","src":"5544:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_58698f5e11d9176307777359c7e820c4c719f9fb53f283df2e9b7afae0920593__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5168:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5319:9:88","nodeType":"YulTypedName","src":"5319:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5333:4:88","nodeType":"YulTypedName","src":"5333:4:88","type":""}],"src":"5168:409:88"},{"body":{"nativeSrc":"5756:234:88","nodeType":"YulBlock","src":"5756:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5773:9:88","nodeType":"YulIdentifier","src":"5773:9:88"},{"kind":"number","nativeSrc":"5784:2:88","nodeType":"YulLiteral","src":"5784:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5766:6:88","nodeType":"YulIdentifier","src":"5766:6:88"},"nativeSrc":"5766:21:88","nodeType":"YulFunctionCall","src":"5766:21:88"},"nativeSrc":"5766:21:88","nodeType":"YulExpressionStatement","src":"5766:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5807:9:88","nodeType":"YulIdentifier","src":"5807:9:88"},{"kind":"number","nativeSrc":"5818:2:88","nodeType":"YulLiteral","src":"5818:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5803:3:88","nodeType":"YulIdentifier","src":"5803:3:88"},"nativeSrc":"5803:18:88","nodeType":"YulFunctionCall","src":"5803:18:88"},{"kind":"number","nativeSrc":"5823:2:88","nodeType":"YulLiteral","src":"5823:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"5796:6:88","nodeType":"YulIdentifier","src":"5796:6:88"},"nativeSrc":"5796:30:88","nodeType":"YulFunctionCall","src":"5796:30:88"},"nativeSrc":"5796:30:88","nodeType":"YulExpressionStatement","src":"5796:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5846:9:88","nodeType":"YulIdentifier","src":"5846:9:88"},{"kind":"number","nativeSrc":"5857:2:88","nodeType":"YulLiteral","src":"5857:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5842:3:88","nodeType":"YulIdentifier","src":"5842:3:88"},"nativeSrc":"5842:18:88","nodeType":"YulFunctionCall","src":"5842:18:88"},{"hexValue":"6f6e506f6c696379457870697265643a205468657920746f6c64206d65204920","kind":"string","nativeSrc":"5862:34:88","nodeType":"YulLiteral","src":"5862:34:88","type":"","value":"onPolicyExpired: They told me I "}],"functionName":{"name":"mstore","nativeSrc":"5835:6:88","nodeType":"YulIdentifier","src":"5835:6:88"},"nativeSrc":"5835:62:88","nodeType":"YulFunctionCall","src":"5835:62:88"},"nativeSrc":"5835:62:88","nodeType":"YulExpressionStatement","src":"5835:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5917:9:88","nodeType":"YulIdentifier","src":"5917:9:88"},{"kind":"number","nativeSrc":"5928:2:88","nodeType":"YulLiteral","src":"5928:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5913:3:88","nodeType":"YulIdentifier","src":"5913:3:88"},"nativeSrc":"5913:18:88","nodeType":"YulFunctionCall","src":"5913:18:88"},{"hexValue":"6861766520746f206661696c","kind":"string","nativeSrc":"5933:14:88","nodeType":"YulLiteral","src":"5933:14:88","type":"","value":"have to fail"}],"functionName":{"name":"mstore","nativeSrc":"5906:6:88","nodeType":"YulIdentifier","src":"5906:6:88"},"nativeSrc":"5906:42:88","nodeType":"YulFunctionCall","src":"5906:42:88"},"nativeSrc":"5906:42:88","nodeType":"YulExpressionStatement","src":"5906:42:88"},{"nativeSrc":"5957:27:88","nodeType":"YulAssignment","src":"5957:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5969:9:88","nodeType":"YulIdentifier","src":"5969:9:88"},{"kind":"number","nativeSrc":"5980:3:88","nodeType":"YulLiteral","src":"5980:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5965:3:88","nodeType":"YulIdentifier","src":"5965:3:88"},"nativeSrc":"5965:19:88","nodeType":"YulFunctionCall","src":"5965:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5957:4:88","nodeType":"YulIdentifier","src":"5957:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_66a42fcc0cb3a241433f702d08559d4868da600fb6c417c0d22bf3e4e199a226__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5582:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5733:9:88","nodeType":"YulTypedName","src":"5733:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5747:4:88","nodeType":"YulTypedName","src":"5747:4:88","type":""}],"src":"5582:408:88"},{"body":{"nativeSrc":"6043:174:88","nodeType":"YulBlock","src":"6043:174:88","statements":[{"nativeSrc":"6053:16:88","nodeType":"YulAssignment","src":"6053:16:88","value":{"arguments":[{"name":"x","nativeSrc":"6064:1:88","nodeType":"YulIdentifier","src":"6064:1:88"},{"name":"y","nativeSrc":"6067:1:88","nodeType":"YulIdentifier","src":"6067:1:88"}],"functionName":{"name":"add","nativeSrc":"6060:3:88","nodeType":"YulIdentifier","src":"6060:3:88"},"nativeSrc":"6060:9:88","nodeType":"YulFunctionCall","src":"6060:9:88"},"variableNames":[{"name":"sum","nativeSrc":"6053:3:88","nodeType":"YulIdentifier","src":"6053:3:88"}]},{"body":{"nativeSrc":"6100:111:88","nodeType":"YulBlock","src":"6100:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6121:1:88","nodeType":"YulLiteral","src":"6121:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"6128:3:88","nodeType":"YulLiteral","src":"6128:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"6133:10:88","nodeType":"YulLiteral","src":"6133:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"6124:3:88","nodeType":"YulIdentifier","src":"6124:3:88"},"nativeSrc":"6124:20:88","nodeType":"YulFunctionCall","src":"6124:20:88"}],"functionName":{"name":"mstore","nativeSrc":"6114:6:88","nodeType":"YulIdentifier","src":"6114:6:88"},"nativeSrc":"6114:31:88","nodeType":"YulFunctionCall","src":"6114:31:88"},"nativeSrc":"6114:31:88","nodeType":"YulExpressionStatement","src":"6114:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6165:1:88","nodeType":"YulLiteral","src":"6165:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"6168:4:88","nodeType":"YulLiteral","src":"6168:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6158:6:88","nodeType":"YulIdentifier","src":"6158:6:88"},"nativeSrc":"6158:15:88","nodeType":"YulFunctionCall","src":"6158:15:88"},"nativeSrc":"6158:15:88","nodeType":"YulExpressionStatement","src":"6158:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6193:1:88","nodeType":"YulLiteral","src":"6193:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"6196:4:88","nodeType":"YulLiteral","src":"6196:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6186:6:88","nodeType":"YulIdentifier","src":"6186:6:88"},"nativeSrc":"6186:15:88","nodeType":"YulFunctionCall","src":"6186:15:88"},"nativeSrc":"6186:15:88","nodeType":"YulExpressionStatement","src":"6186:15:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6084:1:88","nodeType":"YulIdentifier","src":"6084:1:88"},{"name":"sum","nativeSrc":"6087:3:88","nodeType":"YulIdentifier","src":"6087:3:88"}],"functionName":{"name":"gt","nativeSrc":"6081:2:88","nodeType":"YulIdentifier","src":"6081:2:88"},"nativeSrc":"6081:10:88","nodeType":"YulFunctionCall","src":"6081:10:88"},"nativeSrc":"6078:133:88","nodeType":"YulIf","src":"6078:133:88"}]},"name":"checked_add_t_uint256","nativeSrc":"5995:222:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6026:1:88","nodeType":"YulTypedName","src":"6026:1:88","type":""},{"name":"y","nativeSrc":"6029:1:88","nodeType":"YulTypedName","src":"6029:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6035:3:88","nodeType":"YulTypedName","src":"6035:3:88","type":""}],"src":"5995:222:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        value3 := add(_1, 32)\n        value4 := length\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 96))\n        value3 := value_1\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_46ae0231b151a29cb76b0eb0bfc0feea3dce0b818e71e3685082cfa188eaf63d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"onERC721Received: They told me I\")\n        mstore(add(headStart, 96), \" have to fail\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_enum$_NotificationKind_$24627_t_uint256_t_address_t_address__to_t_uint8_t_uint256_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        if iszero(lt(value0, 4))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_40ab3b890edc2e3a20f2e8014d51f519c243000d3ee24cd1631a05b868a89f13__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Shouldn't call this method if V2\")\n        mstore(add(headStart, 96), \" not enabled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7ddfbdd1d4ac69255d0a55452a77fbdbf1242396b0bad9544763e87828ab15fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"onPolicyReplaced: They told me I\")\n        mstore(add(headStart, 96), \" have to fail\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_58698f5e11d9176307777359c7e820c4c719f9fb53f283df2e9b7afae0920593__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"onPayoutReceived: They told me I\")\n        mstore(add(headStart, 96), \" have to fail\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_66a42fcc0cb3a241433f702d08559d4868da600fb6c417c0d22bf3e4e199a226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"onPolicyExpired: They told me I \")\n        mstore(add(headStart, 96), \"have to fail\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b506004361061016d575f3560e01c806375d475f9116100d9578063bcce539911610093578063d99ba4081161006e578063d99ba408146103f6578063e8e617b71461040c578063ee89ef3a1461041f578063f57c302e14610427575f5ffd5b8063bcce5399146103ba578063c3af904e146103ce578063d6281d3e146103e3575f5ffd5b806375d475f91461030b5780637806ce811461033b5780639568ca0f1461034e5780639d76940214610360578063a9cc471814610381578063aeec8f9d1461038e575f5ffd5b806331ca29441161012a57806331ca294414610260578063352870141461028a5780635177cd131461029e5780635ee0c7dd146102ce57806363bd1d4a146102e15780636db65619146102f8575f5ffd5b806301ffc9a7146101715780630dc13e9914610199578063150b7a02146101ad578063286ee351146101d95780632bb2adb3146102035780632fb6436214610231575b5f5ffd5b61018461017f36600461092a565b610430565b60405190151581526020015b60405180910390f35b60025461018490600160381b900460ff1681565b6101c06101bb36600461096c565b6104c6565b6040516001600160e01b03199091168152602001610190565b6102016101e7366004610a01565b600280549115156101000261ff0019909216919091179055565b005b610201610211366004610a01565b600280549115156401000000000264ff0000000019909216919091179055565b61020161023f366004610a01565b60028054911515600160301b0266ff00000000000019909216919091179055565b61020161026e366004610a01565b60028054911515620100000262ff000019909216919091179055565b600254610184906301000000900460ff1681565b6102016102ac366004610a01565b60028054911515650100000000000265ff000000000019909216919091179055565b6101c06102dc366004610a20565b6105b9565b6102ea60015481565b604051908152602001610190565b6002546101849062010000900460ff1681565b610201610319366004610a01565b60028054911515600160381b0267ff0000000000000019909216919091179055565b610201610349366004610a5f565b600355565b60025461018490610100900460ff1681565b61020161036e366004610a01565b6002805460ff1916911515919091179055565b6002546101849060ff1681565b61020161039c366004610a01565b6002805491151563010000000263ff00000019909216919091179055565b60025461018490600160301b900460ff1681565b60025461018490640100000000900460ff1681565b6101c06103f1366004610a20565b61071e565b6002546101849065010000000000900460ff1681565b6101c061041a366004610a76565b61080a565b6102ea5f5481565b6102ea60035481565b6002545f90600160301b900460ff1615610448575f5ffd5b6002546301000000900460ff161561046157505f919050565b6001600160e01b03198216633ece0a8960e01b14806104a55750600254600160381b900460ff161580156104a557506001600160e01b03198216635ee0c7dd60e01b145b806104c057506001600160e01b031982166301ffc9a760e01b145b92915050565b6002545f9060ff161561054b5760025462010000900460ff16156104e8575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e45524337323152656365697665643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b60648201526084015b60405180910390fd5b5f8481555f196001556040515f516020610b155f395f51905f52916105759187908a908a90610ab0565b60405180910390a1600254640100000000900460ff161561059e5750630badf00d60e01b6105b0565b6105a66108f6565b50630a85bd0160e11b5b95945050505050565b6002545f90600160381b900460ff161561062a5760405162461bcd60e51b815260206004820152602c60248201527f53686f756c646e27742063616c6c2074686973206d6574686f6420696620563260448201526b081b9bdd08195b98589b195960a21b6064820152608401610542565b600254610100900460ff16156106ad5760025462010000900460ff161561064f575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e506f6c6963795265706c616365643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b6064820152608401610542565b5f83905560018290556040515f516020610b155f395f51905f52906106da90600390869089908990610ab0565b60405180910390a160025465010000000000900460ff16156107045750630badf00d60e01b610716565b61070c6108f6565b50635ee0c7dd60e01b5b949350505050565b6002545f9060ff161561079e5760025462010000900460ff1615610740575f5ffd5b60405162461bcd60e51b815260206004820152602d60248201527f6f6e5061796f757452656365697665643a205468657920746f6c64206d65204960448201526c081a185d99481d1bc819985a5b609a1b6064820152608401610542565b5f83905560018281556040515f516020610b155f395f51905f52916107c891869089908990610ab0565b60405180910390a1600254640100000000900460ff16156107f15750630badf00d60e01b610716565b6107f96108f6565b50636b140e9f60e11b949350505050565b6002545f9060ff16156108895760025462010000900460ff161561082c575f5ffd5b60405162461bcd60e51b815260206004820152602c60248201527f6f6e506f6c696379457870697265643a205468657920746f6c64206d6520492060448201526b1a185d99481d1bc819985a5b60a21b6064820152608401610542565b5f8281556001556040515f516020610b155f395f51905f52906108b490600290859088908890610ab0565b60405180910390a1600254640100000000900460ff16156108dd5750630badf00d60e01b6108ef565b6108e56108f6565b5063e8e617b760e01b5b9392505050565b5f5b6003548110156109275761090d816001610af5565b61091e61091b836064610af5565b90565b556001016108f8565b50565b5f6020828403121561093a575f5ffd5b81356001600160e01b0319811681146108ef575f5ffd5b80356001600160a01b0381168114610967575f5ffd5b919050565b5f5f5f5f5f60808688031215610980575f5ffd5b61098986610951565b945061099760208701610951565b935060408601359250606086013567ffffffffffffffff8111156109b9575f5ffd5b8601601f810188136109c9575f5ffd5b803567ffffffffffffffff8111156109df575f5ffd5b8860208284010111156109f0575f5ffd5b959894975092955050506020019190565b5f60208284031215610a11575f5ffd5b813580151581146108ef575f5ffd5b5f5f5f5f60808587031215610a33575f5ffd5b610a3c85610951565b9350610a4a60208601610951565b93969395505050506040820135916060013590565b5f60208284031215610a6f575f5ffd5b5035919050565b5f5f5f60608486031215610a88575f5ffd5b610a9184610951565b9250610a9f60208501610951565b929592945050506040919091013590565b6080810160048610610ad057634e487b7160e01b5f52602160045260245ffd5b94815260208101939093526001600160a01b0391821660408401521660609091015290565b808201808211156104c057634e487b7160e01b5f52601160045260245ffdfecb6442f1752a34d49fd946725ee915eae9914b3fe3f3193b98232c772393e7c5a264697066735822122035daeb15837aafe20f221941736d87414daac6b3bbf21bb77fec1870e9183c9b64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x75D475F9 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0xBCCE5399 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xD99BA408 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xD99BA408 EQ PUSH2 0x3F6 JUMPI DUP1 PUSH4 0xE8E617B7 EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0xEE89EF3A EQ PUSH2 0x41F JUMPI DUP1 PUSH4 0xF57C302E EQ PUSH2 0x427 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xBCCE5399 EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xC3AF904E EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0xD6281D3E EQ PUSH2 0x3E3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x75D475F9 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x7806CE81 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x9568CA0F EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x9D769402 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xA9CC4718 EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xAEEC8F9D EQ PUSH2 0x38E JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x31CA2944 GT PUSH2 0x12A JUMPI DUP1 PUSH4 0x31CA2944 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x35287014 EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0x5177CD13 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5EE0C7DD EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x63BD1D4A EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x6DB65619 EQ PUSH2 0x2F8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDC13E99 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x286EE351 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x2BB2ADB3 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x2FB64362 EQ PUSH2 0x231 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x92A JUMP JUMPDEST PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x96C JUMP JUMPDEST PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH5 0x100000000 MUL PUSH5 0xFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH7 0xFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH6 0x10000000000 MUL PUSH6 0xFF0000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0xA20 JUMP JUMPDEST PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x2EA PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x319 CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x38 SHL MUL PUSH8 0xFF00000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x201 PUSH2 0x349 CALLDATASIZE PUSH1 0x4 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x3 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x201 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH4 0x1000000 MUL PUSH4 0xFF000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x3F1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA20 JUMP JUMPDEST PUSH2 0x71E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x184 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0xA76 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST PUSH2 0x2EA PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2EA PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x448 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x461 JUMPI POP PUSH0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x3ECE0A89 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x4A5 JUMPI POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x4A5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x4C0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x54B JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4E8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E45524337323152656365697665643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP5 DUP2 SSTORE PUSH0 NOT PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 PUSH2 0x575 SWAP2 DUP8 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x59E JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x5B0 JUMP JUMPDEST PUSH2 0x5A6 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0xA85BD01 PUSH1 0xE1 SHL JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x38 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x62A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53686F756C646E27742063616C6C2074686973206D6574686F64206966205632 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x81B9BDD08195B98589B1959 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6AD JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x64F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E506F6C6963795265706C616365643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP4 SWAP1 SSTORE PUSH1 0x1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH2 0x6DA SWAP1 PUSH1 0x3 SWAP1 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH6 0x10000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x704 JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x716 JUMP JUMPDEST PUSH2 0x70C PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0x5EE0C7DD PUSH1 0xE0 SHL JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x79E JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x740 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E5061796F757452656365697665643A205468657920746F6C64206D652049 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x81A185D99481D1BC819985A5B PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP4 SWAP1 SSTORE PUSH1 0x1 DUP3 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 PUSH2 0x7C8 SWAP2 DUP7 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x7F1 JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x716 JUMP JUMPDEST PUSH2 0x7F9 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0x6B140E9F PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x889 JUMPI PUSH1 0x2 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x82C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6F6E506F6C696379457870697265643A205468657920746F6C64206D65204920 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x1A185D99481D1BC819985A5B PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x542 JUMP JUMPDEST PUSH0 DUP3 DUP2 SSTORE PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0xB15 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH2 0x8B4 SWAP1 PUSH1 0x2 SWAP1 DUP6 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0xAB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8DD JUMPI POP PUSH4 0xBADF00D PUSH1 0xE0 SHL PUSH2 0x8EF JUMP JUMPDEST PUSH2 0x8E5 PUSH2 0x8F6 JUMP JUMPDEST POP PUSH4 0xE8E617B7 PUSH1 0xE0 SHL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 JUMPDEST PUSH1 0x3 SLOAD DUP2 LT ISZERO PUSH2 0x927 JUMPI PUSH2 0x90D DUP2 PUSH1 0x1 PUSH2 0xAF5 JUMP JUMPDEST PUSH2 0x91E PUSH2 0x91B DUP4 PUSH1 0x64 PUSH2 0xAF5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SSTORE PUSH1 0x1 ADD PUSH2 0x8F8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x93A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x8EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x980 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x989 DUP7 PUSH2 0x951 JUMP JUMPDEST SWAP5 POP PUSH2 0x997 PUSH1 0x20 DUP8 ADD PUSH2 0x951 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP7 ADD PUSH1 0x1F DUP2 ADD DUP9 SGT PUSH2 0x9C9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0x9F0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP PUSH1 0x20 ADD SWAP2 SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA11 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xA33 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xA3C DUP6 PUSH2 0x951 JUMP JUMPDEST SWAP4 POP PUSH2 0xA4A PUSH1 0x20 DUP7 ADD PUSH2 0x951 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xA91 DUP5 PUSH2 0x951 JUMP JUMPDEST SWAP3 POP PUSH2 0xA9F PUSH1 0x20 DUP6 ADD PUSH2 0x951 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH1 0x4 DUP7 LT PUSH2 0xAD0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x40 DUP5 ADD MSTORE AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID 0xCB PUSH5 0x42F1752A34 0xD4 SWAP16 0xD9 CHAINID PUSH19 0x5EE915EAE9914B3FE3F3193B98232C772393E7 0xC5 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0xDA 0xEB ISZERO DUP4 PUSH27 0xAFE20F221941736D87414DAAC6B3BBF21BB77FEC1870E9183C9B64 PUSH20 0x6F6C634300081C00330000000000000000000000 ","sourceMap":"441:4755:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:373;;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;2322:373:83;;;;;;;;741:16;;;;;-1:-1:-1;;;741:16:83;;;;;;2699:586;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1691:33:88;;;1673:52;;1661:2;1646:18;2699:586:83;1529:202:88;1273:89:83;;;;;;:::i;:::-;1331:11;:26;;;;;;;-1:-1:-1;;1331:26:83;;;;;;;;;1273:89;;;1575:109;;;;;;:::i;:::-;1643:16;:36;;;;;;;-1:-1:-1;;1643:36:83;;;;;;;;;1575:109;1894:77;;;;;;:::i;:::-;1946:8;:20;;;;;-1:-1:-1;;;1946:20:83;-1:-1:-1;;1946:20:83;;;;;;;;;1894:77;1975:89;;;;;;:::i;:::-;2033:11;:26;;;;;;;-1:-1:-1;;2033:26:83;;;;;;;;;1975:89;616:26;;;;;;;;;;;;1688:137;;;;;;:::i;:::-;1770:23;:50;;;;;;;-1:-1:-1;;1770:50:83;;;;;;;;;1688:137;4520:674;;;;;;:::i;:::-;;:::i;517:21::-;;;;;;;;;2660:25:88;;;2648:2;2633:18;517:21:83;2514:177:88;589:23:83;;;;;;;;;;;;1829:61;;;;;;:::i;:::-;1873:4;:12;;;;;-1:-1:-1;;;1873:12:83;-1:-1:-1;;1873:12:83;;;;;;;;;1829:61;1366:100;;;;;;:::i;:::-;1431:13;:30;1366:100;562:23;;;;;;;;;;;;1208:61;;;;;;:::i;:::-;1252:4;:12;;-1:-1:-1;;1252:12:83;;;;;;;;;;1208:61;542:16;;;;;;;;;1470:101;;;;;;:::i;:::-;1534:14;:32;;;;;;;-1:-1:-1;;1534:32:83;;;;;;;;;1470:101;717:20;;;;;-1:-1:-1;;;717:20:83;;;;;;646:28;;;;;;;;;;;;3882:572;;;;;;:::i;:::-;;:::i;678:35::-;;;;;;;;;;;;3289:527;;;;;;:::i;:::-;;:::i;490:23::-;;;;;;761:28;;;;;;2322:373;2414:8;;2398:4;;-1:-1:-1;;;2414:8:83;;;;2410:59;;;2459:1;;2449:12;2439:30;2478:14;;;;;;;2474:32;;;-1:-1:-1;2501:5:83;;2322:373;-1:-1:-1;2322:373:83:o;2474:32::-;-1:-1:-1;;;;;;2525:46:83;;-1:-1:-1;;;2525:46:83;;:115;;-1:-1:-1;2583:4:83;;-1:-1:-1;;;2583:4:83;;;;2582:5;:57;;;;-1:-1:-1;;;;;;;2591:48:83;;-1:-1:-1;;;2591:48:83;2582:57;2525:165;;;-1:-1:-1;;;;;;;2650:40:83;;-1:-1:-1;;;2650:40:83;2525:165;2512:178;2322:373;-1:-1:-1;;2322:373:83:o;2699:586::-;2857:4;;2839:6;;2857:4;;2853:151;;;2873:11;;;;;;;2869:135;;;2925:1;;2915:12;2903:34;2949:55;;-1:-1:-1;;;2949:55:83;;3508:2:88;2949:55:83;;;3490:21:88;3547:2;3527:18;;;3520:30;3586:34;3566:18;;;3559:62;-1:-1:-1;;;3637:18:88;;;3630:43;3690:19;;2949:55:83;;;;;;;;2869:135;3011:8;:20;;;-1:-1:-1;;3037:6:83;:26;3074:80;;-1:-1:-1;;;;;;;;;;;3074:80:83;;;3022:9;;3139:8;;3149:4;;3074:80;:::i;:::-;;;;;;;;3165:16;;;;;;;3161:47;;;-1:-1:-1;;;;3183:25:83;;3161:47;3215:10;:8;:10::i;:::-;-1:-1:-1;;;;2699:586:83;;;;;;;;:::o;4520:674::-;4685:4;;4667:6;;-1:-1:-1;;;4685:4:83;;;;4681:64;;;4691:54;;-1:-1:-1;;;4691:54:83;;4543:2:88;4691:54:83;;;4525:21:88;4582:2;4562:18;;;4555:30;4621:34;4601:18;;;4594:62;-1:-1:-1;;;4672:18:88;;;4665:42;4724:19;;4691:54:83;4341:408:88;4681:64:83;4755:11;;;;;;;4751:158;;;4778:11;;;;;;;4774:135;;;4830:1;;4820:12;4808:34;4854:55;;-1:-1:-1;;;4854:55:83;;4956:2:88;4854:55:83;;;4938:21:88;4995:2;4975:18;;;4968:30;5034:34;5014:18;;;5007:62;-1:-1:-1;;;5085:18:88;;;5078:43;5138:19;;4854:55:83;4754:409:88;4774:135:83;4915:8;:22;;;4943:6;:20;;;4974:82;;-1:-1:-1;;;;;;;;;;;4974:82:83;;;4995:31;;4926:11;;5041:8;;5051:4;;4974:82;:::i;:::-;;;;;;;;5067:23;;;;;;;5063:54;;;-1:-1:-1;;;;5092:25:83;;5063:54;5124:10;:8;:10::i;:::-;-1:-1:-1;;;;4520:674:83;;;;;;;:::o;3882:572::-;4040:4;;4022:6;;4040:4;;4036:151;;;4056:11;;;;;;;4052:135;;;4108:1;;4098:12;4086:34;4132:55;;-1:-1:-1;;;4132:55:83;;5370:2:88;4132:55:83;;;5352:21:88;5409:2;5389:18;;;5382:30;5448:34;5428:18;;;5421:62;-1:-1:-1;;;5499:18:88;;;5492:43;5552:19;;4132:55:83;5168:409:88;4052:135:83;4193:8;:20;;;4219:6;:15;;;4245:80;;-1:-1:-1;;;;;;;;;;;4245:80:83;;;4204:9;;4310:8;;4320:4;;4245:80;:::i;:::-;;;;;;;;4336:16;;;;;;;4332:47;;;-1:-1:-1;;;;4354:25:83;;4332:47;4386:10;:8;:10::i;:::-;-1:-1:-1;;;;3882:572:83;;;;;;:::o;3289:527::-;3410:4;;3392:6;;3410:4;;3406:150;;;3426:11;;;;;;;3422:134;;;3478:1;;3468:12;3456:34;3502:54;;-1:-1:-1;;;3502:54:83;;5784:2:88;3502:54:83;;;5766:21:88;5823:2;5803:18;;;5796:30;5862:34;5842:18;;;5835:62;-1:-1:-1;;;5913:18:88;;;5906:42;5965:19;;3502:54:83;5582:408:88;3422:134:83;3562:8;:20;;;3588:6;:10;3609:79;;-1:-1:-1;;;;;;;;;;;3609:79:83;;;3630:30;;3573:9;;3673:8;;3683:4;;3609:79;:::i;:::-;;;;;;;;3699:16;;;;;;;3695:47;;;-1:-1:-1;;;;3717:25:83;;3695:47;3749:10;:8;:10::i;:::-;-1:-1:-1;;;;3289:527:83;;;;;;:::o;2068:195::-;2147:9;2142:117;2166:13;;2162:1;:17;2142:117;;;2247:5;:1;2251;2247:5;:::i;:::-;2194:44;2229:7;2235:1;2229:3;:7;:::i;:::-;2893:4:40;2723:190;2194:44:83;:58;2181:3;;2142:117;;;;2068:195::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:88;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:849::-;772:6;780;788;796;804;857:3;845:9;836:7;832:23;828:33;825:53;;;874:1;871;864:12;825:53;897:29;916:9;897:29;:::i;:::-;887:39;;945:38;979:2;968:9;964:18;945:38;:::i;:::-;935:48;-1:-1:-1;1052:2:88;1037:18;;1024:32;;-1:-1:-1;1131:2:88;1116:18;;1103:32;1158:18;1147:30;;1144:50;;;1190:1;1187;1180:12;1144:50;1213:22;;1266:4;1258:13;;1254:27;-1:-1:-1;1244:55:88;;1295:1;1292;1285:12;1244:55;1335:2;1322:16;1361:18;1353:6;1350:30;1347:50;;;1393:1;1390;1383:12;1347:50;1438:7;1433:2;1424:6;1420:2;1416:15;1412:24;1409:37;1406:57;;;1459:1;1456;1449:12;1406:57;675:849;;;;-1:-1:-1;675:849:88;;-1:-1:-1;;;1490:2:88;1482:11;;1512:6;675:849::o;1736:273::-;1792:6;1845:2;1833:9;1824:7;1820:23;1816:32;1813:52;;;1861:1;1858;1851:12;1813:52;1900:9;1887:23;1953:5;1946:13;1939:21;1932:5;1929:32;1919:60;;1975:1;1972;1965:12;2014:495;2100:6;2108;2116;2124;2177:3;2165:9;2156:7;2152:23;2148:33;2145:53;;;2194:1;2191;2184:12;2145:53;2217:29;2236:9;2217:29;:::i;:::-;2207:39;;2265:38;2299:2;2288:9;2284:18;2265:38;:::i;:::-;2014:495;;2255:48;;-1:-1:-1;;;;2372:2:88;2357:18;;2344:32;;2473:2;2458:18;2445:32;;2014:495::o;2696:226::-;2755:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:52;;;2824:1;2821;2814:12;2776:52;-1:-1:-1;2869:23:88;;2696:226;-1:-1:-1;2696:226:88:o;2927:374::-;3004:6;3012;3020;3073:2;3061:9;3052:7;3048:23;3044:32;3041:52;;;3089:1;3086;3079:12;3041:52;3112:29;3131:9;3112:29;:::i;:::-;3102:39;;3160:38;3194:2;3183:9;3179:18;3160:38;:::i;:::-;2927:374;;3150:48;;-1:-1:-1;;;3267:2:88;3252:18;;;;3239:32;;2927:374::o;3720:616::-;3958:3;3943:19;;3992:1;3981:13;;3971:144;;4037:10;4032:3;4028:20;4025:1;4018:31;4072:4;4069:1;4062:15;4100:4;4097:1;4090:15;3971:144;4124:25;;;4180:2;4165:18;;4158:34;;;;-1:-1:-1;;;;;4228:32:88;;;4223:2;4208:18;;4201:60;4297:32;4292:2;4277:18;;;4270:60;3720:616;:::o;5995:222::-;6060:9;;;6081:10;;;6078:133;;;6133:10;6128:3;6124:20;6121:1;6114:31;6168:4;6165:1;6158:15;6196:4;6193:1;6186:15"},"methodIdentifiers":{"badlyImplemented()":"c3af904e","badlyImplementedReplace()":"d99ba408","emptyRevert()":"6db65619","fail()":"a9cc4718","failReplace()":"9568ca0f","noERC165()":"bcce5399","noV2()":"0dc13e99","notImplemented()":"35287014","onERC721Received(address,address,uint256,bytes)":"150b7a02","onPayoutReceived(address,address,uint256,uint256)":"d6281d3e","onPolicyExpired(address,address,uint256)":"e8e617b7","onPolicyReplaced(address,address,uint256,uint256)":"5ee0c7dd","payout()":"63bd1d4a","policyId()":"ee89ef3a","setBadlyImplemented(bool)":"2bb2adb3","setBadlyImplementedReplace(bool)":"5177cd13","setEmptyRevert(bool)":"31ca2944","setFail(bool)":"9d769402","setFailReplace(bool)":"286ee351","setNoERC165(bool)":"2fb64362","setNoV2(bool)":"75d475f9","setNotImplemented(bool)":"aeec8f9d","setSpendGasCount(uint256)":"7806ce81","spendGasCount()":"f57c302e","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum PolicyHolderMock.NotificationKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"NotificationReceived\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"badlyImplemented\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"badlyImplementedReplace\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emptyRevert\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fail\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failReplace\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"noERC165\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"noV2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"notImplemented\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"onPayoutReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"policyId_\",\"type\":\"uint256\"}],\"name\":\"onPolicyExpired\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oldPolicyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newPolicyId\",\"type\":\"uint256\"}],\"name\":\"onPolicyReplaced\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"badlyImplemented_\",\"type\":\"bool\"}],\"name\":\"setBadlyImplemented\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"badlyImplementedReplace_\",\"type\":\"bool\"}],\"name\":\"setBadlyImplementedReplace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"emptyRevert_\",\"type\":\"bool\"}],\"name\":\"setEmptyRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"fail_\",\"type\":\"bool\"}],\"name\":\"setFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"failReplace_\",\"type\":\"bool\"}],\"name\":\"setFailReplace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"noERC165_\",\"type\":\"bool\"}],\"name\":\"setNoERC165\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"noV2_\",\"type\":\"bool\"}],\"name\":\"setNoV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"notImplemented_\",\"type\":\"bool\"}],\"name\":\"setNotImplemented\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"spendGasCount_\",\"type\":\"uint256\"}],\"name\":\"setSpendGasCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"spendGasCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onPayoutReceived(address,address,uint256,uint256)\":{\"details\":\"See {IPolicyHolderV2-onPayoutReceived}.\"},\"onPolicyReplaced(address,address,uint256,uint256)\":{\"details\":\"See {IPolicyHolderV2-onPolicyReplaced}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/PolicyHolderMock.sol\":\"PolicyHolderMock\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/interfaces/IPolicyHolder.sol\":{\"keccak256\":\"0xddf0d346e5ee68e7ae051048112384409797d7e094a47ab404c6fb6bdf8827c1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98a041a857a99cda900188969283dbf941ec034b641c7abea399c3e4ee94cb64\",\"dweb:/ipfs/QmdjuJipt2jAapKAk2APC1BTcsgajnbkQTthd4LiwA8F7r\"]},\"contracts/interfaces/IPolicyHolderV2.sol\":{\"keccak256\":\"0x978c37bf3a9dfa2942a53ff10d0b6a4ac16510b6f3231ee2415ea6ea5349512f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b777c52b8697624c3504156f409b5238de8ebc778ccdadb5dafb42d6293a559\",\"dweb:/ipfs/QmVgGMPkpCL3ompGN4tHG5jdopkTuGaHQvK7eZUcxCDvh6\"]},\"contracts/mocks/PolicyHolderMock.sol\":{\"keccak256\":\"0x67b2274e63996ef2349e04aaf29f4e1a37ccda8c2ffb0bdf22e70ddbf1378b60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://73c23f6c31a0e0986f9333a2b195d6c5b8277e309ae58ccb8b174eb83ecd26cf\",\"dweb:/ipfs/QmehavrRHmgoV58CQJkUmtFP4PxpVnXc1VWhwm7PJBVDW4\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":24602,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"policyId","offset":0,"slot":"0","type":"t_uint256"},{"astId":24604,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"payout","offset":0,"slot":"1","type":"t_uint256"},{"astId":24606,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"fail","offset":0,"slot":"2","type":"t_bool"},{"astId":24608,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"failReplace","offset":1,"slot":"2","type":"t_bool"},{"astId":24610,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"emptyRevert","offset":2,"slot":"2","type":"t_bool"},{"astId":24612,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"notImplemented","offset":3,"slot":"2","type":"t_bool"},{"astId":24614,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"badlyImplemented","offset":4,"slot":"2","type":"t_bool"},{"astId":24616,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"badlyImplementedReplace","offset":5,"slot":"2","type":"t_bool"},{"astId":24618,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"noERC165","offset":6,"slot":"2","type":"t_bool"},{"astId":24620,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"noV2","offset":7,"slot":"2","type":"t_bool"},{"astId":24622,"contract":"contracts/mocks/PolicyHolderMock.sol:PolicyHolderMock","label":"spendGasCount","offset":0,"slot":"3","type":"t_uint256"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/mocks/PolicyPoolComponentMock.sol":{"PolicyPoolComponentMock":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_25088":{"entryPoint":null,"id":25088,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":59,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:327:88","nodeType":"YulBlock","src":"0:327:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"116:209:88","nodeType":"YulBlock","src":"116:209:88","statements":[{"body":{"nativeSrc":"162:16:88","nodeType":"YulBlock","src":"162:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"171:1:88","nodeType":"YulLiteral","src":"171:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"174:1:88","nodeType":"YulLiteral","src":"174:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"164:6:88","nodeType":"YulIdentifier","src":"164:6:88"},"nativeSrc":"164:12:88","nodeType":"YulFunctionCall","src":"164:12:88"},"nativeSrc":"164:12:88","nodeType":"YulExpressionStatement","src":"164:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"137:7:88","nodeType":"YulIdentifier","src":"137:7:88"},{"name":"headStart","nativeSrc":"146:9:88","nodeType":"YulIdentifier","src":"146:9:88"}],"functionName":{"name":"sub","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:23:88","nodeType":"YulFunctionCall","src":"133:23:88"},{"kind":"number","nativeSrc":"158:2:88","nodeType":"YulLiteral","src":"158:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"129:3:88","nodeType":"YulIdentifier","src":"129:3:88"},"nativeSrc":"129:32:88","nodeType":"YulFunctionCall","src":"129:32:88"},"nativeSrc":"126:52:88","nodeType":"YulIf","src":"126:52:88"},{"nativeSrc":"187:29:88","nodeType":"YulVariableDeclaration","src":"187:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"206:9:88","nodeType":"YulIdentifier","src":"206:9:88"}],"functionName":{"name":"mload","nativeSrc":"200:5:88","nodeType":"YulIdentifier","src":"200:5:88"},"nativeSrc":"200:16:88","nodeType":"YulFunctionCall","src":"200:16:88"},"variables":[{"name":"value","nativeSrc":"191:5:88","nodeType":"YulTypedName","src":"191:5:88","type":""}]},{"body":{"nativeSrc":"279:16:88","nodeType":"YulBlock","src":"279:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"288:1:88","nodeType":"YulLiteral","src":"288:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"291:1:88","nodeType":"YulLiteral","src":"291:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"281:6:88","nodeType":"YulIdentifier","src":"281:6:88"},"nativeSrc":"281:12:88","nodeType":"YulFunctionCall","src":"281:12:88"},"nativeSrc":"281:12:88","nodeType":"YulExpressionStatement","src":"281:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"238:5:88","nodeType":"YulIdentifier","src":"238:5:88"},{"arguments":[{"name":"value","nativeSrc":"249:5:88","nodeType":"YulIdentifier","src":"249:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"264:3:88","nodeType":"YulLiteral","src":"264:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"269:1:88","nodeType":"YulLiteral","src":"269:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"260:3:88","nodeType":"YulIdentifier","src":"260:3:88"},"nativeSrc":"260:11:88","nodeType":"YulFunctionCall","src":"260:11:88"},{"kind":"number","nativeSrc":"273:1:88","nodeType":"YulLiteral","src":"273:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"256:3:88","nodeType":"YulIdentifier","src":"256:3:88"},"nativeSrc":"256:19:88","nodeType":"YulFunctionCall","src":"256:19:88"}],"functionName":{"name":"and","nativeSrc":"245:3:88","nodeType":"YulIdentifier","src":"245:3:88"},"nativeSrc":"245:31:88","nodeType":"YulFunctionCall","src":"245:31:88"}],"functionName":{"name":"eq","nativeSrc":"235:2:88","nodeType":"YulIdentifier","src":"235:2:88"},"nativeSrc":"235:42:88","nodeType":"YulFunctionCall","src":"235:42:88"}],"functionName":{"name":"iszero","nativeSrc":"228:6:88","nodeType":"YulIdentifier","src":"228:6:88"},"nativeSrc":"228:50:88","nodeType":"YulFunctionCall","src":"228:50:88"},"nativeSrc":"225:70:88","nodeType":"YulIf","src":"225:70:88"},{"nativeSrc":"304:15:88","nodeType":"YulAssignment","src":"304:15:88","value":{"name":"value","nativeSrc":"314:5:88","nodeType":"YulIdentifier","src":"314:5:88"},"variableNames":[{"name":"value0","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"14:311:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:88","nodeType":"YulTypedName","src":"82:9:88","type":""},{"name":"dataEnd","nativeSrc":"93:7:88","nodeType":"YulTypedName","src":"93:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"105:6:88","nodeType":"YulTypedName","src":"105:6:88","type":""}],"src":"14:311:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052348015600e575f5ffd5b506040516101a23803806101a2833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b60805161012561007d5f395f606501526101255ff3fe6080604052348015600e575f5ffd5b50600436106030575f3560e01c806301ffc9a71460345780634d15eb03146058575b5f5ffd5b6043603f36600460c3565b608e565b60405190151581526020015b60405180910390f35b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152602001604f565b5f6001600160e01b031982166301ffc9a760e01b148060bd57506001600160e01b03198216634d15eb0360e01b145b92915050565b5f6020828403121560d2575f5ffd5b81356001600160e01b03198116811460e8575f5ffd5b939250505056fea2646970667358221220f1eb7420e4b253fba6a8f31a6ba8353cc65c2fa0e7493c43f3ff983cc1bc9d8064736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1A2 CODESIZE SUB DUP1 PUSH2 0x1A2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x3B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x66 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x4A JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x5F JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x125 PUSH2 0x7D PUSH0 CODECOPY PUSH0 PUSH1 0x65 ADD MSTORE PUSH2 0x125 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x30 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH1 0x34 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH1 0x58 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x43 PUSH1 0x3F CALLDATASIZE PUSH1 0x4 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4F JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH1 0xBD JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH1 0xE8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xEB PUSH21 0x20E4B253FBA6A8F31A6BA8353CC65C2FA0E7493C43 RETURN SELFDESTRUCT SWAP9 EXTCODECOPY 0xC1 0xBC SWAP14 DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"282:548:84:-:0;;;390:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;433:25:84;;;282:548;;14:311:88;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;200:16;;-1:-1:-1;;;;;245:31:88;;235:42;;225:70;;291:1;288;281:12;225:70;314:5;14:311;-1:-1:-1;;;14:311:88:o;:::-;282:548:84;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@policyPool_25098":{"entryPoint":null,"id":25098,"parameterSlots":0,"returnSlots":1},"@supportsInterface_25122":{"entryPoint":142,"id":25122,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":195,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:723:88","nodeType":"YulBlock","src":"0:723:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"619:102:88","nodeType":"YulBlock","src":"619:102:88","statements":[{"nativeSrc":"629:26:88","nodeType":"YulAssignment","src":"629:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"641:9:88","nodeType":"YulIdentifier","src":"641:9:88"},{"kind":"number","nativeSrc":"652:2:88","nodeType":"YulLiteral","src":"652:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"637:3:88","nodeType":"YulIdentifier","src":"637:3:88"},"nativeSrc":"637:18:88","nodeType":"YulFunctionCall","src":"637:18:88"},"variableNames":[{"name":"tail","nativeSrc":"629:4:88","nodeType":"YulIdentifier","src":"629:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"671:9:88","nodeType":"YulIdentifier","src":"671:9:88"},{"arguments":[{"name":"value0","nativeSrc":"686:6:88","nodeType":"YulIdentifier","src":"686:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"702:3:88","nodeType":"YulLiteral","src":"702:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"707:1:88","nodeType":"YulLiteral","src":"707:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"698:3:88","nodeType":"YulIdentifier","src":"698:3:88"},"nativeSrc":"698:11:88","nodeType":"YulFunctionCall","src":"698:11:88"},{"kind":"number","nativeSrc":"711:1:88","nodeType":"YulLiteral","src":"711:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"694:3:88","nodeType":"YulIdentifier","src":"694:3:88"},"nativeSrc":"694:19:88","nodeType":"YulFunctionCall","src":"694:19:88"}],"functionName":{"name":"and","nativeSrc":"682:3:88","nodeType":"YulIdentifier","src":"682:3:88"},"nativeSrc":"682:32:88","nodeType":"YulFunctionCall","src":"682:32:88"}],"functionName":{"name":"mstore","nativeSrc":"664:6:88","nodeType":"YulIdentifier","src":"664:6:88"},"nativeSrc":"664:51:88","nodeType":"YulFunctionCall","src":"664:51:88"},"nativeSrc":"664:51:88","nodeType":"YulExpressionStatement","src":"664:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"497:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"588:9:88","nodeType":"YulTypedName","src":"588:9:88","type":""},{"name":"value0","nativeSrc":"599:6:88","nodeType":"YulTypedName","src":"599:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"610:4:88","nodeType":"YulTypedName","src":"610:4:88","type":""}],"src":"497:224:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"25077":[{"length":32,"start":101}]},"linkReferences":{},"object":"6080604052348015600e575f5ffd5b50600436106030575f3560e01c806301ffc9a71460345780634d15eb03146058575b5f5ffd5b6043603f36600460c3565b608e565b60405190151581526020015b60405180910390f35b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152602001604f565b5f6001600160e01b031982166301ffc9a760e01b148060bd57506001600160e01b03198216634d15eb0360e01b145b92915050565b5f6020828403121560d2575f5ffd5b81356001600160e01b03198116811460e8575f5ffd5b939250505056fea2646970667358221220f1eb7420e4b253fba6a8f31a6ba8353cc65c2fa0e7493c43f3ff983cc1bc9d8064736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x30 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH1 0x34 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH1 0x58 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x43 PUSH1 0x3F CALLDATASIZE PUSH1 0x4 PUSH1 0xC3 JUMP JUMPDEST PUSH1 0x8E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4F JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH1 0xBD JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xD2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH1 0xE8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xEB PUSH21 0x20E4B253FBA6A8F31A6BA8353CC65C2FA0E7493C43 RETURN SELFDESTRUCT SWAP9 EXTCODECOPY 0xC1 0xBC SWAP14 DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"282:548:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;622:206;;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;622:206:84;;;;;;;;467:96;;;-1:-1:-1;;;;;547:11:84;682:32:88;664:51;;652:2;637:18;467:96:84;497:224:88;622:206:84;707:4;-1:-1:-1;;;;;;726:40:84;;-1:-1:-1;;;726:40:84;;:97;;-1:-1:-1;;;;;;;770:53:84;;-1:-1:-1;;;770:53:84;726:97;719:104;622:206;-1:-1:-1;;622:206:84:o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:88:o"},"methodIdentifiers":{"policyPool()":"4d15eb03","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/PolicyPoolComponentMock.sol\":\"PolicyPoolComponentMock\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/mocks/PolicyPoolComponentMock.sol\":{\"keccak256\":\"0x125fb3bb9bcc0637d61074d0ca6afaf32e450448cc17f7b30764f1488ce3930d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://78cdc24e1aafa791a2ab320e32d0b0f0468dc0e55f4c02c9164cddc7edc019bf\",\"dweb:/ipfs/QmeRVvsgQyv5tceNxkum29SvzLTre2sz4HHMnJQA5eo7J9\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/mocks/PolicyPoolMock.sol":{"PolicyPoolMock":{"abi":[{"inputs":[{"internalType":"contract IERC20Metadata","name":"currency_","type":"address"},{"internalType":"contract IAccessManager","name":"access_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"indexed":false,"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"NewPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldPolicyId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newPolicyId","type":"uint256"}],"name":"PolicyReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"indexed":true,"internalType":"uint256","name":"policyId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payout","type":"uint256"}],"name":"PolicyResolved","type":"event"},{"inputs":[],"name":"MAX_INT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"access","outputs":[{"internalType":"contract IAccessManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"getPolicyHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"rmParams","type":"tuple"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"uint40","name":"start","type":"uint40"}],"name":"initializeAndEmitPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"policyId","type":"uint256"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy_","type":"tuple"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"bool","name":"customerWon","type":"bool"}],"name":"resolvePolicyFullPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"contract IEToken","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_25181":{"entryPoint":null,"id":25181,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":112,"id":null,"parameterSlots":2,"returnSlots":2},"validator_revert_contract_IERC20Metadata":{"entryPoint":90,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:632:88","nodeType":"YulBlock","src":"0:632:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"75:86:88","nodeType":"YulBlock","src":"75:86:88","statements":[{"body":{"nativeSrc":"139:16:88","nodeType":"YulBlock","src":"139:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"151:1:88","nodeType":"YulLiteral","src":"151:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"141:6:88","nodeType":"YulIdentifier","src":"141:6:88"},"nativeSrc":"141:12:88","nodeType":"YulFunctionCall","src":"141:12:88"},"nativeSrc":"141:12:88","nodeType":"YulExpressionStatement","src":"141:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"98:5:88","nodeType":"YulIdentifier","src":"98:5:88"},{"arguments":[{"name":"value","nativeSrc":"109:5:88","nodeType":"YulIdentifier","src":"109:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"124:3:88","nodeType":"YulLiteral","src":"124:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"129:1:88","nodeType":"YulLiteral","src":"129:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"120:3:88","nodeType":"YulIdentifier","src":"120:3:88"},"nativeSrc":"120:11:88","nodeType":"YulFunctionCall","src":"120:11:88"},{"kind":"number","nativeSrc":"133:1:88","nodeType":"YulLiteral","src":"133:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"116:3:88","nodeType":"YulIdentifier","src":"116:3:88"},"nativeSrc":"116:19:88","nodeType":"YulFunctionCall","src":"116:19:88"}],"functionName":{"name":"and","nativeSrc":"105:3:88","nodeType":"YulIdentifier","src":"105:3:88"},"nativeSrc":"105:31:88","nodeType":"YulFunctionCall","src":"105:31:88"}],"functionName":{"name":"eq","nativeSrc":"95:2:88","nodeType":"YulIdentifier","src":"95:2:88"},"nativeSrc":"95:42:88","nodeType":"YulFunctionCall","src":"95:42:88"}],"functionName":{"name":"iszero","nativeSrc":"88:6:88","nodeType":"YulIdentifier","src":"88:6:88"},"nativeSrc":"88:50:88","nodeType":"YulFunctionCall","src":"88:50:88"},"nativeSrc":"85:70:88","nodeType":"YulIf","src":"85:70:88"}]},"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"14:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"64:5:88","nodeType":"YulTypedName","src":"64:5:88","type":""}],"src":"14:147:88"},{"body":{"nativeSrc":"311:319:88","nodeType":"YulBlock","src":"311:319:88","statements":[{"body":{"nativeSrc":"357:16:88","nodeType":"YulBlock","src":"357:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"369:1:88","nodeType":"YulLiteral","src":"369:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"359:6:88","nodeType":"YulIdentifier","src":"359:6:88"},"nativeSrc":"359:12:88","nodeType":"YulFunctionCall","src":"359:12:88"},"nativeSrc":"359:12:88","nodeType":"YulExpressionStatement","src":"359:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"332:7:88","nodeType":"YulIdentifier","src":"332:7:88"},{"name":"headStart","nativeSrc":"341:9:88","nodeType":"YulIdentifier","src":"341:9:88"}],"functionName":{"name":"sub","nativeSrc":"328:3:88","nodeType":"YulIdentifier","src":"328:3:88"},"nativeSrc":"328:23:88","nodeType":"YulFunctionCall","src":"328:23:88"},{"kind":"number","nativeSrc":"353:2:88","nodeType":"YulLiteral","src":"353:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"324:3:88","nodeType":"YulIdentifier","src":"324:3:88"},"nativeSrc":"324:32:88","nodeType":"YulFunctionCall","src":"324:32:88"},"nativeSrc":"321:52:88","nodeType":"YulIf","src":"321:52:88"},{"nativeSrc":"382:29:88","nodeType":"YulVariableDeclaration","src":"382:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"401:9:88","nodeType":"YulIdentifier","src":"401:9:88"}],"functionName":{"name":"mload","nativeSrc":"395:5:88","nodeType":"YulIdentifier","src":"395:5:88"},"nativeSrc":"395:16:88","nodeType":"YulFunctionCall","src":"395:16:88"},"variables":[{"name":"value","nativeSrc":"386:5:88","nodeType":"YulTypedName","src":"386:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"461:5:88","nodeType":"YulIdentifier","src":"461:5:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"420:40:88","nodeType":"YulIdentifier","src":"420:40:88"},"nativeSrc":"420:47:88","nodeType":"YulFunctionCall","src":"420:47:88"},"nativeSrc":"420:47:88","nodeType":"YulExpressionStatement","src":"420:47:88"},{"nativeSrc":"476:15:88","nodeType":"YulAssignment","src":"476:15:88","value":{"name":"value","nativeSrc":"486:5:88","nodeType":"YulIdentifier","src":"486:5:88"},"variableNames":[{"name":"value0","nativeSrc":"476:6:88","nodeType":"YulIdentifier","src":"476:6:88"}]},{"nativeSrc":"500:40:88","nodeType":"YulVariableDeclaration","src":"500:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"525:9:88","nodeType":"YulIdentifier","src":"525:9:88"},{"kind":"number","nativeSrc":"536:2:88","nodeType":"YulLiteral","src":"536:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"521:3:88","nodeType":"YulIdentifier","src":"521:3:88"},"nativeSrc":"521:18:88","nodeType":"YulFunctionCall","src":"521:18:88"}],"functionName":{"name":"mload","nativeSrc":"515:5:88","nodeType":"YulIdentifier","src":"515:5:88"},"nativeSrc":"515:25:88","nodeType":"YulFunctionCall","src":"515:25:88"},"variables":[{"name":"value_1","nativeSrc":"504:7:88","nodeType":"YulTypedName","src":"504:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"590:7:88","nodeType":"YulIdentifier","src":"590:7:88"}],"functionName":{"name":"validator_revert_contract_IERC20Metadata","nativeSrc":"549:40:88","nodeType":"YulIdentifier","src":"549:40:88"},"nativeSrc":"549:49:88","nodeType":"YulFunctionCall","src":"549:49:88"},"nativeSrc":"549:49:88","nodeType":"YulExpressionStatement","src":"549:49:88"},{"nativeSrc":"607:17:88","nodeType":"YulAssignment","src":"607:17:88","value":{"name":"value_1","nativeSrc":"617:7:88","nodeType":"YulIdentifier","src":"617:7:88"},"variableNames":[{"name":"value1","nativeSrc":"607:6:88","nodeType":"YulIdentifier","src":"607:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"166:464:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"269:9:88","nodeType":"YulTypedName","src":"269:9:88","type":""},{"name":"dataEnd","nativeSrc":"280:7:88","nodeType":"YulTypedName","src":"280:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"292:6:88","nodeType":"YulTypedName","src":"292:6:88","type":""},{"name":"value1","nativeSrc":"300:6:88","nodeType":"YulTypedName","src":"300:6:88","type":""}],"src":"166:464:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IERC20Metadata(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IERC20Metadata(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IERC20Metadata(value_1)\n        value1 := value_1\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b5060405161117a38038061117a833981016040819052602b916070565b5f80546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560a3565b6001600160a01b0381168114606d575f5ffd5b50565b5f5f604083850312156080575f5ffd5b8251608981605a565b6020840151909250609881605a565b809150509250929050565b6110ca806100b05f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806371907f171161008857806382afd23b1161006357806382afd23b146101c2578063e5a6b10f146101f3578063f3fef3a314610203578063ffa600e314610216575f5ffd5b806371907f171461017f578063792da09e146101905780637a702b3c146101af575f5ffd5b806361d027b3116100c357806361d027b31461012c5780636769a76f1461014657806368d9523c146101595780636af6f1ef1461016c575f5ffd5b8063098d3228146100e95780633ed7c1ae1461010457806347e7ef2414610117575b5f5ffd5b6100f15f1981565b6040519081526020015b60405180910390f35b6100f1610112366004610cb9565b610229565b61012a610125366004610d12565b6102f2565b005b5f5b6040516001600160a01b0390911681526020016100fb565b6100f1610154366004610d3c565b61033f565b61012a610167366004610d8b565b6103c9565b61012a61017a366004610e77565b610439565b6001546001600160a01b031661012e565b6100f161019e366004610e99565b5f9081526003602052604090205490565b61012a6101bd366004610eb0565b610454565b6101e36101d0366004610e99565b5f90815260036020526040902054151590565b60405190151581526020016100fb565b5f546001600160a01b031661012e565b6100f1610211366004610d12565b610470565b61012a610224366004610edb565b6104ba565b5f816001600160601b031660608561016001516001600160a01b0316901b6102519190610f2b565b845261025c846104e1565b84515f90815260036020526040908190209190915561016086015190516001600160a01b038216907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b906102b1908890610f44565b60405180910390a28451865160405133907f4ff4ac703cb703b7ea535d47e65e64b4cabf11b3e2eb41f152dab17971953add905f90a4505091519392505050565b60405162461bcd60e51b815260206004820152601760248201527f4e6f7420496d706c656d656e746564206465706f73697400000000000000000060448201526064015b60405180910390fd5b5f816001600160601b031660608661016001516001600160a01b0316901b6103679190610f2b565b8552610372856104e1565b85515f9081526003602052604090819020919091555133907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b906103b7908890610f44565b60405180910390a25050915192915050565b5f6103ec88888888888864ffffffffff8916156103e6578861055f565b4261055f565b9050876001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b826040516104279190610f44565b60405180910390a25050505050505050565b61045161044b36839003830183611013565b5f6106cf565b50565b61046c61046636849003840184611013565b826106cf565b5050565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420496d706c656d656e746564207769746864726177000000000000000060448201525f90606401610336565b61046c6104cc36849003840184611013565b826104d7575f6106cf565b83602001356106cf565b5f816040516020016104f39190610f44565b60408051601f19818403018152919052805160209091012090508061055a5760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f74206265203000000000000000006044820152606401610336565b919050565b610567610ace565b848611156105c25760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610336565b6105ca610ace565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f61061489888888886108a5565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e0808501919091528101519091508810156106ad5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610336565b60e08101516106bc908961102e565b6101008301525098975050505050505050565b81515f036107125760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610336565b81515f9081526003602052604090205461072b836104e1565b1461076d5760405162461bcd60e51b8152602060048201526012602482015271090c2e6d040c8decae6dc4ee840dac2e8c6d60731b6044820152606401610336565b8161016001516001600160a01b0316336001600160a01b0316146107ef5760405162461bcd60e51b815260206004820152603360248201527f4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f604482015272207265736f6c76652074686520706f6c69637960681b6064820152608401610336565b81515f908152600260208181526040808420848155600181018590559283018490556003808401859055600484018590556005840185905560068401859055600784018590556008840185905560098401859055600a8401859055600b90930180546001600160f01b0319169055855184529181528183209290925583519051838152909133917f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e910160405180910390a35050565b6108e56040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516108fd906108f6908690610a98565b8690610a98565b8152602086015161090f908690610a98565b602082018190528151101561093957805160208201805161093190839061102e565b905250610940565b5f60208201525b6040860151610950908690610a98565b6040820152602081015181516109669190610f2b565b8160400151111561099b57602081015181516109829190610f2b565b81604001818151610993919061102e565b9052506109a2565b5f60408201525b6109df6301e133806109b48486611041565b64ffffffffff168860a001516109ca919061105e565b6109d49190611075565b602083015190610a98565b6060820152610a216301e133806109f68486611041565b64ffffffffff168860c00151610a0c919061105e565b610a169190611075565b604083015190610a98565b6080820181905260608201515f91610a3891610f2b565b9050610a51876080015182610a9890919063ffffffff16565b60608801518351610a6191610a98565b610a6b9190610f2b565b60a0830181905282518291610a7f91610f2b565b610a899190610f2b565b60e08301525095945050505050565b5f81156706f05b59d3b200001983900484111517610ab4575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b6040516101c0810167ffffffffffffffff81118282101715610b7657634e487b7160e01b5f52604160045260245ffd5b60405290565b60405160e0810167ffffffffffffffff81118282101715610b7657634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610451575f5ffd5b803561055a81610bab565b803564ffffffffff8116811461055a575f5ffd5b5f6101c08284031215610bef575f5ffd5b610bf7610b46565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e080840135908201526101008084013590820152610120808401359082015261014080840135908201529050610c716101608301610bbf565b610160820152610c846101808301610bca565b610180820152610c976101a08301610bca565b6101a082015292915050565b80356001600160601b038116811461055a575f5ffd5b5f5f5f5f6103c08587031215610ccd575f5ffd5b610cd78686610bde565b9350610ce7866101c08701610bde565b9250610380850135610cf881610bab565b9150610d076103a08601610ca3565b905092959194509250565b5f5f60408385031215610d23575f5ffd5b8235610d2e81610bab565b946020939093013593505050565b5f5f5f5f6102208587031215610d50575f5ffd5b610d5a8686610bde565b93506101c0850135610d6b81610bab565b92506101e0850135610d7c81610bab565b9150610d076102008601610ca3565b5f5f5f5f5f5f5f8789036101a0811215610da3575f5ffd5b8835610dae81610bab565b975060e0601f1982011215610dc1575f5ffd5b50610dca610b7c565b60208981013582526040808b0135918301919091526060808b0135918301919091526080808b01359183019190915260a0808b01359183019190915260c0808b01359183019190915260e08a0135908201529550610100880135945061012088013593506101408801359250610e436101608901610bca565b9150610e526101808901610bca565b905092959891949750929550565b5f6101c08284031215610e71575f5ffd5b50919050565b5f6101c08284031215610e88575f5ffd5b610e928383610e60565b9392505050565b5f60208284031215610ea9575f5ffd5b5035919050565b5f5f6101e08385031215610ec2575f5ffd5b610ecc8484610e60565b946101c0939093013593505050565b5f5f6101e08385031215610eed575f5ffd5b610ef78484610e60565b91506101c08301358015158114610f0c575f5ffd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610f3e57610f3e610f17565b92915050565b5f6101c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100830151610100830152610120830151610120830152610140830151610140830152610160830151610fd66101608401826001600160a01b03169052565b50610180830151610ff161018084018264ffffffffff169052565b506101a083015161100c6101a084018264ffffffffff169052565b5092915050565b5f6101c08284031215611024575f5ffd5b610e928383610bde565b81810381811115610f3e57610f3e610f17565b64ffffffffff8281168282160390811115610f3e57610f3e610f17565b8082028115828204841417610f3e57610f3e610f17565b5f8261108f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202875fb0cf7578627344944a973d9980bf2bde9372eb00d48a3697b0d51135c5d64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x117A CODESIZE SUB DUP1 PUSH2 0x117A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x70 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH1 0xA3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x6D JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x80 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x89 DUP2 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x98 DUP2 PUSH1 0x5A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x10CA DUP1 PUSH2 0xB0 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x71907F17 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x82AFD23B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x216 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x71907F17 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x792DA09E EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x1AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x61D027B3 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x6769A76F EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x68D9523C EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x6AF6F1EF EQ PUSH2 0x16C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x98D3228 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x3ED7C1AE EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x117 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xF1 PUSH0 NOT DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH2 0x112 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB9 JUMP JUMPDEST PUSH2 0x229 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0xD12 JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST STOP JUMPDEST PUSH0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFB JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x33F JUMP JUMPDEST PUSH2 0x12A PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xE77 JUMP JUMPDEST PUSH2 0x439 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x12E JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x19E CALLDATASIZE PUSH1 0x4 PUSH2 0xE99 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x1BD CALLDATASIZE PUSH1 0x4 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x454 JUMP JUMPDEST PUSH2 0x1E3 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE99 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFB JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x12E JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xD12 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xEDB JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x60 DUP6 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 SHL PUSH2 0x251 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP5 MSTORE PUSH2 0x25C DUP5 PUSH2 0x4E1 JUMP JUMPDEST DUP5 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x160 DUP7 ADD MLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B SWAP1 PUSH2 0x2B1 SWAP1 DUP9 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP5 MLOAD DUP7 MLOAD PUSH1 0x40 MLOAD CALLER SWAP1 PUSH32 0x4FF4AC703CB703B7EA535D47E65E64B4CABF11B3E2EB41F152DAB17971953ADD SWAP1 PUSH0 SWAP1 LOG4 POP POP SWAP2 MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420496D706C656D656E746564206465706F736974000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x60 DUP7 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 SHL PUSH2 0x367 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP6 MSTORE PUSH2 0x372 DUP6 PUSH2 0x4E1 JUMP JUMPDEST DUP6 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD CALLER SWAP1 PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B SWAP1 PUSH2 0x3B7 SWAP1 DUP9 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP2 MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3EC DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH5 0xFFFFFFFFFF DUP10 AND ISZERO PUSH2 0x3E6 JUMPI DUP9 PUSH2 0x55F JUMP JUMPDEST TIMESTAMP PUSH2 0x55F JUMP JUMPDEST SWAP1 POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP3 PUSH1 0x40 MLOAD PUSH2 0x427 SWAP2 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x451 PUSH2 0x44B CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x1013 JUMP JUMPDEST PUSH0 PUSH2 0x6CF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x46C PUSH2 0x466 CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x1013 JUMP JUMPDEST DUP3 PUSH2 0x6CF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420496D706C656D656E7465642077697468647261770000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST PUSH2 0x46C PUSH2 0x4CC CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x1013 JUMP JUMPDEST DUP3 PUSH2 0x4D7 JUMPI PUSH0 PUSH2 0x6CF JUMP JUMPDEST DUP4 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x6CF JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP1 POP DUP1 PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963793A20686173682063616E6E6F7420626520300000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x567 PUSH2 0xACE JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x336 JUMP JUMPDEST PUSH2 0x5CA PUSH2 0xACE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x614 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x8A5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x6BC SWAP1 DUP10 PUSH2 0x102E JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH0 SUB PUSH2 0x712 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x141BDB1A58DE481B9BDD08199BDD5B99 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x72B DUP4 PUSH2 0x4E1 JUMP JUMPDEST EQ PUSH2 0x76D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x90C2E6D040C8DECAE6DC4EE840DAC2E8C6D PUSH1 0x73 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79207269736B4D6F64756C6520697320617574686F72697A656420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x207265736F6C76652074686520706F6C696379 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP3 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x3 DUP1 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0xA DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0xB SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND SWAP1 SSTORE DUP6 MLOAD DUP5 MSTORE SWAP2 DUP2 MSTORE DUP2 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP4 MLOAD SWAP1 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x54F4A270EA08F88DC23B2520D6B063FECB24D956C4496F447926D736338F545E SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x8E5 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x8FD SWAP1 PUSH2 0x8F6 SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x90F SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x939 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x931 SWAP1 DUP4 SWAP1 PUSH2 0x102E JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x950 SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x966 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x99B JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x982 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x102E JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x9DF PUSH4 0x1E13380 PUSH2 0x9B4 DUP5 DUP7 PUSH2 0x1041 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x9CA SWAP2 SWAP1 PUSH2 0x105E JUMP JUMPDEST PUSH2 0x9D4 SWAP2 SWAP1 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0xA21 PUSH4 0x1E13380 PUSH2 0x9F6 DUP5 DUP7 PUSH2 0x1041 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0xA0C SWAP2 SWAP1 PUSH2 0x105E JUMP JUMPDEST PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0xA38 SWAP2 PUSH2 0xF2B JUMP JUMPDEST SWAP1 POP PUSH2 0xA51 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0xA98 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0xA61 SWAP2 PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0xA7F SWAP2 PUSH2 0xF2B JUMP JUMPDEST PUSH2 0xA89 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0xAB4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x55A DUP2 PUSH2 0xBAB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x55A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEF JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xBF7 PUSH2 0xB46 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0xC71 PUSH2 0x160 DUP4 ADD PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0xC84 PUSH2 0x180 DUP4 ADD PUSH2 0xBCA JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0xC97 PUSH2 0x1A0 DUP4 ADD PUSH2 0xBCA JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x55A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCCD JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xCD7 DUP7 DUP7 PUSH2 0xBDE JUMP JUMPDEST SWAP4 POP PUSH2 0xCE7 DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0xBDE JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0xCF8 DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD07 PUSH2 0x3A0 DUP7 ADD PUSH2 0xCA3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xD2E DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD50 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD5A DUP7 DUP7 PUSH2 0xBDE JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0xD6B DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0xD7C DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD07 PUSH2 0x200 DUP7 ADD PUSH2 0xCA3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 DUP8 DUP10 SUB PUSH2 0x1A0 DUP2 SLT ISZERO PUSH2 0xDA3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0xDAE DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP8 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0xDC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0xDCA PUSH2 0xB7C JUMP JUMPDEST PUSH1 0x20 DUP10 DUP2 ADD CALLDATALOAD DUP3 MSTORE PUSH1 0x40 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xC0 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xE0 DUP11 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP6 POP PUSH2 0x100 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x120 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x140 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH2 0xE43 PUSH2 0x160 DUP10 ADD PUSH2 0xBCA JUMP JUMPDEST SWAP2 POP PUSH2 0xE52 PUSH2 0x180 DUP10 ADD PUSH2 0xBCA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE71 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE92 DUP4 DUP4 PUSH2 0xE60 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xECC DUP5 DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEED JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xEF7 DUP5 DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH2 0xFD6 PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP4 ADD MLOAD PUSH2 0xFF1 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP4 ADD MLOAD PUSH2 0x100C PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1024 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE92 DUP4 DUP4 PUSH2 0xBDE JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x108F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 PUSH22 0xFB0CF7578627344944A973D9980BF2BDE9372EB00D48 LOG3 PUSH10 0x7B0D51135C5D64736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"484:3641:85:-:0;;;857:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;925:9;:21;;-1:-1:-1;;;;;925:21:85;;;-1:-1:-1;;;;;;925:21:85;;;;;;;;952:17;;;;;;;;;;;484:3641;;14:147:88;-1:-1:-1;;;;;105:31:88;;95:42;;85:70;;151:1;148;141:12;85:70;14:147;:::o;166:464::-;292:6;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;401:9;395:16;420:47;461:5;420:47;:::i;:::-;536:2;521:18;;515:25;486:5;;-1:-1:-1;549:49:88;515:25;549:49;:::i;:::-;617:7;607:17;;;166:464;;;;;:::o;:::-;484:3641:85;;;;;;"},"deployedBytecode":{"functionDebugData":{"@MAX_INT_25148":{"entryPoint":null,"id":25148,"parameterSlots":0,"returnSlots":0},"@_resolvePolicy_25405":{"entryPoint":1743,"id":25405,"parameterSlots":2,"returnSlots":0},"@access_25201":{"entryPoint":null,"id":25201,"parameterSlots":0,"returnSlots":1},"@currency_25191":{"entryPoint":null,"id":25191,"parameterSlots":0,"returnSlots":1},"@deposit_25497":{"entryPoint":754,"id":25497,"parameterSlots":2,"returnSlots":0},"@expirePolicy_25433":{"entryPoint":1081,"id":25433,"parameterSlots":1,"returnSlots":0},"@getMinimumPremium_15158":{"entryPoint":2213,"id":15158,"parameterSlots":5,"returnSlots":1},"@getPolicyHash_25483":{"entryPoint":null,"id":25483,"parameterSlots":1,"returnSlots":1},"@hash_15438":{"entryPoint":1249,"id":15438,"parameterSlots":1,"returnSlots":1},"@initializeAndEmitPolicy_25564":{"entryPoint":969,"id":25564,"parameterSlots":7,"returnSlots":0},"@initialize_15300":{"entryPoint":1375,"id":15300,"parameterSlots":7,"returnSlots":1},"@isActive_25470":{"entryPoint":null,"id":25470,"parameterSlots":1,"returnSlots":1},"@newPolicy_25270":{"entryPoint":831,"id":25270,"parameterSlots":4,"returnSlots":1},"@replacePolicy_25342":{"entryPoint":553,"id":25342,"parameterSlots":4,"returnSlots":1},"@resolvePolicyFullPayout_25452":{"entryPoint":1210,"id":25452,"parameterSlots":2,"returnSlots":0},"@resolvePolicy_25420":{"entryPoint":1108,"id":25420,"parameterSlots":2,"returnSlots":0},"@treasury_25213":{"entryPoint":null,"id":25213,"parameterSlots":0,"returnSlots":1},"@wadMul_23186":{"entryPoint":2712,"id":23186,"parameterSlots":2,"returnSlots":1},"@withdraw_25513":{"entryPoint":1136,"id":25513,"parameterSlots":2,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":3007,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData":{"entryPoint":3038,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":3680,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IEToken_$23549t_uint256":{"entryPoint":3346,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_IRiskModule_$23983t_struct$_Params_$23926_memory_ptrt_uint256t_uint256t_uint256t_uint40t_uint40":{"entryPoint":3467,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr":{"entryPoint":3703,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool":{"entryPoint":3803,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":3760,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr":{"entryPoint":4115,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96":{"entryPoint":3388,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96":{"entryPoint":3257,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":3737,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":3018,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":3235,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IAccessManager":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4056b1a890a2c3818b7771ad8e47567b7f58fbbd321bfc4356d4990f533b901a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8c6e8f8f1986f173d0b52c2c973e7c4feadfc6927d78aa5a06bfebe82321d431__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d1c133ca691942c2b9c7b9bbdea503640377a82463f9986cfe69df5983647c2d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dfce19cc5c9d715e1c1447fc4d85b7dd2f48c5fc48e7b8cdfb74121bafc6775d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed":{"entryPoint":3908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":2940,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_1633":{"entryPoint":2886,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3883,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4213,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4190,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4142,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":4161,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":3863,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IRiskModule":{"entryPoint":2987,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14797:88","nodeType":"YulBlock","src":"0:14797:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"115:76:88","nodeType":"YulBlock","src":"115:76:88","statements":[{"nativeSrc":"125:26:88","nodeType":"YulAssignment","src":"125:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:88","nodeType":"YulIdentifier","src":"137:9:88"},{"kind":"number","nativeSrc":"148:2:88","nodeType":"YulLiteral","src":"148:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:18:88","nodeType":"YulFunctionCall","src":"133:18:88"},"variableNames":[{"name":"tail","nativeSrc":"125:4:88","nodeType":"YulIdentifier","src":"125:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:88","nodeType":"YulIdentifier","src":"167:9:88"},{"name":"value0","nativeSrc":"178:6:88","nodeType":"YulIdentifier","src":"178:6:88"}],"functionName":{"name":"mstore","nativeSrc":"160:6:88","nodeType":"YulIdentifier","src":"160:6:88"},"nativeSrc":"160:25:88","nodeType":"YulFunctionCall","src":"160:25:88"},"nativeSrc":"160:25:88","nodeType":"YulExpressionStatement","src":"160:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:88","nodeType":"YulTypedName","src":"84:9:88","type":""},{"name":"value0","nativeSrc":"95:6:88","nodeType":"YulTypedName","src":"95:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:88","nodeType":"YulTypedName","src":"106:4:88","type":""}],"src":"14:177:88"},{"body":{"nativeSrc":"242:306:88","nodeType":"YulBlock","src":"242:306:88","statements":[{"nativeSrc":"252:19:88","nodeType":"YulAssignment","src":"252:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"268:2:88","nodeType":"YulLiteral","src":"268:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"262:5:88","nodeType":"YulIdentifier","src":"262:5:88"},"nativeSrc":"262:9:88","nodeType":"YulFunctionCall","src":"262:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"252:6:88","nodeType":"YulIdentifier","src":"252:6:88"}]},{"nativeSrc":"280:37:88","nodeType":"YulVariableDeclaration","src":"280:37:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"302:6:88","nodeType":"YulIdentifier","src":"302:6:88"},{"kind":"number","nativeSrc":"310:6:88","nodeType":"YulLiteral","src":"310:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"add","nativeSrc":"298:3:88","nodeType":"YulIdentifier","src":"298:3:88"},"nativeSrc":"298:19:88","nodeType":"YulFunctionCall","src":"298:19:88"},"variables":[{"name":"newFreePtr","nativeSrc":"284:10:88","nodeType":"YulTypedName","src":"284:10:88","type":""}]},{"body":{"nativeSrc":"400:111:88","nodeType":"YulBlock","src":"400:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"421:1:88","nodeType":"YulLiteral","src":"421:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"428:3:88","nodeType":"YulLiteral","src":"428:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"433:10:88","nodeType":"YulLiteral","src":"433:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"424:3:88","nodeType":"YulIdentifier","src":"424:3:88"},"nativeSrc":"424:20:88","nodeType":"YulFunctionCall","src":"424:20:88"}],"functionName":{"name":"mstore","nativeSrc":"414:6:88","nodeType":"YulIdentifier","src":"414:6:88"},"nativeSrc":"414:31:88","nodeType":"YulFunctionCall","src":"414:31:88"},"nativeSrc":"414:31:88","nodeType":"YulExpressionStatement","src":"414:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"465:1:88","nodeType":"YulLiteral","src":"465:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"468:4:88","nodeType":"YulLiteral","src":"468:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"458:6:88","nodeType":"YulIdentifier","src":"458:6:88"},"nativeSrc":"458:15:88","nodeType":"YulFunctionCall","src":"458:15:88"},"nativeSrc":"458:15:88","nodeType":"YulExpressionStatement","src":"458:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"493:1:88","nodeType":"YulLiteral","src":"493:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"496:4:88","nodeType":"YulLiteral","src":"496:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"486:6:88","nodeType":"YulIdentifier","src":"486:6:88"},"nativeSrc":"486:15:88","nodeType":"YulFunctionCall","src":"486:15:88"},"nativeSrc":"486:15:88","nodeType":"YulExpressionStatement","src":"486:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"335:10:88","nodeType":"YulIdentifier","src":"335:10:88"},{"kind":"number","nativeSrc":"347:18:88","nodeType":"YulLiteral","src":"347:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"332:2:88","nodeType":"YulIdentifier","src":"332:2:88"},"nativeSrc":"332:34:88","nodeType":"YulFunctionCall","src":"332:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"371:10:88","nodeType":"YulIdentifier","src":"371:10:88"},{"name":"memPtr","nativeSrc":"383:6:88","nodeType":"YulIdentifier","src":"383:6:88"}],"functionName":{"name":"lt","nativeSrc":"368:2:88","nodeType":"YulIdentifier","src":"368:2:88"},"nativeSrc":"368:22:88","nodeType":"YulFunctionCall","src":"368:22:88"}],"functionName":{"name":"or","nativeSrc":"329:2:88","nodeType":"YulIdentifier","src":"329:2:88"},"nativeSrc":"329:62:88","nodeType":"YulFunctionCall","src":"329:62:88"},"nativeSrc":"326:185:88","nodeType":"YulIf","src":"326:185:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"527:2:88","nodeType":"YulLiteral","src":"527:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"531:10:88","nodeType":"YulIdentifier","src":"531:10:88"}],"functionName":{"name":"mstore","nativeSrc":"520:6:88","nodeType":"YulIdentifier","src":"520:6:88"},"nativeSrc":"520:22:88","nodeType":"YulFunctionCall","src":"520:22:88"},"nativeSrc":"520:22:88","nodeType":"YulExpressionStatement","src":"520:22:88"}]},"name":"allocate_memory_1633","nativeSrc":"196:352:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"231:6:88","nodeType":"YulTypedName","src":"231:6:88","type":""}],"src":"196:352:88"},{"body":{"nativeSrc":"594:304:88","nodeType":"YulBlock","src":"594:304:88","statements":[{"nativeSrc":"604:19:88","nodeType":"YulAssignment","src":"604:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"620:2:88","nodeType":"YulLiteral","src":"620:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"614:5:88","nodeType":"YulIdentifier","src":"614:5:88"},"nativeSrc":"614:9:88","nodeType":"YulFunctionCall","src":"614:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"604:6:88","nodeType":"YulIdentifier","src":"604:6:88"}]},{"nativeSrc":"632:35:88","nodeType":"YulVariableDeclaration","src":"632:35:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"},{"kind":"number","nativeSrc":"662:4:88","nodeType":"YulLiteral","src":"662:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"650:3:88","nodeType":"YulIdentifier","src":"650:3:88"},"nativeSrc":"650:17:88","nodeType":"YulFunctionCall","src":"650:17:88"},"variables":[{"name":"newFreePtr","nativeSrc":"636:10:88","nodeType":"YulTypedName","src":"636:10:88","type":""}]},{"body":{"nativeSrc":"750:111:88","nodeType":"YulBlock","src":"750:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"771:1:88","nodeType":"YulLiteral","src":"771:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"778:3:88","nodeType":"YulLiteral","src":"778:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"783:10:88","nodeType":"YulLiteral","src":"783:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"774:3:88","nodeType":"YulIdentifier","src":"774:3:88"},"nativeSrc":"774:20:88","nodeType":"YulFunctionCall","src":"774:20:88"}],"functionName":{"name":"mstore","nativeSrc":"764:6:88","nodeType":"YulIdentifier","src":"764:6:88"},"nativeSrc":"764:31:88","nodeType":"YulFunctionCall","src":"764:31:88"},"nativeSrc":"764:31:88","nodeType":"YulExpressionStatement","src":"764:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"815:1:88","nodeType":"YulLiteral","src":"815:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"818:4:88","nodeType":"YulLiteral","src":"818:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"808:6:88","nodeType":"YulIdentifier","src":"808:6:88"},"nativeSrc":"808:15:88","nodeType":"YulFunctionCall","src":"808:15:88"},"nativeSrc":"808:15:88","nodeType":"YulExpressionStatement","src":"808:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"843:1:88","nodeType":"YulLiteral","src":"843:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"846:4:88","nodeType":"YulLiteral","src":"846:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"836:6:88","nodeType":"YulIdentifier","src":"836:6:88"},"nativeSrc":"836:15:88","nodeType":"YulFunctionCall","src":"836:15:88"},"nativeSrc":"836:15:88","nodeType":"YulExpressionStatement","src":"836:15:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"685:10:88","nodeType":"YulIdentifier","src":"685:10:88"},{"kind":"number","nativeSrc":"697:18:88","nodeType":"YulLiteral","src":"697:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"682:2:88","nodeType":"YulIdentifier","src":"682:2:88"},"nativeSrc":"682:34:88","nodeType":"YulFunctionCall","src":"682:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"721:10:88","nodeType":"YulIdentifier","src":"721:10:88"},{"name":"memPtr","nativeSrc":"733:6:88","nodeType":"YulIdentifier","src":"733:6:88"}],"functionName":{"name":"lt","nativeSrc":"718:2:88","nodeType":"YulIdentifier","src":"718:2:88"},"nativeSrc":"718:22:88","nodeType":"YulFunctionCall","src":"718:22:88"}],"functionName":{"name":"or","nativeSrc":"679:2:88","nodeType":"YulIdentifier","src":"679:2:88"},"nativeSrc":"679:62:88","nodeType":"YulFunctionCall","src":"679:62:88"},"nativeSrc":"676:185:88","nodeType":"YulIf","src":"676:185:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"877:2:88","nodeType":"YulLiteral","src":"877:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"881:10:88","nodeType":"YulIdentifier","src":"881:10:88"}],"functionName":{"name":"mstore","nativeSrc":"870:6:88","nodeType":"YulIdentifier","src":"870:6:88"},"nativeSrc":"870:22:88","nodeType":"YulFunctionCall","src":"870:22:88"},"nativeSrc":"870:22:88","nodeType":"YulExpressionStatement","src":"870:22:88"}]},"name":"allocate_memory","nativeSrc":"553:345:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"583:6:88","nodeType":"YulTypedName","src":"583:6:88","type":""}],"src":"553:345:88"},{"body":{"nativeSrc":"961:86:88","nodeType":"YulBlock","src":"961:86:88","statements":[{"body":{"nativeSrc":"1025:16:88","nodeType":"YulBlock","src":"1025:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1034:1:88","nodeType":"YulLiteral","src":"1034:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1037:1:88","nodeType":"YulLiteral","src":"1037:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1027:6:88","nodeType":"YulIdentifier","src":"1027:6:88"},"nativeSrc":"1027:12:88","nodeType":"YulFunctionCall","src":"1027:12:88"},"nativeSrc":"1027:12:88","nodeType":"YulExpressionStatement","src":"1027:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"984:5:88","nodeType":"YulIdentifier","src":"984:5:88"},{"arguments":[{"name":"value","nativeSrc":"995:5:88","nodeType":"YulIdentifier","src":"995:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1010:3:88","nodeType":"YulLiteral","src":"1010:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"1015:1:88","nodeType":"YulLiteral","src":"1015:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1006:3:88","nodeType":"YulIdentifier","src":"1006:3:88"},"nativeSrc":"1006:11:88","nodeType":"YulFunctionCall","src":"1006:11:88"},{"kind":"number","nativeSrc":"1019:1:88","nodeType":"YulLiteral","src":"1019:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1002:3:88","nodeType":"YulIdentifier","src":"1002:3:88"},"nativeSrc":"1002:19:88","nodeType":"YulFunctionCall","src":"1002:19:88"}],"functionName":{"name":"and","nativeSrc":"991:3:88","nodeType":"YulIdentifier","src":"991:3:88"},"nativeSrc":"991:31:88","nodeType":"YulFunctionCall","src":"991:31:88"}],"functionName":{"name":"eq","nativeSrc":"981:2:88","nodeType":"YulIdentifier","src":"981:2:88"},"nativeSrc":"981:42:88","nodeType":"YulFunctionCall","src":"981:42:88"}],"functionName":{"name":"iszero","nativeSrc":"974:6:88","nodeType":"YulIdentifier","src":"974:6:88"},"nativeSrc":"974:50:88","nodeType":"YulFunctionCall","src":"974:50:88"},"nativeSrc":"971:70:88","nodeType":"YulIf","src":"971:70:88"}]},"name":"validator_revert_contract_IRiskModule","nativeSrc":"903:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"950:5:88","nodeType":"YulTypedName","src":"950:5:88","type":""}],"src":"903:144:88"},{"body":{"nativeSrc":"1114:98:88","nodeType":"YulBlock","src":"1114:98:88","statements":[{"nativeSrc":"1124:29:88","nodeType":"YulAssignment","src":"1124:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1146:6:88","nodeType":"YulIdentifier","src":"1146:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1133:12:88","nodeType":"YulIdentifier","src":"1133:12:88"},"nativeSrc":"1133:20:88","nodeType":"YulFunctionCall","src":"1133:20:88"},"variableNames":[{"name":"value","nativeSrc":"1124:5:88","nodeType":"YulIdentifier","src":"1124:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1200:5:88","nodeType":"YulIdentifier","src":"1200:5:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"1162:37:88","nodeType":"YulIdentifier","src":"1162:37:88"},"nativeSrc":"1162:44:88","nodeType":"YulFunctionCall","src":"1162:44:88"},"nativeSrc":"1162:44:88","nodeType":"YulExpressionStatement","src":"1162:44:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"1052:160:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1093:6:88","nodeType":"YulTypedName","src":"1093:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1104:5:88","nodeType":"YulTypedName","src":"1104:5:88","type":""}],"src":"1052:160:88"},{"body":{"nativeSrc":"1265:117:88","nodeType":"YulBlock","src":"1265:117:88","statements":[{"nativeSrc":"1275:29:88","nodeType":"YulAssignment","src":"1275:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1297:6:88","nodeType":"YulIdentifier","src":"1297:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1284:12:88","nodeType":"YulIdentifier","src":"1284:12:88"},"nativeSrc":"1284:20:88","nodeType":"YulFunctionCall","src":"1284:20:88"},"variableNames":[{"name":"value","nativeSrc":"1275:5:88","nodeType":"YulIdentifier","src":"1275:5:88"}]},{"body":{"nativeSrc":"1360:16:88","nodeType":"YulBlock","src":"1360:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1369:1:88","nodeType":"YulLiteral","src":"1369:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1372:1:88","nodeType":"YulLiteral","src":"1372:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1362:6:88","nodeType":"YulIdentifier","src":"1362:6:88"},"nativeSrc":"1362:12:88","nodeType":"YulFunctionCall","src":"1362:12:88"},"nativeSrc":"1362:12:88","nodeType":"YulExpressionStatement","src":"1362:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1326:5:88","nodeType":"YulIdentifier","src":"1326:5:88"},{"arguments":[{"name":"value","nativeSrc":"1337:5:88","nodeType":"YulIdentifier","src":"1337:5:88"},{"kind":"number","nativeSrc":"1344:12:88","nodeType":"YulLiteral","src":"1344:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"1333:3:88","nodeType":"YulIdentifier","src":"1333:3:88"},"nativeSrc":"1333:24:88","nodeType":"YulFunctionCall","src":"1333:24:88"}],"functionName":{"name":"eq","nativeSrc":"1323:2:88","nodeType":"YulIdentifier","src":"1323:2:88"},"nativeSrc":"1323:35:88","nodeType":"YulFunctionCall","src":"1323:35:88"}],"functionName":{"name":"iszero","nativeSrc":"1316:6:88","nodeType":"YulIdentifier","src":"1316:6:88"},"nativeSrc":"1316:43:88","nodeType":"YulFunctionCall","src":"1316:43:88"},"nativeSrc":"1313:63:88","nodeType":"YulIf","src":"1313:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"1217:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1244:6:88","nodeType":"YulTypedName","src":"1244:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1255:5:88","nodeType":"YulTypedName","src":"1255:5:88","type":""}],"src":"1217:165:88"},{"body":{"nativeSrc":"1454:1627:88","nodeType":"YulBlock","src":"1454:1627:88","statements":[{"body":{"nativeSrc":"1500:16:88","nodeType":"YulBlock","src":"1500:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1509:1:88","nodeType":"YulLiteral","src":"1509:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1512:1:88","nodeType":"YulLiteral","src":"1512:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1502:6:88","nodeType":"YulIdentifier","src":"1502:6:88"},"nativeSrc":"1502:12:88","nodeType":"YulFunctionCall","src":"1502:12:88"},"nativeSrc":"1502:12:88","nodeType":"YulExpressionStatement","src":"1502:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"1475:3:88","nodeType":"YulIdentifier","src":"1475:3:88"},{"name":"headStart","nativeSrc":"1480:9:88","nodeType":"YulIdentifier","src":"1480:9:88"}],"functionName":{"name":"sub","nativeSrc":"1471:3:88","nodeType":"YulIdentifier","src":"1471:3:88"},"nativeSrc":"1471:19:88","nodeType":"YulFunctionCall","src":"1471:19:88"},{"kind":"number","nativeSrc":"1492:6:88","nodeType":"YulLiteral","src":"1492:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"slt","nativeSrc":"1467:3:88","nodeType":"YulIdentifier","src":"1467:3:88"},"nativeSrc":"1467:32:88","nodeType":"YulFunctionCall","src":"1467:32:88"},"nativeSrc":"1464:52:88","nodeType":"YulIf","src":"1464:52:88"},{"nativeSrc":"1525:31:88","nodeType":"YulAssignment","src":"1525:31:88","value":{"arguments":[],"functionName":{"name":"allocate_memory_1633","nativeSrc":"1534:20:88","nodeType":"YulIdentifier","src":"1534:20:88"},"nativeSrc":"1534:22:88","nodeType":"YulFunctionCall","src":"1534:22:88"},"variableNames":[{"name":"value","nativeSrc":"1525:5:88","nodeType":"YulIdentifier","src":"1525:5:88"}]},{"nativeSrc":"1565:16:88","nodeType":"YulVariableDeclaration","src":"1565:16:88","value":{"kind":"number","nativeSrc":"1580:1:88","nodeType":"YulLiteral","src":"1580:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1569:7:88","nodeType":"YulTypedName","src":"1569:7:88","type":""}]},{"nativeSrc":"1590:34:88","nodeType":"YulAssignment","src":"1590:34:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1614:9:88","nodeType":"YulIdentifier","src":"1614:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"1601:12:88","nodeType":"YulIdentifier","src":"1601:12:88"},"nativeSrc":"1601:23:88","nodeType":"YulFunctionCall","src":"1601:23:88"},"variableNames":[{"name":"value_1","nativeSrc":"1590:7:88","nodeType":"YulIdentifier","src":"1590:7:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1640:5:88","nodeType":"YulIdentifier","src":"1640:5:88"},{"name":"value_1","nativeSrc":"1647:7:88","nodeType":"YulIdentifier","src":"1647:7:88"}],"functionName":{"name":"mstore","nativeSrc":"1633:6:88","nodeType":"YulIdentifier","src":"1633:6:88"},"nativeSrc":"1633:22:88","nodeType":"YulFunctionCall","src":"1633:22:88"},"nativeSrc":"1633:22:88","nodeType":"YulExpressionStatement","src":"1633:22:88"},{"nativeSrc":"1664:16:88","nodeType":"YulVariableDeclaration","src":"1664:16:88","value":{"kind":"number","nativeSrc":"1679:1:88","nodeType":"YulLiteral","src":"1679:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1668:7:88","nodeType":"YulTypedName","src":"1668:7:88","type":""}]},{"nativeSrc":"1689:43:88","nodeType":"YulAssignment","src":"1689:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1717:9:88","nodeType":"YulIdentifier","src":"1717:9:88"},{"kind":"number","nativeSrc":"1728:2:88","nodeType":"YulLiteral","src":"1728:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1713:3:88","nodeType":"YulIdentifier","src":"1713:3:88"},"nativeSrc":"1713:18:88","nodeType":"YulFunctionCall","src":"1713:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1700:12:88","nodeType":"YulIdentifier","src":"1700:12:88"},"nativeSrc":"1700:32:88","nodeType":"YulFunctionCall","src":"1700:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"1689:7:88","nodeType":"YulIdentifier","src":"1689:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1752:5:88","nodeType":"YulIdentifier","src":"1752:5:88"},{"kind":"number","nativeSrc":"1759:2:88","nodeType":"YulLiteral","src":"1759:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1748:3:88","nodeType":"YulIdentifier","src":"1748:3:88"},"nativeSrc":"1748:14:88","nodeType":"YulFunctionCall","src":"1748:14:88"},{"name":"value_2","nativeSrc":"1764:7:88","nodeType":"YulIdentifier","src":"1764:7:88"}],"functionName":{"name":"mstore","nativeSrc":"1741:6:88","nodeType":"YulIdentifier","src":"1741:6:88"},"nativeSrc":"1741:31:88","nodeType":"YulFunctionCall","src":"1741:31:88"},"nativeSrc":"1741:31:88","nodeType":"YulExpressionStatement","src":"1741:31:88"},{"nativeSrc":"1781:16:88","nodeType":"YulVariableDeclaration","src":"1781:16:88","value":{"kind":"number","nativeSrc":"1796:1:88","nodeType":"YulLiteral","src":"1796:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"1785:7:88","nodeType":"YulTypedName","src":"1785:7:88","type":""}]},{"nativeSrc":"1806:43:88","nodeType":"YulAssignment","src":"1806:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1834:9:88","nodeType":"YulIdentifier","src":"1834:9:88"},{"kind":"number","nativeSrc":"1845:2:88","nodeType":"YulLiteral","src":"1845:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1830:3:88","nodeType":"YulIdentifier","src":"1830:3:88"},"nativeSrc":"1830:18:88","nodeType":"YulFunctionCall","src":"1830:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1817:12:88","nodeType":"YulIdentifier","src":"1817:12:88"},"nativeSrc":"1817:32:88","nodeType":"YulFunctionCall","src":"1817:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"1806:7:88","nodeType":"YulIdentifier","src":"1806:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:88","nodeType":"YulIdentifier","src":"1869:5:88"},{"kind":"number","nativeSrc":"1876:2:88","nodeType":"YulLiteral","src":"1876:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1865:3:88","nodeType":"YulIdentifier","src":"1865:3:88"},"nativeSrc":"1865:14:88","nodeType":"YulFunctionCall","src":"1865:14:88"},{"name":"value_3","nativeSrc":"1881:7:88","nodeType":"YulIdentifier","src":"1881:7:88"}],"functionName":{"name":"mstore","nativeSrc":"1858:6:88","nodeType":"YulIdentifier","src":"1858:6:88"},"nativeSrc":"1858:31:88","nodeType":"YulFunctionCall","src":"1858:31:88"},"nativeSrc":"1858:31:88","nodeType":"YulExpressionStatement","src":"1858:31:88"},{"nativeSrc":"1898:16:88","nodeType":"YulVariableDeclaration","src":"1898:16:88","value":{"kind":"number","nativeSrc":"1913:1:88","nodeType":"YulLiteral","src":"1913:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"1902:7:88","nodeType":"YulTypedName","src":"1902:7:88","type":""}]},{"nativeSrc":"1923:43:88","nodeType":"YulAssignment","src":"1923:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1951:9:88","nodeType":"YulIdentifier","src":"1951:9:88"},{"kind":"number","nativeSrc":"1962:2:88","nodeType":"YulLiteral","src":"1962:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1947:3:88","nodeType":"YulIdentifier","src":"1947:3:88"},"nativeSrc":"1947:18:88","nodeType":"YulFunctionCall","src":"1947:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1934:12:88","nodeType":"YulIdentifier","src":"1934:12:88"},"nativeSrc":"1934:32:88","nodeType":"YulFunctionCall","src":"1934:32:88"},"variableNames":[{"name":"value_4","nativeSrc":"1923:7:88","nodeType":"YulIdentifier","src":"1923:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1986:5:88","nodeType":"YulIdentifier","src":"1986:5:88"},{"kind":"number","nativeSrc":"1993:2:88","nodeType":"YulLiteral","src":"1993:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1982:3:88","nodeType":"YulIdentifier","src":"1982:3:88"},"nativeSrc":"1982:14:88","nodeType":"YulFunctionCall","src":"1982:14:88"},{"name":"value_4","nativeSrc":"1998:7:88","nodeType":"YulIdentifier","src":"1998:7:88"}],"functionName":{"name":"mstore","nativeSrc":"1975:6:88","nodeType":"YulIdentifier","src":"1975:6:88"},"nativeSrc":"1975:31:88","nodeType":"YulFunctionCall","src":"1975:31:88"},"nativeSrc":"1975:31:88","nodeType":"YulExpressionStatement","src":"1975:31:88"},{"nativeSrc":"2015:16:88","nodeType":"YulVariableDeclaration","src":"2015:16:88","value":{"kind":"number","nativeSrc":"2030:1:88","nodeType":"YulLiteral","src":"2030:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"2019:7:88","nodeType":"YulTypedName","src":"2019:7:88","type":""}]},{"nativeSrc":"2040:44:88","nodeType":"YulAssignment","src":"2040:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2068:9:88","nodeType":"YulIdentifier","src":"2068:9:88"},{"kind":"number","nativeSrc":"2079:3:88","nodeType":"YulLiteral","src":"2079:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2064:3:88","nodeType":"YulIdentifier","src":"2064:3:88"},"nativeSrc":"2064:19:88","nodeType":"YulFunctionCall","src":"2064:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2051:12:88","nodeType":"YulIdentifier","src":"2051:12:88"},"nativeSrc":"2051:33:88","nodeType":"YulFunctionCall","src":"2051:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"2040:7:88","nodeType":"YulIdentifier","src":"2040:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2104:5:88","nodeType":"YulIdentifier","src":"2104:5:88"},{"kind":"number","nativeSrc":"2111:3:88","nodeType":"YulLiteral","src":"2111:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2100:3:88","nodeType":"YulIdentifier","src":"2100:3:88"},"nativeSrc":"2100:15:88","nodeType":"YulFunctionCall","src":"2100:15:88"},{"name":"value_5","nativeSrc":"2117:7:88","nodeType":"YulIdentifier","src":"2117:7:88"}],"functionName":{"name":"mstore","nativeSrc":"2093:6:88","nodeType":"YulIdentifier","src":"2093:6:88"},"nativeSrc":"2093:32:88","nodeType":"YulFunctionCall","src":"2093:32:88"},"nativeSrc":"2093:32:88","nodeType":"YulExpressionStatement","src":"2093:32:88"},{"nativeSrc":"2134:16:88","nodeType":"YulVariableDeclaration","src":"2134:16:88","value":{"kind":"number","nativeSrc":"2149:1:88","nodeType":"YulLiteral","src":"2149:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"2138:7:88","nodeType":"YulTypedName","src":"2138:7:88","type":""}]},{"nativeSrc":"2159:44:88","nodeType":"YulAssignment","src":"2159:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2187:9:88","nodeType":"YulIdentifier","src":"2187:9:88"},{"kind":"number","nativeSrc":"2198:3:88","nodeType":"YulLiteral","src":"2198:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2183:3:88","nodeType":"YulIdentifier","src":"2183:3:88"},"nativeSrc":"2183:19:88","nodeType":"YulFunctionCall","src":"2183:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2170:12:88","nodeType":"YulIdentifier","src":"2170:12:88"},"nativeSrc":"2170:33:88","nodeType":"YulFunctionCall","src":"2170:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"2159:7:88","nodeType":"YulIdentifier","src":"2159:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2223:5:88","nodeType":"YulIdentifier","src":"2223:5:88"},{"kind":"number","nativeSrc":"2230:3:88","nodeType":"YulLiteral","src":"2230:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2219:3:88","nodeType":"YulIdentifier","src":"2219:3:88"},"nativeSrc":"2219:15:88","nodeType":"YulFunctionCall","src":"2219:15:88"},{"name":"value_6","nativeSrc":"2236:7:88","nodeType":"YulIdentifier","src":"2236:7:88"}],"functionName":{"name":"mstore","nativeSrc":"2212:6:88","nodeType":"YulIdentifier","src":"2212:6:88"},"nativeSrc":"2212:32:88","nodeType":"YulFunctionCall","src":"2212:32:88"},"nativeSrc":"2212:32:88","nodeType":"YulExpressionStatement","src":"2212:32:88"},{"nativeSrc":"2253:16:88","nodeType":"YulVariableDeclaration","src":"2253:16:88","value":{"kind":"number","nativeSrc":"2268:1:88","nodeType":"YulLiteral","src":"2268:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"2257:7:88","nodeType":"YulTypedName","src":"2257:7:88","type":""}]},{"nativeSrc":"2278:44:88","nodeType":"YulAssignment","src":"2278:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2306:9:88","nodeType":"YulIdentifier","src":"2306:9:88"},{"kind":"number","nativeSrc":"2317:3:88","nodeType":"YulLiteral","src":"2317:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"2302:3:88","nodeType":"YulIdentifier","src":"2302:3:88"},"nativeSrc":"2302:19:88","nodeType":"YulFunctionCall","src":"2302:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2289:12:88","nodeType":"YulIdentifier","src":"2289:12:88"},"nativeSrc":"2289:33:88","nodeType":"YulFunctionCall","src":"2289:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"2278:7:88","nodeType":"YulIdentifier","src":"2278:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2342:5:88","nodeType":"YulIdentifier","src":"2342:5:88"},{"kind":"number","nativeSrc":"2349:3:88","nodeType":"YulLiteral","src":"2349:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"2338:3:88","nodeType":"YulIdentifier","src":"2338:3:88"},"nativeSrc":"2338:15:88","nodeType":"YulFunctionCall","src":"2338:15:88"},{"name":"value_7","nativeSrc":"2355:7:88","nodeType":"YulIdentifier","src":"2355:7:88"}],"functionName":{"name":"mstore","nativeSrc":"2331:6:88","nodeType":"YulIdentifier","src":"2331:6:88"},"nativeSrc":"2331:32:88","nodeType":"YulFunctionCall","src":"2331:32:88"},"nativeSrc":"2331:32:88","nodeType":"YulExpressionStatement","src":"2331:32:88"},{"nativeSrc":"2372:16:88","nodeType":"YulVariableDeclaration","src":"2372:16:88","value":{"kind":"number","nativeSrc":"2387:1:88","nodeType":"YulLiteral","src":"2387:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"2376:7:88","nodeType":"YulTypedName","src":"2376:7:88","type":""}]},{"nativeSrc":"2397:44:88","nodeType":"YulAssignment","src":"2397:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2425:9:88","nodeType":"YulIdentifier","src":"2425:9:88"},{"kind":"number","nativeSrc":"2436:3:88","nodeType":"YulLiteral","src":"2436:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"2421:3:88","nodeType":"YulIdentifier","src":"2421:3:88"},"nativeSrc":"2421:19:88","nodeType":"YulFunctionCall","src":"2421:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2408:12:88","nodeType":"YulIdentifier","src":"2408:12:88"},"nativeSrc":"2408:33:88","nodeType":"YulFunctionCall","src":"2408:33:88"},"variableNames":[{"name":"value_8","nativeSrc":"2397:7:88","nodeType":"YulIdentifier","src":"2397:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2461:5:88","nodeType":"YulIdentifier","src":"2461:5:88"},{"kind":"number","nativeSrc":"2468:3:88","nodeType":"YulLiteral","src":"2468:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"2457:3:88","nodeType":"YulIdentifier","src":"2457:3:88"},"nativeSrc":"2457:15:88","nodeType":"YulFunctionCall","src":"2457:15:88"},{"name":"value_8","nativeSrc":"2474:7:88","nodeType":"YulIdentifier","src":"2474:7:88"}],"functionName":{"name":"mstore","nativeSrc":"2450:6:88","nodeType":"YulIdentifier","src":"2450:6:88"},"nativeSrc":"2450:32:88","nodeType":"YulFunctionCall","src":"2450:32:88"},"nativeSrc":"2450:32:88","nodeType":"YulExpressionStatement","src":"2450:32:88"},{"nativeSrc":"2491:16:88","nodeType":"YulVariableDeclaration","src":"2491:16:88","value":{"kind":"number","nativeSrc":"2506:1:88","nodeType":"YulLiteral","src":"2506:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"2495:7:88","nodeType":"YulTypedName","src":"2495:7:88","type":""}]},{"nativeSrc":"2516:44:88","nodeType":"YulAssignment","src":"2516:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2544:9:88","nodeType":"YulIdentifier","src":"2544:9:88"},{"kind":"number","nativeSrc":"2555:3:88","nodeType":"YulLiteral","src":"2555:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"2540:3:88","nodeType":"YulIdentifier","src":"2540:3:88"},"nativeSrc":"2540:19:88","nodeType":"YulFunctionCall","src":"2540:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2527:12:88","nodeType":"YulIdentifier","src":"2527:12:88"},"nativeSrc":"2527:33:88","nodeType":"YulFunctionCall","src":"2527:33:88"},"variableNames":[{"name":"value_9","nativeSrc":"2516:7:88","nodeType":"YulIdentifier","src":"2516:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2580:5:88","nodeType":"YulIdentifier","src":"2580:5:88"},{"kind":"number","nativeSrc":"2587:3:88","nodeType":"YulLiteral","src":"2587:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"2576:3:88","nodeType":"YulIdentifier","src":"2576:3:88"},"nativeSrc":"2576:15:88","nodeType":"YulFunctionCall","src":"2576:15:88"},{"name":"value_9","nativeSrc":"2593:7:88","nodeType":"YulIdentifier","src":"2593:7:88"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:88","nodeType":"YulIdentifier","src":"2569:6:88"},"nativeSrc":"2569:32:88","nodeType":"YulFunctionCall","src":"2569:32:88"},"nativeSrc":"2569:32:88","nodeType":"YulExpressionStatement","src":"2569:32:88"},{"nativeSrc":"2610:17:88","nodeType":"YulVariableDeclaration","src":"2610:17:88","value":{"kind":"number","nativeSrc":"2626:1:88","nodeType":"YulLiteral","src":"2626:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"2614:8:88","nodeType":"YulTypedName","src":"2614:8:88","type":""}]},{"nativeSrc":"2636:45:88","nodeType":"YulAssignment","src":"2636:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2665:9:88","nodeType":"YulIdentifier","src":"2665:9:88"},{"kind":"number","nativeSrc":"2676:3:88","nodeType":"YulLiteral","src":"2676:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"2661:3:88","nodeType":"YulIdentifier","src":"2661:3:88"},"nativeSrc":"2661:19:88","nodeType":"YulFunctionCall","src":"2661:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2648:12:88","nodeType":"YulIdentifier","src":"2648:12:88"},"nativeSrc":"2648:33:88","nodeType":"YulFunctionCall","src":"2648:33:88"},"variableNames":[{"name":"value_10","nativeSrc":"2636:8:88","nodeType":"YulIdentifier","src":"2636:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2701:5:88","nodeType":"YulIdentifier","src":"2701:5:88"},{"kind":"number","nativeSrc":"2708:3:88","nodeType":"YulLiteral","src":"2708:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"2697:3:88","nodeType":"YulIdentifier","src":"2697:3:88"},"nativeSrc":"2697:15:88","nodeType":"YulFunctionCall","src":"2697:15:88"},{"name":"value_10","nativeSrc":"2714:8:88","nodeType":"YulIdentifier","src":"2714:8:88"}],"functionName":{"name":"mstore","nativeSrc":"2690:6:88","nodeType":"YulIdentifier","src":"2690:6:88"},"nativeSrc":"2690:33:88","nodeType":"YulFunctionCall","src":"2690:33:88"},"nativeSrc":"2690:33:88","nodeType":"YulExpressionStatement","src":"2690:33:88"},{"nativeSrc":"2732:17:88","nodeType":"YulVariableDeclaration","src":"2732:17:88","value":{"kind":"number","nativeSrc":"2748:1:88","nodeType":"YulLiteral","src":"2748:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"2736:8:88","nodeType":"YulTypedName","src":"2736:8:88","type":""}]},{"nativeSrc":"2758:45:88","nodeType":"YulAssignment","src":"2758:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2787:9:88","nodeType":"YulIdentifier","src":"2787:9:88"},{"kind":"number","nativeSrc":"2798:3:88","nodeType":"YulLiteral","src":"2798:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"2783:3:88","nodeType":"YulIdentifier","src":"2783:3:88"},"nativeSrc":"2783:19:88","nodeType":"YulFunctionCall","src":"2783:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2770:12:88","nodeType":"YulIdentifier","src":"2770:12:88"},"nativeSrc":"2770:33:88","nodeType":"YulFunctionCall","src":"2770:33:88"},"variableNames":[{"name":"value_11","nativeSrc":"2758:8:88","nodeType":"YulIdentifier","src":"2758:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2823:5:88","nodeType":"YulIdentifier","src":"2823:5:88"},{"kind":"number","nativeSrc":"2830:3:88","nodeType":"YulLiteral","src":"2830:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"2819:3:88","nodeType":"YulIdentifier","src":"2819:3:88"},"nativeSrc":"2819:15:88","nodeType":"YulFunctionCall","src":"2819:15:88"},{"name":"value_11","nativeSrc":"2836:8:88","nodeType":"YulIdentifier","src":"2836:8:88"}],"functionName":{"name":"mstore","nativeSrc":"2812:6:88","nodeType":"YulIdentifier","src":"2812:6:88"},"nativeSrc":"2812:33:88","nodeType":"YulFunctionCall","src":"2812:33:88"},"nativeSrc":"2812:33:88","nodeType":"YulExpressionStatement","src":"2812:33:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2865:5:88","nodeType":"YulIdentifier","src":"2865:5:88"},{"kind":"number","nativeSrc":"2872:3:88","nodeType":"YulLiteral","src":"2872:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"2861:3:88","nodeType":"YulIdentifier","src":"2861:3:88"},"nativeSrc":"2861:15:88","nodeType":"YulFunctionCall","src":"2861:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2914:9:88","nodeType":"YulIdentifier","src":"2914:9:88"},{"kind":"number","nativeSrc":"2925:3:88","nodeType":"YulLiteral","src":"2925:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"2910:3:88","nodeType":"YulIdentifier","src":"2910:3:88"},"nativeSrc":"2910:19:88","nodeType":"YulFunctionCall","src":"2910:19:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"2878:31:88","nodeType":"YulIdentifier","src":"2878:31:88"},"nativeSrc":"2878:52:88","nodeType":"YulFunctionCall","src":"2878:52:88"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:88","nodeType":"YulIdentifier","src":"2854:6:88"},"nativeSrc":"2854:77:88","nodeType":"YulFunctionCall","src":"2854:77:88"},"nativeSrc":"2854:77:88","nodeType":"YulExpressionStatement","src":"2854:77:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2951:5:88","nodeType":"YulIdentifier","src":"2951:5:88"},{"kind":"number","nativeSrc":"2958:3:88","nodeType":"YulLiteral","src":"2958:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"2947:3:88","nodeType":"YulIdentifier","src":"2947:3:88"},"nativeSrc":"2947:15:88","nodeType":"YulFunctionCall","src":"2947:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2986:9:88","nodeType":"YulIdentifier","src":"2986:9:88"},{"kind":"number","nativeSrc":"2997:3:88","nodeType":"YulLiteral","src":"2997:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"2982:3:88","nodeType":"YulIdentifier","src":"2982:3:88"},"nativeSrc":"2982:19:88","nodeType":"YulFunctionCall","src":"2982:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"2964:17:88","nodeType":"YulIdentifier","src":"2964:17:88"},"nativeSrc":"2964:38:88","nodeType":"YulFunctionCall","src":"2964:38:88"}],"functionName":{"name":"mstore","nativeSrc":"2940:6:88","nodeType":"YulIdentifier","src":"2940:6:88"},"nativeSrc":"2940:63:88","nodeType":"YulFunctionCall","src":"2940:63:88"},"nativeSrc":"2940:63:88","nodeType":"YulExpressionStatement","src":"2940:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3023:5:88","nodeType":"YulIdentifier","src":"3023:5:88"},{"kind":"number","nativeSrc":"3030:3:88","nodeType":"YulLiteral","src":"3030:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"3019:3:88","nodeType":"YulIdentifier","src":"3019:3:88"},"nativeSrc":"3019:15:88","nodeType":"YulFunctionCall","src":"3019:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3058:9:88","nodeType":"YulIdentifier","src":"3058:9:88"},{"kind":"number","nativeSrc":"3069:3:88","nodeType":"YulLiteral","src":"3069:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"3054:3:88","nodeType":"YulIdentifier","src":"3054:3:88"},"nativeSrc":"3054:19:88","nodeType":"YulFunctionCall","src":"3054:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"3036:17:88","nodeType":"YulIdentifier","src":"3036:17:88"},"nativeSrc":"3036:38:88","nodeType":"YulFunctionCall","src":"3036:38:88"}],"functionName":{"name":"mstore","nativeSrc":"3012:6:88","nodeType":"YulIdentifier","src":"3012:6:88"},"nativeSrc":"3012:63:88","nodeType":"YulFunctionCall","src":"3012:63:88"},"nativeSrc":"3012:63:88","nodeType":"YulExpressionStatement","src":"3012:63:88"}]},"name":"abi_decode_struct_PolicyData","nativeSrc":"1387:1694:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1425:9:88","nodeType":"YulTypedName","src":"1425:9:88","type":""},{"name":"end","nativeSrc":"1436:3:88","nodeType":"YulTypedName","src":"1436:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1444:5:88","nodeType":"YulTypedName","src":"1444:5:88","type":""}],"src":"1387:1694:88"},{"body":{"nativeSrc":"3134:131:88","nodeType":"YulBlock","src":"3134:131:88","statements":[{"nativeSrc":"3144:29:88","nodeType":"YulAssignment","src":"3144:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"3166:6:88","nodeType":"YulIdentifier","src":"3166:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"3153:12:88","nodeType":"YulIdentifier","src":"3153:12:88"},"nativeSrc":"3153:20:88","nodeType":"YulFunctionCall","src":"3153:20:88"},"variableNames":[{"name":"value","nativeSrc":"3144:5:88","nodeType":"YulIdentifier","src":"3144:5:88"}]},{"body":{"nativeSrc":"3243:16:88","nodeType":"YulBlock","src":"3243:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3252:1:88","nodeType":"YulLiteral","src":"3252:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3255:1:88","nodeType":"YulLiteral","src":"3255:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3245:6:88","nodeType":"YulIdentifier","src":"3245:6:88"},"nativeSrc":"3245:12:88","nodeType":"YulFunctionCall","src":"3245:12:88"},"nativeSrc":"3245:12:88","nodeType":"YulExpressionStatement","src":"3245:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3195:5:88","nodeType":"YulIdentifier","src":"3195:5:88"},{"arguments":[{"name":"value","nativeSrc":"3206:5:88","nodeType":"YulIdentifier","src":"3206:5:88"},{"kind":"number","nativeSrc":"3213:26:88","nodeType":"YulLiteral","src":"3213:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3202:3:88","nodeType":"YulIdentifier","src":"3202:3:88"},"nativeSrc":"3202:38:88","nodeType":"YulFunctionCall","src":"3202:38:88"}],"functionName":{"name":"eq","nativeSrc":"3192:2:88","nodeType":"YulIdentifier","src":"3192:2:88"},"nativeSrc":"3192:49:88","nodeType":"YulFunctionCall","src":"3192:49:88"}],"functionName":{"name":"iszero","nativeSrc":"3185:6:88","nodeType":"YulIdentifier","src":"3185:6:88"},"nativeSrc":"3185:57:88","nodeType":"YulFunctionCall","src":"3185:57:88"},"nativeSrc":"3182:77:88","nodeType":"YulIf","src":"3182:77:88"}]},"name":"abi_decode_uint96","nativeSrc":"3086:179:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3113:6:88","nodeType":"YulTypedName","src":"3113:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3124:5:88","nodeType":"YulTypedName","src":"3124:5:88","type":""}],"src":"3086:179:88"},{"body":{"nativeSrc":"3448:402:88","nodeType":"YulBlock","src":"3448:402:88","statements":[{"body":{"nativeSrc":"3495:16:88","nodeType":"YulBlock","src":"3495:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3504:1:88","nodeType":"YulLiteral","src":"3504:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3507:1:88","nodeType":"YulLiteral","src":"3507:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3497:6:88","nodeType":"YulIdentifier","src":"3497:6:88"},"nativeSrc":"3497:12:88","nodeType":"YulFunctionCall","src":"3497:12:88"},"nativeSrc":"3497:12:88","nodeType":"YulExpressionStatement","src":"3497:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3469:7:88","nodeType":"YulIdentifier","src":"3469:7:88"},{"name":"headStart","nativeSrc":"3478:9:88","nodeType":"YulIdentifier","src":"3478:9:88"}],"functionName":{"name":"sub","nativeSrc":"3465:3:88","nodeType":"YulIdentifier","src":"3465:3:88"},"nativeSrc":"3465:23:88","nodeType":"YulFunctionCall","src":"3465:23:88"},{"kind":"number","nativeSrc":"3490:3:88","nodeType":"YulLiteral","src":"3490:3:88","type":"","value":"960"}],"functionName":{"name":"slt","nativeSrc":"3461:3:88","nodeType":"YulIdentifier","src":"3461:3:88"},"nativeSrc":"3461:33:88","nodeType":"YulFunctionCall","src":"3461:33:88"},"nativeSrc":"3458:53:88","nodeType":"YulIf","src":"3458:53:88"},{"nativeSrc":"3520:58:88","nodeType":"YulAssignment","src":"3520:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3559:9:88","nodeType":"YulIdentifier","src":"3559:9:88"},{"name":"dataEnd","nativeSrc":"3570:7:88","nodeType":"YulIdentifier","src":"3570:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"3530:28:88","nodeType":"YulIdentifier","src":"3530:28:88"},"nativeSrc":"3530:48:88","nodeType":"YulFunctionCall","src":"3530:48:88"},"variableNames":[{"name":"value0","nativeSrc":"3520:6:88","nodeType":"YulIdentifier","src":"3520:6:88"}]},{"nativeSrc":"3587:68:88","nodeType":"YulAssignment","src":"3587:68:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3630:9:88","nodeType":"YulIdentifier","src":"3630:9:88"},{"kind":"number","nativeSrc":"3641:3:88","nodeType":"YulLiteral","src":"3641:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"3626:3:88","nodeType":"YulIdentifier","src":"3626:3:88"},"nativeSrc":"3626:19:88","nodeType":"YulFunctionCall","src":"3626:19:88"},{"name":"dataEnd","nativeSrc":"3647:7:88","nodeType":"YulIdentifier","src":"3647:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"3597:28:88","nodeType":"YulIdentifier","src":"3597:28:88"},"nativeSrc":"3597:58:88","nodeType":"YulFunctionCall","src":"3597:58:88"},"variableNames":[{"name":"value1","nativeSrc":"3587:6:88","nodeType":"YulIdentifier","src":"3587:6:88"}]},{"nativeSrc":"3664:46:88","nodeType":"YulVariableDeclaration","src":"3664:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3694:9:88","nodeType":"YulIdentifier","src":"3694:9:88"},{"kind":"number","nativeSrc":"3705:3:88","nodeType":"YulLiteral","src":"3705:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"3690:3:88","nodeType":"YulIdentifier","src":"3690:3:88"},"nativeSrc":"3690:19:88","nodeType":"YulFunctionCall","src":"3690:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"3677:12:88","nodeType":"YulIdentifier","src":"3677:12:88"},"nativeSrc":"3677:33:88","nodeType":"YulFunctionCall","src":"3677:33:88"},"variables":[{"name":"value","nativeSrc":"3668:5:88","nodeType":"YulTypedName","src":"3668:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3757:5:88","nodeType":"YulIdentifier","src":"3757:5:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"3719:37:88","nodeType":"YulIdentifier","src":"3719:37:88"},"nativeSrc":"3719:44:88","nodeType":"YulFunctionCall","src":"3719:44:88"},"nativeSrc":"3719:44:88","nodeType":"YulExpressionStatement","src":"3719:44:88"},{"nativeSrc":"3772:15:88","nodeType":"YulAssignment","src":"3772:15:88","value":{"name":"value","nativeSrc":"3782:5:88","nodeType":"YulIdentifier","src":"3782:5:88"},"variableNames":[{"name":"value2","nativeSrc":"3772:6:88","nodeType":"YulIdentifier","src":"3772:6:88"}]},{"nativeSrc":"3796:48:88","nodeType":"YulAssignment","src":"3796:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3828:9:88","nodeType":"YulIdentifier","src":"3828:9:88"},{"kind":"number","nativeSrc":"3839:3:88","nodeType":"YulLiteral","src":"3839:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"3824:3:88","nodeType":"YulIdentifier","src":"3824:3:88"},"nativeSrc":"3824:19:88","nodeType":"YulFunctionCall","src":"3824:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"3806:17:88","nodeType":"YulIdentifier","src":"3806:17:88"},"nativeSrc":"3806:38:88","nodeType":"YulFunctionCall","src":"3806:38:88"},"variableNames":[{"name":"value3","nativeSrc":"3796:6:88","nodeType":"YulIdentifier","src":"3796:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96","nativeSrc":"3270:580:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3390:9:88","nodeType":"YulTypedName","src":"3390:9:88","type":""},{"name":"dataEnd","nativeSrc":"3401:7:88","nodeType":"YulTypedName","src":"3401:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3413:6:88","nodeType":"YulTypedName","src":"3413:6:88","type":""},{"name":"value1","nativeSrc":"3421:6:88","nodeType":"YulTypedName","src":"3421:6:88","type":""},{"name":"value2","nativeSrc":"3429:6:88","nodeType":"YulTypedName","src":"3429:6:88","type":""},{"name":"value3","nativeSrc":"3437:6:88","nodeType":"YulTypedName","src":"3437:6:88","type":""}],"src":"3270:580:88"},{"body":{"nativeSrc":"3959:293:88","nodeType":"YulBlock","src":"3959:293:88","statements":[{"body":{"nativeSrc":"4005:16:88","nodeType":"YulBlock","src":"4005:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4014:1:88","nodeType":"YulLiteral","src":"4014:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4017:1:88","nodeType":"YulLiteral","src":"4017:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4007:6:88","nodeType":"YulIdentifier","src":"4007:6:88"},"nativeSrc":"4007:12:88","nodeType":"YulFunctionCall","src":"4007:12:88"},"nativeSrc":"4007:12:88","nodeType":"YulExpressionStatement","src":"4007:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3980:7:88","nodeType":"YulIdentifier","src":"3980:7:88"},{"name":"headStart","nativeSrc":"3989:9:88","nodeType":"YulIdentifier","src":"3989:9:88"}],"functionName":{"name":"sub","nativeSrc":"3976:3:88","nodeType":"YulIdentifier","src":"3976:3:88"},"nativeSrc":"3976:23:88","nodeType":"YulFunctionCall","src":"3976:23:88"},{"kind":"number","nativeSrc":"4001:2:88","nodeType":"YulLiteral","src":"4001:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3972:3:88","nodeType":"YulIdentifier","src":"3972:3:88"},"nativeSrc":"3972:32:88","nodeType":"YulFunctionCall","src":"3972:32:88"},"nativeSrc":"3969:52:88","nodeType":"YulIf","src":"3969:52:88"},{"nativeSrc":"4030:36:88","nodeType":"YulVariableDeclaration","src":"4030:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4056:9:88","nodeType":"YulIdentifier","src":"4056:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4043:12:88","nodeType":"YulIdentifier","src":"4043:12:88"},"nativeSrc":"4043:23:88","nodeType":"YulFunctionCall","src":"4043:23:88"},"variables":[{"name":"value","nativeSrc":"4034:5:88","nodeType":"YulTypedName","src":"4034:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4113:5:88","nodeType":"YulIdentifier","src":"4113:5:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"4075:37:88","nodeType":"YulIdentifier","src":"4075:37:88"},"nativeSrc":"4075:44:88","nodeType":"YulFunctionCall","src":"4075:44:88"},"nativeSrc":"4075:44:88","nodeType":"YulExpressionStatement","src":"4075:44:88"},{"nativeSrc":"4128:15:88","nodeType":"YulAssignment","src":"4128:15:88","value":{"name":"value","nativeSrc":"4138:5:88","nodeType":"YulIdentifier","src":"4138:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4128:6:88","nodeType":"YulIdentifier","src":"4128:6:88"}]},{"nativeSrc":"4152:16:88","nodeType":"YulVariableDeclaration","src":"4152:16:88","value":{"kind":"number","nativeSrc":"4167:1:88","nodeType":"YulLiteral","src":"4167:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"4156:7:88","nodeType":"YulTypedName","src":"4156:7:88","type":""}]},{"nativeSrc":"4177:43:88","nodeType":"YulAssignment","src":"4177:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4205:9:88","nodeType":"YulIdentifier","src":"4205:9:88"},{"kind":"number","nativeSrc":"4216:2:88","nodeType":"YulLiteral","src":"4216:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4201:3:88","nodeType":"YulIdentifier","src":"4201:3:88"},"nativeSrc":"4201:18:88","nodeType":"YulFunctionCall","src":"4201:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4188:12:88","nodeType":"YulIdentifier","src":"4188:12:88"},"nativeSrc":"4188:32:88","nodeType":"YulFunctionCall","src":"4188:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"4177:7:88","nodeType":"YulIdentifier","src":"4177:7:88"}]},{"nativeSrc":"4229:17:88","nodeType":"YulAssignment","src":"4229:17:88","value":{"name":"value_1","nativeSrc":"4239:7:88","nodeType":"YulIdentifier","src":"4239:7:88"},"variableNames":[{"name":"value1","nativeSrc":"4229:6:88","nodeType":"YulIdentifier","src":"4229:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IEToken_$23549t_uint256","nativeSrc":"3855:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3917:9:88","nodeType":"YulTypedName","src":"3917:9:88","type":""},{"name":"dataEnd","nativeSrc":"3928:7:88","nodeType":"YulTypedName","src":"3928:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3940:6:88","nodeType":"YulTypedName","src":"3940:6:88","type":""},{"name":"value1","nativeSrc":"3948:6:88","nodeType":"YulTypedName","src":"3948:6:88","type":""}],"src":"3855:397:88"},{"body":{"nativeSrc":"4358:102:88","nodeType":"YulBlock","src":"4358:102:88","statements":[{"nativeSrc":"4368:26:88","nodeType":"YulAssignment","src":"4368:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4380:9:88","nodeType":"YulIdentifier","src":"4380:9:88"},{"kind":"number","nativeSrc":"4391:2:88","nodeType":"YulLiteral","src":"4391:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4376:3:88","nodeType":"YulIdentifier","src":"4376:3:88"},"nativeSrc":"4376:18:88","nodeType":"YulFunctionCall","src":"4376:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4368:4:88","nodeType":"YulIdentifier","src":"4368:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4410:9:88","nodeType":"YulIdentifier","src":"4410:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4425:6:88","nodeType":"YulIdentifier","src":"4425:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4441:3:88","nodeType":"YulLiteral","src":"4441:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4446:1:88","nodeType":"YulLiteral","src":"4446:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4437:3:88","nodeType":"YulIdentifier","src":"4437:3:88"},"nativeSrc":"4437:11:88","nodeType":"YulFunctionCall","src":"4437:11:88"},{"kind":"number","nativeSrc":"4450:1:88","nodeType":"YulLiteral","src":"4450:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4433:3:88","nodeType":"YulIdentifier","src":"4433:3:88"},"nativeSrc":"4433:19:88","nodeType":"YulFunctionCall","src":"4433:19:88"}],"functionName":{"name":"and","nativeSrc":"4421:3:88","nodeType":"YulIdentifier","src":"4421:3:88"},"nativeSrc":"4421:32:88","nodeType":"YulFunctionCall","src":"4421:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4403:6:88","nodeType":"YulIdentifier","src":"4403:6:88"},"nativeSrc":"4403:51:88","nodeType":"YulFunctionCall","src":"4403:51:88"},"nativeSrc":"4403:51:88","nodeType":"YulExpressionStatement","src":"4403:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4257:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4327:9:88","nodeType":"YulTypedName","src":"4327:9:88","type":""},{"name":"value0","nativeSrc":"4338:6:88","nodeType":"YulTypedName","src":"4338:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4349:4:88","nodeType":"YulTypedName","src":"4349:4:88","type":""}],"src":"4257:203:88"},{"body":{"nativeSrc":"4614:463:88","nodeType":"YulBlock","src":"4614:463:88","statements":[{"body":{"nativeSrc":"4661:16:88","nodeType":"YulBlock","src":"4661:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4670:1:88","nodeType":"YulLiteral","src":"4670:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4673:1:88","nodeType":"YulLiteral","src":"4673:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4663:6:88","nodeType":"YulIdentifier","src":"4663:6:88"},"nativeSrc":"4663:12:88","nodeType":"YulFunctionCall","src":"4663:12:88"},"nativeSrc":"4663:12:88","nodeType":"YulExpressionStatement","src":"4663:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4635:7:88","nodeType":"YulIdentifier","src":"4635:7:88"},{"name":"headStart","nativeSrc":"4644:9:88","nodeType":"YulIdentifier","src":"4644:9:88"}],"functionName":{"name":"sub","nativeSrc":"4631:3:88","nodeType":"YulIdentifier","src":"4631:3:88"},"nativeSrc":"4631:23:88","nodeType":"YulFunctionCall","src":"4631:23:88"},{"kind":"number","nativeSrc":"4656:3:88","nodeType":"YulLiteral","src":"4656:3:88","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"4627:3:88","nodeType":"YulIdentifier","src":"4627:3:88"},"nativeSrc":"4627:33:88","nodeType":"YulFunctionCall","src":"4627:33:88"},"nativeSrc":"4624:53:88","nodeType":"YulIf","src":"4624:53:88"},{"nativeSrc":"4686:58:88","nodeType":"YulAssignment","src":"4686:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4725:9:88","nodeType":"YulIdentifier","src":"4725:9:88"},{"name":"dataEnd","nativeSrc":"4736:7:88","nodeType":"YulIdentifier","src":"4736:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"4696:28:88","nodeType":"YulIdentifier","src":"4696:28:88"},"nativeSrc":"4696:48:88","nodeType":"YulFunctionCall","src":"4696:48:88"},"variableNames":[{"name":"value0","nativeSrc":"4686:6:88","nodeType":"YulIdentifier","src":"4686:6:88"}]},{"nativeSrc":"4753:46:88","nodeType":"YulVariableDeclaration","src":"4753:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4783:9:88","nodeType":"YulIdentifier","src":"4783:9:88"},{"kind":"number","nativeSrc":"4794:3:88","nodeType":"YulLiteral","src":"4794:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"4779:3:88","nodeType":"YulIdentifier","src":"4779:3:88"},"nativeSrc":"4779:19:88","nodeType":"YulFunctionCall","src":"4779:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4766:12:88","nodeType":"YulIdentifier","src":"4766:12:88"},"nativeSrc":"4766:33:88","nodeType":"YulFunctionCall","src":"4766:33:88"},"variables":[{"name":"value","nativeSrc":"4757:5:88","nodeType":"YulTypedName","src":"4757:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4846:5:88","nodeType":"YulIdentifier","src":"4846:5:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"4808:37:88","nodeType":"YulIdentifier","src":"4808:37:88"},"nativeSrc":"4808:44:88","nodeType":"YulFunctionCall","src":"4808:44:88"},"nativeSrc":"4808:44:88","nodeType":"YulExpressionStatement","src":"4808:44:88"},{"nativeSrc":"4861:15:88","nodeType":"YulAssignment","src":"4861:15:88","value":{"name":"value","nativeSrc":"4871:5:88","nodeType":"YulIdentifier","src":"4871:5:88"},"variableNames":[{"name":"value1","nativeSrc":"4861:6:88","nodeType":"YulIdentifier","src":"4861:6:88"}]},{"nativeSrc":"4885:48:88","nodeType":"YulVariableDeclaration","src":"4885:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4917:9:88","nodeType":"YulIdentifier","src":"4917:9:88"},{"kind":"number","nativeSrc":"4928:3:88","nodeType":"YulLiteral","src":"4928:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"4913:3:88","nodeType":"YulIdentifier","src":"4913:3:88"},"nativeSrc":"4913:19:88","nodeType":"YulFunctionCall","src":"4913:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"4900:12:88","nodeType":"YulIdentifier","src":"4900:12:88"},"nativeSrc":"4900:33:88","nodeType":"YulFunctionCall","src":"4900:33:88"},"variables":[{"name":"value_1","nativeSrc":"4889:7:88","nodeType":"YulTypedName","src":"4889:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4980:7:88","nodeType":"YulIdentifier","src":"4980:7:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"4942:37:88","nodeType":"YulIdentifier","src":"4942:37:88"},"nativeSrc":"4942:46:88","nodeType":"YulFunctionCall","src":"4942:46:88"},"nativeSrc":"4942:46:88","nodeType":"YulExpressionStatement","src":"4942:46:88"},{"nativeSrc":"4997:17:88","nodeType":"YulAssignment","src":"4997:17:88","value":{"name":"value_1","nativeSrc":"5007:7:88","nodeType":"YulIdentifier","src":"5007:7:88"},"variableNames":[{"name":"value2","nativeSrc":"4997:6:88","nodeType":"YulIdentifier","src":"4997:6:88"}]},{"nativeSrc":"5023:48:88","nodeType":"YulAssignment","src":"5023:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5055:9:88","nodeType":"YulIdentifier","src":"5055:9:88"},{"kind":"number","nativeSrc":"5066:3:88","nodeType":"YulLiteral","src":"5066:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"5051:3:88","nodeType":"YulIdentifier","src":"5051:3:88"},"nativeSrc":"5051:19:88","nodeType":"YulFunctionCall","src":"5051:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"5033:17:88","nodeType":"YulIdentifier","src":"5033:17:88"},"nativeSrc":"5033:38:88","nodeType":"YulFunctionCall","src":"5033:38:88"},"variableNames":[{"name":"value3","nativeSrc":"5023:6:88","nodeType":"YulIdentifier","src":"5023:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96","nativeSrc":"4465:612:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4556:9:88","nodeType":"YulTypedName","src":"4556:9:88","type":""},{"name":"dataEnd","nativeSrc":"4567:7:88","nodeType":"YulTypedName","src":"4567:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4579:6:88","nodeType":"YulTypedName","src":"4579:6:88","type":""},{"name":"value1","nativeSrc":"4587:6:88","nodeType":"YulTypedName","src":"4587:6:88","type":""},{"name":"value2","nativeSrc":"4595:6:88","nodeType":"YulTypedName","src":"4595:6:88","type":""},{"name":"value3","nativeSrc":"4603:6:88","nodeType":"YulTypedName","src":"4603:6:88","type":""}],"src":"4465:612:88"},{"body":{"nativeSrc":"5298:1599:88","nodeType":"YulBlock","src":"5298:1599:88","statements":[{"nativeSrc":"5308:33:88","nodeType":"YulVariableDeclaration","src":"5308:33:88","value":{"arguments":[{"name":"dataEnd","nativeSrc":"5322:7:88","nodeType":"YulIdentifier","src":"5322:7:88"},{"name":"headStart","nativeSrc":"5331:9:88","nodeType":"YulIdentifier","src":"5331:9:88"}],"functionName":{"name":"sub","nativeSrc":"5318:3:88","nodeType":"YulIdentifier","src":"5318:3:88"},"nativeSrc":"5318:23:88","nodeType":"YulFunctionCall","src":"5318:23:88"},"variables":[{"name":"_1","nativeSrc":"5312:2:88","nodeType":"YulTypedName","src":"5312:2:88","type":""}]},{"body":{"nativeSrc":"5366:16:88","nodeType":"YulBlock","src":"5366:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5375:1:88","nodeType":"YulLiteral","src":"5375:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5378:1:88","nodeType":"YulLiteral","src":"5378:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5368:6:88","nodeType":"YulIdentifier","src":"5368:6:88"},"nativeSrc":"5368:12:88","nodeType":"YulFunctionCall","src":"5368:12:88"},"nativeSrc":"5368:12:88","nodeType":"YulExpressionStatement","src":"5368:12:88"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"5357:2:88","nodeType":"YulIdentifier","src":"5357:2:88"},{"kind":"number","nativeSrc":"5361:3:88","nodeType":"YulLiteral","src":"5361:3:88","type":"","value":"416"}],"functionName":{"name":"slt","nativeSrc":"5353:3:88","nodeType":"YulIdentifier","src":"5353:3:88"},"nativeSrc":"5353:12:88","nodeType":"YulFunctionCall","src":"5353:12:88"},"nativeSrc":"5350:32:88","nodeType":"YulIf","src":"5350:32:88"},{"nativeSrc":"5391:36:88","nodeType":"YulVariableDeclaration","src":"5391:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5417:9:88","nodeType":"YulIdentifier","src":"5417:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5404:12:88","nodeType":"YulIdentifier","src":"5404:12:88"},"nativeSrc":"5404:23:88","nodeType":"YulFunctionCall","src":"5404:23:88"},"variables":[{"name":"value","nativeSrc":"5395:5:88","nodeType":"YulTypedName","src":"5395:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5474:5:88","nodeType":"YulIdentifier","src":"5474:5:88"}],"functionName":{"name":"validator_revert_contract_IRiskModule","nativeSrc":"5436:37:88","nodeType":"YulIdentifier","src":"5436:37:88"},"nativeSrc":"5436:44:88","nodeType":"YulFunctionCall","src":"5436:44:88"},"nativeSrc":"5436:44:88","nodeType":"YulExpressionStatement","src":"5436:44:88"},{"nativeSrc":"5489:15:88","nodeType":"YulAssignment","src":"5489:15:88","value":{"name":"value","nativeSrc":"5499:5:88","nodeType":"YulIdentifier","src":"5499:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5489:6:88","nodeType":"YulIdentifier","src":"5489:6:88"}]},{"body":{"nativeSrc":"5544:16:88","nodeType":"YulBlock","src":"5544:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5553:1:88","nodeType":"YulLiteral","src":"5553:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5556:1:88","nodeType":"YulLiteral","src":"5556:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5546:6:88","nodeType":"YulIdentifier","src":"5546:6:88"},"nativeSrc":"5546:12:88","nodeType":"YulFunctionCall","src":"5546:12:88"},"nativeSrc":"5546:12:88","nodeType":"YulExpressionStatement","src":"5546:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5524:2:88","nodeType":"YulIdentifier","src":"5524:2:88"},{"arguments":[{"kind":"number","nativeSrc":"5532:2:88","nodeType":"YulLiteral","src":"5532:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5528:3:88","nodeType":"YulIdentifier","src":"5528:3:88"},"nativeSrc":"5528:7:88","nodeType":"YulFunctionCall","src":"5528:7:88"}],"functionName":{"name":"add","nativeSrc":"5520:3:88","nodeType":"YulIdentifier","src":"5520:3:88"},"nativeSrc":"5520:16:88","nodeType":"YulFunctionCall","src":"5520:16:88"},{"kind":"number","nativeSrc":"5538:4:88","nodeType":"YulLiteral","src":"5538:4:88","type":"","value":"0xe0"}],"functionName":{"name":"slt","nativeSrc":"5516:3:88","nodeType":"YulIdentifier","src":"5516:3:88"},"nativeSrc":"5516:27:88","nodeType":"YulFunctionCall","src":"5516:27:88"},"nativeSrc":"5513:47:88","nodeType":"YulIf","src":"5513:47:88"},{"nativeSrc":"5569:32:88","nodeType":"YulVariableDeclaration","src":"5569:32:88","value":{"arguments":[],"functionName":{"name":"allocate_memory","nativeSrc":"5584:15:88","nodeType":"YulIdentifier","src":"5584:15:88"},"nativeSrc":"5584:17:88","nodeType":"YulFunctionCall","src":"5584:17:88"},"variables":[{"name":"value_1","nativeSrc":"5573:7:88","nodeType":"YulTypedName","src":"5573:7:88","type":""}]},{"nativeSrc":"5610:16:88","nodeType":"YulVariableDeclaration","src":"5610:16:88","value":{"kind":"number","nativeSrc":"5625:1:88","nodeType":"YulLiteral","src":"5625:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"5614:7:88","nodeType":"YulTypedName","src":"5614:7:88","type":""}]},{"nativeSrc":"5635:43:88","nodeType":"YulAssignment","src":"5635:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5663:9:88","nodeType":"YulIdentifier","src":"5663:9:88"},{"kind":"number","nativeSrc":"5674:2:88","nodeType":"YulLiteral","src":"5674:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5659:3:88","nodeType":"YulIdentifier","src":"5659:3:88"},"nativeSrc":"5659:18:88","nodeType":"YulFunctionCall","src":"5659:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5646:12:88","nodeType":"YulIdentifier","src":"5646:12:88"},"nativeSrc":"5646:32:88","nodeType":"YulFunctionCall","src":"5646:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"5635:7:88","nodeType":"YulIdentifier","src":"5635:7:88"}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"5694:7:88","nodeType":"YulIdentifier","src":"5694:7:88"},{"name":"value_2","nativeSrc":"5703:7:88","nodeType":"YulIdentifier","src":"5703:7:88"}],"functionName":{"name":"mstore","nativeSrc":"5687:6:88","nodeType":"YulIdentifier","src":"5687:6:88"},"nativeSrc":"5687:24:88","nodeType":"YulFunctionCall","src":"5687:24:88"},"nativeSrc":"5687:24:88","nodeType":"YulExpressionStatement","src":"5687:24:88"},{"nativeSrc":"5720:16:88","nodeType":"YulVariableDeclaration","src":"5720:16:88","value":{"kind":"number","nativeSrc":"5735:1:88","nodeType":"YulLiteral","src":"5735:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"5724:7:88","nodeType":"YulTypedName","src":"5724:7:88","type":""}]},{"nativeSrc":"5745:43:88","nodeType":"YulAssignment","src":"5745:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5773:9:88","nodeType":"YulIdentifier","src":"5773:9:88"},{"kind":"number","nativeSrc":"5784:2:88","nodeType":"YulLiteral","src":"5784:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5769:3:88","nodeType":"YulIdentifier","src":"5769:3:88"},"nativeSrc":"5769:18:88","nodeType":"YulFunctionCall","src":"5769:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5756:12:88","nodeType":"YulIdentifier","src":"5756:12:88"},"nativeSrc":"5756:32:88","nodeType":"YulFunctionCall","src":"5756:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"5745:7:88","nodeType":"YulIdentifier","src":"5745:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"5808:7:88","nodeType":"YulIdentifier","src":"5808:7:88"},{"kind":"number","nativeSrc":"5817:2:88","nodeType":"YulLiteral","src":"5817:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5804:3:88","nodeType":"YulIdentifier","src":"5804:3:88"},"nativeSrc":"5804:16:88","nodeType":"YulFunctionCall","src":"5804:16:88"},{"name":"value_3","nativeSrc":"5822:7:88","nodeType":"YulIdentifier","src":"5822:7:88"}],"functionName":{"name":"mstore","nativeSrc":"5797:6:88","nodeType":"YulIdentifier","src":"5797:6:88"},"nativeSrc":"5797:33:88","nodeType":"YulFunctionCall","src":"5797:33:88"},"nativeSrc":"5797:33:88","nodeType":"YulExpressionStatement","src":"5797:33:88"},{"nativeSrc":"5839:16:88","nodeType":"YulVariableDeclaration","src":"5839:16:88","value":{"kind":"number","nativeSrc":"5854:1:88","nodeType":"YulLiteral","src":"5854:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"5843:7:88","nodeType":"YulTypedName","src":"5843:7:88","type":""}]},{"nativeSrc":"5864:43:88","nodeType":"YulAssignment","src":"5864:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5892:9:88","nodeType":"YulIdentifier","src":"5892:9:88"},{"kind":"number","nativeSrc":"5903:2:88","nodeType":"YulLiteral","src":"5903:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5888:3:88","nodeType":"YulIdentifier","src":"5888:3:88"},"nativeSrc":"5888:18:88","nodeType":"YulFunctionCall","src":"5888:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"5875:12:88","nodeType":"YulIdentifier","src":"5875:12:88"},"nativeSrc":"5875:32:88","nodeType":"YulFunctionCall","src":"5875:32:88"},"variableNames":[{"name":"value_4","nativeSrc":"5864:7:88","nodeType":"YulIdentifier","src":"5864:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"5927:7:88","nodeType":"YulIdentifier","src":"5927:7:88"},{"kind":"number","nativeSrc":"5936:2:88","nodeType":"YulLiteral","src":"5936:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5923:3:88","nodeType":"YulIdentifier","src":"5923:3:88"},"nativeSrc":"5923:16:88","nodeType":"YulFunctionCall","src":"5923:16:88"},{"name":"value_4","nativeSrc":"5941:7:88","nodeType":"YulIdentifier","src":"5941:7:88"}],"functionName":{"name":"mstore","nativeSrc":"5916:6:88","nodeType":"YulIdentifier","src":"5916:6:88"},"nativeSrc":"5916:33:88","nodeType":"YulFunctionCall","src":"5916:33:88"},"nativeSrc":"5916:33:88","nodeType":"YulExpressionStatement","src":"5916:33:88"},{"nativeSrc":"5958:16:88","nodeType":"YulVariableDeclaration","src":"5958:16:88","value":{"kind":"number","nativeSrc":"5973:1:88","nodeType":"YulLiteral","src":"5973:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"5962:7:88","nodeType":"YulTypedName","src":"5962:7:88","type":""}]},{"nativeSrc":"5983:44:88","nodeType":"YulAssignment","src":"5983:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6011:9:88","nodeType":"YulIdentifier","src":"6011:9:88"},{"kind":"number","nativeSrc":"6022:3:88","nodeType":"YulLiteral","src":"6022:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6007:3:88","nodeType":"YulIdentifier","src":"6007:3:88"},"nativeSrc":"6007:19:88","nodeType":"YulFunctionCall","src":"6007:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"5994:12:88","nodeType":"YulIdentifier","src":"5994:12:88"},"nativeSrc":"5994:33:88","nodeType":"YulFunctionCall","src":"5994:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"5983:7:88","nodeType":"YulIdentifier","src":"5983:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6047:7:88","nodeType":"YulIdentifier","src":"6047:7:88"},{"kind":"number","nativeSrc":"6056:2:88","nodeType":"YulLiteral","src":"6056:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6043:3:88","nodeType":"YulIdentifier","src":"6043:3:88"},"nativeSrc":"6043:16:88","nodeType":"YulFunctionCall","src":"6043:16:88"},{"name":"value_5","nativeSrc":"6061:7:88","nodeType":"YulIdentifier","src":"6061:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6036:6:88","nodeType":"YulIdentifier","src":"6036:6:88"},"nativeSrc":"6036:33:88","nodeType":"YulFunctionCall","src":"6036:33:88"},"nativeSrc":"6036:33:88","nodeType":"YulExpressionStatement","src":"6036:33:88"},{"nativeSrc":"6078:16:88","nodeType":"YulVariableDeclaration","src":"6078:16:88","value":{"kind":"number","nativeSrc":"6093:1:88","nodeType":"YulLiteral","src":"6093:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"6082:7:88","nodeType":"YulTypedName","src":"6082:7:88","type":""}]},{"nativeSrc":"6103:44:88","nodeType":"YulAssignment","src":"6103:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6131:9:88","nodeType":"YulIdentifier","src":"6131:9:88"},{"kind":"number","nativeSrc":"6142:3:88","nodeType":"YulLiteral","src":"6142:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6127:3:88","nodeType":"YulIdentifier","src":"6127:3:88"},"nativeSrc":"6127:19:88","nodeType":"YulFunctionCall","src":"6127:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6114:12:88","nodeType":"YulIdentifier","src":"6114:12:88"},"nativeSrc":"6114:33:88","nodeType":"YulFunctionCall","src":"6114:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"6103:7:88","nodeType":"YulIdentifier","src":"6103:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6167:7:88","nodeType":"YulIdentifier","src":"6167:7:88"},{"kind":"number","nativeSrc":"6176:3:88","nodeType":"YulLiteral","src":"6176:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6163:3:88","nodeType":"YulIdentifier","src":"6163:3:88"},"nativeSrc":"6163:17:88","nodeType":"YulFunctionCall","src":"6163:17:88"},{"name":"value_6","nativeSrc":"6182:7:88","nodeType":"YulIdentifier","src":"6182:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6156:6:88","nodeType":"YulIdentifier","src":"6156:6:88"},"nativeSrc":"6156:34:88","nodeType":"YulFunctionCall","src":"6156:34:88"},"nativeSrc":"6156:34:88","nodeType":"YulExpressionStatement","src":"6156:34:88"},{"nativeSrc":"6199:16:88","nodeType":"YulVariableDeclaration","src":"6199:16:88","value":{"kind":"number","nativeSrc":"6214:1:88","nodeType":"YulLiteral","src":"6214:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"6203:7:88","nodeType":"YulTypedName","src":"6203:7:88","type":""}]},{"nativeSrc":"6224:44:88","nodeType":"YulAssignment","src":"6224:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6252:9:88","nodeType":"YulIdentifier","src":"6252:9:88"},{"kind":"number","nativeSrc":"6263:3:88","nodeType":"YulLiteral","src":"6263:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6248:3:88","nodeType":"YulIdentifier","src":"6248:3:88"},"nativeSrc":"6248:19:88","nodeType":"YulFunctionCall","src":"6248:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6235:12:88","nodeType":"YulIdentifier","src":"6235:12:88"},"nativeSrc":"6235:33:88","nodeType":"YulFunctionCall","src":"6235:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"6224:7:88","nodeType":"YulIdentifier","src":"6224:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6288:7:88","nodeType":"YulIdentifier","src":"6288:7:88"},{"kind":"number","nativeSrc":"6297:3:88","nodeType":"YulLiteral","src":"6297:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6284:3:88","nodeType":"YulIdentifier","src":"6284:3:88"},"nativeSrc":"6284:17:88","nodeType":"YulFunctionCall","src":"6284:17:88"},{"name":"value_7","nativeSrc":"6303:7:88","nodeType":"YulIdentifier","src":"6303:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6277:6:88","nodeType":"YulIdentifier","src":"6277:6:88"},"nativeSrc":"6277:34:88","nodeType":"YulFunctionCall","src":"6277:34:88"},"nativeSrc":"6277:34:88","nodeType":"YulExpressionStatement","src":"6277:34:88"},{"nativeSrc":"6320:16:88","nodeType":"YulVariableDeclaration","src":"6320:16:88","value":{"kind":"number","nativeSrc":"6335:1:88","nodeType":"YulLiteral","src":"6335:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"6324:7:88","nodeType":"YulTypedName","src":"6324:7:88","type":""}]},{"nativeSrc":"6345:45:88","nodeType":"YulAssignment","src":"6345:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6373:9:88","nodeType":"YulIdentifier","src":"6373:9:88"},{"kind":"number","nativeSrc":"6384:4:88","nodeType":"YulLiteral","src":"6384:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"6369:3:88","nodeType":"YulIdentifier","src":"6369:3:88"},"nativeSrc":"6369:20:88","nodeType":"YulFunctionCall","src":"6369:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"6356:12:88","nodeType":"YulIdentifier","src":"6356:12:88"},"nativeSrc":"6356:34:88","nodeType":"YulFunctionCall","src":"6356:34:88"},"variableNames":[{"name":"value_8","nativeSrc":"6345:7:88","nodeType":"YulIdentifier","src":"6345:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6410:7:88","nodeType":"YulIdentifier","src":"6410:7:88"},{"kind":"number","nativeSrc":"6419:3:88","nodeType":"YulLiteral","src":"6419:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6406:3:88","nodeType":"YulIdentifier","src":"6406:3:88"},"nativeSrc":"6406:17:88","nodeType":"YulFunctionCall","src":"6406:17:88"},{"name":"value_8","nativeSrc":"6425:7:88","nodeType":"YulIdentifier","src":"6425:7:88"}],"functionName":{"name":"mstore","nativeSrc":"6399:6:88","nodeType":"YulIdentifier","src":"6399:6:88"},"nativeSrc":"6399:34:88","nodeType":"YulFunctionCall","src":"6399:34:88"},"nativeSrc":"6399:34:88","nodeType":"YulExpressionStatement","src":"6399:34:88"},{"nativeSrc":"6442:17:88","nodeType":"YulAssignment","src":"6442:17:88","value":{"name":"value_1","nativeSrc":"6452:7:88","nodeType":"YulIdentifier","src":"6452:7:88"},"variableNames":[{"name":"value1","nativeSrc":"6442:6:88","nodeType":"YulIdentifier","src":"6442:6:88"}]},{"nativeSrc":"6468:16:88","nodeType":"YulVariableDeclaration","src":"6468:16:88","value":{"kind":"number","nativeSrc":"6483:1:88","nodeType":"YulLiteral","src":"6483:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"6472:7:88","nodeType":"YulTypedName","src":"6472:7:88","type":""}]},{"nativeSrc":"6493:44:88","nodeType":"YulAssignment","src":"6493:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6521:9:88","nodeType":"YulIdentifier","src":"6521:9:88"},{"kind":"number","nativeSrc":"6532:3:88","nodeType":"YulLiteral","src":"6532:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"6517:3:88","nodeType":"YulIdentifier","src":"6517:3:88"},"nativeSrc":"6517:19:88","nodeType":"YulFunctionCall","src":"6517:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6504:12:88","nodeType":"YulIdentifier","src":"6504:12:88"},"nativeSrc":"6504:33:88","nodeType":"YulFunctionCall","src":"6504:33:88"},"variableNames":[{"name":"value_9","nativeSrc":"6493:7:88","nodeType":"YulIdentifier","src":"6493:7:88"}]},{"nativeSrc":"6546:17:88","nodeType":"YulAssignment","src":"6546:17:88","value":{"name":"value_9","nativeSrc":"6556:7:88","nodeType":"YulIdentifier","src":"6556:7:88"},"variableNames":[{"name":"value2","nativeSrc":"6546:6:88","nodeType":"YulIdentifier","src":"6546:6:88"}]},{"nativeSrc":"6572:17:88","nodeType":"YulVariableDeclaration","src":"6572:17:88","value":{"kind":"number","nativeSrc":"6588:1:88","nodeType":"YulLiteral","src":"6588:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"6576:8:88","nodeType":"YulTypedName","src":"6576:8:88","type":""}]},{"nativeSrc":"6598:45:88","nodeType":"YulAssignment","src":"6598:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6627:9:88","nodeType":"YulIdentifier","src":"6627:9:88"},{"kind":"number","nativeSrc":"6638:3:88","nodeType":"YulLiteral","src":"6638:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"6623:3:88","nodeType":"YulIdentifier","src":"6623:3:88"},"nativeSrc":"6623:19:88","nodeType":"YulFunctionCall","src":"6623:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6610:12:88","nodeType":"YulIdentifier","src":"6610:12:88"},"nativeSrc":"6610:33:88","nodeType":"YulFunctionCall","src":"6610:33:88"},"variableNames":[{"name":"value_10","nativeSrc":"6598:8:88","nodeType":"YulIdentifier","src":"6598:8:88"}]},{"nativeSrc":"6652:18:88","nodeType":"YulAssignment","src":"6652:18:88","value":{"name":"value_10","nativeSrc":"6662:8:88","nodeType":"YulIdentifier","src":"6662:8:88"},"variableNames":[{"name":"value3","nativeSrc":"6652:6:88","nodeType":"YulIdentifier","src":"6652:6:88"}]},{"nativeSrc":"6679:17:88","nodeType":"YulVariableDeclaration","src":"6679:17:88","value":{"kind":"number","nativeSrc":"6695:1:88","nodeType":"YulLiteral","src":"6695:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"6683:8:88","nodeType":"YulTypedName","src":"6683:8:88","type":""}]},{"nativeSrc":"6705:45:88","nodeType":"YulAssignment","src":"6705:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6734:9:88","nodeType":"YulIdentifier","src":"6734:9:88"},{"kind":"number","nativeSrc":"6745:3:88","nodeType":"YulLiteral","src":"6745:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"6730:3:88","nodeType":"YulIdentifier","src":"6730:3:88"},"nativeSrc":"6730:19:88","nodeType":"YulFunctionCall","src":"6730:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6717:12:88","nodeType":"YulIdentifier","src":"6717:12:88"},"nativeSrc":"6717:33:88","nodeType":"YulFunctionCall","src":"6717:33:88"},"variableNames":[{"name":"value_11","nativeSrc":"6705:8:88","nodeType":"YulIdentifier","src":"6705:8:88"}]},{"nativeSrc":"6759:18:88","nodeType":"YulAssignment","src":"6759:18:88","value":{"name":"value_11","nativeSrc":"6769:8:88","nodeType":"YulIdentifier","src":"6769:8:88"},"variableNames":[{"name":"value4","nativeSrc":"6759:6:88","nodeType":"YulIdentifier","src":"6759:6:88"}]},{"nativeSrc":"6786:48:88","nodeType":"YulAssignment","src":"6786:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6818:9:88","nodeType":"YulIdentifier","src":"6818:9:88"},{"kind":"number","nativeSrc":"6829:3:88","nodeType":"YulLiteral","src":"6829:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"6814:3:88","nodeType":"YulIdentifier","src":"6814:3:88"},"nativeSrc":"6814:19:88","nodeType":"YulFunctionCall","src":"6814:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"6796:17:88","nodeType":"YulIdentifier","src":"6796:17:88"},"nativeSrc":"6796:38:88","nodeType":"YulFunctionCall","src":"6796:38:88"},"variableNames":[{"name":"value5","nativeSrc":"6786:6:88","nodeType":"YulIdentifier","src":"6786:6:88"}]},{"nativeSrc":"6843:48:88","nodeType":"YulAssignment","src":"6843:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6875:9:88","nodeType":"YulIdentifier","src":"6875:9:88"},{"kind":"number","nativeSrc":"6886:3:88","nodeType":"YulLiteral","src":"6886:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"6871:3:88","nodeType":"YulIdentifier","src":"6871:3:88"},"nativeSrc":"6871:19:88","nodeType":"YulFunctionCall","src":"6871:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"6853:17:88","nodeType":"YulIdentifier","src":"6853:17:88"},"nativeSrc":"6853:38:88","nodeType":"YulFunctionCall","src":"6853:38:88"},"variableNames":[{"name":"value6","nativeSrc":"6843:6:88","nodeType":"YulIdentifier","src":"6843:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IRiskModule_$23983t_struct$_Params_$23926_memory_ptrt_uint256t_uint256t_uint256t_uint40t_uint40","nativeSrc":"5082:1815:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5216:9:88","nodeType":"YulTypedName","src":"5216:9:88","type":""},{"name":"dataEnd","nativeSrc":"5227:7:88","nodeType":"YulTypedName","src":"5227:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5239:6:88","nodeType":"YulTypedName","src":"5239:6:88","type":""},{"name":"value1","nativeSrc":"5247:6:88","nodeType":"YulTypedName","src":"5247:6:88","type":""},{"name":"value2","nativeSrc":"5255:6:88","nodeType":"YulTypedName","src":"5255:6:88","type":""},{"name":"value3","nativeSrc":"5263:6:88","nodeType":"YulTypedName","src":"5263:6:88","type":""},{"name":"value4","nativeSrc":"5271:6:88","nodeType":"YulTypedName","src":"5271:6:88","type":""},{"name":"value5","nativeSrc":"5279:6:88","nodeType":"YulTypedName","src":"5279:6:88","type":""},{"name":"value6","nativeSrc":"5287:6:88","nodeType":"YulTypedName","src":"5287:6:88","type":""}],"src":"5082:1815:88"},{"body":{"nativeSrc":"6975:86:88","nodeType":"YulBlock","src":"6975:86:88","statements":[{"body":{"nativeSrc":"7015:16:88","nodeType":"YulBlock","src":"7015:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7024:1:88","nodeType":"YulLiteral","src":"7024:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7027:1:88","nodeType":"YulLiteral","src":"7027:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7017:6:88","nodeType":"YulIdentifier","src":"7017:6:88"},"nativeSrc":"7017:12:88","nodeType":"YulFunctionCall","src":"7017:12:88"},"nativeSrc":"7017:12:88","nodeType":"YulExpressionStatement","src":"7017:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"6996:3:88","nodeType":"YulIdentifier","src":"6996:3:88"},{"name":"offset","nativeSrc":"7001:6:88","nodeType":"YulIdentifier","src":"7001:6:88"}],"functionName":{"name":"sub","nativeSrc":"6992:3:88","nodeType":"YulIdentifier","src":"6992:3:88"},"nativeSrc":"6992:16:88","nodeType":"YulFunctionCall","src":"6992:16:88"},{"kind":"number","nativeSrc":"7010:3:88","nodeType":"YulLiteral","src":"7010:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"6988:3:88","nodeType":"YulIdentifier","src":"6988:3:88"},"nativeSrc":"6988:26:88","nodeType":"YulFunctionCall","src":"6988:26:88"},"nativeSrc":"6985:46:88","nodeType":"YulIf","src":"6985:46:88"},{"nativeSrc":"7040:15:88","nodeType":"YulAssignment","src":"7040:15:88","value":{"name":"offset","nativeSrc":"7049:6:88","nodeType":"YulIdentifier","src":"7049:6:88"},"variableNames":[{"name":"value","nativeSrc":"7040:5:88","nodeType":"YulIdentifier","src":"7040:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"6902:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6949:6:88","nodeType":"YulTypedName","src":"6949:6:88","type":""},{"name":"end","nativeSrc":"6957:3:88","nodeType":"YulTypedName","src":"6957:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6965:5:88","nodeType":"YulTypedName","src":"6965:5:88","type":""}],"src":"6902:159:88"},{"body":{"nativeSrc":"7167:145:88","nodeType":"YulBlock","src":"7167:145:88","statements":[{"body":{"nativeSrc":"7214:16:88","nodeType":"YulBlock","src":"7214:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7223:1:88","nodeType":"YulLiteral","src":"7223:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7226:1:88","nodeType":"YulLiteral","src":"7226:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7216:6:88","nodeType":"YulIdentifier","src":"7216:6:88"},"nativeSrc":"7216:12:88","nodeType":"YulFunctionCall","src":"7216:12:88"},"nativeSrc":"7216:12:88","nodeType":"YulExpressionStatement","src":"7216:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7188:7:88","nodeType":"YulIdentifier","src":"7188:7:88"},{"name":"headStart","nativeSrc":"7197:9:88","nodeType":"YulIdentifier","src":"7197:9:88"}],"functionName":{"name":"sub","nativeSrc":"7184:3:88","nodeType":"YulIdentifier","src":"7184:3:88"},"nativeSrc":"7184:23:88","nodeType":"YulFunctionCall","src":"7184:23:88"},{"kind":"number","nativeSrc":"7209:3:88","nodeType":"YulLiteral","src":"7209:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"7180:3:88","nodeType":"YulIdentifier","src":"7180:3:88"},"nativeSrc":"7180:33:88","nodeType":"YulFunctionCall","src":"7180:33:88"},"nativeSrc":"7177:53:88","nodeType":"YulIf","src":"7177:53:88"},{"nativeSrc":"7239:67:88","nodeType":"YulAssignment","src":"7239:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7287:9:88","nodeType":"YulIdentifier","src":"7287:9:88"},{"name":"dataEnd","nativeSrc":"7298:7:88","nodeType":"YulIdentifier","src":"7298:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"7249:37:88","nodeType":"YulIdentifier","src":"7249:37:88"},"nativeSrc":"7249:57:88","nodeType":"YulFunctionCall","src":"7249:57:88"},"variableNames":[{"name":"value0","nativeSrc":"7239:6:88","nodeType":"YulIdentifier","src":"7239:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr","nativeSrc":"7066:246:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7133:9:88","nodeType":"YulTypedName","src":"7133:9:88","type":""},{"name":"dataEnd","nativeSrc":"7144:7:88","nodeType":"YulTypedName","src":"7144:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7156:6:88","nodeType":"YulTypedName","src":"7156:6:88","type":""}],"src":"7066:246:88"},{"body":{"nativeSrc":"7377:60:88","nodeType":"YulBlock","src":"7377:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7394:3:88","nodeType":"YulIdentifier","src":"7394:3:88"},{"arguments":[{"name":"value","nativeSrc":"7403:5:88","nodeType":"YulIdentifier","src":"7403:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7418:3:88","nodeType":"YulLiteral","src":"7418:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7423:1:88","nodeType":"YulLiteral","src":"7423:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7414:3:88","nodeType":"YulIdentifier","src":"7414:3:88"},"nativeSrc":"7414:11:88","nodeType":"YulFunctionCall","src":"7414:11:88"},{"kind":"number","nativeSrc":"7427:1:88","nodeType":"YulLiteral","src":"7427:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7410:3:88","nodeType":"YulIdentifier","src":"7410:3:88"},"nativeSrc":"7410:19:88","nodeType":"YulFunctionCall","src":"7410:19:88"}],"functionName":{"name":"and","nativeSrc":"7399:3:88","nodeType":"YulIdentifier","src":"7399:3:88"},"nativeSrc":"7399:31:88","nodeType":"YulFunctionCall","src":"7399:31:88"}],"functionName":{"name":"mstore","nativeSrc":"7387:6:88","nodeType":"YulIdentifier","src":"7387:6:88"},"nativeSrc":"7387:44:88","nodeType":"YulFunctionCall","src":"7387:44:88"},"nativeSrc":"7387:44:88","nodeType":"YulExpressionStatement","src":"7387:44:88"}]},"name":"abi_encode_contract_IAccessManager","nativeSrc":"7317:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7361:5:88","nodeType":"YulTypedName","src":"7361:5:88","type":""},{"name":"pos","nativeSrc":"7368:3:88","nodeType":"YulTypedName","src":"7368:3:88","type":""}],"src":"7317:120:88"},{"body":{"nativeSrc":"7567:102:88","nodeType":"YulBlock","src":"7567:102:88","statements":[{"nativeSrc":"7577:26:88","nodeType":"YulAssignment","src":"7577:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7589:9:88","nodeType":"YulIdentifier","src":"7589:9:88"},{"kind":"number","nativeSrc":"7600:2:88","nodeType":"YulLiteral","src":"7600:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7585:3:88","nodeType":"YulIdentifier","src":"7585:3:88"},"nativeSrc":"7585:18:88","nodeType":"YulFunctionCall","src":"7585:18:88"},"variableNames":[{"name":"tail","nativeSrc":"7577:4:88","nodeType":"YulIdentifier","src":"7577:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7619:9:88","nodeType":"YulIdentifier","src":"7619:9:88"},{"arguments":[{"name":"value0","nativeSrc":"7634:6:88","nodeType":"YulIdentifier","src":"7634:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7650:3:88","nodeType":"YulLiteral","src":"7650:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"7655:1:88","nodeType":"YulLiteral","src":"7655:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7646:3:88","nodeType":"YulIdentifier","src":"7646:3:88"},"nativeSrc":"7646:11:88","nodeType":"YulFunctionCall","src":"7646:11:88"},{"kind":"number","nativeSrc":"7659:1:88","nodeType":"YulLiteral","src":"7659:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7642:3:88","nodeType":"YulIdentifier","src":"7642:3:88"},"nativeSrc":"7642:19:88","nodeType":"YulFunctionCall","src":"7642:19:88"}],"functionName":{"name":"and","nativeSrc":"7630:3:88","nodeType":"YulIdentifier","src":"7630:3:88"},"nativeSrc":"7630:32:88","nodeType":"YulFunctionCall","src":"7630:32:88"}],"functionName":{"name":"mstore","nativeSrc":"7612:6:88","nodeType":"YulIdentifier","src":"7612:6:88"},"nativeSrc":"7612:51:88","nodeType":"YulFunctionCall","src":"7612:51:88"},"nativeSrc":"7612:51:88","nodeType":"YulExpressionStatement","src":"7612:51:88"}]},"name":"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed","nativeSrc":"7442:227:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7536:9:88","nodeType":"YulTypedName","src":"7536:9:88","type":""},{"name":"value0","nativeSrc":"7547:6:88","nodeType":"YulTypedName","src":"7547:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7558:4:88","nodeType":"YulTypedName","src":"7558:4:88","type":""}],"src":"7442:227:88"},{"body":{"nativeSrc":"7744:156:88","nodeType":"YulBlock","src":"7744:156:88","statements":[{"body":{"nativeSrc":"7790:16:88","nodeType":"YulBlock","src":"7790:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7799:1:88","nodeType":"YulLiteral","src":"7799:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7802:1:88","nodeType":"YulLiteral","src":"7802:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7792:6:88","nodeType":"YulIdentifier","src":"7792:6:88"},"nativeSrc":"7792:12:88","nodeType":"YulFunctionCall","src":"7792:12:88"},"nativeSrc":"7792:12:88","nodeType":"YulExpressionStatement","src":"7792:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7765:7:88","nodeType":"YulIdentifier","src":"7765:7:88"},{"name":"headStart","nativeSrc":"7774:9:88","nodeType":"YulIdentifier","src":"7774:9:88"}],"functionName":{"name":"sub","nativeSrc":"7761:3:88","nodeType":"YulIdentifier","src":"7761:3:88"},"nativeSrc":"7761:23:88","nodeType":"YulFunctionCall","src":"7761:23:88"},{"kind":"number","nativeSrc":"7786:2:88","nodeType":"YulLiteral","src":"7786:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7757:3:88","nodeType":"YulIdentifier","src":"7757:3:88"},"nativeSrc":"7757:32:88","nodeType":"YulFunctionCall","src":"7757:32:88"},"nativeSrc":"7754:52:88","nodeType":"YulIf","src":"7754:52:88"},{"nativeSrc":"7815:14:88","nodeType":"YulVariableDeclaration","src":"7815:14:88","value":{"kind":"number","nativeSrc":"7828:1:88","nodeType":"YulLiteral","src":"7828:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7819:5:88","nodeType":"YulTypedName","src":"7819:5:88","type":""}]},{"nativeSrc":"7838:32:88","nodeType":"YulAssignment","src":"7838:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7860:9:88","nodeType":"YulIdentifier","src":"7860:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7847:12:88","nodeType":"YulIdentifier","src":"7847:12:88"},"nativeSrc":"7847:23:88","nodeType":"YulFunctionCall","src":"7847:23:88"},"variableNames":[{"name":"value","nativeSrc":"7838:5:88","nodeType":"YulIdentifier","src":"7838:5:88"}]},{"nativeSrc":"7879:15:88","nodeType":"YulAssignment","src":"7879:15:88","value":{"name":"value","nativeSrc":"7889:5:88","nodeType":"YulIdentifier","src":"7889:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7879:6:88","nodeType":"YulIdentifier","src":"7879:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"7674:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7710:9:88","nodeType":"YulTypedName","src":"7710:9:88","type":""},{"name":"dataEnd","nativeSrc":"7721:7:88","nodeType":"YulTypedName","src":"7721:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7733:6:88","nodeType":"YulTypedName","src":"7733:6:88","type":""}],"src":"7674:226:88"},{"body":{"nativeSrc":"8006:76:88","nodeType":"YulBlock","src":"8006:76:88","statements":[{"nativeSrc":"8016:26:88","nodeType":"YulAssignment","src":"8016:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8028:9:88","nodeType":"YulIdentifier","src":"8028:9:88"},{"kind":"number","nativeSrc":"8039:2:88","nodeType":"YulLiteral","src":"8039:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8024:3:88","nodeType":"YulIdentifier","src":"8024:3:88"},"nativeSrc":"8024:18:88","nodeType":"YulFunctionCall","src":"8024:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8016:4:88","nodeType":"YulIdentifier","src":"8016:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8058:9:88","nodeType":"YulIdentifier","src":"8058:9:88"},{"name":"value0","nativeSrc":"8069:6:88","nodeType":"YulIdentifier","src":"8069:6:88"}],"functionName":{"name":"mstore","nativeSrc":"8051:6:88","nodeType":"YulIdentifier","src":"8051:6:88"},"nativeSrc":"8051:25:88","nodeType":"YulFunctionCall","src":"8051:25:88"},"nativeSrc":"8051:25:88","nodeType":"YulExpressionStatement","src":"8051:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"7905:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7975:9:88","nodeType":"YulTypedName","src":"7975:9:88","type":""},{"name":"value0","nativeSrc":"7986:6:88","nodeType":"YulTypedName","src":"7986:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7997:4:88","nodeType":"YulTypedName","src":"7997:4:88","type":""}],"src":"7905:177:88"},{"body":{"nativeSrc":"8205:243:88","nodeType":"YulBlock","src":"8205:243:88","statements":[{"body":{"nativeSrc":"8252:16:88","nodeType":"YulBlock","src":"8252:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8261:1:88","nodeType":"YulLiteral","src":"8261:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8264:1:88","nodeType":"YulLiteral","src":"8264:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8254:6:88","nodeType":"YulIdentifier","src":"8254:6:88"},"nativeSrc":"8254:12:88","nodeType":"YulFunctionCall","src":"8254:12:88"},"nativeSrc":"8254:12:88","nodeType":"YulExpressionStatement","src":"8254:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8226:7:88","nodeType":"YulIdentifier","src":"8226:7:88"},{"name":"headStart","nativeSrc":"8235:9:88","nodeType":"YulIdentifier","src":"8235:9:88"}],"functionName":{"name":"sub","nativeSrc":"8222:3:88","nodeType":"YulIdentifier","src":"8222:3:88"},"nativeSrc":"8222:23:88","nodeType":"YulFunctionCall","src":"8222:23:88"},{"kind":"number","nativeSrc":"8247:3:88","nodeType":"YulLiteral","src":"8247:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"8218:3:88","nodeType":"YulIdentifier","src":"8218:3:88"},"nativeSrc":"8218:33:88","nodeType":"YulFunctionCall","src":"8218:33:88"},"nativeSrc":"8215:53:88","nodeType":"YulIf","src":"8215:53:88"},{"nativeSrc":"8277:67:88","nodeType":"YulAssignment","src":"8277:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8325:9:88","nodeType":"YulIdentifier","src":"8325:9:88"},{"name":"dataEnd","nativeSrc":"8336:7:88","nodeType":"YulIdentifier","src":"8336:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"8287:37:88","nodeType":"YulIdentifier","src":"8287:37:88"},"nativeSrc":"8287:57:88","nodeType":"YulFunctionCall","src":"8287:57:88"},"variableNames":[{"name":"value0","nativeSrc":"8277:6:88","nodeType":"YulIdentifier","src":"8277:6:88"}]},{"nativeSrc":"8353:14:88","nodeType":"YulVariableDeclaration","src":"8353:14:88","value":{"kind":"number","nativeSrc":"8366:1:88","nodeType":"YulLiteral","src":"8366:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8357:5:88","nodeType":"YulTypedName","src":"8357:5:88","type":""}]},{"nativeSrc":"8376:42:88","nodeType":"YulAssignment","src":"8376:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8402:9:88","nodeType":"YulIdentifier","src":"8402:9:88"},{"kind":"number","nativeSrc":"8413:3:88","nodeType":"YulLiteral","src":"8413:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"8398:3:88","nodeType":"YulIdentifier","src":"8398:3:88"},"nativeSrc":"8398:19:88","nodeType":"YulFunctionCall","src":"8398:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"8385:12:88","nodeType":"YulIdentifier","src":"8385:12:88"},"nativeSrc":"8385:33:88","nodeType":"YulFunctionCall","src":"8385:33:88"},"variableNames":[{"name":"value","nativeSrc":"8376:5:88","nodeType":"YulIdentifier","src":"8376:5:88"}]},{"nativeSrc":"8427:15:88","nodeType":"YulAssignment","src":"8427:15:88","value":{"name":"value","nativeSrc":"8437:5:88","nodeType":"YulIdentifier","src":"8437:5:88"},"variableNames":[{"name":"value1","nativeSrc":"8427:6:88","nodeType":"YulIdentifier","src":"8427:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"8087:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8163:9:88","nodeType":"YulTypedName","src":"8163:9:88","type":""},{"name":"dataEnd","nativeSrc":"8174:7:88","nodeType":"YulTypedName","src":"8174:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8186:6:88","nodeType":"YulTypedName","src":"8186:6:88","type":""},{"name":"value1","nativeSrc":"8194:6:88","nodeType":"YulTypedName","src":"8194:6:88","type":""}],"src":"8087:361:88"},{"body":{"nativeSrc":"8548:92:88","nodeType":"YulBlock","src":"8548:92:88","statements":[{"nativeSrc":"8558:26:88","nodeType":"YulAssignment","src":"8558:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8570:9:88","nodeType":"YulIdentifier","src":"8570:9:88"},{"kind":"number","nativeSrc":"8581:2:88","nodeType":"YulLiteral","src":"8581:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8566:3:88","nodeType":"YulIdentifier","src":"8566:3:88"},"nativeSrc":"8566:18:88","nodeType":"YulFunctionCall","src":"8566:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8558:4:88","nodeType":"YulIdentifier","src":"8558:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8600:9:88","nodeType":"YulIdentifier","src":"8600:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"8625:6:88","nodeType":"YulIdentifier","src":"8625:6:88"}],"functionName":{"name":"iszero","nativeSrc":"8618:6:88","nodeType":"YulIdentifier","src":"8618:6:88"},"nativeSrc":"8618:14:88","nodeType":"YulFunctionCall","src":"8618:14:88"}],"functionName":{"name":"iszero","nativeSrc":"8611:6:88","nodeType":"YulIdentifier","src":"8611:6:88"},"nativeSrc":"8611:22:88","nodeType":"YulFunctionCall","src":"8611:22:88"}],"functionName":{"name":"mstore","nativeSrc":"8593:6:88","nodeType":"YulIdentifier","src":"8593:6:88"},"nativeSrc":"8593:41:88","nodeType":"YulFunctionCall","src":"8593:41:88"},"nativeSrc":"8593:41:88","nodeType":"YulExpressionStatement","src":"8593:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"8453:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8517:9:88","nodeType":"YulTypedName","src":"8517:9:88","type":""},{"name":"value0","nativeSrc":"8528:6:88","nodeType":"YulTypedName","src":"8528:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8539:4:88","nodeType":"YulTypedName","src":"8539:4:88","type":""}],"src":"8453:187:88"},{"body":{"nativeSrc":"8769:102:88","nodeType":"YulBlock","src":"8769:102:88","statements":[{"nativeSrc":"8779:26:88","nodeType":"YulAssignment","src":"8779:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8791:9:88","nodeType":"YulIdentifier","src":"8791:9:88"},{"kind":"number","nativeSrc":"8802:2:88","nodeType":"YulLiteral","src":"8802:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8787:3:88","nodeType":"YulIdentifier","src":"8787:3:88"},"nativeSrc":"8787:18:88","nodeType":"YulFunctionCall","src":"8787:18:88"},"variableNames":[{"name":"tail","nativeSrc":"8779:4:88","nodeType":"YulIdentifier","src":"8779:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8821:9:88","nodeType":"YulIdentifier","src":"8821:9:88"},{"arguments":[{"name":"value0","nativeSrc":"8836:6:88","nodeType":"YulIdentifier","src":"8836:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8852:3:88","nodeType":"YulLiteral","src":"8852:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"8857:1:88","nodeType":"YulLiteral","src":"8857:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"8848:3:88","nodeType":"YulIdentifier","src":"8848:3:88"},"nativeSrc":"8848:11:88","nodeType":"YulFunctionCall","src":"8848:11:88"},{"kind":"number","nativeSrc":"8861:1:88","nodeType":"YulLiteral","src":"8861:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8844:3:88","nodeType":"YulIdentifier","src":"8844:3:88"},"nativeSrc":"8844:19:88","nodeType":"YulFunctionCall","src":"8844:19:88"}],"functionName":{"name":"and","nativeSrc":"8832:3:88","nodeType":"YulIdentifier","src":"8832:3:88"},"nativeSrc":"8832:32:88","nodeType":"YulFunctionCall","src":"8832:32:88"}],"functionName":{"name":"mstore","nativeSrc":"8814:6:88","nodeType":"YulIdentifier","src":"8814:6:88"},"nativeSrc":"8814:51:88","nodeType":"YulFunctionCall","src":"8814:51:88"},"nativeSrc":"8814:51:88","nodeType":"YulExpressionStatement","src":"8814:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"8645:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8738:9:88","nodeType":"YulTypedName","src":"8738:9:88","type":""},{"name":"value0","nativeSrc":"8749:6:88","nodeType":"YulTypedName","src":"8749:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8760:4:88","nodeType":"YulTypedName","src":"8760:4:88","type":""}],"src":"8645:226:88"},{"body":{"nativeSrc":"8991:293:88","nodeType":"YulBlock","src":"8991:293:88","statements":[{"body":{"nativeSrc":"9038:16:88","nodeType":"YulBlock","src":"9038:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9047:1:88","nodeType":"YulLiteral","src":"9047:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9050:1:88","nodeType":"YulLiteral","src":"9050:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9040:6:88","nodeType":"YulIdentifier","src":"9040:6:88"},"nativeSrc":"9040:12:88","nodeType":"YulFunctionCall","src":"9040:12:88"},"nativeSrc":"9040:12:88","nodeType":"YulExpressionStatement","src":"9040:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9012:7:88","nodeType":"YulIdentifier","src":"9012:7:88"},{"name":"headStart","nativeSrc":"9021:9:88","nodeType":"YulIdentifier","src":"9021:9:88"}],"functionName":{"name":"sub","nativeSrc":"9008:3:88","nodeType":"YulIdentifier","src":"9008:3:88"},"nativeSrc":"9008:23:88","nodeType":"YulFunctionCall","src":"9008:23:88"},{"kind":"number","nativeSrc":"9033:3:88","nodeType":"YulLiteral","src":"9033:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"9004:3:88","nodeType":"YulIdentifier","src":"9004:3:88"},"nativeSrc":"9004:33:88","nodeType":"YulFunctionCall","src":"9004:33:88"},"nativeSrc":"9001:53:88","nodeType":"YulIf","src":"9001:53:88"},{"nativeSrc":"9063:67:88","nodeType":"YulAssignment","src":"9063:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9111:9:88","nodeType":"YulIdentifier","src":"9111:9:88"},{"name":"dataEnd","nativeSrc":"9122:7:88","nodeType":"YulIdentifier","src":"9122:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"9073:37:88","nodeType":"YulIdentifier","src":"9073:37:88"},"nativeSrc":"9073:57:88","nodeType":"YulFunctionCall","src":"9073:57:88"},"variableNames":[{"name":"value0","nativeSrc":"9063:6:88","nodeType":"YulIdentifier","src":"9063:6:88"}]},{"nativeSrc":"9139:46:88","nodeType":"YulVariableDeclaration","src":"9139:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9169:9:88","nodeType":"YulIdentifier","src":"9169:9:88"},{"kind":"number","nativeSrc":"9180:3:88","nodeType":"YulLiteral","src":"9180:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"9165:3:88","nodeType":"YulIdentifier","src":"9165:3:88"},"nativeSrc":"9165:19:88","nodeType":"YulFunctionCall","src":"9165:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9152:12:88","nodeType":"YulIdentifier","src":"9152:12:88"},"nativeSrc":"9152:33:88","nodeType":"YulFunctionCall","src":"9152:33:88"},"variables":[{"name":"value","nativeSrc":"9143:5:88","nodeType":"YulTypedName","src":"9143:5:88","type":""}]},{"body":{"nativeSrc":"9238:16:88","nodeType":"YulBlock","src":"9238:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9247:1:88","nodeType":"YulLiteral","src":"9247:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9250:1:88","nodeType":"YulLiteral","src":"9250:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9240:6:88","nodeType":"YulIdentifier","src":"9240:6:88"},"nativeSrc":"9240:12:88","nodeType":"YulFunctionCall","src":"9240:12:88"},"nativeSrc":"9240:12:88","nodeType":"YulExpressionStatement","src":"9240:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9207:5:88","nodeType":"YulIdentifier","src":"9207:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9228:5:88","nodeType":"YulIdentifier","src":"9228:5:88"}],"functionName":{"name":"iszero","nativeSrc":"9221:6:88","nodeType":"YulIdentifier","src":"9221:6:88"},"nativeSrc":"9221:13:88","nodeType":"YulFunctionCall","src":"9221:13:88"}],"functionName":{"name":"iszero","nativeSrc":"9214:6:88","nodeType":"YulIdentifier","src":"9214:6:88"},"nativeSrc":"9214:21:88","nodeType":"YulFunctionCall","src":"9214:21:88"}],"functionName":{"name":"eq","nativeSrc":"9204:2:88","nodeType":"YulIdentifier","src":"9204:2:88"},"nativeSrc":"9204:32:88","nodeType":"YulFunctionCall","src":"9204:32:88"}],"functionName":{"name":"iszero","nativeSrc":"9197:6:88","nodeType":"YulIdentifier","src":"9197:6:88"},"nativeSrc":"9197:40:88","nodeType":"YulFunctionCall","src":"9197:40:88"},"nativeSrc":"9194:60:88","nodeType":"YulIf","src":"9194:60:88"},{"nativeSrc":"9263:15:88","nodeType":"YulAssignment","src":"9263:15:88","value":{"name":"value","nativeSrc":"9273:5:88","nodeType":"YulIdentifier","src":"9273:5:88"},"variableNames":[{"name":"value1","nativeSrc":"9263:6:88","nodeType":"YulIdentifier","src":"9263:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool","nativeSrc":"8876:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8949:9:88","nodeType":"YulTypedName","src":"8949:9:88","type":""},{"name":"dataEnd","nativeSrc":"8960:7:88","nodeType":"YulTypedName","src":"8960:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8972:6:88","nodeType":"YulTypedName","src":"8972:6:88","type":""},{"name":"value1","nativeSrc":"8980:6:88","nodeType":"YulTypedName","src":"8980:6:88","type":""}],"src":"8876:408:88"},{"body":{"nativeSrc":"9321:95:88","nodeType":"YulBlock","src":"9321:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9338:1:88","nodeType":"YulLiteral","src":"9338:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9345:3:88","nodeType":"YulLiteral","src":"9345:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"9350:10:88","nodeType":"YulLiteral","src":"9350:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9341:3:88","nodeType":"YulIdentifier","src":"9341:3:88"},"nativeSrc":"9341:20:88","nodeType":"YulFunctionCall","src":"9341:20:88"}],"functionName":{"name":"mstore","nativeSrc":"9331:6:88","nodeType":"YulIdentifier","src":"9331:6:88"},"nativeSrc":"9331:31:88","nodeType":"YulFunctionCall","src":"9331:31:88"},"nativeSrc":"9331:31:88","nodeType":"YulExpressionStatement","src":"9331:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9378:1:88","nodeType":"YulLiteral","src":"9378:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"9381:4:88","nodeType":"YulLiteral","src":"9381:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"9371:6:88","nodeType":"YulIdentifier","src":"9371:6:88"},"nativeSrc":"9371:15:88","nodeType":"YulFunctionCall","src":"9371:15:88"},"nativeSrc":"9371:15:88","nodeType":"YulExpressionStatement","src":"9371:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9402:1:88","nodeType":"YulLiteral","src":"9402:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9405:4:88","nodeType":"YulLiteral","src":"9405:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9395:6:88","nodeType":"YulIdentifier","src":"9395:6:88"},"nativeSrc":"9395:15:88","nodeType":"YulFunctionCall","src":"9395:15:88"},"nativeSrc":"9395:15:88","nodeType":"YulExpressionStatement","src":"9395:15:88"}]},"name":"panic_error_0x11","nativeSrc":"9289:127:88","nodeType":"YulFunctionDefinition","src":"9289:127:88"},{"body":{"nativeSrc":"9469:77:88","nodeType":"YulBlock","src":"9469:77:88","statements":[{"nativeSrc":"9479:16:88","nodeType":"YulAssignment","src":"9479:16:88","value":{"arguments":[{"name":"x","nativeSrc":"9490:1:88","nodeType":"YulIdentifier","src":"9490:1:88"},{"name":"y","nativeSrc":"9493:1:88","nodeType":"YulIdentifier","src":"9493:1:88"}],"functionName":{"name":"add","nativeSrc":"9486:3:88","nodeType":"YulIdentifier","src":"9486:3:88"},"nativeSrc":"9486:9:88","nodeType":"YulFunctionCall","src":"9486:9:88"},"variableNames":[{"name":"sum","nativeSrc":"9479:3:88","nodeType":"YulIdentifier","src":"9479:3:88"}]},{"body":{"nativeSrc":"9518:22:88","nodeType":"YulBlock","src":"9518:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9520:16:88","nodeType":"YulIdentifier","src":"9520:16:88"},"nativeSrc":"9520:18:88","nodeType":"YulFunctionCall","src":"9520:18:88"},"nativeSrc":"9520:18:88","nodeType":"YulExpressionStatement","src":"9520:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"9510:1:88","nodeType":"YulIdentifier","src":"9510:1:88"},{"name":"sum","nativeSrc":"9513:3:88","nodeType":"YulIdentifier","src":"9513:3:88"}],"functionName":{"name":"gt","nativeSrc":"9507:2:88","nodeType":"YulIdentifier","src":"9507:2:88"},"nativeSrc":"9507:10:88","nodeType":"YulFunctionCall","src":"9507:10:88"},"nativeSrc":"9504:36:88","nodeType":"YulIf","src":"9504:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"9421:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9452:1:88","nodeType":"YulTypedName","src":"9452:1:88","type":""},{"name":"y","nativeSrc":"9455:1:88","nodeType":"YulTypedName","src":"9455:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"9461:3:88","nodeType":"YulTypedName","src":"9461:3:88","type":""}],"src":"9421:125:88"},{"body":{"nativeSrc":"9594:53:88","nodeType":"YulBlock","src":"9594:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9611:3:88","nodeType":"YulIdentifier","src":"9611:3:88"},{"arguments":[{"name":"value","nativeSrc":"9620:5:88","nodeType":"YulIdentifier","src":"9620:5:88"},{"kind":"number","nativeSrc":"9627:12:88","nodeType":"YulLiteral","src":"9627:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"9616:3:88","nodeType":"YulIdentifier","src":"9616:3:88"},"nativeSrc":"9616:24:88","nodeType":"YulFunctionCall","src":"9616:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9604:6:88","nodeType":"YulIdentifier","src":"9604:6:88"},"nativeSrc":"9604:37:88","nodeType":"YulFunctionCall","src":"9604:37:88"},"nativeSrc":"9604:37:88","nodeType":"YulExpressionStatement","src":"9604:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"9551:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9578:5:88","nodeType":"YulTypedName","src":"9578:5:88","type":""},{"name":"pos","nativeSrc":"9585:3:88","nodeType":"YulTypedName","src":"9585:3:88","type":""}],"src":"9551:96:88"},{"body":{"nativeSrc":"9811:1108:88","nodeType":"YulBlock","src":"9811:1108:88","statements":[{"nativeSrc":"9821:27:88","nodeType":"YulAssignment","src":"9821:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9833:9:88","nodeType":"YulIdentifier","src":"9833:9:88"},{"kind":"number","nativeSrc":"9844:3:88","nodeType":"YulLiteral","src":"9844:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"9829:3:88","nodeType":"YulIdentifier","src":"9829:3:88"},"nativeSrc":"9829:19:88","nodeType":"YulFunctionCall","src":"9829:19:88"},"variableNames":[{"name":"tail","nativeSrc":"9821:4:88","nodeType":"YulIdentifier","src":"9821:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9864:9:88","nodeType":"YulIdentifier","src":"9864:9:88"},{"arguments":[{"name":"value0","nativeSrc":"9881:6:88","nodeType":"YulIdentifier","src":"9881:6:88"}],"functionName":{"name":"mload","nativeSrc":"9875:5:88","nodeType":"YulIdentifier","src":"9875:5:88"},"nativeSrc":"9875:13:88","nodeType":"YulFunctionCall","src":"9875:13:88"}],"functionName":{"name":"mstore","nativeSrc":"9857:6:88","nodeType":"YulIdentifier","src":"9857:6:88"},"nativeSrc":"9857:32:88","nodeType":"YulFunctionCall","src":"9857:32:88"},"nativeSrc":"9857:32:88","nodeType":"YulExpressionStatement","src":"9857:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9909:9:88","nodeType":"YulIdentifier","src":"9909:9:88"},{"kind":"number","nativeSrc":"9920:4:88","nodeType":"YulLiteral","src":"9920:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9905:3:88","nodeType":"YulIdentifier","src":"9905:3:88"},"nativeSrc":"9905:20:88","nodeType":"YulFunctionCall","src":"9905:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9937:6:88","nodeType":"YulIdentifier","src":"9937:6:88"},{"kind":"number","nativeSrc":"9945:4:88","nodeType":"YulLiteral","src":"9945:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9933:3:88","nodeType":"YulIdentifier","src":"9933:3:88"},"nativeSrc":"9933:17:88","nodeType":"YulFunctionCall","src":"9933:17:88"}],"functionName":{"name":"mload","nativeSrc":"9927:5:88","nodeType":"YulIdentifier","src":"9927:5:88"},"nativeSrc":"9927:24:88","nodeType":"YulFunctionCall","src":"9927:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9898:6:88","nodeType":"YulIdentifier","src":"9898:6:88"},"nativeSrc":"9898:54:88","nodeType":"YulFunctionCall","src":"9898:54:88"},"nativeSrc":"9898:54:88","nodeType":"YulExpressionStatement","src":"9898:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9972:9:88","nodeType":"YulIdentifier","src":"9972:9:88"},{"kind":"number","nativeSrc":"9983:4:88","nodeType":"YulLiteral","src":"9983:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9968:3:88","nodeType":"YulIdentifier","src":"9968:3:88"},"nativeSrc":"9968:20:88","nodeType":"YulFunctionCall","src":"9968:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10000:6:88","nodeType":"YulIdentifier","src":"10000:6:88"},{"kind":"number","nativeSrc":"10008:4:88","nodeType":"YulLiteral","src":"10008:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9996:3:88","nodeType":"YulIdentifier","src":"9996:3:88"},"nativeSrc":"9996:17:88","nodeType":"YulFunctionCall","src":"9996:17:88"}],"functionName":{"name":"mload","nativeSrc":"9990:5:88","nodeType":"YulIdentifier","src":"9990:5:88"},"nativeSrc":"9990:24:88","nodeType":"YulFunctionCall","src":"9990:24:88"}],"functionName":{"name":"mstore","nativeSrc":"9961:6:88","nodeType":"YulIdentifier","src":"9961:6:88"},"nativeSrc":"9961:54:88","nodeType":"YulFunctionCall","src":"9961:54:88"},"nativeSrc":"9961:54:88","nodeType":"YulExpressionStatement","src":"9961:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10035:9:88","nodeType":"YulIdentifier","src":"10035:9:88"},{"kind":"number","nativeSrc":"10046:4:88","nodeType":"YulLiteral","src":"10046:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10031:3:88","nodeType":"YulIdentifier","src":"10031:3:88"},"nativeSrc":"10031:20:88","nodeType":"YulFunctionCall","src":"10031:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10063:6:88","nodeType":"YulIdentifier","src":"10063:6:88"},{"kind":"number","nativeSrc":"10071:4:88","nodeType":"YulLiteral","src":"10071:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10059:3:88","nodeType":"YulIdentifier","src":"10059:3:88"},"nativeSrc":"10059:17:88","nodeType":"YulFunctionCall","src":"10059:17:88"}],"functionName":{"name":"mload","nativeSrc":"10053:5:88","nodeType":"YulIdentifier","src":"10053:5:88"},"nativeSrc":"10053:24:88","nodeType":"YulFunctionCall","src":"10053:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10024:6:88","nodeType":"YulIdentifier","src":"10024:6:88"},"nativeSrc":"10024:54:88","nodeType":"YulFunctionCall","src":"10024:54:88"},"nativeSrc":"10024:54:88","nodeType":"YulExpressionStatement","src":"10024:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10098:9:88","nodeType":"YulIdentifier","src":"10098:9:88"},{"kind":"number","nativeSrc":"10109:4:88","nodeType":"YulLiteral","src":"10109:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10094:3:88","nodeType":"YulIdentifier","src":"10094:3:88"},"nativeSrc":"10094:20:88","nodeType":"YulFunctionCall","src":"10094:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10126:6:88","nodeType":"YulIdentifier","src":"10126:6:88"},{"kind":"number","nativeSrc":"10134:4:88","nodeType":"YulLiteral","src":"10134:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10122:3:88","nodeType":"YulIdentifier","src":"10122:3:88"},"nativeSrc":"10122:17:88","nodeType":"YulFunctionCall","src":"10122:17:88"}],"functionName":{"name":"mload","nativeSrc":"10116:5:88","nodeType":"YulIdentifier","src":"10116:5:88"},"nativeSrc":"10116:24:88","nodeType":"YulFunctionCall","src":"10116:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10087:6:88","nodeType":"YulIdentifier","src":"10087:6:88"},"nativeSrc":"10087:54:88","nodeType":"YulFunctionCall","src":"10087:54:88"},"nativeSrc":"10087:54:88","nodeType":"YulExpressionStatement","src":"10087:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10161:9:88","nodeType":"YulIdentifier","src":"10161:9:88"},{"kind":"number","nativeSrc":"10172:4:88","nodeType":"YulLiteral","src":"10172:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10157:3:88","nodeType":"YulIdentifier","src":"10157:3:88"},"nativeSrc":"10157:20:88","nodeType":"YulFunctionCall","src":"10157:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10189:6:88","nodeType":"YulIdentifier","src":"10189:6:88"},{"kind":"number","nativeSrc":"10197:4:88","nodeType":"YulLiteral","src":"10197:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10185:3:88","nodeType":"YulIdentifier","src":"10185:3:88"},"nativeSrc":"10185:17:88","nodeType":"YulFunctionCall","src":"10185:17:88"}],"functionName":{"name":"mload","nativeSrc":"10179:5:88","nodeType":"YulIdentifier","src":"10179:5:88"},"nativeSrc":"10179:24:88","nodeType":"YulFunctionCall","src":"10179:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10150:6:88","nodeType":"YulIdentifier","src":"10150:6:88"},"nativeSrc":"10150:54:88","nodeType":"YulFunctionCall","src":"10150:54:88"},"nativeSrc":"10150:54:88","nodeType":"YulExpressionStatement","src":"10150:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10224:9:88","nodeType":"YulIdentifier","src":"10224:9:88"},{"kind":"number","nativeSrc":"10235:4:88","nodeType":"YulLiteral","src":"10235:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10220:3:88","nodeType":"YulIdentifier","src":"10220:3:88"},"nativeSrc":"10220:20:88","nodeType":"YulFunctionCall","src":"10220:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10252:6:88","nodeType":"YulIdentifier","src":"10252:6:88"},{"kind":"number","nativeSrc":"10260:4:88","nodeType":"YulLiteral","src":"10260:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10248:3:88","nodeType":"YulIdentifier","src":"10248:3:88"},"nativeSrc":"10248:17:88","nodeType":"YulFunctionCall","src":"10248:17:88"}],"functionName":{"name":"mload","nativeSrc":"10242:5:88","nodeType":"YulIdentifier","src":"10242:5:88"},"nativeSrc":"10242:24:88","nodeType":"YulFunctionCall","src":"10242:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10213:6:88","nodeType":"YulIdentifier","src":"10213:6:88"},"nativeSrc":"10213:54:88","nodeType":"YulFunctionCall","src":"10213:54:88"},"nativeSrc":"10213:54:88","nodeType":"YulExpressionStatement","src":"10213:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10287:9:88","nodeType":"YulIdentifier","src":"10287:9:88"},{"kind":"number","nativeSrc":"10298:4:88","nodeType":"YulLiteral","src":"10298:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"10283:3:88","nodeType":"YulIdentifier","src":"10283:3:88"},"nativeSrc":"10283:20:88","nodeType":"YulFunctionCall","src":"10283:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10315:6:88","nodeType":"YulIdentifier","src":"10315:6:88"},{"kind":"number","nativeSrc":"10323:4:88","nodeType":"YulLiteral","src":"10323:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"10311:3:88","nodeType":"YulIdentifier","src":"10311:3:88"},"nativeSrc":"10311:17:88","nodeType":"YulFunctionCall","src":"10311:17:88"}],"functionName":{"name":"mload","nativeSrc":"10305:5:88","nodeType":"YulIdentifier","src":"10305:5:88"},"nativeSrc":"10305:24:88","nodeType":"YulFunctionCall","src":"10305:24:88"}],"functionName":{"name":"mstore","nativeSrc":"10276:6:88","nodeType":"YulIdentifier","src":"10276:6:88"},"nativeSrc":"10276:54:88","nodeType":"YulFunctionCall","src":"10276:54:88"},"nativeSrc":"10276:54:88","nodeType":"YulExpressionStatement","src":"10276:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10350:9:88","nodeType":"YulIdentifier","src":"10350:9:88"},{"kind":"number","nativeSrc":"10361:6:88","nodeType":"YulLiteral","src":"10361:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"10346:3:88","nodeType":"YulIdentifier","src":"10346:3:88"},"nativeSrc":"10346:22:88","nodeType":"YulFunctionCall","src":"10346:22:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10380:6:88","nodeType":"YulIdentifier","src":"10380:6:88"},{"kind":"number","nativeSrc":"10388:6:88","nodeType":"YulLiteral","src":"10388:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"10376:3:88","nodeType":"YulIdentifier","src":"10376:3:88"},"nativeSrc":"10376:19:88","nodeType":"YulFunctionCall","src":"10376:19:88"}],"functionName":{"name":"mload","nativeSrc":"10370:5:88","nodeType":"YulIdentifier","src":"10370:5:88"},"nativeSrc":"10370:26:88","nodeType":"YulFunctionCall","src":"10370:26:88"}],"functionName":{"name":"mstore","nativeSrc":"10339:6:88","nodeType":"YulIdentifier","src":"10339:6:88"},"nativeSrc":"10339:58:88","nodeType":"YulFunctionCall","src":"10339:58:88"},"nativeSrc":"10339:58:88","nodeType":"YulExpressionStatement","src":"10339:58:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10417:9:88","nodeType":"YulIdentifier","src":"10417:9:88"},{"kind":"number","nativeSrc":"10428:6:88","nodeType":"YulLiteral","src":"10428:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"10413:3:88","nodeType":"YulIdentifier","src":"10413:3:88"},"nativeSrc":"10413:22:88","nodeType":"YulFunctionCall","src":"10413:22:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10447:6:88","nodeType":"YulIdentifier","src":"10447:6:88"},{"kind":"number","nativeSrc":"10455:6:88","nodeType":"YulLiteral","src":"10455:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"10443:3:88","nodeType":"YulIdentifier","src":"10443:3:88"},"nativeSrc":"10443:19:88","nodeType":"YulFunctionCall","src":"10443:19:88"}],"functionName":{"name":"mload","nativeSrc":"10437:5:88","nodeType":"YulIdentifier","src":"10437:5:88"},"nativeSrc":"10437:26:88","nodeType":"YulFunctionCall","src":"10437:26:88"}],"functionName":{"name":"mstore","nativeSrc":"10406:6:88","nodeType":"YulIdentifier","src":"10406:6:88"},"nativeSrc":"10406:58:88","nodeType":"YulFunctionCall","src":"10406:58:88"},"nativeSrc":"10406:58:88","nodeType":"YulExpressionStatement","src":"10406:58:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10484:9:88","nodeType":"YulIdentifier","src":"10484:9:88"},{"kind":"number","nativeSrc":"10495:6:88","nodeType":"YulLiteral","src":"10495:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"10480:3:88","nodeType":"YulIdentifier","src":"10480:3:88"},"nativeSrc":"10480:22:88","nodeType":"YulFunctionCall","src":"10480:22:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10514:6:88","nodeType":"YulIdentifier","src":"10514:6:88"},{"kind":"number","nativeSrc":"10522:6:88","nodeType":"YulLiteral","src":"10522:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"10510:3:88","nodeType":"YulIdentifier","src":"10510:3:88"},"nativeSrc":"10510:19:88","nodeType":"YulFunctionCall","src":"10510:19:88"}],"functionName":{"name":"mload","nativeSrc":"10504:5:88","nodeType":"YulIdentifier","src":"10504:5:88"},"nativeSrc":"10504:26:88","nodeType":"YulFunctionCall","src":"10504:26:88"}],"functionName":{"name":"mstore","nativeSrc":"10473:6:88","nodeType":"YulIdentifier","src":"10473:6:88"},"nativeSrc":"10473:58:88","nodeType":"YulFunctionCall","src":"10473:58:88"},"nativeSrc":"10473:58:88","nodeType":"YulExpressionStatement","src":"10473:58:88"},{"nativeSrc":"10540:46:88","nodeType":"YulVariableDeclaration","src":"10540:46:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10570:6:88","nodeType":"YulIdentifier","src":"10570:6:88"},{"kind":"number","nativeSrc":"10578:6:88","nodeType":"YulLiteral","src":"10578:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"10566:3:88","nodeType":"YulIdentifier","src":"10566:3:88"},"nativeSrc":"10566:19:88","nodeType":"YulFunctionCall","src":"10566:19:88"}],"functionName":{"name":"mload","nativeSrc":"10560:5:88","nodeType":"YulIdentifier","src":"10560:5:88"},"nativeSrc":"10560:26:88","nodeType":"YulFunctionCall","src":"10560:26:88"},"variables":[{"name":"memberValue0","nativeSrc":"10544:12:88","nodeType":"YulTypedName","src":"10544:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"10630:12:88","nodeType":"YulIdentifier","src":"10630:12:88"},{"arguments":[{"name":"headStart","nativeSrc":"10648:9:88","nodeType":"YulIdentifier","src":"10648:9:88"},{"kind":"number","nativeSrc":"10659:6:88","nodeType":"YulLiteral","src":"10659:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"10644:3:88","nodeType":"YulIdentifier","src":"10644:3:88"},"nativeSrc":"10644:22:88","nodeType":"YulFunctionCall","src":"10644:22:88"}],"functionName":{"name":"abi_encode_contract_IAccessManager","nativeSrc":"10595:34:88","nodeType":"YulIdentifier","src":"10595:34:88"},"nativeSrc":"10595:72:88","nodeType":"YulFunctionCall","src":"10595:72:88"},"nativeSrc":"10595:72:88","nodeType":"YulExpressionStatement","src":"10595:72:88"},{"nativeSrc":"10676:48:88","nodeType":"YulVariableDeclaration","src":"10676:48:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10708:6:88","nodeType":"YulIdentifier","src":"10708:6:88"},{"kind":"number","nativeSrc":"10716:6:88","nodeType":"YulLiteral","src":"10716:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"10704:3:88","nodeType":"YulIdentifier","src":"10704:3:88"},"nativeSrc":"10704:19:88","nodeType":"YulFunctionCall","src":"10704:19:88"}],"functionName":{"name":"mload","nativeSrc":"10698:5:88","nodeType":"YulIdentifier","src":"10698:5:88"},"nativeSrc":"10698:26:88","nodeType":"YulFunctionCall","src":"10698:26:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"10680:14:88","nodeType":"YulTypedName","src":"10680:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"10751:14:88","nodeType":"YulIdentifier","src":"10751:14:88"},{"arguments":[{"name":"headStart","nativeSrc":"10771:9:88","nodeType":"YulIdentifier","src":"10771:9:88"},{"kind":"number","nativeSrc":"10782:6:88","nodeType":"YulLiteral","src":"10782:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"10767:3:88","nodeType":"YulIdentifier","src":"10767:3:88"},"nativeSrc":"10767:22:88","nodeType":"YulFunctionCall","src":"10767:22:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"10733:17:88","nodeType":"YulIdentifier","src":"10733:17:88"},"nativeSrc":"10733:57:88","nodeType":"YulFunctionCall","src":"10733:57:88"},"nativeSrc":"10733:57:88","nodeType":"YulExpressionStatement","src":"10733:57:88"},{"nativeSrc":"10799:48:88","nodeType":"YulVariableDeclaration","src":"10799:48:88","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10831:6:88","nodeType":"YulIdentifier","src":"10831:6:88"},{"kind":"number","nativeSrc":"10839:6:88","nodeType":"YulLiteral","src":"10839:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"10827:3:88","nodeType":"YulIdentifier","src":"10827:3:88"},"nativeSrc":"10827:19:88","nodeType":"YulFunctionCall","src":"10827:19:88"}],"functionName":{"name":"mload","nativeSrc":"10821:5:88","nodeType":"YulIdentifier","src":"10821:5:88"},"nativeSrc":"10821:26:88","nodeType":"YulFunctionCall","src":"10821:26:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"10803:14:88","nodeType":"YulTypedName","src":"10803:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"10874:14:88","nodeType":"YulIdentifier","src":"10874:14:88"},{"arguments":[{"name":"headStart","nativeSrc":"10894:9:88","nodeType":"YulIdentifier","src":"10894:9:88"},{"kind":"number","nativeSrc":"10905:6:88","nodeType":"YulLiteral","src":"10905:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"10890:3:88","nodeType":"YulIdentifier","src":"10890:3:88"},"nativeSrc":"10890:22:88","nodeType":"YulFunctionCall","src":"10890:22:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"10856:17:88","nodeType":"YulIdentifier","src":"10856:17:88"},"nativeSrc":"10856:57:88","nodeType":"YulFunctionCall","src":"10856:57:88"},"nativeSrc":"10856:57:88","nodeType":"YulExpressionStatement","src":"10856:57:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed","nativeSrc":"9652:1267:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9780:9:88","nodeType":"YulTypedName","src":"9780:9:88","type":""},{"name":"value0","nativeSrc":"9791:6:88","nodeType":"YulTypedName","src":"9791:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9802:4:88","nodeType":"YulTypedName","src":"9802:4:88","type":""}],"src":"9652:1267:88"},{"body":{"nativeSrc":"11098:173:88","nodeType":"YulBlock","src":"11098:173:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11115:9:88","nodeType":"YulIdentifier","src":"11115:9:88"},{"kind":"number","nativeSrc":"11126:2:88","nodeType":"YulLiteral","src":"11126:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11108:6:88","nodeType":"YulIdentifier","src":"11108:6:88"},"nativeSrc":"11108:21:88","nodeType":"YulFunctionCall","src":"11108:21:88"},"nativeSrc":"11108:21:88","nodeType":"YulExpressionStatement","src":"11108:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11149:9:88","nodeType":"YulIdentifier","src":"11149:9:88"},{"kind":"number","nativeSrc":"11160:2:88","nodeType":"YulLiteral","src":"11160:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11145:3:88","nodeType":"YulIdentifier","src":"11145:3:88"},"nativeSrc":"11145:18:88","nodeType":"YulFunctionCall","src":"11145:18:88"},{"kind":"number","nativeSrc":"11165:2:88","nodeType":"YulLiteral","src":"11165:2:88","type":"","value":"23"}],"functionName":{"name":"mstore","nativeSrc":"11138:6:88","nodeType":"YulIdentifier","src":"11138:6:88"},"nativeSrc":"11138:30:88","nodeType":"YulFunctionCall","src":"11138:30:88"},"nativeSrc":"11138:30:88","nodeType":"YulExpressionStatement","src":"11138:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11188:9:88","nodeType":"YulIdentifier","src":"11188:9:88"},{"kind":"number","nativeSrc":"11199:2:88","nodeType":"YulLiteral","src":"11199:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11184:3:88","nodeType":"YulIdentifier","src":"11184:3:88"},"nativeSrc":"11184:18:88","nodeType":"YulFunctionCall","src":"11184:18:88"},{"hexValue":"4e6f7420496d706c656d656e746564206465706f736974","kind":"string","nativeSrc":"11204:25:88","nodeType":"YulLiteral","src":"11204:25:88","type":"","value":"Not Implemented deposit"}],"functionName":{"name":"mstore","nativeSrc":"11177:6:88","nodeType":"YulIdentifier","src":"11177:6:88"},"nativeSrc":"11177:53:88","nodeType":"YulFunctionCall","src":"11177:53:88"},"nativeSrc":"11177:53:88","nodeType":"YulExpressionStatement","src":"11177:53:88"},{"nativeSrc":"11239:26:88","nodeType":"YulAssignment","src":"11239:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11251:9:88","nodeType":"YulIdentifier","src":"11251:9:88"},{"kind":"number","nativeSrc":"11262:2:88","nodeType":"YulLiteral","src":"11262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11247:3:88","nodeType":"YulIdentifier","src":"11247:3:88"},"nativeSrc":"11247:18:88","nodeType":"YulFunctionCall","src":"11247:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11239:4:88","nodeType":"YulIdentifier","src":"11239:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4056b1a890a2c3818b7771ad8e47567b7f58fbbd321bfc4356d4990f533b901a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10924:347:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11075:9:88","nodeType":"YulTypedName","src":"11075:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11089:4:88","nodeType":"YulTypedName","src":"11089:4:88","type":""}],"src":"10924:347:88"},{"body":{"nativeSrc":"11375:136:88","nodeType":"YulBlock","src":"11375:136:88","statements":[{"body":{"nativeSrc":"11422:16:88","nodeType":"YulBlock","src":"11422:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11431:1:88","nodeType":"YulLiteral","src":"11431:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11434:1:88","nodeType":"YulLiteral","src":"11434:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11424:6:88","nodeType":"YulIdentifier","src":"11424:6:88"},"nativeSrc":"11424:12:88","nodeType":"YulFunctionCall","src":"11424:12:88"},"nativeSrc":"11424:12:88","nodeType":"YulExpressionStatement","src":"11424:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11396:7:88","nodeType":"YulIdentifier","src":"11396:7:88"},{"name":"headStart","nativeSrc":"11405:9:88","nodeType":"YulIdentifier","src":"11405:9:88"}],"functionName":{"name":"sub","nativeSrc":"11392:3:88","nodeType":"YulIdentifier","src":"11392:3:88"},"nativeSrc":"11392:23:88","nodeType":"YulFunctionCall","src":"11392:23:88"},{"kind":"number","nativeSrc":"11417:3:88","nodeType":"YulLiteral","src":"11417:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"11388:3:88","nodeType":"YulIdentifier","src":"11388:3:88"},"nativeSrc":"11388:33:88","nodeType":"YulFunctionCall","src":"11388:33:88"},"nativeSrc":"11385:53:88","nodeType":"YulIf","src":"11385:53:88"},{"nativeSrc":"11447:58:88","nodeType":"YulAssignment","src":"11447:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11486:9:88","nodeType":"YulIdentifier","src":"11486:9:88"},{"name":"dataEnd","nativeSrc":"11497:7:88","nodeType":"YulIdentifier","src":"11497:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"11457:28:88","nodeType":"YulIdentifier","src":"11457:28:88"},"nativeSrc":"11457:48:88","nodeType":"YulFunctionCall","src":"11457:48:88"},"variableNames":[{"name":"value0","nativeSrc":"11447:6:88","nodeType":"YulIdentifier","src":"11447:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr","nativeSrc":"11276:235:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11341:9:88","nodeType":"YulTypedName","src":"11341:9:88","type":""},{"name":"dataEnd","nativeSrc":"11352:7:88","nodeType":"YulTypedName","src":"11352:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11364:6:88","nodeType":"YulTypedName","src":"11364:6:88","type":""}],"src":"11276:235:88"},{"body":{"nativeSrc":"11690:174:88","nodeType":"YulBlock","src":"11690:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11707:9:88","nodeType":"YulIdentifier","src":"11707:9:88"},{"kind":"number","nativeSrc":"11718:2:88","nodeType":"YulLiteral","src":"11718:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11700:6:88","nodeType":"YulIdentifier","src":"11700:6:88"},"nativeSrc":"11700:21:88","nodeType":"YulFunctionCall","src":"11700:21:88"},"nativeSrc":"11700:21:88","nodeType":"YulExpressionStatement","src":"11700:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11741:9:88","nodeType":"YulIdentifier","src":"11741:9:88"},{"kind":"number","nativeSrc":"11752:2:88","nodeType":"YulLiteral","src":"11752:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11737:3:88","nodeType":"YulIdentifier","src":"11737:3:88"},"nativeSrc":"11737:18:88","nodeType":"YulFunctionCall","src":"11737:18:88"},{"kind":"number","nativeSrc":"11757:2:88","nodeType":"YulLiteral","src":"11757:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"11730:6:88","nodeType":"YulIdentifier","src":"11730:6:88"},"nativeSrc":"11730:30:88","nodeType":"YulFunctionCall","src":"11730:30:88"},"nativeSrc":"11730:30:88","nodeType":"YulExpressionStatement","src":"11730:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11780:9:88","nodeType":"YulIdentifier","src":"11780:9:88"},{"kind":"number","nativeSrc":"11791:2:88","nodeType":"YulLiteral","src":"11791:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11776:3:88","nodeType":"YulIdentifier","src":"11776:3:88"},"nativeSrc":"11776:18:88","nodeType":"YulFunctionCall","src":"11776:18:88"},{"hexValue":"4e6f7420496d706c656d656e746564207769746864726177","kind":"string","nativeSrc":"11796:26:88","nodeType":"YulLiteral","src":"11796:26:88","type":"","value":"Not Implemented withdraw"}],"functionName":{"name":"mstore","nativeSrc":"11769:6:88","nodeType":"YulIdentifier","src":"11769:6:88"},"nativeSrc":"11769:54:88","nodeType":"YulFunctionCall","src":"11769:54:88"},"nativeSrc":"11769:54:88","nodeType":"YulExpressionStatement","src":"11769:54:88"},{"nativeSrc":"11832:26:88","nodeType":"YulAssignment","src":"11832:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11844:9:88","nodeType":"YulIdentifier","src":"11844:9:88"},{"kind":"number","nativeSrc":"11855:2:88","nodeType":"YulLiteral","src":"11855:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11840:3:88","nodeType":"YulIdentifier","src":"11840:3:88"},"nativeSrc":"11840:18:88","nodeType":"YulFunctionCall","src":"11840:18:88"},"variableNames":[{"name":"tail","nativeSrc":"11832:4:88","nodeType":"YulIdentifier","src":"11832:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d1c133ca691942c2b9c7b9bbdea503640377a82463f9986cfe69df5983647c2d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11516:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11667:9:88","nodeType":"YulTypedName","src":"11667:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11681:4:88","nodeType":"YulTypedName","src":"11681:4:88","type":""}],"src":"11516:348:88"},{"body":{"nativeSrc":"12043:174:88","nodeType":"YulBlock","src":"12043:174:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12060:9:88","nodeType":"YulIdentifier","src":"12060:9:88"},{"kind":"number","nativeSrc":"12071:2:88","nodeType":"YulLiteral","src":"12071:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12053:6:88","nodeType":"YulIdentifier","src":"12053:6:88"},"nativeSrc":"12053:21:88","nodeType":"YulFunctionCall","src":"12053:21:88"},"nativeSrc":"12053:21:88","nodeType":"YulExpressionStatement","src":"12053:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12094:9:88","nodeType":"YulIdentifier","src":"12094:9:88"},{"kind":"number","nativeSrc":"12105:2:88","nodeType":"YulLiteral","src":"12105:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12090:3:88","nodeType":"YulIdentifier","src":"12090:3:88"},"nativeSrc":"12090:18:88","nodeType":"YulFunctionCall","src":"12090:18:88"},{"kind":"number","nativeSrc":"12110:2:88","nodeType":"YulLiteral","src":"12110:2:88","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"12083:6:88","nodeType":"YulIdentifier","src":"12083:6:88"},"nativeSrc":"12083:30:88","nodeType":"YulFunctionCall","src":"12083:30:88"},"nativeSrc":"12083:30:88","nodeType":"YulExpressionStatement","src":"12083:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12133:9:88","nodeType":"YulIdentifier","src":"12133:9:88"},{"kind":"number","nativeSrc":"12144:2:88","nodeType":"YulLiteral","src":"12144:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12129:3:88","nodeType":"YulIdentifier","src":"12129:3:88"},"nativeSrc":"12129:18:88","nodeType":"YulFunctionCall","src":"12129:18:88"},{"hexValue":"506f6c6963793a20686173682063616e6e6f742062652030","kind":"string","nativeSrc":"12149:26:88","nodeType":"YulLiteral","src":"12149:26:88","type":"","value":"Policy: hash cannot be 0"}],"functionName":{"name":"mstore","nativeSrc":"12122:6:88","nodeType":"YulIdentifier","src":"12122:6:88"},"nativeSrc":"12122:54:88","nodeType":"YulFunctionCall","src":"12122:54:88"},"nativeSrc":"12122:54:88","nodeType":"YulExpressionStatement","src":"12122:54:88"},{"nativeSrc":"12185:26:88","nodeType":"YulAssignment","src":"12185:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12197:9:88","nodeType":"YulIdentifier","src":"12197:9:88"},{"kind":"number","nativeSrc":"12208:2:88","nodeType":"YulLiteral","src":"12208:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12193:3:88","nodeType":"YulIdentifier","src":"12193:3:88"},"nativeSrc":"12193:18:88","nodeType":"YulFunctionCall","src":"12193:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12185:4:88","nodeType":"YulIdentifier","src":"12185:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11869:348:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12020:9:88","nodeType":"YulTypedName","src":"12020:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12034:4:88","nodeType":"YulTypedName","src":"12034:4:88","type":""}],"src":"11869:348:88"},{"body":{"nativeSrc":"12396:224:88","nodeType":"YulBlock","src":"12396:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12413:9:88","nodeType":"YulIdentifier","src":"12413:9:88"},{"kind":"number","nativeSrc":"12424:2:88","nodeType":"YulLiteral","src":"12424:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12406:6:88","nodeType":"YulIdentifier","src":"12406:6:88"},"nativeSrc":"12406:21:88","nodeType":"YulFunctionCall","src":"12406:21:88"},"nativeSrc":"12406:21:88","nodeType":"YulExpressionStatement","src":"12406:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12447:9:88","nodeType":"YulIdentifier","src":"12447:9:88"},{"kind":"number","nativeSrc":"12458:2:88","nodeType":"YulLiteral","src":"12458:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12443:3:88","nodeType":"YulIdentifier","src":"12443:3:88"},"nativeSrc":"12443:18:88","nodeType":"YulFunctionCall","src":"12443:18:88"},{"kind":"number","nativeSrc":"12463:2:88","nodeType":"YulLiteral","src":"12463:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"12436:6:88","nodeType":"YulIdentifier","src":"12436:6:88"},"nativeSrc":"12436:30:88","nodeType":"YulFunctionCall","src":"12436:30:88"},"nativeSrc":"12436:30:88","nodeType":"YulExpressionStatement","src":"12436:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12486:9:88","nodeType":"YulIdentifier","src":"12486:9:88"},{"kind":"number","nativeSrc":"12497:2:88","nodeType":"YulLiteral","src":"12497:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12482:3:88","nodeType":"YulIdentifier","src":"12482:3:88"},"nativeSrc":"12482:18:88","nodeType":"YulFunctionCall","src":"12482:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"12502:34:88","nodeType":"YulLiteral","src":"12502:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"12475:6:88","nodeType":"YulIdentifier","src":"12475:6:88"},"nativeSrc":"12475:62:88","nodeType":"YulFunctionCall","src":"12475:62:88"},"nativeSrc":"12475:62:88","nodeType":"YulExpressionStatement","src":"12475:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12557:9:88","nodeType":"YulIdentifier","src":"12557:9:88"},{"kind":"number","nativeSrc":"12568:2:88","nodeType":"YulLiteral","src":"12568:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12553:3:88","nodeType":"YulIdentifier","src":"12553:3:88"},"nativeSrc":"12553:18:88","nodeType":"YulFunctionCall","src":"12553:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"12573:4:88","nodeType":"YulLiteral","src":"12573:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"12546:6:88","nodeType":"YulIdentifier","src":"12546:6:88"},"nativeSrc":"12546:32:88","nodeType":"YulFunctionCall","src":"12546:32:88"},"nativeSrc":"12546:32:88","nodeType":"YulExpressionStatement","src":"12546:32:88"},{"nativeSrc":"12587:27:88","nodeType":"YulAssignment","src":"12587:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12599:9:88","nodeType":"YulIdentifier","src":"12599:9:88"},{"kind":"number","nativeSrc":"12610:3:88","nodeType":"YulLiteral","src":"12610:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12595:3:88","nodeType":"YulIdentifier","src":"12595:3:88"},"nativeSrc":"12595:19:88","nodeType":"YulFunctionCall","src":"12595:19:88"},"variableNames":[{"name":"tail","nativeSrc":"12587:4:88","nodeType":"YulIdentifier","src":"12587:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12222:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12373:9:88","nodeType":"YulTypedName","src":"12373:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12387:4:88","nodeType":"YulTypedName","src":"12387:4:88","type":""}],"src":"12222:398:88"},{"body":{"nativeSrc":"12799:175:88","nodeType":"YulBlock","src":"12799:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12816:9:88","nodeType":"YulIdentifier","src":"12816:9:88"},{"kind":"number","nativeSrc":"12827:2:88","nodeType":"YulLiteral","src":"12827:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12809:6:88","nodeType":"YulIdentifier","src":"12809:6:88"},"nativeSrc":"12809:21:88","nodeType":"YulFunctionCall","src":"12809:21:88"},"nativeSrc":"12809:21:88","nodeType":"YulExpressionStatement","src":"12809:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12850:9:88","nodeType":"YulIdentifier","src":"12850:9:88"},{"kind":"number","nativeSrc":"12861:2:88","nodeType":"YulLiteral","src":"12861:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12846:3:88","nodeType":"YulIdentifier","src":"12846:3:88"},"nativeSrc":"12846:18:88","nodeType":"YulFunctionCall","src":"12846:18:88"},{"kind":"number","nativeSrc":"12866:2:88","nodeType":"YulLiteral","src":"12866:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"12839:6:88","nodeType":"YulIdentifier","src":"12839:6:88"},"nativeSrc":"12839:30:88","nodeType":"YulFunctionCall","src":"12839:30:88"},"nativeSrc":"12839:30:88","nodeType":"YulExpressionStatement","src":"12839:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12889:9:88","nodeType":"YulIdentifier","src":"12889:9:88"},{"kind":"number","nativeSrc":"12900:2:88","nodeType":"YulLiteral","src":"12900:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12885:3:88","nodeType":"YulIdentifier","src":"12885:3:88"},"nativeSrc":"12885:18:88","nodeType":"YulFunctionCall","src":"12885:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"12905:27:88","nodeType":"YulLiteral","src":"12905:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"12878:6:88","nodeType":"YulIdentifier","src":"12878:6:88"},"nativeSrc":"12878:55:88","nodeType":"YulFunctionCall","src":"12878:55:88"},"nativeSrc":"12878:55:88","nodeType":"YulExpressionStatement","src":"12878:55:88"},{"nativeSrc":"12942:26:88","nodeType":"YulAssignment","src":"12942:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12954:9:88","nodeType":"YulIdentifier","src":"12954:9:88"},{"kind":"number","nativeSrc":"12965:2:88","nodeType":"YulLiteral","src":"12965:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12950:3:88","nodeType":"YulIdentifier","src":"12950:3:88"},"nativeSrc":"12950:18:88","nodeType":"YulFunctionCall","src":"12950:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12942:4:88","nodeType":"YulIdentifier","src":"12942:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12625:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12776:9:88","nodeType":"YulTypedName","src":"12776:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12790:4:88","nodeType":"YulTypedName","src":"12790:4:88","type":""}],"src":"12625:349:88"},{"body":{"nativeSrc":"13028:79:88","nodeType":"YulBlock","src":"13028:79:88","statements":[{"nativeSrc":"13038:17:88","nodeType":"YulAssignment","src":"13038:17:88","value":{"arguments":[{"name":"x","nativeSrc":"13050:1:88","nodeType":"YulIdentifier","src":"13050:1:88"},{"name":"y","nativeSrc":"13053:1:88","nodeType":"YulIdentifier","src":"13053:1:88"}],"functionName":{"name":"sub","nativeSrc":"13046:3:88","nodeType":"YulIdentifier","src":"13046:3:88"},"nativeSrc":"13046:9:88","nodeType":"YulFunctionCall","src":"13046:9:88"},"variableNames":[{"name":"diff","nativeSrc":"13038:4:88","nodeType":"YulIdentifier","src":"13038:4:88"}]},{"body":{"nativeSrc":"13079:22:88","nodeType":"YulBlock","src":"13079:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"13081:16:88","nodeType":"YulIdentifier","src":"13081:16:88"},"nativeSrc":"13081:18:88","nodeType":"YulFunctionCall","src":"13081:18:88"},"nativeSrc":"13081:18:88","nodeType":"YulExpressionStatement","src":"13081:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"13070:4:88","nodeType":"YulIdentifier","src":"13070:4:88"},{"name":"x","nativeSrc":"13076:1:88","nodeType":"YulIdentifier","src":"13076:1:88"}],"functionName":{"name":"gt","nativeSrc":"13067:2:88","nodeType":"YulIdentifier","src":"13067:2:88"},"nativeSrc":"13067:11:88","nodeType":"YulFunctionCall","src":"13067:11:88"},"nativeSrc":"13064:37:88","nodeType":"YulIf","src":"13064:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"12979:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"13010:1:88","nodeType":"YulTypedName","src":"13010:1:88","type":""},{"name":"y","nativeSrc":"13013:1:88","nodeType":"YulTypedName","src":"13013:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"13019:4:88","nodeType":"YulTypedName","src":"13019:4:88","type":""}],"src":"12979:128:88"},{"body":{"nativeSrc":"13286:166:88","nodeType":"YulBlock","src":"13286:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13303:9:88","nodeType":"YulIdentifier","src":"13303:9:88"},{"kind":"number","nativeSrc":"13314:2:88","nodeType":"YulLiteral","src":"13314:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13296:6:88","nodeType":"YulIdentifier","src":"13296:6:88"},"nativeSrc":"13296:21:88","nodeType":"YulFunctionCall","src":"13296:21:88"},"nativeSrc":"13296:21:88","nodeType":"YulExpressionStatement","src":"13296:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13337:9:88","nodeType":"YulIdentifier","src":"13337:9:88"},{"kind":"number","nativeSrc":"13348:2:88","nodeType":"YulLiteral","src":"13348:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13333:3:88","nodeType":"YulIdentifier","src":"13333:3:88"},"nativeSrc":"13333:18:88","nodeType":"YulFunctionCall","src":"13333:18:88"},{"kind":"number","nativeSrc":"13353:2:88","nodeType":"YulLiteral","src":"13353:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"13326:6:88","nodeType":"YulIdentifier","src":"13326:6:88"},"nativeSrc":"13326:30:88","nodeType":"YulFunctionCall","src":"13326:30:88"},"nativeSrc":"13326:30:88","nodeType":"YulExpressionStatement","src":"13326:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13376:9:88","nodeType":"YulIdentifier","src":"13376:9:88"},{"kind":"number","nativeSrc":"13387:2:88","nodeType":"YulLiteral","src":"13387:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13372:3:88","nodeType":"YulIdentifier","src":"13372:3:88"},"nativeSrc":"13372:18:88","nodeType":"YulFunctionCall","src":"13372:18:88"},{"hexValue":"506f6c696379206e6f7420666f756e64","kind":"string","nativeSrc":"13392:18:88","nodeType":"YulLiteral","src":"13392:18:88","type":"","value":"Policy not found"}],"functionName":{"name":"mstore","nativeSrc":"13365:6:88","nodeType":"YulIdentifier","src":"13365:6:88"},"nativeSrc":"13365:46:88","nodeType":"YulFunctionCall","src":"13365:46:88"},"nativeSrc":"13365:46:88","nodeType":"YulExpressionStatement","src":"13365:46:88"},{"nativeSrc":"13420:26:88","nodeType":"YulAssignment","src":"13420:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13432:9:88","nodeType":"YulIdentifier","src":"13432:9:88"},{"kind":"number","nativeSrc":"13443:2:88","nodeType":"YulLiteral","src":"13443:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13428:3:88","nodeType":"YulIdentifier","src":"13428:3:88"},"nativeSrc":"13428:18:88","nodeType":"YulFunctionCall","src":"13428:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13420:4:88","nodeType":"YulIdentifier","src":"13420:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13112:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13263:9:88","nodeType":"YulTypedName","src":"13263:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13277:4:88","nodeType":"YulTypedName","src":"13277:4:88","type":""}],"src":"13112:340:88"},{"body":{"nativeSrc":"13631:168:88","nodeType":"YulBlock","src":"13631:168:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13648:9:88","nodeType":"YulIdentifier","src":"13648:9:88"},{"kind":"number","nativeSrc":"13659:2:88","nodeType":"YulLiteral","src":"13659:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13641:6:88","nodeType":"YulIdentifier","src":"13641:6:88"},"nativeSrc":"13641:21:88","nodeType":"YulFunctionCall","src":"13641:21:88"},"nativeSrc":"13641:21:88","nodeType":"YulExpressionStatement","src":"13641:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13682:9:88","nodeType":"YulIdentifier","src":"13682:9:88"},{"kind":"number","nativeSrc":"13693:2:88","nodeType":"YulLiteral","src":"13693:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13678:3:88","nodeType":"YulIdentifier","src":"13678:3:88"},"nativeSrc":"13678:18:88","nodeType":"YulFunctionCall","src":"13678:18:88"},{"kind":"number","nativeSrc":"13698:2:88","nodeType":"YulLiteral","src":"13698:2:88","type":"","value":"18"}],"functionName":{"name":"mstore","nativeSrc":"13671:6:88","nodeType":"YulIdentifier","src":"13671:6:88"},"nativeSrc":"13671:30:88","nodeType":"YulFunctionCall","src":"13671:30:88"},"nativeSrc":"13671:30:88","nodeType":"YulExpressionStatement","src":"13671:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13721:9:88","nodeType":"YulIdentifier","src":"13721:9:88"},{"kind":"number","nativeSrc":"13732:2:88","nodeType":"YulLiteral","src":"13732:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13717:3:88","nodeType":"YulIdentifier","src":"13717:3:88"},"nativeSrc":"13717:18:88","nodeType":"YulFunctionCall","src":"13717:18:88"},{"hexValue":"4861736820646f65736e2774206d61746368","kind":"string","nativeSrc":"13737:20:88","nodeType":"YulLiteral","src":"13737:20:88","type":"","value":"Hash doesn't match"}],"functionName":{"name":"mstore","nativeSrc":"13710:6:88","nodeType":"YulIdentifier","src":"13710:6:88"},"nativeSrc":"13710:48:88","nodeType":"YulFunctionCall","src":"13710:48:88"},"nativeSrc":"13710:48:88","nodeType":"YulExpressionStatement","src":"13710:48:88"},{"nativeSrc":"13767:26:88","nodeType":"YulAssignment","src":"13767:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13779:9:88","nodeType":"YulIdentifier","src":"13779:9:88"},{"kind":"number","nativeSrc":"13790:2:88","nodeType":"YulLiteral","src":"13790:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13775:3:88","nodeType":"YulIdentifier","src":"13775:3:88"},"nativeSrc":"13775:18:88","nodeType":"YulFunctionCall","src":"13775:18:88"},"variableNames":[{"name":"tail","nativeSrc":"13767:4:88","nodeType":"YulIdentifier","src":"13767:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dfce19cc5c9d715e1c1447fc4d85b7dd2f48c5fc48e7b8cdfb74121bafc6775d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13457:342:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13608:9:88","nodeType":"YulTypedName","src":"13608:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13622:4:88","nodeType":"YulTypedName","src":"13622:4:88","type":""}],"src":"13457:342:88"},{"body":{"nativeSrc":"13978:241:88","nodeType":"YulBlock","src":"13978:241:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13995:9:88","nodeType":"YulIdentifier","src":"13995:9:88"},{"kind":"number","nativeSrc":"14006:2:88","nodeType":"YulLiteral","src":"14006:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13988:6:88","nodeType":"YulIdentifier","src":"13988:6:88"},"nativeSrc":"13988:21:88","nodeType":"YulFunctionCall","src":"13988:21:88"},"nativeSrc":"13988:21:88","nodeType":"YulExpressionStatement","src":"13988:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14029:9:88","nodeType":"YulIdentifier","src":"14029:9:88"},{"kind":"number","nativeSrc":"14040:2:88","nodeType":"YulLiteral","src":"14040:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14025:3:88","nodeType":"YulIdentifier","src":"14025:3:88"},"nativeSrc":"14025:18:88","nodeType":"YulFunctionCall","src":"14025:18:88"},{"kind":"number","nativeSrc":"14045:2:88","nodeType":"YulLiteral","src":"14045:2:88","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"14018:6:88","nodeType":"YulIdentifier","src":"14018:6:88"},"nativeSrc":"14018:30:88","nodeType":"YulFunctionCall","src":"14018:30:88"},"nativeSrc":"14018:30:88","nodeType":"YulExpressionStatement","src":"14018:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14068:9:88","nodeType":"YulIdentifier","src":"14068:9:88"},{"kind":"number","nativeSrc":"14079:2:88","nodeType":"YulLiteral","src":"14079:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14064:3:88","nodeType":"YulIdentifier","src":"14064:3:88"},"nativeSrc":"14064:18:88","nodeType":"YulFunctionCall","src":"14064:18:88"},{"hexValue":"4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f","kind":"string","nativeSrc":"14084:34:88","nodeType":"YulLiteral","src":"14084:34:88","type":"","value":"Only riskModule is authorized to"}],"functionName":{"name":"mstore","nativeSrc":"14057:6:88","nodeType":"YulIdentifier","src":"14057:6:88"},"nativeSrc":"14057:62:88","nodeType":"YulFunctionCall","src":"14057:62:88"},"nativeSrc":"14057:62:88","nodeType":"YulExpressionStatement","src":"14057:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14139:9:88","nodeType":"YulIdentifier","src":"14139:9:88"},{"kind":"number","nativeSrc":"14150:2:88","nodeType":"YulLiteral","src":"14150:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14135:3:88","nodeType":"YulIdentifier","src":"14135:3:88"},"nativeSrc":"14135:18:88","nodeType":"YulFunctionCall","src":"14135:18:88"},{"hexValue":"207265736f6c76652074686520706f6c696379","kind":"string","nativeSrc":"14155:21:88","nodeType":"YulLiteral","src":"14155:21:88","type":"","value":" resolve the policy"}],"functionName":{"name":"mstore","nativeSrc":"14128:6:88","nodeType":"YulIdentifier","src":"14128:6:88"},"nativeSrc":"14128:49:88","nodeType":"YulFunctionCall","src":"14128:49:88"},"nativeSrc":"14128:49:88","nodeType":"YulExpressionStatement","src":"14128:49:88"},{"nativeSrc":"14186:27:88","nodeType":"YulAssignment","src":"14186:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14198:9:88","nodeType":"YulIdentifier","src":"14198:9:88"},{"kind":"number","nativeSrc":"14209:3:88","nodeType":"YulLiteral","src":"14209:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14194:3:88","nodeType":"YulIdentifier","src":"14194:3:88"},"nativeSrc":"14194:19:88","nodeType":"YulFunctionCall","src":"14194:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14186:4:88","nodeType":"YulIdentifier","src":"14186:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c6e8f8f1986f173d0b52c2c973e7c4feadfc6927d78aa5a06bfebe82321d431__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13804:415:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13955:9:88","nodeType":"YulTypedName","src":"13955:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13969:4:88","nodeType":"YulTypedName","src":"13969:4:88","type":""}],"src":"13804:415:88"},{"body":{"nativeSrc":"14272:128:88","nodeType":"YulBlock","src":"14272:128:88","statements":[{"nativeSrc":"14282:55:88","nodeType":"YulAssignment","src":"14282:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"14298:1:88","nodeType":"YulIdentifier","src":"14298:1:88"},{"kind":"number","nativeSrc":"14301:12:88","nodeType":"YulLiteral","src":"14301:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"14294:3:88","nodeType":"YulIdentifier","src":"14294:3:88"},"nativeSrc":"14294:20:88","nodeType":"YulFunctionCall","src":"14294:20:88"},{"arguments":[{"name":"y","nativeSrc":"14320:1:88","nodeType":"YulIdentifier","src":"14320:1:88"},{"kind":"number","nativeSrc":"14323:12:88","nodeType":"YulLiteral","src":"14323:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"14316:3:88","nodeType":"YulIdentifier","src":"14316:3:88"},"nativeSrc":"14316:20:88","nodeType":"YulFunctionCall","src":"14316:20:88"}],"functionName":{"name":"sub","nativeSrc":"14290:3:88","nodeType":"YulIdentifier","src":"14290:3:88"},"nativeSrc":"14290:47:88","nodeType":"YulFunctionCall","src":"14290:47:88"},"variableNames":[{"name":"diff","nativeSrc":"14282:4:88","nodeType":"YulIdentifier","src":"14282:4:88"}]},{"body":{"nativeSrc":"14372:22:88","nodeType":"YulBlock","src":"14372:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14374:16:88","nodeType":"YulIdentifier","src":"14374:16:88"},"nativeSrc":"14374:18:88","nodeType":"YulFunctionCall","src":"14374:18:88"},"nativeSrc":"14374:18:88","nodeType":"YulExpressionStatement","src":"14374:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"14352:4:88","nodeType":"YulIdentifier","src":"14352:4:88"},{"kind":"number","nativeSrc":"14358:12:88","nodeType":"YulLiteral","src":"14358:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14349:2:88","nodeType":"YulIdentifier","src":"14349:2:88"},"nativeSrc":"14349:22:88","nodeType":"YulFunctionCall","src":"14349:22:88"},"nativeSrc":"14346:48:88","nodeType":"YulIf","src":"14346:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"14224:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14254:1:88","nodeType":"YulTypedName","src":"14254:1:88","type":""},{"name":"y","nativeSrc":"14257:1:88","nodeType":"YulTypedName","src":"14257:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"14263:4:88","nodeType":"YulTypedName","src":"14263:4:88","type":""}],"src":"14224:176:88"},{"body":{"nativeSrc":"14457:116:88","nodeType":"YulBlock","src":"14457:116:88","statements":[{"nativeSrc":"14467:20:88","nodeType":"YulAssignment","src":"14467:20:88","value":{"arguments":[{"name":"x","nativeSrc":"14482:1:88","nodeType":"YulIdentifier","src":"14482:1:88"},{"name":"y","nativeSrc":"14485:1:88","nodeType":"YulIdentifier","src":"14485:1:88"}],"functionName":{"name":"mul","nativeSrc":"14478:3:88","nodeType":"YulIdentifier","src":"14478:3:88"},"nativeSrc":"14478:9:88","nodeType":"YulFunctionCall","src":"14478:9:88"},"variableNames":[{"name":"product","nativeSrc":"14467:7:88","nodeType":"YulIdentifier","src":"14467:7:88"}]},{"body":{"nativeSrc":"14545:22:88","nodeType":"YulBlock","src":"14545:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14547:16:88","nodeType":"YulIdentifier","src":"14547:16:88"},"nativeSrc":"14547:18:88","nodeType":"YulFunctionCall","src":"14547:18:88"},"nativeSrc":"14547:18:88","nodeType":"YulExpressionStatement","src":"14547:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"14516:1:88","nodeType":"YulIdentifier","src":"14516:1:88"}],"functionName":{"name":"iszero","nativeSrc":"14509:6:88","nodeType":"YulIdentifier","src":"14509:6:88"},"nativeSrc":"14509:9:88","nodeType":"YulFunctionCall","src":"14509:9:88"},{"arguments":[{"name":"y","nativeSrc":"14523:1:88","nodeType":"YulIdentifier","src":"14523:1:88"},{"arguments":[{"name":"product","nativeSrc":"14530:7:88","nodeType":"YulIdentifier","src":"14530:7:88"},{"name":"x","nativeSrc":"14539:1:88","nodeType":"YulIdentifier","src":"14539:1:88"}],"functionName":{"name":"div","nativeSrc":"14526:3:88","nodeType":"YulIdentifier","src":"14526:3:88"},"nativeSrc":"14526:15:88","nodeType":"YulFunctionCall","src":"14526:15:88"}],"functionName":{"name":"eq","nativeSrc":"14520:2:88","nodeType":"YulIdentifier","src":"14520:2:88"},"nativeSrc":"14520:22:88","nodeType":"YulFunctionCall","src":"14520:22:88"}],"functionName":{"name":"or","nativeSrc":"14506:2:88","nodeType":"YulIdentifier","src":"14506:2:88"},"nativeSrc":"14506:37:88","nodeType":"YulFunctionCall","src":"14506:37:88"}],"functionName":{"name":"iszero","nativeSrc":"14499:6:88","nodeType":"YulIdentifier","src":"14499:6:88"},"nativeSrc":"14499:45:88","nodeType":"YulFunctionCall","src":"14499:45:88"},"nativeSrc":"14496:71:88","nodeType":"YulIf","src":"14496:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"14405:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14436:1:88","nodeType":"YulTypedName","src":"14436:1:88","type":""},{"name":"y","nativeSrc":"14439:1:88","nodeType":"YulTypedName","src":"14439:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"14445:7:88","nodeType":"YulTypedName","src":"14445:7:88","type":""}],"src":"14405:168:88"},{"body":{"nativeSrc":"14624:171:88","nodeType":"YulBlock","src":"14624:171:88","statements":[{"body":{"nativeSrc":"14655:111:88","nodeType":"YulBlock","src":"14655:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14676:1:88","nodeType":"YulLiteral","src":"14676:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"14683:3:88","nodeType":"YulLiteral","src":"14683:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"14688:10:88","nodeType":"YulLiteral","src":"14688:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"14679:3:88","nodeType":"YulIdentifier","src":"14679:3:88"},"nativeSrc":"14679:20:88","nodeType":"YulFunctionCall","src":"14679:20:88"}],"functionName":{"name":"mstore","nativeSrc":"14669:6:88","nodeType":"YulIdentifier","src":"14669:6:88"},"nativeSrc":"14669:31:88","nodeType":"YulFunctionCall","src":"14669:31:88"},"nativeSrc":"14669:31:88","nodeType":"YulExpressionStatement","src":"14669:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14720:1:88","nodeType":"YulLiteral","src":"14720:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"14723:4:88","nodeType":"YulLiteral","src":"14723:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"14713:6:88","nodeType":"YulIdentifier","src":"14713:6:88"},"nativeSrc":"14713:15:88","nodeType":"YulFunctionCall","src":"14713:15:88"},"nativeSrc":"14713:15:88","nodeType":"YulExpressionStatement","src":"14713:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14748:1:88","nodeType":"YulLiteral","src":"14748:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14751:4:88","nodeType":"YulLiteral","src":"14751:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14741:6:88","nodeType":"YulIdentifier","src":"14741:6:88"},"nativeSrc":"14741:15:88","nodeType":"YulFunctionCall","src":"14741:15:88"},"nativeSrc":"14741:15:88","nodeType":"YulExpressionStatement","src":"14741:15:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"14644:1:88","nodeType":"YulIdentifier","src":"14644:1:88"}],"functionName":{"name":"iszero","nativeSrc":"14637:6:88","nodeType":"YulIdentifier","src":"14637:6:88"},"nativeSrc":"14637:9:88","nodeType":"YulFunctionCall","src":"14637:9:88"},"nativeSrc":"14634:132:88","nodeType":"YulIf","src":"14634:132:88"},{"nativeSrc":"14775:14:88","nodeType":"YulAssignment","src":"14775:14:88","value":{"arguments":[{"name":"x","nativeSrc":"14784:1:88","nodeType":"YulIdentifier","src":"14784:1:88"},{"name":"y","nativeSrc":"14787:1:88","nodeType":"YulIdentifier","src":"14787:1:88"}],"functionName":{"name":"div","nativeSrc":"14780:3:88","nodeType":"YulIdentifier","src":"14780:3:88"},"nativeSrc":"14780:9:88","nodeType":"YulFunctionCall","src":"14780:9:88"},"variableNames":[{"name":"r","nativeSrc":"14775:1:88","nodeType":"YulIdentifier","src":"14775:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"14578:217:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14609:1:88","nodeType":"YulTypedName","src":"14609:1:88","type":""},{"name":"y","nativeSrc":"14612:1:88","nodeType":"YulTypedName","src":"14612:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"14618:1:88","nodeType":"YulTypedName","src":"14618:1:88","type":""}],"src":"14578:217:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function allocate_memory_1633() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x01c0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xe0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(64, newFreePtr)\n    }\n    function validator_revert_contract_IRiskModule(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_contract_IRiskModule(value)\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_PolicyData(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x01c0) { revert(0, 0) }\n        value := allocate_memory_1633()\n        let value_1 := 0\n        value_1 := calldataload(headStart)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 96))\n        mstore(add(value, 96), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 128))\n        mstore(add(value, 128), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 160))\n        mstore(add(value, 160), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 192))\n        mstore(add(value, 192), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(headStart, 224))\n        mstore(add(value, 224), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(headStart, 256))\n        mstore(add(value, 256), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(headStart, 288))\n        mstore(add(value, 288), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(headStart, 320))\n        mstore(add(value, 320), value_11)\n        mstore(add(value, 352), abi_decode_contract_IRiskModule(add(headStart, 352)))\n        mstore(add(value, 384), abi_decode_uint40(add(headStart, 384)))\n        mstore(add(value, 416), abi_decode_uint40(add(headStart, 416)))\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 960) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        value1 := abi_decode_struct_PolicyData(add(headStart, 448), dataEnd)\n        let value := calldataload(add(headStart, 896))\n        validator_revert_contract_IRiskModule(value)\n        value2 := value\n        value3 := abi_decode_uint96(add(headStart, 928))\n    }\n    function abi_decode_tuple_t_contract$_IEToken_$23549t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IRiskModule(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 544) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_contract_IRiskModule(value)\n        value1 := value\n        let value_1 := calldataload(add(headStart, 480))\n        validator_revert_contract_IRiskModule(value_1)\n        value2 := value_1\n        value3 := abi_decode_uint96(add(headStart, 512))\n    }\n    function abi_decode_tuple_t_contract$_IRiskModule_$23983t_struct$_Params_$23926_memory_ptrt_uint256t_uint256t_uint256t_uint40t_uint40(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 416) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IRiskModule(value)\n        value0 := value\n        if slt(add(_1, not(31)), 0xe0) { revert(0, 0) }\n        let value_1 := allocate_memory()\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(value_1, value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value_1, 32), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 96))\n        mstore(add(value_1, 64), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 128))\n        mstore(add(value_1, 96), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 160))\n        mstore(add(value_1, 128), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 192))\n        mstore(add(value_1, 160), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(headStart, 0xe0))\n        mstore(add(value_1, 192), value_8)\n        value1 := value_1\n        let value_9 := 0\n        value_9 := calldataload(add(headStart, 256))\n        value2 := value_9\n        let value_10 := 0\n        value_10 := calldataload(add(headStart, 288))\n        value3 := value_10\n        let value_11 := 0\n        value_11 := calldataload(add(headStart, 320))\n        value4 := value_11\n        value5 := abi_decode_uint40(add(headStart, 352))\n        value6 := abi_decode_uint40(add(headStart, 384))\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 448) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n    }\n    function abi_encode_contract_IAccessManager(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr__to_t_struct$_PolicyData_$14966_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 448)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n        mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n        mstore(add(headStart, 0x0100), mload(add(value0, 0x0100)))\n        mstore(add(headStart, 0x0120), mload(add(value0, 0x0120)))\n        mstore(add(headStart, 0x0140), mload(add(value0, 0x0140)))\n        let memberValue0 := mload(add(value0, 0x0160))\n        abi_encode_contract_IAccessManager(memberValue0, add(headStart, 0x0160))\n        let memberValue0_1 := mload(add(value0, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(headStart, 0x0180))\n        let memberValue0_2 := mload(add(value0, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(headStart, 0x01a0))\n    }\n    function abi_encode_tuple_t_stringliteral_4056b1a890a2c3818b7771ad8e47567b7f58fbbd321bfc4356d4990f533b901a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Not Implemented deposit\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 448) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_d1c133ca691942c2b9c7b9bbdea503640377a82463f9986cfe69df5983647c2d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Not Implemented withdraw\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_69d4e24df60389f58a271b121ff19e23450372aaaa9e20400d91eede0c71ac9b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Policy: hash cannot be 0\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_42cb6adf2172fcd554545cbd0fc5a0dbec5675a8a159c6f6ca5b7e35bd632f79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Policy not found\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dfce19cc5c9d715e1c1447fc4d85b7dd2f48c5fc48e7b8cdfb74121bafc6775d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Hash doesn't match\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8c6e8f8f1986f173d0b52c2c973e7c4feadfc6927d78aa5a06bfebe82321d431__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Only riskModule is authorized to\")\n        mstore(add(headStart, 96), \" resolve the policy\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806371907f171161008857806382afd23b1161006357806382afd23b146101c2578063e5a6b10f146101f3578063f3fef3a314610203578063ffa600e314610216575f5ffd5b806371907f171461017f578063792da09e146101905780637a702b3c146101af575f5ffd5b806361d027b3116100c357806361d027b31461012c5780636769a76f1461014657806368d9523c146101595780636af6f1ef1461016c575f5ffd5b8063098d3228146100e95780633ed7c1ae1461010457806347e7ef2414610117575b5f5ffd5b6100f15f1981565b6040519081526020015b60405180910390f35b6100f1610112366004610cb9565b610229565b61012a610125366004610d12565b6102f2565b005b5f5b6040516001600160a01b0390911681526020016100fb565b6100f1610154366004610d3c565b61033f565b61012a610167366004610d8b565b6103c9565b61012a61017a366004610e77565b610439565b6001546001600160a01b031661012e565b6100f161019e366004610e99565b5f9081526003602052604090205490565b61012a6101bd366004610eb0565b610454565b6101e36101d0366004610e99565b5f90815260036020526040902054151590565b60405190151581526020016100fb565b5f546001600160a01b031661012e565b6100f1610211366004610d12565b610470565b61012a610224366004610edb565b6104ba565b5f816001600160601b031660608561016001516001600160a01b0316901b6102519190610f2b565b845261025c846104e1565b84515f90815260036020526040908190209190915561016086015190516001600160a01b038216907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b906102b1908890610f44565b60405180910390a28451865160405133907f4ff4ac703cb703b7ea535d47e65e64b4cabf11b3e2eb41f152dab17971953add905f90a4505091519392505050565b60405162461bcd60e51b815260206004820152601760248201527f4e6f7420496d706c656d656e746564206465706f73697400000000000000000060448201526064015b60405180910390fd5b5f816001600160601b031660608661016001516001600160a01b0316901b6103679190610f2b565b8552610372856104e1565b85515f9081526003602052604090819020919091555133907f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b906103b7908890610f44565b60405180910390a25050915192915050565b5f6103ec88888888888864ffffffffff8916156103e6578861055f565b4261055f565b9050876001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b826040516104279190610f44565b60405180910390a25050505050505050565b61045161044b36839003830183611013565b5f6106cf565b50565b61046c61046636849003840184611013565b826106cf565b5050565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420496d706c656d656e746564207769746864726177000000000000000060448201525f90606401610336565b61046c6104cc36849003840184611013565b826104d7575f6106cf565b83602001356106cf565b5f816040516020016104f39190610f44565b60408051601f19818403018152919052805160209091012090508061055a5760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f74206265203000000000000000006044820152606401610336565b919050565b610567610ace565b848611156105c25760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610336565b6105ca610ace565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f61061489888888886108a5565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e0808501919091528101519091508810156106ad5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610336565b60e08101516106bc908961102e565b6101008301525098975050505050505050565b81515f036107125760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610336565b81515f9081526003602052604090205461072b836104e1565b1461076d5760405162461bcd60e51b8152602060048201526012602482015271090c2e6d040c8decae6dc4ee840dac2e8c6d60731b6044820152606401610336565b8161016001516001600160a01b0316336001600160a01b0316146107ef5760405162461bcd60e51b815260206004820152603360248201527f4f6e6c79207269736b4d6f64756c6520697320617574686f72697a656420746f604482015272207265736f6c76652074686520706f6c69637960681b6064820152608401610336565b81515f908152600260208181526040808420848155600181018590559283018490556003808401859055600484018590556005840185905560068401859055600784018590556008840185905560098401859055600a8401859055600b90930180546001600160f01b0319169055855184529181528183209290925583519051838152909133917f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e910160405180910390a35050565b6108e56040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b85516108fd906108f6908690610a98565b8690610a98565b8152602086015161090f908690610a98565b602082018190528151101561093957805160208201805161093190839061102e565b905250610940565b5f60208201525b6040860151610950908690610a98565b6040820152602081015181516109669190610f2b565b8160400151111561099b57602081015181516109829190610f2b565b81604001818151610993919061102e565b9052506109a2565b5f60408201525b6109df6301e133806109b48486611041565b64ffffffffff168860a001516109ca919061105e565b6109d49190611075565b602083015190610a98565b6060820152610a216301e133806109f68486611041565b64ffffffffff168860c00151610a0c919061105e565b610a169190611075565b604083015190610a98565b6080820181905260608201515f91610a3891610f2b565b9050610a51876080015182610a9890919063ffffffff16565b60608801518351610a6191610a98565b610a6b9190610f2b565b60a0830181905282518291610a7f91610f2b565b610a899190610f2b565b60e08301525095945050505050565b5f81156706f05b59d3b200001983900484111517610ab4575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b6040516101c0810167ffffffffffffffff81118282101715610b7657634e487b7160e01b5f52604160045260245ffd5b60405290565b60405160e0810167ffffffffffffffff81118282101715610b7657634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610451575f5ffd5b803561055a81610bab565b803564ffffffffff8116811461055a575f5ffd5b5f6101c08284031215610bef575f5ffd5b610bf7610b46565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e080840135908201526101008084013590820152610120808401359082015261014080840135908201529050610c716101608301610bbf565b610160820152610c846101808301610bca565b610180820152610c976101a08301610bca565b6101a082015292915050565b80356001600160601b038116811461055a575f5ffd5b5f5f5f5f6103c08587031215610ccd575f5ffd5b610cd78686610bde565b9350610ce7866101c08701610bde565b9250610380850135610cf881610bab565b9150610d076103a08601610ca3565b905092959194509250565b5f5f60408385031215610d23575f5ffd5b8235610d2e81610bab565b946020939093013593505050565b5f5f5f5f6102208587031215610d50575f5ffd5b610d5a8686610bde565b93506101c0850135610d6b81610bab565b92506101e0850135610d7c81610bab565b9150610d076102008601610ca3565b5f5f5f5f5f5f5f8789036101a0811215610da3575f5ffd5b8835610dae81610bab565b975060e0601f1982011215610dc1575f5ffd5b50610dca610b7c565b60208981013582526040808b0135918301919091526060808b0135918301919091526080808b01359183019190915260a0808b01359183019190915260c0808b01359183019190915260e08a0135908201529550610100880135945061012088013593506101408801359250610e436101608901610bca565b9150610e526101808901610bca565b905092959891949750929550565b5f6101c08284031215610e71575f5ffd5b50919050565b5f6101c08284031215610e88575f5ffd5b610e928383610e60565b9392505050565b5f60208284031215610ea9575f5ffd5b5035919050565b5f5f6101e08385031215610ec2575f5ffd5b610ecc8484610e60565b946101c0939093013593505050565b5f5f6101e08385031215610eed575f5ffd5b610ef78484610e60565b91506101c08301358015158114610f0c575f5ffd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610f3e57610f3e610f17565b92915050565b5f6101c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100830151610100830152610120830151610120830152610140830151610140830152610160830151610fd66101608401826001600160a01b03169052565b50610180830151610ff161018084018264ffffffffff169052565b506101a083015161100c6101a084018264ffffffffff169052565b5092915050565b5f6101c08284031215611024575f5ffd5b610e928383610bde565b81810381811115610f3e57610f3e610f17565b64ffffffffff8281168282160390811115610f3e57610f3e610f17565b8082028115828204841417610f3e57610f3e610f17565b5f8261108f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202875fb0cf7578627344944a973d9980bf2bde9372eb00d48a3697b0d51135c5d64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x71907F17 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x82AFD23B GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0xFFA600E3 EQ PUSH2 0x216 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x71907F17 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x792DA09E EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x1AF JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x61D027B3 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x61D027B3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x6769A76F EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x68D9523C EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x6AF6F1EF EQ PUSH2 0x16C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x98D3228 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x3ED7C1AE EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x47E7EF24 EQ PUSH2 0x117 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xF1 PUSH0 NOT DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF1 PUSH2 0x112 CALLDATASIZE PUSH1 0x4 PUSH2 0xCB9 JUMP JUMPDEST PUSH2 0x229 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0xD12 JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST STOP JUMPDEST PUSH0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFB JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0xD3C JUMP JUMPDEST PUSH2 0x33F JUMP JUMPDEST PUSH2 0x12A PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xE77 JUMP JUMPDEST PUSH2 0x439 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x12E JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x19E CALLDATASIZE PUSH1 0x4 PUSH2 0xE99 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x1BD CALLDATASIZE PUSH1 0x4 PUSH2 0xEB0 JUMP JUMPDEST PUSH2 0x454 JUMP JUMPDEST PUSH2 0x1E3 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0xE99 JUMP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFB JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x12E JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xD12 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xEDB JUMP JUMPDEST PUSH2 0x4BA JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x60 DUP6 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 SHL PUSH2 0x251 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP5 MSTORE PUSH2 0x25C DUP5 PUSH2 0x4E1 JUMP JUMPDEST DUP5 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x160 DUP7 ADD MLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B SWAP1 PUSH2 0x2B1 SWAP1 DUP9 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP5 MLOAD DUP7 MLOAD PUSH1 0x40 MLOAD CALLER SWAP1 PUSH32 0x4FF4AC703CB703B7EA535D47E65E64B4CABF11B3E2EB41F152DAB17971953ADD SWAP1 PUSH0 SWAP1 LOG4 POP POP SWAP2 MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420496D706C656D656E746564206465706F736974000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x60 DUP7 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 SHL PUSH2 0x367 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP6 MSTORE PUSH2 0x372 DUP6 PUSH2 0x4E1 JUMP JUMPDEST DUP6 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD CALLER SWAP1 PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B SWAP1 PUSH2 0x3B7 SWAP1 DUP9 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP2 MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3EC DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH5 0xFFFFFFFFFF DUP10 AND ISZERO PUSH2 0x3E6 JUMPI DUP9 PUSH2 0x55F JUMP JUMPDEST TIMESTAMP PUSH2 0x55F JUMP JUMPDEST SWAP1 POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38F420E3792044BA61536A1F83956EEFC878B3FB09A7D4A28790F05B6A3EAF3B DUP3 PUSH1 0x40 MLOAD PUSH2 0x427 SWAP2 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x451 PUSH2 0x44B CALLDATASIZE DUP4 SWAP1 SUB DUP4 ADD DUP4 PUSH2 0x1013 JUMP JUMPDEST PUSH0 PUSH2 0x6CF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x46C PUSH2 0x466 CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x1013 JUMP JUMPDEST DUP3 PUSH2 0x6CF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F7420496D706C656D656E7465642077697468647261770000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH0 SWAP1 PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST PUSH2 0x46C PUSH2 0x4CC CALLDATASIZE DUP5 SWAP1 SUB DUP5 ADD DUP5 PUSH2 0x1013 JUMP JUMPDEST DUP3 PUSH2 0x4D7 JUMPI PUSH0 PUSH2 0x6CF JUMP JUMPDEST DUP4 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x6CF JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP1 POP DUP1 PUSH2 0x55A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963793A20686173682063616E6E6F7420626520300000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x567 PUSH2 0xACE JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x336 JUMP JUMPDEST PUSH2 0x5CA PUSH2 0xACE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x614 DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x8A5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x6BC SWAP1 DUP10 PUSH2 0x102E JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH0 SUB PUSH2 0x712 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x141BDB1A58DE481B9BDD08199BDD5B99 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x72B DUP4 PUSH2 0x4E1 JUMP JUMPDEST EQ PUSH2 0x76D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x90C2E6D040C8DECAE6DC4EE840DAC2E8C6D PUSH1 0x73 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 PUSH2 0x160 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79207269736B4D6F64756C6520697320617574686F72697A656420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x207265736F6C76652074686520706F6C696379 PUSH1 0x68 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x336 JUMP JUMPDEST DUP2 MLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE SWAP3 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x3 DUP1 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0xA DUP5 ADD DUP6 SWAP1 SSTORE PUSH1 0xB SWAP1 SWAP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND SWAP1 SSTORE DUP6 MLOAD DUP5 MSTORE SWAP2 DUP2 MSTORE DUP2 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP4 MLOAD SWAP1 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 CALLER SWAP2 PUSH32 0x54F4A270EA08F88DC23B2520D6B063FECB24D956C4496F447926D736338F545E SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x8E5 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x8FD SWAP1 PUSH2 0x8F6 SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x90F SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x939 JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x931 SWAP1 DUP4 SWAP1 PUSH2 0x102E JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x950 SWAP1 DUP7 SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x966 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x99B JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x982 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x102E JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x9DF PUSH4 0x1E13380 PUSH2 0x9B4 DUP5 DUP7 PUSH2 0x1041 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x9CA SWAP2 SWAP1 PUSH2 0x105E JUMP JUMPDEST PUSH2 0x9D4 SWAP2 SWAP1 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0xA21 PUSH4 0x1E13380 PUSH2 0x9F6 DUP5 DUP7 PUSH2 0x1041 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0xA0C SWAP2 SWAP1 PUSH2 0x105E JUMP JUMPDEST PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0xA38 SWAP2 PUSH2 0xF2B JUMP JUMPDEST SWAP1 POP PUSH2 0xA51 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0xA98 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0xA61 SWAP2 PUSH2 0xA98 JUMP JUMPDEST PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0xA7F SWAP2 PUSH2 0xF2B JUMP JUMPDEST PUSH2 0xA89 SWAP2 SWAP1 PUSH2 0xF2B JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0xAB4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB76 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x451 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x55A DUP2 PUSH2 0xBAB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x55A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEF JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xBF7 PUSH2 0xB46 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0xC71 PUSH2 0x160 DUP4 ADD PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0xC84 PUSH2 0x180 DUP4 ADD PUSH2 0xBCA JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0xC97 PUSH2 0x1A0 DUP4 ADD PUSH2 0xBCA JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x55A JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xCCD JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xCD7 DUP7 DUP7 PUSH2 0xBDE JUMP JUMPDEST SWAP4 POP PUSH2 0xCE7 DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0xBDE JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0xCF8 DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD07 PUSH2 0x3A0 DUP7 ADD PUSH2 0xCA3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD23 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xD2E DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD50 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD5A DUP7 DUP7 PUSH2 0xBDE JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0xD6B DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0xD7C DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD07 PUSH2 0x200 DUP7 ADD PUSH2 0xCA3 JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 DUP8 DUP10 SUB PUSH2 0x1A0 DUP2 SLT ISZERO PUSH2 0xDA3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0xDAE DUP2 PUSH2 0xBAB JUMP JUMPDEST SWAP8 POP PUSH1 0xE0 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0xDC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0xDCA PUSH2 0xB7C JUMP JUMPDEST PUSH1 0x20 DUP10 DUP2 ADD CALLDATALOAD DUP3 MSTORE PUSH1 0x40 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xC0 DUP1 DUP12 ADD CALLDATALOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xE0 DUP11 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP6 POP PUSH2 0x100 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x120 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x140 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH2 0xE43 PUSH2 0x160 DUP10 ADD PUSH2 0xBCA JUMP JUMPDEST SWAP2 POP PUSH2 0xE52 PUSH2 0x180 DUP10 ADD PUSH2 0xBCA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE71 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE88 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE92 DUP4 DUP4 PUSH2 0xE60 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xECC DUP5 DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEED JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xEF7 DUP5 DUP5 PUSH2 0xE60 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xF0C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH2 0xFD6 PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP4 ADD MLOAD PUSH2 0xFF1 PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP4 ADD MLOAD PUSH2 0x100C PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1024 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xE92 DUP4 DUP4 PUSH2 0xBDE JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xF3E JUMPI PUSH2 0xF3E PUSH2 0xF17 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x108F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 PUSH22 0xFB0CF7578627344944A973D9980BF2BDE9372EB00D48 LOG3 PUSH10 0x7B0D51135C5D64736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"484:3641:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;566:100;;-1:-1:-1;;566:100:85;;;;;160:25:88;;;148:2;133:18;566:100:85;;;;;;;;1653:525;;;;;;:::i;:::-;;:::i;3337:102::-;;;;;;:::i;:::-;;:::i;:::-;;1172:89;1224:7;1172:89;;;-1:-1:-1;;;;;4421:32:88;;;4403:51;;4391:2;4376:18;1172:89:85;4257:203:88;1265:384:85;;;;;;:::i;:::-;;:::i;3647:476::-;;;;;;:::i;:::-;;:::i;2783:111::-;;;;;;:::i;:::-;;:::i;1077:91::-;1156:7;;-1:-1:-1;;;;;1156:7:85;1077:91;;3211:122;;;;;;:::i;:::-;3284:7;3306:22;;;:12;:22;;;;;;;3211:122;2646:133;;;;;;:::i;:::-;;:::i;3079:128::-;;;;;;:::i;:::-;3147:4;3166:22;;;:12;:22;;;;;;:36;;;3079:128;;;;8618:14:88;;8611:22;8593:41;;8581:2;8566:18;3079:128:85;8453:187:88;978:95:85;1030:14;1059:9;-1:-1:-1;;;;;1059:9:85;978:95;;3443:122;;;;;;:::i;:::-;;:::i;2898:177::-;;;;;;:::i;:::-;;:::i;1653:525::-;1836:7;1926:10;-1:-1:-1;;;;;1867:69:85;1920:2;1892:10;:21;;;-1:-1:-1;;;;;1868:48:85;:54;;1867:69;;;;:::i;:::-;1851:85;;1972:17;1851:10;1972:15;:17::i;:::-;1955:13;;1942:27;;;;:12;:27;;;;;;;:47;;;;2012:20;;;;2043:25;;-1:-1:-1;;;;;2043:25:85;;;;;;;1955:10;;2043:25;:::i;:::-;;;;;;;;2133:13;;2119:12;;2079:68;;2106:10;;2079:68;;2133:13;;2079:68;-1:-1:-1;;2160:13:85;;;1653:525;-1:-1:-1;;;1653:525:85:o;3337:102::-;3401:33;;-1:-1:-1;;;3401:33:85;;11126:2:88;3401:33:85;;;11108:21:88;11165:2;11145:18;;;11138:30;11204:25;11184:18;;;11177:53;11247:18;;3401:33:85;;;;;;;;1265:384;1432:7;1514:10;-1:-1:-1;;;;;1459:65:85;1508:2;1484:6;:17;;;-1:-1:-1;;;;;1460:44:85;:50;;1459:65;;;;:::i;:::-;1447:77;;1556:13;1447:6;1556:11;:13::i;:::-;1543:9;;1530:23;;;;:12;:23;;;;;;;:39;;;;1580:42;1602:10;;1580:42;;;;1543:6;;1580:42;:::i;:::-;;;;;;;;-1:-1:-1;;1635:9:85;;;1265:384;-1:-1:-1;;1265:384:85:o;3647:476::-;3871:31;3905:172;3930:10;3948:8;3964:7;3979:6;3993:8;4009:10;4027;;;;:44;;4066:5;3905:17;:172::i;4027:44::-;4047:15;3905:17;:172::i;:::-;3871:206;;4099:10;-1:-1:-1;;;;;4089:29:85;;4111:6;4089:29;;;;;;:::i;:::-;;;;;;;;3865:258;3647:476;;;;;;;:::o;2783:111::-;2864:25;;;;;;;;2879:6;2864:25;:::i;:::-;2887:1;2864:14;:25::i;:::-;2783:111;:::o;2646:133::-;2744:30;;;;;;;;2759:6;2744:30;:::i;:::-;2767:6;2744:14;:30::i;:::-;2646:133;;:::o;3443:122::-;3526:34;;-1:-1:-1;;;3526:34:85;;11718:2:88;3526:34:85;;;11700:21:88;11757:2;11737:18;;;11730:30;11796:26;11776:18;;;11769:54;3511:7:85;;11840:18:88;;3526:34:85;11516:348:88;2898:177:85;3015:55;;;;;;;;3030:6;3015:55;:::i;:::-;3038:11;:31;;3068:1;3015:14;:55::i;3038:31::-;3052:6;:13;;;3015:14;:55::i;4693:214:55:-;4756:15;4810:6;4799:18;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4799:18:55;;;;;;;;;4789:29;;4799:18;4789:29;;;;;-1:-1:-1;4789:29:55;4824:58;;;;-1:-1:-1;;;4824:58:55;;12071:2:88;4824:58:55;;;12053:21:88;12110:2;12090:18;;;12083:30;12149:26;12129:18;;;12122:54;12193:18;;4824:58:55;11869:348:88;4824:58:55;4693:214;;;:::o;2835:1074::-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;12424:2:88;3089:64:55;;;12406:21:88;12463:2;12443:18;;;12436:30;12502:34;12482:18;;;12475:62;-1:-1:-1;;;12553:18:88;;;12546:32;12595:19;;3089:64:55;12222:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;12827:2:88;3746:72:55;;;12809:21:88;12866:2;12846:18;;;12839:30;12905:27;12885:18;;;12878:55;12950:18;;3746:72:55;12625:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;2182:460:85:-;2278:9;;;:14;2270:43;;;;-1:-1:-1;;;2270:43:85;;13314:2:88;2270:43:85;;;13296:21:88;13353:2;13333:18;;;13326:30;-1:-1:-1;;;13372:18:88;;;13365:46;13428:18;;2270:43:85;13112:340:88;2270:43:85;2357:9;;2344:23;;;;:12;:23;;;;;;2327:13;2357:6;2327:11;:13::i;:::-;:40;2319:71;;;;-1:-1:-1;;;2319:71:85;;13659:2:88;2319:71:85;;;13641:21:88;13698:2;13678:18;;;13671:30;-1:-1:-1;;;13717:18:88;;;13710:48;13775:18;;2319:71:85;13457:342:88;2319:71:85;2426:6;:17;;;-1:-1:-1;;;;;2404:40:85;:10;-1:-1:-1;;;;;2404:40:85;;2396:104;;;;-1:-1:-1;;;2396:104:85;;14006:2:88;2396:104:85;;;13988:21:88;14045:2;14025:18;;;14018:30;14084:34;14064:18;;;14057:62;-1:-1:-1;;;14135:18:88;;;14128:49;14194:19;;2396:104:85;13804:415:88;2396:104:85;2522:9;;2513:19;;;;:8;:19;;;;;;;;2506:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2506:26:85;;;2558:9;;2545:23;;;;;;;;2538:30;;;;2619:9;;2579:58;;160:25:88;;;2619:9:85;;2606:10;;2579:58;;133:18:88;2579:58:85;;;;;;;2182:460;;:::o;1541:1290:55:-;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;1077:319:65:-;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;196:352:88:-;268:2;262:9;310:6;298:19;;347:18;332:34;;368:22;;;329:62;326:185;;;433:10;428:3;424:20;421:1;414:31;468:4;465:1;458:15;496:4;493:1;486:15;326:185;527:2;520:22;196:352;:::o;553:345::-;620:2;614:9;662:4;650:17;;697:18;682:34;;718:22;;;679:62;676:185;;;783:10;778:3;774:20;771:1;764:31;818:4;815:1;808:15;846:4;843:1;836:15;903:144;-1:-1:-1;;;;;991:31:88;;981:42;;971:70;;1037:1;1034;1027:12;1052:160;1133:20;;1162:44;1133:20;1162:44;:::i;1217:165::-;1284:20;;1344:12;1333:24;;1323:35;;1313:63;;1372:1;1369;1362:12;1387:1694;1444:5;1492:6;1480:9;1475:3;1471:19;1467:32;1464:52;;;1512:1;1509;1502:12;1464:52;1534:22;;:::i;:::-;1601:23;;1633:22;;1728:2;1713:18;;;1700:32;1748:14;;;1741:31;1845:2;1830:18;;;1817:32;1865:14;;;1858:31;1962:2;1947:18;;;1934:32;1982:14;;;1975:31;2079:3;2064:19;;;2051:33;2100:15;;;2093:32;2198:3;2183:19;;;2170:33;2219:15;;;2212:32;2317:3;2302:19;;;2289:33;2338:15;;;2331:32;2436:3;2421:19;;;2408:33;2457:15;;;2450:32;2555:3;2540:19;;;2527:33;2576:15;;;2569:32;2676:3;2661:19;;;2648:33;2697:15;;;2690:33;2798:3;2783:19;;;2770:33;2819:15;;;2812:33;1525:31;-1:-1:-1;2878:52:88;2925:3;2910:19;;2878:52;:::i;:::-;2872:3;2865:5;2861:15;2854:77;2964:38;2997:3;2986:9;2982:19;2964:38;:::i;:::-;2958:3;2951:5;2947:15;2940:63;3036:38;3069:3;3058:9;3054:19;3036:38;:::i;:::-;3030:3;3023:5;3019:15;3012:63;1387:1694;;;;:::o;3086:179::-;3153:20;;-1:-1:-1;;;;;3202:38:88;;3192:49;;3182:77;;3255:1;3252;3245:12;3270:580;3413:6;3421;3429;3437;3490:3;3478:9;3469:7;3465:23;3461:33;3458:53;;;3507:1;3504;3497:12;3458:53;3530:48;3570:7;3559:9;3530:48;:::i;:::-;3520:58;;3597;3647:7;3641:3;3630:9;3626:19;3597:58;:::i;:::-;3587:68;;3705:3;3694:9;3690:19;3677:33;3719:44;3757:5;3719:44;:::i;:::-;3782:5;-1:-1:-1;3806:38:88;3839:3;3824:19;;3806:38;:::i;:::-;3796:48;;3270:580;;;;;;;:::o;3855:397::-;3940:6;3948;4001:2;3989:9;3980:7;3976:23;3972:32;3969:52;;;4017:1;4014;4007:12;3969:52;4056:9;4043:23;4075:44;4113:5;4075:44;:::i;:::-;4138:5;4216:2;4201:18;;;;4188:32;;-1:-1:-1;;;3855:397:88:o;4465:612::-;4579:6;4587;4595;4603;4656:3;4644:9;4635:7;4631:23;4627:33;4624:53;;;4673:1;4670;4663:12;4624:53;4696:48;4736:7;4725:9;4696:48;:::i;:::-;4686:58;;4794:3;4783:9;4779:19;4766:33;4808:44;4846:5;4808:44;:::i;:::-;4871:5;-1:-1:-1;4928:3:88;4913:19;;4900:33;4942:46;4900:33;4942:46;:::i;:::-;5007:7;-1:-1:-1;5033:38:88;5066:3;5051:19;;5033:38;:::i;5082:1815::-;5239:6;5247;5255;5263;5271;5279;5287;5331:9;5322:7;5318:23;5361:3;5357:2;5353:12;5350:32;;;5378:1;5375;5368:12;5350:32;5417:9;5404:23;5436:44;5474:5;5436:44;:::i;:::-;5499:5;-1:-1:-1;5538:4:88;-1:-1:-1;;5520:16:88;;5516:27;5513:47;;;5556:1;5553;5546:12;5513:47;;5584:17;;:::i;:::-;5674:2;5659:18;;;5646:32;5687:24;;5784:2;5769:18;;;5756:32;5804:16;;;5797:33;;;;5903:2;5888:18;;;5875:32;5923:16;;;5916:33;;;;6022:3;6007:19;;;5994:33;6043:16;;;6036:33;;;;6142:3;6127:19;;;6114:33;6163:17;;;6156:34;;;;6263:3;6248:19;;;6235:33;6284:17;;;6277:34;;;;6384:4;6369:20;;6356:34;6406:17;;;6399:34;5694:7;-1:-1:-1;6532:3:88;6517:19;;6504:33;;-1:-1:-1;6638:3:88;6623:19;;6610:33;;-1:-1:-1;6745:3:88;6730:19;;6717:33;;-1:-1:-1;6796:38:88;6829:3;6814:19;;6796:38;:::i;:::-;6786:48;;6853:38;6886:3;6875:9;6871:19;6853:38;:::i;:::-;6843:48;;5082:1815;;;;;;;;;;:::o;6902:159::-;6965:5;7010:3;7001:6;6996:3;6992:16;6988:26;6985:46;;;7027:1;7024;7017:12;6985:46;-1:-1:-1;7049:6:88;6902:159;-1:-1:-1;6902:159:88:o;7066:246::-;7156:6;7209:3;7197:9;7188:7;7184:23;7180:33;7177:53;;;7226:1;7223;7216:12;7177:53;7249:57;7298:7;7287:9;7249:57;:::i;:::-;7239:67;7066:246;-1:-1:-1;;;7066:246:88:o;7674:226::-;7733:6;7786:2;7774:9;7765:7;7761:23;7757:32;7754:52;;;7802:1;7799;7792:12;7754:52;-1:-1:-1;7847:23:88;;7674:226;-1:-1:-1;7674:226:88:o;8087:361::-;8186:6;8194;8247:3;8235:9;8226:7;8222:23;8218:33;8215:53;;;8264:1;8261;8254:12;8215:53;8287:57;8336:7;8325:9;8287:57;:::i;:::-;8277:67;8413:3;8398:19;;;;8385:33;;-1:-1:-1;;;8087:361:88:o;8876:408::-;8972:6;8980;9033:3;9021:9;9012:7;9008:23;9004:33;9001:53;;;9050:1;9047;9040:12;9001:53;9073:57;9122:7;9111:9;9073:57;:::i;:::-;9063:67;;9180:3;9169:9;9165:19;9152:33;9228:5;9221:13;9214:21;9207:5;9204:32;9194:60;;9250:1;9247;9240:12;9194:60;9273:5;9263:15;;;8876:408;;;;;:::o;9289:127::-;9350:10;9345:3;9341:20;9338:1;9331:31;9381:4;9378:1;9371:15;9405:4;9402:1;9395:15;9421:125;9486:9;;;9507:10;;;9504:36;;;9520:18;;:::i;:::-;9421:125;;;;:::o;9652:1267::-;9802:4;9844:3;9833:9;9829:19;9821:27;;9881:6;9875:13;9864:9;9857:32;9945:4;9937:6;9933:17;9927:24;9920:4;9909:9;9905:20;9898:54;10008:4;10000:6;9996:17;9990:24;9983:4;9972:9;9968:20;9961:54;10071:4;10063:6;10059:17;10053:24;10046:4;10035:9;10031:20;10024:54;10134:4;10126:6;10122:17;10116:24;10109:4;10098:9;10094:20;10087:54;10197:4;10189:6;10185:17;10179:24;10172:4;10161:9;10157:20;10150:54;10260:4;10252:6;10248:17;10242:24;10235:4;10224:9;10220:20;10213:54;10323:4;10315:6;10311:17;10305:24;10298:4;10287:9;10283:20;10276:54;10388:6;10380;10376:19;10370:26;10361:6;10350:9;10346:22;10339:58;10455:6;10447;10443:19;10437:26;10428:6;10417:9;10413:22;10406:58;10522:6;10514;10510:19;10504:26;10495:6;10484:9;10480:22;10473:58;10578:6;10570;10566:19;10560:26;10595:72;10659:6;10648:9;10644:22;10630:12;-1:-1:-1;;;;;7399:31:88;7387:44;;7317:120;10595:72;;10716:6;10708;10704:19;10698:26;10733:57;10782:6;10771:9;10767:22;10751:14;9627:12;9616:24;9604:37;;9551:96;10733:57;;10839:6;10831;10827:19;10821:26;10856:57;10905:6;10894:9;10890:22;10874:14;9627:12;9616:24;9604:37;;9551:96;10856:57;;9652:1267;;;;:::o;11276:235::-;11364:6;11417:3;11405:9;11396:7;11392:23;11388:33;11385:53;;;11434:1;11431;11424:12;11385:53;11457:48;11497:7;11486:9;11457:48;:::i;12979:128::-;13046:9;;;13067:11;;;13064:37;;;13081:18;;:::i;14224:176::-;14323:12;14316:20;;;14294;;;14290:47;;14349:22;;14346:48;;;14374:18;;:::i;14405:168::-;14478:9;;;14509;;14526:15;;;14520:22;;14506:37;14496:71;;14547:18;;:::i;14578:217::-;14618:1;14644;14634:132;;14688:10;14683:3;14679:20;14676:1;14669:31;14723:4;14720:1;14713:15;14751:4;14748:1;14741:15;14634:132;-1:-1:-1;14780:9:88;;14578:217::o"},"methodIdentifiers":{"MAX_INT()":"098d3228","access()":"71907f17","currency()":"e5a6b10f","deposit(address,uint256)":"47e7ef24","expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))":"6af6f1ef","getPolicyHash(uint256)":"792da09e","initializeAndEmitPolicy(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint256,uint256,uint256,uint40,uint40)":"68d9523c","isActive(uint256)":"82afd23b","newPolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)":"6769a76f","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)":"3ed7c1ae","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)":"ffa600e3","treasury()":"61d027b3","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"currency_\",\"type\":\"address\"},{\"internalType\":\"contract IAccessManager\",\"name\":\"access_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"NewPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldPolicyId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newPolicyId\",\"type\":\"uint256\"}],\"name\":\"PolicyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"PolicyResolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_INT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"access\",\"outputs\":[{\"internalType\":\"contract IAccessManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"getPolicyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"rmParams\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"}],\"name\":\"initializeAndEmitPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"policyId\",\"type\":\"uint256\"}],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy_\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"customerWon\",\"type\":\"bool\"}],\"name\":\"resolvePolicyFullPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEToken\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewPolicy(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Event emitted every time a new policy is added to the pool. Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"policy\":\"The {Policy-PolicyData} struct with all the immutable fields of the policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"PolicyReplaced(address,uint256,uint256)\":{\"details\":\"Event emitted every time a new policy replaces an old Policy Contains all the data about the policy that is later required for doing operations with the policy like resolution or expiration.\",\"params\":{\"newPolicyId\":\"The id of the new policy.\",\"oldPolicyId\":\"The id of the replaced policy.\",\"riskModule\":\"The risk module that created the policy\"}},\"PolicyResolved(address,uint256,uint256)\":{\"details\":\"Event emitted every time a policy is removed from the pool. If the policy expired, the `payout` is 0, otherwise is the amount transferred to the policyholder.\",\"params\":{\"payout\":\"The payout that has been paid to the policy holder. 0 when the policy expired.\",\"policyId\":\"The unique id of the policy\",\"riskModule\":\"The risk module where that created the policy initially.\"}}},\"kind\":\"dev\",\"methods\":{\"access()\":{\"details\":\"Reference to the {AccessManager} contract, this contract manages the access controls.\",\"returns\":{\"_0\":\"The address of the AccessManager contract\"}},\"currency()\":{\"details\":\"Reference to the main currency (ERC20) used in the protocol\",\"returns\":{\"_0\":\"The address of the currency (e.g. USDC) token used in the protocol\"}},\"expirePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40))\":{\"details\":\"Resolves a policy with a payout 0, unlocking the solvency. Can be called by anyone, but only after `Policy.expiration`. Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not resolved before - Policy expired: `Policy.expiration` <= block.timestamp Events: - {PolicyPool-PolicyResolved}: with payout == 0\",\"params\":{\"policy\":\"A policy previously created with `newPolicy`\"}},\"getPolicyHash(uint256)\":{\"details\":\"Returns the stored hash of the policy. It's `bytes32(0)` is the policy isn't active.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Returns the hash of a given policy id\"}},\"initializeAndEmitPolicy(address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint256,uint256,uint256,uint40,uint40)\":{\"details\":\"Simple passthrough method for testing Policy.initialize\"},\"isActive(uint256)\":{\"details\":\"Returns whether a policy is active, i.e., it's still in the PolicyPool, not yet resolved or expired.      Be aware that a policy might be active but the `block.timestamp` might be after the expiration date, so it      can't be triggered with a payout.\",\"params\":{\"policyId\":\"The id of the policy queried\"},\"returns\":{\"_0\":\"Whether the policy is active or not\"}},\"resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)\":{\"details\":\"Resolves a policy with a payout. Must be called from an active RiskModule Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if payout > 0). - `payout`: must be less than equal to `policy.payout`. Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"payout\":\"The amount to paid to the policyholder\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"resolvePolicyFullPayout((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),bool)\":{\"details\":\"Resolves a policy with a payout that can be either 0 or the maximum payout of the policy Requirements: - `policy`: must be a Policy previously created with `newPolicy` (checked with `policy.hash()`) and not   resolved before and not expired (if customerWon). Events: - {PolicyPool-PolicyResolved}: with the payout - {ERC20-Transfer}: to the policyholder with the payout\",\"params\":{\"customerWon\":\"Indicated if the payout is zero or the maximum payout\",\"policy\":\"A policy previously created with `newPolicy`\"}},\"treasury()\":{\"details\":\"Address of the treasury, that receives protocol fees.\",\"returns\":{\"_0\":\"The address of the treasury\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/PolicyPoolMock.sol\":\"PolicyPoolMock\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/mocks/ForwardProxy.sol\":{\"keccak256\":\"0x8c9e4d0436c3a0fa44d33f2502784a845b5a09f8bf088bd12050e1f2c7c87528\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://775c22411aac4e20cc3c9d8f1958b1d3959b6da0b8c99092d56e7a510f3c6353\",\"dweb:/ipfs/Qmb9S2WL4cz8gZo8wy5x4ZRUgDv4QJLERC9zC2FwzYMZ1F\"]},\"contracts/mocks/PolicyPoolMock.sol\":{\"keccak256\":\"0xd7504472dd8c328bc97bf13aed31d2a0a9649d51bf01d5b4ad251d2256717348\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://968064c3d3f05ca1af5f2fb5863db259c717d64d96af593f4f6e91e27ddcccca\",\"dweb:/ipfs/QmckAkNhW4tkmERBNN1JBX2WoRKLaidBJSWgY6Kkq5bwEV\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":25151,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"_currency","offset":0,"slot":"0","type":"t_contract(IERC20Metadata)6066"},{"astId":25154,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"_access","offset":0,"slot":"1","type":"t_contract(IAccessManager)23370"},{"astId":25159,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"policies","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_struct(PolicyData)14966_storage)"},{"astId":25163,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"policyHashes","offset":0,"slot":"3","type":"t_mapping(t_uint256,t_bytes32)"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IAccessManager)23370":{"encoding":"inplace","label":"contract IAccessManager","numberOfBytes":"20"},"t_contract(IERC20Metadata)6066":{"encoding":"inplace","label":"contract IERC20Metadata","numberOfBytes":"20"},"t_contract(IRiskModule)23983":{"encoding":"inplace","label":"contract IRiskModule","numberOfBytes":"20"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(PolicyData)14966_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Policy.PolicyData)","numberOfBytes":"32","value":"t_struct(PolicyData)14966_storage"},"t_struct(PolicyData)14966_storage":{"encoding":"inplace","label":"struct Policy.PolicyData","members":[{"astId":14938,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":14940,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"payout","offset":0,"slot":"1","type":"t_uint256"},{"astId":14942,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"premium","offset":0,"slot":"2","type":"t_uint256"},{"astId":14944,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"jrScr","offset":0,"slot":"3","type":"t_uint256"},{"astId":14946,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"srScr","offset":0,"slot":"4","type":"t_uint256"},{"astId":14948,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"lossProb","offset":0,"slot":"5","type":"t_uint256"},{"astId":14950,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"purePremium","offset":0,"slot":"6","type":"t_uint256"},{"astId":14952,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"ensuroCommission","offset":0,"slot":"7","type":"t_uint256"},{"astId":14954,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"partnerCommission","offset":0,"slot":"8","type":"t_uint256"},{"astId":14956,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"jrCoc","offset":0,"slot":"9","type":"t_uint256"},{"astId":14958,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"srCoc","offset":0,"slot":"10","type":"t_uint256"},{"astId":14961,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"riskModule","offset":0,"slot":"11","type":"t_contract(IRiskModule)23983"},{"astId":14963,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"start","offset":20,"slot":"11","type":"t_uint40"},{"astId":14965,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMock","label":"expiration","offset":25,"slot":"11","type":"t_uint40"}],"numberOfBytes":"384"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint40":{"encoding":"inplace","label":"uint40","numberOfBytes":"5"}}}},"PolicyPoolMockForward":{"abi":[{"inputs":[{"internalType":"address","name":"forwardTo","type":"address"},{"internalType":"contract IERC20Metadata","name":"currency_","type":"address"},{"internalType":"contract IAccessManager","name":"access_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"MAX_INT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"access","outputs":[{"internalType":"contract IAccessManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwardTo","type":"address"}],"name":"setForwardTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_24423":{"entryPoint":null,"id":24423,"parameterSlots":1,"returnSlots":0},"@_25600":{"entryPoint":null,"id":25600,"parameterSlots":3,"returnSlots":0},"abi_decode_tuple_t_addresst_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":129,"id":null,"parameterSlots":2,"returnSlots":3},"validator_revert_address":{"entryPoint":107,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:718:88","nodeType":"YulBlock","src":"0:718:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"59:86:88","nodeType":"YulBlock","src":"59:86:88","statements":[{"body":{"nativeSrc":"123:16:88","nodeType":"YulBlock","src":"123:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:88","nodeType":"YulLiteral","src":"132:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:88","nodeType":"YulLiteral","src":"135:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:88","nodeType":"YulIdentifier","src":"125:6:88"},"nativeSrc":"125:12:88","nodeType":"YulFunctionCall","src":"125:12:88"},"nativeSrc":"125:12:88","nodeType":"YulExpressionStatement","src":"125:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"82:5:88","nodeType":"YulIdentifier","src":"82:5:88"},{"arguments":[{"name":"value","nativeSrc":"93:5:88","nodeType":"YulIdentifier","src":"93:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"108:3:88","nodeType":"YulLiteral","src":"108:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"113:1:88","nodeType":"YulLiteral","src":"113:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"104:3:88","nodeType":"YulIdentifier","src":"104:3:88"},"nativeSrc":"104:11:88","nodeType":"YulFunctionCall","src":"104:11:88"},{"kind":"number","nativeSrc":"117:1:88","nodeType":"YulLiteral","src":"117:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:19:88","nodeType":"YulFunctionCall","src":"100:19:88"}],"functionName":{"name":"and","nativeSrc":"89:3:88","nodeType":"YulIdentifier","src":"89:3:88"},"nativeSrc":"89:31:88","nodeType":"YulFunctionCall","src":"89:31:88"}],"functionName":{"name":"eq","nativeSrc":"79:2:88","nodeType":"YulIdentifier","src":"79:2:88"},"nativeSrc":"79:42:88","nodeType":"YulFunctionCall","src":"79:42:88"}],"functionName":{"name":"iszero","nativeSrc":"72:6:88","nodeType":"YulIdentifier","src":"72:6:88"},"nativeSrc":"72:50:88","nodeType":"YulFunctionCall","src":"72:50:88"},"nativeSrc":"69:70:88","nodeType":"YulIf","src":"69:70:88"}]},"name":"validator_revert_address","nativeSrc":"14:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48:5:88","nodeType":"YulTypedName","src":"48:5:88","type":""}],"src":"14:131:88"},{"body":{"nativeSrc":"312:404:88","nodeType":"YulBlock","src":"312:404:88","statements":[{"body":{"nativeSrc":"358:16:88","nodeType":"YulBlock","src":"358:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"367:1:88","nodeType":"YulLiteral","src":"367:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"370:1:88","nodeType":"YulLiteral","src":"370:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"360:6:88","nodeType":"YulIdentifier","src":"360:6:88"},"nativeSrc":"360:12:88","nodeType":"YulFunctionCall","src":"360:12:88"},"nativeSrc":"360:12:88","nodeType":"YulExpressionStatement","src":"360:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"333:7:88","nodeType":"YulIdentifier","src":"333:7:88"},{"name":"headStart","nativeSrc":"342:9:88","nodeType":"YulIdentifier","src":"342:9:88"}],"functionName":{"name":"sub","nativeSrc":"329:3:88","nodeType":"YulIdentifier","src":"329:3:88"},"nativeSrc":"329:23:88","nodeType":"YulFunctionCall","src":"329:23:88"},{"kind":"number","nativeSrc":"354:2:88","nodeType":"YulLiteral","src":"354:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"325:3:88","nodeType":"YulIdentifier","src":"325:3:88"},"nativeSrc":"325:32:88","nodeType":"YulFunctionCall","src":"325:32:88"},"nativeSrc":"322:52:88","nodeType":"YulIf","src":"322:52:88"},{"nativeSrc":"383:29:88","nodeType":"YulVariableDeclaration","src":"383:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"402:9:88","nodeType":"YulIdentifier","src":"402:9:88"}],"functionName":{"name":"mload","nativeSrc":"396:5:88","nodeType":"YulIdentifier","src":"396:5:88"},"nativeSrc":"396:16:88","nodeType":"YulFunctionCall","src":"396:16:88"},"variables":[{"name":"value","nativeSrc":"387:5:88","nodeType":"YulTypedName","src":"387:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"446:5:88","nodeType":"YulIdentifier","src":"446:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"421:24:88","nodeType":"YulIdentifier","src":"421:24:88"},"nativeSrc":"421:31:88","nodeType":"YulFunctionCall","src":"421:31:88"},"nativeSrc":"421:31:88","nodeType":"YulExpressionStatement","src":"421:31:88"},{"nativeSrc":"461:15:88","nodeType":"YulAssignment","src":"461:15:88","value":{"name":"value","nativeSrc":"471:5:88","nodeType":"YulIdentifier","src":"471:5:88"},"variableNames":[{"name":"value0","nativeSrc":"461:6:88","nodeType":"YulIdentifier","src":"461:6:88"}]},{"nativeSrc":"485:40:88","nodeType":"YulVariableDeclaration","src":"485:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"510:9:88","nodeType":"YulIdentifier","src":"510:9:88"},{"kind":"number","nativeSrc":"521:2:88","nodeType":"YulLiteral","src":"521:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"506:3:88","nodeType":"YulIdentifier","src":"506:3:88"},"nativeSrc":"506:18:88","nodeType":"YulFunctionCall","src":"506:18:88"}],"functionName":{"name":"mload","nativeSrc":"500:5:88","nodeType":"YulIdentifier","src":"500:5:88"},"nativeSrc":"500:25:88","nodeType":"YulFunctionCall","src":"500:25:88"},"variables":[{"name":"value_1","nativeSrc":"489:7:88","nodeType":"YulTypedName","src":"489:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"559:7:88","nodeType":"YulIdentifier","src":"559:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"534:24:88","nodeType":"YulIdentifier","src":"534:24:88"},"nativeSrc":"534:33:88","nodeType":"YulFunctionCall","src":"534:33:88"},"nativeSrc":"534:33:88","nodeType":"YulExpressionStatement","src":"534:33:88"},{"nativeSrc":"576:17:88","nodeType":"YulAssignment","src":"576:17:88","value":{"name":"value_1","nativeSrc":"586:7:88","nodeType":"YulIdentifier","src":"586:7:88"},"variableNames":[{"name":"value1","nativeSrc":"576:6:88","nodeType":"YulIdentifier","src":"576:6:88"}]},{"nativeSrc":"602:40:88","nodeType":"YulVariableDeclaration","src":"602:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"627:9:88","nodeType":"YulIdentifier","src":"627:9:88"},{"kind":"number","nativeSrc":"638:2:88","nodeType":"YulLiteral","src":"638:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"623:3:88","nodeType":"YulIdentifier","src":"623:3:88"},"nativeSrc":"623:18:88","nodeType":"YulFunctionCall","src":"623:18:88"}],"functionName":{"name":"mload","nativeSrc":"617:5:88","nodeType":"YulIdentifier","src":"617:5:88"},"nativeSrc":"617:25:88","nodeType":"YulFunctionCall","src":"617:25:88"},"variables":[{"name":"value_2","nativeSrc":"606:7:88","nodeType":"YulTypedName","src":"606:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"676:7:88","nodeType":"YulIdentifier","src":"676:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"651:24:88","nodeType":"YulIdentifier","src":"651:24:88"},"nativeSrc":"651:33:88","nodeType":"YulFunctionCall","src":"651:33:88"},"nativeSrc":"651:33:88","nodeType":"YulExpressionStatement","src":"651:33:88"},{"nativeSrc":"693:17:88","nodeType":"YulAssignment","src":"693:17:88","value":{"name":"value_2","nativeSrc":"703:7:88","nodeType":"YulIdentifier","src":"703:7:88"},"variableNames":[{"name":"value2","nativeSrc":"693:6:88","nodeType":"YulIdentifier","src":"693:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"150:566:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"262:9:88","nodeType":"YulTypedName","src":"262:9:88","type":""},{"name":"dataEnd","nativeSrc":"273:7:88","nodeType":"YulTypedName","src":"273:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"285:6:88","nodeType":"YulTypedName","src":"285:6:88","type":""},{"name":"value1","nativeSrc":"293:6:88","nodeType":"YulTypedName","src":"293:6:88","type":""},{"name":"value2","nativeSrc":"301:6:88","nodeType":"YulTypedName","src":"301:6:88","type":""}],"src":"150:566:88"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_contract$_IERC20Metadata_$6066t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600e575f5ffd5b50604051610277380380610277833981016040819052602b916081565b5f80546001600160a01b039485166001600160a01b03199182161790915560018054938516938216939093179092556002805491909316911617905560c4565b6001600160a01b0381168114607e575f5ffd5b50565b5f5f5f606084860312156092575f5ffd5b8351609b81606b565b602085015190935060aa81606b565b604085015190925060b981606b565b809150509250925092565b6101a6806100d15f395ff3fe608060405260043610610042575f3560e01c8063098d32281461005957806371907f1714610080578063d4b27001146100b1578063e5a6b10f146100ec57610051565b366100515761004f610109565b005b61004f610109565b348015610064575f5ffd5b5061006d5f1981565b6040519081526020015b60405180910390f35b34801561008b575f5ffd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610077565b3480156100bc575f5ffd5b5061004f6100cb366004610143565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b3480156100f7575f5ffd5b506001546001600160a01b0316610099565b61012261011d5f546001600160a01b031690565b610124565b565b365f5f375f5f365f5f855af13d5f5f3e80801561013f573d5ff35b3d5ffd5b5f60208284031215610153575f5ffd5b81356001600160a01b0381168114610169575f5ffd5b939250505056fea26469706673582212200c7513b807fc9110b8816b0f6d7f1489bbe86e86fced945904183e4676b3060864736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x277 CODESIZE SUB DUP1 PUSH2 0x277 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x81 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP4 DUP6 AND SWAP4 DUP3 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH1 0xC4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x7E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH1 0x92 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x9B DUP2 PUSH1 0x6B JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH1 0xAA DUP2 PUSH1 0x6B JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0xB9 DUP2 PUSH1 0x6B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1A6 DUP1 PUSH2 0xD1 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98D3228 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x71907F17 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD4B27001 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0xEC JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0x109 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x6D PUSH0 NOT DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x143 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99 JUMP JUMPDEST PUSH2 0x122 PUSH2 0x11D PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x124 JUMP JUMPDEST JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 PUSH0 DUP6 GAS CALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x13F JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x153 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x169 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC PUSH22 0x13B807FC9110B8816B0F6D7F1489BBE86E86FCED9459 DIV XOR RETURNDATACOPY CHAINID PUSH23 0xB3060864736F6C634300081C0033000000000000000000 ","sourceMap":"4357:567:85:-:0;;;4586:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;655:10:80;:22;;-1:-1:-1;;;;;655:22:80;;;-1:-1:-1;;;;;;655:22:80;;;;;;;;4697:21:85;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4724:7:::1;:17:::0;;;;;::::1;::::0;::::1;;::::0;;4357:567;;14:131:88;-1:-1:-1;;;;;89:31:88;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:566::-;285:6;293;301;354:2;342:9;333:7;329:23;325:32;322:52;;;370:1;367;360:12;322:52;402:9;396:16;421:31;446:5;421:31;:::i;:::-;521:2;506:18;;500:25;471:5;;-1:-1:-1;534:33:88;500:25;534:33;:::i;:::-;638:2;623:18;;617:25;586:7;;-1:-1:-1;651:33:88;617:25;651:33;:::i;:::-;703:7;693:17;;;150:566;;;;;:::o;:::-;4357:567:85;;;;;;"},"deployedBytecode":{"functionDebugData":{"@MAX_INT_25571":{"entryPoint":null,"id":25571,"parameterSlots":0,"returnSlots":0},"@_4725":{"entryPoint":null,"id":4725,"parameterSlots":0,"returnSlots":0},"@_4733":{"entryPoint":null,"id":4733,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_4738":{"entryPoint":null,"id":4738,"parameterSlots":0,"returnSlots":0},"@_delegate_24432":{"entryPoint":292,"id":24432,"parameterSlots":1,"returnSlots":0},"@_fallback_4717":{"entryPoint":265,"id":4717,"parameterSlots":0,"returnSlots":0},"@_implementation_24442":{"entryPoint":null,"id":24442,"parameterSlots":0,"returnSlots":1},"@access_25618":{"entryPoint":null,"id":25618,"parameterSlots":0,"returnSlots":1},"@currency_25609":{"entryPoint":null,"id":25609,"parameterSlots":0,"returnSlots":1},"@setForwardTo_24452":{"entryPoint":null,"id":24452,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":323,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:947:88","nodeType":"YulBlock","src":"0:947:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"115:76:88","nodeType":"YulBlock","src":"115:76:88","statements":[{"nativeSrc":"125:26:88","nodeType":"YulAssignment","src":"125:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:88","nodeType":"YulIdentifier","src":"137:9:88"},{"kind":"number","nativeSrc":"148:2:88","nodeType":"YulLiteral","src":"148:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:88","nodeType":"YulIdentifier","src":"133:3:88"},"nativeSrc":"133:18:88","nodeType":"YulFunctionCall","src":"133:18:88"},"variableNames":[{"name":"tail","nativeSrc":"125:4:88","nodeType":"YulIdentifier","src":"125:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:88","nodeType":"YulIdentifier","src":"167:9:88"},{"name":"value0","nativeSrc":"178:6:88","nodeType":"YulIdentifier","src":"178:6:88"}],"functionName":{"name":"mstore","nativeSrc":"160:6:88","nodeType":"YulIdentifier","src":"160:6:88"},"nativeSrc":"160:25:88","nodeType":"YulFunctionCall","src":"160:25:88"},"nativeSrc":"160:25:88","nodeType":"YulExpressionStatement","src":"160:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:88","nodeType":"YulTypedName","src":"84:9:88","type":""},{"name":"value0","nativeSrc":"95:6:88","nodeType":"YulTypedName","src":"95:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:88","nodeType":"YulTypedName","src":"106:4:88","type":""}],"src":"14:177:88"},{"body":{"nativeSrc":"321:102:88","nodeType":"YulBlock","src":"321:102:88","statements":[{"nativeSrc":"331:26:88","nodeType":"YulAssignment","src":"331:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"343:9:88","nodeType":"YulIdentifier","src":"343:9:88"},{"kind":"number","nativeSrc":"354:2:88","nodeType":"YulLiteral","src":"354:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"339:3:88","nodeType":"YulIdentifier","src":"339:3:88"},"nativeSrc":"339:18:88","nodeType":"YulFunctionCall","src":"339:18:88"},"variableNames":[{"name":"tail","nativeSrc":"331:4:88","nodeType":"YulIdentifier","src":"331:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"373:9:88","nodeType":"YulIdentifier","src":"373:9:88"},{"arguments":[{"name":"value0","nativeSrc":"388:6:88","nodeType":"YulIdentifier","src":"388:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"404:3:88","nodeType":"YulLiteral","src":"404:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"409:1:88","nodeType":"YulLiteral","src":"409:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"400:3:88","nodeType":"YulIdentifier","src":"400:3:88"},"nativeSrc":"400:11:88","nodeType":"YulFunctionCall","src":"400:11:88"},{"kind":"number","nativeSrc":"413:1:88","nodeType":"YulLiteral","src":"413:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"396:3:88","nodeType":"YulIdentifier","src":"396:3:88"},"nativeSrc":"396:19:88","nodeType":"YulFunctionCall","src":"396:19:88"}],"functionName":{"name":"and","nativeSrc":"384:3:88","nodeType":"YulIdentifier","src":"384:3:88"},"nativeSrc":"384:32:88","nodeType":"YulFunctionCall","src":"384:32:88"}],"functionName":{"name":"mstore","nativeSrc":"366:6:88","nodeType":"YulIdentifier","src":"366:6:88"},"nativeSrc":"366:51:88","nodeType":"YulFunctionCall","src":"366:51:88"},"nativeSrc":"366:51:88","nodeType":"YulExpressionStatement","src":"366:51:88"}]},"name":"abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed","nativeSrc":"196:227:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"290:9:88","nodeType":"YulTypedName","src":"290:9:88","type":""},{"name":"value0","nativeSrc":"301:6:88","nodeType":"YulTypedName","src":"301:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"312:4:88","nodeType":"YulTypedName","src":"312:4:88","type":""}],"src":"196:227:88"},{"body":{"nativeSrc":"498:216:88","nodeType":"YulBlock","src":"498:216:88","statements":[{"body":{"nativeSrc":"544:16:88","nodeType":"YulBlock","src":"544:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"553:1:88","nodeType":"YulLiteral","src":"553:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"556:1:88","nodeType":"YulLiteral","src":"556:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"546:6:88","nodeType":"YulIdentifier","src":"546:6:88"},"nativeSrc":"546:12:88","nodeType":"YulFunctionCall","src":"546:12:88"},"nativeSrc":"546:12:88","nodeType":"YulExpressionStatement","src":"546:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"519:7:88","nodeType":"YulIdentifier","src":"519:7:88"},{"name":"headStart","nativeSrc":"528:9:88","nodeType":"YulIdentifier","src":"528:9:88"}],"functionName":{"name":"sub","nativeSrc":"515:3:88","nodeType":"YulIdentifier","src":"515:3:88"},"nativeSrc":"515:23:88","nodeType":"YulFunctionCall","src":"515:23:88"},{"kind":"number","nativeSrc":"540:2:88","nodeType":"YulLiteral","src":"540:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"511:3:88","nodeType":"YulIdentifier","src":"511:3:88"},"nativeSrc":"511:32:88","nodeType":"YulFunctionCall","src":"511:32:88"},"nativeSrc":"508:52:88","nodeType":"YulIf","src":"508:52:88"},{"nativeSrc":"569:36:88","nodeType":"YulVariableDeclaration","src":"569:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"595:9:88","nodeType":"YulIdentifier","src":"595:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"582:12:88","nodeType":"YulIdentifier","src":"582:12:88"},"nativeSrc":"582:23:88","nodeType":"YulFunctionCall","src":"582:23:88"},"variables":[{"name":"value","nativeSrc":"573:5:88","nodeType":"YulTypedName","src":"573:5:88","type":""}]},{"body":{"nativeSrc":"668:16:88","nodeType":"YulBlock","src":"668:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:88","nodeType":"YulLiteral","src":"677:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:88","nodeType":"YulLiteral","src":"680:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:88","nodeType":"YulIdentifier","src":"670:6:88"},"nativeSrc":"670:12:88","nodeType":"YulFunctionCall","src":"670:12:88"},"nativeSrc":"670:12:88","nodeType":"YulExpressionStatement","src":"670:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"627:5:88","nodeType":"YulIdentifier","src":"627:5:88"},{"arguments":[{"name":"value","nativeSrc":"638:5:88","nodeType":"YulIdentifier","src":"638:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"653:3:88","nodeType":"YulLiteral","src":"653:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"658:1:88","nodeType":"YulLiteral","src":"658:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"649:3:88","nodeType":"YulIdentifier","src":"649:3:88"},"nativeSrc":"649:11:88","nodeType":"YulFunctionCall","src":"649:11:88"},{"kind":"number","nativeSrc":"662:1:88","nodeType":"YulLiteral","src":"662:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"645:3:88","nodeType":"YulIdentifier","src":"645:3:88"},"nativeSrc":"645:19:88","nodeType":"YulFunctionCall","src":"645:19:88"}],"functionName":{"name":"and","nativeSrc":"634:3:88","nodeType":"YulIdentifier","src":"634:3:88"},"nativeSrc":"634:31:88","nodeType":"YulFunctionCall","src":"634:31:88"}],"functionName":{"name":"eq","nativeSrc":"624:2:88","nodeType":"YulIdentifier","src":"624:2:88"},"nativeSrc":"624:42:88","nodeType":"YulFunctionCall","src":"624:42:88"}],"functionName":{"name":"iszero","nativeSrc":"617:6:88","nodeType":"YulIdentifier","src":"617:6:88"},"nativeSrc":"617:50:88","nodeType":"YulFunctionCall","src":"617:50:88"},"nativeSrc":"614:70:88","nodeType":"YulIf","src":"614:70:88"},{"nativeSrc":"693:15:88","nodeType":"YulAssignment","src":"693:15:88","value":{"name":"value","nativeSrc":"703:5:88","nodeType":"YulIdentifier","src":"703:5:88"},"variableNames":[{"name":"value0","nativeSrc":"693:6:88","nodeType":"YulIdentifier","src":"693:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"428:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:88","nodeType":"YulTypedName","src":"464:9:88","type":""},{"name":"dataEnd","nativeSrc":"475:7:88","nodeType":"YulTypedName","src":"475:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"487:6:88","nodeType":"YulTypedName","src":"487:6:88","type":""}],"src":"428:286:88"},{"body":{"nativeSrc":"843:102:88","nodeType":"YulBlock","src":"843:102:88","statements":[{"nativeSrc":"853:26:88","nodeType":"YulAssignment","src":"853:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"865:9:88","nodeType":"YulIdentifier","src":"865:9:88"},{"kind":"number","nativeSrc":"876:2:88","nodeType":"YulLiteral","src":"876:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"861:3:88","nodeType":"YulIdentifier","src":"861:3:88"},"nativeSrc":"861:18:88","nodeType":"YulFunctionCall","src":"861:18:88"},"variableNames":[{"name":"tail","nativeSrc":"853:4:88","nodeType":"YulIdentifier","src":"853:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"895:9:88","nodeType":"YulIdentifier","src":"895:9:88"},{"arguments":[{"name":"value0","nativeSrc":"910:6:88","nodeType":"YulIdentifier","src":"910:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"926:3:88","nodeType":"YulLiteral","src":"926:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"931:1:88","nodeType":"YulLiteral","src":"931:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"922:3:88","nodeType":"YulIdentifier","src":"922:3:88"},"nativeSrc":"922:11:88","nodeType":"YulFunctionCall","src":"922:11:88"},{"kind":"number","nativeSrc":"935:1:88","nodeType":"YulLiteral","src":"935:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"918:3:88","nodeType":"YulIdentifier","src":"918:3:88"},"nativeSrc":"918:19:88","nodeType":"YulFunctionCall","src":"918:19:88"}],"functionName":{"name":"and","nativeSrc":"906:3:88","nodeType":"YulIdentifier","src":"906:3:88"},"nativeSrc":"906:32:88","nodeType":"YulFunctionCall","src":"906:32:88"}],"functionName":{"name":"mstore","nativeSrc":"888:6:88","nodeType":"YulIdentifier","src":"888:6:88"},"nativeSrc":"888:51:88","nodeType":"YulFunctionCall","src":"888:51:88"},"nativeSrc":"888:51:88","nodeType":"YulExpressionStatement","src":"888:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"719:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"812:9:88","nodeType":"YulTypedName","src":"812:9:88","type":""},{"name":"value0","nativeSrc":"823:6:88","nodeType":"YulTypedName","src":"823:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"834:4:88","nodeType":"YulTypedName","src":"834:4:88","type":""}],"src":"719:226:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IAccessManager_$23370__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610042575f3560e01c8063098d32281461005957806371907f1714610080578063d4b27001146100b1578063e5a6b10f146100ec57610051565b366100515761004f610109565b005b61004f610109565b348015610064575f5ffd5b5061006d5f1981565b6040519081526020015b60405180910390f35b34801561008b575f5ffd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610077565b3480156100bc575f5ffd5b5061004f6100cb366004610143565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b3480156100f7575f5ffd5b506001546001600160a01b0316610099565b61012261011d5f546001600160a01b031690565b610124565b565b365f5f375f5f365f5f855af13d5f5f3e80801561013f573d5ff35b3d5ffd5b5f60208284031215610153575f5ffd5b81356001600160a01b0381168114610169575f5ffd5b939250505056fea26469706673582212200c7513b807fc9110b8816b0f6d7f1489bbe86e86fced945904183e4676b3060864736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x98D3228 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x71907F17 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0xD4B27001 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0xEC JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0x109 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x6D PUSH0 NOT DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x143 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99 JUMP JUMPDEST PUSH2 0x122 PUSH2 0x11D PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x124 JUMP JUMPDEST JUMP JUMPDEST CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY PUSH0 PUSH0 CALLDATASIZE PUSH0 PUSH0 DUP6 GAS CALL RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x13F JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x153 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x169 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC PUSH22 0x13B807FC9110B8816B0F6D7F1489BBE86E86FCED9459 DIV XOR RETURNDATACOPY CHAINID PUSH23 0xB3060864736F6C634300081C0033000000000000000000 ","sourceMap":"4357:567:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:28;:9;:11::i;:::-;4357:567:85;;2675:11:28;:9;:11::i;4408:100:85:-;;;;;;;;;;;;-1:-1:-1;;4408:100:85;;;;;160:25:88;;;148:2;133:18;4408:100:85;;;;;;;;4840:82;;;;;;;;;;-1:-1:-1;4910:7:85;;-1:-1:-1;;;;;4910:7:85;4840:82;;;-1:-1:-1;;;;;384:32:88;;;366:51;;354:2;339:18;4840:82:85;196:227:88;2072:83:80;;;;;;;;;;-1:-1:-1;2072:83:80;;;;;:::i;:::-;2128:10;:22;;-1:-1:-1;;;;;;2128:22:80;-1:-1:-1;;;;;2128:22:80;;;;;;;;;;2072:83;4750:86:85;;;;;;;;;;-1:-1:-1;4822:9:85;;-1:-1:-1;;;;;4822:9:85;4750:86;;2322:110:28;2397:28;2407:17;2031:7:80;2053:10;-1:-1:-1;;;;;2053:10:80;;1964:104;2407:17:28;2397:9;:28::i;:::-;2322:110::o;872:919:80:-;1243:14;1240:1;1237;1224:34;1518:1;1515;1499:14;1496:1;1493;1477:14;1470:5;1465:55;1582:16;1579:1;1576;1561:38;1614:6;1669:52;;;;1756:16;1753:1;1746:27;1669:52;1696:16;1693:1;1686:27;428:286:88;487:6;540:2;528:9;519:7;515:23;511:32;508:52;;;556:1;553;546:12;508:52;582:23;;-1:-1:-1;;;;;634:31:88;;624:42;;614:70;;680:1;677;670:12;614:70;703:5;428:286;-1:-1:-1;;;428:286:88:o"},"methodIdentifiers":{"MAX_INT()":"098d3228","access()":"71907f17","currency()":"e5a6b10f","setForwardTo(address)":"d4b27001"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwardTo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"currency_\",\"type\":\"address\"},{\"internalType\":\"contract IAccessManager\",\"name\":\"access_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"MAX_INT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"access\",\"outputs\":[{\"internalType\":\"contract IAccessManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwardTo\",\"type\":\"address\"}],\"name\":\"setForwardTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"PolicyPool that forwards fallback calls to another contract. Used to simulate calls to EToken      and other contracts that have functions that can be called only from PolicyPool\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PolicyPoolMockForward\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/PolicyPoolMock.sol\":\"PolicyPoolMockForward\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/mocks/ForwardProxy.sol\":{\"keccak256\":\"0x8c9e4d0436c3a0fa44d33f2502784a845b5a09f8bf088bd12050e1f2c7c87528\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://775c22411aac4e20cc3c9d8f1958b1d3959b6da0b8c99092d56e7a510f3c6353\",\"dweb:/ipfs/Qmb9S2WL4cz8gZo8wy5x4ZRUgDv4QJLERC9zC2FwzYMZ1F\"]},\"contracts/mocks/PolicyPoolMock.sol\":{\"keccak256\":\"0xd7504472dd8c328bc97bf13aed31d2a0a9649d51bf01d5b4ad251d2256717348\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://968064c3d3f05ca1af5f2fb5863db259c717d64d96af593f4f6e91e27ddcccca\",\"dweb:/ipfs/QmckAkNhW4tkmERBNN1JBX2WoRKLaidBJSWgY6Kkq5bwEV\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":24413,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMockForward","label":"_forwardTo","offset":0,"slot":"0","type":"t_address"},{"astId":25574,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMockForward","label":"_currency","offset":0,"slot":"1","type":"t_contract(IERC20Metadata)6066"},{"astId":25577,"contract":"contracts/mocks/PolicyPoolMock.sol:PolicyPoolMockForward","label":"_access","offset":0,"slot":"2","type":"t_contract(IAccessManager)23370"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_contract(IAccessManager)23370":{"encoding":"inplace","label":"contract IAccessManager","numberOfBytes":"20"},"t_contract(IERC20Metadata)6066":{"encoding":"inplace","label":"contract IERC20Metadata","numberOfBytes":"20"}}}}},"contracts/mocks/RiskModuleMock.sol":{"RiskModuleMock":{"abi":[{"inputs":[{"internalType":"contract IPolicyPool","name":"policyPool_","type":"address"},{"internalType":"contract IPremiumsAccount","name":"premiumsAccount_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExposureLimitCannotBeLessThanActiveExposure","type":"error"},{"inputs":[],"name":"NoZeroPolicyPool","type":"error"},{"inputs":[],"name":"NoZeroWallet","type":"error"},{"inputs":[],"name":"OnlyPolicyPool","type":"error"},{"inputs":[],"name":"PremiumsAccountMustBePartOfThePool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePolicyPool","type":"error"},{"inputs":[],"name":"UpgradeCannotChangePremiumsAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ComponentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IAccessManager.GovernanceActions","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GovernanceAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"PRICER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REPLACER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESOLVER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeExposure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exposureLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"name":"getMinimumPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"uint256","name":"collRatio_","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee_","type":"uint256"},{"internalType":"uint256","name":"srRoc_","type":"uint256"},{"internalType":"uint256","name":"maxPayoutPerPolicy_","type":"uint256"},{"internalType":"uint256","name":"exposureLimit_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPayoutPerPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"policyHolder","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"newPolicyRaw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"params","outputs":[{"components":[{"internalType":"uint256","name":"moc","type":"uint256"},{"internalType":"uint256","name":"jrCollRatio","type":"uint256"},{"internalType":"uint256","name":"collRatio","type":"uint256"},{"internalType":"uint256","name":"ensuroPpFee","type":"uint256"},{"internalType":"uint256","name":"ensuroCocFee","type":"uint256"},{"internalType":"uint256","name":"jrRoc","type":"uint256"},{"internalType":"uint256","name":"srRoc","type":"uint256"}],"internalType":"struct IRiskModule.Params","name":"ret","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"policyPool","outputs":[{"internalType":"contract IPolicyPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"premiumsAccount","outputs":[{"internalType":"contract IPremiumsAccount","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"releaseExposure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint40","name":"expiration","type":"uint40"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"oldPolicy","type":"tuple"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"newPolicy_","type":"tuple"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"uint96","name":"internalId","type":"uint96"}],"name":"replacePolicyRaw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"jrScr","type":"uint256"},{"internalType":"uint256","name":"srScr","type":"uint256"},{"internalType":"uint256","name":"lossProb","type":"uint256"},{"internalType":"uint256","name":"purePremium","type":"uint256"},{"internalType":"uint256","name":"ensuroCommission","type":"uint256"},{"internalType":"uint256","name":"partnerCommission","type":"uint256"},{"internalType":"uint256","name":"jrCoc","type":"uint256"},{"internalType":"uint256","name":"srCoc","type":"uint256"},{"internalType":"contract IRiskModule","name":"riskModule","type":"address"},{"internalType":"uint40","name":"start","type":"uint40"},{"internalType":"uint40","name":"expiration","type":"uint40"}],"internalType":"struct Policy.PolicyData","name":"policy","type":"tuple"},{"internalType":"uint256","name":"payout","type":"uint256"}],"name":"resolvePolicyRaw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IRiskModule.Parameter","name":"param","type":"uint8"},{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setParam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17863":{"entryPoint":null,"id":17863,"parameterSlots":1,"returnSlots":0},"@_20268":{"entryPoint":null,"id":20268,"parameterSlots":2,"returnSlots":0},"@_25664":{"entryPoint":null,"id":25664,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_925":{"entryPoint":293,"id":925,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":504,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_IPolicyPool":{"entryPoint":481,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1510:88","nodeType":"YulBlock","src":"0:1510:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"72:86:88","nodeType":"YulBlock","src":"72:86:88","statements":[{"body":{"nativeSrc":"136:16:88","nodeType":"YulBlock","src":"136:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145:1:88","nodeType":"YulLiteral","src":"145:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"148:1:88","nodeType":"YulLiteral","src":"148:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"138:6:88","nodeType":"YulIdentifier","src":"138:6:88"},"nativeSrc":"138:12:88","nodeType":"YulFunctionCall","src":"138:12:88"},"nativeSrc":"138:12:88","nodeType":"YulExpressionStatement","src":"138:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95:5:88","nodeType":"YulIdentifier","src":"95:5:88"},{"arguments":[{"name":"value","nativeSrc":"106:5:88","nodeType":"YulIdentifier","src":"106:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"121:3:88","nodeType":"YulLiteral","src":"121:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"126:1:88","nodeType":"YulLiteral","src":"126:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"117:3:88","nodeType":"YulIdentifier","src":"117:3:88"},"nativeSrc":"117:11:88","nodeType":"YulFunctionCall","src":"117:11:88"},{"kind":"number","nativeSrc":"130:1:88","nodeType":"YulLiteral","src":"130:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"113:3:88","nodeType":"YulIdentifier","src":"113:3:88"},"nativeSrc":"113:19:88","nodeType":"YulFunctionCall","src":"113:19:88"}],"functionName":{"name":"and","nativeSrc":"102:3:88","nodeType":"YulIdentifier","src":"102:3:88"},"nativeSrc":"102:31:88","nodeType":"YulFunctionCall","src":"102:31:88"}],"functionName":{"name":"eq","nativeSrc":"92:2:88","nodeType":"YulIdentifier","src":"92:2:88"},"nativeSrc":"92:42:88","nodeType":"YulFunctionCall","src":"92:42:88"}],"functionName":{"name":"iszero","nativeSrc":"85:6:88","nodeType":"YulIdentifier","src":"85:6:88"},"nativeSrc":"85:50:88","nodeType":"YulFunctionCall","src":"85:50:88"},"nativeSrc":"82:70:88","nodeType":"YulIf","src":"82:70:88"}]},"name":"validator_revert_contract_IPolicyPool","nativeSrc":"14:144:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61:5:88","nodeType":"YulTypedName","src":"61:5:88","type":""}],"src":"14:144:88"},{"body":{"nativeSrc":"308:313:88","nodeType":"YulBlock","src":"308:313:88","statements":[{"body":{"nativeSrc":"354:16:88","nodeType":"YulBlock","src":"354:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"363:1:88","nodeType":"YulLiteral","src":"363:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"366:1:88","nodeType":"YulLiteral","src":"366:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"356:6:88","nodeType":"YulIdentifier","src":"356:6:88"},"nativeSrc":"356:12:88","nodeType":"YulFunctionCall","src":"356:12:88"},"nativeSrc":"356:12:88","nodeType":"YulExpressionStatement","src":"356:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"329:7:88","nodeType":"YulIdentifier","src":"329:7:88"},{"name":"headStart","nativeSrc":"338:9:88","nodeType":"YulIdentifier","src":"338:9:88"}],"functionName":{"name":"sub","nativeSrc":"325:3:88","nodeType":"YulIdentifier","src":"325:3:88"},"nativeSrc":"325:23:88","nodeType":"YulFunctionCall","src":"325:23:88"},{"kind":"number","nativeSrc":"350:2:88","nodeType":"YulLiteral","src":"350:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"321:3:88","nodeType":"YulIdentifier","src":"321:3:88"},"nativeSrc":"321:32:88","nodeType":"YulFunctionCall","src":"321:32:88"},"nativeSrc":"318:52:88","nodeType":"YulIf","src":"318:52:88"},{"nativeSrc":"379:29:88","nodeType":"YulVariableDeclaration","src":"379:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"398:9:88","nodeType":"YulIdentifier","src":"398:9:88"}],"functionName":{"name":"mload","nativeSrc":"392:5:88","nodeType":"YulIdentifier","src":"392:5:88"},"nativeSrc":"392:16:88","nodeType":"YulFunctionCall","src":"392:16:88"},"variables":[{"name":"value","nativeSrc":"383:5:88","nodeType":"YulTypedName","src":"383:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"455:5:88","nodeType":"YulIdentifier","src":"455:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"417:37:88","nodeType":"YulIdentifier","src":"417:37:88"},"nativeSrc":"417:44:88","nodeType":"YulFunctionCall","src":"417:44:88"},"nativeSrc":"417:44:88","nodeType":"YulExpressionStatement","src":"417:44:88"},{"nativeSrc":"470:15:88","nodeType":"YulAssignment","src":"470:15:88","value":{"name":"value","nativeSrc":"480:5:88","nodeType":"YulIdentifier","src":"480:5:88"},"variableNames":[{"name":"value0","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"}]},{"nativeSrc":"494:40:88","nodeType":"YulVariableDeclaration","src":"494:40:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"519:9:88","nodeType":"YulIdentifier","src":"519:9:88"},{"kind":"number","nativeSrc":"530:2:88","nodeType":"YulLiteral","src":"530:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"515:3:88","nodeType":"YulIdentifier","src":"515:3:88"},"nativeSrc":"515:18:88","nodeType":"YulFunctionCall","src":"515:18:88"}],"functionName":{"name":"mload","nativeSrc":"509:5:88","nodeType":"YulIdentifier","src":"509:5:88"},"nativeSrc":"509:25:88","nodeType":"YulFunctionCall","src":"509:25:88"},"variables":[{"name":"value_1","nativeSrc":"498:7:88","nodeType":"YulTypedName","src":"498:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"581:7:88","nodeType":"YulIdentifier","src":"581:7:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"543:37:88","nodeType":"YulIdentifier","src":"543:37:88"},"nativeSrc":"543:46:88","nodeType":"YulFunctionCall","src":"543:46:88"},"nativeSrc":"543:46:88","nodeType":"YulExpressionStatement","src":"543:46:88"},{"nativeSrc":"598:17:88","nodeType":"YulAssignment","src":"598:17:88","value":{"name":"value_1","nativeSrc":"608:7:88","nodeType":"YulIdentifier","src":"608:7:88"},"variableNames":[{"name":"value1","nativeSrc":"598:6:88","nodeType":"YulIdentifier","src":"598:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"163:458:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"266:9:88","nodeType":"YulTypedName","src":"266:9:88","type":""},{"name":"dataEnd","nativeSrc":"277:7:88","nodeType":"YulTypedName","src":"277:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"289:6:88","nodeType":"YulTypedName","src":"289:6:88","type":""},{"name":"value1","nativeSrc":"297:6:88","nodeType":"YulTypedName","src":"297:6:88","type":""}],"src":"163:458:88"},{"body":{"nativeSrc":"728:183:88","nodeType":"YulBlock","src":"728:183:88","statements":[{"body":{"nativeSrc":"774:16:88","nodeType":"YulBlock","src":"774:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:88","nodeType":"YulLiteral","src":"783:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"786:1:88","nodeType":"YulLiteral","src":"786:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"776:6:88","nodeType":"YulIdentifier","src":"776:6:88"},"nativeSrc":"776:12:88","nodeType":"YulFunctionCall","src":"776:12:88"},"nativeSrc":"776:12:88","nodeType":"YulExpressionStatement","src":"776:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"749:7:88","nodeType":"YulIdentifier","src":"749:7:88"},{"name":"headStart","nativeSrc":"758:9:88","nodeType":"YulIdentifier","src":"758:9:88"}],"functionName":{"name":"sub","nativeSrc":"745:3:88","nodeType":"YulIdentifier","src":"745:3:88"},"nativeSrc":"745:23:88","nodeType":"YulFunctionCall","src":"745:23:88"},{"kind":"number","nativeSrc":"770:2:88","nodeType":"YulLiteral","src":"770:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"741:3:88","nodeType":"YulIdentifier","src":"741:3:88"},"nativeSrc":"741:32:88","nodeType":"YulFunctionCall","src":"741:32:88"},"nativeSrc":"738:52:88","nodeType":"YulIf","src":"738:52:88"},{"nativeSrc":"799:29:88","nodeType":"YulVariableDeclaration","src":"799:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:88","nodeType":"YulIdentifier","src":"818:9:88"}],"functionName":{"name":"mload","nativeSrc":"812:5:88","nodeType":"YulIdentifier","src":"812:5:88"},"nativeSrc":"812:16:88","nodeType":"YulFunctionCall","src":"812:16:88"},"variables":[{"name":"value","nativeSrc":"803:5:88","nodeType":"YulTypedName","src":"803:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"875:5:88","nodeType":"YulIdentifier","src":"875:5:88"}],"functionName":{"name":"validator_revert_contract_IPolicyPool","nativeSrc":"837:37:88","nodeType":"YulIdentifier","src":"837:37:88"},"nativeSrc":"837:44:88","nodeType":"YulFunctionCall","src":"837:44:88"},"nativeSrc":"837:44:88","nodeType":"YulExpressionStatement","src":"837:44:88"},{"nativeSrc":"890:15:88","nodeType":"YulAssignment","src":"890:15:88","value":{"name":"value","nativeSrc":"900:5:88","nodeType":"YulIdentifier","src":"900:5:88"},"variableNames":[{"name":"value0","nativeSrc":"890:6:88","nodeType":"YulIdentifier","src":"890:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"626:285:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"694:9:88","nodeType":"YulTypedName","src":"694:9:88","type":""},{"name":"dataEnd","nativeSrc":"705:7:88","nodeType":"YulTypedName","src":"705:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"717:6:88","nodeType":"YulTypedName","src":"717:6:88","type":""}],"src":"626:285:88"},{"body":{"nativeSrc":"1090:229:88","nodeType":"YulBlock","src":"1090:229:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1107:9:88","nodeType":"YulIdentifier","src":"1107:9:88"},{"kind":"number","nativeSrc":"1118:2:88","nodeType":"YulLiteral","src":"1118:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:88","nodeType":"YulIdentifier","src":"1100:6:88"},"nativeSrc":"1100:21:88","nodeType":"YulFunctionCall","src":"1100:21:88"},"nativeSrc":"1100:21:88","nodeType":"YulExpressionStatement","src":"1100:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1141:9:88","nodeType":"YulIdentifier","src":"1141:9:88"},{"kind":"number","nativeSrc":"1152:2:88","nodeType":"YulLiteral","src":"1152:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1137:3:88","nodeType":"YulIdentifier","src":"1137:3:88"},"nativeSrc":"1137:18:88","nodeType":"YulFunctionCall","src":"1137:18:88"},{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"1130:6:88","nodeType":"YulIdentifier","src":"1130:6:88"},"nativeSrc":"1130:30:88","nodeType":"YulFunctionCall","src":"1130:30:88"},"nativeSrc":"1130:30:88","nodeType":"YulExpressionStatement","src":"1130:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1180:9:88","nodeType":"YulIdentifier","src":"1180:9:88"},{"kind":"number","nativeSrc":"1191:2:88","nodeType":"YulLiteral","src":"1191:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1176:3:88","nodeType":"YulIdentifier","src":"1176:3:88"},"nativeSrc":"1176:18:88","nodeType":"YulFunctionCall","src":"1176:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1196:34:88","nodeType":"YulLiteral","src":"1196:34:88","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1169:6:88","nodeType":"YulIdentifier","src":"1169:6:88"},"nativeSrc":"1169:62:88","nodeType":"YulFunctionCall","src":"1169:62:88"},"nativeSrc":"1169:62:88","nodeType":"YulExpressionStatement","src":"1169:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1251:9:88","nodeType":"YulIdentifier","src":"1251:9:88"},{"kind":"number","nativeSrc":"1262:2:88","nodeType":"YulLiteral","src":"1262:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1247:3:88","nodeType":"YulIdentifier","src":"1247:3:88"},"nativeSrc":"1247:18:88","nodeType":"YulFunctionCall","src":"1247:18:88"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1267:9:88","nodeType":"YulLiteral","src":"1267:9:88","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1240:6:88","nodeType":"YulIdentifier","src":"1240:6:88"},"nativeSrc":"1240:37:88","nodeType":"YulFunctionCall","src":"1240:37:88"},"nativeSrc":"1240:37:88","nodeType":"YulExpressionStatement","src":"1240:37:88"},{"nativeSrc":"1286:27:88","nodeType":"YulAssignment","src":"1286:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1298:9:88","nodeType":"YulIdentifier","src":"1298:9:88"},{"kind":"number","nativeSrc":"1309:3:88","nodeType":"YulLiteral","src":"1309:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1294:3:88","nodeType":"YulIdentifier","src":"1294:3:88"},"nativeSrc":"1294:19:88","nodeType":"YulFunctionCall","src":"1294:19:88"},"variableNames":[{"name":"tail","nativeSrc":"1286:4:88","nodeType":"YulIdentifier","src":"1286:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"916:403:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulTypedName","src":"1067:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1081:4:88","nodeType":"YulTypedName","src":"1081:4:88","type":""}],"src":"916:403:88"},{"body":{"nativeSrc":"1421:87:88","nodeType":"YulBlock","src":"1421:87:88","statements":[{"nativeSrc":"1431:26:88","nodeType":"YulAssignment","src":"1431:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1443:9:88","nodeType":"YulIdentifier","src":"1443:9:88"},{"kind":"number","nativeSrc":"1454:2:88","nodeType":"YulLiteral","src":"1454:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1439:3:88","nodeType":"YulIdentifier","src":"1439:3:88"},"nativeSrc":"1439:18:88","nodeType":"YulFunctionCall","src":"1439:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1431:4:88","nodeType":"YulIdentifier","src":"1431:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1473:9:88","nodeType":"YulIdentifier","src":"1473:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1488:6:88","nodeType":"YulIdentifier","src":"1488:6:88"},{"kind":"number","nativeSrc":"1496:4:88","nodeType":"YulLiteral","src":"1496:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1484:3:88","nodeType":"YulIdentifier","src":"1484:3:88"},"nativeSrc":"1484:17:88","nodeType":"YulFunctionCall","src":"1484:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1466:6:88","nodeType":"YulIdentifier","src":"1466:6:88"},"nativeSrc":"1466:36:88","nodeType":"YulFunctionCall","src":"1466:36:88"},"nativeSrc":"1466:36:88","nodeType":"YulExpressionStatement","src":"1466:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1324:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1390:9:88","nodeType":"YulTypedName","src":"1390:9:88","type":""},{"name":"value0","nativeSrc":"1401:6:88","nodeType":"YulTypedName","src":"1401:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1412:4:88","nodeType":"YulTypedName","src":"1412:4:88","type":""}],"src":"1324:184:88"}]},"contents":"{\n    { }\n    function validator_revert_contract_IPolicyPool(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IPolicyPool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IPolicyPool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405230608052348015610013575f5ffd5b50604051614e8e380380614e8e833981016040819052610032916101f8565b8181816001600160a01b03811661005c57604051636b23cf0160e01b815260040160405180910390fd5b610064610125565b806001600160a01b031660a0816001600160a01b03168152505050816001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610230565b6001600160a01b0316146101105760405163fec343d560e01b815260040160405180910390fd5b6001600160a01b031660c05250610252915050565b5f54610100900460ff16156101905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146101df575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101f5575f5ffd5b50565b5f5f60408385031215610209575f5ffd5b8251610214816101e1565b6020840151909250610225816101e1565b809150509250929050565b5f60208284031215610240575f5ffd5b815161024b816101e1565b9392505050565b60805160a05160c051614b4061034e5f395f818161039701526129b701525f818161029901528181610700015281816107f2015281816109a201528181610c0b01528181610da601528181610e9601528181610f240152818161104e0152818161118601528181611671015281816116f201528181611896015281816119c601528181611a5d01528181611d4b01528181611de801528181611e9b0152818161206a01528181612124015281816125ce01528181612f4d01528181612fea015281816130900152818161323d015261359201525f8181610895015281816108de01528181610a9601528181610ad60152610b630152614b405ff3fe6080604052600436106101d0575f3560e01c80637a702b3c116100fd578063cb1719a111610092578063deaa59df11610062578063deaa59df14610594578063e5a6b10f146105b3578063f6c507d4146105c7578063fbb81279146105e6575f5ffd5b8063cb1719a1146104d9578063cf8cf491146104f8578063cfd4c60614610517578063cff0ab961461052b575f5ffd5b806386e7db4d116100cd57806386e7db4d146104495780638bac3a2414610468578063af0e7e0c14610487578063c1cca2b3146104ba575f5ffd5b80637a702b3c146103ee5780637ff8bf251461040d5780638456cb591461042157806385272a6e14610435575f5ffd5b8063521eb273116101735780636db5c8fd116101435780636db5c8fd1461034b5780636f0dbe6f1461036a57806373a952e81461038957806378fab260146103bb575f5ffd5b8063521eb273146102e457806352d1902d146103015780635c975abb146103155780636a448ef11461032c575f5ffd5b80633659cfe6116101ae5780633659cfe6146102565780633f4ba83a146102775780634d15eb031461028b5780634f1ef286146102d1575f5ffd5b806301ffc9a7146101d457806306fdde03146102085780630bc872d914610229575b5f5ffd5b3480156101df575f5ffd5b506101f36101ee366004613ce7565b610619565b60405190151581526020015b60405180910390f35b348015610213575f5ffd5b5061021c610644565b6040516101ff9190613d0e565b348015610234575f5ffd5b50610248610243366004613d89565b6106d4565b6040519081526020016101ff565b348015610261575f5ffd5b50610275610270366004613dff565b61088b565b005b348015610282575f5ffd5b50610275610971565b348015610296575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101ff565b6102756102df366004613ecf565b610a8c565b3480156102ef575f5ffd5b5060fe546001600160a01b03166102b9565b34801561030c575f5ffd5b50610248610b57565b348015610320575f5ffd5b5060975460ff166101f3565b348015610337575f5ffd5b50610275610346366004613f2f565b610c08565b348015610356575f5ffd5b5060fc54600160b01b900461ffff16610248565b348015610375575f5ffd5b50610275610384366004613f46565b610c6a565b348015610394575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102b9565b3480156103c6575f5ffd5b506102487f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b3480156103f9575f5ffd5b50610275610408366004613fd5565b610d83565b348015610418575f5ffd5b5060fd54610248565b34801561042c575f5ffd5b50610275610f01565b348015610440575f5ffd5b50610248611008565b348015610454575f5ffd5b50610248610463366004614000565b61102a565b348015610473575f5ffd5b50610248610482366004614070565b611138565b348015610492575f5ffd5b506102487f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d07455581565b3480156104c5575f5ffd5b506102756104d43660046140a2565b611155565b3480156104e4575f5ffd5b506102756104f3366004613fd5565b61165a565b348015610503575f5ffd5b5061024861051236600461419f565b6116d9565b348015610522575f5ffd5b50610248611776565b348015610536575f5ffd5b5061053f611794565b6040516101ff91905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b34801561059f575f5ffd5b506102756105ae366004613dff565b611873565b3480156105be575f5ffd5b506102b96119c3565b3480156105d2575f5ffd5b506102486105e13660046141f8565b611a44565b3480156105f1575f5ffd5b506102487fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b5f61062382611a98565b8061063e57506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb805461065390614247565b80601f016020809104026020016040519081016040528092919081815260200182805461067f90614247565b80156106ca5780601f106106a1576101008083540402835291602001916106ca565b820191905f5260205f20905b8154815290600101906020018083116106ad57829003601f168201915b5050505050905090565b5f6106dd611acd565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016107af9493929190614294565b5f6040518083038186803b1580156107c5575f5ffd5b505afa1580156107d7573d5f5f3e3d5ffd5b50506040516331a9108f60e11b81528a3560048201525f92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169150636352211e90602401602060405180830381865afa158015610840573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108649190614279565b905061087d8989898989868a610878611794565b611b15565b519998505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108dc5760405162461bcd60e51b81526004016108d3906142be565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109245f516020614aa45f395f51905f52546001600160a01b031690565b6001600160a01b03161461094a5760405162461bcd60e51b81526004016108d39061430a565b610953816120f3565b604080515f8082526020820190925261096e91839190612210565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ac45f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a209190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a54959493929190614356565b5f6040518083038186803b158015610a6a575f5ffd5b505afa158015610a7c573d5f5f3e3d5ffd5b50505050610a8861237a565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad45760405162461bcd60e51b81526004016108d3906142be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b1c5f516020614aa45f395f51905f52546001600160a01b031690565b6001600160a01b031614610b425760405162461bcd60e51b81526004016108d39061430a565b610b4b826120f3565b610a8882826001612210565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108d3565b505f516020614aa45f395f51905f5290565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610c515760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610c62919061439d565b909155505050565b5f54610100900460ff1615808015610c8857505f54600160ff909116105b80610ca15750303b158015610ca157505f5460ff166001145b610d045760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108d3565b5f805460ff191660011790558015610d25575f805461ff0019166101001790555b610d34888888888888886123cc565b8015610d79575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e249190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610e559493929190614294565b5f6040518083038186803b158015610e6b575f5ffd5b505afa158015610e7d573d5f5f3e3d5ffd5b5050604051631e9c0acf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250637a702b3c9150610ecf9086908690600401614471565b5f604051808303815f87803b158015610ee6575f5ffd5b505af1158015610ef8573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa29190614279565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610fd49493929190614294565b5f6040518083038186803b158015610fea575f5ffd5b505afa158015610ffc573d5f5f3e3d5ffd5b5050505061096e612409565b60fc545f90611025908290600160901b900463ffffffff16612446565b905090565b5f7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cc9190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016110fd9493929190614294565b5f6040518083038186803b158015611113575f5ffd5b505afa158015611125573d5f5f3e3d5ffd5b5050505061087d898989898989896124db565b5f61114d84848442611148611794565b612506565b949350505050565b5f516020614ac45f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112049190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611238959493929190614356565b5f6040518083038186803b15801561124e575f5ffd5b505afa158015611260573d5f5f3e3d5ffd5b505f925061126c915050565b84600981111561127e5761127e61448e565b036112a75761128c83612522565b60fc805461ffff191661ffff9290921691909117905561161d565b60018460098111156112bb576112bb61448e565b036112ed576112c983612522565b60fc805461ffff92909216620100000263ffff00001990921691909117905561161d565b60028460098111156113015761130161448e565b036113375761130f83612522565b60fc805461ffff929092166401000000000265ffff000000001990921691909117905561161d565b600384600981111561134b5761134b61448e565b036113825761135983612522565b60fc805461ffff92909216600160301b0267ffff0000000000001990921691909117905561161d565b60048460098111156113965761139661448e565b036113cf576113a483612522565b60fc805461ffff92909216600160401b0269ffff00000000000000001990921691909117905561161d565b60058460098111156113e3576113e361448e565b03611417576113f183612522565b60fc805461ffff92909216600160501b0261ffff60501b1990921691909117905561161d565b600684600981111561142b5761142b61448e565b0361145f5761143983612522565b60fc805461ffff92909216600160601b0261ffff60601b1990921691909117905561161d565b60078460098111156114735761147361448e565b036114ad5761148360028461253b565b60fc805463ffffffff92909216600160701b0263ffffffff60701b1990921691909117905561161d565b60088460098111156114c1576114c161448e565b036115d95760fd548310156115325760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016108d3565b61153a611008565b8311158061155957506115595f516020614ac45f395f51905f526125cb565b6115a55760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016108d3565b6115af5f8461253b565b60fc805463ffffffff92909216600160901b0263ffffffff60901b1990921691909117905561161d565b60098460098111156115ed576115ed61448e565b0361161d576115fb836126bd565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b6116548460098111156116325761163261448e565b61163d9060086144a2565b602d81111561164e5761164e61448e565b84612723565b50505050565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906116a89085908590600401614471565b5f604051808303815f87803b1580156116bf575f5ffd5b505af11580156116d1573d5f5f3e3d5ffd5b505050505050565b604051631f6be0d760e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae9061172d908890889088908890600401614575565b6020604051808303815f875af1158015611749573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176d91906145bd565b95945050505050565b60fc545f9061102590600290600160701b900463ffffffff16612446565b6117cd6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b900490911661012082015261102590612774565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119149190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016119459493929190614294565b5f6040518083038186803b15801561195b575f5ffd5b505afa15801561196d573d5f5f3e3d5ffd5b5050506001600160a01b038316905061199957604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610a8890601290612723565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a20573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110259190614279565b604051636769a76f60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f9061172d9088908890889088906004016145d4565b5f6001600160e01b031982166301ffc9a760e01b148061063e57506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff1615611b135760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108d3565b565b611b1d613c6f565b5f198703611b4657611b43888787611b3d6101a08e016101808f01614616565b86612506565b96505b878710611b955760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108d3565b64ffffffffff4216611baf6101c08b016101a08c01614616565b64ffffffffff1611611bfb5760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016108d3565b611c0d6101c08a016101a08b01614616565b64ffffffffff168564ffffffffff1610158015611c2e575088602001358810155b8015611c3e575088604001358710155b611cb05760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016108d3565b60fc54600160b01b900461ffff16610e10611cd36101a08c016101808d01614616565b611cdd908861462f565b611ce79190614660565b64ffffffffff1610611d3b5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108d3565b611d4960408a01358861439d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc99190614279565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015611e37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5b91906145bd565b1015611e795760405162461bcd60e51b81526004016108d390614689565b6001600160a01b038416331480611f995750611e9960408a01358861439d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f199190614279565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9691906145bd565b10155b611fb55760405162461bcd60e51b81526004016108d3906146d6565b611fbd611776565b881115611fdc5760405162461bcd60e51b81526004016108d390614725565b611ffe3083898b8a8a8f610180016020810190611ff99190614616565b612838565b905088602001358160200151612014919061439d565b60fd5f82825461202491906144a2565b909155506120329050611008565b60fd5411156120535760405162461bcd60e51b81526004016108d390614777565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae906120a5908c908590899089906004016147ba565b6020604051808303815f875af11580156120c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e591906145bd565b815298975050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ac45f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121a29190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016121d6959493929190614356565b5f6040518083038186803b1580156121ec575f5ffd5b505afa1580156121fe573d5f5f3e3d5ffd5b5050505061220b836129a8565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156122435761220b83612a66565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561229d575060408051601f3d908101601f1916820190925261229a918101906145bd565b60015b6123005760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108d3565b5f516020614aa45f395f51905f52811461236e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108d3565b5061220b838383612b01565b612382612b25565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff166123f25760405162461bcd60e51b81526004016108d3906147c9565b6123fa612b6e565b610ef887878787878787612ba4565b612411611acd565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123af3390565b5f826124506119c3565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124af9190614814565b6124b99190614834565b6124c490600a614930565b6124d49063ffffffff841661493e565b9392505050565b6124e3613c6f565b6124fa888888888888886124f5611794565b612dae565b98975050505050505050565b5f61251482878787876132c7565b60e001519695505050505050565b5f61063e612536655af3107a400084614955565b6126bd565b5f6124d4836125486119c3565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612583573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a79190614814565b6125b19190614834565b6125bc90600a614930565b6125c69084614955565b6134ba565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190614279565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b815260040161267e9493929190614294565b602060405180830381865afa158015612699573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190614968565b5f61ffff82111561271f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016108d3565b5090565b61272b61351e565b81602d81111561273d5761273d61448e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6127ad6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e001604052806127c4845f015161357b565b81526020016127d6846020015161357b565b81526020016127e8846040015161357b565b81526020016127fa846060015161357b565b815260200161280c846080015161357b565b815260200161281e8460a0015161357b565b81526020016128308460c0015161357b565b905292915050565b612840613c6f565b8486111561289b5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016108d3565b6128a3613c6f565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f6128ed89888888886132c7565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e0808501919091528101519091508810156129865760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016108d3565b60e0810151612995908961439d565b6101008301525098975050505050505050565b6129b181613590565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3f9190614279565b6001600160a01b031614610a885760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b612ad35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108d3565b5f516020614aa45f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612b0a83613641565b5f82511180612b165750805b1561220b576116548383613680565b60975460ff16611b135760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108d3565b5f54610100900460ff16612b945760405162461bcd60e51b81526004016108d3906147c9565b612b9c6136a5565b611b136136cb565b5f54610100900460ff16612bca5760405162461bcd60e51b81526004016108d3906147c9565b60fb612bd688826149d2565b50604080516101408101825261271081525f6020820152908101612bf988612522565b61ffff168152602001612c0b87612522565b61ffff1681525f602082018190526040820152606001612c2a86612522565b61ffff168152602001612c3e60028661253b565b63ffffffff168152602001612c535f8561253b565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055610ef861351e565b612db6613c6f565b4260018901612dcf57612dcc8a89898487612506565b98505b898910612e1e5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108d3565b8064ffffffffff168764ffffffffff1611612e7b5760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016108d3565b60fc54600160b01b900461ffff16610e10612e96838a61462f565b612ea09190614660565b64ffffffffff1610612ef45760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108d3565b6001600160a01b038516612f4a5760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016108d3565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fa7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fcb9190614279565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613039573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305d91906145bd565b101561307b5760405162461bcd60e51b81526004016108d390614689565b6001600160a01b03861633148061318e5750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310e9190614279565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015613167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061318b91906145bd565b10155b6131aa5760405162461bcd60e51b81526004016108d3906146d6565b6131b2611776565b8a11156131d15760405162461bcd60e51b81526004016108d390614725565b6131e030848b8d8c8c87612838565b9150816020015160fd5f8282546131f791906144a2565b909155506132059050611008565b60fd5411156132265760405162461bcd60e51b81526004016108d390614777565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906132789085908a908a908a906004016145d4565b6020604051808303815f875af1158015613294573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b891906145bd565b82525098975050505050505050565b6133076040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b855161331f906133189086906136f9565b86906136f9565b815260208601516133319086906136f9565b602082018190528151101561335b57805160208201805161335390839061439d565b905250613362565b5f60208201525b60408601516133729086906136f9565b60408201526020810151815161338891906144a2565b816040015111156133bd57602081015181516133a491906144a2565b816040018181516133b5919061439d565b9052506133c4565b5f60408201525b6134016301e133806133d6848661462f565b64ffffffffff168860a001516133ec919061493e565b6133f69190614955565b6020830151906136f9565b60608201526134436301e13380613418848661462f565b64ffffffffff168860c0015161342e919061493e565b6134389190614955565b6040830151906136f9565b6080820181905260608201515f9161345a916144a2565b90506134738760800151826136f990919063ffffffff16565b60608801518351613483916136f9565b61348d91906144a2565b60a08301819052825182916134a1916144a2565b6134ab91906144a2565b60e08301525095945050505050565b5f63ffffffff82111561271f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016108d3565b60fd54613529611008565b101561354857604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b031661357157604051634d1c286960e11b815260040160405180910390fd5b611b1360fc61372f565b5f61063e655af3107a400061ffff841661493e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361a9190614279565b6001600160a01b03161461096e5760405163d2b3d33f60e01b815260040160405180910390fd5b61364a81612a66565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606124d48383604051806060016040528060278152602001614ae460279139613b2c565b5f54610100900460ff16611b135760405162461bcd60e51b81526004016108d3906147c9565b5f54610100900460ff166136f15760405162461bcd60e51b81526004016108d3906147c9565b611b13613ba0565b5f81156706f05b59d3b200001983900484111517613715575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156137995760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016108d3565b805461271064010000000090910461ffff16118015906137c557508054640100000000900461ffff1615155b61381b5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016108d3565b805461ffff620100008204811664010000000090920416101561388c5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016108d3565b8054619c4061ffff909116118015906138ae5750805461138861ffff90911610155b6138fa5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016108d3565b8054612710600160301b90910461ffff1611156139655760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016108d3565b8054612710600160401b90910461ffff1611156139d25760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016108d3565b8054612710600160601b90910461ffff161115613a3f5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108d3565b8054612710600160501b90910461ffff161115613aac5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108d3565b8054600160901b900463ffffffff1615801590613ad657508054600160701b900463ffffffff1615155b61096e5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016108d3565b60605f5f856001600160a01b031685604051613b489190614a8d565b5f60405180830381855af49150503d805f8114613b80576040519150601f19603f3d011682016040523d82523d5f602084013e613b85565b606091505b5091509150613b9686838387613bd2565b9695505050505050565b5f54610100900460ff16613bc65760405162461bcd60e51b81526004016108d3906147c9565b6097805460ff19169055565b60608315613c405782515f03613c39576001600160a01b0385163b613c395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108d3565b508161114d565b61114d8383815115613c555781518083602001fd5b8060405162461bcd60e51b81526004016108d39190613d0e565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613cf7575f5ffd5b81356001600160e01b0319811681146124d4575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6101c08284031215613d54575f5ffd5b50919050565b803564ffffffffff81168114613d6e575f5ffd5b919050565b80356001600160601b0381168114613d6e575f5ffd5b5f5f5f5f5f5f6102608789031215613d9f575f5ffd5b613da98888613d43565b95506101c087013594506101e087013593506102008701359250613dd06102208801613d5a565b9150613ddf6102408801613d73565b90509295509295509295565b6001600160a01b038116811461096e575f5ffd5b5f60208284031215613e0f575f5ffd5b81356124d481613deb565b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff81118282101715613e5257613e52613e1a565b60405290565b5f5f67ffffffffffffffff841115613e7257613e72613e1a565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715613ea157613ea1613e1a565b604052838152905080828401851015613eb8575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215613ee0575f5ffd5b8235613eeb81613deb565b9150602083013567ffffffffffffffff811115613f06575f5ffd5b8301601f81018513613f16575f5ffd5b613f2585823560208401613e58565b9150509250929050565b5f60208284031215613f3f575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a031215613f5c575f5ffd5b873567ffffffffffffffff811115613f72575f5ffd5b8801601f81018a13613f82575f5ffd5b613f918a823560208401613e58565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135613fc581613deb565b8091505092959891949750929550565b5f5f6101e08385031215613fe7575f5ffd5b613ff18484613d43565b946101c0939093013593505050565b5f5f5f5f5f5f5f60e0888a031215614016575f5ffd5b87359650602088013595506040880135945061403460608901613d5a565b9350608088013561404481613deb565b925060a088013561405481613deb565b915061406260c08901613d73565b905092959891949750929550565b5f5f5f60608486031215614082575f5ffd5b833592506020840135915061409960408501613d5a565b90509250925092565b5f5f604083850312156140b3575f5ffd5b8235600a81106140c1575f5ffd5b946020939093013593505050565b8035613d6e81613deb565b5f6101c082840312156140eb575f5ffd5b6140f3613e2e565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e08084013590820152610100808401359082015261012080840135908201526101408084013590820152905061416d61016083016140cf565b6101608201526141806101808301613d5a565b6101808201526141936101a08301613d5a565b6101a082015292915050565b5f5f5f5f6103c085870312156141b3575f5ffd5b6141bd86866140da565b93506141cd866101c087016140da565b92506103808501356141de81613deb565b91506141ed6103a08601613d73565b905092959194509250565b5f5f5f5f610220858703121561420c575f5ffd5b61421686866140da565b93506101c085013561422781613deb565b92506101e085013561423881613deb565b91506141ed6102008601613d73565b600181811c9082168061425b57607f821691505b602082108103613d5457634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614289575f5ffd5b81516124d481613deb565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561063e5761063e614389565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e0808201359083015261010080820135908301526101208082013590830152610140808201359083015261442861016082016140cf565b6001600160a01b03166101608301526144446101808201613d5a565b64ffffffffff1661018083015261445e6101a08201613d5a565b64ffffffffff81166101a0840152505050565b6101e0810161448082856143b0565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561063e5761063e614389565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161453f6101608401826001600160a01b03169052565b5061018081015161455a61018084018264ffffffffff169052565b506101a081015161220b6101a084018264ffffffffff169052565b6103c0810161458482876144b5565b6145926101c08301866144b5565b6001600160a01b03939093166103808201526001600160601b03919091166103a09091015292915050565b5f602082840312156145cd575f5ffd5b5051919050565b61022081016145e382876144b5565b6001600160a01b039485166101c0830152929093166101e08401526001600160601b031661020090920191909152919050565b5f60208284031215614626575f5ffd5b6124d482613d5a565b64ffffffffff828116828216039081111561063e5761063e614389565b634e487b7160e01b5f52601260045260245ffd5b5f64ffffffffff8316806146765761467661464c565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c0810161458482876143b0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215614824575f5ffd5b815160ff811681146124d4575f5ffd5b60ff828116828216039081111561063e5761063e614389565b6001815b60018411156148885780850481111561486c5761486c614389565b600184161561487a57908102905b60019390931c928002614851565b935093915050565b5f8261489e5750600161063e565b816148aa57505f61063e565b81600181146148c057600281146148ca576148e6565b600191505061063e565b60ff8411156148db576148db614389565b50506001821b61063e565b5060208310610133831016604e8410600b8410161715614909575081810a61063e565b6149155f19848461484d565b805f190482111561492857614928614389565b029392505050565b5f6124d460ff841683614890565b808202811582820484141761063e5761063e614389565b5f826149635761496361464c565b500490565b5f60208284031215614978575f5ffd5b815180151581146124d4575f5ffd5b601f82111561220b57805f5260205f20601f840160051c810160208510156149ac5750805b601f840160051c820191505b818110156149cb575f81556001016149b8565b5050505050565b815167ffffffffffffffff8111156149ec576149ec613e1a565b614a00816149fa8454614247565b84614987565b6020601f821160018114614a32575f8315614a1b5750848201515b5f19600385901b1c1916600184901b1784556149cb565b5f84815260208120601f198516915b82811015614a615787850151825560209485019460019092019101614a41565b5084821015614a7e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bd67ef81b2b9b05bdc69e0e4dc8a7dc5c386930da3c83338878659093f89dc5464736f6c634300081c0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x13 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4E8E CODESIZE SUB DUP1 PUSH2 0x4E8E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x32 SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5C JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B23CF01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x125 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFEC343D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x190 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x1DF JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x209 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x214 DUP2 PUSH2 0x1E1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x225 DUP2 PUSH2 0x1E1 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24B DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x4B40 PUSH2 0x34E PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x397 ADD MSTORE PUSH2 0x29B7 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x299 ADD MSTORE DUP2 DUP2 PUSH2 0x700 ADD MSTORE DUP2 DUP2 PUSH2 0x7F2 ADD MSTORE DUP2 DUP2 PUSH2 0x9A2 ADD MSTORE DUP2 DUP2 PUSH2 0xC0B ADD MSTORE DUP2 DUP2 PUSH2 0xDA6 ADD MSTORE DUP2 DUP2 PUSH2 0xE96 ADD MSTORE DUP2 DUP2 PUSH2 0xF24 ADD MSTORE DUP2 DUP2 PUSH2 0x104E ADD MSTORE DUP2 DUP2 PUSH2 0x1186 ADD MSTORE DUP2 DUP2 PUSH2 0x1671 ADD MSTORE DUP2 DUP2 PUSH2 0x16F2 ADD MSTORE DUP2 DUP2 PUSH2 0x1896 ADD MSTORE DUP2 DUP2 PUSH2 0x19C6 ADD MSTORE DUP2 DUP2 PUSH2 0x1A5D ADD MSTORE DUP2 DUP2 PUSH2 0x1D4B ADD MSTORE DUP2 DUP2 PUSH2 0x1DE8 ADD MSTORE DUP2 DUP2 PUSH2 0x1E9B ADD MSTORE DUP2 DUP2 PUSH2 0x206A ADD MSTORE DUP2 DUP2 PUSH2 0x2124 ADD MSTORE DUP2 DUP2 PUSH2 0x25CE ADD MSTORE DUP2 DUP2 PUSH2 0x2F4D ADD MSTORE DUP2 DUP2 PUSH2 0x2FEA ADD MSTORE DUP2 DUP2 PUSH2 0x3090 ADD MSTORE DUP2 DUP2 PUSH2 0x323D ADD MSTORE PUSH2 0x3592 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x895 ADD MSTORE DUP2 DUP2 PUSH2 0x8DE ADD MSTORE DUP2 DUP2 PUSH2 0xA96 ADD MSTORE DUP2 DUP2 PUSH2 0xAD6 ADD MSTORE PUSH2 0xB63 ADD MSTORE PUSH2 0x4B40 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1D0 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7A702B3C GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xCB1719A1 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x594 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xF6C507D4 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xCB1719A1 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xCF8CF491 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x517 JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x52B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x86E7DB4D GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x86E7DB4D EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0xAF0E7E0C EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4BA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x421 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x435 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x173 JUMPI DUP1 PUSH4 0x6DB5C8FD GT PUSH2 0x143 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x3BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x32C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2D1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0xBC872D9 EQ PUSH2 0x229 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F3 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3CE7 JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x213 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x644 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FF SWAP2 SWAP1 PUSH2 0x3D0E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D89 JUMP JUMPDEST PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DFF JUMP JUMPDEST PUSH2 0x88B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x971 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x275 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3ECF JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0xB57 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x346 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xC08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F46 JUMP JUMPDEST PUSH2 0xC6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x408 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FD5 JUMP JUMPDEST PUSH2 0xD83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0xF01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x1008 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x454 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x463 CALLDATASIZE PUSH1 0x4 PUSH2 0x4000 JUMP JUMPDEST PUSH2 0x102A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x473 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x4070 JUMP JUMPDEST PUSH2 0x1138 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x492 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x40A2 JUMP JUMPDEST PUSH2 0x1155 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FD5 JUMP JUMPDEST PUSH2 0x165A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x503 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x512 CALLDATASIZE PUSH1 0x4 PUSH2 0x419F JUMP JUMPDEST PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x1776 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x53F PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FF SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x3DFF JUMP JUMPDEST PUSH2 0x1873 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2B9 PUSH2 0x19C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x5E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F8 JUMP JUMPDEST PUSH2 0x1A44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x623 DUP3 PUSH2 0x1A98 JUMP JUMPDEST DUP1 PUSH2 0x63E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x653 SWAP1 PUSH2 0x4247 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67F SWAP1 PUSH2 0x4247 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6CA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6A1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6CA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6DD PUSH2 0x1ACD JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x75A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77E SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7D7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE DUP11 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x864 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST SWAP1 POP PUSH2 0x87D DUP10 DUP10 DUP10 DUP10 DUP10 DUP7 DUP11 PUSH2 0x878 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST MLOAD SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x42BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x924 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x94A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x430A JUMP JUMPDEST PUSH2 0x953 DUP2 PUSH2 0x20F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x96E SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2210 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA20 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA54 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA88 PUSH2 0x237A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xAD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x42BE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB1C PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x430A JUMP JUMPDEST PUSH2 0xB4B DUP3 PUSH2 0x20F3 JUMP JUMPDEST PUSH2 0xA88 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2210 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xBF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC51 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC62 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC88 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCA1 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xD25 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xD34 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x23CC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD79 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE00 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE24 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE55 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE6B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x7A702B3C SWAP2 POP PUSH2 0xECF SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4471 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFA2 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFD4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFEA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x96E PUSH2 0x2409 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1025 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2446 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10CC SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FD SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1113 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1125 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x87D DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x24DB JUMP JUMPDEST PUSH0 PUSH2 0x114D DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1148 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x2506 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1204 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1238 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x126C SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x127E JUMPI PUSH2 0x127E PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x12A7 JUMPI PUSH2 0x128C DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BB PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x12ED JUMPI PUSH2 0x12C9 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1301 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1337 JUMPI PUSH2 0x130F DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x134B JUMPI PUSH2 0x134B PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1382 JUMPI PUSH2 0x1359 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1396 JUMPI PUSH2 0x1396 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x13CF JUMPI PUSH2 0x13A4 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13E3 JUMPI PUSH2 0x13E3 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1417 JUMPI PUSH2 0x13F1 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x145F JUMPI PUSH2 0x1439 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1473 JUMPI PUSH2 0x1473 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x14AD JUMPI PUSH2 0x1483 PUSH1 0x2 DUP5 PUSH2 0x253B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14C1 JUMPI PUSH2 0x14C1 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x15D9 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x153A PUSH2 0x1008 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1559 JUMPI POP PUSH2 0x1559 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x25CB JUMP JUMPDEST PUSH2 0x15A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x15AF PUSH0 DUP5 PUSH2 0x253B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15ED JUMPI PUSH2 0x15ED PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x161D JUMPI PUSH2 0x15FB DUP4 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1654 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x163D SWAP1 PUSH1 0x8 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x164E JUMPI PUSH2 0x164E PUSH2 0x448E JUMP JUMPDEST DUP5 PUSH2 0x2723 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x16A8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4471 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x172D SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4575 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x176D SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1025 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x17CD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1025 SWAP1 PUSH2 0x2774 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1914 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1945 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x196D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x1999 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA88 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x2723 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1025 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x172D SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x45D4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x63E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1B1D PUSH2 0x3C6F JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x1B46 JUMPI PUSH2 0x1B43 DUP9 DUP8 DUP8 PUSH2 0x1B3D PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x4616 JUMP JUMPDEST DUP7 PUSH2 0x2506 JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x1B95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x1BAF PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x1BFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x1C0D PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x1C2E JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1C3E JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x1CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x1CD3 PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 DUP9 PUSH2 0x462F JUMP JUMPDEST PUSH2 0x1CE7 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x1D3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x1D49 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x439D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DC9 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E37 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E5B SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO PUSH2 0x1E79 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4689 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x1F99 JUMPI POP PUSH2 0x1E99 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x439D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F19 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F72 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F96 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x1FB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH2 0x1FBD PUSH2 0x1776 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4725 JUMP JUMPDEST PUSH2 0x1FFE ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1FF9 SWAP2 SWAP1 PUSH2 0x4616 JUMP JUMPDEST PUSH2 0x2838 JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2014 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2032 SWAP1 POP PUSH2 0x1008 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4777 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x20A5 SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x47BA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x217E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21A2 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21D6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21FE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x220B DUP4 PUSH2 0x29A8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2243 JUMPI PUSH2 0x220B DUP4 PUSH2 0x2A66 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x229D JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x229A SWAP2 DUP2 ADD SWAP1 PUSH2 0x45BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2300 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x236E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP PUSH2 0x220B DUP4 DUP4 DUP4 PUSH2 0x2B01 JUMP JUMPDEST PUSH2 0x2382 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x23FA PUSH2 0x2B6E JUMP JUMPDEST PUSH2 0xEF8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2BA4 JUMP JUMPDEST PUSH2 0x2411 PUSH2 0x1ACD JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x23AF CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2450 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x248B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24AF SWAP2 SWAP1 PUSH2 0x4814 JUMP JUMPDEST PUSH2 0x24B9 SWAP2 SWAP1 PUSH2 0x4834 JUMP JUMPDEST PUSH2 0x24C4 SWAP1 PUSH1 0xA PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x24D4 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x493E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x24E3 PUSH2 0x3C6F JUMP JUMPDEST PUSH2 0x24FA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x24F5 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x2DAE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2514 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x32C7 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x63E PUSH2 0x2536 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4955 JUMP JUMPDEST PUSH2 0x26BD JUMP JUMPDEST PUSH0 PUSH2 0x24D4 DUP4 PUSH2 0x2548 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2583 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A7 SWAP2 SWAP1 PUSH2 0x4814 JUMP JUMPDEST PUSH2 0x25B1 SWAP2 SWAP1 PUSH2 0x4834 JUMP JUMPDEST PUSH2 0x25BC SWAP1 PUSH1 0xA PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x25C6 SWAP1 DUP5 PUSH2 0x4955 JUMP JUMPDEST PUSH2 0x34BA JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2628 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264C SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x267E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2699 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x63E SWAP2 SWAP1 PUSH2 0x4968 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x271F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x272B PUSH2 0x351E JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x273D JUMPI PUSH2 0x273D PUSH2 0x448E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x27AD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x27C4 DUP5 PUSH0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27D6 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27E8 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27FA DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x280C DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x281E DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2830 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2840 PUSH2 0x3C6F JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x289B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x28A3 PUSH2 0x3C6F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x28ED DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x32C7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x2986 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x2995 SWAP1 DUP10 PUSH2 0x439D JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B1 DUP2 PUSH2 0x3590 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A1B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A3F SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x2AD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2B0A DUP4 PUSH2 0x3641 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2B16 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x220B JUMPI PUSH2 0x1654 DUP4 DUP4 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2B94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x2B9C PUSH2 0x36A5 JUMP JUMPDEST PUSH2 0x1B13 PUSH2 0x36CB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2BCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x2BD6 DUP9 DUP3 PUSH2 0x49D2 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x2BF9 DUP9 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C0B DUP8 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x2C2A DUP7 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C3E PUSH1 0x2 DUP7 PUSH2 0x253B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C53 PUSH0 DUP6 PUSH2 0x253B JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0xEF8 PUSH2 0x351E JUMP JUMPDEST PUSH2 0x2DB6 PUSH2 0x3C6F JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2DCF JUMPI PUSH2 0x2DCC DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x2506 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2E1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2E7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2E96 DUP4 DUP11 PUSH2 0x462F JUMP JUMPDEST PUSH2 0x2EA0 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2EF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2F4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FA7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FCB SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3039 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x305D SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO PUSH2 0x307B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4689 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x318E JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x310E SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3167 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x318B SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x31AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH2 0x31B2 PUSH2 0x1776 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x31D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4725 JUMP JUMPDEST PUSH2 0x31E0 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x2838 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x31F7 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3205 SWAP1 POP PUSH2 0x1008 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3226 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4777 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3278 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x45D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3294 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32B8 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3307 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x331F SWAP1 PUSH2 0x3318 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3331 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x335B JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3353 SWAP1 DUP4 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3362 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x3372 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3388 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x33BD JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x33A4 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x33B5 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x33C4 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3401 PUSH4 0x1E13380 PUSH2 0x33D6 DUP5 DUP7 PUSH2 0x462F JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x33EC SWAP2 SWAP1 PUSH2 0x493E JUMP JUMPDEST PUSH2 0x33F6 SWAP2 SWAP1 PUSH2 0x4955 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3443 PUSH4 0x1E13380 PUSH2 0x3418 DUP5 DUP7 PUSH2 0x462F JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x342E SWAP2 SWAP1 PUSH2 0x493E JUMP JUMPDEST PUSH2 0x3438 SWAP2 SWAP1 PUSH2 0x4955 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x345A SWAP2 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3473 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x36F9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x3483 SWAP2 PUSH2 0x36F9 JUMP JUMPDEST PUSH2 0x348D SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x34A1 SWAP2 PUSH2 0x44A2 JUMP JUMPDEST PUSH2 0x34AB SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x271F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x3529 PUSH2 0x1008 JUMP JUMPDEST LT ISZERO PUSH2 0x3548 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3571 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B13 PUSH1 0xFC PUSH2 0x372F JUMP JUMPDEST PUSH0 PUSH2 0x63E PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x493E JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35F6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361A SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x364A DUP2 PUSH2 0x2A66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x24D4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4AE4 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3B2C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x36F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x1B13 PUSH2 0x3BA0 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3715 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x37C5 JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x381B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x388C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x38AE JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x38FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3965 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x39D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3A3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3AAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3AD6 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3B48 SWAP2 SWAP1 PUSH2 0x4A8D JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3B80 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3B85 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3B96 DUP7 DUP4 DUP4 DUP8 PUSH2 0x3BD2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3C40 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3C39 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3C39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST POP DUP2 PUSH2 0x114D JUMP JUMPDEST PUSH2 0x114D DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3C55 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP2 SWAP1 PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3D6E JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D6E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3D9F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3DA9 DUP9 DUP9 PUSH2 0x3D43 JUMP JUMPDEST SWAP6 POP PUSH2 0x1C0 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH2 0x1E0 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH2 0x3DD0 PUSH2 0x220 DUP9 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP2 POP PUSH2 0x3DDF PUSH2 0x240 DUP9 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x96E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x24D4 DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3E52 JUMPI PUSH2 0x3E52 PUSH2 0x3E1A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x3E72 JUMPI PUSH2 0x3E72 PUSH2 0x3E1A JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3EA1 JUMPI PUSH2 0x3EA1 PUSH2 0x3E1A JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x3EB8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EE0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3EEB DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F06 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3F16 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3F25 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F3F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3F5C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x3F82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3F91 DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x3FC5 DUP2 PUSH2 0x3DEB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FE7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3FF1 DUP5 DUP5 PUSH2 0x3D43 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4016 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x4034 PUSH1 0x60 DUP10 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH2 0x4044 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH2 0x4054 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x4062 PUSH1 0xC0 DUP10 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4082 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4099 PUSH1 0x40 DUP6 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x40B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x40C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3D6E DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40EB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40F3 PUSH2 0x3E2E JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x416D PUSH2 0x160 DUP4 ADD PUSH2 0x40CF JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x4180 PUSH2 0x180 DUP4 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x4193 PUSH2 0x1A0 DUP4 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x41B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x41BD DUP7 DUP7 PUSH2 0x40DA JUMP JUMPDEST SWAP4 POP PUSH2 0x41CD DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0x40DA JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0x41DE DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x41ED PUSH2 0x3A0 DUP7 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x420C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4216 DUP7 DUP7 PUSH2 0x40DA JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0x4227 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0x4238 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x41ED PUSH2 0x200 DUP7 ADD PUSH2 0x3D73 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x425B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3D54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4289 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24D4 DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x4428 PUSH2 0x160 DUP3 ADD PUSH2 0x40CF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4444 PUSH2 0x180 DUP3 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x445E PUSH2 0x1A0 DUP3 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4480 DUP3 DUP6 PUSH2 0x43B0 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x453F PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x455A PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x220B PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4584 DUP3 DUP8 PUSH2 0x44B5 JUMP JUMPDEST PUSH2 0x4592 PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x44B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x45E3 DUP3 DUP8 PUSH2 0x44B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4626 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x24D4 DUP3 PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x4676 JUMPI PUSH2 0x4676 PUSH2 0x464C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4584 DUP3 DUP8 PUSH2 0x43B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4824 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4888 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x486C JUMPI PUSH2 0x486C PUSH2 0x4389 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x487A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4851 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x489E JUMPI POP PUSH1 0x1 PUSH2 0x63E JUMP JUMPDEST DUP2 PUSH2 0x48AA JUMPI POP PUSH0 PUSH2 0x63E JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x48C0 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x48CA JUMPI PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x63E JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x48DB JUMPI PUSH2 0x48DB PUSH2 0x4389 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x63E JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4909 JUMPI POP DUP2 DUP2 EXP PUSH2 0x63E JUMP JUMPDEST PUSH2 0x4915 PUSH0 NOT DUP5 DUP5 PUSH2 0x484D JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x4928 JUMPI PUSH2 0x4928 PUSH2 0x4389 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24D4 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x4890 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4963 JUMPI PUSH2 0x4963 PUSH2 0x464C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4978 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x220B JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x49AC JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x49CB JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x49B8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49EC JUMPI PUSH2 0x49EC PUSH2 0x3E1A JUMP JUMPDEST PUSH2 0x4A00 DUP2 PUSH2 0x49FA DUP5 SLOAD PUSH2 0x4247 JUMP JUMPDEST DUP5 PUSH2 0x4987 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4A32 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x4A1B JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x49CB JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4A61 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4A41 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4A7E JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220BD67EF DUP2 0xB2 0xB9 0xB0 JUMPDEST 0xDC PUSH10 0xE0E4DC8A7DC5C386930D LOG3 0xC8 CALLER CODESIZE DUP8 DUP7 MSIZE MULMOD EXTCODEHASH DUP10 0xDC SLOAD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"581:3014:86:-:0;;;1198:4:7;1155:48;;928:116:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1011:11;1024:16;1011:11;-1:-1:-1;;;;;2900:34:57;;2896:65;;2943:18;;-1:-1:-1;;;2943:18:57;;;;;;;;;;;2896:65;2967:22;:20;:22::i;:::-;3009:11;-1:-1:-1;;;;;2995:25:57;;;-1:-1:-1;;;;;2995:25:57;;;;;2853:172;3107:11:60::1;-1:-1:-1::0;;;;;3044:74:60::1;3072:16;-1:-1:-1::0;;;;;3044:57:60::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3044:74:60::1;;3040:138;;3135:36;;-1:-1:-1::0;;;3135:36:60::1;;;;;;;;;;;3040:138;-1:-1:-1::0;;;;;3183:35:60::1;;::::0;-1:-1:-1;581:3014:86;;-1:-1:-1;;581:3014:86;5939:280:6;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:6;;1118:2:88;5998:66:6;;;1100:21:88;1157:2;1137:18;;;1130:30;1196:34;1176:18;;;1169:62;-1:-1:-1;;;1247:18:88;;;1240:37;1294:19;;5998:66:6;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:6;6140:15;6125:30;;;;;;6174:28;;1466:36:88;;;6174:28:6;;1454:2:88;1439:18;6174:28:6;;;;;;;6074:139;5939:280::o;14:144:88:-;-1:-1:-1;;;;;102:31:88;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:458::-;289:6;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;417:44;455:5;417:44;:::i;:::-;530:2;515:18;;509:25;480:5;;-1:-1:-1;543:46:88;509:25;543:46;:::i;:::-;608:7;598:17;;;163:458;;;;;:::o;626:285::-;717:6;770:2;758:9;749:7;745:23;741:32;738:52;;;786:1;783;776:12;738:52;818:9;812:16;837:44;875:5;837:44;:::i;:::-;900:5;626:285;-1:-1:-1;;;626:285:88:o;1324:184::-;581:3014:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PRICER_ROLE_25639":{"entryPoint":null,"id":25639,"parameterSlots":0,"returnSlots":0},"@REPLACER_ROLE_25649":{"entryPoint":null,"id":25649,"parameterSlots":0,"returnSlots":0},"@RESOLVER_ROLE_25644":{"entryPoint":null,"id":25644,"parameterSlots":0,"returnSlots":0},"@_4toWad_20564":{"entryPoint":13691,"id":20564,"parameterSlots":1,"returnSlots":1},"@_XtoAmount_20604":{"entryPoint":9286,"id":20604,"parameterSlots":2,"returnSlots":1},"@__Pausable_init_1113":{"entryPoint":14027,"id":1113,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_1123":{"entryPoint":15264,"id":1123,"parameterSlots":0,"returnSlots":0},"@__PolicyPoolComponent_init_17875":{"entryPoint":11118,"id":17875,"parameterSlots":0,"returnSlots":0},"@__RiskModule_init_20302":{"entryPoint":9164,"id":20302,"parameterSlots":7,"returnSlots":0},"@__RiskModule_init_unchained_20364":{"entryPoint":11172,"id":20364,"parameterSlots":7,"returnSlots":0},"@__UUPSUpgradeable_init_1008":{"entryPoint":13989,"id":1008,"parameterSlots":0,"returnSlots":0},"@_amountToX_20629":{"entryPoint":9531,"id":20629,"parameterSlots":2,"returnSlots":1},"@_authorizeUpgrade_17890":{"entryPoint":8435,"id":17890,"parameterSlots":1,"returnSlots":0},"@_getImplementation_486":{"entryPoint":null,"id":486,"parameterSlots":0,"returnSlots":1},"@_getMinimumPremium_21037":{"entryPoint":9478,"id":21037,"parameterSlots":5,"returnSlots":1},"@_msgSender_2681":{"entryPoint":null,"id":2681,"parameterSlots":0,"returnSlots":1},"@_newPolicyWithParams_21244":{"entryPoint":11694,"id":21244,"parameterSlots":8,"returnSlots":1},"@_newPolicy_21071":{"entryPoint":9435,"id":21071,"parameterSlots":7,"returnSlots":1},"@_parameterChanged_18077":{"entryPoint":10019,"id":18077,"parameterSlots":2,"returnSlots":0},"@_pause_1187":{"entryPoint":9225,"id":1187,"parameterSlots":0,"returnSlots":0},"@_replacePolicy_21437":{"entryPoint":6933,"id":21437,"parameterSlots":8,"returnSlots":1},"@_requireNotPaused_1160":{"entryPoint":6861,"id":1160,"parameterSlots":0,"returnSlots":0},"@_requirePaused_1171":{"entryPoint":11045,"id":1171,"parameterSlots":0,"returnSlots":0},"@_revert_2652":{"entryPoint":null,"id":2652,"parameterSlots":2,"returnSlots":0},"@_setImplementation_510":{"entryPoint":10854,"id":510,"parameterSlots":1,"returnSlots":0},"@_unpackParams_20928":{"entryPoint":10100,"id":20928,"parameterSlots":1,"returnSlots":1},"@_unpause_1203":{"entryPoint":9082,"id":1203,"parameterSlots":0,"returnSlots":0},"@_upgradeToAndCallUUPS_608":{"entryPoint":8720,"id":608,"parameterSlots":3,"returnSlots":0},"@_upgradeToAndCall_555":{"entryPoint":11009,"id":555,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_525":{"entryPoint":13889,"id":525,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_17907":{"entryPoint":13712,"id":17907,"parameterSlots":1,"returnSlots":0},"@_upgradeValidations_20394":{"entryPoint":10664,"id":20394,"parameterSlots":1,"returnSlots":0},"@_validatePackedParams_20540":{"entryPoint":14127,"id":20540,"parameterSlots":1,"returnSlots":0},"@_validateParameters_20445":{"entryPoint":13598,"id":20445,"parameterSlots":0,"returnSlots":0},"@_wadTo4_20579":{"entryPoint":9506,"id":20579,"parameterSlots":1,"returnSlots":1},"@activeExposure_20674":{"entryPoint":null,"id":20674,"parameterSlots":0,"returnSlots":1},"@currency_17973":{"entryPoint":6595,"id":17973,"parameterSlots":0,"returnSlots":1},"@exposureLimit_20655":{"entryPoint":4104,"id":20655,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_2540":{"entryPoint":13952,"id":2540,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_2569":{"entryPoint":15148,"id":2569,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_2736":{"entryPoint":null,"id":2736,"parameterSlots":1,"returnSlots":1},"@getBooleanSlot_2747":{"entryPoint":null,"id":2747,"parameterSlots":1,"returnSlots":1},"@getMinimumPremium_15158":{"entryPoint":12999,"id":15158,"parameterSlots":5,"returnSlots":1},"@getMinimumPremium_21010":{"entryPoint":4408,"id":21010,"parameterSlots":3,"returnSlots":1},"@hasPoolRole_17995":{"entryPoint":9675,"id":17995,"parameterSlots":1,"returnSlots":1},"@initialize_15300":{"entryPoint":10296,"id":15300,"parameterSlots":7,"returnSlots":1},"@initialize_25695":{"entryPoint":3178,"id":25695,"parameterSlots":7,"returnSlots":0},"@isContract_2341":{"entryPoint":null,"id":2341,"parameterSlots":1,"returnSlots":1},"@maxDuration_20665":{"entryPoint":null,"id":20665,"parameterSlots":0,"returnSlots":1},"@maxPayoutPerPolicy_20642":{"entryPoint":6006,"id":20642,"parameterSlots":0,"returnSlots":1},"@name_20549":{"entryPoint":1604,"id":20549,"parameterSlots":0,"returnSlots":1},"@newPolicyRaw_25752":{"entryPoint":6724,"id":25752,"parameterSlots":4,"returnSlots":1},"@newPolicy_25729":{"entryPoint":4138,"id":25729,"parameterSlots":7,"returnSlots":1},"@params_20887":{"entryPoint":6036,"id":20887,"parameterSlots":0,"returnSlots":1},"@pause_17941":{"entryPoint":3841,"id":17941,"parameterSlots":0,"returnSlots":0},"@paused_1148":{"entryPoint":null,"id":1148,"parameterSlots":0,"returnSlots":1},"@policyPool_17962":{"entryPoint":null,"id":17962,"parameterSlots":0,"returnSlots":1},"@premiumsAccount_21460":{"entryPoint":null,"id":21460,"parameterSlots":0,"returnSlots":1},"@proxiableUUID_1026":{"entryPoint":2903,"id":1026,"parameterSlots":0,"returnSlots":1},"@releaseExposure_21450":{"entryPoint":3080,"id":21450,"parameterSlots":1,"returnSlots":0},"@replacePolicyRaw_25860":{"entryPoint":5849,"id":25860,"parameterSlots":4,"returnSlots":1},"@replacePolicy_25836":{"entryPoint":1748,"id":25836,"parameterSlots":6,"returnSlots":1},"@resolvePolicyRaw_25786":{"entryPoint":5722,"id":25786,"parameterSlots":2,"returnSlots":0},"@resolvePolicy_25771":{"entryPoint":3459,"id":25771,"parameterSlots":2,"returnSlots":0},"@setParam_20875":{"entryPoint":4437,"id":20875,"parameterSlots":2,"returnSlots":0},"@setWallet_20985":{"entryPoint":6259,"id":20985,"parameterSlots":1,"returnSlots":0},"@supportsInterface_17931":{"entryPoint":6808,"id":17931,"parameterSlots":1,"returnSlots":1},"@supportsInterface_20416":{"entryPoint":1561,"id":20416,"parameterSlots":1,"returnSlots":1},"@toUint16_9502":{"entryPoint":9917,"id":9502,"parameterSlots":1,"returnSlots":1},"@toUint32_9452":{"entryPoint":13498,"id":9452,"parameterSlots":1,"returnSlots":1},"@unpause_17952":{"entryPoint":2417,"id":17952,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_1069":{"entryPoint":2700,"id":1069,"parameterSlots":2,"returnSlots":0},"@upgradeTo_1048":{"entryPoint":2187,"id":1048,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_2608":{"entryPoint":15314,"id":2608,"parameterSlots":4,"returnSlots":1},"@wadMul_23186":{"entryPoint":14073,"id":23186,"parameterSlots":2,"returnSlots":1},"@wallet_20683":{"entryPoint":null,"id":20683,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":15960,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_contract_IRiskModule":{"entryPoint":16591,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_PolicyData":{"entryPoint":16602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_PolicyData_calldata":{"entryPoint":15683,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":15871,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":16079,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":15591,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory":{"entryPoint":17017,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256":{"entryPoint":16546,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address":{"entryPoint":16198,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256":{"entryPoint":16341,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96":{"entryPoint":15753,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96":{"entryPoint":16888,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96":{"entryPoint":16799,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":16175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":17853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_addresst_uint96":{"entryPoint":16384,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint256t_uint256t_uint40":{"entryPoint":16496,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint40":{"entryPoint":17942,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":18452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint40":{"entryPoint":15706,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":15731,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_contract_IPolicyPool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData":{"entryPoint":17589,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_PolicyData_calldata":{"entryPoint":17328,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19085,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17044,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed":{"entryPoint":17238,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":15630,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18295,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18057,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18213,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17086,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17162,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18134,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18377,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed":{"entryPoint":18362,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":17521,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed":{"entryPoint":17876,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed":{"entryPoint":17781,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":15918,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":17570,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":18773,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint40":{"entryPoint":18016,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":18509,"id":null,"parameterSlots":3,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":18736,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":18576,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":18750,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":17309,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":17967,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":18484,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":18823,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":18898,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":16967,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":17289,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":17996,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":17550,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":15898,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15851,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:41732:88","nodeType":"YulBlock","src":"0:41732:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"83:217:88","nodeType":"YulBlock","src":"83:217:88","statements":[{"body":{"nativeSrc":"129:16:88","nodeType":"YulBlock","src":"129:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:88","nodeType":"YulLiteral","src":"138:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:88","nodeType":"YulLiteral","src":"141:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:88","nodeType":"YulIdentifier","src":"131:6:88"},"nativeSrc":"131:12:88","nodeType":"YulFunctionCall","src":"131:12:88"},"nativeSrc":"131:12:88","nodeType":"YulExpressionStatement","src":"131:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:88","nodeType":"YulIdentifier","src":"104:7:88"},{"name":"headStart","nativeSrc":"113:9:88","nodeType":"YulIdentifier","src":"113:9:88"}],"functionName":{"name":"sub","nativeSrc":"100:3:88","nodeType":"YulIdentifier","src":"100:3:88"},"nativeSrc":"100:23:88","nodeType":"YulFunctionCall","src":"100:23:88"},{"kind":"number","nativeSrc":"125:2:88","nodeType":"YulLiteral","src":"125:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:88","nodeType":"YulIdentifier","src":"96:3:88"},"nativeSrc":"96:32:88","nodeType":"YulFunctionCall","src":"96:32:88"},"nativeSrc":"93:52:88","nodeType":"YulIf","src":"93:52:88"},{"nativeSrc":"154:36:88","nodeType":"YulVariableDeclaration","src":"154:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:88","nodeType":"YulIdentifier","src":"180:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:88","nodeType":"YulIdentifier","src":"167:12:88"},"nativeSrc":"167:23:88","nodeType":"YulFunctionCall","src":"167:23:88"},"variables":[{"name":"value","nativeSrc":"158:5:88","nodeType":"YulTypedName","src":"158:5:88","type":""}]},{"body":{"nativeSrc":"254:16:88","nodeType":"YulBlock","src":"254:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263:1:88","nodeType":"YulLiteral","src":"263:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"266:1:88","nodeType":"YulLiteral","src":"266:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"256:6:88","nodeType":"YulIdentifier","src":"256:6:88"},"nativeSrc":"256:12:88","nodeType":"YulFunctionCall","src":"256:12:88"},"nativeSrc":"256:12:88","nodeType":"YulExpressionStatement","src":"256:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:88","nodeType":"YulIdentifier","src":"212:5:88"},{"arguments":[{"name":"value","nativeSrc":"223:5:88","nodeType":"YulIdentifier","src":"223:5:88"},{"arguments":[{"kind":"number","nativeSrc":"234:3:88","nodeType":"YulLiteral","src":"234:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"239:10:88","nodeType":"YulLiteral","src":"239:10:88","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:20:88","nodeType":"YulFunctionCall","src":"230:20:88"}],"functionName":{"name":"and","nativeSrc":"219:3:88","nodeType":"YulIdentifier","src":"219:3:88"},"nativeSrc":"219:32:88","nodeType":"YulFunctionCall","src":"219:32:88"}],"functionName":{"name":"eq","nativeSrc":"209:2:88","nodeType":"YulIdentifier","src":"209:2:88"},"nativeSrc":"209:43:88","nodeType":"YulFunctionCall","src":"209:43:88"}],"functionName":{"name":"iszero","nativeSrc":"202:6:88","nodeType":"YulIdentifier","src":"202:6:88"},"nativeSrc":"202:51:88","nodeType":"YulFunctionCall","src":"202:51:88"},"nativeSrc":"199:71:88","nodeType":"YulIf","src":"199:71:88"},{"nativeSrc":"279:15:88","nodeType":"YulAssignment","src":"279:15:88","value":{"name":"value","nativeSrc":"289:5:88","nodeType":"YulIdentifier","src":"289:5:88"},"variableNames":[{"name":"value0","nativeSrc":"279:6:88","nodeType":"YulIdentifier","src":"279:6:88"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:286:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:88","nodeType":"YulTypedName","src":"49:9:88","type":""},{"name":"dataEnd","nativeSrc":"60:7:88","nodeType":"YulTypedName","src":"60:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:88","nodeType":"YulTypedName","src":"72:6:88","type":""}],"src":"14:286:88"},{"body":{"nativeSrc":"400:92:88","nodeType":"YulBlock","src":"400:92:88","statements":[{"nativeSrc":"410:26:88","nodeType":"YulAssignment","src":"410:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"422:9:88","nodeType":"YulIdentifier","src":"422:9:88"},{"kind":"number","nativeSrc":"433:2:88","nodeType":"YulLiteral","src":"433:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"418:3:88","nodeType":"YulIdentifier","src":"418:3:88"},"nativeSrc":"418:18:88","nodeType":"YulFunctionCall","src":"418:18:88"},"variableNames":[{"name":"tail","nativeSrc":"410:4:88","nodeType":"YulIdentifier","src":"410:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"452:9:88","nodeType":"YulIdentifier","src":"452:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"477:6:88","nodeType":"YulIdentifier","src":"477:6:88"}],"functionName":{"name":"iszero","nativeSrc":"470:6:88","nodeType":"YulIdentifier","src":"470:6:88"},"nativeSrc":"470:14:88","nodeType":"YulFunctionCall","src":"470:14:88"}],"functionName":{"name":"iszero","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},"nativeSrc":"463:22:88","nodeType":"YulFunctionCall","src":"463:22:88"}],"functionName":{"name":"mstore","nativeSrc":"445:6:88","nodeType":"YulIdentifier","src":"445:6:88"},"nativeSrc":"445:41:88","nodeType":"YulFunctionCall","src":"445:41:88"},"nativeSrc":"445:41:88","nodeType":"YulExpressionStatement","src":"445:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"305:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"369:9:88","nodeType":"YulTypedName","src":"369:9:88","type":""},{"name":"value0","nativeSrc":"380:6:88","nodeType":"YulTypedName","src":"380:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"391:4:88","nodeType":"YulTypedName","src":"391:4:88","type":""}],"src":"305:187:88"},{"body":{"nativeSrc":"618:297:88","nodeType":"YulBlock","src":"618:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"635:9:88","nodeType":"YulIdentifier","src":"635:9:88"},{"kind":"number","nativeSrc":"646:2:88","nodeType":"YulLiteral","src":"646:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"628:6:88","nodeType":"YulIdentifier","src":"628:6:88"},"nativeSrc":"628:21:88","nodeType":"YulFunctionCall","src":"628:21:88"},"nativeSrc":"628:21:88","nodeType":"YulExpressionStatement","src":"628:21:88"},{"nativeSrc":"658:27:88","nodeType":"YulVariableDeclaration","src":"658:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"678:6:88","nodeType":"YulIdentifier","src":"678:6:88"}],"functionName":{"name":"mload","nativeSrc":"672:5:88","nodeType":"YulIdentifier","src":"672:5:88"},"nativeSrc":"672:13:88","nodeType":"YulFunctionCall","src":"672:13:88"},"variables":[{"name":"length","nativeSrc":"662:6:88","nodeType":"YulTypedName","src":"662:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:88","nodeType":"YulIdentifier","src":"705:9:88"},{"kind":"number","nativeSrc":"716:2:88","nodeType":"YulLiteral","src":"716:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"701:3:88","nodeType":"YulIdentifier","src":"701:3:88"},"nativeSrc":"701:18:88","nodeType":"YulFunctionCall","src":"701:18:88"},{"name":"length","nativeSrc":"721:6:88","nodeType":"YulIdentifier","src":"721:6:88"}],"functionName":{"name":"mstore","nativeSrc":"694:6:88","nodeType":"YulIdentifier","src":"694:6:88"},"nativeSrc":"694:34:88","nodeType":"YulFunctionCall","src":"694:34:88"},"nativeSrc":"694:34:88","nodeType":"YulExpressionStatement","src":"694:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"747:9:88","nodeType":"YulIdentifier","src":"747:9:88"},{"kind":"number","nativeSrc":"758:2:88","nodeType":"YulLiteral","src":"758:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"743:3:88","nodeType":"YulIdentifier","src":"743:3:88"},"nativeSrc":"743:18:88","nodeType":"YulFunctionCall","src":"743:18:88"},{"arguments":[{"name":"value0","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:2:88","nodeType":"YulLiteral","src":"775:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:15:88","nodeType":"YulFunctionCall","src":"763:15:88"},{"name":"length","nativeSrc":"780:6:88","nodeType":"YulIdentifier","src":"780:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"737:5:88","nodeType":"YulIdentifier","src":"737:5:88"},"nativeSrc":"737:50:88","nodeType":"YulFunctionCall","src":"737:50:88"},"nativeSrc":"737:50:88","nodeType":"YulExpressionStatement","src":"737:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"811:9:88","nodeType":"YulIdentifier","src":"811:9:88"},{"name":"length","nativeSrc":"822:6:88","nodeType":"YulIdentifier","src":"822:6:88"}],"functionName":{"name":"add","nativeSrc":"807:3:88","nodeType":"YulIdentifier","src":"807:3:88"},"nativeSrc":"807:22:88","nodeType":"YulFunctionCall","src":"807:22:88"},{"kind":"number","nativeSrc":"831:2:88","nodeType":"YulLiteral","src":"831:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"803:3:88","nodeType":"YulIdentifier","src":"803:3:88"},"nativeSrc":"803:31:88","nodeType":"YulFunctionCall","src":"803:31:88"},{"kind":"number","nativeSrc":"836:1:88","nodeType":"YulLiteral","src":"836:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"796:6:88","nodeType":"YulIdentifier","src":"796:6:88"},"nativeSrc":"796:42:88","nodeType":"YulFunctionCall","src":"796:42:88"},"nativeSrc":"796:42:88","nodeType":"YulExpressionStatement","src":"796:42:88"},{"nativeSrc":"847:62:88","nodeType":"YulAssignment","src":"847:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"863:9:88","nodeType":"YulIdentifier","src":"863:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"882:6:88","nodeType":"YulIdentifier","src":"882:6:88"},{"kind":"number","nativeSrc":"890:2:88","nodeType":"YulLiteral","src":"890:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"878:3:88","nodeType":"YulIdentifier","src":"878:3:88"},"nativeSrc":"878:15:88","nodeType":"YulFunctionCall","src":"878:15:88"},{"arguments":[{"kind":"number","nativeSrc":"899:2:88","nodeType":"YulLiteral","src":"899:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"895:3:88","nodeType":"YulIdentifier","src":"895:3:88"},"nativeSrc":"895:7:88","nodeType":"YulFunctionCall","src":"895:7:88"}],"functionName":{"name":"and","nativeSrc":"874:3:88","nodeType":"YulIdentifier","src":"874:3:88"},"nativeSrc":"874:29:88","nodeType":"YulFunctionCall","src":"874:29:88"}],"functionName":{"name":"add","nativeSrc":"859:3:88","nodeType":"YulIdentifier","src":"859:3:88"},"nativeSrc":"859:45:88","nodeType":"YulFunctionCall","src":"859:45:88"},{"kind":"number","nativeSrc":"906:2:88","nodeType":"YulLiteral","src":"906:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"855:3:88","nodeType":"YulIdentifier","src":"855:3:88"},"nativeSrc":"855:54:88","nodeType":"YulFunctionCall","src":"855:54:88"},"variableNames":[{"name":"tail","nativeSrc":"847:4:88","nodeType":"YulIdentifier","src":"847:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"497:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"587:9:88","nodeType":"YulTypedName","src":"587:9:88","type":""},{"name":"value0","nativeSrc":"598:6:88","nodeType":"YulTypedName","src":"598:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"609:4:88","nodeType":"YulTypedName","src":"609:4:88","type":""}],"src":"497:418:88"},{"body":{"nativeSrc":"993:86:88","nodeType":"YulBlock","src":"993:86:88","statements":[{"body":{"nativeSrc":"1033:16:88","nodeType":"YulBlock","src":"1033:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1042:1:88","nodeType":"YulLiteral","src":"1042:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1045:1:88","nodeType":"YulLiteral","src":"1045:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1035:6:88","nodeType":"YulIdentifier","src":"1035:6:88"},"nativeSrc":"1035:12:88","nodeType":"YulFunctionCall","src":"1035:12:88"},"nativeSrc":"1035:12:88","nodeType":"YulExpressionStatement","src":"1035:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"1014:3:88","nodeType":"YulIdentifier","src":"1014:3:88"},{"name":"offset","nativeSrc":"1019:6:88","nodeType":"YulIdentifier","src":"1019:6:88"}],"functionName":{"name":"sub","nativeSrc":"1010:3:88","nodeType":"YulIdentifier","src":"1010:3:88"},"nativeSrc":"1010:16:88","nodeType":"YulFunctionCall","src":"1010:16:88"},{"kind":"number","nativeSrc":"1028:3:88","nodeType":"YulLiteral","src":"1028:3:88","type":"","value":"448"}],"functionName":{"name":"slt","nativeSrc":"1006:3:88","nodeType":"YulIdentifier","src":"1006:3:88"},"nativeSrc":"1006:26:88","nodeType":"YulFunctionCall","src":"1006:26:88"},"nativeSrc":"1003:46:88","nodeType":"YulIf","src":"1003:46:88"},{"nativeSrc":"1058:15:88","nodeType":"YulAssignment","src":"1058:15:88","value":{"name":"offset","nativeSrc":"1067:6:88","nodeType":"YulIdentifier","src":"1067:6:88"},"variableNames":[{"name":"value","nativeSrc":"1058:5:88","nodeType":"YulIdentifier","src":"1058:5:88"}]}]},"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"920:159:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"967:6:88","nodeType":"YulTypedName","src":"967:6:88","type":""},{"name":"end","nativeSrc":"975:3:88","nodeType":"YulTypedName","src":"975:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"983:5:88","nodeType":"YulTypedName","src":"983:5:88","type":""}],"src":"920:159:88"},{"body":{"nativeSrc":"1132:117:88","nodeType":"YulBlock","src":"1132:117:88","statements":[{"nativeSrc":"1142:29:88","nodeType":"YulAssignment","src":"1142:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1164:6:88","nodeType":"YulIdentifier","src":"1164:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1151:12:88","nodeType":"YulIdentifier","src":"1151:12:88"},"nativeSrc":"1151:20:88","nodeType":"YulFunctionCall","src":"1151:20:88"},"variableNames":[{"name":"value","nativeSrc":"1142:5:88","nodeType":"YulIdentifier","src":"1142:5:88"}]},{"body":{"nativeSrc":"1227:16:88","nodeType":"YulBlock","src":"1227:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1236:1:88","nodeType":"YulLiteral","src":"1236:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1239:1:88","nodeType":"YulLiteral","src":"1239:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1229:6:88","nodeType":"YulIdentifier","src":"1229:6:88"},"nativeSrc":"1229:12:88","nodeType":"YulFunctionCall","src":"1229:12:88"},"nativeSrc":"1229:12:88","nodeType":"YulExpressionStatement","src":"1229:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1193:5:88","nodeType":"YulIdentifier","src":"1193:5:88"},{"arguments":[{"name":"value","nativeSrc":"1204:5:88","nodeType":"YulIdentifier","src":"1204:5:88"},{"kind":"number","nativeSrc":"1211:12:88","nodeType":"YulLiteral","src":"1211:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"1200:3:88","nodeType":"YulIdentifier","src":"1200:3:88"},"nativeSrc":"1200:24:88","nodeType":"YulFunctionCall","src":"1200:24:88"}],"functionName":{"name":"eq","nativeSrc":"1190:2:88","nodeType":"YulIdentifier","src":"1190:2:88"},"nativeSrc":"1190:35:88","nodeType":"YulFunctionCall","src":"1190:35:88"}],"functionName":{"name":"iszero","nativeSrc":"1183:6:88","nodeType":"YulIdentifier","src":"1183:6:88"},"nativeSrc":"1183:43:88","nodeType":"YulFunctionCall","src":"1183:43:88"},"nativeSrc":"1180:63:88","nodeType":"YulIf","src":"1180:63:88"}]},"name":"abi_decode_uint40","nativeSrc":"1084:165:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1111:6:88","nodeType":"YulTypedName","src":"1111:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1122:5:88","nodeType":"YulTypedName","src":"1122:5:88","type":""}],"src":"1084:165:88"},{"body":{"nativeSrc":"1302:131:88","nodeType":"YulBlock","src":"1302:131:88","statements":[{"nativeSrc":"1312:29:88","nodeType":"YulAssignment","src":"1312:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"1334:6:88","nodeType":"YulIdentifier","src":"1334:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"1321:12:88","nodeType":"YulIdentifier","src":"1321:12:88"},"nativeSrc":"1321:20:88","nodeType":"YulFunctionCall","src":"1321:20:88"},"variableNames":[{"name":"value","nativeSrc":"1312:5:88","nodeType":"YulIdentifier","src":"1312:5:88"}]},{"body":{"nativeSrc":"1411:16:88","nodeType":"YulBlock","src":"1411:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1420:1:88","nodeType":"YulLiteral","src":"1420:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1423:1:88","nodeType":"YulLiteral","src":"1423:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1413:6:88","nodeType":"YulIdentifier","src":"1413:6:88"},"nativeSrc":"1413:12:88","nodeType":"YulFunctionCall","src":"1413:12:88"},"nativeSrc":"1413:12:88","nodeType":"YulExpressionStatement","src":"1413:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1363:5:88","nodeType":"YulIdentifier","src":"1363:5:88"},{"arguments":[{"name":"value","nativeSrc":"1374:5:88","nodeType":"YulIdentifier","src":"1374:5:88"},{"kind":"number","nativeSrc":"1381:26:88","nodeType":"YulLiteral","src":"1381:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1370:3:88","nodeType":"YulIdentifier","src":"1370:3:88"},"nativeSrc":"1370:38:88","nodeType":"YulFunctionCall","src":"1370:38:88"}],"functionName":{"name":"eq","nativeSrc":"1360:2:88","nodeType":"YulIdentifier","src":"1360:2:88"},"nativeSrc":"1360:49:88","nodeType":"YulFunctionCall","src":"1360:49:88"}],"functionName":{"name":"iszero","nativeSrc":"1353:6:88","nodeType":"YulIdentifier","src":"1353:6:88"},"nativeSrc":"1353:57:88","nodeType":"YulFunctionCall","src":"1353:57:88"},"nativeSrc":"1350:77:88","nodeType":"YulIf","src":"1350:77:88"}]},"name":"abi_decode_uint96","nativeSrc":"1254:179:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1281:6:88","nodeType":"YulTypedName","src":"1281:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1292:5:88","nodeType":"YulTypedName","src":"1292:5:88","type":""}],"src":"1254:179:88"},{"body":{"nativeSrc":"1622:565:88","nodeType":"YulBlock","src":"1622:565:88","statements":[{"body":{"nativeSrc":"1669:16:88","nodeType":"YulBlock","src":"1669:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1678:1:88","nodeType":"YulLiteral","src":"1678:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1681:1:88","nodeType":"YulLiteral","src":"1681:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1671:6:88","nodeType":"YulIdentifier","src":"1671:6:88"},"nativeSrc":"1671:12:88","nodeType":"YulFunctionCall","src":"1671:12:88"},"nativeSrc":"1671:12:88","nodeType":"YulExpressionStatement","src":"1671:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1643:7:88","nodeType":"YulIdentifier","src":"1643:7:88"},{"name":"headStart","nativeSrc":"1652:9:88","nodeType":"YulIdentifier","src":"1652:9:88"}],"functionName":{"name":"sub","nativeSrc":"1639:3:88","nodeType":"YulIdentifier","src":"1639:3:88"},"nativeSrc":"1639:23:88","nodeType":"YulFunctionCall","src":"1639:23:88"},{"kind":"number","nativeSrc":"1664:3:88","nodeType":"YulLiteral","src":"1664:3:88","type":"","value":"608"}],"functionName":{"name":"slt","nativeSrc":"1635:3:88","nodeType":"YulIdentifier","src":"1635:3:88"},"nativeSrc":"1635:33:88","nodeType":"YulFunctionCall","src":"1635:33:88"},"nativeSrc":"1632:53:88","nodeType":"YulIf","src":"1632:53:88"},{"nativeSrc":"1694:67:88","nodeType":"YulAssignment","src":"1694:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1742:9:88","nodeType":"YulIdentifier","src":"1742:9:88"},{"name":"dataEnd","nativeSrc":"1753:7:88","nodeType":"YulIdentifier","src":"1753:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"1704:37:88","nodeType":"YulIdentifier","src":"1704:37:88"},"nativeSrc":"1704:57:88","nodeType":"YulFunctionCall","src":"1704:57:88"},"variableNames":[{"name":"value0","nativeSrc":"1694:6:88","nodeType":"YulIdentifier","src":"1694:6:88"}]},{"nativeSrc":"1770:14:88","nodeType":"YulVariableDeclaration","src":"1770:14:88","value":{"kind":"number","nativeSrc":"1783:1:88","nodeType":"YulLiteral","src":"1783:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1774:5:88","nodeType":"YulTypedName","src":"1774:5:88","type":""}]},{"nativeSrc":"1793:42:88","nodeType":"YulAssignment","src":"1793:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1819:9:88","nodeType":"YulIdentifier","src":"1819:9:88"},{"kind":"number","nativeSrc":"1830:3:88","nodeType":"YulLiteral","src":"1830:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"1815:3:88","nodeType":"YulIdentifier","src":"1815:3:88"},"nativeSrc":"1815:19:88","nodeType":"YulFunctionCall","src":"1815:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1802:12:88","nodeType":"YulIdentifier","src":"1802:12:88"},"nativeSrc":"1802:33:88","nodeType":"YulFunctionCall","src":"1802:33:88"},"variableNames":[{"name":"value","nativeSrc":"1793:5:88","nodeType":"YulIdentifier","src":"1793:5:88"}]},{"nativeSrc":"1844:15:88","nodeType":"YulAssignment","src":"1844:15:88","value":{"name":"value","nativeSrc":"1854:5:88","nodeType":"YulIdentifier","src":"1854:5:88"},"variableNames":[{"name":"value1","nativeSrc":"1844:6:88","nodeType":"YulIdentifier","src":"1844:6:88"}]},{"nativeSrc":"1868:16:88","nodeType":"YulVariableDeclaration","src":"1868:16:88","value":{"kind":"number","nativeSrc":"1883:1:88","nodeType":"YulLiteral","src":"1883:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"1872:7:88","nodeType":"YulTypedName","src":"1872:7:88","type":""}]},{"nativeSrc":"1893:44:88","nodeType":"YulAssignment","src":"1893:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1921:9:88","nodeType":"YulIdentifier","src":"1921:9:88"},{"kind":"number","nativeSrc":"1932:3:88","nodeType":"YulLiteral","src":"1932:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"1917:3:88","nodeType":"YulIdentifier","src":"1917:3:88"},"nativeSrc":"1917:19:88","nodeType":"YulFunctionCall","src":"1917:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"1904:12:88","nodeType":"YulIdentifier","src":"1904:12:88"},"nativeSrc":"1904:33:88","nodeType":"YulFunctionCall","src":"1904:33:88"},"variableNames":[{"name":"value_1","nativeSrc":"1893:7:88","nodeType":"YulIdentifier","src":"1893:7:88"}]},{"nativeSrc":"1946:17:88","nodeType":"YulAssignment","src":"1946:17:88","value":{"name":"value_1","nativeSrc":"1956:7:88","nodeType":"YulIdentifier","src":"1956:7:88"},"variableNames":[{"name":"value2","nativeSrc":"1946:6:88","nodeType":"YulIdentifier","src":"1946:6:88"}]},{"nativeSrc":"1972:16:88","nodeType":"YulVariableDeclaration","src":"1972:16:88","value":{"kind":"number","nativeSrc":"1987:1:88","nodeType":"YulLiteral","src":"1987:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"1976:7:88","nodeType":"YulTypedName","src":"1976:7:88","type":""}]},{"nativeSrc":"1997:44:88","nodeType":"YulAssignment","src":"1997:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2025:9:88","nodeType":"YulIdentifier","src":"2025:9:88"},{"kind":"number","nativeSrc":"2036:3:88","nodeType":"YulLiteral","src":"2036:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"2021:3:88","nodeType":"YulIdentifier","src":"2021:3:88"},"nativeSrc":"2021:19:88","nodeType":"YulFunctionCall","src":"2021:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"2008:12:88","nodeType":"YulIdentifier","src":"2008:12:88"},"nativeSrc":"2008:33:88","nodeType":"YulFunctionCall","src":"2008:33:88"},"variableNames":[{"name":"value_2","nativeSrc":"1997:7:88","nodeType":"YulIdentifier","src":"1997:7:88"}]},{"nativeSrc":"2050:17:88","nodeType":"YulAssignment","src":"2050:17:88","value":{"name":"value_2","nativeSrc":"2060:7:88","nodeType":"YulIdentifier","src":"2060:7:88"},"variableNames":[{"name":"value3","nativeSrc":"2050:6:88","nodeType":"YulIdentifier","src":"2050:6:88"}]},{"nativeSrc":"2076:48:88","nodeType":"YulAssignment","src":"2076:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2108:9:88","nodeType":"YulIdentifier","src":"2108:9:88"},{"kind":"number","nativeSrc":"2119:3:88","nodeType":"YulLiteral","src":"2119:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"2104:3:88","nodeType":"YulIdentifier","src":"2104:3:88"},"nativeSrc":"2104:19:88","nodeType":"YulFunctionCall","src":"2104:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"2086:17:88","nodeType":"YulIdentifier","src":"2086:17:88"},"nativeSrc":"2086:38:88","nodeType":"YulFunctionCall","src":"2086:38:88"},"variableNames":[{"name":"value4","nativeSrc":"2076:6:88","nodeType":"YulIdentifier","src":"2076:6:88"}]},{"nativeSrc":"2133:48:88","nodeType":"YulAssignment","src":"2133:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2165:9:88","nodeType":"YulIdentifier","src":"2165:9:88"},{"kind":"number","nativeSrc":"2176:3:88","nodeType":"YulLiteral","src":"2176:3:88","type":"","value":"576"}],"functionName":{"name":"add","nativeSrc":"2161:3:88","nodeType":"YulIdentifier","src":"2161:3:88"},"nativeSrc":"2161:19:88","nodeType":"YulFunctionCall","src":"2161:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"2143:17:88","nodeType":"YulIdentifier","src":"2143:17:88"},"nativeSrc":"2143:38:88","nodeType":"YulFunctionCall","src":"2143:38:88"},"variableNames":[{"name":"value5","nativeSrc":"2133:6:88","nodeType":"YulIdentifier","src":"2133:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96","nativeSrc":"1438:749:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1548:9:88","nodeType":"YulTypedName","src":"1548:9:88","type":""},{"name":"dataEnd","nativeSrc":"1559:7:88","nodeType":"YulTypedName","src":"1559:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1571:6:88","nodeType":"YulTypedName","src":"1571:6:88","type":""},{"name":"value1","nativeSrc":"1579:6:88","nodeType":"YulTypedName","src":"1579:6:88","type":""},{"name":"value2","nativeSrc":"1587:6:88","nodeType":"YulTypedName","src":"1587:6:88","type":""},{"name":"value3","nativeSrc":"1595:6:88","nodeType":"YulTypedName","src":"1595:6:88","type":""},{"name":"value4","nativeSrc":"1603:6:88","nodeType":"YulTypedName","src":"1603:6:88","type":""},{"name":"value5","nativeSrc":"1611:6:88","nodeType":"YulTypedName","src":"1611:6:88","type":""}],"src":"1438:749:88"},{"body":{"nativeSrc":"2293:76:88","nodeType":"YulBlock","src":"2293:76:88","statements":[{"nativeSrc":"2303:26:88","nodeType":"YulAssignment","src":"2303:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2315:9:88","nodeType":"YulIdentifier","src":"2315:9:88"},{"kind":"number","nativeSrc":"2326:2:88","nodeType":"YulLiteral","src":"2326:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2311:3:88","nodeType":"YulIdentifier","src":"2311:3:88"},"nativeSrc":"2311:18:88","nodeType":"YulFunctionCall","src":"2311:18:88"},"variableNames":[{"name":"tail","nativeSrc":"2303:4:88","nodeType":"YulIdentifier","src":"2303:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2345:9:88","nodeType":"YulIdentifier","src":"2345:9:88"},{"name":"value0","nativeSrc":"2356:6:88","nodeType":"YulIdentifier","src":"2356:6:88"}],"functionName":{"name":"mstore","nativeSrc":"2338:6:88","nodeType":"YulIdentifier","src":"2338:6:88"},"nativeSrc":"2338:25:88","nodeType":"YulFunctionCall","src":"2338:25:88"},"nativeSrc":"2338:25:88","nodeType":"YulExpressionStatement","src":"2338:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2192:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2262:9:88","nodeType":"YulTypedName","src":"2262:9:88","type":""},{"name":"value0","nativeSrc":"2273:6:88","nodeType":"YulTypedName","src":"2273:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2284:4:88","nodeType":"YulTypedName","src":"2284:4:88","type":""}],"src":"2192:177:88"},{"body":{"nativeSrc":"2419:86:88","nodeType":"YulBlock","src":"2419:86:88","statements":[{"body":{"nativeSrc":"2483:16:88","nodeType":"YulBlock","src":"2483:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2492:1:88","nodeType":"YulLiteral","src":"2492:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2495:1:88","nodeType":"YulLiteral","src":"2495:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2485:6:88","nodeType":"YulIdentifier","src":"2485:6:88"},"nativeSrc":"2485:12:88","nodeType":"YulFunctionCall","src":"2485:12:88"},"nativeSrc":"2485:12:88","nodeType":"YulExpressionStatement","src":"2485:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2442:5:88","nodeType":"YulIdentifier","src":"2442:5:88"},{"arguments":[{"name":"value","nativeSrc":"2453:5:88","nodeType":"YulIdentifier","src":"2453:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2468:3:88","nodeType":"YulLiteral","src":"2468:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2473:1:88","nodeType":"YulLiteral","src":"2473:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2464:3:88","nodeType":"YulIdentifier","src":"2464:3:88"},"nativeSrc":"2464:11:88","nodeType":"YulFunctionCall","src":"2464:11:88"},{"kind":"number","nativeSrc":"2477:1:88","nodeType":"YulLiteral","src":"2477:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2460:3:88","nodeType":"YulIdentifier","src":"2460:3:88"},"nativeSrc":"2460:19:88","nodeType":"YulFunctionCall","src":"2460:19:88"}],"functionName":{"name":"and","nativeSrc":"2449:3:88","nodeType":"YulIdentifier","src":"2449:3:88"},"nativeSrc":"2449:31:88","nodeType":"YulFunctionCall","src":"2449:31:88"}],"functionName":{"name":"eq","nativeSrc":"2439:2:88","nodeType":"YulIdentifier","src":"2439:2:88"},"nativeSrc":"2439:42:88","nodeType":"YulFunctionCall","src":"2439:42:88"}],"functionName":{"name":"iszero","nativeSrc":"2432:6:88","nodeType":"YulIdentifier","src":"2432:6:88"},"nativeSrc":"2432:50:88","nodeType":"YulFunctionCall","src":"2432:50:88"},"nativeSrc":"2429:70:88","nodeType":"YulIf","src":"2429:70:88"}]},"name":"validator_revert_address","nativeSrc":"2374:131:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2408:5:88","nodeType":"YulTypedName","src":"2408:5:88","type":""}],"src":"2374:131:88"},{"body":{"nativeSrc":"2580:177:88","nodeType":"YulBlock","src":"2580:177:88","statements":[{"body":{"nativeSrc":"2626:16:88","nodeType":"YulBlock","src":"2626:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2635:1:88","nodeType":"YulLiteral","src":"2635:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2638:1:88","nodeType":"YulLiteral","src":"2638:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2628:6:88","nodeType":"YulIdentifier","src":"2628:6:88"},"nativeSrc":"2628:12:88","nodeType":"YulFunctionCall","src":"2628:12:88"},"nativeSrc":"2628:12:88","nodeType":"YulExpressionStatement","src":"2628:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2601:7:88","nodeType":"YulIdentifier","src":"2601:7:88"},{"name":"headStart","nativeSrc":"2610:9:88","nodeType":"YulIdentifier","src":"2610:9:88"}],"functionName":{"name":"sub","nativeSrc":"2597:3:88","nodeType":"YulIdentifier","src":"2597:3:88"},"nativeSrc":"2597:23:88","nodeType":"YulFunctionCall","src":"2597:23:88"},{"kind":"number","nativeSrc":"2622:2:88","nodeType":"YulLiteral","src":"2622:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2593:3:88","nodeType":"YulIdentifier","src":"2593:3:88"},"nativeSrc":"2593:32:88","nodeType":"YulFunctionCall","src":"2593:32:88"},"nativeSrc":"2590:52:88","nodeType":"YulIf","src":"2590:52:88"},{"nativeSrc":"2651:36:88","nodeType":"YulVariableDeclaration","src":"2651:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2677:9:88","nodeType":"YulIdentifier","src":"2677:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"2664:12:88","nodeType":"YulIdentifier","src":"2664:12:88"},"nativeSrc":"2664:23:88","nodeType":"YulFunctionCall","src":"2664:23:88"},"variables":[{"name":"value","nativeSrc":"2655:5:88","nodeType":"YulTypedName","src":"2655:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2721:5:88","nodeType":"YulIdentifier","src":"2721:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2696:24:88","nodeType":"YulIdentifier","src":"2696:24:88"},"nativeSrc":"2696:31:88","nodeType":"YulFunctionCall","src":"2696:31:88"},"nativeSrc":"2696:31:88","nodeType":"YulExpressionStatement","src":"2696:31:88"},{"nativeSrc":"2736:15:88","nodeType":"YulAssignment","src":"2736:15:88","value":{"name":"value","nativeSrc":"2746:5:88","nodeType":"YulIdentifier","src":"2746:5:88"},"variableNames":[{"name":"value0","nativeSrc":"2736:6:88","nodeType":"YulIdentifier","src":"2736:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2510:247:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2546:9:88","nodeType":"YulTypedName","src":"2546:9:88","type":""},{"name":"dataEnd","nativeSrc":"2557:7:88","nodeType":"YulTypedName","src":"2557:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2569:6:88","nodeType":"YulTypedName","src":"2569:6:88","type":""}],"src":"2510:247:88"},{"body":{"nativeSrc":"2819:60:88","nodeType":"YulBlock","src":"2819:60:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2836:3:88","nodeType":"YulIdentifier","src":"2836:3:88"},{"arguments":[{"name":"value","nativeSrc":"2845:5:88","nodeType":"YulIdentifier","src":"2845:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2860:3:88","nodeType":"YulLiteral","src":"2860:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"2865:1:88","nodeType":"YulLiteral","src":"2865:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2856:3:88","nodeType":"YulIdentifier","src":"2856:3:88"},"nativeSrc":"2856:11:88","nodeType":"YulFunctionCall","src":"2856:11:88"},{"kind":"number","nativeSrc":"2869:1:88","nodeType":"YulLiteral","src":"2869:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2852:3:88","nodeType":"YulIdentifier","src":"2852:3:88"},"nativeSrc":"2852:19:88","nodeType":"YulFunctionCall","src":"2852:19:88"}],"functionName":{"name":"and","nativeSrc":"2841:3:88","nodeType":"YulIdentifier","src":"2841:3:88"},"nativeSrc":"2841:31:88","nodeType":"YulFunctionCall","src":"2841:31:88"}],"functionName":{"name":"mstore","nativeSrc":"2829:6:88","nodeType":"YulIdentifier","src":"2829:6:88"},"nativeSrc":"2829:44:88","nodeType":"YulFunctionCall","src":"2829:44:88"},"nativeSrc":"2829:44:88","nodeType":"YulExpressionStatement","src":"2829:44:88"}]},"name":"abi_encode_contract_IPolicyPool","nativeSrc":"2762:117:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2803:5:88","nodeType":"YulTypedName","src":"2803:5:88","type":""},{"name":"pos","nativeSrc":"2810:3:88","nodeType":"YulTypedName","src":"2810:3:88","type":""}],"src":"2762:117:88"},{"body":{"nativeSrc":"3006:102:88","nodeType":"YulBlock","src":"3006:102:88","statements":[{"nativeSrc":"3016:26:88","nodeType":"YulAssignment","src":"3016:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3028:9:88","nodeType":"YulIdentifier","src":"3028:9:88"},{"kind":"number","nativeSrc":"3039:2:88","nodeType":"YulLiteral","src":"3039:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3024:3:88","nodeType":"YulIdentifier","src":"3024:3:88"},"nativeSrc":"3024:18:88","nodeType":"YulFunctionCall","src":"3024:18:88"},"variableNames":[{"name":"tail","nativeSrc":"3016:4:88","nodeType":"YulIdentifier","src":"3016:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3058:9:88","nodeType":"YulIdentifier","src":"3058:9:88"},{"arguments":[{"name":"value0","nativeSrc":"3073:6:88","nodeType":"YulIdentifier","src":"3073:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3089:3:88","nodeType":"YulLiteral","src":"3089:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"3094:1:88","nodeType":"YulLiteral","src":"3094:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3085:3:88","nodeType":"YulIdentifier","src":"3085:3:88"},"nativeSrc":"3085:11:88","nodeType":"YulFunctionCall","src":"3085:11:88"},{"kind":"number","nativeSrc":"3098:1:88","nodeType":"YulLiteral","src":"3098:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3081:3:88","nodeType":"YulIdentifier","src":"3081:3:88"},"nativeSrc":"3081:19:88","nodeType":"YulFunctionCall","src":"3081:19:88"}],"functionName":{"name":"and","nativeSrc":"3069:3:88","nodeType":"YulIdentifier","src":"3069:3:88"},"nativeSrc":"3069:32:88","nodeType":"YulFunctionCall","src":"3069:32:88"}],"functionName":{"name":"mstore","nativeSrc":"3051:6:88","nodeType":"YulIdentifier","src":"3051:6:88"},"nativeSrc":"3051:51:88","nodeType":"YulFunctionCall","src":"3051:51:88"},"nativeSrc":"3051:51:88","nodeType":"YulExpressionStatement","src":"3051:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed","nativeSrc":"2884:224:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2975:9:88","nodeType":"YulTypedName","src":"2975:9:88","type":""},{"name":"value0","nativeSrc":"2986:6:88","nodeType":"YulTypedName","src":"2986:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2997:4:88","nodeType":"YulTypedName","src":"2997:4:88","type":""}],"src":"2884:224:88"},{"body":{"nativeSrc":"3145:95:88","nodeType":"YulBlock","src":"3145:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3162:1:88","nodeType":"YulLiteral","src":"3162:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"3169:3:88","nodeType":"YulLiteral","src":"3169:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"3174:10:88","nodeType":"YulLiteral","src":"3174:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"3165:3:88","nodeType":"YulIdentifier","src":"3165:3:88"},"nativeSrc":"3165:20:88","nodeType":"YulFunctionCall","src":"3165:20:88"}],"functionName":{"name":"mstore","nativeSrc":"3155:6:88","nodeType":"YulIdentifier","src":"3155:6:88"},"nativeSrc":"3155:31:88","nodeType":"YulFunctionCall","src":"3155:31:88"},"nativeSrc":"3155:31:88","nodeType":"YulExpressionStatement","src":"3155:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3202:1:88","nodeType":"YulLiteral","src":"3202:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"3205:4:88","nodeType":"YulLiteral","src":"3205:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3195:6:88","nodeType":"YulIdentifier","src":"3195:6:88"},"nativeSrc":"3195:15:88","nodeType":"YulFunctionCall","src":"3195:15:88"},"nativeSrc":"3195:15:88","nodeType":"YulExpressionStatement","src":"3195:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3226:1:88","nodeType":"YulLiteral","src":"3226:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"3229:4:88","nodeType":"YulLiteral","src":"3229:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3219:6:88","nodeType":"YulIdentifier","src":"3219:6:88"},"nativeSrc":"3219:15:88","nodeType":"YulFunctionCall","src":"3219:15:88"},"nativeSrc":"3219:15:88","nodeType":"YulExpressionStatement","src":"3219:15:88"}]},"name":"panic_error_0x41","nativeSrc":"3113:127:88","nodeType":"YulFunctionDefinition","src":"3113:127:88"},{"body":{"nativeSrc":"3286:209:88","nodeType":"YulBlock","src":"3286:209:88","statements":[{"nativeSrc":"3296:19:88","nodeType":"YulAssignment","src":"3296:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"3312:2:88","nodeType":"YulLiteral","src":"3312:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3306:5:88","nodeType":"YulIdentifier","src":"3306:5:88"},"nativeSrc":"3306:9:88","nodeType":"YulFunctionCall","src":"3306:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"3296:6:88","nodeType":"YulIdentifier","src":"3296:6:88"}]},{"nativeSrc":"3324:37:88","nodeType":"YulVariableDeclaration","src":"3324:37:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"3346:6:88","nodeType":"YulIdentifier","src":"3346:6:88"},{"kind":"number","nativeSrc":"3354:6:88","nodeType":"YulLiteral","src":"3354:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"add","nativeSrc":"3342:3:88","nodeType":"YulIdentifier","src":"3342:3:88"},"nativeSrc":"3342:19:88","nodeType":"YulFunctionCall","src":"3342:19:88"},"variables":[{"name":"newFreePtr","nativeSrc":"3328:10:88","nodeType":"YulTypedName","src":"3328:10:88","type":""}]},{"body":{"nativeSrc":"3436:22:88","nodeType":"YulBlock","src":"3436:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3438:16:88","nodeType":"YulIdentifier","src":"3438:16:88"},"nativeSrc":"3438:18:88","nodeType":"YulFunctionCall","src":"3438:18:88"},"nativeSrc":"3438:18:88","nodeType":"YulExpressionStatement","src":"3438:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3379:10:88","nodeType":"YulIdentifier","src":"3379:10:88"},{"kind":"number","nativeSrc":"3391:18:88","nodeType":"YulLiteral","src":"3391:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3376:2:88","nodeType":"YulIdentifier","src":"3376:2:88"},"nativeSrc":"3376:34:88","nodeType":"YulFunctionCall","src":"3376:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3415:10:88","nodeType":"YulIdentifier","src":"3415:10:88"},{"name":"memPtr","nativeSrc":"3427:6:88","nodeType":"YulIdentifier","src":"3427:6:88"}],"functionName":{"name":"lt","nativeSrc":"3412:2:88","nodeType":"YulIdentifier","src":"3412:2:88"},"nativeSrc":"3412:22:88","nodeType":"YulFunctionCall","src":"3412:22:88"}],"functionName":{"name":"or","nativeSrc":"3373:2:88","nodeType":"YulIdentifier","src":"3373:2:88"},"nativeSrc":"3373:62:88","nodeType":"YulFunctionCall","src":"3373:62:88"},"nativeSrc":"3370:88:88","nodeType":"YulIf","src":"3370:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3474:2:88","nodeType":"YulLiteral","src":"3474:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3478:10:88","nodeType":"YulIdentifier","src":"3478:10:88"}],"functionName":{"name":"mstore","nativeSrc":"3467:6:88","nodeType":"YulIdentifier","src":"3467:6:88"},"nativeSrc":"3467:22:88","nodeType":"YulFunctionCall","src":"3467:22:88"},"nativeSrc":"3467:22:88","nodeType":"YulExpressionStatement","src":"3467:22:88"}]},"name":"allocate_memory","nativeSrc":"3245:250:88","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"3275:6:88","nodeType":"YulTypedName","src":"3275:6:88","type":""}],"src":"3245:250:88"},{"body":{"nativeSrc":"3574:641:88","nodeType":"YulBlock","src":"3574:641:88","statements":[{"nativeSrc":"3584:13:88","nodeType":"YulVariableDeclaration","src":"3584:13:88","value":{"kind":"number","nativeSrc":"3596:1:88","nodeType":"YulLiteral","src":"3596:1:88","type":"","value":"0"},"variables":[{"name":"size","nativeSrc":"3588:4:88","nodeType":"YulTypedName","src":"3588:4:88","type":""}]},{"body":{"nativeSrc":"3640:22:88","nodeType":"YulBlock","src":"3640:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3642:16:88","nodeType":"YulIdentifier","src":"3642:16:88"},"nativeSrc":"3642:18:88","nodeType":"YulFunctionCall","src":"3642:18:88"},"nativeSrc":"3642:18:88","nodeType":"YulExpressionStatement","src":"3642:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3612:6:88","nodeType":"YulIdentifier","src":"3612:6:88"},{"kind":"number","nativeSrc":"3620:18:88","nodeType":"YulLiteral","src":"3620:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3609:2:88","nodeType":"YulIdentifier","src":"3609:2:88"},"nativeSrc":"3609:30:88","nodeType":"YulFunctionCall","src":"3609:30:88"},"nativeSrc":"3606:56:88","nodeType":"YulIf","src":"3606:56:88"},{"nativeSrc":"3671:43:88","nodeType":"YulVariableDeclaration","src":"3671:43:88","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3693:6:88","nodeType":"YulIdentifier","src":"3693:6:88"},{"kind":"number","nativeSrc":"3701:2:88","nodeType":"YulLiteral","src":"3701:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3689:3:88","nodeType":"YulIdentifier","src":"3689:3:88"},"nativeSrc":"3689:15:88","nodeType":"YulFunctionCall","src":"3689:15:88"},{"arguments":[{"kind":"number","nativeSrc":"3710:2:88","nodeType":"YulLiteral","src":"3710:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3706:3:88","nodeType":"YulIdentifier","src":"3706:3:88"},"nativeSrc":"3706:7:88","nodeType":"YulFunctionCall","src":"3706:7:88"}],"functionName":{"name":"and","nativeSrc":"3685:3:88","nodeType":"YulIdentifier","src":"3685:3:88"},"nativeSrc":"3685:29:88","nodeType":"YulFunctionCall","src":"3685:29:88"},"variables":[{"name":"result","nativeSrc":"3675:6:88","nodeType":"YulTypedName","src":"3675:6:88","type":""}]},{"nativeSrc":"3723:25:88","nodeType":"YulAssignment","src":"3723:25:88","value":{"arguments":[{"name":"result","nativeSrc":"3735:6:88","nodeType":"YulIdentifier","src":"3735:6:88"},{"kind":"number","nativeSrc":"3743:4:88","nodeType":"YulLiteral","src":"3743:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3731:3:88","nodeType":"YulIdentifier","src":"3731:3:88"},"nativeSrc":"3731:17:88","nodeType":"YulFunctionCall","src":"3731:17:88"},"variableNames":[{"name":"size","nativeSrc":"3723:4:88","nodeType":"YulIdentifier","src":"3723:4:88"}]},{"nativeSrc":"3757:15:88","nodeType":"YulVariableDeclaration","src":"3757:15:88","value":{"kind":"number","nativeSrc":"3771:1:88","nodeType":"YulLiteral","src":"3771:1:88","type":"","value":"0"},"variables":[{"name":"memPtr","nativeSrc":"3761:6:88","nodeType":"YulTypedName","src":"3761:6:88","type":""}]},{"nativeSrc":"3781:19:88","nodeType":"YulAssignment","src":"3781:19:88","value":{"arguments":[{"kind":"number","nativeSrc":"3797:2:88","nodeType":"YulLiteral","src":"3797:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3791:5:88","nodeType":"YulIdentifier","src":"3791:5:88"},"nativeSrc":"3791:9:88","nodeType":"YulFunctionCall","src":"3791:9:88"},"variableNames":[{"name":"memPtr","nativeSrc":"3781:6:88","nodeType":"YulIdentifier","src":"3781:6:88"}]},{"nativeSrc":"3809:60:88","nodeType":"YulVariableDeclaration","src":"3809:60:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"3831:6:88","nodeType":"YulIdentifier","src":"3831:6:88"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"3847:6:88","nodeType":"YulIdentifier","src":"3847:6:88"},{"kind":"number","nativeSrc":"3855:2:88","nodeType":"YulLiteral","src":"3855:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3843:3:88","nodeType":"YulIdentifier","src":"3843:3:88"},"nativeSrc":"3843:15:88","nodeType":"YulFunctionCall","src":"3843:15:88"},{"arguments":[{"kind":"number","nativeSrc":"3864:2:88","nodeType":"YulLiteral","src":"3864:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3860:3:88","nodeType":"YulIdentifier","src":"3860:3:88"},"nativeSrc":"3860:7:88","nodeType":"YulFunctionCall","src":"3860:7:88"}],"functionName":{"name":"and","nativeSrc":"3839:3:88","nodeType":"YulIdentifier","src":"3839:3:88"},"nativeSrc":"3839:29:88","nodeType":"YulFunctionCall","src":"3839:29:88"}],"functionName":{"name":"add","nativeSrc":"3827:3:88","nodeType":"YulIdentifier","src":"3827:3:88"},"nativeSrc":"3827:42:88","nodeType":"YulFunctionCall","src":"3827:42:88"},"variables":[{"name":"newFreePtr","nativeSrc":"3813:10:88","nodeType":"YulTypedName","src":"3813:10:88","type":""}]},{"body":{"nativeSrc":"3944:22:88","nodeType":"YulBlock","src":"3944:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3946:16:88","nodeType":"YulIdentifier","src":"3946:16:88"},"nativeSrc":"3946:18:88","nodeType":"YulFunctionCall","src":"3946:18:88"},"nativeSrc":"3946:18:88","nodeType":"YulExpressionStatement","src":"3946:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3887:10:88","nodeType":"YulIdentifier","src":"3887:10:88"},{"kind":"number","nativeSrc":"3899:18:88","nodeType":"YulLiteral","src":"3899:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3884:2:88","nodeType":"YulIdentifier","src":"3884:2:88"},"nativeSrc":"3884:34:88","nodeType":"YulFunctionCall","src":"3884:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3923:10:88","nodeType":"YulIdentifier","src":"3923:10:88"},{"name":"memPtr","nativeSrc":"3935:6:88","nodeType":"YulIdentifier","src":"3935:6:88"}],"functionName":{"name":"lt","nativeSrc":"3920:2:88","nodeType":"YulIdentifier","src":"3920:2:88"},"nativeSrc":"3920:22:88","nodeType":"YulFunctionCall","src":"3920:22:88"}],"functionName":{"name":"or","nativeSrc":"3881:2:88","nodeType":"YulIdentifier","src":"3881:2:88"},"nativeSrc":"3881:62:88","nodeType":"YulFunctionCall","src":"3881:62:88"},"nativeSrc":"3878:88:88","nodeType":"YulIf","src":"3878:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3982:2:88","nodeType":"YulLiteral","src":"3982:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3986:10:88","nodeType":"YulIdentifier","src":"3986:10:88"}],"functionName":{"name":"mstore","nativeSrc":"3975:6:88","nodeType":"YulIdentifier","src":"3975:6:88"},"nativeSrc":"3975:22:88","nodeType":"YulFunctionCall","src":"3975:22:88"},"nativeSrc":"3975:22:88","nodeType":"YulExpressionStatement","src":"3975:22:88"},{"nativeSrc":"4006:15:88","nodeType":"YulAssignment","src":"4006:15:88","value":{"name":"memPtr","nativeSrc":"4015:6:88","nodeType":"YulIdentifier","src":"4015:6:88"},"variableNames":[{"name":"array","nativeSrc":"4006:5:88","nodeType":"YulIdentifier","src":"4006:5:88"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"4037:6:88","nodeType":"YulIdentifier","src":"4037:6:88"},{"name":"length","nativeSrc":"4045:6:88","nodeType":"YulIdentifier","src":"4045:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4030:6:88","nodeType":"YulIdentifier","src":"4030:6:88"},"nativeSrc":"4030:22:88","nodeType":"YulFunctionCall","src":"4030:22:88"},"nativeSrc":"4030:22:88","nodeType":"YulExpressionStatement","src":"4030:22:88"},{"body":{"nativeSrc":"4090:16:88","nodeType":"YulBlock","src":"4090:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4099:1:88","nodeType":"YulLiteral","src":"4099:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4102:1:88","nodeType":"YulLiteral","src":"4102:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4092:6:88","nodeType":"YulIdentifier","src":"4092:6:88"},"nativeSrc":"4092:12:88","nodeType":"YulFunctionCall","src":"4092:12:88"},"nativeSrc":"4092:12:88","nodeType":"YulExpressionStatement","src":"4092:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4071:3:88","nodeType":"YulIdentifier","src":"4071:3:88"},{"name":"length","nativeSrc":"4076:6:88","nodeType":"YulIdentifier","src":"4076:6:88"}],"functionName":{"name":"add","nativeSrc":"4067:3:88","nodeType":"YulIdentifier","src":"4067:3:88"},"nativeSrc":"4067:16:88","nodeType":"YulFunctionCall","src":"4067:16:88"},{"name":"end","nativeSrc":"4085:3:88","nodeType":"YulIdentifier","src":"4085:3:88"}],"functionName":{"name":"gt","nativeSrc":"4064:2:88","nodeType":"YulIdentifier","src":"4064:2:88"},"nativeSrc":"4064:25:88","nodeType":"YulFunctionCall","src":"4064:25:88"},"nativeSrc":"4061:45:88","nodeType":"YulIf","src":"4061:45:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4132:6:88","nodeType":"YulIdentifier","src":"4132:6:88"},{"kind":"number","nativeSrc":"4140:4:88","nodeType":"YulLiteral","src":"4140:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4128:3:88","nodeType":"YulIdentifier","src":"4128:3:88"},"nativeSrc":"4128:17:88","nodeType":"YulFunctionCall","src":"4128:17:88"},{"name":"src","nativeSrc":"4147:3:88","nodeType":"YulIdentifier","src":"4147:3:88"},{"name":"length","nativeSrc":"4152:6:88","nodeType":"YulIdentifier","src":"4152:6:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"4115:12:88","nodeType":"YulIdentifier","src":"4115:12:88"},"nativeSrc":"4115:44:88","nodeType":"YulFunctionCall","src":"4115:44:88"},"nativeSrc":"4115:44:88","nodeType":"YulExpressionStatement","src":"4115:44:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4183:6:88","nodeType":"YulIdentifier","src":"4183:6:88"},{"name":"length","nativeSrc":"4191:6:88","nodeType":"YulIdentifier","src":"4191:6:88"}],"functionName":{"name":"add","nativeSrc":"4179:3:88","nodeType":"YulIdentifier","src":"4179:3:88"},"nativeSrc":"4179:19:88","nodeType":"YulFunctionCall","src":"4179:19:88"},{"kind":"number","nativeSrc":"4200:4:88","nodeType":"YulLiteral","src":"4200:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4175:3:88","nodeType":"YulIdentifier","src":"4175:3:88"},"nativeSrc":"4175:30:88","nodeType":"YulFunctionCall","src":"4175:30:88"},{"kind":"number","nativeSrc":"4207:1:88","nodeType":"YulLiteral","src":"4207:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4168:6:88","nodeType":"YulIdentifier","src":"4168:6:88"},"nativeSrc":"4168:41:88","nodeType":"YulFunctionCall","src":"4168:41:88"},"nativeSrc":"4168:41:88","nodeType":"YulExpressionStatement","src":"4168:41:88"}]},"name":"abi_decode_available_length_bytes","nativeSrc":"3500:715:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3543:3:88","nodeType":"YulTypedName","src":"3543:3:88","type":""},{"name":"length","nativeSrc":"3548:6:88","nodeType":"YulTypedName","src":"3548:6:88","type":""},{"name":"end","nativeSrc":"3556:3:88","nodeType":"YulTypedName","src":"3556:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3564:5:88","nodeType":"YulTypedName","src":"3564:5:88","type":""}],"src":"3500:715:88"},{"body":{"nativeSrc":"4316:488:88","nodeType":"YulBlock","src":"4316:488:88","statements":[{"body":{"nativeSrc":"4362:16:88","nodeType":"YulBlock","src":"4362:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4371:1:88","nodeType":"YulLiteral","src":"4371:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4374:1:88","nodeType":"YulLiteral","src":"4374:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4364:6:88","nodeType":"YulIdentifier","src":"4364:6:88"},"nativeSrc":"4364:12:88","nodeType":"YulFunctionCall","src":"4364:12:88"},"nativeSrc":"4364:12:88","nodeType":"YulExpressionStatement","src":"4364:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4337:7:88","nodeType":"YulIdentifier","src":"4337:7:88"},{"name":"headStart","nativeSrc":"4346:9:88","nodeType":"YulIdentifier","src":"4346:9:88"}],"functionName":{"name":"sub","nativeSrc":"4333:3:88","nodeType":"YulIdentifier","src":"4333:3:88"},"nativeSrc":"4333:23:88","nodeType":"YulFunctionCall","src":"4333:23:88"},{"kind":"number","nativeSrc":"4358:2:88","nodeType":"YulLiteral","src":"4358:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4329:3:88","nodeType":"YulIdentifier","src":"4329:3:88"},"nativeSrc":"4329:32:88","nodeType":"YulFunctionCall","src":"4329:32:88"},"nativeSrc":"4326:52:88","nodeType":"YulIf","src":"4326:52:88"},{"nativeSrc":"4387:36:88","nodeType":"YulVariableDeclaration","src":"4387:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4413:9:88","nodeType":"YulIdentifier","src":"4413:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"4400:12:88","nodeType":"YulIdentifier","src":"4400:12:88"},"nativeSrc":"4400:23:88","nodeType":"YulFunctionCall","src":"4400:23:88"},"variables":[{"name":"value","nativeSrc":"4391:5:88","nodeType":"YulTypedName","src":"4391:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4457:5:88","nodeType":"YulIdentifier","src":"4457:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4432:24:88","nodeType":"YulIdentifier","src":"4432:24:88"},"nativeSrc":"4432:31:88","nodeType":"YulFunctionCall","src":"4432:31:88"},"nativeSrc":"4432:31:88","nodeType":"YulExpressionStatement","src":"4432:31:88"},{"nativeSrc":"4472:15:88","nodeType":"YulAssignment","src":"4472:15:88","value":{"name":"value","nativeSrc":"4482:5:88","nodeType":"YulIdentifier","src":"4482:5:88"},"variableNames":[{"name":"value0","nativeSrc":"4472:6:88","nodeType":"YulIdentifier","src":"4472:6:88"}]},{"nativeSrc":"4496:46:88","nodeType":"YulVariableDeclaration","src":"4496:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4527:9:88","nodeType":"YulIdentifier","src":"4527:9:88"},{"kind":"number","nativeSrc":"4538:2:88","nodeType":"YulLiteral","src":"4538:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4523:3:88","nodeType":"YulIdentifier","src":"4523:3:88"},"nativeSrc":"4523:18:88","nodeType":"YulFunctionCall","src":"4523:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"4510:12:88","nodeType":"YulIdentifier","src":"4510:12:88"},"nativeSrc":"4510:32:88","nodeType":"YulFunctionCall","src":"4510:32:88"},"variables":[{"name":"offset","nativeSrc":"4500:6:88","nodeType":"YulTypedName","src":"4500:6:88","type":""}]},{"body":{"nativeSrc":"4585:16:88","nodeType":"YulBlock","src":"4585:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4594:1:88","nodeType":"YulLiteral","src":"4594:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4597:1:88","nodeType":"YulLiteral","src":"4597:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4587:6:88","nodeType":"YulIdentifier","src":"4587:6:88"},"nativeSrc":"4587:12:88","nodeType":"YulFunctionCall","src":"4587:12:88"},"nativeSrc":"4587:12:88","nodeType":"YulExpressionStatement","src":"4587:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4557:6:88","nodeType":"YulIdentifier","src":"4557:6:88"},{"kind":"number","nativeSrc":"4565:18:88","nodeType":"YulLiteral","src":"4565:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4554:2:88","nodeType":"YulIdentifier","src":"4554:2:88"},"nativeSrc":"4554:30:88","nodeType":"YulFunctionCall","src":"4554:30:88"},"nativeSrc":"4551:50:88","nodeType":"YulIf","src":"4551:50:88"},{"nativeSrc":"4610:32:88","nodeType":"YulVariableDeclaration","src":"4610:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4624:9:88","nodeType":"YulIdentifier","src":"4624:9:88"},{"name":"offset","nativeSrc":"4635:6:88","nodeType":"YulIdentifier","src":"4635:6:88"}],"functionName":{"name":"add","nativeSrc":"4620:3:88","nodeType":"YulIdentifier","src":"4620:3:88"},"nativeSrc":"4620:22:88","nodeType":"YulFunctionCall","src":"4620:22:88"},"variables":[{"name":"_1","nativeSrc":"4614:2:88","nodeType":"YulTypedName","src":"4614:2:88","type":""}]},{"body":{"nativeSrc":"4690:16:88","nodeType":"YulBlock","src":"4690:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4699:1:88","nodeType":"YulLiteral","src":"4699:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4702:1:88","nodeType":"YulLiteral","src":"4702:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4692:6:88","nodeType":"YulIdentifier","src":"4692:6:88"},"nativeSrc":"4692:12:88","nodeType":"YulFunctionCall","src":"4692:12:88"},"nativeSrc":"4692:12:88","nodeType":"YulExpressionStatement","src":"4692:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4669:2:88","nodeType":"YulIdentifier","src":"4669:2:88"},{"kind":"number","nativeSrc":"4673:4:88","nodeType":"YulLiteral","src":"4673:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4665:3:88","nodeType":"YulIdentifier","src":"4665:3:88"},"nativeSrc":"4665:13:88","nodeType":"YulFunctionCall","src":"4665:13:88"},{"name":"dataEnd","nativeSrc":"4680:7:88","nodeType":"YulIdentifier","src":"4680:7:88"}],"functionName":{"name":"slt","nativeSrc":"4661:3:88","nodeType":"YulIdentifier","src":"4661:3:88"},"nativeSrc":"4661:27:88","nodeType":"YulFunctionCall","src":"4661:27:88"}],"functionName":{"name":"iszero","nativeSrc":"4654:6:88","nodeType":"YulIdentifier","src":"4654:6:88"},"nativeSrc":"4654:35:88","nodeType":"YulFunctionCall","src":"4654:35:88"},"nativeSrc":"4651:55:88","nodeType":"YulIf","src":"4651:55:88"},{"nativeSrc":"4715:83:88","nodeType":"YulAssignment","src":"4715:83:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4763:2:88","nodeType":"YulIdentifier","src":"4763:2:88"},{"kind":"number","nativeSrc":"4767:2:88","nodeType":"YulLiteral","src":"4767:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4759:3:88","nodeType":"YulIdentifier","src":"4759:3:88"},"nativeSrc":"4759:11:88","nodeType":"YulFunctionCall","src":"4759:11:88"},{"arguments":[{"name":"_1","nativeSrc":"4785:2:88","nodeType":"YulIdentifier","src":"4785:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"4772:12:88","nodeType":"YulIdentifier","src":"4772:12:88"},"nativeSrc":"4772:16:88","nodeType":"YulFunctionCall","src":"4772:16:88"},{"name":"dataEnd","nativeSrc":"4790:7:88","nodeType":"YulIdentifier","src":"4790:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"4725:33:88","nodeType":"YulIdentifier","src":"4725:33:88"},"nativeSrc":"4725:73:88","nodeType":"YulFunctionCall","src":"4725:73:88"},"variableNames":[{"name":"value1","nativeSrc":"4715:6:88","nodeType":"YulIdentifier","src":"4715:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nativeSrc":"4220:584:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4274:9:88","nodeType":"YulTypedName","src":"4274:9:88","type":""},{"name":"dataEnd","nativeSrc":"4285:7:88","nodeType":"YulTypedName","src":"4285:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4297:6:88","nodeType":"YulTypedName","src":"4297:6:88","type":""},{"name":"value1","nativeSrc":"4305:6:88","nodeType":"YulTypedName","src":"4305:6:88","type":""}],"src":"4220:584:88"},{"body":{"nativeSrc":"4910:102:88","nodeType":"YulBlock","src":"4910:102:88","statements":[{"nativeSrc":"4920:26:88","nodeType":"YulAssignment","src":"4920:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4932:9:88","nodeType":"YulIdentifier","src":"4932:9:88"},{"kind":"number","nativeSrc":"4943:2:88","nodeType":"YulLiteral","src":"4943:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4928:3:88","nodeType":"YulIdentifier","src":"4928:3:88"},"nativeSrc":"4928:18:88","nodeType":"YulFunctionCall","src":"4928:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4920:4:88","nodeType":"YulIdentifier","src":"4920:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4962:9:88","nodeType":"YulIdentifier","src":"4962:9:88"},{"arguments":[{"name":"value0","nativeSrc":"4977:6:88","nodeType":"YulIdentifier","src":"4977:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4993:3:88","nodeType":"YulLiteral","src":"4993:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"4998:1:88","nodeType":"YulLiteral","src":"4998:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"4989:3:88","nodeType":"YulIdentifier","src":"4989:3:88"},"nativeSrc":"4989:11:88","nodeType":"YulFunctionCall","src":"4989:11:88"},{"kind":"number","nativeSrc":"5002:1:88","nodeType":"YulLiteral","src":"5002:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4985:3:88","nodeType":"YulIdentifier","src":"4985:3:88"},"nativeSrc":"4985:19:88","nodeType":"YulFunctionCall","src":"4985:19:88"}],"functionName":{"name":"and","nativeSrc":"4973:3:88","nodeType":"YulIdentifier","src":"4973:3:88"},"nativeSrc":"4973:32:88","nodeType":"YulFunctionCall","src":"4973:32:88"}],"functionName":{"name":"mstore","nativeSrc":"4955:6:88","nodeType":"YulIdentifier","src":"4955:6:88"},"nativeSrc":"4955:51:88","nodeType":"YulFunctionCall","src":"4955:51:88"},"nativeSrc":"4955:51:88","nodeType":"YulExpressionStatement","src":"4955:51:88"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4809:203:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4879:9:88","nodeType":"YulTypedName","src":"4879:9:88","type":""},{"name":"value0","nativeSrc":"4890:6:88","nodeType":"YulTypedName","src":"4890:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4901:4:88","nodeType":"YulTypedName","src":"4901:4:88","type":""}],"src":"4809:203:88"},{"body":{"nativeSrc":"5118:76:88","nodeType":"YulBlock","src":"5118:76:88","statements":[{"nativeSrc":"5128:26:88","nodeType":"YulAssignment","src":"5128:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5140:9:88","nodeType":"YulIdentifier","src":"5140:9:88"},{"kind":"number","nativeSrc":"5151:2:88","nodeType":"YulLiteral","src":"5151:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5136:3:88","nodeType":"YulIdentifier","src":"5136:3:88"},"nativeSrc":"5136:18:88","nodeType":"YulFunctionCall","src":"5136:18:88"},"variableNames":[{"name":"tail","nativeSrc":"5128:4:88","nodeType":"YulIdentifier","src":"5128:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5170:9:88","nodeType":"YulIdentifier","src":"5170:9:88"},{"name":"value0","nativeSrc":"5181:6:88","nodeType":"YulIdentifier","src":"5181:6:88"}],"functionName":{"name":"mstore","nativeSrc":"5163:6:88","nodeType":"YulIdentifier","src":"5163:6:88"},"nativeSrc":"5163:25:88","nodeType":"YulFunctionCall","src":"5163:25:88"},"nativeSrc":"5163:25:88","nodeType":"YulExpressionStatement","src":"5163:25:88"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"5017:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5087:9:88","nodeType":"YulTypedName","src":"5087:9:88","type":""},{"name":"value0","nativeSrc":"5098:6:88","nodeType":"YulTypedName","src":"5098:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5109:4:88","nodeType":"YulTypedName","src":"5109:4:88","type":""}],"src":"5017:177:88"},{"body":{"nativeSrc":"5269:156:88","nodeType":"YulBlock","src":"5269:156:88","statements":[{"body":{"nativeSrc":"5315:16:88","nodeType":"YulBlock","src":"5315:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5324:1:88","nodeType":"YulLiteral","src":"5324:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5327:1:88","nodeType":"YulLiteral","src":"5327:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5317:6:88","nodeType":"YulIdentifier","src":"5317:6:88"},"nativeSrc":"5317:12:88","nodeType":"YulFunctionCall","src":"5317:12:88"},"nativeSrc":"5317:12:88","nodeType":"YulExpressionStatement","src":"5317:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5290:7:88","nodeType":"YulIdentifier","src":"5290:7:88"},{"name":"headStart","nativeSrc":"5299:9:88","nodeType":"YulIdentifier","src":"5299:9:88"}],"functionName":{"name":"sub","nativeSrc":"5286:3:88","nodeType":"YulIdentifier","src":"5286:3:88"},"nativeSrc":"5286:23:88","nodeType":"YulFunctionCall","src":"5286:23:88"},{"kind":"number","nativeSrc":"5311:2:88","nodeType":"YulLiteral","src":"5311:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5282:3:88","nodeType":"YulIdentifier","src":"5282:3:88"},"nativeSrc":"5282:32:88","nodeType":"YulFunctionCall","src":"5282:32:88"},"nativeSrc":"5279:52:88","nodeType":"YulIf","src":"5279:52:88"},{"nativeSrc":"5340:14:88","nodeType":"YulVariableDeclaration","src":"5340:14:88","value":{"kind":"number","nativeSrc":"5353:1:88","nodeType":"YulLiteral","src":"5353:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5344:5:88","nodeType":"YulTypedName","src":"5344:5:88","type":""}]},{"nativeSrc":"5363:32:88","nodeType":"YulAssignment","src":"5363:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5385:9:88","nodeType":"YulIdentifier","src":"5385:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5372:12:88","nodeType":"YulIdentifier","src":"5372:12:88"},"nativeSrc":"5372:23:88","nodeType":"YulFunctionCall","src":"5372:23:88"},"variableNames":[{"name":"value","nativeSrc":"5363:5:88","nodeType":"YulIdentifier","src":"5363:5:88"}]},{"nativeSrc":"5404:15:88","nodeType":"YulAssignment","src":"5404:15:88","value":{"name":"value","nativeSrc":"5414:5:88","nodeType":"YulIdentifier","src":"5414:5:88"},"variableNames":[{"name":"value0","nativeSrc":"5404:6:88","nodeType":"YulIdentifier","src":"5404:6:88"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"5199:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5235:9:88","nodeType":"YulTypedName","src":"5235:9:88","type":""},{"name":"dataEnd","nativeSrc":"5246:7:88","nodeType":"YulTypedName","src":"5246:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5258:6:88","nodeType":"YulTypedName","src":"5258:6:88","type":""}],"src":"5199:226:88"},{"body":{"nativeSrc":"5612:1011:88","nodeType":"YulBlock","src":"5612:1011:88","statements":[{"body":{"nativeSrc":"5659:16:88","nodeType":"YulBlock","src":"5659:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5668:1:88","nodeType":"YulLiteral","src":"5668:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5671:1:88","nodeType":"YulLiteral","src":"5671:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5661:6:88","nodeType":"YulIdentifier","src":"5661:6:88"},"nativeSrc":"5661:12:88","nodeType":"YulFunctionCall","src":"5661:12:88"},"nativeSrc":"5661:12:88","nodeType":"YulExpressionStatement","src":"5661:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5633:7:88","nodeType":"YulIdentifier","src":"5633:7:88"},{"name":"headStart","nativeSrc":"5642:9:88","nodeType":"YulIdentifier","src":"5642:9:88"}],"functionName":{"name":"sub","nativeSrc":"5629:3:88","nodeType":"YulIdentifier","src":"5629:3:88"},"nativeSrc":"5629:23:88","nodeType":"YulFunctionCall","src":"5629:23:88"},{"kind":"number","nativeSrc":"5654:3:88","nodeType":"YulLiteral","src":"5654:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"5625:3:88","nodeType":"YulIdentifier","src":"5625:3:88"},"nativeSrc":"5625:33:88","nodeType":"YulFunctionCall","src":"5625:33:88"},"nativeSrc":"5622:53:88","nodeType":"YulIf","src":"5622:53:88"},{"nativeSrc":"5684:37:88","nodeType":"YulVariableDeclaration","src":"5684:37:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5711:9:88","nodeType":"YulIdentifier","src":"5711:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"5698:12:88","nodeType":"YulIdentifier","src":"5698:12:88"},"nativeSrc":"5698:23:88","nodeType":"YulFunctionCall","src":"5698:23:88"},"variables":[{"name":"offset","nativeSrc":"5688:6:88","nodeType":"YulTypedName","src":"5688:6:88","type":""}]},{"body":{"nativeSrc":"5764:16:88","nodeType":"YulBlock","src":"5764:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5773:1:88","nodeType":"YulLiteral","src":"5773:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5776:1:88","nodeType":"YulLiteral","src":"5776:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5766:6:88","nodeType":"YulIdentifier","src":"5766:6:88"},"nativeSrc":"5766:12:88","nodeType":"YulFunctionCall","src":"5766:12:88"},"nativeSrc":"5766:12:88","nodeType":"YulExpressionStatement","src":"5766:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5736:6:88","nodeType":"YulIdentifier","src":"5736:6:88"},{"kind":"number","nativeSrc":"5744:18:88","nodeType":"YulLiteral","src":"5744:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5733:2:88","nodeType":"YulIdentifier","src":"5733:2:88"},"nativeSrc":"5733:30:88","nodeType":"YulFunctionCall","src":"5733:30:88"},"nativeSrc":"5730:50:88","nodeType":"YulIf","src":"5730:50:88"},{"nativeSrc":"5789:32:88","nodeType":"YulVariableDeclaration","src":"5789:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5803:9:88","nodeType":"YulIdentifier","src":"5803:9:88"},{"name":"offset","nativeSrc":"5814:6:88","nodeType":"YulIdentifier","src":"5814:6:88"}],"functionName":{"name":"add","nativeSrc":"5799:3:88","nodeType":"YulIdentifier","src":"5799:3:88"},"nativeSrc":"5799:22:88","nodeType":"YulFunctionCall","src":"5799:22:88"},"variables":[{"name":"_1","nativeSrc":"5793:2:88","nodeType":"YulTypedName","src":"5793:2:88","type":""}]},{"body":{"nativeSrc":"5869:16:88","nodeType":"YulBlock","src":"5869:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5878:1:88","nodeType":"YulLiteral","src":"5878:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"5881:1:88","nodeType":"YulLiteral","src":"5881:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5871:6:88","nodeType":"YulIdentifier","src":"5871:6:88"},"nativeSrc":"5871:12:88","nodeType":"YulFunctionCall","src":"5871:12:88"},"nativeSrc":"5871:12:88","nodeType":"YulExpressionStatement","src":"5871:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5848:2:88","nodeType":"YulIdentifier","src":"5848:2:88"},{"kind":"number","nativeSrc":"5852:4:88","nodeType":"YulLiteral","src":"5852:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5844:3:88","nodeType":"YulIdentifier","src":"5844:3:88"},"nativeSrc":"5844:13:88","nodeType":"YulFunctionCall","src":"5844:13:88"},{"name":"dataEnd","nativeSrc":"5859:7:88","nodeType":"YulIdentifier","src":"5859:7:88"}],"functionName":{"name":"slt","nativeSrc":"5840:3:88","nodeType":"YulIdentifier","src":"5840:3:88"},"nativeSrc":"5840:27:88","nodeType":"YulFunctionCall","src":"5840:27:88"}],"functionName":{"name":"iszero","nativeSrc":"5833:6:88","nodeType":"YulIdentifier","src":"5833:6:88"},"nativeSrc":"5833:35:88","nodeType":"YulFunctionCall","src":"5833:35:88"},"nativeSrc":"5830:55:88","nodeType":"YulIf","src":"5830:55:88"},{"nativeSrc":"5894:85:88","nodeType":"YulAssignment","src":"5894:85:88","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5942:2:88","nodeType":"YulIdentifier","src":"5942:2:88"},{"kind":"number","nativeSrc":"5946:4:88","nodeType":"YulLiteral","src":"5946:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5938:3:88","nodeType":"YulIdentifier","src":"5938:3:88"},"nativeSrc":"5938:13:88","nodeType":"YulFunctionCall","src":"5938:13:88"},{"arguments":[{"name":"_1","nativeSrc":"5966:2:88","nodeType":"YulIdentifier","src":"5966:2:88"}],"functionName":{"name":"calldataload","nativeSrc":"5953:12:88","nodeType":"YulIdentifier","src":"5953:12:88"},"nativeSrc":"5953:16:88","nodeType":"YulFunctionCall","src":"5953:16:88"},{"name":"dataEnd","nativeSrc":"5971:7:88","nodeType":"YulIdentifier","src":"5971:7:88"}],"functionName":{"name":"abi_decode_available_length_bytes","nativeSrc":"5904:33:88","nodeType":"YulIdentifier","src":"5904:33:88"},"nativeSrc":"5904:75:88","nodeType":"YulFunctionCall","src":"5904:75:88"},"variableNames":[{"name":"value0","nativeSrc":"5894:6:88","nodeType":"YulIdentifier","src":"5894:6:88"}]},{"nativeSrc":"5988:14:88","nodeType":"YulVariableDeclaration","src":"5988:14:88","value":{"kind":"number","nativeSrc":"6001:1:88","nodeType":"YulLiteral","src":"6001:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5992:5:88","nodeType":"YulTypedName","src":"5992:5:88","type":""}]},{"nativeSrc":"6011:43:88","nodeType":"YulAssignment","src":"6011:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6037:9:88","nodeType":"YulIdentifier","src":"6037:9:88"},{"kind":"number","nativeSrc":"6048:4:88","nodeType":"YulLiteral","src":"6048:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6033:3:88","nodeType":"YulIdentifier","src":"6033:3:88"},"nativeSrc":"6033:20:88","nodeType":"YulFunctionCall","src":"6033:20:88"}],"functionName":{"name":"calldataload","nativeSrc":"6020:12:88","nodeType":"YulIdentifier","src":"6020:12:88"},"nativeSrc":"6020:34:88","nodeType":"YulFunctionCall","src":"6020:34:88"},"variableNames":[{"name":"value","nativeSrc":"6011:5:88","nodeType":"YulIdentifier","src":"6011:5:88"}]},{"nativeSrc":"6063:15:88","nodeType":"YulAssignment","src":"6063:15:88","value":{"name":"value","nativeSrc":"6073:5:88","nodeType":"YulIdentifier","src":"6073:5:88"},"variableNames":[{"name":"value1","nativeSrc":"6063:6:88","nodeType":"YulIdentifier","src":"6063:6:88"}]},{"nativeSrc":"6087:16:88","nodeType":"YulVariableDeclaration","src":"6087:16:88","value":{"kind":"number","nativeSrc":"6102:1:88","nodeType":"YulLiteral","src":"6102:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"6091:7:88","nodeType":"YulTypedName","src":"6091:7:88","type":""}]},{"nativeSrc":"6112:43:88","nodeType":"YulAssignment","src":"6112:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6140:9:88","nodeType":"YulIdentifier","src":"6140:9:88"},{"kind":"number","nativeSrc":"6151:2:88","nodeType":"YulLiteral","src":"6151:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6136:3:88","nodeType":"YulIdentifier","src":"6136:3:88"},"nativeSrc":"6136:18:88","nodeType":"YulFunctionCall","src":"6136:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6123:12:88","nodeType":"YulIdentifier","src":"6123:12:88"},"nativeSrc":"6123:32:88","nodeType":"YulFunctionCall","src":"6123:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"6112:7:88","nodeType":"YulIdentifier","src":"6112:7:88"}]},{"nativeSrc":"6164:17:88","nodeType":"YulAssignment","src":"6164:17:88","value":{"name":"value_1","nativeSrc":"6174:7:88","nodeType":"YulIdentifier","src":"6174:7:88"},"variableNames":[{"name":"value2","nativeSrc":"6164:6:88","nodeType":"YulIdentifier","src":"6164:6:88"}]},{"nativeSrc":"6190:16:88","nodeType":"YulVariableDeclaration","src":"6190:16:88","value":{"kind":"number","nativeSrc":"6205:1:88","nodeType":"YulLiteral","src":"6205:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"6194:7:88","nodeType":"YulTypedName","src":"6194:7:88","type":""}]},{"nativeSrc":"6215:43:88","nodeType":"YulAssignment","src":"6215:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6243:9:88","nodeType":"YulIdentifier","src":"6243:9:88"},{"kind":"number","nativeSrc":"6254:2:88","nodeType":"YulLiteral","src":"6254:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6239:3:88","nodeType":"YulIdentifier","src":"6239:3:88"},"nativeSrc":"6239:18:88","nodeType":"YulFunctionCall","src":"6239:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"6226:12:88","nodeType":"YulIdentifier","src":"6226:12:88"},"nativeSrc":"6226:32:88","nodeType":"YulFunctionCall","src":"6226:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"6215:7:88","nodeType":"YulIdentifier","src":"6215:7:88"}]},{"nativeSrc":"6267:17:88","nodeType":"YulAssignment","src":"6267:17:88","value":{"name":"value_2","nativeSrc":"6277:7:88","nodeType":"YulIdentifier","src":"6277:7:88"},"variableNames":[{"name":"value3","nativeSrc":"6267:6:88","nodeType":"YulIdentifier","src":"6267:6:88"}]},{"nativeSrc":"6293:16:88","nodeType":"YulVariableDeclaration","src":"6293:16:88","value":{"kind":"number","nativeSrc":"6308:1:88","nodeType":"YulLiteral","src":"6308:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"6297:7:88","nodeType":"YulTypedName","src":"6297:7:88","type":""}]},{"nativeSrc":"6318:44:88","nodeType":"YulAssignment","src":"6318:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6346:9:88","nodeType":"YulIdentifier","src":"6346:9:88"},{"kind":"number","nativeSrc":"6357:3:88","nodeType":"YulLiteral","src":"6357:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6342:3:88","nodeType":"YulIdentifier","src":"6342:3:88"},"nativeSrc":"6342:19:88","nodeType":"YulFunctionCall","src":"6342:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6329:12:88","nodeType":"YulIdentifier","src":"6329:12:88"},"nativeSrc":"6329:33:88","nodeType":"YulFunctionCall","src":"6329:33:88"},"variableNames":[{"name":"value_3","nativeSrc":"6318:7:88","nodeType":"YulIdentifier","src":"6318:7:88"}]},{"nativeSrc":"6371:17:88","nodeType":"YulAssignment","src":"6371:17:88","value":{"name":"value_3","nativeSrc":"6381:7:88","nodeType":"YulIdentifier","src":"6381:7:88"},"variableNames":[{"name":"value4","nativeSrc":"6371:6:88","nodeType":"YulIdentifier","src":"6371:6:88"}]},{"nativeSrc":"6397:16:88","nodeType":"YulVariableDeclaration","src":"6397:16:88","value":{"kind":"number","nativeSrc":"6412:1:88","nodeType":"YulLiteral","src":"6412:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"6401:7:88","nodeType":"YulTypedName","src":"6401:7:88","type":""}]},{"nativeSrc":"6422:44:88","nodeType":"YulAssignment","src":"6422:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6450:9:88","nodeType":"YulIdentifier","src":"6450:9:88"},{"kind":"number","nativeSrc":"6461:3:88","nodeType":"YulLiteral","src":"6461:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6446:3:88","nodeType":"YulIdentifier","src":"6446:3:88"},"nativeSrc":"6446:19:88","nodeType":"YulFunctionCall","src":"6446:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6433:12:88","nodeType":"YulIdentifier","src":"6433:12:88"},"nativeSrc":"6433:33:88","nodeType":"YulFunctionCall","src":"6433:33:88"},"variableNames":[{"name":"value_4","nativeSrc":"6422:7:88","nodeType":"YulIdentifier","src":"6422:7:88"}]},{"nativeSrc":"6475:17:88","nodeType":"YulAssignment","src":"6475:17:88","value":{"name":"value_4","nativeSrc":"6485:7:88","nodeType":"YulIdentifier","src":"6485:7:88"},"variableNames":[{"name":"value5","nativeSrc":"6475:6:88","nodeType":"YulIdentifier","src":"6475:6:88"}]},{"nativeSrc":"6501:48:88","nodeType":"YulVariableDeclaration","src":"6501:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6533:9:88","nodeType":"YulIdentifier","src":"6533:9:88"},{"kind":"number","nativeSrc":"6544:3:88","nodeType":"YulLiteral","src":"6544:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6529:3:88","nodeType":"YulIdentifier","src":"6529:3:88"},"nativeSrc":"6529:19:88","nodeType":"YulFunctionCall","src":"6529:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"6516:12:88","nodeType":"YulIdentifier","src":"6516:12:88"},"nativeSrc":"6516:33:88","nodeType":"YulFunctionCall","src":"6516:33:88"},"variables":[{"name":"value_5","nativeSrc":"6505:7:88","nodeType":"YulTypedName","src":"6505:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_5","nativeSrc":"6583:7:88","nodeType":"YulIdentifier","src":"6583:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6558:24:88","nodeType":"YulIdentifier","src":"6558:24:88"},"nativeSrc":"6558:33:88","nodeType":"YulFunctionCall","src":"6558:33:88"},"nativeSrc":"6558:33:88","nodeType":"YulExpressionStatement","src":"6558:33:88"},{"nativeSrc":"6600:17:88","nodeType":"YulAssignment","src":"6600:17:88","value":{"name":"value_5","nativeSrc":"6610:7:88","nodeType":"YulIdentifier","src":"6610:7:88"},"variableNames":[{"name":"value6","nativeSrc":"6600:6:88","nodeType":"YulIdentifier","src":"6600:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address","nativeSrc":"5430:1193:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5530:9:88","nodeType":"YulTypedName","src":"5530:9:88","type":""},{"name":"dataEnd","nativeSrc":"5541:7:88","nodeType":"YulTypedName","src":"5541:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5553:6:88","nodeType":"YulTypedName","src":"5553:6:88","type":""},{"name":"value1","nativeSrc":"5561:6:88","nodeType":"YulTypedName","src":"5561:6:88","type":""},{"name":"value2","nativeSrc":"5569:6:88","nodeType":"YulTypedName","src":"5569:6:88","type":""},{"name":"value3","nativeSrc":"5577:6:88","nodeType":"YulTypedName","src":"5577:6:88","type":""},{"name":"value4","nativeSrc":"5585:6:88","nodeType":"YulTypedName","src":"5585:6:88","type":""},{"name":"value5","nativeSrc":"5593:6:88","nodeType":"YulTypedName","src":"5593:6:88","type":""},{"name":"value6","nativeSrc":"5601:6:88","nodeType":"YulTypedName","src":"5601:6:88","type":""}],"src":"5430:1193:88"},{"body":{"nativeSrc":"6755:102:88","nodeType":"YulBlock","src":"6755:102:88","statements":[{"nativeSrc":"6765:26:88","nodeType":"YulAssignment","src":"6765:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6777:9:88","nodeType":"YulIdentifier","src":"6777:9:88"},{"kind":"number","nativeSrc":"6788:2:88","nodeType":"YulLiteral","src":"6788:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6773:3:88","nodeType":"YulIdentifier","src":"6773:3:88"},"nativeSrc":"6773:18:88","nodeType":"YulFunctionCall","src":"6773:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6765:4:88","nodeType":"YulIdentifier","src":"6765:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6807:9:88","nodeType":"YulIdentifier","src":"6807:9:88"},{"arguments":[{"name":"value0","nativeSrc":"6822:6:88","nodeType":"YulIdentifier","src":"6822:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6838:3:88","nodeType":"YulLiteral","src":"6838:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"6843:1:88","nodeType":"YulLiteral","src":"6843:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"6834:3:88","nodeType":"YulIdentifier","src":"6834:3:88"},"nativeSrc":"6834:11:88","nodeType":"YulFunctionCall","src":"6834:11:88"},{"kind":"number","nativeSrc":"6847:1:88","nodeType":"YulLiteral","src":"6847:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6830:3:88","nodeType":"YulIdentifier","src":"6830:3:88"},"nativeSrc":"6830:19:88","nodeType":"YulFunctionCall","src":"6830:19:88"}],"functionName":{"name":"and","nativeSrc":"6818:3:88","nodeType":"YulIdentifier","src":"6818:3:88"},"nativeSrc":"6818:32:88","nodeType":"YulFunctionCall","src":"6818:32:88"}],"functionName":{"name":"mstore","nativeSrc":"6800:6:88","nodeType":"YulIdentifier","src":"6800:6:88"},"nativeSrc":"6800:51:88","nodeType":"YulFunctionCall","src":"6800:51:88"},"nativeSrc":"6800:51:88","nodeType":"YulExpressionStatement","src":"6800:51:88"}]},"name":"abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed","nativeSrc":"6628:229:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6724:9:88","nodeType":"YulTypedName","src":"6724:9:88","type":""},{"name":"value0","nativeSrc":"6735:6:88","nodeType":"YulTypedName","src":"6735:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6746:4:88","nodeType":"YulTypedName","src":"6746:4:88","type":""}],"src":"6628:229:88"},{"body":{"nativeSrc":"6980:243:88","nodeType":"YulBlock","src":"6980:243:88","statements":[{"body":{"nativeSrc":"7027:16:88","nodeType":"YulBlock","src":"7027:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7036:1:88","nodeType":"YulLiteral","src":"7036:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7039:1:88","nodeType":"YulLiteral","src":"7039:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7029:6:88","nodeType":"YulIdentifier","src":"7029:6:88"},"nativeSrc":"7029:12:88","nodeType":"YulFunctionCall","src":"7029:12:88"},"nativeSrc":"7029:12:88","nodeType":"YulExpressionStatement","src":"7029:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7001:7:88","nodeType":"YulIdentifier","src":"7001:7:88"},{"name":"headStart","nativeSrc":"7010:9:88","nodeType":"YulIdentifier","src":"7010:9:88"}],"functionName":{"name":"sub","nativeSrc":"6997:3:88","nodeType":"YulIdentifier","src":"6997:3:88"},"nativeSrc":"6997:23:88","nodeType":"YulFunctionCall","src":"6997:23:88"},{"kind":"number","nativeSrc":"7022:3:88","nodeType":"YulLiteral","src":"7022:3:88","type":"","value":"480"}],"functionName":{"name":"slt","nativeSrc":"6993:3:88","nodeType":"YulIdentifier","src":"6993:3:88"},"nativeSrc":"6993:33:88","nodeType":"YulFunctionCall","src":"6993:33:88"},"nativeSrc":"6990:53:88","nodeType":"YulIf","src":"6990:53:88"},{"nativeSrc":"7052:67:88","nodeType":"YulAssignment","src":"7052:67:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7100:9:88","nodeType":"YulIdentifier","src":"7100:9:88"},{"name":"dataEnd","nativeSrc":"7111:7:88","nodeType":"YulIdentifier","src":"7111:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData_calldata","nativeSrc":"7062:37:88","nodeType":"YulIdentifier","src":"7062:37:88"},"nativeSrc":"7062:57:88","nodeType":"YulFunctionCall","src":"7062:57:88"},"variableNames":[{"name":"value0","nativeSrc":"7052:6:88","nodeType":"YulIdentifier","src":"7052:6:88"}]},{"nativeSrc":"7128:14:88","nodeType":"YulVariableDeclaration","src":"7128:14:88","value":{"kind":"number","nativeSrc":"7141:1:88","nodeType":"YulLiteral","src":"7141:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7132:5:88","nodeType":"YulTypedName","src":"7132:5:88","type":""}]},{"nativeSrc":"7151:42:88","nodeType":"YulAssignment","src":"7151:42:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7177:9:88","nodeType":"YulIdentifier","src":"7177:9:88"},{"kind":"number","nativeSrc":"7188:3:88","nodeType":"YulLiteral","src":"7188:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"7173:3:88","nodeType":"YulIdentifier","src":"7173:3:88"},"nativeSrc":"7173:19:88","nodeType":"YulFunctionCall","src":"7173:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7160:12:88","nodeType":"YulIdentifier","src":"7160:12:88"},"nativeSrc":"7160:33:88","nodeType":"YulFunctionCall","src":"7160:33:88"},"variableNames":[{"name":"value","nativeSrc":"7151:5:88","nodeType":"YulIdentifier","src":"7151:5:88"}]},{"nativeSrc":"7202:15:88","nodeType":"YulAssignment","src":"7202:15:88","value":{"name":"value","nativeSrc":"7212:5:88","nodeType":"YulIdentifier","src":"7212:5:88"},"variableNames":[{"name":"value1","nativeSrc":"7202:6:88","nodeType":"YulIdentifier","src":"7202:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256","nativeSrc":"6862:361:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6938:9:88","nodeType":"YulTypedName","src":"6938:9:88","type":""},{"name":"dataEnd","nativeSrc":"6949:7:88","nodeType":"YulTypedName","src":"6949:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6961:6:88","nodeType":"YulTypedName","src":"6961:6:88","type":""},{"name":"value1","nativeSrc":"6969:6:88","nodeType":"YulTypedName","src":"6969:6:88","type":""}],"src":"6862:361:88"},{"body":{"nativeSrc":"7398:726:88","nodeType":"YulBlock","src":"7398:726:88","statements":[{"body":{"nativeSrc":"7445:16:88","nodeType":"YulBlock","src":"7445:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7454:1:88","nodeType":"YulLiteral","src":"7454:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"7457:1:88","nodeType":"YulLiteral","src":"7457:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7447:6:88","nodeType":"YulIdentifier","src":"7447:6:88"},"nativeSrc":"7447:12:88","nodeType":"YulFunctionCall","src":"7447:12:88"},"nativeSrc":"7447:12:88","nodeType":"YulExpressionStatement","src":"7447:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7419:7:88","nodeType":"YulIdentifier","src":"7419:7:88"},{"name":"headStart","nativeSrc":"7428:9:88","nodeType":"YulIdentifier","src":"7428:9:88"}],"functionName":{"name":"sub","nativeSrc":"7415:3:88","nodeType":"YulIdentifier","src":"7415:3:88"},"nativeSrc":"7415:23:88","nodeType":"YulFunctionCall","src":"7415:23:88"},{"kind":"number","nativeSrc":"7440:3:88","nodeType":"YulLiteral","src":"7440:3:88","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"7411:3:88","nodeType":"YulIdentifier","src":"7411:3:88"},"nativeSrc":"7411:33:88","nodeType":"YulFunctionCall","src":"7411:33:88"},"nativeSrc":"7408:53:88","nodeType":"YulIf","src":"7408:53:88"},{"nativeSrc":"7470:14:88","nodeType":"YulVariableDeclaration","src":"7470:14:88","value":{"kind":"number","nativeSrc":"7483:1:88","nodeType":"YulLiteral","src":"7483:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7474:5:88","nodeType":"YulTypedName","src":"7474:5:88","type":""}]},{"nativeSrc":"7493:32:88","nodeType":"YulAssignment","src":"7493:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"7515:9:88","nodeType":"YulIdentifier","src":"7515:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"7502:12:88","nodeType":"YulIdentifier","src":"7502:12:88"},"nativeSrc":"7502:23:88","nodeType":"YulFunctionCall","src":"7502:23:88"},"variableNames":[{"name":"value","nativeSrc":"7493:5:88","nodeType":"YulIdentifier","src":"7493:5:88"}]},{"nativeSrc":"7534:15:88","nodeType":"YulAssignment","src":"7534:15:88","value":{"name":"value","nativeSrc":"7544:5:88","nodeType":"YulIdentifier","src":"7544:5:88"},"variableNames":[{"name":"value0","nativeSrc":"7534:6:88","nodeType":"YulIdentifier","src":"7534:6:88"}]},{"nativeSrc":"7558:16:88","nodeType":"YulVariableDeclaration","src":"7558:16:88","value":{"kind":"number","nativeSrc":"7573:1:88","nodeType":"YulLiteral","src":"7573:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"7562:7:88","nodeType":"YulTypedName","src":"7562:7:88","type":""}]},{"nativeSrc":"7583:43:88","nodeType":"YulAssignment","src":"7583:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7611:9:88","nodeType":"YulIdentifier","src":"7611:9:88"},{"kind":"number","nativeSrc":"7622:2:88","nodeType":"YulLiteral","src":"7622:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7607:3:88","nodeType":"YulIdentifier","src":"7607:3:88"},"nativeSrc":"7607:18:88","nodeType":"YulFunctionCall","src":"7607:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"7594:12:88","nodeType":"YulIdentifier","src":"7594:12:88"},"nativeSrc":"7594:32:88","nodeType":"YulFunctionCall","src":"7594:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"7583:7:88","nodeType":"YulIdentifier","src":"7583:7:88"}]},{"nativeSrc":"7635:17:88","nodeType":"YulAssignment","src":"7635:17:88","value":{"name":"value_1","nativeSrc":"7645:7:88","nodeType":"YulIdentifier","src":"7645:7:88"},"variableNames":[{"name":"value1","nativeSrc":"7635:6:88","nodeType":"YulIdentifier","src":"7635:6:88"}]},{"nativeSrc":"7661:16:88","nodeType":"YulVariableDeclaration","src":"7661:16:88","value":{"kind":"number","nativeSrc":"7676:1:88","nodeType":"YulLiteral","src":"7676:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"7665:7:88","nodeType":"YulTypedName","src":"7665:7:88","type":""}]},{"nativeSrc":"7686:43:88","nodeType":"YulAssignment","src":"7686:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7714:9:88","nodeType":"YulIdentifier","src":"7714:9:88"},{"kind":"number","nativeSrc":"7725:2:88","nodeType":"YulLiteral","src":"7725:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7710:3:88","nodeType":"YulIdentifier","src":"7710:3:88"},"nativeSrc":"7710:18:88","nodeType":"YulFunctionCall","src":"7710:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"7697:12:88","nodeType":"YulIdentifier","src":"7697:12:88"},"nativeSrc":"7697:32:88","nodeType":"YulFunctionCall","src":"7697:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"7686:7:88","nodeType":"YulIdentifier","src":"7686:7:88"}]},{"nativeSrc":"7738:17:88","nodeType":"YulAssignment","src":"7738:17:88","value":{"name":"value_2","nativeSrc":"7748:7:88","nodeType":"YulIdentifier","src":"7748:7:88"},"variableNames":[{"name":"value2","nativeSrc":"7738:6:88","nodeType":"YulIdentifier","src":"7738:6:88"}]},{"nativeSrc":"7764:47:88","nodeType":"YulAssignment","src":"7764:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7796:9:88","nodeType":"YulIdentifier","src":"7796:9:88"},{"kind":"number","nativeSrc":"7807:2:88","nodeType":"YulLiteral","src":"7807:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7792:3:88","nodeType":"YulIdentifier","src":"7792:3:88"},"nativeSrc":"7792:18:88","nodeType":"YulFunctionCall","src":"7792:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"7774:17:88","nodeType":"YulIdentifier","src":"7774:17:88"},"nativeSrc":"7774:37:88","nodeType":"YulFunctionCall","src":"7774:37:88"},"variableNames":[{"name":"value3","nativeSrc":"7764:6:88","nodeType":"YulIdentifier","src":"7764:6:88"}]},{"nativeSrc":"7820:48:88","nodeType":"YulVariableDeclaration","src":"7820:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7852:9:88","nodeType":"YulIdentifier","src":"7852:9:88"},{"kind":"number","nativeSrc":"7863:3:88","nodeType":"YulLiteral","src":"7863:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7848:3:88","nodeType":"YulIdentifier","src":"7848:3:88"},"nativeSrc":"7848:19:88","nodeType":"YulFunctionCall","src":"7848:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7835:12:88","nodeType":"YulIdentifier","src":"7835:12:88"},"nativeSrc":"7835:33:88","nodeType":"YulFunctionCall","src":"7835:33:88"},"variables":[{"name":"value_3","nativeSrc":"7824:7:88","nodeType":"YulTypedName","src":"7824:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_3","nativeSrc":"7902:7:88","nodeType":"YulIdentifier","src":"7902:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7877:24:88","nodeType":"YulIdentifier","src":"7877:24:88"},"nativeSrc":"7877:33:88","nodeType":"YulFunctionCall","src":"7877:33:88"},"nativeSrc":"7877:33:88","nodeType":"YulExpressionStatement","src":"7877:33:88"},{"nativeSrc":"7919:17:88","nodeType":"YulAssignment","src":"7919:17:88","value":{"name":"value_3","nativeSrc":"7929:7:88","nodeType":"YulIdentifier","src":"7929:7:88"},"variableNames":[{"name":"value4","nativeSrc":"7919:6:88","nodeType":"YulIdentifier","src":"7919:6:88"}]},{"nativeSrc":"7945:48:88","nodeType":"YulVariableDeclaration","src":"7945:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7977:9:88","nodeType":"YulIdentifier","src":"7977:9:88"},{"kind":"number","nativeSrc":"7988:3:88","nodeType":"YulLiteral","src":"7988:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7973:3:88","nodeType":"YulIdentifier","src":"7973:3:88"},"nativeSrc":"7973:19:88","nodeType":"YulFunctionCall","src":"7973:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"7960:12:88","nodeType":"YulIdentifier","src":"7960:12:88"},"nativeSrc":"7960:33:88","nodeType":"YulFunctionCall","src":"7960:33:88"},"variables":[{"name":"value_4","nativeSrc":"7949:7:88","nodeType":"YulTypedName","src":"7949:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_4","nativeSrc":"8027:7:88","nodeType":"YulIdentifier","src":"8027:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8002:24:88","nodeType":"YulIdentifier","src":"8002:24:88"},"nativeSrc":"8002:33:88","nodeType":"YulFunctionCall","src":"8002:33:88"},"nativeSrc":"8002:33:88","nodeType":"YulExpressionStatement","src":"8002:33:88"},{"nativeSrc":"8044:17:88","nodeType":"YulAssignment","src":"8044:17:88","value":{"name":"value_4","nativeSrc":"8054:7:88","nodeType":"YulIdentifier","src":"8054:7:88"},"variableNames":[{"name":"value5","nativeSrc":"8044:6:88","nodeType":"YulIdentifier","src":"8044:6:88"}]},{"nativeSrc":"8070:48:88","nodeType":"YulAssignment","src":"8070:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8102:9:88","nodeType":"YulIdentifier","src":"8102:9:88"},{"kind":"number","nativeSrc":"8113:3:88","nodeType":"YulLiteral","src":"8113:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"8098:3:88","nodeType":"YulIdentifier","src":"8098:3:88"},"nativeSrc":"8098:19:88","nodeType":"YulFunctionCall","src":"8098:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"8080:17:88","nodeType":"YulIdentifier","src":"8080:17:88"},"nativeSrc":"8080:38:88","nodeType":"YulFunctionCall","src":"8080:38:88"},"variableNames":[{"name":"value6","nativeSrc":"8070:6:88","nodeType":"YulIdentifier","src":"8070:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_addresst_uint96","nativeSrc":"7228:896:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7316:9:88","nodeType":"YulTypedName","src":"7316:9:88","type":""},{"name":"dataEnd","nativeSrc":"7327:7:88","nodeType":"YulTypedName","src":"7327:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7339:6:88","nodeType":"YulTypedName","src":"7339:6:88","type":""},{"name":"value1","nativeSrc":"7347:6:88","nodeType":"YulTypedName","src":"7347:6:88","type":""},{"name":"value2","nativeSrc":"7355:6:88","nodeType":"YulTypedName","src":"7355:6:88","type":""},{"name":"value3","nativeSrc":"7363:6:88","nodeType":"YulTypedName","src":"7363:6:88","type":""},{"name":"value4","nativeSrc":"7371:6:88","nodeType":"YulTypedName","src":"7371:6:88","type":""},{"name":"value5","nativeSrc":"7379:6:88","nodeType":"YulTypedName","src":"7379:6:88","type":""},{"name":"value6","nativeSrc":"7387:6:88","nodeType":"YulTypedName","src":"7387:6:88","type":""}],"src":"7228:896:88"},{"body":{"nativeSrc":"8232:315:88","nodeType":"YulBlock","src":"8232:315:88","statements":[{"body":{"nativeSrc":"8278:16:88","nodeType":"YulBlock","src":"8278:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8287:1:88","nodeType":"YulLiteral","src":"8287:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8290:1:88","nodeType":"YulLiteral","src":"8290:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8280:6:88","nodeType":"YulIdentifier","src":"8280:6:88"},"nativeSrc":"8280:12:88","nodeType":"YulFunctionCall","src":"8280:12:88"},"nativeSrc":"8280:12:88","nodeType":"YulExpressionStatement","src":"8280:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8253:7:88","nodeType":"YulIdentifier","src":"8253:7:88"},{"name":"headStart","nativeSrc":"8262:9:88","nodeType":"YulIdentifier","src":"8262:9:88"}],"functionName":{"name":"sub","nativeSrc":"8249:3:88","nodeType":"YulIdentifier","src":"8249:3:88"},"nativeSrc":"8249:23:88","nodeType":"YulFunctionCall","src":"8249:23:88"},{"kind":"number","nativeSrc":"8274:2:88","nodeType":"YulLiteral","src":"8274:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8245:3:88","nodeType":"YulIdentifier","src":"8245:3:88"},"nativeSrc":"8245:32:88","nodeType":"YulFunctionCall","src":"8245:32:88"},"nativeSrc":"8242:52:88","nodeType":"YulIf","src":"8242:52:88"},{"nativeSrc":"8303:14:88","nodeType":"YulVariableDeclaration","src":"8303:14:88","value":{"kind":"number","nativeSrc":"8316:1:88","nodeType":"YulLiteral","src":"8316:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8307:5:88","nodeType":"YulTypedName","src":"8307:5:88","type":""}]},{"nativeSrc":"8326:32:88","nodeType":"YulAssignment","src":"8326:32:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8348:9:88","nodeType":"YulIdentifier","src":"8348:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8335:12:88","nodeType":"YulIdentifier","src":"8335:12:88"},"nativeSrc":"8335:23:88","nodeType":"YulFunctionCall","src":"8335:23:88"},"variableNames":[{"name":"value","nativeSrc":"8326:5:88","nodeType":"YulIdentifier","src":"8326:5:88"}]},{"nativeSrc":"8367:15:88","nodeType":"YulAssignment","src":"8367:15:88","value":{"name":"value","nativeSrc":"8377:5:88","nodeType":"YulIdentifier","src":"8377:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8367:6:88","nodeType":"YulIdentifier","src":"8367:6:88"}]},{"nativeSrc":"8391:16:88","nodeType":"YulVariableDeclaration","src":"8391:16:88","value":{"kind":"number","nativeSrc":"8406:1:88","nodeType":"YulLiteral","src":"8406:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8395:7:88","nodeType":"YulTypedName","src":"8395:7:88","type":""}]},{"nativeSrc":"8416:43:88","nodeType":"YulAssignment","src":"8416:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8444:9:88","nodeType":"YulIdentifier","src":"8444:9:88"},{"kind":"number","nativeSrc":"8455:2:88","nodeType":"YulLiteral","src":"8455:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8440:3:88","nodeType":"YulIdentifier","src":"8440:3:88"},"nativeSrc":"8440:18:88","nodeType":"YulFunctionCall","src":"8440:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8427:12:88","nodeType":"YulIdentifier","src":"8427:12:88"},"nativeSrc":"8427:32:88","nodeType":"YulFunctionCall","src":"8427:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8416:7:88","nodeType":"YulIdentifier","src":"8416:7:88"}]},{"nativeSrc":"8468:17:88","nodeType":"YulAssignment","src":"8468:17:88","value":{"name":"value_1","nativeSrc":"8478:7:88","nodeType":"YulIdentifier","src":"8478:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8468:6:88","nodeType":"YulIdentifier","src":"8468:6:88"}]},{"nativeSrc":"8494:47:88","nodeType":"YulAssignment","src":"8494:47:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8526:9:88","nodeType":"YulIdentifier","src":"8526:9:88"},{"kind":"number","nativeSrc":"8537:2:88","nodeType":"YulLiteral","src":"8537:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8522:3:88","nodeType":"YulIdentifier","src":"8522:3:88"},"nativeSrc":"8522:18:88","nodeType":"YulFunctionCall","src":"8522:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"8504:17:88","nodeType":"YulIdentifier","src":"8504:17:88"},"nativeSrc":"8504:37:88","nodeType":"YulFunctionCall","src":"8504:37:88"},"variableNames":[{"name":"value2","nativeSrc":"8494:6:88","nodeType":"YulIdentifier","src":"8494:6:88"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint40","nativeSrc":"8129:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8182:9:88","nodeType":"YulTypedName","src":"8182:9:88","type":""},{"name":"dataEnd","nativeSrc":"8193:7:88","nodeType":"YulTypedName","src":"8193:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8205:6:88","nodeType":"YulTypedName","src":"8205:6:88","type":""},{"name":"value1","nativeSrc":"8213:6:88","nodeType":"YulTypedName","src":"8213:6:88","type":""},{"name":"value2","nativeSrc":"8221:6:88","nodeType":"YulTypedName","src":"8221:6:88","type":""}],"src":"8129:418:88"},{"body":{"nativeSrc":"8654:290:88","nodeType":"YulBlock","src":"8654:290:88","statements":[{"body":{"nativeSrc":"8700:16:88","nodeType":"YulBlock","src":"8700:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8709:1:88","nodeType":"YulLiteral","src":"8709:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8712:1:88","nodeType":"YulLiteral","src":"8712:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8702:6:88","nodeType":"YulIdentifier","src":"8702:6:88"},"nativeSrc":"8702:12:88","nodeType":"YulFunctionCall","src":"8702:12:88"},"nativeSrc":"8702:12:88","nodeType":"YulExpressionStatement","src":"8702:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8675:7:88","nodeType":"YulIdentifier","src":"8675:7:88"},{"name":"headStart","nativeSrc":"8684:9:88","nodeType":"YulIdentifier","src":"8684:9:88"}],"functionName":{"name":"sub","nativeSrc":"8671:3:88","nodeType":"YulIdentifier","src":"8671:3:88"},"nativeSrc":"8671:23:88","nodeType":"YulFunctionCall","src":"8671:23:88"},{"kind":"number","nativeSrc":"8696:2:88","nodeType":"YulLiteral","src":"8696:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8667:3:88","nodeType":"YulIdentifier","src":"8667:3:88"},"nativeSrc":"8667:32:88","nodeType":"YulFunctionCall","src":"8667:32:88"},"nativeSrc":"8664:52:88","nodeType":"YulIf","src":"8664:52:88"},{"nativeSrc":"8725:36:88","nodeType":"YulVariableDeclaration","src":"8725:36:88","value":{"arguments":[{"name":"headStart","nativeSrc":"8751:9:88","nodeType":"YulIdentifier","src":"8751:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"8738:12:88","nodeType":"YulIdentifier","src":"8738:12:88"},"nativeSrc":"8738:23:88","nodeType":"YulFunctionCall","src":"8738:23:88"},"variables":[{"name":"value","nativeSrc":"8729:5:88","nodeType":"YulTypedName","src":"8729:5:88","type":""}]},{"body":{"nativeSrc":"8795:16:88","nodeType":"YulBlock","src":"8795:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8804:1:88","nodeType":"YulLiteral","src":"8804:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"8807:1:88","nodeType":"YulLiteral","src":"8807:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8797:6:88","nodeType":"YulIdentifier","src":"8797:6:88"},"nativeSrc":"8797:12:88","nodeType":"YulFunctionCall","src":"8797:12:88"},"nativeSrc":"8797:12:88","nodeType":"YulExpressionStatement","src":"8797:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8783:5:88","nodeType":"YulIdentifier","src":"8783:5:88"},{"kind":"number","nativeSrc":"8790:2:88","nodeType":"YulLiteral","src":"8790:2:88","type":"","value":"10"}],"functionName":{"name":"lt","nativeSrc":"8780:2:88","nodeType":"YulIdentifier","src":"8780:2:88"},"nativeSrc":"8780:13:88","nodeType":"YulFunctionCall","src":"8780:13:88"}],"functionName":{"name":"iszero","nativeSrc":"8773:6:88","nodeType":"YulIdentifier","src":"8773:6:88"},"nativeSrc":"8773:21:88","nodeType":"YulFunctionCall","src":"8773:21:88"},"nativeSrc":"8770:41:88","nodeType":"YulIf","src":"8770:41:88"},{"nativeSrc":"8820:15:88","nodeType":"YulAssignment","src":"8820:15:88","value":{"name":"value","nativeSrc":"8830:5:88","nodeType":"YulIdentifier","src":"8830:5:88"},"variableNames":[{"name":"value0","nativeSrc":"8820:6:88","nodeType":"YulIdentifier","src":"8820:6:88"}]},{"nativeSrc":"8844:16:88","nodeType":"YulVariableDeclaration","src":"8844:16:88","value":{"kind":"number","nativeSrc":"8859:1:88","nodeType":"YulLiteral","src":"8859:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"8848:7:88","nodeType":"YulTypedName","src":"8848:7:88","type":""}]},{"nativeSrc":"8869:43:88","nodeType":"YulAssignment","src":"8869:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8897:9:88","nodeType":"YulIdentifier","src":"8897:9:88"},{"kind":"number","nativeSrc":"8908:2:88","nodeType":"YulLiteral","src":"8908:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8893:3:88","nodeType":"YulIdentifier","src":"8893:3:88"},"nativeSrc":"8893:18:88","nodeType":"YulFunctionCall","src":"8893:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"8880:12:88","nodeType":"YulIdentifier","src":"8880:12:88"},"nativeSrc":"8880:32:88","nodeType":"YulFunctionCall","src":"8880:32:88"},"variableNames":[{"name":"value_1","nativeSrc":"8869:7:88","nodeType":"YulIdentifier","src":"8869:7:88"}]},{"nativeSrc":"8921:17:88","nodeType":"YulAssignment","src":"8921:17:88","value":{"name":"value_1","nativeSrc":"8931:7:88","nodeType":"YulIdentifier","src":"8931:7:88"},"variableNames":[{"name":"value1","nativeSrc":"8921:6:88","nodeType":"YulIdentifier","src":"8921:6:88"}]}]},"name":"abi_decode_tuple_t_enum$_Parameter_$23903t_uint256","nativeSrc":"8552:392:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8612:9:88","nodeType":"YulTypedName","src":"8612:9:88","type":""},{"name":"dataEnd","nativeSrc":"8623:7:88","nodeType":"YulTypedName","src":"8623:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8635:6:88","nodeType":"YulTypedName","src":"8635:6:88","type":""},{"name":"value1","nativeSrc":"8643:6:88","nodeType":"YulTypedName","src":"8643:6:88","type":""}],"src":"8552:392:88"},{"body":{"nativeSrc":"9011:85:88","nodeType":"YulBlock","src":"9011:85:88","statements":[{"nativeSrc":"9021:29:88","nodeType":"YulAssignment","src":"9021:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"9043:6:88","nodeType":"YulIdentifier","src":"9043:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"9030:12:88","nodeType":"YulIdentifier","src":"9030:12:88"},"nativeSrc":"9030:20:88","nodeType":"YulFunctionCall","src":"9030:20:88"},"variableNames":[{"name":"value","nativeSrc":"9021:5:88","nodeType":"YulIdentifier","src":"9021:5:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9084:5:88","nodeType":"YulIdentifier","src":"9084:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9059:24:88","nodeType":"YulIdentifier","src":"9059:24:88"},"nativeSrc":"9059:31:88","nodeType":"YulFunctionCall","src":"9059:31:88"},"nativeSrc":"9059:31:88","nodeType":"YulExpressionStatement","src":"9059:31:88"}]},"name":"abi_decode_contract_IRiskModule","nativeSrc":"8949:147:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8990:6:88","nodeType":"YulTypedName","src":"8990:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9001:5:88","nodeType":"YulTypedName","src":"9001:5:88","type":""}],"src":"8949:147:88"},{"body":{"nativeSrc":"9168:1622:88","nodeType":"YulBlock","src":"9168:1622:88","statements":[{"body":{"nativeSrc":"9214:16:88","nodeType":"YulBlock","src":"9214:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9223:1:88","nodeType":"YulLiteral","src":"9223:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"9226:1:88","nodeType":"YulLiteral","src":"9226:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9216:6:88","nodeType":"YulIdentifier","src":"9216:6:88"},"nativeSrc":"9216:12:88","nodeType":"YulFunctionCall","src":"9216:12:88"},"nativeSrc":"9216:12:88","nodeType":"YulExpressionStatement","src":"9216:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9189:3:88","nodeType":"YulIdentifier","src":"9189:3:88"},{"name":"headStart","nativeSrc":"9194:9:88","nodeType":"YulIdentifier","src":"9194:9:88"}],"functionName":{"name":"sub","nativeSrc":"9185:3:88","nodeType":"YulIdentifier","src":"9185:3:88"},"nativeSrc":"9185:19:88","nodeType":"YulFunctionCall","src":"9185:19:88"},{"kind":"number","nativeSrc":"9206:6:88","nodeType":"YulLiteral","src":"9206:6:88","type":"","value":"0x01c0"}],"functionName":{"name":"slt","nativeSrc":"9181:3:88","nodeType":"YulIdentifier","src":"9181:3:88"},"nativeSrc":"9181:32:88","nodeType":"YulFunctionCall","src":"9181:32:88"},"nativeSrc":"9178:52:88","nodeType":"YulIf","src":"9178:52:88"},{"nativeSrc":"9239:26:88","nodeType":"YulAssignment","src":"9239:26:88","value":{"arguments":[],"functionName":{"name":"allocate_memory","nativeSrc":"9248:15:88","nodeType":"YulIdentifier","src":"9248:15:88"},"nativeSrc":"9248:17:88","nodeType":"YulFunctionCall","src":"9248:17:88"},"variableNames":[{"name":"value","nativeSrc":"9239:5:88","nodeType":"YulIdentifier","src":"9239:5:88"}]},{"nativeSrc":"9274:16:88","nodeType":"YulVariableDeclaration","src":"9274:16:88","value":{"kind":"number","nativeSrc":"9289:1:88","nodeType":"YulLiteral","src":"9289:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"9278:7:88","nodeType":"YulTypedName","src":"9278:7:88","type":""}]},{"nativeSrc":"9299:34:88","nodeType":"YulAssignment","src":"9299:34:88","value":{"arguments":[{"name":"headStart","nativeSrc":"9323:9:88","nodeType":"YulIdentifier","src":"9323:9:88"}],"functionName":{"name":"calldataload","nativeSrc":"9310:12:88","nodeType":"YulIdentifier","src":"9310:12:88"},"nativeSrc":"9310:23:88","nodeType":"YulFunctionCall","src":"9310:23:88"},"variableNames":[{"name":"value_1","nativeSrc":"9299:7:88","nodeType":"YulIdentifier","src":"9299:7:88"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9349:5:88","nodeType":"YulIdentifier","src":"9349:5:88"},{"name":"value_1","nativeSrc":"9356:7:88","nodeType":"YulIdentifier","src":"9356:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9342:6:88","nodeType":"YulIdentifier","src":"9342:6:88"},"nativeSrc":"9342:22:88","nodeType":"YulFunctionCall","src":"9342:22:88"},"nativeSrc":"9342:22:88","nodeType":"YulExpressionStatement","src":"9342:22:88"},{"nativeSrc":"9373:16:88","nodeType":"YulVariableDeclaration","src":"9373:16:88","value":{"kind":"number","nativeSrc":"9388:1:88","nodeType":"YulLiteral","src":"9388:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"9377:7:88","nodeType":"YulTypedName","src":"9377:7:88","type":""}]},{"nativeSrc":"9398:43:88","nodeType":"YulAssignment","src":"9398:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9426:9:88","nodeType":"YulIdentifier","src":"9426:9:88"},{"kind":"number","nativeSrc":"9437:2:88","nodeType":"YulLiteral","src":"9437:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9422:3:88","nodeType":"YulIdentifier","src":"9422:3:88"},"nativeSrc":"9422:18:88","nodeType":"YulFunctionCall","src":"9422:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9409:12:88","nodeType":"YulIdentifier","src":"9409:12:88"},"nativeSrc":"9409:32:88","nodeType":"YulFunctionCall","src":"9409:32:88"},"variableNames":[{"name":"value_2","nativeSrc":"9398:7:88","nodeType":"YulIdentifier","src":"9398:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9461:5:88","nodeType":"YulIdentifier","src":"9461:5:88"},{"kind":"number","nativeSrc":"9468:2:88","nodeType":"YulLiteral","src":"9468:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9457:3:88","nodeType":"YulIdentifier","src":"9457:3:88"},"nativeSrc":"9457:14:88","nodeType":"YulFunctionCall","src":"9457:14:88"},{"name":"value_2","nativeSrc":"9473:7:88","nodeType":"YulIdentifier","src":"9473:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9450:6:88","nodeType":"YulIdentifier","src":"9450:6:88"},"nativeSrc":"9450:31:88","nodeType":"YulFunctionCall","src":"9450:31:88"},"nativeSrc":"9450:31:88","nodeType":"YulExpressionStatement","src":"9450:31:88"},{"nativeSrc":"9490:16:88","nodeType":"YulVariableDeclaration","src":"9490:16:88","value":{"kind":"number","nativeSrc":"9505:1:88","nodeType":"YulLiteral","src":"9505:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"9494:7:88","nodeType":"YulTypedName","src":"9494:7:88","type":""}]},{"nativeSrc":"9515:43:88","nodeType":"YulAssignment","src":"9515:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9543:9:88","nodeType":"YulIdentifier","src":"9543:9:88"},{"kind":"number","nativeSrc":"9554:2:88","nodeType":"YulLiteral","src":"9554:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9539:3:88","nodeType":"YulIdentifier","src":"9539:3:88"},"nativeSrc":"9539:18:88","nodeType":"YulFunctionCall","src":"9539:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9526:12:88","nodeType":"YulIdentifier","src":"9526:12:88"},"nativeSrc":"9526:32:88","nodeType":"YulFunctionCall","src":"9526:32:88"},"variableNames":[{"name":"value_3","nativeSrc":"9515:7:88","nodeType":"YulIdentifier","src":"9515:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9578:5:88","nodeType":"YulIdentifier","src":"9578:5:88"},{"kind":"number","nativeSrc":"9585:2:88","nodeType":"YulLiteral","src":"9585:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9574:3:88","nodeType":"YulIdentifier","src":"9574:3:88"},"nativeSrc":"9574:14:88","nodeType":"YulFunctionCall","src":"9574:14:88"},{"name":"value_3","nativeSrc":"9590:7:88","nodeType":"YulIdentifier","src":"9590:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9567:6:88","nodeType":"YulIdentifier","src":"9567:6:88"},"nativeSrc":"9567:31:88","nodeType":"YulFunctionCall","src":"9567:31:88"},"nativeSrc":"9567:31:88","nodeType":"YulExpressionStatement","src":"9567:31:88"},{"nativeSrc":"9607:16:88","nodeType":"YulVariableDeclaration","src":"9607:16:88","value":{"kind":"number","nativeSrc":"9622:1:88","nodeType":"YulLiteral","src":"9622:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"9611:7:88","nodeType":"YulTypedName","src":"9611:7:88","type":""}]},{"nativeSrc":"9632:43:88","nodeType":"YulAssignment","src":"9632:43:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9660:9:88","nodeType":"YulIdentifier","src":"9660:9:88"},{"kind":"number","nativeSrc":"9671:2:88","nodeType":"YulLiteral","src":"9671:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9656:3:88","nodeType":"YulIdentifier","src":"9656:3:88"},"nativeSrc":"9656:18:88","nodeType":"YulFunctionCall","src":"9656:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"9643:12:88","nodeType":"YulIdentifier","src":"9643:12:88"},"nativeSrc":"9643:32:88","nodeType":"YulFunctionCall","src":"9643:32:88"},"variableNames":[{"name":"value_4","nativeSrc":"9632:7:88","nodeType":"YulIdentifier","src":"9632:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9695:5:88","nodeType":"YulIdentifier","src":"9695:5:88"},{"kind":"number","nativeSrc":"9702:2:88","nodeType":"YulLiteral","src":"9702:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9691:3:88","nodeType":"YulIdentifier","src":"9691:3:88"},"nativeSrc":"9691:14:88","nodeType":"YulFunctionCall","src":"9691:14:88"},{"name":"value_4","nativeSrc":"9707:7:88","nodeType":"YulIdentifier","src":"9707:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9684:6:88","nodeType":"YulIdentifier","src":"9684:6:88"},"nativeSrc":"9684:31:88","nodeType":"YulFunctionCall","src":"9684:31:88"},"nativeSrc":"9684:31:88","nodeType":"YulExpressionStatement","src":"9684:31:88"},{"nativeSrc":"9724:16:88","nodeType":"YulVariableDeclaration","src":"9724:16:88","value":{"kind":"number","nativeSrc":"9739:1:88","nodeType":"YulLiteral","src":"9739:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"9728:7:88","nodeType":"YulTypedName","src":"9728:7:88","type":""}]},{"nativeSrc":"9749:44:88","nodeType":"YulAssignment","src":"9749:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9777:9:88","nodeType":"YulIdentifier","src":"9777:9:88"},{"kind":"number","nativeSrc":"9788:3:88","nodeType":"YulLiteral","src":"9788:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9773:3:88","nodeType":"YulIdentifier","src":"9773:3:88"},"nativeSrc":"9773:19:88","nodeType":"YulFunctionCall","src":"9773:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9760:12:88","nodeType":"YulIdentifier","src":"9760:12:88"},"nativeSrc":"9760:33:88","nodeType":"YulFunctionCall","src":"9760:33:88"},"variableNames":[{"name":"value_5","nativeSrc":"9749:7:88","nodeType":"YulIdentifier","src":"9749:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9813:5:88","nodeType":"YulIdentifier","src":"9813:5:88"},{"kind":"number","nativeSrc":"9820:3:88","nodeType":"YulLiteral","src":"9820:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9809:3:88","nodeType":"YulIdentifier","src":"9809:3:88"},"nativeSrc":"9809:15:88","nodeType":"YulFunctionCall","src":"9809:15:88"},{"name":"value_5","nativeSrc":"9826:7:88","nodeType":"YulIdentifier","src":"9826:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9802:6:88","nodeType":"YulIdentifier","src":"9802:6:88"},"nativeSrc":"9802:32:88","nodeType":"YulFunctionCall","src":"9802:32:88"},"nativeSrc":"9802:32:88","nodeType":"YulExpressionStatement","src":"9802:32:88"},{"nativeSrc":"9843:16:88","nodeType":"YulVariableDeclaration","src":"9843:16:88","value":{"kind":"number","nativeSrc":"9858:1:88","nodeType":"YulLiteral","src":"9858:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"9847:7:88","nodeType":"YulTypedName","src":"9847:7:88","type":""}]},{"nativeSrc":"9868:44:88","nodeType":"YulAssignment","src":"9868:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9896:9:88","nodeType":"YulIdentifier","src":"9896:9:88"},{"kind":"number","nativeSrc":"9907:3:88","nodeType":"YulLiteral","src":"9907:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9892:3:88","nodeType":"YulIdentifier","src":"9892:3:88"},"nativeSrc":"9892:19:88","nodeType":"YulFunctionCall","src":"9892:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9879:12:88","nodeType":"YulIdentifier","src":"9879:12:88"},"nativeSrc":"9879:33:88","nodeType":"YulFunctionCall","src":"9879:33:88"},"variableNames":[{"name":"value_6","nativeSrc":"9868:7:88","nodeType":"YulIdentifier","src":"9868:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9932:5:88","nodeType":"YulIdentifier","src":"9932:5:88"},{"kind":"number","nativeSrc":"9939:3:88","nodeType":"YulLiteral","src":"9939:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9928:3:88","nodeType":"YulIdentifier","src":"9928:3:88"},"nativeSrc":"9928:15:88","nodeType":"YulFunctionCall","src":"9928:15:88"},{"name":"value_6","nativeSrc":"9945:7:88","nodeType":"YulIdentifier","src":"9945:7:88"}],"functionName":{"name":"mstore","nativeSrc":"9921:6:88","nodeType":"YulIdentifier","src":"9921:6:88"},"nativeSrc":"9921:32:88","nodeType":"YulFunctionCall","src":"9921:32:88"},"nativeSrc":"9921:32:88","nodeType":"YulExpressionStatement","src":"9921:32:88"},{"nativeSrc":"9962:16:88","nodeType":"YulVariableDeclaration","src":"9962:16:88","value":{"kind":"number","nativeSrc":"9977:1:88","nodeType":"YulLiteral","src":"9977:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"9966:7:88","nodeType":"YulTypedName","src":"9966:7:88","type":""}]},{"nativeSrc":"9987:44:88","nodeType":"YulAssignment","src":"9987:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10015:9:88","nodeType":"YulIdentifier","src":"10015:9:88"},{"kind":"number","nativeSrc":"10026:3:88","nodeType":"YulLiteral","src":"10026:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"10011:3:88","nodeType":"YulIdentifier","src":"10011:3:88"},"nativeSrc":"10011:19:88","nodeType":"YulFunctionCall","src":"10011:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"9998:12:88","nodeType":"YulIdentifier","src":"9998:12:88"},"nativeSrc":"9998:33:88","nodeType":"YulFunctionCall","src":"9998:33:88"},"variableNames":[{"name":"value_7","nativeSrc":"9987:7:88","nodeType":"YulIdentifier","src":"9987:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10051:5:88","nodeType":"YulIdentifier","src":"10051:5:88"},{"kind":"number","nativeSrc":"10058:3:88","nodeType":"YulLiteral","src":"10058:3:88","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"10047:3:88","nodeType":"YulIdentifier","src":"10047:3:88"},"nativeSrc":"10047:15:88","nodeType":"YulFunctionCall","src":"10047:15:88"},{"name":"value_7","nativeSrc":"10064:7:88","nodeType":"YulIdentifier","src":"10064:7:88"}],"functionName":{"name":"mstore","nativeSrc":"10040:6:88","nodeType":"YulIdentifier","src":"10040:6:88"},"nativeSrc":"10040:32:88","nodeType":"YulFunctionCall","src":"10040:32:88"},"nativeSrc":"10040:32:88","nodeType":"YulExpressionStatement","src":"10040:32:88"},{"nativeSrc":"10081:16:88","nodeType":"YulVariableDeclaration","src":"10081:16:88","value":{"kind":"number","nativeSrc":"10096:1:88","nodeType":"YulLiteral","src":"10096:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"10085:7:88","nodeType":"YulTypedName","src":"10085:7:88","type":""}]},{"nativeSrc":"10106:44:88","nodeType":"YulAssignment","src":"10106:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10134:9:88","nodeType":"YulIdentifier","src":"10134:9:88"},{"kind":"number","nativeSrc":"10145:3:88","nodeType":"YulLiteral","src":"10145:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10130:3:88","nodeType":"YulIdentifier","src":"10130:3:88"},"nativeSrc":"10130:19:88","nodeType":"YulFunctionCall","src":"10130:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10117:12:88","nodeType":"YulIdentifier","src":"10117:12:88"},"nativeSrc":"10117:33:88","nodeType":"YulFunctionCall","src":"10117:33:88"},"variableNames":[{"name":"value_8","nativeSrc":"10106:7:88","nodeType":"YulIdentifier","src":"10106:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10170:5:88","nodeType":"YulIdentifier","src":"10170:5:88"},{"kind":"number","nativeSrc":"10177:3:88","nodeType":"YulLiteral","src":"10177:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"10166:3:88","nodeType":"YulIdentifier","src":"10166:3:88"},"nativeSrc":"10166:15:88","nodeType":"YulFunctionCall","src":"10166:15:88"},{"name":"value_8","nativeSrc":"10183:7:88","nodeType":"YulIdentifier","src":"10183:7:88"}],"functionName":{"name":"mstore","nativeSrc":"10159:6:88","nodeType":"YulIdentifier","src":"10159:6:88"},"nativeSrc":"10159:32:88","nodeType":"YulFunctionCall","src":"10159:32:88"},"nativeSrc":"10159:32:88","nodeType":"YulExpressionStatement","src":"10159:32:88"},{"nativeSrc":"10200:16:88","nodeType":"YulVariableDeclaration","src":"10200:16:88","value":{"kind":"number","nativeSrc":"10215:1:88","nodeType":"YulLiteral","src":"10215:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"10204:7:88","nodeType":"YulTypedName","src":"10204:7:88","type":""}]},{"nativeSrc":"10225:44:88","nodeType":"YulAssignment","src":"10225:44:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10253:9:88","nodeType":"YulIdentifier","src":"10253:9:88"},{"kind":"number","nativeSrc":"10264:3:88","nodeType":"YulLiteral","src":"10264:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"10249:3:88","nodeType":"YulIdentifier","src":"10249:3:88"},"nativeSrc":"10249:19:88","nodeType":"YulFunctionCall","src":"10249:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10236:12:88","nodeType":"YulIdentifier","src":"10236:12:88"},"nativeSrc":"10236:33:88","nodeType":"YulFunctionCall","src":"10236:33:88"},"variableNames":[{"name":"value_9","nativeSrc":"10225:7:88","nodeType":"YulIdentifier","src":"10225:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10289:5:88","nodeType":"YulIdentifier","src":"10289:5:88"},{"kind":"number","nativeSrc":"10296:3:88","nodeType":"YulLiteral","src":"10296:3:88","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"10285:3:88","nodeType":"YulIdentifier","src":"10285:3:88"},"nativeSrc":"10285:15:88","nodeType":"YulFunctionCall","src":"10285:15:88"},{"name":"value_9","nativeSrc":"10302:7:88","nodeType":"YulIdentifier","src":"10302:7:88"}],"functionName":{"name":"mstore","nativeSrc":"10278:6:88","nodeType":"YulIdentifier","src":"10278:6:88"},"nativeSrc":"10278:32:88","nodeType":"YulFunctionCall","src":"10278:32:88"},"nativeSrc":"10278:32:88","nodeType":"YulExpressionStatement","src":"10278:32:88"},{"nativeSrc":"10319:17:88","nodeType":"YulVariableDeclaration","src":"10319:17:88","value":{"kind":"number","nativeSrc":"10335:1:88","nodeType":"YulLiteral","src":"10335:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"10323:8:88","nodeType":"YulTypedName","src":"10323:8:88","type":""}]},{"nativeSrc":"10345:45:88","nodeType":"YulAssignment","src":"10345:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10374:9:88","nodeType":"YulIdentifier","src":"10374:9:88"},{"kind":"number","nativeSrc":"10385:3:88","nodeType":"YulLiteral","src":"10385:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"10370:3:88","nodeType":"YulIdentifier","src":"10370:3:88"},"nativeSrc":"10370:19:88","nodeType":"YulFunctionCall","src":"10370:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10357:12:88","nodeType":"YulIdentifier","src":"10357:12:88"},"nativeSrc":"10357:33:88","nodeType":"YulFunctionCall","src":"10357:33:88"},"variableNames":[{"name":"value_10","nativeSrc":"10345:8:88","nodeType":"YulIdentifier","src":"10345:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10410:5:88","nodeType":"YulIdentifier","src":"10410:5:88"},{"kind":"number","nativeSrc":"10417:3:88","nodeType":"YulLiteral","src":"10417:3:88","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"10406:3:88","nodeType":"YulIdentifier","src":"10406:3:88"},"nativeSrc":"10406:15:88","nodeType":"YulFunctionCall","src":"10406:15:88"},{"name":"value_10","nativeSrc":"10423:8:88","nodeType":"YulIdentifier","src":"10423:8:88"}],"functionName":{"name":"mstore","nativeSrc":"10399:6:88","nodeType":"YulIdentifier","src":"10399:6:88"},"nativeSrc":"10399:33:88","nodeType":"YulFunctionCall","src":"10399:33:88"},"nativeSrc":"10399:33:88","nodeType":"YulExpressionStatement","src":"10399:33:88"},{"nativeSrc":"10441:17:88","nodeType":"YulVariableDeclaration","src":"10441:17:88","value":{"kind":"number","nativeSrc":"10457:1:88","nodeType":"YulLiteral","src":"10457:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"10445:8:88","nodeType":"YulTypedName","src":"10445:8:88","type":""}]},{"nativeSrc":"10467:45:88","nodeType":"YulAssignment","src":"10467:45:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10496:9:88","nodeType":"YulIdentifier","src":"10496:9:88"},{"kind":"number","nativeSrc":"10507:3:88","nodeType":"YulLiteral","src":"10507:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"10492:3:88","nodeType":"YulIdentifier","src":"10492:3:88"},"nativeSrc":"10492:19:88","nodeType":"YulFunctionCall","src":"10492:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"10479:12:88","nodeType":"YulIdentifier","src":"10479:12:88"},"nativeSrc":"10479:33:88","nodeType":"YulFunctionCall","src":"10479:33:88"},"variableNames":[{"name":"value_11","nativeSrc":"10467:8:88","nodeType":"YulIdentifier","src":"10467:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10532:5:88","nodeType":"YulIdentifier","src":"10532:5:88"},{"kind":"number","nativeSrc":"10539:3:88","nodeType":"YulLiteral","src":"10539:3:88","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"10528:3:88","nodeType":"YulIdentifier","src":"10528:3:88"},"nativeSrc":"10528:15:88","nodeType":"YulFunctionCall","src":"10528:15:88"},{"name":"value_11","nativeSrc":"10545:8:88","nodeType":"YulIdentifier","src":"10545:8:88"}],"functionName":{"name":"mstore","nativeSrc":"10521:6:88","nodeType":"YulIdentifier","src":"10521:6:88"},"nativeSrc":"10521:33:88","nodeType":"YulFunctionCall","src":"10521:33:88"},"nativeSrc":"10521:33:88","nodeType":"YulExpressionStatement","src":"10521:33:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10574:5:88","nodeType":"YulIdentifier","src":"10574:5:88"},{"kind":"number","nativeSrc":"10581:3:88","nodeType":"YulLiteral","src":"10581:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"10570:3:88","nodeType":"YulIdentifier","src":"10570:3:88"},"nativeSrc":"10570:15:88","nodeType":"YulFunctionCall","src":"10570:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10623:9:88","nodeType":"YulIdentifier","src":"10623:9:88"},{"kind":"number","nativeSrc":"10634:3:88","nodeType":"YulLiteral","src":"10634:3:88","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"10619:3:88","nodeType":"YulIdentifier","src":"10619:3:88"},"nativeSrc":"10619:19:88","nodeType":"YulFunctionCall","src":"10619:19:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"10587:31:88","nodeType":"YulIdentifier","src":"10587:31:88"},"nativeSrc":"10587:52:88","nodeType":"YulFunctionCall","src":"10587:52:88"}],"functionName":{"name":"mstore","nativeSrc":"10563:6:88","nodeType":"YulIdentifier","src":"10563:6:88"},"nativeSrc":"10563:77:88","nodeType":"YulFunctionCall","src":"10563:77:88"},"nativeSrc":"10563:77:88","nodeType":"YulExpressionStatement","src":"10563:77:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10660:5:88","nodeType":"YulIdentifier","src":"10660:5:88"},{"kind":"number","nativeSrc":"10667:3:88","nodeType":"YulLiteral","src":"10667:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"10656:3:88","nodeType":"YulIdentifier","src":"10656:3:88"},"nativeSrc":"10656:15:88","nodeType":"YulFunctionCall","src":"10656:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10695:9:88","nodeType":"YulIdentifier","src":"10695:9:88"},{"kind":"number","nativeSrc":"10706:3:88","nodeType":"YulLiteral","src":"10706:3:88","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"10691:3:88","nodeType":"YulIdentifier","src":"10691:3:88"},"nativeSrc":"10691:19:88","nodeType":"YulFunctionCall","src":"10691:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"10673:17:88","nodeType":"YulIdentifier","src":"10673:17:88"},"nativeSrc":"10673:38:88","nodeType":"YulFunctionCall","src":"10673:38:88"}],"functionName":{"name":"mstore","nativeSrc":"10649:6:88","nodeType":"YulIdentifier","src":"10649:6:88"},"nativeSrc":"10649:63:88","nodeType":"YulFunctionCall","src":"10649:63:88"},"nativeSrc":"10649:63:88","nodeType":"YulExpressionStatement","src":"10649:63:88"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10732:5:88","nodeType":"YulIdentifier","src":"10732:5:88"},{"kind":"number","nativeSrc":"10739:3:88","nodeType":"YulLiteral","src":"10739:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"10728:3:88","nodeType":"YulIdentifier","src":"10728:3:88"},"nativeSrc":"10728:15:88","nodeType":"YulFunctionCall","src":"10728:15:88"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10767:9:88","nodeType":"YulIdentifier","src":"10767:9:88"},{"kind":"number","nativeSrc":"10778:3:88","nodeType":"YulLiteral","src":"10778:3:88","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"10763:3:88","nodeType":"YulIdentifier","src":"10763:3:88"},"nativeSrc":"10763:19:88","nodeType":"YulFunctionCall","src":"10763:19:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"10745:17:88","nodeType":"YulIdentifier","src":"10745:17:88"},"nativeSrc":"10745:38:88","nodeType":"YulFunctionCall","src":"10745:38:88"}],"functionName":{"name":"mstore","nativeSrc":"10721:6:88","nodeType":"YulIdentifier","src":"10721:6:88"},"nativeSrc":"10721:63:88","nodeType":"YulFunctionCall","src":"10721:63:88"},"nativeSrc":"10721:63:88","nodeType":"YulExpressionStatement","src":"10721:63:88"}]},"name":"abi_decode_struct_PolicyData","nativeSrc":"9101:1689:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9139:9:88","nodeType":"YulTypedName","src":"9139:9:88","type":""},{"name":"end","nativeSrc":"9150:3:88","nodeType":"YulTypedName","src":"9150:3:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9158:5:88","nodeType":"YulTypedName","src":"9158:5:88","type":""}],"src":"9101:1689:88"},{"body":{"nativeSrc":"10973:389:88","nodeType":"YulBlock","src":"10973:389:88","statements":[{"body":{"nativeSrc":"11020:16:88","nodeType":"YulBlock","src":"11020:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11029:1:88","nodeType":"YulLiteral","src":"11029:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"11032:1:88","nodeType":"YulLiteral","src":"11032:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11022:6:88","nodeType":"YulIdentifier","src":"11022:6:88"},"nativeSrc":"11022:12:88","nodeType":"YulFunctionCall","src":"11022:12:88"},"nativeSrc":"11022:12:88","nodeType":"YulExpressionStatement","src":"11022:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10994:7:88","nodeType":"YulIdentifier","src":"10994:7:88"},{"name":"headStart","nativeSrc":"11003:9:88","nodeType":"YulIdentifier","src":"11003:9:88"}],"functionName":{"name":"sub","nativeSrc":"10990:3:88","nodeType":"YulIdentifier","src":"10990:3:88"},"nativeSrc":"10990:23:88","nodeType":"YulFunctionCall","src":"10990:23:88"},{"kind":"number","nativeSrc":"11015:3:88","nodeType":"YulLiteral","src":"11015:3:88","type":"","value":"960"}],"functionName":{"name":"slt","nativeSrc":"10986:3:88","nodeType":"YulIdentifier","src":"10986:3:88"},"nativeSrc":"10986:33:88","nodeType":"YulFunctionCall","src":"10986:33:88"},"nativeSrc":"10983:53:88","nodeType":"YulIf","src":"10983:53:88"},{"nativeSrc":"11045:58:88","nodeType":"YulAssignment","src":"11045:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11084:9:88","nodeType":"YulIdentifier","src":"11084:9:88"},{"name":"dataEnd","nativeSrc":"11095:7:88","nodeType":"YulIdentifier","src":"11095:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"11055:28:88","nodeType":"YulIdentifier","src":"11055:28:88"},"nativeSrc":"11055:48:88","nodeType":"YulFunctionCall","src":"11055:48:88"},"variableNames":[{"name":"value0","nativeSrc":"11045:6:88","nodeType":"YulIdentifier","src":"11045:6:88"}]},{"nativeSrc":"11112:68:88","nodeType":"YulAssignment","src":"11112:68:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11155:9:88","nodeType":"YulIdentifier","src":"11155:9:88"},{"kind":"number","nativeSrc":"11166:3:88","nodeType":"YulLiteral","src":"11166:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"11151:3:88","nodeType":"YulIdentifier","src":"11151:3:88"},"nativeSrc":"11151:19:88","nodeType":"YulFunctionCall","src":"11151:19:88"},{"name":"dataEnd","nativeSrc":"11172:7:88","nodeType":"YulIdentifier","src":"11172:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"11122:28:88","nodeType":"YulIdentifier","src":"11122:28:88"},"nativeSrc":"11122:58:88","nodeType":"YulFunctionCall","src":"11122:58:88"},"variableNames":[{"name":"value1","nativeSrc":"11112:6:88","nodeType":"YulIdentifier","src":"11112:6:88"}]},{"nativeSrc":"11189:46:88","nodeType":"YulVariableDeclaration","src":"11189:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11219:9:88","nodeType":"YulIdentifier","src":"11219:9:88"},{"kind":"number","nativeSrc":"11230:3:88","nodeType":"YulLiteral","src":"11230:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"11215:3:88","nodeType":"YulIdentifier","src":"11215:3:88"},"nativeSrc":"11215:19:88","nodeType":"YulFunctionCall","src":"11215:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"11202:12:88","nodeType":"YulIdentifier","src":"11202:12:88"},"nativeSrc":"11202:33:88","nodeType":"YulFunctionCall","src":"11202:33:88"},"variables":[{"name":"value","nativeSrc":"11193:5:88","nodeType":"YulTypedName","src":"11193:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11269:5:88","nodeType":"YulIdentifier","src":"11269:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11244:24:88","nodeType":"YulIdentifier","src":"11244:24:88"},"nativeSrc":"11244:31:88","nodeType":"YulFunctionCall","src":"11244:31:88"},"nativeSrc":"11244:31:88","nodeType":"YulExpressionStatement","src":"11244:31:88"},{"nativeSrc":"11284:15:88","nodeType":"YulAssignment","src":"11284:15:88","value":{"name":"value","nativeSrc":"11294:5:88","nodeType":"YulIdentifier","src":"11294:5:88"},"variableNames":[{"name":"value2","nativeSrc":"11284:6:88","nodeType":"YulIdentifier","src":"11284:6:88"}]},{"nativeSrc":"11308:48:88","nodeType":"YulAssignment","src":"11308:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11340:9:88","nodeType":"YulIdentifier","src":"11340:9:88"},{"kind":"number","nativeSrc":"11351:3:88","nodeType":"YulLiteral","src":"11351:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"11336:3:88","nodeType":"YulIdentifier","src":"11336:3:88"},"nativeSrc":"11336:19:88","nodeType":"YulFunctionCall","src":"11336:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"11318:17:88","nodeType":"YulIdentifier","src":"11318:17:88"},"nativeSrc":"11318:38:88","nodeType":"YulFunctionCall","src":"11318:38:88"},"variableNames":[{"name":"value3","nativeSrc":"11308:6:88","nodeType":"YulIdentifier","src":"11308:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96","nativeSrc":"10795:567:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10915:9:88","nodeType":"YulTypedName","src":"10915:9:88","type":""},{"name":"dataEnd","nativeSrc":"10926:7:88","nodeType":"YulTypedName","src":"10926:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10938:6:88","nodeType":"YulTypedName","src":"10938:6:88","type":""},{"name":"value1","nativeSrc":"10946:6:88","nodeType":"YulTypedName","src":"10946:6:88","type":""},{"name":"value2","nativeSrc":"10954:6:88","nodeType":"YulTypedName","src":"10954:6:88","type":""},{"name":"value3","nativeSrc":"10962:6:88","nodeType":"YulTypedName","src":"10962:6:88","type":""}],"src":"10795:567:88"},{"body":{"nativeSrc":"11518:462:88","nodeType":"YulBlock","src":"11518:462:88","statements":[{"nativeSrc":"11528:27:88","nodeType":"YulAssignment","src":"11528:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"11540:9:88","nodeType":"YulIdentifier","src":"11540:9:88"},{"kind":"number","nativeSrc":"11551:3:88","nodeType":"YulLiteral","src":"11551:3:88","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"11536:3:88","nodeType":"YulIdentifier","src":"11536:3:88"},"nativeSrc":"11536:19:88","nodeType":"YulFunctionCall","src":"11536:19:88"},"variableNames":[{"name":"tail","nativeSrc":"11528:4:88","nodeType":"YulIdentifier","src":"11528:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11571:9:88","nodeType":"YulIdentifier","src":"11571:9:88"},{"arguments":[{"name":"value0","nativeSrc":"11588:6:88","nodeType":"YulIdentifier","src":"11588:6:88"}],"functionName":{"name":"mload","nativeSrc":"11582:5:88","nodeType":"YulIdentifier","src":"11582:5:88"},"nativeSrc":"11582:13:88","nodeType":"YulFunctionCall","src":"11582:13:88"}],"functionName":{"name":"mstore","nativeSrc":"11564:6:88","nodeType":"YulIdentifier","src":"11564:6:88"},"nativeSrc":"11564:32:88","nodeType":"YulFunctionCall","src":"11564:32:88"},"nativeSrc":"11564:32:88","nodeType":"YulExpressionStatement","src":"11564:32:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11616:9:88","nodeType":"YulIdentifier","src":"11616:9:88"},{"kind":"number","nativeSrc":"11627:4:88","nodeType":"YulLiteral","src":"11627:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11612:3:88","nodeType":"YulIdentifier","src":"11612:3:88"},"nativeSrc":"11612:20:88","nodeType":"YulFunctionCall","src":"11612:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11644:6:88","nodeType":"YulIdentifier","src":"11644:6:88"},{"kind":"number","nativeSrc":"11652:4:88","nodeType":"YulLiteral","src":"11652:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11640:3:88","nodeType":"YulIdentifier","src":"11640:3:88"},"nativeSrc":"11640:17:88","nodeType":"YulFunctionCall","src":"11640:17:88"}],"functionName":{"name":"mload","nativeSrc":"11634:5:88","nodeType":"YulIdentifier","src":"11634:5:88"},"nativeSrc":"11634:24:88","nodeType":"YulFunctionCall","src":"11634:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11605:6:88","nodeType":"YulIdentifier","src":"11605:6:88"},"nativeSrc":"11605:54:88","nodeType":"YulFunctionCall","src":"11605:54:88"},"nativeSrc":"11605:54:88","nodeType":"YulExpressionStatement","src":"11605:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11679:9:88","nodeType":"YulIdentifier","src":"11679:9:88"},{"kind":"number","nativeSrc":"11690:4:88","nodeType":"YulLiteral","src":"11690:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11675:3:88","nodeType":"YulIdentifier","src":"11675:3:88"},"nativeSrc":"11675:20:88","nodeType":"YulFunctionCall","src":"11675:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11707:6:88","nodeType":"YulIdentifier","src":"11707:6:88"},{"kind":"number","nativeSrc":"11715:4:88","nodeType":"YulLiteral","src":"11715:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11703:3:88","nodeType":"YulIdentifier","src":"11703:3:88"},"nativeSrc":"11703:17:88","nodeType":"YulFunctionCall","src":"11703:17:88"}],"functionName":{"name":"mload","nativeSrc":"11697:5:88","nodeType":"YulIdentifier","src":"11697:5:88"},"nativeSrc":"11697:24:88","nodeType":"YulFunctionCall","src":"11697:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11668:6:88","nodeType":"YulIdentifier","src":"11668:6:88"},"nativeSrc":"11668:54:88","nodeType":"YulFunctionCall","src":"11668:54:88"},"nativeSrc":"11668:54:88","nodeType":"YulExpressionStatement","src":"11668:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11742:9:88","nodeType":"YulIdentifier","src":"11742:9:88"},{"kind":"number","nativeSrc":"11753:4:88","nodeType":"YulLiteral","src":"11753:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11738:3:88","nodeType":"YulIdentifier","src":"11738:3:88"},"nativeSrc":"11738:20:88","nodeType":"YulFunctionCall","src":"11738:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11770:6:88","nodeType":"YulIdentifier","src":"11770:6:88"},{"kind":"number","nativeSrc":"11778:4:88","nodeType":"YulLiteral","src":"11778:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11766:3:88","nodeType":"YulIdentifier","src":"11766:3:88"},"nativeSrc":"11766:17:88","nodeType":"YulFunctionCall","src":"11766:17:88"}],"functionName":{"name":"mload","nativeSrc":"11760:5:88","nodeType":"YulIdentifier","src":"11760:5:88"},"nativeSrc":"11760:24:88","nodeType":"YulFunctionCall","src":"11760:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11731:6:88","nodeType":"YulIdentifier","src":"11731:6:88"},"nativeSrc":"11731:54:88","nodeType":"YulFunctionCall","src":"11731:54:88"},"nativeSrc":"11731:54:88","nodeType":"YulExpressionStatement","src":"11731:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11805:9:88","nodeType":"YulIdentifier","src":"11805:9:88"},{"kind":"number","nativeSrc":"11816:4:88","nodeType":"YulLiteral","src":"11816:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"11801:3:88","nodeType":"YulIdentifier","src":"11801:3:88"},"nativeSrc":"11801:20:88","nodeType":"YulFunctionCall","src":"11801:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11833:6:88","nodeType":"YulIdentifier","src":"11833:6:88"},{"kind":"number","nativeSrc":"11841:4:88","nodeType":"YulLiteral","src":"11841:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"11829:3:88","nodeType":"YulIdentifier","src":"11829:3:88"},"nativeSrc":"11829:17:88","nodeType":"YulFunctionCall","src":"11829:17:88"}],"functionName":{"name":"mload","nativeSrc":"11823:5:88","nodeType":"YulIdentifier","src":"11823:5:88"},"nativeSrc":"11823:24:88","nodeType":"YulFunctionCall","src":"11823:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11794:6:88","nodeType":"YulIdentifier","src":"11794:6:88"},"nativeSrc":"11794:54:88","nodeType":"YulFunctionCall","src":"11794:54:88"},"nativeSrc":"11794:54:88","nodeType":"YulExpressionStatement","src":"11794:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11868:9:88","nodeType":"YulIdentifier","src":"11868:9:88"},{"kind":"number","nativeSrc":"11879:4:88","nodeType":"YulLiteral","src":"11879:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"11864:3:88","nodeType":"YulIdentifier","src":"11864:3:88"},"nativeSrc":"11864:20:88","nodeType":"YulFunctionCall","src":"11864:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11896:6:88","nodeType":"YulIdentifier","src":"11896:6:88"},{"kind":"number","nativeSrc":"11904:4:88","nodeType":"YulLiteral","src":"11904:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"11892:3:88","nodeType":"YulIdentifier","src":"11892:3:88"},"nativeSrc":"11892:17:88","nodeType":"YulFunctionCall","src":"11892:17:88"}],"functionName":{"name":"mload","nativeSrc":"11886:5:88","nodeType":"YulIdentifier","src":"11886:5:88"},"nativeSrc":"11886:24:88","nodeType":"YulFunctionCall","src":"11886:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11857:6:88","nodeType":"YulIdentifier","src":"11857:6:88"},"nativeSrc":"11857:54:88","nodeType":"YulFunctionCall","src":"11857:54:88"},"nativeSrc":"11857:54:88","nodeType":"YulExpressionStatement","src":"11857:54:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11931:9:88","nodeType":"YulIdentifier","src":"11931:9:88"},{"kind":"number","nativeSrc":"11942:4:88","nodeType":"YulLiteral","src":"11942:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"11927:3:88","nodeType":"YulIdentifier","src":"11927:3:88"},"nativeSrc":"11927:20:88","nodeType":"YulFunctionCall","src":"11927:20:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11959:6:88","nodeType":"YulIdentifier","src":"11959:6:88"},{"kind":"number","nativeSrc":"11967:4:88","nodeType":"YulLiteral","src":"11967:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"11955:3:88","nodeType":"YulIdentifier","src":"11955:3:88"},"nativeSrc":"11955:17:88","nodeType":"YulFunctionCall","src":"11955:17:88"}],"functionName":{"name":"mload","nativeSrc":"11949:5:88","nodeType":"YulIdentifier","src":"11949:5:88"},"nativeSrc":"11949:24:88","nodeType":"YulFunctionCall","src":"11949:24:88"}],"functionName":{"name":"mstore","nativeSrc":"11920:6:88","nodeType":"YulIdentifier","src":"11920:6:88"},"nativeSrc":"11920:54:88","nodeType":"YulFunctionCall","src":"11920:54:88"},"nativeSrc":"11920:54:88","nodeType":"YulExpressionStatement","src":"11920:54:88"}]},"name":"abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed","nativeSrc":"11367:613:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11487:9:88","nodeType":"YulTypedName","src":"11487:9:88","type":""},{"name":"value0","nativeSrc":"11498:6:88","nodeType":"YulTypedName","src":"11498:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11509:4:88","nodeType":"YulTypedName","src":"11509:4:88","type":""}],"src":"11367:613:88"},{"body":{"nativeSrc":"12109:102:88","nodeType":"YulBlock","src":"12109:102:88","statements":[{"nativeSrc":"12119:26:88","nodeType":"YulAssignment","src":"12119:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12131:9:88","nodeType":"YulIdentifier","src":"12131:9:88"},{"kind":"number","nativeSrc":"12142:2:88","nodeType":"YulLiteral","src":"12142:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12127:3:88","nodeType":"YulIdentifier","src":"12127:3:88"},"nativeSrc":"12127:18:88","nodeType":"YulFunctionCall","src":"12127:18:88"},"variableNames":[{"name":"tail","nativeSrc":"12119:4:88","nodeType":"YulIdentifier","src":"12119:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12161:9:88","nodeType":"YulIdentifier","src":"12161:9:88"},{"arguments":[{"name":"value0","nativeSrc":"12176:6:88","nodeType":"YulIdentifier","src":"12176:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12192:3:88","nodeType":"YulLiteral","src":"12192:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"12197:1:88","nodeType":"YulLiteral","src":"12197:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12188:3:88","nodeType":"YulIdentifier","src":"12188:3:88"},"nativeSrc":"12188:11:88","nodeType":"YulFunctionCall","src":"12188:11:88"},{"kind":"number","nativeSrc":"12201:1:88","nodeType":"YulLiteral","src":"12201:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12184:3:88","nodeType":"YulIdentifier","src":"12184:3:88"},"nativeSrc":"12184:19:88","nodeType":"YulFunctionCall","src":"12184:19:88"}],"functionName":{"name":"and","nativeSrc":"12172:3:88","nodeType":"YulIdentifier","src":"12172:3:88"},"nativeSrc":"12172:32:88","nodeType":"YulFunctionCall","src":"12172:32:88"}],"functionName":{"name":"mstore","nativeSrc":"12154:6:88","nodeType":"YulIdentifier","src":"12154:6:88"},"nativeSrc":"12154:51:88","nodeType":"YulFunctionCall","src":"12154:51:88"},"nativeSrc":"12154:51:88","nodeType":"YulExpressionStatement","src":"12154:51:88"}]},"name":"abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed","nativeSrc":"11985:226:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12078:9:88","nodeType":"YulTypedName","src":"12078:9:88","type":""},{"name":"value0","nativeSrc":"12089:6:88","nodeType":"YulTypedName","src":"12089:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12100:4:88","nodeType":"YulTypedName","src":"12100:4:88","type":""}],"src":"11985:226:88"},{"body":{"nativeSrc":"12365:437:88","nodeType":"YulBlock","src":"12365:437:88","statements":[{"body":{"nativeSrc":"12412:16:88","nodeType":"YulBlock","src":"12412:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12421:1:88","nodeType":"YulLiteral","src":"12421:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"12424:1:88","nodeType":"YulLiteral","src":"12424:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12414:6:88","nodeType":"YulIdentifier","src":"12414:6:88"},"nativeSrc":"12414:12:88","nodeType":"YulFunctionCall","src":"12414:12:88"},"nativeSrc":"12414:12:88","nodeType":"YulExpressionStatement","src":"12414:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12386:7:88","nodeType":"YulIdentifier","src":"12386:7:88"},{"name":"headStart","nativeSrc":"12395:9:88","nodeType":"YulIdentifier","src":"12395:9:88"}],"functionName":{"name":"sub","nativeSrc":"12382:3:88","nodeType":"YulIdentifier","src":"12382:3:88"},"nativeSrc":"12382:23:88","nodeType":"YulFunctionCall","src":"12382:23:88"},{"kind":"number","nativeSrc":"12407:3:88","nodeType":"YulLiteral","src":"12407:3:88","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"12378:3:88","nodeType":"YulIdentifier","src":"12378:3:88"},"nativeSrc":"12378:33:88","nodeType":"YulFunctionCall","src":"12378:33:88"},"nativeSrc":"12375:53:88","nodeType":"YulIf","src":"12375:53:88"},{"nativeSrc":"12437:58:88","nodeType":"YulAssignment","src":"12437:58:88","value":{"arguments":[{"name":"headStart","nativeSrc":"12476:9:88","nodeType":"YulIdentifier","src":"12476:9:88"},{"name":"dataEnd","nativeSrc":"12487:7:88","nodeType":"YulIdentifier","src":"12487:7:88"}],"functionName":{"name":"abi_decode_struct_PolicyData","nativeSrc":"12447:28:88","nodeType":"YulIdentifier","src":"12447:28:88"},"nativeSrc":"12447:48:88","nodeType":"YulFunctionCall","src":"12447:48:88"},"variableNames":[{"name":"value0","nativeSrc":"12437:6:88","nodeType":"YulIdentifier","src":"12437:6:88"}]},{"nativeSrc":"12504:46:88","nodeType":"YulVariableDeclaration","src":"12504:46:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12534:9:88","nodeType":"YulIdentifier","src":"12534:9:88"},{"kind":"number","nativeSrc":"12545:3:88","nodeType":"YulLiteral","src":"12545:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"12530:3:88","nodeType":"YulIdentifier","src":"12530:3:88"},"nativeSrc":"12530:19:88","nodeType":"YulFunctionCall","src":"12530:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"12517:12:88","nodeType":"YulIdentifier","src":"12517:12:88"},"nativeSrc":"12517:33:88","nodeType":"YulFunctionCall","src":"12517:33:88"},"variables":[{"name":"value","nativeSrc":"12508:5:88","nodeType":"YulTypedName","src":"12508:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12584:5:88","nodeType":"YulIdentifier","src":"12584:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12559:24:88","nodeType":"YulIdentifier","src":"12559:24:88"},"nativeSrc":"12559:31:88","nodeType":"YulFunctionCall","src":"12559:31:88"},"nativeSrc":"12559:31:88","nodeType":"YulExpressionStatement","src":"12559:31:88"},{"nativeSrc":"12599:15:88","nodeType":"YulAssignment","src":"12599:15:88","value":{"name":"value","nativeSrc":"12609:5:88","nodeType":"YulIdentifier","src":"12609:5:88"},"variableNames":[{"name":"value1","nativeSrc":"12599:6:88","nodeType":"YulIdentifier","src":"12599:6:88"}]},{"nativeSrc":"12623:48:88","nodeType":"YulVariableDeclaration","src":"12623:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12655:9:88","nodeType":"YulIdentifier","src":"12655:9:88"},{"kind":"number","nativeSrc":"12666:3:88","nodeType":"YulLiteral","src":"12666:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"12651:3:88","nodeType":"YulIdentifier","src":"12651:3:88"},"nativeSrc":"12651:19:88","nodeType":"YulFunctionCall","src":"12651:19:88"}],"functionName":{"name":"calldataload","nativeSrc":"12638:12:88","nodeType":"YulIdentifier","src":"12638:12:88"},"nativeSrc":"12638:33:88","nodeType":"YulFunctionCall","src":"12638:33:88"},"variables":[{"name":"value_1","nativeSrc":"12627:7:88","nodeType":"YulTypedName","src":"12627:7:88","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"12705:7:88","nodeType":"YulIdentifier","src":"12705:7:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12680:24:88","nodeType":"YulIdentifier","src":"12680:24:88"},"nativeSrc":"12680:33:88","nodeType":"YulFunctionCall","src":"12680:33:88"},"nativeSrc":"12680:33:88","nodeType":"YulExpressionStatement","src":"12680:33:88"},{"nativeSrc":"12722:17:88","nodeType":"YulAssignment","src":"12722:17:88","value":{"name":"value_1","nativeSrc":"12732:7:88","nodeType":"YulIdentifier","src":"12732:7:88"},"variableNames":[{"name":"value2","nativeSrc":"12722:6:88","nodeType":"YulIdentifier","src":"12722:6:88"}]},{"nativeSrc":"12748:48:88","nodeType":"YulAssignment","src":"12748:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12780:9:88","nodeType":"YulIdentifier","src":"12780:9:88"},{"kind":"number","nativeSrc":"12791:3:88","nodeType":"YulLiteral","src":"12791:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"12776:3:88","nodeType":"YulIdentifier","src":"12776:3:88"},"nativeSrc":"12776:19:88","nodeType":"YulFunctionCall","src":"12776:19:88"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"12758:17:88","nodeType":"YulIdentifier","src":"12758:17:88"},"nativeSrc":"12758:38:88","nodeType":"YulFunctionCall","src":"12758:38:88"},"variableNames":[{"name":"value3","nativeSrc":"12748:6:88","nodeType":"YulIdentifier","src":"12748:6:88"}]}]},"name":"abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96","nativeSrc":"12216:586:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12307:9:88","nodeType":"YulTypedName","src":"12307:9:88","type":""},{"name":"dataEnd","nativeSrc":"12318:7:88","nodeType":"YulTypedName","src":"12318:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12330:6:88","nodeType":"YulTypedName","src":"12330:6:88","type":""},{"name":"value1","nativeSrc":"12338:6:88","nodeType":"YulTypedName","src":"12338:6:88","type":""},{"name":"value2","nativeSrc":"12346:6:88","nodeType":"YulTypedName","src":"12346:6:88","type":""},{"name":"value3","nativeSrc":"12354:6:88","nodeType":"YulTypedName","src":"12354:6:88","type":""}],"src":"12216:586:88"},{"body":{"nativeSrc":"12862:325:88","nodeType":"YulBlock","src":"12862:325:88","statements":[{"nativeSrc":"12872:22:88","nodeType":"YulAssignment","src":"12872:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"12886:1:88","nodeType":"YulLiteral","src":"12886:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"12889:4:88","nodeType":"YulIdentifier","src":"12889:4:88"}],"functionName":{"name":"shr","nativeSrc":"12882:3:88","nodeType":"YulIdentifier","src":"12882:3:88"},"nativeSrc":"12882:12:88","nodeType":"YulFunctionCall","src":"12882:12:88"},"variableNames":[{"name":"length","nativeSrc":"12872:6:88","nodeType":"YulIdentifier","src":"12872:6:88"}]},{"nativeSrc":"12903:38:88","nodeType":"YulVariableDeclaration","src":"12903:38:88","value":{"arguments":[{"name":"data","nativeSrc":"12933:4:88","nodeType":"YulIdentifier","src":"12933:4:88"},{"kind":"number","nativeSrc":"12939:1:88","nodeType":"YulLiteral","src":"12939:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"12929:3:88","nodeType":"YulIdentifier","src":"12929:3:88"},"nativeSrc":"12929:12:88","nodeType":"YulFunctionCall","src":"12929:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"12907:18:88","nodeType":"YulTypedName","src":"12907:18:88","type":""}]},{"body":{"nativeSrc":"12980:31:88","nodeType":"YulBlock","src":"12980:31:88","statements":[{"nativeSrc":"12982:27:88","nodeType":"YulAssignment","src":"12982:27:88","value":{"arguments":[{"name":"length","nativeSrc":"12996:6:88","nodeType":"YulIdentifier","src":"12996:6:88"},{"kind":"number","nativeSrc":"13004:4:88","nodeType":"YulLiteral","src":"13004:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"12992:3:88","nodeType":"YulIdentifier","src":"12992:3:88"},"nativeSrc":"12992:17:88","nodeType":"YulFunctionCall","src":"12992:17:88"},"variableNames":[{"name":"length","nativeSrc":"12982:6:88","nodeType":"YulIdentifier","src":"12982:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"12960:18:88","nodeType":"YulIdentifier","src":"12960:18:88"}],"functionName":{"name":"iszero","nativeSrc":"12953:6:88","nodeType":"YulIdentifier","src":"12953:6:88"},"nativeSrc":"12953:26:88","nodeType":"YulFunctionCall","src":"12953:26:88"},"nativeSrc":"12950:61:88","nodeType":"YulIf","src":"12950:61:88"},{"body":{"nativeSrc":"13070:111:88","nodeType":"YulBlock","src":"13070:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13091:1:88","nodeType":"YulLiteral","src":"13091:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"13098:3:88","nodeType":"YulLiteral","src":"13098:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"13103:10:88","nodeType":"YulLiteral","src":"13103:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"13094:3:88","nodeType":"YulIdentifier","src":"13094:3:88"},"nativeSrc":"13094:20:88","nodeType":"YulFunctionCall","src":"13094:20:88"}],"functionName":{"name":"mstore","nativeSrc":"13084:6:88","nodeType":"YulIdentifier","src":"13084:6:88"},"nativeSrc":"13084:31:88","nodeType":"YulFunctionCall","src":"13084:31:88"},"nativeSrc":"13084:31:88","nodeType":"YulExpressionStatement","src":"13084:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13135:1:88","nodeType":"YulLiteral","src":"13135:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"13138:4:88","nodeType":"YulLiteral","src":"13138:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"13128:6:88","nodeType":"YulIdentifier","src":"13128:6:88"},"nativeSrc":"13128:15:88","nodeType":"YulFunctionCall","src":"13128:15:88"},"nativeSrc":"13128:15:88","nodeType":"YulExpressionStatement","src":"13128:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13163:1:88","nodeType":"YulLiteral","src":"13163:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13166:4:88","nodeType":"YulLiteral","src":"13166:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13156:6:88","nodeType":"YulIdentifier","src":"13156:6:88"},"nativeSrc":"13156:15:88","nodeType":"YulFunctionCall","src":"13156:15:88"},"nativeSrc":"13156:15:88","nodeType":"YulExpressionStatement","src":"13156:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"13026:18:88","nodeType":"YulIdentifier","src":"13026:18:88"},{"arguments":[{"name":"length","nativeSrc":"13049:6:88","nodeType":"YulIdentifier","src":"13049:6:88"},{"kind":"number","nativeSrc":"13057:2:88","nodeType":"YulLiteral","src":"13057:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"13046:2:88","nodeType":"YulIdentifier","src":"13046:2:88"},"nativeSrc":"13046:14:88","nodeType":"YulFunctionCall","src":"13046:14:88"}],"functionName":{"name":"eq","nativeSrc":"13023:2:88","nodeType":"YulIdentifier","src":"13023:2:88"},"nativeSrc":"13023:38:88","nodeType":"YulFunctionCall","src":"13023:38:88"},"nativeSrc":"13020:161:88","nodeType":"YulIf","src":"13020:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"12807:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"12842:4:88","nodeType":"YulTypedName","src":"12842:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"12851:6:88","nodeType":"YulTypedName","src":"12851:6:88","type":""}],"src":"12807:380:88"},{"body":{"nativeSrc":"13297:170:88","nodeType":"YulBlock","src":"13297:170:88","statements":[{"body":{"nativeSrc":"13343:16:88","nodeType":"YulBlock","src":"13343:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13352:1:88","nodeType":"YulLiteral","src":"13352:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"13355:1:88","nodeType":"YulLiteral","src":"13355:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13345:6:88","nodeType":"YulIdentifier","src":"13345:6:88"},"nativeSrc":"13345:12:88","nodeType":"YulFunctionCall","src":"13345:12:88"},"nativeSrc":"13345:12:88","nodeType":"YulExpressionStatement","src":"13345:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13318:7:88","nodeType":"YulIdentifier","src":"13318:7:88"},{"name":"headStart","nativeSrc":"13327:9:88","nodeType":"YulIdentifier","src":"13327:9:88"}],"functionName":{"name":"sub","nativeSrc":"13314:3:88","nodeType":"YulIdentifier","src":"13314:3:88"},"nativeSrc":"13314:23:88","nodeType":"YulFunctionCall","src":"13314:23:88"},{"kind":"number","nativeSrc":"13339:2:88","nodeType":"YulLiteral","src":"13339:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13310:3:88","nodeType":"YulIdentifier","src":"13310:3:88"},"nativeSrc":"13310:32:88","nodeType":"YulFunctionCall","src":"13310:32:88"},"nativeSrc":"13307:52:88","nodeType":"YulIf","src":"13307:52:88"},{"nativeSrc":"13368:29:88","nodeType":"YulVariableDeclaration","src":"13368:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13387:9:88","nodeType":"YulIdentifier","src":"13387:9:88"}],"functionName":{"name":"mload","nativeSrc":"13381:5:88","nodeType":"YulIdentifier","src":"13381:5:88"},"nativeSrc":"13381:16:88","nodeType":"YulFunctionCall","src":"13381:16:88"},"variables":[{"name":"value","nativeSrc":"13372:5:88","nodeType":"YulTypedName","src":"13372:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13431:5:88","nodeType":"YulIdentifier","src":"13431:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13406:24:88","nodeType":"YulIdentifier","src":"13406:24:88"},"nativeSrc":"13406:31:88","nodeType":"YulFunctionCall","src":"13406:31:88"},"nativeSrc":"13406:31:88","nodeType":"YulExpressionStatement","src":"13406:31:88"},{"nativeSrc":"13446:15:88","nodeType":"YulAssignment","src":"13446:15:88","value":{"name":"value","nativeSrc":"13456:5:88","nodeType":"YulIdentifier","src":"13456:5:88"},"variableNames":[{"name":"value0","nativeSrc":"13446:6:88","nodeType":"YulIdentifier","src":"13446:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory","nativeSrc":"13192:275:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13263:9:88","nodeType":"YulTypedName","src":"13263:9:88","type":""},{"name":"dataEnd","nativeSrc":"13274:7:88","nodeType":"YulTypedName","src":"13274:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13286:6:88","nodeType":"YulTypedName","src":"13286:6:88","type":""}],"src":"13192:275:88"},{"body":{"nativeSrc":"13651:274:88","nodeType":"YulBlock","src":"13651:274:88","statements":[{"nativeSrc":"13661:27:88","nodeType":"YulAssignment","src":"13661:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"13673:9:88","nodeType":"YulIdentifier","src":"13673:9:88"},{"kind":"number","nativeSrc":"13684:3:88","nodeType":"YulLiteral","src":"13684:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13669:3:88","nodeType":"YulIdentifier","src":"13669:3:88"},"nativeSrc":"13669:19:88","nodeType":"YulFunctionCall","src":"13669:19:88"},"variableNames":[{"name":"tail","nativeSrc":"13661:4:88","nodeType":"YulIdentifier","src":"13661:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13704:9:88","nodeType":"YulIdentifier","src":"13704:9:88"},{"arguments":[{"name":"value0","nativeSrc":"13719:6:88","nodeType":"YulIdentifier","src":"13719:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13735:3:88","nodeType":"YulLiteral","src":"13735:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13740:1:88","nodeType":"YulLiteral","src":"13740:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13731:3:88","nodeType":"YulIdentifier","src":"13731:3:88"},"nativeSrc":"13731:11:88","nodeType":"YulFunctionCall","src":"13731:11:88"},{"kind":"number","nativeSrc":"13744:1:88","nodeType":"YulLiteral","src":"13744:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13727:3:88","nodeType":"YulIdentifier","src":"13727:3:88"},"nativeSrc":"13727:19:88","nodeType":"YulFunctionCall","src":"13727:19:88"}],"functionName":{"name":"and","nativeSrc":"13715:3:88","nodeType":"YulIdentifier","src":"13715:3:88"},"nativeSrc":"13715:32:88","nodeType":"YulFunctionCall","src":"13715:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13697:6:88","nodeType":"YulIdentifier","src":"13697:6:88"},"nativeSrc":"13697:51:88","nodeType":"YulFunctionCall","src":"13697:51:88"},"nativeSrc":"13697:51:88","nodeType":"YulExpressionStatement","src":"13697:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13768:9:88","nodeType":"YulIdentifier","src":"13768:9:88"},{"kind":"number","nativeSrc":"13779:2:88","nodeType":"YulLiteral","src":"13779:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13764:3:88","nodeType":"YulIdentifier","src":"13764:3:88"},"nativeSrc":"13764:18:88","nodeType":"YulFunctionCall","src":"13764:18:88"},{"name":"value1","nativeSrc":"13784:6:88","nodeType":"YulIdentifier","src":"13784:6:88"}],"functionName":{"name":"mstore","nativeSrc":"13757:6:88","nodeType":"YulIdentifier","src":"13757:6:88"},"nativeSrc":"13757:34:88","nodeType":"YulFunctionCall","src":"13757:34:88"},"nativeSrc":"13757:34:88","nodeType":"YulExpressionStatement","src":"13757:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13811:9:88","nodeType":"YulIdentifier","src":"13811:9:88"},{"kind":"number","nativeSrc":"13822:2:88","nodeType":"YulLiteral","src":"13822:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13807:3:88","nodeType":"YulIdentifier","src":"13807:3:88"},"nativeSrc":"13807:18:88","nodeType":"YulFunctionCall","src":"13807:18:88"},{"arguments":[{"name":"value2","nativeSrc":"13831:6:88","nodeType":"YulIdentifier","src":"13831:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13847:3:88","nodeType":"YulLiteral","src":"13847:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"13852:1:88","nodeType":"YulLiteral","src":"13852:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"13843:3:88","nodeType":"YulIdentifier","src":"13843:3:88"},"nativeSrc":"13843:11:88","nodeType":"YulFunctionCall","src":"13843:11:88"},{"kind":"number","nativeSrc":"13856:1:88","nodeType":"YulLiteral","src":"13856:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"13839:3:88","nodeType":"YulIdentifier","src":"13839:3:88"},"nativeSrc":"13839:19:88","nodeType":"YulFunctionCall","src":"13839:19:88"}],"functionName":{"name":"and","nativeSrc":"13827:3:88","nodeType":"YulIdentifier","src":"13827:3:88"},"nativeSrc":"13827:32:88","nodeType":"YulFunctionCall","src":"13827:32:88"}],"functionName":{"name":"mstore","nativeSrc":"13800:6:88","nodeType":"YulIdentifier","src":"13800:6:88"},"nativeSrc":"13800:60:88","nodeType":"YulFunctionCall","src":"13800:60:88"},"nativeSrc":"13800:60:88","nodeType":"YulExpressionStatement","src":"13800:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13880:9:88","nodeType":"YulIdentifier","src":"13880:9:88"},{"kind":"number","nativeSrc":"13891:2:88","nodeType":"YulLiteral","src":"13891:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13876:3:88","nodeType":"YulIdentifier","src":"13876:3:88"},"nativeSrc":"13876:18:88","nodeType":"YulFunctionCall","src":"13876:18:88"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"13910:6:88","nodeType":"YulIdentifier","src":"13910:6:88"}],"functionName":{"name":"iszero","nativeSrc":"13903:6:88","nodeType":"YulIdentifier","src":"13903:6:88"},"nativeSrc":"13903:14:88","nodeType":"YulFunctionCall","src":"13903:14:88"}],"functionName":{"name":"iszero","nativeSrc":"13896:6:88","nodeType":"YulIdentifier","src":"13896:6:88"},"nativeSrc":"13896:22:88","nodeType":"YulFunctionCall","src":"13896:22:88"}],"functionName":{"name":"mstore","nativeSrc":"13869:6:88","nodeType":"YulIdentifier","src":"13869:6:88"},"nativeSrc":"13869:50:88","nodeType":"YulFunctionCall","src":"13869:50:88"},"nativeSrc":"13869:50:88","nodeType":"YulExpressionStatement","src":"13869:50:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"13472:453:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13596:9:88","nodeType":"YulTypedName","src":"13596:9:88","type":""},{"name":"value3","nativeSrc":"13607:6:88","nodeType":"YulTypedName","src":"13607:6:88","type":""},{"name":"value2","nativeSrc":"13615:6:88","nodeType":"YulTypedName","src":"13615:6:88","type":""},{"name":"value1","nativeSrc":"13623:6:88","nodeType":"YulTypedName","src":"13623:6:88","type":""},{"name":"value0","nativeSrc":"13631:6:88","nodeType":"YulTypedName","src":"13631:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13642:4:88","nodeType":"YulTypedName","src":"13642:4:88","type":""}],"src":"13472:453:88"},{"body":{"nativeSrc":"14011:170:88","nodeType":"YulBlock","src":"14011:170:88","statements":[{"body":{"nativeSrc":"14057:16:88","nodeType":"YulBlock","src":"14057:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14066:1:88","nodeType":"YulLiteral","src":"14066:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"14069:1:88","nodeType":"YulLiteral","src":"14069:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14059:6:88","nodeType":"YulIdentifier","src":"14059:6:88"},"nativeSrc":"14059:12:88","nodeType":"YulFunctionCall","src":"14059:12:88"},"nativeSrc":"14059:12:88","nodeType":"YulExpressionStatement","src":"14059:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14032:7:88","nodeType":"YulIdentifier","src":"14032:7:88"},{"name":"headStart","nativeSrc":"14041:9:88","nodeType":"YulIdentifier","src":"14041:9:88"}],"functionName":{"name":"sub","nativeSrc":"14028:3:88","nodeType":"YulIdentifier","src":"14028:3:88"},"nativeSrc":"14028:23:88","nodeType":"YulFunctionCall","src":"14028:23:88"},{"kind":"number","nativeSrc":"14053:2:88","nodeType":"YulLiteral","src":"14053:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14024:3:88","nodeType":"YulIdentifier","src":"14024:3:88"},"nativeSrc":"14024:32:88","nodeType":"YulFunctionCall","src":"14024:32:88"},"nativeSrc":"14021:52:88","nodeType":"YulIf","src":"14021:52:88"},{"nativeSrc":"14082:29:88","nodeType":"YulVariableDeclaration","src":"14082:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14101:9:88","nodeType":"YulIdentifier","src":"14101:9:88"}],"functionName":{"name":"mload","nativeSrc":"14095:5:88","nodeType":"YulIdentifier","src":"14095:5:88"},"nativeSrc":"14095:16:88","nodeType":"YulFunctionCall","src":"14095:16:88"},"variables":[{"name":"value","nativeSrc":"14086:5:88","nodeType":"YulTypedName","src":"14086:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14145:5:88","nodeType":"YulIdentifier","src":"14145:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"14120:24:88","nodeType":"YulIdentifier","src":"14120:24:88"},"nativeSrc":"14120:31:88","nodeType":"YulFunctionCall","src":"14120:31:88"},"nativeSrc":"14120:31:88","nodeType":"YulExpressionStatement","src":"14120:31:88"},{"nativeSrc":"14160:15:88","nodeType":"YulAssignment","src":"14160:15:88","value":{"name":"value","nativeSrc":"14170:5:88","nodeType":"YulIdentifier","src":"14170:5:88"},"variableNames":[{"name":"value0","nativeSrc":"14160:6:88","nodeType":"YulIdentifier","src":"14160:6:88"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"13930:251:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13977:9:88","nodeType":"YulTypedName","src":"13977:9:88","type":""},{"name":"dataEnd","nativeSrc":"13988:7:88","nodeType":"YulTypedName","src":"13988:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14000:6:88","nodeType":"YulTypedName","src":"14000:6:88","type":""}],"src":"13930:251:88"},{"body":{"nativeSrc":"14360:234:88","nodeType":"YulBlock","src":"14360:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14377:9:88","nodeType":"YulIdentifier","src":"14377:9:88"},{"kind":"number","nativeSrc":"14388:2:88","nodeType":"YulLiteral","src":"14388:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14370:6:88","nodeType":"YulIdentifier","src":"14370:6:88"},"nativeSrc":"14370:21:88","nodeType":"YulFunctionCall","src":"14370:21:88"},"nativeSrc":"14370:21:88","nodeType":"YulExpressionStatement","src":"14370:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14411:9:88","nodeType":"YulIdentifier","src":"14411:9:88"},{"kind":"number","nativeSrc":"14422:2:88","nodeType":"YulLiteral","src":"14422:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14407:3:88","nodeType":"YulIdentifier","src":"14407:3:88"},"nativeSrc":"14407:18:88","nodeType":"YulFunctionCall","src":"14407:18:88"},{"kind":"number","nativeSrc":"14427:2:88","nodeType":"YulLiteral","src":"14427:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"14400:6:88","nodeType":"YulIdentifier","src":"14400:6:88"},"nativeSrc":"14400:30:88","nodeType":"YulFunctionCall","src":"14400:30:88"},"nativeSrc":"14400:30:88","nodeType":"YulExpressionStatement","src":"14400:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14450:9:88","nodeType":"YulIdentifier","src":"14450:9:88"},{"kind":"number","nativeSrc":"14461:2:88","nodeType":"YulLiteral","src":"14461:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14446:3:88","nodeType":"YulIdentifier","src":"14446:3:88"},"nativeSrc":"14446:18:88","nodeType":"YulFunctionCall","src":"14446:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"14466:34:88","nodeType":"YulLiteral","src":"14466:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"14439:6:88","nodeType":"YulIdentifier","src":"14439:6:88"},"nativeSrc":"14439:62:88","nodeType":"YulFunctionCall","src":"14439:62:88"},"nativeSrc":"14439:62:88","nodeType":"YulExpressionStatement","src":"14439:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14521:9:88","nodeType":"YulIdentifier","src":"14521:9:88"},{"kind":"number","nativeSrc":"14532:2:88","nodeType":"YulLiteral","src":"14532:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14517:3:88","nodeType":"YulIdentifier","src":"14517:3:88"},"nativeSrc":"14517:18:88","nodeType":"YulFunctionCall","src":"14517:18:88"},{"hexValue":"64656c656761746563616c6c","kind":"string","nativeSrc":"14537:14:88","nodeType":"YulLiteral","src":"14537:14:88","type":"","value":"delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"14510:6:88","nodeType":"YulIdentifier","src":"14510:6:88"},"nativeSrc":"14510:42:88","nodeType":"YulFunctionCall","src":"14510:42:88"},"nativeSrc":"14510:42:88","nodeType":"YulExpressionStatement","src":"14510:42:88"},{"nativeSrc":"14561:27:88","nodeType":"YulAssignment","src":"14561:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14573:9:88","nodeType":"YulIdentifier","src":"14573:9:88"},{"kind":"number","nativeSrc":"14584:3:88","nodeType":"YulLiteral","src":"14584:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14569:3:88","nodeType":"YulIdentifier","src":"14569:3:88"},"nativeSrc":"14569:19:88","nodeType":"YulFunctionCall","src":"14569:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14561:4:88","nodeType":"YulIdentifier","src":"14561:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14186:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14337:9:88","nodeType":"YulTypedName","src":"14337:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14351:4:88","nodeType":"YulTypedName","src":"14351:4:88","type":""}],"src":"14186:408:88"},{"body":{"nativeSrc":"14773:234:88","nodeType":"YulBlock","src":"14773:234:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14790:9:88","nodeType":"YulIdentifier","src":"14790:9:88"},{"kind":"number","nativeSrc":"14801:2:88","nodeType":"YulLiteral","src":"14801:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14783:6:88","nodeType":"YulIdentifier","src":"14783:6:88"},"nativeSrc":"14783:21:88","nodeType":"YulFunctionCall","src":"14783:21:88"},"nativeSrc":"14783:21:88","nodeType":"YulExpressionStatement","src":"14783:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14824:9:88","nodeType":"YulIdentifier","src":"14824:9:88"},{"kind":"number","nativeSrc":"14835:2:88","nodeType":"YulLiteral","src":"14835:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14820:3:88","nodeType":"YulIdentifier","src":"14820:3:88"},"nativeSrc":"14820:18:88","nodeType":"YulFunctionCall","src":"14820:18:88"},{"kind":"number","nativeSrc":"14840:2:88","nodeType":"YulLiteral","src":"14840:2:88","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"14813:6:88","nodeType":"YulIdentifier","src":"14813:6:88"},"nativeSrc":"14813:30:88","nodeType":"YulFunctionCall","src":"14813:30:88"},"nativeSrc":"14813:30:88","nodeType":"YulExpressionStatement","src":"14813:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14863:9:88","nodeType":"YulIdentifier","src":"14863:9:88"},{"kind":"number","nativeSrc":"14874:2:88","nodeType":"YulLiteral","src":"14874:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14859:3:88","nodeType":"YulIdentifier","src":"14859:3:88"},"nativeSrc":"14859:18:88","nodeType":"YulFunctionCall","src":"14859:18:88"},{"hexValue":"46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820","kind":"string","nativeSrc":"14879:34:88","nodeType":"YulLiteral","src":"14879:34:88","type":"","value":"Function must be called through "}],"functionName":{"name":"mstore","nativeSrc":"14852:6:88","nodeType":"YulIdentifier","src":"14852:6:88"},"nativeSrc":"14852:62:88","nodeType":"YulFunctionCall","src":"14852:62:88"},"nativeSrc":"14852:62:88","nodeType":"YulExpressionStatement","src":"14852:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14934:9:88","nodeType":"YulIdentifier","src":"14934:9:88"},{"kind":"number","nativeSrc":"14945:2:88","nodeType":"YulLiteral","src":"14945:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14930:3:88","nodeType":"YulIdentifier","src":"14930:3:88"},"nativeSrc":"14930:18:88","nodeType":"YulFunctionCall","src":"14930:18:88"},{"hexValue":"6163746976652070726f7879","kind":"string","nativeSrc":"14950:14:88","nodeType":"YulLiteral","src":"14950:14:88","type":"","value":"active proxy"}],"functionName":{"name":"mstore","nativeSrc":"14923:6:88","nodeType":"YulIdentifier","src":"14923:6:88"},"nativeSrc":"14923:42:88","nodeType":"YulFunctionCall","src":"14923:42:88"},"nativeSrc":"14923:42:88","nodeType":"YulExpressionStatement","src":"14923:42:88"},{"nativeSrc":"14974:27:88","nodeType":"YulAssignment","src":"14974:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"14986:9:88","nodeType":"YulIdentifier","src":"14986:9:88"},{"kind":"number","nativeSrc":"14997:3:88","nodeType":"YulLiteral","src":"14997:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14982:3:88","nodeType":"YulIdentifier","src":"14982:3:88"},"nativeSrc":"14982:19:88","nodeType":"YulFunctionCall","src":"14982:19:88"},"variableNames":[{"name":"tail","nativeSrc":"14974:4:88","nodeType":"YulIdentifier","src":"14974:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14599:408:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14750:9:88","nodeType":"YulTypedName","src":"14750:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14764:4:88","nodeType":"YulTypedName","src":"14764:4:88","type":""}],"src":"14599:408:88"},{"body":{"nativeSrc":"15219:318:88","nodeType":"YulBlock","src":"15219:318:88","statements":[{"nativeSrc":"15229:27:88","nodeType":"YulAssignment","src":"15229:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15241:9:88","nodeType":"YulIdentifier","src":"15241:9:88"},{"kind":"number","nativeSrc":"15252:3:88","nodeType":"YulLiteral","src":"15252:3:88","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15237:3:88","nodeType":"YulIdentifier","src":"15237:3:88"},"nativeSrc":"15237:19:88","nodeType":"YulFunctionCall","src":"15237:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15229:4:88","nodeType":"YulIdentifier","src":"15229:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15272:9:88","nodeType":"YulIdentifier","src":"15272:9:88"},{"arguments":[{"name":"value0","nativeSrc":"15287:6:88","nodeType":"YulIdentifier","src":"15287:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15303:3:88","nodeType":"YulLiteral","src":"15303:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15308:1:88","nodeType":"YulLiteral","src":"15308:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15299:3:88","nodeType":"YulIdentifier","src":"15299:3:88"},"nativeSrc":"15299:11:88","nodeType":"YulFunctionCall","src":"15299:11:88"},{"kind":"number","nativeSrc":"15312:1:88","nodeType":"YulLiteral","src":"15312:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15295:3:88","nodeType":"YulIdentifier","src":"15295:3:88"},"nativeSrc":"15295:19:88","nodeType":"YulFunctionCall","src":"15295:19:88"}],"functionName":{"name":"and","nativeSrc":"15283:3:88","nodeType":"YulIdentifier","src":"15283:3:88"},"nativeSrc":"15283:32:88","nodeType":"YulFunctionCall","src":"15283:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15265:6:88","nodeType":"YulIdentifier","src":"15265:6:88"},"nativeSrc":"15265:51:88","nodeType":"YulFunctionCall","src":"15265:51:88"},"nativeSrc":"15265:51:88","nodeType":"YulExpressionStatement","src":"15265:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15336:9:88","nodeType":"YulIdentifier","src":"15336:9:88"},{"kind":"number","nativeSrc":"15347:2:88","nodeType":"YulLiteral","src":"15347:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15332:3:88","nodeType":"YulIdentifier","src":"15332:3:88"},"nativeSrc":"15332:18:88","nodeType":"YulFunctionCall","src":"15332:18:88"},{"name":"value1","nativeSrc":"15352:6:88","nodeType":"YulIdentifier","src":"15352:6:88"}],"functionName":{"name":"mstore","nativeSrc":"15325:6:88","nodeType":"YulIdentifier","src":"15325:6:88"},"nativeSrc":"15325:34:88","nodeType":"YulFunctionCall","src":"15325:34:88"},"nativeSrc":"15325:34:88","nodeType":"YulExpressionStatement","src":"15325:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15379:9:88","nodeType":"YulIdentifier","src":"15379:9:88"},{"kind":"number","nativeSrc":"15390:2:88","nodeType":"YulLiteral","src":"15390:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15375:3:88","nodeType":"YulIdentifier","src":"15375:3:88"},"nativeSrc":"15375:18:88","nodeType":"YulFunctionCall","src":"15375:18:88"},{"name":"value2","nativeSrc":"15395:6:88","nodeType":"YulIdentifier","src":"15395:6:88"}],"functionName":{"name":"mstore","nativeSrc":"15368:6:88","nodeType":"YulIdentifier","src":"15368:6:88"},"nativeSrc":"15368:34:88","nodeType":"YulFunctionCall","src":"15368:34:88"},"nativeSrc":"15368:34:88","nodeType":"YulExpressionStatement","src":"15368:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15422:9:88","nodeType":"YulIdentifier","src":"15422:9:88"},{"kind":"number","nativeSrc":"15433:2:88","nodeType":"YulLiteral","src":"15433:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15418:3:88","nodeType":"YulIdentifier","src":"15418:3:88"},"nativeSrc":"15418:18:88","nodeType":"YulFunctionCall","src":"15418:18:88"},{"arguments":[{"name":"value3","nativeSrc":"15442:6:88","nodeType":"YulIdentifier","src":"15442:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15458:3:88","nodeType":"YulLiteral","src":"15458:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"15463:1:88","nodeType":"YulLiteral","src":"15463:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15454:3:88","nodeType":"YulIdentifier","src":"15454:3:88"},"nativeSrc":"15454:11:88","nodeType":"YulFunctionCall","src":"15454:11:88"},{"kind":"number","nativeSrc":"15467:1:88","nodeType":"YulLiteral","src":"15467:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15450:3:88","nodeType":"YulIdentifier","src":"15450:3:88"},"nativeSrc":"15450:19:88","nodeType":"YulFunctionCall","src":"15450:19:88"}],"functionName":{"name":"and","nativeSrc":"15438:3:88","nodeType":"YulIdentifier","src":"15438:3:88"},"nativeSrc":"15438:32:88","nodeType":"YulFunctionCall","src":"15438:32:88"}],"functionName":{"name":"mstore","nativeSrc":"15411:6:88","nodeType":"YulIdentifier","src":"15411:6:88"},"nativeSrc":"15411:60:88","nodeType":"YulFunctionCall","src":"15411:60:88"},"nativeSrc":"15411:60:88","nodeType":"YulExpressionStatement","src":"15411:60:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15491:9:88","nodeType":"YulIdentifier","src":"15491:9:88"},{"kind":"number","nativeSrc":"15502:3:88","nodeType":"YulLiteral","src":"15502:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15487:3:88","nodeType":"YulIdentifier","src":"15487:3:88"},"nativeSrc":"15487:19:88","nodeType":"YulFunctionCall","src":"15487:19:88"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"15522:6:88","nodeType":"YulIdentifier","src":"15522:6:88"}],"functionName":{"name":"iszero","nativeSrc":"15515:6:88","nodeType":"YulIdentifier","src":"15515:6:88"},"nativeSrc":"15515:14:88","nodeType":"YulFunctionCall","src":"15515:14:88"}],"functionName":{"name":"iszero","nativeSrc":"15508:6:88","nodeType":"YulIdentifier","src":"15508:6:88"},"nativeSrc":"15508:22:88","nodeType":"YulFunctionCall","src":"15508:22:88"}],"functionName":{"name":"mstore","nativeSrc":"15480:6:88","nodeType":"YulIdentifier","src":"15480:6:88"},"nativeSrc":"15480:51:88","nodeType":"YulFunctionCall","src":"15480:51:88"},"nativeSrc":"15480:51:88","nodeType":"YulExpressionStatement","src":"15480:51:88"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nativeSrc":"15012:525:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15156:9:88","nodeType":"YulTypedName","src":"15156:9:88","type":""},{"name":"value4","nativeSrc":"15167:6:88","nodeType":"YulTypedName","src":"15167:6:88","type":""},{"name":"value3","nativeSrc":"15175:6:88","nodeType":"YulTypedName","src":"15175:6:88","type":""},{"name":"value2","nativeSrc":"15183:6:88","nodeType":"YulTypedName","src":"15183:6:88","type":""},{"name":"value1","nativeSrc":"15191:6:88","nodeType":"YulTypedName","src":"15191:6:88","type":""},{"name":"value0","nativeSrc":"15199:6:88","nodeType":"YulTypedName","src":"15199:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15210:4:88","nodeType":"YulTypedName","src":"15210:4:88","type":""}],"src":"15012:525:88"},{"body":{"nativeSrc":"15716:246:88","nodeType":"YulBlock","src":"15716:246:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15733:9:88","nodeType":"YulIdentifier","src":"15733:9:88"},{"kind":"number","nativeSrc":"15744:2:88","nodeType":"YulLiteral","src":"15744:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15726:6:88","nodeType":"YulIdentifier","src":"15726:6:88"},"nativeSrc":"15726:21:88","nodeType":"YulFunctionCall","src":"15726:21:88"},"nativeSrc":"15726:21:88","nodeType":"YulExpressionStatement","src":"15726:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15767:9:88","nodeType":"YulIdentifier","src":"15767:9:88"},{"kind":"number","nativeSrc":"15778:2:88","nodeType":"YulLiteral","src":"15778:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15763:3:88","nodeType":"YulIdentifier","src":"15763:3:88"},"nativeSrc":"15763:18:88","nodeType":"YulFunctionCall","src":"15763:18:88"},{"kind":"number","nativeSrc":"15783:2:88","nodeType":"YulLiteral","src":"15783:2:88","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"15756:6:88","nodeType":"YulIdentifier","src":"15756:6:88"},"nativeSrc":"15756:30:88","nodeType":"YulFunctionCall","src":"15756:30:88"},"nativeSrc":"15756:30:88","nodeType":"YulExpressionStatement","src":"15756:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15806:9:88","nodeType":"YulIdentifier","src":"15806:9:88"},{"kind":"number","nativeSrc":"15817:2:88","nodeType":"YulLiteral","src":"15817:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15802:3:88","nodeType":"YulIdentifier","src":"15802:3:88"},"nativeSrc":"15802:18:88","nodeType":"YulFunctionCall","src":"15802:18:88"},{"hexValue":"555550535570677261646561626c653a206d757374206e6f742062652063616c","kind":"string","nativeSrc":"15822:34:88","nodeType":"YulLiteral","src":"15822:34:88","type":"","value":"UUPSUpgradeable: must not be cal"}],"functionName":{"name":"mstore","nativeSrc":"15795:6:88","nodeType":"YulIdentifier","src":"15795:6:88"},"nativeSrc":"15795:62:88","nodeType":"YulFunctionCall","src":"15795:62:88"},"nativeSrc":"15795:62:88","nodeType":"YulExpressionStatement","src":"15795:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15877:9:88","nodeType":"YulIdentifier","src":"15877:9:88"},{"kind":"number","nativeSrc":"15888:2:88","nodeType":"YulLiteral","src":"15888:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15873:3:88","nodeType":"YulIdentifier","src":"15873:3:88"},"nativeSrc":"15873:18:88","nodeType":"YulFunctionCall","src":"15873:18:88"},{"hexValue":"6c6564207468726f7567682064656c656761746563616c6c","kind":"string","nativeSrc":"15893:26:88","nodeType":"YulLiteral","src":"15893:26:88","type":"","value":"led through delegatecall"}],"functionName":{"name":"mstore","nativeSrc":"15866:6:88","nodeType":"YulIdentifier","src":"15866:6:88"},"nativeSrc":"15866:54:88","nodeType":"YulFunctionCall","src":"15866:54:88"},"nativeSrc":"15866:54:88","nodeType":"YulExpressionStatement","src":"15866:54:88"},{"nativeSrc":"15929:27:88","nodeType":"YulAssignment","src":"15929:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"15941:9:88","nodeType":"YulIdentifier","src":"15941:9:88"},{"kind":"number","nativeSrc":"15952:3:88","nodeType":"YulLiteral","src":"15952:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15937:3:88","nodeType":"YulIdentifier","src":"15937:3:88"},"nativeSrc":"15937:19:88","nodeType":"YulFunctionCall","src":"15937:19:88"},"variableNames":[{"name":"tail","nativeSrc":"15929:4:88","nodeType":"YulIdentifier","src":"15929:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15542:420:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15693:9:88","nodeType":"YulTypedName","src":"15693:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15707:4:88","nodeType":"YulTypedName","src":"15707:4:88","type":""}],"src":"15542:420:88"},{"body":{"nativeSrc":"15999:95:88","nodeType":"YulBlock","src":"15999:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16016:1:88","nodeType":"YulLiteral","src":"16016:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"16023:3:88","nodeType":"YulLiteral","src":"16023:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"16028:10:88","nodeType":"YulLiteral","src":"16028:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"16019:3:88","nodeType":"YulIdentifier","src":"16019:3:88"},"nativeSrc":"16019:20:88","nodeType":"YulFunctionCall","src":"16019:20:88"}],"functionName":{"name":"mstore","nativeSrc":"16009:6:88","nodeType":"YulIdentifier","src":"16009:6:88"},"nativeSrc":"16009:31:88","nodeType":"YulFunctionCall","src":"16009:31:88"},"nativeSrc":"16009:31:88","nodeType":"YulExpressionStatement","src":"16009:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16056:1:88","nodeType":"YulLiteral","src":"16056:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"16059:4:88","nodeType":"YulLiteral","src":"16059:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"16049:6:88","nodeType":"YulIdentifier","src":"16049:6:88"},"nativeSrc":"16049:15:88","nodeType":"YulFunctionCall","src":"16049:15:88"},"nativeSrc":"16049:15:88","nodeType":"YulExpressionStatement","src":"16049:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16080:1:88","nodeType":"YulLiteral","src":"16080:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"16083:4:88","nodeType":"YulLiteral","src":"16083:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16073:6:88","nodeType":"YulIdentifier","src":"16073:6:88"},"nativeSrc":"16073:15:88","nodeType":"YulFunctionCall","src":"16073:15:88"},"nativeSrc":"16073:15:88","nodeType":"YulExpressionStatement","src":"16073:15:88"}]},"name":"panic_error_0x11","nativeSrc":"15967:127:88","nodeType":"YulFunctionDefinition","src":"15967:127:88"},{"body":{"nativeSrc":"16148:79:88","nodeType":"YulBlock","src":"16148:79:88","statements":[{"nativeSrc":"16158:17:88","nodeType":"YulAssignment","src":"16158:17:88","value":{"arguments":[{"name":"x","nativeSrc":"16170:1:88","nodeType":"YulIdentifier","src":"16170:1:88"},{"name":"y","nativeSrc":"16173:1:88","nodeType":"YulIdentifier","src":"16173:1:88"}],"functionName":{"name":"sub","nativeSrc":"16166:3:88","nodeType":"YulIdentifier","src":"16166:3:88"},"nativeSrc":"16166:9:88","nodeType":"YulFunctionCall","src":"16166:9:88"},"variableNames":[{"name":"diff","nativeSrc":"16158:4:88","nodeType":"YulIdentifier","src":"16158:4:88"}]},{"body":{"nativeSrc":"16199:22:88","nodeType":"YulBlock","src":"16199:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"16201:16:88","nodeType":"YulIdentifier","src":"16201:16:88"},"nativeSrc":"16201:18:88","nodeType":"YulFunctionCall","src":"16201:18:88"},"nativeSrc":"16201:18:88","nodeType":"YulExpressionStatement","src":"16201:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"16190:4:88","nodeType":"YulIdentifier","src":"16190:4:88"},{"name":"x","nativeSrc":"16196:1:88","nodeType":"YulIdentifier","src":"16196:1:88"}],"functionName":{"name":"gt","nativeSrc":"16187:2:88","nodeType":"YulIdentifier","src":"16187:2:88"},"nativeSrc":"16187:11:88","nodeType":"YulFunctionCall","src":"16187:11:88"},"nativeSrc":"16184:37:88","nodeType":"YulIf","src":"16184:37:88"}]},"name":"checked_sub_t_uint256","nativeSrc":"16099:128:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"16130:1:88","nodeType":"YulTypedName","src":"16130:1:88","type":""},{"name":"y","nativeSrc":"16133:1:88","nodeType":"YulTypedName","src":"16133:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"16139:4:88","nodeType":"YulTypedName","src":"16139:4:88","type":""}],"src":"16099:128:88"},{"body":{"nativeSrc":"16406:236:88","nodeType":"YulBlock","src":"16406:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16423:9:88","nodeType":"YulIdentifier","src":"16423:9:88"},{"kind":"number","nativeSrc":"16434:2:88","nodeType":"YulLiteral","src":"16434:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16416:6:88","nodeType":"YulIdentifier","src":"16416:6:88"},"nativeSrc":"16416:21:88","nodeType":"YulFunctionCall","src":"16416:21:88"},"nativeSrc":"16416:21:88","nodeType":"YulExpressionStatement","src":"16416:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16457:9:88","nodeType":"YulIdentifier","src":"16457:9:88"},{"kind":"number","nativeSrc":"16468:2:88","nodeType":"YulLiteral","src":"16468:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16453:3:88","nodeType":"YulIdentifier","src":"16453:3:88"},"nativeSrc":"16453:18:88","nodeType":"YulFunctionCall","src":"16453:18:88"},{"kind":"number","nativeSrc":"16473:2:88","nodeType":"YulLiteral","src":"16473:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"16446:6:88","nodeType":"YulIdentifier","src":"16446:6:88"},"nativeSrc":"16446:30:88","nodeType":"YulFunctionCall","src":"16446:30:88"},"nativeSrc":"16446:30:88","nodeType":"YulExpressionStatement","src":"16446:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16496:9:88","nodeType":"YulIdentifier","src":"16496:9:88"},{"kind":"number","nativeSrc":"16507:2:88","nodeType":"YulLiteral","src":"16507:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16492:3:88","nodeType":"YulIdentifier","src":"16492:3:88"},"nativeSrc":"16492:18:88","nodeType":"YulFunctionCall","src":"16492:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"16512:34:88","nodeType":"YulLiteral","src":"16512:34:88","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"16485:6:88","nodeType":"YulIdentifier","src":"16485:6:88"},"nativeSrc":"16485:62:88","nodeType":"YulFunctionCall","src":"16485:62:88"},"nativeSrc":"16485:62:88","nodeType":"YulExpressionStatement","src":"16485:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16567:9:88","nodeType":"YulIdentifier","src":"16567:9:88"},{"kind":"number","nativeSrc":"16578:2:88","nodeType":"YulLiteral","src":"16578:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16563:3:88","nodeType":"YulIdentifier","src":"16563:3:88"},"nativeSrc":"16563:18:88","nodeType":"YulFunctionCall","src":"16563:18:88"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"16583:16:88","nodeType":"YulLiteral","src":"16583:16:88","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"16556:6:88","nodeType":"YulIdentifier","src":"16556:6:88"},"nativeSrc":"16556:44:88","nodeType":"YulFunctionCall","src":"16556:44:88"},"nativeSrc":"16556:44:88","nodeType":"YulExpressionStatement","src":"16556:44:88"},{"nativeSrc":"16609:27:88","nodeType":"YulAssignment","src":"16609:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16621:9:88","nodeType":"YulIdentifier","src":"16621:9:88"},{"kind":"number","nativeSrc":"16632:3:88","nodeType":"YulLiteral","src":"16632:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16617:3:88","nodeType":"YulIdentifier","src":"16617:3:88"},"nativeSrc":"16617:19:88","nodeType":"YulFunctionCall","src":"16617:19:88"},"variableNames":[{"name":"tail","nativeSrc":"16609:4:88","nodeType":"YulIdentifier","src":"16609:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16232:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16383:9:88","nodeType":"YulTypedName","src":"16383:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16397:4:88","nodeType":"YulTypedName","src":"16397:4:88","type":""}],"src":"16232:410:88"},{"body":{"nativeSrc":"16754:87:88","nodeType":"YulBlock","src":"16754:87:88","statements":[{"nativeSrc":"16764:26:88","nodeType":"YulAssignment","src":"16764:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"16776:9:88","nodeType":"YulIdentifier","src":"16776:9:88"},{"kind":"number","nativeSrc":"16787:2:88","nodeType":"YulLiteral","src":"16787:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16772:3:88","nodeType":"YulIdentifier","src":"16772:3:88"},"nativeSrc":"16772:18:88","nodeType":"YulFunctionCall","src":"16772:18:88"},"variableNames":[{"name":"tail","nativeSrc":"16764:4:88","nodeType":"YulIdentifier","src":"16764:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16806:9:88","nodeType":"YulIdentifier","src":"16806:9:88"},{"arguments":[{"name":"value0","nativeSrc":"16821:6:88","nodeType":"YulIdentifier","src":"16821:6:88"},{"kind":"number","nativeSrc":"16829:4:88","nodeType":"YulLiteral","src":"16829:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"16817:3:88","nodeType":"YulIdentifier","src":"16817:3:88"},"nativeSrc":"16817:17:88","nodeType":"YulFunctionCall","src":"16817:17:88"}],"functionName":{"name":"mstore","nativeSrc":"16799:6:88","nodeType":"YulIdentifier","src":"16799:6:88"},"nativeSrc":"16799:36:88","nodeType":"YulFunctionCall","src":"16799:36:88"},"nativeSrc":"16799:36:88","nodeType":"YulExpressionStatement","src":"16799:36:88"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"16647:194:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16723:9:88","nodeType":"YulTypedName","src":"16723:9:88","type":""},{"name":"value0","nativeSrc":"16734:6:88","nodeType":"YulTypedName","src":"16734:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16745:4:88","nodeType":"YulTypedName","src":"16745:4:88","type":""}],"src":"16647:194:88"},{"body":{"nativeSrc":"16889:53:88","nodeType":"YulBlock","src":"16889:53:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16906:3:88","nodeType":"YulIdentifier","src":"16906:3:88"},{"arguments":[{"name":"value","nativeSrc":"16915:5:88","nodeType":"YulIdentifier","src":"16915:5:88"},{"kind":"number","nativeSrc":"16922:12:88","nodeType":"YulLiteral","src":"16922:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"16911:3:88","nodeType":"YulIdentifier","src":"16911:3:88"},"nativeSrc":"16911:24:88","nodeType":"YulFunctionCall","src":"16911:24:88"}],"functionName":{"name":"mstore","nativeSrc":"16899:6:88","nodeType":"YulIdentifier","src":"16899:6:88"},"nativeSrc":"16899:37:88","nodeType":"YulFunctionCall","src":"16899:37:88"},"nativeSrc":"16899:37:88","nodeType":"YulExpressionStatement","src":"16899:37:88"}]},"name":"abi_encode_uint40","nativeSrc":"16846:96:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16873:5:88","nodeType":"YulTypedName","src":"16873:5:88","type":""},{"name":"pos","nativeSrc":"16880:3:88","nodeType":"YulTypedName","src":"16880:3:88","type":""}],"src":"16846:96:88"},{"body":{"nativeSrc":"17010:1676:88","nodeType":"YulBlock","src":"17010:1676:88","statements":[{"nativeSrc":"17020:16:88","nodeType":"YulVariableDeclaration","src":"17020:16:88","value":{"kind":"number","nativeSrc":"17035:1:88","nodeType":"YulLiteral","src":"17035:1:88","type":"","value":"0"},"variables":[{"name":"value_1","nativeSrc":"17024:7:88","nodeType":"YulTypedName","src":"17024:7:88","type":""}]},{"nativeSrc":"17045:30:88","nodeType":"YulAssignment","src":"17045:30:88","value":{"arguments":[{"name":"value","nativeSrc":"17069:5:88","nodeType":"YulIdentifier","src":"17069:5:88"}],"functionName":{"name":"calldataload","nativeSrc":"17056:12:88","nodeType":"YulIdentifier","src":"17056:12:88"},"nativeSrc":"17056:19:88","nodeType":"YulFunctionCall","src":"17056:19:88"},"variableNames":[{"name":"value_1","nativeSrc":"17045:7:88","nodeType":"YulIdentifier","src":"17045:7:88"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17091:3:88","nodeType":"YulIdentifier","src":"17091:3:88"},{"name":"value_1","nativeSrc":"17096:7:88","nodeType":"YulIdentifier","src":"17096:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17084:6:88","nodeType":"YulIdentifier","src":"17084:6:88"},"nativeSrc":"17084:20:88","nodeType":"YulFunctionCall","src":"17084:20:88"},"nativeSrc":"17084:20:88","nodeType":"YulExpressionStatement","src":"17084:20:88"},{"nativeSrc":"17113:16:88","nodeType":"YulVariableDeclaration","src":"17113:16:88","value":{"kind":"number","nativeSrc":"17128:1:88","nodeType":"YulLiteral","src":"17128:1:88","type":"","value":"0"},"variables":[{"name":"value_2","nativeSrc":"17117:7:88","nodeType":"YulTypedName","src":"17117:7:88","type":""}]},{"nativeSrc":"17138:41:88","nodeType":"YulAssignment","src":"17138:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17166:5:88","nodeType":"YulIdentifier","src":"17166:5:88"},{"kind":"number","nativeSrc":"17173:4:88","nodeType":"YulLiteral","src":"17173:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17162:3:88","nodeType":"YulIdentifier","src":"17162:3:88"},"nativeSrc":"17162:16:88","nodeType":"YulFunctionCall","src":"17162:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17149:12:88","nodeType":"YulIdentifier","src":"17149:12:88"},"nativeSrc":"17149:30:88","nodeType":"YulFunctionCall","src":"17149:30:88"},"variableNames":[{"name":"value_2","nativeSrc":"17138:7:88","nodeType":"YulIdentifier","src":"17138:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17199:3:88","nodeType":"YulIdentifier","src":"17199:3:88"},{"kind":"number","nativeSrc":"17204:4:88","nodeType":"YulLiteral","src":"17204:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17195:3:88","nodeType":"YulIdentifier","src":"17195:3:88"},"nativeSrc":"17195:14:88","nodeType":"YulFunctionCall","src":"17195:14:88"},{"name":"value_2","nativeSrc":"17211:7:88","nodeType":"YulIdentifier","src":"17211:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17188:6:88","nodeType":"YulIdentifier","src":"17188:6:88"},"nativeSrc":"17188:31:88","nodeType":"YulFunctionCall","src":"17188:31:88"},"nativeSrc":"17188:31:88","nodeType":"YulExpressionStatement","src":"17188:31:88"},{"nativeSrc":"17228:16:88","nodeType":"YulVariableDeclaration","src":"17228:16:88","value":{"kind":"number","nativeSrc":"17243:1:88","nodeType":"YulLiteral","src":"17243:1:88","type":"","value":"0"},"variables":[{"name":"value_3","nativeSrc":"17232:7:88","nodeType":"YulTypedName","src":"17232:7:88","type":""}]},{"nativeSrc":"17253:41:88","nodeType":"YulAssignment","src":"17253:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17281:5:88","nodeType":"YulIdentifier","src":"17281:5:88"},{"kind":"number","nativeSrc":"17288:4:88","nodeType":"YulLiteral","src":"17288:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17277:3:88","nodeType":"YulIdentifier","src":"17277:3:88"},"nativeSrc":"17277:16:88","nodeType":"YulFunctionCall","src":"17277:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17264:12:88","nodeType":"YulIdentifier","src":"17264:12:88"},"nativeSrc":"17264:30:88","nodeType":"YulFunctionCall","src":"17264:30:88"},"variableNames":[{"name":"value_3","nativeSrc":"17253:7:88","nodeType":"YulIdentifier","src":"17253:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17314:3:88","nodeType":"YulIdentifier","src":"17314:3:88"},{"kind":"number","nativeSrc":"17319:4:88","nodeType":"YulLiteral","src":"17319:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17310:3:88","nodeType":"YulIdentifier","src":"17310:3:88"},"nativeSrc":"17310:14:88","nodeType":"YulFunctionCall","src":"17310:14:88"},{"name":"value_3","nativeSrc":"17326:7:88","nodeType":"YulIdentifier","src":"17326:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17303:6:88","nodeType":"YulIdentifier","src":"17303:6:88"},"nativeSrc":"17303:31:88","nodeType":"YulFunctionCall","src":"17303:31:88"},"nativeSrc":"17303:31:88","nodeType":"YulExpressionStatement","src":"17303:31:88"},{"nativeSrc":"17343:16:88","nodeType":"YulVariableDeclaration","src":"17343:16:88","value":{"kind":"number","nativeSrc":"17358:1:88","nodeType":"YulLiteral","src":"17358:1:88","type":"","value":"0"},"variables":[{"name":"value_4","nativeSrc":"17347:7:88","nodeType":"YulTypedName","src":"17347:7:88","type":""}]},{"nativeSrc":"17368:41:88","nodeType":"YulAssignment","src":"17368:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17396:5:88","nodeType":"YulIdentifier","src":"17396:5:88"},{"kind":"number","nativeSrc":"17403:4:88","nodeType":"YulLiteral","src":"17403:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17392:3:88","nodeType":"YulIdentifier","src":"17392:3:88"},"nativeSrc":"17392:16:88","nodeType":"YulFunctionCall","src":"17392:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17379:12:88","nodeType":"YulIdentifier","src":"17379:12:88"},"nativeSrc":"17379:30:88","nodeType":"YulFunctionCall","src":"17379:30:88"},"variableNames":[{"name":"value_4","nativeSrc":"17368:7:88","nodeType":"YulIdentifier","src":"17368:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17429:3:88","nodeType":"YulIdentifier","src":"17429:3:88"},{"kind":"number","nativeSrc":"17434:4:88","nodeType":"YulLiteral","src":"17434:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17425:3:88","nodeType":"YulIdentifier","src":"17425:3:88"},"nativeSrc":"17425:14:88","nodeType":"YulFunctionCall","src":"17425:14:88"},{"name":"value_4","nativeSrc":"17441:7:88","nodeType":"YulIdentifier","src":"17441:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17418:6:88","nodeType":"YulIdentifier","src":"17418:6:88"},"nativeSrc":"17418:31:88","nodeType":"YulFunctionCall","src":"17418:31:88"},"nativeSrc":"17418:31:88","nodeType":"YulExpressionStatement","src":"17418:31:88"},{"nativeSrc":"17458:16:88","nodeType":"YulVariableDeclaration","src":"17458:16:88","value":{"kind":"number","nativeSrc":"17473:1:88","nodeType":"YulLiteral","src":"17473:1:88","type":"","value":"0"},"variables":[{"name":"value_5","nativeSrc":"17462:7:88","nodeType":"YulTypedName","src":"17462:7:88","type":""}]},{"nativeSrc":"17483:41:88","nodeType":"YulAssignment","src":"17483:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17511:5:88","nodeType":"YulIdentifier","src":"17511:5:88"},{"kind":"number","nativeSrc":"17518:4:88","nodeType":"YulLiteral","src":"17518:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17507:3:88","nodeType":"YulIdentifier","src":"17507:3:88"},"nativeSrc":"17507:16:88","nodeType":"YulFunctionCall","src":"17507:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17494:12:88","nodeType":"YulIdentifier","src":"17494:12:88"},"nativeSrc":"17494:30:88","nodeType":"YulFunctionCall","src":"17494:30:88"},"variableNames":[{"name":"value_5","nativeSrc":"17483:7:88","nodeType":"YulIdentifier","src":"17483:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17544:3:88","nodeType":"YulIdentifier","src":"17544:3:88"},{"kind":"number","nativeSrc":"17549:4:88","nodeType":"YulLiteral","src":"17549:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17540:3:88","nodeType":"YulIdentifier","src":"17540:3:88"},"nativeSrc":"17540:14:88","nodeType":"YulFunctionCall","src":"17540:14:88"},{"name":"value_5","nativeSrc":"17556:7:88","nodeType":"YulIdentifier","src":"17556:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17533:6:88","nodeType":"YulIdentifier","src":"17533:6:88"},"nativeSrc":"17533:31:88","nodeType":"YulFunctionCall","src":"17533:31:88"},"nativeSrc":"17533:31:88","nodeType":"YulExpressionStatement","src":"17533:31:88"},{"nativeSrc":"17573:16:88","nodeType":"YulVariableDeclaration","src":"17573:16:88","value":{"kind":"number","nativeSrc":"17588:1:88","nodeType":"YulLiteral","src":"17588:1:88","type":"","value":"0"},"variables":[{"name":"value_6","nativeSrc":"17577:7:88","nodeType":"YulTypedName","src":"17577:7:88","type":""}]},{"nativeSrc":"17598:41:88","nodeType":"YulAssignment","src":"17598:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17626:5:88","nodeType":"YulIdentifier","src":"17626:5:88"},{"kind":"number","nativeSrc":"17633:4:88","nodeType":"YulLiteral","src":"17633:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"17622:3:88","nodeType":"YulIdentifier","src":"17622:3:88"},"nativeSrc":"17622:16:88","nodeType":"YulFunctionCall","src":"17622:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17609:12:88","nodeType":"YulIdentifier","src":"17609:12:88"},"nativeSrc":"17609:30:88","nodeType":"YulFunctionCall","src":"17609:30:88"},"variableNames":[{"name":"value_6","nativeSrc":"17598:7:88","nodeType":"YulIdentifier","src":"17598:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17659:3:88","nodeType":"YulIdentifier","src":"17659:3:88"},{"kind":"number","nativeSrc":"17664:4:88","nodeType":"YulLiteral","src":"17664:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"17655:3:88","nodeType":"YulIdentifier","src":"17655:3:88"},"nativeSrc":"17655:14:88","nodeType":"YulFunctionCall","src":"17655:14:88"},{"name":"value_6","nativeSrc":"17671:7:88","nodeType":"YulIdentifier","src":"17671:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17648:6:88","nodeType":"YulIdentifier","src":"17648:6:88"},"nativeSrc":"17648:31:88","nodeType":"YulFunctionCall","src":"17648:31:88"},"nativeSrc":"17648:31:88","nodeType":"YulExpressionStatement","src":"17648:31:88"},{"nativeSrc":"17688:16:88","nodeType":"YulVariableDeclaration","src":"17688:16:88","value":{"kind":"number","nativeSrc":"17703:1:88","nodeType":"YulLiteral","src":"17703:1:88","type":"","value":"0"},"variables":[{"name":"value_7","nativeSrc":"17692:7:88","nodeType":"YulTypedName","src":"17692:7:88","type":""}]},{"nativeSrc":"17713:41:88","nodeType":"YulAssignment","src":"17713:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17741:5:88","nodeType":"YulIdentifier","src":"17741:5:88"},{"kind":"number","nativeSrc":"17748:4:88","nodeType":"YulLiteral","src":"17748:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"17737:3:88","nodeType":"YulIdentifier","src":"17737:3:88"},"nativeSrc":"17737:16:88","nodeType":"YulFunctionCall","src":"17737:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17724:12:88","nodeType":"YulIdentifier","src":"17724:12:88"},"nativeSrc":"17724:30:88","nodeType":"YulFunctionCall","src":"17724:30:88"},"variableNames":[{"name":"value_7","nativeSrc":"17713:7:88","nodeType":"YulIdentifier","src":"17713:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17774:3:88","nodeType":"YulIdentifier","src":"17774:3:88"},{"kind":"number","nativeSrc":"17779:4:88","nodeType":"YulLiteral","src":"17779:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"17770:3:88","nodeType":"YulIdentifier","src":"17770:3:88"},"nativeSrc":"17770:14:88","nodeType":"YulFunctionCall","src":"17770:14:88"},{"name":"value_7","nativeSrc":"17786:7:88","nodeType":"YulIdentifier","src":"17786:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17763:6:88","nodeType":"YulIdentifier","src":"17763:6:88"},"nativeSrc":"17763:31:88","nodeType":"YulFunctionCall","src":"17763:31:88"},"nativeSrc":"17763:31:88","nodeType":"YulExpressionStatement","src":"17763:31:88"},{"nativeSrc":"17803:16:88","nodeType":"YulVariableDeclaration","src":"17803:16:88","value":{"kind":"number","nativeSrc":"17818:1:88","nodeType":"YulLiteral","src":"17818:1:88","type":"","value":"0"},"variables":[{"name":"value_8","nativeSrc":"17807:7:88","nodeType":"YulTypedName","src":"17807:7:88","type":""}]},{"nativeSrc":"17828:41:88","nodeType":"YulAssignment","src":"17828:41:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17856:5:88","nodeType":"YulIdentifier","src":"17856:5:88"},{"kind":"number","nativeSrc":"17863:4:88","nodeType":"YulLiteral","src":"17863:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"17852:3:88","nodeType":"YulIdentifier","src":"17852:3:88"},"nativeSrc":"17852:16:88","nodeType":"YulFunctionCall","src":"17852:16:88"}],"functionName":{"name":"calldataload","nativeSrc":"17839:12:88","nodeType":"YulIdentifier","src":"17839:12:88"},"nativeSrc":"17839:30:88","nodeType":"YulFunctionCall","src":"17839:30:88"},"variableNames":[{"name":"value_8","nativeSrc":"17828:7:88","nodeType":"YulIdentifier","src":"17828:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17889:3:88","nodeType":"YulIdentifier","src":"17889:3:88"},{"kind":"number","nativeSrc":"17894:4:88","nodeType":"YulLiteral","src":"17894:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"17885:3:88","nodeType":"YulIdentifier","src":"17885:3:88"},"nativeSrc":"17885:14:88","nodeType":"YulFunctionCall","src":"17885:14:88"},{"name":"value_8","nativeSrc":"17901:7:88","nodeType":"YulIdentifier","src":"17901:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17878:6:88","nodeType":"YulIdentifier","src":"17878:6:88"},"nativeSrc":"17878:31:88","nodeType":"YulFunctionCall","src":"17878:31:88"},"nativeSrc":"17878:31:88","nodeType":"YulExpressionStatement","src":"17878:31:88"},{"nativeSrc":"17918:16:88","nodeType":"YulVariableDeclaration","src":"17918:16:88","value":{"kind":"number","nativeSrc":"17933:1:88","nodeType":"YulLiteral","src":"17933:1:88","type":"","value":"0"},"variables":[{"name":"value_9","nativeSrc":"17922:7:88","nodeType":"YulTypedName","src":"17922:7:88","type":""}]},{"nativeSrc":"17943:43:88","nodeType":"YulAssignment","src":"17943:43:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17971:5:88","nodeType":"YulIdentifier","src":"17971:5:88"},{"kind":"number","nativeSrc":"17978:6:88","nodeType":"YulLiteral","src":"17978:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"17967:3:88","nodeType":"YulIdentifier","src":"17967:3:88"},"nativeSrc":"17967:18:88","nodeType":"YulFunctionCall","src":"17967:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"17954:12:88","nodeType":"YulIdentifier","src":"17954:12:88"},"nativeSrc":"17954:32:88","nodeType":"YulFunctionCall","src":"17954:32:88"},"variableNames":[{"name":"value_9","nativeSrc":"17943:7:88","nodeType":"YulIdentifier","src":"17943:7:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18006:3:88","nodeType":"YulIdentifier","src":"18006:3:88"},{"kind":"number","nativeSrc":"18011:6:88","nodeType":"YulLiteral","src":"18011:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"18002:3:88","nodeType":"YulIdentifier","src":"18002:3:88"},"nativeSrc":"18002:16:88","nodeType":"YulFunctionCall","src":"18002:16:88"},{"name":"value_9","nativeSrc":"18020:7:88","nodeType":"YulIdentifier","src":"18020:7:88"}],"functionName":{"name":"mstore","nativeSrc":"17995:6:88","nodeType":"YulIdentifier","src":"17995:6:88"},"nativeSrc":"17995:33:88","nodeType":"YulFunctionCall","src":"17995:33:88"},"nativeSrc":"17995:33:88","nodeType":"YulExpressionStatement","src":"17995:33:88"},{"nativeSrc":"18037:17:88","nodeType":"YulVariableDeclaration","src":"18037:17:88","value":{"kind":"number","nativeSrc":"18053:1:88","nodeType":"YulLiteral","src":"18053:1:88","type":"","value":"0"},"variables":[{"name":"value_10","nativeSrc":"18041:8:88","nodeType":"YulTypedName","src":"18041:8:88","type":""}]},{"nativeSrc":"18063:44:88","nodeType":"YulAssignment","src":"18063:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18092:5:88","nodeType":"YulIdentifier","src":"18092:5:88"},{"kind":"number","nativeSrc":"18099:6:88","nodeType":"YulLiteral","src":"18099:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"18088:3:88","nodeType":"YulIdentifier","src":"18088:3:88"},"nativeSrc":"18088:18:88","nodeType":"YulFunctionCall","src":"18088:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"18075:12:88","nodeType":"YulIdentifier","src":"18075:12:88"},"nativeSrc":"18075:32:88","nodeType":"YulFunctionCall","src":"18075:32:88"},"variableNames":[{"name":"value_10","nativeSrc":"18063:8:88","nodeType":"YulIdentifier","src":"18063:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18127:3:88","nodeType":"YulIdentifier","src":"18127:3:88"},{"kind":"number","nativeSrc":"18132:6:88","nodeType":"YulLiteral","src":"18132:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"18123:3:88","nodeType":"YulIdentifier","src":"18123:3:88"},"nativeSrc":"18123:16:88","nodeType":"YulFunctionCall","src":"18123:16:88"},{"name":"value_10","nativeSrc":"18141:8:88","nodeType":"YulIdentifier","src":"18141:8:88"}],"functionName":{"name":"mstore","nativeSrc":"18116:6:88","nodeType":"YulIdentifier","src":"18116:6:88"},"nativeSrc":"18116:34:88","nodeType":"YulFunctionCall","src":"18116:34:88"},"nativeSrc":"18116:34:88","nodeType":"YulExpressionStatement","src":"18116:34:88"},{"nativeSrc":"18159:17:88","nodeType":"YulVariableDeclaration","src":"18159:17:88","value":{"kind":"number","nativeSrc":"18175:1:88","nodeType":"YulLiteral","src":"18175:1:88","type":"","value":"0"},"variables":[{"name":"value_11","nativeSrc":"18163:8:88","nodeType":"YulTypedName","src":"18163:8:88","type":""}]},{"nativeSrc":"18185:44:88","nodeType":"YulAssignment","src":"18185:44:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18214:5:88","nodeType":"YulIdentifier","src":"18214:5:88"},{"kind":"number","nativeSrc":"18221:6:88","nodeType":"YulLiteral","src":"18221:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"18210:3:88","nodeType":"YulIdentifier","src":"18210:3:88"},"nativeSrc":"18210:18:88","nodeType":"YulFunctionCall","src":"18210:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"18197:12:88","nodeType":"YulIdentifier","src":"18197:12:88"},"nativeSrc":"18197:32:88","nodeType":"YulFunctionCall","src":"18197:32:88"},"variableNames":[{"name":"value_11","nativeSrc":"18185:8:88","nodeType":"YulIdentifier","src":"18185:8:88"}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18249:3:88","nodeType":"YulIdentifier","src":"18249:3:88"},{"kind":"number","nativeSrc":"18254:6:88","nodeType":"YulLiteral","src":"18254:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"18245:3:88","nodeType":"YulIdentifier","src":"18245:3:88"},"nativeSrc":"18245:16:88","nodeType":"YulFunctionCall","src":"18245:16:88"},{"name":"value_11","nativeSrc":"18263:8:88","nodeType":"YulIdentifier","src":"18263:8:88"}],"functionName":{"name":"mstore","nativeSrc":"18238:6:88","nodeType":"YulIdentifier","src":"18238:6:88"},"nativeSrc":"18238:34:88","nodeType":"YulFunctionCall","src":"18238:34:88"},"nativeSrc":"18238:34:88","nodeType":"YulExpressionStatement","src":"18238:34:88"},{"nativeSrc":"18281:71:88","nodeType":"YulVariableDeclaration","src":"18281:71:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18337:5:88","nodeType":"YulIdentifier","src":"18337:5:88"},{"kind":"number","nativeSrc":"18344:6:88","nodeType":"YulLiteral","src":"18344:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"18333:3:88","nodeType":"YulIdentifier","src":"18333:3:88"},"nativeSrc":"18333:18:88","nodeType":"YulFunctionCall","src":"18333:18:88"}],"functionName":{"name":"abi_decode_contract_IRiskModule","nativeSrc":"18301:31:88","nodeType":"YulIdentifier","src":"18301:31:88"},"nativeSrc":"18301:51:88","nodeType":"YulFunctionCall","src":"18301:51:88"},"variables":[{"name":"memberValue0","nativeSrc":"18285:12:88","nodeType":"YulTypedName","src":"18285:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"18393:12:88","nodeType":"YulIdentifier","src":"18393:12:88"},{"arguments":[{"name":"pos","nativeSrc":"18411:3:88","nodeType":"YulIdentifier","src":"18411:3:88"},{"kind":"number","nativeSrc":"18416:6:88","nodeType":"YulLiteral","src":"18416:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"18407:3:88","nodeType":"YulIdentifier","src":"18407:3:88"},"nativeSrc":"18407:16:88","nodeType":"YulFunctionCall","src":"18407:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"18361:31:88","nodeType":"YulIdentifier","src":"18361:31:88"},"nativeSrc":"18361:63:88","nodeType":"YulFunctionCall","src":"18361:63:88"},"nativeSrc":"18361:63:88","nodeType":"YulExpressionStatement","src":"18361:63:88"},{"nativeSrc":"18433:59:88","nodeType":"YulVariableDeclaration","src":"18433:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18477:5:88","nodeType":"YulIdentifier","src":"18477:5:88"},{"kind":"number","nativeSrc":"18484:6:88","nodeType":"YulLiteral","src":"18484:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"18473:3:88","nodeType":"YulIdentifier","src":"18473:3:88"},"nativeSrc":"18473:18:88","nodeType":"YulFunctionCall","src":"18473:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"18455:17:88","nodeType":"YulIdentifier","src":"18455:17:88"},"nativeSrc":"18455:37:88","nodeType":"YulFunctionCall","src":"18455:37:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"18437:14:88","nodeType":"YulTypedName","src":"18437:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"18519:14:88","nodeType":"YulIdentifier","src":"18519:14:88"},{"arguments":[{"name":"pos","nativeSrc":"18539:3:88","nodeType":"YulIdentifier","src":"18539:3:88"},{"kind":"number","nativeSrc":"18544:6:88","nodeType":"YulLiteral","src":"18544:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"18535:3:88","nodeType":"YulIdentifier","src":"18535:3:88"},"nativeSrc":"18535:16:88","nodeType":"YulFunctionCall","src":"18535:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"18501:17:88","nodeType":"YulIdentifier","src":"18501:17:88"},"nativeSrc":"18501:51:88","nodeType":"YulFunctionCall","src":"18501:51:88"},"nativeSrc":"18501:51:88","nodeType":"YulExpressionStatement","src":"18501:51:88"},{"nativeSrc":"18561:59:88","nodeType":"YulVariableDeclaration","src":"18561:59:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18605:5:88","nodeType":"YulIdentifier","src":"18605:5:88"},{"kind":"number","nativeSrc":"18612:6:88","nodeType":"YulLiteral","src":"18612:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"18601:3:88","nodeType":"YulIdentifier","src":"18601:3:88"},"nativeSrc":"18601:18:88","nodeType":"YulFunctionCall","src":"18601:18:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"18583:17:88","nodeType":"YulIdentifier","src":"18583:17:88"},"nativeSrc":"18583:37:88","nodeType":"YulFunctionCall","src":"18583:37:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"18565:14:88","nodeType":"YulTypedName","src":"18565:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"18647:14:88","nodeType":"YulIdentifier","src":"18647:14:88"},{"arguments":[{"name":"pos","nativeSrc":"18667:3:88","nodeType":"YulIdentifier","src":"18667:3:88"},{"kind":"number","nativeSrc":"18672:6:88","nodeType":"YulLiteral","src":"18672:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"18663:3:88","nodeType":"YulIdentifier","src":"18663:3:88"},"nativeSrc":"18663:16:88","nodeType":"YulFunctionCall","src":"18663:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"18629:17:88","nodeType":"YulIdentifier","src":"18629:17:88"},"nativeSrc":"18629:51:88","nodeType":"YulFunctionCall","src":"18629:51:88"},"nativeSrc":"18629:51:88","nodeType":"YulExpressionStatement","src":"18629:51:88"}]},"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"16947:1739:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16994:5:88","nodeType":"YulTypedName","src":"16994:5:88","type":""},{"name":"pos","nativeSrc":"17001:3:88","nodeType":"YulTypedName","src":"17001:3:88","type":""}],"src":"16947:1739:88"},{"body":{"nativeSrc":"18880:152:88","nodeType":"YulBlock","src":"18880:152:88","statements":[{"nativeSrc":"18890:27:88","nodeType":"YulAssignment","src":"18890:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"18902:9:88","nodeType":"YulIdentifier","src":"18902:9:88"},{"kind":"number","nativeSrc":"18913:3:88","nodeType":"YulLiteral","src":"18913:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"18898:3:88","nodeType":"YulIdentifier","src":"18898:3:88"},"nativeSrc":"18898:19:88","nodeType":"YulFunctionCall","src":"18898:19:88"},"variableNames":[{"name":"tail","nativeSrc":"18890:4:88","nodeType":"YulIdentifier","src":"18890:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18964:6:88","nodeType":"YulIdentifier","src":"18964:6:88"},{"name":"headStart","nativeSrc":"18972:9:88","nodeType":"YulIdentifier","src":"18972:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"18926:37:88","nodeType":"YulIdentifier","src":"18926:37:88"},"nativeSrc":"18926:56:88","nodeType":"YulFunctionCall","src":"18926:56:88"},"nativeSrc":"18926:56:88","nodeType":"YulExpressionStatement","src":"18926:56:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19002:9:88","nodeType":"YulIdentifier","src":"19002:9:88"},{"kind":"number","nativeSrc":"19013:3:88","nodeType":"YulLiteral","src":"19013:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"18998:3:88","nodeType":"YulIdentifier","src":"18998:3:88"},"nativeSrc":"18998:19:88","nodeType":"YulFunctionCall","src":"18998:19:88"},{"name":"value1","nativeSrc":"19019:6:88","nodeType":"YulIdentifier","src":"19019:6:88"}],"functionName":{"name":"mstore","nativeSrc":"18991:6:88","nodeType":"YulIdentifier","src":"18991:6:88"},"nativeSrc":"18991:35:88","nodeType":"YulFunctionCall","src":"18991:35:88"},"nativeSrc":"18991:35:88","nodeType":"YulExpressionStatement","src":"18991:35:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"18691:341:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18841:9:88","nodeType":"YulTypedName","src":"18841:9:88","type":""},{"name":"value1","nativeSrc":"18852:6:88","nodeType":"YulTypedName","src":"18852:6:88","type":""},{"name":"value0","nativeSrc":"18860:6:88","nodeType":"YulTypedName","src":"18860:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18871:4:88","nodeType":"YulTypedName","src":"18871:4:88","type":""}],"src":"18691:341:88"},{"body":{"nativeSrc":"19069:95:88","nodeType":"YulBlock","src":"19069:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19086:1:88","nodeType":"YulLiteral","src":"19086:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"19093:3:88","nodeType":"YulLiteral","src":"19093:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"19098:10:88","nodeType":"YulLiteral","src":"19098:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"19089:3:88","nodeType":"YulIdentifier","src":"19089:3:88"},"nativeSrc":"19089:20:88","nodeType":"YulFunctionCall","src":"19089:20:88"}],"functionName":{"name":"mstore","nativeSrc":"19079:6:88","nodeType":"YulIdentifier","src":"19079:6:88"},"nativeSrc":"19079:31:88","nodeType":"YulFunctionCall","src":"19079:31:88"},"nativeSrc":"19079:31:88","nodeType":"YulExpressionStatement","src":"19079:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19126:1:88","nodeType":"YulLiteral","src":"19126:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"19129:4:88","nodeType":"YulLiteral","src":"19129:4:88","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"19119:6:88","nodeType":"YulIdentifier","src":"19119:6:88"},"nativeSrc":"19119:15:88","nodeType":"YulFunctionCall","src":"19119:15:88"},"nativeSrc":"19119:15:88","nodeType":"YulExpressionStatement","src":"19119:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19150:1:88","nodeType":"YulLiteral","src":"19150:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"19153:4:88","nodeType":"YulLiteral","src":"19153:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19143:6:88","nodeType":"YulIdentifier","src":"19143:6:88"},"nativeSrc":"19143:15:88","nodeType":"YulFunctionCall","src":"19143:15:88"},"nativeSrc":"19143:15:88","nodeType":"YulExpressionStatement","src":"19143:15:88"}]},"name":"panic_error_0x21","nativeSrc":"19037:127:88","nodeType":"YulFunctionDefinition","src":"19037:127:88"},{"body":{"nativeSrc":"19343:239:88","nodeType":"YulBlock","src":"19343:239:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19360:9:88","nodeType":"YulIdentifier","src":"19360:9:88"},{"kind":"number","nativeSrc":"19371:2:88","nodeType":"YulLiteral","src":"19371:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19353:6:88","nodeType":"YulIdentifier","src":"19353:6:88"},"nativeSrc":"19353:21:88","nodeType":"YulFunctionCall","src":"19353:21:88"},"nativeSrc":"19353:21:88","nodeType":"YulExpressionStatement","src":"19353:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19394:9:88","nodeType":"YulIdentifier","src":"19394:9:88"},{"kind":"number","nativeSrc":"19405:2:88","nodeType":"YulLiteral","src":"19405:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19390:3:88","nodeType":"YulIdentifier","src":"19390:3:88"},"nativeSrc":"19390:18:88","nodeType":"YulFunctionCall","src":"19390:18:88"},{"kind":"number","nativeSrc":"19410:2:88","nodeType":"YulLiteral","src":"19410:2:88","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"19383:6:88","nodeType":"YulIdentifier","src":"19383:6:88"},"nativeSrc":"19383:30:88","nodeType":"YulFunctionCall","src":"19383:30:88"},"nativeSrc":"19383:30:88","nodeType":"YulExpressionStatement","src":"19383:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19433:9:88","nodeType":"YulIdentifier","src":"19433:9:88"},{"kind":"number","nativeSrc":"19444:2:88","nodeType":"YulLiteral","src":"19444:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19429:3:88","nodeType":"YulIdentifier","src":"19429:3:88"},"nativeSrc":"19429:18:88","nodeType":"YulFunctionCall","src":"19429:18:88"},{"hexValue":"43616e277420736574206578706f737572654c696d6974206c65737320746861","kind":"string","nativeSrc":"19449:34:88","nodeType":"YulLiteral","src":"19449:34:88","type":"","value":"Can't set exposureLimit less tha"}],"functionName":{"name":"mstore","nativeSrc":"19422:6:88","nodeType":"YulIdentifier","src":"19422:6:88"},"nativeSrc":"19422:62:88","nodeType":"YulFunctionCall","src":"19422:62:88"},"nativeSrc":"19422:62:88","nodeType":"YulExpressionStatement","src":"19422:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19504:9:88","nodeType":"YulIdentifier","src":"19504:9:88"},{"kind":"number","nativeSrc":"19515:2:88","nodeType":"YulLiteral","src":"19515:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19500:3:88","nodeType":"YulIdentifier","src":"19500:3:88"},"nativeSrc":"19500:18:88","nodeType":"YulFunctionCall","src":"19500:18:88"},{"hexValue":"6e20616374697665206578706f73757265","kind":"string","nativeSrc":"19520:19:88","nodeType":"YulLiteral","src":"19520:19:88","type":"","value":"n active exposure"}],"functionName":{"name":"mstore","nativeSrc":"19493:6:88","nodeType":"YulIdentifier","src":"19493:6:88"},"nativeSrc":"19493:47:88","nodeType":"YulFunctionCall","src":"19493:47:88"},"nativeSrc":"19493:47:88","nodeType":"YulExpressionStatement","src":"19493:47:88"},{"nativeSrc":"19549:27:88","nodeType":"YulAssignment","src":"19549:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19561:9:88","nodeType":"YulIdentifier","src":"19561:9:88"},{"kind":"number","nativeSrc":"19572:3:88","nodeType":"YulLiteral","src":"19572:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19557:3:88","nodeType":"YulIdentifier","src":"19557:3:88"},"nativeSrc":"19557:19:88","nodeType":"YulFunctionCall","src":"19557:19:88"},"variableNames":[{"name":"tail","nativeSrc":"19549:4:88","nodeType":"YulIdentifier","src":"19549:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19169:413:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19320:9:88","nodeType":"YulTypedName","src":"19320:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19334:4:88","nodeType":"YulTypedName","src":"19334:4:88","type":""}],"src":"19169:413:88"},{"body":{"nativeSrc":"19761:179:88","nodeType":"YulBlock","src":"19761:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19778:9:88","nodeType":"YulIdentifier","src":"19778:9:88"},{"kind":"number","nativeSrc":"19789:2:88","nodeType":"YulLiteral","src":"19789:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19771:6:88","nodeType":"YulIdentifier","src":"19771:6:88"},"nativeSrc":"19771:21:88","nodeType":"YulFunctionCall","src":"19771:21:88"},"nativeSrc":"19771:21:88","nodeType":"YulExpressionStatement","src":"19771:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19812:9:88","nodeType":"YulIdentifier","src":"19812:9:88"},{"kind":"number","nativeSrc":"19823:2:88","nodeType":"YulLiteral","src":"19823:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19808:3:88","nodeType":"YulIdentifier","src":"19808:3:88"},"nativeSrc":"19808:18:88","nodeType":"YulFunctionCall","src":"19808:18:88"},{"kind":"number","nativeSrc":"19828:2:88","nodeType":"YulLiteral","src":"19828:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"19801:6:88","nodeType":"YulIdentifier","src":"19801:6:88"},"nativeSrc":"19801:30:88","nodeType":"YulFunctionCall","src":"19801:30:88"},"nativeSrc":"19801:30:88","nodeType":"YulExpressionStatement","src":"19801:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19851:9:88","nodeType":"YulIdentifier","src":"19851:9:88"},{"kind":"number","nativeSrc":"19862:2:88","nodeType":"YulLiteral","src":"19862:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19847:3:88","nodeType":"YulIdentifier","src":"19847:3:88"},"nativeSrc":"19847:18:88","nodeType":"YulFunctionCall","src":"19847:18:88"},{"hexValue":"496e637265617365207265717569726573204c4556454c315f524f4c45","kind":"string","nativeSrc":"19867:31:88","nodeType":"YulLiteral","src":"19867:31:88","type":"","value":"Increase requires LEVEL1_ROLE"}],"functionName":{"name":"mstore","nativeSrc":"19840:6:88","nodeType":"YulIdentifier","src":"19840:6:88"},"nativeSrc":"19840:59:88","nodeType":"YulFunctionCall","src":"19840:59:88"},"nativeSrc":"19840:59:88","nodeType":"YulExpressionStatement","src":"19840:59:88"},{"nativeSrc":"19908:26:88","nodeType":"YulAssignment","src":"19908:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"19920:9:88","nodeType":"YulIdentifier","src":"19920:9:88"},{"kind":"number","nativeSrc":"19931:2:88","nodeType":"YulLiteral","src":"19931:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19916:3:88","nodeType":"YulIdentifier","src":"19916:3:88"},"nativeSrc":"19916:18:88","nodeType":"YulFunctionCall","src":"19916:18:88"},"variableNames":[{"name":"tail","nativeSrc":"19908:4:88","nodeType":"YulIdentifier","src":"19908:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19587:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19738:9:88","nodeType":"YulTypedName","src":"19738:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19752:4:88","nodeType":"YulTypedName","src":"19752:4:88","type":""}],"src":"19587:353:88"},{"body":{"nativeSrc":"19993:77:88","nodeType":"YulBlock","src":"19993:77:88","statements":[{"nativeSrc":"20003:16:88","nodeType":"YulAssignment","src":"20003:16:88","value":{"arguments":[{"name":"x","nativeSrc":"20014:1:88","nodeType":"YulIdentifier","src":"20014:1:88"},{"name":"y","nativeSrc":"20017:1:88","nodeType":"YulIdentifier","src":"20017:1:88"}],"functionName":{"name":"add","nativeSrc":"20010:3:88","nodeType":"YulIdentifier","src":"20010:3:88"},"nativeSrc":"20010:9:88","nodeType":"YulFunctionCall","src":"20010:9:88"},"variableNames":[{"name":"sum","nativeSrc":"20003:3:88","nodeType":"YulIdentifier","src":"20003:3:88"}]},{"body":{"nativeSrc":"20042:22:88","nodeType":"YulBlock","src":"20042:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20044:16:88","nodeType":"YulIdentifier","src":"20044:16:88"},"nativeSrc":"20044:18:88","nodeType":"YulFunctionCall","src":"20044:18:88"},"nativeSrc":"20044:18:88","nodeType":"YulExpressionStatement","src":"20044:18:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"20034:1:88","nodeType":"YulIdentifier","src":"20034:1:88"},{"name":"sum","nativeSrc":"20037:3:88","nodeType":"YulIdentifier","src":"20037:3:88"}],"functionName":{"name":"gt","nativeSrc":"20031:2:88","nodeType":"YulIdentifier","src":"20031:2:88"},"nativeSrc":"20031:10:88","nodeType":"YulFunctionCall","src":"20031:10:88"},"nativeSrc":"20028:36:88","nodeType":"YulIf","src":"20028:36:88"}]},"name":"checked_add_t_uint256","nativeSrc":"19945:125:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"19976:1:88","nodeType":"YulTypedName","src":"19976:1:88","type":""},{"name":"y","nativeSrc":"19979:1:88","nodeType":"YulTypedName","src":"19979:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"19985:3:88","nodeType":"YulTypedName","src":"19985:3:88","type":""}],"src":"19945:125:88"},{"body":{"nativeSrc":"20129:971:88","nodeType":"YulBlock","src":"20129:971:88","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20146:3:88","nodeType":"YulIdentifier","src":"20146:3:88"},{"arguments":[{"name":"value","nativeSrc":"20157:5:88","nodeType":"YulIdentifier","src":"20157:5:88"}],"functionName":{"name":"mload","nativeSrc":"20151:5:88","nodeType":"YulIdentifier","src":"20151:5:88"},"nativeSrc":"20151:12:88","nodeType":"YulFunctionCall","src":"20151:12:88"}],"functionName":{"name":"mstore","nativeSrc":"20139:6:88","nodeType":"YulIdentifier","src":"20139:6:88"},"nativeSrc":"20139:25:88","nodeType":"YulFunctionCall","src":"20139:25:88"},"nativeSrc":"20139:25:88","nodeType":"YulExpressionStatement","src":"20139:25:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20184:3:88","nodeType":"YulIdentifier","src":"20184:3:88"},{"kind":"number","nativeSrc":"20189:4:88","nodeType":"YulLiteral","src":"20189:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20180:3:88","nodeType":"YulIdentifier","src":"20180:3:88"},"nativeSrc":"20180:14:88","nodeType":"YulFunctionCall","src":"20180:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20206:5:88","nodeType":"YulIdentifier","src":"20206:5:88"},{"kind":"number","nativeSrc":"20213:4:88","nodeType":"YulLiteral","src":"20213:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20202:3:88","nodeType":"YulIdentifier","src":"20202:3:88"},"nativeSrc":"20202:16:88","nodeType":"YulFunctionCall","src":"20202:16:88"}],"functionName":{"name":"mload","nativeSrc":"20196:5:88","nodeType":"YulIdentifier","src":"20196:5:88"},"nativeSrc":"20196:23:88","nodeType":"YulFunctionCall","src":"20196:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20173:6:88","nodeType":"YulIdentifier","src":"20173:6:88"},"nativeSrc":"20173:47:88","nodeType":"YulFunctionCall","src":"20173:47:88"},"nativeSrc":"20173:47:88","nodeType":"YulExpressionStatement","src":"20173:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20240:3:88","nodeType":"YulIdentifier","src":"20240:3:88"},{"kind":"number","nativeSrc":"20245:4:88","nodeType":"YulLiteral","src":"20245:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20236:3:88","nodeType":"YulIdentifier","src":"20236:3:88"},"nativeSrc":"20236:14:88","nodeType":"YulFunctionCall","src":"20236:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20262:5:88","nodeType":"YulIdentifier","src":"20262:5:88"},{"kind":"number","nativeSrc":"20269:4:88","nodeType":"YulLiteral","src":"20269:4:88","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20258:3:88","nodeType":"YulIdentifier","src":"20258:3:88"},"nativeSrc":"20258:16:88","nodeType":"YulFunctionCall","src":"20258:16:88"}],"functionName":{"name":"mload","nativeSrc":"20252:5:88","nodeType":"YulIdentifier","src":"20252:5:88"},"nativeSrc":"20252:23:88","nodeType":"YulFunctionCall","src":"20252:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20229:6:88","nodeType":"YulIdentifier","src":"20229:6:88"},"nativeSrc":"20229:47:88","nodeType":"YulFunctionCall","src":"20229:47:88"},"nativeSrc":"20229:47:88","nodeType":"YulExpressionStatement","src":"20229:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20296:3:88","nodeType":"YulIdentifier","src":"20296:3:88"},{"kind":"number","nativeSrc":"20301:4:88","nodeType":"YulLiteral","src":"20301:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20292:3:88","nodeType":"YulIdentifier","src":"20292:3:88"},"nativeSrc":"20292:14:88","nodeType":"YulFunctionCall","src":"20292:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20318:5:88","nodeType":"YulIdentifier","src":"20318:5:88"},{"kind":"number","nativeSrc":"20325:4:88","nodeType":"YulLiteral","src":"20325:4:88","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20314:3:88","nodeType":"YulIdentifier","src":"20314:3:88"},"nativeSrc":"20314:16:88","nodeType":"YulFunctionCall","src":"20314:16:88"}],"functionName":{"name":"mload","nativeSrc":"20308:5:88","nodeType":"YulIdentifier","src":"20308:5:88"},"nativeSrc":"20308:23:88","nodeType":"YulFunctionCall","src":"20308:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20285:6:88","nodeType":"YulIdentifier","src":"20285:6:88"},"nativeSrc":"20285:47:88","nodeType":"YulFunctionCall","src":"20285:47:88"},"nativeSrc":"20285:47:88","nodeType":"YulExpressionStatement","src":"20285:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20352:3:88","nodeType":"YulIdentifier","src":"20352:3:88"},{"kind":"number","nativeSrc":"20357:4:88","nodeType":"YulLiteral","src":"20357:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"20348:3:88","nodeType":"YulIdentifier","src":"20348:3:88"},"nativeSrc":"20348:14:88","nodeType":"YulFunctionCall","src":"20348:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20374:5:88","nodeType":"YulIdentifier","src":"20374:5:88"},{"kind":"number","nativeSrc":"20381:4:88","nodeType":"YulLiteral","src":"20381:4:88","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"20370:3:88","nodeType":"YulIdentifier","src":"20370:3:88"},"nativeSrc":"20370:16:88","nodeType":"YulFunctionCall","src":"20370:16:88"}],"functionName":{"name":"mload","nativeSrc":"20364:5:88","nodeType":"YulIdentifier","src":"20364:5:88"},"nativeSrc":"20364:23:88","nodeType":"YulFunctionCall","src":"20364:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20341:6:88","nodeType":"YulIdentifier","src":"20341:6:88"},"nativeSrc":"20341:47:88","nodeType":"YulFunctionCall","src":"20341:47:88"},"nativeSrc":"20341:47:88","nodeType":"YulExpressionStatement","src":"20341:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20408:3:88","nodeType":"YulIdentifier","src":"20408:3:88"},{"kind":"number","nativeSrc":"20413:4:88","nodeType":"YulLiteral","src":"20413:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"20404:3:88","nodeType":"YulIdentifier","src":"20404:3:88"},"nativeSrc":"20404:14:88","nodeType":"YulFunctionCall","src":"20404:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20430:5:88","nodeType":"YulIdentifier","src":"20430:5:88"},{"kind":"number","nativeSrc":"20437:4:88","nodeType":"YulLiteral","src":"20437:4:88","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"20426:3:88","nodeType":"YulIdentifier","src":"20426:3:88"},"nativeSrc":"20426:16:88","nodeType":"YulFunctionCall","src":"20426:16:88"}],"functionName":{"name":"mload","nativeSrc":"20420:5:88","nodeType":"YulIdentifier","src":"20420:5:88"},"nativeSrc":"20420:23:88","nodeType":"YulFunctionCall","src":"20420:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20397:6:88","nodeType":"YulIdentifier","src":"20397:6:88"},"nativeSrc":"20397:47:88","nodeType":"YulFunctionCall","src":"20397:47:88"},"nativeSrc":"20397:47:88","nodeType":"YulExpressionStatement","src":"20397:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20464:3:88","nodeType":"YulIdentifier","src":"20464:3:88"},{"kind":"number","nativeSrc":"20469:4:88","nodeType":"YulLiteral","src":"20469:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"20460:3:88","nodeType":"YulIdentifier","src":"20460:3:88"},"nativeSrc":"20460:14:88","nodeType":"YulFunctionCall","src":"20460:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20486:5:88","nodeType":"YulIdentifier","src":"20486:5:88"},{"kind":"number","nativeSrc":"20493:4:88","nodeType":"YulLiteral","src":"20493:4:88","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"20482:3:88","nodeType":"YulIdentifier","src":"20482:3:88"},"nativeSrc":"20482:16:88","nodeType":"YulFunctionCall","src":"20482:16:88"}],"functionName":{"name":"mload","nativeSrc":"20476:5:88","nodeType":"YulIdentifier","src":"20476:5:88"},"nativeSrc":"20476:23:88","nodeType":"YulFunctionCall","src":"20476:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20453:6:88","nodeType":"YulIdentifier","src":"20453:6:88"},"nativeSrc":"20453:47:88","nodeType":"YulFunctionCall","src":"20453:47:88"},"nativeSrc":"20453:47:88","nodeType":"YulExpressionStatement","src":"20453:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20520:3:88","nodeType":"YulIdentifier","src":"20520:3:88"},{"kind":"number","nativeSrc":"20525:4:88","nodeType":"YulLiteral","src":"20525:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"20516:3:88","nodeType":"YulIdentifier","src":"20516:3:88"},"nativeSrc":"20516:14:88","nodeType":"YulFunctionCall","src":"20516:14:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20542:5:88","nodeType":"YulIdentifier","src":"20542:5:88"},{"kind":"number","nativeSrc":"20549:4:88","nodeType":"YulLiteral","src":"20549:4:88","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"20538:3:88","nodeType":"YulIdentifier","src":"20538:3:88"},"nativeSrc":"20538:16:88","nodeType":"YulFunctionCall","src":"20538:16:88"}],"functionName":{"name":"mload","nativeSrc":"20532:5:88","nodeType":"YulIdentifier","src":"20532:5:88"},"nativeSrc":"20532:23:88","nodeType":"YulFunctionCall","src":"20532:23:88"}],"functionName":{"name":"mstore","nativeSrc":"20509:6:88","nodeType":"YulIdentifier","src":"20509:6:88"},"nativeSrc":"20509:47:88","nodeType":"YulFunctionCall","src":"20509:47:88"},"nativeSrc":"20509:47:88","nodeType":"YulExpressionStatement","src":"20509:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20576:3:88","nodeType":"YulIdentifier","src":"20576:3:88"},{"kind":"number","nativeSrc":"20581:6:88","nodeType":"YulLiteral","src":"20581:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"20572:3:88","nodeType":"YulIdentifier","src":"20572:3:88"},"nativeSrc":"20572:16:88","nodeType":"YulFunctionCall","src":"20572:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20600:5:88","nodeType":"YulIdentifier","src":"20600:5:88"},{"kind":"number","nativeSrc":"20607:6:88","nodeType":"YulLiteral","src":"20607:6:88","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"20596:3:88","nodeType":"YulIdentifier","src":"20596:3:88"},"nativeSrc":"20596:18:88","nodeType":"YulFunctionCall","src":"20596:18:88"}],"functionName":{"name":"mload","nativeSrc":"20590:5:88","nodeType":"YulIdentifier","src":"20590:5:88"},"nativeSrc":"20590:25:88","nodeType":"YulFunctionCall","src":"20590:25:88"}],"functionName":{"name":"mstore","nativeSrc":"20565:6:88","nodeType":"YulIdentifier","src":"20565:6:88"},"nativeSrc":"20565:51:88","nodeType":"YulFunctionCall","src":"20565:51:88"},"nativeSrc":"20565:51:88","nodeType":"YulExpressionStatement","src":"20565:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20636:3:88","nodeType":"YulIdentifier","src":"20636:3:88"},{"kind":"number","nativeSrc":"20641:6:88","nodeType":"YulLiteral","src":"20641:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"20632:3:88","nodeType":"YulIdentifier","src":"20632:3:88"},"nativeSrc":"20632:16:88","nodeType":"YulFunctionCall","src":"20632:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20660:5:88","nodeType":"YulIdentifier","src":"20660:5:88"},{"kind":"number","nativeSrc":"20667:6:88","nodeType":"YulLiteral","src":"20667:6:88","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"20656:3:88","nodeType":"YulIdentifier","src":"20656:3:88"},"nativeSrc":"20656:18:88","nodeType":"YulFunctionCall","src":"20656:18:88"}],"functionName":{"name":"mload","nativeSrc":"20650:5:88","nodeType":"YulIdentifier","src":"20650:5:88"},"nativeSrc":"20650:25:88","nodeType":"YulFunctionCall","src":"20650:25:88"}],"functionName":{"name":"mstore","nativeSrc":"20625:6:88","nodeType":"YulIdentifier","src":"20625:6:88"},"nativeSrc":"20625:51:88","nodeType":"YulFunctionCall","src":"20625:51:88"},"nativeSrc":"20625:51:88","nodeType":"YulExpressionStatement","src":"20625:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20696:3:88","nodeType":"YulIdentifier","src":"20696:3:88"},{"kind":"number","nativeSrc":"20701:6:88","nodeType":"YulLiteral","src":"20701:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"20692:3:88","nodeType":"YulIdentifier","src":"20692:3:88"},"nativeSrc":"20692:16:88","nodeType":"YulFunctionCall","src":"20692:16:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20720:5:88","nodeType":"YulIdentifier","src":"20720:5:88"},{"kind":"number","nativeSrc":"20727:6:88","nodeType":"YulLiteral","src":"20727:6:88","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"20716:3:88","nodeType":"YulIdentifier","src":"20716:3:88"},"nativeSrc":"20716:18:88","nodeType":"YulFunctionCall","src":"20716:18:88"}],"functionName":{"name":"mload","nativeSrc":"20710:5:88","nodeType":"YulIdentifier","src":"20710:5:88"},"nativeSrc":"20710:25:88","nodeType":"YulFunctionCall","src":"20710:25:88"}],"functionName":{"name":"mstore","nativeSrc":"20685:6:88","nodeType":"YulIdentifier","src":"20685:6:88"},"nativeSrc":"20685:51:88","nodeType":"YulFunctionCall","src":"20685:51:88"},"nativeSrc":"20685:51:88","nodeType":"YulExpressionStatement","src":"20685:51:88"},{"nativeSrc":"20745:45:88","nodeType":"YulVariableDeclaration","src":"20745:45:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20775:5:88","nodeType":"YulIdentifier","src":"20775:5:88"},{"kind":"number","nativeSrc":"20782:6:88","nodeType":"YulLiteral","src":"20782:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"20771:3:88","nodeType":"YulIdentifier","src":"20771:3:88"},"nativeSrc":"20771:18:88","nodeType":"YulFunctionCall","src":"20771:18:88"}],"functionName":{"name":"mload","nativeSrc":"20765:5:88","nodeType":"YulIdentifier","src":"20765:5:88"},"nativeSrc":"20765:25:88","nodeType":"YulFunctionCall","src":"20765:25:88"},"variables":[{"name":"memberValue0","nativeSrc":"20749:12:88","nodeType":"YulTypedName","src":"20749:12:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20831:12:88","nodeType":"YulIdentifier","src":"20831:12:88"},{"arguments":[{"name":"pos","nativeSrc":"20849:3:88","nodeType":"YulIdentifier","src":"20849:3:88"},{"kind":"number","nativeSrc":"20854:6:88","nodeType":"YulLiteral","src":"20854:6:88","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"20845:3:88","nodeType":"YulIdentifier","src":"20845:3:88"},"nativeSrc":"20845:16:88","nodeType":"YulFunctionCall","src":"20845:16:88"}],"functionName":{"name":"abi_encode_contract_IPolicyPool","nativeSrc":"20799:31:88","nodeType":"YulIdentifier","src":"20799:31:88"},"nativeSrc":"20799:63:88","nodeType":"YulFunctionCall","src":"20799:63:88"},"nativeSrc":"20799:63:88","nodeType":"YulExpressionStatement","src":"20799:63:88"},{"nativeSrc":"20871:47:88","nodeType":"YulVariableDeclaration","src":"20871:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20903:5:88","nodeType":"YulIdentifier","src":"20903:5:88"},{"kind":"number","nativeSrc":"20910:6:88","nodeType":"YulLiteral","src":"20910:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"20899:3:88","nodeType":"YulIdentifier","src":"20899:3:88"},"nativeSrc":"20899:18:88","nodeType":"YulFunctionCall","src":"20899:18:88"}],"functionName":{"name":"mload","nativeSrc":"20893:5:88","nodeType":"YulIdentifier","src":"20893:5:88"},"nativeSrc":"20893:25:88","nodeType":"YulFunctionCall","src":"20893:25:88"},"variables":[{"name":"memberValue0_1","nativeSrc":"20875:14:88","nodeType":"YulTypedName","src":"20875:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"20945:14:88","nodeType":"YulIdentifier","src":"20945:14:88"},{"arguments":[{"name":"pos","nativeSrc":"20965:3:88","nodeType":"YulIdentifier","src":"20965:3:88"},{"kind":"number","nativeSrc":"20970:6:88","nodeType":"YulLiteral","src":"20970:6:88","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"20961:3:88","nodeType":"YulIdentifier","src":"20961:3:88"},"nativeSrc":"20961:16:88","nodeType":"YulFunctionCall","src":"20961:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"20927:17:88","nodeType":"YulIdentifier","src":"20927:17:88"},"nativeSrc":"20927:51:88","nodeType":"YulFunctionCall","src":"20927:51:88"},"nativeSrc":"20927:51:88","nodeType":"YulExpressionStatement","src":"20927:51:88"},{"nativeSrc":"20987:47:88","nodeType":"YulVariableDeclaration","src":"20987:47:88","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21019:5:88","nodeType":"YulIdentifier","src":"21019:5:88"},{"kind":"number","nativeSrc":"21026:6:88","nodeType":"YulLiteral","src":"21026:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"21015:3:88","nodeType":"YulIdentifier","src":"21015:3:88"},"nativeSrc":"21015:18:88","nodeType":"YulFunctionCall","src":"21015:18:88"}],"functionName":{"name":"mload","nativeSrc":"21009:5:88","nodeType":"YulIdentifier","src":"21009:5:88"},"nativeSrc":"21009:25:88","nodeType":"YulFunctionCall","src":"21009:25:88"},"variables":[{"name":"memberValue0_2","nativeSrc":"20991:14:88","nodeType":"YulTypedName","src":"20991:14:88","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nativeSrc":"21061:14:88","nodeType":"YulIdentifier","src":"21061:14:88"},{"arguments":[{"name":"pos","nativeSrc":"21081:3:88","nodeType":"YulIdentifier","src":"21081:3:88"},{"kind":"number","nativeSrc":"21086:6:88","nodeType":"YulLiteral","src":"21086:6:88","type":"","value":"0x01a0"}],"functionName":{"name":"add","nativeSrc":"21077:3:88","nodeType":"YulIdentifier","src":"21077:3:88"},"nativeSrc":"21077:16:88","nodeType":"YulFunctionCall","src":"21077:16:88"}],"functionName":{"name":"abi_encode_uint40","nativeSrc":"21043:17:88","nodeType":"YulIdentifier","src":"21043:17:88"},"nativeSrc":"21043:51:88","nodeType":"YulFunctionCall","src":"21043:51:88"},"nativeSrc":"21043:51:88","nodeType":"YulExpressionStatement","src":"21043:51:88"}]},"name":"abi_encode_struct_PolicyData","nativeSrc":"20075:1025:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20113:5:88","nodeType":"YulTypedName","src":"20113:5:88","type":""},{"name":"pos","nativeSrc":"20120:3:88","nodeType":"YulTypedName","src":"20120:3:88","type":""}],"src":"20075:1025:88"},{"body":{"nativeSrc":"21404:312:88","nodeType":"YulBlock","src":"21404:312:88","statements":[{"nativeSrc":"21414:27:88","nodeType":"YulAssignment","src":"21414:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21426:9:88","nodeType":"YulIdentifier","src":"21426:9:88"},{"kind":"number","nativeSrc":"21437:3:88","nodeType":"YulLiteral","src":"21437:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"21422:3:88","nodeType":"YulIdentifier","src":"21422:3:88"},"nativeSrc":"21422:19:88","nodeType":"YulFunctionCall","src":"21422:19:88"},"variableNames":[{"name":"tail","nativeSrc":"21414:4:88","nodeType":"YulIdentifier","src":"21414:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21479:6:88","nodeType":"YulIdentifier","src":"21479:6:88"},{"name":"headStart","nativeSrc":"21487:9:88","nodeType":"YulIdentifier","src":"21487:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"21450:28:88","nodeType":"YulIdentifier","src":"21450:28:88"},"nativeSrc":"21450:47:88","nodeType":"YulFunctionCall","src":"21450:47:88"},"nativeSrc":"21450:47:88","nodeType":"YulExpressionStatement","src":"21450:47:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21535:6:88","nodeType":"YulIdentifier","src":"21535:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"21547:9:88","nodeType":"YulIdentifier","src":"21547:9:88"},{"kind":"number","nativeSrc":"21558:3:88","nodeType":"YulLiteral","src":"21558:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"21543:3:88","nodeType":"YulIdentifier","src":"21543:3:88"},"nativeSrc":"21543:19:88","nodeType":"YulFunctionCall","src":"21543:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"21506:28:88","nodeType":"YulIdentifier","src":"21506:28:88"},"nativeSrc":"21506:57:88","nodeType":"YulFunctionCall","src":"21506:57:88"},"nativeSrc":"21506:57:88","nodeType":"YulExpressionStatement","src":"21506:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21583:9:88","nodeType":"YulIdentifier","src":"21583:9:88"},{"kind":"number","nativeSrc":"21594:3:88","nodeType":"YulLiteral","src":"21594:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"21579:3:88","nodeType":"YulIdentifier","src":"21579:3:88"},"nativeSrc":"21579:19:88","nodeType":"YulFunctionCall","src":"21579:19:88"},{"arguments":[{"name":"value2","nativeSrc":"21604:6:88","nodeType":"YulIdentifier","src":"21604:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21620:3:88","nodeType":"YulLiteral","src":"21620:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"21625:1:88","nodeType":"YulLiteral","src":"21625:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"21616:3:88","nodeType":"YulIdentifier","src":"21616:3:88"},"nativeSrc":"21616:11:88","nodeType":"YulFunctionCall","src":"21616:11:88"},{"kind":"number","nativeSrc":"21629:1:88","nodeType":"YulLiteral","src":"21629:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"21612:3:88","nodeType":"YulIdentifier","src":"21612:3:88"},"nativeSrc":"21612:19:88","nodeType":"YulFunctionCall","src":"21612:19:88"}],"functionName":{"name":"and","nativeSrc":"21600:3:88","nodeType":"YulIdentifier","src":"21600:3:88"},"nativeSrc":"21600:32:88","nodeType":"YulFunctionCall","src":"21600:32:88"}],"functionName":{"name":"mstore","nativeSrc":"21572:6:88","nodeType":"YulIdentifier","src":"21572:6:88"},"nativeSrc":"21572:61:88","nodeType":"YulFunctionCall","src":"21572:61:88"},"nativeSrc":"21572:61:88","nodeType":"YulExpressionStatement","src":"21572:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21653:9:88","nodeType":"YulIdentifier","src":"21653:9:88"},{"kind":"number","nativeSrc":"21664:3:88","nodeType":"YulLiteral","src":"21664:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"21649:3:88","nodeType":"YulIdentifier","src":"21649:3:88"},"nativeSrc":"21649:19:88","nodeType":"YulFunctionCall","src":"21649:19:88"},{"arguments":[{"name":"value3","nativeSrc":"21674:6:88","nodeType":"YulIdentifier","src":"21674:6:88"},{"kind":"number","nativeSrc":"21682:26:88","nodeType":"YulLiteral","src":"21682:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21670:3:88","nodeType":"YulIdentifier","src":"21670:3:88"},"nativeSrc":"21670:39:88","nodeType":"YulFunctionCall","src":"21670:39:88"}],"functionName":{"name":"mstore","nativeSrc":"21642:6:88","nodeType":"YulIdentifier","src":"21642:6:88"},"nativeSrc":"21642:68:88","nodeType":"YulFunctionCall","src":"21642:68:88"},"nativeSrc":"21642:68:88","nodeType":"YulExpressionStatement","src":"21642:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed","nativeSrc":"21105:611:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21349:9:88","nodeType":"YulTypedName","src":"21349:9:88","type":""},{"name":"value3","nativeSrc":"21360:6:88","nodeType":"YulTypedName","src":"21360:6:88","type":""},{"name":"value2","nativeSrc":"21368:6:88","nodeType":"YulTypedName","src":"21368:6:88","type":""},{"name":"value1","nativeSrc":"21376:6:88","nodeType":"YulTypedName","src":"21376:6:88","type":""},{"name":"value0","nativeSrc":"21384:6:88","nodeType":"YulTypedName","src":"21384:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21395:4:88","nodeType":"YulTypedName","src":"21395:4:88","type":""}],"src":"21105:611:88"},{"body":{"nativeSrc":"21802:103:88","nodeType":"YulBlock","src":"21802:103:88","statements":[{"body":{"nativeSrc":"21848:16:88","nodeType":"YulBlock","src":"21848:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21857:1:88","nodeType":"YulLiteral","src":"21857:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"21860:1:88","nodeType":"YulLiteral","src":"21860:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21850:6:88","nodeType":"YulIdentifier","src":"21850:6:88"},"nativeSrc":"21850:12:88","nodeType":"YulFunctionCall","src":"21850:12:88"},"nativeSrc":"21850:12:88","nodeType":"YulExpressionStatement","src":"21850:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21823:7:88","nodeType":"YulIdentifier","src":"21823:7:88"},{"name":"headStart","nativeSrc":"21832:9:88","nodeType":"YulIdentifier","src":"21832:9:88"}],"functionName":{"name":"sub","nativeSrc":"21819:3:88","nodeType":"YulIdentifier","src":"21819:3:88"},"nativeSrc":"21819:23:88","nodeType":"YulFunctionCall","src":"21819:23:88"},{"kind":"number","nativeSrc":"21844:2:88","nodeType":"YulLiteral","src":"21844:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21815:3:88","nodeType":"YulIdentifier","src":"21815:3:88"},"nativeSrc":"21815:32:88","nodeType":"YulFunctionCall","src":"21815:32:88"},"nativeSrc":"21812:52:88","nodeType":"YulIf","src":"21812:52:88"},{"nativeSrc":"21873:26:88","nodeType":"YulAssignment","src":"21873:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"21889:9:88","nodeType":"YulIdentifier","src":"21889:9:88"}],"functionName":{"name":"mload","nativeSrc":"21883:5:88","nodeType":"YulIdentifier","src":"21883:5:88"},"nativeSrc":"21883:16:88","nodeType":"YulFunctionCall","src":"21883:16:88"},"variableNames":[{"name":"value0","nativeSrc":"21873:6:88","nodeType":"YulIdentifier","src":"21873:6:88"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"21721:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21768:9:88","nodeType":"YulTypedName","src":"21768:9:88","type":""},{"name":"dataEnd","nativeSrc":"21779:7:88","nodeType":"YulTypedName","src":"21779:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21791:6:88","nodeType":"YulTypedName","src":"21791:6:88","type":""}],"src":"21721:184:88"},{"body":{"nativeSrc":"22014:170:88","nodeType":"YulBlock","src":"22014:170:88","statements":[{"body":{"nativeSrc":"22060:16:88","nodeType":"YulBlock","src":"22060:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22069:1:88","nodeType":"YulLiteral","src":"22069:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"22072:1:88","nodeType":"YulLiteral","src":"22072:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22062:6:88","nodeType":"YulIdentifier","src":"22062:6:88"},"nativeSrc":"22062:12:88","nodeType":"YulFunctionCall","src":"22062:12:88"},"nativeSrc":"22062:12:88","nodeType":"YulExpressionStatement","src":"22062:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22035:7:88","nodeType":"YulIdentifier","src":"22035:7:88"},{"name":"headStart","nativeSrc":"22044:9:88","nodeType":"YulIdentifier","src":"22044:9:88"}],"functionName":{"name":"sub","nativeSrc":"22031:3:88","nodeType":"YulIdentifier","src":"22031:3:88"},"nativeSrc":"22031:23:88","nodeType":"YulFunctionCall","src":"22031:23:88"},{"kind":"number","nativeSrc":"22056:2:88","nodeType":"YulLiteral","src":"22056:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22027:3:88","nodeType":"YulIdentifier","src":"22027:3:88"},"nativeSrc":"22027:32:88","nodeType":"YulFunctionCall","src":"22027:32:88"},"nativeSrc":"22024:52:88","nodeType":"YulIf","src":"22024:52:88"},{"nativeSrc":"22085:29:88","nodeType":"YulVariableDeclaration","src":"22085:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22104:9:88","nodeType":"YulIdentifier","src":"22104:9:88"}],"functionName":{"name":"mload","nativeSrc":"22098:5:88","nodeType":"YulIdentifier","src":"22098:5:88"},"nativeSrc":"22098:16:88","nodeType":"YulFunctionCall","src":"22098:16:88"},"variables":[{"name":"value","nativeSrc":"22089:5:88","nodeType":"YulTypedName","src":"22089:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22148:5:88","nodeType":"YulIdentifier","src":"22148:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"22123:24:88","nodeType":"YulIdentifier","src":"22123:24:88"},"nativeSrc":"22123:31:88","nodeType":"YulFunctionCall","src":"22123:31:88"},"nativeSrc":"22123:31:88","nodeType":"YulExpressionStatement","src":"22123:31:88"},{"nativeSrc":"22163:15:88","nodeType":"YulAssignment","src":"22163:15:88","value":{"name":"value","nativeSrc":"22173:5:88","nodeType":"YulIdentifier","src":"22173:5:88"},"variableNames":[{"name":"value0","nativeSrc":"22163:6:88","nodeType":"YulIdentifier","src":"22163:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory","nativeSrc":"21910:274:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21980:9:88","nodeType":"YulTypedName","src":"21980:9:88","type":""},{"name":"dataEnd","nativeSrc":"21991:7:88","nodeType":"YulTypedName","src":"21991:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22003:6:88","nodeType":"YulTypedName","src":"22003:6:88","type":""}],"src":"21910:274:88"},{"body":{"nativeSrc":"22430:316:88","nodeType":"YulBlock","src":"22430:316:88","statements":[{"nativeSrc":"22440:27:88","nodeType":"YulAssignment","src":"22440:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"22452:9:88","nodeType":"YulIdentifier","src":"22452:9:88"},{"kind":"number","nativeSrc":"22463:3:88","nodeType":"YulLiteral","src":"22463:3:88","type":"","value":"544"}],"functionName":{"name":"add","nativeSrc":"22448:3:88","nodeType":"YulIdentifier","src":"22448:3:88"},"nativeSrc":"22448:19:88","nodeType":"YulFunctionCall","src":"22448:19:88"},"variableNames":[{"name":"tail","nativeSrc":"22440:4:88","nodeType":"YulIdentifier","src":"22440:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22505:6:88","nodeType":"YulIdentifier","src":"22505:6:88"},{"name":"headStart","nativeSrc":"22513:9:88","nodeType":"YulIdentifier","src":"22513:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"22476:28:88","nodeType":"YulIdentifier","src":"22476:28:88"},"nativeSrc":"22476:47:88","nodeType":"YulFunctionCall","src":"22476:47:88"},"nativeSrc":"22476:47:88","nodeType":"YulExpressionStatement","src":"22476:47:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22543:9:88","nodeType":"YulIdentifier","src":"22543:9:88"},{"kind":"number","nativeSrc":"22554:3:88","nodeType":"YulLiteral","src":"22554:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"22539:3:88","nodeType":"YulIdentifier","src":"22539:3:88"},"nativeSrc":"22539:19:88","nodeType":"YulFunctionCall","src":"22539:19:88"},{"arguments":[{"name":"value1","nativeSrc":"22564:6:88","nodeType":"YulIdentifier","src":"22564:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22580:3:88","nodeType":"YulLiteral","src":"22580:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"22585:1:88","nodeType":"YulLiteral","src":"22585:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"22576:3:88","nodeType":"YulIdentifier","src":"22576:3:88"},"nativeSrc":"22576:11:88","nodeType":"YulFunctionCall","src":"22576:11:88"},{"kind":"number","nativeSrc":"22589:1:88","nodeType":"YulLiteral","src":"22589:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"22572:3:88","nodeType":"YulIdentifier","src":"22572:3:88"},"nativeSrc":"22572:19:88","nodeType":"YulFunctionCall","src":"22572:19:88"}],"functionName":{"name":"and","nativeSrc":"22560:3:88","nodeType":"YulIdentifier","src":"22560:3:88"},"nativeSrc":"22560:32:88","nodeType":"YulFunctionCall","src":"22560:32:88"}],"functionName":{"name":"mstore","nativeSrc":"22532:6:88","nodeType":"YulIdentifier","src":"22532:6:88"},"nativeSrc":"22532:61:88","nodeType":"YulFunctionCall","src":"22532:61:88"},"nativeSrc":"22532:61:88","nodeType":"YulExpressionStatement","src":"22532:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22613:9:88","nodeType":"YulIdentifier","src":"22613:9:88"},{"kind":"number","nativeSrc":"22624:3:88","nodeType":"YulLiteral","src":"22624:3:88","type":"","value":"480"}],"functionName":{"name":"add","nativeSrc":"22609:3:88","nodeType":"YulIdentifier","src":"22609:3:88"},"nativeSrc":"22609:19:88","nodeType":"YulFunctionCall","src":"22609:19:88"},{"arguments":[{"name":"value2","nativeSrc":"22634:6:88","nodeType":"YulIdentifier","src":"22634:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22650:3:88","nodeType":"YulLiteral","src":"22650:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"22655:1:88","nodeType":"YulLiteral","src":"22655:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"22646:3:88","nodeType":"YulIdentifier","src":"22646:3:88"},"nativeSrc":"22646:11:88","nodeType":"YulFunctionCall","src":"22646:11:88"},{"kind":"number","nativeSrc":"22659:1:88","nodeType":"YulLiteral","src":"22659:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"22642:3:88","nodeType":"YulIdentifier","src":"22642:3:88"},"nativeSrc":"22642:19:88","nodeType":"YulFunctionCall","src":"22642:19:88"}],"functionName":{"name":"and","nativeSrc":"22630:3:88","nodeType":"YulIdentifier","src":"22630:3:88"},"nativeSrc":"22630:32:88","nodeType":"YulFunctionCall","src":"22630:32:88"}],"functionName":{"name":"mstore","nativeSrc":"22602:6:88","nodeType":"YulIdentifier","src":"22602:6:88"},"nativeSrc":"22602:61:88","nodeType":"YulFunctionCall","src":"22602:61:88"},"nativeSrc":"22602:61:88","nodeType":"YulExpressionStatement","src":"22602:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22683:9:88","nodeType":"YulIdentifier","src":"22683:9:88"},{"kind":"number","nativeSrc":"22694:3:88","nodeType":"YulLiteral","src":"22694:3:88","type":"","value":"512"}],"functionName":{"name":"add","nativeSrc":"22679:3:88","nodeType":"YulIdentifier","src":"22679:3:88"},"nativeSrc":"22679:19:88","nodeType":"YulFunctionCall","src":"22679:19:88"},{"arguments":[{"name":"value3","nativeSrc":"22704:6:88","nodeType":"YulIdentifier","src":"22704:6:88"},{"kind":"number","nativeSrc":"22712:26:88","nodeType":"YulLiteral","src":"22712:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"22700:3:88","nodeType":"YulIdentifier","src":"22700:3:88"},"nativeSrc":"22700:39:88","nodeType":"YulFunctionCall","src":"22700:39:88"}],"functionName":{"name":"mstore","nativeSrc":"22672:6:88","nodeType":"YulIdentifier","src":"22672:6:88"},"nativeSrc":"22672:68:88","nodeType":"YulFunctionCall","src":"22672:68:88"},"nativeSrc":"22672:68:88","nodeType":"YulExpressionStatement","src":"22672:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed","nativeSrc":"22189:557:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22375:9:88","nodeType":"YulTypedName","src":"22375:9:88","type":""},{"name":"value3","nativeSrc":"22386:6:88","nodeType":"YulTypedName","src":"22386:6:88","type":""},{"name":"value2","nativeSrc":"22394:6:88","nodeType":"YulTypedName","src":"22394:6:88","type":""},{"name":"value1","nativeSrc":"22402:6:88","nodeType":"YulTypedName","src":"22402:6:88","type":""},{"name":"value0","nativeSrc":"22410:6:88","nodeType":"YulTypedName","src":"22410:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22421:4:88","nodeType":"YulTypedName","src":"22421:4:88","type":""}],"src":"22189:557:88"},{"body":{"nativeSrc":"22925:166:88","nodeType":"YulBlock","src":"22925:166:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22942:9:88","nodeType":"YulIdentifier","src":"22942:9:88"},{"kind":"number","nativeSrc":"22953:2:88","nodeType":"YulLiteral","src":"22953:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22935:6:88","nodeType":"YulIdentifier","src":"22935:6:88"},"nativeSrc":"22935:21:88","nodeType":"YulFunctionCall","src":"22935:21:88"},"nativeSrc":"22935:21:88","nodeType":"YulExpressionStatement","src":"22935:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22976:9:88","nodeType":"YulIdentifier","src":"22976:9:88"},{"kind":"number","nativeSrc":"22987:2:88","nodeType":"YulLiteral","src":"22987:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22972:3:88","nodeType":"YulIdentifier","src":"22972:3:88"},"nativeSrc":"22972:18:88","nodeType":"YulFunctionCall","src":"22972:18:88"},{"kind":"number","nativeSrc":"22992:2:88","nodeType":"YulLiteral","src":"22992:2:88","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"22965:6:88","nodeType":"YulIdentifier","src":"22965:6:88"},"nativeSrc":"22965:30:88","nodeType":"YulFunctionCall","src":"22965:30:88"},"nativeSrc":"22965:30:88","nodeType":"YulExpressionStatement","src":"22965:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23015:9:88","nodeType":"YulIdentifier","src":"23015:9:88"},{"kind":"number","nativeSrc":"23026:2:88","nodeType":"YulLiteral","src":"23026:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23011:3:88","nodeType":"YulIdentifier","src":"23011:3:88"},"nativeSrc":"23011:18:88","nodeType":"YulFunctionCall","src":"23011:18:88"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"23031:18:88","nodeType":"YulLiteral","src":"23031:18:88","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"23004:6:88","nodeType":"YulIdentifier","src":"23004:6:88"},"nativeSrc":"23004:46:88","nodeType":"YulFunctionCall","src":"23004:46:88"},"nativeSrc":"23004:46:88","nodeType":"YulExpressionStatement","src":"23004:46:88"},{"nativeSrc":"23059:26:88","nodeType":"YulAssignment","src":"23059:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23071:9:88","nodeType":"YulIdentifier","src":"23071:9:88"},{"kind":"number","nativeSrc":"23082:2:88","nodeType":"YulLiteral","src":"23082:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23067:3:88","nodeType":"YulIdentifier","src":"23067:3:88"},"nativeSrc":"23067:18:88","nodeType":"YulFunctionCall","src":"23067:18:88"},"variableNames":[{"name":"tail","nativeSrc":"23059:4:88","nodeType":"YulIdentifier","src":"23059:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22751:340:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22902:9:88","nodeType":"YulTypedName","src":"22902:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22916:4:88","nodeType":"YulTypedName","src":"22916:4:88","type":""}],"src":"22751:340:88"},{"body":{"nativeSrc":"23165:115:88","nodeType":"YulBlock","src":"23165:115:88","statements":[{"body":{"nativeSrc":"23211:16:88","nodeType":"YulBlock","src":"23211:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23220:1:88","nodeType":"YulLiteral","src":"23220:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"23223:1:88","nodeType":"YulLiteral","src":"23223:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23213:6:88","nodeType":"YulIdentifier","src":"23213:6:88"},"nativeSrc":"23213:12:88","nodeType":"YulFunctionCall","src":"23213:12:88"},"nativeSrc":"23213:12:88","nodeType":"YulExpressionStatement","src":"23213:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23186:7:88","nodeType":"YulIdentifier","src":"23186:7:88"},{"name":"headStart","nativeSrc":"23195:9:88","nodeType":"YulIdentifier","src":"23195:9:88"}],"functionName":{"name":"sub","nativeSrc":"23182:3:88","nodeType":"YulIdentifier","src":"23182:3:88"},"nativeSrc":"23182:23:88","nodeType":"YulFunctionCall","src":"23182:23:88"},{"kind":"number","nativeSrc":"23207:2:88","nodeType":"YulLiteral","src":"23207:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23178:3:88","nodeType":"YulIdentifier","src":"23178:3:88"},"nativeSrc":"23178:32:88","nodeType":"YulFunctionCall","src":"23178:32:88"},"nativeSrc":"23175:52:88","nodeType":"YulIf","src":"23175:52:88"},{"nativeSrc":"23236:38:88","nodeType":"YulAssignment","src":"23236:38:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23264:9:88","nodeType":"YulIdentifier","src":"23264:9:88"}],"functionName":{"name":"abi_decode_uint40","nativeSrc":"23246:17:88","nodeType":"YulIdentifier","src":"23246:17:88"},"nativeSrc":"23246:28:88","nodeType":"YulFunctionCall","src":"23246:28:88"},"variableNames":[{"name":"value0","nativeSrc":"23236:6:88","nodeType":"YulIdentifier","src":"23236:6:88"}]}]},"name":"abi_decode_tuple_t_uint40","nativeSrc":"23096:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23131:9:88","nodeType":"YulTypedName","src":"23131:9:88","type":""},{"name":"dataEnd","nativeSrc":"23142:7:88","nodeType":"YulTypedName","src":"23142:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23154:6:88","nodeType":"YulTypedName","src":"23154:6:88","type":""}],"src":"23096:184:88"},{"body":{"nativeSrc":"23459:182:88","nodeType":"YulBlock","src":"23459:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23476:9:88","nodeType":"YulIdentifier","src":"23476:9:88"},{"kind":"number","nativeSrc":"23487:2:88","nodeType":"YulLiteral","src":"23487:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23469:6:88","nodeType":"YulIdentifier","src":"23469:6:88"},"nativeSrc":"23469:21:88","nodeType":"YulFunctionCall","src":"23469:21:88"},"nativeSrc":"23469:21:88","nodeType":"YulExpressionStatement","src":"23469:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23510:9:88","nodeType":"YulIdentifier","src":"23510:9:88"},{"kind":"number","nativeSrc":"23521:2:88","nodeType":"YulLiteral","src":"23521:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23506:3:88","nodeType":"YulIdentifier","src":"23506:3:88"},"nativeSrc":"23506:18:88","nodeType":"YulFunctionCall","src":"23506:18:88"},{"kind":"number","nativeSrc":"23526:2:88","nodeType":"YulLiteral","src":"23526:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23499:6:88","nodeType":"YulIdentifier","src":"23499:6:88"},"nativeSrc":"23499:30:88","nodeType":"YulFunctionCall","src":"23499:30:88"},"nativeSrc":"23499:30:88","nodeType":"YulExpressionStatement","src":"23499:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23549:9:88","nodeType":"YulIdentifier","src":"23549:9:88"},{"kind":"number","nativeSrc":"23560:2:88","nodeType":"YulLiteral","src":"23560:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23545:3:88","nodeType":"YulIdentifier","src":"23545:3:88"},"nativeSrc":"23545:18:88","nodeType":"YulFunctionCall","src":"23545:18:88"},{"hexValue":"5072656d69756d206d757374206265206c657373207468616e207061796f7574","kind":"string","nativeSrc":"23565:34:88","nodeType":"YulLiteral","src":"23565:34:88","type":"","value":"Premium must be less than payout"}],"functionName":{"name":"mstore","nativeSrc":"23538:6:88","nodeType":"YulIdentifier","src":"23538:6:88"},"nativeSrc":"23538:62:88","nodeType":"YulFunctionCall","src":"23538:62:88"},"nativeSrc":"23538:62:88","nodeType":"YulExpressionStatement","src":"23538:62:88"},{"nativeSrc":"23609:26:88","nodeType":"YulAssignment","src":"23609:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23621:9:88","nodeType":"YulIdentifier","src":"23621:9:88"},{"kind":"number","nativeSrc":"23632:2:88","nodeType":"YulLiteral","src":"23632:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23617:3:88","nodeType":"YulIdentifier","src":"23617:3:88"},"nativeSrc":"23617:18:88","nodeType":"YulFunctionCall","src":"23617:18:88"},"variableNames":[{"name":"tail","nativeSrc":"23609:4:88","nodeType":"YulIdentifier","src":"23609:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23285:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23436:9:88","nodeType":"YulTypedName","src":"23436:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23450:4:88","nodeType":"YulTypedName","src":"23450:4:88","type":""}],"src":"23285:356:88"},{"body":{"nativeSrc":"23820:171:88","nodeType":"YulBlock","src":"23820:171:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23837:9:88","nodeType":"YulIdentifier","src":"23837:9:88"},{"kind":"number","nativeSrc":"23848:2:88","nodeType":"YulLiteral","src":"23848:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"23830:6:88","nodeType":"YulIdentifier","src":"23830:6:88"},"nativeSrc":"23830:21:88","nodeType":"YulFunctionCall","src":"23830:21:88"},"nativeSrc":"23830:21:88","nodeType":"YulExpressionStatement","src":"23830:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23871:9:88","nodeType":"YulIdentifier","src":"23871:9:88"},{"kind":"number","nativeSrc":"23882:2:88","nodeType":"YulLiteral","src":"23882:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23867:3:88","nodeType":"YulIdentifier","src":"23867:3:88"},"nativeSrc":"23867:18:88","nodeType":"YulFunctionCall","src":"23867:18:88"},{"kind":"number","nativeSrc":"23887:2:88","nodeType":"YulLiteral","src":"23887:2:88","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"23860:6:88","nodeType":"YulIdentifier","src":"23860:6:88"},"nativeSrc":"23860:30:88","nodeType":"YulFunctionCall","src":"23860:30:88"},"nativeSrc":"23860:30:88","nodeType":"YulExpressionStatement","src":"23860:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23910:9:88","nodeType":"YulIdentifier","src":"23910:9:88"},{"kind":"number","nativeSrc":"23921:2:88","nodeType":"YulLiteral","src":"23921:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23906:3:88","nodeType":"YulIdentifier","src":"23906:3:88"},"nativeSrc":"23906:18:88","nodeType":"YulFunctionCall","src":"23906:18:88"},{"hexValue":"4f6c6420706f6c6963792069732065787069726564","kind":"string","nativeSrc":"23926:23:88","nodeType":"YulLiteral","src":"23926:23:88","type":"","value":"Old policy is expired"}],"functionName":{"name":"mstore","nativeSrc":"23899:6:88","nodeType":"YulIdentifier","src":"23899:6:88"},"nativeSrc":"23899:51:88","nodeType":"YulFunctionCall","src":"23899:51:88"},"nativeSrc":"23899:51:88","nodeType":"YulExpressionStatement","src":"23899:51:88"},{"nativeSrc":"23959:26:88","nodeType":"YulAssignment","src":"23959:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"23971:9:88","nodeType":"YulIdentifier","src":"23971:9:88"},{"kind":"number","nativeSrc":"23982:2:88","nodeType":"YulLiteral","src":"23982:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23967:3:88","nodeType":"YulIdentifier","src":"23967:3:88"},"nativeSrc":"23967:18:88","nodeType":"YulFunctionCall","src":"23967:18:88"},"variableNames":[{"name":"tail","nativeSrc":"23959:4:88","nodeType":"YulIdentifier","src":"23959:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23646:345:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23797:9:88","nodeType":"YulTypedName","src":"23797:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23811:4:88","nodeType":"YulTypedName","src":"23811:4:88","type":""}],"src":"23646:345:88"},{"body":{"nativeSrc":"24170:249:88","nodeType":"YulBlock","src":"24170:249:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24187:9:88","nodeType":"YulIdentifier","src":"24187:9:88"},{"kind":"number","nativeSrc":"24198:2:88","nodeType":"YulLiteral","src":"24198:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24180:6:88","nodeType":"YulIdentifier","src":"24180:6:88"},"nativeSrc":"24180:21:88","nodeType":"YulFunctionCall","src":"24180:21:88"},"nativeSrc":"24180:21:88","nodeType":"YulExpressionStatement","src":"24180:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24221:9:88","nodeType":"YulIdentifier","src":"24221:9:88"},{"kind":"number","nativeSrc":"24232:2:88","nodeType":"YulLiteral","src":"24232:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24217:3:88","nodeType":"YulIdentifier","src":"24217:3:88"},"nativeSrc":"24217:18:88","nodeType":"YulFunctionCall","src":"24217:18:88"},{"kind":"number","nativeSrc":"24237:2:88","nodeType":"YulLiteral","src":"24237:2:88","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"24210:6:88","nodeType":"YulIdentifier","src":"24210:6:88"},"nativeSrc":"24210:30:88","nodeType":"YulFunctionCall","src":"24210:30:88"},"nativeSrc":"24210:30:88","nodeType":"YulExpressionStatement","src":"24210:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24260:9:88","nodeType":"YulIdentifier","src":"24260:9:88"},{"kind":"number","nativeSrc":"24271:2:88","nodeType":"YulLiteral","src":"24271:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24256:3:88","nodeType":"YulIdentifier","src":"24256:3:88"},"nativeSrc":"24256:18:88","nodeType":"YulFunctionCall","src":"24256:18:88"},{"hexValue":"506f6c696379207265706c6163656d656e74206d757374206265206772656174","kind":"string","nativeSrc":"24276:34:88","nodeType":"YulLiteral","src":"24276:34:88","type":"","value":"Policy replacement must be great"}],"functionName":{"name":"mstore","nativeSrc":"24249:6:88","nodeType":"YulIdentifier","src":"24249:6:88"},"nativeSrc":"24249:62:88","nodeType":"YulFunctionCall","src":"24249:62:88"},"nativeSrc":"24249:62:88","nodeType":"YulExpressionStatement","src":"24249:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24331:9:88","nodeType":"YulIdentifier","src":"24331:9:88"},{"kind":"number","nativeSrc":"24342:2:88","nodeType":"YulLiteral","src":"24342:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24327:3:88","nodeType":"YulIdentifier","src":"24327:3:88"},"nativeSrc":"24327:18:88","nodeType":"YulFunctionCall","src":"24327:18:88"},{"hexValue":"6572206f7220657175616c207468616e206f6c6420706f6c696379","kind":"string","nativeSrc":"24347:29:88","nodeType":"YulLiteral","src":"24347:29:88","type":"","value":"er or equal than old policy"}],"functionName":{"name":"mstore","nativeSrc":"24320:6:88","nodeType":"YulIdentifier","src":"24320:6:88"},"nativeSrc":"24320:57:88","nodeType":"YulFunctionCall","src":"24320:57:88"},"nativeSrc":"24320:57:88","nodeType":"YulExpressionStatement","src":"24320:57:88"},{"nativeSrc":"24386:27:88","nodeType":"YulAssignment","src":"24386:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"24398:9:88","nodeType":"YulIdentifier","src":"24398:9:88"},{"kind":"number","nativeSrc":"24409:3:88","nodeType":"YulLiteral","src":"24409:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24394:3:88","nodeType":"YulIdentifier","src":"24394:3:88"},"nativeSrc":"24394:19:88","nodeType":"YulFunctionCall","src":"24394:19:88"},"variableNames":[{"name":"tail","nativeSrc":"24386:4:88","nodeType":"YulIdentifier","src":"24386:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23996:423:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24147:9:88","nodeType":"YulTypedName","src":"24147:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24161:4:88","nodeType":"YulTypedName","src":"24161:4:88","type":""}],"src":"23996:423:88"},{"body":{"nativeSrc":"24472:128:88","nodeType":"YulBlock","src":"24472:128:88","statements":[{"nativeSrc":"24482:55:88","nodeType":"YulAssignment","src":"24482:55:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"24498:1:88","nodeType":"YulIdentifier","src":"24498:1:88"},{"kind":"number","nativeSrc":"24501:12:88","nodeType":"YulLiteral","src":"24501:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"24494:3:88","nodeType":"YulIdentifier","src":"24494:3:88"},"nativeSrc":"24494:20:88","nodeType":"YulFunctionCall","src":"24494:20:88"},{"arguments":[{"name":"y","nativeSrc":"24520:1:88","nodeType":"YulIdentifier","src":"24520:1:88"},{"kind":"number","nativeSrc":"24523:12:88","nodeType":"YulLiteral","src":"24523:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"24516:3:88","nodeType":"YulIdentifier","src":"24516:3:88"},"nativeSrc":"24516:20:88","nodeType":"YulFunctionCall","src":"24516:20:88"}],"functionName":{"name":"sub","nativeSrc":"24490:3:88","nodeType":"YulIdentifier","src":"24490:3:88"},"nativeSrc":"24490:47:88","nodeType":"YulFunctionCall","src":"24490:47:88"},"variableNames":[{"name":"diff","nativeSrc":"24482:4:88","nodeType":"YulIdentifier","src":"24482:4:88"}]},{"body":{"nativeSrc":"24572:22:88","nodeType":"YulBlock","src":"24572:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"24574:16:88","nodeType":"YulIdentifier","src":"24574:16:88"},"nativeSrc":"24574:18:88","nodeType":"YulFunctionCall","src":"24574:18:88"},"nativeSrc":"24574:18:88","nodeType":"YulExpressionStatement","src":"24574:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"24552:4:88","nodeType":"YulIdentifier","src":"24552:4:88"},{"kind":"number","nativeSrc":"24558:12:88","nodeType":"YulLiteral","src":"24558:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24549:2:88","nodeType":"YulIdentifier","src":"24549:2:88"},"nativeSrc":"24549:22:88","nodeType":"YulFunctionCall","src":"24549:22:88"},"nativeSrc":"24546:48:88","nodeType":"YulIf","src":"24546:48:88"}]},"name":"checked_sub_t_uint40","nativeSrc":"24424:176:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"24454:1:88","nodeType":"YulTypedName","src":"24454:1:88","type":""},{"name":"y","nativeSrc":"24457:1:88","nodeType":"YulTypedName","src":"24457:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"24463:4:88","nodeType":"YulTypedName","src":"24463:4:88","type":""}],"src":"24424:176:88"},{"body":{"nativeSrc":"24637:95:88","nodeType":"YulBlock","src":"24637:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24654:1:88","nodeType":"YulLiteral","src":"24654:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"24661:3:88","nodeType":"YulLiteral","src":"24661:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"24666:10:88","nodeType":"YulLiteral","src":"24666:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"24657:3:88","nodeType":"YulIdentifier","src":"24657:3:88"},"nativeSrc":"24657:20:88","nodeType":"YulFunctionCall","src":"24657:20:88"}],"functionName":{"name":"mstore","nativeSrc":"24647:6:88","nodeType":"YulIdentifier","src":"24647:6:88"},"nativeSrc":"24647:31:88","nodeType":"YulFunctionCall","src":"24647:31:88"},"nativeSrc":"24647:31:88","nodeType":"YulExpressionStatement","src":"24647:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24694:1:88","nodeType":"YulLiteral","src":"24694:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"24697:4:88","nodeType":"YulLiteral","src":"24697:4:88","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"24687:6:88","nodeType":"YulIdentifier","src":"24687:6:88"},"nativeSrc":"24687:15:88","nodeType":"YulFunctionCall","src":"24687:15:88"},"nativeSrc":"24687:15:88","nodeType":"YulExpressionStatement","src":"24687:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24718:1:88","nodeType":"YulLiteral","src":"24718:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"24721:4:88","nodeType":"YulLiteral","src":"24721:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"24711:6:88","nodeType":"YulIdentifier","src":"24711:6:88"},"nativeSrc":"24711:15:88","nodeType":"YulFunctionCall","src":"24711:15:88"},"nativeSrc":"24711:15:88","nodeType":"YulExpressionStatement","src":"24711:15:88"}]},"name":"panic_error_0x12","nativeSrc":"24605:127:88","nodeType":"YulFunctionDefinition","src":"24605:127:88"},{"body":{"nativeSrc":"24782:137:88","nodeType":"YulBlock","src":"24782:137:88","statements":[{"nativeSrc":"24792:31:88","nodeType":"YulVariableDeclaration","src":"24792:31:88","value":{"arguments":[{"name":"y","nativeSrc":"24807:1:88","nodeType":"YulIdentifier","src":"24807:1:88"},{"kind":"number","nativeSrc":"24810:12:88","nodeType":"YulLiteral","src":"24810:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"24803:3:88","nodeType":"YulIdentifier","src":"24803:3:88"},"nativeSrc":"24803:20:88","nodeType":"YulFunctionCall","src":"24803:20:88"},"variables":[{"name":"y_1","nativeSrc":"24796:3:88","nodeType":"YulTypedName","src":"24796:3:88","type":""}]},{"body":{"nativeSrc":"24847:22:88","nodeType":"YulBlock","src":"24847:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"24849:16:88","nodeType":"YulIdentifier","src":"24849:16:88"},"nativeSrc":"24849:18:88","nodeType":"YulFunctionCall","src":"24849:18:88"},"nativeSrc":"24849:18:88","nodeType":"YulExpressionStatement","src":"24849:18:88"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"24842:3:88","nodeType":"YulIdentifier","src":"24842:3:88"}],"functionName":{"name":"iszero","nativeSrc":"24835:6:88","nodeType":"YulIdentifier","src":"24835:6:88"},"nativeSrc":"24835:11:88","nodeType":"YulFunctionCall","src":"24835:11:88"},"nativeSrc":"24832:37:88","nodeType":"YulIf","src":"24832:37:88"},{"nativeSrc":"24878:35:88","nodeType":"YulAssignment","src":"24878:35:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"24891:1:88","nodeType":"YulIdentifier","src":"24891:1:88"},{"kind":"number","nativeSrc":"24894:12:88","nodeType":"YulLiteral","src":"24894:12:88","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nativeSrc":"24887:3:88","nodeType":"YulIdentifier","src":"24887:3:88"},"nativeSrc":"24887:20:88","nodeType":"YulFunctionCall","src":"24887:20:88"},{"name":"y_1","nativeSrc":"24909:3:88","nodeType":"YulIdentifier","src":"24909:3:88"}],"functionName":{"name":"div","nativeSrc":"24883:3:88","nodeType":"YulIdentifier","src":"24883:3:88"},"nativeSrc":"24883:30:88","nodeType":"YulFunctionCall","src":"24883:30:88"},"variableNames":[{"name":"r","nativeSrc":"24878:1:88","nodeType":"YulIdentifier","src":"24878:1:88"}]}]},"name":"checked_div_t_uint40","nativeSrc":"24737:182:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"24767:1:88","nodeType":"YulTypedName","src":"24767:1:88","type":""},{"name":"y","nativeSrc":"24770:1:88","nodeType":"YulTypedName","src":"24770:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"24776:1:88","nodeType":"YulTypedName","src":"24776:1:88","type":""}],"src":"24737:182:88"},{"body":{"nativeSrc":"25098:177:88","nodeType":"YulBlock","src":"25098:177:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25115:9:88","nodeType":"YulIdentifier","src":"25115:9:88"},{"kind":"number","nativeSrc":"25126:2:88","nodeType":"YulLiteral","src":"25126:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25108:6:88","nodeType":"YulIdentifier","src":"25108:6:88"},"nativeSrc":"25108:21:88","nodeType":"YulFunctionCall","src":"25108:21:88"},"nativeSrc":"25108:21:88","nodeType":"YulExpressionStatement","src":"25108:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25149:9:88","nodeType":"YulIdentifier","src":"25149:9:88"},{"kind":"number","nativeSrc":"25160:2:88","nodeType":"YulLiteral","src":"25160:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25145:3:88","nodeType":"YulIdentifier","src":"25145:3:88"},"nativeSrc":"25145:18:88","nodeType":"YulFunctionCall","src":"25145:18:88"},{"kind":"number","nativeSrc":"25165:2:88","nodeType":"YulLiteral","src":"25165:2:88","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"25138:6:88","nodeType":"YulIdentifier","src":"25138:6:88"},"nativeSrc":"25138:30:88","nodeType":"YulFunctionCall","src":"25138:30:88"},"nativeSrc":"25138:30:88","nodeType":"YulExpressionStatement","src":"25138:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25188:9:88","nodeType":"YulIdentifier","src":"25188:9:88"},{"kind":"number","nativeSrc":"25199:2:88","nodeType":"YulLiteral","src":"25199:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25184:3:88","nodeType":"YulIdentifier","src":"25184:3:88"},"nativeSrc":"25184:18:88","nodeType":"YulFunctionCall","src":"25184:18:88"},{"hexValue":"506f6c6963792065786365656473206d6178206475726174696f6e","kind":"string","nativeSrc":"25204:29:88","nodeType":"YulLiteral","src":"25204:29:88","type":"","value":"Policy exceeds max duration"}],"functionName":{"name":"mstore","nativeSrc":"25177:6:88","nodeType":"YulIdentifier","src":"25177:6:88"},"nativeSrc":"25177:57:88","nodeType":"YulFunctionCall","src":"25177:57:88"},"nativeSrc":"25177:57:88","nodeType":"YulExpressionStatement","src":"25177:57:88"},{"nativeSrc":"25243:26:88","nodeType":"YulAssignment","src":"25243:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25255:9:88","nodeType":"YulIdentifier","src":"25255:9:88"},{"kind":"number","nativeSrc":"25266:2:88","nodeType":"YulLiteral","src":"25266:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25251:3:88","nodeType":"YulIdentifier","src":"25251:3:88"},"nativeSrc":"25251:18:88","nodeType":"YulFunctionCall","src":"25251:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25243:4:88","nodeType":"YulIdentifier","src":"25243:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24924:351:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25075:9:88","nodeType":"YulTypedName","src":"25075:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25089:4:88","nodeType":"YulTypedName","src":"25089:4:88","type":""}],"src":"24924:351:88"},{"body":{"nativeSrc":"25409:171:88","nodeType":"YulBlock","src":"25409:171:88","statements":[{"nativeSrc":"25419:26:88","nodeType":"YulAssignment","src":"25419:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25431:9:88","nodeType":"YulIdentifier","src":"25431:9:88"},{"kind":"number","nativeSrc":"25442:2:88","nodeType":"YulLiteral","src":"25442:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25427:3:88","nodeType":"YulIdentifier","src":"25427:3:88"},"nativeSrc":"25427:18:88","nodeType":"YulFunctionCall","src":"25427:18:88"},"variableNames":[{"name":"tail","nativeSrc":"25419:4:88","nodeType":"YulIdentifier","src":"25419:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25461:9:88","nodeType":"YulIdentifier","src":"25461:9:88"},{"arguments":[{"name":"value0","nativeSrc":"25476:6:88","nodeType":"YulIdentifier","src":"25476:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25492:3:88","nodeType":"YulLiteral","src":"25492:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"25497:1:88","nodeType":"YulLiteral","src":"25497:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"25488:3:88","nodeType":"YulIdentifier","src":"25488:3:88"},"nativeSrc":"25488:11:88","nodeType":"YulFunctionCall","src":"25488:11:88"},{"kind":"number","nativeSrc":"25501:1:88","nodeType":"YulLiteral","src":"25501:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25484:3:88","nodeType":"YulIdentifier","src":"25484:3:88"},"nativeSrc":"25484:19:88","nodeType":"YulFunctionCall","src":"25484:19:88"}],"functionName":{"name":"and","nativeSrc":"25472:3:88","nodeType":"YulIdentifier","src":"25472:3:88"},"nativeSrc":"25472:32:88","nodeType":"YulFunctionCall","src":"25472:32:88"}],"functionName":{"name":"mstore","nativeSrc":"25454:6:88","nodeType":"YulIdentifier","src":"25454:6:88"},"nativeSrc":"25454:51:88","nodeType":"YulFunctionCall","src":"25454:51:88"},"nativeSrc":"25454:51:88","nodeType":"YulExpressionStatement","src":"25454:51:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25525:9:88","nodeType":"YulIdentifier","src":"25525:9:88"},{"kind":"number","nativeSrc":"25536:2:88","nodeType":"YulLiteral","src":"25536:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25521:3:88","nodeType":"YulIdentifier","src":"25521:3:88"},"nativeSrc":"25521:18:88","nodeType":"YulFunctionCall","src":"25521:18:88"},{"arguments":[{"name":"value1","nativeSrc":"25545:6:88","nodeType":"YulIdentifier","src":"25545:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25561:3:88","nodeType":"YulLiteral","src":"25561:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"25566:1:88","nodeType":"YulLiteral","src":"25566:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"25557:3:88","nodeType":"YulIdentifier","src":"25557:3:88"},"nativeSrc":"25557:11:88","nodeType":"YulFunctionCall","src":"25557:11:88"},{"kind":"number","nativeSrc":"25570:1:88","nodeType":"YulLiteral","src":"25570:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25553:3:88","nodeType":"YulIdentifier","src":"25553:3:88"},"nativeSrc":"25553:19:88","nodeType":"YulFunctionCall","src":"25553:19:88"}],"functionName":{"name":"and","nativeSrc":"25541:3:88","nodeType":"YulIdentifier","src":"25541:3:88"},"nativeSrc":"25541:32:88","nodeType":"YulFunctionCall","src":"25541:32:88"}],"functionName":{"name":"mstore","nativeSrc":"25514:6:88","nodeType":"YulIdentifier","src":"25514:6:88"},"nativeSrc":"25514:60:88","nodeType":"YulFunctionCall","src":"25514:60:88"},"nativeSrc":"25514:60:88","nodeType":"YulExpressionStatement","src":"25514:60:88"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"25280:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25370:9:88","nodeType":"YulTypedName","src":"25370:9:88","type":""},{"name":"value1","nativeSrc":"25381:6:88","nodeType":"YulTypedName","src":"25381:6:88","type":""},{"name":"value0","nativeSrc":"25389:6:88","nodeType":"YulTypedName","src":"25389:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25400:4:88","nodeType":"YulTypedName","src":"25400:4:88","type":""}],"src":"25280:300:88"},{"body":{"nativeSrc":"25759:235:88","nodeType":"YulBlock","src":"25759:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25776:9:88","nodeType":"YulIdentifier","src":"25776:9:88"},{"kind":"number","nativeSrc":"25787:2:88","nodeType":"YulLiteral","src":"25787:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25769:6:88","nodeType":"YulIdentifier","src":"25769:6:88"},"nativeSrc":"25769:21:88","nodeType":"YulFunctionCall","src":"25769:21:88"},"nativeSrc":"25769:21:88","nodeType":"YulExpressionStatement","src":"25769:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25810:9:88","nodeType":"YulIdentifier","src":"25810:9:88"},{"kind":"number","nativeSrc":"25821:2:88","nodeType":"YulLiteral","src":"25821:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25806:3:88","nodeType":"YulIdentifier","src":"25806:3:88"},"nativeSrc":"25806:18:88","nodeType":"YulFunctionCall","src":"25806:18:88"},{"kind":"number","nativeSrc":"25826:2:88","nodeType":"YulLiteral","src":"25826:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"25799:6:88","nodeType":"YulIdentifier","src":"25799:6:88"},"nativeSrc":"25799:30:88","nodeType":"YulFunctionCall","src":"25799:30:88"},"nativeSrc":"25799:30:88","nodeType":"YulExpressionStatement","src":"25799:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25849:9:88","nodeType":"YulIdentifier","src":"25849:9:88"},{"kind":"number","nativeSrc":"25860:2:88","nodeType":"YulLiteral","src":"25860:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25845:3:88","nodeType":"YulIdentifier","src":"25845:3:88"},"nativeSrc":"25845:18:88","nodeType":"YulFunctionCall","src":"25845:18:88"},{"hexValue":"596f75206d75737420616c6c6f7720454e5355524f20746f207472616e736665","kind":"string","nativeSrc":"25865:34:88","nodeType":"YulLiteral","src":"25865:34:88","type":"","value":"You must allow ENSURO to transfe"}],"functionName":{"name":"mstore","nativeSrc":"25838:6:88","nodeType":"YulIdentifier","src":"25838:6:88"},"nativeSrc":"25838:62:88","nodeType":"YulFunctionCall","src":"25838:62:88"},"nativeSrc":"25838:62:88","nodeType":"YulExpressionStatement","src":"25838:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25920:9:88","nodeType":"YulIdentifier","src":"25920:9:88"},{"kind":"number","nativeSrc":"25931:2:88","nodeType":"YulLiteral","src":"25931:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25916:3:88","nodeType":"YulIdentifier","src":"25916:3:88"},"nativeSrc":"25916:18:88","nodeType":"YulFunctionCall","src":"25916:18:88"},{"hexValue":"7220746865207072656d69756d","kind":"string","nativeSrc":"25936:15:88","nodeType":"YulLiteral","src":"25936:15:88","type":"","value":"r the premium"}],"functionName":{"name":"mstore","nativeSrc":"25909:6:88","nodeType":"YulIdentifier","src":"25909:6:88"},"nativeSrc":"25909:43:88","nodeType":"YulFunctionCall","src":"25909:43:88"},"nativeSrc":"25909:43:88","nodeType":"YulExpressionStatement","src":"25909:43:88"},{"nativeSrc":"25961:27:88","nodeType":"YulAssignment","src":"25961:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"25973:9:88","nodeType":"YulIdentifier","src":"25973:9:88"},{"kind":"number","nativeSrc":"25984:3:88","nodeType":"YulLiteral","src":"25984:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25969:3:88","nodeType":"YulIdentifier","src":"25969:3:88"},"nativeSrc":"25969:19:88","nodeType":"YulFunctionCall","src":"25969:19:88"},"variableNames":[{"name":"tail","nativeSrc":"25961:4:88","nodeType":"YulIdentifier","src":"25961:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25585:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25736:9:88","nodeType":"YulTypedName","src":"25736:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25750:4:88","nodeType":"YulTypedName","src":"25750:4:88","type":""}],"src":"25585:409:88"},{"body":{"nativeSrc":"26173:237:88","nodeType":"YulBlock","src":"26173:237:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26190:9:88","nodeType":"YulIdentifier","src":"26190:9:88"},{"kind":"number","nativeSrc":"26201:2:88","nodeType":"YulLiteral","src":"26201:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26183:6:88","nodeType":"YulIdentifier","src":"26183:6:88"},"nativeSrc":"26183:21:88","nodeType":"YulFunctionCall","src":"26183:21:88"},"nativeSrc":"26183:21:88","nodeType":"YulExpressionStatement","src":"26183:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26224:9:88","nodeType":"YulIdentifier","src":"26224:9:88"},{"kind":"number","nativeSrc":"26235:2:88","nodeType":"YulLiteral","src":"26235:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26220:3:88","nodeType":"YulIdentifier","src":"26220:3:88"},"nativeSrc":"26220:18:88","nodeType":"YulFunctionCall","src":"26220:18:88"},{"kind":"number","nativeSrc":"26240:2:88","nodeType":"YulLiteral","src":"26240:2:88","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"26213:6:88","nodeType":"YulIdentifier","src":"26213:6:88"},"nativeSrc":"26213:30:88","nodeType":"YulFunctionCall","src":"26213:30:88"},"nativeSrc":"26213:30:88","nodeType":"YulExpressionStatement","src":"26213:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26263:9:88","nodeType":"YulIdentifier","src":"26263:9:88"},{"kind":"number","nativeSrc":"26274:2:88","nodeType":"YulLiteral","src":"26274:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26259:3:88","nodeType":"YulIdentifier","src":"26259:3:88"},"nativeSrc":"26259:18:88","nodeType":"YulFunctionCall","src":"26259:18:88"},{"hexValue":"5061796572206d75737420616c6c6f772063616c6c657220746f207472616e73","kind":"string","nativeSrc":"26279:34:88","nodeType":"YulLiteral","src":"26279:34:88","type":"","value":"Payer must allow caller to trans"}],"functionName":{"name":"mstore","nativeSrc":"26252:6:88","nodeType":"YulIdentifier","src":"26252:6:88"},"nativeSrc":"26252:62:88","nodeType":"YulFunctionCall","src":"26252:62:88"},"nativeSrc":"26252:62:88","nodeType":"YulExpressionStatement","src":"26252:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26334:9:88","nodeType":"YulIdentifier","src":"26334:9:88"},{"kind":"number","nativeSrc":"26345:2:88","nodeType":"YulLiteral","src":"26345:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26330:3:88","nodeType":"YulIdentifier","src":"26330:3:88"},"nativeSrc":"26330:18:88","nodeType":"YulFunctionCall","src":"26330:18:88"},{"hexValue":"66657220746865207072656d69756d","kind":"string","nativeSrc":"26350:17:88","nodeType":"YulLiteral","src":"26350:17:88","type":"","value":"fer the premium"}],"functionName":{"name":"mstore","nativeSrc":"26323:6:88","nodeType":"YulIdentifier","src":"26323:6:88"},"nativeSrc":"26323:45:88","nodeType":"YulFunctionCall","src":"26323:45:88"},"nativeSrc":"26323:45:88","nodeType":"YulExpressionStatement","src":"26323:45:88"},{"nativeSrc":"26377:27:88","nodeType":"YulAssignment","src":"26377:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26389:9:88","nodeType":"YulIdentifier","src":"26389:9:88"},{"kind":"number","nativeSrc":"26400:3:88","nodeType":"YulLiteral","src":"26400:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26385:3:88","nodeType":"YulIdentifier","src":"26385:3:88"},"nativeSrc":"26385:19:88","nodeType":"YulFunctionCall","src":"26385:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26377:4:88","nodeType":"YulIdentifier","src":"26377:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25999:411:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26150:9:88","nodeType":"YulTypedName","src":"26150:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26164:4:88","nodeType":"YulTypedName","src":"26164:4:88","type":""}],"src":"25999:411:88"},{"body":{"nativeSrc":"26589:240:88","nodeType":"YulBlock","src":"26589:240:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26606:9:88","nodeType":"YulIdentifier","src":"26606:9:88"},{"kind":"number","nativeSrc":"26617:2:88","nodeType":"YulLiteral","src":"26617:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26599:6:88","nodeType":"YulIdentifier","src":"26599:6:88"},"nativeSrc":"26599:21:88","nodeType":"YulFunctionCall","src":"26599:21:88"},"nativeSrc":"26599:21:88","nodeType":"YulExpressionStatement","src":"26599:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26640:9:88","nodeType":"YulIdentifier","src":"26640:9:88"},{"kind":"number","nativeSrc":"26651:2:88","nodeType":"YulLiteral","src":"26651:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26636:3:88","nodeType":"YulIdentifier","src":"26636:3:88"},"nativeSrc":"26636:18:88","nodeType":"YulFunctionCall","src":"26636:18:88"},{"kind":"number","nativeSrc":"26656:2:88","nodeType":"YulLiteral","src":"26656:2:88","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"26629:6:88","nodeType":"YulIdentifier","src":"26629:6:88"},"nativeSrc":"26629:30:88","nodeType":"YulFunctionCall","src":"26629:30:88"},"nativeSrc":"26629:30:88","nodeType":"YulExpressionStatement","src":"26629:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26679:9:88","nodeType":"YulIdentifier","src":"26679:9:88"},{"kind":"number","nativeSrc":"26690:2:88","nodeType":"YulLiteral","src":"26690:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26675:3:88","nodeType":"YulIdentifier","src":"26675:3:88"},"nativeSrc":"26675:18:88","nodeType":"YulFunctionCall","src":"26675:18:88"},{"hexValue":"5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e20","kind":"string","nativeSrc":"26695:34:88","nodeType":"YulLiteral","src":"26695:34:88","type":"","value":"RiskModule: Payout is more than "}],"functionName":{"name":"mstore","nativeSrc":"26668:6:88","nodeType":"YulIdentifier","src":"26668:6:88"},"nativeSrc":"26668:62:88","nodeType":"YulFunctionCall","src":"26668:62:88"},"nativeSrc":"26668:62:88","nodeType":"YulExpressionStatement","src":"26668:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26750:9:88","nodeType":"YulIdentifier","src":"26750:9:88"},{"kind":"number","nativeSrc":"26761:2:88","nodeType":"YulLiteral","src":"26761:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26746:3:88","nodeType":"YulIdentifier","src":"26746:3:88"},"nativeSrc":"26746:18:88","nodeType":"YulFunctionCall","src":"26746:18:88"},{"hexValue":"6d6178696d756d2070657220706f6c696379","kind":"string","nativeSrc":"26766:20:88","nodeType":"YulLiteral","src":"26766:20:88","type":"","value":"maximum per policy"}],"functionName":{"name":"mstore","nativeSrc":"26739:6:88","nodeType":"YulIdentifier","src":"26739:6:88"},"nativeSrc":"26739:48:88","nodeType":"YulFunctionCall","src":"26739:48:88"},"nativeSrc":"26739:48:88","nodeType":"YulExpressionStatement","src":"26739:48:88"},{"nativeSrc":"26796:27:88","nodeType":"YulAssignment","src":"26796:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"26808:9:88","nodeType":"YulIdentifier","src":"26808:9:88"},{"kind":"number","nativeSrc":"26819:3:88","nodeType":"YulLiteral","src":"26819:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26804:3:88","nodeType":"YulIdentifier","src":"26804:3:88"},"nativeSrc":"26804:19:88","nodeType":"YulFunctionCall","src":"26804:19:88"},"variableNames":[{"name":"tail","nativeSrc":"26796:4:88","nodeType":"YulIdentifier","src":"26796:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26415:414:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26566:9:88","nodeType":"YulTypedName","src":"26566:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26580:4:88","nodeType":"YulTypedName","src":"26580:4:88","type":""}],"src":"26415:414:88"},{"body":{"nativeSrc":"27008:225:88","nodeType":"YulBlock","src":"27008:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27025:9:88","nodeType":"YulIdentifier","src":"27025:9:88"},{"kind":"number","nativeSrc":"27036:2:88","nodeType":"YulLiteral","src":"27036:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27018:6:88","nodeType":"YulIdentifier","src":"27018:6:88"},"nativeSrc":"27018:21:88","nodeType":"YulFunctionCall","src":"27018:21:88"},"nativeSrc":"27018:21:88","nodeType":"YulExpressionStatement","src":"27018:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27059:9:88","nodeType":"YulIdentifier","src":"27059:9:88"},{"kind":"number","nativeSrc":"27070:2:88","nodeType":"YulLiteral","src":"27070:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27055:3:88","nodeType":"YulIdentifier","src":"27055:3:88"},"nativeSrc":"27055:18:88","nodeType":"YulFunctionCall","src":"27055:18:88"},{"kind":"number","nativeSrc":"27075:2:88","nodeType":"YulLiteral","src":"27075:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"27048:6:88","nodeType":"YulIdentifier","src":"27048:6:88"},"nativeSrc":"27048:30:88","nodeType":"YulFunctionCall","src":"27048:30:88"},"nativeSrc":"27048:30:88","nodeType":"YulExpressionStatement","src":"27048:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27098:9:88","nodeType":"YulIdentifier","src":"27098:9:88"},{"kind":"number","nativeSrc":"27109:2:88","nodeType":"YulLiteral","src":"27109:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27094:3:88","nodeType":"YulIdentifier","src":"27094:3:88"},"nativeSrc":"27094:18:88","nodeType":"YulFunctionCall","src":"27094:18:88"},{"hexValue":"5269736b4d6f64756c653a204578706f73757265206c696d6974206578636565","kind":"string","nativeSrc":"27114:34:88","nodeType":"YulLiteral","src":"27114:34:88","type":"","value":"RiskModule: Exposure limit excee"}],"functionName":{"name":"mstore","nativeSrc":"27087:6:88","nodeType":"YulIdentifier","src":"27087:6:88"},"nativeSrc":"27087:62:88","nodeType":"YulFunctionCall","src":"27087:62:88"},"nativeSrc":"27087:62:88","nodeType":"YulExpressionStatement","src":"27087:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27169:9:88","nodeType":"YulIdentifier","src":"27169:9:88"},{"kind":"number","nativeSrc":"27180:2:88","nodeType":"YulLiteral","src":"27180:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27165:3:88","nodeType":"YulIdentifier","src":"27165:3:88"},"nativeSrc":"27165:18:88","nodeType":"YulFunctionCall","src":"27165:18:88"},{"hexValue":"646564","kind":"string","nativeSrc":"27185:5:88","nodeType":"YulLiteral","src":"27185:5:88","type":"","value":"ded"}],"functionName":{"name":"mstore","nativeSrc":"27158:6:88","nodeType":"YulIdentifier","src":"27158:6:88"},"nativeSrc":"27158:33:88","nodeType":"YulFunctionCall","src":"27158:33:88"},"nativeSrc":"27158:33:88","nodeType":"YulExpressionStatement","src":"27158:33:88"},{"nativeSrc":"27200:27:88","nodeType":"YulAssignment","src":"27200:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27212:9:88","nodeType":"YulIdentifier","src":"27212:9:88"},{"kind":"number","nativeSrc":"27223:3:88","nodeType":"YulLiteral","src":"27223:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27208:3:88","nodeType":"YulIdentifier","src":"27208:3:88"},"nativeSrc":"27208:19:88","nodeType":"YulFunctionCall","src":"27208:19:88"},"variableNames":[{"name":"tail","nativeSrc":"27200:4:88","nodeType":"YulIdentifier","src":"27200:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26834:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26985:9:88","nodeType":"YulTypedName","src":"26985:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26999:4:88","nodeType":"YulTypedName","src":"26999:4:88","type":""}],"src":"26834:399:88"},{"body":{"nativeSrc":"27539:321:88","nodeType":"YulBlock","src":"27539:321:88","statements":[{"nativeSrc":"27549:27:88","nodeType":"YulAssignment","src":"27549:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"27561:9:88","nodeType":"YulIdentifier","src":"27561:9:88"},{"kind":"number","nativeSrc":"27572:3:88","nodeType":"YulLiteral","src":"27572:3:88","type":"","value":"960"}],"functionName":{"name":"add","nativeSrc":"27557:3:88","nodeType":"YulIdentifier","src":"27557:3:88"},"nativeSrc":"27557:19:88","nodeType":"YulFunctionCall","src":"27557:19:88"},"variableNames":[{"name":"tail","nativeSrc":"27549:4:88","nodeType":"YulIdentifier","src":"27549:4:88"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27623:6:88","nodeType":"YulIdentifier","src":"27623:6:88"},{"name":"headStart","nativeSrc":"27631:9:88","nodeType":"YulIdentifier","src":"27631:9:88"}],"functionName":{"name":"abi_encode_struct_PolicyData_calldata","nativeSrc":"27585:37:88","nodeType":"YulIdentifier","src":"27585:37:88"},"nativeSrc":"27585:56:88","nodeType":"YulFunctionCall","src":"27585:56:88"},"nativeSrc":"27585:56:88","nodeType":"YulExpressionStatement","src":"27585:56:88"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"27679:6:88","nodeType":"YulIdentifier","src":"27679:6:88"},{"arguments":[{"name":"headStart","nativeSrc":"27691:9:88","nodeType":"YulIdentifier","src":"27691:9:88"},{"kind":"number","nativeSrc":"27702:3:88","nodeType":"YulLiteral","src":"27702:3:88","type":"","value":"448"}],"functionName":{"name":"add","nativeSrc":"27687:3:88","nodeType":"YulIdentifier","src":"27687:3:88"},"nativeSrc":"27687:19:88","nodeType":"YulFunctionCall","src":"27687:19:88"}],"functionName":{"name":"abi_encode_struct_PolicyData","nativeSrc":"27650:28:88","nodeType":"YulIdentifier","src":"27650:28:88"},"nativeSrc":"27650:57:88","nodeType":"YulFunctionCall","src":"27650:57:88"},"nativeSrc":"27650:57:88","nodeType":"YulExpressionStatement","src":"27650:57:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27727:9:88","nodeType":"YulIdentifier","src":"27727:9:88"},{"kind":"number","nativeSrc":"27738:3:88","nodeType":"YulLiteral","src":"27738:3:88","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"27723:3:88","nodeType":"YulIdentifier","src":"27723:3:88"},"nativeSrc":"27723:19:88","nodeType":"YulFunctionCall","src":"27723:19:88"},{"arguments":[{"name":"value2","nativeSrc":"27748:6:88","nodeType":"YulIdentifier","src":"27748:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27764:3:88","nodeType":"YulLiteral","src":"27764:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"27769:1:88","nodeType":"YulLiteral","src":"27769:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"27760:3:88","nodeType":"YulIdentifier","src":"27760:3:88"},"nativeSrc":"27760:11:88","nodeType":"YulFunctionCall","src":"27760:11:88"},{"kind":"number","nativeSrc":"27773:1:88","nodeType":"YulLiteral","src":"27773:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"27756:3:88","nodeType":"YulIdentifier","src":"27756:3:88"},"nativeSrc":"27756:19:88","nodeType":"YulFunctionCall","src":"27756:19:88"}],"functionName":{"name":"and","nativeSrc":"27744:3:88","nodeType":"YulIdentifier","src":"27744:3:88"},"nativeSrc":"27744:32:88","nodeType":"YulFunctionCall","src":"27744:32:88"}],"functionName":{"name":"mstore","nativeSrc":"27716:6:88","nodeType":"YulIdentifier","src":"27716:6:88"},"nativeSrc":"27716:61:88","nodeType":"YulFunctionCall","src":"27716:61:88"},"nativeSrc":"27716:61:88","nodeType":"YulExpressionStatement","src":"27716:61:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27797:9:88","nodeType":"YulIdentifier","src":"27797:9:88"},{"kind":"number","nativeSrc":"27808:3:88","nodeType":"YulLiteral","src":"27808:3:88","type":"","value":"928"}],"functionName":{"name":"add","nativeSrc":"27793:3:88","nodeType":"YulIdentifier","src":"27793:3:88"},"nativeSrc":"27793:19:88","nodeType":"YulFunctionCall","src":"27793:19:88"},{"arguments":[{"name":"value3","nativeSrc":"27818:6:88","nodeType":"YulIdentifier","src":"27818:6:88"},{"kind":"number","nativeSrc":"27826:26:88","nodeType":"YulLiteral","src":"27826:26:88","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"27814:3:88","nodeType":"YulIdentifier","src":"27814:3:88"},"nativeSrc":"27814:39:88","nodeType":"YulFunctionCall","src":"27814:39:88"}],"functionName":{"name":"mstore","nativeSrc":"27786:6:88","nodeType":"YulIdentifier","src":"27786:6:88"},"nativeSrc":"27786:68:88","nodeType":"YulFunctionCall","src":"27786:68:88"},"nativeSrc":"27786:68:88","nodeType":"YulExpressionStatement","src":"27786:68:88"}]},"name":"abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed","nativeSrc":"27238:622:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27484:9:88","nodeType":"YulTypedName","src":"27484:9:88","type":""},{"name":"value3","nativeSrc":"27495:6:88","nodeType":"YulTypedName","src":"27495:6:88","type":""},{"name":"value2","nativeSrc":"27503:6:88","nodeType":"YulTypedName","src":"27503:6:88","type":""},{"name":"value1","nativeSrc":"27511:6:88","nodeType":"YulTypedName","src":"27511:6:88","type":""},{"name":"value0","nativeSrc":"27519:6:88","nodeType":"YulTypedName","src":"27519:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27530:4:88","nodeType":"YulTypedName","src":"27530:4:88","type":""}],"src":"27238:622:88"},{"body":{"nativeSrc":"27946:103:88","nodeType":"YulBlock","src":"27946:103:88","statements":[{"body":{"nativeSrc":"27992:16:88","nodeType":"YulBlock","src":"27992:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28001:1:88","nodeType":"YulLiteral","src":"28001:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"28004:1:88","nodeType":"YulLiteral","src":"28004:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27994:6:88","nodeType":"YulIdentifier","src":"27994:6:88"},"nativeSrc":"27994:12:88","nodeType":"YulFunctionCall","src":"27994:12:88"},"nativeSrc":"27994:12:88","nodeType":"YulExpressionStatement","src":"27994:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27967:7:88","nodeType":"YulIdentifier","src":"27967:7:88"},{"name":"headStart","nativeSrc":"27976:9:88","nodeType":"YulIdentifier","src":"27976:9:88"}],"functionName":{"name":"sub","nativeSrc":"27963:3:88","nodeType":"YulIdentifier","src":"27963:3:88"},"nativeSrc":"27963:23:88","nodeType":"YulFunctionCall","src":"27963:23:88"},{"kind":"number","nativeSrc":"27988:2:88","nodeType":"YulLiteral","src":"27988:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27959:3:88","nodeType":"YulIdentifier","src":"27959:3:88"},"nativeSrc":"27959:32:88","nodeType":"YulFunctionCall","src":"27959:32:88"},"nativeSrc":"27956:52:88","nodeType":"YulIf","src":"27956:52:88"},{"nativeSrc":"28017:26:88","nodeType":"YulAssignment","src":"28017:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28033:9:88","nodeType":"YulIdentifier","src":"28033:9:88"}],"functionName":{"name":"mload","nativeSrc":"28027:5:88","nodeType":"YulIdentifier","src":"28027:5:88"},"nativeSrc":"28027:16:88","nodeType":"YulFunctionCall","src":"28027:16:88"},"variableNames":[{"name":"value0","nativeSrc":"28017:6:88","nodeType":"YulIdentifier","src":"28017:6:88"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"27865:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27912:9:88","nodeType":"YulTypedName","src":"27912:9:88","type":""},{"name":"dataEnd","nativeSrc":"27923:7:88","nodeType":"YulTypedName","src":"27923:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27935:6:88","nodeType":"YulTypedName","src":"27935:6:88","type":""}],"src":"27865:184:88"},{"body":{"nativeSrc":"28228:236:88","nodeType":"YulBlock","src":"28228:236:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28245:9:88","nodeType":"YulIdentifier","src":"28245:9:88"},{"kind":"number","nativeSrc":"28256:2:88","nodeType":"YulLiteral","src":"28256:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28238:6:88","nodeType":"YulIdentifier","src":"28238:6:88"},"nativeSrc":"28238:21:88","nodeType":"YulFunctionCall","src":"28238:21:88"},"nativeSrc":"28238:21:88","nodeType":"YulExpressionStatement","src":"28238:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28279:9:88","nodeType":"YulIdentifier","src":"28279:9:88"},{"kind":"number","nativeSrc":"28290:2:88","nodeType":"YulLiteral","src":"28290:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28275:3:88","nodeType":"YulIdentifier","src":"28275:3:88"},"nativeSrc":"28275:18:88","nodeType":"YulFunctionCall","src":"28275:18:88"},{"kind":"number","nativeSrc":"28295:2:88","nodeType":"YulLiteral","src":"28295:2:88","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"28268:6:88","nodeType":"YulIdentifier","src":"28268:6:88"},"nativeSrc":"28268:30:88","nodeType":"YulFunctionCall","src":"28268:30:88"},"nativeSrc":"28268:30:88","nodeType":"YulExpressionStatement","src":"28268:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28318:9:88","nodeType":"YulIdentifier","src":"28318:9:88"},{"kind":"number","nativeSrc":"28329:2:88","nodeType":"YulLiteral","src":"28329:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28314:3:88","nodeType":"YulIdentifier","src":"28314:3:88"},"nativeSrc":"28314:18:88","nodeType":"YulFunctionCall","src":"28314:18:88"},{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e74617469","kind":"string","nativeSrc":"28334:34:88","nodeType":"YulLiteral","src":"28334:34:88","type":"","value":"ERC1967Upgrade: new implementati"}],"functionName":{"name":"mstore","nativeSrc":"28307:6:88","nodeType":"YulIdentifier","src":"28307:6:88"},"nativeSrc":"28307:62:88","nodeType":"YulFunctionCall","src":"28307:62:88"},"nativeSrc":"28307:62:88","nodeType":"YulExpressionStatement","src":"28307:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28389:9:88","nodeType":"YulIdentifier","src":"28389:9:88"},{"kind":"number","nativeSrc":"28400:2:88","nodeType":"YulLiteral","src":"28400:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28385:3:88","nodeType":"YulIdentifier","src":"28385:3:88"},"nativeSrc":"28385:18:88","nodeType":"YulFunctionCall","src":"28385:18:88"},{"hexValue":"6f6e206973206e6f742055555053","kind":"string","nativeSrc":"28405:16:88","nodeType":"YulLiteral","src":"28405:16:88","type":"","value":"on is not UUPS"}],"functionName":{"name":"mstore","nativeSrc":"28378:6:88","nodeType":"YulIdentifier","src":"28378:6:88"},"nativeSrc":"28378:44:88","nodeType":"YulFunctionCall","src":"28378:44:88"},"nativeSrc":"28378:44:88","nodeType":"YulExpressionStatement","src":"28378:44:88"},{"nativeSrc":"28431:27:88","nodeType":"YulAssignment","src":"28431:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28443:9:88","nodeType":"YulIdentifier","src":"28443:9:88"},{"kind":"number","nativeSrc":"28454:3:88","nodeType":"YulLiteral","src":"28454:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28439:3:88","nodeType":"YulIdentifier","src":"28439:3:88"},"nativeSrc":"28439:19:88","nodeType":"YulFunctionCall","src":"28439:19:88"},"variableNames":[{"name":"tail","nativeSrc":"28431:4:88","nodeType":"YulIdentifier","src":"28431:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28054:410:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28205:9:88","nodeType":"YulTypedName","src":"28205:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28219:4:88","nodeType":"YulTypedName","src":"28219:4:88","type":""}],"src":"28054:410:88"},{"body":{"nativeSrc":"28643:231:88","nodeType":"YulBlock","src":"28643:231:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28660:9:88","nodeType":"YulIdentifier","src":"28660:9:88"},{"kind":"number","nativeSrc":"28671:2:88","nodeType":"YulLiteral","src":"28671:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28653:6:88","nodeType":"YulIdentifier","src":"28653:6:88"},"nativeSrc":"28653:21:88","nodeType":"YulFunctionCall","src":"28653:21:88"},"nativeSrc":"28653:21:88","nodeType":"YulExpressionStatement","src":"28653:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28694:9:88","nodeType":"YulIdentifier","src":"28694:9:88"},{"kind":"number","nativeSrc":"28705:2:88","nodeType":"YulLiteral","src":"28705:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28690:3:88","nodeType":"YulIdentifier","src":"28690:3:88"},"nativeSrc":"28690:18:88","nodeType":"YulFunctionCall","src":"28690:18:88"},{"kind":"number","nativeSrc":"28710:2:88","nodeType":"YulLiteral","src":"28710:2:88","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"28683:6:88","nodeType":"YulIdentifier","src":"28683:6:88"},"nativeSrc":"28683:30:88","nodeType":"YulFunctionCall","src":"28683:30:88"},"nativeSrc":"28683:30:88","nodeType":"YulExpressionStatement","src":"28683:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28733:9:88","nodeType":"YulIdentifier","src":"28733:9:88"},{"kind":"number","nativeSrc":"28744:2:88","nodeType":"YulLiteral","src":"28744:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28729:3:88","nodeType":"YulIdentifier","src":"28729:3:88"},"nativeSrc":"28729:18:88","nodeType":"YulFunctionCall","src":"28729:18:88"},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f78","kind":"string","nativeSrc":"28749:34:88","nodeType":"YulLiteral","src":"28749:34:88","type":"","value":"ERC1967Upgrade: unsupported prox"}],"functionName":{"name":"mstore","nativeSrc":"28722:6:88","nodeType":"YulIdentifier","src":"28722:6:88"},"nativeSrc":"28722:62:88","nodeType":"YulFunctionCall","src":"28722:62:88"},"nativeSrc":"28722:62:88","nodeType":"YulExpressionStatement","src":"28722:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28804:9:88","nodeType":"YulIdentifier","src":"28804:9:88"},{"kind":"number","nativeSrc":"28815:2:88","nodeType":"YulLiteral","src":"28815:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28800:3:88","nodeType":"YulIdentifier","src":"28800:3:88"},"nativeSrc":"28800:18:88","nodeType":"YulFunctionCall","src":"28800:18:88"},{"hexValue":"6961626c6555554944","kind":"string","nativeSrc":"28820:11:88","nodeType":"YulLiteral","src":"28820:11:88","type":"","value":"iableUUID"}],"functionName":{"name":"mstore","nativeSrc":"28793:6:88","nodeType":"YulIdentifier","src":"28793:6:88"},"nativeSrc":"28793:39:88","nodeType":"YulFunctionCall","src":"28793:39:88"},"nativeSrc":"28793:39:88","nodeType":"YulExpressionStatement","src":"28793:39:88"},{"nativeSrc":"28841:27:88","nodeType":"YulAssignment","src":"28841:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"28853:9:88","nodeType":"YulIdentifier","src":"28853:9:88"},{"kind":"number","nativeSrc":"28864:3:88","nodeType":"YulLiteral","src":"28864:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28849:3:88","nodeType":"YulIdentifier","src":"28849:3:88"},"nativeSrc":"28849:19:88","nodeType":"YulFunctionCall","src":"28849:19:88"},"variableNames":[{"name":"tail","nativeSrc":"28841:4:88","nodeType":"YulIdentifier","src":"28841:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28469:405:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28620:9:88","nodeType":"YulTypedName","src":"28620:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28634:4:88","nodeType":"YulTypedName","src":"28634:4:88","type":""}],"src":"28469:405:88"},{"body":{"nativeSrc":"29053:233:88","nodeType":"YulBlock","src":"29053:233:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29070:9:88","nodeType":"YulIdentifier","src":"29070:9:88"},{"kind":"number","nativeSrc":"29081:2:88","nodeType":"YulLiteral","src":"29081:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29063:6:88","nodeType":"YulIdentifier","src":"29063:6:88"},"nativeSrc":"29063:21:88","nodeType":"YulFunctionCall","src":"29063:21:88"},"nativeSrc":"29063:21:88","nodeType":"YulExpressionStatement","src":"29063:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29104:9:88","nodeType":"YulIdentifier","src":"29104:9:88"},{"kind":"number","nativeSrc":"29115:2:88","nodeType":"YulLiteral","src":"29115:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29100:3:88","nodeType":"YulIdentifier","src":"29100:3:88"},"nativeSrc":"29100:18:88","nodeType":"YulFunctionCall","src":"29100:18:88"},{"kind":"number","nativeSrc":"29120:2:88","nodeType":"YulLiteral","src":"29120:2:88","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"29093:6:88","nodeType":"YulIdentifier","src":"29093:6:88"},"nativeSrc":"29093:30:88","nodeType":"YulFunctionCall","src":"29093:30:88"},"nativeSrc":"29093:30:88","nodeType":"YulExpressionStatement","src":"29093:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29143:9:88","nodeType":"YulIdentifier","src":"29143:9:88"},{"kind":"number","nativeSrc":"29154:2:88","nodeType":"YulLiteral","src":"29154:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29139:3:88","nodeType":"YulIdentifier","src":"29139:3:88"},"nativeSrc":"29139:18:88","nodeType":"YulFunctionCall","src":"29139:18:88"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"29159:34:88","nodeType":"YulLiteral","src":"29159:34:88","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"29132:6:88","nodeType":"YulIdentifier","src":"29132:6:88"},"nativeSrc":"29132:62:88","nodeType":"YulFunctionCall","src":"29132:62:88"},"nativeSrc":"29132:62:88","nodeType":"YulExpressionStatement","src":"29132:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29214:9:88","nodeType":"YulIdentifier","src":"29214:9:88"},{"kind":"number","nativeSrc":"29225:2:88","nodeType":"YulLiteral","src":"29225:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29210:3:88","nodeType":"YulIdentifier","src":"29210:3:88"},"nativeSrc":"29210:18:88","nodeType":"YulFunctionCall","src":"29210:18:88"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"29230:13:88","nodeType":"YulLiteral","src":"29230:13:88","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"29203:6:88","nodeType":"YulIdentifier","src":"29203:6:88"},"nativeSrc":"29203:41:88","nodeType":"YulFunctionCall","src":"29203:41:88"},"nativeSrc":"29203:41:88","nodeType":"YulExpressionStatement","src":"29203:41:88"},{"nativeSrc":"29253:27:88","nodeType":"YulAssignment","src":"29253:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29265:9:88","nodeType":"YulIdentifier","src":"29265:9:88"},{"kind":"number","nativeSrc":"29276:3:88","nodeType":"YulLiteral","src":"29276:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29261:3:88","nodeType":"YulIdentifier","src":"29261:3:88"},"nativeSrc":"29261:19:88","nodeType":"YulFunctionCall","src":"29261:19:88"},"variableNames":[{"name":"tail","nativeSrc":"29253:4:88","nodeType":"YulIdentifier","src":"29253:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28879:407:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29030:9:88","nodeType":"YulTypedName","src":"29030:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29044:4:88","nodeType":"YulTypedName","src":"29044:4:88","type":""}],"src":"28879:407:88"},{"body":{"nativeSrc":"29370:194:88","nodeType":"YulBlock","src":"29370:194:88","statements":[{"body":{"nativeSrc":"29416:16:88","nodeType":"YulBlock","src":"29416:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29425:1:88","nodeType":"YulLiteral","src":"29425:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"29428:1:88","nodeType":"YulLiteral","src":"29428:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29418:6:88","nodeType":"YulIdentifier","src":"29418:6:88"},"nativeSrc":"29418:12:88","nodeType":"YulFunctionCall","src":"29418:12:88"},"nativeSrc":"29418:12:88","nodeType":"YulExpressionStatement","src":"29418:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29391:7:88","nodeType":"YulIdentifier","src":"29391:7:88"},{"name":"headStart","nativeSrc":"29400:9:88","nodeType":"YulIdentifier","src":"29400:9:88"}],"functionName":{"name":"sub","nativeSrc":"29387:3:88","nodeType":"YulIdentifier","src":"29387:3:88"},"nativeSrc":"29387:23:88","nodeType":"YulFunctionCall","src":"29387:23:88"},{"kind":"number","nativeSrc":"29412:2:88","nodeType":"YulLiteral","src":"29412:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29383:3:88","nodeType":"YulIdentifier","src":"29383:3:88"},"nativeSrc":"29383:32:88","nodeType":"YulFunctionCall","src":"29383:32:88"},"nativeSrc":"29380:52:88","nodeType":"YulIf","src":"29380:52:88"},{"nativeSrc":"29441:29:88","nodeType":"YulVariableDeclaration","src":"29441:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"29460:9:88","nodeType":"YulIdentifier","src":"29460:9:88"}],"functionName":{"name":"mload","nativeSrc":"29454:5:88","nodeType":"YulIdentifier","src":"29454:5:88"},"nativeSrc":"29454:16:88","nodeType":"YulFunctionCall","src":"29454:16:88"},"variables":[{"name":"value","nativeSrc":"29445:5:88","nodeType":"YulTypedName","src":"29445:5:88","type":""}]},{"body":{"nativeSrc":"29518:16:88","nodeType":"YulBlock","src":"29518:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29527:1:88","nodeType":"YulLiteral","src":"29527:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"29530:1:88","nodeType":"YulLiteral","src":"29530:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29520:6:88","nodeType":"YulIdentifier","src":"29520:6:88"},"nativeSrc":"29520:12:88","nodeType":"YulFunctionCall","src":"29520:12:88"},"nativeSrc":"29520:12:88","nodeType":"YulExpressionStatement","src":"29520:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29492:5:88","nodeType":"YulIdentifier","src":"29492:5:88"},{"arguments":[{"name":"value","nativeSrc":"29503:5:88","nodeType":"YulIdentifier","src":"29503:5:88"},{"kind":"number","nativeSrc":"29510:4:88","nodeType":"YulLiteral","src":"29510:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"29499:3:88","nodeType":"YulIdentifier","src":"29499:3:88"},"nativeSrc":"29499:16:88","nodeType":"YulFunctionCall","src":"29499:16:88"}],"functionName":{"name":"eq","nativeSrc":"29489:2:88","nodeType":"YulIdentifier","src":"29489:2:88"},"nativeSrc":"29489:27:88","nodeType":"YulFunctionCall","src":"29489:27:88"}],"functionName":{"name":"iszero","nativeSrc":"29482:6:88","nodeType":"YulIdentifier","src":"29482:6:88"},"nativeSrc":"29482:35:88","nodeType":"YulFunctionCall","src":"29482:35:88"},"nativeSrc":"29479:55:88","nodeType":"YulIf","src":"29479:55:88"},{"nativeSrc":"29543:15:88","nodeType":"YulAssignment","src":"29543:15:88","value":{"name":"value","nativeSrc":"29553:5:88","nodeType":"YulIdentifier","src":"29553:5:88"},"variableNames":[{"name":"value0","nativeSrc":"29543:6:88","nodeType":"YulIdentifier","src":"29543:6:88"}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"29291:273:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29336:9:88","nodeType":"YulTypedName","src":"29336:9:88","type":""},{"name":"dataEnd","nativeSrc":"29347:7:88","nodeType":"YulTypedName","src":"29347:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29359:6:88","nodeType":"YulTypedName","src":"29359:6:88","type":""}],"src":"29291:273:88"},{"body":{"nativeSrc":"29616:104:88","nodeType":"YulBlock","src":"29616:104:88","statements":[{"nativeSrc":"29626:39:88","nodeType":"YulAssignment","src":"29626:39:88","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29642:1:88","nodeType":"YulIdentifier","src":"29642:1:88"},{"kind":"number","nativeSrc":"29645:4:88","nodeType":"YulLiteral","src":"29645:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"29638:3:88","nodeType":"YulIdentifier","src":"29638:3:88"},"nativeSrc":"29638:12:88","nodeType":"YulFunctionCall","src":"29638:12:88"},{"arguments":[{"name":"y","nativeSrc":"29656:1:88","nodeType":"YulIdentifier","src":"29656:1:88"},{"kind":"number","nativeSrc":"29659:4:88","nodeType":"YulLiteral","src":"29659:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"29652:3:88","nodeType":"YulIdentifier","src":"29652:3:88"},"nativeSrc":"29652:12:88","nodeType":"YulFunctionCall","src":"29652:12:88"}],"functionName":{"name":"sub","nativeSrc":"29634:3:88","nodeType":"YulIdentifier","src":"29634:3:88"},"nativeSrc":"29634:31:88","nodeType":"YulFunctionCall","src":"29634:31:88"},"variableNames":[{"name":"diff","nativeSrc":"29626:4:88","nodeType":"YulIdentifier","src":"29626:4:88"}]},{"body":{"nativeSrc":"29692:22:88","nodeType":"YulBlock","src":"29692:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29694:16:88","nodeType":"YulIdentifier","src":"29694:16:88"},"nativeSrc":"29694:18:88","nodeType":"YulFunctionCall","src":"29694:18:88"},"nativeSrc":"29694:18:88","nodeType":"YulExpressionStatement","src":"29694:18:88"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"29680:4:88","nodeType":"YulIdentifier","src":"29680:4:88"},{"kind":"number","nativeSrc":"29686:4:88","nodeType":"YulLiteral","src":"29686:4:88","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"29677:2:88","nodeType":"YulIdentifier","src":"29677:2:88"},"nativeSrc":"29677:14:88","nodeType":"YulFunctionCall","src":"29677:14:88"},"nativeSrc":"29674:40:88","nodeType":"YulIf","src":"29674:40:88"}]},"name":"checked_sub_t_uint8","nativeSrc":"29569:151:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29598:1:88","nodeType":"YulTypedName","src":"29598:1:88","type":""},{"name":"y","nativeSrc":"29601:1:88","nodeType":"YulTypedName","src":"29601:1:88","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"29607:4:88","nodeType":"YulTypedName","src":"29607:4:88","type":""}],"src":"29569:151:88"},{"body":{"nativeSrc":"29794:306:88","nodeType":"YulBlock","src":"29794:306:88","statements":[{"nativeSrc":"29804:10:88","nodeType":"YulAssignment","src":"29804:10:88","value":{"kind":"number","nativeSrc":"29813:1:88","nodeType":"YulLiteral","src":"29813:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"29804:5:88","nodeType":"YulIdentifier","src":"29804:5:88"}]},{"nativeSrc":"29823:13:88","nodeType":"YulAssignment","src":"29823:13:88","value":{"name":"_base","nativeSrc":"29831:5:88","nodeType":"YulIdentifier","src":"29831:5:88"},"variableNames":[{"name":"base","nativeSrc":"29823:4:88","nodeType":"YulIdentifier","src":"29823:4:88"}]},{"body":{"nativeSrc":"29881:213:88","nodeType":"YulBlock","src":"29881:213:88","statements":[{"body":{"nativeSrc":"29923:22:88","nodeType":"YulBlock","src":"29923:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29925:16:88","nodeType":"YulIdentifier","src":"29925:16:88"},"nativeSrc":"29925:18:88","nodeType":"YulFunctionCall","src":"29925:18:88"},"nativeSrc":"29925:18:88","nodeType":"YulExpressionStatement","src":"29925:18:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"29901:4:88","nodeType":"YulIdentifier","src":"29901:4:88"},{"arguments":[{"name":"max","nativeSrc":"29911:3:88","nodeType":"YulIdentifier","src":"29911:3:88"},{"name":"base","nativeSrc":"29916:4:88","nodeType":"YulIdentifier","src":"29916:4:88"}],"functionName":{"name":"div","nativeSrc":"29907:3:88","nodeType":"YulIdentifier","src":"29907:3:88"},"nativeSrc":"29907:14:88","nodeType":"YulFunctionCall","src":"29907:14:88"}],"functionName":{"name":"gt","nativeSrc":"29898:2:88","nodeType":"YulIdentifier","src":"29898:2:88"},"nativeSrc":"29898:24:88","nodeType":"YulFunctionCall","src":"29898:24:88"},"nativeSrc":"29895:50:88","nodeType":"YulIf","src":"29895:50:88"},{"body":{"nativeSrc":"29978:29:88","nodeType":"YulBlock","src":"29978:29:88","statements":[{"nativeSrc":"29980:25:88","nodeType":"YulAssignment","src":"29980:25:88","value":{"arguments":[{"name":"power","nativeSrc":"29993:5:88","nodeType":"YulIdentifier","src":"29993:5:88"},{"name":"base","nativeSrc":"30000:4:88","nodeType":"YulIdentifier","src":"30000:4:88"}],"functionName":{"name":"mul","nativeSrc":"29989:3:88","nodeType":"YulIdentifier","src":"29989:3:88"},"nativeSrc":"29989:16:88","nodeType":"YulFunctionCall","src":"29989:16:88"},"variableNames":[{"name":"power","nativeSrc":"29980:5:88","nodeType":"YulIdentifier","src":"29980:5:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"29965:8:88","nodeType":"YulIdentifier","src":"29965:8:88"},{"kind":"number","nativeSrc":"29975:1:88","nodeType":"YulLiteral","src":"29975:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"29961:3:88","nodeType":"YulIdentifier","src":"29961:3:88"},"nativeSrc":"29961:16:88","nodeType":"YulFunctionCall","src":"29961:16:88"},"nativeSrc":"29958:49:88","nodeType":"YulIf","src":"29958:49:88"},{"nativeSrc":"30020:23:88","nodeType":"YulAssignment","src":"30020:23:88","value":{"arguments":[{"name":"base","nativeSrc":"30032:4:88","nodeType":"YulIdentifier","src":"30032:4:88"},{"name":"base","nativeSrc":"30038:4:88","nodeType":"YulIdentifier","src":"30038:4:88"}],"functionName":{"name":"mul","nativeSrc":"30028:3:88","nodeType":"YulIdentifier","src":"30028:3:88"},"nativeSrc":"30028:15:88","nodeType":"YulFunctionCall","src":"30028:15:88"},"variableNames":[{"name":"base","nativeSrc":"30020:4:88","nodeType":"YulIdentifier","src":"30020:4:88"}]},{"nativeSrc":"30056:28:88","nodeType":"YulAssignment","src":"30056:28:88","value":{"arguments":[{"kind":"number","nativeSrc":"30072:1:88","nodeType":"YulLiteral","src":"30072:1:88","type":"","value":"1"},{"name":"exponent","nativeSrc":"30075:8:88","nodeType":"YulIdentifier","src":"30075:8:88"}],"functionName":{"name":"shr","nativeSrc":"30068:3:88","nodeType":"YulIdentifier","src":"30068:3:88"},"nativeSrc":"30068:16:88","nodeType":"YulFunctionCall","src":"30068:16:88"},"variableNames":[{"name":"exponent","nativeSrc":"30056:8:88","nodeType":"YulIdentifier","src":"30056:8:88"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"29856:8:88","nodeType":"YulIdentifier","src":"29856:8:88"},{"kind":"number","nativeSrc":"29866:1:88","nodeType":"YulLiteral","src":"29866:1:88","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"29853:2:88","nodeType":"YulIdentifier","src":"29853:2:88"},"nativeSrc":"29853:15:88","nodeType":"YulFunctionCall","src":"29853:15:88"},"nativeSrc":"29845:249:88","nodeType":"YulForLoop","post":{"nativeSrc":"29869:3:88","nodeType":"YulBlock","src":"29869:3:88","statements":[]},"pre":{"nativeSrc":"29849:3:88","nodeType":"YulBlock","src":"29849:3:88","statements":[]},"src":"29845:249:88"}]},"name":"checked_exp_helper","nativeSrc":"29725:375:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nativeSrc":"29753:5:88","nodeType":"YulTypedName","src":"29753:5:88","type":""},{"name":"exponent","nativeSrc":"29760:8:88","nodeType":"YulTypedName","src":"29760:8:88","type":""},{"name":"max","nativeSrc":"29770:3:88","nodeType":"YulTypedName","src":"29770:3:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"29778:5:88","nodeType":"YulTypedName","src":"29778:5:88","type":""},{"name":"base","nativeSrc":"29785:4:88","nodeType":"YulTypedName","src":"29785:4:88","type":""}],"src":"29725:375:88"},{"body":{"nativeSrc":"30164:843:88","nodeType":"YulBlock","src":"30164:843:88","statements":[{"body":{"nativeSrc":"30202:52:88","nodeType":"YulBlock","src":"30202:52:88","statements":[{"nativeSrc":"30216:10:88","nodeType":"YulAssignment","src":"30216:10:88","value":{"kind":"number","nativeSrc":"30225:1:88","nodeType":"YulLiteral","src":"30225:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"30216:5:88","nodeType":"YulIdentifier","src":"30216:5:88"}]},{"nativeSrc":"30239:5:88","nodeType":"YulLeave","src":"30239:5:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"30184:8:88","nodeType":"YulIdentifier","src":"30184:8:88"}],"functionName":{"name":"iszero","nativeSrc":"30177:6:88","nodeType":"YulIdentifier","src":"30177:6:88"},"nativeSrc":"30177:16:88","nodeType":"YulFunctionCall","src":"30177:16:88"},"nativeSrc":"30174:80:88","nodeType":"YulIf","src":"30174:80:88"},{"body":{"nativeSrc":"30287:52:88","nodeType":"YulBlock","src":"30287:52:88","statements":[{"nativeSrc":"30301:10:88","nodeType":"YulAssignment","src":"30301:10:88","value":{"kind":"number","nativeSrc":"30310:1:88","nodeType":"YulLiteral","src":"30310:1:88","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"30301:5:88","nodeType":"YulIdentifier","src":"30301:5:88"}]},{"nativeSrc":"30324:5:88","nodeType":"YulLeave","src":"30324:5:88"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"30273:4:88","nodeType":"YulIdentifier","src":"30273:4:88"}],"functionName":{"name":"iszero","nativeSrc":"30266:6:88","nodeType":"YulIdentifier","src":"30266:6:88"},"nativeSrc":"30266:12:88","nodeType":"YulFunctionCall","src":"30266:12:88"},"nativeSrc":"30263:76:88","nodeType":"YulIf","src":"30263:76:88"},{"cases":[{"body":{"nativeSrc":"30375:52:88","nodeType":"YulBlock","src":"30375:52:88","statements":[{"nativeSrc":"30389:10:88","nodeType":"YulAssignment","src":"30389:10:88","value":{"kind":"number","nativeSrc":"30398:1:88","nodeType":"YulLiteral","src":"30398:1:88","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"30389:5:88","nodeType":"YulIdentifier","src":"30389:5:88"}]},{"nativeSrc":"30412:5:88","nodeType":"YulLeave","src":"30412:5:88"}]},"nativeSrc":"30368:59:88","nodeType":"YulCase","src":"30368:59:88","value":{"kind":"number","nativeSrc":"30373:1:88","nodeType":"YulLiteral","src":"30373:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"30443:167:88","nodeType":"YulBlock","src":"30443:167:88","statements":[{"body":{"nativeSrc":"30478:22:88","nodeType":"YulBlock","src":"30478:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"30480:16:88","nodeType":"YulIdentifier","src":"30480:16:88"},"nativeSrc":"30480:18:88","nodeType":"YulFunctionCall","src":"30480:18:88"},"nativeSrc":"30480:18:88","nodeType":"YulExpressionStatement","src":"30480:18:88"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"30463:8:88","nodeType":"YulIdentifier","src":"30463:8:88"},{"kind":"number","nativeSrc":"30473:3:88","nodeType":"YulLiteral","src":"30473:3:88","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"30460:2:88","nodeType":"YulIdentifier","src":"30460:2:88"},"nativeSrc":"30460:17:88","nodeType":"YulFunctionCall","src":"30460:17:88"},"nativeSrc":"30457:43:88","nodeType":"YulIf","src":"30457:43:88"},{"nativeSrc":"30513:25:88","nodeType":"YulAssignment","src":"30513:25:88","value":{"arguments":[{"name":"exponent","nativeSrc":"30526:8:88","nodeType":"YulIdentifier","src":"30526:8:88"},{"kind":"number","nativeSrc":"30536:1:88","nodeType":"YulLiteral","src":"30536:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"30522:3:88","nodeType":"YulIdentifier","src":"30522:3:88"},"nativeSrc":"30522:16:88","nodeType":"YulFunctionCall","src":"30522:16:88"},"variableNames":[{"name":"power","nativeSrc":"30513:5:88","nodeType":"YulIdentifier","src":"30513:5:88"}]},{"nativeSrc":"30551:11:88","nodeType":"YulVariableDeclaration","src":"30551:11:88","value":{"kind":"number","nativeSrc":"30561:1:88","nodeType":"YulLiteral","src":"30561:1:88","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"30555:2:88","nodeType":"YulTypedName","src":"30555:2:88","type":""}]},{"nativeSrc":"30575:7:88","nodeType":"YulAssignment","src":"30575:7:88","value":{"kind":"number","nativeSrc":"30581:1:88","nodeType":"YulLiteral","src":"30581:1:88","type":"","value":"0"},"variableNames":[{"name":"_1","nativeSrc":"30575:2:88","nodeType":"YulIdentifier","src":"30575:2:88"}]},{"nativeSrc":"30595:5:88","nodeType":"YulLeave","src":"30595:5:88"}]},"nativeSrc":"30436:174:88","nodeType":"YulCase","src":"30436:174:88","value":{"kind":"number","nativeSrc":"30441:1:88","nodeType":"YulLiteral","src":"30441:1:88","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"30355:4:88","nodeType":"YulIdentifier","src":"30355:4:88"},"nativeSrc":"30348:262:88","nodeType":"YulSwitch","src":"30348:262:88"},{"body":{"nativeSrc":"30708:114:88","nodeType":"YulBlock","src":"30708:114:88","statements":[{"nativeSrc":"30722:28:88","nodeType":"YulAssignment","src":"30722:28:88","value":{"arguments":[{"name":"base","nativeSrc":"30735:4:88","nodeType":"YulIdentifier","src":"30735:4:88"},{"name":"exponent","nativeSrc":"30741:8:88","nodeType":"YulIdentifier","src":"30741:8:88"}],"functionName":{"name":"exp","nativeSrc":"30731:3:88","nodeType":"YulIdentifier","src":"30731:3:88"},"nativeSrc":"30731:19:88","nodeType":"YulFunctionCall","src":"30731:19:88"},"variableNames":[{"name":"power","nativeSrc":"30722:5:88","nodeType":"YulIdentifier","src":"30722:5:88"}]},{"nativeSrc":"30763:11:88","nodeType":"YulVariableDeclaration","src":"30763:11:88","value":{"kind":"number","nativeSrc":"30773:1:88","nodeType":"YulLiteral","src":"30773:1:88","type":"","value":"0"},"variables":[{"name":"_2","nativeSrc":"30767:2:88","nodeType":"YulTypedName","src":"30767:2:88","type":""}]},{"nativeSrc":"30787:7:88","nodeType":"YulAssignment","src":"30787:7:88","value":{"kind":"number","nativeSrc":"30793:1:88","nodeType":"YulLiteral","src":"30793:1:88","type":"","value":"0"},"variableNames":[{"name":"_2","nativeSrc":"30787:2:88","nodeType":"YulIdentifier","src":"30787:2:88"}]},{"nativeSrc":"30807:5:88","nodeType":"YulLeave","src":"30807:5:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"30632:4:88","nodeType":"YulIdentifier","src":"30632:4:88"},{"kind":"number","nativeSrc":"30638:2:88","nodeType":"YulLiteral","src":"30638:2:88","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"30629:2:88","nodeType":"YulIdentifier","src":"30629:2:88"},"nativeSrc":"30629:12:88","nodeType":"YulFunctionCall","src":"30629:12:88"},{"arguments":[{"name":"exponent","nativeSrc":"30646:8:88","nodeType":"YulIdentifier","src":"30646:8:88"},{"kind":"number","nativeSrc":"30656:2:88","nodeType":"YulLiteral","src":"30656:2:88","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"30643:2:88","nodeType":"YulIdentifier","src":"30643:2:88"},"nativeSrc":"30643:16:88","nodeType":"YulFunctionCall","src":"30643:16:88"}],"functionName":{"name":"and","nativeSrc":"30625:3:88","nodeType":"YulIdentifier","src":"30625:3:88"},"nativeSrc":"30625:35:88","nodeType":"YulFunctionCall","src":"30625:35:88"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"30669:4:88","nodeType":"YulIdentifier","src":"30669:4:88"},{"kind":"number","nativeSrc":"30675:3:88","nodeType":"YulLiteral","src":"30675:3:88","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"30666:2:88","nodeType":"YulIdentifier","src":"30666:2:88"},"nativeSrc":"30666:13:88","nodeType":"YulFunctionCall","src":"30666:13:88"},{"arguments":[{"name":"exponent","nativeSrc":"30684:8:88","nodeType":"YulIdentifier","src":"30684:8:88"},{"kind":"number","nativeSrc":"30694:2:88","nodeType":"YulLiteral","src":"30694:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"30681:2:88","nodeType":"YulIdentifier","src":"30681:2:88"},"nativeSrc":"30681:16:88","nodeType":"YulFunctionCall","src":"30681:16:88"}],"functionName":{"name":"and","nativeSrc":"30662:3:88","nodeType":"YulIdentifier","src":"30662:3:88"},"nativeSrc":"30662:36:88","nodeType":"YulFunctionCall","src":"30662:36:88"}],"functionName":{"name":"or","nativeSrc":"30622:2:88","nodeType":"YulIdentifier","src":"30622:2:88"},"nativeSrc":"30622:77:88","nodeType":"YulFunctionCall","src":"30622:77:88"},"nativeSrc":"30619:203:88","nodeType":"YulIf","src":"30619:203:88"},{"nativeSrc":"30831:65:88","nodeType":"YulVariableDeclaration","src":"30831:65:88","value":{"arguments":[{"name":"base","nativeSrc":"30873:4:88","nodeType":"YulIdentifier","src":"30873:4:88"},{"name":"exponent","nativeSrc":"30879:8:88","nodeType":"YulIdentifier","src":"30879:8:88"},{"arguments":[{"kind":"number","nativeSrc":"30893:1:88","nodeType":"YulLiteral","src":"30893:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"30889:3:88","nodeType":"YulIdentifier","src":"30889:3:88"},"nativeSrc":"30889:6:88","nodeType":"YulFunctionCall","src":"30889:6:88"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"30854:18:88","nodeType":"YulIdentifier","src":"30854:18:88"},"nativeSrc":"30854:42:88","nodeType":"YulFunctionCall","src":"30854:42:88"},"variables":[{"name":"power_1","nativeSrc":"30835:7:88","nodeType":"YulTypedName","src":"30835:7:88","type":""},{"name":"base_1","nativeSrc":"30844:6:88","nodeType":"YulTypedName","src":"30844:6:88","type":""}]},{"body":{"nativeSrc":"30941:22:88","nodeType":"YulBlock","src":"30941:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"30943:16:88","nodeType":"YulIdentifier","src":"30943:16:88"},"nativeSrc":"30943:18:88","nodeType":"YulFunctionCall","src":"30943:18:88"},"nativeSrc":"30943:18:88","nodeType":"YulExpressionStatement","src":"30943:18:88"}]},"condition":{"arguments":[{"name":"power_1","nativeSrc":"30911:7:88","nodeType":"YulIdentifier","src":"30911:7:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30928:1:88","nodeType":"YulLiteral","src":"30928:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"30924:3:88","nodeType":"YulIdentifier","src":"30924:3:88"},"nativeSrc":"30924:6:88","nodeType":"YulFunctionCall","src":"30924:6:88"},{"name":"base_1","nativeSrc":"30932:6:88","nodeType":"YulIdentifier","src":"30932:6:88"}],"functionName":{"name":"div","nativeSrc":"30920:3:88","nodeType":"YulIdentifier","src":"30920:3:88"},"nativeSrc":"30920:19:88","nodeType":"YulFunctionCall","src":"30920:19:88"}],"functionName":{"name":"gt","nativeSrc":"30908:2:88","nodeType":"YulIdentifier","src":"30908:2:88"},"nativeSrc":"30908:32:88","nodeType":"YulFunctionCall","src":"30908:32:88"},"nativeSrc":"30905:58:88","nodeType":"YulIf","src":"30905:58:88"},{"nativeSrc":"30972:29:88","nodeType":"YulAssignment","src":"30972:29:88","value":{"arguments":[{"name":"power_1","nativeSrc":"30985:7:88","nodeType":"YulIdentifier","src":"30985:7:88"},{"name":"base_1","nativeSrc":"30994:6:88","nodeType":"YulIdentifier","src":"30994:6:88"}],"functionName":{"name":"mul","nativeSrc":"30981:3:88","nodeType":"YulIdentifier","src":"30981:3:88"},"nativeSrc":"30981:20:88","nodeType":"YulFunctionCall","src":"30981:20:88"},"variableNames":[{"name":"power","nativeSrc":"30972:5:88","nodeType":"YulIdentifier","src":"30972:5:88"}]}]},"name":"checked_exp_unsigned","nativeSrc":"30105:902:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"30135:4:88","nodeType":"YulTypedName","src":"30135:4:88","type":""},{"name":"exponent","nativeSrc":"30141:8:88","nodeType":"YulTypedName","src":"30141:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"30154:5:88","nodeType":"YulTypedName","src":"30154:5:88","type":""}],"src":"30105:902:88"},{"body":{"nativeSrc":"31080:72:88","nodeType":"YulBlock","src":"31080:72:88","statements":[{"nativeSrc":"31090:56:88","nodeType":"YulAssignment","src":"31090:56:88","value":{"arguments":[{"name":"base","nativeSrc":"31120:4:88","nodeType":"YulIdentifier","src":"31120:4:88"},{"arguments":[{"name":"exponent","nativeSrc":"31130:8:88","nodeType":"YulIdentifier","src":"31130:8:88"},{"kind":"number","nativeSrc":"31140:4:88","nodeType":"YulLiteral","src":"31140:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"31126:3:88","nodeType":"YulIdentifier","src":"31126:3:88"},"nativeSrc":"31126:19:88","nodeType":"YulFunctionCall","src":"31126:19:88"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"31099:20:88","nodeType":"YulIdentifier","src":"31099:20:88"},"nativeSrc":"31099:47:88","nodeType":"YulFunctionCall","src":"31099:47:88"},"variableNames":[{"name":"power","nativeSrc":"31090:5:88","nodeType":"YulIdentifier","src":"31090:5:88"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"31012:140:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"31051:4:88","nodeType":"YulTypedName","src":"31051:4:88","type":""},{"name":"exponent","nativeSrc":"31057:8:88","nodeType":"YulTypedName","src":"31057:8:88","type":""}],"returnVariables":[{"name":"power","nativeSrc":"31070:5:88","nodeType":"YulTypedName","src":"31070:5:88","type":""}],"src":"31012:140:88"},{"body":{"nativeSrc":"31209:116:88","nodeType":"YulBlock","src":"31209:116:88","statements":[{"nativeSrc":"31219:20:88","nodeType":"YulAssignment","src":"31219:20:88","value":{"arguments":[{"name":"x","nativeSrc":"31234:1:88","nodeType":"YulIdentifier","src":"31234:1:88"},{"name":"y","nativeSrc":"31237:1:88","nodeType":"YulIdentifier","src":"31237:1:88"}],"functionName":{"name":"mul","nativeSrc":"31230:3:88","nodeType":"YulIdentifier","src":"31230:3:88"},"nativeSrc":"31230:9:88","nodeType":"YulFunctionCall","src":"31230:9:88"},"variableNames":[{"name":"product","nativeSrc":"31219:7:88","nodeType":"YulIdentifier","src":"31219:7:88"}]},{"body":{"nativeSrc":"31297:22:88","nodeType":"YulBlock","src":"31297:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"31299:16:88","nodeType":"YulIdentifier","src":"31299:16:88"},"nativeSrc":"31299:18:88","nodeType":"YulFunctionCall","src":"31299:18:88"},"nativeSrc":"31299:18:88","nodeType":"YulExpressionStatement","src":"31299:18:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"31268:1:88","nodeType":"YulIdentifier","src":"31268:1:88"}],"functionName":{"name":"iszero","nativeSrc":"31261:6:88","nodeType":"YulIdentifier","src":"31261:6:88"},"nativeSrc":"31261:9:88","nodeType":"YulFunctionCall","src":"31261:9:88"},{"arguments":[{"name":"y","nativeSrc":"31275:1:88","nodeType":"YulIdentifier","src":"31275:1:88"},{"arguments":[{"name":"product","nativeSrc":"31282:7:88","nodeType":"YulIdentifier","src":"31282:7:88"},{"name":"x","nativeSrc":"31291:1:88","nodeType":"YulIdentifier","src":"31291:1:88"}],"functionName":{"name":"div","nativeSrc":"31278:3:88","nodeType":"YulIdentifier","src":"31278:3:88"},"nativeSrc":"31278:15:88","nodeType":"YulFunctionCall","src":"31278:15:88"}],"functionName":{"name":"eq","nativeSrc":"31272:2:88","nodeType":"YulIdentifier","src":"31272:2:88"},"nativeSrc":"31272:22:88","nodeType":"YulFunctionCall","src":"31272:22:88"}],"functionName":{"name":"or","nativeSrc":"31258:2:88","nodeType":"YulIdentifier","src":"31258:2:88"},"nativeSrc":"31258:37:88","nodeType":"YulFunctionCall","src":"31258:37:88"}],"functionName":{"name":"iszero","nativeSrc":"31251:6:88","nodeType":"YulIdentifier","src":"31251:6:88"},"nativeSrc":"31251:45:88","nodeType":"YulFunctionCall","src":"31251:45:88"},"nativeSrc":"31248:71:88","nodeType":"YulIf","src":"31248:71:88"}]},"name":"checked_mul_t_uint256","nativeSrc":"31157:168:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"31188:1:88","nodeType":"YulTypedName","src":"31188:1:88","type":""},{"name":"y","nativeSrc":"31191:1:88","nodeType":"YulTypedName","src":"31191:1:88","type":""}],"returnVariables":[{"name":"product","nativeSrc":"31197:7:88","nodeType":"YulTypedName","src":"31197:7:88","type":""}],"src":"31157:168:88"},{"body":{"nativeSrc":"31376:74:88","nodeType":"YulBlock","src":"31376:74:88","statements":[{"body":{"nativeSrc":"31399:22:88","nodeType":"YulBlock","src":"31399:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"31401:16:88","nodeType":"YulIdentifier","src":"31401:16:88"},"nativeSrc":"31401:18:88","nodeType":"YulFunctionCall","src":"31401:18:88"},"nativeSrc":"31401:18:88","nodeType":"YulExpressionStatement","src":"31401:18:88"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"31396:1:88","nodeType":"YulIdentifier","src":"31396:1:88"}],"functionName":{"name":"iszero","nativeSrc":"31389:6:88","nodeType":"YulIdentifier","src":"31389:6:88"},"nativeSrc":"31389:9:88","nodeType":"YulFunctionCall","src":"31389:9:88"},"nativeSrc":"31386:35:88","nodeType":"YulIf","src":"31386:35:88"},{"nativeSrc":"31430:14:88","nodeType":"YulAssignment","src":"31430:14:88","value":{"arguments":[{"name":"x","nativeSrc":"31439:1:88","nodeType":"YulIdentifier","src":"31439:1:88"},{"name":"y","nativeSrc":"31442:1:88","nodeType":"YulIdentifier","src":"31442:1:88"}],"functionName":{"name":"div","nativeSrc":"31435:3:88","nodeType":"YulIdentifier","src":"31435:3:88"},"nativeSrc":"31435:9:88","nodeType":"YulFunctionCall","src":"31435:9:88"},"variableNames":[{"name":"r","nativeSrc":"31430:1:88","nodeType":"YulIdentifier","src":"31430:1:88"}]}]},"name":"checked_div_t_uint256","nativeSrc":"31330:120:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"31361:1:88","nodeType":"YulTypedName","src":"31361:1:88","type":""},{"name":"y","nativeSrc":"31364:1:88","nodeType":"YulTypedName","src":"31364:1:88","type":""}],"returnVariables":[{"name":"r","nativeSrc":"31370:1:88","nodeType":"YulTypedName","src":"31370:1:88","type":""}],"src":"31330:120:88"},{"body":{"nativeSrc":"31533:199:88","nodeType":"YulBlock","src":"31533:199:88","statements":[{"body":{"nativeSrc":"31579:16:88","nodeType":"YulBlock","src":"31579:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31588:1:88","nodeType":"YulLiteral","src":"31588:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"31591:1:88","nodeType":"YulLiteral","src":"31591:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31581:6:88","nodeType":"YulIdentifier","src":"31581:6:88"},"nativeSrc":"31581:12:88","nodeType":"YulFunctionCall","src":"31581:12:88"},"nativeSrc":"31581:12:88","nodeType":"YulExpressionStatement","src":"31581:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"31554:7:88","nodeType":"YulIdentifier","src":"31554:7:88"},{"name":"headStart","nativeSrc":"31563:9:88","nodeType":"YulIdentifier","src":"31563:9:88"}],"functionName":{"name":"sub","nativeSrc":"31550:3:88","nodeType":"YulIdentifier","src":"31550:3:88"},"nativeSrc":"31550:23:88","nodeType":"YulFunctionCall","src":"31550:23:88"},{"kind":"number","nativeSrc":"31575:2:88","nodeType":"YulLiteral","src":"31575:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"31546:3:88","nodeType":"YulIdentifier","src":"31546:3:88"},"nativeSrc":"31546:32:88","nodeType":"YulFunctionCall","src":"31546:32:88"},"nativeSrc":"31543:52:88","nodeType":"YulIf","src":"31543:52:88"},{"nativeSrc":"31604:29:88","nodeType":"YulVariableDeclaration","src":"31604:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"31623:9:88","nodeType":"YulIdentifier","src":"31623:9:88"}],"functionName":{"name":"mload","nativeSrc":"31617:5:88","nodeType":"YulIdentifier","src":"31617:5:88"},"nativeSrc":"31617:16:88","nodeType":"YulFunctionCall","src":"31617:16:88"},"variables":[{"name":"value","nativeSrc":"31608:5:88","nodeType":"YulTypedName","src":"31608:5:88","type":""}]},{"body":{"nativeSrc":"31686:16:88","nodeType":"YulBlock","src":"31686:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31695:1:88","nodeType":"YulLiteral","src":"31695:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"31698:1:88","nodeType":"YulLiteral","src":"31698:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31688:6:88","nodeType":"YulIdentifier","src":"31688:6:88"},"nativeSrc":"31688:12:88","nodeType":"YulFunctionCall","src":"31688:12:88"},"nativeSrc":"31688:12:88","nodeType":"YulExpressionStatement","src":"31688:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31655:5:88","nodeType":"YulIdentifier","src":"31655:5:88"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31676:5:88","nodeType":"YulIdentifier","src":"31676:5:88"}],"functionName":{"name":"iszero","nativeSrc":"31669:6:88","nodeType":"YulIdentifier","src":"31669:6:88"},"nativeSrc":"31669:13:88","nodeType":"YulFunctionCall","src":"31669:13:88"}],"functionName":{"name":"iszero","nativeSrc":"31662:6:88","nodeType":"YulIdentifier","src":"31662:6:88"},"nativeSrc":"31662:21:88","nodeType":"YulFunctionCall","src":"31662:21:88"}],"functionName":{"name":"eq","nativeSrc":"31652:2:88","nodeType":"YulIdentifier","src":"31652:2:88"},"nativeSrc":"31652:32:88","nodeType":"YulFunctionCall","src":"31652:32:88"}],"functionName":{"name":"iszero","nativeSrc":"31645:6:88","nodeType":"YulIdentifier","src":"31645:6:88"},"nativeSrc":"31645:40:88","nodeType":"YulFunctionCall","src":"31645:40:88"},"nativeSrc":"31642:60:88","nodeType":"YulIf","src":"31642:60:88"},{"nativeSrc":"31711:15:88","nodeType":"YulAssignment","src":"31711:15:88","value":{"name":"value","nativeSrc":"31721:5:88","nodeType":"YulIdentifier","src":"31721:5:88"},"variableNames":[{"name":"value0","nativeSrc":"31711:6:88","nodeType":"YulIdentifier","src":"31711:6:88"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"31455:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31499:9:88","nodeType":"YulTypedName","src":"31499:9:88","type":""},{"name":"dataEnd","nativeSrc":"31510:7:88","nodeType":"YulTypedName","src":"31510:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"31522:6:88","nodeType":"YulTypedName","src":"31522:6:88","type":""}],"src":"31455:277:88"},{"body":{"nativeSrc":"31911:228:88","nodeType":"YulBlock","src":"31911:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31928:9:88","nodeType":"YulIdentifier","src":"31928:9:88"},{"kind":"number","nativeSrc":"31939:2:88","nodeType":"YulLiteral","src":"31939:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"31921:6:88","nodeType":"YulIdentifier","src":"31921:6:88"},"nativeSrc":"31921:21:88","nodeType":"YulFunctionCall","src":"31921:21:88"},"nativeSrc":"31921:21:88","nodeType":"YulExpressionStatement","src":"31921:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31962:9:88","nodeType":"YulIdentifier","src":"31962:9:88"},{"kind":"number","nativeSrc":"31973:2:88","nodeType":"YulLiteral","src":"31973:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31958:3:88","nodeType":"YulIdentifier","src":"31958:3:88"},"nativeSrc":"31958:18:88","nodeType":"YulFunctionCall","src":"31958:18:88"},{"kind":"number","nativeSrc":"31978:2:88","nodeType":"YulLiteral","src":"31978:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"31951:6:88","nodeType":"YulIdentifier","src":"31951:6:88"},"nativeSrc":"31951:30:88","nodeType":"YulFunctionCall","src":"31951:30:88"},"nativeSrc":"31951:30:88","nodeType":"YulExpressionStatement","src":"31951:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32001:9:88","nodeType":"YulIdentifier","src":"32001:9:88"},{"kind":"number","nativeSrc":"32012:2:88","nodeType":"YulLiteral","src":"32012:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31997:3:88","nodeType":"YulIdentifier","src":"31997:3:88"},"nativeSrc":"31997:18:88","nodeType":"YulFunctionCall","src":"31997:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"32017:34:88","nodeType":"YulLiteral","src":"32017:34:88","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"31990:6:88","nodeType":"YulIdentifier","src":"31990:6:88"},"nativeSrc":"31990:62:88","nodeType":"YulFunctionCall","src":"31990:62:88"},"nativeSrc":"31990:62:88","nodeType":"YulExpressionStatement","src":"31990:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32072:9:88","nodeType":"YulIdentifier","src":"32072:9:88"},{"kind":"number","nativeSrc":"32083:2:88","nodeType":"YulLiteral","src":"32083:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32068:3:88","nodeType":"YulIdentifier","src":"32068:3:88"},"nativeSrc":"32068:18:88","nodeType":"YulFunctionCall","src":"32068:18:88"},{"hexValue":"362062697473","kind":"string","nativeSrc":"32088:8:88","nodeType":"YulLiteral","src":"32088:8:88","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"32061:6:88","nodeType":"YulIdentifier","src":"32061:6:88"},"nativeSrc":"32061:36:88","nodeType":"YulFunctionCall","src":"32061:36:88"},"nativeSrc":"32061:36:88","nodeType":"YulExpressionStatement","src":"32061:36:88"},{"nativeSrc":"32106:27:88","nodeType":"YulAssignment","src":"32106:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32118:9:88","nodeType":"YulIdentifier","src":"32118:9:88"},{"kind":"number","nativeSrc":"32129:3:88","nodeType":"YulLiteral","src":"32129:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32114:3:88","nodeType":"YulIdentifier","src":"32114:3:88"},"nativeSrc":"32114:19:88","nodeType":"YulFunctionCall","src":"32114:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32106:4:88","nodeType":"YulIdentifier","src":"32106:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31737:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31888:9:88","nodeType":"YulTypedName","src":"31888:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31902:4:88","nodeType":"YulTypedName","src":"31902:4:88","type":""}],"src":"31737:402:88"},{"body":{"nativeSrc":"32318:224:88","nodeType":"YulBlock","src":"32318:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32335:9:88","nodeType":"YulIdentifier","src":"32335:9:88"},{"kind":"number","nativeSrc":"32346:2:88","nodeType":"YulLiteral","src":"32346:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32328:6:88","nodeType":"YulIdentifier","src":"32328:6:88"},"nativeSrc":"32328:21:88","nodeType":"YulFunctionCall","src":"32328:21:88"},"nativeSrc":"32328:21:88","nodeType":"YulExpressionStatement","src":"32328:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32369:9:88","nodeType":"YulIdentifier","src":"32369:9:88"},{"kind":"number","nativeSrc":"32380:2:88","nodeType":"YulLiteral","src":"32380:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32365:3:88","nodeType":"YulIdentifier","src":"32365:3:88"},"nativeSrc":"32365:18:88","nodeType":"YulFunctionCall","src":"32365:18:88"},{"kind":"number","nativeSrc":"32385:2:88","nodeType":"YulLiteral","src":"32385:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"32358:6:88","nodeType":"YulIdentifier","src":"32358:6:88"},"nativeSrc":"32358:30:88","nodeType":"YulFunctionCall","src":"32358:30:88"},"nativeSrc":"32358:30:88","nodeType":"YulExpressionStatement","src":"32358:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32408:9:88","nodeType":"YulIdentifier","src":"32408:9:88"},{"kind":"number","nativeSrc":"32419:2:88","nodeType":"YulLiteral","src":"32419:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32404:3:88","nodeType":"YulIdentifier","src":"32404:3:88"},"nativeSrc":"32404:18:88","nodeType":"YulFunctionCall","src":"32404:18:88"},{"hexValue":"5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f","kind":"string","nativeSrc":"32424:34:88","nodeType":"YulLiteral","src":"32424:34:88","type":"","value":"Premium cannot be more than payo"}],"functionName":{"name":"mstore","nativeSrc":"32397:6:88","nodeType":"YulIdentifier","src":"32397:6:88"},"nativeSrc":"32397:62:88","nodeType":"YulFunctionCall","src":"32397:62:88"},"nativeSrc":"32397:62:88","nodeType":"YulExpressionStatement","src":"32397:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32479:9:88","nodeType":"YulIdentifier","src":"32479:9:88"},{"kind":"number","nativeSrc":"32490:2:88","nodeType":"YulLiteral","src":"32490:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32475:3:88","nodeType":"YulIdentifier","src":"32475:3:88"},"nativeSrc":"32475:18:88","nodeType":"YulFunctionCall","src":"32475:18:88"},{"hexValue":"7574","kind":"string","nativeSrc":"32495:4:88","nodeType":"YulLiteral","src":"32495:4:88","type":"","value":"ut"}],"functionName":{"name":"mstore","nativeSrc":"32468:6:88","nodeType":"YulIdentifier","src":"32468:6:88"},"nativeSrc":"32468:32:88","nodeType":"YulFunctionCall","src":"32468:32:88"},"nativeSrc":"32468:32:88","nodeType":"YulExpressionStatement","src":"32468:32:88"},{"nativeSrc":"32509:27:88","nodeType":"YulAssignment","src":"32509:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32521:9:88","nodeType":"YulIdentifier","src":"32521:9:88"},{"kind":"number","nativeSrc":"32532:3:88","nodeType":"YulLiteral","src":"32532:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32517:3:88","nodeType":"YulIdentifier","src":"32517:3:88"},"nativeSrc":"32517:19:88","nodeType":"YulFunctionCall","src":"32517:19:88"},"variableNames":[{"name":"tail","nativeSrc":"32509:4:88","nodeType":"YulIdentifier","src":"32509:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32144:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32295:9:88","nodeType":"YulTypedName","src":"32295:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32309:4:88","nodeType":"YulTypedName","src":"32309:4:88","type":""}],"src":"32144:398:88"},{"body":{"nativeSrc":"32721:175:88","nodeType":"YulBlock","src":"32721:175:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32738:9:88","nodeType":"YulIdentifier","src":"32738:9:88"},{"kind":"number","nativeSrc":"32749:2:88","nodeType":"YulLiteral","src":"32749:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32731:6:88","nodeType":"YulIdentifier","src":"32731:6:88"},"nativeSrc":"32731:21:88","nodeType":"YulFunctionCall","src":"32731:21:88"},"nativeSrc":"32731:21:88","nodeType":"YulExpressionStatement","src":"32731:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32772:9:88","nodeType":"YulIdentifier","src":"32772:9:88"},{"kind":"number","nativeSrc":"32783:2:88","nodeType":"YulLiteral","src":"32783:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32768:3:88","nodeType":"YulIdentifier","src":"32768:3:88"},"nativeSrc":"32768:18:88","nodeType":"YulFunctionCall","src":"32768:18:88"},{"kind":"number","nativeSrc":"32788:2:88","nodeType":"YulLiteral","src":"32788:2:88","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"32761:6:88","nodeType":"YulIdentifier","src":"32761:6:88"},"nativeSrc":"32761:30:88","nodeType":"YulFunctionCall","src":"32761:30:88"},"nativeSrc":"32761:30:88","nodeType":"YulExpressionStatement","src":"32761:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32811:9:88","nodeType":"YulIdentifier","src":"32811:9:88"},{"kind":"number","nativeSrc":"32822:2:88","nodeType":"YulLiteral","src":"32822:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32807:3:88","nodeType":"YulIdentifier","src":"32807:3:88"},"nativeSrc":"32807:18:88","nodeType":"YulFunctionCall","src":"32807:18:88"},{"hexValue":"5072656d69756d206c657373207468616e206d696e696d756d","kind":"string","nativeSrc":"32827:27:88","nodeType":"YulLiteral","src":"32827:27:88","type":"","value":"Premium less than minimum"}],"functionName":{"name":"mstore","nativeSrc":"32800:6:88","nodeType":"YulIdentifier","src":"32800:6:88"},"nativeSrc":"32800:55:88","nodeType":"YulFunctionCall","src":"32800:55:88"},"nativeSrc":"32800:55:88","nodeType":"YulExpressionStatement","src":"32800:55:88"},{"nativeSrc":"32864:26:88","nodeType":"YulAssignment","src":"32864:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"32876:9:88","nodeType":"YulIdentifier","src":"32876:9:88"},{"kind":"number","nativeSrc":"32887:2:88","nodeType":"YulLiteral","src":"32887:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32872:3:88","nodeType":"YulIdentifier","src":"32872:3:88"},"nativeSrc":"32872:18:88","nodeType":"YulFunctionCall","src":"32872:18:88"},"variableNames":[{"name":"tail","nativeSrc":"32864:4:88","nodeType":"YulIdentifier","src":"32864:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32547:349:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32698:9:88","nodeType":"YulTypedName","src":"32698:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32712:4:88","nodeType":"YulTypedName","src":"32712:4:88","type":""}],"src":"32547:349:88"},{"body":{"nativeSrc":"33008:170:88","nodeType":"YulBlock","src":"33008:170:88","statements":[{"body":{"nativeSrc":"33054:16:88","nodeType":"YulBlock","src":"33054:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33063:1:88","nodeType":"YulLiteral","src":"33063:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"33066:1:88","nodeType":"YulLiteral","src":"33066:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33056:6:88","nodeType":"YulIdentifier","src":"33056:6:88"},"nativeSrc":"33056:12:88","nodeType":"YulFunctionCall","src":"33056:12:88"},"nativeSrc":"33056:12:88","nodeType":"YulExpressionStatement","src":"33056:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33029:7:88","nodeType":"YulIdentifier","src":"33029:7:88"},{"name":"headStart","nativeSrc":"33038:9:88","nodeType":"YulIdentifier","src":"33038:9:88"}],"functionName":{"name":"sub","nativeSrc":"33025:3:88","nodeType":"YulIdentifier","src":"33025:3:88"},"nativeSrc":"33025:23:88","nodeType":"YulFunctionCall","src":"33025:23:88"},{"kind":"number","nativeSrc":"33050:2:88","nodeType":"YulLiteral","src":"33050:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33021:3:88","nodeType":"YulIdentifier","src":"33021:3:88"},"nativeSrc":"33021:32:88","nodeType":"YulFunctionCall","src":"33021:32:88"},"nativeSrc":"33018:52:88","nodeType":"YulIf","src":"33018:52:88"},{"nativeSrc":"33079:29:88","nodeType":"YulVariableDeclaration","src":"33079:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33098:9:88","nodeType":"YulIdentifier","src":"33098:9:88"}],"functionName":{"name":"mload","nativeSrc":"33092:5:88","nodeType":"YulIdentifier","src":"33092:5:88"},"nativeSrc":"33092:16:88","nodeType":"YulFunctionCall","src":"33092:16:88"},"variables":[{"name":"value","nativeSrc":"33083:5:88","nodeType":"YulTypedName","src":"33083:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33142:5:88","nodeType":"YulIdentifier","src":"33142:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"33117:24:88","nodeType":"YulIdentifier","src":"33117:24:88"},"nativeSrc":"33117:31:88","nodeType":"YulFunctionCall","src":"33117:31:88"},"nativeSrc":"33117:31:88","nodeType":"YulExpressionStatement","src":"33117:31:88"},{"nativeSrc":"33157:15:88","nodeType":"YulAssignment","src":"33157:15:88","value":{"name":"value","nativeSrc":"33167:5:88","nodeType":"YulIdentifier","src":"33167:5:88"},"variableNames":[{"name":"value0","nativeSrc":"33157:6:88","nodeType":"YulIdentifier","src":"33157:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory","nativeSrc":"32901:277:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32974:9:88","nodeType":"YulTypedName","src":"32974:9:88","type":""},{"name":"dataEnd","nativeSrc":"32985:7:88","nodeType":"YulTypedName","src":"32985:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32997:6:88","nodeType":"YulTypedName","src":"32997:6:88","type":""}],"src":"32901:277:88"},{"body":{"nativeSrc":"33357:235:88","nodeType":"YulBlock","src":"33357:235:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33374:9:88","nodeType":"YulIdentifier","src":"33374:9:88"},{"kind":"number","nativeSrc":"33385:2:88","nodeType":"YulLiteral","src":"33385:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33367:6:88","nodeType":"YulIdentifier","src":"33367:6:88"},"nativeSrc":"33367:21:88","nodeType":"YulFunctionCall","src":"33367:21:88"},"nativeSrc":"33367:21:88","nodeType":"YulExpressionStatement","src":"33367:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33408:9:88","nodeType":"YulIdentifier","src":"33408:9:88"},{"kind":"number","nativeSrc":"33419:2:88","nodeType":"YulLiteral","src":"33419:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33404:3:88","nodeType":"YulIdentifier","src":"33404:3:88"},"nativeSrc":"33404:18:88","nodeType":"YulFunctionCall","src":"33404:18:88"},{"kind":"number","nativeSrc":"33424:2:88","nodeType":"YulLiteral","src":"33424:2:88","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"33397:6:88","nodeType":"YulIdentifier","src":"33397:6:88"},"nativeSrc":"33397:30:88","nodeType":"YulFunctionCall","src":"33397:30:88"},"nativeSrc":"33397:30:88","nodeType":"YulExpressionStatement","src":"33397:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33447:9:88","nodeType":"YulIdentifier","src":"33447:9:88"},{"kind":"number","nativeSrc":"33458:2:88","nodeType":"YulLiteral","src":"33458:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33443:3:88","nodeType":"YulIdentifier","src":"33443:3:88"},"nativeSrc":"33443:18:88","nodeType":"YulFunctionCall","src":"33443:18:88"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"33463:34:88","nodeType":"YulLiteral","src":"33463:34:88","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"33436:6:88","nodeType":"YulIdentifier","src":"33436:6:88"},"nativeSrc":"33436:62:88","nodeType":"YulFunctionCall","src":"33436:62:88"},"nativeSrc":"33436:62:88","nodeType":"YulExpressionStatement","src":"33436:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33518:9:88","nodeType":"YulIdentifier","src":"33518:9:88"},{"kind":"number","nativeSrc":"33529:2:88","nodeType":"YulLiteral","src":"33529:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33514:3:88","nodeType":"YulIdentifier","src":"33514:3:88"},"nativeSrc":"33514:18:88","nodeType":"YulFunctionCall","src":"33514:18:88"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"33534:15:88","nodeType":"YulLiteral","src":"33534:15:88","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"33507:6:88","nodeType":"YulIdentifier","src":"33507:6:88"},"nativeSrc":"33507:43:88","nodeType":"YulFunctionCall","src":"33507:43:88"},"nativeSrc":"33507:43:88","nodeType":"YulExpressionStatement","src":"33507:43:88"},{"nativeSrc":"33559:27:88","nodeType":"YulAssignment","src":"33559:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33571:9:88","nodeType":"YulIdentifier","src":"33571:9:88"},{"kind":"number","nativeSrc":"33582:3:88","nodeType":"YulLiteral","src":"33582:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"33567:3:88","nodeType":"YulIdentifier","src":"33567:3:88"},"nativeSrc":"33567:19:88","nodeType":"YulFunctionCall","src":"33567:19:88"},"variableNames":[{"name":"tail","nativeSrc":"33559:4:88","nodeType":"YulIdentifier","src":"33559:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33183:409:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33334:9:88","nodeType":"YulTypedName","src":"33334:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33348:4:88","nodeType":"YulTypedName","src":"33348:4:88","type":""}],"src":"33183:409:88"},{"body":{"nativeSrc":"33771:170:88","nodeType":"YulBlock","src":"33771:170:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33788:9:88","nodeType":"YulIdentifier","src":"33788:9:88"},{"kind":"number","nativeSrc":"33799:2:88","nodeType":"YulLiteral","src":"33799:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"33781:6:88","nodeType":"YulIdentifier","src":"33781:6:88"},"nativeSrc":"33781:21:88","nodeType":"YulFunctionCall","src":"33781:21:88"},"nativeSrc":"33781:21:88","nodeType":"YulExpressionStatement","src":"33781:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33822:9:88","nodeType":"YulIdentifier","src":"33822:9:88"},{"kind":"number","nativeSrc":"33833:2:88","nodeType":"YulLiteral","src":"33833:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33818:3:88","nodeType":"YulIdentifier","src":"33818:3:88"},"nativeSrc":"33818:18:88","nodeType":"YulFunctionCall","src":"33818:18:88"},{"kind":"number","nativeSrc":"33838:2:88","nodeType":"YulLiteral","src":"33838:2:88","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"33811:6:88","nodeType":"YulIdentifier","src":"33811:6:88"},"nativeSrc":"33811:30:88","nodeType":"YulFunctionCall","src":"33811:30:88"},"nativeSrc":"33811:30:88","nodeType":"YulExpressionStatement","src":"33811:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33861:9:88","nodeType":"YulIdentifier","src":"33861:9:88"},{"kind":"number","nativeSrc":"33872:2:88","nodeType":"YulLiteral","src":"33872:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33857:3:88","nodeType":"YulIdentifier","src":"33857:3:88"},"nativeSrc":"33857:18:88","nodeType":"YulFunctionCall","src":"33857:18:88"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"33877:22:88","nodeType":"YulLiteral","src":"33877:22:88","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"33850:6:88","nodeType":"YulIdentifier","src":"33850:6:88"},"nativeSrc":"33850:50:88","nodeType":"YulFunctionCall","src":"33850:50:88"},"nativeSrc":"33850:50:88","nodeType":"YulExpressionStatement","src":"33850:50:88"},{"nativeSrc":"33909:26:88","nodeType":"YulAssignment","src":"33909:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"33921:9:88","nodeType":"YulIdentifier","src":"33921:9:88"},{"kind":"number","nativeSrc":"33932:2:88","nodeType":"YulLiteral","src":"33932:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33917:3:88","nodeType":"YulIdentifier","src":"33917:3:88"},"nativeSrc":"33917:18:88","nodeType":"YulFunctionCall","src":"33917:18:88"},"variableNames":[{"name":"tail","nativeSrc":"33909:4:88","nodeType":"YulIdentifier","src":"33909:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33597:344:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33748:9:88","nodeType":"YulTypedName","src":"33748:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33762:4:88","nodeType":"YulTypedName","src":"33762:4:88","type":""}],"src":"33597:344:88"},{"body":{"nativeSrc":"34002:65:88","nodeType":"YulBlock","src":"34002:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34019:1:88","nodeType":"YulLiteral","src":"34019:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"34022:3:88","nodeType":"YulIdentifier","src":"34022:3:88"}],"functionName":{"name":"mstore","nativeSrc":"34012:6:88","nodeType":"YulIdentifier","src":"34012:6:88"},"nativeSrc":"34012:14:88","nodeType":"YulFunctionCall","src":"34012:14:88"},"nativeSrc":"34012:14:88","nodeType":"YulExpressionStatement","src":"34012:14:88"},{"nativeSrc":"34035:26:88","nodeType":"YulAssignment","src":"34035:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"34053:1:88","nodeType":"YulLiteral","src":"34053:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34056:4:88","nodeType":"YulLiteral","src":"34056:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"34043:9:88","nodeType":"YulIdentifier","src":"34043:9:88"},"nativeSrc":"34043:18:88","nodeType":"YulFunctionCall","src":"34043:18:88"},"variableNames":[{"name":"data","nativeSrc":"34035:4:88","nodeType":"YulIdentifier","src":"34035:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"33946:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"33985:3:88","nodeType":"YulTypedName","src":"33985:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"33993:4:88","nodeType":"YulTypedName","src":"33993:4:88","type":""}],"src":"33946:121:88"},{"body":{"nativeSrc":"34153:437:88","nodeType":"YulBlock","src":"34153:437:88","statements":[{"body":{"nativeSrc":"34186:398:88","nodeType":"YulBlock","src":"34186:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34207:1:88","nodeType":"YulLiteral","src":"34207:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"34210:5:88","nodeType":"YulIdentifier","src":"34210:5:88"}],"functionName":{"name":"mstore","nativeSrc":"34200:6:88","nodeType":"YulIdentifier","src":"34200:6:88"},"nativeSrc":"34200:16:88","nodeType":"YulFunctionCall","src":"34200:16:88"},"nativeSrc":"34200:16:88","nodeType":"YulExpressionStatement","src":"34200:16:88"},{"nativeSrc":"34229:30:88","nodeType":"YulVariableDeclaration","src":"34229:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"34251:1:88","nodeType":"YulLiteral","src":"34251:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"34254:4:88","nodeType":"YulLiteral","src":"34254:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"34241:9:88","nodeType":"YulIdentifier","src":"34241:9:88"},"nativeSrc":"34241:18:88","nodeType":"YulFunctionCall","src":"34241:18:88"},"variables":[{"name":"data","nativeSrc":"34233:4:88","nodeType":"YulTypedName","src":"34233:4:88","type":""}]},{"nativeSrc":"34272:57:88","nodeType":"YulVariableDeclaration","src":"34272:57:88","value":{"arguments":[{"name":"data","nativeSrc":"34295:4:88","nodeType":"YulIdentifier","src":"34295:4:88"},{"arguments":[{"kind":"number","nativeSrc":"34305:1:88","nodeType":"YulLiteral","src":"34305:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"34312:10:88","nodeType":"YulIdentifier","src":"34312:10:88"},{"kind":"number","nativeSrc":"34324:2:88","nodeType":"YulLiteral","src":"34324:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"34308:3:88","nodeType":"YulIdentifier","src":"34308:3:88"},"nativeSrc":"34308:19:88","nodeType":"YulFunctionCall","src":"34308:19:88"}],"functionName":{"name":"shr","nativeSrc":"34301:3:88","nodeType":"YulIdentifier","src":"34301:3:88"},"nativeSrc":"34301:27:88","nodeType":"YulFunctionCall","src":"34301:27:88"}],"functionName":{"name":"add","nativeSrc":"34291:3:88","nodeType":"YulIdentifier","src":"34291:3:88"},"nativeSrc":"34291:38:88","nodeType":"YulFunctionCall","src":"34291:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"34276:11:88","nodeType":"YulTypedName","src":"34276:11:88","type":""}]},{"body":{"nativeSrc":"34366:23:88","nodeType":"YulBlock","src":"34366:23:88","statements":[{"nativeSrc":"34368:19:88","nodeType":"YulAssignment","src":"34368:19:88","value":{"name":"data","nativeSrc":"34383:4:88","nodeType":"YulIdentifier","src":"34383:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"34368:11:88","nodeType":"YulIdentifier","src":"34368:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"34348:10:88","nodeType":"YulIdentifier","src":"34348:10:88"},{"kind":"number","nativeSrc":"34360:4:88","nodeType":"YulLiteral","src":"34360:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"34345:2:88","nodeType":"YulIdentifier","src":"34345:2:88"},"nativeSrc":"34345:20:88","nodeType":"YulFunctionCall","src":"34345:20:88"},"nativeSrc":"34342:47:88","nodeType":"YulIf","src":"34342:47:88"},{"nativeSrc":"34402:41:88","nodeType":"YulVariableDeclaration","src":"34402:41:88","value":{"arguments":[{"name":"data","nativeSrc":"34416:4:88","nodeType":"YulIdentifier","src":"34416:4:88"},{"arguments":[{"kind":"number","nativeSrc":"34426:1:88","nodeType":"YulLiteral","src":"34426:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"34433:3:88","nodeType":"YulIdentifier","src":"34433:3:88"},{"kind":"number","nativeSrc":"34438:2:88","nodeType":"YulLiteral","src":"34438:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"34429:3:88","nodeType":"YulIdentifier","src":"34429:3:88"},"nativeSrc":"34429:12:88","nodeType":"YulFunctionCall","src":"34429:12:88"}],"functionName":{"name":"shr","nativeSrc":"34422:3:88","nodeType":"YulIdentifier","src":"34422:3:88"},"nativeSrc":"34422:20:88","nodeType":"YulFunctionCall","src":"34422:20:88"}],"functionName":{"name":"add","nativeSrc":"34412:3:88","nodeType":"YulIdentifier","src":"34412:3:88"},"nativeSrc":"34412:31:88","nodeType":"YulFunctionCall","src":"34412:31:88"},"variables":[{"name":"_1","nativeSrc":"34406:2:88","nodeType":"YulTypedName","src":"34406:2:88","type":""}]},{"nativeSrc":"34456:24:88","nodeType":"YulVariableDeclaration","src":"34456:24:88","value":{"name":"deleteStart","nativeSrc":"34469:11:88","nodeType":"YulIdentifier","src":"34469:11:88"},"variables":[{"name":"start","nativeSrc":"34460:5:88","nodeType":"YulTypedName","src":"34460:5:88","type":""}]},{"body":{"nativeSrc":"34554:20:88","nodeType":"YulBlock","src":"34554:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"34563:5:88","nodeType":"YulIdentifier","src":"34563:5:88"},{"kind":"number","nativeSrc":"34570:1:88","nodeType":"YulLiteral","src":"34570:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"34556:6:88","nodeType":"YulIdentifier","src":"34556:6:88"},"nativeSrc":"34556:16:88","nodeType":"YulFunctionCall","src":"34556:16:88"},"nativeSrc":"34556:16:88","nodeType":"YulExpressionStatement","src":"34556:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"34504:5:88","nodeType":"YulIdentifier","src":"34504:5:88"},{"name":"_1","nativeSrc":"34511:2:88","nodeType":"YulIdentifier","src":"34511:2:88"}],"functionName":{"name":"lt","nativeSrc":"34501:2:88","nodeType":"YulIdentifier","src":"34501:2:88"},"nativeSrc":"34501:13:88","nodeType":"YulFunctionCall","src":"34501:13:88"},"nativeSrc":"34493:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"34515:26:88","nodeType":"YulBlock","src":"34515:26:88","statements":[{"nativeSrc":"34517:22:88","nodeType":"YulAssignment","src":"34517:22:88","value":{"arguments":[{"name":"start","nativeSrc":"34530:5:88","nodeType":"YulIdentifier","src":"34530:5:88"},{"kind":"number","nativeSrc":"34537:1:88","nodeType":"YulLiteral","src":"34537:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34526:3:88","nodeType":"YulIdentifier","src":"34526:3:88"},"nativeSrc":"34526:13:88","nodeType":"YulFunctionCall","src":"34526:13:88"},"variableNames":[{"name":"start","nativeSrc":"34517:5:88","nodeType":"YulIdentifier","src":"34517:5:88"}]}]},"pre":{"nativeSrc":"34497:3:88","nodeType":"YulBlock","src":"34497:3:88","statements":[]},"src":"34493:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"34169:3:88","nodeType":"YulIdentifier","src":"34169:3:88"},{"kind":"number","nativeSrc":"34174:2:88","nodeType":"YulLiteral","src":"34174:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"34166:2:88","nodeType":"YulIdentifier","src":"34166:2:88"},"nativeSrc":"34166:11:88","nodeType":"YulFunctionCall","src":"34166:11:88"},"nativeSrc":"34163:421:88","nodeType":"YulIf","src":"34163:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"34072:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"34125:5:88","nodeType":"YulTypedName","src":"34125:5:88","type":""},{"name":"len","nativeSrc":"34132:3:88","nodeType":"YulTypedName","src":"34132:3:88","type":""},{"name":"startIndex","nativeSrc":"34137:10:88","nodeType":"YulTypedName","src":"34137:10:88","type":""}],"src":"34072:518:88"},{"body":{"nativeSrc":"34680:81:88","nodeType":"YulBlock","src":"34680:81:88","statements":[{"nativeSrc":"34690:65:88","nodeType":"YulAssignment","src":"34690:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34705:4:88","nodeType":"YulIdentifier","src":"34705:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34723:1:88","nodeType":"YulLiteral","src":"34723:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"34726:3:88","nodeType":"YulIdentifier","src":"34726:3:88"}],"functionName":{"name":"shl","nativeSrc":"34719:3:88","nodeType":"YulIdentifier","src":"34719:3:88"},"nativeSrc":"34719:11:88","nodeType":"YulFunctionCall","src":"34719:11:88"},{"arguments":[{"kind":"number","nativeSrc":"34736:1:88","nodeType":"YulLiteral","src":"34736:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"34732:3:88","nodeType":"YulIdentifier","src":"34732:3:88"},"nativeSrc":"34732:6:88","nodeType":"YulFunctionCall","src":"34732:6:88"}],"functionName":{"name":"shr","nativeSrc":"34715:3:88","nodeType":"YulIdentifier","src":"34715:3:88"},"nativeSrc":"34715:24:88","nodeType":"YulFunctionCall","src":"34715:24:88"}],"functionName":{"name":"not","nativeSrc":"34711:3:88","nodeType":"YulIdentifier","src":"34711:3:88"},"nativeSrc":"34711:29:88","nodeType":"YulFunctionCall","src":"34711:29:88"}],"functionName":{"name":"and","nativeSrc":"34701:3:88","nodeType":"YulIdentifier","src":"34701:3:88"},"nativeSrc":"34701:40:88","nodeType":"YulFunctionCall","src":"34701:40:88"},{"arguments":[{"kind":"number","nativeSrc":"34747:1:88","nodeType":"YulLiteral","src":"34747:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"34750:3:88","nodeType":"YulIdentifier","src":"34750:3:88"}],"functionName":{"name":"shl","nativeSrc":"34743:3:88","nodeType":"YulIdentifier","src":"34743:3:88"},"nativeSrc":"34743:11:88","nodeType":"YulFunctionCall","src":"34743:11:88"}],"functionName":{"name":"or","nativeSrc":"34698:2:88","nodeType":"YulIdentifier","src":"34698:2:88"},"nativeSrc":"34698:57:88","nodeType":"YulFunctionCall","src":"34698:57:88"},"variableNames":[{"name":"used","nativeSrc":"34690:4:88","nodeType":"YulIdentifier","src":"34690:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"34595:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"34657:4:88","nodeType":"YulTypedName","src":"34657:4:88","type":""},{"name":"len","nativeSrc":"34663:3:88","nodeType":"YulTypedName","src":"34663:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"34671:4:88","nodeType":"YulTypedName","src":"34671:4:88","type":""}],"src":"34595:166:88"},{"body":{"nativeSrc":"34862:1203:88","nodeType":"YulBlock","src":"34862:1203:88","statements":[{"nativeSrc":"34872:24:88","nodeType":"YulVariableDeclaration","src":"34872:24:88","value":{"arguments":[{"name":"src","nativeSrc":"34892:3:88","nodeType":"YulIdentifier","src":"34892:3:88"}],"functionName":{"name":"mload","nativeSrc":"34886:5:88","nodeType":"YulIdentifier","src":"34886:5:88"},"nativeSrc":"34886:10:88","nodeType":"YulFunctionCall","src":"34886:10:88"},"variables":[{"name":"newLen","nativeSrc":"34876:6:88","nodeType":"YulTypedName","src":"34876:6:88","type":""}]},{"body":{"nativeSrc":"34939:22:88","nodeType":"YulBlock","src":"34939:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"34941:16:88","nodeType":"YulIdentifier","src":"34941:16:88"},"nativeSrc":"34941:18:88","nodeType":"YulFunctionCall","src":"34941:18:88"},"nativeSrc":"34941:18:88","nodeType":"YulExpressionStatement","src":"34941:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"34911:6:88","nodeType":"YulIdentifier","src":"34911:6:88"},{"kind":"number","nativeSrc":"34919:18:88","nodeType":"YulLiteral","src":"34919:18:88","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"34908:2:88","nodeType":"YulIdentifier","src":"34908:2:88"},"nativeSrc":"34908:30:88","nodeType":"YulFunctionCall","src":"34908:30:88"},"nativeSrc":"34905:56:88","nodeType":"YulIf","src":"34905:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"35014:4:88","nodeType":"YulIdentifier","src":"35014:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"35052:4:88","nodeType":"YulIdentifier","src":"35052:4:88"}],"functionName":{"name":"sload","nativeSrc":"35046:5:88","nodeType":"YulIdentifier","src":"35046:5:88"},"nativeSrc":"35046:11:88","nodeType":"YulFunctionCall","src":"35046:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"35020:25:88","nodeType":"YulIdentifier","src":"35020:25:88"},"nativeSrc":"35020:38:88","nodeType":"YulFunctionCall","src":"35020:38:88"},{"name":"newLen","nativeSrc":"35060:6:88","nodeType":"YulIdentifier","src":"35060:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"34970:43:88","nodeType":"YulIdentifier","src":"34970:43:88"},"nativeSrc":"34970:97:88","nodeType":"YulFunctionCall","src":"34970:97:88"},"nativeSrc":"34970:97:88","nodeType":"YulExpressionStatement","src":"34970:97:88"},{"nativeSrc":"35076:18:88","nodeType":"YulVariableDeclaration","src":"35076:18:88","value":{"kind":"number","nativeSrc":"35093:1:88","nodeType":"YulLiteral","src":"35093:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"35080:9:88","nodeType":"YulTypedName","src":"35080:9:88","type":""}]},{"nativeSrc":"35103:17:88","nodeType":"YulAssignment","src":"35103:17:88","value":{"kind":"number","nativeSrc":"35116:4:88","nodeType":"YulLiteral","src":"35116:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"35103:9:88","nodeType":"YulIdentifier","src":"35103:9:88"}]},{"cases":[{"body":{"nativeSrc":"35166:642:88","nodeType":"YulBlock","src":"35166:642:88","statements":[{"nativeSrc":"35180:35:88","nodeType":"YulVariableDeclaration","src":"35180:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"35199:6:88","nodeType":"YulIdentifier","src":"35199:6:88"},{"arguments":[{"kind":"number","nativeSrc":"35211:2:88","nodeType":"YulLiteral","src":"35211:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"35207:3:88","nodeType":"YulIdentifier","src":"35207:3:88"},"nativeSrc":"35207:7:88","nodeType":"YulFunctionCall","src":"35207:7:88"}],"functionName":{"name":"and","nativeSrc":"35195:3:88","nodeType":"YulIdentifier","src":"35195:3:88"},"nativeSrc":"35195:20:88","nodeType":"YulFunctionCall","src":"35195:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"35184:7:88","nodeType":"YulTypedName","src":"35184:7:88","type":""}]},{"nativeSrc":"35228:49:88","nodeType":"YulVariableDeclaration","src":"35228:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"35272:4:88","nodeType":"YulIdentifier","src":"35272:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"35242:29:88","nodeType":"YulIdentifier","src":"35242:29:88"},"nativeSrc":"35242:35:88","nodeType":"YulFunctionCall","src":"35242:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"35232:6:88","nodeType":"YulTypedName","src":"35232:6:88","type":""}]},{"nativeSrc":"35290:10:88","nodeType":"YulVariableDeclaration","src":"35290:10:88","value":{"kind":"number","nativeSrc":"35299:1:88","nodeType":"YulLiteral","src":"35299:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"35294:1:88","nodeType":"YulTypedName","src":"35294:1:88","type":""}]},{"body":{"nativeSrc":"35370:165:88","nodeType":"YulBlock","src":"35370:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"35395:6:88","nodeType":"YulIdentifier","src":"35395:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"35413:3:88","nodeType":"YulIdentifier","src":"35413:3:88"},{"name":"srcOffset","nativeSrc":"35418:9:88","nodeType":"YulIdentifier","src":"35418:9:88"}],"functionName":{"name":"add","nativeSrc":"35409:3:88","nodeType":"YulIdentifier","src":"35409:3:88"},"nativeSrc":"35409:19:88","nodeType":"YulFunctionCall","src":"35409:19:88"}],"functionName":{"name":"mload","nativeSrc":"35403:5:88","nodeType":"YulIdentifier","src":"35403:5:88"},"nativeSrc":"35403:26:88","nodeType":"YulFunctionCall","src":"35403:26:88"}],"functionName":{"name":"sstore","nativeSrc":"35388:6:88","nodeType":"YulIdentifier","src":"35388:6:88"},"nativeSrc":"35388:42:88","nodeType":"YulFunctionCall","src":"35388:42:88"},"nativeSrc":"35388:42:88","nodeType":"YulExpressionStatement","src":"35388:42:88"},{"nativeSrc":"35447:24:88","nodeType":"YulAssignment","src":"35447:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"35461:6:88","nodeType":"YulIdentifier","src":"35461:6:88"},{"kind":"number","nativeSrc":"35469:1:88","nodeType":"YulLiteral","src":"35469:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35457:3:88","nodeType":"YulIdentifier","src":"35457:3:88"},"nativeSrc":"35457:14:88","nodeType":"YulFunctionCall","src":"35457:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"35447:6:88","nodeType":"YulIdentifier","src":"35447:6:88"}]},{"nativeSrc":"35488:33:88","nodeType":"YulAssignment","src":"35488:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"35505:9:88","nodeType":"YulIdentifier","src":"35505:9:88"},{"kind":"number","nativeSrc":"35516:4:88","nodeType":"YulLiteral","src":"35516:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35501:3:88","nodeType":"YulIdentifier","src":"35501:3:88"},"nativeSrc":"35501:20:88","nodeType":"YulFunctionCall","src":"35501:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"35488:9:88","nodeType":"YulIdentifier","src":"35488:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"35324:1:88","nodeType":"YulIdentifier","src":"35324:1:88"},{"name":"loopEnd","nativeSrc":"35327:7:88","nodeType":"YulIdentifier","src":"35327:7:88"}],"functionName":{"name":"lt","nativeSrc":"35321:2:88","nodeType":"YulIdentifier","src":"35321:2:88"},"nativeSrc":"35321:14:88","nodeType":"YulFunctionCall","src":"35321:14:88"},"nativeSrc":"35313:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"35336:21:88","nodeType":"YulBlock","src":"35336:21:88","statements":[{"nativeSrc":"35338:17:88","nodeType":"YulAssignment","src":"35338:17:88","value":{"arguments":[{"name":"i","nativeSrc":"35347:1:88","nodeType":"YulIdentifier","src":"35347:1:88"},{"kind":"number","nativeSrc":"35350:4:88","nodeType":"YulLiteral","src":"35350:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35343:3:88","nodeType":"YulIdentifier","src":"35343:3:88"},"nativeSrc":"35343:12:88","nodeType":"YulFunctionCall","src":"35343:12:88"},"variableNames":[{"name":"i","nativeSrc":"35338:1:88","nodeType":"YulIdentifier","src":"35338:1:88"}]}]},"pre":{"nativeSrc":"35317:3:88","nodeType":"YulBlock","src":"35317:3:88","statements":[]},"src":"35313:222:88"},{"body":{"nativeSrc":"35583:166:88","nodeType":"YulBlock","src":"35583:166:88","statements":[{"nativeSrc":"35601:43:88","nodeType":"YulVariableDeclaration","src":"35601:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"35628:3:88","nodeType":"YulIdentifier","src":"35628:3:88"},{"name":"srcOffset","nativeSrc":"35633:9:88","nodeType":"YulIdentifier","src":"35633:9:88"}],"functionName":{"name":"add","nativeSrc":"35624:3:88","nodeType":"YulIdentifier","src":"35624:3:88"},"nativeSrc":"35624:19:88","nodeType":"YulFunctionCall","src":"35624:19:88"}],"functionName":{"name":"mload","nativeSrc":"35618:5:88","nodeType":"YulIdentifier","src":"35618:5:88"},"nativeSrc":"35618:26:88","nodeType":"YulFunctionCall","src":"35618:26:88"},"variables":[{"name":"lastValue","nativeSrc":"35605:9:88","nodeType":"YulTypedName","src":"35605:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"35668:6:88","nodeType":"YulIdentifier","src":"35668:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"35680:9:88","nodeType":"YulIdentifier","src":"35680:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35707:1:88","nodeType":"YulLiteral","src":"35707:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"35710:6:88","nodeType":"YulIdentifier","src":"35710:6:88"}],"functionName":{"name":"shl","nativeSrc":"35703:3:88","nodeType":"YulIdentifier","src":"35703:3:88"},"nativeSrc":"35703:14:88","nodeType":"YulFunctionCall","src":"35703:14:88"},{"kind":"number","nativeSrc":"35719:3:88","nodeType":"YulLiteral","src":"35719:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"35699:3:88","nodeType":"YulIdentifier","src":"35699:3:88"},"nativeSrc":"35699:24:88","nodeType":"YulFunctionCall","src":"35699:24:88"},{"arguments":[{"kind":"number","nativeSrc":"35729:1:88","nodeType":"YulLiteral","src":"35729:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"35725:3:88","nodeType":"YulIdentifier","src":"35725:3:88"},"nativeSrc":"35725:6:88","nodeType":"YulFunctionCall","src":"35725:6:88"}],"functionName":{"name":"shr","nativeSrc":"35695:3:88","nodeType":"YulIdentifier","src":"35695:3:88"},"nativeSrc":"35695:37:88","nodeType":"YulFunctionCall","src":"35695:37:88"}],"functionName":{"name":"not","nativeSrc":"35691:3:88","nodeType":"YulIdentifier","src":"35691:3:88"},"nativeSrc":"35691:42:88","nodeType":"YulFunctionCall","src":"35691:42:88"}],"functionName":{"name":"and","nativeSrc":"35676:3:88","nodeType":"YulIdentifier","src":"35676:3:88"},"nativeSrc":"35676:58:88","nodeType":"YulFunctionCall","src":"35676:58:88"}],"functionName":{"name":"sstore","nativeSrc":"35661:6:88","nodeType":"YulIdentifier","src":"35661:6:88"},"nativeSrc":"35661:74:88","nodeType":"YulFunctionCall","src":"35661:74:88"},"nativeSrc":"35661:74:88","nodeType":"YulExpressionStatement","src":"35661:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"35554:7:88","nodeType":"YulIdentifier","src":"35554:7:88"},{"name":"newLen","nativeSrc":"35563:6:88","nodeType":"YulIdentifier","src":"35563:6:88"}],"functionName":{"name":"lt","nativeSrc":"35551:2:88","nodeType":"YulIdentifier","src":"35551:2:88"},"nativeSrc":"35551:19:88","nodeType":"YulFunctionCall","src":"35551:19:88"},"nativeSrc":"35548:201:88","nodeType":"YulIf","src":"35548:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"35769:4:88","nodeType":"YulIdentifier","src":"35769:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35783:1:88","nodeType":"YulLiteral","src":"35783:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"35786:6:88","nodeType":"YulIdentifier","src":"35786:6:88"}],"functionName":{"name":"shl","nativeSrc":"35779:3:88","nodeType":"YulIdentifier","src":"35779:3:88"},"nativeSrc":"35779:14:88","nodeType":"YulFunctionCall","src":"35779:14:88"},{"kind":"number","nativeSrc":"35795:1:88","nodeType":"YulLiteral","src":"35795:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35775:3:88","nodeType":"YulIdentifier","src":"35775:3:88"},"nativeSrc":"35775:22:88","nodeType":"YulFunctionCall","src":"35775:22:88"}],"functionName":{"name":"sstore","nativeSrc":"35762:6:88","nodeType":"YulIdentifier","src":"35762:6:88"},"nativeSrc":"35762:36:88","nodeType":"YulFunctionCall","src":"35762:36:88"},"nativeSrc":"35762:36:88","nodeType":"YulExpressionStatement","src":"35762:36:88"}]},"nativeSrc":"35159:649:88","nodeType":"YulCase","src":"35159:649:88","value":{"kind":"number","nativeSrc":"35164:1:88","nodeType":"YulLiteral","src":"35164:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"35825:234:88","nodeType":"YulBlock","src":"35825:234:88","statements":[{"nativeSrc":"35839:14:88","nodeType":"YulVariableDeclaration","src":"35839:14:88","value":{"kind":"number","nativeSrc":"35852:1:88","nodeType":"YulLiteral","src":"35852:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"35843:5:88","nodeType":"YulTypedName","src":"35843:5:88","type":""}]},{"body":{"nativeSrc":"35888:67:88","nodeType":"YulBlock","src":"35888:67:88","statements":[{"nativeSrc":"35906:35:88","nodeType":"YulAssignment","src":"35906:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"35925:3:88","nodeType":"YulIdentifier","src":"35925:3:88"},{"name":"srcOffset","nativeSrc":"35930:9:88","nodeType":"YulIdentifier","src":"35930:9:88"}],"functionName":{"name":"add","nativeSrc":"35921:3:88","nodeType":"YulIdentifier","src":"35921:3:88"},"nativeSrc":"35921:19:88","nodeType":"YulFunctionCall","src":"35921:19:88"}],"functionName":{"name":"mload","nativeSrc":"35915:5:88","nodeType":"YulIdentifier","src":"35915:5:88"},"nativeSrc":"35915:26:88","nodeType":"YulFunctionCall","src":"35915:26:88"},"variableNames":[{"name":"value","nativeSrc":"35906:5:88","nodeType":"YulIdentifier","src":"35906:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"35869:6:88","nodeType":"YulIdentifier","src":"35869:6:88"},"nativeSrc":"35866:89:88","nodeType":"YulIf","src":"35866:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"35975:4:88","nodeType":"YulIdentifier","src":"35975:4:88"},{"arguments":[{"name":"value","nativeSrc":"36034:5:88","nodeType":"YulIdentifier","src":"36034:5:88"},{"name":"newLen","nativeSrc":"36041:6:88","nodeType":"YulIdentifier","src":"36041:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"35981:52:88","nodeType":"YulIdentifier","src":"35981:52:88"},"nativeSrc":"35981:67:88","nodeType":"YulFunctionCall","src":"35981:67:88"}],"functionName":{"name":"sstore","nativeSrc":"35968:6:88","nodeType":"YulIdentifier","src":"35968:6:88"},"nativeSrc":"35968:81:88","nodeType":"YulFunctionCall","src":"35968:81:88"},"nativeSrc":"35968:81:88","nodeType":"YulExpressionStatement","src":"35968:81:88"}]},"nativeSrc":"35817:242:88","nodeType":"YulCase","src":"35817:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"35139:6:88","nodeType":"YulIdentifier","src":"35139:6:88"},{"kind":"number","nativeSrc":"35147:2:88","nodeType":"YulLiteral","src":"35147:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"35136:2:88","nodeType":"YulIdentifier","src":"35136:2:88"},"nativeSrc":"35136:14:88","nodeType":"YulFunctionCall","src":"35136:14:88"},"nativeSrc":"35129:930:88","nodeType":"YulSwitch","src":"35129:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"34766:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"34847:4:88","nodeType":"YulTypedName","src":"34847:4:88","type":""},{"name":"src","nativeSrc":"34853:3:88","nodeType":"YulTypedName","src":"34853:3:88","type":""}],"src":"34766:1299:88"},{"body":{"nativeSrc":"36244:182:88","nodeType":"YulBlock","src":"36244:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36261:9:88","nodeType":"YulIdentifier","src":"36261:9:88"},{"kind":"number","nativeSrc":"36272:2:88","nodeType":"YulLiteral","src":"36272:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36254:6:88","nodeType":"YulIdentifier","src":"36254:6:88"},"nativeSrc":"36254:21:88","nodeType":"YulFunctionCall","src":"36254:21:88"},"nativeSrc":"36254:21:88","nodeType":"YulExpressionStatement","src":"36254:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36295:9:88","nodeType":"YulIdentifier","src":"36295:9:88"},{"kind":"number","nativeSrc":"36306:2:88","nodeType":"YulLiteral","src":"36306:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36291:3:88","nodeType":"YulIdentifier","src":"36291:3:88"},"nativeSrc":"36291:18:88","nodeType":"YulFunctionCall","src":"36291:18:88"},{"kind":"number","nativeSrc":"36311:2:88","nodeType":"YulLiteral","src":"36311:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36284:6:88","nodeType":"YulIdentifier","src":"36284:6:88"},"nativeSrc":"36284:30:88","nodeType":"YulFunctionCall","src":"36284:30:88"},"nativeSrc":"36284:30:88","nodeType":"YulExpressionStatement","src":"36284:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36334:9:88","nodeType":"YulIdentifier","src":"36334:9:88"},{"kind":"number","nativeSrc":"36345:2:88","nodeType":"YulLiteral","src":"36345:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36330:3:88","nodeType":"YulIdentifier","src":"36330:3:88"},"nativeSrc":"36330:18:88","nodeType":"YulFunctionCall","src":"36330:18:88"},{"hexValue":"45787069726174696f6e206d75737420626520696e2074686520667574757265","kind":"string","nativeSrc":"36350:34:88","nodeType":"YulLiteral","src":"36350:34:88","type":"","value":"Expiration must be in the future"}],"functionName":{"name":"mstore","nativeSrc":"36323:6:88","nodeType":"YulIdentifier","src":"36323:6:88"},"nativeSrc":"36323:62:88","nodeType":"YulFunctionCall","src":"36323:62:88"},"nativeSrc":"36323:62:88","nodeType":"YulExpressionStatement","src":"36323:62:88"},{"nativeSrc":"36394:26:88","nodeType":"YulAssignment","src":"36394:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36406:9:88","nodeType":"YulIdentifier","src":"36406:9:88"},{"kind":"number","nativeSrc":"36417:2:88","nodeType":"YulLiteral","src":"36417:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36402:3:88","nodeType":"YulIdentifier","src":"36402:3:88"},"nativeSrc":"36402:18:88","nodeType":"YulFunctionCall","src":"36402:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36394:4:88","nodeType":"YulIdentifier","src":"36394:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36070:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36221:9:88","nodeType":"YulTypedName","src":"36221:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36235:4:88","nodeType":"YulTypedName","src":"36235:4:88","type":""}],"src":"36070:356:88"},{"body":{"nativeSrc":"36605:180:88","nodeType":"YulBlock","src":"36605:180:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36622:9:88","nodeType":"YulIdentifier","src":"36622:9:88"},{"kind":"number","nativeSrc":"36633:2:88","nodeType":"YulLiteral","src":"36633:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36615:6:88","nodeType":"YulIdentifier","src":"36615:6:88"},"nativeSrc":"36615:21:88","nodeType":"YulFunctionCall","src":"36615:21:88"},"nativeSrc":"36615:21:88","nodeType":"YulExpressionStatement","src":"36615:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36656:9:88","nodeType":"YulIdentifier","src":"36656:9:88"},{"kind":"number","nativeSrc":"36667:2:88","nodeType":"YulLiteral","src":"36667:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36652:3:88","nodeType":"YulIdentifier","src":"36652:3:88"},"nativeSrc":"36652:18:88","nodeType":"YulFunctionCall","src":"36652:18:88"},{"kind":"number","nativeSrc":"36672:2:88","nodeType":"YulLiteral","src":"36672:2:88","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"36645:6:88","nodeType":"YulIdentifier","src":"36645:6:88"},"nativeSrc":"36645:30:88","nodeType":"YulFunctionCall","src":"36645:30:88"},"nativeSrc":"36645:30:88","nodeType":"YulExpressionStatement","src":"36645:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36695:9:88","nodeType":"YulIdentifier","src":"36695:9:88"},{"kind":"number","nativeSrc":"36706:2:88","nodeType":"YulLiteral","src":"36706:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36691:3:88","nodeType":"YulIdentifier","src":"36691:3:88"},"nativeSrc":"36691:18:88","nodeType":"YulFunctionCall","src":"36691:18:88"},{"hexValue":"437573746f6d65722063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"36711:32:88","nodeType":"YulLiteral","src":"36711:32:88","type":"","value":"Customer can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"36684:6:88","nodeType":"YulIdentifier","src":"36684:6:88"},"nativeSrc":"36684:60:88","nodeType":"YulFunctionCall","src":"36684:60:88"},"nativeSrc":"36684:60:88","nodeType":"YulExpressionStatement","src":"36684:60:88"},{"nativeSrc":"36753:26:88","nodeType":"YulAssignment","src":"36753:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"36765:9:88","nodeType":"YulIdentifier","src":"36765:9:88"},{"kind":"number","nativeSrc":"36776:2:88","nodeType":"YulLiteral","src":"36776:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36761:3:88","nodeType":"YulIdentifier","src":"36761:3:88"},"nativeSrc":"36761:18:88","nodeType":"YulFunctionCall","src":"36761:18:88"},"variableNames":[{"name":"tail","nativeSrc":"36753:4:88","nodeType":"YulIdentifier","src":"36753:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36431:354:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36582:9:88","nodeType":"YulTypedName","src":"36582:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36596:4:88","nodeType":"YulTypedName","src":"36596:4:88","type":""}],"src":"36431:354:88"},{"body":{"nativeSrc":"36964:228:88","nodeType":"YulBlock","src":"36964:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36981:9:88","nodeType":"YulIdentifier","src":"36981:9:88"},{"kind":"number","nativeSrc":"36992:2:88","nodeType":"YulLiteral","src":"36992:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36974:6:88","nodeType":"YulIdentifier","src":"36974:6:88"},"nativeSrc":"36974:21:88","nodeType":"YulFunctionCall","src":"36974:21:88"},"nativeSrc":"36974:21:88","nodeType":"YulExpressionStatement","src":"36974:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37015:9:88","nodeType":"YulIdentifier","src":"37015:9:88"},{"kind":"number","nativeSrc":"37026:2:88","nodeType":"YulLiteral","src":"37026:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37011:3:88","nodeType":"YulIdentifier","src":"37011:3:88"},"nativeSrc":"37011:18:88","nodeType":"YulFunctionCall","src":"37011:18:88"},{"kind":"number","nativeSrc":"37031:2:88","nodeType":"YulLiteral","src":"37031:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"37004:6:88","nodeType":"YulIdentifier","src":"37004:6:88"},"nativeSrc":"37004:30:88","nodeType":"YulFunctionCall","src":"37004:30:88"},"nativeSrc":"37004:30:88","nodeType":"YulExpressionStatement","src":"37004:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37054:9:88","nodeType":"YulIdentifier","src":"37054:9:88"},{"kind":"number","nativeSrc":"37065:2:88","nodeType":"YulLiteral","src":"37065:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37050:3:88","nodeType":"YulIdentifier","src":"37050:3:88"},"nativeSrc":"37050:18:88","nodeType":"YulFunctionCall","src":"37050:18:88"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nativeSrc":"37070:34:88","nodeType":"YulLiteral","src":"37070:34:88","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nativeSrc":"37043:6:88","nodeType":"YulIdentifier","src":"37043:6:88"},"nativeSrc":"37043:62:88","nodeType":"YulFunctionCall","src":"37043:62:88"},"nativeSrc":"37043:62:88","nodeType":"YulExpressionStatement","src":"37043:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37125:9:88","nodeType":"YulIdentifier","src":"37125:9:88"},{"kind":"number","nativeSrc":"37136:2:88","nodeType":"YulLiteral","src":"37136:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37121:3:88","nodeType":"YulIdentifier","src":"37121:3:88"},"nativeSrc":"37121:18:88","nodeType":"YulFunctionCall","src":"37121:18:88"},{"hexValue":"322062697473","kind":"string","nativeSrc":"37141:8:88","nodeType":"YulLiteral","src":"37141:8:88","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nativeSrc":"37114:6:88","nodeType":"YulIdentifier","src":"37114:6:88"},"nativeSrc":"37114:36:88","nodeType":"YulFunctionCall","src":"37114:36:88"},"nativeSrc":"37114:36:88","nodeType":"YulExpressionStatement","src":"37114:36:88"},{"nativeSrc":"37159:27:88","nodeType":"YulAssignment","src":"37159:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37171:9:88","nodeType":"YulIdentifier","src":"37171:9:88"},{"kind":"number","nativeSrc":"37182:3:88","nodeType":"YulLiteral","src":"37182:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37167:3:88","nodeType":"YulIdentifier","src":"37167:3:88"},"nativeSrc":"37167:19:88","nodeType":"YulFunctionCall","src":"37167:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37159:4:88","nodeType":"YulIdentifier","src":"37159:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36790:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36941:9:88","nodeType":"YulTypedName","src":"36941:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36955:4:88","nodeType":"YulTypedName","src":"36955:4:88","type":""}],"src":"36790:402:88"},{"body":{"nativeSrc":"37299:170:88","nodeType":"YulBlock","src":"37299:170:88","statements":[{"body":{"nativeSrc":"37345:16:88","nodeType":"YulBlock","src":"37345:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37354:1:88","nodeType":"YulLiteral","src":"37354:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"37357:1:88","nodeType":"YulLiteral","src":"37357:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"37347:6:88","nodeType":"YulIdentifier","src":"37347:6:88"},"nativeSrc":"37347:12:88","nodeType":"YulFunctionCall","src":"37347:12:88"},"nativeSrc":"37347:12:88","nodeType":"YulExpressionStatement","src":"37347:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"37320:7:88","nodeType":"YulIdentifier","src":"37320:7:88"},{"name":"headStart","nativeSrc":"37329:9:88","nodeType":"YulIdentifier","src":"37329:9:88"}],"functionName":{"name":"sub","nativeSrc":"37316:3:88","nodeType":"YulIdentifier","src":"37316:3:88"},"nativeSrc":"37316:23:88","nodeType":"YulFunctionCall","src":"37316:23:88"},{"kind":"number","nativeSrc":"37341:2:88","nodeType":"YulLiteral","src":"37341:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"37312:3:88","nodeType":"YulIdentifier","src":"37312:3:88"},"nativeSrc":"37312:32:88","nodeType":"YulFunctionCall","src":"37312:32:88"},"nativeSrc":"37309:52:88","nodeType":"YulIf","src":"37309:52:88"},{"nativeSrc":"37370:29:88","nodeType":"YulVariableDeclaration","src":"37370:29:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37389:9:88","nodeType":"YulIdentifier","src":"37389:9:88"}],"functionName":{"name":"mload","nativeSrc":"37383:5:88","nodeType":"YulIdentifier","src":"37383:5:88"},"nativeSrc":"37383:16:88","nodeType":"YulFunctionCall","src":"37383:16:88"},"variables":[{"name":"value","nativeSrc":"37374:5:88","nodeType":"YulTypedName","src":"37374:5:88","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"37433:5:88","nodeType":"YulIdentifier","src":"37433:5:88"}],"functionName":{"name":"validator_revert_address","nativeSrc":"37408:24:88","nodeType":"YulIdentifier","src":"37408:24:88"},"nativeSrc":"37408:31:88","nodeType":"YulFunctionCall","src":"37408:31:88"},"nativeSrc":"37408:31:88","nodeType":"YulExpressionStatement","src":"37408:31:88"},{"nativeSrc":"37448:15:88","nodeType":"YulAssignment","src":"37448:15:88","value":{"name":"value","nativeSrc":"37458:5:88","nodeType":"YulIdentifier","src":"37458:5:88"},"variableNames":[{"name":"value0","nativeSrc":"37448:6:88","nodeType":"YulIdentifier","src":"37448:6:88"}]}]},"name":"abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory","nativeSrc":"37197:272:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37265:9:88","nodeType":"YulTypedName","src":"37265:9:88","type":""},{"name":"dataEnd","nativeSrc":"37276:7:88","nodeType":"YulTypedName","src":"37276:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"37288:6:88","nodeType":"YulTypedName","src":"37288:6:88","type":""}],"src":"37197:272:88"},{"body":{"nativeSrc":"37648:225:88","nodeType":"YulBlock","src":"37648:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37665:9:88","nodeType":"YulIdentifier","src":"37665:9:88"},{"kind":"number","nativeSrc":"37676:2:88","nodeType":"YulLiteral","src":"37676:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37658:6:88","nodeType":"YulIdentifier","src":"37658:6:88"},"nativeSrc":"37658:21:88","nodeType":"YulFunctionCall","src":"37658:21:88"},"nativeSrc":"37658:21:88","nodeType":"YulExpressionStatement","src":"37658:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37699:9:88","nodeType":"YulIdentifier","src":"37699:9:88"},{"kind":"number","nativeSrc":"37710:2:88","nodeType":"YulLiteral","src":"37710:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37695:3:88","nodeType":"YulIdentifier","src":"37695:3:88"},"nativeSrc":"37695:18:88","nodeType":"YulFunctionCall","src":"37695:18:88"},{"kind":"number","nativeSrc":"37715:2:88","nodeType":"YulLiteral","src":"37715:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"37688:6:88","nodeType":"YulIdentifier","src":"37688:6:88"},"nativeSrc":"37688:30:88","nodeType":"YulFunctionCall","src":"37688:30:88"},"nativeSrc":"37688:30:88","nodeType":"YulExpressionStatement","src":"37688:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37738:9:88","nodeType":"YulIdentifier","src":"37738:9:88"},{"kind":"number","nativeSrc":"37749:2:88","nodeType":"YulLiteral","src":"37749:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37734:3:88","nodeType":"YulIdentifier","src":"37734:3:88"},"nativeSrc":"37734:18:88","nodeType":"YulFunctionCall","src":"37734:18:88"},{"hexValue":"56616c69646174696f6e3a206a72436f6c6c526174696f206d75737420626520","kind":"string","nativeSrc":"37754:34:88","nodeType":"YulLiteral","src":"37754:34:88","type":"","value":"Validation: jrCollRatio must be "}],"functionName":{"name":"mstore","nativeSrc":"37727:6:88","nodeType":"YulIdentifier","src":"37727:6:88"},"nativeSrc":"37727:62:88","nodeType":"YulFunctionCall","src":"37727:62:88"},"nativeSrc":"37727:62:88","nodeType":"YulExpressionStatement","src":"37727:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37809:9:88","nodeType":"YulIdentifier","src":"37809:9:88"},{"kind":"number","nativeSrc":"37820:2:88","nodeType":"YulLiteral","src":"37820:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"37805:3:88","nodeType":"YulIdentifier","src":"37805:3:88"},"nativeSrc":"37805:18:88","nodeType":"YulFunctionCall","src":"37805:18:88"},{"hexValue":"3c3d31","kind":"string","nativeSrc":"37825:5:88","nodeType":"YulLiteral","src":"37825:5:88","type":"","value":"<=1"}],"functionName":{"name":"mstore","nativeSrc":"37798:6:88","nodeType":"YulIdentifier","src":"37798:6:88"},"nativeSrc":"37798:33:88","nodeType":"YulFunctionCall","src":"37798:33:88"},"nativeSrc":"37798:33:88","nodeType":"YulExpressionStatement","src":"37798:33:88"},{"nativeSrc":"37840:27:88","nodeType":"YulAssignment","src":"37840:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"37852:9:88","nodeType":"YulIdentifier","src":"37852:9:88"},{"kind":"number","nativeSrc":"37863:3:88","nodeType":"YulLiteral","src":"37863:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"37848:3:88","nodeType":"YulIdentifier","src":"37848:3:88"},"nativeSrc":"37848:19:88","nodeType":"YulFunctionCall","src":"37848:19:88"},"variableNames":[{"name":"tail","nativeSrc":"37840:4:88","nodeType":"YulIdentifier","src":"37840:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37474:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37625:9:88","nodeType":"YulTypedName","src":"37625:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37639:4:88","nodeType":"YulTypedName","src":"37639:4:88","type":""}],"src":"37474:399:88"},{"body":{"nativeSrc":"38052:223:88","nodeType":"YulBlock","src":"38052:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38069:9:88","nodeType":"YulIdentifier","src":"38069:9:88"},{"kind":"number","nativeSrc":"38080:2:88","nodeType":"YulLiteral","src":"38080:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38062:6:88","nodeType":"YulIdentifier","src":"38062:6:88"},"nativeSrc":"38062:21:88","nodeType":"YulFunctionCall","src":"38062:21:88"},"nativeSrc":"38062:21:88","nodeType":"YulExpressionStatement","src":"38062:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38103:9:88","nodeType":"YulIdentifier","src":"38103:9:88"},{"kind":"number","nativeSrc":"38114:2:88","nodeType":"YulLiteral","src":"38114:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38099:3:88","nodeType":"YulIdentifier","src":"38099:3:88"},"nativeSrc":"38099:18:88","nodeType":"YulFunctionCall","src":"38099:18:88"},{"kind":"number","nativeSrc":"38119:2:88","nodeType":"YulLiteral","src":"38119:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"38092:6:88","nodeType":"YulIdentifier","src":"38092:6:88"},"nativeSrc":"38092:30:88","nodeType":"YulFunctionCall","src":"38092:30:88"},"nativeSrc":"38092:30:88","nodeType":"YulExpressionStatement","src":"38092:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38142:9:88","nodeType":"YulIdentifier","src":"38142:9:88"},{"kind":"number","nativeSrc":"38153:2:88","nodeType":"YulLiteral","src":"38153:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38138:3:88","nodeType":"YulIdentifier","src":"38138:3:88"},"nativeSrc":"38138:18:88","nodeType":"YulFunctionCall","src":"38138:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d","kind":"string","nativeSrc":"38158:34:88","nodeType":"YulLiteral","src":"38158:34:88","type":"","value":"Validation: collRatio must be <="}],"functionName":{"name":"mstore","nativeSrc":"38131:6:88","nodeType":"YulIdentifier","src":"38131:6:88"},"nativeSrc":"38131:62:88","nodeType":"YulFunctionCall","src":"38131:62:88"},"nativeSrc":"38131:62:88","nodeType":"YulExpressionStatement","src":"38131:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38213:9:88","nodeType":"YulIdentifier","src":"38213:9:88"},{"kind":"number","nativeSrc":"38224:2:88","nodeType":"YulLiteral","src":"38224:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38209:3:88","nodeType":"YulIdentifier","src":"38209:3:88"},"nativeSrc":"38209:18:88","nodeType":"YulFunctionCall","src":"38209:18:88"},{"hexValue":"31","kind":"string","nativeSrc":"38229:3:88","nodeType":"YulLiteral","src":"38229:3:88","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"38202:6:88","nodeType":"YulIdentifier","src":"38202:6:88"},"nativeSrc":"38202:31:88","nodeType":"YulFunctionCall","src":"38202:31:88"},"nativeSrc":"38202:31:88","nodeType":"YulExpressionStatement","src":"38202:31:88"},{"nativeSrc":"38242:27:88","nodeType":"YulAssignment","src":"38242:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38254:9:88","nodeType":"YulIdentifier","src":"38254:9:88"},{"kind":"number","nativeSrc":"38265:3:88","nodeType":"YulLiteral","src":"38265:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38250:3:88","nodeType":"YulIdentifier","src":"38250:3:88"},"nativeSrc":"38250:19:88","nodeType":"YulFunctionCall","src":"38250:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38242:4:88","nodeType":"YulIdentifier","src":"38242:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37878:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38029:9:88","nodeType":"YulTypedName","src":"38029:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38043:4:88","nodeType":"YulTypedName","src":"38043:4:88","type":""}],"src":"37878:397:88"},{"body":{"nativeSrc":"38454:226:88","nodeType":"YulBlock","src":"38454:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38471:9:88","nodeType":"YulIdentifier","src":"38471:9:88"},{"kind":"number","nativeSrc":"38482:2:88","nodeType":"YulLiteral","src":"38482:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38464:6:88","nodeType":"YulIdentifier","src":"38464:6:88"},"nativeSrc":"38464:21:88","nodeType":"YulFunctionCall","src":"38464:21:88"},"nativeSrc":"38464:21:88","nodeType":"YulExpressionStatement","src":"38464:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38505:9:88","nodeType":"YulIdentifier","src":"38505:9:88"},{"kind":"number","nativeSrc":"38516:2:88","nodeType":"YulLiteral","src":"38516:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38501:3:88","nodeType":"YulIdentifier","src":"38501:3:88"},"nativeSrc":"38501:18:88","nodeType":"YulFunctionCall","src":"38501:18:88"},{"kind":"number","nativeSrc":"38521:2:88","nodeType":"YulLiteral","src":"38521:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"38494:6:88","nodeType":"YulIdentifier","src":"38494:6:88"},"nativeSrc":"38494:30:88","nodeType":"YulFunctionCall","src":"38494:30:88"},"nativeSrc":"38494:30:88","nodeType":"YulExpressionStatement","src":"38494:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38544:9:88","nodeType":"YulIdentifier","src":"38544:9:88"},{"kind":"number","nativeSrc":"38555:2:88","nodeType":"YulLiteral","src":"38555:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38540:3:88","nodeType":"YulIdentifier","src":"38540:3:88"},"nativeSrc":"38540:18:88","nodeType":"YulFunctionCall","src":"38540:18:88"},{"hexValue":"56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c52","kind":"string","nativeSrc":"38560:34:88","nodeType":"YulLiteral","src":"38560:34:88","type":"","value":"Validation: collRatio >= jrCollR"}],"functionName":{"name":"mstore","nativeSrc":"38533:6:88","nodeType":"YulIdentifier","src":"38533:6:88"},"nativeSrc":"38533:62:88","nodeType":"YulFunctionCall","src":"38533:62:88"},"nativeSrc":"38533:62:88","nodeType":"YulExpressionStatement","src":"38533:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38615:9:88","nodeType":"YulIdentifier","src":"38615:9:88"},{"kind":"number","nativeSrc":"38626:2:88","nodeType":"YulLiteral","src":"38626:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38611:3:88","nodeType":"YulIdentifier","src":"38611:3:88"},"nativeSrc":"38611:18:88","nodeType":"YulFunctionCall","src":"38611:18:88"},{"hexValue":"6174696f","kind":"string","nativeSrc":"38631:6:88","nodeType":"YulLiteral","src":"38631:6:88","type":"","value":"atio"}],"functionName":{"name":"mstore","nativeSrc":"38604:6:88","nodeType":"YulIdentifier","src":"38604:6:88"},"nativeSrc":"38604:34:88","nodeType":"YulFunctionCall","src":"38604:34:88"},"nativeSrc":"38604:34:88","nodeType":"YulExpressionStatement","src":"38604:34:88"},{"nativeSrc":"38647:27:88","nodeType":"YulAssignment","src":"38647:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"38659:9:88","nodeType":"YulIdentifier","src":"38659:9:88"},{"kind":"number","nativeSrc":"38670:3:88","nodeType":"YulLiteral","src":"38670:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38655:3:88","nodeType":"YulIdentifier","src":"38655:3:88"},"nativeSrc":"38655:19:88","nodeType":"YulFunctionCall","src":"38655:19:88"},"variableNames":[{"name":"tail","nativeSrc":"38647:4:88","nodeType":"YulIdentifier","src":"38647:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38280:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38431:9:88","nodeType":"YulTypedName","src":"38431:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38445:4:88","nodeType":"YulTypedName","src":"38445:4:88","type":""}],"src":"38280:400:88"},{"body":{"nativeSrc":"38859:182:88","nodeType":"YulBlock","src":"38859:182:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38876:9:88","nodeType":"YulIdentifier","src":"38876:9:88"},{"kind":"number","nativeSrc":"38887:2:88","nodeType":"YulLiteral","src":"38887:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38869:6:88","nodeType":"YulIdentifier","src":"38869:6:88"},"nativeSrc":"38869:21:88","nodeType":"YulFunctionCall","src":"38869:21:88"},"nativeSrc":"38869:21:88","nodeType":"YulExpressionStatement","src":"38869:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38910:9:88","nodeType":"YulIdentifier","src":"38910:9:88"},{"kind":"number","nativeSrc":"38921:2:88","nodeType":"YulLiteral","src":"38921:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38906:3:88","nodeType":"YulIdentifier","src":"38906:3:88"},"nativeSrc":"38906:18:88","nodeType":"YulFunctionCall","src":"38906:18:88"},{"kind":"number","nativeSrc":"38926:2:88","nodeType":"YulLiteral","src":"38926:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38899:6:88","nodeType":"YulIdentifier","src":"38899:6:88"},"nativeSrc":"38899:30:88","nodeType":"YulFunctionCall","src":"38899:30:88"},"nativeSrc":"38899:30:88","nodeType":"YulExpressionStatement","src":"38899:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38949:9:88","nodeType":"YulIdentifier","src":"38949:9:88"},{"kind":"number","nativeSrc":"38960:2:88","nodeType":"YulLiteral","src":"38960:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38945:3:88","nodeType":"YulIdentifier","src":"38945:3:88"},"nativeSrc":"38945:18:88","nodeType":"YulFunctionCall","src":"38945:18:88"},{"hexValue":"56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d","kind":"string","nativeSrc":"38965:34:88","nodeType":"YulLiteral","src":"38965:34:88","type":"","value":"Validation: moc must be [0.5, 4]"}],"functionName":{"name":"mstore","nativeSrc":"38938:6:88","nodeType":"YulIdentifier","src":"38938:6:88"},"nativeSrc":"38938:62:88","nodeType":"YulFunctionCall","src":"38938:62:88"},"nativeSrc":"38938:62:88","nodeType":"YulExpressionStatement","src":"38938:62:88"},{"nativeSrc":"39009:26:88","nodeType":"YulAssignment","src":"39009:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39021:9:88","nodeType":"YulIdentifier","src":"39021:9:88"},{"kind":"number","nativeSrc":"39032:2:88","nodeType":"YulLiteral","src":"39032:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39017:3:88","nodeType":"YulIdentifier","src":"39017:3:88"},"nativeSrc":"39017:18:88","nodeType":"YulFunctionCall","src":"39017:18:88"},"variableNames":[{"name":"tail","nativeSrc":"39009:4:88","nodeType":"YulIdentifier","src":"39009:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38685:356:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38836:9:88","nodeType":"YulTypedName","src":"38836:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38850:4:88","nodeType":"YulTypedName","src":"38850:4:88","type":""}],"src":"38685:356:88"},{"body":{"nativeSrc":"39220:226:88","nodeType":"YulBlock","src":"39220:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39237:9:88","nodeType":"YulIdentifier","src":"39237:9:88"},{"kind":"number","nativeSrc":"39248:2:88","nodeType":"YulLiteral","src":"39248:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39230:6:88","nodeType":"YulIdentifier","src":"39230:6:88"},"nativeSrc":"39230:21:88","nodeType":"YulFunctionCall","src":"39230:21:88"},"nativeSrc":"39230:21:88","nodeType":"YulExpressionStatement","src":"39230:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39271:9:88","nodeType":"YulIdentifier","src":"39271:9:88"},{"kind":"number","nativeSrc":"39282:2:88","nodeType":"YulLiteral","src":"39282:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39267:3:88","nodeType":"YulIdentifier","src":"39267:3:88"},"nativeSrc":"39267:18:88","nodeType":"YulFunctionCall","src":"39267:18:88"},{"kind":"number","nativeSrc":"39287:2:88","nodeType":"YulLiteral","src":"39287:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"39260:6:88","nodeType":"YulIdentifier","src":"39260:6:88"},"nativeSrc":"39260:30:88","nodeType":"YulFunctionCall","src":"39260:30:88"},"nativeSrc":"39260:30:88","nodeType":"YulExpressionStatement","src":"39260:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39310:9:88","nodeType":"YulIdentifier","src":"39310:9:88"},{"kind":"number","nativeSrc":"39321:2:88","nodeType":"YulLiteral","src":"39321:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39306:3:88","nodeType":"YulIdentifier","src":"39306:3:88"},"nativeSrc":"39306:18:88","nodeType":"YulFunctionCall","src":"39306:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f5070466565206d75737420626520","kind":"string","nativeSrc":"39326:34:88","nodeType":"YulLiteral","src":"39326:34:88","type":"","value":"Validation: ensuroPpFee must be "}],"functionName":{"name":"mstore","nativeSrc":"39299:6:88","nodeType":"YulIdentifier","src":"39299:6:88"},"nativeSrc":"39299:62:88","nodeType":"YulFunctionCall","src":"39299:62:88"},"nativeSrc":"39299:62:88","nodeType":"YulExpressionStatement","src":"39299:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39381:9:88","nodeType":"YulIdentifier","src":"39381:9:88"},{"kind":"number","nativeSrc":"39392:2:88","nodeType":"YulLiteral","src":"39392:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39377:3:88","nodeType":"YulIdentifier","src":"39377:3:88"},"nativeSrc":"39377:18:88","nodeType":"YulFunctionCall","src":"39377:18:88"},{"hexValue":"3c3d2031","kind":"string","nativeSrc":"39397:6:88","nodeType":"YulLiteral","src":"39397:6:88","type":"","value":"<= 1"}],"functionName":{"name":"mstore","nativeSrc":"39370:6:88","nodeType":"YulIdentifier","src":"39370:6:88"},"nativeSrc":"39370:34:88","nodeType":"YulFunctionCall","src":"39370:34:88"},"nativeSrc":"39370:34:88","nodeType":"YulExpressionStatement","src":"39370:34:88"},{"nativeSrc":"39413:27:88","nodeType":"YulAssignment","src":"39413:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39425:9:88","nodeType":"YulIdentifier","src":"39425:9:88"},{"kind":"number","nativeSrc":"39436:3:88","nodeType":"YulLiteral","src":"39436:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39421:3:88","nodeType":"YulIdentifier","src":"39421:3:88"},"nativeSrc":"39421:19:88","nodeType":"YulFunctionCall","src":"39421:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39413:4:88","nodeType":"YulIdentifier","src":"39413:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39046:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39197:9:88","nodeType":"YulTypedName","src":"39197:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39211:4:88","nodeType":"YulTypedName","src":"39211:4:88","type":""}],"src":"39046:400:88"},{"body":{"nativeSrc":"39625:227:88","nodeType":"YulBlock","src":"39625:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39642:9:88","nodeType":"YulIdentifier","src":"39642:9:88"},{"kind":"number","nativeSrc":"39653:2:88","nodeType":"YulLiteral","src":"39653:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39635:6:88","nodeType":"YulIdentifier","src":"39635:6:88"},"nativeSrc":"39635:21:88","nodeType":"YulFunctionCall","src":"39635:21:88"},"nativeSrc":"39635:21:88","nodeType":"YulExpressionStatement","src":"39635:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39676:9:88","nodeType":"YulIdentifier","src":"39676:9:88"},{"kind":"number","nativeSrc":"39687:2:88","nodeType":"YulLiteral","src":"39687:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39672:3:88","nodeType":"YulIdentifier","src":"39672:3:88"},"nativeSrc":"39672:18:88","nodeType":"YulFunctionCall","src":"39672:18:88"},{"kind":"number","nativeSrc":"39692:2:88","nodeType":"YulLiteral","src":"39692:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"39665:6:88","nodeType":"YulIdentifier","src":"39665:6:88"},"nativeSrc":"39665:30:88","nodeType":"YulFunctionCall","src":"39665:30:88"},"nativeSrc":"39665:30:88","nodeType":"YulExpressionStatement","src":"39665:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39715:9:88","nodeType":"YulIdentifier","src":"39715:9:88"},{"kind":"number","nativeSrc":"39726:2:88","nodeType":"YulLiteral","src":"39726:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39711:3:88","nodeType":"YulIdentifier","src":"39711:3:88"},"nativeSrc":"39711:18:88","nodeType":"YulFunctionCall","src":"39711:18:88"},{"hexValue":"56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265","kind":"string","nativeSrc":"39731:34:88","nodeType":"YulLiteral","src":"39731:34:88","type":"","value":"Validation: ensuroCocFee must be"}],"functionName":{"name":"mstore","nativeSrc":"39704:6:88","nodeType":"YulIdentifier","src":"39704:6:88"},"nativeSrc":"39704:62:88","nodeType":"YulFunctionCall","src":"39704:62:88"},"nativeSrc":"39704:62:88","nodeType":"YulExpressionStatement","src":"39704:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39786:9:88","nodeType":"YulIdentifier","src":"39786:9:88"},{"kind":"number","nativeSrc":"39797:2:88","nodeType":"YulLiteral","src":"39797:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39782:3:88","nodeType":"YulIdentifier","src":"39782:3:88"},"nativeSrc":"39782:18:88","nodeType":"YulFunctionCall","src":"39782:18:88"},{"hexValue":"203c3d2031","kind":"string","nativeSrc":"39802:7:88","nodeType":"YulLiteral","src":"39802:7:88","type":"","value":" <= 1"}],"functionName":{"name":"mstore","nativeSrc":"39775:6:88","nodeType":"YulIdentifier","src":"39775:6:88"},"nativeSrc":"39775:35:88","nodeType":"YulFunctionCall","src":"39775:35:88"},"nativeSrc":"39775:35:88","nodeType":"YulExpressionStatement","src":"39775:35:88"},{"nativeSrc":"39819:27:88","nodeType":"YulAssignment","src":"39819:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"39831:9:88","nodeType":"YulIdentifier","src":"39831:9:88"},{"kind":"number","nativeSrc":"39842:3:88","nodeType":"YulLiteral","src":"39842:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39827:3:88","nodeType":"YulIdentifier","src":"39827:3:88"},"nativeSrc":"39827:19:88","nodeType":"YulFunctionCall","src":"39827:19:88"},"variableNames":[{"name":"tail","nativeSrc":"39819:4:88","nodeType":"YulIdentifier","src":"39819:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39451:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39602:9:88","nodeType":"YulTypedName","src":"39602:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39616:4:88","nodeType":"YulTypedName","src":"39616:4:88","type":""}],"src":"39451:401:88"},{"body":{"nativeSrc":"40031:227:88","nodeType":"YulBlock","src":"40031:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40048:9:88","nodeType":"YulIdentifier","src":"40048:9:88"},{"kind":"number","nativeSrc":"40059:2:88","nodeType":"YulLiteral","src":"40059:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40041:6:88","nodeType":"YulIdentifier","src":"40041:6:88"},"nativeSrc":"40041:21:88","nodeType":"YulFunctionCall","src":"40041:21:88"},"nativeSrc":"40041:21:88","nodeType":"YulExpressionStatement","src":"40041:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40082:9:88","nodeType":"YulIdentifier","src":"40082:9:88"},{"kind":"number","nativeSrc":"40093:2:88","nodeType":"YulLiteral","src":"40093:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40078:3:88","nodeType":"YulIdentifier","src":"40078:3:88"},"nativeSrc":"40078:18:88","nodeType":"YulFunctionCall","src":"40078:18:88"},{"kind":"number","nativeSrc":"40098:2:88","nodeType":"YulLiteral","src":"40098:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"40071:6:88","nodeType":"YulIdentifier","src":"40071:6:88"},"nativeSrc":"40071:30:88","nodeType":"YulFunctionCall","src":"40071:30:88"},"nativeSrc":"40071:30:88","nodeType":"YulExpressionStatement","src":"40071:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40121:9:88","nodeType":"YulIdentifier","src":"40121:9:88"},{"kind":"number","nativeSrc":"40132:2:88","nodeType":"YulLiteral","src":"40132:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40117:3:88","nodeType":"YulIdentifier","src":"40117:3:88"},"nativeSrc":"40117:18:88","nodeType":"YulFunctionCall","src":"40117:18:88"},{"hexValue":"56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"40137:34:88","nodeType":"YulLiteral","src":"40137:34:88","type":"","value":"Validation: srRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"40110:6:88","nodeType":"YulIdentifier","src":"40110:6:88"},"nativeSrc":"40110:62:88","nodeType":"YulFunctionCall","src":"40110:62:88"},"nativeSrc":"40110:62:88","nodeType":"YulExpressionStatement","src":"40110:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40192:9:88","nodeType":"YulIdentifier","src":"40192:9:88"},{"kind":"number","nativeSrc":"40203:2:88","nodeType":"YulLiteral","src":"40203:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40188:3:88","nodeType":"YulIdentifier","src":"40188:3:88"},"nativeSrc":"40188:18:88","nodeType":"YulFunctionCall","src":"40188:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"40208:7:88","nodeType":"YulLiteral","src":"40208:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"40181:6:88","nodeType":"YulIdentifier","src":"40181:6:88"},"nativeSrc":"40181:35:88","nodeType":"YulFunctionCall","src":"40181:35:88"},"nativeSrc":"40181:35:88","nodeType":"YulExpressionStatement","src":"40181:35:88"},{"nativeSrc":"40225:27:88","nodeType":"YulAssignment","src":"40225:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40237:9:88","nodeType":"YulIdentifier","src":"40237:9:88"},{"kind":"number","nativeSrc":"40248:3:88","nodeType":"YulLiteral","src":"40248:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40233:3:88","nodeType":"YulIdentifier","src":"40233:3:88"},"nativeSrc":"40233:19:88","nodeType":"YulFunctionCall","src":"40233:19:88"},"variableNames":[{"name":"tail","nativeSrc":"40225:4:88","nodeType":"YulIdentifier","src":"40225:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39857:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40008:9:88","nodeType":"YulTypedName","src":"40008:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40022:4:88","nodeType":"YulTypedName","src":"40022:4:88","type":""}],"src":"39857:401:88"},{"body":{"nativeSrc":"40437:227:88","nodeType":"YulBlock","src":"40437:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40454:9:88","nodeType":"YulIdentifier","src":"40454:9:88"},{"kind":"number","nativeSrc":"40465:2:88","nodeType":"YulLiteral","src":"40465:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40447:6:88","nodeType":"YulIdentifier","src":"40447:6:88"},"nativeSrc":"40447:21:88","nodeType":"YulFunctionCall","src":"40447:21:88"},"nativeSrc":"40447:21:88","nodeType":"YulExpressionStatement","src":"40447:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40488:9:88","nodeType":"YulIdentifier","src":"40488:9:88"},{"kind":"number","nativeSrc":"40499:2:88","nodeType":"YulLiteral","src":"40499:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40484:3:88","nodeType":"YulIdentifier","src":"40484:3:88"},"nativeSrc":"40484:18:88","nodeType":"YulFunctionCall","src":"40484:18:88"},{"kind":"number","nativeSrc":"40504:2:88","nodeType":"YulLiteral","src":"40504:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"40477:6:88","nodeType":"YulIdentifier","src":"40477:6:88"},"nativeSrc":"40477:30:88","nodeType":"YulFunctionCall","src":"40477:30:88"},"nativeSrc":"40477:30:88","nodeType":"YulExpressionStatement","src":"40477:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40527:9:88","nodeType":"YulIdentifier","src":"40527:9:88"},{"kind":"number","nativeSrc":"40538:2:88","nodeType":"YulLiteral","src":"40538:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40523:3:88","nodeType":"YulIdentifier","src":"40523:3:88"},"nativeSrc":"40523:18:88","nodeType":"YulFunctionCall","src":"40523:18:88"},{"hexValue":"56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028","kind":"string","nativeSrc":"40543:34:88","nodeType":"YulLiteral","src":"40543:34:88","type":"","value":"Validation: jrRoc must be <= 1 ("}],"functionName":{"name":"mstore","nativeSrc":"40516:6:88","nodeType":"YulIdentifier","src":"40516:6:88"},"nativeSrc":"40516:62:88","nodeType":"YulFunctionCall","src":"40516:62:88"},"nativeSrc":"40516:62:88","nodeType":"YulExpressionStatement","src":"40516:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40598:9:88","nodeType":"YulIdentifier","src":"40598:9:88"},{"kind":"number","nativeSrc":"40609:2:88","nodeType":"YulLiteral","src":"40609:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40594:3:88","nodeType":"YulIdentifier","src":"40594:3:88"},"nativeSrc":"40594:18:88","nodeType":"YulFunctionCall","src":"40594:18:88"},{"hexValue":"3130302529","kind":"string","nativeSrc":"40614:7:88","nodeType":"YulLiteral","src":"40614:7:88","type":"","value":"100%)"}],"functionName":{"name":"mstore","nativeSrc":"40587:6:88","nodeType":"YulIdentifier","src":"40587:6:88"},"nativeSrc":"40587:35:88","nodeType":"YulFunctionCall","src":"40587:35:88"},"nativeSrc":"40587:35:88","nodeType":"YulExpressionStatement","src":"40587:35:88"},{"nativeSrc":"40631:27:88","nodeType":"YulAssignment","src":"40631:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"40643:9:88","nodeType":"YulIdentifier","src":"40643:9:88"},{"kind":"number","nativeSrc":"40654:3:88","nodeType":"YulLiteral","src":"40654:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40639:3:88","nodeType":"YulIdentifier","src":"40639:3:88"},"nativeSrc":"40639:19:88","nodeType":"YulFunctionCall","src":"40639:19:88"},"variableNames":[{"name":"tail","nativeSrc":"40631:4:88","nodeType":"YulIdentifier","src":"40631:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40263:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40414:9:88","nodeType":"YulTypedName","src":"40414:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40428:4:88","nodeType":"YulTypedName","src":"40428:4:88","type":""}],"src":"40263:401:88"},{"body":{"nativeSrc":"40843:223:88","nodeType":"YulBlock","src":"40843:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40860:9:88","nodeType":"YulIdentifier","src":"40860:9:88"},{"kind":"number","nativeSrc":"40871:2:88","nodeType":"YulLiteral","src":"40871:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40853:6:88","nodeType":"YulIdentifier","src":"40853:6:88"},"nativeSrc":"40853:21:88","nodeType":"YulFunctionCall","src":"40853:21:88"},"nativeSrc":"40853:21:88","nodeType":"YulExpressionStatement","src":"40853:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40894:9:88","nodeType":"YulIdentifier","src":"40894:9:88"},{"kind":"number","nativeSrc":"40905:2:88","nodeType":"YulLiteral","src":"40905:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40890:3:88","nodeType":"YulIdentifier","src":"40890:3:88"},"nativeSrc":"40890:18:88","nodeType":"YulFunctionCall","src":"40890:18:88"},{"kind":"number","nativeSrc":"40910:2:88","nodeType":"YulLiteral","src":"40910:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"40883:6:88","nodeType":"YulIdentifier","src":"40883:6:88"},"nativeSrc":"40883:30:88","nodeType":"YulFunctionCall","src":"40883:30:88"},"nativeSrc":"40883:30:88","nodeType":"YulExpressionStatement","src":"40883:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40933:9:88","nodeType":"YulIdentifier","src":"40933:9:88"},{"kind":"number","nativeSrc":"40944:2:88","nodeType":"YulLiteral","src":"40944:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40929:3:88","nodeType":"YulIdentifier","src":"40929:3:88"},"nativeSrc":"40929:18:88","nodeType":"YulFunctionCall","src":"40929:18:88"},{"hexValue":"4578706f7375726520616e64204d61785061796f7574206d757374206265203e","kind":"string","nativeSrc":"40949:34:88","nodeType":"YulLiteral","src":"40949:34:88","type":"","value":"Exposure and MaxPayout must be >"}],"functionName":{"name":"mstore","nativeSrc":"40922:6:88","nodeType":"YulIdentifier","src":"40922:6:88"},"nativeSrc":"40922:62:88","nodeType":"YulFunctionCall","src":"40922:62:88"},"nativeSrc":"40922:62:88","nodeType":"YulExpressionStatement","src":"40922:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41004:9:88","nodeType":"YulIdentifier","src":"41004:9:88"},{"kind":"number","nativeSrc":"41015:2:88","nodeType":"YulLiteral","src":"41015:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41000:3:88","nodeType":"YulIdentifier","src":"41000:3:88"},"nativeSrc":"41000:18:88","nodeType":"YulFunctionCall","src":"41000:18:88"},{"hexValue":"30","kind":"string","nativeSrc":"41020:3:88","nodeType":"YulLiteral","src":"41020:3:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"40993:6:88","nodeType":"YulIdentifier","src":"40993:6:88"},"nativeSrc":"40993:31:88","nodeType":"YulFunctionCall","src":"40993:31:88"},"nativeSrc":"40993:31:88","nodeType":"YulExpressionStatement","src":"40993:31:88"},{"nativeSrc":"41033:27:88","nodeType":"YulAssignment","src":"41033:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41045:9:88","nodeType":"YulIdentifier","src":"41045:9:88"},{"kind":"number","nativeSrc":"41056:3:88","nodeType":"YulLiteral","src":"41056:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41041:3:88","nodeType":"YulIdentifier","src":"41041:3:88"},"nativeSrc":"41041:19:88","nodeType":"YulFunctionCall","src":"41041:19:88"},"variableNames":[{"name":"tail","nativeSrc":"41033:4:88","nodeType":"YulIdentifier","src":"41033:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40669:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40820:9:88","nodeType":"YulTypedName","src":"40820:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40834:4:88","nodeType":"YulTypedName","src":"40834:4:88","type":""}],"src":"40669:397:88"},{"body":{"nativeSrc":"41208:164:88","nodeType":"YulBlock","src":"41208:164:88","statements":[{"nativeSrc":"41218:27:88","nodeType":"YulVariableDeclaration","src":"41218:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"41238:6:88","nodeType":"YulIdentifier","src":"41238:6:88"}],"functionName":{"name":"mload","nativeSrc":"41232:5:88","nodeType":"YulIdentifier","src":"41232:5:88"},"nativeSrc":"41232:13:88","nodeType":"YulFunctionCall","src":"41232:13:88"},"variables":[{"name":"length","nativeSrc":"41222:6:88","nodeType":"YulTypedName","src":"41222:6:88","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"41260:3:88","nodeType":"YulIdentifier","src":"41260:3:88"},{"arguments":[{"name":"value0","nativeSrc":"41269:6:88","nodeType":"YulIdentifier","src":"41269:6:88"},{"kind":"number","nativeSrc":"41277:4:88","nodeType":"YulLiteral","src":"41277:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"41265:3:88","nodeType":"YulIdentifier","src":"41265:3:88"},"nativeSrc":"41265:17:88","nodeType":"YulFunctionCall","src":"41265:17:88"},{"name":"length","nativeSrc":"41284:6:88","nodeType":"YulIdentifier","src":"41284:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"41254:5:88","nodeType":"YulIdentifier","src":"41254:5:88"},"nativeSrc":"41254:37:88","nodeType":"YulFunctionCall","src":"41254:37:88"},"nativeSrc":"41254:37:88","nodeType":"YulExpressionStatement","src":"41254:37:88"},{"nativeSrc":"41300:26:88","nodeType":"YulVariableDeclaration","src":"41300:26:88","value":{"arguments":[{"name":"pos","nativeSrc":"41314:3:88","nodeType":"YulIdentifier","src":"41314:3:88"},{"name":"length","nativeSrc":"41319:6:88","nodeType":"YulIdentifier","src":"41319:6:88"}],"functionName":{"name":"add","nativeSrc":"41310:3:88","nodeType":"YulIdentifier","src":"41310:3:88"},"nativeSrc":"41310:16:88","nodeType":"YulFunctionCall","src":"41310:16:88"},"variables":[{"name":"_1","nativeSrc":"41304:2:88","nodeType":"YulTypedName","src":"41304:2:88","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"41342:2:88","nodeType":"YulIdentifier","src":"41342:2:88"},{"kind":"number","nativeSrc":"41346:1:88","nodeType":"YulLiteral","src":"41346:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"41335:6:88","nodeType":"YulIdentifier","src":"41335:6:88"},"nativeSrc":"41335:13:88","nodeType":"YulFunctionCall","src":"41335:13:88"},"nativeSrc":"41335:13:88","nodeType":"YulExpressionStatement","src":"41335:13:88"},{"nativeSrc":"41357:9:88","nodeType":"YulAssignment","src":"41357:9:88","value":{"name":"_1","nativeSrc":"41364:2:88","nodeType":"YulIdentifier","src":"41364:2:88"},"variableNames":[{"name":"end","nativeSrc":"41357:3:88","nodeType":"YulIdentifier","src":"41357:3:88"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"41071:301:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"41184:3:88","nodeType":"YulTypedName","src":"41184:3:88","type":""},{"name":"value0","nativeSrc":"41189:6:88","nodeType":"YulTypedName","src":"41189:6:88","type":""}],"returnVariables":[{"name":"end","nativeSrc":"41200:3:88","nodeType":"YulTypedName","src":"41200:3:88","type":""}],"src":"41071:301:88"},{"body":{"nativeSrc":"41551:179:88","nodeType":"YulBlock","src":"41551:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41568:9:88","nodeType":"YulIdentifier","src":"41568:9:88"},{"kind":"number","nativeSrc":"41579:2:88","nodeType":"YulLiteral","src":"41579:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41561:6:88","nodeType":"YulIdentifier","src":"41561:6:88"},"nativeSrc":"41561:21:88","nodeType":"YulFunctionCall","src":"41561:21:88"},"nativeSrc":"41561:21:88","nodeType":"YulExpressionStatement","src":"41561:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41602:9:88","nodeType":"YulIdentifier","src":"41602:9:88"},{"kind":"number","nativeSrc":"41613:2:88","nodeType":"YulLiteral","src":"41613:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41598:3:88","nodeType":"YulIdentifier","src":"41598:3:88"},"nativeSrc":"41598:18:88","nodeType":"YulFunctionCall","src":"41598:18:88"},{"kind":"number","nativeSrc":"41618:2:88","nodeType":"YulLiteral","src":"41618:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"41591:6:88","nodeType":"YulIdentifier","src":"41591:6:88"},"nativeSrc":"41591:30:88","nodeType":"YulFunctionCall","src":"41591:30:88"},"nativeSrc":"41591:30:88","nodeType":"YulExpressionStatement","src":"41591:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41641:9:88","nodeType":"YulIdentifier","src":"41641:9:88"},{"kind":"number","nativeSrc":"41652:2:88","nodeType":"YulLiteral","src":"41652:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41637:3:88","nodeType":"YulIdentifier","src":"41637:3:88"},"nativeSrc":"41637:18:88","nodeType":"YulFunctionCall","src":"41637:18:88"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"41657:31:88","nodeType":"YulLiteral","src":"41657:31:88","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"41630:6:88","nodeType":"YulIdentifier","src":"41630:6:88"},"nativeSrc":"41630:59:88","nodeType":"YulFunctionCall","src":"41630:59:88"},"nativeSrc":"41630:59:88","nodeType":"YulExpressionStatement","src":"41630:59:88"},{"nativeSrc":"41698:26:88","nodeType":"YulAssignment","src":"41698:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"41710:9:88","nodeType":"YulIdentifier","src":"41710:9:88"},{"kind":"number","nativeSrc":"41721:2:88","nodeType":"YulLiteral","src":"41721:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41706:3:88","nodeType":"YulIdentifier","src":"41706:3:88"},"nativeSrc":"41706:18:88","nodeType":"YulFunctionCall","src":"41706:18:88"},"variableNames":[{"name":"tail","nativeSrc":"41698:4:88","nodeType":"YulIdentifier","src":"41698:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41377:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41528:9:88","nodeType":"YulTypedName","src":"41528:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41542:4:88","nodeType":"YulTypedName","src":"41542:4:88","type":""}],"src":"41377:353:88"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_struct_PolicyData_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 448) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_uint40(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256t_uint256t_uint256t_uint40t_uint96(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 608) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 480))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 512))\n        value3 := value_2\n        value4 := abi_decode_uint40(add(headStart, 544))\n        value5 := abi_decode_uint96(add(headStart, 576))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_contract_IPolicyPool(value, pos)\n    {\n        mstore(pos, and(value, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_contract$_IPolicyPool_$23806__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x01c0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let size := 0\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        let result := and(add(length, 31), not(31))\n        size := add(result, 0x20)\n        let memPtr := 0\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_uint256t_uint256t_uint256t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes(add(_1, 0x20), calldataload(_1), dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 0x20))\n        value1 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value2 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 96))\n        value3 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value4 := value_3\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 160))\n        value5 := value_4\n        let value_5 := calldataload(add(headStart, 192))\n        validator_revert_address(value_5)\n        value6 := value_5\n    }\n    function abi_encode_tuple_t_contract$_IPremiumsAccount_$23886__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 480) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData_calldata(headStart, dataEnd)\n        let value := 0\n        value := calldataload(add(headStart, 448))\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint40t_addresst_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 64))\n        value2 := value_2\n        value3 := abi_decode_uint40(add(headStart, 96))\n        let value_3 := calldataload(add(headStart, 128))\n        validator_revert_address(value_3)\n        value4 := value_3\n        let value_4 := calldataload(add(headStart, 160))\n        validator_revert_address(value_4)\n        value5 := value_4\n        value6 := abi_decode_uint96(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint40(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n        value2 := abi_decode_uint40(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_enum$_Parameter_$23903t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(lt(value, 10)) { revert(0, 0) }\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_decode_contract_IRiskModule(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_struct_PolicyData(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x01c0) { revert(0, 0) }\n        value := allocate_memory()\n        let value_1 := 0\n        value_1 := calldataload(headStart)\n        mstore(value, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(headStart, 32))\n        mstore(add(value, 32), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 64))\n        mstore(add(value, 64), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(headStart, 96))\n        mstore(add(value, 96), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(headStart, 128))\n        mstore(add(value, 128), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(headStart, 160))\n        mstore(add(value, 160), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(headStart, 192))\n        mstore(add(value, 192), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(headStart, 224))\n        mstore(add(value, 224), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(headStart, 256))\n        mstore(add(value, 256), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(headStart, 288))\n        mstore(add(value, 288), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(headStart, 320))\n        mstore(add(value, 320), value_11)\n        mstore(add(value, 352), abi_decode_contract_IRiskModule(add(headStart, 352)))\n        mstore(add(value, 384), abi_decode_uint40(add(headStart, 384)))\n        mstore(add(value, 416), abi_decode_uint40(add(headStart, 416)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_struct$_PolicyData_$14966_memory_ptrt_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 960) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        value1 := abi_decode_struct_PolicyData(add(headStart, 448), dataEnd)\n        let value := calldataload(add(headStart, 896))\n        validator_revert_address(value)\n        value2 := value\n        value3 := abi_decode_uint96(add(headStart, 928))\n    }\n    function abi_encode_tuple_t_struct$_Params_$23926_memory_ptr__to_t_struct$_Params_$23926_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n        mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n        mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n    }\n    function abi_encode_tuple_t_contract$_IERC20Metadata_$6066__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_struct$_PolicyData_$14966_memory_ptrt_addresst_addresst_uint96(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 544) { revert(0, 0) }\n        value0 := abi_decode_struct_PolicyData(headStart, dataEnd)\n        let value := calldataload(add(headStart, 448))\n        validator_revert_address(value)\n        value1 := value\n        let value_1 := calldataload(add(headStart, 480))\n        validator_revert_address(value_1)\n        value2 := value_1\n        value3 := abi_decode_uint96(add(headStart, 512))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_decode_tuple_t_contract$_IAccessManager_$23370_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_36e108fa7a809b52ab1951dd91c117a7bc9ac5250bdf1aa162d4e104f7edf9eb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_52f1ead4d9653e13afbd2e90ef2587c30187cd50b2e97d784e3f7a7541247434__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"Function must be called through \")\n        mstore(add(headStart, 96), \"active proxy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_bytes32_t_bytes32_t_address_t_bool__to_t_address_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), iszero(iszero(value4)))\n    }\n    function abi_encode_tuple_t_stringliteral_67f0151b4ad1dcfa0e3302a0cd6019f51582ef1807b37dceb00bd852a514f7f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"UUPSUpgradeable: must not be cal\")\n        mstore(add(headStart, 96), \"led through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_struct_PolicyData_calldata(value, pos)\n    {\n        let value_1 := 0\n        value_1 := calldataload(value)\n        mstore(pos, value_1)\n        let value_2 := 0\n        value_2 := calldataload(add(value, 0x20))\n        mstore(add(pos, 0x20), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(value, 0x40))\n        mstore(add(pos, 0x40), value_3)\n        let value_4 := 0\n        value_4 := calldataload(add(value, 0x60))\n        mstore(add(pos, 0x60), value_4)\n        let value_5 := 0\n        value_5 := calldataload(add(value, 0x80))\n        mstore(add(pos, 0x80), value_5)\n        let value_6 := 0\n        value_6 := calldataload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), value_6)\n        let value_7 := 0\n        value_7 := calldataload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), value_7)\n        let value_8 := 0\n        value_8 := calldataload(add(value, 0xe0))\n        mstore(add(pos, 0xe0), value_8)\n        let value_9 := 0\n        value_9 := calldataload(add(value, 0x0100))\n        mstore(add(pos, 0x0100), value_9)\n        let value_10 := 0\n        value_10 := calldataload(add(value, 0x0120))\n        mstore(add(pos, 0x0120), value_10)\n        let value_11 := 0\n        value_11 := calldataload(add(value, 0x0140))\n        mstore(add(pos, 0x0140), value_11)\n        let memberValue0 := abi_decode_contract_IRiskModule(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := abi_decode_uint40(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := abi_decode_uint40(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_uint256__to_t_struct$_PolicyData_$14966_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 480)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        mstore(add(headStart, 448), value1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_ae17d170ecb0f26214561ca702fa7c5bb38d4068c48aa77ab2987ad44d5fe143__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Can't set exposureLimit less tha\")\n        mstore(add(headStart, 96), \"n active exposure\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8168c636defc6cc2310ae605311f5ee346975685d45be4999075e54d516a439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Increase requires LEVEL1_ROLE\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_struct_PolicyData(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n        mstore(add(pos, 0x60), mload(add(value, 0x60)))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n        mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        mstore(add(pos, 0x0100), mload(add(value, 0x0100)))\n        mstore(add(pos, 0x0120), mload(add(value, 0x0120)))\n        mstore(add(pos, 0x0140), mload(add(value, 0x0140)))\n        let memberValue0 := mload(add(value, 0x0160))\n        abi_encode_contract_IPolicyPool(memberValue0, add(pos, 0x0160))\n        let memberValue0_1 := mload(add(value, 0x0180))\n        abi_encode_uint40(memberValue0_1, add(pos, 0x0180))\n        let memberValue0_2 := mload(add(value, 0x01a0))\n        abi_encode_uint40(memberValue0_2, add(pos, 0x01a0))\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 960)\n        abi_encode_struct_PolicyData(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n        mstore(add(headStart, 896), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 928), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_decode_tuple_t_contract$_IERC20Metadata_$6066_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 544)\n        abi_encode_struct_PolicyData(value0, headStart)\n        mstore(add(headStart, 448), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 480), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 512), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint40(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_803a72235080d0c93bcc2d9f25a9bf4bd2fdc545cd6f58e9283384107fe51d3a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Premium must be less than payout\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6f1b741c81dc0a240c52caf28ce5fceb7fa03edfb80bd660d0440af595ebdb28__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Old policy is expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_beeb7c5d1313f079453f04e78a60a882a32751f406c536d16958be989d7314a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Policy replacement must be great\")\n        mstore(add(headStart, 96), \"er or equal than old policy\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffff), and(y, 0xffffffffff))\n        if gt(diff, 0xffffffffff) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint40(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_stringliteral_599f196ddc5d7ee9a812d224f5af1f11f1daaafbc65bee22b24c64ded9de2f27__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"Policy exceeds max duration\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_25841d72cc7bfa6230c7f962cfbae4a2f4fb414516c5a0c773fcb129f7b8fd29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"You must allow ENSURO to transfe\")\n        mstore(add(headStart, 96), \"r the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5a4e32afd7f04c901d64be159aa54f18d21a3547a5b12f71b6c19376d1662cb0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"Payer must allow caller to trans\")\n        mstore(add(headStart, 96), \"fer the premium\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_32e37993afdae275f451b219350f64b39f6e8dba34e8a97cf40f55d594c56f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"RiskModule: Payout is more than \")\n        mstore(add(headStart, 96), \"maximum per policy\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0e2dbe7d9e900187aba25d88263bf9de92441802861b5968b4472044a2e69c17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"RiskModule: Exposure limit excee\")\n        mstore(add(headStart, 96), \"ded\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_struct$_PolicyData_$14966_calldata_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__to_t_struct$_PolicyData_$14966_memory_ptr_t_struct$_PolicyData_$14966_memory_ptr_t_address_t_uint96__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 960)\n        abi_encode_struct_PolicyData_calldata(value0, headStart)\n        abi_encode_struct_PolicyData(value1, add(headStart, 448))\n        mstore(add(headStart, 896), and(value2, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 928), and(value3, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: new implementati\")\n        mstore(add(headStart, 96), \"on is not UUPS\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1967Upgrade: unsupported prox\")\n        mstore(add(headStart, 96), \"iableUUID\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function checked_sub_t_uint8(x, y) -> diff\n    {\n        diff := sub(and(x, 0xff), and(y, 0xff))\n        if gt(diff, 0xff) { panic_error_0x11() }\n    }\n    function checked_exp_helper(_base, exponent, max) -> power, base\n    {\n        power := 1\n        base := _base\n        for { } gt(exponent, 1) { }\n        {\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            let _1 := 0\n            _1 := 0\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            let _2 := 0\n            _2 := 0\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent, not(0))\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_af5c05252c080d604ccd8359d83427d1bd8edd1d5bbfa9cff6011c82112818b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Premium cannot be more than payo\")\n        mstore(add(headStart, 96), \"ut\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a61f1af97dcb1cd06048c6fa1fdecc4762079c3e993023bb8acddf567c1ca61a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Premium less than minimum\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_contract$_IPremiumsAccount_$23886_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_e51be23fffc8d654f2b8be05621f285613ec88b72065f526c8aeb267eafb777f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Expiration must be in the future\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_48f31f9b3ebd6f33639052e1a728fd135f52ed4ae8827899396d2369b9b2efb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"Customer can't be zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_contract$_IPolicyPool_$23806_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_09c1170a32ef751575b8c78dc61f0bd62bea5866e428ea39e049ceada36b5d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Validation: jrCollRatio must be \")\n        mstore(add(headStart, 96), \"<=1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_899c0196a946dd4ce4a4f56cb821d2f07955c231d3bebf1a8a5c0d4daf49ecd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Validation: collRatio must be <=\")\n        mstore(add(headStart, 96), \"1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dc20ff40a6436916be6c9d7037fccb582f9a6e71e9beb3dd24ebc8461e906b9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: collRatio >= jrCollR\")\n        mstore(add(headStart, 96), \"atio\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_db312b41232e1182ec19f614ca9cde3e2a79439eec6d2f9300ddfb887769cc92__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Validation: moc must be [0.5, 4]\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_855422342e077201d4007764711f727479e45789ea86f8337cc2d06f10912574__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Validation: ensuroPpFee must be \")\n        mstore(add(headStart, 96), \"<= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d178ed1b9fa00c0f1d9a232b070db2a52d39c9b337fd427572f8b7fdbe22af06__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: ensuroCocFee must be\")\n        mstore(add(headStart, 96), \" <= 1\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e409838be3282ca39754b9bd21659256e2850175d2dd7ee3517ebb989932b1e2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: srRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b32142add84110dd876c39da60f55b35940ea3a9aca4244cb4d028f70612912f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"Validation: jrRoc must be <= 1 (\")\n        mstore(add(headStart, 96), \"100%)\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c4f18664e806689f25c8e619668e4ff08b3dd3795f8e24011521dab5c50eba53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Exposure and MaxPayout must be >\")\n        mstore(add(headStart, 96), \"0\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        mcopy(pos, add(value0, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"964":[{"length":32,"start":2197},{"length":32,"start":2270},{"length":32,"start":2710},{"length":32,"start":2774},{"length":32,"start":2915}],"17733":[{"length":32,"start":665},{"length":32,"start":1792},{"length":32,"start":2034},{"length":32,"start":2466},{"length":32,"start":3083},{"length":32,"start":3494},{"length":32,"start":3734},{"length":32,"start":3876},{"length":32,"start":4174},{"length":32,"start":4486},{"length":32,"start":5745},{"length":32,"start":5874},{"length":32,"start":6294},{"length":32,"start":6598},{"length":32,"start":6749},{"length":32,"start":7499},{"length":32,"start":7656},{"length":32,"start":7835},{"length":32,"start":8298},{"length":32,"start":8484},{"length":32,"start":9678},{"length":32,"start":12109},{"length":32,"start":12266},{"length":32,"start":12432},{"length":32,"start":12861},{"length":32,"start":13714}],"20197":[{"length":32,"start":919},{"length":32,"start":10679}]},"linkReferences":{},"object":"6080604052600436106101d0575f3560e01c80637a702b3c116100fd578063cb1719a111610092578063deaa59df11610062578063deaa59df14610594578063e5a6b10f146105b3578063f6c507d4146105c7578063fbb81279146105e6575f5ffd5b8063cb1719a1146104d9578063cf8cf491146104f8578063cfd4c60614610517578063cff0ab961461052b575f5ffd5b806386e7db4d116100cd57806386e7db4d146104495780638bac3a2414610468578063af0e7e0c14610487578063c1cca2b3146104ba575f5ffd5b80637a702b3c146103ee5780637ff8bf251461040d5780638456cb591461042157806385272a6e14610435575f5ffd5b8063521eb273116101735780636db5c8fd116101435780636db5c8fd1461034b5780636f0dbe6f1461036a57806373a952e81461038957806378fab260146103bb575f5ffd5b8063521eb273146102e457806352d1902d146103015780635c975abb146103155780636a448ef11461032c575f5ffd5b80633659cfe6116101ae5780633659cfe6146102565780633f4ba83a146102775780634d15eb031461028b5780634f1ef286146102d1575f5ffd5b806301ffc9a7146101d457806306fdde03146102085780630bc872d914610229575b5f5ffd5b3480156101df575f5ffd5b506101f36101ee366004613ce7565b610619565b60405190151581526020015b60405180910390f35b348015610213575f5ffd5b5061021c610644565b6040516101ff9190613d0e565b348015610234575f5ffd5b50610248610243366004613d89565b6106d4565b6040519081526020016101ff565b348015610261575f5ffd5b50610275610270366004613dff565b61088b565b005b348015610282575f5ffd5b50610275610971565b348015610296575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101ff565b6102756102df366004613ecf565b610a8c565b3480156102ef575f5ffd5b5060fe546001600160a01b03166102b9565b34801561030c575f5ffd5b50610248610b57565b348015610320575f5ffd5b5060975460ff166101f3565b348015610337575f5ffd5b50610275610346366004613f2f565b610c08565b348015610356575f5ffd5b5060fc54600160b01b900461ffff16610248565b348015610375575f5ffd5b50610275610384366004613f46565b610c6a565b348015610394575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006102b9565b3480156103c6575f5ffd5b506102487f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb181565b3480156103f9575f5ffd5b50610275610408366004613fd5565b610d83565b348015610418575f5ffd5b5060fd54610248565b34801561042c575f5ffd5b50610275610f01565b348015610440575f5ffd5b50610248611008565b348015610454575f5ffd5b50610248610463366004614000565b61102a565b348015610473575f5ffd5b50610248610482366004614070565b611138565b348015610492575f5ffd5b506102487f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d07455581565b3480156104c5575f5ffd5b506102756104d43660046140a2565b611155565b3480156104e4575f5ffd5b506102756104f3366004613fd5565b61165a565b348015610503575f5ffd5b5061024861051236600461419f565b6116d9565b348015610522575f5ffd5b50610248611776565b348015610536575f5ffd5b5061053f611794565b6040516101ff91905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b34801561059f575f5ffd5b506102756105ae366004613dff565b611873565b3480156105be575f5ffd5b506102b96119c3565b3480156105d2575f5ffd5b506102486105e13660046141f8565b611a44565b3480156105f1575f5ffd5b506102487fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b5f61062382611a98565b8061063e57506001600160e01b0319821663da40804f60e01b145b92915050565b606060fb805461065390614247565b80601f016020809104026020016040519081016040528092919081815260200182805461067f90614247565b80156106ca5780601f106106a1576101008083540402835291602001916106ca565b820191905f5260205f20905b8154815290600101906020018083116106ad57829003601f168201915b5050505050905090565b5f6106dd611acd565b7f13413a37e797fdcf9481024e55772fdede41168298ffead0664159cf5d0745557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016107af9493929190614294565b5f6040518083038186803b1580156107c5575f5ffd5b505afa1580156107d7573d5f5f3e3d5ffd5b50506040516331a9108f60e11b81528a3560048201525f92507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169150636352211e90602401602060405180830381865afa158015610840573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108649190614279565b905061087d8989898989868a610878611794565b611b15565b519998505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108dc5760405162461bcd60e51b81526004016108d3906142be565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109245f516020614aa45f395f51905f52546001600160a01b031690565b6001600160a01b03161461094a5760405162461bcd60e51b81526004016108d39061430a565b610953816120f3565b604080515f8082526020820190925261096e91839190612210565b50565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ac45f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a209190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401610a54959493929190614356565b5f6040518083038186803b158015610a6a575f5ffd5b505afa158015610a7c573d5f5f3e3d5ffd5b50505050610a8861237a565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad45760405162461bcd60e51b81526004016108d3906142be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b1c5f516020614aa45f395f51905f52546001600160a01b031690565b6001600160a01b031614610b425760405162461bcd60e51b81526004016108d39061430a565b610b4b826120f3565b610a8882826001612210565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108d3565b505f516020614aa45f395f51905f5290565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610c515760405163799e780f60e01b815260040160405180910390fd5b8060fd5f828254610c62919061439d565b909155505050565b5f54610100900460ff1615808015610c8857505f54600160ff909116105b80610ca15750303b158015610ca157505f5460ff166001145b610d045760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108d3565b5f805460ff191660011790558015610d25575f805461ff0019166101001790555b610d34888888888888886123cc565b8015610d79575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b7f92a19c77d2ea87c7f81d50c74403cb2f401780f3ad919571121efe2bdb427eb17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e249190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b8152600401610e559493929190614294565b5f6040518083038186803b158015610e6b575f5ffd5b505afa158015610e7d573d5f5f3e3d5ffd5b5050604051631e9c0acf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250637a702b3c9150610ecf9086908690600401614471565b5f604051808303815f87803b158015610ee6575f5ffd5b505af1158015610ef8573d5f5f3e3d5ffd5b50505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa29190614279565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610fd49493929190614294565b5f6040518083038186803b158015610fea575f5ffd5b505afa158015610ffc573d5f5f3e3d5ffd5b5050505061096e612409565b60fc545f90611025908290600160901b900463ffffffff16612446565b905090565b5f7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cc9190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016110fd9493929190614294565b5f6040518083038186803b158015611113575f5ffd5b505afa158015611125573d5f5f3e3d5ffd5b5050505061087d898989898989896124db565b5f61114d84848442611148611794565b612506565b949350505050565b5f516020614ac45f395f51905f527fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112049190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b8152600401611238959493929190614356565b5f6040518083038186803b15801561124e575f5ffd5b505afa158015611260573d5f5f3e3d5ffd5b505f925061126c915050565b84600981111561127e5761127e61448e565b036112a75761128c83612522565b60fc805461ffff191661ffff9290921691909117905561161d565b60018460098111156112bb576112bb61448e565b036112ed576112c983612522565b60fc805461ffff92909216620100000263ffff00001990921691909117905561161d565b60028460098111156113015761130161448e565b036113375761130f83612522565b60fc805461ffff929092166401000000000265ffff000000001990921691909117905561161d565b600384600981111561134b5761134b61448e565b036113825761135983612522565b60fc805461ffff92909216600160301b0267ffff0000000000001990921691909117905561161d565b60048460098111156113965761139661448e565b036113cf576113a483612522565b60fc805461ffff92909216600160401b0269ffff00000000000000001990921691909117905561161d565b60058460098111156113e3576113e361448e565b03611417576113f183612522565b60fc805461ffff92909216600160501b0261ffff60501b1990921691909117905561161d565b600684600981111561142b5761142b61448e565b0361145f5761143983612522565b60fc805461ffff92909216600160601b0261ffff60601b1990921691909117905561161d565b60078460098111156114735761147361448e565b036114ad5761148360028461253b565b60fc805463ffffffff92909216600160701b0263ffffffff60701b1990921691909117905561161d565b60088460098111156114c1576114c161448e565b036115d95760fd548310156115325760405162461bcd60e51b815260206004820152603160248201527f43616e277420736574206578706f737572654c696d6974206c657373207468616044820152706e20616374697665206578706f7375726560781b60648201526084016108d3565b61153a611008565b8311158061155957506115595f516020614ac45f395f51905f526125cb565b6115a55760405162461bcd60e51b815260206004820152601d60248201527f496e637265617365207265717569726573204c4556454c315f524f4c4500000060448201526064016108d3565b6115af5f8461253b565b60fc805463ffffffff92909216600160901b0263ffffffff60901b1990921691909117905561161d565b60098460098111156115ed576115ed61448e565b0361161d576115fb836126bd565b60fc805461ffff92909216600160b01b0261ffff60b01b199092169190911790555b6116548460098111156116325761163261448e565b61163d9060086144a2565b602d81111561164e5761164e61448e565b84612723565b50505050565b604051631e9c0acf60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a702b3c906116a89085908590600401614471565b5f604051808303815f87803b1580156116bf575f5ffd5b505af11580156116d1573d5f5f3e3d5ffd5b505050505050565b604051631f6be0d760e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae9061172d908890889088908890600401614575565b6020604051808303815f875af1158015611749573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176d91906145bd565b95945050505050565b60fc545f9061102590600290600160701b900463ffffffff16612446565b6117cd6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604080516101408101825260fc5461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b8104831660a0830152600160601b8104831660c083015263ffffffff600160701b8204811660e0840152600160901b820416610100830152600160b01b900490911661012082015261102590612774565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119149190614279565b6001600160a01b0316635ff57d203083335f6040518563ffffffff1660e01b81526004016119459493929190614294565b5f6040518083038186803b15801561195b575f5ffd5b505afa15801561196d573d5f5f3e3d5ffd5b5050506001600160a01b038316905061199957604051634d1c286960e11b815260040160405180910390fd5b60fe80546001600160a01b0319166001600160a01b038416908117909155610a8890601290612723565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a20573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110259190614279565b604051636769a76f60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f9061172d9088908890889088906004016145d4565b5f6001600160e01b031982166301ffc9a760e01b148061063e57506001600160e01b03198216634d15eb0360e01b1492915050565b60975460ff1615611b135760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108d3565b565b611b1d613c6f565b5f198703611b4657611b43888787611b3d6101a08e016101808f01614616565b86612506565b96505b878710611b955760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108d3565b64ffffffffff4216611baf6101c08b016101a08c01614616565b64ffffffffff1611611bfb5760405162461bcd60e51b815260206004820152601560248201527413db19081c1bdb1a58de481a5cc8195e1c1a5c9959605a1b60448201526064016108d3565b611c0d6101c08a016101a08b01614616565b64ffffffffff168564ffffffffff1610158015611c2e575088602001358810155b8015611c3e575088604001358710155b611cb05760405162461bcd60e51b815260206004820152603b60248201527f506f6c696379207265706c6163656d656e74206d75737420626520677265617460448201527f6572206f7220657175616c207468616e206f6c6420706f6c696379000000000060648201526084016108d3565b60fc54600160b01b900461ffff16610e10611cd36101a08c016101808d01614616565b611cdd908861462f565b611ce79190614660565b64ffffffffff1610611d3b5760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108d3565b611d4960408a01358861439d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dc99190614279565b604051636eb1769f60e11b81526001600160a01b0387811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015611e37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5b91906145bd565b1015611e795760405162461bcd60e51b81526004016108d390614689565b6001600160a01b038416331480611f995750611e9960408a01358861439d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f199190614279565b6001600160a01b031663dd62ed3e86336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9691906145bd565b10155b611fb55760405162461bcd60e51b81526004016108d3906146d6565b611fbd611776565b881115611fdc5760405162461bcd60e51b81526004016108d390614725565b611ffe3083898b8a8a8f610180016020810190611ff99190614616565b612838565b905088602001358160200151612014919061439d565b60fd5f82825461202491906144a2565b909155506120329050611008565b60fd5411156120535760405162461bcd60e51b81526004016108d390614777565b604051631f6be0d760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed7c1ae906120a5908c908590899089906004016147ba565b6020604051808303815f875af11580156120c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e591906145bd565b815298975050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50415f516020614ac45f395f51905f527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121a29190614279565b6001600160a01b0316632b1cff1f3084843360016040518663ffffffff1660e01b81526004016121d6959493929190614356565b5f6040518083038186803b1580156121ec575f5ffd5b505afa1580156121fe573d5f5f3e3d5ffd5b5050505061220b836129a8565b505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156122435761220b83612a66565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561229d575060408051601f3d908101601f1916820190925261229a918101906145bd565b60015b6123005760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108d3565b5f516020614aa45f395f51905f52811461236e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108d3565b5061220b838383612b01565b612382612b25565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff166123f25760405162461bcd60e51b81526004016108d3906147c9565b6123fa612b6e565b610ef887878787878787612ba4565b612411611acd565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123af3390565b5f826124506119c3565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124af9190614814565b6124b99190614834565b6124c490600a614930565b6124d49063ffffffff841661493e565b9392505050565b6124e3613c6f565b6124fa888888888888886124f5611794565b612dae565b98975050505050505050565b5f61251482878787876132c7565b60e001519695505050505050565b5f61063e612536655af3107a400084614955565b6126bd565b5f6124d4836125486119c3565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612583573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a79190614814565b6125b19190614834565b6125bc90600a614930565b6125c69084614955565b6134ba565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015612628573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264c9190614279565b6001600160a01b031663b3efcbd230843360016040518563ffffffff1660e01b815260040161267e9493929190614294565b602060405180830381865afa158015612699573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190614968565b5f61ffff82111561271f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016108d3565b5090565b61272b61351e565b81602d81111561273d5761273d61448e565b6040518281527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25050565b6127ad6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060e001604052806127c4845f015161357b565b81526020016127d6846020015161357b565b81526020016127e8846040015161357b565b81526020016127fa846060015161357b565b815260200161280c846080015161357b565b815260200161281e8460a0015161357b565b81526020016128308460c0015161357b565b905292915050565b612840613c6f565b8486111561289b5760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b60648201526084016108d3565b6128a3613c6f565b6001600160a01b038916610160820152604081018790526020810186905260a0810185905264ffffffffff80841661018083015284166101a08201525f6128ed89888888886132c7565b805160c0840152602081015160608085019190915260408201516080808601919091529082015161012085015281015161014084015260a081015160e0808501919091528101519091508810156129865760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d0000000000000060448201526064016108d3565b60e0810151612995908961439d565b6101008301525098975050505050505050565b6129b181613590565b5f8190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3f9190614279565b6001600160a01b031614610a885760405163050f87e160e21b815260040160405180910390fd5b6001600160a01b0381163b612ad35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108d3565b5f516020614aa45f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612b0a83613641565b5f82511180612b165750805b1561220b576116548383613680565b60975460ff16611b135760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108d3565b5f54610100900460ff16612b945760405162461bcd60e51b81526004016108d3906147c9565b612b9c6136a5565b611b136136cb565b5f54610100900460ff16612bca5760405162461bcd60e51b81526004016108d3906147c9565b60fb612bd688826149d2565b50604080516101408101825261271081525f6020820152908101612bf988612522565b61ffff168152602001612c0b87612522565b61ffff1681525f602082018190526040820152606001612c2a86612522565b61ffff168152602001612c3e60028661253b565b63ffffffff168152602001612c535f8561253b565b63ffffffff9081168252612238602092830152825160fc80549385015160408601516060870151608088015160a089015160c08a015160e08b01516101008c0151610120909c015161ffff998a1663ffffffff19909c169b909b1762010000978a16979097029690961767ffffffff0000000019166401000000009589169590950267ffff000000000000191694909417600160301b93881693909302929092176bffffffff00000000000000001916600160401b9187169190910261ffff60501b191617600160501b918616919091021765ffffffffffff60601b1916600160601b9185169190910263ffffffff60701b191617600160701b918516919091021765ffffffffffff60901b1916600160901b959093169490940261ffff60b01b191691909117600160b01b91909216021790555f60fd5560fe80546001600160a01b0319166001600160a01b038316179055610ef861351e565b612db6613c6f565b4260018901612dcf57612dcc8a89898487612506565b98505b898910612e1e5760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f757460448201526064016108d3565b8064ffffffffff168764ffffffffff1611612e7b5760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e207468652066757475726560448201526064016108d3565b60fc54600160b01b900461ffff16610e10612e96838a61462f565b612ea09190614660565b64ffffffffff1610612ef45760405162461bcd60e51b815260206004820152601b60248201527f506f6c6963792065786365656473206d6178206475726174696f6e000000000060448201526064016108d3565b6001600160a01b038516612f4a5760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f2061646472657373000060448201526064016108d3565b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fa7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fcb9190614279565b604051636eb1769f60e11b81526001600160a01b0389811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613039573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305d91906145bd565b101561307b5760405162461bcd60e51b81526004016108d390614689565b6001600160a01b03861633148061318e5750887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310e9190614279565b6001600160a01b031663dd62ed3e88336040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015613167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061318b91906145bd565b10155b6131aa5760405162461bcd60e51b81526004016108d3906146d6565b6131b2611776565b8a11156131d15760405162461bcd60e51b81526004016108d390614725565b6131e030848b8d8c8c87612838565b9150816020015160fd5f8282546131f791906144a2565b909155506132059050611008565b60fd5411156132265760405162461bcd60e51b81526004016108d390614777565b604051636769a76f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636769a76f906132789085908a908a908a906004016145d4565b6020604051808303815f875af1158015613294573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b891906145bd565b82525098975050505050505050565b6133076040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b855161331f906133189086906136f9565b86906136f9565b815260208601516133319086906136f9565b602082018190528151101561335b57805160208201805161335390839061439d565b905250613362565b5f60208201525b60408601516133729086906136f9565b60408201526020810151815161338891906144a2565b816040015111156133bd57602081015181516133a491906144a2565b816040018181516133b5919061439d565b9052506133c4565b5f60408201525b6134016301e133806133d6848661462f565b64ffffffffff168860a001516133ec919061493e565b6133f69190614955565b6020830151906136f9565b60608201526134436301e13380613418848661462f565b64ffffffffff168860c0015161342e919061493e565b6134389190614955565b6040830151906136f9565b6080820181905260608201515f9161345a916144a2565b90506134738760800151826136f990919063ffffffff16565b60608801518351613483916136f9565b61348d91906144a2565b60a08301819052825182916134a1916144a2565b6134ab91906144a2565b60e08301525095945050505050565b5f63ffffffff82111561271f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016108d3565b60fd54613529611008565b101561354857604051631adcca4560e11b815260040160405180910390fd5b60fe546001600160a01b031661357157604051634d1c286960e11b815260040160405180910390fd5b611b1360fc61372f565b5f61063e655af3107a400061ffff841661493e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361a9190614279565b6001600160a01b03161461096e5760405163d2b3d33f60e01b815260040160405180910390fd5b61364a81612a66565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606124d48383604051806060016040528060278152602001614ae460279139613b2c565b5f54610100900460ff16611b135760405162461bcd60e51b81526004016108d3906147c9565b5f54610100900460ff166136f15760405162461bcd60e51b81526004016108d3906147c9565b611b13613ba0565b5f81156706f05b59d3b200001983900484111517613715575f5ffd5b50670de0b6b3a764000091026706f05b59d3b20000010490565b80546127106201000090910461ffff1611156137995760405162461bcd60e51b815260206004820152602360248201527f56616c69646174696f6e3a206a72436f6c6c526174696f206d757374206265206044820152623c3d3160e81b60648201526084016108d3565b805461271064010000000090910461ffff16118015906137c557508054640100000000900461ffff1615155b61381b5760405162461bcd60e51b815260206004820152602160248201527f56616c69646174696f6e3a20636f6c6c526174696f206d757374206265203c3d6044820152603160f81b60648201526084016108d3565b805461ffff620100008204811664010000000090920416101561388c5760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20636f6c6c526174696f203e3d206a72436f6c6c526044820152636174696f60e01b60648201526084016108d3565b8054619c4061ffff909116118015906138ae5750805461138861ffff90911610155b6138fa5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20345d60448201526064016108d3565b8054612710600160301b90910461ffff1611156139655760405162461bcd60e51b8152602060048201526024808201527f56616c69646174696f6e3a20656e7375726f5070466565206d757374206265206044820152633c3d203160e01b60648201526084016108d3565b8054612710600160401b90910461ffff1611156139d25760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a20656e7375726f436f63466565206d757374206265604482015264203c3d203160d81b60648201526084016108d3565b8054612710600160601b90910461ffff161115613a3f5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a207372526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108d3565b8054612710600160501b90910461ffff161115613aac5760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a206a72526f63206d757374206265203c3d20312028604482015264313030252960d81b60648201526084016108d3565b8054600160901b900463ffffffff1615801590613ad657508054600160701b900463ffffffff1615155b61096e5760405162461bcd60e51b815260206004820152602160248201527f4578706f7375726520616e64204d61785061796f7574206d757374206265203e6044820152600360fc1b60648201526084016108d3565b60605f5f856001600160a01b031685604051613b489190614a8d565b5f60405180830381855af49150503d805f8114613b80576040519150601f19603f3d011682016040523d82523d5f602084013e613b85565b606091505b5091509150613b9686838387613bd2565b9695505050505050565b5f54610100900460ff16613bc65760405162461bcd60e51b81526004016108d3906147c9565b6097805460ff19169055565b60608315613c405782515f03613c39576001600160a01b0385163b613c395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108d3565b508161114d565b61114d8383815115613c555781518083602001fd5b8060405162461bcd60e51b81526004016108d39190613d0e565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f64ffffffffff1681526020015f64ffffffffff1681525090565b5f60208284031215613cf7575f5ffd5b81356001600160e01b0319811681146124d4575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6101c08284031215613d54575f5ffd5b50919050565b803564ffffffffff81168114613d6e575f5ffd5b919050565b80356001600160601b0381168114613d6e575f5ffd5b5f5f5f5f5f5f6102608789031215613d9f575f5ffd5b613da98888613d43565b95506101c087013594506101e087013593506102008701359250613dd06102208801613d5a565b9150613ddf6102408801613d73565b90509295509295509295565b6001600160a01b038116811461096e575f5ffd5b5f60208284031215613e0f575f5ffd5b81356124d481613deb565b634e487b7160e01b5f52604160045260245ffd5b6040516101c0810167ffffffffffffffff81118282101715613e5257613e52613e1a565b60405290565b5f5f67ffffffffffffffff841115613e7257613e72613e1a565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715613ea157613ea1613e1a565b604052838152905080828401851015613eb8575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215613ee0575f5ffd5b8235613eeb81613deb565b9150602083013567ffffffffffffffff811115613f06575f5ffd5b8301601f81018513613f16575f5ffd5b613f2585823560208401613e58565b9150509250929050565b5f60208284031215613f3f575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a031215613f5c575f5ffd5b873567ffffffffffffffff811115613f72575f5ffd5b8801601f81018a13613f82575f5ffd5b613f918a823560208401613e58565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135613fc581613deb565b8091505092959891949750929550565b5f5f6101e08385031215613fe7575f5ffd5b613ff18484613d43565b946101c0939093013593505050565b5f5f5f5f5f5f5f60e0888a031215614016575f5ffd5b87359650602088013595506040880135945061403460608901613d5a565b9350608088013561404481613deb565b925060a088013561405481613deb565b915061406260c08901613d73565b905092959891949750929550565b5f5f5f60608486031215614082575f5ffd5b833592506020840135915061409960408501613d5a565b90509250925092565b5f5f604083850312156140b3575f5ffd5b8235600a81106140c1575f5ffd5b946020939093013593505050565b8035613d6e81613deb565b5f6101c082840312156140eb575f5ffd5b6140f3613e2e565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015260e08084013590820152610100808401359082015261012080840135908201526101408084013590820152905061416d61016083016140cf565b6101608201526141806101808301613d5a565b6101808201526141936101a08301613d5a565b6101a082015292915050565b5f5f5f5f6103c085870312156141b3575f5ffd5b6141bd86866140da565b93506141cd866101c087016140da565b92506103808501356141de81613deb565b91506141ed6103a08601613d73565b905092959194509250565b5f5f5f5f610220858703121561420c575f5ffd5b61421686866140da565b93506101c085013561422781613deb565b92506101e085013561423881613deb565b91506141ed6102008601613d73565b600181811c9082168061425b57607f821691505b602082108103613d5457634e487b7160e01b5f52602260045260245ffd5b5f60208284031215614289575f5ffd5b81516124d481613deb565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039586168152602081019490945260408401929092529092166060820152901515608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561063e5761063e614389565b803582526020808201359083015260408082013590830152606080820135908301526080808201359083015260a0808201359083015260c0808201359083015260e0808201359083015261010080820135908301526101208082013590830152610140808201359083015261442861016082016140cf565b6001600160a01b03166101608301526144446101808201613d5a565b64ffffffffff1661018083015261445e6101a08201613d5a565b64ffffffffff81166101a0840152505050565b6101e0810161448082856143b0565b826101c08301529392505050565b634e487b7160e01b5f52602160045260245ffd5b8082018082111561063e5761063e614389565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010081015161010083015261012081015161012083015261014081015161014083015261016081015161453f6101608401826001600160a01b03169052565b5061018081015161455a61018084018264ffffffffff169052565b506101a081015161220b6101a084018264ffffffffff169052565b6103c0810161458482876144b5565b6145926101c08301866144b5565b6001600160a01b03939093166103808201526001600160601b03919091166103a09091015292915050565b5f602082840312156145cd575f5ffd5b5051919050565b61022081016145e382876144b5565b6001600160a01b039485166101c0830152929093166101e08401526001600160601b031661020090920191909152919050565b5f60208284031215614626575f5ffd5b6124d482613d5a565b64ffffffffff828116828216039081111561063e5761063e614389565b634e487b7160e01b5f52601260045260245ffd5b5f64ffffffffff8316806146765761467661464c565b8064ffffffffff84160491505092915050565b6020808252602d908201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560408201526c7220746865207072656d69756d60981b606082015260800190565b6020808252602f908201527f5061796572206d75737420616c6c6f772063616c6c657220746f207472616e7360408201526e66657220746865207072656d69756d60881b606082015260800190565b60208082526032908201527f5269736b4d6f64756c653a205061796f7574206973206d6f7265207468616e206040820152716d6178696d756d2070657220706f6c69637960701b606082015260800190565b60208082526023908201527f5269736b4d6f64756c653a204578706f73757265206c696d697420657863656560408201526219195960ea1b606082015260800190565b6103c0810161458482876143b0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215614824575f5ffd5b815160ff811681146124d4575f5ffd5b60ff828116828216039081111561063e5761063e614389565b6001815b60018411156148885780850481111561486c5761486c614389565b600184161561487a57908102905b60019390931c928002614851565b935093915050565b5f8261489e5750600161063e565b816148aa57505f61063e565b81600181146148c057600281146148ca576148e6565b600191505061063e565b60ff8411156148db576148db614389565b50506001821b61063e565b5060208310610133831016604e8410600b8410161715614909575081810a61063e565b6149155f19848461484d565b805f190482111561492857614928614389565b029392505050565b5f6124d460ff841683614890565b808202811582820484141761063e5761063e614389565b5f826149635761496361464c565b500490565b5f60208284031215614978575f5ffd5b815180151581146124d4575f5ffd5b601f82111561220b57805f5260205f20601f840160051c810160208510156149ac5750805b601f840160051c820191505b818110156149cb575f81556001016149b8565b5050505050565b815167ffffffffffffffff8111156149ec576149ec613e1a565b614a00816149fa8454614247565b84614987565b6020601f821160018114614a32575f8315614a1b5750848201515b5f19600385901b1c1916600184901b1784556149cb565b5f84815260208120601f198516915b82811015614a615787850151825560209485019460019092019101614a41565b5084821015614a7e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bd67ef81b2b9b05bdc69e0e4dc8a7dc5c386930da3c83338878659093f89dc5464736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1D0 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7A702B3C GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xCB1719A1 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xDEAA59DF GT PUSH2 0x62 JUMPI DUP1 PUSH4 0xDEAA59DF EQ PUSH2 0x594 JUMPI DUP1 PUSH4 0xE5A6B10F EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xF6C507D4 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xFBB81279 EQ PUSH2 0x5E6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0xCB1719A1 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xCF8CF491 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xCFD4C606 EQ PUSH2 0x517 JUMPI DUP1 PUSH4 0xCFF0AB96 EQ PUSH2 0x52B JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x86E7DB4D GT PUSH2 0xCD JUMPI DUP1 PUSH4 0x86E7DB4D EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0x8BAC3A24 EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0xAF0E7E0C EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xC1CCA2B3 EQ PUSH2 0x4BA JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x7A702B3C EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x7FF8BF25 EQ PUSH2 0x40D JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x421 JUMPI DUP1 PUSH4 0x85272A6E EQ PUSH2 0x435 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 GT PUSH2 0x173 JUMPI DUP1 PUSH4 0x6DB5C8FD GT PUSH2 0x143 JUMPI DUP1 PUSH4 0x6DB5C8FD EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x6F0DBE6F EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0x73A952E8 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x78FAB260 EQ PUSH2 0x3BB JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x521EB273 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x315 JUMPI DUP1 PUSH4 0x6A448EF1 EQ PUSH2 0x32C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x4D15EB03 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x2D1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0xBC872D9 EQ PUSH2 0x229 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x1F3 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3CE7 JUMP JUMPDEST PUSH2 0x619 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x213 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x21C PUSH2 0x644 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FF SWAP2 SWAP1 PUSH2 0x3D0E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D89 JUMP JUMPDEST PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x261 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x270 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DFF JUMP JUMPDEST PUSH2 0x88B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x282 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x971 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x296 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FF JUMP JUMPDEST PUSH2 0x275 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3ECF JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0xB57 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x320 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x346 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xC08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x356 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x375 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F46 JUMP JUMPDEST PUSH2 0xC6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x2B9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x408 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FD5 JUMP JUMPDEST PUSH2 0xD83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0xFD SLOAD PUSH2 0x248 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0xF01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x1008 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x454 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x463 CALLDATASIZE PUSH1 0x4 PUSH2 0x4000 JUMP JUMPDEST PUSH2 0x102A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x473 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x482 CALLDATASIZE PUSH1 0x4 PUSH2 0x4070 JUMP JUMPDEST PUSH2 0x1138 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x492 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x40A2 JUMP JUMPDEST PUSH2 0x1155 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FD5 JUMP JUMPDEST PUSH2 0x165A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x503 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x512 CALLDATASIZE PUSH1 0x4 PUSH2 0x419F JUMP JUMPDEST PUSH2 0x16D9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x1776 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x53F PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FF SWAP2 SWAP1 PUSH0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x275 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x3DFF JUMP JUMPDEST PUSH2 0x1873 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x2B9 PUSH2 0x19C3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x5E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F8 JUMP JUMPDEST PUSH2 0x1A44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x248 PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x623 DUP3 PUSH2 0x1A98 JUMP JUMPDEST DUP1 PUSH2 0x63E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xDA40804F PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFB DUP1 SLOAD PUSH2 0x653 SWAP1 PUSH2 0x4247 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67F SWAP1 PUSH2 0x4247 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6CA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6A1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6CA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6DD PUSH2 0x1ACD JUMP JUMPDEST PUSH32 0x13413A37E797FDCF9481024E55772FDEDE41168298FFEAD0664159CF5D074555 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x75A JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77E SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7C5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7D7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE DUP11 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH0 SWAP3 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x864 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST SWAP1 POP PUSH2 0x87D DUP10 DUP10 DUP10 DUP10 DUP10 DUP7 DUP11 PUSH2 0x878 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST MLOAD SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0x8DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x42BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x924 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x94A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x430A JUMP JUMPDEST PUSH2 0x953 DUP2 PUSH2 0x20F3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x96E SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x2210 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA20 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA54 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6A JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0xA88 PUSH2 0x237A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND ADDRESS SUB PUSH2 0xAD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x42BE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB1C PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x430A JUMP JUMPDEST PUSH2 0xB4B DUP3 PUSH2 0x20F3 JUMP JUMPDEST PUSH2 0xA88 DUP3 DUP3 PUSH1 0x1 PUSH2 0x2210 JUMP JUMPDEST PUSH0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xBF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x555550535570677261646561626C653A206D757374206E6F742062652063616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6564207468726F7567682064656C656761746563616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC51 JUMPI PUSH1 0x40 MLOAD PUSH4 0x799E780F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC62 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC88 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCA1 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xD25 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xD34 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x23CC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD79 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x92A19C77D2EA87C7F81D50C74403CB2F401780F3AD919571121EFE2BDB427EB1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE00 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE24 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE55 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE6B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 POP PUSH4 0x7A702B3C SWAP2 POP PUSH2 0xECF SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4471 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEE6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF7E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFA2 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFD4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFEA JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFFC JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x96E PUSH2 0x2409 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1025 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2446 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xC6823861EE2BB2198CE6B1FD6FAF4C8F44F745BC804ACA4A762F67E0D507FD8A PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A8 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10CC SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10FD SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1113 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1125 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x87D DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x24DB JUMP JUMPDEST PUSH0 PUSH2 0x114D DUP5 DUP5 DUP5 TIMESTAMP PUSH2 0x1148 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x2506 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0xA82E22387FCA439F316D78CA566F383218AB8AE1B3E830178C9C82CBD16749C0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1204 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1238 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x124E JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 SWAP3 POP PUSH2 0x126C SWAP2 POP POP JUMP JUMPDEST DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x127E JUMPI PUSH2 0x127E PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x12A7 JUMPI PUSH2 0x128C DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BB PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x12ED JUMPI PUSH2 0x12C9 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH3 0x10000 MUL PUSH4 0xFFFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x2 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH2 0x1301 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1337 JUMPI PUSH2 0x130F DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH6 0xFFFF00000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x3 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x134B JUMPI PUSH2 0x134B PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1382 JUMPI PUSH2 0x1359 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x30 SHL MUL PUSH8 0xFFFF000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x4 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1396 JUMPI PUSH2 0x1396 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x13CF JUMPI PUSH2 0x13A4 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH10 0xFFFF0000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x5 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x13E3 JUMPI PUSH2 0x13E3 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x1417 JUMPI PUSH2 0x13F1 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x50 SHL MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x6 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x142B JUMPI PUSH2 0x142B PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x145F JUMPI PUSH2 0x1439 DUP4 PUSH2 0x2522 JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH2 0xFFFF PUSH1 0x60 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x7 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1473 JUMPI PUSH2 0x1473 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x14AD JUMPI PUSH2 0x1483 PUSH1 0x2 DUP5 PUSH2 0x253B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x8 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x14C1 JUMPI PUSH2 0x14C1 PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x15D9 JUMPI PUSH1 0xFD SLOAD DUP4 LT ISZERO PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E277420736574206578706F737572654C696D6974206C65737320746861 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x6E20616374697665206578706F73757265 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x153A PUSH2 0x1008 JUMP JUMPDEST DUP4 GT ISZERO DUP1 PUSH2 0x1559 JUMPI POP PUSH2 0x1559 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH2 0x25CB JUMP JUMPDEST PUSH2 0x15A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E637265617365207265717569726573204C4556454C315F524F4C45000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x15AF PUSH0 DUP5 PUSH2 0x253B JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x161D JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x15ED JUMPI PUSH2 0x15ED PUSH2 0x448E JUMP JUMPDEST SUB PUSH2 0x161D JUMPI PUSH2 0x15FB DUP4 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0xFC DUP1 SLOAD PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1654 DUP5 PUSH1 0x9 DUP2 GT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x163D SWAP1 PUSH1 0x8 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x164E JUMPI PUSH2 0x164E PUSH2 0x448E JUMP JUMPDEST DUP5 PUSH2 0x2723 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E9C0ACF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A702B3C SWAP1 PUSH2 0x16A8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4471 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x172D SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4575 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1749 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x176D SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH0 SWAP1 PUSH2 0x1025 SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x17CD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH1 0xFC SLOAD PUSH2 0xFFFF DUP1 DUP3 AND DUP4 MSTORE PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH5 0x100000000 DUP3 DIV DUP2 AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x30 SHL DUP2 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x50 SHL DUP2 DIV DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV DUP4 AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x70 SHL DUP3 DIV DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x90 SHL DUP3 DIV AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV SWAP1 SWAP2 AND PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x1025 SWAP1 PUSH2 0x2774 JUMP JUMPDEST PUSH32 0xDF0A8869CF58168A14CD7AC426FF1B8C6FF5D5C800C6F44803F3431DCB3BAD1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F0 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1914 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5FF57D20 ADDRESS DUP4 CALLER PUSH0 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1945 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x195B JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x196D JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 POP PUSH2 0x1999 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA88 SWAP1 PUSH1 0x12 SWAP1 PUSH2 0x2723 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A20 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1025 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x172D SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x45D4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x63E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x4D15EB03 PUSH1 0xE0 SHL EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1B1D PUSH2 0x3C6F JUMP JUMPDEST PUSH0 NOT DUP8 SUB PUSH2 0x1B46 JUMPI PUSH2 0x1B43 DUP9 DUP8 DUP8 PUSH2 0x1B3D PUSH2 0x1A0 DUP15 ADD PUSH2 0x180 DUP16 ADD PUSH2 0x4616 JUMP JUMPDEST DUP7 PUSH2 0x2506 JUMP JUMPDEST SWAP7 POP JUMPDEST DUP8 DUP8 LT PUSH2 0x1B95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF TIMESTAMP AND PUSH2 0x1BAF PUSH2 0x1C0 DUP12 ADD PUSH2 0x1A0 DUP13 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x1BFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x13DB19081C1BDB1A58DE481A5CC8195E1C1A5C9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x1C0D PUSH2 0x1C0 DUP11 ADD PUSH2 0x1A0 DUP12 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP6 PUSH5 0xFFFFFFFFFF AND LT ISZERO DUP1 ISZERO PUSH2 0x1C2E JUMPI POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP9 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1C3E JUMPI POP DUP9 PUSH1 0x40 ADD CALLDATALOAD DUP8 LT ISZERO JUMPDEST PUSH2 0x1CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C696379207265706C6163656D656E74206D757374206265206772656174 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6572206F7220657175616C207468616E206F6C6420706F6C6963790000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x1CD3 PUSH2 0x1A0 DUP13 ADD PUSH2 0x180 DUP14 ADD PUSH2 0x4616 JUMP JUMPDEST PUSH2 0x1CDD SWAP1 DUP9 PUSH2 0x462F JUMP JUMPDEST PUSH2 0x1CE7 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x1D3B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x1D49 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x439D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DC9 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E37 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E5B SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO PUSH2 0x1E79 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4689 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND CALLER EQ DUP1 PUSH2 0x1F99 JUMPI POP PUSH2 0x1E99 PUSH1 0x40 DUP11 ADD CALLDATALOAD DUP9 PUSH2 0x439D JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F19 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP7 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F72 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F96 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x1FB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH2 0x1FBD PUSH2 0x1776 JUMP JUMPDEST DUP9 GT ISZERO PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4725 JUMP JUMPDEST PUSH2 0x1FFE ADDRESS DUP4 DUP10 DUP12 DUP11 DUP11 DUP16 PUSH2 0x180 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1FF9 SWAP2 SWAP1 PUSH2 0x4616 JUMP JUMPDEST PUSH2 0x2838 JUMP JUMPDEST SWAP1 POP DUP9 PUSH1 0x20 ADD CALLDATALOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH2 0x2014 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2032 SWAP1 POP PUSH2 0x1008 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x2053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4777 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F6BE0D7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3ED7C1AE SWAP1 PUSH2 0x20A5 SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x47BA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST DUP2 MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x55435DD261A4B9B3364963F7738A7A662AD9C84396D64BE3365284BB7F0A5041 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AC4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x217E JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21A2 SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1CFF1F ADDRESS DUP5 DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21D6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21EC JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21FE JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH2 0x220B DUP4 PUSH2 0x29A8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x4910FDFA16FED3260ED0E7147F7CC6DA11A60208B5B9406D12A635614FFD9143 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2243 JUMPI PUSH2 0x220B DUP4 PUSH2 0x2A66 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x52D1902D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x229D JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x229A SWAP2 DUP2 ADD SWAP1 PUSH2 0x45BD JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2300 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A206E657720696D706C656D656E74617469 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x6F6E206973206E6F742055555053 PUSH1 0x90 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 EQ PUSH2 0x236E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524331393637557067726164653A20756E737570706F727465642070726F78 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1A58589B1955555251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP PUSH2 0x220B DUP4 DUP4 DUP4 PUSH2 0x2B01 JUMP JUMPDEST PUSH2 0x2382 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x23F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x23FA PUSH2 0x2B6E JUMP JUMPDEST PUSH2 0xEF8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2BA4 JUMP JUMPDEST PUSH2 0x2411 PUSH2 0x1ACD JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x23AF CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x2450 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x248B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24AF SWAP2 SWAP1 PUSH2 0x4814 JUMP JUMPDEST PUSH2 0x24B9 SWAP2 SWAP1 PUSH2 0x4834 JUMP JUMPDEST PUSH2 0x24C4 SWAP1 PUSH1 0xA PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x24D4 SWAP1 PUSH4 0xFFFFFFFF DUP5 AND PUSH2 0x493E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x24E3 PUSH2 0x3C6F JUMP JUMPDEST PUSH2 0x24FA DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x24F5 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x2DAE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2514 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x32C7 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x63E PUSH2 0x2536 PUSH6 0x5AF3107A4000 DUP5 PUSH2 0x4955 JUMP JUMPDEST PUSH2 0x26BD JUMP JUMPDEST PUSH0 PUSH2 0x24D4 DUP4 PUSH2 0x2548 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2583 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A7 SWAP2 SWAP1 PUSH2 0x4814 JUMP JUMPDEST PUSH2 0x25B1 SWAP2 SWAP1 PUSH2 0x4834 JUMP JUMPDEST PUSH2 0x25BC SWAP1 PUSH1 0xA PUSH2 0x4930 JUMP JUMPDEST PUSH2 0x25C6 SWAP1 DUP5 PUSH2 0x4955 JUMP JUMPDEST PUSH2 0x34BA JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x71907F17 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2628 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264C SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3EFCBD2 ADDRESS DUP5 CALLER PUSH1 0x1 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x267E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2699 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x63E SWAP2 SWAP1 PUSH2 0x4968 JUMP JUMPDEST PUSH0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x271F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x362062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x272B PUSH2 0x351E JUMP JUMPDEST DUP2 PUSH1 0x2D DUP2 GT ISZERO PUSH2 0x273D JUMPI PUSH2 0x273D PUSH2 0x448E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x7BC647FE5043209E2019AA3503B79C1B0DD83EB61C56013D373A7584FF6BFB13 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x27AD PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xE0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x27C4 DUP5 PUSH0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27D6 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27E8 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x27FA DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x280C DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x281E DUP5 PUSH1 0xA0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2830 DUP5 PUSH1 0xC0 ADD MLOAD PUSH2 0x357B JUMP JUMPDEST SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2840 PUSH2 0x3C6F JUMP JUMPDEST DUP5 DUP7 GT ISZERO PUSH2 0x289B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D2063616E6E6F74206265206D6F7265207468616E207061796F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1D5D PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x28A3 PUSH2 0x3C6F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP5 AND PUSH2 0x180 DUP4 ADD MSTORE DUP5 AND PUSH2 0x1A0 DUP3 ADD MSTORE PUSH0 PUSH2 0x28ED DUP10 DUP9 DUP9 DUP9 DUP9 PUSH2 0x32C7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x80 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 ADD MLOAD PUSH2 0x120 DUP6 ADD MSTORE DUP2 ADD MLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xE0 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 ADD MLOAD SWAP1 SWAP2 POP DUP9 LT ISZERO PUSH2 0x2986 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206C657373207468616E206D696E696D756D00000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD MLOAD PUSH2 0x2995 SWAP1 DUP10 PUSH2 0x439D JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B1 DUP2 PUSH2 0x3590 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x73A952E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A1B JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A3F SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x50F87E1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x2AD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x4AA4 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2B0A DUP4 PUSH2 0x3641 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2B16 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x220B JUMPI PUSH2 0x1654 DUP4 DUP4 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0xFF AND PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2B94 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x2B9C PUSH2 0x36A5 JUMP JUMPDEST PUSH2 0x1B13 PUSH2 0x36CB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2BCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH1 0xFB PUSH2 0x2BD6 DUP9 DUP3 PUSH2 0x49D2 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x140 DUP2 ADD DUP3 MSTORE PUSH2 0x2710 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD PUSH2 0x2BF9 DUP9 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C0B DUP8 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x2C2A DUP7 PUSH2 0x2522 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C3E PUSH1 0x2 DUP7 PUSH2 0x253B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C53 PUSH0 DUP6 PUSH2 0x253B JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP1 DUP2 AND DUP3 MSTORE PUSH2 0x2238 PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0xFC DUP1 SLOAD SWAP4 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD PUSH2 0x100 DUP13 ADD MLOAD PUSH2 0x120 SWAP1 SWAP13 ADD MLOAD PUSH2 0xFFFF SWAP10 DUP11 AND PUSH4 0xFFFFFFFF NOT SWAP1 SWAP13 AND SWAP12 SWAP1 SWAP12 OR PUSH3 0x10000 SWAP8 DUP11 AND SWAP8 SWAP1 SWAP8 MUL SWAP7 SWAP1 SWAP7 OR PUSH8 0xFFFFFFFF00000000 NOT AND PUSH5 0x100000000 SWAP6 DUP10 AND SWAP6 SWAP1 SWAP6 MUL PUSH8 0xFFFF000000000000 NOT AND SWAP5 SWAP1 SWAP5 OR PUSH1 0x1 PUSH1 0x30 SHL SWAP4 DUP9 AND SWAP4 SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH12 0xFFFFFFFF0000000000000000 NOT AND PUSH1 0x1 PUSH1 0x40 SHL SWAP2 DUP8 AND SWAP2 SWAP1 SWAP2 MUL PUSH2 0xFFFF PUSH1 0x50 SHL NOT AND OR PUSH1 0x1 PUSH1 0x50 SHL SWAP2 DUP7 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 SHL NOT AND PUSH1 0x1 PUSH1 0x60 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL PUSH4 0xFFFFFFFF PUSH1 0x70 SHL NOT AND OR PUSH1 0x1 PUSH1 0x70 SHL SWAP2 DUP6 AND SWAP2 SWAP1 SWAP2 MUL OR PUSH6 0xFFFFFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x1 PUSH1 0x90 SHL SWAP6 SWAP1 SWAP4 AND SWAP5 SWAP1 SWAP5 MUL PUSH2 0xFFFF PUSH1 0xB0 SHL NOT AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 PUSH1 0xB0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE PUSH0 PUSH1 0xFD SSTORE PUSH1 0xFE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0xEF8 PUSH2 0x351E JUMP JUMPDEST PUSH2 0x2DB6 PUSH2 0x3C6F JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP10 ADD PUSH2 0x2DCF JUMPI PUSH2 0x2DCC DUP11 DUP10 DUP10 DUP5 DUP8 PUSH2 0x2506 JUMP JUMPDEST SWAP9 POP JUMPDEST DUP10 DUP10 LT PUSH2 0x2E1E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5072656D69756D206D757374206265206C657373207468616E207061796F7574 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF AND DUP8 PUSH5 0xFFFFFFFFFF AND GT PUSH2 0x2E7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45787069726174696F6E206D75737420626520696E2074686520667574757265 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFC SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xE10 PUSH2 0x2E96 DUP4 DUP11 PUSH2 0x462F JUMP JUMPDEST PUSH2 0x2EA0 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x2EF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506F6C6963792065786365656473206D6178206475726174696F6E0000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x2F4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x437573746F6D65722063616E2774206265207A65726F20616464726573730000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FA7 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FCB SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3039 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x305D SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO PUSH2 0x307B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4689 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND CALLER EQ DUP1 PUSH2 0x318E JUMPI POP DUP9 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE5A6B10F PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30EA JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x310E SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDD62ED3E DUP9 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3167 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x318B SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST LT ISZERO JUMPDEST PUSH2 0x31AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x46D6 JUMP JUMPDEST PUSH2 0x31B2 PUSH2 0x1776 JUMP JUMPDEST DUP11 GT ISZERO PUSH2 0x31D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4725 JUMP JUMPDEST PUSH2 0x31E0 ADDRESS DUP5 DUP12 DUP14 DUP13 DUP13 DUP8 PUSH2 0x2838 JUMP JUMPDEST SWAP2 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0xFD PUSH0 DUP3 DUP3 SLOAD PUSH2 0x31F7 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3205 SWAP1 POP PUSH2 0x1008 JUMP JUMPDEST PUSH1 0xFD SLOAD GT ISZERO PUSH2 0x3226 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x4777 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6769A76F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6769A76F SWAP1 PUSH2 0x3278 SWAP1 DUP6 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x45D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3294 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32B8 SWAP2 SWAP1 PUSH2 0x45BD JUMP JUMPDEST DUP3 MSTORE POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3307 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x331F SWAP1 PUSH2 0x3318 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x3331 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD LT ISZERO PUSH2 0x335B JUMPI DUP1 MLOAD PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH2 0x3353 SWAP1 DUP4 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x3362 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x3372 SWAP1 DUP7 SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x3388 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x33BD JUMPI PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x33A4 SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST DUP2 PUSH1 0x40 ADD DUP2 DUP2 MLOAD PUSH2 0x33B5 SWAP2 SWAP1 PUSH2 0x439D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x33C4 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD MSTORE JUMPDEST PUSH2 0x3401 PUSH4 0x1E13380 PUSH2 0x33D6 DUP5 DUP7 PUSH2 0x462F JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xA0 ADD MLOAD PUSH2 0x33EC SWAP2 SWAP1 PUSH2 0x493E JUMP JUMPDEST PUSH2 0x33F6 SWAP2 SWAP1 PUSH2 0x4955 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x3443 PUSH4 0x1E13380 PUSH2 0x3418 DUP5 DUP7 PUSH2 0x462F JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND DUP9 PUSH1 0xC0 ADD MLOAD PUSH2 0x342E SWAP2 SWAP1 PUSH2 0x493E JUMP JUMPDEST PUSH2 0x3438 SWAP2 SWAP1 PUSH2 0x4955 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MLOAD SWAP1 PUSH2 0x36F9 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH0 SWAP2 PUSH2 0x345A SWAP2 PUSH2 0x44A2 JUMP JUMPDEST SWAP1 POP PUSH2 0x3473 DUP8 PUSH1 0x80 ADD MLOAD DUP3 PUSH2 0x36F9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x60 DUP9 ADD MLOAD DUP4 MLOAD PUSH2 0x3483 SWAP2 PUSH2 0x36F9 JUMP JUMPDEST PUSH2 0x348D SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD DUP3 SWAP2 PUSH2 0x34A1 SWAP2 PUSH2 0x44A2 JUMP JUMPDEST PUSH2 0x34AB SWAP2 SWAP1 PUSH2 0x44A2 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x271F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0xFD SLOAD PUSH2 0x3529 PUSH2 0x1008 JUMP JUMPDEST LT ISZERO PUSH2 0x3548 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ADCCA45 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xFE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3571 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4D1C2869 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B13 PUSH1 0xFC PUSH2 0x372F JUMP JUMPDEST PUSH0 PUSH2 0x63E PUSH6 0x5AF3107A4000 PUSH2 0xFFFF DUP5 AND PUSH2 0x493E JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4D15EB03 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35F6 JUMPI RETURNDATASIZE PUSH0 PUSH0 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361A SWAP2 SWAP1 PUSH2 0x4279 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2B3D33F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x364A DUP2 PUSH2 0x2A66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x24D4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4AE4 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3B2C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1B13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x36F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH2 0x1B13 PUSH2 0x3BA0 JUMP JUMPDEST PUSH0 DUP2 ISZERO PUSH8 0x6F05B59D3B20000 NOT DUP4 SWAP1 DIV DUP5 GT ISZERO OR PUSH2 0x3715 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH8 0xDE0B6B3A7640000 SWAP2 MUL PUSH8 0x6F05B59D3B20000 ADD DIV SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72436F6C6C526174696F206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x3C3D31 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH5 0x100000000 SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT DUP1 ISZERO SWAP1 PUSH2 0x37C5 JUMPI POP DUP1 SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x381B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F206D757374206265203C3D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0xFFFF PUSH3 0x10000 DUP3 DIV DUP2 AND PUSH5 0x100000000 SWAP1 SWAP3 DIV AND LT ISZERO PUSH2 0x388C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20636F6C6C526174696F203E3D206A72436F6C6C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x6174696F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x9C40 PUSH2 0xFFFF SWAP1 SWAP2 AND GT DUP1 ISZERO SWAP1 PUSH2 0x38AE JUMPI POP DUP1 SLOAD PUSH2 0x1388 PUSH2 0xFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST PUSH2 0x38FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206D6F63206D757374206265205B302E352C20345D PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x30 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3965 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F5070466565206D75737420626520 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x3C3D2031 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x39D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A20656E7375726F436F63466565206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x203C3D2031 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x60 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3A3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A207372526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH2 0x2710 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH2 0xFFFF AND GT ISZERO PUSH2 0x3AAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x56616C69646174696F6E3A206A72526F63206D757374206265203C3D20312028 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x3130302529 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3AD6 JUMPI POP DUP1 SLOAD PUSH1 0x1 PUSH1 0x70 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND ISZERO ISZERO JUMPDEST PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578706F7375726520616E64204D61785061796F7574206D757374206265203E PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x3B48 SWAP2 SWAP1 PUSH2 0x4A8D JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3B80 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3B85 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3B96 DUP7 DUP4 DUP4 DUP8 PUSH2 0x3BD2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP1 PUSH2 0x47C9 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3C40 JUMPI DUP3 MLOAD PUSH0 SUB PUSH2 0x3C39 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3C39 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8D3 JUMP JUMPDEST POP DUP2 PUSH2 0x114D JUMP JUMPDEST PUSH2 0x114D DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3C55 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D3 SWAP2 SWAP1 PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH5 0xFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D54 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3D6E JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3D6E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x260 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3D9F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3DA9 DUP9 DUP9 PUSH2 0x3D43 JUMP JUMPDEST SWAP6 POP PUSH2 0x1C0 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH2 0x1E0 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH2 0x3DD0 PUSH2 0x220 DUP9 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP2 POP PUSH2 0x3DDF PUSH2 0x240 DUP9 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x96E JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E0F JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x24D4 DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3E52 JUMPI PUSH2 0x3E52 PUSH2 0x3E1A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH0 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x3E72 JUMPI PUSH2 0x3E72 PUSH2 0x3E1A JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3EA1 JUMPI PUSH2 0x3EA1 PUSH2 0x3E1A JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP6 LT ISZERO PUSH2 0x3EB8 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EE0 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3EEB DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F06 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3F16 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3F25 DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F3F JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3F5C JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F72 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP9 ADD PUSH1 0x1F DUP2 ADD DUP11 SGT PUSH2 0x3F82 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3F91 DUP11 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x3FC5 DUP2 PUSH2 0x3DEB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH2 0x1E0 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FE7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x3FF1 DUP5 DUP5 PUSH2 0x3D43 JUMP JUMPDEST SWAP5 PUSH2 0x1C0 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x4016 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH2 0x4034 PUSH1 0x60 DUP10 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH2 0x4044 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH2 0x4054 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x4062 PUSH1 0xC0 DUP10 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4082 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4099 PUSH1 0x40 DUP6 ADD PUSH2 0x3D5A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x40B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0xA DUP2 LT PUSH2 0x40C1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3D6E DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH0 PUSH2 0x1C0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40EB JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40F3 PUSH2 0x3E2E JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH2 0x416D PUSH2 0x160 DUP4 ADD PUSH2 0x40CF JUMP JUMPDEST PUSH2 0x160 DUP3 ADD MSTORE PUSH2 0x4180 PUSH2 0x180 DUP4 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x180 DUP3 ADD MSTORE PUSH2 0x4193 PUSH2 0x1A0 DUP4 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH2 0x1A0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x3C0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x41B3 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x41BD DUP7 DUP7 PUSH2 0x40DA JUMP JUMPDEST SWAP4 POP PUSH2 0x41CD DUP7 PUSH2 0x1C0 DUP8 ADD PUSH2 0x40DA JUMP JUMPDEST SWAP3 POP PUSH2 0x380 DUP6 ADD CALLDATALOAD PUSH2 0x41DE DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x41ED PUSH2 0x3A0 DUP7 ADD PUSH2 0x3D73 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH2 0x220 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x420C JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x4216 DUP7 DUP7 PUSH2 0x40DA JUMP JUMPDEST SWAP4 POP PUSH2 0x1C0 DUP6 ADD CALLDATALOAD PUSH2 0x4227 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP3 POP PUSH2 0x1E0 DUP6 ADD CALLDATALOAD PUSH2 0x4238 DUP2 PUSH2 0x3DEB JUMP JUMPDEST SWAP2 POP PUSH2 0x41ED PUSH2 0x200 DUP7 ADD PUSH2 0x3D73 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x425B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3D54 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4289 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x24D4 DUP2 PUSH2 0x3DEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x19195B1959D85D1958D85B1B PUSH1 0xA2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2C SWAP1 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206D7573742062652063616C6C6564207468726F75676820 PUSH1 0x40 DUP3 ADD MSTORE PUSH12 0x6163746976652070726F7879 PUSH1 0xA0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP3 AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 ISZERO ISZERO PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST DUP1 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x40 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x120 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x140 DUP1 DUP3 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x4428 PUSH2 0x160 DUP3 ADD PUSH2 0x40CF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x4444 PUSH2 0x180 DUP3 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH2 0x180 DUP4 ADD MSTORE PUSH2 0x445E PUSH2 0x1A0 DUP3 ADD PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH2 0x1A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP2 ADD PUSH2 0x4480 DUP3 DUP6 PUSH2 0x43B0 JUMP JUMPDEST DUP3 PUSH2 0x1C0 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP2 ADD MLOAD PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x120 DUP2 ADD MLOAD PUSH2 0x120 DUP4 ADD MSTORE PUSH2 0x140 DUP2 ADD MLOAD PUSH2 0x140 DUP4 ADD MSTORE PUSH2 0x160 DUP2 ADD MLOAD PUSH2 0x453F PUSH2 0x160 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH2 0x455A PUSH2 0x180 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH2 0x1A0 DUP2 ADD MLOAD PUSH2 0x220B PUSH2 0x1A0 DUP5 ADD DUP3 PUSH5 0xFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4584 DUP3 DUP8 PUSH2 0x44B5 JUMP JUMPDEST PUSH2 0x4592 PUSH2 0x1C0 DUP4 ADD DUP7 PUSH2 0x44B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH2 0x380 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH2 0x3A0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45CD JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x220 DUP2 ADD PUSH2 0x45E3 DUP3 DUP8 PUSH2 0x44B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH2 0x1C0 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP4 AND PUSH2 0x1E0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x200 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4626 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x24D4 DUP3 PUSH2 0x3D5A JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH5 0xFFFFFFFFFF DUP4 AND DUP1 PUSH2 0x4676 JUMPI PUSH2 0x4676 PUSH2 0x464C JUMP JUMPDEST DUP1 PUSH5 0xFFFFFFFFFF DUP5 AND DIV SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x596F75206D75737420616C6C6F7720454E5355524F20746F207472616E736665 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x7220746865207072656D69756D PUSH1 0x98 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2F SWAP1 DUP3 ADD MSTORE PUSH32 0x5061796572206D75737420616C6C6F772063616C6C657220746F207472616E73 PUSH1 0x40 DUP3 ADD MSTORE PUSH15 0x66657220746865207072656D69756D PUSH1 0x88 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A205061796F7574206973206D6F7265207468616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x6D6178696D756D2070657220706F6C696379 PUSH1 0x70 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x5269736B4D6F64756C653A204578706F73757265206C696D6974206578636565 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x191959 PUSH1 0xEA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3C0 DUP2 ADD PUSH2 0x4584 DUP3 DUP8 PUSH2 0x43B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4824 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0x4888 JUMPI DUP1 DUP6 DIV DUP2 GT ISZERO PUSH2 0x486C JUMPI PUSH2 0x486C PUSH2 0x4389 JUMP JUMPDEST PUSH1 0x1 DUP5 AND ISZERO PUSH2 0x487A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST PUSH1 0x1 SWAP4 SWAP1 SWAP4 SHR SWAP3 DUP1 MUL PUSH2 0x4851 JUMP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x489E JUMPI POP PUSH1 0x1 PUSH2 0x63E JUMP JUMPDEST DUP2 PUSH2 0x48AA JUMPI POP PUSH0 PUSH2 0x63E JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x48C0 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x48CA JUMPI PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x63E JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x48DB JUMPI PUSH2 0x48DB PUSH2 0x4389 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x63E JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4909 JUMPI POP DUP2 DUP2 EXP PUSH2 0x63E JUMP JUMPDEST PUSH2 0x4915 PUSH0 NOT DUP5 DUP5 PUSH2 0x484D JUMP JUMPDEST DUP1 PUSH0 NOT DIV DUP3 GT ISZERO PUSH2 0x4928 JUMPI PUSH2 0x4928 PUSH2 0x4389 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24D4 PUSH1 0xFF DUP5 AND DUP4 PUSH2 0x4890 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x63E JUMPI PUSH2 0x63E PUSH2 0x4389 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4963 JUMPI PUSH2 0x4963 PUSH2 0x464C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4978 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x24D4 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x220B JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x49AC JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x49CB JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x49B8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x49EC JUMPI PUSH2 0x49EC PUSH2 0x3E1A JUMP JUMPDEST PUSH2 0x4A00 DUP2 PUSH2 0x49FA DUP5 SLOAD PUSH2 0x4247 JUMP JUMPDEST DUP5 PUSH2 0x4987 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4A32 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x4A1B JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x49CB JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4A61 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4A41 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x4A7E JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP6 ADD DUP5 MCOPY PUSH0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBCBF372CA3EBECFE59AC256F OR PUSH10 0x7941BBE63302ACED610E DUP12 0xE CALLDATASIZE CHAINID 0xF7 NUMBER 0xC7 0xBE 0xB2 COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220BD67EF DUP2 0xB2 0xB9 0xB0 JUMPDEST 0xDC PUSH10 0xE0E4DC8A7DC5C386930D LOG3 0xC8 CALLER CODESIZE DUP8 DUP7 MSIZE MULMOD EXTCODEHASH DUP10 0xDC SLOAD PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"581:3014:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:193:60;;;;;;;;;;-1:-1:-1;5376:193:60;;;;;:::i;:::-;;:::i;:::-;;;470:14:88;;463:22;445:41;;433:2;418:18;5376:193:60;;;;;;;;6900:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2875:449:86:-;;;;;;;;;;-1:-1:-1;2875:449:86;;;;;:::i;:::-;;:::i;:::-;;;2338:25:88;;;2326:2;2311:18;2875:449:86;2192:177:88;3408:195:7;;;;;;;;;;-1:-1:-1;3408:195:7;;;;;:::i;:::-;;:::i;:::-;;3916:102:57;;;;;;;;;;;;;:::i;4022:94::-;;;;;;;;;;-1:-1:-1;4100:11:57;4022:94;;;-1:-1:-1;;;;;3069:32:88;;;3051:51;;3039:2;3024:18;4022:94:57;2884:224:88;3922:220:7;;;;;;:::i;:::-;;:::i;8309:82:60:-;;;;;;;;;;-1:-1:-1;8379:7:60;;-1:-1:-1;;;;;8379:7:60;8309:82;;3027:131:7;;;;;;;;;;;;;:::i;1879:84:8:-;;;;;;;;;;-1:-1:-1;1949:7:8;;;;1879:84;;16309:342:60;;;;;;;;;;-1:-1:-1;16309:342:60;;;;;:::i;:::-;;:::i;8104:99::-;;;;;;;;;;-1:-1:-1;8179:7:60;:19;-1:-1:-1;;;8179:19:60;;;;8104:99;;1635:335:86;;;;;;;;;;-1:-1:-1;1635:335:86;;;;;:::i;:::-;;:::i;16655:111:60:-;;;;;;;;;;-1:-1:-1;16745:16:60;16655:111;;689:66:86;;;;;;;;;;;;729:26;689:66;;2554:168;;;;;;;;;;-1:-1:-1;2554:168:86;;;;;:::i;:::-;;:::i;8207:98:60:-;;;;;;;;;;-1:-1:-1;8285:15:60;;8207:98;;3828:84:57;;;;;;;;;;;;;:::i;7982:118:60:-;;;;;;;;;;;;;:::i;1974:334:86:-;;;;;;;;;;-1:-1:-1;1974:334:86;;;;;:::i;:::-;;:::i;10804:235:60:-;;;;;;;;;;-1:-1:-1;10804:235:60;;;;;:::i;:::-;;:::i;759:66:86:-;;;;;;;;;;;;799:26;759:66;;8395:1423:60;;;;;;;;;;-1:-1:-1;8395:1423:60;;;;;:::i;:::-;;:::i;2726:145:86:-;;;;;;;;;;-1:-1:-1;2726:145:86;;;;;:::i;:::-;;:::i;3328:265::-;;;;;;;;;;-1:-1:-1;3328:265:86;;;;;:::i;:::-;;:::i;7850:128:60:-;;;;;;;;;;;;;:::i;9822:115::-;;;;;;;;;;;;;:::i;:::-;;;;;;11509:4:88;11551:3;11540:9;11536:19;11528:27;;11588:6;11582:13;11571:9;11564:32;11652:4;11644:6;11640:17;11634:24;11627:4;11616:9;11612:20;11605:54;11715:4;11707:6;11703:17;11697:24;11690:4;11679:9;11675:20;11668:54;11778:4;11770:6;11766:17;11760:24;11753:4;11742:9;11738:20;11731:54;11841:4;11833:6;11829:17;11823:24;11816:4;11805:9;11801:20;11794:54;11904:4;11896:6;11892:17;11886:24;11879:4;11868:9;11864:20;11857:54;11967:4;11959:6;11955:17;11949:24;11942:4;11931:9;11927:20;11920:54;11367:613;;;;;10529:271:60;;;;;;;;;;-1:-1:-1;10529:271:60;;;;;:::i;:::-;;:::i;4120:97:57:-;;;;;;;;;;;;;:::i;2312:238:86:-;;;;;;;;;;-1:-1:-1;2312:238:86;;;;;:::i;:::-;;:::i;623:62::-;;;;;;;;;;;;661:24;623:62;;5376:193:60;5461:4;5480:36;5504:11;5480:23;:36::i;:::-;:84;;;-1:-1:-1;;;;;;;5520:44:60;;-1:-1:-1;;;5520:44:60;5480:84;5473:91;5376:193;-1:-1:-1;;5376:193:60:o;6900:84::-;6946:13;6974:5;6967:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:84;:::o;2875:449:86:-;3118:7;1503:19:8;:17;:19::i;:::-;799:26:86::1;2377:11:57;-1:-1:-1::0;;;;;2377:18:57::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2377:39:57::1;;2425:4;2432::::0;965:10:14;2452:5:57::1;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;3154:51:86::2;::::0;-1:-1:-1;;;3154:51:86;;3192:12;::::2;3154:51;::::0;::::2;2338:25:88::0;3133:18:86::2;::::0;-1:-1:-1;3170:11:86::2;-1:-1:-1::0;;;;;3154:37:86::2;::::0;-1:-1:-1;3154:37:86::2;::::0;2311:18:88;;3154:51:86::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3133:72;;3218:98;3233:9;3244:6;3252:7;3261:8;3271:10;3283;3295;3307:8;:6;:8::i;:::-;3218:14;:98::i;:::-;:101:::0;;2875:449;-1:-1:-1;;;;;;;;;2875:449:86:o;3408:195:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;3916:102:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:10:::1;:8;:10::i;:::-;3916:102:::0;;:::o;3922:220:7:-;-1:-1:-1;;;;;1764:6:7;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:7;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:7;:20;-1:-1:-1;;;;;;;;;;;1557:65:4;-1:-1:-1;;;;;1557:65:4;;1478:151;1837:20:7;-1:-1:-1;;;;;1837:30:7;;1829:87;;;;-1:-1:-1;;;1829:87:7;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;3027:131::-:0;3105:7;2190:4;-1:-1:-1;;;;;2199:6:7;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:7;;15744:2:88;2174:92:7;;;15726:21:88;15783:2;15763:18;;;15756:30;15822:34;15802:18;;;15795:62;15893:26;15873:18;;;15866:54;15937:19;;2174:92:7;15542:420:88;2174:92:7;-1:-1:-1;;;;;;;;;;;;3027:131:7;:::o;16309:342:60:-;965:10:14;2283:11:57;-1:-1:-1;;;;;2259:36:57;;2251:63;;;;-1:-1:-1;;;2251:63:57;;;;;;;;;;;;16640:6:60::1;16621:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16309:342:60:o;1635:335:86:-;3279:19:6;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:6;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:6;1713:19:13;:23;;;3387:66:6;;-1:-1:-1;3436:12:6;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:6;;16434:2:88;3325:201:6;;;16416:21:88;16473:2;16453:18;;;16446:30;16512:34;16492:18;;;16485:62;-1:-1:-1;;;16563:18:88;;;16556:44;16617:19;;3325:201:6;16232:410:88;3325:201:6;3536:12;:16;;-1:-1:-1;;3536:16:6;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:6;;;;;3562:65;1861:104:86::1;1879:5;1886:10;1898:12;1912:6;1920:19;1941:14;1957:7;1861:17;:104::i;:::-;3651:14:6::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:6;;;3721:14;;-1:-1:-1;16799:36:88;;3721:14:6;;16787:2:88;16772:18;3721:14:6;;;;;;;3647:99;3269:483;1635:335:86;;;;;;;:::o;2554:168::-;729:26;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2676:41:86::1;::::0;-1:-1:-1;;;2676:41:86;;-1:-1:-1;;;;;2676:11:86::1;:25;::::0;-1:-1:-1;2676:25:86::1;::::0;-1:-1:-1;2676:41:86::1;::::0;2702:6;;2710;;2676:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2554:168:::0;;;:::o;3828:84:57:-;1664:26;2529:11;-1:-1:-1;;;;;2529:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2529:39:57;;2577:4;2584;965:10:14;2604:4:57;2529:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3899:8:::1;:6;:8::i;7982:118:60:-:0;8073:7;:21;8037:7;;8059:36;;8037:7;;-1:-1:-1;;;8073:21:60;;;;8059:10;:36::i;:::-;8052:43;;7982:118;:::o;1974:334:86:-;2198:7;661:24;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2220:80:86::1;2231:6;2239:7;2248:8;2258:10;2270:5;2277:10;2289;2220;:80::i;10804:235:60:-:0;10929:7;10951:83;10970:6;10978:8;10988:10;11007:15;11025:8;:6;:8::i;:::-;10951:18;:83::i;:::-;10944:90;10804:235;-1:-1:-1;;;;10804:235:60:o;8395:1423::-;-1:-1:-1;;;;;;;;;;;1802:24:57;2697:11;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8529:13:60::1;::::0;-1:-1:-1;8520:22:60::1;::::0;-1:-1:-1;;8520:22:60;::::1;:5;:22;;;;;;;;:::i;:::-;::::0;8516:1146:::1;;8566:17;8574:8;8566:7;:17::i;:::-;8552:7;:31:::0;;-1:-1:-1;;8552:31:60::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8516:1146:::1;;;8609:21;8600:5;:30;;;;;;;;:::i;:::-;::::0;8596:1066:::1;;8662:17;8670:8;8662:7;:17::i;:::-;8640:7;:39:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8640:39:60;;::::1;::::0;;;::::1;::::0;;8596:1066:::1;;;8705:19;8696:5;:28;;;;;;;;:::i;:::-;::::0;8692:970:::1;;8754:17;8762:8;8754:7;:17::i;:::-;8734:7;:37:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;8734:37:60;;::::1;::::0;;;::::1;::::0;;8692:970:::1;;;8797:21;8788:5;:30;;;;;;;;:::i;:::-;::::0;8784:878:::1;;8850:17;8858:8;8850:7;:17::i;:::-;8828:7;:39:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8828:39:60::1;-1:-1:-1::0;;8828:39:60;;::::1;::::0;;;::::1;::::0;;8784:878:::1;;;8893:22;8884:5;:31;;;;;;;;:::i;:::-;::::0;8880:782:::1;;8948:17;8956:8;8948:7;:17::i;:::-;8925:7;:40:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;8925:40:60::1;-1:-1:-1::0;;8925:40:60;;::::1;::::0;;;::::1;::::0;;8880:782:::1;;;8991:15;8982:5;:24;;;;;;;;:::i;:::-;::::0;8978:684:::1;;9032:17;9040:8;9032:7;:17::i;:::-;9016:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9016:33:60::1;-1:-1:-1::0;;;;9016:33:60;;::::1;::::0;;;::::1;::::0;;8978:684:::1;;;9075:15;9066:5;:24;;;;;;;;:::i;:::-;::::0;9062:600:::1;;9116:17;9124:8;9116:7;:17::i;:::-;9100:7;:33:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9100:33:60::1;-1:-1:-1::0;;;;9100:33:60;;::::1;::::0;;;::::1;::::0;;9062:600:::1;;;9159:28;9150:5;:37;;;;;;;;:::i;:::-;::::0;9146:516:::1;;9226:23;9237:1;9240:8;9226:10;:23::i;:::-;9197:7;:52:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9197:52:60::1;-1:-1:-1::0;;;;9197:52:60;;::::1;::::0;;;::::1;::::0;;9146:516:::1;;;9275:23;9266:5;:32;;;;;;;;:::i;:::-;::::0;9262:400:::1;;9328:15;;9316:8;:27;;9308:89;;;::::0;-1:-1:-1;;;9308:89:60;;19371:2:88;9308:89:60::1;::::0;::::1;19353:21:88::0;19410:2;19390:18;;;19383:30;19449:34;19429:18;;;19422:62;-1:-1:-1;;;19500:18:88;;;19493:47;19557:19;;9308:89:60::1;19169:413:88::0;9308:89:60::1;9425:15;:13;:15::i;:::-;9413:8;:27;;:55;;;;9444:24;-1:-1:-1::0;;;;;;;;;;;9444:11:60::1;:24::i;:::-;9405:97;;;::::0;-1:-1:-1;;;9405:97:60;;19789:2:88;9405:97:60::1;::::0;::::1;19771:21:88::0;19828:2;19808:18;;;19801:30;19867:31;19847:18;;;19840:59;19916:18;;9405:97:60::1;19587:353:88::0;9405:97:60::1;9534:23;9545:1;9548:8;9534:10;:23::i;:::-;9510:7;:47:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9510:47:60::1;-1:-1:-1::0;;;;9510:47:60;;::::1;::::0;;;::::1;::::0;;9262:400:::1;;;9583:21;9574:5;:30;;;;;;;;:::i;:::-;::::0;9570:92:::1;;9636:19;:8;:17;:19::i;:::-;9614:7;:41:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;9614:41:60::1;-1:-1:-1::0;;;;9614:41:60;;::::1;::::0;;;::::1;::::0;;9570:92:::1;9667:146;9784:5;9776:14;;;;;;;;:::i;:::-;9725:65;::::0;9733:39:::1;9725:65;:::i;:::-;9692:99;;;;;;;;:::i;:::-;9799:8;9667:17;:146::i;:::-;8395:1423:::0;;;;:::o;2726:145:86:-;2825:41;;-1:-1:-1;;;2825:41:86;;-1:-1:-1;;;;;2825:11:86;:25;;;;:41;;2851:6;;2859;;2825:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:145;;:::o;3328:265::-;3521:67;;-1:-1:-1;;;3521:67:86;;3499:7;;-1:-1:-1;;;;;3521:11:86;:25;;;;:67;;3547:9;;3558:10;;3570:5;;3577:10;;3521:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3514:74;3328:265;-1:-1:-1;;;;;3328:265:86:o;7850:128:60:-;7946:7;:26;7910:7;;7932:41;;7943:1;;-1:-1:-1;;;7946:26:60;;;;7932:10;:41::i;9822:115::-;9878:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9878:17:60;9910:22;;;;;;;;9924:7;9910:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;-1:-1:-1;;;9910:22:60;;;;;;;;;;;:13;:22::i;10529:271::-;1411:29;2377:11:57;-1:-1:-1;;;;;2377:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2377:39:57;;2425:4;2432;965:10:14;2452:5:57;2377:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;10620:21:60;::::1;::::0;-1:-1:-1;10616:63:60::1;;10658:14;;-1:-1:-1::0;;;10658:14:60::1;;;;;;;;;;;10616:63;10684:7;:17:::0;;-1:-1:-1;;;;;;10684:17:60::1;-1:-1:-1::0;;;;;10684:17:60;::::1;::::0;;::::1;::::0;;;10707:88:::1;::::0;10725:42:::1;::::0;10707:17:::1;:88::i;4120:97:57:-:0;4161:14;4190:11;-1:-1:-1;;;;;4190:20:57;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2312:238:86:-;2483:62;;-1:-1:-1;;;2483:62:86;;2461:7;;-1:-1:-1;;;;;2483:11:86;:21;;;;:62;;2505:6;;2513:5;;2520:12;;2534:10;;2483:62;;;:::i;3618:206:57:-;3703:4;-1:-1:-1;;;;;;3722:40:57;;-1:-1:-1;;;3722:40:57;;:97;;-1:-1:-1;;;;;;;3766:53:57;;-1:-1:-1;;;3766:53:57;3715:104;3618:206;-1:-1:-1;;3618:206:57:o;2031:106:8:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:8;;22953:2:88;2092:38:8;;;22935:21:88;22992:2;22972:18;;;22965:30;-1:-1:-1;;;23011:18:88;;;23004:46;23067:18;;2092:38:8;22751:340:88;2092:38:8;2031:106::o;14606:1699:60:-;14857:31;;:::i;:::-;-1:-1:-1;;14900:7:60;:28;14896:133;;14948:74;14967:6;14975:8;14985:10;14997:15;;;;;;;;:::i;:::-;15014:7;14948:18;:74::i;:::-;14938:84;;14896:133;15052:6;15042:7;:16;15034:61;;;;-1:-1:-1;;;15034:61:60;;23487:2:88;15034:61:60;;;23469:21:88;;;23506:18;;;23499:30;23565:34;23545:18;;;23538:62;23617:18;;15034:61:60;23285:356:88;15034:61:60;15109:46;15139:15;15109:46;:20;;;;;;;;:::i;:::-;:46;;;15101:80;;;;-1:-1:-1;;;15101:80:60;;23848:2:88;15101:80:60;;;23830:21:88;23887:2;23867:18;;;23860:30;-1:-1:-1;;;23906:18:88;;;23899:51;23967:18;;15101:80:60;23646:345:88;15101:80:60;15216:20;;;;;;;;:::i;:::-;15202:34;;:10;:34;;;;:64;;;;;15250:9;:16;;;15240:6;:26;;15202:64;:96;;;;;15281:9;:17;;;15270:7;:28;;15202:96;15187:186;;;;-1:-1:-1;;;15187:186:60;;24198:2:88;15187:186:60;;;24180:21:88;24237:2;24217:18;;;24210:30;24276:34;24256:18;;;24249:62;24347:29;24327:18;;;24320:57;24394:19;;15187:186:60;23996:423:88;15187:186:60;15429:7;:19;-1:-1:-1;;;15429:19:60;;;;15421:4;15402:15;;;;;;;;:::i;:::-;15389:28;;:10;:28;:::i;:::-;15388:37;;;;:::i;:::-;15387:61;;;15379:101;;;;-1:-1:-1;;;15379:101:60;;25126:2:88;15379:101:60;;;25108:21:88;25165:2;25145:18;;;25138:30;25204:29;25184:18;;;25177:57;25251:18;;15379:101:60;24924:351:88;15379:101:60;15567:27;15577:17;;;;15567:7;:27;:::i;:::-;15501:11;-1:-1:-1;;;;;15501:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;15501:61:60;;-1:-1:-1;;;;;25472:32:88;;;15501:61:60;;;25454:51:88;15549:11:60;25541:32:88;;25521:18;;;25514:60;15501:32:60;;;;;;;25427:18:88;;15501:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:94;;15486:170;;;;-1:-1:-1;;;15486:170:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;15677:21:60;;965:10:14;15677:21:60;;:111;;-1:-1:-1;15760:27:60;15770:17;;;;15760:7;:27;:::i;:::-;15702:11;-1:-1:-1;;;;;15702:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15702:32:60;;15735:5;965:10:14;15702:53:60;;-1:-1:-1;;;;;;15702:53:60;;;;;;;-1:-1:-1;;;;;25472:32:88;;;15702:53:60;;;25454:51:88;25541:32;;25521:18;;;25514:60;25427:18;;15702:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;15677:111;15662:189;;;;-1:-1:-1;;;15662:189:60;;;;;;;:::i;:::-;15875:20;:18;:20::i;:::-;15865:6;:30;;15857:93;;;;-1:-1:-1;;;15857:93:60;;;;;;;:::i;:::-;15965:88;15983:4;15989:7;15998;16007:6;16015:8;16025:10;16037:9;:15;;;;;;;;;;:::i;:::-;15965:17;:88::i;:::-;15956:97;;16095:9;:16;;;16079:6;:13;;;:32;;;;:::i;:::-;16060:15;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;16144:15:60;;-1:-1:-1;16144:13:60;:15::i;:::-;16125;;:34;;16117:82;;;;-1:-1:-1;;;16117:82:60;;;;;;;:::i;:::-;16218:63;;-1:-1:-1;;;16218:63:60;;-1:-1:-1;;;;;16218:11:60;:25;;;;:63;;16244:9;;16255:6;;16263:5;;16270:10;;16218:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:75;;14606:1699;;;;;;;;;;:::o;3206:169:57:-;1664:26;-1:-1:-1;;;;;;;;;;;2697:11:57;-1:-1:-1;;;;;2697:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2697:40:57;;2746:4;2753:5;2760;965:10:14;2781:4:57;2697:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:28:::1;3362:7;3342:19;:28::i;:::-;3206:169:::0;;;:::o;2841:944:4:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:4;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:4;;;;;;;;-1:-1:-1;;3404:63:4;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:4;;28256:2:88;3631:56:4;;;28238:21:88;28295:2;28275:18;;;28268:30;28334:34;28314:18;;;28307:62;-1:-1:-1;;;28385:18:88;;;28378:44;28439:19;;3631:56:4;28054:410:88;3400:302:4;-1:-1:-1;;;;;;;;;;;3517:28:4;;3509:82;;;;-1:-1:-1;;;3509:82:4;;28671:2:88;3509:82:4;;;28653:21:88;28710:2;28690:18;;;28683:30;28749:34;28729:18;;;28722:62;-1:-1:-1;;;28800:18:88;;;28793:39;28849:19;;3509:82:4;28469:405:88;3509:82:4;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;2697:117:8:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:8::1;::::0;;2785:22:::1;965:10:14::0;2794:12:8::1;2785:22;::::0;-1:-1:-1;;;;;3069:32:88;;;3051:51;;3039:2;3024:18;2785:22:8::1;;;;;;;2697:117::o:0;3858:393:60:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4098:28:60::1;:26;:28::i;:::-;4132:114;4160:5;4167:10;4179:12;4193:6;4201:19;4222:14;4238:7;4132:27;:114::i;2450:115:8:-:0;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:8::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:14::0;;886:96;7400:209:60;7473:7;7595:8;7571:10;:8;:10::i;:::-;-1:-1:-1;;;;;7571:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7564:40;;:2;:40;:::i;:::-;7547:57;;:14;;;:57;:::i;:::-;7540:64;7400:209;-1:-1:-1;;;7400:209:60:o;11970:346::-;12172:24;;:::i;:::-;12211:100;12232:6;12240:7;12249:8;12259:10;12271:5;12278:10;12290;12302:8;:6;:8::i;:::-;12211:20;:100::i;:::-;12204:107;11970:346;-1:-1:-1;;;;;;;;11970:346:60:o;11043:263::-;11202:7;11224:64;11249:1;11252:6;11260:8;11270:10;11282:5;11224:24;:64::i;:::-;:77;;;;11043:263;-1:-1:-1;;;;;;11043:263:60:o;7199:146::-;7254:6;7300:40;7301:27;1140:4;7301:5;:27;:::i;:::-;7300:38;:40::i;7613:233::-;7687:6;7780:61;7820:8;7796:10;:8;:10::i;:::-;-1:-1:-1;;;;;7796:19:60;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;;:::i;:::-;7789:40;;:2;:40;:::i;:::-;7781:48;;:5;:48;:::i;:::-;7780:59;:61::i;4221:160:57:-;4279:4;4298:11;-1:-1:-1;;;;;4298:18:57;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4298:37:57;;4344:4;4351;965:10:14;4371:4:57;4298:78;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16288:187:46:-;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:46;;31939:2:88;16362:76:46;;;31921:21:88;31978:2;31958:18;;;31951:30;32017:34;31997:18;;;31990:62;-1:-1:-1;;;32068:18:88;;;32061:36;32114:19;;16362:76:46;31737:402:88;16362:76:46;-1:-1:-1;16462:5:46;16288:187::o;4985:166:57:-;5083:21;:19;:21::i;:::-;5132:6;5115:31;;;;;;;;:::i;:::-;;;2338:25:88;;;5115:31:57;;2326:2:88;2311:18;5115:31:57;;;;;;;4985:166;;:::o;9941:449:60:-;10016:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10016:17:60;10054:331;;;;;;;;10076:20;10084:7;:11;;;10076:7;:20::i;:::-;10054:331;;;;10119:28;10127:7;:19;;;10119:7;:28::i;:::-;10054:331;;;;10168:26;10176:7;:17;;;10168:7;:26::i;:::-;10054:331;;;;10217:28;10225:7;:19;;;10217:7;:28::i;:::-;10054:331;;;;10269:29;10277:7;:20;;;10269:7;:29::i;:::-;10054:331;;;;10315:22;10323:7;:13;;;10315:7;:22::i;:::-;10054:331;;;;10354:22;10362:7;:13;;;10354:7;:22::i;:::-;10054:331;;10041:344;9941:449;-1:-1:-1;;9941:449:60:o;2835:1074:55:-;3054:27;;:::i;:::-;3108:6;3097:7;:17;;3089:64;;;;-1:-1:-1;;;3089:64:55;;32346:2:88;3089:64:55;;;32328:21:88;32385:2;32365:18;;;32358:30;32424:34;32404:18;;;32397:62;-1:-1:-1;;;32475:18:88;;;32468:32;32517:19;;3089:64:55;32144:398:88;3089:64:55;3159:24;;:::i;:::-;-1:-1:-1;;;;;3190:30:55;;:17;;;:30;3226:14;;;:24;;;3256:13;;;:22;;;3284:15;;;:26;;;3316:20;;;;:12;;;:20;3342:30;;:17;;;:30;-1:-1:-1;3418:64:55;3436:8;3272:6;3302:8;3362:10;3331:5;3418:17;:64::i;:::-;3510:22;;3489:18;;;:43;3553:16;;;;3538:12;;;;:31;;;;3590:16;;;;3575:12;;;;:31;;;;3627:16;;;;3612:12;;;:31;3664:16;;;3649:12;;;:31;3712:27;;;;3686:23;;;;:53;;;;3754:23;;;3379:103;;-1:-1:-1;3754:34:55;-1:-1:-1;3754:34:55;3746:72;;;;-1:-1:-1;;;3746:72:55;;32749:2:88;3746:72:55;;;32731:21:88;32788:2;32768:18;;;32761:30;32827:27;32807:18;;;32800:55;32872:18;;3746:72:55;32547:349:88;3746:72:55;3862:23;;;;3852:33;;:7;:33;:::i;:::-;3825:24;;;:60;-1:-1:-1;3825:24:55;2835:1074;-1:-1:-1;;;;;;;;2835:1074:55:o;5037:280:60:-;5120:34;5146:7;5120:25;:34::i;:::-;5160:17;5192:7;5160:40;;5237:16;-1:-1:-1;;;;;5210:43:60;:5;-1:-1:-1;;;;;5210:21:60;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5210:43:60;;5206:107;;5270:36;;-1:-1:-1;;;5270:36:60;;;;;;;;;;;1720:281:4;-1:-1:-1;;;;;1713:19:13;;;1793:106:4;;;;-1:-1:-1;;;1793:106:4;;33385:2:88;1793:106:4;;;33367:21:88;33424:2;33404:18;;;33397:30;33463:34;33443:18;;;33436:62;-1:-1:-1;;;33514:18:88;;;33507:43;33567:19;;1793:106:4;33183:409:88;1793:106:4;-1:-1:-1;;;;;;;;;;;1909:85:4;;-1:-1:-1;;;;;;1909:85:4;-1:-1:-1;;;;;1909:85:4;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;2209:106:8:-;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:8;;33799:2:88;2267:41:8;;;33781:21:88;33838:2;33818:18;;;33811:30;-1:-1:-1;;;33857:18:88;;;33850:50;33917:18;;2267:41:8;33597:344:88;3080:122:57;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;3150:24:57::1;:22;:24::i;:::-;3180:17;:15;:17::i;4306:727:60:-:0;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;4556:5:60::1;:13;4564:5:::0;4556;:13:::1;:::i;:::-;-1:-1:-1::0;4585:368:60::1;::::0;;::::1;::::0;::::1;::::0;;1191:3:::1;4585:368:::0;;-1:-1:-1;4585:368:60::1;::::0;::::1;::::0;;;;4667:19:::1;4675:10:::0;4667:7:::1;:19::i;:::-;4585:368;;;;;;4707:21;4715:12;4707:7;:21::i;:::-;4585:368;;::::0;;4750:1:::1;4585:368;::::0;::::1;::::0;;;;;;;;;4782:15:::1;4790:6:::0;4782:7:::1;:15::i;:::-;4585:368;;;;;;4825:34;4836:1;4839:19;4825:10;:34::i;:::-;4585:368;;;;;;4882:29;4893:1;4896:14;4882:10;:29::i;:::-;4585:368;::::0;;::::1;::::0;;1068:4:::1;4585:368;::::0;;::::1;::::0;4575:378;;:7:::1;:378:::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;4585:368:::1;4575:378:::0;;::::1;-1:-1:-1::0;;4575:378:60;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;-1:-1:-1;;;4575:378:60;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;4575:378:60;-1:-1:-1;;;4575:378:60;;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;4575:378:60;;;;;-1:-1:-1;;;4575:378:60;;;::::1;;;::::0;;-1:-1:-1;4959:15:60::1;:19:::0;4984:7:::1;:17:::0;;-1:-1:-1;;;;;;4984:17:60::1;-1:-1:-1::0;;;;;4984:17:60;::::1;;::::0;;5007:21:::1;:19;:21::i;12439:1484::-:0;12670:31;;:::i;:::-;12730:15;12756:28;;;12752:122;;12804:63;12823:6;12831:8;12841:10;12853:4;12859:7;12804:18;:63::i;:::-;12794:73;;12752:122;12897:6;12887:7;:16;12879:61;;;;-1:-1:-1;;;12879:61:60;;23487:2:88;12879:61:60;;;23469:21:88;;;23506:18;;;23499:30;23565:34;23545:18;;;23538:62;23617:18;;12879:61:60;23285:356:88;12879:61:60;12967:4;12954:17;;:10;:17;;;12946:62;;;;-1:-1:-1;;;12946:62:60;;36272:2:88;12946:62:60;;;36254:21:88;;;36291:18;;;36284:30;36350:34;36330:18;;;36323:62;36402:18;;12946:62:60;36070:356:88;12946:62:60;13053:7;:19;-1:-1:-1;;;13053:19:60;;;;13045:4;13024:17;13037:4;13024:10;:17;:::i;:::-;13023:26;;;;:::i;:::-;13022:50;;;13014:90;;;;-1:-1:-1;;;13014:90:60;;25126:2:88;13014:90:60;;;25108:21:88;25165:2;25145:18;;;25138:30;25204:29;25184:18;;;25177:57;25251:18;;13014:90:60;24924:351:88;13014:90:60;-1:-1:-1;;;;;13118:24:60;;13110:67;;;;-1:-1:-1;;;13110:67:60;;36633:2:88;13110:67:60;;;36615:21:88;36672:2;36652:18;;;36645:30;36711:32;36691:18;;;36684:60;36761:18;;13110:67:60;36431:354:88;13110:67:60;13263:7;13198:11;-1:-1:-1;;;;;13198:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;-1:-1:-1;;;13198:61:60;;-1:-1:-1;;;;;25472:32:88;;;13198:61:60;;;25454:51:88;13246:11:60;25541:32:88;;25521:18;;;25514:60;13198:32:60;;;;;;;25427:18:88;;13198:61:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;13183:148;;;;-1:-1:-1;;;13183:148:60;;;;;;;:::i;:::-;-1:-1:-1;;;;;13352:21:60;;965:10:14;13352:21:60;;:89;;;13434:7;13377:11;-1:-1:-1;;;;;13377:20:60;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13377:32:60;;13410:5;965:10:14;13377:53:60;;-1:-1:-1;;;;;;13377:53:60;;;;;;;-1:-1:-1;;;;;25472:32:88;;;13377:53:60;;;25454:51:88;25541:32;;25521:18;;;25514:60;25427:18;;13377:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;13352:89;13337:167;;;;-1:-1:-1;;;13337:167:60;;;;;;;:::i;:::-;13528:20;:18;:20::i;:::-;13518:6;:30;;13510:93;;;;-1:-1:-1;;;13510:93:60;;;;;;;:::i;:::-;13618:77;13636:4;13642:7;13651;13660:6;13668:8;13678:10;13690:4;13618:17;:77::i;:::-;13609:86;;13720:6;:13;;;13701:15;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:15:60;;-1:-1:-1;13766:13:60;:15::i;:::-;13747;;:34;;13739:82;;;;-1:-1:-1;;;13739:82:60;;;;;;;:::i;:::-;13839:60;;-1:-1:-1;;;13839:60:60;;-1:-1:-1;;;;;13839:11:60;:21;;;;:60;;13861:6;;13869:5;;13876:10;;13888;;13839:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13827:72;;-1:-1:-1;12439:1484:60;;;;;;;;;;:::o;1541:1290:55:-;1718:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:36:55;1817:12;;1787:44;;1801:29;;:8;;:15;:29::i;:::-;1787:6;;:13;:44::i;:::-;1762:69;;1870:20;;;;1856:35;;:6;;:13;:35::i;:::-;1837:16;;;:54;;;1920:22;;-1:-1:-1;1897:145:55;;;1972:22;;1952:16;;;:42;;;;1972:22;;1952:42;:::i;:::-;;;-1:-1:-1;1897:145:55;;;2034:1;2015:16;;;:20;1897:145;2081:18;;;;2067:33;;:6;;:13;:33::i;:::-;2048:16;;;:52;2155:16;;;;2130:22;;:41;;2155:16;2130:41;:::i;:::-;2110:10;:16;;;:62;2106:185;;;2227:16;;;;2202:22;;:41;;2227:16;2202:41;:::i;:::-;2182:10;:16;;:61;;;;;;;:::i;:::-;;;-1:-1:-1;2106:185:55;;;2283:1;2264:16;;;:20;2106:185;2338:83;562:8;2381:18;2394:5;2381:10;:18;:::i;:::-;2363:37;;:8;:14;;;:37;;;;:::i;:::-;2362:58;;;;:::i;:::-;2338:16;;;;;:23;:83::i;:::-;2319:16;;;:102;2446:83;562:8;2489:18;2502:5;2489:10;:18;:::i;:::-;2471:37;;:8;:14;;;:37;;;;:::i;:::-;2470:58;;;;:::i;:::-;2446:16;;;;;:23;:83::i;:::-;2427:16;;;:102;;;2554:16;;;;2535;;2554:35;;;:::i;:::-;2535:54;;2692:38;2708:8;:21;;;2692:8;:15;;:38;;;;:::i;:::-;2662:20;;;;2632:22;;:51;;:29;:51::i;:::-;:98;;;;:::i;:::-;2596:27;;;:134;;;2763:22;;2818:8;;2763:52;;;:::i;:::-;:63;;;;:::i;:::-;2737:23;;;:89;-1:-1:-1;2737:10:55;1541:1290;-1:-1:-1;;;;;1541:1290:55:o;15264:187:46:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:46;;36992:2:88;15338:76:46;;;36974:21:88;37031:2;37011:18;;;37004:30;37070:34;37050:18;;;37043:62;-1:-1:-1;;;37121:18:88;;;37114:36;37167:19;;15338:76:46;36790:402:88;5619:319:60;5746:15;;5728;:13;:15::i;:::-;:33;5724:106;;;5778:45;;-1:-1:-1;;;5778:45:60;;;;;;;;;;;5724:106;5839:7;;-1:-1:-1;;;;;5839:7:60;5835:63;;5877:14;;-1:-1:-1;;;5877:14:60;;;;;;;;;;;5835:63;5903:30;5925:7;5903:21;:30::i;7039:156::-;7093:7;7154:36;1140:4;7154:14;;;:36;:::i;3379:180:57:-;3503:11;-1:-1:-1;;;;;3457:57:57;3478:7;-1:-1:-1;;;;;3457:40:57;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3457:57:57;;3453:101;;3523:31;;-1:-1:-1;;;3523:31:57;;;;;;;;;;;2107:152:4;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:4;;;;;;;;2107:152;:::o;6685:198:13:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;2290:67:7:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;1084:97:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1147:27:8::1;:25;:27::i;1077:319:65:-:0;1138:9;1251;;-1:-1:-1;;1275:29:65;;;1269:36;;1262:44;1248:59;1238:101;;1329:1;1326;1319:12;1238:101;-1:-1:-1;1382:3:65;1360:9;;1371:8;1356:24;1352:34;;1077:319::o;5942:954:60:-;6031:19;;1191:3;6031:19;;;;:38;:19;:38;;6023:86;;;;-1:-1:-1;;;6023:86:60;;37676:2:88;6023:86:60;;;37658:21:88;37715:2;37695:18;;;37688:30;37754:34;37734:18;;;37727:62;-1:-1:-1;;;37805:18:88;;;37798:33;37848:19;;6023:86:60;37474:399:88;6023:86:60;6123:17;;1191:3;6123:17;;;;:36;:17;:36;;;;:61;;-1:-1:-1;6163:17:60;;;;;;;:21;;6123:61;6115:107;;;;-1:-1:-1;;;6115:107:60;;38080:2:88;6115:107:60;;;38062:21:88;38119:2;38099:18;;;38092:30;38158:34;38138:18;;;38131:62;-1:-1:-1;;;38209:18:88;;;38202:31;38250:19;;6115:107:60;37878:397:88;6115:107:60;6257:19;;;;;;;;6236:17;;;;;:40;;6228:89;;;;-1:-1:-1;;;6228:89:60;;38482:2:88;6228:89:60;;;38464:21:88;38521:2;38501:18;;;38494:30;38560:34;38540:18;;;38533:62;-1:-1:-1;;;38611:18:88;;;38604:34;38655:19;;6228:89:60;38280:400:88;6228:89:60;6331:11;;1282:3;6331:22;:11;;;:22;;;;:48;;-1:-1:-1;6357:11:60;;1233:3;6357:22;:11;;;:22;;6331:48;6323:93;;;;-1:-1:-1;;;6323:93:60;;38887:2:88;6323:93:60;;;38869:21:88;;;38906:18;;;38899:30;38965:34;38945:18;;;38938:62;39017:18;;6323:93:60;38685:356:88;6323:93:60;6430:19;;1191:3;-1:-1:-1;;;6430:19:60;;;:38;:19;:38;;6422:87;;;;-1:-1:-1;;;6422:87:60;;39248:2:88;6422:87:60;;;39230:21:88;39287:2;39267:18;;;39260:30;39326:34;39306:18;;;39299:62;-1:-1:-1;;;39377:18:88;;;39370:34;39421:19;;6422:87:60;39046:400:88;6422:87:60;6523:20;;1191:3;-1:-1:-1;;;6523:20:60;;;:39;:20;:39;;6515:89;;;;-1:-1:-1;;;6515:89:60;;39653:2:88;6515:89:60;;;39635:21:88;39692:2;39672:18;;;39665:30;39731:34;39711:18;;;39704:62;-1:-1:-1;;;39782:18:88;;;39775:35;39827:19;;6515:89:60;39451:401:88;6515:89:60;6618:13;;1191:3;-1:-1:-1;;;6618:13:60;;;:32;:13;:32;;6610:82;;;;-1:-1:-1;;;6610:82:60;;40059:2:88;6610:82:60;;;40041:21:88;40098:2;40078:18;;;40071:30;40137:34;40117:18;;;40110:62;-1:-1:-1;;;40188:18:88;;;40181:35;40233:19;;6610:82:60;39857:401:88;6610:82:60;6706:13;;1191:3;-1:-1:-1;;;6706:13:60;;;:32;:13;:32;;6698:82;;;;-1:-1:-1;;;6698:82:60;;40465:2:88;6698:82:60;;;40447:21:88;40504:2;40484:18;;;40477:30;40543:34;40523:18;;;40516:62;-1:-1:-1;;;40594:18:88;;;40587:35;40639:19;;6698:82:60;40263:401:88;6698:82:60;6794:21;;-1:-1:-1;;;6794:21:60;;;;:25;;;;:59;;-1:-1:-1;6823:26:60;;-1:-1:-1;;;6823:26:60;;;;:30;;6794:59;6786:105;;;;-1:-1:-1;;;6786:105:60;;40871:2:88;6786:105:60;;;40853:21:88;40910:2;40890:18;;;40883:30;40949:34;40929:18;;;40922:62;-1:-1:-1;;;41000:18:88;;;40993:31;41041:19;;6786:105:60;40669:397:88;7069:325:13;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:13;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:13:o;1187:95:8:-;5374:13:6;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:6;;;;;;;:::i;:::-;1260:7:8::1;:15:::0;;-1:-1:-1;;1260:15:8::1;::::0;;1187:95::o;7682:628:13:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:13;;;8124:60;;;;-1:-1:-1;;;8124:60:13;;41579:2:88;8124:60:13;;;41561:21:88;41618:2;41598:18;;;41591:30;41657:31;41637:18;;;41630:59;41706:18;;8124:60:13;41377:353:88;8124:60:13;-1:-1:-1;8219:10:13;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:13;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:88:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:88;;209:43;;199:71;;266:1;263;256:12;497:418;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;780:6;775:2;767:6;763:15;758:2;747:9;743:18;737:50;836:1;831:2;822:6;811:9;807:22;803:31;796:42;906:2;899;895:7;890:2;882:6;878:15;874:29;863:9;859:45;855:54;847:62;;;497:418;;;;:::o;920:159::-;983:5;1028:3;1019:6;1014:3;1010:16;1006:26;1003:46;;;1045:1;1042;1035:12;1003:46;-1:-1:-1;1067:6:88;920:159;-1:-1:-1;920:159:88:o;1084:165::-;1151:20;;1211:12;1200:24;;1190:35;;1180:63;;1239:1;1236;1229:12;1180:63;1084:165;;;:::o;1254:179::-;1321:20;;-1:-1:-1;;;;;1370:38:88;;1360:49;;1350:77;;1423:1;1420;1413:12;1438:749;1571:6;1579;1587;1595;1603;1611;1664:3;1652:9;1643:7;1639:23;1635:33;1632:53;;;1681:1;1678;1671:12;1632:53;1704:57;1753:7;1742:9;1704:57;:::i;:::-;1694:67;-1:-1:-1;1830:3:88;1815:19;;1802:33;;-1:-1:-1;1932:3:88;1917:19;;1904:33;;-1:-1:-1;2036:3:88;2021:19;;2008:33;;-1:-1:-1;2086:38:88;2119:3;2104:19;;2086:38;:::i;:::-;2076:48;;2143:38;2176:3;2165:9;2161:19;2143:38;:::i;:::-;2133:48;;1438:749;;;;;;;;:::o;2374:131::-;-1:-1:-1;;;;;2449:31:88;;2439:42;;2429:70;;2495:1;2492;2485:12;2510:247;2569:6;2622:2;2610:9;2601:7;2597:23;2593:32;2590:52;;;2638:1;2635;2628:12;2590:52;2677:9;2664:23;2696:31;2721:5;2696:31;:::i;3113:127::-;3174:10;3169:3;3165:20;3162:1;3155:31;3205:4;3202:1;3195:15;3229:4;3226:1;3219:15;3245:250;3312:2;3306:9;3354:6;3342:19;;3391:18;3376:34;;3412:22;;;3373:62;3370:88;;;3438:18;;:::i;:::-;3474:2;3467:22;3245:250;:::o;3500:715::-;3564:5;3596:1;3620:18;3612:6;3609:30;3606:56;;;3642:18;;:::i;:::-;-1:-1:-1;3797:2:88;3791:9;-1:-1:-1;;3710:2:88;3689:15;;3685:29;;3855:2;3843:15;3839:29;3827:42;;3920:22;;;3899:18;3884:34;;3881:62;3878:88;;;3946:18;;:::i;:::-;3982:2;3975:22;4030;;;4015:6;-1:-1:-1;4015:6:88;4067:16;;;4064:25;-1:-1:-1;4061:45:88;;;4102:1;4099;4092:12;4061:45;4152:6;4147:3;4140:4;4132:6;4128:17;4115:44;4207:1;4200:4;4191:6;4183;4179:19;4175:30;4168:41;;3500:715;;;;;:::o;4220:584::-;4297:6;4305;4358:2;4346:9;4337:7;4333:23;4329:32;4326:52;;;4374:1;4371;4364:12;4326:52;4413:9;4400:23;4432:31;4457:5;4432:31;:::i;:::-;4482:5;-1:-1:-1;4538:2:88;4523:18;;4510:32;4565:18;4554:30;;4551:50;;;4597:1;4594;4587:12;4551:50;4620:22;;4673:4;4665:13;;4661:27;-1:-1:-1;4651:55:88;;4702:1;4699;4692:12;4651:55;4725:73;4790:7;4785:2;4772:16;4767:2;4763;4759:11;4725:73;:::i;:::-;4715:83;;;4220:584;;;;;:::o;5199:226::-;5258:6;5311:2;5299:9;5290:7;5286:23;5282:32;5279:52;;;5327:1;5324;5317:12;5279:52;-1:-1:-1;5372:23:88;;5199:226;-1:-1:-1;5199:226:88:o;5430:1193::-;5553:6;5561;5569;5577;5585;5593;5601;5654:3;5642:9;5633:7;5629:23;5625:33;5622:53;;;5671:1;5668;5661:12;5622:53;5711:9;5698:23;5744:18;5736:6;5733:30;5730:50;;;5776:1;5773;5766:12;5730:50;5799:22;;5852:4;5844:13;;5840:27;-1:-1:-1;5830:55:88;;5881:1;5878;5871:12;5830:55;5904:75;5971:7;5966:2;5953:16;5946:4;5942:2;5938:13;5904:75;:::i;:::-;5894:85;-1:-1:-1;;6048:4:88;6033:20;;6020:34;;-1:-1:-1;6151:2:88;6136:18;;6123:32;;-1:-1:-1;6254:2:88;6239:18;;6226:32;;-1:-1:-1;6357:3:88;6342:19;;6329:33;;-1:-1:-1;6461:3:88;6446:19;;6433:33;;-1:-1:-1;6544:3:88;6529:19;;6516:33;6558;6516;6558;:::i;:::-;6610:7;6600:17;;;5430:1193;;;;;;;;;;:::o;6862:361::-;6961:6;6969;7022:3;7010:9;7001:7;6997:23;6993:33;6990:53;;;7039:1;7036;7029:12;6990:53;7062:57;7111:7;7100:9;7062:57;:::i;:::-;7052:67;7188:3;7173:19;;;;7160:33;;-1:-1:-1;;;6862:361:88:o;7228:896::-;7339:6;7347;7355;7363;7371;7379;7387;7440:3;7428:9;7419:7;7415:23;7411:33;7408:53;;;7457:1;7454;7447:12;7408:53;7502:23;;;-1:-1:-1;7622:2:88;7607:18;;7594:32;;-1:-1:-1;7725:2:88;7710:18;;7697:32;;-1:-1:-1;7774:37:88;7807:2;7792:18;;7774:37;:::i;:::-;7764:47;;7863:3;7852:9;7848:19;7835:33;7877;7902:7;7877:33;:::i;:::-;7929:7;-1:-1:-1;7988:3:88;7973:19;;7960:33;8002;7960;8002;:::i;:::-;8054:7;-1:-1:-1;8080:38:88;8113:3;8098:19;;8080:38;:::i;:::-;8070:48;;7228:896;;;;;;;;;;:::o;8129:418::-;8205:6;8213;8221;8274:2;8262:9;8253:7;8249:23;8245:32;8242:52;;;8290:1;8287;8280:12;8242:52;8335:23;;;-1:-1:-1;8455:2:88;8440:18;;8427:32;;-1:-1:-1;8504:37:88;8537:2;8522:18;;8504:37;:::i;:::-;8494:47;;8129:418;;;;;:::o;8552:392::-;8635:6;8643;8696:2;8684:9;8675:7;8671:23;8667:32;8664:52;;;8712:1;8709;8702:12;8664:52;8751:9;8738:23;8790:2;8783:5;8780:13;8770:41;;8807:1;8804;8797:12;8770:41;8830:5;8908:2;8893:18;;;;8880:32;;-1:-1:-1;;;8552:392:88:o;8949:147::-;9030:20;;9059:31;9030:20;9059:31;:::i;9101:1689::-;9158:5;9206:6;9194:9;9189:3;9185:19;9181:32;9178:52;;;9226:1;9223;9216:12;9178:52;9248:17;;:::i;:::-;9310:23;;9342:22;;9437:2;9422:18;;;9409:32;9457:14;;;9450:31;9554:2;9539:18;;;9526:32;9574:14;;;9567:31;9671:2;9656:18;;;9643:32;9691:14;;;9684:31;9788:3;9773:19;;;9760:33;9809:15;;;9802:32;9907:3;9892:19;;;9879:33;9928:15;;;9921:32;10026:3;10011:19;;;9998:33;10047:15;;;10040:32;10145:3;10130:19;;;10117:33;10166:15;;;10159:32;10264:3;10249:19;;;10236:33;10285:15;;;10278:32;10385:3;10370:19;;;10357:33;10406:15;;;10399:33;10507:3;10492:19;;;10479:33;10528:15;;;10521:33;9239:26;-1:-1:-1;10587:52:88;10634:3;10619:19;;10587:52;:::i;:::-;10581:3;10574:5;10570:15;10563:77;10673:38;10706:3;10695:9;10691:19;10673:38;:::i;:::-;10667:3;10660:5;10656:15;10649:63;10745:38;10778:3;10767:9;10763:19;10745:38;:::i;:::-;10739:3;10732:5;10728:15;10721:63;9101:1689;;;;:::o;10795:567::-;10938:6;10946;10954;10962;11015:3;11003:9;10994:7;10990:23;10986:33;10983:53;;;11032:1;11029;11022:12;10983:53;11055:48;11095:7;11084:9;11055:48;:::i;:::-;11045:58;;11122;11172:7;11166:3;11155:9;11151:19;11122:58;:::i;:::-;11112:68;;11230:3;11219:9;11215:19;11202:33;11244:31;11269:5;11244:31;:::i;:::-;11294:5;-1:-1:-1;11318:38:88;11351:3;11336:19;;11318:38;:::i;:::-;11308:48;;10795:567;;;;;;;:::o;12216:586::-;12330:6;12338;12346;12354;12407:3;12395:9;12386:7;12382:23;12378:33;12375:53;;;12424:1;12421;12414:12;12375:53;12447:48;12487:7;12476:9;12447:48;:::i;:::-;12437:58;;12545:3;12534:9;12530:19;12517:33;12559:31;12584:5;12559:31;:::i;:::-;12609:5;-1:-1:-1;12666:3:88;12651:19;;12638:33;12680;12638;12680;:::i;:::-;12732:7;-1:-1:-1;12758:38:88;12791:3;12776:19;;12758:38;:::i;12807:380::-;12886:1;12882:12;;;;12929;;;12950:61;;13004:4;12996:6;12992:17;12982:27;;12950:61;13057:2;13049:6;13046:14;13026:18;13023:38;13020:161;;13103:10;13098:3;13094:20;13091:1;13084:31;13138:4;13135:1;13128:15;13166:4;13163:1;13156:15;13192:275;13286:6;13339:2;13327:9;13318:7;13314:23;13310:32;13307:52;;;13355:1;13352;13345:12;13307:52;13387:9;13381:16;13406:31;13431:5;13406:31;:::i;13472:453::-;-1:-1:-1;;;;;13715:32:88;;;13697:51;;13779:2;13764:18;;13757:34;;;;13827:32;;13822:2;13807:18;;13800:60;13903:14;;13896:22;13891:2;13876:18;;13869:50;13684:3;13669:19;;13472:453::o;14186:408::-;14388:2;14370:21;;;14427:2;14407:18;;;14400:30;14466:34;14461:2;14446:18;;14439:62;-1:-1:-1;;;14532:2:88;14517:18;;14510:42;14584:3;14569:19;;14186:408::o;14599:::-;14801:2;14783:21;;;14840:2;14820:18;;;14813:30;14879:34;14874:2;14859:18;;14852:62;-1:-1:-1;;;14945:2:88;14930:18;;14923:42;14997:3;14982:19;;14599:408::o;15012:525::-;-1:-1:-1;;;;;15283:32:88;;;15265:51;;15347:2;15332:18;;15325:34;;;;15390:2;15375:18;;15368:34;;;;15438:32;;;15433:2;15418:18;;15411:60;15515:14;;15508:22;15502:3;15487:19;;15480:51;15252:3;15237:19;;15012:525::o;15967:127::-;16028:10;16023:3;16019:20;16016:1;16009:31;16059:4;16056:1;16049:15;16083:4;16080:1;16073:15;16099:128;16166:9;;;16187:11;;;16184:37;;;16201:18;;:::i;16947:1739::-;17056:19;;17084:20;;17173:4;17162:16;;;17149:30;17195:14;;;17188:31;17288:4;17277:16;;;17264:30;17310:14;;;17303:31;17403:4;17392:16;;;17379:30;17425:14;;;17418:31;17518:4;17507:16;;;17494:30;17540:14;;;17533:31;17633:4;17622:16;;;17609:30;17655:14;;;17648:31;17748:4;17737:16;;;17724:30;17770:14;;;17763:31;17863:4;17852:16;;;17839:30;17885:14;;;17878:31;17978:6;17967:18;;;17954:32;18002:16;;;17995:33;18099:6;18088:18;;;18075:32;18123:16;;;18116:34;18221:6;18210:18;;;18197:32;18245:16;;;18238:34;18301:51;18344:6;18333:18;;18301:51;:::i;:::-;-1:-1:-1;;;;;2841:31:88;18416:6;18407:16;;2829:44;18455:37;18484:6;18473:18;;18455:37;:::i;:::-;16922:12;16911:24;18544:6;18535:16;;16899:37;18583;18612:6;18601:18;;18583:37;:::i;:::-;16922:12;16911:24;;18672:6;18663:16;;16899:37;3206:169:57;;;:::o;18691:341:88:-;18913:3;18898:19;;18926:56;18902:9;18964:6;18926:56;:::i;:::-;19019:6;19013:3;19002:9;18998:19;18991:35;18691:341;;;;;:::o;19037:127::-;19098:10;19093:3;19089:20;19086:1;19079:31;19129:4;19126:1;19119:15;19153:4;19150:1;19143:15;19945:125;20010:9;;;20031:10;;;20028:36;;;20044:18;;:::i;20075:1025::-;20157:5;20151:12;20146:3;20139:25;20213:4;20206:5;20202:16;20196:23;20189:4;20184:3;20180:14;20173:47;20269:4;20262:5;20258:16;20252:23;20245:4;20240:3;20236:14;20229:47;20325:4;20318:5;20314:16;20308:23;20301:4;20296:3;20292:14;20285:47;20381:4;20374:5;20370:16;20364:23;20357:4;20352:3;20348:14;20341:47;20437:4;20430:5;20426:16;20420:23;20413:4;20408:3;20404:14;20397:47;20493:4;20486:5;20482:16;20476:23;20469:4;20464:3;20460:14;20453:47;20549:4;20542:5;20538:16;20532:23;20525:4;20520:3;20516:14;20509:47;20607:6;20600:5;20596:18;20590:25;20581:6;20576:3;20572:16;20565:51;20667:6;20660:5;20656:18;20650:25;20641:6;20636:3;20632:16;20625:51;20727:6;20720:5;20716:18;20710:25;20701:6;20696:3;20692:16;20685:51;20782:6;20775:5;20771:18;20765:25;20799:63;20854:6;20849:3;20845:16;20831:12;-1:-1:-1;;;;;2841:31:88;2829:44;;2762:117;20799:63;;20910:6;20903:5;20899:18;20893:25;20927:51;20970:6;20965:3;20961:16;20945:14;16922:12;16911:24;16899:37;;16846:96;20927:51;;21026:6;21019:5;21015:18;21009:25;21043:51;21086:6;21081:3;21077:16;21061:14;16922:12;16911:24;16899:37;;16846:96;21105:611;21437:3;21422:19;;21450:47;21426:9;21479:6;21450:47;:::i;:::-;21506:57;21558:3;21547:9;21543:19;21535:6;21506:57;:::i;:::-;-1:-1:-1;;;;;21600:32:88;;;;21594:3;21579:19;;21572:61;-1:-1:-1;;;;;21670:39:88;;;;21664:3;21649:19;;;21642:68;21105:611;;-1:-1:-1;;21105:611:88:o;21721:184::-;21791:6;21844:2;21832:9;21823:7;21819:23;21815:32;21812:52;;;21860:1;21857;21850:12;21812:52;-1:-1:-1;21883:16:88;;21721:184;-1:-1:-1;21721:184:88:o;22189:557::-;22463:3;22448:19;;22476:47;22452:9;22505:6;22476:47;:::i;:::-;-1:-1:-1;;;;;22560:32:88;;;22554:3;22539:19;;22532:61;22630:32;;;;22624:3;22609:19;;22602:61;-1:-1:-1;;;;;22700:39:88;22694:3;22679:19;;;22672:68;;;;22189:557;;-1:-1:-1;22189:557:88:o;23096:184::-;23154:6;23207:2;23195:9;23186:7;23182:23;23178:32;23175:52;;;23223:1;23220;23213:12;23175:52;23246:28;23264:9;23246:28;:::i;24424:176::-;24523:12;24516:20;;;24494;;;24490:47;;24549:22;;24546:48;;;24574:18;;:::i;24605:127::-;24666:10;24661:3;24657:20;24654:1;24647:31;24697:4;24694:1;24687:15;24721:4;24718:1;24711:15;24737:182;24776:1;24810:12;24807:1;24803:20;24842:3;24832:37;;24849:18;;:::i;:::-;24909:3;24894:12;24891:1;24887:20;24883:30;24878:35;;;24737:182;;;;:::o;25585:409::-;25787:2;25769:21;;;25826:2;25806:18;;;25799:30;25865:34;25860:2;25845:18;;25838:62;-1:-1:-1;;;25931:2:88;25916:18;;25909:43;25984:3;25969:19;;25585:409::o;25999:411::-;26201:2;26183:21;;;26240:2;26220:18;;;26213:30;26279:34;26274:2;26259:18;;26252:62;-1:-1:-1;;;26345:2:88;26330:18;;26323:45;26400:3;26385:19;;25999:411::o;26415:414::-;26617:2;26599:21;;;26656:2;26636:18;;;26629:30;26695:34;26690:2;26675:18;;26668:62;-1:-1:-1;;;26761:2:88;26746:18;;26739:48;26819:3;26804:19;;26415:414::o;26834:399::-;27036:2;27018:21;;;27075:2;27055:18;;;27048:30;27114:34;27109:2;27094:18;;27087:62;-1:-1:-1;;;27180:2:88;27165:18;;27158:33;27223:3;27208:19;;26834:399::o;27238:622::-;27572:3;27557:19;;27585:56;27561:9;27623:6;27585:56;:::i;28879:407::-;29081:2;29063:21;;;29120:2;29100:18;;;29093:30;29159:34;29154:2;29139:18;;29132:62;-1:-1:-1;;;29225:2:88;29210:18;;29203:41;29276:3;29261:19;;28879:407::o;29291:273::-;29359:6;29412:2;29400:9;29391:7;29387:23;29383:32;29380:52;;;29428:1;29425;29418:12;29380:52;29460:9;29454:16;29510:4;29503:5;29499:16;29492:5;29489:27;29479:55;;29530:1;29527;29520:12;29569:151;29659:4;29652:12;;;29638;;;29634:31;;29677:14;;29674:40;;;29694:18;;:::i;29725:375::-;29813:1;29831:5;29845:249;29866:1;29856:8;29853:15;29845:249;;;29916:4;29911:3;29907:14;29901:4;29898:24;29895:50;;;29925:18;;:::i;:::-;29975:1;29965:8;29961:16;29958:49;;;29989:16;;;;29958:49;30072:1;30068:16;;;;;30028:15;;29845:249;;;29725:375;;;;;;:::o;30105:902::-;30154:5;30184:8;30174:80;;-1:-1:-1;30225:1:88;30239:5;;30174:80;30273:4;30263:76;;-1:-1:-1;30310:1:88;30324:5;;30263:76;30355:4;30373:1;30368:59;;;;30441:1;30436:174;;;;30348:262;;30368:59;30398:1;30389:10;;30412:5;;;30436:174;30473:3;30463:8;30460:17;30457:43;;;30480:18;;:::i;:::-;-1:-1:-1;;30536:1:88;30522:16;;30595:5;;30348:262;;30694:2;30684:8;30681:16;30675:3;30669:4;30666:13;30662:36;30656:2;30646:8;30643:16;30638:2;30632:4;30629:12;30625:35;30622:77;30619:203;;;-1:-1:-1;30731:19:88;;;30807:5;;30619:203;30854:42;-1:-1:-1;;30879:8:88;30873:4;30854:42;:::i;:::-;30932:6;30928:1;30924:6;30920:19;30911:7;30908:32;30905:58;;;30943:18;;:::i;:::-;30981:20;;30105:902;-1:-1:-1;;;30105:902:88:o;31012:140::-;31070:5;31099:47;31140:4;31130:8;31126:19;31120:4;31099:47;:::i;31157:168::-;31230:9;;;31261;;31278:15;;;31272:22;;31258:37;31248:71;;31299:18;;:::i;31330:120::-;31370:1;31396;31386:35;;31401:18;;:::i;:::-;-1:-1:-1;31435:9:88;;31330:120::o;31455:277::-;31522:6;31575:2;31563:9;31554:7;31550:23;31546:32;31543:52;;;31591:1;31588;31581:12;31543:52;31623:9;31617:16;31676:5;31669:13;31662:21;31655:5;31652:32;31642:60;;31698:1;31695;31688:12;34072:518;34174:2;34169:3;34166:11;34163:421;;;34210:5;34207:1;34200:16;34254:4;34251:1;34241:18;34324:2;34312:10;34308:19;34305:1;34301:27;34295:4;34291:38;34360:4;34348:10;34345:20;34342:47;;;-1:-1:-1;34383:4:88;34342:47;34438:2;34433:3;34429:12;34426:1;34422:20;34416:4;34412:31;34402:41;;34493:81;34511:2;34504:5;34501:13;34493:81;;;34570:1;34556:16;;34537:1;34526:13;34493:81;;;34497:3;;34072:518;;;:::o;34766:1299::-;34892:3;34886:10;34919:18;34911:6;34908:30;34905:56;;;34941:18;;:::i;:::-;34970:97;35060:6;35020:38;35052:4;35046:11;35020:38;:::i;:::-;35014:4;34970:97;:::i;:::-;35116:4;35147:2;35136:14;;35164:1;35159:649;;;;35852:1;35869:6;35866:89;;;-1:-1:-1;35921:19:88;;;35915:26;35866:89;-1:-1:-1;;34723:1:88;34719:11;;;34715:24;34711:29;34701:40;34747:1;34743:11;;;34698:57;35968:81;;35129:930;;35159:649;34019:1;34012:14;;;34056:4;34043:18;;-1:-1:-1;;35195:20:88;;;35313:222;35327:7;35324:1;35321:14;35313:222;;;35409:19;;;35403:26;35388:42;;35516:4;35501:20;;;;35469:1;35457:14;;;;35343:12;35313:222;;;35317:3;35563:6;35554:7;35551:19;35548:201;;;35624:19;;;35618:26;-1:-1:-1;;35707:1:88;35703:14;;;35719:3;35699:24;35695:37;35691:42;35676:58;35661:74;;35548:201;-1:-1:-1;;;;35795:1:88;35779:14;;;35775:22;35762:36;;-1:-1:-1;34766:1299:88:o;41071:301::-;41200:3;41238:6;41232:13;41284:6;41277:4;41269:6;41265:17;41260:3;41254:37;41346:1;41310:16;;41335:13;;;-1:-1:-1;41310:16:88;41071:301;-1:-1:-1;41071:301:88:o"},"methodIdentifiers":{"PRICER_ROLE()":"fbb81279","REPLACER_ROLE()":"af0e7e0c","RESOLVER_ROLE()":"78fab260","activeExposure()":"7ff8bf25","currency()":"e5a6b10f","exposureLimit()":"85272a6e","getMinimumPremium(uint256,uint256,uint40)":"8bac3a24","initialize(string,uint256,uint256,uint256,uint256,uint256,address)":"6f0dbe6f","maxDuration()":"6db5c8fd","maxPayoutPerPolicy()":"cfd4c606","name()":"06fdde03","newPolicy(uint256,uint256,uint256,uint40,address,address,uint96)":"86e7db4d","newPolicyRaw((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,address,uint96)":"f6c507d4","params()":"cff0ab96","pause()":"8456cb59","paused()":"5c975abb","policyPool()":"4d15eb03","premiumsAccount()":"73a952e8","proxiableUUID()":"52d1902d","releaseExposure(uint256)":"6a448ef1","replacePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256,uint256,uint256,uint40,uint96)":"0bc872d9","replacePolicyRaw((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),address,uint96)":"cf8cf491","resolvePolicy((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"7a702b3c","resolvePolicyRaw((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint40,uint40),uint256)":"cb1719a1","setParam(uint8,uint256)":"c1cca2b3","setWallet(address)":"deaa59df","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","wallet()":"521eb273"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"policyPool_\",\"type\":\"address\"},{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"premiumsAccount_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExposureLimitCannotBeLessThanActiveExposure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoZeroWallet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PremiumsAccountMustBePartOfThePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePolicyPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpgradeCannotChangePremiumsAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"ComponentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IAccessManager.GovernanceActions\",\"name\":\"action\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"GovernanceAction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PRICER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REPLACER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESOLVER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeExposure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exposureLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"name\":\"getMinimumPremium\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"collRatio_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayoutPerPolicy_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exposureLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPayoutPerPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"newPolicyRaw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"moc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCollRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroPpFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCocFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrRoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srRoc\",\"type\":\"uint256\"}],\"internalType\":\"struct IRiskModule.Params\",\"name\":\"ret\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyPool\",\"outputs\":[{\"internalType\":\"contract IPolicyPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"premiumsAccount\",\"outputs\":[{\"internalType\":\"contract IPremiumsAccount\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"releaseExposure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"oldPolicy\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"newPolicy_\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"internalId\",\"type\":\"uint96\"}],\"name\":\"replacePolicyRaw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srScr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lossProb\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"purePremium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ensuroCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partnerCommission\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"jrCoc\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"srCoc\",\"type\":\"uint256\"},{\"internalType\":\"contract IRiskModule\",\"name\":\"riskModule\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"start\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"}],\"internalType\":\"struct Policy.PolicyData\",\"name\":\"policy\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"resolvePolicyRaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IRiskModule.Parameter\",\"name\":\"param\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"name\":\"setWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Ensuro\",\"custom:security-contact\":\"security@ensuro.co\",\"details\":\"Risk Module without any validation, just the newPolicy and resolvePolicy need to be called by authorized users\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"activeExposure()\":{\"details\":\"Returns sum of the (maximum) payout of the active policies of this risk module, i.e. the maximum possible amount of money that's exposed for this risk module.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"exposureLimit()\":{\"details\":\"Returns maximum exposure (sum of the (maximum) payout of the active policies) of this risk module. `activeExposure() <= exposureLimit()` always\"},\"initialize(string,uint256,uint256,uint256,uint256,uint256,address)\":{\"details\":\"Initializes the RiskModule\",\"params\":{\"collRatio_\":\"Collateralization ratio to compute solvency requirement as % of payout (in ray)\",\"ensuroPpFee_\":\"% of pure premium that will go for Ensuro treasury (in ray)\",\"exposureLimit_\":\"Max exposure (sum of payouts) to be allocated to this module (in wad)\",\"maxPayoutPerPolicy_\":\"Maximum payout per policy (in wad)\",\"name_\":\"Name of the Risk Module\",\"srRoc_\":\"return on capital paid to Senior LPs (annualized percentage - in ray)\",\"wallet_\":\"Address of the RiskModule provider\"}},\"maxDuration()\":{\"details\":\"Returns the maximum duration (in hours) of the policies of this risk module.      The `expiration` of the policies has to be `<= (block.timestamp + 3600 * maxDuration())`\"},\"maxPayoutPerPolicy()\":{\"details\":\"Returns the maximum payout accepted for new policies.\"},\"name()\":{\"details\":\"A readable name of this risk module. Never changes.\"},\"params()\":{\"details\":\"Returns different parameters of the risk module (see {Params})\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"policyPool()\":{\"details\":\"Returns the address of the PolicyPool (see {PolicyPool}) where this component belongs.\"},\"premiumsAccount()\":{\"details\":\"Returns the {PremiumsAccount} where the premiums of this risk module are collected. Never changes.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"releaseExposure(uint256)\":{\"details\":\"Called when a policy expires or is resolved to update the exposure. Requirements: - Must be called by `policyPool()`\",\"params\":{\"payout\":\"The exposure (maximum payout) of the policy\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"wallet()\":{\"details\":\"Returns the address of the partner that receives the partnerCommission\"}},\"title\":\"Trustful Risk Module\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/RiskModuleMock.sol\":\"RiskModuleMock\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d362da7417bc7d7cc8623f3d3f8f04c3808d043ee6379568c63a63ec14a124e\",\"dweb:/ipfs/QmYm3wDHUcfGh3MNiRqpWEBbSSYnDSyUsppDATy5DVsfui\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"contracts/Policy.sol\":{\"keccak256\":\"0x23341bb01be9ab4fe40e99fc0990fd327988a0f9027d0c6858afbcfb0ad2d498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f9aae5f9535c070841ab560b6d3d3b3c97ff303f52dcbcd403569d98c659e180\",\"dweb:/ipfs/QmaKgj7L19wH1VBhGRa6q5aE3ywVpCJDwfGXNh4nvDQdrR\"]},\"contracts/PolicyPoolComponent.sol\":{\"keccak256\":\"0x2ad829be11436e7a472f2f7f5ec0c29c7c9dfad5b96c8699cf375d5411f040e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5af2e5ef88e1047a8ebb0866a8eb44a91bc2f8e3cc788db1fd0eb57307295873\",\"dweb:/ipfs/QmeQPMGZ2mpTpjEKYdVYDccF59i2muqHBFedvx7VPGJKFc\"]},\"contracts/RiskModule.sol\":{\"keccak256\":\"0x4ab74bb567a174d47dbf3ecd9d320cbac7db8b632b3ea81ffc064982e066b49c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09023b5103a5104cd0f12af92dc7a49fdc0e1b22254fe84552037872ee611f2b\",\"dweb:/ipfs/QmQPfSV7yGPLdi7wfFhxEojPXLZEcpEuTCPp6jLzysidFz\"]},\"contracts/dependencies/WadRayMath.sol\":{\"keccak256\":\"0xa0e942645a6281c0f8c33345ea4046284d727bab459436cd85d3652ef099fd58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://166916a5fd6525149f99cf3aa041a180ffe1a33af4999ea3b119ffb81aa7929e\",\"dweb:/ipfs/QmddTz5hZWX4CtzBCbWbGVXaD6oUM4nayoimCC4mekLc5r\"]},\"contracts/interfaces/IAccessManager.sol\":{\"keccak256\":\"0x2a8515bea51f69b9bc5750d07e702efc2c412bcdd43763e3bf9b8b122d6541d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://350a0fcf02f50112a4c68cc86944669729b3270aa4f1105cf718129eb31df633\",\"dweb:/ipfs/QmPe7Qg4qpp3kRPMDaMXSvAsMA498HoGDJRLXcPv9mncVu\"]},\"contracts/interfaces/IEToken.sol\":{\"keccak256\":\"0x9be33d62ff7f3681c3b623dc75969a9887bca64d5f3f33caaa11b40ecc7bdea2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d218bb8b7b26f5966d96e5da6ac815246a185ca981dcf42f76f0967986665539\",\"dweb:/ipfs/QmdRSBGmyrzAVZkfaSPMUqKzQjA3W7cgeA3VUttAt1X2aC\"]},\"contracts/interfaces/IPolicyPool.sol\":{\"keccak256\":\"0x34e090298ceed40c8396ebcf4ebdf01284d855613fbe9d3c539cab5637d7d8a6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0a2950e9f5c5eb7e4dd3bd718368f3f11e4e44abe0b870a61101faf77a293ab1\",\"dweb:/ipfs/QmbieWqmfbADA9BB7uHE7QJ1Aiom8CPYA9ArC6mGzoPzta\"]},\"contracts/interfaces/IPolicyPoolComponent.sol\":{\"keccak256\":\"0xa829b23f94a974876dfa06aabafbdd0078caa58c76c91f3d975a54145849568d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6ed5617116bd3387b2e3694157e2963f80480248bd4d510e0ff888c877212956\",\"dweb:/ipfs/QmPwT88vR5PJ32EpQdwLcNUzJ78x55CX4JrXRyKMBWsu6A\"]},\"contracts/interfaces/IPremiumsAccount.sol\":{\"keccak256\":\"0x53744989cbe0e33eadef1ff7248cf340349ae11f7e9797bb924ff815462a6147\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3362ad7f52badf0c4994dc474e4a438d0bfa19c913e2af98d6a1d11984f1e438\",\"dweb:/ipfs/Qmc3Z6uCjQQHDeSK7P9UXfSMmceLQX9g8Uvcyb5MssWAGj\"]},\"contracts/interfaces/IRiskModule.sol\":{\"keccak256\":\"0x9a36cc54389e477edbba15ddca432d7d904cdbf11b4be3ab3d77af2ef8115f58\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7bf36ce7e0ae0a59a6ee406c66439bc37a21139f4507041d8509d9116b6173c1\",\"dweb:/ipfs/Qmbhutvuf4aLNrvG7y55Qb9be2cuUz5PSEESL8JQoaDskK\"]},\"contracts/mocks/RiskModuleMock.sol\":{\"keccak256\":\"0x70ed6fc4d4f1cc82b4e5ccab040aab3f0a78673f8addf0feb810f5c025013f74\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://291f878fcfb40a355a9f42506e4ab2b31ad7d01a92c53c1583df34449d8c1cb5\",\"dweb:/ipfs/QmNQyJfqJ1taTQYFKyy4fbL13KcHAiETKUzkKgM13RYiMV\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":782,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":785,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":764,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1080,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":2703,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"101","type":"t_array(t_uint256)50_storage"},{"astId":1103,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_paused","offset":0,"slot":"151","type":"t_bool"},{"astId":1208,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18099,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"201","type":"t_array(t_uint256)50_storage"},{"astId":20199,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_name","offset":0,"slot":"251","type":"t_string_storage"},{"astId":20223,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_params","offset":0,"slot":"252","type":"t_struct(PackedParams)20220_storage"},{"astId":20225,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_activeExposure","offset":0,"slot":"253","type":"t_uint256"},{"astId":20227,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"_wallet","offset":0,"slot":"254","type":"t_address"},{"astId":21465,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"__gap","offset":0,"slot":"255","type":"t_array(t_uint256)46_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(PackedParams)20220_storage":{"encoding":"inplace","label":"struct RiskModule.PackedParams","members":[{"astId":20201,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"moc","offset":0,"slot":"0","type":"t_uint16"},{"astId":20203,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"jrCollRatio","offset":2,"slot":"0","type":"t_uint16"},{"astId":20205,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"collRatio","offset":4,"slot":"0","type":"t_uint16"},{"astId":20207,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"ensuroPpFee","offset":6,"slot":"0","type":"t_uint16"},{"astId":20209,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"ensuroCocFee","offset":8,"slot":"0","type":"t_uint16"},{"astId":20211,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"jrRoc","offset":10,"slot":"0","type":"t_uint16"},{"astId":20213,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"srRoc","offset":12,"slot":"0","type":"t_uint16"},{"astId":20215,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"maxPayoutPerPolicy","offset":14,"slot":"0","type":"t_uint32"},{"astId":20217,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"exposureLimit","offset":18,"slot":"0","type":"t_uint32"},{"astId":20219,"contract":"contracts/mocks/RiskModuleMock.sol:RiskModuleMock","label":"maxDuration","offset":22,"slot":"0","type":"t_uint16"}],"numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/mocks/TestCurrency.sol":{"TestCurrency":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"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":[{"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":"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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_25906":{"entryPoint":null,"id":25906,"parameterSlots":4,"returnSlots":0},"@_4794":{"entryPoint":null,"id":4794,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_5335":{"entryPoint":null,"id":5335,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_5324":{"entryPoint":316,"id":5324,"parameterSlots":3,"returnSlots":0},"@_mint_5153":{"entryPoint":123,"id":5153,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint8_fromMemory":{"entryPoint":478,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":928,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":667,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":742,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":611,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":321,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4923:88","nodeType":"YulBlock","src":"0:4923:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"46:95:88","nodeType":"YulBlock","src":"46:95:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:88","nodeType":"YulLiteral","src":"63:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:88","nodeType":"YulLiteral","src":"70:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:88","nodeType":"YulLiteral","src":"75:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:88","nodeType":"YulIdentifier","src":"66:3:88"},"nativeSrc":"66:20:88","nodeType":"YulFunctionCall","src":"66:20:88"}],"functionName":{"name":"mstore","nativeSrc":"56:6:88","nodeType":"YulIdentifier","src":"56:6:88"},"nativeSrc":"56:31:88","nodeType":"YulFunctionCall","src":"56:31:88"},"nativeSrc":"56:31:88","nodeType":"YulExpressionStatement","src":"56:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:88","nodeType":"YulLiteral","src":"103:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:88","nodeType":"YulLiteral","src":"106:4:88","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:88","nodeType":"YulIdentifier","src":"96:6:88"},"nativeSrc":"96:15:88","nodeType":"YulFunctionCall","src":"96:15:88"},"nativeSrc":"96:15:88","nodeType":"YulExpressionStatement","src":"96:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:88","nodeType":"YulLiteral","src":"127:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:88","nodeType":"YulLiteral","src":"130:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:88","nodeType":"YulIdentifier","src":"120:6:88"},"nativeSrc":"120:15:88","nodeType":"YulFunctionCall","src":"120:15:88"},"nativeSrc":"120:15:88","nodeType":"YulExpressionStatement","src":"120:15:88"}]},"name":"panic_error_0x41","nativeSrc":"14:127:88","nodeType":"YulFunctionDefinition","src":"14:127:88"},{"body":{"nativeSrc":"210:659:88","nodeType":"YulBlock","src":"210:659:88","statements":[{"body":{"nativeSrc":"259:16:88","nodeType":"YulBlock","src":"259:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:88","nodeType":"YulLiteral","src":"268:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:88","nodeType":"YulLiteral","src":"271:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:88","nodeType":"YulIdentifier","src":"261:6:88"},"nativeSrc":"261:12:88","nodeType":"YulFunctionCall","src":"261:12:88"},"nativeSrc":"261:12:88","nodeType":"YulExpressionStatement","src":"261:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:88","nodeType":"YulIdentifier","src":"238:6:88"},{"kind":"number","nativeSrc":"246:4:88","nodeType":"YulLiteral","src":"246:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:88","nodeType":"YulIdentifier","src":"234:3:88"},"nativeSrc":"234:17:88","nodeType":"YulFunctionCall","src":"234:17:88"},{"name":"end","nativeSrc":"253:3:88","nodeType":"YulIdentifier","src":"253:3:88"}],"functionName":{"name":"slt","nativeSrc":"230:3:88","nodeType":"YulIdentifier","src":"230:3:88"},"nativeSrc":"230:27:88","nodeType":"YulFunctionCall","src":"230:27:88"}],"functionName":{"name":"iszero","nativeSrc":"223:6:88","nodeType":"YulIdentifier","src":"223:6:88"},"nativeSrc":"223:35:88","nodeType":"YulFunctionCall","src":"223:35:88"},"nativeSrc":"220:55:88","nodeType":"YulIf","src":"220:55:88"},{"nativeSrc":"284:27:88","nodeType":"YulVariableDeclaration","src":"284:27:88","value":{"arguments":[{"name":"offset","nativeSrc":"304:6:88","nodeType":"YulIdentifier","src":"304:6:88"}],"functionName":{"name":"mload","nativeSrc":"298:5:88","nodeType":"YulIdentifier","src":"298:5:88"},"nativeSrc":"298:13:88","nodeType":"YulFunctionCall","src":"298:13:88"},"variables":[{"name":"length","nativeSrc":"288:6:88","nodeType":"YulTypedName","src":"288:6:88","type":""}]},{"body":{"nativeSrc":"354:22:88","nodeType":"YulBlock","src":"354:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"356:16:88","nodeType":"YulIdentifier","src":"356:16:88"},"nativeSrc":"356:18:88","nodeType":"YulFunctionCall","src":"356:18:88"},"nativeSrc":"356:18:88","nodeType":"YulExpressionStatement","src":"356:18:88"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"326:6:88","nodeType":"YulIdentifier","src":"326:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"342:2:88","nodeType":"YulLiteral","src":"342:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"346:1:88","nodeType":"YulLiteral","src":"346:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"338:3:88","nodeType":"YulIdentifier","src":"338:3:88"},"nativeSrc":"338:10:88","nodeType":"YulFunctionCall","src":"338:10:88"},{"kind":"number","nativeSrc":"350:1:88","nodeType":"YulLiteral","src":"350:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"334:3:88","nodeType":"YulIdentifier","src":"334:3:88"},"nativeSrc":"334:18:88","nodeType":"YulFunctionCall","src":"334:18:88"}],"functionName":{"name":"gt","nativeSrc":"323:2:88","nodeType":"YulIdentifier","src":"323:2:88"},"nativeSrc":"323:30:88","nodeType":"YulFunctionCall","src":"323:30:88"},"nativeSrc":"320:56:88","nodeType":"YulIf","src":"320:56:88"},{"nativeSrc":"385:23:88","nodeType":"YulVariableDeclaration","src":"385:23:88","value":{"arguments":[{"kind":"number","nativeSrc":"405:2:88","nodeType":"YulLiteral","src":"405:2:88","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"399:5:88","nodeType":"YulIdentifier","src":"399:5:88"},"nativeSrc":"399:9:88","nodeType":"YulFunctionCall","src":"399:9:88"},"variables":[{"name":"memPtr","nativeSrc":"389:6:88","nodeType":"YulTypedName","src":"389:6:88","type":""}]},{"nativeSrc":"417:85:88","nodeType":"YulVariableDeclaration","src":"417:85:88","value":{"arguments":[{"name":"memPtr","nativeSrc":"439:6:88","nodeType":"YulIdentifier","src":"439:6:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"463:6:88","nodeType":"YulIdentifier","src":"463:6:88"},{"kind":"number","nativeSrc":"471:4:88","nodeType":"YulLiteral","src":"471:4:88","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"459:3:88","nodeType":"YulIdentifier","src":"459:3:88"},"nativeSrc":"459:17:88","nodeType":"YulFunctionCall","src":"459:17:88"},{"arguments":[{"kind":"number","nativeSrc":"482:2:88","nodeType":"YulLiteral","src":"482:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"478:3:88","nodeType":"YulIdentifier","src":"478:3:88"},"nativeSrc":"478:7:88","nodeType":"YulFunctionCall","src":"478:7:88"}],"functionName":{"name":"and","nativeSrc":"455:3:88","nodeType":"YulIdentifier","src":"455:3:88"},"nativeSrc":"455:31:88","nodeType":"YulFunctionCall","src":"455:31:88"},{"kind":"number","nativeSrc":"488:2:88","nodeType":"YulLiteral","src":"488:2:88","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"451:3:88","nodeType":"YulIdentifier","src":"451:3:88"},"nativeSrc":"451:40:88","nodeType":"YulFunctionCall","src":"451:40:88"},{"arguments":[{"kind":"number","nativeSrc":"497:2:88","nodeType":"YulLiteral","src":"497:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"493:3:88","nodeType":"YulIdentifier","src":"493:3:88"},"nativeSrc":"493:7:88","nodeType":"YulFunctionCall","src":"493:7:88"}],"functionName":{"name":"and","nativeSrc":"447:3:88","nodeType":"YulIdentifier","src":"447:3:88"},"nativeSrc":"447:54:88","nodeType":"YulFunctionCall","src":"447:54:88"}],"functionName":{"name":"add","nativeSrc":"435:3:88","nodeType":"YulIdentifier","src":"435:3:88"},"nativeSrc":"435:67:88","nodeType":"YulFunctionCall","src":"435:67:88"},"variables":[{"name":"newFreePtr","nativeSrc":"421:10:88","nodeType":"YulTypedName","src":"421:10:88","type":""}]},{"body":{"nativeSrc":"577:22:88","nodeType":"YulBlock","src":"577:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"579:16:88","nodeType":"YulIdentifier","src":"579:16:88"},"nativeSrc":"579:18:88","nodeType":"YulFunctionCall","src":"579:18:88"},"nativeSrc":"579:18:88","nodeType":"YulExpressionStatement","src":"579:18:88"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"520:10:88","nodeType":"YulIdentifier","src":"520:10:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"540:2:88","nodeType":"YulLiteral","src":"540:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"544:1:88","nodeType":"YulLiteral","src":"544:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"536:3:88","nodeType":"YulIdentifier","src":"536:3:88"},"nativeSrc":"536:10:88","nodeType":"YulFunctionCall","src":"536:10:88"},{"kind":"number","nativeSrc":"548:1:88","nodeType":"YulLiteral","src":"548:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"532:3:88","nodeType":"YulIdentifier","src":"532:3:88"},"nativeSrc":"532:18:88","nodeType":"YulFunctionCall","src":"532:18:88"}],"functionName":{"name":"gt","nativeSrc":"517:2:88","nodeType":"YulIdentifier","src":"517:2:88"},"nativeSrc":"517:34:88","nodeType":"YulFunctionCall","src":"517:34:88"},{"arguments":[{"name":"newFreePtr","nativeSrc":"556:10:88","nodeType":"YulIdentifier","src":"556:10:88"},{"name":"memPtr","nativeSrc":"568:6:88","nodeType":"YulIdentifier","src":"568:6:88"}],"functionName":{"name":"lt","nativeSrc":"553:2:88","nodeType":"YulIdentifier","src":"553:2:88"},"nativeSrc":"553:22:88","nodeType":"YulFunctionCall","src":"553:22:88"}],"functionName":{"name":"or","nativeSrc":"514:2:88","nodeType":"YulIdentifier","src":"514:2:88"},"nativeSrc":"514:62:88","nodeType":"YulFunctionCall","src":"514:62:88"},"nativeSrc":"511:88:88","nodeType":"YulIf","src":"511:88:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"615:2:88","nodeType":"YulLiteral","src":"615:2:88","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"619:10:88","nodeType":"YulIdentifier","src":"619:10:88"}],"functionName":{"name":"mstore","nativeSrc":"608:6:88","nodeType":"YulIdentifier","src":"608:6:88"},"nativeSrc":"608:22:88","nodeType":"YulFunctionCall","src":"608:22:88"},"nativeSrc":"608:22:88","nodeType":"YulExpressionStatement","src":"608:22:88"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"646:6:88","nodeType":"YulIdentifier","src":"646:6:88"},{"name":"length","nativeSrc":"654:6:88","nodeType":"YulIdentifier","src":"654:6:88"}],"functionName":{"name":"mstore","nativeSrc":"639:6:88","nodeType":"YulIdentifier","src":"639:6:88"},"nativeSrc":"639:22:88","nodeType":"YulFunctionCall","src":"639:22:88"},"nativeSrc":"639:22:88","nodeType":"YulExpressionStatement","src":"639:22:88"},{"body":{"nativeSrc":"713:16:88","nodeType":"YulBlock","src":"713:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"722:1:88","nodeType":"YulLiteral","src":"722:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"725:1:88","nodeType":"YulLiteral","src":"725:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"715:6:88","nodeType":"YulIdentifier","src":"715:6:88"},"nativeSrc":"715:12:88","nodeType":"YulFunctionCall","src":"715:12:88"},"nativeSrc":"715:12:88","nodeType":"YulExpressionStatement","src":"715:12:88"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"684:6:88","nodeType":"YulIdentifier","src":"684:6:88"},{"name":"length","nativeSrc":"692:6:88","nodeType":"YulIdentifier","src":"692:6:88"}],"functionName":{"name":"add","nativeSrc":"680:3:88","nodeType":"YulIdentifier","src":"680:3:88"},"nativeSrc":"680:19:88","nodeType":"YulFunctionCall","src":"680:19:88"},{"kind":"number","nativeSrc":"701:4:88","nodeType":"YulLiteral","src":"701:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"676:3:88","nodeType":"YulIdentifier","src":"676:3:88"},"nativeSrc":"676:30:88","nodeType":"YulFunctionCall","src":"676:30:88"},{"name":"end","nativeSrc":"708:3:88","nodeType":"YulIdentifier","src":"708:3:88"}],"functionName":{"name":"gt","nativeSrc":"673:2:88","nodeType":"YulIdentifier","src":"673:2:88"},"nativeSrc":"673:39:88","nodeType":"YulFunctionCall","src":"673:39:88"},"nativeSrc":"670:59:88","nodeType":"YulIf","src":"670:59:88"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"748:6:88","nodeType":"YulIdentifier","src":"748:6:88"},{"kind":"number","nativeSrc":"756:4:88","nodeType":"YulLiteral","src":"756:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"744:3:88","nodeType":"YulIdentifier","src":"744:3:88"},"nativeSrc":"744:17:88","nodeType":"YulFunctionCall","src":"744:17:88"},{"arguments":[{"name":"offset","nativeSrc":"767:6:88","nodeType":"YulIdentifier","src":"767:6:88"},{"kind":"number","nativeSrc":"775:4:88","nodeType":"YulLiteral","src":"775:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"763:3:88","nodeType":"YulIdentifier","src":"763:3:88"},"nativeSrc":"763:17:88","nodeType":"YulFunctionCall","src":"763:17:88"},{"name":"length","nativeSrc":"782:6:88","nodeType":"YulIdentifier","src":"782:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"738:5:88","nodeType":"YulIdentifier","src":"738:5:88"},"nativeSrc":"738:51:88","nodeType":"YulFunctionCall","src":"738:51:88"},"nativeSrc":"738:51:88","nodeType":"YulExpressionStatement","src":"738:51:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"813:6:88","nodeType":"YulIdentifier","src":"813:6:88"},{"name":"length","nativeSrc":"821:6:88","nodeType":"YulIdentifier","src":"821:6:88"}],"functionName":{"name":"add","nativeSrc":"809:3:88","nodeType":"YulIdentifier","src":"809:3:88"},"nativeSrc":"809:19:88","nodeType":"YulFunctionCall","src":"809:19:88"},{"kind":"number","nativeSrc":"830:4:88","nodeType":"YulLiteral","src":"830:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"805:3:88","nodeType":"YulIdentifier","src":"805:3:88"},"nativeSrc":"805:30:88","nodeType":"YulFunctionCall","src":"805:30:88"},{"kind":"number","nativeSrc":"837:1:88","nodeType":"YulLiteral","src":"837:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"798:6:88","nodeType":"YulIdentifier","src":"798:6:88"},"nativeSrc":"798:41:88","nodeType":"YulFunctionCall","src":"798:41:88"},"nativeSrc":"798:41:88","nodeType":"YulExpressionStatement","src":"798:41:88"},{"nativeSrc":"848:15:88","nodeType":"YulAssignment","src":"848:15:88","value":{"name":"memPtr","nativeSrc":"857:6:88","nodeType":"YulIdentifier","src":"857:6:88"},"variableNames":[{"name":"array","nativeSrc":"848:5:88","nodeType":"YulIdentifier","src":"848:5:88"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:723:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:88","nodeType":"YulTypedName","src":"184:6:88","type":""},{"name":"end","nativeSrc":"192:3:88","nodeType":"YulTypedName","src":"192:3:88","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:88","nodeType":"YulTypedName","src":"200:5:88","type":""}],"src":"146:723:88"},{"body":{"nativeSrc":"1024:619:88","nodeType":"YulBlock","src":"1024:619:88","statements":[{"body":{"nativeSrc":"1071:16:88","nodeType":"YulBlock","src":"1071:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1080:1:88","nodeType":"YulLiteral","src":"1080:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1083:1:88","nodeType":"YulLiteral","src":"1083:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1073:6:88","nodeType":"YulIdentifier","src":"1073:6:88"},"nativeSrc":"1073:12:88","nodeType":"YulFunctionCall","src":"1073:12:88"},"nativeSrc":"1073:12:88","nodeType":"YulExpressionStatement","src":"1073:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1045:7:88","nodeType":"YulIdentifier","src":"1045:7:88"},{"name":"headStart","nativeSrc":"1054:9:88","nodeType":"YulIdentifier","src":"1054:9:88"}],"functionName":{"name":"sub","nativeSrc":"1041:3:88","nodeType":"YulIdentifier","src":"1041:3:88"},"nativeSrc":"1041:23:88","nodeType":"YulFunctionCall","src":"1041:23:88"},{"kind":"number","nativeSrc":"1066:3:88","nodeType":"YulLiteral","src":"1066:3:88","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1037:3:88","nodeType":"YulIdentifier","src":"1037:3:88"},"nativeSrc":"1037:33:88","nodeType":"YulFunctionCall","src":"1037:33:88"},"nativeSrc":"1034:53:88","nodeType":"YulIf","src":"1034:53:88"},{"nativeSrc":"1096:30:88","nodeType":"YulVariableDeclaration","src":"1096:30:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1116:9:88","nodeType":"YulIdentifier","src":"1116:9:88"}],"functionName":{"name":"mload","nativeSrc":"1110:5:88","nodeType":"YulIdentifier","src":"1110:5:88"},"nativeSrc":"1110:16:88","nodeType":"YulFunctionCall","src":"1110:16:88"},"variables":[{"name":"offset","nativeSrc":"1100:6:88","nodeType":"YulTypedName","src":"1100:6:88","type":""}]},{"body":{"nativeSrc":"1169:16:88","nodeType":"YulBlock","src":"1169:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1178:1:88","nodeType":"YulLiteral","src":"1178:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1181:1:88","nodeType":"YulLiteral","src":"1181:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1171:6:88","nodeType":"YulIdentifier","src":"1171:6:88"},"nativeSrc":"1171:12:88","nodeType":"YulFunctionCall","src":"1171:12:88"},"nativeSrc":"1171:12:88","nodeType":"YulExpressionStatement","src":"1171:12:88"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1141:6:88","nodeType":"YulIdentifier","src":"1141:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1157:2:88","nodeType":"YulLiteral","src":"1157:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1161:1:88","nodeType":"YulLiteral","src":"1161:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1153:3:88","nodeType":"YulIdentifier","src":"1153:3:88"},"nativeSrc":"1153:10:88","nodeType":"YulFunctionCall","src":"1153:10:88"},{"kind":"number","nativeSrc":"1165:1:88","nodeType":"YulLiteral","src":"1165:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1149:3:88","nodeType":"YulIdentifier","src":"1149:3:88"},"nativeSrc":"1149:18:88","nodeType":"YulFunctionCall","src":"1149:18:88"}],"functionName":{"name":"gt","nativeSrc":"1138:2:88","nodeType":"YulIdentifier","src":"1138:2:88"},"nativeSrc":"1138:30:88","nodeType":"YulFunctionCall","src":"1138:30:88"},"nativeSrc":"1135:50:88","nodeType":"YulIf","src":"1135:50:88"},{"nativeSrc":"1194:71:88","nodeType":"YulAssignment","src":"1194:71:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1237:9:88","nodeType":"YulIdentifier","src":"1237:9:88"},{"name":"offset","nativeSrc":"1248:6:88","nodeType":"YulIdentifier","src":"1248:6:88"}],"functionName":{"name":"add","nativeSrc":"1233:3:88","nodeType":"YulIdentifier","src":"1233:3:88"},"nativeSrc":"1233:22:88","nodeType":"YulFunctionCall","src":"1233:22:88"},{"name":"dataEnd","nativeSrc":"1257:7:88","nodeType":"YulIdentifier","src":"1257:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1204:28:88","nodeType":"YulIdentifier","src":"1204:28:88"},"nativeSrc":"1204:61:88","nodeType":"YulFunctionCall","src":"1204:61:88"},"variableNames":[{"name":"value0","nativeSrc":"1194:6:88","nodeType":"YulIdentifier","src":"1194:6:88"}]},{"nativeSrc":"1274:41:88","nodeType":"YulVariableDeclaration","src":"1274:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1300:9:88","nodeType":"YulIdentifier","src":"1300:9:88"},{"kind":"number","nativeSrc":"1311:2:88","nodeType":"YulLiteral","src":"1311:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1296:3:88","nodeType":"YulIdentifier","src":"1296:3:88"},"nativeSrc":"1296:18:88","nodeType":"YulFunctionCall","src":"1296:18:88"}],"functionName":{"name":"mload","nativeSrc":"1290:5:88","nodeType":"YulIdentifier","src":"1290:5:88"},"nativeSrc":"1290:25:88","nodeType":"YulFunctionCall","src":"1290:25:88"},"variables":[{"name":"offset_1","nativeSrc":"1278:8:88","nodeType":"YulTypedName","src":"1278:8:88","type":""}]},{"body":{"nativeSrc":"1360:16:88","nodeType":"YulBlock","src":"1360:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1369:1:88","nodeType":"YulLiteral","src":"1369:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1372:1:88","nodeType":"YulLiteral","src":"1372:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1362:6:88","nodeType":"YulIdentifier","src":"1362:6:88"},"nativeSrc":"1362:12:88","nodeType":"YulFunctionCall","src":"1362:12:88"},"nativeSrc":"1362:12:88","nodeType":"YulExpressionStatement","src":"1362:12:88"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1330:8:88","nodeType":"YulIdentifier","src":"1330:8:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1348:2:88","nodeType":"YulLiteral","src":"1348:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"1352:1:88","nodeType":"YulLiteral","src":"1352:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1344:3:88","nodeType":"YulIdentifier","src":"1344:3:88"},"nativeSrc":"1344:10:88","nodeType":"YulFunctionCall","src":"1344:10:88"},{"kind":"number","nativeSrc":"1356:1:88","nodeType":"YulLiteral","src":"1356:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1340:3:88","nodeType":"YulIdentifier","src":"1340:3:88"},"nativeSrc":"1340:18:88","nodeType":"YulFunctionCall","src":"1340:18:88"}],"functionName":{"name":"gt","nativeSrc":"1327:2:88","nodeType":"YulIdentifier","src":"1327:2:88"},"nativeSrc":"1327:32:88","nodeType":"YulFunctionCall","src":"1327:32:88"},"nativeSrc":"1324:52:88","nodeType":"YulIf","src":"1324:52:88"},{"nativeSrc":"1385:73:88","nodeType":"YulAssignment","src":"1385:73:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1428:9:88","nodeType":"YulIdentifier","src":"1428:9:88"},{"name":"offset_1","nativeSrc":"1439:8:88","nodeType":"YulIdentifier","src":"1439:8:88"}],"functionName":{"name":"add","nativeSrc":"1424:3:88","nodeType":"YulIdentifier","src":"1424:3:88"},"nativeSrc":"1424:24:88","nodeType":"YulFunctionCall","src":"1424:24:88"},{"name":"dataEnd","nativeSrc":"1450:7:88","nodeType":"YulIdentifier","src":"1450:7:88"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1395:28:88","nodeType":"YulIdentifier","src":"1395:28:88"},"nativeSrc":"1395:63:88","nodeType":"YulFunctionCall","src":"1395:63:88"},"variableNames":[{"name":"value1","nativeSrc":"1385:6:88","nodeType":"YulIdentifier","src":"1385:6:88"}]},{"nativeSrc":"1467:35:88","nodeType":"YulAssignment","src":"1467:35:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1487:9:88","nodeType":"YulIdentifier","src":"1487:9:88"},{"kind":"number","nativeSrc":"1498:2:88","nodeType":"YulLiteral","src":"1498:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1483:3:88","nodeType":"YulIdentifier","src":"1483:3:88"},"nativeSrc":"1483:18:88","nodeType":"YulFunctionCall","src":"1483:18:88"}],"functionName":{"name":"mload","nativeSrc":"1477:5:88","nodeType":"YulIdentifier","src":"1477:5:88"},"nativeSrc":"1477:25:88","nodeType":"YulFunctionCall","src":"1477:25:88"},"variableNames":[{"name":"value2","nativeSrc":"1467:6:88","nodeType":"YulIdentifier","src":"1467:6:88"}]},{"nativeSrc":"1511:38:88","nodeType":"YulVariableDeclaration","src":"1511:38:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1534:9:88","nodeType":"YulIdentifier","src":"1534:9:88"},{"kind":"number","nativeSrc":"1545:2:88","nodeType":"YulLiteral","src":"1545:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1530:3:88","nodeType":"YulIdentifier","src":"1530:3:88"},"nativeSrc":"1530:18:88","nodeType":"YulFunctionCall","src":"1530:18:88"}],"functionName":{"name":"mload","nativeSrc":"1524:5:88","nodeType":"YulIdentifier","src":"1524:5:88"},"nativeSrc":"1524:25:88","nodeType":"YulFunctionCall","src":"1524:25:88"},"variables":[{"name":"value","nativeSrc":"1515:5:88","nodeType":"YulTypedName","src":"1515:5:88","type":""}]},{"body":{"nativeSrc":"1597:16:88","nodeType":"YulBlock","src":"1597:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1606:1:88","nodeType":"YulLiteral","src":"1606:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1609:1:88","nodeType":"YulLiteral","src":"1609:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1599:6:88","nodeType":"YulIdentifier","src":"1599:6:88"},"nativeSrc":"1599:12:88","nodeType":"YulFunctionCall","src":"1599:12:88"},"nativeSrc":"1599:12:88","nodeType":"YulExpressionStatement","src":"1599:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1571:5:88","nodeType":"YulIdentifier","src":"1571:5:88"},{"arguments":[{"name":"value","nativeSrc":"1582:5:88","nodeType":"YulIdentifier","src":"1582:5:88"},{"kind":"number","nativeSrc":"1589:4:88","nodeType":"YulLiteral","src":"1589:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1578:3:88","nodeType":"YulIdentifier","src":"1578:3:88"},"nativeSrc":"1578:16:88","nodeType":"YulFunctionCall","src":"1578:16:88"}],"functionName":{"name":"eq","nativeSrc":"1568:2:88","nodeType":"YulIdentifier","src":"1568:2:88"},"nativeSrc":"1568:27:88","nodeType":"YulFunctionCall","src":"1568:27:88"}],"functionName":{"name":"iszero","nativeSrc":"1561:6:88","nodeType":"YulIdentifier","src":"1561:6:88"},"nativeSrc":"1561:35:88","nodeType":"YulFunctionCall","src":"1561:35:88"},"nativeSrc":"1558:55:88","nodeType":"YulIf","src":"1558:55:88"},{"nativeSrc":"1622:15:88","nodeType":"YulAssignment","src":"1622:15:88","value":{"name":"value","nativeSrc":"1632:5:88","nodeType":"YulIdentifier","src":"1632:5:88"},"variableNames":[{"name":"value3","nativeSrc":"1622:6:88","nodeType":"YulIdentifier","src":"1622:6:88"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint8_fromMemory","nativeSrc":"874:769:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"966:9:88","nodeType":"YulTypedName","src":"966:9:88","type":""},{"name":"dataEnd","nativeSrc":"977:7:88","nodeType":"YulTypedName","src":"977:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"989:6:88","nodeType":"YulTypedName","src":"989:6:88","type":""},{"name":"value1","nativeSrc":"997:6:88","nodeType":"YulTypedName","src":"997:6:88","type":""},{"name":"value2","nativeSrc":"1005:6:88","nodeType":"YulTypedName","src":"1005:6:88","type":""},{"name":"value3","nativeSrc":"1013:6:88","nodeType":"YulTypedName","src":"1013:6:88","type":""}],"src":"874:769:88"},{"body":{"nativeSrc":"1703:325:88","nodeType":"YulBlock","src":"1703:325:88","statements":[{"nativeSrc":"1713:22:88","nodeType":"YulAssignment","src":"1713:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"1727:1:88","nodeType":"YulLiteral","src":"1727:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"1730:4:88","nodeType":"YulIdentifier","src":"1730:4:88"}],"functionName":{"name":"shr","nativeSrc":"1723:3:88","nodeType":"YulIdentifier","src":"1723:3:88"},"nativeSrc":"1723:12:88","nodeType":"YulFunctionCall","src":"1723:12:88"},"variableNames":[{"name":"length","nativeSrc":"1713:6:88","nodeType":"YulIdentifier","src":"1713:6:88"}]},{"nativeSrc":"1744:38:88","nodeType":"YulVariableDeclaration","src":"1744:38:88","value":{"arguments":[{"name":"data","nativeSrc":"1774:4:88","nodeType":"YulIdentifier","src":"1774:4:88"},{"kind":"number","nativeSrc":"1780:1:88","nodeType":"YulLiteral","src":"1780:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1770:3:88","nodeType":"YulIdentifier","src":"1770:3:88"},"nativeSrc":"1770:12:88","nodeType":"YulFunctionCall","src":"1770:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1748:18:88","nodeType":"YulTypedName","src":"1748:18:88","type":""}]},{"body":{"nativeSrc":"1821:31:88","nodeType":"YulBlock","src":"1821:31:88","statements":[{"nativeSrc":"1823:27:88","nodeType":"YulAssignment","src":"1823:27:88","value":{"arguments":[{"name":"length","nativeSrc":"1837:6:88","nodeType":"YulIdentifier","src":"1837:6:88"},{"kind":"number","nativeSrc":"1845:4:88","nodeType":"YulLiteral","src":"1845:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1833:3:88","nodeType":"YulIdentifier","src":"1833:3:88"},"nativeSrc":"1833:17:88","nodeType":"YulFunctionCall","src":"1833:17:88"},"variableNames":[{"name":"length","nativeSrc":"1823:6:88","nodeType":"YulIdentifier","src":"1823:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1801:18:88","nodeType":"YulIdentifier","src":"1801:18:88"}],"functionName":{"name":"iszero","nativeSrc":"1794:6:88","nodeType":"YulIdentifier","src":"1794:6:88"},"nativeSrc":"1794:26:88","nodeType":"YulFunctionCall","src":"1794:26:88"},"nativeSrc":"1791:61:88","nodeType":"YulIf","src":"1791:61:88"},{"body":{"nativeSrc":"1911:111:88","nodeType":"YulBlock","src":"1911:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1932:1:88","nodeType":"YulLiteral","src":"1932:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1939:3:88","nodeType":"YulLiteral","src":"1939:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"1944:10:88","nodeType":"YulLiteral","src":"1944:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1935:3:88","nodeType":"YulIdentifier","src":"1935:3:88"},"nativeSrc":"1935:20:88","nodeType":"YulFunctionCall","src":"1935:20:88"}],"functionName":{"name":"mstore","nativeSrc":"1925:6:88","nodeType":"YulIdentifier","src":"1925:6:88"},"nativeSrc":"1925:31:88","nodeType":"YulFunctionCall","src":"1925:31:88"},"nativeSrc":"1925:31:88","nodeType":"YulExpressionStatement","src":"1925:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1976:1:88","nodeType":"YulLiteral","src":"1976:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"1979:4:88","nodeType":"YulLiteral","src":"1979:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1969:6:88","nodeType":"YulIdentifier","src":"1969:6:88"},"nativeSrc":"1969:15:88","nodeType":"YulFunctionCall","src":"1969:15:88"},"nativeSrc":"1969:15:88","nodeType":"YulExpressionStatement","src":"1969:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2004:1:88","nodeType":"YulLiteral","src":"2004:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2007:4:88","nodeType":"YulLiteral","src":"2007:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1997:6:88","nodeType":"YulIdentifier","src":"1997:6:88"},"nativeSrc":"1997:15:88","nodeType":"YulFunctionCall","src":"1997:15:88"},"nativeSrc":"1997:15:88","nodeType":"YulExpressionStatement","src":"1997:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1867:18:88","nodeType":"YulIdentifier","src":"1867:18:88"},{"arguments":[{"name":"length","nativeSrc":"1890:6:88","nodeType":"YulIdentifier","src":"1890:6:88"},{"kind":"number","nativeSrc":"1898:2:88","nodeType":"YulLiteral","src":"1898:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1887:2:88","nodeType":"YulIdentifier","src":"1887:2:88"},"nativeSrc":"1887:14:88","nodeType":"YulFunctionCall","src":"1887:14:88"}],"functionName":{"name":"eq","nativeSrc":"1864:2:88","nodeType":"YulIdentifier","src":"1864:2:88"},"nativeSrc":"1864:38:88","nodeType":"YulFunctionCall","src":"1864:38:88"},"nativeSrc":"1861:161:88","nodeType":"YulIf","src":"1861:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"1648:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1683:4:88","nodeType":"YulTypedName","src":"1683:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1692:6:88","nodeType":"YulTypedName","src":"1692:6:88","type":""}],"src":"1648:380:88"},{"body":{"nativeSrc":"2089:65:88","nodeType":"YulBlock","src":"2089:65:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2106:1:88","nodeType":"YulLiteral","src":"2106:1:88","type":"","value":"0"},{"name":"ptr","nativeSrc":"2109:3:88","nodeType":"YulIdentifier","src":"2109:3:88"}],"functionName":{"name":"mstore","nativeSrc":"2099:6:88","nodeType":"YulIdentifier","src":"2099:6:88"},"nativeSrc":"2099:14:88","nodeType":"YulFunctionCall","src":"2099:14:88"},"nativeSrc":"2099:14:88","nodeType":"YulExpressionStatement","src":"2099:14:88"},{"nativeSrc":"2122:26:88","nodeType":"YulAssignment","src":"2122:26:88","value":{"arguments":[{"kind":"number","nativeSrc":"2140:1:88","nodeType":"YulLiteral","src":"2140:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2143:4:88","nodeType":"YulLiteral","src":"2143:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2130:9:88","nodeType":"YulIdentifier","src":"2130:9:88"},"nativeSrc":"2130:18:88","nodeType":"YulFunctionCall","src":"2130:18:88"},"variableNames":[{"name":"data","nativeSrc":"2122:4:88","nodeType":"YulIdentifier","src":"2122:4:88"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2033:121:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2072:3:88","nodeType":"YulTypedName","src":"2072:3:88","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2080:4:88","nodeType":"YulTypedName","src":"2080:4:88","type":""}],"src":"2033:121:88"},{"body":{"nativeSrc":"2240:437:88","nodeType":"YulBlock","src":"2240:437:88","statements":[{"body":{"nativeSrc":"2273:398:88","nodeType":"YulBlock","src":"2273:398:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2294:1:88","nodeType":"YulLiteral","src":"2294:1:88","type":"","value":"0"},{"name":"array","nativeSrc":"2297:5:88","nodeType":"YulIdentifier","src":"2297:5:88"}],"functionName":{"name":"mstore","nativeSrc":"2287:6:88","nodeType":"YulIdentifier","src":"2287:6:88"},"nativeSrc":"2287:16:88","nodeType":"YulFunctionCall","src":"2287:16:88"},"nativeSrc":"2287:16:88","nodeType":"YulExpressionStatement","src":"2287:16:88"},{"nativeSrc":"2316:30:88","nodeType":"YulVariableDeclaration","src":"2316:30:88","value":{"arguments":[{"kind":"number","nativeSrc":"2338:1:88","nodeType":"YulLiteral","src":"2338:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2341:4:88","nodeType":"YulLiteral","src":"2341:4:88","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2328:9:88","nodeType":"YulIdentifier","src":"2328:9:88"},"nativeSrc":"2328:18:88","nodeType":"YulFunctionCall","src":"2328:18:88"},"variables":[{"name":"data","nativeSrc":"2320:4:88","nodeType":"YulTypedName","src":"2320:4:88","type":""}]},{"nativeSrc":"2359:57:88","nodeType":"YulVariableDeclaration","src":"2359:57:88","value":{"arguments":[{"name":"data","nativeSrc":"2382:4:88","nodeType":"YulIdentifier","src":"2382:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2392:1:88","nodeType":"YulLiteral","src":"2392:1:88","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2399:10:88","nodeType":"YulIdentifier","src":"2399:10:88"},{"kind":"number","nativeSrc":"2411:2:88","nodeType":"YulLiteral","src":"2411:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2395:3:88","nodeType":"YulIdentifier","src":"2395:3:88"},"nativeSrc":"2395:19:88","nodeType":"YulFunctionCall","src":"2395:19:88"}],"functionName":{"name":"shr","nativeSrc":"2388:3:88","nodeType":"YulIdentifier","src":"2388:3:88"},"nativeSrc":"2388:27:88","nodeType":"YulFunctionCall","src":"2388:27:88"}],"functionName":{"name":"add","nativeSrc":"2378:3:88","nodeType":"YulIdentifier","src":"2378:3:88"},"nativeSrc":"2378:38:88","nodeType":"YulFunctionCall","src":"2378:38:88"},"variables":[{"name":"deleteStart","nativeSrc":"2363:11:88","nodeType":"YulTypedName","src":"2363:11:88","type":""}]},{"body":{"nativeSrc":"2453:23:88","nodeType":"YulBlock","src":"2453:23:88","statements":[{"nativeSrc":"2455:19:88","nodeType":"YulAssignment","src":"2455:19:88","value":{"name":"data","nativeSrc":"2470:4:88","nodeType":"YulIdentifier","src":"2470:4:88"},"variableNames":[{"name":"deleteStart","nativeSrc":"2455:11:88","nodeType":"YulIdentifier","src":"2455:11:88"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2435:10:88","nodeType":"YulIdentifier","src":"2435:10:88"},{"kind":"number","nativeSrc":"2447:4:88","nodeType":"YulLiteral","src":"2447:4:88","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2432:2:88","nodeType":"YulIdentifier","src":"2432:2:88"},"nativeSrc":"2432:20:88","nodeType":"YulFunctionCall","src":"2432:20:88"},"nativeSrc":"2429:47:88","nodeType":"YulIf","src":"2429:47:88"},{"nativeSrc":"2489:41:88","nodeType":"YulVariableDeclaration","src":"2489:41:88","value":{"arguments":[{"name":"data","nativeSrc":"2503:4:88","nodeType":"YulIdentifier","src":"2503:4:88"},{"arguments":[{"kind":"number","nativeSrc":"2513:1:88","nodeType":"YulLiteral","src":"2513:1:88","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2520:3:88","nodeType":"YulIdentifier","src":"2520:3:88"},{"kind":"number","nativeSrc":"2525:2:88","nodeType":"YulLiteral","src":"2525:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2516:3:88","nodeType":"YulIdentifier","src":"2516:3:88"},"nativeSrc":"2516:12:88","nodeType":"YulFunctionCall","src":"2516:12:88"}],"functionName":{"name":"shr","nativeSrc":"2509:3:88","nodeType":"YulIdentifier","src":"2509:3:88"},"nativeSrc":"2509:20:88","nodeType":"YulFunctionCall","src":"2509:20:88"}],"functionName":{"name":"add","nativeSrc":"2499:3:88","nodeType":"YulIdentifier","src":"2499:3:88"},"nativeSrc":"2499:31:88","nodeType":"YulFunctionCall","src":"2499:31:88"},"variables":[{"name":"_1","nativeSrc":"2493:2:88","nodeType":"YulTypedName","src":"2493:2:88","type":""}]},{"nativeSrc":"2543:24:88","nodeType":"YulVariableDeclaration","src":"2543:24:88","value":{"name":"deleteStart","nativeSrc":"2556:11:88","nodeType":"YulIdentifier","src":"2556:11:88"},"variables":[{"name":"start","nativeSrc":"2547:5:88","nodeType":"YulTypedName","src":"2547:5:88","type":""}]},{"body":{"nativeSrc":"2641:20:88","nodeType":"YulBlock","src":"2641:20:88","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2650:5:88","nodeType":"YulIdentifier","src":"2650:5:88"},{"kind":"number","nativeSrc":"2657:1:88","nodeType":"YulLiteral","src":"2657:1:88","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"2643:6:88","nodeType":"YulIdentifier","src":"2643:6:88"},"nativeSrc":"2643:16:88","nodeType":"YulFunctionCall","src":"2643:16:88"},"nativeSrc":"2643:16:88","nodeType":"YulExpressionStatement","src":"2643:16:88"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2591:5:88","nodeType":"YulIdentifier","src":"2591:5:88"},{"name":"_1","nativeSrc":"2598:2:88","nodeType":"YulIdentifier","src":"2598:2:88"}],"functionName":{"name":"lt","nativeSrc":"2588:2:88","nodeType":"YulIdentifier","src":"2588:2:88"},"nativeSrc":"2588:13:88","nodeType":"YulFunctionCall","src":"2588:13:88"},"nativeSrc":"2580:81:88","nodeType":"YulForLoop","post":{"nativeSrc":"2602:26:88","nodeType":"YulBlock","src":"2602:26:88","statements":[{"nativeSrc":"2604:22:88","nodeType":"YulAssignment","src":"2604:22:88","value":{"arguments":[{"name":"start","nativeSrc":"2617:5:88","nodeType":"YulIdentifier","src":"2617:5:88"},{"kind":"number","nativeSrc":"2624:1:88","nodeType":"YulLiteral","src":"2624:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2613:3:88","nodeType":"YulIdentifier","src":"2613:3:88"},"nativeSrc":"2613:13:88","nodeType":"YulFunctionCall","src":"2613:13:88"},"variableNames":[{"name":"start","nativeSrc":"2604:5:88","nodeType":"YulIdentifier","src":"2604:5:88"}]}]},"pre":{"nativeSrc":"2584:3:88","nodeType":"YulBlock","src":"2584:3:88","statements":[]},"src":"2580:81:88"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2256:3:88","nodeType":"YulIdentifier","src":"2256:3:88"},{"kind":"number","nativeSrc":"2261:2:88","nodeType":"YulLiteral","src":"2261:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2253:2:88","nodeType":"YulIdentifier","src":"2253:2:88"},"nativeSrc":"2253:11:88","nodeType":"YulFunctionCall","src":"2253:11:88"},"nativeSrc":"2250:421:88","nodeType":"YulIf","src":"2250:421:88"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2159:518:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2212:5:88","nodeType":"YulTypedName","src":"2212:5:88","type":""},{"name":"len","nativeSrc":"2219:3:88","nodeType":"YulTypedName","src":"2219:3:88","type":""},{"name":"startIndex","nativeSrc":"2224:10:88","nodeType":"YulTypedName","src":"2224:10:88","type":""}],"src":"2159:518:88"},{"body":{"nativeSrc":"2767:81:88","nodeType":"YulBlock","src":"2767:81:88","statements":[{"nativeSrc":"2777:65:88","nodeType":"YulAssignment","src":"2777:65:88","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2792:4:88","nodeType":"YulIdentifier","src":"2792:4:88"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2810:1:88","nodeType":"YulLiteral","src":"2810:1:88","type":"","value":"3"},{"name":"len","nativeSrc":"2813:3:88","nodeType":"YulIdentifier","src":"2813:3:88"}],"functionName":{"name":"shl","nativeSrc":"2806:3:88","nodeType":"YulIdentifier","src":"2806:3:88"},"nativeSrc":"2806:11:88","nodeType":"YulFunctionCall","src":"2806:11:88"},{"arguments":[{"kind":"number","nativeSrc":"2823:1:88","nodeType":"YulLiteral","src":"2823:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2819:3:88","nodeType":"YulIdentifier","src":"2819:3:88"},"nativeSrc":"2819:6:88","nodeType":"YulFunctionCall","src":"2819:6:88"}],"functionName":{"name":"shr","nativeSrc":"2802:3:88","nodeType":"YulIdentifier","src":"2802:3:88"},"nativeSrc":"2802:24:88","nodeType":"YulFunctionCall","src":"2802:24:88"}],"functionName":{"name":"not","nativeSrc":"2798:3:88","nodeType":"YulIdentifier","src":"2798:3:88"},"nativeSrc":"2798:29:88","nodeType":"YulFunctionCall","src":"2798:29:88"}],"functionName":{"name":"and","nativeSrc":"2788:3:88","nodeType":"YulIdentifier","src":"2788:3:88"},"nativeSrc":"2788:40:88","nodeType":"YulFunctionCall","src":"2788:40:88"},{"arguments":[{"kind":"number","nativeSrc":"2834:1:88","nodeType":"YulLiteral","src":"2834:1:88","type":"","value":"1"},{"name":"len","nativeSrc":"2837:3:88","nodeType":"YulIdentifier","src":"2837:3:88"}],"functionName":{"name":"shl","nativeSrc":"2830:3:88","nodeType":"YulIdentifier","src":"2830:3:88"},"nativeSrc":"2830:11:88","nodeType":"YulFunctionCall","src":"2830:11:88"}],"functionName":{"name":"or","nativeSrc":"2785:2:88","nodeType":"YulIdentifier","src":"2785:2:88"},"nativeSrc":"2785:57:88","nodeType":"YulFunctionCall","src":"2785:57:88"},"variableNames":[{"name":"used","nativeSrc":"2777:4:88","nodeType":"YulIdentifier","src":"2777:4:88"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2682:166:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2744:4:88","nodeType":"YulTypedName","src":"2744:4:88","type":""},{"name":"len","nativeSrc":"2750:3:88","nodeType":"YulTypedName","src":"2750:3:88","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2758:4:88","nodeType":"YulTypedName","src":"2758:4:88","type":""}],"src":"2682:166:88"},{"body":{"nativeSrc":"2949:1203:88","nodeType":"YulBlock","src":"2949:1203:88","statements":[{"nativeSrc":"2959:24:88","nodeType":"YulVariableDeclaration","src":"2959:24:88","value":{"arguments":[{"name":"src","nativeSrc":"2979:3:88","nodeType":"YulIdentifier","src":"2979:3:88"}],"functionName":{"name":"mload","nativeSrc":"2973:5:88","nodeType":"YulIdentifier","src":"2973:5:88"},"nativeSrc":"2973:10:88","nodeType":"YulFunctionCall","src":"2973:10:88"},"variables":[{"name":"newLen","nativeSrc":"2963:6:88","nodeType":"YulTypedName","src":"2963:6:88","type":""}]},{"body":{"nativeSrc":"3026:22:88","nodeType":"YulBlock","src":"3026:22:88","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3028:16:88","nodeType":"YulIdentifier","src":"3028:16:88"},"nativeSrc":"3028:18:88","nodeType":"YulFunctionCall","src":"3028:18:88"},"nativeSrc":"3028:18:88","nodeType":"YulExpressionStatement","src":"3028:18:88"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"2998:6:88","nodeType":"YulIdentifier","src":"2998:6:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3014:2:88","nodeType":"YulLiteral","src":"3014:2:88","type":"","value":"64"},{"kind":"number","nativeSrc":"3018:1:88","nodeType":"YulLiteral","src":"3018:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3010:3:88","nodeType":"YulIdentifier","src":"3010:3:88"},"nativeSrc":"3010:10:88","nodeType":"YulFunctionCall","src":"3010:10:88"},{"kind":"number","nativeSrc":"3022:1:88","nodeType":"YulLiteral","src":"3022:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3006:3:88","nodeType":"YulIdentifier","src":"3006:3:88"},"nativeSrc":"3006:18:88","nodeType":"YulFunctionCall","src":"3006:18:88"}],"functionName":{"name":"gt","nativeSrc":"2995:2:88","nodeType":"YulIdentifier","src":"2995:2:88"},"nativeSrc":"2995:30:88","nodeType":"YulFunctionCall","src":"2995:30:88"},"nativeSrc":"2992:56:88","nodeType":"YulIf","src":"2992:56:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3101:4:88","nodeType":"YulIdentifier","src":"3101:4:88"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3139:4:88","nodeType":"YulIdentifier","src":"3139:4:88"}],"functionName":{"name":"sload","nativeSrc":"3133:5:88","nodeType":"YulIdentifier","src":"3133:5:88"},"nativeSrc":"3133:11:88","nodeType":"YulFunctionCall","src":"3133:11:88"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3107:25:88","nodeType":"YulIdentifier","src":"3107:25:88"},"nativeSrc":"3107:38:88","nodeType":"YulFunctionCall","src":"3107:38:88"},{"name":"newLen","nativeSrc":"3147:6:88","nodeType":"YulIdentifier","src":"3147:6:88"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3057:43:88","nodeType":"YulIdentifier","src":"3057:43:88"},"nativeSrc":"3057:97:88","nodeType":"YulFunctionCall","src":"3057:97:88"},"nativeSrc":"3057:97:88","nodeType":"YulExpressionStatement","src":"3057:97:88"},{"nativeSrc":"3163:18:88","nodeType":"YulVariableDeclaration","src":"3163:18:88","value":{"kind":"number","nativeSrc":"3180:1:88","nodeType":"YulLiteral","src":"3180:1:88","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3167:9:88","nodeType":"YulTypedName","src":"3167:9:88","type":""}]},{"nativeSrc":"3190:17:88","nodeType":"YulAssignment","src":"3190:17:88","value":{"kind":"number","nativeSrc":"3203:4:88","nodeType":"YulLiteral","src":"3203:4:88","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3190:9:88","nodeType":"YulIdentifier","src":"3190:9:88"}]},{"cases":[{"body":{"nativeSrc":"3253:642:88","nodeType":"YulBlock","src":"3253:642:88","statements":[{"nativeSrc":"3267:35:88","nodeType":"YulVariableDeclaration","src":"3267:35:88","value":{"arguments":[{"name":"newLen","nativeSrc":"3286:6:88","nodeType":"YulIdentifier","src":"3286:6:88"},{"arguments":[{"kind":"number","nativeSrc":"3298:2:88","nodeType":"YulLiteral","src":"3298:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3294:3:88","nodeType":"YulIdentifier","src":"3294:3:88"},"nativeSrc":"3294:7:88","nodeType":"YulFunctionCall","src":"3294:7:88"}],"functionName":{"name":"and","nativeSrc":"3282:3:88","nodeType":"YulIdentifier","src":"3282:3:88"},"nativeSrc":"3282:20:88","nodeType":"YulFunctionCall","src":"3282:20:88"},"variables":[{"name":"loopEnd","nativeSrc":"3271:7:88","nodeType":"YulTypedName","src":"3271:7:88","type":""}]},{"nativeSrc":"3315:49:88","nodeType":"YulVariableDeclaration","src":"3315:49:88","value":{"arguments":[{"name":"slot","nativeSrc":"3359:4:88","nodeType":"YulIdentifier","src":"3359:4:88"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3329:29:88","nodeType":"YulIdentifier","src":"3329:29:88"},"nativeSrc":"3329:35:88","nodeType":"YulFunctionCall","src":"3329:35:88"},"variables":[{"name":"dstPtr","nativeSrc":"3319:6:88","nodeType":"YulTypedName","src":"3319:6:88","type":""}]},{"nativeSrc":"3377:10:88","nodeType":"YulVariableDeclaration","src":"3377:10:88","value":{"kind":"number","nativeSrc":"3386:1:88","nodeType":"YulLiteral","src":"3386:1:88","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3381:1:88","nodeType":"YulTypedName","src":"3381:1:88","type":""}]},{"body":{"nativeSrc":"3457:165:88","nodeType":"YulBlock","src":"3457:165:88","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3482:6:88","nodeType":"YulIdentifier","src":"3482:6:88"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3500:3:88","nodeType":"YulIdentifier","src":"3500:3:88"},{"name":"srcOffset","nativeSrc":"3505:9:88","nodeType":"YulIdentifier","src":"3505:9:88"}],"functionName":{"name":"add","nativeSrc":"3496:3:88","nodeType":"YulIdentifier","src":"3496:3:88"},"nativeSrc":"3496:19:88","nodeType":"YulFunctionCall","src":"3496:19:88"}],"functionName":{"name":"mload","nativeSrc":"3490:5:88","nodeType":"YulIdentifier","src":"3490:5:88"},"nativeSrc":"3490:26:88","nodeType":"YulFunctionCall","src":"3490:26:88"}],"functionName":{"name":"sstore","nativeSrc":"3475:6:88","nodeType":"YulIdentifier","src":"3475:6:88"},"nativeSrc":"3475:42:88","nodeType":"YulFunctionCall","src":"3475:42:88"},"nativeSrc":"3475:42:88","nodeType":"YulExpressionStatement","src":"3475:42:88"},{"nativeSrc":"3534:24:88","nodeType":"YulAssignment","src":"3534:24:88","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3548:6:88","nodeType":"YulIdentifier","src":"3548:6:88"},{"kind":"number","nativeSrc":"3556:1:88","nodeType":"YulLiteral","src":"3556:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3544:3:88","nodeType":"YulIdentifier","src":"3544:3:88"},"nativeSrc":"3544:14:88","nodeType":"YulFunctionCall","src":"3544:14:88"},"variableNames":[{"name":"dstPtr","nativeSrc":"3534:6:88","nodeType":"YulIdentifier","src":"3534:6:88"}]},{"nativeSrc":"3575:33:88","nodeType":"YulAssignment","src":"3575:33:88","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3592:9:88","nodeType":"YulIdentifier","src":"3592:9:88"},{"kind":"number","nativeSrc":"3603:4:88","nodeType":"YulLiteral","src":"3603:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3588:3:88","nodeType":"YulIdentifier","src":"3588:3:88"},"nativeSrc":"3588:20:88","nodeType":"YulFunctionCall","src":"3588:20:88"},"variableNames":[{"name":"srcOffset","nativeSrc":"3575:9:88","nodeType":"YulIdentifier","src":"3575:9:88"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3411:1:88","nodeType":"YulIdentifier","src":"3411:1:88"},{"name":"loopEnd","nativeSrc":"3414:7:88","nodeType":"YulIdentifier","src":"3414:7:88"}],"functionName":{"name":"lt","nativeSrc":"3408:2:88","nodeType":"YulIdentifier","src":"3408:2:88"},"nativeSrc":"3408:14:88","nodeType":"YulFunctionCall","src":"3408:14:88"},"nativeSrc":"3400:222:88","nodeType":"YulForLoop","post":{"nativeSrc":"3423:21:88","nodeType":"YulBlock","src":"3423:21:88","statements":[{"nativeSrc":"3425:17:88","nodeType":"YulAssignment","src":"3425:17:88","value":{"arguments":[{"name":"i","nativeSrc":"3434:1:88","nodeType":"YulIdentifier","src":"3434:1:88"},{"kind":"number","nativeSrc":"3437:4:88","nodeType":"YulLiteral","src":"3437:4:88","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3430:3:88","nodeType":"YulIdentifier","src":"3430:3:88"},"nativeSrc":"3430:12:88","nodeType":"YulFunctionCall","src":"3430:12:88"},"variableNames":[{"name":"i","nativeSrc":"3425:1:88","nodeType":"YulIdentifier","src":"3425:1:88"}]}]},"pre":{"nativeSrc":"3404:3:88","nodeType":"YulBlock","src":"3404:3:88","statements":[]},"src":"3400:222:88"},{"body":{"nativeSrc":"3670:166:88","nodeType":"YulBlock","src":"3670:166:88","statements":[{"nativeSrc":"3688:43:88","nodeType":"YulVariableDeclaration","src":"3688:43:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3715:3:88","nodeType":"YulIdentifier","src":"3715:3:88"},{"name":"srcOffset","nativeSrc":"3720:9:88","nodeType":"YulIdentifier","src":"3720:9:88"}],"functionName":{"name":"add","nativeSrc":"3711:3:88","nodeType":"YulIdentifier","src":"3711:3:88"},"nativeSrc":"3711:19:88","nodeType":"YulFunctionCall","src":"3711:19:88"}],"functionName":{"name":"mload","nativeSrc":"3705:5:88","nodeType":"YulIdentifier","src":"3705:5:88"},"nativeSrc":"3705:26:88","nodeType":"YulFunctionCall","src":"3705:26:88"},"variables":[{"name":"lastValue","nativeSrc":"3692:9:88","nodeType":"YulTypedName","src":"3692:9:88","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3755:6:88","nodeType":"YulIdentifier","src":"3755:6:88"},{"arguments":[{"name":"lastValue","nativeSrc":"3767:9:88","nodeType":"YulIdentifier","src":"3767:9:88"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3794:1:88","nodeType":"YulLiteral","src":"3794:1:88","type":"","value":"3"},{"name":"newLen","nativeSrc":"3797:6:88","nodeType":"YulIdentifier","src":"3797:6:88"}],"functionName":{"name":"shl","nativeSrc":"3790:3:88","nodeType":"YulIdentifier","src":"3790:3:88"},"nativeSrc":"3790:14:88","nodeType":"YulFunctionCall","src":"3790:14:88"},{"kind":"number","nativeSrc":"3806:3:88","nodeType":"YulLiteral","src":"3806:3:88","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3786:3:88","nodeType":"YulIdentifier","src":"3786:3:88"},"nativeSrc":"3786:24:88","nodeType":"YulFunctionCall","src":"3786:24:88"},{"arguments":[{"kind":"number","nativeSrc":"3816:1:88","nodeType":"YulLiteral","src":"3816:1:88","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3812:3:88","nodeType":"YulIdentifier","src":"3812:3:88"},"nativeSrc":"3812:6:88","nodeType":"YulFunctionCall","src":"3812:6:88"}],"functionName":{"name":"shr","nativeSrc":"3782:3:88","nodeType":"YulIdentifier","src":"3782:3:88"},"nativeSrc":"3782:37:88","nodeType":"YulFunctionCall","src":"3782:37:88"}],"functionName":{"name":"not","nativeSrc":"3778:3:88","nodeType":"YulIdentifier","src":"3778:3:88"},"nativeSrc":"3778:42:88","nodeType":"YulFunctionCall","src":"3778:42:88"}],"functionName":{"name":"and","nativeSrc":"3763:3:88","nodeType":"YulIdentifier","src":"3763:3:88"},"nativeSrc":"3763:58:88","nodeType":"YulFunctionCall","src":"3763:58:88"}],"functionName":{"name":"sstore","nativeSrc":"3748:6:88","nodeType":"YulIdentifier","src":"3748:6:88"},"nativeSrc":"3748:74:88","nodeType":"YulFunctionCall","src":"3748:74:88"},"nativeSrc":"3748:74:88","nodeType":"YulExpressionStatement","src":"3748:74:88"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3641:7:88","nodeType":"YulIdentifier","src":"3641:7:88"},{"name":"newLen","nativeSrc":"3650:6:88","nodeType":"YulIdentifier","src":"3650:6:88"}],"functionName":{"name":"lt","nativeSrc":"3638:2:88","nodeType":"YulIdentifier","src":"3638:2:88"},"nativeSrc":"3638:19:88","nodeType":"YulFunctionCall","src":"3638:19:88"},"nativeSrc":"3635:201:88","nodeType":"YulIf","src":"3635:201:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3856:4:88","nodeType":"YulIdentifier","src":"3856:4:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3870:1:88","nodeType":"YulLiteral","src":"3870:1:88","type":"","value":"1"},{"name":"newLen","nativeSrc":"3873:6:88","nodeType":"YulIdentifier","src":"3873:6:88"}],"functionName":{"name":"shl","nativeSrc":"3866:3:88","nodeType":"YulIdentifier","src":"3866:3:88"},"nativeSrc":"3866:14:88","nodeType":"YulFunctionCall","src":"3866:14:88"},{"kind":"number","nativeSrc":"3882:1:88","nodeType":"YulLiteral","src":"3882:1:88","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3862:3:88","nodeType":"YulIdentifier","src":"3862:3:88"},"nativeSrc":"3862:22:88","nodeType":"YulFunctionCall","src":"3862:22:88"}],"functionName":{"name":"sstore","nativeSrc":"3849:6:88","nodeType":"YulIdentifier","src":"3849:6:88"},"nativeSrc":"3849:36:88","nodeType":"YulFunctionCall","src":"3849:36:88"},"nativeSrc":"3849:36:88","nodeType":"YulExpressionStatement","src":"3849:36:88"}]},"nativeSrc":"3246:649:88","nodeType":"YulCase","src":"3246:649:88","value":{"kind":"number","nativeSrc":"3251:1:88","nodeType":"YulLiteral","src":"3251:1:88","type":"","value":"1"}},{"body":{"nativeSrc":"3912:234:88","nodeType":"YulBlock","src":"3912:234:88","statements":[{"nativeSrc":"3926:14:88","nodeType":"YulVariableDeclaration","src":"3926:14:88","value":{"kind":"number","nativeSrc":"3939:1:88","nodeType":"YulLiteral","src":"3939:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3930:5:88","nodeType":"YulTypedName","src":"3930:5:88","type":""}]},{"body":{"nativeSrc":"3975:67:88","nodeType":"YulBlock","src":"3975:67:88","statements":[{"nativeSrc":"3993:35:88","nodeType":"YulAssignment","src":"3993:35:88","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4012:3:88","nodeType":"YulIdentifier","src":"4012:3:88"},{"name":"srcOffset","nativeSrc":"4017:9:88","nodeType":"YulIdentifier","src":"4017:9:88"}],"functionName":{"name":"add","nativeSrc":"4008:3:88","nodeType":"YulIdentifier","src":"4008:3:88"},"nativeSrc":"4008:19:88","nodeType":"YulFunctionCall","src":"4008:19:88"}],"functionName":{"name":"mload","nativeSrc":"4002:5:88","nodeType":"YulIdentifier","src":"4002:5:88"},"nativeSrc":"4002:26:88","nodeType":"YulFunctionCall","src":"4002:26:88"},"variableNames":[{"name":"value","nativeSrc":"3993:5:88","nodeType":"YulIdentifier","src":"3993:5:88"}]}]},"condition":{"name":"newLen","nativeSrc":"3956:6:88","nodeType":"YulIdentifier","src":"3956:6:88"},"nativeSrc":"3953:89:88","nodeType":"YulIf","src":"3953:89:88"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4062:4:88","nodeType":"YulIdentifier","src":"4062:4:88"},{"arguments":[{"name":"value","nativeSrc":"4121:5:88","nodeType":"YulIdentifier","src":"4121:5:88"},{"name":"newLen","nativeSrc":"4128:6:88","nodeType":"YulIdentifier","src":"4128:6:88"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4068:52:88","nodeType":"YulIdentifier","src":"4068:52:88"},"nativeSrc":"4068:67:88","nodeType":"YulFunctionCall","src":"4068:67:88"}],"functionName":{"name":"sstore","nativeSrc":"4055:6:88","nodeType":"YulIdentifier","src":"4055:6:88"},"nativeSrc":"4055:81:88","nodeType":"YulFunctionCall","src":"4055:81:88"},"nativeSrc":"4055:81:88","nodeType":"YulExpressionStatement","src":"4055:81:88"}]},"nativeSrc":"3904:242:88","nodeType":"YulCase","src":"3904:242:88","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3226:6:88","nodeType":"YulIdentifier","src":"3226:6:88"},{"kind":"number","nativeSrc":"3234:2:88","nodeType":"YulLiteral","src":"3234:2:88","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3223:2:88","nodeType":"YulIdentifier","src":"3223:2:88"},"nativeSrc":"3223:14:88","nodeType":"YulFunctionCall","src":"3223:14:88"},"nativeSrc":"3216:930:88","nodeType":"YulSwitch","src":"3216:930:88"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2853:1299:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2934:4:88","nodeType":"YulTypedName","src":"2934:4:88","type":""},{"name":"src","nativeSrc":"2940:3:88","nodeType":"YulTypedName","src":"2940:3:88","type":""}],"src":"2853:1299:88"},{"body":{"nativeSrc":"4331:181:88","nodeType":"YulBlock","src":"4331:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4348:9:88","nodeType":"YulIdentifier","src":"4348:9:88"},{"kind":"number","nativeSrc":"4359:2:88","nodeType":"YulLiteral","src":"4359:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4341:6:88","nodeType":"YulIdentifier","src":"4341:6:88"},"nativeSrc":"4341:21:88","nodeType":"YulFunctionCall","src":"4341:21:88"},"nativeSrc":"4341:21:88","nodeType":"YulExpressionStatement","src":"4341:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4382:9:88","nodeType":"YulIdentifier","src":"4382:9:88"},{"kind":"number","nativeSrc":"4393:2:88","nodeType":"YulLiteral","src":"4393:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4378:3:88","nodeType":"YulIdentifier","src":"4378:3:88"},"nativeSrc":"4378:18:88","nodeType":"YulFunctionCall","src":"4378:18:88"},{"kind":"number","nativeSrc":"4398:2:88","nodeType":"YulLiteral","src":"4398:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"4371:6:88","nodeType":"YulIdentifier","src":"4371:6:88"},"nativeSrc":"4371:30:88","nodeType":"YulFunctionCall","src":"4371:30:88"},"nativeSrc":"4371:30:88","nodeType":"YulExpressionStatement","src":"4371:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4421:9:88","nodeType":"YulIdentifier","src":"4421:9:88"},{"kind":"number","nativeSrc":"4432:2:88","nodeType":"YulLiteral","src":"4432:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4417:3:88","nodeType":"YulIdentifier","src":"4417:3:88"},"nativeSrc":"4417:18:88","nodeType":"YulFunctionCall","src":"4417:18:88"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"4437:33:88","nodeType":"YulLiteral","src":"4437:33:88","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"4410:6:88","nodeType":"YulIdentifier","src":"4410:6:88"},"nativeSrc":"4410:61:88","nodeType":"YulFunctionCall","src":"4410:61:88"},"nativeSrc":"4410:61:88","nodeType":"YulExpressionStatement","src":"4410:61:88"},{"nativeSrc":"4480:26:88","nodeType":"YulAssignment","src":"4480:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4492:9:88","nodeType":"YulIdentifier","src":"4492:9:88"},{"kind":"number","nativeSrc":"4503:2:88","nodeType":"YulLiteral","src":"4503:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4488:3:88","nodeType":"YulIdentifier","src":"4488:3:88"},"nativeSrc":"4488:18:88","nodeType":"YulFunctionCall","src":"4488:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4480:4:88","nodeType":"YulIdentifier","src":"4480:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4157:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4308:9:88","nodeType":"YulTypedName","src":"4308:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4322:4:88","nodeType":"YulTypedName","src":"4322:4:88","type":""}],"src":"4157:355:88"},{"body":{"nativeSrc":"4565:174:88","nodeType":"YulBlock","src":"4565:174:88","statements":[{"nativeSrc":"4575:16:88","nodeType":"YulAssignment","src":"4575:16:88","value":{"arguments":[{"name":"x","nativeSrc":"4586:1:88","nodeType":"YulIdentifier","src":"4586:1:88"},{"name":"y","nativeSrc":"4589:1:88","nodeType":"YulIdentifier","src":"4589:1:88"}],"functionName":{"name":"add","nativeSrc":"4582:3:88","nodeType":"YulIdentifier","src":"4582:3:88"},"nativeSrc":"4582:9:88","nodeType":"YulFunctionCall","src":"4582:9:88"},"variableNames":[{"name":"sum","nativeSrc":"4575:3:88","nodeType":"YulIdentifier","src":"4575:3:88"}]},{"body":{"nativeSrc":"4622:111:88","nodeType":"YulBlock","src":"4622:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4643:1:88","nodeType":"YulLiteral","src":"4643:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"4650:3:88","nodeType":"YulLiteral","src":"4650:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"4655:10:88","nodeType":"YulLiteral","src":"4655:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"4646:3:88","nodeType":"YulIdentifier","src":"4646:3:88"},"nativeSrc":"4646:20:88","nodeType":"YulFunctionCall","src":"4646:20:88"}],"functionName":{"name":"mstore","nativeSrc":"4636:6:88","nodeType":"YulIdentifier","src":"4636:6:88"},"nativeSrc":"4636:31:88","nodeType":"YulFunctionCall","src":"4636:31:88"},"nativeSrc":"4636:31:88","nodeType":"YulExpressionStatement","src":"4636:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4687:1:88","nodeType":"YulLiteral","src":"4687:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"4690:4:88","nodeType":"YulLiteral","src":"4690:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4680:6:88","nodeType":"YulIdentifier","src":"4680:6:88"},"nativeSrc":"4680:15:88","nodeType":"YulFunctionCall","src":"4680:15:88"},"nativeSrc":"4680:15:88","nodeType":"YulExpressionStatement","src":"4680:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4715:1:88","nodeType":"YulLiteral","src":"4715:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"4718:4:88","nodeType":"YulLiteral","src":"4718:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4708:6:88","nodeType":"YulIdentifier","src":"4708:6:88"},"nativeSrc":"4708:15:88","nodeType":"YulFunctionCall","src":"4708:15:88"},"nativeSrc":"4708:15:88","nodeType":"YulExpressionStatement","src":"4708:15:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"4606:1:88","nodeType":"YulIdentifier","src":"4606:1:88"},{"name":"sum","nativeSrc":"4609:3:88","nodeType":"YulIdentifier","src":"4609:3:88"}],"functionName":{"name":"gt","nativeSrc":"4603:2:88","nodeType":"YulIdentifier","src":"4603:2:88"},"nativeSrc":"4603:10:88","nodeType":"YulFunctionCall","src":"4603:10:88"},"nativeSrc":"4600:133:88","nodeType":"YulIf","src":"4600:133:88"}]},"name":"checked_add_t_uint256","nativeSrc":"4517:222:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4548:1:88","nodeType":"YulTypedName","src":"4548:1:88","type":""},{"name":"y","nativeSrc":"4551:1:88","nodeType":"YulTypedName","src":"4551:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4557:3:88","nodeType":"YulTypedName","src":"4557:3:88","type":""}],"src":"4517:222:88"},{"body":{"nativeSrc":"4845:76:88","nodeType":"YulBlock","src":"4845:76:88","statements":[{"nativeSrc":"4855:26:88","nodeType":"YulAssignment","src":"4855:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4867:9:88","nodeType":"YulIdentifier","src":"4867:9:88"},{"kind":"number","nativeSrc":"4878:2:88","nodeType":"YulLiteral","src":"4878:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4863:3:88","nodeType":"YulIdentifier","src":"4863:3:88"},"nativeSrc":"4863:18:88","nodeType":"YulFunctionCall","src":"4863:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4855:4:88","nodeType":"YulIdentifier","src":"4855:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4897:9:88","nodeType":"YulIdentifier","src":"4897:9:88"},{"name":"value0","nativeSrc":"4908:6:88","nodeType":"YulIdentifier","src":"4908:6:88"}],"functionName":{"name":"mstore","nativeSrc":"4890:6:88","nodeType":"YulIdentifier","src":"4890:6:88"},"nativeSrc":"4890:25:88","nodeType":"YulFunctionCall","src":"4890:25:88"},"nativeSrc":"4890:25:88","nodeType":"YulExpressionStatement","src":"4890:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4744:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4814:9:88","nodeType":"YulTypedName","src":"4814:9:88","type":""},{"name":"value0","nativeSrc":"4825:6:88","nodeType":"YulTypedName","src":"4825:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4836:4:88","nodeType":"YulTypedName","src":"4836:4:88","type":""}],"src":"4744:177:88"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := mload(offset)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 0x1f), not(31)), 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, length)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n        mcopy(add(memPtr, 0x20), add(offset, 0x20), length)\n        mstore(add(add(memPtr, length), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, sub(shl(64, 1), 1)) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n        value2 := mload(add(headStart, 64))\n        let value := mload(add(headStart, 96))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value3 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _1 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _1) { start := add(start, 1) }\n            { sstore(start, 0) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f5ffd5b50604051610e64380380610e6483398101604081905261002e916101de565b8383600361003c83826102e6565b50600461004982826102e6565b5050600580546001600160a01b0319163390811790915560ff831660805261007291508361007b565b505050506103c5565b6001600160a01b0382166100d55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546100e691906103a0565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610164575f5ffd5b81516001600160401b0381111561017d5761017d610141565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101ab576101ab610141565b6040528181528382016020018510156101c2575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f608085870312156101f1575f5ffd5b84516001600160401b03811115610206575f5ffd5b61021287828801610155565b602087015190955090506001600160401b0381111561022f575f5ffd5b61023b87828801610155565b93505060408501519150606085015160ff81168114610258575f5ffd5b939692955090935050565b600181811c9082168061027757607f821691505b60208210810361029557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561013c57805f5260205f20601f840160051c810160208510156102c05750805b601f840160051c820191505b818110156102df575f81556001016102cc565b5050505050565b81516001600160401b038111156102ff576102ff610141565b6103138161030d8454610263565b8461029b565b6020601f821160018114610345575f831561032e5750848201515b5f19600385901b1c1916600184901b1784556102df565b5f84815260208120601f198516915b828110156103745787850151825560209485019460019092019101610354565b508482101561039157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156103bf57634e487b7160e01b5f52601160045260245ffd5b92915050565b608051610a876103dd5f395f61013c0152610a875ff3fe608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c806340c10f19116100885780639dc29fac116100635780639dc29fac146101be578063a457c2d7146101d1578063a9059cbb146101e4578063dd62ed3e146101f7575f5ffd5b806340c10f191461017957806370a082311461018e57806395d89b41146101b6575f5ffd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461011057806323b872dd14610122578063313ce567146101355780633950935114610166575b5f5ffd5b6100d761020a565b6040516100e491906108f7565b60405180910390f35b6101006100fb366004610947565b61029a565b60405190151581526020016100e4565b6002545b6040519081526020016100e4565b61010061013036600461096f565b6102b3565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100e4565b610100610174366004610947565b6102d6565b61018c610187366004610947565b6102f7565b005b61011461019c3660046109a9565b6001600160a01b03165f9081526020819052604090205490565b6100d7610305565b61018c6101cc366004610947565b610314565b6101006101df366004610947565b61031e565b6101006101f2366004610947565b61039d565b6101146102053660046109c9565b6103aa565b606060038054610219906109fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109fa565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103d4565b60019150505b92915050565b5f336102c08582856104f8565b6102cb858585610570565b506001949350505050565b5f336102a78185856102e883836103aa565b6102f29190610a32565b6103d4565b6103018282610712565b5050565b606060048054610219906109fa565b61030182826107cf565b5f338161032b82866103aa565b9050838110156103905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102cb82868684036103d4565b5f336102a7818585610570565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610387565b6001600160a01b0382166104975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610387565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f61050384846103aa565b90505f19811461056a578181101561055d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610387565b61056a84848484036103d4565b50505050565b6001600160a01b0383166105d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610387565b6001600160a01b0382166106365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610387565b6001600160a01b0383165f90815260208190526040902054818110156106ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610387565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361056a565b6001600160a01b0382166107685760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610387565b8060025f8282546107799190610a32565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03821661082f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610387565b6001600160a01b0382165f90815260208190526040902054818110156108a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610387565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104eb565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610942575f5ffd5b919050565b5f5f60408385031215610958575f5ffd5b6109618361092c565b946020939093013593505050565b5f5f5f60608486031215610981575f5ffd5b61098a8461092c565b92506109986020850161092c565b929592945050506040919091013590565b5f602082840312156109b9575f5ffd5b6109c28261092c565b9392505050565b5f5f604083850312156109da575f5ffd5b6109e38361092c565b91506109f16020840161092c565b90509250929050565b600181811c90821680610a0e57607f821691505b602082108103610a2c57634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220cd62f2626c29fe7085833b7c2df03e380fcf4caf838cb4abf91ef9aa50b5b66564736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE64 CODESIZE SUB DUP1 PUSH2 0xE64 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x1DE JUMP JUMPDEST DUP4 DUP4 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x2E6 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x2E6 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xFF DUP4 AND PUSH1 0x80 MSTORE PUSH2 0x72 SWAP2 POP DUP4 PUSH2 0x7B JUMP JUMPDEST POP POP POP POP PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x3A0 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x164 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x17D JUMPI PUSH2 0x17D PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1AB JUMPI PUSH2 0x1AB PUSH2 0x141 JUMP JUMPDEST PUSH1 0x40 MSTORE DUP2 DUP2 MSTORE DUP4 DUP3 ADD PUSH1 0x20 ADD DUP6 LT ISZERO PUSH2 0x1C2 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD MCOPY PUSH0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH0 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1F1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x206 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x212 DUP8 DUP3 DUP9 ADD PUSH2 0x155 JUMP JUMPDEST PUSH1 0x20 DUP8 ADD MLOAD SWAP1 SWAP6 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x22F JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x23B DUP8 DUP3 DUP9 ADD PUSH2 0x155 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x258 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x277 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x295 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x13C JUMPI DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2C0 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FF JUMPI PUSH2 0x2FF PUSH2 0x141 JUMP JUMPDEST PUSH2 0x313 DUP2 PUSH2 0x30D DUP5 SLOAD PUSH2 0x263 JUMP JUMPDEST DUP5 PUSH2 0x29B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x345 JUMPI PUSH0 DUP4 ISZERO PUSH2 0x32E JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x2DF JUMP JUMPDEST PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x374 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x354 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x391 JUMPI DUP7 DUP5 ADD MLOAD PUSH0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xA87 PUSH2 0x3DD PUSH0 CODECOPY PUSH0 PUSH2 0x13C ADD MSTORE PUSH2 0xA87 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0x20A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x96F JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x18C PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH2 0x19C CALLDATASIZE PUSH1 0x4 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x18C PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x39D JUMP JUMPDEST PUSH2 0x114 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C9 JUMP JUMPDEST PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x219 SWAP1 PUSH2 0x9FA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x245 SWAP1 PUSH2 0x9FA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x267 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2C0 DUP6 DUP3 DUP6 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0x2CB DUP6 DUP6 DUP6 PUSH2 0x570 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x2E8 DUP4 DUP4 PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x2F2 SWAP2 SWAP1 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x301 DUP3 DUP3 PUSH2 0x712 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x219 SWAP1 PUSH2 0x9FA JUMP JUMPDEST PUSH2 0x301 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x32B DUP3 DUP7 PUSH2 0x3AA JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x390 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CB DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3D4 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x570 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP5 DUP5 PUSH2 0x3AA JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x56A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x387 JUMP JUMPDEST PUSH2 0x56A DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3D4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x56A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x768 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x387 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x779 SWAP2 SWAP1 PUSH2 0xA32 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x82F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x942 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x958 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x961 DUP4 PUSH2 0x92C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x981 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x98A DUP5 PUSH2 0x92C JUMP JUMPDEST SWAP3 POP PUSH2 0x998 PUSH1 0x20 DUP6 ADD PUSH2 0x92C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x9C2 DUP3 PUSH2 0x92C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9DA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x9E3 DUP4 PUSH2 0x92C JUMP JUMPDEST SWAP2 POP PUSH2 0x9F1 PUSH1 0x20 DUP5 ADD PUSH2 0x92C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xA0E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xA2C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH3 0xF2626C 0x29 INVALID PUSH17 0x85833B7C2DF03E380FCF4CAF838CB4ABF9 0x1E 0xF9 0xAA POP 0xB5 0xB6 PUSH6 0x64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"186:795:87:-:0;;;302:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;424:5;431:7;2046:5:30;:13;424:5:87;2046::30;:13;:::i;:::-;-1:-1:-1;2069:7:30;:17;2079:7;2069;:17;:::i;:::-;-1:-1:-1;;446:6:87::1;:19:::0;;-1:-1:-1;;;;;;446:19:87::1;455:10;446:19:::0;;::::1;::::0;;;471:21:::1;::::0;::::1;;::::0;498:32:::1;::::0;-1:-1:-1;516:13:87;498:5:::1;:32::i;:::-;302:233:::0;;;;186:795;;8520:535:30;-1:-1:-1;;;;;8603:21:30;;8595:65;;;;-1:-1:-1;;;8595:65:30;;4359:2:88;8595:65:30;;;4341:21:88;4398:2;4378:18;;;4371:30;4437:33;4417:18;;;4410:61;4488:18;;8595:65:30;;;;;;;;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:30;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;4890:25:88;;;8952:37:30;;4863:18:88;8952:37:30;;;;;;;8520:535;;:::o;12073:91::-;;;;:::o;14:127:88:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:723;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;298:13;;-1:-1:-1;;;;;323:30:88;;320:56;;;356:18;;:::i;:::-;405:2;399:9;497:2;459:17;;-1:-1:-1;;455:31:88;;;488:2;451:40;447:54;435:67;;-1:-1:-1;;;;;517:34:88;;553:22;;;514:62;511:88;;;579:18;;:::i;:::-;615:2;608:22;639;;;680:19;;;701:4;676:30;673:39;-1:-1:-1;670:59:88;;;725:1;722;715:12;670:59;782:6;775:4;767:6;763:17;756:4;748:6;744:17;738:51;837:1;809:19;;;830:4;805:30;798:41;;;;813:6;146:723;-1:-1:-1;;;146:723:88:o;874:769::-;989:6;997;1005;1013;1066:3;1054:9;1045:7;1041:23;1037:33;1034:53;;;1083:1;1080;1073:12;1034:53;1110:16;;-1:-1:-1;;;;;1138:30:88;;1135:50;;;1181:1;1178;1171:12;1135:50;1204:61;1257:7;1248:6;1237:9;1233:22;1204:61;:::i;:::-;1311:2;1296:18;;1290:25;1194:71;;-1:-1:-1;1290:25:88;-1:-1:-1;;;;;;1327:32:88;;1324:52;;;1372:1;1369;1362:12;1324:52;1395:63;1450:7;1439:8;1428:9;1424:24;1395:63;:::i;:::-;1385:73;;;1498:2;1487:9;1483:18;1477:25;1467:35;;1545:2;1534:9;1530:18;1524:25;1589:4;1582:5;1578:16;1571:5;1568:27;1558:55;;1609:1;1606;1599:12;1558:55;874:769;;;;-1:-1:-1;874:769:88;;-1:-1:-1;;874:769:88:o;1648:380::-;1727:1;1723:12;;;;1770;;;1791:61;;1845:4;1837:6;1833:17;1823:27;;1791:61;1898:2;1890:6;1887:14;1867:18;1864:38;1861:161;;1944:10;1939:3;1935:20;1932:1;1925:31;1979:4;1976:1;1969:15;2007:4;2004:1;1997:15;1861:161;;1648:380;;;:::o;2159:518::-;2261:2;2256:3;2253:11;2250:421;;;2297:5;2294:1;2287:16;2341:4;2338:1;2328:18;2411:2;2399:10;2395:19;2392:1;2388:27;2382:4;2378:38;2447:4;2435:10;2432:20;2429:47;;;-1:-1:-1;2470:4:88;2429:47;2525:2;2520:3;2516:12;2513:1;2509:20;2503:4;2499:31;2489:41;;2580:81;2598:2;2591:5;2588:13;2580:81;;;2657:1;2643:16;;2624:1;2613:13;2580:81;;;2584:3;;2159:518;;;:::o;2853:1299::-;2973:10;;-1:-1:-1;;;;;2995:30:88;;2992:56;;;3028:18;;:::i;:::-;3057:97;3147:6;3107:38;3139:4;3133:11;3107:38;:::i;:::-;3101:4;3057:97;:::i;:::-;3203:4;3234:2;3223:14;;3251:1;3246:649;;;;3939:1;3956:6;3953:89;;;-1:-1:-1;4008:19:88;;;4002:26;3953:89;-1:-1:-1;;2810:1:88;2806:11;;;2802:24;2798:29;2788:40;2834:1;2830:11;;;2785:57;4055:81;;3216:930;;3246:649;2106:1;2099:14;;;2143:4;2130:18;;-1:-1:-1;;3282:20:88;;;3400:222;3414:7;3411:1;3408:14;3400:222;;;3496:19;;;3490:26;3475:42;;3603:4;3588:20;;;;3556:1;3544:14;;;;3430:12;3400:222;;;3404:3;3650:6;3641:7;3638:19;3635:201;;;3711:19;;;3705:26;-1:-1:-1;;3794:1:88;3790:14;;;3806:3;3786:24;3782:37;3778:42;3763:58;3748:74;;3635:201;-1:-1:-1;;;;3882:1:88;3866:14;;;3862:22;3849:36;;-1:-1:-1;2853:1299:88:o;4517:222::-;4582:9;;;4603:10;;;4600:133;;;4655:10;4650:3;4646:20;4643:1;4636:31;4690:4;4687:1;4680:15;4718:4;4715:1;4708:15;4600:133;4517:222;;;;:::o;4744:177::-;186:795:87;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_5335":{"entryPoint":null,"id":5335,"parameterSlots":3,"returnSlots":0},"@_approve_5270":{"entryPoint":980,"id":5270,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_5324":{"entryPoint":null,"id":5324,"parameterSlots":3,"returnSlots":0},"@_burn_5225":{"entryPoint":1999,"id":5225,"parameterSlots":2,"returnSlots":0},"@_mint_5153":{"entryPoint":1810,"id":5153,"parameterSlots":2,"returnSlots":0},"@_msgSender_6954":{"entryPoint":null,"id":6954,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_5313":{"entryPoint":1272,"id":5313,"parameterSlots":3,"returnSlots":0},"@_transfer_5096":{"entryPoint":1392,"id":5096,"parameterSlots":3,"returnSlots":0},"@allowance_4891":{"entryPoint":938,"id":4891,"parameterSlots":2,"returnSlots":1},"@approve_4916":{"entryPoint":666,"id":4916,"parameterSlots":2,"returnSlots":1},"@balanceOf_4848":{"entryPoint":null,"id":4848,"parameterSlots":1,"returnSlots":1},"@burn_25943":{"entryPoint":788,"id":25943,"parameterSlots":2,"returnSlots":0},"@decimals_25915":{"entryPoint":null,"id":25915,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5019":{"entryPoint":798,"id":5019,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_4978":{"entryPoint":726,"id":4978,"parameterSlots":2,"returnSlots":1},"@mint_25929":{"entryPoint":759,"id":25929,"parameterSlots":2,"returnSlots":0},"@name_4804":{"entryPoint":522,"id":4804,"parameterSlots":0,"returnSlots":1},"@symbol_4814":{"entryPoint":773,"id":4814,"parameterSlots":0,"returnSlots":1},"@totalSupply_4834":{"entryPoint":null,"id":4834,"parameterSlots":0,"returnSlots":1},"@transferFrom_4949":{"entryPoint":691,"id":4949,"parameterSlots":3,"returnSlots":1},"@transfer_4873":{"entryPoint":925,"id":4873,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2348,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2473,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2505,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2415,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2375,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2610,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2554,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:6881:88","nodeType":"YulBlock","src":"0:6881:88","statements":[{"nativeSrc":"6:3:88","nodeType":"YulBlock","src":"6:3:88","statements":[]},{"body":{"nativeSrc":"135:297:88","nodeType":"YulBlock","src":"135:297:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"152:9:88","nodeType":"YulIdentifier","src":"152:9:88"},{"kind":"number","nativeSrc":"163:2:88","nodeType":"YulLiteral","src":"163:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"145:6:88","nodeType":"YulIdentifier","src":"145:6:88"},"nativeSrc":"145:21:88","nodeType":"YulFunctionCall","src":"145:21:88"},"nativeSrc":"145:21:88","nodeType":"YulExpressionStatement","src":"145:21:88"},{"nativeSrc":"175:27:88","nodeType":"YulVariableDeclaration","src":"175:27:88","value":{"arguments":[{"name":"value0","nativeSrc":"195:6:88","nodeType":"YulIdentifier","src":"195:6:88"}],"functionName":{"name":"mload","nativeSrc":"189:5:88","nodeType":"YulIdentifier","src":"189:5:88"},"nativeSrc":"189:13:88","nodeType":"YulFunctionCall","src":"189:13:88"},"variables":[{"name":"length","nativeSrc":"179:6:88","nodeType":"YulTypedName","src":"179:6:88","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"222:9:88","nodeType":"YulIdentifier","src":"222:9:88"},{"kind":"number","nativeSrc":"233:2:88","nodeType":"YulLiteral","src":"233:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"218:3:88","nodeType":"YulIdentifier","src":"218:3:88"},"nativeSrc":"218:18:88","nodeType":"YulFunctionCall","src":"218:18:88"},{"name":"length","nativeSrc":"238:6:88","nodeType":"YulIdentifier","src":"238:6:88"}],"functionName":{"name":"mstore","nativeSrc":"211:6:88","nodeType":"YulIdentifier","src":"211:6:88"},"nativeSrc":"211:34:88","nodeType":"YulFunctionCall","src":"211:34:88"},"nativeSrc":"211:34:88","nodeType":"YulExpressionStatement","src":"211:34:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"264:9:88","nodeType":"YulIdentifier","src":"264:9:88"},{"kind":"number","nativeSrc":"275:2:88","nodeType":"YulLiteral","src":"275:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"260:3:88","nodeType":"YulIdentifier","src":"260:3:88"},"nativeSrc":"260:18:88","nodeType":"YulFunctionCall","src":"260:18:88"},{"arguments":[{"name":"value0","nativeSrc":"284:6:88","nodeType":"YulIdentifier","src":"284:6:88"},{"kind":"number","nativeSrc":"292:2:88","nodeType":"YulLiteral","src":"292:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"280:3:88","nodeType":"YulIdentifier","src":"280:3:88"},"nativeSrc":"280:15:88","nodeType":"YulFunctionCall","src":"280:15:88"},{"name":"length","nativeSrc":"297:6:88","nodeType":"YulIdentifier","src":"297:6:88"}],"functionName":{"name":"mcopy","nativeSrc":"254:5:88","nodeType":"YulIdentifier","src":"254:5:88"},"nativeSrc":"254:50:88","nodeType":"YulFunctionCall","src":"254:50:88"},"nativeSrc":"254:50:88","nodeType":"YulExpressionStatement","src":"254:50:88"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"328:9:88","nodeType":"YulIdentifier","src":"328:9:88"},{"name":"length","nativeSrc":"339:6:88","nodeType":"YulIdentifier","src":"339:6:88"}],"functionName":{"name":"add","nativeSrc":"324:3:88","nodeType":"YulIdentifier","src":"324:3:88"},"nativeSrc":"324:22:88","nodeType":"YulFunctionCall","src":"324:22:88"},{"kind":"number","nativeSrc":"348:2:88","nodeType":"YulLiteral","src":"348:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"320:3:88","nodeType":"YulIdentifier","src":"320:3:88"},"nativeSrc":"320:31:88","nodeType":"YulFunctionCall","src":"320:31:88"},{"kind":"number","nativeSrc":"353:1:88","nodeType":"YulLiteral","src":"353:1:88","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"313:6:88","nodeType":"YulIdentifier","src":"313:6:88"},"nativeSrc":"313:42:88","nodeType":"YulFunctionCall","src":"313:42:88"},"nativeSrc":"313:42:88","nodeType":"YulExpressionStatement","src":"313:42:88"},{"nativeSrc":"364:62:88","nodeType":"YulAssignment","src":"364:62:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"380:9:88","nodeType":"YulIdentifier","src":"380:9:88"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"399:6:88","nodeType":"YulIdentifier","src":"399:6:88"},{"kind":"number","nativeSrc":"407:2:88","nodeType":"YulLiteral","src":"407:2:88","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"395:3:88","nodeType":"YulIdentifier","src":"395:3:88"},"nativeSrc":"395:15:88","nodeType":"YulFunctionCall","src":"395:15:88"},{"arguments":[{"kind":"number","nativeSrc":"416:2:88","nodeType":"YulLiteral","src":"416:2:88","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"412:3:88","nodeType":"YulIdentifier","src":"412:3:88"},"nativeSrc":"412:7:88","nodeType":"YulFunctionCall","src":"412:7:88"}],"functionName":{"name":"and","nativeSrc":"391:3:88","nodeType":"YulIdentifier","src":"391:3:88"},"nativeSrc":"391:29:88","nodeType":"YulFunctionCall","src":"391:29:88"}],"functionName":{"name":"add","nativeSrc":"376:3:88","nodeType":"YulIdentifier","src":"376:3:88"},"nativeSrc":"376:45:88","nodeType":"YulFunctionCall","src":"376:45:88"},{"kind":"number","nativeSrc":"423:2:88","nodeType":"YulLiteral","src":"423:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"372:3:88","nodeType":"YulIdentifier","src":"372:3:88"},"nativeSrc":"372:54:88","nodeType":"YulFunctionCall","src":"372:54:88"},"variableNames":[{"name":"tail","nativeSrc":"364:4:88","nodeType":"YulIdentifier","src":"364:4:88"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:418:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:88","nodeType":"YulTypedName","src":"104:9:88","type":""},{"name":"value0","nativeSrc":"115:6:88","nodeType":"YulTypedName","src":"115:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"126:4:88","nodeType":"YulTypedName","src":"126:4:88","type":""}],"src":"14:418:88"},{"body":{"nativeSrc":"486:124:88","nodeType":"YulBlock","src":"486:124:88","statements":[{"nativeSrc":"496:29:88","nodeType":"YulAssignment","src":"496:29:88","value":{"arguments":[{"name":"offset","nativeSrc":"518:6:88","nodeType":"YulIdentifier","src":"518:6:88"}],"functionName":{"name":"calldataload","nativeSrc":"505:12:88","nodeType":"YulIdentifier","src":"505:12:88"},"nativeSrc":"505:20:88","nodeType":"YulFunctionCall","src":"505:20:88"},"variableNames":[{"name":"value","nativeSrc":"496:5:88","nodeType":"YulIdentifier","src":"496:5:88"}]},{"body":{"nativeSrc":"588:16:88","nodeType":"YulBlock","src":"588:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"597:1:88","nodeType":"YulLiteral","src":"597:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"600:1:88","nodeType":"YulLiteral","src":"600:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"590:6:88","nodeType":"YulIdentifier","src":"590:6:88"},"nativeSrc":"590:12:88","nodeType":"YulFunctionCall","src":"590:12:88"},"nativeSrc":"590:12:88","nodeType":"YulExpressionStatement","src":"590:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"547:5:88","nodeType":"YulIdentifier","src":"547:5:88"},{"arguments":[{"name":"value","nativeSrc":"558:5:88","nodeType":"YulIdentifier","src":"558:5:88"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"573:3:88","nodeType":"YulLiteral","src":"573:3:88","type":"","value":"160"},{"kind":"number","nativeSrc":"578:1:88","nodeType":"YulLiteral","src":"578:1:88","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"569:3:88","nodeType":"YulIdentifier","src":"569:3:88"},"nativeSrc":"569:11:88","nodeType":"YulFunctionCall","src":"569:11:88"},{"kind":"number","nativeSrc":"582:1:88","nodeType":"YulLiteral","src":"582:1:88","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"565:3:88","nodeType":"YulIdentifier","src":"565:3:88"},"nativeSrc":"565:19:88","nodeType":"YulFunctionCall","src":"565:19:88"}],"functionName":{"name":"and","nativeSrc":"554:3:88","nodeType":"YulIdentifier","src":"554:3:88"},"nativeSrc":"554:31:88","nodeType":"YulFunctionCall","src":"554:31:88"}],"functionName":{"name":"eq","nativeSrc":"544:2:88","nodeType":"YulIdentifier","src":"544:2:88"},"nativeSrc":"544:42:88","nodeType":"YulFunctionCall","src":"544:42:88"}],"functionName":{"name":"iszero","nativeSrc":"537:6:88","nodeType":"YulIdentifier","src":"537:6:88"},"nativeSrc":"537:50:88","nodeType":"YulFunctionCall","src":"537:50:88"},"nativeSrc":"534:70:88","nodeType":"YulIf","src":"534:70:88"}]},"name":"abi_decode_address","nativeSrc":"437:173:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"465:6:88","nodeType":"YulTypedName","src":"465:6:88","type":""}],"returnVariables":[{"name":"value","nativeSrc":"476:5:88","nodeType":"YulTypedName","src":"476:5:88","type":""}],"src":"437:173:88"},{"body":{"nativeSrc":"702:213:88","nodeType":"YulBlock","src":"702:213:88","statements":[{"body":{"nativeSrc":"748:16:88","nodeType":"YulBlock","src":"748:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"757:1:88","nodeType":"YulLiteral","src":"757:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"760:1:88","nodeType":"YulLiteral","src":"760:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"750:6:88","nodeType":"YulIdentifier","src":"750:6:88"},"nativeSrc":"750:12:88","nodeType":"YulFunctionCall","src":"750:12:88"},"nativeSrc":"750:12:88","nodeType":"YulExpressionStatement","src":"750:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"723:7:88","nodeType":"YulIdentifier","src":"723:7:88"},{"name":"headStart","nativeSrc":"732:9:88","nodeType":"YulIdentifier","src":"732:9:88"}],"functionName":{"name":"sub","nativeSrc":"719:3:88","nodeType":"YulIdentifier","src":"719:3:88"},"nativeSrc":"719:23:88","nodeType":"YulFunctionCall","src":"719:23:88"},{"kind":"number","nativeSrc":"744:2:88","nodeType":"YulLiteral","src":"744:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"715:3:88","nodeType":"YulIdentifier","src":"715:3:88"},"nativeSrc":"715:32:88","nodeType":"YulFunctionCall","src":"715:32:88"},"nativeSrc":"712:52:88","nodeType":"YulIf","src":"712:52:88"},{"nativeSrc":"773:39:88","nodeType":"YulAssignment","src":"773:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"802:9:88","nodeType":"YulIdentifier","src":"802:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"783:18:88","nodeType":"YulIdentifier","src":"783:18:88"},"nativeSrc":"783:29:88","nodeType":"YulFunctionCall","src":"783:29:88"},"variableNames":[{"name":"value0","nativeSrc":"773:6:88","nodeType":"YulIdentifier","src":"773:6:88"}]},{"nativeSrc":"821:14:88","nodeType":"YulVariableDeclaration","src":"821:14:88","value":{"kind":"number","nativeSrc":"834:1:88","nodeType":"YulLiteral","src":"834:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"825:5:88","nodeType":"YulTypedName","src":"825:5:88","type":""}]},{"nativeSrc":"844:41:88","nodeType":"YulAssignment","src":"844:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"870:9:88","nodeType":"YulIdentifier","src":"870:9:88"},{"kind":"number","nativeSrc":"881:2:88","nodeType":"YulLiteral","src":"881:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"866:3:88","nodeType":"YulIdentifier","src":"866:3:88"},"nativeSrc":"866:18:88","nodeType":"YulFunctionCall","src":"866:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"853:12:88","nodeType":"YulIdentifier","src":"853:12:88"},"nativeSrc":"853:32:88","nodeType":"YulFunctionCall","src":"853:32:88"},"variableNames":[{"name":"value","nativeSrc":"844:5:88","nodeType":"YulIdentifier","src":"844:5:88"}]},{"nativeSrc":"894:15:88","nodeType":"YulAssignment","src":"894:15:88","value":{"name":"value","nativeSrc":"904:5:88","nodeType":"YulIdentifier","src":"904:5:88"},"variableNames":[{"name":"value1","nativeSrc":"894:6:88","nodeType":"YulIdentifier","src":"894:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"615:300:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"660:9:88","nodeType":"YulTypedName","src":"660:9:88","type":""},{"name":"dataEnd","nativeSrc":"671:7:88","nodeType":"YulTypedName","src":"671:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"683:6:88","nodeType":"YulTypedName","src":"683:6:88","type":""},{"name":"value1","nativeSrc":"691:6:88","nodeType":"YulTypedName","src":"691:6:88","type":""}],"src":"615:300:88"},{"body":{"nativeSrc":"1015:92:88","nodeType":"YulBlock","src":"1015:92:88","statements":[{"nativeSrc":"1025:26:88","nodeType":"YulAssignment","src":"1025:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1037:9:88","nodeType":"YulIdentifier","src":"1037:9:88"},{"kind":"number","nativeSrc":"1048:2:88","nodeType":"YulLiteral","src":"1048:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1033:3:88","nodeType":"YulIdentifier","src":"1033:3:88"},"nativeSrc":"1033:18:88","nodeType":"YulFunctionCall","src":"1033:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1025:4:88","nodeType":"YulIdentifier","src":"1025:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1067:9:88","nodeType":"YulIdentifier","src":"1067:9:88"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1092:6:88","nodeType":"YulIdentifier","src":"1092:6:88"}],"functionName":{"name":"iszero","nativeSrc":"1085:6:88","nodeType":"YulIdentifier","src":"1085:6:88"},"nativeSrc":"1085:14:88","nodeType":"YulFunctionCall","src":"1085:14:88"}],"functionName":{"name":"iszero","nativeSrc":"1078:6:88","nodeType":"YulIdentifier","src":"1078:6:88"},"nativeSrc":"1078:22:88","nodeType":"YulFunctionCall","src":"1078:22:88"}],"functionName":{"name":"mstore","nativeSrc":"1060:6:88","nodeType":"YulIdentifier","src":"1060:6:88"},"nativeSrc":"1060:41:88","nodeType":"YulFunctionCall","src":"1060:41:88"},"nativeSrc":"1060:41:88","nodeType":"YulExpressionStatement","src":"1060:41:88"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"920:187:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"984:9:88","nodeType":"YulTypedName","src":"984:9:88","type":""},{"name":"value0","nativeSrc":"995:6:88","nodeType":"YulTypedName","src":"995:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1006:4:88","nodeType":"YulTypedName","src":"1006:4:88","type":""}],"src":"920:187:88"},{"body":{"nativeSrc":"1213:76:88","nodeType":"YulBlock","src":"1213:76:88","statements":[{"nativeSrc":"1223:26:88","nodeType":"YulAssignment","src":"1223:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1235:9:88","nodeType":"YulIdentifier","src":"1235:9:88"},{"kind":"number","nativeSrc":"1246:2:88","nodeType":"YulLiteral","src":"1246:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1231:3:88","nodeType":"YulIdentifier","src":"1231:3:88"},"nativeSrc":"1231:18:88","nodeType":"YulFunctionCall","src":"1231:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1223:4:88","nodeType":"YulIdentifier","src":"1223:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1265:9:88","nodeType":"YulIdentifier","src":"1265:9:88"},{"name":"value0","nativeSrc":"1276:6:88","nodeType":"YulIdentifier","src":"1276:6:88"}],"functionName":{"name":"mstore","nativeSrc":"1258:6:88","nodeType":"YulIdentifier","src":"1258:6:88"},"nativeSrc":"1258:25:88","nodeType":"YulFunctionCall","src":"1258:25:88"},"nativeSrc":"1258:25:88","nodeType":"YulExpressionStatement","src":"1258:25:88"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1112:177:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1182:9:88","nodeType":"YulTypedName","src":"1182:9:88","type":""},{"name":"value0","nativeSrc":"1193:6:88","nodeType":"YulTypedName","src":"1193:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1204:4:88","nodeType":"YulTypedName","src":"1204:4:88","type":""}],"src":"1112:177:88"},{"body":{"nativeSrc":"1398:270:88","nodeType":"YulBlock","src":"1398:270:88","statements":[{"body":{"nativeSrc":"1444:16:88","nodeType":"YulBlock","src":"1444:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1453:1:88","nodeType":"YulLiteral","src":"1453:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1456:1:88","nodeType":"YulLiteral","src":"1456:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1446:6:88","nodeType":"YulIdentifier","src":"1446:6:88"},"nativeSrc":"1446:12:88","nodeType":"YulFunctionCall","src":"1446:12:88"},"nativeSrc":"1446:12:88","nodeType":"YulExpressionStatement","src":"1446:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1419:7:88","nodeType":"YulIdentifier","src":"1419:7:88"},{"name":"headStart","nativeSrc":"1428:9:88","nodeType":"YulIdentifier","src":"1428:9:88"}],"functionName":{"name":"sub","nativeSrc":"1415:3:88","nodeType":"YulIdentifier","src":"1415:3:88"},"nativeSrc":"1415:23:88","nodeType":"YulFunctionCall","src":"1415:23:88"},{"kind":"number","nativeSrc":"1440:2:88","nodeType":"YulLiteral","src":"1440:2:88","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1411:3:88","nodeType":"YulIdentifier","src":"1411:3:88"},"nativeSrc":"1411:32:88","nodeType":"YulFunctionCall","src":"1411:32:88"},"nativeSrc":"1408:52:88","nodeType":"YulIf","src":"1408:52:88"},{"nativeSrc":"1469:39:88","nodeType":"YulAssignment","src":"1469:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:88","nodeType":"YulIdentifier","src":"1498:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1479:18:88","nodeType":"YulIdentifier","src":"1479:18:88"},"nativeSrc":"1479:29:88","nodeType":"YulFunctionCall","src":"1479:29:88"},"variableNames":[{"name":"value0","nativeSrc":"1469:6:88","nodeType":"YulIdentifier","src":"1469:6:88"}]},{"nativeSrc":"1517:48:88","nodeType":"YulAssignment","src":"1517:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1550:9:88","nodeType":"YulIdentifier","src":"1550:9:88"},{"kind":"number","nativeSrc":"1561:2:88","nodeType":"YulLiteral","src":"1561:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1546:3:88","nodeType":"YulIdentifier","src":"1546:3:88"},"nativeSrc":"1546:18:88","nodeType":"YulFunctionCall","src":"1546:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1527:18:88","nodeType":"YulIdentifier","src":"1527:18:88"},"nativeSrc":"1527:38:88","nodeType":"YulFunctionCall","src":"1527:38:88"},"variableNames":[{"name":"value1","nativeSrc":"1517:6:88","nodeType":"YulIdentifier","src":"1517:6:88"}]},{"nativeSrc":"1574:14:88","nodeType":"YulVariableDeclaration","src":"1574:14:88","value":{"kind":"number","nativeSrc":"1587:1:88","nodeType":"YulLiteral","src":"1587:1:88","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"1578:5:88","nodeType":"YulTypedName","src":"1578:5:88","type":""}]},{"nativeSrc":"1597:41:88","nodeType":"YulAssignment","src":"1597:41:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1623:9:88","nodeType":"YulIdentifier","src":"1623:9:88"},{"kind":"number","nativeSrc":"1634:2:88","nodeType":"YulLiteral","src":"1634:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1619:3:88","nodeType":"YulIdentifier","src":"1619:3:88"},"nativeSrc":"1619:18:88","nodeType":"YulFunctionCall","src":"1619:18:88"}],"functionName":{"name":"calldataload","nativeSrc":"1606:12:88","nodeType":"YulIdentifier","src":"1606:12:88"},"nativeSrc":"1606:32:88","nodeType":"YulFunctionCall","src":"1606:32:88"},"variableNames":[{"name":"value","nativeSrc":"1597:5:88","nodeType":"YulIdentifier","src":"1597:5:88"}]},{"nativeSrc":"1647:15:88","nodeType":"YulAssignment","src":"1647:15:88","value":{"name":"value","nativeSrc":"1657:5:88","nodeType":"YulIdentifier","src":"1657:5:88"},"variableNames":[{"name":"value2","nativeSrc":"1647:6:88","nodeType":"YulIdentifier","src":"1647:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"1294:374:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1348:9:88","nodeType":"YulTypedName","src":"1348:9:88","type":""},{"name":"dataEnd","nativeSrc":"1359:7:88","nodeType":"YulTypedName","src":"1359:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1371:6:88","nodeType":"YulTypedName","src":"1371:6:88","type":""},{"name":"value1","nativeSrc":"1379:6:88","nodeType":"YulTypedName","src":"1379:6:88","type":""},{"name":"value2","nativeSrc":"1387:6:88","nodeType":"YulTypedName","src":"1387:6:88","type":""}],"src":"1294:374:88"},{"body":{"nativeSrc":"1770:87:88","nodeType":"YulBlock","src":"1770:87:88","statements":[{"nativeSrc":"1780:26:88","nodeType":"YulAssignment","src":"1780:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"1792:9:88","nodeType":"YulIdentifier","src":"1792:9:88"},{"kind":"number","nativeSrc":"1803:2:88","nodeType":"YulLiteral","src":"1803:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1788:3:88","nodeType":"YulIdentifier","src":"1788:3:88"},"nativeSrc":"1788:18:88","nodeType":"YulFunctionCall","src":"1788:18:88"},"variableNames":[{"name":"tail","nativeSrc":"1780:4:88","nodeType":"YulIdentifier","src":"1780:4:88"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1822:9:88","nodeType":"YulIdentifier","src":"1822:9:88"},{"arguments":[{"name":"value0","nativeSrc":"1837:6:88","nodeType":"YulIdentifier","src":"1837:6:88"},{"kind":"number","nativeSrc":"1845:4:88","nodeType":"YulLiteral","src":"1845:4:88","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1833:3:88","nodeType":"YulIdentifier","src":"1833:3:88"},"nativeSrc":"1833:17:88","nodeType":"YulFunctionCall","src":"1833:17:88"}],"functionName":{"name":"mstore","nativeSrc":"1815:6:88","nodeType":"YulIdentifier","src":"1815:6:88"},"nativeSrc":"1815:36:88","nodeType":"YulFunctionCall","src":"1815:36:88"},"nativeSrc":"1815:36:88","nodeType":"YulExpressionStatement","src":"1815:36:88"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1673:184:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1739:9:88","nodeType":"YulTypedName","src":"1739:9:88","type":""},{"name":"value0","nativeSrc":"1750:6:88","nodeType":"YulTypedName","src":"1750:6:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1761:4:88","nodeType":"YulTypedName","src":"1761:4:88","type":""}],"src":"1673:184:88"},{"body":{"nativeSrc":"1932:116:88","nodeType":"YulBlock","src":"1932:116:88","statements":[{"body":{"nativeSrc":"1978:16:88","nodeType":"YulBlock","src":"1978:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1987:1:88","nodeType":"YulLiteral","src":"1987:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1990:1:88","nodeType":"YulLiteral","src":"1990:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1980:6:88","nodeType":"YulIdentifier","src":"1980:6:88"},"nativeSrc":"1980:12:88","nodeType":"YulFunctionCall","src":"1980:12:88"},"nativeSrc":"1980:12:88","nodeType":"YulExpressionStatement","src":"1980:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1953:7:88","nodeType":"YulIdentifier","src":"1953:7:88"},{"name":"headStart","nativeSrc":"1962:9:88","nodeType":"YulIdentifier","src":"1962:9:88"}],"functionName":{"name":"sub","nativeSrc":"1949:3:88","nodeType":"YulIdentifier","src":"1949:3:88"},"nativeSrc":"1949:23:88","nodeType":"YulFunctionCall","src":"1949:23:88"},{"kind":"number","nativeSrc":"1974:2:88","nodeType":"YulLiteral","src":"1974:2:88","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1945:3:88","nodeType":"YulIdentifier","src":"1945:3:88"},"nativeSrc":"1945:32:88","nodeType":"YulFunctionCall","src":"1945:32:88"},"nativeSrc":"1942:52:88","nodeType":"YulIf","src":"1942:52:88"},{"nativeSrc":"2003:39:88","nodeType":"YulAssignment","src":"2003:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2032:9:88","nodeType":"YulIdentifier","src":"2032:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2013:18:88","nodeType":"YulIdentifier","src":"2013:18:88"},"nativeSrc":"2013:29:88","nodeType":"YulFunctionCall","src":"2013:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2003:6:88","nodeType":"YulIdentifier","src":"2003:6:88"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1862:186:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1898:9:88","nodeType":"YulTypedName","src":"1898:9:88","type":""},{"name":"dataEnd","nativeSrc":"1909:7:88","nodeType":"YulTypedName","src":"1909:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1921:6:88","nodeType":"YulTypedName","src":"1921:6:88","type":""}],"src":"1862:186:88"},{"body":{"nativeSrc":"2140:173:88","nodeType":"YulBlock","src":"2140:173:88","statements":[{"body":{"nativeSrc":"2186:16:88","nodeType":"YulBlock","src":"2186:16:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2195:1:88","nodeType":"YulLiteral","src":"2195:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2198:1:88","nodeType":"YulLiteral","src":"2198:1:88","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2188:6:88","nodeType":"YulIdentifier","src":"2188:6:88"},"nativeSrc":"2188:12:88","nodeType":"YulFunctionCall","src":"2188:12:88"},"nativeSrc":"2188:12:88","nodeType":"YulExpressionStatement","src":"2188:12:88"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2161:7:88","nodeType":"YulIdentifier","src":"2161:7:88"},{"name":"headStart","nativeSrc":"2170:9:88","nodeType":"YulIdentifier","src":"2170:9:88"}],"functionName":{"name":"sub","nativeSrc":"2157:3:88","nodeType":"YulIdentifier","src":"2157:3:88"},"nativeSrc":"2157:23:88","nodeType":"YulFunctionCall","src":"2157:23:88"},{"kind":"number","nativeSrc":"2182:2:88","nodeType":"YulLiteral","src":"2182:2:88","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2153:3:88","nodeType":"YulIdentifier","src":"2153:3:88"},"nativeSrc":"2153:32:88","nodeType":"YulFunctionCall","src":"2153:32:88"},"nativeSrc":"2150:52:88","nodeType":"YulIf","src":"2150:52:88"},{"nativeSrc":"2211:39:88","nodeType":"YulAssignment","src":"2211:39:88","value":{"arguments":[{"name":"headStart","nativeSrc":"2240:9:88","nodeType":"YulIdentifier","src":"2240:9:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2221:18:88","nodeType":"YulIdentifier","src":"2221:18:88"},"nativeSrc":"2221:29:88","nodeType":"YulFunctionCall","src":"2221:29:88"},"variableNames":[{"name":"value0","nativeSrc":"2211:6:88","nodeType":"YulIdentifier","src":"2211:6:88"}]},{"nativeSrc":"2259:48:88","nodeType":"YulAssignment","src":"2259:48:88","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2292:9:88","nodeType":"YulIdentifier","src":"2292:9:88"},{"kind":"number","nativeSrc":"2303:2:88","nodeType":"YulLiteral","src":"2303:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2288:3:88","nodeType":"YulIdentifier","src":"2288:3:88"},"nativeSrc":"2288:18:88","nodeType":"YulFunctionCall","src":"2288:18:88"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2269:18:88","nodeType":"YulIdentifier","src":"2269:18:88"},"nativeSrc":"2269:38:88","nodeType":"YulFunctionCall","src":"2269:38:88"},"variableNames":[{"name":"value1","nativeSrc":"2259:6:88","nodeType":"YulIdentifier","src":"2259:6:88"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"2053:260:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2098:9:88","nodeType":"YulTypedName","src":"2098:9:88","type":""},{"name":"dataEnd","nativeSrc":"2109:7:88","nodeType":"YulTypedName","src":"2109:7:88","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2121:6:88","nodeType":"YulTypedName","src":"2121:6:88","type":""},{"name":"value1","nativeSrc":"2129:6:88","nodeType":"YulTypedName","src":"2129:6:88","type":""}],"src":"2053:260:88"},{"body":{"nativeSrc":"2373:325:88","nodeType":"YulBlock","src":"2373:325:88","statements":[{"nativeSrc":"2383:22:88","nodeType":"YulAssignment","src":"2383:22:88","value":{"arguments":[{"kind":"number","nativeSrc":"2397:1:88","nodeType":"YulLiteral","src":"2397:1:88","type":"","value":"1"},{"name":"data","nativeSrc":"2400:4:88","nodeType":"YulIdentifier","src":"2400:4:88"}],"functionName":{"name":"shr","nativeSrc":"2393:3:88","nodeType":"YulIdentifier","src":"2393:3:88"},"nativeSrc":"2393:12:88","nodeType":"YulFunctionCall","src":"2393:12:88"},"variableNames":[{"name":"length","nativeSrc":"2383:6:88","nodeType":"YulIdentifier","src":"2383:6:88"}]},{"nativeSrc":"2414:38:88","nodeType":"YulVariableDeclaration","src":"2414:38:88","value":{"arguments":[{"name":"data","nativeSrc":"2444:4:88","nodeType":"YulIdentifier","src":"2444:4:88"},{"kind":"number","nativeSrc":"2450:1:88","nodeType":"YulLiteral","src":"2450:1:88","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2440:3:88","nodeType":"YulIdentifier","src":"2440:3:88"},"nativeSrc":"2440:12:88","nodeType":"YulFunctionCall","src":"2440:12:88"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2418:18:88","nodeType":"YulTypedName","src":"2418:18:88","type":""}]},{"body":{"nativeSrc":"2491:31:88","nodeType":"YulBlock","src":"2491:31:88","statements":[{"nativeSrc":"2493:27:88","nodeType":"YulAssignment","src":"2493:27:88","value":{"arguments":[{"name":"length","nativeSrc":"2507:6:88","nodeType":"YulIdentifier","src":"2507:6:88"},{"kind":"number","nativeSrc":"2515:4:88","nodeType":"YulLiteral","src":"2515:4:88","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2503:3:88","nodeType":"YulIdentifier","src":"2503:3:88"},"nativeSrc":"2503:17:88","nodeType":"YulFunctionCall","src":"2503:17:88"},"variableNames":[{"name":"length","nativeSrc":"2493:6:88","nodeType":"YulIdentifier","src":"2493:6:88"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2471:18:88","nodeType":"YulIdentifier","src":"2471:18:88"}],"functionName":{"name":"iszero","nativeSrc":"2464:6:88","nodeType":"YulIdentifier","src":"2464:6:88"},"nativeSrc":"2464:26:88","nodeType":"YulFunctionCall","src":"2464:26:88"},"nativeSrc":"2461:61:88","nodeType":"YulIf","src":"2461:61:88"},{"body":{"nativeSrc":"2581:111:88","nodeType":"YulBlock","src":"2581:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2602:1:88","nodeType":"YulLiteral","src":"2602:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2609:3:88","nodeType":"YulLiteral","src":"2609:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2614:10:88","nodeType":"YulLiteral","src":"2614:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2605:3:88","nodeType":"YulIdentifier","src":"2605:3:88"},"nativeSrc":"2605:20:88","nodeType":"YulFunctionCall","src":"2605:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:88","nodeType":"YulIdentifier","src":"2595:6:88"},"nativeSrc":"2595:31:88","nodeType":"YulFunctionCall","src":"2595:31:88"},"nativeSrc":"2595:31:88","nodeType":"YulExpressionStatement","src":"2595:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2646:1:88","nodeType":"YulLiteral","src":"2646:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2649:4:88","nodeType":"YulLiteral","src":"2649:4:88","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2639:6:88","nodeType":"YulIdentifier","src":"2639:6:88"},"nativeSrc":"2639:15:88","nodeType":"YulFunctionCall","src":"2639:15:88"},"nativeSrc":"2639:15:88","nodeType":"YulExpressionStatement","src":"2639:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2674:1:88","nodeType":"YulLiteral","src":"2674:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2677:4:88","nodeType":"YulLiteral","src":"2677:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2667:6:88","nodeType":"YulIdentifier","src":"2667:6:88"},"nativeSrc":"2667:15:88","nodeType":"YulFunctionCall","src":"2667:15:88"},"nativeSrc":"2667:15:88","nodeType":"YulExpressionStatement","src":"2667:15:88"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2537:18:88","nodeType":"YulIdentifier","src":"2537:18:88"},{"arguments":[{"name":"length","nativeSrc":"2560:6:88","nodeType":"YulIdentifier","src":"2560:6:88"},{"kind":"number","nativeSrc":"2568:2:88","nodeType":"YulLiteral","src":"2568:2:88","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2557:2:88","nodeType":"YulIdentifier","src":"2557:2:88"},"nativeSrc":"2557:14:88","nodeType":"YulFunctionCall","src":"2557:14:88"}],"functionName":{"name":"eq","nativeSrc":"2534:2:88","nodeType":"YulIdentifier","src":"2534:2:88"},"nativeSrc":"2534:38:88","nodeType":"YulFunctionCall","src":"2534:38:88"},"nativeSrc":"2531:161:88","nodeType":"YulIf","src":"2531:161:88"}]},"name":"extract_byte_array_length","nativeSrc":"2318:380:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2353:4:88","nodeType":"YulTypedName","src":"2353:4:88","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2362:6:88","nodeType":"YulTypedName","src":"2362:6:88","type":""}],"src":"2318:380:88"},{"body":{"nativeSrc":"2751:174:88","nodeType":"YulBlock","src":"2751:174:88","statements":[{"nativeSrc":"2761:16:88","nodeType":"YulAssignment","src":"2761:16:88","value":{"arguments":[{"name":"x","nativeSrc":"2772:1:88","nodeType":"YulIdentifier","src":"2772:1:88"},{"name":"y","nativeSrc":"2775:1:88","nodeType":"YulIdentifier","src":"2775:1:88"}],"functionName":{"name":"add","nativeSrc":"2768:3:88","nodeType":"YulIdentifier","src":"2768:3:88"},"nativeSrc":"2768:9:88","nodeType":"YulFunctionCall","src":"2768:9:88"},"variableNames":[{"name":"sum","nativeSrc":"2761:3:88","nodeType":"YulIdentifier","src":"2761:3:88"}]},{"body":{"nativeSrc":"2808:111:88","nodeType":"YulBlock","src":"2808:111:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2829:1:88","nodeType":"YulLiteral","src":"2829:1:88","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2836:3:88","nodeType":"YulLiteral","src":"2836:3:88","type":"","value":"224"},{"kind":"number","nativeSrc":"2841:10:88","nodeType":"YulLiteral","src":"2841:10:88","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2832:3:88","nodeType":"YulIdentifier","src":"2832:3:88"},"nativeSrc":"2832:20:88","nodeType":"YulFunctionCall","src":"2832:20:88"}],"functionName":{"name":"mstore","nativeSrc":"2822:6:88","nodeType":"YulIdentifier","src":"2822:6:88"},"nativeSrc":"2822:31:88","nodeType":"YulFunctionCall","src":"2822:31:88"},"nativeSrc":"2822:31:88","nodeType":"YulExpressionStatement","src":"2822:31:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2873:1:88","nodeType":"YulLiteral","src":"2873:1:88","type":"","value":"4"},{"kind":"number","nativeSrc":"2876:4:88","nodeType":"YulLiteral","src":"2876:4:88","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"2866:6:88","nodeType":"YulIdentifier","src":"2866:6:88"},"nativeSrc":"2866:15:88","nodeType":"YulFunctionCall","src":"2866:15:88"},"nativeSrc":"2866:15:88","nodeType":"YulExpressionStatement","src":"2866:15:88"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2901:1:88","nodeType":"YulLiteral","src":"2901:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"2904:4:88","nodeType":"YulLiteral","src":"2904:4:88","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2894:6:88","nodeType":"YulIdentifier","src":"2894:6:88"},"nativeSrc":"2894:15:88","nodeType":"YulFunctionCall","src":"2894:15:88"},"nativeSrc":"2894:15:88","nodeType":"YulExpressionStatement","src":"2894:15:88"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"2792:1:88","nodeType":"YulIdentifier","src":"2792:1:88"},{"name":"sum","nativeSrc":"2795:3:88","nodeType":"YulIdentifier","src":"2795:3:88"}],"functionName":{"name":"gt","nativeSrc":"2789:2:88","nodeType":"YulIdentifier","src":"2789:2:88"},"nativeSrc":"2789:10:88","nodeType":"YulFunctionCall","src":"2789:10:88"},"nativeSrc":"2786:133:88","nodeType":"YulIf","src":"2786:133:88"}]},"name":"checked_add_t_uint256","nativeSrc":"2703:222:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"2734:1:88","nodeType":"YulTypedName","src":"2734:1:88","type":""},{"name":"y","nativeSrc":"2737:1:88","nodeType":"YulTypedName","src":"2737:1:88","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"2743:3:88","nodeType":"YulTypedName","src":"2743:3:88","type":""}],"src":"2703:222:88"},{"body":{"nativeSrc":"3104:227:88","nodeType":"YulBlock","src":"3104:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3121:9:88","nodeType":"YulIdentifier","src":"3121:9:88"},{"kind":"number","nativeSrc":"3132:2:88","nodeType":"YulLiteral","src":"3132:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3114:6:88","nodeType":"YulIdentifier","src":"3114:6:88"},"nativeSrc":"3114:21:88","nodeType":"YulFunctionCall","src":"3114:21:88"},"nativeSrc":"3114:21:88","nodeType":"YulExpressionStatement","src":"3114:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3155:9:88","nodeType":"YulIdentifier","src":"3155:9:88"},{"kind":"number","nativeSrc":"3166:2:88","nodeType":"YulLiteral","src":"3166:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3151:3:88","nodeType":"YulIdentifier","src":"3151:3:88"},"nativeSrc":"3151:18:88","nodeType":"YulFunctionCall","src":"3151:18:88"},{"kind":"number","nativeSrc":"3171:2:88","nodeType":"YulLiteral","src":"3171:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"3144:6:88","nodeType":"YulIdentifier","src":"3144:6:88"},"nativeSrc":"3144:30:88","nodeType":"YulFunctionCall","src":"3144:30:88"},"nativeSrc":"3144:30:88","nodeType":"YulExpressionStatement","src":"3144:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3194:9:88","nodeType":"YulIdentifier","src":"3194:9:88"},{"kind":"number","nativeSrc":"3205:2:88","nodeType":"YulLiteral","src":"3205:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3190:3:88","nodeType":"YulIdentifier","src":"3190:3:88"},"nativeSrc":"3190:18:88","nodeType":"YulFunctionCall","src":"3190:18:88"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"3210:34:88","nodeType":"YulLiteral","src":"3210:34:88","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:88","nodeType":"YulIdentifier","src":"3183:6:88"},"nativeSrc":"3183:62:88","nodeType":"YulFunctionCall","src":"3183:62:88"},"nativeSrc":"3183:62:88","nodeType":"YulExpressionStatement","src":"3183:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3265:9:88","nodeType":"YulIdentifier","src":"3265:9:88"},{"kind":"number","nativeSrc":"3276:2:88","nodeType":"YulLiteral","src":"3276:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3261:3:88","nodeType":"YulIdentifier","src":"3261:3:88"},"nativeSrc":"3261:18:88","nodeType":"YulFunctionCall","src":"3261:18:88"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"3281:7:88","nodeType":"YulLiteral","src":"3281:7:88","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"3254:6:88","nodeType":"YulIdentifier","src":"3254:6:88"},"nativeSrc":"3254:35:88","nodeType":"YulFunctionCall","src":"3254:35:88"},"nativeSrc":"3254:35:88","nodeType":"YulExpressionStatement","src":"3254:35:88"},{"nativeSrc":"3298:27:88","nodeType":"YulAssignment","src":"3298:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3310:9:88","nodeType":"YulIdentifier","src":"3310:9:88"},{"kind":"number","nativeSrc":"3321:3:88","nodeType":"YulLiteral","src":"3321:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3306:3:88","nodeType":"YulIdentifier","src":"3306:3:88"},"nativeSrc":"3306:19:88","nodeType":"YulFunctionCall","src":"3306:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3298:4:88","nodeType":"YulIdentifier","src":"3298:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2930:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3081:9:88","nodeType":"YulTypedName","src":"3081:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3095:4:88","nodeType":"YulTypedName","src":"3095:4:88","type":""}],"src":"2930:401:88"},{"body":{"nativeSrc":"3510:226:88","nodeType":"YulBlock","src":"3510:226:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3527:9:88","nodeType":"YulIdentifier","src":"3527:9:88"},{"kind":"number","nativeSrc":"3538:2:88","nodeType":"YulLiteral","src":"3538:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3520:6:88","nodeType":"YulIdentifier","src":"3520:6:88"},"nativeSrc":"3520:21:88","nodeType":"YulFunctionCall","src":"3520:21:88"},"nativeSrc":"3520:21:88","nodeType":"YulExpressionStatement","src":"3520:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3561:9:88","nodeType":"YulIdentifier","src":"3561:9:88"},{"kind":"number","nativeSrc":"3572:2:88","nodeType":"YulLiteral","src":"3572:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3557:3:88","nodeType":"YulIdentifier","src":"3557:3:88"},"nativeSrc":"3557:18:88","nodeType":"YulFunctionCall","src":"3557:18:88"},{"kind":"number","nativeSrc":"3577:2:88","nodeType":"YulLiteral","src":"3577:2:88","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"3550:6:88","nodeType":"YulIdentifier","src":"3550:6:88"},"nativeSrc":"3550:30:88","nodeType":"YulFunctionCall","src":"3550:30:88"},"nativeSrc":"3550:30:88","nodeType":"YulExpressionStatement","src":"3550:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3600:9:88","nodeType":"YulIdentifier","src":"3600:9:88"},{"kind":"number","nativeSrc":"3611:2:88","nodeType":"YulLiteral","src":"3611:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3596:3:88","nodeType":"YulIdentifier","src":"3596:3:88"},"nativeSrc":"3596:18:88","nodeType":"YulFunctionCall","src":"3596:18:88"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"3616:34:88","nodeType":"YulLiteral","src":"3616:34:88","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"3589:6:88","nodeType":"YulIdentifier","src":"3589:6:88"},"nativeSrc":"3589:62:88","nodeType":"YulFunctionCall","src":"3589:62:88"},"nativeSrc":"3589:62:88","nodeType":"YulExpressionStatement","src":"3589:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3671:9:88","nodeType":"YulIdentifier","src":"3671:9:88"},{"kind":"number","nativeSrc":"3682:2:88","nodeType":"YulLiteral","src":"3682:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3667:3:88","nodeType":"YulIdentifier","src":"3667:3:88"},"nativeSrc":"3667:18:88","nodeType":"YulFunctionCall","src":"3667:18:88"},{"hexValue":"72657373","kind":"string","nativeSrc":"3687:6:88","nodeType":"YulLiteral","src":"3687:6:88","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"3660:6:88","nodeType":"YulIdentifier","src":"3660:6:88"},"nativeSrc":"3660:34:88","nodeType":"YulFunctionCall","src":"3660:34:88"},"nativeSrc":"3660:34:88","nodeType":"YulExpressionStatement","src":"3660:34:88"},{"nativeSrc":"3703:27:88","nodeType":"YulAssignment","src":"3703:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"3715:9:88","nodeType":"YulIdentifier","src":"3715:9:88"},{"kind":"number","nativeSrc":"3726:3:88","nodeType":"YulLiteral","src":"3726:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3711:3:88","nodeType":"YulIdentifier","src":"3711:3:88"},"nativeSrc":"3711:19:88","nodeType":"YulFunctionCall","src":"3711:19:88"},"variableNames":[{"name":"tail","nativeSrc":"3703:4:88","nodeType":"YulIdentifier","src":"3703:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3336:400:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3487:9:88","nodeType":"YulTypedName","src":"3487:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3501:4:88","nodeType":"YulTypedName","src":"3501:4:88","type":""}],"src":"3336:400:88"},{"body":{"nativeSrc":"3915:224:88","nodeType":"YulBlock","src":"3915:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3932:9:88","nodeType":"YulIdentifier","src":"3932:9:88"},{"kind":"number","nativeSrc":"3943:2:88","nodeType":"YulLiteral","src":"3943:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3925:6:88","nodeType":"YulIdentifier","src":"3925:6:88"},"nativeSrc":"3925:21:88","nodeType":"YulFunctionCall","src":"3925:21:88"},"nativeSrc":"3925:21:88","nodeType":"YulExpressionStatement","src":"3925:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3966:9:88","nodeType":"YulIdentifier","src":"3966:9:88"},{"kind":"number","nativeSrc":"3977:2:88","nodeType":"YulLiteral","src":"3977:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3962:3:88","nodeType":"YulIdentifier","src":"3962:3:88"},"nativeSrc":"3962:18:88","nodeType":"YulFunctionCall","src":"3962:18:88"},{"kind":"number","nativeSrc":"3982:2:88","nodeType":"YulLiteral","src":"3982:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"3955:6:88","nodeType":"YulIdentifier","src":"3955:6:88"},"nativeSrc":"3955:30:88","nodeType":"YulFunctionCall","src":"3955:30:88"},"nativeSrc":"3955:30:88","nodeType":"YulExpressionStatement","src":"3955:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4005:9:88","nodeType":"YulIdentifier","src":"4005:9:88"},{"kind":"number","nativeSrc":"4016:2:88","nodeType":"YulLiteral","src":"4016:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4001:3:88","nodeType":"YulIdentifier","src":"4001:3:88"},"nativeSrc":"4001:18:88","nodeType":"YulFunctionCall","src":"4001:18:88"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"4021:34:88","nodeType":"YulLiteral","src":"4021:34:88","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"3994:6:88","nodeType":"YulIdentifier","src":"3994:6:88"},"nativeSrc":"3994:62:88","nodeType":"YulFunctionCall","src":"3994:62:88"},"nativeSrc":"3994:62:88","nodeType":"YulExpressionStatement","src":"3994:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4076:9:88","nodeType":"YulIdentifier","src":"4076:9:88"},{"kind":"number","nativeSrc":"4087:2:88","nodeType":"YulLiteral","src":"4087:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4072:3:88","nodeType":"YulIdentifier","src":"4072:3:88"},"nativeSrc":"4072:18:88","nodeType":"YulFunctionCall","src":"4072:18:88"},{"hexValue":"7373","kind":"string","nativeSrc":"4092:4:88","nodeType":"YulLiteral","src":"4092:4:88","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"4065:6:88","nodeType":"YulIdentifier","src":"4065:6:88"},"nativeSrc":"4065:32:88","nodeType":"YulFunctionCall","src":"4065:32:88"},"nativeSrc":"4065:32:88","nodeType":"YulExpressionStatement","src":"4065:32:88"},{"nativeSrc":"4106:27:88","nodeType":"YulAssignment","src":"4106:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4118:9:88","nodeType":"YulIdentifier","src":"4118:9:88"},{"kind":"number","nativeSrc":"4129:3:88","nodeType":"YulLiteral","src":"4129:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4114:3:88","nodeType":"YulIdentifier","src":"4114:3:88"},"nativeSrc":"4114:19:88","nodeType":"YulFunctionCall","src":"4114:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4106:4:88","nodeType":"YulIdentifier","src":"4106:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3741:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3892:9:88","nodeType":"YulTypedName","src":"3892:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3906:4:88","nodeType":"YulTypedName","src":"3906:4:88","type":""}],"src":"3741:398:88"},{"body":{"nativeSrc":"4318:179:88","nodeType":"YulBlock","src":"4318:179:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4335:9:88","nodeType":"YulIdentifier","src":"4335:9:88"},{"kind":"number","nativeSrc":"4346:2:88","nodeType":"YulLiteral","src":"4346:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4328:6:88","nodeType":"YulIdentifier","src":"4328:6:88"},"nativeSrc":"4328:21:88","nodeType":"YulFunctionCall","src":"4328:21:88"},"nativeSrc":"4328:21:88","nodeType":"YulExpressionStatement","src":"4328:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4369:9:88","nodeType":"YulIdentifier","src":"4369:9:88"},{"kind":"number","nativeSrc":"4380:2:88","nodeType":"YulLiteral","src":"4380:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4365:3:88","nodeType":"YulIdentifier","src":"4365:3:88"},"nativeSrc":"4365:18:88","nodeType":"YulFunctionCall","src":"4365:18:88"},{"kind":"number","nativeSrc":"4385:2:88","nodeType":"YulLiteral","src":"4385:2:88","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"4358:6:88","nodeType":"YulIdentifier","src":"4358:6:88"},"nativeSrc":"4358:30:88","nodeType":"YulFunctionCall","src":"4358:30:88"},"nativeSrc":"4358:30:88","nodeType":"YulExpressionStatement","src":"4358:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4408:9:88","nodeType":"YulIdentifier","src":"4408:9:88"},{"kind":"number","nativeSrc":"4419:2:88","nodeType":"YulLiteral","src":"4419:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4404:3:88","nodeType":"YulIdentifier","src":"4404:3:88"},"nativeSrc":"4404:18:88","nodeType":"YulFunctionCall","src":"4404:18:88"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"4424:31:88","nodeType":"YulLiteral","src":"4424:31:88","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"4397:6:88","nodeType":"YulIdentifier","src":"4397:6:88"},"nativeSrc":"4397:59:88","nodeType":"YulFunctionCall","src":"4397:59:88"},"nativeSrc":"4397:59:88","nodeType":"YulExpressionStatement","src":"4397:59:88"},{"nativeSrc":"4465:26:88","nodeType":"YulAssignment","src":"4465:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4477:9:88","nodeType":"YulIdentifier","src":"4477:9:88"},{"kind":"number","nativeSrc":"4488:2:88","nodeType":"YulLiteral","src":"4488:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4473:3:88","nodeType":"YulIdentifier","src":"4473:3:88"},"nativeSrc":"4473:18:88","nodeType":"YulFunctionCall","src":"4473:18:88"},"variableNames":[{"name":"tail","nativeSrc":"4465:4:88","nodeType":"YulIdentifier","src":"4465:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4144:353:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4295:9:88","nodeType":"YulTypedName","src":"4295:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4309:4:88","nodeType":"YulTypedName","src":"4309:4:88","type":""}],"src":"4144:353:88"},{"body":{"nativeSrc":"4676:227:88","nodeType":"YulBlock","src":"4676:227:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4693:9:88","nodeType":"YulIdentifier","src":"4693:9:88"},{"kind":"number","nativeSrc":"4704:2:88","nodeType":"YulLiteral","src":"4704:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:88","nodeType":"YulIdentifier","src":"4686:6:88"},"nativeSrc":"4686:21:88","nodeType":"YulFunctionCall","src":"4686:21:88"},"nativeSrc":"4686:21:88","nodeType":"YulExpressionStatement","src":"4686:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4727:9:88","nodeType":"YulIdentifier","src":"4727:9:88"},{"kind":"number","nativeSrc":"4738:2:88","nodeType":"YulLiteral","src":"4738:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4723:3:88","nodeType":"YulIdentifier","src":"4723:3:88"},"nativeSrc":"4723:18:88","nodeType":"YulFunctionCall","src":"4723:18:88"},{"kind":"number","nativeSrc":"4743:2:88","nodeType":"YulLiteral","src":"4743:2:88","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"4716:6:88","nodeType":"YulIdentifier","src":"4716:6:88"},"nativeSrc":"4716:30:88","nodeType":"YulFunctionCall","src":"4716:30:88"},"nativeSrc":"4716:30:88","nodeType":"YulExpressionStatement","src":"4716:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4766:9:88","nodeType":"YulIdentifier","src":"4766:9:88"},{"kind":"number","nativeSrc":"4777:2:88","nodeType":"YulLiteral","src":"4777:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4762:3:88","nodeType":"YulIdentifier","src":"4762:3:88"},"nativeSrc":"4762:18:88","nodeType":"YulFunctionCall","src":"4762:18:88"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"4782:34:88","nodeType":"YulLiteral","src":"4782:34:88","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"4755:6:88","nodeType":"YulIdentifier","src":"4755:6:88"},"nativeSrc":"4755:62:88","nodeType":"YulFunctionCall","src":"4755:62:88"},"nativeSrc":"4755:62:88","nodeType":"YulExpressionStatement","src":"4755:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4837:9:88","nodeType":"YulIdentifier","src":"4837:9:88"},{"kind":"number","nativeSrc":"4848:2:88","nodeType":"YulLiteral","src":"4848:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4833:3:88","nodeType":"YulIdentifier","src":"4833:3:88"},"nativeSrc":"4833:18:88","nodeType":"YulFunctionCall","src":"4833:18:88"},{"hexValue":"6472657373","kind":"string","nativeSrc":"4853:7:88","nodeType":"YulLiteral","src":"4853:7:88","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"4826:6:88","nodeType":"YulIdentifier","src":"4826:6:88"},"nativeSrc":"4826:35:88","nodeType":"YulFunctionCall","src":"4826:35:88"},"nativeSrc":"4826:35:88","nodeType":"YulExpressionStatement","src":"4826:35:88"},{"nativeSrc":"4870:27:88","nodeType":"YulAssignment","src":"4870:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"4882:9:88","nodeType":"YulIdentifier","src":"4882:9:88"},{"kind":"number","nativeSrc":"4893:3:88","nodeType":"YulLiteral","src":"4893:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4878:3:88","nodeType":"YulIdentifier","src":"4878:3:88"},"nativeSrc":"4878:19:88","nodeType":"YulFunctionCall","src":"4878:19:88"},"variableNames":[{"name":"tail","nativeSrc":"4870:4:88","nodeType":"YulIdentifier","src":"4870:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4502:401:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4653:9:88","nodeType":"YulTypedName","src":"4653:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4667:4:88","nodeType":"YulTypedName","src":"4667:4:88","type":""}],"src":"4502:401:88"},{"body":{"nativeSrc":"5082:225:88","nodeType":"YulBlock","src":"5082:225:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5099:9:88","nodeType":"YulIdentifier","src":"5099:9:88"},{"kind":"number","nativeSrc":"5110:2:88","nodeType":"YulLiteral","src":"5110:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5092:6:88","nodeType":"YulIdentifier","src":"5092:6:88"},"nativeSrc":"5092:21:88","nodeType":"YulFunctionCall","src":"5092:21:88"},"nativeSrc":"5092:21:88","nodeType":"YulExpressionStatement","src":"5092:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5133:9:88","nodeType":"YulIdentifier","src":"5133:9:88"},{"kind":"number","nativeSrc":"5144:2:88","nodeType":"YulLiteral","src":"5144:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5129:3:88","nodeType":"YulIdentifier","src":"5129:3:88"},"nativeSrc":"5129:18:88","nodeType":"YulFunctionCall","src":"5129:18:88"},{"kind":"number","nativeSrc":"5149:2:88","nodeType":"YulLiteral","src":"5149:2:88","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"5122:6:88","nodeType":"YulIdentifier","src":"5122:6:88"},"nativeSrc":"5122:30:88","nodeType":"YulFunctionCall","src":"5122:30:88"},"nativeSrc":"5122:30:88","nodeType":"YulExpressionStatement","src":"5122:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5172:9:88","nodeType":"YulIdentifier","src":"5172:9:88"},{"kind":"number","nativeSrc":"5183:2:88","nodeType":"YulLiteral","src":"5183:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5168:3:88","nodeType":"YulIdentifier","src":"5168:3:88"},"nativeSrc":"5168:18:88","nodeType":"YulFunctionCall","src":"5168:18:88"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"5188:34:88","nodeType":"YulLiteral","src":"5188:34:88","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"5161:6:88","nodeType":"YulIdentifier","src":"5161:6:88"},"nativeSrc":"5161:62:88","nodeType":"YulFunctionCall","src":"5161:62:88"},"nativeSrc":"5161:62:88","nodeType":"YulExpressionStatement","src":"5161:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5243:9:88","nodeType":"YulIdentifier","src":"5243:9:88"},{"kind":"number","nativeSrc":"5254:2:88","nodeType":"YulLiteral","src":"5254:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5239:3:88","nodeType":"YulIdentifier","src":"5239:3:88"},"nativeSrc":"5239:18:88","nodeType":"YulFunctionCall","src":"5239:18:88"},{"hexValue":"657373","kind":"string","nativeSrc":"5259:5:88","nodeType":"YulLiteral","src":"5259:5:88","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"5232:6:88","nodeType":"YulIdentifier","src":"5232:6:88"},"nativeSrc":"5232:33:88","nodeType":"YulFunctionCall","src":"5232:33:88"},"nativeSrc":"5232:33:88","nodeType":"YulExpressionStatement","src":"5232:33:88"},{"nativeSrc":"5274:27:88","nodeType":"YulAssignment","src":"5274:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5286:9:88","nodeType":"YulIdentifier","src":"5286:9:88"},{"kind":"number","nativeSrc":"5297:3:88","nodeType":"YulLiteral","src":"5297:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5282:3:88","nodeType":"YulIdentifier","src":"5282:3:88"},"nativeSrc":"5282:19:88","nodeType":"YulFunctionCall","src":"5282:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5274:4:88","nodeType":"YulIdentifier","src":"5274:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4908:399:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5059:9:88","nodeType":"YulTypedName","src":"5059:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5073:4:88","nodeType":"YulTypedName","src":"5073:4:88","type":""}],"src":"4908:399:88"},{"body":{"nativeSrc":"5486:228:88","nodeType":"YulBlock","src":"5486:228:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5503:9:88","nodeType":"YulIdentifier","src":"5503:9:88"},{"kind":"number","nativeSrc":"5514:2:88","nodeType":"YulLiteral","src":"5514:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5496:6:88","nodeType":"YulIdentifier","src":"5496:6:88"},"nativeSrc":"5496:21:88","nodeType":"YulFunctionCall","src":"5496:21:88"},"nativeSrc":"5496:21:88","nodeType":"YulExpressionStatement","src":"5496:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5537:9:88","nodeType":"YulIdentifier","src":"5537:9:88"},{"kind":"number","nativeSrc":"5548:2:88","nodeType":"YulLiteral","src":"5548:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5533:3:88","nodeType":"YulIdentifier","src":"5533:3:88"},"nativeSrc":"5533:18:88","nodeType":"YulFunctionCall","src":"5533:18:88"},{"kind":"number","nativeSrc":"5553:2:88","nodeType":"YulLiteral","src":"5553:2:88","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"5526:6:88","nodeType":"YulIdentifier","src":"5526:6:88"},"nativeSrc":"5526:30:88","nodeType":"YulFunctionCall","src":"5526:30:88"},"nativeSrc":"5526:30:88","nodeType":"YulExpressionStatement","src":"5526:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5576:9:88","nodeType":"YulIdentifier","src":"5576:9:88"},{"kind":"number","nativeSrc":"5587:2:88","nodeType":"YulLiteral","src":"5587:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5572:3:88","nodeType":"YulIdentifier","src":"5572:3:88"},"nativeSrc":"5572:18:88","nodeType":"YulFunctionCall","src":"5572:18:88"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"5592:34:88","nodeType":"YulLiteral","src":"5592:34:88","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"5565:6:88","nodeType":"YulIdentifier","src":"5565:6:88"},"nativeSrc":"5565:62:88","nodeType":"YulFunctionCall","src":"5565:62:88"},"nativeSrc":"5565:62:88","nodeType":"YulExpressionStatement","src":"5565:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5647:9:88","nodeType":"YulIdentifier","src":"5647:9:88"},{"kind":"number","nativeSrc":"5658:2:88","nodeType":"YulLiteral","src":"5658:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5643:3:88","nodeType":"YulIdentifier","src":"5643:3:88"},"nativeSrc":"5643:18:88","nodeType":"YulFunctionCall","src":"5643:18:88"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"5663:8:88","nodeType":"YulLiteral","src":"5663:8:88","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"5636:6:88","nodeType":"YulIdentifier","src":"5636:6:88"},"nativeSrc":"5636:36:88","nodeType":"YulFunctionCall","src":"5636:36:88"},"nativeSrc":"5636:36:88","nodeType":"YulExpressionStatement","src":"5636:36:88"},{"nativeSrc":"5681:27:88","nodeType":"YulAssignment","src":"5681:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"5693:9:88","nodeType":"YulIdentifier","src":"5693:9:88"},{"kind":"number","nativeSrc":"5704:3:88","nodeType":"YulLiteral","src":"5704:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5689:3:88","nodeType":"YulIdentifier","src":"5689:3:88"},"nativeSrc":"5689:19:88","nodeType":"YulFunctionCall","src":"5689:19:88"},"variableNames":[{"name":"tail","nativeSrc":"5681:4:88","nodeType":"YulIdentifier","src":"5681:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5312:402:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5463:9:88","nodeType":"YulTypedName","src":"5463:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5477:4:88","nodeType":"YulTypedName","src":"5477:4:88","type":""}],"src":"5312:402:88"},{"body":{"nativeSrc":"5893:181:88","nodeType":"YulBlock","src":"5893:181:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5910:9:88","nodeType":"YulIdentifier","src":"5910:9:88"},{"kind":"number","nativeSrc":"5921:2:88","nodeType":"YulLiteral","src":"5921:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5903:6:88","nodeType":"YulIdentifier","src":"5903:6:88"},"nativeSrc":"5903:21:88","nodeType":"YulFunctionCall","src":"5903:21:88"},"nativeSrc":"5903:21:88","nodeType":"YulExpressionStatement","src":"5903:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5944:9:88","nodeType":"YulIdentifier","src":"5944:9:88"},{"kind":"number","nativeSrc":"5955:2:88","nodeType":"YulLiteral","src":"5955:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5940:3:88","nodeType":"YulIdentifier","src":"5940:3:88"},"nativeSrc":"5940:18:88","nodeType":"YulFunctionCall","src":"5940:18:88"},{"kind":"number","nativeSrc":"5960:2:88","nodeType":"YulLiteral","src":"5960:2:88","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"5933:6:88","nodeType":"YulIdentifier","src":"5933:6:88"},"nativeSrc":"5933:30:88","nodeType":"YulFunctionCall","src":"5933:30:88"},"nativeSrc":"5933:30:88","nodeType":"YulExpressionStatement","src":"5933:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5983:9:88","nodeType":"YulIdentifier","src":"5983:9:88"},{"kind":"number","nativeSrc":"5994:2:88","nodeType":"YulLiteral","src":"5994:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5979:3:88","nodeType":"YulIdentifier","src":"5979:3:88"},"nativeSrc":"5979:18:88","nodeType":"YulFunctionCall","src":"5979:18:88"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"5999:33:88","nodeType":"YulLiteral","src":"5999:33:88","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"5972:6:88","nodeType":"YulIdentifier","src":"5972:6:88"},"nativeSrc":"5972:61:88","nodeType":"YulFunctionCall","src":"5972:61:88"},"nativeSrc":"5972:61:88","nodeType":"YulExpressionStatement","src":"5972:61:88"},{"nativeSrc":"6042:26:88","nodeType":"YulAssignment","src":"6042:26:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6054:9:88","nodeType":"YulIdentifier","src":"6054:9:88"},{"kind":"number","nativeSrc":"6065:2:88","nodeType":"YulLiteral","src":"6065:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6050:3:88","nodeType":"YulIdentifier","src":"6050:3:88"},"nativeSrc":"6050:18:88","nodeType":"YulFunctionCall","src":"6050:18:88"},"variableNames":[{"name":"tail","nativeSrc":"6042:4:88","nodeType":"YulIdentifier","src":"6042:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5719:355:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5870:9:88","nodeType":"YulTypedName","src":"5870:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5884:4:88","nodeType":"YulTypedName","src":"5884:4:88","type":""}],"src":"5719:355:88"},{"body":{"nativeSrc":"6253:223:88","nodeType":"YulBlock","src":"6253:223:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6270:9:88","nodeType":"YulIdentifier","src":"6270:9:88"},{"kind":"number","nativeSrc":"6281:2:88","nodeType":"YulLiteral","src":"6281:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6263:6:88","nodeType":"YulIdentifier","src":"6263:6:88"},"nativeSrc":"6263:21:88","nodeType":"YulFunctionCall","src":"6263:21:88"},"nativeSrc":"6263:21:88","nodeType":"YulExpressionStatement","src":"6263:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6304:9:88","nodeType":"YulIdentifier","src":"6304:9:88"},{"kind":"number","nativeSrc":"6315:2:88","nodeType":"YulLiteral","src":"6315:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6300:3:88","nodeType":"YulIdentifier","src":"6300:3:88"},"nativeSrc":"6300:18:88","nodeType":"YulFunctionCall","src":"6300:18:88"},{"kind":"number","nativeSrc":"6320:2:88","nodeType":"YulLiteral","src":"6320:2:88","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"6293:6:88","nodeType":"YulIdentifier","src":"6293:6:88"},"nativeSrc":"6293:30:88","nodeType":"YulFunctionCall","src":"6293:30:88"},"nativeSrc":"6293:30:88","nodeType":"YulExpressionStatement","src":"6293:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6343:9:88","nodeType":"YulIdentifier","src":"6343:9:88"},{"kind":"number","nativeSrc":"6354:2:88","nodeType":"YulLiteral","src":"6354:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6339:3:88","nodeType":"YulIdentifier","src":"6339:3:88"},"nativeSrc":"6339:18:88","nodeType":"YulFunctionCall","src":"6339:18:88"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nativeSrc":"6359:34:88","nodeType":"YulLiteral","src":"6359:34:88","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nativeSrc":"6332:6:88","nodeType":"YulIdentifier","src":"6332:6:88"},"nativeSrc":"6332:62:88","nodeType":"YulFunctionCall","src":"6332:62:88"},"nativeSrc":"6332:62:88","nodeType":"YulExpressionStatement","src":"6332:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6414:9:88","nodeType":"YulIdentifier","src":"6414:9:88"},{"kind":"number","nativeSrc":"6425:2:88","nodeType":"YulLiteral","src":"6425:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6410:3:88","nodeType":"YulIdentifier","src":"6410:3:88"},"nativeSrc":"6410:18:88","nodeType":"YulFunctionCall","src":"6410:18:88"},{"hexValue":"73","kind":"string","nativeSrc":"6430:3:88","nodeType":"YulLiteral","src":"6430:3:88","type":"","value":"s"}],"functionName":{"name":"mstore","nativeSrc":"6403:6:88","nodeType":"YulIdentifier","src":"6403:6:88"},"nativeSrc":"6403:31:88","nodeType":"YulFunctionCall","src":"6403:31:88"},"nativeSrc":"6403:31:88","nodeType":"YulExpressionStatement","src":"6403:31:88"},{"nativeSrc":"6443:27:88","nodeType":"YulAssignment","src":"6443:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6455:9:88","nodeType":"YulIdentifier","src":"6455:9:88"},{"kind":"number","nativeSrc":"6466:3:88","nodeType":"YulLiteral","src":"6466:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6451:3:88","nodeType":"YulIdentifier","src":"6451:3:88"},"nativeSrc":"6451:19:88","nodeType":"YulFunctionCall","src":"6451:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6443:4:88","nodeType":"YulIdentifier","src":"6443:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6079:397:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6230:9:88","nodeType":"YulTypedName","src":"6230:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6244:4:88","nodeType":"YulTypedName","src":"6244:4:88","type":""}],"src":"6079:397:88"},{"body":{"nativeSrc":"6655:224:88","nodeType":"YulBlock","src":"6655:224:88","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6672:9:88","nodeType":"YulIdentifier","src":"6672:9:88"},{"kind":"number","nativeSrc":"6683:2:88","nodeType":"YulLiteral","src":"6683:2:88","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6665:6:88","nodeType":"YulIdentifier","src":"6665:6:88"},"nativeSrc":"6665:21:88","nodeType":"YulFunctionCall","src":"6665:21:88"},"nativeSrc":"6665:21:88","nodeType":"YulExpressionStatement","src":"6665:21:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6706:9:88","nodeType":"YulIdentifier","src":"6706:9:88"},{"kind":"number","nativeSrc":"6717:2:88","nodeType":"YulLiteral","src":"6717:2:88","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6702:3:88","nodeType":"YulIdentifier","src":"6702:3:88"},"nativeSrc":"6702:18:88","nodeType":"YulFunctionCall","src":"6702:18:88"},{"kind":"number","nativeSrc":"6722:2:88","nodeType":"YulLiteral","src":"6722:2:88","type":"","value":"34"}],"functionName":{"name":"mstore","nativeSrc":"6695:6:88","nodeType":"YulIdentifier","src":"6695:6:88"},"nativeSrc":"6695:30:88","nodeType":"YulFunctionCall","src":"6695:30:88"},"nativeSrc":"6695:30:88","nodeType":"YulExpressionStatement","src":"6695:30:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6745:9:88","nodeType":"YulIdentifier","src":"6745:9:88"},{"kind":"number","nativeSrc":"6756:2:88","nodeType":"YulLiteral","src":"6756:2:88","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6741:3:88","nodeType":"YulIdentifier","src":"6741:3:88"},"nativeSrc":"6741:18:88","nodeType":"YulFunctionCall","src":"6741:18:88"},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e","kind":"string","nativeSrc":"6761:34:88","nodeType":"YulLiteral","src":"6761:34:88","type":"","value":"ERC20: burn amount exceeds balan"}],"functionName":{"name":"mstore","nativeSrc":"6734:6:88","nodeType":"YulIdentifier","src":"6734:6:88"},"nativeSrc":"6734:62:88","nodeType":"YulFunctionCall","src":"6734:62:88"},"nativeSrc":"6734:62:88","nodeType":"YulExpressionStatement","src":"6734:62:88"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6816:9:88","nodeType":"YulIdentifier","src":"6816:9:88"},{"kind":"number","nativeSrc":"6827:2:88","nodeType":"YulLiteral","src":"6827:2:88","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6812:3:88","nodeType":"YulIdentifier","src":"6812:3:88"},"nativeSrc":"6812:18:88","nodeType":"YulFunctionCall","src":"6812:18:88"},{"hexValue":"6365","kind":"string","nativeSrc":"6832:4:88","nodeType":"YulLiteral","src":"6832:4:88","type":"","value":"ce"}],"functionName":{"name":"mstore","nativeSrc":"6805:6:88","nodeType":"YulIdentifier","src":"6805:6:88"},"nativeSrc":"6805:32:88","nodeType":"YulFunctionCall","src":"6805:32:88"},"nativeSrc":"6805:32:88","nodeType":"YulExpressionStatement","src":"6805:32:88"},{"nativeSrc":"6846:27:88","nodeType":"YulAssignment","src":"6846:27:88","value":{"arguments":[{"name":"headStart","nativeSrc":"6858:9:88","nodeType":"YulIdentifier","src":"6858:9:88"},{"kind":"number","nativeSrc":"6869:3:88","nodeType":"YulLiteral","src":"6869:3:88","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6854:3:88","nodeType":"YulIdentifier","src":"6854:3:88"},"nativeSrc":"6854:19:88","nodeType":"YulFunctionCall","src":"6854:19:88"},"variableNames":[{"name":"tail","nativeSrc":"6846:4:88","nodeType":"YulIdentifier","src":"6846:4:88"}]}]},"name":"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6481:398:88","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6632:9:88","nodeType":"YulTypedName","src":"6632:9:88","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6646:4:88","nodeType":"YulTypedName","src":"6646:4:88","type":""}],"src":"6481:398:88"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        mcopy(add(headStart, 64), add(value0, 32), length)\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := 0\n        value := calldataload(add(headStart, 32))\n        value1 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := 0\n        value := calldataload(add(headStart, 64))\n        value2 := value\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: burn amount exceeds balan\")\n        mstore(add(headStart, 96), \"ce\")\n        tail := add(headStart, 128)\n    }\n}","id":88,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"25875":[{"length":32,"start":316}]},"linkReferences":{},"object":"608060405234801561000f575f5ffd5b50600436106100cb575f3560e01c806340c10f19116100885780639dc29fac116100635780639dc29fac146101be578063a457c2d7146101d1578063a9059cbb146101e4578063dd62ed3e146101f7575f5ffd5b806340c10f191461017957806370a082311461018e57806395d89b41146101b6575f5ffd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461011057806323b872dd14610122578063313ce567146101355780633950935114610166575b5f5ffd5b6100d761020a565b6040516100e491906108f7565b60405180910390f35b6101006100fb366004610947565b61029a565b60405190151581526020016100e4565b6002545b6040519081526020016100e4565b61010061013036600461096f565b6102b3565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100e4565b610100610174366004610947565b6102d6565b61018c610187366004610947565b6102f7565b005b61011461019c3660046109a9565b6001600160a01b03165f9081526020819052604090205490565b6100d7610305565b61018c6101cc366004610947565b610314565b6101006101df366004610947565b61031e565b6101006101f2366004610947565b61039d565b6101146102053660046109c9565b6103aa565b606060038054610219906109fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109fa565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103d4565b60019150505b92915050565b5f336102c08582856104f8565b6102cb858585610570565b506001949350505050565b5f336102a78185856102e883836103aa565b6102f29190610a32565b6103d4565b6103018282610712565b5050565b606060048054610219906109fa565b61030182826107cf565b5f338161032b82866103aa565b9050838110156103905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102cb82868684036103d4565b5f336102a7818585610570565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610387565b6001600160a01b0382166104975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610387565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f61050384846103aa565b90505f19811461056a578181101561055d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610387565b61056a84848484036103d4565b50505050565b6001600160a01b0383166105d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610387565b6001600160a01b0382166106365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610387565b6001600160a01b0383165f90815260208190526040902054818110156106ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610387565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361056a565b6001600160a01b0382166107685760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610387565b8060025f8282546107799190610a32565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03821661082f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610387565b6001600160a01b0382165f90815260208190526040902054818110156108a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610387565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104eb565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610942575f5ffd5b919050565b5f5f60408385031215610958575f5ffd5b6109618361092c565b946020939093013593505050565b5f5f5f60608486031215610981575f5ffd5b61098a8461092c565b92506109986020850161092c565b929592945050506040919091013590565b5f602082840312156109b9575f5ffd5b6109c28261092c565b9392505050565b5f5f604083850312156109da575f5ffd5b6109e38361092c565b91506109f16020840161092c565b90509250929050565b600181811c90821680610a0e57607f821691505b602082108103610a2c57634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220cd62f2626c29fe7085833b7c2df03e380fcf4caf838cb4abf91ef9aa50b5b66564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x9DC29FAC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1B6 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0x20A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x96F JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF PUSH32 0x0 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE4 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x18C PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH2 0x19C CALLDATASIZE PUSH1 0x4 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x305 JUMP JUMPDEST PUSH2 0x18C PUSH2 0x1CC CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x947 JUMP JUMPDEST PUSH2 0x39D JUMP JUMPDEST PUSH2 0x114 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C9 JUMP JUMPDEST PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x219 SWAP1 PUSH2 0x9FA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x245 SWAP1 PUSH2 0x9FA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x267 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2C0 DUP6 DUP3 DUP6 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0x2CB DUP6 DUP6 DUP6 PUSH2 0x570 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x2E8 DUP4 DUP4 PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x2F2 SWAP2 SWAP1 PUSH2 0xA32 JUMP JUMPDEST PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x301 DUP3 DUP3 PUSH2 0x712 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x219 SWAP1 PUSH2 0x9FA JUMP JUMPDEST PUSH2 0x301 DUP3 DUP3 PUSH2 0x7CF JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x32B DUP3 DUP7 PUSH2 0x3AA JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x390 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CB DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3D4 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2A7 DUP2 DUP6 DUP6 PUSH2 0x570 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP5 DUP5 PUSH2 0x3AA JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x56A JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x387 JUMP JUMPDEST PUSH2 0x56A DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3D4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x56A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x768 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x387 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x779 SWAP2 SWAP1 PUSH2 0xA32 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x82F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x8A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x4EB JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE DUP1 PUSH1 0x20 DUP6 ADD PUSH1 0x40 DUP6 ADD MCOPY PUSH0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x942 JUMPI PUSH0 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x958 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x961 DUP4 PUSH2 0x92C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x981 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x98A DUP5 PUSH2 0x92C JUMP JUMPDEST SWAP3 POP PUSH2 0x998 PUSH1 0x20 DUP6 ADD PUSH2 0x92C JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9B9 JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x9C2 DUP3 PUSH2 0x92C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9DA JUMPI PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x9E3 DUP4 PUSH2 0x92C JUMP JUMPDEST SWAP2 POP PUSH2 0x9F1 PUSH1 0x20 DUP5 ADD PUSH2 0x92C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xA0E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xA2C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH3 0xF2626C 0x29 INVALID PUSH17 0x85833B7C2DF03E380FCF4CAF838CB4ABF9 0x1E 0xF9 0xAA POP 0xB5 0xB6 PUSH6 0x64736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"186:795:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:88;;1078:22;1060:41;;1048:2;1033:18;4444:197:30;920:187:88;3255:106:30;3342:12;;3255:106;;;1258:25:88;;;1246:2;1231:18;3255:106:30;1112:177:88;5203:256:30;;;;;;:::i;:::-;;:::i;539:92:87:-;;;1845:4:88;617:9:87;1833:17:88;1815:36;;1803:2;1788:18;539:92:87;1673:184:88;5854:234:30;;;;;;:::i;:::-;;:::i;635:170:87:-;;;;;;:::i;:::-;;:::i;:::-;;3419:125:30;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:30;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;809:170:87:-;;;;;;:::i;:::-;;:::i;6575:427:30:-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:39;4581:32:30;734:10:39;4597:7:30;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:39;5356:38:30;5372:4;734:10:39;5387:6:30;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:30;;5203:256;-1:-1:-1;;;;5203:256:30:o;5854:234::-;5942:4;734:10:39;5996:64:30;734:10:39;6012:7:30;6049:10;6021:25;734:10:39;6012:7:30;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;635:170:87:-;776:24;782:9;793:6;776:5;:24::i;:::-;635:170;;:::o;2369:102:30:-;2425:13;2457:7;2450:14;;;;;:::i;809:170:87:-;950:24;956:9;967:6;950:5;:24::i;6575:427:30:-;6668:4;734:10:39;6668:4:30;6749:25;734:10:39;6766:7:30;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:30;;3132:2:88;6784:85:30;;;3114:21:88;3171:2;3151:18;;;3144:30;3210:34;3190:18;;;3183:62;-1:-1:-1;;;3261:18:88;;;3254:35;3306:19;;6784:85:30;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:39;3873:28:30;734:10:39;3890:2:30;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:30;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:30;;10550:68;;;;-1:-1:-1;;;10550:68:30;;3538:2:88;10550:68:30;;;3520:21:88;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;-1:-1:-1;;;3667:18:88;;;3660:34;3711:19;;10550:68:30;3336:400:88;10550:68:30;-1:-1:-1;;;;;10636:21:30;;10628:68;;;;-1:-1:-1;;;10628:68:30;;3943:2:88;10628:68:30;;;3925:21:88;3982:2;3962:18;;;3955:30;4021:34;4001:18;;;3994:62;-1:-1:-1;;;4072:18:88;;;4065:32;4114:19;;10628:68:30;3741:398:88;10628:68:30;-1:-1:-1;;;;;10707:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1258:25:88;;;10758:32:30;;1231:18:88;10758:32:30;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:30;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:30;;4346:2:88;11297:68:30;;;4328:21:88;4385:2;4365:18;;;4358:30;4424:31;4404:18;;;4397:59;4473:18;;11297:68:30;4144:353:88;11297:68:30;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:30;;7544:68;;;;-1:-1:-1;;;7544:68:30;;4704:2:88;7544:68:30;;;4686:21:88;4743:2;4723:18;;;4716:30;4782:34;4762:18;;;4755:62;-1:-1:-1;;;4833:18:88;;;4826:35;4878:19;;7544:68:30;4502:401:88;7544:68:30;-1:-1:-1;;;;;7630:16:30;;7622:64;;;;-1:-1:-1;;;7622:64:30;;5110:2:88;7622:64:30;;;5092:21:88;5149:2;5129:18;;;5122:30;5188:34;5168:18;;;5161:62;-1:-1:-1;;;5239:18:88;;;5232:33;5282:19;;7622:64:30;4908:399:88;7622:64:30;-1:-1:-1;;;;;7768:15:30;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:30;;5514:2:88;7793:72:30;;;5496:21:88;5553:2;5533:18;;;5526:30;5592:34;5572:18;;;5565:62;-1:-1:-1;;;5643:18:88;;;5636:36;5689:19;;7793:72:30;5312:402:88;7793:72:30;-1:-1:-1;;;;;7899:15:30;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1258:25:88;;;8114:13:30;;8163:26;;1231:18:88;8163:26:30;;;;;;;8200:37;9375:659;8520:535;-1:-1:-1;;;;;8603:21:30;;8595:65;;;;-1:-1:-1;;;8595:65:30;;5921:2:88;8595:65:30;;;5903:21:88;5960:2;5940:18;;;5933:30;5999:33;5979:18;;;5972:61;6050:18;;8595:65:30;5719:355:88;8595:65:30;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:30;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;1258:25:88;;;8952:37:30;;1231:18:88;8952:37:30;;;;;;;635:170:87;;:::o;9375:659:30:-;-1:-1:-1;;;;;9458:21:30;;9450:67;;;;-1:-1:-1;;;9450:67:30;;6281:2:88;9450:67:30;;;6263:21:88;6320:2;6300:18;;;6293:30;6359:34;6339:18;;;6332:62;-1:-1:-1;;;6410:18:88;;;6403:31;6451:19;;9450:67:30;6079:397:88;9450:67:30;-1:-1:-1;;;;;9613:18:30;;9588:22;9613:18;;;;;;;;;;;9649:24;;;;9641:71;;;;-1:-1:-1;;;9641:71:30;;6683:2:88;9641:71:30;;;6665:21:88;6722:2;6702:18;;;6695:30;6761:34;6741:18;;;6734:62;-1:-1:-1;;;6812:18:88;;;6805:32;6854:19;;9641:71:30;6481:398:88;9641:71:30;-1:-1:-1;;;;;9746:18:30;;:9;:18;;;;;;;;;;;9767:23;;;9746:44;;9883:12;:22;;;;;;;9931:37;1258:25:88;;;9746:9:30;;:18;9931:37;;1231:18:88;9931:37:30;1112:177:88;14:418;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:88;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:88:o;1294:374::-;1371:6;1379;1387;1440:2;1428:9;1419:7;1415:23;1411:32;1408:52;;;1456:1;1453;1446:12;1408:52;1479:29;1498:9;1479:29;:::i;:::-;1469:39;;1527:38;1561:2;1550:9;1546:18;1527:38;:::i;:::-;1294:374;;1517:48;;-1:-1:-1;;;1634:2:88;1619:18;;;;1606:32;;1294:374::o;1862:186::-;1921:6;1974:2;1962:9;1953:7;1949:23;1945:32;1942:52;;;1990:1;1987;1980:12;1942:52;2013:29;2032:9;2013:29;:::i;:::-;2003:39;1862:186;-1:-1:-1;;;1862:186:88:o;2053:260::-;2121:6;2129;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2221:29;2240:9;2221:29;:::i;:::-;2211:39;;2269:38;2303:2;2292:9;2288:18;2269:38;:::i;:::-;2259:48;;2053:260;;;;;:::o;2318:380::-;2397:1;2393:12;;;;2440;;;2461:61;;2515:4;2507:6;2503:17;2493:27;;2461:61;2568:2;2560:6;2557:14;2537:18;2534:38;2531:161;;2614:10;2609:3;2605:20;2602:1;2595:31;2649:4;2646:1;2639:15;2677:4;2674:1;2667:15;2531:161;;2318:380;;;:::o;2703:222::-;2768:9;;;2789:10;;;2786:133;;;2841:10;2836:3;2832:20;2829:1;2822:31;2876:4;2873:1;2866:15;2904:4;2901:1;2894:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"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\":[{\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/TestCurrency.sol\":\"TestCurrency\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"contracts/mocks/IMintableERC20.sol\":{\"keccak256\":\"0x2b3ceb4d1707ae0ab27cdf289e1169fe0d081df736fa5732afd964762fd88b19\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://41056d1e26cc320ca70acdd4875108390879621f728ea0a732370a0e3c3a2e10\",\"dweb:/ipfs/QmbbGi4Lz8hKDd1jz8Tn1XCrAD79uvf93CsNZuMixnEoFK\"]},\"contracts/mocks/TestCurrency.sol\":{\"keccak256\":\"0x746b59a3b8755c3eda151b9a5e8b2652b90a288bb6393d5b052c1b5b25c90104\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d1a52b97ced44cad1be7e15dc7c6994144b2b276bf3e2a9ededaa51156949aad\",\"dweb:/ipfs/QmZscHFszh37q93g4TqSmUCYPK3samMKxS7LxZLPPv77Hw\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":4765,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":4771,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":4773,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":4775,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":4777,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":25873,"contract":"contracts/mocks/TestCurrency.sol:TestCurrency","label":"_owner","offset":0,"slot":"5","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}}}}}